aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.clang-tidy5
-rw-r--r--.github/workflows/lockdown.yml2
-rw-r--r--.github/workflows/macos-logray.yml63
-rw-r--r--.github/workflows/macos.yml14
-rw-r--r--.github/workflows/msys2.yml6
-rw-r--r--.github/workflows/options.yml2
-rw-r--r--.github/workflows/ubuntu.yml6
-rw-r--r--.github/workflows/windows.yml8
-rw-r--r--.gitlab-ci.yml32
-rw-r--r--AUTHORS31
-rw-r--r--CMakeLists.txt125
-rw-r--r--CMakeOptions.txt6
-rw-r--r--NEWS229
-rw-r--r--WiresharkConfig.cmake.in13
-rw-r--r--capinfos.c10
-rw-r--r--capture/airpcap_loader.c10
-rw-r--r--capture/capture-wpcap.c2
-rw-r--r--capture/capture_ifinfo.c2
-rw-r--r--capture/capture_sync.c2
-rw-r--r--capture/ws80211_utils.c2
-rw-r--r--capture_opts.c10
-rw-r--r--capture_opts.h4
-rw-r--r--cfile.h2
-rw-r--r--cmake/external/lua53/Lua53.cmake2
-rw-r--r--cmake/modules/FindAMRNB.cmake10
-rw-r--r--cmake/modules/FindLua.cmake13
-rw-r--r--cmake/modules/UseCheckAPI.cmake2
-rw-r--r--cmake/modules/UseMakePluginReg.cmake13
-rw-r--r--cmake/modules/WiresharkPlugin.cmake35
-rw-r--r--cmakeconfig.h.in9
-rw-r--r--dftest.c24
-rw-r--r--doc/README.developer8
-rw-r--r--doc/README.dissector2
-rw-r--r--doc/README.heuristic2
-rw-r--r--doc/README.plugins127
-rw-r--r--doc/README.tapping2
-rw-r--r--doc/README.wslua6
-rw-r--r--doc/files.adoc431
-rw-r--r--doc/packet-PROTOABBREV.c2
-rw-r--r--doc/plugins.example/CMakeLists.txt6
-rw-r--r--doc/plugins.example/hello.c26
-rw-r--r--doc/rawshark.adoc204
-rw-r--r--doc/release-notes.adoc156
-rw-r--r--doc/tshark.adoc214
-rw-r--r--doc/wireshark.adoc329
-rw-r--r--docbook/CMakeLists.txt2
-rw-r--r--docbook/wsdg_src/images/ws-function-blocks.diabin3343 -> 3354 bytes
-rw-r--r--docbook/wsdg_src/images/ws-function-blocks.pngbin10555 -> 0 bytes
-rw-r--r--docbook/wsdg_src/images/ws-function-blocks.svg449
-rw-r--r--docbook/wsdg_src/wsdg_asn2wrs.adoc2
-rw-r--r--docbook/wsdg_src/wsdg_libraries.adoc8
-rw-r--r--docbook/wsdg_src/wsdg_lua_support.adoc10
-rw-r--r--docbook/wsdg_src/wsdg_works.adoc2
-rw-r--r--docbook/wsug_src/images/ws-pref-protocols.pngbin10711 -> 42690 bytes
-rw-r--r--docbook/wsug_src/tshark-h.txt3
-rw-r--r--docbook/wsug_src/wsug_customize.adoc11
-rw-r--r--docbook/wsug_src/wsug_files.adoc71
-rw-r--r--docbook/wsug_src/wsug_statistics.adoc5
-rw-r--r--dumpcap.c50
-rw-r--r--editcap.c67
-rw-r--r--epan/.clang-tidy1
-rw-r--r--epan/CMakeLists.txt2
-rw-r--r--epan/addr_resolv.c87
-rw-r--r--epan/addr_resolv.h16
-rw-r--r--epan/app_mem_usage.c2
-rw-r--r--epan/capture_dissectors.c4
-rw-r--r--epan/capture_dissectors.h2
-rw-r--r--epan/color_filters.c254
-rw-r--r--epan/color_filters.h72
-rw-r--r--epan/column-info.h48
-rw-r--r--epan/column-utils.c251
-rw-r--r--epan/column-utils.h50
-rw-r--r--epan/column.c196
-rw-r--r--epan/column.h60
-rw-r--r--epan/conv_id.h4
-rw-r--r--epan/conversation.c559
-rw-r--r--epan/conversation.h76
-rw-r--r--epan/conversation_filter.c6
-rw-r--r--epan/conversation_filter.h4
-rw-r--r--epan/conversation_table.c47
-rw-r--r--epan/conversation_table.h19
-rw-r--r--epan/crypt/dot11decrypt.c35
-rw-r--r--epan/decode_as.c30
-rw-r--r--epan/decode_as.h8
-rw-r--r--epan/dfilter/.editorconfig4
-rw-r--r--epan/dfilter/CMakeLists.txt2
-rw-r--r--epan/dfilter/dfilter-macro-uat.c2
-rw-r--r--epan/dfilter/dfilter-macro.c2
-rw-r--r--epan/dfilter/dfilter-plugin.c2
-rw-r--r--epan/dfilter/dfilter-translator.c321
-rw-r--r--epan/dfilter/dfilter-translator.h64
-rw-r--r--epan/dfilter/dfilter.c36
-rw-r--r--epan/dfilter/dfilter.h9
-rw-r--r--epan/dfilter/dfunctions.c4
-rw-r--r--epan/dfilter/dfvm.c1
-rw-r--r--epan/dfilter/dfvm.h1
-rw-r--r--epan/dfilter/sttype-field.h10
-rw-r--r--epan/dfilter/sttype-op.h11
-rw-r--r--epan/dfilter/syntax-tree.h10
-rw-r--r--epan/disabled_protos.c36
-rw-r--r--epan/disabled_protos.h8
-rw-r--r--epan/dissectors/.clang-tidy3
-rw-r--r--epan/dissectors/CMakeLists.txt9
-rw-r--r--epan/dissectors/README.X116
-rw-r--r--epan/dissectors/asn1/acse/packet-acse-template.c4
-rw-r--r--epan/dissectors/asn1/ain/packet-ain-template.c6
-rw-r--r--epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c6
-rw-r--r--epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c12
-rw-r--r--epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c17
-rw-r--r--epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c15
-rw-r--r--epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c32
-rw-r--r--epan/dissectors/asn1/c1222/packet-c1222-template.c86
-rw-r--r--epan/dissectors/asn1/camel/packet-camel-template.c16
-rw-r--r--epan/dissectors/asn1/cdt/packet-cdt-template.c6
-rw-r--r--epan/dissectors/asn1/cmip/packet-cmip-template.c2
-rw-r--r--epan/dissectors/asn1/cmp/packet-cmp-template.c6
-rw-r--r--epan/dissectors/asn1/cms/packet-cms-template.c6
-rw-r--r--epan/dissectors/asn1/disp/packet-disp-template.c2
-rw-r--r--epan/dissectors/asn1/dop/packet-dop-template.c4
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Constants.asn25
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-IEs.asn81
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/e1ap/e1ap.cnf11
-rw-r--r--epan/dissectors/asn1/e1ap/packet-e1ap-template.c2
-rw-r--r--epan/dissectors/asn1/e2ap/packet-e2ap-template.c2
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-Constants.asn2
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-IEs.asn14
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn2
-rw-r--r--epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/f1ap/f1ap.cnf6
-rw-r--r--epan/dissectors/asn1/f1ap/packet-f1ap-template.c4
-rw-r--r--epan/dissectors/asn1/gdt/packet-gdt-template.c2
-rw-r--r--epan/dissectors/asn1/glow/packet-glow-template.c2
-rw-r--r--epan/dissectors/asn1/goose/packet-goose-template.c2
-rw-r--r--epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c2
-rw-r--r--epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c6
-rw-r--r--epan/dissectors/asn1/h225/h225.cnf2
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.c54
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.h2
-rw-r--r--epan/dissectors/asn1/h245/h245.cnf2
-rw-r--r--epan/dissectors/asn1/h245/packet-h245-template.c28
-rw-r--r--epan/dissectors/asn1/h248/packet-h248-template.c18
-rw-r--r--epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c2
-rw-r--r--epan/dissectors/asn1/h460/packet-h460-template.c4
-rw-r--r--epan/dissectors/asn1/h501/packet-h501-template.c2
-rw-r--r--epan/dissectors/asn1/idmp/packet-idmp-template.c12
-rw-r--r--epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c2
-rw-r--r--epan/dissectors/asn1/ilp/packet-ilp-template.c2
-rw-r--r--epan/dissectors/asn1/inap/packet-inap-template.c8
-rw-r--r--epan/dissectors/asn1/its/packet-its-template.c4
-rw-r--r--epan/dissectors/asn1/kerberos/k5.asn72
-rw-r--r--epan/dissectors/asn1/kerberos/kerberos.cnf9
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.c205
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.h30
-rw-r--r--epan/dissectors/asn1/ldap/ldap.cnf2
-rw-r--r--epan/dissectors/asn1/ldap/packet-ldap-template.c40
-rw-r--r--epan/dissectors/asn1/lix2/lix2.cnf3
-rw-r--r--epan/dissectors/asn1/lix2/packet-lix2-template.c2
-rw-r--r--epan/dissectors/asn1/lpp/packet-lpp-template.c2
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn27
-rw-r--r--epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn2
-rw-r--r--epan/dissectors/asn1/lte-rrc/lte-rrc.cnf8
-rw-r--r--epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c54
-rw-r--r--epan/dissectors/asn1/m3ap/packet-m3ap-template.c2
-rw-r--r--epan/dissectors/asn1/mms/mms.asn483
-rw-r--r--epan/dissectors/asn1/mms/mms.cnf886
-rw-r--r--epan/dissectors/asn1/mms/packet-mms-template.c762
-rw-r--r--epan/dissectors/asn1/nbap/packet-nbap-template.c6
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-Constants.asn2
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-IEs.asn4
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn2
-rw-r--r--epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/ngap/ngap.cnf9
-rw-r--r--epan/dissectors/asn1/ngap/packet-ngap-template.c30
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn2
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn96
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn2
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn2
-rw-r--r--epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn2
-rw-r--r--epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn2
-rw-r--r--epan/dissectors/asn1/nr-rrc/nr-rrc.cnf131
-rw-r--r--epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c18
-rw-r--r--epan/dissectors/asn1/p7/packet-p7-template.c2
-rw-r--r--epan/dissectors/asn1/pcap/packet-pcap-template.c2
-rw-r--r--epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c10
-rw-r--r--epan/dissectors/asn1/pres/packet-pres-template.c8
-rw-r--r--epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c2
-rw-r--r--epan/dissectors/asn1/qsig/packet-qsig-template.c6
-rw-r--r--epan/dissectors/asn1/ranap/packet-ranap-template.c12
-rw-r--r--epan/dissectors/asn1/rnsap/packet-rnsap-template.c6
-rw-r--r--epan/dissectors/asn1/ros/packet-ros-template.c8
-rw-r--r--epan/dissectors/asn1/rrc/packet-rrc-template.c28
-rw-r--r--epan/dissectors/asn1/rtse/packet-rtse-template.c10
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Constants.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-IEs.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn2
-rw-r--r--epan/dissectors/asn1/s1ap/packet-s1ap-template.c52
-rw-r--r--epan/dissectors/asn1/s1ap/s1ap.cnf5
-rw-r--r--epan/dissectors/asn1/sabp/packet-sabp-template.c2
-rw-r--r--epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c2
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c28
-rw-r--r--epan/dissectors/asn1/spnego/packet-spnego-template.c15
-rw-r--r--epan/dissectors/asn1/spnego/spnego.asn17
-rw-r--r--epan/dissectors/asn1/spnego/spnego.cnf33
-rw-r--r--epan/dissectors/asn1/sv/packet-sv-template.c2
-rw-r--r--epan/dissectors/asn1/t124/packet-t124-template.c6
-rw-r--r--epan/dissectors/asn1/t125/packet-t125-template.c2
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.c22
-rw-r--r--epan/dissectors/asn1/tcap/packet-tcap-template.c28
-rw-r--r--epan/dissectors/asn1/tetra/packet-tetra-template.c2
-rw-r--r--epan/dissectors/asn1/ulp/packet-ulp-template.c2
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-Constants.asn11
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-IEs.asn9
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn12
-rw-r--r--epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/x2ap/packet-x2ap-template.c52
-rw-r--r--epan/dissectors/asn1/x2ap/x2ap.cnf7
-rw-r--r--epan/dissectors/asn1/x509af/packet-x509af-template.c2
-rw-r--r--epan/dissectors/asn1/x509if/packet-x509if-template.c16
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn2
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-Constants.asn2
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-Containers.asn2
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-IEs.asn6
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn12
-rw-r--r--epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn2
-rw-r--r--epan/dissectors/asn1/xnap/packet-xnap-template.c47
-rw-r--r--epan/dissectors/asn1/xnap/xnap.cnf10
-rw-r--r--epan/dissectors/asn1/z3950/packet-z3950-template.c4
-rw-r--r--epan/dissectors/dcerpc/budb/packet-dcerpc-budb-template.c2
-rw-r--r--epan/dissectors/dcerpc/butc/packet-dcerpc-butc-template.c2
-rw-r--r--epan/dissectors/file-btsnoop.c2
-rw-r--r--epan/dissectors/file-mp4.c10
-rw-r--r--epan/dissectors/file-pcap.c2
-rw-r--r--epan/dissectors/file-pcapng.c4
-rw-r--r--epan/dissectors/file-rfc7468.c4
-rw-r--r--epan/dissectors/packet-2dparityfec.c4
-rw-r--r--epan/dissectors/packet-3g-a11.c4
-rw-r--r--epan/dissectors/packet-5co-legacy.c20
-rw-r--r--epan/dissectors/packet-5co-rap.c20
-rw-r--r--epan/dissectors/packet-6lowpan.c8
-rw-r--r--epan/dissectors/packet-9p.c2
-rw-r--r--epan/dissectors/packet-HI2Operations.c226
-rw-r--r--epan/dissectors/packet-a21.c4
-rw-r--r--epan/dissectors/packet-acdr.c2
-rw-r--r--epan/dissectors/packet-acn.c18
-rw-r--r--epan/dissectors/packet-acp133.c40
-rw-r--r--epan/dissectors/packet-acr122.c2
-rw-r--r--epan/dissectors/packet-acse.c74
-rw-r--r--epan/dissectors/packet-adb.c4
-rw-r--r--epan/dissectors/packet-adb_cs.c2
-rw-r--r--epan/dissectors/packet-adb_service.c16
-rw-r--r--epan/dissectors/packet-adwin.c4
-rw-r--r--epan/dissectors/packet-aeron.c40
-rw-r--r--epan/dissectors/packet-afp.c10
-rw-r--r--epan/dissectors/packet-afs.c4
-rw-r--r--epan/dissectors/packet-aim.c6
-rw-r--r--epan/dissectors/packet-ain.c354
-rw-r--r--epan/dissectors/packet-alcap.c10
-rw-r--r--epan/dissectors/packet-amp.c4
-rw-r--r--epan/dissectors/packet-amqp.c2
-rw-r--r--epan/dissectors/packet-ansi_637.c8
-rw-r--r--epan/dissectors/packet-ansi_683.c6
-rw-r--r--epan/dissectors/packet-ansi_a.c222
-rw-r--r--epan/dissectors/packet-ansi_map.c452
-rw-r--r--epan/dissectors/packet-ansi_tcap.c56
-rw-r--r--epan/dissectors/packet-aoe.c4
-rw-r--r--epan/dissectors/packet-aol.c2
-rw-r--r--epan/dissectors/packet-ap1394.c2
-rw-r--r--epan/dissectors/packet-aprs.c2
-rw-r--r--epan/dissectors/packet-arcnet.c4
-rw-r--r--epan/dissectors/packet-armagetronad.c2
-rw-r--r--epan/dissectors/packet-arp.c14
-rw-r--r--epan/dissectors/packet-artemis.c2
-rw-r--r--epan/dissectors/packet-aruba-erm.c2
-rw-r--r--epan/dissectors/packet-aruba-papi.c2
-rw-r--r--epan/dissectors/packet-aruba-ubt.c7
-rw-r--r--epan/dissectors/packet-asam-cmp.c16
-rw-r--r--epan/dissectors/packet-asap.c4
-rw-r--r--epan/dissectors/packet-assa_r3.c4
-rw-r--r--epan/dissectors/packet-asterix.c5893
-rw-r--r--epan/dissectors/packet-at.c16
-rw-r--r--epan/dissectors/packet-atalk.c12
-rw-r--r--epan/dissectors/packet-atm.c6
-rw-r--r--epan/dissectors/packet-atn-cm.c47
-rw-r--r--epan/dissectors/packet-atn-cpdlc.c299
-rw-r--r--epan/dissectors/packet-atn-sl.c238
-rw-r--r--epan/dissectors/packet-atn-ulcs.c82
-rw-r--r--epan/dissectors/packet-autosar-ipdu-multiplexer.c38
-rw-r--r--epan/dissectors/packet-autosar-nm.c6
-rw-r--r--epan/dissectors/packet-ax25-kiss.c4
-rw-r--r--epan/dissectors/packet-ax25-nol3.c4
-rw-r--r--epan/dissectors/packet-ax25.c2
-rw-r--r--epan/dissectors/packet-ayiya.c2
-rw-r--r--epan/dissectors/packet-bacapp.c58
-rw-r--r--epan/dissectors/packet-bacnet.c10
-rw-r--r--epan/dissectors/packet-bacnet.h2
-rw-r--r--epan/dissectors/packet-beep.c6
-rw-r--r--epan/dissectors/packet-ber.c37
-rw-r--r--epan/dissectors/packet-bfcp.c2
-rw-r--r--epan/dissectors/packet-bgp.c56
-rw-r--r--epan/dissectors/packet-bitcoin.c2
-rw-r--r--epan/dissectors/packet-bittorrent.c4
-rw-r--r--epan/dissectors/packet-bluetooth.c22
-rw-r--r--epan/dissectors/packet-bmp.c2
-rw-r--r--epan/dissectors/packet-bootparams.c2
-rw-r--r--epan/dissectors/packet-bpdu.c6
-rw-r--r--epan/dissectors/packet-bpq.c2
-rw-r--r--epan/dissectors/packet-bpsec.c6
-rw-r--r--epan/dissectors/packet-bpv6.c10
-rw-r--r--epan/dissectors/packet-bpv7.c32
-rw-r--r--epan/dissectors/packet-brdwlk.c2
-rw-r--r--epan/dissectors/packet-bssap.c14
-rw-r--r--epan/dissectors/packet-bssgp.c190
-rw-r--r--epan/dissectors/packet-bt-utp.c8
-rw-r--r--epan/dissectors/packet-btatt.c197
-rw-r--r--epan/dissectors/packet-btavctp.c4
-rw-r--r--epan/dissectors/packet-btavdtp.c12
-rw-r--r--epan/dissectors/packet-btavrcp.c4
-rw-r--r--epan/dissectors/packet-btbnep.c2
-rw-r--r--epan/dissectors/packet-bthci_acl.c10
-rw-r--r--epan/dissectors/packet-bthci_cmd.c6
-rw-r--r--epan/dissectors/packet-bthci_iso.c4
-rw-r--r--epan/dissectors/packet-bthci_sco.c2
-rw-r--r--epan/dissectors/packet-bthcrp.c6
-rw-r--r--epan/dissectors/packet-bthfp.c2
-rw-r--r--epan/dissectors/packet-bthid.c2
-rw-r--r--epan/dissectors/packet-bthsp.c2
-rw-r--r--epan/dissectors/packet-btle.c87
-rw-r--r--epan/dissectors/packet-btmesh-pbadv.c2
-rw-r--r--epan/dissectors/packet-btmesh-proxy.c2
-rw-r--r--epan/dissectors/packet-btmesh.c20
-rw-r--r--epan/dissectors/packet-btrfcomm.c24
-rw-r--r--epan/dissectors/packet-btsdp.c8
-rw-r--r--epan/dissectors/packet-bvlc.c4
-rw-r--r--epan/dissectors/packet-bzr.c4
-rw-r--r--epan/dissectors/packet-c1222.c104
-rw-r--r--epan/dissectors/packet-c15ch.c12
-rw-r--r--epan/dissectors/packet-calcappprotocol.c6
-rw-r--r--epan/dissectors/packet-camel.c408
-rw-r--r--epan/dissectors/packet-caneth.c11
-rw-r--r--epan/dissectors/packet-canopen.c2
-rw-r--r--epan/dissectors/packet-capwap.c8
-rw-r--r--epan/dissectors/packet-carp.c6
-rw-r--r--epan/dissectors/packet-cast.c2
-rw-r--r--epan/dissectors/packet-catapult-dct2000.c15
-rw-r--r--epan/dissectors/packet-cattp.c2
-rw-r--r--epan/dissectors/packet-cdt.c14
-rw-r--r--epan/dissectors/packet-ceph.c9
-rw-r--r--epan/dissectors/packet-cesoeth.c4
-rw-r--r--epan/dissectors/packet-charging_ase.c60
-rw-r--r--epan/dissectors/packet-chdlc.c4
-rw-r--r--epan/dissectors/packet-cigi.c48
-rw-r--r--epan/dissectors/packet-cimetrics.c2
-rw-r--r--epan/dissectors/packet-cip.c20
-rw-r--r--epan/dissectors/packet-cipmotion.c2
-rw-r--r--epan/dissectors/packet-cisco-fp-mim.c2
-rw-r--r--epan/dissectors/packet-clnp.c21
-rw-r--r--epan/dissectors/packet-cmip.c246
-rw-r--r--epan/dissectors/packet-cmp.c102
-rw-r--r--epan/dissectors/packet-cms.c166
-rw-r--r--epan/dissectors/packet-collectd.c14
-rw-r--r--epan/dissectors/packet-communityid.c4
-rw-r--r--epan/dissectors/packet-componentstatus.c12
-rw-r--r--epan/dissectors/packet-cops.c6
-rw-r--r--epan/dissectors/packet-corosync-totemnet.c4
-rw-r--r--epan/dissectors/packet-cose.c42
-rw-r--r--epan/dissectors/packet-couchbase.c27
-rw-r--r--epan/dissectors/packet-cp2179.c4
-rw-r--r--epan/dissectors/packet-cpfi.c5
-rw-r--r--epan/dissectors/packet-cql.c271
-rw-r--r--epan/dissectors/packet-credssp.c20
-rw-r--r--epan/dissectors/packet-crmf.c52
-rw-r--r--epan/dissectors/packet-csn1.c4
-rw-r--r--epan/dissectors/packet-csn1.h11
-rw-r--r--epan/dissectors/packet-ctdb.c4
-rw-r--r--epan/dissectors/packet-dap.c348
-rw-r--r--epan/dissectors/packet-data.c8
-rw-r--r--epan/dissectors/packet-db-lsp.c4
-rw-r--r--epan/dissectors/packet-dbus.c4
-rw-r--r--epan/dissectors/packet-dccp.c10
-rw-r--r--epan/dissectors/packet-dcerpc-atsvc.c148
-rw-r--r--epan/dissectors/packet-dcerpc-bossvr.c4
-rw-r--r--epan/dissectors/packet-dcerpc-browser.c4
-rw-r--r--epan/dissectors/packet-dcerpc-budb.c2
-rw-r--r--epan/dissectors/packet-dcerpc-butc.c2
-rw-r--r--epan/dissectors/packet-dcerpc-cds_clerkserver.c2
-rw-r--r--epan/dissectors/packet-dcerpc-cds_solicit.c2
-rw-r--r--epan/dissectors/packet-dcerpc-clusapi.c1742
-rw-r--r--epan/dissectors/packet-dcerpc-conv.c4
-rw-r--r--epan/dissectors/packet-dcerpc-cprpc_server.c2
-rw-r--r--epan/dissectors/packet-dcerpc-dce122.c2
-rw-r--r--epan/dissectors/packet-dcerpc-dfs.c408
-rw-r--r--epan/dissectors/packet-dcerpc-dnsserver.c318
-rw-r--r--epan/dissectors/packet-dcerpc-drsuapi.c1904
-rw-r--r--epan/dissectors/packet-dcerpc-dssetup.c54
-rw-r--r--epan/dissectors/packet-dcerpc-dtsprovider.c2
-rw-r--r--epan/dissectors/packet-dcerpc-dtsstime_req.c2
-rw-r--r--epan/dissectors/packet-dcerpc-efs.c78
-rw-r--r--epan/dissectors/packet-dcerpc-epm.c2
-rw-r--r--epan/dissectors/packet-dcerpc-eventlog.c326
-rw-r--r--epan/dissectors/packet-dcerpc-fileexp.c2
-rw-r--r--epan/dissectors/packet-dcerpc-fldb.c2
-rw-r--r--epan/dissectors/packet-dcerpc-frsapi.c2
-rw-r--r--epan/dissectors/packet-dcerpc-frsrpc.c410
-rw-r--r--epan/dissectors/packet-dcerpc-frsrpc.h2
-rw-r--r--epan/dissectors/packet-dcerpc-frstrans.c228
-rw-r--r--epan/dissectors/packet-dcerpc-frstrans.h2
-rw-r--r--epan/dissectors/packet-dcerpc-fsrvp.c86
-rw-r--r--epan/dissectors/packet-dcerpc-ftserver.c2
-rw-r--r--epan/dissectors/packet-dcerpc-icl_rpc.c2
-rw-r--r--epan/dissectors/packet-dcerpc-initshutdown.c38
-rw-r--r--epan/dissectors/packet-dcerpc-iwbemlevel1login.c82
-rw-r--r--epan/dissectors/packet-dcerpc-iwbemloginclientid.c26
-rw-r--r--epan/dissectors/packet-dcerpc-iwbemloginclientidex.c36
-rw-r--r--epan/dissectors/packet-dcerpc-iwbemservices.c64
-rw-r--r--epan/dissectors/packet-dcerpc-krb5rpc.c2
-rw-r--r--epan/dissectors/packet-dcerpc-llb.c2
-rw-r--r--epan/dissectors/packet-dcerpc-lsa.c1291
-rw-r--r--epan/dissectors/packet-dcerpc-lsa.h2
-rw-r--r--epan/dissectors/packet-dcerpc-mapi.c3797
-rw-r--r--epan/dissectors/packet-dcerpc-mdssvc.c94
-rw-r--r--epan/dissectors/packet-dcerpc-messenger.c2
-rw-r--r--epan/dissectors/packet-dcerpc-mgmt.c2
-rw-r--r--epan/dissectors/packet-dcerpc-misc.c38
-rw-r--r--epan/dissectors/packet-dcerpc-netlogon.c163
-rw-r--r--epan/dissectors/packet-dcerpc-netlogon.h1
-rw-r--r--epan/dissectors/packet-dcerpc-nspi.c278
-rw-r--r--epan/dissectors/packet-dcerpc-nt.c32
-rw-r--r--epan/dissectors/packet-dcerpc-nt.h5
-rw-r--r--epan/dissectors/packet-dcerpc-pnp.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rdaclif.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rep_proc.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rfr.c24
-rw-r--r--epan/dissectors/packet-dcerpc-roverride.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rpriv.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rras.c4
-rw-r--r--epan/dissectors/packet-dcerpc-rs_acct.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_attr.c4
-rw-r--r--epan/dissectors/packet-dcerpc-rs_attr_schema.c4
-rw-r--r--epan/dissectors/packet-dcerpc-rs_bind.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_misc.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_pgo.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_plcy.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_prop_acct.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_prop_acl.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_prop_attr.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_prop_pgo.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_prop_plcy.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_pwd_mgmt.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_repadm.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_replist.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_repmgr.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rs_unix.c2
-rw-r--r--epan/dissectors/packet-dcerpc-rsec_login.c2
-rw-r--r--epan/dissectors/packet-dcerpc-samr.c1332
-rw-r--r--epan/dissectors/packet-dcerpc-secidmap.c2
-rw-r--r--epan/dissectors/packet-dcerpc-spoolss.c4
-rw-r--r--epan/dissectors/packet-dcerpc-srvsvc.c2
-rw-r--r--epan/dissectors/packet-dcerpc-svcctl.c726
-rw-r--r--epan/dissectors/packet-dcerpc-tapi.c2
-rw-r--r--epan/dissectors/packet-dcerpc-taskschedulerservice.c2
-rw-r--r--epan/dissectors/packet-dcerpc-tkn4int.c2
-rw-r--r--epan/dissectors/packet-dcerpc-trksvr.c2
-rw-r--r--epan/dissectors/packet-dcerpc-ubikdisk.c2
-rw-r--r--epan/dissectors/packet-dcerpc-ubikvote.c2
-rw-r--r--epan/dissectors/packet-dcerpc-update.c2
-rw-r--r--epan/dissectors/packet-dcerpc-winreg.c328
-rw-r--r--epan/dissectors/packet-dcerpc-winspool.c708
-rw-r--r--epan/dissectors/packet-dcerpc-witness.c134
-rw-r--r--epan/dissectors/packet-dcerpc-wkssvc.c2
-rw-r--r--epan/dissectors/packet-dcerpc-wzcsvc.c6
-rw-r--r--epan/dissectors/packet-dcerpc.c271
-rw-r--r--epan/dissectors/packet-dcerpc.h36
-rw-r--r--epan/dissectors/packet-dcm.c16
-rw-r--r--epan/dissectors/packet-dcom-dispatch.c4
-rw-r--r--epan/dissectors/packet-dcom-oxid.c4
-rw-r--r--epan/dissectors/packet-dcom-provideclassinfo.c4
-rw-r--r--epan/dissectors/packet-dcom-remact.c4
-rw-r--r--epan/dissectors/packet-dcom-remunkn.c8
-rw-r--r--epan/dissectors/packet-dcom-sysact.c4
-rw-r--r--epan/dissectors/packet-dcom-typeinfo.c4
-rw-r--r--epan/dissectors/packet-dcom.c8
-rw-r--r--epan/dissectors/packet-dcom.h2
-rw-r--r--epan/dissectors/packet-dec-dnart.c4
-rw-r--r--epan/dissectors/packet-dect-mitel-eth.c6
-rw-r--r--epan/dissectors/packet-dect-mitel-rfp.c2
-rw-r--r--epan/dissectors/packet-dect-nwk.c2
-rw-r--r--epan/dissectors/packet-devicenet.c6
-rw-r--r--epan/dissectors/packet-dhcp-failover.c2
-rw-r--r--epan/dissectors/packet-dhcp.c12
-rw-r--r--epan/dissectors/packet-dhcpv6.c4
-rw-r--r--epan/dissectors/packet-diameter.c6
-rw-r--r--epan/dissectors/packet-diameter_3gpp.c20
-rw-r--r--epan/dissectors/packet-discard.c4
-rw-r--r--epan/dissectors/packet-disp.c114
-rw-r--r--epan/dissectors/packet-distcc.c2
-rw-r--r--epan/dissectors/packet-dji-uav.c2
-rw-r--r--epan/dissectors/packet-dlep.c2
-rw-r--r--epan/dissectors/packet-dlt.c6
-rw-r--r--epan/dissectors/packet-dmp.c20
-rw-r--r--epan/dissectors/packet-dmx.c4
-rw-r--r--epan/dissectors/packet-dnp.c2
-rw-r--r--epan/dissectors/packet-dns.c50
-rw-r--r--epan/dissectors/packet-do-irp.c2
-rw-r--r--epan/dissectors/packet-docsis-macmgmt.c3
-rw-r--r--epan/dissectors/packet-docsis.c10
-rw-r--r--epan/dissectors/packet-dof.c40
-rw-r--r--epan/dissectors/packet-doip.c14
-rw-r--r--epan/dissectors/packet-dop.c138
-rw-r--r--epan/dissectors/packet-drda.c2
-rw-r--r--epan/dissectors/packet-dsi.c2
-rw-r--r--epan/dissectors/packet-dsp.c142
-rw-r--r--epan/dissectors/packet-dtls.c1127
-rw-r--r--epan/dissectors/packet-dvb-s2-bb.c12
-rw-r--r--epan/dissectors/packet-dvbci.c14
-rw-r--r--epan/dissectors/packet-dvmrp.c2
-rw-r--r--epan/dissectors/packet-e1ap.c1177
-rw-r--r--epan/dissectors/packet-e212.c554
-rw-r--r--epan/dissectors/packet-e2ap.c1028
-rw-r--r--epan/dissectors/packet-eap.c14
-rw-r--r--epan/dissectors/packet-ecmp.c4
-rw-r--r--epan/dissectors/packet-ecpri.c9
-rw-r--r--epan/dissectors/packet-edonkey.c2
-rw-r--r--epan/dissectors/packet-eero.c2
-rw-r--r--epan/dissectors/packet-eigrp.c28
-rw-r--r--epan/dissectors/packet-eiss.c2
-rw-r--r--epan/dissectors/packet-enc.c2
-rw-r--r--epan/dissectors/packet-enip.c12
-rw-r--r--epan/dissectors/packet-enrp.c4
-rw-r--r--epan/dissectors/packet-enttec.c4
-rw-r--r--epan/dissectors/packet-eobi.c14
-rw-r--r--epan/dissectors/packet-epl.c75
-rw-r--r--epan/dissectors/packet-epmd.c14
-rw-r--r--epan/dissectors/packet-erf.c2
-rw-r--r--epan/dissectors/packet-erldp.c6
-rw-r--r--epan/dissectors/packet-ess.c62
-rw-r--r--epan/dissectors/packet-etag.c2
-rw-r--r--epan/dissectors/packet-etch.c10
-rw-r--r--epan/dissectors/packet-eth.c53
-rw-r--r--epan/dissectors/packet-eti.c12
-rw-r--r--epan/dissectors/packet-etsi_card_app_toolkit.c6
-rw-r--r--epan/dissectors/packet-etv.c2
-rw-r--r--epan/dissectors/packet-etw.c2
-rw-r--r--epan/dissectors/packet-evrc.c12
-rw-r--r--epan/dissectors/packet-evs.c2
-rw-r--r--epan/dissectors/packet-exec.c4
-rw-r--r--epan/dissectors/packet-f1ap.c2117
-rw-r--r--epan/dissectors/packet-f5ethtrailer.c42
-rw-r--r--epan/dissectors/packet-fc.c4
-rw-r--r--epan/dissectors/packet-fcdns.c2
-rw-r--r--epan/dissectors/packet-fcels.c2
-rw-r--r--epan/dissectors/packet-fcfcs.c2
-rw-r--r--epan/dissectors/packet-fcfzs.c22
-rw-r--r--epan/dissectors/packet-fcip.c8
-rw-r--r--epan/dissectors/packet-fcswils.c2
-rw-r--r--epan/dissectors/packet-fddi.c4
-rw-r--r--epan/dissectors/packet-fix.c57
-rw-r--r--epan/dissectors/packet-fix.h6450
-rw-r--r--epan/dissectors/packet-flexray.c12
-rw-r--r--epan/dissectors/packet-fmp.c2
-rw-r--r--epan/dissectors/packet-fmtp.c10
-rw-r--r--epan/dissectors/packet-forces.c6
-rw-r--r--epan/dissectors/packet-fp_mux.c4
-rw-r--r--epan/dissectors/packet-fr.c2
-rw-r--r--epan/dissectors/packet-fractalgeneratorprotocol.c6
-rw-r--r--epan/dissectors/packet-frame.c12
-rw-r--r--epan/dissectors/packet-ftam.c324
-rw-r--r--epan/dissectors/packet-ftdi-ft.c6
-rw-r--r--epan/dissectors/packet-ftdi-mpsse.c4
-rw-r--r--epan/dissectors/packet-ftp.c8
-rw-r--r--epan/dissectors/packet-fw1.c6
-rw-r--r--epan/dissectors/packet-gadu-gadu.c2
-rw-r--r--epan/dissectors/packet-gbcs.c9
-rw-r--r--epan/dissectors/packet-gdt.c44
-rw-r--r--epan/dissectors/packet-gearman.c4
-rw-r--r--epan/dissectors/packet-ged125.c2
-rw-r--r--epan/dissectors/packet-geonw.c4
-rw-r--r--epan/dissectors/packet-giop.c48
-rw-r--r--epan/dissectors/packet-giop.h11
-rw-r--r--epan/dissectors/packet-git.c2
-rw-r--r--epan/dissectors/packet-glow.c92
-rw-r--r--epan/dissectors/packet-gmhdr.c6
-rw-r--r--epan/dissectors/packet-gmr1_bcch.c4
-rw-r--r--epan/dissectors/packet-goose.c38
-rw-r--r--epan/dissectors/packet-gopher.c2
-rw-r--r--epan/dissectors/packet-gprs-llc.c2
-rw-r--r--epan/dissectors/packet-gprscdr.c202
-rw-r--r--epan/dissectors/packet-gquic.c6
-rw-r--r--epan/dissectors/packet-gre.c2
-rw-r--r--epan/dissectors/packet-grpc.c6
-rw-r--r--epan/dissectors/packet-gsm_a_bssmap.c212
-rw-r--r--epan/dissectors/packet-gsm_a_common.c50
-rw-r--r--epan/dissectors/packet-gsm_a_dtap.c38
-rw-r--r--epan/dissectors/packet-gsm_a_gm.c44
-rw-r--r--epan/dissectors/packet-gsm_a_rp.c22
-rw-r--r--epan/dissectors/packet-gsm_a_rr.c144
-rw-r--r--epan/dissectors/packet-gsm_abis_pgsl.c2
-rw-r--r--epan/dissectors/packet-gsm_bsslap.c30
-rw-r--r--epan/dissectors/packet-gsm_bssmap_le.c19
-rw-r--r--epan/dissectors/packet-gsm_gsup.c2
-rw-r--r--epan/dissectors/packet-gsm_ipa.c4
-rw-r--r--epan/dissectors/packet-gsm_map.c1282
-rw-r--r--epan/dissectors/packet-gsm_r_uus1.c4
-rw-r--r--epan/dissectors/packet-gsm_rlcmac.c48
-rw-r--r--epan/dissectors/packet-gsm_rlp.c2
-rw-r--r--epan/dissectors/packet-gsm_sms.c6
-rw-r--r--epan/dissectors/packet-gsm_sms_ud.c6
-rw-r--r--epan/dissectors/packet-gsm_um.c2
-rw-r--r--epan/dissectors/packet-gssapi.c3
-rw-r--r--epan/dissectors/packet-gtp.c215
-rw-r--r--epan/dissectors/packet-gtp.h2
-rw-r--r--epan/dissectors/packet-gtpv2.c503
-rw-r--r--epan/dissectors/packet-gtpv2.h2
-rw-r--r--epan/dissectors/packet-gvsp.c2
-rw-r--r--epan/dissectors/packet-h223.c2
-rw-r--r--epan/dissectors/packet-h225.c538
-rw-r--r--epan/dissectors/packet-h225.h2
-rw-r--r--epan/dissectors/packet-h235.c64
-rw-r--r--epan/dissectors/packet-h245.c1026
-rw-r--r--epan/dissectors/packet-h248.c306
-rw-r--r--epan/dissectors/packet-h248_3gpp.c2
-rw-r--r--epan/dissectors/packet-h248_annex_e.c4
-rw-r--r--epan/dissectors/packet-h248_q1950.c4
-rw-r--r--epan/dissectors/packet-h264.c21
-rw-r--r--epan/dissectors/packet-h265.c35
-rw-r--r--epan/dissectors/packet-h282.c286
-rw-r--r--epan/dissectors/packet-h283.c28
-rw-r--r--epan/dissectors/packet-h323.c26
-rw-r--r--epan/dissectors/packet-h450-ros.c18
-rw-r--r--epan/dissectors/packet-h450.c268
-rw-r--r--epan/dissectors/packet-h460.c122
-rw-r--r--epan/dissectors/packet-h501.c200
-rw-r--r--epan/dissectors/packet-hartip.c2
-rw-r--r--epan/dissectors/packet-hazelcast.c2
-rw-r--r--epan/dissectors/packet-hci_mon.c2
-rw-r--r--epan/dissectors/packet-hci_usb.c2
-rw-r--r--epan/dissectors/packet-hdcp2.c2
-rw-r--r--epan/dissectors/packet-hdfs.c4
-rw-r--r--epan/dissectors/packet-hip.c2
-rw-r--r--epan/dissectors/packet-hl7.c4
-rw-r--r--epan/dissectors/packet-hnbap.c128
-rw-r--r--epan/dissectors/packet-homeplug-av.c2
-rw-r--r--epan/dissectors/packet-homeplug.c8
-rw-r--r--epan/dissectors/packet-hp-erm.c2
-rw-r--r--epan/dissectors/packet-hpfeeds.c4
-rw-r--r--epan/dissectors/packet-hsfz.c10
-rw-r--r--epan/dissectors/packet-http.c615
-rw-r--r--epan/dissectors/packet-http.h12
-rw-r--r--epan/dissectors/packet-http2.c61
-rw-r--r--epan/dissectors/packet-http2.h4
-rw-r--r--epan/dissectors/packet-http3.c6
-rw-r--r--epan/dissectors/packet-i2c.c2
-rw-r--r--epan/dissectors/packet-iax2.c6
-rw-r--r--epan/dissectors/packet-icmp.c4
-rw-r--r--epan/dissectors/packet-icmpv6.c53
-rw-r--r--epan/dissectors/packet-icq.c8
-rw-r--r--epan/dissectors/packet-idmp.c32
-rw-r--r--epan/dissectors/packet-iec104.c786
-rw-r--r--epan/dissectors/packet-ieee1609dot2.c226
-rw-r--r--epan/dissectors/packet-ieee1722.c30
-rw-r--r--epan/dissectors/packet-ieee1905.c235
-rw-r--r--epan/dissectors/packet-ieee80211-prism.c2
-rw-r--r--epan/dissectors/packet-ieee80211-radio.c9
-rw-r--r--epan/dissectors/packet-ieee80211-radiotap-defs.h4
-rw-r--r--epan/dissectors/packet-ieee80211-radiotap-iter.c2
-rw-r--r--epan/dissectors/packet-ieee80211-radiotap.c8
-rw-r--r--epan/dissectors/packet-ieee80211-wlancap.c2
-rw-r--r--epan/dissectors/packet-ieee80211.c186
-rw-r--r--epan/dissectors/packet-ieee802154.c24
-rw-r--r--epan/dissectors/packet-ieee8021ah.c2
-rw-r--r--epan/dissectors/packet-ieee8021cb.c2
-rw-r--r--epan/dissectors/packet-ieee802a.c2
-rw-r--r--epan/dissectors/packet-ifcp.c6
-rw-r--r--epan/dissectors/packet-ilp.c304
-rw-r--r--epan/dissectors/packet-imap.c4
-rw-r--r--epan/dissectors/packet-imf.c10
-rw-r--r--epan/dissectors/packet-imf.h2
-rw-r--r--epan/dissectors/packet-inap.c480
-rw-r--r--epan/dissectors/packet-infiniband.c4
-rw-r--r--epan/dissectors/packet-ip.c28
-rw-r--r--epan/dissectors/packet-ipars.c2
-rw-r--r--epan/dissectors/packet-ipdc.c12
-rw-r--r--epan/dissectors/packet-iperf.c4
-rw-r--r--epan/dissectors/packet-iperf3.c12
-rw-r--r--epan/dissectors/packet-ipfc.c2
-rw-r--r--epan/dissectors/packet-ipmi.c6
-rw-r--r--epan/dissectors/packet-ippusb.c16
-rw-r--r--epan/dissectors/packet-ipsec.c20
-rw-r--r--epan/dissectors/packet-ipsi-ctl.c2
-rw-r--r--epan/dissectors/packet-ipv6.c63
-rw-r--r--epan/dissectors/packet-ipx.c4
-rw-r--r--epan/dissectors/packet-irdma.c1977
-rw-r--r--epan/dissectors/packet-irdma.h23
-rw-r--r--epan/dissectors/packet-isakmp.c18
-rw-r--r--epan/dissectors/packet-iscsi.c8
-rw-r--r--epan/dissectors/packet-isdn-sup.c134
-rw-r--r--epan/dissectors/packet-isis-lsp.c32
-rw-r--r--epan/dissectors/packet-isl.c2
-rw-r--r--epan/dissectors/packet-ismacryp.c16
-rw-r--r--epan/dissectors/packet-isns.c2
-rw-r--r--epan/dissectors/packet-iso10681.c12
-rw-r--r--epan/dissectors/packet-iso14443.c2
-rw-r--r--epan/dissectors/packet-iso15765.c129
-rw-r--r--epan/dissectors/packet-iso7816.c22
-rw-r--r--epan/dissectors/packet-iso8583.c2
-rw-r--r--epan/dissectors/packet-isobus-vt.c2
-rw-r--r--epan/dissectors/packet-isobus.c2
-rw-r--r--epan/dissectors/packet-isup.c16
-rw-r--r--epan/dissectors/packet-itdm.c2
-rw-r--r--epan/dissectors/packet-its.c1116
-rw-r--r--epan/dissectors/packet-iua.c6
-rw-r--r--epan/dissectors/packet-iuup.c6
-rw-r--r--epan/dissectors/packet-iwarp-ddp-rdmap.c2
-rw-r--r--epan/dissectors/packet-iwarp-mpa.c2
-rw-r--r--epan/dissectors/packet-ixiatrailer.c2
-rw-r--r--epan/dissectors/packet-ixveriwave.c50
-rw-r--r--epan/dissectors/packet-json.c12
-rw-r--r--epan/dissectors/packet-json_3gpp.c32
-rw-r--r--epan/dissectors/packet-jxta.c14
-rw-r--r--epan/dissectors/packet-k12.c8
-rw-r--r--epan/dissectors/packet-kafka.c1731
-rw-r--r--epan/dissectors/packet-kerberos.c568
-rw-r--r--epan/dissectors/packet-kerberos.h30
-rw-r--r--epan/dissectors/packet-knxip.c2
-rw-r--r--epan/dissectors/packet-kpasswd.c2
-rw-r--r--epan/dissectors/packet-kpm-v2.c158
-rw-r--r--epan/dissectors/packet-kt.c2
-rw-r--r--epan/dissectors/packet-l2tp.c2
-rw-r--r--epan/dissectors/packet-lacp.c2
-rw-r--r--epan/dissectors/packet-lapd.c10
-rw-r--r--epan/dissectors/packet-lapdm.c2
-rw-r--r--epan/dissectors/packet-laplink.c2
-rw-r--r--epan/dissectors/packet-lbm.c18
-rw-r--r--epan/dissectors/packet-lbm.h10
-rw-r--r--epan/dissectors/packet-lbmc.c24
-rw-r--r--epan/dissectors/packet-lbmpdm.c14
-rw-r--r--epan/dissectors/packet-lbmpdmtcp.c22
-rw-r--r--epan/dissectors/packet-lbmr.c36
-rw-r--r--epan/dissectors/packet-lbmsrs.c76
-rw-r--r--epan/dissectors/packet-lbtrm.c46
-rw-r--r--epan/dissectors/packet-lbtru.c52
-rw-r--r--epan/dissectors/packet-lbttcp.c28
-rw-r--r--epan/dissectors/packet-lcsap.c130
-rw-r--r--epan/dissectors/packet-ldap.c154
-rw-r--r--epan/dissectors/packet-ldp.c2
-rw-r--r--epan/dissectors/packet-lg8979.c2
-rw-r--r--epan/dissectors/packet-li5g.c2
-rw-r--r--epan/dissectors/packet-lin.c14
-rw-r--r--epan/dissectors/packet-link16.c27
-rw-r--r--epan/dissectors/packet-linx.c2
-rw-r--r--epan/dissectors/packet-lisp.c4
-rw-r--r--epan/dissectors/packet-lix2.c1130
-rw-r--r--epan/dissectors/packet-llc.c6
-rw-r--r--epan/dissectors/packet-lldp.c74
-rw-r--r--epan/dissectors/packet-llrp.c9
-rw-r--r--epan/dissectors/packet-lls-slt.c2
-rw-r--r--epan/dissectors/packet-lmp.c2
-rw-r--r--epan/dissectors/packet-lnpdqp.c6
-rw-r--r--epan/dissectors/packet-log3gpp.c4
-rw-r--r--epan/dissectors/packet-logcat-text.c16
-rw-r--r--epan/dissectors/packet-logcat.c2
-rw-r--r--epan/dissectors/packet-logotypecertextn.c38
-rw-r--r--epan/dissectors/packet-lorawan.c8
-rw-r--r--epan/dissectors/packet-lpp.c1830
-rw-r--r--epan/dissectors/packet-lppa.c194
-rw-r--r--epan/dissectors/packet-lppe.c1276
-rw-r--r--epan/dissectors/packet-lte-rrc.c8415
-rw-r--r--epan/dissectors/packet-ltp.c453
-rw-r--r--epan/dissectors/packet-lustre.c2
-rw-r--r--epan/dissectors/packet-lwapp.c2
-rw-r--r--epan/dissectors/packet-lwm.c12
-rw-r--r--epan/dissectors/packet-lwm2mtlv.c2
-rw-r--r--epan/dissectors/packet-lwres.c12
-rw-r--r--epan/dissectors/packet-m2ap.c184
-rw-r--r--epan/dissectors/packet-m2ua.c12
-rw-r--r--epan/dissectors/packet-m3ap.c96
-rw-r--r--epan/dissectors/packet-m3ua.c14
-rw-r--r--epan/dissectors/packet-mac-lte.c58
-rw-r--r--epan/dissectors/packet-mac-nr.c532
-rw-r--r--epan/dissectors/packet-mac-nr.h9
-rw-r--r--epan/dissectors/packet-macsec.c327
-rw-r--r--epan/dissectors/packet-matter.c61
-rw-r--r--epan/dissectors/packet-mausb.c2
-rw-r--r--epan/dissectors/packet-mbim.c10
-rw-r--r--epan/dissectors/packet-mbtcp.c12
-rw-r--r--epan/dissectors/packet-mcpe.c4
-rw-r--r--epan/dissectors/packet-mctp-control.c2
-rw-r--r--epan/dissectors/packet-mdshdr.c2
-rw-r--r--epan/dissectors/packet-megaco.c66
-rw-r--r--epan/dissectors/packet-memcache.c4
-rw-r--r--epan/dissectors/packet-metamako.c4
-rw-r--r--epan/dissectors/packet-mgcp.c6
-rw-r--r--epan/dissectors/packet-mka.c6
-rw-r--r--epan/dissectors/packet-mle.c2
-rw-r--r--epan/dissectors/packet-mms.c2362
-rw-r--r--epan/dissectors/packet-mndp.c2
-rw-r--r--epan/dissectors/packet-monero.c2
-rw-r--r--epan/dissectors/packet-mongo.c21
-rw-r--r--epan/dissectors/packet-mp2t.c2
-rw-r--r--epan/dissectors/packet-mpeg-audio.c4
-rw-r--r--epan/dissectors/packet-mpeg-dsmcc.c2
-rw-r--r--epan/dissectors/packet-mpeg-pes.c12
-rw-r--r--epan/dissectors/packet-mpeg-pmt.c2
-rw-r--r--epan/dissectors/packet-mpeg-sect.c8
-rw-r--r--epan/dissectors/packet-mpeg-sect.h4
-rw-r--r--epan/dissectors/packet-mpls-echo.c8
-rw-r--r--epan/dissectors/packet-mpls.c2
-rw-r--r--epan/dissectors/packet-mq-pcf.c15
-rw-r--r--epan/dissectors/packet-mq.c6
-rw-r--r--epan/dissectors/packet-mqtt.c32
-rw-r--r--epan/dissectors/packet-mrp-mmrp.c2
-rw-r--r--epan/dissectors/packet-mrp-msrp.c4
-rw-r--r--epan/dissectors/packet-mrp-mvrp.c2
-rw-r--r--epan/dissectors/packet-ms-do.c2
-rw-r--r--epan/dissectors/packet-msrp.c4
-rw-r--r--epan/dissectors/packet-mswsp.c18
-rw-r--r--epan/dissectors/packet-mtp2.c12
-rw-r--r--epan/dissectors/packet-mtp3.c10
-rw-r--r--epan/dissectors/packet-mtp3.h2
-rw-r--r--epan/dissectors/packet-multipart.c8
-rw-r--r--epan/dissectors/packet-mysql.c573
-rw-r--r--epan/dissectors/packet-nas_5gs.c40
-rw-r--r--epan/dissectors/packet-nas_eps.c91
-rw-r--r--epan/dissectors/packet-nasdaq-itch.c24
-rw-r--r--epan/dissectors/packet-nasdaq-soup.c2
-rw-r--r--epan/dissectors/packet-nbap.c3260
-rw-r--r--epan/dissectors/packet-nbd.c2
-rw-r--r--epan/dissectors/packet-nbt.c24
-rw-r--r--epan/dissectors/packet-ncp-int.h14
-rw-r--r--epan/dissectors/packet-ncp.c4
-rw-r--r--epan/dissectors/packet-ncp2222.inc124
-rw-r--r--epan/dissectors/packet-ndmp.c24
-rw-r--r--epan/dissectors/packet-ndps.c18
-rw-r--r--epan/dissectors/packet-netbios.c4
-rw-r--r--epan/dissectors/packet-netflow.c558
-rw-r--r--epan/dissectors/packet-netlink-route.c2
-rw-r--r--epan/dissectors/packet-netlink-sock_diag.c2
-rw-r--r--epan/dissectors/packet-netperfmeter.c4
-rw-r--r--epan/dissectors/packet-netrom.c2
-rw-r--r--epan/dissectors/packet-netsync.c2
-rw-r--r--epan/dissectors/packet-nfapi.c517
-rw-r--r--epan/dissectors/packet-nfs.c36
-rw-r--r--epan/dissectors/packet-nfs.h4
-rw-r--r--epan/dissectors/packet-ngap.c1589
-rw-r--r--epan/dissectors/packet-nhrp.c2
-rw-r--r--epan/dissectors/packet-nist-csor.c2
-rw-r--r--epan/dissectors/packet-nlm.c10
-rw-r--r--epan/dissectors/packet-nmea0183.c650
-rw-r--r--epan/dissectors/packet-noe.c12
-rw-r--r--epan/dissectors/packet-nordic_ble.c4
-rw-r--r--epan/dissectors/packet-novell_pkis.c32
-rw-r--r--epan/dissectors/packet-nr-rrc.c7988
-rw-r--r--epan/dissectors/packet-nrppa.c672
-rw-r--r--epan/dissectors/packet-ns_cert_exts.c2
-rw-r--r--epan/dissectors/packet-nsip.c2
-rw-r--r--epan/dissectors/packet-ntlmssp.c100
-rw-r--r--epan/dissectors/packet-ntp.c25
-rw-r--r--epan/dissectors/packet-null.c2
-rw-r--r--epan/dissectors/packet-nvme-mi.c2
-rw-r--r--epan/dissectors/packet-nvme-tcp.c4
-rw-r--r--epan/dissectors/packet-oampdu.c2
-rw-r--r--epan/dissectors/packet-obex.c18
-rw-r--r--epan/dissectors/packet-ocp1.c6
-rw-r--r--epan/dissectors/packet-ocsp.c38
-rw-r--r--epan/dissectors/packet-oer.c4
-rw-r--r--epan/dissectors/packet-oer.h6
-rw-r--r--epan/dissectors/packet-olsr.c6
-rw-r--r--epan/dissectors/packet-omron-fins.c2
-rw-r--r--epan/dissectors/packet-opa-fe.c4
-rw-r--r--epan/dissectors/packet-opa-mad.c18
-rw-r--r--epan/dissectors/packet-openflow.c4
-rw-r--r--epan/dissectors/packet-openflow_v6.c4
-rw-r--r--epan/dissectors/packet-opensafety.c36
-rw-r--r--epan/dissectors/packet-openvpn.c8
-rw-r--r--epan/dissectors/packet-openwire.c4
-rw-r--r--epan/dissectors/packet-opsi.c21
-rw-r--r--epan/dissectors/packet-oran.c16
-rw-r--r--epan/dissectors/packet-osc.c23
-rw-r--r--epan/dissectors/packet-oscore.c6
-rw-r--r--epan/dissectors/packet-osi-options.c218
-rw-r--r--epan/dissectors/packet-osi.c2
-rw-r--r--epan/dissectors/packet-ositp.c10
-rw-r--r--epan/dissectors/packet-osmo_trx.c6
-rw-r--r--epan/dissectors/packet-ospf.c10
-rw-r--r--epan/dissectors/packet-p1.c358
-rw-r--r--epan/dissectors/packet-p22.c258
-rw-r--r--epan/dissectors/packet-p7.c270
-rw-r--r--epan/dissectors/packet-p772.c54
-rw-r--r--epan/dissectors/packet-p_mul.c12
-rw-r--r--epan/dissectors/packet-pathport.c2
-rw-r--r--epan/dissectors/packet-pcap.c866
-rw-r--r--epan/dissectors/packet-pcap_pktdata.c2
-rw-r--r--epan/dissectors/packet-pcli.c2
-rw-r--r--epan/dissectors/packet-pcomtcp.c2
-rw-r--r--epan/dissectors/packet-pdc.c8
-rw-r--r--epan/dissectors/packet-pdcp-lte.c30
-rw-r--r--epan/dissectors/packet-pdcp-nr.c106
-rw-r--r--epan/dissectors/packet-pdu-transport.c12
-rw-r--r--epan/dissectors/packet-peekremote.c182
-rw-r--r--epan/dissectors/packet-per.c73
-rw-r--r--epan/dissectors/packet-per.h6
-rw-r--r--epan/dissectors/packet-pfcp.c407
-rw-r--r--epan/dissectors/packet-pgm.c10
-rw-r--r--epan/dissectors/packet-pim.c107
-rw-r--r--epan/dissectors/packet-pingpongprotocol.c6
-rw-r--r--epan/dissectors/packet-pkcs1.c24
-rw-r--r--epan/dissectors/packet-pkcs10.c10
-rw-r--r--epan/dissectors/packet-pkcs12.c48
-rw-r--r--epan/dissectors/packet-pkinit.c22
-rw-r--r--epan/dissectors/packet-pkix1explicit.c46
-rw-r--r--epan/dissectors/packet-pkix1implicit.c12
-rw-r--r--epan/dissectors/packet-pkixac.c36
-rw-r--r--epan/dissectors/packet-pkixproxy.c4
-rw-r--r--epan/dissectors/packet-pkixqualified.c14
-rw-r--r--epan/dissectors/packet-pkixtsp.c14
-rw-r--r--epan/dissectors/packet-pktap.c2
-rw-r--r--epan/dissectors/packet-pldm.c6
-rw-r--r--epan/dissectors/packet-pop.c2
-rw-r--r--epan/dissectors/packet-ppi.c4
-rw-r--r--epan/dissectors/packet-ppp.c16
-rw-r--r--epan/dissectors/packet-pppoe.c2
-rw-r--r--epan/dissectors/packet-pres.c80
-rw-r--r--epan/dissectors/packet-protobuf.c106
-rw-r--r--epan/dissectors/packet-ptp.c6
-rw-r--r--epan/dissectors/packet-ptpip.c4
-rw-r--r--epan/dissectors/packet-pvfs2.c4
-rw-r--r--epan/dissectors/packet-pw-atm.c8
-rw-r--r--epan/dissectors/packet-pw-satop.c4
-rw-r--r--epan/dissectors/packet-q931.c6
-rw-r--r--epan/dissectors/packet-q932-ros.c22
-rw-r--r--epan/dissectors/packet-q932.c26
-rw-r--r--epan/dissectors/packet-qnet6.c2
-rw-r--r--epan/dissectors/packet-qsig.c720
-rw-r--r--epan/dissectors/packet-quake2.c2
-rw-r--r--epan/dissectors/packet-quakeworld.c4
-rw-r--r--epan/dissectors/packet-quic.c385
-rw-r--r--epan/dissectors/packet-radius.c8
-rw-r--r--epan/dissectors/packet-raknet.c17
-rw-r--r--epan/dissectors/packet-ranap.c714
-rw-r--r--epan/dissectors/packet-raw.c2
-rw-r--r--epan/dissectors/packet-rdt.c2
-rw-r--r--epan/dissectors/packet-realtek.c3
-rw-r--r--epan/dissectors/packet-reload.c14
-rw-r--r--epan/dissectors/packet-resp.c2
-rw-r--r--epan/dissectors/packet-rf4ce-nwk.c4
-rw-r--r--epan/dissectors/packet-rf4ce-secur.c10
-rw-r--r--epan/dissectors/packet-rfid-pn532.c2
-rw-r--r--epan/dissectors/packet-rip.c2
-rw-r--r--epan/dissectors/packet-rlc-lte.c26
-rw-r--r--epan/dissectors/packet-rlc-nr.c16
-rw-r--r--epan/dissectors/packet-rmt-alc.c2
-rw-r--r--epan/dissectors/packet-rnsap.c2862
-rw-r--r--epan/dissectors/packet-rohc.c8
-rw-r--r--epan/dissectors/packet-ros.c26
-rw-r--r--epan/dissectors/packet-rpc.c28
-rw-r--r--epan/dissectors/packet-rpcap.c6
-rw-r--r--epan/dissectors/packet-rpcrdma.c10
-rw-r--r--epan/dissectors/packet-rrc.c13904
-rw-r--r--epan/dissectors/packet-rrlp.c512
-rw-r--r--epan/dissectors/packet-rsh.c6
-rw-r--r--epan/dissectors/packet-rsl.c6
-rw-r--r--epan/dissectors/packet-rsvd.c4
-rw-r--r--epan/dissectors/packet-rsvp.c20
-rw-r--r--epan/dissectors/packet-rsync.c4
-rw-r--r--epan/dissectors/packet-rtag.c14
-rw-r--r--epan/dissectors/packet-rtcp.c543
-rw-r--r--epan/dissectors/packet-rtitcp.c2
-rw-r--r--epan/dissectors/packet-rtmpt.c2
-rw-r--r--epan/dissectors/packet-rtp.c24
-rw-r--r--epan/dissectors/packet-rtpproxy.c8
-rw-r--r--epan/dissectors/packet-rtps-processed.c4
-rw-r--r--epan/dissectors/packet-rtps-virtual-transport.c6
-rw-r--r--epan/dissectors/packet-rtps.c26
-rw-r--r--epan/dissectors/packet-rtse.c26
-rw-r--r--epan/dissectors/packet-rtsp.c4
-rw-r--r--epan/dissectors/packet-rua.c72
-rw-r--r--epan/dissectors/packet-rudp.c2
-rw-r--r--epan/dissectors/packet-rx.c2
-rw-r--r--epan/dissectors/packet-s101.c4
-rw-r--r--epan/dissectors/packet-s1ap.c911
-rw-r--r--epan/dissectors/packet-s5066dts.c4
-rw-r--r--epan/dissectors/packet-s5066sis.c4
-rw-r--r--epan/dissectors/packet-sabp.c80
-rw-r--r--epan/dissectors/packet-sametime.c4
-rw-r--r--epan/dissectors/packet-sane.c2
-rw-r--r--epan/dissectors/packet-sapdiag.c22
-rw-r--r--epan/dissectors/packet-sapenqueue.c4
-rw-r--r--epan/dissectors/packet-saphdb.c6
-rwxr-xr-xepan/dissectors/packet-sapigs.c2
-rw-r--r--epan/dissectors/packet-sapms.c4
-rw-r--r--epan/dissectors/packet-sapni.c2
-rw-r--r--epan/dissectors/packet-saprouter.c2
-rw-r--r--epan/dissectors/packet-sasp.c4
-rw-r--r--epan/dissectors/packet-sbc-ap.c174
-rw-r--r--epan/dissectors/packet-sbus.c12
-rw-r--r--epan/dissectors/packet-sccp.c28
-rw-r--r--epan/dissectors/packet-scriptingservice.c4
-rw-r--r--epan/dissectors/packet-scsi-sbc.c2
-rw-r--r--epan/dissectors/packet-scsi.c4
-rw-r--r--epan/dissectors/packet-scte35.c6
-rw-r--r--epan/dissectors/packet-sctp.c42
-rw-r--r--epan/dissectors/packet-scylla.c2
-rw-r--r--epan/dissectors/packet-sdp.c80
-rw-r--r--epan/dissectors/packet-sdp.h4
-rw-r--r--epan/dissectors/packet-selfm.c8
-rw-r--r--epan/dissectors/packet-ses.c8
-rw-r--r--epan/dissectors/packet-sflow.c6
-rw-r--r--epan/dissectors/packet-sgsap.c37
-rw-r--r--epan/dissectors/packet-sigcomp.c12
-rw-r--r--epan/dissectors/packet-signal-pdu.c118
-rw-r--r--epan/dissectors/packet-simulcrypt.c2
-rw-r--r--epan/dissectors/packet-sip.c52
-rw-r--r--epan/dissectors/packet-skinny.c4
-rw-r--r--epan/dissectors/packet-skinny.c.in4
-rw-r--r--epan/dissectors/packet-sll.c4
-rw-r--r--epan/dissectors/packet-slsk.c288
-rw-r--r--epan/dissectors/packet-smb-direct.c2
-rw-r--r--epan/dissectors/packet-smb-sidsnooping.c8
-rw-r--r--epan/dissectors/packet-smb.c297
-rw-r--r--epan/dissectors/packet-smb.h34
-rw-r--r--epan/dissectors/packet-smb2.c263
-rw-r--r--epan/dissectors/packet-smb2.h4
-rw-r--r--epan/dissectors/packet-sml.c9
-rw-r--r--epan/dissectors/packet-smp.c2
-rw-r--r--epan/dissectors/packet-smpp.c4
-rw-r--r--epan/dissectors/packet-smrse.c22
-rw-r--r--epan/dissectors/packet-smtp.c8
-rw-r--r--epan/dissectors/packet-sna.c2
-rw-r--r--epan/dissectors/packet-snmp.c66
-rw-r--r--epan/dissectors/packet-snort.c10
-rw-r--r--epan/dissectors/packet-socketcan.c44
-rw-r--r--epan/dissectors/packet-socks.c6
-rw-r--r--epan/dissectors/packet-solaredge.c4
-rw-r--r--epan/dissectors/packet-someip-sd.c4
-rw-r--r--epan/dissectors/packet-someip.c116
-rw-r--r--epan/dissectors/packet-soupbintcp.c2
-rw-r--r--epan/dissectors/packet-sparkplug.c2
-rw-r--r--epan/dissectors/packet-spdy.c10
-rw-r--r--epan/dissectors/packet-spice.c8
-rw-r--r--epan/dissectors/packet-spnego.c98
-rw-r--r--epan/dissectors/packet-sprt.c4
-rw-r--r--epan/dissectors/packet-srt.c8
-rw-r--r--epan/dissectors/packet-srvloc.c2
-rw-r--r--epan/dissectors/packet-ssh.c13
-rw-r--r--epan/dissectors/packet-sstp.c2
-rw-r--r--epan/dissectors/packet-starteam.c2
-rw-r--r--epan/dissectors/packet-stt.c4
-rw-r--r--epan/dissectors/packet-stun.c2
-rw-r--r--epan/dissectors/packet-sua.c4
-rw-r--r--epan/dissectors/packet-sv.c10
-rw-r--r--epan/dissectors/packet-sysdig-event.c4
-rw-r--r--epan/dissectors/packet-syslog.c2
-rw-r--r--epan/dissectors/packet-systemd-journal.c2
-rw-r--r--epan/dissectors/packet-t124.c210
-rw-r--r--epan/dissectors/packet-t125.c14
-rw-r--r--epan/dissectors/packet-t38.c40
-rw-r--r--epan/dissectors/packet-tacacs.c4
-rw-r--r--epan/dissectors/packet-tali.c2
-rw-r--r--epan/dissectors/packet-tcap.c96
-rw-r--r--epan/dissectors/packet-tcg-cp-oids.c28
-rw-r--r--epan/dissectors/packet-tcp.c363
-rw-r--r--epan/dissectors/packet-tcp.h14
-rw-r--r--epan/dissectors/packet-tcpcl.c25
-rw-r--r--epan/dissectors/packet-tcpros.c4
-rw-r--r--epan/dissectors/packet-tdmop.c2
-rw-r--r--epan/dissectors/packet-tds.c12
-rw-r--r--epan/dissectors/packet-tecmp.c30
-rw-r--r--epan/dissectors/packet-telnet.c96
-rw-r--r--epan/dissectors/packet-teredo.c2
-rw-r--r--epan/dissectors/packet-tetra.c542
-rw-r--r--epan/dissectors/packet-tftp.c4
-rw-r--r--epan/dissectors/packet-thread.c8
-rw-r--r--epan/dissectors/packet-thrift.c10
-rw-r--r--epan/dissectors/packet-tibia.c26
-rw-r--r--epan/dissectors/packet-tipc.c34
-rw-r--r--epan/dissectors/packet-tls-utils.c426
-rw-r--r--epan/dissectors/packet-tls-utils.h30
-rw-r--r--epan/dissectors/packet-tls.c123
-rw-r--r--epan/dissectors/packet-tns.c2
-rw-r--r--epan/dissectors/packet-tpkt.c2
-rw-r--r--epan/dissectors/packet-tpm20.c2
-rw-r--r--epan/dissectors/packet-tpncp.c10
-rw-r--r--epan/dissectors/packet-tr.c4
-rw-r--r--epan/dissectors/packet-trmac.c2
-rw-r--r--epan/dissectors/packet-tzsp.c78
-rw-r--r--epan/dissectors/packet-u3v.c2
-rw-r--r--epan/dissectors/packet-ua3g.c7
-rw-r--r--epan/dissectors/packet-uasip.c6
-rw-r--r--epan/dissectors/packet-uaudp.c4
-rw-r--r--epan/dissectors/packet-uavcan-can.c4
-rw-r--r--epan/dissectors/packet-ubertooth.c2
-rw-r--r--epan/dissectors/packet-ubx-galileo_e1b_inav.c165
-rw-r--r--epan/dissectors/packet-uci.c4
-rw-r--r--epan/dissectors/packet-ucp.c2
-rw-r--r--epan/dissectors/packet-udp.c64
-rw-r--r--epan/dissectors/packet-udpcp.c10
-rw-r--r--epan/dissectors/packet-uds.c32
-rw-r--r--epan/dissectors/packet-ulp.c462
-rw-r--r--epan/dissectors/packet-uma.c2
-rw-r--r--epan/dissectors/packet-umts_fp.c12
-rw-r--r--epan/dissectors/packet-umts_mac.c4
-rw-r--r--epan/dissectors/packet-umts_rlc.c24
-rw-r--r--epan/dissectors/packet-usb-com.c2
-rw-r--r--epan/dissectors/packet-usb-dfu.c2
-rw-r--r--epan/dissectors/packet-usb-hid.c2
-rw-r--r--epan/dissectors/packet-usb-video.c3
-rw-r--r--epan/dissectors/packet-usb.c10
-rw-r--r--epan/dissectors/packet-usbll.c2
-rw-r--r--epan/dissectors/packet-usbms-bot.c4
-rw-r--r--epan/dissectors/packet-user_encap.c4
-rw-r--r--epan/dissectors/packet-v5ua.c2
-rw-r--r--epan/dissectors/packet-vcdu.c6
-rw-r--r--epan/dissectors/packet-vines.c2
-rw-r--r--epan/dissectors/packet-vlan.c56
-rw-r--r--epan/dissectors/packet-vnc.c59
-rw-r--r--epan/dissectors/packet-vrrp.c2
-rw-r--r--epan/dissectors/packet-vrt.c2
-rw-r--r--epan/dissectors/packet-vssmonitoring.c4
-rw-r--r--epan/dissectors/packet-vxlan.c4
-rw-r--r--epan/dissectors/packet-wassp.c174
-rw-r--r--epan/dissectors/packet-wbxml.c8
-rw-r--r--epan/dissectors/packet-wccp.c2
-rw-r--r--epan/dissectors/packet-websocket.c2
-rw-r--r--epan/dissectors/packet-windows-common.c4
-rw-r--r--epan/dissectors/packet-winsrepl.c2
-rw-r--r--epan/dissectors/packet-wireguard.c6
-rw-r--r--epan/dissectors/packet-wlancertextn.c2
-rw-r--r--epan/dissectors/packet-wlccp.c40
-rw-r--r--epan/dissectors/packet-wmio.c2
-rw-r--r--epan/dissectors/packet-wol.c6
-rw-r--r--epan/dissectors/packet-wow.c2091
-rw-r--r--epan/dissectors/packet-woww.c36
-rw-r--r--epan/dissectors/packet-x11.c4
-rw-r--r--epan/dissectors/packet-x25.c10
-rw-r--r--epan/dissectors/packet-x2ap.c1377
-rw-r--r--epan/dissectors/packet-x509af.c66
-rw-r--r--epan/dissectors/packet-x509ce.c126
-rw-r--r--epan/dissectors/packet-x509if.c174
-rw-r--r--epan/dissectors/packet-x509sat.c96
-rw-r--r--epan/dissectors/packet-xmcp.c32
-rw-r--r--epan/dissectors/packet-xml.c2
-rw-r--r--epan/dissectors/packet-xmpp.c2
-rw-r--r--epan/dissectors/packet-xnap.c1780
-rw-r--r--epan/dissectors/packet-xot.c4
-rw-r--r--epan/dissectors/packet-xra.c2
-rw-r--r--epan/dissectors/packet-xti.c12
-rw-r--r--epan/dissectors/packet-yami.c2
-rw-r--r--epan/dissectors/packet-ymsg.c4
-rw-r--r--epan/dissectors/packet-z21.c182
-rw-r--r--epan/dissectors/packet-z3950.c592
-rw-r--r--epan/dissectors/packet-zabbix.c105
-rw-r--r--epan/dissectors/packet-zbee-aps.c2
-rw-r--r--epan/dissectors/packet-zbee-direct.c20
-rw-r--r--epan/dissectors/packet-zbee-nwk-gp.c25
-rw-r--r--epan/dissectors/packet-zbee-nwk.c8
-rw-r--r--epan/dissectors/packet-zbee-security.c6
-rw-r--r--epan/dissectors/packet-zbee-tlv.c12
-rw-r--r--epan/dissectors/packet-zbee-zcl-general.c73
-rw-r--r--epan/dissectors/packet-zbee-zcl-ha.c5
-rw-r--r--epan/dissectors/packet-zbee-zcl-meas-sensing.c11
-rw-r--r--epan/dissectors/packet-zbee-zcl-misc.c2
-rw-r--r--epan/dissectors/packet-zbee-zcl-sas.c391
-rw-r--r--epan/dissectors/packet-zbee-zcl-se.c267
-rw-r--r--epan/dissectors/packet-zbee-zcl.c12
-rw-r--r--epan/dissectors/packet-zbee-zcl.h3
-rw-r--r--epan/dissectors/packet-zbncp.c2
-rw-r--r--epan/dissectors/packet-zep.c2
-rw-r--r--epan/dissectors/packet-zmtp.c868
-rw-r--r--epan/dissectors/packet-zrtp.c4
-rw-r--r--epan/dissectors/packet-zvt.c4
-rw-r--r--epan/dissectors/pidl/README14
-rw-r--r--epan/dissectors/pidl/dnsserver/dnsserver.cnf2
-rw-r--r--epan/dissectors/pidl/eventlog/eventlog.idl22
-rw-r--r--epan/dissectors/pidl/frsrpc/frsrpc.cnf4
-rw-r--r--epan/dissectors/pidl/frsrpc/frsrpc.idl6
-rw-r--r--epan/dissectors/pidl/frstrans/frstrans.idl2
-rw-r--r--epan/dissectors/pidl/lsa/lsa.cnf9
-rw-r--r--epan/dissectors/pidl/lsa/lsa.idl2
-rw-r--r--epan/dissectors/pidl/mapi/mapi.cnf29
-rw-r--r--epan/dissectors/pidl/samr/samr.cnf10
-rw-r--r--epan/dissectors/pidl/winreg/winreg.cnf2
-rw-r--r--epan/dissectors/usb.c52
-rw-r--r--epan/dissectors/x11-declarations.h21
-rw-r--r--epan/dissectors/x11-enum.h2
-rw-r--r--epan/dissectors/x11-extension-errors.h2
-rw-r--r--epan/dissectors/x11-extension-implementation.h67
-rw-r--r--epan/dissectors/x11-glx-render-enum.h2
-rw-r--r--epan/dissectors/x11-register-info.h23
-rw-r--r--epan/enterprises.c320
-rw-r--r--epan/epan.c60
-rw-r--r--epan/epan.h7
-rw-r--r--epan/ex-opt.c2
-rw-r--r--epan/exntest.c2
-rw-r--r--epan/expert.c16
-rw-r--r--epan/export_object.c2
-rw-r--r--epan/exported_pdu.c4
-rw-r--r--epan/filter_expressions.c6
-rw-r--r--epan/follow.c2
-rw-r--r--epan/follow.h11
-rw-r--r--epan/frame_data_sequence.c3
-rw-r--r--epan/funnel.c48
-rw-r--r--epan/funnel.h56
-rw-r--r--epan/guid-utils.c2
-rw-r--r--epan/introspection-enums.c3
-rw-r--r--epan/manuf-data.c828
-rw-r--r--epan/maxmind_db.c2
-rw-r--r--epan/oids.c28
-rw-r--r--epan/packet.c39
-rw-r--r--epan/packet.h9
-rw-r--r--epan/packet_info.h2
-rw-r--r--epan/params.h2
-rw-r--r--epan/pci-ids.c602
-rw-r--r--epan/plugin_if.c8
-rw-r--r--epan/prefs-int.h70
-rw-r--r--epan/prefs.c974
-rw-r--r--epan/prefs.h275
-rw-r--r--epan/print.c8
-rw-r--r--epan/print_stream.c96
-rw-r--r--epan/print_stream.h38
-rw-r--r--epan/proto.c171
-rw-r--r--epan/proto.h47
-rw-r--r--epan/protobuf-helper.c2
-rw-r--r--epan/protobuf_lang_tree.c4
-rw-r--r--epan/ptvcursor.h2
-rw-r--r--epan/range.c6
-rw-r--r--epan/reassemble.c8
-rw-r--r--epan/reassemble.h2
-rw-r--r--epan/reassemble_test.c6
-rw-r--r--epan/register.c2
-rw-r--r--epan/rtd_table.c2
-rw-r--r--epan/secrets.c72
-rw-r--r--epan/secrets.h21
-rw-r--r--epan/sequence_analysis.c55
-rw-r--r--epan/sequence_analysis.h5
-rw-r--r--epan/services-data.c4
-rw-r--r--epan/show_exception.c32
-rw-r--r--epan/srt_table.c2
-rw-r--r--epan/stat_tap_ui.c6
-rw-r--r--epan/stats_tree.c9
-rw-r--r--epan/stream.c2
-rw-r--r--epan/stream.h2
-rw-r--r--epan/tap.c10
-rw-r--r--epan/tap.h4
-rw-r--r--epan/tfs.c1
-rw-r--r--epan/tfs.h1
-rw-r--r--epan/tvbparse.h2
-rw-r--r--epan/tvbtest.c5
-rw-r--r--epan/tvbuff.h18
-rw-r--r--epan/tvbuff_rdp.c5
-rw-r--r--epan/tvbuff_snappy.c85
-rw-r--r--epan/uat-int.h2
-rw-r--r--epan/uat.c2
-rw-r--r--epan/uat.h5
-rw-r--r--epan/uat_load.l4
-rw-r--r--epan/value_string.c96
-rw-r--r--epan/wmem_scopes.c6
-rw-r--r--epan/wscbor.c10
-rw-r--r--epan/wscbor.h4
-rw-r--r--epan/wscbor_test.c29
-rw-r--r--epan/wslua/init_wslua.c227
-rw-r--r--epan/wslua/init_wslua.h10
-rw-r--r--epan/wslua/wslua.h279
-rw-r--r--epan/wslua/wslua_address.c24
-rw-r--r--epan/wslua/wslua_byte_array.c160
-rw-r--r--epan/wslua/wslua_capture_info.c34
-rw-r--r--epan/wslua/wslua_column.c40
-rw-r--r--epan/wslua/wslua_dir.c36
-rw-r--r--epan/wslua/wslua_dissector.c151
-rw-r--r--epan/wslua/wslua_dumper.c42
-rw-r--r--epan/wslua/wslua_field.c98
-rw-r--r--epan/wslua/wslua_file.c40
-rw-r--r--epan/wslua/wslua_file_common.h4
-rw-r--r--epan/wslua/wslua_file_handler.c152
-rw-r--r--epan/wslua/wslua_frame_info.c82
-rw-r--r--epan/wslua/wslua_gui.c108
-rw-r--r--epan/wslua/wslua_int64.c427
-rw-r--r--epan/wslua/wslua_internals.c66
-rw-r--r--epan/wslua/wslua_listener.c37
-rw-r--r--epan/wslua/wslua_nstime.c30
-rw-r--r--epan/wslua/wslua_pinfo.c90
-rw-r--r--epan/wslua/wslua_pref.c52
-rw-r--r--epan/wslua/wslua_proto.c81
-rw-r--r--epan/wslua/wslua_proto_expert.c24
-rw-r--r--epan/wslua/wslua_proto_field.c314
-rw-r--r--epan/wslua/wslua_struct.c146
-rw-r--r--epan/wslua/wslua_tree.c147
-rw-r--r--epan/wslua/wslua_tvb.c162
-rw-r--r--epan/wslua/wslua_utility.c121
-rw-r--r--epan/wslua/wslua_wtap.c30
-rw-r--r--extcap.c8
-rw-r--r--extcap/CMakeLists.txt7
-rw-r--r--extcap/androiddump.c2
-rw-r--r--extcap/ciscodump.c4
-rw-r--r--extcap/dpauxmon.c9
-rw-r--r--extcap/etl.c10
-rw-r--r--extcap/etw_message.c2
-rw-r--r--extcap/etw_ndiscap.c12
-rw-r--r--extcap/etwdump.c4
-rw-r--r--extcap/extcap-base.c8
-rw-r--r--extcap/falcodump.cpp5
-rw-r--r--extcap/randpktdump.c2
-rw-r--r--extcap/sdjournal.c2
-rw-r--r--extcap/sshdump.c2
-rw-r--r--extcap/udpdump.c2
-rw-r--r--extcap/wifidump.c2
-rw-r--r--extcap_parser.c178
-rw-r--r--extcap_parser.h84
-rw-r--r--file.c90
-rw-r--r--fileset.c34
-rw-r--r--fileset.h7
-rw-r--r--fix/FIX.xml4
-rw-r--r--fix/FIX43.xml2
-rw-r--r--fix/FIX50.xml4
-rw-r--r--fix/FIX50SP1.xml4
-rw-r--r--fix/FIX50SP2.xml4
-rw-r--r--fix/Values.xsl5
-rw-r--r--fix/hfDecl.xsl17
-rw-r--r--fix/hfField.xsl2
-rw-r--r--frame_tvbuff.c2
-rw-r--r--packaging/debian/control6
-rw-r--r--packaging/debian/headers-check.c2
-rw-r--r--packaging/debian/libwireshark0.install4
-rw-r--r--packaging/debian/libwiretap0.install2
-rw-r--r--packaging/debian/logray.config10
-rw-r--r--packaging/debian/logray.postinst.in50
-rw-r--r--packaging/debian/po/cs.po121
-rw-r--r--packaging/debian/po/da.po117
-rw-r--r--packaging/debian/po/de.po183
-rw-r--r--packaging/debian/po/es.po123
-rw-r--r--packaging/debian/po/eu.po117
-rw-r--r--packaging/debian/po/fi.po95
-rw-r--r--packaging/debian/po/fr.po119
-rw-r--r--packaging/debian/po/hu.po124
-rw-r--r--packaging/debian/po/id.po116
-rw-r--r--packaging/debian/po/it.po178
-rw-r--r--packaging/debian/po/ja.po121
-rw-r--r--packaging/debian/po/ko.po168
-rw-r--r--packaging/debian/po/nl.po119
-rw-r--r--packaging/debian/po/pt.po115
-rw-r--r--packaging/debian/po/pt_BR.po115
-rw-r--r--packaging/debian/po/ru.po179
-rw-r--r--packaging/debian/po/sk.po119
-rw-r--r--packaging/debian/po/sv.po172
-rw-r--r--packaging/debian/po/templates.pot69
-rw-r--r--packaging/debian/po/vi.po116
-rwxr-xr-xpackaging/debian/rules15
-rw-r--r--packaging/debian/templates35
-rwxr-xr-xpackaging/macosx/osx-app.sh.in6
-rw-r--r--packaging/nsis/CMakeLists.txt4
-rw-r--r--packaging/nsis/custom_plugins.txt2
-rw-r--r--packaging/nsis/logray-config.nsh.in3
-rw-r--r--packaging/nsis/logray.nsi20
-rw-r--r--packaging/nsis/mingw64-qt-mapping.txt2
-rw-r--r--packaging/nsis/windeployqt-to-nsis.py6
-rw-r--r--packaging/nsis/wireshark-config.nsh.in4
-rw-r--r--packaging/nsis/wireshark.nsi54
-rw-r--r--packaging/wix/CMakeLists.txt5
-rw-r--r--packaging/wix/Plugins.wxi42
-rw-r--r--plugins/.clang-tidy3
-rw-r--r--plugins/codecs/G711/CMakeLists.txt (renamed from plugins/codecs/g711/CMakeLists.txt)6
-rw-r--r--plugins/codecs/G711/G711decode.c (renamed from plugins/codecs/g711/G711decode.c)0
-rw-r--r--plugins/codecs/G722/CMakeLists.txt (renamed from plugins/codecs/g722/CMakeLists.txt)6
-rw-r--r--plugins/codecs/G722/G722decode.c (renamed from plugins/codecs/g722/G722decode.c)0
-rw-r--r--plugins/codecs/G726/CMakeLists.txt (renamed from plugins/codecs/g726/CMakeLists.txt)6
-rw-r--r--plugins/codecs/G726/G726decode.c (renamed from plugins/codecs/g726/G726decode.c)0
-rw-r--r--plugins/codecs/G729/CMakeLists.txt (renamed from plugins/codecs/g729/CMakeLists.txt)6
-rw-r--r--plugins/codecs/G729/G729decode.c (renamed from plugins/codecs/g729/G729decode.c)0
-rw-r--r--plugins/codecs/amrnb/CMakeLists.txt6
-rw-r--r--plugins/codecs/iLBC/CMakeLists.txt (renamed from plugins/codecs/ilbc/CMakeLists.txt)6
-rw-r--r--plugins/codecs/iLBC/iLBCdecode.c (renamed from plugins/codecs/ilbc/iLBCdecode.c)0
-rw-r--r--plugins/codecs/l16_mono/CMakeLists.txt6
-rw-r--r--plugins/codecs/opus_dec/CMakeLists.txt6
-rw-r--r--plugins/codecs/sbc/CMakeLists.txt6
-rw-r--r--plugins/epan/dfilter/ipaddr/CMakeLists.txt2
-rw-r--r--plugins/epan/dfilter/ipaddr/ipaddr.c24
-rw-r--r--plugins/epan/ethercat/CMakeLists.txt3
-rw-r--r--plugins/epan/falco_bridge/CMakeLists.txt10
-rw-r--r--plugins/epan/falco_bridge/packet-falco-bridge.c193
-rw-r--r--plugins/epan/falco_bridge/sinsp-span.cpp53
-rw-r--r--plugins/epan/gryphon/CMakeLists.txt3
-rw-r--r--plugins/epan/gryphon/packet-gryphon.c13
-rw-r--r--plugins/epan/irda/CMakeLists.txt3
-rw-r--r--plugins/epan/mate/CMakeLists.txt3
-rw-r--r--plugins/epan/mate/mate_runtime.c6
-rw-r--r--plugins/epan/mate/mate_util.c14
-rw-r--r--plugins/epan/mate/packet-mate.c14
-rw-r--r--plugins/epan/opcua/CMakeLists.txt3
-rw-r--r--plugins/epan/opcua/opcua.c4
-rw-r--r--plugins/epan/opcua/opcua_simpletypes.c11
-rw-r--r--plugins/epan/pluginifdemo/CMakeLists.txt3
-rw-r--r--plugins/epan/profinet/CMakeLists.txt3
-rw-r--r--plugins/epan/profinet/packet-dcerpc-pn-io.c885
-rw-r--r--plugins/epan/profinet/packet-dcom-cba-acco.c28
-rw-r--r--plugins/epan/profinet/packet-dcom-cba.c62
-rw-r--r--plugins/epan/profinet/packet-pn-rsi.c2
-rw-r--r--plugins/epan/profinet/packet-pn-rt.c12
-rw-r--r--plugins/epan/profinet/packet-pn.h2
-rw-r--r--plugins/epan/stats_tree/CMakeLists.txt3
-rw-r--r--plugins/epan/stats_tree/pinfo_stats_tree.c6
-rw-r--r--plugins/epan/transum/CMakeLists.txt3
-rw-r--r--plugins/epan/transum/decoders.c2
-rw-r--r--plugins/epan/transum/extractors.c8
-rw-r--r--plugins/epan/transum/extractors.h2
-rw-r--r--plugins/epan/transum/packet-transum.c6
-rw-r--r--plugins/epan/transum/preferences.h20
-rw-r--r--plugins/epan/unistim/CMakeLists.txt3
-rw-r--r--plugins/epan/wimax/CMakeLists.txt3
-rw-r--r--plugins/epan/wimax/mac_hd_generic_decoder.c12
-rw-r--r--plugins/epan/wimax/msg_dcd.c4
-rw-r--r--plugins/epan/wimax/msg_dlmap.c23
-rw-r--r--plugins/epan/wimax/msg_dreg.c3
-rw-r--r--plugins/epan/wimax/msg_pmc.c3
-rw-r--r--plugins/epan/wimax/msg_reg_req.c3
-rw-r--r--plugins/epan/wimax/msg_reg_rsp.c5
-rw-r--r--plugins/epan/wimax/msg_rng_req.c3
-rw-r--r--plugins/epan/wimax/msg_rng_rsp.c10
-rw-r--r--plugins/epan/wimax/msg_sbc.c5
-rw-r--r--plugins/epan/wimax/msg_ucd.c3
-rw-r--r--plugins/epan/wimax/msg_ulmap.c5
-rw-r--r--plugins/epan/wimax/packet-wmx.c14
-rw-r--r--plugins/epan/wimax/wimax_compact_dlmap_ie_decoder.c12
-rw-r--r--plugins/epan/wimax/wimax_pdu_decoder.c8
-rw-r--r--plugins/epan/wimax/wimax_prefs.h20
-rw-r--r--plugins/epan/wimax/wimax_utils.c8
-rw-r--r--plugins/epan/wimaxasncp/CMakeLists.txt3
-rw-r--r--plugins/epan/wimaxasncp/packet-wimaxasncp.c10
-rw-r--r--plugins/epan/wimaxmacphy/CMakeLists.txt3
-rw-r--r--plugins/wiretap/usbdump/CMakeLists.txt3
-rw-r--r--randpkt_core/randpkt_core.c5
-rw-r--r--rawshark.c4
-rw-r--r--reordercap.c6
-rw-r--r--resources/file_dlg_win32.rc147
-rw-r--r--resources/freedesktop/org.wireshark.Wireshark.metainfo.xml3
-rw-r--r--resources/logray.exe.manifest.in1
-rw-r--r--resources/protocols/radius/dictionary.huawei24
-rw-r--r--resources/share/logray/profiles/CloudTrail/preferences18
-rwxr-xr-xresources/stock_icons/svg-to-png.sh8
-rw-r--r--resources/wireshark.exe.manifest.in1
-rw-r--r--resources/wireshark.pc.in3
-rw-r--r--ringbuffer.c5
-rw-r--r--sharkd.c2
-rw-r--r--sharkd_daemon.c2
-rw-r--r--sharkd_session.c342
-rw-r--r--test/captures/quic-with-secrets.pcapngbin0 -> 44236 bytes
-rw-r--r--test/suite_decryption.py27
-rw-r--r--test/suite_dfilter/group_columns.py6
-rw-r--r--test/suite_dfilter/group_syntax.py7
-rw-r--r--test/suite_dissection.py12
-rw-r--r--test/suite_sharkd.py130
-rw-r--r--text2pcap.c52
-rw-r--r--tfshark.c8
-rwxr-xr-xtools/alpine-setup.sh16
-rwxr-xr-xtools/asn2wrs.py12
-rw-r--r--tools/asterix/packet-asterix-template.c45
-rwxr-xr-xtools/asterix/update-specs.py16
-rwxr-xr-xtools/check_spelling.py118
-rwxr-xr-xtools/check_typed_item_calls.py56
-rwxr-xr-xtools/convert-glib-types.py13
-rwxr-xr-xtools/convert_expert_add_info_format.pl7
-rwxr-xr-xtools/convert_proto_tree_add_text.pl7
-rwxr-xr-xtools/debian-setup.sh64
-rwxr-xr-xtools/eti2wireshark.py14
-rwxr-xr-xtools/fuzz-test.sh2
-rwxr-xr-xtools/generate-nl80211-fields.py4
-rwxr-xr-xtools/macos-setup-brew.sh37
-rw-r--r--tools/macos-setup-patches/falco-uthash_h-install.patch9
-rwxr-xr-xtools/macos-setup.sh256
-rwxr-xr-xtools/make-packet-dcm.py20
-rwxr-xr-xtools/make-pci-ids.py4
-rwxr-xr-xtools/make-plugin-reg.py61
-rw-r--r--tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm6
-rwxr-xr-xtools/pidl/tests/wireshark-ndr.pl2
-rwxr-xr-xtools/randpkt-test.sh2
-rwxr-xr-xtools/rpm-setup.sh13
-rw-r--r--tools/win-setup.ps115
-rw-r--r--tools/wireshark_words.txt124
-rw-r--r--tshark.c59
-rw-r--r--ui/CMakeLists.txt1
-rw-r--r--ui/alert_box.c36
-rw-r--r--ui/alert_box.h18
-rw-r--r--ui/capture.c116
-rw-r--r--ui/capture.h14
-rw-r--r--ui/capture_info.h4
-rw-r--r--ui/capture_ui_utils.c80
-rw-r--r--ui/capture_ui_utils.h28
-rw-r--r--ui/cli/simple_dialog.c8
-rw-r--r--ui/cli/tap-camelsrt.c14
-rw-r--r--ui/cli/tap-credentials.c6
-rw-r--r--ui/cli/tap-diameter-avp.c64
-rw-r--r--ui/cli/tap-endpoints.c18
-rw-r--r--ui/cli/tap-expert.c22
-rw-r--r--ui/cli/tap-exportobject.c28
-rw-r--r--ui/cli/tap-exportobject.h2
-rw-r--r--ui/cli/tap-flow.c14
-rw-r--r--ui/cli/tap-follow.c50
-rw-r--r--ui/cli/tap-funnel.c30
-rw-r--r--ui/cli/tap-gsm_astat.c4
-rw-r--r--ui/cli/tap-hosts.c26
-rw-r--r--ui/cli/tap-httpstat.c28
-rw-r--r--ui/cli/tap-icmpstat.c18
-rw-r--r--ui/cli/tap-icmpv6stat.c18
-rw-r--r--ui/cli/tap-iostat.c214
-rw-r--r--ui/cli/tap-iousers.c20
-rw-r--r--ui/cli/tap-macltestat.c80
-rw-r--r--ui/cli/tap-protocolinfo.c4
-rw-r--r--ui/cli/tap-protohierstat.c2
-rw-r--r--ui/cli/tap-protohierstat.h4
-rw-r--r--ui/cli/tap-rlcltestat.c44
-rw-r--r--ui/cli/tap-rpcprogs.c14
-rw-r--r--ui/cli/tap-rtd.c10
-rw-r--r--ui/cli/tap-rtp.c2
-rw-r--r--ui/cli/tap-rtspstat.c28
-rw-r--r--ui/cli/tap-sctpchunkstat.c18
-rw-r--r--ui/cli/tap-simple_stattable.c8
-rw-r--r--ui/cli/tap-sipstat.c46
-rw-r--r--ui/cli/tap-smbsids.c6
-rw-r--r--ui/cli/tap-srt.c30
-rw-r--r--ui/cli/tap-stats_tree.c6
-rw-r--r--ui/cli/tap-sv.c2
-rw-r--r--ui/cli/tap-voip.h2
-rw-r--r--ui/cli/tap-wspstat.c42
-rw-r--r--ui/commandline.c84
-rw-r--r--ui/commandline.h26
-rw-r--r--ui/decode_as_utils.c84
-rw-r--r--ui/decode_as_utils.h2
-rw-r--r--ui/dissect_opts.c42
-rw-r--r--ui/dissect_opts.h8
-rw-r--r--ui/export_pdu_ui_utils.c10
-rw-r--r--ui/export_pdu_ui_utils.h2
-rw-r--r--ui/failure_message.c22
-rw-r--r--ui/failure_message.h18
-rw-r--r--ui/file_dialog.c20
-rw-r--r--ui/file_dialog.h8
-rw-r--r--ui/firewall_rules.c114
-rw-r--r--ui/firewall_rules.h6
-rw-r--r--ui/help_url.c12
-rw-r--r--ui/help_url.h4
-rw-r--r--ui/iface_lists.c102
-rw-r--r--ui/iface_lists.h2
-rw-r--r--ui/iface_toolbar.c6
-rw-r--r--ui/iface_toolbar.h33
-rw-r--r--ui/io_graph_item.c67
-rw-r--r--ui/io_graph_item.h282
-rw-r--r--ui/language.c18
-rw-r--r--ui/language.h6
-rw-r--r--ui/logray/CMakeLists.txt14
-rw-r--r--ui/logray/logray_application.cpp4
-rw-r--r--ui/logray/logray_main.cpp58
-rw-r--r--ui/logray/logray_main_window.cpp288
-rw-r--r--ui/logray/logray_main_window.h17
-rw-r--r--ui/logray/logray_main_window_slots.cpp145
-rw-r--r--ui/main_statusbar.h6
-rw-r--r--ui/mcast_stream.c34
-rw-r--r--ui/mcast_stream.h50
-rw-r--r--ui/packet_list_utils.c30
-rw-r--r--ui/packet_list_utils.h16
-rw-r--r--ui/packet_range.c42
-rw-r--r--ui/packet_range.h72
-rw-r--r--ui/persfilepath_opt.c14
-rw-r--r--ui/persfilepath_opt.h2
-rw-r--r--ui/preference_utils.c48
-rw-r--r--ui/preference_utils.h24
-rw-r--r--ui/profile.c167
-rw-r--r--ui/profile.h27
-rw-r--r--ui/progress_dlg.h22
-rw-r--r--ui/proto_hier_stats.c34
-rw-r--r--ui/proto_hier_stats.h18
-rw-r--r--ui/qt/CMakeLists.txt14
-rw-r--r--ui/qt/about_dialog.cpp85
-rw-r--r--ui/qt/accordion_frame.cpp3
-rw-r--r--ui/qt/address_editor_frame.cpp6
-rw-r--r--ui/qt/bluetooth_att_server_attributes_dialog.cpp16
-rw-r--r--ui/qt/bluetooth_att_server_attributes_dialog.h2
-rw-r--r--ui/qt/bluetooth_device_dialog.cpp12
-rw-r--r--ui/qt/bluetooth_device_dialog.h24
-rw-r--r--ui/qt/bluetooth_devices_dialog.cpp12
-rw-r--r--ui/qt/bluetooth_devices_dialog.h2
-rw-r--r--ui/qt/bluetooth_hci_summary_dialog.cpp14
-rw-r--r--ui/qt/bluetooth_hci_summary_dialog.h2
-rw-r--r--ui/qt/capture_comment_dialog.cpp6
-rw-r--r--ui/qt/capture_comment_dialog.h2
-rw-r--r--ui/qt/capture_event.h1
-rw-r--r--ui/qt/capture_file.cpp12
-rw-r--r--ui/qt/capture_file.h10
-rw-r--r--ui/qt/capture_file_dialog.cpp128
-rw-r--r--ui/qt/capture_file_dialog.h16
-rw-r--r--ui/qt/capture_file_properties_dialog.cpp26
-rw-r--r--ui/qt/capture_file_properties_dialog.h2
-rw-r--r--ui/qt/capture_filter_syntax_worker.cpp13
-rw-r--r--ui/qt/capture_info_dialog.cpp2
-rw-r--r--ui/qt/capture_options_dialog.cpp46
-rw-r--r--ui/qt/capture_preferences_frame.cpp4
-rw-r--r--ui/qt/coloring_rules_dialog.cpp2
-rw-r--r--ui/qt/column_editor_frame.cpp2
-rw-r--r--ui/qt/column_preferences_frame.cpp2
-rw-r--r--ui/qt/compiled_filter_output.cpp4
-rw-r--r--ui/qt/conversation_colorize_action.cpp2
-rw-r--r--ui/qt/conversation_dialog.h2
-rw-r--r--ui/qt/conversation_hash_tables_dialog.cpp11
-rw-r--r--ui/qt/decode_as_dialog.cpp6
-rw-r--r--ui/qt/decode_as_dialog.h2
-rw-r--r--ui/qt/display_filter_expression_dialog.cpp4
-rw-r--r--ui/qt/expert_info_dialog.h2
-rw-r--r--ui/qt/export_dissection_dialog.cpp55
-rw-r--r--ui/qt/export_dissection_dialog.h10
-rw-r--r--ui/qt/export_object_action.cpp1
-rw-r--r--ui/qt/export_object_action.h1
-rw-r--r--ui/qt/export_object_dialog.cpp2
-rw-r--r--ui/qt/extcap_argument.cpp38
-rw-r--r--ui/qt/extcap_argument_multiselect.cpp2
-rw-r--r--ui/qt/extcap_options_dialog.cpp14
-rw-r--r--ui/qt/extcap_options_dialog.h2
-rw-r--r--ui/qt/file_set_dialog.cpp2
-rw-r--r--ui/qt/file_set_dialog.h2
-rw-r--r--ui/qt/filter_dialog.cpp6
-rw-r--r--ui/qt/filter_expression_frame.cpp2
-rw-r--r--ui/qt/firewall_rules_dialog.cpp8
-rw-r--r--ui/qt/firewall_rules_dialog.h8
-rw-r--r--ui/qt/follow_stream_action.cpp1
-rw-r--r--ui/qt/follow_stream_action.h1
-rw-r--r--ui/qt/follow_stream_dialog.cpp125
-rw-r--r--ui/qt/follow_stream_dialog.h21
-rw-r--r--ui/qt/font_color_preferences_frame.cpp5
-rw-r--r--ui/qt/funnel_statistics.cpp72
-rw-r--r--ui/qt/funnel_statistics.h14
-rw-r--r--ui/qt/funnel_string_dialog.cpp2
-rw-r--r--ui/qt/funnel_string_dialog.h2
-rw-r--r--ui/qt/funnel_text_dialog.cpp4
-rw-r--r--ui/qt/funnel_text_dialog.h6
-rw-r--r--ui/qt/geometry_state_dialog.cpp6
-rw-r--r--ui/qt/geometry_state_dialog.h13
-rw-r--r--ui/qt/glib_mainloop_on_qeventloop.cpp4
-rw-r--r--ui/qt/glib_mainloop_on_qeventloop.h5
-rw-r--r--ui/qt/gsm_map_summary_dialog.cpp4
-rw-r--r--ui/qt/iax2_analysis_dialog.cpp61
-rw-r--r--ui/qt/iax2_analysis_dialog.h7
-rw-r--r--ui/qt/import_text_dialog.cpp30
-rw-r--r--ui/qt/import_text_dialog.h4
-rw-r--r--ui/qt/interface_frame.cpp2
-rw-r--r--ui/qt/interface_frame.h2
-rw-r--r--ui/qt/interface_toolbar.cpp16
-rw-r--r--ui/qt/interface_toolbar.h2
-rw-r--r--ui/qt/interface_toolbar_reader.cpp4
-rw-r--r--ui/qt/io_graph_action.cpp126
-rw-r--r--ui/qt/io_graph_action.h47
-rw-r--r--ui/qt/io_graph_dialog.cpp1161
-rw-r--r--ui/qt/io_graph_dialog.h96
-rw-r--r--ui/qt/io_graph_dialog.ui32
-rw-r--r--ui/qt/layout_preferences_frame.cpp12
-rw-r--r--ui/qt/lbm_lbtrm_transport_dialog.cpp118
-rw-r--r--ui/qt/lbm_lbtrm_transport_dialog.h2
-rw-r--r--ui/qt/lbm_lbtru_transport_dialog.cpp174
-rw-r--r--ui/qt/lbm_lbtru_transport_dialog.h2
-rw-r--r--ui/qt/lbm_stream_dialog.cpp64
-rw-r--r--ui/qt/lbm_stream_dialog.h2
-rw-r--r--ui/qt/lte_mac_statistics_dialog.cpp4
-rw-r--r--ui/qt/lte_mac_statistics_dialog.h24
-rw-r--r--ui/qt/lte_rlc_graph_dialog.cpp28
-rw-r--r--ui/qt/lte_rlc_graph_dialog.h7
-rw-r--r--ui/qt/lte_rlc_statistics_dialog.cpp58
-rw-r--r--ui/qt/lte_rlc_statistics_dialog.h8
-rw-r--r--ui/qt/main.cpp44
-rw-r--r--ui/qt/main_application.cpp30
-rw-r--r--ui/qt/main_application.h16
-rw-r--r--ui/qt/main_status_bar.cpp8
-rw-r--r--ui/qt/main_status_bar.h2
-rw-r--r--ui/qt/main_window.cpp84
-rw-r--r--ui/qt/main_window.h21
-rw-r--r--ui/qt/main_window_preferences_frame.cpp2
-rw-r--r--ui/qt/manage_interfaces_dialog.cpp50
-rw-r--r--ui/qt/manage_interfaces_dialog.h1
-rw-r--r--ui/qt/manuf_dialog.cpp4
-rw-r--r--ui/qt/models/atap_data_model.cpp32
-rw-r--r--ui/qt/models/atap_data_model.h8
-rw-r--r--ui/qt/models/coloring_rules_delegate.cpp2
-rw-r--r--ui/qt/models/coloring_rules_model.cpp10
-rw-r--r--ui/qt/models/coloring_rules_model.h1
-rw-r--r--ui/qt/models/column_list_model.cpp5
-rw-r--r--ui/qt/models/decode_as_delegate.cpp16
-rw-r--r--ui/qt/models/decode_as_delegate.h9
-rw-r--r--ui/qt/models/decode_as_model.cpp32
-rw-r--r--ui/qt/models/decode_as_model.h29
-rw-r--r--ui/qt/models/dissector_tables_model.cpp8
-rw-r--r--ui/qt/models/enabled_protocols_model.cpp6
-rw-r--r--ui/qt/models/enabled_protocols_model.h2
-rw-r--r--ui/qt/models/expert_info_model.cpp6
-rw-r--r--ui/qt/models/export_objects_model.cpp4
-rw-r--r--ui/qt/models/fileset_entry_model.h2
-rw-r--r--ui/qt/models/filter_list_model.cpp4
-rw-r--r--ui/qt/models/interface_sort_filter_model.cpp2
-rw-r--r--ui/qt/models/interface_sort_filter_model.h2
-rw-r--r--ui/qt/models/interface_tree_model.cpp8
-rw-r--r--ui/qt/models/packet_list_model.cpp120
-rw-r--r--ui/qt/models/packet_list_model.h19
-rw-r--r--ui/qt/models/packet_list_record.cpp17
-rw-r--r--ui/qt/models/packet_list_record.h4
-rw-r--r--ui/qt/models/pref_delegate.cpp4
-rw-r--r--ui/qt/models/pref_models.cpp16
-rw-r--r--ui/qt/models/profile_model.cpp95
-rw-r--r--ui/qt/models/profile_model.h4
-rw-r--r--ui/qt/models/proto_tree_model.cpp4
-rw-r--r--ui/qt/models/proto_tree_model.h4
-rw-r--r--ui/qt/models/related_packet_delegate.cpp4
-rw-r--r--ui/qt/models/related_packet_delegate.h4
-rw-r--r--ui/qt/models/resolved_addresses_models.cpp20
-rw-r--r--ui/qt/models/uat_delegate.h1
-rw-r--r--ui/qt/models/uat_model.cpp81
-rw-r--r--ui/qt/models/uat_model.h2
-rw-r--r--ui/qt/models/voip_calls_info_model.cpp8
-rw-r--r--ui/qt/models/voip_calls_info_model.h1
-rw-r--r--ui/qt/module_preferences_scroll_area.cpp6
-rw-r--r--ui/qt/module_preferences_scroll_area.h2
-rw-r--r--ui/qt/mtp3_summary_dialog.cpp4
-rw-r--r--ui/qt/multicast_statistics_dialog.cpp10
-rw-r--r--ui/qt/packet_comment_dialog.h2
-rw-r--r--ui/qt/packet_dialog.cpp6
-rw-r--r--ui/qt/packet_list.cpp85
-rw-r--r--ui/qt/packet_list.h9
-rw-r--r--ui/qt/packet_range_group_box.cpp27
-rw-r--r--ui/qt/packet_range_group_box.h2
-rw-r--r--ui/qt/preference_editor_frame.cpp6
-rw-r--r--ui/qt/preferences_dialog.cpp46
-rw-r--r--ui/qt/preferences_dialog.h6
-rw-r--r--ui/qt/preferences_dialog.ui36
-rw-r--r--ui/qt/print_dialog.cpp46
-rw-r--r--ui/qt/print_dialog.h6
-rw-r--r--ui/qt/profile_dialog.cpp58
-rw-r--r--ui/qt/profile_dialog.h12
-rw-r--r--ui/qt/profile_dialog.ui40
-rw-r--r--ui/qt/progress_frame.cpp32
-rw-r--r--ui/qt/progress_frame.h12
-rw-r--r--ui/qt/proto_tree.cpp16
-rw-r--r--ui/qt/proto_tree.h2
-rw-r--r--ui/qt/protocol_hierarchy_dialog.cpp2
-rw-r--r--ui/qt/protocol_hierarchy_dialog.h2
-rw-r--r--ui/qt/protocol_preferences_menu.cpp6
-rw-r--r--ui/qt/remote_capture_dialog.cpp13
-rw-r--r--ui/qt/remote_capture_dialog.h2
-rw-r--r--ui/qt/resolved_addresses_dialog.cpp2
-rw-r--r--ui/qt/response_time_delay_dialog.cpp2
-rw-r--r--ui/qt/rpc_service_response_time_dialog.cpp26
-rw-r--r--ui/qt/rpc_service_response_time_dialog.h8
-rw-r--r--ui/qt/rsa_keys_frame.cpp8
-rw-r--r--ui/qt/rsa_keys_frame.h2
-rw-r--r--ui/qt/rtp_analysis_dialog.cpp18
-rw-r--r--ui/qt/rtp_analysis_dialog.h4
-rw-r--r--ui/qt/rtp_audio_stream.cpp30
-rw-r--r--ui/qt/rtp_audio_stream.h8
-rw-r--r--ui/qt/rtp_player_dialog.cpp53
-rw-r--r--ui/qt/rtp_player_dialog.h4
-rw-r--r--ui/qt/rtp_stream_dialog.cpp14
-rw-r--r--ui/qt/sctp_all_assocs_dialog.cpp2
-rw-r--r--ui/qt/sctp_all_assocs_dialog.h4
-rw-r--r--ui/qt/sctp_assoc_analyse_dialog.cpp8
-rw-r--r--ui/qt/sctp_assoc_analyse_dialog.h6
-rw-r--r--ui/qt/sctp_chunk_statistics_dialog.cpp12
-rw-r--r--ui/qt/sctp_chunk_statistics_dialog.h3
-rw-r--r--ui/qt/sctp_graph_arwnd_dialog.cpp6
-rw-r--r--ui/qt/sctp_graph_arwnd_dialog.h7
-rw-r--r--ui/qt/sctp_graph_byte_dialog.cpp10
-rw-r--r--ui/qt/sctp_graph_byte_dialog.h5
-rw-r--r--ui/qt/sctp_graph_dialog.cpp26
-rw-r--r--ui/qt/sctp_graph_dialog.h61
-rw-r--r--ui/qt/search_frame.cpp32
-rw-r--r--ui/qt/sequence_diagram.cpp11
-rw-r--r--ui/qt/sequence_diagram.h4
-rw-r--r--ui/qt/sequence_dialog.cpp183
-rw-r--r--ui/qt/sequence_dialog.h15
-rw-r--r--ui/qt/sequence_dialog.ui10
-rw-r--r--ui/qt/service_response_time_dialog.cpp10
-rw-r--r--ui/qt/show_packet_bytes_dialog.cpp20
-rw-r--r--ui/qt/show_packet_bytes_dialog.h3
-rw-r--r--ui/qt/simple_dialog.cpp12
-rw-r--r--ui/qt/simple_dialog.h2
-rw-r--r--ui/qt/simple_statistics_dialog.cpp6
-rw-r--r--ui/qt/stats_tree_dialog.cpp2
-rw-r--r--ui/qt/stats_tree_dialog.h2
-rw-r--r--ui/qt/supported_protocols_dialog.cpp2
-rw-r--r--ui/qt/tap_parameter_dialog.h2
-rw-r--r--ui/qt/tcp_stream_dialog.cpp134
-rw-r--r--ui/qt/tcp_stream_dialog.h7
-rw-r--r--ui/qt/time_shift_dialog.cpp10
-rw-r--r--ui/qt/time_shift_dialog.h2
-rw-r--r--ui/qt/uat_dialog.cpp6
-rw-r--r--ui/qt/uat_dialog.h2
-rw-r--r--ui/qt/uat_frame.cpp8
-rw-r--r--ui/qt/utils/color_utils.cpp5
-rw-r--r--ui/qt/utils/color_utils.h10
-rw-r--r--ui/qt/utils/data_printer.cpp72
-rw-r--r--ui/qt/utils/data_printer.h3
-rw-r--r--ui/qt/utils/frame_information.cpp4
-rw-r--r--ui/qt/utils/profile_switcher.cpp138
-rw-r--r--ui/qt/utils/profile_switcher.h48
-rw-r--r--ui/qt/utils/proto_node.cpp2
-rw-r--r--ui/qt/utils/qt_ui_utils.cpp24
-rw-r--r--ui/qt/utils/qt_ui_utils.h12
-rw-r--r--ui/qt/utils/rtp_audio_file.cpp12
-rw-r--r--ui/qt/utils/rtp_audio_file.h10
-rw-r--r--ui/qt/utils/rtp_audio_routing_filter.cpp2
-rw-r--r--ui/qt/utils/wireshark_zip_helper.cpp2
-rw-r--r--ui/qt/voip_calls_dialog.cpp25
-rw-r--r--ui/qt/voip_calls_dialog.h3
-rw-r--r--ui/qt/welcome_page.cpp4
-rw-r--r--ui/qt/welcome_page.h2
-rw-r--r--ui/qt/widgets/additional_toolbar.cpp22
-rw-r--r--ui/qt/widgets/byte_view_text.cpp1
-rw-r--r--ui/qt/widgets/capture_filter_combo.cpp2
-rw-r--r--ui/qt/widgets/capture_filter_edit.cpp4
-rw-r--r--ui/qt/widgets/copy_from_profile_button.h1
-rw-r--r--ui/qt/widgets/display_filter_combo.cpp8
-rw-r--r--ui/qt/widgets/display_filter_edit.cpp8
-rw-r--r--ui/qt/widgets/dissector_syntax_line_edit.cpp2
-rw-r--r--ui/qt/widgets/field_filter_edit.cpp6
-rw-r--r--ui/qt/widgets/filter_expression_toolbar.cpp8
-rw-r--r--ui/qt/widgets/filter_expression_toolbar.h2
-rw-r--r--ui/qt/widgets/follow_stream_text.cpp2
-rw-r--r--ui/qt/widgets/profile_tree_view.cpp63
-rw-r--r--ui/qt/widgets/profile_tree_view.h13
-rw-r--r--ui/qt/widgets/qcp_axis_ticker_si.cpp74
-rw-r--r--ui/qt/widgets/qcp_axis_ticker_si.h42
-rw-r--r--ui/qt/widgets/qcp_string_legend_item.cpp46
-rw-r--r--ui/qt/widgets/qcp_string_legend_item.h35
-rw-r--r--ui/qt/widgets/resize_header_view.cpp45
-rw-r--r--ui/qt/widgets/resize_header_view.h31
-rw-r--r--ui/qt/widgets/rtp_audio_graph.cpp2
-rw-r--r--ui/qt/widgets/splash_overlay.h2
-rw-r--r--ui/qt/widgets/syntax_line_edit.cpp36
-rw-r--r--ui/qt/widgets/traffic_tab.cpp2
-rw-r--r--ui/qt/widgets/traffic_tab.h2
-rw-r--r--ui/qt/widgets/traffic_tree.cpp2
-rw-r--r--ui/qt/widgets/traffic_tree.h2
-rw-r--r--ui/qt/widgets/traffic_types_list.cpp6
-rw-r--r--ui/qt/widgets/traffic_types_list.h4
-rw-r--r--ui/qt/widgets/wireless_timeline.cpp76
-rw-r--r--ui/qt/widgets/wireless_timeline.h14
-rw-r--r--ui/qt/wireless_frame.cpp20
-rw-r--r--ui/qt/wireshark_application.cpp2
-rw-r--r--ui/qt/wireshark_de.ts208
-rw-r--r--ui/qt/wireshark_dialog.cpp6
-rw-r--r--ui/qt/wireshark_dialog.h21
-rw-r--r--ui/qt/wireshark_en.ts157
-rw-r--r--ui/qt/wireshark_es.ts198
-rw-r--r--ui/qt/wireshark_fr.ts206
-rw-r--r--ui/qt/wireshark_it.ts216
-rw-r--r--ui/qt/wireshark_ja_JP.ts230
-rw-r--r--ui/qt/wireshark_ko.ts208
-rw-r--r--ui/qt/wireshark_main_window.cpp378
-rw-r--r--ui/qt/wireshark_main_window.h22
-rw-r--r--ui/qt/wireshark_main_window_slots.cpp181
-rw-r--r--ui/qt/wireshark_pl.ts206
-rw-r--r--ui/qt/wireshark_ru.ts206
-rw-r--r--ui/qt/wireshark_sv.ts206
-rw-r--r--ui/qt/wireshark_tr_TR.ts206
-rw-r--r--ui/qt/wireshark_uk.ts182
-rw-r--r--ui/qt/wireshark_zh_CN.ts212
-rw-r--r--ui/qt/wlan_statistics_dialog.cpp6
-rw-r--r--ui/recent.c307
-rw-r--r--ui/recent.h115
-rw-r--r--ui/recent_utils.h4
-rw-r--r--ui/rtp_media.c12
-rw-r--r--ui/rtp_media.h14
-rw-r--r--ui/rtp_stream.c22
-rw-r--r--ui/rtp_stream.h34
-rw-r--r--ui/rtp_stream_id.c34
-rw-r--r--ui/rtp_stream_id.h20
-rw-r--r--ui/simple_dialog.h14
-rw-r--r--ui/software_update.c2
-rw-r--r--ui/ssl_key_export.c40
-rw-r--r--ui/ssl_key_export.h2
-rw-r--r--ui/summary.c14
-rw-r--r--ui/summary.h38
-rw-r--r--ui/tap-credentials.h12
-rw-r--r--ui/tap-iax2-analysis.c2
-rw-r--r--ui/tap-iax2-analysis.h34
-rw-r--r--ui/tap-rlc-graph.c42
-rw-r--r--ui/tap-rlc-graph.h60
-rw-r--r--ui/tap-rtp-analysis.c46
-rw-r--r--ui/tap-rtp-analysis.h38
-rw-r--r--ui/tap-rtp-common.c70
-rw-r--r--ui/tap-rtp-common.h46
-rw-r--r--ui/tap-sctp-analysis.c194
-rw-r--r--ui/tap-sctp-analysis.h172
-rw-r--r--ui/tap-tcp-stream.c75
-rw-r--r--ui/tap-tcp-stream.h52
-rw-r--r--ui/tap_export_pdu.c38
-rw-r--r--ui/tap_export_pdu.h10
-rw-r--r--ui/taps.h2
-rw-r--r--ui/text_import.c412
-rw-r--r--ui/text_import.h32
-rw-r--r--ui/text_import_regex.c10
-rw-r--r--ui/text_import_regex.h8
-rw-r--r--ui/time_shift.c52
-rw-r--r--ui/time_shift.h10
-rw-r--r--ui/util.c22
-rw-r--r--ui/util.h8
-rw-r--r--ui/voip_calls.c310
-rw-r--r--ui/voip_calls.h100
-rw-r--r--ui/win32/file_dlg_win32.cpp1747
-rw-r--r--ui/win32/file_dlg_win32.h142
-rw-r--r--ui/ws_ui_util.h20
-rw-r--r--wiretap/.clang-tidy3
-rw-r--r--wiretap/5views.c2
-rw-r--r--wiretap/aethra.c2
-rw-r--r--wiretap/blf.c130
-rw-r--r--wiretap/blf.h63
-rw-r--r--wiretap/busmaster.c2
-rw-r--r--wiretap/busmaster_parser.lemon3
-rw-r--r--wiretap/candump_parser.lemon3
-rw-r--r--wiretap/cllog.c2
-rw-r--r--wiretap/dbs-etherwatch.c4
-rw-r--r--wiretap/ems.c2
-rw-r--r--wiretap/erf.c2
-rw-r--r--wiretap/file_access.c17
-rw-r--r--wiretap/iptrace.c2
-rw-r--r--wiretap/k12.c6
-rw-r--r--wiretap/log3gpp.c2
-rw-r--r--wiretap/merge.c4
-rw-r--r--wiretap/mime_file.c2
-rw-r--r--wiretap/netmon.c4
-rw-r--r--wiretap/nettrace_3gpp_32_423.c2
-rw-r--r--wiretap/netxray.c16
-rw-r--r--wiretap/ngsniffer.c6
-rw-r--r--wiretap/pcap-common.c4
-rw-r--r--wiretap/pcapng.c161
-rw-r--r--wiretap/peektagged.c2
-rw-r--r--wiretap/pppdump.c1
-rw-r--r--wiretap/snoop.c8
-rw-r--r--wiretap/toshiba.c4
-rw-r--r--wiretap/wtap-int.h6
-rw-r--r--wiretap/wtap.c8
-rw-r--r--wiretap/wtap.h7
-rw-r--r--wiretap/wtap_opttypes.c28
-rw-r--r--wiretap/wtap_opttypes.h23
-rw-r--r--writecap/pcapio.c5
-rw-r--r--ws_version.h.in14
-rw-r--r--wsutil/802_11-utils.c20
-rw-r--r--wsutil/802_11-utils.h7
-rw-r--r--wsutil/CMakeLists.txt9
-rw-r--r--wsutil/array.h22
-rw-r--r--wsutil/buffer.c2
-rw-r--r--wsutil/codecs.c9
-rw-r--r--wsutil/codecs.h44
-rw-r--r--wsutil/codecs_priv.h63
-rw-r--r--wsutil/console_win32.c2
-rw-r--r--wsutil/cpu_info.c3
-rw-r--r--wsutil/epochs.h6
-rw-r--r--wsutil/file_util.c10
-rw-r--r--wsutil/filesystem.c58
-rw-r--r--wsutil/filesystem.h10
-rw-r--r--wsutil/g711.c10
-rw-r--r--wsutil/json_dumper.c8
-rw-r--r--wsutil/plugins.c284
-rw-r--r--wsutil/plugins.h86
-rw-r--r--wsutil/privileges.c2
-rw-r--r--wsutil/report_message.h2
-rw-r--r--wsutil/str_util.c210
-rw-r--r--wsutil/str_util.h29
-rw-r--r--wsutil/test_wsutil.c2
-rw-r--r--wsutil/unicode-utils.c2
-rw-r--r--wsutil/unicode-utils.h2
-rw-r--r--wsutil/win32-utils.c3
-rw-r--r--wsutil/wmem/wmem_core.c2
-rw-r--r--wsutil/ws_pipe.c2
-rw-r--r--wsutil/ws_strptime.c2
-rw-r--r--wsutil/wslog.c24
1984 files changed, 97836 insertions, 74467 deletions
diff --git a/.clang-tidy b/.clang-tidy
index 52a6b4e5dc..b31bac8888 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -6,6 +6,8 @@
# Checking the entire build by passing `-DCMAKE_C_CLANG_TIDY=clang-tidy`
# and `-DCMAKE_CXX_CLANG_TIDY=clang-tidy` to CMake
+# A full list of Clang-tidy checks can be found at
+# https://clang.llvm.org/extra/clang-tidy/checks/list.html
ExtraArgs:
- '-Wno-unknown-warning-option'
@@ -15,6 +17,9 @@ Checks:
- '-*'
- 'misc-no-recursion'
+# We can remove the configs under epan and plugins, and wiretap if we
+# ever uncomment this.
+
#WarningsAsErrors: 'misc-no-recursion'
UseColor: true
diff --git a/.github/workflows/lockdown.yml b/.github/workflows/lockdown.yml
index bdd11ab7de..6737bc8bff 100644
--- a/.github/workflows/lockdown.yml
+++ b/.github/workflows/lockdown.yml
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 'Repo Lockdown'
- uses: dessant/repo-lockdown@v3
+ uses: dessant/repo-lockdown@v4
with:
pr-comment: >
Hi, thank you for your contribution!
diff --git a/.github/workflows/macos-logray.yml b/.github/workflows/macos-logray.yml
new file mode 100644
index 0000000000..a1112d18ce
--- /dev/null
+++ b/.github/workflows/macos-logray.yml
@@ -0,0 +1,63 @@
+name: Build Logray macOS
+
+on: [push]
+
+jobs:
+ macos:
+ name: Build
+ runs-on: macos-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Python 3.11
+ uses: actions/setup-python@v5
+ with:
+ python-version: 3.11
+ - name: Setup Go
+ uses: actions/setup-go@v5
+ with:
+ go-version: '1.22.x'
+ check-latest: true
+ - name: Install deps
+ run: ./tools/macos-setup-brew.sh --install-optional --install-doc-deps --install-dmg-deps --install-test-deps --install-logray
+ env:
+ HOMEBREW_NO_AUTO_UPDATE: 1
+ - name: Install dmgbuild
+ run: pip3 install dmgbuild
+ - name: Mkdir
+ run: mkdir build
+ - name: Cmake
+ working-directory: build
+ run: cmake -GNinja -DBUILD_logray=ON -DBUILD_falcodump=ON -DBUILD_androiddump=OFF -DBUILD_ciscodump=OFF -DBUILD_mmdbresolve=OFF -DBUILD_randpkt=OFF -DBUILD_randpktdump=OFF -DBUILD_sharkd=OFF -DBUILD_sshdump=OFF -DBUILD_tshark=OFF -DBUILD_wifidump=OFF -DBUILD_wireshark=OFF ..
+ - name: Build
+ run: ninja
+ working-directory: build
+ - name: Create falco plugin dir
+ run: mkdir run/Logray.app/Contents/PlugIns/logray/falco
+ working-directory: build
+ - name: Build libcloudtrail
+ shell: bash
+ run: |
+ CLOUDTRAIL_VERSION="0.12.0"
+ curl -OL --remote-header-name "https://github.com/falcosecurity/plugins/archive/refs/tags/cloudtrail-${CLOUDTRAIL_VERSION?}.tar.gz"
+ tar xzf plugins-cloudtrail-${CLOUDTRAIL_VERSION?}.tar.gz
+ cd plugins-cloudtrail-${CLOUDTRAIL_VERSION?}/plugins/cloudtrail
+ make
+ cp libcloudtrail.so ../../../build/run/Logray.app/Contents/PlugIns/logray/falco/libcloudtrail.so
+ - name: Build libgcpaudit
+ shell: bash
+ run: |
+ GCPAUDIT_VERSION="0.3.2"
+ curl -OL --remote-header-name "https://github.com/falcosecurity/plugins/archive/refs/tags/plugins/gcpaudit/v${GCPAUDIT_VERSION?}.tar.gz"
+ tar xzf plugins-plugins-gcpaudit-v${GCPAUDIT_VERSION?}.tar.gz
+ cd plugins-plugins-gcpaudit-v${GCPAUDIT_VERSION?}/plugins/gcpaudit
+ make
+ cp libgcpaudit.so ../../../build/run/Logray.app/Contents/PlugIns/logray/falco/libgcpaudit.so
+ - name: Build dmg
+ run: ninja logray_dmg
+ working-directory: build
+ - name: Upload dmg packages
+ uses: actions/upload-artifact@v4
+ with:
+ name: package
+ path: build/run/*dmg
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 7ea2331726..4bb314b8ee 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -8,15 +8,19 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
- - name: Set up Python 3.8
- uses: actions/setup-python@v4
+ uses: actions/checkout@v4
+ - name: Set up Python 3.11
+ uses: actions/setup-python@v5
with:
- python-version: 3.8
+ python-version: 3.11
- name: Install deps
run: ./tools/macos-setup-brew.sh --install-optional --install-doc-deps --install-dmg-deps --install-test-deps
env:
HOMEBREW_NO_AUTO_UPDATE: 1
+ - name: Install pytest
+ run: pip3 install pytest pytest-xdist
+ - name: Install dmgbuild
+ run: pip3 install dmgbuild
- name: Mkdir
run: mkdir build
- name: Cmake
@@ -37,7 +41,7 @@ jobs:
run: ninja wireshark_dmg
working-directory: build
- name: Upload dmg packages
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: package
path: build/run/*dmg
diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml
index f1252a8b90..050c6bbd13 100644
--- a/.github/workflows/msys2.yml
+++ b/.github/workflows/msys2.yml
@@ -16,7 +16,7 @@ jobs:
update: true
install: base-devel
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Install dependencies
run: tools/msys2-setup.sh --install-all --noconfirm
- name: Build
@@ -28,7 +28,7 @@ jobs:
ninja wireshark_nsis_prep
ninja wireshark_nsis
- name: Upload artifacts
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: nsis-installer
path: build/packaging/nsis/wireshark-*-x64.exe
@@ -38,7 +38,7 @@ jobs:
needs: msys2-ucrt64
steps:
- name: Download installer
- uses: actions/download-artifact@v3
+ uses: actions/download-artifact@v4
with:
name: nsis-installer
path: downloads
diff --git a/.github/workflows/options.yml b/.github/workflows/options.yml
index 61a6b7c567..4d73fb692f 100644
--- a/.github/workflows/options.yml
+++ b/.github/workflows/options.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Install deps
run: |
sudo tools/debian-setup.sh --install-all ninja-build -y
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index f5353394c5..948a6c0a2f 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Install deps
run: sudo tools/debian-setup.sh --install-all python3-pip -y
- name: Mkdir
@@ -23,7 +23,7 @@ jobs:
run: ninja test-programs
working-directory: build
- name: Set up Python 3.8
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install pytest
@@ -48,7 +48,7 @@ jobs:
mkdir deb
mv ../*.deb deb
- name: Upload deb packages
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: packages
path: deb
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index c8059572e3..70ccccb2f6 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -13,7 +13,7 @@ jobs:
WIRESHARK_VERSION_EXTRA: -GithubActionBuild
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Choco install
run: choco install -y --force --no-progress asciidoctorj xsltproc docbook-bundle nsis winflexbison3 cmake
- name: Install strawberryperl
@@ -28,7 +28,7 @@ jobs:
version: 6.2.3
modules: 'qt5compat'
- name: Add msbuild to PATH
- uses: microsoft/setup-msbuild@v1.1
+ uses: microsoft/setup-msbuild@v2
with:
vs-version: 16.8
- name: Set MSVC command prompt
@@ -52,7 +52,7 @@ jobs:
run: cmake --build . --config RelWithDebInfo --target test-programs
working-directory: build
- name: Set up Python 3.8
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install pytest
@@ -68,7 +68,7 @@ jobs:
msbuild /m /p:Configuration=RelWithDebInfo wireshark_nsis.vcxproj
working-directory: build
- name: Upload Windows packages
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: package
path: build/packaging/nsis/*exe
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 97f046501e..b856444974 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -86,7 +86,7 @@ variables:
.build-linux:
stage: build
tags:
- - docker
+ - saas-linux-small-amd64
before_script:
- printf "\e[0Ksection_start:%s:ci_env_section[collapsed=true]\r\e[0KCI environment variables" "$(date +%s)"
- env | grep ^CI | sort
@@ -100,7 +100,7 @@ variables:
.test-linux:
stage: test
tags:
- - docker
+ - saas-linux-small-amd64
variables:
GIT_STRATEGY: none
@@ -126,7 +126,7 @@ variables:
- export DEB_BUILD_OPTIONS="nocheck parallel=$(( $(getconf _NPROCESSORS_ONLN) + 2 ))"
- export DH_QUIET=1
- export MAKEFLAGS=--silent
- - NUM_COMMITS=$(curl $CI_API_V4_URL/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/commits | jq length)
+ - NUM_COMMITS=$(curl --silent $CI_API_V4_URL/projects/$CI_MERGE_REQUEST_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/commits | jq length)
- echo "$NUM_COMMITS commit(s) in this MR"
- mkdir build
- cd build
@@ -225,13 +225,11 @@ variables:
- export PYTEST_ADDOPTS=--skip-missing-programs=dumpcap,rawshark
- mkdir -p ccache
- ccache --show-stats
- - NUM_COMMITS=$(curl $CI_API_V4_URL/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/commits | jq length)
- - echo "$NUM_COMMITS commit(s) in this MR"
- mkdir build
- cd build
script:
- printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)"
- - cmake -G Ninja -DENABLE_CCACHE=ON -DLUA_FIND_VERSIONS=ANY -DTEST_EXTRA_ARGS=--disable-capture ..
+ - cmake -G Ninja -DENABLE_CCACHE=ON -DTEST_EXTRA_ARGS=--disable-capture ..
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
- ninja
- ninja test-programs
@@ -246,7 +244,7 @@ variables:
stage: build
image: registry.gitlab.com/wireshark/wireshark-containers/mingw-dev
tags:
- - docker
+ - saas-linux-small-amd64
cache:
# XXX Use ${CI_JOB_NAME}-${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} instead?
key: ${CI_JOB_NAME}-master
@@ -290,6 +288,7 @@ Source Package:
- cp -v doc/release-notes.txt ../release-notes-${WIRESHARK_VERSION}.txt
after_script:
# - ccache --max-size $( du --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' )
+ - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi
- if [ -n "$SCHEDULE_TYPE" ] ; then exit 0 ; fi
- stat --format="%n %s bytes" wireshark-*.tar.*
- for digest in sha512 sha256 sha1 ; do openssl $digest wireshark-*.tar.* ; done
@@ -640,16 +639,16 @@ Documentation:
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
- ninja all_guides
- cd docbook
- - for HTML_DIR in wsug_html wsug_html_chunked wsdg_html wsdg_html_chunked ; do zip -9 -r "$HTML_DIR.zip" "$HTML_DIR" ; done
- after_script:
- - mv -v build/docbook/ws[ud]g_html{,_chunked}.zip .
- - mv -v build/docbook/Wireshark*Guide.{epub,pdf} .
+ - for HTML_DIR in ws[ud]g_html{,_chunked} ; do zip -9 -r "$HTML_DIR.zip" "$HTML_DIR" ; done
- |
if [ -n "$S3_DESTINATION_DOCS" ] ; then
for DOC_FILE in ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} ; do
aws s3 cp "$DOC_FILE" "$S3_DESTINATION_DOCS/"
done
fi
+ - mv -v ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} ../..
+ after_script:
+ - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi
artifacts:
paths:
- wsug_html.zip
@@ -771,6 +770,8 @@ Fedora MinGW Build:
Clang + Code Checks:
extends: .build-ubuntu
+ tags:
+ - saas-linux-medium-amd64
rules: !reference [.if-merge-request]
needs: [ 'Commit Check' ]
script:
@@ -1007,14 +1008,14 @@ API Reference:
- cmake -GNinja ..
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
- ninja wsar_html_zip 2>&1 > doxygen_output.txt | tee doxygen_errors.txt
- after_script:
- - mv build/wsar_html.zip .
- - mv build/doxygen_output.txt .
- - mv build/doxygen_errors.txt .
+ - mv wsar_html.zip doxygen_{output,errors}.txt ..
+ - cd ..
- |
if [ -n "$S3_DESTINATION_DOCS" ] ; then
aws s3 cp wsar_html.zip "$S3_DESTINATION_DOCS/"
fi
+ after_script:
+ - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi
artifacts:
paths:
- doxygen_errors.txt
@@ -1115,6 +1116,7 @@ Code Lines and Data:
# The cache should be large enough to be useful but it shouldn't take
# too long to restore+save each run.
- ccache --max-size $( du --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' )
+ - if [ "$CI_JOB_STATUS" == "canceled" ]; then exit 0 ; fi
- . /tmp/fuzz_result.sh
- if $FUZZ_PASSED ; then exit 0 ; fi
- echo Fuzzing failed. Generating report.
diff --git a/AUTHORS b/AUTHORS
index 7ad985724f..9c78affd10 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -4029,6 +4029,7 @@ Adam Wujek <adam.wujek[AT]cern.ch>
Adam Wujek <dev_public[AT]wujek.eu>
Adedeji Adeloye <adadeloy[AT]microsoft.com>
Aditya Jain <aditya.jain[AT]samsung.com>
+Adrian Dobrica <adrian.dobrica[AT]keysight.com>
Adrian Granados <adrian[AT]adriangranados.com>
Adrian Granados <adrian[AT]intuitibits.com>
Adrian Ratiu <adrian.ratiu[AT]collabora.com>
@@ -4088,6 +4089,7 @@ Amit Cohen <amcohen[AT]nvidia.com>
Amit Khatri <amit7861234[AT]gmail.com>
Amitoj Setia <asetia[AT]juniper.net>
Ana Pantar <ana.pantar[AT]gmail.com>
+Ananya <ananyagopal61[AT]gmail.com>
Anaël Fiaux <anael[AT]fiaux.org>
Anders Esbensen <Anders.Esbensen[AT]silabs.com>
Andoni Diaz de Cerio <andoni.diazdecerio[AT]nemergent-solutions.com>
@@ -4132,6 +4134,7 @@ Armin Felder <Armin.Felder[AT]gmail.com>
Arnd Hannemann <arnd[AT]arndnet.de>
Arne Schwabe <arne[AT]rfc2549.org>
Arnout Vandecappelle (Essensium/Mind) <arnout[AT]mind.be>
+Artem Kan <artyom.kan[AT]dsr-corporation.com>
Artem Kan <kan.art.email[AT]gmail.com>
Artem Mygaiev <joculator[AT]gmail.com>
Artur Nowosielski <artnowo[AT]gmail.com>
@@ -4190,6 +4193,7 @@ Branislav Makan <branislav.makan1994[AT]gmail.com>
Brendan Meath <bmeath[AT]proton.me>
Brendan O'Connor <brendan[AT]leviathansecurity.com>
Brenton Rothchild <brentonr[AT]dorm.org>
+Brian Jongekryg <bej[AT]arbin.net>
Brian Sipos <brian.sipos[AT]gmail.com>
Brian Whitney <brian.m.whitney[AT]outlook.com>
Britt McKinley <bmckinley[AT]sonusnet.com>
@@ -4201,6 +4205,7 @@ Carl Hörberg <carl.hoerberg[AT]gmail.com>
Carlo Carraro <colrack[AT]gmail.com>
Carlos Pignataro <cpignata[AT]gmail.com>
Carlos Velasco <carlos.velasco[AT]nimastelecom.com>
+Casper Meijn <casper[AT]meijn.net>
Cathy Yang <cathy.y.yang[AT]ericsson.com>
Cedric Izoard <cedric.izoard[AT]ceva-dsp.com>
Cenk Gündoğan <cnkgndgn[AT]gmail.com>
@@ -4262,6 +4267,7 @@ D. W. Poon <dwpoon[AT]mail.ubc.ca>
Daan De Meyer <daan.j.demeyer[AT]gmail.com>
Daisuke Matsuda <matsuda-daisuke[AT]fujitsu.com>
Damir Franusic <damir.franusic[AT]gmail.com>
+Dan <DanOfTheRoses[AT]gmail.com>
Dan Robertson <danlrobertson89[AT]gmail.com>
Dana Sy <dana.hayden.sy[AT]gmail.com>
Daniel Dulaney <dan[AT]dulaney.xyz>
@@ -4299,6 +4305,7 @@ David Fort <contact[AT]hardening-consulting.com>
David Garcia Villalba <656663-dagavi[AT]users.noreply.gitlab.com>
David Johansen <davejohansen[AT]gmail.com>
David Kreitschmann <dkreitschmann[AT]seemoo.tu-darmstadt.de>
+David Lamparter <equinox[AT]diac24.net>
David McKay <mckay.david[AT]gmail.com>
David Morsberger <dave[AT]morsberger.com>
David Perry <boolean263[AT]protonmail.com>
@@ -4344,6 +4351,7 @@ Dmitry Linikov <linikov[AT]arrival.com>
Dmitry Radivonchik <mitya[AT]oktetlabs.ru>
Dom Gifford <Dominic.Gifford[AT]atmel.com>
Dominic Chen <d.c.ddcc[AT]gmail.com>
+Dominic Pearson <dsp[AT]technoanimal.net>
Dominik Kilian <Dominik.Kilian[AT]nordicsemi.no>
Domonkos P. Tomcsanyi <domi[AT]tomcsanyi.net>
Donatas Abraitis <donatas[AT]opensourcerouting.org>
@@ -4360,6 +4368,7 @@ Dylan Ulis <daulis0[AT]gmail.com>
Dániel Bakai <bakaidl[AT]gmail.com>
Eason Wei <sharkhw[AT]huawei.com>
Ebben Aries <exa[AT]fb.com>
+EclipsedSolari <6197698-EclipsedSolari[AT]users.noreply.gitlab.com>
Ed Beroset <beroset[AT]ieee.org>
Ederson de Souza <ederson.desouza[AT]intel.com>
Edward Dao <edmailbox[AT]gmail.com>
@@ -4418,6 +4427,7 @@ Francisco Jose Alvarez <francisco.alvarez[AT]galgus.net>
Francois Nguyen <francois[AT]daily-prophet.org>
Francois Schneider <francois.schneider[AT]airbus.com>
Francois-Xavier Le Bail <fx.lebail[AT]yahoo.com>
+Francois-Xavier Seingier <francoisxavier.seingier[AT]broadpeak.tv>
Frank Carpenter <frank.carpenter[AT]spectralink.com>
Frank Gorgas-Waller <frank.gorgas-waller[AT]auerswald.de>
Franklin Mathieu <franklinmathieu[AT]gmail.com>
@@ -4425,7 +4435,9 @@ Frans Meulenbroeks <fransmeulenbroeks[AT]yahoo.com>
Frostie314159 <iam.an.programmer[AT]gmail.com>
Frédéric Perrin <fred[AT]fperrin.net>
GBLCA\amrobles <amrobles[AT]gblsys.com>
+Gabor Spaits <Gabor.Spaits[AT]hightec-rt.com>
Gabor Spaits <gabor.spaits[AT]ericsson.com>
+Gabor Spaits <gaborspaits1[AT]gmail.com>
Gabor Vaszkun <vaszkun[AT]gmail.com>
Gabriel Ganne <gabriel.ganne[AT]enea.com>
Gabriel Ganne <gabriel.ganne[AT]gmail.com>
@@ -4471,7 +4483,6 @@ Gustavo Garcia <gustavogb[AT]gmail.com>
Guvenc Gulce <guvenc[AT]linux.ibm.com>
Guy Davies <aguydavies[AT]gmail.com>
Guy Harris <gharris[AT]sonic.net>
-Gábor Spaits <gaborspaits1[AT]gmail.com>
Günther Deschner <gd[AT]samba.org>
HOMEPC\eaosk <ea.oskolkov[AT]yandex.ru>
Haiyun Liu <liu0hy[AT]gmail.com>
@@ -4661,6 +4672,7 @@ Kaige Ye <ye[AT]kaige.org>
Karl Knoebl <karl.knoebl[AT]technikum-wien.at>
Karsten Graul <kgraul[AT]linux.ibm.com>
Kary Rogers <kary.rogers[AT]gmail.com>
+Kas-tle <joshdcastle[AT]gmail.com>
Kasper Deng <kasper.deng[AT]ericsson.com>
Keith Scott <keithlscott[AT]gmail.com>
Ken Aaker <kenaaker[AT]gmail.com>
@@ -4696,9 +4708,11 @@ Lee Serin <serinee95[AT]gmail.com>
Leonard Penzer <leonard.penzer[AT]rohde-schwarz.com>
Lev Stipakov <lstipakov[AT]gmail.com>
Lewis Hamilton <lewish[AT]arista.com>
+Li Zhengqiang <lizhengqiang[AT]anban.tech>
Liam Kearney <liam.kearney[AT]morsemicro.com>
LiangYuxuan <lyx[AT]lyx.es>
Lichen Liu <llc123456a[AT]gmail.com>
+Lin Alan <linalan[AT]gmail.com>
Lin Sun <lin.sun[AT]zoom.us>
Lin Sun <sunlin7[AT]yahoo.com>
Lingao Meng <menglingao[AT]xiaomi.com>
@@ -4738,6 +4752,7 @@ Marc Fournier <marc.fournier[AT]camptocamp.com>
Marcel Essig <marcel.essig[AT]gmx.de>
Marcelo Ricardo Leitner <marcelo.leitner[AT]gmail.com>
Marcin Rokicki <marcin.rokicki[AT]gmail.com>
+Marco Oliverio <marco[AT]wolfssl.com>
MarcoKaldenbach <marcokaldenbach[AT]gmail.com>
Marcus Sundberg <marcus.sundberg[AT]aptilo.com>
Marian Ďurkovič <md[AT]bts.sk>
@@ -4764,6 +4779,7 @@ Martin Gallo <martin.gallo[AT]gmail.com>
Martin Gallo <mgallo[AT]secureauth.com>
Martin Haaß <vvvrrooomm[AT]gmail.com>
Martin Heusse <martin.heusse[AT]imag.fr>
+Martin Lutz <martin.lutz+github[AT]gmail.com>
Martin Mathieson <martin.mathieson[AT]keysight.com>
Martin Mathieson <martin.r.mathieson[AT]gmail.com>
Martin Nyhus <gitlab[AT]nyhus.dev>
@@ -4915,9 +4931,11 @@ Olaf Westrik <olaf.westrik[AT]festo.com>
Olga Kornievskaia <kolga[AT]netapp.com>
Oliver <cellotape[AT]gmail.com>
Oliver Downard <oliver.downard[AT]couchbase.com>
+Oliver Hartkopp <socketcan[AT]hartkopp.net>
Oliver Smith <osmith[AT]sysmocom.de>
Olivier Verriest <verri[AT]x25.pm>
Omer Shapira <omer.shapira+github[AT]gmail.com>
+Ophir Artzi <ophir.artzi[AT]keysight.com>
Oren Koler <clicker78[AT]gmail.com>
Orgad Shaneh <orgad.shaneh[AT]audiocodes.com>
Orgad Shaneh <orgads[AT]gmail.com>
@@ -4945,6 +4963,7 @@ Patryk Nowak <patryk.nowak[AT]tieto.com>
Pau Espin Pedrol <pespin[AT]sysmocom.de>
Paul Aurich <paul[AT]darkrain42.org>
Paul Chambon <pchambon[AT]toulouse.viveris.com>
+Paul Donald <newtwen+github[AT]gmail.com>
Paul Emge <paul.emge[AT]digidescorp.com>
Paul Koning <paul_koning[AT]dell.com>
Paul Offord <paul.offord58[AT]gmail.com>
@@ -4964,6 +4983,7 @@ Pavlos Antoniou <pant[AT]intracom-telecom.com>
Pedro Alvarez <pinheirp[AT]tcd.ie>
Pedro Jose Marron <pjmarron[AT]locoslab.com>
Pedro Malagon <malagon[AT]die.upm.es>
+Peikang Zhang <peikang.zhang[AT]microchip.com>
Peng Li <seudut[AT]gmail.com>
Peng Tao <tao.peng[AT]primarydata.com>
Peter Collingbourne <pcc[AT]google.com>
@@ -4985,6 +5005,7 @@ Petr Špaček <pspacek[AT]isc.org>
Petr Štetiar <petr.stetiar[AT]gaben.cz>
Phil Beeson <bugzilla[AT]philbeeson.com>
Philip Rosenberg-Watt <p.rosenberg-watt[AT]cablelabs.com>
+PhilipRoman <frfilips[AT]gmail.com>
Philipp Dittmann <dittmann[AT]cs.uni-bremen.de>
Philipp Haefele <psykoman1990[AT]gmx.de>
Philipp Hancke <fippo[AT]andyet.net>
@@ -5030,6 +5051,7 @@ Rickard Holmberg <rickard.holmberg[AT]raysearchlabs.com>
Rickard Holmberg <rickard[AT]avkrok.net>
Rishi Dev Singh <rishi.dev[AT]samsung.com>
Riya Dixit <riyadixitagra[AT]gmail.com>
+Rob Gill <rrobgill[AT]protonmail.com>
Robert Beardsworth <rob_beardsworth[AT]hotmail.com>
Robert Cragie <robert.cragie[AT]gmail.com>
Robert Crowston <crowston[AT]protonmail.com>
@@ -5187,6 +5209,7 @@ Timo Warns <timow+github[AT]DiningPhilosopher.DE>
Timo Warns <timow+gitlab[AT]diningphilosopher.de>
Timotej Ecimovic <timotej.ecimovic[AT]silabs.com>
Timothy Geiser <slimshady007[AT]inbox.lv>
+Tobias <tobiasmicheler[AT]outlook.de>
Tobias Brunner <tobias[AT]strongswan.org>
Tobias Mueller <gitlab[AT]muelli.cryptobitch.de>
Tobias Mueller <muelli[AT]cryptobitch.de>
@@ -5240,6 +5263,7 @@ Vik <vkp129+ubuntu[AT]gmail.com>
Vikhyat Umrao <vumrao[AT]redhat.com>
Vikram Hegde <vikram.h[AT]samsung.com>
Ville Skyttä <ville.skytta[AT]iki.fi>
+Vincent Hamp <vincent.hamp[AT]higaski.at>
Vincent Helfre <vincent.helfre[AT]gmx.net>
Vincenzo Reale <smart2128vr[AT]gmail.com>
Vivek Mangala <vivekmangala[AT]gmail.com>
@@ -5284,6 +5308,7 @@ Yannik Enss <Yannik.Enss[AT]rohde-schwarz.com>
Yasuyuki Tanaka <yasuyuki.tanaka[AT]inria.fr>
Yehonatan Zecharia <yonti95[AT]gmail.com>
Yehudah Aaron <yehmron[AT]gmail.com>
+Yingjie Deng <17322619133[AT]163.com>
Yoni Gilad <yonig[AT]radcom.com>
Yoshihiro Ueda <uyoshihiro[AT]users.noreply.gitlab.com>
Yoshiyuki Kurauchi <ahochauwaaaaa[AT]gmail.com>
@@ -5322,6 +5347,7 @@ dennisschagt <dennisschagt[AT]gmail.com>
eckart haug <wireshark[AT]syntacs.com>
frst <frst[AT]LT-FD3L2F3>
garrymar <g.djavadyan[AT]gmail.com>
+gtker <github[AT]gtker.com>
heinrich5991 <heinrich5991[AT]gmail.com>
jfp_martin <john[AT]purplemeanie.co.uk>
kardam <netkardam[AT]gmail.com>
@@ -5332,16 +5358,17 @@ kor <drkor[AT]bk.ru>
lemur117 <lemur117[AT]protonmail.com>
liam-black <liam.black[AT]enea.com>
liningjie <1350445139[AT]qq.com>
-lizhengqiang <lizhengqiang[AT]anban.tech>
lutianxiong <lutianxiong[AT]huawei.com>
m.kaldenbach <m.kaldenbach[AT]wearetriple.com>
mGhony99 <mGhony99[AT]gmail.com>
+mStiglec <sticgoc[AT]gmail.com>
marmonier_c <cmarmonier[AT]ifotec.com>
mbutkereit <marvin.butkereit[AT]haw-hamburg.de>
mirkodeckert <mirko.deckert[AT]adtran.com>
mistral13 <mistral[AT]gmx.ch>
mivens <mark.ivens[AT]vitrifi.net>
mkg20001 <mkg20001[AT]gmail.com>
+mverkleij <mail[AT]mverkleij.nl>
naesten <naesten[AT]gmail.com>
naf <naf[AT]sdf.org>
nickvsnetworking <nick[AT]nickvsnetworking.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 10c54f816d..a925693b68 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -59,22 +59,6 @@ set(PROJECT_MAJOR_VERSION 4)
set(PROJECT_MINOR_VERSION 3)
set(PROJECT_PATCH_VERSION 0)
set(PROJECT_BUILD_VERSION 0)
-# ABI version for plugins. It must be incremented by one for
-# every odd minor release number.
-# start at 1 (arbitrary).
-# release 4.3.X (unstable) = ABI version 1 (start)
-# release 4.4.X (stable) = ABI version 1 (stable release, freeze ABI 1)
-# release 4.5.X (unstable) = ABI version 2 (increment for new unstable release, ABI break)
-# release 4.6.X (stable) = ABI version 2 (stable release, freeze ABI 2)
-# release 4.7.X (unstable) = ABI version 3 (increment for new unstable release, ABI break)
-# release 5.0.X (stable) = ABI version 3 (stable release, freeze ABI 3)
-# etc.
-set(PROJECT_ABI_VERSION_EPAN 1)
-set(PROJECT_ABI_VERSION_WIRETAP 1)
-# Codecs API/ABI is much more narrow and stable than the other two so this
-# may not need to be incremented every X.Y release.
-set(PROJECT_ABI_VERSION_CODEC 1)
-
set(PROJECT_VERSION_EXTENSION "")
if(DEFINED ENV{WIRESHARK_VERSION_EXTRA})
@@ -963,18 +947,48 @@ endif()
include(CMakePushCheckState)
if(ENABLE_ASAN)
- # Available since MSVC 2019 version 16.9
+ # Available since MSVC 2019 version 16.9 (https://gitlab.com/wireshark/wireshark/-/merge_requests/14912 for more details)
cmake_push_check_state()
set(ASAN_FLAG "-fsanitize=address")
set(CMAKE_REQUIRED_FLAGS ${ASAN_FLAG})
+ if(MSVC)
+ message(NOTICE "ENABLE_ASAN was requested. Checking if ASAN is supported requires SPECTRE-mitigation to be disabled globally impacting all build types.")
+ message(NOTICE "If ASAN is supported, then it is re-enabled selectively depending on the build types.")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qspectre-")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre-")
+ endif()
check_c_compiler_flag(${ASAN_FLAG} C__fsanitize_address_VALID)
check_cxx_compiler_flag(${ASAN_FLAG} CXX__fsanitize_address_VALID)
cmake_pop_check_state()
if(NOT C__fsanitize_address_VALID OR NOT CXX__fsanitize_address_VALID)
message(FATAL_ERROR "ENABLE_ASAN was requested, but not supported!")
endif()
- add_compile_options(${ASAN_FLAG})
- if (MSVC)
+ if(MSVC)
+ message(NOTICE "ASAN is supported.")
+ if(ENABLE_ASAN_WITH_SPECTRE)
+ message(NOTICE "ENABLE_ASAN_WITH_SPECTRE was requested.")
+ message(NOTICE "For Debug and RelWithDebInfo, SPECTRE-mitigation has been re-enabled and ASAN has been enabled too.")
+ add_compile_options("$<$<CONFIG:Debug>:/Qspectre>" "$<$<CONFIG:Debug>:${ASAN_FLAG}>")
+ add_compile_options("$<$<CONFIG:RelWithDebInfo>:/Qspectre>" "$<$<CONFIG:RelWithDebInfo>:${ASAN_FLAG}>")
+ set(CPU ${WIRESHARK_TARGET_PLATFORM})
+ if (${CPU} MATCHES "win32")
+ set(CPU x86)
+ endif()
+ add_link_options("$<$<CONFIG:Debug>:/libpath:$ENV{VCToolsInstallDir}lib\\spectre\\${CPU}>" "$<$<CONFIG:Debug>:/libpath:$ENV{VCToolsInstallDir}lib\\${CPU}>")
+ add_link_options("$<$<CONFIG:RelWithDebInfo>:/libpath:$ENV{VCToolsInstallDir}lib\\spectre\\${CPU}>" "$<$<CONFIG:RelWithDebInfo>:/libpath:$ENV{VCToolsInstallDir}lib\\${CPU}>")
+ else()
+ message(NOTICE "ENABLE_ASAN_WITH_SPECTRE was not requested")
+ message(NOTICE "For Debug and RelWithDebInfo, SPECTRE-mitigation stays disabled and ASAN has been enabled.")
+ add_compile_options("$<$<CONFIG:Debug>:${ASAN_FLAG}>")
+ add_compile_options("$<$<CONFIG:RelWithDebInfo>:${ASAN_FLAG}>")
+ endif()
+ message(NOTICE "For Release and MinSizeRel, SPECTRE-mitigation has been re-enabled and ASAN has been skipped.")
+ add_compile_options("$<$<CONFIG:Release>:/Qspectre>")
+ add_compile_options("$<$<CONFIG:MinSizeRel>:/Qspectre>")
+ else()
+ add_compile_options(${ASAN_FLAG})
+ endif()
+ if(MSVC)
# Using ASAN makes some of our code require object files with
# a 32-bit index to the section table instead of 16-bit.
# This makes the .obj files slightly larger (~2%) and makes
@@ -997,6 +1011,12 @@ if(ENABLE_ASAN)
endif()
endif()
+if(MSVC)
+ if(NOT ENABLE_ASAN AND ENABLE_ASAN_WITH_SPECTRE)
+ message(FATAL_ERROR "ENABLE_ASAN_WITH_SPECTRE was requested, but without ENABLE_ASAN!")
+ endif()
+endif()
+
if(ENABLE_TSAN)
# Available since Clang >= 3.2 and GCC >= 4.8
cmake_push_check_state()
@@ -1211,6 +1231,10 @@ find_package(GCRYPT "1.8.0" REQUIRED)
# C Asynchronous resolver
reset_find_package(CARES)
find_package(CARES "1.13.0" REQUIRED)
+if (CARES_VERSION VERSION_GREATER_EQUAL "1.28.0")
+ # Suppress deprecation warnings.
+ add_compile_definitions(CARES_NO_DEPRECATED)
+endif ()
find_package(LEX REQUIRED)
find_package(Perl)
find_package(PCRE2 REQUIRED)
@@ -1386,7 +1410,7 @@ if(FETCH_lua)
# Download and build lua
include(${CMAKE_SOURCE_DIR}/cmake/external/lua53/Lua53.cmake)
else()
- set(LUA_FIND_VERSIONS "5.4;5.3;5.2;5.1" CACHE STRING "Lua versions valid for the build (as a list)")
+ set(LUA_FIND_VERSIONS "5.4;5.3" CACHE STRING "Lua versions valid for the build (as a list)")
ws_find_package(Lua ENABLE_LUA HAVE_LUA)
endif()
@@ -1616,6 +1640,24 @@ else()
endif()
endif()
+if(APPLE)
+ #
+ # As https://developer.apple.com/library/archive/technotes/tn2206/_index.html
+ # says,
+ #
+ # "Note that a location where code is expected to reside cannot generally
+ # contain directories full of nested code, because those directories tend
+ # to be interpreted as bundles. So this occasional practice is not
+ # recommended and not officially supported. If you do do this, do not use
+ # periods in the directory names. The code signing machinery interprets
+ # directories with periods in their names as code bundles and will reject
+ # them if they don't conform to the expected code bundle layout."
+ #
+ set(PLUGIN_PATH_ID "${PROJECT_MAJOR_VERSION}-${PROJECT_MINOR_VERSION}")
+else()
+ set(PLUGIN_PATH_ID "${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}")
+endif()
+
# Directory where plugins and Lua dissectors can be found.
if(WIN32 AND NOT USE_MSYSTEM)
set(PLUGIN_INSTALL_LIBDIR "plugins" CACHE INTERNAL "The plugin dir")
@@ -1623,6 +1665,8 @@ else()
set(PLUGIN_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/plugins" CACHE INTERNAL "The plugin dir")
endif()
set(PLUGIN_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/${PLUGIN_INSTALL_LIBDIR}")
+set(PLUGIN_INSTALL_VERSION_LIBDIR "${PLUGIN_INSTALL_LIBDIR}/${PLUGIN_PATH_ID}")
+set(PLUGIN_VERSION_DIR "plugins/${PLUGIN_PATH_ID}")
add_subdirectory( capture )
add_subdirectory( doc )
@@ -1719,7 +1763,7 @@ if(ENABLE_PLUGINS)
plugins/epan/wimaxmacphy
plugins/epan/dfilter/ipaddr
plugins/wiretap/usbdump
- plugins/codecs/g711
+ plugins/codecs/G711
plugins/codecs/l16_mono
${CUSTOM_PLUGIN_SRC_DIR}
)
@@ -1731,13 +1775,13 @@ if(ENABLE_PLUGINS)
endif()
if(SPANDSP_FOUND)
list(APPEND PLUGIN_SRC_DIRS
- plugins/codecs/g722
- plugins/codecs/g726
+ plugins/codecs/G722
+ plugins/codecs/G726
)
endif()
if(BCG729_FOUND)
list(APPEND PLUGIN_SRC_DIRS
- plugins/codecs/g729
+ plugins/codecs/G729
)
endif()
if(AMRNB_FOUND)
@@ -1747,7 +1791,7 @@ if(ENABLE_PLUGINS)
endif()
if(ILBC_FOUND)
list(APPEND PLUGIN_SRC_DIRS
- plugins/codecs/ilbc
+ plugins/codecs/iLBC
)
endif()
if(OPUS_FOUND)
@@ -1775,22 +1819,22 @@ endif()
if(ENABLE_APPLICATION_BUNDLE)
if(CMAKE_CFG_INTDIR STREQUAL ".")
- set(_plugin_dir "${CMAKE_BINARY_DIR}/run/Wireshark.app/Contents/PlugIns/wireshark")
+ set(_plugin_dir "${CMAKE_BINARY_DIR}/run/Wireshark.app/Contents/PlugIns/wireshark/${PLUGIN_PATH_ID}")
else()
# Xcode
- set(_plugin_dir "${CMAKE_BINARY_DIR}/run/$<CONFIG>/Wireshark.app/Contents/PlugIns/wireshark")
+ set(_plugin_dir "${CMAKE_BINARY_DIR}/run/$<CONFIG>/Wireshark.app/Contents/PlugIns/wireshark/${PLUGIN_PATH_ID}")
endif()
if(CMAKE_CFG_INTDIR STREQUAL ".")
- set(_logray_plugin_dir "${CMAKE_BINARY_DIR}/run/Logray.app/Contents/PlugIns/logray")
+ set(_logray_plugin_dir "${CMAKE_BINARY_DIR}/run/Logray.app/Contents/PlugIns/logray/${PLUGIN_PATH_ID}")
else()
# Xcode
- set(_logray_plugin_dir "${CMAKE_BINARY_DIR}/run/$<CONFIG>/Logray.app/Contents/PlugIns/logray")
+ set(_logray_plugin_dir "${CMAKE_BINARY_DIR}/run/$<CONFIG>/Logray.app/Contents/PlugIns/logray/${PLUGIN_PATH_ID}")
endif()
elseif(MSVC AND NOT CMAKE_CFG_INTDIR STREQUAL ".")
- set(_plugin_dir "${CMAKE_BINARY_DIR}/run/$<CONFIG>/plugins")
+ set(_plugin_dir "${CMAKE_BINARY_DIR}/run/$<CONFIG>/${PLUGIN_VERSION_DIR}")
set(_logray_plugin_dir ${_plugin_dir})
else()
- set(_plugin_dir "${DATAFILE_DIR}/plugins")
+ set(_plugin_dir "${DATAFILE_DIR}/${PLUGIN_VERSION_DIR}")
set(_logray_plugin_dir ${_plugin_dir})
endif()
set (PLUGIN_DIR ${_plugin_dir} CACHE INTERNAL "Build time plugin location.")
@@ -1911,7 +1955,7 @@ set_package_properties(LZ4 PROPERTIES
set_package_properties(SNAPPY PROPERTIES
DESCRIPTION "A fast compressor/decompressor from Google"
URL "https://google.github.io/snappy/"
- PURPOSE "Snappy decompression in CQL and Kafka dissectors"
+ PURPOSE "Snappy decompression in Couchbase, CQL, Kafka and Mongo dissectors"
)
set_package_properties(ZSTD PROPERTIES
DESCRIPTION "A compressor/decompressor from Facebook providing better compression than Snappy at a cost of speed"
@@ -1995,9 +2039,6 @@ if(WIN32)
set(PLATFORM_UI_SRC
ui/win32/file_dlg_win32.cpp
)
- set(PLATFORM_UI_RC_FILES
- resources/file_dlg_win32.rc
- )
elseif(APPLE)
set(PLATFORM_UI_SRC
ui/macosx/cocoa_bridge.mm
@@ -2231,7 +2272,7 @@ if(USE_REPOSITORY)
list (APPEND THIRD_PARTY_DLLS "${BCG729_DLL_DIR}/${BCG729_DLL}")
endif(BCG729_FOUND)
if (AMRNB_FOUND)
- list (APPEND OPTIONAL_DLLS "${AMRNB_DLL_DIR}/${AMRNB_DLL}")
+ list (APPEND THIRD_PARTY_DLLS "${AMRNB_DLL_DIR}/${AMRNB_DLL}")
endif(AMRNB_FOUND)
if (ILBC_FOUND)
list (APPEND THIRD_PARTY_DLLS "${ILBC_DLL_DIR}/${ILBC_DLL}")
@@ -2950,8 +2991,10 @@ endif()
if (BUILD_logray AND FALCO_PLUGINS)
add_custom_target(copy_falco_plugins)
add_custom_command(TARGET copy_falco_plugins
- COMMAND ${CMAKE_COMMAND} -E make_directory ${LOGRAY_PLUGIN_DIR}/falco
- COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FALCO_PLUGINS} ${LOGRAY_PLUGIN_DIR}/falco
+ # XXX Falco plugins should probably be installed in a path that reflects
+ # the Falco version or its plugin API version.
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${LOGRAY_PLUGIN_DIR}/../falco
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FALCO_PLUGINS} ${LOGRAY_PLUGIN_DIR}/../falco
VERBATIM
)
add_dependencies(logray copy_falco_plugins)
@@ -3014,7 +3057,6 @@ if(BUILD_tshark)
${APPLE_CORE_FOUNDATION_LIBRARY}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
${WIN_WS2_32_LIBRARY}
- ${M_LIBRARIES}
)
set(tshark_FILES
$<TARGET_OBJECTS:capture_opts>
@@ -3088,7 +3130,6 @@ if(BUILD_sharkd)
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
${WIN_WS2_32_LIBRARY}
${SPEEXDSP_LIBRARIES}
- ${M_LIBRARIES}
${GCRYPT_LIBRARIES}
)
set(sharkd_FILES
@@ -3284,7 +3325,6 @@ if(BUILD_dumpcap AND PCAP_FOUND)
${APPLE_CORE_FOUNDATION_LIBRARY}
${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
${WIN_WS2_32_LIBRARY}
- ${M_LIBRARIES}
)
if(UNIX)
list(APPEND CAPUTILS_SRC
@@ -4128,7 +4168,7 @@ configure_package_config_file(WiresharkConfig.cmake.in
PATH_VARS
CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_INCLUDEDIR
- PLUGIN_INSTALL_LIBDIR
+ PLUGIN_INSTALL_VERSION_LIBDIR
EXTCAP_INSTALL_LIBDIR
)
@@ -4307,6 +4347,7 @@ if(SHELLCHECK_EXECUTABLE)
tools/pre-commit
tools/randpkt-test.sh
tools/release-update-debian-soversions.sh
+ tools/rpm-setup.sh
tools/test-captures.sh
tools/update-tx
tools/valgrind-wireshark.sh
diff --git a/CMakeOptions.txt b/CMakeOptions.txt
index 2358031d4f..d639d22036 100644
--- a/CMakeOptions.txt
+++ b/CMakeOptions.txt
@@ -3,11 +3,7 @@
option(BUILD_wireshark "Build Wireshark" ON)
option(BUILD_logray "Build Logray" OFF)
if(BUILD_wireshark OR BUILD_logray)
- if(NOT DEFINED ENV{WIRESHARK_BUILD_WITH_QT5})
- option(USE_qt6 "Use Qt6 instead of Qt5" ON)
- else()
- option(USE_qt6 "Use Qt6 instead of Qt5" OFF)
- endif()
+ option(USE_qt6 "Use Qt6 (preferred) instead of Qt5" ON)
endif()
option(BUILD_tshark "Build tshark" ON)
option(BUILD_tfshark "Build tfshark" OFF)
diff --git a/NEWS b/NEWS
index 44f5119907..fd89a73cc5 100644
--- a/NEWS
+++ b/NEWS
@@ -10,8 +10,14 @@ Wireshark 4.3.0 Release Notes
What’s New
- Lua 5.3 and 5.4 are supported, and the Lua version included with the
- Windows and MacOS installers is now 5.4.6.
+ Wireshark now supports automatic profile switching. You can associate
+ a display filter with a configuration profile, and when you open a
+ capture file that matches the filter, Wireshark will automatically
+ switch to that profile.
+
+ Lua support for older LUA versions has been dropped. Only 5.3 and 5.4
+ are supported, and the Lua version included with the Windows and MacOS
+ installers is now 5.4.6.
Improved display filter support for value strings (optional string
representations for numeric fields).
@@ -19,9 +25,6 @@ Wireshark 4.3.0 Release Notes
Display filter functions can be implemented as runtime-loadable C
plugins.
- Plugin registration API was refactored. Plugin authors must update
- their plugins as described below.
-
Custom columns can be defined using any valid field expression, such
as display filter functions, slices, arithmetic calculations, logical
tests, raw byte addressing, and the layer modifier.
@@ -29,6 +32,9 @@ Wireshark 4.3.0 Release Notes
Custom output fields for `tshark -e` can also be defined using any
valid field expression.
+ Many improvements and fixes to the graphing dialogs, including I/O
+ Graphs, Flow Graph / VoIP Calls, and TCP Stream Graphs.
+
Many other improvements have been made. See the “New and Updated
Features” section below for more details.
@@ -167,20 +173,7 @@ Wireshark 4.3.0 Release Notes
• The Resolved Addresses dialog only shows what addresses and ports
are present in the file (not including information from static
files), and selected rows or the entire table can be saved or
- copied to the clipboard in several formats.
-
- • New "Tools › Install Plugin" option provides a convenient method
- to install a binary plugin to the personal folder.
-
- • The personal binary plugins folder now has higher priority than
- the global folder.
-
- • The binary plugins folder path no longer uses an X.Y version
- component. Plugins are required to add the ABI version to the
- file name.
-
- • Truncated fields in the detail view are now displayed as "Field
- name […]: data" instead of "Field name [truncated]: data"
+ copied to the clipboard in several formats. Issue 16419[8]
• When capturing files in multiple file mode, a pattern that places
the date and time before the index number can be used (e.g.,
@@ -197,13 +190,142 @@ Wireshark 4.3.0 Release Notes
additional occurrences of a string, hex value, or regular
expression in a single frame.
+ • When using "Go To Packet" with an undisplayed frame, the window
+ goes to nearest displayed frame (by number.) Issue 2988[9]
+
+ • A number of graphs using QCustomPlot ("I/O Graphs", "Flow Graph",
+ "TCP Stream Graphs", and "RTP Player") are more responsive during
+ mouse moves, especially on Linux when Wayland is used.
+
+ • Improvements to the "I/O Graphs" dialog:
+
+ • A number of crasher bugs have been fixed.
+
+ • Smaller intervals can be used, down to 1 microsecond. Issue
+ 13682[10]
+
+ • A larger number of I/O Graph item buckets can be used, up to
+ 225 items. Issue 8460[11]
+
+ • The memory usage has been improved, the size of an item has
+ been reduced from 152 bytes to 88 bytes.
+
+ • When the Y field or Y axis changes, the graph displays the new
+ graph correctly, retapping if necessary, instead of displaying
+ information based on stale data.
+
+ • The graph is smarter about choosing whether to retap
+ (expensive), recalculate (moderately intensive), or replot
+ (cheap) in order to display the newly chosen options correctly
+ with the least amout of calculations. For instance, a graph that
+ has previously been plotted and is disabled and then reenabled
+ without any other changes will not require a new retap. Issue
+ 15822[12]
+
+ • LOAD graphs are graphed properly again. Issue 18450[13]
+
+ • The I/O Graph y-axis has human readable units with SI
+ prefixes. Issue 12827[14]
+
+ • I/O Graph bar widths are scaled to the size of the interval.
+
+ • I/O Graph bar border colors are a slightly darker color than
+ that of the graph itself, instead of always black. Issue
+ 17422[15]
+
+ • The correct width of times that appear on the graph are used
+ when automatically resetting the axes.
+
+ • The precision of the interval time shown in the hint message
+ depends on the interval.
+
+ • The tracer follows the currently selected row on the table of
+ graphs, and does not appear on an invisible graph.
+
+ • The tracer moves to the frame selected in the main window.
+ Issue 12909[16]
+
+ • Pending graph changes are saved when changing profiles with
+ the I/O Graphs dialog open.
+
+ • I/O Graph dialog windows for closed capture files are no
+ longer affected by changing the list of graphs (either in that
+ dialogs or in other dialogs for the currently open file.)
+
+ • Temporary graphs that have just been added and will not be
+ saved unless the configuration has changed are more clearly
+ marked with italics.
+
+ • When Time of Day is selected on the graph, the absolute time
+ is copied to the CSV instead of relative time. Issue 13717[17]
+
+ • The graph layer order and order in the legend always matches
+ the order in the table, and the legend appears properly. Issue
+ 13854[18]
+
+ • Graphs with both lines and data point symbols are treated as
+ line graphs, not scatter plots, for purposes of displaying zero
+ values.
+
+ • Logarithmic ticks are used when the Y-scale is logarithmic.
+
+ • The graph crosshairs context menu option works.
+
+ • The columns on the table of graphs can be all resized at once
+ via the header context menu. Issue 18102[19]
+
+ • The graph is more responsive to mouse moves, especially on
+ Linux Wayland
+
+ • Improvements to the Sequence Diagram (Flow Graph / VoIP Calls):
+
+ • When exporting the graph as an image, the entire graph is
+ shown, up to 1000 items (which can be changed in preferences),
+ instead of only what was visible on-screen. Issue 13504[20]
+
+ • Endpoints that share a same address now have two distinct
+ nodes with a line between them. Issue 12038[21]
+
+ • Tooltips are shown for elided comments
+
+ • The scroll direction via keyboard is no longer reversed. Issue
+ 12932[22]
+
+ • The column widths are fixed, instead of resizing slightly
+ depending on the visible entries. Issue 12931[23]
+
+ • The Y-axis labels stay in the correct position without having
+ to click Reset.
+
+ • The progress bar appears correctly in the Flow Graph (non VoIP
+ Calls.)
+
+ • The behavior of the "Any" and "Network" combobox is corrected.
+ Issue 19818[24]
+
+ • "Limit to Display Filter" is checked if a display filter is
+ applied when the Flow Graph is opened, per the documentation.
+
+ • TCP Stream Graphs:
+
+ • A better decision is made about which side is the server and
+ thus the initially chosen direction in the graph.
+
+ • The Window Scaling graph axis labels are corrected and show
+ both graphs.
+
+ • The graph crosshairs context menu option works.
+
+ • Switching between relative and absolute sequence numbers works
+ again.
+
• The included Lua version has been updated to 5.4. While most Lua
dissectors should continue to work (the lua_bitop library has
been patched to work with Lua 5.3 and 5.4, in addition to the
native Lua support for bit operations present in those versions),
different versions of Lua are not guaranteed to be compatible. If
- a Lua dissector has issues, check the manuals for Lua 5.4[8], Lua
- 5.3[9], and Lua 5.2[10] for incompatibilities and suggested
+ a Lua dissector has issues, check the manuals for Lua 5.4[25],
+ Lua 5.3[26], and Lua 5.2[27] for incompatibilities and suggested
workarounds. Note that features marked as deprecated in one
version are removed in the subsequent version without additional
notice, so it can be worth checking the manual for previous
@@ -222,8 +344,9 @@ Wireshark 4.3.0 Release Notes
New Protocol Support
Allied Telesis Resiliency Link (AT RL), EGNOS Message Server (EMS)
- file format, MAC NR Framed (mac-nr-framed), RF4CE Network Layer
- (RF4CE), and RF4CE Profile (RF4CE Profile)
+ file format, Galileo E1-B I/NAV navigation messages, MAC NR Framed
+ (mac-nr-framed), RF4CE Network Layer (RF4CE), RF4CE Profile (RF4CE
+ Profile), and ZeroMQ Message Transport Protocol (ZMTP)
Updated Protocol Support
@@ -240,12 +363,9 @@ Wireshark 4.3.0 Release Notes
Major API Changes
- • Plugin registration API was refactored. Plugin authors must do
- the following: 1 - Remove the existing boilerplate (version,
- want_major` and `want_minor` and plugin API declarations. 2 - Add
- a struct ws_module to the plugin. 3 - Call one of the
- WIRESHARK_PLUGIN_REGISTER_* macros. See README.plugins sections 5
- and doc/plugins.example/hello.c for details and examples.
+ • Plugins should provide a `plugin_describe()` function that
+ returns an ORed list of flags consisting of the plugin types used
+ (declared in wsutil/plugins.h).
Getting Wireshark
@@ -257,7 +377,7 @@ Wireshark 4.3.0 Release Notes
Most Linux and Unix vendors supply their own Wireshark packages. You
can usually install or upgrade Wireshark using the package management
system specific to that platform. A list of third-party packages can
- be found on the download page[11] on the Wireshark web site.
+ be found on the download page[28] on the Wireshark web site.
File Locations
@@ -272,24 +392,24 @@ Wireshark 4.3.0 Release Notes
The User’s Guide, manual pages and various other documentation can be
found at https://www.wireshark.org/docs/
- Community support is available on Wireshark’s Q&A site[12] and on the
+ Community support is available on Wireshark’s Q&A site[29] and on the
wireshark-users mailing list. Subscription information and archives
- for all of Wireshark’s mailing lists can be found on the web site[13].
+ for all of Wireshark’s mailing lists can be found on the web site[30].
- Bugs and feature requests can be reported on the issue tracker[14].
+ Bugs and feature requests can be reported on the issue tracker[31].
You can learn protocol analysis and meet Wireshark’s developers at
- SharkFest[15].
+ SharkFest[32].
How You Can Help
The Wireshark Foundation helps as many people as possible understand
their networks as much as possible. You can find out more and donate
- at wiresharkfoundation.org[16].
+ at wiresharkfoundation.org[33].
Frequently Asked Questions
- A complete FAQ is available on the Wireshark web site[17].
+ A complete FAQ is available on the Wireshark web site[34].
References
@@ -300,13 +420,30 @@ Wireshark 4.3.0 Release Notes
5. https://gitlab.com/wireshark/wireshark/-/issues/18588
6. https://gitlab.com/wireshark/wireshark/-/issues/19076
7. https://gitlab.com/wireshark/wireshark/-/issues/17484
- 8. https://www.lua.org/manual/5.4/manual.html#8
- 9. https://www.lua.org/manual/5.3/manual.html#8
- 10. https://www.lua.org/manual/5.2/manual.html#8
- 11. https://www.wireshark.org/download.html
- 12. https://ask.wireshark.org/
- 13. https://www.wireshark.org/lists/
- 14. https://gitlab.com/wireshark/wireshark/-/issues
- 15. https://sharkfest.wireshark.org
- 16. https://wiresharkfoundation.org
- 17. https://www.wireshark.org/faq.html
+ 8. https://gitlab.com/wireshark/wireshark/-/issues/16419
+ 9. https://gitlab.com/wireshark/wireshark/-/issues/2988
+ 10. https://gitlab.com/wireshark/wireshark/-/issues/13682
+ 11. https://gitlab.com/wireshark/wireshark/-/issues/8460
+ 12. https://gitlab.com/wireshark/wireshark/-/issues/15822
+ 13. https://gitlab.com/wireshark/wireshark/-/issues/18450
+ 14. https://gitlab.com/wireshark/wireshark/-/issues/12827
+ 15. https://gitlab.com/wireshark/wireshark/-/issues/17422
+ 16. https://gitlab.com/wireshark/wireshark/-/issues/12909
+ 17. https://gitlab.com/wireshark/wireshark/-/issues/13717
+ 18. https://gitlab.com/wireshark/wireshark/-/issues/13854
+ 19. https://gitlab.com/wireshark/wireshark/-/issues/18102
+ 20. https://gitlab.com/wireshark/wireshark/-/issues/13504
+ 21. https://gitlab.com/wireshark/wireshark/-/issues/12038
+ 22. https://gitlab.com/wireshark/wireshark/-/issues/12932
+ 23. https://gitlab.com/wireshark/wireshark/-/issues/12931
+ 24. https://gitlab.com/wireshark/wireshark/-/issues/19818
+ 25. https://www.lua.org/manual/5.4/manual.html#8
+ 26. https://www.lua.org/manual/5.3/manual.html#8
+ 27. https://www.lua.org/manual/5.2/manual.html#8
+ 28. https://www.wireshark.org/download.html
+ 29. https://ask.wireshark.org/
+ 30. https://www.wireshark.org/lists/
+ 31. https://gitlab.com/wireshark/wireshark/-/issues
+ 32. https://sharkfest.wireshark.org
+ 33. https://wiresharkfoundation.org
+ 34. https://www.wireshark.org/faq.html
diff --git a/WiresharkConfig.cmake.in b/WiresharkConfig.cmake.in
index 3e432690d4..d8981b8b2f 100644
--- a/WiresharkConfig.cmake.in
+++ b/WiresharkConfig.cmake.in
@@ -3,15 +3,8 @@ set(Wireshark_MINOR_VERSION @PROJECT_MINOR_VERSION@)
set(Wireshark_PATCH_VERSION @PROJECT_PATCH_VERSION@)
set(Wireshark_VERSION "@PROJECT_VERSION@")
-set(Wireshark_ABI_VERSION_EPAN @PROJECT_ABI_VERSION_EPAN@)
-set(Wireshark_ABI_VERSION_WIRETAP @PROJECT_ABI_VERSION_WIRETAP@)
-set(Wireshark_ABI_VERSION_CODEC @PROJECT_ABI_VERSION_CODEC@)
-
set(Wireshark_PLUGINS_ENABLED @HAVE_PLUGINS@)
-set(Wireshark_PLUGIN_SUFFIX_EPAN "${CMAKE_SHARED_MODULE_SUFFIX}.${Wireshark_ABI_VERSION_EPAN}")
-set(Wireshark_PLUGIN_SUFFIX_WIRETAP "${CMAKE_SHARED_MODULE_SUFFIX}.${Wireshark_ABI_VERSION_WIRETAP}")
-set(Wireshark_PLUGIN_SUFFIX_CODEC "${CMAKE_SHARED_MODULE_SUFFIX}.${Wireshark_ABI_VERSION_CODEC}")
-set(Wireshark_PLUGIN_LIBDIR "@PLUGIN_INSTALL_LIBDIR@")
+set(Wireshark_PLUGIN_LIBDIR "@PLUGIN_INSTALL_VERSION_LIBDIR@")
@PACKAGE_INIT@
@@ -25,7 +18,9 @@ set_and_check(Wireshark_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@/w
# which is not helpful because the variable is correct, it's just that the empty directories
# were not created (also correctly, empty directories are just noise).
#
-set(Wireshark_PLUGIN_INSTALL_DIR "@PACKAGE_PLUGIN_INSTALL_LIBDIR@")
+if(Wireshark_PLUGINS_ENABLED)
+ set(Wireshark_PLUGIN_INSTALL_DIR "@PACKAGE_PLUGIN_INSTALL_VERSION_LIBDIR@")
+endif()
set(Wireshark_EXTCAP_INSTALL_DIR "@PACKAGE_EXTCAP_INSTALL_LIBDIR@")
include("${CMAKE_CURRENT_LIST_DIR}/WiresharkTargets.cmake")
diff --git a/capinfos.c b/capinfos.c
index b0030865e2..4f11978593 100644
--- a/capinfos.c
+++ b/capinfos.c
@@ -89,7 +89,7 @@
* open or read failure.
*/
-static gboolean stop_after_failure = FALSE;
+static gboolean stop_after_failure;
/*
* table report variables
@@ -99,7 +99,7 @@ static gboolean long_report = TRUE; /* By default generate long report
static gchar table_report_header = TRUE; /* Generate column header by default */
static gchar field_separator = '\t'; /* Use TAB as field separator by default */
static gchar quote_char = '\0'; /* Do NOT quote fields by default */
-static gboolean machine_readable = FALSE; /* Display machine-readable numbers */
+static gboolean machine_readable; /* Display machine-readable numbers */
/*
* capinfos has the ability to report on a number of
@@ -129,7 +129,7 @@ static gboolean cap_data_size = TRUE; /* Report packet byte size */
static gboolean cap_duration = TRUE; /* Report capture duration */
static gboolean cap_start_time = TRUE; /* Report capture start time */
static gboolean cap_end_time = TRUE; /* Report capture end time */
-static gboolean time_as_secs = FALSE; /* Report time values as raw seconds */
+static gboolean time_as_secs; /* Report time values as raw seconds */
static gboolean cap_data_rate_byte = TRUE; /* Report data rate bytes/sec */
static gboolean cap_data_rate_bit = TRUE; /* Report data rate bites/sec */
@@ -151,8 +151,8 @@ static gboolean cap_file_hashes = TRUE; /* Calculate file hashes */
static gchar file_sha256[HASH_STR_SIZE];
static gchar file_sha1[HASH_STR_SIZE];
-static char *hash_buf = NULL;
-static gcry_md_hd_t hd = NULL;
+static char *hash_buf;
+static gcry_md_hd_t hd;
static guint num_ipv4_addresses;
static guint num_ipv6_addresses;
diff --git a/capture/airpcap_loader.c b/capture/airpcap_loader.c
index c57f93f4be..fbfdeab8c7 100644
--- a/capture/airpcap_loader.c
+++ b/capture/airpcap_loader.c
@@ -27,14 +27,14 @@
* Set to true if the DLL was successfully loaded AND all functions
* are present.
*/
-static bool AirpcapLoaded = false;
+static bool AirpcapLoaded;
#ifdef _WIN32
/*
* We load dynamically the dag library in order link it only when
* it's present on the system
*/
-static void * AirpcapLib = NULL;
+static void * AirpcapLib;
static AirpcapGetLastErrorHandler g_PAirpcapGetLastError;
static AirpcapSetKernelBufferHandler g_PAirpcapSetKernelBuffer;
@@ -77,13 +77,13 @@ static AirpcapGetDeviceChannelExHandler g_PAirpcapGetDeviceChannelEx;
static AirpcapGetDeviceSupportedChannelsHandler g_PAirpcapGetDeviceSupportedChannels;
/* Airpcap interface list */
-GList *g_airpcap_if_list = NULL;
+GList *g_airpcap_if_list;
/* Airpcap current selected interface */
-airpcap_if_info_t *airpcap_if_selected = NULL;
+airpcap_if_info_t *airpcap_if_selected;
/* Airpcap current active interface */
-airpcap_if_info_t *airpcap_if_active = NULL;
+airpcap_if_info_t *airpcap_if_active;
Dot11Channel *pSupportedChannels;
unsigned numSupportedChannels;
diff --git a/capture/capture-wpcap.c b/capture/capture-wpcap.c
index 4f7d1dca99..792fef7088 100644
--- a/capture/capture-wpcap.c
+++ b/capture/capture-wpcap.c
@@ -26,7 +26,7 @@
#include "capture/capture-wpcap.h"
#include <wsutil/feature_list.h>
-bool has_wpcap = false;
+bool has_wpcap;
#ifdef HAVE_LIBPCAP
diff --git a/capture/capture_ifinfo.c b/capture/capture_ifinfo.c
index 7d48588b73..af1c136b23 100644
--- a/capture/capture_ifinfo.c
+++ b/capture/capture_ifinfo.c
@@ -31,7 +31,7 @@
#include <wsutil/wsjson.h>
#ifdef HAVE_PCAP_REMOTE
-static GList *remote_interface_list = NULL;
+static GList *remote_interface_list;
GList * append_remote_list(GList *iflist)
{
diff --git a/capture/capture_sync.c b/capture/capture_sync.c
index 4734d0dcd3..81e86ba0e1 100644
--- a/capture/capture_sync.c
+++ b/capture/capture_sync.c
@@ -115,7 +115,7 @@ static void pipe_convert_header(const unsigned char *header, int header_len, cha
static ssize_t pipe_read_block(GIOChannel *pipe_io, char *indicator, int len, char *msg,
char **err_msg);
-static void (*fetch_dumpcap_pid)(ws_process_id) = NULL;
+static void (*fetch_dumpcap_pid)(ws_process_id);
void
capture_session_init(capture_session *cap_session, capture_file *cf,
diff --git a/capture/ws80211_utils.c b/capture/ws80211_utils.c
index 2211f80cbf..0a67333c6d 100644
--- a/capture/ws80211_utils.c
+++ b/capture/ws80211_utils.c
@@ -1157,7 +1157,7 @@ int ws80211_set_fcs_validation(const char *name, enum ws80211_fcs_validation fcs
return ret_val;
}
-static char *airpcap_conf_path = NULL;
+static char *airpcap_conf_path;
const char *ws80211_get_helper_path(void)
{
HKEY h_key = NULL;
diff --git a/capture_opts.c b/capture_opts.c
index e0a897afb6..bc26b5b655 100644
--- a/capture_opts.c
+++ b/capture_opts.c
@@ -1011,7 +1011,13 @@ capture_opts_add_opt(capture_options *capture_opts, int opt, const char *optarg_
}
break;
#endif
- /*case 'l':*/ /* Automatic scrolling in live capture mode */
+ case 'l': /* tshark "Line-buffer" standard output */
+ capture_opts->update_interval = 0;
+ /* Wireshark uses 'l' for Automatic scrolling in live capture mode,
+ * but ui/commandline.c should not and does not call this function
+ * for 'l'.
+ */
+ break;
#ifdef HAVE_PCAP_SETSAMPLING
case 'm':
if (get_sampling_arguments(capture_opts, optarg_str_p) == FALSE) {
@@ -1158,7 +1164,7 @@ capture_opts_add_opt(capture_options *capture_opts, int opt, const char *optarg_
capture_opts->temp_dir = g_strdup(optarg_str_p);
break;
case LONGOPT_UPDATE_INTERVAL: /* capture update interval */
- capture_opts->update_interval = get_positive_int(optarg_str_p, "update interval");
+ capture_opts->update_interval = get_natural_int(optarg_str_p, "update interval");
break;
default:
/* the caller is responsible to send us only the right opt's */
diff --git a/capture_opts.h b/capture_opts.h
index c0a73d8e34..a88d38f675 100644
--- a/capture_opts.h
+++ b/capture_opts.h
@@ -164,8 +164,8 @@ typedef struct interface_tag {
gchar *cfilter;
GList *links;
gint active_dlt;
- gboolean pmode;
- gboolean has_snaplen;
+ bool pmode;
+ bool has_snaplen;
int snaplen;
gboolean local;
#ifdef CAN_SET_CAPTURE_BUFFER_SIZE
diff --git a/cfile.h b/cfile.h
index d5a2c5da2b..58c085d080 100644
--- a/cfile.h
+++ b/cfile.h
@@ -71,7 +71,7 @@ typedef struct _capture_file {
gchar *source; /* Temp file source, e.g. "Pipe from elsewhere" */
gboolean is_tempfile; /* Is capture file a temporary file? */
gboolean unsaved_changes; /* Does the capture file have changes that have not been saved? */
- gboolean stop_flag; /* Stop current processing (loading, searching, etc.) */
+ bool stop_flag; /* Stop current processing (loading, searching, etc.) */
gint64 f_datalen; /* Size of capture file data (uncompressed) */
guint16 cd_t; /* File type of capture file */
diff --git a/cmake/external/lua53/Lua53.cmake b/cmake/external/lua53/Lua53.cmake
index f11576aea2..c1da961aea 100644
--- a/cmake/external/lua53/Lua53.cmake
+++ b/cmake/external/lua53/Lua53.cmake
@@ -23,6 +23,8 @@ set(LUA_INCLUDE_DIRS "${_staging_dir}/include")
set(LUA_LIBRARIES "${_staging_dir}/lib/liblua.a")
set(LUA_FOUND TRUE CACHE INTERNAL "")
set(Lua_FOUND TRUE CACHE INTERNAL "")
+# Fresh Lua 5.3+ install always has 64-bit lua_Integers (unlike Lua 5.2)
+set(LUA_INTEGER_SIZE 8 CACHE INTERNAL "Size of lua_Integer")
set(_lua53_cflags "-fPIC")
if(APPLE)
diff --git a/cmake/modules/FindAMRNB.cmake b/cmake/modules/FindAMRNB.cmake
index f8928ca8e7..4c5babe2f4 100644
--- a/cmake/modules/FindAMRNB.cmake
+++ b/cmake/modules/FindAMRNB.cmake
@@ -7,7 +7,7 @@
# AMRNB_DLL - (Windows) Name of the amrnb DLL
include( FindWSWinLibs )
-FindWSWinLibs( "opencore-amrnb-.*" "AMRNB_HINTS" )
+FindWSWinLibs( "opencore-amr-.*" "AMRNB_HINTS" )
if (NOT USE_REPOSITORY)
find_package(PkgConfig)
@@ -23,7 +23,7 @@ find_path( AMRNB_INCLUDE_DIR
)
find_library( AMRNB_LIBRARY
- NAMES opencore-amrnb
+ NAMES opencore-amrnb libopencore-amrnb-0
HINTS
"${PC_AMRNB_LIBDIRS}"
"${AMRNB_HINTS}/lib"
@@ -38,14 +38,14 @@ if( AMRNB_FOUND )
set( AMRNB_LIBRARIES ${AMRNB_LIBRARY} )
if (WIN32)
set ( AMRNB_DLL_DIR "${AMRNB_HINTS}/bin"
- CACHE PATH "Path to amrnb DLL"
+ CACHE PATH "Path to the AMR-NB DLL"
)
file( GLOB _amrnb_dll RELATIVE "${AMRNB_DLL_DIR}"
- "${AMRNB_DLL_DIR}/libamrnb.dll"
+ "${AMRNB_DLL_DIR}/libopencore-amrnb-0.dll"
)
set ( AMRNB_DLL ${_amrnb_dll}
# We're storing filenames only. Should we use STRING instead?
- CACHE FILEPATH "amrnb DLL file name"
+ CACHE FILEPATH "AMR NB-DLL file name"
)
mark_as_advanced( AMRNB_DLL_DIR AMRNB_DLL )
endif()
diff --git a/cmake/modules/FindLua.cmake b/cmake/modules/FindLua.cmake
index 45bcddf881..7bacfdd447 100644
--- a/cmake/modules/FindLua.cmake
+++ b/cmake/modules/FindLua.cmake
@@ -56,7 +56,7 @@ unset(_lua_append_versions)
# this is a function only to have all the variables inside go away automatically
function(_lua_get_versions)
set(LUA_VERSIONS5 ${LUA_FIND_VERSIONS})
- list(FILTER LUA_VERSIONS5 INCLUDE REGEX "5\.[4321]")
+ list(FILTER LUA_VERSIONS5 INCLUDE REGEX "5\.[43]")
set(_lua_append_versions ${LUA_VERSIONS5})
message(STATUS "Considering the following Lua versions: ${_lua_append_versions}")
@@ -184,7 +184,7 @@ find_library(LUA_LIBRARY
HINTS
${LUA_HINTS}
ENV LUA_DIR
- PATH_SUFFIXES lib
+ PATH_SUFFIXES lib ${_lua_library_names}
)
unset(_lua_library_names)
@@ -220,6 +220,15 @@ cmake_policy(POP)
IF(Lua_FOUND)
SET( LUA_INCLUDE_DIRS ${LUA_INCLUDE_DIR} )
+
+ unset(HAVE_LUA_INTEGER_SIZE CACHE)
+ cmake_push_check_state()
+ include(CheckTypeSize)
+ set(CMAKE_REQUIRED_INCLUDES ${LUA_INCLUDE_DIR})
+ set(CMAKE_EXTRA_INCLUDE_FILES "luaconf.h")
+ check_type_size(LUA_INTEGER LUA_INTEGER_SIZE)
+ cmake_pop_check_state()
+
if (WIN32)
set ( LUA_DLL_DIR "${LUA_HINTS}" CACHE PATH "Path to Lua DLL")
file( GLOB _lua_dll RELATIVE "${LUA_DLL_DIR}" "${LUA_DLL_DIR}/lua*.dll")
diff --git a/cmake/modules/UseCheckAPI.cmake b/cmake/modules/UseCheckAPI.cmake
index 1518fb4fe8..472289f720 100644
--- a/cmake/modules/UseCheckAPI.cmake
+++ b/cmake/modules/UseCheckAPI.cmake
@@ -27,6 +27,8 @@ macro( CHECKAPI )
${CMAKE_SOURCE_DIR}/tools/checkAPIs.pl
${CHECKAPI_SWITCHES}
${CHECKAPI_SOURCES}
+ DEPENDS
+ ${CHECKAPI_SOURCES}
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
COMMENT
diff --git a/cmake/modules/UseMakePluginReg.cmake b/cmake/modules/UseMakePluginReg.cmake
index 24fd4c4731..0c7198d8f4 100644
--- a/cmake/modules/UseMakePluginReg.cmake
+++ b/cmake/modules/UseMakePluginReg.cmake
@@ -1,5 +1,5 @@
#
-function(make_plugin_register _outputfile _registertype _api_level _blurb)
+function(register_plugin_files _outputfile _registertype)
file(RELATIVE_PATH output "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/${_outputfile}")
add_custom_command(
OUTPUT
@@ -8,21 +8,10 @@ function(make_plugin_register _outputfile _registertype _api_level _blurb)
${CMAKE_SOURCE_DIR}/tools/make-plugin-reg.py
${CMAKE_CURRENT_SOURCE_DIR}
${_registertype}
- ${_blurb}
- ${_api_level}
${ARGN}
COMMENT "Generating ${output}"
DEPENDS
${ARGN}
${CMAKE_SOURCE_DIR}/tools/make-plugin-reg.py
- VERBATIM
)
endfunction()
-
-macro(register_plugin_files _outputfile _registertype _blurb)
- make_plugin_register(${_outputfile} ${_registertype} 0 ${_blurb} ${ARGN})
-endmacro()
-
-macro(register_codec_files _outputfile _api_level _blurb)
- make_plugin_register(${_outputfile} plugin_codec ${_api_level} ${_blurb} ${ARGN})
-endmacro()
diff --git a/cmake/modules/WiresharkPlugin.cmake b/cmake/modules/WiresharkPlugin.cmake
index 4d8cd7a9f8..76277e2568 100644
--- a/cmake/modules/WiresharkPlugin.cmake
+++ b/cmake/modules/WiresharkPlugin.cmake
@@ -28,7 +28,7 @@ macro(SET_MODULE_INFO _plugin _ver_major _ver_minor _ver_micro _ver_extra)
add_definitions(-DPLUGIN_VERSION=\"${PLUGIN_VERSION}\")
endmacro()
-macro(ADD_PLUGIN_LIBRARY _plugin _output_dir _abi_version)
+macro(ADD_WIRESHARK_PLUGIN_LIBRARY _plugin _subfolder)
add_library(${_plugin} MODULE
${PLUGIN_FILES}
${PLUGIN_RC_FILE}
@@ -38,39 +38,38 @@ macro(ADD_PLUGIN_LIBRARY _plugin _output_dir _abi_version)
set_target_properties(${_plugin} PROPERTIES
PREFIX ""
- SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX}.${_abi_version}"
LINK_FLAGS "${WS_LINK_FLAGS}"
FOLDER "Plugins"
- LIBRARY_OUTPUT_DIRECTORY ${_output_dir}
- INSTALL_RPATH ""
)
if(MSVC)
set_target_properties(${_plugin} PROPERTIES LINK_FLAGS_DEBUG "${WS_MSVC_DEBUG_LINK_FLAGS}")
endif()
- add_dependencies(plugins ${_plugin})
-endmacro()
+ set_target_properties(${_plugin} PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${PLUGIN_DIR}/${_subfolder}
+ INSTALL_RPATH ""
+ )
-macro(ADD_WIRESHARK_EPAN_PLUGIN_LIBRARY _plugin)
- ADD_PLUGIN_LIBRARY(${_plugin} "${PLUGIN_DIR}/epan" ${PROJECT_ABI_VERSION_EPAN})
+ add_dependencies(plugins ${_plugin})
endmacro()
-macro(ADD_WIRESHARK_WIRETAP_PLUGIN_LIBRARY _plugin)
- ADD_PLUGIN_LIBRARY(${_plugin} "${PLUGIN_DIR}/wiretap" ${PROJECT_ABI_VERSION_WIRETAP})
+macro(ADD_PLUGIN_LIBRARY _plugin _subfolder)
+ message(WARNING "${CMAKE_PARENT_LIST_FILE}: add_plugin_library is deprecated. Use add_wireshark_plugin_library instead.")
+ ADD_WIRESHARK_PLUGIN_LIBRARY(${_plugin} ${_subfolder})
endmacro()
-macro(ADD_WIRESHARK_CODEC_PLUGIN_LIBRARY _plugin)
- ADD_PLUGIN_LIBRARY(${_plugin} "${PLUGIN_DIR}/codecs" ${PROJECT_ABI_VERSION_CODEC})
-endmacro()
+macro(ADD_LOGRAY_PLUGIN_LIBRARY _plugin _subfolder)
+ ADD_WIRESHARK_PLUGIN_LIBRARY(${_plugin} ${_subfolder})
-macro(ADD_LOGRAY_EPAN_PLUGIN_LIBRARY _plugin)
- ADD_PLUGIN_LIBRARY(${_plugin} "${LOGRAY_PLUGIN_DIR}/epan" ${PROJECT_ABI_VERSION_EPAN})
+ set_target_properties(${_plugin} PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${LOGRAY_PLUGIN_DIR}/${_subfolder}
+ )
endmacro()
macro(INSTALL_PLUGIN _plugin _subfolder)
install(TARGETS ${_plugin}
- LIBRARY DESTINATION ${PLUGIN_INSTALL_LIBDIR}/${_subfolder} NAMELINK_SKIP
- RUNTIME DESTINATION ${PLUGIN_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${PLUGIN_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${PLUGIN_INSTALL_VERSION_LIBDIR}/${_subfolder} NAMELINK_SKIP
+ RUNTIME DESTINATION ${PLUGIN_INSTALL_VERSION_LIBDIR}
+ ARCHIVE DESTINATION ${PLUGIN_INSTALL_VERSION_LIBDIR}
)
endmacro()
diff --git a/cmakeconfig.h.in b/cmakeconfig.h.in
index 38cd494b4f..e53427b15a 100644
--- a/cmakeconfig.h.in
+++ b/cmakeconfig.h.in
@@ -19,10 +19,9 @@
/* Version number of Logray and associated utilities */
#define LOG_VERSION "${LOG_PROJECT_VERSION}${VERSION_EXTRA}"
+#define PLUGIN_PATH_ID "${PLUGIN_PATH_ID}"
#define VERSION_FLAVOR "${VERSION_FLAVOR}"
-#define SHARED_MODULE_SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX}"
-
/* Build wsutil with SIMD optimization */
#cmakedefine HAVE_SSE4_2 1
@@ -182,6 +181,9 @@
/* Define to 1 if we have Lua with Unicode for Windows patches. */
#cmakedefine HAVE_LUA_UNICODE 1
+/* The size of the lua_Integer type, if we have Lua. */
+#cmakedefine LUA_INTEGER_SIZE ${LUA_INTEGER_SIZE}
+
/* Define to use MIT kerberos */
#cmakedefine HAVE_MIT_KERBEROS 1
@@ -326,6 +328,9 @@
/* Define if we have QtMultimedia */
#cmakedefine QT_MULTIMEDIA_LIB 1
+/* Define if we have QtDBus */
+#cmakedefine QT_DBUS_LIB 1
+
/* Build androiddump with libpcap instead of wireshark stuff */
#cmakedefine ANDROIDDUMP_USE_LIBPCAP 1
diff --git a/dftest.c b/dftest.c
index 32f0cad244..e4dfa2c8da 100644
--- a/dftest.c
+++ b/dftest.c
@@ -44,20 +44,20 @@
#include "ui/failure_message.h"
#include "wsutil/version_info.h"
-static int opt_verbose = 0;
-static int opt_debug_level = 0; /* currently up to 2 */
-static int opt_flex = 0;
-static int opt_lemon = 0;
-static int opt_syntax_tree = 0;
-static int opt_return_vals = 0;
-static int opt_timer = 0;
+static int opt_verbose;
+static int opt_debug_level; /* currently up to 2 */
+static int opt_flex;
+static int opt_lemon;
+static int opt_syntax_tree;
+static int opt_return_vals;
+static int opt_timer;
static long opt_optimize = 1;
-static int opt_show_types = 0;
-static int opt_dump_refs = 0;
-static int opt_dump_macros = 0;
+static int opt_show_types;
+static int opt_dump_refs;
+static int opt_dump_macros;
-static gint64 elapsed_expand = 0;
-static gint64 elapsed_compile = 0;
+static gint64 elapsed_expand;
+static gint64 elapsed_compile;
/*
* Report an error in command-line arguments.
diff --git a/doc/README.developer b/doc/README.developer
index b6ac8ea0de..45426f8a7e 100644
--- a/doc/README.developer
+++ b/doc/README.developer
@@ -725,6 +725,14 @@ should be stored in a 32-bit variable, such as an "int"; if you store it
in an 8-bit or 16-bit variable, you run the risk of the variable
overflowing.
+If your dissector uses recursion, you must ensure that your code does
+not do so excessively. If there isn't an inherent limit on recursion in
+your dissector, you can can add one using increment_dissection_depth and
+decrement_dissection_depth. Wireshark's CI system uses Clang-tidy to
+check for recursion; you might also need to add suppressions described at
+https://clang.llvm.org/extra/clang-tidy/#suppressing-undesired-diagnostics
+in order to pass CI checks.
+
sprintf() -> snprintf()
Prevent yourself from using the sprintf() function, as it does not test the
length of the given output buffer and might be writing into unintended memory
diff --git a/doc/README.dissector b/doc/README.dissector
index 6241545ae2..dcf1ad02df 100644
--- a/doc/README.dissector
+++ b/doc/README.dissector
@@ -2780,7 +2780,7 @@ typedef struct {
} my_entry_t;
/* Registered protocol number */
-static int my_proto = -1;
+static int my_proto;
/********************* in the dissector routine *********************/
diff --git a/doc/README.heuristic b/doc/README.heuristic
index 08e9464fa1..cff576380a 100644
--- a/doc/README.heuristic
+++ b/doc/README.heuristic
@@ -187,7 +187,7 @@ dissect_PROTOABBREV_heur_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/* and do the dissection */
dissect_PROTOABBREV_tcp(tvb, pinfo, tree, data);
- return (true);
+ return true;
}
static int
diff --git a/doc/README.plugins b/doc/README.plugins
index 190621d9ae..d7e9fa8e7a 100644
--- a/doc/README.plugins
+++ b/doc/README.plugins
@@ -4,20 +4,10 @@ There are a multitude of plugin options available in Wireshark that allow to
extend its functionality without changing the source code itself. Using the
available APIs gives you the means to do this.
-Plugins have three distinct binary types:
- * codec: These plugins are loaded by Wireshark to implement audio codecs
- * wiretap: These plugins can implement various extensions to libwiretap
- * epan: These plugins implement extensions to libwireshark
-
-Within each type we can differentiate by the features and APIs used. There
-are the following functional types:
-
- * codec: is its own class of functionality, described above
- * dissector (epan): implements new protocol dissectors
- * tap listener (epan): implements statistics and other extensions using taps
- * dfunction (epan): implements new display filter functions
- * epan (epan): used to implement language bindings such as Lua
- * file type (wiretap): implements support for reading new capture file types
+Currently plugin APIs are available for dissectors (epan), capture file types
+(wiretap) and media decoders (codecs). This README focuses primarily on
+dissector plugins; most of the descriptions are applicable to the other plugin
+types as well.
1. Dissector plugins
@@ -169,75 +159,84 @@ by going to the plugins/foo directory and running
make install
-5. Plugin registration
+5. Update "old style" plugins
+
+5.1 How to update an "old style" plugin (since Wireshark 2.5)
+
+Plugins need exactly four visible symbols: plugin_version, plugin_want_major,
+plugin_want_minor and plugin_register. Each plugin is either a codec plugin,
+libwiretap plugin or libwireshark plugin and the library will call
+"plugin_register" after loading the plugin. "plugin_register" in turn calls all
+the hooks necessary to enable the plugin. So if you had two function like so:
+
+ WS_DLL_PUBLIC void plugin_register(void);
+ WS_DLL_PUBLIC void plugin_reg_handoff(void);
-5.1 Registration API common to all plugin types
+ void plugin_register(void) {...};
+ void plugin_reg_handoff(void) {...};
-You must include the plugin API header:
+You'll have to rewrite it as:
-#include <wsutil/plugins.h>
+ WS_DLL_PUBLIC void plugin_register(void);
+
+ static void proto_register_foo(void) {...};
+ static void proto_reg_handoff_foo(void) {...};
+
+ void plugin_register(void)
+ {
+ static proto_plugin plugin_foo;
+
+ plugin_foo.register_protoinfo = proto_register_foo;
+ plugin_foo.register_handoff = proto_reg_handoff_foo;
+ proto_register_plugin(&plugin_foo);
+ }
-First declare a struct with the plugin metadata fields:
+See doc/plugins.example for an example.
-static struct ws_module module = {
- .flags = WS_PLUGIN_DESC_DISSECTOR,
- .version = "X.Y.Z",
- .spdx_id = "GPL-2.0-or-later",
- .home_url = "Your-URL-here",
- .blurb = "Short description for the functionality",
- .register_cb = &plugin_register,
-};
+5.2 How to update an "old style" plugin (using plugin_register and
+ plugin_reg_handoff functions).
-The flags field is currently only used to categorize a plugin according to its
-functionality, for display purposes. A plugin can implement more than one
-functionality type within each binary type, although this is rare in practice.
+The plugin registration has changed with the extension of the build
+scripts. These now generate the additional code needed for plugin
+encapsulation in plugin.c. When using the new style build scripts,
+strips the parts outlined below:
-Version is a string and conventionally uses the format major.minor.micro,
-although this isn't enforced.
+ o Remove the following include statements:
-The spdx_id field is the SPDX license ID for your plugin.
+ #include <gmodule.h>
+ #include "moduleinfo.h"
-Home URL should be a string where users can obtain the source code
-and other detailed information about the plugin.
+ o Removed the definition:
-The blurb is a short description of what the plugin does.
+ #ifndef ENABLE_STATIC
+ WS_DLL_PUBLIC_DEF char version[] = VERSION;
+ #endif
-The plugin registration callback implementation is specific for each plugin
-type (see the various plugins bundled with Wireshark for examples).
+ o Move relevant code from the blocks and delete these functions:
-static void
-plugin_register(void)
-{
- /* Code to register the dissector, tap listener, etc. */
-}
+ #ifndef ENABLE_STATIC
+ plugin_reg_handoff()
+ ....
+ #endif
-Finally the plugin must use one of the following macros to register itself:
+ #ifndef ENABLE_STATIC
+ plugin_register()
+ ....
+ #endif
-WIRESHARK_PLUGIN_REGISTER_EPAN(&module, 0)
-WIRESHARK_PLUGIN_REGISTER_WIRETAP(&module, 0)
-WIRESHARK_PLUGIN_REGISTER_CODEC(&module, 0)
+This will leave a clean dissector source file without plugin specifics.
-As the name implies each plugin binary type has a specific registration
-macro (but they all have the same arguments). The macro takes a pointer to
-the struct ws_module as the first argument. The second argument is
-unused only by codec plugins and explained in the next section. For all
-other plugin types it is ignored and should be zero.
+5.3 How to update an "old style" plugin (using plugin_init function)
-5.2 The plugin minimum API level argument
+The plugin registering has changed between 0.10.9 and 0.10.10; everyone
+is encouraged to update their plugins as outlined below:
-The ABI version test for equality is the main check for compatibility for
-all plugin types but additionally the codec plugin API has an extra
-check called the API level. The codec API is very small and changes very
-infrequently. Codecs plugins that only use the API in wsutil/codecs.h should
-declare a minimum API level required. If the API needs to be changed and that
-can be done in a backward-compatible manner for the ABI/API then only the
-maximum API level will be increased and the minimum API level can stay the same.
+ o Remove following include statements from all plugin sources:
-This means the same plugin can still be loaded successfully without
-recompilation using the older API (possibly with reduced functionality).
+ #include "plugins/plugin_api.h"
+ #include "plugins/plugin_api_defs.h"
-This is currently experimental and may change in the future or be removed
-entirely.
+ o Remove the init function.
6 How to plugin related interface options
diff --git a/doc/README.tapping b/doc/README.tapping
index 4fcb6389e4..e114fe9e45 100644
--- a/doc/README.tapping
+++ b/doc/README.tapping
@@ -33,7 +33,7 @@ do and is done in four easy steps;
1, We need tap.h so just add '#include <epan/tap.h>' (preceded by packet.h) to
the includes.
-2, We need a tap handler so just add 'static int <protocol>_tap = -1;'
+2, We need a tap handler so just add 'static int <protocol>_tap;'
3, Down in proto_register_<protocol>() you need to add
'<protocol>_tap = register_tap("<protocol>");'
diff --git a/doc/README.wslua b/doc/README.wslua
index c26dcf9302..a4f0950f01 100644
--- a/doc/README.wslua
+++ b/doc/README.wslua
@@ -255,10 +255,10 @@ type that make-taps.py has in its Python "types" and "comments" dictionaries.
Note on Lua versions:
-Wireshark supports both Lua 5.1 and 5.2, which are defined as LUA_VERSION_NUM
-values 501 and 502 respectively. When exposing things into Lua, make sure to
+Wireshark supports both Lua 5.3 and 5.4, which are defined as LUA_VERSION_NUM
+values 503 and 504 respectively. When exposing things into Lua, make sure to
use ifdef wrappers for things which changed between the versions of Lua. See
-this for details: http://www.lua.org/manual/5.2/manual.html#8.3
+this for details: http://www.lua.org/manual/5.3/manual.html#8.3
==============================================================================
diff --git a/doc/files.adoc b/doc/files.adoc
new file mode 100644
index 0000000000..3e18788089
--- /dev/null
+++ b/doc/files.adoc
@@ -0,0 +1,431 @@
+== FILES
+
+These files contain various *Wireshark* configuration settings.
+
+Preferences::
++
+--
+The __preferences__ files contain global (system-wide) and personal
+preference settings. If the system-wide preference file exists, it is
+read first, overriding the default settings. If the personal preferences
+file exists, it is read next, overriding any previous values. Note: If
+the command line flag *-o* is used (possibly more than once), it will
+in turn override values from the preferences files.
+
+The preferences settings are in the form __prefname:value__,
+one per line,
+where __prefname__ is the name of the preference
+and __value__ is the value to
+which it should be set; white space is allowed between *:* and
+__value__. A preference setting can be continued on subsequent lines by
+indenting the continuation lines with white space. A *#* character
+starts a comment that runs to the end of the line:
+
+ # Vertical scrollbars should be on right side?
+ # TRUE or FALSE (case-insensitive).
+ gui.scrollbar_on_right: TRUE
+
+The global preferences file is looked for in the __wireshark__ directory
+under the __share__ subdirectory of the main installation directory. On
+macOS, this would typically be
+__/Application/Wireshark.app/Contents/Resources/share__; on other
+UNIX-compatible systems, such as Linux, \*BSD, Solaris, and AIX, this
+would typically be __/usr/share/wireshark/preferences__ for
+system-installed packages and __/usr/local/share/wireshark/preferences__
+for locally-installed packages; on Windows, this would typically be
+__C:\Program Files\Wireshark\preferences__.
+
+On UNIX-compatible systems, the personal preferences file is looked for
+in __$XDG_CONFIG_HOME/wireshark/preferences__, (or, if
+__$XDG_CONFIG_HOME/wireshark__ does not exist while __$HOME/.wireshark__
+does exist, __$HOME/.wireshark/preferences__); this is typically
+__$HOME/.config/wireshark/preferences__. On Windows,
+the personal preferences file is looked for in
+__%APPDATA%\Wireshark\preferences__ (or, if %APPDATA% isn't defined,
+__%USERPROFILE%\Application Data\Wireshark\preferences__).
+
+// tag::gui[]
+Note: Whenever the preferences are saved by using the __Save__ button
+in the __Edit:Preferences__ dialog box, your personal preferences file
+will be overwritten with the new settings, destroying any comments and
+unknown/obsolete settings that were in the file.
+// end::gui[]
+--
+
+// tag::gui[]
+Recent::
++
+--
+The __recent__ file contains personal settings (mostly GUI related) such
+as the current *Wireshark* window size. The file is saved at program exit and
+read in at program start automatically. Note: The command line flag *-o*
+may be used to override settings from this file.
+
+The settings in this file have the same format as in the __preferences__
+files, and the same directory as for the personal preferences file is
+used.
+
+Note: Whenever Wireshark is closed, your recent file
+will be overwritten with the new settings, destroying any comments and
+unknown/obsolete settings that were in the file.
+--
+// end::gui[]
+
+Disabled (Enabled) Protocols::
++
+--
+The __disabled_protos__ files contain system-wide and personal lists of
+protocols that have been disabled, so that their dissectors are never
+called. The files contain protocol names, one per line, where the
+protocol name is the same name that would be used in a display filter
+for the protocol:
+
+ http
+ tcp # a comment
+
+If a protocol is listed in the global __disabled_protos__ file it cannot
+be enabled by the user.
+// tag::gui[]
+Thus it is not displayed in the __Analyze::Enabled Protocols__ dialog box.
+// end::gui[]
+
+The global __disabled_protos__ file uses the same directory as the global
+preferences file.
+
+The personal __disabled_protos__ file uses the same directory as the
+personal preferences file.
+
+The __disabled_protos__ files list only protocols that are enabled by default
+but have been disabled; protocols that are disabled by default (such as some
+postdissectors) are not listed. There are analogous __enabled_protos__ files
+for protocols that are disabled by default but have been enabled.
+
+// tag::gui[]
+Note: Whenever the disabled protocols list is saved by using the __Save__
+button in the __Analyze:Enabled Protocols__ dialog box, your personal
+disabled protocols file will be overwritten with the new settings,
+destroying any comments that were in the file.
+// end::gui[]
+--
+
+Heuristic Dissectors::
++
+--
+The __heuristic_protos__ files contain system-wide and personal lists of
+heuristic dissectors and indicate whether they are enabled or disabled.
+The files contain heuristic dissector unique short names, one per line,
+followed by a comma and 0 for disabled and 1 for enabled:
+
+ quic,1
+ rtcp_stun,1
+ rtcp_udp,1
+ rtp_stun,0
+ rtp_udp,0
+ tls_tcp,1
+
+The global __heuristic_protos__ file uses the same directory as the global
+preferences file.
+
+The personal __heuristic_protos__ file uses the same directory as the
+personal preferences file.
+
+// The global heuristic_protos doesn't have the "set_cant_toggle"
+// features that the enabled_protos and disabled_protos files do.
+--
+
+Name Resolution (hosts)::
++
+--
+Entries in __hosts__ files in the global and personal preferences
+directory are used to resolve IPv4 and IPv6 addresses before any
+other attempts are made to resolve them.
+The file has the standard __hosts__ file syntax; each line contains one
+IP address and name, separated by whitespace. The personal __hosts__
+file, if present, overrides the one in the global directory.
+
+Capture filter name resolution is handled by libpcap on UNIX-compatible
+systems, such as Linux, macOS, \*BSD, Solaris, and AIX, and Npcap or
+WinPcap on Windows. As such the Wireshark personal __hosts__ file will
+not be consulted for capture filter name resolution.
+--
+
+
+Name Resolution (subnets)::
++
+--
+If an IPv4 address cannot be translated via name resolution (no exact
+match is found) then a partial match is attempted via the __subnets__ file.
+Both the global __subnets__ file and personal __subnets__ files are used
+if they exist.
+
+Each line of this file consists of an IPv4 address, a subnet mask length
+separated only by a / and a name separated by whitespace. While the address
+must be a full IPv4 address, any values beyond the mask length are subsequently
+ignored.
+
+An example is:
+
+# Comments must be prepended by the # sign!
+192.168.0.0/24 ws_test_network
+
+A partially matched name will be printed as "subnet-name.remaining-address".
+For example, "192.168.0.1" under the subnet above would be printed as
+"ws_test_network.1"; if the mask length above had been 16 rather than 24, the
+printed address would be "ws_test_network.0.1".
+--
+
+Name Resolution (ethers)::
++
+--
+The __ethers__ files are consulted to correlate 6-byte hardware addresses to
+names. First the personal __ethers__ file is tried and if an address is not
+found there the global __ethers__ file is tried next.
+
+Each line contains one hardware address and name, separated by
+whitespace. The digits of the hardware address are separated by colons
+(:), dashes (-) or periods (.). The same separator character must be
+used consistently in an address. The following three lines are valid
+lines of an __ethers__ file:
+
+ ff:ff:ff:ff:ff:ff Broadcast
+ c0-00-ff-ff-ff-ff TR_broadcast
+ 00.00.00.00.00.00 Zero_broadcast
+
+The global __ethers__ file is looked for in the __/etc__ directory on
+UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
+and in the main installation directory (for example, __C:\Program
+Files\Wireshark__) on Windows systems.
+
+The personal __ethers__ file is looked for in the same directory as the personal
+preferences file.
+
+Capture filter name resolution is handled by libpcap on UNIX-compatible
+systems and Npcap or WinPcap on Windows. As such the Wireshark personal
+__ethers__ file will not be consulted for capture filter name
+resolution.
+--
+
+Name Resolution (manuf)::
++
+--
+The __manuf__ file is used to match the 3-byte vendor portion of a 6-byte
+hardware address with the manufacturer's name; it can also contain well-known
+MAC addresses and address ranges specified with a netmask. The format of the
+file is similar the __ethers__ files, except that entries such as:
+
+ 00:00:0C Cisco Cisco Systems, Inc
+
+can be provided, with the 3-byte OUI and both an abbreviated and long name for
+a vendor, and entries such as:
+
+ 00-00-0C-07-AC/40 All-HSRP-routers
+
+can be specified, with a MAC address and a mask indicating how many bits
+of the address must match. The above entry, for example, has 40
+significant bits, or 5 bytes, and would match addresses from
+00-00-0C-07-AC-00 through 00-00-0C-07-AC-FF. The mask need not be a
+multiple of 8.
+
+A global __manuf__ file is looked for in the same directory as the global
+preferences file, and a personal __manuf__ file is looked for in the same
+directory as the personal preferences file.
+
+In earlier versions of Wireshark, official information from the IEEE
+Registration Authority was distributed in this format as the global
+__manuf__ file. This information is now compiled in to speed program
+startup, but the internal information can be written out in this format
+with *tshark -G manuf*.
+
+In addition to the __manuf__ file, another file with the same format,
+__wka__, is looked for in the global directory. This file is distributed
+with Wireshark, and contains data about well-known MAC adddresses and
+address ranges assembled from various non IEEE but respected sources.
+--
+
+Name Resolution (services)::
++
+--
+The __services__ file is used to translate port numbers into names.
+Both the global __services__ file and personal __services__ files are used
+if they exist.
+
+The file has the standard __services__ file syntax; each line contains one
+(service) name and one transport identifier separated by white space. The
+transport identifier includes one port number and one transport protocol name
+(typically tcp, udp, or sctp) separated by a /.
+
+An example is:
+
+mydns 5045/udp # My own Domain Name Server
+mydns 5045/tcp # My own Domain Name Server
+
+In earlier versions of Wireshark, official information from the IANA
+Registry was distributed in this format as the global __services__ file.
+This information is now compiled in to speed program startup, but the
+internal information can be written out in this format with *tshark -G services*.
+--
+
+Name Resolution (ipxnets)::
++
+--
+The __ipxnets__ files are used to correlate 4-byte IPX network numbers to
+names. First the global __ipxnets__ file is tried and if that address is not
+found there the personal one is tried next.
+
+The format is the same as the __ethers__
+file, except that each address is four bytes instead of six.
+Additionally, the address can be represented as a single hexadecimal
+number, as is more common in the IPX world, rather than four hex octets.
+For example, these four lines are valid lines of an __ipxnets__ file:
+
+ C0.A8.2C.00 HR
+ c0-a8-1c-00 CEO
+ 00:00:BE:EF IT_Server1
+ 110f FileServer3
+
+The global __ipxnets__ file is looked for in the __/etc__ directory on
+UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
+and in the main installation directory (for example, __C:\Program
+Files\Wireshark__) on Windows systems.
+
+The personal __ipxnets__ file is looked for in the same directory as the
+personal preferences file.
+--
+
+Name Resolution (ss7pcs)::
++
+--
+The __ss7pcs__ file is used to translate SS7 point codes to names.
+It is read from the personal configuration directory.
+
+Each line in this file consists of one network indicator followed by a dash
+followed by a point code in decimal and a node name separated by whitespace.
+An example is:
+
+ 2-1234 MyPointCode1
+
+--
+
+Name Resolution (vlans)::
++
+--
+The __vlans__ file is used to translate VLAN tag IDs into names.
+It is read from the personal configuration directory.
+
+Each line in this file consists of one VLAN tag ID separated by whitespace
+from a name. An example is:
+
+ 123 Server-Lan
+ 2049 HR-Client-LAN
+
+--
+
+// tag::gui[]
+Capture Filters::
++
+--
+The __cfilters__ files contain system-wide and personal capture filters.
+Each line contains one filter, starting with the string displayed in the
+dialog box in quotation marks, followed by the filter string itself:
+
+ "HTTP" port 80
+ "DCERPC" port 135
+
+The global __cfilters__ file uses the same directory as the
+global preferences file.
+
+The personal __cfilters__ file uses the same directory as the personal
+preferences file. It is written through the Capture:Capture Filters
+dialog.
+
+If the global __cfilters__ file exists, it is used only if the personal
+__cfilters__ file does not exist; global and personal capture filters are
+not merged.
+--
+
+Display Filters::
++
+--
+The __dfilters__ files contain system-wide and personal display filters.
+Each line contains one filter, starting with the string displayed in the
+dialog box in quotation marks, followed by the filter string itself:
+
+ "HTTP" http
+ "DCERPC" dcerpc
+
+The global __dfilters__ file uses the same directory as the
+global preferences file.
+
+The personal __dfilters__ file uses the same directory as the
+personal preferences file. It is written through the Analyze:Display
+Filters dialog.
+
+If the global __dfilters__ file exists, it is used only if the personal
+__dfilters__ file does not exist; global and personal display filters are
+not merged.
+--
+// end::gui[]
+
+Color Filters (Coloring Rules)::
++
+--
+The __colorfilters__ files contain system-wide and personal color filters.
+Each line contains one filter, starting with the string displayed in the
+dialog box, followed by the corresponding display filter. Then the
+background and foreground colors are appended:
+
+ # a comment
+ @tcp@tcp@[59345,58980,65534][0,0,0]
+ @udp@udp@[28834,57427,65533][0,0,0]
+
+The global __colorfilters__ file uses the same directory as the
+global preferences file.
+
+The personal __colorfilters__ file uses the same directory as the
+personal preferences file. It is written through the View:Coloring Rules
+dialog.
+
+If the global __colorfilters__ file exists, it is used only if the personal
+__colorfilters__ file does not exist; global and personal color filters are
+not merged.
+--
+
+Plugins::
++
+--
+Wireshark looks for plugins in both a personal plugin folder and a
+global plugin folder.
+
+On UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and
+AIX, the global plugin directory is __lib/wireshark/plugins/__ (on
+some systems substitute __lib64__ for __lib__) under the main installation
+directory (for example, __/usr/local/lib/wireshark/plugins/__). The personal
+plugin directory is __$HOME/.local/lib/wireshark/plugins__.
+
+On macOS, if Wireshark is installed as an application bundle, the global plugin
+folder is instead __%APPDIR%/Contents/PlugIns/wireshark__.
+
+On Windows, the global plugin folder is __plugins/__ under the main
+installation directory (for example, __C:\Program Files\Wireshark\plugins\__).
+The personal plugin folder is __%APPDATA%\Wireshark\plugins__ (or, if
+%APPDATA% isn't defined, __%USERPROFILE%\Application Data\Wireshark\plugins__).
+
+Lua plugins are stored in the plugin folders;
+compiled plugins are stored in subfolders of the plugin folders, with
+the subfolder name being the Wireshark minor version number (X.Y). There is
+another hierarchical level for each Wireshark plugin type (libwireshark,
+libwiretap and codecs). For example, the location for a libwireshark plugin
+_foo.so_ (_foo.dll_ on Windows) would be _PLUGINDIR/X.Y/epan_
+(libwireshark used to be called libepan; the other folder names are _codecs_
+and _wiretap_).
+
+NOTE: On UNIX-compatible systems, Lua plugins (but not binary plugins) may also
+be placed in __$XDG_CONFIG_HOME/wireshark/plugins__,
+(or, if __$XDG_CONFIG_HOME/wireshark__ does not exist while __$HOME/.wireshark__
+does exist, __$HOME/.wireshark/plugins__.)
+
+Note that a dissector plugin module may support more than one protocol;
+there is not necessarily a one-to-one correspondence between dissector plugin
+modules and protocols. Protocols supported by a dissector plugin module are
+enabled and disabled in the same way as protocols built into Wireshark.
+--
diff --git a/doc/packet-PROTOABBREV.c b/doc/packet-PROTOABBREV.c
index a510fddb07..ee06f72782 100644
--- a/doc/packet-PROTOABBREV.c
+++ b/doc/packet-PROTOABBREV.c
@@ -61,7 +61,7 @@ static dissector_handle_t PROTOABBREV_handle;
static dissector_handle_t PROTOABBREV_tls_handle;
/* Global sample preference ("controls" display of numbers) */
-static bool pref_hex = false;
+static bool pref_hex;
/* Global sample port preference - real port preferences should generally
* default to "" (for a range) or 0 (for a single uint) unless there is an
* IANA-registered (or equivalent) port for your protocol. */
diff --git a/doc/plugins.example/CMakeLists.txt b/doc/plugins.example/CMakeLists.txt
index a685ab37a2..26e3ad25c9 100644
--- a/doc/plugins.example/CMakeLists.txt
+++ b/doc/plugins.example/CMakeLists.txt
@@ -39,11 +39,7 @@ add_compile_definitions(
)
add_library(hello MODULE hello.c)
-set_target_properties(hello PROPERTIES
- PREFIX ""
- SUFFIX "${Wireshark_PLUGIN_SUFFIX_EPAN}"
- DEFINE_SYMBOL ""
-)
+set_target_properties(hello PROPERTIES PREFIX "" DEFINE_SYMBOL "")
target_link_libraries(hello epan)
# This is the normal installation target to CMAKE_INSTALL_PREFIX. It is relocatable
diff --git a/doc/plugins.example/hello.c b/doc/plugins.example/hello.c
index 6536a47805..5a9ccd8169 100644
--- a/doc/plugins.example/hello.c
+++ b/doc/plugins.example/hello.c
@@ -17,13 +17,20 @@
#define VERSION "0.0.0"
#endif
+WS_DLL_PUBLIC_DEF const char plugin_version[] = VERSION;
+WS_DLL_PUBLIC_DEF const int plugin_want_major = WIRESHARK_VERSION_MAJOR;
+WS_DLL_PUBLIC_DEF const int plugin_want_minor = WIRESHARK_VERSION_MINOR;
+
+WS_DLL_PUBLIC void plugin_register(void);
+WS_DLL_PUBLIC uint32_t plugin_describe(void);
+
static int proto_hello;
static dissector_handle_t handle_hello;
static int
dissect_hello(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_)
{
- proto_tree_add_protocol_format(tree, proto_hello, tvb, 0, -1, "This is Hello version %s, a Wireshark postdissector plugin prototype", VERSION);
+ proto_tree_add_protocol_format(tree, proto_hello, tvb, 0, -1, "This is Hello version %s, a Wireshark postdissector plugin prototype", plugin_version);
return tvb_captured_length(tvb);
}
@@ -41,7 +48,7 @@ proto_reg_handoff_hello(void)
/* empty */
}
-static void
+void
plugin_register(void)
{
static proto_plugin plug;
@@ -51,13 +58,8 @@ plugin_register(void)
proto_register_plugin(&plug);
}
-static struct ws_module module = {
- .flags = WS_PLUGIN_DESC_DISSECTOR,
- .version = VERSION,
- .spdx_id = "GPL-2.0-or-later",
- .home_url = "Your-URL-here",
- .blurb = "Hello world for Wireshark plugin development",
- .register_cb = &plugin_register,
-};
-
-WIRESHARK_PLUGIN_REGISTER_EPAN(&module, 0)
+uint32_t
+plugin_describe(void)
+{
+ return WS_PLUGIN_DESC_DISSECTOR;
+}
diff --git a/doc/rawshark.adoc b/doc/rawshark.adoc
index 82981762fe..b4084b993a 100644
--- a/doc/rawshark.adoc
+++ b/doc/rawshark.adoc
@@ -242,209 +242,9 @@ include::diagnostic-options.adoc[]
== READ FILTER SYNTAX
For a complete table of protocol and protocol fields that are filterable
-in *TShark* see the xref:wireshark-filter.html[wireshark-filter](4) manual page.
+in *Rawshark* see the xref:wireshark-filter.html[wireshark-filter](4) manual page.
-== FILES
-
-These files contains various *Wireshark* configuration values.
-
-Preferences::
-+
---
-The __preferences__ files contain global (system-wide) and personal
-preference settings. If the system-wide preference file exists, it is
-read first, overriding the default settings. If the personal preferences
-file exists, it is read next, overriding any previous values. Note: If
-the command line option *-o* is used (possibly more than once), it will
-in turn override values from the preferences files.
-
-The preferences settings are in the form __prefname:value__,
-one per line,
-where __prefname__ is the name of the preference
-and __value__ is the value to
-which it should be set; white space is allowed between *:* and
-__value__. A preference setting can be continued on subsequent lines by
-indenting the continuation lines with white space. A *#* character
-starts a comment that runs to the end of the line:
-
- # Capture in promiscuous mode?
- # TRUE or FALSE (case-insensitive).
- capture.prom_mode: TRUE
-
-The global preferences file is looked for in the __wireshark__ directory
-under the __share__ subdirectory of the main installation directory. On
-macOS, this would typically be
-__/Application/Wireshark.app/Contents/Resources/share__; on other
-UNIX-compatible systems, such as Linux, \*BSD, Solaris, and AIX, this
-would typically be __/usr/share/wireshark/preferences__ for
-system-installed packages and __/usr/local/share/wireshark/preferences__
-for locally-installed packages; on Windows, this would typically be
-__C:\Program Files\Wireshark\preferences__.
-
-On UNIX-compatible systems, the personal preferences file is looked for
-in __$XDG_CONFIG_HOME/wireshark/preferences__, (or, if
-__$XDG_CONFIG_HOME/wireshark__ does not exist while __$HOME/.wireshark__
-does exist, __$HOME/.wireshark/preferences__); this is typically
-__$HOME/.config/wireshark/preferences__. On Windows,
-the personal preferences file is looked for in
-__%APPDATA%\Wireshark\preferences__ (or, if %APPDATA% isn't defined,
-__%USERPROFILE%\Application Data\Wireshark\preferences__).
---
-
-Disabled (Enabled) Protocols::
-+
---
-The __disabled_protos__ files contain system-wide and personal lists of
-protocols that have been disabled, so that their dissectors are never
-called. The files contain protocol names, one per line, where the
-protocol name is the same name that would be used in a display filter
-for the protocol:
-
- http
- tcp # a comment
-
-The global __disabled_protos__ file uses the same directory as the global
-preferences file.
-
-The personal __disabled_protos__ file uses the same directory as the
-personal preferences file.
---
-
-Name Resolution (hosts)::
-+
---
-If the personal __hosts__ file exists, it is
-used to resolve IPv4 and IPv6 addresses before any other
-attempts are made to resolve them. The file has the standard __hosts__
-file syntax; each line contains one IP address and name, separated by
-whitespace. The same directory as for the personal preferences file is
-used.
-
-Capture filter name resolution is handled by libpcap on UNIX-compatible
-systems, such as Linux, macOS, \*BSD, Solaris, and AIX, and by Npcap or
-WinPcap on Windows. As such the Wireshark personal __hosts__ file will
-not be consulted for capture filter name resolution.
---
-
-Name Resolution (subnets)::
-+
---
-If an IPv4 address cannot be translated via name resolution (no exact
-match is found) then a partial match is attempted via the __subnets__ file.
-
-Each line of this file consists of an IPv4 address, a subnet mask length
-separated only by a / and a name separated by whitespace. While the address
-must be a full IPv4 address, any values beyond the mask length are subsequently
-ignored.
-
-An example is:
-
-# Comments must be prepended by the # sign!
-192.168.0.0/24 ws_test_network
-
-A partially matched name will be printed as "subnet-name.remaining-address".
-For example, "192.168.0.1" under the subnet above would be printed as
-"ws_test_network.1"; if the mask length above had been 16 rather than 24, the
-printed address would be ``ws_test_network.0.1".
---
-
-Name Resolution (ethers)::
-+
---
-The __ethers__ files are consulted to correlate 6-byte hardware addresses to
-names. First the personal __ethers__ file is tried and if an address is not
-found there the global __ethers__ file is tried next.
-
-Each line contains one hardware address and name, separated by
-whitespace. The digits of the hardware address are separated by colons
-(:), dashes (-) or periods (.). The same separator character must be
-used consistently in an address. The following three lines are valid
-lines of an __ethers__ file:
-
- ff:ff:ff:ff:ff:ff Broadcast
- c0-00-ff-ff-ff-ff TR_broadcast
- 00.00.00.00.00.00 Zero_broadcast
-
-The global __ethers__ file is looked for in the __/etc__ directory on
-UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
-and in the main installation directory (for example, __C:\Program
-Files\Wireshark__) on Windows systems.
-
-The personal __ethers__ file is looked for in the same directory as the personal
-preferences file.
-
-Capture filter name resolution is handled by libpcap on UNIX-compatible
-systems and Npcap or WinPcap on Windows. As such the Wireshark personal
-__ethers__ file will not be consulted for capture filter name resolution.
---
-
-Name Resolution (manuf)::
-+
---
-The __manuf__ file is used to match the 3-byte vendor portion of a 6-byte
-hardware address with the manufacturer's name; it can also contain well-known
-MAC addresses and address ranges specified with a netmask. The format of the
-file is the same as the __ethers__ files, except that entries of the form:
-
- 00:00:0C Cisco
-
-can be provided, with the 3-byte OUI and the name for a vendor, and
-entries such as:
-
- 00-00-0C-07-AC/40 All-HSRP-routers
-
-can be specified, with a MAC address and a mask indicating how many bits
-of the address must match. The above entry, for example, has 40
-significant bits, or 5 bytes, and would match addresses from
-00-00-0C-07-AC-00 through 00-00-0C-07-AC-FF. The mask need not be a
-multiple of 8.
-
-The __manuf__ file is looked for in the same directory as the global
-preferences file.
---
-
-Name Resolution (services)::
-+
---
-The __services__ file is used to translate port numbers into names.
-
-The file has the standard __services__ file syntax; each line contains one
-(service) name and one transport identifier separated by white space. The
-transport identifier includes one port number and one transport protocol name
-(typically tcp, udp, or sctp) separated by a /.
-
-An example is:
-
- mydns 5045/udp # My own Domain Name Server
- mydns 5045/tcp # My own Domain Name Server
---
-
-Name Resolution (ipxnets)::
-+
---
-The __ipxnets__ files are used to correlate 4-byte IPX network numbers to
-names. First the global __ipxnets__ file is tried and if that address is not
-found there the personal one is tried next.
-
-The format is the same as the __ethers__
-file, except that each address is four bytes instead of six.
-Additionally, the address can be represented as a single hexadecimal
-number, as is more common in the IPX world, rather than four hex octets.
-For example, these four lines are valid lines of an __ipxnets__ file:
-
- C0.A8.2C.00 HR
- c0-a8-1c-00 CEO
- 00:00:BE:EF IT_Server1
- 110f FileServer3
-
-The global __ipxnets__ file is looked for in the __/etc__ directory on
-UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
-and in the main installation directory (for example, __C:\Program
-Files\Wireshark__) on Windows systems.
-
-The personal __ipxnets__ file is looked for in the same directory as the
-personal preferences file.
---
+include::files.adoc[tags=**;!gui]
== ENVIRONMENT VARIABLES
diff --git a/doc/release-notes.adoc b/doc/release-notes.adoc
index 51f024d7fb..6346f77965 100644
--- a/doc/release-notes.adoc
+++ b/doc/release-notes.adoc
@@ -19,7 +19,10 @@ It is used for troubleshooting, analysis, development and education.
// Add a summary of **major** changes here.
// Add other changes to "New and Updated Features" below.
-Lua 5.3 and 5.4 are supported, and the Lua version included with the
+Wireshark now supports automatic profile switching.
+You can associate a display filter with a configuration profile, and when you open a capture file that matches the filter, Wireshark will automatically switch to that profile.
+
+Lua support for older LUA versions has been dropped. Only 5.3 and 5.4 are supported, and the Lua version included with the
Windows and MacOS installers is now 5.4.6.
Improved display filter support for value strings (optional string
@@ -27,8 +30,7 @@ representations for numeric fields).
Display filter functions can be implemented as runtime-loadable C plugins.
-Plugin registration API was refactored. Plugin authors must update their
-plugins as described below.
+Display filters can be translated to pcap filters using menu:Copy[Display filter as pcap filter] if each display filter field has a corresponding pcap filter equivalent.
Custom columns can be defined using any valid field expression, such as
display filter functions, slices, arithmetic calculations, logical tests,
@@ -37,6 +39,9 @@ raw byte addressing, and the layer modifier.
Custom output fields for `tshark -e` can also be defined using any
valid field expression.
+Many improvements and fixes to the graphing dialogs, including
+I/O Graphs, Flow Graph / VoIP Calls, and TCP Stream Graphs.
+
Many other improvements have been made.
See the “New and Updated Features” section below for more details.
@@ -168,18 +173,7 @@ The following features are new (or have been significantly updated) since versio
* The Resolved Addresses dialog only shows what addresses and ports are
present in the file (not including information from static files), and
selected rows or the entire table can be saved or copied to the clipboard
- in several formats.
-
-* New menu:Tools[Install Plugin] option provides a convenient method to install
- a binary plugin to the personal folder.
-
-* The personal binary plugins folder now has higher priority than the global
- folder.
-
-* The binary plugins folder path no longer uses an X.Y version component. Plugins
- are required to add the ABI version to the file name.
-
-* Truncated fields in the detail view are now displayed as "Field name […]: data" instead of "Field name [truncated]: data"
+ in several formats. wsbuglink:16419[]
* When capturing files in multiple file mode, a pattern that places the date and time
before the index number can be used (e.g., foo_20240714110102_00001.pcap instead of
@@ -193,6 +187,129 @@ The following features are new (or have been significantly updated) since versio
* The "Find Packet" dialog can search backwards, and find additional occurrences
of a string, hex value, or regular expression in a single frame.
+* When using "Go To Packet" with an undisplayed frame, the window goes to
+ nearest displayed frame (by number.) wsbuglink:2988[]
+
+* A number of graphs using QCustomPlot ("I/O Graphs", "Flow Graph",
+ "TCP Stream Graphs", and "RTP Player") are more responsive during
+ mouse moves, especially on Linux when Wayland is used.
+
+* Improvements to the "I/O Graphs" dialog:
+
+ ** A number of crasher bugs have been fixed.
+
+ ** The protocol tree context menu can open a I/O graph of the currently
+ selected field. wsbuglink:11362[]
+
+ ** Smaller intervals can be used, down to 1 microsecond. wsbuglink:13682[]
+
+ ** A larger number of I/O Graph item buckets can be used, up to 2^25^
+ items. wsbuglink:8460[]
+
+ ** The memory usage has been improved, the size of an item has been
+ reduced from 152 bytes to 88 bytes.
+
+ ** When the Y field or Y axis changes, the graph displays the new graph
+ correctly, retapping if necessary, instead of displaying information
+ based on stale data.
+
+ ** The graph is smarter about choosing whether to retap (expensive),
+ recalculate (moderately intensive), or replot (cheap) in order to
+ display the newly chosen options correctly with the least amout of
+ calculations. For instance, a graph that has previously been
+ plotted and is disabled and then reenabled without any other changes
+ will not require a new retap. wsbuglink:15822[]
+
+ ** LOAD graphs are graphed properly again. wsbuglink:18450[]
+
+ ** The I/O Graph y-axis has human readable units with SI prefixes.
+ wsbuglink:12827[]
+
+ ** I/O Graph bar widths are scaled to the size of the interval.
+
+ ** I/O Graph bar border colors are a slightly darker color than that
+ of the graph itself, instead of always black. wsbuglink:17422[]
+
+ ** The correct width of times that appear on the graph are used when
+ automatically resetting the axes.
+
+ ** The precision of the interval time shown in the hint message depends
+ on the interval.
+
+ ** The tracer follows the currently selected row on the table of graphs,
+ and does not appear on an invisible graph.
+
+ ** The tracer moves to the frame selected in the main window.
+ wsbuglink:12909[]
+
+ ** Pending graph changes are saved when changing profiles with the
+ I/O Graphs dialog open.
+
+ ** I/O Graph dialog windows for closed capture files are no longer affected
+ by changing the list of graphs (either in that dialogs or in other dialogs
+ for the currently open file.)
+
+ ** Temporary graphs that have just been added and will not be saved
+ unless the configuration has changed are more clearly marked with
+ italics.
+
+ ** When Time of Day is selected on the graph, the absolute time is
+ copied to the CSV instead of relative time. wsbuglink:13717[]
+
+ ** The graph layer order and order in the legend always matches the
+ order in the table, and the legend appears properly. wsbuglink:13854[]
+
+ ** Graphs with both lines and data point symbols are treated as line
+ graphs, not scatter plots, for purposes of displaying zero values.
+
+ ** Logarithmic ticks are used when the Y-scale is logarithmic.
+
+ ** The graph crosshairs context menu option works.
+
+ ** The columns on the table of graphs can be all resized at once via
+ the header context menu. wsbuglink:18102[]
+
+ ** The graph is more responsive to mouse moves, especially on Linux Wayland
+
+* Improvements to the Sequence Diagram (Flow Graph / VoIP Calls):
+
+ ** When exporting the graph as an image, the entire graph is shown,
+ up to 1000 items (which can be changed in preferences), instead
+ of only what was visible on-screen. wsbuglink:13504[]
+
+ ** Endpoints that share a same address now have two distinct nodes
+ with a line between them. wsbuglink:12038[]
+
+ ** Tooltips are shown for elided comments
+
+ ** The scroll direction via keyboard is no longer reversed. wsbuglink:12932[]
+
+ ** The column widths are fixed, instead of resizing slightly depending
+ on the visible entries. wsbuglink:12931[]
+
+ ** The Y-axis labels stay in the correct position without having to
+ click Reset.
+
+ ** The progress bar appears correctly in the Flow Graph (non VoIP Calls.)
+
+ ** The behavior of the "Any" and "Network" combobox is corrected.
+ wsbuglink:19818[]
+
+ ** "Limit to Display Filter" is checked if a display filter is applied
+ when the Flow Graph is opened, per the documentation.
+
+
+* TCP Stream Graphs:
+
+ ** A better decision is made about which side is the server and thus
+ the initially chosen direction in the graph.
+
+ ** The Window Scaling graph axis labels are corrected and show both graphs.
+
+ ** The graph crosshairs context menu option works.
+
+ ** Switching between relative and absolute sequence numbers works again.
+
* The included Lua version has been updated to 5.4. While most Lua dissectors
should continue to work (the lua_bitop library has been patched to work with
Lua 5.3 and 5.4, in addition to the native Lua support for bit operations
@@ -232,6 +349,8 @@ MAC NR Framed (mac-nr-framed)
RF4CE Network Layer (RF4CE)
RF4CE Profile (RF4CE Profile)
EGNOS Message Server (EMS) file format
+Galileo E1-B I/NAV navigation messages
+ZeroMQ Message Transport Protocol (ZMTP)
--
=== Updated Protocol Support
@@ -263,11 +382,8 @@ u-blox GNSS receivers
=== Major API Changes
-* Plugin registration API was refactored. Plugin authors must do the following:
- 1 - Remove the existing boilerplate (version, want_major` and `want_minor` and
- plugin API declarations. 2 - Add a struct ws_module to the plugin.
- 3 - Call one of the WIRESHARK_PLUGIN_REGISTER_* macros. See README.plugins
- sections 5 and doc/plugins.example/hello.c for details and examples.
+* Plugins should provide a `plugin_describe()` function that returns an ORed
+ list of flags consisting of the plugin types used (declared in wsutil/plugins.h).
== Getting Wireshark
diff --git a/doc/tshark.adoc b/doc/tshark.adoc
index 586b29def1..11c29e67e3 100644
--- a/doc/tshark.adoc
+++ b/doc/tshark.adoc
@@ -23,7 +23,9 @@ tshark - Dump and analyze network traffic
[manarg]
*tshark*
-*-G* [ <report type> ] [ --elastic-mapping-filter <protocols> ] [ *-C* <profile> ]
+*-G* [ <report type> ]
+[ --elastic-mapping-filter <protocols> ]
+[ *-C* <profile> ]
[manarg]
*tshark*
@@ -326,7 +328,7 @@ is selected. This option can be used multiple times on the command line.
At least one field must be provided if the *-T fields* option is
selected. Column types may be used prefixed with "_ws.col."
-Example: *tshark -e frame.number -e ip.addr -e udp -e _ws.col.info*
+Example: *tshark -T fields -e frame.number -e ip.addr -e udp -e _ws.col.info*
Fields are separated by tab characters by default. *-E* controls the
format of the printed fields.
@@ -646,7 +648,7 @@ Protocol match filter used for ek|json|jsonraw|pdml output file types.
Only the protocol's parent node is included. Child nodes are only
included if explicitly specified in the filter.
-Example: *tshark -j "ip ip.flags http"*
+Example: *tshark -T json -j "ip ip.flags http"*
--
-J <protocol match filter>::
@@ -656,7 +658,7 @@ Protocol top level filter used for ek|json|jsonraw|pdml output file types.
The protocol's parent node and all child nodes are included.
Lower-level protocols must be explicitly specified in the filter.
-Example: *tshark -J "tcp http"*
+Example: *tshark -T pdml -J "tcp http"*
--
-l::
@@ -670,7 +672,7 @@ normally used when piping a live capture to a program or script, so that
output for a packet shows up as soon as the packet is seen and
dissected, it should work just as well as true line-buffering. We do
this as a workaround for a deficiency in the Microsoft Visual C++ C
-library.)
+library.) This also sets *--update-interval* to 0 ms.
This may be useful when piping the output of *TShark* to another
program, as it means that the program to which the output is piped will
@@ -2280,207 +2282,7 @@ or, if that doesn't exist, https://gitlab.com/wireshark/wireshark/-/wikis/Captur
For a complete table of protocol and protocol fields that are filterable
in *TShark* see the xref:wireshark-filter.html[wireshark-filter](4) manual page.
-== FILES
-
-These files contains various *Wireshark* configuration values.
-
-Preferences::
-+
---
-The __preferences__ files contain global (system-wide) and personal
-preference settings. If the system-wide preference file exists, it is
-read first, overriding the default settings. If the personal preferences
-file exists, it is read next, overriding any previous values. Note: If
-the command line option *-o* is used (possibly more than once), it will
-in turn override values from the preferences files.
-
-The preferences settings are in the form __prefname:value__,
-one per line,
-where __prefname__ is the name of the preference
-and __value__ is the value to
-which it should be set; white space is allowed between *:* and
-__value__. A preference setting can be continued on subsequent lines by
-indenting the continuation lines with white space. A *#* character
-starts a comment that runs to the end of the line:
-
- # Capture in promiscuous mode?
- # TRUE or FALSE (case-insensitive).
- capture.prom_mode: TRUE
-
-The global preferences file is looked for in the __wireshark__ directory
-under the __share__ subdirectory of the main installation directory. On
-macOS, this would typically be
-__/Application/Wireshark.app/Contents/Resources/share__; on other
-UNIX-compatible systems, such as Linux, \*BSD, Solaris, and AIX, this
-would typically be __/usr/share/wireshark/preferences__ for
-system-installed packages and __/usr/local/share/wireshark/preferences__
-for locally-installed packages; on Windows, this would typically be
-__C:\Program Files\Wireshark\preferences__.
-
-On UNIX-compatible systems, the personal preferences file is looked for
-in __$XDG_CONFIG_HOME/wireshark/preferences__, (or, if
-__$XDG_CONFIG_HOME/wireshark__ does not exist while __$HOME/.wireshark__
-does exist, __$HOME/.wireshark/preferences__); this is typically
-__$HOME/.config/wireshark/preferences__. On Windows,
-the personal preferences file is looked for in
-__%APPDATA%\Wireshark\preferences__ (or, if %APPDATA% isn't defined,
-__%USERPROFILE%\Application Data\Wireshark\preferences__).
---
-
-Disabled (Enabled) Protocols::
-+
---
-The __disabled_protos__ files contain system-wide and personal lists of
-protocols that have been disabled, so that their dissectors are never
-called. The files contain protocol names, one per line, where the
-protocol name is the same name that would be used in a display filter
-for the protocol:
-
- http
- tcp # a comment
-
-The global __disabled_protos__ file uses the same directory as the global
-preferences file.
-
-The personal __disabled_protos__ file uses the same directory as the
-personal preferences file.
---
-
-Name Resolution (hosts)::
-+
---
-If the personal __hosts__ file exists, it is
-used to resolve IPv4 and IPv6 addresses before any other
-attempts are made to resolve them. The file has the standard __hosts__
-file syntax; each line contains one IP address and name, separated by
-whitespace. The same directory as for the personal preferences file is
-used.
-
-Capture filter name resolution is handled by libpcap on UNIX-compatible
-systems, such as Linux, macOS, \*BSD, Solaris, and AIX, and by Npcap or
-WinPcap on Windows. As such the Wireshark personal __hosts__ file will
-not be consulted for capture filter name resolution.
---
-
-Name Resolution (subnets)::
-+
---
-If an IPv4 address cannot be translated via name resolution (no exact
-match is found) then a partial match is attempted via the __subnets__ file.
-
-Each line of this file consists of an IPv4 address, a subnet mask length
-separated only by a / and a name separated by whitespace. While the address
-must be a full IPv4 address, any values beyond the mask length are subsequently
-ignored.
-
-An example is:
-
-# Comments must be prepended by the # sign!
-192.168.0.0/24 ws_test_network
-
-A partially matched name will be printed as "subnet-name.remaining-address".
-For example, "192.168.0.1" under the subnet above would be printed as
-"ws_test_network.1"; if the mask length above had been 16 rather than 24, the
-printed address would be ``ws_test_network.0.1".
---
-
-Name Resolution (ethers)::
-+
---
-The __ethers__ files are consulted to correlate 6-byte hardware addresses to
-names. First the personal __ethers__ file is tried and if an address is not
-found there the global __ethers__ file is tried next.
-
-Each line contains one hardware address and name, separated by
-whitespace. The digits of the hardware address are separated by colons
-(:), dashes (-) or periods (.). The same separator character must be
-used consistently in an address. The following three lines are valid
-lines of an __ethers__ file:
-
- ff:ff:ff:ff:ff:ff Broadcast
- c0-00-ff-ff-ff-ff TR_broadcast
- 00.00.00.00.00.00 Zero_broadcast
-
-The global __ethers__ file is looked for in the __/etc__ directory on
-UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
-and in the main installation directory (for example, __C:\Program
-Files\Wireshark__) on Windows systems.
-
-The personal __ethers__ file is looked for in the same directory as the personal
-preferences file.
-
-Capture filter name resolution is handled by libpcap on UNIX-compatible
-systems and Npcap or WinPcap on Windows. As such the Wireshark personal
-__ethers__ file will not be consulted for capture filter name resolution.
---
-
-Name Resolution (manuf)::
-+
---
-The __manuf__ file is used to match the 3-byte vendor portion of a 6-byte
-hardware address with the manufacturer's name; it can also contain well-known
-MAC addresses and address ranges specified with a netmask. The format of the
-file is the same as the __ethers__ files, except that entries of the form:
-
- 00:00:0C Cisco
-
-can be provided, with the 3-byte OUI and the name for a vendor, and
-entries such as:
-
- 00-00-0C-07-AC/40 All-HSRP-routers
-
-can be specified, with a MAC address and a mask indicating how many bits
-of the address must match. The above entry, for example, has 40
-significant bits, or 5 bytes, and would match addresses from
-00-00-0C-07-AC-00 through 00-00-0C-07-AC-FF. The mask need not be a
-multiple of 8.
-
-The __manuf__ file is looked for in the same directory as the global
-preferences file.
---
-
-Name Resolution (services)::
-+
---
-The __services__ file is used to translate port numbers into names.
-
-The file has the standard __services__ file syntax; each line contains one
-(service) name and one transport identifier separated by white space. The
-transport identifier includes one port number and one transport protocol name
-(typically tcp, udp, or sctp) separated by a /.
-
-An example is:
-
- mydns 5045/udp # My own Domain Name Server
- mydns 5045/tcp # My own Domain Name Server
---
-
-Name Resolution (ipxnets)::
-+
---
-The __ipxnets__ files are used to correlate 4-byte IPX network numbers to
-names. First the global __ipxnets__ file is tried and if that address is not
-found there the personal one is tried next.
-
-The format is the same as the __ethers__
-file, except that each address is four bytes instead of six.
-Additionally, the address can be represented as a single hexadecimal
-number, as is more common in the IPX world, rather than four hex octets.
-For example, these four lines are valid lines of an __ipxnets__ file:
-
- C0.A8.2C.00 HR
- c0-a8-1c-00 CEO
- 00:00:BE:EF IT_Server1
- 110f FileServer3
-
-The global __ipxnets__ file is looked for in the __/etc__ directory on
-UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
-and in the main installation directory (for example, __C:\Program
-Files\Wireshark__) on Windows systems.
-
-The personal __ipxnets__ file is looked for in the same directory as the
-personal preferences file.
---
+include::files.adoc[tags=**;!gui]
== OUTPUT
diff --git a/doc/wireshark.adoc b/doc/wireshark.adoc
index 213b87fc52..19d4a6ae10 100644
--- a/doc/wireshark.adoc
+++ b/doc/wireshark.adoc
@@ -2257,26 +2257,6 @@ available on your system.
The __Plugins List__ shows the name and version of each dissector plugin
module found on your system.
-
-On Unix-compatible systems, such as Linux, macOS, \*BSD, Solaris, and
-AIX, the plugins are looked for in the following directories: the
-__lib/wireshark/plugins/$VERSION__ directory under the main installation
-directory (for example, __/usr/local/lib/wireshark/plugins/$VERSION__),
-and then __$HOME/.wireshark/plugins__.
-
-On Windows systems, the plugins are looked for in the following
-directories: __plugins\$VERSION__ directory under the main installation
-directory (for example, __C:\Program Files\Wireshark\plugins\$VERSION__),
-and then __%APPDATA%\Wireshark\plugins\$VERSION__ (or, if %APPDATA% isn't
-defined, __%USERPROFILE%\Application Data\Wireshark\plugins\$VERSION__).
-
-$VERSION is the version number of the plugin interface, which
-is typically the version number of Wireshark. Note that a dissector
-plugin module may support more than one protocol; there is not
-necessarily a one-to-one correspondence between dissector plugin modules
-and protocols. Protocols supported by a dissector plugin module are
-enabled and disabled using the __Edit:Protocols__ dialog box, just as
-protocols built into Wireshark are.
--
== CAPTURE FILTER SYNTAX
@@ -2289,314 +2269,7 @@ or, if that doesn't exist, https://gitlab.com/wireshark/wireshark/-/wikis/Captur
For a complete table of protocol and protocol fields that are filterable
in *Wireshark* see the xref:wireshark-filter.html[wireshark-filter](4) manual page.
-== FILES
-
-These files contains various *Wireshark* configuration settings.
-
-Preferences::
-+
---
-The __preferences__ files contain global (system-wide) and personal
-preference settings. If the system-wide preference file exists, it is
-read first, overriding the default settings. If the personal preferences
-file exists, it is read next, overriding any previous values. Note: If
-the command line flag *-o* is used (possibly more than once), it will
-in turn override values from the preferences files.
-
-The preferences settings are in the form __prefname:value__,
-one per line,
-where __prefname__ is the name of the preference
-and __value__ is the value to
-which it should be set; white space is allowed between *:* and
-__value__. A preference setting can be continued on subsequent lines by
-indenting the continuation lines with white space. A *#* character
-starts a comment that runs to the end of the line:
-
- # Vertical scrollbars should be on right side?
- # TRUE or FALSE (case-insensitive).
- gui.scrollbar_on_right: TRUE
-
-The global preferences file is looked for in the __wireshark__ directory
-under the __share__ subdirectory of the main installation directory. On
-macOS, this would typically be
-__/Application/Wireshark.app/Contents/Resources/share__; on other
-UNIX-compatible systems, such as Linux, \*BSD, Solaris, and AIX, this
-would typically be __/usr/share/wireshark/preferences__ for
-system-installed packages and __/usr/local/share/wireshark/preferences__
-for locally-installed packages; on Windows, this would typically be
-__C:\Program Files\Wireshark\preferences__.
-
-On UNIX-compatible systems, the personal preferences file is looked for
-in __$XDG_CONFIG_HOME/wireshark/preferences__, (or, if
-__$XDG_CONFIG_HOME/wireshark__ does not exist while __$HOME/.wireshark__
-does exist, __$HOME/.wireshark/preferences__); this is typically
-__$HOME/.config/wireshark/preferences__. On Windows,
-the personal preferences file is looked for in
-__%APPDATA%\Wireshark\preferences__ (or, if %APPDATA% isn't defined,
-__%USERPROFILE%\Application Data\Wireshark\preferences__).
-
-Note: Whenever the preferences are saved by using the __Save__ button
-in the __Edit:Preferences__ dialog box, your personal preferences file
-will be overwritten with the new settings, destroying any comments and
-unknown/obsolete settings that were in the file.
---
-
-Recent::
-+
---
-The __recent__ file contains personal settings (mostly GUI related) such
-as the current *Wireshark* window size. The file is saved at program exit and
-read in at program start automatically. Note: The command line flag *-o*
-may be used to override settings from this file.
-
-The settings in this file have the same format as in the __preferences__
-files, and the same directory as for the personal preferences file is
-used.
-
-Note: Whenever Wireshark is closed, your recent file
-will be overwritten with the new settings, destroying any comments and
-unknown/obsolete settings that were in the file.
---
-
-Disabled (Enabled) Protocols::
-+
---
-The __disabled_protos__ files contain system-wide and personal lists of
-protocols that have been disabled, so that their dissectors are never
-called. The files contain protocol names, one per line, where the
-protocol name is the same name that would be used in a display filter
-for the protocol:
-
- http
- tcp # a comment
-
-If a protocol is listed in the global __disabled_protos__ file, it is not
-displayed in the __Analyze:Enabled Protocols__ dialog box, and so cannot
-be enabled by the user.
-
-The global __disabled_protos__ file uses the same directory as the global
-preferences file.
-
-The personal __disabled_protos__ file uses the same directory as the
-personal preferences file.
-
-Note: Whenever the disabled protocols list is saved by using the __Save__
-button in the __Analyze:Enabled Protocols__ dialog box, your personal
-disabled protocols file will be overwritten with the new settings,
-destroying any comments that were in the file.
---
-
-Name Resolution (hosts)::
-+
---
-If the personal __hosts__ file exists, it is
-used to resolve IPv4 and IPv6 addresses before any other
-attempts are made to resolve them. The file has the standard __hosts__
-file syntax; each line contains one IP address and name, separated by
-whitespace. The same directory as for the personal preferences file is used.
-
-Capture filter name resolution is handled by libpcap on UNIX-compatible
-systems, such as Linux, macOS, \*BSD, Solaris, and AIX, and Npcap or
-WinPcap on Windows. As such the Wireshark personal __hosts__ file will
-not be consulted for capture filter name resolution.
---
-
-
-Name Resolution (subnets)::
-+
---
-If an IPv4 address cannot be translated via name resolution (no exact
-match is found) then a partial match is attempted via the __subnets__ file.
-Both the global __subnets__ file and personal __subnets__ files are used
-if they exist.
-
-Each line of this file consists of an IPv4 address, a subnet mask length
-separated only by a / and a name separated by whitespace. While the address
-must be a full IPv4 address, any values beyond the mask length are subsequently
-ignored.
-
-An example is:
-
-# Comments must be prepended by the # sign!
-192.168.0.0/24 ws_test_network
-
-A partially matched name will be printed as "subnet-name.remaining-address".
-For example, "192.168.0.1" under the subnet above would be printed as
-"ws_test_network.1"; if the mask length above had been 16 rather than 24, the
-printed address would be "ws_test_network.0.1".
---
-
-Name Resolution (ethers)::
-+
---
-The __ethers__ files are consulted to correlate 6-byte hardware addresses to
-names. First the personal __ethers__ file is tried and if an address is not
-found there the global __ethers__ file is tried next.
-
-Each line contains one hardware address and name, separated by
-whitespace. The digits of the hardware address are separated by colons
-(:), dashes (-) or periods (.). The same separator character must be
-used consistently in an address. The following three lines are valid
-lines of an __ethers__ file:
-
- ff:ff:ff:ff:ff:ff Broadcast
- c0-00-ff-ff-ff-ff TR_broadcast
- 00.00.00.00.00.00 Zero_broadcast
-
-The global __ethers__ file is looked for in the __/etc__ directory on
-UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
-and in the main installation directory (for example, __C:\Program
-Files\Wireshark__) on Windows systems.
-
-The personal __ethers__ file is looked for in the same directory as the personal
-preferences file.
-
-Capture filter name resolution is handled by libpcap on UNIX-compatible
-systems and Npcap or WinPcap on Windows. As such the Wireshark personal
-__ethers__ file will not be consulted for capture filter name
-resolution.
---
-
-Name Resolution (manuf)::
-+
---
-The __manuf__ file is used to match the 3-byte vendor portion of a 6-byte
-hardware address with the manufacturer's name; it can also contain well-known
-MAC addresses and address ranges specified with a netmask. The format of the
-file is the same as the __ethers__ files, except that entries such as:
-
- 00:00:0C Cisco
-
-can be provided, with the 3-byte OUI and the name for a vendor, and
-entries such as:
-
- 00-00-0C-07-AC/40 All-HSRP-routers
-
-can be specified, with a MAC address and a mask indicating how many bits
-of the address must match. The above entry, for example, has 40
-significant bits, or 5 bytes, and would match addresses from
-00-00-0C-07-AC-00 through 00-00-0C-07-AC-FF. The mask need not be a
-multiple of 8.
-
-The __manuf__ file is looked for in the same directory as the global
-preferences file.
---
-
-Name Resolution (services)::
-+
---
-The __services__ file is used to translate port numbers into names.
-Both the global __services__ file and personal __services__ files are used
-if they exist.
-
-The file has the standard __services__ file syntax; each line contains one
-(service) name and one transport identifier separated by white space. The
-transport identifier includes one port number and one transport protocol name
-(typically tcp, udp, or sctp) separated by a /.
-
-An example is:
-
-mydns 5045/udp # My own Domain Name Server
-mydns 5045/tcp # My own Domain Name Server
---
-
-Name Resolution (ipxnets)::
-+
---
-The __ipxnets__ files are used to correlate 4-byte IPX network numbers to
-names. First the global __ipxnets__ file is tried and if that address is not
-found there the personal one is tried next.
-
-The format is the same as the __ethers__
-file, except that each address is four bytes instead of six.
-Additionally, the address can be represented as a single hexadecimal
-number, as is more common in the IPX world, rather than four hex octets.
-For example, these four lines are valid lines of an __ipxnets__ file:
-
- C0.A8.2C.00 HR
- c0-a8-1c-00 CEO
- 00:00:BE:EF IT_Server1
- 110f FileServer3
-
-The global __ipxnets__ file is looked for in the __/etc__ directory on
-UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris, and AIX,
-and in the main installation directory (for example, __C:\Program
-Files\Wireshark__) on Windows systems.
-
-The personal __ipxnets__ file is looked for in the same directory as the
-personal preferences file.
---
-
-Capture Filters::
-+
---
-The __cfilters__ files contain system-wide and personal capture filters.
-Each line contains one filter, starting with the string displayed in the
-dialog box in quotation marks, followed by the filter string itself:
-
- "HTTP" port 80
- "DCERPC" port 135
-
-The global __cfilters__ file uses the same directory as the
-global preferences file.
-
-The personal __cfilters__ file uses the same directory as the personal
-preferences file. It is written through the Capture:Capture Filters
-dialog.
-
-If the global __cfilters__ file exists, it is used only if the personal
-__cfilters__ file does not exist; global and personal capture filters are
-not merged.
---
-
-Display Filters::
-+
---
-The __dfilters__ files contain system-wide and personal display filters.
-Each line contains one filter, starting with the string displayed in the
-dialog box in quotation marks, followed by the filter string itself:
-
- "HTTP" http
- "DCERPC" dcerpc
-
-The global __dfilters__ file uses the same directory as the
-global preferences file.
-
-The personal __dfilters__ file uses the same directory as the
-personal preferences file. It is written through the Analyze:Display
-Filters dialog.
-
-If the global __dfilters__ file exists, it is used only if the personal
-__dfilters__ file does not exist; global and personal display filters are
-not merged.
---
-
-Color Filters (Coloring Rules)::
-+
---
-The __colorfilters__ files contain system-wide and personal color filters.
-Each line contains one filter, starting with the string displayed in the
-dialog box, followed by the corresponding display filter. Then the
-background and foreground colors are appended:
-
- # a comment
- @tcp@tcp@[59345,58980,65534][0,0,0]
- @udp@udp@[28834,57427,65533][0,0,0]
-
-The global __colorfilters__ file uses the same directory as the
-global preferences file.
-
-The personal __colorfilters__ file uses the same directory as the
-personal preferences file. It is written through the View:Coloring Rules
-dialog.
-
-If the global __colorfilters__ file exists, it is used only if the personal
-__colorfilters__ file does not exist; global and personal color filters are
-not merged.
---
-
-Plugins::
-See above in the description of the About:Plugins page.
+include::files.adoc[]
== ENVIRONMENT VARIABLES
diff --git a/docbook/CMakeLists.txt b/docbook/CMakeLists.txt
index 991702f672..a773ee28bd 100644
--- a/docbook/CMakeLists.txt
+++ b/docbook/CMakeLists.txt
@@ -253,7 +253,7 @@ set(WSDG_GRAPHICS
wsdg_src/images/ws-capture-sync.png
wsdg_src/images/ws-capture-sync.png
wsdg_src/images/ws-function-blocks.dia
- wsdg_src/images/ws-function-blocks.png
+ wsdg_src/images/ws-function-blocks.svg
wsdg_src/images/ws-logo.png
)
diff --git a/docbook/wsdg_src/images/ws-function-blocks.dia b/docbook/wsdg_src/images/ws-function-blocks.dia
index cc85781073..bc17f05e01 100644
--- a/docbook/wsdg_src/images/ws-function-blocks.dia
+++ b/docbook/wsdg_src/images/ws-function-blocks.dia
Binary files differ
diff --git a/docbook/wsdg_src/images/ws-function-blocks.png b/docbook/wsdg_src/images/ws-function-blocks.png
deleted file mode 100644
index 169e19e503..0000000000
--- a/docbook/wsdg_src/images/ws-function-blocks.png
+++ /dev/null
Binary files differ
diff --git a/docbook/wsdg_src/images/ws-function-blocks.svg b/docbook/wsdg_src/images/ws-function-blocks.svg
new file mode 100644
index 0000000000..c9bc7f7e6b
--- /dev/null
+++ b/docbook/wsdg_src/images/ws-function-blocks.svg
@@ -0,0 +1,449 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="463pt" height="663pt" viewBox="0 0 463 663" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.203125 0 L 1.203125 -9.140625 L 6.46875 -9.140625 L 6.46875 0 Z M 1.859375 -0.65625 L 5.8125 -0.65625 L 5.8125 -8.484375 L 1.859375 -8.484375 Z M 1.859375 -0.65625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 5.15625 -8.25 C 4.175781 -8.25 3.40625 -7.921875 2.84375 -7.265625 C 2.28125 -6.609375 2 -5.707031 2 -4.5625 C 2 -3.425781 2.257812 -2.53125 2.78125 -1.875 C 3.3125 -1.21875 4.097656 -0.890625 5.140625 -0.890625 C 5.546875 -0.890625 5.925781 -0.921875 6.28125 -0.984375 C 6.644531 -1.054688 6.992188 -1.140625 7.328125 -1.234375 L 7.328125 -0.25 C 6.992188 -0.113281 6.644531 -0.0195312 6.28125 0.03125 C 5.914062 0.09375 5.484375 0.125 4.984375 0.125 C 4.046875 0.125 3.265625 -0.0664062 2.640625 -0.453125 C 2.023438 -0.835938 1.5625 -1.378906 1.25 -2.078125 C 0.9375 -2.785156 0.78125 -3.617188 0.78125 -4.578125 C 0.78125 -5.503906 0.945312 -6.316406 1.28125 -7.015625 C 1.625 -7.722656 2.125 -8.273438 2.78125 -8.671875 C 3.4375 -9.066406 4.234375 -9.265625 5.171875 -9.265625 C 6.128906 -9.265625 6.96875 -9.085938 7.6875 -8.734375 L 7.234375 -7.75 C 6.953125 -7.882812 6.632812 -8 6.28125 -8.09375 C 5.9375 -8.195312 5.5625 -8.25 5.15625 -8.25 Z M 5.15625 -8.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 7.046875 -3.4375 C 7.046875 -2.300781 6.757812 -1.421875 6.1875 -0.796875 C 5.613281 -0.179688 4.835938 0.125 3.859375 0.125 C 3.242188 0.125 2.695312 -0.0078125 2.21875 -0.28125 C 1.75 -0.5625 1.378906 -0.96875 1.109375 -1.5 C 0.835938 -2.03125 0.703125 -2.675781 0.703125 -3.4375 C 0.703125 -4.570312 0.988281 -5.445312 1.5625 -6.0625 C 2.132812 -6.675781 2.910156 -6.984375 3.890625 -6.984375 C 4.515625 -6.984375 5.0625 -6.84375 5.53125 -6.5625 C 6.007812 -6.289062 6.378906 -5.890625 6.640625 -5.359375 C 6.910156 -4.835938 7.046875 -4.195312 7.046875 -3.4375 Z M 1.875 -3.4375 C 1.875 -2.632812 2.03125 -1.992188 2.34375 -1.515625 C 2.664062 -1.046875 3.175781 -0.8125 3.875 -0.8125 C 4.5625 -0.8125 5.066406 -1.046875 5.390625 -1.515625 C 5.722656 -1.992188 5.890625 -2.632812 5.890625 -3.4375 C 5.890625 -4.25 5.722656 -4.882812 5.390625 -5.34375 C 5.066406 -5.8125 4.554688 -6.046875 3.859375 -6.046875 C 3.160156 -6.046875 2.65625 -5.8125 2.34375 -5.34375 C 2.03125 -4.882812 1.875 -4.25 1.875 -3.4375 Z M 1.875 -3.4375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 4.28125 -6.984375 C 4.414062 -6.984375 4.554688 -6.976562 4.703125 -6.96875 C 4.847656 -6.957031 4.976562 -6.9375 5.09375 -6.90625 L 4.953125 -5.875 C 4.835938 -5.894531 4.710938 -5.914062 4.578125 -5.9375 C 4.453125 -5.957031 4.328125 -5.96875 4.203125 -5.96875 C 3.859375 -5.96875 3.53125 -5.867188 3.21875 -5.671875 C 2.914062 -5.484375 2.671875 -5.210938 2.484375 -4.859375 C 2.304688 -4.515625 2.21875 -4.113281 2.21875 -3.65625 L 2.21875 0 L 1.09375 0 L 1.09375 -6.859375 L 2.015625 -6.859375 L 2.140625 -5.609375 L 2.1875 -5.609375 C 2.40625 -5.984375 2.691406 -6.304688 3.046875 -6.578125 C 3.398438 -6.847656 3.8125 -6.984375 4.28125 -6.984375 Z M 4.28125 -6.984375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 3.734375 -6.984375 C 4.328125 -6.984375 4.832031 -6.851562 5.25 -6.59375 C 5.675781 -6.34375 6 -5.984375 6.21875 -5.515625 C 6.445312 -5.054688 6.5625 -4.515625 6.5625 -3.890625 L 6.5625 -3.21875 L 1.875 -3.21875 C 1.882812 -2.4375 2.078125 -1.84375 2.453125 -1.4375 C 2.835938 -1.03125 3.375 -0.828125 4.0625 -0.828125 C 4.488281 -0.828125 4.867188 -0.867188 5.203125 -0.953125 C 5.546875 -1.035156 5.894531 -1.15625 6.25 -1.3125 L 6.25 -0.3125 C 5.90625 -0.164062 5.5625 -0.0546875 5.21875 0.015625 C 4.875 0.0859375 4.46875 0.125 4 0.125 C 3.351562 0.125 2.78125 -0.00390625 2.28125 -0.265625 C 1.78125 -0.535156 1.390625 -0.929688 1.109375 -1.453125 C 0.835938 -1.972656 0.703125 -2.613281 0.703125 -3.375 C 0.703125 -4.125 0.828125 -4.765625 1.078125 -5.296875 C 1.328125 -5.835938 1.679688 -6.253906 2.140625 -6.546875 C 2.597656 -6.835938 3.128906 -6.984375 3.734375 -6.984375 Z M 3.71875 -6.0625 C 3.1875 -6.0625 2.765625 -5.890625 2.453125 -5.546875 C 2.140625 -5.203125 1.953125 -4.722656 1.890625 -4.109375 L 5.390625 -4.109375 C 5.378906 -4.691406 5.238281 -5.160156 4.96875 -5.515625 C 4.707031 -5.878906 4.289062 -6.0625 3.71875 -6.0625 Z M 3.71875 -6.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.34375 0 L 1.234375 0 L 1.234375 -9.140625 L 6.34375 -9.140625 L 6.34375 -8.125 L 2.390625 -8.125 L 2.390625 -5.265625 L 6.109375 -5.265625 L 6.109375 -4.28125 L 2.390625 -4.28125 L 2.390625 -1.015625 L 6.34375 -1.015625 Z M 6.34375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 4.34375 -6.984375 C 5.195312 -6.984375 5.878906 -6.6875 6.390625 -6.09375 C 6.910156 -5.507812 7.171875 -4.625 7.171875 -3.4375 C 7.171875 -2.269531 6.910156 -1.382812 6.390625 -0.78125 C 5.878906 -0.175781 5.195312 0.125 4.34375 0.125 C 3.8125 0.125 3.375 0.0234375 3.03125 -0.171875 C 2.6875 -0.367188 2.414062 -0.601562 2.21875 -0.875 L 2.140625 -0.875 C 2.148438 -0.726562 2.164062 -0.539062 2.1875 -0.3125 C 2.207031 -0.09375 2.21875 0.09375 2.21875 0.25 L 2.21875 3.078125 L 1.09375 3.078125 L 1.09375 -6.859375 L 2.015625 -6.859375 L 2.15625 -5.921875 L 2.21875 -5.921875 C 2.414062 -6.222656 2.679688 -6.472656 3.015625 -6.671875 C 3.347656 -6.878906 3.789062 -6.984375 4.34375 -6.984375 Z M 4.140625 -6.046875 C 3.441406 -6.046875 2.945312 -5.847656 2.65625 -5.453125 C 2.375 -5.054688 2.226562 -4.457031 2.21875 -3.65625 L 2.21875 -3.4375 C 2.21875 -2.59375 2.351562 -1.941406 2.625 -1.484375 C 2.90625 -1.035156 3.421875 -0.8125 4.171875 -0.8125 C 4.585938 -0.8125 4.929688 -0.925781 5.203125 -1.15625 C 5.472656 -1.382812 5.671875 -1.695312 5.796875 -2.09375 C 5.929688 -2.488281 6 -2.941406 6 -3.453125 C 6 -4.234375 5.847656 -4.859375 5.546875 -5.328125 C 5.242188 -5.804688 4.773438 -6.046875 4.140625 -6.046875 Z M 4.140625 -6.046875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 3.6875 -6.96875 C 4.519531 -6.96875 5.132812 -6.785156 5.53125 -6.421875 C 5.9375 -6.054688 6.140625 -5.472656 6.140625 -4.671875 L 6.140625 0 L 5.328125 0 L 5.109375 -0.96875 L 5.0625 -0.96875 C 4.757812 -0.59375 4.441406 -0.316406 4.109375 -0.140625 C 3.785156 0.0351562 3.332031 0.125 2.75 0.125 C 2.125 0.125 1.609375 -0.0351562 1.203125 -0.359375 C 0.796875 -0.691406 0.59375 -1.207031 0.59375 -1.90625 C 0.59375 -2.59375 0.859375 -3.117188 1.390625 -3.484375 C 1.929688 -3.859375 2.757812 -4.0625 3.875 -4.09375 L 5.046875 -4.140625 L 5.046875 -4.546875 C 5.046875 -5.117188 4.921875 -5.515625 4.671875 -5.734375 C 4.421875 -5.953125 4.070312 -6.0625 3.625 -6.0625 C 3.257812 -6.0625 2.914062 -6.007812 2.59375 -5.90625 C 2.269531 -5.800781 1.96875 -5.679688 1.6875 -5.546875 L 1.34375 -6.390625 C 1.644531 -6.546875 2 -6.679688 2.40625 -6.796875 C 2.8125 -6.910156 3.238281 -6.96875 3.6875 -6.96875 Z M 4.015625 -3.3125 C 3.160156 -3.28125 2.566406 -3.144531 2.234375 -2.90625 C 1.910156 -2.664062 1.75 -2.328125 1.75 -1.890625 C 1.75 -1.503906 1.863281 -1.222656 2.09375 -1.046875 C 2.332031 -0.867188 2.632812 -0.78125 3 -0.78125 C 3.582031 -0.78125 4.066406 -0.9375 4.453125 -1.25 C 4.835938 -1.570312 5.03125 -2.066406 5.03125 -2.734375 L 5.03125 -3.359375 Z M 4.015625 -3.3125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 4.390625 -6.984375 C 5.210938 -6.984375 5.832031 -6.785156 6.25 -6.390625 C 6.664062 -5.992188 6.875 -5.351562 6.875 -4.46875 L 6.875 0 L 5.765625 0 L 5.765625 -4.390625 C 5.765625 -5.492188 5.25 -6.046875 4.21875 -6.046875 C 3.457031 -6.046875 2.929688 -5.832031 2.640625 -5.40625 C 2.359375 -4.976562 2.21875 -4.363281 2.21875 -3.5625 L 2.21875 0 L 1.09375 0 L 1.09375 -6.859375 L 2 -6.859375 L 2.15625 -5.921875 L 2.234375 -5.921875 C 2.453125 -6.285156 2.753906 -6.550781 3.140625 -6.71875 C 3.535156 -6.894531 3.953125 -6.984375 4.390625 -6.984375 Z M 4.390625 -6.984375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 11.734375 -9.140625 L 9.296875 0 L 8.140625 0 L 6.359375 -5.984375 C 6.285156 -6.234375 6.210938 -6.484375 6.140625 -6.734375 C 6.078125 -6.984375 6.023438 -7.203125 5.984375 -7.390625 C 5.941406 -7.578125 5.914062 -7.710938 5.90625 -7.796875 C 5.894531 -7.679688 5.847656 -7.441406 5.765625 -7.078125 C 5.679688 -6.722656 5.582031 -6.347656 5.46875 -5.953125 L 3.734375 0 L 2.578125 0 L 0.15625 -9.140625 L 1.359375 -9.140625 L 2.78125 -3.5625 C 2.882812 -3.164062 2.96875 -2.785156 3.03125 -2.421875 C 3.101562 -2.054688 3.164062 -1.707031 3.21875 -1.375 C 3.257812 -1.707031 3.320312 -2.070312 3.40625 -2.46875 C 3.488281 -2.863281 3.585938 -3.25 3.703125 -3.625 L 5.3125 -9.140625 L 6.5 -9.140625 L 8.171875 -3.578125 C 8.296875 -3.191406 8.398438 -2.800781 8.484375 -2.40625 C 8.566406 -2.019531 8.628906 -1.675781 8.671875 -1.375 C 8.710938 -1.695312 8.769531 -2.039062 8.84375 -2.40625 C 8.925781 -2.78125 9.019531 -3.171875 9.125 -3.578125 L 10.53125 -9.140625 Z M 11.734375 -9.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 1.65625 -9.4375 C 1.832031 -9.4375 1.984375 -9.375 2.109375 -9.25 C 2.242188 -9.132812 2.3125 -8.957031 2.3125 -8.71875 C 2.3125 -8.476562 2.242188 -8.296875 2.109375 -8.171875 C 1.984375 -8.054688 1.832031 -8 1.65625 -8 C 1.46875 -8 1.3125 -8.054688 1.1875 -8.171875 C 1.0625 -8.296875 1 -8.476562 1 -8.71875 C 1 -8.957031 1.0625 -9.132812 1.1875 -9.25 C 1.3125 -9.375 1.46875 -9.4375 1.65625 -9.4375 Z M 2.21875 -6.859375 L 2.21875 0 L 1.09375 0 L 1.09375 -6.859375 Z M 2.21875 -6.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 3.375 -0.796875 C 3.550781 -0.796875 3.726562 -0.8125 3.90625 -0.84375 C 4.082031 -0.875 4.226562 -0.90625 4.34375 -0.9375 L 4.34375 -0.078125 C 4.21875 -0.015625 4.046875 0.03125 3.828125 0.0625 C 3.609375 0.101562 3.394531 0.125 3.1875 0.125 C 2.832031 0.125 2.5 0.0625 2.1875 -0.0625 C 1.882812 -0.1875 1.640625 -0.398438 1.453125 -0.703125 C 1.265625 -1.015625 1.171875 -1.445312 1.171875 -2 L 1.171875 -5.984375 L 0.203125 -5.984375 L 0.203125 -6.53125 L 1.1875 -6.96875 L 1.640625 -8.4375 L 2.296875 -8.4375 L 2.296875 -6.859375 L 4.28125 -6.859375 L 4.28125 -5.984375 L 2.296875 -5.984375 L 2.296875 -2.015625 C 2.296875 -1.597656 2.394531 -1.289062 2.59375 -1.09375 C 2.800781 -0.894531 3.0625 -0.796875 3.375 -0.796875 Z M 3.375 -0.796875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 6.828125 -6.859375 L 6.828125 0 L 5.90625 0 L 5.734375 -0.90625 L 5.6875 -0.90625 C 5.457031 -0.550781 5.144531 -0.289062 4.75 -0.125 C 4.363281 0.0390625 3.945312 0.125 3.5 0.125 C 2.675781 0.125 2.054688 -0.0703125 1.640625 -0.46875 C 1.222656 -0.863281 1.015625 -1.5 1.015625 -2.375 L 1.015625 -6.859375 L 2.15625 -6.859375 L 2.15625 -2.4375 C 2.15625 -1.351562 2.660156 -0.8125 3.671875 -0.8125 C 4.429688 -0.8125 4.957031 -1.019531 5.25 -1.4375 C 5.539062 -1.863281 5.6875 -2.476562 5.6875 -3.28125 L 5.6875 -6.859375 Z M 6.828125 -6.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 5.203125 -4.828125 L 8.375 -4.828125 L 8.375 -0.34375 C 7.875 -0.1875 7.367188 -0.0703125 6.859375 0 C 6.359375 0.0820312 5.789062 0.125 5.15625 0.125 C 4.207031 0.125 3.410156 -0.0625 2.765625 -0.4375 C 2.117188 -0.820312 1.625 -1.363281 1.28125 -2.0625 C 0.945312 -2.769531 0.78125 -3.601562 0.78125 -4.5625 C 0.78125 -5.519531 0.96875 -6.347656 1.34375 -7.046875 C 1.71875 -7.742188 2.253906 -8.285156 2.953125 -8.671875 C 3.660156 -9.066406 4.515625 -9.265625 5.515625 -9.265625 C 6.023438 -9.265625 6.507812 -9.21875 6.96875 -9.125 C 7.425781 -9.03125 7.847656 -8.898438 8.234375 -8.734375 L 7.8125 -7.734375 C 7.476562 -7.878906 7.109375 -8 6.703125 -8.09375 C 6.304688 -8.195312 5.890625 -8.25 5.453125 -8.25 C 4.359375 -8.25 3.503906 -7.921875 2.890625 -7.265625 C 2.285156 -6.609375 1.984375 -5.707031 1.984375 -4.5625 C 1.984375 -3.84375 2.097656 -3.203125 2.328125 -2.640625 C 2.566406 -2.078125 2.9375 -1.640625 3.4375 -1.328125 C 3.945312 -1.023438 4.609375 -0.875 5.421875 -0.875 C 5.828125 -0.875 6.171875 -0.894531 6.453125 -0.9375 C 6.734375 -0.976562 6.988281 -1.03125 7.21875 -1.09375 L 7.21875 -3.796875 L 5.203125 -3.796875 Z M 5.203125 -4.828125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 8.1875 -3.21875 C 8.1875 -2.59375 8.054688 -2.023438 7.796875 -1.515625 C 7.546875 -1.003906 7.15625 -0.601562 6.625 -0.3125 C 6.101562 -0.0195312 5.4375 0.125 4.625 0.125 C 3.5 0.125 2.640625 -0.179688 2.046875 -0.796875 C 1.453125 -1.421875 1.15625 -2.238281 1.15625 -3.25 L 1.15625 -9.140625 L 2.296875 -9.140625 L 2.296875 -3.21875 C 2.296875 -2.46875 2.492188 -1.890625 2.890625 -1.484375 C 3.296875 -1.078125 3.898438 -0.875 4.703125 -0.875 C 5.523438 -0.875 6.117188 -1.09375 6.484375 -1.53125 C 6.859375 -1.96875 7.046875 -2.53125 7.046875 -3.21875 L 7.046875 -9.140625 L 8.1875 -9.140625 Z M 8.1875 -3.21875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 3.8125 0 L 0.515625 0 L 0.515625 -0.671875 L 1.59375 -0.90625 L 1.59375 -8.21875 L 0.515625 -8.46875 L 0.515625 -9.140625 L 3.8125 -9.140625 L 3.8125 -8.46875 L 2.734375 -8.21875 L 2.734375 -0.90625 L 3.8125 -0.671875 Z M 3.8125 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 0.515625 -3.5 C 0.515625 -4.539062 0.664062 -5.546875 0.96875 -6.515625 C 1.269531 -7.484375 1.742188 -8.359375 2.390625 -9.140625 L 3.453125 -9.140625 C 2.859375 -8.335938 2.410156 -7.453125 2.109375 -6.484375 C 1.804688 -5.523438 1.65625 -4.535156 1.65625 -3.515625 C 1.65625 -2.523438 1.804688 -1.554688 2.109375 -0.609375 C 2.410156 0.335938 2.851562 1.210938 3.4375 2.015625 L 2.390625 2.015625 C 1.742188 1.265625 1.269531 0.414062 0.96875 -0.53125 C 0.664062 -1.476562 0.515625 -2.46875 0.515625 -3.5 Z M 0.515625 -3.5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 9.21875 -4.578125 C 9.21875 -3.460938 8.992188 -2.507812 8.546875 -1.71875 C 8.097656 -0.9375 7.429688 -0.398438 6.546875 -0.109375 L 8.734375 2.171875 L 7.09375 2.171875 L 5.328125 0.109375 C 5.273438 0.109375 5.21875 0.109375 5.15625 0.109375 C 5.101562 0.117188 5.050781 0.125 5 0.125 C 4.050781 0.125 3.265625 -0.0664062 2.640625 -0.453125 C 2.015625 -0.847656 1.546875 -1.398438 1.234375 -2.109375 C 0.929688 -2.816406 0.78125 -3.644531 0.78125 -4.59375 C 0.78125 -5.53125 0.929688 -6.347656 1.234375 -7.046875 C 1.546875 -7.742188 2.015625 -8.289062 2.640625 -8.6875 C 3.265625 -9.082031 4.054688 -9.28125 5.015625 -9.28125 C 5.929688 -9.28125 6.695312 -9.082031 7.3125 -8.6875 C 7.9375 -8.300781 8.410156 -7.753906 8.734375 -7.046875 C 9.054688 -6.347656 9.21875 -5.523438 9.21875 -4.578125 Z M 2 -4.578125 C 2 -3.429688 2.238281 -2.523438 2.71875 -1.859375 C 3.207031 -1.203125 3.96875 -0.875 5 -0.875 C 6.039062 -0.875 6.800781 -1.203125 7.28125 -1.859375 C 7.757812 -2.523438 8 -3.429688 8 -4.578125 C 8 -5.734375 7.757812 -6.632812 7.28125 -7.28125 C 6.800781 -7.9375 6.046875 -8.265625 5.015625 -8.265625 C 3.984375 -8.265625 3.222656 -7.9375 2.734375 -7.28125 C 2.242188 -6.632812 2 -5.734375 2 -4.578125 Z M 2 -4.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 3.328125 -3.5 C 3.328125 -2.46875 3.175781 -1.476562 2.875 -0.53125 C 2.570312 0.414062 2.097656 1.265625 1.453125 2.015625 L 0.390625 2.015625 C 0.984375 1.210938 1.429688 0.335938 1.734375 -0.609375 C 2.035156 -1.554688 2.1875 -2.523438 2.1875 -3.515625 C 2.1875 -4.535156 2.035156 -5.523438 1.734375 -6.484375 C 1.429688 -7.453125 0.984375 -8.335938 0.390625 -9.140625 L 1.453125 -9.140625 C 2.097656 -8.359375 2.570312 -7.484375 2.875 -6.515625 C 3.175781 -5.546875 3.328125 -4.539062 3.328125 -3.5 Z M 3.328125 -3.5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 8.234375 0 L 7.078125 0 L 7.078125 -4.265625 L 2.390625 -4.265625 L 2.390625 0 L 1.234375 0 L 1.234375 -9.140625 L 2.390625 -9.140625 L 2.390625 -5.265625 L 7.078125 -5.265625 L 7.078125 -9.140625 L 8.234375 -9.140625 Z M 8.234375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 3.515625 0.125 C 2.660156 0.125 1.976562 -0.171875 1.46875 -0.765625 C 0.957031 -1.359375 0.703125 -2.242188 0.703125 -3.421875 C 0.703125 -4.597656 0.957031 -5.484375 1.46875 -6.078125 C 1.988281 -6.679688 2.675781 -6.984375 3.53125 -6.984375 C 4.0625 -6.984375 4.492188 -6.882812 4.828125 -6.6875 C 5.171875 -6.5 5.445312 -6.257812 5.65625 -5.96875 L 5.734375 -5.96875 C 5.722656 -6.082031 5.707031 -6.25 5.6875 -6.46875 C 5.664062 -6.6875 5.65625 -6.859375 5.65625 -6.984375 L 5.65625 -9.71875 L 6.78125 -9.71875 L 6.78125 0 L 5.875 0 L 5.703125 -0.921875 L 5.65625 -0.921875 C 5.445312 -0.628906 5.171875 -0.378906 4.828125 -0.171875 C 4.492188 0.0234375 4.054688 0.125 3.515625 0.125 Z M 3.703125 -0.8125 C 4.421875 -0.8125 4.925781 -1.007812 5.21875 -1.40625 C 5.519531 -1.800781 5.671875 -2.398438 5.671875 -3.203125 L 5.671875 -3.40625 C 5.671875 -4.257812 5.53125 -4.910156 5.25 -5.359375 C 4.96875 -5.816406 4.445312 -6.046875 3.6875 -6.046875 C 3.082031 -6.046875 2.628906 -5.804688 2.328125 -5.328125 C 2.023438 -4.847656 1.875 -4.203125 1.875 -3.390625 C 1.875 -2.566406 2.023438 -1.929688 2.328125 -1.484375 C 2.628906 -1.035156 3.085938 -0.8125 3.703125 -0.8125 Z M 3.703125 -0.8125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 5.546875 -1.890625 C 5.546875 -1.222656 5.296875 -0.71875 4.796875 -0.375 C 4.304688 -0.0390625 3.644531 0.125 2.8125 0.125 C 2.332031 0.125 1.921875 0.0820312 1.578125 0 C 1.234375 -0.0703125 0.929688 -0.175781 0.671875 -0.3125 L 0.671875 -1.328125 C 0.941406 -1.191406 1.269531 -1.066406 1.65625 -0.953125 C 2.039062 -0.835938 2.4375 -0.78125 2.84375 -0.78125 C 3.414062 -0.78125 3.828125 -0.867188 4.078125 -1.046875 C 4.335938 -1.234375 4.46875 -1.484375 4.46875 -1.796875 C 4.46875 -1.960938 4.421875 -2.113281 4.328125 -2.25 C 4.234375 -2.382812 4.0625 -2.519531 3.8125 -2.65625 C 3.570312 -2.789062 3.226562 -2.945312 2.78125 -3.125 C 2.332031 -3.289062 1.953125 -3.457031 1.640625 -3.625 C 1.328125 -3.800781 1.082031 -4.007812 0.90625 -4.25 C 0.738281 -4.488281 0.65625 -4.796875 0.65625 -5.171875 C 0.65625 -5.753906 0.890625 -6.203125 1.359375 -6.515625 C 1.835938 -6.828125 2.457031 -6.984375 3.21875 -6.984375 C 3.644531 -6.984375 4.035156 -6.941406 4.390625 -6.859375 C 4.753906 -6.785156 5.09375 -6.675781 5.40625 -6.53125 L 5.03125 -5.625 C 4.738281 -5.75 4.429688 -5.851562 4.109375 -5.9375 C 3.796875 -6.019531 3.472656 -6.0625 3.140625 -6.0625 C 2.679688 -6.0625 2.332031 -5.988281 2.09375 -5.84375 C 1.851562 -5.695312 1.734375 -5.492188 1.734375 -5.234375 C 1.734375 -5.046875 1.785156 -4.882812 1.890625 -4.75 C 2.003906 -4.625 2.191406 -4.5 2.453125 -4.375 C 2.710938 -4.25 3.0625 -4.097656 3.5 -3.921875 C 3.925781 -3.765625 4.289062 -3.597656 4.59375 -3.421875 C 4.90625 -3.253906 5.140625 -3.046875 5.296875 -2.796875 C 5.460938 -2.554688 5.546875 -2.253906 5.546875 -1.890625 Z M 5.546875 -1.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-23">
+<path style="stroke:none;" d="M 2.203125 -4.640625 C 2.203125 -4.503906 2.191406 -4.328125 2.171875 -4.109375 C 2.160156 -3.890625 2.15625 -3.695312 2.15625 -3.53125 L 2.203125 -3.53125 C 2.253906 -3.601562 2.328125 -3.703125 2.421875 -3.828125 C 2.523438 -3.953125 2.628906 -4.082031 2.734375 -4.21875 C 2.847656 -4.351562 2.941406 -4.460938 3.015625 -4.546875 L 5.203125 -6.859375 L 6.53125 -6.859375 L 3.75 -3.921875 L 6.71875 0 L 5.359375 0 L 2.984375 -3.203125 L 2.203125 -2.515625 L 2.203125 0 L 1.09375 0 L 1.09375 -9.71875 L 2.203125 -9.71875 Z M 2.203125 -4.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-24">
+<path style="stroke:none;" d="M 8.484375 0 L 7.140625 0 L 2.25 -7.59375 L 2.203125 -7.59375 C 2.222656 -7.289062 2.242188 -6.914062 2.265625 -6.46875 C 2.285156 -6.03125 2.296875 -5.578125 2.296875 -5.109375 L 2.296875 0 L 1.234375 0 L 1.234375 -9.140625 L 2.578125 -9.140625 L 7.453125 -1.578125 L 7.5 -1.578125 C 7.488281 -1.710938 7.476562 -1.914062 7.46875 -2.1875 C 7.457031 -2.457031 7.441406 -2.753906 7.421875 -3.078125 C 7.410156 -3.410156 7.40625 -3.710938 7.40625 -3.984375 L 7.40625 -9.140625 L 8.484375 -9.140625 Z M 8.484375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-25">
+<path style="stroke:none;" d="M 5.515625 -3.875 C 5.398438 -4.226562 5.300781 -4.570312 5.21875 -4.90625 C 5.144531 -5.238281 5.085938 -5.5 5.046875 -5.6875 L 4.984375 -5.6875 C 4.953125 -5.5 4.894531 -5.238281 4.8125 -4.90625 C 4.738281 -4.570312 4.644531 -4.222656 4.53125 -3.859375 L 3.296875 -0.015625 L 2.015625 -0.015625 L 0.140625 -6.875 L 1.3125 -6.875 L 2.25 -3.21875 C 2.34375 -2.84375 2.429688 -2.46875 2.515625 -2.09375 C 2.609375 -1.71875 2.671875 -1.410156 2.703125 -1.171875 L 2.75 -1.171875 C 2.78125 -1.304688 2.816406 -1.476562 2.859375 -1.6875 C 2.910156 -1.90625 2.96875 -2.128906 3.03125 -2.359375 C 3.09375 -2.597656 3.15625 -2.8125 3.21875 -3 L 4.421875 -6.875 L 5.65625 -6.875 L 6.828125 -3 C 6.921875 -2.71875 7.015625 -2.40625 7.109375 -2.0625 C 7.203125 -1.71875 7.265625 -1.421875 7.296875 -1.171875 L 7.34375 -1.171875 C 7.375 -1.390625 7.429688 -1.6875 7.515625 -2.0625 C 7.609375 -2.4375 7.707031 -2.820312 7.8125 -3.21875 L 8.765625 -6.875 L 9.921875 -6.875 L 8.015625 -0.015625 L 6.6875 -0.015625 Z M 5.515625 -3.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-26">
+<path style="stroke:none;" d="M 3.84375 0.125 C 3.238281 0.125 2.695312 0.00390625 2.21875 -0.234375 C 1.75 -0.484375 1.378906 -0.867188 1.109375 -1.390625 C 0.835938 -1.910156 0.703125 -2.578125 0.703125 -3.390625 C 0.703125 -4.234375 0.84375 -4.921875 1.125 -5.453125 C 1.40625 -5.984375 1.785156 -6.367188 2.265625 -6.609375 C 2.753906 -6.859375 3.304688 -6.984375 3.921875 -6.984375 C 4.265625 -6.984375 4.597656 -6.945312 4.921875 -6.875 C 5.242188 -6.800781 5.507812 -6.710938 5.71875 -6.609375 L 5.375 -5.6875 C 5.164062 -5.757812 4.925781 -5.828125 4.65625 -5.890625 C 4.382812 -5.960938 4.128906 -6 3.890625 -6 C 2.546875 -6 1.875 -5.132812 1.875 -3.40625 C 1.875 -2.570312 2.035156 -1.9375 2.359375 -1.5 C 2.691406 -1.0625 3.179688 -0.84375 3.828125 -0.84375 C 4.203125 -0.84375 4.53125 -0.878906 4.8125 -0.953125 C 5.101562 -1.035156 5.367188 -1.128906 5.609375 -1.234375 L 5.609375 -0.25 C 5.378906 -0.125 5.125 -0.03125 4.84375 0.03125 C 4.5625 0.09375 4.226562 0.125 3.84375 0.125 Z M 3.84375 0.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-27">
+<path style="stroke:none;" d="M 4.625 -9.140625 L 1.234375 0 L 0.125 0 L 3.53125 -9.140625 Z M 4.625 -9.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-28">
+<path style="stroke:none;" d="M 2.21875 0 L 1.09375 0 L 1.09375 -9.71875 L 2.21875 -9.71875 Z M 2.21875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-29">
+<path style="stroke:none;" d="M 2.21875 -7.359375 C 2.21875 -7.066406 2.207031 -6.796875 2.1875 -6.546875 C 2.175781 -6.296875 2.164062 -6.097656 2.15625 -5.953125 L 2.21875 -5.953125 C 2.414062 -6.242188 2.679688 -6.484375 3.015625 -6.671875 C 3.359375 -6.867188 3.800781 -6.96875 4.34375 -6.96875 C 5.195312 -6.96875 5.878906 -6.671875 6.390625 -6.078125 C 6.910156 -5.492188 7.171875 -4.609375 7.171875 -3.421875 C 7.171875 -2.242188 6.910156 -1.359375 6.390625 -0.765625 C 5.867188 -0.171875 5.1875 0.125 4.34375 0.125 C 3.800781 0.125 3.359375 0.03125 3.015625 -0.15625 C 2.679688 -0.351562 2.414062 -0.59375 2.21875 -0.875 L 2.125 -0.875 L 1.890625 0 L 1.09375 0 L 1.09375 -9.71875 L 2.21875 -9.71875 Z M 4.140625 -6.046875 C 3.421875 -6.046875 2.921875 -5.832031 2.640625 -5.40625 C 2.359375 -4.988281 2.21875 -4.34375 2.21875 -3.46875 L 2.21875 -3.421875 C 2.21875 -2.578125 2.351562 -1.929688 2.625 -1.484375 C 2.90625 -1.035156 3.421875 -0.8125 4.171875 -0.8125 C 4.785156 -0.8125 5.242188 -1.035156 5.546875 -1.484375 C 5.847656 -1.929688 6 -2.582031 6 -3.4375 C 6 -5.175781 5.378906 -6.046875 4.140625 -6.046875 Z M 4.140625 -6.046875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-30">
+<path style="stroke:none;" d="M 8.5625 -4.65625 C 8.5625 -3.113281 8.140625 -1.953125 7.296875 -1.171875 C 6.460938 -0.390625 5.289062 0 3.78125 0 L 1.234375 0 L 1.234375 -9.140625 L 4.0625 -9.140625 C 4.976562 -9.140625 5.769531 -8.96875 6.4375 -8.625 C 7.113281 -8.28125 7.632812 -7.773438 8 -7.109375 C 8.375 -6.453125 8.5625 -5.632812 8.5625 -4.65625 Z M 7.34375 -4.625 C 7.34375 -5.84375 7.039062 -6.734375 6.4375 -7.296875 C 5.84375 -7.867188 4.992188 -8.15625 3.890625 -8.15625 L 2.390625 -8.15625 L 2.390625 -0.984375 L 3.640625 -0.984375 C 6.109375 -0.984375 7.34375 -2.195312 7.34375 -4.625 Z M 7.34375 -4.625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-31">
+<path style="stroke:none;" d="M 8.609375 -6.984375 C 9.390625 -6.984375 9.96875 -6.785156 10.34375 -6.390625 C 10.726562 -5.992188 10.921875 -5.351562 10.921875 -4.46875 L 10.921875 0 L 9.8125 0 L 9.8125 -4.421875 C 9.8125 -5.503906 9.347656 -6.046875 8.421875 -6.046875 C 7.753906 -6.046875 7.273438 -5.851562 6.984375 -5.46875 C 6.703125 -5.082031 6.5625 -4.519531 6.5625 -3.78125 L 6.5625 0 L 5.453125 0 L 5.453125 -4.421875 C 5.453125 -5.503906 4.984375 -6.046875 4.046875 -6.046875 C 3.347656 -6.046875 2.867188 -5.832031 2.609375 -5.40625 C 2.347656 -4.976562 2.21875 -4.363281 2.21875 -3.5625 L 2.21875 0 L 1.09375 0 L 1.09375 -6.859375 L 2 -6.859375 L 2.15625 -5.921875 L 2.234375 -5.921875 C 2.441406 -6.285156 2.726562 -6.550781 3.09375 -6.71875 C 3.457031 -6.894531 3.84375 -6.984375 4.25 -6.984375 C 5.320312 -6.984375 6.019531 -6.597656 6.34375 -5.828125 L 6.40625 -5.828125 C 6.632812 -6.222656 6.945312 -6.515625 7.34375 -6.703125 C 7.75 -6.890625 8.171875 -6.984375 8.609375 -6.984375 Z M 8.609375 -6.984375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-32">
+<path style="stroke:none;" d="M 3.515625 -6.984375 C 3.972656 -6.984375 4.378906 -6.894531 4.734375 -6.71875 C 5.097656 -6.550781 5.410156 -6.296875 5.671875 -5.953125 L 5.734375 -5.953125 L 5.890625 -6.859375 L 6.78125 -6.859375 L 6.78125 0.109375 C 6.78125 1.097656 6.53125 1.835938 6.03125 2.328125 C 5.53125 2.828125 4.757812 3.078125 3.71875 3.078125 C 2.707031 3.078125 1.878906 2.929688 1.234375 2.640625 L 1.234375 1.59375 C 1.910156 1.957031 2.757812 2.140625 3.78125 2.140625 C 4.363281 2.140625 4.820312 1.960938 5.15625 1.609375 C 5.5 1.265625 5.671875 0.796875 5.671875 0.203125 L 5.671875 -0.0625 C 5.671875 -0.164062 5.671875 -0.3125 5.671875 -0.5 C 5.679688 -0.695312 5.691406 -0.832031 5.703125 -0.90625 L 5.65625 -0.90625 C 5.195312 -0.21875 4.488281 0.125 3.53125 0.125 C 2.644531 0.125 1.953125 -0.179688 1.453125 -0.796875 C 0.953125 -1.421875 0.703125 -2.296875 0.703125 -3.421875 C 0.703125 -4.515625 0.953125 -5.378906 1.453125 -6.015625 C 1.953125 -6.660156 2.640625 -6.984375 3.515625 -6.984375 Z M 3.671875 -6.046875 C 3.097656 -6.046875 2.65625 -5.816406 2.34375 -5.359375 C 2.03125 -4.898438 1.875 -4.25 1.875 -3.40625 C 1.875 -2.5625 2.023438 -1.914062 2.328125 -1.46875 C 2.640625 -1.019531 3.097656 -0.796875 3.703125 -0.796875 C 4.390625 -0.796875 4.890625 -0.976562 5.203125 -1.34375 C 5.523438 -1.71875 5.6875 -2.316406 5.6875 -3.140625 L 5.6875 -3.421875 C 5.6875 -4.359375 5.519531 -5.03125 5.1875 -5.4375 C 4.863281 -5.84375 4.359375 -6.046875 3.671875 -6.046875 Z M 3.671875 -6.046875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-33">
+<path style="stroke:none;" d="M 3.859375 -9.140625 C 4.992188 -9.140625 5.851562 -8.96875 6.4375 -8.625 C 7.019531 -8.289062 7.3125 -7.707031 7.3125 -6.875 C 7.3125 -6.332031 7.160156 -5.882812 6.859375 -5.53125 C 6.566406 -5.175781 6.140625 -4.945312 5.578125 -4.84375 L 5.578125 -4.78125 C 5.960938 -4.726562 6.3125 -4.617188 6.625 -4.453125 C 6.9375 -4.285156 7.179688 -4.050781 7.359375 -3.75 C 7.535156 -3.457031 7.625 -3.070312 7.625 -2.59375 C 7.625 -1.769531 7.335938 -1.128906 6.765625 -0.671875 C 6.203125 -0.222656 5.429688 0 4.453125 0 L 1.234375 0 L 1.234375 -9.140625 Z M 4.078125 -5.25 C 4.867188 -5.25 5.40625 -5.375 5.6875 -5.625 C 5.976562 -5.875 6.125 -6.25 6.125 -6.75 C 6.125 -7.25 5.945312 -7.609375 5.59375 -7.828125 C 5.238281 -8.046875 4.675781 -8.15625 3.90625 -8.15625 L 2.390625 -8.15625 L 2.390625 -5.25 Z M 2.390625 -4.28125 L 2.390625 -0.96875 L 4.234375 -0.96875 C 5.046875 -0.96875 5.609375 -1.125 5.921875 -1.4375 C 6.242188 -1.757812 6.40625 -2.175781 6.40625 -2.6875 C 6.40625 -3.164062 6.238281 -3.550781 5.90625 -3.84375 C 5.570312 -4.132812 4.984375 -4.28125 4.140625 -4.28125 Z M 2.390625 -4.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 1.046875 0 L 1.046875 -8 L 5.65625 -8 L 5.65625 0 Z M 1.625 -0.578125 L 5.09375 -0.578125 L 5.09375 -7.421875 L 1.625 -7.421875 Z M 1.625 -0.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 7.5 -4.078125 C 7.5 -2.722656 7.128906 -1.703125 6.390625 -1.015625 C 5.648438 -0.335938 4.625 0 3.3125 0 L 1.09375 0 L 1.09375 -8 L 3.546875 -8 C 4.359375 -8 5.054688 -7.847656 5.640625 -7.546875 C 6.234375 -7.253906 6.691406 -6.816406 7.015625 -6.234375 C 7.335938 -5.648438 7.5 -4.929688 7.5 -4.078125 Z M 6.4375 -4.046875 C 6.4375 -5.109375 6.171875 -5.890625 5.640625 -6.390625 C 5.109375 -6.890625 4.363281 -7.140625 3.40625 -7.140625 L 2.09375 -7.140625 L 2.09375 -0.859375 L 3.1875 -0.859375 C 5.351562 -0.859375 6.4375 -1.921875 6.4375 -4.046875 Z M 6.4375 -4.046875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 1.453125 -8.25 C 1.609375 -8.25 1.742188 -8.195312 1.859375 -8.09375 C 1.972656 -8 2.03125 -7.84375 2.03125 -7.625 C 2.03125 -7.414062 1.972656 -7.257812 1.859375 -7.15625 C 1.742188 -7.050781 1.609375 -7 1.453125 -7 C 1.285156 -7 1.144531 -7.050781 1.03125 -7.15625 C 0.925781 -7.257812 0.875 -7.414062 0.875 -7.625 C 0.875 -7.84375 0.925781 -8 1.03125 -8.09375 C 1.144531 -8.195312 1.285156 -8.25 1.453125 -8.25 Z M 1.9375 -6 L 1.9375 0 L 0.953125 0 L 0.953125 -6 Z M 1.9375 -6 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 4.859375 -1.65625 C 4.859375 -1.070312 4.640625 -0.628906 4.203125 -0.328125 C 3.773438 -0.0351562 3.195312 0.109375 2.46875 0.109375 C 2.050781 0.109375 1.691406 0.0703125 1.390625 0 C 1.085938 -0.0625 0.816406 -0.148438 0.578125 -0.265625 L 0.578125 -1.171875 C 0.816406 -1.046875 1.101562 -0.929688 1.4375 -0.828125 C 1.78125 -0.734375 2.128906 -0.6875 2.484375 -0.6875 C 2.984375 -0.6875 3.34375 -0.765625 3.5625 -0.921875 C 3.789062 -1.085938 3.90625 -1.300781 3.90625 -1.5625 C 3.90625 -1.71875 3.863281 -1.851562 3.78125 -1.96875 C 3.695312 -2.09375 3.550781 -2.210938 3.34375 -2.328125 C 3.132812 -2.453125 2.832031 -2.585938 2.4375 -2.734375 C 2.039062 -2.878906 1.703125 -3.023438 1.421875 -3.171875 C 1.148438 -3.328125 0.941406 -3.507812 0.796875 -3.71875 C 0.648438 -3.925781 0.578125 -4.195312 0.578125 -4.53125 C 0.578125 -5.03125 0.78125 -5.414062 1.1875 -5.6875 C 1.601562 -5.96875 2.148438 -6.109375 2.828125 -6.109375 C 3.191406 -6.109375 3.53125 -6.070312 3.84375 -6 C 4.164062 -5.9375 4.460938 -5.84375 4.734375 -5.71875 L 4.40625 -4.921875 C 4.144531 -5.035156 3.875 -5.128906 3.59375 -5.203125 C 3.320312 -5.273438 3.039062 -5.3125 2.75 -5.3125 C 2.351562 -5.3125 2.046875 -5.242188 1.828125 -5.109375 C 1.617188 -4.984375 1.515625 -4.804688 1.515625 -4.578125 C 1.515625 -4.410156 1.5625 -4.269531 1.65625 -4.15625 C 1.75 -4.039062 1.910156 -3.925781 2.140625 -3.8125 C 2.367188 -3.707031 2.675781 -3.582031 3.0625 -3.4375 C 3.4375 -3.289062 3.757812 -3.144531 4.03125 -3 C 4.300781 -2.851562 4.503906 -2.671875 4.640625 -2.453125 C 4.785156 -2.242188 4.859375 -1.976562 4.859375 -1.65625 Z M 4.859375 -1.65625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 3.265625 -6.109375 C 3.785156 -6.109375 4.226562 -5.992188 4.59375 -5.765625 C 4.96875 -5.546875 5.253906 -5.234375 5.453125 -4.828125 C 5.648438 -4.421875 5.75 -3.945312 5.75 -3.40625 L 5.75 -2.8125 L 1.640625 -2.8125 C 1.648438 -2.132812 1.820312 -1.617188 2.15625 -1.265625 C 2.488281 -0.910156 2.953125 -0.734375 3.546875 -0.734375 C 3.929688 -0.734375 4.269531 -0.765625 4.5625 -0.828125 C 4.851562 -0.898438 5.160156 -1.003906 5.484375 -1.140625 L 5.484375 -0.28125 C 5.171875 -0.144531 4.863281 -0.046875 4.5625 0.015625 C 4.269531 0.078125 3.914062 0.109375 3.5 0.109375 C 2.9375 0.109375 2.4375 -0.00390625 2 -0.234375 C 1.5625 -0.460938 1.21875 -0.804688 0.96875 -1.265625 C 0.726562 -1.722656 0.609375 -2.285156 0.609375 -2.953125 C 0.609375 -3.609375 0.71875 -4.171875 0.9375 -4.640625 C 1.164062 -5.117188 1.476562 -5.484375 1.875 -5.734375 C 2.269531 -5.984375 2.734375 -6.109375 3.265625 -6.109375 Z M 3.265625 -5.3125 C 2.785156 -5.3125 2.410156 -5.160156 2.140625 -4.859375 C 1.867188 -4.554688 1.707031 -4.132812 1.65625 -3.59375 L 4.71875 -3.59375 C 4.707031 -4.101562 4.585938 -4.515625 4.359375 -4.828125 C 4.128906 -5.148438 3.765625 -5.3125 3.265625 -5.3125 Z M 3.265625 -5.3125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M 3.359375 0.109375 C 2.828125 0.109375 2.351562 0.00390625 1.9375 -0.203125 C 1.53125 -0.421875 1.207031 -0.757812 0.96875 -1.21875 C 0.726562 -1.675781 0.609375 -2.257812 0.609375 -2.96875 C 0.609375 -3.707031 0.734375 -4.304688 0.984375 -4.765625 C 1.234375 -5.234375 1.566406 -5.570312 1.984375 -5.78125 C 2.410156 -6 2.890625 -6.109375 3.421875 -6.109375 C 3.734375 -6.109375 4.03125 -6.078125 4.3125 -6.015625 C 4.59375 -5.953125 4.820312 -5.878906 5 -5.796875 L 4.703125 -4.96875 C 4.523438 -5.039062 4.316406 -5.101562 4.078125 -5.15625 C 3.835938 -5.21875 3.613281 -5.25 3.40625 -5.25 C 2.226562 -5.25 1.640625 -4.492188 1.640625 -2.984375 C 1.640625 -2.253906 1.78125 -1.695312 2.0625 -1.3125 C 2.351562 -0.925781 2.78125 -0.734375 3.34375 -0.734375 C 3.675781 -0.734375 3.96875 -0.765625 4.21875 -0.828125 C 4.46875 -0.898438 4.695312 -0.988281 4.90625 -1.09375 L 4.90625 -0.21875 C 4.707031 -0.113281 4.484375 -0.0351562 4.234375 0.015625 C 3.992188 0.078125 3.703125 0.109375 3.359375 0.109375 Z M 3.359375 0.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M 2.953125 -0.6875 C 3.109375 -0.6875 3.265625 -0.695312 3.421875 -0.71875 C 3.578125 -0.75 3.703125 -0.78125 3.796875 -0.8125 L 3.796875 -0.0625 C 3.691406 -0.0078125 3.539062 0.03125 3.34375 0.0625 C 3.15625 0.09375 2.972656 0.109375 2.796875 0.109375 C 2.472656 0.109375 2.179688 0.0546875 1.921875 -0.046875 C 1.660156 -0.160156 1.445312 -0.347656 1.28125 -0.609375 C 1.113281 -0.878906 1.03125 -1.257812 1.03125 -1.75 L 1.03125 -5.25 L 0.171875 -5.25 L 0.171875 -5.71875 L 1.046875 -6.109375 L 1.4375 -7.375 L 2.015625 -7.375 L 2.015625 -6 L 3.75 -6 L 3.75 -5.25 L 2.015625 -5.25 L 2.015625 -1.765625 C 2.015625 -1.398438 2.101562 -1.128906 2.28125 -0.953125 C 2.457031 -0.773438 2.679688 -0.6875 2.953125 -0.6875 Z M 2.953125 -0.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 6.171875 -3.015625 C 6.171875 -2.023438 5.914062 -1.253906 5.40625 -0.703125 C 4.90625 -0.160156 4.226562 0.109375 3.375 0.109375 C 2.84375 0.109375 2.367188 -0.0078125 1.953125 -0.25 C 1.535156 -0.488281 1.207031 -0.84375 0.96875 -1.3125 C 0.726562 -1.78125 0.609375 -2.347656 0.609375 -3.015625 C 0.609375 -4.003906 0.859375 -4.765625 1.359375 -5.296875 C 1.867188 -5.835938 2.550781 -6.109375 3.40625 -6.109375 C 3.945312 -6.109375 4.425781 -5.988281 4.84375 -5.75 C 5.257812 -5.507812 5.582031 -5.160156 5.8125 -4.703125 C 6.050781 -4.242188 6.171875 -3.679688 6.171875 -3.015625 Z M 1.640625 -3.015625 C 1.640625 -2.304688 1.773438 -1.742188 2.046875 -1.328125 C 2.328125 -0.910156 2.773438 -0.703125 3.390625 -0.703125 C 3.992188 -0.703125 4.4375 -0.910156 4.71875 -1.328125 C 5.007812 -1.742188 5.15625 -2.304688 5.15625 -3.015625 C 5.15625 -3.722656 5.007812 -4.273438 4.71875 -4.671875 C 4.4375 -5.078125 3.992188 -5.28125 3.390625 -5.28125 C 2.773438 -5.28125 2.328125 -5.078125 2.046875 -4.671875 C 1.773438 -4.273438 1.640625 -3.722656 1.640625 -3.015625 Z M 1.640625 -3.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 3.75 -6.109375 C 3.863281 -6.109375 3.984375 -6.101562 4.109375 -6.09375 C 4.242188 -6.082031 4.359375 -6.066406 4.453125 -6.046875 L 4.328125 -5.140625 C 4.234375 -5.160156 4.128906 -5.175781 4.015625 -5.1875 C 3.898438 -5.207031 3.789062 -5.21875 3.6875 -5.21875 C 3.375 -5.21875 3.082031 -5.132812 2.8125 -4.96875 C 2.550781 -4.800781 2.335938 -4.566406 2.171875 -4.265625 C 2.015625 -3.960938 1.9375 -3.609375 1.9375 -3.203125 L 1.9375 0 L 0.953125 0 L 0.953125 -6 L 1.765625 -6 L 1.875 -4.90625 L 1.921875 -4.90625 C 2.109375 -5.238281 2.351562 -5.519531 2.65625 -5.75 C 2.96875 -5.988281 3.332031 -6.109375 3.75 -6.109375 Z M 3.75 -6.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M 0.453125 -2.5625 L 0.453125 -3.4375 L 3.15625 -3.4375 L 3.15625 -2.5625 Z M 0.453125 -2.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 3.203125 -8 C 4.242188 -8 5.003906 -7.789062 5.484375 -7.375 C 5.960938 -6.96875 6.203125 -6.390625 6.203125 -5.640625 C 6.203125 -5.203125 6.101562 -4.789062 5.90625 -4.40625 C 5.707031 -4.019531 5.375 -3.707031 4.90625 -3.46875 C 4.445312 -3.226562 3.816406 -3.109375 3.015625 -3.109375 L 2.09375 -3.109375 L 2.09375 0 L 1.09375 0 L 1.09375 -8 Z M 3.109375 -7.140625 L 2.09375 -7.140625 L 2.09375 -3.984375 L 2.90625 -3.984375 C 3.664062 -3.984375 4.234375 -4.101562 4.609375 -4.34375 C 4.984375 -4.59375 5.171875 -5.007812 5.171875 -5.59375 C 5.171875 -6.113281 5.003906 -6.5 4.671875 -6.75 C 4.335938 -7.007812 3.816406 -7.140625 3.109375 -7.140625 Z M 3.109375 -7.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 1.9375 0 L 0.953125 0 L 0.953125 -8.515625 L 1.9375 -8.515625 Z M 1.9375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d="M 5.96875 -6 L 5.96875 0 L 5.171875 0 L 5.015625 -0.796875 L 4.96875 -0.796875 C 4.78125 -0.484375 4.515625 -0.253906 4.171875 -0.109375 C 3.828125 0.0351562 3.457031 0.109375 3.0625 0.109375 C 2.34375 0.109375 1.800781 -0.0625 1.4375 -0.40625 C 1.070312 -0.757812 0.890625 -1.316406 0.890625 -2.078125 L 0.890625 -6 L 1.875 -6 L 1.875 -2.140625 C 1.875 -1.179688 2.320312 -0.703125 3.21875 -0.703125 C 3.882812 -0.703125 4.34375 -0.890625 4.59375 -1.265625 C 4.851562 -1.640625 4.984375 -2.175781 4.984375 -2.875 L 4.984375 -6 Z M 5.96875 -6 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M 3.078125 -6.109375 C 3.472656 -6.109375 3.828125 -6.035156 4.140625 -5.890625 C 4.460938 -5.742188 4.738281 -5.515625 4.96875 -5.203125 L 5.015625 -5.203125 L 5.15625 -6 L 5.9375 -6 L 5.9375 0.09375 C 5.9375 0.957031 5.71875 1.601562 5.28125 2.03125 C 4.84375 2.46875 4.164062 2.6875 3.25 2.6875 C 2.363281 2.6875 1.644531 2.5625 1.09375 2.3125 L 1.09375 1.40625 C 1.675781 1.71875 2.414062 1.875 3.3125 1.875 C 3.820312 1.875 4.222656 1.722656 4.515625 1.421875 C 4.816406 1.117188 4.96875 0.703125 4.96875 0.171875 L 4.96875 -0.0625 C 4.96875 -0.144531 4.96875 -0.269531 4.96875 -0.4375 C 4.976562 -0.601562 4.988281 -0.722656 5 -0.796875 L 4.953125 -0.796875 C 4.546875 -0.191406 3.925781 0.109375 3.09375 0.109375 C 2.3125 0.109375 1.703125 -0.160156 1.265625 -0.703125 C 0.828125 -1.253906 0.609375 -2.015625 0.609375 -2.984375 C 0.609375 -3.941406 0.828125 -4.703125 1.265625 -5.265625 C 1.703125 -5.828125 2.304688 -6.109375 3.078125 -6.109375 Z M 3.21875 -5.28125 C 2.71875 -5.28125 2.328125 -5.082031 2.046875 -4.6875 C 1.773438 -4.289062 1.640625 -3.722656 1.640625 -2.984375 C 1.640625 -2.242188 1.773438 -1.675781 2.046875 -1.28125 C 2.316406 -0.882812 2.710938 -0.6875 3.234375 -0.6875 C 3.835938 -0.6875 4.273438 -0.847656 4.546875 -1.171875 C 4.828125 -1.503906 4.96875 -2.03125 4.96875 -2.75 L 4.96875 -2.984375 C 4.96875 -3.804688 4.828125 -4.394531 4.546875 -4.75 C 4.265625 -5.101562 3.820312 -5.28125 3.21875 -5.28125 Z M 3.21875 -5.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 3.84375 -6.109375 C 4.5625 -6.109375 5.101562 -5.9375 5.46875 -5.59375 C 5.832031 -5.25 6.015625 -4.6875 6.015625 -3.90625 L 6.015625 0 L 5.046875 0 L 5.046875 -3.84375 C 5.046875 -4.800781 4.597656 -5.28125 3.703125 -5.28125 C 3.035156 -5.28125 2.570312 -5.09375 2.3125 -4.71875 C 2.0625 -4.351562 1.9375 -3.816406 1.9375 -3.109375 L 1.9375 0 L 0.953125 0 L 0.953125 -6 L 1.75 -6 L 1.890625 -5.1875 L 1.953125 -5.1875 C 2.140625 -5.5 2.40625 -5.726562 2.75 -5.875 C 3.09375 -6.03125 3.457031 -6.109375 3.84375 -6.109375 Z M 3.84375 -6.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-15">
+<path style="stroke:none;" d="M 3.8125 -6.109375 C 4.550781 -6.109375 5.144531 -5.851562 5.59375 -5.34375 C 6.050781 -4.832031 6.28125 -4.054688 6.28125 -3.015625 C 6.28125 -1.992188 6.050781 -1.21875 5.59375 -0.6875 C 5.144531 -0.15625 4.546875 0.109375 3.796875 0.109375 C 3.335938 0.109375 2.957031 0.0195312 2.65625 -0.15625 C 2.351562 -0.332031 2.113281 -0.535156 1.9375 -0.765625 L 1.875 -0.765625 C 1.882812 -0.640625 1.894531 -0.476562 1.90625 -0.28125 C 1.925781 -0.0820312 1.9375 0.0820312 1.9375 0.21875 L 1.9375 2.6875 L 0.953125 2.6875 L 0.953125 -6 L 1.765625 -6 L 1.890625 -5.1875 L 1.9375 -5.1875 C 2.113281 -5.445312 2.347656 -5.664062 2.640625 -5.84375 C 2.929688 -6.019531 3.320312 -6.109375 3.8125 -6.109375 Z M 3.625 -5.28125 C 3.019531 -5.28125 2.585938 -5.109375 2.328125 -4.765625 C 2.078125 -4.421875 1.945312 -3.898438 1.9375 -3.203125 L 1.9375 -3.015625 C 1.9375 -2.273438 2.054688 -1.703125 2.296875 -1.296875 C 2.546875 -0.898438 3 -0.703125 3.65625 -0.703125 C 4.019531 -0.703125 4.316406 -0.800781 4.546875 -1 C 4.785156 -1.207031 4.960938 -1.484375 5.078125 -1.828125 C 5.191406 -2.179688 5.25 -2.582031 5.25 -3.03125 C 5.25 -3.71875 5.113281 -4.265625 4.84375 -4.671875 C 4.582031 -5.078125 4.175781 -5.28125 3.625 -5.28125 Z M 3.625 -5.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-16">
+<path style="stroke:none;" d="M 3.21875 -6.109375 C 3.957031 -6.109375 4.5 -5.945312 4.84375 -5.625 C 5.195312 -5.300781 5.375 -4.789062 5.375 -4.09375 L 5.375 0 L 4.65625 0 L 4.46875 -0.84375 L 4.421875 -0.84375 C 4.160156 -0.519531 3.882812 -0.28125 3.59375 -0.125 C 3.3125 0.03125 2.914062 0.109375 2.40625 0.109375 C 1.863281 0.109375 1.410156 -0.03125 1.046875 -0.3125 C 0.691406 -0.601562 0.515625 -1.054688 0.515625 -1.671875 C 0.515625 -2.265625 0.75 -2.722656 1.21875 -3.046875 C 1.6875 -3.378906 2.410156 -3.554688 3.390625 -3.578125 L 4.40625 -3.625 L 4.40625 -3.984375 C 4.40625 -4.484375 4.296875 -4.828125 4.078125 -5.015625 C 3.867188 -5.210938 3.566406 -5.3125 3.171875 -5.3125 C 2.859375 -5.3125 2.554688 -5.265625 2.265625 -5.171875 C 1.984375 -5.078125 1.722656 -4.96875 1.484375 -4.84375 L 1.171875 -5.59375 C 1.429688 -5.726562 1.738281 -5.847656 2.09375 -5.953125 C 2.457031 -6.054688 2.832031 -6.109375 3.21875 -6.109375 Z M 3.515625 -2.90625 C 2.765625 -2.875 2.242188 -2.753906 1.953125 -2.546875 C 1.671875 -2.335938 1.53125 -2.039062 1.53125 -1.65625 C 1.53125 -1.320312 1.632812 -1.078125 1.84375 -0.921875 C 2.050781 -0.765625 2.3125 -0.6875 2.625 -0.6875 C 3.132812 -0.6875 3.554688 -0.828125 3.890625 -1.109375 C 4.234375 -1.390625 4.40625 -1.816406 4.40625 -2.390625 L 4.40625 -2.9375 Z M 3.515625 -2.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-17">
+<path style="stroke:none;" d="M 0.015625 -6 L 1.0625 -6 L 2.359375 -2.59375 C 2.472656 -2.289062 2.570312 -2.003906 2.65625 -1.734375 C 2.75 -1.460938 2.820312 -1.203125 2.875 -0.953125 L 2.90625 -0.953125 C 2.957031 -1.140625 3.03125 -1.382812 3.125 -1.6875 C 3.21875 -1.988281 3.316406 -2.289062 3.421875 -2.59375 L 4.65625 -6 L 5.71875 -6 L 3.125 0.828125 C 2.914062 1.398438 2.644531 1.851562 2.3125 2.1875 C 1.976562 2.519531 1.519531 2.6875 0.9375 2.6875 C 0.757812 2.6875 0.601562 2.675781 0.46875 2.65625 C 0.332031 2.632812 0.21875 2.613281 0.125 2.59375 L 0.125 1.8125 C 0.207031 1.832031 0.304688 1.847656 0.421875 1.859375 C 0.535156 1.867188 0.65625 1.875 0.78125 1.875 C 1.125 1.875 1.398438 1.773438 1.609375 1.578125 C 1.828125 1.390625 2 1.132812 2.125 0.8125 L 2.4375 0.015625 Z M 0.015625 -6 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-18">
+<path style="stroke:none;" d="M 2.09375 0 L 1.09375 0 L 1.09375 -8 L 5.5625 -8 L 5.5625 -7.109375 L 2.09375 -7.109375 L 2.09375 -4.28125 L 5.34375 -4.28125 L 5.34375 -3.390625 L 2.09375 -3.390625 Z M 2.09375 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-19">
+<path style="stroke:none;" d="M 3.625 0 L 2.609375 0 L 2.609375 -7.109375 L 0.109375 -7.109375 L 0.109375 -8 L 6.109375 -8 L 6.109375 -7.109375 L 3.625 -7.109375 Z M 3.625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-20">
+<path style="stroke:none;" d="M 4.515625 -7.21875 C 3.648438 -7.21875 2.972656 -6.929688 2.484375 -6.359375 C 1.992188 -5.785156 1.75 -5 1.75 -4 C 1.75 -3.007812 1.976562 -2.222656 2.4375 -1.640625 C 2.894531 -1.054688 3.582031 -0.765625 4.5 -0.765625 C 4.851562 -0.765625 5.1875 -0.796875 5.5 -0.859375 C 5.8125 -0.921875 6.117188 -1 6.421875 -1.09375 L 6.421875 -0.21875 C 6.117188 -0.101562 5.804688 -0.0195312 5.484375 0.03125 C 5.171875 0.0820312 4.796875 0.109375 4.359375 0.109375 C 3.546875 0.109375 2.863281 -0.0546875 2.3125 -0.390625 C 1.769531 -0.722656 1.363281 -1.195312 1.09375 -1.8125 C 0.820312 -2.4375 0.6875 -3.171875 0.6875 -4.015625 C 0.6875 -4.816406 0.832031 -5.523438 1.125 -6.140625 C 1.414062 -6.753906 1.847656 -7.234375 2.421875 -7.578125 C 3.003906 -7.929688 3.707031 -8.109375 4.53125 -8.109375 C 5.375 -8.109375 6.109375 -7.953125 6.734375 -7.640625 L 6.328125 -6.78125 C 6.078125 -6.894531 5.800781 -6.992188 5.5 -7.078125 C 5.195312 -7.171875 4.867188 -7.21875 4.515625 -7.21875 Z M 4.515625 -7.21875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 1.5 0 L 1.5 -11.421875 L 8.078125 -11.421875 L 8.078125 0 Z M 2.3125 -0.8125 L 7.265625 -0.8125 L 7.265625 -10.609375 L 2.3125 -10.609375 Z M 2.3125 -0.8125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 15.46875 -11.421875 L 12.5625 0 L 9.8125 0 L 8.25 -6 C 8.21875 -6.113281 8.175781 -6.285156 8.125 -6.515625 C 8.082031 -6.753906 8.03125 -7.015625 7.96875 -7.296875 C 7.914062 -7.578125 7.867188 -7.84375 7.828125 -8.09375 C 7.785156 -8.34375 7.753906 -8.535156 7.734375 -8.671875 C 7.722656 -8.535156 7.691406 -8.34375 7.640625 -8.09375 C 7.585938 -7.84375 7.535156 -7.578125 7.484375 -7.296875 C 7.429688 -7.023438 7.378906 -6.769531 7.328125 -6.53125 C 7.273438 -6.289062 7.234375 -6.109375 7.203125 -5.984375 L 5.65625 0 L 2.90625 0 L 0 -11.421875 L 2.390625 -11.421875 L 3.84375 -5.1875 C 3.90625 -4.9375 3.972656 -4.625 4.046875 -4.25 C 4.117188 -3.882812 4.1875 -3.515625 4.25 -3.140625 C 4.320312 -2.765625 4.375 -2.445312 4.40625 -2.1875 C 4.4375 -2.457031 4.484375 -2.773438 4.546875 -3.140625 C 4.609375 -3.515625 4.671875 -3.875 4.734375 -4.21875 C 4.804688 -4.5625 4.867188 -4.832031 4.921875 -5.03125 L 6.59375 -11.421875 L 8.875 -11.421875 L 10.546875 -5.03125 C 10.597656 -4.84375 10.65625 -4.570312 10.71875 -4.21875 C 10.789062 -3.875 10.859375 -3.515625 10.921875 -3.140625 C 10.992188 -2.765625 11.046875 -2.445312 11.078125 -2.1875 C 11.109375 -2.457031 11.15625 -2.773438 11.21875 -3.140625 C 11.28125 -3.515625 11.347656 -3.882812 11.421875 -4.25 C 11.503906 -4.625 11.570312 -4.9375 11.625 -5.1875 L 13.09375 -11.421875 Z M 15.46875 -11.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 2.453125 -12.15625 C 2.796875 -12.15625 3.097656 -12.070312 3.359375 -11.90625 C 3.617188 -11.738281 3.75 -11.429688 3.75 -10.984375 C 3.75 -10.554688 3.617188 -10.253906 3.359375 -10.078125 C 3.097656 -9.910156 2.796875 -9.828125 2.453125 -9.828125 C 2.085938 -9.828125 1.78125 -9.910156 1.53125 -10.078125 C 1.28125 -10.253906 1.15625 -10.554688 1.15625 -10.984375 C 1.15625 -11.429688 1.28125 -11.738281 1.53125 -11.90625 C 1.78125 -12.070312 2.085938 -12.15625 2.453125 -12.15625 Z M 3.625 -8.734375 L 3.625 0 L 1.25 0 L 1.25 -8.734375 Z M 3.625 -8.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 6.125 -8.890625 C 6.238281 -8.890625 6.375 -8.882812 6.53125 -8.875 C 6.695312 -8.863281 6.828125 -8.847656 6.921875 -8.828125 L 6.75 -6.59375 C 6.675781 -6.613281 6.566406 -6.628906 6.421875 -6.640625 C 6.273438 -6.660156 6.148438 -6.671875 6.046875 -6.671875 C 5.640625 -6.671875 5.25 -6.597656 4.875 -6.453125 C 4.5 -6.304688 4.195312 -6.070312 3.96875 -5.75 C 3.738281 -5.4375 3.625 -5.003906 3.625 -4.453125 L 3.625 0 L 1.25 0 L 1.25 -8.734375 L 3.0625 -8.734375 L 3.40625 -7.265625 L 3.515625 -7.265625 C 3.773438 -7.710938 4.128906 -8.09375 4.578125 -8.40625 C 5.023438 -8.726562 5.539062 -8.890625 6.125 -8.890625 Z M 6.125 -8.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 4.84375 -8.890625 C 6.050781 -8.890625 7.003906 -8.546875 7.703125 -7.859375 C 8.410156 -7.171875 8.765625 -6.191406 8.765625 -4.921875 L 8.765625 -3.78125 L 3.140625 -3.78125 C 3.160156 -3.101562 3.359375 -2.570312 3.734375 -2.1875 C 4.109375 -1.800781 4.632812 -1.609375 5.3125 -1.609375 C 5.875 -1.609375 6.382812 -1.664062 6.84375 -1.78125 C 7.300781 -1.894531 7.773438 -2.066406 8.265625 -2.296875 L 8.265625 -0.46875 C 7.835938 -0.25 7.382812 -0.09375 6.90625 0 C 6.4375 0.101562 5.867188 0.15625 5.203125 0.15625 C 4.328125 0.15625 3.550781 -0.00390625 2.875 -0.328125 C 2.207031 -0.648438 1.679688 -1.140625 1.296875 -1.796875 C 0.910156 -2.460938 0.71875 -3.296875 0.71875 -4.296875 C 0.71875 -5.328125 0.890625 -6.179688 1.234375 -6.859375 C 1.585938 -7.535156 2.070312 -8.039062 2.6875 -8.375 C 3.300781 -8.71875 4.019531 -8.890625 4.84375 -8.890625 Z M 4.859375 -7.203125 C 4.398438 -7.203125 4.019531 -7.050781 3.71875 -6.75 C 3.414062 -6.445312 3.238281 -5.984375 3.1875 -5.359375 L 6.53125 -5.359375 C 6.519531 -5.890625 6.378906 -6.328125 6.109375 -6.671875 C 5.847656 -7.023438 5.429688 -7.203125 4.859375 -7.203125 Z M 4.859375 -7.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 7.34375 -2.59375 C 7.34375 -1.707031 7.03125 -1.023438 6.40625 -0.546875 C 5.78125 -0.078125 4.847656 0.15625 3.609375 0.15625 C 3.003906 0.15625 2.484375 0.113281 2.046875 0.03125 C 1.609375 -0.0390625 1.171875 -0.171875 0.734375 -0.359375 L 0.734375 -2.3125 C 1.203125 -2.101562 1.707031 -1.925781 2.25 -1.78125 C 2.800781 -1.644531 3.285156 -1.578125 3.703125 -1.578125 C 4.171875 -1.578125 4.5 -1.644531 4.6875 -1.78125 C 4.882812 -1.925781 4.984375 -2.113281 4.984375 -2.34375 C 4.984375 -2.488281 4.941406 -2.617188 4.859375 -2.734375 C 4.785156 -2.847656 4.613281 -2.976562 4.34375 -3.125 C 4.082031 -3.28125 3.671875 -3.476562 3.109375 -3.71875 C 2.554688 -3.945312 2.101562 -4.175781 1.75 -4.40625 C 1.40625 -4.632812 1.144531 -4.910156 0.96875 -5.234375 C 0.800781 -5.566406 0.71875 -5.976562 0.71875 -6.46875 C 0.71875 -7.28125 1.03125 -7.882812 1.65625 -8.28125 C 2.289062 -8.6875 3.128906 -8.890625 4.171875 -8.890625 C 4.710938 -8.890625 5.226562 -8.835938 5.71875 -8.734375 C 6.21875 -8.628906 6.726562 -8.453125 7.25 -8.203125 L 6.53125 -6.5 C 6.101562 -6.675781 5.695312 -6.828125 5.3125 -6.953125 C 4.925781 -7.078125 4.535156 -7.140625 4.140625 -7.140625 C 3.441406 -7.140625 3.09375 -6.945312 3.09375 -6.5625 C 3.09375 -6.425781 3.132812 -6.300781 3.21875 -6.1875 C 3.3125 -6.070312 3.488281 -5.945312 3.75 -5.8125 C 4.007812 -5.6875 4.394531 -5.519531 4.90625 -5.3125 C 5.40625 -5.113281 5.835938 -4.90625 6.203125 -4.6875 C 6.566406 -4.46875 6.847656 -4.191406 7.046875 -3.859375 C 7.242188 -3.535156 7.34375 -3.113281 7.34375 -2.59375 Z M 7.34375 -2.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 3.625 -9.6875 C 3.625 -9.257812 3.609375 -8.847656 3.578125 -8.453125 C 3.554688 -8.054688 3.535156 -7.773438 3.515625 -7.609375 L 3.640625 -7.609375 C 3.921875 -8.054688 4.28125 -8.378906 4.71875 -8.578125 C 5.15625 -8.785156 5.640625 -8.890625 6.171875 -8.890625 C 7.117188 -8.890625 7.878906 -8.632812 8.453125 -8.125 C 9.023438 -7.625 9.3125 -6.816406 9.3125 -5.703125 L 9.3125 0 L 6.921875 0 L 6.921875 -5.109375 C 6.921875 -6.359375 6.453125 -6.984375 5.515625 -6.984375 C 4.804688 -6.984375 4.3125 -6.734375 4.03125 -6.234375 C 3.757812 -5.742188 3.625 -5.035156 3.625 -4.109375 L 3.625 0 L 1.25 0 L 1.25 -12.15625 L 3.625 -12.15625 Z M 3.625 -9.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 4.828125 -8.90625 C 6.003906 -8.90625 6.90625 -8.648438 7.53125 -8.140625 C 8.15625 -7.640625 8.46875 -6.867188 8.46875 -5.828125 L 8.46875 0 L 6.796875 0 L 6.34375 -1.1875 L 6.265625 -1.1875 C 5.898438 -0.71875 5.507812 -0.375 5.09375 -0.15625 C 4.675781 0.0507812 4.101562 0.15625 3.375 0.15625 C 2.59375 0.15625 1.945312 -0.0664062 1.4375 -0.515625 C 0.925781 -0.972656 0.671875 -1.671875 0.671875 -2.609375 C 0.671875 -3.535156 0.992188 -4.21875 1.640625 -4.65625 C 2.296875 -5.101562 3.273438 -5.347656 4.578125 -5.390625 L 6.09375 -5.4375 L 6.09375 -5.828125 C 6.09375 -6.285156 5.972656 -6.617188 5.734375 -6.828125 C 5.492188 -7.046875 5.160156 -7.15625 4.734375 -7.15625 C 4.304688 -7.15625 3.890625 -7.09375 3.484375 -6.96875 C 3.078125 -6.84375 2.671875 -6.691406 2.265625 -6.515625 L 1.484375 -8.125 C 1.953125 -8.375 2.472656 -8.566406 3.046875 -8.703125 C 3.617188 -8.835938 4.210938 -8.90625 4.828125 -8.90625 Z M 5.171875 -4.015625 C 4.398438 -3.992188 3.863281 -3.851562 3.5625 -3.59375 C 3.269531 -3.34375 3.125 -3.007812 3.125 -2.59375 C 3.125 -2.226562 3.226562 -1.96875 3.4375 -1.8125 C 3.65625 -1.65625 3.929688 -1.578125 4.265625 -1.578125 C 4.785156 -1.578125 5.21875 -1.726562 5.5625 -2.03125 C 5.914062 -2.34375 6.09375 -2.773438 6.09375 -3.328125 L 6.09375 -4.046875 Z M 5.171875 -4.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 3.625 -6.71875 C 3.625 -6.382812 3.609375 -6.054688 3.578125 -5.734375 C 3.554688 -5.410156 3.53125 -5.082031 3.5 -4.75 L 3.53125 -4.75 C 3.695312 -4.976562 3.863281 -5.207031 4.03125 -5.4375 C 4.195312 -5.664062 4.378906 -5.878906 4.578125 -6.078125 L 7.03125 -8.734375 L 9.71875 -8.734375 L 6.234375 -4.9375 L 9.921875 0 L 7.171875 0 L 4.65625 -3.53125 L 3.625 -2.71875 L 3.625 0 L 1.25 0 L 1.25 -12.15625 L 3.625 -12.15625 Z M 3.625 -6.71875 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface1057">
+<rect x="0" y="0" width="463" height="663" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill-rule:evenodd;fill:rgb(89.803922%,89.803922%,89.803922%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14 8 L 37 8 L 37 24 L 14 24 Z M 14 8 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 16 14 L 25 14 L 25 18 L 16 18 Z M 16 14 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="117.976562" y="247.710341"/>
+ <use xlink:href="#glyph0-2" x="126.032118" y="247.710341"/>
+ <use xlink:href="#glyph0-3" x="133.809896" y="247.710341"/>
+ <use xlink:href="#glyph0-4" x="138.809896" y="247.710341"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 26.968555 9.710156 L 35.968555 9.710156 L 35.968555 19.710156 L 26.968555 19.710156 Z M 26.968555 9.710156 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-5" x="270.371094" y="221.913466"/>
+ <use xlink:href="#glyph0-6" x="277.593316" y="221.913466"/>
+ <use xlink:href="#glyph0-7" x="285.371094" y="221.913466"/>
+ <use xlink:href="#glyph0-8" x="292.593316" y="221.913466"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21 20 L 26 20 L 26 23 L 21 23 Z M 21 20 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-9" x="168.40625" y="357.710341"/>
+ <use xlink:href="#glyph0-10" x="180.350694" y="357.710341"/>
+ <use xlink:href="#glyph0-3" x="183.684028" y="357.710341"/>
+ <use xlink:href="#glyph0-4" x="188.684028" y="357.710341"/>
+ <use xlink:href="#glyph0-11" x="195.90625" y="357.710341"/>
+ <use xlink:href="#glyph0-7" x="200.628472" y="357.710341"/>
+ <use xlink:href="#glyph0-6" x="207.850694" y="357.710341"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.6375 20 L 20.3625 20 L 20.3625 23 L 14.6375 23 Z M 14.6375 20 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="48.113281" y="357.710341"/>
+ <use xlink:href="#glyph0-7" x="56.168837" y="357.710341"/>
+ <use xlink:href="#glyph0-6" x="63.391059" y="357.710341"/>
+ <use xlink:href="#glyph0-11" x="71.168837" y="357.710341"/>
+ <use xlink:href="#glyph0-12" x="75.891059" y="357.710341"/>
+ <use xlink:href="#glyph0-3" x="83.668837" y="357.710341"/>
+ <use xlink:href="#glyph0-4" x="88.668837" y="357.710341"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 16 11 L 25 11 L 25 12.9 L 16 12.9 Z M 16 11 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-13" x="107.429688" y="166.710341"/>
+ <use xlink:href="#glyph0-14" x="116.874132" y="166.710341"/>
+ <use xlink:href="#glyph0-15" x="126.318576" y="166.710341"/>
+ <use xlink:href="#glyph0-16" x="130.763021" y="166.710341"/>
+ <use xlink:href="#glyph0-17" x="134.096354" y="166.710341"/>
+ <use xlink:href="#glyph0-18" x="137.985243" y="166.710341"/>
+ <use xlink:href="#glyph0-11" x="147.985243" y="166.710341"/>
+ <use xlink:href="#glyph0-19" x="152.707465" y="166.710341"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21.675 25.510742 C 22.406445 25.108984 22.77207 24.975 23.503516 24.975 C 24.234961 24.975 24.600781 25.108984 25.332031 25.510742 L 25.332031 27.653516 C 24.600781 28.055273 24.234961 28.189258 23.503516 28.189258 C 22.77207 28.189258 22.406445 28.055273 21.675 27.653516 Z M 21.675 25.510742 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21.675 25.510742 C 22.406445 25.9125 22.77207 26.046484 23.503516 26.046484 C 24.234961 26.046484 24.600781 25.9125 25.332031 25.510742 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-20" x="165.273438" y="465.409559"/>
+ <use xlink:href="#glyph0-7" x="174.717882" y="465.409559"/>
+ <use xlink:href="#glyph0-3" x="181.940104" y="465.409559"/>
+ <use xlink:href="#glyph0-21" x="186.940104" y="465.409559"/>
+ <use xlink:href="#glyph0-21" x="194.717882" y="465.409559"/>
+ <use xlink:href="#glyph0-10" x="202.49566" y="465.409559"/>
+ <use xlink:href="#glyph0-22" x="205.828993" y="465.409559"/>
+ <use xlink:href="#glyph0-23" x="211.940104" y="465.409559"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 20.5 12.9 L 20.5 14 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 26.968555 14.710156 L 25 16 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 22.75 18 L 23.5 20 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 18.25 18 L 17.5 20 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 23.5 23 L 23.503516 24.975 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 29.95 12.541406 L 34.95 12.541406 L 34.95 14.541406 L 29.95 14.541406 Z M 29.95 12.541406 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="344.066406" y="197.828396"/>
+ <use xlink:href="#glyph1-2" x="352.121962" y="197.828396"/>
+ <use xlink:href="#glyph1-3" x="354.89974" y="197.828396"/>
+ <use xlink:href="#glyph1-3" x="360.177517" y="197.828396"/>
+ <use xlink:href="#glyph1-4" x="365.455295" y="197.828396"/>
+ <use xlink:href="#glyph1-5" x="371.844184" y="197.828396"/>
+ <use xlink:href="#glyph1-6" x="377.121962" y="197.828396"/>
+ <use xlink:href="#glyph1-7" x="381.288628" y="197.828396"/>
+ <use xlink:href="#glyph1-8" x="387.955295" y="197.828396"/>
+ <use xlink:href="#glyph1-3" x="392.677517" y="197.828396"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 17.5 23 L 17.502539 25.05 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="22" y="122.014106"/>
+ <use xlink:href="#glyph2-2" x="37.555556" y="122.014106"/>
+ <use xlink:href="#glyph2-3" x="42.555556" y="122.014106"/>
+ <use xlink:href="#glyph2-4" x="49.5" y="122.014106"/>
+ <use xlink:href="#glyph2-5" x="58.944444" y="122.014106"/>
+ <use xlink:href="#glyph2-6" x="67" y="122.014106"/>
+ <use xlink:href="#glyph2-7" x="77.555556" y="122.014106"/>
+ <use xlink:href="#glyph2-3" x="87.277778" y="122.014106"/>
+ <use xlink:href="#glyph2-8" x="94.5" y="122.014106"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(70.19608%,70.19608%,70.19608%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 18.75 4 L 22.275391 4 L 22.275391 6.644141 L 18.75 6.644141 Z M 18.75 4 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 104.636719 9.636719 L 159.867188 9.636719 L 159.867188 46.066406 L 104.636719 46.066406 Z M 104.636719 9.636719 "/>
+<path style="fill-rule:evenodd;fill:rgb(70.19608%,70.19608%,70.19608%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 19.227344 6.644141 L 21.041602 6.644141 L 21.041602 7.055273 L 19.322852 7.055273 Z M 19.227344 6.644141 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(70.19608%,70.19608%,70.19608%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21.041602 6.644141 L 21.798047 6.644141 L 21.702539 7.055273 L 21.041602 7.055273 Z M 21.041602 6.644141 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21.164844 6.767383 L 21.329297 6.767383 L 21.329297 6.931836 L 21.164844 6.931836 Z M 21.164844 6.767383 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(70.19608%,70.19608%,70.19608%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 20.160156 7.055273 L 20.865234 7.055273 L 20.865234 7.260938 L 21.217773 7.260938 L 21.217773 7.466602 L 19.807617 7.466602 L 19.807617 7.260938 L 20.160156 7.260938 Z M 20.160156 7.055273 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 20.512695 7.466602 L 20.5 11 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 20.3625 21.5 L 21 21.5 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 29.39082 14.516406 L 35.633398 14.516406 L 35.633398 17.016406 L 29.39082 17.016406 Z M 29.39082 14.516406 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="326.96875" y="242.328396"/>
+ <use xlink:href="#glyph1-2" x="335.024306" y="242.328396"/>
+ <use xlink:href="#glyph1-3" x="337.802083" y="242.328396"/>
+ <use xlink:href="#glyph1-3" x="343.079861" y="242.328396"/>
+ <use xlink:href="#glyph1-4" x="348.357639" y="242.328396"/>
+ <use xlink:href="#glyph1-5" x="354.746528" y="242.328396"/>
+ <use xlink:href="#glyph1-6" x="360.024306" y="242.328396"/>
+ <use xlink:href="#glyph1-7" x="364.190972" y="242.328396"/>
+ <use xlink:href="#glyph1-8" x="370.857639" y="242.328396"/>
+ <use xlink:href="#glyph1-9" x="375.579861" y="242.328396"/>
+ <use xlink:href="#glyph1-10" x="379.190972" y="242.328396"/>
+ <use xlink:href="#glyph1-11" x="385.857639" y="242.328396"/>
+ <use xlink:href="#glyph1-12" x="388.635417" y="242.328396"/>
+ <use xlink:href="#glyph1-13" x="395.579861" y="242.328396"/>
+ <use xlink:href="#glyph1-2" x="402.524306" y="242.328396"/>
+ <use xlink:href="#glyph1-14" x="405.302083" y="242.328396"/>
+ <use xlink:href="#glyph1-3" x="412.246528" y="242.328396"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 29.79707 17.023047 L 35.04707 17.023047 L 35.04707 19.023047 L 29.79707 19.023047 Z M 29.79707 17.023047 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="333.644531" y="287.461209"/>
+ <use xlink:href="#glyph1-2" x="341.700087" y="287.461209"/>
+ <use xlink:href="#glyph1-3" x="344.477865" y="287.461209"/>
+ <use xlink:href="#glyph1-15" x="349.755642" y="287.461209"/>
+ <use xlink:href="#glyph1-11" x="356.700087" y="287.461209"/>
+ <use xlink:href="#glyph1-16" x="359.477865" y="287.461209"/>
+ <use xlink:href="#glyph1-17" x="365.866753" y="287.461209"/>
+ <use xlink:href="#glyph1-9" x="371.700087" y="287.461209"/>
+ <use xlink:href="#glyph1-18" x="375.311198" y="287.461209"/>
+ <use xlink:href="#glyph1-2" x="381.144531" y="287.461209"/>
+ <use xlink:href="#glyph1-11" x="383.922309" y="287.461209"/>
+ <use xlink:href="#glyph1-6" x="386.700087" y="287.461209"/>
+ <use xlink:href="#glyph1-4" x="390.866753" y="287.461209"/>
+ <use xlink:href="#glyph1-8" x="397.255642" y="287.461209"/>
+ <use xlink:href="#glyph1-3" x="401.977865" y="287.461209"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 17.5 32.9 L 17.501172 33.805859 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 16.259766 34.60957 C 15.741211 34.597656 14.735547 34.847461 14.876953 35.382812 C 15.018359 35.918164 15.694141 36.037109 15.976953 35.882422 C 16.259766 35.72793 15.536914 36.632031 16.919922 36.869922 C 18.30293 37.107813 19.009961 36.727148 18.805664 36.453516 C 18.601367 36.179883 20.01582 37.096094 20.675977 36.572461 C 21.335938 36.049023 20.000195 35.549414 20.283008 35.620703 C 20.56582 35.692188 21.430273 35.596875 21.147266 34.704687 C 20.864453 33.812305 18.318555 34.502344 18.601367 34.371484 C 18.884375 34.240625 18.177148 33.586328 17.29707 33.717188 C 16.416992 33.848047 16.354492 34.085547 16.260352 34.608984 Z M 16.259766 34.60957 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-24" x="61.425781" y="636.597059"/>
+ <use xlink:href="#glyph0-4" x="71.148003" y="636.597059"/>
+ <use xlink:href="#glyph0-11" x="78.370226" y="636.597059"/>
+ <use xlink:href="#glyph0-25" x="83.092448" y="636.597059"/>
+ <use xlink:href="#glyph0-2" x="93.092448" y="636.597059"/>
+ <use xlink:href="#glyph0-3" x="100.870226" y="636.597059"/>
+ <use xlink:href="#glyph0-23" x="106.148003" y="636.597059"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 29.960156 10.607227 L 34.960156 10.607227 L 34.960156 12.607227 L 29.960156 12.607227 Z M 29.960156 10.607227 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-10" x="336.632812" y="159.144803"/>
+ <use xlink:href="#glyph1-8" x="343.299479" y="159.144803"/>
+ <use xlink:href="#glyph1-7" x="347.743924" y="159.144803"/>
+ <use xlink:href="#glyph1-6" x="354.41059" y="159.144803"/>
+ <use xlink:href="#glyph1-7" x="358.577257" y="159.144803"/>
+ <use xlink:href="#glyph1-5" x="365.243924" y="159.144803"/>
+ <use xlink:href="#glyph1-7" x="370.521701" y="159.144803"/>
+ <use xlink:href="#glyph1-11" x="377.188368" y="159.144803"/>
+ <use xlink:href="#glyph1-9" x="379.966146" y="159.144803"/>
+ <use xlink:href="#glyph1-19" x="383.021701" y="159.144803"/>
+ <use xlink:href="#glyph1-8" x="388.577257" y="159.144803"/>
+ <use xlink:href="#glyph1-4" x="393.021701" y="159.144803"/>
+ <use xlink:href="#glyph1-4" x="399.41059" y="159.144803"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 18.778516 32.95 L 18.753516 32.93457 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14 28.9 L 21 28.9 L 21 32.9 L 14 32.9 Z M 14 28.9 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 14.825 30.25 L 20.175 30.25 L 20.175 32.25 L 14.825 32.25 Z M 14.825 30.25 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-20" x="33.113281" y="552.000271"/>
+ <use xlink:href="#glyph1-16" x="40.057726" y="552.000271"/>
+ <use xlink:href="#glyph1-15" x="46.446615" y="552.000271"/>
+ <use xlink:href="#glyph1-6" x="53.391059" y="552.000271"/>
+ <use xlink:href="#glyph1-12" x="57.557726" y="552.000271"/>
+ <use xlink:href="#glyph1-8" x="64.50217" y="552.000271"/>
+ <use xlink:href="#glyph1-4" x="68.946615" y="552.000271"/>
+ <use xlink:href="#glyph1-9" x="75.335503" y="552.000271"/>
+ <use xlink:href="#glyph1-18" x="78.946615" y="552.000271"/>
+ <use xlink:href="#glyph1-2" x="84.779948" y="552.000271"/>
+ <use xlink:href="#glyph1-11" x="87.557726" y="552.000271"/>
+ <use xlink:href="#glyph1-6" x="90.335503" y="552.000271"/>
+ <use xlink:href="#glyph1-4" x="94.50217" y="552.000271"/>
+ <use xlink:href="#glyph1-8" x="100.891059" y="552.000271"/>
+ <use xlink:href="#glyph1-3" x="105.613281" y="552.000271"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-8" x="14" y="517.011122"/>
+ <use xlink:href="#glyph0-6" x="21.777778" y="517.011122"/>
+ <use xlink:href="#glyph0-26" x="29.555556" y="517.011122"/>
+ <use xlink:href="#glyph0-7" x="35.666667" y="517.011122"/>
+ <use xlink:href="#glyph0-6" x="42.888889" y="517.011122"/>
+ <use xlink:href="#glyph0-16" x="50.666667" y="517.011122"/>
+ <use xlink:href="#glyph0-27" x="54" y="517.011122"/>
+ <use xlink:href="#glyph0-16" x="58.722222" y="517.011122"/>
+ <use xlink:href="#glyph0-28" x="62.055556" y="517.011122"/>
+ <use xlink:href="#glyph0-10" x="65.388889" y="517.011122"/>
+ <use xlink:href="#glyph0-29" x="68.722222" y="517.011122"/>
+ <use xlink:href="#glyph0-6" x="76.5" y="517.011122"/>
+ <use xlink:href="#glyph0-26" x="84.277778" y="517.011122"/>
+ <use xlink:href="#glyph0-7" x="90.388889" y="517.011122"/>
+ <use xlink:href="#glyph0-6" x="97.611111" y="517.011122"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.640039 25.05 L 20.365039 25.05 L 20.365039 28.05 L 14.640039 28.05 Z M 14.640039 25.05 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-30" x="43.027344" y="450.710341"/>
+ <use xlink:href="#glyph0-12" x="52.471788" y="450.710341"/>
+ <use xlink:href="#glyph0-31" x="60.249566" y="450.710341"/>
+ <use xlink:href="#glyph0-6" x="72.19401" y="450.710341"/>
+ <use xlink:href="#glyph0-26" x="79.971788" y="450.710341"/>
+ <use xlink:href="#glyph0-7" x="86.082899" y="450.710341"/>
+ <use xlink:href="#glyph0-6" x="93.305122" y="450.710341"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-26" x="26.914062" y="466.710341"/>
+ <use xlink:href="#glyph0-7" x="33.025174" y="466.710341"/>
+ <use xlink:href="#glyph0-6" x="40.247396" y="466.710341"/>
+ <use xlink:href="#glyph0-11" x="48.025174" y="466.710341"/>
+ <use xlink:href="#glyph0-12" x="52.747396" y="466.710341"/>
+ <use xlink:href="#glyph0-3" x="60.525174" y="466.710341"/>
+ <use xlink:href="#glyph0-4" x="65.525174" y="466.710341"/>
+ <use xlink:href="#glyph0-16" x="72.747396" y="466.710341"/>
+ <use xlink:href="#glyph0-4" x="76.080729" y="466.710341"/>
+ <use xlink:href="#glyph0-8" x="83.302951" y="466.710341"/>
+ <use xlink:href="#glyph0-32" x="91.080729" y="466.710341"/>
+ <use xlink:href="#glyph0-10" x="98.858507" y="466.710341"/>
+ <use xlink:href="#glyph0-8" x="102.19184" y="466.710341"/>
+ <use xlink:href="#glyph0-4" x="109.969618" y="466.710341"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 17.502539 28.05 L 17.5 28.9 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 21.625 26.57207 L 20.412109 26.565625 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 28.839062 20.271484 L 33.839062 20.271484 L 33.839062 23.271484 L 28.839062 23.271484 Z M 28.839062 20.271484 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-14" x="326.007812" y="363.140028"/>
+ <use xlink:href="#glyph0-11" x="335.452257" y="363.140028"/>
+ <use xlink:href="#glyph0-10" x="340.174479" y="363.140028"/>
+ <use xlink:href="#glyph0-28" x="343.507812" y="363.140028"/>
+ <use xlink:href="#glyph0-10" x="346.841146" y="363.140028"/>
+ <use xlink:href="#glyph0-11" x="350.174479" y="363.140028"/>
+ <use xlink:href="#glyph0-10" x="354.896701" y="363.140028"/>
+ <use xlink:href="#glyph0-4" x="358.230035" y="363.140028"/>
+ <use xlink:href="#glyph0-22" x="365.452257" y="363.140028"/>
+</g>
+<path style="fill:none;stroke-width:0.15;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 23.687305 34.999609 L 32.653906 34.999609 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 26.655469 34.756445 L 27.152539 34.757031 " transform="matrix(20,0,0,20,-278,-78)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 26.648438 35.236328 L 27.145508 35.237109 " transform="matrix(20,0,0,20,-278,-78)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-33" x="323.242188" y="638.292372"/>
+ <use xlink:href="#glyph0-12" x="331.575521" y="638.292372"/>
+ <use xlink:href="#glyph0-22" x="339.353299" y="638.292372"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:0.1,0.1;stroke-miterlimit:10;" d="M 20.00293 32.968945 L 26.903906 34.756641 " transform="matrix(20,0,0,20,-278,-78)"/>
+</g>
+</svg>
diff --git a/docbook/wsdg_src/wsdg_asn2wrs.adoc b/docbook/wsdg_src/wsdg_asn2wrs.adoc
index eb246ff79d..b2fc70f253 100644
--- a/docbook/wsdg_src/wsdg_asn2wrs.adoc
+++ b/docbook/wsdg_src/wsdg_asn2wrs.adoc
@@ -566,7 +566,7 @@ FOO-MESSAGE
#define PSNAME "FOO"
#define PFNAME "foo"
#define FOO_PORT 5001 /* UDP port */
-static dissector_handle_t foo_handle=NULL;
+static dissector_handle_t foo_handle;
void proto_reg_handoff_foo(void);
void proto_register_foo(void);
diff --git a/docbook/wsdg_src/wsdg_libraries.adoc b/docbook/wsdg_src/wsdg_libraries.adoc
index 5d9c4f2276..28bc52d5a9 100644
--- a/docbook/wsdg_src/wsdg_libraries.adoc
+++ b/docbook/wsdg_src/wsdg_libraries.adoc
@@ -300,9 +300,9 @@ https://dev-libs.wireshark.org/windows/packages/[].
=== Lua (Optional)
The Lua library is used to add scripting support to Wireshark.
-Only Lua versions 5.1 and 5.2 are supported; the API has
-https://gitlab.com/wireshark/wireshark/-/issues/10881[not
-been updated to work with versions 5.3 and later.]
+Wireshark 4.2.x and earlier support Lua versions 5.1 and 5.2.
+Recent versions of Wireshark have added support for Lua 5.3 and 5.4
+as well.
[#ChLibsUnixLua]
@@ -318,7 +318,7 @@ https://www.lua.org/download.html[].
[discrete]
==== Windows
-We provide copies of the official packages at
+We provide packages for Windows, patched for UTF-8 support, at
https://dev-libs.wireshark.org/windows/packages/[].
[#ChLibsMaxMindDB]
diff --git a/docbook/wsdg_src/wsdg_lua_support.adoc b/docbook/wsdg_src/wsdg_lua_support.adoc
index e94f3e36fe..5c8f3b45b1 100644
--- a/docbook/wsdg_src/wsdg_lua_support.adoc
+++ b/docbook/wsdg_src/wsdg_lua_support.adoc
@@ -10,11 +10,11 @@
=== Introduction
Lua is a powerful light-weight programming language designed for extending
-applications. Wireshark contains an embedded Lua 5.2 interpreter which
-can be used to write dissectors, taps, and capture file readers
-and writers. The interpreter is backwards compatible with Lua 5.1,
-https://gitlab.com/wireshark/wireshark/-/issues/10881[but does not yet
-work with Lua 5.3 or greater.]
+applications. Wireshark contains an embedded Lua interpreter which can
+be used to write dissectors, taps, and capture file readers and writers.
+Wireshark versions 4.2.x and earlier support Lua 5.1 and 5.2, and newer
+versions support Lua 5.3, and 5.4. All versions support the
+Lua BitOp library.
If Lua is enabled, Wireshark will first try to load a file named `init.lua`
from the global link:{wireshark-users-guide-url}ChPluginFolders.html[_plugins directory_].
diff --git a/docbook/wsdg_src/wsdg_works.adoc b/docbook/wsdg_src/wsdg_works.adoc
index baa754037f..88c2f7a530 100644
--- a/docbook/wsdg_src/wsdg_works.adoc
+++ b/docbook/wsdg_src/wsdg_works.adoc
@@ -19,7 +19,7 @@ The following will give you a simplified overview of Wireshark’s function bloc
[#ChWorksFigOverview]
.Wireshark function blocks
-image::images/ws-function-blocks.png[{pdf-scaledwidth}]
+image::images/ws-function-blocks.svg[{pdf-scaledwidth}]
The function blocks in more detail:
diff --git a/docbook/wsug_src/images/ws-pref-protocols.png b/docbook/wsug_src/images/ws-pref-protocols.png
index 821b7cca44..2b73d3e658 100644
--- a/docbook/wsug_src/images/ws-pref-protocols.png
+++ b/docbook/wsug_src/images/ws-pref-protocols.png
Binary files differ
diff --git a/docbook/wsug_src/tshark-h.txt b/docbook/wsug_src/tshark-h.txt
index 6de288f536..f6b17f170c 100644
--- a/docbook/wsug_src/tshark-h.txt
+++ b/docbook/wsug_src/tshark-h.txt
@@ -1,4 +1,4 @@
-TShark (Wireshark) 4.3.0 (v4.3.0rc0-87-g9c90105c365a)
+TShark (Wireshark) 4.3.0 (v4.3.0rc0-2321-gf566d380e2d4)
Dump and analyze network traffic.
See https://www.wireshark.org for more information.
@@ -118,6 +118,7 @@ Output:
output format of time stamps (def: r: rel. to first)
-u s|hms output format of seconds (def: s: seconds)
-l flush standard output after each packet
+ (implies --update-interval 0)
-q be more quiet on stdout (e.g. when using statistics)
-Q only log true errors to stderr (quieter than -q)
-g enable group read access on the output file(s)
diff --git a/docbook/wsug_src/wsug_customize.adoc b/docbook/wsug_src/wsug_customize.adoc
index 15d6c8cb19..cd378b3122 100644
--- a/docbook/wsug_src/wsug_customize.adoc
+++ b/docbook/wsug_src/wsug_customize.adoc
@@ -892,6 +892,11 @@ Currently only the IPv4, ICMP and ICMPv6 dissector use this preference.
Selecting _Ignore duplicate frames_ causes a duplicate frame to appear in the packet list, but flagged as ignored, hence not dissected.
The determination of a duplicate frame is made based on the SHA256 hash of the bytes in the frame.
+The preference _Deinterlacing conversations key_ gives you options for deinterlacing the conversations. While _NONE_ keeps the historical behaviour, the other options
+are built on three keys with the following meanings: _V_ (VLAN), _M_ (Mac Address), _I_ (Interface). Packets which seem identical because they have the
+same payload but have a different value for their VLAN Tag, a MAC Address, or were captured on different interfaces, will then be part of different conversations
+if the respective deinterlacing key is activated.
+
The preference _The max number of hashes to keep in memory for determining duplicate frames_ allows you to set how large the set of frames to consider for duplication is.
==== RSA Keys
@@ -1078,6 +1083,12 @@ added and deleted profiles will not be deleted.
btn:[Help]::
Show this help page.
+==== Automatic Profile Switching
+
+You can configure Wireshark to automatically change configuration profiles by adding a display filter to the "Auto Switch Filter" setting for a profile.
+When you open a capture file, Wireshark will check each filter against the first 1000 packets and will switch to the first profile with a matching filter.
+Manually changing your profile will disable this behavior until you open a different capture file.
+
[#ChUserTable]
=== User Table
diff --git a/docbook/wsug_src/wsug_files.adoc b/docbook/wsug_src/wsug_files.adoc
index c64162530b..eff9eb0c08 100644
--- a/docbook/wsug_src/wsug_files.adoc
+++ b/docbook/wsug_src/wsug_files.adoc
@@ -176,6 +176,7 @@ _/usr/local/etc_.
|_ss7pcs_|SS7 point code resolution.
|_subnets_|IPv4 subnet name resolution.
|_vlans_|VLAN ID name resolution.
+|_wka_|Well-known MAC addresses.
|===
[discrete]
@@ -317,10 +318,13 @@ a name, it consults the _ethers_ file in the personal configuration
folder first. If the address is not found in that file, Wireshark
consults the _ethers_ file in the system configuration folder.
-This file has the same format as the _/etc/ethers_ file on some Unix-like systems.
+This file has a similar format to the _/etc/ethers_ file on some Unix-like systems.
Each line in these files consists of one hardware address and name separated by
-whitespace. The digits of hardware addresses are separated by colons (:), dashes
-(-) or periods(.). The following are some examples:
+whitespace (tabs or spaces). The hardware addresses are expressed as pairs
+of hexadecimal digits separated by colons (:), dashes (-), or periods(.), with
+the same separator used in the entire address. A `#` can be used to indicate
+a comment that extends to the rest of the line. NIS lookups, as in some
+UNIX-like systems, are not supported. The following are some examples:
----
ff-ff-ff-ff-ff-ff Broadcast
@@ -381,12 +385,17 @@ be translated to a name, and never written by Wireshark.
manuf::
+
--
-At program start, if there is a _manuf_ file in the global configuration folder, it is read.
+At program start, if there is a _manuf_ file in the global configuration
+folder, it is read first. Then, if there is a _manuf_ file in the personal
+configuration folder, that is read; if there is an entry for a given address
+prefix in both files, the setting in the personal file overrides the entry
+in the global file.
The entries in this file are used to translate MAC address prefixes into short and long manufacturer names.
Each line consists of a MAC address prefix followed by an abbreviated manufacturer name and the full manufacturer name.
Prefixes 24 bits long by default and may be followed by an optional length.
-Note that this is not the same format as the _ethers_ file.
+Note that this is not the same format as the _ethers_ file, which does not
+allow prefix lengths.
Examples are:
@@ -395,6 +404,15 @@ Examples are:
00:50:C2:00:30:00/36 Microsof Microsoft
----
+In earlier versions of Wireshark, official information from the IEEE
+Registration Authority was distributed in this format as the _manuf_ file
+in the global configuration folder. In current versions of Wireshark, this
+information is compiled into the program to speed startup, but if a file
+is present in the global configuration folder it is still read, and can
+be used to supplement or replace the official data just as the personal
+file does. The compiled-in information can be written out in this format
+as a report with `tshark -G manuf`.
+
The settings from this file are read in at program start and never written by Wireshark.
--
@@ -455,7 +473,9 @@ At program start, if there is a _services_ file in the global
configuration folder, it is read first. Then, if there is a _services_
file in the personal configuration folder, that is read; if there is an
entry for a given port number in both files, the setting in the personal
-hosts file overrides the entry in the global hosts file.
+_services_ file overrides the entry in the global _services_ file.
+The format is that of the standard _services(5)_ file on UNIX-compatible
+systems.
An example is:
@@ -464,6 +484,15 @@ mydns 5045/udp # My own Domain Name Server
mydns 5045/tcp # My own Domain Name Server
----
+In earlier versions of Wireshark, official information from the IANA
+Service Name and Transport Protocol Port Number Registry was distributed
+in this format as the _services_ file in the global configuration folder.
+In current versions of Wireshark, this information is compiled into the
+program to speed startup, but if a file is present in the global configuration
+folder it is still read, and can be used to supplement or replace the official
+data just as the personal file does. The compiled-in information can be
+written out in this format as a report with `tshark -G services`.
+
The settings from these files are read in at program start and never
written by Wireshark.
--
@@ -540,6 +569,20 @@ The settings from this file are read in at program start or when changing
the active profile and are never written by Wireshark.
--
+wka::
++
+--
+At program start, if there is a _wka_ file in the global configuration folder,
+it is read.
+
+The entries in this file are used to translate MAC addresses and MAC address
+prefixes into names. The format is that of the _manuf_ file. This file is
+distributed with Wireshark, and contains data assembled from various non IEEE
+but respected sources.
+
+The settings from this file are read in at program start and never written by Wireshark.
+--
+
[#ChPluginFolders]
=== Plugin folders
@@ -551,16 +594,12 @@ machine code.
Wireshark looks for plugins in both a personal plugin folder and a
global plugin folder. Lua plugins are stored in the plugin folders;
compiled plugins are stored in subfolders of the plugin folders, with
-the subfolder name being the plugin binary type. Each Wireshark binary plugin
-has one of three distinct types (libwireshark, libwiretap and codecs).
-So for example the location for a libwireshark plugin
-_foo.so_ (_foo.dll_ on Windows) would be _PLUGINDIR/epan_
-(libwireshark used to be called libepan), for libwiretap it would be
-_PLUGINDIR/wiretap_ and for codecs _PLUGINDIR/codecs_.
-
-Plugins should come with the ABI version appended to the filename, so the
-complete example for an epan binary plugin would be _PLUGINDIR/epan_/foo.so.1_
-for epan ABI version 1.
+the subfolder name being the Wireshark minor version number (X.Y). There is
+another hierarchical level for each Wireshark plugin type (libwireshark,
+libwiretap and codecs). So for example the location for a libwireshark plugin
+_foo.so_ (_foo.dll_ on Windows) would be _PLUGINDIR/X.Y/epan_
+(libwireshark used to be called libepan; the other folder names are _codecs_
+and _wiretap_).
On Windows:
diff --git a/docbook/wsug_src/wsug_statistics.adoc b/docbook/wsug_src/wsug_statistics.adoc
index 865b1b4bc7..9bb41f90c8 100644
--- a/docbook/wsug_src/wsug_statistics.adoc
+++ b/docbook/wsug_src/wsug_statistics.adoc
@@ -189,6 +189,9 @@ In the screenshot there are many more TLS and Git PDUs than there are packets.
A network conversation is the traffic between two specific endpoints. For
example, an IP conversation is all the traffic between two IP addresses. The
description of the known endpoint types can be found in
+
+The conversations are influenced by the _Deinterlacing conversations key_
+preference.
<<ChStatEndpoints>>.
[#ChStatConversationsWindow]
@@ -498,7 +501,7 @@ Automatic updates::
Redraw each graph automatically.
Enable legend::
-Show a legend for graphs with more than one type of Y axis.
+Show a graph legend.
The main dialog buttons along the bottom let you do the following:
diff --git a/dumpcap.c b/dumpcap.c
index 3c85168168..56f79f8346 100644
--- a/dumpcap.c
+++ b/dumpcap.c
@@ -123,14 +123,14 @@ FILE *debug_log; /* for logging debug messages to */
static GAsyncQueue *pcap_queue;
static gint64 pcap_queue_bytes;
static gint64 pcap_queue_packets;
-static gint64 pcap_queue_byte_limit = 0;
-static gint64 pcap_queue_packet_limit = 0;
+static gint64 pcap_queue_byte_limit;
+static gint64 pcap_queue_packet_limit;
-static gboolean capture_child = FALSE; /* FALSE: standalone call, TRUE: this is an Wireshark capture child */
-static const char *report_capture_filename = NULL; /* capture child file name */
+static gboolean capture_child; /* FALSE: standalone call, TRUE: this is an Wireshark capture child */
+static const char *report_capture_filename; /* capture child file name */
#ifdef _WIN32
-static gchar *sig_pipe_name = NULL;
-static HANDLE sig_pipe_handle = NULL;
+static gchar *sig_pipe_name;
+static HANDLE sig_pipe_handle;
static gboolean signal_pipe_check_running(void);
#endif
static int sync_pipe_fd = 2;
@@ -416,9 +416,9 @@ dumpcap_log_writer(const char *domain, enum ws_log_level level,
/* capture related options */
static capture_options global_capture_opts;
-static GPtrArray *capture_comments = NULL;
-static gboolean quiet = FALSE;
-static gboolean use_threads = FALSE;
+static GPtrArray *capture_comments;
+static gboolean quiet;
+static gboolean use_threads;
static guint64 start_time;
static void capture_loop_write_packet_cb(u_char *pcap_src_p, const struct pcap_pkthdr *phdr,
@@ -2422,6 +2422,28 @@ pcapng_adjust_block(capture_src *pcap_src, const pcapng_block_header_t *bh, u_ch
}
/*
+ * Return true if the block contains packet, event, or log data. Return false otherwise.
+ */
+static bool is_data_block(uint32_t block_type)
+{
+ // Any block types that lead to calling wtap_read_packet_bytes in
+ // wiretap/pcapng.c should be listed here.
+ switch (block_type) {
+ case BLOCK_TYPE_PB:
+ case BLOCK_TYPE_EPB:
+ case BLOCK_TYPE_SPB:
+ case BLOCK_TYPE_SYSTEMD_JOURNAL_EXPORT:
+ case BLOCK_TYPE_SYSDIG_EVENT:
+ case BLOCK_TYPE_SYSDIG_EVENT_V2:
+ case BLOCK_TYPE_SYSDIG_EVENT_V2_LARGE:
+ return true;
+ default:
+ break;
+ }
+ return false;
+}
+
+/*
* Read the part of the initial pcapng SHB following the block type
* (we've already read the block type).
*/
@@ -2922,15 +2944,15 @@ pcapng_pipe_dispatch(loop_data *ld, capture_src *pcap_src, char *errmsg, size_t
bh->block_total_length);
break;
}
- if (bh->block_total_length > pcap_src->cap_pipe_max_pkt_size) {
+ if (is_data_block(bh->block_type) && bh->block_total_length > pcap_src->cap_pipe_max_pkt_size) {
/*
* The record contains more data than the advertised/allowed in the
* pcapng header, do not try to read more data (do not change to
* STATE_EXPECT_DATA) as that would not fit in the buffer and
* instead stop with an error.
*/
- snprintf(errmsg, errmsgl, "Frame %u too long (%d bytes)",
- ld->packets_captured+1, bh->block_total_length);
+ snprintf(errmsg, errmsgl, "Block %u type 0x%08x too long (%d bytes)",
+ ld->packets_captured+1, bh->block_type, bh->block_total_length);
break;
}
@@ -4799,9 +4821,9 @@ capture_loop_write_pcapng_cb(capture_src *pcap_src, const pcapng_block_header_t
global_ld.go = FALSE;
global_ld.err = err;
pcap_src->dropped++;
- } else if (bh->block_type == BLOCK_TYPE_EPB || bh->block_type == BLOCK_TYPE_SPB || bh->block_type == BLOCK_TYPE_SYSTEMD_JOURNAL_EXPORT || bh->block_type == BLOCK_TYPE_SYSDIG_EVENT || bh->block_type == BLOCK_TYPE_SYSDIG_EVENT_V2 || bh->block_type == BLOCK_TYPE_SYSDIG_EVENT_V2_LARGE) {
+ } else if (is_data_block(bh->block_type)) {
/* Count packets for block types that should be dissected, i.e. ones that show up in the packet list. */
- ws_debug("Wrote a pcapng block type %u of length %d captured on interface %u.",
+ ws_debug("Wrote a pcapng block type 0x%04x of length %d captured on interface %u.",
bh->block_type, bh->block_total_length, pcap_src->interface_id);
capture_loop_wrote_one_packet(pcap_src);
} else if (bh->block_type == BLOCK_TYPE_SHB && report_capture_filename) {
diff --git a/editcap.c b/editcap.c
index 8af5f7317b..a7954cff8d 100644
--- a/editcap.c
+++ b/editcap.c
@@ -98,9 +98,9 @@ typedef struct _fd_hash_t {
static fd_hash_t fd_hash[MAX_DUP_DEPTH];
static int dup_window = DEFAULT_DUP_DEPTH;
-static int cur_dup_entry = 0;
+static int cur_dup_entry;
-static guint32 ignored_bytes = 0; /* Used with -I */
+static guint32 ignored_bytes; /* Used with -I */
#define ONE_BILLION 1000000000
@@ -133,36 +133,36 @@ typedef struct _chop_t {
/* Table of user comments */
-GTree *frames_user_comments = NULL;
-GPtrArray *capture_comments = NULL;
+GTree *frames_user_comments;
+GPtrArray *capture_comments;
#define MAX_SELECTIONS 512
static struct select_item selectfrm[MAX_SELECTIONS];
-static guint max_selected = 0;
-static gboolean keep_em = FALSE;
+static guint max_selected;
+static gboolean keep_em;
static int out_file_type_subtype = WTAP_FILE_TYPE_SUBTYPE_UNKNOWN;
static int out_frame_type = -2; /* Leave frame type alone */
-static gboolean verbose = FALSE; /* Not so verbose */
-static struct time_adjustment time_adj = {NSTIME_INIT_ZERO, 0}; /* no adjustment */
-static nstime_t relative_time_window = NSTIME_INIT_ZERO; /* de-dup time window */
+static gboolean verbose; /* Not so verbose */
+static struct time_adjustment time_adj; /* no adjustment */
+static nstime_t relative_time_window; /* de-dup time window */
static double err_prob = -1.0;
-static nstime_t starttime = NSTIME_INIT_ZERO;
-static gboolean have_starttime = FALSE;
-static nstime_t stoptime = NSTIME_INIT_ZERO;
-static gboolean have_stoptime = FALSE;
-static gboolean check_startstop = FALSE;
-static gboolean rem_vlan = FALSE;
-static gboolean dup_detect = FALSE;
-static gboolean dup_detect_by_time = FALSE;
-static gboolean skip_radiotap = FALSE;
-static gboolean discard_all_secrets = FALSE;
-static gboolean discard_cap_comments = FALSE;
-static gboolean set_unused = FALSE;
-static gboolean discard_pkt_comments = FALSE;
-
-static int do_strict_time_adjustment = FALSE;
-static struct time_adjustment strict_time_adj = {NSTIME_INIT_ZERO, 0}; /* strict time adjustment */
-static nstime_t previous_time = NSTIME_INIT_ZERO; /* previous time */
+static nstime_t starttime;
+static gboolean have_starttime;
+static nstime_t stoptime;
+static gboolean have_stoptime;
+static gboolean check_startstop;
+static gboolean rem_vlan;
+static gboolean dup_detect;
+static gboolean dup_detect_by_time;
+static gboolean skip_radiotap;
+static gboolean discard_all_secrets;
+static gboolean discard_cap_comments;
+static gboolean set_unused;
+static gboolean discard_pkt_comments;
+
+static int do_strict_time_adjustment;
+static struct time_adjustment strict_time_adj; /* strict time adjustment */
+static nstime_t previous_time; /* previous time */
static const struct {
const char *str;
@@ -270,7 +270,7 @@ add_selection(char *sel, guint* max_selection)
if (max_selected >= MAX_SELECTIONS) {
/* Let the user know we stopped selecting */
fprintf(stderr, "Out of room for packet selections.\n");
- return(FALSE);
+ return FALSE;
}
if (verbose)
@@ -311,7 +311,7 @@ add_selection(char *sel, guint* max_selection)
}
max_selected++;
- return(TRUE);
+ return TRUE;
}
/* Was the packet selected? */
@@ -1944,6 +1944,10 @@ main(int argc, char *argv[])
}
while (nstime_cmp(&rec->ts, &block_next) > 0) { /* time for the next file */
+ /* We presumably want to write the DSBs from files given
+ * on the command line to every file.
+ */
+ wtap_block_array_ref(params.dsbs_initial);
if (!wtap_dump_close(pdh, NULL, &write_err, &write_err_info)) {
cfile_close_failure_message(filename, write_err,
write_err_info);
@@ -1979,6 +1983,11 @@ main(int argc, char *argv[])
if (split_packet_count != 0) {
/* time for the next file? */
if (written_count > 0 && (written_count % split_packet_count) == 0) {
+
+ /* We presumably want to write the DSBs from files given
+ * on the command line to every file.
+ */
+ wtap_block_array_ref(params.dsbs_initial);
if (!wtap_dump_close(pdh, NULL, &write_err, &write_err_info)) {
cfile_close_failure_message(filename, write_err,
write_err_info);
@@ -2595,7 +2604,7 @@ handle_chopping(chop_t chop, wtap_packet_header *out_phdr,
if (chop.off_begin_pos > 0) {
memmove(*buf + chop.off_begin_pos,
*buf + chop.off_begin_pos + chop.len_begin,
- out_phdr->caplen - chop.len_begin);
+ out_phdr->caplen - (chop.off_begin_pos + chop.len_begin));
} else {
*buf += chop.len_begin;
}
diff --git a/epan/.clang-tidy b/epan/.clang-tidy
new file mode 100644
index 0000000000..47bc73c13f
--- /dev/null
+++ b/epan/.clang-tidy
@@ -0,0 +1 @@
+InheritParentConfig: true
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 444047b499..2ec1e611a5 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -254,6 +254,7 @@ set(LIBWIRESHARK_NONGENERATED_FILES
tvbuff.c
tvbuff_base64.c
tvbuff_brotli.c
+ tvbuff_snappy.c
tvbuff_composite.c
tvbuff_hpackhuff.c
tvbuff_real.c
@@ -378,6 +379,7 @@ target_include_directories(epan
${NGHTTP2_INCLUDE_DIRS}
${NGHTTP3_INCLUDE_DIRS}
${SMI_INCLUDE_DIRS}
+ ${SNAPPY_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS}
${ZSTD_INCLUDE_DIRS}
PRIVATE
diff --git a/epan/addr_resolv.c b/epan/addr_resolv.c
index 8afb73ce3a..d089ffe31d 100644
--- a/epan/addr_resolv.c
+++ b/epan/addr_resolv.c
@@ -207,21 +207,21 @@ typedef struct _serv_port_custom_key {
port_type type;
} serv_port_custom_key_t;
-static wmem_allocator_t *addr_resolv_scope = NULL;
+static wmem_allocator_t *addr_resolv_scope;
// Maps guint -> hashipxnet_t*
-static wmem_map_t *ipxnet_hash_table = NULL;
-static wmem_map_t *ipv4_hash_table = NULL;
-static wmem_map_t *ipv6_hash_table = NULL;
+static wmem_map_t *ipxnet_hash_table;
+static wmem_map_t *ipv4_hash_table;
+static wmem_map_t *ipv6_hash_table;
// Maps guint -> hashvlan_t*
-static wmem_map_t *vlan_hash_table = NULL;
-static wmem_map_t *ss7pc_hash_table = NULL;
+static wmem_map_t *vlan_hash_table;
+static wmem_map_t *ss7pc_hash_table;
// Maps IP address -> manually set hostname.
-static wmem_map_t *manually_resolved_ipv4_list = NULL;
-static wmem_map_t *manually_resolved_ipv6_list = NULL;
+static wmem_map_t *manually_resolved_ipv4_list;
+static wmem_map_t *manually_resolved_ipv6_list;
-static addrinfo_lists_t addrinfo_lists = { NULL, NULL};
+static addrinfo_lists_t addrinfo_lists;
struct cb_serv_data {
gchar *service;
@@ -232,24 +232,24 @@ struct cb_serv_data {
// XXX: Note that hashmanuf_t* only accommodates 24-bit OUIs.
// We might want to store vendor names from MA-M and MA-S to
// present in the Resolved Addresses dialog.
-static wmem_map_t *manuf_hashtable = NULL;
+static wmem_map_t *manuf_hashtable;
// Maps address -> hashwka_t*
-static wmem_map_t *wka_hashtable = NULL;
+static wmem_map_t *wka_hashtable;
// Maps address -> hashether_t*
-static wmem_map_t *eth_hashtable = NULL;
+static wmem_map_t *eth_hashtable;
// Maps guint -> serv_port_t*
-static wmem_map_t *serv_port_hashtable = NULL;
-static wmem_map_t *serv_port_custom_hashtable = NULL;
+static wmem_map_t *serv_port_hashtable;
+static wmem_map_t *serv_port_custom_hashtable;
// Maps enterprise-id -> enterprise-desc (only used for user additions)
-static GHashTable *enterprises_hashtable = NULL;
+static GHashTable *enterprises_hashtable;
static subnet_length_entry_t subnet_length_entries[SUBNETLENGTHSIZE]; /* Ordered array of entries */
-static gboolean have_subnet_entry = FALSE;
+static gboolean have_subnet_entry;
-static gboolean new_resolved_objects = FALSE;
+static gboolean new_resolved_objects;
-static GPtrArray* extra_hosts_files = NULL;
+static GPtrArray* extra_hosts_files;
static hashether_t *add_eth_name(const guint8 *addr, const gchar *name);
static void add_serv_port_cb(const guint32 port, gpointer ptr);
@@ -307,7 +307,7 @@ e_addr_resolve gbl_resolv_flags = {
* "The recommended concurrent query limit is about 32k queries"
*/
static guint name_resolve_concurrency = 500;
-static gboolean resolve_synchronously = FALSE;
+static gboolean resolve_synchronously;
/*
* Global variables (can be changed in GUI sections)
@@ -315,19 +315,19 @@ static gboolean resolve_synchronously = FALSE;
* GUI code to change them.
*/
-gchar *g_ethers_path = NULL; /* global ethers file */
-gchar *g_pethers_path = NULL; /* personal ethers file */
-gchar *g_wka_path = NULL; /* global well-known-addresses file */
-gchar *g_manuf_path = NULL; /* global manuf file */
-gchar *g_pmanuf_path = NULL; /* personal manuf file */
-gchar *g_ipxnets_path = NULL; /* global ipxnets file */
-gchar *g_pipxnets_path = NULL; /* personal ipxnets file */
-gchar *g_services_path = NULL; /* global services file */
-gchar *g_pservices_path = NULL; /* personal services file */
-gchar *g_pvlan_path = NULL; /* personal vlans file */
-gchar *g_ss7pcs_path = NULL; /* personal ss7pcs file */
-gchar *g_enterprises_path = NULL; /* global enterprises file */
-gchar *g_penterprises_path = NULL; /* personal enterprises file */
+gchar *g_ethers_path; /* global ethers file */
+gchar *g_pethers_path; /* personal ethers file */
+gchar *g_wka_path; /* global well-known-addresses file */
+gchar *g_manuf_path; /* global manuf file */
+gchar *g_pmanuf_path; /* personal manuf file */
+gchar *g_ipxnets_path; /* global ipxnets file */
+gchar *g_pipxnets_path; /* personal ipxnets file */
+gchar *g_services_path; /* global services file */
+gchar *g_pservices_path; /* personal services file */
+gchar *g_pvlan_path; /* personal vlans file */
+gchar *g_ss7pcs_path; /* personal ss7pcs file */
+gchar *g_enterprises_path; /* global enterprises file */
+gchar *g_penterprises_path; /* personal enterprises file */
/* first resolving call */
/*
@@ -373,13 +373,13 @@ typedef struct _sync_dns_data
static ares_channel ghba_chan; /* ares_gethostbyaddr -- Usually non-interactive, no timeout */
static ares_channel ghbn_chan; /* ares_gethostbyname -- Usually interactive, timeout */
-static gboolean async_dns_initialized = FALSE;
-static guint async_dns_in_flight = 0;
-static wmem_list_t *async_dns_queue_head = NULL;
+static gboolean async_dns_initialized;
+static guint async_dns_in_flight;
+static wmem_list_t *async_dns_queue_head;
static GMutex async_dns_queue_mtx;
//UAT for providing a list of DNS servers to C-ARES for name resolution
-gboolean use_custom_dns_server_list = FALSE;
+bool use_custom_dns_server_list;
struct dns_server_data {
char *ipaddr;
guint32 udp_port;
@@ -390,9 +390,9 @@ UAT_CSTRING_CB_DEF(dnsserverlist_uats, ipaddr, struct dns_server_data)
UAT_DEC_CB_DEF(dnsserverlist_uats, tcp_port, struct dns_server_data)
UAT_DEC_CB_DEF(dnsserverlist_uats, udp_port, struct dns_server_data)
-static uat_t *dnsserver_uat = NULL;
-static struct dns_server_data *dnsserverlist_uats = NULL;
-static guint ndnsservers = 0;
+static uat_t *dnsserver_uat;
+static struct dns_server_data *dnsserverlist_uats;
+static guint ndnsservers;
static void
dns_server_free_cb(void *data)
@@ -1695,7 +1695,7 @@ parse_ether_line(char *line, ether_t *eth, unsigned int *mask,
} /* parse_ether_line */
-static FILE *eth_p = NULL;
+static FILE *eth_p;
static void
set_ethent(char *path)
@@ -2350,7 +2350,7 @@ parse_ipxnets_line(char *line, ipxnet_t *ipxnet)
} /* parse_ipxnets_line */
-static FILE *ipxnet_p = NULL;
+static FILE *ipxnet_p;
static void
set_ipxnetent(char *path)
@@ -2510,7 +2510,7 @@ parse_vlan_line(char *line, vlan_t *vlan)
} /* parse_vlan_line */
-static FILE *vlan_p = NULL;
+static FILE *vlan_p;
static void
set_vlanent(char *path)
@@ -3496,7 +3496,8 @@ host_name_lookup_init(void)
#ifdef CARES_HAVE_ARES_LIBRARY_INIT
if (ares_library_init(ARES_LIB_INIT_ALL) == ARES_SUCCESS) {
#endif
- if (ares_init(&ghba_chan) == ARES_SUCCESS && ares_init(&ghbn_chan) == ARES_SUCCESS) {
+ /* XXX - Check which options we should set */
+ if (ares_init_options(&ghba_chan, NULL, 0) == ARES_SUCCESS && ares_init_options(&ghbn_chan, NULL, 0) == ARES_SUCCESS) {
async_dns_initialized = TRUE;
c_ares_set_dns_servers();
}
diff --git a/epan/addr_resolv.h b/epan/addr_resolv.h
index dd73046750..8cf4b55943 100644
--- a/epan/addr_resolv.h
+++ b/epan/addr_resolv.h
@@ -46,14 +46,14 @@ extern "C" {
* @brief Flags to control name resolution.
*/
typedef struct _e_addr_resolve {
- gboolean mac_name; /**< Whether to resolve Ethernet MAC to manufacturer names */
- gboolean network_name; /**< Whether to resolve IPv4, IPv6, and IPX addresses into host names */
- gboolean transport_name; /**< Whether to resolve TCP/UDP/DCCP/SCTP ports into service names */
- gboolean dns_pkt_addr_resolution; /**< Whether to resolve addresses using captured DNS packets */
- gboolean use_external_net_name_resolver; /**< Whether to system's configured DNS server to resolve names */
- gboolean vlan_name; /**< Whether to resolve VLAN IDs to names */
- gboolean ss7pc_name; /**< Whether to resolve SS7 Point Codes to names */
- gboolean maxmind_geoip; /**< Whether to lookup geolocation information with mmdbresolve */
+ bool mac_name; /**< Whether to resolve Ethernet MAC to manufacturer names */
+ bool network_name; /**< Whether to resolve IPv4, IPv6, and IPX addresses into host names */
+ bool transport_name; /**< Whether to resolve TCP/UDP/DCCP/SCTP ports into service names */
+ bool dns_pkt_addr_resolution; /**< Whether to resolve addresses using captured DNS packets */
+ bool use_external_net_name_resolver; /**< Whether to system's configured DNS server to resolve names */
+ bool vlan_name; /**< Whether to resolve VLAN IDs to names */
+ bool ss7pc_name; /**< Whether to resolve SS7 Point Codes to names */
+ bool maxmind_geoip; /**< Whether to lookup geolocation information with mmdbresolve */
} e_addr_resolve;
#define ADDR_RESOLV_MACADDR(at) \
diff --git a/epan/app_mem_usage.c b/epan/app_mem_usage.c
index 22108c89b9..a2a7c18c3e 100644
--- a/epan/app_mem_usage.c
+++ b/epan/app_mem_usage.c
@@ -160,7 +160,7 @@ static guint memory_register_num = 2;
static const ws_mem_usage_t *memory_components[MAX_COMPONENTS];
-static guint memory_register_num = 0;
+static guint memory_register_num;
#endif
diff --git a/epan/capture_dissectors.c b/epan/capture_dissectors.c
index 406de69ddc..f3fb1cd1f7 100644
--- a/epan/capture_dissectors.c
+++ b/epan/capture_dissectors.c
@@ -38,9 +38,9 @@ typedef struct capture_dissector_count
guint32 count;
} capture_dissector_count_t;
-static GHashTable *registered_dissectors = NULL;
+static GHashTable *registered_dissectors;
-static GHashTable *capture_dissector_tables = NULL;
+static GHashTable *capture_dissector_tables;
static void
destroy_capture_dissector_table(void *data)
diff --git a/epan/capture_dissectors.h b/epan/capture_dissectors.h
index 21df179810..4274294eb8 100644
--- a/epan/capture_dissectors.h
+++ b/epan/capture_dissectors.h
@@ -35,7 +35,7 @@ typedef struct _capture_packet_info {
typedef struct capture_dissector_handle* capture_dissector_handle_t;
/** callback function definition for capture dissectors */
-typedef gboolean (*capture_dissector_t)(const guint8 *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header);
+typedef bool (*capture_dissector_t)(const guint8 *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header);
/* a protocol uses the function to register a capture sub-dissector table
* @param[in] name Name of capture sub-dissector table.
diff --git a/epan/color_filters.c b/epan/color_filters.c
index be5313419e..d63842aa9d 100644
--- a/epan/color_filters.c
+++ b/epan/color_filters.c
@@ -34,35 +34,35 @@
#include <epan/prefs.h>
#include <epan/epan_dissect.h>
-#define RED_COMPONENT(x) (guint16) (((((x) >> 16) & 0xff) * 65535 / 255))
-#define GREEN_COMPONENT(x) (guint16) (((((x) >> 8) & 0xff) * 65535 / 255))
-#define BLUE_COMPONENT(x) (guint16) ( (((x) & 0xff) * 65535 / 255))
+#define RED_COMPONENT(x) (uint16_t) (((((x) >> 16) & 0xff) * 65535 / 255))
+#define GREEN_COMPONENT(x) (uint16_t) (((((x) >> 8) & 0xff) * 65535 / 255))
+#define BLUE_COMPONENT(x) (uint16_t) ( (((x) & 0xff) * 65535 / 255))
-static int read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_add_cb_func add_cb);
+static int read_filters_file(const char *path, FILE *f, void *user_data, color_filter_add_cb_func add_cb);
/* the currently active filters */
-static GSList *color_filter_list = NULL;
+static GSList *color_filter_list;
/* keep "old" deleted filters in this list until
* the dissection no longer needs them (e.g. file is closed) */
-static GSList *color_filter_deleted_list = NULL;
-static GSList *color_filter_valid_list = NULL;
+static GSList *color_filter_deleted_list;
+static GSList *color_filter_valid_list;
/* Color Filters can en-/disabled. */
-static gboolean filters_enabled = TRUE;
+static bool filters_enabled = true;
/* Remember if there are temporary coloring filters set to
* add sensitivity to the "Reset Coloring 1-10" menu item
*/
-static gboolean tmp_colors_set = FALSE;
+static bool tmp_colors_set;
/* Create a new filter */
color_filter_t *
-color_filter_new(const gchar *name, /* The name of the filter to create */
- const gchar *filter_string, /* The string representing the filter */
+color_filter_new(const char *name, /* The name of the filter to create */
+ const char *filter_string, /* The string representing the filter */
color_t *bg_color, /* The background color */
color_t *fg_color, /* The foreground color */
- gboolean disabled) /* Is the filter disabled? */
+ bool disabled) /* Is the filter disabled? */
{
color_filter_t *colorf;
@@ -79,11 +79,11 @@ color_filter_new(const gchar *name, /* The name of the filter to create
static void
color_filters_add_tmp(GSList **cfl)
{
- gchar *name = NULL;
- guint32 i;
- gchar** bg_colors;
- gchar** fg_colors;
- gulong cval;
+ char *name = NULL;
+ uint32_t i;
+ char** bg_colors;
+ char** fg_colors;
+ unsigned long cval;
color_t bg_color, fg_color;
color_filter_t *colorf;
@@ -104,7 +104,7 @@ color_filters_add_tmp(GSList **cfl)
bg_color.red = RED_COMPONENT(cval);
bg_color.green = GREEN_COMPONENT(cval);
bg_color.blue = BLUE_COMPONENT(cval);
- colorf = color_filter_new(name, NULL, &bg_color, &fg_color, TRUE);
+ colorf = color_filter_new(name, NULL, &bg_color, &fg_color, true);
colorf->filter_text = g_strdup("frame");
*cfl = g_slist_append(*cfl, colorf);
@@ -115,21 +115,21 @@ color_filters_add_tmp(GSList **cfl)
g_strfreev(bg_colors);
}
-static gint
+static int
color_filters_find_by_name_cb(gconstpointer arg1, gconstpointer arg2)
{
const color_filter_t *colorf = (const color_filter_t *)arg1;
- const gchar *name = (const gchar *)arg2;
+ const char *name = (const char *)arg2;
return strcmp(colorf->filter_name, name);
}
/* Get the filter of a temporary color filter */
-gchar*
-color_filters_get_tmp(guint8 filt_nr)
+char*
+color_filters_get_tmp(uint8_t filt_nr)
{
- gchar* name = NULL;
- gchar* filter = NULL;
+ char* name = NULL;
+ char* filter = NULL;
GSList* cfl;
color_filter_t* colorf;
/* Only perform a lookup if the supplied filter number is in the expected range */
@@ -149,15 +149,15 @@ color_filters_get_tmp(guint8 filt_nr)
}
/* Set the filter off a temporary colorfilters and enable it */
-gboolean
-color_filters_set_tmp(guint8 filt_nr, const gchar *filter, gboolean disabled, gchar **err_msg)
+bool
+color_filters_set_tmp(uint8_t filt_nr, const char *filter, bool disabled, char **err_msg)
{
- gchar *name = NULL;
- const gchar *tmpfilter = NULL;
+ char *name = NULL;
+ const char *tmpfilter = NULL;
GSList *cfl;
color_filter_t *colorf;
dfilter_t *compiled_filter;
- guint8 i;
+ uint8_t i;
df_error_t *df_err = NULL;
/* Go through the temporary filters and look for the same filter string.
* If found, clear it so that a filter can be "moved" up and down the list
@@ -185,26 +185,26 @@ color_filters_set_tmp(guint8 filt_nr, const gchar *filter, gboolean disabled, gc
*err_msg = ws_strdup_printf( "Could not compile color filter name: \"%s\" text: \"%s\".\n%s", name, filter, df_err->msg);
df_error_free(&df_err);
g_free(name);
- return FALSE;
+ return false;
} else {
g_free(colorf->filter_text);
dfilter_free(colorf->c_colorfilter);
colorf->filter_text = g_strdup(tmpfilter);
colorf->c_colorfilter = compiled_filter;
- colorf->disabled = ((i!=filt_nr) ? TRUE : disabled);
+ colorf->disabled = ((i!=filt_nr) ? true : disabled);
/* Remember that there are now temporary coloring filters set */
if( filter )
- tmp_colors_set = TRUE;
+ tmp_colors_set = true;
}
}
g_free(name);
}
- return TRUE;
+ return true;
}
const color_filter_t *
-color_filters_tmp_color(guint8 filter_num) {
- gchar *name;
+color_filters_tmp_color(uint8_t filter_num) {
+ char *name;
color_filter_t *colorf = NULL;
GSList *cfl;
@@ -219,18 +219,18 @@ color_filters_tmp_color(guint8 filter_num) {
}
/* Reset the temporary colorfilters */
-gboolean
-color_filters_reset_tmp(gchar **err_msg)
+bool
+color_filters_reset_tmp(char **err_msg)
{
- guint8 i;
+ uint8_t i;
for ( i=1 ; i<=10 ; i++ ) {
- if (!color_filters_set_tmp(i, NULL, TRUE, err_msg))
- return FALSE;
+ if (!color_filters_set_tmp(i, NULL, true, err_msg))
+ return false;
}
/* Remember that there are now *no* temporary coloring filters set */
- tmp_colors_set = FALSE;
- return TRUE;
+ tmp_colors_set = false;
+ return true;
}
/* delete the specified filter */
@@ -245,7 +245,7 @@ color_filter_delete(color_filter_t *colorf)
/* delete the specified filter (called from g_slist_foreach) */
static void
-color_filter_delete_cb(gpointer filter_arg)
+color_filter_delete_cb(void *filter_arg)
{
color_filter_t *colorf = (color_filter_t *)filter_arg;
@@ -278,7 +278,7 @@ color_filter_clone(color_filter_t *colorf)
}
static void
-color_filter_list_clone_cb(gpointer filter_arg, gpointer cfl_arg)
+color_filter_list_clone_cb(void *filter_arg, void *cfl_arg)
{
GSList **cfl = (GSList **)cfl_arg;
color_filter_t *new_colorf;
@@ -298,10 +298,10 @@ color_filter_list_clone(GSList *cfl)
return new_list;
}
-static gboolean
-color_filters_get(gchar** err_msg, color_filter_add_cb_func add_cb)
+static bool
+color_filters_get(char** err_msg, color_filter_add_cb_func add_cb)
{
- gchar *path;
+ char *path;
FILE *f;
int ret;
@@ -314,14 +314,14 @@ color_filters_get(gchar** err_msg, color_filter_add_cb_func add_cb)
* Get the path for the file that would have their filters, and
* try to open it.
*/
- path = get_persconffile_path(COLORFILTERS_FILE_NAME, TRUE);
+ path = get_persconffile_path(COLORFILTERS_FILE_NAME, true);
if ((f = ws_fopen(path, "r")) == NULL) {
if (errno != ENOENT) {
/* Error trying to open the file; give up. */
*err_msg = ws_strdup_printf("Could not open filter file\n\"%s\": %s.", path,
g_strerror(errno));
g_free(path);
- return FALSE;
+ return false;
}
/* They don't have any filters; try to read the global filters */
g_free(path);
@@ -337,18 +337,18 @@ color_filters_get(gchar** err_msg, color_filter_add_cb_func add_cb)
path, g_strerror(errno));
fclose(f);
g_free(path);
- return FALSE;
+ return false;
}
/* Success. */
fclose(f);
g_free(path);
- return TRUE;
+ return true;
}
/* Initialize the filter structures (reading from file) for general running, including app startup */
-gboolean
-color_filters_init(gchar** err_msg, color_filter_add_cb_func add_cb)
+bool
+color_filters_init(char** err_msg, color_filter_add_cb_func add_cb)
{
/* delete all currently existing filters */
color_filter_list_delete(&color_filter_list);
@@ -357,8 +357,8 @@ color_filters_init(gchar** err_msg, color_filter_add_cb_func add_cb)
return color_filters_get(err_msg, add_cb);
}
-gboolean
-color_filters_reload(gchar** err_msg, color_filter_add_cb_func add_cb)
+bool
+color_filters_reload(char** err_msg, color_filter_add_cb_func add_cb)
{
/* "move" old entries to the deleted list
* we must keep them until the dissection no longer needs them */
@@ -378,12 +378,12 @@ color_filters_cleanup(void)
typedef struct _color_clone
{
- gpointer user_data;
+ void *user_data;
color_filter_add_cb_func add_cb;
} color_clone_t;
static void
-color_filters_clone_cb(gpointer filter_arg, gpointer user_data)
+color_filters_clone_cb(void *filter_arg, void *user_data)
{
color_clone_t* clone_data = (color_clone_t*)user_data;
color_filter_t * new_colorf = color_filter_clone((color_filter_t *)filter_arg);
@@ -392,7 +392,7 @@ color_filters_clone_cb(gpointer filter_arg, gpointer user_data)
}
void
-color_filters_clone(gpointer user_data, color_filter_add_cb_func add_cb)
+color_filters_clone(void *user_data, color_filter_add_cb_func add_cb)
{
color_clone_t clone_data;
@@ -403,10 +403,10 @@ color_filters_clone(gpointer user_data, color_filter_add_cb_func add_cb)
static void
-color_filter_compile_cb(gpointer filter_arg, gpointer err)
+color_filter_compile_cb(void *filter_arg, void *err)
{
color_filter_t *colorf = (color_filter_t *)filter_arg;
- gchar **err_msg = (gchar**)err;
+ char **err_msg = (char**)err;
df_error_t *df_err = NULL;
ws_assert(colorf->c_colorfilter == NULL);
@@ -425,10 +425,10 @@ color_filter_compile_cb(gpointer filter_arg, gpointer err)
}
static void
-color_filter_validate_cb(gpointer filter_arg, gpointer err)
+color_filter_validate_cb(void *filter_arg, void *err)
{
color_filter_t *colorf = (color_filter_t *)filter_arg;
- gchar **err_msg = (gchar**)err;
+ char **err_msg = (char**)err;
df_error_t *df_err = NULL;
ws_assert(colorf->c_colorfilter == NULL);
@@ -442,7 +442,7 @@ color_filter_validate_cb(gpointer filter_arg, gpointer err)
df_error_free(&df_err);
/* Disable the color filter in the list of color filters. */
- colorf->disabled = TRUE;
+ colorf->disabled = true;
}
/* XXX: What if the color filter tests "frame.coloring_rule.name" or
@@ -451,10 +451,10 @@ color_filter_validate_cb(gpointer filter_arg, gpointer err)
}
/* apply changes from the edit list */
-gboolean
-color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, gchar** err_msg)
+bool
+color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, char** err_msg)
{
- gboolean ret = TRUE;
+ bool ret = true;
*err_msg = NULL;
@@ -472,7 +472,7 @@ color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, gchar** err_msg)
/* compile all filter */
g_slist_foreach(color_filter_valid_list, color_filter_validate_cb, err_msg);
if (*err_msg != NULL) {
- ret = FALSE;
+ ret = false;
}
/* clone all list entries from tmp/edit to normal list */
@@ -481,19 +481,19 @@ color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, gchar** err_msg)
/* compile all filter */
g_slist_foreach(color_filter_list, color_filter_compile_cb, err_msg);
if (*err_msg != NULL) {
- ret = FALSE;
+ ret = false;
}
return ret;
}
-gboolean
+bool
color_filters_used(void)
{
return color_filter_list != NULL && filters_enabled;
}
-gboolean
+bool
tmp_color_filters_used(void)
{
return tmp_colors_set;
@@ -501,7 +501,7 @@ tmp_color_filters_used(void)
/* prepare the epan_dissect_t for the filter */
static void
-prime_edt(gpointer data, gpointer user_data)
+prime_edt(void *data, void *user_data)
{
color_filter_t *colorf = (color_filter_t *)data;
epan_dissect_t *edt = (epan_dissect_t *)user_data;
@@ -519,7 +519,7 @@ color_filters_prime_edt(epan_dissect_t *edt)
g_slist_foreach(color_filter_list, prime_edt, edt);
}
-static gint
+static int
find_hfid(gconstpointer data, gconstpointer user_data)
{
color_filter_t *colorf = (color_filter_t *)data;
@@ -533,7 +533,7 @@ find_hfid(gconstpointer data, gconstpointer user_data)
return -1;
}
-gboolean
+bool
color_filters_use_hfid(int hfid)
{
GSList *item = NULL;
@@ -542,7 +542,7 @@ color_filters_use_hfid(int hfid)
return (item != NULL);
}
-static gint
+static int
find_proto(gconstpointer data, gconstpointer user_data)
{
color_filter_t *colorf = (color_filter_t *)data;
@@ -556,7 +556,7 @@ find_proto(gconstpointer data, gconstpointer user_data)
return -1;
}
-gboolean
+bool
color_filters_use_proto(int proto_id)
{
GSList *item = NULL;
@@ -594,22 +594,22 @@ color_filters_colorize_packet(epan_dissect_t *edt)
/* XXX - Would it make more sense to use GStrings here instead of reallocing
our buffers? */
static int
-read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_add_cb_func add_cb)
+read_filters_file(const char *path, FILE *f, void *user_data, color_filter_add_cb_func add_cb)
{
#define INIT_BUF_SIZE 128
- gchar *name;
- gchar *filter_exp;
- guint32 name_len = INIT_BUF_SIZE;
- guint32 filter_exp_len = INIT_BUF_SIZE;
- guint32 i = 0;
+ char *name;
+ char *filter_exp;
+ uint32_t name_len = INIT_BUF_SIZE;
+ uint32_t filter_exp_len = INIT_BUF_SIZE;
+ uint32_t i = 0;
int c;
- guint16 fg_r, fg_g, fg_b, bg_r, bg_g, bg_b;
- gboolean disabled = FALSE;
- gboolean skip_end_of_line = FALSE;
+ uint16_t fg_r, fg_g, fg_b, bg_r, bg_g, bg_b;
+ bool disabled = false;
+ bool skip_end_of_line = false;
int ret = 0;
- name = (gchar *)g_malloc(name_len + 1);
- filter_exp = (gchar *)g_malloc(filter_exp_len + 1);
+ name = (char *)g_malloc(name_len + 1);
+ filter_exp = (char *)g_malloc(filter_exp_len + 1);
while (1) {
@@ -619,8 +619,8 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
} while (c != EOF && c != '\n');
if (c == EOF)
break;
- disabled = FALSE;
- skip_end_of_line = FALSE;
+ disabled = false;
+ skip_end_of_line = false;
}
while ((c = ws_getc_unlocked(f)) != EOF && g_ascii_isspace(c)) {
@@ -633,13 +633,13 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
break;
if (c == '!') {
- disabled = TRUE;
+ disabled = true;
continue;
}
/* skip # comments and invalid lines */
if (c != '@') {
- skip_end_of_line = TRUE;
+ skip_end_of_line = true;
continue;
}
@@ -657,7 +657,7 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
if (i >= name_len) {
/* buffer isn't long enough; double its length.*/
name_len *= 2;
- name = (gchar *)g_realloc(name, name_len + 1);
+ name = (char *)g_realloc(name, name_len + 1);
}
name[i++] = c;
}
@@ -666,7 +666,7 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
if (c == EOF) {
break;
} else if (i == 0) {
- skip_end_of_line = TRUE;
+ skip_end_of_line = true;
continue;
}
@@ -679,7 +679,7 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
if (i >= filter_exp_len) {
/* buffer isn't long enough; double its length.*/
filter_exp_len *= 2;
- filter_exp = (gchar *)g_realloc(filter_exp, filter_exp_len + 1);
+ filter_exp = (char *)g_realloc(filter_exp, filter_exp_len + 1);
}
filter_exp[i++] = c;
}
@@ -688,7 +688,7 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
if (c == EOF) {
break;
} else if (i == 0) {
- skip_end_of_line = TRUE;
+ skip_end_of_line = true;
continue;
}
@@ -707,8 +707,8 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
report_warning("Disabling color filter: Could not compile \"%s\" in colorfilters file \"%s\".\n%s", name, path, df_err->msg);
df_error_free(&df_err);
- /* skip_end_of_line = TRUE; */
- disabled = TRUE;
+ /* skip_end_of_line = true; */
+ disabled = true;
}
fg_color.red = fg_r;
@@ -735,7 +735,7 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
}
} /* if sscanf */
- skip_end_of_line = TRUE;
+ skip_end_of_line = true;
}
if (ferror(f))
@@ -747,10 +747,10 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
}
/* read filters from the filter file */
-gboolean
-color_filters_read_globals(gpointer user_data, gchar** err_msg, color_filter_add_cb_func add_cb)
+bool
+color_filters_read_globals(void *user_data, char** err_msg, color_filter_add_cb_func add_cb)
{
- gchar *path;
+ char *path;
FILE *f;
int ret;
@@ -767,7 +767,7 @@ color_filters_read_globals(gpointer user_data, gchar** err_msg, color_filter_add
*err_msg = ws_strdup_printf("Could not open global filter file\n\"%s\": %s.", path,
g_strerror(errno));
g_free(path);
- return FALSE;
+ return false;
}
/*
@@ -775,7 +775,7 @@ color_filters_read_globals(gpointer user_data, gchar** err_msg, color_filter_add
* that file existing bug being empty, and say we succeeded.
*/
g_free(path);
- return TRUE;
+ return true;
}
ret = read_filters_file(path, f, user_data, add_cb);
@@ -784,17 +784,17 @@ color_filters_read_globals(gpointer user_data, gchar** err_msg, color_filter_add
path, g_strerror(errno));
fclose(f);
g_free(path);
- return FALSE;
+ return false;
}
fclose(f);
g_free(path);
- return TRUE;
+ return true;
}
/* read filters from some other filter file (import) */
-gboolean
-color_filters_import(const gchar *path, gpointer user_data, gchar **err_msg, color_filter_add_cb_func add_cb)
+bool
+color_filters_import(const char *path, void *user_data, char **err_msg, color_filter_add_cb_func add_cb)
{
FILE *f;
int ret;
@@ -802,7 +802,7 @@ color_filters_import(const gchar *path, gpointer user_data, gchar **err_msg, col
if ((f = ws_fopen(path, "r")) == NULL) {
*err_msg = ws_strdup_printf("Could not open filter file\n%s\nfor reading: %s.",
path, g_strerror(errno));
- return FALSE;
+ return false;
}
ret = read_filters_file(path, f, user_data, add_cb);
@@ -810,22 +810,22 @@ color_filters_import(const gchar *path, gpointer user_data, gchar **err_msg, col
*err_msg = ws_strdup_printf("Error reading filter file\n\"%s\": %s.",
path, g_strerror(errno));
fclose(f);
- return FALSE;
+ return false;
}
fclose(f);
- return TRUE;
+ return true;
}
struct write_filter_data
{
FILE *f;
- gboolean only_selected;
+ bool only_selected;
};
/* save a single filter */
static void
-write_filter(gpointer filter_arg, gpointer data_arg)
+write_filter(void *filter_arg, void *data_arg)
{
struct write_filter_data *data = (struct write_filter_data *)data_arg;
color_filter_t *colorf = (color_filter_t *)filter_arg;
@@ -847,8 +847,8 @@ write_filter(gpointer filter_arg, gpointer data_arg)
}
/* save filters in a filter file */
-static gboolean
-write_filters_file(GSList *cfl, FILE *f, gboolean only_selected)
+static bool
+write_filters_file(GSList *cfl, FILE *f, bool only_selected)
{
struct write_filter_data data;
@@ -857,15 +857,15 @@ write_filters_file(GSList *cfl, FILE *f, gboolean only_selected)
fprintf(f,"# This file was created by %s. Edit with care.\n", get_configuration_namespace());
g_slist_foreach(cfl, write_filter, &data);
- return TRUE;
+ return true;
}
/* save filters in users filter file */
-gboolean
-color_filters_write(GSList *cfl, gchar** err_msg)
+bool
+color_filters_write(GSList *cfl, char** err_msg)
{
- gchar *pf_dir_path;
- gchar *path;
+ char *pf_dir_path;
+ char *path;
FILE *f;
/* Create the directory that holds personal configuration files,
@@ -874,36 +874,36 @@ color_filters_write(GSList *cfl, gchar** err_msg)
*err_msg = ws_strdup_printf("Can't create directory\n\"%s\"\nfor color files: %s.",
pf_dir_path, g_strerror(errno));
g_free(pf_dir_path);
- return FALSE;
+ return false;
}
- path = get_persconffile_path(COLORFILTERS_FILE_NAME, TRUE);
+ path = get_persconffile_path(COLORFILTERS_FILE_NAME, true);
if ((f = ws_fopen(path, "w+")) == NULL) {
*err_msg = ws_strdup_printf("Could not open\n%s\nfor writing: %s.",
path, g_strerror(errno));
g_free(path);
- return FALSE;
+ return false;
}
g_free(path);
- write_filters_file(cfl, f, FALSE);
+ write_filters_file(cfl, f, false);
fclose(f);
- return TRUE;
+ return true;
}
/* save filters in some other filter file (export) */
-gboolean
-color_filters_export(const gchar *path, GSList *cfl, gboolean only_marked, gchar** err_msg)
+bool
+color_filters_export(const char *path, GSList *cfl, bool only_marked, char** err_msg)
{
FILE *f;
if ((f = ws_fopen(path, "w+")) == NULL) {
*err_msg = ws_strdup_printf("Could not open\n%s\nfor writing: %s.",
path, g_strerror(errno));
- return FALSE;
+ return false;
}
write_filters_file(cfl, f, only_marked);
fclose(f);
- return TRUE;
+ return true;
}
/*
diff --git a/epan/color_filters.h b/epan/color_filters.h
index b66edfda16..f5a03a4a2d 100644
--- a/epan/color_filters.h
+++ b/epan/color_filters.h
@@ -10,6 +10,8 @@
#ifndef __COLOR_FILTERS_H__
#define __COLOR_FILTERS_H__
+#include <glib.h>
+
#include "ws_symbol_export.h"
#include <wsutil/color.h>
@@ -29,11 +31,11 @@ struct epan_dissect;
/* Data for a color filter. */
typedef struct _color_filter {
- gchar *filter_name; /* name of the filter */
- gchar *filter_text; /* text of the filter expression */
+ char *filter_name; /* name of the filter */
+ char *filter_text; /* text of the filter expression */
color_t bg_color; /* background color for packets that match */
color_t fg_color; /* foreground color for packets that match */
- gboolean disabled; /* set if the filter is disabled */
+ bool disabled; /* set if the filter is disabled */
/* only used inside of color_filters.c */
struct epan_dfilter *c_colorfilter; /* compiled filter expression */
@@ -47,36 +49,36 @@ typedef struct _color_filter {
* @param colorf the new color filter
* @param user_data from caller
*/
-typedef void (*color_filter_add_cb_func)(color_filter_t *colorf, gpointer user_data);
+typedef void (*color_filter_add_cb_func)(color_filter_t *colorf, void *user_data);
/** Init the color filters (incl. initial read from file). */
-WS_DLL_PUBLIC gboolean color_filters_init(gchar** err_msg, color_filter_add_cb_func add_cb);
+WS_DLL_PUBLIC bool color_filters_init(char** err_msg, color_filter_add_cb_func add_cb);
/** Reload the color filters */
-WS_DLL_PUBLIC gboolean color_filters_reload(gchar** err_msg, color_filter_add_cb_func add_cb);
+WS_DLL_PUBLIC bool color_filters_reload(char** err_msg, color_filter_add_cb_func add_cb);
/** Cleanup remaining color filter zombies */
WS_DLL_PUBLIC void color_filters_cleanup(void);
/** Color filters currently used?
*
- * @return TRUE, if filters are used
+ * @return true, if filters are used
*/
-WS_DLL_PUBLIC gboolean color_filters_used(void);
+WS_DLL_PUBLIC bool color_filters_used(void);
/** Are there any temporary coloring filters used?
*
- * @return TRUE, if temporary coloring filters are used
+ * @return true, if temporary coloring filters are used
*/
-WS_DLL_PUBLIC gboolean tmp_color_filters_used(void);
+WS_DLL_PUBLIC bool tmp_color_filters_used(void);
/** Get the filter string of a temporary color filter
*
* @param filt_nr a number 1-10 pointing to a temporary color
* @return the current filter string which is assigned to the specified slot, or NULL if not available.
*/
-WS_DLL_PUBLIC gchar*
-color_filters_get_tmp(guint8 filt_nr);
+WS_DLL_PUBLIC char*
+color_filters_get_tmp(uint8_t filt_nr);
/** Set the filter string of a temporary color filter
*
@@ -85,8 +87,8 @@ color_filters_get_tmp(guint8 filt_nr);
* @param disabled whether the filter-rule should be disabled
* @param err_msg a string with error message
*/
-WS_DLL_PUBLIC gboolean
-color_filters_set_tmp(guint8 filt_nr, const gchar *filter, gboolean disabled, gchar **err_msg);
+WS_DLL_PUBLIC bool
+color_filters_set_tmp(uint8_t filt_nr, const char *filter, bool disabled, char **err_msg);
/** Get a temporary color filter.
*
@@ -94,13 +96,13 @@ color_filters_set_tmp(guint8 filt_nr, const gchar *filter, gboolean disabled, gc
* @return The corresponding color or NULL.
*/
WS_DLL_PUBLIC const color_filter_t *
-color_filters_tmp_color(guint8 filter_num);
+color_filters_tmp_color(uint8_t filter_num);
/** Reset the temporary color filters
*
*/
-WS_DLL_PUBLIC gboolean
-color_filters_reset_tmp(gchar **err_msg);
+WS_DLL_PUBLIC bool
+color_filters_reset_tmp(char **err_msg);
/* Prime the epan_dissect_t with all the compiled
* color filters of the current filter list.
@@ -113,18 +115,18 @@ WS_DLL_PUBLIC void color_filters_prime_edt(struct epan_dissect *edt);
* filter list depend on a given header field.
*
* @param hfid The header field ID to check
- * @return TRUE if the color filter contains the header field.
+ * @return true if the color filter contains the header field.
*/
-WS_DLL_PUBLIC gboolean
+WS_DLL_PUBLIC bool
color_filters_use_hfid(int hfid);
/** Check if any of the enabled compiled color filters of the current
* filter list depend on any field in a given protocol.
*
* @param proto_id The protocol ID to check
- * @return TRUE if the color filter contains a field from the protocol
+ * @return true if the color filter contains a field from the protocol
*/
-WS_DLL_PUBLIC gboolean
+WS_DLL_PUBLIC bool
color_filters_use_proto(int proto_id);
/** Colorize a specific packet.
@@ -140,7 +142,7 @@ color_filters_colorize_packet(struct epan_dissect *edt);
* @param user_data will be returned by each call to color_filter_add_cb()
* @param add_cb the callback function to add color filter
*/
-WS_DLL_PUBLIC void color_filters_clone(gpointer user_data, color_filter_add_cb_func add_cb);
+WS_DLL_PUBLIC void color_filters_clone(void *user_data, color_filter_add_cb_func add_cb);
/** Load filters (import) from some other filter file.
*
@@ -148,18 +150,18 @@ WS_DLL_PUBLIC void color_filters_clone(gpointer user_data, color_filter_add_cb_f
* @param user_data will be returned by each call to color_filter_add_cb()
* @param err_msg a string with error message
* @param add_cb the callback function to add color filter
- * @return TRUE, if read succeeded
+ * @return true, if read succeeded
*/
-WS_DLL_PUBLIC gboolean color_filters_import(const gchar *path, gpointer user_data, gchar **err_msg, color_filter_add_cb_func add_cb);
+WS_DLL_PUBLIC bool color_filters_import(const char *path, void *user_data, char **err_msg, color_filter_add_cb_func add_cb);
/** Read filters from the global filter file (not the users file).
*
* @param user_data will be returned by each call to color_filter_add_cb()
* @param err_msg a string with error message
* @param add_cb the callback function to add color filter
- * @return TRUE, if read succeeded
+ * @return true, if read succeeded
*/
-WS_DLL_PUBLIC gboolean color_filters_read_globals(gpointer user_data, gchar** err_msg, color_filter_add_cb_func add_cb);
+WS_DLL_PUBLIC bool color_filters_read_globals(void *user_data, char** err_msg, color_filter_add_cb_func add_cb);
/** Apply a changed filter list.
@@ -168,25 +170,25 @@ WS_DLL_PUBLIC gboolean color_filters_read_globals(gpointer user_data, gchar** er
* @param edit_cfl the edited permanent color filter list to apply
* @param err_msg a string with error message
*/
-WS_DLL_PUBLIC gboolean color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, gchar** err_msg);
+WS_DLL_PUBLIC bool color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, char** err_msg);
/** Save filters in users filter file.
*
* @param cfl the filter list to write
* @param err_msg a string with error message
- * @return TRUE if write succeeded
+ * @return true if write succeeded
*/
-WS_DLL_PUBLIC gboolean color_filters_write(GSList *cfl, gchar** err_msg);
+WS_DLL_PUBLIC bool color_filters_write(GSList *cfl, char** err_msg);
/** Save filters (export) to some other filter file.
*
* @param path the path to the filter file
* @param cfl the filter list to write
- * @param only_selected TRUE if only the selected filters should be saved
+ * @param only_selected true if only the selected filters should be saved
* @param err_msg a string with error message
- * @return TRUE, if write succeeded
+ * @return true, if write succeeded
*/
-WS_DLL_PUBLIC gboolean color_filters_export(const gchar *path, GSList *cfl, gboolean only_selected, gchar** err_msg);
+WS_DLL_PUBLIC bool color_filters_export(const char *path, GSList *cfl, bool only_selected, char** err_msg);
/** Create a new color filter (g_malloc'ed).
*
@@ -194,12 +196,12 @@ WS_DLL_PUBLIC gboolean color_filters_export(const gchar *path, GSList *cfl, gboo
* @param filter_string the filter string
* @param bg_color background color
* @param fg_color foreground color
- * @param disabled gboolean
+ * @param disabled bool
* @return the new color filter
*/
WS_DLL_PUBLIC color_filter_t *color_filter_new(
- const gchar *name, const gchar *filter_string,
- color_t *bg_color, color_t *fg_color, gboolean disabled);
+ const char *name, const char *filter_string,
+ color_t *bg_color, color_t *fg_color, bool disabled);
/** Delete a single color filter (g_free'ed).
*
diff --git a/epan/column-info.h b/epan/column-info.h
index ea05ee2bf5..20317dad89 100644
--- a/epan/column-info.h
+++ b/epan/column-info.h
@@ -30,8 +30,8 @@ typedef struct _proto_node proto_tree;
/** Column expression */
typedef struct {
- const gchar **col_expr; /**< Filter expression */
- gchar **col_expr_val; /**< Value for filter expression */
+ const char **col_expr; /**< Filter expression */
+ char **col_expr_val; /**< Value for filter expression */
} col_expr_t;
/** Custom column filter expression information used in the GSList below.
@@ -45,36 +45,36 @@ typedef struct {
/** Individual column info */
typedef struct {
- gint col_fmt; /**< Format of column */
- gboolean *fmt_matx; /**< Specifies which formats apply to a column */
- gchar *col_title; /**< Column titles */
- gchar *col_custom_fields; /**< Custom column fields */
- gint col_custom_occurrence;/**< Custom column field occurrence */
+ int col_fmt; /**< Format of column */
+ bool *fmt_matx; /**< Specifies which formats apply to a column */
+ char *col_title; /**< Column titles */
+ char *col_custom_fields; /**< Custom column fields */
+ int col_custom_occurrence;/**< Custom column field occurrence */
GSList *col_custom_fields_ids;/**< Custom column fields id */
struct epan_dfilter *col_custom_dfilter; /**< Compiled custom column field */
- const gchar *col_data; /**< Column data */
- gchar *col_buf; /**< Buffer into which to copy data for column */
+ const char *col_data; /**< Column data */
+ char *col_buf; /**< Buffer into which to copy data for column */
int col_fence; /**< Stuff in column buffer before this index is immutable */
- gboolean writable; /**< writable or not */
+ bool writable; /**< writable or not */
int hf_id;
} col_item_t;
/** Column info */
struct epan_column_info {
const struct epan_session *epan;
- gint num_cols; /**< Number of columns */
+ int num_cols; /**< Number of columns */
col_item_t *columns; /**< All column data */
- gint *col_first; /**< First column number with a given format */
- gint *col_last; /**< Last column number with a given format */
+ int *col_first; /**< First column number with a given format */
+ int *col_last; /**< Last column number with a given format */
col_expr_t col_expr; /**< Column expressions and values */
- gboolean writable; /**< writable or not @todo Are we still writing to the columns? */
+ bool writable; /**< writable or not @todo Are we still writing to the columns? */
GRegex *prime_regex; /**< Used to prime custom columns */
};
/** Allocate all the data structures for constructing column data, given
* the number of columns.
*/
-WS_DLL_PUBLIC void col_setup(column_info *cinfo, const gint num_cols);
+WS_DLL_PUBLIC void col_setup(column_info *cinfo, const int num_cols);
/** Cleanup all the data structures for constructing column data;
* undoes the alocations that col_setup() does.
@@ -87,21 +87,21 @@ extern void col_init(column_info *cinfo, const struct epan_session *epan);
/** Fill in all columns of the given packet which are based on values from frame_data.
*/
-WS_DLL_PUBLIC void col_fill_in_frame_data(const frame_data *fd, column_info *cinfo, const gint col, gboolean const fill_col_exprs);
+WS_DLL_PUBLIC void col_fill_in_frame_data(const frame_data *fd, column_info *cinfo, const int col, bool const fill_col_exprs);
/** Fill in all (non-custom) columns of the given packet.
*/
-WS_DLL_PUBLIC void col_fill_in(packet_info *pinfo, const gboolean fill_col_exprs, const gboolean fill_fd_colums);
+WS_DLL_PUBLIC void col_fill_in(packet_info *pinfo, const bool fill_col_exprs, const bool fill_fd_colums);
/** Fill in columns if we got an error reading the packet.
* We set most columns to "???", and set the Info column to an error
* message.
*/
-WS_DLL_PUBLIC void col_fill_in_error(column_info *cinfo, frame_data *fdata, const gboolean fill_col_exprs, const gboolean fill_fd_colums);
+WS_DLL_PUBLIC void col_fill_in_error(column_info *cinfo, frame_data *fdata, const bool fill_col_exprs, const bool fill_fd_colums);
/** Check to see if our column data has changed, e.g. we have new request/response info.
*/
-WS_DLL_PUBLIC gboolean col_data_changed(void);
+WS_DLL_PUBLIC bool col_data_changed(void);
void col_custom_set_edt(struct epan_dissect *edt, column_info *cinfo);
@@ -111,19 +111,19 @@ void col_custom_prime_edt(struct epan_dissect *edt, column_info *cinfo);
/** Get a filter expression for a custom column. This string must be g_free'd.
*/
WS_DLL_PUBLIC
-char* col_custom_get_filter(struct epan_dissect *edt, column_info *cinfo, const gint col);
+char* col_custom_get_filter(struct epan_dissect *edt, column_info *cinfo, const int col);
WS_DLL_PUBLIC
-gboolean have_custom_cols(column_info *cinfo);
+bool have_custom_cols(column_info *cinfo);
WS_DLL_PUBLIC
-gboolean have_field_extractors(void);
+bool have_field_extractors(void);
WS_DLL_PUBLIC
-gboolean col_has_time_fmt(column_info *cinfo, const gint col);
+bool col_has_time_fmt(column_info *cinfo, const int col);
WS_DLL_PUBLIC
-gboolean col_based_on_frame_data(column_info *cinfo, const gint col);
+bool col_based_on_frame_data(column_info *cinfo, const int col);
void
col_register_protocol(void);
diff --git a/epan/column-utils.c b/epan/column-utils.c
index 7befdd4492..3a7052dfde 100644
--- a/epan/column-utils.c
+++ b/epan/column-utils.c
@@ -50,15 +50,15 @@
static char *col_decimal_point;
/* Used to indicate updated column information, e.g. a new request/response. */
-static gboolean col_data_changed_;
+static bool col_data_changed_;
static int proto_cols;
-static gint ett_cols;
+static int ett_cols;
/* Allocate all the data structures for constructing column data, given
the number of columns. */
void
-col_setup(column_info *cinfo, const gint num_cols)
+col_setup(column_info *cinfo, const int num_cols)
{
int i;
@@ -70,8 +70,8 @@ col_setup(column_info *cinfo, const gint num_cols)
for (i = 0; i < num_cols; i++) {
cinfo->columns[i].col_custom_fields_ids = NULL;
}
- cinfo->col_expr.col_expr = g_new(const gchar*, num_cols + 1);
- cinfo->col_expr.col_expr_val = g_new(gchar*, num_cols + 1);
+ cinfo->col_expr.col_expr = g_new(const char*, num_cols + 1);
+ cinfo->col_expr.col_expr_val = g_new(char*, num_cols + 1);
for (i = 0; i < NUM_COL_FMTS; i++) {
cinfo->col_first[i] = -1;
@@ -133,7 +133,7 @@ col_cleanup(column_info *cinfo)
* pointer to const XXX", i.e. that it's a pointer to a pointer to
* something that's "const"ant. Cast its bogus complaints away.
*/
- g_free((gchar **)cinfo->col_expr.col_expr);
+ g_free((char **)cinfo->col_expr.col_expr);
g_free(cinfo->col_expr.col_expr_val);
if (cinfo->prime_regex)
g_regex_unref(cinfo->prime_regex);
@@ -154,26 +154,26 @@ col_init(column_info *cinfo, const struct epan_session *epan)
col_item->col_buf[0] = '\0';
col_item->col_data = col_item->col_buf;
col_item->col_fence = 0;
- col_item->writable = TRUE;
+ col_item->writable = true;
cinfo->col_expr.col_expr[i] = "";
cinfo->col_expr.col_expr_val[i][0] = '\0';
}
- cinfo->writable = TRUE;
+ cinfo->writable = true;
cinfo->epan = epan;
}
-gboolean
-col_get_writable(column_info *cinfo, const gint col)
+bool
+col_get_writable(column_info *cinfo, const int col)
{
int i;
col_item_t* col_item;
if (cinfo == NULL)
- return FALSE;
+ return false;
/* "global" (not) writeability will always override
an individual column */
- if ((col == -1) || (cinfo->writable == FALSE))
+ if ((col == -1) || (cinfo->writable == false))
return cinfo->writable;
if (cinfo->col_first[col] >= 0) {
@@ -184,11 +184,11 @@ col_get_writable(column_info *cinfo, const gint col)
}
}
}
- return FALSE;
+ return false;
}
void
-col_set_writable(column_info *cinfo, const gint col, const gboolean writable)
+col_set_writable(column_info *cinfo, const int col, const bool writable)
{
int i;
col_item_t* col_item;
@@ -216,7 +216,7 @@ col_set_writable(column_info *cinfo, const gint col, const gboolean writable)
/* Sets the fence for a column to be at the end of the column. */
void
-col_set_fence(column_info *cinfo, const gint el)
+col_set_fence(column_info *cinfo, const int el)
{
int i;
col_item_t* col_item;
@@ -234,7 +234,7 @@ col_set_fence(column_info *cinfo, const gint el)
/* Clear the fence for a column. */
void
-col_clear_fence(column_info *cinfo, const gint el)
+col_clear_fence(column_info *cinfo, const int el)
{
int i;
col_item_t* col_item;
@@ -251,11 +251,11 @@ col_clear_fence(column_info *cinfo, const gint el)
}
/* Gets the text of a column */
-const gchar *
-col_get_text(column_info *cinfo, const gint el)
+const char *
+col_get_text(column_info *cinfo, const int el)
{
int i;
- const gchar* text = NULL;
+ const char* text = NULL;
col_item_t* col_item;
if (!(cinfo && (cinfo)->col_first[el] >= 0)) {
@@ -279,7 +279,7 @@ col_get_text(column_info *cinfo, const gint el)
later append to it, as the later append will cause a string
copy to be done. */
void
-col_clear(column_info *cinfo, const gint el)
+col_clear(column_info *cinfo, const int el)
{
int i;
col_item_t* col_item;
@@ -337,19 +337,19 @@ col_clear(column_info *cinfo, const gint el)
/* The same as CHECK_COL(), but without the check to see if the column is writable. */
#define HAVE_CUSTOM_COLS(cinfo) ((cinfo) && (cinfo)->col_first[COL_CUSTOM] >= 0)
-gboolean
+bool
have_custom_cols(column_info *cinfo)
{
return HAVE_CUSTOM_COLS(cinfo);
}
-gboolean
+bool
have_field_extractors(void)
{
#ifdef HAVE_LUA
return wslua_has_field_extractors();
#else
- return FALSE;
+ return false;
#endif
}
@@ -427,7 +427,7 @@ col_custom_prime_edt(epan_dissect_t *edt, column_info *cinfo)
}
char*
-col_custom_get_filter(epan_dissect_t *edt, column_info *cinfo, const gint col)
+col_custom_get_filter(epan_dissect_t *edt, column_info *cinfo, const int col)
{
col_item_t* col_item;
@@ -446,12 +446,12 @@ col_custom_get_filter(epan_dissect_t *edt, column_info *cinfo, const gint col)
}
void
-col_append_lstr(column_info *cinfo, const gint el, const gchar *str1, ...)
+col_append_lstr(column_info *cinfo, const int el, const char *str1, ...)
{
va_list ap;
size_t pos, max_len;
int i;
- const gchar *str;
+ const char *str;
col_item_t* col_item;
if (!CHECK_COL(cinfo, el))
@@ -490,7 +490,7 @@ col_append_lstr(column_info *cinfo, const gint el, const gchar *str1, ...)
}
void
-col_append_str_uint(column_info *cinfo, const gint col, const gchar *abbrev, guint32 val, const gchar *sep)
+col_append_str_uint(column_info *cinfo, const int col, const char *abbrev, uint32_t val, const char *sep)
{
char buf[16];
@@ -499,7 +499,7 @@ col_append_str_uint(column_info *cinfo, const gint col, const gchar *abbrev, gui
}
static inline void
-col_snprint_port(gchar *buf, size_t buf_siz, port_type typ, guint16 val)
+col_snprint_port(char *buf, size_t buf_siz, port_type typ, uint16_t val)
{
const char *str;
@@ -512,7 +512,7 @@ col_snprint_port(gchar *buf, size_t buf_siz, port_type typ, guint16 val)
}
void
-col_append_ports(column_info *cinfo, const gint col, port_type typ, guint16 src, guint16 dst)
+col_append_ports(column_info *cinfo, const int col, port_type typ, uint16_t src, uint16_t dst)
{
char buf_src[32], buf_dst[32];
@@ -522,11 +522,11 @@ col_append_ports(column_info *cinfo, const gint col, port_type typ, guint16 src,
}
void
-col_append_frame_number(packet_info *pinfo, const gint col, const gchar *fmt_str, guint frame_num)
+col_append_frame_number(packet_info *pinfo, const int col, const char *fmt_str, unsigned frame_num)
{
col_append_fstr(pinfo->cinfo, col, fmt_str, frame_num);
if (!pinfo->fd->visited) {
- col_data_changed_ = TRUE;
+ col_data_changed_ = true;
}
}
@@ -581,7 +581,7 @@ col_do_append_fstr(column_info *cinfo, const int el, const char *separator, cons
/* Appends a vararg list to a packet info string. */
void
-col_append_fstr(column_info *cinfo, const gint el, const gchar *format, ...)
+col_append_fstr(column_info *cinfo, const int el, const char *format, ...)
{
va_list ap;
@@ -597,8 +597,8 @@ col_append_fstr(column_info *cinfo, const gint el, const gchar *format, ...)
* Prefixes it with the given separator if the column is not empty.
*/
void
-col_append_sep_fstr(column_info *cinfo, const gint el, const gchar *separator,
- const gchar *format, ...)
+col_append_sep_fstr(column_info *cinfo, const int el, const char *separator,
+ const char *format, ...)
{
va_list ap;
@@ -615,7 +615,7 @@ col_append_sep_fstr(column_info *cinfo, const gint el, const gchar *separator,
/* Prepends a vararg list to a packet info string. */
void
-col_prepend_fstr(column_info *cinfo, const gint el, const gchar *format, ...)
+col_prepend_fstr(column_info *cinfo, const int el, const char *format, ...)
{
va_list ap;
int i;
@@ -667,7 +667,7 @@ col_prepend_fstr(column_info *cinfo, const gint el, const gchar *format, ...)
}
}
void
-col_prepend_fence_fstr(column_info *cinfo, const gint el, const gchar *format, ...)
+col_prepend_fence_fstr(column_info *cinfo, const int el, const char *format, ...)
{
va_list ap;
int i;
@@ -725,7 +725,7 @@ col_prepend_fence_fstr(column_info *cinfo, const gint el, const gchar *format, .
/* Use this if "str" points to something that won't stay around (and
must thus be copied). */
void
-col_add_str(column_info *cinfo, const gint el, const gchar* str)
+col_add_str(column_info *cinfo, const int el, const char* str)
{
int i;
size_t max_len;
@@ -763,7 +763,7 @@ col_add_str(column_info *cinfo, const gint el, const gchar* str)
/* Use this if "str" points to something that will stay around (and thus
needn't be copied). */
void
-col_set_str(column_info *cinfo, const gint el, const gchar* str)
+col_set_str(column_info *cinfo, const int el, const char* str)
{
int i;
size_t max_len;
@@ -802,13 +802,13 @@ col_set_str(column_info *cinfo, const gint el, const gchar* str)
}
void
-col_add_lstr(column_info *cinfo, const gint el, const gchar *str1, ...)
+col_add_lstr(column_info *cinfo, const int el, const char *str1, ...)
{
va_list ap;
int i;
- gsize pos;
- gsize max_len;
- const gchar *str;
+ size_t pos;
+ size_t max_len;
+ const char *str;
col_item_t* col_item;
if (!CHECK_COL(cinfo, el))
@@ -853,7 +853,7 @@ col_add_lstr(column_info *cinfo, const gint el, const gchar *str1, ...)
/* Adds a vararg list to a packet info string. */
void
-col_add_fstr(column_info *cinfo, const gint el, const gchar *format, ...)
+col_add_fstr(column_info *cinfo, const int el, const char *format, ...)
{
va_list ap;
int i, pos;
@@ -897,8 +897,8 @@ col_add_fstr(column_info *cinfo, const gint el, const gchar *format, ...)
}
static void
-col_do_append_str(column_info *cinfo, const gint el, const gchar* separator,
- const gchar* str)
+col_do_append_str(column_info *cinfo, const int el, const char* separator,
+ const char* str)
{
int i;
size_t len, max_len;
@@ -934,7 +934,7 @@ col_do_append_str(column_info *cinfo, const gint el, const gchar* separator,
}
void
-col_append_str(column_info *cinfo, const gint el, const gchar* str)
+col_append_str(column_info *cinfo, const int el, const char* str)
{
if (!CHECK_COL(cinfo, el))
return;
@@ -943,8 +943,8 @@ col_append_str(column_info *cinfo, const gint el, const gchar* str)
}
void
-col_append_sep_str(column_info *cinfo, const gint el, const gchar* separator,
- const gchar* str)
+col_append_sep_str(column_info *cinfo, const int el, const char* separator,
+ const char* str)
{
if (!CHECK_COL(cinfo, el))
return;
@@ -956,8 +956,8 @@ col_append_sep_str(column_info *cinfo, const gint el, const gchar* separator,
}
/* --------------------------------- */
-gboolean
-col_has_time_fmt(column_info *cinfo, const gint col)
+bool
+col_has_time_fmt(column_info *cinfo, const int col)
{
col_item_t* col_item = &cinfo->columns[col];
return ((col_item->fmt_matx[COL_CLS_TIME]) ||
@@ -1017,7 +1017,7 @@ get_default_timestamp_precision(void)
}
static void
-set_abs_ymd_time(const frame_data *fd, gchar *buf, char *decimal_point, gboolean local)
+set_abs_ymd_time(const frame_data *fd, char *buf, char *decimal_point, bool local)
{
if (!fd->has_ts) {
buf[0] = '\0';
@@ -1029,7 +1029,7 @@ set_abs_ymd_time(const frame_data *fd, gchar *buf, char *decimal_point, gboolean
static void
col_set_abs_ymd_time(const frame_data *fd, column_info *cinfo, const int col)
{
- set_abs_ymd_time(fd, cinfo->columns[col].col_buf, col_decimal_point, TRUE);
+ set_abs_ymd_time(fd, cinfo->columns[col].col_buf, col_decimal_point, true);
cinfo->col_expr.col_expr[col] = "frame.time";
(void) g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->columns[col].col_buf,COL_MAX_LEN);
@@ -1039,7 +1039,7 @@ col_set_abs_ymd_time(const frame_data *fd, column_info *cinfo, const int col)
static void
col_set_utc_ymd_time(const frame_data *fd, column_info *cinfo, const int col)
{
- set_abs_ymd_time(fd, cinfo->columns[col].col_buf, col_decimal_point, FALSE);
+ set_abs_ymd_time(fd, cinfo->columns[col].col_buf, col_decimal_point, false);
cinfo->col_expr.col_expr[col] = "frame.time";
(void) g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->columns[col].col_buf,COL_MAX_LEN);
@@ -1047,7 +1047,7 @@ col_set_utc_ymd_time(const frame_data *fd, column_info *cinfo, const int col)
}
static void
-set_abs_ydoy_time(const frame_data *fd, gchar *buf, char *decimal_point, gboolean local)
+set_abs_ydoy_time(const frame_data *fd, char *buf, char *decimal_point, bool local)
{
struct tm tm, *tmp;
char *ptr;
@@ -1101,14 +1101,14 @@ set_abs_ydoy_time(const frame_data *fd, gchar *buf, char *decimal_point, gboolea
* Get the nsecs as a 32-bit unsigned value, as it should never
* be negative, so we treat it as unsigned.
*/
- format_fractional_part_nsecs(ptr, remaining, (guint32)fd->abs_ts.nsecs, decimal_point, tsprecision);
+ format_fractional_part_nsecs(ptr, remaining, (uint32_t)fd->abs_ts.nsecs, decimal_point, tsprecision);
}
}
static void
col_set_abs_ydoy_time(const frame_data *fd, column_info *cinfo, const int col)
{
- set_abs_ydoy_time(fd, cinfo->columns[col].col_buf, col_decimal_point, TRUE);
+ set_abs_ydoy_time(fd, cinfo->columns[col].col_buf, col_decimal_point, true);
cinfo->col_expr.col_expr[col] = "frame.time";
(void) g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->columns[col].col_buf,COL_MAX_LEN);
@@ -1118,7 +1118,7 @@ col_set_abs_ydoy_time(const frame_data *fd, column_info *cinfo, const int col)
static void
col_set_utc_ydoy_time(const frame_data *fd, column_info *cinfo, const int col)
{
- set_abs_ydoy_time(fd, cinfo->columns[col].col_buf, col_decimal_point, FALSE);
+ set_abs_ydoy_time(fd, cinfo->columns[col].col_buf, col_decimal_point, false);
cinfo->col_expr.col_expr[col] = "frame.time";
(void) g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->columns[col].col_buf,COL_MAX_LEN);
@@ -1126,7 +1126,7 @@ col_set_utc_ydoy_time(const frame_data *fd, column_info *cinfo, const int col)
}
static void
-set_time_seconds(const frame_data *fd, const nstime_t *ts, gchar *buf)
+set_time_seconds(const frame_data *fd, const nstime_t *ts, char *buf)
{
ws_assert(fd->has_ts);
@@ -1134,11 +1134,11 @@ set_time_seconds(const frame_data *fd, const nstime_t *ts, gchar *buf)
}
static void
-set_time_hour_min_sec(const frame_data *fd, const nstime_t *ts, gchar *buf, char *decimal_point)
+set_time_hour_min_sec(const frame_data *fd, const nstime_t *ts, char *buf, char *decimal_point)
{
time_t secs = ts->secs;
- guint32 nsecs;
- gboolean negative = FALSE;
+ uint32_t nsecs;
+ bool negative = false;
char *ptr;
size_t remaining;
int num_bytes;
@@ -1148,7 +1148,7 @@ set_time_hour_min_sec(const frame_data *fd, const nstime_t *ts, gchar *buf, char
if (secs < 0) {
secs = -secs;
- negative = TRUE;
+ negative = true;
}
if (ts->nsecs >= 0) {
nsecs = ts->nsecs;
@@ -1159,7 +1159,7 @@ set_time_hour_min_sec(const frame_data *fd, const nstime_t *ts, gchar *buf, char
* 32-bit unsigned int variable.
*/
nsecs = -ts->nsecs;
- negative = TRUE;
+ negative = true;
} else {
/*
* -2147483648 is the smallest number that fits in a signed
@@ -1174,26 +1174,26 @@ set_time_hour_min_sec(const frame_data *fd, const nstime_t *ts, gchar *buf, char
* 32-bit *and* 64-bit Windows, making the variable in
* question a long will not avoid undefined behavior.
*/
- nsecs = (guint32)ts->nsecs;
- negative = TRUE;
+ nsecs = (uint32_t)ts->nsecs;
+ negative = true;
}
ptr = buf;
remaining = COL_MAX_LEN;
if (secs >= (60*60)) {
num_bytes = snprintf(ptr, remaining, "%s%dh %2dm %2d",
negative ? "- " : "",
- (gint32) secs / (60 * 60),
- (gint32) (secs / 60) % 60,
- (gint32) secs % 60);
+ (int32_t) secs / (60 * 60),
+ (int32_t) (secs / 60) % 60,
+ (int32_t) secs % 60);
} else if (secs >= 60) {
num_bytes = snprintf(ptr, remaining, "%s%dm %2d",
negative ? "- " : "",
- (gint32) secs / 60,
- (gint32) secs % 60);
+ (int32_t) secs / 60,
+ (int32_t) secs % 60);
} else {
num_bytes = snprintf(ptr, remaining, "%s%d",
negative ? "- " : "",
- (gint32) secs);
+ (int32_t) secs);
}
if (num_bytes < 0) {
/*
@@ -1327,10 +1327,10 @@ col_set_delta_time_dis(const frame_data *fd, column_info *cinfo, const int col)
* Time, without date.
*/
static void
-set_abs_time(const frame_data *fd, gchar *buf, char *decimal_point, gboolean local)
+set_abs_time(const frame_data *fd, char *buf, char *decimal_point, bool local)
{
struct tm tm, *tmp;
- gchar *ptr;
+ char *ptr;
size_t remaining;
int num_bytes;
int tsprecision;
@@ -1382,14 +1382,14 @@ set_abs_time(const frame_data *fd, gchar *buf, char *decimal_point, gboolean loc
* Get the nsecs as a 32-bit unsigned value, as it should never
* be negative, so we treat it as unsigned.
*/
- format_fractional_part_nsecs(ptr, remaining, (guint32)fd->abs_ts.nsecs, decimal_point, tsprecision);
+ format_fractional_part_nsecs(ptr, remaining, (uint32_t)fd->abs_ts.nsecs, decimal_point, tsprecision);
}
}
static void
col_set_abs_time(const frame_data *fd, column_info *cinfo, const int col)
{
- set_abs_time(fd, cinfo->columns[col].col_buf, col_decimal_point, TRUE);
+ set_abs_time(fd, cinfo->columns[col].col_buf, col_decimal_point, true);
cinfo->col_expr.col_expr[col] = "frame.time";
(void) g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->columns[col].col_buf,COL_MAX_LEN);
@@ -1399,22 +1399,22 @@ col_set_abs_time(const frame_data *fd, column_info *cinfo, const int col)
static void
col_set_utc_time(const frame_data *fd, column_info *cinfo, const int col)
{
- set_abs_time(fd, cinfo->columns[col].col_buf, col_decimal_point, FALSE);
+ set_abs_time(fd, cinfo->columns[col].col_buf, col_decimal_point, false);
cinfo->col_expr.col_expr[col] = "frame.time";
(void) g_strlcpy(cinfo->col_expr.col_expr_val[col],cinfo->columns[col].col_buf,COL_MAX_LEN);
cinfo->columns[col].col_data = cinfo->columns[col].col_buf;
}
-static gboolean
-set_epoch_time(const frame_data *fd, gchar *buf)
+static bool
+set_epoch_time(const frame_data *fd, char *buf)
{
if (!fd->has_ts) {
buf[0] = '\0';
- return FALSE;
+ return false;
}
display_epoch_time(buf, COL_MAX_LEN, &fd->abs_ts, get_frame_timestamp_precision(fd));
- return TRUE;
+ return true;
}
static void
@@ -1428,20 +1428,20 @@ col_set_epoch_time(const frame_data *fd, column_info *cinfo, const int col)
}
void
-set_fd_time(const epan_t *epan, frame_data *fd, gchar *buf)
+set_fd_time(const epan_t *epan, frame_data *fd, char *buf)
{
switch (timestamp_get_type()) {
case TS_ABSOLUTE:
- set_abs_time(fd, buf, col_decimal_point, TRUE);
+ set_abs_time(fd, buf, col_decimal_point, true);
break;
case TS_ABSOLUTE_WITH_YMD:
- set_abs_ymd_time(fd, buf, col_decimal_point, TRUE);
+ set_abs_ymd_time(fd, buf, col_decimal_point, true);
break;
case TS_ABSOLUTE_WITH_YDOY:
- set_abs_ydoy_time(fd, buf, col_decimal_point, TRUE);
+ set_abs_ydoy_time(fd, buf, col_decimal_point, true);
break;
case TS_RELATIVE:
@@ -1512,15 +1512,15 @@ set_fd_time(const epan_t *epan, frame_data *fd, gchar *buf)
break;
case TS_UTC:
- set_abs_time(fd, buf, col_decimal_point, FALSE);
+ set_abs_time(fd, buf, col_decimal_point, false);
break;
case TS_UTC_WITH_YMD:
- set_abs_ymd_time(fd, buf, col_decimal_point, FALSE);
+ set_abs_ymd_time(fd, buf, col_decimal_point, false);
break;
case TS_UTC_WITH_YDOY:
- set_abs_ydoy_time(fd, buf, col_decimal_point, FALSE);
+ set_abs_ydoy_time(fd, buf, col_decimal_point, false);
break;
case TS_NOT_SET:
@@ -1531,7 +1531,7 @@ set_fd_time(const epan_t *epan, frame_data *fd, gchar *buf)
}
static void
-col_set_cls_time(const frame_data *fd, column_info *cinfo, const gint col)
+col_set_cls_time(const frame_data *fd, column_info *cinfo, const int col)
{
switch (timestamp_get_type()) {
case TS_ABSOLUTE:
@@ -1583,7 +1583,7 @@ col_set_cls_time(const frame_data *fd, column_info *cinfo, const gint col)
/* Set the format of the variable time format. */
static void
-col_set_fmt_time(const frame_data *fd, column_info *cinfo, const gint fmt, const gint col)
+col_set_fmt_time(const frame_data *fd, column_info *cinfo, const int fmt, const int col)
{
COL_CHECK_REF_TIME(fd, cinfo->columns[col].col_buf);
@@ -1646,7 +1646,7 @@ col_set_fmt_time(const frame_data *fd, column_info *cinfo, const gint fmt, const
* applying/preparing/copying as filter)
*/
void
-col_set_time(column_info *cinfo, const gint el, const nstime_t *ts, const char *fieldname)
+col_set_time(column_info *cinfo, const int el, const nstime_t *ts, const char *fieldname)
{
int col;
col_item_t* col_item;
@@ -1670,8 +1670,8 @@ col_set_time(column_info *cinfo, const gint el, const nstime_t *ts, const char *
}
static void
-col_set_addr(packet_info *pinfo, const int col, const address *addr, const gboolean is_src,
- const gboolean fill_col_exprs, const gboolean res)
+col_set_addr(packet_info *pinfo, const int col, const address *addr, const bool is_src,
+ const bool fill_col_exprs, const bool res)
{
const char *name;
col_item_t* col_item = &pinfo->cinfo->columns[col];
@@ -1693,15 +1693,20 @@ col_set_addr(packet_info *pinfo, const int col, const address *addr, const gbool
pinfo->cinfo->col_expr.col_expr[col] = address_type_column_filter_string(addr, is_src);
/* For address types that have a filter, create a string */
- if (strlen(pinfo->cinfo->col_expr.col_expr[col]) > 0)
+ if (strlen(pinfo->cinfo->col_expr.col_expr[col]) > 0) {
address_to_str_buf(addr, pinfo->cinfo->col_expr.col_expr_val[col], COL_MAX_LEN);
+ } else {
+ /* For address types that don't, use the internal column FT_STRING hfi */
+ pinfo->cinfo->col_expr.col_expr[col] = proto_registrar_get_nth(col_item->hf_id)->abbrev;
+ (void) g_strlcpy(pinfo->cinfo->col_expr.col_expr_val[col], pinfo->cinfo->columns[col].col_data, COL_MAX_LEN);
+ }
}
/* ------------------------ */
static void
-col_set_port(packet_info *pinfo, const int col, const gboolean is_res, const gboolean is_src, const gboolean fill_col_exprs _U_)
+col_set_port(packet_info *pinfo, const int col, const bool is_res, const bool is_src, const bool fill_col_exprs _U_)
{
- guint32 port;
+ uint32_t port;
col_item_t* col_item = &pinfo->cinfo->columns[col];
if (is_src)
@@ -1788,8 +1793,8 @@ col_set_port(packet_info *pinfo, const int col, const gboolean is_res, const gbo
col_item->col_data = col_item->col_buf;
}
-gboolean
-col_based_on_frame_data(column_info *cinfo, const gint col)
+bool
+col_based_on_frame_data(column_info *cinfo, const int col)
{
ws_assert(cinfo);
ws_assert(col < cinfo->num_cols);
@@ -1808,15 +1813,15 @@ col_based_on_frame_data(column_info *cinfo, const gint col)
case COL_DELTA_TIME_DIS:
case COL_PACKET_LENGTH:
case COL_CUMULATIVE_BYTES:
- return TRUE;
+ return true;
default:
- return FALSE;
+ return false;
}
}
void
-col_fill_in_frame_data(const frame_data *fd, column_info *cinfo, const gint col, const gboolean fill_col_exprs)
+col_fill_in_frame_data(const frame_data *fd, column_info *cinfo, const int col, const bool fill_col_exprs)
{
col_item_t* col_item = &cinfo->columns[col];
@@ -1890,7 +1895,7 @@ col_fill_in_frame_data(const frame_data *fd, column_info *cinfo, const gint col,
}
void
-col_fill_in(packet_info *pinfo, const gboolean fill_col_exprs, const gboolean fill_fd_colums)
+col_fill_in(packet_info *pinfo, const bool fill_col_exprs, const bool fill_fd_colums)
{
int i;
col_item_t* col_item;
@@ -1907,74 +1912,74 @@ col_fill_in(packet_info *pinfo, const gboolean fill_col_exprs, const gboolean fi
switch (col_item->col_fmt) {
case COL_DEF_SRC:
case COL_RES_SRC: /* COL_DEF_SRC is currently just like COL_RES_SRC */
- col_set_addr(pinfo, i, &pinfo->src, TRUE, fill_col_exprs, TRUE);
+ col_set_addr(pinfo, i, &pinfo->src, true, fill_col_exprs, true);
break;
case COL_UNRES_SRC:
- col_set_addr(pinfo, i, &pinfo->src, TRUE, fill_col_exprs, FALSE);
+ col_set_addr(pinfo, i, &pinfo->src, true, fill_col_exprs, false);
break;
case COL_DEF_DL_SRC:
case COL_RES_DL_SRC:
- col_set_addr(pinfo, i, &pinfo->dl_src, TRUE, fill_col_exprs, TRUE);
+ col_set_addr(pinfo, i, &pinfo->dl_src, true, fill_col_exprs, true);
break;
case COL_UNRES_DL_SRC:
- col_set_addr(pinfo, i, &pinfo->dl_src, TRUE, fill_col_exprs, FALSE);
+ col_set_addr(pinfo, i, &pinfo->dl_src, true, fill_col_exprs, false);
break;
case COL_DEF_NET_SRC:
case COL_RES_NET_SRC:
- col_set_addr(pinfo, i, &pinfo->net_src, TRUE, fill_col_exprs, TRUE);
+ col_set_addr(pinfo, i, &pinfo->net_src, true, fill_col_exprs, true);
break;
case COL_UNRES_NET_SRC:
- col_set_addr(pinfo, i, &pinfo->net_src, TRUE, fill_col_exprs, FALSE);
+ col_set_addr(pinfo, i, &pinfo->net_src, true, fill_col_exprs, false);
break;
case COL_DEF_DST:
case COL_RES_DST: /* COL_DEF_DST is currently just like COL_RES_DST */
- col_set_addr(pinfo, i, &pinfo->dst, FALSE, fill_col_exprs, TRUE);
+ col_set_addr(pinfo, i, &pinfo->dst, false, fill_col_exprs, true);
break;
case COL_UNRES_DST:
- col_set_addr(pinfo, i, &pinfo->dst, FALSE, fill_col_exprs, FALSE);
+ col_set_addr(pinfo, i, &pinfo->dst, false, fill_col_exprs, false);
break;
case COL_DEF_DL_DST:
case COL_RES_DL_DST:
- col_set_addr(pinfo, i, &pinfo->dl_dst, FALSE, fill_col_exprs, TRUE);
+ col_set_addr(pinfo, i, &pinfo->dl_dst, false, fill_col_exprs, true);
break;
case COL_UNRES_DL_DST:
- col_set_addr(pinfo, i, &pinfo->dl_dst, FALSE, fill_col_exprs, FALSE);
+ col_set_addr(pinfo, i, &pinfo->dl_dst, false, fill_col_exprs, false);
break;
case COL_DEF_NET_DST:
case COL_RES_NET_DST:
- col_set_addr(pinfo, i, &pinfo->net_dst, FALSE, fill_col_exprs, TRUE);
+ col_set_addr(pinfo, i, &pinfo->net_dst, false, fill_col_exprs, true);
break;
case COL_UNRES_NET_DST:
- col_set_addr(pinfo, i, &pinfo->net_dst, FALSE, fill_col_exprs, FALSE);
+ col_set_addr(pinfo, i, &pinfo->net_dst, false, fill_col_exprs, false);
break;
case COL_DEF_SRC_PORT:
case COL_RES_SRC_PORT: /* COL_DEF_SRC_PORT is currently just like COL_RES_SRC_PORT */
- col_set_port(pinfo, i, TRUE, TRUE, fill_col_exprs);
+ col_set_port(pinfo, i, true, true, fill_col_exprs);
break;
case COL_UNRES_SRC_PORT:
- col_set_port(pinfo, i, FALSE, TRUE, fill_col_exprs);
+ col_set_port(pinfo, i, false, true, fill_col_exprs);
break;
case COL_DEF_DST_PORT:
case COL_RES_DST_PORT: /* COL_DEF_DST_PORT is currently just like COL_RES_DST_PORT */
- col_set_port(pinfo, i, TRUE, FALSE, fill_col_exprs);
+ col_set_port(pinfo, i, true, false, fill_col_exprs);
break;
case COL_UNRES_DST_PORT:
- col_set_port(pinfo, i, FALSE, FALSE, fill_col_exprs);
+ col_set_port(pinfo, i, false, false, fill_col_exprs);
break;
case COL_CUSTOM:
@@ -2008,7 +2013,7 @@ col_fill_in(packet_info *pinfo, const gboolean fill_col_exprs, const gboolean fi
* from the file, and set the Info column to an error message.
*/
void
-col_fill_in_error(column_info *cinfo, frame_data *fdata, const gboolean fill_col_exprs, const gboolean fill_fd_colums)
+col_fill_in_error(column_info *cinfo, frame_data *fdata, const bool fill_col_exprs, const bool fill_fd_colums)
{
int i;
col_item_t* col_item;
@@ -2038,9 +2043,9 @@ col_fill_in_error(column_info *cinfo, frame_data *fdata, const gboolean fill_col
}
}
-gboolean col_data_changed(void) {
- gboolean cur_cdc = col_data_changed_;
- col_data_changed_ = FALSE;
+bool col_data_changed(void) {
+ bool cur_cdc = col_data_changed_;
+ col_data_changed_ = false;
return cur_cdc;
}
@@ -2056,7 +2061,7 @@ col_register_protocol(void)
if (proto_cols <= 0) {
proto_cols = proto_register_protocol("Wireshark Columns", "Columns", "_ws.col");
}
- static gint *ett[] = {
+ static int *ett[] = {
&ett_cols
};
proto_register_subtree_array(ett, G_N_ELEMENTS(ett));
@@ -2077,7 +2082,7 @@ col_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (proto_field_is_referenced(tree, proto_cols)) {
// XXX: Needed if we also create _ws.col.custom
//col_custom_set(tree, cinfo);
- col_fill_in(pinfo, FALSE, TRUE);
+ col_fill_in(pinfo, false, true);
ti = proto_tree_add_item(tree, proto_cols, tvb, 0, 0, ENC_NA);
proto_item_set_hidden(ti);
col_tree = proto_item_add_subtree(ti, ett_cols);
diff --git a/epan/column-utils.h b/epan/column-utils.h
index a213db688a..4cce4ca966 100644
--- a/epan/column-utils.h
+++ b/epan/column-utils.h
@@ -115,17 +115,17 @@ enum {
*
* @param cinfo the current packet row
* @param col the writable column, -1 for checking the state of all columns
- * @return TRUE if it's writable, FALSE if not
+ * @return true if it's writable, false if not
*/
-WS_DLL_PUBLIC gboolean col_get_writable(column_info *cinfo, const gint col);
+WS_DLL_PUBLIC bool col_get_writable(column_info *cinfo, const int col);
/** Set the columns writable.
*
* @param cinfo the current packet row
* @param col the column to set, -1 for all
- * @param writable TRUE if it's writable, FALSE if not
+ * @param writable true if it's writable, false if not
*/
-WS_DLL_PUBLIC void col_set_writable(column_info *cinfo, const gint col, const gboolean writable);
+WS_DLL_PUBLIC void col_set_writable(column_info *cinfo, const int col, const bool writable);
/** Sets a fence for the current column content,
* so this content won't be affected by further col_... function calls.
@@ -136,7 +136,7 @@ WS_DLL_PUBLIC void col_set_writable(column_info *cinfo, const gint col, const gb
* @param cinfo the current packet row
* @param col the column to use, e.g. COL_INFO
*/
-WS_DLL_PUBLIC void col_set_fence(column_info *cinfo, const gint col);
+WS_DLL_PUBLIC void col_set_fence(column_info *cinfo, const int col);
/** Clears a fence for the current column content
*
@@ -146,7 +146,7 @@ WS_DLL_PUBLIC void col_set_fence(column_info *cinfo, const gint col);
* @param cinfo the current packet row
* @param col the column to use, e.g. COL_INFO
*/
-WS_DLL_PUBLIC void col_clear_fence(column_info *cinfo, const gint col);
+WS_DLL_PUBLIC void col_clear_fence(column_info *cinfo, const int col);
/** Gets the text of a column element.
*
@@ -155,14 +155,14 @@ WS_DLL_PUBLIC void col_clear_fence(column_info *cinfo, const gint col);
*
* @return the text string
*/
-WS_DLL_PUBLIC const gchar *col_get_text(column_info *cinfo, const gint col);
+WS_DLL_PUBLIC const char *col_get_text(column_info *cinfo, const int col);
/** Clears the text of a column element.
*
* @param cinfo the current packet row
* @param col the column to use, e.g. COL_INFO
*/
-WS_DLL_PUBLIC void col_clear(column_info *cinfo, const gint col);
+WS_DLL_PUBLIC void col_clear(column_info *cinfo, const int col);
/** Set (replace) the text of a column element, the text won't be formatted or copied.
*
@@ -175,7 +175,7 @@ WS_DLL_PUBLIC void col_clear(column_info *cinfo, const gint col);
* @param col the column to use, e.g. COL_INFO
* @param str the string to set
*/
-WS_DLL_PUBLIC void col_set_str(column_info *cinfo, const gint col, const gchar * str);
+WS_DLL_PUBLIC void col_set_str(column_info *cinfo, const int col, const char * str);
/** Add (replace) the text of a column element, the text will be formatted and copied.
*
@@ -185,12 +185,12 @@ WS_DLL_PUBLIC void col_set_str(column_info *cinfo, const gint col, const gchar *
* @param col the column to use, e.g. COL_INFO
* @param str the string to add
*/
-WS_DLL_PUBLIC void col_add_str(column_info *cinfo, const gint col, const gchar *str);
+WS_DLL_PUBLIC void col_add_str(column_info *cinfo, const int col, const char *str);
/* terminator argument for col_add_lstr() function */
#define COL_ADD_LSTR_TERMINATOR (const char *) -1
-WS_DLL_PUBLIC void col_add_lstr(column_info *cinfo, const gint el, const gchar *str, ...);
+WS_DLL_PUBLIC void col_add_lstr(column_info *cinfo, const int el, const char *str, ...);
/** Add (replace) the text of a column element, the text will be formatted and copied.
*
@@ -203,7 +203,7 @@ WS_DLL_PUBLIC void col_add_lstr(column_info *cinfo, const gint el, const gchar *
* @param format the format string
* @param ... the variable number of parameters
*/
-WS_DLL_PUBLIC void col_add_fstr(column_info *cinfo, const gint col, const gchar *format, ...)
+WS_DLL_PUBLIC void col_add_fstr(column_info *cinfo, const int col, const char *format, ...)
G_GNUC_PRINTF(3, 4);
/** Append the given text to a column element, the text will be formatted and copied.
@@ -214,7 +214,7 @@ WS_DLL_PUBLIC void col_add_fstr(column_info *cinfo, const gint col, const gchar
* @param col the column to use, e.g. COL_INFO
* @param str the string to append
*/
-WS_DLL_PUBLIC void col_append_str(column_info *cinfo, const gint col, const gchar *str);
+WS_DLL_PUBLIC void col_append_str(column_info *cinfo, const int col, const char *str);
/** Append <abbrev>=<val> to a column element, the text will be copied.
*
@@ -224,7 +224,7 @@ WS_DLL_PUBLIC void col_append_str(column_info *cinfo, const gint col, const gcha
* @param val the value to append
* @param sep an optional separator to _prepend_ to abbrev
*/
-WS_DLL_PUBLIC void col_append_str_uint(column_info *cinfo, const gint col, const gchar *abbrev, guint32 val, const gchar *sep);
+WS_DLL_PUBLIC void col_append_str_uint(column_info *cinfo, const int col, const char *abbrev, uint32_t val, const char *sep);
/** Append a transport port pair to a column element, the text will be copied.
*
@@ -234,7 +234,7 @@ WS_DLL_PUBLIC void col_append_str_uint(column_info *cinfo, const gint col, const
* @param src the source port value to append
* @param dst the destination port value to append
*/
-WS_DLL_PUBLIC void col_append_ports(column_info *cinfo, const gint col, port_type typ, guint16 src, guint16 dst);
+WS_DLL_PUBLIC void col_append_ports(column_info *cinfo, const int col, port_type typ, uint16_t src, uint16_t dst);
/** Append a frame number and signal that we have updated
* column information.
@@ -244,13 +244,13 @@ WS_DLL_PUBLIC void col_append_ports(column_info *cinfo, const gint col, port_typ
* @param fmt_str format string, e.g. "reassembled in %u".
* @param frame_num frame number
*/
-WS_DLL_PUBLIC void col_append_frame_number(packet_info *pinfo, const gint col, const gchar *fmt_str, guint frame_num);
+WS_DLL_PUBLIC void col_append_frame_number(packet_info *pinfo, const int col, const char *fmt_str, unsigned frame_num);
/* Append the given strings (terminated by COL_ADD_LSTR_TERMINATOR) to a column element,
*
* Same result as col_append_str() called for every string element.
*/
-WS_DLL_PUBLIC void col_append_lstr(column_info *cinfo, const gint el, const gchar *str, ...);
+WS_DLL_PUBLIC void col_append_lstr(column_info *cinfo, const int el, const char *str, ...);
/** Append the given text to a column element, the text will be formatted and copied.
*
@@ -263,7 +263,7 @@ WS_DLL_PUBLIC void col_append_lstr(column_info *cinfo, const gint el, const gcha
* @param format the format string
* @param ... the variable number of parameters
*/
-WS_DLL_PUBLIC void col_append_fstr(column_info *cinfo, const gint col, const gchar *format, ...)
+WS_DLL_PUBLIC void col_append_fstr(column_info *cinfo, const int col, const char *format, ...)
G_GNUC_PRINTF(3, 4);
/** Prepend the given text to a column element, the text will be formatted and copied.
@@ -275,7 +275,7 @@ WS_DLL_PUBLIC void col_append_fstr(column_info *cinfo, const gint col, const gch
* @param format the format string
* @param ... the variable number of parameters
*/
-WS_DLL_PUBLIC void col_prepend_fstr(column_info *cinfo, const gint col, const gchar *format, ...)
+WS_DLL_PUBLIC void col_prepend_fstr(column_info *cinfo, const int col, const char *format, ...)
G_GNUC_PRINTF(3, 4);
/** Prepend the given text to a column element, the text will be formatted and copied.
@@ -289,7 +289,7 @@ WS_DLL_PUBLIC void col_prepend_fstr(column_info *cinfo, const gint col, const gc
* there is already a fence created. This function will create a fence in case
* it does not yet exist.
*/
-WS_DLL_PUBLIC void col_prepend_fence_fstr(column_info *cinfo, const gint col, const gchar *format, ...)
+WS_DLL_PUBLIC void col_prepend_fence_fstr(column_info *cinfo, const int col, const char *format, ...)
G_GNUC_PRINTF(3, 4);
/** Append the given text (prepended by a separator) to a column element.
@@ -303,8 +303,8 @@ WS_DLL_PUBLIC void col_prepend_fence_fstr(column_info *cinfo, const gint col, co
* @param sep the separator string or NULL for default: ", "
* @param str the string to append
*/
-WS_DLL_PUBLIC void col_append_sep_str(column_info *cinfo, const gint col, const gchar *sep,
- const gchar *str);
+WS_DLL_PUBLIC void col_append_sep_str(column_info *cinfo, const int col, const char *sep,
+ const char *str);
/** Append the given text (prepended by a separator) to a column element.
*
@@ -318,8 +318,8 @@ WS_DLL_PUBLIC void col_append_sep_str(column_info *cinfo, const gint col, const
* @param format the format string
* @param ... the variable number of parameters
*/
-WS_DLL_PUBLIC void col_append_sep_fstr(column_info *cinfo, const gint col, const gchar *sep,
- const gchar *format, ...)
+WS_DLL_PUBLIC void col_append_sep_fstr(column_info *cinfo, const int col, const char *sep,
+ const char *format, ...)
G_GNUC_PRINTF(4, 5);
/** Set the given (relative) time to a column element.
@@ -335,7 +335,7 @@ WS_DLL_PUBLIC void col_append_sep_fstr(column_info *cinfo, const gint col, const
WS_DLL_PUBLIC void col_set_time(column_info *cinfo, const int col,
const nstime_t *ts, const char *fieldname);
-WS_DLL_PUBLIC void set_fd_time(const struct epan_session *epan, frame_data *fd, gchar *buf);
+WS_DLL_PUBLIC void set_fd_time(const struct epan_session *epan, frame_data *fd, char *buf);
#ifdef __cplusplus
}
diff --git a/epan/column.c b/epan/column.c
index c30db61527..4aa263fa4a 100644
--- a/epan/column.c
+++ b/epan/column.c
@@ -27,14 +27,14 @@
#include <wsutil/ws_assert.h>
static int proto_cols;
-static hf_register_info *hf_cols = NULL;
-static unsigned int hf_cols_cleanup = 0;
+static hf_register_info *hf_cols;
+static unsigned int hf_cols_cleanup;
/* Given a format number (as defined in column-utils.h), returns its equivalent
string */
-const gchar *
-col_format_to_string(const gint fmt) {
- static const gchar *const slist[NUM_COL_FMTS] = {
+const char *
+col_format_to_string(const int fmt) {
+ static const char *const slist[NUM_COL_FMTS] = {
"%Yt", /* 0) COL_ABS_YMD_TIME */
"%YDOYt", /* 1) COL_ABS_YDOY_TIME */
"%At", /* 2) COL_ABS_TIME */
@@ -94,8 +94,8 @@ col_format_to_string(const gint fmt) {
/* Given a format number (as defined in column-utils.h), returns its
description */
-const gchar *
-col_format_desc(const gint fmt_num) {
+const char *
+col_format_desc(const int fmt_num) {
/* This should be sorted alphabetically, e.g. `sort -t, -k2` */
/*
@@ -154,15 +154,15 @@ col_format_desc(const gint fmt_num) {
{ 0, NULL }
};
- const gchar *val_str = try_val_to_str(fmt_num, dlist_vals);
+ const char *val_str = try_val_to_str(fmt_num, dlist_vals);
ws_assert(val_str != NULL);
return val_str;
}
/* Given a format number (as defined in column-utils.h), returns its
filter abbreviation */
-const gchar *
-col_format_abbrev(const gint fmt_num) {
+const char *
+col_format_abbrev(const int fmt_num) {
static const value_string alist_vals[] = {
@@ -216,14 +216,14 @@ col_format_abbrev(const gint fmt_num) {
{ 0, NULL }
};
- const gchar *val_str = try_val_to_str(fmt_num, alist_vals);
+ const char *val_str = try_val_to_str(fmt_num, alist_vals);
ws_assert(val_str != NULL);
return val_str;
}
/* Array of columns that have been migrated to custom columns */
struct deprecated_columns {
- const gchar *col_fmt;
- const gchar *col_expr;
+ const char *col_fmt;
+ const char *col_expr;
};
static struct deprecated_columns migrated_columns[] = {
@@ -279,15 +279,15 @@ try_convert_to_column_field(const char *field)
/*
* Parse a column format, filling in the relevant fields of a fmt_data.
*/
-gboolean
+bool
parse_column_format(fmt_data *cfmt, const char *fmt)
{
- const gchar *cust_format = col_format_to_string(COL_CUSTOM);
+ const char *cust_format = col_format_to_string(COL_CUSTOM);
size_t cust_format_len = strlen(cust_format);
GPtrArray *cust_format_info;
char *p;
int col_fmt;
- gchar *col_custom_fields = NULL;
+ char *col_custom_fields = NULL;
long col_custom_occurrence = 0;
bool col_resolved = true;
@@ -324,7 +324,7 @@ parse_column_format(fmt_data *cfmt, const char *fmt)
/* Not a valid number. */
g_free(fmt_copy);
g_ptr_array_unref(cust_format_info);
- return FALSE;
+ return false;
}
}
if (cust_format_info->len > 2) {
@@ -336,27 +336,27 @@ parse_column_format(fmt_data *cfmt, const char *fmt)
} else {
col_fmt = get_column_format_from_str(fmt);
if (col_fmt == -1)
- return FALSE;
+ return false;
}
cfmt->fmt = col_fmt;
cfmt->custom_fields = col_custom_fields;
cfmt->custom_occurrence = (int)col_custom_occurrence;
cfmt->resolved = col_resolved;
- return TRUE;
+ return true;
}
void
try_convert_to_custom_column(char **fmt)
{
- guint haystack_idx;
+ unsigned haystack_idx;
for (haystack_idx = 0;
haystack_idx < G_N_ELEMENTS(migrated_columns);
++haystack_idx) {
if (strcmp(migrated_columns[haystack_idx].col_fmt, *fmt) == 0) {
- gchar *cust_col = ws_strdup_printf("%%Cus:%s:0",
+ char *cust_col = ws_strdup_printf("%%Cus:%s:0",
migrated_columns[haystack_idx].col_expr);
g_free(*fmt);
@@ -368,7 +368,7 @@ try_convert_to_custom_column(char **fmt)
void
column_dump_column_formats(void)
{
- gint fmt;
+ int fmt;
for (fmt = 0; fmt < NUM_COL_FMTS; fmt++) {
printf("%s\t%s\n", col_format_to_string(fmt), col_format_desc(fmt));
@@ -399,55 +399,55 @@ column_dump_column_formats(void)
/* Marks each array element true if it can be substituted for the given
column format */
void
-get_column_format_matches(gboolean *fmt_list, const gint format) {
+get_column_format_matches(bool *fmt_list, const int format) {
/* Get the obvious: the format itself */
if ((format >= 0) && (format < NUM_COL_FMTS))
- fmt_list[format] = TRUE;
+ fmt_list[format] = true;
/* Get any formats lower down on the chain */
switch (format) {
case COL_DEF_SRC:
- fmt_list[COL_RES_DL_SRC] = TRUE;
- fmt_list[COL_RES_NET_SRC] = TRUE;
+ fmt_list[COL_RES_DL_SRC] = true;
+ fmt_list[COL_RES_NET_SRC] = true;
break;
case COL_RES_SRC:
- fmt_list[COL_RES_DL_SRC] = TRUE;
- fmt_list[COL_RES_NET_SRC] = TRUE;
+ fmt_list[COL_RES_DL_SRC] = true;
+ fmt_list[COL_RES_NET_SRC] = true;
break;
case COL_UNRES_SRC:
- fmt_list[COL_UNRES_DL_SRC] = TRUE;
- fmt_list[COL_UNRES_NET_SRC] = TRUE;
+ fmt_list[COL_UNRES_DL_SRC] = true;
+ fmt_list[COL_UNRES_NET_SRC] = true;
break;
case COL_DEF_DST:
- fmt_list[COL_RES_DL_DST] = TRUE;
- fmt_list[COL_RES_NET_DST] = TRUE;
+ fmt_list[COL_RES_DL_DST] = true;
+ fmt_list[COL_RES_NET_DST] = true;
break;
case COL_RES_DST:
- fmt_list[COL_RES_DL_DST] = TRUE;
- fmt_list[COL_RES_NET_DST] = TRUE;
+ fmt_list[COL_RES_DL_DST] = true;
+ fmt_list[COL_RES_NET_DST] = true;
break;
case COL_UNRES_DST:
- fmt_list[COL_UNRES_DL_DST] = TRUE;
- fmt_list[COL_UNRES_NET_DST] = TRUE;
+ fmt_list[COL_UNRES_DL_DST] = true;
+ fmt_list[COL_UNRES_NET_DST] = true;
break;
case COL_DEF_DL_SRC:
- fmt_list[COL_RES_DL_SRC] = TRUE;
+ fmt_list[COL_RES_DL_SRC] = true;
break;
case COL_DEF_DL_DST:
- fmt_list[COL_RES_DL_DST] = TRUE;
+ fmt_list[COL_RES_DL_DST] = true;
break;
case COL_DEF_NET_SRC:
- fmt_list[COL_RES_NET_SRC] = TRUE;
+ fmt_list[COL_RES_NET_SRC] = true;
break;
case COL_DEF_NET_DST:
- fmt_list[COL_RES_NET_DST] = TRUE;
+ fmt_list[COL_RES_NET_DST] = true;
break;
case COL_DEF_SRC_PORT:
- fmt_list[COL_RES_SRC_PORT] = TRUE;
+ fmt_list[COL_RES_SRC_PORT] = true;
break;
case COL_DEF_DST_PORT:
- fmt_list[COL_RES_DST_PORT] = TRUE;
+ fmt_list[COL_RES_DST_PORT] = true;
break;
default:
break;
@@ -548,7 +548,7 @@ static const char *ts_epoch_time[NUM_WS_TSPREC_VALS] = {
/* Returns a string representing the longest possible value for
a timestamp column type. */
static const char *
-get_timestamp_column_longest_string(const gint type, const gint precision)
+get_timestamp_column_longest_string(const int type, const int precision)
{
switch(type) {
@@ -642,8 +642,8 @@ get_timestamp_column_longest_string(const gint type, const gint precision)
is done, and given that the width for COL...SRC and COL...DST columns
is somewhat arbitrary in any case. We should probably clean
that up eventually, though. */
-static const char *
-get_column_longest_string(const gint format)
+const char *
+get_column_longest_string(const int format)
{
switch (format) {
case COL_NUMBER:
@@ -745,8 +745,8 @@ get_column_longest_string(const gint format)
/* Returns the longer string of the column title or the hard-coded width of
* its contents for building the packet list layout. */
-const gchar *
-get_column_width_string(const gint format, const gint col)
+const char *
+get_column_width_string(const int format, const int col)
{
if(strlen(get_column_longest_string(format)) >
strlen(get_column_title(col)))
@@ -757,14 +757,14 @@ get_column_width_string(const gint format, const gint col)
/* Returns the longest possible width, in characters, for a particular
column type. */
-gint
-get_column_char_width(const gint format)
+int
+get_column_char_width(const int format)
{
- return (gint)strlen(get_column_longest_string(format));
+ return (int)strlen(get_column_longest_string(format));
}
-gint
-get_column_format(const gint col)
+int
+get_column_format(const int col)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -778,7 +778,7 @@ get_column_format(const gint col)
}
void
-set_column_format(const gint col, const gint fmt)
+set_column_format(const int col, const int fmt)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -791,10 +791,10 @@ set_column_format(const gint col, const gint fmt)
cfmt->fmt = fmt;
}
-gint
-get_column_format_from_str(const gchar *str)
+int
+get_column_format_from_str(const char *str)
{
- gint i;
+ int i;
for (i = 0; i < NUM_COL_FMTS; i++) {
if (strcmp(str, col_format_to_string(i)) == 0)
@@ -803,8 +803,8 @@ get_column_format_from_str(const gchar *str)
return -1; /* illegal */
}
-gchar *
-get_column_title(const gint col)
+char *
+get_column_title(const int col)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -818,7 +818,7 @@ get_column_title(const gint col)
}
void
-set_column_title(const gint col, const gchar *title)
+set_column_title(const int col, const char *title)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -832,14 +832,14 @@ set_column_title(const gint col, const gchar *title)
cfmt->title = g_strdup (title);
}
-gboolean
-get_column_visible(const gint col)
+bool
+get_column_visible(const int col)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
if (!clp) /* Invalid column requested */
- return TRUE;
+ return true;
cfmt = (fmt_data *) clp->data;
@@ -847,7 +847,7 @@ get_column_visible(const gint col)
}
void
-set_column_visible(const gint col, gboolean visible)
+set_column_visible(const int col, bool visible)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -860,14 +860,14 @@ set_column_visible(const gint col, gboolean visible)
cfmt->visible = visible;
}
-gboolean
-get_column_resolved(const gint col)
+bool
+get_column_resolved(const int col)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
if (!clp) /* Invalid column requested */
- return TRUE;
+ return true;
cfmt = (fmt_data *) clp->data;
@@ -875,7 +875,7 @@ get_column_resolved(const gint col)
}
void
-set_column_resolved(const gint col, gboolean resolved)
+set_column_resolved(const int col, bool resolved)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -888,8 +888,8 @@ set_column_resolved(const gint col, gboolean resolved)
cfmt->resolved = resolved;
}
-const gchar *
-get_column_custom_fields(const gint col)
+const char *
+get_column_custom_fields(const int col)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -903,7 +903,7 @@ get_column_custom_fields(const gint col)
}
void
-set_column_custom_fields(const gint col, const char *custom_fields)
+set_column_custom_fields(const int col, const char *custom_fields)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -917,8 +917,8 @@ set_column_custom_fields(const gint col, const char *custom_fields)
cfmt->custom_fields = g_strdup (custom_fields);
}
-gint
-get_column_custom_occurrence(const gint col)
+int
+get_column_custom_occurrence(const int col)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -932,7 +932,7 @@ get_column_custom_occurrence(const gint col)
}
void
-set_column_custom_occurrence(const gint col, const gint custom_occurrence)
+set_column_custom_occurrence(const int col, const int custom_occurrence)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
@@ -945,8 +945,8 @@ set_column_custom_occurrence(const gint col, const gint custom_occurrence)
cfmt->custom_occurrence = custom_occurrence;
}
-static gchar *
-get_custom_field_tooltip (gchar *custom_field, gint occurrence)
+static char *
+get_custom_field_tooltip (char *custom_field, int occurrence)
{
header_field_info *hfi = proto_registrar_get_byname(custom_field);
if (hfi == NULL) {
@@ -973,15 +973,15 @@ get_custom_field_tooltip (gchar *custom_field, gint occurrence)
return ws_strdup_printf("%s\n%s (%s#%d)", proto_get_protocol_name(hfi->parent), hfi->name, hfi->abbrev, occurrence);
}
-gchar *
-get_column_tooltip(const gint col)
+char *
+get_column_tooltip(const int col)
{
GList *clp = g_list_nth(prefs.col_list, col);
fmt_data *cfmt;
- gchar **fields;
- gboolean first = TRUE;
+ char **fields;
+ bool first = true;
GString *column_tooltip;
- guint i;
+ unsigned i;
if (!clp) /* Invalid column requested */
return NULL;
@@ -1000,23 +1000,23 @@ get_column_tooltip(const gint col)
for (i = 0; i < g_strv_length(fields); i++) {
if (fields[i] && *fields[i]) {
- gchar *field_tooltip = get_custom_field_tooltip(fields[i], cfmt->custom_occurrence);
+ char *field_tooltip = get_custom_field_tooltip(fields[i], cfmt->custom_occurrence);
if (!first) {
g_string_append(column_tooltip, "\n\nOR\n\n");
}
g_string_append(column_tooltip, field_tooltip);
g_free (field_tooltip);
- first = FALSE;
+ first = false;
}
}
g_strfreev(fields);
- return g_string_free (column_tooltip, FALSE);
+ return g_string_free (column_tooltip, false);
}
-const gchar*
-get_column_text(column_info *cinfo, const gint col)
+const char*
+get_column_text(column_info *cinfo, const int col)
{
ws_assert(cinfo);
ws_assert(col < cinfo->num_cols);
@@ -1048,9 +1048,9 @@ col_finalize(column_info *cinfo)
col_item->col_custom_dfilter = NULL;
}
if (col_item->col_custom_fields) {
- gchar **fields = g_regex_split(cinfo->prime_regex, col_item->col_custom_fields,
+ char **fields = g_regex_split(cinfo->prime_regex, col_item->col_custom_fields,
0);
- guint i_field;
+ unsigned i_field;
for (i_field = 0; i_field < g_strv_length(fields); i_field++) {
if (fields[i_field] && *fields[i_field]) {
@@ -1074,16 +1074,16 @@ col_finalize(column_info *cinfo)
col_item->col_custom_dfilter = NULL;
}
- col_item->fmt_matx = g_new0(gboolean, NUM_COL_FMTS);
+ col_item->fmt_matx = g_new0(bool, NUM_COL_FMTS);
get_column_format_matches(col_item->fmt_matx, col_item->col_fmt);
col_item->col_data = NULL;
if (col_item->col_fmt == COL_INFO) {
- col_item->col_buf = g_new(gchar, COL_MAX_INFO_LEN);
- cinfo->col_expr.col_expr_val[i] = g_new(gchar, COL_MAX_INFO_LEN);
+ col_item->col_buf = g_new(char, COL_MAX_INFO_LEN);
+ cinfo->col_expr.col_expr_val[i] = g_new(char, COL_MAX_INFO_LEN);
} else {
- col_item->col_buf = g_new(gchar, COL_MAX_LEN);
- cinfo->col_expr.col_expr_val[i] = g_new(gchar, COL_MAX_LEN);
+ col_item->col_buf = g_new(char, COL_MAX_LEN);
+ cinfo->col_expr.col_expr_val[i] = g_new(char, COL_MAX_LEN);
}
cinfo->col_expr.col_expr[i] = "";
@@ -1108,7 +1108,7 @@ col_finalize(column_info *cinfo)
}
void
-build_column_format_array(column_info *cinfo, const gint num_cols, const gboolean reset_fences)
+build_column_format_array(column_info *cinfo, const int num_cols, const bool reset_fences)
{
int i;
col_item_t* col_item;
@@ -1155,7 +1155,7 @@ column_register_fields(void)
GArray *hf_col_array;
hf_register_info new_hf;
fmt_data *cfmt;
- gboolean *used_fmts;
+ bool *used_fmts;
if (proto_cols <= 0) {
proto_cols = proto_get_id_by_filter_name("_ws.col");
}
@@ -1165,8 +1165,8 @@ column_register_fields(void)
column_deregister_fields();
if (prefs.col_list != NULL) {
prefs.num_cols = g_list_length(prefs.col_list);
- hf_col_array = g_array_new(FALSE, TRUE, sizeof(hf_register_info));
- used_fmts = g_new0(gboolean, NUM_COL_FMTS);
+ hf_col_array = g_array_new(false, true, sizeof(hf_register_info));
+ used_fmts = g_new0(bool, NUM_COL_FMTS);
/* Only register a field for each format type once, but don't register
* these at all. The first two behave oddly (because they depend on
* whether the current field and previous fields are displayed). We
@@ -1179,7 +1179,7 @@ column_register_fields(void)
for (GList *elem = g_list_first(prefs.col_list); elem != NULL; elem = elem->next) {
cfmt = (fmt_data*)elem->data;
if (!used_fmts[cfmt->fmt]) {
- used_fmts[cfmt->fmt] = TRUE;
+ used_fmts[cfmt->fmt] = true;
hf_id = g_new(int, 1);
*hf_id = -1;
new_hf.p_id = hf_id;
@@ -1198,7 +1198,7 @@ column_register_fields(void)
hf_cols_cleanup = hf_col_array->len;
proto_register_field_array(proto_cols, (hf_register_info*)hf_col_array->data, hf_col_array->len);
- hf_cols = (hf_register_info*)g_array_free(hf_col_array, FALSE);
+ hf_cols = (hf_register_info*)g_array_free(hf_col_array, false);
}
}
diff --git a/epan/column.h b/epan/column.h
index dd8d546c40..f7739b88f0 100644
--- a/epan/column.h
+++ b/epan/column.h
@@ -22,54 +22,56 @@ extern "C" {
#endif /* __cplusplus */
typedef struct _fmt_data {
- gchar *title; /* title of the column */
+ char *title; /* title of the column */
int fmt; /* format of column */
- gchar *custom_fields; /* fields names for COL_CUSTOM */
- gint custom_occurrence; /* optional ordinal of occurrence of that field */
- bool visible; /* if FALSE, hide this column */
- bool resolved; /* if TRUE, show a more human-readable name */
+ char *custom_fields; /* fields names for COL_CUSTOM */
+ int custom_occurrence; /* optional ordinal of occurrence of that field */
+ bool visible; /* if false, hide this column */
+ bool resolved; /* if true, show a more human-readable name */
} fmt_data;
WS_DLL_PUBLIC
-const gchar *col_format_to_string(const gint);
+const char *col_format_to_string(const int);
WS_DLL_PUBLIC
-const gchar *col_format_desc(const gint);
+const char *col_format_desc(const int);
WS_DLL_PUBLIC
-const gchar *col_format_abbrev(const gint);
+const char *col_format_abbrev(const int);
WS_DLL_PUBLIC
-gint get_column_format(const gint);
+int get_column_format(const int);
WS_DLL_PUBLIC
-void set_column_format(const gint, const gint);
+void set_column_format(const int, const int);
WS_DLL_PUBLIC
-void get_column_format_matches(gboolean *, const gint);
+void get_column_format_matches(bool *, const int);
WS_DLL_PUBLIC
-gint get_column_format_from_str(const gchar *);
+int get_column_format_from_str(const char *);
WS_DLL_PUBLIC
-gchar *get_column_title(const gint);
+char *get_column_title(const int);
WS_DLL_PUBLIC
-void set_column_title(const gint, const gchar *);
+void set_column_title(const int, const char *);
WS_DLL_PUBLIC
-gboolean get_column_visible(const gint);
+bool get_column_visible(const int);
WS_DLL_PUBLIC
-void set_column_visible(const gint, gboolean);
+void set_column_visible(const int, bool);
WS_DLL_PUBLIC
-gboolean get_column_resolved(const gint);
+bool get_column_resolved(const int);
WS_DLL_PUBLIC
-void set_column_resolved(const gint, gboolean);
+void set_column_resolved(const int, bool);
WS_DLL_PUBLIC
-const gchar *get_column_custom_fields(const gint);
+const char *get_column_custom_fields(const int);
WS_DLL_PUBLIC
-void set_column_custom_fields(const gint, const char *);
+void set_column_custom_fields(const int, const char *);
WS_DLL_PUBLIC
-gint get_column_custom_occurrence(const gint);
+int get_column_custom_occurrence(const int);
WS_DLL_PUBLIC
-void set_column_custom_occurrence(const gint, const gint);
+void set_column_custom_occurrence(const int, const int);
WS_DLL_PUBLIC
-const gchar *get_column_width_string(const gint, const gint);
+const char *get_column_longest_string(const int);
WS_DLL_PUBLIC
-gint get_column_char_width(const gint format);
+const char *get_column_width_string(const int, const int);
WS_DLL_PUBLIC
-gchar *get_column_tooltip(const gint col);
+int get_column_char_width(const int format);
+WS_DLL_PUBLIC
+char *get_column_tooltip(const int col);
/** Get the text of a column element. The string returned may
* depend on whether the resolved member variable is set.
@@ -82,7 +84,7 @@ gchar *get_column_tooltip(const gint col);
* @return the text string
*/
WS_DLL_PUBLIC
-const gchar *get_column_text(column_info *cinfo, const gint col);
+const char *get_column_text(column_info *cinfo, const int col);
WS_DLL_PUBLIC
void
@@ -90,7 +92,7 @@ col_finalize(column_info *cinfo);
WS_DLL_PUBLIC
void
-build_column_format_array(column_info *cinfo, const gint num_cols, const gboolean reset_fences);
+build_column_format_array(column_info *cinfo, const int num_cols, const bool reset_fences);
WS_DLL_PUBLIC
void column_dump_column_formats(void);
@@ -105,10 +107,10 @@ void column_dump_column_formats(void);
* the custom_fields member as well.
* @param[in] fmt The column format to parse.
*
- * @return TRUE if conversion was successful, FALSE if unsuccessful
+ * @return true if conversion was successful, false if unsuccessful
*/
WS_DLL_PUBLIC
-gboolean parse_column_format(fmt_data *cfmt, const char *fmt);
+bool parse_column_format(fmt_data *cfmt, const char *fmt);
/** Checks a column format string to see if it is a deprecated column
* that has been migrated to a custom column, and converts the format
diff --git a/epan/conv_id.h b/epan/conv_id.h
index 0e4c753362..123ce06ba6 100644
--- a/epan/conv_id.h
+++ b/epan/conv_id.h
@@ -12,6 +12,8 @@
#ifndef __CONV_ID_H__
#define __CONV_ID_H__
+#include <stdint.h>
+
/** conv_id_t is a type that can aid in conversation identification. When
* included in a "conversation key", whatever that may be, in addition to the
* typical { address, port, address, port } quadruple, it helps differentiate
@@ -29,7 +31,7 @@
* tcp.stream. If a conv_id_t field is not used, it should be assigned the
* value CONV_ID_UNSET.
*/
-typedef guint32 conv_id_t;
+typedef uint32_t conv_id_t;
#define CONV_ID_UNSET G_MAXUINT32
#endif /* __CONV_ID_H__ */
diff --git a/epan/conversation.c b/epan/conversation.c
index ad8b0539f2..d62cbb9222 100644
--- a/epan/conversation.c
+++ b/epan/conversation.c
@@ -14,6 +14,8 @@
#include <glib.h>
+#include <wiretap/wtap.h>
+
#include "packet.h"
#include "to_str.h"
#include "conversation.h"
@@ -36,7 +38,7 @@
#include "conversation_debug.h"
#ifdef DEBUG_CONVERSATION
-int _debug_conversation_indent = 0;
+int _debug_conversation_indent;
#endif
/*
@@ -70,6 +72,28 @@ enum {
ENDP_NO_PORTS_IDX = ADDR2_IDX
};
+/* Element offsets for the deinterlacer conversations */
+enum {
+ DEINTR_ADDR1_IDX,
+ DEINTR_ADDR2_IDX,
+ DEINTR_KEY1_IDX,
+ DEINTR_KEY2_IDX,
+ DEINTR_KEY3_IDX,
+ DEINTR_ENDP_IDX
+};
+
+/* Element offsets for the deinterlaced conversations */
+enum {
+ DEINTD_ADDR1_IDX,
+ DEINTD_ADDR2_IDX,
+ DEINTD_PORT1_IDX,
+ DEINTD_PORT2_IDX,
+ DEINTD_ENDP_EXACT_IDX,
+ DEINTD_EXACT_IDX_COUNT,
+ DEINTD_ADDRS_IDX_COUNT = DEINTD_PORT2_IDX,
+ DEINTD_ENDP_NO_PORTS_IDX = DEINTD_PORT1_IDX
+};
+
/* Names for conversation_element_type values. */
static const char *type_names[] = {
"endpoint",
@@ -80,42 +104,58 @@ static const char *type_names[] = {
"uint64",
"int",
"int64",
+ "blob",
};
/*
* Hash table of hash tables for conversations identified by element lists.
*/
-static wmem_map_t *conversation_hashtable_element_list = NULL;
+static wmem_map_t *conversation_hashtable_element_list;
/*
* Hash table for conversations based on addresses only
*/
-static wmem_map_t *conversation_hashtable_exact_addr = NULL;
+static wmem_map_t *conversation_hashtable_exact_addr;
/*
* Hash table for conversations with no wildcards.
*/
-static wmem_map_t *conversation_hashtable_exact_addr_port = NULL;
+static wmem_map_t *conversation_hashtable_exact_addr_port;
/*
* Hash table for conversations with one wildcard address.
*/
-static wmem_map_t *conversation_hashtable_no_addr2 = NULL;
+static wmem_map_t *conversation_hashtable_no_addr2;
/*
* Hash table for conversations with one wildcard port.
*/
-static wmem_map_t *conversation_hashtable_no_port2 = NULL;
+static wmem_map_t *conversation_hashtable_no_port2;
/*
* Hash table for conversations with one wildcard address and port.
*/
-static wmem_map_t *conversation_hashtable_no_addr2_or_port2 = NULL;
+static wmem_map_t *conversation_hashtable_no_addr2_or_port2;
/*
* Hash table for conversations with a single unsigned ID number.
*/
-static wmem_map_t *conversation_hashtable_id = NULL;
+static wmem_map_t *conversation_hashtable_id;
+
+/*
+ * Hash table for conversations with no wildcards, and an anchor
+ */
+static wmem_map_t *conversation_hashtable_exact_addr_port_anc = NULL;
+
+/*
+ * Hash table for conversations based on addresses only, and an anchor
+ */
+static wmem_map_t *conversation_hashtable_exact_addr_anc = NULL;
+
+/*
+ * Hash table for deinterlacing conversations (typically L1 or L2)
+ */
+static wmem_map_t *conversation_hashtable_deinterlacer = NULL;
static guint32 new_index;
@@ -205,6 +245,14 @@ static char* conversation_element_list_values(conversation_element_t *elements)
case CE_INT64:
g_string_append_printf(value_str, "%" PRId64, cur_el->int64_val);
break;
+ case CE_BLOB:
+ {
+ size_t l;
+ uint8_t const *p;
+ for (l = cur_el->blob.len, p = cur_el->blob.val; l > 0; l--, p++)
+ g_string_append_printf(value_str, "%02x", *p);
+ }
+ break;
}
}
return g_string_free(value_str, FALSE);
@@ -388,6 +436,11 @@ conversation_hash_element_list(gconstpointer v)
tmp_addr.data = &element->int64_val;
hash_val = add_address_to_hash(hash_val, &tmp_addr);
break;
+ case CE_BLOB:
+ tmp_addr.len = (int) element->blob.len;
+ tmp_addr.data = element->blob.val;
+ hash_val = add_address_to_hash(hash_val, &tmp_addr);
+ break;
case CE_CONVERSATION_TYPE:
tmp_addr.len = (int) sizeof(element->conversation_type_val);
tmp_addr.data = &element->conversation_type_val;
@@ -456,6 +509,12 @@ conversation_match_element_list(gconstpointer v1, gconstpointer v2)
return FALSE;
}
break;
+ case CE_BLOB:
+ if (element1->blob.len != element2->blob.len ||
+ (element1->blob.len > 0 && memcmp(element1->blob.val, element2->blob.val, element1->blob.len) != 0)) {
+ return FALSE;
+ }
+ break;
case CE_CONVERSATION_TYPE:
if (element1->conversation_type_val != element2->conversation_type_val) {
return FALSE;
@@ -562,6 +621,73 @@ conversation_init(void)
conversation_match_element_list);
wmem_map_insert(conversation_hashtable_element_list, wmem_strdup(wmem_epan_scope(), id_map_key),
conversation_hashtable_id);
+
+ /*
+ * Initialize the "deinterlacer" table, which is used as the basis for the
+ * deinterlacing process, and in conjunction with the "anchor" tables
+ *
+ * Typically the elements are:
+ * ETH address 1
+ * ETH address 2
+ * Interface id
+ * VLAN id
+ * not used yet
+ *
+ * By the time of implementation, these table is invoked through the
+ * conversation_deinterlacing_key user preference.
+ */
+ conversation_element_t deinterlacer_elements[EXACT_IDX_COUNT+1] = {
+ { CE_ADDRESS, .addr_val = ADDRESS_INIT_NONE },
+ { CE_ADDRESS, .addr_val = ADDRESS_INIT_NONE },
+ { CE_UINT, .port_val = 0 },
+ { CE_UINT, .port_val = 0 },
+ { CE_UINT, .uint_val = 0 },
+ { CE_CONVERSATION_TYPE, .conversation_type_val = CONVERSATION_NONE }
+ };
+ char *deinterlacer_map_key = conversation_element_list_name(wmem_epan_scope(), deinterlacer_elements);
+ conversation_hashtable_deinterlacer = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(),
+ conversation_hash_element_list,
+ conversation_match_element_list);
+ wmem_map_insert(conversation_hashtable_element_list, wmem_strdup(wmem_epan_scope(), deinterlacer_map_key),
+ conversation_hashtable_deinterlacer);
+
+ /*
+ * Initialize the "_anc" tables, which are very similar to their standard counterparts
+ * but contain an additional "anchor" materialized as an integer. This value is supposed
+ * to indicate a stream ID of the underlying protocol, thus attaching two conversations
+ * of two protocols together.
+ *
+ * By the time of implementation, these table is invoked through the
+ * conversation_deinterlacing_key user preference.
+ */
+ conversation_element_t exact_elements_anc[EXACT_IDX_COUNT+1] = {
+ { CE_ADDRESS, .addr_val = ADDRESS_INIT_NONE },
+ { CE_ADDRESS, .addr_val = ADDRESS_INIT_NONE },
+ { CE_PORT, .port_val = 0 },
+ { CE_PORT, .port_val = 0 },
+ { CE_UINT, .uint_val = 0 },
+ { CE_CONVERSATION_TYPE, .conversation_type_val = CONVERSATION_NONE }
+ };
+ char *exact_anc_map_key = conversation_element_list_name(wmem_epan_scope(), exact_elements_anc);
+ conversation_hashtable_exact_addr_port_anc = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(),
+ conversation_hash_element_list,
+ conversation_match_element_list);
+ wmem_map_insert(conversation_hashtable_element_list, wmem_strdup(wmem_epan_scope(), exact_anc_map_key),
+ conversation_hashtable_exact_addr_port_anc);
+
+ conversation_element_t addrs_elements_anc[ADDRS_IDX_COUNT+1] = {
+ { CE_ADDRESS, .addr_val = ADDRESS_INIT_NONE },
+ { CE_ADDRESS, .addr_val = ADDRESS_INIT_NONE },
+ { CE_UINT, .uint_val = 0 },
+ { CE_CONVERSATION_TYPE, .conversation_type_val = CONVERSATION_NONE }
+ };
+ char *addrs_anc_map_key = conversation_element_list_name(wmem_epan_scope(), addrs_elements_anc);
+ conversation_hashtable_exact_addr_anc = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(),
+ conversation_hash_element_list,
+ conversation_match_element_list);
+ wmem_map_insert(conversation_hashtable_element_list, wmem_strdup(wmem_epan_scope(), addrs_anc_map_key),
+ conversation_hashtable_exact_addr_anc);
+
}
/**
@@ -714,6 +840,8 @@ conversation_t *conversation_new_full(const guint32 setup_frame, conversation_el
copy_address_wmem(wmem_file_scope(), &conv_key[i].addr_val, &elements[i].addr_val);
} else if (conv_key[i].type == CE_STRING) {
conv_key[i].str_val = wmem_strdup(wmem_file_scope(), elements[i].str_val);
+ } else if (conv_key[i].type == CE_BLOB) {
+ conv_key[i].blob.val = wmem_memdup(wmem_file_scope(), elements[i].blob.val, elements[i].blob.len);
}
}
@@ -927,6 +1055,28 @@ conversation_new(const guint32 setup_frame, const address *addr1, const address
}
conversation_t *
+conversation_new_strat(packet_info *pinfo, const conversation_type ctype, const guint options)
+{
+ conversation_t *conversation = NULL;
+ gboolean is_ordinary_conv = TRUE;
+
+ if(prefs.conversation_deinterlacing_key>0) {
+ conversation_t *underlying_conv = find_conversation_deinterlacer_pinfo(pinfo);
+ if(underlying_conv) {
+ is_ordinary_conv = FALSE;
+ conversation = conversation_new_deinterlaced(pinfo->num, &pinfo->src, &pinfo->dst, ctype,
+ pinfo->srcport, pinfo->destport, underlying_conv->conv_index, options);
+ }
+ }
+
+ if(is_ordinary_conv) {
+ conversation = conversation_new(pinfo->num, &pinfo->src, &pinfo->dst, ctype, pinfo->srcport, pinfo->destport, options);
+ }
+
+ return conversation;
+}
+
+conversation_t *
conversation_new_by_id(const guint32 setup_frame, const conversation_type ctype, const guint32 id)
{
conversation_t *conversation = wmem_new0(wmem_file_scope(), conversation_t);
@@ -946,6 +1096,141 @@ conversation_new_by_id(const guint32 setup_frame, const conversation_type ctype,
return conversation;
}
+conversation_t *
+conversation_new_deinterlacer(const guint32 setup_frame, const address *addr1, const address *addr2,
+ const conversation_type ctype, const guint32 key1, const guint32 key2, const guint32 key3)
+{
+
+ conversation_t *conversation = wmem_new0(wmem_file_scope(), conversation_t);
+ conversation->conv_index = new_index;
+ conversation->setup_frame = conversation->last_frame = setup_frame;
+
+ conversation_element_t *new_key = wmem_alloc(wmem_file_scope(), sizeof(conversation_element_t) * (DEINTR_ENDP_IDX+1));
+
+ new_key[DEINTR_ADDR1_IDX].type = CE_ADDRESS;
+ if (addr1 != NULL) {
+ copy_address_wmem(wmem_file_scope(), &new_key[DEINTR_ADDR1_IDX].addr_val, addr1);
+ }
+ else {
+ clear_address(&new_key[DEINTR_ADDR1_IDX].addr_val);
+ }
+
+ new_key[DEINTR_ADDR2_IDX].type = CE_ADDRESS;
+ if (addr2 != NULL) {
+ copy_address_wmem(wmem_file_scope(), &new_key[DEINTR_ADDR2_IDX].addr_val, addr2);
+ }
+ else {
+ clear_address(&new_key[DEINTR_ADDR2_IDX].addr_val);
+ }
+
+ new_key[DEINTR_KEY1_IDX].type = CE_UINT;
+ new_key[DEINTR_KEY1_IDX].uint_val = key1;
+
+ new_key[DEINTR_KEY2_IDX].type = CE_UINT;
+ new_key[DEINTR_KEY2_IDX].uint_val = key2;
+
+ new_key[DEINTR_KEY3_IDX].type = CE_UINT;
+ new_key[DEINTR_KEY3_IDX].uint_val = key3;
+
+ new_key[DEINTR_ENDP_IDX].type = CE_CONVERSATION_TYPE;
+ new_key[DEINTR_ENDP_IDX].conversation_type_val = ctype;
+
+ conversation->key_ptr = new_key;
+
+ new_index++;
+
+ conversation_insert_into_hashtable(conversation_hashtable_deinterlacer, conversation);
+
+ return conversation;
+}
+
+conversation_t *
+conversation_new_deinterlaced(const guint32 setup_frame, const address *addr1, const address *addr2,
+ const conversation_type ctype, const guint32 port1, const guint32 port2, const guint32 anchor, const guint options)
+{
+
+ conversation_t *conversation = wmem_new0(wmem_file_scope(), conversation_t);
+ conversation->conv_index = new_index;
+ conversation->setup_frame = conversation->last_frame = setup_frame;
+
+ if (options & NO_PORTS) {
+ conversation_element_t *new_key = wmem_alloc(wmem_file_scope(), sizeof(conversation_element_t) * (DEINTD_ENDP_NO_PORTS_IDX+1));
+
+ new_key[DEINTD_ADDR1_IDX].type = CE_ADDRESS;
+ if (addr1 != NULL) {
+ copy_address_wmem(wmem_file_scope(), &new_key[DEINTD_ADDR1_IDX].addr_val, addr1);
+ }
+ else {
+ clear_address(&new_key[DEINTD_ADDR1_IDX].addr_val);
+ }
+
+ new_key[DEINTD_ADDR2_IDX].type = CE_ADDRESS;
+ if (addr2 != NULL) {
+ copy_address_wmem(wmem_file_scope(), &new_key[DEINTD_ADDR2_IDX].addr_val, addr2);
+ }
+ else {
+ clear_address(&new_key[DEINTD_ADDR2_IDX].addr_val);
+ }
+
+ new_key[DEINTD_ENDP_NO_PORTS_IDX].type = CE_UINT;
+ new_key[DEINTD_ENDP_NO_PORTS_IDX].uint_val = anchor;
+
+ new_key[DEINTD_ENDP_NO_PORTS_IDX+ 1].type = CE_CONVERSATION_TYPE;
+ new_key[DEINTD_ENDP_NO_PORTS_IDX+ 1].conversation_type_val = ctype;
+
+ // set the options and key pointer
+ conversation->options = options;
+ conversation->key_ptr = new_key;
+
+ new_index++;
+
+ conversation_insert_into_hashtable(conversation_hashtable_exact_addr_anc, conversation);
+
+ return conversation;
+ }
+ else {
+ conversation_element_t *new_key = wmem_alloc(wmem_file_scope(), sizeof(conversation_element_t) * (DEINTD_EXACT_IDX_COUNT+1));
+
+ new_key[DEINTD_ADDR1_IDX].type = CE_ADDRESS;
+ if (addr1 != NULL) {
+ copy_address_wmem(wmem_file_scope(), &new_key[DEINTD_ADDR1_IDX].addr_val, addr1);
+ }
+ else {
+ clear_address(&new_key[DEINTD_ADDR1_IDX].addr_val);
+ }
+
+ new_key[DEINTD_ADDR2_IDX].type = CE_ADDRESS;
+ if (addr2 != NULL) {
+ copy_address_wmem(wmem_file_scope(), &new_key[DEINTD_ADDR2_IDX].addr_val, addr2);
+ }
+ else {
+ clear_address(&new_key[DEINTD_ADDR2_IDX].addr_val);
+ }
+
+ new_key[DEINTD_PORT1_IDX].type = CE_PORT;
+ new_key[DEINTD_PORT1_IDX].port_val = port1;
+
+ new_key[DEINTD_PORT2_IDX].type = CE_PORT;
+ new_key[DEINTD_PORT2_IDX].port_val = port2;
+
+ new_key[DEINTD_ENDP_EXACT_IDX].type = CE_UINT;
+ new_key[DEINTD_ENDP_EXACT_IDX].uint_val = anchor;
+
+ new_key[DEINTD_ENDP_EXACT_IDX + 1].type = CE_CONVERSATION_TYPE;
+ new_key[DEINTD_ENDP_EXACT_IDX + 1].conversation_type_val = ctype;
+
+ // set the options and key pointer
+ conversation->options = options;
+ conversation->key_ptr = new_key;
+
+ new_index++;
+
+ conversation_insert_into_hashtable(conversation_hashtable_exact_addr_port_anc, conversation);
+
+ return conversation;
+ }
+}
+
/*
* Set the port 2 value in a key. Remove the original from table,
* update the options and port values, insert the updated key.
@@ -1166,6 +1451,76 @@ conversation_lookup_no_ports(const guint32 frame_num, const address *addr1,
}
/*
+ * Search a particular hash table for a conversation with the specified
+ * {addr1, port1, addr2, port2, anchor} and set up before frame_num.
+ */
+static conversation_t *
+conversation_lookup_exact_anc(const guint32 frame_num, const address *addr1, const guint32 port1,
+ const address *addr2, const guint32 port2, const conversation_type ctype,
+ const guint32 anchor)
+{
+ conversation_element_t key[DEINTD_EXACT_IDX_COUNT+1] = {
+ { CE_ADDRESS, .addr_val = *addr1 },
+ { CE_ADDRESS, .addr_val = *addr2 },
+ { CE_PORT, .port_val = port1 },
+ { CE_PORT, .port_val = port2 },
+ { CE_UINT, .uint_val = anchor },
+ { CE_CONVERSATION_TYPE, .conversation_type_val = ctype },
+ };
+ return conversation_lookup_hashtable(conversation_hashtable_exact_addr_port_anc, frame_num, key);
+}
+
+/*
+ * Search a particular hash table for a conversation with the specified
+ * {addr1, addr2, anchor} and set up before frame_num.
+ */
+static conversation_t *
+conversation_lookup_no_ports_anc(const guint32 frame_num, const address *addr1,
+ const address *addr2, const conversation_type ctype, const guint32 anchor)
+{
+ conversation_element_t key[DEINTD_ADDRS_IDX_COUNT+1] = {
+ { CE_ADDRESS, .addr_val = *addr1 },
+ { CE_ADDRESS, .addr_val = *addr2 },
+ { CE_UINT, .uint_val = anchor },
+ { CE_CONVERSATION_TYPE, .conversation_type_val = ctype },
+ };
+ return conversation_lookup_hashtable(conversation_hashtable_exact_addr_anc, frame_num, key);
+}
+
+static conversation_t *
+conversation_lookup_no_anc_anc(const guint32 frame_num, const address *addr1,
+ const address *addr2, const conversation_type ctype)
+{
+ conversation_element_t key[ADDRS_IDX_COUNT] = {
+ { CE_ADDRESS, .addr_val = *addr1 },
+ { CE_ADDRESS, .addr_val = *addr2 },
+ { CE_CONVERSATION_TYPE, .conversation_type_val = ctype },
+ };
+ return conversation_lookup_hashtable(conversation_hashtable_exact_addr_anc, frame_num, key);
+}
+
+/*
+ * Search a particular hash table for a conversation with the specified
+ * {addr1, addr2, key1, key2, key3} and set up before frame_num.
+ * At this moment only the deinterlace table is likely to be called.
+ */
+static conversation_t *
+conversation_lookup_deinterlacer(const guint32 frame_num, const address *addr1,
+ const address *addr2, const conversation_type ctype,
+ const guint32 key1, const guint32 key2, const guint32 key3)
+{
+ conversation_element_t key[DEINTR_ENDP_IDX+1] = {
+ { CE_ADDRESS, .addr_val = *addr1 },
+ { CE_ADDRESS, .addr_val = *addr2 },
+ { CE_UINT, .uint_val = key1 },
+ { CE_UINT, .uint_val = key2 },
+ { CE_UINT, .uint_val = key3 },
+ { CE_CONVERSATION_TYPE, .conversation_type_val = ctype },
+ };
+ return conversation_lookup_hashtable(conversation_hashtable_deinterlacer, frame_num, key);
+}
+
+/*
* Given two address/port pairs for a packet, search for a conversation
* containing packets between those address/port pairs. Returns NULL if
* not found.
@@ -1583,6 +1938,127 @@ end:
}
conversation_t *
+find_conversation_deinterlaced(const guint32 frame_num, const address *addr_a, const address *addr_b, const conversation_type ctype,
+ const guint32 port_a, const guint32 port_b, const guint32 anchor, const guint options)
+{
+ conversation_t *conversation, *other_conv;
+
+ if (!(options & (NO_ADDR_B|NO_PORT_B|NO_PORT_X|NO_ANC))) {
+ conversation = conversation_lookup_exact_anc(frame_num, addr_a, port_a, addr_b, port_b, ctype, anchor);
+
+ other_conv = conversation_lookup_exact_anc(frame_num, addr_b, port_b, addr_a, port_a, ctype, anchor);
+ if (other_conv != NULL) {
+ if (conversation != NULL) {
+ if(other_conv->conv_index > conversation->conv_index) {
+ conversation = other_conv;
+ }
+ }
+ else {
+ conversation = other_conv;
+ }
+ }
+
+ }
+ else { /* typically : IP protocols */
+ if (!(options & NO_ANC)) {
+ conversation = conversation_lookup_no_ports_anc(frame_num, addr_a, addr_b, ctype, anchor);
+ other_conv = conversation_lookup_no_ports_anc(frame_num, addr_b, addr_a, ctype, anchor);
+ if (other_conv != NULL) {
+ if (conversation != NULL) {
+ if(other_conv->conv_index > conversation->conv_index) {
+ conversation = other_conv;
+ }
+ }
+ else {
+ conversation = other_conv;
+ }
+ }
+ }
+ else { /* NO_ANC */
+ conversation = conversation_lookup_no_anc_anc(frame_num, addr_a, addr_b, ctype);
+ other_conv = conversation_lookup_no_anc_anc(frame_num, addr_b, addr_a, ctype);
+ if (other_conv != NULL) {
+ if (conversation != NULL) {
+ if(other_conv->conv_index > conversation->conv_index) {
+ conversation = other_conv;
+ }
+ }
+ else {
+ conversation = other_conv;
+ }
+ }
+ }
+ }
+
+ return conversation;
+}
+
+conversation_t *
+find_conversation_deinterlacer(const guint32 frame_num, const address *addr_a, const address *addr_b,
+ const conversation_type ctype, const guint32 key_a, const guint32 key_b, const guint32 key_c)
+{
+ conversation_t *conversation, *other_conv;
+
+ conversation = conversation_lookup_deinterlacer(frame_num, addr_a, addr_b, ctype, key_a, key_b, key_c);
+
+ other_conv = conversation_lookup_deinterlacer(frame_num, addr_b, addr_a, ctype, key_a, key_b, key_c);
+ if (other_conv != NULL) {
+ if (conversation != NULL) {
+ if(other_conv->conv_index > conversation->conv_index) {
+ conversation = other_conv;
+ }
+ }
+ else {
+ conversation = other_conv;
+ }
+ }
+
+ return conversation;
+}
+
+conversation_t *
+find_conversation_deinterlacer_pinfo(const packet_info *pinfo)
+{
+ conversation_t *conv=NULL;
+ guint dr_conv_type; /* deinterlacer conv type */
+ guint32 dtlc_iface = 0;
+ guint32 dtlc_vlan = 0;
+
+ /* evaluate the execution context: user pref, interface, VLAN */
+ if(prefs.conversation_deinterlacing_key>0) {
+ if(prefs.conversation_deinterlacing_key&CONV_DEINT_KEY_INTERFACE &&
+ pinfo->rec->presence_flags & WTAP_HAS_INTERFACE_ID) {
+
+ if(prefs.conversation_deinterlacing_key&CONV_DEINT_KEY_VLAN &&
+ pinfo->vlan_id>0) {
+
+ dr_conv_type = CONVERSATION_ETH_IV;
+ dtlc_vlan = pinfo->vlan_id;
+ }
+ else {
+ dr_conv_type = CONVERSATION_ETH_IN;
+ }
+ dtlc_iface = pinfo->rec->rec_header.packet_header.interface_id;
+ }
+ else {
+ if(prefs.conversation_deinterlacing_key&CONV_DEINT_KEY_VLAN &&
+ pinfo->vlan_id>0) {
+
+ dr_conv_type = CONVERSATION_ETH_NV;
+ dtlc_vlan = pinfo->vlan_id;
+ }
+ else {
+ dr_conv_type = CONVERSATION_ETH_NN;
+ }
+ }
+
+ conv = find_conversation_deinterlacer(pinfo->num, &pinfo->dl_src, &pinfo->dl_dst, dr_conv_type, dtlc_iface, dtlc_vlan , 0);
+ }
+
+ return conv;
+}
+
+conversation_t *
find_conversation_by_id(const guint32 frame, const conversation_type ctype, const guint32 id)
{
conversation_element_t elements[2] = {
@@ -1768,11 +2244,30 @@ try_conversation_dissector_by_id(const conversation_type ctype, const guint32 id
return FALSE;
}
+/* identifies a conversation ("classic" or deinterlaced) */
+conversation_t *
+find_conversation_strat(const packet_info *pinfo, const conversation_type ctype, const guint options)
+{
+ conversation_t *conv=NULL;
+
+ if(prefs.conversation_deinterlacing_key>0) {
+ conversation_t *underlying_conv = find_conversation_deinterlacer_pinfo(pinfo);
+ if(underlying_conv) {
+ conv = find_conversation_deinterlaced(pinfo->num, &pinfo->src, &pinfo->dst, ctype, pinfo->srcport, pinfo->destport, underlying_conv->conv_index, options);
+ }
+ }
+ else {
+ conv = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst, ctype, pinfo->srcport, pinfo->destport, options);
+ }
+
+ return conv;
+}
+
/** A helper function that calls find_conversation() using data from pinfo
* The frame number and addresses are taken from pinfo.
*/
conversation_t *
-find_conversation_pinfo(packet_info *pinfo, const guint options)
+find_conversation_pinfo(const packet_info *pinfo, const guint options)
{
conversation_t *conv = NULL;
@@ -1822,6 +2317,52 @@ find_conversation_pinfo(packet_info *pinfo, const guint options)
return conv;
}
+/** A helper function that calls find_conversation() using data from pinfo,
+ * as above, but somewhat simplified for being accessed from packet_list.
+ * The frame number and addresses are taken from pinfo.
+ */
+conversation_t *
+find_conversation_pinfo_ro(const packet_info *pinfo, const guint options)
+{
+ conversation_t *conv = NULL;
+
+ DINSTR(gchar *src_str = address_to_str(NULL, &pinfo->src));
+ DINSTR(gchar *dst_str = address_to_str(NULL, &pinfo->dst));
+ DPRINT(("called for frame #%u: %s:%d -> %s:%d (ptype=%d)",
+ pinfo->num, src_str, pinfo->srcport,
+ dst_str, pinfo->destport, pinfo->ptype));
+ DINDENT();
+ DINSTR(wmem_free(NULL, src_str));
+ DINSTR(wmem_free(NULL, dst_str));
+
+ /* Have we seen this conversation before? */
+ if (pinfo->use_conv_addr_port_endpoints) {
+ DISSECTOR_ASSERT(pinfo->conv_addr_port_endpoints);
+ if ((conv = find_conversation(pinfo->num, &pinfo->conv_addr_port_endpoints->addr1, &pinfo->conv_addr_port_endpoints->addr2,
+ pinfo->conv_addr_port_endpoints->ctype, pinfo->conv_addr_port_endpoints->port1,
+ pinfo->conv_addr_port_endpoints->port2, 0)) != NULL) {
+ DPRINT(("found previous conversation for frame #%u (last_frame=%d)",
+ pinfo->num, conv->last_frame));
+ }
+ } else if (pinfo->conv_elements) {
+ if ((conv = find_conversation_full(pinfo->num, pinfo->conv_elements)) != NULL) {
+ DPRINT(("found previous conversation elements for frame #%u (last_frame=%d)",
+ pinfo->num, conv->last_frame));
+ }
+ } else {
+ if ((conv = find_conversation_strat(pinfo, conversation_pt_to_conversation_type(pinfo->ptype), options)) != NULL) {
+ DPRINT(("found previous conversation for frame #%u (last_frame=%d)",
+ pinfo->num, conv->last_frame));
+ }
+ /* else: something is either not implemented or not handled,
+ * ICMP Type 3/11 are good examples. */
+ }
+
+ DENDENT();
+
+ return conv;
+}
+
/* A helper function that calls find_conversation() and, if a conversation is
* not found, calls conversation_new().
* The frame number and addresses are taken from pinfo.
diff --git a/epan/conversation.h b/epan/conversation.h
index e1feadc0c0..736592217e 100644
--- a/epan/conversation.h
+++ b/epan/conversation.h
@@ -52,6 +52,7 @@ extern "C" {
#define NO_ADDR_B 0x00010000
#define NO_PORT_B 0x00020000
#define NO_PORT_X 0x00040000
+#define NO_ANC 0x00080000
/** Flags to handle endpoints */
#define USE_LAST_ENDPOINT 0x08 /**< Use last endpoint created, regardless of type */
@@ -103,7 +104,12 @@ typedef enum {
CONVERSATION_IDN,
CONVERSATION_IP, /* IP */
CONVERSATION_IPV6, /* IPv6 */
- CONVERSATION_ETH /* ETHERNET */
+ CONVERSATION_ETH, /* ETHERNET classic */
+ CONVERSATION_ETH_NN, /* ETHERNET deinterlaced Interface:N VLAN:N */
+ CONVERSATION_ETH_NV, /* ETHERNET deinterlaced Interface:N VLAN:Y */
+ CONVERSATION_ETH_IN, /* ETHERNET deinterlaced Interface:Y VLAN:N */
+ CONVERSATION_ETH_IV, /* ETHERNET deinterlaced Interface:Y VLAN:Y */
+ CONVERSATION_VSPC_VMOTION, /* VMware vSPC vMotion (Telnet) */
} conversation_type;
/*
@@ -166,6 +172,7 @@ typedef enum {
CE_UINT64, /* 64-bit unsigned integer */
CE_INT, /* signed integer */
CE_INT64, /* signed integer */
+ CE_BLOB, /* arbitrary binary data */
} conversation_element_type;
/**
@@ -200,6 +207,10 @@ typedef struct conversation_element {
uint64_t uint64_val;
int int_val;
int64_t int64_val;
+ struct {
+ const uint8_t *val;
+ size_t len;
+ } blob;
};
} conversation_element_t;
@@ -305,6 +316,40 @@ WS_DLL_PUBLIC WS_RETNONNULL conversation_t *conversation_new(const guint32 setup
WS_DLL_PUBLIC WS_RETNONNULL conversation_t *conversation_new_by_id(const guint32 setup_frame, const conversation_type ctype, const guint32 id);
/**
+ *
+ */
+WS_DLL_PUBLIC WS_RETNONNULL conversation_t *conversation_new_deinterlaced(const guint32 setup_frame, const address *addr1, const address *addr2,
+ const conversation_type ctype, const guint32 port1, const guint32 port2, const guint32 anchor, const guint options);
+
+/**
+ * Create a deinterlacer conversation, based on two addresses,
+ * a type, and several keys (VLAN, Mac, Interface).
+ *
+ * @param setup_frame The first frame in the conversation.
+ * @param addr1 The first address in the identifying tuple.
+ * @param addr2 The second address in the identifying tuple.
+ * @param ctype The conversation type.
+ * @param key1 The first key in the identifying tuple.
+ * @param key2 The second key in the identifying tuple.
+ * @param key3 The third key in the identifying tuple.
+ * @return The new conversation.
+ */
+WS_DLL_PUBLIC WS_RETNONNULL conversation_t *conversation_new_deinterlacer(const guint32 setup_frame, const address *addr1, const address *addr2,
+ const conversation_type ctype, const guint32 key1, const guint32 key2, const guint32 key3);
+
+/**
+ * A helper function for creating conversations according to the runtime deinterlacing strategy,
+ * which means the returned conversation is either a classic (historical) object, or a deinterlaced one.
+ *
+ * @param pinfo Packet info.
+ * @param ctype The conversation type.
+ * @param options NO_ADDR2, NO_PORT2, NO_PORT2_FORCE, or CONVERSATION_TEMPLATE.
+ * Options except for NO_PORT2 and NO_PORT2_FORCE can be ORed.
+ * @return The new conversation.
+ */
+WS_DLL_PUBLIC WS_RETNONNULL conversation_t *conversation_new_strat(packet_info *pinfo, const conversation_type ctype, const guint options);
+
+/**
* Search for a conversation based on the structure and values of an element list.
* @param frame_num Frame number. Must be greater than or equal to the conversation's initial frame number.
* @param elements An array of element types and values. Must not be NULL. Must be terminated with a CE_CONVERSATION_TYPE element.
@@ -362,12 +407,39 @@ WS_DLL_PUBLIC conversation_t *find_conversation_full(const guint32 frame_num, co
WS_DLL_PUBLIC conversation_t *find_conversation(const guint32 frame_num, const address *addr_a, const address *addr_b,
const conversation_type ctype, const guint32 port_a, const guint32 port_b, const guint options);
+WS_DLL_PUBLIC conversation_t *find_conversation_deinterlaced(const guint32 frame_num, const address *addr_a, const address *addr_b,
+ const conversation_type ctype, const guint32 port_a, const guint32 port_b, const guint32 anchor, const guint options);
+
+WS_DLL_PUBLIC conversation_t *find_conversation_deinterlacer(const guint32 frame_num, const address *addr_a, const address *addr_b,
+ const conversation_type ctype, const guint32 key_a, const guint32 key_b, const guint32 key_c);
+
+/** A wrapper function of find_conversation_deinterlacer() using data from pinfo,
+ * which evaluates the execution context first (user preference, VLAN, interface,..),
+ * and then calls find_conversation_deinterlacer().
+ * The frame number and addresses are taken from pinfo.
+ */
+WS_DLL_PUBLIC conversation_t *find_conversation_deinterlacer_pinfo(const packet_info *pinfo);
+
WS_DLL_PUBLIC conversation_t *find_conversation_by_id(const guint32 frame, const conversation_type ctype, const guint32 id);
+/** A helper function that calls find_conversation() using data from pinfo,
+ * and returns a conversation according to the runtime deinterlacing strategy.
+ * The frame number and addresses are taken from pinfo.
+ */
+WS_DLL_PUBLIC conversation_t *find_conversation_strat(const packet_info *pinfo, const conversation_type ctype, const guint options);
+
/** A helper function that calls find_conversation() using data from pinfo
* The frame number and addresses are taken from pinfo.
*/
-WS_DLL_PUBLIC conversation_t *find_conversation_pinfo(packet_info *pinfo, const guint options);
+WS_DLL_PUBLIC conversation_t *find_conversation_pinfo(const packet_info *pinfo, const guint options);
+
+/** A helper function that calls find_conversation() using data from pinfo.
+ * It's a simplified version of find_conversation_pinfo() to avoid
+ * unnecessary checks and be limited to read-only, which is the minimal
+ * need for displaying packets in packet_list.
+ * The frame number and addresses are taken from pinfo.
+ */
+WS_DLL_PUBLIC conversation_t *find_conversation_pinfo_ro(const packet_info *pinfo, const guint options);
/**
* A helper function that calls find_conversation() and, if a conversation is
diff --git a/epan/conversation_filter.c b/epan/conversation_filter.c
index 58d776b39c..ded403e0ce 100644
--- a/epan/conversation_filter.c
+++ b/epan/conversation_filter.c
@@ -17,10 +17,10 @@
#include "conversation_filter.h"
-GList *packet_conv_filter_list = NULL;
-GList *log_conv_filter_list = NULL;
+GList *packet_conv_filter_list;
+GList *log_conv_filter_list;
-static GSList *conversation_proto_names = NULL;
+static GSList *conversation_proto_names;
void conversation_filters_init(void)
{
diff --git a/epan/conversation_filter.h b/epan/conversation_filter.h
index 26f0f50809..23d22831df 100644
--- a/epan/conversation_filter.h
+++ b/epan/conversation_filter.h
@@ -12,6 +12,8 @@
#ifndef __DISSECTOR_FILTERS_H__
#define __DISSECTOR_FILTERS_H__
+#include <glib.h>
+
#include "ws_symbol_export.h"
#ifdef __cplusplus
@@ -31,7 +33,7 @@ extern void conversation_filters_init(void);
* @param user_data User data provided to register_conversation_filter or register_log_conversation_filter.
* @return TRUE if the packet has a valid conversation filter, FALSE otherwise.
*/
-typedef gboolean (*is_filter_valid_func)(struct _packet_info *pinfo, void *user_data);
+typedef bool (*is_filter_valid_func)(struct _packet_info *pinfo, void *user_data);
/** callback function definition: return the available filter for this packet or NULL if no filter is available,
Filter needs to be freed after use */
diff --git a/epan/conversation_table.c b/epan/conversation_table.c
index 07ac311209..6df6a55dd3 100644
--- a/epan/conversation_table.c
+++ b/epan/conversation_table.c
@@ -59,7 +59,7 @@ tap_packet_cb get_hostlist_packet_func(register_ct_t* ct)
return get_endpoint_packet_func(ct);
}
-static wmem_tree_t *registered_ct_tables = NULL;
+static wmem_tree_t *registered_ct_tables;
void
dissector_conversation_init(const char *opt_arg, void* userdata)
@@ -629,7 +629,7 @@ add_conversation_table_data(conv_hash_t *ch, const address *src, const address *
add_conversation_table_data_with_conv_id(ch, src, dst, src_port, dst_port, CONV_ID_UNSET, num_frames, num_bytes, ts, abs_ts, ct_info, ctype);
}
-void
+conv_item_t *
add_conversation_table_data_with_conv_id(
conv_hash_t *ch,
const address *src,
@@ -770,6 +770,49 @@ add_conversation_table_data_with_conv_id(
memcpy(&conv_item->start_abs_time, abs_ts, sizeof(conv_item->start_abs_time));
}
}
+ return conv_item;
+}
+
+void
+add_conversation_table_data_extended(
+ conv_hash_t *ch,
+ const address *src,
+ const address *dst,
+ guint32 src_port,
+ guint32 dst_port,
+ conv_id_t conv_id,
+ int num_frames,
+ int num_bytes,
+ nstime_t *ts,
+ nstime_t *abs_ts,
+ ct_dissector_info_t *ct_info,
+ conversation_type ctype,
+ guint32 frameid,
+ int (*proto_conv_cb)(conversation_t *) )
+{
+ /* delegate the conversation_table update to the decorated function */
+ conv_item_t *conv_item = add_conversation_table_data_with_conv_id(ch, src, dst, src_port, dst_port, conv_id, num_frames, num_bytes, ts, abs_ts, ct_info, ctype);
+
+ /*
+ * Relies heavily on frameid to identify the conversation.
+ * XXX - Later on, either implement one more find_conversation() function to look for
+ * conv_id in the 'addr/port tuple' Htable, or move the conversation to the convid Htable to
+ * build a quickier identification method.
+ */
+ conversation_t *ct = find_conversation(frameid, src, dst, ctype, src_port, dst_port, 0);
+
+ conv_extension_tcp_t ext_tcp;
+
+ if(ct != NULL) {
+ // invoke the proto callback function which knows how to fill the column(s)
+ ext_tcp.flows = proto_conv_cb(ct);
+ }
+ else {
+ ext_tcp.flows = 0;
+ }
+
+ // update conv_item accordingly
+ memcpy(&conv_item->ext_tcp, &ext_tcp, sizeof(conv_item->ext_tcp));
}
/*
diff --git a/epan/conversation_table.h b/epan/conversation_table.h
index cdd29a2cbf..c77978a6a1 100644
--- a/epan/conversation_table.h
+++ b/epan/conversation_table.h
@@ -112,6 +112,11 @@ typedef void (*endpoint_gui_init_cb)(struct register_ct* ct, const char *filter)
*/
typedef struct register_ct register_ct_t;
+/** Conversation extension for TCP */
+typedef struct _conversation_extension_tcp_t {
+ guint64 flows; /**< number of flows */
+} conv_extension_tcp_t;
+
/** Conversation list information */
typedef struct _conversation_item_t {
ct_dissector_info_t *dissector_info; /**< conversation information provided by dissector */
@@ -137,6 +142,8 @@ typedef struct _conversation_item_t {
nstime_t start_abs_time; /**< absolute start time for the conversation */
gboolean filtered; /**< the entry contains only filtered data */
+
+ conv_extension_tcp_t ext_tcp; /**< extension for optional TCP counters */
} conv_item_t;
/** Endpoint information */
@@ -369,12 +376,22 @@ WS_DLL_PUBLIC void add_conversation_table_data(conv_hash_t *ch, const address *s
* @param ctype the conversation type (e.g. CONVERSATION_TCP)
* @param conv_id a value to help differentiate the conversation in case the address and port quadruple is not sufficiently unique
*/
-WS_DLL_PUBLIC void
+WS_DLL_PUBLIC conv_item_t *
add_conversation_table_data_with_conv_id(conv_hash_t *ch, const address *src, const address *dst, guint32 src_port,
guint32 dst_port, conv_id_t conv_id, int num_frames, int num_bytes,
nstime_t *ts, nstime_t *abs_ts, ct_dissector_info_t *ct_info,
conversation_type ctype);
+/** Decorates add_conversation_table_data_with_conv_id() in order to be
+ * able to add protocol dependent additional statistics.
+ *
+ */
+WS_DLL_PUBLIC void
+add_conversation_table_data_extended(conv_hash_t *ch, const address *src, const address *dst, guint32 src_port,
+ guint32 dst_port, conv_id_t conv_id, int num_frames, int num_bytes,
+ nstime_t *ts, nstime_t *abs_ts, ct_dissector_info_t *ct_info,
+ conversation_type ctype, guint32 frameid, int (*proto_conv_cb)(conversation_t *));
+
/** Add some data to the endpoint table.
*
* @param ch the table hash to add the data to
diff --git a/epan/crypt/dot11decrypt.c b/epan/crypt/dot11decrypt.c
index 1164a04866..4b24e0c046 100644
--- a/epan/crypt/dot11decrypt.c
+++ b/epan/crypt/dot11decrypt.c
@@ -1403,7 +1403,7 @@ Dot11DecryptWepMng(
memset(wep_key, 0, sizeof(wep_key));
memcpy(try_data, decrypt_data, *decrypt_len);
- /* Costruct the WEP seed: copy the IV in first 3 bytes and then the WEP key (refer to 802-11i-2004, 8.2.1.4.3, pag. 36) */
+ /* Construct the WEP seed: copy the IV in first 3 bytes and then the WEP key (refer to 802-11i-2004, 8.2.1.4.3, pag. 36) */
memcpy(wep_key, try_data+mac_header_len, DOT11DECRYPT_WEP_IVLEN);
keylen=tmp_key->KeyData.Wep.WepKeyLen;
memcpy(wep_key+DOT11DECRYPT_WEP_IVLEN, tmp_key->KeyData.Wep.WepKey, keylen);
@@ -1592,7 +1592,7 @@ Dot11DecryptRsna4WHandshake(
/* TODO consider key-index */
- /* TODO considera Deauthentications */
+ /* TODO consider Deauthentications */
ws_debug("4-way handshake...");
@@ -2587,11 +2587,11 @@ Dot11DecryptFtDerivePtk(
int hash_algo = Dot11DecryptGetHashAlgoFromAkm(akm);
uint8_t pmk_r0[DOT11DECRYPT_WPA_PMK_MAX_LEN];
uint8_t pmk_r1[DOT11DECRYPT_WPA_PMK_MAX_LEN];
- uint8_t pmk_r0_name[16];
- uint8_t pmk_r1_name[16];
+ uint8_t pmk_r0_name[16] = {0};
+ uint8_t pmk_r1_name[16] = {0};
uint8_t ptk_name[16];
- size_t pmk_r0_len;
- size_t pmk_r1_len;
+ size_t pmk_r0_len = 0;
+ size_t pmk_r1_len = 0;
const uint8_t *xxkey = NULL;
size_t xxkey_len;
int ptk_len_bits;
@@ -2621,25 +2621,32 @@ Dot11DecryptFtDerivePtk(
ws_debug("no xxkey. Skipping");
return DOT11DECRYPT_RET_NO_VALID_HANDSHAKE;
}
- dot11decrypt_derive_pmk_r0(xxkey, xxkey_len,
+ if (!dot11decrypt_derive_pmk_r0(xxkey, xxkey_len,
ctx->pkt_ssid, ctx->pkt_ssid_len,
mdid,
r0kh_id, r0kh_id_len,
sa->saId.sta, hash_algo,
- pmk_r0, &pmk_r0_len, pmk_r0_name);
+ pmk_r0, &pmk_r0_len, pmk_r0_name)) {
+ /* This can fail for bad size or a bad SHA256 sum. */
+ return DOT11DECRYPT_RET_UNSUCCESS;
+ }
DEBUG_DUMP("PMK-R0", pmk_r0, pmk_r0_len, LOG_LEVEL_DEBUG);
DEBUG_DUMP("PMKR0Name", pmk_r0_name, 16, LOG_LEVEL_DEBUG);
- dot11decrypt_derive_pmk_r1(pmk_r0, pmk_r0_len, pmk_r0_name,
+ if (!dot11decrypt_derive_pmk_r1(pmk_r0, pmk_r0_len, pmk_r0_name,
r1kh_id, sa->saId.sta, hash_algo,
- pmk_r1, &pmk_r1_len, pmk_r1_name);
+ pmk_r1, &pmk_r1_len, pmk_r1_name)) {
+ return DOT11DECRYPT_RET_UNSUCCESS;
+ }
DEBUG_DUMP("PMK-R1", pmk_r1, pmk_r1_len, LOG_LEVEL_DEBUG);
DEBUG_DUMP("PMKR1Name", pmk_r1_name, 16, LOG_LEVEL_DEBUG);
- dot11decrypt_derive_ft_ptk(pmk_r1, pmk_r1_len, pmk_r1_name,
+ if (!dot11decrypt_derive_ft_ptk(pmk_r1, pmk_r1_len, pmk_r1_name,
snonce, sa->wpa.nonce,
sa->saId.bssid, sa->saId.sta, hash_algo,
- ptk, *ptk_len, ptk_name);
+ ptk, *ptk_len, ptk_name)) {
+ return DOT11DECRYPT_RET_UNSUCCESS;
+ }
DEBUG_DUMP("PTK", ptk, *ptk_len, LOG_LEVEL_DEBUG);
return DOT11DECRYPT_RET_SUCCESS;
}
@@ -3027,7 +3034,9 @@ Dot11DecryptTDLSDeriveKey(
anonce = &data[offset_fte + 20];
snonce = &data[offset_fte + 52];
- gcry_md_open (&sha256_handle, GCRY_MD_SHA256, 0);
+ if (gcry_md_open (&sha256_handle, GCRY_MD_SHA256, 0)) {
+ return DOT11DECRYPT_RET_UNSUCCESS;
+ }
if (memcmp(anonce, snonce, DOT11DECRYPT_WPA_NONCE_LEN) < 0) {
gcry_md_write(sha256_handle, anonce, DOT11DECRYPT_WPA_NONCE_LEN);
gcry_md_write(sha256_handle, snonce, DOT11DECRYPT_WPA_NONCE_LEN);
diff --git a/epan/decode_as.c b/epan/decode_as.c
index 72afd0c0ce..9941aba317 100644
--- a/epan/decode_as.c
+++ b/epan/decode_as.c
@@ -24,7 +24,7 @@
#include <errno.h>
#include <wsutil/ws_assert.h>
-GList *decode_as_list = NULL;
+GList *decode_as_list;
void register_decode_as(decode_as_t* reg)
{
@@ -122,7 +122,7 @@ void decode_as_default_populate_list(const gchar *table_name, decode_as_add_to_l
dissector_table_foreach_handle(table_name, decode_proto_add_to_list, &populate);
}
-gboolean decode_as_default_reset(const gchar *name, gconstpointer pattern)
+bool decode_as_default_reset(const gchar *name, gconstpointer pattern)
{
switch (get_dissector_table_selector_type(name)) {
case FT_UINT8:
@@ -130,25 +130,25 @@ gboolean decode_as_default_reset(const gchar *name, gconstpointer pattern)
case FT_UINT24:
case FT_UINT32:
dissector_reset_uint(name, GPOINTER_TO_UINT(pattern));
- return TRUE;
+ return true;
case FT_NONE:
dissector_reset_payload(name);
- return TRUE;
+ return true;
case FT_STRING:
case FT_STRINGZ:
case FT_UINT_STRING:
case FT_STRINGZPAD:
case FT_STRINGZTRUNC:
dissector_reset_string(name, (!pattern)?"":(const gchar *) pattern);
- return TRUE;
+ return true;
default:
- return FALSE;
+ return false;
};
- return TRUE;
+ return true;
}
-gboolean decode_as_default_change(const gchar *name, gconstpointer pattern, gconstpointer handle, const gchar *list_name _U_)
+bool decode_as_default_change(const gchar *name, gconstpointer pattern, gconstpointer handle, const gchar *list_name _U_)
{
const dissector_handle_t dissector = (const dissector_handle_t)handle;
switch (get_dissector_table_selector_type(name)) {
@@ -157,22 +157,22 @@ gboolean decode_as_default_change(const gchar *name, gconstpointer pattern, gcon
case FT_UINT24:
case FT_UINT32:
dissector_change_uint(name, GPOINTER_TO_UINT(pattern), dissector);
- return TRUE;
+ return true;
case FT_NONE:
dissector_change_payload(name, dissector);
- return TRUE;
+ return true;
case FT_STRING:
case FT_STRINGZ:
case FT_UINT_STRING:
case FT_STRINGZPAD:
case FT_STRINGZTRUNC:
dissector_change_string(name, (!pattern)?"":(const gchar *) pattern, dissector);
- return TRUE;
+ return true;
default:
- return FALSE;
+ return false;
};
- return TRUE;
+ return true;
}
/* Some useful utilities for Decode As */
@@ -180,7 +180,7 @@ gboolean decode_as_default_change(const gchar *name, gconstpointer pattern, gcon
/*
* A list of dissectors that need to be reset.
*/
-static GSList *dissector_reset_list = NULL;
+static GSList *dissector_reset_list;
/*
* A callback function to parse each "decode as" entry in the file and apply the change
@@ -188,7 +188,7 @@ static GSList *dissector_reset_list = NULL;
static prefs_set_pref_e
read_set_decode_as_entries(gchar *key, const gchar *value,
void *user_data,
- gboolean return_range_errors _U_)
+ bool return_range_errors _U_)
{
gchar *values[4] = {NULL, NULL, NULL, NULL};
gchar delimiter[4] = {',', ',', ',','\0'};
diff --git a/epan/decode_as.h b/epan/decode_as.h
index c13b59db8d..c212488ca6 100644
--- a/epan/decode_as.h
+++ b/epan/decode_as.h
@@ -44,9 +44,9 @@ typedef void (*decode_as_populate_list_func)(const gchar *table_name, decode_as_
typedef void (*decode_as_free_func)(gpointer value);
/** callback function definition: Clear value from dissector table */
-typedef gboolean (*decode_as_reset_func)(const gchar *name, gconstpointer pattern);
+typedef bool (*decode_as_reset_func)(const gchar *name, gconstpointer pattern);
/** callback function definition: Apply value to dissector table */
-typedef gboolean (*decode_as_change_func)(const gchar *name, gconstpointer pattern, gconstpointer handle, const gchar *list_name);
+typedef bool (*decode_as_change_func)(const gchar *name, gconstpointer pattern, gconstpointer handle, const gchar *list_name);
/**
Contains all of the function pointers (typically just 1) that
@@ -108,9 +108,9 @@ WS_DLL_PUBLIC struct dissector_table* register_decode_as_next_proto(int proto, c
/* Walk though the dissector table and provide dissector_handle_t for each item in the table */
WS_DLL_PUBLIC void decode_as_default_populate_list(const gchar *table_name, decode_as_add_to_list_func add_to_list, gpointer ui_element);
/* Clear a FT_UINT32 value from dissector table list */
-WS_DLL_PUBLIC gboolean decode_as_default_reset(const gchar *name, gconstpointer pattern);
+WS_DLL_PUBLIC bool decode_as_default_reset(const gchar *name, gconstpointer pattern);
/* Add a FT_UINT32 value to dissector table list */
-WS_DLL_PUBLIC gboolean decode_as_default_change(const gchar *name, gconstpointer pattern, gconstpointer handle, const gchar *list_name);
+WS_DLL_PUBLIC bool decode_as_default_change(const gchar *name, gconstpointer pattern, gconstpointer handle, const gchar *list_name);
/** List of registered decode_as_t structs.
* For UI code only. Should not be directly accessed by dissectors.
diff --git a/epan/dfilter/.editorconfig b/epan/dfilter/.editorconfig
index 976affde39..8a878791e6 100644
--- a/epan/dfilter/.editorconfig
+++ b/epan/dfilter/.editorconfig
@@ -17,3 +17,7 @@ indent_size = 4
[dfunctions.[ch]]
indent_style = space
indent_size = 4
+
+[translators.[ch]]
+indent_style = space
+indent_size = 4
diff --git a/epan/dfilter/CMakeLists.txt b/epan/dfilter/CMakeLists.txt
index f2246d0cc7..e4fd6bdffa 100644
--- a/epan/dfilter/CMakeLists.txt
+++ b/epan/dfilter/CMakeLists.txt
@@ -12,6 +12,7 @@ set(DFILTER_PUBLIC_HEADERS
dfilter-int.h
dfilter-loc.h
dfilter-plugin.h
+ dfilter-translator.h
dfunctions.h
drange.h
syntax-tree.h
@@ -38,6 +39,7 @@ set(DFILTER_NONGENERATED_FILES
dfilter-macro.c
dfilter-macro-uat.c
dfilter-plugin.c
+ dfilter-translator.c
dfunctions.c
dfvm.c
drange.c
diff --git a/epan/dfilter/dfilter-macro-uat.c b/epan/dfilter/dfilter-macro-uat.c
index bf826dcbf3..939975186a 100644
--- a/epan/dfilter/dfilter-macro-uat.c
+++ b/epan/dfilter/dfilter-macro-uat.c
@@ -20,7 +20,7 @@
* new "dmacros" configuration file. It should be removed eventually.
*/
-static dfilter_macro_t* macros = NULL;
+static dfilter_macro_t* macros;
static unsigned num_macros;
static void macro_uat_free(void* r) {
diff --git a/epan/dfilter/dfilter-macro.c b/epan/dfilter/dfilter-macro.c
index 3d63c6302f..78b57db4a3 100644
--- a/epan/dfilter/dfilter-macro.c
+++ b/epan/dfilter/dfilter-macro.c
@@ -24,7 +24,7 @@
#include <wsutil/glib-compat.h>
#include <wsutil/filter_files.h>
-static GHashTable *macros_table = NULL;
+static GHashTable *macros_table;
/* #define DUMP_DFILTER_MACRO */
#ifdef DUMP_DFILTER_MACRO
diff --git a/epan/dfilter/dfilter-plugin.c b/epan/dfilter/dfilter-plugin.c
index 6996ea9f10..0e886d0889 100644
--- a/epan/dfilter/dfilter-plugin.c
+++ b/epan/dfilter/dfilter-plugin.c
@@ -19,7 +19,7 @@
*/
/* DFilter plugins share the name with the function it implements. */
-GSList *dfilter_plugins = NULL;
+GSList *dfilter_plugins;
void dfilter_plugins_register(const dfilter_plugin *plug)
{
diff --git a/epan/dfilter/dfilter-translator.c b/epan/dfilter/dfilter-translator.c
new file mode 100644
index 0000000000..422189451c
--- /dev/null
+++ b/epan/dfilter/dfilter-translator.c
@@ -0,0 +1,321 @@
+/*
+ * Wireshark - Network traffic analyzer
+ *
+ * Copyright 1998 Gerald Combs <gerald@wireshark.org>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+// #include "config.h"
+// #define WS_LOG_DOMAIN LOG_DOMAIN_DFILTER
+
+#include <wireshark.h>
+
+#include <epan/value_string.h>
+
+#include "dfilter.h"
+#include "dfilter-translator.h"
+#include "sttype-field.h"
+#include "sttype-op.h"
+
+// name: DFTranslator
+static GHashTable *registered_translators_;
+
+bool register_dfilter_translator(const char *translator_name, DFTranslator translator)
+{
+ if (!registered_translators_) {
+ registered_translators_ = g_hash_table_new(g_str_hash, g_str_equal);
+ }
+ return g_hash_table_insert(registered_translators_, g_strdup(translator_name), translator);
+}
+
+void deregister_dfilter_translator(const char *translator_name)
+{
+ if (!registered_translators_) {
+ return;
+ }
+ g_hash_table_remove(registered_translators_, translator_name);
+}
+
+char **get_dfilter_translator_list(void)
+{
+ if (!registered_translators_) {
+ return NULL;
+ }
+
+ GList *key_l = g_list_sort(g_hash_table_get_keys(registered_translators_), (GCompareFunc)g_ascii_strcasecmp);
+ size_t key_count = g_list_length(key_l);
+ if (key_count < 1) {
+ return NULL;
+ }
+
+ char **translator_list = g_malloc(sizeof(char *) * (key_count + 1));
+ size_t idx = 0;
+ for (GList *cur = g_list_first(key_l); cur; cur = g_list_next(cur), idx++) {
+ translator_list[idx] = (char *) cur->data;
+ }
+ translator_list[key_count] = NULL;
+
+ return translator_list;
+}
+
+// XXX We should return an error message for failed translations.
+const char *translate_dfilter(const char *translator_name, const char *dfilter)
+{
+ if (!registered_translators_ || !translator_name) {
+ return NULL;
+ }
+
+ DFTranslator translator = (DFTranslator) g_hash_table_lookup(registered_translators_, translator_name);
+ if (!translator) {
+ return NULL;
+ }
+
+ stnode_t *root_node = dfilter_get_syntax_tree(dfilter);
+ if (!root_node) {
+ return NULL;
+ }
+
+ GString *translated_filter = g_string_new("");
+ bool res = translator(root_node, translated_filter);
+
+ return g_string_free(translated_filter, !res);
+}
+
+
+// pcap filter (BPF) translation
+// XXX - Fields are spread across all sorts of dissectors; not sure if there is a better place for this.
+
+const char *
+stnode_op_to_pcap_filter(stnode_op_t op) {
+ switch (op) {
+ case STNODE_OP_NOT: return "not";
+ case STNODE_OP_AND: return "&&";
+ case STNODE_OP_OR: return "||";
+ case STNODE_OP_ANY_EQ: return "";
+ // case STNODE_OP_ALL_NE: return "!=";
+ case STNODE_OP_GT: return "greater";
+ // case STNODE_OP_GE: return ">=";
+ case STNODE_OP_LT: return "less";
+ // case STNODE_OP_LE: return "<=";
+ // case STNODE_OP_CONTAINS: return "icontains";
+ case STNODE_OP_UNARY_MINUS: return "-";
+ case STNODE_OP_IN:
+ case STNODE_OP_NOT_IN:
+ default:
+ break;
+ }
+ return NULL;
+}
+
+// scanner.l in libpcap
+static const string_string abbrev_to_pcap_filter[] = {
+ { "eth", "ether" },
+ { "eth.addr", "ether host" },
+ { "eth.dst", "ether dst" },
+ { "eth.src", "ether src" },
+ { "ppp", "ppp" },
+ // { "slip", "slip" },
+ { "fddi", "fddi" },
+ { "fddi.addr", "fddi host" },
+ { "fddi.dst", "fddi dst" },
+ { "fddi.src", "fddi src" },
+ { "tr", "tr" },
+ { "tr.addr", "tr host" },
+ { "tr.dst", "tr dst" },
+ { "tr.src", "tr src" },
+ { "wlan", "wlan" },
+ { "wlan.addr", "wlan host" },
+ { "wlan.ra", "wlan ra" },
+ { "wlan.ta", "wlan ta" },
+ // { "wlan.da", "wlan" },
+ // { "wlan", "wlan addr1" },
+ // { "wlan", "wlan addr2" },
+ // { "wlan", "wlan addr3" },
+ // { "wlan", "wlan addr4" },
+ { "arp", "arp" },
+ { "rarp", "rarp" },
+ { "ip", "ip" },
+ { "ip.addr", "ip host" },
+ { "ip.dst", "ip dst" },
+ { "ip.src", "ip src" },
+ { "ip.proto", "ip proto" },
+ { "sctp", "sctp" },
+ { "sctp.port", "sctp port" },
+ { "sctp.dstport", "sctp dst port" },
+ { "sctp.srcport", "sctp src port" },
+ { "tcp", "tcp" },
+ { "tcp.port", "tcp port" },
+ { "tcp.dstport", "tcp dst port" },
+ { "tcp.srcport", "tcp src port" },
+ { "udp", "udp" },
+ { "udp.port", "udp port" },
+ { "udp.dstport", "udp dst port" },
+ { "udp.srcport", "tcp src port" },
+ { "icmp", "icmp" },
+ { "igmp", "igmp" },
+ { "igrp", "igrp" },
+ { "pim", "pim" },
+ { "vrrp", "vrrp" },
+ { "carp", "carp" },
+ // { "", "radio" },
+ { "ipv6", "ip6" },
+ { "ipv6.addr", "ip6 host" },
+ { "ipv6.dst", "ip6 dst" },
+ { "ipv6.src", "ip6 src" },
+ { "icmpv6", "icmp6" },
+ { "ah", "ah" },
+ { "esp", "esp" },
+ // { "", "atalk" },
+ { "aarp", "aarp" },
+ // { "", "decnet" },
+ { "lat", "lat" },
+ // { "", "sca" },
+ // { "", "moprc" },
+ // { "", "mopdl" },
+ // { "", "iso" },
+ { "esis", "esis" },
+ { "isis", "isis" },
+ // { "", "l1" },
+ // { "", "l2" },
+ // { "", "iih" },
+ // { "", "lsp" },
+ // { "", "snp" },
+ // { "", "clnp" },
+ // { "", "psnp" },
+ { "dec_stp", "stp" },
+ { "ipx", "ipx" },
+ { "netbios", "netbeui" },
+ { "vlan", "vlan" },
+ { "mpls", "mpls" },
+ { "pppoed", "pppoed" },
+ { "pppoes", "pppoes" },
+ { "geneve", "geneve" },
+ { "lane", "lane" },
+ { "llc", "llc" },
+ // { "", "metac" },
+ // { "", "bcc" },
+ // { "", "oam" },
+ // { "", "oamf4" },
+ // { "", "oamf4ec" },
+ // { "", "oamf4sc" },
+ // { "", "sc" },
+ // { "", "ilmic" },
+ // { "", "vpi" },
+ // { "", "vci" },
+ // { "", "connectmsg" },
+ // { "", "metaconnect" },
+ { NULL, NULL }
+};
+
+// NOLINTNEXTLINE(misc-no-recursion)
+bool pcap_visit_dfilter_node(stnode_t *node, stnode_op_t parent_bool_op, GString *pcap_filter)
+{
+ stnode_t *left, *right;
+
+ if (stnode_type_id(node) == STTYPE_TEST) {
+ stnode_op_t op = STNODE_OP_UNINITIALIZED;
+ sttype_oper_get(node, &op, &left, &right);
+
+ const char *op_str = stnode_op_to_pcap_filter(op);
+ if (!op_str) {
+ return false;
+ }
+
+ if (left && right) {
+ if ((op == STNODE_OP_ANY_EQ || op == STNODE_OP_ALL_NE) && stnode_type_id(right) != STTYPE_FVALUE) {
+ // Don't translate things like "ip.src == ip.dst"
+ return false;
+ }
+ bool add_parens = (op == STNODE_OP_AND || op == STNODE_OP_OR) && op != parent_bool_op && parent_bool_op != STNODE_OP_UNINITIALIZED;
+ if (add_parens) {
+ g_string_append_c(pcap_filter, '(');
+ }
+ if (!pcap_visit_dfilter_node(left, op, pcap_filter)) {
+ return false;
+ }
+ if (strlen(op_str) > 0) {
+ g_string_append_c(pcap_filter, ' ');
+ }
+ g_string_append_printf(pcap_filter, "%s ", op_str);
+ if (!pcap_visit_dfilter_node(right, op, pcap_filter)) {
+ return false;
+ }
+ if (add_parens) {
+ g_string_append_c(pcap_filter, ')');
+ }
+ }
+ else if (left) {
+ op = op == STNODE_OP_NOT ? op : parent_bool_op;
+ if (pcap_filter->len > 0) {
+ g_string_append_c(pcap_filter, ' ');
+ }
+ g_string_append_printf(pcap_filter, "%s ", op_str);
+ if (!pcap_visit_dfilter_node(left, op, pcap_filter)) {
+ return false;
+ }
+ }
+ else if (right) {
+ ws_assert_not_reached();
+ }
+ }
+ else if (stnode_type_id(node) == STTYPE_SET) {
+ return false;
+ }
+ else if (stnode_type_id(node) == STTYPE_FUNCTION) {
+ return false;
+ }
+ else if (stnode_type_id(node) == STTYPE_FIELD) {
+ header_field_info *hfinfo = sttype_field_hfinfo(node);
+ const char *pcap_fragment = try_str_to_str(hfinfo->abbrev, abbrev_to_pcap_filter);
+ if (!pcap_fragment) {
+ return false;
+ }
+ g_string_append_printf(pcap_filter, "%s", pcap_fragment);
+ }
+ else if (stnode_type_id(node) == STTYPE_FVALUE) {
+ g_string_append_printf(pcap_filter, "%s", stnode_tostr(node, true));
+ }
+ else {
+ g_string_append_printf(pcap_filter, "%s", stnode_type_name(node));
+ }
+
+ return true;
+}
+
+bool dfilter_to_pcap_filter(stnode_t *root_node, GString *pcap_filter) {
+ return pcap_visit_dfilter_node(root_node, STNODE_OP_UNINITIALIZED, pcap_filter);
+}
+
+void dfilter_translator_init(void)
+{
+ register_dfilter_translator("pcap filter", dfilter_to_pcap_filter);
+}
+
+void dfilter_translator_cleanup(void)
+{
+ char **df_translators = get_dfilter_translator_list();
+
+ if (df_translators == NULL) {
+ return;
+ }
+
+ for (size_t idx = 0; df_translators[idx]; idx++) {
+ deregister_dfilter_translator(df_translators[idx]);
+ }
+
+ g_free(df_translators);
+}
+
+/*
+ * Editor modelines - https://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dfilter/dfilter-translator.h b/epan/dfilter/dfilter-translator.h
new file mode 100644
index 0000000000..54a977c44c
--- /dev/null
+++ b/epan/dfilter/dfilter-translator.h
@@ -0,0 +1,64 @@
+/** @file
+ *
+ * Wireshark - Network traffic analyzer
+ *
+ * Copyright 1998 Gerald Combs <gerald@wireshark.org>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#pragma once
+
+#include <glib.h>
+#include <epan/dfilter/syntax-tree.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* The run-time logic of the dfilter function */
+typedef bool (*DFTranslator)(stnode_t *root_node, GString *translated);
+
+
+/** Initialize our built-in translators
+ */
+void dfilter_translator_init(void);
+
+/** Clean up our built-in translators
+ */
+void dfilter_translator_cleanup(void);
+
+/** Register a display filter translator
+ * @param translator_name A unique, proper name for the translator, suitable for display.
+ * @param translator A function which will handle translating the syntax tree.
+ * @return true on success, false on failure.
+ */
+WS_DLL_PUBLIC
+bool register_dfilter_translator(const char *translator_name, DFTranslator translator);
+
+/** Deregister a display filter translator
+ * @param translator_name The name provided in register_dfilter_translator.
+ */
+WS_DLL_PUBLIC
+void deregister_dfilter_translator(const char *translator_name);
+
+/** Get the current translator list
+ * @return A NULL terminated array of translator names.
+ * The return value must be g_freed, but the names themselves must not be g_freed.
+ */
+WS_DLL_PUBLIC
+char **get_dfilter_translator_list(void);
+
+/** Translate a display filter.
+ *
+ * The root node and data pointer will be passed to the
+ * @param translator_name The name of a registered translator.
+ * @param dfilter The Wireshark display filter to translate.
+ * @return A translated filter or rule on success, NULL on failure.
+ */
+WS_DLL_PUBLIC
+const char *translate_dfilter(const char *translator_name, const char *dfilter);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
diff --git a/epan/dfilter/dfilter.c b/epan/dfilter/dfilter.c
index fc3bb3658d..9fe09f7730 100644
--- a/epan/dfilter/dfilter.c
+++ b/epan/dfilter/dfilter.c
@@ -32,7 +32,7 @@
#define DFILTER_TOKEN_ID_OFFSET 1
/* Holds the singular instance of our Lemon parser object */
-static void* ParserObj = NULL;
+static void* ParserObj;
df_loc_t loc_empty = {-1, 0};
@@ -646,6 +646,40 @@ dfilter_compile_full(const char *text, dfilter_t **dfp,
return true;
}
+struct stnode *dfilter_get_syntax_tree(const char *text)
+{
+ dfsyntax_t *dfs = NULL;
+ dfwork_t *dfw = NULL;
+
+ dfs = dfsyntax_new(DF_EXPAND_MACROS);
+
+ char *expanded_text = dfilter_macro_apply(text, NULL);
+ if (!expanded_text) {
+ dfsyntax_free(dfs);
+ return NULL;
+ }
+
+ bool ok = dfwork_parse(expanded_text, dfs);
+ if (!ok || !dfs->st_root) {
+ dfsyntax_free(dfs);
+ return NULL;
+ }
+
+ dfw = dfwork_new(expanded_text, dfs->flags);
+ dfw->st_root = dfs->st_root;
+ dfs->st_root = NULL;
+ dfsyntax_free(dfs);
+
+ if (!dfw_semcheck(dfw)) {
+ return NULL;
+ }
+
+ stnode_t *st_root = dfw->st_root;
+ dfw->st_root = NULL;
+ dfwork_free(dfw);
+
+ return st_root;
+}
bool
dfilter_apply(dfilter_t *df, proto_tree *tree)
diff --git a/epan/dfilter/dfilter.h b/epan/dfilter/dfilter.h
index 50ac0076b8..841786a53a 100644
--- a/epan/dfilter/dfilter.h
+++ b/epan/dfilter/dfilter.h
@@ -102,6 +102,15 @@ dfilter_compile_full(const char *text, dfilter_t **dfp,
DF_EXPAND_MACROS|DF_OPTIMIZE, \
__func__)
+struct stnode;
+
+/** Build a syntax tree for a filter
+ * @param text A display filter.
+ * @return The root node of a syntax tree on success or NULL on failure.
+ */
+WS_DLL_PUBLIC
+struct stnode *dfilter_get_syntax_tree(const char *text);
+
/* Frees all memory used by dfilter, and frees
* the dfilter itself. */
WS_DLL_PUBLIC
diff --git a/epan/dfilter/dfunctions.c b/epan/dfilter/dfunctions.c
index 22af385f1f..8c4c26117b 100644
--- a/epan/dfilter/dfunctions.c
+++ b/epan/dfilter/dfunctions.c
@@ -25,9 +25,9 @@
#include <wsutil/ws_assert.h>
-static GHashTable *registered_functions = NULL;
+static GHashTable *registered_functions;
-static GPtrArray *registered_names = NULL;
+static GPtrArray *registered_names;
/* Convert an FT_STRING using a callback function */
static bool
diff --git a/epan/dfilter/dfvm.c b/epan/dfilter/dfvm.c
index f2831e150d..331e4772c9 100644
--- a/epan/dfilter/dfvm.c
+++ b/epan/dfilter/dfvm.c
@@ -12,6 +12,7 @@
#include "dfvm.h"
#include <ftypes/ftypes.h>
+#include <wsutil/array.h>
#include <wsutil/ws_assert.h>
static void
diff --git a/epan/dfilter/dfvm.h b/epan/dfilter/dfvm.h
index 2760169bd6..be5f4acf53 100644
--- a/epan/dfilter/dfvm.h
+++ b/epan/dfilter/dfvm.h
@@ -11,7 +11,6 @@
#define DFVM_H
#include <wsutil/regex.h>
-#include <epan/proto.h>
#include "dfilter-int.h"
#include "syntax-tree.h"
#include "drange.h"
diff --git a/epan/dfilter/sttype-field.h b/epan/dfilter/sttype-field.h
index 62d692aabb..b5a75491ae 100644
--- a/epan/dfilter/sttype-field.h
+++ b/epan/dfilter/sttype-field.h
@@ -14,7 +14,11 @@
#include "dfilter-int.h"
#include "drange.h"
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+WS_DLL_PUBLIC
header_field_info *
sttype_field_hfinfo(stnode_t *node);
@@ -57,4 +61,8 @@ sttype_field_set_number(stnode_t *node, const char *number_str);
void
sttype_field_remove_drange(stnode_t *node);
-#endif
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* STTYPE_FIELD_H */
diff --git a/epan/dfilter/sttype-op.h b/epan/dfilter/sttype-op.h
index ca999811fa..8bb88ebda0 100644
--- a/epan/dfilter/sttype-op.h
+++ b/epan/dfilter/sttype-op.h
@@ -13,6 +13,10 @@
#include "syntax-tree.h"
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
void
sttype_oper_set1(stnode_t *node, stnode_op_t op, stnode_t *val1);
@@ -31,6 +35,7 @@ sttype_oper_set_op(stnode_t *node, stnode_op_t op);
stnode_op_t
sttype_oper_get_op(stnode_t *node);
+WS_DLL_PUBLIC
void
sttype_oper_get(stnode_t *node, stnode_op_t *p_op, stnode_t **p_val1, stnode_t **p_val2);
@@ -40,4 +45,8 @@ sttype_test_set_match(stnode_t *node, stmatch_t how);
stmatch_t
sttype_test_get_match(stnode_t *node);
-#endif
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* STTYPE_TEST_H */
diff --git a/epan/dfilter/syntax-tree.h b/epan/dfilter/syntax-tree.h
index 8031349952..a4cf492d29 100644
--- a/epan/dfilter/syntax-tree.h
+++ b/epan/dfilter/syntax-tree.h
@@ -21,6 +21,10 @@
/** @file
*/
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
#define ASSERT_STTYPE_NOT_REACHED(st) \
ws_error("Invalid syntax node type '%s'.", sttype_name(st))
@@ -72,7 +76,7 @@ typedef enum {
#define STFLAG_UNPARSED (1 << 0)
/** Node (type instance) information */
-typedef struct {
+typedef struct stnode {
sttype_t *type;
void *data;
char *repr_token;
@@ -274,4 +278,8 @@ log_syntax_tree(enum ws_log_level, stnode_t *root, const char *msg, char **cache
#define ws_assert_magic(obj, mnum) (void)0
#endif
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#endif /* SYNTAX_TREE_H */
diff --git a/epan/disabled_protos.c b/epan/disabled_protos.c
index f8cb4a3aed..5982b66287 100644
--- a/epan/disabled_protos.c
+++ b/epan/disabled_protos.c
@@ -49,20 +49,20 @@ typedef struct {
/*
* List of disabled protocols
*/
-static GList *global_disabled_protos = NULL;
-static GList *disabled_protos = NULL;
+static GList *global_disabled_protos;
+static GList *disabled_protos;
/*
* List of enabled protocols (that are disabled by default)
*/
-static GList *global_enabled_protos = NULL;
-static GList *enabled_protos = NULL;
+static GList *global_enabled_protos;
+static GList *enabled_protos;
/*
* List of disabled heuristics
*/
-static GList *global_disabled_heuristics = NULL;
-static GList *disabled_heuristics = NULL;
+static GList *global_disabled_heuristics;
+static GList *disabled_heuristics;
-static gboolean unsaved_changes = FALSE;
+static gboolean unsaved_changes;
#define INIT_BUF_SIZE 128
@@ -173,7 +173,7 @@ skip:
*/
static void
save_protos_list(char **pref_path_return, int *errno_return, const char* filename,
- const char* header_comment, gboolean (*protocol_check)(protocol_t *protocol))
+ const char* header_comment, bool (*protocol_check)(protocol_t *protocol))
{
gchar *ff_path, *ff_path_new;
FILE *ff;
@@ -476,7 +476,7 @@ read_protos_list(char **gpath_return, int *gopen_errno_return,
/*
* Disable a particular protocol by name
*/
-gboolean
+bool
proto_disable_proto_by_name(const char *name)
{
protocol_t *protocol;
@@ -503,19 +503,19 @@ proto_disable_proto_by_name(const char *name)
}
}
-static gboolean disable_proto_list_check(protocol_t *protocol)
+static bool disable_proto_list_check(protocol_t *protocol)
{
if (proto_is_protocol_enabled(protocol) == FALSE)
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
/************************************************************************
* Enabling dissectors (that are disabled by default)
************************************************************************/
-gboolean
+bool
proto_enable_proto_by_name(const char *name)
{
protocol_t *protocol;
@@ -542,13 +542,13 @@ proto_enable_proto_by_name(const char *name)
}
}
-static gboolean enable_proto_list_check(protocol_t *protocol)
+static bool enable_proto_list_check(protocol_t *protocol)
{
if ((proto_is_protocol_enabled_by_default(protocol) == FALSE) &&
(proto_is_protocol_enabled(protocol) == TRUE))
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
/************************************************************************
@@ -908,13 +908,13 @@ proto_set_heuristic_by_name(const char *name, gboolean enable)
}
}
-gboolean
+bool
proto_enable_heuristic_by_name(const char *name)
{
return proto_set_heuristic_by_name(name, TRUE);
}
-gboolean
+bool
proto_disable_heuristic_by_name(const char *name)
{
return proto_set_heuristic_by_name(name, FALSE);
diff --git a/epan/disabled_protos.h b/epan/disabled_protos.h
index 56d1c0ad06..e009eb4b6d 100644
--- a/epan/disabled_protos.h
+++ b/epan/disabled_protos.h
@@ -31,7 +31,7 @@ enabled_protos_unsaved_changes(void);
* On success (found the protocol), return TRUE.
* On failure (didn't find the protocol), return FALSE.
*/
-WS_DLL_PUBLIC gboolean
+WS_DLL_PUBLIC bool
proto_disable_proto_by_name(const char *name);
/*
@@ -39,7 +39,7 @@ proto_disable_proto_by_name(const char *name);
* On success (found the protocol), return TRUE.
* On failure (didn't find the protocol), return FALSE.
*/
-WS_DLL_PUBLIC gboolean
+WS_DLL_PUBLIC bool
proto_enable_proto_by_name(const char *name);
/*
@@ -47,7 +47,7 @@ proto_enable_proto_by_name(const char *name);
* On success (found the protocol), return TRUE.
* On failure (didn't find the protocol), return FALSE.
*/
-WS_DLL_PUBLIC gboolean
+WS_DLL_PUBLIC bool
proto_enable_heuristic_by_name(const char *name);
/*
@@ -55,7 +55,7 @@ proto_enable_heuristic_by_name(const char *name);
* On success (found the protocol), return TRUE.
* On failure (didn't find the protocol), return FALSE.
*/
-WS_DLL_PUBLIC gboolean
+WS_DLL_PUBLIC bool
proto_disable_heuristic_by_name(const char *name);
/*
diff --git a/epan/dissectors/.clang-tidy b/epan/dissectors/.clang-tidy
new file mode 100644
index 0000000000..6be356e4de
--- /dev/null
+++ b/epan/dissectors/.clang-tidy
@@ -0,0 +1,3 @@
+InheritParentConfig: true
+
+WarningsAsErrors: misc-no-recursion
diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt
index 9df54a319d..ab32922e42 100644
--- a/epan/dissectors/CMakeLists.txt
+++ b/epan/dissectors/CMakeLists.txt
@@ -80,6 +80,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-atn-ulcs.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-atn-cm.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-atn-cpdlc.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-atn-sl.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-c1222.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-camel.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-cbrs-oids.c
@@ -439,6 +440,7 @@ set(DISSECTOR_PUBLIC_HEADERS
packet-ipmi.h
packet-ipsec.h
packet-ipx.h
+ packet-irdma.h
packet-isakmp.h
packet-isis.h
packet-isis-clv.h
@@ -1358,6 +1360,7 @@ set(DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-ipx.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ipxwan.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-irc.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-irdma.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-isakmp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-iscsi.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-isdn.c
@@ -2001,6 +2004,7 @@ set(DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-ubdp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ubertooth.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ubx.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-ubx-galileo_e1b_inav.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ubx-gps_l1_lnav.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-uci.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ucp.c
@@ -2150,6 +2154,7 @@ set(DISSECTOR_SRC
${CMAKE_CURRENT_SOURCE_DIR}/packet-zebra.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-zep.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-ziop.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/packet-zmtp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-zrtp.c
${CMAKE_CURRENT_SOURCE_DIR}/packet-zvt.c
)
@@ -2268,17 +2273,15 @@ install(FILES ${DISSECTOR_PUBLIC_HEADERS}
EXCLUDE_FROM_ALL
)
-set(CHECKAPI_FILE_LIST "${CMAKE_CURRENT_BINARY_DIR}/files.txt")
file(GLOB DISSECTOR_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.h")
-file(WRITE "${CHECKAPI_FILE_LIST}" "${DISSECTOR_FILES}" ";" "${CORBA_IDL_DISSECTOR_SRC}")
CHECKAPI(
NAME
dissectors
SWITCHES
--group dissectors-prohibited
--group dissectors-restricted:5 --summary-group dissectors-restricted
- --file ${CHECKAPI_FILE_LIST}
SOURCES
+ ${ALL_DISSECTOR_SRC}
${DISSECTOR_SUPPORT_SRC}
${DISSECTOR_HEADERS}
)
diff --git a/epan/dissectors/README.X11 b/epan/dissectors/README.X11
index 80a2de128a..b944bcd6e1 100644
--- a/epan/dissectors/README.X11
+++ b/epan/dissectors/README.X11
@@ -1,8 +1,8 @@
The X11 dissector generator is no longer run automatically.
-To run the dissector generator, you will need perl 5.10 and the XML::Twig
-module from CPAN. You will also need 'git' to retrieve the lastest protocol
-descriptions.
+To run the dissector generator, you will need perl 5.10 or later and the
+XML::Twig module from CPAN. You will also need 'git' to retrieve the
+latest protocol descriptions.
Once you have those, you also need the XML protocol descriptions. In the
epan/dissectors directory, run the following commands:
diff --git a/epan/dissectors/asn1/acse/packet-acse-template.c b/epan/dissectors/asn1/acse/packet-acse-template.c
index 68d0851995..b055342719 100644
--- a/epan/dissectors/asn1/acse/packet-acse-template.c
+++ b/epan/dissectors/asn1/acse/packet-acse-template.c
@@ -63,7 +63,7 @@ static expert_field ei_acse_dissector_not_available;
static expert_field ei_acse_malformed;
static expert_field ei_acse_invalid_oid;
-static dissector_handle_t acse_handle = NULL;
+static dissector_handle_t acse_handle;
/* indirect_reference, used to pick up the signalling so we know what
kind of data is transferred in SES_DATA_TRANSFER_PDUs */
@@ -76,7 +76,7 @@ typedef struct _acse_ctx_oid_t {
guint32 ctx_id;
char *oid;
} acse_ctx_oid_t;
-static wmem_map_t *acse_ctx_oid_table = NULL;
+static wmem_map_t *acse_ctx_oid_table;
static guint
acse_ctx_oid_hash(gconstpointer k)
diff --git a/epan/dissectors/asn1/ain/packet-ain-template.c b/epan/dissectors/asn1/ain/packet-ain-template.c
index e9e598adac..dc44621a3a 100644
--- a/epan/dissectors/asn1/ain/packet-ain-template.c
+++ b/epan/dissectors/asn1/ain/packet-ain-template.c
@@ -74,8 +74,8 @@ static expert_field ei_ain_unknown_returnResultData;
static expert_field ei_ain_unknown_returnErrorData;
/* Global variables */
-static guint32 opcode = 0;
-static guint32 errorCode = 0;
+static guint32 opcode;
+static guint32 errorCode;
//static const char *obj_id = NULL;
static int ain_opcode_type;
@@ -84,7 +84,7 @@ static int ain_opcode_type;
#define AIN_OPCODE_RETURN_ERROR 3
#define AIN_OPCODE_REJECT 4
-/* Forvard declarations */
+/* Forward declarations */
static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
diff --git a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
index 0b78391cd7..342ea561b9 100644
--- a/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
+++ b/epan/dissectors/asn1/ansi_map/packet-ansi_map-template.c
@@ -102,7 +102,7 @@ static range_t *global_ssn_range;
#define ANSI_MAP_TID_SOURCE_AND_DEST 2
static gint ansi_map_response_matching_type = ANSI_MAP_TID_AND_SOURCE;
-static dissector_handle_t ansi_map_handle=NULL;
+static dissector_handle_t ansi_map_handle;
/* Initialize the protocol and registered fields */
static int ansi_map_tap;
@@ -359,7 +359,7 @@ static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */
static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */
static packet_info *g_pinfo;
static proto_tree *g_tree;
-static tvbuff_t *SMS_BearerData_tvb = NULL;
+static tvbuff_t *SMS_BearerData_tvb;
static gint32 ansi_map_sms_tele_id = -1;
static gboolean is683_ota;
static gboolean is801_pld;
@@ -377,7 +377,7 @@ static void dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo
/* Transaction table */
-static wmem_multimap_t *TransactionId_table=NULL;
+static wmem_multimap_t *TransactionId_table;
/* Store Invoke information needed for the corresponding reply */
static void
diff --git a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
index 3b08e01cb7..d201951086 100644
--- a/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
+++ b/epan/dissectors/asn1/ansi_tcap/packet-ansi_tcap-template.c
@@ -67,7 +67,7 @@ static expert_field ei_ansi_tcap_dissector_not_implemented;
static struct tcapsrt_info_t * gp_tcapsrt_info;
static gboolean tcap_subdissector_used=FALSE;
-static struct tcaphash_context_t * gp_tcap_context=NULL;
+static struct tcaphash_context_t * gp_tcap_context;
/* Note the high bit should be masked off when registering in this table (0x7fff)*/
static dissector_table_t ansi_tcap_national_opcode_table; /* National Operation Codes */
@@ -76,10 +76,6 @@ static dissector_table_t ansi_tcap_national_opcode_table; /* National Operation
#define MAX_SSN 254
-extern gboolean gtcap_PersistentSRT;
-extern guint gtcap_RepetitionTimeout;
-extern guint gtcap_LostTimeout;
-
/* When several Tcap components are received in a single TCAP message,
we have to use several buffers for the stored parameters
because else this data are erased during TAP dissector call */
@@ -87,7 +83,7 @@ extern guint gtcap_LostTimeout;
int tcapsrt_global_current=0;
struct tcapsrt_info_t tcapsrt_global_info[MAX_TCAP_INSTANCE];
-static dissector_table_t ber_oid_dissector_table=NULL;
+static dissector_table_t ber_oid_dissector_table;
static const char * cur_oid;
static const char * tcapext_oid;
@@ -134,7 +130,7 @@ struct ansi_tcap_invokedata_t {
gint32 OperationCode_national;
};
-static wmem_multimap_t *TransactionId_table=NULL;
+static wmem_multimap_t *TransactionId_table;
/* Store Invoke information needed for the corresponding reply */
static void
@@ -360,7 +356,7 @@ dissect_ansi_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
}
}
if (g_ansi_tcap_HandleSRT && p_tcap_context && p_tcap_context->callback) {
- /* Callback fonction for the upper layer */
+ /* Callback function for the upper layer */
(p_tcap_context->callback)(tvb, pinfo, stat_tree, p_tcap_context);
}
}
diff --git a/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c b/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
index ed6cb46532..227773a6f8 100644
--- a/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
+++ b/epan/dissectors/asn1/atn-cm/packet-atn-cm-template.c
@@ -5,19 +5,16 @@
* Routines for ATN context management protocol packet disassembly.
* ATN context management allows an aircraft
* to log on to a ground facility.
-
+ *
* details see:
- * http://en.wikipedia.org/wiki/CPDLC
- * http://members.optusnet.com.au/~cjr/introduction.htm
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://members.optusnet.com.au/~cjr/introduction.htm
+ *
* standards:
- * http://legacy.icao.int/anb/panels/acp/repository.cfm
-
- * note:
- * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Ed2 here
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Second Edition here
* (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
-
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
+ *
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
diff --git a/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c b/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
index 2981f3e18c..8a5082219f 100644
--- a/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
+++ b/epan/dissectors/asn1/atn-cpdlc/packet-atn-cpdlc-template.c
@@ -3,18 +3,15 @@
* Copyright 2013
*
* Routines for ATN Cpdlcc protocol packet disassembly
-
+ *
* details see:
- * http://en.wikipedia.org/wiki/CPDLC
- * http://members.optusnet.com.au/~cjr/introduction.htm
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://members.optusnet.com.au/~cjr/introduction.htm
+ *
* standards:
- * http://legacy.icao.int/anb/panels/acp/repository.cfm
-
- * note:
- * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Ed2 here
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Second Edition here
* (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
diff --git a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
index 19a421c974..c8a3da402e 100644
--- a/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
+++ b/epan/dissectors/asn1/atn-ulcs/packet-atn-ulcs-template.c
@@ -4,28 +4,26 @@
*
* Routines for ATN upper layer
* protocol packet disassembly
-
+ *
* ATN upper layers are embedded within OSI Layer 4 (COTP).
*
* ATN upper layers contain:
* Session Layer (NUL protocol option)
* Presentation Layer (NUL protocol option)
* ATN upper Layer/Application (ACSE PDU or PDV-list PDU)
-
+ *
* ATN applications protocols (i.e. CM or CPDLC) are contained within
* ACSE user-information or PDV presentation data.
-
+ *
* details see:
- * http://en.wikipedia.org/wiki/CPDLC
- * http://members.optusnet.com.au/~cjr/introduction.htm
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://members.optusnet.com.au/~cjr/introduction.htm
+ *
* standards:
- * http://legacy.icao.int/anb/panels/acp/repository.cfm
-
- * note:
- * We are dealing with ATN/ULCS aka ICAO Doc 9705 Ed2 here
+ * We are dealing with ATN/ULCS aka ICAO Doc 9705 Second Edition here
* (don't think there is an ULCS equivalent for "FANS-1/A ").
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
+ *
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
@@ -118,18 +116,18 @@ void proto_reg_handoff_atn_ulcs(void);
static heur_dissector_list_t atn_ulcs_heur_subdissector_list;
/* presentation subdissectors i.e. CM, CPDLC */
-static dissector_handle_t atn_cm_handle = NULL;
-static dissector_handle_t atn_cpdlc_handle = NULL;
+static dissector_handle_t atn_cm_handle;
+static dissector_handle_t atn_cpdlc_handle;
static int proto_atn_ulcs;
-static guint32 ulcs_context_value = 0;
+static guint32 ulcs_context_value;
static const char *object_identifier_id;
-static wmem_tree_t *aarq_data_tree = NULL;
-static wmem_tree_t *atn_conversation_tree = NULL;
+static wmem_tree_t *aarq_data_tree;
+static wmem_tree_t *atn_conversation_tree;
-static proto_tree *root_tree = NULL;
+static proto_tree *root_tree;
/* forward declarations for functions generated from asn1 */
static int dissect_atn_ulcs_T_externalt_encoding_single_asn1_type(
diff --git a/epan/dissectors/asn1/c1222/packet-c1222-template.c b/epan/dissectors/asn1/c1222/packet-c1222-template.c
index 60252356a6..c11c7c6aec 100644
--- a/epan/dissectors/asn1/c1222/packet-c1222-template.c
+++ b/epan/dissectors/asn1/c1222/packet-c1222-template.c
@@ -66,8 +66,8 @@
void proto_register_c1222(void);
-static dissector_handle_t c1222_handle=NULL;
-static dissector_handle_t c1222_udp_handle=NULL;
+static dissector_handle_t c1222_handle;
+static dissector_handle_t c1222_udp_handle;
/* Initialize the protocol and registered fields */
static int proto_c1222;
@@ -142,43 +142,43 @@ static int ett_c1222_crypto;
static int ett_c1222_cmd;
/* these pointers are for the header elements that may be needed to verify the crypto */
-static guint8 *aSO_context = NULL;
-static guint8 *called_AP_title = NULL;
-static guint8 *called_AP_invocation_id = NULL;
-static guint8 *calling_AE_qualifier = NULL;
-static guint8 *calling_AP_invocation_id = NULL;
-static guint8 *mechanism_name = NULL;
-static guint8 *calling_authentication_value = NULL;
-static guint8 *user_information = NULL;
-static guint8 *calling_AP_title = NULL;
-static guint8 *key_id_element = NULL;
-static guint8 *iv_element = NULL;
+static guint8 *aSO_context;
+static guint8 *called_AP_title;
+static guint8 *called_AP_invocation_id;
+static guint8 *calling_AE_qualifier;
+static guint8 *calling_AP_invocation_id;
+static guint8 *mechanism_name;
+static guint8 *calling_authentication_value;
+static guint8 *user_information;
+static guint8 *calling_AP_title;
+static guint8 *key_id_element;
+static guint8 *iv_element;
/* these are the related lengths */
-static guint32 aSO_context_len = 0;
-static guint32 called_AP_title_len = 0;
-static guint32 called_AP_invocation_id_len = 0;
-static guint32 calling_AE_qualifier_len = 0;
-static guint32 calling_AP_invocation_id_len = 0;
-static guint32 mechanism_name_len = 0;
-static guint32 calling_authentication_value_len = 0;
-static guint32 user_information_len = 0;
-static guint32 calling_AP_title_len = 0;
-static guint32 key_id_element_len = 0;
-static guint32 iv_element_len = 0;
+static guint32 aSO_context_len;
+static guint32 called_AP_title_len;
+static guint32 called_AP_invocation_id_len;
+static guint32 calling_AE_qualifier_len;
+static guint32 calling_AP_invocation_id_len;
+static guint32 mechanism_name_len;
+static guint32 calling_authentication_value_len;
+static guint32 user_information_len;
+static guint32 calling_AP_title_len;
+static guint32 key_id_element_len;
+static guint32 iv_element_len;
/* these are the related allocation sizes (which might be different from the lengths) */
-static guint32 aSO_context_allocated = 0;
-static guint32 called_AP_title_allocated = 0;
-static guint32 called_AP_invocation_id_allocated = 0;
-static guint32 calling_AE_qualifier_allocated = 0;
-static guint32 calling_AP_invocation_id_allocated = 0;
-static guint32 mechanism_name_allocated = 0;
-static guint32 calling_authentication_value_allocated = 0;
-static guint32 user_information_allocated = 0;
-static guint32 calling_AP_title_allocated = 0;
-static guint32 key_id_element_allocated = 0;
-static guint32 iv_element_allocated = 0;
+static guint32 aSO_context_allocated;
+static guint32 called_AP_title_allocated;
+static guint32 called_AP_invocation_id_allocated;
+static guint32 calling_AE_qualifier_allocated;
+static guint32 calling_AP_invocation_id_allocated;
+static guint32 mechanism_name_allocated;
+static guint32 calling_authentication_value_allocated;
+static guint32 user_information_allocated;
+static guint32 calling_AP_title_allocated;
+static guint32 key_id_element_allocated;
+static guint32 iv_element_allocated;
#include "packet-c1222-ett.c"
@@ -193,12 +193,12 @@ static expert_field ei_c1222_epsem_field_length_error;
static expert_field ei_c1222_mac_missing;
/* Preferences */
-static gboolean c1222_desegment = TRUE;
-static gboolean c1222_decrypt = TRUE;
-static gboolean c1222_big_endian = FALSE;
-static const gchar *c1222_baseoid_str = NULL;
-static guint8 *c1222_baseoid = NULL;
-static guint c1222_baseoid_len = 0;
+static bool c1222_desegment = true;
+static bool c1222_decrypt = true;
+static bool c1222_big_endian;
+static const gchar *c1222_baseoid_str;
+static guint8 *c1222_baseoid;
+static guint c1222_baseoid_len;
/*------------------------------
* Data Structures
@@ -304,8 +304,8 @@ typedef struct _c1222_uat_data {
UAT_HEX_CB_DEF(c1222_users, keynum, c1222_uat_data_t)
UAT_BUFFER_CB_DEF(c1222_users, key, c1222_uat_data_t, key, keylen)
-static c1222_uat_data_t *c1222_uat_data = NULL;
-static guint num_c1222_uat_data = 0;
+static c1222_uat_data_t *c1222_uat_data;
+static guint num_c1222_uat_data;
static uat_t *c1222_uat;
/* these macros ares used to populate fields needed to verify crypto */
diff --git a/epan/dissectors/asn1/camel/packet-camel-template.c b/epan/dissectors/asn1/camel/packet-camel-template.c
index 5d5cc63717..6372663222 100644
--- a/epan/dissectors/asn1/camel/packet-camel-template.c
+++ b/epan/dissectors/asn1/camel/packet-camel-template.c
@@ -54,7 +54,7 @@ static int camel_tap;
/* Global variables */
static guint32 opcode=0;
static guint32 errorCode=0;
-static guint32 camel_ver = 0;
+static guint32 camel_ver;
/* When several Camel components are received in a single TCAP message,
we have to use several buffers for the stored parameters
@@ -116,7 +116,7 @@ static int dissect_camel_EstablishTemporaryConnectionArgV2(bool implicit_tag _U_
static int dissect_camel_SpecializedResourceReportArgV23(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/* XXX - can we get rid of these and always do the SRT work? */
-static gboolean gcamel_PersistentSRT=FALSE;
+static bool gcamel_PersistentSRT=false;
static gboolean gcamel_DisplaySRT=FALSE;
gboolean gcamel_StatSRT=FALSE;
@@ -165,11 +165,11 @@ static dissector_handle_t camel_v4_handle;
static guint8 PDPTypeOrganization;
static guint8 PDPTypeNumber;
-const char *camel_obj_id = NULL;
-gboolean is_ExtensionField =FALSE;
+const char *camel_obj_id;
+gboolean is_ExtensionField;
/* Global hash tables*/
-static wmem_map_t *srt_calls = NULL;
+static wmem_map_t *srt_calls;
static guint32 camelsrt_global_SessionId=1;
static int camel_opcode_type;
@@ -401,7 +401,7 @@ dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, _U_ guint len,
"Diagnostic : %u", oct);
curr_offset++;
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static int dissect_camel_InitialDPArgExtensionV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -1053,8 +1053,8 @@ camelsrt_razinfo(void)
}
-static guint8 camel_pdu_type = 0;
-static guint8 camel_pdu_size = 0;
+static guint8 camel_pdu_type;
+static guint8 camel_pdu_size;
static int
diff --git a/epan/dissectors/asn1/cdt/packet-cdt-template.c b/epan/dissectors/asn1/cdt/packet-cdt-template.c
index 7820380c13..b954768481 100644
--- a/epan/dissectors/asn1/cdt/packet-cdt-template.c
+++ b/epan/dissectors/asn1/cdt/packet-cdt-template.c
@@ -38,10 +38,10 @@
void proto_register_cdt(void);
void proto_reg_handoff_cdt(void);
-static proto_tree *top_tree = NULL;
-static proto_item *cdt_item = NULL;
+static proto_tree *top_tree;
+static proto_item *cdt_item;
-static guint32 content_type = 0;
+static guint32 content_type;
/* Initialize the protocol and registered fields */
static int proto_cdt;
diff --git a/epan/dissectors/asn1/cmip/packet-cmip-template.c b/epan/dissectors/asn1/cmip/packet-cmip-template.c
index 4e7a249493..45feb39f0c 100644
--- a/epan/dissectors/asn1/cmip/packet-cmip-template.c
+++ b/epan/dissectors/asn1/cmip/packet-cmip-template.c
@@ -50,7 +50,7 @@ static expert_field ei_wrong_spdu_type;
static guint32 opcode;
-static dissector_handle_t cmip_handle = NULL;
+static dissector_handle_t cmip_handle;
/* Dissector table */
static dissector_table_t attribute_id_dissector_table;
diff --git a/epan/dissectors/asn1/cmp/packet-cmp-template.c b/epan/dissectors/asn1/cmp/packet-cmp-template.c
index c6af656260..028daa546c 100644
--- a/epan/dissectors/asn1/cmp/packet-cmp-template.c
+++ b/epan/dissectors/asn1/cmp/packet-cmp-template.c
@@ -42,10 +42,10 @@ static dissector_handle_t cmp_tcp_style_http_handle;
static dissector_handle_t cmp_tcp_handle;
/* desegmentation of CMP over TCP */
-static gboolean cmp_desegment = TRUE;
+static bool cmp_desegment = true;
-static guint cmp_alternate_http_port = 0;
-static guint cmp_alternate_tcp_style_http_port = 0;
+static guint cmp_alternate_http_port;
+static guint cmp_alternate_tcp_style_http_port;
/* Initialize the protocol and registered fields */
static int proto_cmp;
diff --git a/epan/dissectors/asn1/cms/packet-cms-template.c b/epan/dissectors/asn1/cms/packet-cms-template.c
index fb3b3a316f..52ff168fa0 100644
--- a/epan/dissectors/asn1/cms/packet-cms-template.c
+++ b/epan/dissectors/asn1/cms/packet-cms-template.c
@@ -43,7 +43,7 @@ static int hf_cms_ci_contentType;
static gint ett_cms;
#include "packet-cms-ett.c"
-static dissector_handle_t cms_handle = NULL;
+static dissector_handle_t cms_handle;
static int dissect_cms_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) ; /* XXX kill a compiler warning until asn2wrs stops generating these silly wrappers */
@@ -52,8 +52,8 @@ struct cms_private_data {
tvbuff_t *content_tvb;
};
-static proto_tree *top_tree=NULL;
-static proto_tree *cap_tree=NULL;
+static proto_tree *top_tree;
+static proto_tree *cap_tree;
#define HASH_SHA1 "1.3.14.3.2.26"
diff --git a/epan/dissectors/asn1/disp/packet-disp-template.c b/epan/dissectors/asn1/disp/packet-disp-template.c
index 6b8091a897..efd12fb15e 100644
--- a/epan/dissectors/asn1/disp/packet-disp-template.c
+++ b/epan/dissectors/asn1/disp/packet-disp-template.c
@@ -57,7 +57,7 @@ static expert_field ei_disp_unsupported_errcode;
static expert_field ei_disp_unsupported_pdu;
static expert_field ei_disp_zero_pdu;
-static dissector_handle_t disp_handle = NULL;
+static dissector_handle_t disp_handle;
#include "packet-disp-fn.c"
diff --git a/epan/dissectors/asn1/dop/packet-dop-template.c b/epan/dissectors/asn1/dop/packet-dop-template.c
index 8182586832..f2ce04aa18 100644
--- a/epan/dissectors/asn1/dop/packet-dop-template.c
+++ b/epan/dissectors/asn1/dop/packet-dop-template.c
@@ -41,7 +41,7 @@ void proto_reg_handoff_dop(void);
/* Initialize the protocol and registered fields */
static int proto_dop;
-static const char *binding_type = NULL; /* binding_type */
+static const char *binding_type; /* binding_type */
static int call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *col_info, void* data);
@@ -58,7 +58,7 @@ static expert_field ei_dop_unsupported_errcode;
static expert_field ei_dop_unsupported_pdu;
static expert_field ei_dop_zero_pdu;
-static dissector_handle_t dop_handle = NULL;
+static dissector_handle_t dop_handle;
/* Dissector table */
static dissector_table_t dop_dissector_table;
diff --git a/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
index f2d2200b42..4a06304d06 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.7.0 (2023-12)
+-- 3GPP TS 37.483 V17.8.0 (2024-03)
-- **************************************************************
--
-- Common definitions
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Constants.asn b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
index 25033bee74..d9a0608c06 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.7.0 (2023-12)
+-- 3GPP TS 37.483 V17.8.0 (2024-03)
-- **************************************************************
--
-- Constant definitions
@@ -103,6 +103,7 @@ maxnoofMBSAreaSessionIDs INTEGER ::= 256
maxnoofSharedNG-UTerminations INTEGER ::= 8
maxnoofMRBs INTEGER ::= 32
maxnoofMBSSessionIDs INTEGER ::= 512
+maxnoofDUs INTEGER ::= 512
-- **************************************************************
@@ -305,7 +306,27 @@ id-Secondary-PDU-Session-Data-Forwarding-Information ProtocolIE-ID ::= 190
id-MBSSessionResourceNotification ProtocolIE-ID ::= 191
id-MCBearerContextInactivityTimer ProtocolIE-ID ::= 192
id-MCBearerContextStatusChange ProtocolIE-ID ::= 193
-
+-- WS extension
+id-Unknown-194 ProtocolIE-ID ::= 194
+id-Unknown-195 ProtocolIE-ID ::= 195
+id-Unknown-196 ProtocolIE-ID ::= 196
+id-Unknown-197 ProtocolIE-ID ::= 197
+id-Unknown-198 ProtocolIE-ID ::= 198
+id-Unknown-199 ProtocolIE-ID ::= 199
+id-Unknown-200 ProtocolIE-ID ::= 200
+id-Unknown-201 ProtocolIE-ID ::= 201
+id-Unknown-202 ProtocolIE-ID ::= 202
+id-Unknown-203 ProtocolIE-ID ::= 203
+id-Unknown-204 ProtocolIE-ID ::= 204
+id-Unknown-205 ProtocolIE-ID ::= 205
+id-Unknown-206 ProtocolIE-ID ::= 206
+id-Unknown-207 ProtocolIE-ID ::= 207
+id-F1U-TNL-InfoToAdd-List ProtocolIE-ID ::= 208
+id-F1U-TNL-InfoAdded-List ProtocolIE-ID ::= 209
+id-F1U-TNL-InfoToAddOrModify-List ProtocolIE-ID ::= 210
+id-F1U-TNL-InfoAddedOrModified-List ProtocolIE-ID ::= 211
+id-F1U-TNL-InfoToRelease-List ProtocolIE-ID ::= 212
+id-BroadcastF1U-ContextReferenceE1 ProtocolIE-ID ::= 213
END
diff --git a/epan/dissectors/asn1/e1ap/E1AP-Containers.asn b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
index 6b3d0369c6..fe2cefecf8 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.7.0 (2023-12)
+-- 3GPP TS 37.483 V17.8.0 (2024-03)
-- **************************************************************
--
-- Container definitions
diff --git a/epan/dissectors/asn1/e1ap/E1AP-IEs.asn b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
index 994902775d..a1bca39a6e 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.7.0 (2023-12)
+-- 3GPP TS 37.483 V17.8.0 (2024-03)
-- **************************************************************
--
-- Information Element Definitions
@@ -81,6 +81,12 @@ IMPORTS
id-MBSSessionResourceNotification,
id-MCBearerContextInactivityTimer,
id-MCBearerContextStatusChange,
+ id-F1U-TNL-InfoToAdd-List,
+ id-F1U-TNL-InfoAdded-List,
+ id-F1U-TNL-InfoToAddOrModify-List,
+ id-F1U-TNL-InfoAddedOrModified-List,
+ id-F1U-TNL-InfoToRelease-List,
+ id-BroadcastF1U-ContextReferenceE1,
maxnoofMBSAreaSessionIDs,
maxnoofSharedNG-UTerminations,
maxnoofMRBs,
@@ -105,7 +111,8 @@ IMPORTS
maxnoofDataForwardingTunneltoE-UTRAN,
maxnoofExtNRCGI,
maxnoofECGI,
- maxnoofSMBRValues
+ maxnoofSMBRValues,
+ maxnoofDUs
FROM E1AP-Constants
@@ -215,6 +222,7 @@ BCMRBSetupConfiguration-Item ::= SEQUENCE {
}
BCMRBSetupConfiguration-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoToAdd-List CRITICALITY ignore EXTENSION F1U-TNL-InfoToAdd-List PRESENCE optional},
...
}
@@ -255,6 +263,7 @@ BCMRBSetupResponseList-Item ::= SEQUENCE {
}
BCMRBSetupResponseList-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoAdded-List CRITICALITY ignore EXTENSION F1U-TNL-InfoAdded-List PRESENCE optional},
...
}
@@ -310,6 +319,8 @@ BCMRBModifyConfiguration-Item ::= SEQUENCE {
}
BCMRBModifyConfiguration-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoToAddOrModify-List CRITICALITY ignore EXTENSION F1U-TNL-InfoToAddOrModify-List PRESENCE optional}|
+ {ID id-F1U-TNL-InfoToRelease-List CRITICALITY ignore EXTENSION F1U-TNL-InfoToRelease-List PRESENCE optional},
...
}
@@ -353,9 +364,11 @@ BCMRBSetupModifyResponseList-Item ::= SEQUENCE {
}
BCMRBSetupModifyResponseList-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-F1U-TNL-InfoAddedOrModified-List CRITICALITY ignore EXTENSION F1U-TNL-InfoAddedOrModified-List PRESENCE optional},
...
}
+BroadcastF1U-ContextReferenceE1 ::= OCTET STRING (SIZE(4))
-- BCBearerContextToModifyRequired
@@ -1430,6 +1443,70 @@ FirstDLCount-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
...
}
+F1U-TNL-InfoAdded-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoAdded-Item
+
+F1U-TNL-InfoAdded-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ bcBearerContextF1U-TNLInfoatCU BCBearerContextF1U-TNLInfoatCU,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoAdded-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoAdded-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoToAdd-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoToAdd-Item
+
+F1U-TNL-InfoToAdd-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoToAdd-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoToAdd-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoAddedOrModified-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoAddedOrModified-Item
+
+F1U-TNL-InfoAddedOrModified-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ bcBearerContextF1U-TNLInfoatCU BCBearerContextF1U-TNLInfoatCU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoAddedOrModified-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoAddedOrModified-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoToAddOrModify-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoToAddOrModify-Item
+
+F1U-TNL-InfoToAddOrModify-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ bcBearerContextF1U-TNLInfoatDU BCBearerContextF1U-TNLInfoatDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoToAddOrModify-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoToAddOrModify-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+F1U-TNL-InfoToRelease-List ::= SEQUENCE (SIZE(1..maxnoofDUs)) OF F1U-TNL-InfoToRelease-Item
+
+F1U-TNL-InfoToRelease-Item ::= SEQUENCE {
+ broadcastF1U-ContextReferenceE1 BroadcastF1U-ContextReferenceE1,
+ iE-Extensions ProtocolExtensionContainer { {F1U-TNL-InfoToRelease-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+F1U-TNL-InfoToRelease-Item-ExtIEs E1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
-- G
GlobalMBSSessionID ::= SEQUENCE {
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
index 4164c3d0b0..7c35b3ebaa 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.7.0 (2023-12)
+-- 3GPP TS 37.483 V17.8.0 (2024-03)
-- **************************************************************
--
-- PDU definitions for E1AP
diff --git a/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
index f7538c59b9..10e58c0d15 100644
--- a/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/e1ap/E1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 37.483 V17.7.0 (2023-12)
+-- 3GPP TS 37.483 V17.8.0 (2024-03)
-- **************************************************************
--
-- Elementary Procedure definitions
diff --git a/epan/dissectors/asn1/e1ap/e1ap.cnf b/epan/dissectors/asn1/e1ap/e1ap.cnf
index 721e7f52a4..d5f594f16b 100644
--- a/epan/dissectors/asn1/e1ap/e1ap.cnf
+++ b/epan/dissectors/asn1/e1ap/e1ap.cnf
@@ -355,6 +355,12 @@ id-Secondary-PDU-Session-Data-Forwarding-Information ProtocolIE-ID
id-MBSSessionResourceNotification ProtocolIE-ID
id-MCBearerContextInactivityTimer ProtocolIE-ID
id-MCBearerContextStatusChange ProtocolIE-ID
+id-F1U-TNL-InfoToAdd-List ProtocolIE-ID
+id-F1U-TNL-InfoAdded-List ProtocolIE-ID
+id-F1U-TNL-InfoToAddOrModify-List ProtocolIE-ID
+id-F1U-TNL-InfoAddedOrModified-List ProtocolIE-ID
+id-F1U-TNL-InfoToRelease-List ProtocolIE-ID
+id-BroadcastF1U-ContextReferenceE1 ProtocolIE-ID
#.END
@@ -558,6 +564,11 @@ MBSAreaSessionID N e1ap.extension id-MBSAreaSessionI
Data-Forwarding-Information N e1ap.extension id-Secondary-PDU-Session-Data-Forwarding-Information
Inactivity-Timer N e1ap.extension id-MCBearerContextInactivityTimer
MCBearerContextStatusChange N e1ap.extension id-MCBearerContextStatusChange
+F1U-TNL-InfoToAdd-List N e1ap.extension id-F1U-TNL-InfoToAdd-List
+F1U-TNL-InfoAdded-List N e1ap.extension id-F1U-TNL-InfoAdded-List
+F1U-TNL-InfoToAddOrModify-List N e1ap.extension id-F1U-TNL-InfoToAddOrModify-List
+F1U-TNL-InfoAddedOrModified-List N e1ap.extension id-F1U-TNL-InfoAddedOrModified-List
+F1U-TNL-InfoToRelease-List N e1ap.extension id-F1U-TNL-InfoToRelease-List
#E1AP-ELEMENTARY-PROCEDURE
Reset N e1ap.proc.imsg id-reset
diff --git a/epan/dissectors/asn1/e1ap/packet-e1ap-template.c b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
index b37d7bb3d0..95deba40b3 100644
--- a/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
+++ b/epan/dissectors/asn1/e1ap/packet-e1ap-template.c
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 37.483 V17.7.0 (2023-12)
+ * References: 3GPP TS 37.483 V17.8.0 (2024-03)
*/
#include "config.h"
diff --git a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
index eba49213dd..2e3ee14c1a 100644
--- a/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
+++ b/epan/dissectors/asn1/e2ap/packet-e2ap-template.c
@@ -182,7 +182,7 @@ static const value_string mtype_names[] = {
{ 0, NULL }
};
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
diff --git a/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
index 7bd995a74f..c350d6bcab 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.7.0 (2023-12)
+-- 3GPP TS 38.473 V17.8.0 (2024-03)
-- 9.4.6 Common Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/f1ap/F1AP-Constants.asn b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
index 24a01f38c7..5fb0eeac78 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.7.0 (2023-12)
+-- 3GPP TS 38.473 V17.8.0 (2024-03)
-- 9.4.7 Constant Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/f1ap/F1AP-Containers.asn b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
index 861eb6eb05..d830b68336 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.7.0 (2023-12)
+-- 3GPP TS 38.473 V17.8.0 (2024-03)
-- 9.4.8 Container Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/f1ap/F1AP-IEs.asn b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
index b18a5dbeed..8f8fcf3df3 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.7.0 (2023-12)
+-- 3GPP TS 38.473 V17.8.0 (2024-03)
-- 9.4.5 Information Element Definitions
-- **************************************************************
--
@@ -4460,7 +4460,7 @@ NR-U-Channel-Info-List ::= SEQUENCE (SIZE (1..maxnoofNR-UChannelIDs)) OF NR-U-Ch
NR-U-Channel-Info-Item ::= SEQUENCE {
nr-U-channel-ID INTEGER(1.. maxnoofNR-UChannelIDs,...),
nR-ARFCN INTEGER (0..maxNRARFCN),
- bandwidth ENUMERATED{mHz-10,mHz-20,mHz-40, mHz-60, mHz-80,...},
+ bandwidth ENUMERATED{mHz-10,mHz-20,mHz-40, mHz-60, mHz-80,...,mHz-100},
iE-Extensions ProtocolExtensionContainer { { NR-U-Channel-Info-List-ExtIEs } } OPTIONAL,
...
}
@@ -5229,9 +5229,9 @@ PRSAngleList ::= SEQUENCE (SIZE(1.. maxnoofPRS-ResourcesPerSet)) OF PRSAngleItem
PRSAngleItem ::= SEQUENCE {
nR-PRS-Azimuth INTEGER (0..359),
- nR-PRS-Azimuth-fine INTEGER (0..9),
- nR-PRS-Elevation INTEGER (0..180),
- nR-PRS-Elevation-fine INTEGER (0..9),
+ nR-PRS-Azimuth-fine INTEGER (0..9) OPTIONAL,
+ nR-PRS-Elevation INTEGER (0..180) OPTIONAL,
+ nR-PRS-Elevation-fine INTEGER (0..9) OPTIONAL,
iE-Extensions ProtocolExtensionContainer { { PRSAngleItem-ItemExtIEs } } OPTIONAL
}
@@ -5461,7 +5461,7 @@ RequestedDLPRSTransmissionCharacteristics-ExtIEs F1AP-PROTOCOL-EXTENSION ::= {
RequestedDLPRSResourceSet-List ::= SEQUENCE (SIZE (1..maxnoofPRSresourceSets)) OF RequestedDLPRSResourceSet-Item
RequestedDLPRSResourceSet-Item ::= SEQUENCE {
- pRSbandwidth INTEGER(1..63),
+ pRSbandwidth INTEGER(1..63) OPTIONAL,
combSize ENUMERATED{n2, n4, n6, n12, ...} OPTIONAL,
resourceSetPeriodicity ENUMERATED{n4,n5,n8,n10,n16,n20,n32,n40,n64,n80,n160,n320,n640,n1280,n2560,n5120,n10240,n20480,n40960, n81920,..., n128, n256, n512} OPTIONAL,
resourceRepetitionFactor ENUMERATED{rf1,rf2,rf4,rf6,rf8,rf16,rf32,...} OPTIONAL,
@@ -6785,7 +6785,7 @@ SpatialInformationPos-ExtIEs F1AP-PROTOCOL-IES ::= {
SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB)
-SRBID ::= INTEGER (0..3, ...)
+SRBID ::= INTEGER (0..3, ..., 4)
SRBs-FailedToBeSetup-Item ::= SEQUENCE {
sRBID SRBID ,
diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
index 92aaaa8e52..8803d2583e 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.7.0 (2023-12)
+-- 3GPP TS 38.473 V17.8.0 (2024-03)
-- 9.4.4 PDU Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
index d20d3ea47a..f497d4751f 100644
--- a/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/f1ap/F1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.473 V17.7.0 (2023-12)
+-- 3GPP TS 38.473 V17.8.0 (2024-03)
-- 9.4.3 Elementary Procedure Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/f1ap/f1ap.cnf b/epan/dissectors/asn1/f1ap/f1ap.cnf
index 20345be96d..7467a519c2 100644
--- a/epan/dissectors/asn1/f1ap/f1ap.cnf
+++ b/epan/dissectors/asn1/f1ap/f1ap.cnf
@@ -2041,12 +2041,6 @@ PortNumber TYPE = FT_UINT16 DISPLAY = BASE_DEC
}
#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec
-
-#.TYPE_ATTR
-BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_kbit
-
-#.TYPE_ATTR
ChannelOccupancyTimePercentage DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent
#.TYPE_ATTR
diff --git a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
index b5ad42cb70..cbbf4c916d 100644
--- a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
+++ b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 38.473 V17.7.0 (2023-12)
+ * References: 3GPP TS 38.473 V17.8.0 (2024-03)
*/
#include "config.h"
@@ -493,7 +493,7 @@ static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
diff --git a/epan/dissectors/asn1/gdt/packet-gdt-template.c b/epan/dissectors/asn1/gdt/packet-gdt-template.c
index 700ac5763c..0bbe28db1a 100644
--- a/epan/dissectors/asn1/gdt/packet-gdt-template.c
+++ b/epan/dissectors/asn1/gdt/packet-gdt-template.c
@@ -29,7 +29,7 @@
/* Initialize the protocol and registered fields */
static int proto_gdt;
-static dissector_handle_t gdt_handle = NULL;
+static dissector_handle_t gdt_handle;
#include "packet-gdt-hf.c"
diff --git a/epan/dissectors/asn1/glow/packet-glow-template.c b/epan/dissectors/asn1/glow/packet-glow-template.c
index 0f39fbc8e9..f290dd1f31 100644
--- a/epan/dissectors/asn1/glow/packet-glow-template.c
+++ b/epan/dissectors/asn1/glow/packet-glow-template.c
@@ -22,7 +22,7 @@
void proto_register_glow(void);
-static dissector_handle_t glow_handle=NULL;
+static dissector_handle_t glow_handle;
static int proto_glow;
#include "packet-glow-hf.c"
diff --git a/epan/dissectors/asn1/goose/packet-goose-template.c b/epan/dissectors/asn1/goose/packet-goose-template.c
index ad03235ccc..95cbbd422b 100644
--- a/epan/dissectors/asn1/goose/packet-goose-template.c
+++ b/epan/dissectors/asn1/goose/packet-goose-template.c
@@ -104,7 +104,7 @@ static int ett_expert_inf_sim;
#include "packet-goose-fn.c"
-static dissector_handle_t goose_handle = NULL;
+static dissector_handle_t goose_handle;
#define OSI_SPDU_TUNNELED 0xA0 /* Tunneled */
diff --git a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
index 595bebd653..3431d4545b 100644
--- a/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
+++ b/epan/dissectors/asn1/gprscdr/packet-gprscdr-template.c
@@ -50,7 +50,7 @@ static expert_field ei_gprscdr_not_dissected;
static expert_field ei_gprscdr_choice_not_found;
/* Global variables */
-static const char *obj_id = NULL;
+static const char *obj_id;
static const value_string gprscdr_daylight_saving_time_vals[] = {
{0, "No adjustment"},
diff --git a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
index a5d4e4e6cf..32038bfe5f 100644
--- a/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
+++ b/epan/dissectors/asn1/gsm_map/packet-gsm_map-template.c
@@ -206,7 +206,7 @@ static dissector_table_t map_prop_err_opcode_table; /* proprietary operat
static range_t *global_ssn_range;
#define APPLICATON_CONTEXT_FROM_TRACE 0
static gint pref_application_context_version = APPLICATON_CONTEXT_FROM_TRACE;
-static gboolean pref_ericsson_proprietary_ext = FALSE;
+static bool pref_ericsson_proprietary_ext;
/* Global variables */
static guint32 opcode=0;
@@ -215,8 +215,8 @@ static int application_context_version;
static guint ProtocolId;
static guint AccessNetworkProtocolId;
static int gsm_map_tap;
-static guint8 gsmmap_pdu_type = 0;
-static guint8 gsm_map_pdu_size = 0;
+static guint8 gsmmap_pdu_type;
+static guint8 gsm_map_pdu_size;
#define SMS_ENCODING_NOT_SET 0
#define SMS_ENCODING_7BIT 1
diff --git a/epan/dissectors/asn1/h225/h225.cnf b/epan/dissectors/asn1/h225/h225.cnf
index 8c56f6ddf3..4550ae988a 100644
--- a/epan/dissectors/asn1/h225/h225.cnf
+++ b/epan/dissectors/asn1/h225/h225.cnf
@@ -932,7 +932,7 @@ H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode
#.FN_HDR TBCD-STRING
int min_len, max_len;
- gboolean has_extension;
+ bool has_extension;
get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
#.FN_PARS TBCD-STRING
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.c b/epan/dissectors/asn1/h225/packet-h225-template.c
index 2f34962cf7..071eb26e94 100644
--- a/epan/dissectors/asn1/h225/packet-h225-template.c
+++ b/epan/dissectors/asn1/h225/packet-h225-template.c
@@ -74,7 +74,7 @@ typedef struct _h225ras_call_info_key {
/* Global Memory Chunks for lists and Global hash tables*/
-static wmem_map_t *ras_calls[7] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL};
+static wmem_map_t *ras_calls[7];
/* functions, needed using ras-request and halfcall matching*/
static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category);
@@ -92,9 +92,9 @@ static dissector_table_t gef_name_dissector_table;
static dissector_table_t gef_content_dissector_table;
-static dissector_handle_t h245_handle=NULL;
-static dissector_handle_t h245dg_handle=NULL;
-static dissector_handle_t h4501_handle=NULL;
+static dissector_handle_t h245_handle;
+static dissector_handle_t h245dg_handle;
+static dissector_handle_t h4501_handle;
static dissector_handle_t nsp_handle;
static dissector_handle_t tp_handle;
@@ -121,16 +121,16 @@ static gint ett_h225;
/* Preferences */
static guint h225_tls_port = TLS_PORT_CS;
-static gboolean h225_reassembly = TRUE;
-static gboolean h225_h245_in_tree = TRUE;
-static gboolean h225_tp_in_tree = TRUE;
+static bool h225_reassembly = true;
+static bool h225_h245_in_tree = true;
+static bool h225_tp_in_tree = true;
/* Global variables */
static guint32 ipv4_address;
static ws_in6_addr ipv6_address;
static ws_in6_addr ipv6_address_zeros = {{0}};
static guint32 ip_port;
-static gboolean contains_faststart = FALSE;
+static gboolean contains_faststart;
static e_guid_t *call_id_guid;
/* NonStandardParameter */
@@ -399,21 +399,21 @@ dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/* The following values represent the size of their valuestring arrays */
-#define RAS_MSG_TYPES (sizeof(h225_RasMessage_vals) / sizeof(value_string))
-#define CS_MSG_TYPES (sizeof(T_h323_message_body_vals) / sizeof(value_string))
-
-#define GRJ_REASONS (sizeof(GatekeeperRejectReason_vals) / sizeof(value_string))
-#define RRJ_REASONS (sizeof(RegistrationRejectReason_vals) / sizeof(value_string))
-#define URQ_REASONS (sizeof(UnregRequestReason_vals) / sizeof(value_string))
-#define URJ_REASONS (sizeof(UnregRejectReason_vals) / sizeof(value_string))
-#define ARJ_REASONS (sizeof(AdmissionRejectReason_vals) / sizeof(value_string))
-#define BRJ_REASONS (sizeof(BandRejectReason_vals) / sizeof(value_string))
-#define DRQ_REASONS (sizeof(DisengageReason_vals) / sizeof(value_string))
-#define DRJ_REASONS (sizeof(DisengageRejectReason_vals) / sizeof(value_string))
-#define LRJ_REASONS (sizeof(LocationRejectReason_vals) / sizeof(value_string))
-#define IRQNAK_REASONS (sizeof(InfoRequestNakReason_vals) / sizeof(value_string))
-#define REL_CMP_REASONS (sizeof(h225_ReleaseCompleteReason_vals) / sizeof(value_string))
-#define FACILITY_REASONS (sizeof(FacilityReason_vals) / sizeof(value_string))
+#define RAS_MSG_TYPES array_length(h225_RasMessage_vals)
+#define CS_MSG_TYPES array_length(T_h323_message_body_vals)
+
+#define GRJ_REASONS array_length(GatekeeperRejectReason_vals)
+#define RRJ_REASONS array_length(RegistrationRejectReason_vals)
+#define URQ_REASONS array_length(UnregRequestReason_vals)
+#define URJ_REASONS array_length(UnregRejectReason_vals)
+#define ARJ_REASONS array_length(AdmissionRejectReason_vals)
+#define BRJ_REASONS array_length(BandRejectReason_vals)
+#define DRQ_REASONS array_length(DisengageReason_vals)
+#define DRJ_REASONS array_length(DisengageRejectReason_vals)
+#define LRJ_REASONS array_length(LocationRejectReason_vals)
+#define IRQNAK_REASONS array_length(InfoRequestNakReason_vals)
+#define REL_CMP_REASONS array_length(h225_ReleaseCompleteReason_vals)
+#define FACILITY_REASONS array_length(FacilityReason_vals)
/* TAP STAT INFO */
typedef enum
@@ -450,10 +450,10 @@ static guint other_idx;
static void h225_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "H.225 Messages and Message Reasons";
- int num_fields = sizeof(h225_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(h225_stat_fields);
stat_tap_table *table;
int row_idx = 0, msg_idx;
- stat_tap_table_item_type items[sizeof(h225_stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(h225_stat_fields)];
table = stat_tap_find_table(new_stat, table_name);
if (table) {
@@ -847,8 +847,8 @@ void proto_register_h225(void) {
h225_stat_reset,
NULL,
NULL,
- sizeof(h225_stat_fields)/sizeof(stat_tap_table_item), h225_stat_fields,
- sizeof(h225_stat_params)/sizeof(tap_param), h225_stat_params,
+ array_length(h225_stat_fields), h225_stat_fields,
+ array_length(h225_stat_params), h225_stat_params,
NULL,
0
};
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.h b/epan/dissectors/asn1/h225/packet-h225-template.h
index 021a548ae7..009af67c6b 100644
--- a/epan/dissectors/asn1/h225/packet-h225-template.h
+++ b/epan/dissectors/asn1/h225/packet-h225-template.h
@@ -48,7 +48,7 @@ typedef struct _h225_packet_info {
/* added for h225 conversations analysis */
gboolean is_faststart; /* true, if faststart field is included */
gboolean is_h245;
- gboolean is_h245Tunneling;
+ bool is_h245Tunneling;
guint32 h245_address;
guint16 h245_port;
gchar dialedDigits[129]; /* Dialed Digits in the LRQ and LCF used for voip analysis */
diff --git a/epan/dissectors/asn1/h245/h245.cnf b/epan/dissectors/asn1/h245/h245.cnf
index e55c41a256..1874bac90c 100644
--- a/epan/dissectors/asn1/h245/h245.cnf
+++ b/epan/dissectors/asn1/h245/h245.cnf
@@ -353,7 +353,7 @@ Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format
#.FN_PARS H223LogicalChannelParameters/segmentableFlag
VAL_PTR = &value
#.FN_BODY H223LogicalChannelParameters/segmentableFlag
- gboolean value;
+ bool value;
%(DEFAULT_BODY)s
if(h223_lc_params_temp)
h223_lc_params_temp->segmentable = value;
diff --git a/epan/dissectors/asn1/h245/packet-h245-template.c b/epan/dissectors/asn1/h245/packet-h245-template.c
index c1b05c4e5d..df091aa7c7 100644
--- a/epan/dissectors/asn1/h245/packet-h245-template.c
+++ b/epan/dissectors/asn1/h245/packet-h245-template.c
@@ -46,7 +46,7 @@
void proto_register_h245(void);
void proto_reg_handoff_h245(void);
-static dissector_handle_t rtcp_handle=NULL;
+static dissector_handle_t rtcp_handle;
static dissector_table_t nsp_object_dissector_table;
static dissector_table_t nsp_h221_dissector_table;
static dissector_table_t gef_name_dissector_table;
@@ -55,8 +55,8 @@ static dissector_handle_t h245_handle;
static dissector_handle_t nsp_handle;
static dissector_handle_t data_handle;
static dissector_handle_t MultimediaSystemControlMessage_handle;
-static dissector_handle_t h263_handle = NULL;
-static dissector_handle_t amr_handle = NULL;
+static dissector_handle_t h263_handle;
+static dissector_handle_t amr_handle;
static void init_h245_packet_info(h245_packet_info *pi);
static int hf_h245_pdu_type;
@@ -68,9 +68,9 @@ static int hf_h245_debug_dissector_try_string;
h245_packet_info *h245_pi=NULL;
-static gboolean h245_reassembly = TRUE;
-static gboolean h245_shorttypes = FALSE;
-static gboolean info_col_fmt_prepend = FALSE;
+static bool h245_reassembly = true;
+static bool h245_shorttypes;
+static bool info_col_fmt_prepend;
#include "packet-h245-val.h"
@@ -196,7 +196,7 @@ static const value_string h245_AudioCapability_short_vals[] = {
/* To put the codec type only in COL_INFO when
an OLC is read */
-const char* codec_type = NULL;
+const char* codec_type;
static guint32 rfc_number;
typedef struct _unicast_addr_t {
@@ -221,10 +221,10 @@ typedef struct _olc_info_t {
channel_info_t rev_lc;
} olc_info_t;
-static wmem_map_t* h245_pending_olc_reqs = NULL;
-static gboolean fast_start = FALSE;
-static olc_info_t *upcoming_olc = NULL;
-static channel_info_t *upcoming_channel = NULL;
+static wmem_map_t* h245_pending_olc_reqs;
+static gboolean fast_start;
+static olc_info_t *upcoming_olc;
+static channel_info_t *upcoming_channel;
/* NonStandardParameter */
static const char *nsiOID;
@@ -256,7 +256,7 @@ static const value_string h245_h239subMessageIdentifier_vals[] = {
/* h223 multiplex codes */
-static h223_set_mc_handle_t h223_set_mc_handle = NULL;
+static h223_set_mc_handle_t h223_set_mc_handle;
h223_mux_element *h223_me=NULL;
guint8 h223_mc=0;
void h245_set_h223_set_mc_handle( h223_set_mc_handle_t handle )
@@ -270,7 +270,7 @@ typedef struct {
h223_lc_params *rev_channel_params;
} h223_pending_olc;
-static wmem_map_t* h223_pending_olc_reqs[] = { NULL, NULL };
+static wmem_map_t* h223_pending_olc_reqs[2];
static dissector_handle_t h245_lc_dissector;
static guint16 h245_lc_temp;
static guint16 h223_fw_lc_num;
@@ -278,7 +278,7 @@ static guint16 h223_rev_lc_num;
static h223_lc_params *h223_lc_params_temp;
static h223_lc_params *h223_fw_lc_params;
static h223_lc_params *h223_rev_lc_params;
-static h223_add_lc_handle_t h223_add_lc_handle = NULL;
+static h223_add_lc_handle_t h223_add_lc_handle;
static void h223_lc_init( void )
{
diff --git a/epan/dissectors/asn1/h248/packet-h248-template.c b/epan/dissectors/asn1/h248/packet-h248-template.c
index 54a40d08e7..2e5c84d9c9 100644
--- a/epan/dissectors/asn1/h248/packet-h248-template.c
+++ b/epan/dissectors/asn1/h248/packet-h248-template.c
@@ -132,10 +132,10 @@ const value_string gcp_term_types[] = {
{ 0, NULL }
};
-static wmem_tree_t* gcp_msgs = NULL;
-static wmem_tree_t* gcp_trxs = NULL;
-static wmem_tree_t* gcp_ctxs_by_trx = NULL;
-static wmem_tree_t* gcp_ctxs = NULL;
+static wmem_tree_t* gcp_msgs;
+static wmem_tree_t* gcp_trxs;
+static wmem_tree_t* gcp_ctxs_by_trx;
+static wmem_tree_t* gcp_ctxs;
gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) {
gcp_msg_t* m;
@@ -832,8 +832,8 @@ void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb
/* END Gateway Control Protocol -- Context Tracking */
#define H248_PORT 2945
-static gboolean keep_persistent_data = FALSE;
-static gboolean h248_desegment = TRUE;
+static bool keep_persistent_data;
+static bool h248_desegment = true;
@@ -1420,9 +1420,9 @@ static const value_string wildcard_levels[] = {
{ 0, NULL }
};
-static h248_curr_info_t curr_info = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
+static h248_curr_info_t curr_info;
static guint32 error_code;
-static guint32 h248_version = 0; /* h248v1 support */
+static guint32 h248_version; /* h248v1 support */
static gcp_wildcard_t wild_term;
static guint8 wild_card = 0xFF; /* place to store wildcardField */
@@ -1490,7 +1490,7 @@ static const h248_pkg_param_t no_param = { 0, &hf_h248_param, h248_param_uint_it
static const h248_pkg_evt_t no_event = { 0, &hf_h248_no_evt, &ett_h248_no_evt, NULL, NULL };
static const h248_package_t *find_package_id(guint16 pkgid);
-static wmem_tree_t* packages = NULL;
+static wmem_tree_t* packages;
extern void h248_param_PkgdName(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u1 _U_, void* u2 _U_) {
tvbuff_t *new_tvb = NULL;
diff --git a/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
index 792159b836..da1a3ffd8f 100644
--- a/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
+++ b/epan/dissectors/asn1/h450-ros/packet-h450-ros-template.c
@@ -38,7 +38,7 @@ static expert_field ei_ros_undecoded;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t data_handle = NULL;
+static dissector_handle_t data_handle;
/* Global variables */
static gint32 problem_val;
diff --git a/epan/dissectors/asn1/h460/packet-h460-template.c b/epan/dissectors/asn1/h460/packet-h460-template.c
index 3a3f819279..016446715c 100644
--- a/epan/dissectors/asn1/h460/packet-h460-template.c
+++ b/epan/dissectors/asn1/h460/packet-h460-template.c
@@ -38,8 +38,8 @@ static int proto_h460;
static dissector_handle_t h460_name_handle;
/* Subdissectors */
-static dissector_handle_t q931_ie_handle = NULL;
-static dissector_handle_t h225_ras_handle = NULL;
+static dissector_handle_t q931_ie_handle;
+static dissector_handle_t h225_ras_handle;
#include "packet-h460-fn.c"
diff --git a/epan/dissectors/asn1/h501/packet-h501-template.c b/epan/dissectors/asn1/h501/packet-h501-template.c
index aaa4d2c79e..27236b0772 100644
--- a/epan/dissectors/asn1/h501/packet-h501-template.c
+++ b/epan/dissectors/asn1/h501/packet-h501-template.c
@@ -42,7 +42,7 @@ static dissector_handle_t h501_tcp_handle;
/* Preferences */
#define H501_PORT 2099
-static gboolean h501_desegment_tcp = TRUE;
+static bool h501_desegment_tcp = true;
void proto_reg_handoff_h501(void);
diff --git a/epan/dissectors/asn1/idmp/packet-idmp-template.c b/epan/dissectors/asn1/idmp/packet-idmp-template.c
index ad9db5f6d3..6f5abe8147 100644
--- a/epan/dissectors/asn1/idmp/packet-idmp-template.c
+++ b/epan/dissectors/asn1/idmp/packet-idmp-template.c
@@ -37,14 +37,14 @@ void proto_register_idmp(void);
void proto_reg_handoff_idm(void);
void register_idmp_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name);
-static gboolean idmp_desegment = TRUE;
+static bool idmp_desegment = true;
#define IDMP_TCP_PORT 1102 /* made up for now - not IANA registered */
-static gboolean idmp_reassemble = TRUE;
-static dissector_handle_t idmp_handle = NULL;
+static bool idmp_reassemble = true;
+static dissector_handle_t idmp_handle;
-static proto_tree *top_tree = NULL;
-static const char *protocolID = NULL;
-static const char *saved_protocolID = NULL;
+static proto_tree *top_tree;
+static const char *protocolID;
+static const char *saved_protocolID;
static guint32 opcode = -1;
/* Initialize the protocol and registered fields */
diff --git a/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c b/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c
index 3baddbf1cd..d4f176e127 100644
--- a/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c
+++ b/epan/dissectors/asn1/ieee1609dot2/packet-ieee1609dot2-template.c
@@ -36,7 +36,7 @@ void proto_reg_handoff_ieee1609dot2(void);
/* Initialize the protocol and registered fields */
int proto_ieee1609dot2;
-dissector_handle_t proto_ieee1609dot2_handle = NULL;
+dissector_handle_t proto_ieee1609dot2_handle;
#include "packet-ieee1609dot2-hf.c"
/* Initialize the subtree pointers */
diff --git a/epan/dissectors/asn1/ilp/packet-ilp-template.c b/epan/dissectors/asn1/ilp/packet-ilp-template.c
index 1a628839c7..97a896e201 100644
--- a/epan/dissectors/asn1/ilp/packet-ilp-template.c
+++ b/epan/dissectors/asn1/ilp/packet-ilp-template.c
@@ -47,7 +47,7 @@ static int proto_ilp;
#define ILP_HEADER_SIZE 2
-static gboolean ilp_desegment = TRUE;
+static bool ilp_desegment = true;
#include "packet-ilp-hf.c"
static int hf_ilp_mobile_directory_number;
diff --git a/epan/dissectors/asn1/inap/packet-inap-template.c b/epan/dissectors/asn1/inap/packet-inap-template.c
index 8334aaea03..61101c57e2 100644
--- a/epan/dissectors/asn1/inap/packet-inap-template.c
+++ b/epan/dissectors/asn1/inap/packet-inap-template.c
@@ -53,8 +53,8 @@ static dissector_handle_t inap_handle;
/* Global variables */
static guint32 opcode=0;
static guint32 errorCode=0;
-static const char *obj_id = NULL;
-static gboolean is_ExtensionField =FALSE;
+static const char *obj_id;
+static gboolean is_ExtensionField;
static int inap_opcode_type;
#define INAP_OPCODE_INVOKE 1
@@ -133,8 +133,8 @@ TC-Invokable OPERATION ::=
#include "packet-inap-table2.c"
-static guint8 inap_pdu_type = 0;
-static guint8 inap_pdu_size = 0;
+static guint8 inap_pdu_type;
+static guint8 inap_pdu_size;
static int
diff --git a/epan/dissectors/asn1/its/packet-its-template.c b/epan/dissectors/asn1/its/packet-its-template.c
index 959cd9f6e1..1854b8af26 100644
--- a/epan/dissectors/asn1/its/packet-its-template.c
+++ b/epan/dissectors/asn1/its/packet-its-template.c
@@ -983,8 +983,8 @@ void proto_register_its(void)
void proto_reg_handoff_its(void)
{
- const char *subdissector[BTP_SUBDISS_SZ] = { "btpa.port", "btpb.port" };
- const guint16 ports[BTP_PORTS_SZ] = { ITS_WKP_DEN, ITS_WKP_CA, ITS_WKP_EVCSN, ITS_WKP_CHARGING, ITS_WKP_IVI, ITS_WKP_TPG, ITS_WKP_TLC_SSEM, ITS_WKP_GPC, ITS_WKP_TLC_SREM, ITS_WKP_RLT, ITS_WKP_TLM, ITS_WKP_CPS };
+ static const char *subdissector[BTP_SUBDISS_SZ] = { "btpa.port", "btpb.port" };
+ static const guint16 ports[BTP_PORTS_SZ] = { ITS_WKP_DEN, ITS_WKP_CA, ITS_WKP_EVCSN, ITS_WKP_CHARGING, ITS_WKP_IVI, ITS_WKP_TPG, ITS_WKP_TLC_SSEM, ITS_WKP_GPC, ITS_WKP_TLC_SREM, ITS_WKP_RLT, ITS_WKP_TLM, ITS_WKP_CPS };
int sdIdx, pIdx;
// Register well known ports to btp subdissector table (BTP A and B)
diff --git a/epan/dissectors/asn1/kerberos/k5.asn b/epan/dissectors/asn1/kerberos/k5.asn
index 1eb9120a6a..ca8edcc925 100644
--- a/epan/dissectors/asn1/kerberos/k5.asn
+++ b/epan/dissectors/asn1/kerberos/k5.asn
@@ -124,6 +124,7 @@ PADATA-TYPE ::= INTEGER {
pA-SUPPORTED-ETYPES(165), -- [MS-KILE]
pA-EXTENDED-ERROR(166), -- [MS-KILE]
pA-PAC-OPTIONS(167), -- [MS-KILE]
+ pA-SRP(250), -- (lha@apple.com)
pA-PROV-SRV-LOCATION(-1) -- 0xffffffff (gint32)0xFF) packetcable stuff
}
@@ -151,7 +152,8 @@ AUTHDATA-TYPE ::= INTEGER {
aD-TARGET-PRINCIPAL(144), -- [MS-KILE]
aD-SIGNTICKET-OLDER(-17),
-- aD-SIGNTICKET-OLD(142),
- aD-SIGNTICKET(512)
+ aD-SIGNTICKET(512),
+ aD-PFS(513) -- (lha@apple.com)
}
-- checksumtypes
@@ -310,7 +312,8 @@ ERROR-CODE ::= INTEGER {
eRR-REVOCATION-STATUS-UNKNOWN(73),
eRR-REVOCATION-STATUS-UNAVAILABLE(74),
eRR-CLIENT-NAME-MISMATCH(75),
- eRR-KDC-NAME-MISMATCH(76)
+ eRR-KDC-NAME-MISMATCH(76),
+ eRR-KDC-MORE-PREAUTH-DATA-REQUIRED(91)
}
-- this is sugar to make something ASN1 does not have: unsigned
@@ -885,6 +888,71 @@ PA-KERB-KEY-LIST-REP-Key ::= EncryptionKey
PA-KERB-KEY-LIST-REP ::= SEQUENCE OF PA-KERB-KEY-LIST-REP-Key
+--
+-- [SRP]
+-- https://github.com/apple-oss-distributions/Heimdal/blob/main/doc/standardisation/draft-srp.txt
+-- https://github.com/apple-oss-distributions/Heimdal/blob/main/lib/asn1/krb5.asn1
+--
+
+KRB5-SRP-GROUP ::= INTEGER {
+ kRB5-SRP-GROUP-INVALID(0),
+ kRB5-SRP-GROUP-RFC5054-4096-PBKDF2-SHA512(1)
+}
+
+KRB5-SRP-PA ::= SEQUENCE {
+ group [0] KRB5-SRP-GROUP,
+ salt [1] OCTET STRING,
+ iterations [2] UInt32
+}
+
+KRB5-SRP-PA-ANNOUNCE ::= SEQUENCE {
+ groups [0] SET OF KRB5-SRP-PA, -- allowed groups and their salt
+ as-req [1] Checksum -- an unkeyed checksum of the AS-REQ using
+ -- an non weak checksum type that the KDC support
+ -- given the list of etype from the client
+}
+
+KRB5-SRP-PA-INIT ::= [APPLICATION 0] SEQUENCE {
+ group [0] UInt32,
+ a [1] OCTET STRING
+}
+
+KRB5-SRP-PA-SERVER-CHALLENGE ::= [APPLICATION 1] OCTET STRING -- b
+
+KRB5-SRP-PA-CLIENT-RESPONSE ::= [APPLICATION 2] OCTET STRING -- m
+
+KRB5-SRP-PA-SERVER-VERIFIER ::= [APPLICATION 3] OCTET STRING -- hamk
+
+--
+-- PFS from
+-- https://github.com/apple-oss-distributions/Heimdal/blob/main/lib/asn1/krb5.asn1
+--
+KRB5-PFS-GROUP ::= INTEGER {
+ kRB5-PFS-INVALID(0),
+ kRB5-PFS-NIST-P256(1),
+ kRB5-PFS-X25519(2)
+}
+
+KRB5-PFS-SELECTION ::= SEQUENCE {
+ group [0] KRB5-PFS-GROUP,
+ public-key [1] OCTET STRING
+}
+
+KRB5-PFS-SELECTIONS ::= SEQUENCE OF KRB5-PFS-SELECTION
+
+KRB5-PFS-PROPOSE ::= SEQUENCE {
+ checksum [0] Checksum OPTIONAL,
+ selections [1] KRB5-PFS-SELECTIONS
+}
+
+KRB5-PFS-ACCEPT ::= SEQUENCE {
+ checksum [0] Checksum OPTIONAL,
+ selection [1] KRB5-PFS-SELECTION
+}
+
+KRB5-PFS-ERROR ::= SEQUENCE {
+ groups [0] SEQUENCE OF KRB5-PFS-GROUP
+}
END
diff --git a/epan/dissectors/asn1/kerberos/kerberos.cnf b/epan/dissectors/asn1/kerberos/kerberos.cnf
index fb7b92ae69..9c2cead5a9 100644
--- a/epan/dissectors/asn1/kerberos/kerberos.cnf
+++ b/epan/dissectors/asn1/kerberos/kerberos.cnf
@@ -83,6 +83,12 @@ Principal
PROV-SRV-LOCATION
SAMFlags
TYPED-DATA
+KRB5-PFS-GROUP
+KRB5-PFS-SELECTION
+KRB5-PFS-SELECTIONS
+KRB5-PFS-PROPOSE
+KRB5-PFS-ACCEPT
+KRB5-PFS-ERROR
#.NO_EMIT ONLY_VALS
Applications
@@ -296,6 +302,9 @@ KrbFastArmorTypes PROT_PREFIX UPPER_CASE
case KERBEROS_PA_SPAKE:
offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_SPAKE);
break;
+ case KERBEROS_PA_SRP:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_KRB5_SRP_PA_APPLICATIONS);
+ break;
default:
offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, NULL);
break;
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
index 901fcf7545..de6d30f8bd 100644
--- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
@@ -126,6 +126,7 @@ typedef struct {
#ifdef HAVE_KERBEROS
enc_key_t *last_decryption_key;
enc_key_t *last_added_key;
+ enc_key_t *current_ticket_key;
tvbuff_t *last_ticket_enc_part_tvb;
#endif
gint save_encryption_key_parent_hf_index;
@@ -186,9 +187,14 @@ static int dissect_kerberos_KrbFastReq(bool implicit_tag _U_, tvbuff_t *tvb _U_,
static int dissect_kerberos_KrbFastResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
static int dissect_kerberos_FastOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#endif
+static int dissect_kerberos_KRB5_SRP_PA_ANNOUNCE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_INIT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_SERVER_CHALLENGE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_CLIENT_RESPONSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_SERVER_VERIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/* Desegment Kerberos over TCP messages */
-static gboolean krb_desegment = TRUE;
+static bool krb_desegment = true;
static gint proto_kerberos;
@@ -354,7 +360,7 @@ static expert_field ei_kerberos_learnt_keytype;
static expert_field ei_kerberos_address;
static expert_field ei_krb_gssapi_dlglen;
-static dissector_handle_t krb4_handle=NULL;
+static dissector_handle_t krb4_handle;
/* Global variables */
static guint32 gbl_keytype;
@@ -460,7 +466,7 @@ static int dissect_kerberos_defer_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbu
#ifdef HAVE_KERBEROS
/* Decrypt Kerberos blobs */
-gboolean krb_decrypt = FALSE;
+bool krb_decrypt;
/* keytab filename */
static const char *keytab_filename = "";
@@ -491,10 +497,10 @@ read_keytab_file_from_preferences(void)
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
enc_key_t *enc_key_list=NULL;
-static guint kerberos_longterm_ids = 0;
-wmem_map_t *kerberos_longterm_keys = NULL;
-static wmem_map_t *kerberos_all_keys = NULL;
-static wmem_map_t *kerberos_app_session_keys = NULL;
+static guint kerberos_longterm_ids;
+wmem_map_t *kerberos_longterm_keys;
+static wmem_map_t *kerberos_all_keys;
+static wmem_map_t *kerberos_app_session_keys;
static bool
enc_key_list_cb(wmem_allocator_t* allocator _U_, wmem_cb_event_t event _U_, void *user_data _U_)
@@ -874,6 +880,22 @@ save_EncAPRepPart_subkey(tvbuff_t *tvb, int offset, int length,
return;
}
+ private_data->last_added_key->is_ap_rep_key = true;
+
+ if (private_data->last_decryption_key != NULL &&
+ private_data->last_decryption_key->is_ticket_key)
+ {
+ enc_key_t *ak = private_data->last_added_key;
+ enc_key_t *tk = private_data->last_decryption_key;
+
+ /*
+ * The enc_key_t structures and their strings
+ * in pac_names are all allocated on wmem_epan_scope(),
+ * so we don't need to copy the content.
+ */
+ ak->pac_names = tk->pac_names;
+ }
+
kerberos_key_map_insert(kerberos_app_session_keys, private_data->last_added_key);
}
@@ -892,7 +914,20 @@ save_EncTicketPart_key(tvbuff_t *tvb, int offset, int length,
int parent_hf_index,
int hf_index)
{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
save_encryption_key(tvb, offset, length, actx, tree, parent_hf_index, hf_index);
+
+ if (actx->pinfo->fd->visited) {
+ return;
+ }
+
+ if (private_data->last_added_key == NULL) {
+ return;
+ }
+
+ private_data->current_ticket_key = private_data->last_added_key;
+ private_data->current_ticket_key->is_ticket_key = true;
}
static void
@@ -1861,7 +1896,6 @@ encode_krb5_enc_tkt_part(const krb5_enc_tkt_part *rep, krb5_data **code);
static int
keytype_for_cksumtype(krb5_cksumtype checksum)
{
-#define _ARRAY_SIZE(X) (sizeof(X) / sizeof((X)[0]))
static const int keytypes[] = {
18,
17,
@@ -1869,7 +1903,7 @@ keytype_for_cksumtype(krb5_cksumtype checksum)
};
guint i;
- for (i = 0; i < _ARRAY_SIZE(keytypes); i++) {
+ for (i = 0; i < array_length(keytypes); i++) {
krb5_cksumtype checksumtype = 0;
krb5_error_code ret;
@@ -2751,7 +2785,7 @@ typedef struct _service_key_t {
guint8 *contents;
char origin[KRB_MAX_ORIG_LEN+1];
} service_key_t;
-GSList *service_key_list = NULL;
+GSList *service_key_list;
static void
@@ -3008,7 +3042,7 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
if (datalen) {
*datalen = data_len;
}
- return(plaintext);
+ return plaintext;
}
tvb_free(encr_tvb);
}
@@ -3340,6 +3374,64 @@ static const true_false_string tfs_gss_flags_dce_style = {
"Not using DCE-STYLE"
};
+static int dissect_kerberos_KRB5_SRP_PA_APPLICATIONS(bool implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
+{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ proto_item *pi1 = proto_item_get_parent(actx->created_item);
+ proto_item *pi2 = proto_item_get_parent(pi1);
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ /*
+ * dissect_ber_octet_string_wcb() always passes
+ * implicit_tag=FALSE, offset=0 and hf_index=-1
+ */
+ ws_assert(implicit_tag == FALSE);
+ ws_assert(offset == 0);
+ ws_assert(hf_index <= 0);
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class != BER_CLASS_APP) {
+ if (kerberos_private_is_kdc_req(private_data)) {
+ goto unknown;
+ }
+ if (private_data->errorcode != KRB5_ET_KRB5KDC_ERR_PREAUTH_REQUIRED) {
+ goto unknown;
+ }
+
+ proto_item_append_text(pi1, " KRB5_SRP_PA_ANNOUNCE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_ANNOUNCE");
+ return dissect_kerberos_KRB5_SRP_PA_ANNOUNCE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ }
+
+ switch (tag) {
+ case 0:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_INIT");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_INIT");
+ return dissect_kerberos_KRB5_SRP_PA_INIT(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 1:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_SERVER_CHALLENGE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_SERVER_CHALLENGE");
+ return dissect_kerberos_KRB5_SRP_PA_SERVER_CHALLENGE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 2:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_CLIENT_RESPONSE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_CLIENT_RESPONSE");
+ return dissect_kerberos_KRB5_SRP_PA_CLIENT_RESPONSE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 3:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_SERVER_VERIFIER");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_SERVER_VERIFIER");
+ return dissect_kerberos_KRB5_SRP_PA_SERVER_VERIFIER(implicit_tag, tvb, offset, actx, tree, hf_index);
+ default:
+ break;
+ }
+
+unknown:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_UNKNOWN: ber_class:%u ber_pc=%u ber_tag:%"PRIu32"", ber_class, pc, tag);
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_UNKNOWN");
+ return tvb_reported_length_remaining(tvb, offset);
+}
+
#ifdef HAVE_KERBEROS
static guint8 *
decrypt_krb5_data_asn1(proto_tree *tree, asn1_ctx_t *actx,
@@ -3378,6 +3470,7 @@ dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, a
if(plaintext){
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
tvbuff_t *last_ticket_enc_part_tvb = private_data->last_ticket_enc_part_tvb;
+ enc_key_t *current_ticket_key = private_data->current_ticket_key;
tvbuff_t *child_tvb;
child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
@@ -3385,7 +3478,9 @@ dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, a
add_new_data_source(actx->pinfo, child_tvb, "Krb5 Ticket");
private_data->last_ticket_enc_part_tvb = child_tvb;
+ private_data->current_ticket_key = NULL;
offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ private_data->current_ticket_key = current_ticket_key;
private_data->last_ticket_enc_part_tvb = last_ticket_enc_part_tvb;
}
return offset;
@@ -4065,8 +4160,9 @@ dissect_krb5_PAC_LOGON_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
proto_item *item;
proto_tree *tree;
guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
- static dcerpc_info di; /* fake dcerpc_info struct */
- static dcerpc_call_value call_data;
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &call_data, };
item = proto_tree_add_item(parent_tree, hf_krb_pac_logon_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_logon_info);
@@ -4077,14 +4173,11 @@ dissect_krb5_PAC_LOGON_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
/* the PAC_LOGON_INFO blob */
- /* fake whatever state the dcerpc runtime support needs */
- di.conformant_run=0;
- /* we need di->call_data->flags.NDR64 == 0 */
- di.call_data=&call_data;
init_ndr_pointer_list(&di);
offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
netlogon_dissect_PAC_LOGON_INFO, NDR_POINTER_UNIQUE,
"PAC_LOGON_INFO:", -1);
+ free_ndr_pointer_list(&di);
return offset;
}
@@ -4156,8 +4249,9 @@ dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
proto_item *item;
proto_tree *tree;
guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
- static dcerpc_info di; /* fake dcerpc_info struct */
- static dcerpc_call_value call_data;
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &call_data, };
item = proto_tree_add_item(parent_tree, hf_krb_pac_s4u_delegation_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_s4u_delegation_info);
@@ -4167,16 +4261,12 @@ dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
*/
offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
-
/* the S4U_DELEGATION_INFO blob. See [MS-PAC] */
- /* fake whatever state the dcerpc runtime support needs */
- di.conformant_run=0;
- /* we need di->call_data->flags.NDR64 == 0 */
- di.call_data=&call_data;
init_ndr_pointer_list(&di);
offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
netlogon_dissect_PAC_S4U_DELEGATION_INFO, NDR_POINTER_UNIQUE,
"PAC_S4U_DELEGATION_INFO:", -1);
+ free_ndr_pointer_list(&di);
return offset;
}
@@ -4200,12 +4290,16 @@ static int * const hf_krb_pac_upn_flags_fields[] = {
static int
dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
{
+#ifdef HAVE_KERBEROS
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+#endif /* HAVE_KERBEROS */
proto_item *item;
proto_tree *tree;
guint16 dns_offset, dns_len;
guint16 upn_offset, upn_len;
guint16 samaccountname_offset = 0, samaccountname_len = 0;
guint16 objectsid_offset = 0, objectsid_len = 0;
+ char *sid_str = NULL;
guint32 flags;
item = proto_tree_add_item(parent_tree, hf_krb_pac_upn_dns_info, tvb, offset, -1, ENC_NA);
@@ -4266,9 +4360,38 @@ dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset
if (objectsid_offset != 0 && objectsid_len != 0) {
tvbuff_t *sid_tvb;
sid_tvb=tvb_new_subset_length(tvb, objectsid_offset, objectsid_len);
- dissect_nt_sid(sid_tvb, 0, tree, "objectSid", NULL, -1);
+ dissect_nt_sid(sid_tvb, 0, tree, "objectSid", &sid_str, -1);
}
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ enc_key_t *ek = private_data->current_ticket_key;
+
+ if (samaccountname_offset != 0 && samaccountname_len != 0) {
+ ek->pac_names.account_name = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ samaccountname_offset,
+ samaccountname_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ } else {
+ ek->pac_names.account_name = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ upn_offset,
+ upn_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ }
+ ek->pac_names.account_domain = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ dns_offset,
+ dns_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ if (sid_str != NULL) {
+ ek->pac_names.account_sid = wmem_strdup(wmem_epan_scope(),
+ sid_str);
+ }
+ }
+#endif /* HAVE_KERBEROS */
+
return dns_offset;
}
@@ -4289,11 +4412,22 @@ dissect_krb5_PAC_CLIENT_CLAIMS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
static int
dissect_krb5_PAC_DEVICE_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
{
+#ifdef HAVE_KERBEROS
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ const char *device_sid = NULL;
+#endif /* HAVE_KERBEROS */
proto_item *item;
proto_tree *tree;
guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
- static dcerpc_info di; /* fake dcerpc_info struct */
- static dcerpc_call_value call_data;
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &call_data, };
+
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ call_data.private_data = &device_sid;
+ }
+#endif /* HAVE_KERBEROS */
item = proto_tree_add_item(parent_tree, hf_krb_pac_device_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_device_info);
@@ -4304,14 +4438,23 @@ dissect_krb5_PAC_DEVICE_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
/* the PAC_DEVICE_INFO blob */
- /* fake whatever state the dcerpc runtime support needs */
- di.conformant_run=0;
- /* we need di->call_data->flags.NDR64 == 0 */
- di.call_data=&call_data;
init_ndr_pointer_list(&di);
offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
netlogon_dissect_PAC_DEVICE_INFO, NDR_POINTER_UNIQUE,
"PAC_DEVICE_INFO:", -1);
+ free_ndr_pointer_list(&di);
+
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ enc_key_t *ek = private_data->current_ticket_key;
+
+ /*
+ * netlogon_dissect_PAC_DEVICE_INFO allocated on
+ * wmem_epan_scope() for us
+ */
+ ek->pac_names.device_sid = device_sid;
+ }
+#endif /* HAVE_KERBEROS */
return offset;
}
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.h b/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
index 4f776ae91c..f6d9473f8e 100644
--- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.h
@@ -94,6 +94,34 @@ typedef struct _enc_key_t {
int fd_num; /* remember where we learned a key */
guint id; /* a unique id of the key, relative to fd_num */
char id_str[KRB_MAX_ID_STR_LEN+1];
+ /* EncTicketPart_key */
+ bool is_ticket_key;
+ /* EncAPRepPart_subkey */
+ bool is_ap_rep_key;
+ /*
+ * for now taken from dissect_krb5_PAC_UPN_DNS_INFO,
+ * we could also use dissect_krb5_PAC_LOGON_INFO if needed
+ *
+ * we get device_sid from dissect_krb5_PAC_DEVICE_INFO if available.
+ *
+ * We remember these from the PAC and
+ * attach it to EncTicketPart_key so it
+ * might be valid if is_ticket_key is true.
+ *
+ * When learning a EncAPRepPart_subkey
+ * we copy the details from the EncTicketPart_key,
+ * so when is_ap_rep_key is true we may also have it.
+ *
+ * So application protocols like SMB2 could use the
+ * is_ap_rep_key=true key details in order to identify
+ * the authenticated user.
+ */
+ struct {
+ const char *account_name;
+ const char *account_domain;
+ const char *account_sid;
+ const char *device_sid;
+ } pac_names;
struct _enc_key_t *same_list;
guint num_same;
struct _enc_key_t *src1;
@@ -121,7 +149,7 @@ decrypt_krb5_krb_cfx_dce(proto_tree *tree,
#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
-extern gboolean krb_decrypt;
+extern bool krb_decrypt;
#endif /* HAVE_KERBEROS */
diff --git a/epan/dissectors/asn1/ldap/ldap.cnf b/epan/dissectors/asn1/ldap/ldap.cnf
index cf0f41f35e..bbd9bd0dc4 100644
--- a/epan/dissectors/asn1/ldap/ldap.cnf
+++ b/epan/dissectors/asn1/ldap/ldap.cnf
@@ -486,7 +486,7 @@ ldap_conv_info_t *ldap_info;
ldap_do_protocolop(actx->pinfo);
- if((branch > -1) && (branch < (gint)(sizeof AuthenticationChoice_choice/sizeof AuthenticationChoice_choice[0])))
+ if((branch > -1) && (branch < (gint)array_length(AuthenticationChoice_choice)))
auth = AuthenticationChoice_choice[branch].value;
valstr = val_to_str(auth, ldap_AuthenticationChoice_vals, "Unknown auth(%%u)");
diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.c b/epan/dissectors/asn1/ldap/packet-ldap-template.c
index 5041cdb508..20aac9cc1f 100644
--- a/epan/dissectors/asn1/ldap/packet-ldap-template.c
+++ b/epan/dissectors/asn1/ldap/packet-ldap-template.c
@@ -201,22 +201,22 @@ static gint ett_ldap_DirSyncFlagsSubEntry;
static expert_field ei_ldap_exceeded_filter_length;
static expert_field ei_ldap_too_many_filter_elements;
-static dissector_table_t ldap_name_dissector_table=NULL;
-static const char *object_identifier_id = NULL; /* LDAP OID */
+static dissector_table_t ldap_name_dissector_table;
+static const char *object_identifier_id; /* LDAP OID */
-static gboolean do_protocolop = FALSE;
-static gchar *attr_type = NULL;
-static gboolean is_binary_attr_type = FALSE;
-static gboolean ldap_found_in_frame = FALSE;
+static gboolean do_protocolop;
+static gchar *attr_type;
+static gboolean is_binary_attr_type;
+static gboolean ldap_found_in_frame;
#define TCP_PORT_RANGE_LDAP "389,3268" /* 3268 is Windows 2000 Global Catalog */
#define TCP_PORT_LDAPS 636
#define UDP_PORT_CLDAP 389
/* desegmentation of LDAP */
-static gboolean ldap_desegment = TRUE;
+static bool ldap_desegment = true;
static guint global_ldaps_tcp_port = TCP_PORT_LDAPS;
-static guint ssl_port = 0;
+static guint ssl_port;
static dissector_handle_t gssapi_handle;
static dissector_handle_t gssapi_wrap_handle;
@@ -625,10 +625,10 @@ static int dissect_mscldap_ntver_flags(proto_tree *parent_tree, tvbuff_t *tvb, i
}
/* This string contains the last LDAPString that was decoded */
-static const char *attributedesc_string=NULL;
+static const char *attributedesc_string;
/* This string contains the last AssertionValue that was decoded */
-static char *ldapvalue_string=NULL;
+static char *ldapvalue_string;
/* if the octet string contain all printable ASCII characters, then
* display it as a string, othervise just display it in hex.
@@ -734,14 +734,14 @@ finished:
}
/* This string contains the last Filter item that was decoded */
-static const char *Filter_string=NULL;
-static const char *and_filter_string=NULL;
-static const char *or_filter_string=NULL;
-static const char *substring_value=NULL;
-static const char *substring_item_init=NULL;
-static const char *substring_item_any=NULL;
-static const char *substring_item_final=NULL;
-static const char *matching_rule_string=NULL;
+static const char *Filter_string;
+static const char *and_filter_string;
+static const char *or_filter_string;
+static const char *substring_value;
+static const char *substring_item_init;
+static const char *substring_item_any;
+static const char *substring_item_final;
+static const char *matching_rule_string;
static gboolean matching_rule_dnattr=FALSE;
#define MAX_FILTER_LEN 4096
@@ -753,8 +753,8 @@ static gint Filter_elements;
/* Global variables */
static gint MessageID =-1;
static gint ProtocolOp = -1;
-static gint result = 0;
-static proto_item *ldm_tree = NULL; /* item to add text to */
+static gint result;
+static proto_item *ldm_tree; /* item to add text to */
static void ldap_do_protocolop(packet_info *pinfo)
{
diff --git a/epan/dissectors/asn1/lix2/lix2.cnf b/epan/dissectors/asn1/lix2/lix2.cnf
index d7e1bbb3fd..d11921db02 100644
--- a/epan/dissectors/asn1/lix2/lix2.cnf
+++ b/epan/dissectors/asn1/lix2/lix2.cnf
@@ -24,6 +24,9 @@ XIRIPayload
#.TYPE_RENAME
+#.TYPE_ATTR
+Timestamp TYPE = FT_ABSOLUTE_TIME DISPLAY = ABSOLUTE_TIME_UTC
+
#.FIELD_RENAME
#.END
diff --git a/epan/dissectors/asn1/lix2/packet-lix2-template.c b/epan/dissectors/asn1/lix2/packet-lix2-template.c
index d12b3282e3..8c8af3c8b5 100644
--- a/epan/dissectors/asn1/lix2/packet-lix2-template.c
+++ b/epan/dissectors/asn1/lix2/packet-lix2-template.c
@@ -27,7 +27,7 @@ void proto_register_lix2(void);
/* Initialize the protocol and registered fields */
static int proto_lix2;
-static dissector_handle_t lix2_handle = NULL;
+static dissector_handle_t lix2_handle;
#include "packet-lix2-hf.c"
diff --git a/epan/dissectors/asn1/lpp/packet-lpp-template.c b/epan/dissectors/asn1/lpp/packet-lpp-template.c
index bd5c75dbc9..aeed110912 100644
--- a/epan/dissectors/asn1/lpp/packet-lpp-template.c
+++ b/epan/dissectors/asn1/lpp/packet-lpp-template.c
@@ -46,7 +46,7 @@ static int hf_lpp_bdsSvHealth_r12_b2i;
static int hf_lpp_bdsSvHealth_r12_nav;
static int hf_lpp_AssistanceDataSIBelement_r15_PDU;
-static dissector_handle_t lppe_handle = NULL;
+static dissector_handle_t lppe_handle;
static guint32 lpp_epdu_id = -1;
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
index 7f2aa4a974..1497da275c 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
index 40a8f869f8..a6561f7c5e 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
index f52e85976a..5b3ebef7c8 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
index 58ea8e9ccc..ff473e04ee 100644
--- a/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
+++ b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn
index ba656bd192..e0f5fbe84a 100644
--- a/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn
index a1c3676400..66b101eb4e 100644
--- a/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
@@ -403,7 +403,12 @@ RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE {
radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON
fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab
lateNonCriticalExtension OCTET STRING OPTIONAL,
- nonCriticalExtension SEQUENCE {} OPTIONAL
+ nonCriticalExtension RRCConnectionReconfiguration-NB-v16f0-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-NB-v16f0-IEs ::= SEQUENCE {
+ obtainLocationNB-r16 ENUMERATED {setup} OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -676,6 +681,11 @@ RRCConnectionResume-NB-r13-IEs ::= SEQUENCE {
RRCConnectionResume-NB-v1610-IEs ::= SEQUENCE {
fullConfig-r16 ENUMERATED {true} OPTIONAL, -- Cond 5GC
+ nonCriticalExtension RRCConnectionResume-NB-v16f0-IEs OPTIONAL
+}
+
+RRCConnectionResume-NB-v16f0-IEs ::= SEQUENCE {
+ obtainLocationNB-r16 ENUMERATED {setup} OPTIONAL, -- Need OR
nonCriticalExtension SEQUENCE {} OPTIONAL
}
@@ -2759,10 +2769,17 @@ UE-Capability-NB-v1610-IEs ::= SEQUENCE {
UE-Capability-NB-v16x0-IEs ::= SEQUENCE {
-- Following field is only to be used for late REL-16 extensions
- lateNonCriticalExtension OCTET STRING OPTIONAL,
+ lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v16f0-IEs) OPTIONAL,
nonCriticalExtension UE-Capability-NB-v1700-IEs OPTIONAL
}
+-- Late non-critical extensions
+UE-EUTRA-Capability-v16f0-IEs ::= SEQUENCE {
+ son-Parameters-v16f0 SON-Parameters-NB-v16f0,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non-critical extensions
UE-Capability-NB-v1700-IEs ::= SEQUENCE {
coverageBasedPaging-r17 ENUMERATED {supported} OPTIONAL,
phyLayerParameters-v1700 PhyLayerParameters-NB-v1700,
@@ -2934,6 +2951,10 @@ SON-Parameters-NB-r16 ::= SEQUENCE {
rach-Report-r16 ENUMERATED {supported} OPTIONAL
}
+SON-Parameters-NB-v16f0 ::= SEQUENCE {
+ locationInfo-r16 ENUMERATED {supported} OPTIONAL
+}
+
UE-RadioPagingInfo-NB-r13 ::= SEQUENCE {
ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL,
diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn
index f28940b119..9f74c41a82 100644
--- a/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn
+++ b/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
index 8afb8c01f2..d5deffa401 100644
--- a/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.331 V17.7.0 (2023-12)
+-- 3GPP TS 36.331 V17.8.0 (2024-03)
PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
index 0c1810b101..d4450f60ed 100644
--- a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
+++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf
@@ -2725,7 +2725,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY RLC-Config-v1250/ul-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field
- gboolean ext_li_field;
+ bool ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
@@ -2733,7 +2733,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY RLC-Config-v1250/dl-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field
- gboolean ext_li_field;
+ bool ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
@@ -2741,7 +2741,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY RLC-Config-v1310/ul-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn
- gboolean ext_am_sn;
+ bool ext_am_sn;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
@@ -2749,7 +2749,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr
}
#.FN_BODY RLC-Config-v1310/dl-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn
- gboolean ext_am_sn;
+ bool ext_am_sn;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
%(DEFAULT_BODY)s
if (mapping != NULL) {
diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
index b16d37b431..31f5d94791 100644
--- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
+++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
@@ -1,7 +1,7 @@
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
- * (3GPP TS 36.331 V17.7.0 Release 17) packet dissection
+ * (3GPP TS 36.331 V17.8.0 Release 17) packet dissection
* Copyright 2008, Vincent Helfre
* Copyright 2009-2024, Pascal Quantin
*
@@ -48,24 +48,24 @@
void proto_register_lte_rrc(void);
void proto_reg_handoff_lte_rrc(void);
-static dissector_handle_t nas_eps_handle = NULL;
-static dissector_handle_t nas_5gs_handle = NULL;
-static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
-static dissector_handle_t rrc_sys_info_cont_handle = NULL;
-static dissector_handle_t gsm_a_dtap_handle = NULL;
-static dissector_handle_t gsm_rlcmac_dl_handle = NULL;
-static dissector_handle_t nr_rrc_reconf_handle = NULL;
+static dissector_handle_t nas_eps_handle;
+static dissector_handle_t nas_5gs_handle;
+static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle;
+static dissector_handle_t rrc_sys_info_cont_handle;
+static dissector_handle_t gsm_a_dtap_handle;
+static dissector_handle_t gsm_rlcmac_dl_handle;
+static dissector_handle_t nr_rrc_reconf_handle;
static dissector_handle_t lte_rrc_conn_reconf_handle;
static dissector_handle_t lte_rrc_dl_ccch_handle;
-static wmem_map_t *lte_rrc_etws_cmas_dcs_hash = NULL;
+static wmem_map_t *lte_rrc_etws_cmas_dcs_hash;
/* Keep track of where/how the System Info value has changed */
-static wmem_map_t *lte_rrc_system_info_value_changed_hash = NULL;
+static wmem_map_t *lte_rrc_system_info_value_changed_hash;
static guint8 system_info_value_current;
static gboolean system_info_value_current_set;
-static gboolean lte_rrc_nas_in_root_tree;
+static bool lte_rrc_nas_in_root_tree;
extern int proto_mac_lte;
extern int proto_rlc_lte;
@@ -3116,32 +3116,23 @@ static guint32 drx_lookup_onDurationTimer(guint32 idx)
{
static const guint32 vals[] = {1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_inactivityTimer(guint32 idx)
{
static const guint32 vals[] = {
- 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300, 500,750,1280,1920,2560,0
+ 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300,500,750,1280,1920,2560,0
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_retransmissionTimer(guint32 idx)
{
static const guint32 vals[] = {1,2,4,6,8,16,24,33};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_longCycle(guint32 idx)
@@ -3150,10 +3141,7 @@ static guint32 drx_lookup_longCycle(guint32 idx)
10,20,32,40,64,80,128,160,256,320,512,640,1024,1280,2048,2560
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_longCycle_v1130(guint32 idx)
@@ -3162,10 +3150,7 @@ static guint32 drx_lookup_longCycle_v1130(guint32 idx)
60,70
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
@@ -3175,10 +3160,7 @@ static guint32 drx_lookup_shortCycle(guint32 idx)
2,5,8,10,16,20,32,40,64,80,128,160,256,320,512,640
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static void drx_check_config_sane(drx_config_t *config, asn1_ctx_t *actx)
diff --git a/epan/dissectors/asn1/m3ap/packet-m3ap-template.c b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
index 5718898825..a4a53101d9 100644
--- a/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
+++ b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
@@ -34,7 +34,7 @@ void proto_reg_handoff_m3ap(void);
/* M3AP uses port 36444 as recommended by IANA. */
#define M3AP_PORT 36444
-static dissector_handle_t m3ap_handle=NULL;
+static dissector_handle_t m3ap_handle;
#include "packet-m3ap-val.h"
diff --git a/epan/dissectors/asn1/mms/mms.asn b/epan/dissectors/asn1/mms/mms.asn
index 3f72c10fe4..dd52432cb5 100644
--- a/epan/dissectors/asn1/mms/mms.asn
+++ b/epan/dissectors/asn1/mms/mms.asn
@@ -25,30 +25,47 @@ IMPORTS
FROM ISO-8650-ACSE-1;
+-- WS additions for IEC 61850
+
+ReportedOptFlds ::= BIT STRING {
+ reserved(0),
+ sequence-number(1),
+ report-time-stamp(2),
+ reason-for-inclusion(3),
+ data-set-name(4),
+ data-reference(5),
+ buffer-overflow(6),
+ entryID(7),
+ conf-revision(8),
+ segmentation(9)
+ }
+
+-- End WS additions for IEC 61850
+
MMSpdu ::= CHOICE
{
- confirmed-RequestPDU [0] IMPLICIT Confirmed-RequestPDU,
- confirmed-ResponsePDU [1] IMPLICIT Confirmed-ResponsePDU,
+ confirmed-RequestPDU [0] IMPLICIT Confirmed-RequestPDU,
+ confirmed-ResponsePDU [1] IMPLICIT Confirmed-ResponsePDU,
confirmed-ErrorPDU [2] IMPLICIT Confirmed-ErrorPDU,
unconfirmed-PDU [3] IMPLICIT Unconfirmed-PDU,
- rejectPDU [4] IMPLICIT RejectPDU,
+ rejectPDU [4] IMPLICIT RejectPDU,
cancel-RequestPDU [5] IMPLICIT Cancel-RequestPDU,
cancel-ResponsePDU [6] IMPLICIT Cancel-ResponsePDU,
cancel-ErrorPDU [7] IMPLICIT Cancel-ErrorPDU,
initiate-RequestPDU [8] IMPLICIT Initiate-RequestPDU,
- initiate-ResponsePDU [9] IMPLICIT Initiate-ResponsePDU,
+ initiate-ResponsePDU [9] IMPLICIT Initiate-ResponsePDU,
initiate-ErrorPDU [10] IMPLICIT Initiate-ErrorPDU,
conclude-RequestPDU [11] IMPLICIT Conclude-RequestPDU,
- conclude-ResponsePDU [12] IMPLICIT Conclude-ResponsePDU,
+ conclude-ResponsePDU [12] IMPLICIT Conclude-ResponsePDU,
conclude-ErrorPDU [13] IMPLICIT Conclude-ErrorPDU
}
Confirmed-RequestPDU ::= SEQUENCE
{
- invokeID Unsigned32,
+ invokeID Unsigned32,
listOfModifier SEQUENCE OF Modifier OPTIONAL,
- confirmedServiceRequest ConfirmedServiceRequest,
+ confirmedServiceRequest ConfirmedServiceRequest,
cs-request-detail [79] CS-Request-Detail OPTIONAL
}
@@ -71,8 +88,8 @@ Confirmed-ResponsePDU ::= SEQUENCE
Confirmed-ErrorPDU ::= SEQUENCE
{
invokeID [0] IMPLICIT Unsigned32,
- modifierPosition [1] IMPLICIT Unsigned32 OPTIONAL,
- serviceError [2] IMPLICIT ServiceError
+ modifierPosition [1] IMPLICIT Unsigned32 OPTIONAL,
+ serviceError [2] IMPLICIT ServiceError
}
@@ -88,93 +105,93 @@ UnconfirmedService ::= CHOICE
Modifier ::= CHOICE
{
- attach-To-Event-Condition [0] IMPLICIT AttachToEventCondition,
+ attach-To-Event-Condition [0] IMPLICIT AttachToEventCondition,
attach-To-Semaphore [1] IMPLICIT AttachToSemaphore
}
ConfirmedServiceRequest ::= CHOICE
{
- status [0] IMPLICIT Status-Request,
- getNameList [1] IMPLICIT GetNameList-Request,
- identify [2] IMPLICIT Identify-Request,
- rename [3] IMPLICIT Rename-Request,
- read [4] IMPLICIT Read-Request,
- write [5] IMPLICIT Write-Request,
- getVariableAccessAttributes [6] GetVariableAccessAttributes-Request,
- defineNamedVariable [7] IMPLICIT DefineNamedVariable-Request,
- defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Request,
- getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Request,
- deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Request,
+ status [0] IMPLICIT Status-Request,
+ getNameList [1] IMPLICIT GetNameList-Request,
+ identify [2] IMPLICIT Identify-Request,
+ rename [3] IMPLICIT Rename-Request,
+ read [4] IMPLICIT Read-Request,
+ write [5] IMPLICIT Write-Request,
+ getVariableAccessAttributes [6] GetVariableAccessAttributes-Request,
+ defineNamedVariable [7] IMPLICIT DefineNamedVariable-Request,
+ defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Request,
+ getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Request,
+ deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Request,
defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Request,
- getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Request,
+ getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Request,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Request,
- defineNamedType [14] IMPLICIT DefineNamedType-Request,
+ defineNamedType [14] IMPLICIT DefineNamedType-Request,
getNamedTypeAttributes [15] IMPLICIT GetNamedTypeAttributes-Request,
- deleteNamedType [16] IMPLICIT DeleteNamedType-Request,
- input [17] IMPLICIT Input-Request,
- output [18] IMPLICIT Output-Request,
- takeControl [19] IMPLICIT TakeControl-Request,
- relinquishControl [20] IMPLICIT RelinquishControl-Request,
- defineSemaphore [21] IMPLICIT DefineSemaphore-Request,
- deleteSemaphore [22] IMPLICIT DeleteSemaphore-Request,
+ deleteNamedType [16] IMPLICIT DeleteNamedType-Request,
+ input [17] IMPLICIT Input-Request,
+ output [18] IMPLICIT Output-Request,
+ takeControl [19] IMPLICIT TakeControl-Request,
+ relinquishControl [20] IMPLICIT RelinquishControl-Request,
+ defineSemaphore [21] IMPLICIT DefineSemaphore-Request,
+ deleteSemaphore [22] IMPLICIT DeleteSemaphore-Request,
reportSemaphoreStatus [23] IMPLICIT ReportSemaphoreStatus-Request,
reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Request,
reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Request,
initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Request,
- downloadSegment [27] IMPLICIT DownloadSegment-Request,
+ downloadSegment [27] IMPLICIT DownloadSegment-Request,
terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Request,
initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Request,
- uploadSegment [30] IMPLICIT UploadSegment-Request,
+ uploadSegment [30] IMPLICIT UploadSegment-Request,
terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Request,
requestDomainDownload [32] IMPLICIT RequestDomainDownload-Request,
- requestDomainUpload [33] IMPLICIT RequestDomainUpload-Request,
- loadDomainContent [34] IMPLICIT LoadDomainContent-Request,
- storeDomainContent [35] IMPLICIT StoreDomainContent-Request,
- deleteDomain [36] IMPLICIT DeleteDomain-Request,
- getDomainAttributes [37] IMPLICIT GetDomainAttributes-Request,
+ requestDomainUpload [33] IMPLICIT RequestDomainUpload-Request,
+ loadDomainContent [34] IMPLICIT LoadDomainContent-Request,
+ storeDomainContent [35] IMPLICIT StoreDomainContent-Request,
+ deleteDomain [36] IMPLICIT DeleteDomain-Request,
+ getDomainAttributes [37] IMPLICIT GetDomainAttributes-Request,
createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Request,
deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Request,
- start [40] IMPLICIT Start-Request,
- stop [41] IMPLICIT Stop-Request,
- resume [42] IMPLICIT Resume-Request,
- reset [43] IMPLICIT Reset-Request,
- kill [44] IMPLICIT Kill-Request,
- getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Request,
- obtainFile [46] IMPLICIT ObtainFile-Request,
+ start [40] IMPLICIT Start-Request,
+ stop [41] IMPLICIT Stop-Request,
+ resume [42] IMPLICIT Resume-Request,
+ reset [43] IMPLICIT Reset-Request,
+ kill [44] IMPLICIT Kill-Request,
+ getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Request,
+ obtainFile [46] IMPLICIT ObtainFile-Request,
defineEventCondition [47] IMPLICIT DefineEventCondition-Request,
deleteEventCondition [48] DeleteEventCondition-Request,
getEventConditionAttributes [49] GetEventConditionAttributes-Request,
reportEventConditionStatus [50] ReportEventConditionStatus-Request,
- alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Request,
- triggerEvent [52] IMPLICIT TriggerEvent-Request,
- defineEventAction [53] IMPLICIT DefineEventAction-Request,
- deleteEventAction [54] DeleteEventAction-Request,
+ alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Request,
+ triggerEvent [52] IMPLICIT TriggerEvent-Request,
+ defineEventAction [53] IMPLICIT DefineEventAction-Request,
+ deleteEventAction [54] DeleteEventAction-Request,
getEventActionAttributes [55] GetEventActionAttributes-Request,
reportEventActionStatus [56] ReportEventActionStatus-Request,
defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Request,
deleteEventEnrollment [58] DeleteEventEnrollment-Request,
alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Request,
reportEventEnrollmentStatus [60] ReportEventEnrollmentStatus-Request,
- getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Request,
- acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Request,
- getAlarmSummary [63] IMPLICIT GetAlarmSummary-Request,
+ getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Request,
+ acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Request,
+ getAlarmSummary [63] IMPLICIT GetAlarmSummary-Request,
getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Request,
- readJournal [65] IMPLICIT ReadJournal-Request,
- writeJournal [66] IMPLICIT WriteJournal-Request,
- initializeJournal [67] IMPLICIT InitializeJournal-Request,
- reportJournalStatus [68] IMPLICIT ReportJournalStatus-Request,
- createJournal [69] IMPLICIT CreateJournal-Request,
- deleteJournal [70] IMPLICIT DeleteJournal-Request,
- getCapabilityList [71] IMPLICIT GetCapabilityList-Request,
- fileOpen [72] IMPLICIT FileOpen-Request,
- fileRead [73] IMPLICIT FileRead-Request,
- fileClose [74] IMPLICIT FileClose-Request,
- fileRename [75] IMPLICIT FileRename-Request,
- fileDelete [76] IMPLICIT FileDelete-Request,
- fileDirectory [77] IMPLICIT FileDirectory-Request
+ readJournal [65] IMPLICIT ReadJournal-Request,
+ writeJournal [66] IMPLICIT WriteJournal-Request,
+ initializeJournal [67] IMPLICIT InitializeJournal-Request,
+ reportJournalStatus [68] IMPLICIT ReportJournalStatus-Request,
+ createJournal [69] IMPLICIT CreateJournal-Request,
+ deleteJournal [70] IMPLICIT DeleteJournal-Request,
+ getCapabilityList [71] IMPLICIT GetCapabilityList-Request,
+ fileOpen [72] IMPLICIT FileOpen-Request,
+ fileRead [73] IMPLICIT FileRead-Request,
+ fileClose [74] IMPLICIT FileClose-Request,
+ fileRename [75] IMPLICIT FileRename-Request,
+ fileDelete [76] IMPLICIT FileDelete-Request,
+ fileDirectory [77] IMPLICIT FileDirectory-Request
-- XXX this one is neither in this ASN nor in the IMPORTS
--- additionalService [78] AdditionalService-Request
+-- additionalService [78] AdditionalService-Request
}
CS-Request-Detail ::= CHOICE {
@@ -186,86 +203,86 @@ CS-Request-Detail ::= CHOICE {
ConfirmedServiceResponse ::= CHOICE
{
- status [0] IMPLICIT Status-Response,
- getNameList [1] IMPLICIT GetNameList-Response,
- identify [2] IMPLICIT Identify-Response,
- rename [3] IMPLICIT Rename-Response,
- read [4] IMPLICIT Read-Response,
- write [5] IMPLICIT Write-Response,
+ status [0] IMPLICIT Status-Response,
+ getNameList [1] IMPLICIT GetNameList-Response,
+ identify [2] IMPLICIT Identify-Response,
+ rename [3] IMPLICIT Rename-Response,
+ read [4] IMPLICIT Read-Response,
+ write [5] IMPLICIT Write-Response,
getVariableAccessAttributes [6] IMPLICIT GetVariableAccessAttributes-Response,
- defineNamedVariable [7] IMPLICIT DefineNamedVariable-Response,
+ defineNamedVariable [7] IMPLICIT DefineNamedVariable-Response,
defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Response,
- getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Response,
- deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Response,
+ getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Response,
+ deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Response,
defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Response,
- getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Response,
+ getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Response,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Response,
- defineNamedType [14] IMPLICIT DefineNamedType-Response,
+ defineNamedType [14] IMPLICIT DefineNamedType-Response,
getNamedTypeAttributes [15] IMPLICIT GetNamedTypeAttributes-Response,
- deleteNamedType [16] IMPLICIT DeleteNamedType-Response,
- input [17] IMPLICIT Input-Response,
- output [18] IMPLICIT Output-Response,
- takeControl [19] TakeControl-Response,
- relinquishControl [20] IMPLICIT RelinquishControl-Response,
- defineSemaphore [21] IMPLICIT DefineSemaphore-Response,
- deleteSemaphore [22] IMPLICIT DeleteSemaphore-Response,
+ deleteNamedType [16] IMPLICIT DeleteNamedType-Response,
+ input [17] IMPLICIT Input-Response,
+ output [18] IMPLICIT Output-Response,
+ takeControl [19] TakeControl-Response,
+ relinquishControl [20] IMPLICIT RelinquishControl-Response,
+ defineSemaphore [21] IMPLICIT DefineSemaphore-Response,
+ deleteSemaphore [22] IMPLICIT DeleteSemaphore-Response,
reportSemaphoreStatus [23] IMPLICIT ReportSemaphoreStatus-Response,
reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Response,
reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Response,
initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Response,
- downloadSegment [27] IMPLICIT DownloadSegment-Response,
+ downloadSegment [27] IMPLICIT DownloadSegment-Response,
terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Response,
initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Response,
- uploadSegment [30] IMPLICIT UploadSegment-Response,
+ uploadSegment [30] IMPLICIT UploadSegment-Response,
terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Response,
requestDomainDownLoad [32] IMPLICIT RequestDomainDownload-Response,
- requestDomainUpload [33] IMPLICIT RequestDomainUpload-Response,
- loadDomainContent [34] IMPLICIT LoadDomainContent-Response,
- storeDomainContent [35] IMPLICIT StoreDomainContent-Response,
- deleteDomain [36] IMPLICIT DeleteDomain-Response,
- getDomainAttributes [37] IMPLICIT GetDomainAttributes-Response,
+ requestDomainUpload [33] IMPLICIT RequestDomainUpload-Response,
+ loadDomainContent [34] IMPLICIT LoadDomainContent-Response,
+ storeDomainContent [35] IMPLICIT StoreDomainContent-Response,
+ deleteDomain [36] IMPLICIT DeleteDomain-Response,
+ getDomainAttributes [37] IMPLICIT GetDomainAttributes-Response,
createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Response,
deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Response,
- start [40] IMPLICIT Start-Response,
- stop [41] IMPLICIT Stop-Response,
- resume [42] IMPLICIT Resume-Response,
- reset [43] IMPLICIT Reset-Response,
- kill [44] IMPLICIT Kill-Response,
- getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Response,
- obtainFile [46] IMPLICIT ObtainFile-Response,
- fileOpen [72] IMPLICIT FileOpen-Response,
+ start [40] IMPLICIT Start-Response,
+ stop [41] IMPLICIT Stop-Response,
+ resume [42] IMPLICIT Resume-Response,
+ reset [43] IMPLICIT Reset-Response,
+ kill [44] IMPLICIT Kill-Response,
+ getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Response,
+ obtainFile [46] IMPLICIT ObtainFile-Response,
+ fileOpen [72] IMPLICIT FileOpen-Response,
defineEventCondition [47] IMPLICIT DefineEventCondition-Response,
deleteEventCondition [48] IMPLICIT DeleteEventCondition-Response,
getEventConditionAttributes [49] IMPLICIT GetEventConditionAttributes-Response,
reportEventConditionStatus [50] IMPLICIT ReportEventConditionStatus-Response,
- alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Response,
- triggerEvent [52] IMPLICIT TriggerEvent-Response,
- defineEventAction [53] IMPLICIT DefineEventAction-Response,
- deleteEventAction [54] IMPLICIT DeleteEventAction-Response,
+ alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Response,
+ triggerEvent [52] IMPLICIT TriggerEvent-Response,
+ defineEventAction [53] IMPLICIT DefineEventAction-Response,
+ deleteEventAction [54] IMPLICIT DeleteEventAction-Response,
getEventActionAttributes [55] IMPLICIT GetEventActionAttributes-Response,
- reportActionStatus [56] IMPLICIT ReportEventActionStatus-Response,
+ reportActionStatus [56] IMPLICIT ReportEventActionStatus-Response,
defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Response,
deleteEventEnrollment [58] IMPLICIT DeleteEventEnrollment-Response,
alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Response,
reportEventEnrollmentStatus [60] IMPLICIT ReportEventEnrollmentStatus-Response,
- getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Response,
- acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Response,
- getAlarmSummary [63] IMPLICIT GetAlarmSummary-Response,
+ getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Response,
+ acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Response,
+ getAlarmSummary [63] IMPLICIT GetAlarmSummary-Response,
getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Response,
- readJournal [65] IMPLICIT ReadJournal-Response,
- writeJournal [66] IMPLICIT WriteJournal-Response,
- initializeJournal [67] IMPLICIT InitializeJournal-Response,
- reportJournalStatus [68] IMPLICIT ReportJournalStatus-Response,
- createJournal [69] IMPLICIT CreateJournal-Response,
- deleteJournal [70] IMPLICIT DeleteJournal-Response,
- getCapabilityList [71] IMPLICIT GetCapabilityList-Response,
- fileRead [73] IMPLICIT FileRead-Response,
- fileClose [74] IMPLICIT FileClose-Response,
- fileRename [75] IMPLICIT FileRename-Response,
- fileDelete [76] IMPLICIT FileDelete-Response,
- fileDirectory [77] IMPLICIT FileDirectory-Response
+ readJournal [65] IMPLICIT ReadJournal-Response,
+ writeJournal [66] IMPLICIT WriteJournal-Response,
+ initializeJournal [67] IMPLICIT InitializeJournal-Response,
+ reportJournalStatus [68] IMPLICIT ReportJournalStatus-Response,
+ createJournal [69] IMPLICIT CreateJournal-Response,
+ deleteJournal [70] IMPLICIT DeleteJournal-Response,
+ getCapabilityList [71] IMPLICIT GetCapabilityList-Response,
+ fileRead [73] IMPLICIT FileRead-Response,
+ fileClose [74] IMPLICIT FileClose-Response,
+ fileRename [75] IMPLICIT FileRename-Response,
+ fileDelete [76] IMPLICIT FileDelete-Response,
+ fileDirectory [77] IMPLICIT FileDirectory-Response
-- XXX this one is neither in this ASN nor in the IMPORTS
--- additionalService [78] AdditionalService-Response
+-- additionalService [78] AdditionalService-Response
}
--********************************** COMMON MMS TYPES ***********************************
@@ -291,7 +308,7 @@ Unsigned32 ::= INTEGER
ObjectName ::= CHOICE
{
vmd-specific [0] IMPLICIT Identifier,
- domain-specific [1] IMPLICIT SEQUENCE
+ domain-specific [1] IMPLICIT SEQUENCE
{
domainId Identifier,
itemId Identifier
@@ -302,7 +319,7 @@ ObjectName ::= CHOICE
ApplicationReference ::= SEQUENCE
{
- ap-title [0] AP-title OPTIONAL,
+ ap-title [0] AP-title OPTIONAL,
ap-invocation-id [1] AP-invocation-identifier OPTIONAL,
ae-qualifier [2] AE-qualifier OPTIONAL,
ae-invocation-id [3] AE-invocation-identifier OPTIONAL
@@ -323,11 +340,11 @@ Initiate-ErrorPDU ::= ServiceError
Initiate-RequestPDU ::= SEQUENCE
{
- localDetailCalling [0] IMPLICIT Integer32 OPTIONAL,
+ localDetailCalling [0] IMPLICIT Integer32 OPTIONAL,
proposedMaxServOutstandingCalling [1] IMPLICIT Integer16,
proposedMaxServOutstandingCalled [2] IMPLICIT Integer16,
proposedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL,
- mmsInitRequestDetail [4] IMPLICIT InitRequestDetail
+ mmsInitRequestDetail [4] IMPLICIT InitRequestDetail
}
InitRequestDetail ::= SEQUENCE
@@ -339,7 +356,7 @@ InitRequestDetail ::= SEQUENCE
Initiate-ResponsePDU ::= SEQUENCE
{
- localDetailCalled [0] IMPLICIT Integer32 OPTIONAL,
+ localDetailCalled [0] IMPLICIT Integer32 OPTIONAL,
negociatedMaxServOutstandingCalling [1] IMPLICIT Integer16,
negociatedMaxServOutstandingCalled [2] IMPLICIT Integer16,
negociatedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL,
@@ -370,84 +387,84 @@ ParameterSupportOptions ::= BIT STRING {
ServiceSupportOptions ::= BIT STRING
{
- status (0),
+ status (0),
getNameList (1),
identify (2),
- rename (3),
- read (4),
- write (5),
- getVariableAccessAttributes (6),
- defineNamedVariable (7),
- defineScatteredAccess (8),
- getScatteredAccessAttributes (9),
- deleteVariableAccess (10),
- defineNamedVariableList (11),
- getNamedVariableListAttributes (12),
- deleteNamedVariableList (13),
- defineNamedType (14),
- getNamedTypeAttributes (15),
- deleteNamedType (16),
- input (17),
- output (18),
- takeControl (19),
- relinquishControl (20),
- defineSemaphore (21),
- deleteSemaphore (22),
- reportSemaphoreStatus (23),
- reportPoolSemaphoreStatus (24),
- reportSemaphoreEntryStatus (25),
- initiateDownloadSequence (26),
- downloadSegment (27),
- terminateDownloadSequence (28),
+ rename (3),
+ read (4),
+ write (5),
+ getVariableAccessAttributes (6),
+ defineNamedVariable (7),
+ defineScatteredAccess (8),
+ getScatteredAccessAttributes (9),
+ deleteVariableAccess (10),
+ defineNamedVariableList (11),
+ getNamedVariableListAttributes (12),
+ deleteNamedVariableList (13),
+ defineNamedType (14),
+ getNamedTypeAttributes (15),
+ deleteNamedType (16),
+ input (17),
+ output (18),
+ takeControl (19),
+ relinquishControl (20),
+ defineSemaphore (21),
+ deleteSemaphore (22),
+ reportSemaphoreStatus (23),
+ reportPoolSemaphoreStatus (24),
+ reportSemaphoreEntryStatus (25),
+ initiateDownloadSequence (26),
+ downloadSegment (27),
+ terminateDownloadSequence (28),
initiateUploadSequence (29),
- uploadSegment (30),
- terminateUploadSequence (31),
- requestDomainDownload (32),
- requestDomainUpload (33),
- loadDomainContent (34),
- storeDomainContent (35),
- deleteDomain (36),
- getDomainAttributes (37),
- createProgramInvocation (38),
- deleteProgramInvocation (39),
- start (40),
- stop (41),
- resume (42),
- reset (43),
- kill (44),
- getProgramInvocationAttributes (45),
- obtainFile (46),
- defineEventCondition (47),
- deleteEventCondition (48),
- getEventConditionAttributes (49),
- reportEventConditionStatus (50),
- alterEventConditionMonitoring (51),
- triggerEvent (52),
- defineEventAction (53),
- deleteEventAction (54),
- getEventActionAttributes (55),
- reportActionStatus (56),
- defineEventEnrollment (57),
- deleteEventEnrollment (58),
- alterEventEnrollment (59),
- reportEventEnrollmentStatus (60),
- getEventEnrollmentAttributes (61),
- acknowledgeEventNotification (62),
- getAlarmSummary (63),
- getAlarmEnrollmentSummary (64),
- readJournal (65),
- writeJournal (66),
- initializeJournal (67),
- reportJournalStatus (68),
- createJournal (69),
- deleteJournal (70),
- getCapabilityList (71),
- fileOpen (72),
- fileRead (73),
- fileClose (74),
- fileRename (75),
- fileDelete (76),
- fileDirectory (77),
+ uploadSegment (30),
+ terminateUploadSequence (31),
+ requestDomainDownload (32),
+ requestDomainUpload (33),
+ loadDomainContent (34),
+ storeDomainContent (35),
+ deleteDomain (36),
+ getDomainAttributes (37),
+ createProgramInvocation (38),
+ deleteProgramInvocation (39),
+ start (40),
+ stop (41),
+ resume (42),
+ reset (43),
+ kill (44),
+ getProgramInvocationAttributes (45),
+ obtainFile (46),
+ defineEventCondition (47),
+ deleteEventCondition (48),
+ getEventConditionAttributes (49),
+ reportEventConditionStatus (50),
+ alterEventConditionMonitoring (51),
+ triggerEvent (52),
+ defineEventAction (53),
+ deleteEventAction (54),
+ getEventActionAttributes (55),
+ reportActionStatus (56),
+ defineEventEnrollment (57),
+ deleteEventEnrollment (58),
+ alterEventEnrollment (59),
+ reportEventEnrollmentStatus (60),
+ getEventEnrollmentAttributes (61),
+ acknowledgeEventNotification (62),
+ getAlarmSummary (63),
+ getAlarmEnrollmentSummary (64),
+ readJournal (65),
+ writeJournal (66),
+ initializeJournal (67),
+ reportJournalStatus (68),
+ createJournal (69),
+ deleteJournal (70),
+ getCapabilityList (71),
+ fileOpen (72),
+ fileRead (73),
+ fileClose (74),
+ fileRename (75),
+ fileDelete (76),
+ fileDirectory (77),
unsolicitedStatus (78),
informationReport (79),
eventNotification (80),
@@ -485,10 +502,10 @@ ServiceError ::= SEQUENCE
{
vmd-state [0] IMPLICIT INTEGER
{
- other (0),
- vmd-state-conflict (1),
+ other (0),
+ vmd-state-conflict (1),
vmd-operational-problem (2),
- domain-transfer-problem (3),
+ domain-transfer-problem (3),
state-machine-id-invalid (4)
},
application-reference [1] IMPLICIT INTEGER
@@ -686,7 +703,7 @@ RejectPDU ::= SEQUENCE
invalid-result (3),
max-recursion-exceeded (5),
value-out-of-range (6)
- },
+ },
confirmed-errorPDU [3] IMPLICIT INTEGER
{
@@ -695,7 +712,7 @@ RejectPDU ::= SEQUENCE
invalid-invokeID (2),
invalid-serviceError (3),
value-out-of-range (4)
- } ,
+ } ,
unconfirmedPDU [4] IMPLICIT INTEGER
{
@@ -717,7 +734,7 @@ RejectPDU ::= SEQUENCE
{
other (0),
invalid-invokeID (1)
- },
+ },
cancel-responsePDU [7] IMPLICIT INTEGER
{
@@ -737,7 +754,7 @@ RejectPDU ::= SEQUENCE
{
other (0),
invalid-argument (1)
- },
+ },
conclude-responsePDU [10] IMPLICIT INTEGER
{
@@ -782,34 +799,38 @@ Status-Response ::= SEQUENCE {
UnsolicitedStatus ::= Status-Response
-- GETNAMELIST
+ObjectClass ::= INTEGER
+ {
+ nammedVariable (0),
+ scatteredAccess (1),
+ namedVariableList (2),
+ namedType (3),
+ semaphore (4),
+ eventCondition (5),
+ eventAction (6),
+ eventEnrollment (7),
+ journal (8),
+ domain (9),
+ programInvocation (10),
+ operatorStation (11)
+ }
+
+ObjectScope ::= CHOICE
+ {
+ vmdSpecific [0] IMPLICIT NULL,
+ domainSpecific [1] IMPLICIT Identifier,
+ aaSpecific [2] IMPLICIT NULL
+ }
+
GetNameList-Request ::= SEQUENCE
{
extendedObjectClass [0] CHOICE
{
- objectClass [0] IMPLICIT INTEGER
- {
- nammedVariable (0),
- scatteredAccess (1),
- namedVariableList (2),
- namedType (3),
- semaphore (4),
- eventCondition (5),
- eventAction (6),
- eventEnrollment (7),
- journal (8),
- domain (9),
- programInvocation (10),
- operatorStation (11)
- }
+ objectClass [0] IMPLICIT ObjectClass
},
- objectScope [1] CHOICE
- {
- vmdSpecific [0] IMPLICIT NULL,
- domainSpecific [1] IMPLICIT Identifier,
- aaSpecific [2] IMPLICIT NULL
- },
- continueAfter [2] IMPLICIT Identifier OPTIONAL
+ objectScope [1] ObjectScope,
+ continueAfter [2] IMPLICIT Identifier OPTIONAL
}
GetNameList-Response ::= SEQUENCE
@@ -1112,7 +1133,7 @@ GetProgramInvocationAttributes-Request ::= Identifier -- Program Invocation Name
GetProgramInvocationAttributes-Response ::= SEQUENCE
{
state [0] IMPLICIT ProgramInvocationState,
- listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier,
+ listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier,
mmsDeletable [2] IMPLICIT BOOLEAN,
reusable [3] IMPLICIT BOOLEAN,
monitor [4] IMPLICIT BOOLEAN,
@@ -1465,7 +1486,7 @@ Data ::= CHOICE
-- context tag 0 is reserved for AccessResult
array [1] IMPLICIT SEQUENCE OF Data,
structure [2] IMPLICIT SEQUENCE OF Data,
- boolean [3] IMPLICIT BOOLEAN,
+ boolean [3] IMPLICIT BOOLEAN,
bit-string [4] IMPLICIT BIT STRING,
integer [5] IMPLICIT INTEGER,
unsigned [6] IMPLICIT INTEGER,
@@ -2295,7 +2316,5 @@ FileAttributes ::= SEQUENCE {
lastModified [1] IMPLICIT GeneralizedTime OPTIONAL
}
-
-
END
diff --git a/epan/dissectors/asn1/mms/mms.cnf b/epan/dissectors/asn1/mms/mms.cnf
index 30adfa666b..9e8f4f65a6 100644
--- a/epan/dissectors/asn1/mms/mms.cnf
+++ b/epan/dissectors/asn1/mms/mms.cnf
@@ -14,6 +14,7 @@ MMSpdu
#.NO_EMIT
#.TYPE_RENAME
+ObjectName/domain-specific/itemId ObjectName_domain_specific_itemid
#.TYPE_ATTR
TimeOfDay TYPE = FT_STRING DISPLAY = BASE_NONE
@@ -23,7 +24,7 @@ UtcTime TYPE = FT_STRING DISPLAY = BASE_NONE
ConfirmedServiceRequest/deleteEventCondition confirmedServiceRequest_deleteEventCondition
ConfirmedServiceResponse/deleteEventCondition confirmedServiceResponse_deleteEventCondition
ConfirmedServiceRequest/deleteEventAction confirmedServiceRequest_deleteEventAction
-ConfirmedServiceRequest/deleteEventAction confirmedServiceRequest_deleteEventAction
+ConfirmedServiceResponse/deleteEventAction confirmedServiceRequest_deleteEventAction
ConfirmedServiceRequest/deleteEventEnrollment confirmedServiceRequest_deleteEventEnrollment
ConfirmedServiceResponse/deleteEventEnrollment confirmedServiceResponse_deleteEventEnrollment
TypeSpecification/bit-string typeSpecification_bit-string
@@ -43,12 +44,13 @@ GetDomainAttributes-Response/state getDomainAttributes-Response
GetProgramInvocationAttributes-Response/state getProgramInvocationAttributes-Response_state
ReportSemaphoreEntryStatus-Request/state reportSemaphoreEntryStatus-Request_state
AlterEventEnrollment-Response/currentState/state alterEventEnrollment-Response_currentState_state
+ObjectName/domain-specific/itemId objectName-domain-specific-itemId
#.FIELD_ATTR
ConfirmedServiceRequest/deleteEventCondition ABBREV=confirmedServiceRequest.deleteEventCondition
ConfirmedServiceResponse/deleteEventCondition ABBREV=confirmedServiceResponse.deleteEventCondition
ConfirmedServiceRequest/deleteEventAction ABBREV=confirmedServiceRequest.deleteEventAction
-ConfirmedServiceRequest/deleteEventAction ABBREV=confirmedServiceRequest.deleteEventAction
+ConfirmedServiceResponse/deleteEventAction ABBREV=confirmedServiceRequest.deleteEventAction
ConfirmedServiceRequest/deleteEventEnrollment ABBREV=confirmedServiceRequest.deleteEventEnrollment
ConfirmedServiceResponse/deleteEventEnrollment ABBREV=confirmedServiceResponse.deleteEventEnrollment
TypeSpecification/bit-string ABBREV=typeSpecification_bit-string
@@ -71,131 +73,815 @@ AlterEventEnrollment-Response/currentState/state ABBREV=alterEventEnrollment-
#.FN_BODY ApplicationReference/ap-title
- offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_ap_title);
+ offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_ap_title);
#.FN_BODY ApplicationReference/ap-invocation-id
- offset=dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
+ offset=dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
#.FN_BODY ApplicationReference/ae-qualifier
- offset=dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_qualifier);
+ offset=dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_qualifier);
#.FN_BODY ApplicationReference/ae-invocation-id
- offset=dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
+ offset=dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
#.FN_BODY MMSpdu VAL_PTR=&branch_taken
- gint branch_taken;
+ int branch_taken;
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->mms_pdu_type = tag;
+ }
+
%(DEFAULT_BODY)s
- if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
- if (mms_has_private_data(actx))
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
- private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
- else
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s",
- mms_MMSpdu_vals[branch_taken].strptr);
- }
+ if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
+ if(mms_priv){
+ switch(mms_priv->mms_pdu_type){
+ case MMS_UNCONFIRMED_PDU:
+ if(mms_priv->vmd_specific==IEC61850_8_1_RPT){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed <RPT>");
+ proto_item_append_text(mms_priv->pdu_item, " [RPT]");
+ }else if((mms_priv->mms_trans_p)&&(mms_priv->mms_trans_p->itemid==IEC61850_ITEM_ID_OPER)){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed-CommandTermination");
+ proto_item_append_text(mms_priv->pdu_item, " [Unconfirmed-CommandTermination]");
+ }
+ break;
+ case MMS_INITIATE_REQUEST_PDU:
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Request");
+ proto_item_append_text(mms_priv->pdu_item, " [Associate Request]");
+ break;
+ case MMS_INITIATE_RESPONSE_PDU:
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Response");
+ proto_item_append_text(mms_priv->pdu_item, " [Associate Response]");
+ break;
+ case MMS_CONFIRMED_REQUEST_PDU:
+ if(mms_priv->mms_trans_p){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryRequest");
+ proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryRequest]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryRequest %%s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryRequest ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryRequest %%s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryRequest]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryRequest%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryRequest]");
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesRequest]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataValueRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataValueRequest]");
+ }
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesRequest]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetDataValueRequest]");
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueRequest %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueRequest]");
+ }
+ }else if (mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }
+ break;
+ case MMS_CONFIRMED_RESPONSE_PDU:
+ if(mms_priv->mms_trans_p){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryResponse %%s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryResponse%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryResponse%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryResponse%%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryResponse ]");
+ }else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesResponse");
+ proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesResponse]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataValueResponse");
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataValueResponse ]");
+ }
+ if(mms_priv->success == 1){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " success");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " failure");
+ }
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesResponse %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesResponse]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueResponse %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetDataValueResponse]");
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueResponse %%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueResponse]");
+ }
+ }else if(mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }
+ break;
+ default:
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ break;
+ }
+ }else if (mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s%%s%%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s",
+ mms_MMSpdu_vals[branch_taken].strptr);
+ }
+ }
+
+#.FN_BODY Initiate-RequestPDU
-#.FN_BODY TimeOfDay
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
- guint32 len;
- guint32 milliseconds;
- guint16 days;
- gchar * ptime;
- nstime_t ts;
-
- len = tvb_reported_length_remaining(tvb, offset);
-
- if(len == 4)
- {
- milliseconds = tvb_get_ntohl(tvb, offset);
- ptime = signed_time_msecs_to_str(actx->pinfo->pool, milliseconds);
-
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
- }
- return offset;
- }
-
- if(len == 6)
- {
- milliseconds = tvb_get_ntohl(tvb, offset);
- days = tvb_get_ntohs(tvb, offset+4);
-
- /* 5113 days between 01-01-1970 and 01-01-1984 */
- /* 86400 seconds in one day */
-
- ts.secs = (days + 5113) * 86400 + milliseconds / 1000;
- ts.nsecs = (milliseconds %% 1000) * 1000000U;
-
- ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
- }
-
- return offset;
- }
-
- proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_timeofday_encoding,
- tvb, offset, len, "BER Error: malformed TimeOfDay encoding, length must be 4 or 6 bytes");
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
- }
-#.FN_BODY UtcTime
+#.FN_BODY Initiate-ResponsePDU
+
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+#.FN_BODY Unconfirmed-PDU
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if (!mms_priv->mms_trans_p) {
+ /* create a "fake" mms_trans structure */
+ mms_priv->mms_trans_p=wmem_new0(actx->pinfo->pool, mms_transaction_t);
+ mms_priv->mms_trans_p->req_time = actx->pinfo->fd->abs_ts;
+
+ }
+
+%(DEFAULT_BODY)s
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+#.FN_BODY Confirmed-RequestPDU
+
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
+#.FN_BODY Confirmed-ResponsePDU
- guint32 len;
- guint32 seconds;
- guint32 fraction;
- guint32 nanoseconds;
- nstime_t ts;
- gchar * ptime;
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
+#.FN_BODY ConfirmedServiceRequest
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->confirmedservice_type = tag;
+ }
+
+%(DEFAULT_BODY)s
+
+ if(mms_priv && mms_priv->mms_trans_p){
+ if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMELIST){
+ if(mms_priv->objectclass == MMS_OBJECTCLASS_DOMAIN){
+ if(mms_priv->objectscope == MMS_OBJECTSCOPE_VMDSPECIFIC){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR;
+ }
+ }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMMEDVARIABLE){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY;
+ }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMEDVARIABLELIST){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
+ }
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_READ){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_READ;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_WRITE){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_WRITE;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY;
+ }
+ }
+
+
+#.FN_BODY ConfirmedServiceResponse
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->confirmedservice_type = tag;
+ }
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY ObjectClass VAL_PTR=&val
+ uint32_t val;
- len = tvb_reported_length_remaining(tvb, offset);
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->objectclass = val;
+ }
- if(len != 8)
- {
- proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_utctime_encoding,
- tvb, offset, len, "BER Error: malformed IEC61850 UTCTime encoding, length must be 8 bytes");
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
- }
- return offset;
- }
+#.FN_BODY ObjectScope VAL_PTR=&val
+ int val;
- seconds = tvb_get_ntohl(tvb, offset);
- fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
- nanoseconds = (guint32)( ((guint64)fraction * G_GUINT64_CONSTANT(1000000000)) / G_GUINT64_CONSTANT(0x100000000) ) ;
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->objectscope = val;
+ }
- ts.secs = seconds;
- ts.nsecs = nanoseconds;
+#.FN_BODY TimeOfDay
- ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+ uint32_t len;
+ uint32_t milliseconds;
+ uint16_t days;
+ gchar * ptime;
+ nstime_t ts;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len == 4)
+ {
+ milliseconds = tvb_get_ntohl(tvb, offset);
+ ptime = signed_time_msecs_to_str(actx->pinfo->pool, milliseconds);
+
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+ return offset;
+ }
+
+ if(len == 6)
+ {
+ milliseconds = tvb_get_ntohl(tvb, offset);
+ days = tvb_get_ntohs(tvb, offset+4);
+
+ /* 5113 days between 01-01-1970 and 01-01-1984 */
+ /* 86400 seconds in one day */
+
+ ts.secs = (days + 5113) * 86400 + milliseconds / 1000;
+ ts.nsecs = (milliseconds %% 1000) * 1000000U;
+
+ ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+
+ return offset;
+ }
+
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_timeofday_encoding,
+ tvb, offset, len, "BER Error: malformed TimeOfDay encoding, length must be 4 or 6 bytes");
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
+
+#.FN_BODY UtcTime
+
+ uint32_t len;
+ uint32_t seconds;
+ uint32_t fraction;
+ uint32_t nanoseconds;
+ nstime_t ts;
+ gchar * ptime;
+
+ static int * const TimeQuality_bits[] = {
+ &hf_mms_iec61850_timequality80,
+ &hf_mms_iec61850_timequality40,
+ &hf_mms_iec61850_timequality20,
+ &hf_mms_iec61850_timequality1F,
+ NULL
+ };
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len != 8)
+ {
+ /* The octet format shall be (using ASN.1 bstring notation):
+ * ‘ssssssssssssssssssssssssssssssssffffffffffffffffffffffffqqqqqqqq’B
+ * q stands for TimeQuality, i.e. reserved to represent TimeQuality based upon the referencing standard.
+ */
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_utctime_encoding,
+ tvb, offset, len, "BER Error: malformed IEC61850 UTCTime encoding, length must be 8 bytes");
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
+ return offset;
+ }
+
+ seconds = tvb_get_ntohl(tvb, offset);
+ fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
+ nanoseconds = (uint32_t )( ((guint64)fraction * G_GUINT64_CONSTANT(1000000000)) / G_GUINT64_CONSTANT(0x100000000) ) ;
+
+ ts.secs = seconds;
+ ts.nsecs = nanoseconds;
+
+ ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+
+ if(hf_index > 0)
+ {
+ mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 8){
+ hf_index = hf_mms_iec61850_T;
+ }
+ }
+ }
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ proto_tree_add_bitmask_list(tree, tvb, offset+7, 1, TimeQuality_bits, ENC_BIG_ENDIAN);
+ }
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
- }
#.FN_BODY Unsigned32 VAL_PTR=&val
- guint32 val;
+ uint32_t val;
+ conversation_t *conversation;
+ mms_conv_info_t *mms_info;
+ mms_transaction_t *mms_trans;
+
%(DEFAULT_BODY)s
- if (hf_index == hf_mms_invokeID)
- private_data_add_preCinfo(actx, val);
+ if (hf_index == hf_mms_invokeID){
+ mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
+ if(mms_priv){
+ mms_priv->invokeid=val;
+ private_data_add_preCinfo(actx, val);
+ conversation = find_or_create_conversation(actx->pinfo);
+
+ mms_info = (mms_conv_info_t *)conversation_get_proto_data(conversation, proto_mms);
+ if (!mms_info) {
+ /*
+ * No. Attach that information to the conversation, and add
+ * it to the list of information structures.
+ */
+ mms_info = wmem_new(wmem_file_scope(), mms_conv_info_t);
+ mms_info->pdus=wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+
+ conversation_add_proto_data(conversation, proto_mms, mms_info);
+ }
+ /* Request or response? */
+ bool is_request;
+
+ switch(mms_priv->mms_pdu_type){
+ case 0:
+ /* Confirmed-RequestPDU */
+ is_request = true;
+ break;
+ case 1:
+ /* confirmed-ResponsePDU */
+ is_request = false;
+ break;
+ case 2:
+ /* Confirmed-ErrorPDU */
+ is_request = false;
+ break;
+ default:
+ is_request = false;
+ break;
+ }
+
+ if (!PINFO_FD_VISITED(actx->pinfo)) {
+ if (is_request==true) {
+ /* This is a request */
+ mms_trans=wmem_new0(wmem_file_scope(), mms_transaction_t);
+ mms_trans->req_frame = actx->pinfo->num;
+ mms_trans->req_time = actx->pinfo->fd->abs_ts;
+ wmem_map_insert(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid), (void *)mms_trans);
+ } else {
+ mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
+ if (mms_trans) {
+ mms_trans->rep_frame = actx->pinfo->num;
+ }
+ }
+ } else {
+ mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
+ }
+ if (!mms_trans) {
+ /* create a "fake" mms_trans structure */
+ mms_trans=wmem_new0(actx->pinfo->pool, mms_transaction_t);
+ mms_trans->req_frame = 0;
+ mms_trans->rep_frame = 0;
+ mms_trans->req_time = actx->pinfo->fd->abs_ts;
+ }
+ mms_priv->mms_trans_p = mms_trans;
+
+ /* print state tracking in the tree */
+ if (is_request) {
+ /* This is a request */
+ if (mms_trans->rep_frame) {
+ proto_item *it;
+
+ it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_in, tvb, 0, 0, mms_trans->rep_frame);
+ proto_item_set_generated(it);
+ }
+ } else {
+ /* This is a reply */
+ if (mms_trans->req_frame) {
+ proto_item *it;
+ nstime_t ns;
+
+ it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_to, tvb, 0, 0, mms_trans->req_frame);
+ proto_item_set_generated(it);
+
+ nstime_delta(&ns, &actx->pinfo->fd->abs_ts, &mms_trans->req_time);
+ it = proto_tree_add_time(actx->subtree.top_tree, hf_mms_response_time, tvb, 0, 0, &ns);
+ proto_item_set_generated(it);
+ }
+ }
+ }
+ }
#.FN_BODY FloatingPoint
%(DEFAULT_BODY)s
- private_data_add_moreCinfo_float(actx, tvb);
+ private_data_add_moreCinfo_float(actx, tvb);
-#.FN_BODY Identifier
- int offset_id = offset;
+#.FN_BODY Identifier VAL_PTR= &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+
+%(DEFAULT_BODY)s
+ if (hf_index == hf_mms_domainId) {
+ private_data_add_moreCinfo_id(actx,parameter_tvb);
+ }
+ if ((mms_priv) && ((hf_index == hf_mms_objectName_domain_specific_itemId)||
+ (hf_index ==hf_mms_listOfIdentifier_item))) {
+ private_data_add_moreCinfo_id(actx,parameter_tvb);
+ if((mms_priv->mms_trans_p)&&(parameter_tvb)){
+ mms_priv->itemid_str = tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
+ if(g_str_has_suffix(mms_priv->itemid_str,"$ctlModel")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CTLMODEL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$q")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_Q;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$Oper")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OPER;
+ }else if((g_str_has_suffix(mms_priv->itemid_str,"$Oper$Check")) || (g_str_has_suffix(mms_priv->itemid_str,"$SBOw$Check"))){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CHECK;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$orCat")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OR_CAT;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Beh$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_BEH$STVAL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Mod$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_MOD$STVAL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Health$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_HEALTH$STVAL;
+ }else if((g_strrstr(mms_priv->itemid_str,"$BR$") || g_strrstr(mms_priv->itemid_str,"$RP$"))){ //GetBRCBValues,GetURCBValues,)
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$BR$_OR_$RP$;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$SBOw")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$SBOW;
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE;
+ }
+ }
+ }
+
+ if ((mms_priv) && (hf_index == hf_mms_vmd_specific)){
+ const char *vmd_specific_str = tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
+ if (strcmp(vmd_specific_str, "RPT") == 0) {
+ mms_priv->vmd_specific = IEC61850_8_1_RPT;
+ }
+ }
+
+#.FN_BODY InformationReport/listOfAccessResult
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->listOfAccessResult_cnt = 0;
+ }
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY AccessResult VAL_PTR=&branch_taken
+ int branch_taken;
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ /* If listOfAccessResult_cnt > 2 we are into the optional data.
+ * if data is not present increase count.
+ */
+ bool present;
+ do {
+ mms_priv->listOfAccessResult_cnt+=1;
+ present = TRUE;
+ switch(mms_priv->listOfAccessResult_cnt){
+ case 1: /*RptID*/
+ break;
+ case 2: /* Reported OptFlds */
+ break;
+ case 3: /* SeqNum Shall be present if OptFlds.sequence-number is TRUE */
+ if((mms_priv->reported_optflds & 0x4000) != 0x4000){
+ present = false;
+ }
+ break;
+ case 4: /*TimeOfEntry Shall be present if OptFlds.report-time-stamp is TRUE */
+ if((mms_priv->reported_optflds & 0x2000) != 0x2000){
+ present = false;
+ }
+ break;
+ case 5: /*DatSet Shall be present if OptFlds.data-set-name is TRUE */
+ if((mms_priv->reported_optflds & 0x0800) !=0x0800){
+ present = false;
+ }
+ break;
+ case 6: /*BufOvfl Shall be present if OptFlds.buffer-overflow is TRUE */
+ if((mms_priv->reported_optflds & 0x0200) !=0x0200){
+ present = false;
+ }
+ break;
+ case 7: /*EntryID Shall be present if OptFlds.entryID is TRUE */
+ if((mms_priv->reported_optflds & 0x0100) !=0x0100){
+ present = false;
+ }
+ break;
+ case 8: /*ConfRev Shall be present if OptFlds.conf-rev is TRUE */
+ if((mms_priv->reported_optflds & 0x0080) !=0x0080){
+ present = false;
+ }
+ break;
+ case 9: /*SubSeqNum Shall be present if OptFlds.segmentation is TRUE */
+ if((mms_priv->reported_optflds & 0x0040) !=0x0040){
+ present = false;
+ }
+ break;
+ case 10: /*MoreSegmentsFollow Shall be present if OptFlds.segmentation is TRUE */
+ if((mms_priv->reported_optflds & 0x0040) !=0x0040){
+ present = false;
+ }
+ break;
+ case 11: /*Inclusion-bitstring Shall be present */
+ break;
+ case 12: /*data-reference(s) Shall be present if OptFlds.data-reference is TRUE */
+ if((mms_priv->reported_optflds & 0x0400) !=0x0400){
+ present = false;
+ }
+ break;
+ case 13: /*value(s) See AccessResult for value(s) */
+ break;
+ case 14: /*ReasonCode(s) Shall be present if OptFlds OptFlds.reason-for-inclusion is TRUE */
+ if((mms_priv->reported_optflds & 0x1000) !=0x1000){
+ present = false;
+ }
+ break;
+ default:
+ break;
+ }
+ } while(!present);
+ }
+
+%(DEFAULT_BODY)s
+ if(mms_priv){
+ mms_priv->success = branch_taken;
+ }
+
+#.FN_BODY Write-Request/listOfData
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->data_cnt = 0;
+ }
+%(DEFAULT_BODY)s
+ if(mms_priv){
+ mms_priv->data_cnt = 0;
+ }
+
+#.FN_BODY Data
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->data_cnt += 1;
+ }
+
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/structure
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 3){
+ /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
+ hf_index = hf_mms_iec61850_origin;
+ mms_priv->data_cnt++;
+ }else if(mms_priv->data_cnt == 4){
+ /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
+ hf_index = hf_mms_iec61850_origin;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/visible-string
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 1){
+ /* IEC 61850-8-1 RptID */
+ hf_index = hf_mms_iec61850_rptid;
+ }else if(mms_priv->listOfAccessResult_cnt == 5){
+ /* IEC 61850-8-1 DatSet */
+ hf_index = hf_mms_iec61850_datset;
+ }
+ }
+ }
%(DEFAULT_BODY)s
- if ((hf_index == hf_mms_domainId) || (hf_index == hf_mms_itemId)) {
- if (tvb_get_guint8(tvb, offset_id) == 0x1a)
- private_data_add_moreCinfo_id(actx,tvb);
- }
+
+#.FN_BODY Data/octet-string
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 6){
+ hf_index = hf_mms_iec61850_origin_orident;
+ }
+ }
+ }
+ %(DEFAULT_BODY)s
+
+#.FN_BODY Data/bit-string VAL_PTR= &parameter_tvb
+
+static int* const quality_field_bits_oct1[] = {
+ &hf_mms_iec61850_QualityC0,
+ &hf_mms_iec61850_Quality20,
+ &hf_mms_iec61850_Quality10,
+ &hf_mms_iec61850_Quality8,
+ &hf_mms_iec61850_Quality4,
+ &hf_mms_iec61850_Quality2,
+ &hf_mms_iec61850_Quality1,
+ NULL
+};
+
+static int* const quality_field_bits_oct2[] = {
+ &hf_mms_iec61850_Quality0080,
+ &hf_mms_iec61850_Quality0040,
+ &hf_mms_iec61850_Quality0020,
+ &hf_mms_iec61850_Quality0010,
+ &hf_mms_iec61850_Quality0008,
+ NULL
+};
+
+static int * const mms_iec61850_chec_bits[] = {
+ &hf_mms_iec61850_check_b1,
+ &hf_mms_iec61850_check_b0,
+ NULL
+};
+ tvbuff_t *parameter_tvb;
+ proto_tree *sub_tree;
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&&(mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 2){
+ /* IEC 61850-8-1 Reported OptFlds */
+ return dissect_mms_ReportedOptFlds(implicit_tag, tvb, offset, actx, tree, hf_mms_iec61850_reported_optflds);
+ }else{
+ if(mms_priv->listOfAccessResult_cnt == 11){
+ hf_index = hf_mms_iec61850_inclusion_bitstring;
+ }
+ }
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
+ hf_index = hf_mms_iec61850_quality_bitstring;
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
+ hf_index = hf_mms_iec61850_check_bitstring;
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 10){
+ hf_index = hf_mms_iec61850_check_bitstring;
+ }
+ }
+ }
+
+%(DEFAULT_BODY)s
+
+ if((mms_priv)&&(parameter_tvb) && (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_quality_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, quality_field_bits_oct1, ENC_NA);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 1, 1, quality_field_bits_oct2, ENC_NA);
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 10){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
+ }
+ }
+ }
+
+#.FN_BODY ReportedOptFlds VAL_PTR= &parameter_tvb
+ tvbuff_t *parameter_tvb;
+%(DEFAULT_BODY)s
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->reported_optflds = tvb_get_ntohs(parameter_tvb,0);
+ }
+
+#.FN_BODY Data/unsigned
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 3){
+ /* IEC 61850-8-1 SeqNum */
+ hf_index = hf_mms_iec61850_seqnum;
+ }else if(mms_priv->listOfAccessResult_cnt == 8){
+ /* IEC 61850-8-1 ConfRev */
+ hf_index = hf_mms_iec61850_confrev;
+ }
+ }
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 7){
+ hf_index = hf_mms_iec61850_ctlNum;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/boolean
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 6){
+ /* IEC 61850-8-1 BufOvfl */
+ hf_index = hf_mms_iec61850_bufovfl;
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 2){
+ /* IEC 61850-8-1 ctlVal */
+ hf_index = hf_mms_iec61850_ctlval;
+ }else if(mms_priv->data_cnt == 9){
+ /* IEC 61850-8-1 Test */
+ hf_index = hf_mms_iec61850_test;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/binary-time
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 4){
+ /* IEC 61850-8-1 TimeOfEntry */
+ hf_index = hf_mms_iec61850_timeofentry;
+ }
+ }
+ }
+%(DEFAULT_BODY)s
+
+#.FN_BODY Data/integer
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CTLMODEL){
+ hf_index = hf_mms_iec61850_ctlModel;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_OR_CAT){
+ hf_index = hf_mms_iec61850_orcategory;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_BEH$STVAL){
+ hf_index = hf_mms_iec61850_beh$stval;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_MOD$STVAL){
+ hf_index = hf_mms_iec61850_beh$stval;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_HEALTH$STVAL){
+ hf_index = hf_mms_iec61850_health$stval;
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 5){
+ /* IEC 61850-8-1 Origin Catagory */
+ hf_index = hf_mms_iec61850_origin_orcat;
+ }
+ }
+ }
+
+%(DEFAULT_BODY)s
+
diff --git a/epan/dissectors/asn1/mms/packet-mms-template.c b/epan/dissectors/asn1/mms/packet-mms-template.c
index b1f790248d..145a516e9a 100644
--- a/epan/dissectors/asn1/mms/packet-mms-template.c
+++ b/epan/dissectors/asn1/mms/packet-mms-template.c
@@ -16,6 +16,7 @@
#include <epan/asn1.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
+#include <epan/conversation.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -28,13 +29,65 @@
void proto_register_mms(void);
void proto_reg_handoff_mms(void);
+static bool use_iec61850_mapping = TRUE;
+
/* Initialize the protocol and registered fields */
static int proto_mms;
+/* Conversation */
+static int hf_mms_response_in;
+static int hf_mms_response_to;
+static int hf_mms_response_time;
+
+/* IEC 61850-8-1 filters */
+static int hf_mms_iec61850_rptid;
+static int hf_mms_iec61850_reported_optflds;
+static int hf_mms_iec61850_seqnum;
+static int hf_mms_iec61850_timeofentry;
+static int hf_mms_iec61850_datset;
+static int hf_mms_iec61850_bufovfl;
+static int hf_mms_iec61850_confrev;
+static int hf_mms_iec61850_inclusion_bitstring;
+static int hf_mms_iec61850_ctlModel;
+
+static int hf_mms_iec61850_QualityC0;
+static int hf_mms_iec61850_Quality20;
+static int hf_mms_iec61850_Quality10;
+static int hf_mms_iec61850_Quality8;
+static int hf_mms_iec61850_Quality4;
+static int hf_mms_iec61850_Quality2;
+static int hf_mms_iec61850_Quality1;
+static int hf_mms_iec61850_Quality0080;
+static int hf_mms_iec61850_Quality0040;
+static int hf_mms_iec61850_Quality0020;
+static int hf_mms_iec61850_Quality0010;
+static int hf_mms_iec61850_Quality0008;
+static int hf_mms_iec61850_quality_bitstring;
+static int hf_mms_iec61850_timequality80;
+static int hf_mms_iec61850_timequality40;
+static int hf_mms_iec61850_timequality20;
+static int hf_mms_iec61850_timequality1F;
+static int hf_mms_iec61850_check_bitstring;
+static int hf_mms_iec61850_check_b1;
+static int hf_mms_iec61850_check_b0;
+static int hf_mms_iec61850_orcategory;
+static int hf_mms_iec61850_beh$stval;
+static int hf_mms_iec61850_mod$stval;
+static int hf_mms_iec61850_health$stval;
+static int hf_mms_iec61850_ctlval;
+static int hf_mms_iec61850_origin;
+static int hf_mms_iec61850_origin_orcat;
+static int hf_mms_iec61850_origin_orident;
+static int hf_mms_iec61850_ctlNum;
+static int hf_mms_iec61850_T;
+static int hf_mms_iec61850_test;
+
#include "packet-mms-hf.c"
/* Initialize the subtree pointers */
-static gint ett_mms;
+static int ett_mms;
+static int ett_mms_iec61850_quality_bitstring;
+static int ett_mms_iec61850_check_bitstring;
#include "packet-mms-ett.c"
static expert_field ei_mms_mal_timeofday_encoding;
@@ -50,72 +103,321 @@ static expert_field ei_mms_zero_pdu;
#define BUFFER_SIZE_PRE 10
#define BUFFER_SIZE_MORE 1024
+typedef enum _iec61850_8_1_vmd_specific {
+ IEC61850_8_1_NOT_SET = 0,
+ IEC61850_8_1_RPT
+} iec61850_8_1_vmd_specific;
+
+typedef enum _itemid_type {
+ IEC61850_ITEM_ID_NOT_SET = 0,
+ IEC61850_ITEM_ID_CTLMODEL,
+ IEC61850_ITEM_ID_Q,
+ IEC61850_ITEM_ID_OPER,
+ IEC61850_ITEM_ID_CHECK,
+ IEC61850_ITEM_ID_OR_CAT,
+ IEC61850_ITEM_ID_BEH$STVAL,
+ IEC61850_ITEM_ID_MOD$STVAL,
+ IEC61850_ITEM_ID_HEALTH$STVAL,
+ IEC61850_ITEM_ID_$BR$_OR_$RP$,
+ IEC61850_ITEM_ID_$SBOW
+} itemid_type;
+
+typedef struct _mms_transaction_t {
+ uint32_t req_frame;
+ uint32_t rep_frame;
+ nstime_t req_time;
+ /* Request info*/
+ itemid_type itemid; /* Numeric representation of ItemId substring */
+ int conf_serv_pdu_type_req;
+} mms_transaction_t;
+
+typedef struct _mms_conv_info_t {
+ wmem_map_t* pdus;
+} mms_conv_info_t;
+
typedef struct mms_private_data_t
{
- char preCinfo[BUFFER_SIZE_PRE];
- char moreCinfo[BUFFER_SIZE_MORE];
+ char preCinfo[BUFFER_SIZE_PRE];
+ char moreCinfo[BUFFER_SIZE_MORE];
} mms_private_data_t;
+#define MMS_CONFIRMED_REQUEST_PDU 0
+#define MMS_CONFIRMED_RESPONSE_PDU 1
+#define MMS_CONFIRMED_ERROR_PDU 2
+#define MMS_UNCONFIRMED_PDU 3
+#define MMS_REJECT_PDU 4
+#define MMS_CANCEL_REQUEST_PDU 5
+#define MMS_CANCEL_RESPONSE_PDU 6
+#define MMS_CANCEL_ERROR_PDU 7
+#define MMS_INITIATE_REQUEST_PDU 8
+#define MMS_INITIATE_RESPONSE_PDU 9
+#define MMS_INITIATE_ERROR_PDU 10
+#define MMS_CONCLUDE_REQUEST_PDU 11
+#define MMS_CONCLUDE_RESPONSE_PDU 12
+#define MMS_CONCLUDE_ERROR_PDU 13
+
+#define MMS_CONFIRMEDSERVICE_STATUS 0
+#define MMS_CONFIRMEDSERVICE_GETNAMELIST 1
+#define MMS_CONFIRMEDSERVICE_IDENTIFY 2
+#define MMS_CONFIRMEDSERVICE_RENAME 3
+#define MMS_CONFIRMEDSERVICE_READ 4
+#define MMS_CONFIRMEDSERVICE_WRITE 5
+#define MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES 6
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLE 7
+#define MMS_CONFIRMEDSERVICE_DEFINESCATTEREDACCESS 8
+#define MMS_CONFIRMEDSERVICE_GETSCATTEREDACCESSATTRIBUTES 9
+#define MMS_CONFIRMEDSERVICE_DELETEVARIABLEACCESS 10
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLELIST 11
+#define MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES 12
+#define MMS_CONFIRMEDSERVICE_DELETENAMEDVARIABLELIST 13
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDTYPE 14
+#define MMS_CONFIRMEDSERVICE_GETNAMEDTYPEATTRIBUTES 15
+#define MMS_CONFIRMEDSERVICE_DELETENAMEDTYPE 16
+#define MMS_CONFIRMEDSERVICE_INPUT 17
+#define MMS_CONFIRMEDSERVICE_OUTPUT 18
+#define MMS_CONFIRMEDSERVICE_TAKECONTROL 19
+#define MMS_CONFIRMEDSERVICE_RELINQUISHCONTROL 20
+#define MMS_CONFIRMEDSERVICE_DEFINESEMAPHORE 21
+#define MMS_CONFIRMEDSERVICE_DELETESEMAPHORE 22
+#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHORESTATUS 23
+#define MMS_CONFIRMEDSERVICE_REPORTPOOLSEMAPHORESTATUS 24
+#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHOREENTRYSTATUS 25
+#define MMS_CONFIRMEDSERVICE_INITIATEDOWNLOADSEQUENCE 26
+#define MMS_CONFIRMEDSERVICE_DOWNLOADSEGMENT 27
+#define MMS_CONFIRMEDSERVICE_TERMINATEDOWNLOADSEQUENCE 28
+#define MMS_CONFIRMEDSERVICE_INITIATEUPLOADSEQUENCE 29
+#define MMS_CONFIRMEDSERVICE_UPLOADSEGMENT 30
+#define MMS_CONFIRMEDSERVICE_TERMINATEUPLOADSEQUENCE 31
+#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINDOWNLOAD 32
+#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINUPLOAD 33
+#define MMS_CONFIRMEDSERVICE_LOADDOMAINCONTENT 34
+#define MMS_CONFIRMEDSERVICE_STOREDOMAINCONTENT 35
+#define MMS_CONFIRMEDSERVICE_DELETEDOMAIN 36
+#define MMS_CONFIRMEDSERVICE_GETDOMAINATTRIBUTES 37
+#define MMS_CONFIRMEDSERVICE_CREATEPROGRAMINVOCATION 38
+#define MMS_CONFIRMEDSERVICE_DELETEPROGRAMINVOCATION 39
+#define MMS_CONFIRMEDSERVICE_START 40
+#define MMS_CONFIRMEDSERVICE_STOP 41
+#define MMS_CONFIRMEDSERVICE_RESUME 42
+#define MMS_CONFIRMEDSERVICE_RESET 43
+#define MMS_CONFIRMEDSERVICE_KILL 44
+#define MMS_CONFIRMEDSERVICE_GETPROGRAMINVOCATIONATTRIBUTES 45
+#define MMS_CONFIRMEDSERVICE_OBTAINFILE 46
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTCONDITION 47
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTCONDITION 48
+#define MMS_CONFIRMEDSERVICE_GETEVENTCONDITIONATTRIBUTES 49
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTCONDITIONSTATUS 50
+#define MMS_CONFIRMEDSERVICE_ALTEREVENTCONDITIONMONITORING 51
+#define MMS_CONFIRMEDSERVICE_TRIGGEREVENT 52
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTACTION 53
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTACTION 54
+#define MMS_CONFIRMEDSERVICE_GETEVENTACTIONATTRIBUTES 55
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTACTIONSTATUS 56
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTENROLLMENT 57
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTENROLLMENT 58
+#define MMS_CONFIRMEDSERVICE_ALTEREVENTENROLLMENT 59
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTENROLLMENTSTATUS 60
+#define MMS_CONFIRMEDSERVICE_GETEVENTENROLLMENTATTRIBUTES 61
+#define MMS_CONFIRMEDSERVICE_ACKNOWLEDGEEVENTNOTIFICATION 62
+#define MMS_CONFIRMEDSERVICE_GETALARMSUMMARY 63
+#define MMS_CONFIRMEDSERVICE_GETALARMENROLLMENTSUMMARY 64
+#define MMS_CONFIRMEDSERVICE_READJOURNAL 65
+#define MMS_CONFIRMEDSERVICE_WRITEJOURNAL 66
+#define MMS_CONFIRMEDSERVICE_INITIALIZEJOURNAL 67
+#define MMS_CONFIRMEDSERVICE_REPORTJOURNALSTATUS 68
+#define MMS_CONFIRMEDSERVICE_CREATEJOURNAL 69
+#define MMS_CONFIRMEDSERVICE_DELETEJOURNAL 70
+#define MMS_CONFIRMEDSERVICE_GETCAPABILITYLIST 71
+#define MMS_CONFIRMEDSERVICE_FILEOPEN 72
+#define MMS_FILEREAD 73
+#define MMS_FILECLOSE 74
+#define MMS_FILERENAME 75
+#define MMS_FILEDELETE 76
+#define MMS_FILEDIRECTORY 77
+
+#define MMS_OBJECTCLASS_NAMMEDVARIABLE 0
+#define MMS_OBJECTCLASS_NAMEDVARIABLELIST 2
+#define MMS_OBJECTCLASS_DOMAIN 9
+
+#define MMS_OBJECTSCOPE_VMDSPECIFIC 0
+#define MMS_OBJECTSCOPE_DOMAINSPECIFIC 1
+
+#define MMS_IEC_61850_CONF_SERV_PDU_NOT_SET 0
+#define MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR 1
+#define MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY 2
+#define MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY 3
+#define MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY 4
+#define MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE 5
+#define MMS_IEC_61850_CONF_SERV_PDU_READ 6
+#define MMS_IEC_61850_CONF_SERV_PDU_WRITE 7
+
+typedef struct mms_actx_private_data_t
+{
+ int mms_pdu_type; /* MMSpdu type taken from MMSpdu CHOICE branch_taken */
+ int invokeid;
+ iec61850_8_1_vmd_specific vmd_specific; /* Numeric representation of decode vmd_specific strings */
+ int listOfAccessResult_cnt; /* Position in the list, 1 count */
+ int data_cnt; /* Number of times data occurred(depth)*/
+ guint16 reported_optflds; /* Bitmap over included fields */
+ proto_item* pdu_item; /* The item to append PDU info to */
+ int confirmedservice_type; /* Requested service */
+ int objectclass;
+ int objectscope;
+ mms_transaction_t* mms_trans_p; /* Pointer to the transaction record */
+ char* itemid_str;
+ int success; /* If variable access succeeded or not */
+} mms_actx_private_data_t;
+
+
+static const value_string mms_iec6150_cntmodel_vals[] = {
+ {0, "status-only"},
+ {1, "direct-with-normal-security"},
+ {2, "sbo-with-normal-security"},
+ {3, "direct-with-enhanced-security"},
+ {4, "sbo-with-enhanced-security"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_validity_vals[] = {
+ {0, "Good"},
+ {1, "Invalid"},
+ {2, "Reserved"},
+ {3, "Questionable"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_source_vals[] = {
+ {0, "Process"},
+ {1, "Substituted"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_timeaccuracy_vals[] = {
+ {0, "0 bits accuracy"},
+ {1, "1 bits accuracy"},
+ {2, "2 bits accuracy"},
+ {3, "3 bits accuracy"},
+ {4, "4 bits accuracy"},
+ {5, "5 bits accuracy"},
+ {6, "6 bits accuracy"},
+ {7, "7 bits accuracy"},
+ {8, "8 bits accuracy"},
+ {9, "9 bits accuracy"},
+ {10, "10 bits accuracy"},
+ {11, "11 bits accuracy"},
+ {12, "12 bits accuracy"},
+ {13, "13 bits accuracy"},
+ {14, "14 bits accuracy"},
+ {15, "15 bits accuracy"},
+ {16, "16 bits accuracy"},
+ {17, "17 bits accuracy"},
+ {18, "18 bits accuracy"},
+ {19, "19 bits accuracy"},
+ {20, "20 bits accuracy"},
+ {21, "21 bits accuracy"},
+ {22, "22 bits accuracy"},
+ {23, "23 bits accuracy"},
+ {24, "24 bits accuracy"},
+ {25, "25 bits accuracy"},
+ {26, "26 bits accuracy"},
+ {27, "27 bits accuracy"},
+ {28, "28 bits accuracy"},
+ {29, "29 bits accuracy"},
+ {30, "Invalid"},
+ {31, "Unspecified"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_orcategory_vals[] = {
+ {0, "not-supported"},
+ {1, "bay-control"},
+ {2, "station-control"},
+ {3, "remote-control"},
+ {4, "automatic-bay"},
+ {5, "automatic-station"},
+ {6, "automatic-station"},
+ {7, "maintenance"},
+ {8, "process"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_beh_vals[] = {
+ {0,"Uninitialised"},
+ {1, "on"},
+ {2, "blocked"},
+ {3, "test"},
+ {4, "test/blocked"},
+ {5, "off"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_health_vals[] = {
+ {0,"Uninitialised"},
+ {1,"Ok"},
+ {2,"Warning"},
+ {3,"Alarm"},
+ {0, NULL}
+};
/* Helper function to get or create the private data struct */
static
-mms_private_data_t* mms_get_private_data(asn1_ctx_t *actx)
+mms_private_data_t* mms_get_private_data(asn1_ctx_t* actx)
{
- packet_info *pinfo = actx->pinfo;
- mms_private_data_t *private_data = (mms_private_data_t *)p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num);
- if(private_data != NULL )
- return private_data;
- else {
- private_data = wmem_new0(pinfo->pool, mms_private_data_t);
- p_add_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num, private_data);
- return private_data;
- }
+ packet_info* pinfo = actx->pinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num);
+ if (private_data != NULL) {
+ return private_data;
+ } else {
+ private_data = wmem_new0(pinfo->pool, mms_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num, private_data);
+ return private_data;
+ }
}
/* Helper function to test presence of private data struct */
static gboolean
-mms_has_private_data(asn1_ctx_t *actx)
+mms_has_private_data(asn1_ctx_t* actx)
{
- packet_info *pinfo = actx->pinfo;
- return (p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num) != NULL);
+ packet_info* pinfo = actx->pinfo;
+ return (p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num) != NULL);
}
static void
-private_data_add_preCinfo(asn1_ctx_t *actx, guint32 val)
+private_data_add_preCinfo(asn1_ctx_t* actx, guint32 val)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- snprintf(private_data->preCinfo, BUFFER_SIZE_PRE, "%02d ", val);
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ snprintf(private_data->preCinfo, BUFFER_SIZE_PRE, "%02d ", val);
}
static char*
-private_data_get_preCinfo(asn1_ctx_t *actx)
+private_data_get_preCinfo(asn1_ctx_t* actx)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- return private_data->preCinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ return private_data->preCinfo;
}
static void
-private_data_add_moreCinfo_id(asn1_ctx_t *actx, tvbuff_t *tvb)
+private_data_add_moreCinfo_id(asn1_ctx_t* actx, tvbuff_t* tvb)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- (void) g_strlcat(private_data->moreCinfo, " ", BUFFER_SIZE_MORE);
- (void) g_strlcat(private_data->moreCinfo, tvb_get_string_enc(actx->pinfo->pool,
- tvb, 2, tvb_get_guint8(tvb, 1), ENC_STRING), BUFFER_SIZE_MORE);
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ (void)g_strlcat(private_data->moreCinfo, " ", BUFFER_SIZE_MORE);
+ (void)g_strlcat(private_data->moreCinfo, tvb_get_string_enc(actx->pinfo->pool, tvb,
+ 0, tvb_reported_length(tvb), ENC_ASCII | ENC_NA), BUFFER_SIZE_MORE);
}
static void
-private_data_add_moreCinfo_float(asn1_ctx_t *actx, tvbuff_t *tvb)
+private_data_add_moreCinfo_float(asn1_ctx_t* actx, tvbuff_t* tvb)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- snprintf(private_data->moreCinfo, BUFFER_SIZE_MORE,
- " %f", tvb_get_ieee_float(tvb, 1, ENC_BIG_ENDIAN));
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ snprintf(private_data->moreCinfo, BUFFER_SIZE_MORE,
+ " %f", tvb_get_ieee_float(tvb, 1, ENC_BIG_ENDIAN));
}
static char*
-private_data_get_moreCinfo(asn1_ctx_t *actx)
+private_data_get_moreCinfo(asn1_ctx_t* actx)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- return private_data->moreCinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ return private_data->moreCinfo;
}
/*****************************************************************************/
@@ -127,122 +429,318 @@ private_data_get_moreCinfo(asn1_ctx_t *actx)
* Dissect MMS PDUs inside a PPDU.
*/
static int
-dissect_mms(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+dissect_mms(tvbuff_t* tvb, packet_info* pinfo, proto_tree* parent_tree, void* data _U_)
{
- int offset = 0;
- int old_offset;
- proto_item *item=NULL;
- proto_tree *tree=NULL;
- asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
-
- if(parent_tree){
- item = proto_tree_add_item(parent_tree, proto_mms, tvb, 0, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mms);
- }
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS");
- col_clear(pinfo->cinfo, COL_INFO);
-
- while (tvb_reported_length_remaining(tvb, offset) > 0){
- old_offset=offset;
- offset=dissect_mms_MMSpdu(FALSE, tvb, offset, &asn1_ctx , tree, -1);
- if(offset == old_offset){
- proto_tree_add_expert(tree, pinfo, &ei_mms_zero_pdu, tvb, offset, -1);
- break;
- }
- }
- return tvb_captured_length(tvb);
+ int offset = 0;
+ int old_offset;
+ proto_item* item = NULL;
+ proto_tree* tree = NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, proto_mms, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mms);
+ asn1_ctx.subtree.top_tree = parent_tree;
+ }
+ if (use_iec61850_mapping) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS/IEC61850");
+ }
+ else {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS");
+ }
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ old_offset = offset;
+ if (use_iec61850_mapping) {
+ asn1_ctx.private_data = (void*)wmem_new0(pinfo->pool, mms_actx_private_data_t);
+ }
+ offset = dissect_mms_MMSpdu(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ if (asn1_ctx.private_data) {
+ wmem_free(pinfo->pool, asn1_ctx.private_data);
+ }
+ if (offset == old_offset) {
+ proto_tree_add_expert(tree, pinfo, &ei_mms_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ return tvb_captured_length(tvb);
}
/*--- proto_register_mms -------------------------------------------*/
void proto_register_mms(void) {
- /* List of fields */
- static hf_register_info hf[] =
- {
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ { &hf_mms_response_in,
+ { "Response In", "mms.response_in",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0x0,
+ "The response to this mms request is in this frame", HFILL }
+ },
+ { &hf_mms_response_to,
+ { "Request In", "mms.response_to",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0x0,
+ "This is a response to the mms request in this frame", HFILL }
+ },
+ { &hf_mms_response_time,
+ { "Response Time", "mms.response_time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "The time between the Call and the Reply", HFILL }
+ },
+ { &hf_mms_iec61850_rptid,
+ { "RptID", "mms.iec61850.rptid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_reported_optflds,
+ { "Reported OptFlds", "mms.iec61850.reported_optfld",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_seqnum,
+ { "SeqNum", "mms.iec61850.seqnum",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_timeofentry,
+ { "TimeOfEntry", "mms.iec61850.timeofentry",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_datset,
+ { "DatSet", "mms.iec61850.datset",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_bufovfl,
+ { "BufOvfl", "mms.iec61850.bufovfl",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_confrev,
+ { "ConfRev", "mms.iec61850.confrev",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_inclusion_bitstring,
+ { "Inclusion-bitstring", "mms.iec61850.inclusion_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_ctlModel,
+ { "ctlModel", "mms.iec61850.ctlmodel",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_cntmodel_vals), 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_QualityC0,
+ { "Validity", "mms.iec61850.validity",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_validity_vals), 0xC0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality20,
+ { "Overflow", "mms.iec61850.overflow",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality10,
+ { "OutofRange", "mms.iec61850.outofrange",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality8,
+ { "BadReference", "mms.iec61850.badreference",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality4,
+ { "Oscillatory", "mms.iec61850.oscillatory",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality2,
+ { "Failure", "mms.iec61850.failure",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality1,
+ { "OldData", "mms.iec61850.oldData",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0080,
+ { "Inconsistent", "mms.iec61850.inconsistent",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0040,
+ { "Inaccurate", "mms.iec61850.inaccurate",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0020,
+ { "Source", "mms.iec61850.source",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_source_vals), 0x20,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0010,
+ { "Test", "mms.iec61850.test",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0008,
+ { "OperatorBlocked", "mms.iec61850.operatorblocked",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_quality_bitstring,
+ { "Quality", "mms.iec61850.quality_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality80,
+ { "Leap Second Known", "mms.iec61850.leapsecondknown",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality40,
+ { "ClockFailure", "mms.iec61850.clockfailure",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality20,
+ { "Clock not synchronized", "mms.iec61850.clocknotsynchronized",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality1F,
+ { "Time Accuracy", "mms.iec61850.timeaccuracy",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_timeaccuracy_vals), 0x1F,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_bitstring,
+ { "Check", "mms.iec61850.check_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_b1,
+ { "Synchrocheck", "mms.iec61850.synchrocheck",
+ FT_BOOLEAN, 2, NULL, 0x2,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_b0,
+ { "Interlock-check", "mms.iec61850.interlockcheck",
+ FT_BOOLEAN, 2, NULL, 0x1,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_orcategory,
+ { "orCategory", "mms.iec61850.orcategory",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_orcategory_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_beh$stval,
+ { "beh", "mms.iec61850.beh",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_mod$stval,
+ { "mod", "mms.iec61850.mod",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_health$stval,
+ { "health", "mms.iec61850.health",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_health_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_ctlval,
+ { "ctlVal", "mms.iec61850.ctlval",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin,
+ { "Origin", "mms.iec61850.origin",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin_orcat,
+ { "Origin Category", "mms.iec61850.orcat",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin_orident,
+ { "Origin Identifier", "mms.iec61850.orident",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_ctlNum,
+ { "ctlNum", "mms.iec61850.ctlnum",
+ FT_INT8, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_T,
+ { "T(Timestamp)", "mms.iec61850.timestamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_test,
+ { "Test", "mms.iec61850.test",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
#include "packet-mms-hfarr.c"
- };
+ };
- /* List of subtrees */
- static gint *ett[] = {
- &ett_mms,
+ /* List of subtrees */
+ static gint* ett[] = {
+ &ett_mms,
+ &ett_mms_iec61850_quality_bitstring,
+ &ett_mms_iec61850_check_bitstring,
#include "packet-mms-ettarr.c"
- };
-
- static ei_register_info ei[] = {
- { &ei_mms_mal_timeofday_encoding, { "mms.malformed.timeofday_encoding", PI_MALFORMED, PI_WARN, "BER Error: malformed TimeOfDay encoding", EXPFILL }},
- { &ei_mms_mal_utctime_encoding, { "mms.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed IEC61850 UTCTime encoding", EXPFILL }},
- { &ei_mms_zero_pdu, { "mms.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte MMS PDU", EXPFILL }},
- };
-
- expert_module_t* expert_mms;
-
- /* Register protocol */
- proto_mms = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("mms", dissect_mms, proto_mms);
- /* Register fields and subtrees */
- proto_register_field_array(proto_mms, hf, array_length(hf));
- proto_register_subtree_array(ett, array_length(ett));
- expert_mms = expert_register_protocol(proto_mms);
- expert_register_field_array(expert_mms, ei, array_length(ei));
-
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_mms_mal_timeofday_encoding, { "mms.malformed.timeofday_encoding", PI_MALFORMED, PI_WARN, "BER Error: malformed TimeOfDay encoding", EXPFILL }},
+ { &ei_mms_mal_utctime_encoding, { "mms.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed IEC61850 UTCTime encoding", EXPFILL }},
+ { &ei_mms_zero_pdu, { "mms.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte MMS PDU", EXPFILL }},
+ };
+
+ expert_module_t* expert_mms;
+
+ /* Register protocol */
+ proto_mms = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("mms", dissect_mms, proto_mms);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_mms, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_mms = expert_register_protocol(proto_mms);
+ expert_register_field_array(expert_mms, ei, array_length(ei));
+
+ /* Setting to enable/disable the IEC-61850 mapping on MMS */
+ module_t* mms_module = prefs_register_protocol(proto_mms, proto_reg_handoff_mms);
+
+ prefs_register_bool_preference(mms_module, "use_iec61850_mapping",
+ "Dissect MMS as IEC-61850",
+ "Enables or disables dissection as IEC-61850 on top of MMS",
+ &use_iec61850_mapping);
}
static gboolean
-dissect_mms_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+dissect_mms_heur(tvbuff_t* tvb, packet_info* pinfo, proto_tree* parent_tree, void* data _U_)
{
- /* must check that this really is an mms packet */
- int offset = 0;
- guint32 length = 0 ;
- guint32 oct;
- gint idx = 0 ;
-
- gint8 tmp_class;
- bool tmp_pc;
- gint32 tmp_tag;
-
- /* first, check do we have at least 2 bytes (pdu) */
- if (!tvb_bytes_exist(tvb, 0, 2))
- return FALSE; /* no */
-
- /* can we recognize MMS PDU ? Return FALSE if not */
- /* get MMS PDU type */
- offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
-
- /* check MMS type */
-
- /* Class should be constructed */
- if (tmp_class!=BER_CLASS_CON)
- return FALSE;
-
- /* see if the tag is a valid MMS PDU */
- try_val_to_str_idx(tmp_tag, mms_MMSpdu_vals, &idx);
- if (idx == -1) {
- return FALSE; /* no, it isn't an MMS PDU */
- }
-
- /* check MMS length */
- oct = tvb_get_guint8(tvb, offset)& 0x7F;
- if (oct==0)
- /* MMS requires length after tag so not MMS if indefinite length*/
- return FALSE;
-
- offset = get_ber_length(tvb, offset, &length, NULL);
- /* do we have enough bytes? */
- if (!tvb_bytes_exist(tvb, offset, length))
- return FALSE;
-
- dissect_mms(tvb, pinfo, parent_tree, data);
- return TRUE;
+ /* must check that this really is an mms packet */
+ int offset = 0;
+ guint32 length = 0;
+ guint32 oct;
+ gint idx = 0;
+
+ gint8 tmp_class;
+ bool tmp_pc;
+ gint32 tmp_tag;
+
+ /* first, check do we have at least 2 bytes (pdu) */
+ if (!tvb_bytes_exist(tvb, 0, 2))
+ return FALSE; /* no */
+
+ /* can we recognize MMS PDU ? Return FALSE if not */
+ /* get MMS PDU type */
+ offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
+
+ /* check MMS type */
+
+ /* Class should be constructed */
+ if (tmp_class != BER_CLASS_CON)
+ return FALSE;
+
+ /* see if the tag is a valid MMS PDU */
+ try_val_to_str_idx(tmp_tag, mms_MMSpdu_vals, &idx);
+ if (idx == -1) {
+ return FALSE; /* no, it isn't an MMS PDU */
+ }
+
+ /* check MMS length */
+ oct = tvb_get_guint8(tvb, offset) & 0x7F;
+ if (oct == 0)
+ /* MMS requires length after tag so not MMS if indefinite length*/
+ return FALSE;
+
+ offset = get_ber_length(tvb, offset, &length, NULL);
+ /* do we have enough bytes? */
+ if (!tvb_bytes_exist(tvb, offset, length))
+ return FALSE;
+
+ dissect_mms(tvb, pinfo, parent_tree, data);
+ return TRUE;
}
/*--- proto_reg_handoff_mms --- */
void proto_reg_handoff_mms(void) {
- register_ber_oid_dissector("1.0.9506.2.3", dissect_mms, proto_mms,"MMS");
- register_ber_oid_dissector("1.0.9506.2.1", dissect_mms, proto_mms,"mms-abstract-syntax-version1(1)");
- heur_dissector_add("cotp", dissect_mms_heur, "MMS over COTP", "mms_cotp", proto_mms, HEURISTIC_ENABLE);
- heur_dissector_add("cotp_is", dissect_mms_heur, "MMS over COTP (inactive subset)", "mms_cotp_is", proto_mms, HEURISTIC_ENABLE);
+ register_ber_oid_dissector("1.0.9506.2.3", dissect_mms, proto_mms, "MMS");
+ register_ber_oid_dissector("1.0.9506.2.1", dissect_mms, proto_mms, "mms-abstract-syntax-version1(1)");
+ heur_dissector_add("cotp", dissect_mms_heur, "MMS over COTP", "mms_cotp", proto_mms, HEURISTIC_ENABLE);
+ heur_dissector_add("cotp_is", dissect_mms_heur, "MMS over COTP (inactive subset)", "mms_cotp_is", proto_mms, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/asn1/nbap/packet-nbap-template.c b/epan/dissectors/asn1/nbap/packet-nbap-template.c
index 2d5ee5e866..f17f1fb024 100644
--- a/epan/dissectors/asn1/nbap/packet-nbap-template.c
+++ b/epan/dissectors/asn1/nbap/packet-nbap-template.c
@@ -294,9 +294,9 @@ static void nbap_reset_private_data(packet_info *pinfo)
/* Variables for sub elements dissection */
static const gchar *ProcedureID;
/* Trees */
-static wmem_tree_t* edch_flow_port_map = NULL;
-wmem_tree_t *nbap_scrambling_code_crncc_map = NULL;
-wmem_tree_t *nbap_crncc_urnti_map = NULL;
+static wmem_tree_t* edch_flow_port_map;
+wmem_tree_t *nbap_scrambling_code_crncc_map;
+wmem_tree_t *nbap_crncc_urnti_map;
static wmem_tree_t* com_context_map;
/* This table is used externally from FP, MAC and such, TODO: merge this with
diff --git a/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn b/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn
index 01c38f3f38..7e4949c718 100644
--- a/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.7.0 (2023-12)
+-- 3GPP TS 38.413 V17.8.0 (2024-03)
-- 9.4.6 Common Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/ngap/NGAP-Constants.asn b/epan/dissectors/asn1/ngap/NGAP-Constants.asn
index 864bef796c..b99baa0aca 100644
--- a/epan/dissectors/asn1/ngap/NGAP-Constants.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.7.0 (2023-12)
+-- 3GPP TS 38.413 V17.8.0 (2024-03)
-- 9.4.7 Constant Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/ngap/NGAP-Containers.asn b/epan/dissectors/asn1/ngap/NGAP-Containers.asn
index 4d8b58696b..c9e57a9584 100644
--- a/epan/dissectors/asn1/ngap/NGAP-Containers.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.7.0 (2023-12)
+-- 3GPP TS 38.413 V17.8.0 (2024-03)
-- 9.4.8 Container Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/ngap/NGAP-IEs.asn b/epan/dissectors/asn1/ngap/NGAP-IEs.asn
index defa811c35..18a4d1b644 100644
--- a/epan/dissectors/asn1/ngap/NGAP-IEs.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.7.0 (2023-12)
+-- 3GPP TS 38.413 V17.8.0 (2024-03)
-- 9.4.5 Information Element Definitions
-- **************************************************************
--
@@ -1825,7 +1825,7 @@ Extended-RANNodeName-ExtIEs NGAP-PROTOCOL-EXTENSION ::= {
}
ExtendedRATRestrictionInformation ::= SEQUENCE {
- primaryRATRestriction BIT STRING (SIZE(8, ...)),
+ primaryRATRestriction BIT STRING (SIZE(8, ..., 16)),
secondaryRATRestriction BIT STRING (SIZE(8, ...)),
iE-Extensions ProtocolExtensionContainer { {ExtendedRATRestrictionInformation-ExtIEs} } OPTIONAL,
...
diff --git a/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn b/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn
index e21e518f2d..2f90c4f92e 100644
--- a/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.7.0 (2023-12)
+-- 3GPP TS 38.413 V17.8.0 (2024-03)
-- 9.4.4 PDU Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn b/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn
index 1e49880815..c4ef623042 100644
--- a/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/ngap/NGAP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.413 V17.6.0 (2023-09)
+-- 3GPP TS 38.413 V17.8.0 (2024-03)
-- 9.4.3 Elementary Procedure Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/ngap/ngap.cnf b/epan/dissectors/asn1/ngap/ngap.cnf
index 8657a5690a..b45ec63c02 100644
--- a/epan/dissectors/asn1/ngap/ngap.cnf
+++ b/epan/dissectors/asn1/ngap/ngap.cnf
@@ -1111,11 +1111,20 @@ ExtendedPacketDelayBudget DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ngap_ExtendedPacke
&hf_ngap_primaryRATRestriction_nR_MEO,
&hf_ngap_primaryRATRestriction_nR_GEO,
&hf_ngap_primaryRATRestriction_nR_OTHERSAT,
+ &hf_ngap_primaryRATRestriction_e_UTRA_LEO,
+ NULL
+ };
+ static int * const fields2[] = {
+ &hf_ngap_primaryRATRestriction_e_UTRA_MEO,
+ &hf_ngap_primaryRATRestriction_e_UTRA_GEO,
+ &hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT,
&hf_ngap_primaryRATRestriction_reserved,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ngap_primaryRATRestriction);
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ if (tvb_reported_length(parameter_tvb) >= 2)
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN);
}
#.FN_BODY ExtendedRATRestrictionInformation/secondaryRATRestriction VAL_PTR=&parameter_tvb
diff --git a/epan/dissectors/asn1/ngap/packet-ngap-template.c b/epan/dissectors/asn1/ngap/packet-ngap-template.c
index 5f8e0481e7..d3004caa3d 100644
--- a/epan/dissectors/asn1/ngap/packet-ngap-template.c
+++ b/epan/dissectors/asn1/ngap/packet-ngap-template.c
@@ -9,7 +9,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 38.413 v17.7.0 (2023-12)
+ * References: 3GPP TS 38.413 v17.8.0 (2024-03)
*/
#include "config.h"
@@ -99,6 +99,10 @@ static int hf_ngap_primaryRATRestriction_nR_LEO;
static int hf_ngap_primaryRATRestriction_nR_MEO;
static int hf_ngap_primaryRATRestriction_nR_GEO;
static int hf_ngap_primaryRATRestriction_nR_OTHERSAT;
+static int hf_ngap_primaryRATRestriction_e_UTRA_LEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_MEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_GEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT;
static int hf_ngap_primaryRATRestriction_reserved;
static int hf_ngap_secondaryRATRestriction_e_UTRA;
static int hf_ngap_secondaryRATRestriction_nR;
@@ -532,8 +536,8 @@ static const enum_val_t ngap_lte_container_vals[] = {
};
/* Global variables */
-static range_t *gbl_ngapSctpRange = NULL;
-static gboolean ngap_dissect_container = TRUE;
+static range_t *gbl_ngapSctpRange;
+static bool ngap_dissect_container = true;
static gint ngap_dissect_target_ng_ran_container_as = NGAP_NG_RAN_CONTAINER_AUTOMATIC;
static gint ngap_dissect_lte_container_as = NGAP_LTE_CONTAINER_AUTOMATIC;
@@ -547,7 +551,7 @@ static dissector_table_t ngap_proc_sout_dissector_table;
static dissector_table_t ngap_proc_uout_dissector_table;
static dissector_table_t ngap_n2_ie_type_dissector_table;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
@@ -1219,9 +1223,25 @@ void proto_register_ngap(void) {
{ "nR-OTHERSAT", "ngap.primaryRATRestriction.nR_OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_LEO,
+ { "e-UTRA-LEO", "ngap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_MEO,
+ { "e-UTRA-MEO", "ngap.primaryRATRestriction.e_UTRA_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_GEO,
+ { "e-UTRA-GEO", "ngap.primaryRATRestriction.e_UTRA_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT,
+ { "e-UTRA-OTHERSAT", "ngap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20,
+ NULL, HFILL }},
{ &hf_ngap_primaryRATRestriction_reserved,
{ "reserved", "ngap.primaryRATRestriction.reserved",
- FT_UINT8, BASE_HEX, NULL, 0x01,
+ FT_UINT8, BASE_HEX, NULL, 0x1f,
NULL, HFILL }},
{ &hf_ngap_secondaryRATRestriction_e_UTRA,
{ "e-UTRA", "ngap.secondaryRATRestriction.e_UTRA",
diff --git a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn
index d455877bce..c36117dbe9 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.331 V17.7.0 (2023-12)
+-- 3GPP TS 38.331 V17.8.0 (2024-03)
NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn
index 8dcd3248fd..b936258ebb 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.331 V17.7.0 (2023-12)
+-- 3GPP TS 38.331 V17.8.0 (2024-03)
NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
@@ -2320,8 +2320,8 @@ PerRAAttemptInfo-r16 ::= SEQUENCE {
]]
}
-SIB-Type-r17 ::= ENUMERATED {sibType2, sibType3, sibType4, sibType5, sibType9, sibType10-v1610, sibType11-v1610, sibType12-v1610,
- sibType13-v1610, sibType14-v1610, spare6, spare5, spare4, spare3, spare2, spare1}
+SIB-Type-r17 ::= ENUMERATED {sibType2, sibType3, sibType4, sibType5, sibType9, sibType10, sibType11, sibType12,
+ sibType13, sibType14, spare6, spare5, spare4, spare3, spare2, spare1}
RLF-Report-r16 ::= CHOICE {
nr-RLF-Report-r16 SEQUENCE {
@@ -6419,13 +6419,13 @@ MeasResultNR ::= SEQUENCE {
...,
[[
cgi-Info CGI-InfoNR OPTIONAL
- ]] ,
+ ]],
[[
choCandidate-r17 ENUMERATED {true} OPTIONAL,
choConfig-r17 SEQUENCE (SIZE (1..2)) OF CondTriggerConfig-r16 OPTIONAL,
triggeredEvent-r17 SEQUENCE {
timeBetweenEvents-r17 TimeBetweenEvent-r17 OPTIONAL,
- firstTriggeredEvent ENUMERATED {condFirstEvent, condSecondEvent} OPTIONAL
+ firstTriggeredEvent-r17 ENUMERATED {condFirstEvent, condSecondEvent} OPTIONAL
} OPTIONAL
]]
}
@@ -11746,6 +11746,8 @@ BandCombinationList-v1760 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandComb
BandCombinationList-v1770 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1770
+BandCombinationList-v1780 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1780
+
BandCombinationList-UplinkTxSwitch-r16 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-r16
BandCombinationList-UplinkTxSwitch-v1630 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1630
@@ -11774,6 +11776,8 @@ BandCombinationList-UplinkTxSwitch-v1760 ::= SEQUENCE (SIZE (1..maxBandComb)) OF
BandCombinationList-UplinkTxSwitch-v1770 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1770
+BandCombinationList-UplinkTxSwitch-v1780 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-UplinkTxSwitch-v1780
+
BandCombination ::= SEQUENCE {
bandList SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters,
featureSetCombination FeatureSetCombinationId,
@@ -11895,7 +11899,15 @@ BandCombination-v1760 ::= SEQUENCE {
BandCombination-v1770::= SEQUENCE {
bandList-v1770 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1770,
mrdc-Parameters-v1770 MRDC-Parameters-v1770 OPTIONAL,
- ca-ParametersNR-v1770 CA-ParametersNR-v1770 OPTIONAL}
+ ca-ParametersNR-v1770 CA-ParametersNR-v1770 OPTIONAL
+}
+
+BandCombination-v1780 ::= SEQUENCE {
+ ca-ParametersNR-v1780 CA-ParametersNR-v1780 OPTIONAL,
+ ca-ParametersNRDC-v1780 CA-ParametersNRDC-v1780 OPTIONAL,
+ bandList-v1780 SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1780 OPTIONAL,
+ mrdc-Parameters-v1780 MRDC-Parameters-v1770 OPTIONAL
+}
BandCombination-UplinkTxSwitch-r16 ::= SEQUENCE {
bandCombination-r16 BandCombination,
@@ -11972,6 +11984,10 @@ BandCombination-UplinkTxSwitch-v1770 ::= SEQUENCE {
bandCombination-v1770 BandCombination-v1770 OPTIONAL
}
+BandCombination-UplinkTxSwitch-v1780 ::= SEQUENCE {
+ bandCombination-v1780 BandCombination-v1780 OPTIONAL
+}
+
ULTxSwitchingBandPair-r16 ::= SEQUENCE {
bandIndexUL1-r16 INTEGER(1..maxSimultaneousBands),
bandIndexUL2-r16 INTEGER(1..maxSimultaneousBands),
@@ -12046,6 +12062,15 @@ BandParameters-v1770 ::= SEQUENCE {
ca-BandwidthClassUL-NR-r17 CA-BandwidthClassNR-r17 OPTIONAL
}
+BandParameters-v1780 ::= SEQUENCE {
+ ca-BandwidthClassDL-NR-r17 CA-BandwidthClassNR-r17 OPTIONAL,
+ ca-BandwidthClassUL-NR-r17 CA-BandwidthClassNR-r17 OPTIONAL,
+ supportedAggBW-FR2-r17 SEQUENCE {
+ supportedAggBW-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-UL-r17 SupportedAggBandwidth-r17 OPTIONAL
+ } OPTIONAL
+}
+
ScalingFactorSidelink-r16 ::= ENUMERATED {f0p4, f0p75, f0p8, f1}
IntraBandPowerClass-r16 ::= ENUMERATED {pc2, pc3, spare6, spare5, spare4, spare3, spare2, spare1}
@@ -12528,6 +12553,19 @@ CA-ParametersNR-v1770 ::= SEQUENCE {
parallelTxPUCCH-PUSCH-SamePriority-r17 ENUMERATED {supported} OPTIONAL
}
+CA-ParametersNR-v1780 ::= SEQUENCE {
+ parallelTxPUCCH-PUSCH-SamePriority-r17 ENUMERATED {supported} OPTIONAL,
+ supportedAggBW-FR1-r17 SEQUENCE {
+ scalingFactorSCS-r17 ENUMERATED {true} OPTIONAL,
+ supportedAggBW-FDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-FDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TDD-DL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TDD-UL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TotalDL-r17 SupportedAggBandwidth-r17 OPTIONAL,
+ supportedAggBW-TotalUL-r17 SupportedAggBandwidth-r17 OPTIONAL
+ } OPTIONAL
+}
+
CrossCarrierSchedulingSCell-SpCell-r17 ::= SEQUENCE {
supportedSCS-Combinations-r17 SEQUENCE {
scs15kHz-15kHz-r17 ENUMERATED {supported} OPTIONAL,
@@ -12707,6 +12745,10 @@ CA-ParametersNRDC-v1760 ::= SEQUENCE {
ca-ParametersNR-ForDC-v1760 CA-ParametersNR-v1760
}
+CA-ParametersNRDC-v1780 ::= SEQUENCE {
+ ca-ParametersNR-ForDC-v1780 CA-ParametersNR-v1780 OPTIONAL
+}
+
-- TAG-CA-PARAMETERS-NRDC-STOP
-- TAG-CARRIERAGGREGATIONVARIANT-START
@@ -13439,6 +13481,10 @@ FeatureSetDownlinkPerCC-v1730 ::= SEQUENCE {
dci-BroadcastWith16Repetitions-r17 ENUMERATED {supported} OPTIONAL
}
+FeatureSetDownlinkPerCC-v1780 ::= SEQUENCE {
+ supportedBandwidthDL-v1780 SupportedBandwidth-v1700 OPTIONAL
+}
+
MultiDCI-MultiTRP-r16 ::= SEQUENCE {
maxNumberCORESET-r16 ENUMERATED {n2, n3, n4, n5},
maxNumberCORESETPerPoolIndex-r16 INTEGER (1..3),
@@ -13515,6 +13561,10 @@ FeatureSets ::= SEQUENCE {
[[
featureSetsDownlink-v1730 SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink-v1730 OPTIONAL,
featureSetsDownlinkPerCC-v1730 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC-v1730 OPTIONAL
+ ]],
+ [[
+ featureSetsDownlinkPerCC-v1780 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC-v1780 OPTIONAL,
+ featureSetsUplinkPerCC-v1780 SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC-v1780 OPTIONAL
]]
}
@@ -13827,6 +13877,10 @@ FeatureSetUplinkPerCC-v1700 ::= SEQUENCE {
supportedBandwidthUL-v1710 SupportedBandwidth-v1700 OPTIONAL
}
+FeatureSetUplinkPerCC-v1780 ::= SEQUENCE {
+ supportedBandwidthUL-v1780 SupportedBandwidth-v1700 OPTIONAL
+}
+
-- TAG-FEATURESETUPLINKPERCC-STOP
-- TAG-FEATURESETUPLINKPERCC-ID-START
@@ -15784,8 +15838,12 @@ RF-Parameters ::= SEQUENCE {
supportedBandCombinationList-UplinkTxSwitch-v1760 BandCombinationList-UplinkTxSwitch-v1760 OPTIONAL
]],
[[
- supportedBandCombinationList-v1770 BandCombinationList-v1770 OPTIONAL,
- supportedBandCombinationList-UplinkTxSwitch-v1770 BandCombinationList-UplinkTxSwitch-v1770 OPTIONAL
+ dummy1 BandCombinationList-v1770 OPTIONAL,
+ dummy2 BandCombinationList-UplinkTxSwitch-v1770 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1780 BandCombinationList-v1780 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1780 BandCombinationList-UplinkTxSwitch-v1780 OPTIONAL
]]
}
@@ -16267,8 +16325,13 @@ RF-ParametersMRDC ::= SEQUENCE {
supportedBandCombinationList-UplinkTxSwitch-v1740 BandCombinationList-UplinkTxSwitch-v1740 OPTIONAL
]],
[[
- supportedBandCombinationList-v1770 BandCombinationList-v1770 OPTIONAL,
- supportedBandCombinationList-UplinkTxSwitch-v1770 BandCombinationList-UplinkTxSwitch-v1770 OPTIONAL
+ dummy1 BandCombinationList-v1770 OPTIONAL,
+ dummy2 BandCombinationList-UplinkTxSwitch-v1770 OPTIONAL
+ ]],
+ [[
+ supportedBandCombinationList-v1780 BandCombinationList-v1780 OPTIONAL,
+ supportedBandCombinationListNEDC-Only-v1780 BandCombinationList-v1780 OPTIONAL,
+ supportedBandCombinationList-UplinkTxSwitch-v1780 BandCombinationList-UplinkTxSwitch-v1780 OPTIONAL
]]
}
@@ -16581,6 +16644,17 @@ SRS-SwitchingTimeEUTRA ::= SEQUENCE {
OPTIONAL
}
-- TAG-SRS-SWITCHINGTIMEEUTRA-STOP
+-- TAG-SUPPORTEDAGGBANDWIDTH-START
+
+SupportedAggBandwidth-r17 ::= CHOICE {
+ fr1-r17 ENUMERATED {mhz20, mhz30, mhz35, mhz40, mhz50, mhz60, mhz70, mhz80, mhz90, mhz100, mhz110, mhz120, mhz130, mhz140,
+ mhz150, mhz160, mhz180, mhz200, mhz220, mhz230, mhz250, mhz280, mhz290, mhz300, mhz350, mhz400, mhz450,
+ mhz500, mhz600, mhz700, mhz800, spare1},
+ fr2-r17 ENUMERATED {mhz200, mhz300, mhz400, mhz500, mhz600, mhz700, mhz800, mhz900, mhz1000, mhz1100, mhz1200, mhz1300,
+ mhz1400, mhz1500, mhz1600, mhz1700, mhz1800, mhz1900, mhz2000, mhz2100, mhz2200, mhz2300, mhz2400,
+ spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}
+}
+-- TAG-SUPPORTEDAGGBANDWIDTH-STOP
-- TAG-SUPPORTEDBANDWIDTH-START
SupportedBandwidth ::= CHOICE {
@@ -18657,7 +18731,7 @@ SL-SyncConfigList-r16 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r16)) OF
SL-SyncConfig-r16 ::= SEQUENCE {
sl-SyncRefMinHyst-r16 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Need R
sl-SyncRefDiffHyst-r16 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Need R
- sl-filterCoefficient-r16 FilterCoefficient OPTIONAL, -- Need R
+ sl-FilterCoefficient-r16 FilterCoefficient OPTIONAL, -- Need R
sl-SSB-TimeAllocation1-r16 SL-SSB-TimeAllocation-r16 OPTIONAL, -- Need R
sl-SSB-TimeAllocation2-r16 SL-SSB-TimeAllocation-r16 OPTIONAL, -- Need R
sl-SSB-TimeAllocation3-r16 SL-SSB-TimeAllocation-r16 OPTIONAL, -- Need R
diff --git a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn
index ab8037c343..883c4a6bad 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-DiscoveryMessage.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.331 V17.7.0 (2023-12)
+-- 3GPP TS 38.331 V17.8.0 (2024-03)
NR-Sidelink-DiscoveryMessage DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn
index a6361dba92..c9b1e48a48 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-Sidelink-Preconf.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.331 V17.7.0 (2023-12)
+-- 3GPP TS 38.331 V17.8.0 (2024-03)
NR-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn
index 17995a9a38..b56fe775b7 100644
--- a/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn
+++ b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.331 V17.7.0 (2023-12)
+-- 3GPP TS 38.331 V17.8.0 (2024-03)
NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn b/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn
index c45f2c816e..c5d6b99443 100644
--- a/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn
+++ b/epan/dissectors/asn1/nr-rrc/PC5-RRC-Definitions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.331 V17.7.0 (2023-12)
+-- 3GPP TS 38.331 V17.8.0 (2024-03)
PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
index 5de06a6c0e..d8cca131b5 100644
--- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
+++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf
@@ -207,27 +207,27 @@ SchedulingRequestResourceConfig
SDT-MAC-PHY-CG-Config-r17
SidelinkParametersNR-r16
SidelinkUEInformationNR-r16
-SIB1
-SIB2
-SIB3
-SIB4
-SIB5
-SIB6
-SIB7
-SIB8
-SIB9
-SIB10-r16
-SIB11-r16
-SIB12-r16
-SIB13-r16
-SIB14-r16
-SIB15-r17
-SIB16-r17
-SIB17-r17
-SIB18-r17
-SIB19-r17
-SIB20-r17
-SIB21-r17
+SIB1 @sib1
+SIB2 @sib2
+SIB3 @sib3
+SIB4 @sib4
+SIB5 @sib5
+SIB6 @sib6
+SIB7 @sib7
+SIB8 @sib8
+SIB9 @sib9
+SIB10-r16 @sib10
+SIB11-r16 @sib11
+SIB12-r16 @sib12
+SIB13-r16 @sib13
+SIB14-r16 @sib14
+SIB15-r17 @sib15
+SIB16-r17 @sib16
+SIB17-r17 @sib17
+SIB18-r17 @sib18
+SIB19-r17 @sib21
+SIB20-r17 @sib22
+SIB21-r17 @sib23
SL-ConfigDedicatedEUTRA-Info-r16
SL-ConfigDedicatedNR-r16
SL-MeasResultListRelay-r17
@@ -724,73 +724,73 @@ RAT-Type TYPE_PREFIX
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MIB");
#.FN_HDR SystemInformation
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [ ");
#.FN_FTR SystemInformation
- col_append_str(actx->pinfo->cinfo, COL_INFO, " ]");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "]");
#.FN_HDR SIB2
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB2");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB2 ");
#.FN_HDR SIB3
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB3");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB3 ");
#.FN_HDR SIB4
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB4");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB4 ");
#.FN_HDR SIB5
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB5");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB5 ");
#.FN_HDR SIB6
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB6");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB6 ");
#.FN_HDR SIB7
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB7");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB7 ");
#.FN_HDR SIB8
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB8");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB8 ");
#.FN_HDR SIB9
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB9");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB9 ");
#.FN_HDR SIB10-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB10");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB10 ");
#.FN_HDR SIB11-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB11");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB11");
#.FN_HDR SIB12-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB12");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB12 ");
#.FN_HDR SIB13-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB13");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB13 ");
#.FN_HDR SIB14-r16
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB14");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB14 ");
#.FN_HDR SIB15-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB15");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB15 ");
#.FN_HDR SIB16-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB16");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB16 ");
#.FN_HDR SIB17-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB17");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17 ");
#.FN_HDR SIB18-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB18");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB18 ");
#.FN_HDR SIB19-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB19");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB19 ");
#.FN_HDR SIB20-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB20");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB20 ");
#.FN_HDR SIB21-r17
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB21");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB21 ");
#.FN_HDR SIB1
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1 ");
#.FN_HDR RRCReject
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reject");
@@ -1968,10 +1968,20 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
%(DEFAULT_BODY)s
/* Need UE identifier */
p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
- if (p_ueid != NULL && drb_mapping->drbid) {
+ if (p_ueid != NULL && drb_mapping->rbid) {
drb_mapping->ueid = *p_ueid;
- /* Tell MAC about this mapping */
- set_mac_nr_bearer_mapping(drb_mapping);
+ if (drb_mapping->is_drb) {
+ /* Tell MAC about this mapping */
+ set_mac_nr_bearer_mapping(drb_mapping);
+ }
+ else if (drb_mapping->lcid_present && drb_mapping->lcid==3) {
+ /* Tell MAC that LCID 3 is for SRB-3 */
+ set_mac_nr_srb3_in_use(drb_mapping->ueid);
+ }
+ else if (drb_mapping->lcid_present && drb_mapping->lcid==4) {
+ /* Tell MAC that LCID 4 is for SRB-4 */
+ set_mac_nr_srb4_in_use(drb_mapping->ueid);
+ }
}
drb_mapping->active = FALSE;
@@ -1979,7 +1989,30 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
guint32 value;
%(DEFAULT_BODY)s
if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
- nr_rrc_get_private_data(actx)->drb_rlc_mapping.drbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = TRUE;
+ }
+ else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (guint8)value;
+ }
+
+#.FN_BODY SRB-Identity VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = FALSE;
+ }
+ else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (guint8)value;
+ }
+
+#.FN_BODY SRB-Identity-v1700 VAL_PTR=&value
+ guint32 value;
+%(DEFAULT_BODY)s
+ if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = FALSE;
}
else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (guint8)value;
@@ -2192,7 +2225,7 @@ CA-ParametersEUTRA-v1570/dl-1024QAM-TotalWeightedLayers DISPLAY=BASE_CUSTOM STRI
dissect_lte_rrc_MeasResultSCG_FailureMRDC_r15_PDU(meas_result_scg_fail_mrdc_tvb, actx->pinfo, subtree, NULL);
}
-#.FN_BODY SecurityAlgorithmConfig
+#.FN_BODY SecurityConfigSMC/securityAlgorithmConfig
guint16 *p_ueid;
pdcp_nr_security_info_t *p_security_algorithms;
%(DEFAULT_BODY)s
diff --git a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
index 7a208a48f7..13f4683f18 100644
--- a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
+++ b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c
@@ -1,7 +1,7 @@
/* packet-nr-rrc-template.c
* NR;
* Radio Resource Control (RRC) protocol specification
- * (3GPP TS 38.331 V17.7.0 Release 17) packet dissection
+ * (3GPP TS 38.331 V17.8.0 Release 17) packet dissection
* Copyright 2018-2024, Pascal Quantin
*
* Wireshark - Network traffic analyzer
@@ -46,18 +46,18 @@
void proto_register_nr_rrc(void);
void proto_reg_handoff_nr_rrc(void);
-static dissector_handle_t nas_5gs_handle = NULL;
-static dissector_handle_t lte_rrc_conn_reconf_handle = NULL;
-static dissector_handle_t lte_rrc_conn_reconf_compl_handle = NULL;
-static dissector_handle_t lte_rrc_ul_dcch_handle = NULL;
-static dissector_handle_t lte_rrc_dl_dcch_handle = NULL;
+static dissector_handle_t nas_5gs_handle;
+static dissector_handle_t lte_rrc_conn_reconf_handle;
+static dissector_handle_t lte_rrc_conn_reconf_compl_handle;
+static dissector_handle_t lte_rrc_ul_dcch_handle;
+static dissector_handle_t lte_rrc_dl_dcch_handle;
-static wmem_map_t *nr_rrc_etws_cmas_dcs_hash = NULL;
+static wmem_map_t *nr_rrc_etws_cmas_dcs_hash;
static reassembly_table nr_rrc_sib7_reassembly_table;
static reassembly_table nr_rrc_sib8_reassembly_table;
-static gboolean nr_rrc_nas_in_root_tree;
+static bool nr_rrc_nas_in_root_tree;
extern int proto_mac_nr;
extern int proto_rlc_nr;
@@ -1085,7 +1085,7 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.measgapconfig_msg", dissect_nr_rrc_measgapconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.handoverpreparationinformation_msg", dissect_nr_rrc_handoverpreparationinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.handovercommand_msg", dissect_nr_rrc_handovercommand_msg, proto_nr_rrc);
-
+ /*#include "packet-nr-rrc-dis-reg.c" */
#include "packet-nr-rrc-dis-reg.c"
nr_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(),
diff --git a/epan/dissectors/asn1/p7/packet-p7-template.c b/epan/dissectors/asn1/p7/packet-p7-template.c
index 04851e18f9..83940f0313 100644
--- a/epan/dissectors/asn1/p7/packet-p7-template.c
+++ b/epan/dissectors/asn1/p7/packet-p7-template.c
@@ -33,7 +33,7 @@
void proto_register_p7(void);
void proto_reg_handoff_p7(void);
-static int seqno = 0;
+static int seqno;
/* Initialize the protocol and registered fields */
static int proto_p7;
diff --git a/epan/dissectors/asn1/pcap/packet-pcap-template.c b/epan/dissectors/asn1/pcap/packet-pcap-template.c
index 779924c552..5eb71b6212 100644
--- a/epan/dissectors/asn1/pcap/packet-pcap-template.c
+++ b/epan/dissectors/asn1/pcap/packet-pcap-template.c
@@ -42,7 +42,7 @@ void proto_reg_handoff_pcap(void);
#include "packet-pcap-val.h"
-static dissector_handle_t pcap_handle = NULL;
+static dissector_handle_t pcap_handle;
/* Initialize the protocol and registered fields */
static int proto_pcap;
diff --git a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
index 8202b09cbc..bd06151d1a 100644
--- a/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
+++ b/epan/dissectors/asn1/pkcs12/packet-pkcs12-template.c
@@ -50,11 +50,11 @@ static gint ett_decrypted_pbe;
static expert_field ei_pkcs12_octet_string_expected;
-static const char *object_identifier_id = NULL;
-static int iteration_count = 0;
-static tvbuff_t *salt = NULL;
-static const char *password = NULL;
-static gboolean try_null_password = FALSE;
+static const char *object_identifier_id;
+static int iteration_count;
+static tvbuff_t *salt;
+static const char *password;
+static bool try_null_password;
static int dissect_AuthenticatedSafe_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
static int dissect_SafeContents_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
diff --git a/epan/dissectors/asn1/pres/packet-pres-template.c b/epan/dissectors/asn1/pres/packet-pres-template.c
index 6fa6ff85a9..8e88177206 100644
--- a/epan/dissectors/asn1/pres/packet-pres-template.c
+++ b/epan/dissectors/asn1/pres/packet-pres-template.c
@@ -41,12 +41,12 @@ void proto_reg_handoff_pres(void);
/* Initialize the protocol and registered fields */
static int proto_pres;
-/* Initialize the connectionles protocol */
+/* Initialize the connectionless protocol */
static int proto_clpres;
/* pointers for acse dissector */
-proto_tree *global_tree = NULL;
-packet_info *global_pinfo = NULL;
+proto_tree *global_tree;
+packet_info *global_pinfo;
static const char *abstract_syntax_name_oid;
static guint32 presentation_context_identifier;
@@ -57,7 +57,7 @@ typedef struct _pres_ctx_oid_t {
char *oid;
guint32 idx;
} pres_ctx_oid_t;
-static wmem_map_t *pres_ctx_oid_table = NULL;
+static wmem_map_t *pres_ctx_oid_table;
typedef struct _pres_user_t {
guint ctx_id;
diff --git a/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c b/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
index fb148cbeea..20b6b20a63 100644
--- a/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
+++ b/epan/dissectors/asn1/q932-ros/packet-q932-ros-template.c
@@ -37,7 +37,7 @@ static expert_field ei_ros_undecoded;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t data_handle = NULL;
+static dissector_handle_t data_handle;
/* Global variables */
static rose_ctx_t *rose_ctx_tmp;
diff --git a/epan/dissectors/asn1/qsig/packet-qsig-template.c b/epan/dissectors/asn1/qsig/packet-qsig-template.c
index 54deedf269..1da883a306 100644
--- a/epan/dissectors/asn1/qsig/packet-qsig-template.c
+++ b/epan/dissectors/asn1/qsig/packet-qsig-template.c
@@ -311,10 +311,10 @@ static expert_field ei_qsig_unsupported_error_type;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t q931_ie_handle = NULL;
+static dissector_handle_t q931_ie_handle;
/* Global variables */
-static const char *extension_oid = NULL;
+static const char *extension_oid;
/* Dissector tables */
static dissector_table_t extension_dissector_table;
@@ -612,7 +612,7 @@ void proto_register_qsig(void) {
FT_UINT16, BASE_DEC, VALS(qsig_str_service), 0x0,
"Supplementary Service", HFILL }},
{ &hf_qsig_error, { "Error", "qsig.error",
- FT_UINT8, BASE_DEC, VALS(qsig_str_error), 0x0,
+ FT_UINT16, BASE_DEC, VALS(qsig_str_error), 0x0,
NULL, HFILL }},
{ &hf_qsig_ie_type, { "Type", "qsig.ie.type",
FT_UINT8, BASE_HEX, NULL, 0x0,
diff --git a/epan/dissectors/asn1/ranap/packet-ranap-template.c b/epan/dissectors/asn1/ranap/packet-ranap-template.c
index 87bd1c32a0..f41ce91c98 100644
--- a/epan/dissectors/asn1/ranap/packet-ranap-template.c
+++ b/epan/dissectors/asn1/ranap/packet-ranap-template.c
@@ -54,10 +54,10 @@ void proto_reg_handoff_ranap(void);
static int proto_ranap;
/* initialise sub-dissector handles */
-static dissector_handle_t rrc_s_to_trnc_handle = NULL;
-static dissector_handle_t rrc_t_to_srnc_handle = NULL;
-static dissector_handle_t rrc_ho_to_utran_cmd = NULL;
-static dissector_handle_t bssgp_handle = NULL;
+static dissector_handle_t rrc_s_to_trnc_handle;
+static dissector_handle_t rrc_t_to_srnc_handle;
+static dissector_handle_t rrc_ho_to_utran_cmd;
+static dissector_handle_t bssgp_handle;
static int hf_ranap_transportLayerAddress_ipv4;
static int hf_ranap_transportLayerAddress_ipv6;
@@ -136,7 +136,7 @@ static void private_data_set_binding_id_port(asn1_ctx_t *actx, guint16 binding_i
static guint32 ProcedureCode;
static guint32 ProtocolIE_ID;
static guint32 ProtocolExtensionID;
-static gboolean glbl_dissect_container = FALSE;
+static bool glbl_dissect_container;
static dissector_handle_t ranap_handle;
@@ -163,7 +163,7 @@ static dissector_handle_t ranap_handle;
#define SOUT (2U<<16)
#define SPECIAL (4U<<16)
-int pdu_type = 0; /* 0 means wildcard */
+int pdu_type; /* 0 means wildcard */
/* Dissector tables */
static dissector_table_t ranap_ies_dissector_table;
diff --git a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
index 276e642d1b..a16abcb24b 100644
--- a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
+++ b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c
@@ -49,9 +49,9 @@ typedef struct {
const char *obj_id;
} rnsap_private_data_t;
-static dissector_handle_t ranap_handle = NULL;
-static dissector_handle_t rrc_dl_ccch_handle = NULL;
-static dissector_handle_t rrc_ul_ccch_handle = NULL;
+static dissector_handle_t ranap_handle;
+static dissector_handle_t rrc_dl_ccch_handle;
+static dissector_handle_t rrc_ul_ccch_handle;
/* Initialize the protocol and registered fields */
static int proto_rnsap;
diff --git a/epan/dissectors/asn1/ros/packet-ros-template.c b/epan/dissectors/asn1/ros/packet-ros-template.c
index 69bf44b991..708e031bcd 100644
--- a/epan/dissectors/asn1/ros/packet-ros-template.c
+++ b/epan/dissectors/asn1/ros/packet-ros-template.c
@@ -30,11 +30,11 @@ void proto_reg_handoff_ros(void);
/* Initialize the protocol and registered fields */
static int proto_ros;
-static proto_tree *top_tree=NULL;
+static proto_tree *top_tree;
static guint32 opcode;
static guint32 invokeid;
-static dissector_handle_t ros_handle = NULL;
+static dissector_handle_t ros_handle;
typedef struct ros_conv_info_t {
wmem_map_t *unmatched; /* unmatched operations */
@@ -72,9 +72,9 @@ static gint ett_ros_unbind_error;
static expert_field ei_ros_dissector_oid_not_implemented;
static expert_field ei_ros_unknown_ros_pdu;
-static dissector_table_t ros_oid_dissector_table=NULL;
+static dissector_table_t ros_oid_dissector_table;
-static wmem_map_t *protocol_table=NULL;
+static wmem_map_t *protocol_table;
void
register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, gboolean uses_rtse)
diff --git a/epan/dissectors/asn1/rrc/packet-rrc-template.c b/epan/dissectors/asn1/rrc/packet-rrc-template.c
index 886794376e..06603e2abb 100644
--- a/epan/dissectors/asn1/rrc/packet-rrc-template.c
+++ b/epan/dissectors/asn1/rrc/packet-rrc-template.c
@@ -52,11 +52,11 @@ extern int proto_fp; /*Handler to FP*/
extern int proto_umts_mac; /*Handler to MAC*/
extern int proto_umts_rlc; /*Handler to RLC*/
-GTree * hsdsch_muxed_flows = NULL;
-GTree * rrc_ciph_info_tree = NULL;
-wmem_tree_t* rrc_global_urnti_crnti_map = NULL;
+GTree * hsdsch_muxed_flows;
+GTree * rrc_ciph_info_tree;
+wmem_tree_t* rrc_global_urnti_crnti_map;
static int msg_type _U_;
-static gboolean rrc_nas_in_root_tree;
+static bool rrc_nas_in_root_tree;
enum rrc_sib_segment_type {
RRC_SIB_SEG_NO_SEGMENT = 0,
@@ -289,16 +289,16 @@ static void private_data_set_curr_sib_type(asn1_ctx_t *actx, guint32 curr_sib_ty
/*****************************************************************************/
static dissector_handle_t gsm_a_dtap_handle;
-static dissector_handle_t rrc_ue_radio_access_cap_info_handle=NULL;
-static dissector_handle_t rrc_pcch_handle=NULL;
-static dissector_handle_t rrc_ul_ccch_handle=NULL;
-static dissector_handle_t rrc_dl_ccch_handle=NULL;
-static dissector_handle_t rrc_ul_dcch_handle=NULL;
-static dissector_handle_t rrc_dl_dcch_handle=NULL;
-static dissector_handle_t rrc_bcch_fach_handle=NULL;
-static dissector_handle_t lte_rrc_ue_eutra_cap_handle=NULL;
-static dissector_handle_t lte_rrc_dl_dcch_handle=NULL;
-static dissector_handle_t gsm_rlcmac_dl_handle=NULL;
+static dissector_handle_t rrc_ue_radio_access_cap_info_handle;
+static dissector_handle_t rrc_pcch_handle;
+static dissector_handle_t rrc_ul_ccch_handle;
+static dissector_handle_t rrc_dl_ccch_handle;
+static dissector_handle_t rrc_ul_dcch_handle;
+static dissector_handle_t rrc_dl_dcch_handle;
+static dissector_handle_t rrc_bcch_fach_handle;
+static dissector_handle_t lte_rrc_ue_eutra_cap_handle;
+static dissector_handle_t lte_rrc_dl_dcch_handle;
+static dissector_handle_t gsm_rlcmac_dl_handle;
/* Forward declarations */
void proto_register_rrc(void);
diff --git a/epan/dissectors/asn1/rtse/packet-rtse-template.c b/epan/dissectors/asn1/rtse/packet-rtse-template.c
index 3ac04ceefd..33b35f786c 100644
--- a/epan/dissectors/asn1/rtse/packet-rtse-template.c
+++ b/epan/dissectors/asn1/rtse/packet-rtse-template.c
@@ -39,10 +39,10 @@ static int proto_rtse;
static gboolean open_request=FALSE;
static guint32 app_proto=0;
-static proto_tree *top_tree=NULL;
+static proto_tree *top_tree;
/* Preferences */
-static gboolean rtse_reassemble = TRUE;
+static bool rtse_reassemble = true;
#include "packet-rtse-hf.c"
@@ -54,8 +54,8 @@ static expert_field ei_rtse_dissector_oid_not_implemented;
static expert_field ei_rtse_unknown_rtse_pdu;
static expert_field ei_rtse_abstract_syntax;
-static dissector_table_t rtse_oid_dissector_table=NULL;
-static dissector_handle_t rtse_handle = NULL;
+static dissector_table_t rtse_oid_dissector_table;
+static dissector_handle_t rtse_handle;
static gint ett_rtse_unknown;
static reassembly_table rtse_reassembly_table;
@@ -218,7 +218,7 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
if (conversation != NULL) {
rtse_id = conversation->conv_index;
}
- session->rtse_reassemble = TRUE;
+ session->rtse_reassemble = true;
}
if (rtse_reassemble && session->spdu_type == SES_MAJOR_SYNC_POINT) {
frag_msg = fragment_end_seq_next (&rtse_reassembly_table,
diff --git a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
index 6f03db3c0f..298eaa99a7 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V17.6.0 (2024-03)
-- 9.3.5 Common Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
index 3e111932e8..f7682275f4 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V17.6.0 (2024-03)
-- 9.3.6 Constant Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
index 9b53fe64cf..1bb102a08a 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V17.6.0 (2024-03)
-- 9.3.7 Container Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
index ab6c5a8aa0..2f83e6ecd6 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V17.6.0 (2024-03)
-- 9.3.4 Information Element Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
index f781fd7ad0..29a4dd2211 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V17.6.0 (2024-03)
-- 9.3.3 PDU Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
index f3956daa01..132e71bd3d 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V17.6.0 (2024-03)
-- 9.3.2 Elementary Procedure Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
index 73d734feb7..12b8486dae 100644
--- a/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
+++ b/epan/dissectors/asn1/s1ap/S1AP-SonTransfer-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.413 V17.5.0 (2023-06)
+-- 3GPP TS 36.413 V17.6.0 (2024-03)
-- B.2 ASN.1 definition
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
index aa1143c979..6f9936a946 100644
--- a/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
+++ b/epan/dissectors/asn1/s1ap/packet-s1ap-template.c
@@ -10,7 +10,7 @@
*
* Based on the RANAP dissector
*
- * References: 3GPP TS 36.413 V17.5.0 (2023-06)
+ * References: 3GPP TS 36.413 V17.6.0 (2024-03)
*/
#include "config.h"
@@ -121,7 +121,10 @@ static int hf_s1ap_rAT_RestrictionInformation_LEO;
static int hf_s1ap_rAT_RestrictionInformation_MEO;
static int hf_s1ap_rAT_RestrictionInformation_GEO;
static int hf_s1ap_rAT_RestrictionInformation_OTHERSAT;
-static int hf_s1ap_rAT_RestrictionInformation_Reserved;
+static int hf_s1ap_rAT_RestrictionInformation_NR_LEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_MEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_GEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT;
#include "packet-s1ap-hf.c"
/* Initialize the subtree pointers */
@@ -229,7 +232,7 @@ enum {
};
/* Global variables */
-static gboolean g_s1ap_dissect_container = TRUE;
+static bool g_s1ap_dissect_container = true;
static gint g_s1ap_dissect_lte_container_as = S1AP_LTE_CONTAINER_AUTOMATIC;
static dissector_handle_t s1ap_handle;
@@ -337,11 +340,6 @@ s1ap_EUTRANRoundTripDelayEstimationInfo_fmt(gchar *s, guint32 v)
snprintf(s, ITEM_LABEL_LENGTH, "%uTs (%u)", 16*v, v);
}
-static const true_false_string s1ap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
static void
s1ap_Packet_LossRate_fmt(gchar *s, guint32 v)
{
@@ -631,43 +629,43 @@ void proto_register_s1ap(void) {
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M1,
{ "M1", "s1ap.measurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M2,
{ "M2", "s1ap.measurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M3,
{ "M3", "s1ap.measurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M4,
{ "M4", "s1ap.measurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M5,
{ "M5", "s1ap.measurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "s1ap.measurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M6,
{ "M6", "s1ap.measurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M7,
{ "M7", "s1ap.measurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_GNSS,
{ "GNSS", "s1ap.MDT_Location_Info.GNSS",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_E_CID,
{ "E-CID", "s1ap.MDT_Location_Info.E_CID",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_Reserved,
{ "Reserved", "s1ap.MDT_Location_Info.Reserved",
@@ -733,9 +731,21 @@ void proto_register_s1ap(void) {
{ "OTHERSAT", "s1ap.rAT_RestrictionInformation.OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x10,
NULL, HFILL }},
- { &hf_s1ap_rAT_RestrictionInformation_Reserved,
- { "Reserved", "s1ap.rAT_RestrictionInformation.Reserved",
- FT_UINT8, BASE_HEX, NULL, 0x0f,
+ { &hf_s1ap_rAT_RestrictionInformation_NR_LEO,
+ { "NR-LEO", "s1ap.rAT_RestrictionInformation.NR_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x08,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_MEO,
+ { "NR-MEO", "s1ap.rAT_RestrictionInformation.NR_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_GEO,
+ { "NR-GEO", "s1ap.rAT_RestrictionInformation.NR_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT,
+ { "NR-OTHERSAT", "s1ap.rAT_RestrictionInformation.NR_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
NULL, HFILL }},
#include "packet-s1ap-hfarr.c"
};
diff --git a/epan/dissectors/asn1/s1ap/s1ap.cnf b/epan/dissectors/asn1/s1ap/s1ap.cnf
index 61cde3a23a..322d3888a9 100644
--- a/epan/dissectors/asn1/s1ap/s1ap.cnf
+++ b/epan/dissectors/asn1/s1ap/s1ap.cnf
@@ -722,7 +722,10 @@ Hysteresis DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(s1ap_Hysteresis_fmt)
&hf_s1ap_rAT_RestrictionInformation_MEO,
&hf_s1ap_rAT_RestrictionInformation_GEO,
&hf_s1ap_rAT_RestrictionInformation_OTHERSAT,
- &hf_s1ap_rAT_RestrictionInformation_Reserved,
+ &hf_s1ap_rAT_RestrictionInformation_NR_LEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_MEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_GEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_rAT_RestrictionInformation);
diff --git a/epan/dissectors/asn1/sabp/packet-sabp-template.c b/epan/dissectors/asn1/sabp/packet-sabp-template.c
index 2ba18a36e3..298d417bee 100644
--- a/epan/dissectors/asn1/sabp/packet-sabp-template.c
+++ b/epan/dissectors/asn1/sabp/packet-sabp-template.c
@@ -179,7 +179,7 @@ dissect_sabp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
guint32 type_length, msg_len;
guint tvb_length;
int bit_offset;
- gboolean is_fragmented;
+ bool is_fragmented;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
diff --git a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
index 0bf0c836d7..c7a74eff13 100644
--- a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
+++ b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
@@ -36,7 +36,7 @@ void proto_reg_handoff_sbc_ap(void);
* The registered payload protocol identifier for SBc-AP is 24.
*/
#define SBC_AP_PORT 29168
-static dissector_handle_t sbc_ap_handle=NULL;
+static dissector_handle_t sbc_ap_handle;
#include "packet-sbc-ap-val.h"
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
index 2270128f54..78bb90bab1 100644
--- a/epan/dissectors/asn1/snmp/packet-snmp-template.c
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c
@@ -73,8 +73,8 @@ static int snmp_tap;
static int proto_snmp;
static int proto_smux;
-static gboolean display_oid = TRUE;
-static gboolean snmp_var_in_tree = TRUE;
+static bool display_oid = true;
+static bool snmp_var_in_tree = true;
void proto_register_snmp(void);
void proto_reg_handoff_snmp(void);
@@ -147,10 +147,10 @@ static snmp_usm_decoder_t priv_protos[] = {
snmp_usm_priv_aes256
};
-static snmp_ue_assoc_t* ueas = NULL;
-static guint num_ueas = 0;
-static snmp_ue_assoc_t* localized_ues = NULL;
-static snmp_ue_assoc_t* unlocalized_ues = NULL;
+static snmp_ue_assoc_t* ueas;
+static guint num_ueas;
+static snmp_ue_assoc_t* localized_ues;
+static snmp_ue_assoc_t* unlocalized_ues;
/****/
/* Variables used for handling enterprise specific trap types */
@@ -159,21 +159,21 @@ typedef struct _snmp_st_assoc_t {
guint trap;
char *desc;
} snmp_st_assoc_t;
-static guint num_specific_traps = 0;
-static snmp_st_assoc_t *specific_traps = NULL;
-static const char *enterprise_oid = NULL;
-static guint generic_trap = 0;
-static guint32 snmp_version = 0;
+static guint num_specific_traps;
+static snmp_st_assoc_t *specific_traps;
+static const char *enterprise_oid;
+static guint generic_trap;
+static guint32 snmp_version;
static guint32 RequestID = -1;
-static snmp_usm_params_t usm_p = {FALSE,FALSE,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,FALSE};
+static snmp_usm_params_t usm_p;
#define TH_AUTH 0x01
#define TH_CRYPT 0x02
#define TH_REPORT 0x04
/* desegmentation of SNMP-over-TCP */
-static gboolean snmp_desegment = TRUE;
+static bool snmp_desegment = true;
/* Global variables */
@@ -732,7 +732,7 @@ dissect_snmp_VarBind(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
return dissect_unknown_ber(actx->pinfo, tvb, value_start, pt);
}
- /* Now, we know where everithing is */
+ /* Now, we know where everything is */
/* fetch ObjectName and its relative oid_info */
oid_bytes = (guint8*)tvb_memdup(actx->pinfo->pool, tvb, name_offset, name_len);
diff --git a/epan/dissectors/asn1/spnego/packet-spnego-template.c b/epan/dissectors/asn1/spnego/packet-spnego-template.c
index 9aa55ea2e1..9e07298617 100644
--- a/epan/dissectors/asn1/spnego/packet-spnego-template.c
+++ b/epan/dissectors/asn1/spnego/packet-spnego-template.c
@@ -66,7 +66,7 @@ static int hf_spnego_krb5_cfx_seq;
/* Global variables */
static const char *MechType_oid;
gssapi_oid_value *next_level_value;
-gboolean saw_mechanism = FALSE;
+gboolean saw_mechanism;
/* Initialize the subtree pointers */
@@ -111,6 +111,7 @@ static int dissect_spnego_NegTokenInit2(bool implicit_tag, tvbuff_t *tvb,
#define KRB_TOKEN_DELETE_SEC_CONTEXT 0x0201
#define KRB_TOKEN_TGT_REQ 0x0004
#define KRB_TOKEN_TGT_REP 0x0104
+#define KRB_TOKEN_IAKERB_PROXY 0x0105
#define KRB_TOKEN_CFX_GETMIC 0x0404
#define KRB_TOKEN_CFX_WRAP 0x0405
@@ -123,8 +124,9 @@ static const value_string spnego_krb5_tok_id_vals[] = {
{ KRB_TOKEN_DELETE_SEC_CONTEXT, "KRB5_GSS_Delete_sec_context" },
{ KRB_TOKEN_TGT_REQ, "KERB_TGT_REQUEST" },
{ KRB_TOKEN_TGT_REP, "KERB_TGT_REPLY" },
+ { KRB_TOKEN_IAKERB_PROXY, "KRB_TOKEN_IAKERB_PROXY" },
{ KRB_TOKEN_CFX_GETMIC, "KRB_TOKEN_CFX_GetMic" },
- { KRB_TOKEN_CFX_WRAP, "KRB_TOKEN_CFX_WRAP" },
+ { KRB_TOKEN_CFX_WRAP, "KRB_TOKEN_CFX_WRAP" },
{ 0, NULL}
};
@@ -303,6 +305,11 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
offset = dissect_spnego_krb5_cfx_wrap_base(tvb, offset, pinfo, subtree, token_id, encrypt_info);
break;
+ case KRB_TOKEN_IAKERB_PROXY:
+ offset = dissect_spnego_IAKERB_HEADER(FALSE, tvb, offset, &asn1_ctx, subtree, -1);
+ krb5_tvb = tvb_new_subset_remaining(tvb, offset);
+ offset += dissect_kerberos_main(krb5_tvb, pinfo, subtree, FALSE, NULL);
+ break;
default:
break;
@@ -1449,7 +1456,9 @@ void proto_reg_handoff_spnego(void) {
gssapi_init_oid("1.2.840.113554.1.2.2.3", proto_spnego_krb5, ett_spnego_krb5,
spnego_krb5_handle, spnego_krb5_wrap_handle,
"KRB5 - Kerberos 5 - User to User");
-
+ gssapi_init_oid("1.3.6.1.5.2.5", proto_spnego_krb5, ett_spnego_krb5,
+ spnego_krb5_handle, spnego_krb5_wrap_handle,
+ "KRB5 - IAKERB");
}
/*
diff --git a/epan/dissectors/asn1/spnego/spnego.asn b/epan/dissectors/asn1/spnego/spnego.asn
index b62973df2f..d70bdbed5b 100644
--- a/epan/dissectors/asn1/spnego/spnego.asn
+++ b/epan/dissectors/asn1/spnego/spnego.asn
@@ -101,4 +101,21 @@ InnerContextToken ::= ANY
-- END GSS-API DEFINITIONS
+
+-- https://datatracker.ietf.org/doc/html/draft-ietf-kitten-iakerb-03#section-3
+--
+-- Note that MIT Kerberos encodes target-realm as OCTET STRING
+--
+IAKERB-HEADER ::= SEQUENCE {
+ -- Note that the tag numbers start at 1, not 0, which would
+ -- be more conventional for Kerberos.
+ target-realm [1] UTF8String,
+ -- The name of the target realm.
+ cookie [2] OCTET STRING OPTIONAL,
+ -- Opaque data, if sent by the server,
+ -- MUST be copied by the client verbatim into
+ -- the next IAKRB_PROXY message.
+ ...
+}
+
END
diff --git a/epan/dissectors/asn1/spnego/spnego.cnf b/epan/dissectors/asn1/spnego/spnego.cnf
index 7558d0c755..7e4e656405 100644
--- a/epan/dissectors/asn1/spnego/spnego.cnf
+++ b/epan/dissectors/asn1/spnego/spnego.cnf
@@ -199,6 +199,39 @@ NegotiationToken
}
}
+
+#.FN_BODY IAKERB-HEADER/target-realm
+
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ /*
+ * MIT Kerberos sends an IAKERB-HEADER like this:
+ *
+ * <30 2B A1 29 04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30>
+ * 0 43: SEQUENCE {
+ * <A1 29 04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30 31 32>
+ * 2 41: [1] {
+ * <04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30 31 32 2D 4C>
+ * 4 39: OCTET STRING 'S2-W2012-L4.S1-W2012-L4.W2012R2-L4.BASE'
+ * : }
+ * : }
+ */
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class == BER_CLASS_UNI && pc == false && tag == BER_UNI_TAG_OCTETSTRING) {
+ proto_tree_add_text_internal(tree, tvb, offset, 1,
+ "target-realm encoded as OCTET STRING: MIT Kerberos?");
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_OCTETSTRING,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+ } else {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+ }
+
#.END
#
diff --git a/epan/dissectors/asn1/sv/packet-sv-template.c b/epan/dissectors/asn1/sv/packet-sv-template.c
index e50d8bb7d4..ffcb5f56aa 100644
--- a/epan/dissectors/asn1/sv/packet-sv-template.c
+++ b/epan/dissectors/asn1/sv/packet-sv-template.c
@@ -107,7 +107,7 @@ static expert_field ei_sv_mal_utctime;
static expert_field ei_sv_zero_pdu;
static expert_field ei_sv_mal_gmidentity;
-static gboolean sv_decode_data_as_phsmeas = FALSE;
+static bool sv_decode_data_as_phsmeas;
static dissector_handle_t sv_handle;
diff --git a/epan/dissectors/asn1/t124/packet-t124-template.c b/epan/dissectors/asn1/t124/packet-t124-template.c
index 5376ac4f0b..fc9157e5b8 100644
--- a/epan/dissectors/asn1/t124/packet-t124-template.c
+++ b/epan/dissectors/asn1/t124/packet-t124-template.c
@@ -35,7 +35,7 @@ void proto_reg_handoff_t124(void);
/* Initialize the protocol and registered fields */
static int proto_t124;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
#include "packet-t124-hf.c"
@@ -49,8 +49,8 @@ static int hf_t124_DomainMCSPDU_PDU;
static guint32 channelId = -1;
-static dissector_table_t t124_ns_dissector_table=NULL;
-static dissector_table_t t124_sd_dissector_table=NULL;
+static dissector_table_t t124_ns_dissector_table;
+static dissector_table_t t124_sd_dissector_table;
#include "packet-t124-ett.c"
diff --git a/epan/dissectors/asn1/t125/packet-t125-template.c b/epan/dissectors/asn1/t125/packet-t125-template.c
index 574a467f2c..4d3953be37 100644
--- a/epan/dissectors/asn1/t125/packet-t125-template.c
+++ b/epan/dissectors/asn1/t125/packet-t125-template.c
@@ -40,7 +40,7 @@ void proto_reg_handoff_t125(void);
/* Initialize the protocol and registered fields */
static int proto_t125;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
#include "packet-t125-hf.c"
/* Initialize the subtree pointers */
diff --git a/epan/dissectors/asn1/t38/packet-t38-template.c b/epan/dissectors/asn1/t38/packet-t38-template.c
index 190737e638..c1f9661b16 100644
--- a/epan/dissectors/asn1/t38/packet-t38-template.c
+++ b/epan/dissectors/asn1/t38/packet-t38-template.c
@@ -53,17 +53,17 @@ void proto_register_t38(void);
static int t38_tap;
/* dissect using the Pre Corrigendum T.38 ASN.1 specification (1998) */
-static gboolean use_pre_corrigendum_asn1_specification = TRUE;
+static bool use_pre_corrigendum_asn1_specification = true;
/* dissect packets that looks like RTP version 2 packets as RTP */
/* instead of as T.38. This may result in that some T.38 UPTL */
/* packets with sequence number values higher than 32767 may be */
/* shown as RTP packets. */
-static gboolean dissect_possible_rtpv2_packets_as_rtp = FALSE;
+static bool dissect_possible_rtpv2_packets_as_rtp;
/* Reassembly of T.38 PDUs over TPKT over TCP */
-static gboolean t38_tpkt_reassembly = TRUE;
+static bool t38_tpkt_reassembly = true;
/* Preference setting whether TPKT header is used when sending T.38 over TCP.
* The default setting is Maybe where the dissector will look on the first
@@ -130,7 +130,7 @@ static gint ett_data_fragments;
static expert_field ei_t38_malformed;
static gboolean primary_part = TRUE;
-static guint32 seq_number = 0;
+static guint32 seq_number;
/* Tables for reassembly of Data fragments. */
static reassembly_table data_reassembly_table;
@@ -164,11 +164,11 @@ typedef struct _fragment_key {
guint32 id;
} fragment_key;
-static conversation_t *p_conv= NULL;
-static t38_conv *p_t38_conv = NULL;
-static t38_conv *p_t38_packet_conv = NULL;
-static t38_conv_info *p_t38_conv_info = NULL;
-static t38_conv_info *p_t38_packet_conv_info = NULL;
+static conversation_t *p_conv;
+static t38_conv *p_t38_conv;
+static t38_conv *p_t38_packet_conv;
+static t38_conv_info *p_t38_conv_info;
+static t38_conv_info *p_t38_packet_conv_info;
/* RTP Version is the first 2 bits of the first octet in the UDP payload*/
#define RTP_VERSION(octet) ((octet) >> 6)
@@ -177,14 +177,14 @@ void proto_reg_handoff_t38(void);
static void show_setup_info(tvbuff_t *tvb, proto_tree *tree, t38_conv *p_t38_conv);
/* Preferences bool to control whether or not setup info should be shown */
-static gboolean global_t38_show_setup_info = TRUE;
+static bool global_t38_show_setup_info = true;
/* Can tap up to 4 T38 packets within same packet */
/* We only tap the primary part, not the redundancy */
#define MAX_T38_MESSAGES_IN_PACKET 4
static t38_packet_info t38_info_arr[MAX_T38_MESSAGES_IN_PACKET];
static int t38_info_current=0;
-static t38_packet_info *t38_info=NULL;
+static t38_packet_info *t38_info;
/* Set up an T38 conversation */
diff --git a/epan/dissectors/asn1/tcap/packet-tcap-template.c b/epan/dissectors/asn1/tcap/packet-tcap-template.c
index 69df6b575f..800f444cdd 100644
--- a/epan/dissectors/asn1/tcap/packet-tcap-template.c
+++ b/epan/dissectors/asn1/tcap/packet-tcap-template.c
@@ -57,11 +57,11 @@ gint ett_tcap_stat;
static struct tcapsrt_info_t * gp_tcapsrt_info;
static gboolean tcap_subdissector_used=FALSE;
-static dissector_handle_t requested_subdissector_handle = NULL;
+static dissector_handle_t requested_subdissector_handle;
static int ss7pc_address_type = -1;
-static struct tcaphash_context_t * gp_tcap_context=NULL;
+static struct tcaphash_context_t * gp_tcap_context;
#include "packet-tcap-ett.c"
@@ -80,25 +80,25 @@ static range_t *ssn_range;
or when the same TCAP transcation identifier is reused */
static guint gtcap_RepetitionTimeout = 10;
static guint gtcap_LostTimeout = 30;
-gboolean gtcap_PersistentSRT=FALSE;
+static bool gtcap_PersistentSRT=false;
gboolean gtcap_DisplaySRT=FALSE;
gboolean gtcap_StatSRT=FALSE;
/* Global hash tables*/
-static wmem_map_t *tcaphash_context = NULL;
-static wmem_map_t *tcaphash_begin = NULL;
-static wmem_map_t *tcaphash_cont = NULL;
-static wmem_map_t *tcaphash_end = NULL;
-static wmem_map_t *tcaphash_ansi = NULL;
+static wmem_map_t *tcaphash_context;
+static wmem_map_t *tcaphash_begin;
+static wmem_map_t *tcaphash_cont;
+static wmem_map_t *tcaphash_end;
+static wmem_map_t *tcaphash_ansi;
static guint32 tcapsrt_global_SessionId=1;
-static dissector_handle_t tcap_handle = NULL;
+static dissector_handle_t tcap_handle;
static dissector_table_t ber_oid_dissector_table;
static const char * cur_oid;
static const char * tcapext_oid;
-static proto_tree * tcap_top_tree=NULL;
-static proto_tree * tcap_stat_tree=NULL;
+static proto_tree * tcap_top_tree;
+static proto_tree * tcap_stat_tree;
static dissector_handle_t data_handle;
static dissector_handle_t ansi_tcap_handle;
@@ -106,8 +106,8 @@ static dissector_handle_t ansi_tcap_handle;
static int dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset);
static bool dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
-static dissector_table_t ansi_sub_dissectors = NULL;
-static dissector_table_t itu_sub_dissectors = NULL;
+static dissector_table_t ansi_sub_dissectors;
+static dissector_table_t itu_sub_dissectors;
extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
dissector_add_uint("ansi_tcap.ssn",ssn,dissector);
@@ -1899,7 +1899,7 @@ dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
}
}
if (p_tcap_context && p_tcap_context->callback) {
- /* Callback fonction for the upper layer */
+ /* Callback function for the upper layer */
(p_tcap_context->callback)(tvb, pinfo, tcap_stat_tree, p_tcap_context);
}
}
diff --git a/epan/dissectors/asn1/tetra/packet-tetra-template.c b/epan/dissectors/asn1/tetra/packet-tetra-template.c
index 00a94846dc..564985b03a 100644
--- a/epan/dissectors/asn1/tetra/packet-tetra-template.c
+++ b/epan/dissectors/asn1/tetra/packet-tetra-template.c
@@ -39,7 +39,7 @@ static dissector_handle_t tetra_handle;
#define TETRA_UDP_PORT 7074 /* Not IANA assigned */
/* Whether the capture data include carrier numbers */
-static gboolean include_carrier_number = TRUE;
+static bool include_carrier_number = true;
/* The following hf_* variables are used to hold the Wireshark IDs of
* our header fields; they are filled out when we call
diff --git a/epan/dissectors/asn1/ulp/packet-ulp-template.c b/epan/dissectors/asn1/ulp/packet-ulp-template.c
index bae4941971..b822398763 100644
--- a/epan/dissectors/asn1/ulp/packet-ulp-template.c
+++ b/epan/dissectors/asn1/ulp/packet-ulp-template.c
@@ -49,7 +49,7 @@ static int proto_ulp;
#define ULP_HEADER_SIZE 2
-static gboolean ulp_desegment = TRUE;
+static bool ulp_desegment = true;
#include "packet-ulp-hf.c"
static int hf_ulp_mobile_directory_number;
diff --git a/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn b/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
index 6059ccff70..49bafe8f4d 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.6.0 (2023-09)
+-- 3GPP TS 36.423 V17.7.0 (2024-03)
-- 9.3.6 Common definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/x2ap/X2AP-Constants.asn b/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
index 4b0193b0f8..034f2c0e20 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.6.0 (2023-09)
+-- 3GPP TS 36.423 V17.7.0 (2024-03)
-- 9.3.7 Constant definitions
-- **************************************************************
--
@@ -614,5 +614,14 @@ id-SCGreconfigNotification ProtocolIE-ID ::= 438
id-MIMOPRBusageInformation ProtocolIE-ID ::= 439
id-SensorMeasurementConfiguration ProtocolIE-ID ::= 440
id-AdditionalListofForwardingGTPTunnelEndpoint ProtocolIE-ID ::= 441
+--WS extension
+id-Unknown-442 ProtocolIE-ID ::= 442
+id-Unknown-443 ProtocolIE-ID ::= 443
+id-Unknown-444 ProtocolIE-ID ::= 444
+id-Unknown-445 ProtocolIE-ID ::= 445
+id-Unknown-446 ProtocolIE-ID ::= 446
+id-Unknown-447 ProtocolIE-ID ::= 447
+id-Unknown-448 ProtocolIE-ID ::= 448
+id-IABAuthorized ProtocolIE-ID ::= 449
END
diff --git a/epan/dissectors/asn1/x2ap/X2AP-Containers.asn b/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
index e8077b82ec..460b3cff82 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.6.0 (2023-09)
+-- 3GPP TS 36.423 V17.7.0 (2024-03)
-- 9.3.8 Container definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/x2ap/X2AP-IEs.asn b/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
index 15365be62e..85ea3bb24c 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.6.0 (2023-09)
+-- 3GPP TS 36.423 V17.7.0 (2024-03)
-- 9.3.5 Information Element definitions
-- **************************************************************
--
@@ -1695,6 +1695,13 @@ HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
IABNodeIndication ::= ENUMERATED {true,...}
+IABAuthorized ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+
IMSvoiceEPSfallbackfrom5G ::= ENUMERATED {
true,
...
diff --git a/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn b/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
index e50deb2f31..d6acf4071c 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.6.0 (2023-09)
+-- 3GPP TS 36.423 V17.7.0 (2024-03)
-- 9.3.4 PDU Definitions
-- **************************************************************
--
@@ -262,7 +262,8 @@ IMPORTS
SecurityResult,
TraceCollectionEntityIPAddress,
SCGreconfigNotification,
- AdditionalListofForwardingGTPTunnelEndpoint
+ AdditionalListofForwardingGTPTunnelEndpoint,
+ IABAuthorized
@@ -645,6 +646,7 @@ FROM X2AP-Containers
id-SecurityResult,
id-SCGreconfigNotification,
id-AdditionalListofForwardingGTPTunnelEndpoint,
+ id-IABAuthorized,
maxCellineNB,
maxnoofBearers,
maxnoofPDCP-SN,
@@ -2711,7 +2713,8 @@ SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-PSCellChangeHistory CRITICALITY ignore TYPE PSCellChangeHistory PRESENCE optional}|
{ ID id-CHOinformation-AddReq CRITICALITY reject TYPE CHOinformation-AddReq PRESENCE optional}|
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional}|
- { ID id-CPAinformation-REQ CRITICALITY reject TYPE CPAinformation-REQ PRESENCE optional},
+ { ID id-CPAinformation-REQ CRITICALITY reject TYPE CPAinformation-REQ PRESENCE optional}|
+ { ID id-IABAuthorized CRITICALITY ignore TYPE IABAuthorized PRESENCE optional},
...
}
@@ -2972,7 +2975,8 @@ SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= {
{ ID id-CHOinformation-ModReq CRITICALITY ignore TYPE CHOinformation-ModReq PRESENCE optional}|
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional}|
{ ID id-CPAinformation-MOD CRITICALITY ignore TYPE CPAinformation-MOD PRESENCE optional}|
- { ID id-CPCupdate-MOD CRITICALITY ignore TYPE CPCupdate-MOD PRESENCE optional},
+ { ID id-CPCupdate-MOD CRITICALITY ignore TYPE CPCupdate-MOD PRESENCE optional}|
+ { ID id-IABAuthorized CRITICALITY ignore TYPE IABAuthorized PRESENCE optional},
...
}
diff --git a/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn b/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
index f4c197b3a1..b462dd3990 100644
--- a/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/x2ap/X2AP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.423 V17.6.0 (2023-09)
+-- 3GPP TS 36.423 V17.7.0 (2024-03)
-- 9.3.3 Elementary Procedure Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/x2ap/packet-x2ap-template.c b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
index 4ec697e8f0..00751992c6 100644
--- a/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
+++ b/epan/dissectors/asn1/x2ap/packet-x2ap-template.c
@@ -3,7 +3,7 @@
* X2 Application Protocol (X2AP);
* 3GPP TS 36.423 packet dissection
* Copyright 2007-2014, Anders Broman <anders.broman@ericsson.com>
- * Copyright 2016-2023, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2016-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -12,7 +12,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 36.423 V17.6.0 (2023-09)
+ * 3GPP TS 36.423 V17.7.0 (2024-03)
*/
#include "config.h"
@@ -130,7 +130,10 @@ static int hf_x2ap_rAT_RestrictionInformation_LEO;
static int hf_x2ap_rAT_RestrictionInformation_MEO;
static int hf_x2ap_rAT_RestrictionInformation_GEO;
static int hf_x2ap_rAT_RestrictionInformation_OTHERSAT;
-static int hf_x2ap_rAT_RestrictionInformation_Reserved;
+static int hf_x2ap_rAT_RestrictionInformation_NR_LEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_MEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_GEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT;
#include "packet-x2ap-hf.c"
/* Initialize the subtree pointers */
@@ -250,11 +253,6 @@ static const true_false_string x2ap_tfs_failed_succeeded = {
"Succeeded"
};
-static const true_false_string x2ap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
static void
x2ap_Time_UE_StayedInCell_EnhancedGranularity_fmt(gchar *s, guint32 v)
{
@@ -510,43 +508,43 @@ void proto_register_x2ap(void) {
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M1,
{ "M1", "x2ap.measurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M2,
{ "M2", "x2ap.measurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M3,
{ "M3", "x2ap.measurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M4,
{ "M4", "x2ap.measurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M5,
{ "M5", "x2ap.measurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "x2ap.measurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M6,
{ "M6", "x2ap.measurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M7,
{ "M7", "x2ap.measurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_GNSS,
{ "GNSS", "x2ap.MDT_Location_Info.GNSS",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_E_CID,
{ "E-CID", "x2ap.MDT_Location_Info.E_CID",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_Reserved,
{ "Reserved", "x2ap.MDT_Location_Info.Reserved",
@@ -664,9 +662,21 @@ void proto_register_x2ap(void) {
{ "OTHERSAT", "x2ap.rAT_RestrictionInformation.OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x10,
NULL, HFILL }},
- { &hf_x2ap_rAT_RestrictionInformation_Reserved,
- { "Reserved", "x2ap.rAT_RestrictionInformation.Reserved",
- FT_UINT8, BASE_HEX, NULL, 0x0f,
+ { &hf_x2ap_rAT_RestrictionInformation_NR_LEO,
+ { "NR-LEO", "x2ap.rAT_RestrictionInformation.NR_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x08,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_MEO,
+ { "NR-MEO", "x2ap.rAT_RestrictionInformation.NR_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_GEO,
+ { "NR-GEO", "x2ap.rAT_RestrictionInformation.NR_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT,
+ { "NR-OTHERSAT", "x2ap.rAT_RestrictionInformation.NR_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
NULL, HFILL }},
#include "packet-x2ap-hfarr.c"
};
diff --git a/epan/dissectors/asn1/x2ap/x2ap.cnf b/epan/dissectors/asn1/x2ap/x2ap.cnf
index 85488b5cb8..6da96a7b51 100644
--- a/epan/dissectors/asn1/x2ap/x2ap.cnf
+++ b/epan/dissectors/asn1/x2ap/x2ap.cnf
@@ -183,7 +183,10 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC
&hf_x2ap_rAT_RestrictionInformation_MEO,
&hf_x2ap_rAT_RestrictionInformation_GEO,
&hf_x2ap_rAT_RestrictionInformation_OTHERSAT,
- &hf_x2ap_rAT_RestrictionInformation_Reserved,
+ &hf_x2ap_rAT_RestrictionInformation_NR_LEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_MEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_GEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_rAT_RestrictionInformation);
@@ -1654,6 +1657,7 @@ id-SCGreconfigNotification ProtocolIE-ID
id-MIMOPRBusageInformation ProtocolIE-ID
id-SensorMeasurementConfiguration ProtocolIE-ID
id-AdditionalListofForwardingGTPTunnelEndpoint ProtocolIE-ID
+id-IABAuthorized ProtocolIE-ID
#.REGISTER
@@ -1956,6 +1960,7 @@ CPCinformation-CONF N x2ap.ies id-CPCinformation-CONF
CPCinformation-NOTIFY N x2ap.ies id-CPCinformation-NOTIFY
CPCupdate-MOD N x2ap.ies id-CPCupdate-MOD
SCGreconfigNotification N x2ap.ies id-SCGreconfigNotification
+IABAuthorized N x2ap.ies id-IABAuthorized
#X2AP-PROTOCOL-EXTENSION
Number-of-Antennaports N x2ap.extension id-Number-of-Antennaports
diff --git a/epan/dissectors/asn1/x509af/packet-x509af-template.c b/epan/dissectors/asn1/x509af/packet-x509af-template.c
index d1c60dd22d..6f5c288d9d 100644
--- a/epan/dissectors/asn1/x509af/packet-x509af-template.c
+++ b/epan/dissectors/asn1/x509af/packet-x509af-template.c
@@ -45,7 +45,7 @@ static int hf_x509af_extension_id;
/* Initialize the subtree pointers */
static gint ett_pkix_crl;
#include "packet-x509af-ett.c"
-static const char *algorithm_id = NULL;
+static const char *algorithm_id;
static void
x509af_export_publickey(tvbuff_t *tvb, asn1_ctx_t *actx, int offset, int len);
#include "packet-x509af-fn.c"
diff --git a/epan/dissectors/asn1/x509if/packet-x509if-template.c b/epan/dissectors/asn1/x509if/packet-x509if-template.c
index 0b4a20e8c5..b9c1a04a60 100644
--- a/epan/dissectors/asn1/x509if/packet-x509if-template.c
+++ b/epan/dissectors/asn1/x509if/packet-x509if-template.c
@@ -39,21 +39,21 @@ static int hf_x509if_any_string;
/* Initialize the subtree pointers */
#include "packet-x509if-ett.c"
-static proto_tree *top_of_dn = NULL;
-static proto_tree *top_of_rdn = NULL;
+static proto_tree *top_of_dn;
+static proto_tree *top_of_rdn;
-static gboolean rdn_one_value = FALSE; /* have we seen one value in an RDN yet */
-static gboolean dn_one_rdn = FALSE; /* have we seen one RDN in a DN yet */
-static gboolean doing_attr = FALSE;
+static gboolean rdn_one_value; /* have we seen one value in an RDN yet */
+static gboolean dn_one_rdn; /* have we seen one RDN in a DN yet */
+static gboolean doing_attr;
-static wmem_strbuf_t *last_dn_buf = NULL;
-static wmem_strbuf_t *last_rdn_buf = NULL;
+static wmem_strbuf_t *last_dn_buf;
+static wmem_strbuf_t *last_rdn_buf;
static int ava_hf_index;
#define MAX_FMT_VALS 32
static value_string fmt_vals[MAX_FMT_VALS];
#define MAX_AVA_STR_LEN 64
-static char *last_ava = NULL;
+static char *last_ava;
static void
x509if_frame_end(void)
diff --git a/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn
index 75bdf3d889..bd564a140d 100644
--- a/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.7.0 (2023-12)
+-- 3GPP TS 38.423 V17.8.0 (2024-03)
-- 9.3.6 Common definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/xnap/XnAP-Constants.asn b/epan/dissectors/asn1/xnap/XnAP-Constants.asn
index 7b46f60031..6690c7f0b7 100644
--- a/epan/dissectors/asn1/xnap/XnAP-Constants.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-Constants.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.7.0 (2023-12)
+-- 3GPP TS 38.423 V17.8.0 (2024-03)
-- 9.3.7 Constant definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/xnap/XnAP-Containers.asn b/epan/dissectors/asn1/xnap/XnAP-Containers.asn
index 4f9a1060ae..670bc4288d 100644
--- a/epan/dissectors/asn1/xnap/XnAP-Containers.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-Containers.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.7.0 (2023-12)
+-- 3GPP TS 38.423 V17.8.0 (2024-03)
-- 9.3.8 Container definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/xnap/XnAP-IEs.asn b/epan/dissectors/asn1/xnap/XnAP-IEs.asn
index 8b2a9b1b38..377c67c3c9 100644
--- a/epan/dissectors/asn1/xnap/XnAP-IEs.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-IEs.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.7.0 (2023-12)
+-- 3GPP TS 38.423 V17.8.0 (2024-03)
-- 9.3.5 Information Element definitions
-- **************************************************************
--
@@ -2103,7 +2103,7 @@ ExplicitFormat-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
ExtendedRATRestrictionInformation ::= SEQUENCE {
- primaryRATRestriction BIT STRING (SIZE(8, ...)),
+ primaryRATRestriction BIT STRING (SIZE(8, ..., 16)),
secondaryRATRestriction BIT STRING (SIZE(8, ...)),
iE-Extensions ProtocolExtensionContainer { {ExtendedRATRestrictionInformation-ExtIEs} } OPTIONAL,
...
@@ -4138,7 +4138,7 @@ NR-U-ChannelInfo-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
}
-Bandwidth ::= ENUMERATED{mhz10, mhz20, mhz40, mhz60, mhz80, ...}
+Bandwidth ::= ENUMERATED{mhz10, mhz20, mhz40, mhz60, mhz80, ..., mhz100}
NRCyclicPrefix ::= ENUMERATED {normal, extended, ...}
diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn
index ad01705010..ab49f8a958 100644
--- a/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.7.0 (2023-12)
+-- 3GPP TS 38.423 V17.8.0 (2024-03)
-- 9.3.4 PDU Definitions
-- **************************************************************
--
@@ -585,7 +585,8 @@ HandoverRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-TimeSynchronizationAssistanceInformation CRITICALITY ignore TYPE TimeSynchronizationAssistanceInformation PRESENCE optional }|
{ ID id-QMCConfigInfo CRITICALITY ignore TYPE QMCConfigInfo PRESENCE optional }|
{ ID id-FiveGProSeAuthorized CRITICALITY ignore TYPE FiveGProSeAuthorized PRESENCE optional }|
- { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional },
+ { ID id-FiveGProSePC5QoSParameters CRITICALITY ignore TYPE FiveGProSePC5QoSParameters PRESENCE optional }|
+ { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional },
...
}
@@ -1025,7 +1026,8 @@ SNodeAdditionRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-SCGActivationRequest CRITICALITY ignore TYPE SCGActivationRequest PRESENCE optional }|
{ ID id-CPAInformationRequest CRITICALITY reject TYPE CPAInformationRequest PRESENCE optional }|
{ ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY reject TYPE UESliceMaximumBitRateList PRESENCE optional }|
- { ID id-F1-terminatingIAB-donorIndicator CRITICALITY reject TYPE F1-terminatingIAB-donorIndicator PRESENCE optional },
+ { ID id-F1-terminatingIAB-donorIndicator CRITICALITY reject TYPE F1-terminatingIAB-donorIndicator PRESENCE optional }|
+ { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional },
...
}
@@ -1237,7 +1239,8 @@ SNodeModificationRequest-IEs XNAP-PROTOCOL-IES ::= {
{ ID id-CPAInformationModReq CRITICALITY ignore TYPE CPAInformationModReq PRESENCE optional }|
{ ID id-CPCInformationUpdate CRITICALITY ignore TYPE CPCInformationUpdate PRESENCE optional }|
{ ID id-S-NG-RANnodeUE-Slice-MBR CRITICALITY ignore TYPE UESliceMaximumBitRateList PRESENCE optional }|
- { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional },
+ { ID id-ManagementBasedMDTPLMNModificationList CRITICALITY ignore TYPE MDTPLMNModificationList PRESENCE optional }|
+ { ID id-IABAuthorizationStatus CRITICALITY ignore TYPE IABAuthorizationStatus PRESENCE optional },
...
}
@@ -1406,6 +1409,7 @@ PDUSessionNotAdmitted-SNModResponse ::= SEQUENCE {
}
PDUSessionNotAdmitted-SNModResponse-ExtIEs XNAP-PROTOCOL-EXTENSION ::= {
+ { ID id-PDUSessionResourcesNotAdmitted-List CRITICALITY ignore EXTENSION PDUSessionResourcesNotAdmitted-List PRESENCE optional },
...
}
diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn
index 94d99c9e7a..8942fc6957 100644
--- a/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 38.423 V17.7.0 (2023-12)
+-- 3GPP TS 38.423 V17.8.0 (2024-03)
-- 9.3.3 Elementary Procedure Definitions
-- **************************************************************
--
diff --git a/epan/dissectors/asn1/xnap/packet-xnap-template.c b/epan/dissectors/asn1/xnap/packet-xnap-template.c
index 4b28a7d036..6c442ca0bb 100644
--- a/epan/dissectors/asn1/xnap/packet-xnap-template.c
+++ b/epan/dissectors/asn1/xnap/packet-xnap-template.c
@@ -10,7 +10,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 38.423 V17.7.0 (2023-12)
+ * 3GPP TS 38.423 V17.8.0 (2024-03)
*/
#include "config.h"
@@ -60,6 +60,10 @@ static int hf_xnap_primaryRATRestriction_nR_LEO;
static int hf_xnap_primaryRATRestriction_nR_MEO;
static int hf_xnap_primaryRATRestriction_nR_GEO;
static int hf_xnap_primaryRATRestriction_nR_OTHERSAT;
+static int hf_xnap_primaryRATRestriction_e_UTRA_LEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_MEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_GEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT;
static int hf_xnap_primaryRATRestriction_reserved;
static int hf_xnap_secondaryRATRestriction_e_UTRA;
static int hf_xnap_secondaryRATRestriction_nR;
@@ -224,11 +228,6 @@ xnap_Threshold_SINR_fmt(gchar *s, guint32 v)
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-23, v);
}
-static const true_false_string xnap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
typedef enum {
INITIATING_MESSAGE,
SUCCESSFUL_OUTCOME,
@@ -394,12 +393,28 @@ void proto_register_xnap(void) {
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
NULL, HFILL }},
{ &hf_xnap_primaryRATRestriction_nR_OTHERSAT,
- { "nR-unlicensed", "xnap.primaryRATRestriction.nR_unlicensed",
+ { "nR-unlicensed", "xnap.primaryRATRestriction.nR_OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_LEO,
+ { "e-UTRA-LEO", "xnap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_MEO,
+ { "e-UTRA-MEO", "xnap.primaryRATRestriction.e_UTRA_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_GEO,
+ { "e-UTRA-GEO", "xnap.primaryRATRestriction.e_UTRA_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT,
+ { "e-UTRA-unlicensed", "xnap.primaryRATRestriction.e_UTRA_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20,
+ NULL, HFILL }},
{ &hf_xnap_primaryRATRestriction_reserved,
{ "reserved", "xnap.primaryRATRestriction.reserved",
- FT_UINT8, BASE_HEX, NULL, 0x01,
+ FT_UINT8, BASE_HEX, NULL, 0x1f,
NULL, HFILL }},
{ &hf_xnap_secondaryRATRestriction_e_UTRA,
{ "e-UTRA", "xnap.secondaryRATRestriction.e_UTRA",
@@ -431,35 +446,35 @@ void proto_register_xnap(void) {
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M1,
{ "M1", "xnap.MeasurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M2,
{ "M2", "xnap.MeasurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M3,
{ "M3", "xnap.MeasurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M4,
{ "M4", "xnap.MeasurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M5,
{ "M5", "xnap.MeasurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "xnap.MeasurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M6,
{ "M6", "xnap.MeasurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M7,
{ "M7", "xnap.MeasurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_xnap_ReportCharacteristics_PRBPeriodic,
{ "PRBPeriodic", "xnap.ReportCharacteristics.PRBPeriodic",
diff --git a/epan/dissectors/asn1/xnap/xnap.cnf b/epan/dissectors/asn1/xnap/xnap.cnf
index 8449bb3fa1..2346aedf1f 100644
--- a/epan/dissectors/asn1/xnap/xnap.cnf
+++ b/epan/dissectors/asn1/xnap/xnap.cnf
@@ -607,11 +607,20 @@ BluetoothName TYPE=FT_STRING DISPLAY = BASE_NONE
&hf_xnap_primaryRATRestriction_nR_MEO,
&hf_xnap_primaryRATRestriction_nR_GEO,
&hf_xnap_primaryRATRestriction_nR_OTHERSAT,
+ &hf_xnap_primaryRATRestriction_e_UTRA_LEO,
+ NULL
+ };
+ static int * const fields2[] = {
+ &hf_xnap_primaryRATRestriction_e_UTRA_MEO,
+ &hf_xnap_primaryRATRestriction_e_UTRA_GEO,
+ &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT,
&hf_xnap_primaryRATRestriction_reserved,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_primaryRATRestriction);
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ if (tvb_reported_length(parameter_tvb) >= 2)
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN);
}
#.FN_BODY ExtendedRATRestrictionInformation/secondaryRATRestriction VAL_PTR=&parameter_tvb
@@ -1916,6 +1925,7 @@ CoverageModificationCause N xnap.extensio
AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated N xnap.extension id-AdditionalListofPDUSessionResourceChangeConfirmInfo-SNterminated
ExcessPacketDelayThresholdConfiguration N xnap.extension id-ExcessPacketDelayThresholdConfiguration
QoSFlowMappingIndication N xnap.extension id-QosFlowMappingIndication
+PDUSessionResourcesNotAdmitted-List N xnap.extension id-PDUSessionResourcesNotAdmitted-List
#XNAP-ELEMENTARY-PROCEDURE
HandoverRequest N xnap.proc.imsg id-handoverPreparation
diff --git a/epan/dissectors/asn1/z3950/packet-z3950-template.c b/epan/dissectors/asn1/z3950/packet-z3950-template.c
index 1a558a0780..2cfed78b53 100644
--- a/epan/dissectors/asn1/z3950/packet-z3950-template.c
+++ b/epan/dissectors/asn1/z3950/packet-z3950-template.c
@@ -99,7 +99,7 @@ typedef struct marc_directory_entry {
guint32 starting_character;
} marc_directory_entry;
-static dissector_handle_t z3950_handle=NULL;
+static dissector_handle_t z3950_handle;
void proto_reg_handoff_z3950(void);
void proto_register_z3950(void);
@@ -107,7 +107,7 @@ void proto_register_z3950(void);
/* Initialize the protocol and registered fields */
static int proto_z3950;
static int global_z3950_port = Z3950_PORT;
-static gboolean z3950_desegment = TRUE;
+static bool z3950_desegment = true;
static const value_string z3950_bib1_att_types[] = {
{ Z3950_BIB1_AT_USE, "Use" },
diff --git a/epan/dissectors/dcerpc/budb/packet-dcerpc-budb-template.c b/epan/dissectors/dcerpc/budb/packet-dcerpc-budb-template.c
index 926b3c5e65..479019d720 100644
--- a/epan/dissectors/dcerpc/budb/packet-dcerpc-budb-template.c
+++ b/epan/dissectors/dcerpc/budb/packet-dcerpc-budb-template.c
@@ -60,7 +60,7 @@ ETH_ETTARR
proto_register_subtree_array(ett, array_length(ett));
}
-static dcerpc_sub_dissector function_dissectors[] = {
+static const dcerpc_sub_dissector function_dissectors[] = {
ETH_FT
{ 0, NULL, NULL, NULL },
};
diff --git a/epan/dissectors/dcerpc/butc/packet-dcerpc-butc-template.c b/epan/dissectors/dcerpc/butc/packet-dcerpc-butc-template.c
index f5aff5caed..4a57feb838 100644
--- a/epan/dissectors/dcerpc/butc/packet-dcerpc-butc-template.c
+++ b/epan/dissectors/dcerpc/butc/packet-dcerpc-butc-template.c
@@ -59,7 +59,7 @@ ETH_ETTARR
proto_register_subtree_array(ett, array_length(ett));
}
-static dcerpc_sub_dissector function_dissectors[] = {
+static const dcerpc_sub_dissector function_dissectors[] = {
ETH_FT
{ 0, NULL, NULL, NULL },
};
diff --git a/epan/dissectors/file-btsnoop.c b/epan/dissectors/file-btsnoop.c
index 4f504101b4..7676dd8ce9 100644
--- a/epan/dissectors/file-btsnoop.c
+++ b/epan/dissectors/file-btsnoop.c
@@ -53,7 +53,7 @@ static gint ett_btsnoop_frame;
static gint ett_btsnoop_payload;
static gint ett_btsnoop_flags;
-static gboolean pref_dissect_next_layer = FALSE;
+static bool pref_dissect_next_layer;
extern value_string_ext hci_mon_opcode_vals_ext;
diff --git a/epan/dissectors/file-mp4.c b/epan/dissectors/file-mp4.c
index 0d1888f913..803b8056ec 100644
--- a/epan/dissectors/file-mp4.c
+++ b/epan/dissectors/file-mp4.c
@@ -127,7 +127,7 @@ static expert_field ei_mp4_box_too_large;
static expert_field ei_mp4_too_many_rec_lvls;
static expert_field ei_mp4_mvhd_next_tid_unknown;
-static guint32 mvhd_timescale = 0;
+static guint32 mvhd_timescale;
/* a box must at least have a 32bit len field and a 32bit type */
#define MIN_BOX_SIZE 8
@@ -299,10 +299,10 @@ dissect_mp4_mvhd_body(tvbuff_t *tvb, gint offset, gint len _U_,
*/
time_len = (version==0) ? 4 : 8;
proto_tree_add_item(tree, hf_mp4_mvhd_creat_time,
- tvb, offset, time_len, ENC_TIME_CLASSIC_MAC_OS_SECS|ENC_BIG_ENDIAN);
+ tvb, offset, time_len, ENC_TIME_MP4_FILE_SECS|ENC_BIG_ENDIAN);
offset += time_len;
proto_tree_add_item(tree, hf_mp4_mvhd_mod_time,
- tvb, offset, time_len, ENC_TIME_CLASSIC_MAC_OS_SECS|ENC_BIG_ENDIAN);
+ tvb, offset, time_len, ENC_TIME_MP4_FILE_SECS|ENC_BIG_ENDIAN);
offset += time_len;
mvhd_timescale = tvb_get_ntohl (tvb, offset);
@@ -398,10 +398,10 @@ dissect_mp4_tkhd_body(tvbuff_t *tvb, gint offset, gint len _U_,
time_len = (version==0) ? 4 : 8;
proto_tree_add_item(tree, hf_mp4_tkhd_creat_time,
- tvb, offset, time_len, ENC_TIME_CLASSIC_MAC_OS_SECS|ENC_BIG_ENDIAN);
+ tvb, offset, time_len, ENC_TIME_MP4_FILE_SECS|ENC_BIG_ENDIAN);
offset += time_len;
proto_tree_add_item(tree, hf_mp4_tkhd_mod_time,
- tvb, offset, time_len, ENC_TIME_CLASSIC_MAC_OS_SECS|ENC_BIG_ENDIAN);
+ tvb, offset, time_len, ENC_TIME_MP4_FILE_SECS|ENC_BIG_ENDIAN);
offset += time_len;
proto_tree_add_item(tree, hf_mp4_tkhd_track_id,
diff --git a/epan/dissectors/file-pcap.c b/epan/dissectors/file-pcap.c
index 32a61edd14..49a68a3ba9 100644
--- a/epan/dissectors/file-pcap.c
+++ b/epan/dissectors/file-pcap.c
@@ -50,7 +50,7 @@ static gint ett_pcap_packet;
static gint ett_pcap_packet_data;
static gint ett_pcap_timestamp;
-static gboolean pref_dissect_next_layer = FALSE;
+static bool pref_dissect_next_layer;
void proto_register_file_pcap(void);
void proto_reg_handoff_file_pcap(void);
diff --git a/epan/dissectors/file-pcapng.c b/epan/dissectors/file-pcapng.c
index 18f94c4e47..dedf747a93 100644
--- a/epan/dissectors/file-pcapng.c
+++ b/epan/dissectors/file-pcapng.c
@@ -211,7 +211,7 @@ static int * const hfx_pcapng_option_data_packet_darwin_flags[] = {
NULL
};
-static gboolean pref_dissect_next_layer = FALSE;
+static bool pref_dissect_next_layer;
static const value_string block_type_vals[] = {
{ BLOCK_TYPE_IDB, "Interface Description Block" },
@@ -254,7 +254,7 @@ static const value_string block_type_vals[] = {
/* blockId-> local_block_callback_info_t* */
-static GHashTable *s_local_block_callback_table = NULL;
+static GHashTable *s_local_block_callback_table;
#define OPTION_CODE_CUSTOM_OPTIONS \
{ 2988, "Custom Option UTF-8 string which can be copied" }, \
diff --git a/epan/dissectors/file-rfc7468.c b/epan/dissectors/file-rfc7468.c
index b3d6c811c7..44d0e36aae 100644
--- a/epan/dissectors/file-rfc7468.c
+++ b/epan/dissectors/file-rfc7468.c
@@ -27,8 +27,8 @@ static int hf_rfc7468_preeb_label;
static int hf_rfc7468_ber_data;
static int hf_rfc7468_posteb_label;
-static dissector_handle_t rfc7468_handle = NULL;
-static dissector_handle_t ber_handle = NULL;
+static dissector_handle_t rfc7468_handle;
+static dissector_handle_t ber_handle;
static dissector_table_t rfc7468_label_table;
diff --git a/epan/dissectors/packet-2dparityfec.c b/epan/dissectors/packet-2dparityfec.c
index e4d91013ac..ba2a4c81ec 100644
--- a/epan/dissectors/packet-2dparityfec.c
+++ b/epan/dissectors/packet-2dparityfec.c
@@ -55,9 +55,9 @@
void proto_register_2dparityfec(void);
void proto_reg_handoff_2dparityfec(void);
-static dissector_handle_t handle_2dparityfec = NULL;
+static dissector_handle_t handle_2dparityfec;
-static gboolean dissect_fec = FALSE;
+static bool dissect_fec;
static int fec_rtp_payload_type = 96;
diff --git a/epan/dissectors/packet-3g-a11.c b/epan/dissectors/packet-3g-a11.c
index a79ea39121..e47c6e39b2 100644
--- a/epan/dissectors/packet-3g-a11.c
+++ b/epan/dissectors/packet-3g-a11.c
@@ -42,7 +42,7 @@
void proto_register_a11(void);
void proto_reg_handoff_a11(void);
-static int registration_request_msg =0;
+static int registration_request_msg;
/* Initialize the protocol and registered fields */
static int proto_a11;
@@ -213,7 +213,7 @@ static expert_field ei_a11_bcmcs_too_short;
static expert_field ei_a11_entry_data_not_dissected;
static expert_field ei_a11_session_data_not_dissected;
-static dissector_handle_t a11_handle = NULL;
+static dissector_handle_t a11_handle;
/* Port used for Mobile IP based Tunneling Protocol (A11) */
#define UDP_PORT_3GA11 699 /* Not IANA registered */
diff --git a/epan/dissectors/packet-5co-legacy.c b/epan/dissectors/packet-5co-legacy.c
index 161828355e..30e334b99e 100644
--- a/epan/dissectors/packet-5co-legacy.c
+++ b/epan/dissectors/packet-5co-legacy.c
@@ -160,12 +160,12 @@ typedef struct
} FCOSConvRequestVal;
/* Conversation hash tables */
-static wmem_map_t *FiveCo_requests_hash = NULL;
+static wmem_map_t *FiveCo_requests_hash;
/* Internal unique ID (used to match answer with question
since some software set always 0 as packet ID in protocol header)
*/
-static guint64 g_unInternalID = 0;
+static guint64 g_unInternalID;
/* Register definition structure (used to detect known registers when it is possible) */
typedef struct
@@ -857,7 +857,7 @@ dispType( gchar *result, guint32 type)
{
int nValueH = (type>>16) & 0xFFFF;
int nValueL = (type & 0xFFFF);
- snprintf( result, 18, "%d.%d (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d.%d (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
}
static void
@@ -867,7 +867,7 @@ dispVersion( gchar *result, guint32 version)
{
int nValueH = (version>>16) & 0xFFFF;
int nValueL = (version & 0xFFFF);
- snprintf( result, 11, "FW: %d.%d", nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "FW: %d.%d", nValueH, nValueL);
}
else
{
@@ -875,7 +875,7 @@ dispVersion( gchar *result, guint32 version)
int nHWLow = (version>>16) & 0xFF;
int nFWHigh = (version>>8) & 0xFF;
int nFWLow = (version>>8) & 0xFF;
- snprintf( result, 25, "HW: %d.%d / FW: %d.%d", nHWHigh, nHWLow, nFWHigh, nFWLow);
+ snprintf( result, ITEM_LABEL_LENGTH, "HW: %d.%d / FW: %d.%d", nHWHigh, nHWLow, nFWHigh, nFWLow);
}
}
@@ -883,7 +883,7 @@ static void dispMAC( gchar *result, guint64 mac)
{
guint8 *pData = (guint8*)(&mac);
- snprintf( result, 18, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
+ snprintf( result, ITEM_LABEL_LENGTH, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
pData[1], pData[0]);
}
@@ -891,22 +891,22 @@ static void dispIP( gchar *result, guint32 ip)
{
guint8 *pData = (guint8*)(&ip);
- snprintf( result, 15, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
}
static void dispMask( gchar *result, guint32 mask)
{
guint8 *pData = (guint8*)(&mask);
- snprintf( result, 15, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d.%d.%d.%d", pData[3], pData[2], pData[1], pData[0]);
}
static void dispTimeout( gchar *result, guint32 timeout)
{
if (timeout != 0)
- snprintf( result, 12, "%d secondes", timeout);
+ snprintf( result, ITEM_LABEL_LENGTH, "%d seconds", timeout);
else
- snprintf( result, 8, "Disabled");
+ snprintf( result, ITEM_LABEL_LENGTH, "Disabled");
}
/*
diff --git a/epan/dissectors/packet-5co-rap.c b/epan/dissectors/packet-5co-rap.c
index 782dc45244..774e678313 100644
--- a/epan/dissectors/packet-5co-rap.c
+++ b/epan/dissectors/packet-5co-rap.c
@@ -138,7 +138,7 @@ typedef struct
/* Conversation hash table (conversation-id -> FCOSConvDevices*) */
/* TODO: could just have FCOSConvDevices* as conversation data type? */
-static GHashTable *fiveco_types_models_hash = NULL;
+static GHashTable *fiveco_types_models_hash;
enum FCOERegistersType {
REGISTER,
@@ -887,7 +887,7 @@ disp_type( gchar *result, guint32 type)
{
guint nValueH = (type>>16) & 0xFFFF;
guint nValueL = (type & 0xFFFF);
- snprintf( result, 18, "%u.%u (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u (%.4X.%.4X)", nValueH, nValueL, nValueH, nValueL);
}
static void
@@ -897,7 +897,7 @@ disp_version( gchar *result, guint32 version)
{
guint nValueH = (version>>16) & 0xFFFF;
guint nValueL = (version & 0xFFFF);
- snprintf( result, 11, "FW: %u.%u", nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "FW: %u.%u", nValueH, nValueL);
}
else
{
@@ -905,7 +905,7 @@ disp_version( gchar *result, guint32 version)
guint nHWLow = (version>>16) & 0xFF;
guint nFWHigh = (version>>8) & 0xFF;
guint nFWLow = version & 0xFF;
- snprintf( result, 25, "HW: %u.%u / FW: %u.%u", nHWHigh, nHWLow, nFWHigh, nFWLow);
+ snprintf( result, ITEM_LABEL_LENGTH, "HW: %u.%u / FW: %u.%u", nHWHigh, nHWLow, nFWHigh, nFWLow);
}
}
@@ -913,14 +913,14 @@ static void disp_voltage(gchar *result, guint32 voltage)
{
guint nValueH = (voltage>>16) & 0xFFFF;
guint nValueL = (voltage & 0xFFFF);
- snprintf( result, 11, "%u.%u V", nValueH, nValueL);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u V", nValueH, nValueL);
}
static void disp_mac( gchar *result, guint64 mac)
{
guint8 *pData = (guint8*)(&mac);
- snprintf( result, 18, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
+ snprintf( result, ITEM_LABEL_LENGTH, "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X", pData[5], pData[4], pData[3], pData[2],
pData[1], pData[0]);
}
@@ -928,23 +928,23 @@ static void disp_ip( gchar *result, guint32 ip)
{
guint8 *pData = (guint8*)(&ip);
- snprintf( result, 15, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
}
static void disp_mask( gchar *result, guint32 mask)
{
guint8 *pData = (guint8*)(&mask);
- snprintf( result, 15, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
+ snprintf( result, ITEM_LABEL_LENGTH, "%u.%u.%u.%u", pData[3], pData[2], pData[1], pData[0]);
}
static void disp_timeout( gchar *result, guint32 timeout)
{
if (timeout != 0)
- snprintf( result, 12, "%u%s",
+ snprintf( result, ITEM_LABEL_LENGTH, "%u%s",
timeout, unit_name_string_get_value(timeout, &units_second_seconds));
else
- snprintf( result, 8, "Disabled");
+ snprintf( result, ITEM_LABEL_LENGTH, "Disabled");
}
/*
diff --git a/epan/dissectors/packet-6lowpan.c b/epan/dissectors/packet-6lowpan.c
index 0f303bec9d..a91737433e 100644
--- a/epan/dissectors/packet-6lowpan.c
+++ b/epan/dissectors/packet-6lowpan.c
@@ -544,7 +544,7 @@ static const fragment_items lowpan_frag_items = {
};
static reassembly_table lowpan_reassembly_table;
-static GHashTable *lowpan_context_table = NULL;
+static GHashTable *lowpan_context_table;
/* Link-Local prefix used by 6LoWPAN (FF80::/10) */
static const guint8 lowpan_llprefix[8] = {
@@ -574,9 +574,9 @@ static lowpan_context_data lowpan_context_default;
static const gchar * lowpan_context_prefs[LOWPAN_CONTEXT_MAX];
/* Preferences */
-static gboolean rfc4944_short_address_format = FALSE;
-static gboolean iid_has_universal_local_bit = FALSE;
-static gboolean ipv6_summary_in_tree = TRUE;
+static bool rfc4944_short_address_format;
+static bool iid_has_universal_local_bit;
+static bool ipv6_summary_in_tree = true;
/* Helper macro to convert a bit offset/length into a byte count. */
#define BITS_TO_BYTE_LEN(bitoff, bitlen) ((bitlen)?(((bitlen) + ((bitoff)&0x07) + 7) >> 3):(0))
diff --git a/epan/dissectors/packet-9p.c b/epan/dissectors/packet-9p.c
index f11b02d542..5b8d3f6455 100644
--- a/epan/dissectors/packet-9p.c
+++ b/epan/dissectors/packet-9p.c
@@ -1115,7 +1115,7 @@ static gint ett_9P_lflags;
static expert_field ei_9P_first_250;
static expert_field ei_9P_msgtype;
-static wmem_map_t *_9p_hashtable = NULL;
+static wmem_map_t *_9p_hashtable;
static void dissect_9P_dm(tvbuff_t *tvb, proto_item *tree, int offset, int iscreate);
static void dissect_9P_qid(tvbuff_t *tvb, proto_tree *tree, int offset);
diff --git a/epan/dissectors/packet-HI2Operations.c b/epan/dissectors/packet-HI2Operations.c
index eb79ff2f6f..a1072ee207 100644
--- a/epan/dissectors/packet-HI2Operations.c
+++ b/epan/dissectors/packet-HI2Operations.c
@@ -541,119 +541,119 @@ static int hf_HI2Operations_additional_info; /* PrintableString */
static int hf_HI2Operations_lALS_rawMLPPosData; /* UTF8String */
/* Initialize the subtree pointers */
-static gint ett_HI2Operations_CommunicationIdentifier;
-static gint ett_HI2Operations_Network_Identifier;
-static gint ett_HI2Operations_Network_Element_Identifier;
-static gint ett_HI2Operations_TimeStamp;
-static gint ett_HI2Operations_LocalTimeStamp;
-static gint ett_HI2Operations_PartyInformation;
-static gint ett_HI2Operations_T_partyIdentity;
-static gint ett_HI2Operations_CallingPartyNumber;
-static gint ett_HI2Operations_CalledPartyNumber;
-static gint ett_HI2Operations_GSMLocation;
-static gint ett_HI2Operations_T_geoCoordinates;
-static gint ett_HI2Operations_T_utmCoordinates;
-static gint ett_HI2Operations_T_utmRefCoordinates;
-static gint ett_HI2Operations_UMTSLocation;
-static gint ett_HI2Operations_GeographicalCoordinates;
-static gint ett_HI2Operations_GA_Point;
-static gint ett_HI2Operations_GA_PointWithUnCertainty;
-static gint ett_HI2Operations_GA_Polygon;
-static gint ett_HI2Operations_GA_Polygon_item;
-static gint ett_HI2Operations_Services_Information;
-static gint ett_HI2Operations_ISUP_parameters;
-static gint ett_HI2Operations_DSS1_parameters_codeset_0;
-static gint ett_HI2Operations_MAP_parameters;
-static gint ett_HI2Operations_Supplementary_Services;
-static gint ett_HI2Operations_Standard_Supplementary_Services;
-static gint ett_HI2Operations_Non_Standard_Supplementary_Services;
-static gint ett_HI2Operations_Non_Standard_Supplementary_Services_item;
-static gint ett_HI2Operations_Other_Services;
-static gint ett_HI2Operations_ISUP_SS_parameters;
-static gint ett_HI2Operations_DSS1_SS_parameters_codeset_0;
-static gint ett_HI2Operations_DSS1_SS_parameters_codeset_4;
-static gint ett_HI2Operations_DSS1_SS_parameters_codeset_5;
-static gint ett_HI2Operations_DSS1_SS_parameters_codeset_6;
-static gint ett_HI2Operations_DSS1_SS_parameters_codeset_7;
-static gint ett_HI2Operations_DSS1_SS_Invoke_Components;
-static gint ett_HI2Operations_MAP_SS_Invoke_Components;
-static gint ett_HI2Operations_MAP_SS_Parameters;
-static gint ett_HI2Operations_SMS_report;
-static gint ett_HI2Operations_T_sMS_Contents;
-static gint ett_HI2Operations_T_enhancedContent;
-static gint ett_HI2Operations_National_Parameters;
-static gint ett_HI2Operations_Services_Data_Information;
-static gint ett_HI2Operations_DataNodeAddress;
-static gint ett_HI2Operations_IPAddress;
-static gint ett_HI2Operations_IP_value;
-static gint ett_HI2Operations_National_HI2_ASN1parameters;
-static gint ett_HI2Operations_UUS1_Content;
-static gint ett_HI2Operations_Service_Information;
-static gint ett_HI2Operations_EpsIRIsContent;
-static gint ett_HI2Operations_EpsIRISequence;
-static gint ett_HI2Operations_EpsIRIContent;
-static gint ett_HI2Operations_IRI_Parameters;
-static gint ett_HI2Operations_SET_SIZE_1_10_OF_PartyInformation;
-static gint ett_HI2Operations_SEQUENCE_OF_PANI_Header_Info;
-static gint ett_HI2Operations_SEQUENCE_OF_PartyInformation;
-static gint ett_HI2Operations_SEQUENCE_OF_AdditionalCellID;
-static gint ett_HI2Operations_DataNodeIdentifier;
-static gint ett_HI2Operations_PANI_Header_Info;
-static gint ett_HI2Operations_PANI_Location;
-static gint ett_HI2Operations_Location;
-static gint ett_HI2Operations_T_uELocationTimestamp;
-static gint ett_HI2Operations_AdditionalCellID;
-static gint ett_HI2Operations_PLMNID;
-static gint ett_HI2Operations_NCGI;
-static gint ett_HI2Operations_CorrelationValues;
-static gint ett_HI2Operations_T_both_IRI_CC;
-static gint ett_HI2Operations_IMS_VoIP_Correlation;
-static gint ett_HI2Operations_IMS_VoIP_Correlation_item;
-static gint ett_HI2Operations_IRI_to_CC_Correlation;
-static gint ett_HI2Operations_T_cc;
-static gint ett_HI2Operations_GPRS_parameters;
-static gint ett_HI2Operations_UmtsQos;
-static gint ett_HI2Operations_EPS_GTPV2_SpecificParameters;
-static gint ett_HI2Operations_EPSLocation;
-static gint ett_HI2Operations_T_uELocationTimestamp_01;
-static gint ett_HI2Operations_ProtConfigOptions;
-static gint ett_HI2Operations_RemoteUeContextConnected;
-static gint ett_HI2Operations_RemoteUEContext;
-static gint ett_HI2Operations_EPS_PMIP_SpecificParameters;
-static gint ett_HI2Operations_EPS_DSMIP_SpecificParameters;
-static gint ett_HI2Operations_EPS_MIP_SpecificParameters;
-static gint ett_HI2Operations_MediaDecryption_info;
-static gint ett_HI2Operations_CCKeyInfo;
-static gint ett_HI2Operations_PacketDataHeaderInformation;
-static gint ett_HI2Operations_PacketDataHeaderReport;
-static gint ett_HI2Operations_PacketDataHeaderMapped;
-static gint ett_HI2Operations_PacketDataHeaderCopy;
-static gint ett_HI2Operations_PacketDataSummaryReport;
-static gint ett_HI2Operations_PacketFlowSummary;
-static gint ett_HI2Operations_ReportInterval;
-static gint ett_HI2Operations_TunnelProtocol;
-static gint ett_HI2Operations_Change_Of_Target_Identity;
-static gint ett_HI2Operations_Current_Previous_Systems;
-static gint ett_HI2Operations_DeregistrationReason;
-static gint ett_HI2Operations_PTCEncryptionInfo;
-static gint ett_HI2Operations_PTC;
-static gint ett_HI2Operations_AccessPolicyType;
-static gint ett_HI2Operations_AssociatePresenceStatus;
-static gint ett_HI2Operations_EmergencyGroupState;
-static gint ett_HI2Operations_FloorActivity;
-static gint ett_HI2Operations_PTCAddress;
-static gint ett_HI2Operations_RTPSetting;
-static gint ett_HI2Operations_TalkburstControlSetting;
-static gint ett_HI2Operations_T_talk_Burst_parameters;
-static gint ett_HI2Operations_CivicAddress;
-static gint ett_HI2Operations_SET_OF_DetailedCivicAddress;
-static gint ett_HI2Operations_DetailedCivicAddress;
-static gint ett_HI2Operations_ExtendedLocParameters;
-static gint ett_HI2Operations_T_mapData;
-static gint ett_HI2Operations_T_altitude;
-static gint ett_HI2Operations_T_motionStateList;
-static gint ett_HI2Operations_T_secondaryMotionState;
-static gint ett_HI2Operations_T_floor;
+static int ett_HI2Operations_CommunicationIdentifier;
+static int ett_HI2Operations_Network_Identifier;
+static int ett_HI2Operations_Network_Element_Identifier;
+static int ett_HI2Operations_TimeStamp;
+static int ett_HI2Operations_LocalTimeStamp;
+static int ett_HI2Operations_PartyInformation;
+static int ett_HI2Operations_T_partyIdentity;
+static int ett_HI2Operations_CallingPartyNumber;
+static int ett_HI2Operations_CalledPartyNumber;
+static int ett_HI2Operations_GSMLocation;
+static int ett_HI2Operations_T_geoCoordinates;
+static int ett_HI2Operations_T_utmCoordinates;
+static int ett_HI2Operations_T_utmRefCoordinates;
+static int ett_HI2Operations_UMTSLocation;
+static int ett_HI2Operations_GeographicalCoordinates;
+static int ett_HI2Operations_GA_Point;
+static int ett_HI2Operations_GA_PointWithUnCertainty;
+static int ett_HI2Operations_GA_Polygon;
+static int ett_HI2Operations_GA_Polygon_item;
+static int ett_HI2Operations_Services_Information;
+static int ett_HI2Operations_ISUP_parameters;
+static int ett_HI2Operations_DSS1_parameters_codeset_0;
+static int ett_HI2Operations_MAP_parameters;
+static int ett_HI2Operations_Supplementary_Services;
+static int ett_HI2Operations_Standard_Supplementary_Services;
+static int ett_HI2Operations_Non_Standard_Supplementary_Services;
+static int ett_HI2Operations_Non_Standard_Supplementary_Services_item;
+static int ett_HI2Operations_Other_Services;
+static int ett_HI2Operations_ISUP_SS_parameters;
+static int ett_HI2Operations_DSS1_SS_parameters_codeset_0;
+static int ett_HI2Operations_DSS1_SS_parameters_codeset_4;
+static int ett_HI2Operations_DSS1_SS_parameters_codeset_5;
+static int ett_HI2Operations_DSS1_SS_parameters_codeset_6;
+static int ett_HI2Operations_DSS1_SS_parameters_codeset_7;
+static int ett_HI2Operations_DSS1_SS_Invoke_Components;
+static int ett_HI2Operations_MAP_SS_Invoke_Components;
+static int ett_HI2Operations_MAP_SS_Parameters;
+static int ett_HI2Operations_SMS_report;
+static int ett_HI2Operations_T_sMS_Contents;
+static int ett_HI2Operations_T_enhancedContent;
+static int ett_HI2Operations_National_Parameters;
+static int ett_HI2Operations_Services_Data_Information;
+static int ett_HI2Operations_DataNodeAddress;
+static int ett_HI2Operations_IPAddress;
+static int ett_HI2Operations_IP_value;
+static int ett_HI2Operations_National_HI2_ASN1parameters;
+static int ett_HI2Operations_UUS1_Content;
+static int ett_HI2Operations_Service_Information;
+static int ett_HI2Operations_EpsIRIsContent;
+static int ett_HI2Operations_EpsIRISequence;
+static int ett_HI2Operations_EpsIRIContent;
+static int ett_HI2Operations_IRI_Parameters;
+static int ett_HI2Operations_SET_SIZE_1_10_OF_PartyInformation;
+static int ett_HI2Operations_SEQUENCE_OF_PANI_Header_Info;
+static int ett_HI2Operations_SEQUENCE_OF_PartyInformation;
+static int ett_HI2Operations_SEQUENCE_OF_AdditionalCellID;
+static int ett_HI2Operations_DataNodeIdentifier;
+static int ett_HI2Operations_PANI_Header_Info;
+static int ett_HI2Operations_PANI_Location;
+static int ett_HI2Operations_Location;
+static int ett_HI2Operations_T_uELocationTimestamp;
+static int ett_HI2Operations_AdditionalCellID;
+static int ett_HI2Operations_PLMNID;
+static int ett_HI2Operations_NCGI;
+static int ett_HI2Operations_CorrelationValues;
+static int ett_HI2Operations_T_both_IRI_CC;
+static int ett_HI2Operations_IMS_VoIP_Correlation;
+static int ett_HI2Operations_IMS_VoIP_Correlation_item;
+static int ett_HI2Operations_IRI_to_CC_Correlation;
+static int ett_HI2Operations_T_cc;
+static int ett_HI2Operations_GPRS_parameters;
+static int ett_HI2Operations_UmtsQos;
+static int ett_HI2Operations_EPS_GTPV2_SpecificParameters;
+static int ett_HI2Operations_EPSLocation;
+static int ett_HI2Operations_T_uELocationTimestamp_01;
+static int ett_HI2Operations_ProtConfigOptions;
+static int ett_HI2Operations_RemoteUeContextConnected;
+static int ett_HI2Operations_RemoteUEContext;
+static int ett_HI2Operations_EPS_PMIP_SpecificParameters;
+static int ett_HI2Operations_EPS_DSMIP_SpecificParameters;
+static int ett_HI2Operations_EPS_MIP_SpecificParameters;
+static int ett_HI2Operations_MediaDecryption_info;
+static int ett_HI2Operations_CCKeyInfo;
+static int ett_HI2Operations_PacketDataHeaderInformation;
+static int ett_HI2Operations_PacketDataHeaderReport;
+static int ett_HI2Operations_PacketDataHeaderMapped;
+static int ett_HI2Operations_PacketDataHeaderCopy;
+static int ett_HI2Operations_PacketDataSummaryReport;
+static int ett_HI2Operations_PacketFlowSummary;
+static int ett_HI2Operations_ReportInterval;
+static int ett_HI2Operations_TunnelProtocol;
+static int ett_HI2Operations_Change_Of_Target_Identity;
+static int ett_HI2Operations_Current_Previous_Systems;
+static int ett_HI2Operations_DeregistrationReason;
+static int ett_HI2Operations_PTCEncryptionInfo;
+static int ett_HI2Operations_PTC;
+static int ett_HI2Operations_AccessPolicyType;
+static int ett_HI2Operations_AssociatePresenceStatus;
+static int ett_HI2Operations_EmergencyGroupState;
+static int ett_HI2Operations_FloorActivity;
+static int ett_HI2Operations_PTCAddress;
+static int ett_HI2Operations_RTPSetting;
+static int ett_HI2Operations_TalkburstControlSetting;
+static int ett_HI2Operations_T_talk_Burst_parameters;
+static int ett_HI2Operations_CivicAddress;
+static int ett_HI2Operations_SET_OF_DetailedCivicAddress;
+static int ett_HI2Operations_DetailedCivicAddress;
+static int ett_HI2Operations_ExtendedLocParameters;
+static int ett_HI2Operations_T_mapData;
+static int ett_HI2Operations_T_altitude;
+static int ett_HI2Operations_T_motionStateList;
+static int ett_HI2Operations_T_secondaryMotionState;
+static int ett_HI2Operations_T_floor;
diff --git a/epan/dissectors/packet-a21.c b/epan/dissectors/packet-a21.c
index 9f0b440bb0..adf75ad13e 100644
--- a/epan/dissectors/packet-a21.c
+++ b/epan/dissectors/packet-a21.c
@@ -24,8 +24,8 @@ void proto_register_a21(void);
void proto_reg_handoff_a21(void);
#define A21_PORT 23272
-static dissector_handle_t a21_handle = NULL;
-static dissector_handle_t gcsna_handle = NULL;
+static dissector_handle_t a21_handle;
+static dissector_handle_t gcsna_handle;
static int proto_a21;
diff --git a/epan/dissectors/packet-acdr.c b/epan/dissectors/packet-acdr.c
index 87db046939..7358a93fc2 100644
--- a/epan/dissectors/packet-acdr.c
+++ b/epan/dissectors/packet-acdr.c
@@ -389,7 +389,7 @@ static dissector_handle_t acdr_mii_dissector_handle;
static dissector_handle_t acdr_rtp_dissector_handle;
static dissector_handle_t acdr_xml_dissector_handle;
static dissector_handle_t rtp_dissector_handle;
-static dissector_handle_t udp_stun_dissector_handle = NULL;
+static dissector_handle_t udp_stun_dissector_handle;
static dissector_handle_t rtp_events_handle;
static dissector_handle_t rtp_rfc2198_handle;
static dissector_handle_t amr_handle;
diff --git a/epan/dissectors/packet-acn.c b/epan/dissectors/packet-acn.c
index 99d9600d5c..b80e0cff25 100644
--- a/epan/dissectors/packet-acn.c
+++ b/epan/dissectors/packet-acn.c
@@ -627,11 +627,11 @@ static int hf_acn_dmx_sync_reserved;
/* static int hf_acn_dmx_dmp_vector; */
/* Try heuristic ACN decode */
-static gboolean global_acn_dmx_enable = FALSE;
-static gint global_acn_dmx_display_view = 0;
-static gint global_acn_dmx_display_line_format = 0;
-static gboolean global_acn_dmx_display_zeros = FALSE;
-static gboolean global_acn_dmx_display_leading_zeros = FALSE;
+static bool global_acn_dmx_enable;
+static gint global_acn_dmx_display_view;
+static gint global_acn_dmx_display_line_format;
+static bool global_acn_dmx_display_zeros;
+static bool global_acn_dmx_display_leading_zeros;
static int proto_magic;
static gint ett_magic;
@@ -5377,7 +5377,7 @@ ltos(guint8 level, gchar *string, guint8 base, gchar leading_char, guint8 min_ch
/* verify base */
if (base < 2 || base > 16) {
*string = '\0';
- return(string);
+ return string;
}
/* deal with zeros */
if ((level == 0) && (!show_zero)) {
@@ -5386,7 +5386,7 @@ ltos(guint8 level, gchar *string, guint8 base, gchar leading_char, guint8 min_ch
}
string[i++] = ' ';
string[i] = '\0';
- return(string + i);
+ return string+i;
}
i = 0;
@@ -5408,7 +5408,7 @@ ltos(guint8 level, gchar *string, guint8 base, gchar leading_char, guint8 min_ch
/* add a space at the end (ok it's at the start but it will be at the end)*/
string[i++] = ' ';
string[i] = '\0';
- return(string + i);
+ return string+i;
}
@@ -7906,7 +7906,7 @@ proto_register_acn(void)
{ &hf_acn_reciprocal_channel,
{ "Reciprocal Channel Number", "acn.reciprocal_channel",
FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
- "Reciprocal Channel", HFILL }
+ NULL, HFILL }
},
/* Refuse Code */
{ &hf_acn_refuse_code,
diff --git a/epan/dissectors/packet-acp133.c b/epan/dissectors/packet-acp133.c
index 447f23558d..347bf7ec02 100644
--- a/epan/dissectors/packet-acp133.c
+++ b/epan/dissectors/packet-acp133.c
@@ -131,26 +131,26 @@ static int hf_acp133_OnSupported_acp127_tn;
/* Initialize the subtree pointers */
static gint ett_acp133;
-static gint ett_acp133_OnSupported;
-static gint ett_acp133_Addressees;
-static gint ett_acp133_MonthlyUKMs;
-static gint ett_acp133_SEQUENCE_OF_UKMEntry;
-static gint ett_acp133_Remarks;
-static gint ett_acp133_RIParameters;
-static gint ett_acp133_RIParametersDeprecated;
-static gint ett_acp133_UKMEntry;
-static gint ett_acp133_PairwiseTag;
-static gint ett_acp133_MLReceiptPolicy;
-static gint ett_acp133_SEQUENCE_OF_GeneralNames;
-static gint ett_acp133_DLSubmitPermission;
-static gint ett_acp133_DLPolicy;
-static gint ett_acp133_T_requested_delivery_method;
-static gint ett_acp133_SEQUENCE_OF_AlgorithmInformation;
-static gint ett_acp133_AlgorithmInformation;
-static gint ett_acp133_AddressCapabilities;
-static gint ett_acp133_SET_OF_Capability;
-static gint ett_acp133_Capability;
-static gint ett_acp133_SET_OF_ExtendedContentType;
+static int ett_acp133_OnSupported;
+static int ett_acp133_Addressees;
+static int ett_acp133_MonthlyUKMs;
+static int ett_acp133_SEQUENCE_OF_UKMEntry;
+static int ett_acp133_Remarks;
+static int ett_acp133_RIParameters;
+static int ett_acp133_RIParametersDeprecated;
+static int ett_acp133_UKMEntry;
+static int ett_acp133_PairwiseTag;
+static int ett_acp133_MLReceiptPolicy;
+static int ett_acp133_SEQUENCE_OF_GeneralNames;
+static int ett_acp133_DLSubmitPermission;
+static int ett_acp133_DLPolicy;
+static int ett_acp133_T_requested_delivery_method;
+static int ett_acp133_SEQUENCE_OF_AlgorithmInformation;
+static int ett_acp133_AlgorithmInformation;
+static int ett_acp133_AddressCapabilities;
+static int ett_acp133_SET_OF_Capability;
+static int ett_acp133_Capability;
+static int ett_acp133_SET_OF_ExtendedContentType;
static const value_string acp133_ACPPreferredDelivery_vals[] = {
diff --git a/epan/dissectors/packet-acr122.c b/epan/dissectors/packet-acr122.c
index 3e85643862..6cefcfc663 100644
--- a/epan/dissectors/packet-acr122.c
+++ b/epan/dissectors/packet-acr122.c
@@ -82,7 +82,7 @@ static expert_field ei_unknown_command_or_invalid_parameters;
static dissector_handle_t acr122_handle;
static dissector_handle_t pn532_handle;
-static wmem_tree_t *command_info = NULL;
+static wmem_tree_t *command_info;
typedef struct command_data_t {
guint32 bus_id;
diff --git a/epan/dissectors/packet-acse.c b/epan/dissectors/packet-acse.c
index e6acb9704c..1a7bc4d700 100644
--- a/epan/dissectors/packet-acse.c
+++ b/epan/dissectors/packet-acse.c
@@ -169,47 +169,47 @@ static gint hf_acse_user_data;
/* Initialize the subtree pointers */
static gint ett_acse;
-static gint ett_acse_EXTERNALt_U;
-static gint ett_acse_T_encoding;
-static gint ett_acse_ACSE_apdu;
-static gint ett_acse_AARQ_apdu_U;
-static gint ett_acse_T_AARQ_protocol_version;
-static gint ett_acse_AARE_apdu_U;
-static gint ett_acse_T_AARE_protocol_version;
-static gint ett_acse_RLRQ_apdu_U;
-static gint ett_acse_RLRE_apdu_U;
-static gint ett_acse_ABRT_apdu_U;
-static gint ett_acse_A_DT_apdu_U;
-static gint ett_acse_ACRQ_apdu_U;
-static gint ett_acse_ACRP_apdu_U;
-static gint ett_acse_ACSE_requirements;
-static gint ett_acse_AP_title;
-static gint ett_acse_ASO_qualifier;
-static gint ett_acse_AE_title;
-static gint ett_acse_ASOI_tag;
-static gint ett_acse_ASOI_tag_item;
-static gint ett_acse_ASO_context_name_list;
-static gint ett_acse_Syntactic_context_list;
-static gint ett_acse_Context_list;
-static gint ett_acse_Context_list_item;
-static gint ett_acse_SEQUENCE_OF_TransferSyntaxName;
-static gint ett_acse_Default_Context_List;
-static gint ett_acse_Default_Context_List_item;
-static gint ett_acse_P_context_result_list;
-static gint ett_acse_P_context_result_list_item;
-static gint ett_acse_Associate_source_diagnostic;
-static gint ett_acse_Association_data;
-static gint ett_acse_User_Data;
-static gint ett_acse_PDV_list;
-static gint ett_acse_T_presentation_data_values;
-static gint ett_acse_Authentication_value_other;
-static gint ett_acse_Authentication_value;
+static int ett_acse_EXTERNALt_U;
+static int ett_acse_T_encoding;
+static int ett_acse_ACSE_apdu;
+static int ett_acse_AARQ_apdu_U;
+static int ett_acse_T_AARQ_protocol_version;
+static int ett_acse_AARE_apdu_U;
+static int ett_acse_T_AARE_protocol_version;
+static int ett_acse_RLRQ_apdu_U;
+static int ett_acse_RLRE_apdu_U;
+static int ett_acse_ABRT_apdu_U;
+static int ett_acse_A_DT_apdu_U;
+static int ett_acse_ACRQ_apdu_U;
+static int ett_acse_ACRP_apdu_U;
+static int ett_acse_ACSE_requirements;
+static int ett_acse_AP_title;
+static int ett_acse_ASO_qualifier;
+static int ett_acse_AE_title;
+static int ett_acse_ASOI_tag;
+static int ett_acse_ASOI_tag_item;
+static int ett_acse_ASO_context_name_list;
+static int ett_acse_Syntactic_context_list;
+static int ett_acse_Context_list;
+static int ett_acse_Context_list_item;
+static int ett_acse_SEQUENCE_OF_TransferSyntaxName;
+static int ett_acse_Default_Context_List;
+static int ett_acse_Default_Context_List_item;
+static int ett_acse_P_context_result_list;
+static int ett_acse_P_context_result_list_item;
+static int ett_acse_Associate_source_diagnostic;
+static int ett_acse_Association_data;
+static int ett_acse_User_Data;
+static int ett_acse_PDV_list;
+static int ett_acse_T_presentation_data_values;
+static int ett_acse_Authentication_value_other;
+static int ett_acse_Authentication_value;
static expert_field ei_acse_dissector_not_available;
static expert_field ei_acse_malformed;
static expert_field ei_acse_invalid_oid;
-static dissector_handle_t acse_handle = NULL;
+static dissector_handle_t acse_handle;
/* indirect_reference, used to pick up the signalling so we know what
kind of data is transferred in SES_DATA_TRANSFER_PDUs */
@@ -222,7 +222,7 @@ typedef struct _acse_ctx_oid_t {
guint32 ctx_id;
char *oid;
} acse_ctx_oid_t;
-static wmem_map_t *acse_ctx_oid_table = NULL;
+static wmem_map_t *acse_ctx_oid_table;
static guint
acse_ctx_oid_hash(gconstpointer k)
diff --git a/epan/dissectors/packet-adb.c b/epan/dissectors/packet-adb.c
index b18abe73a4..a8267efe9d 100644
--- a/epan/dissectors/packet-adb.c
+++ b/epan/dissectors/packet-adb.c
@@ -61,8 +61,8 @@ static dissector_handle_t adb_service_handle;
static gint proto_tcp;
static gint proto_usb;
-static wmem_tree_t *command_info = NULL;
-static wmem_tree_t *service_info = NULL;
+static wmem_tree_t *command_info;
+static wmem_tree_t *service_info;
typedef struct service_data_t {
guint32 start_in_frame;
diff --git a/epan/dissectors/packet-adb_cs.c b/epan/dissectors/packet-adb_cs.c
index e05013716d..5169f1132f 100644
--- a/epan/dissectors/packet-adb_cs.c
+++ b/epan/dissectors/packet-adb_cs.c
@@ -37,7 +37,7 @@ static expert_field ei_incomplete_message;
static dissector_handle_t adb_cs_handle;
static dissector_handle_t adb_service_handle;
-static wmem_tree_t *client_requests = NULL;
+static wmem_tree_t *client_requests;
static guint server_port = 5037;
diff --git a/epan/dissectors/packet-adb_service.c b/epan/dissectors/packet-adb_service.c
index 3caaa94c89..d1c65c7345 100644
--- a/epan/dissectors/packet-adb_service.c
+++ b/epan/dissectors/packet-adb_service.c
@@ -66,11 +66,11 @@ static gint ett_data;
static dissector_handle_t adb_service_handle;
static dissector_handle_t logcat_handle;
-static gboolean pref_dissect_more_detail_framebuffer = FALSE;
+static bool pref_dissect_more_detail_framebuffer;
-static wmem_tree_t *fragments = NULL;
-static wmem_tree_t *framebuffer_infos = NULL;
-static wmem_tree_t *continuation_infos = NULL;
+static wmem_tree_t *fragments;
+static wmem_tree_t *framebuffer_infos;
+static wmem_tree_t *continuation_infos;
typedef struct _framebuffer_data_t {
guint32 data_in;
@@ -157,7 +157,7 @@ dissect_adb_service(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
guint32 data_length;
continuation_data_t *continuation_data;
- DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 1 <= sizeof(key) / sizeof(key[0]), "Tree session key is too small");
+ DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 1 <= array_length(key), "Tree session key is too small");
for (i_key = 0; i_key < adb_service_data->session_key_length; i_key += 1) {
key[i_key].length = 1;
key[i_key].key = &adb_service_data->session_key[i_key];
@@ -225,7 +225,7 @@ dissect_adb_service(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
} else if (g_str_has_prefix(service, "framebuffer:")) {
framebuffer_data_t *framebuffer_data = NULL;
- DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 1 <= sizeof(key) / sizeof(key[0]), "Tree session key is too small");
+ DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 1 <= array_length(key), "Tree session key is too small");
for (i_key = 0; i_key < adb_service_data->session_key_length; i_key += 1) {
key[i_key].length = 1;
key[i_key].key = &adb_service_data->session_key[i_key];
@@ -402,7 +402,7 @@ dissect_adb_service(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
gint logcat_length = 0;
fragment_t *fragment;
- DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 1 <= sizeof(key) / sizeof(key[0]), "Tree session key is too small");
+ DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 1 <= array_length(key), "Tree session key is too small");
for (i_key = 0; i_key < adb_service_data->session_key_length; i_key += 1) {
key[i_key].length = 1;
key[i_key].key = &adb_service_data->session_key[i_key];
@@ -490,7 +490,7 @@ dissect_adb_service(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
} else {
if (!pinfo->fd->visited) {
- DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 2 <= sizeof(key) / sizeof(key[0]), "Tree session key is too small");
+ DISSECTOR_ASSERT_HINT(adb_service_data->session_key_length + 2 <= array_length(key), "Tree session key is too small");
for (i_key = 0; i_key < adb_service_data->session_key_length; i_key += 1) {
key[i_key].length = 1;
key[i_key].key = &adb_service_data->session_key[i_key];
diff --git a/epan/dissectors/packet-adwin.c b/epan/dissectors/packet-adwin.c
index 110384dfb6..735ac5bc63 100644
--- a/epan/dissectors/packet-adwin.c
+++ b/epan/dissectors/packet-adwin.c
@@ -430,7 +430,7 @@ static value_string_ext packet_type_mapping_ext = VALUE_STRING_EXT_INIT(packet_t
/* Initialize the protocol and registered fields */
static int proto_adwin;
-static int global_adwin_dissect_data = 1;
+static bool global_adwin_dissect_data = true;
static int hf_adwin_address;
static int hf_adwin_armVersion;
@@ -1085,7 +1085,7 @@ dissect_adwin(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U
|| length == UDPR4_LENGTH
|| length == GetDataSHPacket_LENGTH
|| length == GetDataSHRequest_LENGTH))
- return(0);
+ return 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "ADwin");
col_clear(pinfo->cinfo, COL_INFO);
diff --git a/epan/dissectors/packet-aeron.c b/epan/dissectors/packet-aeron.c
index c2208ff0bd..6f154a1c27 100644
--- a/epan/dissectors/packet-aeron.c
+++ b/epan/dissectors/packet-aeron.c
@@ -40,10 +40,10 @@ static heur_dissector_list_t aeron_heuristic_subdissector_list;
/* Preferences. */
/*----------------------------------------------------------------------------*/
-static gboolean aeron_sequence_analysis = FALSE;
-static gboolean aeron_stream_analysis = FALSE;
-static gboolean aeron_reassemble_fragments = FALSE;
-static gboolean aeron_use_heuristic_subdissectors = FALSE;
+static bool aeron_sequence_analysis;
+static bool aeron_stream_analysis;
+static bool aeron_reassemble_fragments;
+static bool aeron_use_heuristic_subdissectors;
/*----------------------------------------------------------------------------*/
/* Aeron position routines. */
@@ -70,7 +70,7 @@ static int aeron_pos_compare(const aeron_pos_t * pos1, const aeron_pos_t * pos2)
{
if (pos1->term_offset == pos2->term_offset)
{
- return (0);
+ return 0;
}
else
{
@@ -137,7 +137,7 @@ static gboolean aeron_pos_add_length(aeron_pos_t * pos, guint32 length, guint32
/*----------------------------------------------------------------------------*/
/* Aeron frame information management. */
/*----------------------------------------------------------------------------*/
-static wmem_tree_t * aeron_frame_info_tree = NULL;
+static wmem_tree_t * aeron_frame_info_tree;
struct aeron_frame_info_t_stct;
typedef struct aeron_frame_info_t_stct aeron_frame_info_t;
@@ -651,19 +651,19 @@ static gboolean aeron_is_address_multicast(const address * addr)
case AT_IPv4:
if (addr_data && ((addr_data[0] & 0xf0) == 0xe0))
{
- return (TRUE);
+ return TRUE;
}
break;
case AT_IPv6:
if (addr_data && (addr_data[0] == 0xff))
{
- return (TRUE);
+ return TRUE;
}
break;
default:
break;
}
- return (FALSE);
+ return FALSE;
}
static char * aeron_format_transport_uri(const aeron_conversation_info_t * cinfo)
@@ -2009,7 +2009,7 @@ static bool aeron_msg_process_orphan_fragments_msg_cb(const void *key _U_, void
if (msg->complete)
{
/* This message is complete, no need to check for orphans */
- return (FALSE);
+ return FALSE;
}
/* Scan through the orphan fragments */
while (TRUE)
@@ -2037,7 +2037,7 @@ static bool aeron_msg_process_orphan_fragments_msg_cb(const void *key _U_, void
}
frag_found = FALSE;
}
- return (FALSE);
+ return FALSE;
}
static void aeron_msg_process_orphan_fragments(aeron_term_t * term)
@@ -2169,7 +2169,7 @@ static void aeron_msg_process(tvbuff_t * tvb, int offset, packet_info * pinfo, a
msg = aeron_term_msg_find_le(term, info->term_offset);
if (msg != NULL)
{
- /* Is this the next expexted term offset? */
+ /* Is this the next expected term offset? */
if (msg->next_expected_term_offset == info->term_offset)
{
/* Yes - we can add the fragment to the message */
@@ -3006,13 +3006,13 @@ static gboolean test_aeron_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
length_remaining = tvb_captured_length_remaining(tvb, 0);
if (length_remaining < HDR_LENGTH_MIN)
{
- return (FALSE);
+ return FALSE;
}
/* We know we have at least HDR_LENGTH_MIN (12) bytes captured */
ver = tvb_get_guint8(tvb, O_AERON_BASIC_VERSION);
if (ver != 0)
{
- return (FALSE);
+ return FALSE;
}
packet_type = tvb_get_letohs(tvb, O_AERON_BASIC_TYPE);
switch (packet_type)
@@ -3027,14 +3027,14 @@ static gboolean test_aeron_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
case HDR_TYPE_EXT:
break;
default:
- return (FALSE);
+ return FALSE;
}
length = (gint) (tvb_get_letohl(tvb, O_AERON_BASIC_FRAME_LENGTH) & 0x7fffffff);
if (!((packet_type == HDR_TYPE_DATA) && (length == 0)))
{
if (length < HDR_LENGTH_MIN)
{
- return (FALSE);
+ return FALSE;
}
}
if (packet_type == HDR_TYPE_PAD)
@@ -3043,22 +3043,22 @@ static gboolean test_aeron_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
guint32 term_offset = tvb_get_letohl(tvb, O_AERON_PAD_TERM_OFFSET);
if (term_offset == 0)
{
- return (FALSE);
+ return FALSE;
}
}
else
{
if (length > length_remaining)
{
- return (FALSE);
+ return FALSE;
}
}
rc = dissect_aeron(tvb, pinfo, tree, user_data);
if (rc == 0)
{
- return (FALSE);
+ return FALSE;
}
- return (TRUE);
+ return TRUE;
}
/* Register all the bits needed with the filtering engine */
diff --git a/epan/dissectors/packet-afp.c b/epan/dissectors/packet-afp.c
index 3f9ee8e443..3ef9fbce06 100644
--- a/epan/dissectors/packet-afp.c
+++ b/epan/dissectors/packet-afp.c
@@ -1149,7 +1149,7 @@ typedef struct {
guint16 tid;
} afp_request_key;
-static wmem_map_t *afp_request_hash = NULL;
+static wmem_map_t *afp_request_hash;
static guint Vol; /* volume */
static guint Did; /* parent directory ID */
@@ -1422,7 +1422,7 @@ decode_file_attribute(proto_tree *tree, tvbuff_t *tvb, gint offset, int shared)
}
attribute = tvb_get_ntohs(tvb, offset);
- return(attribute);
+ return attribute;
}
static void
@@ -1677,7 +1677,7 @@ decode_dir_attribute(proto_tree *tree, tvbuff_t *tvb, gint offset)
ett_afp_dir_attribute, attributes, ENC_BIG_ENDIAN);
attribute = tvb_get_ntohs(tvb, offset);
- return(attribute);
+ return attribute;
}
/* -------------------------- */
@@ -7132,11 +7132,11 @@ proto_register_afp(void)
{ &hf_afp_server_flag_notify,
{ "Support server notifications", "afp.server_flag.notify",
FT_BOOLEAN, 16, NULL, AFPSRVRINFO_SRVNOTIFY,
- "Server support notifications", HFILL }},
+ NULL, HFILL }},
{ &hf_afp_server_flag_reconnect,
{ "Support server reconnect", "afp.server_flag.reconnect",
FT_BOOLEAN, 16, NULL, AFPSRVRINFO_SRVRECONNECT,
- "Server support reconnect", HFILL }},
+ NULL, HFILL }},
{ &hf_afp_server_flag_directory,
{ "Support directory services", "afp.server_flag.directory",
FT_BOOLEAN, 16, NULL, AFPSRVRINFO_SRVDIRECTORY,
diff --git a/epan/dissectors/packet-afs.c b/epan/dissectors/packet-afs.c
index 998429e868..4e6e7805ab 100644
--- a/epan/dissectors/packet-afs.c
+++ b/epan/dissectors/packet-afs.c
@@ -32,7 +32,7 @@
void proto_register_afs(void);
/* Defragment (reassemble) fragmented AFS traffic */
-static gboolean afs_defragment = FALSE;
+static bool afs_defragment;
#define AFS_PORT_FS 7000
#define AFS_PORT_CB 7001
@@ -1411,7 +1411,7 @@ struct afs_request_val {
nstime_t req_time;
};
-static wmem_map_t *afs_request_hash = NULL;
+static wmem_map_t *afs_request_hash;
static reassembly_table afs_reassembly_table;
/*
diff --git a/epan/dissectors/packet-aim.c b/epan/dissectors/packet-aim.c
index cdaad0af98..2c77c67a7e 100644
--- a/epan/dissectors/packet-aim.c
+++ b/epan/dissectors/packet-aim.c
@@ -539,11 +539,11 @@ static gint ett_aim_userlookup;
static expert_field ei_aim_messageblock_len;
/* desegmentation of AIM over TCP */
-static gboolean aim_desegment = TRUE;
+static bool aim_desegment = true;
static dissector_handle_t aim_handle;
-static GList *families = NULL;
+static GList *families;
static const aim_subtype
*aim_get_subtype( guint16 famnum, guint16 subtype )
@@ -4425,7 +4425,7 @@ proto_register_aim(void)
static hf_register_info hf_userlookup[] = {
{ &hf_aim_userlookup_email,
- { "Email address looked for", "aim_lookup.email", FT_STRING, BASE_NONE, NULL, 0, "Email address", HFILL }
+ { "Email address looked for", "aim_lookup.email", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }
},
};
diff --git a/epan/dissectors/packet-ain.c b/epan/dissectors/packet-ain.c
index 535b370b23..1523a75d6e 100644
--- a/epan/dissectors/packet-ain.c
+++ b/epan/dissectors/packet-ain.c
@@ -555,188 +555,188 @@ static int ett_ain_digits;
static int ett_ain_carrierformat;
static int ett_ain_amaslpid;
-static gint ett_ain_CallInfoFromResourceArg;
-static gint ett_ain_CloseArg;
-static gint ett_ain_CTRClearArg;
-static gint ett_ain_FailureOutcomeArg;
-static gint ett_ain_InfoAnalyzedArg;
-static gint ett_ain_InfoCollectedArg;
-static gint ett_ain_NetworkBusyArg;
-static gint ett_ain_OAnswerArg;
-static gint ett_ain_OAbandonArg;
-static gint ett_ain_ODisconnectArg;
-static gint ett_ain_OMidCallArg;
-static gint ett_ain_ONoAnswerArg;
-static gint ett_ain_OSuspendedArg;
-static gint ett_ain_OTermSeizedArg;
-static gint ett_ain_OriginationAttemptArg;
-static gint ett_ain_RES_resourceClear;
-static gint ett_ain_ResourceClearArg;
-static gint ett_ain_SuccessOutcomeArg;
-static gint ett_ain_TAnswerArg;
-static gint ett_ain_TBusyArg;
-static gint ett_ain_TDisconnectArg;
-static gint ett_ain_TDTMFEnteredArg;
-static gint ett_ain_TMidCallArg;
-static gint ett_ain_TNoAnswerArg;
-static gint ett_ain_TerminationAttemptArg;
-static gint ett_ain_TermResourceAvailableArg;
-static gint ett_ain_TimeoutArg;
-static gint ett_ain_AnalyzeRouteArg;
-static gint ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber;
-static gint ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC;
-static gint ett_ain_AuthorizeTerminationArg;
-static gint ett_ain_CancelResourceEventArg;
-static gint ett_ain_CollectInformationArg;
-static gint ett_ain_ConnectToResourceArg;
-static gint ett_ain_ContinueArg;
-static gint ett_ain_CreateCallArg;
-static gint ett_ain_CreateCallRes;
-static gint ett_ain_DisconnectArg;
-static gint ett_ain_DisconnectLegArg;
-static gint ett_ain_ForwardCallArg;
-static gint ett_ain_MergeCallArg;
-static gint ett_ain_MoveLegArg;
-static gint ett_ain_OfferCallArg;
-static gint ett_ain_OriginateCallArg;
-static gint ett_ain_ReconnectArg;
-static gint ett_ain_RES_sendToResource;
-static gint ett_ain_SendToResourceArg;
-static gint ett_ain_SetTimerArg;
-static gint ett_ain_SplitLegArg;
-static gint ett_ain_AcgArg;
-static gint ett_ain_RES_acgGlobalCtrlRestore;
-static gint ett_ain_AcgGlobalCtrlRestoreArg;
-static gint ett_ain_AcgOverflowArg;
-static gint ett_ain_RES_activityTest;
-static gint ett_ain_ActivityTestArg;
-static gint ett_ain_RES_callTypeRequest;
-static gint ett_ain_CallTypeRequestArg;
-static gint ett_ain_ControlRequestArg;
-static gint ett_ain_RES_echoRequest;
-static gint ett_ain_EchoRequestArg;
-static gint ett_ain_FurnishAMAInformationArg;
-static gint ett_ain_MonitorForChangeArg;
-static gint ett_ain_MonitorSuccessArg;
-static gint ett_ain_NCADataArg;
-static gint ett_ain_T_id;
-static gint ett_ain_RES_nCARequest;
-static gint ett_ain_NCARequestArg;
-static gint ett_ain_RES_queryRequest;
-static gint ett_ain_QueryRequestArg;
-static gint ett_ain_RequestReportBCMEventArg;
-static gint ett_ain_StatusReportedArg;
-static gint ett_ain_TerminationNotificationArg;
-static gint ett_ain_RES_update;
-static gint ett_ain_UpdateArg;
-static gint ett_ain_RES_updateRequest;
-static gint ett_ain_UpdateRequestArg;
-static gint ett_ain_PAR_applicationError;
-static gint ett_ain_PAR_failureReport;
-static gint ett_ain_AdministrableObject;
-static gint ett_ain_TriggerItemAssignment_U;
-static gint ett_ain_SSPUserResourceID;
-static gint ett_ain_DnCtID;
-static gint ett_ain_TriggerItemID;
-static gint ett_ain_SSPUserResourceSubID;
-static gint ett_ain_ISDNBChannelID;
-static gint ett_ain_SSPUserResource_U;
-static gint ett_ain_UpdateGroups;
-static gint ett_ain_UpdateGroup1;
-static gint ett_ain_Action1;
-static gint ett_ain_UpdateGroup2;
-static gint ett_ain_Action2;
-static gint ett_ain_UpdateGroup3;
-static gint ett_ain_Action3;
-static gint ett_ain_EditSpecificEntry;
-static gint ett_ain_Entry;
-static gint ett_ain_UpdateGroup4;
-static gint ett_ain_Action4;
-static gint ett_ain_ForwardingDn;
-static gint ett_ain_Set;
-static gint ett_ain_UpdateGroup5;
-static gint ett_ain_Action5;
-static gint ett_ain_UpdateGroup6;
-static gint ett_ain_Action6;
-static gint ett_ain_UpdateGroup7;
-static gint ett_ain_Action7;
-static gint ett_ain_UpdateGroup8;
-static gint ett_ain_Action8;
-static gint ett_ain_UpdateGroup9;
-static gint ett_ain_Action9;
-static gint ett_ain_ChangeList;
-static gint ett_ain_SrhrGroup_U;
-static gint ett_ain_NetworkTestDesignator_U;
-static gint ett_ain_NtdID;
-static gint ett_ain_OperationsMonitoringAssignment_U;
-static gint ett_ain_OperationsMonitoredItemID;
-static gint ett_ain_AMAMeasurement_U;
-static gint ett_ain_Amp2_U;
-static gint ett_ain_AmpAINNodeID;
-static gint ett_ain_AmpSvcProvID;
-static gint ett_ain_ApplicationErrorString_U;
-static gint ett_ain_ApplyRestrictions_U;
-static gint ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation;
-static gint ett_ain_DisplayInformation;
-static gint ett_ain_EDPNotification_U;
-static gint ett_ain_EDPRequest_U;
-static gint ett_ain_ExtensionParameter;
-static gint ett_ain_FacilityGID;
-static gint ett_ain_FailedMessage_U;
-static gint ett_ain_InvParms;
-static gint ett_ain_Parms;
-static gint ett_ain_GapInterval;
-static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress;
-static gint ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits;
-static gint ett_ain_InfoProvided_U;
-static gint ett_ain_EntireList;
-static gint ett_ain_Entry2;
-static gint ett_ain_MemorySlot;
-static gint ett_ain_Incoming;
-static gint ett_ain_Outgoing;
-static gint ett_ain_Empty;
-static gint ett_ain_ProvideInfo_U;
-static gint ett_ain_RequestGroups;
-static gint ett_ain_RequestGroup1;
-static gint ett_ain_Request1;
-static gint ett_ain_RequestGroup2;
-static gint ett_ain_Request2;
-static gint ett_ain_RequestGroup3;
-static gint ett_ain_Request3;
-static gint ett_ain_RequestGroup4;
-static gint ett_ain_Request4;
-static gint ett_ain_RequestGroup5;
-static gint ett_ain_Request5;
-static gint ett_ain_RequestGroup6;
-static gint ett_ain_Request6;
-static gint ett_ain_RequestMemorySlot;
-static gint ett_ain_ServiceProviderID;
-static gint ett_ain_StrParameterBlock_U;
-static gint ett_ain_AnnouncementBlock;
-static gint ett_ain_UninterAnnounceBlock;
-static gint ett_ain_InterAnnounceBlock;
-static gint ett_ain_AnnouncementDigitBlock;
-static gint ett_ain_TimeoutTimer_U;
-static gint ett_ain_UserID_U;
-static gint ett_ain_T_bri;
-static gint ett_ain_Code;
-static gint ett_ain_ROS;
-static gint ett_ain_Invoke;
-static gint ett_ain_T_linkedId;
-static gint ett_ain_ReturnResult;
-static gint ett_ain_T_result;
-static gint ett_ain_ReturnError;
-static gint ett_ain_Reject;
-static gint ett_ain_T_problem;
-static gint ett_ain_InvokeId;
+static int ett_ain_CallInfoFromResourceArg;
+static int ett_ain_CloseArg;
+static int ett_ain_CTRClearArg;
+static int ett_ain_FailureOutcomeArg;
+static int ett_ain_InfoAnalyzedArg;
+static int ett_ain_InfoCollectedArg;
+static int ett_ain_NetworkBusyArg;
+static int ett_ain_OAnswerArg;
+static int ett_ain_OAbandonArg;
+static int ett_ain_ODisconnectArg;
+static int ett_ain_OMidCallArg;
+static int ett_ain_ONoAnswerArg;
+static int ett_ain_OSuspendedArg;
+static int ett_ain_OTermSeizedArg;
+static int ett_ain_OriginationAttemptArg;
+static int ett_ain_RES_resourceClear;
+static int ett_ain_ResourceClearArg;
+static int ett_ain_SuccessOutcomeArg;
+static int ett_ain_TAnswerArg;
+static int ett_ain_TBusyArg;
+static int ett_ain_TDisconnectArg;
+static int ett_ain_TDTMFEnteredArg;
+static int ett_ain_TMidCallArg;
+static int ett_ain_TNoAnswerArg;
+static int ett_ain_TerminationAttemptArg;
+static int ett_ain_TermResourceAvailableArg;
+static int ett_ain_TimeoutArg;
+static int ett_ain_AnalyzeRouteArg;
+static int ett_ain_SEQUENCE_SIZE_1_2_OF_AMALineNumber;
+static int ett_ain_SEQUENCE_SIZE_1_5_OF_AMADigitsDialedWC;
+static int ett_ain_AuthorizeTerminationArg;
+static int ett_ain_CancelResourceEventArg;
+static int ett_ain_CollectInformationArg;
+static int ett_ain_ConnectToResourceArg;
+static int ett_ain_ContinueArg;
+static int ett_ain_CreateCallArg;
+static int ett_ain_CreateCallRes;
+static int ett_ain_DisconnectArg;
+static int ett_ain_DisconnectLegArg;
+static int ett_ain_ForwardCallArg;
+static int ett_ain_MergeCallArg;
+static int ett_ain_MoveLegArg;
+static int ett_ain_OfferCallArg;
+static int ett_ain_OriginateCallArg;
+static int ett_ain_ReconnectArg;
+static int ett_ain_RES_sendToResource;
+static int ett_ain_SendToResourceArg;
+static int ett_ain_SetTimerArg;
+static int ett_ain_SplitLegArg;
+static int ett_ain_AcgArg;
+static int ett_ain_RES_acgGlobalCtrlRestore;
+static int ett_ain_AcgGlobalCtrlRestoreArg;
+static int ett_ain_AcgOverflowArg;
+static int ett_ain_RES_activityTest;
+static int ett_ain_ActivityTestArg;
+static int ett_ain_RES_callTypeRequest;
+static int ett_ain_CallTypeRequestArg;
+static int ett_ain_ControlRequestArg;
+static int ett_ain_RES_echoRequest;
+static int ett_ain_EchoRequestArg;
+static int ett_ain_FurnishAMAInformationArg;
+static int ett_ain_MonitorForChangeArg;
+static int ett_ain_MonitorSuccessArg;
+static int ett_ain_NCADataArg;
+static int ett_ain_T_id;
+static int ett_ain_RES_nCARequest;
+static int ett_ain_NCARequestArg;
+static int ett_ain_RES_queryRequest;
+static int ett_ain_QueryRequestArg;
+static int ett_ain_RequestReportBCMEventArg;
+static int ett_ain_StatusReportedArg;
+static int ett_ain_TerminationNotificationArg;
+static int ett_ain_RES_update;
+static int ett_ain_UpdateArg;
+static int ett_ain_RES_updateRequest;
+static int ett_ain_UpdateRequestArg;
+static int ett_ain_PAR_applicationError;
+static int ett_ain_PAR_failureReport;
+static int ett_ain_AdministrableObject;
+static int ett_ain_TriggerItemAssignment_U;
+static int ett_ain_SSPUserResourceID;
+static int ett_ain_DnCtID;
+static int ett_ain_TriggerItemID;
+static int ett_ain_SSPUserResourceSubID;
+static int ett_ain_ISDNBChannelID;
+static int ett_ain_SSPUserResource_U;
+static int ett_ain_UpdateGroups;
+static int ett_ain_UpdateGroup1;
+static int ett_ain_Action1;
+static int ett_ain_UpdateGroup2;
+static int ett_ain_Action2;
+static int ett_ain_UpdateGroup3;
+static int ett_ain_Action3;
+static int ett_ain_EditSpecificEntry;
+static int ett_ain_Entry;
+static int ett_ain_UpdateGroup4;
+static int ett_ain_Action4;
+static int ett_ain_ForwardingDn;
+static int ett_ain_Set;
+static int ett_ain_UpdateGroup5;
+static int ett_ain_Action5;
+static int ett_ain_UpdateGroup6;
+static int ett_ain_Action6;
+static int ett_ain_UpdateGroup7;
+static int ett_ain_Action7;
+static int ett_ain_UpdateGroup8;
+static int ett_ain_Action8;
+static int ett_ain_UpdateGroup9;
+static int ett_ain_Action9;
+static int ett_ain_ChangeList;
+static int ett_ain_SrhrGroup_U;
+static int ett_ain_NetworkTestDesignator_U;
+static int ett_ain_NtdID;
+static int ett_ain_OperationsMonitoringAssignment_U;
+static int ett_ain_OperationsMonitoredItemID;
+static int ett_ain_AMAMeasurement_U;
+static int ett_ain_Amp2_U;
+static int ett_ain_AmpAINNodeID;
+static int ett_ain_AmpSvcProvID;
+static int ett_ain_ApplicationErrorString_U;
+static int ett_ain_ApplyRestrictions_U;
+static int ett_ain_SEQUENCE_SIZE_1_15_OF_DisplayInformation;
+static int ett_ain_DisplayInformation;
+static int ett_ain_EDPNotification_U;
+static int ett_ain_EDPRequest_U;
+static int ett_ain_ExtensionParameter;
+static int ett_ain_FacilityGID;
+static int ett_ain_FailedMessage_U;
+static int ett_ain_InvParms;
+static int ett_ain_Parms;
+static int ett_ain_GapInterval;
+static int ett_ain_SEQUENCE_SIZE_1_5_OF_GenericAddress;
+static int ett_ain_SEQUENCE_SIZE_1_5_OF_GenericDigits;
+static int ett_ain_InfoProvided_U;
+static int ett_ain_EntireList;
+static int ett_ain_Entry2;
+static int ett_ain_MemorySlot;
+static int ett_ain_Incoming;
+static int ett_ain_Outgoing;
+static int ett_ain_Empty;
+static int ett_ain_ProvideInfo_U;
+static int ett_ain_RequestGroups;
+static int ett_ain_RequestGroup1;
+static int ett_ain_Request1;
+static int ett_ain_RequestGroup2;
+static int ett_ain_Request2;
+static int ett_ain_RequestGroup3;
+static int ett_ain_Request3;
+static int ett_ain_RequestGroup4;
+static int ett_ain_Request4;
+static int ett_ain_RequestGroup5;
+static int ett_ain_Request5;
+static int ett_ain_RequestGroup6;
+static int ett_ain_Request6;
+static int ett_ain_RequestMemorySlot;
+static int ett_ain_ServiceProviderID;
+static int ett_ain_StrParameterBlock_U;
+static int ett_ain_AnnouncementBlock;
+static int ett_ain_UninterAnnounceBlock;
+static int ett_ain_InterAnnounceBlock;
+static int ett_ain_AnnouncementDigitBlock;
+static int ett_ain_TimeoutTimer_U;
+static int ett_ain_UserID_U;
+static int ett_ain_T_bri;
+static int ett_ain_Code;
+static int ett_ain_ROS;
+static int ett_ain_Invoke;
+static int ett_ain_T_linkedId;
+static int ett_ain_ReturnResult;
+static int ett_ain_T_result;
+static int ett_ain_ReturnError;
+static int ett_ain_Reject;
+static int ett_ain_T_problem;
+static int ett_ain_InvokeId;
static expert_field ei_ain_unknown_invokeData;
static expert_field ei_ain_unknown_returnResultData;
static expert_field ei_ain_unknown_returnErrorData;
/* Global variables */
-static guint32 opcode = 0;
-static guint32 errorCode = 0;
+static guint32 opcode;
+static guint32 errorCode;
//static const char *obj_id = NULL;
static int ain_opcode_type;
@@ -745,7 +745,7 @@ static int ain_opcode_type;
#define AIN_OPCODE_RETURN_ERROR 3
#define AIN_OPCODE_REJECT 4
-/* Forvard declarations */
+/* Forward declarations */
static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_);
static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx);
diff --git a/epan/dissectors/packet-alcap.c b/epan/dissectors/packet-alcap.c
index b66b2086c9..c45c468a83 100644
--- a/epan/dissectors/packet-alcap.c
+++ b/epan/dissectors/packet-alcap.c
@@ -401,13 +401,13 @@ static expert_field ei_alcap_release_cause_not31;
static expert_field ei_alcap_abnormal_release;
static expert_field ei_alcap_response;
-static dissector_handle_t alcap_handle = NULL;
+static dissector_handle_t alcap_handle;
-static gboolean keep_persistent_info = TRUE;
+static bool keep_persistent_info = true;
-static wmem_tree_t* legs_by_dsaid = NULL;
-static wmem_tree_t* legs_by_osaid = NULL;
-static wmem_tree_t* legs_by_bearer = NULL;
+static wmem_tree_t* legs_by_dsaid;
+static wmem_tree_t* legs_by_osaid;
+static wmem_tree_t* legs_by_bearer;
static const gchar* dissect_fields_unknown(packet_info* pinfo, tvbuff_t *tvb, proto_tree *tree, int offset, int len, alcap_message_info_t* msg_info _U_) {
proto_item* pi = proto_tree_add_item(tree,hf_alcap_unknown,tvb,offset,len,ENC_NA);
diff --git a/epan/dissectors/packet-amp.c b/epan/dissectors/packet-amp.c
index d45352f050..1a5e64919e 100644
--- a/epan/dissectors/packet-amp.c
+++ b/epan/dissectors/packet-amp.c
@@ -114,7 +114,7 @@ static gint ett_amp_ari_flags;
static int hf_amp_reserved;
static int hf_amp_acl;
static int hf_amp_nack;
-static int hf_amp_ack = 0;
+static int hf_amp_ack;
static int hf_amp_opcode;
static int hf_amp_rx_name;
@@ -327,7 +327,7 @@ static cborObj cbor_info(tvbuff_t *tvb, int offset)
// TODO -- not supported yet.
break;
}
- return(ret);
+ return ret;
}
void
diff --git a/epan/dissectors/packet-amqp.c b/epan/dissectors/packet-amqp.c
index 347b85c187..63a3d4e6f1 100644
--- a/epan/dissectors/packet-amqp.c
+++ b/epan/dissectors/packet-amqp.c
@@ -1577,7 +1577,7 @@ static expert_field ei_amqp_invalid_number_of_params;
static expert_field ei_amqp_size_exceeds_65K;
static expert_field ei_amqp_array_type_unknown;
-static dissector_handle_t amqp_tcp_handle = NULL;
+static dissector_handle_t amqp_tcp_handle;
static amqp_message_decode_t *amqp_message_decodes;
static guint num_amqp_message_decodes;
diff --git a/epan/dissectors/packet-ansi_637.c b/epan/dissectors/packet-ansi_637.c
index 06aa210fd6..690b097773 100644
--- a/epan/dissectors/packet-ansi_637.c
+++ b/epan/dissectors/packet-ansi_637.c
@@ -2301,7 +2301,7 @@ dissect_ansi_637_tele_param(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (NULL == str)
{
- return(FALSE);
+ return FALSE;
}
ett_param_idx = ett_ansi_637_tele_param[idx];
@@ -2353,7 +2353,7 @@ dissect_ansi_637_tele_param(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*offset = curr_offset;
- return(TRUE);
+ return TRUE;
}
static void
@@ -2503,7 +2503,7 @@ dissect_ansi_637_trans_param(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
if (NULL == str)
{
- return(FALSE);
+ return FALSE;
}
ett_param_idx = ett_ansi_637_trans_param[idx];
@@ -2548,7 +2548,7 @@ dissect_ansi_637_trans_param(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
*offset = curr_offset;
- return(TRUE);
+ return TRUE;
}
diff --git a/epan/dissectors/packet-ansi_683.c b/epan/dissectors/packet-ansi_683.c
index db62e73d2c..a41642b0fe 100644
--- a/epan/dissectors/packet-ansi_683.c
+++ b/epan/dissectors/packet-ansi_683.c
@@ -241,13 +241,13 @@ fresh_handler(tvbuff_t *tvb, proto_tree *tree, guint len _U_, guint32 offset)
{
proto_tree_add_item(tree, hf_ansi_683_fresh_incl16, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_ansi_683_fresh, tvb, offset, 2, ENC_BIG_ENDIAN);
- return(2);
+ return 2;
}
proto_tree_add_item(tree, hf_ansi_683_fresh_incl8, tvb, offset, 1, ENC_NA);
proto_tree_add_bits_item(tree, hf_ansi_683_reserved8, tvb, offset<<3, 7, ENC_NA);
- return(1);
+ return 1;
}
/*
@@ -966,8 +966,6 @@ for_param_block_val_spc(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, gui
/*
* 4.5.4.3
*/
-static const true_false_string tfs_activate_do_not_activate = { "Activate", "Do not activate" };
-
static void
for_param_block_val_spasm(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, guint len, guint32 offset)
{
diff --git a/epan/dissectors/packet-ansi_a.c b/epan/dissectors/packet-ansi_a.c
index 4af76526ba..3697826427 100644
--- a/epan/dissectors/packet-ansi_a.c
+++ b/epan/dissectors/packet-ansi_a.c
@@ -46,7 +46,7 @@
* IOS 4, probably most common
*/
static gint global_a_variant = A_VARIANT_IOS401;
-static gboolean global_a_info_display = TRUE;
+static bool global_a_info_display = true;
/* PROTOTYPES/FORWARDS */
@@ -63,14 +63,14 @@ my_try_val_to_str_idx(guint32 val, const ext_value_string_t *vs, gint *dec_idx)
if (vs[i].value == val)
{
*dec_idx = vs[i].dec_index;
- return(vs[i].strptr);
+ return vs[i].strptr;
}
i++;
}
*dec_idx = -1;
- return(NULL);
+ return NULL;
}
static const true_false_string tfs_l2_reset_dont_reset =
@@ -605,7 +605,7 @@ static const value_string ansi_fwd_ms_info_rec_str[] =
{ ANSI_FWD_MS_INFO_REC_ERTI, "Extended Record Type International" },
{ 0, NULL }
};
-#define NUM_FWD_MS_INFO_REC (sizeof(ansi_fwd_ms_info_rec_str)/sizeof(value_string))
+#define NUM_FWD_MS_INFO_REC array_length(ansi_fwd_ms_info_rec_str)
static gint ett_ansi_fwd_ms_info_rec[NUM_FWD_MS_INFO_REC];
/*
@@ -692,7 +692,7 @@ static const value_string ansi_rev_ms_info_rec_str[] =
{ ANSI_REV_MS_INFO_REC_ERTI, "Extended Record Type International" },
{ 0, NULL }
};
-#define NUM_REV_MS_INFO_REC (sizeof(ansi_rev_ms_info_rec_str)/sizeof(value_string))
+#define NUM_REV_MS_INFO_REC array_length(ansi_rev_ms_info_rec_str)
static gint ett_ansi_rev_ms_info_rec[NUM_REV_MS_INFO_REC];
/*
@@ -926,9 +926,9 @@ value_string_ext ansi_tsb58_srvc_cat_vals_ext = VALUE_STRING_EXT_INIT(ansi_tsb58
static int proto_a_bsmap;
static int proto_a_dtap;
-const ext_value_string_t *ansi_a_bsmap_strings = NULL;
-const ext_value_string_t *ansi_a_dtap_strings = NULL;
-const ext_value_string_t *ansi_a_elem_1_strings = NULL;
+const ext_value_string_t *ansi_a_bsmap_strings;
+const ext_value_string_t *ansi_a_dtap_strings;
+const ext_value_string_t *ansi_a_elem_1_strings;
static int ansi_a_tap;
@@ -1648,7 +1648,7 @@ static const gchar *ansi_a_so_int_to_str(gint32 so)
}
}
- return(str);
+ return str;
}
static void
@@ -1688,11 +1688,11 @@ content_fill_aux(
proto_tree_add_expert(tree, pinfo, &ei_ansi_a_short_data, \
tvb, curr_offset, (sdc_len)); \
curr_offset += (sdc_len); \
- return(curr_offset - offset); \
+ return curr_offset - offset; \
}
#define NO_MORE_DATA_CHECK(nmdc_len) \
- if ((nmdc_len) <= (curr_offset - offset)) return(nmdc_len);
+ if ((nmdc_len) <= (curr_offset - offset)) return nmdc_len;
/*
@@ -1728,7 +1728,7 @@ elem_chan_num(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 o
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1803,7 +1803,7 @@ elem_chan_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offs
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1834,7 +1834,7 @@ elem_return_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1883,7 +1883,7 @@ elem_rf_chan_id(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1908,7 +1908,7 @@ elem_sr_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1933,7 +1933,7 @@ elem_sid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2006,7 +2006,7 @@ elem_is95_chan_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 o
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2103,7 +2103,7 @@ elem_enc_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offse
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2338,7 +2338,7 @@ elem_cm_info_type_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2502,7 +2502,7 @@ elem_mid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, gu
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2533,7 +2533,7 @@ elem_sci(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2565,7 +2565,7 @@ elem_prio(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, g
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2589,7 +2589,7 @@ elem_p_rev(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2733,7 +2733,7 @@ elem_cause(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2812,7 +2812,7 @@ elem_cell_id_aux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 of
break;
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static guint8
@@ -2834,7 +2834,7 @@ elem_cell_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2883,7 +2883,7 @@ elem_cell_id_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 o
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2915,7 +2915,7 @@ elem_cic(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2966,7 +2966,7 @@ elem_cic_ext(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 of
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2987,7 +2987,7 @@ elem_ssci(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, g
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3062,7 +3062,7 @@ elem_downlink_re_aux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint3
proto_item_append_text(parent_item_p, " - %u cell%s", num_cells, plurality(num_cells, "", "s"));
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3080,7 +3080,7 @@ elem_downlink_re(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 of
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3127,7 +3127,7 @@ elem_downlink_re_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3166,7 +3166,7 @@ elem_pdsn_ip_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 o
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3185,7 +3185,7 @@ elem_s_pdsn_ip_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3254,7 +3254,7 @@ elem_ho_pow_lev(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3278,7 +3278,7 @@ elem_uz_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3321,7 +3321,7 @@ elem_info_rec_req(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 o
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3455,7 +3455,7 @@ elem_is2000_chan_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3484,7 +3484,7 @@ elem_is95_ms_meas_chan_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3503,7 +3503,7 @@ elem_auth_conf_param(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gu
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3583,7 +3583,7 @@ elem_clg_party_ascii_num(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3610,7 +3610,7 @@ elem_l3_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3677,7 +3677,7 @@ elem_lai(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3731,7 +3731,7 @@ elem_rej_cause(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3750,7 +3750,7 @@ elem_anchor_pdsn_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3769,7 +3769,7 @@ elem_anchor_pp_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3810,7 +3810,7 @@ elem_auth_chlg_param(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint3
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3850,7 +3850,7 @@ elem_auth_resp_param(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint3
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3875,7 +3875,7 @@ elem_auth_param_count(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, g
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3899,7 +3899,7 @@ elem_mwi(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3975,7 +3975,7 @@ elem_signal(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 off
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4054,7 +4054,7 @@ elem_cld_party_bcd_num(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4079,7 +4079,7 @@ elem_qos_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4208,7 +4208,7 @@ elem_cause_l3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offse
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4245,7 +4245,7 @@ elem_xmode(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4297,7 +4297,7 @@ elem_reg_type(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 o
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4323,7 +4323,7 @@ elem_tag(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 offset
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4390,7 +4390,7 @@ elem_hho_params(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4438,7 +4438,7 @@ elem_sw_ver(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4460,7 +4460,7 @@ elem_so_aux(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 off
/* no length check possible */
- return(2);
+ return 2;
}
static guint8
@@ -4483,7 +4483,7 @@ elem_so(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, gui
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4508,7 +4508,7 @@ elem_soci(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, g
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4565,7 +4565,7 @@ elem_so_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4600,7 +4600,7 @@ elem_acc_net_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
@@ -4716,7 +4716,7 @@ elem_adds_user_part(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4736,7 +4736,7 @@ elem_amps_hho_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint3
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4942,7 +4942,7 @@ elem_is2000_scr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4983,7 +4983,7 @@ elem_is2000_nn_scr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5190,7 +5190,7 @@ elem_is2000_mob_cap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5227,7 +5227,7 @@ elem_ptype(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5549,7 +5549,7 @@ elem_fwd_ms_info_recs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5752,7 +5752,7 @@ elem_rev_ms_info_recs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5837,7 +5837,7 @@ elem_ext_ho_dir_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5909,7 +5909,7 @@ elem_cdma_sowd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offs
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5951,7 +5951,7 @@ elem_re_res(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint32 off
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6096,7 +6096,7 @@ elem_cld_party_ascii_num(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6122,7 +6122,7 @@ elem_band_class(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6158,7 +6158,7 @@ elem_is2000_cause(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 o
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6217,7 +6217,7 @@ elem_auth_event(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6353,7 +6353,7 @@ elem_psmm_count(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6372,7 +6372,7 @@ elem_geo_loc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6464,7 +6464,7 @@ elem_cct_group(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offs
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6483,7 +6483,7 @@ elem_paca_ts(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6521,7 +6521,7 @@ elem_paca_order(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6546,7 +6546,7 @@ elem_paca_reoi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offs
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6611,7 +6611,7 @@ elem_a2p_bearer_session(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6856,7 +6856,7 @@ elem_a2p_bearer_format(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6879,7 +6879,7 @@ elem_ms_des_freq(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 of
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6918,7 +6918,7 @@ elem_plcm_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -6972,7 +6972,7 @@ elem_bdtmf_trans_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -7023,7 +7023,7 @@ elem_dtmf_chars(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -7131,8 +7131,8 @@ typedef enum
elem_idx_t;
static elem_idx_t ansi_a_elem_1_max = (elem_idx_t) 0;
-#define MAX_IOS401_NUM_ELEM_1 (sizeof(ansi_a_ios401_elem_1_strings)/sizeof(ext_value_string_t))
-#define MAX_IOS501_NUM_ELEM_1 (sizeof(ansi_a_ios501_elem_1_strings)/sizeof(ext_value_string_t))
+#define MAX_IOS401_NUM_ELEM_1 array_length(ansi_a_ios401_elem_1_strings)
+#define MAX_IOS501_NUM_ELEM_1 array_length(ansi_a_ios501_elem_1_strings)
static gint ett_ansi_elem_1[MAX(MAX_IOS401_NUM_ELEM_1, MAX_IOS501_NUM_ELEM_1)];
static guint8 (*elem_1_fcn[])(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len, ansi_a_shared_data_t *data_p) =
{
@@ -7289,7 +7289,7 @@ elem_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, gu
consumed += 2;
}
- return(consumed);
+ return consumed;
}
/*
@@ -7351,7 +7351,7 @@ elem_tv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, gui
proto_item_set_len(data_p->elem_item, consumed);
}
- return(consumed);
+ return consumed;
}
/*
@@ -7389,7 +7389,7 @@ elem_t(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, elem_idx_t idx,
consumed = 1;
}
- return(consumed);
+ return consumed;
}
/*
@@ -7442,7 +7442,7 @@ elem_lv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, gui
}
}
- return(consumed + 1);
+ return consumed + 1;
}
/*
@@ -7484,7 +7484,7 @@ elem_v(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, elem_idx_t idx, guin
consumed = (*elem_1_fcn[dec_idx])(tvb, pinfo, tree, curr_offset, -1, data_p);
}
- return(consumed);
+ return consumed;
}
@@ -10047,8 +10047,8 @@ dtap_rejection(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offs
EXTRANEOUS_DATA_CHECK(curr_len, 0);
}
-#define ANSI_A_IOS401_BSMAP_NUM_MSG (sizeof(ansi_a_ios401_bsmap_strings)/sizeof(ext_value_string_t))
-#define ANSI_A_IOS501_BSMAP_NUM_MSG (sizeof(ansi_a_ios501_bsmap_strings)/sizeof(ext_value_string_t))
+#define ANSI_A_IOS401_BSMAP_NUM_MSG array_length(ansi_a_ios401_bsmap_strings)
+#define ANSI_A_IOS501_BSMAP_NUM_MSG array_length(ansi_a_ios501_bsmap_strings)
static gint ett_bsmap_msg[MAX(ANSI_A_IOS401_BSMAP_NUM_MSG, ANSI_A_IOS501_BSMAP_NUM_MSG)];
static void (*bsmap_msg_fcn[])(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len, ansi_a_shared_data_t *data_p) =
{
@@ -10117,8 +10117,8 @@ static void (*bsmap_msg_fcn[])(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
NULL /* NONE */
};
-#define ANSI_A_IOS401_DTAP_NUM_MSG (sizeof(ansi_a_ios401_dtap_strings)/sizeof(ext_value_string_t))
-#define ANSI_A_IOS501_DTAP_NUM_MSG (sizeof(ansi_a_ios501_dtap_strings)/sizeof(ext_value_string_t))
+#define ANSI_A_IOS401_DTAP_NUM_MSG array_length(ansi_a_ios401_dtap_strings)
+#define ANSI_A_IOS501_DTAP_NUM_MSG array_length(ansi_a_ios501_dtap_strings)
static gint ett_dtap_msg[MAX(ANSI_A_IOS401_DTAP_NUM_MSG, ANSI_A_IOS501_DTAP_NUM_MSG)];
static void (*dtap_msg_fcn[])(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint len, ansi_a_shared_data_t *data_p) =
{
@@ -10584,10 +10584,10 @@ static stat_tap_table_item dtap_stat_fields[] =
static void ansi_a_dtap_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "ANSI A-I/F DTAP Statistics";
- int num_fields = sizeof(dtap_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(dtap_stat_fields);
stat_tap_table *table;
int i = 0;
- stat_tap_table_item_type items[sizeof(dtap_stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(dtap_stat_fields)];
items[IEI_COLUMN].type = TABLE_ITEM_UINT;
items[MESSAGE_NAME_COLUMN].type = TABLE_ITEM_STRING;
@@ -10671,10 +10671,10 @@ static stat_tap_table_item bsmap_stat_fields[] = {{TABLE_ITEM_UINT, TAP_ALIGN_RI
static void ansi_a_bsmap_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "ANSI A-I/F BSMAP Statistics";
- int num_fields = sizeof(bsmap_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(bsmap_stat_fields);
stat_tap_table *table;
int i = 0;
- stat_tap_table_item_type items[sizeof(bsmap_stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(bsmap_stat_fields)];
items[IEI_COLUMN].type = TABLE_ITEM_UINT;
items[MESSAGE_NAME_COLUMN].type = TABLE_ITEM_STRING;
@@ -10838,7 +10838,7 @@ proto_register_ansi_a(void)
{ &hf_ansi_a_pdsn_ip_addr,
{ "PDSN IP Address", "ansi_a_bsmap.pdsn_ip_addr",
FT_IPv4, BASE_NONE, NULL, 0,
- "IP Address", HFILL }
+ NULL, HFILL }
},
{ &hf_ansi_a_s_pdsn_ip_addr,
{ "Source PDSN Address", "ansi_a_bsmap.s_pdsn_ip_addr",
@@ -12786,7 +12786,7 @@ proto_register_ansi_a(void)
ansi_a_stat_reset,
NULL,
NULL,
- sizeof(dtap_stat_fields)/sizeof(stat_tap_table_item), dtap_stat_fields,
+ array_length(dtap_stat_fields), dtap_stat_fields,
0, NULL,
NULL,
0
@@ -12802,7 +12802,7 @@ proto_register_ansi_a(void)
ansi_a_stat_reset,
NULL,
NULL,
- sizeof(bsmap_stat_fields)/sizeof(stat_tap_table_item), bsmap_stat_fields,
+ array_length(bsmap_stat_fields), bsmap_stat_fields,
0, NULL,
NULL,
0
diff --git a/epan/dissectors/packet-ansi_map.c b/epan/dissectors/packet-ansi_map.c
index 6ef5139d9b..6feba2492f 100644
--- a/epan/dissectors/packet-ansi_map.c
+++ b/epan/dissectors/packet-ansi_map.c
@@ -107,7 +107,7 @@ static range_t *global_ssn_range;
#define ANSI_MAP_TID_SOURCE_AND_DEST 2
static gint ansi_map_response_matching_type = ANSI_MAP_TID_AND_SOURCE;
-static dissector_handle_t ansi_map_handle=NULL;
+static dissector_handle_t ansi_map_handle;
/* Initialize the protocol and registered fields */
static int ansi_map_tap;
@@ -898,229 +898,229 @@ static gint ett_cdmaserviceoption;
static gint ett_systemcapabilities;
static gint ett_sms_originationrestrictions;
-static gint ett_ansi_map_AuthenticationDirective_U;
-static gint ett_ansi_map_AuthenticationDirectiveRes_U;
-static gint ett_ansi_map_AuthenticationDirectiveForward_U;
-static gint ett_ansi_map_AuthenticationDirectiveForwardRes_U;
-static gint ett_ansi_map_AuthenticationFailureReport_U;
-static gint ett_ansi_map_AuthenticationFailureReportRes_U;
-static gint ett_ansi_map_AuthenticationRequest_U;
-static gint ett_ansi_map_AuthenticationRequestRes_U;
-static gint ett_ansi_map_AuthenticationStatusReport_U;
-static gint ett_ansi_map_AuthenticationStatusReportRes_U;
-static gint ett_ansi_map_BaseStationChallenge_U;
-static gint ett_ansi_map_BaseStationChallengeRes_U;
-static gint ett_ansi_map_Blocking_U;
-static gint ett_ansi_map_BulkDeregistration_U;
-static gint ett_ansi_map_CountRequest_U;
-static gint ett_ansi_map_CountRequestRes_U;
-static gint ett_ansi_map_FacilitiesDirective_U;
-static gint ett_ansi_map_FacilitiesDirectiveRes_U;
-static gint ett_ansi_map_FacilitiesDirective2_U;
-static gint ett_ansi_map_FacilitiesDirective2Res_U;
-static gint ett_ansi_map_FacilitiesRelease_U;
-static gint ett_ansi_map_FacilitiesReleaseRes_U;
-static gint ett_ansi_map_FeatureRequest_U;
-static gint ett_ansi_map_FeatureRequestRes_U;
-static gint ett_ansi_map_FlashRequest_U;
-static gint ett_ansi_map_HandoffBack_U;
-static gint ett_ansi_map_HandoffBackRes_U;
-static gint ett_ansi_map_HandoffBack2_U;
-static gint ett_ansi_map_HandoffBack2Res_U;
-static gint ett_ansi_map_HandoffMeasurementRequest_U;
-static gint ett_ansi_map_HandoffMeasurementRequestRes_U;
-static gint ett_ansi_map_HandoffMeasurementRequest2_U;
-static gint ett_ansi_map_HandoffMeasurementRequest2Res_U;
-static gint ett_ansi_map_HandoffToThird_U;
-static gint ett_ansi_map_HandoffToThirdRes_U;
-static gint ett_ansi_map_HandoffToThird2_U;
-static gint ett_ansi_map_HandoffToThird2Res_U;
-static gint ett_ansi_map_InformationDirective_U;
-static gint ett_ansi_map_InformationDirectiveRes_U;
-static gint ett_ansi_map_InformationForward_U;
-static gint ett_ansi_map_InformationForwardRes_U;
-static gint ett_ansi_map_InterSystemAnswer_U;
-static gint ett_ansi_map_InterSystemPage_U;
-static gint ett_ansi_map_InterSystemPageRes_U;
-static gint ett_ansi_map_InterSystemPage2_U;
-static gint ett_ansi_map_InterSystemPage2Res_U;
-static gint ett_ansi_map_InterSystemSetup_U;
-static gint ett_ansi_map_InterSystemSetupRes_U;
-static gint ett_ansi_map_LocationRequest_U;
-static gint ett_ansi_map_LocationRequestRes_U;
-static gint ett_ansi_map_MSInactive_U;
-static gint ett_ansi_map_OriginationRequest_U;
-static gint ett_ansi_map_OriginationRequestRes_U;
-static gint ett_ansi_map_QualificationDirective_U;
-static gint ett_ansi_map_QualificationDirectiveRes_U;
-static gint ett_ansi_map_QualificationRequest_U;
-static gint ett_ansi_map_QualificationRequestRes_U;
-static gint ett_ansi_map_RandomVariableRequest_U;
-static gint ett_ansi_map_RandomVariableRequestRes_U;
-static gint ett_ansi_map_RedirectionDirective_U;
-static gint ett_ansi_map_RedirectionRequest_U;
-static gint ett_ansi_map_RegistrationCancellation_U;
-static gint ett_ansi_map_RegistrationCancellationRes_U;
-static gint ett_ansi_map_RegistrationNotification_U;
-static gint ett_ansi_map_RegistrationNotificationRes_U;
-static gint ett_ansi_map_RemoteUserInteractionDirective_U;
-static gint ett_ansi_map_RemoteUserInteractionDirectiveRes_U;
-static gint ett_ansi_map_ResetCircuit_U;
-static gint ett_ansi_map_ResetCircuitRes_U;
-static gint ett_ansi_map_RoutingRequest_U;
-static gint ett_ansi_map_RoutingRequestRes_U;
-static gint ett_ansi_map_SMSDeliveryBackward_U;
-static gint ett_ansi_map_SMSDeliveryBackwardRes_U;
-static gint ett_ansi_map_SMSDeliveryForward_U;
-static gint ett_ansi_map_SMSDeliveryForwardRes_U;
-static gint ett_ansi_map_SMSDeliveryPointToPoint_U;
-static gint ett_ansi_map_SMSDeliveryPointToPointRes_U;
-static gint ett_ansi_map_SMSDeliveryPointToPointAck_U;
-static gint ett_ansi_map_SMSNotification_U;
-static gint ett_ansi_map_SMSNotificationRes_U;
-static gint ett_ansi_map_SMSRequest_U;
-static gint ett_ansi_map_SMSRequestRes_U;
-static gint ett_ansi_map_TransferToNumberRequest_U;
-static gint ett_ansi_map_TransferToNumberRequestRes_U;
-static gint ett_ansi_map_TrunkTest_U;
-static gint ett_ansi_map_TrunkTestDisconnect_U;
-static gint ett_ansi_map_Unblocking_U;
-static gint ett_ansi_map_UnreliableRoamerDataDirective_U;
-static gint ett_ansi_map_UnsolicitedResponse_U;
-static gint ett_ansi_map_UnsolicitedResponseRes_U;
-static gint ett_ansi_map_ParameterRequest_U;
-static gint ett_ansi_map_ParameterRequestRes_U;
-static gint ett_ansi_map_TMSIDirective_U;
-static gint ett_ansi_map_TMSIDirectiveRes_U;
-static gint ett_ansi_map_NumberPortabilityRequest_U;
-static gint ett_ansi_map_NumberPortabilityRequestRes_U;
-static gint ett_ansi_map_ServiceRequest_U;
-static gint ett_ansi_map_ServiceRequestRes_U;
-static gint ett_ansi_map_AnalyzedInformation_U;
-static gint ett_ansi_map_AnalyzedInformationRes_U;
-static gint ett_ansi_map_ConnectionFailureReport_U;
-static gint ett_ansi_map_ConnectResource_U;
-static gint ett_ansi_map_FacilitySelectedAndAvailable_U;
-static gint ett_ansi_map_FacilitySelectedAndAvailableRes_U;
-static gint ett_ansi_map_Modify_U;
-static gint ett_ansi_map_ModifyRes_U;
-static gint ett_ansi_map_Search_U;
-static gint ett_ansi_map_SearchRes_U;
-static gint ett_ansi_map_SeizeResource_U;
-static gint ett_ansi_map_SeizeResourceRes_U;
-static gint ett_ansi_map_SRFDirective_U;
-static gint ett_ansi_map_SRFDirectiveRes_U;
-static gint ett_ansi_map_TBusy_U;
-static gint ett_ansi_map_TBusyRes_U;
-static gint ett_ansi_map_TNoAnswer_U;
-static gint ett_ansi_map_TNoAnswerRes_U;
-static gint ett_ansi_map_ChangeFacilities_U;
-static gint ett_ansi_map_ChangeFacilitiesRes_U;
-static gint ett_ansi_map_ChangeService_U;
-static gint ett_ansi_map_ChangeServiceRes_U;
-static gint ett_ansi_map_MessageDirective_U;
-static gint ett_ansi_map_BulkDisconnection_U;
-static gint ett_ansi_map_CallControlDirective_U;
-static gint ett_ansi_map_CallControlDirectiveRes_U;
-static gint ett_ansi_map_OAnswer_U;
-static gint ett_ansi_map_ODisconnect_U;
-static gint ett_ansi_map_ODisconnectRes_U;
-static gint ett_ansi_map_CallRecoveryReport_U;
-static gint ett_ansi_map_TAnswer_U;
-static gint ett_ansi_map_TDisconnect_U;
-static gint ett_ansi_map_TDisconnectRes_U;
-static gint ett_ansi_map_UnreliableCallData_U;
-static gint ett_ansi_map_OCalledPartyBusy_U;
-static gint ett_ansi_map_OCalledPartyBusyRes_U;
-static gint ett_ansi_map_ONoAnswer_U;
-static gint ett_ansi_map_ONoAnswerRes_U;
-static gint ett_ansi_map_PositionRequest_U;
-static gint ett_ansi_map_PositionRequestRes_U;
-static gint ett_ansi_map_PositionRequestForward_U;
-static gint ett_ansi_map_PositionRequestForwardRes_U;
-static gint ett_ansi_map_CallTerminationReport_U;
-static gint ett_ansi_map_GeoPositionRequest_U;
-static gint ett_ansi_map_InterSystemPositionRequest_U;
-static gint ett_ansi_map_InterSystemPositionRequestRes_U;
-static gint ett_ansi_map_InterSystemPositionRequestForward_U;
-static gint ett_ansi_map_InterSystemPositionRequestForwardRes_U;
-static gint ett_ansi_map_ACGDirective_U;
-static gint ett_ansi_map_RoamerDatabaseVerificationRequest_U;
-static gint ett_ansi_map_RoamerDatabaseVerificationRequestRes_U;
-static gint ett_ansi_map_LCSParameterRequest_U;
-static gint ett_ansi_map_LCSParameterRequestRes_U;
-static gint ett_ansi_map_CheckMEID_U;
-static gint ett_ansi_map_CheckMEIDRes_U;
-static gint ett_ansi_map_AddService_U;
-static gint ett_ansi_map_AddServiceRes_U;
-static gint ett_ansi_map_DropService_U;
-static gint ett_ansi_map_DropServiceRes_U;
-static gint ett_ansi_map_PositionEventNotification_U;
-static gint ett_ansi_map_OTASPRequest_U;
-static gint ett_ansi_map_OTASPRequestRes_U;
-static gint ett_ansi_map_StatusRequest_U;
-static gint ett_ansi_map_StatusRequestRes_U;
-static gint ett_ansi_map_InterSystemSMSDeliveryPointToPoint_U;
-static gint ett_ansi_map_InterSystemSMSDeliveryPointToPointRes_U;
-static gint ett_ansi_map_InterSystemSMSPage_U;
-static gint ett_ansi_map_QualificationRequest2_U;
-static gint ett_ansi_map_QualificationRequest2Res_U;
-static gint ett_ansi_map_AnnouncementList;
-static gint ett_ansi_map_CDMACodeChannelInformation;
-static gint ett_ansi_map_CDMACodeChannelList;
-static gint ett_ansi_map_CDMATargetMAHOInformation;
-static gint ett_ansi_map_CDMATargetMAHOList;
-static gint ett_ansi_map_CDMATargetMeasurementInformation;
-static gint ett_ansi_map_CDMATargetMeasurementList;
-static gint ett_ansi_map_IntersystemTermination;
-static gint ett_ansi_map_LocalTermination;
-static gint ett_ansi_map_PSTNTermination;
-static gint ett_ansi_map_TargetMeasurementInformation;
-static gint ett_ansi_map_TargetMeasurementList;
-static gint ett_ansi_map_TerminationList;
-static gint ett_ansi_map_TerminationList_item;
-static gint ett_ansi_map_CDMABandClassInformation;
-static gint ett_ansi_map_CDMABandClassList;
-static gint ett_ansi_map_CDMAServiceOptionList;
-static gint ett_ansi_map_PSID_RSIDList;
-static gint ett_ansi_map_TargetCellIDList;
-static gint ett_ansi_map_CDMAConnectionReferenceInformation;
-static gint ett_ansi_map_CDMAConnectionReferenceList;
-static gint ett_ansi_map_CDMAConnectionReferenceList_item;
-static gint ett_ansi_map_AnalogRedirectRecord;
-static gint ett_ansi_map_CDMAChannelNumberList;
-static gint ett_ansi_map_CDMAChannelNumberList_item;
-static gint ett_ansi_map_CDMARedirectRecord;
-static gint ett_ansi_map_MSID;
-static gint ett_ansi_map_DataAccessElement;
-static gint ett_ansi_map_DataAccessElementList;
-static gint ett_ansi_map_DataAccessElementList_item;
-static gint ett_ansi_map_DataUpdateResult;
-static gint ett_ansi_map_DataUpdateResultList;
-static gint ett_ansi_map_DestinationAddress;
-static gint ett_ansi_map_ExecuteScript;
-static gint ett_ansi_map_ModificationRequest;
-static gint ett_ansi_map_ModificationRequestList;
-static gint ett_ansi_map_ModificationResult;
-static gint ett_ansi_map_ModificationResultList;
-static gint ett_ansi_map_ServiceDataAccessElement;
-static gint ett_ansi_map_ServiceDataAccessElementList;
-static gint ett_ansi_map_ServiceDataResult;
-static gint ett_ansi_map_ServiceDataResultList;
-static gint ett_ansi_map_TriggerAddressList;
-static gint ett_ansi_map_TriggerList;
-static gint ett_ansi_map_WINCapability;
-static gint ett_ansi_map_CallRecoveryID;
-static gint ett_ansi_map_CallRecoveryIDList;
-static gint ett_ansi_map_PositionInformation;
-static gint ett_ansi_map_GapInterval;
-static gint ett_ansi_map_CDMAPSMMList;
-static gint ett_ansi_map_CDMAPSMMList_item;
-static gint ett_ansi_map_MPCAddressList;
-static gint ett_ansi_map_MobileStationMSID;
-static gint ett_ansi_map_NewlyAssignedMSID;
-static gint ett_ansi_map_InvokeData;
-static gint ett_ansi_map_ReturnData;
+static int ett_ansi_map_AuthenticationDirective_U;
+static int ett_ansi_map_AuthenticationDirectiveRes_U;
+static int ett_ansi_map_AuthenticationDirectiveForward_U;
+static int ett_ansi_map_AuthenticationDirectiveForwardRes_U;
+static int ett_ansi_map_AuthenticationFailureReport_U;
+static int ett_ansi_map_AuthenticationFailureReportRes_U;
+static int ett_ansi_map_AuthenticationRequest_U;
+static int ett_ansi_map_AuthenticationRequestRes_U;
+static int ett_ansi_map_AuthenticationStatusReport_U;
+static int ett_ansi_map_AuthenticationStatusReportRes_U;
+static int ett_ansi_map_BaseStationChallenge_U;
+static int ett_ansi_map_BaseStationChallengeRes_U;
+static int ett_ansi_map_Blocking_U;
+static int ett_ansi_map_BulkDeregistration_U;
+static int ett_ansi_map_CountRequest_U;
+static int ett_ansi_map_CountRequestRes_U;
+static int ett_ansi_map_FacilitiesDirective_U;
+static int ett_ansi_map_FacilitiesDirectiveRes_U;
+static int ett_ansi_map_FacilitiesDirective2_U;
+static int ett_ansi_map_FacilitiesDirective2Res_U;
+static int ett_ansi_map_FacilitiesRelease_U;
+static int ett_ansi_map_FacilitiesReleaseRes_U;
+static int ett_ansi_map_FeatureRequest_U;
+static int ett_ansi_map_FeatureRequestRes_U;
+static int ett_ansi_map_FlashRequest_U;
+static int ett_ansi_map_HandoffBack_U;
+static int ett_ansi_map_HandoffBackRes_U;
+static int ett_ansi_map_HandoffBack2_U;
+static int ett_ansi_map_HandoffBack2Res_U;
+static int ett_ansi_map_HandoffMeasurementRequest_U;
+static int ett_ansi_map_HandoffMeasurementRequestRes_U;
+static int ett_ansi_map_HandoffMeasurementRequest2_U;
+static int ett_ansi_map_HandoffMeasurementRequest2Res_U;
+static int ett_ansi_map_HandoffToThird_U;
+static int ett_ansi_map_HandoffToThirdRes_U;
+static int ett_ansi_map_HandoffToThird2_U;
+static int ett_ansi_map_HandoffToThird2Res_U;
+static int ett_ansi_map_InformationDirective_U;
+static int ett_ansi_map_InformationDirectiveRes_U;
+static int ett_ansi_map_InformationForward_U;
+static int ett_ansi_map_InformationForwardRes_U;
+static int ett_ansi_map_InterSystemAnswer_U;
+static int ett_ansi_map_InterSystemPage_U;
+static int ett_ansi_map_InterSystemPageRes_U;
+static int ett_ansi_map_InterSystemPage2_U;
+static int ett_ansi_map_InterSystemPage2Res_U;
+static int ett_ansi_map_InterSystemSetup_U;
+static int ett_ansi_map_InterSystemSetupRes_U;
+static int ett_ansi_map_LocationRequest_U;
+static int ett_ansi_map_LocationRequestRes_U;
+static int ett_ansi_map_MSInactive_U;
+static int ett_ansi_map_OriginationRequest_U;
+static int ett_ansi_map_OriginationRequestRes_U;
+static int ett_ansi_map_QualificationDirective_U;
+static int ett_ansi_map_QualificationDirectiveRes_U;
+static int ett_ansi_map_QualificationRequest_U;
+static int ett_ansi_map_QualificationRequestRes_U;
+static int ett_ansi_map_RandomVariableRequest_U;
+static int ett_ansi_map_RandomVariableRequestRes_U;
+static int ett_ansi_map_RedirectionDirective_U;
+static int ett_ansi_map_RedirectionRequest_U;
+static int ett_ansi_map_RegistrationCancellation_U;
+static int ett_ansi_map_RegistrationCancellationRes_U;
+static int ett_ansi_map_RegistrationNotification_U;
+static int ett_ansi_map_RegistrationNotificationRes_U;
+static int ett_ansi_map_RemoteUserInteractionDirective_U;
+static int ett_ansi_map_RemoteUserInteractionDirectiveRes_U;
+static int ett_ansi_map_ResetCircuit_U;
+static int ett_ansi_map_ResetCircuitRes_U;
+static int ett_ansi_map_RoutingRequest_U;
+static int ett_ansi_map_RoutingRequestRes_U;
+static int ett_ansi_map_SMSDeliveryBackward_U;
+static int ett_ansi_map_SMSDeliveryBackwardRes_U;
+static int ett_ansi_map_SMSDeliveryForward_U;
+static int ett_ansi_map_SMSDeliveryForwardRes_U;
+static int ett_ansi_map_SMSDeliveryPointToPoint_U;
+static int ett_ansi_map_SMSDeliveryPointToPointRes_U;
+static int ett_ansi_map_SMSDeliveryPointToPointAck_U;
+static int ett_ansi_map_SMSNotification_U;
+static int ett_ansi_map_SMSNotificationRes_U;
+static int ett_ansi_map_SMSRequest_U;
+static int ett_ansi_map_SMSRequestRes_U;
+static int ett_ansi_map_TransferToNumberRequest_U;
+static int ett_ansi_map_TransferToNumberRequestRes_U;
+static int ett_ansi_map_TrunkTest_U;
+static int ett_ansi_map_TrunkTestDisconnect_U;
+static int ett_ansi_map_Unblocking_U;
+static int ett_ansi_map_UnreliableRoamerDataDirective_U;
+static int ett_ansi_map_UnsolicitedResponse_U;
+static int ett_ansi_map_UnsolicitedResponseRes_U;
+static int ett_ansi_map_ParameterRequest_U;
+static int ett_ansi_map_ParameterRequestRes_U;
+static int ett_ansi_map_TMSIDirective_U;
+static int ett_ansi_map_TMSIDirectiveRes_U;
+static int ett_ansi_map_NumberPortabilityRequest_U;
+static int ett_ansi_map_NumberPortabilityRequestRes_U;
+static int ett_ansi_map_ServiceRequest_U;
+static int ett_ansi_map_ServiceRequestRes_U;
+static int ett_ansi_map_AnalyzedInformation_U;
+static int ett_ansi_map_AnalyzedInformationRes_U;
+static int ett_ansi_map_ConnectionFailureReport_U;
+static int ett_ansi_map_ConnectResource_U;
+static int ett_ansi_map_FacilitySelectedAndAvailable_U;
+static int ett_ansi_map_FacilitySelectedAndAvailableRes_U;
+static int ett_ansi_map_Modify_U;
+static int ett_ansi_map_ModifyRes_U;
+static int ett_ansi_map_Search_U;
+static int ett_ansi_map_SearchRes_U;
+static int ett_ansi_map_SeizeResource_U;
+static int ett_ansi_map_SeizeResourceRes_U;
+static int ett_ansi_map_SRFDirective_U;
+static int ett_ansi_map_SRFDirectiveRes_U;
+static int ett_ansi_map_TBusy_U;
+static int ett_ansi_map_TBusyRes_U;
+static int ett_ansi_map_TNoAnswer_U;
+static int ett_ansi_map_TNoAnswerRes_U;
+static int ett_ansi_map_ChangeFacilities_U;
+static int ett_ansi_map_ChangeFacilitiesRes_U;
+static int ett_ansi_map_ChangeService_U;
+static int ett_ansi_map_ChangeServiceRes_U;
+static int ett_ansi_map_MessageDirective_U;
+static int ett_ansi_map_BulkDisconnection_U;
+static int ett_ansi_map_CallControlDirective_U;
+static int ett_ansi_map_CallControlDirectiveRes_U;
+static int ett_ansi_map_OAnswer_U;
+static int ett_ansi_map_ODisconnect_U;
+static int ett_ansi_map_ODisconnectRes_U;
+static int ett_ansi_map_CallRecoveryReport_U;
+static int ett_ansi_map_TAnswer_U;
+static int ett_ansi_map_TDisconnect_U;
+static int ett_ansi_map_TDisconnectRes_U;
+static int ett_ansi_map_UnreliableCallData_U;
+static int ett_ansi_map_OCalledPartyBusy_U;
+static int ett_ansi_map_OCalledPartyBusyRes_U;
+static int ett_ansi_map_ONoAnswer_U;
+static int ett_ansi_map_ONoAnswerRes_U;
+static int ett_ansi_map_PositionRequest_U;
+static int ett_ansi_map_PositionRequestRes_U;
+static int ett_ansi_map_PositionRequestForward_U;
+static int ett_ansi_map_PositionRequestForwardRes_U;
+static int ett_ansi_map_CallTerminationReport_U;
+static int ett_ansi_map_GeoPositionRequest_U;
+static int ett_ansi_map_InterSystemPositionRequest_U;
+static int ett_ansi_map_InterSystemPositionRequestRes_U;
+static int ett_ansi_map_InterSystemPositionRequestForward_U;
+static int ett_ansi_map_InterSystemPositionRequestForwardRes_U;
+static int ett_ansi_map_ACGDirective_U;
+static int ett_ansi_map_RoamerDatabaseVerificationRequest_U;
+static int ett_ansi_map_RoamerDatabaseVerificationRequestRes_U;
+static int ett_ansi_map_LCSParameterRequest_U;
+static int ett_ansi_map_LCSParameterRequestRes_U;
+static int ett_ansi_map_CheckMEID_U;
+static int ett_ansi_map_CheckMEIDRes_U;
+static int ett_ansi_map_AddService_U;
+static int ett_ansi_map_AddServiceRes_U;
+static int ett_ansi_map_DropService_U;
+static int ett_ansi_map_DropServiceRes_U;
+static int ett_ansi_map_PositionEventNotification_U;
+static int ett_ansi_map_OTASPRequest_U;
+static int ett_ansi_map_OTASPRequestRes_U;
+static int ett_ansi_map_StatusRequest_U;
+static int ett_ansi_map_StatusRequestRes_U;
+static int ett_ansi_map_InterSystemSMSDeliveryPointToPoint_U;
+static int ett_ansi_map_InterSystemSMSDeliveryPointToPointRes_U;
+static int ett_ansi_map_InterSystemSMSPage_U;
+static int ett_ansi_map_QualificationRequest2_U;
+static int ett_ansi_map_QualificationRequest2Res_U;
+static int ett_ansi_map_AnnouncementList;
+static int ett_ansi_map_CDMACodeChannelInformation;
+static int ett_ansi_map_CDMACodeChannelList;
+static int ett_ansi_map_CDMATargetMAHOInformation;
+static int ett_ansi_map_CDMATargetMAHOList;
+static int ett_ansi_map_CDMATargetMeasurementInformation;
+static int ett_ansi_map_CDMATargetMeasurementList;
+static int ett_ansi_map_IntersystemTermination;
+static int ett_ansi_map_LocalTermination;
+static int ett_ansi_map_PSTNTermination;
+static int ett_ansi_map_TargetMeasurementInformation;
+static int ett_ansi_map_TargetMeasurementList;
+static int ett_ansi_map_TerminationList;
+static int ett_ansi_map_TerminationList_item;
+static int ett_ansi_map_CDMABandClassInformation;
+static int ett_ansi_map_CDMABandClassList;
+static int ett_ansi_map_CDMAServiceOptionList;
+static int ett_ansi_map_PSID_RSIDList;
+static int ett_ansi_map_TargetCellIDList;
+static int ett_ansi_map_CDMAConnectionReferenceInformation;
+static int ett_ansi_map_CDMAConnectionReferenceList;
+static int ett_ansi_map_CDMAConnectionReferenceList_item;
+static int ett_ansi_map_AnalogRedirectRecord;
+static int ett_ansi_map_CDMAChannelNumberList;
+static int ett_ansi_map_CDMAChannelNumberList_item;
+static int ett_ansi_map_CDMARedirectRecord;
+static int ett_ansi_map_MSID;
+static int ett_ansi_map_DataAccessElement;
+static int ett_ansi_map_DataAccessElementList;
+static int ett_ansi_map_DataAccessElementList_item;
+static int ett_ansi_map_DataUpdateResult;
+static int ett_ansi_map_DataUpdateResultList;
+static int ett_ansi_map_DestinationAddress;
+static int ett_ansi_map_ExecuteScript;
+static int ett_ansi_map_ModificationRequest;
+static int ett_ansi_map_ModificationRequestList;
+static int ett_ansi_map_ModificationResult;
+static int ett_ansi_map_ModificationResultList;
+static int ett_ansi_map_ServiceDataAccessElement;
+static int ett_ansi_map_ServiceDataAccessElementList;
+static int ett_ansi_map_ServiceDataResult;
+static int ett_ansi_map_ServiceDataResultList;
+static int ett_ansi_map_TriggerAddressList;
+static int ett_ansi_map_TriggerList;
+static int ett_ansi_map_WINCapability;
+static int ett_ansi_map_CallRecoveryID;
+static int ett_ansi_map_CallRecoveryIDList;
+static int ett_ansi_map_PositionInformation;
+static int ett_ansi_map_GapInterval;
+static int ett_ansi_map_CDMAPSMMList;
+static int ett_ansi_map_CDMAPSMMList_item;
+static int ett_ansi_map_MPCAddressList;
+static int ett_ansi_map_MobileStationMSID;
+static int ett_ansi_map_NewlyAssignedMSID;
+static int ett_ansi_map_InvokeData;
+static int ett_ansi_map_ReturnData;
static expert_field ei_ansi_map_nr_not_used;
static expert_field ei_ansi_map_unknown_invokeData_blob;
@@ -1132,7 +1132,7 @@ static dissector_table_t is683_dissector_table; /* IS-683-A (OTA) */
static dissector_table_t is801_dissector_table; /* IS-801 (PLD) */
static packet_info *g_pinfo;
static proto_tree *g_tree;
-static tvbuff_t *SMS_BearerData_tvb = NULL;
+static tvbuff_t *SMS_BearerData_tvb;
static gint32 ansi_map_sms_tele_id = -1;
static gboolean is683_ota;
static gboolean is801_pld;
@@ -1150,7 +1150,7 @@ static void dissect_ansi_map_win_trigger_list(tvbuff_t *tvb, packet_info *pinfo
/* Transaction table */
-static wmem_multimap_t *TransactionId_table=NULL;
+static wmem_multimap_t *TransactionId_table;
/* Store Invoke information needed for the corresponding reply */
static void
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index 23425d2002..11d63a0f7f 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -122,40 +122,36 @@ static expert_field ei_ansi_tcap_dissector_not_implemented;
static struct tcapsrt_info_t * gp_tcapsrt_info;
static gboolean tcap_subdissector_used=FALSE;
-static struct tcaphash_context_t * gp_tcap_context=NULL;
+static struct tcaphash_context_t * gp_tcap_context;
/* Note the high bit should be masked off when registering in this table (0x7fff)*/
static dissector_table_t ansi_tcap_national_opcode_table; /* National Operation Codes */
-static gint ett_ansi_tcap_OperationCode;
-static gint ett_ansi_tcap_ErrorCode;
-static gint ett_ansi_tcap_PackageType;
-static gint ett_ansi_tcap_UniTransactionPDU;
-static gint ett_ansi_tcap_TransactionPDU;
-static gint ett_ansi_tcap_Abort;
-static gint ett_ansi_tcap_T_causeInformation;
-static gint ett_ansi_tcap_DialoguePortion_U;
-static gint ett_ansi_tcap_T_applicationContext;
-static gint ett_ansi_tcap_T_securityContext;
-static gint ett_ansi_tcap_UserInformation_U;
-static gint ett_ansi_tcap_Confidentiality;
-static gint ett_ansi_tcap_T_confidentialityId;
-static gint ett_ansi_tcap_SEQUENCE_OF_ComponentPDU;
-static gint ett_ansi_tcap_ComponentPDU;
-static gint ett_ansi_tcap_Invoke;
-static gint ett_ansi_tcap_ReturnResult;
-static gint ett_ansi_tcap_ReturnError;
-static gint ett_ansi_tcap_Reject;
-static gint ett_ansi_tcap_T_reject_parameter;
-static gint ett_ansi_tcap_T_paramSequence;
-static gint ett_ansi_tcap_T_paramSet;
+static int ett_ansi_tcap_OperationCode;
+static int ett_ansi_tcap_ErrorCode;
+static int ett_ansi_tcap_PackageType;
+static int ett_ansi_tcap_UniTransactionPDU;
+static int ett_ansi_tcap_TransactionPDU;
+static int ett_ansi_tcap_Abort;
+static int ett_ansi_tcap_T_causeInformation;
+static int ett_ansi_tcap_DialoguePortion_U;
+static int ett_ansi_tcap_T_applicationContext;
+static int ett_ansi_tcap_T_securityContext;
+static int ett_ansi_tcap_UserInformation_U;
+static int ett_ansi_tcap_Confidentiality;
+static int ett_ansi_tcap_T_confidentialityId;
+static int ett_ansi_tcap_SEQUENCE_OF_ComponentPDU;
+static int ett_ansi_tcap_ComponentPDU;
+static int ett_ansi_tcap_Invoke;
+static int ett_ansi_tcap_ReturnResult;
+static int ett_ansi_tcap_ReturnError;
+static int ett_ansi_tcap_Reject;
+static int ett_ansi_tcap_T_reject_parameter;
+static int ett_ansi_tcap_T_paramSequence;
+static int ett_ansi_tcap_T_paramSet;
#define MAX_SSN 254
-extern gboolean gtcap_PersistentSRT;
-extern guint gtcap_RepetitionTimeout;
-extern guint gtcap_LostTimeout;
-
/* When several Tcap components are received in a single TCAP message,
we have to use several buffers for the stored parameters
because else this data are erased during TAP dissector call */
@@ -163,7 +159,7 @@ extern guint gtcap_LostTimeout;
int tcapsrt_global_current=0;
struct tcapsrt_info_t tcapsrt_global_info[MAX_TCAP_INSTANCE];
-static dissector_table_t ber_oid_dissector_table=NULL;
+static dissector_table_t ber_oid_dissector_table;
static const char * cur_oid;
static const char * tcapext_oid;
@@ -210,7 +206,7 @@ struct ansi_tcap_invokedata_t {
gint32 OperationCode_national;
};
-static wmem_multimap_t *TransactionId_table=NULL;
+static wmem_multimap_t *TransactionId_table;
/* Store Invoke information needed for the corresponding reply */
static void
@@ -1366,7 +1362,7 @@ dissect_ansi_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, vo
}
}
if (g_ansi_tcap_HandleSRT && p_tcap_context && p_tcap_context->callback) {
- /* Callback fonction for the upper layer */
+ /* Callback function for the upper layer */
(p_tcap_context->callback)(tvb, pinfo, stat_tree, p_tcap_context);
}
}
diff --git a/epan/dissectors/packet-aoe.c b/epan/dissectors/packet-aoe.c
index 86c389e30e..a458cc8955 100644
--- a/epan/dissectors/packet-aoe.c
+++ b/epan/dissectors/packet-aoe.c
@@ -160,8 +160,8 @@ typedef struct ata_info_t {
nstime_t req_time;
guint8 cmd;
} ata_info_t;
-static wmem_map_t *ata_cmd_unmatched = NULL;
-static wmem_map_t *ata_cmd_matched = NULL;
+static wmem_map_t *ata_cmd_unmatched;
+static wmem_map_t *ata_cmd_matched;
static guint
ata_cmd_hash_matched(gconstpointer k)
diff --git a/epan/dissectors/packet-aol.c b/epan/dissectors/packet-aol.c
index 94f0257076..29c8b6877b 100644
--- a/epan/dissectors/packet-aol.c
+++ b/epan/dissectors/packet-aol.c
@@ -119,7 +119,7 @@ static expert_field ei_aol_pdu_length_bad;
static expert_field ei_aol_end_missing;
/* Prefs */
-static gboolean aol_desegment = TRUE;
+static bool aol_desegment = true;
/**
* Dissect the 'INIT' PDU.
diff --git a/epan/dissectors/packet-ap1394.c b/epan/dissectors/packet-ap1394.c
index d2e504753d..7dc67766c5 100644
--- a/epan/dissectors/packet-ap1394.c
+++ b/epan/dissectors/packet-ap1394.c
@@ -32,7 +32,7 @@ static gint ett_ap1394;
static dissector_table_t ethertype_subdissector_table;
-static gboolean
+static bool
capture_ap1394(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint16 etype;
diff --git a/epan/dissectors/packet-aprs.c b/epan/dissectors/packet-aprs.c
index 1ece175371..e113a1fa12 100644
--- a/epan/dissectors/packet-aprs.c
+++ b/epan/dissectors/packet-aprs.c
@@ -153,7 +153,7 @@ static int hf_aprs_shelter_data;
static int hf_aprs_space_weather;
-static gboolean gPREF_APRS_LAX = FALSE;
+static bool gPREF_APRS_LAX;
static gint ett_aprs;
static gint ett_aprs_msg;
diff --git a/epan/dissectors/packet-arcnet.c b/epan/dissectors/packet-arcnet.c
index 51f493e3ba..65533e8075 100644
--- a/epan/dissectors/packet-arcnet.c
+++ b/epan/dissectors/packet-arcnet.c
@@ -150,13 +150,13 @@ capture_arcnet_common(const guchar *pd, int offset, int len, capture_packet_info
return TRUE;
}
-static gboolean
+static bool
capture_arcnet (const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
return capture_arcnet_common(pd, 4, len, cpinfo, pseudo_header, FALSE);
}
-static gboolean
+static bool
capture_arcnet_has_exception(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
return capture_arcnet_common(pd, 2, len, cpinfo, pseudo_header, TRUE);
diff --git a/epan/dissectors/packet-armagetronad.c b/epan/dissectors/packet-armagetronad.c
index 0d33ef2d46..5e6ef4df25 100644
--- a/epan/dissectors/packet-armagetronad.c
+++ b/epan/dissectors/packet-armagetronad.c
@@ -28,7 +28,7 @@ static int hf_armagetronad_msg_subtree;
static gint ett_armagetronad;
static gint ett_message;
-static dissector_handle_t armagetronad_handle = NULL;
+static dissector_handle_t armagetronad_handle;
#define ARMAGETRONAD_UDP_PORT_RANGE "4533-4534" /* 4533 is not IANA registered, 4534 is */
diff --git a/epan/dissectors/packet-arp.c b/epan/dissectors/packet-arp.c
index 45a1536c8d..b27bbed4f6 100644
--- a/epan/dissectors/packet-arp.c
+++ b/epan/dissectors/packet-arp.c
@@ -104,20 +104,20 @@ static capture_dissector_handle_t arp_cap_handle;
#define NO_STORM 2
/* Preference settings */
-static gboolean global_arp_detect_request_storm = FALSE;
+static bool global_arp_detect_request_storm;
static guint32 global_arp_detect_request_storm_packets = 30;
static guint32 global_arp_detect_request_storm_period = 100;
-static gboolean global_arp_detect_duplicate_ip_addresses = TRUE;
-static gboolean global_arp_register_network_address_binding = TRUE;
+static bool global_arp_detect_duplicate_ip_addresses = true;
+static bool global_arp_register_network_address_binding = true;
-static guint32 arp_request_count = 0;
+static guint32 arp_request_count;
static nstime_t time_at_start_of_count;
/* Map of (IP address -> MAC address) to detect duplicate IP addresses
Key is unsigned32 */
-static wmem_map_t *address_hash_table = NULL;
+static wmem_map_t *address_hash_table;
typedef struct address_hash_value {
guint8 mac[6];
@@ -126,7 +126,7 @@ typedef struct address_hash_value {
} address_hash_value;
/* Map of ((frame Num, IP address) -> MAC address) */
-static wmem_map_t *duplicate_result_hash_table = NULL;
+static wmem_map_t *duplicate_result_hash_table;
typedef struct duplicate_result_key {
guint32 frame_number;
@@ -1378,7 +1378,7 @@ dissect_ax25arp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
return tvb_captured_length(tvb);
}
-static gboolean
+static bool
capture_arp(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_arp);
diff --git a/epan/dissectors/packet-artemis.c b/epan/dissectors/packet-artemis.c
index c8a256eb05..a2ab0cec7a 100644
--- a/epan/dissectors/packet-artemis.c
+++ b/epan/dissectors/packet-artemis.c
@@ -34,7 +34,7 @@ static gint ett_artemis;
static expert_field ei_artemis_len_short;
-static dissector_handle_t artemis_tcp_handle = NULL;
+static dissector_handle_t artemis_tcp_handle;
void proto_register_artemis(void);
void proto_reg_handoff_artemis(void);
diff --git a/epan/dissectors/packet-aruba-erm.c b/epan/dissectors/packet-aruba-erm.c
index a1c1f666fd..0878afd4f3 100644
--- a/epan/dissectors/packet-aruba-erm.c
+++ b/epan/dissectors/packet-aruba-erm.c
@@ -123,7 +123,7 @@ void proto_reg_handoff_aruba_erm(void);
void proto_reg_handoff_aruba_erm_radio(void);
#if 0
-static gint aruba_erm_type = 0;
+static gint aruba_erm_type;
#endif
static int proto_aruba_erm;
diff --git a/epan/dissectors/packet-aruba-papi.c b/epan/dissectors/packet-aruba-papi.c
index 9eda0a9aa7..f42560951c 100644
--- a/epan/dissectors/packet-aruba-papi.c
+++ b/epan/dissectors/packet-aruba-papi.c
@@ -85,7 +85,7 @@ static expert_field ei_papi_debug_unknown;
static dissector_table_t papi_dissector_table;
/* Global PAPI Debug Preference */
-static gboolean g_papi_debug = FALSE;
+static bool g_papi_debug;
/* Initialize the subtree pointers */
static gint ett_papi;
diff --git a/epan/dissectors/packet-aruba-ubt.c b/epan/dissectors/packet-aruba-ubt.c
index a95b3ae9e2..1165f250ed 100644
--- a/epan/dissectors/packet-aruba-ubt.c
+++ b/epan/dissectors/packet-aruba-ubt.c
@@ -343,6 +343,7 @@ dissect_ubt(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U_)
/* variable to store T, L, V of TLVs & other data */
guint optlen = 0, type = 0, val = 0;
+ bool bool_val = false;
proto_item* tlv, * tlv_item, * tlv_item2;
/* reading type & length of TLVS from stream */
@@ -739,9 +740,9 @@ dissect_ubt(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U_)
case Status:/* Type 15: Status */
/* adding Status as proto_item to the tree */
- proto_tree_add_item_ret_boolean(message_subtree2, hf_ubt_dt_status, tvb, offset, optlen, ENC_BIG_ENDIAN, &val);
- proto_item_append_text(tlv, ": %u(%s)", val, (val == 1) ? "Success" : "Failure");
- col_append_fstr(pinfo->cinfo, COL_INFO, " status:%02d(%s)", val, (val == 1) ? "Success" : "Failure");
+ proto_tree_add_item_ret_boolean(message_subtree2, hf_ubt_dt_status, tvb, offset, optlen, ENC_BIG_ENDIAN, &bool_val);
+ proto_item_append_text(tlv, ": %u(%s)", bool_val, bool_val ? "Success" : "Failure");
+ col_append_fstr(pinfo->cinfo, COL_INFO, " status:%02d(%s)", bool_val, bool_val ? "Success" : "Failure");
offset += optlen;
break;
diff --git a/epan/dissectors/packet-asam-cmp.c b/epan/dissectors/packet-asam-cmp.c
index 334bf7a4f9..e902ee14f0 100644
--- a/epan/dissectors/packet-asam-cmp.c
+++ b/epan/dissectors/packet-asam-cmp.c
@@ -32,8 +32,8 @@ static int proto_asam_cmp;
static dissector_handle_t eth_handle;
-static gboolean heuristic_first = FALSE;
-static gboolean old_11bit_canid_encoding = FALSE;
+static bool heuristic_first;
+static bool old_11bit_canid_encoding;
static dissector_table_t lin_subdissector_table;
@@ -723,9 +723,9 @@ typedef struct _interface_config {
/* Devices */
#define DATAFILE_ASAM_CMP_DEVICES_IDS "ASAM_CMP_devices"
-static GHashTable *data_asam_cmp_devices = NULL;
-static generic_one_id_string_t *asam_cmp_devices = NULL;
-static guint asam_cmp_devices_num = 0;
+static GHashTable *data_asam_cmp_devices;
+static generic_one_id_string_t *asam_cmp_devices;
+static guint asam_cmp_devices_num;
UAT_HEX_CB_DEF(asam_cmp_devices, id, generic_one_id_string_t)
UAT_CSTRING_CB_DEF(asam_cmp_devices, name, generic_one_id_string_t)
@@ -733,9 +733,9 @@ UAT_CSTRING_CB_DEF(asam_cmp_devices, name, generic_one_id_string_t)
/* Interfaces */
#define DATAFILE_ASAM_CMP_IFACE_IDS "ASAM_CMP_interfaces"
-static GHashTable *data_asam_cmp_interfaces = NULL;
-static interface_config_t *asam_cmp_interfaces = NULL;
-static guint asam_cmp_interface_num = 0;
+static GHashTable *data_asam_cmp_interfaces;
+static interface_config_t *asam_cmp_interfaces;
+static guint asam_cmp_interface_num;
UAT_HEX_CB_DEF(asam_cmp_interfaces, id, interface_config_t)
UAT_CSTRING_CB_DEF(asam_cmp_interfaces, name, interface_config_t)
diff --git a/epan/dissectors/packet-asap.c b/epan/dissectors/packet-asap.c
index 212d6f1135..f41da4978e 100644
--- a/epan/dissectors/packet-asap.c
+++ b/epan/dissectors/packet-asap.c
@@ -89,8 +89,8 @@ static gint ett_asap_parameter;
static gint ett_asap_cause;
static gint ett_asap_flags;
-static guint64 asap_total_msgs = 0;
-static guint64 asap_total_bytes = 0;
+static guint64 asap_total_msgs;
+static guint64 asap_total_bytes;
static void
dissect_parameters(tvbuff_t *, packet_info *, proto_tree *);
diff --git a/epan/dissectors/packet-assa_r3.c b/epan/dissectors/packet-assa_r3.c
index 1e8b2e7c8b..092cc31883 100644
--- a/epan/dissectors/packet-assa_r3.c
+++ b/epan/dissectors/packet-assa_r3.c
@@ -1745,12 +1745,12 @@ static expert_field ei_r3_unknown_command_value;
static expert_field ei_r3_response_hasdata_octet_3;
static expert_field ei_r3_cmd_downloadfirmwaretimeout;
-static dissector_handle_t r3_handle = NULL;
+static dissector_handle_t r3_handle;
/*
* Indicates next command to be processed as a manufacturing command
*/
-static gint mfgCommandFlag = FALSE;
+static gint mfgCommandFlag;
/*
* Some enums that don't exist in public.h and should
diff --git a/epan/dissectors/packet-asterix.c b/epan/dissectors/packet-asterix.c
index 1520347d9c..ab70c794ad 100644
--- a/epan/dissectors/packet-asterix.c
+++ b/epan/dissectors/packet-asterix.c
@@ -9,7 +9,7 @@ See tools/asterix/README.md for details.
Data source:
https://zoranbosnjak.github.io/asterix-specs
-git revision: 0c14439564e21294935699a2f0b9db981007a803
+git revision: debbe8c9f05b3a8f244178a4331a9e7d90aec5a1
*/
@@ -103,22 +103,20 @@ struct FieldPart_s {
const char *format_string; /* format string for showing float values */
};
-DIAG_OFF_PEDANTIC
typedef struct AsterixField_s AsterixField;
struct AsterixField_s {
- uint8_t type; /* type of field */
- unsigned length; /* fixed length */
- unsigned repetition_counter_size; /* size of repetition counter, length of one item is in length */
- unsigned header_length; /* the size is in first header_length bytes of the field */
- int *hf; /* pointer to Wireshark hf_register_info */
- const FieldPart **part; /* Look declaration and description of FieldPart above. */
- const AsterixField *field[]; /* subfields */
+ uint8_t type; /* type of field */
+ unsigned length; /* fixed length */
+ unsigned repetition_counter_size; /* size of repetition counter, length of one item is in length */
+ unsigned header_length; /* the size is in first header_length bytes of the field */
+ int *hf; /* pointer to Wireshark hf_register_info */
+ const FieldPart * const *part; /* Look declaration and description of FieldPart above. */
+ const AsterixField * const field[]; /* subfields */
};
-DIAG_ON_PEDANTIC
static void dissect_asterix_packet (tvbuff_t *, packet_info *pinfo, proto_tree *);
static void dissect_asterix_data_block (tvbuff_t *tvb, packet_info *pinfo, unsigned, proto_tree *, uint8_t, int);
-static int dissect_asterix_fields (tvbuff_t *, packet_info *pinfo, unsigned, proto_tree *, uint8_t, const AsterixField *[]);
+static int dissect_asterix_fields (tvbuff_t *, packet_info *pinfo, unsigned, proto_tree *, uint8_t, const AsterixField * const []);
static void asterix_build_subtree (tvbuff_t *, packet_info *pinfo, unsigned, proto_tree *, const AsterixField *);
static void twos_complement (int64_t *, int);
@@ -126,8 +124,8 @@ static uint8_t asterix_bit (uint8_t, uint8_t);
static unsigned asterix_fspec_len (tvbuff_t *, unsigned);
static uint8_t asterix_field_exists (tvbuff_t *, unsigned, int);
static uint8_t asterix_get_active_uap (tvbuff_t *, unsigned, uint8_t);
-static int asterix_field_length (tvbuff_t *, unsigned, const AsterixField *);
-static int asterix_field_offset (tvbuff_t *, unsigned, const AsterixField *[], int);
+static int asterix_field_length (tvbuff_t *, unsigned, const AsterixField * const);
+static int asterix_field_offset (tvbuff_t *, unsigned, const AsterixField * const [], int);
static int asterix_message_length (tvbuff_t *, unsigned, uint8_t, uint8_t);
static const char AISCode[] = { ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
@@ -150,7 +148,6 @@ static const FieldPart IXXX_6bit_spare = { 6, 1.0, FIELD_PART_UINT, NULL, NULL }
static const FieldPart IXXX_7bit_spare = { 7, 1.0, FIELD_PART_UINT, NULL, NULL };
/* Spare Item */
-DIAG_OFF_PEDANTIC
static const AsterixField IX_SPARE = { FIXED, 0, 0, 0, &hf_spare, NULL, { NULL } };
/* insert1 */
@@ -160,7 +157,7 @@ static int hf_001_V1_2_010_SAC;
static const FieldPart I001_V1_2_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_001_V1_2_010_SAC, NULL };
static int hf_001_V1_2_010_SIC;
static const FieldPart I001_V1_2_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_001_V1_2_010_SIC, NULL };
-static const FieldPart *I001_V1_2_010_PARTS[] = {
+static const FieldPart * const I001_V1_2_010_PARTS[] = {
&I001_V1_2_010_SAC,
&I001_V1_2_010_SIC,
NULL
@@ -241,7 +238,7 @@ static const value_string valstr_001_V1_2_020_MI[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_2_020_MI = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_020_MI, NULL };
-static const FieldPart *I001_V1_2_020_PARTS[] = {
+static const FieldPart * const I001_V1_2_020_PARTS[] = {
&I001_V1_2_020_TYP,
&I001_V1_2_020_SIM,
&I001_V1_2_020_SSRPSR,
@@ -278,7 +275,7 @@ static const value_string valstr_001_V1_2_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_2_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_001_V1_2_030_Subitem, NULL };
-static const FieldPart *I001_V1_2_030_PARTS[] = {
+static const FieldPart * const I001_V1_2_030_PARTS[] = {
&I001_V1_2_030_Subitem,
&IXXX_FX,
NULL
@@ -289,7 +286,7 @@ static int hf_001_V1_2_040_RHO;
static const FieldPart I001_V1_2_040_RHO = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_V1_2_040_RHO, NULL };
static int hf_001_V1_2_040_THETA;
static const FieldPart I001_V1_2_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_V1_2_040_THETA, NULL };
-static const FieldPart *I001_V1_2_040_PARTS[] = {
+static const FieldPart * const I001_V1_2_040_PARTS[] = {
&I001_V1_2_040_RHO,
&I001_V1_2_040_THETA,
NULL
@@ -300,7 +297,7 @@ static int hf_001_V1_2_042_X;
static const FieldPart I001_V1_2_042_X = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_V1_2_042_X, NULL };
static int hf_001_V1_2_042_Y;
static const FieldPart I001_V1_2_042_Y = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_V1_2_042_Y, NULL };
-static const FieldPart *I001_V1_2_042_PARTS[] = {
+static const FieldPart * const I001_V1_2_042_PARTS[] = {
&I001_V1_2_042_X,
&I001_V1_2_042_Y,
NULL
@@ -330,7 +327,7 @@ static const value_string valstr_001_V1_2_050_L[] = {
static const FieldPart I001_V1_2_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_050_L, NULL };
static int hf_001_V1_2_050_MODE2;
static const FieldPart I001_V1_2_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_V1_2_050_MODE2, NULL };
-static const FieldPart *I001_V1_2_050_PARTS[] = {
+static const FieldPart * const I001_V1_2_050_PARTS[] = {
&I001_V1_2_050_V,
&I001_V1_2_050_G,
&I001_V1_2_050_L,
@@ -424,7 +421,7 @@ static const value_string valstr_001_V1_2_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_2_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_060_QD1, NULL };
-static const FieldPart *I001_V1_2_060_PARTS[] = {
+static const FieldPart * const I001_V1_2_060_PARTS[] = {
&IXXX_4bit_spare,
&I001_V1_2_060_QA4,
&I001_V1_2_060_QA2,
@@ -465,7 +462,7 @@ static const value_string valstr_001_V1_2_070_L[] = {
static const FieldPart I001_V1_2_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_070_L, NULL };
static int hf_001_V1_2_070_MODE3A;
static const FieldPart I001_V1_2_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_V1_2_070_MODE3A, NULL };
-static const FieldPart *I001_V1_2_070_PARTS[] = {
+static const FieldPart * const I001_V1_2_070_PARTS[] = {
&I001_V1_2_070_V,
&I001_V1_2_070_G,
&I001_V1_2_070_L,
@@ -559,7 +556,7 @@ static const value_string valstr_001_V1_2_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_2_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_080_QD1, NULL };
-static const FieldPart *I001_V1_2_080_PARTS[] = {
+static const FieldPart * const I001_V1_2_080_PARTS[] = {
&IXXX_4bit_spare,
&I001_V1_2_080_QA4,
&I001_V1_2_080_QA2,
@@ -593,7 +590,7 @@ static const value_string valstr_001_V1_2_090_G[] = {
static const FieldPart I001_V1_2_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_090_G, NULL };
static int hf_001_V1_2_090_HGT;
static const FieldPart I001_V1_2_090_HGT = { 14, 0.25, FIELD_PART_FLOAT, &hf_001_V1_2_090_HGT, NULL };
-static const FieldPart *I001_V1_2_090_PARTS[] = {
+static const FieldPart * const I001_V1_2_090_PARTS[] = {
&I001_V1_2_090_V,
&I001_V1_2_090_G,
&I001_V1_2_090_HGT,
@@ -701,7 +698,7 @@ static const value_string valstr_001_V1_2_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_2_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_100_QD4, NULL };
-static const FieldPart *I001_V1_2_100_PARTS[] = {
+static const FieldPart * const I001_V1_2_100_PARTS[] = {
&I001_V1_2_100_V,
&I001_V1_2_100_G,
&IXXX_2bit_spare,
@@ -725,7 +722,7 @@ static const AsterixField I001_V1_2_100 = { FIXED, 4, 0, 0, &hf_001_V1_2_100, I0
static int hf_001_V1_2_120;
static int hf_001_V1_2_120_VALUE;
static const FieldPart I001_V1_2_120_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_001_V1_2_120_VALUE, NULL };
-static const FieldPart *I001_V1_2_120_PARTS[] = {
+static const FieldPart * const I001_V1_2_120_PARTS[] = {
&I001_V1_2_120_VALUE,
NULL
};
@@ -733,7 +730,7 @@ static const AsterixField I001_V1_2_120 = { FIXED, 1, 0, 0, &hf_001_V1_2_120, I0
static int hf_001_V1_2_130;
static int hf_001_V1_2_130_Subitem;
static const FieldPart I001_V1_2_130_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_V1_2_130_Subitem, NULL };
-static const FieldPart *I001_V1_2_130_PARTS[] = {
+static const FieldPart * const I001_V1_2_130_PARTS[] = {
&I001_V1_2_130_Subitem,
&IXXX_FX,
NULL
@@ -742,7 +739,7 @@ static const AsterixField I001_V1_2_130 = { FX, 1, 0, 0, &hf_001_V1_2_130, I001_
static int hf_001_V1_2_131;
static int hf_001_V1_2_131_VALUE;
static const FieldPart I001_V1_2_131_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_001_V1_2_131_VALUE, NULL };
-static const FieldPart *I001_V1_2_131_PARTS[] = {
+static const FieldPart * const I001_V1_2_131_PARTS[] = {
&I001_V1_2_131_VALUE,
NULL
};
@@ -750,7 +747,7 @@ static const AsterixField I001_V1_2_131 = { FIXED, 1, 0, 0, &hf_001_V1_2_131, I0
static int hf_001_V1_2_141;
static int hf_001_V1_2_141_VALUE;
static const FieldPart I001_V1_2_141_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_V1_2_141_VALUE, NULL };
-static const FieldPart *I001_V1_2_141_PARTS[] = {
+static const FieldPart * const I001_V1_2_141_PARTS[] = {
&I001_V1_2_141_VALUE,
NULL
};
@@ -777,7 +774,7 @@ static const value_string valstr_001_V1_2_150_X2[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_2_150_X2 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_150_X2, NULL };
-static const FieldPart *I001_V1_2_150_PARTS[] = {
+static const FieldPart * const I001_V1_2_150_PARTS[] = {
&I001_V1_2_150_XA,
&IXXX_1bit_spare,
&I001_V1_2_150_XC,
@@ -790,7 +787,7 @@ static const AsterixField I001_V1_2_150 = { FIXED, 1, 0, 0, &hf_001_V1_2_150, I0
static int hf_001_V1_2_161;
static int hf_001_V1_2_161_VALUE;
static const FieldPart I001_V1_2_161_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_001_V1_2_161_VALUE, NULL };
-static const FieldPart *I001_V1_2_161_PARTS[] = {
+static const FieldPart * const I001_V1_2_161_PARTS[] = {
&I001_V1_2_161_VALUE,
NULL
};
@@ -845,7 +842,7 @@ static const value_string valstr_001_V1_2_170_TRE[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_2_170_TRE = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_2_170_TRE, NULL };
-static const FieldPart *I001_V1_2_170_PARTS[] = {
+static const FieldPart * const I001_V1_2_170_PARTS[] = {
&I001_V1_2_170_CON,
&I001_V1_2_170_RAD,
&I001_V1_2_170_MAN,
@@ -865,7 +862,7 @@ static int hf_001_V1_2_200_GSP;
static const FieldPart I001_V1_2_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_001_V1_2_200_GSP, NULL };
static int hf_001_V1_2_200_HDG;
static const FieldPart I001_V1_2_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_V1_2_200_HDG, NULL };
-static const FieldPart *I001_V1_2_200_PARTS[] = {
+static const FieldPart * const I001_V1_2_200_PARTS[] = {
&I001_V1_2_200_GSP,
&I001_V1_2_200_HDG,
NULL
@@ -874,7 +871,7 @@ static const AsterixField I001_V1_2_200 = { FIXED, 4, 0, 0, &hf_001_V1_2_200, I0
static int hf_001_V1_2_210;
static int hf_001_V1_2_210_Subitem;
static const FieldPart I001_V1_2_210_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_V1_2_210_Subitem, NULL };
-static const FieldPart *I001_V1_2_210_PARTS[] = {
+static const FieldPart * const I001_V1_2_210_PARTS[] = {
&I001_V1_2_210_Subitem,
&IXXX_FX,
NULL
@@ -883,8 +880,7 @@ static const AsterixField I001_V1_2_210 = { FX, 1, 0, 0, &hf_001_V1_2_210, I001_
static int hf_001_V1_2_SP;
static const AsterixField I001_V1_2_SP = { EXP, 0, 0, 1, &hf_001_V1_2_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I001_V1_2_plot[] = {
+static const AsterixField * const I001_V1_2_plot[] = {
&I001_V1_2_010,
&I001_V1_2_020,
&I001_V1_2_040,
@@ -907,7 +903,7 @@ static const AsterixField *I001_V1_2_plot[] = {
&I001_V1_2_SP,
NULL
};
-static const AsterixField *I001_V1_2_track[] = {
+static const AsterixField * const I001_V1_2_track[] = {
&I001_V1_2_010,
&I001_V1_2_020,
&I001_V1_2_161,
@@ -932,12 +928,11 @@ static const AsterixField *I001_V1_2_track[] = {
&I001_V1_2_150,
NULL
};
-static const AsterixField **I001_V1_2[] = {
+static const AsterixField * const * const I001_V1_2[] = {
I001_V1_2_plot,
I001_V1_2_track,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 001, edition 1.3 */
static int hf_001_V1_3_010;
@@ -945,7 +940,7 @@ static int hf_001_V1_3_010_SAC;
static const FieldPart I001_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_001_V1_3_010_SAC, NULL };
static int hf_001_V1_3_010_SIC;
static const FieldPart I001_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_001_V1_3_010_SIC, NULL };
-static const FieldPart *I001_V1_3_010_PARTS[] = {
+static const FieldPart * const I001_V1_3_010_PARTS[] = {
&I001_V1_3_010_SAC,
&I001_V1_3_010_SIC,
NULL
@@ -1026,7 +1021,7 @@ static const value_string valstr_001_V1_3_020_MI[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_3_020_MI = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_020_MI, NULL };
-static const FieldPart *I001_V1_3_020_PARTS[] = {
+static const FieldPart * const I001_V1_3_020_PARTS[] = {
&I001_V1_3_020_TYP,
&I001_V1_3_020_SIM,
&I001_V1_3_020_SSRPSR,
@@ -1063,7 +1058,7 @@ static const value_string valstr_001_V1_3_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_3_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_001_V1_3_030_Subitem, NULL };
-static const FieldPart *I001_V1_3_030_PARTS[] = {
+static const FieldPart * const I001_V1_3_030_PARTS[] = {
&I001_V1_3_030_Subitem,
&IXXX_FX,
NULL
@@ -1074,7 +1069,7 @@ static int hf_001_V1_3_040_RHO;
static const FieldPart I001_V1_3_040_RHO = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_V1_3_040_RHO, NULL };
static int hf_001_V1_3_040_THETA;
static const FieldPart I001_V1_3_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_V1_3_040_THETA, NULL };
-static const FieldPart *I001_V1_3_040_PARTS[] = {
+static const FieldPart * const I001_V1_3_040_PARTS[] = {
&I001_V1_3_040_RHO,
&I001_V1_3_040_THETA,
NULL
@@ -1085,7 +1080,7 @@ static int hf_001_V1_3_042_X;
static const FieldPart I001_V1_3_042_X = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_V1_3_042_X, NULL };
static int hf_001_V1_3_042_Y;
static const FieldPart I001_V1_3_042_Y = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_V1_3_042_Y, NULL };
-static const FieldPart *I001_V1_3_042_PARTS[] = {
+static const FieldPart * const I001_V1_3_042_PARTS[] = {
&I001_V1_3_042_X,
&I001_V1_3_042_Y,
NULL
@@ -1115,7 +1110,7 @@ static const value_string valstr_001_V1_3_050_L[] = {
static const FieldPart I001_V1_3_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_050_L, NULL };
static int hf_001_V1_3_050_MODE2;
static const FieldPart I001_V1_3_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_V1_3_050_MODE2, NULL };
-static const FieldPart *I001_V1_3_050_PARTS[] = {
+static const FieldPart * const I001_V1_3_050_PARTS[] = {
&I001_V1_3_050_V,
&I001_V1_3_050_G,
&I001_V1_3_050_L,
@@ -1209,7 +1204,7 @@ static const value_string valstr_001_V1_3_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_3_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_060_QD1, NULL };
-static const FieldPart *I001_V1_3_060_PARTS[] = {
+static const FieldPart * const I001_V1_3_060_PARTS[] = {
&IXXX_4bit_spare,
&I001_V1_3_060_QA4,
&I001_V1_3_060_QA2,
@@ -1250,7 +1245,7 @@ static const value_string valstr_001_V1_3_070_L[] = {
static const FieldPart I001_V1_3_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_070_L, NULL };
static int hf_001_V1_3_070_MODE3A;
static const FieldPart I001_V1_3_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_V1_3_070_MODE3A, NULL };
-static const FieldPart *I001_V1_3_070_PARTS[] = {
+static const FieldPart * const I001_V1_3_070_PARTS[] = {
&I001_V1_3_070_V,
&I001_V1_3_070_G,
&I001_V1_3_070_L,
@@ -1344,7 +1339,7 @@ static const value_string valstr_001_V1_3_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_3_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_080_QD1, NULL };
-static const FieldPart *I001_V1_3_080_PARTS[] = {
+static const FieldPart * const I001_V1_3_080_PARTS[] = {
&IXXX_4bit_spare,
&I001_V1_3_080_QA4,
&I001_V1_3_080_QA2,
@@ -1378,7 +1373,7 @@ static const value_string valstr_001_V1_3_090_G[] = {
static const FieldPart I001_V1_3_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_090_G, NULL };
static int hf_001_V1_3_090_HGT;
static const FieldPart I001_V1_3_090_HGT = { 14, 0.25, FIELD_PART_FLOAT, &hf_001_V1_3_090_HGT, NULL };
-static const FieldPart *I001_V1_3_090_PARTS[] = {
+static const FieldPart * const I001_V1_3_090_PARTS[] = {
&I001_V1_3_090_V,
&I001_V1_3_090_G,
&I001_V1_3_090_HGT,
@@ -1486,7 +1481,7 @@ static const value_string valstr_001_V1_3_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_3_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_100_QD4, NULL };
-static const FieldPart *I001_V1_3_100_PARTS[] = {
+static const FieldPart * const I001_V1_3_100_PARTS[] = {
&I001_V1_3_100_V,
&I001_V1_3_100_G,
&IXXX_2bit_spare,
@@ -1510,7 +1505,7 @@ static const AsterixField I001_V1_3_100 = { FIXED, 4, 0, 0, &hf_001_V1_3_100, I0
static int hf_001_V1_3_120;
static int hf_001_V1_3_120_VALUE;
static const FieldPart I001_V1_3_120_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_001_V1_3_120_VALUE, NULL };
-static const FieldPart *I001_V1_3_120_PARTS[] = {
+static const FieldPart * const I001_V1_3_120_PARTS[] = {
&I001_V1_3_120_VALUE,
NULL
};
@@ -1518,7 +1513,7 @@ static const AsterixField I001_V1_3_120 = { FIXED, 1, 0, 0, &hf_001_V1_3_120, I0
static int hf_001_V1_3_130;
static int hf_001_V1_3_130_Subitem;
static const FieldPart I001_V1_3_130_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_V1_3_130_Subitem, NULL };
-static const FieldPart *I001_V1_3_130_PARTS[] = {
+static const FieldPart * const I001_V1_3_130_PARTS[] = {
&I001_V1_3_130_Subitem,
&IXXX_FX,
NULL
@@ -1527,7 +1522,7 @@ static const AsterixField I001_V1_3_130 = { FX, 1, 0, 0, &hf_001_V1_3_130, I001_
static int hf_001_V1_3_131;
static int hf_001_V1_3_131_VALUE;
static const FieldPart I001_V1_3_131_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_001_V1_3_131_VALUE, NULL };
-static const FieldPart *I001_V1_3_131_PARTS[] = {
+static const FieldPart * const I001_V1_3_131_PARTS[] = {
&I001_V1_3_131_VALUE,
NULL
};
@@ -1535,7 +1530,7 @@ static const AsterixField I001_V1_3_131 = { FIXED, 1, 0, 0, &hf_001_V1_3_131, I0
static int hf_001_V1_3_141;
static int hf_001_V1_3_141_VALUE;
static const FieldPart I001_V1_3_141_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_V1_3_141_VALUE, NULL };
-static const FieldPart *I001_V1_3_141_PARTS[] = {
+static const FieldPart * const I001_V1_3_141_PARTS[] = {
&I001_V1_3_141_VALUE,
NULL
};
@@ -1562,7 +1557,7 @@ static const value_string valstr_001_V1_3_150_X2[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_3_150_X2 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_150_X2, NULL };
-static const FieldPart *I001_V1_3_150_PARTS[] = {
+static const FieldPart * const I001_V1_3_150_PARTS[] = {
&I001_V1_3_150_XA,
&IXXX_1bit_spare,
&I001_V1_3_150_XC,
@@ -1575,7 +1570,7 @@ static const AsterixField I001_V1_3_150 = { FIXED, 1, 0, 0, &hf_001_V1_3_150, I0
static int hf_001_V1_3_161;
static int hf_001_V1_3_161_VALUE;
static const FieldPart I001_V1_3_161_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_001_V1_3_161_VALUE, NULL };
-static const FieldPart *I001_V1_3_161_PARTS[] = {
+static const FieldPart * const I001_V1_3_161_PARTS[] = {
&I001_V1_3_161_VALUE,
NULL
};
@@ -1630,7 +1625,7 @@ static const value_string valstr_001_V1_3_170_TRE[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_3_170_TRE = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_3_170_TRE, NULL };
-static const FieldPart *I001_V1_3_170_PARTS[] = {
+static const FieldPart * const I001_V1_3_170_PARTS[] = {
&I001_V1_3_170_CON,
&I001_V1_3_170_RAD,
&I001_V1_3_170_MAN,
@@ -1650,7 +1645,7 @@ static int hf_001_V1_3_200_GSP;
static const FieldPart I001_V1_3_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_001_V1_3_200_GSP, NULL };
static int hf_001_V1_3_200_HDG;
static const FieldPart I001_V1_3_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_V1_3_200_HDG, NULL };
-static const FieldPart *I001_V1_3_200_PARTS[] = {
+static const FieldPart * const I001_V1_3_200_PARTS[] = {
&I001_V1_3_200_GSP,
&I001_V1_3_200_HDG,
NULL
@@ -1659,7 +1654,7 @@ static const AsterixField I001_V1_3_200 = { FIXED, 4, 0, 0, &hf_001_V1_3_200, I0
static int hf_001_V1_3_210;
static int hf_001_V1_3_210_Subitem;
static const FieldPart I001_V1_3_210_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_V1_3_210_Subitem, NULL };
-static const FieldPart *I001_V1_3_210_PARTS[] = {
+static const FieldPart * const I001_V1_3_210_PARTS[] = {
&I001_V1_3_210_Subitem,
&IXXX_FX,
NULL
@@ -1668,8 +1663,7 @@ static const AsterixField I001_V1_3_210 = { FX, 1, 0, 0, &hf_001_V1_3_210, I001_
static int hf_001_V1_3_SP;
static const AsterixField I001_V1_3_SP = { EXP, 0, 0, 1, &hf_001_V1_3_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I001_V1_3_plot[] = {
+static const AsterixField * const I001_V1_3_plot[] = {
&I001_V1_3_010,
&I001_V1_3_020,
&I001_V1_3_040,
@@ -1692,7 +1686,7 @@ static const AsterixField *I001_V1_3_plot[] = {
&I001_V1_3_SP,
NULL
};
-static const AsterixField *I001_V1_3_track[] = {
+static const AsterixField * const I001_V1_3_track[] = {
&I001_V1_3_010,
&I001_V1_3_020,
&I001_V1_3_161,
@@ -1717,12 +1711,11 @@ static const AsterixField *I001_V1_3_track[] = {
&I001_V1_3_150,
NULL
};
-static const AsterixField **I001_V1_3[] = {
+static const AsterixField * const * const I001_V1_3[] = {
I001_V1_3_plot,
I001_V1_3_track,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 001, edition 1.4 */
static int hf_001_V1_4_010;
@@ -1730,7 +1723,7 @@ static int hf_001_V1_4_010_SAC;
static const FieldPart I001_V1_4_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_001_V1_4_010_SAC, NULL };
static int hf_001_V1_4_010_SIC;
static const FieldPart I001_V1_4_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_001_V1_4_010_SIC, NULL };
-static const FieldPart *I001_V1_4_010_PARTS[] = {
+static const FieldPart * const I001_V1_4_010_PARTS[] = {
&I001_V1_4_010_SAC,
&I001_V1_4_010_SIC,
NULL
@@ -1811,7 +1804,7 @@ static const value_string valstr_001_V1_4_020_MI[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_4_020_MI = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_020_MI, NULL };
-static const FieldPart *I001_V1_4_020_PARTS[] = {
+static const FieldPart * const I001_V1_4_020_PARTS[] = {
&I001_V1_4_020_TYP,
&I001_V1_4_020_SIM,
&I001_V1_4_020_SSRPSR,
@@ -1848,7 +1841,7 @@ static const value_string valstr_001_V1_4_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_4_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_001_V1_4_030_Subitem, NULL };
-static const FieldPart *I001_V1_4_030_PARTS[] = {
+static const FieldPart * const I001_V1_4_030_PARTS[] = {
&I001_V1_4_030_Subitem,
&IXXX_FX,
NULL
@@ -1859,7 +1852,7 @@ static int hf_001_V1_4_040_RHO;
static const FieldPart I001_V1_4_040_RHO = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_V1_4_040_RHO, NULL };
static int hf_001_V1_4_040_THETA;
static const FieldPart I001_V1_4_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_V1_4_040_THETA, NULL };
-static const FieldPart *I001_V1_4_040_PARTS[] = {
+static const FieldPart * const I001_V1_4_040_PARTS[] = {
&I001_V1_4_040_RHO,
&I001_V1_4_040_THETA,
NULL
@@ -1870,7 +1863,7 @@ static int hf_001_V1_4_042_X;
static const FieldPart I001_V1_4_042_X = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_V1_4_042_X, NULL };
static int hf_001_V1_4_042_Y;
static const FieldPart I001_V1_4_042_Y = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_V1_4_042_Y, NULL };
-static const FieldPart *I001_V1_4_042_PARTS[] = {
+static const FieldPart * const I001_V1_4_042_PARTS[] = {
&I001_V1_4_042_X,
&I001_V1_4_042_Y,
NULL
@@ -1900,7 +1893,7 @@ static const value_string valstr_001_V1_4_050_L[] = {
static const FieldPart I001_V1_4_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_050_L, NULL };
static int hf_001_V1_4_050_MODE2;
static const FieldPart I001_V1_4_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_V1_4_050_MODE2, NULL };
-static const FieldPart *I001_V1_4_050_PARTS[] = {
+static const FieldPart * const I001_V1_4_050_PARTS[] = {
&I001_V1_4_050_V,
&I001_V1_4_050_G,
&I001_V1_4_050_L,
@@ -1994,7 +1987,7 @@ static const value_string valstr_001_V1_4_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_4_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_060_QD1, NULL };
-static const FieldPart *I001_V1_4_060_PARTS[] = {
+static const FieldPart * const I001_V1_4_060_PARTS[] = {
&IXXX_4bit_spare,
&I001_V1_4_060_QA4,
&I001_V1_4_060_QA2,
@@ -2035,7 +2028,7 @@ static const value_string valstr_001_V1_4_070_L[] = {
static const FieldPart I001_V1_4_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_070_L, NULL };
static int hf_001_V1_4_070_MODE3A;
static const FieldPart I001_V1_4_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_V1_4_070_MODE3A, NULL };
-static const FieldPart *I001_V1_4_070_PARTS[] = {
+static const FieldPart * const I001_V1_4_070_PARTS[] = {
&I001_V1_4_070_V,
&I001_V1_4_070_G,
&I001_V1_4_070_L,
@@ -2129,7 +2122,7 @@ static const value_string valstr_001_V1_4_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_4_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_080_QD1, NULL };
-static const FieldPart *I001_V1_4_080_PARTS[] = {
+static const FieldPart * const I001_V1_4_080_PARTS[] = {
&IXXX_4bit_spare,
&I001_V1_4_080_QA4,
&I001_V1_4_080_QA2,
@@ -2163,7 +2156,7 @@ static const value_string valstr_001_V1_4_090_G[] = {
static const FieldPart I001_V1_4_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_090_G, NULL };
static int hf_001_V1_4_090_HGT;
static const FieldPart I001_V1_4_090_HGT = { 14, 0.25, FIELD_PART_FLOAT, &hf_001_V1_4_090_HGT, NULL };
-static const FieldPart *I001_V1_4_090_PARTS[] = {
+static const FieldPart * const I001_V1_4_090_PARTS[] = {
&I001_V1_4_090_V,
&I001_V1_4_090_G,
&I001_V1_4_090_HGT,
@@ -2271,7 +2264,7 @@ static const value_string valstr_001_V1_4_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_4_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_100_QD4, NULL };
-static const FieldPart *I001_V1_4_100_PARTS[] = {
+static const FieldPart * const I001_V1_4_100_PARTS[] = {
&I001_V1_4_100_V,
&I001_V1_4_100_G,
&IXXX_2bit_spare,
@@ -2295,7 +2288,7 @@ static const AsterixField I001_V1_4_100 = { FIXED, 4, 0, 0, &hf_001_V1_4_100, I0
static int hf_001_V1_4_120;
static int hf_001_V1_4_120_VALUE;
static const FieldPart I001_V1_4_120_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_001_V1_4_120_VALUE, NULL };
-static const FieldPart *I001_V1_4_120_PARTS[] = {
+static const FieldPart * const I001_V1_4_120_PARTS[] = {
&I001_V1_4_120_VALUE,
NULL
};
@@ -2303,7 +2296,7 @@ static const AsterixField I001_V1_4_120 = { FIXED, 1, 0, 0, &hf_001_V1_4_120, I0
static int hf_001_V1_4_130;
static int hf_001_V1_4_130_Subitem;
static const FieldPart I001_V1_4_130_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_V1_4_130_Subitem, NULL };
-static const FieldPart *I001_V1_4_130_PARTS[] = {
+static const FieldPart * const I001_V1_4_130_PARTS[] = {
&I001_V1_4_130_Subitem,
&IXXX_FX,
NULL
@@ -2312,7 +2305,7 @@ static const AsterixField I001_V1_4_130 = { FX, 1, 0, 0, &hf_001_V1_4_130, I001_
static int hf_001_V1_4_131;
static int hf_001_V1_4_131_VALUE;
static const FieldPart I001_V1_4_131_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_001_V1_4_131_VALUE, NULL };
-static const FieldPart *I001_V1_4_131_PARTS[] = {
+static const FieldPart * const I001_V1_4_131_PARTS[] = {
&I001_V1_4_131_VALUE,
NULL
};
@@ -2320,7 +2313,7 @@ static const AsterixField I001_V1_4_131 = { FIXED, 1, 0, 0, &hf_001_V1_4_131, I0
static int hf_001_V1_4_141;
static int hf_001_V1_4_141_VALUE;
static const FieldPart I001_V1_4_141_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_V1_4_141_VALUE, NULL };
-static const FieldPart *I001_V1_4_141_PARTS[] = {
+static const FieldPart * const I001_V1_4_141_PARTS[] = {
&I001_V1_4_141_VALUE,
NULL
};
@@ -2347,7 +2340,7 @@ static const value_string valstr_001_V1_4_150_X2[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_4_150_X2 = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_150_X2, NULL };
-static const FieldPart *I001_V1_4_150_PARTS[] = {
+static const FieldPart * const I001_V1_4_150_PARTS[] = {
&I001_V1_4_150_XA,
&IXXX_1bit_spare,
&I001_V1_4_150_XC,
@@ -2360,7 +2353,7 @@ static const AsterixField I001_V1_4_150 = { FIXED, 1, 0, 0, &hf_001_V1_4_150, I0
static int hf_001_V1_4_161;
static int hf_001_V1_4_161_VALUE;
static const FieldPart I001_V1_4_161_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_001_V1_4_161_VALUE, NULL };
-static const FieldPart *I001_V1_4_161_PARTS[] = {
+static const FieldPart * const I001_V1_4_161_PARTS[] = {
&I001_V1_4_161_VALUE,
NULL
};
@@ -2415,7 +2408,7 @@ static const value_string valstr_001_V1_4_170_TRE[] = {
{ 0, NULL }
};
static const FieldPart I001_V1_4_170_TRE = { 1, 1.0, FIELD_PART_UINT, &hf_001_V1_4_170_TRE, NULL };
-static const FieldPart *I001_V1_4_170_PARTS[] = {
+static const FieldPart * const I001_V1_4_170_PARTS[] = {
&I001_V1_4_170_CON,
&I001_V1_4_170_RAD,
&I001_V1_4_170_MAN,
@@ -2435,7 +2428,7 @@ static int hf_001_V1_4_200_GSP;
static const FieldPart I001_V1_4_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_001_V1_4_200_GSP, NULL };
static int hf_001_V1_4_200_HDG;
static const FieldPart I001_V1_4_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_V1_4_200_HDG, NULL };
-static const FieldPart *I001_V1_4_200_PARTS[] = {
+static const FieldPart * const I001_V1_4_200_PARTS[] = {
&I001_V1_4_200_GSP,
&I001_V1_4_200_HDG,
NULL
@@ -2444,7 +2437,7 @@ static const AsterixField I001_V1_4_200 = { FIXED, 4, 0, 0, &hf_001_V1_4_200, I0
static int hf_001_V1_4_210;
static int hf_001_V1_4_210_Subitem;
static const FieldPart I001_V1_4_210_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_V1_4_210_Subitem, NULL };
-static const FieldPart *I001_V1_4_210_PARTS[] = {
+static const FieldPart * const I001_V1_4_210_PARTS[] = {
&I001_V1_4_210_Subitem,
&IXXX_FX,
NULL
@@ -2459,7 +2452,7 @@ static int hf_001_010_SAC;
static const FieldPart I001_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_001_010_SAC, NULL };
static int hf_001_010_SIC;
static const FieldPart I001_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_001_010_SIC, NULL };
-static const FieldPart *I001_010_PARTS[] = {
+static const FieldPart * const I001_010_PARTS[] = {
&I001_010_SAC,
&I001_010_SIC,
NULL
@@ -2540,7 +2533,7 @@ static const value_string valstr_001_020_MI[] = {
{ 0, NULL }
};
static const FieldPart I001_020_MI = { 1, 1.0, FIELD_PART_UINT, &hf_001_020_MI, NULL };
-static const FieldPart *I001_020_PARTS[] = {
+static const FieldPart * const I001_020_PARTS[] = {
&I001_020_TYP,
&I001_020_SIM,
&I001_020_SSRPSR,
@@ -2577,7 +2570,7 @@ static const value_string valstr_001_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I001_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_001_030_Subitem, NULL };
-static const FieldPart *I001_030_PARTS[] = {
+static const FieldPart * const I001_030_PARTS[] = {
&I001_030_Subitem,
&IXXX_FX,
NULL
@@ -2588,7 +2581,7 @@ static int hf_001_040_RHO;
static const FieldPart I001_040_RHO = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_040_RHO, NULL };
static int hf_001_040_THETA;
static const FieldPart I001_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_040_THETA, NULL };
-static const FieldPart *I001_040_PARTS[] = {
+static const FieldPart * const I001_040_PARTS[] = {
&I001_040_RHO,
&I001_040_THETA,
NULL
@@ -2599,7 +2592,7 @@ static int hf_001_042_X;
static const FieldPart I001_042_X = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_042_X, NULL };
static int hf_001_042_Y;
static const FieldPart I001_042_Y = { 16, 0.015625, FIELD_PART_FLOAT, &hf_001_042_Y, NULL };
-static const FieldPart *I001_042_PARTS[] = {
+static const FieldPart * const I001_042_PARTS[] = {
&I001_042_X,
&I001_042_Y,
NULL
@@ -2629,7 +2622,7 @@ static const value_string valstr_001_050_L[] = {
static const FieldPart I001_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_050_L, NULL };
static int hf_001_050_MODE2;
static const FieldPart I001_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_050_MODE2, NULL };
-static const FieldPart *I001_050_PARTS[] = {
+static const FieldPart * const I001_050_PARTS[] = {
&I001_050_V,
&I001_050_G,
&I001_050_L,
@@ -2723,7 +2716,7 @@ static const value_string valstr_001_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_060_QD1, NULL };
-static const FieldPart *I001_060_PARTS[] = {
+static const FieldPart * const I001_060_PARTS[] = {
&IXXX_4bit_spare,
&I001_060_QA4,
&I001_060_QA2,
@@ -2764,7 +2757,7 @@ static const value_string valstr_001_070_L[] = {
static const FieldPart I001_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_001_070_L, NULL };
static int hf_001_070_MODE3A;
static const FieldPart I001_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_001_070_MODE3A, NULL };
-static const FieldPart *I001_070_PARTS[] = {
+static const FieldPart * const I001_070_PARTS[] = {
&I001_070_V,
&I001_070_G,
&I001_070_L,
@@ -2858,7 +2851,7 @@ static const value_string valstr_001_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I001_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_001_080_QD1, NULL };
-static const FieldPart *I001_080_PARTS[] = {
+static const FieldPart * const I001_080_PARTS[] = {
&IXXX_4bit_spare,
&I001_080_QA4,
&I001_080_QA2,
@@ -2892,7 +2885,7 @@ static const value_string valstr_001_090_G[] = {
static const FieldPart I001_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_001_090_G, NULL };
static int hf_001_090_HGT;
static const FieldPart I001_090_HGT = { 14, 0.25, FIELD_PART_FLOAT, &hf_001_090_HGT, NULL };
-static const FieldPart *I001_090_PARTS[] = {
+static const FieldPart * const I001_090_PARTS[] = {
&I001_090_V,
&I001_090_G,
&I001_090_HGT,
@@ -3000,7 +2993,7 @@ static const value_string valstr_001_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I001_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_001_100_QD4, NULL };
-static const FieldPart *I001_100_PARTS[] = {
+static const FieldPart * const I001_100_PARTS[] = {
&I001_100_V,
&I001_100_G,
&IXXX_2bit_spare,
@@ -3024,7 +3017,7 @@ static const AsterixField I001_100 = { FIXED, 4, 0, 0, &hf_001_100, I001_100_PAR
static int hf_001_120;
static int hf_001_120_VALUE;
static const FieldPart I001_120_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_001_120_VALUE, NULL };
-static const FieldPart *I001_120_PARTS[] = {
+static const FieldPart * const I001_120_PARTS[] = {
&I001_120_VALUE,
NULL
};
@@ -3032,7 +3025,7 @@ static const AsterixField I001_120 = { FIXED, 1, 0, 0, &hf_001_120, I001_120_PAR
static int hf_001_130;
static int hf_001_130_Subitem;
static const FieldPart I001_130_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_130_Subitem, NULL };
-static const FieldPart *I001_130_PARTS[] = {
+static const FieldPart * const I001_130_PARTS[] = {
&I001_130_Subitem,
&IXXX_FX,
NULL
@@ -3041,7 +3034,7 @@ static const AsterixField I001_130 = { FX, 1, 0, 0, &hf_001_130, I001_130_PARTS,
static int hf_001_131;
static int hf_001_131_VALUE;
static const FieldPart I001_131_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_001_131_VALUE, NULL };
-static const FieldPart *I001_131_PARTS[] = {
+static const FieldPart * const I001_131_PARTS[] = {
&I001_131_VALUE,
NULL
};
@@ -3049,7 +3042,7 @@ static const AsterixField I001_131 = { FIXED, 1, 0, 0, &hf_001_131, I001_131_PAR
static int hf_001_141;
static int hf_001_141_VALUE;
static const FieldPart I001_141_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_001_141_VALUE, NULL };
-static const FieldPart *I001_141_PARTS[] = {
+static const FieldPart * const I001_141_PARTS[] = {
&I001_141_VALUE,
NULL
};
@@ -3076,7 +3069,7 @@ static const value_string valstr_001_150_X2[] = {
{ 0, NULL }
};
static const FieldPart I001_150_X2 = { 1, 1.0, FIELD_PART_UINT, &hf_001_150_X2, NULL };
-static const FieldPart *I001_150_PARTS[] = {
+static const FieldPart * const I001_150_PARTS[] = {
&I001_150_XA,
&IXXX_1bit_spare,
&I001_150_XC,
@@ -3089,7 +3082,7 @@ static const AsterixField I001_150 = { FIXED, 1, 0, 0, &hf_001_150, I001_150_PAR
static int hf_001_161;
static int hf_001_161_VALUE;
static const FieldPart I001_161_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_001_161_VALUE, NULL };
-static const FieldPart *I001_161_PARTS[] = {
+static const FieldPart * const I001_161_PARTS[] = {
&I001_161_VALUE,
NULL
};
@@ -3144,7 +3137,7 @@ static const value_string valstr_001_170_TRE[] = {
{ 0, NULL }
};
static const FieldPart I001_170_TRE = { 1, 1.0, FIELD_PART_UINT, &hf_001_170_TRE, NULL };
-static const FieldPart *I001_170_PARTS[] = {
+static const FieldPart * const I001_170_PARTS[] = {
&I001_170_CON,
&I001_170_RAD,
&I001_170_MAN,
@@ -3164,7 +3157,7 @@ static int hf_001_200_GSP;
static const FieldPart I001_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_001_200_GSP, NULL };
static int hf_001_200_HDG;
static const FieldPart I001_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_001_200_HDG, NULL };
-static const FieldPart *I001_200_PARTS[] = {
+static const FieldPart * const I001_200_PARTS[] = {
&I001_200_GSP,
&I001_200_HDG,
NULL
@@ -3173,7 +3166,7 @@ static const AsterixField I001_200 = { FIXED, 4, 0, 0, &hf_001_200, I001_200_PAR
static int hf_001_210;
static int hf_001_210_Subitem;
static const FieldPart I001_210_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_001_210_Subitem, NULL };
-static const FieldPart *I001_210_PARTS[] = {
+static const FieldPart * const I001_210_PARTS[] = {
&I001_210_Subitem,
&IXXX_FX,
NULL
@@ -3182,8 +3175,7 @@ static const AsterixField I001_210 = { FX, 1, 0, 0, &hf_001_210, I001_210_PARTS,
static int hf_001_SP;
static const AsterixField I001_SP = { EXP, 0, 0, 1, &hf_001_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I001_V1_4_plot[] = {
+static const AsterixField * const I001_V1_4_plot[] = {
&I001_V1_4_010,
&I001_V1_4_020,
&I001_V1_4_040,
@@ -3206,7 +3198,7 @@ static const AsterixField *I001_V1_4_plot[] = {
&I001_V1_4_SP,
NULL
};
-static const AsterixField *I001_V1_4_track[] = {
+static const AsterixField * const I001_V1_4_track[] = {
&I001_V1_4_010,
&I001_V1_4_020,
&I001_V1_4_161,
@@ -3231,15 +3223,13 @@ static const AsterixField *I001_V1_4_track[] = {
&I001_V1_4_150,
NULL
};
-static const AsterixField **I001_V1_4[] = {
+static const AsterixField * const * const I001_V1_4[] = {
I001_V1_4_plot,
I001_V1_4_track,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I001_plot[] = {
+static const AsterixField * const I001_plot[] = {
&I001_010,
&I001_020,
&I001_040,
@@ -3262,7 +3252,7 @@ static const AsterixField *I001_plot[] = {
&I001_SP,
NULL
};
-static const AsterixField *I001_track[] = {
+static const AsterixField * const I001_track[] = {
&I001_010,
&I001_020,
&I001_161,
@@ -3287,12 +3277,11 @@ static const AsterixField *I001_track[] = {
&I001_150,
NULL
};
-static const AsterixField **I001[] = {
+static const AsterixField * const * const I001[] = {
I001_plot,
I001_track,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 002, edition 1.0 */
static int hf_002_V1_0_000;
@@ -3306,7 +3295,7 @@ static const value_string valstr_002_V1_0_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I002_V1_0_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_002_V1_0_000_VALUE, NULL };
-static const FieldPart *I002_V1_0_000_PARTS[] = {
+static const FieldPart * const I002_V1_0_000_PARTS[] = {
&I002_V1_0_000_VALUE,
NULL
};
@@ -3316,7 +3305,7 @@ static int hf_002_V1_0_010_SAC;
static const FieldPart I002_V1_0_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_002_V1_0_010_SAC, NULL };
static int hf_002_V1_0_010_SIC;
static const FieldPart I002_V1_0_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_002_V1_0_010_SIC, NULL };
-static const FieldPart *I002_V1_0_010_PARTS[] = {
+static const FieldPart * const I002_V1_0_010_PARTS[] = {
&I002_V1_0_010_SAC,
&I002_V1_0_010_SIC,
NULL
@@ -3325,7 +3314,7 @@ static const AsterixField I002_V1_0_010 = { FIXED, 2, 0, 0, &hf_002_V1_0_010, I0
static int hf_002_V1_0_020;
static int hf_002_V1_0_020_VALUE;
static const FieldPart I002_V1_0_020_VALUE = { 8, 1.40625, FIELD_PART_UFLOAT, &hf_002_V1_0_020_VALUE, NULL };
-static const FieldPart *I002_V1_0_020_PARTS[] = {
+static const FieldPart * const I002_V1_0_020_PARTS[] = {
&I002_V1_0_020_VALUE,
NULL
};
@@ -3333,7 +3322,7 @@ static const AsterixField I002_V1_0_020 = { FIXED, 1, 0, 0, &hf_002_V1_0_020, I0
static int hf_002_V1_0_030;
static int hf_002_V1_0_030_VALUE;
static const FieldPart I002_V1_0_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_002_V1_0_030_VALUE, NULL };
-static const FieldPart *I002_V1_0_030_PARTS[] = {
+static const FieldPart * const I002_V1_0_030_PARTS[] = {
&I002_V1_0_030_VALUE,
NULL
};
@@ -3341,7 +3330,7 @@ static const AsterixField I002_V1_0_030 = { FIXED, 3, 0, 0, &hf_002_V1_0_030, I0
static int hf_002_V1_0_041;
static int hf_002_V1_0_041_VALUE;
static const FieldPart I002_V1_0_041_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_002_V1_0_041_VALUE, NULL };
-static const FieldPart *I002_V1_0_041_PARTS[] = {
+static const FieldPart * const I002_V1_0_041_PARTS[] = {
&I002_V1_0_041_VALUE,
NULL
};
@@ -3349,7 +3338,7 @@ static const AsterixField I002_V1_0_041 = { FIXED, 2, 0, 0, &hf_002_V1_0_041, I0
static int hf_002_V1_0_050;
static int hf_002_V1_0_050_Subitem;
static const FieldPart I002_V1_0_050_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_V1_0_050_Subitem, NULL };
-static const FieldPart *I002_V1_0_050_PARTS[] = {
+static const FieldPart * const I002_V1_0_050_PARTS[] = {
&I002_V1_0_050_Subitem,
&IXXX_FX,
NULL
@@ -3358,7 +3347,7 @@ static const AsterixField I002_V1_0_050 = { FX, 1, 0, 0, &hf_002_V1_0_050, I002_
static int hf_002_V1_0_060;
static int hf_002_V1_0_060_Subitem;
static const FieldPart I002_V1_0_060_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_V1_0_060_Subitem, NULL };
-static const FieldPart *I002_V1_0_060_PARTS[] = {
+static const FieldPart * const I002_V1_0_060_PARTS[] = {
&I002_V1_0_060_Subitem,
&IXXX_FX,
NULL
@@ -3382,7 +3371,7 @@ static const value_string valstr_002_V1_0_070_IDENT[] = {
static const FieldPart I002_V1_0_070_IDENT = { 5, 1.0, FIELD_PART_UINT, &hf_002_V1_0_070_IDENT, NULL };
static int hf_002_V1_0_070_COUNTER;
static const FieldPart I002_V1_0_070_COUNTER = { 10, 1.0, FIELD_PART_UINT, &hf_002_V1_0_070_COUNTER, NULL };
-static const FieldPart *I002_V1_0_070_PARTS[] = {
+static const FieldPart * const I002_V1_0_070_PARTS[] = {
&I002_V1_0_070_A,
&I002_V1_0_070_IDENT,
&I002_V1_0_070_COUNTER,
@@ -3392,7 +3381,7 @@ static const AsterixField I002_V1_0_070 = { REPETITIVE, 2, 1, 0, &hf_002_V1_0_07
static int hf_002_V1_0_080;
static int hf_002_V1_0_080_Subitem;
static const FieldPart I002_V1_0_080_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_V1_0_080_Subitem, NULL };
-static const FieldPart *I002_V1_0_080_PARTS[] = {
+static const FieldPart * const I002_V1_0_080_PARTS[] = {
&I002_V1_0_080_Subitem,
&IXXX_FX,
NULL
@@ -3403,7 +3392,7 @@ static int hf_002_V1_0_090_RE;
static const FieldPart I002_V1_0_090_RE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_002_V1_0_090_RE, NULL };
static int hf_002_V1_0_090_AE;
static const FieldPart I002_V1_0_090_AE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_002_V1_0_090_AE, NULL };
-static const FieldPart *I002_V1_0_090_PARTS[] = {
+static const FieldPart * const I002_V1_0_090_PARTS[] = {
&I002_V1_0_090_RE,
&I002_V1_0_090_AE,
NULL
@@ -3418,7 +3407,7 @@ static int hf_002_V1_0_100_TS;
static const FieldPart I002_V1_0_100_TS = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_002_V1_0_100_TS, NULL };
static int hf_002_V1_0_100_TE;
static const FieldPart I002_V1_0_100_TE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_002_V1_0_100_TE, NULL };
-static const FieldPart *I002_V1_0_100_PARTS[] = {
+static const FieldPart * const I002_V1_0_100_PARTS[] = {
&I002_V1_0_100_RS,
&I002_V1_0_100_RE,
&I002_V1_0_100_TS,
@@ -3429,8 +3418,7 @@ static const AsterixField I002_V1_0_100 = { FIXED, 8, 0, 0, &hf_002_V1_0_100, I0
static int hf_002_V1_0_SP;
static const AsterixField I002_V1_0_SP = { EXP, 0, 0, 1, &hf_002_V1_0_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I002_V1_0_uap[] = {
+static const AsterixField * const I002_V1_0_uap[] = {
&I002_V1_0_010,
&I002_V1_0_000,
&I002_V1_0_020,
@@ -3446,11 +3434,10 @@ static const AsterixField *I002_V1_0_uap[] = {
&I002_V1_0_SP,
NULL
};
-static const AsterixField **I002_V1_0[] = {
+static const AsterixField * const * const I002_V1_0[] = {
I002_V1_0_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 002, edition 1.1 */
static int hf_002_V1_1_000;
@@ -3464,7 +3451,7 @@ static const value_string valstr_002_V1_1_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I002_V1_1_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_002_V1_1_000_VALUE, NULL };
-static const FieldPart *I002_V1_1_000_PARTS[] = {
+static const FieldPart * const I002_V1_1_000_PARTS[] = {
&I002_V1_1_000_VALUE,
NULL
};
@@ -3474,7 +3461,7 @@ static int hf_002_V1_1_010_SAC;
static const FieldPart I002_V1_1_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_002_V1_1_010_SAC, NULL };
static int hf_002_V1_1_010_SIC;
static const FieldPart I002_V1_1_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_002_V1_1_010_SIC, NULL };
-static const FieldPart *I002_V1_1_010_PARTS[] = {
+static const FieldPart * const I002_V1_1_010_PARTS[] = {
&I002_V1_1_010_SAC,
&I002_V1_1_010_SIC,
NULL
@@ -3483,7 +3470,7 @@ static const AsterixField I002_V1_1_010 = { FIXED, 2, 0, 0, &hf_002_V1_1_010, I0
static int hf_002_V1_1_020;
static int hf_002_V1_1_020_VALUE;
static const FieldPart I002_V1_1_020_VALUE = { 8, 1.40625, FIELD_PART_UFLOAT, &hf_002_V1_1_020_VALUE, NULL };
-static const FieldPart *I002_V1_1_020_PARTS[] = {
+static const FieldPart * const I002_V1_1_020_PARTS[] = {
&I002_V1_1_020_VALUE,
NULL
};
@@ -3491,7 +3478,7 @@ static const AsterixField I002_V1_1_020 = { FIXED, 1, 0, 0, &hf_002_V1_1_020, I0
static int hf_002_V1_1_030;
static int hf_002_V1_1_030_VALUE;
static const FieldPart I002_V1_1_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_002_V1_1_030_VALUE, NULL };
-static const FieldPart *I002_V1_1_030_PARTS[] = {
+static const FieldPart * const I002_V1_1_030_PARTS[] = {
&I002_V1_1_030_VALUE,
NULL
};
@@ -3499,7 +3486,7 @@ static const AsterixField I002_V1_1_030 = { FIXED, 3, 0, 0, &hf_002_V1_1_030, I0
static int hf_002_V1_1_041;
static int hf_002_V1_1_041_VALUE;
static const FieldPart I002_V1_1_041_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_002_V1_1_041_VALUE, NULL };
-static const FieldPart *I002_V1_1_041_PARTS[] = {
+static const FieldPart * const I002_V1_1_041_PARTS[] = {
&I002_V1_1_041_VALUE,
NULL
};
@@ -3507,7 +3494,7 @@ static const AsterixField I002_V1_1_041 = { FIXED, 2, 0, 0, &hf_002_V1_1_041, I0
static int hf_002_V1_1_050;
static int hf_002_V1_1_050_Subitem;
static const FieldPart I002_V1_1_050_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_V1_1_050_Subitem, NULL };
-static const FieldPart *I002_V1_1_050_PARTS[] = {
+static const FieldPart * const I002_V1_1_050_PARTS[] = {
&I002_V1_1_050_Subitem,
&IXXX_FX,
NULL
@@ -3516,7 +3503,7 @@ static const AsterixField I002_V1_1_050 = { FX, 1, 0, 0, &hf_002_V1_1_050, I002_
static int hf_002_V1_1_060;
static int hf_002_V1_1_060_Subitem;
static const FieldPart I002_V1_1_060_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_V1_1_060_Subitem, NULL };
-static const FieldPart *I002_V1_1_060_PARTS[] = {
+static const FieldPart * const I002_V1_1_060_PARTS[] = {
&I002_V1_1_060_Subitem,
&IXXX_FX,
NULL
@@ -3540,7 +3527,7 @@ static const value_string valstr_002_V1_1_070_IDENT[] = {
static const FieldPart I002_V1_1_070_IDENT = { 5, 1.0, FIELD_PART_UINT, &hf_002_V1_1_070_IDENT, NULL };
static int hf_002_V1_1_070_COUNTER;
static const FieldPart I002_V1_1_070_COUNTER = { 10, 1.0, FIELD_PART_UINT, &hf_002_V1_1_070_COUNTER, NULL };
-static const FieldPart *I002_V1_1_070_PARTS[] = {
+static const FieldPart * const I002_V1_1_070_PARTS[] = {
&I002_V1_1_070_A,
&I002_V1_1_070_IDENT,
&I002_V1_1_070_COUNTER,
@@ -3550,7 +3537,7 @@ static const AsterixField I002_V1_1_070 = { REPETITIVE, 2, 1, 0, &hf_002_V1_1_07
static int hf_002_V1_1_080;
static int hf_002_V1_1_080_Subitem;
static const FieldPart I002_V1_1_080_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_V1_1_080_Subitem, NULL };
-static const FieldPart *I002_V1_1_080_PARTS[] = {
+static const FieldPart * const I002_V1_1_080_PARTS[] = {
&I002_V1_1_080_Subitem,
&IXXX_FX,
NULL
@@ -3561,7 +3548,7 @@ static int hf_002_V1_1_090_RE;
static const FieldPart I002_V1_1_090_RE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_002_V1_1_090_RE, NULL };
static int hf_002_V1_1_090_AE;
static const FieldPart I002_V1_1_090_AE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_002_V1_1_090_AE, NULL };
-static const FieldPart *I002_V1_1_090_PARTS[] = {
+static const FieldPart * const I002_V1_1_090_PARTS[] = {
&I002_V1_1_090_RE,
&I002_V1_1_090_AE,
NULL
@@ -3576,7 +3563,7 @@ static int hf_002_V1_1_100_TS;
static const FieldPart I002_V1_1_100_TS = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_002_V1_1_100_TS, NULL };
static int hf_002_V1_1_100_TE;
static const FieldPart I002_V1_1_100_TE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_002_V1_1_100_TE, NULL };
-static const FieldPart *I002_V1_1_100_PARTS[] = {
+static const FieldPart * const I002_V1_1_100_PARTS[] = {
&I002_V1_1_100_RS,
&I002_V1_1_100_RE,
&I002_V1_1_100_TS,
@@ -3599,7 +3586,7 @@ static const value_string valstr_002_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I002_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_002_000_VALUE, NULL };
-static const FieldPart *I002_000_PARTS[] = {
+static const FieldPart * const I002_000_PARTS[] = {
&I002_000_VALUE,
NULL
};
@@ -3609,7 +3596,7 @@ static int hf_002_010_SAC;
static const FieldPart I002_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_002_010_SAC, NULL };
static int hf_002_010_SIC;
static const FieldPart I002_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_002_010_SIC, NULL };
-static const FieldPart *I002_010_PARTS[] = {
+static const FieldPart * const I002_010_PARTS[] = {
&I002_010_SAC,
&I002_010_SIC,
NULL
@@ -3618,7 +3605,7 @@ static const AsterixField I002_010 = { FIXED, 2, 0, 0, &hf_002_010, I002_010_PAR
static int hf_002_020;
static int hf_002_020_VALUE;
static const FieldPart I002_020_VALUE = { 8, 1.40625, FIELD_PART_UFLOAT, &hf_002_020_VALUE, NULL };
-static const FieldPart *I002_020_PARTS[] = {
+static const FieldPart * const I002_020_PARTS[] = {
&I002_020_VALUE,
NULL
};
@@ -3626,7 +3613,7 @@ static const AsterixField I002_020 = { FIXED, 1, 0, 0, &hf_002_020, I002_020_PAR
static int hf_002_030;
static int hf_002_030_VALUE;
static const FieldPart I002_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_002_030_VALUE, NULL };
-static const FieldPart *I002_030_PARTS[] = {
+static const FieldPart * const I002_030_PARTS[] = {
&I002_030_VALUE,
NULL
};
@@ -3634,7 +3621,7 @@ static const AsterixField I002_030 = { FIXED, 3, 0, 0, &hf_002_030, I002_030_PAR
static int hf_002_041;
static int hf_002_041_VALUE;
static const FieldPart I002_041_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_002_041_VALUE, NULL };
-static const FieldPart *I002_041_PARTS[] = {
+static const FieldPart * const I002_041_PARTS[] = {
&I002_041_VALUE,
NULL
};
@@ -3642,7 +3629,7 @@ static const AsterixField I002_041 = { FIXED, 2, 0, 0, &hf_002_041, I002_041_PAR
static int hf_002_050;
static int hf_002_050_Subitem;
static const FieldPart I002_050_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_050_Subitem, NULL };
-static const FieldPart *I002_050_PARTS[] = {
+static const FieldPart * const I002_050_PARTS[] = {
&I002_050_Subitem,
&IXXX_FX,
NULL
@@ -3651,7 +3638,7 @@ static const AsterixField I002_050 = { FX, 1, 0, 0, &hf_002_050, I002_050_PARTS,
static int hf_002_060;
static int hf_002_060_Subitem;
static const FieldPart I002_060_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_060_Subitem, NULL };
-static const FieldPart *I002_060_PARTS[] = {
+static const FieldPart * const I002_060_PARTS[] = {
&I002_060_Subitem,
&IXXX_FX,
NULL
@@ -3675,7 +3662,7 @@ static const value_string valstr_002_070_IDENT[] = {
static const FieldPart I002_070_IDENT = { 5, 1.0, FIELD_PART_UINT, &hf_002_070_IDENT, NULL };
static int hf_002_070_COUNTER;
static const FieldPart I002_070_COUNTER = { 10, 1.0, FIELD_PART_UINT, &hf_002_070_COUNTER, NULL };
-static const FieldPart *I002_070_PARTS[] = {
+static const FieldPart * const I002_070_PARTS[] = {
&I002_070_A,
&I002_070_IDENT,
&I002_070_COUNTER,
@@ -3685,7 +3672,7 @@ static const AsterixField I002_070 = { REPETITIVE, 2, 1, 0, &hf_002_070, I002_07
static int hf_002_080;
static int hf_002_080_Subitem;
static const FieldPart I002_080_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_002_080_Subitem, NULL };
-static const FieldPart *I002_080_PARTS[] = {
+static const FieldPart * const I002_080_PARTS[] = {
&I002_080_Subitem,
&IXXX_FX,
NULL
@@ -3696,7 +3683,7 @@ static int hf_002_090_RE;
static const FieldPart I002_090_RE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_002_090_RE, NULL };
static int hf_002_090_AE;
static const FieldPart I002_090_AE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_002_090_AE, NULL };
-static const FieldPart *I002_090_PARTS[] = {
+static const FieldPart * const I002_090_PARTS[] = {
&I002_090_RE,
&I002_090_AE,
NULL
@@ -3711,7 +3698,7 @@ static int hf_002_100_TS;
static const FieldPart I002_100_TS = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_002_100_TS, NULL };
static int hf_002_100_TE;
static const FieldPart I002_100_TE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_002_100_TE, NULL };
-static const FieldPart *I002_100_PARTS[] = {
+static const FieldPart * const I002_100_PARTS[] = {
&I002_100_RS,
&I002_100_RE,
&I002_100_TS,
@@ -3722,8 +3709,7 @@ static const AsterixField I002_100 = { FIXED, 8, 0, 0, &hf_002_100, I002_100_PAR
static int hf_002_SP;
static const AsterixField I002_SP = { EXP, 0, 0, 1, &hf_002_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I002_V1_1_uap[] = {
+static const AsterixField * const I002_V1_1_uap[] = {
&I002_V1_1_010,
&I002_V1_1_000,
&I002_V1_1_020,
@@ -3739,14 +3725,12 @@ static const AsterixField *I002_V1_1_uap[] = {
&I002_V1_1_SP,
NULL
};
-static const AsterixField **I002_V1_1[] = {
+static const AsterixField * const * const I002_V1_1[] = {
I002_V1_1_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I002_uap[] = {
+static const AsterixField * const I002_uap[] = {
&I002_010,
&I002_000,
&I002_020,
@@ -3762,11 +3746,10 @@ static const AsterixField *I002_uap[] = {
&I002_SP,
NULL
};
-static const AsterixField **I002[] = {
+static const AsterixField * const * const I002[] = {
I002_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 004, edition 1.12 */
static int hf_004_V1_12_000;
@@ -3822,7 +3805,7 @@ static const value_string valstr_004_V1_12_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I004_V1_12_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_004_V1_12_000_VALUE, NULL };
-static const FieldPart *I004_V1_12_000_PARTS[] = {
+static const FieldPart * const I004_V1_12_000_PARTS[] = {
&I004_V1_12_000_VALUE,
NULL
};
@@ -3832,7 +3815,7 @@ static int hf_004_V1_12_010_SAC;
static const FieldPart I004_V1_12_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_004_V1_12_010_SAC, NULL };
static int hf_004_V1_12_010_SIC;
static const FieldPart I004_V1_12_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_004_V1_12_010_SIC, NULL };
-static const FieldPart *I004_V1_12_010_PARTS[] = {
+static const FieldPart * const I004_V1_12_010_PARTS[] = {
&I004_V1_12_010_SAC,
&I004_V1_12_010_SIC,
NULL
@@ -3843,7 +3826,7 @@ static int hf_004_V1_12_015_SAC;
static const FieldPart I004_V1_12_015_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_004_V1_12_015_SAC, NULL };
static int hf_004_V1_12_015_SIC;
static const FieldPart I004_V1_12_015_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_004_V1_12_015_SIC, NULL };
-static const FieldPart *I004_V1_12_015_PARTS[] = {
+static const FieldPart * const I004_V1_12_015_PARTS[] = {
&I004_V1_12_015_SAC,
&I004_V1_12_015_SIC,
NULL
@@ -3852,7 +3835,7 @@ static const AsterixField I004_V1_12_015 = { REPETITIVE, 2, 1, 0, &hf_004_V1_12_
static int hf_004_V1_12_020;
static int hf_004_V1_12_020_VALUE;
static const FieldPart I004_V1_12_020_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_V1_12_020_VALUE, NULL };
-static const FieldPart *I004_V1_12_020_PARTS[] = {
+static const FieldPart * const I004_V1_12_020_PARTS[] = {
&I004_V1_12_020_VALUE,
NULL
};
@@ -3860,7 +3843,7 @@ static const AsterixField I004_V1_12_020 = { FIXED, 3, 0, 0, &hf_004_V1_12_020,
static int hf_004_V1_12_030;
static int hf_004_V1_12_030_VALUE;
static const FieldPart I004_V1_12_030_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_004_V1_12_030_VALUE, NULL };
-static const FieldPart *I004_V1_12_030_PARTS[] = {
+static const FieldPart * const I004_V1_12_030_PARTS[] = {
&I004_V1_12_030_VALUE,
NULL
};
@@ -3868,7 +3851,7 @@ static const AsterixField I004_V1_12_030 = { FIXED, 2, 0, 0, &hf_004_V1_12_030,
static int hf_004_V1_12_035;
static int hf_004_V1_12_035_VALUE;
static const FieldPart I004_V1_12_035_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_004_V1_12_035_VALUE, NULL };
-static const FieldPart *I004_V1_12_035_PARTS[] = {
+static const FieldPart * const I004_V1_12_035_PARTS[] = {
&I004_V1_12_035_VALUE,
NULL
};
@@ -3876,7 +3859,7 @@ static const AsterixField I004_V1_12_035 = { FIXED, 2, 0, 0, &hf_004_V1_12_035,
static int hf_004_V1_12_040;
static int hf_004_V1_12_040_VALUE;
static const FieldPart I004_V1_12_040_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_004_V1_12_040_VALUE, NULL };
-static const FieldPart *I004_V1_12_040_PARTS[] = {
+static const FieldPart * const I004_V1_12_040_PARTS[] = {
&I004_V1_12_040_VALUE,
NULL
};
@@ -3884,7 +3867,7 @@ static const AsterixField I004_V1_12_040 = { FIXED, 2, 0, 0, &hf_004_V1_12_040,
static int hf_004_V1_12_045;
static int hf_004_V1_12_045_STAT;
static const FieldPart I004_V1_12_045_STAT = { 3, 1.0, FIELD_PART_HEX, &hf_004_V1_12_045_STAT, NULL };
-static const FieldPart *I004_V1_12_045_PARTS[] = {
+static const FieldPart * const I004_V1_12_045_PARTS[] = {
&IXXX_4bit_spare,
&I004_V1_12_045_STAT,
&IXXX_1bit_spare,
@@ -4235,7 +4218,7 @@ static const value_string valstr_004_V1_12_060_ONGOING[] = {
{ 0, NULL }
};
static const FieldPart I004_V1_12_060_ONGOING = { 1, 1.0, FIELD_PART_UINT, &hf_004_V1_12_060_ONGOING, NULL };
-static const FieldPart *I004_V1_12_060_PARTS[] = {
+static const FieldPart * const I004_V1_12_060_PARTS[] = {
&I004_V1_12_060_MRVA,
&I004_V1_12_060_RAMLD,
&I004_V1_12_060_RAMHD,
@@ -4299,7 +4282,7 @@ static int hf_004_V1_12_070;
static int hf_004_V1_12_070_TC;
static int hf_004_V1_12_070_TC_VALUE;
static const FieldPart I004_V1_12_070_TC_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_V1_12_070_TC_VALUE, NULL };
-static const FieldPart *I004_V1_12_070_TC_PARTS[] = {
+static const FieldPart * const I004_V1_12_070_TC_PARTS[] = {
&I004_V1_12_070_TC_VALUE,
NULL
};
@@ -4307,7 +4290,7 @@ static const AsterixField I004_V1_12_070_TC = { FIXED, 3, 0, 0, &hf_004_V1_12_07
static int hf_004_V1_12_070_TCA;
static int hf_004_V1_12_070_TCA_VALUE;
static const FieldPart I004_V1_12_070_TCA_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_V1_12_070_TCA_VALUE, NULL };
-static const FieldPart *I004_V1_12_070_TCA_PARTS[] = {
+static const FieldPart * const I004_V1_12_070_TCA_PARTS[] = {
&I004_V1_12_070_TCA_VALUE,
NULL
};
@@ -4315,7 +4298,7 @@ static const AsterixField I004_V1_12_070_TCA = { FIXED, 3, 0, 0, &hf_004_V1_12_0
static int hf_004_V1_12_070_CHS;
static int hf_004_V1_12_070_CHS_VALUE;
static const FieldPart I004_V1_12_070_CHS_VALUE = { 24, 0.5, FIELD_PART_UFLOAT, &hf_004_V1_12_070_CHS_VALUE, NULL };
-static const FieldPart *I004_V1_12_070_CHS_PARTS[] = {
+static const FieldPart * const I004_V1_12_070_CHS_PARTS[] = {
&I004_V1_12_070_CHS_VALUE,
NULL
};
@@ -4323,7 +4306,7 @@ static const AsterixField I004_V1_12_070_CHS = { FIXED, 3, 0, 0, &hf_004_V1_12_0
static int hf_004_V1_12_070_MHS;
static int hf_004_V1_12_070_MHS_VALUE;
static const FieldPart I004_V1_12_070_MHS_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_004_V1_12_070_MHS_VALUE, NULL };
-static const FieldPart *I004_V1_12_070_MHS_PARTS[] = {
+static const FieldPart * const I004_V1_12_070_MHS_PARTS[] = {
&I004_V1_12_070_MHS_VALUE,
NULL
};
@@ -4331,7 +4314,7 @@ static const AsterixField I004_V1_12_070_MHS = { FIXED, 2, 0, 0, &hf_004_V1_12_0
static int hf_004_V1_12_070_CVS;
static int hf_004_V1_12_070_CVS_VALUE;
static const FieldPart I004_V1_12_070_CVS_VALUE = { 16, 25.0, FIELD_PART_UFLOAT, &hf_004_V1_12_070_CVS_VALUE, NULL };
-static const FieldPart *I004_V1_12_070_CVS_PARTS[] = {
+static const FieldPart * const I004_V1_12_070_CVS_PARTS[] = {
&I004_V1_12_070_CVS_VALUE,
NULL
};
@@ -4339,7 +4322,7 @@ static const AsterixField I004_V1_12_070_CVS = { FIXED, 2, 0, 0, &hf_004_V1_12_0
static int hf_004_V1_12_070_MVS;
static int hf_004_V1_12_070_MVS_VALUE;
static const FieldPart I004_V1_12_070_MVS_VALUE = { 16, 25.0, FIELD_PART_UFLOAT, &hf_004_V1_12_070_MVS_VALUE, NULL };
-static const FieldPart *I004_V1_12_070_MVS_PARTS[] = {
+static const FieldPart * const I004_V1_12_070_MVS_PARTS[] = {
&I004_V1_12_070_MVS_VALUE,
NULL
};
@@ -4348,7 +4331,7 @@ static const AsterixField I004_V1_12_070 = { COMPOUND, 0, 0, 0, &hf_004_V1_12_07
static int hf_004_V1_12_074;
static int hf_004_V1_12_074_VALUE;
static const FieldPart I004_V1_12_074_VALUE = { 16, 32.0, FIELD_PART_FLOAT, &hf_004_V1_12_074_VALUE, NULL };
-static const FieldPart *I004_V1_12_074_PARTS[] = {
+static const FieldPart * const I004_V1_12_074_PARTS[] = {
&I004_V1_12_074_VALUE,
NULL
};
@@ -4356,7 +4339,7 @@ static const AsterixField I004_V1_12_074 = { FIXED, 2, 0, 0, &hf_004_V1_12_074,
static int hf_004_V1_12_075;
static int hf_004_V1_12_075_VALUE;
static const FieldPart I004_V1_12_075_VALUE = { 24, 0.5, FIELD_PART_FLOAT, &hf_004_V1_12_075_VALUE, NULL };
-static const FieldPart *I004_V1_12_075_PARTS[] = {
+static const FieldPart * const I004_V1_12_075_PARTS[] = {
&I004_V1_12_075_VALUE,
NULL
};
@@ -4364,7 +4347,7 @@ static const AsterixField I004_V1_12_075 = { FIXED, 3, 0, 0, &hf_004_V1_12_075,
static int hf_004_V1_12_076;
static int hf_004_V1_12_076_VALUE;
static const FieldPart I004_V1_12_076_VALUE = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_V1_12_076_VALUE, NULL };
-static const FieldPart *I004_V1_12_076_PARTS[] = {
+static const FieldPart * const I004_V1_12_076_PARTS[] = {
&I004_V1_12_076_VALUE,
NULL
};
@@ -4373,7 +4356,7 @@ static int hf_004_V1_12_100;
static int hf_004_V1_12_100_AN;
static int hf_004_V1_12_100_AN_VALUE;
static const FieldPart I004_V1_12_100_AN_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_004_V1_12_100_AN_VALUE, NULL };
-static const FieldPart *I004_V1_12_100_AN_PARTS[] = {
+static const FieldPart * const I004_V1_12_100_AN_PARTS[] = {
&I004_V1_12_100_AN_VALUE,
NULL
};
@@ -4381,7 +4364,7 @@ static const AsterixField I004_V1_12_100_AN = { FIXED, 6, 0, 0, &hf_004_V1_12_10
static int hf_004_V1_12_100_CAN;
static int hf_004_V1_12_100_CAN_VALUE;
static const FieldPart I004_V1_12_100_CAN_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_100_CAN_VALUE, NULL };
-static const FieldPart *I004_V1_12_100_CAN_PARTS[] = {
+static const FieldPart * const I004_V1_12_100_CAN_PARTS[] = {
&I004_V1_12_100_CAN_VALUE,
NULL
};
@@ -4389,7 +4372,7 @@ static const AsterixField I004_V1_12_100_CAN = { FIXED, 7, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_100_RT1;
static int hf_004_V1_12_100_RT1_VALUE;
static const FieldPart I004_V1_12_100_RT1_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_100_RT1_VALUE, NULL };
-static const FieldPart *I004_V1_12_100_RT1_PARTS[] = {
+static const FieldPart * const I004_V1_12_100_RT1_PARTS[] = {
&I004_V1_12_100_RT1_VALUE,
NULL
};
@@ -4397,7 +4380,7 @@ static const AsterixField I004_V1_12_100_RT1 = { FIXED, 7, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_100_RT2;
static int hf_004_V1_12_100_RT2_VALUE;
static const FieldPart I004_V1_12_100_RT2_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_100_RT2_VALUE, NULL };
-static const FieldPart *I004_V1_12_100_RT2_PARTS[] = {
+static const FieldPart * const I004_V1_12_100_RT2_PARTS[] = {
&I004_V1_12_100_RT2_VALUE,
NULL
};
@@ -4405,7 +4388,7 @@ static const AsterixField I004_V1_12_100_RT2 = { FIXED, 7, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_100_SB;
static int hf_004_V1_12_100_SB_VALUE;
static const FieldPart I004_V1_12_100_SB_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_100_SB_VALUE, NULL };
-static const FieldPart *I004_V1_12_100_SB_PARTS[] = {
+static const FieldPart * const I004_V1_12_100_SB_PARTS[] = {
&I004_V1_12_100_SB_VALUE,
NULL
};
@@ -4413,7 +4396,7 @@ static const AsterixField I004_V1_12_100_SB = { FIXED, 7, 0, 0, &hf_004_V1_12_10
static int hf_004_V1_12_100_G;
static int hf_004_V1_12_100_G_VALUE;
static const FieldPart I004_V1_12_100_G_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_100_G_VALUE, NULL };
-static const FieldPart *I004_V1_12_100_G_PARTS[] = {
+static const FieldPart * const I004_V1_12_100_G_PARTS[] = {
&I004_V1_12_100_G_VALUE,
NULL
};
@@ -4424,7 +4407,7 @@ static int hf_004_V1_12_110_CEN;
static const FieldPart I004_V1_12_110_CEN = { 8, 1.0, FIELD_PART_HEX, &hf_004_V1_12_110_CEN, NULL };
static int hf_004_V1_12_110_POS;
static const FieldPart I004_V1_12_110_POS = { 8, 1.0, FIELD_PART_HEX, &hf_004_V1_12_110_POS, NULL };
-static const FieldPart *I004_V1_12_110_PARTS[] = {
+static const FieldPart * const I004_V1_12_110_PARTS[] = {
&I004_V1_12_110_CEN,
&I004_V1_12_110_POS,
NULL
@@ -4572,7 +4555,7 @@ static const value_string valstr_004_V1_12_120_CN_AIW[] = {
{ 0, NULL }
};
static const FieldPart I004_V1_12_120_CN_AIW = { 1, 1.0, FIELD_PART_UINT, &hf_004_V1_12_120_CN_AIW, NULL };
-static const FieldPart *I004_V1_12_120_CN_PARTS[] = {
+static const FieldPart * const I004_V1_12_120_CN_PARTS[] = {
&I004_V1_12_120_CN_MAS,
&I004_V1_12_120_CN_CAS,
&I004_V1_12_120_CN_FLD,
@@ -4612,7 +4595,7 @@ static const value_string valstr_004_V1_12_120_CC_CS[] = {
{ 0, NULL }
};
static const FieldPart I004_V1_12_120_CC_CS = { 1, 1.0, FIELD_PART_UINT, &hf_004_V1_12_120_CC_CS, NULL };
-static const FieldPart *I004_V1_12_120_CC_PARTS[] = {
+static const FieldPart * const I004_V1_12_120_CC_PARTS[] = {
&I004_V1_12_120_CC_TID,
&I004_V1_12_120_CC_CPC,
&I004_V1_12_120_CC_CS,
@@ -4622,7 +4605,7 @@ static const AsterixField I004_V1_12_120_CC = { FIXED, 1, 0, 0, &hf_004_V1_12_12
static int hf_004_V1_12_120_CP;
static int hf_004_V1_12_120_CP_VALUE;
static const FieldPart I004_V1_12_120_CP_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_004_V1_12_120_CP_VALUE, NULL };
-static const FieldPart *I004_V1_12_120_CP_PARTS[] = {
+static const FieldPart * const I004_V1_12_120_CP_PARTS[] = {
&I004_V1_12_120_CP_VALUE,
NULL
};
@@ -4630,7 +4613,7 @@ static const AsterixField I004_V1_12_120_CP = { FIXED, 1, 0, 0, &hf_004_V1_12_12
static int hf_004_V1_12_120_CD;
static int hf_004_V1_12_120_CD_VALUE;
static const FieldPart I004_V1_12_120_CD_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_V1_12_120_CD_VALUE, NULL };
-static const FieldPart *I004_V1_12_120_CD_PARTS[] = {
+static const FieldPart * const I004_V1_12_120_CD_PARTS[] = {
&I004_V1_12_120_CD_VALUE,
NULL
};
@@ -4640,7 +4623,7 @@ static int hf_004_V1_12_170;
static int hf_004_V1_12_170_AI1;
static int hf_004_V1_12_170_AI1_VALUE;
static const FieldPart I004_V1_12_170_AI1_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_170_AI1_VALUE, NULL };
-static const FieldPart *I004_V1_12_170_AI1_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_AI1_PARTS[] = {
&I004_V1_12_170_AI1_VALUE,
NULL
};
@@ -4648,7 +4631,7 @@ static const AsterixField I004_V1_12_170_AI1 = { FIXED, 7, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_170_M31;
static int hf_004_V1_12_170_M31_MODE3A;
static const FieldPart I004_V1_12_170_M31_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_004_V1_12_170_M31_MODE3A, NULL };
-static const FieldPart *I004_V1_12_170_M31_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_M31_PARTS[] = {
&IXXX_4bit_spare,
&I004_V1_12_170_M31_MODE3A,
NULL
@@ -4661,7 +4644,7 @@ static int hf_004_V1_12_170_CPW_LON;
static const FieldPart I004_V1_12_170_CPW_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_004_V1_12_170_CPW_LON, NULL };
static int hf_004_V1_12_170_CPW_ALT;
static const FieldPart I004_V1_12_170_CPW_ALT = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_V1_12_170_CPW_ALT, NULL };
-static const FieldPart *I004_V1_12_170_CPW_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_CPW_PARTS[] = {
&I004_V1_12_170_CPW_LAT,
&I004_V1_12_170_CPW_LON,
&I004_V1_12_170_CPW_ALT,
@@ -4675,7 +4658,7 @@ static int hf_004_V1_12_170_CPC_Y;
static const FieldPart I004_V1_12_170_CPC_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_004_V1_12_170_CPC_Y, NULL };
static int hf_004_V1_12_170_CPC_Z;
static const FieldPart I004_V1_12_170_CPC_Z = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_V1_12_170_CPC_Z, NULL };
-static const FieldPart *I004_V1_12_170_CPC_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_CPC_PARTS[] = {
&I004_V1_12_170_CPC_X,
&I004_V1_12_170_CPC_Y,
&I004_V1_12_170_CPC_Z,
@@ -4685,7 +4668,7 @@ static const AsterixField I004_V1_12_170_CPC = { FIXED, 8, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_170_TT1;
static int hf_004_V1_12_170_TT1_VALUE;
static const FieldPart I004_V1_12_170_TT1_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_V1_12_170_TT1_VALUE, NULL };
-static const FieldPart *I004_V1_12_170_TT1_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_TT1_PARTS[] = {
&I004_V1_12_170_TT1_VALUE,
NULL
};
@@ -4693,7 +4676,7 @@ static const AsterixField I004_V1_12_170_TT1 = { FIXED, 3, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_170_DT1;
static int hf_004_V1_12_170_DT1_VALUE;
static const FieldPart I004_V1_12_170_DT1_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_004_V1_12_170_DT1_VALUE, NULL };
-static const FieldPart *I004_V1_12_170_DT1_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_DT1_PARTS[] = {
&I004_V1_12_170_DT1_VALUE,
NULL
};
@@ -4756,7 +4739,7 @@ static const value_string valstr_004_V1_12_170_AC1_GV[] = {
{ 0, NULL }
};
static const FieldPart I004_V1_12_170_AC1_GV = { 1, 1.0, FIELD_PART_UINT, &hf_004_V1_12_170_AC1_GV, NULL };
-static const FieldPart *I004_V1_12_170_AC1_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_AC1_PARTS[] = {
&I004_V1_12_170_AC1_GATOAT,
&I004_V1_12_170_AC1_FR1FR2,
&I004_V1_12_170_AC1_RVSM,
@@ -4773,7 +4756,7 @@ static const AsterixField I004_V1_12_170_AC1 = { FX, 1, 0, 0, &hf_004_V1_12_170_
static int hf_004_V1_12_170_MS1;
static int hf_004_V1_12_170_MS1_VALUE;
static const FieldPart I004_V1_12_170_MS1_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_170_MS1_VALUE, NULL };
-static const FieldPart *I004_V1_12_170_MS1_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_MS1_PARTS[] = {
&I004_V1_12_170_MS1_VALUE,
NULL
};
@@ -4781,7 +4764,7 @@ static const AsterixField I004_V1_12_170_MS1 = { FIXED, 6, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_170_FP1;
static int hf_004_V1_12_170_FP1_NBR;
static const FieldPart I004_V1_12_170_FP1_NBR = { 27, 1.0, FIELD_PART_UFLOAT, &hf_004_V1_12_170_FP1_NBR, NULL };
-static const FieldPart *I004_V1_12_170_FP1_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_FP1_PARTS[] = {
&IXXX_5bit_spare,
&I004_V1_12_170_FP1_NBR,
NULL
@@ -4790,7 +4773,7 @@ static const AsterixField I004_V1_12_170_FP1 = { FIXED, 4, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_170_CF1;
static int hf_004_V1_12_170_CF1_VALUE;
static const FieldPart I004_V1_12_170_CF1_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_004_V1_12_170_CF1_VALUE, NULL };
-static const FieldPart *I004_V1_12_170_CF1_PARTS[] = {
+static const FieldPart * const I004_V1_12_170_CF1_PARTS[] = {
&I004_V1_12_170_CF1_VALUE,
NULL
};
@@ -4800,7 +4783,7 @@ static int hf_004_V1_12_171;
static int hf_004_V1_12_171_AI2;
static int hf_004_V1_12_171_AI2_VALUE;
static const FieldPart I004_V1_12_171_AI2_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_171_AI2_VALUE, NULL };
-static const FieldPart *I004_V1_12_171_AI2_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_AI2_PARTS[] = {
&I004_V1_12_171_AI2_VALUE,
NULL
};
@@ -4808,7 +4791,7 @@ static const AsterixField I004_V1_12_171_AI2 = { FIXED, 7, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_171_M32;
static int hf_004_V1_12_171_M32_MODE3A;
static const FieldPart I004_V1_12_171_M32_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_004_V1_12_171_M32_MODE3A, NULL };
-static const FieldPart *I004_V1_12_171_M32_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_M32_PARTS[] = {
&IXXX_4bit_spare,
&I004_V1_12_171_M32_MODE3A,
NULL
@@ -4821,7 +4804,7 @@ static int hf_004_V1_12_171_CPW_LON;
static const FieldPart I004_V1_12_171_CPW_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_004_V1_12_171_CPW_LON, NULL };
static int hf_004_V1_12_171_CPW_ALT;
static const FieldPart I004_V1_12_171_CPW_ALT = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_V1_12_171_CPW_ALT, NULL };
-static const FieldPart *I004_V1_12_171_CPW_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_CPW_PARTS[] = {
&I004_V1_12_171_CPW_LAT,
&I004_V1_12_171_CPW_LON,
&I004_V1_12_171_CPW_ALT,
@@ -4835,7 +4818,7 @@ static int hf_004_V1_12_171_CPL_Y;
static const FieldPart I004_V1_12_171_CPL_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_004_V1_12_171_CPL_Y, NULL };
static int hf_004_V1_12_171_CPL_Z;
static const FieldPart I004_V1_12_171_CPL_Z = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_V1_12_171_CPL_Z, NULL };
-static const FieldPart *I004_V1_12_171_CPL_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_CPL_PARTS[] = {
&I004_V1_12_171_CPL_X,
&I004_V1_12_171_CPL_Y,
&I004_V1_12_171_CPL_Z,
@@ -4845,7 +4828,7 @@ static const AsterixField I004_V1_12_171_CPL = { FIXED, 8, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_171_TT2;
static int hf_004_V1_12_171_TT2_VALUE;
static const FieldPart I004_V1_12_171_TT2_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_V1_12_171_TT2_VALUE, NULL };
-static const FieldPart *I004_V1_12_171_TT2_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_TT2_PARTS[] = {
&I004_V1_12_171_TT2_VALUE,
NULL
};
@@ -4853,7 +4836,7 @@ static const AsterixField I004_V1_12_171_TT2 = { FIXED, 3, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_171_DT2;
static int hf_004_V1_12_171_DT2_VALUE;
static const FieldPart I004_V1_12_171_DT2_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_004_V1_12_171_DT2_VALUE, NULL };
-static const FieldPart *I004_V1_12_171_DT2_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_DT2_PARTS[] = {
&I004_V1_12_171_DT2_VALUE,
NULL
};
@@ -4916,7 +4899,7 @@ static const value_string valstr_004_V1_12_171_AC2_GV[] = {
{ 0, NULL }
};
static const FieldPart I004_V1_12_171_AC2_GV = { 1, 1.0, FIELD_PART_UINT, &hf_004_V1_12_171_AC2_GV, NULL };
-static const FieldPart *I004_V1_12_171_AC2_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_AC2_PARTS[] = {
&I004_V1_12_171_AC2_GATOAT,
&I004_V1_12_171_AC2_FR1FR2,
&I004_V1_12_171_AC2_RVSM,
@@ -4933,7 +4916,7 @@ static const AsterixField I004_V1_12_171_AC2 = { FX, 1, 0, 0, &hf_004_V1_12_171_
static int hf_004_V1_12_171_MS2;
static int hf_004_V1_12_171_MS2_VALUE;
static const FieldPart I004_V1_12_171_MS2_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_004_V1_12_171_MS2_VALUE, NULL };
-static const FieldPart *I004_V1_12_171_MS2_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_MS2_PARTS[] = {
&I004_V1_12_171_MS2_VALUE,
NULL
};
@@ -4941,7 +4924,7 @@ static const AsterixField I004_V1_12_171_MS2 = { FIXED, 6, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_171_FP2;
static int hf_004_V1_12_171_FP2_NBR;
static const FieldPart I004_V1_12_171_FP2_NBR = { 27, 1.0, FIELD_PART_UFLOAT, &hf_004_V1_12_171_FP2_NBR, NULL };
-static const FieldPart *I004_V1_12_171_FP2_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_FP2_PARTS[] = {
&IXXX_5bit_spare,
&I004_V1_12_171_FP2_NBR,
NULL
@@ -4950,7 +4933,7 @@ static const AsterixField I004_V1_12_171_FP2 = { FIXED, 4, 0, 0, &hf_004_V1_12_1
static int hf_004_V1_12_171_CF2;
static int hf_004_V1_12_171_CF2_VALUE;
static const FieldPart I004_V1_12_171_CF2_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_004_V1_12_171_CF2_VALUE, NULL };
-static const FieldPart *I004_V1_12_171_CF2_PARTS[] = {
+static const FieldPart * const I004_V1_12_171_CF2_PARTS[] = {
&I004_V1_12_171_CF2_VALUE,
NULL
};
@@ -5015,7 +4998,7 @@ static const value_string valstr_004_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I004_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_004_000_VALUE, NULL };
-static const FieldPart *I004_000_PARTS[] = {
+static const FieldPart * const I004_000_PARTS[] = {
&I004_000_VALUE,
NULL
};
@@ -5025,7 +5008,7 @@ static int hf_004_010_SAC;
static const FieldPart I004_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_004_010_SAC, NULL };
static int hf_004_010_SIC;
static const FieldPart I004_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_004_010_SIC, NULL };
-static const FieldPart *I004_010_PARTS[] = {
+static const FieldPart * const I004_010_PARTS[] = {
&I004_010_SAC,
&I004_010_SIC,
NULL
@@ -5036,7 +5019,7 @@ static int hf_004_015_SAC;
static const FieldPart I004_015_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_004_015_SAC, NULL };
static int hf_004_015_SIC;
static const FieldPart I004_015_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_004_015_SIC, NULL };
-static const FieldPart *I004_015_PARTS[] = {
+static const FieldPart * const I004_015_PARTS[] = {
&I004_015_SAC,
&I004_015_SIC,
NULL
@@ -5045,7 +5028,7 @@ static const AsterixField I004_015 = { REPETITIVE, 2, 1, 0, &hf_004_015, I004_01
static int hf_004_020;
static int hf_004_020_VALUE;
static const FieldPart I004_020_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_020_VALUE, NULL };
-static const FieldPart *I004_020_PARTS[] = {
+static const FieldPart * const I004_020_PARTS[] = {
&I004_020_VALUE,
NULL
};
@@ -5053,7 +5036,7 @@ static const AsterixField I004_020 = { FIXED, 3, 0, 0, &hf_004_020, I004_020_PAR
static int hf_004_030;
static int hf_004_030_VALUE;
static const FieldPart I004_030_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_004_030_VALUE, NULL };
-static const FieldPart *I004_030_PARTS[] = {
+static const FieldPart * const I004_030_PARTS[] = {
&I004_030_VALUE,
NULL
};
@@ -5061,7 +5044,7 @@ static const AsterixField I004_030 = { FIXED, 2, 0, 0, &hf_004_030, I004_030_PAR
static int hf_004_035;
static int hf_004_035_VALUE;
static const FieldPart I004_035_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_004_035_VALUE, NULL };
-static const FieldPart *I004_035_PARTS[] = {
+static const FieldPart * const I004_035_PARTS[] = {
&I004_035_VALUE,
NULL
};
@@ -5069,7 +5052,7 @@ static const AsterixField I004_035 = { FIXED, 2, 0, 0, &hf_004_035, I004_035_PAR
static int hf_004_040;
static int hf_004_040_VALUE;
static const FieldPart I004_040_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_004_040_VALUE, NULL };
-static const FieldPart *I004_040_PARTS[] = {
+static const FieldPart * const I004_040_PARTS[] = {
&I004_040_VALUE,
NULL
};
@@ -5077,7 +5060,7 @@ static const AsterixField I004_040 = { FIXED, 2, 0, 0, &hf_004_040, I004_040_PAR
static int hf_004_045;
static int hf_004_045_STAT;
static const FieldPart I004_045_STAT = { 3, 1.0, FIELD_PART_HEX, &hf_004_045_STAT, NULL };
-static const FieldPart *I004_045_PARTS[] = {
+static const FieldPart * const I004_045_PARTS[] = {
&IXXX_4bit_spare,
&I004_045_STAT,
&IXXX_1bit_spare,
@@ -5428,7 +5411,7 @@ static const value_string valstr_004_060_ONGOING[] = {
{ 0, NULL }
};
static const FieldPart I004_060_ONGOING = { 1, 1.0, FIELD_PART_UINT, &hf_004_060_ONGOING, NULL };
-static const FieldPart *I004_060_PARTS[] = {
+static const FieldPart * const I004_060_PARTS[] = {
&I004_060_MRVA,
&I004_060_RAMLD,
&I004_060_RAMHD,
@@ -5492,7 +5475,7 @@ static int hf_004_070;
static int hf_004_070_TC;
static int hf_004_070_TC_VALUE;
static const FieldPart I004_070_TC_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_070_TC_VALUE, NULL };
-static const FieldPart *I004_070_TC_PARTS[] = {
+static const FieldPart * const I004_070_TC_PARTS[] = {
&I004_070_TC_VALUE,
NULL
};
@@ -5500,7 +5483,7 @@ static const AsterixField I004_070_TC = { FIXED, 3, 0, 0, &hf_004_070_TC, I004_0
static int hf_004_070_TCA;
static int hf_004_070_TCA_VALUE;
static const FieldPart I004_070_TCA_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_070_TCA_VALUE, NULL };
-static const FieldPart *I004_070_TCA_PARTS[] = {
+static const FieldPart * const I004_070_TCA_PARTS[] = {
&I004_070_TCA_VALUE,
NULL
};
@@ -5508,7 +5491,7 @@ static const AsterixField I004_070_TCA = { FIXED, 3, 0, 0, &hf_004_070_TCA, I004
static int hf_004_070_CHS;
static int hf_004_070_CHS_VALUE;
static const FieldPart I004_070_CHS_VALUE = { 24, 0.5, FIELD_PART_UFLOAT, &hf_004_070_CHS_VALUE, NULL };
-static const FieldPart *I004_070_CHS_PARTS[] = {
+static const FieldPart * const I004_070_CHS_PARTS[] = {
&I004_070_CHS_VALUE,
NULL
};
@@ -5516,7 +5499,7 @@ static const AsterixField I004_070_CHS = { FIXED, 3, 0, 0, &hf_004_070_CHS, I004
static int hf_004_070_MHS;
static int hf_004_070_MHS_VALUE;
static const FieldPart I004_070_MHS_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_004_070_MHS_VALUE, NULL };
-static const FieldPart *I004_070_MHS_PARTS[] = {
+static const FieldPart * const I004_070_MHS_PARTS[] = {
&I004_070_MHS_VALUE,
NULL
};
@@ -5524,7 +5507,7 @@ static const AsterixField I004_070_MHS = { FIXED, 2, 0, 0, &hf_004_070_MHS, I004
static int hf_004_070_CVS;
static int hf_004_070_CVS_VALUE;
static const FieldPart I004_070_CVS_VALUE = { 16, 25.0, FIELD_PART_UFLOAT, &hf_004_070_CVS_VALUE, NULL };
-static const FieldPart *I004_070_CVS_PARTS[] = {
+static const FieldPart * const I004_070_CVS_PARTS[] = {
&I004_070_CVS_VALUE,
NULL
};
@@ -5532,7 +5515,7 @@ static const AsterixField I004_070_CVS = { FIXED, 2, 0, 0, &hf_004_070_CVS, I004
static int hf_004_070_MVS;
static int hf_004_070_MVS_VALUE;
static const FieldPart I004_070_MVS_VALUE = { 16, 25.0, FIELD_PART_UFLOAT, &hf_004_070_MVS_VALUE, NULL };
-static const FieldPart *I004_070_MVS_PARTS[] = {
+static const FieldPart * const I004_070_MVS_PARTS[] = {
&I004_070_MVS_VALUE,
NULL
};
@@ -5541,7 +5524,7 @@ static const AsterixField I004_070 = { COMPOUND, 0, 0, 0, &hf_004_070, NULL, { &
static int hf_004_074;
static int hf_004_074_VALUE;
static const FieldPart I004_074_VALUE = { 16, 32.0, FIELD_PART_FLOAT, &hf_004_074_VALUE, NULL };
-static const FieldPart *I004_074_PARTS[] = {
+static const FieldPart * const I004_074_PARTS[] = {
&I004_074_VALUE,
NULL
};
@@ -5549,7 +5532,7 @@ static const AsterixField I004_074 = { FIXED, 2, 0, 0, &hf_004_074, I004_074_PAR
static int hf_004_075;
static int hf_004_075_VALUE;
static const FieldPart I004_075_VALUE = { 24, 0.5, FIELD_PART_FLOAT, &hf_004_075_VALUE, NULL };
-static const FieldPart *I004_075_PARTS[] = {
+static const FieldPart * const I004_075_PARTS[] = {
&I004_075_VALUE,
NULL
};
@@ -5557,7 +5540,7 @@ static const AsterixField I004_075 = { FIXED, 3, 0, 0, &hf_004_075, I004_075_PAR
static int hf_004_076;
static int hf_004_076_VALUE;
static const FieldPart I004_076_VALUE = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_076_VALUE, NULL };
-static const FieldPart *I004_076_PARTS[] = {
+static const FieldPart * const I004_076_PARTS[] = {
&I004_076_VALUE,
NULL
};
@@ -5566,7 +5549,7 @@ static int hf_004_100;
static int hf_004_100_AN;
static int hf_004_100_AN_VALUE;
static const FieldPart I004_100_AN_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_004_100_AN_VALUE, NULL };
-static const FieldPart *I004_100_AN_PARTS[] = {
+static const FieldPart * const I004_100_AN_PARTS[] = {
&I004_100_AN_VALUE,
NULL
};
@@ -5574,7 +5557,7 @@ static const AsterixField I004_100_AN = { FIXED, 6, 0, 0, &hf_004_100_AN, I004_1
static int hf_004_100_CAN;
static int hf_004_100_CAN_VALUE;
static const FieldPart I004_100_CAN_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_100_CAN_VALUE, NULL };
-static const FieldPart *I004_100_CAN_PARTS[] = {
+static const FieldPart * const I004_100_CAN_PARTS[] = {
&I004_100_CAN_VALUE,
NULL
};
@@ -5582,7 +5565,7 @@ static const AsterixField I004_100_CAN = { FIXED, 7, 0, 0, &hf_004_100_CAN, I004
static int hf_004_100_RT1;
static int hf_004_100_RT1_VALUE;
static const FieldPart I004_100_RT1_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_100_RT1_VALUE, NULL };
-static const FieldPart *I004_100_RT1_PARTS[] = {
+static const FieldPart * const I004_100_RT1_PARTS[] = {
&I004_100_RT1_VALUE,
NULL
};
@@ -5590,7 +5573,7 @@ static const AsterixField I004_100_RT1 = { FIXED, 7, 0, 0, &hf_004_100_RT1, I004
static int hf_004_100_RT2;
static int hf_004_100_RT2_VALUE;
static const FieldPart I004_100_RT2_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_100_RT2_VALUE, NULL };
-static const FieldPart *I004_100_RT2_PARTS[] = {
+static const FieldPart * const I004_100_RT2_PARTS[] = {
&I004_100_RT2_VALUE,
NULL
};
@@ -5598,7 +5581,7 @@ static const AsterixField I004_100_RT2 = { FIXED, 7, 0, 0, &hf_004_100_RT2, I004
static int hf_004_100_SB;
static int hf_004_100_SB_VALUE;
static const FieldPart I004_100_SB_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_100_SB_VALUE, NULL };
-static const FieldPart *I004_100_SB_PARTS[] = {
+static const FieldPart * const I004_100_SB_PARTS[] = {
&I004_100_SB_VALUE,
NULL
};
@@ -5606,7 +5589,7 @@ static const AsterixField I004_100_SB = { FIXED, 7, 0, 0, &hf_004_100_SB, I004_1
static int hf_004_100_G;
static int hf_004_100_G_VALUE;
static const FieldPart I004_100_G_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_100_G_VALUE, NULL };
-static const FieldPart *I004_100_G_PARTS[] = {
+static const FieldPart * const I004_100_G_PARTS[] = {
&I004_100_G_VALUE,
NULL
};
@@ -5617,7 +5600,7 @@ static int hf_004_110_CEN;
static const FieldPart I004_110_CEN = { 8, 1.0, FIELD_PART_HEX, &hf_004_110_CEN, NULL };
static int hf_004_110_POS;
static const FieldPart I004_110_POS = { 8, 1.0, FIELD_PART_HEX, &hf_004_110_POS, NULL };
-static const FieldPart *I004_110_PARTS[] = {
+static const FieldPart * const I004_110_PARTS[] = {
&I004_110_CEN,
&I004_110_POS,
NULL
@@ -5765,7 +5748,7 @@ static const value_string valstr_004_120_CN_AIW[] = {
{ 0, NULL }
};
static const FieldPart I004_120_CN_AIW = { 1, 1.0, FIELD_PART_UINT, &hf_004_120_CN_AIW, NULL };
-static const FieldPart *I004_120_CN_PARTS[] = {
+static const FieldPart * const I004_120_CN_PARTS[] = {
&I004_120_CN_MAS,
&I004_120_CN_CAS,
&I004_120_CN_FLD,
@@ -5805,7 +5788,7 @@ static const value_string valstr_004_120_CC_CS[] = {
{ 0, NULL }
};
static const FieldPart I004_120_CC_CS = { 1, 1.0, FIELD_PART_UINT, &hf_004_120_CC_CS, NULL };
-static const FieldPart *I004_120_CC_PARTS[] = {
+static const FieldPart * const I004_120_CC_PARTS[] = {
&I004_120_CC_TID,
&I004_120_CC_CPC,
&I004_120_CC_CS,
@@ -5815,7 +5798,7 @@ static const AsterixField I004_120_CC = { FIXED, 1, 0, 0, &hf_004_120_CC, I004_1
static int hf_004_120_CP;
static int hf_004_120_CP_VALUE;
static const FieldPart I004_120_CP_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_004_120_CP_VALUE, NULL };
-static const FieldPart *I004_120_CP_PARTS[] = {
+static const FieldPart * const I004_120_CP_PARTS[] = {
&I004_120_CP_VALUE,
NULL
};
@@ -5823,7 +5806,7 @@ static const AsterixField I004_120_CP = { FIXED, 1, 0, 0, &hf_004_120_CP, I004_1
static int hf_004_120_CD;
static int hf_004_120_CD_VALUE;
static const FieldPart I004_120_CD_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_120_CD_VALUE, NULL };
-static const FieldPart *I004_120_CD_PARTS[] = {
+static const FieldPart * const I004_120_CD_PARTS[] = {
&I004_120_CD_VALUE,
NULL
};
@@ -5833,7 +5816,7 @@ static int hf_004_170;
static int hf_004_170_AI1;
static int hf_004_170_AI1_VALUE;
static const FieldPart I004_170_AI1_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_170_AI1_VALUE, NULL };
-static const FieldPart *I004_170_AI1_PARTS[] = {
+static const FieldPart * const I004_170_AI1_PARTS[] = {
&I004_170_AI1_VALUE,
NULL
};
@@ -5841,7 +5824,7 @@ static const AsterixField I004_170_AI1 = { FIXED, 7, 0, 0, &hf_004_170_AI1, I004
static int hf_004_170_M31;
static int hf_004_170_M31_MODE3A;
static const FieldPart I004_170_M31_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_004_170_M31_MODE3A, NULL };
-static const FieldPart *I004_170_M31_PARTS[] = {
+static const FieldPart * const I004_170_M31_PARTS[] = {
&IXXX_4bit_spare,
&I004_170_M31_MODE3A,
NULL
@@ -5854,7 +5837,7 @@ static int hf_004_170_CPW_LON;
static const FieldPart I004_170_CPW_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_004_170_CPW_LON, NULL };
static int hf_004_170_CPW_ALT;
static const FieldPart I004_170_CPW_ALT = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_170_CPW_ALT, NULL };
-static const FieldPart *I004_170_CPW_PARTS[] = {
+static const FieldPart * const I004_170_CPW_PARTS[] = {
&I004_170_CPW_LAT,
&I004_170_CPW_LON,
&I004_170_CPW_ALT,
@@ -5868,7 +5851,7 @@ static int hf_004_170_CPC_Y;
static const FieldPart I004_170_CPC_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_004_170_CPC_Y, NULL };
static int hf_004_170_CPC_Z;
static const FieldPart I004_170_CPC_Z = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_170_CPC_Z, NULL };
-static const FieldPart *I004_170_CPC_PARTS[] = {
+static const FieldPart * const I004_170_CPC_PARTS[] = {
&I004_170_CPC_X,
&I004_170_CPC_Y,
&I004_170_CPC_Z,
@@ -5878,7 +5861,7 @@ static const AsterixField I004_170_CPC = { FIXED, 8, 0, 0, &hf_004_170_CPC, I004
static int hf_004_170_TT1;
static int hf_004_170_TT1_VALUE;
static const FieldPart I004_170_TT1_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_170_TT1_VALUE, NULL };
-static const FieldPart *I004_170_TT1_PARTS[] = {
+static const FieldPart * const I004_170_TT1_PARTS[] = {
&I004_170_TT1_VALUE,
NULL
};
@@ -5886,7 +5869,7 @@ static const AsterixField I004_170_TT1 = { FIXED, 3, 0, 0, &hf_004_170_TT1, I004
static int hf_004_170_DT1;
static int hf_004_170_DT1_VALUE;
static const FieldPart I004_170_DT1_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_004_170_DT1_VALUE, NULL };
-static const FieldPart *I004_170_DT1_PARTS[] = {
+static const FieldPart * const I004_170_DT1_PARTS[] = {
&I004_170_DT1_VALUE,
NULL
};
@@ -5949,7 +5932,7 @@ static const value_string valstr_004_170_AC1_GV[] = {
{ 0, NULL }
};
static const FieldPart I004_170_AC1_GV = { 1, 1.0, FIELD_PART_UINT, &hf_004_170_AC1_GV, NULL };
-static const FieldPart *I004_170_AC1_PARTS[] = {
+static const FieldPart * const I004_170_AC1_PARTS[] = {
&I004_170_AC1_GATOAT,
&I004_170_AC1_FR1FR2,
&I004_170_AC1_RVSM,
@@ -5966,7 +5949,7 @@ static const AsterixField I004_170_AC1 = { FX, 1, 0, 0, &hf_004_170_AC1, I004_17
static int hf_004_170_MS1;
static int hf_004_170_MS1_VALUE;
static const FieldPart I004_170_MS1_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_004_170_MS1_VALUE, NULL };
-static const FieldPart *I004_170_MS1_PARTS[] = {
+static const FieldPart * const I004_170_MS1_PARTS[] = {
&I004_170_MS1_VALUE,
NULL
};
@@ -5974,7 +5957,7 @@ static const AsterixField I004_170_MS1 = { FIXED, 6, 0, 0, &hf_004_170_MS1, I004
static int hf_004_170_FP1;
static int hf_004_170_FP1_NBR;
static const FieldPart I004_170_FP1_NBR = { 27, 1.0, FIELD_PART_UFLOAT, &hf_004_170_FP1_NBR, NULL };
-static const FieldPart *I004_170_FP1_PARTS[] = {
+static const FieldPart * const I004_170_FP1_PARTS[] = {
&IXXX_5bit_spare,
&I004_170_FP1_NBR,
NULL
@@ -5983,7 +5966,7 @@ static const AsterixField I004_170_FP1 = { FIXED, 4, 0, 0, &hf_004_170_FP1, I004
static int hf_004_170_CF1;
static int hf_004_170_CF1_VALUE;
static const FieldPart I004_170_CF1_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_004_170_CF1_VALUE, NULL };
-static const FieldPart *I004_170_CF1_PARTS[] = {
+static const FieldPart * const I004_170_CF1_PARTS[] = {
&I004_170_CF1_VALUE,
NULL
};
@@ -5993,7 +5976,7 @@ static int hf_004_171;
static int hf_004_171_AI2;
static int hf_004_171_AI2_VALUE;
static const FieldPart I004_171_AI2_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_004_171_AI2_VALUE, NULL };
-static const FieldPart *I004_171_AI2_PARTS[] = {
+static const FieldPart * const I004_171_AI2_PARTS[] = {
&I004_171_AI2_VALUE,
NULL
};
@@ -6001,7 +5984,7 @@ static const AsterixField I004_171_AI2 = { FIXED, 7, 0, 0, &hf_004_171_AI2, I004
static int hf_004_171_M32;
static int hf_004_171_M32_MODE3A;
static const FieldPart I004_171_M32_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_004_171_M32_MODE3A, NULL };
-static const FieldPart *I004_171_M32_PARTS[] = {
+static const FieldPart * const I004_171_M32_PARTS[] = {
&IXXX_4bit_spare,
&I004_171_M32_MODE3A,
NULL
@@ -6014,7 +5997,7 @@ static int hf_004_171_CPW_LON;
static const FieldPart I004_171_CPW_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_004_171_CPW_LON, NULL };
static int hf_004_171_CPW_ALT;
static const FieldPart I004_171_CPW_ALT = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_171_CPW_ALT, NULL };
-static const FieldPart *I004_171_CPW_PARTS[] = {
+static const FieldPart * const I004_171_CPW_PARTS[] = {
&I004_171_CPW_LAT,
&I004_171_CPW_LON,
&I004_171_CPW_ALT,
@@ -6028,7 +6011,7 @@ static int hf_004_171_CPL_Y;
static const FieldPart I004_171_CPL_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_004_171_CPL_Y, NULL };
static int hf_004_171_CPL_Z;
static const FieldPart I004_171_CPL_Z = { 16, 25.0, FIELD_PART_FLOAT, &hf_004_171_CPL_Z, NULL };
-static const FieldPart *I004_171_CPL_PARTS[] = {
+static const FieldPart * const I004_171_CPL_PARTS[] = {
&I004_171_CPL_X,
&I004_171_CPL_Y,
&I004_171_CPL_Z,
@@ -6038,7 +6021,7 @@ static const AsterixField I004_171_CPL = { FIXED, 8, 0, 0, &hf_004_171_CPL, I004
static int hf_004_171_TT2;
static int hf_004_171_TT2_VALUE;
static const FieldPart I004_171_TT2_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_004_171_TT2_VALUE, NULL };
-static const FieldPart *I004_171_TT2_PARTS[] = {
+static const FieldPart * const I004_171_TT2_PARTS[] = {
&I004_171_TT2_VALUE,
NULL
};
@@ -6046,7 +6029,7 @@ static const AsterixField I004_171_TT2 = { FIXED, 3, 0, 0, &hf_004_171_TT2, I004
static int hf_004_171_DT2;
static int hf_004_171_DT2_VALUE;
static const FieldPart I004_171_DT2_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_004_171_DT2_VALUE, NULL };
-static const FieldPart *I004_171_DT2_PARTS[] = {
+static const FieldPart * const I004_171_DT2_PARTS[] = {
&I004_171_DT2_VALUE,
NULL
};
@@ -6109,7 +6092,7 @@ static const value_string valstr_004_171_AC2_GV[] = {
{ 0, NULL }
};
static const FieldPart I004_171_AC2_GV = { 1, 1.0, FIELD_PART_UINT, &hf_004_171_AC2_GV, NULL };
-static const FieldPart *I004_171_AC2_PARTS[] = {
+static const FieldPart * const I004_171_AC2_PARTS[] = {
&I004_171_AC2_GATOAT,
&I004_171_AC2_FR1FR2,
&I004_171_AC2_RVSM,
@@ -6126,7 +6109,7 @@ static const AsterixField I004_171_AC2 = { FX, 1, 0, 0, &hf_004_171_AC2, I004_17
static int hf_004_171_MS2;
static int hf_004_171_MS2_VALUE;
static const FieldPart I004_171_MS2_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_004_171_MS2_VALUE, NULL };
-static const FieldPart *I004_171_MS2_PARTS[] = {
+static const FieldPart * const I004_171_MS2_PARTS[] = {
&I004_171_MS2_VALUE,
NULL
};
@@ -6134,7 +6117,7 @@ static const AsterixField I004_171_MS2 = { FIXED, 6, 0, 0, &hf_004_171_MS2, I004
static int hf_004_171_FP2;
static int hf_004_171_FP2_NBR;
static const FieldPart I004_171_FP2_NBR = { 27, 1.0, FIELD_PART_UFLOAT, &hf_004_171_FP2_NBR, NULL };
-static const FieldPart *I004_171_FP2_PARTS[] = {
+static const FieldPart * const I004_171_FP2_PARTS[] = {
&IXXX_5bit_spare,
&I004_171_FP2_NBR,
NULL
@@ -6143,7 +6126,7 @@ static const AsterixField I004_171_FP2 = { FIXED, 4, 0, 0, &hf_004_171_FP2, I004
static int hf_004_171_CF2;
static int hf_004_171_CF2_VALUE;
static const FieldPart I004_171_CF2_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_004_171_CF2_VALUE, NULL };
-static const FieldPart *I004_171_CF2_PARTS[] = {
+static const FieldPart * const I004_171_CF2_PARTS[] = {
&I004_171_CF2_VALUE,
NULL
};
@@ -6154,8 +6137,7 @@ static const AsterixField I004_RE = { EXP, 0, 0, 1, &hf_004_RE, NULL, { NULL } }
static int hf_004_SP;
static const AsterixField I004_SP = { EXP, 0, 0, 1, &hf_004_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I004_V1_12_uap[] = {
+static const AsterixField * const I004_V1_12_uap[] = {
&I004_V1_12_010,
&I004_V1_12_000,
&I004_V1_12_015,
@@ -6179,14 +6161,12 @@ static const AsterixField *I004_V1_12_uap[] = {
&I004_V1_12_SP,
NULL
};
-static const AsterixField **I004_V1_12[] = {
+static const AsterixField * const * const I004_V1_12[] = {
I004_V1_12_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I004_uap[] = {
+static const AsterixField * const I004_uap[] = {
&I004_010,
&I004_000,
&I004_015,
@@ -6210,11 +6190,10 @@ static const AsterixField *I004_uap[] = {
&I004_SP,
NULL
};
-static const AsterixField **I004[] = {
+static const AsterixField * const * const I004[] = {
I004_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 008, edition 1.2 */
static int hf_008_V1_2_000;
@@ -6229,7 +6208,7 @@ static const value_string valstr_008_V1_2_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I008_V1_2_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_008_V1_2_000_VALUE, NULL };
-static const FieldPart *I008_V1_2_000_PARTS[] = {
+static const FieldPart * const I008_V1_2_000_PARTS[] = {
&I008_V1_2_000_VALUE,
NULL
};
@@ -6239,7 +6218,7 @@ static int hf_008_V1_2_010_SAC;
static const FieldPart I008_V1_2_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_008_V1_2_010_SAC, NULL };
static int hf_008_V1_2_010_SIC;
static const FieldPart I008_V1_2_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_008_V1_2_010_SIC, NULL };
-static const FieldPart *I008_V1_2_010_PARTS[] = {
+static const FieldPart * const I008_V1_2_010_PARTS[] = {
&I008_V1_2_010_SAC,
&I008_V1_2_010_SIC,
NULL
@@ -6282,7 +6261,7 @@ static const value_string valstr_008_V1_2_020_ER[] = {
{ 0, NULL }
};
static const FieldPart I008_V1_2_020_ER = { 1, 1.0, FIELD_PART_UINT, &hf_008_V1_2_020_ER, NULL };
-static const FieldPart *I008_V1_2_020_PARTS[] = {
+static const FieldPart * const I008_V1_2_020_PARTS[] = {
&I008_V1_2_020_ORG,
&I008_V1_2_020_I,
&I008_V1_2_020_S,
@@ -6301,7 +6280,7 @@ static int hf_008_V1_2_034_ENDR;
static const FieldPart I008_V1_2_034_ENDR = { 8, 0.0078125, FIELD_PART_UFLOAT, &hf_008_V1_2_034_ENDR, NULL };
static int hf_008_V1_2_034_AZ;
static const FieldPart I008_V1_2_034_AZ = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_008_V1_2_034_AZ, NULL };
-static const FieldPart *I008_V1_2_034_PARTS[] = {
+static const FieldPart * const I008_V1_2_034_PARTS[] = {
&I008_V1_2_034_STR,
&I008_V1_2_034_ENDR,
&I008_V1_2_034_AZ,
@@ -6315,7 +6294,7 @@ static int hf_008_V1_2_036_Y;
static const FieldPart I008_V1_2_036_Y = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_2_036_Y, NULL };
static int hf_008_V1_2_036_LENGTH;
static const FieldPart I008_V1_2_036_LENGTH = { 8, 0.015625, FIELD_PART_UFLOAT, &hf_008_V1_2_036_LENGTH, NULL };
-static const FieldPart *I008_V1_2_036_PARTS[] = {
+static const FieldPart * const I008_V1_2_036_PARTS[] = {
&I008_V1_2_036_X,
&I008_V1_2_036_Y,
&I008_V1_2_036_LENGTH,
@@ -6331,7 +6310,7 @@ static int hf_008_V1_2_038_X2;
static const FieldPart I008_V1_2_038_X2 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_2_038_X2, NULL };
static int hf_008_V1_2_038_Y2;
static const FieldPart I008_V1_2_038_Y2 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_2_038_Y2, NULL };
-static const FieldPart *I008_V1_2_038_PARTS[] = {
+static const FieldPart * const I008_V1_2_038_PARTS[] = {
&I008_V1_2_038_X1,
&I008_V1_2_038_Y1,
&I008_V1_2_038_X2,
@@ -6360,7 +6339,7 @@ static const value_string valstr_008_V1_2_040_FSTLST[] = {
static const FieldPart I008_V1_2_040_FSTLST = { 2, 1.0, FIELD_PART_UINT, &hf_008_V1_2_040_FSTLST, NULL };
static int hf_008_V1_2_040_CSN;
static const FieldPart I008_V1_2_040_CSN = { 8, 1.0, FIELD_PART_HEX, &hf_008_V1_2_040_CSN, NULL };
-static const FieldPart *I008_V1_2_040_PARTS[] = {
+static const FieldPart * const I008_V1_2_040_PARTS[] = {
&I008_V1_2_040_ORG,
&I008_V1_2_040_I,
&IXXX_2bit_spare,
@@ -6374,7 +6353,7 @@ static int hf_008_V1_2_050_X1;
static const FieldPart I008_V1_2_050_X1 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_2_050_X1, NULL };
static int hf_008_V1_2_050_Y1;
static const FieldPart I008_V1_2_050_Y1 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_2_050_Y1, NULL };
-static const FieldPart *I008_V1_2_050_PARTS[] = {
+static const FieldPart * const I008_V1_2_050_PARTS[] = {
&I008_V1_2_050_X1,
&I008_V1_2_050_Y1,
NULL
@@ -6383,7 +6362,7 @@ static const AsterixField I008_V1_2_050 = { REPETITIVE, 2, 1, 0, &hf_008_V1_2_05
static int hf_008_V1_2_090;
static int hf_008_V1_2_090_VALUE;
static const FieldPart I008_V1_2_090_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_008_V1_2_090_VALUE, NULL };
-static const FieldPart *I008_V1_2_090_PARTS[] = {
+static const FieldPart * const I008_V1_2_090_PARTS[] = {
&I008_V1_2_090_VALUE,
NULL
};
@@ -6395,7 +6374,7 @@ static int hf_008_V1_2_100_R;
static const FieldPart I008_V1_2_100_R = { 3, 1.0, FIELD_PART_HEX, &hf_008_V1_2_100_R, NULL };
static int hf_008_V1_2_100_Q;
static const FieldPart I008_V1_2_100_Q = { 15, 1.0, FIELD_PART_HEX, &hf_008_V1_2_100_Q, NULL };
-static const FieldPart *I008_V1_2_100_PARTS[] = {
+static const FieldPart * const I008_V1_2_100_PARTS[] = {
&I008_V1_2_100_F,
&I008_V1_2_100_R,
&I008_V1_2_100_Q,
@@ -6406,7 +6385,7 @@ static const AsterixField I008_V1_2_100 = { FX, 3, 0, 0, &hf_008_V1_2_100, I008_
static int hf_008_V1_2_110;
static int hf_008_V1_2_110_Subitem;
static const FieldPart I008_V1_2_110_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_008_V1_2_110_Subitem, NULL };
-static const FieldPart *I008_V1_2_110_PARTS[] = {
+static const FieldPart * const I008_V1_2_110_PARTS[] = {
&I008_V1_2_110_Subitem,
&IXXX_FX,
NULL
@@ -6415,7 +6394,7 @@ static const AsterixField I008_V1_2_110 = { FX, 1, 0, 0, &hf_008_V1_2_110, I008_
static int hf_008_V1_2_120;
static int hf_008_V1_2_120_VALUE;
static const FieldPart I008_V1_2_120_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_008_V1_2_120_VALUE, NULL };
-static const FieldPart *I008_V1_2_120_PARTS[] = {
+static const FieldPart * const I008_V1_2_120_PARTS[] = {
&I008_V1_2_120_VALUE,
NULL
};
@@ -6423,8 +6402,7 @@ static const AsterixField I008_V1_2_120 = { FIXED, 2, 0, 0, &hf_008_V1_2_120, I0
static int hf_008_V1_2_SP;
static const AsterixField I008_V1_2_SP = { EXP, 0, 0, 1, &hf_008_V1_2_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I008_V1_2_uap[] = {
+static const AsterixField * const I008_V1_2_uap[] = {
&I008_V1_2_010,
&I008_V1_2_000,
&I008_V1_2_020,
@@ -6440,11 +6418,10 @@ static const AsterixField *I008_V1_2_uap[] = {
&I008_V1_2_SP,
NULL
};
-static const AsterixField **I008_V1_2[] = {
+static const AsterixField * const * const I008_V1_2[] = {
I008_V1_2_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 008, edition 1.3 */
static int hf_008_V1_3_000;
@@ -6459,7 +6436,7 @@ static const value_string valstr_008_V1_3_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I008_V1_3_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_008_V1_3_000_VALUE, NULL };
-static const FieldPart *I008_V1_3_000_PARTS[] = {
+static const FieldPart * const I008_V1_3_000_PARTS[] = {
&I008_V1_3_000_VALUE,
NULL
};
@@ -6469,7 +6446,7 @@ static int hf_008_V1_3_010_SAC;
static const FieldPart I008_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_008_V1_3_010_SAC, NULL };
static int hf_008_V1_3_010_SIC;
static const FieldPart I008_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_008_V1_3_010_SIC, NULL };
-static const FieldPart *I008_V1_3_010_PARTS[] = {
+static const FieldPart * const I008_V1_3_010_PARTS[] = {
&I008_V1_3_010_SAC,
&I008_V1_3_010_SIC,
NULL
@@ -6512,7 +6489,7 @@ static const value_string valstr_008_V1_3_020_ER[] = {
{ 0, NULL }
};
static const FieldPart I008_V1_3_020_ER = { 1, 1.0, FIELD_PART_UINT, &hf_008_V1_3_020_ER, NULL };
-static const FieldPart *I008_V1_3_020_PARTS[] = {
+static const FieldPart * const I008_V1_3_020_PARTS[] = {
&I008_V1_3_020_ORG,
&I008_V1_3_020_I,
&I008_V1_3_020_S,
@@ -6531,7 +6508,7 @@ static int hf_008_V1_3_034_ENDR;
static const FieldPart I008_V1_3_034_ENDR = { 8, 0.0078125, FIELD_PART_UFLOAT, &hf_008_V1_3_034_ENDR, NULL };
static int hf_008_V1_3_034_AZ;
static const FieldPart I008_V1_3_034_AZ = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_008_V1_3_034_AZ, NULL };
-static const FieldPart *I008_V1_3_034_PARTS[] = {
+static const FieldPart * const I008_V1_3_034_PARTS[] = {
&I008_V1_3_034_STR,
&I008_V1_3_034_ENDR,
&I008_V1_3_034_AZ,
@@ -6545,7 +6522,7 @@ static int hf_008_V1_3_036_Y;
static const FieldPart I008_V1_3_036_Y = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_3_036_Y, NULL };
static int hf_008_V1_3_036_LENGTH;
static const FieldPart I008_V1_3_036_LENGTH = { 8, 0.015625, FIELD_PART_UFLOAT, &hf_008_V1_3_036_LENGTH, NULL };
-static const FieldPart *I008_V1_3_036_PARTS[] = {
+static const FieldPart * const I008_V1_3_036_PARTS[] = {
&I008_V1_3_036_X,
&I008_V1_3_036_Y,
&I008_V1_3_036_LENGTH,
@@ -6561,7 +6538,7 @@ static int hf_008_V1_3_038_X2;
static const FieldPart I008_V1_3_038_X2 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_3_038_X2, NULL };
static int hf_008_V1_3_038_Y2;
static const FieldPart I008_V1_3_038_Y2 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_3_038_Y2, NULL };
-static const FieldPart *I008_V1_3_038_PARTS[] = {
+static const FieldPart * const I008_V1_3_038_PARTS[] = {
&I008_V1_3_038_X1,
&I008_V1_3_038_Y1,
&I008_V1_3_038_X2,
@@ -6590,7 +6567,7 @@ static const value_string valstr_008_V1_3_040_FSTLST[] = {
static const FieldPart I008_V1_3_040_FSTLST = { 2, 1.0, FIELD_PART_UINT, &hf_008_V1_3_040_FSTLST, NULL };
static int hf_008_V1_3_040_CSN;
static const FieldPart I008_V1_3_040_CSN = { 8, 1.0, FIELD_PART_HEX, &hf_008_V1_3_040_CSN, NULL };
-static const FieldPart *I008_V1_3_040_PARTS[] = {
+static const FieldPart * const I008_V1_3_040_PARTS[] = {
&I008_V1_3_040_ORG,
&I008_V1_3_040_I,
&IXXX_2bit_spare,
@@ -6604,7 +6581,7 @@ static int hf_008_V1_3_050_X1;
static const FieldPart I008_V1_3_050_X1 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_3_050_X1, NULL };
static int hf_008_V1_3_050_Y1;
static const FieldPart I008_V1_3_050_Y1 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_V1_3_050_Y1, NULL };
-static const FieldPart *I008_V1_3_050_PARTS[] = {
+static const FieldPart * const I008_V1_3_050_PARTS[] = {
&I008_V1_3_050_X1,
&I008_V1_3_050_Y1,
NULL
@@ -6613,7 +6590,7 @@ static const AsterixField I008_V1_3_050 = { REPETITIVE, 2, 1, 0, &hf_008_V1_3_05
static int hf_008_V1_3_090;
static int hf_008_V1_3_090_VALUE;
static const FieldPart I008_V1_3_090_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_008_V1_3_090_VALUE, NULL };
-static const FieldPart *I008_V1_3_090_PARTS[] = {
+static const FieldPart * const I008_V1_3_090_PARTS[] = {
&I008_V1_3_090_VALUE,
NULL
};
@@ -6625,7 +6602,7 @@ static int hf_008_V1_3_100_R;
static const FieldPart I008_V1_3_100_R = { 3, 1.0, FIELD_PART_HEX, &hf_008_V1_3_100_R, NULL };
static int hf_008_V1_3_100_Q;
static const FieldPart I008_V1_3_100_Q = { 15, 1.0, FIELD_PART_HEX, &hf_008_V1_3_100_Q, NULL };
-static const FieldPart *I008_V1_3_100_PARTS[] = {
+static const FieldPart * const I008_V1_3_100_PARTS[] = {
&I008_V1_3_100_F,
&I008_V1_3_100_R,
&I008_V1_3_100_Q,
@@ -6636,7 +6613,7 @@ static const AsterixField I008_V1_3_100 = { FX, 3, 0, 0, &hf_008_V1_3_100, I008_
static int hf_008_V1_3_110;
static int hf_008_V1_3_110_Subitem;
static const FieldPart I008_V1_3_110_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_008_V1_3_110_Subitem, NULL };
-static const FieldPart *I008_V1_3_110_PARTS[] = {
+static const FieldPart * const I008_V1_3_110_PARTS[] = {
&I008_V1_3_110_Subitem,
&IXXX_FX,
NULL
@@ -6645,7 +6622,7 @@ static const AsterixField I008_V1_3_110 = { FX, 1, 0, 0, &hf_008_V1_3_110, I008_
static int hf_008_V1_3_120;
static int hf_008_V1_3_120_VALUE;
static const FieldPart I008_V1_3_120_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_008_V1_3_120_VALUE, NULL };
-static const FieldPart *I008_V1_3_120_PARTS[] = {
+static const FieldPart * const I008_V1_3_120_PARTS[] = {
&I008_V1_3_120_VALUE,
NULL
};
@@ -6666,7 +6643,7 @@ static const value_string valstr_008_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I008_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_008_000_VALUE, NULL };
-static const FieldPart *I008_000_PARTS[] = {
+static const FieldPart * const I008_000_PARTS[] = {
&I008_000_VALUE,
NULL
};
@@ -6676,7 +6653,7 @@ static int hf_008_010_SAC;
static const FieldPart I008_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_008_010_SAC, NULL };
static int hf_008_010_SIC;
static const FieldPart I008_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_008_010_SIC, NULL };
-static const FieldPart *I008_010_PARTS[] = {
+static const FieldPart * const I008_010_PARTS[] = {
&I008_010_SAC,
&I008_010_SIC,
NULL
@@ -6719,7 +6696,7 @@ static const value_string valstr_008_020_ER[] = {
{ 0, NULL }
};
static const FieldPart I008_020_ER = { 1, 1.0, FIELD_PART_UINT, &hf_008_020_ER, NULL };
-static const FieldPart *I008_020_PARTS[] = {
+static const FieldPart * const I008_020_PARTS[] = {
&I008_020_ORG,
&I008_020_I,
&I008_020_S,
@@ -6738,7 +6715,7 @@ static int hf_008_034_ENDR;
static const FieldPart I008_034_ENDR = { 8, 0.0078125, FIELD_PART_UFLOAT, &hf_008_034_ENDR, NULL };
static int hf_008_034_AZ;
static const FieldPart I008_034_AZ = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_008_034_AZ, NULL };
-static const FieldPart *I008_034_PARTS[] = {
+static const FieldPart * const I008_034_PARTS[] = {
&I008_034_STR,
&I008_034_ENDR,
&I008_034_AZ,
@@ -6752,7 +6729,7 @@ static int hf_008_036_Y;
static const FieldPart I008_036_Y = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_036_Y, NULL };
static int hf_008_036_LENGTH;
static const FieldPart I008_036_LENGTH = { 8, 0.015625, FIELD_PART_UFLOAT, &hf_008_036_LENGTH, NULL };
-static const FieldPart *I008_036_PARTS[] = {
+static const FieldPart * const I008_036_PARTS[] = {
&I008_036_X,
&I008_036_Y,
&I008_036_LENGTH,
@@ -6768,7 +6745,7 @@ static int hf_008_038_X2;
static const FieldPart I008_038_X2 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_038_X2, NULL };
static int hf_008_038_Y2;
static const FieldPart I008_038_Y2 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_038_Y2, NULL };
-static const FieldPart *I008_038_PARTS[] = {
+static const FieldPart * const I008_038_PARTS[] = {
&I008_038_X1,
&I008_038_Y1,
&I008_038_X2,
@@ -6797,7 +6774,7 @@ static const value_string valstr_008_040_FSTLST[] = {
static const FieldPart I008_040_FSTLST = { 2, 1.0, FIELD_PART_UINT, &hf_008_040_FSTLST, NULL };
static int hf_008_040_CSN;
static const FieldPart I008_040_CSN = { 8, 1.0, FIELD_PART_HEX, &hf_008_040_CSN, NULL };
-static const FieldPart *I008_040_PARTS[] = {
+static const FieldPart * const I008_040_PARTS[] = {
&I008_040_ORG,
&I008_040_I,
&IXXX_2bit_spare,
@@ -6811,7 +6788,7 @@ static int hf_008_050_X1;
static const FieldPart I008_050_X1 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_050_X1, NULL };
static int hf_008_050_Y1;
static const FieldPart I008_050_Y1 = { 8, 0.015625, FIELD_PART_FLOAT, &hf_008_050_Y1, NULL };
-static const FieldPart *I008_050_PARTS[] = {
+static const FieldPart * const I008_050_PARTS[] = {
&I008_050_X1,
&I008_050_Y1,
NULL
@@ -6820,7 +6797,7 @@ static const AsterixField I008_050 = { REPETITIVE, 2, 1, 0, &hf_008_050, I008_05
static int hf_008_090;
static int hf_008_090_VALUE;
static const FieldPart I008_090_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_008_090_VALUE, NULL };
-static const FieldPart *I008_090_PARTS[] = {
+static const FieldPart * const I008_090_PARTS[] = {
&I008_090_VALUE,
NULL
};
@@ -6832,7 +6809,7 @@ static int hf_008_100_R;
static const FieldPart I008_100_R = { 3, 1.0, FIELD_PART_HEX, &hf_008_100_R, NULL };
static int hf_008_100_Q;
static const FieldPart I008_100_Q = { 15, 1.0, FIELD_PART_HEX, &hf_008_100_Q, NULL };
-static const FieldPart *I008_100_PARTS[] = {
+static const FieldPart * const I008_100_PARTS[] = {
&I008_100_F,
&I008_100_R,
&I008_100_Q,
@@ -6843,7 +6820,7 @@ static const AsterixField I008_100 = { FX, 3, 0, 0, &hf_008_100, I008_100_PARTS,
static int hf_008_110;
static int hf_008_110_Subitem;
static const FieldPart I008_110_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_008_110_Subitem, NULL };
-static const FieldPart *I008_110_PARTS[] = {
+static const FieldPart * const I008_110_PARTS[] = {
&I008_110_Subitem,
&IXXX_FX,
NULL
@@ -6852,7 +6829,7 @@ static const AsterixField I008_110 = { FX, 1, 0, 0, &hf_008_110, I008_110_PARTS,
static int hf_008_120;
static int hf_008_120_VALUE;
static const FieldPart I008_120_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_008_120_VALUE, NULL };
-static const FieldPart *I008_120_PARTS[] = {
+static const FieldPart * const I008_120_PARTS[] = {
&I008_120_VALUE,
NULL
};
@@ -6860,8 +6837,7 @@ static const AsterixField I008_120 = { FIXED, 2, 0, 0, &hf_008_120, I008_120_PAR
static int hf_008_SP;
static const AsterixField I008_SP = { EXP, 0, 0, 1, &hf_008_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I008_V1_3_uap[] = {
+static const AsterixField * const I008_V1_3_uap[] = {
&I008_V1_3_010,
&I008_V1_3_000,
&I008_V1_3_020,
@@ -6877,14 +6853,12 @@ static const AsterixField *I008_V1_3_uap[] = {
&I008_V1_3_SP,
NULL
};
-static const AsterixField **I008_V1_3[] = {
+static const AsterixField * const * const I008_V1_3[] = {
I008_V1_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I008_uap[] = {
+static const AsterixField * const I008_uap[] = {
&I008_010,
&I008_000,
&I008_020,
@@ -6900,11 +6874,10 @@ static const AsterixField *I008_uap[] = {
&I008_SP,
NULL
};
-static const AsterixField **I008[] = {
+static const AsterixField * const * const I008[] = {
I008_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 009, edition 2.1 */
static int hf_009_V2_1_000;
@@ -6917,7 +6890,7 @@ static const value_string valstr_009_V2_1_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I009_V2_1_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_009_V2_1_000_VALUE, NULL };
-static const FieldPart *I009_V2_1_000_PARTS[] = {
+static const FieldPart * const I009_V2_1_000_PARTS[] = {
&I009_V2_1_000_VALUE,
NULL
};
@@ -6927,7 +6900,7 @@ static int hf_009_V2_1_010_SAC;
static const FieldPart I009_V2_1_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_009_V2_1_010_SAC, NULL };
static int hf_009_V2_1_010_SIC;
static const FieldPart I009_V2_1_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_009_V2_1_010_SIC, NULL };
-static const FieldPart *I009_V2_1_010_PARTS[] = {
+static const FieldPart * const I009_V2_1_010_PARTS[] = {
&I009_V2_1_010_SAC,
&I009_V2_1_010_SIC,
NULL
@@ -6956,7 +6929,7 @@ static const value_string valstr_009_V2_1_020_S[] = {
{ 0, NULL }
};
static const FieldPart I009_V2_1_020_S = { 3, 1.0, FIELD_PART_UINT, &hf_009_V2_1_020_S, NULL };
-static const FieldPart *I009_V2_1_020_PARTS[] = {
+static const FieldPart * const I009_V2_1_020_PARTS[] = {
&I009_V2_1_020_ORG,
&I009_V2_1_020_I,
&I009_V2_1_020_S,
@@ -6971,7 +6944,7 @@ static int hf_009_V2_1_030_Y;
static const FieldPart I009_V2_1_030_Y = { 16, 0.015625, FIELD_PART_FLOAT, &hf_009_V2_1_030_Y, NULL };
static int hf_009_V2_1_030_L;
static const FieldPart I009_V2_1_030_L = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_009_V2_1_030_L, NULL };
-static const FieldPart *I009_V2_1_030_PARTS[] = {
+static const FieldPart * const I009_V2_1_030_PARTS[] = {
&I009_V2_1_030_X,
&I009_V2_1_030_Y,
&I009_V2_1_030_L,
@@ -6981,7 +6954,7 @@ static const AsterixField I009_V2_1_030 = { REPETITIVE, 6, 1, 0, &hf_009_V2_1_03
static int hf_009_V2_1_060;
static int hf_009_V2_1_060_SN;
static const FieldPart I009_V2_1_060_SN = { 6, 1.0, FIELD_PART_UINT, &hf_009_V2_1_060_SN, NULL };
-static const FieldPart *I009_V2_1_060_PARTS[] = {
+static const FieldPart * const I009_V2_1_060_PARTS[] = {
&I009_V2_1_060_SN,
&IXXX_1bit_spare,
&IXXX_FX,
@@ -6991,7 +6964,7 @@ static const AsterixField I009_V2_1_060 = { FX, 1, 0, 0, &hf_009_V2_1_060, I009_
static int hf_009_V2_1_070;
static int hf_009_V2_1_070_VALUE;
static const FieldPart I009_V2_1_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_009_V2_1_070_VALUE, NULL };
-static const FieldPart *I009_V2_1_070_PARTS[] = {
+static const FieldPart * const I009_V2_1_070_PARTS[] = {
&I009_V2_1_070_VALUE,
NULL
};
@@ -7003,7 +6976,7 @@ static int hf_009_V2_1_080_R;
static const FieldPart I009_V2_1_080_R = { 3, 1.0, FIELD_PART_HEX, &hf_009_V2_1_080_R, NULL };
static int hf_009_V2_1_080_Q;
static const FieldPart I009_V2_1_080_Q = { 15, 1.0, FIELD_PART_HEX, &hf_009_V2_1_080_Q, NULL };
-static const FieldPart *I009_V2_1_080_PARTS[] = {
+static const FieldPart * const I009_V2_1_080_PARTS[] = {
&I009_V2_1_080_F,
&I009_V2_1_080_R,
&I009_V2_1_080_Q,
@@ -7022,7 +6995,7 @@ static int hf_009_V2_1_090_WO;
static const FieldPart I009_V2_1_090_WO = { 1, 1.0, FIELD_PART_HEX, &hf_009_V2_1_090_WO, NULL };
static int hf_009_V2_1_090_R;
static const FieldPart I009_V2_1_090_R = { 3, 1.0, FIELD_PART_HEX, &hf_009_V2_1_090_R, NULL };
-static const FieldPart *I009_V2_1_090_PARTS[] = {
+static const FieldPart * const I009_V2_1_090_PARTS[] = {
&I009_V2_1_090_SAC,
&I009_V2_1_090_SIC,
&IXXX_3bit_spare,
@@ -7035,7 +7008,7 @@ static const AsterixField I009_V2_1_090 = { REPETITIVE, 3, 1, 0, &hf_009_V2_1_09
static int hf_009_V2_1_100;
static int hf_009_V2_1_100_VALUE;
static const FieldPart I009_V2_1_100_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_009_V2_1_100_VALUE, NULL };
-static const FieldPart *I009_V2_1_100_PARTS[] = {
+static const FieldPart * const I009_V2_1_100_PARTS[] = {
&I009_V2_1_100_VALUE,
NULL
};
@@ -7052,7 +7025,7 @@ static const value_string valstr_009_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I009_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_009_000_VALUE, NULL };
-static const FieldPart *I009_000_PARTS[] = {
+static const FieldPart * const I009_000_PARTS[] = {
&I009_000_VALUE,
NULL
};
@@ -7062,7 +7035,7 @@ static int hf_009_010_SAC;
static const FieldPart I009_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_009_010_SAC, NULL };
static int hf_009_010_SIC;
static const FieldPart I009_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_009_010_SIC, NULL };
-static const FieldPart *I009_010_PARTS[] = {
+static const FieldPart * const I009_010_PARTS[] = {
&I009_010_SAC,
&I009_010_SIC,
NULL
@@ -7091,7 +7064,7 @@ static const value_string valstr_009_020_S[] = {
{ 0, NULL }
};
static const FieldPart I009_020_S = { 3, 1.0, FIELD_PART_UINT, &hf_009_020_S, NULL };
-static const FieldPart *I009_020_PARTS[] = {
+static const FieldPart * const I009_020_PARTS[] = {
&I009_020_ORG,
&I009_020_I,
&I009_020_S,
@@ -7106,7 +7079,7 @@ static int hf_009_030_Y;
static const FieldPart I009_030_Y = { 16, 0.015625, FIELD_PART_FLOAT, &hf_009_030_Y, NULL };
static int hf_009_030_L;
static const FieldPart I009_030_L = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_009_030_L, NULL };
-static const FieldPart *I009_030_PARTS[] = {
+static const FieldPart * const I009_030_PARTS[] = {
&I009_030_X,
&I009_030_Y,
&I009_030_L,
@@ -7116,7 +7089,7 @@ static const AsterixField I009_030 = { REPETITIVE, 6, 1, 0, &hf_009_030, I009_03
static int hf_009_060;
static int hf_009_060_SN;
static const FieldPart I009_060_SN = { 6, 1.0, FIELD_PART_UINT, &hf_009_060_SN, NULL };
-static const FieldPart *I009_060_PARTS[] = {
+static const FieldPart * const I009_060_PARTS[] = {
&I009_060_SN,
&IXXX_1bit_spare,
&IXXX_FX,
@@ -7126,7 +7099,7 @@ static const AsterixField I009_060 = { FX, 1, 0, 0, &hf_009_060, I009_060_PARTS,
static int hf_009_070;
static int hf_009_070_VALUE;
static const FieldPart I009_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_009_070_VALUE, NULL };
-static const FieldPart *I009_070_PARTS[] = {
+static const FieldPart * const I009_070_PARTS[] = {
&I009_070_VALUE,
NULL
};
@@ -7138,7 +7111,7 @@ static int hf_009_080_R;
static const FieldPart I009_080_R = { 3, 1.0, FIELD_PART_HEX, &hf_009_080_R, NULL };
static int hf_009_080_Q;
static const FieldPart I009_080_Q = { 15, 1.0, FIELD_PART_HEX, &hf_009_080_Q, NULL };
-static const FieldPart *I009_080_PARTS[] = {
+static const FieldPart * const I009_080_PARTS[] = {
&I009_080_F,
&I009_080_R,
&I009_080_Q,
@@ -7157,7 +7130,7 @@ static int hf_009_090_WO;
static const FieldPart I009_090_WO = { 1, 1.0, FIELD_PART_HEX, &hf_009_090_WO, NULL };
static int hf_009_090_R;
static const FieldPart I009_090_R = { 3, 1.0, FIELD_PART_HEX, &hf_009_090_R, NULL };
-static const FieldPart *I009_090_PARTS[] = {
+static const FieldPart * const I009_090_PARTS[] = {
&I009_090_SAC,
&I009_090_SIC,
&IXXX_3bit_spare,
@@ -7170,14 +7143,13 @@ static const AsterixField I009_090 = { REPETITIVE, 3, 1, 0, &hf_009_090, I009_09
static int hf_009_100;
static int hf_009_100_VALUE;
static const FieldPart I009_100_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_009_100_VALUE, NULL };
-static const FieldPart *I009_100_PARTS[] = {
+static const FieldPart * const I009_100_PARTS[] = {
&I009_100_VALUE,
NULL
};
static const AsterixField I009_100 = { FIXED, 2, 0, 0, &hf_009_100, I009_100_PARTS, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I009_V2_1_uap[] = {
+static const AsterixField * const I009_V2_1_uap[] = {
&I009_V2_1_010,
&I009_V2_1_000,
&I009_V2_1_020,
@@ -7189,14 +7161,12 @@ static const AsterixField *I009_V2_1_uap[] = {
&I009_V2_1_100,
NULL
};
-static const AsterixField **I009_V2_1[] = {
+static const AsterixField * const * const I009_V2_1[] = {
I009_V2_1_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I009_uap[] = {
+static const AsterixField * const I009_uap[] = {
&I009_010,
&I009_000,
&I009_020,
@@ -7208,11 +7178,10 @@ static const AsterixField *I009_uap[] = {
&I009_100,
NULL
};
-static const AsterixField **I009[] = {
+static const AsterixField * const * const I009[] = {
I009_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 010, edition 1.1 */
static int hf_010_V1_1_000;
@@ -7225,7 +7194,7 @@ static const value_string valstr_010_V1_1_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I010_V1_1_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_010_V1_1_000_VALUE, NULL };
-static const FieldPart *I010_V1_1_000_PARTS[] = {
+static const FieldPart * const I010_V1_1_000_PARTS[] = {
&I010_V1_1_000_VALUE,
NULL
};
@@ -7235,7 +7204,7 @@ static int hf_010_V1_1_010_SAC;
static const FieldPart I010_V1_1_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_010_V1_1_010_SAC, NULL };
static int hf_010_V1_1_010_SIC;
static const FieldPart I010_V1_1_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_010_V1_1_010_SIC, NULL };
-static const FieldPart *I010_V1_1_010_PARTS[] = {
+static const FieldPart * const I010_V1_1_010_PARTS[] = {
&I010_V1_1_010_SAC,
&I010_V1_1_010_SIC,
NULL
@@ -7328,7 +7297,7 @@ static const value_string valstr_010_V1_1_020_SPI[] = {
{ 0, NULL }
};
static const FieldPart I010_V1_1_020_SPI = { 1, 1.0, FIELD_PART_UINT, &hf_010_V1_1_020_SPI, NULL };
-static const FieldPart *I010_V1_1_020_PARTS[] = {
+static const FieldPart * const I010_V1_1_020_PARTS[] = {
&I010_V1_1_020_TYP,
&I010_V1_1_020_DCR,
&I010_V1_1_020_CHN,
@@ -7352,7 +7321,7 @@ static int hf_010_V1_1_040_RHO;
static const FieldPart I010_V1_1_040_RHO = { 16, 1.0, FIELD_PART_UFLOAT, &hf_010_V1_1_040_RHO, NULL };
static int hf_010_V1_1_040_TH;
static const FieldPart I010_V1_1_040_TH = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_010_V1_1_040_TH, NULL };
-static const FieldPart *I010_V1_1_040_PARTS[] = {
+static const FieldPart * const I010_V1_1_040_PARTS[] = {
&I010_V1_1_040_RHO,
&I010_V1_1_040_TH,
NULL
@@ -7363,7 +7332,7 @@ static int hf_010_V1_1_041_LAT;
static const FieldPart I010_V1_1_041_LAT = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_010_V1_1_041_LAT, NULL };
static int hf_010_V1_1_041_LON;
static const FieldPart I010_V1_1_041_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_010_V1_1_041_LON, NULL };
-static const FieldPart *I010_V1_1_041_PARTS[] = {
+static const FieldPart * const I010_V1_1_041_PARTS[] = {
&I010_V1_1_041_LAT,
&I010_V1_1_041_LON,
NULL
@@ -7374,7 +7343,7 @@ static int hf_010_V1_1_042_X;
static const FieldPart I010_V1_1_042_X = { 16, 1.0, FIELD_PART_FLOAT, &hf_010_V1_1_042_X, NULL };
static int hf_010_V1_1_042_Y;
static const FieldPart I010_V1_1_042_Y = { 16, 1.0, FIELD_PART_FLOAT, &hf_010_V1_1_042_Y, NULL };
-static const FieldPart *I010_V1_1_042_PARTS[] = {
+static const FieldPart * const I010_V1_1_042_PARTS[] = {
&I010_V1_1_042_X,
&I010_V1_1_042_Y,
NULL
@@ -7404,7 +7373,7 @@ static const value_string valstr_010_V1_1_060_L[] = {
static const FieldPart I010_V1_1_060_L = { 1, 1.0, FIELD_PART_UINT, &hf_010_V1_1_060_L, NULL };
static int hf_010_V1_1_060_MODE3A;
static const FieldPart I010_V1_1_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_010_V1_1_060_MODE3A, NULL };
-static const FieldPart *I010_V1_1_060_PARTS[] = {
+static const FieldPart * const I010_V1_1_060_PARTS[] = {
&I010_V1_1_060_V,
&I010_V1_1_060_G,
&I010_V1_1_060_L,
@@ -7430,7 +7399,7 @@ static const value_string valstr_010_V1_1_090_G[] = {
static const FieldPart I010_V1_1_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_010_V1_1_090_G, NULL };
static int hf_010_V1_1_090_FL;
static const FieldPart I010_V1_1_090_FL = { 14, 0.25, FIELD_PART_FLOAT, &hf_010_V1_1_090_FL, NULL };
-static const FieldPart *I010_V1_1_090_PARTS[] = {
+static const FieldPart * const I010_V1_1_090_PARTS[] = {
&I010_V1_1_090_V,
&I010_V1_1_090_G,
&I010_V1_1_090_FL,
@@ -7440,7 +7409,7 @@ static const AsterixField I010_V1_1_090 = { FIXED, 2, 0, 0, &hf_010_V1_1_090, I0
static int hf_010_V1_1_091;
static int hf_010_V1_1_091_VALUE;
static const FieldPart I010_V1_1_091_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_010_V1_1_091_VALUE, NULL };
-static const FieldPart *I010_V1_1_091_PARTS[] = {
+static const FieldPart * const I010_V1_1_091_PARTS[] = {
&I010_V1_1_091_VALUE,
NULL
};
@@ -7448,7 +7417,7 @@ static const AsterixField I010_V1_1_091 = { FIXED, 2, 0, 0, &hf_010_V1_1_091, I0
static int hf_010_V1_1_131;
static int hf_010_V1_1_131_VALUE;
static const FieldPart I010_V1_1_131_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_010_V1_1_131_VALUE, NULL };
-static const FieldPart *I010_V1_1_131_PARTS[] = {
+static const FieldPart * const I010_V1_1_131_PARTS[] = {
&I010_V1_1_131_VALUE,
NULL
};
@@ -7456,7 +7425,7 @@ static const AsterixField I010_V1_1_131 = { FIXED, 1, 0, 0, &hf_010_V1_1_131, I0
static int hf_010_V1_1_140;
static int hf_010_V1_1_140_VALUE;
static const FieldPart I010_V1_1_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_010_V1_1_140_VALUE, NULL };
-static const FieldPart *I010_V1_1_140_PARTS[] = {
+static const FieldPart * const I010_V1_1_140_PARTS[] = {
&I010_V1_1_140_VALUE,
NULL
};
@@ -7464,7 +7433,7 @@ static const AsterixField I010_V1_1_140 = { FIXED, 3, 0, 0, &hf_010_V1_1_140, I0
static int hf_010_V1_1_161;
static int hf_010_V1_1_161_TRK;
static const FieldPart I010_V1_1_161_TRK = { 12, 1.0, FIELD_PART_HEX, &hf_010_V1_1_161_TRK, NULL };
-static const FieldPart *I010_V1_1_161_PARTS[] = {
+static const FieldPart * const I010_V1_1_161_PARTS[] = {
&IXXX_4bit_spare,
&I010_V1_1_161_TRK,
NULL
@@ -7552,7 +7521,7 @@ static const value_string valstr_010_V1_1_170_GHO[] = {
{ 0, NULL }
};
static const FieldPart I010_V1_1_170_GHO = { 1, 1.0, FIELD_PART_UINT, &hf_010_V1_1_170_GHO, NULL };
-static const FieldPart *I010_V1_1_170_PARTS[] = {
+static const FieldPart * const I010_V1_1_170_PARTS[] = {
&I010_V1_1_170_CNF,
&I010_V1_1_170_TRE,
&I010_V1_1_170_CST,
@@ -7575,7 +7544,7 @@ static int hf_010_V1_1_200_GSP;
static const FieldPart I010_V1_1_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_010_V1_1_200_GSP, NULL };
static int hf_010_V1_1_200_TRA;
static const FieldPart I010_V1_1_200_TRA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_010_V1_1_200_TRA, NULL };
-static const FieldPart *I010_V1_1_200_PARTS[] = {
+static const FieldPart * const I010_V1_1_200_PARTS[] = {
&I010_V1_1_200_GSP,
&I010_V1_1_200_TRA,
NULL
@@ -7586,7 +7555,7 @@ static int hf_010_V1_1_202_VX;
static const FieldPart I010_V1_1_202_VX = { 16, 0.0625, FIELD_PART_FLOAT, &hf_010_V1_1_202_VX, NULL };
static int hf_010_V1_1_202_VY;
static const FieldPart I010_V1_1_202_VY = { 16, 0.0625, FIELD_PART_FLOAT, &hf_010_V1_1_202_VY, NULL };
-static const FieldPart *I010_V1_1_202_PARTS[] = {
+static const FieldPart * const I010_V1_1_202_PARTS[] = {
&I010_V1_1_202_VX,
&I010_V1_1_202_VY,
NULL
@@ -7597,7 +7566,7 @@ static int hf_010_V1_1_210_AX;
static const FieldPart I010_V1_1_210_AX = { 8, 0.0625, FIELD_PART_FLOAT, &hf_010_V1_1_210_AX, NULL };
static int hf_010_V1_1_210_AY;
static const FieldPart I010_V1_1_210_AY = { 8, 0.0625, FIELD_PART_FLOAT, &hf_010_V1_1_210_AY, NULL };
-static const FieldPart *I010_V1_1_210_PARTS[] = {
+static const FieldPart * const I010_V1_1_210_PARTS[] = {
&I010_V1_1_210_AX,
&I010_V1_1_210_AY,
NULL
@@ -7606,7 +7575,7 @@ static const AsterixField I010_V1_1_210 = { FIXED, 2, 0, 0, &hf_010_V1_1_210, I0
static int hf_010_V1_1_220;
static int hf_010_V1_1_220_VALUE;
static const FieldPart I010_V1_1_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_010_V1_1_220_VALUE, NULL };
-static const FieldPart *I010_V1_1_220_PARTS[] = {
+static const FieldPart * const I010_V1_1_220_PARTS[] = {
&I010_V1_1_220_VALUE,
NULL
};
@@ -7622,7 +7591,7 @@ static const value_string valstr_010_V1_1_245_STI[] = {
static const FieldPart I010_V1_1_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_010_V1_1_245_STI, NULL };
static int hf_010_V1_1_245_CHR;
static const FieldPart I010_V1_1_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_010_V1_1_245_CHR, NULL };
-static const FieldPart *I010_V1_1_245_PARTS[] = {
+static const FieldPart * const I010_V1_1_245_PARTS[] = {
&I010_V1_1_245_STI,
&IXXX_6bit_spare,
&I010_V1_1_245_CHR,
@@ -7636,7 +7605,7 @@ static int hf_010_V1_1_250_BDS1;
static const FieldPart I010_V1_1_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_010_V1_1_250_BDS1, NULL };
static int hf_010_V1_1_250_BDS2;
static const FieldPart I010_V1_1_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_010_V1_1_250_BDS2, NULL };
-static const FieldPart *I010_V1_1_250_PARTS[] = {
+static const FieldPart * const I010_V1_1_250_PARTS[] = {
&I010_V1_1_250_MBDATA,
&I010_V1_1_250_BDS1,
&I010_V1_1_250_BDS2,
@@ -7650,7 +7619,7 @@ static int hf_010_V1_1_270_ORIENTATION;
static const FieldPart I010_V1_1_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_010_V1_1_270_ORIENTATION, NULL };
static int hf_010_V1_1_270_WIDTH;
static const FieldPart I010_V1_1_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_010_V1_1_270_WIDTH, NULL };
-static const FieldPart *I010_V1_1_270_PARTS[] = {
+static const FieldPart * const I010_V1_1_270_PARTS[] = {
&I010_V1_1_270_LENGTH,
&IXXX_FX,
&I010_V1_1_270_ORIENTATION,
@@ -7665,7 +7634,7 @@ static int hf_010_V1_1_280_DRHO;
static const FieldPart I010_V1_1_280_DRHO = { 8, 1.0, FIELD_PART_FLOAT, &hf_010_V1_1_280_DRHO, NULL };
static int hf_010_V1_1_280_DTHETA;
static const FieldPart I010_V1_1_280_DTHETA = { 8, 0.15, FIELD_PART_FLOAT, &hf_010_V1_1_280_DTHETA, NULL };
-static const FieldPart *I010_V1_1_280_PARTS[] = {
+static const FieldPart * const I010_V1_1_280_PARTS[] = {
&I010_V1_1_280_DRHO,
&I010_V1_1_280_DTHETA,
NULL
@@ -7694,7 +7663,7 @@ static const value_string valstr_010_V1_1_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I010_V1_1_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_010_V1_1_300_VALUE, NULL };
-static const FieldPart *I010_V1_1_300_PARTS[] = {
+static const FieldPart * const I010_V1_1_300_PARTS[] = {
&I010_V1_1_300_VALUE,
NULL
};
@@ -7717,7 +7686,7 @@ static const value_string valstr_010_V1_1_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I010_V1_1_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_010_V1_1_310_MSG, NULL };
-static const FieldPart *I010_V1_1_310_PARTS[] = {
+static const FieldPart * const I010_V1_1_310_PARTS[] = {
&I010_V1_1_310_TRB,
&I010_V1_1_310_MSG,
NULL
@@ -7730,7 +7699,7 @@ static int hf_010_V1_1_500_DEVY;
static const FieldPart I010_V1_1_500_DEVY = { 8, 0.25, FIELD_PART_UFLOAT, &hf_010_V1_1_500_DEVY, NULL };
static int hf_010_V1_1_500_COVXY;
static const FieldPart I010_V1_1_500_COVXY = { 16, 0.25, FIELD_PART_FLOAT, &hf_010_V1_1_500_COVXY, NULL };
-static const FieldPart *I010_V1_1_500_PARTS[] = {
+static const FieldPart * const I010_V1_1_500_PARTS[] = {
&I010_V1_1_500_DEVX,
&I010_V1_1_500_DEVY,
&I010_V1_1_500_COVXY,
@@ -7774,7 +7743,7 @@ static const value_string valstr_010_V1_1_550_TTF[] = {
{ 0, NULL }
};
static const FieldPart I010_V1_1_550_TTF = { 1, 1.0, FIELD_PART_UINT, &hf_010_V1_1_550_TTF, NULL };
-static const FieldPart *I010_V1_1_550_PARTS[] = {
+static const FieldPart * const I010_V1_1_550_PARTS[] = {
&I010_V1_1_550_NOGO,
&I010_V1_1_550_OVL,
&I010_V1_1_550_TSV,
@@ -7800,7 +7769,7 @@ static const value_string valstr_010_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I010_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_010_000_VALUE, NULL };
-static const FieldPart *I010_000_PARTS[] = {
+static const FieldPart * const I010_000_PARTS[] = {
&I010_000_VALUE,
NULL
};
@@ -7810,7 +7779,7 @@ static int hf_010_010_SAC;
static const FieldPart I010_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_010_010_SAC, NULL };
static int hf_010_010_SIC;
static const FieldPart I010_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_010_010_SIC, NULL };
-static const FieldPart *I010_010_PARTS[] = {
+static const FieldPart * const I010_010_PARTS[] = {
&I010_010_SAC,
&I010_010_SIC,
NULL
@@ -7903,7 +7872,7 @@ static const value_string valstr_010_020_SPI[] = {
{ 0, NULL }
};
static const FieldPart I010_020_SPI = { 1, 1.0, FIELD_PART_UINT, &hf_010_020_SPI, NULL };
-static const FieldPart *I010_020_PARTS[] = {
+static const FieldPart * const I010_020_PARTS[] = {
&I010_020_TYP,
&I010_020_DCR,
&I010_020_CHN,
@@ -7927,7 +7896,7 @@ static int hf_010_040_RHO;
static const FieldPart I010_040_RHO = { 16, 1.0, FIELD_PART_UFLOAT, &hf_010_040_RHO, NULL };
static int hf_010_040_TH;
static const FieldPart I010_040_TH = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_010_040_TH, NULL };
-static const FieldPart *I010_040_PARTS[] = {
+static const FieldPart * const I010_040_PARTS[] = {
&I010_040_RHO,
&I010_040_TH,
NULL
@@ -7938,7 +7907,7 @@ static int hf_010_041_LAT;
static const FieldPart I010_041_LAT = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_010_041_LAT, NULL };
static int hf_010_041_LON;
static const FieldPart I010_041_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_010_041_LON, NULL };
-static const FieldPart *I010_041_PARTS[] = {
+static const FieldPart * const I010_041_PARTS[] = {
&I010_041_LAT,
&I010_041_LON,
NULL
@@ -7949,7 +7918,7 @@ static int hf_010_042_X;
static const FieldPart I010_042_X = { 16, 1.0, FIELD_PART_FLOAT, &hf_010_042_X, NULL };
static int hf_010_042_Y;
static const FieldPart I010_042_Y = { 16, 1.0, FIELD_PART_FLOAT, &hf_010_042_Y, NULL };
-static const FieldPart *I010_042_PARTS[] = {
+static const FieldPart * const I010_042_PARTS[] = {
&I010_042_X,
&I010_042_Y,
NULL
@@ -7979,7 +7948,7 @@ static const value_string valstr_010_060_L[] = {
static const FieldPart I010_060_L = { 1, 1.0, FIELD_PART_UINT, &hf_010_060_L, NULL };
static int hf_010_060_MODE3A;
static const FieldPart I010_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_010_060_MODE3A, NULL };
-static const FieldPart *I010_060_PARTS[] = {
+static const FieldPart * const I010_060_PARTS[] = {
&I010_060_V,
&I010_060_G,
&I010_060_L,
@@ -8005,7 +7974,7 @@ static const value_string valstr_010_090_G[] = {
static const FieldPart I010_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_010_090_G, NULL };
static int hf_010_090_FL;
static const FieldPart I010_090_FL = { 14, 0.25, FIELD_PART_FLOAT, &hf_010_090_FL, NULL };
-static const FieldPart *I010_090_PARTS[] = {
+static const FieldPart * const I010_090_PARTS[] = {
&I010_090_V,
&I010_090_G,
&I010_090_FL,
@@ -8015,7 +7984,7 @@ static const AsterixField I010_090 = { FIXED, 2, 0, 0, &hf_010_090, I010_090_PAR
static int hf_010_091;
static int hf_010_091_VALUE;
static const FieldPart I010_091_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_010_091_VALUE, NULL };
-static const FieldPart *I010_091_PARTS[] = {
+static const FieldPart * const I010_091_PARTS[] = {
&I010_091_VALUE,
NULL
};
@@ -8023,7 +7992,7 @@ static const AsterixField I010_091 = { FIXED, 2, 0, 0, &hf_010_091, I010_091_PAR
static int hf_010_131;
static int hf_010_131_VALUE;
static const FieldPart I010_131_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_010_131_VALUE, NULL };
-static const FieldPart *I010_131_PARTS[] = {
+static const FieldPart * const I010_131_PARTS[] = {
&I010_131_VALUE,
NULL
};
@@ -8031,7 +8000,7 @@ static const AsterixField I010_131 = { FIXED, 1, 0, 0, &hf_010_131, I010_131_PAR
static int hf_010_140;
static int hf_010_140_VALUE;
static const FieldPart I010_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_010_140_VALUE, NULL };
-static const FieldPart *I010_140_PARTS[] = {
+static const FieldPart * const I010_140_PARTS[] = {
&I010_140_VALUE,
NULL
};
@@ -8039,7 +8008,7 @@ static const AsterixField I010_140 = { FIXED, 3, 0, 0, &hf_010_140, I010_140_PAR
static int hf_010_161;
static int hf_010_161_TRK;
static const FieldPart I010_161_TRK = { 12, 1.0, FIELD_PART_HEX, &hf_010_161_TRK, NULL };
-static const FieldPart *I010_161_PARTS[] = {
+static const FieldPart * const I010_161_PARTS[] = {
&IXXX_4bit_spare,
&I010_161_TRK,
NULL
@@ -8127,7 +8096,7 @@ static const value_string valstr_010_170_GHO[] = {
{ 0, NULL }
};
static const FieldPart I010_170_GHO = { 1, 1.0, FIELD_PART_UINT, &hf_010_170_GHO, NULL };
-static const FieldPart *I010_170_PARTS[] = {
+static const FieldPart * const I010_170_PARTS[] = {
&I010_170_CNF,
&I010_170_TRE,
&I010_170_CST,
@@ -8150,7 +8119,7 @@ static int hf_010_200_GSP;
static const FieldPart I010_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_010_200_GSP, NULL };
static int hf_010_200_TRA;
static const FieldPart I010_200_TRA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_010_200_TRA, NULL };
-static const FieldPart *I010_200_PARTS[] = {
+static const FieldPart * const I010_200_PARTS[] = {
&I010_200_GSP,
&I010_200_TRA,
NULL
@@ -8161,7 +8130,7 @@ static int hf_010_202_VX;
static const FieldPart I010_202_VX = { 16, 0.0625, FIELD_PART_FLOAT, &hf_010_202_VX, NULL };
static int hf_010_202_VY;
static const FieldPart I010_202_VY = { 16, 0.0625, FIELD_PART_FLOAT, &hf_010_202_VY, NULL };
-static const FieldPart *I010_202_PARTS[] = {
+static const FieldPart * const I010_202_PARTS[] = {
&I010_202_VX,
&I010_202_VY,
NULL
@@ -8172,7 +8141,7 @@ static int hf_010_210_AX;
static const FieldPart I010_210_AX = { 8, 0.0625, FIELD_PART_FLOAT, &hf_010_210_AX, NULL };
static int hf_010_210_AY;
static const FieldPart I010_210_AY = { 8, 0.0625, FIELD_PART_FLOAT, &hf_010_210_AY, NULL };
-static const FieldPart *I010_210_PARTS[] = {
+static const FieldPart * const I010_210_PARTS[] = {
&I010_210_AX,
&I010_210_AY,
NULL
@@ -8181,7 +8150,7 @@ static const AsterixField I010_210 = { FIXED, 2, 0, 0, &hf_010_210, I010_210_PAR
static int hf_010_220;
static int hf_010_220_VALUE;
static const FieldPart I010_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_010_220_VALUE, NULL };
-static const FieldPart *I010_220_PARTS[] = {
+static const FieldPart * const I010_220_PARTS[] = {
&I010_220_VALUE,
NULL
};
@@ -8197,7 +8166,7 @@ static const value_string valstr_010_245_STI[] = {
static const FieldPart I010_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_010_245_STI, NULL };
static int hf_010_245_CHR;
static const FieldPart I010_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_010_245_CHR, NULL };
-static const FieldPart *I010_245_PARTS[] = {
+static const FieldPart * const I010_245_PARTS[] = {
&I010_245_STI,
&IXXX_6bit_spare,
&I010_245_CHR,
@@ -8211,7 +8180,7 @@ static int hf_010_250_BDS1;
static const FieldPart I010_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_010_250_BDS1, NULL };
static int hf_010_250_BDS2;
static const FieldPart I010_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_010_250_BDS2, NULL };
-static const FieldPart *I010_250_PARTS[] = {
+static const FieldPart * const I010_250_PARTS[] = {
&I010_250_MBDATA,
&I010_250_BDS1,
&I010_250_BDS2,
@@ -8225,7 +8194,7 @@ static int hf_010_270_ORIENTATION;
static const FieldPart I010_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_010_270_ORIENTATION, NULL };
static int hf_010_270_WIDTH;
static const FieldPart I010_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_010_270_WIDTH, NULL };
-static const FieldPart *I010_270_PARTS[] = {
+static const FieldPart * const I010_270_PARTS[] = {
&I010_270_LENGTH,
&IXXX_FX,
&I010_270_ORIENTATION,
@@ -8240,7 +8209,7 @@ static int hf_010_280_DRHO;
static const FieldPart I010_280_DRHO = { 8, 1.0, FIELD_PART_FLOAT, &hf_010_280_DRHO, NULL };
static int hf_010_280_DTHETA;
static const FieldPart I010_280_DTHETA = { 8, 0.15, FIELD_PART_FLOAT, &hf_010_280_DTHETA, NULL };
-static const FieldPart *I010_280_PARTS[] = {
+static const FieldPart * const I010_280_PARTS[] = {
&I010_280_DRHO,
&I010_280_DTHETA,
NULL
@@ -8269,7 +8238,7 @@ static const value_string valstr_010_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I010_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_010_300_VALUE, NULL };
-static const FieldPart *I010_300_PARTS[] = {
+static const FieldPart * const I010_300_PARTS[] = {
&I010_300_VALUE,
NULL
};
@@ -8292,7 +8261,7 @@ static const value_string valstr_010_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I010_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_010_310_MSG, NULL };
-static const FieldPart *I010_310_PARTS[] = {
+static const FieldPart * const I010_310_PARTS[] = {
&I010_310_TRB,
&I010_310_MSG,
NULL
@@ -8305,7 +8274,7 @@ static int hf_010_500_DEVY;
static const FieldPart I010_500_DEVY = { 8, 0.25, FIELD_PART_UFLOAT, &hf_010_500_DEVY, NULL };
static int hf_010_500_COVXY;
static const FieldPart I010_500_COVXY = { 16, 0.25, FIELD_PART_FLOAT, &hf_010_500_COVXY, NULL };
-static const FieldPart *I010_500_PARTS[] = {
+static const FieldPart * const I010_500_PARTS[] = {
&I010_500_DEVX,
&I010_500_DEVY,
&I010_500_COVXY,
@@ -8349,7 +8318,7 @@ static const value_string valstr_010_550_TTF[] = {
{ 0, NULL }
};
static const FieldPart I010_550_TTF = { 1, 1.0, FIELD_PART_UINT, &hf_010_550_TTF, NULL };
-static const FieldPart *I010_550_PARTS[] = {
+static const FieldPart * const I010_550_PARTS[] = {
&I010_550_NOGO,
&I010_550_OVL,
&I010_550_TSV,
@@ -8364,8 +8333,7 @@ static const AsterixField I010_RE = { EXP, 0, 0, 1, &hf_010_RE, NULL, { NULL } }
static int hf_010_SP;
static const AsterixField I010_SP = { EXP, 0, 0, 1, &hf_010_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I010_V1_1_uap[] = {
+static const AsterixField * const I010_V1_1_uap[] = {
&I010_V1_1_010,
&I010_V1_1_000,
&I010_V1_1_020,
@@ -8396,14 +8364,12 @@ static const AsterixField *I010_V1_1_uap[] = {
&I010_V1_1_RE,
NULL
};
-static const AsterixField **I010_V1_1[] = {
+static const AsterixField * const * const I010_V1_1[] = {
I010_V1_1_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I010_uap[] = {
+static const AsterixField * const I010_uap[] = {
&I010_010,
&I010_000,
&I010_020,
@@ -8434,11 +8400,10 @@ static const AsterixField *I010_uap[] = {
&I010_RE,
NULL
};
-static const AsterixField **I010[] = {
+static const AsterixField * const * const I010[] = {
I010_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 011, edition 1.2 */
static int hf_011_V1_2_000;
@@ -8454,7 +8419,7 @@ static const value_string valstr_011_V1_2_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_2_000_VALUE, NULL };
-static const FieldPart *I011_V1_2_000_PARTS[] = {
+static const FieldPart * const I011_V1_2_000_PARTS[] = {
&I011_V1_2_000_VALUE,
NULL
};
@@ -8464,7 +8429,7 @@ static int hf_011_V1_2_010_SAC;
static const FieldPart I011_V1_2_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_010_SAC, NULL };
static int hf_011_V1_2_010_SIC;
static const FieldPart I011_V1_2_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_010_SIC, NULL };
-static const FieldPart *I011_V1_2_010_PARTS[] = {
+static const FieldPart * const I011_V1_2_010_PARTS[] = {
&I011_V1_2_010_SAC,
&I011_V1_2_010_SIC,
NULL
@@ -8473,7 +8438,7 @@ static const AsterixField I011_V1_2_010 = { FIXED, 2, 0, 0, &hf_011_V1_2_010, I0
static int hf_011_V1_2_015;
static int hf_011_V1_2_015_VALUE;
static const FieldPart I011_V1_2_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_015_VALUE, NULL };
-static const FieldPart *I011_V1_2_015_PARTS[] = {
+static const FieldPart * const I011_V1_2_015_PARTS[] = {
&I011_V1_2_015_VALUE,
NULL
};
@@ -8483,7 +8448,7 @@ static int hf_011_V1_2_041_LAT;
static const FieldPart I011_V1_2_041_LAT = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_2_041_LAT, NULL };
static int hf_011_V1_2_041_LON;
static const FieldPart I011_V1_2_041_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_2_041_LON, NULL };
-static const FieldPart *I011_V1_2_041_PARTS[] = {
+static const FieldPart * const I011_V1_2_041_PARTS[] = {
&I011_V1_2_041_LAT,
&I011_V1_2_041_LON,
NULL
@@ -8494,7 +8459,7 @@ static int hf_011_V1_2_042_X;
static const FieldPart I011_V1_2_042_X = { 16, 1.0, FIELD_PART_FLOAT, &hf_011_V1_2_042_X, NULL };
static int hf_011_V1_2_042_Y;
static const FieldPart I011_V1_2_042_Y = { 16, 1.0, FIELD_PART_FLOAT, &hf_011_V1_2_042_Y, NULL };
-static const FieldPart *I011_V1_2_042_PARTS[] = {
+static const FieldPart * const I011_V1_2_042_PARTS[] = {
&I011_V1_2_042_X,
&I011_V1_2_042_Y,
NULL
@@ -8503,7 +8468,7 @@ static const AsterixField I011_V1_2_042 = { FIXED, 4, 0, 0, &hf_011_V1_2_042, I0
static int hf_011_V1_2_060;
static int hf_011_V1_2_060_MOD3A;
static const FieldPart I011_V1_2_060_MOD3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_011_V1_2_060_MOD3A, NULL };
-static const FieldPart *I011_V1_2_060_PARTS[] = {
+static const FieldPart * const I011_V1_2_060_PARTS[] = {
&IXXX_4bit_spare,
&I011_V1_2_060_MOD3A,
NULL
@@ -8512,7 +8477,7 @@ static const AsterixField I011_V1_2_060 = { FIXED, 2, 0, 0, &hf_011_V1_2_060, I0
static int hf_011_V1_2_090;
static int hf_011_V1_2_090_VALUE;
static const FieldPart I011_V1_2_090_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_V1_2_090_VALUE, NULL };
-static const FieldPart *I011_V1_2_090_PARTS[] = {
+static const FieldPart * const I011_V1_2_090_PARTS[] = {
&I011_V1_2_090_VALUE,
NULL
};
@@ -8520,7 +8485,7 @@ static const AsterixField I011_V1_2_090 = { FIXED, 2, 0, 0, &hf_011_V1_2_090, I0
static int hf_011_V1_2_092;
static int hf_011_V1_2_092_VALUE;
static const FieldPart I011_V1_2_092_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_011_V1_2_092_VALUE, NULL };
-static const FieldPart *I011_V1_2_092_PARTS[] = {
+static const FieldPart * const I011_V1_2_092_PARTS[] = {
&I011_V1_2_092_VALUE,
NULL
};
@@ -8535,7 +8500,7 @@ static const value_string valstr_011_V1_2_093_QNH[] = {
static const FieldPart I011_V1_2_093_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_2_093_QNH, NULL };
static int hf_011_V1_2_093_CTBA;
static const FieldPart I011_V1_2_093_CTBA = { 15, 0.25, FIELD_PART_FLOAT, &hf_011_V1_2_093_CTBA, NULL };
-static const FieldPart *I011_V1_2_093_PARTS[] = {
+static const FieldPart * const I011_V1_2_093_PARTS[] = {
&I011_V1_2_093_QNH,
&I011_V1_2_093_CTBA,
NULL
@@ -8544,7 +8509,7 @@ static const AsterixField I011_V1_2_093 = { FIXED, 2, 0, 0, &hf_011_V1_2_093, I0
static int hf_011_V1_2_140;
static int hf_011_V1_2_140_VALUE;
static const FieldPart I011_V1_2_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_011_V1_2_140_VALUE, NULL };
-static const FieldPart *I011_V1_2_140_PARTS[] = {
+static const FieldPart * const I011_V1_2_140_PARTS[] = {
&I011_V1_2_140_VALUE,
NULL
};
@@ -8552,7 +8517,7 @@ static const AsterixField I011_V1_2_140 = { FIXED, 3, 0, 0, &hf_011_V1_2_140, I0
static int hf_011_V1_2_161;
static int hf_011_V1_2_161_FTN;
static const FieldPart I011_V1_2_161_FTN = { 15, 1.0, FIELD_PART_HEX, &hf_011_V1_2_161_FTN, NULL };
-static const FieldPart *I011_V1_2_161_PARTS[] = {
+static const FieldPart * const I011_V1_2_161_PARTS[] = {
&IXXX_1bit_spare,
&I011_V1_2_161_FTN,
NULL
@@ -8679,7 +8644,7 @@ static const value_string valstr_011_V1_2_170_AFF[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_170_AFF = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_2_170_AFF, NULL };
-static const FieldPart *I011_V1_2_170_PARTS[] = {
+static const FieldPart * const I011_V1_2_170_PARTS[] = {
&I011_V1_2_170_MON,
&I011_V1_2_170_GBS,
&I011_V1_2_170_MRH,
@@ -8708,7 +8673,7 @@ static int hf_011_V1_2_202_VX;
static const FieldPart I011_V1_2_202_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_V1_2_202_VX, NULL };
static int hf_011_V1_2_202_VY;
static const FieldPart I011_V1_2_202_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_V1_2_202_VY, NULL };
-static const FieldPart *I011_V1_2_202_PARTS[] = {
+static const FieldPart * const I011_V1_2_202_PARTS[] = {
&I011_V1_2_202_VX,
&I011_V1_2_202_VY,
NULL
@@ -8719,7 +8684,7 @@ static int hf_011_V1_2_210_AX;
static const FieldPart I011_V1_2_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_011_V1_2_210_AX, NULL };
static int hf_011_V1_2_210_AY;
static const FieldPart I011_V1_2_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_011_V1_2_210_AY, NULL };
-static const FieldPart *I011_V1_2_210_PARTS[] = {
+static const FieldPart * const I011_V1_2_210_PARTS[] = {
&I011_V1_2_210_AX,
&I011_V1_2_210_AY,
NULL
@@ -8728,7 +8693,7 @@ static const AsterixField I011_V1_2_210 = { FIXED, 2, 0, 0, &hf_011_V1_2_210, I0
static int hf_011_V1_2_215;
static int hf_011_V1_2_215_VALUE;
static const FieldPart I011_V1_2_215_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_011_V1_2_215_VALUE, NULL };
-static const FieldPart *I011_V1_2_215_PARTS[] = {
+static const FieldPart * const I011_V1_2_215_PARTS[] = {
&I011_V1_2_215_VALUE,
NULL
};
@@ -8744,7 +8709,7 @@ static const value_string valstr_011_V1_2_245_STI[] = {
static const FieldPart I011_V1_2_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_011_V1_2_245_STI, NULL };
static int hf_011_V1_2_245_TID;
static const FieldPart I011_V1_2_245_TID = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_011_V1_2_245_TID, NULL };
-static const FieldPart *I011_V1_2_245_PARTS[] = {
+static const FieldPart * const I011_V1_2_245_PARTS[] = {
&I011_V1_2_245_STI,
&IXXX_6bit_spare,
&I011_V1_2_245_TID,
@@ -8758,7 +8723,7 @@ static int hf_011_V1_2_270_ORIENTATION;
static const FieldPart I011_V1_2_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_011_V1_2_270_ORIENTATION, NULL };
static int hf_011_V1_2_270_WIDTH;
static const FieldPart I011_V1_2_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_011_V1_2_270_WIDTH, NULL };
-static const FieldPart *I011_V1_2_270_PARTS[] = {
+static const FieldPart * const I011_V1_2_270_PARTS[] = {
&I011_V1_2_270_LENGTH,
&IXXX_FX,
&I011_V1_2_270_ORIENTATION,
@@ -8772,7 +8737,7 @@ static int hf_011_V1_2_290;
static int hf_011_V1_2_290_PSR;
static int hf_011_V1_2_290_PSR_VALUE;
static const FieldPart I011_V1_2_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_PSR_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_PSR_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_PSR_PARTS[] = {
&I011_V1_2_290_PSR_VALUE,
NULL
};
@@ -8780,7 +8745,7 @@ static const AsterixField I011_V1_2_290_PSR = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_SSR;
static int hf_011_V1_2_290_SSR_VALUE;
static const FieldPart I011_V1_2_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_SSR_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_SSR_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_SSR_PARTS[] = {
&I011_V1_2_290_SSR_VALUE,
NULL
};
@@ -8788,7 +8753,7 @@ static const AsterixField I011_V1_2_290_SSR = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_MDA;
static int hf_011_V1_2_290_MDA_VALUE;
static const FieldPart I011_V1_2_290_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_MDA_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_MDA_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_MDA_PARTS[] = {
&I011_V1_2_290_MDA_VALUE,
NULL
};
@@ -8796,7 +8761,7 @@ static const AsterixField I011_V1_2_290_MDA = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_MFL;
static int hf_011_V1_2_290_MFL_VALUE;
static const FieldPart I011_V1_2_290_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_MFL_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_MFL_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_MFL_PARTS[] = {
&I011_V1_2_290_MFL_VALUE,
NULL
};
@@ -8804,7 +8769,7 @@ static const AsterixField I011_V1_2_290_MFL = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_MDS;
static int hf_011_V1_2_290_MDS_VALUE;
static const FieldPart I011_V1_2_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_MDS_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_MDS_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_MDS_PARTS[] = {
&I011_V1_2_290_MDS_VALUE,
NULL
};
@@ -8812,7 +8777,7 @@ static const AsterixField I011_V1_2_290_MDS = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_ADS;
static int hf_011_V1_2_290_ADS_VALUE;
static const FieldPart I011_V1_2_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_ADS_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_ADS_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_ADS_PARTS[] = {
&I011_V1_2_290_ADS_VALUE,
NULL
};
@@ -8820,7 +8785,7 @@ static const AsterixField I011_V1_2_290_ADS = { FIXED, 2, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_ADB;
static int hf_011_V1_2_290_ADB_VALUE;
static const FieldPart I011_V1_2_290_ADB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_ADB_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_ADB_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_ADB_PARTS[] = {
&I011_V1_2_290_ADB_VALUE,
NULL
};
@@ -8828,7 +8793,7 @@ static const AsterixField I011_V1_2_290_ADB = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_MD1;
static int hf_011_V1_2_290_MD1_VALUE;
static const FieldPart I011_V1_2_290_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_MD1_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_MD1_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_MD1_PARTS[] = {
&I011_V1_2_290_MD1_VALUE,
NULL
};
@@ -8836,7 +8801,7 @@ static const AsterixField I011_V1_2_290_MD1 = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_MD2;
static int hf_011_V1_2_290_MD2_VALUE;
static const FieldPart I011_V1_2_290_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_MD2_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_MD2_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_MD2_PARTS[] = {
&I011_V1_2_290_MD2_VALUE,
NULL
};
@@ -8844,7 +8809,7 @@ static const AsterixField I011_V1_2_290_MD2 = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_LOP;
static int hf_011_V1_2_290_LOP_VALUE;
static const FieldPart I011_V1_2_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_LOP_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_LOP_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_LOP_PARTS[] = {
&I011_V1_2_290_LOP_VALUE,
NULL
};
@@ -8852,7 +8817,7 @@ static const AsterixField I011_V1_2_290_LOP = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_TRK;
static int hf_011_V1_2_290_TRK_VALUE;
static const FieldPart I011_V1_2_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_TRK_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_TRK_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_TRK_PARTS[] = {
&I011_V1_2_290_TRK_VALUE,
NULL
};
@@ -8860,7 +8825,7 @@ static const AsterixField I011_V1_2_290_TRK = { FIXED, 1, 0, 0, &hf_011_V1_2_290
static int hf_011_V1_2_290_MUL;
static int hf_011_V1_2_290_MUL_VALUE;
static const FieldPart I011_V1_2_290_MUL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_290_MUL_VALUE, NULL };
-static const FieldPart *I011_V1_2_290_MUL_PARTS[] = {
+static const FieldPart * const I011_V1_2_290_MUL_PARTS[] = {
&I011_V1_2_290_MUL_VALUE,
NULL
};
@@ -8889,7 +8854,7 @@ static const value_string valstr_011_V1_2_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_2_300_VALUE, NULL };
-static const FieldPart *I011_V1_2_300_PARTS[] = {
+static const FieldPart * const I011_V1_2_300_PARTS[] = {
&I011_V1_2_300_VALUE,
NULL
};
@@ -8912,7 +8877,7 @@ static const value_string valstr_011_V1_2_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_011_V1_2_310_MSG, NULL };
-static const FieldPart *I011_V1_2_310_PARTS[] = {
+static const FieldPart * const I011_V1_2_310_PARTS[] = {
&I011_V1_2_310_TRB,
&I011_V1_2_310_MSG,
NULL
@@ -8922,7 +8887,7 @@ static int hf_011_V1_2_380;
static int hf_011_V1_2_380_MB;
static int hf_011_V1_2_380_MB_VALUE;
static const FieldPart I011_V1_2_380_MB_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_011_V1_2_380_MB_VALUE, NULL };
-static const FieldPart *I011_V1_2_380_MB_PARTS[] = {
+static const FieldPart * const I011_V1_2_380_MB_PARTS[] = {
&I011_V1_2_380_MB_VALUE,
NULL
};
@@ -8930,7 +8895,7 @@ static const AsterixField I011_V1_2_380_MB = { REPETITIVE, 8, 1, 0, &hf_011_V1_2
static int hf_011_V1_2_380_ADR;
static int hf_011_V1_2_380_ADR_VALUE;
static const FieldPart I011_V1_2_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_011_V1_2_380_ADR_VALUE, NULL };
-static const FieldPart *I011_V1_2_380_ADR_PARTS[] = {
+static const FieldPart * const I011_V1_2_380_ADR_PARTS[] = {
&I011_V1_2_380_ADR_VALUE,
NULL
};
@@ -9011,7 +8976,7 @@ static const value_string valstr_011_V1_2_380_COMACAS_DC[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_380_COMACAS_DC = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_2_380_COMACAS_DC, NULL };
-static const FieldPart *I011_V1_2_380_COMACAS_PARTS[] = {
+static const FieldPart * const I011_V1_2_380_COMACAS_PARTS[] = {
&I011_V1_2_380_COMACAS_COM,
&I011_V1_2_380_COMACAS_STAT,
&IXXX_1bit_spare,
@@ -9030,7 +8995,7 @@ static const AsterixField I011_V1_2_380_COMACAS = { FIXED, 3, 0, 0, &hf_011_V1_2
static int hf_011_V1_2_380_ACT;
static int hf_011_V1_2_380_ACT_VALUE;
static const FieldPart I011_V1_2_380_ACT_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_2_380_ACT_VALUE, NULL };
-static const FieldPart *I011_V1_2_380_ACT_PARTS[] = {
+static const FieldPart * const I011_V1_2_380_ACT_PARTS[] = {
&I011_V1_2_380_ACT_VALUE,
NULL
};
@@ -9065,7 +9030,7 @@ static const value_string valstr_011_V1_2_380_ECAT_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_380_ECAT_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_2_380_ECAT_VALUE, NULL };
-static const FieldPart *I011_V1_2_380_ECAT_PARTS[] = {
+static const FieldPart * const I011_V1_2_380_ECAT_PARTS[] = {
&I011_V1_2_380_ECAT_VALUE,
NULL
};
@@ -9092,7 +9057,7 @@ static const value_string valstr_011_V1_2_380_AVTECH_UAT[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_380_AVTECH_UAT = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_2_380_AVTECH_UAT, NULL };
-static const FieldPart *I011_V1_2_380_AVTECH_PARTS[] = {
+static const FieldPart * const I011_V1_2_380_AVTECH_PARTS[] = {
&I011_V1_2_380_AVTECH_VDL,
&I011_V1_2_380_AVTECH_MDS,
&I011_V1_2_380_AVTECH_UAT,
@@ -9107,7 +9072,7 @@ static int hf_011_V1_2_390_FPPSID_SAC;
static const FieldPart I011_V1_2_390_FPPSID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_390_FPPSID_SAC, NULL };
static int hf_011_V1_2_390_FPPSID_SIC;
static const FieldPart I011_V1_2_390_FPPSID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_390_FPPSID_SIC, NULL };
-static const FieldPart *I011_V1_2_390_FPPSID_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_FPPSID_PARTS[] = {
&I011_V1_2_390_FPPSID_SAC,
&I011_V1_2_390_FPPSID_SIC,
NULL
@@ -9116,7 +9081,7 @@ static const AsterixField I011_V1_2_390_FPPSID = { FIXED, 2, 0, 0, &hf_011_V1_2_
static int hf_011_V1_2_390_CSN;
static int hf_011_V1_2_390_CSN_VALUE;
static const FieldPart I011_V1_2_390_CSN_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_011_V1_2_390_CSN_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_CSN_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_CSN_PARTS[] = {
&I011_V1_2_390_CSN_VALUE,
NULL
};
@@ -9133,7 +9098,7 @@ static const value_string valstr_011_V1_2_390_IFPSFLIGHTID_TYP[] = {
static const FieldPart I011_V1_2_390_IFPSFLIGHTID_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_011_V1_2_390_IFPSFLIGHTID_TYP, NULL };
static int hf_011_V1_2_390_IFPSFLIGHTID_NBR;
static const FieldPart I011_V1_2_390_IFPSFLIGHTID_NBR = { 27, 1.0, FIELD_PART_HEX, &hf_011_V1_2_390_IFPSFLIGHTID_NBR, NULL };
-static const FieldPart *I011_V1_2_390_IFPSFLIGHTID_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_IFPSFLIGHTID_PARTS[] = {
&I011_V1_2_390_IFPSFLIGHTID_TYP,
&IXXX_3bit_spare,
&I011_V1_2_390_IFPSFLIGHTID_NBR,
@@ -9175,7 +9140,7 @@ static const value_string valstr_011_V1_2_390_FLIGHTCAT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_390_FLIGHTCAT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_2_390_FLIGHTCAT_HPR, NULL };
-static const FieldPart *I011_V1_2_390_FLIGHTCAT_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_FLIGHTCAT_PARTS[] = {
&I011_V1_2_390_FLIGHTCAT_GATOAT,
&I011_V1_2_390_FLIGHTCAT_FR1FR2,
&I011_V1_2_390_FLIGHTCAT_RVSM,
@@ -9187,7 +9152,7 @@ static const AsterixField I011_V1_2_390_FLIGHTCAT = { FIXED, 1, 0, 0, &hf_011_V1
static int hf_011_V1_2_390_TOA;
static int hf_011_V1_2_390_TOA_VALUE;
static const FieldPart I011_V1_2_390_TOA_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_2_390_TOA_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_TOA_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_TOA_PARTS[] = {
&I011_V1_2_390_TOA_VALUE,
NULL
};
@@ -9202,7 +9167,7 @@ static const value_string valstr_011_V1_2_390_WTC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_390_WTC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_2_390_WTC_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_WTC_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_WTC_PARTS[] = {
&I011_V1_2_390_WTC_VALUE,
NULL
};
@@ -9210,7 +9175,7 @@ static const AsterixField I011_V1_2_390_WTC = { FIXED, 1, 0, 0, &hf_011_V1_2_390
static int hf_011_V1_2_390_ADEP;
static int hf_011_V1_2_390_ADEP_VALUE;
static const FieldPart I011_V1_2_390_ADEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_2_390_ADEP_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_ADEP_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_ADEP_PARTS[] = {
&I011_V1_2_390_ADEP_VALUE,
NULL
};
@@ -9218,7 +9183,7 @@ static const AsterixField I011_V1_2_390_ADEP = { FIXED, 4, 0, 0, &hf_011_V1_2_39
static int hf_011_V1_2_390_ADES;
static int hf_011_V1_2_390_ADES_VALUE;
static const FieldPart I011_V1_2_390_ADES_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_2_390_ADES_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_ADES_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_ADES_PARTS[] = {
&I011_V1_2_390_ADES_VALUE,
NULL
};
@@ -9226,7 +9191,7 @@ static const AsterixField I011_V1_2_390_ADES = { FIXED, 4, 0, 0, &hf_011_V1_2_39
static int hf_011_V1_2_390_RWY;
static int hf_011_V1_2_390_RWY_VALUE;
static const FieldPart I011_V1_2_390_RWY_VALUE = { 24, 1.0, FIELD_PART_ASCII, &hf_011_V1_2_390_RWY_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_RWY_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_RWY_PARTS[] = {
&I011_V1_2_390_RWY_VALUE,
NULL
};
@@ -9234,7 +9199,7 @@ static const AsterixField I011_V1_2_390_RWY = { FIXED, 3, 0, 0, &hf_011_V1_2_390
static int hf_011_V1_2_390_CFL;
static int hf_011_V1_2_390_CFL_VALUE;
static const FieldPart I011_V1_2_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_390_CFL_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_CFL_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_CFL_PARTS[] = {
&I011_V1_2_390_CFL_VALUE,
NULL
};
@@ -9244,7 +9209,7 @@ static int hf_011_V1_2_390_CCP_CENTRE;
static const FieldPart I011_V1_2_390_CCP_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_390_CCP_CENTRE, NULL };
static int hf_011_V1_2_390_CCP_POSITION;
static const FieldPart I011_V1_2_390_CCP_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_390_CCP_POSITION, NULL };
-static const FieldPart *I011_V1_2_390_CCP_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_CCP_PARTS[] = {
&I011_V1_2_390_CCP_CENTRE,
&I011_V1_2_390_CCP_POSITION,
NULL
@@ -9291,7 +9256,7 @@ static const value_string valstr_011_V1_2_390_TOD_AVS[] = {
static const FieldPart I011_V1_2_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_2_390_TOD_AVS, NULL };
static int hf_011_V1_2_390_TOD_SEC;
static const FieldPart I011_V1_2_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_011_V1_2_390_TOD_SEC, NULL };
-static const FieldPart *I011_V1_2_390_TOD_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_TOD_PARTS[] = {
&I011_V1_2_390_TOD_TYP,
&I011_V1_2_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -9307,7 +9272,7 @@ static const AsterixField I011_V1_2_390_TOD = { REPETITIVE, 4, 1, 0, &hf_011_V1_
static int hf_011_V1_2_390_AST;
static int hf_011_V1_2_390_AST_VALUE;
static const FieldPart I011_V1_2_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_011_V1_2_390_AST_VALUE, NULL };
-static const FieldPart *I011_V1_2_390_AST_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_AST_PARTS[] = {
&I011_V1_2_390_AST_VALUE,
NULL
};
@@ -9329,7 +9294,7 @@ static const value_string valstr_011_V1_2_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_011_V1_2_390_STS_AVL, NULL };
-static const FieldPart *I011_V1_2_390_STS_PARTS[] = {
+static const FieldPart * const I011_V1_2_390_STS_PARTS[] = {
&I011_V1_2_390_STS_EMP,
&I011_V1_2_390_STS_AVL,
&IXXX_4bit_spare,
@@ -9353,7 +9318,7 @@ static const value_string valstr_011_V1_2_430_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_430_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_2_430_VALUE, NULL };
-static const FieldPart *I011_V1_2_430_PARTS[] = {
+static const FieldPart * const I011_V1_2_430_PARTS[] = {
&I011_V1_2_430_VALUE,
NULL
};
@@ -9364,7 +9329,7 @@ static int hf_011_V1_2_500_APC_X;
static const FieldPart I011_V1_2_500_APC_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_500_APC_X, NULL };
static int hf_011_V1_2_500_APC_Y;
static const FieldPart I011_V1_2_500_APC_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_2_500_APC_Y, NULL };
-static const FieldPart *I011_V1_2_500_APC_PARTS[] = {
+static const FieldPart * const I011_V1_2_500_APC_PARTS[] = {
&I011_V1_2_500_APC_X,
&I011_V1_2_500_APC_Y,
NULL
@@ -9375,7 +9340,7 @@ static int hf_011_V1_2_500_APW_LAT;
static const FieldPart I011_V1_2_500_APW_LAT = { 16, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_2_500_APW_LAT, NULL };
static int hf_011_V1_2_500_APW_LON;
static const FieldPart I011_V1_2_500_APW_LON = { 16, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_2_500_APW_LON, NULL };
-static const FieldPart *I011_V1_2_500_APW_PARTS[] = {
+static const FieldPart * const I011_V1_2_500_APW_PARTS[] = {
&I011_V1_2_500_APW_LAT,
&I011_V1_2_500_APW_LON,
NULL
@@ -9384,7 +9349,7 @@ static const AsterixField I011_V1_2_500_APW = { FIXED, 4, 0, 0, &hf_011_V1_2_500
static int hf_011_V1_2_500_ATH;
static int hf_011_V1_2_500_ATH_VALUE;
static const FieldPart I011_V1_2_500_ATH_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_011_V1_2_500_ATH_VALUE, NULL };
-static const FieldPart *I011_V1_2_500_ATH_PARTS[] = {
+static const FieldPart * const I011_V1_2_500_ATH_PARTS[] = {
&I011_V1_2_500_ATH_VALUE,
NULL
};
@@ -9394,7 +9359,7 @@ static int hf_011_V1_2_500_AVC_X;
static const FieldPart I011_V1_2_500_AVC_X = { 8, 0.1, FIELD_PART_UFLOAT, &hf_011_V1_2_500_AVC_X, NULL };
static int hf_011_V1_2_500_AVC_Y;
static const FieldPart I011_V1_2_500_AVC_Y = { 8, 0.1, FIELD_PART_UFLOAT, &hf_011_V1_2_500_AVC_Y, NULL };
-static const FieldPart *I011_V1_2_500_AVC_PARTS[] = {
+static const FieldPart * const I011_V1_2_500_AVC_PARTS[] = {
&I011_V1_2_500_AVC_X,
&I011_V1_2_500_AVC_Y,
NULL
@@ -9403,7 +9368,7 @@ static const AsterixField I011_V1_2_500_AVC = { FIXED, 2, 0, 0, &hf_011_V1_2_500
static int hf_011_V1_2_500_ARC;
static int hf_011_V1_2_500_ARC_VALUE;
static const FieldPart I011_V1_2_500_ARC_VALUE = { 16, 0.1, FIELD_PART_FLOAT, &hf_011_V1_2_500_ARC_VALUE, NULL };
-static const FieldPart *I011_V1_2_500_ARC_PARTS[] = {
+static const FieldPart * const I011_V1_2_500_ARC_PARTS[] = {
&I011_V1_2_500_ARC_VALUE,
NULL
};
@@ -9413,7 +9378,7 @@ static int hf_011_V1_2_500_AAC_X;
static const FieldPart I011_V1_2_500_AAC_X = { 8, 0.01, FIELD_PART_UFLOAT, &hf_011_V1_2_500_AAC_X, NULL };
static int hf_011_V1_2_500_AAC_Y;
static const FieldPart I011_V1_2_500_AAC_Y = { 8, 0.01, FIELD_PART_UFLOAT, &hf_011_V1_2_500_AAC_Y, NULL };
-static const FieldPart *I011_V1_2_500_AAC_PARTS[] = {
+static const FieldPart * const I011_V1_2_500_AAC_PARTS[] = {
&I011_V1_2_500_AAC_X,
&I011_V1_2_500_AAC_Y,
NULL
@@ -9440,7 +9405,7 @@ static int hf_011_V1_2_600_AT;
static const FieldPart I011_V1_2_600_AT = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_600_AT, NULL };
static int hf_011_V1_2_600_AN;
static const FieldPart I011_V1_2_600_AN = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_2_600_AN, NULL };
-static const FieldPart *I011_V1_2_600_PARTS[] = {
+static const FieldPart * const I011_V1_2_600_PARTS[] = {
&I011_V1_2_600_ACK,
&I011_V1_2_600_SVR,
&IXXX_5bit_spare,
@@ -9452,7 +9417,7 @@ static const AsterixField I011_V1_2_600 = { FIXED, 3, 0, 0, &hf_011_V1_2_600, I0
static int hf_011_V1_2_605;
static int hf_011_V1_2_605_FTN;
static const FieldPart I011_V1_2_605_FTN = { 12, 1.0, FIELD_PART_HEX, &hf_011_V1_2_605_FTN, NULL };
-static const FieldPart *I011_V1_2_605_PARTS[] = {
+static const FieldPart * const I011_V1_2_605_PARTS[] = {
&IXXX_4bit_spare,
&I011_V1_2_605_FTN,
NULL
@@ -9545,7 +9510,7 @@ static const value_string valstr_011_V1_2_610_I12[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_2_610_I12 = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_2_610_I12, NULL };
-static const FieldPart *I011_V1_2_610_PARTS[] = {
+static const FieldPart * const I011_V1_2_610_PARTS[] = {
&I011_V1_2_610_BKN,
&I011_V1_2_610_I1,
&I011_V1_2_610_I2,
@@ -9567,8 +9532,7 @@ static const AsterixField I011_V1_2_SP = { EXP, 0, 0, 1, &hf_011_V1_2_SP, NULL,
static int hf_011_V1_2_RE;
static const AsterixField I011_V1_2_RE = { EXP, 0, 0, 1, &hf_011_V1_2_RE, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I011_V1_2_uap[] = {
+static const AsterixField * const I011_V1_2_uap[] = {
&I011_V1_2_010,
&I011_V1_2_000,
&I011_V1_2_015,
@@ -9600,11 +9564,10 @@ static const AsterixField *I011_V1_2_uap[] = {
&I011_V1_2_RE,
NULL
};
-static const AsterixField **I011_V1_2[] = {
+static const AsterixField * const * const I011_V1_2[] = {
I011_V1_2_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 011, edition 1.3 */
static int hf_011_V1_3_000;
@@ -9620,7 +9583,7 @@ static const value_string valstr_011_V1_3_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_3_000_VALUE, NULL };
-static const FieldPart *I011_V1_3_000_PARTS[] = {
+static const FieldPart * const I011_V1_3_000_PARTS[] = {
&I011_V1_3_000_VALUE,
NULL
};
@@ -9630,7 +9593,7 @@ static int hf_011_V1_3_010_SAC;
static const FieldPart I011_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_010_SAC, NULL };
static int hf_011_V1_3_010_SIC;
static const FieldPart I011_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_010_SIC, NULL };
-static const FieldPart *I011_V1_3_010_PARTS[] = {
+static const FieldPart * const I011_V1_3_010_PARTS[] = {
&I011_V1_3_010_SAC,
&I011_V1_3_010_SIC,
NULL
@@ -9639,7 +9602,7 @@ static const AsterixField I011_V1_3_010 = { FIXED, 2, 0, 0, &hf_011_V1_3_010, I0
static int hf_011_V1_3_015;
static int hf_011_V1_3_015_VALUE;
static const FieldPart I011_V1_3_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_015_VALUE, NULL };
-static const FieldPart *I011_V1_3_015_PARTS[] = {
+static const FieldPart * const I011_V1_3_015_PARTS[] = {
&I011_V1_3_015_VALUE,
NULL
};
@@ -9649,7 +9612,7 @@ static int hf_011_V1_3_041_LAT;
static const FieldPart I011_V1_3_041_LAT = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_3_041_LAT, NULL };
static int hf_011_V1_3_041_LON;
static const FieldPart I011_V1_3_041_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_3_041_LON, NULL };
-static const FieldPart *I011_V1_3_041_PARTS[] = {
+static const FieldPart * const I011_V1_3_041_PARTS[] = {
&I011_V1_3_041_LAT,
&I011_V1_3_041_LON,
NULL
@@ -9660,7 +9623,7 @@ static int hf_011_V1_3_042_X;
static const FieldPart I011_V1_3_042_X = { 16, 1.0, FIELD_PART_FLOAT, &hf_011_V1_3_042_X, NULL };
static int hf_011_V1_3_042_Y;
static const FieldPart I011_V1_3_042_Y = { 16, 1.0, FIELD_PART_FLOAT, &hf_011_V1_3_042_Y, NULL };
-static const FieldPart *I011_V1_3_042_PARTS[] = {
+static const FieldPart * const I011_V1_3_042_PARTS[] = {
&I011_V1_3_042_X,
&I011_V1_3_042_Y,
NULL
@@ -9669,7 +9632,7 @@ static const AsterixField I011_V1_3_042 = { FIXED, 4, 0, 0, &hf_011_V1_3_042, I0
static int hf_011_V1_3_060;
static int hf_011_V1_3_060_MOD3A;
static const FieldPart I011_V1_3_060_MOD3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_011_V1_3_060_MOD3A, NULL };
-static const FieldPart *I011_V1_3_060_PARTS[] = {
+static const FieldPart * const I011_V1_3_060_PARTS[] = {
&IXXX_4bit_spare,
&I011_V1_3_060_MOD3A,
NULL
@@ -9678,7 +9641,7 @@ static const AsterixField I011_V1_3_060 = { FIXED, 2, 0, 0, &hf_011_V1_3_060, I0
static int hf_011_V1_3_090;
static int hf_011_V1_3_090_VALUE;
static const FieldPart I011_V1_3_090_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_V1_3_090_VALUE, NULL };
-static const FieldPart *I011_V1_3_090_PARTS[] = {
+static const FieldPart * const I011_V1_3_090_PARTS[] = {
&I011_V1_3_090_VALUE,
NULL
};
@@ -9686,7 +9649,7 @@ static const AsterixField I011_V1_3_090 = { FIXED, 2, 0, 0, &hf_011_V1_3_090, I0
static int hf_011_V1_3_092;
static int hf_011_V1_3_092_VALUE;
static const FieldPart I011_V1_3_092_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_011_V1_3_092_VALUE, NULL };
-static const FieldPart *I011_V1_3_092_PARTS[] = {
+static const FieldPart * const I011_V1_3_092_PARTS[] = {
&I011_V1_3_092_VALUE,
NULL
};
@@ -9701,7 +9664,7 @@ static const value_string valstr_011_V1_3_093_QNH[] = {
static const FieldPart I011_V1_3_093_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_3_093_QNH, NULL };
static int hf_011_V1_3_093_CTBA;
static const FieldPart I011_V1_3_093_CTBA = { 15, 0.25, FIELD_PART_FLOAT, &hf_011_V1_3_093_CTBA, NULL };
-static const FieldPart *I011_V1_3_093_PARTS[] = {
+static const FieldPart * const I011_V1_3_093_PARTS[] = {
&I011_V1_3_093_QNH,
&I011_V1_3_093_CTBA,
NULL
@@ -9710,7 +9673,7 @@ static const AsterixField I011_V1_3_093 = { FIXED, 2, 0, 0, &hf_011_V1_3_093, I0
static int hf_011_V1_3_140;
static int hf_011_V1_3_140_VALUE;
static const FieldPart I011_V1_3_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_011_V1_3_140_VALUE, NULL };
-static const FieldPart *I011_V1_3_140_PARTS[] = {
+static const FieldPart * const I011_V1_3_140_PARTS[] = {
&I011_V1_3_140_VALUE,
NULL
};
@@ -9718,7 +9681,7 @@ static const AsterixField I011_V1_3_140 = { FIXED, 3, 0, 0, &hf_011_V1_3_140, I0
static int hf_011_V1_3_161;
static int hf_011_V1_3_161_FTN;
static const FieldPart I011_V1_3_161_FTN = { 15, 1.0, FIELD_PART_HEX, &hf_011_V1_3_161_FTN, NULL };
-static const FieldPart *I011_V1_3_161_PARTS[] = {
+static const FieldPart * const I011_V1_3_161_PARTS[] = {
&IXXX_1bit_spare,
&I011_V1_3_161_FTN,
NULL
@@ -9887,7 +9850,7 @@ static const value_string valstr_011_V1_3_170_AAC[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_170_AAC = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_3_170_AAC, NULL };
-static const FieldPart *I011_V1_3_170_PARTS[] = {
+static const FieldPart * const I011_V1_3_170_PARTS[] = {
&I011_V1_3_170_MON,
&I011_V1_3_170_GBS,
&I011_V1_3_170_MRH,
@@ -9924,7 +9887,7 @@ static int hf_011_V1_3_202_VX;
static const FieldPart I011_V1_3_202_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_V1_3_202_VX, NULL };
static int hf_011_V1_3_202_VY;
static const FieldPart I011_V1_3_202_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_V1_3_202_VY, NULL };
-static const FieldPart *I011_V1_3_202_PARTS[] = {
+static const FieldPart * const I011_V1_3_202_PARTS[] = {
&I011_V1_3_202_VX,
&I011_V1_3_202_VY,
NULL
@@ -9935,7 +9898,7 @@ static int hf_011_V1_3_210_AX;
static const FieldPart I011_V1_3_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_011_V1_3_210_AX, NULL };
static int hf_011_V1_3_210_AY;
static const FieldPart I011_V1_3_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_011_V1_3_210_AY, NULL };
-static const FieldPart *I011_V1_3_210_PARTS[] = {
+static const FieldPart * const I011_V1_3_210_PARTS[] = {
&I011_V1_3_210_AX,
&I011_V1_3_210_AY,
NULL
@@ -9944,7 +9907,7 @@ static const AsterixField I011_V1_3_210 = { FIXED, 2, 0, 0, &hf_011_V1_3_210, I0
static int hf_011_V1_3_215;
static int hf_011_V1_3_215_VALUE;
static const FieldPart I011_V1_3_215_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_011_V1_3_215_VALUE, NULL };
-static const FieldPart *I011_V1_3_215_PARTS[] = {
+static const FieldPart * const I011_V1_3_215_PARTS[] = {
&I011_V1_3_215_VALUE,
NULL
};
@@ -9960,7 +9923,7 @@ static const value_string valstr_011_V1_3_245_STI[] = {
static const FieldPart I011_V1_3_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_011_V1_3_245_STI, NULL };
static int hf_011_V1_3_245_TID;
static const FieldPart I011_V1_3_245_TID = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_011_V1_3_245_TID, NULL };
-static const FieldPart *I011_V1_3_245_PARTS[] = {
+static const FieldPart * const I011_V1_3_245_PARTS[] = {
&I011_V1_3_245_STI,
&IXXX_6bit_spare,
&I011_V1_3_245_TID,
@@ -9974,7 +9937,7 @@ static int hf_011_V1_3_270_ORIENTATION;
static const FieldPart I011_V1_3_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_011_V1_3_270_ORIENTATION, NULL };
static int hf_011_V1_3_270_WIDTH;
static const FieldPart I011_V1_3_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_011_V1_3_270_WIDTH, NULL };
-static const FieldPart *I011_V1_3_270_PARTS[] = {
+static const FieldPart * const I011_V1_3_270_PARTS[] = {
&I011_V1_3_270_LENGTH,
&IXXX_FX,
&I011_V1_3_270_ORIENTATION,
@@ -9988,7 +9951,7 @@ static int hf_011_V1_3_290;
static int hf_011_V1_3_290_PSR;
static int hf_011_V1_3_290_PSR_VALUE;
static const FieldPart I011_V1_3_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_PSR_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_PSR_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_PSR_PARTS[] = {
&I011_V1_3_290_PSR_VALUE,
NULL
};
@@ -9996,7 +9959,7 @@ static const AsterixField I011_V1_3_290_PSR = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_SSR;
static int hf_011_V1_3_290_SSR_VALUE;
static const FieldPart I011_V1_3_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_SSR_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_SSR_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_SSR_PARTS[] = {
&I011_V1_3_290_SSR_VALUE,
NULL
};
@@ -10004,7 +9967,7 @@ static const AsterixField I011_V1_3_290_SSR = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_MDA;
static int hf_011_V1_3_290_MDA_VALUE;
static const FieldPart I011_V1_3_290_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_MDA_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_MDA_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_MDA_PARTS[] = {
&I011_V1_3_290_MDA_VALUE,
NULL
};
@@ -10012,7 +9975,7 @@ static const AsterixField I011_V1_3_290_MDA = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_MFL;
static int hf_011_V1_3_290_MFL_VALUE;
static const FieldPart I011_V1_3_290_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_MFL_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_MFL_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_MFL_PARTS[] = {
&I011_V1_3_290_MFL_VALUE,
NULL
};
@@ -10020,7 +9983,7 @@ static const AsterixField I011_V1_3_290_MFL = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_MDS;
static int hf_011_V1_3_290_MDS_VALUE;
static const FieldPart I011_V1_3_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_MDS_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_MDS_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_MDS_PARTS[] = {
&I011_V1_3_290_MDS_VALUE,
NULL
};
@@ -10028,7 +9991,7 @@ static const AsterixField I011_V1_3_290_MDS = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_ADS;
static int hf_011_V1_3_290_ADS_VALUE;
static const FieldPart I011_V1_3_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_ADS_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_ADS_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_ADS_PARTS[] = {
&I011_V1_3_290_ADS_VALUE,
NULL
};
@@ -10036,7 +9999,7 @@ static const AsterixField I011_V1_3_290_ADS = { FIXED, 2, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_ADB;
static int hf_011_V1_3_290_ADB_VALUE;
static const FieldPart I011_V1_3_290_ADB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_ADB_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_ADB_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_ADB_PARTS[] = {
&I011_V1_3_290_ADB_VALUE,
NULL
};
@@ -10044,7 +10007,7 @@ static const AsterixField I011_V1_3_290_ADB = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_MD1;
static int hf_011_V1_3_290_MD1_VALUE;
static const FieldPart I011_V1_3_290_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_MD1_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_MD1_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_MD1_PARTS[] = {
&I011_V1_3_290_MD1_VALUE,
NULL
};
@@ -10052,7 +10015,7 @@ static const AsterixField I011_V1_3_290_MD1 = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_MD2;
static int hf_011_V1_3_290_MD2_VALUE;
static const FieldPart I011_V1_3_290_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_MD2_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_MD2_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_MD2_PARTS[] = {
&I011_V1_3_290_MD2_VALUE,
NULL
};
@@ -10060,7 +10023,7 @@ static const AsterixField I011_V1_3_290_MD2 = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_LOP;
static int hf_011_V1_3_290_LOP_VALUE;
static const FieldPart I011_V1_3_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_LOP_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_LOP_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_LOP_PARTS[] = {
&I011_V1_3_290_LOP_VALUE,
NULL
};
@@ -10068,7 +10031,7 @@ static const AsterixField I011_V1_3_290_LOP = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_TRK;
static int hf_011_V1_3_290_TRK_VALUE;
static const FieldPart I011_V1_3_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_TRK_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_TRK_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_TRK_PARTS[] = {
&I011_V1_3_290_TRK_VALUE,
NULL
};
@@ -10076,7 +10039,7 @@ static const AsterixField I011_V1_3_290_TRK = { FIXED, 1, 0, 0, &hf_011_V1_3_290
static int hf_011_V1_3_290_MUL;
static int hf_011_V1_3_290_MUL_VALUE;
static const FieldPart I011_V1_3_290_MUL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_290_MUL_VALUE, NULL };
-static const FieldPart *I011_V1_3_290_MUL_PARTS[] = {
+static const FieldPart * const I011_V1_3_290_MUL_PARTS[] = {
&I011_V1_3_290_MUL_VALUE,
NULL
};
@@ -10105,7 +10068,7 @@ static const value_string valstr_011_V1_3_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_3_300_VALUE, NULL };
-static const FieldPart *I011_V1_3_300_PARTS[] = {
+static const FieldPart * const I011_V1_3_300_PARTS[] = {
&I011_V1_3_300_VALUE,
NULL
};
@@ -10128,7 +10091,7 @@ static const value_string valstr_011_V1_3_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_011_V1_3_310_MSG, NULL };
-static const FieldPart *I011_V1_3_310_PARTS[] = {
+static const FieldPart * const I011_V1_3_310_PARTS[] = {
&I011_V1_3_310_TRB,
&I011_V1_3_310_MSG,
NULL
@@ -10138,7 +10101,7 @@ static int hf_011_V1_3_380;
static int hf_011_V1_3_380_MB;
static int hf_011_V1_3_380_MB_VALUE;
static const FieldPart I011_V1_3_380_MB_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_011_V1_3_380_MB_VALUE, NULL };
-static const FieldPart *I011_V1_3_380_MB_PARTS[] = {
+static const FieldPart * const I011_V1_3_380_MB_PARTS[] = {
&I011_V1_3_380_MB_VALUE,
NULL
};
@@ -10146,7 +10109,7 @@ static const AsterixField I011_V1_3_380_MB = { REPETITIVE, 8, 1, 0, &hf_011_V1_3
static int hf_011_V1_3_380_ADR;
static int hf_011_V1_3_380_ADR_VALUE;
static const FieldPart I011_V1_3_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_011_V1_3_380_ADR_VALUE, NULL };
-static const FieldPart *I011_V1_3_380_ADR_PARTS[] = {
+static const FieldPart * const I011_V1_3_380_ADR_PARTS[] = {
&I011_V1_3_380_ADR_VALUE,
NULL
};
@@ -10227,7 +10190,7 @@ static const value_string valstr_011_V1_3_380_COMACAS_DC[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_380_COMACAS_DC = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_3_380_COMACAS_DC, NULL };
-static const FieldPart *I011_V1_3_380_COMACAS_PARTS[] = {
+static const FieldPart * const I011_V1_3_380_COMACAS_PARTS[] = {
&I011_V1_3_380_COMACAS_COM,
&I011_V1_3_380_COMACAS_STAT,
&IXXX_1bit_spare,
@@ -10246,7 +10209,7 @@ static const AsterixField I011_V1_3_380_COMACAS = { FIXED, 3, 0, 0, &hf_011_V1_3
static int hf_011_V1_3_380_ACT;
static int hf_011_V1_3_380_ACT_VALUE;
static const FieldPart I011_V1_3_380_ACT_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_3_380_ACT_VALUE, NULL };
-static const FieldPart *I011_V1_3_380_ACT_PARTS[] = {
+static const FieldPart * const I011_V1_3_380_ACT_PARTS[] = {
&I011_V1_3_380_ACT_VALUE,
NULL
};
@@ -10281,7 +10244,7 @@ static const value_string valstr_011_V1_3_380_ECAT_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_380_ECAT_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_3_380_ECAT_VALUE, NULL };
-static const FieldPart *I011_V1_3_380_ECAT_PARTS[] = {
+static const FieldPart * const I011_V1_3_380_ECAT_PARTS[] = {
&I011_V1_3_380_ECAT_VALUE,
NULL
};
@@ -10308,7 +10271,7 @@ static const value_string valstr_011_V1_3_380_AVTECH_UAT[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_380_AVTECH_UAT = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_3_380_AVTECH_UAT, NULL };
-static const FieldPart *I011_V1_3_380_AVTECH_PARTS[] = {
+static const FieldPart * const I011_V1_3_380_AVTECH_PARTS[] = {
&I011_V1_3_380_AVTECH_VDL,
&I011_V1_3_380_AVTECH_MDS,
&I011_V1_3_380_AVTECH_UAT,
@@ -10323,7 +10286,7 @@ static int hf_011_V1_3_390_FPPSID_SAC;
static const FieldPart I011_V1_3_390_FPPSID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_390_FPPSID_SAC, NULL };
static int hf_011_V1_3_390_FPPSID_SIC;
static const FieldPart I011_V1_3_390_FPPSID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_390_FPPSID_SIC, NULL };
-static const FieldPart *I011_V1_3_390_FPPSID_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_FPPSID_PARTS[] = {
&I011_V1_3_390_FPPSID_SAC,
&I011_V1_3_390_FPPSID_SIC,
NULL
@@ -10332,7 +10295,7 @@ static const AsterixField I011_V1_3_390_FPPSID = { FIXED, 2, 0, 0, &hf_011_V1_3_
static int hf_011_V1_3_390_CSN;
static int hf_011_V1_3_390_CSN_VALUE;
static const FieldPart I011_V1_3_390_CSN_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_011_V1_3_390_CSN_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_CSN_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_CSN_PARTS[] = {
&I011_V1_3_390_CSN_VALUE,
NULL
};
@@ -10349,7 +10312,7 @@ static const value_string valstr_011_V1_3_390_IFPSFLIGHTID_TYP[] = {
static const FieldPart I011_V1_3_390_IFPSFLIGHTID_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_011_V1_3_390_IFPSFLIGHTID_TYP, NULL };
static int hf_011_V1_3_390_IFPSFLIGHTID_NBR;
static const FieldPart I011_V1_3_390_IFPSFLIGHTID_NBR = { 27, 1.0, FIELD_PART_HEX, &hf_011_V1_3_390_IFPSFLIGHTID_NBR, NULL };
-static const FieldPart *I011_V1_3_390_IFPSFLIGHTID_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_IFPSFLIGHTID_PARTS[] = {
&I011_V1_3_390_IFPSFLIGHTID_TYP,
&IXXX_3bit_spare,
&I011_V1_3_390_IFPSFLIGHTID_NBR,
@@ -10391,7 +10354,7 @@ static const value_string valstr_011_V1_3_390_FLIGHTCAT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_390_FLIGHTCAT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_3_390_FLIGHTCAT_HPR, NULL };
-static const FieldPart *I011_V1_3_390_FLIGHTCAT_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_FLIGHTCAT_PARTS[] = {
&I011_V1_3_390_FLIGHTCAT_GATOAT,
&I011_V1_3_390_FLIGHTCAT_FR1FR2,
&I011_V1_3_390_FLIGHTCAT_RVSM,
@@ -10403,7 +10366,7 @@ static const AsterixField I011_V1_3_390_FLIGHTCAT = { FIXED, 1, 0, 0, &hf_011_V1
static int hf_011_V1_3_390_TOA;
static int hf_011_V1_3_390_TOA_VALUE;
static const FieldPart I011_V1_3_390_TOA_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_3_390_TOA_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_TOA_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_TOA_PARTS[] = {
&I011_V1_3_390_TOA_VALUE,
NULL
};
@@ -10418,7 +10381,7 @@ static const value_string valstr_011_V1_3_390_WTC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_390_WTC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_3_390_WTC_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_WTC_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_WTC_PARTS[] = {
&I011_V1_3_390_WTC_VALUE,
NULL
};
@@ -10426,7 +10389,7 @@ static const AsterixField I011_V1_3_390_WTC = { FIXED, 1, 0, 0, &hf_011_V1_3_390
static int hf_011_V1_3_390_ADEP;
static int hf_011_V1_3_390_ADEP_VALUE;
static const FieldPart I011_V1_3_390_ADEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_3_390_ADEP_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_ADEP_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_ADEP_PARTS[] = {
&I011_V1_3_390_ADEP_VALUE,
NULL
};
@@ -10434,7 +10397,7 @@ static const AsterixField I011_V1_3_390_ADEP = { FIXED, 4, 0, 0, &hf_011_V1_3_39
static int hf_011_V1_3_390_ADES;
static int hf_011_V1_3_390_ADES_VALUE;
static const FieldPart I011_V1_3_390_ADES_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_V1_3_390_ADES_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_ADES_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_ADES_PARTS[] = {
&I011_V1_3_390_ADES_VALUE,
NULL
};
@@ -10442,7 +10405,7 @@ static const AsterixField I011_V1_3_390_ADES = { FIXED, 4, 0, 0, &hf_011_V1_3_39
static int hf_011_V1_3_390_RWY;
static int hf_011_V1_3_390_RWY_VALUE;
static const FieldPart I011_V1_3_390_RWY_VALUE = { 24, 1.0, FIELD_PART_ASCII, &hf_011_V1_3_390_RWY_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_RWY_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_RWY_PARTS[] = {
&I011_V1_3_390_RWY_VALUE,
NULL
};
@@ -10450,7 +10413,7 @@ static const AsterixField I011_V1_3_390_RWY = { FIXED, 3, 0, 0, &hf_011_V1_3_390
static int hf_011_V1_3_390_CFL;
static int hf_011_V1_3_390_CFL_VALUE;
static const FieldPart I011_V1_3_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_390_CFL_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_CFL_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_CFL_PARTS[] = {
&I011_V1_3_390_CFL_VALUE,
NULL
};
@@ -10460,7 +10423,7 @@ static int hf_011_V1_3_390_CCP_CENTRE;
static const FieldPart I011_V1_3_390_CCP_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_390_CCP_CENTRE, NULL };
static int hf_011_V1_3_390_CCP_POSITION;
static const FieldPart I011_V1_3_390_CCP_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_390_CCP_POSITION, NULL };
-static const FieldPart *I011_V1_3_390_CCP_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_CCP_PARTS[] = {
&I011_V1_3_390_CCP_CENTRE,
&I011_V1_3_390_CCP_POSITION,
NULL
@@ -10507,7 +10470,7 @@ static const value_string valstr_011_V1_3_390_TOD_AVS[] = {
static const FieldPart I011_V1_3_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_3_390_TOD_AVS, NULL };
static int hf_011_V1_3_390_TOD_SEC;
static const FieldPart I011_V1_3_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_011_V1_3_390_TOD_SEC, NULL };
-static const FieldPart *I011_V1_3_390_TOD_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_TOD_PARTS[] = {
&I011_V1_3_390_TOD_TYP,
&I011_V1_3_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -10523,7 +10486,7 @@ static const AsterixField I011_V1_3_390_TOD = { REPETITIVE, 4, 1, 0, &hf_011_V1_
static int hf_011_V1_3_390_AST;
static int hf_011_V1_3_390_AST_VALUE;
static const FieldPart I011_V1_3_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_011_V1_3_390_AST_VALUE, NULL };
-static const FieldPart *I011_V1_3_390_AST_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_AST_PARTS[] = {
&I011_V1_3_390_AST_VALUE,
NULL
};
@@ -10545,7 +10508,7 @@ static const value_string valstr_011_V1_3_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_011_V1_3_390_STS_AVL, NULL };
-static const FieldPart *I011_V1_3_390_STS_PARTS[] = {
+static const FieldPart * const I011_V1_3_390_STS_PARTS[] = {
&I011_V1_3_390_STS_EMP,
&I011_V1_3_390_STS_AVL,
&IXXX_4bit_spare,
@@ -10569,7 +10532,7 @@ static const value_string valstr_011_V1_3_430_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_430_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_V1_3_430_VALUE, NULL };
-static const FieldPart *I011_V1_3_430_PARTS[] = {
+static const FieldPart * const I011_V1_3_430_PARTS[] = {
&I011_V1_3_430_VALUE,
NULL
};
@@ -10580,7 +10543,7 @@ static int hf_011_V1_3_500_APC_X;
static const FieldPart I011_V1_3_500_APC_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_500_APC_X, NULL };
static int hf_011_V1_3_500_APC_Y;
static const FieldPart I011_V1_3_500_APC_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_V1_3_500_APC_Y, NULL };
-static const FieldPart *I011_V1_3_500_APC_PARTS[] = {
+static const FieldPart * const I011_V1_3_500_APC_PARTS[] = {
&I011_V1_3_500_APC_X,
&I011_V1_3_500_APC_Y,
NULL
@@ -10591,7 +10554,7 @@ static int hf_011_V1_3_500_APW_LAT;
static const FieldPart I011_V1_3_500_APW_LAT = { 16, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_3_500_APW_LAT, NULL };
static int hf_011_V1_3_500_APW_LON;
static const FieldPart I011_V1_3_500_APW_LON = { 16, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_V1_3_500_APW_LON, NULL };
-static const FieldPart *I011_V1_3_500_APW_PARTS[] = {
+static const FieldPart * const I011_V1_3_500_APW_PARTS[] = {
&I011_V1_3_500_APW_LAT,
&I011_V1_3_500_APW_LON,
NULL
@@ -10600,7 +10563,7 @@ static const AsterixField I011_V1_3_500_APW = { FIXED, 4, 0, 0, &hf_011_V1_3_500
static int hf_011_V1_3_500_ATH;
static int hf_011_V1_3_500_ATH_VALUE;
static const FieldPart I011_V1_3_500_ATH_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_011_V1_3_500_ATH_VALUE, NULL };
-static const FieldPart *I011_V1_3_500_ATH_PARTS[] = {
+static const FieldPart * const I011_V1_3_500_ATH_PARTS[] = {
&I011_V1_3_500_ATH_VALUE,
NULL
};
@@ -10610,7 +10573,7 @@ static int hf_011_V1_3_500_AVC_X;
static const FieldPart I011_V1_3_500_AVC_X = { 8, 0.1, FIELD_PART_UFLOAT, &hf_011_V1_3_500_AVC_X, NULL };
static int hf_011_V1_3_500_AVC_Y;
static const FieldPart I011_V1_3_500_AVC_Y = { 8, 0.1, FIELD_PART_UFLOAT, &hf_011_V1_3_500_AVC_Y, NULL };
-static const FieldPart *I011_V1_3_500_AVC_PARTS[] = {
+static const FieldPart * const I011_V1_3_500_AVC_PARTS[] = {
&I011_V1_3_500_AVC_X,
&I011_V1_3_500_AVC_Y,
NULL
@@ -10619,7 +10582,7 @@ static const AsterixField I011_V1_3_500_AVC = { FIXED, 2, 0, 0, &hf_011_V1_3_500
static int hf_011_V1_3_500_ARC;
static int hf_011_V1_3_500_ARC_VALUE;
static const FieldPart I011_V1_3_500_ARC_VALUE = { 16, 0.1, FIELD_PART_FLOAT, &hf_011_V1_3_500_ARC_VALUE, NULL };
-static const FieldPart *I011_V1_3_500_ARC_PARTS[] = {
+static const FieldPart * const I011_V1_3_500_ARC_PARTS[] = {
&I011_V1_3_500_ARC_VALUE,
NULL
};
@@ -10629,7 +10592,7 @@ static int hf_011_V1_3_500_AAC_X;
static const FieldPart I011_V1_3_500_AAC_X = { 8, 0.01, FIELD_PART_UFLOAT, &hf_011_V1_3_500_AAC_X, NULL };
static int hf_011_V1_3_500_AAC_Y;
static const FieldPart I011_V1_3_500_AAC_Y = { 8, 0.01, FIELD_PART_UFLOAT, &hf_011_V1_3_500_AAC_Y, NULL };
-static const FieldPart *I011_V1_3_500_AAC_PARTS[] = {
+static const FieldPart * const I011_V1_3_500_AAC_PARTS[] = {
&I011_V1_3_500_AAC_X,
&I011_V1_3_500_AAC_Y,
NULL
@@ -10656,7 +10619,7 @@ static int hf_011_V1_3_600_AT;
static const FieldPart I011_V1_3_600_AT = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_600_AT, NULL };
static int hf_011_V1_3_600_AN;
static const FieldPart I011_V1_3_600_AN = { 8, 1.0, FIELD_PART_HEX, &hf_011_V1_3_600_AN, NULL };
-static const FieldPart *I011_V1_3_600_PARTS[] = {
+static const FieldPart * const I011_V1_3_600_PARTS[] = {
&I011_V1_3_600_ACK,
&I011_V1_3_600_SVR,
&IXXX_5bit_spare,
@@ -10668,7 +10631,7 @@ static const AsterixField I011_V1_3_600 = { FIXED, 3, 0, 0, &hf_011_V1_3_600, I0
static int hf_011_V1_3_605;
static int hf_011_V1_3_605_FTN;
static const FieldPart I011_V1_3_605_FTN = { 12, 1.0, FIELD_PART_HEX, &hf_011_V1_3_605_FTN, NULL };
-static const FieldPart *I011_V1_3_605_PARTS[] = {
+static const FieldPart * const I011_V1_3_605_PARTS[] = {
&IXXX_4bit_spare,
&I011_V1_3_605_FTN,
NULL
@@ -10761,7 +10724,7 @@ static const value_string valstr_011_V1_3_610_I12[] = {
{ 0, NULL }
};
static const FieldPart I011_V1_3_610_I12 = { 1, 1.0, FIELD_PART_UINT, &hf_011_V1_3_610_I12, NULL };
-static const FieldPart *I011_V1_3_610_PARTS[] = {
+static const FieldPart * const I011_V1_3_610_PARTS[] = {
&I011_V1_3_610_BKN,
&I011_V1_3_610_I1,
&I011_V1_3_610_I2,
@@ -10797,7 +10760,7 @@ static const value_string valstr_011_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_000_VALUE, NULL };
-static const FieldPart *I011_000_PARTS[] = {
+static const FieldPart * const I011_000_PARTS[] = {
&I011_000_VALUE,
NULL
};
@@ -10807,7 +10770,7 @@ static int hf_011_010_SAC;
static const FieldPart I011_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_011_010_SAC, NULL };
static int hf_011_010_SIC;
static const FieldPart I011_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_011_010_SIC, NULL };
-static const FieldPart *I011_010_PARTS[] = {
+static const FieldPart * const I011_010_PARTS[] = {
&I011_010_SAC,
&I011_010_SIC,
NULL
@@ -10816,7 +10779,7 @@ static const AsterixField I011_010 = { FIXED, 2, 0, 0, &hf_011_010, I011_010_PAR
static int hf_011_015;
static int hf_011_015_VALUE;
static const FieldPart I011_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_011_015_VALUE, NULL };
-static const FieldPart *I011_015_PARTS[] = {
+static const FieldPart * const I011_015_PARTS[] = {
&I011_015_VALUE,
NULL
};
@@ -10826,7 +10789,7 @@ static int hf_011_041_LAT;
static const FieldPart I011_041_LAT = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_041_LAT, NULL };
static int hf_011_041_LON;
static const FieldPart I011_041_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_041_LON, NULL };
-static const FieldPart *I011_041_PARTS[] = {
+static const FieldPart * const I011_041_PARTS[] = {
&I011_041_LAT,
&I011_041_LON,
NULL
@@ -10837,7 +10800,7 @@ static int hf_011_042_X;
static const FieldPart I011_042_X = { 16, 1.0, FIELD_PART_FLOAT, &hf_011_042_X, NULL };
static int hf_011_042_Y;
static const FieldPart I011_042_Y = { 16, 1.0, FIELD_PART_FLOAT, &hf_011_042_Y, NULL };
-static const FieldPart *I011_042_PARTS[] = {
+static const FieldPart * const I011_042_PARTS[] = {
&I011_042_X,
&I011_042_Y,
NULL
@@ -10846,7 +10809,7 @@ static const AsterixField I011_042 = { FIXED, 4, 0, 0, &hf_011_042, I011_042_PAR
static int hf_011_060;
static int hf_011_060_MOD3A;
static const FieldPart I011_060_MOD3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_011_060_MOD3A, NULL };
-static const FieldPart *I011_060_PARTS[] = {
+static const FieldPart * const I011_060_PARTS[] = {
&IXXX_4bit_spare,
&I011_060_MOD3A,
NULL
@@ -10855,7 +10818,7 @@ static const AsterixField I011_060 = { FIXED, 2, 0, 0, &hf_011_060, I011_060_PAR
static int hf_011_090;
static int hf_011_090_VALUE;
static const FieldPart I011_090_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_090_VALUE, NULL };
-static const FieldPart *I011_090_PARTS[] = {
+static const FieldPart * const I011_090_PARTS[] = {
&I011_090_VALUE,
NULL
};
@@ -10863,7 +10826,7 @@ static const AsterixField I011_090 = { FIXED, 2, 0, 0, &hf_011_090, I011_090_PAR
static int hf_011_092;
static int hf_011_092_VALUE;
static const FieldPart I011_092_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_011_092_VALUE, NULL };
-static const FieldPart *I011_092_PARTS[] = {
+static const FieldPart * const I011_092_PARTS[] = {
&I011_092_VALUE,
NULL
};
@@ -10878,7 +10841,7 @@ static const value_string valstr_011_093_QNH[] = {
static const FieldPart I011_093_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_011_093_QNH, NULL };
static int hf_011_093_CTBA;
static const FieldPart I011_093_CTBA = { 15, 0.25, FIELD_PART_FLOAT, &hf_011_093_CTBA, NULL };
-static const FieldPart *I011_093_PARTS[] = {
+static const FieldPart * const I011_093_PARTS[] = {
&I011_093_QNH,
&I011_093_CTBA,
NULL
@@ -10887,7 +10850,7 @@ static const AsterixField I011_093 = { FIXED, 2, 0, 0, &hf_011_093, I011_093_PAR
static int hf_011_140;
static int hf_011_140_VALUE;
static const FieldPart I011_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_011_140_VALUE, NULL };
-static const FieldPart *I011_140_PARTS[] = {
+static const FieldPart * const I011_140_PARTS[] = {
&I011_140_VALUE,
NULL
};
@@ -10895,7 +10858,7 @@ static const AsterixField I011_140 = { FIXED, 3, 0, 0, &hf_011_140, I011_140_PAR
static int hf_011_161;
static int hf_011_161_FTN;
static const FieldPart I011_161_FTN = { 15, 1.0, FIELD_PART_HEX, &hf_011_161_FTN, NULL };
-static const FieldPart *I011_161_PARTS[] = {
+static const FieldPart * const I011_161_PARTS[] = {
&IXXX_1bit_spare,
&I011_161_FTN,
NULL
@@ -11064,7 +11027,7 @@ static const value_string valstr_011_170_AAC[] = {
{ 0, NULL }
};
static const FieldPart I011_170_AAC = { 1, 1.0, FIELD_PART_UINT, &hf_011_170_AAC, NULL };
-static const FieldPart *I011_170_PARTS[] = {
+static const FieldPart * const I011_170_PARTS[] = {
&I011_170_MON,
&I011_170_GBS,
&I011_170_MRH,
@@ -11101,7 +11064,7 @@ static int hf_011_202_VX;
static const FieldPart I011_202_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_202_VX, NULL };
static int hf_011_202_VY;
static const FieldPart I011_202_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_011_202_VY, NULL };
-static const FieldPart *I011_202_PARTS[] = {
+static const FieldPart * const I011_202_PARTS[] = {
&I011_202_VX,
&I011_202_VY,
NULL
@@ -11112,7 +11075,7 @@ static int hf_011_210_AX;
static const FieldPart I011_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_011_210_AX, NULL };
static int hf_011_210_AY;
static const FieldPart I011_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_011_210_AY, NULL };
-static const FieldPart *I011_210_PARTS[] = {
+static const FieldPart * const I011_210_PARTS[] = {
&I011_210_AX,
&I011_210_AY,
NULL
@@ -11121,7 +11084,7 @@ static const AsterixField I011_210 = { FIXED, 2, 0, 0, &hf_011_210, I011_210_PAR
static int hf_011_215;
static int hf_011_215_VALUE;
static const FieldPart I011_215_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_011_215_VALUE, NULL };
-static const FieldPart *I011_215_PARTS[] = {
+static const FieldPart * const I011_215_PARTS[] = {
&I011_215_VALUE,
NULL
};
@@ -11137,7 +11100,7 @@ static const value_string valstr_011_245_STI[] = {
static const FieldPart I011_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_011_245_STI, NULL };
static int hf_011_245_TID;
static const FieldPart I011_245_TID = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_011_245_TID, NULL };
-static const FieldPart *I011_245_PARTS[] = {
+static const FieldPart * const I011_245_PARTS[] = {
&I011_245_STI,
&IXXX_6bit_spare,
&I011_245_TID,
@@ -11151,7 +11114,7 @@ static int hf_011_270_ORIENTATION;
static const FieldPart I011_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_011_270_ORIENTATION, NULL };
static int hf_011_270_WIDTH;
static const FieldPart I011_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_011_270_WIDTH, NULL };
-static const FieldPart *I011_270_PARTS[] = {
+static const FieldPart * const I011_270_PARTS[] = {
&I011_270_LENGTH,
&IXXX_FX,
&I011_270_ORIENTATION,
@@ -11165,7 +11128,7 @@ static int hf_011_290;
static int hf_011_290_PSR;
static int hf_011_290_PSR_VALUE;
static const FieldPart I011_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_PSR_VALUE, NULL };
-static const FieldPart *I011_290_PSR_PARTS[] = {
+static const FieldPart * const I011_290_PSR_PARTS[] = {
&I011_290_PSR_VALUE,
NULL
};
@@ -11173,7 +11136,7 @@ static const AsterixField I011_290_PSR = { FIXED, 1, 0, 0, &hf_011_290_PSR, I011
static int hf_011_290_SSR;
static int hf_011_290_SSR_VALUE;
static const FieldPart I011_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_SSR_VALUE, NULL };
-static const FieldPart *I011_290_SSR_PARTS[] = {
+static const FieldPart * const I011_290_SSR_PARTS[] = {
&I011_290_SSR_VALUE,
NULL
};
@@ -11181,7 +11144,7 @@ static const AsterixField I011_290_SSR = { FIXED, 1, 0, 0, &hf_011_290_SSR, I011
static int hf_011_290_MDA;
static int hf_011_290_MDA_VALUE;
static const FieldPart I011_290_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_MDA_VALUE, NULL };
-static const FieldPart *I011_290_MDA_PARTS[] = {
+static const FieldPart * const I011_290_MDA_PARTS[] = {
&I011_290_MDA_VALUE,
NULL
};
@@ -11189,7 +11152,7 @@ static const AsterixField I011_290_MDA = { FIXED, 1, 0, 0, &hf_011_290_MDA, I011
static int hf_011_290_MFL;
static int hf_011_290_MFL_VALUE;
static const FieldPart I011_290_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_MFL_VALUE, NULL };
-static const FieldPart *I011_290_MFL_PARTS[] = {
+static const FieldPart * const I011_290_MFL_PARTS[] = {
&I011_290_MFL_VALUE,
NULL
};
@@ -11197,7 +11160,7 @@ static const AsterixField I011_290_MFL = { FIXED, 1, 0, 0, &hf_011_290_MFL, I011
static int hf_011_290_MDS;
static int hf_011_290_MDS_VALUE;
static const FieldPart I011_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_MDS_VALUE, NULL };
-static const FieldPart *I011_290_MDS_PARTS[] = {
+static const FieldPart * const I011_290_MDS_PARTS[] = {
&I011_290_MDS_VALUE,
NULL
};
@@ -11205,7 +11168,7 @@ static const AsterixField I011_290_MDS = { FIXED, 1, 0, 0, &hf_011_290_MDS, I011
static int hf_011_290_ADS;
static int hf_011_290_ADS_VALUE;
static const FieldPart I011_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_011_290_ADS_VALUE, NULL };
-static const FieldPart *I011_290_ADS_PARTS[] = {
+static const FieldPart * const I011_290_ADS_PARTS[] = {
&I011_290_ADS_VALUE,
NULL
};
@@ -11213,7 +11176,7 @@ static const AsterixField I011_290_ADS = { FIXED, 2, 0, 0, &hf_011_290_ADS, I011
static int hf_011_290_ADB;
static int hf_011_290_ADB_VALUE;
static const FieldPart I011_290_ADB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_ADB_VALUE, NULL };
-static const FieldPart *I011_290_ADB_PARTS[] = {
+static const FieldPart * const I011_290_ADB_PARTS[] = {
&I011_290_ADB_VALUE,
NULL
};
@@ -11221,7 +11184,7 @@ static const AsterixField I011_290_ADB = { FIXED, 1, 0, 0, &hf_011_290_ADB, I011
static int hf_011_290_MD1;
static int hf_011_290_MD1_VALUE;
static const FieldPart I011_290_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_MD1_VALUE, NULL };
-static const FieldPart *I011_290_MD1_PARTS[] = {
+static const FieldPart * const I011_290_MD1_PARTS[] = {
&I011_290_MD1_VALUE,
NULL
};
@@ -11229,7 +11192,7 @@ static const AsterixField I011_290_MD1 = { FIXED, 1, 0, 0, &hf_011_290_MD1, I011
static int hf_011_290_MD2;
static int hf_011_290_MD2_VALUE;
static const FieldPart I011_290_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_MD2_VALUE, NULL };
-static const FieldPart *I011_290_MD2_PARTS[] = {
+static const FieldPart * const I011_290_MD2_PARTS[] = {
&I011_290_MD2_VALUE,
NULL
};
@@ -11237,7 +11200,7 @@ static const AsterixField I011_290_MD2 = { FIXED, 1, 0, 0, &hf_011_290_MD2, I011
static int hf_011_290_LOP;
static int hf_011_290_LOP_VALUE;
static const FieldPart I011_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_LOP_VALUE, NULL };
-static const FieldPart *I011_290_LOP_PARTS[] = {
+static const FieldPart * const I011_290_LOP_PARTS[] = {
&I011_290_LOP_VALUE,
NULL
};
@@ -11245,7 +11208,7 @@ static const AsterixField I011_290_LOP = { FIXED, 1, 0, 0, &hf_011_290_LOP, I011
static int hf_011_290_TRK;
static int hf_011_290_TRK_VALUE;
static const FieldPart I011_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_TRK_VALUE, NULL };
-static const FieldPart *I011_290_TRK_PARTS[] = {
+static const FieldPart * const I011_290_TRK_PARTS[] = {
&I011_290_TRK_VALUE,
NULL
};
@@ -11253,7 +11216,7 @@ static const AsterixField I011_290_TRK = { FIXED, 1, 0, 0, &hf_011_290_TRK, I011
static int hf_011_290_MUL;
static int hf_011_290_MUL_VALUE;
static const FieldPart I011_290_MUL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_290_MUL_VALUE, NULL };
-static const FieldPart *I011_290_MUL_PARTS[] = {
+static const FieldPart * const I011_290_MUL_PARTS[] = {
&I011_290_MUL_VALUE,
NULL
};
@@ -11282,7 +11245,7 @@ static const value_string valstr_011_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_300_VALUE, NULL };
-static const FieldPart *I011_300_PARTS[] = {
+static const FieldPart * const I011_300_PARTS[] = {
&I011_300_VALUE,
NULL
};
@@ -11305,7 +11268,7 @@ static const value_string valstr_011_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I011_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_011_310_MSG, NULL };
-static const FieldPart *I011_310_PARTS[] = {
+static const FieldPart * const I011_310_PARTS[] = {
&I011_310_TRB,
&I011_310_MSG,
NULL
@@ -11315,7 +11278,7 @@ static int hf_011_380;
static int hf_011_380_MB;
static int hf_011_380_MB_VALUE;
static const FieldPart I011_380_MB_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_011_380_MB_VALUE, NULL };
-static const FieldPart *I011_380_MB_PARTS[] = {
+static const FieldPart * const I011_380_MB_PARTS[] = {
&I011_380_MB_VALUE,
NULL
};
@@ -11323,7 +11286,7 @@ static const AsterixField I011_380_MB = { REPETITIVE, 8, 1, 0, &hf_011_380_MB, I
static int hf_011_380_ADR;
static int hf_011_380_ADR_VALUE;
static const FieldPart I011_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_011_380_ADR_VALUE, NULL };
-static const FieldPart *I011_380_ADR_PARTS[] = {
+static const FieldPart * const I011_380_ADR_PARTS[] = {
&I011_380_ADR_VALUE,
NULL
};
@@ -11404,7 +11367,7 @@ static const value_string valstr_011_380_COMACAS_DC[] = {
{ 0, NULL }
};
static const FieldPart I011_380_COMACAS_DC = { 1, 1.0, FIELD_PART_UINT, &hf_011_380_COMACAS_DC, NULL };
-static const FieldPart *I011_380_COMACAS_PARTS[] = {
+static const FieldPart * const I011_380_COMACAS_PARTS[] = {
&I011_380_COMACAS_COM,
&I011_380_COMACAS_STAT,
&IXXX_1bit_spare,
@@ -11423,7 +11386,7 @@ static const AsterixField I011_380_COMACAS = { FIXED, 3, 0, 0, &hf_011_380_COMAC
static int hf_011_380_ACT;
static int hf_011_380_ACT_VALUE;
static const FieldPart I011_380_ACT_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_380_ACT_VALUE, NULL };
-static const FieldPart *I011_380_ACT_PARTS[] = {
+static const FieldPart * const I011_380_ACT_PARTS[] = {
&I011_380_ACT_VALUE,
NULL
};
@@ -11458,7 +11421,7 @@ static const value_string valstr_011_380_ECAT_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_380_ECAT_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_380_ECAT_VALUE, NULL };
-static const FieldPart *I011_380_ECAT_PARTS[] = {
+static const FieldPart * const I011_380_ECAT_PARTS[] = {
&I011_380_ECAT_VALUE,
NULL
};
@@ -11485,7 +11448,7 @@ static const value_string valstr_011_380_AVTECH_UAT[] = {
{ 0, NULL }
};
static const FieldPart I011_380_AVTECH_UAT = { 1, 1.0, FIELD_PART_UINT, &hf_011_380_AVTECH_UAT, NULL };
-static const FieldPart *I011_380_AVTECH_PARTS[] = {
+static const FieldPart * const I011_380_AVTECH_PARTS[] = {
&I011_380_AVTECH_VDL,
&I011_380_AVTECH_MDS,
&I011_380_AVTECH_UAT,
@@ -11500,7 +11463,7 @@ static int hf_011_390_FPPSID_SAC;
static const FieldPart I011_390_FPPSID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_011_390_FPPSID_SAC, NULL };
static int hf_011_390_FPPSID_SIC;
static const FieldPart I011_390_FPPSID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_011_390_FPPSID_SIC, NULL };
-static const FieldPart *I011_390_FPPSID_PARTS[] = {
+static const FieldPart * const I011_390_FPPSID_PARTS[] = {
&I011_390_FPPSID_SAC,
&I011_390_FPPSID_SIC,
NULL
@@ -11509,7 +11472,7 @@ static const AsterixField I011_390_FPPSID = { FIXED, 2, 0, 0, &hf_011_390_FPPSID
static int hf_011_390_CSN;
static int hf_011_390_CSN_VALUE;
static const FieldPart I011_390_CSN_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_011_390_CSN_VALUE, NULL };
-static const FieldPart *I011_390_CSN_PARTS[] = {
+static const FieldPart * const I011_390_CSN_PARTS[] = {
&I011_390_CSN_VALUE,
NULL
};
@@ -11526,7 +11489,7 @@ static const value_string valstr_011_390_IFPSFLIGHTID_TYP[] = {
static const FieldPart I011_390_IFPSFLIGHTID_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_011_390_IFPSFLIGHTID_TYP, NULL };
static int hf_011_390_IFPSFLIGHTID_NBR;
static const FieldPart I011_390_IFPSFLIGHTID_NBR = { 27, 1.0, FIELD_PART_HEX, &hf_011_390_IFPSFLIGHTID_NBR, NULL };
-static const FieldPart *I011_390_IFPSFLIGHTID_PARTS[] = {
+static const FieldPart * const I011_390_IFPSFLIGHTID_PARTS[] = {
&I011_390_IFPSFLIGHTID_TYP,
&IXXX_3bit_spare,
&I011_390_IFPSFLIGHTID_NBR,
@@ -11568,7 +11531,7 @@ static const value_string valstr_011_390_FLIGHTCAT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I011_390_FLIGHTCAT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_011_390_FLIGHTCAT_HPR, NULL };
-static const FieldPart *I011_390_FLIGHTCAT_PARTS[] = {
+static const FieldPart * const I011_390_FLIGHTCAT_PARTS[] = {
&I011_390_FLIGHTCAT_GATOAT,
&I011_390_FLIGHTCAT_FR1FR2,
&I011_390_FLIGHTCAT_RVSM,
@@ -11580,7 +11543,7 @@ static const AsterixField I011_390_FLIGHTCAT = { FIXED, 1, 0, 0, &hf_011_390_FLI
static int hf_011_390_TOA;
static int hf_011_390_TOA_VALUE;
static const FieldPart I011_390_TOA_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_390_TOA_VALUE, NULL };
-static const FieldPart *I011_390_TOA_PARTS[] = {
+static const FieldPart * const I011_390_TOA_PARTS[] = {
&I011_390_TOA_VALUE,
NULL
};
@@ -11595,7 +11558,7 @@ static const value_string valstr_011_390_WTC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_390_WTC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_390_WTC_VALUE, NULL };
-static const FieldPart *I011_390_WTC_PARTS[] = {
+static const FieldPart * const I011_390_WTC_PARTS[] = {
&I011_390_WTC_VALUE,
NULL
};
@@ -11603,7 +11566,7 @@ static const AsterixField I011_390_WTC = { FIXED, 1, 0, 0, &hf_011_390_WTC, I011
static int hf_011_390_ADEP;
static int hf_011_390_ADEP_VALUE;
static const FieldPart I011_390_ADEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_390_ADEP_VALUE, NULL };
-static const FieldPart *I011_390_ADEP_PARTS[] = {
+static const FieldPart * const I011_390_ADEP_PARTS[] = {
&I011_390_ADEP_VALUE,
NULL
};
@@ -11611,7 +11574,7 @@ static const AsterixField I011_390_ADEP = { FIXED, 4, 0, 0, &hf_011_390_ADEP, I0
static int hf_011_390_ADES;
static int hf_011_390_ADES_VALUE;
static const FieldPart I011_390_ADES_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_011_390_ADES_VALUE, NULL };
-static const FieldPart *I011_390_ADES_PARTS[] = {
+static const FieldPart * const I011_390_ADES_PARTS[] = {
&I011_390_ADES_VALUE,
NULL
};
@@ -11619,7 +11582,7 @@ static const AsterixField I011_390_ADES = { FIXED, 4, 0, 0, &hf_011_390_ADES, I0
static int hf_011_390_RWY;
static int hf_011_390_RWY_VALUE;
static const FieldPart I011_390_RWY_VALUE = { 24, 1.0, FIELD_PART_ASCII, &hf_011_390_RWY_VALUE, NULL };
-static const FieldPart *I011_390_RWY_PARTS[] = {
+static const FieldPart * const I011_390_RWY_PARTS[] = {
&I011_390_RWY_VALUE,
NULL
};
@@ -11627,7 +11590,7 @@ static const AsterixField I011_390_RWY = { FIXED, 3, 0, 0, &hf_011_390_RWY, I011
static int hf_011_390_CFL;
static int hf_011_390_CFL_VALUE;
static const FieldPart I011_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_011_390_CFL_VALUE, NULL };
-static const FieldPart *I011_390_CFL_PARTS[] = {
+static const FieldPart * const I011_390_CFL_PARTS[] = {
&I011_390_CFL_VALUE,
NULL
};
@@ -11637,7 +11600,7 @@ static int hf_011_390_CCP_CENTRE;
static const FieldPart I011_390_CCP_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_011_390_CCP_CENTRE, NULL };
static int hf_011_390_CCP_POSITION;
static const FieldPart I011_390_CCP_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_011_390_CCP_POSITION, NULL };
-static const FieldPart *I011_390_CCP_PARTS[] = {
+static const FieldPart * const I011_390_CCP_PARTS[] = {
&I011_390_CCP_CENTRE,
&I011_390_CCP_POSITION,
NULL
@@ -11684,7 +11647,7 @@ static const value_string valstr_011_390_TOD_AVS[] = {
static const FieldPart I011_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_011_390_TOD_AVS, NULL };
static int hf_011_390_TOD_SEC;
static const FieldPart I011_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_011_390_TOD_SEC, NULL };
-static const FieldPart *I011_390_TOD_PARTS[] = {
+static const FieldPart * const I011_390_TOD_PARTS[] = {
&I011_390_TOD_TYP,
&I011_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -11700,7 +11663,7 @@ static const AsterixField I011_390_TOD = { REPETITIVE, 4, 1, 0, &hf_011_390_TOD,
static int hf_011_390_AST;
static int hf_011_390_AST_VALUE;
static const FieldPart I011_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_011_390_AST_VALUE, NULL };
-static const FieldPart *I011_390_AST_PARTS[] = {
+static const FieldPart * const I011_390_AST_PARTS[] = {
&I011_390_AST_VALUE,
NULL
};
@@ -11722,7 +11685,7 @@ static const value_string valstr_011_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I011_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_011_390_STS_AVL, NULL };
-static const FieldPart *I011_390_STS_PARTS[] = {
+static const FieldPart * const I011_390_STS_PARTS[] = {
&I011_390_STS_EMP,
&I011_390_STS_AVL,
&IXXX_4bit_spare,
@@ -11746,7 +11709,7 @@ static const value_string valstr_011_430_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I011_430_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_011_430_VALUE, NULL };
-static const FieldPart *I011_430_PARTS[] = {
+static const FieldPart * const I011_430_PARTS[] = {
&I011_430_VALUE,
NULL
};
@@ -11757,7 +11720,7 @@ static int hf_011_500_APC_X;
static const FieldPart I011_500_APC_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_500_APC_X, NULL };
static int hf_011_500_APC_Y;
static const FieldPart I011_500_APC_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_011_500_APC_Y, NULL };
-static const FieldPart *I011_500_APC_PARTS[] = {
+static const FieldPart * const I011_500_APC_PARTS[] = {
&I011_500_APC_X,
&I011_500_APC_Y,
NULL
@@ -11768,7 +11731,7 @@ static int hf_011_500_APW_LAT;
static const FieldPart I011_500_APW_LAT = { 16, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_500_APW_LAT, NULL };
static int hf_011_500_APW_LON;
static const FieldPart I011_500_APW_LON = { 16, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_011_500_APW_LON, NULL };
-static const FieldPart *I011_500_APW_PARTS[] = {
+static const FieldPart * const I011_500_APW_PARTS[] = {
&I011_500_APW_LAT,
&I011_500_APW_LON,
NULL
@@ -11777,7 +11740,7 @@ static const AsterixField I011_500_APW = { FIXED, 4, 0, 0, &hf_011_500_APW, I011
static int hf_011_500_ATH;
static int hf_011_500_ATH_VALUE;
static const FieldPart I011_500_ATH_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_011_500_ATH_VALUE, NULL };
-static const FieldPart *I011_500_ATH_PARTS[] = {
+static const FieldPart * const I011_500_ATH_PARTS[] = {
&I011_500_ATH_VALUE,
NULL
};
@@ -11787,7 +11750,7 @@ static int hf_011_500_AVC_X;
static const FieldPart I011_500_AVC_X = { 8, 0.1, FIELD_PART_UFLOAT, &hf_011_500_AVC_X, NULL };
static int hf_011_500_AVC_Y;
static const FieldPart I011_500_AVC_Y = { 8, 0.1, FIELD_PART_UFLOAT, &hf_011_500_AVC_Y, NULL };
-static const FieldPart *I011_500_AVC_PARTS[] = {
+static const FieldPart * const I011_500_AVC_PARTS[] = {
&I011_500_AVC_X,
&I011_500_AVC_Y,
NULL
@@ -11796,7 +11759,7 @@ static const AsterixField I011_500_AVC = { FIXED, 2, 0, 0, &hf_011_500_AVC, I011
static int hf_011_500_ARC;
static int hf_011_500_ARC_VALUE;
static const FieldPart I011_500_ARC_VALUE = { 16, 0.1, FIELD_PART_FLOAT, &hf_011_500_ARC_VALUE, NULL };
-static const FieldPart *I011_500_ARC_PARTS[] = {
+static const FieldPart * const I011_500_ARC_PARTS[] = {
&I011_500_ARC_VALUE,
NULL
};
@@ -11806,7 +11769,7 @@ static int hf_011_500_AAC_X;
static const FieldPart I011_500_AAC_X = { 8, 0.01, FIELD_PART_UFLOAT, &hf_011_500_AAC_X, NULL };
static int hf_011_500_AAC_Y;
static const FieldPart I011_500_AAC_Y = { 8, 0.01, FIELD_PART_UFLOAT, &hf_011_500_AAC_Y, NULL };
-static const FieldPart *I011_500_AAC_PARTS[] = {
+static const FieldPart * const I011_500_AAC_PARTS[] = {
&I011_500_AAC_X,
&I011_500_AAC_Y,
NULL
@@ -11833,7 +11796,7 @@ static int hf_011_600_AT;
static const FieldPart I011_600_AT = { 8, 1.0, FIELD_PART_HEX, &hf_011_600_AT, NULL };
static int hf_011_600_AN;
static const FieldPart I011_600_AN = { 8, 1.0, FIELD_PART_HEX, &hf_011_600_AN, NULL };
-static const FieldPart *I011_600_PARTS[] = {
+static const FieldPart * const I011_600_PARTS[] = {
&I011_600_ACK,
&I011_600_SVR,
&IXXX_5bit_spare,
@@ -11845,7 +11808,7 @@ static const AsterixField I011_600 = { FIXED, 3, 0, 0, &hf_011_600, I011_600_PAR
static int hf_011_605;
static int hf_011_605_FTN;
static const FieldPart I011_605_FTN = { 12, 1.0, FIELD_PART_HEX, &hf_011_605_FTN, NULL };
-static const FieldPart *I011_605_PARTS[] = {
+static const FieldPart * const I011_605_PARTS[] = {
&IXXX_4bit_spare,
&I011_605_FTN,
NULL
@@ -11938,7 +11901,7 @@ static const value_string valstr_011_610_I12[] = {
{ 0, NULL }
};
static const FieldPart I011_610_I12 = { 1, 1.0, FIELD_PART_UINT, &hf_011_610_I12, NULL };
-static const FieldPart *I011_610_PARTS[] = {
+static const FieldPart * const I011_610_PARTS[] = {
&I011_610_BKN,
&I011_610_I1,
&I011_610_I2,
@@ -11960,8 +11923,7 @@ static const AsterixField I011_SP = { EXP, 0, 0, 1, &hf_011_SP, NULL, { NULL } }
static int hf_011_RE;
static const AsterixField I011_RE = { EXP, 0, 0, 1, &hf_011_RE, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I011_V1_3_uap[] = {
+static const AsterixField * const I011_V1_3_uap[] = {
&I011_V1_3_010,
&I011_V1_3_000,
&I011_V1_3_015,
@@ -11993,14 +11955,12 @@ static const AsterixField *I011_V1_3_uap[] = {
&I011_V1_3_RE,
NULL
};
-static const AsterixField **I011_V1_3[] = {
+static const AsterixField * const * const I011_V1_3[] = {
I011_V1_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I011_uap[] = {
+static const AsterixField * const I011_uap[] = {
&I011_010,
&I011_000,
&I011_015,
@@ -12032,11 +11992,10 @@ static const AsterixField *I011_uap[] = {
&I011_RE,
NULL
};
-static const AsterixField **I011[] = {
+static const AsterixField * const * const I011[] = {
I011_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 015, edition 1.0 */
static int hf_015_V1_0_000;
@@ -12057,7 +12016,7 @@ static const value_string valstr_015_V1_0_000_RG[] = {
{ 0, NULL }
};
static const FieldPart I015_V1_0_000_RG = { 1, 1.0, FIELD_PART_UINT, &hf_015_V1_0_000_RG, NULL };
-static const FieldPart *I015_V1_0_000_PARTS[] = {
+static const FieldPart * const I015_V1_0_000_PARTS[] = {
&I015_V1_0_000_MT,
&I015_V1_0_000_RG,
NULL
@@ -12068,7 +12027,7 @@ static int hf_015_V1_0_010_SAC;
static const FieldPart I015_V1_0_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_015_V1_0_010_SAC, NULL };
static int hf_015_V1_0_010_SIC;
static const FieldPart I015_V1_0_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_015_V1_0_010_SIC, NULL };
-static const FieldPart *I015_V1_0_010_PARTS[] = {
+static const FieldPart * const I015_V1_0_010_PARTS[] = {
&I015_V1_0_010_SAC,
&I015_V1_0_010_SIC,
NULL
@@ -12077,7 +12036,7 @@ static const AsterixField I015_V1_0_010 = { FIXED, 2, 0, 0, &hf_015_V1_0_010, I0
static int hf_015_V1_0_015;
static int hf_015_V1_0_015_VALUE;
static const FieldPart I015_V1_0_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_015_V1_0_015_VALUE, NULL };
-static const FieldPart *I015_V1_0_015_PARTS[] = {
+static const FieldPart * const I015_V1_0_015_PARTS[] = {
&I015_V1_0_015_VALUE,
NULL
};
@@ -12110,7 +12069,7 @@ static const value_string valstr_015_V1_0_020_SCD[] = {
{ 0, NULL }
};
static const FieldPart I015_V1_0_020_SCD = { 2, 1.0, FIELD_PART_UINT, &hf_015_V1_0_020_SCD, NULL };
-static const FieldPart *I015_V1_0_020_PARTS[] = {
+static const FieldPart * const I015_V1_0_020_PARTS[] = {
&I015_V1_0_020_MOMU,
&I015_V1_0_020_TTAX,
&I015_V1_0_020_SCD,
@@ -12122,7 +12081,7 @@ static const AsterixField I015_V1_0_020 = { FX, 1, 0, 0, &hf_015_V1_0_020, I015_
static int hf_015_V1_0_030;
static int hf_015_V1_0_030_Subitem;
static const FieldPart I015_V1_0_030_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_015_V1_0_030_Subitem, NULL };
-static const FieldPart *I015_V1_0_030_PARTS[] = {
+static const FieldPart * const I015_V1_0_030_PARTS[] = {
&I015_V1_0_030_Subitem,
&IXXX_FX,
NULL
@@ -12131,7 +12090,7 @@ static const AsterixField I015_V1_0_030 = { FX, 1, 0, 0, &hf_015_V1_0_030, I015_
static int hf_015_V1_0_050;
static int hf_015_V1_0_050_UPD;
static const FieldPart I015_V1_0_050_UPD = { 14, 0.0078125, FIELD_PART_UFLOAT, &hf_015_V1_0_050_UPD, NULL };
-static const FieldPart *I015_V1_0_050_PARTS[] = {
+static const FieldPart * const I015_V1_0_050_PARTS[] = {
&IXXX_2bit_spare,
&I015_V1_0_050_UPD,
NULL
@@ -12140,7 +12099,7 @@ static const AsterixField I015_V1_0_050 = { FIXED, 2, 0, 0, &hf_015_V1_0_050, I0
static int hf_015_V1_0_145;
static int hf_015_V1_0_145_VALUE;
static const FieldPart I015_V1_0_145_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_015_V1_0_145_VALUE, NULL };
-static const FieldPart *I015_V1_0_145_PARTS[] = {
+static const FieldPart * const I015_V1_0_145_PARTS[] = {
&I015_V1_0_145_VALUE,
NULL
};
@@ -12148,7 +12107,7 @@ static const AsterixField I015_V1_0_145 = { FIXED, 3, 0, 0, &hf_015_V1_0_145, I0
static int hf_015_V1_0_161;
static int hf_015_V1_0_161_VALUE;
static const FieldPart I015_V1_0_161_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_015_V1_0_161_VALUE, NULL };
-static const FieldPart *I015_V1_0_161_PARTS[] = {
+static const FieldPart * const I015_V1_0_161_PARTS[] = {
&I015_V1_0_161_VALUE,
NULL
};
@@ -12196,7 +12155,7 @@ static const value_string valstr_015_V1_0_170_CNF[] = {
{ 0, NULL }
};
static const FieldPart I015_V1_0_170_CNF = { 1, 1.0, FIELD_PART_UINT, &hf_015_V1_0_170_CNF, NULL };
-static const FieldPart *I015_V1_0_170_PARTS[] = {
+static const FieldPart * const I015_V1_0_170_PARTS[] = {
&I015_V1_0_170_BIZ,
&I015_V1_0_170_BAZ,
&I015_V1_0_170_TUR,
@@ -12212,7 +12171,7 @@ static int hf_015_V1_0_270;
static int hf_015_V1_0_270_LEN;
static int hf_015_V1_0_270_LEN_VALUE;
static const FieldPart I015_V1_0_270_LEN_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_270_LEN_VALUE, NULL };
-static const FieldPart *I015_V1_0_270_LEN_PARTS[] = {
+static const FieldPart * const I015_V1_0_270_LEN_PARTS[] = {
&I015_V1_0_270_LEN_VALUE,
NULL
};
@@ -12220,7 +12179,7 @@ static const AsterixField I015_V1_0_270_LEN = { FIXED, 2, 0, 0, &hf_015_V1_0_270
static int hf_015_V1_0_270_WDT;
static int hf_015_V1_0_270_WDT_VALUE;
static const FieldPart I015_V1_0_270_WDT_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_270_WDT_VALUE, NULL };
-static const FieldPart *I015_V1_0_270_WDT_PARTS[] = {
+static const FieldPart * const I015_V1_0_270_WDT_PARTS[] = {
&I015_V1_0_270_WDT_VALUE,
NULL
};
@@ -12228,7 +12187,7 @@ static const AsterixField I015_V1_0_270_WDT = { FIXED, 2, 0, 0, &hf_015_V1_0_270
static int hf_015_V1_0_270_HGT;
static int hf_015_V1_0_270_HGT_VALUE;
static const FieldPart I015_V1_0_270_HGT_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_270_HGT_VALUE, NULL };
-static const FieldPart *I015_V1_0_270_HGT_PARTS[] = {
+static const FieldPart * const I015_V1_0_270_HGT_PARTS[] = {
&I015_V1_0_270_HGT_VALUE,
NULL
};
@@ -12236,7 +12195,7 @@ static const AsterixField I015_V1_0_270_HGT = { FIXED, 2, 0, 0, &hf_015_V1_0_270
static int hf_015_V1_0_270_ORT;
static int hf_015_V1_0_270_ORT_VALUE;
static const FieldPart I015_V1_0_270_ORT_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_0_270_ORT_VALUE, NULL };
-static const FieldPart *I015_V1_0_270_ORT_PARTS[] = {
+static const FieldPart * const I015_V1_0_270_ORT_PARTS[] = {
&I015_V1_0_270_ORT_VALUE,
NULL
};
@@ -12247,7 +12206,7 @@ static int hf_015_V1_0_300_CLS;
static const FieldPart I015_V1_0_300_CLS = { 9, 1.0, FIELD_PART_UINT, &hf_015_V1_0_300_CLS, NULL };
static int hf_015_V1_0_300_PRB;
static const FieldPart I015_V1_0_300_PRB = { 7, 1.0, FIELD_PART_UINT, &hf_015_V1_0_300_PRB, NULL };
-static const FieldPart *I015_V1_0_300_PARTS[] = {
+static const FieldPart * const I015_V1_0_300_PARTS[] = {
&I015_V1_0_300_CLS,
&I015_V1_0_300_PRB,
NULL
@@ -12258,7 +12217,7 @@ static int hf_015_V1_0_400_PID;
static const FieldPart I015_V1_0_400_PID = { 16, 1.0, FIELD_PART_UINT, &hf_015_V1_0_400_PID, NULL };
static int hf_015_V1_0_400_ON;
static const FieldPart I015_V1_0_400_ON = { 24, 1.0, FIELD_PART_UINT, &hf_015_V1_0_400_ON, NULL };
-static const FieldPart *I015_V1_0_400_PARTS[] = {
+static const FieldPart * const I015_V1_0_400_PARTS[] = {
&I015_V1_0_400_PID,
&I015_V1_0_400_ON,
NULL
@@ -12267,7 +12226,7 @@ static const AsterixField I015_V1_0_400 = { FIXED, 5, 0, 0, &hf_015_V1_0_400, I0
static int hf_015_V1_0_480;
static int hf_015_V1_0_480_VALUE;
static const FieldPart I015_V1_0_480_VALUE = { 40, 1.0, FIELD_PART_HEX, &hf_015_V1_0_480_VALUE, NULL };
-static const FieldPart *I015_V1_0_480_PARTS[] = {
+static const FieldPart * const I015_V1_0_480_PARTS[] = {
&I015_V1_0_480_VALUE,
NULL
};
@@ -12278,7 +12237,7 @@ static int hf_015_V1_0_600_P84_LATITUDE;
static const FieldPart I015_V1_0_600_P84_LATITUDE = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_015_V1_0_600_P84_LATITUDE, NULL };
static int hf_015_V1_0_600_P84_LONGITUDE;
static const FieldPart I015_V1_0_600_P84_LONGITUDE = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_015_V1_0_600_P84_LONGITUDE, NULL };
-static const FieldPart *I015_V1_0_600_P84_PARTS[] = {
+static const FieldPart * const I015_V1_0_600_P84_PARTS[] = {
&I015_V1_0_600_P84_LATITUDE,
&I015_V1_0_600_P84_LONGITUDE,
NULL
@@ -12291,7 +12250,7 @@ static int hf_015_V1_0_600_HPR_RSHPY;
static const FieldPart I015_V1_0_600_HPR_RSHPY = { 16, 0.5, FIELD_PART_UFLOAT, &hf_015_V1_0_600_HPR_RSHPY, NULL };
static int hf_015_V1_0_600_HPR_CORSHPXY;
static const FieldPart I015_V1_0_600_HPR_CORSHPXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_600_HPR_CORSHPXY, NULL };
-static const FieldPart *I015_V1_0_600_HPR_PARTS[] = {
+static const FieldPart * const I015_V1_0_600_HPR_PARTS[] = {
&I015_V1_0_600_HPR_RSHPX,
&I015_V1_0_600_HPR_RSHPY,
&I015_V1_0_600_HPR_CORSHPXY,
@@ -12305,7 +12264,7 @@ static int hf_015_V1_0_600_HPP_SDHPY;
static const FieldPart I015_V1_0_600_HPP_SDHPY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_015_V1_0_600_HPP_SDHPY, NULL };
static int hf_015_V1_0_600_HPP_COSDHPXY;
static const FieldPart I015_V1_0_600_HPP_COSDHPXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_600_HPP_COSDHPXY, NULL };
-static const FieldPart *I015_V1_0_600_HPP_PARTS[] = {
+static const FieldPart * const I015_V1_0_600_HPP_PARTS[] = {
&I015_V1_0_600_HPP_SDHPX,
&I015_V1_0_600_HPP_SDHPY,
&I015_V1_0_600_HPP_COSDHPXY,
@@ -12317,7 +12276,7 @@ static int hf_015_V1_0_601;
static int hf_015_V1_0_601_GH;
static int hf_015_V1_0_601_GH_VALUE;
static const FieldPart I015_V1_0_601_GH_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_V1_0_601_GH_VALUE, NULL };
-static const FieldPart *I015_V1_0_601_GH_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_GH_PARTS[] = {
&I015_V1_0_601_GH_VALUE,
NULL
};
@@ -12325,7 +12284,7 @@ static const AsterixField I015_V1_0_601_GH = { FIXED, 3, 0, 0, &hf_015_V1_0_601_
static int hf_015_V1_0_601_RSGH;
static int hf_015_V1_0_601_RSGH_VALUE;
static const FieldPart I015_V1_0_601_RSGH_VALUE = { 24, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_601_RSGH_VALUE, NULL };
-static const FieldPart *I015_V1_0_601_RSGH_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_RSGH_PARTS[] = {
&I015_V1_0_601_RSGH_VALUE,
NULL
};
@@ -12333,7 +12292,7 @@ static const AsterixField I015_V1_0_601_RSGH = { FIXED, 3, 0, 0, &hf_015_V1_0_60
static int hf_015_V1_0_601_SDGH;
static int hf_015_V1_0_601_SDGH_VALUE;
static const FieldPart I015_V1_0_601_SDGH_VALUE = { 24, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_601_SDGH_VALUE, NULL };
-static const FieldPart *I015_V1_0_601_SDGH_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_SDGH_PARTS[] = {
&I015_V1_0_601_SDGH_VALUE,
NULL
};
@@ -12343,7 +12302,7 @@ static int hf_015_V1_0_601_CI6_UCI6;
static const FieldPart I015_V1_0_601_CI6_UCI6 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_0_601_CI6_UCI6, NULL };
static int hf_015_V1_0_601_CI6_LCI6;
static const FieldPart I015_V1_0_601_CI6_LCI6 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_0_601_CI6_LCI6, NULL };
-static const FieldPart *I015_V1_0_601_CI6_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_CI6_PARTS[] = {
&I015_V1_0_601_CI6_UCI6,
&I015_V1_0_601_CI6_LCI6,
NULL
@@ -12354,7 +12313,7 @@ static int hf_015_V1_0_601_CI9_UCI9;
static const FieldPart I015_V1_0_601_CI9_UCI9 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_0_601_CI9_UCI9, NULL };
static int hf_015_V1_0_601_CI9_LCI9;
static const FieldPart I015_V1_0_601_CI9_LCI9 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_0_601_CI9_LCI9, NULL };
-static const FieldPart *I015_V1_0_601_CI9_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_CI9_PARTS[] = {
&I015_V1_0_601_CI9_UCI9,
&I015_V1_0_601_CI9_LCI9,
NULL
@@ -12365,7 +12324,7 @@ static int hf_015_V1_0_601_COGHHP_X;
static const FieldPart I015_V1_0_601_COGHHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_601_COGHHP_X, NULL };
static int hf_015_V1_0_601_COGHHP_Y;
static const FieldPart I015_V1_0_601_COGHHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_601_COGHHP_Y, NULL };
-static const FieldPart *I015_V1_0_601_COGHHP_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_COGHHP_PARTS[] = {
&I015_V1_0_601_COGHHP_X,
&I015_V1_0_601_COGHHP_Y,
NULL
@@ -12376,7 +12335,7 @@ static int hf_015_V1_0_601_COGHHV_X;
static const FieldPart I015_V1_0_601_COGHHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_601_COGHHV_X, NULL };
static int hf_015_V1_0_601_COGHHV_Y;
static const FieldPart I015_V1_0_601_COGHHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_601_COGHHV_Y, NULL };
-static const FieldPart *I015_V1_0_601_COGHHV_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_COGHHV_PARTS[] = {
&I015_V1_0_601_COGHHV_X,
&I015_V1_0_601_COGHHV_Y,
NULL
@@ -12387,7 +12346,7 @@ static int hf_015_V1_0_601_COGHHA_X;
static const FieldPart I015_V1_0_601_COGHHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_601_COGHHA_X, NULL };
static int hf_015_V1_0_601_COGHHA_Y;
static const FieldPart I015_V1_0_601_COGHHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_601_COGHHA_Y, NULL };
-static const FieldPart *I015_V1_0_601_COGHHA_PARTS[] = {
+static const FieldPart * const I015_V1_0_601_COGHHA_PARTS[] = {
&I015_V1_0_601_COGHHA_X,
&I015_V1_0_601_COGHHA_Y,
NULL
@@ -12400,7 +12359,7 @@ static int hf_015_V1_0_602_HV_X;
static const FieldPart I015_V1_0_602_HV_X = { 20, 0.01, FIELD_PART_FLOAT, &hf_015_V1_0_602_HV_X, NULL };
static int hf_015_V1_0_602_HV_Y;
static const FieldPart I015_V1_0_602_HV_Y = { 20, 0.01, FIELD_PART_FLOAT, &hf_015_V1_0_602_HV_Y, NULL };
-static const FieldPart *I015_V1_0_602_HV_PARTS[] = {
+static const FieldPart * const I015_V1_0_602_HV_PARTS[] = {
&I015_V1_0_602_HV_X,
&I015_V1_0_602_HV_Y,
NULL
@@ -12413,7 +12372,7 @@ static int hf_015_V1_0_602_RSHV_Y;
static const FieldPart I015_V1_0_602_RSHV_Y = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_602_RSHV_Y, NULL };
static int hf_015_V1_0_602_RSHV_CORSHVXY;
static const FieldPart I015_V1_0_602_RSHV_CORSHVXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_602_RSHV_CORSHVXY, NULL };
-static const FieldPart *I015_V1_0_602_RSHV_PARTS[] = {
+static const FieldPart * const I015_V1_0_602_RSHV_PARTS[] = {
&I015_V1_0_602_RSHV_X,
&I015_V1_0_602_RSHV_Y,
&I015_V1_0_602_RSHV_CORSHVXY,
@@ -12427,7 +12386,7 @@ static int hf_015_V1_0_602_SDHV_Y;
static const FieldPart I015_V1_0_602_SDHV_Y = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_602_SDHV_Y, NULL };
static int hf_015_V1_0_602_SDHV_COHVXY;
static const FieldPart I015_V1_0_602_SDHV_COHVXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_602_SDHV_COHVXY, NULL };
-static const FieldPart *I015_V1_0_602_SDHV_PARTS[] = {
+static const FieldPart * const I015_V1_0_602_SDHV_PARTS[] = {
&I015_V1_0_602_SDHV_X,
&I015_V1_0_602_SDHV_Y,
&I015_V1_0_602_SDHV_COHVXY,
@@ -12443,7 +12402,7 @@ static int hf_015_V1_0_602_COHVHP_COHVYHPX;
static const FieldPart I015_V1_0_602_COHVHP_COHVYHPX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_602_COHVHP_COHVYHPX, NULL };
static int hf_015_V1_0_602_COHVHP_COHVYHPY;
static const FieldPart I015_V1_0_602_COHVHP_COHVYHPY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_602_COHVHP_COHVYHPY, NULL };
-static const FieldPart *I015_V1_0_602_COHVHP_PARTS[] = {
+static const FieldPart * const I015_V1_0_602_COHVHP_PARTS[] = {
&I015_V1_0_602_COHVHP_COHVXHPX,
&I015_V1_0_602_COHVHP_COHVXHPY,
&I015_V1_0_602_COHVHP_COHVYHPX,
@@ -12458,7 +12417,7 @@ static int hf_015_V1_0_603_HA_X;
static const FieldPart I015_V1_0_603_HA_X = { 12, 0.0625, FIELD_PART_FLOAT, &hf_015_V1_0_603_HA_X, NULL };
static int hf_015_V1_0_603_HA_Y;
static const FieldPart I015_V1_0_603_HA_Y = { 12, 0.0625, FIELD_PART_FLOAT, &hf_015_V1_0_603_HA_Y, NULL };
-static const FieldPart *I015_V1_0_603_HA_PARTS[] = {
+static const FieldPart * const I015_V1_0_603_HA_PARTS[] = {
&I015_V1_0_603_HA_X,
&I015_V1_0_603_HA_Y,
NULL
@@ -12471,7 +12430,7 @@ static int hf_015_V1_0_603_SDHA_Y;
static const FieldPart I015_V1_0_603_SDHA_Y = { 12, 0.0625, FIELD_PART_UFLOAT, &hf_015_V1_0_603_SDHA_Y, NULL };
static int hf_015_V1_0_603_SDHA_COHAXY;
static const FieldPart I015_V1_0_603_SDHA_COHAXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_603_SDHA_COHAXY, NULL };
-static const FieldPart *I015_V1_0_603_SDHA_PARTS[] = {
+static const FieldPart * const I015_V1_0_603_SDHA_PARTS[] = {
&I015_V1_0_603_SDHA_X,
&I015_V1_0_603_SDHA_Y,
&I015_V1_0_603_SDHA_COHAXY,
@@ -12487,7 +12446,7 @@ static int hf_015_V1_0_603_COHAHP_COHAYHPX;
static const FieldPart I015_V1_0_603_COHAHP_COHAYHPX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_603_COHAHP_COHAYHPX, NULL };
static int hf_015_V1_0_603_COHAHP_COAYHPY;
static const FieldPart I015_V1_0_603_COHAHP_COAYHPY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_603_COHAHP_COAYHPY, NULL };
-static const FieldPart *I015_V1_0_603_COHAHP_PARTS[] = {
+static const FieldPart * const I015_V1_0_603_COHAHP_PARTS[] = {
&I015_V1_0_603_COHAHP_COHAXHPX,
&I015_V1_0_603_COHAHP_COHAXHPY,
&I015_V1_0_603_COHAHP_COHAYHPX,
@@ -12504,7 +12463,7 @@ static int hf_015_V1_0_603_COHAHV_COHAYHVX;
static const FieldPart I015_V1_0_603_COHAHV_COHAYHVX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_603_COHAHV_COHAYHVX, NULL };
static int hf_015_V1_0_603_COHAHV_COHAYHVY;
static const FieldPart I015_V1_0_603_COHAHV_COHAYHVY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_603_COHAHV_COHAYHVY, NULL };
-static const FieldPart *I015_V1_0_603_COHAHV_PARTS[] = {
+static const FieldPart * const I015_V1_0_603_COHAHV_PARTS[] = {
&I015_V1_0_603_COHAHV_COHAXHVX,
&I015_V1_0_603_COHAHV_COHAXHVY,
&I015_V1_0_603_COHAHV_COHAYHVX,
@@ -12517,7 +12476,7 @@ static int hf_015_V1_0_604;
static int hf_015_V1_0_604_VV;
static int hf_015_V1_0_604_VV_VALUE;
static const FieldPart I015_V1_0_604_VV_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_V1_0_604_VV_VALUE, NULL };
-static const FieldPart *I015_V1_0_604_VV_PARTS[] = {
+static const FieldPart * const I015_V1_0_604_VV_PARTS[] = {
&I015_V1_0_604_VV_VALUE,
NULL
};
@@ -12525,7 +12484,7 @@ static const AsterixField I015_V1_0_604_VV = { FIXED, 3, 0, 0, &hf_015_V1_0_604_
static int hf_015_V1_0_604_RSVV;
static int hf_015_V1_0_604_RSVV_VALUE;
static const FieldPart I015_V1_0_604_RSVV_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_604_RSVV_VALUE, NULL };
-static const FieldPart *I015_V1_0_604_RSVV_PARTS[] = {
+static const FieldPart * const I015_V1_0_604_RSVV_PARTS[] = {
&I015_V1_0_604_RSVV_VALUE,
NULL
};
@@ -12535,7 +12494,7 @@ static int hf_015_V1_0_604_SDVV_SDVV;
static const FieldPart I015_V1_0_604_SDVV_SDVV = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_0_604_SDVV_SDVV, NULL };
static int hf_015_V1_0_604_SDVV_COVVGH;
static const FieldPart I015_V1_0_604_SDVV_COVVGH = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_604_SDVV_COVVGH, NULL };
-static const FieldPart *I015_V1_0_604_SDVV_PARTS[] = {
+static const FieldPart * const I015_V1_0_604_SDVV_PARTS[] = {
&I015_V1_0_604_SDVV_SDVV,
&I015_V1_0_604_SDVV_COVVGH,
NULL
@@ -12546,7 +12505,7 @@ static int hf_015_V1_0_604_COVVHP_X;
static const FieldPart I015_V1_0_604_COVVHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_604_COVVHP_X, NULL };
static int hf_015_V1_0_604_COVVHP_Y;
static const FieldPart I015_V1_0_604_COVVHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_604_COVVHP_Y, NULL };
-static const FieldPart *I015_V1_0_604_COVVHP_PARTS[] = {
+static const FieldPart * const I015_V1_0_604_COVVHP_PARTS[] = {
&I015_V1_0_604_COVVHP_X,
&I015_V1_0_604_COVVHP_Y,
NULL
@@ -12557,7 +12516,7 @@ static int hf_015_V1_0_604_COVVHV_X;
static const FieldPart I015_V1_0_604_COVVHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_604_COVVHV_X, NULL };
static int hf_015_V1_0_604_COVVHV_Y;
static const FieldPart I015_V1_0_604_COVVHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_604_COVVHV_Y, NULL };
-static const FieldPart *I015_V1_0_604_COVVHV_PARTS[] = {
+static const FieldPart * const I015_V1_0_604_COVVHV_PARTS[] = {
&I015_V1_0_604_COVVHV_X,
&I015_V1_0_604_COVVHV_Y,
NULL
@@ -12568,7 +12527,7 @@ static int hf_015_V1_0_604_COVVHA_X;
static const FieldPart I015_V1_0_604_COVVHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_604_COVVHA_X, NULL };
static int hf_015_V1_0_604_COVVHA_Y;
static const FieldPart I015_V1_0_604_COVVHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_604_COVVHA_Y, NULL };
-static const FieldPart *I015_V1_0_604_COVVHA_PARTS[] = {
+static const FieldPart * const I015_V1_0_604_COVVHA_PARTS[] = {
&I015_V1_0_604_COVVHA_X,
&I015_V1_0_604_COVVHA_Y,
NULL
@@ -12579,7 +12538,7 @@ static int hf_015_V1_0_605;
static int hf_015_V1_0_605_VA;
static int hf_015_V1_0_605_VA_VALUE;
static const FieldPart I015_V1_0_605_VA_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_015_V1_0_605_VA_VALUE, NULL };
-static const FieldPart *I015_V1_0_605_VA_PARTS[] = {
+static const FieldPart * const I015_V1_0_605_VA_PARTS[] = {
&I015_V1_0_605_VA_VALUE,
NULL
};
@@ -12591,7 +12550,7 @@ static int hf_015_V1_0_605_RSVA_COVAGH;
static const FieldPart I015_V1_0_605_RSVA_COVAGH = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_RSVA_COVAGH, NULL };
static int hf_015_V1_0_605_RSVA_COVAVV;
static const FieldPart I015_V1_0_605_RSVA_COVAVV = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_RSVA_COVAVV, NULL };
-static const FieldPart *I015_V1_0_605_RSVA_PARTS[] = {
+static const FieldPart * const I015_V1_0_605_RSVA_PARTS[] = {
&I015_V1_0_605_RSVA_SDVA,
&I015_V1_0_605_RSVA_COVAGH,
&I015_V1_0_605_RSVA_COVAVV,
@@ -12603,7 +12562,7 @@ static int hf_015_V1_0_605_COVAHP_X;
static const FieldPart I015_V1_0_605_COVAHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_COVAHP_X, NULL };
static int hf_015_V1_0_605_COVAHP_Y;
static const FieldPart I015_V1_0_605_COVAHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_COVAHP_Y, NULL };
-static const FieldPart *I015_V1_0_605_COVAHP_PARTS[] = {
+static const FieldPart * const I015_V1_0_605_COVAHP_PARTS[] = {
&I015_V1_0_605_COVAHP_X,
&I015_V1_0_605_COVAHP_Y,
NULL
@@ -12614,7 +12573,7 @@ static int hf_015_V1_0_605_COVAHV_X;
static const FieldPart I015_V1_0_605_COVAHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_COVAHV_X, NULL };
static int hf_015_V1_0_605_COVAHV_Y;
static const FieldPart I015_V1_0_605_COVAHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_COVAHV_Y, NULL };
-static const FieldPart *I015_V1_0_605_COVAHV_PARTS[] = {
+static const FieldPart * const I015_V1_0_605_COVAHV_PARTS[] = {
&I015_V1_0_605_COVAHV_X,
&I015_V1_0_605_COVAHV_Y,
NULL
@@ -12625,7 +12584,7 @@ static int hf_015_V1_0_605_COVAHA_X;
static const FieldPart I015_V1_0_605_COVAHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_COVAHA_X, NULL };
static int hf_015_V1_0_605_COVAHA_Y;
static const FieldPart I015_V1_0_605_COVAHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_605_COVAHA_Y, NULL };
-static const FieldPart *I015_V1_0_605_COVAHA_PARTS[] = {
+static const FieldPart * const I015_V1_0_605_COVAHA_PARTS[] = {
&I015_V1_0_605_COVAHA_X,
&I015_V1_0_605_COVAHA_Y,
NULL
@@ -12636,7 +12595,7 @@ static int hf_015_V1_0_625;
static int hf_015_V1_0_625_R;
static int hf_015_V1_0_625_R_VALUE;
static const FieldPart I015_V1_0_625_R_VALUE = { 24, 0.1, FIELD_PART_FLOAT, &hf_015_V1_0_625_R_VALUE, NULL };
-static const FieldPart *I015_V1_0_625_R_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_R_PARTS[] = {
&I015_V1_0_625_R_VALUE,
NULL
};
@@ -12644,7 +12603,7 @@ static const AsterixField I015_V1_0_625_R = { FIXED, 3, 0, 0, &hf_015_V1_0_625_R
static int hf_015_V1_0_625_RSR;
static int hf_015_V1_0_625_RSR_VALUE;
static const FieldPart I015_V1_0_625_RSR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_0_625_RSR_VALUE, NULL };
-static const FieldPart *I015_V1_0_625_RSR_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_RSR_PARTS[] = {
&I015_V1_0_625_RSR_VALUE,
NULL
};
@@ -12652,7 +12611,7 @@ static const AsterixField I015_V1_0_625_RSR = { FIXED, 3, 0, 0, &hf_015_V1_0_625
static int hf_015_V1_0_625_SDR;
static int hf_015_V1_0_625_SDR_VALUE;
static const FieldPart I015_V1_0_625_SDR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_0_625_SDR_VALUE, NULL };
-static const FieldPart *I015_V1_0_625_SDR_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_SDR_PARTS[] = {
&I015_V1_0_625_SDR_VALUE,
NULL
};
@@ -12660,7 +12619,7 @@ static const AsterixField I015_V1_0_625_SDR = { FIXED, 3, 0, 0, &hf_015_V1_0_625
static int hf_015_V1_0_625_RR;
static int hf_015_V1_0_625_RR_VALUE;
static const FieldPart I015_V1_0_625_RR_VALUE = { 24, 0.1, FIELD_PART_FLOAT, &hf_015_V1_0_625_RR_VALUE, NULL };
-static const FieldPart *I015_V1_0_625_RR_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_RR_PARTS[] = {
&I015_V1_0_625_RR_VALUE,
NULL
};
@@ -12668,7 +12627,7 @@ static const AsterixField I015_V1_0_625_RR = { FIXED, 3, 0, 0, &hf_015_V1_0_625_
static int hf_015_V1_0_625_RSRR;
static int hf_015_V1_0_625_RSRR_VALUE;
static const FieldPart I015_V1_0_625_RSRR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_0_625_RSRR_VALUE, NULL };
-static const FieldPart *I015_V1_0_625_RSRR_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_RSRR_PARTS[] = {
&I015_V1_0_625_RSRR_VALUE,
NULL
};
@@ -12678,7 +12637,7 @@ static int hf_015_V1_0_625_SDRR_SDRR;
static const FieldPart I015_V1_0_625_SDRR_SDRR = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_0_625_SDRR_SDRR, NULL };
static int hf_015_V1_0_625_SDRR_CORRR;
static const FieldPart I015_V1_0_625_SDRR_CORRR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_625_SDRR_CORRR, NULL };
-static const FieldPart *I015_V1_0_625_SDRR_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_SDRR_PARTS[] = {
&I015_V1_0_625_SDRR_SDRR,
&I015_V1_0_625_SDRR_CORRR,
NULL
@@ -12687,7 +12646,7 @@ static const AsterixField I015_V1_0_625_SDRR = { FIXED, 4, 0, 0, &hf_015_V1_0_62
static int hf_015_V1_0_625_RA;
static int hf_015_V1_0_625_RA_VALUE;
static const FieldPart I015_V1_0_625_RA_VALUE = { 16, 0.015625, FIELD_PART_FLOAT, &hf_015_V1_0_625_RA_VALUE, NULL };
-static const FieldPart *I015_V1_0_625_RA_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_RA_PARTS[] = {
&I015_V1_0_625_RA_VALUE,
NULL
};
@@ -12699,7 +12658,7 @@ static int hf_015_V1_0_625_SDRA_CORAR;
static const FieldPart I015_V1_0_625_SDRA_CORAR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_625_SDRA_CORAR, NULL };
static int hf_015_V1_0_625_SDRA_CORARR;
static const FieldPart I015_V1_0_625_SDRA_CORARR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_625_SDRA_CORARR, NULL };
-static const FieldPart *I015_V1_0_625_SDRA_PARTS[] = {
+static const FieldPart * const I015_V1_0_625_SDRA_PARTS[] = {
&I015_V1_0_625_SDRA_SDRA,
&I015_V1_0_625_SDRA_CORAR,
&I015_V1_0_625_SDRA_CORARR,
@@ -12711,7 +12670,7 @@ static int hf_015_V1_0_626;
static int hf_015_V1_0_626_DV;
static int hf_015_V1_0_626_DV_VALUE;
static const FieldPart I015_V1_0_626_DV_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_V1_0_626_DV_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_DV_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_DV_PARTS[] = {
&I015_V1_0_626_DV_VALUE,
NULL
};
@@ -12719,7 +12678,7 @@ static const AsterixField I015_V1_0_626_DV = { FIXED, 3, 0, 0, &hf_015_V1_0_626_
static int hf_015_V1_0_626_SDDV;
static int hf_015_V1_0_626_SDDV_VALUE;
static const FieldPart I015_V1_0_626_SDDV_VALUE = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_015_V1_0_626_SDDV_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_SDDV_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_SDDV_PARTS[] = {
&I015_V1_0_626_SDDV_VALUE,
NULL
};
@@ -12727,7 +12686,7 @@ static const AsterixField I015_V1_0_626_SDDV = { FIXED, 2, 0, 0, &hf_015_V1_0_62
static int hf_015_V1_0_626_DA;
static int hf_015_V1_0_626_DA_VALUE;
static const FieldPart I015_V1_0_626_DA_VALUE = { 16, 0.015625, FIELD_PART_FLOAT, &hf_015_V1_0_626_DA_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_DA_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_DA_PARTS[] = {
&I015_V1_0_626_DA_VALUE,
NULL
};
@@ -12737,7 +12696,7 @@ static int hf_015_V1_0_626_SDDA_SDDA;
static const FieldPart I015_V1_0_626_SDDA_SDDA = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_015_V1_0_626_SDDA_SDDA, NULL };
static int hf_015_V1_0_626_SDDA_CODADV;
static const FieldPart I015_V1_0_626_SDDA_CODADV = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_626_SDDA_CODADV, NULL };
-static const FieldPart *I015_V1_0_626_SDDA_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_SDDA_PARTS[] = {
&I015_V1_0_626_SDDA_SDDA,
&I015_V1_0_626_SDDA_CODADV,
NULL
@@ -12746,7 +12705,7 @@ static const AsterixField I015_V1_0_626_SDDA = { FIXED, 3, 0, 0, &hf_015_V1_0_62
static int hf_015_V1_0_626_CODVR;
static int hf_015_V1_0_626_CODVR_VALUE;
static const FieldPart I015_V1_0_626_CODVR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_626_CODVR_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_CODVR_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_CODVR_PARTS[] = {
&I015_V1_0_626_CODVR_VALUE,
NULL
};
@@ -12754,7 +12713,7 @@ static const AsterixField I015_V1_0_626_CODVR = { FIXED, 1, 0, 0, &hf_015_V1_0_6
static int hf_015_V1_0_626_CODVRR;
static int hf_015_V1_0_626_CODVRR_VALUE;
static const FieldPart I015_V1_0_626_CODVRR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_626_CODVRR_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_CODVRR_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_CODVRR_PARTS[] = {
&I015_V1_0_626_CODVRR_VALUE,
NULL
};
@@ -12762,7 +12721,7 @@ static const AsterixField I015_V1_0_626_CODVRR = { FIXED, 1, 0, 0, &hf_015_V1_0_
static int hf_015_V1_0_626_CODVRA;
static int hf_015_V1_0_626_CODVRA_VALUE;
static const FieldPart I015_V1_0_626_CODVRA_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_626_CODVRA_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_CODVRA_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_CODVRA_PARTS[] = {
&I015_V1_0_626_CODVRA_VALUE,
NULL
};
@@ -12770,7 +12729,7 @@ static const AsterixField I015_V1_0_626_CODVRA = { FIXED, 1, 0, 0, &hf_015_V1_0_
static int hf_015_V1_0_626_CODAR;
static int hf_015_V1_0_626_CODAR_VALUE;
static const FieldPart I015_V1_0_626_CODAR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_626_CODAR_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_CODAR_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_CODAR_PARTS[] = {
&I015_V1_0_626_CODAR_VALUE,
NULL
};
@@ -12778,7 +12737,7 @@ static const AsterixField I015_V1_0_626_CODAR = { FIXED, 1, 0, 0, &hf_015_V1_0_6
static int hf_015_V1_0_626_CODARR;
static int hf_015_V1_0_626_CODARR_VALUE;
static const FieldPart I015_V1_0_626_CODARR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_626_CODARR_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_CODARR_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_CODARR_PARTS[] = {
&I015_V1_0_626_CODARR_VALUE,
NULL
};
@@ -12786,7 +12745,7 @@ static const AsterixField I015_V1_0_626_CODARR = { FIXED, 1, 0, 0, &hf_015_V1_0_
static int hf_015_V1_0_626_CODARA;
static int hf_015_V1_0_626_CODARA_VALUE;
static const FieldPart I015_V1_0_626_CODARA_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_626_CODARA_VALUE, NULL };
-static const FieldPart *I015_V1_0_626_CODARA_PARTS[] = {
+static const FieldPart * const I015_V1_0_626_CODARA_PARTS[] = {
&I015_V1_0_626_CODARA_VALUE,
NULL
};
@@ -12796,7 +12755,7 @@ static int hf_015_V1_0_627;
static int hf_015_V1_0_627_AZ;
static int hf_015_V1_0_627_AZ_VALUE;
static const FieldPart I015_V1_0_627_AZ_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_0_627_AZ_VALUE, NULL };
-static const FieldPart *I015_V1_0_627_AZ_PARTS[] = {
+static const FieldPart * const I015_V1_0_627_AZ_PARTS[] = {
&I015_V1_0_627_AZ_VALUE,
NULL
};
@@ -12804,7 +12763,7 @@ static const AsterixField I015_V1_0_627_AZ = { FIXED, 2, 0, 0, &hf_015_V1_0_627_
static int hf_015_V1_0_627_RSAZ;
static int hf_015_V1_0_627_RSAZ_VALUE;
static const FieldPart I015_V1_0_627_RSAZ_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_0_627_RSAZ_VALUE, NULL };
-static const FieldPart *I015_V1_0_627_RSAZ_PARTS[] = {
+static const FieldPart * const I015_V1_0_627_RSAZ_PARTS[] = {
&I015_V1_0_627_RSAZ_VALUE,
NULL
};
@@ -12812,7 +12771,7 @@ static const AsterixField I015_V1_0_627_RSAZ = { FIXED, 2, 0, 0, &hf_015_V1_0_62
static int hf_015_V1_0_627_SDASZ;
static int hf_015_V1_0_627_SDASZ_VALUE;
static const FieldPart I015_V1_0_627_SDASZ_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_0_627_SDASZ_VALUE, NULL };
-static const FieldPart *I015_V1_0_627_SDASZ_PARTS[] = {
+static const FieldPart * const I015_V1_0_627_SDASZ_PARTS[] = {
&I015_V1_0_627_SDASZ_VALUE,
NULL
};
@@ -12820,7 +12779,7 @@ static const AsterixField I015_V1_0_627_SDASZ = { FIXED, 2, 0, 0, &hf_015_V1_0_6
static int hf_015_V1_0_627_AZR;
static int hf_015_V1_0_627_AZR_VALUE;
static const FieldPart I015_V1_0_627_AZR_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_0_627_AZR_VALUE, NULL };
-static const FieldPart *I015_V1_0_627_AZR_PARTS[] = {
+static const FieldPart * const I015_V1_0_627_AZR_PARTS[] = {
&I015_V1_0_627_AZR_VALUE,
NULL
};
@@ -12830,7 +12789,7 @@ static int hf_015_V1_0_627_SDAZR_SDAZR;
static const FieldPart I015_V1_0_627_SDAZR_SDAZR = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_0_627_SDAZR_SDAZR, NULL };
static int hf_015_V1_0_627_SDAZR_COAZRAZ;
static const FieldPart I015_V1_0_627_SDAZR_COAZRAZ = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_627_SDAZR_COAZRAZ, NULL };
-static const FieldPart *I015_V1_0_627_SDAZR_PARTS[] = {
+static const FieldPart * const I015_V1_0_627_SDAZR_PARTS[] = {
&I015_V1_0_627_SDAZR_SDAZR,
&I015_V1_0_627_SDAZR_COAZRAZ,
NULL
@@ -12841,7 +12800,7 @@ static int hf_015_V1_0_627_AZEX_S;
static const FieldPart I015_V1_0_627_AZEX_S = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_0_627_AZEX_S, NULL };
static int hf_015_V1_0_627_AZEX_E;
static const FieldPart I015_V1_0_627_AZEX_E = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_0_627_AZEX_E, NULL };
-static const FieldPart *I015_V1_0_627_AZEX_PARTS[] = {
+static const FieldPart * const I015_V1_0_627_AZEX_PARTS[] = {
&I015_V1_0_627_AZEX_S,
&I015_V1_0_627_AZEX_E,
NULL
@@ -12852,7 +12811,7 @@ static int hf_015_V1_0_628;
static int hf_015_V1_0_628_EL;
static int hf_015_V1_0_628_EL_VALUE;
static const FieldPart I015_V1_0_628_EL_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_0_628_EL_VALUE, NULL };
-static const FieldPart *I015_V1_0_628_EL_PARTS[] = {
+static const FieldPart * const I015_V1_0_628_EL_PARTS[] = {
&I015_V1_0_628_EL_VALUE,
NULL
};
@@ -12860,7 +12819,7 @@ static const AsterixField I015_V1_0_628_EL = { FIXED, 2, 0, 0, &hf_015_V1_0_628_
static int hf_015_V1_0_628_RSEL;
static int hf_015_V1_0_628_RSEL_VALUE;
static const FieldPart I015_V1_0_628_RSEL_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_0_628_RSEL_VALUE, NULL };
-static const FieldPart *I015_V1_0_628_RSEL_PARTS[] = {
+static const FieldPart * const I015_V1_0_628_RSEL_PARTS[] = {
&I015_V1_0_628_RSEL_VALUE,
NULL
};
@@ -12868,7 +12827,7 @@ static const AsterixField I015_V1_0_628_RSEL = { FIXED, 2, 0, 0, &hf_015_V1_0_62
static int hf_015_V1_0_628_SDEL;
static int hf_015_V1_0_628_SDEL_VALUE;
static const FieldPart I015_V1_0_628_SDEL_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_0_628_SDEL_VALUE, NULL };
-static const FieldPart *I015_V1_0_628_SDEL_PARTS[] = {
+static const FieldPart * const I015_V1_0_628_SDEL_PARTS[] = {
&I015_V1_0_628_SDEL_VALUE,
NULL
};
@@ -12876,7 +12835,7 @@ static const AsterixField I015_V1_0_628_SDEL = { FIXED, 2, 0, 0, &hf_015_V1_0_62
static int hf_015_V1_0_628_ER;
static int hf_015_V1_0_628_ER_VALUE;
static const FieldPart I015_V1_0_628_ER_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_0_628_ER_VALUE, NULL };
-static const FieldPart *I015_V1_0_628_ER_PARTS[] = {
+static const FieldPart * const I015_V1_0_628_ER_PARTS[] = {
&I015_V1_0_628_ER_VALUE,
NULL
};
@@ -12886,7 +12845,7 @@ static int hf_015_V1_0_628_SDER_SDELR;
static const FieldPart I015_V1_0_628_SDER_SDELR = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_0_628_SDER_SDELR, NULL };
static int hf_015_V1_0_628_SDER_COELREL;
static const FieldPart I015_V1_0_628_SDER_COELREL = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_0_628_SDER_COELREL, NULL };
-static const FieldPart *I015_V1_0_628_SDER_PARTS[] = {
+static const FieldPart * const I015_V1_0_628_SDER_PARTS[] = {
&I015_V1_0_628_SDER_SDELR,
&I015_V1_0_628_SDER_COELREL,
NULL
@@ -12897,7 +12856,7 @@ static int hf_015_V1_0_628_ELEX_S;
static const FieldPart I015_V1_0_628_ELEX_S = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_0_628_ELEX_S, NULL };
static int hf_015_V1_0_628_ELEX_E;
static const FieldPart I015_V1_0_628_ELEX_E = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_0_628_ELEX_E, NULL };
-static const FieldPart *I015_V1_0_628_ELEX_PARTS[] = {
+static const FieldPart * const I015_V1_0_628_ELEX_PARTS[] = {
&I015_V1_0_628_ELEX_S,
&I015_V1_0_628_ELEX_E,
NULL
@@ -12908,7 +12867,7 @@ static int hf_015_V1_0_630;
static int hf_015_V1_0_630_DPP;
static int hf_015_V1_0_630_DPP_VALUE;
static const FieldPart I015_V1_0_630_DPP_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_V1_0_630_DPP_VALUE, NULL };
-static const FieldPart *I015_V1_0_630_DPP_PARTS[] = {
+static const FieldPart * const I015_V1_0_630_DPP_PARTS[] = {
&I015_V1_0_630_DPP_VALUE,
NULL
};
@@ -12916,7 +12875,7 @@ static const AsterixField I015_V1_0_630_DPP = { FIXED, 1, 0, 0, &hf_015_V1_0_630
static int hf_015_V1_0_630_DPS;
static int hf_015_V1_0_630_DPS_VALUE;
static const FieldPart I015_V1_0_630_DPS_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_V1_0_630_DPS_VALUE, NULL };
-static const FieldPart *I015_V1_0_630_DPS_PARTS[] = {
+static const FieldPart * const I015_V1_0_630_DPS_PARTS[] = {
&I015_V1_0_630_DPS_VALUE,
NULL
};
@@ -12924,7 +12883,7 @@ static const AsterixField I015_V1_0_630_DPS = { FIXED, 1, 0, 0, &hf_015_V1_0_630
static int hf_015_V1_0_630_RPP;
static int hf_015_V1_0_630_RPP_RPP;
static const FieldPart I015_V1_0_630_RPP_RPP = { 9, 1.0, FIELD_PART_FLOAT, &hf_015_V1_0_630_RPP_RPP, NULL };
-static const FieldPart *I015_V1_0_630_RPP_PARTS[] = {
+static const FieldPart * const I015_V1_0_630_RPP_PARTS[] = {
&IXXX_7bit_spare,
&I015_V1_0_630_RPP_RPP,
NULL
@@ -12933,7 +12892,7 @@ static const AsterixField I015_V1_0_630_RPP = { FIXED, 2, 0, 0, &hf_015_V1_0_630
static int hf_015_V1_0_630_RPS;
static int hf_015_V1_0_630_RPS_VALUE;
static const FieldPart I015_V1_0_630_RPS_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_V1_0_630_RPS_VALUE, NULL };
-static const FieldPart *I015_V1_0_630_RPS_PARTS[] = {
+static const FieldPart * const I015_V1_0_630_RPS_PARTS[] = {
&I015_V1_0_630_RPS_VALUE,
NULL
};
@@ -12948,7 +12907,7 @@ static int hf_015_V1_0_631_RGCONSTOP;
static const FieldPart I015_V1_0_631_RGCONSTOP = { 16, 0.152587890625, FIELD_PART_UFLOAT, &hf_015_V1_0_631_RGCONSTOP, NULL };
static int hf_015_V1_0_631_RGCONSTART;
static const FieldPart I015_V1_0_631_RGCONSTART = { 16, 0.152587890625, FIELD_PART_UFLOAT, &hf_015_V1_0_631_RGCONSTART, NULL };
-static const FieldPart *I015_V1_0_631_PARTS[] = {
+static const FieldPart * const I015_V1_0_631_PARTS[] = {
&I015_V1_0_631_AZCON,
&I015_V1_0_631_ELCON,
&I015_V1_0_631_RGCONSTOP,
@@ -12959,8 +12918,7 @@ static const AsterixField I015_V1_0_631 = { REPETITIVE, 8, 1, 0, &hf_015_V1_0_63
static int hf_015_V1_0_SP;
static const AsterixField I015_V1_0_SP = { EXP, 0, 0, 1, &hf_015_V1_0_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I015_V1_0_uap[] = {
+static const AsterixField * const I015_V1_0_uap[] = {
&I015_V1_0_010,
&I015_V1_0_000,
&I015_V1_0_015,
@@ -12989,11 +12947,10 @@ static const AsterixField *I015_V1_0_uap[] = {
&I015_V1_0_SP,
NULL
};
-static const AsterixField **I015_V1_0[] = {
+static const AsterixField * const * const I015_V1_0[] = {
I015_V1_0_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 015, edition 1.1 */
static int hf_015_V1_1_000;
@@ -13014,7 +12971,7 @@ static const value_string valstr_015_V1_1_000_RG[] = {
{ 0, NULL }
};
static const FieldPart I015_V1_1_000_RG = { 1, 1.0, FIELD_PART_UINT, &hf_015_V1_1_000_RG, NULL };
-static const FieldPart *I015_V1_1_000_PARTS[] = {
+static const FieldPart * const I015_V1_1_000_PARTS[] = {
&I015_V1_1_000_MT,
&I015_V1_1_000_RG,
NULL
@@ -13025,7 +12982,7 @@ static int hf_015_V1_1_010_SAC;
static const FieldPart I015_V1_1_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_015_V1_1_010_SAC, NULL };
static int hf_015_V1_1_010_SIC;
static const FieldPart I015_V1_1_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_015_V1_1_010_SIC, NULL };
-static const FieldPart *I015_V1_1_010_PARTS[] = {
+static const FieldPart * const I015_V1_1_010_PARTS[] = {
&I015_V1_1_010_SAC,
&I015_V1_1_010_SIC,
NULL
@@ -13034,7 +12991,7 @@ static const AsterixField I015_V1_1_010 = { FIXED, 2, 0, 0, &hf_015_V1_1_010, I0
static int hf_015_V1_1_015;
static int hf_015_V1_1_015_VALUE;
static const FieldPart I015_V1_1_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_015_V1_1_015_VALUE, NULL };
-static const FieldPart *I015_V1_1_015_PARTS[] = {
+static const FieldPart * const I015_V1_1_015_PARTS[] = {
&I015_V1_1_015_VALUE,
NULL
};
@@ -13067,7 +13024,7 @@ static const value_string valstr_015_V1_1_020_SCD[] = {
{ 0, NULL }
};
static const FieldPart I015_V1_1_020_SCD = { 2, 1.0, FIELD_PART_UINT, &hf_015_V1_1_020_SCD, NULL };
-static const FieldPart *I015_V1_1_020_PARTS[] = {
+static const FieldPart * const I015_V1_1_020_PARTS[] = {
&I015_V1_1_020_MOMU,
&I015_V1_1_020_TTAX,
&I015_V1_1_020_SCD,
@@ -13079,7 +13036,7 @@ static const AsterixField I015_V1_1_020 = { FX, 1, 0, 0, &hf_015_V1_1_020, I015_
static int hf_015_V1_1_030;
static int hf_015_V1_1_030_Subitem;
static const FieldPart I015_V1_1_030_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_015_V1_1_030_Subitem, NULL };
-static const FieldPart *I015_V1_1_030_PARTS[] = {
+static const FieldPart * const I015_V1_1_030_PARTS[] = {
&I015_V1_1_030_Subitem,
&IXXX_FX,
NULL
@@ -13088,7 +13045,7 @@ static const AsterixField I015_V1_1_030 = { FX, 1, 0, 0, &hf_015_V1_1_030, I015_
static int hf_015_V1_1_050;
static int hf_015_V1_1_050_UPD;
static const FieldPart I015_V1_1_050_UPD = { 14, 0.0078125, FIELD_PART_UFLOAT, &hf_015_V1_1_050_UPD, NULL };
-static const FieldPart *I015_V1_1_050_PARTS[] = {
+static const FieldPart * const I015_V1_1_050_PARTS[] = {
&IXXX_2bit_spare,
&I015_V1_1_050_UPD,
NULL
@@ -13097,7 +13054,7 @@ static const AsterixField I015_V1_1_050 = { FIXED, 2, 0, 0, &hf_015_V1_1_050, I0
static int hf_015_V1_1_145;
static int hf_015_V1_1_145_VALUE;
static const FieldPart I015_V1_1_145_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_015_V1_1_145_VALUE, NULL };
-static const FieldPart *I015_V1_1_145_PARTS[] = {
+static const FieldPart * const I015_V1_1_145_PARTS[] = {
&I015_V1_1_145_VALUE,
NULL
};
@@ -13105,7 +13062,7 @@ static const AsterixField I015_V1_1_145 = { FIXED, 3, 0, 0, &hf_015_V1_1_145, I0
static int hf_015_V1_1_161;
static int hf_015_V1_1_161_VALUE;
static const FieldPart I015_V1_1_161_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_015_V1_1_161_VALUE, NULL };
-static const FieldPart *I015_V1_1_161_PARTS[] = {
+static const FieldPart * const I015_V1_1_161_PARTS[] = {
&I015_V1_1_161_VALUE,
NULL
};
@@ -13153,7 +13110,7 @@ static const value_string valstr_015_V1_1_170_CNF[] = {
{ 0, NULL }
};
static const FieldPart I015_V1_1_170_CNF = { 1, 1.0, FIELD_PART_UINT, &hf_015_V1_1_170_CNF, NULL };
-static const FieldPart *I015_V1_1_170_PARTS[] = {
+static const FieldPart * const I015_V1_1_170_PARTS[] = {
&I015_V1_1_170_BIZ,
&I015_V1_1_170_BAZ,
&I015_V1_1_170_TUR,
@@ -13169,7 +13126,7 @@ static int hf_015_V1_1_270;
static int hf_015_V1_1_270_LEN;
static int hf_015_V1_1_270_LEN_VALUE;
static const FieldPart I015_V1_1_270_LEN_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_270_LEN_VALUE, NULL };
-static const FieldPart *I015_V1_1_270_LEN_PARTS[] = {
+static const FieldPart * const I015_V1_1_270_LEN_PARTS[] = {
&I015_V1_1_270_LEN_VALUE,
NULL
};
@@ -13177,7 +13134,7 @@ static const AsterixField I015_V1_1_270_LEN = { FIXED, 2, 0, 0, &hf_015_V1_1_270
static int hf_015_V1_1_270_WDT;
static int hf_015_V1_1_270_WDT_VALUE;
static const FieldPart I015_V1_1_270_WDT_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_270_WDT_VALUE, NULL };
-static const FieldPart *I015_V1_1_270_WDT_PARTS[] = {
+static const FieldPart * const I015_V1_1_270_WDT_PARTS[] = {
&I015_V1_1_270_WDT_VALUE,
NULL
};
@@ -13185,7 +13142,7 @@ static const AsterixField I015_V1_1_270_WDT = { FIXED, 2, 0, 0, &hf_015_V1_1_270
static int hf_015_V1_1_270_HGT;
static int hf_015_V1_1_270_HGT_VALUE;
static const FieldPart I015_V1_1_270_HGT_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_270_HGT_VALUE, NULL };
-static const FieldPart *I015_V1_1_270_HGT_PARTS[] = {
+static const FieldPart * const I015_V1_1_270_HGT_PARTS[] = {
&I015_V1_1_270_HGT_VALUE,
NULL
};
@@ -13193,7 +13150,7 @@ static const AsterixField I015_V1_1_270_HGT = { FIXED, 2, 0, 0, &hf_015_V1_1_270
static int hf_015_V1_1_270_ORT;
static int hf_015_V1_1_270_ORT_VALUE;
static const FieldPart I015_V1_1_270_ORT_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_1_270_ORT_VALUE, NULL };
-static const FieldPart *I015_V1_1_270_ORT_PARTS[] = {
+static const FieldPart * const I015_V1_1_270_ORT_PARTS[] = {
&I015_V1_1_270_ORT_VALUE,
NULL
};
@@ -13204,7 +13161,7 @@ static int hf_015_V1_1_300_CLS;
static const FieldPart I015_V1_1_300_CLS = { 9, 1.0, FIELD_PART_UINT, &hf_015_V1_1_300_CLS, NULL };
static int hf_015_V1_1_300_PRB;
static const FieldPart I015_V1_1_300_PRB = { 7, 1.0, FIELD_PART_UINT, &hf_015_V1_1_300_PRB, NULL };
-static const FieldPart *I015_V1_1_300_PARTS[] = {
+static const FieldPart * const I015_V1_1_300_PARTS[] = {
&I015_V1_1_300_CLS,
&I015_V1_1_300_PRB,
NULL
@@ -13215,7 +13172,7 @@ static int hf_015_V1_1_400_PID;
static const FieldPart I015_V1_1_400_PID = { 16, 1.0, FIELD_PART_UINT, &hf_015_V1_1_400_PID, NULL };
static int hf_015_V1_1_400_ON;
static const FieldPart I015_V1_1_400_ON = { 24, 1.0, FIELD_PART_UINT, &hf_015_V1_1_400_ON, NULL };
-static const FieldPart *I015_V1_1_400_PARTS[] = {
+static const FieldPart * const I015_V1_1_400_PARTS[] = {
&I015_V1_1_400_PID,
&I015_V1_1_400_ON,
NULL
@@ -13224,7 +13181,7 @@ static const AsterixField I015_V1_1_400 = { FIXED, 5, 0, 0, &hf_015_V1_1_400, I0
static int hf_015_V1_1_480;
static int hf_015_V1_1_480_VALUE;
static const FieldPart I015_V1_1_480_VALUE = { 40, 1.0, FIELD_PART_HEX, &hf_015_V1_1_480_VALUE, NULL };
-static const FieldPart *I015_V1_1_480_PARTS[] = {
+static const FieldPart * const I015_V1_1_480_PARTS[] = {
&I015_V1_1_480_VALUE,
NULL
};
@@ -13235,7 +13192,7 @@ static int hf_015_V1_1_600_P84_LATITUDE;
static const FieldPart I015_V1_1_600_P84_LATITUDE = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_015_V1_1_600_P84_LATITUDE, NULL };
static int hf_015_V1_1_600_P84_LONGITUDE;
static const FieldPart I015_V1_1_600_P84_LONGITUDE = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_015_V1_1_600_P84_LONGITUDE, NULL };
-static const FieldPart *I015_V1_1_600_P84_PARTS[] = {
+static const FieldPart * const I015_V1_1_600_P84_PARTS[] = {
&I015_V1_1_600_P84_LATITUDE,
&I015_V1_1_600_P84_LONGITUDE,
NULL
@@ -13248,7 +13205,7 @@ static int hf_015_V1_1_600_HPR_RSHPY;
static const FieldPart I015_V1_1_600_HPR_RSHPY = { 16, 0.5, FIELD_PART_UFLOAT, &hf_015_V1_1_600_HPR_RSHPY, NULL };
static int hf_015_V1_1_600_HPR_CORSHPXY;
static const FieldPart I015_V1_1_600_HPR_CORSHPXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_600_HPR_CORSHPXY, NULL };
-static const FieldPart *I015_V1_1_600_HPR_PARTS[] = {
+static const FieldPart * const I015_V1_1_600_HPR_PARTS[] = {
&I015_V1_1_600_HPR_RSHPX,
&I015_V1_1_600_HPR_RSHPY,
&I015_V1_1_600_HPR_CORSHPXY,
@@ -13262,7 +13219,7 @@ static int hf_015_V1_1_600_HPP_SDHPY;
static const FieldPart I015_V1_1_600_HPP_SDHPY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_015_V1_1_600_HPP_SDHPY, NULL };
static int hf_015_V1_1_600_HPP_COSDHPXY;
static const FieldPart I015_V1_1_600_HPP_COSDHPXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_600_HPP_COSDHPXY, NULL };
-static const FieldPart *I015_V1_1_600_HPP_PARTS[] = {
+static const FieldPart * const I015_V1_1_600_HPP_PARTS[] = {
&I015_V1_1_600_HPP_SDHPX,
&I015_V1_1_600_HPP_SDHPY,
&I015_V1_1_600_HPP_COSDHPXY,
@@ -13274,7 +13231,7 @@ static int hf_015_V1_1_601;
static int hf_015_V1_1_601_GH;
static int hf_015_V1_1_601_GH_VALUE;
static const FieldPart I015_V1_1_601_GH_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_V1_1_601_GH_VALUE, NULL };
-static const FieldPart *I015_V1_1_601_GH_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_GH_PARTS[] = {
&I015_V1_1_601_GH_VALUE,
NULL
};
@@ -13282,7 +13239,7 @@ static const AsterixField I015_V1_1_601_GH = { FIXED, 3, 0, 0, &hf_015_V1_1_601_
static int hf_015_V1_1_601_RSGH;
static int hf_015_V1_1_601_RSGH_VALUE;
static const FieldPart I015_V1_1_601_RSGH_VALUE = { 24, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_601_RSGH_VALUE, NULL };
-static const FieldPart *I015_V1_1_601_RSGH_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_RSGH_PARTS[] = {
&I015_V1_1_601_RSGH_VALUE,
NULL
};
@@ -13290,7 +13247,7 @@ static const AsterixField I015_V1_1_601_RSGH = { FIXED, 3, 0, 0, &hf_015_V1_1_60
static int hf_015_V1_1_601_SDGH;
static int hf_015_V1_1_601_SDGH_VALUE;
static const FieldPart I015_V1_1_601_SDGH_VALUE = { 24, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_601_SDGH_VALUE, NULL };
-static const FieldPart *I015_V1_1_601_SDGH_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_SDGH_PARTS[] = {
&I015_V1_1_601_SDGH_VALUE,
NULL
};
@@ -13300,7 +13257,7 @@ static int hf_015_V1_1_601_CI6_UCI6;
static const FieldPart I015_V1_1_601_CI6_UCI6 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_1_601_CI6_UCI6, NULL };
static int hf_015_V1_1_601_CI6_LCI6;
static const FieldPart I015_V1_1_601_CI6_LCI6 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_1_601_CI6_LCI6, NULL };
-static const FieldPart *I015_V1_1_601_CI6_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_CI6_PARTS[] = {
&I015_V1_1_601_CI6_UCI6,
&I015_V1_1_601_CI6_LCI6,
NULL
@@ -13311,7 +13268,7 @@ static int hf_015_V1_1_601_CI9_UCI9;
static const FieldPart I015_V1_1_601_CI9_UCI9 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_1_601_CI9_UCI9, NULL };
static int hf_015_V1_1_601_CI9_LCI9;
static const FieldPart I015_V1_1_601_CI9_LCI9 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_V1_1_601_CI9_LCI9, NULL };
-static const FieldPart *I015_V1_1_601_CI9_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_CI9_PARTS[] = {
&I015_V1_1_601_CI9_UCI9,
&I015_V1_1_601_CI9_LCI9,
NULL
@@ -13322,7 +13279,7 @@ static int hf_015_V1_1_601_COGHHP_X;
static const FieldPart I015_V1_1_601_COGHHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_601_COGHHP_X, NULL };
static int hf_015_V1_1_601_COGHHP_Y;
static const FieldPart I015_V1_1_601_COGHHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_601_COGHHP_Y, NULL };
-static const FieldPart *I015_V1_1_601_COGHHP_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_COGHHP_PARTS[] = {
&I015_V1_1_601_COGHHP_X,
&I015_V1_1_601_COGHHP_Y,
NULL
@@ -13333,7 +13290,7 @@ static int hf_015_V1_1_601_COGHHV_X;
static const FieldPart I015_V1_1_601_COGHHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_601_COGHHV_X, NULL };
static int hf_015_V1_1_601_COGHHV_Y;
static const FieldPart I015_V1_1_601_COGHHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_601_COGHHV_Y, NULL };
-static const FieldPart *I015_V1_1_601_COGHHV_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_COGHHV_PARTS[] = {
&I015_V1_1_601_COGHHV_X,
&I015_V1_1_601_COGHHV_Y,
NULL
@@ -13344,7 +13301,7 @@ static int hf_015_V1_1_601_COGHHA_X;
static const FieldPart I015_V1_1_601_COGHHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_601_COGHHA_X, NULL };
static int hf_015_V1_1_601_COGHHA_Y;
static const FieldPart I015_V1_1_601_COGHHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_601_COGHHA_Y, NULL };
-static const FieldPart *I015_V1_1_601_COGHHA_PARTS[] = {
+static const FieldPart * const I015_V1_1_601_COGHHA_PARTS[] = {
&I015_V1_1_601_COGHHA_X,
&I015_V1_1_601_COGHHA_Y,
NULL
@@ -13357,7 +13314,7 @@ static int hf_015_V1_1_602_HV_X;
static const FieldPart I015_V1_1_602_HV_X = { 20, 0.01, FIELD_PART_FLOAT, &hf_015_V1_1_602_HV_X, NULL };
static int hf_015_V1_1_602_HV_Y;
static const FieldPart I015_V1_1_602_HV_Y = { 20, 0.01, FIELD_PART_FLOAT, &hf_015_V1_1_602_HV_Y, NULL };
-static const FieldPart *I015_V1_1_602_HV_PARTS[] = {
+static const FieldPart * const I015_V1_1_602_HV_PARTS[] = {
&I015_V1_1_602_HV_X,
&I015_V1_1_602_HV_Y,
NULL
@@ -13370,7 +13327,7 @@ static int hf_015_V1_1_602_RSHV_Y;
static const FieldPart I015_V1_1_602_RSHV_Y = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_602_RSHV_Y, NULL };
static int hf_015_V1_1_602_RSHV_CORSHVXY;
static const FieldPart I015_V1_1_602_RSHV_CORSHVXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_602_RSHV_CORSHVXY, NULL };
-static const FieldPart *I015_V1_1_602_RSHV_PARTS[] = {
+static const FieldPart * const I015_V1_1_602_RSHV_PARTS[] = {
&I015_V1_1_602_RSHV_X,
&I015_V1_1_602_RSHV_Y,
&I015_V1_1_602_RSHV_CORSHVXY,
@@ -13384,7 +13341,7 @@ static int hf_015_V1_1_602_SDHV_Y;
static const FieldPart I015_V1_1_602_SDHV_Y = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_602_SDHV_Y, NULL };
static int hf_015_V1_1_602_SDHV_COHVXY;
static const FieldPart I015_V1_1_602_SDHV_COHVXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_602_SDHV_COHVXY, NULL };
-static const FieldPart *I015_V1_1_602_SDHV_PARTS[] = {
+static const FieldPart * const I015_V1_1_602_SDHV_PARTS[] = {
&I015_V1_1_602_SDHV_X,
&I015_V1_1_602_SDHV_Y,
&I015_V1_1_602_SDHV_COHVXY,
@@ -13400,7 +13357,7 @@ static int hf_015_V1_1_602_COHVHP_COHVYHPX;
static const FieldPart I015_V1_1_602_COHVHP_COHVYHPX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_602_COHVHP_COHVYHPX, NULL };
static int hf_015_V1_1_602_COHVHP_COHVYHPY;
static const FieldPart I015_V1_1_602_COHVHP_COHVYHPY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_602_COHVHP_COHVYHPY, NULL };
-static const FieldPart *I015_V1_1_602_COHVHP_PARTS[] = {
+static const FieldPart * const I015_V1_1_602_COHVHP_PARTS[] = {
&I015_V1_1_602_COHVHP_COHVXHPX,
&I015_V1_1_602_COHVHP_COHVXHPY,
&I015_V1_1_602_COHVHP_COHVYHPX,
@@ -13415,7 +13372,7 @@ static int hf_015_V1_1_603_HA_X;
static const FieldPart I015_V1_1_603_HA_X = { 12, 0.0625, FIELD_PART_FLOAT, &hf_015_V1_1_603_HA_X, NULL };
static int hf_015_V1_1_603_HA_Y;
static const FieldPart I015_V1_1_603_HA_Y = { 12, 0.0625, FIELD_PART_FLOAT, &hf_015_V1_1_603_HA_Y, NULL };
-static const FieldPart *I015_V1_1_603_HA_PARTS[] = {
+static const FieldPart * const I015_V1_1_603_HA_PARTS[] = {
&I015_V1_1_603_HA_X,
&I015_V1_1_603_HA_Y,
NULL
@@ -13428,7 +13385,7 @@ static int hf_015_V1_1_603_SDHA_Y;
static const FieldPart I015_V1_1_603_SDHA_Y = { 12, 0.0625, FIELD_PART_UFLOAT, &hf_015_V1_1_603_SDHA_Y, NULL };
static int hf_015_V1_1_603_SDHA_COHAXY;
static const FieldPart I015_V1_1_603_SDHA_COHAXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_603_SDHA_COHAXY, NULL };
-static const FieldPart *I015_V1_1_603_SDHA_PARTS[] = {
+static const FieldPart * const I015_V1_1_603_SDHA_PARTS[] = {
&I015_V1_1_603_SDHA_X,
&I015_V1_1_603_SDHA_Y,
&I015_V1_1_603_SDHA_COHAXY,
@@ -13444,7 +13401,7 @@ static int hf_015_V1_1_603_COHAHP_COHAYHPX;
static const FieldPart I015_V1_1_603_COHAHP_COHAYHPX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_603_COHAHP_COHAYHPX, NULL };
static int hf_015_V1_1_603_COHAHP_COAYHPY;
static const FieldPart I015_V1_1_603_COHAHP_COAYHPY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_603_COHAHP_COAYHPY, NULL };
-static const FieldPart *I015_V1_1_603_COHAHP_PARTS[] = {
+static const FieldPart * const I015_V1_1_603_COHAHP_PARTS[] = {
&I015_V1_1_603_COHAHP_COHAXHPX,
&I015_V1_1_603_COHAHP_COHAXHPY,
&I015_V1_1_603_COHAHP_COHAYHPX,
@@ -13461,7 +13418,7 @@ static int hf_015_V1_1_603_COHAHV_COHAYHVX;
static const FieldPart I015_V1_1_603_COHAHV_COHAYHVX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_603_COHAHV_COHAYHVX, NULL };
static int hf_015_V1_1_603_COHAHV_COHAYHVY;
static const FieldPart I015_V1_1_603_COHAHV_COHAYHVY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_603_COHAHV_COHAYHVY, NULL };
-static const FieldPart *I015_V1_1_603_COHAHV_PARTS[] = {
+static const FieldPart * const I015_V1_1_603_COHAHV_PARTS[] = {
&I015_V1_1_603_COHAHV_COHAXHVX,
&I015_V1_1_603_COHAHV_COHAXHVY,
&I015_V1_1_603_COHAHV_COHAYHVX,
@@ -13474,7 +13431,7 @@ static int hf_015_V1_1_604;
static int hf_015_V1_1_604_VV;
static int hf_015_V1_1_604_VV_VALUE;
static const FieldPart I015_V1_1_604_VV_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_V1_1_604_VV_VALUE, NULL };
-static const FieldPart *I015_V1_1_604_VV_PARTS[] = {
+static const FieldPart * const I015_V1_1_604_VV_PARTS[] = {
&I015_V1_1_604_VV_VALUE,
NULL
};
@@ -13482,7 +13439,7 @@ static const AsterixField I015_V1_1_604_VV = { FIXED, 3, 0, 0, &hf_015_V1_1_604_
static int hf_015_V1_1_604_RSVV;
static int hf_015_V1_1_604_RSVV_VALUE;
static const FieldPart I015_V1_1_604_RSVV_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_604_RSVV_VALUE, NULL };
-static const FieldPart *I015_V1_1_604_RSVV_PARTS[] = {
+static const FieldPart * const I015_V1_1_604_RSVV_PARTS[] = {
&I015_V1_1_604_RSVV_VALUE,
NULL
};
@@ -13492,7 +13449,7 @@ static int hf_015_V1_1_604_SDVV_SDVV;
static const FieldPart I015_V1_1_604_SDVV_SDVV = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_V1_1_604_SDVV_SDVV, NULL };
static int hf_015_V1_1_604_SDVV_COVVGH;
static const FieldPart I015_V1_1_604_SDVV_COVVGH = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_604_SDVV_COVVGH, NULL };
-static const FieldPart *I015_V1_1_604_SDVV_PARTS[] = {
+static const FieldPart * const I015_V1_1_604_SDVV_PARTS[] = {
&I015_V1_1_604_SDVV_SDVV,
&I015_V1_1_604_SDVV_COVVGH,
NULL
@@ -13503,7 +13460,7 @@ static int hf_015_V1_1_604_COVVHP_X;
static const FieldPart I015_V1_1_604_COVVHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_604_COVVHP_X, NULL };
static int hf_015_V1_1_604_COVVHP_Y;
static const FieldPart I015_V1_1_604_COVVHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_604_COVVHP_Y, NULL };
-static const FieldPart *I015_V1_1_604_COVVHP_PARTS[] = {
+static const FieldPart * const I015_V1_1_604_COVVHP_PARTS[] = {
&I015_V1_1_604_COVVHP_X,
&I015_V1_1_604_COVVHP_Y,
NULL
@@ -13514,7 +13471,7 @@ static int hf_015_V1_1_604_COVVHV_X;
static const FieldPart I015_V1_1_604_COVVHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_604_COVVHV_X, NULL };
static int hf_015_V1_1_604_COVVHV_Y;
static const FieldPart I015_V1_1_604_COVVHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_604_COVVHV_Y, NULL };
-static const FieldPart *I015_V1_1_604_COVVHV_PARTS[] = {
+static const FieldPart * const I015_V1_1_604_COVVHV_PARTS[] = {
&I015_V1_1_604_COVVHV_X,
&I015_V1_1_604_COVVHV_Y,
NULL
@@ -13525,7 +13482,7 @@ static int hf_015_V1_1_604_COVVHA_X;
static const FieldPart I015_V1_1_604_COVVHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_604_COVVHA_X, NULL };
static int hf_015_V1_1_604_COVVHA_Y;
static const FieldPart I015_V1_1_604_COVVHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_604_COVVHA_Y, NULL };
-static const FieldPart *I015_V1_1_604_COVVHA_PARTS[] = {
+static const FieldPart * const I015_V1_1_604_COVVHA_PARTS[] = {
&I015_V1_1_604_COVVHA_X,
&I015_V1_1_604_COVVHA_Y,
NULL
@@ -13536,7 +13493,7 @@ static int hf_015_V1_1_605;
static int hf_015_V1_1_605_VA;
static int hf_015_V1_1_605_VA_VALUE;
static const FieldPart I015_V1_1_605_VA_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_015_V1_1_605_VA_VALUE, NULL };
-static const FieldPart *I015_V1_1_605_VA_PARTS[] = {
+static const FieldPart * const I015_V1_1_605_VA_PARTS[] = {
&I015_V1_1_605_VA_VALUE,
NULL
};
@@ -13548,7 +13505,7 @@ static int hf_015_V1_1_605_RSVA_COVAGH;
static const FieldPart I015_V1_1_605_RSVA_COVAGH = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_RSVA_COVAGH, NULL };
static int hf_015_V1_1_605_RSVA_COVAVV;
static const FieldPart I015_V1_1_605_RSVA_COVAVV = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_RSVA_COVAVV, NULL };
-static const FieldPart *I015_V1_1_605_RSVA_PARTS[] = {
+static const FieldPart * const I015_V1_1_605_RSVA_PARTS[] = {
&I015_V1_1_605_RSVA_SDVA,
&I015_V1_1_605_RSVA_COVAGH,
&I015_V1_1_605_RSVA_COVAVV,
@@ -13560,7 +13517,7 @@ static int hf_015_V1_1_605_COVAHP_X;
static const FieldPart I015_V1_1_605_COVAHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_COVAHP_X, NULL };
static int hf_015_V1_1_605_COVAHP_Y;
static const FieldPart I015_V1_1_605_COVAHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_COVAHP_Y, NULL };
-static const FieldPart *I015_V1_1_605_COVAHP_PARTS[] = {
+static const FieldPart * const I015_V1_1_605_COVAHP_PARTS[] = {
&I015_V1_1_605_COVAHP_X,
&I015_V1_1_605_COVAHP_Y,
NULL
@@ -13571,7 +13528,7 @@ static int hf_015_V1_1_605_COVAHV_X;
static const FieldPart I015_V1_1_605_COVAHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_COVAHV_X, NULL };
static int hf_015_V1_1_605_COVAHV_Y;
static const FieldPart I015_V1_1_605_COVAHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_COVAHV_Y, NULL };
-static const FieldPart *I015_V1_1_605_COVAHV_PARTS[] = {
+static const FieldPart * const I015_V1_1_605_COVAHV_PARTS[] = {
&I015_V1_1_605_COVAHV_X,
&I015_V1_1_605_COVAHV_Y,
NULL
@@ -13582,7 +13539,7 @@ static int hf_015_V1_1_605_COVAHA_X;
static const FieldPart I015_V1_1_605_COVAHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_COVAHA_X, NULL };
static int hf_015_V1_1_605_COVAHA_Y;
static const FieldPart I015_V1_1_605_COVAHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_605_COVAHA_Y, NULL };
-static const FieldPart *I015_V1_1_605_COVAHA_PARTS[] = {
+static const FieldPart * const I015_V1_1_605_COVAHA_PARTS[] = {
&I015_V1_1_605_COVAHA_X,
&I015_V1_1_605_COVAHA_Y,
NULL
@@ -13593,7 +13550,7 @@ static int hf_015_V1_1_625;
static int hf_015_V1_1_625_R;
static int hf_015_V1_1_625_R_VALUE;
static const FieldPart I015_V1_1_625_R_VALUE = { 24, 0.1, FIELD_PART_FLOAT, &hf_015_V1_1_625_R_VALUE, NULL };
-static const FieldPart *I015_V1_1_625_R_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_R_PARTS[] = {
&I015_V1_1_625_R_VALUE,
NULL
};
@@ -13601,7 +13558,7 @@ static const AsterixField I015_V1_1_625_R = { FIXED, 3, 0, 0, &hf_015_V1_1_625_R
static int hf_015_V1_1_625_RSR;
static int hf_015_V1_1_625_RSR_VALUE;
static const FieldPart I015_V1_1_625_RSR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_1_625_RSR_VALUE, NULL };
-static const FieldPart *I015_V1_1_625_RSR_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_RSR_PARTS[] = {
&I015_V1_1_625_RSR_VALUE,
NULL
};
@@ -13609,7 +13566,7 @@ static const AsterixField I015_V1_1_625_RSR = { FIXED, 3, 0, 0, &hf_015_V1_1_625
static int hf_015_V1_1_625_SDR;
static int hf_015_V1_1_625_SDR_VALUE;
static const FieldPart I015_V1_1_625_SDR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_1_625_SDR_VALUE, NULL };
-static const FieldPart *I015_V1_1_625_SDR_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_SDR_PARTS[] = {
&I015_V1_1_625_SDR_VALUE,
NULL
};
@@ -13617,7 +13574,7 @@ static const AsterixField I015_V1_1_625_SDR = { FIXED, 3, 0, 0, &hf_015_V1_1_625
static int hf_015_V1_1_625_RR;
static int hf_015_V1_1_625_RR_VALUE;
static const FieldPart I015_V1_1_625_RR_VALUE = { 24, 0.1, FIELD_PART_FLOAT, &hf_015_V1_1_625_RR_VALUE, NULL };
-static const FieldPart *I015_V1_1_625_RR_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_RR_PARTS[] = {
&I015_V1_1_625_RR_VALUE,
NULL
};
@@ -13625,7 +13582,7 @@ static const AsterixField I015_V1_1_625_RR = { FIXED, 3, 0, 0, &hf_015_V1_1_625_
static int hf_015_V1_1_625_RSRR;
static int hf_015_V1_1_625_RSRR_VALUE;
static const FieldPart I015_V1_1_625_RSRR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_1_625_RSRR_VALUE, NULL };
-static const FieldPart *I015_V1_1_625_RSRR_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_RSRR_PARTS[] = {
&I015_V1_1_625_RSRR_VALUE,
NULL
};
@@ -13635,7 +13592,7 @@ static int hf_015_V1_1_625_SDRR_SDRR;
static const FieldPart I015_V1_1_625_SDRR_SDRR = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_V1_1_625_SDRR_SDRR, NULL };
static int hf_015_V1_1_625_SDRR_CORRR;
static const FieldPart I015_V1_1_625_SDRR_CORRR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_625_SDRR_CORRR, NULL };
-static const FieldPart *I015_V1_1_625_SDRR_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_SDRR_PARTS[] = {
&I015_V1_1_625_SDRR_SDRR,
&I015_V1_1_625_SDRR_CORRR,
NULL
@@ -13644,7 +13601,7 @@ static const AsterixField I015_V1_1_625_SDRR = { FIXED, 4, 0, 0, &hf_015_V1_1_62
static int hf_015_V1_1_625_RA;
static int hf_015_V1_1_625_RA_VALUE;
static const FieldPart I015_V1_1_625_RA_VALUE = { 16, 0.015625, FIELD_PART_FLOAT, &hf_015_V1_1_625_RA_VALUE, NULL };
-static const FieldPart *I015_V1_1_625_RA_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_RA_PARTS[] = {
&I015_V1_1_625_RA_VALUE,
NULL
};
@@ -13656,7 +13613,7 @@ static int hf_015_V1_1_625_SDRA_CORAR;
static const FieldPart I015_V1_1_625_SDRA_CORAR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_625_SDRA_CORAR, NULL };
static int hf_015_V1_1_625_SDRA_CORARR;
static const FieldPart I015_V1_1_625_SDRA_CORARR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_625_SDRA_CORARR, NULL };
-static const FieldPart *I015_V1_1_625_SDRA_PARTS[] = {
+static const FieldPart * const I015_V1_1_625_SDRA_PARTS[] = {
&I015_V1_1_625_SDRA_SDRA,
&I015_V1_1_625_SDRA_CORAR,
&I015_V1_1_625_SDRA_CORARR,
@@ -13668,7 +13625,7 @@ static int hf_015_V1_1_626;
static int hf_015_V1_1_626_DV;
static int hf_015_V1_1_626_DV_VALUE;
static const FieldPart I015_V1_1_626_DV_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_V1_1_626_DV_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_DV_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_DV_PARTS[] = {
&I015_V1_1_626_DV_VALUE,
NULL
};
@@ -13676,7 +13633,7 @@ static const AsterixField I015_V1_1_626_DV = { FIXED, 3, 0, 0, &hf_015_V1_1_626_
static int hf_015_V1_1_626_SDDV;
static int hf_015_V1_1_626_SDDV_VALUE;
static const FieldPart I015_V1_1_626_SDDV_VALUE = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_015_V1_1_626_SDDV_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_SDDV_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_SDDV_PARTS[] = {
&I015_V1_1_626_SDDV_VALUE,
NULL
};
@@ -13684,7 +13641,7 @@ static const AsterixField I015_V1_1_626_SDDV = { FIXED, 2, 0, 0, &hf_015_V1_1_62
static int hf_015_V1_1_626_DA;
static int hf_015_V1_1_626_DA_VALUE;
static const FieldPart I015_V1_1_626_DA_VALUE = { 16, 0.015625, FIELD_PART_FLOAT, &hf_015_V1_1_626_DA_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_DA_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_DA_PARTS[] = {
&I015_V1_1_626_DA_VALUE,
NULL
};
@@ -13694,7 +13651,7 @@ static int hf_015_V1_1_626_SDDA_SDDA;
static const FieldPart I015_V1_1_626_SDDA_SDDA = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_015_V1_1_626_SDDA_SDDA, NULL };
static int hf_015_V1_1_626_SDDA_CODADV;
static const FieldPart I015_V1_1_626_SDDA_CODADV = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_626_SDDA_CODADV, NULL };
-static const FieldPart *I015_V1_1_626_SDDA_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_SDDA_PARTS[] = {
&I015_V1_1_626_SDDA_SDDA,
&I015_V1_1_626_SDDA_CODADV,
NULL
@@ -13703,7 +13660,7 @@ static const AsterixField I015_V1_1_626_SDDA = { FIXED, 3, 0, 0, &hf_015_V1_1_62
static int hf_015_V1_1_626_CODVR;
static int hf_015_V1_1_626_CODVR_VALUE;
static const FieldPart I015_V1_1_626_CODVR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_626_CODVR_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_CODVR_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_CODVR_PARTS[] = {
&I015_V1_1_626_CODVR_VALUE,
NULL
};
@@ -13711,7 +13668,7 @@ static const AsterixField I015_V1_1_626_CODVR = { FIXED, 1, 0, 0, &hf_015_V1_1_6
static int hf_015_V1_1_626_CODVRR;
static int hf_015_V1_1_626_CODVRR_VALUE;
static const FieldPart I015_V1_1_626_CODVRR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_626_CODVRR_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_CODVRR_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_CODVRR_PARTS[] = {
&I015_V1_1_626_CODVRR_VALUE,
NULL
};
@@ -13719,7 +13676,7 @@ static const AsterixField I015_V1_1_626_CODVRR = { FIXED, 1, 0, 0, &hf_015_V1_1_
static int hf_015_V1_1_626_CODVRA;
static int hf_015_V1_1_626_CODVRA_VALUE;
static const FieldPart I015_V1_1_626_CODVRA_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_626_CODVRA_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_CODVRA_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_CODVRA_PARTS[] = {
&I015_V1_1_626_CODVRA_VALUE,
NULL
};
@@ -13727,7 +13684,7 @@ static const AsterixField I015_V1_1_626_CODVRA = { FIXED, 1, 0, 0, &hf_015_V1_1_
static int hf_015_V1_1_626_CODAR;
static int hf_015_V1_1_626_CODAR_VALUE;
static const FieldPart I015_V1_1_626_CODAR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_626_CODAR_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_CODAR_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_CODAR_PARTS[] = {
&I015_V1_1_626_CODAR_VALUE,
NULL
};
@@ -13735,7 +13692,7 @@ static const AsterixField I015_V1_1_626_CODAR = { FIXED, 1, 0, 0, &hf_015_V1_1_6
static int hf_015_V1_1_626_CODARR;
static int hf_015_V1_1_626_CODARR_VALUE;
static const FieldPart I015_V1_1_626_CODARR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_626_CODARR_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_CODARR_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_CODARR_PARTS[] = {
&I015_V1_1_626_CODARR_VALUE,
NULL
};
@@ -13743,7 +13700,7 @@ static const AsterixField I015_V1_1_626_CODARR = { FIXED, 1, 0, 0, &hf_015_V1_1_
static int hf_015_V1_1_626_CODARA;
static int hf_015_V1_1_626_CODARA_VALUE;
static const FieldPart I015_V1_1_626_CODARA_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_626_CODARA_VALUE, NULL };
-static const FieldPart *I015_V1_1_626_CODARA_PARTS[] = {
+static const FieldPart * const I015_V1_1_626_CODARA_PARTS[] = {
&I015_V1_1_626_CODARA_VALUE,
NULL
};
@@ -13753,7 +13710,7 @@ static int hf_015_V1_1_627;
static int hf_015_V1_1_627_AZ;
static int hf_015_V1_1_627_AZ_VALUE;
static const FieldPart I015_V1_1_627_AZ_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_1_627_AZ_VALUE, NULL };
-static const FieldPart *I015_V1_1_627_AZ_PARTS[] = {
+static const FieldPart * const I015_V1_1_627_AZ_PARTS[] = {
&I015_V1_1_627_AZ_VALUE,
NULL
};
@@ -13761,7 +13718,7 @@ static const AsterixField I015_V1_1_627_AZ = { FIXED, 2, 0, 0, &hf_015_V1_1_627_
static int hf_015_V1_1_627_RSAZ;
static int hf_015_V1_1_627_RSAZ_VALUE;
static const FieldPart I015_V1_1_627_RSAZ_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_1_627_RSAZ_VALUE, NULL };
-static const FieldPart *I015_V1_1_627_RSAZ_PARTS[] = {
+static const FieldPart * const I015_V1_1_627_RSAZ_PARTS[] = {
&I015_V1_1_627_RSAZ_VALUE,
NULL
};
@@ -13769,7 +13726,7 @@ static const AsterixField I015_V1_1_627_RSAZ = { FIXED, 2, 0, 0, &hf_015_V1_1_62
static int hf_015_V1_1_627_SDASZ;
static int hf_015_V1_1_627_SDASZ_VALUE;
static const FieldPart I015_V1_1_627_SDASZ_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_1_627_SDASZ_VALUE, NULL };
-static const FieldPart *I015_V1_1_627_SDASZ_PARTS[] = {
+static const FieldPart * const I015_V1_1_627_SDASZ_PARTS[] = {
&I015_V1_1_627_SDASZ_VALUE,
NULL
};
@@ -13777,7 +13734,7 @@ static const AsterixField I015_V1_1_627_SDASZ = { FIXED, 2, 0, 0, &hf_015_V1_1_6
static int hf_015_V1_1_627_AZR;
static int hf_015_V1_1_627_AZR_VALUE;
static const FieldPart I015_V1_1_627_AZR_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_1_627_AZR_VALUE, NULL };
-static const FieldPart *I015_V1_1_627_AZR_PARTS[] = {
+static const FieldPart * const I015_V1_1_627_AZR_PARTS[] = {
&I015_V1_1_627_AZR_VALUE,
NULL
};
@@ -13787,7 +13744,7 @@ static int hf_015_V1_1_627_SDAZR_SDAZR;
static const FieldPart I015_V1_1_627_SDAZR_SDAZR = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_1_627_SDAZR_SDAZR, NULL };
static int hf_015_V1_1_627_SDAZR_COAZRAZ;
static const FieldPart I015_V1_1_627_SDAZR_COAZRAZ = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_627_SDAZR_COAZRAZ, NULL };
-static const FieldPart *I015_V1_1_627_SDAZR_PARTS[] = {
+static const FieldPart * const I015_V1_1_627_SDAZR_PARTS[] = {
&I015_V1_1_627_SDAZR_SDAZR,
&I015_V1_1_627_SDAZR_COAZRAZ,
NULL
@@ -13798,7 +13755,7 @@ static int hf_015_V1_1_627_AZEX_S;
static const FieldPart I015_V1_1_627_AZEX_S = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_1_627_AZEX_S, NULL };
static int hf_015_V1_1_627_AZEX_E;
static const FieldPart I015_V1_1_627_AZEX_E = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_V1_1_627_AZEX_E, NULL };
-static const FieldPart *I015_V1_1_627_AZEX_PARTS[] = {
+static const FieldPart * const I015_V1_1_627_AZEX_PARTS[] = {
&I015_V1_1_627_AZEX_S,
&I015_V1_1_627_AZEX_E,
NULL
@@ -13809,7 +13766,7 @@ static int hf_015_V1_1_628;
static int hf_015_V1_1_628_EL;
static int hf_015_V1_1_628_EL_VALUE;
static const FieldPart I015_V1_1_628_EL_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_1_628_EL_VALUE, NULL };
-static const FieldPart *I015_V1_1_628_EL_PARTS[] = {
+static const FieldPart * const I015_V1_1_628_EL_PARTS[] = {
&I015_V1_1_628_EL_VALUE,
NULL
};
@@ -13817,7 +13774,7 @@ static const AsterixField I015_V1_1_628_EL = { FIXED, 2, 0, 0, &hf_015_V1_1_628_
static int hf_015_V1_1_628_RSEL;
static int hf_015_V1_1_628_RSEL_VALUE;
static const FieldPart I015_V1_1_628_RSEL_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_1_628_RSEL_VALUE, NULL };
-static const FieldPart *I015_V1_1_628_RSEL_PARTS[] = {
+static const FieldPart * const I015_V1_1_628_RSEL_PARTS[] = {
&I015_V1_1_628_RSEL_VALUE,
NULL
};
@@ -13825,7 +13782,7 @@ static const AsterixField I015_V1_1_628_RSEL = { FIXED, 2, 0, 0, &hf_015_V1_1_62
static int hf_015_V1_1_628_SDEL;
static int hf_015_V1_1_628_SDEL_VALUE;
static const FieldPart I015_V1_1_628_SDEL_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_1_628_SDEL_VALUE, NULL };
-static const FieldPart *I015_V1_1_628_SDEL_PARTS[] = {
+static const FieldPart * const I015_V1_1_628_SDEL_PARTS[] = {
&I015_V1_1_628_SDEL_VALUE,
NULL
};
@@ -13833,7 +13790,7 @@ static const AsterixField I015_V1_1_628_SDEL = { FIXED, 2, 0, 0, &hf_015_V1_1_62
static int hf_015_V1_1_628_ER;
static int hf_015_V1_1_628_ER_VALUE;
static const FieldPart I015_V1_1_628_ER_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_1_628_ER_VALUE, NULL };
-static const FieldPart *I015_V1_1_628_ER_PARTS[] = {
+static const FieldPart * const I015_V1_1_628_ER_PARTS[] = {
&I015_V1_1_628_ER_VALUE,
NULL
};
@@ -13843,7 +13800,7 @@ static int hf_015_V1_1_628_SDER_SDELR;
static const FieldPart I015_V1_1_628_SDER_SDELR = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_V1_1_628_SDER_SDELR, NULL };
static int hf_015_V1_1_628_SDER_COELREL;
static const FieldPart I015_V1_1_628_SDER_COELREL = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_V1_1_628_SDER_COELREL, NULL };
-static const FieldPart *I015_V1_1_628_SDER_PARTS[] = {
+static const FieldPart * const I015_V1_1_628_SDER_PARTS[] = {
&I015_V1_1_628_SDER_SDELR,
&I015_V1_1_628_SDER_COELREL,
NULL
@@ -13854,7 +13811,7 @@ static int hf_015_V1_1_628_ELEX_S;
static const FieldPart I015_V1_1_628_ELEX_S = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_1_628_ELEX_S, NULL };
static int hf_015_V1_1_628_ELEX_E;
static const FieldPart I015_V1_1_628_ELEX_E = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_V1_1_628_ELEX_E, NULL };
-static const FieldPart *I015_V1_1_628_ELEX_PARTS[] = {
+static const FieldPart * const I015_V1_1_628_ELEX_PARTS[] = {
&I015_V1_1_628_ELEX_S,
&I015_V1_1_628_ELEX_E,
NULL
@@ -13865,7 +13822,7 @@ static int hf_015_V1_1_630;
static int hf_015_V1_1_630_DPP;
static int hf_015_V1_1_630_DPP_VALUE;
static const FieldPart I015_V1_1_630_DPP_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_V1_1_630_DPP_VALUE, NULL };
-static const FieldPart *I015_V1_1_630_DPP_PARTS[] = {
+static const FieldPart * const I015_V1_1_630_DPP_PARTS[] = {
&I015_V1_1_630_DPP_VALUE,
NULL
};
@@ -13873,7 +13830,7 @@ static const AsterixField I015_V1_1_630_DPP = { FIXED, 1, 0, 0, &hf_015_V1_1_630
static int hf_015_V1_1_630_DPS;
static int hf_015_V1_1_630_DPS_VALUE;
static const FieldPart I015_V1_1_630_DPS_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_V1_1_630_DPS_VALUE, NULL };
-static const FieldPart *I015_V1_1_630_DPS_PARTS[] = {
+static const FieldPart * const I015_V1_1_630_DPS_PARTS[] = {
&I015_V1_1_630_DPS_VALUE,
NULL
};
@@ -13881,7 +13838,7 @@ static const AsterixField I015_V1_1_630_DPS = { FIXED, 1, 0, 0, &hf_015_V1_1_630
static int hf_015_V1_1_630_RPP;
static int hf_015_V1_1_630_RPP_RPP;
static const FieldPart I015_V1_1_630_RPP_RPP = { 9, 1.0, FIELD_PART_FLOAT, &hf_015_V1_1_630_RPP_RPP, NULL };
-static const FieldPart *I015_V1_1_630_RPP_PARTS[] = {
+static const FieldPart * const I015_V1_1_630_RPP_PARTS[] = {
&IXXX_7bit_spare,
&I015_V1_1_630_RPP_RPP,
NULL
@@ -13890,7 +13847,7 @@ static const AsterixField I015_V1_1_630_RPP = { FIXED, 2, 0, 0, &hf_015_V1_1_630
static int hf_015_V1_1_630_RPS;
static int hf_015_V1_1_630_RPS_VALUE;
static const FieldPart I015_V1_1_630_RPS_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_V1_1_630_RPS_VALUE, NULL };
-static const FieldPart *I015_V1_1_630_RPS_PARTS[] = {
+static const FieldPart * const I015_V1_1_630_RPS_PARTS[] = {
&I015_V1_1_630_RPS_VALUE,
NULL
};
@@ -13905,7 +13862,7 @@ static int hf_015_V1_1_631_RGCONSTOP;
static const FieldPart I015_V1_1_631_RGCONSTOP = { 16, 0.152587890625, FIELD_PART_UFLOAT, &hf_015_V1_1_631_RGCONSTOP, NULL };
static int hf_015_V1_1_631_RGCONSTART;
static const FieldPart I015_V1_1_631_RGCONSTART = { 16, 0.152587890625, FIELD_PART_UFLOAT, &hf_015_V1_1_631_RGCONSTART, NULL };
-static const FieldPart *I015_V1_1_631_PARTS[] = {
+static const FieldPart * const I015_V1_1_631_PARTS[] = {
&I015_V1_1_631_AZCON,
&I015_V1_1_631_ELCON,
&I015_V1_1_631_RGCONSTOP,
@@ -13935,7 +13892,7 @@ static const value_string valstr_015_000_RG[] = {
{ 0, NULL }
};
static const FieldPart I015_000_RG = { 1, 1.0, FIELD_PART_UINT, &hf_015_000_RG, NULL };
-static const FieldPart *I015_000_PARTS[] = {
+static const FieldPart * const I015_000_PARTS[] = {
&I015_000_MT,
&I015_000_RG,
NULL
@@ -13946,7 +13903,7 @@ static int hf_015_010_SAC;
static const FieldPart I015_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_015_010_SAC, NULL };
static int hf_015_010_SIC;
static const FieldPart I015_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_015_010_SIC, NULL };
-static const FieldPart *I015_010_PARTS[] = {
+static const FieldPart * const I015_010_PARTS[] = {
&I015_010_SAC,
&I015_010_SIC,
NULL
@@ -13955,7 +13912,7 @@ static const AsterixField I015_010 = { FIXED, 2, 0, 0, &hf_015_010, I015_010_PAR
static int hf_015_015;
static int hf_015_015_VALUE;
static const FieldPart I015_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_015_015_VALUE, NULL };
-static const FieldPart *I015_015_PARTS[] = {
+static const FieldPart * const I015_015_PARTS[] = {
&I015_015_VALUE,
NULL
};
@@ -13988,7 +13945,7 @@ static const value_string valstr_015_020_SCD[] = {
{ 0, NULL }
};
static const FieldPart I015_020_SCD = { 2, 1.0, FIELD_PART_UINT, &hf_015_020_SCD, NULL };
-static const FieldPart *I015_020_PARTS[] = {
+static const FieldPart * const I015_020_PARTS[] = {
&I015_020_MOMU,
&I015_020_TTAX,
&I015_020_SCD,
@@ -14000,7 +13957,7 @@ static const AsterixField I015_020 = { FX, 1, 0, 0, &hf_015_020, I015_020_PARTS,
static int hf_015_030;
static int hf_015_030_Subitem;
static const FieldPart I015_030_Subitem = { 7, 1.0, FIELD_PART_HEX, &hf_015_030_Subitem, NULL };
-static const FieldPart *I015_030_PARTS[] = {
+static const FieldPart * const I015_030_PARTS[] = {
&I015_030_Subitem,
&IXXX_FX,
NULL
@@ -14009,7 +13966,7 @@ static const AsterixField I015_030 = { FX, 1, 0, 0, &hf_015_030, I015_030_PARTS,
static int hf_015_050;
static int hf_015_050_UPD;
static const FieldPart I015_050_UPD = { 14, 0.0078125, FIELD_PART_UFLOAT, &hf_015_050_UPD, NULL };
-static const FieldPart *I015_050_PARTS[] = {
+static const FieldPart * const I015_050_PARTS[] = {
&IXXX_2bit_spare,
&I015_050_UPD,
NULL
@@ -14018,7 +13975,7 @@ static const AsterixField I015_050 = { FIXED, 2, 0, 0, &hf_015_050, I015_050_PAR
static int hf_015_145;
static int hf_015_145_VALUE;
static const FieldPart I015_145_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_015_145_VALUE, NULL };
-static const FieldPart *I015_145_PARTS[] = {
+static const FieldPart * const I015_145_PARTS[] = {
&I015_145_VALUE,
NULL
};
@@ -14026,7 +13983,7 @@ static const AsterixField I015_145 = { FIXED, 3, 0, 0, &hf_015_145, I015_145_PAR
static int hf_015_161;
static int hf_015_161_VALUE;
static const FieldPart I015_161_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_015_161_VALUE, NULL };
-static const FieldPart *I015_161_PARTS[] = {
+static const FieldPart * const I015_161_PARTS[] = {
&I015_161_VALUE,
NULL
};
@@ -14074,7 +14031,7 @@ static const value_string valstr_015_170_CNF[] = {
{ 0, NULL }
};
static const FieldPart I015_170_CNF = { 1, 1.0, FIELD_PART_UINT, &hf_015_170_CNF, NULL };
-static const FieldPart *I015_170_PARTS[] = {
+static const FieldPart * const I015_170_PARTS[] = {
&I015_170_BIZ,
&I015_170_BAZ,
&I015_170_TUR,
@@ -14090,7 +14047,7 @@ static int hf_015_270;
static int hf_015_270_LEN;
static int hf_015_270_LEN_VALUE;
static const FieldPart I015_270_LEN_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_270_LEN_VALUE, NULL };
-static const FieldPart *I015_270_LEN_PARTS[] = {
+static const FieldPart * const I015_270_LEN_PARTS[] = {
&I015_270_LEN_VALUE,
NULL
};
@@ -14098,7 +14055,7 @@ static const AsterixField I015_270_LEN = { FIXED, 2, 0, 0, &hf_015_270_LEN, I015
static int hf_015_270_WDT;
static int hf_015_270_WDT_VALUE;
static const FieldPart I015_270_WDT_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_270_WDT_VALUE, NULL };
-static const FieldPart *I015_270_WDT_PARTS[] = {
+static const FieldPart * const I015_270_WDT_PARTS[] = {
&I015_270_WDT_VALUE,
NULL
};
@@ -14106,7 +14063,7 @@ static const AsterixField I015_270_WDT = { FIXED, 2, 0, 0, &hf_015_270_WDT, I015
static int hf_015_270_HGT;
static int hf_015_270_HGT_VALUE;
static const FieldPart I015_270_HGT_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_270_HGT_VALUE, NULL };
-static const FieldPart *I015_270_HGT_PARTS[] = {
+static const FieldPart * const I015_270_HGT_PARTS[] = {
&I015_270_HGT_VALUE,
NULL
};
@@ -14114,7 +14071,7 @@ static const AsterixField I015_270_HGT = { FIXED, 2, 0, 0, &hf_015_270_HGT, I015
static int hf_015_270_ORT;
static int hf_015_270_ORT_VALUE;
static const FieldPart I015_270_ORT_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_270_ORT_VALUE, NULL };
-static const FieldPart *I015_270_ORT_PARTS[] = {
+static const FieldPart * const I015_270_ORT_PARTS[] = {
&I015_270_ORT_VALUE,
NULL
};
@@ -14125,7 +14082,7 @@ static int hf_015_300_CLS;
static const FieldPart I015_300_CLS = { 9, 1.0, FIELD_PART_UINT, &hf_015_300_CLS, NULL };
static int hf_015_300_PRB;
static const FieldPart I015_300_PRB = { 7, 1.0, FIELD_PART_UINT, &hf_015_300_PRB, NULL };
-static const FieldPart *I015_300_PARTS[] = {
+static const FieldPart * const I015_300_PARTS[] = {
&I015_300_CLS,
&I015_300_PRB,
NULL
@@ -14136,7 +14093,7 @@ static int hf_015_400_PID;
static const FieldPart I015_400_PID = { 16, 1.0, FIELD_PART_UINT, &hf_015_400_PID, NULL };
static int hf_015_400_ON;
static const FieldPart I015_400_ON = { 24, 1.0, FIELD_PART_UINT, &hf_015_400_ON, NULL };
-static const FieldPart *I015_400_PARTS[] = {
+static const FieldPart * const I015_400_PARTS[] = {
&I015_400_PID,
&I015_400_ON,
NULL
@@ -14145,7 +14102,7 @@ static const AsterixField I015_400 = { FIXED, 5, 0, 0, &hf_015_400, I015_400_PAR
static int hf_015_480;
static int hf_015_480_VALUE;
static const FieldPart I015_480_VALUE = { 40, 1.0, FIELD_PART_HEX, &hf_015_480_VALUE, NULL };
-static const FieldPart *I015_480_PARTS[] = {
+static const FieldPart * const I015_480_PARTS[] = {
&I015_480_VALUE,
NULL
};
@@ -14156,7 +14113,7 @@ static int hf_015_600_P84_LATITUDE;
static const FieldPart I015_600_P84_LATITUDE = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_015_600_P84_LATITUDE, NULL };
static int hf_015_600_P84_LONGITUDE;
static const FieldPart I015_600_P84_LONGITUDE = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_015_600_P84_LONGITUDE, NULL };
-static const FieldPart *I015_600_P84_PARTS[] = {
+static const FieldPart * const I015_600_P84_PARTS[] = {
&I015_600_P84_LATITUDE,
&I015_600_P84_LONGITUDE,
NULL
@@ -14169,7 +14126,7 @@ static int hf_015_600_HPR_RSHPY;
static const FieldPart I015_600_HPR_RSHPY = { 16, 0.5, FIELD_PART_UFLOAT, &hf_015_600_HPR_RSHPY, NULL };
static int hf_015_600_HPR_CORSHPXY;
static const FieldPart I015_600_HPR_CORSHPXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_600_HPR_CORSHPXY, NULL };
-static const FieldPart *I015_600_HPR_PARTS[] = {
+static const FieldPart * const I015_600_HPR_PARTS[] = {
&I015_600_HPR_RSHPX,
&I015_600_HPR_RSHPY,
&I015_600_HPR_CORSHPXY,
@@ -14183,7 +14140,7 @@ static int hf_015_600_HPP_SDHPY;
static const FieldPart I015_600_HPP_SDHPY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_015_600_HPP_SDHPY, NULL };
static int hf_015_600_HPP_COSDHPXY;
static const FieldPart I015_600_HPP_COSDHPXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_600_HPP_COSDHPXY, NULL };
-static const FieldPart *I015_600_HPP_PARTS[] = {
+static const FieldPart * const I015_600_HPP_PARTS[] = {
&I015_600_HPP_SDHPX,
&I015_600_HPP_SDHPY,
&I015_600_HPP_COSDHPXY,
@@ -14195,7 +14152,7 @@ static int hf_015_601;
static int hf_015_601_GH;
static int hf_015_601_GH_VALUE;
static const FieldPart I015_601_GH_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_601_GH_VALUE, NULL };
-static const FieldPart *I015_601_GH_PARTS[] = {
+static const FieldPart * const I015_601_GH_PARTS[] = {
&I015_601_GH_VALUE,
NULL
};
@@ -14203,7 +14160,7 @@ static const AsterixField I015_601_GH = { FIXED, 3, 0, 0, &hf_015_601_GH, I015_6
static int hf_015_601_RSGH;
static int hf_015_601_RSGH_VALUE;
static const FieldPart I015_601_RSGH_VALUE = { 24, 0.01, FIELD_PART_UFLOAT, &hf_015_601_RSGH_VALUE, NULL };
-static const FieldPart *I015_601_RSGH_PARTS[] = {
+static const FieldPart * const I015_601_RSGH_PARTS[] = {
&I015_601_RSGH_VALUE,
NULL
};
@@ -14211,7 +14168,7 @@ static const AsterixField I015_601_RSGH = { FIXED, 3, 0, 0, &hf_015_601_RSGH, I0
static int hf_015_601_SDGH;
static int hf_015_601_SDGH_VALUE;
static const FieldPart I015_601_SDGH_VALUE = { 24, 0.01, FIELD_PART_UFLOAT, &hf_015_601_SDGH_VALUE, NULL };
-static const FieldPart *I015_601_SDGH_PARTS[] = {
+static const FieldPart * const I015_601_SDGH_PARTS[] = {
&I015_601_SDGH_VALUE,
NULL
};
@@ -14221,7 +14178,7 @@ static int hf_015_601_CI6_UCI6;
static const FieldPart I015_601_CI6_UCI6 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_601_CI6_UCI6, NULL };
static int hf_015_601_CI6_LCI6;
static const FieldPart I015_601_CI6_LCI6 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_601_CI6_LCI6, NULL };
-static const FieldPart *I015_601_CI6_PARTS[] = {
+static const FieldPart * const I015_601_CI6_PARTS[] = {
&I015_601_CI6_UCI6,
&I015_601_CI6_LCI6,
NULL
@@ -14232,7 +14189,7 @@ static int hf_015_601_CI9_UCI9;
static const FieldPart I015_601_CI9_UCI9 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_601_CI9_UCI9, NULL };
static int hf_015_601_CI9_LCI9;
static const FieldPart I015_601_CI9_LCI9 = { 12, 16.0, FIELD_PART_UFLOAT, &hf_015_601_CI9_LCI9, NULL };
-static const FieldPart *I015_601_CI9_PARTS[] = {
+static const FieldPart * const I015_601_CI9_PARTS[] = {
&I015_601_CI9_UCI9,
&I015_601_CI9_LCI9,
NULL
@@ -14243,7 +14200,7 @@ static int hf_015_601_COGHHP_X;
static const FieldPart I015_601_COGHHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_601_COGHHP_X, NULL };
static int hf_015_601_COGHHP_Y;
static const FieldPart I015_601_COGHHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_601_COGHHP_Y, NULL };
-static const FieldPart *I015_601_COGHHP_PARTS[] = {
+static const FieldPart * const I015_601_COGHHP_PARTS[] = {
&I015_601_COGHHP_X,
&I015_601_COGHHP_Y,
NULL
@@ -14254,7 +14211,7 @@ static int hf_015_601_COGHHV_X;
static const FieldPart I015_601_COGHHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_601_COGHHV_X, NULL };
static int hf_015_601_COGHHV_Y;
static const FieldPart I015_601_COGHHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_601_COGHHV_Y, NULL };
-static const FieldPart *I015_601_COGHHV_PARTS[] = {
+static const FieldPart * const I015_601_COGHHV_PARTS[] = {
&I015_601_COGHHV_X,
&I015_601_COGHHV_Y,
NULL
@@ -14265,7 +14222,7 @@ static int hf_015_601_COGHHA_X;
static const FieldPart I015_601_COGHHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_601_COGHHA_X, NULL };
static int hf_015_601_COGHHA_Y;
static const FieldPart I015_601_COGHHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_601_COGHHA_Y, NULL };
-static const FieldPart *I015_601_COGHHA_PARTS[] = {
+static const FieldPart * const I015_601_COGHHA_PARTS[] = {
&I015_601_COGHHA_X,
&I015_601_COGHHA_Y,
NULL
@@ -14278,7 +14235,7 @@ static int hf_015_602_HV_X;
static const FieldPart I015_602_HV_X = { 20, 0.01, FIELD_PART_FLOAT, &hf_015_602_HV_X, NULL };
static int hf_015_602_HV_Y;
static const FieldPart I015_602_HV_Y = { 20, 0.01, FIELD_PART_FLOAT, &hf_015_602_HV_Y, NULL };
-static const FieldPart *I015_602_HV_PARTS[] = {
+static const FieldPart * const I015_602_HV_PARTS[] = {
&I015_602_HV_X,
&I015_602_HV_Y,
NULL
@@ -14291,7 +14248,7 @@ static int hf_015_602_RSHV_Y;
static const FieldPart I015_602_RSHV_Y = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_602_RSHV_Y, NULL };
static int hf_015_602_RSHV_CORSHVXY;
static const FieldPart I015_602_RSHV_CORSHVXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_602_RSHV_CORSHVXY, NULL };
-static const FieldPart *I015_602_RSHV_PARTS[] = {
+static const FieldPart * const I015_602_RSHV_PARTS[] = {
&I015_602_RSHV_X,
&I015_602_RSHV_Y,
&I015_602_RSHV_CORSHVXY,
@@ -14305,7 +14262,7 @@ static int hf_015_602_SDHV_Y;
static const FieldPart I015_602_SDHV_Y = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_602_SDHV_Y, NULL };
static int hf_015_602_SDHV_COHVXY;
static const FieldPart I015_602_SDHV_COHVXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_602_SDHV_COHVXY, NULL };
-static const FieldPart *I015_602_SDHV_PARTS[] = {
+static const FieldPart * const I015_602_SDHV_PARTS[] = {
&I015_602_SDHV_X,
&I015_602_SDHV_Y,
&I015_602_SDHV_COHVXY,
@@ -14321,7 +14278,7 @@ static int hf_015_602_COHVHP_COHVYHPX;
static const FieldPart I015_602_COHVHP_COHVYHPX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_602_COHVHP_COHVYHPX, NULL };
static int hf_015_602_COHVHP_COHVYHPY;
static const FieldPart I015_602_COHVHP_COHVYHPY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_602_COHVHP_COHVYHPY, NULL };
-static const FieldPart *I015_602_COHVHP_PARTS[] = {
+static const FieldPart * const I015_602_COHVHP_PARTS[] = {
&I015_602_COHVHP_COHVXHPX,
&I015_602_COHVHP_COHVXHPY,
&I015_602_COHVHP_COHVYHPX,
@@ -14336,7 +14293,7 @@ static int hf_015_603_HA_X;
static const FieldPart I015_603_HA_X = { 12, 0.0625, FIELD_PART_FLOAT, &hf_015_603_HA_X, NULL };
static int hf_015_603_HA_Y;
static const FieldPart I015_603_HA_Y = { 12, 0.0625, FIELD_PART_FLOAT, &hf_015_603_HA_Y, NULL };
-static const FieldPart *I015_603_HA_PARTS[] = {
+static const FieldPart * const I015_603_HA_PARTS[] = {
&I015_603_HA_X,
&I015_603_HA_Y,
NULL
@@ -14349,7 +14306,7 @@ static int hf_015_603_SDHA_Y;
static const FieldPart I015_603_SDHA_Y = { 12, 0.0625, FIELD_PART_UFLOAT, &hf_015_603_SDHA_Y, NULL };
static int hf_015_603_SDHA_COHAXY;
static const FieldPart I015_603_SDHA_COHAXY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_603_SDHA_COHAXY, NULL };
-static const FieldPart *I015_603_SDHA_PARTS[] = {
+static const FieldPart * const I015_603_SDHA_PARTS[] = {
&I015_603_SDHA_X,
&I015_603_SDHA_Y,
&I015_603_SDHA_COHAXY,
@@ -14365,7 +14322,7 @@ static int hf_015_603_COHAHP_COHAYHPX;
static const FieldPart I015_603_COHAHP_COHAYHPX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_603_COHAHP_COHAYHPX, NULL };
static int hf_015_603_COHAHP_COAYHPY;
static const FieldPart I015_603_COHAHP_COAYHPY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_603_COHAHP_COAYHPY, NULL };
-static const FieldPart *I015_603_COHAHP_PARTS[] = {
+static const FieldPart * const I015_603_COHAHP_PARTS[] = {
&I015_603_COHAHP_COHAXHPX,
&I015_603_COHAHP_COHAXHPY,
&I015_603_COHAHP_COHAYHPX,
@@ -14382,7 +14339,7 @@ static int hf_015_603_COHAHV_COHAYHVX;
static const FieldPart I015_603_COHAHV_COHAYHVX = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_603_COHAHV_COHAYHVX, NULL };
static int hf_015_603_COHAHV_COHAYHVY;
static const FieldPart I015_603_COHAHV_COHAYHVY = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_603_COHAHV_COHAYHVY, NULL };
-static const FieldPart *I015_603_COHAHV_PARTS[] = {
+static const FieldPart * const I015_603_COHAHV_PARTS[] = {
&I015_603_COHAHV_COHAXHVX,
&I015_603_COHAHV_COHAXHVY,
&I015_603_COHAHV_COHAYHVX,
@@ -14395,7 +14352,7 @@ static int hf_015_604;
static int hf_015_604_VV;
static int hf_015_604_VV_VALUE;
static const FieldPart I015_604_VV_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_604_VV_VALUE, NULL };
-static const FieldPart *I015_604_VV_PARTS[] = {
+static const FieldPart * const I015_604_VV_PARTS[] = {
&I015_604_VV_VALUE,
NULL
};
@@ -14403,7 +14360,7 @@ static const AsterixField I015_604_VV = { FIXED, 3, 0, 0, &hf_015_604_VV, I015_6
static int hf_015_604_RSVV;
static int hf_015_604_RSVV_VALUE;
static const FieldPart I015_604_RSVV_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_604_RSVV_VALUE, NULL };
-static const FieldPart *I015_604_RSVV_PARTS[] = {
+static const FieldPart * const I015_604_RSVV_PARTS[] = {
&I015_604_RSVV_VALUE,
NULL
};
@@ -14413,7 +14370,7 @@ static int hf_015_604_SDVV_SDVV;
static const FieldPart I015_604_SDVV_SDVV = { 16, 0.01, FIELD_PART_UFLOAT, &hf_015_604_SDVV_SDVV, NULL };
static int hf_015_604_SDVV_COVVGH;
static const FieldPart I015_604_SDVV_COVVGH = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_604_SDVV_COVVGH, NULL };
-static const FieldPart *I015_604_SDVV_PARTS[] = {
+static const FieldPart * const I015_604_SDVV_PARTS[] = {
&I015_604_SDVV_SDVV,
&I015_604_SDVV_COVVGH,
NULL
@@ -14424,7 +14381,7 @@ static int hf_015_604_COVVHP_X;
static const FieldPart I015_604_COVVHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_604_COVVHP_X, NULL };
static int hf_015_604_COVVHP_Y;
static const FieldPart I015_604_COVVHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_604_COVVHP_Y, NULL };
-static const FieldPart *I015_604_COVVHP_PARTS[] = {
+static const FieldPart * const I015_604_COVVHP_PARTS[] = {
&I015_604_COVVHP_X,
&I015_604_COVVHP_Y,
NULL
@@ -14435,7 +14392,7 @@ static int hf_015_604_COVVHV_X;
static const FieldPart I015_604_COVVHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_604_COVVHV_X, NULL };
static int hf_015_604_COVVHV_Y;
static const FieldPart I015_604_COVVHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_604_COVVHV_Y, NULL };
-static const FieldPart *I015_604_COVVHV_PARTS[] = {
+static const FieldPart * const I015_604_COVVHV_PARTS[] = {
&I015_604_COVVHV_X,
&I015_604_COVVHV_Y,
NULL
@@ -14446,7 +14403,7 @@ static int hf_015_604_COVVHA_X;
static const FieldPart I015_604_COVVHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_604_COVVHA_X, NULL };
static int hf_015_604_COVVHA_Y;
static const FieldPart I015_604_COVVHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_604_COVVHA_Y, NULL };
-static const FieldPart *I015_604_COVVHA_PARTS[] = {
+static const FieldPart * const I015_604_COVVHA_PARTS[] = {
&I015_604_COVVHA_X,
&I015_604_COVVHA_Y,
NULL
@@ -14457,7 +14414,7 @@ static int hf_015_605;
static int hf_015_605_VA;
static int hf_015_605_VA_VALUE;
static const FieldPart I015_605_VA_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_015_605_VA_VALUE, NULL };
-static const FieldPart *I015_605_VA_PARTS[] = {
+static const FieldPart * const I015_605_VA_PARTS[] = {
&I015_605_VA_VALUE,
NULL
};
@@ -14469,7 +14426,7 @@ static int hf_015_605_RSVA_COVAGH;
static const FieldPart I015_605_RSVA_COVAGH = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_RSVA_COVAGH, NULL };
static int hf_015_605_RSVA_COVAVV;
static const FieldPart I015_605_RSVA_COVAVV = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_RSVA_COVAVV, NULL };
-static const FieldPart *I015_605_RSVA_PARTS[] = {
+static const FieldPart * const I015_605_RSVA_PARTS[] = {
&I015_605_RSVA_SDVA,
&I015_605_RSVA_COVAGH,
&I015_605_RSVA_COVAVV,
@@ -14481,7 +14438,7 @@ static int hf_015_605_COVAHP_X;
static const FieldPart I015_605_COVAHP_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_COVAHP_X, NULL };
static int hf_015_605_COVAHP_Y;
static const FieldPart I015_605_COVAHP_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_COVAHP_Y, NULL };
-static const FieldPart *I015_605_COVAHP_PARTS[] = {
+static const FieldPart * const I015_605_COVAHP_PARTS[] = {
&I015_605_COVAHP_X,
&I015_605_COVAHP_Y,
NULL
@@ -14492,7 +14449,7 @@ static int hf_015_605_COVAHV_X;
static const FieldPart I015_605_COVAHV_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_COVAHV_X, NULL };
static int hf_015_605_COVAHV_Y;
static const FieldPart I015_605_COVAHV_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_COVAHV_Y, NULL };
-static const FieldPart *I015_605_COVAHV_PARTS[] = {
+static const FieldPart * const I015_605_COVAHV_PARTS[] = {
&I015_605_COVAHV_X,
&I015_605_COVAHV_Y,
NULL
@@ -14503,7 +14460,7 @@ static int hf_015_605_COVAHA_X;
static const FieldPart I015_605_COVAHA_X = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_COVAHA_X, NULL };
static int hf_015_605_COVAHA_Y;
static const FieldPart I015_605_COVAHA_Y = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_605_COVAHA_Y, NULL };
-static const FieldPart *I015_605_COVAHA_PARTS[] = {
+static const FieldPart * const I015_605_COVAHA_PARTS[] = {
&I015_605_COVAHA_X,
&I015_605_COVAHA_Y,
NULL
@@ -14514,7 +14471,7 @@ static int hf_015_625;
static int hf_015_625_R;
static int hf_015_625_R_VALUE;
static const FieldPart I015_625_R_VALUE = { 24, 0.1, FIELD_PART_FLOAT, &hf_015_625_R_VALUE, NULL };
-static const FieldPart *I015_625_R_PARTS[] = {
+static const FieldPart * const I015_625_R_PARTS[] = {
&I015_625_R_VALUE,
NULL
};
@@ -14522,7 +14479,7 @@ static const AsterixField I015_625_R = { FIXED, 3, 0, 0, &hf_015_625_R, I015_625
static int hf_015_625_RSR;
static int hf_015_625_RSR_VALUE;
static const FieldPart I015_625_RSR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_625_RSR_VALUE, NULL };
-static const FieldPart *I015_625_RSR_PARTS[] = {
+static const FieldPart * const I015_625_RSR_PARTS[] = {
&I015_625_RSR_VALUE,
NULL
};
@@ -14530,7 +14487,7 @@ static const AsterixField I015_625_RSR = { FIXED, 3, 0, 0, &hf_015_625_RSR, I015
static int hf_015_625_SDR;
static int hf_015_625_SDR_VALUE;
static const FieldPart I015_625_SDR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_625_SDR_VALUE, NULL };
-static const FieldPart *I015_625_SDR_PARTS[] = {
+static const FieldPart * const I015_625_SDR_PARTS[] = {
&I015_625_SDR_VALUE,
NULL
};
@@ -14538,7 +14495,7 @@ static const AsterixField I015_625_SDR = { FIXED, 3, 0, 0, &hf_015_625_SDR, I015
static int hf_015_625_RR;
static int hf_015_625_RR_VALUE;
static const FieldPart I015_625_RR_VALUE = { 24, 0.1, FIELD_PART_FLOAT, &hf_015_625_RR_VALUE, NULL };
-static const FieldPart *I015_625_RR_PARTS[] = {
+static const FieldPart * const I015_625_RR_PARTS[] = {
&I015_625_RR_VALUE,
NULL
};
@@ -14546,7 +14503,7 @@ static const AsterixField I015_625_RR = { FIXED, 3, 0, 0, &hf_015_625_RR, I015_6
static int hf_015_625_RSRR;
static int hf_015_625_RSRR_VALUE;
static const FieldPart I015_625_RSRR_VALUE = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_625_RSRR_VALUE, NULL };
-static const FieldPart *I015_625_RSRR_PARTS[] = {
+static const FieldPart * const I015_625_RSRR_PARTS[] = {
&I015_625_RSRR_VALUE,
NULL
};
@@ -14556,7 +14513,7 @@ static int hf_015_625_SDRR_SDRR;
static const FieldPart I015_625_SDRR_SDRR = { 24, 0.1, FIELD_PART_UFLOAT, &hf_015_625_SDRR_SDRR, NULL };
static int hf_015_625_SDRR_CORRR;
static const FieldPart I015_625_SDRR_CORRR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_625_SDRR_CORRR, NULL };
-static const FieldPart *I015_625_SDRR_PARTS[] = {
+static const FieldPart * const I015_625_SDRR_PARTS[] = {
&I015_625_SDRR_SDRR,
&I015_625_SDRR_CORRR,
NULL
@@ -14565,7 +14522,7 @@ static const AsterixField I015_625_SDRR = { FIXED, 4, 0, 0, &hf_015_625_SDRR, I0
static int hf_015_625_RA;
static int hf_015_625_RA_VALUE;
static const FieldPart I015_625_RA_VALUE = { 16, 0.015625, FIELD_PART_FLOAT, &hf_015_625_RA_VALUE, NULL };
-static const FieldPart *I015_625_RA_PARTS[] = {
+static const FieldPart * const I015_625_RA_PARTS[] = {
&I015_625_RA_VALUE,
NULL
};
@@ -14577,7 +14534,7 @@ static int hf_015_625_SDRA_CORAR;
static const FieldPart I015_625_SDRA_CORAR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_625_SDRA_CORAR, NULL };
static int hf_015_625_SDRA_CORARR;
static const FieldPart I015_625_SDRA_CORARR = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_625_SDRA_CORARR, NULL };
-static const FieldPart *I015_625_SDRA_PARTS[] = {
+static const FieldPart * const I015_625_SDRA_PARTS[] = {
&I015_625_SDRA_SDRA,
&I015_625_SDRA_CORAR,
&I015_625_SDRA_CORARR,
@@ -14589,7 +14546,7 @@ static int hf_015_626;
static int hf_015_626_DV;
static int hf_015_626_DV_VALUE;
static const FieldPart I015_626_DV_VALUE = { 24, 0.01, FIELD_PART_FLOAT, &hf_015_626_DV_VALUE, NULL };
-static const FieldPart *I015_626_DV_PARTS[] = {
+static const FieldPart * const I015_626_DV_PARTS[] = {
&I015_626_DV_VALUE,
NULL
};
@@ -14597,7 +14554,7 @@ static const AsterixField I015_626_DV = { FIXED, 3, 0, 0, &hf_015_626_DV, I015_6
static int hf_015_626_SDDV;
static int hf_015_626_SDDV_VALUE;
static const FieldPart I015_626_SDDV_VALUE = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_015_626_SDDV_VALUE, NULL };
-static const FieldPart *I015_626_SDDV_PARTS[] = {
+static const FieldPart * const I015_626_SDDV_PARTS[] = {
&I015_626_SDDV_VALUE,
NULL
};
@@ -14605,7 +14562,7 @@ static const AsterixField I015_626_SDDV = { FIXED, 2, 0, 0, &hf_015_626_SDDV, I0
static int hf_015_626_DA;
static int hf_015_626_DA_VALUE;
static const FieldPart I015_626_DA_VALUE = { 16, 0.015625, FIELD_PART_FLOAT, &hf_015_626_DA_VALUE, NULL };
-static const FieldPart *I015_626_DA_PARTS[] = {
+static const FieldPart * const I015_626_DA_PARTS[] = {
&I015_626_DA_VALUE,
NULL
};
@@ -14615,7 +14572,7 @@ static int hf_015_626_SDDA_SDDA;
static const FieldPart I015_626_SDDA_SDDA = { 16, 0.015625, FIELD_PART_UFLOAT, &hf_015_626_SDDA_SDDA, NULL };
static int hf_015_626_SDDA_CODADV;
static const FieldPart I015_626_SDDA_CODADV = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_626_SDDA_CODADV, NULL };
-static const FieldPart *I015_626_SDDA_PARTS[] = {
+static const FieldPart * const I015_626_SDDA_PARTS[] = {
&I015_626_SDDA_SDDA,
&I015_626_SDDA_CODADV,
NULL
@@ -14624,7 +14581,7 @@ static const AsterixField I015_626_SDDA = { FIXED, 3, 0, 0, &hf_015_626_SDDA, I0
static int hf_015_626_CODVR;
static int hf_015_626_CODVR_VALUE;
static const FieldPart I015_626_CODVR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_626_CODVR_VALUE, NULL };
-static const FieldPart *I015_626_CODVR_PARTS[] = {
+static const FieldPart * const I015_626_CODVR_PARTS[] = {
&I015_626_CODVR_VALUE,
NULL
};
@@ -14632,7 +14589,7 @@ static const AsterixField I015_626_CODVR = { FIXED, 1, 0, 0, &hf_015_626_CODVR,
static int hf_015_626_CODVRR;
static int hf_015_626_CODVRR_VALUE;
static const FieldPart I015_626_CODVRR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_626_CODVRR_VALUE, NULL };
-static const FieldPart *I015_626_CODVRR_PARTS[] = {
+static const FieldPart * const I015_626_CODVRR_PARTS[] = {
&I015_626_CODVRR_VALUE,
NULL
};
@@ -14640,7 +14597,7 @@ static const AsterixField I015_626_CODVRR = { FIXED, 1, 0, 0, &hf_015_626_CODVRR
static int hf_015_626_CODVRA;
static int hf_015_626_CODVRA_VALUE;
static const FieldPart I015_626_CODVRA_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_626_CODVRA_VALUE, NULL };
-static const FieldPart *I015_626_CODVRA_PARTS[] = {
+static const FieldPart * const I015_626_CODVRA_PARTS[] = {
&I015_626_CODVRA_VALUE,
NULL
};
@@ -14648,7 +14605,7 @@ static const AsterixField I015_626_CODVRA = { FIXED, 1, 0, 0, &hf_015_626_CODVRA
static int hf_015_626_CODAR;
static int hf_015_626_CODAR_VALUE;
static const FieldPart I015_626_CODAR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_626_CODAR_VALUE, NULL };
-static const FieldPart *I015_626_CODAR_PARTS[] = {
+static const FieldPart * const I015_626_CODAR_PARTS[] = {
&I015_626_CODAR_VALUE,
NULL
};
@@ -14656,7 +14613,7 @@ static const AsterixField I015_626_CODAR = { FIXED, 1, 0, 0, &hf_015_626_CODAR,
static int hf_015_626_CODARR;
static int hf_015_626_CODARR_VALUE;
static const FieldPart I015_626_CODARR_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_626_CODARR_VALUE, NULL };
-static const FieldPart *I015_626_CODARR_PARTS[] = {
+static const FieldPart * const I015_626_CODARR_PARTS[] = {
&I015_626_CODARR_VALUE,
NULL
};
@@ -14664,7 +14621,7 @@ static const AsterixField I015_626_CODARR = { FIXED, 1, 0, 0, &hf_015_626_CODARR
static int hf_015_626_CODARA;
static int hf_015_626_CODARA_VALUE;
static const FieldPart I015_626_CODARA_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_626_CODARA_VALUE, NULL };
-static const FieldPart *I015_626_CODARA_PARTS[] = {
+static const FieldPart * const I015_626_CODARA_PARTS[] = {
&I015_626_CODARA_VALUE,
NULL
};
@@ -14674,7 +14631,7 @@ static int hf_015_627;
static int hf_015_627_AZ;
static int hf_015_627_AZ_VALUE;
static const FieldPart I015_627_AZ_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_627_AZ_VALUE, NULL };
-static const FieldPart *I015_627_AZ_PARTS[] = {
+static const FieldPart * const I015_627_AZ_PARTS[] = {
&I015_627_AZ_VALUE,
NULL
};
@@ -14682,7 +14639,7 @@ static const AsterixField I015_627_AZ = { FIXED, 2, 0, 0, &hf_015_627_AZ, I015_6
static int hf_015_627_RSAZ;
static int hf_015_627_RSAZ_VALUE;
static const FieldPart I015_627_RSAZ_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_627_RSAZ_VALUE, NULL };
-static const FieldPart *I015_627_RSAZ_PARTS[] = {
+static const FieldPart * const I015_627_RSAZ_PARTS[] = {
&I015_627_RSAZ_VALUE,
NULL
};
@@ -14690,7 +14647,7 @@ static const AsterixField I015_627_RSAZ = { FIXED, 2, 0, 0, &hf_015_627_RSAZ, I0
static int hf_015_627_SDASZ;
static int hf_015_627_SDASZ_VALUE;
static const FieldPart I015_627_SDASZ_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_627_SDASZ_VALUE, NULL };
-static const FieldPart *I015_627_SDASZ_PARTS[] = {
+static const FieldPart * const I015_627_SDASZ_PARTS[] = {
&I015_627_SDASZ_VALUE,
NULL
};
@@ -14698,7 +14655,7 @@ static const AsterixField I015_627_SDASZ = { FIXED, 2, 0, 0, &hf_015_627_SDASZ,
static int hf_015_627_AZR;
static int hf_015_627_AZR_VALUE;
static const FieldPart I015_627_AZR_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_627_AZR_VALUE, NULL };
-static const FieldPart *I015_627_AZR_PARTS[] = {
+static const FieldPart * const I015_627_AZR_PARTS[] = {
&I015_627_AZR_VALUE,
NULL
};
@@ -14708,7 +14665,7 @@ static int hf_015_627_SDAZR_SDAZR;
static const FieldPart I015_627_SDAZR_SDAZR = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_627_SDAZR_SDAZR, NULL };
static int hf_015_627_SDAZR_COAZRAZ;
static const FieldPart I015_627_SDAZR_COAZRAZ = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_627_SDAZR_COAZRAZ, NULL };
-static const FieldPart *I015_627_SDAZR_PARTS[] = {
+static const FieldPart * const I015_627_SDAZR_PARTS[] = {
&I015_627_SDAZR_SDAZR,
&I015_627_SDAZR_COAZRAZ,
NULL
@@ -14719,7 +14676,7 @@ static int hf_015_627_AZEX_S;
static const FieldPart I015_627_AZEX_S = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_627_AZEX_S, NULL };
static int hf_015_627_AZEX_E;
static const FieldPart I015_627_AZEX_E = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_015_627_AZEX_E, NULL };
-static const FieldPart *I015_627_AZEX_PARTS[] = {
+static const FieldPart * const I015_627_AZEX_PARTS[] = {
&I015_627_AZEX_S,
&I015_627_AZEX_E,
NULL
@@ -14730,7 +14687,7 @@ static int hf_015_628;
static int hf_015_628_EL;
static int hf_015_628_EL_VALUE;
static const FieldPart I015_628_EL_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_628_EL_VALUE, NULL };
-static const FieldPart *I015_628_EL_PARTS[] = {
+static const FieldPart * const I015_628_EL_PARTS[] = {
&I015_628_EL_VALUE,
NULL
};
@@ -14738,7 +14695,7 @@ static const AsterixField I015_628_EL = { FIXED, 2, 0, 0, &hf_015_628_EL, I015_6
static int hf_015_628_RSEL;
static int hf_015_628_RSEL_VALUE;
static const FieldPart I015_628_RSEL_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_628_RSEL_VALUE, NULL };
-static const FieldPart *I015_628_RSEL_PARTS[] = {
+static const FieldPart * const I015_628_RSEL_PARTS[] = {
&I015_628_RSEL_VALUE,
NULL
};
@@ -14746,7 +14703,7 @@ static const AsterixField I015_628_RSEL = { FIXED, 2, 0, 0, &hf_015_628_RSEL, I0
static int hf_015_628_SDEL;
static int hf_015_628_SDEL_VALUE;
static const FieldPart I015_628_SDEL_VALUE = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_628_SDEL_VALUE, NULL };
-static const FieldPart *I015_628_SDEL_PARTS[] = {
+static const FieldPart * const I015_628_SDEL_PARTS[] = {
&I015_628_SDEL_VALUE,
NULL
};
@@ -14754,7 +14711,7 @@ static const AsterixField I015_628_SDEL = { FIXED, 2, 0, 0, &hf_015_628_SDEL, I0
static int hf_015_628_ER;
static int hf_015_628_ER_VALUE;
static const FieldPart I015_628_ER_VALUE = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_628_ER_VALUE, NULL };
-static const FieldPart *I015_628_ER_PARTS[] = {
+static const FieldPart * const I015_628_ER_PARTS[] = {
&I015_628_ER_VALUE,
NULL
};
@@ -14764,7 +14721,7 @@ static int hf_015_628_SDER_SDELR;
static const FieldPart I015_628_SDER_SDELR = { 16, 0.0006866455078125, FIELD_PART_UFLOAT, &hf_015_628_SDER_SDELR, NULL };
static int hf_015_628_SDER_COELREL;
static const FieldPart I015_628_SDER_COELREL = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_015_628_SDER_COELREL, NULL };
-static const FieldPart *I015_628_SDER_PARTS[] = {
+static const FieldPart * const I015_628_SDER_PARTS[] = {
&I015_628_SDER_SDELR,
&I015_628_SDER_COELREL,
NULL
@@ -14775,7 +14732,7 @@ static int hf_015_628_ELEX_S;
static const FieldPart I015_628_ELEX_S = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_628_ELEX_S, NULL };
static int hf_015_628_ELEX_E;
static const FieldPart I015_628_ELEX_E = { 16, 0.00274658203125, FIELD_PART_FLOAT, &hf_015_628_ELEX_E, NULL };
-static const FieldPart *I015_628_ELEX_PARTS[] = {
+static const FieldPart * const I015_628_ELEX_PARTS[] = {
&I015_628_ELEX_S,
&I015_628_ELEX_E,
NULL
@@ -14786,7 +14743,7 @@ static int hf_015_630;
static int hf_015_630_DPP;
static int hf_015_630_DPP_VALUE;
static const FieldPart I015_630_DPP_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_630_DPP_VALUE, NULL };
-static const FieldPart *I015_630_DPP_PARTS[] = {
+static const FieldPart * const I015_630_DPP_PARTS[] = {
&I015_630_DPP_VALUE,
NULL
};
@@ -14794,7 +14751,7 @@ static const AsterixField I015_630_DPP = { FIXED, 1, 0, 0, &hf_015_630_DPP, I015
static int hf_015_630_DPS;
static int hf_015_630_DPS_VALUE;
static const FieldPart I015_630_DPS_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_630_DPS_VALUE, NULL };
-static const FieldPart *I015_630_DPS_PARTS[] = {
+static const FieldPart * const I015_630_DPS_PARTS[] = {
&I015_630_DPS_VALUE,
NULL
};
@@ -14802,7 +14759,7 @@ static const AsterixField I015_630_DPS = { FIXED, 1, 0, 0, &hf_015_630_DPS, I015
static int hf_015_630_RPP;
static int hf_015_630_RPP_RPP;
static const FieldPart I015_630_RPP_RPP = { 9, 1.0, FIELD_PART_FLOAT, &hf_015_630_RPP_RPP, NULL };
-static const FieldPart *I015_630_RPP_PARTS[] = {
+static const FieldPart * const I015_630_RPP_PARTS[] = {
&IXXX_7bit_spare,
&I015_630_RPP_RPP,
NULL
@@ -14811,7 +14768,7 @@ static const AsterixField I015_630_RPP = { FIXED, 2, 0, 0, &hf_015_630_RPP, I015
static int hf_015_630_RPS;
static int hf_015_630_RPS_VALUE;
static const FieldPart I015_630_RPS_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_015_630_RPS_VALUE, NULL };
-static const FieldPart *I015_630_RPS_PARTS[] = {
+static const FieldPart * const I015_630_RPS_PARTS[] = {
&I015_630_RPS_VALUE,
NULL
};
@@ -14826,7 +14783,7 @@ static int hf_015_631_RGCONSTOP;
static const FieldPart I015_631_RGCONSTOP = { 16, 0.152587890625, FIELD_PART_UFLOAT, &hf_015_631_RGCONSTOP, NULL };
static int hf_015_631_RGCONSTART;
static const FieldPart I015_631_RGCONSTART = { 16, 0.152587890625, FIELD_PART_UFLOAT, &hf_015_631_RGCONSTART, NULL };
-static const FieldPart *I015_631_PARTS[] = {
+static const FieldPart * const I015_631_PARTS[] = {
&I015_631_AZCON,
&I015_631_ELCON,
&I015_631_RGCONSTOP,
@@ -14837,8 +14794,7 @@ static const AsterixField I015_631 = { REPETITIVE, 8, 1, 0, &hf_015_631, I015_63
static int hf_015_SP;
static const AsterixField I015_SP = { EXP, 0, 0, 1, &hf_015_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I015_V1_1_uap[] = {
+static const AsterixField * const I015_V1_1_uap[] = {
&I015_V1_1_010,
&I015_V1_1_000,
&I015_V1_1_015,
@@ -14867,14 +14823,12 @@ static const AsterixField *I015_V1_1_uap[] = {
&I015_V1_1_SP,
NULL
};
-static const AsterixField **I015_V1_1[] = {
+static const AsterixField * const * const I015_V1_1[] = {
I015_V1_1_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I015_uap[] = {
+static const AsterixField * const I015_uap[] = {
&I015_010,
&I015_000,
&I015_015,
@@ -14903,11 +14857,10 @@ static const AsterixField *I015_uap[] = {
&I015_SP,
NULL
};
-static const AsterixField **I015[] = {
+static const AsterixField * const * const I015[] = {
I015_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 016, edition 1.0 */
static int hf_016_V1_0_000;
@@ -14918,7 +14871,7 @@ static const value_string valstr_016_V1_0_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I016_V1_0_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_016_V1_0_000_VALUE, NULL };
-static const FieldPart *I016_V1_0_000_PARTS[] = {
+static const FieldPart * const I016_V1_0_000_PARTS[] = {
&I016_V1_0_000_VALUE,
NULL
};
@@ -14928,7 +14881,7 @@ static int hf_016_V1_0_010_SAC;
static const FieldPart I016_V1_0_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_016_V1_0_010_SAC, NULL };
static int hf_016_V1_0_010_SIC;
static const FieldPart I016_V1_0_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_016_V1_0_010_SIC, NULL };
-static const FieldPart *I016_V1_0_010_PARTS[] = {
+static const FieldPart * const I016_V1_0_010_PARTS[] = {
&I016_V1_0_010_SAC,
&I016_V1_0_010_SIC,
NULL
@@ -14937,7 +14890,7 @@ static const AsterixField I016_V1_0_010 = { FIXED, 2, 0, 0, &hf_016_V1_0_010, I0
static int hf_016_V1_0_015;
static int hf_016_V1_0_015_VALUE;
static const FieldPart I016_V1_0_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_016_V1_0_015_VALUE, NULL };
-static const FieldPart *I016_V1_0_015_PARTS[] = {
+static const FieldPart * const I016_V1_0_015_PARTS[] = {
&I016_V1_0_015_VALUE,
NULL
};
@@ -14945,7 +14898,7 @@ static const AsterixField I016_V1_0_015 = { FIXED, 1, 0, 0, &hf_016_V1_0_015, I0
static int hf_016_V1_0_140;
static int hf_016_V1_0_140_VALUE;
static const FieldPart I016_V1_0_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_016_V1_0_140_VALUE, NULL };
-static const FieldPart *I016_V1_0_140_PARTS[] = {
+static const FieldPart * const I016_V1_0_140_PARTS[] = {
&I016_V1_0_140_VALUE,
NULL
};
@@ -14953,7 +14906,7 @@ static const AsterixField I016_V1_0_140 = { FIXED, 3, 0, 0, &hf_016_V1_0_140, I0
static int hf_016_V1_0_200;
static int hf_016_V1_0_200_VALUE;
static const FieldPart I016_V1_0_200_VALUE = { 8, 1.0, FIELD_PART_UFLOAT, &hf_016_V1_0_200_VALUE, NULL };
-static const FieldPart *I016_V1_0_200_PARTS[] = {
+static const FieldPart * const I016_V1_0_200_PARTS[] = {
&I016_V1_0_200_VALUE,
NULL
};
@@ -14965,7 +14918,7 @@ static int hf_016_V1_0_300_TID;
static const FieldPart I016_V1_0_300_TID = { 16, 1.0, FIELD_PART_HEX, &hf_016_V1_0_300_TID, NULL };
static int hf_016_V1_0_300_RID;
static const FieldPart I016_V1_0_300_RID = { 16, 1.0, FIELD_PART_HEX, &hf_016_V1_0_300_RID, NULL };
-static const FieldPart *I016_V1_0_300_PARTS[] = {
+static const FieldPart * const I016_V1_0_300_PARTS[] = {
&I016_V1_0_300_PID,
&I016_V1_0_300_TID,
&I016_V1_0_300_RID,
@@ -14977,7 +14930,7 @@ static int hf_016_V1_0_400_LAT;
static const FieldPart I016_V1_0_400_LAT = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_016_V1_0_400_LAT, NULL };
static int hf_016_V1_0_400_LON;
static const FieldPart I016_V1_0_400_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_016_V1_0_400_LON, NULL };
-static const FieldPart *I016_V1_0_400_PARTS[] = {
+static const FieldPart * const I016_V1_0_400_PARTS[] = {
&I016_V1_0_400_LAT,
&I016_V1_0_400_LON,
NULL
@@ -14986,7 +14939,7 @@ static const AsterixField I016_V1_0_400 = { FIXED, 8, 0, 0, &hf_016_V1_0_400, I0
static int hf_016_V1_0_405;
static int hf_016_V1_0_405_VALUE;
static const FieldPart I016_V1_0_405_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_016_V1_0_405_VALUE, NULL };
-static const FieldPart *I016_V1_0_405_PARTS[] = {
+static const FieldPart * const I016_V1_0_405_PARTS[] = {
&I016_V1_0_405_VALUE,
NULL
};
@@ -15006,7 +14959,7 @@ static int hf_016_V1_0_410_ATO;
static const FieldPart I016_V1_0_410_ATO = { 20, 1.0, FIELD_PART_UFLOAT, &hf_016_V1_0_410_ATO, NULL };
static int hf_016_V1_0_410_PCI;
static const FieldPart I016_V1_0_410_PCI = { 16, 1.0, FIELD_PART_UINT, &hf_016_V1_0_410_PCI, NULL };
-static const FieldPart *I016_V1_0_410_PARTS[] = {
+static const FieldPart * const I016_V1_0_410_PARTS[] = {
&I016_V1_0_410_TID,
&I016_V1_0_410_LAT,
&I016_V1_0_410_LON,
@@ -15027,7 +14980,7 @@ static int hf_016_V1_0_420_LON;
static const FieldPart I016_V1_0_420_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_016_V1_0_420_LON, NULL };
static int hf_016_V1_0_420_ALT;
static const FieldPart I016_V1_0_420_ALT = { 16, 0.25, FIELD_PART_FLOAT, &hf_016_V1_0_420_ALT, NULL };
-static const FieldPart *I016_V1_0_420_PARTS[] = {
+static const FieldPart * const I016_V1_0_420_PARTS[] = {
&I016_V1_0_420_RID,
&I016_V1_0_420_LAT,
&I016_V1_0_420_LON,
@@ -15047,7 +15000,7 @@ static const value_string valstr_016_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I016_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_016_000_VALUE, NULL };
-static const FieldPart *I016_000_PARTS[] = {
+static const FieldPart * const I016_000_PARTS[] = {
&I016_000_VALUE,
NULL
};
@@ -15057,7 +15010,7 @@ static int hf_016_010_SAC;
static const FieldPart I016_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_016_010_SAC, NULL };
static int hf_016_010_SIC;
static const FieldPart I016_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_016_010_SIC, NULL };
-static const FieldPart *I016_010_PARTS[] = {
+static const FieldPart * const I016_010_PARTS[] = {
&I016_010_SAC,
&I016_010_SIC,
NULL
@@ -15066,7 +15019,7 @@ static const AsterixField I016_010 = { FIXED, 2, 0, 0, &hf_016_010, I016_010_PAR
static int hf_016_015;
static int hf_016_015_VALUE;
static const FieldPart I016_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_016_015_VALUE, NULL };
-static const FieldPart *I016_015_PARTS[] = {
+static const FieldPart * const I016_015_PARTS[] = {
&I016_015_VALUE,
NULL
};
@@ -15074,7 +15027,7 @@ static const AsterixField I016_015 = { FIXED, 1, 0, 0, &hf_016_015, I016_015_PAR
static int hf_016_140;
static int hf_016_140_VALUE;
static const FieldPart I016_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_016_140_VALUE, NULL };
-static const FieldPart *I016_140_PARTS[] = {
+static const FieldPart * const I016_140_PARTS[] = {
&I016_140_VALUE,
NULL
};
@@ -15082,7 +15035,7 @@ static const AsterixField I016_140 = { FIXED, 3, 0, 0, &hf_016_140, I016_140_PAR
static int hf_016_200;
static int hf_016_200_VALUE;
static const FieldPart I016_200_VALUE = { 8, 1.0, FIELD_PART_UFLOAT, &hf_016_200_VALUE, NULL };
-static const FieldPart *I016_200_PARTS[] = {
+static const FieldPart * const I016_200_PARTS[] = {
&I016_200_VALUE,
NULL
};
@@ -15094,7 +15047,7 @@ static int hf_016_300_TID;
static const FieldPart I016_300_TID = { 16, 1.0, FIELD_PART_HEX, &hf_016_300_TID, NULL };
static int hf_016_300_RID;
static const FieldPart I016_300_RID = { 16, 1.0, FIELD_PART_HEX, &hf_016_300_RID, NULL };
-static const FieldPart *I016_300_PARTS[] = {
+static const FieldPart * const I016_300_PARTS[] = {
&I016_300_PID,
&I016_300_TID,
&I016_300_RID,
@@ -15106,7 +15059,7 @@ static int hf_016_400_LAT;
static const FieldPart I016_400_LAT = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_016_400_LAT, NULL };
static int hf_016_400_LON;
static const FieldPart I016_400_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_016_400_LON, NULL };
-static const FieldPart *I016_400_PARTS[] = {
+static const FieldPart * const I016_400_PARTS[] = {
&I016_400_LAT,
&I016_400_LON,
NULL
@@ -15115,7 +15068,7 @@ static const AsterixField I016_400 = { FIXED, 8, 0, 0, &hf_016_400, I016_400_PAR
static int hf_016_405;
static int hf_016_405_VALUE;
static const FieldPart I016_405_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_016_405_VALUE, NULL };
-static const FieldPart *I016_405_PARTS[] = {
+static const FieldPart * const I016_405_PARTS[] = {
&I016_405_VALUE,
NULL
};
@@ -15135,7 +15088,7 @@ static int hf_016_410_ATO;
static const FieldPart I016_410_ATO = { 20, 1.0, FIELD_PART_UFLOAT, &hf_016_410_ATO, NULL };
static int hf_016_410_PCI;
static const FieldPart I016_410_PCI = { 16, 1.0, FIELD_PART_UINT, &hf_016_410_PCI, NULL };
-static const FieldPart *I016_410_PARTS[] = {
+static const FieldPart * const I016_410_PARTS[] = {
&I016_410_TID,
&I016_410_LAT,
&I016_410_LON,
@@ -15156,7 +15109,7 @@ static int hf_016_420_LON;
static const FieldPart I016_420_LON = { 32, 8.381903171539307e-08, FIELD_PART_FLOAT, &hf_016_420_LON, NULL };
static int hf_016_420_ALT;
static const FieldPart I016_420_ALT = { 16, 0.25, FIELD_PART_FLOAT, &hf_016_420_ALT, NULL };
-static const FieldPart *I016_420_PARTS[] = {
+static const FieldPart * const I016_420_PARTS[] = {
&I016_420_RID,
&I016_420_LAT,
&I016_420_LON,
@@ -15167,8 +15120,7 @@ static const AsterixField I016_420 = { REPETITIVE, 12, 1, 0, &hf_016_420, I016_4
static int hf_016_SP;
static const AsterixField I016_SP = { EXP, 0, 0, 1, &hf_016_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I016_V1_0_uap[] = {
+static const AsterixField * const I016_V1_0_uap[] = {
&I016_V1_0_010,
&I016_V1_0_015,
&I016_V1_0_000,
@@ -15182,14 +15134,12 @@ static const AsterixField *I016_V1_0_uap[] = {
&I016_V1_0_SP,
NULL
};
-static const AsterixField **I016_V1_0[] = {
+static const AsterixField * const * const I016_V1_0[] = {
I016_V1_0_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I016_uap[] = {
+static const AsterixField * const I016_uap[] = {
&I016_010,
&I016_015,
&I016_000,
@@ -15203,11 +15153,10 @@ static const AsterixField *I016_uap[] = {
&I016_SP,
NULL
};
-static const AsterixField **I016[] = {
+static const AsterixField * const * const I016[] = {
I016_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 017, edition 1.3 */
static int hf_017_V1_3_000;
@@ -15228,7 +15177,7 @@ static const value_string valstr_017_V1_3_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I017_V1_3_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_017_V1_3_000_VALUE, NULL };
-static const FieldPart *I017_V1_3_000_PARTS[] = {
+static const FieldPart * const I017_V1_3_000_PARTS[] = {
&I017_V1_3_000_VALUE,
NULL
};
@@ -15238,7 +15187,7 @@ static int hf_017_V1_3_010_SAC;
static const FieldPart I017_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_017_V1_3_010_SAC, NULL };
static int hf_017_V1_3_010_SIC;
static const FieldPart I017_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_017_V1_3_010_SIC, NULL };
-static const FieldPart *I017_V1_3_010_PARTS[] = {
+static const FieldPart * const I017_V1_3_010_PARTS[] = {
&I017_V1_3_010_SAC,
&I017_V1_3_010_SIC,
NULL
@@ -15249,7 +15198,7 @@ static int hf_017_V1_3_012_SAC;
static const FieldPart I017_V1_3_012_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_017_V1_3_012_SAC, NULL };
static int hf_017_V1_3_012_SIC;
static const FieldPart I017_V1_3_012_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_017_V1_3_012_SIC, NULL };
-static const FieldPart *I017_V1_3_012_PARTS[] = {
+static const FieldPart * const I017_V1_3_012_PARTS[] = {
&I017_V1_3_012_SAC,
&I017_V1_3_012_SIC,
NULL
@@ -15260,7 +15209,7 @@ static int hf_017_V1_3_045_LAT;
static const FieldPart I017_V1_3_045_LAT = { 24, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_017_V1_3_045_LAT, NULL };
static int hf_017_V1_3_045_LON;
static const FieldPart I017_V1_3_045_LON = { 24, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_017_V1_3_045_LON, NULL };
-static const FieldPart *I017_V1_3_045_PARTS[] = {
+static const FieldPart * const I017_V1_3_045_PARTS[] = {
&I017_V1_3_045_LAT,
&I017_V1_3_045_LON,
NULL
@@ -15283,7 +15232,7 @@ static const value_string valstr_017_V1_3_050_G[] = {
static const FieldPart I017_V1_3_050_G = { 1, 1.0, FIELD_PART_UINT, &hf_017_V1_3_050_G, NULL };
static int hf_017_V1_3_050_ALT;
static const FieldPart I017_V1_3_050_ALT = { 14, 0.25, FIELD_PART_UFLOAT, &hf_017_V1_3_050_ALT, NULL };
-static const FieldPart *I017_V1_3_050_PARTS[] = {
+static const FieldPart * const I017_V1_3_050_PARTS[] = {
&I017_V1_3_050_V,
&I017_V1_3_050_G,
&I017_V1_3_050_ALT,
@@ -15314,7 +15263,7 @@ static const value_string valstr_017_V1_3_070_L[] = {
static const FieldPart I017_V1_3_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_017_V1_3_070_L, NULL };
static int hf_017_V1_3_070_MODE3A;
static const FieldPart I017_V1_3_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_017_V1_3_070_MODE3A, NULL };
-static const FieldPart *I017_V1_3_070_PARTS[] = {
+static const FieldPart * const I017_V1_3_070_PARTS[] = {
&I017_V1_3_070_V,
&I017_V1_3_070_G,
&I017_V1_3_070_L,
@@ -15326,7 +15275,7 @@ static const AsterixField I017_V1_3_070 = { FIXED, 2, 0, 0, &hf_017_V1_3_070, I0
static int hf_017_V1_3_140;
static int hf_017_V1_3_140_VALUE;
static const FieldPart I017_V1_3_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_017_V1_3_140_VALUE, NULL };
-static const FieldPart *I017_V1_3_140_PARTS[] = {
+static const FieldPart * const I017_V1_3_140_PARTS[] = {
&I017_V1_3_140_VALUE,
NULL
};
@@ -15336,7 +15285,7 @@ static int hf_017_V1_3_200_GSP;
static const FieldPart I017_V1_3_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_017_V1_3_200_GSP, NULL };
static int hf_017_V1_3_200_HDG;
static const FieldPart I017_V1_3_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_017_V1_3_200_HDG, NULL };
-static const FieldPart *I017_V1_3_200_PARTS[] = {
+static const FieldPart * const I017_V1_3_200_PARTS[] = {
&I017_V1_3_200_GSP,
&I017_V1_3_200_HDG,
NULL
@@ -15345,7 +15294,7 @@ static const AsterixField I017_V1_3_200 = { FIXED, 4, 0, 0, &hf_017_V1_3_200, I0
static int hf_017_V1_3_210;
static int hf_017_V1_3_210_VALUE;
static const FieldPart I017_V1_3_210_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_017_V1_3_210_VALUE, NULL };
-static const FieldPart *I017_V1_3_210_PARTS[] = {
+static const FieldPart * const I017_V1_3_210_PARTS[] = {
&I017_V1_3_210_VALUE,
NULL
};
@@ -15353,7 +15302,7 @@ static const AsterixField I017_V1_3_210 = { REPETITIVE, 3, 1, 0, &hf_017_V1_3_21
static int hf_017_V1_3_220;
static int hf_017_V1_3_220_VALUE;
static const FieldPart I017_V1_3_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_017_V1_3_220_VALUE, NULL };
-static const FieldPart *I017_V1_3_220_PARTS[] = {
+static const FieldPart * const I017_V1_3_220_PARTS[] = {
&I017_V1_3_220_VALUE,
NULL
};
@@ -15361,7 +15310,7 @@ static const AsterixField I017_V1_3_220 = { FIXED, 3, 0, 0, &hf_017_V1_3_220, I0
static int hf_017_V1_3_221;
static int hf_017_V1_3_221_VALUE;
static const FieldPart I017_V1_3_221_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_017_V1_3_221_VALUE, NULL };
-static const FieldPart *I017_V1_3_221_PARTS[] = {
+static const FieldPart * const I017_V1_3_221_PARTS[] = {
&I017_V1_3_221_VALUE,
NULL
};
@@ -15387,7 +15336,7 @@ static const value_string valstr_017_V1_3_230_SI[] = {
{ 0, NULL }
};
static const FieldPart I017_V1_3_230_SI = { 1, 1.0, FIELD_PART_UINT, &hf_017_V1_3_230_SI, NULL };
-static const FieldPart *I017_V1_3_230_PARTS[] = {
+static const FieldPart * const I017_V1_3_230_PARTS[] = {
&I017_V1_3_230_CA,
&I017_V1_3_230_SI,
&IXXX_4bit_spare,
@@ -15409,7 +15358,7 @@ static const value_string valstr_017_V1_3_240_FLT[] = {
{ 0, NULL }
};
static const FieldPart I017_V1_3_240_FLT = { 1, 1.0, FIELD_PART_UINT, &hf_017_V1_3_240_FLT, NULL };
-static const FieldPart *I017_V1_3_240_PARTS[] = {
+static const FieldPart * const I017_V1_3_240_PARTS[] = {
&I017_V1_3_240_CST,
&I017_V1_3_240_FLT,
&IXXX_6bit_spare,
@@ -15421,7 +15370,7 @@ static int hf_017_V1_3_350_SAC;
static const FieldPart I017_V1_3_350_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_017_V1_3_350_SAC, NULL };
static int hf_017_V1_3_350_SIC;
static const FieldPart I017_V1_3_350_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_017_V1_3_350_SIC, NULL };
-static const FieldPart *I017_V1_3_350_PARTS[] = {
+static const FieldPart * const I017_V1_3_350_PARTS[] = {
&I017_V1_3_350_SAC,
&I017_V1_3_350_SIC,
NULL
@@ -15430,7 +15379,7 @@ static const AsterixField I017_V1_3_350 = { REPETITIVE, 2, 1, 0, &hf_017_V1_3_35
static int hf_017_V1_3_360;
static int hf_017_V1_3_360_VALUE;
static const FieldPart I017_V1_3_360_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_017_V1_3_360_VALUE, NULL };
-static const FieldPart *I017_V1_3_360_PARTS[] = {
+static const FieldPart * const I017_V1_3_360_PARTS[] = {
&I017_V1_3_360_VALUE,
NULL
};
@@ -15457,7 +15406,7 @@ static const value_string valstr_017_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I017_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_017_000_VALUE, NULL };
-static const FieldPart *I017_000_PARTS[] = {
+static const FieldPart * const I017_000_PARTS[] = {
&I017_000_VALUE,
NULL
};
@@ -15467,7 +15416,7 @@ static int hf_017_010_SAC;
static const FieldPart I017_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_017_010_SAC, NULL };
static int hf_017_010_SIC;
static const FieldPart I017_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_017_010_SIC, NULL };
-static const FieldPart *I017_010_PARTS[] = {
+static const FieldPart * const I017_010_PARTS[] = {
&I017_010_SAC,
&I017_010_SIC,
NULL
@@ -15478,7 +15427,7 @@ static int hf_017_012_SAC;
static const FieldPart I017_012_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_017_012_SAC, NULL };
static int hf_017_012_SIC;
static const FieldPart I017_012_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_017_012_SIC, NULL };
-static const FieldPart *I017_012_PARTS[] = {
+static const FieldPart * const I017_012_PARTS[] = {
&I017_012_SAC,
&I017_012_SIC,
NULL
@@ -15489,7 +15438,7 @@ static int hf_017_045_LAT;
static const FieldPart I017_045_LAT = { 24, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_017_045_LAT, NULL };
static int hf_017_045_LON;
static const FieldPart I017_045_LON = { 24, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_017_045_LON, NULL };
-static const FieldPart *I017_045_PARTS[] = {
+static const FieldPart * const I017_045_PARTS[] = {
&I017_045_LAT,
&I017_045_LON,
NULL
@@ -15512,7 +15461,7 @@ static const value_string valstr_017_050_G[] = {
static const FieldPart I017_050_G = { 1, 1.0, FIELD_PART_UINT, &hf_017_050_G, NULL };
static int hf_017_050_ALT;
static const FieldPart I017_050_ALT = { 14, 0.25, FIELD_PART_UFLOAT, &hf_017_050_ALT, NULL };
-static const FieldPart *I017_050_PARTS[] = {
+static const FieldPart * const I017_050_PARTS[] = {
&I017_050_V,
&I017_050_G,
&I017_050_ALT,
@@ -15543,7 +15492,7 @@ static const value_string valstr_017_070_L[] = {
static const FieldPart I017_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_017_070_L, NULL };
static int hf_017_070_MODE3A;
static const FieldPart I017_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_017_070_MODE3A, NULL };
-static const FieldPart *I017_070_PARTS[] = {
+static const FieldPart * const I017_070_PARTS[] = {
&I017_070_V,
&I017_070_G,
&I017_070_L,
@@ -15555,7 +15504,7 @@ static const AsterixField I017_070 = { FIXED, 2, 0, 0, &hf_017_070, I017_070_PAR
static int hf_017_140;
static int hf_017_140_VALUE;
static const FieldPart I017_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_017_140_VALUE, NULL };
-static const FieldPart *I017_140_PARTS[] = {
+static const FieldPart * const I017_140_PARTS[] = {
&I017_140_VALUE,
NULL
};
@@ -15565,7 +15514,7 @@ static int hf_017_200_GSP;
static const FieldPart I017_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_017_200_GSP, NULL };
static int hf_017_200_HDG;
static const FieldPart I017_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_017_200_HDG, NULL };
-static const FieldPart *I017_200_PARTS[] = {
+static const FieldPart * const I017_200_PARTS[] = {
&I017_200_GSP,
&I017_200_HDG,
NULL
@@ -15574,7 +15523,7 @@ static const AsterixField I017_200 = { FIXED, 4, 0, 0, &hf_017_200, I017_200_PAR
static int hf_017_210;
static int hf_017_210_VALUE;
static const FieldPart I017_210_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_017_210_VALUE, NULL };
-static const FieldPart *I017_210_PARTS[] = {
+static const FieldPart * const I017_210_PARTS[] = {
&I017_210_VALUE,
NULL
};
@@ -15582,7 +15531,7 @@ static const AsterixField I017_210 = { REPETITIVE, 3, 1, 0, &hf_017_210, I017_21
static int hf_017_220;
static int hf_017_220_VALUE;
static const FieldPart I017_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_017_220_VALUE, NULL };
-static const FieldPart *I017_220_PARTS[] = {
+static const FieldPart * const I017_220_PARTS[] = {
&I017_220_VALUE,
NULL
};
@@ -15590,7 +15539,7 @@ static const AsterixField I017_220 = { FIXED, 3, 0, 0, &hf_017_220, I017_220_PAR
static int hf_017_221;
static int hf_017_221_VALUE;
static const FieldPart I017_221_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_017_221_VALUE, NULL };
-static const FieldPart *I017_221_PARTS[] = {
+static const FieldPart * const I017_221_PARTS[] = {
&I017_221_VALUE,
NULL
};
@@ -15616,7 +15565,7 @@ static const value_string valstr_017_230_SI[] = {
{ 0, NULL }
};
static const FieldPart I017_230_SI = { 1, 1.0, FIELD_PART_UINT, &hf_017_230_SI, NULL };
-static const FieldPart *I017_230_PARTS[] = {
+static const FieldPart * const I017_230_PARTS[] = {
&I017_230_CA,
&I017_230_SI,
&IXXX_4bit_spare,
@@ -15638,7 +15587,7 @@ static const value_string valstr_017_240_FLT[] = {
{ 0, NULL }
};
static const FieldPart I017_240_FLT = { 1, 1.0, FIELD_PART_UINT, &hf_017_240_FLT, NULL };
-static const FieldPart *I017_240_PARTS[] = {
+static const FieldPart * const I017_240_PARTS[] = {
&I017_240_CST,
&I017_240_FLT,
&IXXX_6bit_spare,
@@ -15650,7 +15599,7 @@ static int hf_017_350_SAC;
static const FieldPart I017_350_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_017_350_SAC, NULL };
static int hf_017_350_SIC;
static const FieldPart I017_350_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_017_350_SIC, NULL };
-static const FieldPart *I017_350_PARTS[] = {
+static const FieldPart * const I017_350_PARTS[] = {
&I017_350_SAC,
&I017_350_SIC,
NULL
@@ -15659,7 +15608,7 @@ static const AsterixField I017_350 = { REPETITIVE, 2, 1, 0, &hf_017_350, I017_35
static int hf_017_360;
static int hf_017_360_VALUE;
static const FieldPart I017_360_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_017_360_VALUE, NULL };
-static const FieldPart *I017_360_PARTS[] = {
+static const FieldPart * const I017_360_PARTS[] = {
&I017_360_VALUE,
NULL
};
@@ -15667,8 +15616,7 @@ static const AsterixField I017_360 = { FIXED, 1, 0, 0, &hf_017_360, I017_360_PAR
static int hf_017_SP;
static const AsterixField I017_SP = { EXP, 0, 0, 1, &hf_017_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I017_V1_3_uap[] = {
+static const AsterixField * const I017_V1_3_uap[] = {
&I017_V1_3_010,
&I017_V1_3_012,
&I017_V1_3_000,
@@ -15692,14 +15640,12 @@ static const AsterixField *I017_V1_3_uap[] = {
&I017_V1_3_SP,
NULL
};
-static const AsterixField **I017_V1_3[] = {
+static const AsterixField * const * const I017_V1_3[] = {
I017_V1_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I017_uap[] = {
+static const AsterixField * const I017_uap[] = {
&I017_010,
&I017_012,
&I017_000,
@@ -15723,11 +15669,10 @@ static const AsterixField *I017_uap[] = {
&I017_SP,
NULL
};
-static const AsterixField **I017[] = {
+static const AsterixField * const * const I017[] = {
I017_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 018, edition 1.7 */
static int hf_018_V1_7_000;
@@ -15759,7 +15704,7 @@ static const value_string valstr_018_V1_7_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_018_V1_7_000_VALUE, NULL };
-static const FieldPart *I018_V1_7_000_PARTS[] = {
+static const FieldPart * const I018_V1_7_000_PARTS[] = {
&I018_V1_7_000_VALUE,
NULL
};
@@ -15793,7 +15738,7 @@ static const value_string valstr_018_V1_7_001_DIAG[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_001_DIAG = { 4, 1.0, FIELD_PART_UINT, &hf_018_V1_7_001_DIAG, NULL };
-static const FieldPart *I018_V1_7_001_PARTS[] = {
+static const FieldPart * const I018_V1_7_001_PARTS[] = {
&I018_V1_7_001_CAUSE,
&I018_V1_7_001_DIAG,
NULL
@@ -15802,7 +15747,7 @@ static const AsterixField I018_V1_7_001 = { FIXED, 1, 0, 0, &hf_018_V1_7_001, I0
static int hf_018_V1_7_002;
static int hf_018_V1_7_002_VALUE;
static const FieldPart I018_V1_7_002_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_018_V1_7_002_VALUE, NULL };
-static const FieldPart *I018_V1_7_002_PARTS[] = {
+static const FieldPart * const I018_V1_7_002_PARTS[] = {
&I018_V1_7_002_VALUE,
NULL
};
@@ -15812,7 +15757,7 @@ static int hf_018_V1_7_004_PREVIOUSII;
static const FieldPart I018_V1_7_004_PREVIOUSII = { 4, 1.0, FIELD_PART_HEX, &hf_018_V1_7_004_PREVIOUSII, NULL };
static int hf_018_V1_7_004_CURRENTII;
static const FieldPart I018_V1_7_004_CURRENTII = { 4, 1.0, FIELD_PART_HEX, &hf_018_V1_7_004_CURRENTII, NULL };
-static const FieldPart *I018_V1_7_004_PARTS[] = {
+static const FieldPart * const I018_V1_7_004_PARTS[] = {
&I018_V1_7_004_PREVIOUSII,
&I018_V1_7_004_CURRENTII,
NULL
@@ -15821,7 +15766,7 @@ static const AsterixField I018_V1_7_004 = { FIXED, 1, 0, 0, &hf_018_V1_7_004, I0
static int hf_018_V1_7_005;
static int hf_018_V1_7_005_VALUE;
static const FieldPart I018_V1_7_005_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_018_V1_7_005_VALUE, NULL };
-static const FieldPart *I018_V1_7_005_PARTS[] = {
+static const FieldPart * const I018_V1_7_005_PARTS[] = {
&I018_V1_7_005_VALUE,
NULL
};
@@ -15829,7 +15774,7 @@ static const AsterixField I018_V1_7_005 = { FIXED, 3, 0, 0, &hf_018_V1_7_005, I0
static int hf_018_V1_7_006;
static int hf_018_V1_7_006_VALUE;
static const FieldPart I018_V1_7_006_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_018_V1_7_006_VALUE, NULL };
-static const FieldPart *I018_V1_7_006_PARTS[] = {
+static const FieldPart * const I018_V1_7_006_PARTS[] = {
&I018_V1_7_006_VALUE,
NULL
};
@@ -15863,7 +15808,7 @@ static const value_string valstr_018_V1_7_007_DC[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_007_DC = { 1, 1.0, FIELD_PART_UINT, &hf_018_V1_7_007_DC, NULL };
-static const FieldPart *I018_V1_7_007_PARTS[] = {
+static const FieldPart * const I018_V1_7_007_PARTS[] = {
&I018_V1_7_007_UM,
&I018_V1_7_007_DM,
&I018_V1_7_007_UC,
@@ -15915,7 +15860,7 @@ static const value_string valstr_018_V1_7_008_IC[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_008_IC = { 1, 1.0, FIELD_PART_UINT, &hf_018_V1_7_008_IC, NULL };
-static const FieldPart *I018_V1_7_008_PARTS[] = {
+static const FieldPart * const I018_V1_7_008_PARTS[] = {
&I018_V1_7_008_UDS,
&I018_V1_7_008_DDS,
&I018_V1_7_008_UCS,
@@ -16014,7 +15959,7 @@ static const value_string valstr_018_V1_7_009_HD[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_009_HD = { 1, 1.0, FIELD_PART_UINT, &hf_018_V1_7_009_HD, NULL };
-static const FieldPart *I018_V1_7_009_PARTS[] = {
+static const FieldPart * const I018_V1_7_009_PARTS[] = {
&I018_V1_7_009_SR,
&I018_V1_7_009_AR,
&I018_V1_7_009_ER,
@@ -16044,7 +15989,7 @@ static const value_string valstr_018_V1_7_010_COM[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_010_COM = { 3, 1.0, FIELD_PART_UINT, &hf_018_V1_7_010_COM, NULL };
-static const FieldPart *I018_V1_7_010_PARTS[] = {
+static const FieldPart * const I018_V1_7_010_PARTS[] = {
&IXXX_5bit_spare,
&I018_V1_7_010_COM,
NULL
@@ -16053,7 +15998,7 @@ static const AsterixField I018_V1_7_010 = { FIXED, 1, 0, 0, &hf_018_V1_7_010, I0
static int hf_018_V1_7_011;
static int hf_018_V1_7_011_VALUE;
static const FieldPart I018_V1_7_011_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_018_V1_7_011_VALUE, NULL };
-static const FieldPart *I018_V1_7_011_PARTS[] = {
+static const FieldPart * const I018_V1_7_011_PARTS[] = {
&I018_V1_7_011_VALUE,
NULL
};
@@ -16075,7 +16020,7 @@ static const value_string valstr_018_V1_7_012_CQF[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_012_CQF = { 7, 1.0, FIELD_PART_UINT, &hf_018_V1_7_012_CQF, NULL };
-static const FieldPart *I018_V1_7_012_PARTS[] = {
+static const FieldPart * const I018_V1_7_012_PARTS[] = {
&I018_V1_7_012_FS,
&I018_V1_7_012_CQF,
NULL
@@ -16084,7 +16029,7 @@ static const AsterixField I018_V1_7_012 = { FIXED, 1, 0, 0, &hf_018_V1_7_012, I0
static int hf_018_V1_7_013;
static int hf_018_V1_7_013_VALUE;
static const FieldPart I018_V1_7_013_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_018_V1_7_013_VALUE, NULL };
-static const FieldPart *I018_V1_7_013_PARTS[] = {
+static const FieldPart * const I018_V1_7_013_PARTS[] = {
&I018_V1_7_013_VALUE,
NULL
};
@@ -16094,7 +16039,7 @@ static int hf_018_V1_7_014_RHO;
static const FieldPart I018_V1_7_014_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_018_V1_7_014_RHO, NULL };
static int hf_018_V1_7_014_THETA;
static const FieldPart I018_V1_7_014_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_018_V1_7_014_THETA, NULL };
-static const FieldPart *I018_V1_7_014_PARTS[] = {
+static const FieldPart * const I018_V1_7_014_PARTS[] = {
&I018_V1_7_014_RHO,
&I018_V1_7_014_THETA,
NULL
@@ -16105,7 +16050,7 @@ static int hf_018_V1_7_015_X;
static const FieldPart I018_V1_7_015_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_018_V1_7_015_X, NULL };
static int hf_018_V1_7_015_Y;
static const FieldPart I018_V1_7_015_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_018_V1_7_015_Y, NULL };
-static const FieldPart *I018_V1_7_015_PARTS[] = {
+static const FieldPart * const I018_V1_7_015_PARTS[] = {
&I018_V1_7_015_X,
&I018_V1_7_015_Y,
NULL
@@ -16114,7 +16059,7 @@ static const AsterixField I018_V1_7_015 = { FIXED, 4, 0, 0, &hf_018_V1_7_015, I0
static int hf_018_V1_7_016;
static int hf_018_V1_7_016_VALUE;
static const FieldPart I018_V1_7_016_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_V1_7_016_VALUE, NULL };
-static const FieldPart *I018_V1_7_016_PARTS[] = {
+static const FieldPart * const I018_V1_7_016_PARTS[] = {
&I018_V1_7_016_VALUE,
NULL
};
@@ -16122,7 +16067,7 @@ static const AsterixField I018_V1_7_016 = { FIXED, 4, 0, 0, &hf_018_V1_7_016, I0
static int hf_018_V1_7_017;
static int hf_018_V1_7_017_VALUE;
static const FieldPart I018_V1_7_017_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_V1_7_017_VALUE, NULL };
-static const FieldPart *I018_V1_7_017_PARTS[] = {
+static const FieldPart * const I018_V1_7_017_PARTS[] = {
&I018_V1_7_017_VALUE,
NULL
};
@@ -16138,7 +16083,7 @@ static const value_string valstr_018_V1_7_018_PT[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_018_PT = { 2, 1.0, FIELD_PART_UINT, &hf_018_V1_7_018_PT, NULL };
-static const FieldPart *I018_V1_7_018_PARTS[] = {
+static const FieldPart * const I018_V1_7_018_PARTS[] = {
&IXXX_1bit_spare,
&I018_V1_7_018_PR,
&I018_V1_7_018_PT,
@@ -16150,7 +16095,7 @@ static const AsterixField I018_V1_7_019 = { EXP, 0, 0, 1, &hf_018_V1_7_019, NULL
static int hf_018_V1_7_020;
static int hf_018_V1_7_020_VALUE;
static const FieldPart I018_V1_7_020_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_V1_7_020_VALUE, NULL };
-static const FieldPart *I018_V1_7_020_PARTS[] = {
+static const FieldPart * const I018_V1_7_020_PARTS[] = {
&I018_V1_7_020_VALUE,
NULL
};
@@ -16164,7 +16109,7 @@ static int hf_018_V1_7_021_DURATION;
static const FieldPart I018_V1_7_021_DURATION = { 8, 1.0, FIELD_PART_UFLOAT, &hf_018_V1_7_021_DURATION, NULL };
static int hf_018_V1_7_021_COVERAGE;
static const FieldPart I018_V1_7_021_COVERAGE = { 32, 1.0, FIELD_PART_HEX, &hf_018_V1_7_021_COVERAGE, NULL };
-static const FieldPart *I018_V1_7_021_PARTS[] = {
+static const FieldPart * const I018_V1_7_021_PARTS[] = {
&I018_V1_7_021_PRIORITY,
&I018_V1_7_021_POWER,
&I018_V1_7_021_DURATION,
@@ -16175,7 +16120,7 @@ static const AsterixField I018_V1_7_021 = { FIXED, 6, 0, 0, &hf_018_V1_7_021, I0
static int hf_018_V1_7_022;
static int hf_018_V1_7_022_PREFIX;
static const FieldPart I018_V1_7_022_PREFIX = { 27, 1.0, FIELD_PART_HEX, &hf_018_V1_7_022_PREFIX, NULL };
-static const FieldPart *I018_V1_7_022_PARTS[] = {
+static const FieldPart * const I018_V1_7_022_PARTS[] = {
&IXXX_5bit_spare,
&I018_V1_7_022_PREFIX,
NULL
@@ -16184,7 +16129,7 @@ static const AsterixField I018_V1_7_022 = { FIXED, 4, 0, 0, &hf_018_V1_7_022, I0
static int hf_018_V1_7_023;
static int hf_018_V1_7_023_VALUE;
static const FieldPart I018_V1_7_023_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_018_V1_7_023_VALUE, NULL };
-static const FieldPart *I018_V1_7_023_PARTS[] = {
+static const FieldPart * const I018_V1_7_023_PARTS[] = {
&I018_V1_7_023_VALUE,
NULL
};
@@ -16192,7 +16137,7 @@ static const AsterixField I018_V1_7_023 = { FIXED, 7, 0, 0, &hf_018_V1_7_023, I0
static int hf_018_V1_7_025;
static int hf_018_V1_7_025_VALUE;
static const FieldPart I018_V1_7_025_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_V1_7_025_VALUE, NULL };
-static const FieldPart *I018_V1_7_025_PARTS[] = {
+static const FieldPart * const I018_V1_7_025_PARTS[] = {
&I018_V1_7_025_VALUE,
NULL
};
@@ -16200,7 +16145,7 @@ static const AsterixField I018_V1_7_025 = { FIXED, 4, 0, 0, &hf_018_V1_7_025, I0
static int hf_018_V1_7_027;
static int hf_018_V1_7_027_VALUE;
static const FieldPart I018_V1_7_027_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_018_V1_7_027_VALUE, NULL };
-static const FieldPart *I018_V1_7_027_PARTS[] = {
+static const FieldPart * const I018_V1_7_027_PARTS[] = {
&I018_V1_7_027_VALUE,
NULL
};
@@ -16208,7 +16153,7 @@ static const AsterixField I018_V1_7_027 = { FIXED, 1, 0, 0, &hf_018_V1_7_027, I0
static int hf_018_V1_7_028;
static int hf_018_V1_7_028_VALUE;
static const FieldPart I018_V1_7_028_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_018_V1_7_028_VALUE, NULL };
-static const FieldPart *I018_V1_7_028_PARTS[] = {
+static const FieldPart * const I018_V1_7_028_PARTS[] = {
&I018_V1_7_028_VALUE,
NULL
};
@@ -16216,7 +16161,7 @@ static const AsterixField I018_V1_7_028 = { FIXED, 2, 0, 0, &hf_018_V1_7_028, I0
static int hf_018_V1_7_029;
static int hf_018_V1_7_029_VALUE;
static const FieldPart I018_V1_7_029_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_018_V1_7_029_VALUE, NULL };
-static const FieldPart *I018_V1_7_029_PARTS[] = {
+static const FieldPart * const I018_V1_7_029_PARTS[] = {
&I018_V1_7_029_VALUE,
NULL
};
@@ -16253,7 +16198,7 @@ static const value_string valstr_018_V1_7_030_RD[] = {
{ 0, NULL }
};
static const FieldPart I018_V1_7_030_RD = { 2, 1.0, FIELD_PART_UINT, &hf_018_V1_7_030_RD, NULL };
-static const FieldPart *I018_V1_7_030_PARTS[] = {
+static const FieldPart * const I018_V1_7_030_PARTS[] = {
&I018_V1_7_030_PRIORITY,
&IXXX_3bit_spare,
&I018_V1_7_030_PC,
@@ -16267,7 +16212,7 @@ static const AsterixField I018_V1_7_030 = { FIXED, 2, 0, 0, &hf_018_V1_7_030, I0
static int hf_018_V1_7_031;
static int hf_018_V1_7_031_VALUE;
static const FieldPart I018_V1_7_031_VALUE = { 48, 1.0, FIELD_PART_HEX, &hf_018_V1_7_031_VALUE, NULL };
-static const FieldPart *I018_V1_7_031_PARTS[] = {
+static const FieldPart * const I018_V1_7_031_PARTS[] = {
&I018_V1_7_031_VALUE,
NULL
};
@@ -16296,7 +16241,7 @@ static const value_string valstr_018_V1_7_032_L[] = {
static const FieldPart I018_V1_7_032_L = { 1, 1.0, FIELD_PART_UINT, &hf_018_V1_7_032_L, NULL };
static int hf_018_V1_7_032_MOD3A;
static const FieldPart I018_V1_7_032_MOD3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_018_V1_7_032_MOD3A, NULL };
-static const FieldPart *I018_V1_7_032_PARTS[] = {
+static const FieldPart * const I018_V1_7_032_PARTS[] = {
&I018_V1_7_032_V,
&I018_V1_7_032_G,
&I018_V1_7_032_L,
@@ -16322,7 +16267,7 @@ static const value_string valstr_018_V1_7_033_G[] = {
static const FieldPart I018_V1_7_033_G = { 1, 1.0, FIELD_PART_UINT, &hf_018_V1_7_033_G, NULL };
static int hf_018_V1_7_033_FL;
static const FieldPart I018_V1_7_033_FL = { 14, 0.25, FIELD_PART_FLOAT, &hf_018_V1_7_033_FL, NULL };
-static const FieldPart *I018_V1_7_033_PARTS[] = {
+static const FieldPart * const I018_V1_7_033_PARTS[] = {
&I018_V1_7_033_V,
&I018_V1_7_033_G,
&I018_V1_7_033_FL,
@@ -16332,7 +16277,7 @@ static const AsterixField I018_V1_7_033 = { FIXED, 2, 0, 0, &hf_018_V1_7_033, I0
static int hf_018_V1_7_034;
static int hf_018_V1_7_034_VALUE;
static const FieldPart I018_V1_7_034_VALUE = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_018_V1_7_034_VALUE, NULL };
-static const FieldPart *I018_V1_7_034_PARTS[] = {
+static const FieldPart * const I018_V1_7_034_PARTS[] = {
&I018_V1_7_034_VALUE,
NULL
};
@@ -16340,7 +16285,7 @@ static const AsterixField I018_V1_7_034 = { FIXED, 2, 0, 0, &hf_018_V1_7_034, I0
static int hf_018_V1_7_035;
static int hf_018_V1_7_035_VALUE;
static const FieldPart I018_V1_7_035_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_018_V1_7_035_VALUE, NULL };
-static const FieldPart *I018_V1_7_035_PARTS[] = {
+static const FieldPart * const I018_V1_7_035_PARTS[] = {
&I018_V1_7_035_VALUE,
NULL
};
@@ -16350,7 +16295,7 @@ static int hf_018_V1_7_036_SAC;
static const FieldPart I018_V1_7_036_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_018_V1_7_036_SAC, NULL };
static int hf_018_V1_7_036_SIC;
static const FieldPart I018_V1_7_036_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_018_V1_7_036_SIC, NULL };
-static const FieldPart *I018_V1_7_036_PARTS[] = {
+static const FieldPart * const I018_V1_7_036_PARTS[] = {
&I018_V1_7_036_SAC,
&I018_V1_7_036_SIC,
NULL
@@ -16361,7 +16306,7 @@ static int hf_018_V1_7_037_SAC;
static const FieldPart I018_V1_7_037_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_018_V1_7_037_SAC, NULL };
static int hf_018_V1_7_037_SIC;
static const FieldPart I018_V1_7_037_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_018_V1_7_037_SIC, NULL };
-static const FieldPart *I018_V1_7_037_PARTS[] = {
+static const FieldPart * const I018_V1_7_037_PARTS[] = {
&I018_V1_7_037_SAC,
&I018_V1_7_037_SIC,
NULL
@@ -16398,7 +16343,7 @@ static const value_string valstr_018_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I018_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_018_000_VALUE, NULL };
-static const FieldPart *I018_000_PARTS[] = {
+static const FieldPart * const I018_000_PARTS[] = {
&I018_000_VALUE,
NULL
};
@@ -16432,7 +16377,7 @@ static const value_string valstr_018_001_DIAG[] = {
{ 0, NULL }
};
static const FieldPart I018_001_DIAG = { 4, 1.0, FIELD_PART_UINT, &hf_018_001_DIAG, NULL };
-static const FieldPart *I018_001_PARTS[] = {
+static const FieldPart * const I018_001_PARTS[] = {
&I018_001_CAUSE,
&I018_001_DIAG,
NULL
@@ -16441,7 +16386,7 @@ static const AsterixField I018_001 = { FIXED, 1, 0, 0, &hf_018_001, I018_001_PAR
static int hf_018_002;
static int hf_018_002_VALUE;
static const FieldPart I018_002_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_018_002_VALUE, NULL };
-static const FieldPart *I018_002_PARTS[] = {
+static const FieldPart * const I018_002_PARTS[] = {
&I018_002_VALUE,
NULL
};
@@ -16451,7 +16396,7 @@ static int hf_018_004_PREVIOUSII;
static const FieldPart I018_004_PREVIOUSII = { 4, 1.0, FIELD_PART_HEX, &hf_018_004_PREVIOUSII, NULL };
static int hf_018_004_CURRENTII;
static const FieldPart I018_004_CURRENTII = { 4, 1.0, FIELD_PART_HEX, &hf_018_004_CURRENTII, NULL };
-static const FieldPart *I018_004_PARTS[] = {
+static const FieldPart * const I018_004_PARTS[] = {
&I018_004_PREVIOUSII,
&I018_004_CURRENTII,
NULL
@@ -16460,7 +16405,7 @@ static const AsterixField I018_004 = { FIXED, 1, 0, 0, &hf_018_004, I018_004_PAR
static int hf_018_005;
static int hf_018_005_VALUE;
static const FieldPart I018_005_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_018_005_VALUE, NULL };
-static const FieldPart *I018_005_PARTS[] = {
+static const FieldPart * const I018_005_PARTS[] = {
&I018_005_VALUE,
NULL
};
@@ -16468,7 +16413,7 @@ static const AsterixField I018_005 = { FIXED, 3, 0, 0, &hf_018_005, I018_005_PAR
static int hf_018_006;
static int hf_018_006_VALUE;
static const FieldPart I018_006_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_018_006_VALUE, NULL };
-static const FieldPart *I018_006_PARTS[] = {
+static const FieldPart * const I018_006_PARTS[] = {
&I018_006_VALUE,
NULL
};
@@ -16502,7 +16447,7 @@ static const value_string valstr_018_007_DC[] = {
{ 0, NULL }
};
static const FieldPart I018_007_DC = { 1, 1.0, FIELD_PART_UINT, &hf_018_007_DC, NULL };
-static const FieldPart *I018_007_PARTS[] = {
+static const FieldPart * const I018_007_PARTS[] = {
&I018_007_UM,
&I018_007_DM,
&I018_007_UC,
@@ -16554,7 +16499,7 @@ static const value_string valstr_018_008_IC[] = {
{ 0, NULL }
};
static const FieldPart I018_008_IC = { 1, 1.0, FIELD_PART_UINT, &hf_018_008_IC, NULL };
-static const FieldPart *I018_008_PARTS[] = {
+static const FieldPart * const I018_008_PARTS[] = {
&I018_008_UDS,
&I018_008_DDS,
&I018_008_UCS,
@@ -16653,7 +16598,7 @@ static const value_string valstr_018_009_HD[] = {
{ 0, NULL }
};
static const FieldPart I018_009_HD = { 1, 1.0, FIELD_PART_UINT, &hf_018_009_HD, NULL };
-static const FieldPart *I018_009_PARTS[] = {
+static const FieldPart * const I018_009_PARTS[] = {
&I018_009_SR,
&I018_009_AR,
&I018_009_ER,
@@ -16683,7 +16628,7 @@ static const value_string valstr_018_010_COM[] = {
{ 0, NULL }
};
static const FieldPart I018_010_COM = { 3, 1.0, FIELD_PART_UINT, &hf_018_010_COM, NULL };
-static const FieldPart *I018_010_PARTS[] = {
+static const FieldPart * const I018_010_PARTS[] = {
&IXXX_5bit_spare,
&I018_010_COM,
NULL
@@ -16692,7 +16637,7 @@ static const AsterixField I018_010 = { FIXED, 1, 0, 0, &hf_018_010, I018_010_PAR
static int hf_018_011;
static int hf_018_011_VALUE;
static const FieldPart I018_011_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_018_011_VALUE, NULL };
-static const FieldPart *I018_011_PARTS[] = {
+static const FieldPart * const I018_011_PARTS[] = {
&I018_011_VALUE,
NULL
};
@@ -16714,7 +16659,7 @@ static const value_string valstr_018_012_CQF[] = {
{ 0, NULL }
};
static const FieldPart I018_012_CQF = { 7, 1.0, FIELD_PART_UINT, &hf_018_012_CQF, NULL };
-static const FieldPart *I018_012_PARTS[] = {
+static const FieldPart * const I018_012_PARTS[] = {
&I018_012_FS,
&I018_012_CQF,
NULL
@@ -16723,7 +16668,7 @@ static const AsterixField I018_012 = { FIXED, 1, 0, 0, &hf_018_012, I018_012_PAR
static int hf_018_013;
static int hf_018_013_VALUE;
static const FieldPart I018_013_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_018_013_VALUE, NULL };
-static const FieldPart *I018_013_PARTS[] = {
+static const FieldPart * const I018_013_PARTS[] = {
&I018_013_VALUE,
NULL
};
@@ -16733,7 +16678,7 @@ static int hf_018_014_RHO;
static const FieldPart I018_014_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_018_014_RHO, NULL };
static int hf_018_014_THETA;
static const FieldPart I018_014_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_018_014_THETA, NULL };
-static const FieldPart *I018_014_PARTS[] = {
+static const FieldPart * const I018_014_PARTS[] = {
&I018_014_RHO,
&I018_014_THETA,
NULL
@@ -16744,7 +16689,7 @@ static int hf_018_015_X;
static const FieldPart I018_015_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_018_015_X, NULL };
static int hf_018_015_Y;
static const FieldPart I018_015_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_018_015_Y, NULL };
-static const FieldPart *I018_015_PARTS[] = {
+static const FieldPart * const I018_015_PARTS[] = {
&I018_015_X,
&I018_015_Y,
NULL
@@ -16753,7 +16698,7 @@ static const AsterixField I018_015 = { FIXED, 4, 0, 0, &hf_018_015, I018_015_PAR
static int hf_018_016;
static int hf_018_016_VALUE;
static const FieldPart I018_016_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_016_VALUE, NULL };
-static const FieldPart *I018_016_PARTS[] = {
+static const FieldPart * const I018_016_PARTS[] = {
&I018_016_VALUE,
NULL
};
@@ -16761,7 +16706,7 @@ static const AsterixField I018_016 = { FIXED, 4, 0, 0, &hf_018_016, I018_016_PAR
static int hf_018_017;
static int hf_018_017_VALUE;
static const FieldPart I018_017_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_017_VALUE, NULL };
-static const FieldPart *I018_017_PARTS[] = {
+static const FieldPart * const I018_017_PARTS[] = {
&I018_017_VALUE,
NULL
};
@@ -16777,7 +16722,7 @@ static const value_string valstr_018_018_PT[] = {
{ 0, NULL }
};
static const FieldPart I018_018_PT = { 2, 1.0, FIELD_PART_UINT, &hf_018_018_PT, NULL };
-static const FieldPart *I018_018_PARTS[] = {
+static const FieldPart * const I018_018_PARTS[] = {
&IXXX_1bit_spare,
&I018_018_PR,
&I018_018_PT,
@@ -16789,7 +16734,7 @@ static const AsterixField I018_019 = { EXP, 0, 0, 1, &hf_018_019, NULL, { NULL }
static int hf_018_020;
static int hf_018_020_VALUE;
static const FieldPart I018_020_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_020_VALUE, NULL };
-static const FieldPart *I018_020_PARTS[] = {
+static const FieldPart * const I018_020_PARTS[] = {
&I018_020_VALUE,
NULL
};
@@ -16803,7 +16748,7 @@ static int hf_018_021_DURATION;
static const FieldPart I018_021_DURATION = { 8, 1.0, FIELD_PART_UFLOAT, &hf_018_021_DURATION, NULL };
static int hf_018_021_COVERAGE;
static const FieldPart I018_021_COVERAGE = { 32, 1.0, FIELD_PART_HEX, &hf_018_021_COVERAGE, NULL };
-static const FieldPart *I018_021_PARTS[] = {
+static const FieldPart * const I018_021_PARTS[] = {
&I018_021_PRIORITY,
&I018_021_POWER,
&I018_021_DURATION,
@@ -16814,7 +16759,7 @@ static const AsterixField I018_021 = { FIXED, 6, 0, 0, &hf_018_021, I018_021_PAR
static int hf_018_022;
static int hf_018_022_PREFIX;
static const FieldPart I018_022_PREFIX = { 27, 1.0, FIELD_PART_HEX, &hf_018_022_PREFIX, NULL };
-static const FieldPart *I018_022_PARTS[] = {
+static const FieldPart * const I018_022_PARTS[] = {
&IXXX_5bit_spare,
&I018_022_PREFIX,
NULL
@@ -16823,7 +16768,7 @@ static const AsterixField I018_022 = { FIXED, 4, 0, 0, &hf_018_022, I018_022_PAR
static int hf_018_023;
static int hf_018_023_VALUE;
static const FieldPart I018_023_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_018_023_VALUE, NULL };
-static const FieldPart *I018_023_PARTS[] = {
+static const FieldPart * const I018_023_PARTS[] = {
&I018_023_VALUE,
NULL
};
@@ -16831,7 +16776,7 @@ static const AsterixField I018_023 = { FIXED, 7, 0, 0, &hf_018_023, I018_023_PAR
static int hf_018_025;
static int hf_018_025_VALUE;
static const FieldPart I018_025_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_018_025_VALUE, NULL };
-static const FieldPart *I018_025_PARTS[] = {
+static const FieldPart * const I018_025_PARTS[] = {
&I018_025_VALUE,
NULL
};
@@ -16839,7 +16784,7 @@ static const AsterixField I018_025 = { FIXED, 4, 0, 0, &hf_018_025, I018_025_PAR
static int hf_018_027;
static int hf_018_027_VALUE;
static const FieldPart I018_027_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_018_027_VALUE, NULL };
-static const FieldPart *I018_027_PARTS[] = {
+static const FieldPart * const I018_027_PARTS[] = {
&I018_027_VALUE,
NULL
};
@@ -16847,7 +16792,7 @@ static const AsterixField I018_027 = { FIXED, 1, 0, 0, &hf_018_027, I018_027_PAR
static int hf_018_028;
static int hf_018_028_VALUE;
static const FieldPart I018_028_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_018_028_VALUE, NULL };
-static const FieldPart *I018_028_PARTS[] = {
+static const FieldPart * const I018_028_PARTS[] = {
&I018_028_VALUE,
NULL
};
@@ -16855,7 +16800,7 @@ static const AsterixField I018_028 = { FIXED, 2, 0, 0, &hf_018_028, I018_028_PAR
static int hf_018_029;
static int hf_018_029_VALUE;
static const FieldPart I018_029_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_018_029_VALUE, NULL };
-static const FieldPart *I018_029_PARTS[] = {
+static const FieldPart * const I018_029_PARTS[] = {
&I018_029_VALUE,
NULL
};
@@ -16892,7 +16837,7 @@ static const value_string valstr_018_030_RD[] = {
{ 0, NULL }
};
static const FieldPart I018_030_RD = { 2, 1.0, FIELD_PART_UINT, &hf_018_030_RD, NULL };
-static const FieldPart *I018_030_PARTS[] = {
+static const FieldPart * const I018_030_PARTS[] = {
&I018_030_PRIORITY,
&IXXX_3bit_spare,
&I018_030_PC,
@@ -16906,7 +16851,7 @@ static const AsterixField I018_030 = { FIXED, 2, 0, 0, &hf_018_030, I018_030_PAR
static int hf_018_031;
static int hf_018_031_VALUE;
static const FieldPart I018_031_VALUE = { 48, 1.0, FIELD_PART_HEX, &hf_018_031_VALUE, NULL };
-static const FieldPart *I018_031_PARTS[] = {
+static const FieldPart * const I018_031_PARTS[] = {
&I018_031_VALUE,
NULL
};
@@ -16935,7 +16880,7 @@ static const value_string valstr_018_032_L[] = {
static const FieldPart I018_032_L = { 1, 1.0, FIELD_PART_UINT, &hf_018_032_L, NULL };
static int hf_018_032_MOD3A;
static const FieldPart I018_032_MOD3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_018_032_MOD3A, NULL };
-static const FieldPart *I018_032_PARTS[] = {
+static const FieldPart * const I018_032_PARTS[] = {
&I018_032_V,
&I018_032_G,
&I018_032_L,
@@ -16961,7 +16906,7 @@ static const value_string valstr_018_033_G[] = {
static const FieldPart I018_033_G = { 1, 1.0, FIELD_PART_UINT, &hf_018_033_G, NULL };
static int hf_018_033_FL;
static const FieldPart I018_033_FL = { 14, 0.25, FIELD_PART_FLOAT, &hf_018_033_FL, NULL };
-static const FieldPart *I018_033_PARTS[] = {
+static const FieldPart * const I018_033_PARTS[] = {
&I018_033_V,
&I018_033_G,
&I018_033_FL,
@@ -16971,7 +16916,7 @@ static const AsterixField I018_033 = { FIXED, 2, 0, 0, &hf_018_033, I018_033_PAR
static int hf_018_034;
static int hf_018_034_VALUE;
static const FieldPart I018_034_VALUE = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_018_034_VALUE, NULL };
-static const FieldPart *I018_034_PARTS[] = {
+static const FieldPart * const I018_034_PARTS[] = {
&I018_034_VALUE,
NULL
};
@@ -16979,7 +16924,7 @@ static const AsterixField I018_034 = { FIXED, 2, 0, 0, &hf_018_034, I018_034_PAR
static int hf_018_035;
static int hf_018_035_VALUE;
static const FieldPart I018_035_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_018_035_VALUE, NULL };
-static const FieldPart *I018_035_PARTS[] = {
+static const FieldPart * const I018_035_PARTS[] = {
&I018_035_VALUE,
NULL
};
@@ -16989,7 +16934,7 @@ static int hf_018_036_SAC;
static const FieldPart I018_036_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_018_036_SAC, NULL };
static int hf_018_036_SIC;
static const FieldPart I018_036_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_018_036_SIC, NULL };
-static const FieldPart *I018_036_PARTS[] = {
+static const FieldPart * const I018_036_PARTS[] = {
&I018_036_SAC,
&I018_036_SIC,
NULL
@@ -17000,15 +16945,14 @@ static int hf_018_037_SAC;
static const FieldPart I018_037_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_018_037_SAC, NULL };
static int hf_018_037_SIC;
static const FieldPart I018_037_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_018_037_SIC, NULL };
-static const FieldPart *I018_037_PARTS[] = {
+static const FieldPart * const I018_037_PARTS[] = {
&I018_037_SAC,
&I018_037_SIC,
NULL
};
static const AsterixField I018_037 = { FIXED, 2, 0, 0, &hf_018_037, I018_037_PARTS, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I018_V1_7_uap[] = {
+static const AsterixField * const I018_V1_7_uap[] = {
&I018_V1_7_036,
&I018_V1_7_037,
&I018_V1_7_000,
@@ -17046,14 +16990,12 @@ static const AsterixField *I018_V1_7_uap[] = {
&I018_V1_7_013,
NULL
};
-static const AsterixField **I018_V1_7[] = {
+static const AsterixField * const * const I018_V1_7[] = {
I018_V1_7_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I018_uap[] = {
+static const AsterixField * const I018_uap[] = {
&I018_036,
&I018_037,
&I018_000,
@@ -17091,11 +17033,10 @@ static const AsterixField *I018_uap[] = {
&I018_013,
NULL
};
-static const AsterixField **I018[] = {
+static const AsterixField * const * const I018[] = {
I018_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 019, edition 1.3 */
static int hf_019_V1_3_000;
@@ -17107,7 +17048,7 @@ static const value_string valstr_019_V1_3_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I019_V1_3_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_019_V1_3_000_VALUE, NULL };
-static const FieldPart *I019_V1_3_000_PARTS[] = {
+static const FieldPart * const I019_V1_3_000_PARTS[] = {
&I019_V1_3_000_VALUE,
NULL
};
@@ -17117,7 +17058,7 @@ static int hf_019_V1_3_010_SAC;
static const FieldPart I019_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_019_V1_3_010_SAC, NULL };
static int hf_019_V1_3_010_SIC;
static const FieldPart I019_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_019_V1_3_010_SIC, NULL };
-static const FieldPart *I019_V1_3_010_PARTS[] = {
+static const FieldPart * const I019_V1_3_010_PARTS[] = {
&I019_V1_3_010_SAC,
&I019_V1_3_010_SIC,
NULL
@@ -17126,7 +17067,7 @@ static const AsterixField I019_V1_3_010 = { FIXED, 2, 0, 0, &hf_019_V1_3_010, I0
static int hf_019_V1_3_140;
static int hf_019_V1_3_140_VALUE;
static const FieldPart I019_V1_3_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_019_V1_3_140_VALUE, NULL };
-static const FieldPart *I019_V1_3_140_PARTS[] = {
+static const FieldPart * const I019_V1_3_140_PARTS[] = {
&I019_V1_3_140_VALUE,
NULL
};
@@ -17162,7 +17103,7 @@ static const value_string valstr_019_V1_3_550_TTF[] = {
{ 0, NULL }
};
static const FieldPart I019_V1_3_550_TTF = { 1, 1.0, FIELD_PART_UINT, &hf_019_V1_3_550_TTF, NULL };
-static const FieldPart *I019_V1_3_550_PARTS[] = {
+static const FieldPart * const I019_V1_3_550_PARTS[] = {
&I019_V1_3_550_NOGO,
&I019_V1_3_550_OVL,
&I019_V1_3_550_TSV,
@@ -17228,7 +17169,7 @@ static const value_string valstr_019_V1_3_551_TP4B[] = {
{ 0, NULL }
};
static const FieldPart I019_V1_3_551_TP4B = { 1, 1.0, FIELD_PART_UINT, &hf_019_V1_3_551_TP4B, NULL };
-static const FieldPart *I019_V1_3_551_PARTS[] = {
+static const FieldPart * const I019_V1_3_551_PARTS[] = {
&I019_V1_3_551_TP1A,
&I019_V1_3_551_TP1B,
&I019_V1_3_551_TP2A,
@@ -17278,7 +17219,7 @@ static const value_string valstr_019_V1_3_552_RSO[] = {
{ 0, NULL }
};
static const FieldPart I019_V1_3_552_RSO = { 1, 1.0, FIELD_PART_UINT, &hf_019_V1_3_552_RSO, NULL };
-static const FieldPart *I019_V1_3_552_PARTS[] = {
+static const FieldPart * const I019_V1_3_552_PARTS[] = {
&I019_V1_3_552_RSI,
&IXXX_1bit_spare,
&I019_V1_3_552_RS1090,
@@ -17323,7 +17264,7 @@ static const value_string valstr_019_V1_3_553_REFTR4[] = {
{ 0, NULL }
};
static const FieldPart I019_V1_3_553_REFTR4 = { 2, 1.0, FIELD_PART_UINT, &hf_019_V1_3_553_REFTR4, NULL };
-static const FieldPart *I019_V1_3_553_PARTS[] = {
+static const FieldPart * const I019_V1_3_553_PARTS[] = {
&I019_V1_3_553_REFTR1,
&IXXX_2bit_spare,
&I019_V1_3_553_REFTR2,
@@ -17342,7 +17283,7 @@ static int hf_019_V1_3_600_LAT;
static const FieldPart I019_V1_3_600_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_019_V1_3_600_LAT, NULL };
static int hf_019_V1_3_600_LON;
static const FieldPart I019_V1_3_600_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_019_V1_3_600_LON, NULL };
-static const FieldPart *I019_V1_3_600_PARTS[] = {
+static const FieldPart * const I019_V1_3_600_PARTS[] = {
&I019_V1_3_600_LAT,
&I019_V1_3_600_LON,
NULL
@@ -17351,7 +17292,7 @@ static const AsterixField I019_V1_3_600 = { FIXED, 8, 0, 0, &hf_019_V1_3_600, I0
static int hf_019_V1_3_610;
static int hf_019_V1_3_610_VALUE;
static const FieldPart I019_V1_3_610_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_019_V1_3_610_VALUE, NULL };
-static const FieldPart *I019_V1_3_610_PARTS[] = {
+static const FieldPart * const I019_V1_3_610_PARTS[] = {
&I019_V1_3_610_VALUE,
NULL
};
@@ -17359,7 +17300,7 @@ static const AsterixField I019_V1_3_610 = { FIXED, 2, 0, 0, &hf_019_V1_3_610, I0
static int hf_019_V1_3_620;
static int hf_019_V1_3_620_VALUE;
static const FieldPart I019_V1_3_620_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_019_V1_3_620_VALUE, NULL };
-static const FieldPart *I019_V1_3_620_PARTS[] = {
+static const FieldPart * const I019_V1_3_620_PARTS[] = {
&I019_V1_3_620_VALUE,
NULL
};
@@ -17379,7 +17320,7 @@ static const value_string valstr_019_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I019_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_019_000_VALUE, NULL };
-static const FieldPart *I019_000_PARTS[] = {
+static const FieldPart * const I019_000_PARTS[] = {
&I019_000_VALUE,
NULL
};
@@ -17389,7 +17330,7 @@ static int hf_019_010_SAC;
static const FieldPart I019_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_019_010_SAC, NULL };
static int hf_019_010_SIC;
static const FieldPart I019_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_019_010_SIC, NULL };
-static const FieldPart *I019_010_PARTS[] = {
+static const FieldPart * const I019_010_PARTS[] = {
&I019_010_SAC,
&I019_010_SIC,
NULL
@@ -17398,7 +17339,7 @@ static const AsterixField I019_010 = { FIXED, 2, 0, 0, &hf_019_010, I019_010_PAR
static int hf_019_140;
static int hf_019_140_VALUE;
static const FieldPart I019_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_019_140_VALUE, NULL };
-static const FieldPart *I019_140_PARTS[] = {
+static const FieldPart * const I019_140_PARTS[] = {
&I019_140_VALUE,
NULL
};
@@ -17434,7 +17375,7 @@ static const value_string valstr_019_550_TTF[] = {
{ 0, NULL }
};
static const FieldPart I019_550_TTF = { 1, 1.0, FIELD_PART_UINT, &hf_019_550_TTF, NULL };
-static const FieldPart *I019_550_PARTS[] = {
+static const FieldPart * const I019_550_PARTS[] = {
&I019_550_NOGO,
&I019_550_OVL,
&I019_550_TSV,
@@ -17500,7 +17441,7 @@ static const value_string valstr_019_551_TP4B[] = {
{ 0, NULL }
};
static const FieldPart I019_551_TP4B = { 1, 1.0, FIELD_PART_UINT, &hf_019_551_TP4B, NULL };
-static const FieldPart *I019_551_PARTS[] = {
+static const FieldPart * const I019_551_PARTS[] = {
&I019_551_TP1A,
&I019_551_TP1B,
&I019_551_TP2A,
@@ -17550,7 +17491,7 @@ static const value_string valstr_019_552_RSO[] = {
{ 0, NULL }
};
static const FieldPart I019_552_RSO = { 1, 1.0, FIELD_PART_UINT, &hf_019_552_RSO, NULL };
-static const FieldPart *I019_552_PARTS[] = {
+static const FieldPart * const I019_552_PARTS[] = {
&I019_552_RSI,
&IXXX_1bit_spare,
&I019_552_RS1090,
@@ -17595,7 +17536,7 @@ static const value_string valstr_019_553_REFTR4[] = {
{ 0, NULL }
};
static const FieldPart I019_553_REFTR4 = { 2, 1.0, FIELD_PART_UINT, &hf_019_553_REFTR4, NULL };
-static const FieldPart *I019_553_PARTS[] = {
+static const FieldPart * const I019_553_PARTS[] = {
&I019_553_REFTR1,
&IXXX_2bit_spare,
&I019_553_REFTR2,
@@ -17614,7 +17555,7 @@ static int hf_019_600_LAT;
static const FieldPart I019_600_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_019_600_LAT, NULL };
static int hf_019_600_LON;
static const FieldPart I019_600_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_019_600_LON, NULL };
-static const FieldPart *I019_600_PARTS[] = {
+static const FieldPart * const I019_600_PARTS[] = {
&I019_600_LAT,
&I019_600_LON,
NULL
@@ -17623,7 +17564,7 @@ static const AsterixField I019_600 = { FIXED, 8, 0, 0, &hf_019_600, I019_600_PAR
static int hf_019_610;
static int hf_019_610_VALUE;
static const FieldPart I019_610_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_019_610_VALUE, NULL };
-static const FieldPart *I019_610_PARTS[] = {
+static const FieldPart * const I019_610_PARTS[] = {
&I019_610_VALUE,
NULL
};
@@ -17631,7 +17572,7 @@ static const AsterixField I019_610 = { FIXED, 2, 0, 0, &hf_019_610, I019_610_PAR
static int hf_019_620;
static int hf_019_620_VALUE;
static const FieldPart I019_620_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_019_620_VALUE, NULL };
-static const FieldPart *I019_620_PARTS[] = {
+static const FieldPart * const I019_620_PARTS[] = {
&I019_620_VALUE,
NULL
};
@@ -17641,8 +17582,7 @@ static const AsterixField I019_RE = { EXP, 0, 0, 1, &hf_019_RE, NULL, { NULL } }
static int hf_019_SP;
static const AsterixField I019_SP = { EXP, 0, 0, 1, &hf_019_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I019_V1_3_uap[] = {
+static const AsterixField * const I019_V1_3_uap[] = {
&I019_V1_3_010,
&I019_V1_3_000,
&I019_V1_3_140,
@@ -17659,14 +17599,12 @@ static const AsterixField *I019_V1_3_uap[] = {
&I019_V1_3_SP,
NULL
};
-static const AsterixField **I019_V1_3[] = {
+static const AsterixField * const * const I019_V1_3[] = {
I019_V1_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I019_uap[] = {
+static const AsterixField * const I019_uap[] = {
&I019_010,
&I019_000,
&I019_140,
@@ -17683,11 +17621,10 @@ static const AsterixField *I019_uap[] = {
&I019_SP,
NULL
};
-static const AsterixField **I019[] = {
+static const AsterixField * const * const I019[] = {
I019_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 020, edition 1.9 */
static int hf_020_V1_9_010;
@@ -17695,7 +17632,7 @@ static int hf_020_V1_9_010_SAC;
static const FieldPart I020_V1_9_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_020_V1_9_010_SAC, NULL };
static int hf_020_V1_9_010_SIC;
static const FieldPart I020_V1_9_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_020_V1_9_010_SIC, NULL };
-static const FieldPart *I020_V1_9_010_PARTS[] = {
+static const FieldPart * const I020_V1_9_010_PARTS[] = {
&I020_V1_9_010_SAC,
&I020_V1_9_010_SIC,
NULL
@@ -17800,7 +17737,7 @@ static const value_string valstr_020_V1_9_020_TST[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_9_020_TST = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_020_TST, NULL };
-static const FieldPart *I020_V1_9_020_PARTS[] = {
+static const FieldPart * const I020_V1_9_020_PARTS[] = {
&I020_V1_9_020_SSR,
&I020_V1_9_020_MS,
&I020_V1_9_020_HF,
@@ -17836,7 +17773,7 @@ static const value_string valstr_020_V1_9_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_9_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_020_V1_9_030_Subitem, NULL };
-static const FieldPart *I020_V1_9_030_PARTS[] = {
+static const FieldPart * const I020_V1_9_030_PARTS[] = {
&I020_V1_9_030_Subitem,
&IXXX_FX,
NULL
@@ -17847,7 +17784,7 @@ static int hf_020_V1_9_041_LAT;
static const FieldPart I020_V1_9_041_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_020_V1_9_041_LAT, NULL };
static int hf_020_V1_9_041_LON;
static const FieldPart I020_V1_9_041_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_020_V1_9_041_LON, NULL };
-static const FieldPart *I020_V1_9_041_PARTS[] = {
+static const FieldPart * const I020_V1_9_041_PARTS[] = {
&I020_V1_9_041_LAT,
&I020_V1_9_041_LON,
NULL
@@ -17858,7 +17795,7 @@ static int hf_020_V1_9_042_X;
static const FieldPart I020_V1_9_042_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_020_V1_9_042_X, NULL };
static int hf_020_V1_9_042_Y;
static const FieldPart I020_V1_9_042_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_020_V1_9_042_Y, NULL };
-static const FieldPart *I020_V1_9_042_PARTS[] = {
+static const FieldPart * const I020_V1_9_042_PARTS[] = {
&I020_V1_9_042_X,
&I020_V1_9_042_Y,
NULL
@@ -17888,7 +17825,7 @@ static const value_string valstr_020_V1_9_050_L[] = {
static const FieldPart I020_V1_9_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_050_L, NULL };
static int hf_020_V1_9_050_MODE2;
static const FieldPart I020_V1_9_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_020_V1_9_050_MODE2, NULL };
-static const FieldPart *I020_V1_9_050_PARTS[] = {
+static const FieldPart * const I020_V1_9_050_PARTS[] = {
&I020_V1_9_050_V,
&I020_V1_9_050_G,
&I020_V1_9_050_L,
@@ -17921,7 +17858,7 @@ static const value_string valstr_020_V1_9_055_L[] = {
static const FieldPart I020_V1_9_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_055_L, NULL };
static int hf_020_V1_9_055_MODE1;
static const FieldPart I020_V1_9_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_020_V1_9_055_MODE1, NULL };
-static const FieldPart *I020_V1_9_055_PARTS[] = {
+static const FieldPart * const I020_V1_9_055_PARTS[] = {
&I020_V1_9_055_V,
&I020_V1_9_055_G,
&I020_V1_9_055_L,
@@ -17953,7 +17890,7 @@ static const value_string valstr_020_V1_9_070_L[] = {
static const FieldPart I020_V1_9_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_070_L, NULL };
static int hf_020_V1_9_070_MODE3A;
static const FieldPart I020_V1_9_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_020_V1_9_070_MODE3A, NULL };
-static const FieldPart *I020_V1_9_070_PARTS[] = {
+static const FieldPart * const I020_V1_9_070_PARTS[] = {
&I020_V1_9_070_V,
&I020_V1_9_070_G,
&I020_V1_9_070_L,
@@ -17979,7 +17916,7 @@ static const value_string valstr_020_V1_9_090_G[] = {
static const FieldPart I020_V1_9_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_090_G, NULL };
static int hf_020_V1_9_090_FL;
static const FieldPart I020_V1_9_090_FL = { 14, 0.25, FIELD_PART_FLOAT, &hf_020_V1_9_090_FL, NULL };
-static const FieldPart *I020_V1_9_090_PARTS[] = {
+static const FieldPart * const I020_V1_9_090_PARTS[] = {
&I020_V1_9_090_V,
&I020_V1_9_090_G,
&I020_V1_9_090_FL,
@@ -18087,7 +18024,7 @@ static const value_string valstr_020_V1_9_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_9_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_100_QD4, NULL };
-static const FieldPart *I020_V1_9_100_PARTS[] = {
+static const FieldPart * const I020_V1_9_100_PARTS[] = {
&I020_V1_9_100_V,
&I020_V1_9_100_G,
&IXXX_2bit_spare,
@@ -18111,7 +18048,7 @@ static const AsterixField I020_V1_9_100 = { FIXED, 4, 0, 0, &hf_020_V1_9_100, I0
static int hf_020_V1_9_105;
static int hf_020_V1_9_105_VALUE;
static const FieldPart I020_V1_9_105_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_020_V1_9_105_VALUE, NULL };
-static const FieldPart *I020_V1_9_105_PARTS[] = {
+static const FieldPart * const I020_V1_9_105_PARTS[] = {
&I020_V1_9_105_VALUE,
NULL
};
@@ -18119,7 +18056,7 @@ static const AsterixField I020_V1_9_105 = { FIXED, 2, 0, 0, &hf_020_V1_9_105, I0
static int hf_020_V1_9_110;
static int hf_020_V1_9_110_VALUE;
static const FieldPart I020_V1_9_110_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_020_V1_9_110_VALUE, NULL };
-static const FieldPart *I020_V1_9_110_PARTS[] = {
+static const FieldPart * const I020_V1_9_110_PARTS[] = {
&I020_V1_9_110_VALUE,
NULL
};
@@ -18127,7 +18064,7 @@ static const AsterixField I020_V1_9_110 = { FIXED, 2, 0, 0, &hf_020_V1_9_110, I0
static int hf_020_V1_9_140;
static int hf_020_V1_9_140_VALUE;
static const FieldPart I020_V1_9_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_020_V1_9_140_VALUE, NULL };
-static const FieldPart *I020_V1_9_140_PARTS[] = {
+static const FieldPart * const I020_V1_9_140_PARTS[] = {
&I020_V1_9_140_VALUE,
NULL
};
@@ -18135,7 +18072,7 @@ static const AsterixField I020_V1_9_140 = { FIXED, 3, 0, 0, &hf_020_V1_9_140, I0
static int hf_020_V1_9_161;
static int hf_020_V1_9_161_TRN;
static const FieldPart I020_V1_9_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_020_V1_9_161_TRN, NULL };
-static const FieldPart *I020_V1_9_161_PARTS[] = {
+static const FieldPart * const I020_V1_9_161_PARTS[] = {
&IXXX_4bit_spare,
&I020_V1_9_161_TRN,
NULL
@@ -18193,7 +18130,7 @@ static const value_string valstr_020_V1_9_170_GHO[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_9_170_GHO = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_170_GHO, NULL };
-static const FieldPart *I020_V1_9_170_PARTS[] = {
+static const FieldPart * const I020_V1_9_170_PARTS[] = {
&I020_V1_9_170_CNF,
&I020_V1_9_170_TRE,
&I020_V1_9_170_CST,
@@ -18212,7 +18149,7 @@ static int hf_020_V1_9_202_VX;
static const FieldPart I020_V1_9_202_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_020_V1_9_202_VX, NULL };
static int hf_020_V1_9_202_VY;
static const FieldPart I020_V1_9_202_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_020_V1_9_202_VY, NULL };
-static const FieldPart *I020_V1_9_202_PARTS[] = {
+static const FieldPart * const I020_V1_9_202_PARTS[] = {
&I020_V1_9_202_VX,
&I020_V1_9_202_VY,
NULL
@@ -18223,7 +18160,7 @@ static int hf_020_V1_9_210_AX;
static const FieldPart I020_V1_9_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_020_V1_9_210_AX, NULL };
static int hf_020_V1_9_210_AY;
static const FieldPart I020_V1_9_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_020_V1_9_210_AY, NULL };
-static const FieldPart *I020_V1_9_210_PARTS[] = {
+static const FieldPart * const I020_V1_9_210_PARTS[] = {
&I020_V1_9_210_AX,
&I020_V1_9_210_AY,
NULL
@@ -18232,7 +18169,7 @@ static const AsterixField I020_V1_9_210 = { FIXED, 2, 0, 0, &hf_020_V1_9_210, I0
static int hf_020_V1_9_220;
static int hf_020_V1_9_220_VALUE;
static const FieldPart I020_V1_9_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_020_V1_9_220_VALUE, NULL };
-static const FieldPart *I020_V1_9_220_PARTS[] = {
+static const FieldPart * const I020_V1_9_220_PARTS[] = {
&I020_V1_9_220_VALUE,
NULL
};
@@ -18289,7 +18226,7 @@ static int hf_020_V1_9_230_B1A;
static const FieldPart I020_V1_9_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_020_V1_9_230_B1A, NULL };
static int hf_020_V1_9_230_B1B;
static const FieldPart I020_V1_9_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_020_V1_9_230_B1B, NULL };
-static const FieldPart *I020_V1_9_230_PARTS[] = {
+static const FieldPart * const I020_V1_9_230_PARTS[] = {
&I020_V1_9_230_COM,
&I020_V1_9_230_STAT,
&IXXX_2bit_spare,
@@ -18313,7 +18250,7 @@ static const value_string valstr_020_V1_9_245_STI[] = {
static const FieldPart I020_V1_9_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_020_V1_9_245_STI, NULL };
static int hf_020_V1_9_245_CHR;
static const FieldPart I020_V1_9_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_020_V1_9_245_CHR, NULL };
-static const FieldPart *I020_V1_9_245_PARTS[] = {
+static const FieldPart * const I020_V1_9_245_PARTS[] = {
&I020_V1_9_245_STI,
&IXXX_6bit_spare,
&I020_V1_9_245_CHR,
@@ -18327,7 +18264,7 @@ static int hf_020_V1_9_250_BDS1;
static const FieldPart I020_V1_9_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_020_V1_9_250_BDS1, NULL };
static int hf_020_V1_9_250_BDS2;
static const FieldPart I020_V1_9_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_020_V1_9_250_BDS2, NULL };
-static const FieldPart *I020_V1_9_250_PARTS[] = {
+static const FieldPart * const I020_V1_9_250_PARTS[] = {
&I020_V1_9_250_MBDATA,
&I020_V1_9_250_BDS1,
&I020_V1_9_250_BDS2,
@@ -18337,7 +18274,7 @@ static const AsterixField I020_V1_9_250 = { REPETITIVE, 8, 1, 0, &hf_020_V1_9_25
static int hf_020_V1_9_260;
static int hf_020_V1_9_260_VALUE;
static const FieldPart I020_V1_9_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_020_V1_9_260_VALUE, NULL };
-static const FieldPart *I020_V1_9_260_PARTS[] = {
+static const FieldPart * const I020_V1_9_260_PARTS[] = {
&I020_V1_9_260_VALUE,
NULL
};
@@ -18365,7 +18302,7 @@ static const value_string valstr_020_V1_9_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_9_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_020_V1_9_300_VALUE, NULL };
-static const FieldPart *I020_V1_9_300_PARTS[] = {
+static const FieldPart * const I020_V1_9_300_PARTS[] = {
&I020_V1_9_300_VALUE,
NULL
};
@@ -18388,7 +18325,7 @@ static const value_string valstr_020_V1_9_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_9_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_020_V1_9_310_MSG, NULL };
-static const FieldPart *I020_V1_9_310_PARTS[] = {
+static const FieldPart * const I020_V1_9_310_PARTS[] = {
&I020_V1_9_310_TRB,
&I020_V1_9_310_MSG,
NULL
@@ -18451,7 +18388,7 @@ static const value_string valstr_020_V1_9_400_BIT8[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_9_400_BIT8 = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_9_400_BIT8, NULL };
-static const FieldPart *I020_V1_9_400_PARTS[] = {
+static const FieldPart * const I020_V1_9_400_PARTS[] = {
&I020_V1_9_400_BIT1,
&I020_V1_9_400_BIT2,
&I020_V1_9_400_BIT3,
@@ -18471,7 +18408,7 @@ static int hf_020_V1_9_500_DOP_Y;
static const FieldPart I020_V1_9_500_DOP_Y = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_9_500_DOP_Y, NULL };
static int hf_020_V1_9_500_DOP_XY;
static const FieldPart I020_V1_9_500_DOP_XY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_9_500_DOP_XY, NULL };
-static const FieldPart *I020_V1_9_500_DOP_PARTS[] = {
+static const FieldPart * const I020_V1_9_500_DOP_PARTS[] = {
&I020_V1_9_500_DOP_X,
&I020_V1_9_500_DOP_Y,
&I020_V1_9_500_DOP_XY,
@@ -18485,7 +18422,7 @@ static int hf_020_V1_9_500_SDP_Y;
static const FieldPart I020_V1_9_500_SDP_Y = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_9_500_SDP_Y, NULL };
static int hf_020_V1_9_500_SDP_XY;
static const FieldPart I020_V1_9_500_SDP_XY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_9_500_SDP_XY, NULL };
-static const FieldPart *I020_V1_9_500_SDP_PARTS[] = {
+static const FieldPart * const I020_V1_9_500_SDP_PARTS[] = {
&I020_V1_9_500_SDP_X,
&I020_V1_9_500_SDP_Y,
&I020_V1_9_500_SDP_XY,
@@ -18495,7 +18432,7 @@ static const AsterixField I020_V1_9_500_SDP = { FIXED, 6, 0, 0, &hf_020_V1_9_500
static int hf_020_V1_9_500_SDH;
static int hf_020_V1_9_500_SDH_VALUE;
static const FieldPart I020_V1_9_500_SDH_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_020_V1_9_500_SDH_VALUE, NULL };
-static const FieldPart *I020_V1_9_500_SDH_PARTS[] = {
+static const FieldPart * const I020_V1_9_500_SDH_PARTS[] = {
&I020_V1_9_500_SDH_VALUE,
NULL
};
@@ -18506,8 +18443,7 @@ static const AsterixField I020_V1_9_RE = { EXP, 0, 0, 1, &hf_020_V1_9_RE, NULL,
static int hf_020_V1_9_SP;
static const AsterixField I020_V1_9_SP = { EXP, 0, 0, 1, &hf_020_V1_9_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I020_V1_9_uap[] = {
+static const AsterixField * const I020_V1_9_uap[] = {
&I020_V1_9_010,
&I020_V1_9_020,
&I020_V1_9_140,
@@ -18538,11 +18474,10 @@ static const AsterixField *I020_V1_9_uap[] = {
&I020_V1_9_SP,
NULL
};
-static const AsterixField **I020_V1_9[] = {
+static const AsterixField * const * const I020_V1_9[] = {
I020_V1_9_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 020, edition 1.10 */
static int hf_020_V1_10_010;
@@ -18550,7 +18485,7 @@ static int hf_020_V1_10_010_SAC;
static const FieldPart I020_V1_10_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_020_V1_10_010_SAC, NULL };
static int hf_020_V1_10_010_SIC;
static const FieldPart I020_V1_10_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_020_V1_10_010_SIC, NULL };
-static const FieldPart *I020_V1_10_010_PARTS[] = {
+static const FieldPart * const I020_V1_10_010_PARTS[] = {
&I020_V1_10_010_SAC,
&I020_V1_10_010_SIC,
NULL
@@ -18655,7 +18590,7 @@ static const value_string valstr_020_V1_10_020_TST[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_10_020_TST = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_020_TST, NULL };
-static const FieldPart *I020_V1_10_020_PARTS[] = {
+static const FieldPart * const I020_V1_10_020_PARTS[] = {
&I020_V1_10_020_SSR,
&I020_V1_10_020_MS,
&I020_V1_10_020_HF,
@@ -18691,7 +18626,7 @@ static const value_string valstr_020_V1_10_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_10_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_020_V1_10_030_Subitem, NULL };
-static const FieldPart *I020_V1_10_030_PARTS[] = {
+static const FieldPart * const I020_V1_10_030_PARTS[] = {
&I020_V1_10_030_Subitem,
&IXXX_FX,
NULL
@@ -18702,7 +18637,7 @@ static int hf_020_V1_10_041_LAT;
static const FieldPart I020_V1_10_041_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_020_V1_10_041_LAT, NULL };
static int hf_020_V1_10_041_LON;
static const FieldPart I020_V1_10_041_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_020_V1_10_041_LON, NULL };
-static const FieldPart *I020_V1_10_041_PARTS[] = {
+static const FieldPart * const I020_V1_10_041_PARTS[] = {
&I020_V1_10_041_LAT,
&I020_V1_10_041_LON,
NULL
@@ -18713,7 +18648,7 @@ static int hf_020_V1_10_042_X;
static const FieldPart I020_V1_10_042_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_020_V1_10_042_X, NULL };
static int hf_020_V1_10_042_Y;
static const FieldPart I020_V1_10_042_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_020_V1_10_042_Y, NULL };
-static const FieldPart *I020_V1_10_042_PARTS[] = {
+static const FieldPart * const I020_V1_10_042_PARTS[] = {
&I020_V1_10_042_X,
&I020_V1_10_042_Y,
NULL
@@ -18743,7 +18678,7 @@ static const value_string valstr_020_V1_10_050_L[] = {
static const FieldPart I020_V1_10_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_050_L, NULL };
static int hf_020_V1_10_050_MODE2;
static const FieldPart I020_V1_10_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_020_V1_10_050_MODE2, NULL };
-static const FieldPart *I020_V1_10_050_PARTS[] = {
+static const FieldPart * const I020_V1_10_050_PARTS[] = {
&I020_V1_10_050_V,
&I020_V1_10_050_G,
&I020_V1_10_050_L,
@@ -18776,7 +18711,7 @@ static const value_string valstr_020_V1_10_055_L[] = {
static const FieldPart I020_V1_10_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_055_L, NULL };
static int hf_020_V1_10_055_MODE1;
static const FieldPart I020_V1_10_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_020_V1_10_055_MODE1, NULL };
-static const FieldPart *I020_V1_10_055_PARTS[] = {
+static const FieldPart * const I020_V1_10_055_PARTS[] = {
&I020_V1_10_055_V,
&I020_V1_10_055_G,
&I020_V1_10_055_L,
@@ -18808,7 +18743,7 @@ static const value_string valstr_020_V1_10_070_L[] = {
static const FieldPart I020_V1_10_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_070_L, NULL };
static int hf_020_V1_10_070_MODE3A;
static const FieldPart I020_V1_10_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_020_V1_10_070_MODE3A, NULL };
-static const FieldPart *I020_V1_10_070_PARTS[] = {
+static const FieldPart * const I020_V1_10_070_PARTS[] = {
&I020_V1_10_070_V,
&I020_V1_10_070_G,
&I020_V1_10_070_L,
@@ -18834,7 +18769,7 @@ static const value_string valstr_020_V1_10_090_G[] = {
static const FieldPart I020_V1_10_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_090_G, NULL };
static int hf_020_V1_10_090_FL;
static const FieldPart I020_V1_10_090_FL = { 14, 0.25, FIELD_PART_FLOAT, &hf_020_V1_10_090_FL, NULL };
-static const FieldPart *I020_V1_10_090_PARTS[] = {
+static const FieldPart * const I020_V1_10_090_PARTS[] = {
&I020_V1_10_090_V,
&I020_V1_10_090_G,
&I020_V1_10_090_FL,
@@ -18942,7 +18877,7 @@ static const value_string valstr_020_V1_10_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_10_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_100_QD4, NULL };
-static const FieldPart *I020_V1_10_100_PARTS[] = {
+static const FieldPart * const I020_V1_10_100_PARTS[] = {
&I020_V1_10_100_V,
&I020_V1_10_100_G,
&IXXX_2bit_spare,
@@ -18966,7 +18901,7 @@ static const AsterixField I020_V1_10_100 = { FIXED, 4, 0, 0, &hf_020_V1_10_100,
static int hf_020_V1_10_105;
static int hf_020_V1_10_105_VALUE;
static const FieldPart I020_V1_10_105_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_020_V1_10_105_VALUE, NULL };
-static const FieldPart *I020_V1_10_105_PARTS[] = {
+static const FieldPart * const I020_V1_10_105_PARTS[] = {
&I020_V1_10_105_VALUE,
NULL
};
@@ -18974,7 +18909,7 @@ static const AsterixField I020_V1_10_105 = { FIXED, 2, 0, 0, &hf_020_V1_10_105,
static int hf_020_V1_10_110;
static int hf_020_V1_10_110_VALUE;
static const FieldPart I020_V1_10_110_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_020_V1_10_110_VALUE, NULL };
-static const FieldPart *I020_V1_10_110_PARTS[] = {
+static const FieldPart * const I020_V1_10_110_PARTS[] = {
&I020_V1_10_110_VALUE,
NULL
};
@@ -18982,7 +18917,7 @@ static const AsterixField I020_V1_10_110 = { FIXED, 2, 0, 0, &hf_020_V1_10_110,
static int hf_020_V1_10_140;
static int hf_020_V1_10_140_VALUE;
static const FieldPart I020_V1_10_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_020_V1_10_140_VALUE, NULL };
-static const FieldPart *I020_V1_10_140_PARTS[] = {
+static const FieldPart * const I020_V1_10_140_PARTS[] = {
&I020_V1_10_140_VALUE,
NULL
};
@@ -18990,7 +18925,7 @@ static const AsterixField I020_V1_10_140 = { FIXED, 3, 0, 0, &hf_020_V1_10_140,
static int hf_020_V1_10_161;
static int hf_020_V1_10_161_TRN;
static const FieldPart I020_V1_10_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_020_V1_10_161_TRN, NULL };
-static const FieldPart *I020_V1_10_161_PARTS[] = {
+static const FieldPart * const I020_V1_10_161_PARTS[] = {
&IXXX_4bit_spare,
&I020_V1_10_161_TRN,
NULL
@@ -19048,7 +18983,7 @@ static const value_string valstr_020_V1_10_170_GHO[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_10_170_GHO = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_170_GHO, NULL };
-static const FieldPart *I020_V1_10_170_PARTS[] = {
+static const FieldPart * const I020_V1_10_170_PARTS[] = {
&I020_V1_10_170_CNF,
&I020_V1_10_170_TRE,
&I020_V1_10_170_CST,
@@ -19067,7 +19002,7 @@ static int hf_020_V1_10_202_VX;
static const FieldPart I020_V1_10_202_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_020_V1_10_202_VX, NULL };
static int hf_020_V1_10_202_VY;
static const FieldPart I020_V1_10_202_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_020_V1_10_202_VY, NULL };
-static const FieldPart *I020_V1_10_202_PARTS[] = {
+static const FieldPart * const I020_V1_10_202_PARTS[] = {
&I020_V1_10_202_VX,
&I020_V1_10_202_VY,
NULL
@@ -19078,7 +19013,7 @@ static int hf_020_V1_10_210_AX;
static const FieldPart I020_V1_10_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_020_V1_10_210_AX, NULL };
static int hf_020_V1_10_210_AY;
static const FieldPart I020_V1_10_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_020_V1_10_210_AY, NULL };
-static const FieldPart *I020_V1_10_210_PARTS[] = {
+static const FieldPart * const I020_V1_10_210_PARTS[] = {
&I020_V1_10_210_AX,
&I020_V1_10_210_AY,
NULL
@@ -19087,7 +19022,7 @@ static const AsterixField I020_V1_10_210 = { FIXED, 2, 0, 0, &hf_020_V1_10_210,
static int hf_020_V1_10_220;
static int hf_020_V1_10_220_VALUE;
static const FieldPart I020_V1_10_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_020_V1_10_220_VALUE, NULL };
-static const FieldPart *I020_V1_10_220_PARTS[] = {
+static const FieldPart * const I020_V1_10_220_PARTS[] = {
&I020_V1_10_220_VALUE,
NULL
};
@@ -19144,7 +19079,7 @@ static int hf_020_V1_10_230_B1A;
static const FieldPart I020_V1_10_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_020_V1_10_230_B1A, NULL };
static int hf_020_V1_10_230_B1B;
static const FieldPart I020_V1_10_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_020_V1_10_230_B1B, NULL };
-static const FieldPart *I020_V1_10_230_PARTS[] = {
+static const FieldPart * const I020_V1_10_230_PARTS[] = {
&I020_V1_10_230_COM,
&I020_V1_10_230_STAT,
&IXXX_2bit_spare,
@@ -19168,7 +19103,7 @@ static const value_string valstr_020_V1_10_245_STI[] = {
static const FieldPart I020_V1_10_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_020_V1_10_245_STI, NULL };
static int hf_020_V1_10_245_CHR;
static const FieldPart I020_V1_10_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_020_V1_10_245_CHR, NULL };
-static const FieldPart *I020_V1_10_245_PARTS[] = {
+static const FieldPart * const I020_V1_10_245_PARTS[] = {
&I020_V1_10_245_STI,
&IXXX_6bit_spare,
&I020_V1_10_245_CHR,
@@ -19182,7 +19117,7 @@ static int hf_020_V1_10_250_BDS1;
static const FieldPart I020_V1_10_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_020_V1_10_250_BDS1, NULL };
static int hf_020_V1_10_250_BDS2;
static const FieldPart I020_V1_10_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_020_V1_10_250_BDS2, NULL };
-static const FieldPart *I020_V1_10_250_PARTS[] = {
+static const FieldPart * const I020_V1_10_250_PARTS[] = {
&I020_V1_10_250_MBDATA,
&I020_V1_10_250_BDS1,
&I020_V1_10_250_BDS2,
@@ -19192,7 +19127,7 @@ static const AsterixField I020_V1_10_250 = { REPETITIVE, 8, 1, 0, &hf_020_V1_10_
static int hf_020_V1_10_260;
static int hf_020_V1_10_260_VALUE;
static const FieldPart I020_V1_10_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_020_V1_10_260_VALUE, NULL };
-static const FieldPart *I020_V1_10_260_PARTS[] = {
+static const FieldPart * const I020_V1_10_260_PARTS[] = {
&I020_V1_10_260_VALUE,
NULL
};
@@ -19220,7 +19155,7 @@ static const value_string valstr_020_V1_10_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_10_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_020_V1_10_300_VALUE, NULL };
-static const FieldPart *I020_V1_10_300_PARTS[] = {
+static const FieldPart * const I020_V1_10_300_PARTS[] = {
&I020_V1_10_300_VALUE,
NULL
};
@@ -19243,7 +19178,7 @@ static const value_string valstr_020_V1_10_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_10_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_020_V1_10_310_MSG, NULL };
-static const FieldPart *I020_V1_10_310_PARTS[] = {
+static const FieldPart * const I020_V1_10_310_PARTS[] = {
&I020_V1_10_310_TRB,
&I020_V1_10_310_MSG,
NULL
@@ -19306,7 +19241,7 @@ static const value_string valstr_020_V1_10_400_BIT8[] = {
{ 0, NULL }
};
static const FieldPart I020_V1_10_400_BIT8 = { 1, 1.0, FIELD_PART_UINT, &hf_020_V1_10_400_BIT8, NULL };
-static const FieldPart *I020_V1_10_400_PARTS[] = {
+static const FieldPart * const I020_V1_10_400_PARTS[] = {
&I020_V1_10_400_BIT1,
&I020_V1_10_400_BIT2,
&I020_V1_10_400_BIT3,
@@ -19326,7 +19261,7 @@ static int hf_020_V1_10_500_DOP_Y;
static const FieldPart I020_V1_10_500_DOP_Y = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_10_500_DOP_Y, NULL };
static int hf_020_V1_10_500_DOP_XY;
static const FieldPart I020_V1_10_500_DOP_XY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_10_500_DOP_XY, NULL };
-static const FieldPart *I020_V1_10_500_DOP_PARTS[] = {
+static const FieldPart * const I020_V1_10_500_DOP_PARTS[] = {
&I020_V1_10_500_DOP_X,
&I020_V1_10_500_DOP_Y,
&I020_V1_10_500_DOP_XY,
@@ -19340,7 +19275,7 @@ static int hf_020_V1_10_500_SDP_Y;
static const FieldPart I020_V1_10_500_SDP_Y = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_10_500_SDP_Y, NULL };
static int hf_020_V1_10_500_SDP_XY;
static const FieldPart I020_V1_10_500_SDP_XY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_V1_10_500_SDP_XY, NULL };
-static const FieldPart *I020_V1_10_500_SDP_PARTS[] = {
+static const FieldPart * const I020_V1_10_500_SDP_PARTS[] = {
&I020_V1_10_500_SDP_X,
&I020_V1_10_500_SDP_Y,
&I020_V1_10_500_SDP_XY,
@@ -19350,7 +19285,7 @@ static const AsterixField I020_V1_10_500_SDP = { FIXED, 6, 0, 0, &hf_020_V1_10_5
static int hf_020_V1_10_500_SDH;
static int hf_020_V1_10_500_SDH_VALUE;
static const FieldPart I020_V1_10_500_SDH_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_020_V1_10_500_SDH_VALUE, NULL };
-static const FieldPart *I020_V1_10_500_SDH_PARTS[] = {
+static const FieldPart * const I020_V1_10_500_SDH_PARTS[] = {
&I020_V1_10_500_SDH_VALUE,
NULL
};
@@ -19367,7 +19302,7 @@ static int hf_020_010_SAC;
static const FieldPart I020_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_020_010_SAC, NULL };
static int hf_020_010_SIC;
static const FieldPart I020_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_020_010_SIC, NULL };
-static const FieldPart *I020_010_PARTS[] = {
+static const FieldPart * const I020_010_PARTS[] = {
&I020_010_SAC,
&I020_010_SIC,
NULL
@@ -19472,7 +19407,7 @@ static const value_string valstr_020_020_TST[] = {
{ 0, NULL }
};
static const FieldPart I020_020_TST = { 1, 1.0, FIELD_PART_UINT, &hf_020_020_TST, NULL };
-static const FieldPart *I020_020_PARTS[] = {
+static const FieldPart * const I020_020_PARTS[] = {
&I020_020_SSR,
&I020_020_MS,
&I020_020_HF,
@@ -19508,7 +19443,7 @@ static const value_string valstr_020_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I020_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_020_030_Subitem, NULL };
-static const FieldPart *I020_030_PARTS[] = {
+static const FieldPart * const I020_030_PARTS[] = {
&I020_030_Subitem,
&IXXX_FX,
NULL
@@ -19519,7 +19454,7 @@ static int hf_020_041_LAT;
static const FieldPart I020_041_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_020_041_LAT, NULL };
static int hf_020_041_LON;
static const FieldPart I020_041_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_020_041_LON, NULL };
-static const FieldPart *I020_041_PARTS[] = {
+static const FieldPart * const I020_041_PARTS[] = {
&I020_041_LAT,
&I020_041_LON,
NULL
@@ -19530,7 +19465,7 @@ static int hf_020_042_X;
static const FieldPart I020_042_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_020_042_X, NULL };
static int hf_020_042_Y;
static const FieldPart I020_042_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_020_042_Y, NULL };
-static const FieldPart *I020_042_PARTS[] = {
+static const FieldPart * const I020_042_PARTS[] = {
&I020_042_X,
&I020_042_Y,
NULL
@@ -19560,7 +19495,7 @@ static const value_string valstr_020_050_L[] = {
static const FieldPart I020_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_050_L, NULL };
static int hf_020_050_MODE2;
static const FieldPart I020_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_020_050_MODE2, NULL };
-static const FieldPart *I020_050_PARTS[] = {
+static const FieldPart * const I020_050_PARTS[] = {
&I020_050_V,
&I020_050_G,
&I020_050_L,
@@ -19593,7 +19528,7 @@ static const value_string valstr_020_055_L[] = {
static const FieldPart I020_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_055_L, NULL };
static int hf_020_055_MODE1;
static const FieldPart I020_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_020_055_MODE1, NULL };
-static const FieldPart *I020_055_PARTS[] = {
+static const FieldPart * const I020_055_PARTS[] = {
&I020_055_V,
&I020_055_G,
&I020_055_L,
@@ -19625,7 +19560,7 @@ static const value_string valstr_020_070_L[] = {
static const FieldPart I020_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_020_070_L, NULL };
static int hf_020_070_MODE3A;
static const FieldPart I020_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_020_070_MODE3A, NULL };
-static const FieldPart *I020_070_PARTS[] = {
+static const FieldPart * const I020_070_PARTS[] = {
&I020_070_V,
&I020_070_G,
&I020_070_L,
@@ -19651,7 +19586,7 @@ static const value_string valstr_020_090_G[] = {
static const FieldPart I020_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_020_090_G, NULL };
static int hf_020_090_FL;
static const FieldPart I020_090_FL = { 14, 0.25, FIELD_PART_FLOAT, &hf_020_090_FL, NULL };
-static const FieldPart *I020_090_PARTS[] = {
+static const FieldPart * const I020_090_PARTS[] = {
&I020_090_V,
&I020_090_G,
&I020_090_FL,
@@ -19759,7 +19694,7 @@ static const value_string valstr_020_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I020_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_020_100_QD4, NULL };
-static const FieldPart *I020_100_PARTS[] = {
+static const FieldPart * const I020_100_PARTS[] = {
&I020_100_V,
&I020_100_G,
&IXXX_2bit_spare,
@@ -19783,7 +19718,7 @@ static const AsterixField I020_100 = { FIXED, 4, 0, 0, &hf_020_100, I020_100_PAR
static int hf_020_105;
static int hf_020_105_VALUE;
static const FieldPart I020_105_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_020_105_VALUE, NULL };
-static const FieldPart *I020_105_PARTS[] = {
+static const FieldPart * const I020_105_PARTS[] = {
&I020_105_VALUE,
NULL
};
@@ -19791,7 +19726,7 @@ static const AsterixField I020_105 = { FIXED, 2, 0, 0, &hf_020_105, I020_105_PAR
static int hf_020_110;
static int hf_020_110_VALUE;
static const FieldPart I020_110_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_020_110_VALUE, NULL };
-static const FieldPart *I020_110_PARTS[] = {
+static const FieldPart * const I020_110_PARTS[] = {
&I020_110_VALUE,
NULL
};
@@ -19799,7 +19734,7 @@ static const AsterixField I020_110 = { FIXED, 2, 0, 0, &hf_020_110, I020_110_PAR
static int hf_020_140;
static int hf_020_140_VALUE;
static const FieldPart I020_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_020_140_VALUE, NULL };
-static const FieldPart *I020_140_PARTS[] = {
+static const FieldPart * const I020_140_PARTS[] = {
&I020_140_VALUE,
NULL
};
@@ -19807,7 +19742,7 @@ static const AsterixField I020_140 = { FIXED, 3, 0, 0, &hf_020_140, I020_140_PAR
static int hf_020_161;
static int hf_020_161_TRN;
static const FieldPart I020_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_020_161_TRN, NULL };
-static const FieldPart *I020_161_PARTS[] = {
+static const FieldPart * const I020_161_PARTS[] = {
&IXXX_4bit_spare,
&I020_161_TRN,
NULL
@@ -19865,7 +19800,7 @@ static const value_string valstr_020_170_GHO[] = {
{ 0, NULL }
};
static const FieldPart I020_170_GHO = { 1, 1.0, FIELD_PART_UINT, &hf_020_170_GHO, NULL };
-static const FieldPart *I020_170_PARTS[] = {
+static const FieldPart * const I020_170_PARTS[] = {
&I020_170_CNF,
&I020_170_TRE,
&I020_170_CST,
@@ -19884,7 +19819,7 @@ static int hf_020_202_VX;
static const FieldPart I020_202_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_020_202_VX, NULL };
static int hf_020_202_VY;
static const FieldPart I020_202_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_020_202_VY, NULL };
-static const FieldPart *I020_202_PARTS[] = {
+static const FieldPart * const I020_202_PARTS[] = {
&I020_202_VX,
&I020_202_VY,
NULL
@@ -19895,7 +19830,7 @@ static int hf_020_210_AX;
static const FieldPart I020_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_020_210_AX, NULL };
static int hf_020_210_AY;
static const FieldPart I020_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_020_210_AY, NULL };
-static const FieldPart *I020_210_PARTS[] = {
+static const FieldPart * const I020_210_PARTS[] = {
&I020_210_AX,
&I020_210_AY,
NULL
@@ -19904,7 +19839,7 @@ static const AsterixField I020_210 = { FIXED, 2, 0, 0, &hf_020_210, I020_210_PAR
static int hf_020_220;
static int hf_020_220_VALUE;
static const FieldPart I020_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_020_220_VALUE, NULL };
-static const FieldPart *I020_220_PARTS[] = {
+static const FieldPart * const I020_220_PARTS[] = {
&I020_220_VALUE,
NULL
};
@@ -19961,7 +19896,7 @@ static int hf_020_230_B1A;
static const FieldPart I020_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_020_230_B1A, NULL };
static int hf_020_230_B1B;
static const FieldPart I020_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_020_230_B1B, NULL };
-static const FieldPart *I020_230_PARTS[] = {
+static const FieldPart * const I020_230_PARTS[] = {
&I020_230_COM,
&I020_230_STAT,
&IXXX_2bit_spare,
@@ -19985,7 +19920,7 @@ static const value_string valstr_020_245_STI[] = {
static const FieldPart I020_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_020_245_STI, NULL };
static int hf_020_245_CHR;
static const FieldPart I020_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_020_245_CHR, NULL };
-static const FieldPart *I020_245_PARTS[] = {
+static const FieldPart * const I020_245_PARTS[] = {
&I020_245_STI,
&IXXX_6bit_spare,
&I020_245_CHR,
@@ -19999,7 +19934,7 @@ static int hf_020_250_BDS1;
static const FieldPart I020_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_020_250_BDS1, NULL };
static int hf_020_250_BDS2;
static const FieldPart I020_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_020_250_BDS2, NULL };
-static const FieldPart *I020_250_PARTS[] = {
+static const FieldPart * const I020_250_PARTS[] = {
&I020_250_MBDATA,
&I020_250_BDS1,
&I020_250_BDS2,
@@ -20009,7 +19944,7 @@ static const AsterixField I020_250 = { REPETITIVE, 8, 1, 0, &hf_020_250, I020_25
static int hf_020_260;
static int hf_020_260_VALUE;
static const FieldPart I020_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_020_260_VALUE, NULL };
-static const FieldPart *I020_260_PARTS[] = {
+static const FieldPart * const I020_260_PARTS[] = {
&I020_260_VALUE,
NULL
};
@@ -20037,7 +19972,7 @@ static const value_string valstr_020_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I020_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_020_300_VALUE, NULL };
-static const FieldPart *I020_300_PARTS[] = {
+static const FieldPart * const I020_300_PARTS[] = {
&I020_300_VALUE,
NULL
};
@@ -20060,7 +19995,7 @@ static const value_string valstr_020_310_MSG[] = {
{ 0, NULL }
};
static const FieldPart I020_310_MSG = { 7, 1.0, FIELD_PART_UINT, &hf_020_310_MSG, NULL };
-static const FieldPart *I020_310_PARTS[] = {
+static const FieldPart * const I020_310_PARTS[] = {
&I020_310_TRB,
&I020_310_MSG,
NULL
@@ -20123,7 +20058,7 @@ static const value_string valstr_020_400_BIT8[] = {
{ 0, NULL }
};
static const FieldPart I020_400_BIT8 = { 1, 1.0, FIELD_PART_UINT, &hf_020_400_BIT8, NULL };
-static const FieldPart *I020_400_PARTS[] = {
+static const FieldPart * const I020_400_PARTS[] = {
&I020_400_BIT1,
&I020_400_BIT2,
&I020_400_BIT3,
@@ -20143,7 +20078,7 @@ static int hf_020_500_DOP_Y;
static const FieldPart I020_500_DOP_Y = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_500_DOP_Y, NULL };
static int hf_020_500_DOP_XY;
static const FieldPart I020_500_DOP_XY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_500_DOP_XY, NULL };
-static const FieldPart *I020_500_DOP_PARTS[] = {
+static const FieldPart * const I020_500_DOP_PARTS[] = {
&I020_500_DOP_X,
&I020_500_DOP_Y,
&I020_500_DOP_XY,
@@ -20157,7 +20092,7 @@ static int hf_020_500_SDP_Y;
static const FieldPart I020_500_SDP_Y = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_500_SDP_Y, NULL };
static int hf_020_500_SDP_XY;
static const FieldPart I020_500_SDP_XY = { 16, 0.25, FIELD_PART_UFLOAT, &hf_020_500_SDP_XY, NULL };
-static const FieldPart *I020_500_SDP_PARTS[] = {
+static const FieldPart * const I020_500_SDP_PARTS[] = {
&I020_500_SDP_X,
&I020_500_SDP_Y,
&I020_500_SDP_XY,
@@ -20167,7 +20102,7 @@ static const AsterixField I020_500_SDP = { FIXED, 6, 0, 0, &hf_020_500_SDP, I020
static int hf_020_500_SDH;
static int hf_020_500_SDH_VALUE;
static const FieldPart I020_500_SDH_VALUE = { 16, 0.5, FIELD_PART_UFLOAT, &hf_020_500_SDH_VALUE, NULL };
-static const FieldPart *I020_500_SDH_PARTS[] = {
+static const FieldPart * const I020_500_SDH_PARTS[] = {
&I020_500_SDH_VALUE,
NULL
};
@@ -20178,8 +20113,7 @@ static const AsterixField I020_RE = { EXP, 0, 0, 1, &hf_020_RE, NULL, { NULL } }
static int hf_020_SP;
static const AsterixField I020_SP = { EXP, 0, 0, 1, &hf_020_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I020_V1_10_uap[] = {
+static const AsterixField * const I020_V1_10_uap[] = {
&I020_V1_10_010,
&I020_V1_10_020,
&I020_V1_10_140,
@@ -20210,14 +20144,12 @@ static const AsterixField *I020_V1_10_uap[] = {
&I020_V1_10_SP,
NULL
};
-static const AsterixField **I020_V1_10[] = {
+static const AsterixField * const * const I020_V1_10[] = {
I020_V1_10_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I020_uap[] = {
+static const AsterixField * const I020_uap[] = {
&I020_010,
&I020_020,
&I020_140,
@@ -20248,11 +20180,10 @@ static const AsterixField *I020_uap[] = {
&I020_SP,
NULL
};
-static const AsterixField **I020[] = {
+static const AsterixField * const * const I020[] = {
I020_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 0.23 */
static int hf_021_V0_23_010;
@@ -20260,7 +20191,7 @@ static int hf_021_V0_23_010_SAC;
static const FieldPart I021_V0_23_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_23_010_SAC, NULL };
static int hf_021_V0_23_010_SIC;
static const FieldPart I021_V0_23_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_23_010_SIC, NULL };
-static const FieldPart *I021_V0_23_010_PARTS[] = {
+static const FieldPart * const I021_V0_23_010_PARTS[] = {
&I021_V0_23_010_SAC,
&I021_V0_23_010_SIC,
NULL
@@ -20296,7 +20227,7 @@ static const value_string valstr_021_V0_23_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_23_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_23_020_VALUE, NULL };
-static const FieldPart *I021_V0_23_020_PARTS[] = {
+static const FieldPart * const I021_V0_23_020_PARTS[] = {
&I021_V0_23_020_VALUE,
NULL
};
@@ -20304,7 +20235,7 @@ static const AsterixField I021_V0_23_020 = { FIXED, 1, 0, 0, &hf_021_V0_23_020,
static int hf_021_V0_23_030;
static int hf_021_V0_23_030_VALUE;
static const FieldPart I021_V0_23_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V0_23_030_VALUE, NULL };
-static const FieldPart *I021_V0_23_030_PARTS[] = {
+static const FieldPart * const I021_V0_23_030_PARTS[] = {
&I021_V0_23_030_VALUE,
NULL
};
@@ -20312,7 +20243,7 @@ static const AsterixField I021_V0_23_030 = { FIXED, 3, 0, 0, &hf_021_V0_23_030,
static int hf_021_V0_23_032;
static int hf_021_V0_23_032_VALUE;
static const FieldPart I021_V0_23_032_VALUE = { 8, 0.00390625, FIELD_PART_UFLOAT, &hf_021_V0_23_032_VALUE, NULL };
-static const FieldPart *I021_V0_23_032_PARTS[] = {
+static const FieldPart * const I021_V0_23_032_PARTS[] = {
&I021_V0_23_032_VALUE,
NULL
};
@@ -20388,7 +20319,7 @@ static const value_string valstr_021_V0_23_040_ARC[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_23_040_ARC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_23_040_ARC, NULL };
-static const FieldPart *I021_V0_23_040_PARTS[] = {
+static const FieldPart * const I021_V0_23_040_PARTS[] = {
&I021_V0_23_040_DCR,
&I021_V0_23_040_GBS,
&I021_V0_23_040_SIM,
@@ -20406,7 +20337,7 @@ static const AsterixField I021_V0_23_040 = { FIXED, 2, 0, 0, &hf_021_V0_23_040,
static int hf_021_V0_23_080;
static int hf_021_V0_23_080_VALUE;
static const FieldPart I021_V0_23_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V0_23_080_VALUE, NULL };
-static const FieldPart *I021_V0_23_080_PARTS[] = {
+static const FieldPart * const I021_V0_23_080_PARTS[] = {
&I021_V0_23_080_VALUE,
NULL
};
@@ -20441,7 +20372,7 @@ static const value_string valstr_021_V0_23_090_DC[] = {
static const FieldPart I021_V0_23_090_DC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_23_090_DC, NULL };
static int hf_021_V0_23_090_PA;
static const FieldPart I021_V0_23_090_PA = { 4, 1.0, FIELD_PART_FLOAT, &hf_021_V0_23_090_PA, NULL };
-static const FieldPart *I021_V0_23_090_PARTS[] = {
+static const FieldPart * const I021_V0_23_090_PARTS[] = {
&I021_V0_23_090_AC,
&I021_V0_23_090_MN,
&I021_V0_23_090_DC,
@@ -20453,7 +20384,7 @@ static const AsterixField I021_V0_23_090 = { FIXED, 2, 0, 0, &hf_021_V0_23_090,
static int hf_021_V0_23_095;
static int hf_021_V0_23_095_VALUE;
static const FieldPart I021_V0_23_095_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_23_095_VALUE, NULL };
-static const FieldPart *I021_V0_23_095_PARTS[] = {
+static const FieldPart * const I021_V0_23_095_PARTS[] = {
&I021_V0_23_095_VALUE,
NULL
};
@@ -20474,7 +20405,7 @@ static const value_string valstr_021_V0_23_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_23_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_23_110_TIS_NVB, NULL };
-static const FieldPart *I021_V0_23_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V0_23_110_TIS_PARTS[] = {
&I021_V0_23_110_TIS_NAV,
&I021_V0_23_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -20549,7 +20480,7 @@ static int hf_021_V0_23_110_TID_TOV;
static const FieldPart I021_V0_23_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_23_110_TID_TOV, NULL };
static int hf_021_V0_23_110_TID_TTR;
static const FieldPart I021_V0_23_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V0_23_110_TID_TTR, NULL };
-static const FieldPart *I021_V0_23_110_TID_PARTS[] = {
+static const FieldPart * const I021_V0_23_110_TID_PARTS[] = {
&I021_V0_23_110_TID_TCA,
&I021_V0_23_110_TID_NC,
&I021_V0_23_110_TID_TCPN,
@@ -20571,7 +20502,7 @@ static int hf_021_V0_23_130_LAT;
static const FieldPart I021_V0_23_130_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V0_23_130_LAT, NULL };
static int hf_021_V0_23_130_LON;
static const FieldPart I021_V0_23_130_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V0_23_130_LON, NULL };
-static const FieldPart *I021_V0_23_130_PARTS[] = {
+static const FieldPart * const I021_V0_23_130_PARTS[] = {
&I021_V0_23_130_LAT,
&I021_V0_23_130_LON,
NULL
@@ -20580,7 +20511,7 @@ static const AsterixField I021_V0_23_130 = { FIXED, 6, 0, 0, &hf_021_V0_23_130,
static int hf_021_V0_23_140;
static int hf_021_V0_23_140_VALUE;
static const FieldPart I021_V0_23_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_23_140_VALUE, NULL };
-static const FieldPart *I021_V0_23_140_PARTS[] = {
+static const FieldPart * const I021_V0_23_140_PARTS[] = {
&I021_V0_23_140_VALUE,
NULL
};
@@ -20588,7 +20519,7 @@ static const AsterixField I021_V0_23_140 = { FIXED, 2, 0, 0, &hf_021_V0_23_140,
static int hf_021_V0_23_145;
static int hf_021_V0_23_145_VALUE;
static const FieldPart I021_V0_23_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_23_145_VALUE, NULL };
-static const FieldPart *I021_V0_23_145_PARTS[] = {
+static const FieldPart * const I021_V0_23_145_PARTS[] = {
&I021_V0_23_145_VALUE,
NULL
};
@@ -20612,7 +20543,7 @@ static const value_string valstr_021_V0_23_146_SRC[] = {
static const FieldPart I021_V0_23_146_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_23_146_SRC, NULL };
static int hf_021_V0_23_146_ALT;
static const FieldPart I021_V0_23_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_23_146_ALT, NULL };
-static const FieldPart *I021_V0_23_146_PARTS[] = {
+static const FieldPart * const I021_V0_23_146_PARTS[] = {
&I021_V0_23_146_SAS,
&I021_V0_23_146_SRC,
&I021_V0_23_146_ALT,
@@ -20643,7 +20574,7 @@ static const value_string valstr_021_V0_23_148_AM[] = {
static const FieldPart I021_V0_23_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_23_148_AM, NULL };
static int hf_021_V0_23_148_ALT;
static const FieldPart I021_V0_23_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_23_148_ALT, NULL };
-static const FieldPart *I021_V0_23_148_PARTS[] = {
+static const FieldPart * const I021_V0_23_148_PARTS[] = {
&I021_V0_23_148_MV,
&I021_V0_23_148_AH,
&I021_V0_23_148_AM,
@@ -20661,7 +20592,7 @@ static const value_string valstr_021_V0_23_150_IM[] = {
static const FieldPart I021_V0_23_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_23_150_IM, NULL };
static int hf_021_V0_23_150_AS;
static const FieldPart I021_V0_23_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V0_23_150_AS, NULL };
-static const FieldPart *I021_V0_23_150_PARTS[] = {
+static const FieldPart * const I021_V0_23_150_PARTS[] = {
&I021_V0_23_150_IM,
&I021_V0_23_150_AS,
NULL
@@ -20670,7 +20601,7 @@ static const AsterixField I021_V0_23_150 = { FIXED, 2, 0, 0, &hf_021_V0_23_150,
static int hf_021_V0_23_151;
static int hf_021_V0_23_151_VALUE;
static const FieldPart I021_V0_23_151_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_23_151_VALUE, NULL };
-static const FieldPart *I021_V0_23_151_PARTS[] = {
+static const FieldPart * const I021_V0_23_151_PARTS[] = {
&I021_V0_23_151_VALUE,
NULL
};
@@ -20678,7 +20609,7 @@ static const AsterixField I021_V0_23_151 = { FIXED, 2, 0, 0, &hf_021_V0_23_151,
static int hf_021_V0_23_152;
static int hf_021_V0_23_152_VALUE;
static const FieldPart I021_V0_23_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_23_152_VALUE, NULL };
-static const FieldPart *I021_V0_23_152_PARTS[] = {
+static const FieldPart * const I021_V0_23_152_PARTS[] = {
&I021_V0_23_152_VALUE,
NULL
};
@@ -20686,7 +20617,7 @@ static const AsterixField I021_V0_23_152 = { FIXED, 2, 0, 0, &hf_021_V0_23_152,
static int hf_021_V0_23_155;
static int hf_021_V0_23_155_VALUE;
static const FieldPart I021_V0_23_155_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_23_155_VALUE, NULL };
-static const FieldPart *I021_V0_23_155_PARTS[] = {
+static const FieldPart * const I021_V0_23_155_PARTS[] = {
&I021_V0_23_155_VALUE,
NULL
};
@@ -20694,7 +20625,7 @@ static const AsterixField I021_V0_23_155 = { FIXED, 2, 0, 0, &hf_021_V0_23_155,
static int hf_021_V0_23_157;
static int hf_021_V0_23_157_VALUE;
static const FieldPart I021_V0_23_157_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_23_157_VALUE, NULL };
-static const FieldPart *I021_V0_23_157_PARTS[] = {
+static const FieldPart * const I021_V0_23_157_PARTS[] = {
&I021_V0_23_157_VALUE,
NULL
};
@@ -20704,7 +20635,7 @@ static int hf_021_V0_23_160_GS;
static const FieldPart I021_V0_23_160_GS = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_021_V0_23_160_GS, NULL };
static int hf_021_V0_23_160_TA;
static const FieldPart I021_V0_23_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_23_160_TA, NULL };
-static const FieldPart *I021_V0_23_160_PARTS[] = {
+static const FieldPart * const I021_V0_23_160_PARTS[] = {
&I021_V0_23_160_GS,
&I021_V0_23_160_TA,
NULL
@@ -20722,7 +20653,7 @@ static const value_string valstr_021_V0_23_165_TI[] = {
static const FieldPart I021_V0_23_165_TI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_23_165_TI, NULL };
static int hf_021_V0_23_165_ROT;
static const FieldPart I021_V0_23_165_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_021_V0_23_165_ROT, NULL };
-static const FieldPart *I021_V0_23_165_PARTS[] = {
+static const FieldPart * const I021_V0_23_165_PARTS[] = {
&I021_V0_23_165_TI,
&IXXX_5bit_spare,
&IXXX_FX,
@@ -20734,7 +20665,7 @@ static const AsterixField I021_V0_23_165 = { FX, 1, 0, 0, &hf_021_V0_23_165, I02
static int hf_021_V0_23_170;
static int hf_021_V0_23_170_VALUE;
static const FieldPart I021_V0_23_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V0_23_170_VALUE, NULL };
-static const FieldPart *I021_V0_23_170_PARTS[] = {
+static const FieldPart * const I021_V0_23_170_PARTS[] = {
&I021_V0_23_170_VALUE,
NULL
};
@@ -20751,7 +20682,7 @@ static const value_string valstr_021_V0_23_200_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_23_200_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_23_200_VALUE, NULL };
-static const FieldPart *I021_V0_23_200_PARTS[] = {
+static const FieldPart * const I021_V0_23_200_PARTS[] = {
&I021_V0_23_200_VALUE,
NULL
};
@@ -20792,7 +20723,7 @@ static const value_string valstr_021_V0_23_210_OTR[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_23_210_OTR = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_23_210_OTR, NULL };
-static const FieldPart *I021_V0_23_210_PARTS[] = {
+static const FieldPart * const I021_V0_23_210_PARTS[] = {
&IXXX_3bit_spare,
&I021_V0_23_210_DTI,
&I021_V0_23_210_MDS,
@@ -20806,7 +20737,7 @@ static int hf_021_V0_23_220;
static int hf_021_V0_23_220_WS;
static int hf_021_V0_23_220_WS_VALUE;
static const FieldPart I021_V0_23_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_23_220_WS_VALUE, NULL };
-static const FieldPart *I021_V0_23_220_WS_PARTS[] = {
+static const FieldPart * const I021_V0_23_220_WS_PARTS[] = {
&I021_V0_23_220_WS_VALUE,
NULL
};
@@ -20814,7 +20745,7 @@ static const AsterixField I021_V0_23_220_WS = { FIXED, 2, 0, 0, &hf_021_V0_23_22
static int hf_021_V0_23_220_WD;
static int hf_021_V0_23_220_WD_VALUE;
static const FieldPart I021_V0_23_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_23_220_WD_VALUE, NULL };
-static const FieldPart *I021_V0_23_220_WD_PARTS[] = {
+static const FieldPart * const I021_V0_23_220_WD_PARTS[] = {
&I021_V0_23_220_WD_VALUE,
NULL
};
@@ -20822,7 +20753,7 @@ static const AsterixField I021_V0_23_220_WD = { FIXED, 2, 0, 0, &hf_021_V0_23_22
static int hf_021_V0_23_220_TMP;
static int hf_021_V0_23_220_TMP_VALUE;
static const FieldPart I021_V0_23_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_23_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V0_23_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V0_23_220_TMP_PARTS[] = {
&I021_V0_23_220_TMP_VALUE,
NULL
};
@@ -20830,7 +20761,7 @@ static const AsterixField I021_V0_23_220_TMP = { FIXED, 2, 0, 0, &hf_021_V0_23_2
static int hf_021_V0_23_220_TRB;
static int hf_021_V0_23_220_TRB_VALUE;
static const FieldPart I021_V0_23_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_23_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V0_23_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V0_23_220_TRB_PARTS[] = {
&I021_V0_23_220_TRB_VALUE,
NULL
};
@@ -20839,7 +20770,7 @@ static const AsterixField I021_V0_23_220 = { COMPOUND, 0, 0, 0, &hf_021_V0_23_22
static int hf_021_V0_23_230;
static int hf_021_V0_23_230_VALUE;
static const FieldPart I021_V0_23_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V0_23_230_VALUE, NULL };
-static const FieldPart *I021_V0_23_230_PARTS[] = {
+static const FieldPart * const I021_V0_23_230_PARTS[] = {
&I021_V0_23_230_VALUE,
NULL
};
@@ -20849,8 +20780,7 @@ static const AsterixField I021_V0_23_RE = { EXP, 0, 0, 1, &hf_021_V0_23_RE, NULL
static int hf_021_V0_23_SP;
static const AsterixField I021_V0_23_SP = { EXP, 0, 0, 1, &hf_021_V0_23_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V0_23_uap[] = {
+static const AsterixField * const I021_V0_23_uap[] = {
&I021_V0_23_010,
&I021_V0_23_040,
&I021_V0_23_030,
@@ -20888,11 +20818,10 @@ static const AsterixField *I021_V0_23_uap[] = {
&I021_V0_23_SP,
NULL
};
-static const AsterixField **I021_V0_23[] = {
+static const AsterixField * const * const I021_V0_23[] = {
I021_V0_23_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 0.24 */
static int hf_021_V0_24_010;
@@ -20900,7 +20829,7 @@ static int hf_021_V0_24_010_SAC;
static const FieldPart I021_V0_24_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_24_010_SAC, NULL };
static int hf_021_V0_24_010_SIC;
static const FieldPart I021_V0_24_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_24_010_SIC, NULL };
-static const FieldPart *I021_V0_24_010_PARTS[] = {
+static const FieldPart * const I021_V0_24_010_PARTS[] = {
&I021_V0_24_010_SAC,
&I021_V0_24_010_SIC,
NULL
@@ -20936,7 +20865,7 @@ static const value_string valstr_021_V0_24_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_24_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_24_020_VALUE, NULL };
-static const FieldPart *I021_V0_24_020_PARTS[] = {
+static const FieldPart * const I021_V0_24_020_PARTS[] = {
&I021_V0_24_020_VALUE,
NULL
};
@@ -20944,7 +20873,7 @@ static const AsterixField I021_V0_24_020 = { FIXED, 1, 0, 0, &hf_021_V0_24_020,
static int hf_021_V0_24_030;
static int hf_021_V0_24_030_VALUE;
static const FieldPart I021_V0_24_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V0_24_030_VALUE, NULL };
-static const FieldPart *I021_V0_24_030_PARTS[] = {
+static const FieldPart * const I021_V0_24_030_PARTS[] = {
&I021_V0_24_030_VALUE,
NULL
};
@@ -20952,7 +20881,7 @@ static const AsterixField I021_V0_24_030 = { FIXED, 3, 0, 0, &hf_021_V0_24_030,
static int hf_021_V0_24_032;
static int hf_021_V0_24_032_VALUE;
static const FieldPart I021_V0_24_032_VALUE = { 8, 0.00390625, FIELD_PART_UFLOAT, &hf_021_V0_24_032_VALUE, NULL };
-static const FieldPart *I021_V0_24_032_PARTS[] = {
+static const FieldPart * const I021_V0_24_032_PARTS[] = {
&I021_V0_24_032_VALUE,
NULL
};
@@ -21028,7 +20957,7 @@ static const value_string valstr_021_V0_24_040_ARC[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_24_040_ARC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_24_040_ARC, NULL };
-static const FieldPart *I021_V0_24_040_PARTS[] = {
+static const FieldPart * const I021_V0_24_040_PARTS[] = {
&I021_V0_24_040_DCR,
&I021_V0_24_040_GBS,
&I021_V0_24_040_SIM,
@@ -21046,7 +20975,7 @@ static const AsterixField I021_V0_24_040 = { FIXED, 2, 0, 0, &hf_021_V0_24_040,
static int hf_021_V0_24_080;
static int hf_021_V0_24_080_VALUE;
static const FieldPart I021_V0_24_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V0_24_080_VALUE, NULL };
-static const FieldPart *I021_V0_24_080_PARTS[] = {
+static const FieldPart * const I021_V0_24_080_PARTS[] = {
&I021_V0_24_080_VALUE,
NULL
};
@@ -21081,7 +21010,7 @@ static const value_string valstr_021_V0_24_090_DC[] = {
static const FieldPart I021_V0_24_090_DC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_24_090_DC, NULL };
static int hf_021_V0_24_090_PA;
static const FieldPart I021_V0_24_090_PA = { 4, 1.0, FIELD_PART_FLOAT, &hf_021_V0_24_090_PA, NULL };
-static const FieldPart *I021_V0_24_090_PARTS[] = {
+static const FieldPart * const I021_V0_24_090_PARTS[] = {
&I021_V0_24_090_AC,
&I021_V0_24_090_MN,
&I021_V0_24_090_DC,
@@ -21093,7 +21022,7 @@ static const AsterixField I021_V0_24_090 = { FIXED, 2, 0, 0, &hf_021_V0_24_090,
static int hf_021_V0_24_095;
static int hf_021_V0_24_095_VALUE;
static const FieldPart I021_V0_24_095_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_24_095_VALUE, NULL };
-static const FieldPart *I021_V0_24_095_PARTS[] = {
+static const FieldPart * const I021_V0_24_095_PARTS[] = {
&I021_V0_24_095_VALUE,
NULL
};
@@ -21114,7 +21043,7 @@ static const value_string valstr_021_V0_24_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_24_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_24_110_TIS_NVB, NULL };
-static const FieldPart *I021_V0_24_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V0_24_110_TIS_PARTS[] = {
&I021_V0_24_110_TIS_NAV,
&I021_V0_24_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -21189,7 +21118,7 @@ static int hf_021_V0_24_110_TID_TOV;
static const FieldPart I021_V0_24_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_24_110_TID_TOV, NULL };
static int hf_021_V0_24_110_TID_TTR;
static const FieldPart I021_V0_24_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V0_24_110_TID_TTR, NULL };
-static const FieldPart *I021_V0_24_110_TID_PARTS[] = {
+static const FieldPart * const I021_V0_24_110_TID_PARTS[] = {
&I021_V0_24_110_TID_TCA,
&I021_V0_24_110_TID_NC,
&I021_V0_24_110_TID_TCPN,
@@ -21211,7 +21140,7 @@ static int hf_021_V0_24_130_LAT;
static const FieldPart I021_V0_24_130_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_021_V0_24_130_LAT, NULL };
static int hf_021_V0_24_130_LON;
static const FieldPart I021_V0_24_130_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_021_V0_24_130_LON, NULL };
-static const FieldPart *I021_V0_24_130_PARTS[] = {
+static const FieldPart * const I021_V0_24_130_PARTS[] = {
&I021_V0_24_130_LAT,
&I021_V0_24_130_LON,
NULL
@@ -21220,7 +21149,7 @@ static const AsterixField I021_V0_24_130 = { FIXED, 8, 0, 0, &hf_021_V0_24_130,
static int hf_021_V0_24_140;
static int hf_021_V0_24_140_VALUE;
static const FieldPart I021_V0_24_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_24_140_VALUE, NULL };
-static const FieldPart *I021_V0_24_140_PARTS[] = {
+static const FieldPart * const I021_V0_24_140_PARTS[] = {
&I021_V0_24_140_VALUE,
NULL
};
@@ -21228,7 +21157,7 @@ static const AsterixField I021_V0_24_140 = { FIXED, 2, 0, 0, &hf_021_V0_24_140,
static int hf_021_V0_24_145;
static int hf_021_V0_24_145_VALUE;
static const FieldPart I021_V0_24_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_24_145_VALUE, NULL };
-static const FieldPart *I021_V0_24_145_PARTS[] = {
+static const FieldPart * const I021_V0_24_145_PARTS[] = {
&I021_V0_24_145_VALUE,
NULL
};
@@ -21252,7 +21181,7 @@ static const value_string valstr_021_V0_24_146_SRC[] = {
static const FieldPart I021_V0_24_146_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_24_146_SRC, NULL };
static int hf_021_V0_24_146_ALT;
static const FieldPart I021_V0_24_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_24_146_ALT, NULL };
-static const FieldPart *I021_V0_24_146_PARTS[] = {
+static const FieldPart * const I021_V0_24_146_PARTS[] = {
&I021_V0_24_146_SAS,
&I021_V0_24_146_SRC,
&I021_V0_24_146_ALT,
@@ -21283,7 +21212,7 @@ static const value_string valstr_021_V0_24_148_AM[] = {
static const FieldPart I021_V0_24_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_24_148_AM, NULL };
static int hf_021_V0_24_148_ALT;
static const FieldPart I021_V0_24_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_24_148_ALT, NULL };
-static const FieldPart *I021_V0_24_148_PARTS[] = {
+static const FieldPart * const I021_V0_24_148_PARTS[] = {
&I021_V0_24_148_MV,
&I021_V0_24_148_AH,
&I021_V0_24_148_AM,
@@ -21301,7 +21230,7 @@ static const value_string valstr_021_V0_24_150_IM[] = {
static const FieldPart I021_V0_24_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_24_150_IM, NULL };
static int hf_021_V0_24_150_AS;
static const FieldPart I021_V0_24_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V0_24_150_AS, NULL };
-static const FieldPart *I021_V0_24_150_PARTS[] = {
+static const FieldPart * const I021_V0_24_150_PARTS[] = {
&I021_V0_24_150_IM,
&I021_V0_24_150_AS,
NULL
@@ -21310,7 +21239,7 @@ static const AsterixField I021_V0_24_150 = { FIXED, 2, 0, 0, &hf_021_V0_24_150,
static int hf_021_V0_24_151;
static int hf_021_V0_24_151_VALUE;
static const FieldPart I021_V0_24_151_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_24_151_VALUE, NULL };
-static const FieldPart *I021_V0_24_151_PARTS[] = {
+static const FieldPart * const I021_V0_24_151_PARTS[] = {
&I021_V0_24_151_VALUE,
NULL
};
@@ -21318,7 +21247,7 @@ static const AsterixField I021_V0_24_151 = { FIXED, 2, 0, 0, &hf_021_V0_24_151,
static int hf_021_V0_24_152;
static int hf_021_V0_24_152_VALUE;
static const FieldPart I021_V0_24_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_24_152_VALUE, NULL };
-static const FieldPart *I021_V0_24_152_PARTS[] = {
+static const FieldPart * const I021_V0_24_152_PARTS[] = {
&I021_V0_24_152_VALUE,
NULL
};
@@ -21326,7 +21255,7 @@ static const AsterixField I021_V0_24_152 = { FIXED, 2, 0, 0, &hf_021_V0_24_152,
static int hf_021_V0_24_155;
static int hf_021_V0_24_155_VALUE;
static const FieldPart I021_V0_24_155_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_24_155_VALUE, NULL };
-static const FieldPart *I021_V0_24_155_PARTS[] = {
+static const FieldPart * const I021_V0_24_155_PARTS[] = {
&I021_V0_24_155_VALUE,
NULL
};
@@ -21334,7 +21263,7 @@ static const AsterixField I021_V0_24_155 = { FIXED, 2, 0, 0, &hf_021_V0_24_155,
static int hf_021_V0_24_157;
static int hf_021_V0_24_157_VALUE;
static const FieldPart I021_V0_24_157_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_24_157_VALUE, NULL };
-static const FieldPart *I021_V0_24_157_PARTS[] = {
+static const FieldPart * const I021_V0_24_157_PARTS[] = {
&I021_V0_24_157_VALUE,
NULL
};
@@ -21344,7 +21273,7 @@ static int hf_021_V0_24_160_GS;
static const FieldPart I021_V0_24_160_GS = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_021_V0_24_160_GS, NULL };
static int hf_021_V0_24_160_TA;
static const FieldPart I021_V0_24_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_24_160_TA, NULL };
-static const FieldPart *I021_V0_24_160_PARTS[] = {
+static const FieldPart * const I021_V0_24_160_PARTS[] = {
&I021_V0_24_160_GS,
&I021_V0_24_160_TA,
NULL
@@ -21362,7 +21291,7 @@ static const value_string valstr_021_V0_24_165_TI[] = {
static const FieldPart I021_V0_24_165_TI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_24_165_TI, NULL };
static int hf_021_V0_24_165_ROT;
static const FieldPart I021_V0_24_165_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_021_V0_24_165_ROT, NULL };
-static const FieldPart *I021_V0_24_165_PARTS[] = {
+static const FieldPart * const I021_V0_24_165_PARTS[] = {
&I021_V0_24_165_TI,
&IXXX_5bit_spare,
&IXXX_FX,
@@ -21374,7 +21303,7 @@ static const AsterixField I021_V0_24_165 = { FX, 1, 0, 0, &hf_021_V0_24_165, I02
static int hf_021_V0_24_170;
static int hf_021_V0_24_170_VALUE;
static const FieldPart I021_V0_24_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V0_24_170_VALUE, NULL };
-static const FieldPart *I021_V0_24_170_PARTS[] = {
+static const FieldPart * const I021_V0_24_170_PARTS[] = {
&I021_V0_24_170_VALUE,
NULL
};
@@ -21391,7 +21320,7 @@ static const value_string valstr_021_V0_24_200_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_24_200_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_24_200_VALUE, NULL };
-static const FieldPart *I021_V0_24_200_PARTS[] = {
+static const FieldPart * const I021_V0_24_200_PARTS[] = {
&I021_V0_24_200_VALUE,
NULL
};
@@ -21432,7 +21361,7 @@ static const value_string valstr_021_V0_24_210_OTR[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_24_210_OTR = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_24_210_OTR, NULL };
-static const FieldPart *I021_V0_24_210_PARTS[] = {
+static const FieldPart * const I021_V0_24_210_PARTS[] = {
&IXXX_3bit_spare,
&I021_V0_24_210_DTI,
&I021_V0_24_210_MDS,
@@ -21446,7 +21375,7 @@ static int hf_021_V0_24_220;
static int hf_021_V0_24_220_WS;
static int hf_021_V0_24_220_WS_VALUE;
static const FieldPart I021_V0_24_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_24_220_WS_VALUE, NULL };
-static const FieldPart *I021_V0_24_220_WS_PARTS[] = {
+static const FieldPart * const I021_V0_24_220_WS_PARTS[] = {
&I021_V0_24_220_WS_VALUE,
NULL
};
@@ -21454,7 +21383,7 @@ static const AsterixField I021_V0_24_220_WS = { FIXED, 2, 0, 0, &hf_021_V0_24_22
static int hf_021_V0_24_220_WD;
static int hf_021_V0_24_220_WD_VALUE;
static const FieldPart I021_V0_24_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_24_220_WD_VALUE, NULL };
-static const FieldPart *I021_V0_24_220_WD_PARTS[] = {
+static const FieldPart * const I021_V0_24_220_WD_PARTS[] = {
&I021_V0_24_220_WD_VALUE,
NULL
};
@@ -21462,7 +21391,7 @@ static const AsterixField I021_V0_24_220_WD = { FIXED, 2, 0, 0, &hf_021_V0_24_22
static int hf_021_V0_24_220_TMP;
static int hf_021_V0_24_220_TMP_VALUE;
static const FieldPart I021_V0_24_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_24_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V0_24_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V0_24_220_TMP_PARTS[] = {
&I021_V0_24_220_TMP_VALUE,
NULL
};
@@ -21470,7 +21399,7 @@ static const AsterixField I021_V0_24_220_TMP = { FIXED, 2, 0, 0, &hf_021_V0_24_2
static int hf_021_V0_24_220_TRB;
static int hf_021_V0_24_220_TRB_VALUE;
static const FieldPart I021_V0_24_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_24_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V0_24_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V0_24_220_TRB_PARTS[] = {
&I021_V0_24_220_TRB_VALUE,
NULL
};
@@ -21479,7 +21408,7 @@ static const AsterixField I021_V0_24_220 = { COMPOUND, 0, 0, 0, &hf_021_V0_24_22
static int hf_021_V0_24_230;
static int hf_021_V0_24_230_VALUE;
static const FieldPart I021_V0_24_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V0_24_230_VALUE, NULL };
-static const FieldPart *I021_V0_24_230_PARTS[] = {
+static const FieldPart * const I021_V0_24_230_PARTS[] = {
&I021_V0_24_230_VALUE,
NULL
};
@@ -21489,8 +21418,7 @@ static const AsterixField I021_V0_24_RE = { EXP, 0, 0, 1, &hf_021_V0_24_RE, NULL
static int hf_021_V0_24_SP;
static const AsterixField I021_V0_24_SP = { EXP, 0, 0, 1, &hf_021_V0_24_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V0_24_uap[] = {
+static const AsterixField * const I021_V0_24_uap[] = {
&I021_V0_24_010,
&I021_V0_24_040,
&I021_V0_24_030,
@@ -21528,11 +21456,10 @@ static const AsterixField *I021_V0_24_uap[] = {
&I021_V0_24_SP,
NULL
};
-static const AsterixField **I021_V0_24[] = {
+static const AsterixField * const * const I021_V0_24[] = {
I021_V0_24_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 0.25 */
static int hf_021_V0_25_010;
@@ -21540,7 +21467,7 @@ static int hf_021_V0_25_010_SAC;
static const FieldPart I021_V0_25_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_25_010_SAC, NULL };
static int hf_021_V0_25_010_SIC;
static const FieldPart I021_V0_25_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_25_010_SIC, NULL };
-static const FieldPart *I021_V0_25_010_PARTS[] = {
+static const FieldPart * const I021_V0_25_010_PARTS[] = {
&I021_V0_25_010_SAC,
&I021_V0_25_010_SIC,
NULL
@@ -21576,7 +21503,7 @@ static const value_string valstr_021_V0_25_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_25_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_25_020_VALUE, NULL };
-static const FieldPart *I021_V0_25_020_PARTS[] = {
+static const FieldPart * const I021_V0_25_020_PARTS[] = {
&I021_V0_25_020_VALUE,
NULL
};
@@ -21584,7 +21511,7 @@ static const AsterixField I021_V0_25_020 = { FIXED, 1, 0, 0, &hf_021_V0_25_020,
static int hf_021_V0_25_030;
static int hf_021_V0_25_030_VALUE;
static const FieldPart I021_V0_25_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V0_25_030_VALUE, NULL };
-static const FieldPart *I021_V0_25_030_PARTS[] = {
+static const FieldPart * const I021_V0_25_030_PARTS[] = {
&I021_V0_25_030_VALUE,
NULL
};
@@ -21592,7 +21519,7 @@ static const AsterixField I021_V0_25_030 = { FIXED, 3, 0, 0, &hf_021_V0_25_030,
static int hf_021_V0_25_032;
static int hf_021_V0_25_032_VALUE;
static const FieldPart I021_V0_25_032_VALUE = { 8, 0.00390625, FIELD_PART_UFLOAT, &hf_021_V0_25_032_VALUE, NULL };
-static const FieldPart *I021_V0_25_032_PARTS[] = {
+static const FieldPart * const I021_V0_25_032_PARTS[] = {
&I021_V0_25_032_VALUE,
NULL
};
@@ -21668,7 +21595,7 @@ static const value_string valstr_021_V0_25_040_ARC[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_25_040_ARC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_25_040_ARC, NULL };
-static const FieldPart *I021_V0_25_040_PARTS[] = {
+static const FieldPart * const I021_V0_25_040_PARTS[] = {
&I021_V0_25_040_DCR,
&I021_V0_25_040_GBS,
&I021_V0_25_040_SIM,
@@ -21686,7 +21613,7 @@ static const AsterixField I021_V0_25_040 = { FIXED, 2, 0, 0, &hf_021_V0_25_040,
static int hf_021_V0_25_080;
static int hf_021_V0_25_080_VALUE;
static const FieldPart I021_V0_25_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V0_25_080_VALUE, NULL };
-static const FieldPart *I021_V0_25_080_PARTS[] = {
+static const FieldPart * const I021_V0_25_080_PARTS[] = {
&I021_V0_25_080_VALUE,
NULL
};
@@ -21721,7 +21648,7 @@ static const value_string valstr_021_V0_25_090_DC[] = {
static const FieldPart I021_V0_25_090_DC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_25_090_DC, NULL };
static int hf_021_V0_25_090_PA;
static const FieldPart I021_V0_25_090_PA = { 4, 1.0, FIELD_PART_FLOAT, &hf_021_V0_25_090_PA, NULL };
-static const FieldPart *I021_V0_25_090_PARTS[] = {
+static const FieldPart * const I021_V0_25_090_PARTS[] = {
&I021_V0_25_090_AC,
&I021_V0_25_090_MN,
&I021_V0_25_090_DC,
@@ -21733,7 +21660,7 @@ static const AsterixField I021_V0_25_090 = { FIXED, 2, 0, 0, &hf_021_V0_25_090,
static int hf_021_V0_25_095;
static int hf_021_V0_25_095_VALUE;
static const FieldPart I021_V0_25_095_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_25_095_VALUE, NULL };
-static const FieldPart *I021_V0_25_095_PARTS[] = {
+static const FieldPart * const I021_V0_25_095_PARTS[] = {
&I021_V0_25_095_VALUE,
NULL
};
@@ -21754,7 +21681,7 @@ static const value_string valstr_021_V0_25_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_25_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_25_110_TIS_NVB, NULL };
-static const FieldPart *I021_V0_25_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V0_25_110_TIS_PARTS[] = {
&I021_V0_25_110_TIS_NAV,
&I021_V0_25_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -21829,7 +21756,7 @@ static int hf_021_V0_25_110_TID_TOV;
static const FieldPart I021_V0_25_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_25_110_TID_TOV, NULL };
static int hf_021_V0_25_110_TID_TTR;
static const FieldPart I021_V0_25_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V0_25_110_TID_TTR, NULL };
-static const FieldPart *I021_V0_25_110_TID_PARTS[] = {
+static const FieldPart * const I021_V0_25_110_TID_PARTS[] = {
&I021_V0_25_110_TID_TCA,
&I021_V0_25_110_TID_NC,
&I021_V0_25_110_TID_TCPN,
@@ -21851,7 +21778,7 @@ static int hf_021_V0_25_130_LAT;
static const FieldPart I021_V0_25_130_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_021_V0_25_130_LAT, NULL };
static int hf_021_V0_25_130_LON;
static const FieldPart I021_V0_25_130_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_021_V0_25_130_LON, NULL };
-static const FieldPart *I021_V0_25_130_PARTS[] = {
+static const FieldPart * const I021_V0_25_130_PARTS[] = {
&I021_V0_25_130_LAT,
&I021_V0_25_130_LON,
NULL
@@ -21860,7 +21787,7 @@ static const AsterixField I021_V0_25_130 = { FIXED, 8, 0, 0, &hf_021_V0_25_130,
static int hf_021_V0_25_140;
static int hf_021_V0_25_140_VALUE;
static const FieldPart I021_V0_25_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_25_140_VALUE, NULL };
-static const FieldPart *I021_V0_25_140_PARTS[] = {
+static const FieldPart * const I021_V0_25_140_PARTS[] = {
&I021_V0_25_140_VALUE,
NULL
};
@@ -21868,7 +21795,7 @@ static const AsterixField I021_V0_25_140 = { FIXED, 2, 0, 0, &hf_021_V0_25_140,
static int hf_021_V0_25_145;
static int hf_021_V0_25_145_VALUE;
static const FieldPart I021_V0_25_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_25_145_VALUE, NULL };
-static const FieldPart *I021_V0_25_145_PARTS[] = {
+static const FieldPart * const I021_V0_25_145_PARTS[] = {
&I021_V0_25_145_VALUE,
NULL
};
@@ -21892,7 +21819,7 @@ static const value_string valstr_021_V0_25_146_SRC[] = {
static const FieldPart I021_V0_25_146_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_25_146_SRC, NULL };
static int hf_021_V0_25_146_ALT;
static const FieldPart I021_V0_25_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_25_146_ALT, NULL };
-static const FieldPart *I021_V0_25_146_PARTS[] = {
+static const FieldPart * const I021_V0_25_146_PARTS[] = {
&I021_V0_25_146_SAS,
&I021_V0_25_146_SRC,
&I021_V0_25_146_ALT,
@@ -21923,7 +21850,7 @@ static const value_string valstr_021_V0_25_148_AM[] = {
static const FieldPart I021_V0_25_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_25_148_AM, NULL };
static int hf_021_V0_25_148_ALT;
static const FieldPart I021_V0_25_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_25_148_ALT, NULL };
-static const FieldPart *I021_V0_25_148_PARTS[] = {
+static const FieldPart * const I021_V0_25_148_PARTS[] = {
&I021_V0_25_148_MV,
&I021_V0_25_148_AH,
&I021_V0_25_148_AM,
@@ -21941,7 +21868,7 @@ static const value_string valstr_021_V0_25_150_IM[] = {
static const FieldPart I021_V0_25_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_25_150_IM, NULL };
static int hf_021_V0_25_150_AS;
static const FieldPart I021_V0_25_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V0_25_150_AS, NULL };
-static const FieldPart *I021_V0_25_150_PARTS[] = {
+static const FieldPart * const I021_V0_25_150_PARTS[] = {
&I021_V0_25_150_IM,
&I021_V0_25_150_AS,
NULL
@@ -21950,7 +21877,7 @@ static const AsterixField I021_V0_25_150 = { FIXED, 2, 0, 0, &hf_021_V0_25_150,
static int hf_021_V0_25_151;
static int hf_021_V0_25_151_VALUE;
static const FieldPart I021_V0_25_151_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_25_151_VALUE, NULL };
-static const FieldPart *I021_V0_25_151_PARTS[] = {
+static const FieldPart * const I021_V0_25_151_PARTS[] = {
&I021_V0_25_151_VALUE,
NULL
};
@@ -21958,7 +21885,7 @@ static const AsterixField I021_V0_25_151 = { FIXED, 2, 0, 0, &hf_021_V0_25_151,
static int hf_021_V0_25_152;
static int hf_021_V0_25_152_VALUE;
static const FieldPart I021_V0_25_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_25_152_VALUE, NULL };
-static const FieldPart *I021_V0_25_152_PARTS[] = {
+static const FieldPart * const I021_V0_25_152_PARTS[] = {
&I021_V0_25_152_VALUE,
NULL
};
@@ -21966,7 +21893,7 @@ static const AsterixField I021_V0_25_152 = { FIXED, 2, 0, 0, &hf_021_V0_25_152,
static int hf_021_V0_25_155;
static int hf_021_V0_25_155_VALUE;
static const FieldPart I021_V0_25_155_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_25_155_VALUE, NULL };
-static const FieldPart *I021_V0_25_155_PARTS[] = {
+static const FieldPart * const I021_V0_25_155_PARTS[] = {
&I021_V0_25_155_VALUE,
NULL
};
@@ -21974,7 +21901,7 @@ static const AsterixField I021_V0_25_155 = { FIXED, 2, 0, 0, &hf_021_V0_25_155,
static int hf_021_V0_25_157;
static int hf_021_V0_25_157_VALUE;
static const FieldPart I021_V0_25_157_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_25_157_VALUE, NULL };
-static const FieldPart *I021_V0_25_157_PARTS[] = {
+static const FieldPart * const I021_V0_25_157_PARTS[] = {
&I021_V0_25_157_VALUE,
NULL
};
@@ -21984,7 +21911,7 @@ static int hf_021_V0_25_160_GS;
static const FieldPart I021_V0_25_160_GS = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_021_V0_25_160_GS, NULL };
static int hf_021_V0_25_160_TA;
static const FieldPart I021_V0_25_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_25_160_TA, NULL };
-static const FieldPart *I021_V0_25_160_PARTS[] = {
+static const FieldPart * const I021_V0_25_160_PARTS[] = {
&I021_V0_25_160_GS,
&I021_V0_25_160_TA,
NULL
@@ -22002,7 +21929,7 @@ static const value_string valstr_021_V0_25_165_TI[] = {
static const FieldPart I021_V0_25_165_TI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_25_165_TI, NULL };
static int hf_021_V0_25_165_ROT;
static const FieldPart I021_V0_25_165_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_021_V0_25_165_ROT, NULL };
-static const FieldPart *I021_V0_25_165_PARTS[] = {
+static const FieldPart * const I021_V0_25_165_PARTS[] = {
&I021_V0_25_165_TI,
&IXXX_5bit_spare,
&IXXX_FX,
@@ -22014,7 +21941,7 @@ static const AsterixField I021_V0_25_165 = { FX, 1, 0, 0, &hf_021_V0_25_165, I02
static int hf_021_V0_25_170;
static int hf_021_V0_25_170_VALUE;
static const FieldPart I021_V0_25_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V0_25_170_VALUE, NULL };
-static const FieldPart *I021_V0_25_170_PARTS[] = {
+static const FieldPart * const I021_V0_25_170_PARTS[] = {
&I021_V0_25_170_VALUE,
NULL
};
@@ -22031,7 +21958,7 @@ static const value_string valstr_021_V0_25_200_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_25_200_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_25_200_VALUE, NULL };
-static const FieldPart *I021_V0_25_200_PARTS[] = {
+static const FieldPart * const I021_V0_25_200_PARTS[] = {
&I021_V0_25_200_VALUE,
NULL
};
@@ -22072,7 +21999,7 @@ static const value_string valstr_021_V0_25_210_OTR[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_25_210_OTR = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_25_210_OTR, NULL };
-static const FieldPart *I021_V0_25_210_PARTS[] = {
+static const FieldPart * const I021_V0_25_210_PARTS[] = {
&IXXX_3bit_spare,
&I021_V0_25_210_DTI,
&I021_V0_25_210_MDS,
@@ -22086,7 +22013,7 @@ static int hf_021_V0_25_220;
static int hf_021_V0_25_220_WS;
static int hf_021_V0_25_220_WS_VALUE;
static const FieldPart I021_V0_25_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_25_220_WS_VALUE, NULL };
-static const FieldPart *I021_V0_25_220_WS_PARTS[] = {
+static const FieldPart * const I021_V0_25_220_WS_PARTS[] = {
&I021_V0_25_220_WS_VALUE,
NULL
};
@@ -22094,7 +22021,7 @@ static const AsterixField I021_V0_25_220_WS = { FIXED, 2, 0, 0, &hf_021_V0_25_22
static int hf_021_V0_25_220_WD;
static int hf_021_V0_25_220_WD_VALUE;
static const FieldPart I021_V0_25_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_25_220_WD_VALUE, NULL };
-static const FieldPart *I021_V0_25_220_WD_PARTS[] = {
+static const FieldPart * const I021_V0_25_220_WD_PARTS[] = {
&I021_V0_25_220_WD_VALUE,
NULL
};
@@ -22102,7 +22029,7 @@ static const AsterixField I021_V0_25_220_WD = { FIXED, 2, 0, 0, &hf_021_V0_25_22
static int hf_021_V0_25_220_TMP;
static int hf_021_V0_25_220_TMP_VALUE;
static const FieldPart I021_V0_25_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_25_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V0_25_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V0_25_220_TMP_PARTS[] = {
&I021_V0_25_220_TMP_VALUE,
NULL
};
@@ -22110,7 +22037,7 @@ static const AsterixField I021_V0_25_220_TMP = { FIXED, 2, 0, 0, &hf_021_V0_25_2
static int hf_021_V0_25_220_TRB;
static int hf_021_V0_25_220_TRB_VALUE;
static const FieldPart I021_V0_25_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_25_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V0_25_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V0_25_220_TRB_PARTS[] = {
&I021_V0_25_220_TRB_VALUE,
NULL
};
@@ -22119,7 +22046,7 @@ static const AsterixField I021_V0_25_220 = { COMPOUND, 0, 0, 0, &hf_021_V0_25_22
static int hf_021_V0_25_230;
static int hf_021_V0_25_230_VALUE;
static const FieldPart I021_V0_25_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V0_25_230_VALUE, NULL };
-static const FieldPart *I021_V0_25_230_PARTS[] = {
+static const FieldPart * const I021_V0_25_230_PARTS[] = {
&I021_V0_25_230_VALUE,
NULL
};
@@ -22129,8 +22056,7 @@ static const AsterixField I021_V0_25_RE = { EXP, 0, 0, 1, &hf_021_V0_25_RE, NULL
static int hf_021_V0_25_SP;
static const AsterixField I021_V0_25_SP = { EXP, 0, 0, 1, &hf_021_V0_25_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V0_25_uap[] = {
+static const AsterixField * const I021_V0_25_uap[] = {
&I021_V0_25_010,
&I021_V0_25_040,
&I021_V0_25_030,
@@ -22168,11 +22094,10 @@ static const AsterixField *I021_V0_25_uap[] = {
&I021_V0_25_SP,
NULL
};
-static const AsterixField **I021_V0_25[] = {
+static const AsterixField * const * const I021_V0_25[] = {
I021_V0_25_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 0.26 */
static int hf_021_V0_26_010;
@@ -22180,7 +22105,7 @@ static int hf_021_V0_26_010_SAC;
static const FieldPart I021_V0_26_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_26_010_SAC, NULL };
static int hf_021_V0_26_010_SIC;
static const FieldPart I021_V0_26_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_26_010_SIC, NULL };
-static const FieldPart *I021_V0_26_010_PARTS[] = {
+static const FieldPart * const I021_V0_26_010_PARTS[] = {
&I021_V0_26_010_SAC,
&I021_V0_26_010_SIC,
NULL
@@ -22216,7 +22141,7 @@ static const value_string valstr_021_V0_26_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_26_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_26_020_VALUE, NULL };
-static const FieldPart *I021_V0_26_020_PARTS[] = {
+static const FieldPart * const I021_V0_26_020_PARTS[] = {
&I021_V0_26_020_VALUE,
NULL
};
@@ -22224,7 +22149,7 @@ static const AsterixField I021_V0_26_020 = { FIXED, 1, 0, 0, &hf_021_V0_26_020,
static int hf_021_V0_26_030;
static int hf_021_V0_26_030_VALUE;
static const FieldPart I021_V0_26_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V0_26_030_VALUE, NULL };
-static const FieldPart *I021_V0_26_030_PARTS[] = {
+static const FieldPart * const I021_V0_26_030_PARTS[] = {
&I021_V0_26_030_VALUE,
NULL
};
@@ -22232,7 +22157,7 @@ static const AsterixField I021_V0_26_030 = { FIXED, 3, 0, 0, &hf_021_V0_26_030,
static int hf_021_V0_26_032;
static int hf_021_V0_26_032_VALUE;
static const FieldPart I021_V0_26_032_VALUE = { 8, 0.00390625, FIELD_PART_UFLOAT, &hf_021_V0_26_032_VALUE, NULL };
-static const FieldPart *I021_V0_26_032_PARTS[] = {
+static const FieldPart * const I021_V0_26_032_PARTS[] = {
&I021_V0_26_032_VALUE,
NULL
};
@@ -22308,7 +22233,7 @@ static const value_string valstr_021_V0_26_040_ARC[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_26_040_ARC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_26_040_ARC, NULL };
-static const FieldPart *I021_V0_26_040_PARTS[] = {
+static const FieldPart * const I021_V0_26_040_PARTS[] = {
&I021_V0_26_040_DCR,
&I021_V0_26_040_GBS,
&I021_V0_26_040_SIM,
@@ -22347,7 +22272,7 @@ static const value_string valstr_021_V0_26_070_L[] = {
static const FieldPart I021_V0_26_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_26_070_L, NULL };
static int hf_021_V0_26_070_MODE3A;
static const FieldPart I021_V0_26_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_021_V0_26_070_MODE3A, NULL };
-static const FieldPart *I021_V0_26_070_PARTS[] = {
+static const FieldPart * const I021_V0_26_070_PARTS[] = {
&I021_V0_26_070_V,
&I021_V0_26_070_G,
&I021_V0_26_070_L,
@@ -22359,7 +22284,7 @@ static const AsterixField I021_V0_26_070 = { FIXED, 2, 0, 0, &hf_021_V0_26_070,
static int hf_021_V0_26_080;
static int hf_021_V0_26_080_VALUE;
static const FieldPart I021_V0_26_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V0_26_080_VALUE, NULL };
-static const FieldPart *I021_V0_26_080_PARTS[] = {
+static const FieldPart * const I021_V0_26_080_PARTS[] = {
&I021_V0_26_080_VALUE,
NULL
};
@@ -22394,7 +22319,7 @@ static const value_string valstr_021_V0_26_090_DC[] = {
static const FieldPart I021_V0_26_090_DC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_26_090_DC, NULL };
static int hf_021_V0_26_090_PA;
static const FieldPart I021_V0_26_090_PA = { 4, 1.0, FIELD_PART_FLOAT, &hf_021_V0_26_090_PA, NULL };
-static const FieldPart *I021_V0_26_090_PARTS[] = {
+static const FieldPart * const I021_V0_26_090_PARTS[] = {
&I021_V0_26_090_AC,
&I021_V0_26_090_MN,
&I021_V0_26_090_DC,
@@ -22406,7 +22331,7 @@ static const AsterixField I021_V0_26_090 = { FIXED, 2, 0, 0, &hf_021_V0_26_090,
static int hf_021_V0_26_095;
static int hf_021_V0_26_095_VALUE;
static const FieldPart I021_V0_26_095_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_26_095_VALUE, NULL };
-static const FieldPart *I021_V0_26_095_PARTS[] = {
+static const FieldPart * const I021_V0_26_095_PARTS[] = {
&I021_V0_26_095_VALUE,
NULL
};
@@ -22427,7 +22352,7 @@ static const value_string valstr_021_V0_26_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_26_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_26_110_TIS_NVB, NULL };
-static const FieldPart *I021_V0_26_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V0_26_110_TIS_PARTS[] = {
&I021_V0_26_110_TIS_NAV,
&I021_V0_26_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -22502,7 +22427,7 @@ static int hf_021_V0_26_110_TID_TOV;
static const FieldPart I021_V0_26_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_26_110_TID_TOV, NULL };
static int hf_021_V0_26_110_TID_TTR;
static const FieldPart I021_V0_26_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V0_26_110_TID_TTR, NULL };
-static const FieldPart *I021_V0_26_110_TID_PARTS[] = {
+static const FieldPart * const I021_V0_26_110_TID_PARTS[] = {
&I021_V0_26_110_TID_TCA,
&I021_V0_26_110_TID_NC,
&I021_V0_26_110_TID_TCPN,
@@ -22524,7 +22449,7 @@ static int hf_021_V0_26_130_LAT;
static const FieldPart I021_V0_26_130_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_021_V0_26_130_LAT, NULL };
static int hf_021_V0_26_130_LON;
static const FieldPart I021_V0_26_130_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_021_V0_26_130_LON, NULL };
-static const FieldPart *I021_V0_26_130_PARTS[] = {
+static const FieldPart * const I021_V0_26_130_PARTS[] = {
&I021_V0_26_130_LAT,
&I021_V0_26_130_LON,
NULL
@@ -22533,7 +22458,7 @@ static const AsterixField I021_V0_26_130 = { FIXED, 8, 0, 0, &hf_021_V0_26_130,
static int hf_021_V0_26_131;
static int hf_021_V0_26_131_VALUE;
static const FieldPart I021_V0_26_131_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V0_26_131_VALUE, NULL };
-static const FieldPart *I021_V0_26_131_PARTS[] = {
+static const FieldPart * const I021_V0_26_131_PARTS[] = {
&I021_V0_26_131_VALUE,
NULL
};
@@ -22541,7 +22466,7 @@ static const AsterixField I021_V0_26_131 = { FIXED, 1, 0, 0, &hf_021_V0_26_131,
static int hf_021_V0_26_140;
static int hf_021_V0_26_140_VALUE;
static const FieldPart I021_V0_26_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_26_140_VALUE, NULL };
-static const FieldPart *I021_V0_26_140_PARTS[] = {
+static const FieldPart * const I021_V0_26_140_PARTS[] = {
&I021_V0_26_140_VALUE,
NULL
};
@@ -22549,7 +22474,7 @@ static const AsterixField I021_V0_26_140 = { FIXED, 2, 0, 0, &hf_021_V0_26_140,
static int hf_021_V0_26_145;
static int hf_021_V0_26_145_VALUE;
static const FieldPart I021_V0_26_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_26_145_VALUE, NULL };
-static const FieldPart *I021_V0_26_145_PARTS[] = {
+static const FieldPart * const I021_V0_26_145_PARTS[] = {
&I021_V0_26_145_VALUE,
NULL
};
@@ -22573,7 +22498,7 @@ static const value_string valstr_021_V0_26_146_SRC[] = {
static const FieldPart I021_V0_26_146_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_26_146_SRC, NULL };
static int hf_021_V0_26_146_ALT;
static const FieldPart I021_V0_26_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_26_146_ALT, NULL };
-static const FieldPart *I021_V0_26_146_PARTS[] = {
+static const FieldPart * const I021_V0_26_146_PARTS[] = {
&I021_V0_26_146_SAS,
&I021_V0_26_146_SRC,
&I021_V0_26_146_ALT,
@@ -22604,7 +22529,7 @@ static const value_string valstr_021_V0_26_148_AM[] = {
static const FieldPart I021_V0_26_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_26_148_AM, NULL };
static int hf_021_V0_26_148_ALT;
static const FieldPart I021_V0_26_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V0_26_148_ALT, NULL };
-static const FieldPart *I021_V0_26_148_PARTS[] = {
+static const FieldPart * const I021_V0_26_148_PARTS[] = {
&I021_V0_26_148_MV,
&I021_V0_26_148_AH,
&I021_V0_26_148_AM,
@@ -22622,7 +22547,7 @@ static const value_string valstr_021_V0_26_150_IM[] = {
static const FieldPart I021_V0_26_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_26_150_IM, NULL };
static int hf_021_V0_26_150_AS;
static const FieldPart I021_V0_26_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V0_26_150_AS, NULL };
-static const FieldPart *I021_V0_26_150_PARTS[] = {
+static const FieldPart * const I021_V0_26_150_PARTS[] = {
&I021_V0_26_150_IM,
&I021_V0_26_150_AS,
NULL
@@ -22631,7 +22556,7 @@ static const AsterixField I021_V0_26_150 = { FIXED, 2, 0, 0, &hf_021_V0_26_150,
static int hf_021_V0_26_151;
static int hf_021_V0_26_151_VALUE;
static const FieldPart I021_V0_26_151_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_26_151_VALUE, NULL };
-static const FieldPart *I021_V0_26_151_PARTS[] = {
+static const FieldPart * const I021_V0_26_151_PARTS[] = {
&I021_V0_26_151_VALUE,
NULL
};
@@ -22639,7 +22564,7 @@ static const AsterixField I021_V0_26_151 = { FIXED, 2, 0, 0, &hf_021_V0_26_151,
static int hf_021_V0_26_152;
static int hf_021_V0_26_152_VALUE;
static const FieldPart I021_V0_26_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_26_152_VALUE, NULL };
-static const FieldPart *I021_V0_26_152_PARTS[] = {
+static const FieldPart * const I021_V0_26_152_PARTS[] = {
&I021_V0_26_152_VALUE,
NULL
};
@@ -22647,7 +22572,7 @@ static const AsterixField I021_V0_26_152 = { FIXED, 2, 0, 0, &hf_021_V0_26_152,
static int hf_021_V0_26_155;
static int hf_021_V0_26_155_VALUE;
static const FieldPart I021_V0_26_155_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_26_155_VALUE, NULL };
-static const FieldPart *I021_V0_26_155_PARTS[] = {
+static const FieldPart * const I021_V0_26_155_PARTS[] = {
&I021_V0_26_155_VALUE,
NULL
};
@@ -22655,7 +22580,7 @@ static const AsterixField I021_V0_26_155 = { FIXED, 2, 0, 0, &hf_021_V0_26_155,
static int hf_021_V0_26_157;
static int hf_021_V0_26_157_VALUE;
static const FieldPart I021_V0_26_157_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V0_26_157_VALUE, NULL };
-static const FieldPart *I021_V0_26_157_PARTS[] = {
+static const FieldPart * const I021_V0_26_157_PARTS[] = {
&I021_V0_26_157_VALUE,
NULL
};
@@ -22665,7 +22590,7 @@ static int hf_021_V0_26_160_GS;
static const FieldPart I021_V0_26_160_GS = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_021_V0_26_160_GS, NULL };
static int hf_021_V0_26_160_TA;
static const FieldPart I021_V0_26_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V0_26_160_TA, NULL };
-static const FieldPart *I021_V0_26_160_PARTS[] = {
+static const FieldPart * const I021_V0_26_160_PARTS[] = {
&I021_V0_26_160_GS,
&I021_V0_26_160_TA,
NULL
@@ -22683,7 +22608,7 @@ static const value_string valstr_021_V0_26_165_TI[] = {
static const FieldPart I021_V0_26_165_TI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V0_26_165_TI, NULL };
static int hf_021_V0_26_165_ROT;
static const FieldPart I021_V0_26_165_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_021_V0_26_165_ROT, NULL };
-static const FieldPart *I021_V0_26_165_PARTS[] = {
+static const FieldPart * const I021_V0_26_165_PARTS[] = {
&I021_V0_26_165_TI,
&IXXX_5bit_spare,
&IXXX_FX,
@@ -22695,7 +22620,7 @@ static const AsterixField I021_V0_26_165 = { FX, 1, 0, 0, &hf_021_V0_26_165, I02
static int hf_021_V0_26_170;
static int hf_021_V0_26_170_VALUE;
static const FieldPart I021_V0_26_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V0_26_170_VALUE, NULL };
-static const FieldPart *I021_V0_26_170_PARTS[] = {
+static const FieldPart * const I021_V0_26_170_PARTS[] = {
&I021_V0_26_170_VALUE,
NULL
};
@@ -22712,7 +22637,7 @@ static const value_string valstr_021_V0_26_200_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_26_200_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_26_200_VALUE, NULL };
-static const FieldPart *I021_V0_26_200_PARTS[] = {
+static const FieldPart * const I021_V0_26_200_PARTS[] = {
&I021_V0_26_200_VALUE,
NULL
};
@@ -22753,7 +22678,7 @@ static const value_string valstr_021_V0_26_210_OTR[] = {
{ 0, NULL }
};
static const FieldPart I021_V0_26_210_OTR = { 1, 1.0, FIELD_PART_UINT, &hf_021_V0_26_210_OTR, NULL };
-static const FieldPart *I021_V0_26_210_PARTS[] = {
+static const FieldPart * const I021_V0_26_210_PARTS[] = {
&IXXX_3bit_spare,
&I021_V0_26_210_DTI,
&I021_V0_26_210_MDS,
@@ -22767,7 +22692,7 @@ static int hf_021_V0_26_220;
static int hf_021_V0_26_220_WS;
static int hf_021_V0_26_220_WS_VALUE;
static const FieldPart I021_V0_26_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_26_220_WS_VALUE, NULL };
-static const FieldPart *I021_V0_26_220_WS_PARTS[] = {
+static const FieldPart * const I021_V0_26_220_WS_PARTS[] = {
&I021_V0_26_220_WS_VALUE,
NULL
};
@@ -22775,7 +22700,7 @@ static const AsterixField I021_V0_26_220_WS = { FIXED, 2, 0, 0, &hf_021_V0_26_22
static int hf_021_V0_26_220_WD;
static int hf_021_V0_26_220_WD_VALUE;
static const FieldPart I021_V0_26_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V0_26_220_WD_VALUE, NULL };
-static const FieldPart *I021_V0_26_220_WD_PARTS[] = {
+static const FieldPart * const I021_V0_26_220_WD_PARTS[] = {
&I021_V0_26_220_WD_VALUE,
NULL
};
@@ -22783,7 +22708,7 @@ static const AsterixField I021_V0_26_220_WD = { FIXED, 2, 0, 0, &hf_021_V0_26_22
static int hf_021_V0_26_220_TMP;
static int hf_021_V0_26_220_TMP_VALUE;
static const FieldPart I021_V0_26_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V0_26_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V0_26_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V0_26_220_TMP_PARTS[] = {
&I021_V0_26_220_TMP_VALUE,
NULL
};
@@ -22791,7 +22716,7 @@ static const AsterixField I021_V0_26_220_TMP = { FIXED, 2, 0, 0, &hf_021_V0_26_2
static int hf_021_V0_26_220_TRB;
static int hf_021_V0_26_220_TRB_VALUE;
static const FieldPart I021_V0_26_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V0_26_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V0_26_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V0_26_220_TRB_PARTS[] = {
&I021_V0_26_220_TRB_VALUE,
NULL
};
@@ -22800,7 +22725,7 @@ static const AsterixField I021_V0_26_220 = { COMPOUND, 0, 0, 0, &hf_021_V0_26_22
static int hf_021_V0_26_230;
static int hf_021_V0_26_230_VALUE;
static const FieldPart I021_V0_26_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V0_26_230_VALUE, NULL };
-static const FieldPart *I021_V0_26_230_PARTS[] = {
+static const FieldPart * const I021_V0_26_230_PARTS[] = {
&I021_V0_26_230_VALUE,
NULL
};
@@ -22810,8 +22735,7 @@ static const AsterixField I021_V0_26_RE = { EXP, 0, 0, 1, &hf_021_V0_26_RE, NULL
static int hf_021_V0_26_SP;
static const AsterixField I021_V0_26_SP = { EXP, 0, 0, 1, &hf_021_V0_26_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V0_26_uap[] = {
+static const AsterixField * const I021_V0_26_uap[] = {
&I021_V0_26_010,
&I021_V0_26_040,
&I021_V0_26_030,
@@ -22849,11 +22773,10 @@ static const AsterixField *I021_V0_26_uap[] = {
&I021_V0_26_SP,
NULL
};
-static const AsterixField **I021_V0_26[] = {
+static const AsterixField * const * const I021_V0_26[] = {
I021_V0_26_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 2.2 */
static int hf_021_V2_2_008;
@@ -22908,7 +22831,7 @@ static const value_string valstr_021_V2_2_008_SA[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_2_008_SA = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_008_SA, NULL };
-static const FieldPart *I021_V2_2_008_PARTS[] = {
+static const FieldPart * const I021_V2_2_008_PARTS[] = {
&I021_V2_2_008_RA,
&I021_V2_2_008_TC,
&I021_V2_2_008_TS,
@@ -22924,7 +22847,7 @@ static int hf_021_V2_2_010_SAC;
static const FieldPart I021_V2_2_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_2_010_SAC, NULL };
static int hf_021_V2_2_010_SIC;
static const FieldPart I021_V2_2_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_2_010_SIC, NULL };
-static const FieldPart *I021_V2_2_010_PARTS[] = {
+static const FieldPart * const I021_V2_2_010_PARTS[] = {
&I021_V2_2_010_SAC,
&I021_V2_2_010_SIC,
NULL
@@ -22933,7 +22856,7 @@ static const AsterixField I021_V2_2_010 = { FIXED, 2, 0, 0, &hf_021_V2_2_010, I0
static int hf_021_V2_2_015;
static int hf_021_V2_2_015_VALUE;
static const FieldPart I021_V2_2_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_2_015_VALUE, NULL };
-static const FieldPart *I021_V2_2_015_PARTS[] = {
+static const FieldPart * const I021_V2_2_015_PARTS[] = {
&I021_V2_2_015_VALUE,
NULL
};
@@ -22941,7 +22864,7 @@ static const AsterixField I021_V2_2_015 = { FIXED, 1, 0, 0, &hf_021_V2_2_015, I0
static int hf_021_V2_2_016;
static int hf_021_V2_2_016_VALUE;
static const FieldPart I021_V2_2_016_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_021_V2_2_016_VALUE, NULL };
-static const FieldPart *I021_V2_2_016_PARTS[] = {
+static const FieldPart * const I021_V2_2_016_PARTS[] = {
&I021_V2_2_016_VALUE,
NULL
};
@@ -22977,7 +22900,7 @@ static const value_string valstr_021_V2_2_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_2_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_2_020_VALUE, NULL };
-static const FieldPart *I021_V2_2_020_PARTS[] = {
+static const FieldPart * const I021_V2_2_020_PARTS[] = {
&I021_V2_2_020_VALUE,
NULL
};
@@ -23098,7 +23021,7 @@ static const value_string valstr_021_V2_2_040_RCF[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_2_040_RCF = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_040_RCF, NULL };
-static const FieldPart *I021_V2_2_040_PARTS[] = {
+static const FieldPart * const I021_V2_2_040_PARTS[] = {
&I021_V2_2_040_ATP,
&I021_V2_2_040_ARC,
&I021_V2_2_040_RC,
@@ -23124,7 +23047,7 @@ static const AsterixField I021_V2_2_040 = { FX, 1, 0, 0, &hf_021_V2_2_040, I021_
static int hf_021_V2_2_070;
static int hf_021_V2_2_070_MODE3A;
static const FieldPart I021_V2_2_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_021_V2_2_070_MODE3A, NULL };
-static const FieldPart *I021_V2_2_070_PARTS[] = {
+static const FieldPart * const I021_V2_2_070_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_2_070_MODE3A,
NULL
@@ -23133,7 +23056,7 @@ static const AsterixField I021_V2_2_070 = { FIXED, 2, 0, 0, &hf_021_V2_2_070, I0
static int hf_021_V2_2_071;
static int hf_021_V2_2_071_VALUE;
static const FieldPart I021_V2_2_071_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_2_071_VALUE, NULL };
-static const FieldPart *I021_V2_2_071_PARTS[] = {
+static const FieldPart * const I021_V2_2_071_PARTS[] = {
&I021_V2_2_071_VALUE,
NULL
};
@@ -23141,7 +23064,7 @@ static const AsterixField I021_V2_2_071 = { FIXED, 3, 0, 0, &hf_021_V2_2_071, I0
static int hf_021_V2_2_072;
static int hf_021_V2_2_072_VALUE;
static const FieldPart I021_V2_2_072_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_2_072_VALUE, NULL };
-static const FieldPart *I021_V2_2_072_PARTS[] = {
+static const FieldPart * const I021_V2_2_072_PARTS[] = {
&I021_V2_2_072_VALUE,
NULL
};
@@ -23149,7 +23072,7 @@ static const AsterixField I021_V2_2_072 = { FIXED, 3, 0, 0, &hf_021_V2_2_072, I0
static int hf_021_V2_2_073;
static int hf_021_V2_2_073_VALUE;
static const FieldPart I021_V2_2_073_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_2_073_VALUE, NULL };
-static const FieldPart *I021_V2_2_073_PARTS[] = {
+static const FieldPart * const I021_V2_2_073_PARTS[] = {
&I021_V2_2_073_VALUE,
NULL
};
@@ -23166,7 +23089,7 @@ static const value_string valstr_021_V2_2_074_FSI[] = {
static const FieldPart I021_V2_2_074_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_2_074_FSI, NULL };
static int hf_021_V2_2_074_TOMRP;
static const FieldPart I021_V2_2_074_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_2_074_TOMRP, NULL };
-static const FieldPart *I021_V2_2_074_PARTS[] = {
+static const FieldPart * const I021_V2_2_074_PARTS[] = {
&I021_V2_2_074_FSI,
&I021_V2_2_074_TOMRP,
NULL
@@ -23175,7 +23098,7 @@ static const AsterixField I021_V2_2_074 = { FIXED, 4, 0, 0, &hf_021_V2_2_074, I0
static int hf_021_V2_2_075;
static int hf_021_V2_2_075_VALUE;
static const FieldPart I021_V2_2_075_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_2_075_VALUE, NULL };
-static const FieldPart *I021_V2_2_075_PARTS[] = {
+static const FieldPart * const I021_V2_2_075_PARTS[] = {
&I021_V2_2_075_VALUE,
NULL
};
@@ -23192,7 +23115,7 @@ static const value_string valstr_021_V2_2_076_FSI[] = {
static const FieldPart I021_V2_2_076_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_2_076_FSI, NULL };
static int hf_021_V2_2_076_TOMRP;
static const FieldPart I021_V2_2_076_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_2_076_TOMRP, NULL };
-static const FieldPart *I021_V2_2_076_PARTS[] = {
+static const FieldPart * const I021_V2_2_076_PARTS[] = {
&I021_V2_2_076_FSI,
&I021_V2_2_076_TOMRP,
NULL
@@ -23201,7 +23124,7 @@ static const AsterixField I021_V2_2_076 = { FIXED, 4, 0, 0, &hf_021_V2_2_076, I0
static int hf_021_V2_2_077;
static int hf_021_V2_2_077_VALUE;
static const FieldPart I021_V2_2_077_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_2_077_VALUE, NULL };
-static const FieldPart *I021_V2_2_077_PARTS[] = {
+static const FieldPart * const I021_V2_2_077_PARTS[] = {
&I021_V2_2_077_VALUE,
NULL
};
@@ -23209,7 +23132,7 @@ static const AsterixField I021_V2_2_077 = { FIXED, 3, 0, 0, &hf_021_V2_2_077, I0
static int hf_021_V2_2_080;
static int hf_021_V2_2_080_VALUE;
static const FieldPart I021_V2_2_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V2_2_080_VALUE, NULL };
-static const FieldPart *I021_V2_2_080_PARTS[] = {
+static const FieldPart * const I021_V2_2_080_PARTS[] = {
&I021_V2_2_080_VALUE,
NULL
};
@@ -23238,7 +23161,7 @@ static int hf_021_V2_2_090_GVA;
static const FieldPart I021_V2_2_090_GVA = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_2_090_GVA, NULL };
static int hf_021_V2_2_090_PIC;
static const FieldPart I021_V2_2_090_PIC = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_2_090_PIC, NULL };
-static const FieldPart *I021_V2_2_090_PARTS[] = {
+static const FieldPart * const I021_V2_2_090_PARTS[] = {
&I021_V2_2_090_NUCRNACV,
&I021_V2_2_090_NUCPNIC,
&IXXX_FX,
@@ -23273,7 +23196,7 @@ static const value_string valstr_021_V2_2_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_2_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_110_TIS_NVB, NULL };
-static const FieldPart *I021_V2_2_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V2_2_110_TIS_PARTS[] = {
&I021_V2_2_110_TIS_NAV,
&I021_V2_2_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -23348,7 +23271,7 @@ static int hf_021_V2_2_110_TID_TOV;
static const FieldPart I021_V2_2_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_2_110_TID_TOV, NULL };
static int hf_021_V2_2_110_TID_TTR;
static const FieldPart I021_V2_2_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V2_2_110_TID_TTR, NULL };
-static const FieldPart *I021_V2_2_110_TID_PARTS[] = {
+static const FieldPart * const I021_V2_2_110_TID_PARTS[] = {
&I021_V2_2_110_TID_TCA,
&I021_V2_2_110_TID_NC,
&I021_V2_2_110_TID_TCPN,
@@ -23370,7 +23293,7 @@ static int hf_021_V2_2_130_LAT;
static const FieldPart I021_V2_2_130_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_2_130_LAT, NULL };
static int hf_021_V2_2_130_LON;
static const FieldPart I021_V2_2_130_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_2_130_LON, NULL };
-static const FieldPart *I021_V2_2_130_PARTS[] = {
+static const FieldPart * const I021_V2_2_130_PARTS[] = {
&I021_V2_2_130_LAT,
&I021_V2_2_130_LON,
NULL
@@ -23381,7 +23304,7 @@ static int hf_021_V2_2_131_LAT;
static const FieldPart I021_V2_2_131_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_2_131_LAT, NULL };
static int hf_021_V2_2_131_LON;
static const FieldPart I021_V2_2_131_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_2_131_LON, NULL };
-static const FieldPart *I021_V2_2_131_PARTS[] = {
+static const FieldPart * const I021_V2_2_131_PARTS[] = {
&I021_V2_2_131_LAT,
&I021_V2_2_131_LON,
NULL
@@ -23390,7 +23313,7 @@ static const AsterixField I021_V2_2_131 = { FIXED, 8, 0, 0, &hf_021_V2_2_131, I0
static int hf_021_V2_2_132;
static int hf_021_V2_2_132_VALUE;
static const FieldPart I021_V2_2_132_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_021_V2_2_132_VALUE, NULL };
-static const FieldPart *I021_V2_2_132_PARTS[] = {
+static const FieldPart * const I021_V2_2_132_PARTS[] = {
&I021_V2_2_132_VALUE,
NULL
};
@@ -23398,7 +23321,7 @@ static const AsterixField I021_V2_2_132 = { FIXED, 1, 0, 0, &hf_021_V2_2_132, I0
static int hf_021_V2_2_140;
static int hf_021_V2_2_140_VALUE;
static const FieldPart I021_V2_2_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V2_2_140_VALUE, NULL };
-static const FieldPart *I021_V2_2_140_PARTS[] = {
+static const FieldPart * const I021_V2_2_140_PARTS[] = {
&I021_V2_2_140_VALUE,
NULL
};
@@ -23406,7 +23329,7 @@ static const AsterixField I021_V2_2_140 = { FIXED, 2, 0, 0, &hf_021_V2_2_140, I0
static int hf_021_V2_2_145;
static int hf_021_V2_2_145_VALUE;
static const FieldPart I021_V2_2_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_2_145_VALUE, NULL };
-static const FieldPart *I021_V2_2_145_PARTS[] = {
+static const FieldPart * const I021_V2_2_145_PARTS[] = {
&I021_V2_2_145_VALUE,
NULL
};
@@ -23430,7 +23353,7 @@ static const value_string valstr_021_V2_2_146_S[] = {
static const FieldPart I021_V2_2_146_S = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_2_146_S, NULL };
static int hf_021_V2_2_146_ALT;
static const FieldPart I021_V2_2_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_2_146_ALT, NULL };
-static const FieldPart *I021_V2_2_146_PARTS[] = {
+static const FieldPart * const I021_V2_2_146_PARTS[] = {
&I021_V2_2_146_SAS,
&I021_V2_2_146_S,
&I021_V2_2_146_ALT,
@@ -23461,7 +23384,7 @@ static const value_string valstr_021_V2_2_148_AM[] = {
static const FieldPart I021_V2_2_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_148_AM, NULL };
static int hf_021_V2_2_148_ALT;
static const FieldPart I021_V2_2_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_2_148_ALT, NULL };
-static const FieldPart *I021_V2_2_148_PARTS[] = {
+static const FieldPart * const I021_V2_2_148_PARTS[] = {
&I021_V2_2_148_MV,
&I021_V2_2_148_AH,
&I021_V2_2_148_AM,
@@ -23479,7 +23402,7 @@ static const value_string valstr_021_V2_2_150_IM[] = {
static const FieldPart I021_V2_2_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_150_IM, NULL };
static int hf_021_V2_2_150_AS;
static const FieldPart I021_V2_2_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V2_2_150_AS, NULL };
-static const FieldPart *I021_V2_2_150_PARTS[] = {
+static const FieldPart * const I021_V2_2_150_PARTS[] = {
&I021_V2_2_150_IM,
&I021_V2_2_150_AS,
NULL
@@ -23495,7 +23418,7 @@ static const value_string valstr_021_V2_2_151_RE[] = {
static const FieldPart I021_V2_2_151_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_151_RE, NULL };
static int hf_021_V2_2_151_TAS;
static const FieldPart I021_V2_2_151_TAS = { 15, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_2_151_TAS, NULL };
-static const FieldPart *I021_V2_2_151_PARTS[] = {
+static const FieldPart * const I021_V2_2_151_PARTS[] = {
&I021_V2_2_151_RE,
&I021_V2_2_151_TAS,
NULL
@@ -23504,7 +23427,7 @@ static const AsterixField I021_V2_2_151 = { FIXED, 2, 0, 0, &hf_021_V2_2_151, I0
static int hf_021_V2_2_152;
static int hf_021_V2_2_152_VALUE;
static const FieldPart I021_V2_2_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_2_152_VALUE, NULL };
-static const FieldPart *I021_V2_2_152_PARTS[] = {
+static const FieldPart * const I021_V2_2_152_PARTS[] = {
&I021_V2_2_152_VALUE,
NULL
};
@@ -23519,7 +23442,7 @@ static const value_string valstr_021_V2_2_155_RE[] = {
static const FieldPart I021_V2_2_155_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_155_RE, NULL };
static int hf_021_V2_2_155_BVR;
static const FieldPart I021_V2_2_155_BVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_2_155_BVR, NULL };
-static const FieldPart *I021_V2_2_155_PARTS[] = {
+static const FieldPart * const I021_V2_2_155_PARTS[] = {
&I021_V2_2_155_RE,
&I021_V2_2_155_BVR,
NULL
@@ -23535,7 +23458,7 @@ static const value_string valstr_021_V2_2_157_RE[] = {
static const FieldPart I021_V2_2_157_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_157_RE, NULL };
static int hf_021_V2_2_157_GVR;
static const FieldPart I021_V2_2_157_GVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_2_157_GVR, NULL };
-static const FieldPart *I021_V2_2_157_PARTS[] = {
+static const FieldPart * const I021_V2_2_157_PARTS[] = {
&I021_V2_2_157_RE,
&I021_V2_2_157_GVR,
NULL
@@ -23553,7 +23476,7 @@ static int hf_021_V2_2_160_GS;
static const FieldPart I021_V2_2_160_GS = { 15, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_021_V2_2_160_GS, NULL };
static int hf_021_V2_2_160_TA;
static const FieldPart I021_V2_2_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_2_160_TA, NULL };
-static const FieldPart *I021_V2_2_160_PARTS[] = {
+static const FieldPart * const I021_V2_2_160_PARTS[] = {
&I021_V2_2_160_RE,
&I021_V2_2_160_GS,
&I021_V2_2_160_TA,
@@ -23563,7 +23486,7 @@ static const AsterixField I021_V2_2_160 = { FIXED, 4, 0, 0, &hf_021_V2_2_160, I0
static int hf_021_V2_2_161;
static int hf_021_V2_2_161_TRNUM;
static const FieldPart I021_V2_2_161_TRNUM = { 12, 1.0, FIELD_PART_HEX, &hf_021_V2_2_161_TRNUM, NULL };
-static const FieldPart *I021_V2_2_161_PARTS[] = {
+static const FieldPart * const I021_V2_2_161_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_2_161_TRNUM,
NULL
@@ -23572,7 +23495,7 @@ static const AsterixField I021_V2_2_161 = { FIXED, 2, 0, 0, &hf_021_V2_2_161, I0
static int hf_021_V2_2_165;
static int hf_021_V2_2_165_TAR;
static const FieldPart I021_V2_2_165_TAR = { 10, 0.03125, FIELD_PART_FLOAT, &hf_021_V2_2_165_TAR, NULL };
-static const FieldPart *I021_V2_2_165_PARTS[] = {
+static const FieldPart * const I021_V2_2_165_PARTS[] = {
&IXXX_6bit_spare,
&I021_V2_2_165_TAR,
NULL
@@ -23581,7 +23504,7 @@ static const AsterixField I021_V2_2_165 = { FIXED, 2, 0, 0, &hf_021_V2_2_165, I0
static int hf_021_V2_2_170;
static int hf_021_V2_2_170_VALUE;
static const FieldPart I021_V2_2_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V2_2_170_VALUE, NULL };
-static const FieldPart *I021_V2_2_170_PARTS[] = {
+static const FieldPart * const I021_V2_2_170_PARTS[] = {
&I021_V2_2_170_VALUE,
NULL
};
@@ -23629,7 +23552,7 @@ static const value_string valstr_021_V2_2_200_SS[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_2_200_SS = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_2_200_SS, NULL };
-static const FieldPart *I021_V2_2_200_PARTS[] = {
+static const FieldPart * const I021_V2_2_200_PARTS[] = {
&I021_V2_2_200_ICF,
&I021_V2_2_200_LNAV,
&I021_V2_2_200_ME,
@@ -23667,7 +23590,7 @@ static const value_string valstr_021_V2_2_210_LTT[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_2_210_LTT = { 3, 1.0, FIELD_PART_UINT, &hf_021_V2_2_210_LTT, NULL };
-static const FieldPart *I021_V2_2_210_PARTS[] = {
+static const FieldPart * const I021_V2_2_210_PARTS[] = {
&IXXX_1bit_spare,
&I021_V2_2_210_VNS,
&I021_V2_2_210_VN,
@@ -23679,7 +23602,7 @@ static int hf_021_V2_2_220;
static int hf_021_V2_2_220_WS;
static int hf_021_V2_2_220_WS_VALUE;
static const FieldPart I021_V2_2_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_2_220_WS_VALUE, NULL };
-static const FieldPart *I021_V2_2_220_WS_PARTS[] = {
+static const FieldPart * const I021_V2_2_220_WS_PARTS[] = {
&I021_V2_2_220_WS_VALUE,
NULL
};
@@ -23687,7 +23610,7 @@ static const AsterixField I021_V2_2_220_WS = { FIXED, 2, 0, 0, &hf_021_V2_2_220_
static int hf_021_V2_2_220_WD;
static int hf_021_V2_2_220_WD_VALUE;
static const FieldPart I021_V2_2_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_2_220_WD_VALUE, NULL };
-static const FieldPart *I021_V2_2_220_WD_PARTS[] = {
+static const FieldPart * const I021_V2_2_220_WD_PARTS[] = {
&I021_V2_2_220_WD_VALUE,
NULL
};
@@ -23695,7 +23618,7 @@ static const AsterixField I021_V2_2_220_WD = { FIXED, 2, 0, 0, &hf_021_V2_2_220_
static int hf_021_V2_2_220_TMP;
static int hf_021_V2_2_220_TMP_VALUE;
static const FieldPart I021_V2_2_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_2_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V2_2_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V2_2_220_TMP_PARTS[] = {
&I021_V2_2_220_TMP_VALUE,
NULL
};
@@ -23703,7 +23626,7 @@ static const AsterixField I021_V2_2_220_TMP = { FIXED, 2, 0, 0, &hf_021_V2_2_220
static int hf_021_V2_2_220_TRB;
static int hf_021_V2_2_220_TRB_VALUE;
static const FieldPart I021_V2_2_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_2_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V2_2_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V2_2_220_TRB_PARTS[] = {
&I021_V2_2_220_TRB_VALUE,
NULL
};
@@ -23712,7 +23635,7 @@ static const AsterixField I021_V2_2_220 = { COMPOUND, 0, 0, 0, &hf_021_V2_2_220,
static int hf_021_V2_2_230;
static int hf_021_V2_2_230_VALUE;
static const FieldPart I021_V2_2_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V2_2_230_VALUE, NULL };
-static const FieldPart *I021_V2_2_230_PARTS[] = {
+static const FieldPart * const I021_V2_2_230_PARTS[] = {
&I021_V2_2_230_VALUE,
NULL
};
@@ -23720,7 +23643,7 @@ static const AsterixField I021_V2_2_230 = { FIXED, 2, 0, 0, &hf_021_V2_2_230, I0
static int hf_021_V2_2_250;
static int hf_021_V2_2_250_VALUE;
static const FieldPart I021_V2_2_250_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_021_V2_2_250_VALUE, NULL };
-static const FieldPart *I021_V2_2_250_PARTS[] = {
+static const FieldPart * const I021_V2_2_250_PARTS[] = {
&I021_V2_2_250_VALUE,
NULL
};
@@ -23742,7 +23665,7 @@ static int hf_021_V2_2_260_TTI;
static const FieldPart I021_V2_2_260_TTI = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_2_260_TTI, NULL };
static int hf_021_V2_2_260_TID;
static const FieldPart I021_V2_2_260_TID = { 26, 1.0, FIELD_PART_HEX, &hf_021_V2_2_260_TID, NULL };
-static const FieldPart *I021_V2_2_260_PARTS[] = {
+static const FieldPart * const I021_V2_2_260_PARTS[] = {
&I021_V2_2_260_TYP,
&I021_V2_2_260_STYP,
&I021_V2_2_260_ARA,
@@ -23792,7 +23715,7 @@ static const value_string valstr_021_V2_2_271_IDENT[] = {
static const FieldPart I021_V2_2_271_IDENT = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_2_271_IDENT, NULL };
static int hf_021_V2_2_271_LW;
static const FieldPart I021_V2_2_271_LW = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_2_271_LW, NULL };
-static const FieldPart *I021_V2_2_271_PARTS[] = {
+static const FieldPart * const I021_V2_2_271_PARTS[] = {
&IXXX_2bit_spare,
&I021_V2_2_271_POA,
&I021_V2_2_271_CDTIS,
@@ -23810,7 +23733,7 @@ static int hf_021_V2_2_295;
static int hf_021_V2_2_295_AOS;
static int hf_021_V2_2_295_AOS_VALUE;
static const FieldPart I021_V2_2_295_AOS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_AOS_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_AOS_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_AOS_PARTS[] = {
&I021_V2_2_295_AOS_VALUE,
NULL
};
@@ -23818,7 +23741,7 @@ static const AsterixField I021_V2_2_295_AOS = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_TRD;
static int hf_021_V2_2_295_TRD_VALUE;
static const FieldPart I021_V2_2_295_TRD_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_TRD_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_TRD_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_TRD_PARTS[] = {
&I021_V2_2_295_TRD_VALUE,
NULL
};
@@ -23826,7 +23749,7 @@ static const AsterixField I021_V2_2_295_TRD = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_M3A;
static int hf_021_V2_2_295_M3A_VALUE;
static const FieldPart I021_V2_2_295_M3A_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_M3A_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_M3A_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_M3A_PARTS[] = {
&I021_V2_2_295_M3A_VALUE,
NULL
};
@@ -23834,7 +23757,7 @@ static const AsterixField I021_V2_2_295_M3A = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_QI;
static int hf_021_V2_2_295_QI_VALUE;
static const FieldPart I021_V2_2_295_QI_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_QI_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_QI_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_QI_PARTS[] = {
&I021_V2_2_295_QI_VALUE,
NULL
};
@@ -23842,7 +23765,7 @@ static const AsterixField I021_V2_2_295_QI = { FIXED, 1, 0, 0, &hf_021_V2_2_295_
static int hf_021_V2_2_295_TI1;
static int hf_021_V2_2_295_TI1_VALUE;
static const FieldPart I021_V2_2_295_TI1_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_TI1_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_TI1_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_TI1_PARTS[] = {
&I021_V2_2_295_TI1_VALUE,
NULL
};
@@ -23850,7 +23773,7 @@ static const AsterixField I021_V2_2_295_TI1 = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_MAM;
static int hf_021_V2_2_295_MAM_VALUE;
static const FieldPart I021_V2_2_295_MAM_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_MAM_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_MAM_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_MAM_PARTS[] = {
&I021_V2_2_295_MAM_VALUE,
NULL
};
@@ -23858,7 +23781,7 @@ static const AsterixField I021_V2_2_295_MAM = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_GH;
static int hf_021_V2_2_295_GH_VALUE;
static const FieldPart I021_V2_2_295_GH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_GH_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_GH_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_GH_PARTS[] = {
&I021_V2_2_295_GH_VALUE,
NULL
};
@@ -23866,7 +23789,7 @@ static const AsterixField I021_V2_2_295_GH = { FIXED, 1, 0, 0, &hf_021_V2_2_295_
static int hf_021_V2_2_295_FL;
static int hf_021_V2_2_295_FL_VALUE;
static const FieldPart I021_V2_2_295_FL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_FL_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_FL_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_FL_PARTS[] = {
&I021_V2_2_295_FL_VALUE,
NULL
};
@@ -23874,7 +23797,7 @@ static const AsterixField I021_V2_2_295_FL = { FIXED, 1, 0, 0, &hf_021_V2_2_295_
static int hf_021_V2_2_295_ISA;
static int hf_021_V2_2_295_ISA_VALUE;
static const FieldPart I021_V2_2_295_ISA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_ISA_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_ISA_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_ISA_PARTS[] = {
&I021_V2_2_295_ISA_VALUE,
NULL
};
@@ -23882,7 +23805,7 @@ static const AsterixField I021_V2_2_295_ISA = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_FSA;
static int hf_021_V2_2_295_FSA_VALUE;
static const FieldPart I021_V2_2_295_FSA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_FSA_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_FSA_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_FSA_PARTS[] = {
&I021_V2_2_295_FSA_VALUE,
NULL
};
@@ -23890,7 +23813,7 @@ static const AsterixField I021_V2_2_295_FSA = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_AS;
static int hf_021_V2_2_295_AS_VALUE;
static const FieldPart I021_V2_2_295_AS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_AS_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_AS_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_AS_PARTS[] = {
&I021_V2_2_295_AS_VALUE,
NULL
};
@@ -23898,7 +23821,7 @@ static const AsterixField I021_V2_2_295_AS = { FIXED, 1, 0, 0, &hf_021_V2_2_295_
static int hf_021_V2_2_295_TAS;
static int hf_021_V2_2_295_TAS_VALUE;
static const FieldPart I021_V2_2_295_TAS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_TAS_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_TAS_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_TAS_PARTS[] = {
&I021_V2_2_295_TAS_VALUE,
NULL
};
@@ -23906,7 +23829,7 @@ static const AsterixField I021_V2_2_295_TAS = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_MH;
static int hf_021_V2_2_295_MH_VALUE;
static const FieldPart I021_V2_2_295_MH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_MH_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_MH_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_MH_PARTS[] = {
&I021_V2_2_295_MH_VALUE,
NULL
};
@@ -23914,7 +23837,7 @@ static const AsterixField I021_V2_2_295_MH = { FIXED, 1, 0, 0, &hf_021_V2_2_295_
static int hf_021_V2_2_295_BVR;
static int hf_021_V2_2_295_BVR_VALUE;
static const FieldPart I021_V2_2_295_BVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_BVR_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_BVR_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_BVR_PARTS[] = {
&I021_V2_2_295_BVR_VALUE,
NULL
};
@@ -23922,7 +23845,7 @@ static const AsterixField I021_V2_2_295_BVR = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_GVR;
static int hf_021_V2_2_295_GVR_VALUE;
static const FieldPart I021_V2_2_295_GVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_GVR_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_GVR_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_GVR_PARTS[] = {
&I021_V2_2_295_GVR_VALUE,
NULL
};
@@ -23930,7 +23853,7 @@ static const AsterixField I021_V2_2_295_GVR = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_GV;
static int hf_021_V2_2_295_GV_VALUE;
static const FieldPart I021_V2_2_295_GV_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_GV_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_GV_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_GV_PARTS[] = {
&I021_V2_2_295_GV_VALUE,
NULL
};
@@ -23938,7 +23861,7 @@ static const AsterixField I021_V2_2_295_GV = { FIXED, 1, 0, 0, &hf_021_V2_2_295_
static int hf_021_V2_2_295_TAR;
static int hf_021_V2_2_295_TAR_VALUE;
static const FieldPart I021_V2_2_295_TAR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_TAR_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_TAR_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_TAR_PARTS[] = {
&I021_V2_2_295_TAR_VALUE,
NULL
};
@@ -23946,7 +23869,7 @@ static const AsterixField I021_V2_2_295_TAR = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_TI2;
static int hf_021_V2_2_295_TI2_VALUE;
static const FieldPart I021_V2_2_295_TI2_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_TI2_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_TI2_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_TI2_PARTS[] = {
&I021_V2_2_295_TI2_VALUE,
NULL
};
@@ -23954,7 +23877,7 @@ static const AsterixField I021_V2_2_295_TI2 = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_TS;
static int hf_021_V2_2_295_TS_VALUE;
static const FieldPart I021_V2_2_295_TS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_TS_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_TS_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_TS_PARTS[] = {
&I021_V2_2_295_TS_VALUE,
NULL
};
@@ -23962,7 +23885,7 @@ static const AsterixField I021_V2_2_295_TS = { FIXED, 1, 0, 0, &hf_021_V2_2_295_
static int hf_021_V2_2_295_MET;
static int hf_021_V2_2_295_MET_VALUE;
static const FieldPart I021_V2_2_295_MET_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_MET_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_MET_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_MET_PARTS[] = {
&I021_V2_2_295_MET_VALUE,
NULL
};
@@ -23970,7 +23893,7 @@ static const AsterixField I021_V2_2_295_MET = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_ROA;
static int hf_021_V2_2_295_ROA_VALUE;
static const FieldPart I021_V2_2_295_ROA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_ROA_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_ROA_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_ROA_PARTS[] = {
&I021_V2_2_295_ROA_VALUE,
NULL
};
@@ -23978,7 +23901,7 @@ static const AsterixField I021_V2_2_295_ROA = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_ARA;
static int hf_021_V2_2_295_ARA_VALUE;
static const FieldPart I021_V2_2_295_ARA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_ARA_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_ARA_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_ARA_PARTS[] = {
&I021_V2_2_295_ARA_VALUE,
NULL
};
@@ -23986,7 +23909,7 @@ static const AsterixField I021_V2_2_295_ARA = { FIXED, 1, 0, 0, &hf_021_V2_2_295
static int hf_021_V2_2_295_SCC;
static int hf_021_V2_2_295_SCC_VALUE;
static const FieldPart I021_V2_2_295_SCC_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_2_295_SCC_VALUE, NULL };
-static const FieldPart *I021_V2_2_295_SCC_PARTS[] = {
+static const FieldPart * const I021_V2_2_295_SCC_PARTS[] = {
&I021_V2_2_295_SCC_VALUE,
NULL
};
@@ -23995,7 +23918,7 @@ static const AsterixField I021_V2_2_295 = { COMPOUND, 0, 0, 0, &hf_021_V2_2_295,
static int hf_021_V2_2_400;
static int hf_021_V2_2_400_VALUE;
static const FieldPart I021_V2_2_400_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_2_400_VALUE, NULL };
-static const FieldPart *I021_V2_2_400_PARTS[] = {
+static const FieldPart * const I021_V2_2_400_PARTS[] = {
&I021_V2_2_400_VALUE,
NULL
};
@@ -24005,8 +23928,7 @@ static const AsterixField I021_V2_2_RE = { EXP, 0, 0, 1, &hf_021_V2_2_RE, NULL,
static int hf_021_V2_2_SP;
static const AsterixField I021_V2_2_SP = { EXP, 0, 0, 1, &hf_021_V2_2_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V2_2_uap[] = {
+static const AsterixField * const I021_V2_2_uap[] = {
&I021_V2_2_010,
&I021_V2_2_040,
&I021_V2_2_161,
@@ -24058,11 +23980,10 @@ static const AsterixField *I021_V2_2_uap[] = {
&I021_V2_2_SP,
NULL
};
-static const AsterixField **I021_V2_2[] = {
+static const AsterixField * const * const I021_V2_2[] = {
I021_V2_2_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 2.3 */
static int hf_021_V2_3_008;
@@ -24117,7 +24038,7 @@ static const value_string valstr_021_V2_3_008_SA[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_3_008_SA = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_008_SA, NULL };
-static const FieldPart *I021_V2_3_008_PARTS[] = {
+static const FieldPart * const I021_V2_3_008_PARTS[] = {
&I021_V2_3_008_RA,
&I021_V2_3_008_TC,
&I021_V2_3_008_TS,
@@ -24133,7 +24054,7 @@ static int hf_021_V2_3_010_SAC;
static const FieldPart I021_V2_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_3_010_SAC, NULL };
static int hf_021_V2_3_010_SIC;
static const FieldPart I021_V2_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_3_010_SIC, NULL };
-static const FieldPart *I021_V2_3_010_PARTS[] = {
+static const FieldPart * const I021_V2_3_010_PARTS[] = {
&I021_V2_3_010_SAC,
&I021_V2_3_010_SIC,
NULL
@@ -24142,7 +24063,7 @@ static const AsterixField I021_V2_3_010 = { FIXED, 2, 0, 0, &hf_021_V2_3_010, I0
static int hf_021_V2_3_015;
static int hf_021_V2_3_015_VALUE;
static const FieldPart I021_V2_3_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_3_015_VALUE, NULL };
-static const FieldPart *I021_V2_3_015_PARTS[] = {
+static const FieldPart * const I021_V2_3_015_PARTS[] = {
&I021_V2_3_015_VALUE,
NULL
};
@@ -24150,7 +24071,7 @@ static const AsterixField I021_V2_3_015 = { FIXED, 1, 0, 0, &hf_021_V2_3_015, I0
static int hf_021_V2_3_016;
static int hf_021_V2_3_016_VALUE;
static const FieldPart I021_V2_3_016_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_021_V2_3_016_VALUE, NULL };
-static const FieldPart *I021_V2_3_016_PARTS[] = {
+static const FieldPart * const I021_V2_3_016_PARTS[] = {
&I021_V2_3_016_VALUE,
NULL
};
@@ -24186,7 +24107,7 @@ static const value_string valstr_021_V2_3_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_3_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_3_020_VALUE, NULL };
-static const FieldPart *I021_V2_3_020_PARTS[] = {
+static const FieldPart * const I021_V2_3_020_PARTS[] = {
&I021_V2_3_020_VALUE,
NULL
};
@@ -24314,7 +24235,7 @@ static const value_string valstr_021_V2_3_040_RCF[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_3_040_RCF = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_040_RCF, NULL };
-static const FieldPart *I021_V2_3_040_PARTS[] = {
+static const FieldPart * const I021_V2_3_040_PARTS[] = {
&I021_V2_3_040_ATP,
&I021_V2_3_040_ARC,
&I021_V2_3_040_RC,
@@ -24341,7 +24262,7 @@ static const AsterixField I021_V2_3_040 = { FX, 1, 0, 0, &hf_021_V2_3_040, I021_
static int hf_021_V2_3_070;
static int hf_021_V2_3_070_MODE3A;
static const FieldPart I021_V2_3_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_021_V2_3_070_MODE3A, NULL };
-static const FieldPart *I021_V2_3_070_PARTS[] = {
+static const FieldPart * const I021_V2_3_070_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_3_070_MODE3A,
NULL
@@ -24350,7 +24271,7 @@ static const AsterixField I021_V2_3_070 = { FIXED, 2, 0, 0, &hf_021_V2_3_070, I0
static int hf_021_V2_3_071;
static int hf_021_V2_3_071_VALUE;
static const FieldPart I021_V2_3_071_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_3_071_VALUE, NULL };
-static const FieldPart *I021_V2_3_071_PARTS[] = {
+static const FieldPart * const I021_V2_3_071_PARTS[] = {
&I021_V2_3_071_VALUE,
NULL
};
@@ -24358,7 +24279,7 @@ static const AsterixField I021_V2_3_071 = { FIXED, 3, 0, 0, &hf_021_V2_3_071, I0
static int hf_021_V2_3_072;
static int hf_021_V2_3_072_VALUE;
static const FieldPart I021_V2_3_072_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_3_072_VALUE, NULL };
-static const FieldPart *I021_V2_3_072_PARTS[] = {
+static const FieldPart * const I021_V2_3_072_PARTS[] = {
&I021_V2_3_072_VALUE,
NULL
};
@@ -24366,7 +24287,7 @@ static const AsterixField I021_V2_3_072 = { FIXED, 3, 0, 0, &hf_021_V2_3_072, I0
static int hf_021_V2_3_073;
static int hf_021_V2_3_073_VALUE;
static const FieldPart I021_V2_3_073_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_3_073_VALUE, NULL };
-static const FieldPart *I021_V2_3_073_PARTS[] = {
+static const FieldPart * const I021_V2_3_073_PARTS[] = {
&I021_V2_3_073_VALUE,
NULL
};
@@ -24383,7 +24304,7 @@ static const value_string valstr_021_V2_3_074_FSI[] = {
static const FieldPart I021_V2_3_074_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_3_074_FSI, NULL };
static int hf_021_V2_3_074_TOMRP;
static const FieldPart I021_V2_3_074_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_3_074_TOMRP, NULL };
-static const FieldPart *I021_V2_3_074_PARTS[] = {
+static const FieldPart * const I021_V2_3_074_PARTS[] = {
&I021_V2_3_074_FSI,
&I021_V2_3_074_TOMRP,
NULL
@@ -24392,7 +24313,7 @@ static const AsterixField I021_V2_3_074 = { FIXED, 4, 0, 0, &hf_021_V2_3_074, I0
static int hf_021_V2_3_075;
static int hf_021_V2_3_075_VALUE;
static const FieldPart I021_V2_3_075_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_3_075_VALUE, NULL };
-static const FieldPart *I021_V2_3_075_PARTS[] = {
+static const FieldPart * const I021_V2_3_075_PARTS[] = {
&I021_V2_3_075_VALUE,
NULL
};
@@ -24409,7 +24330,7 @@ static const value_string valstr_021_V2_3_076_FSI[] = {
static const FieldPart I021_V2_3_076_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_3_076_FSI, NULL };
static int hf_021_V2_3_076_TOMRP;
static const FieldPart I021_V2_3_076_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_3_076_TOMRP, NULL };
-static const FieldPart *I021_V2_3_076_PARTS[] = {
+static const FieldPart * const I021_V2_3_076_PARTS[] = {
&I021_V2_3_076_FSI,
&I021_V2_3_076_TOMRP,
NULL
@@ -24418,7 +24339,7 @@ static const AsterixField I021_V2_3_076 = { FIXED, 4, 0, 0, &hf_021_V2_3_076, I0
static int hf_021_V2_3_077;
static int hf_021_V2_3_077_VALUE;
static const FieldPart I021_V2_3_077_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_3_077_VALUE, NULL };
-static const FieldPart *I021_V2_3_077_PARTS[] = {
+static const FieldPart * const I021_V2_3_077_PARTS[] = {
&I021_V2_3_077_VALUE,
NULL
};
@@ -24426,7 +24347,7 @@ static const AsterixField I021_V2_3_077 = { FIXED, 3, 0, 0, &hf_021_V2_3_077, I0
static int hf_021_V2_3_080;
static int hf_021_V2_3_080_VALUE;
static const FieldPart I021_V2_3_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V2_3_080_VALUE, NULL };
-static const FieldPart *I021_V2_3_080_PARTS[] = {
+static const FieldPart * const I021_V2_3_080_PARTS[] = {
&I021_V2_3_080_VALUE,
NULL
};
@@ -24455,7 +24376,7 @@ static int hf_021_V2_3_090_GVA;
static const FieldPart I021_V2_3_090_GVA = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_3_090_GVA, NULL };
static int hf_021_V2_3_090_PIC;
static const FieldPart I021_V2_3_090_PIC = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_3_090_PIC, NULL };
-static const FieldPart *I021_V2_3_090_PARTS[] = {
+static const FieldPart * const I021_V2_3_090_PARTS[] = {
&I021_V2_3_090_NUCRNACV,
&I021_V2_3_090_NUCPNIC,
&IXXX_FX,
@@ -24490,7 +24411,7 @@ static const value_string valstr_021_V2_3_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_3_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_110_TIS_NVB, NULL };
-static const FieldPart *I021_V2_3_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V2_3_110_TIS_PARTS[] = {
&I021_V2_3_110_TIS_NAV,
&I021_V2_3_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -24565,7 +24486,7 @@ static int hf_021_V2_3_110_TID_TOV;
static const FieldPart I021_V2_3_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_3_110_TID_TOV, NULL };
static int hf_021_V2_3_110_TID_TTR;
static const FieldPart I021_V2_3_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V2_3_110_TID_TTR, NULL };
-static const FieldPart *I021_V2_3_110_TID_PARTS[] = {
+static const FieldPart * const I021_V2_3_110_TID_PARTS[] = {
&I021_V2_3_110_TID_TCA,
&I021_V2_3_110_TID_NC,
&I021_V2_3_110_TID_TCPN,
@@ -24587,7 +24508,7 @@ static int hf_021_V2_3_130_LAT;
static const FieldPart I021_V2_3_130_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_3_130_LAT, NULL };
static int hf_021_V2_3_130_LON;
static const FieldPart I021_V2_3_130_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_3_130_LON, NULL };
-static const FieldPart *I021_V2_3_130_PARTS[] = {
+static const FieldPart * const I021_V2_3_130_PARTS[] = {
&I021_V2_3_130_LAT,
&I021_V2_3_130_LON,
NULL
@@ -24598,7 +24519,7 @@ static int hf_021_V2_3_131_LAT;
static const FieldPart I021_V2_3_131_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_3_131_LAT, NULL };
static int hf_021_V2_3_131_LON;
static const FieldPart I021_V2_3_131_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_3_131_LON, NULL };
-static const FieldPart *I021_V2_3_131_PARTS[] = {
+static const FieldPart * const I021_V2_3_131_PARTS[] = {
&I021_V2_3_131_LAT,
&I021_V2_3_131_LON,
NULL
@@ -24607,7 +24528,7 @@ static const AsterixField I021_V2_3_131 = { FIXED, 8, 0, 0, &hf_021_V2_3_131, I0
static int hf_021_V2_3_132;
static int hf_021_V2_3_132_VALUE;
static const FieldPart I021_V2_3_132_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_021_V2_3_132_VALUE, NULL };
-static const FieldPart *I021_V2_3_132_PARTS[] = {
+static const FieldPart * const I021_V2_3_132_PARTS[] = {
&I021_V2_3_132_VALUE,
NULL
};
@@ -24615,7 +24536,7 @@ static const AsterixField I021_V2_3_132 = { FIXED, 1, 0, 0, &hf_021_V2_3_132, I0
static int hf_021_V2_3_140;
static int hf_021_V2_3_140_VALUE;
static const FieldPart I021_V2_3_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V2_3_140_VALUE, NULL };
-static const FieldPart *I021_V2_3_140_PARTS[] = {
+static const FieldPart * const I021_V2_3_140_PARTS[] = {
&I021_V2_3_140_VALUE,
NULL
};
@@ -24623,7 +24544,7 @@ static const AsterixField I021_V2_3_140 = { FIXED, 2, 0, 0, &hf_021_V2_3_140, I0
static int hf_021_V2_3_145;
static int hf_021_V2_3_145_VALUE;
static const FieldPart I021_V2_3_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_3_145_VALUE, NULL };
-static const FieldPart *I021_V2_3_145_PARTS[] = {
+static const FieldPart * const I021_V2_3_145_PARTS[] = {
&I021_V2_3_145_VALUE,
NULL
};
@@ -24647,7 +24568,7 @@ static const value_string valstr_021_V2_3_146_S[] = {
static const FieldPart I021_V2_3_146_S = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_3_146_S, NULL };
static int hf_021_V2_3_146_ALT;
static const FieldPart I021_V2_3_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_3_146_ALT, NULL };
-static const FieldPart *I021_V2_3_146_PARTS[] = {
+static const FieldPart * const I021_V2_3_146_PARTS[] = {
&I021_V2_3_146_SAS,
&I021_V2_3_146_S,
&I021_V2_3_146_ALT,
@@ -24678,7 +24599,7 @@ static const value_string valstr_021_V2_3_148_AM[] = {
static const FieldPart I021_V2_3_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_148_AM, NULL };
static int hf_021_V2_3_148_ALT;
static const FieldPart I021_V2_3_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_3_148_ALT, NULL };
-static const FieldPart *I021_V2_3_148_PARTS[] = {
+static const FieldPart * const I021_V2_3_148_PARTS[] = {
&I021_V2_3_148_MV,
&I021_V2_3_148_AH,
&I021_V2_3_148_AM,
@@ -24696,7 +24617,7 @@ static const value_string valstr_021_V2_3_150_IM[] = {
static const FieldPart I021_V2_3_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_150_IM, NULL };
static int hf_021_V2_3_150_AS;
static const FieldPart I021_V2_3_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V2_3_150_AS, NULL };
-static const FieldPart *I021_V2_3_150_PARTS[] = {
+static const FieldPart * const I021_V2_3_150_PARTS[] = {
&I021_V2_3_150_IM,
&I021_V2_3_150_AS,
NULL
@@ -24712,7 +24633,7 @@ static const value_string valstr_021_V2_3_151_RE[] = {
static const FieldPart I021_V2_3_151_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_151_RE, NULL };
static int hf_021_V2_3_151_TAS;
static const FieldPart I021_V2_3_151_TAS = { 15, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_3_151_TAS, NULL };
-static const FieldPart *I021_V2_3_151_PARTS[] = {
+static const FieldPart * const I021_V2_3_151_PARTS[] = {
&I021_V2_3_151_RE,
&I021_V2_3_151_TAS,
NULL
@@ -24721,7 +24642,7 @@ static const AsterixField I021_V2_3_151 = { FIXED, 2, 0, 0, &hf_021_V2_3_151, I0
static int hf_021_V2_3_152;
static int hf_021_V2_3_152_VALUE;
static const FieldPart I021_V2_3_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_3_152_VALUE, NULL };
-static const FieldPart *I021_V2_3_152_PARTS[] = {
+static const FieldPart * const I021_V2_3_152_PARTS[] = {
&I021_V2_3_152_VALUE,
NULL
};
@@ -24736,7 +24657,7 @@ static const value_string valstr_021_V2_3_155_RE[] = {
static const FieldPart I021_V2_3_155_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_155_RE, NULL };
static int hf_021_V2_3_155_BVR;
static const FieldPart I021_V2_3_155_BVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_3_155_BVR, NULL };
-static const FieldPart *I021_V2_3_155_PARTS[] = {
+static const FieldPart * const I021_V2_3_155_PARTS[] = {
&I021_V2_3_155_RE,
&I021_V2_3_155_BVR,
NULL
@@ -24752,7 +24673,7 @@ static const value_string valstr_021_V2_3_157_RE[] = {
static const FieldPart I021_V2_3_157_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_157_RE, NULL };
static int hf_021_V2_3_157_GVR;
static const FieldPart I021_V2_3_157_GVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_3_157_GVR, NULL };
-static const FieldPart *I021_V2_3_157_PARTS[] = {
+static const FieldPart * const I021_V2_3_157_PARTS[] = {
&I021_V2_3_157_RE,
&I021_V2_3_157_GVR,
NULL
@@ -24770,7 +24691,7 @@ static int hf_021_V2_3_160_GS;
static const FieldPart I021_V2_3_160_GS = { 15, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_021_V2_3_160_GS, NULL };
static int hf_021_V2_3_160_TA;
static const FieldPart I021_V2_3_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_3_160_TA, NULL };
-static const FieldPart *I021_V2_3_160_PARTS[] = {
+static const FieldPart * const I021_V2_3_160_PARTS[] = {
&I021_V2_3_160_RE,
&I021_V2_3_160_GS,
&I021_V2_3_160_TA,
@@ -24780,7 +24701,7 @@ static const AsterixField I021_V2_3_160 = { FIXED, 4, 0, 0, &hf_021_V2_3_160, I0
static int hf_021_V2_3_161;
static int hf_021_V2_3_161_TRNUM;
static const FieldPart I021_V2_3_161_TRNUM = { 12, 1.0, FIELD_PART_HEX, &hf_021_V2_3_161_TRNUM, NULL };
-static const FieldPart *I021_V2_3_161_PARTS[] = {
+static const FieldPart * const I021_V2_3_161_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_3_161_TRNUM,
NULL
@@ -24789,7 +24710,7 @@ static const AsterixField I021_V2_3_161 = { FIXED, 2, 0, 0, &hf_021_V2_3_161, I0
static int hf_021_V2_3_165;
static int hf_021_V2_3_165_TAR;
static const FieldPart I021_V2_3_165_TAR = { 10, 0.03125, FIELD_PART_FLOAT, &hf_021_V2_3_165_TAR, NULL };
-static const FieldPart *I021_V2_3_165_PARTS[] = {
+static const FieldPart * const I021_V2_3_165_PARTS[] = {
&IXXX_6bit_spare,
&I021_V2_3_165_TAR,
NULL
@@ -24798,7 +24719,7 @@ static const AsterixField I021_V2_3_165 = { FIXED, 2, 0, 0, &hf_021_V2_3_165, I0
static int hf_021_V2_3_170;
static int hf_021_V2_3_170_VALUE;
static const FieldPart I021_V2_3_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V2_3_170_VALUE, NULL };
-static const FieldPart *I021_V2_3_170_PARTS[] = {
+static const FieldPart * const I021_V2_3_170_PARTS[] = {
&I021_V2_3_170_VALUE,
NULL
};
@@ -24846,7 +24767,7 @@ static const value_string valstr_021_V2_3_200_SS[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_3_200_SS = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_3_200_SS, NULL };
-static const FieldPart *I021_V2_3_200_PARTS[] = {
+static const FieldPart * const I021_V2_3_200_PARTS[] = {
&I021_V2_3_200_ICF,
&I021_V2_3_200_LNAV,
&I021_V2_3_200_ME,
@@ -24884,7 +24805,7 @@ static const value_string valstr_021_V2_3_210_LTT[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_3_210_LTT = { 3, 1.0, FIELD_PART_UINT, &hf_021_V2_3_210_LTT, NULL };
-static const FieldPart *I021_V2_3_210_PARTS[] = {
+static const FieldPart * const I021_V2_3_210_PARTS[] = {
&IXXX_1bit_spare,
&I021_V2_3_210_VNS,
&I021_V2_3_210_VN,
@@ -24896,7 +24817,7 @@ static int hf_021_V2_3_220;
static int hf_021_V2_3_220_WS;
static int hf_021_V2_3_220_WS_VALUE;
static const FieldPart I021_V2_3_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_3_220_WS_VALUE, NULL };
-static const FieldPart *I021_V2_3_220_WS_PARTS[] = {
+static const FieldPart * const I021_V2_3_220_WS_PARTS[] = {
&I021_V2_3_220_WS_VALUE,
NULL
};
@@ -24904,7 +24825,7 @@ static const AsterixField I021_V2_3_220_WS = { FIXED, 2, 0, 0, &hf_021_V2_3_220_
static int hf_021_V2_3_220_WD;
static int hf_021_V2_3_220_WD_VALUE;
static const FieldPart I021_V2_3_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_3_220_WD_VALUE, NULL };
-static const FieldPart *I021_V2_3_220_WD_PARTS[] = {
+static const FieldPart * const I021_V2_3_220_WD_PARTS[] = {
&I021_V2_3_220_WD_VALUE,
NULL
};
@@ -24912,7 +24833,7 @@ static const AsterixField I021_V2_3_220_WD = { FIXED, 2, 0, 0, &hf_021_V2_3_220_
static int hf_021_V2_3_220_TMP;
static int hf_021_V2_3_220_TMP_VALUE;
static const FieldPart I021_V2_3_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_3_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V2_3_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V2_3_220_TMP_PARTS[] = {
&I021_V2_3_220_TMP_VALUE,
NULL
};
@@ -24920,7 +24841,7 @@ static const AsterixField I021_V2_3_220_TMP = { FIXED, 2, 0, 0, &hf_021_V2_3_220
static int hf_021_V2_3_220_TRB;
static int hf_021_V2_3_220_TRB_VALUE;
static const FieldPart I021_V2_3_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_3_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V2_3_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V2_3_220_TRB_PARTS[] = {
&I021_V2_3_220_TRB_VALUE,
NULL
};
@@ -24929,7 +24850,7 @@ static const AsterixField I021_V2_3_220 = { COMPOUND, 0, 0, 0, &hf_021_V2_3_220,
static int hf_021_V2_3_230;
static int hf_021_V2_3_230_VALUE;
static const FieldPart I021_V2_3_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V2_3_230_VALUE, NULL };
-static const FieldPart *I021_V2_3_230_PARTS[] = {
+static const FieldPart * const I021_V2_3_230_PARTS[] = {
&I021_V2_3_230_VALUE,
NULL
};
@@ -24937,7 +24858,7 @@ static const AsterixField I021_V2_3_230 = { FIXED, 2, 0, 0, &hf_021_V2_3_230, I0
static int hf_021_V2_3_250;
static int hf_021_V2_3_250_VALUE;
static const FieldPart I021_V2_3_250_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_021_V2_3_250_VALUE, NULL };
-static const FieldPart *I021_V2_3_250_PARTS[] = {
+static const FieldPart * const I021_V2_3_250_PARTS[] = {
&I021_V2_3_250_VALUE,
NULL
};
@@ -24959,7 +24880,7 @@ static int hf_021_V2_3_260_TTI;
static const FieldPart I021_V2_3_260_TTI = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_3_260_TTI, NULL };
static int hf_021_V2_3_260_TID;
static const FieldPart I021_V2_3_260_TID = { 26, 1.0, FIELD_PART_HEX, &hf_021_V2_3_260_TID, NULL };
-static const FieldPart *I021_V2_3_260_PARTS[] = {
+static const FieldPart * const I021_V2_3_260_PARTS[] = {
&I021_V2_3_260_TYP,
&I021_V2_3_260_STYP,
&I021_V2_3_260_ARA,
@@ -25009,7 +24930,7 @@ static const value_string valstr_021_V2_3_271_IDENT[] = {
static const FieldPart I021_V2_3_271_IDENT = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_3_271_IDENT, NULL };
static int hf_021_V2_3_271_LW;
static const FieldPart I021_V2_3_271_LW = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_3_271_LW, NULL };
-static const FieldPart *I021_V2_3_271_PARTS[] = {
+static const FieldPart * const I021_V2_3_271_PARTS[] = {
&IXXX_2bit_spare,
&I021_V2_3_271_POA,
&I021_V2_3_271_CDTIS,
@@ -25027,7 +24948,7 @@ static int hf_021_V2_3_295;
static int hf_021_V2_3_295_AOS;
static int hf_021_V2_3_295_AOS_VALUE;
static const FieldPart I021_V2_3_295_AOS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_AOS_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_AOS_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_AOS_PARTS[] = {
&I021_V2_3_295_AOS_VALUE,
NULL
};
@@ -25035,7 +24956,7 @@ static const AsterixField I021_V2_3_295_AOS = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_TRD;
static int hf_021_V2_3_295_TRD_VALUE;
static const FieldPart I021_V2_3_295_TRD_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_TRD_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_TRD_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_TRD_PARTS[] = {
&I021_V2_3_295_TRD_VALUE,
NULL
};
@@ -25043,7 +24964,7 @@ static const AsterixField I021_V2_3_295_TRD = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_M3A;
static int hf_021_V2_3_295_M3A_VALUE;
static const FieldPart I021_V2_3_295_M3A_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_M3A_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_M3A_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_M3A_PARTS[] = {
&I021_V2_3_295_M3A_VALUE,
NULL
};
@@ -25051,7 +24972,7 @@ static const AsterixField I021_V2_3_295_M3A = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_QI;
static int hf_021_V2_3_295_QI_VALUE;
static const FieldPart I021_V2_3_295_QI_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_QI_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_QI_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_QI_PARTS[] = {
&I021_V2_3_295_QI_VALUE,
NULL
};
@@ -25059,7 +24980,7 @@ static const AsterixField I021_V2_3_295_QI = { FIXED, 1, 0, 0, &hf_021_V2_3_295_
static int hf_021_V2_3_295_TI1;
static int hf_021_V2_3_295_TI1_VALUE;
static const FieldPart I021_V2_3_295_TI1_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_TI1_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_TI1_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_TI1_PARTS[] = {
&I021_V2_3_295_TI1_VALUE,
NULL
};
@@ -25067,7 +24988,7 @@ static const AsterixField I021_V2_3_295_TI1 = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_MAM;
static int hf_021_V2_3_295_MAM_VALUE;
static const FieldPart I021_V2_3_295_MAM_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_MAM_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_MAM_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_MAM_PARTS[] = {
&I021_V2_3_295_MAM_VALUE,
NULL
};
@@ -25075,7 +24996,7 @@ static const AsterixField I021_V2_3_295_MAM = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_GH;
static int hf_021_V2_3_295_GH_VALUE;
static const FieldPart I021_V2_3_295_GH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_GH_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_GH_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_GH_PARTS[] = {
&I021_V2_3_295_GH_VALUE,
NULL
};
@@ -25083,7 +25004,7 @@ static const AsterixField I021_V2_3_295_GH = { FIXED, 1, 0, 0, &hf_021_V2_3_295_
static int hf_021_V2_3_295_FL;
static int hf_021_V2_3_295_FL_VALUE;
static const FieldPart I021_V2_3_295_FL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_FL_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_FL_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_FL_PARTS[] = {
&I021_V2_3_295_FL_VALUE,
NULL
};
@@ -25091,7 +25012,7 @@ static const AsterixField I021_V2_3_295_FL = { FIXED, 1, 0, 0, &hf_021_V2_3_295_
static int hf_021_V2_3_295_ISA;
static int hf_021_V2_3_295_ISA_VALUE;
static const FieldPart I021_V2_3_295_ISA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_ISA_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_ISA_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_ISA_PARTS[] = {
&I021_V2_3_295_ISA_VALUE,
NULL
};
@@ -25099,7 +25020,7 @@ static const AsterixField I021_V2_3_295_ISA = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_FSA;
static int hf_021_V2_3_295_FSA_VALUE;
static const FieldPart I021_V2_3_295_FSA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_FSA_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_FSA_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_FSA_PARTS[] = {
&I021_V2_3_295_FSA_VALUE,
NULL
};
@@ -25107,7 +25028,7 @@ static const AsterixField I021_V2_3_295_FSA = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_AS;
static int hf_021_V2_3_295_AS_VALUE;
static const FieldPart I021_V2_3_295_AS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_AS_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_AS_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_AS_PARTS[] = {
&I021_V2_3_295_AS_VALUE,
NULL
};
@@ -25115,7 +25036,7 @@ static const AsterixField I021_V2_3_295_AS = { FIXED, 1, 0, 0, &hf_021_V2_3_295_
static int hf_021_V2_3_295_TAS;
static int hf_021_V2_3_295_TAS_VALUE;
static const FieldPart I021_V2_3_295_TAS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_TAS_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_TAS_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_TAS_PARTS[] = {
&I021_V2_3_295_TAS_VALUE,
NULL
};
@@ -25123,7 +25044,7 @@ static const AsterixField I021_V2_3_295_TAS = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_MH;
static int hf_021_V2_3_295_MH_VALUE;
static const FieldPart I021_V2_3_295_MH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_MH_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_MH_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_MH_PARTS[] = {
&I021_V2_3_295_MH_VALUE,
NULL
};
@@ -25131,7 +25052,7 @@ static const AsterixField I021_V2_3_295_MH = { FIXED, 1, 0, 0, &hf_021_V2_3_295_
static int hf_021_V2_3_295_BVR;
static int hf_021_V2_3_295_BVR_VALUE;
static const FieldPart I021_V2_3_295_BVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_BVR_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_BVR_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_BVR_PARTS[] = {
&I021_V2_3_295_BVR_VALUE,
NULL
};
@@ -25139,7 +25060,7 @@ static const AsterixField I021_V2_3_295_BVR = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_GVR;
static int hf_021_V2_3_295_GVR_VALUE;
static const FieldPart I021_V2_3_295_GVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_GVR_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_GVR_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_GVR_PARTS[] = {
&I021_V2_3_295_GVR_VALUE,
NULL
};
@@ -25147,7 +25068,7 @@ static const AsterixField I021_V2_3_295_GVR = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_GV;
static int hf_021_V2_3_295_GV_VALUE;
static const FieldPart I021_V2_3_295_GV_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_GV_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_GV_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_GV_PARTS[] = {
&I021_V2_3_295_GV_VALUE,
NULL
};
@@ -25155,7 +25076,7 @@ static const AsterixField I021_V2_3_295_GV = { FIXED, 1, 0, 0, &hf_021_V2_3_295_
static int hf_021_V2_3_295_TAR;
static int hf_021_V2_3_295_TAR_VALUE;
static const FieldPart I021_V2_3_295_TAR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_TAR_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_TAR_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_TAR_PARTS[] = {
&I021_V2_3_295_TAR_VALUE,
NULL
};
@@ -25163,7 +25084,7 @@ static const AsterixField I021_V2_3_295_TAR = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_TI2;
static int hf_021_V2_3_295_TI2_VALUE;
static const FieldPart I021_V2_3_295_TI2_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_TI2_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_TI2_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_TI2_PARTS[] = {
&I021_V2_3_295_TI2_VALUE,
NULL
};
@@ -25171,7 +25092,7 @@ static const AsterixField I021_V2_3_295_TI2 = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_TS;
static int hf_021_V2_3_295_TS_VALUE;
static const FieldPart I021_V2_3_295_TS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_TS_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_TS_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_TS_PARTS[] = {
&I021_V2_3_295_TS_VALUE,
NULL
};
@@ -25179,7 +25100,7 @@ static const AsterixField I021_V2_3_295_TS = { FIXED, 1, 0, 0, &hf_021_V2_3_295_
static int hf_021_V2_3_295_MET;
static int hf_021_V2_3_295_MET_VALUE;
static const FieldPart I021_V2_3_295_MET_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_MET_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_MET_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_MET_PARTS[] = {
&I021_V2_3_295_MET_VALUE,
NULL
};
@@ -25187,7 +25108,7 @@ static const AsterixField I021_V2_3_295_MET = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_ROA;
static int hf_021_V2_3_295_ROA_VALUE;
static const FieldPart I021_V2_3_295_ROA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_ROA_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_ROA_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_ROA_PARTS[] = {
&I021_V2_3_295_ROA_VALUE,
NULL
};
@@ -25195,7 +25116,7 @@ static const AsterixField I021_V2_3_295_ROA = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_ARA;
static int hf_021_V2_3_295_ARA_VALUE;
static const FieldPart I021_V2_3_295_ARA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_ARA_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_ARA_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_ARA_PARTS[] = {
&I021_V2_3_295_ARA_VALUE,
NULL
};
@@ -25203,7 +25124,7 @@ static const AsterixField I021_V2_3_295_ARA = { FIXED, 1, 0, 0, &hf_021_V2_3_295
static int hf_021_V2_3_295_SCC;
static int hf_021_V2_3_295_SCC_VALUE;
static const FieldPart I021_V2_3_295_SCC_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_3_295_SCC_VALUE, NULL };
-static const FieldPart *I021_V2_3_295_SCC_PARTS[] = {
+static const FieldPart * const I021_V2_3_295_SCC_PARTS[] = {
&I021_V2_3_295_SCC_VALUE,
NULL
};
@@ -25212,7 +25133,7 @@ static const AsterixField I021_V2_3_295 = { COMPOUND, 0, 0, 0, &hf_021_V2_3_295,
static int hf_021_V2_3_400;
static int hf_021_V2_3_400_VALUE;
static const FieldPart I021_V2_3_400_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_3_400_VALUE, NULL };
-static const FieldPart *I021_V2_3_400_PARTS[] = {
+static const FieldPart * const I021_V2_3_400_PARTS[] = {
&I021_V2_3_400_VALUE,
NULL
};
@@ -25222,8 +25143,7 @@ static const AsterixField I021_V2_3_RE = { EXP, 0, 0, 1, &hf_021_V2_3_RE, NULL,
static int hf_021_V2_3_SP;
static const AsterixField I021_V2_3_SP = { EXP, 0, 0, 1, &hf_021_V2_3_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V2_3_uap[] = {
+static const AsterixField * const I021_V2_3_uap[] = {
&I021_V2_3_010,
&I021_V2_3_040,
&I021_V2_3_161,
@@ -25275,11 +25195,10 @@ static const AsterixField *I021_V2_3_uap[] = {
&I021_V2_3_SP,
NULL
};
-static const AsterixField **I021_V2_3[] = {
+static const AsterixField * const * const I021_V2_3[] = {
I021_V2_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 2.4 */
static int hf_021_V2_4_008;
@@ -25334,7 +25253,7 @@ static const value_string valstr_021_V2_4_008_SA[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_4_008_SA = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_008_SA, NULL };
-static const FieldPart *I021_V2_4_008_PARTS[] = {
+static const FieldPart * const I021_V2_4_008_PARTS[] = {
&I021_V2_4_008_RA,
&I021_V2_4_008_TC,
&I021_V2_4_008_TS,
@@ -25350,7 +25269,7 @@ static int hf_021_V2_4_010_SAC;
static const FieldPart I021_V2_4_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_4_010_SAC, NULL };
static int hf_021_V2_4_010_SIC;
static const FieldPart I021_V2_4_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_4_010_SIC, NULL };
-static const FieldPart *I021_V2_4_010_PARTS[] = {
+static const FieldPart * const I021_V2_4_010_PARTS[] = {
&I021_V2_4_010_SAC,
&I021_V2_4_010_SIC,
NULL
@@ -25359,7 +25278,7 @@ static const AsterixField I021_V2_4_010 = { FIXED, 2, 0, 0, &hf_021_V2_4_010, I0
static int hf_021_V2_4_015;
static int hf_021_V2_4_015_VALUE;
static const FieldPart I021_V2_4_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_4_015_VALUE, NULL };
-static const FieldPart *I021_V2_4_015_PARTS[] = {
+static const FieldPart * const I021_V2_4_015_PARTS[] = {
&I021_V2_4_015_VALUE,
NULL
};
@@ -25367,7 +25286,7 @@ static const AsterixField I021_V2_4_015 = { FIXED, 1, 0, 0, &hf_021_V2_4_015, I0
static int hf_021_V2_4_016;
static int hf_021_V2_4_016_VALUE;
static const FieldPart I021_V2_4_016_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_021_V2_4_016_VALUE, NULL };
-static const FieldPart *I021_V2_4_016_PARTS[] = {
+static const FieldPart * const I021_V2_4_016_PARTS[] = {
&I021_V2_4_016_VALUE,
NULL
};
@@ -25403,7 +25322,7 @@ static const value_string valstr_021_V2_4_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_4_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_4_020_VALUE, NULL };
-static const FieldPart *I021_V2_4_020_PARTS[] = {
+static const FieldPart * const I021_V2_4_020_PARTS[] = {
&I021_V2_4_020_VALUE,
NULL
};
@@ -25531,7 +25450,7 @@ static const value_string valstr_021_V2_4_040_RCF[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_4_040_RCF = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_040_RCF, NULL };
-static const FieldPart *I021_V2_4_040_PARTS[] = {
+static const FieldPart * const I021_V2_4_040_PARTS[] = {
&I021_V2_4_040_ATP,
&I021_V2_4_040_ARC,
&I021_V2_4_040_RC,
@@ -25558,7 +25477,7 @@ static const AsterixField I021_V2_4_040 = { FX, 1, 0, 0, &hf_021_V2_4_040, I021_
static int hf_021_V2_4_070;
static int hf_021_V2_4_070_MODE3A;
static const FieldPart I021_V2_4_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_021_V2_4_070_MODE3A, NULL };
-static const FieldPart *I021_V2_4_070_PARTS[] = {
+static const FieldPart * const I021_V2_4_070_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_4_070_MODE3A,
NULL
@@ -25567,7 +25486,7 @@ static const AsterixField I021_V2_4_070 = { FIXED, 2, 0, 0, &hf_021_V2_4_070, I0
static int hf_021_V2_4_071;
static int hf_021_V2_4_071_VALUE;
static const FieldPart I021_V2_4_071_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_4_071_VALUE, NULL };
-static const FieldPart *I021_V2_4_071_PARTS[] = {
+static const FieldPart * const I021_V2_4_071_PARTS[] = {
&I021_V2_4_071_VALUE,
NULL
};
@@ -25575,7 +25494,7 @@ static const AsterixField I021_V2_4_071 = { FIXED, 3, 0, 0, &hf_021_V2_4_071, I0
static int hf_021_V2_4_072;
static int hf_021_V2_4_072_VALUE;
static const FieldPart I021_V2_4_072_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_4_072_VALUE, NULL };
-static const FieldPart *I021_V2_4_072_PARTS[] = {
+static const FieldPart * const I021_V2_4_072_PARTS[] = {
&I021_V2_4_072_VALUE,
NULL
};
@@ -25583,7 +25502,7 @@ static const AsterixField I021_V2_4_072 = { FIXED, 3, 0, 0, &hf_021_V2_4_072, I0
static int hf_021_V2_4_073;
static int hf_021_V2_4_073_VALUE;
static const FieldPart I021_V2_4_073_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_4_073_VALUE, NULL };
-static const FieldPart *I021_V2_4_073_PARTS[] = {
+static const FieldPart * const I021_V2_4_073_PARTS[] = {
&I021_V2_4_073_VALUE,
NULL
};
@@ -25600,7 +25519,7 @@ static const value_string valstr_021_V2_4_074_FSI[] = {
static const FieldPart I021_V2_4_074_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_4_074_FSI, NULL };
static int hf_021_V2_4_074_TOMRP;
static const FieldPart I021_V2_4_074_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_4_074_TOMRP, NULL };
-static const FieldPart *I021_V2_4_074_PARTS[] = {
+static const FieldPart * const I021_V2_4_074_PARTS[] = {
&I021_V2_4_074_FSI,
&I021_V2_4_074_TOMRP,
NULL
@@ -25609,7 +25528,7 @@ static const AsterixField I021_V2_4_074 = { FIXED, 4, 0, 0, &hf_021_V2_4_074, I0
static int hf_021_V2_4_075;
static int hf_021_V2_4_075_VALUE;
static const FieldPart I021_V2_4_075_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_4_075_VALUE, NULL };
-static const FieldPart *I021_V2_4_075_PARTS[] = {
+static const FieldPart * const I021_V2_4_075_PARTS[] = {
&I021_V2_4_075_VALUE,
NULL
};
@@ -25626,7 +25545,7 @@ static const value_string valstr_021_V2_4_076_FSI[] = {
static const FieldPart I021_V2_4_076_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_4_076_FSI, NULL };
static int hf_021_V2_4_076_TOMRP;
static const FieldPart I021_V2_4_076_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_4_076_TOMRP, NULL };
-static const FieldPart *I021_V2_4_076_PARTS[] = {
+static const FieldPart * const I021_V2_4_076_PARTS[] = {
&I021_V2_4_076_FSI,
&I021_V2_4_076_TOMRP,
NULL
@@ -25635,7 +25554,7 @@ static const AsterixField I021_V2_4_076 = { FIXED, 4, 0, 0, &hf_021_V2_4_076, I0
static int hf_021_V2_4_077;
static int hf_021_V2_4_077_VALUE;
static const FieldPart I021_V2_4_077_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_4_077_VALUE, NULL };
-static const FieldPart *I021_V2_4_077_PARTS[] = {
+static const FieldPart * const I021_V2_4_077_PARTS[] = {
&I021_V2_4_077_VALUE,
NULL
};
@@ -25643,7 +25562,7 @@ static const AsterixField I021_V2_4_077 = { FIXED, 3, 0, 0, &hf_021_V2_4_077, I0
static int hf_021_V2_4_080;
static int hf_021_V2_4_080_VALUE;
static const FieldPart I021_V2_4_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V2_4_080_VALUE, NULL };
-static const FieldPart *I021_V2_4_080_PARTS[] = {
+static const FieldPart * const I021_V2_4_080_PARTS[] = {
&I021_V2_4_080_VALUE,
NULL
};
@@ -25672,7 +25591,7 @@ static int hf_021_V2_4_090_GVA;
static const FieldPart I021_V2_4_090_GVA = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_4_090_GVA, NULL };
static int hf_021_V2_4_090_PIC;
static const FieldPart I021_V2_4_090_PIC = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_4_090_PIC, NULL };
-static const FieldPart *I021_V2_4_090_PARTS[] = {
+static const FieldPart * const I021_V2_4_090_PARTS[] = {
&I021_V2_4_090_NUCRNACV,
&I021_V2_4_090_NUCPNIC,
&IXXX_FX,
@@ -25707,7 +25626,7 @@ static const value_string valstr_021_V2_4_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_4_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_110_TIS_NVB, NULL };
-static const FieldPart *I021_V2_4_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V2_4_110_TIS_PARTS[] = {
&I021_V2_4_110_TIS_NAV,
&I021_V2_4_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -25782,7 +25701,7 @@ static int hf_021_V2_4_110_TID_TOV;
static const FieldPart I021_V2_4_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_4_110_TID_TOV, NULL };
static int hf_021_V2_4_110_TID_TTR;
static const FieldPart I021_V2_4_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V2_4_110_TID_TTR, NULL };
-static const FieldPart *I021_V2_4_110_TID_PARTS[] = {
+static const FieldPart * const I021_V2_4_110_TID_PARTS[] = {
&I021_V2_4_110_TID_TCA,
&I021_V2_4_110_TID_NC,
&I021_V2_4_110_TID_TCPN,
@@ -25804,7 +25723,7 @@ static int hf_021_V2_4_130_LAT;
static const FieldPart I021_V2_4_130_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_4_130_LAT, NULL };
static int hf_021_V2_4_130_LON;
static const FieldPart I021_V2_4_130_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_4_130_LON, NULL };
-static const FieldPart *I021_V2_4_130_PARTS[] = {
+static const FieldPart * const I021_V2_4_130_PARTS[] = {
&I021_V2_4_130_LAT,
&I021_V2_4_130_LON,
NULL
@@ -25815,7 +25734,7 @@ static int hf_021_V2_4_131_LAT;
static const FieldPart I021_V2_4_131_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_4_131_LAT, NULL };
static int hf_021_V2_4_131_LON;
static const FieldPart I021_V2_4_131_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_4_131_LON, NULL };
-static const FieldPart *I021_V2_4_131_PARTS[] = {
+static const FieldPart * const I021_V2_4_131_PARTS[] = {
&I021_V2_4_131_LAT,
&I021_V2_4_131_LON,
NULL
@@ -25824,7 +25743,7 @@ static const AsterixField I021_V2_4_131 = { FIXED, 8, 0, 0, &hf_021_V2_4_131, I0
static int hf_021_V2_4_132;
static int hf_021_V2_4_132_VALUE;
static const FieldPart I021_V2_4_132_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_021_V2_4_132_VALUE, NULL };
-static const FieldPart *I021_V2_4_132_PARTS[] = {
+static const FieldPart * const I021_V2_4_132_PARTS[] = {
&I021_V2_4_132_VALUE,
NULL
};
@@ -25832,7 +25751,7 @@ static const AsterixField I021_V2_4_132 = { FIXED, 1, 0, 0, &hf_021_V2_4_132, I0
static int hf_021_V2_4_140;
static int hf_021_V2_4_140_VALUE;
static const FieldPart I021_V2_4_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V2_4_140_VALUE, NULL };
-static const FieldPart *I021_V2_4_140_PARTS[] = {
+static const FieldPart * const I021_V2_4_140_PARTS[] = {
&I021_V2_4_140_VALUE,
NULL
};
@@ -25840,7 +25759,7 @@ static const AsterixField I021_V2_4_140 = { FIXED, 2, 0, 0, &hf_021_V2_4_140, I0
static int hf_021_V2_4_145;
static int hf_021_V2_4_145_VALUE;
static const FieldPart I021_V2_4_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_4_145_VALUE, NULL };
-static const FieldPart *I021_V2_4_145_PARTS[] = {
+static const FieldPart * const I021_V2_4_145_PARTS[] = {
&I021_V2_4_145_VALUE,
NULL
};
@@ -25864,7 +25783,7 @@ static const value_string valstr_021_V2_4_146_S[] = {
static const FieldPart I021_V2_4_146_S = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_4_146_S, NULL };
static int hf_021_V2_4_146_ALT;
static const FieldPart I021_V2_4_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_4_146_ALT, NULL };
-static const FieldPart *I021_V2_4_146_PARTS[] = {
+static const FieldPart * const I021_V2_4_146_PARTS[] = {
&I021_V2_4_146_SAS,
&I021_V2_4_146_S,
&I021_V2_4_146_ALT,
@@ -25895,7 +25814,7 @@ static const value_string valstr_021_V2_4_148_AM[] = {
static const FieldPart I021_V2_4_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_148_AM, NULL };
static int hf_021_V2_4_148_ALT;
static const FieldPart I021_V2_4_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_4_148_ALT, NULL };
-static const FieldPart *I021_V2_4_148_PARTS[] = {
+static const FieldPart * const I021_V2_4_148_PARTS[] = {
&I021_V2_4_148_MV,
&I021_V2_4_148_AH,
&I021_V2_4_148_AM,
@@ -25913,7 +25832,7 @@ static const value_string valstr_021_V2_4_150_IM[] = {
static const FieldPart I021_V2_4_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_150_IM, NULL };
static int hf_021_V2_4_150_AS;
static const FieldPart I021_V2_4_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V2_4_150_AS, NULL };
-static const FieldPart *I021_V2_4_150_PARTS[] = {
+static const FieldPart * const I021_V2_4_150_PARTS[] = {
&I021_V2_4_150_IM,
&I021_V2_4_150_AS,
NULL
@@ -25929,7 +25848,7 @@ static const value_string valstr_021_V2_4_151_RE[] = {
static const FieldPart I021_V2_4_151_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_151_RE, NULL };
static int hf_021_V2_4_151_TAS;
static const FieldPart I021_V2_4_151_TAS = { 15, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_4_151_TAS, NULL };
-static const FieldPart *I021_V2_4_151_PARTS[] = {
+static const FieldPart * const I021_V2_4_151_PARTS[] = {
&I021_V2_4_151_RE,
&I021_V2_4_151_TAS,
NULL
@@ -25938,7 +25857,7 @@ static const AsterixField I021_V2_4_151 = { FIXED, 2, 0, 0, &hf_021_V2_4_151, I0
static int hf_021_V2_4_152;
static int hf_021_V2_4_152_VALUE;
static const FieldPart I021_V2_4_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_4_152_VALUE, NULL };
-static const FieldPart *I021_V2_4_152_PARTS[] = {
+static const FieldPart * const I021_V2_4_152_PARTS[] = {
&I021_V2_4_152_VALUE,
NULL
};
@@ -25953,7 +25872,7 @@ static const value_string valstr_021_V2_4_155_RE[] = {
static const FieldPart I021_V2_4_155_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_155_RE, NULL };
static int hf_021_V2_4_155_BVR;
static const FieldPart I021_V2_4_155_BVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_4_155_BVR, NULL };
-static const FieldPart *I021_V2_4_155_PARTS[] = {
+static const FieldPart * const I021_V2_4_155_PARTS[] = {
&I021_V2_4_155_RE,
&I021_V2_4_155_BVR,
NULL
@@ -25969,7 +25888,7 @@ static const value_string valstr_021_V2_4_157_RE[] = {
static const FieldPart I021_V2_4_157_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_157_RE, NULL };
static int hf_021_V2_4_157_GVR;
static const FieldPart I021_V2_4_157_GVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_4_157_GVR, NULL };
-static const FieldPart *I021_V2_4_157_PARTS[] = {
+static const FieldPart * const I021_V2_4_157_PARTS[] = {
&I021_V2_4_157_RE,
&I021_V2_4_157_GVR,
NULL
@@ -25987,7 +25906,7 @@ static int hf_021_V2_4_160_GS;
static const FieldPart I021_V2_4_160_GS = { 15, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_021_V2_4_160_GS, NULL };
static int hf_021_V2_4_160_TA;
static const FieldPart I021_V2_4_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_4_160_TA, NULL };
-static const FieldPart *I021_V2_4_160_PARTS[] = {
+static const FieldPart * const I021_V2_4_160_PARTS[] = {
&I021_V2_4_160_RE,
&I021_V2_4_160_GS,
&I021_V2_4_160_TA,
@@ -25997,7 +25916,7 @@ static const AsterixField I021_V2_4_160 = { FIXED, 4, 0, 0, &hf_021_V2_4_160, I0
static int hf_021_V2_4_161;
static int hf_021_V2_4_161_TRNUM;
static const FieldPart I021_V2_4_161_TRNUM = { 12, 1.0, FIELD_PART_HEX, &hf_021_V2_4_161_TRNUM, NULL };
-static const FieldPart *I021_V2_4_161_PARTS[] = {
+static const FieldPart * const I021_V2_4_161_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_4_161_TRNUM,
NULL
@@ -26006,7 +25925,7 @@ static const AsterixField I021_V2_4_161 = { FIXED, 2, 0, 0, &hf_021_V2_4_161, I0
static int hf_021_V2_4_165;
static int hf_021_V2_4_165_TAR;
static const FieldPart I021_V2_4_165_TAR = { 10, 0.03125, FIELD_PART_FLOAT, &hf_021_V2_4_165_TAR, NULL };
-static const FieldPart *I021_V2_4_165_PARTS[] = {
+static const FieldPart * const I021_V2_4_165_PARTS[] = {
&IXXX_6bit_spare,
&I021_V2_4_165_TAR,
NULL
@@ -26015,7 +25934,7 @@ static const AsterixField I021_V2_4_165 = { FIXED, 2, 0, 0, &hf_021_V2_4_165, I0
static int hf_021_V2_4_170;
static int hf_021_V2_4_170_VALUE;
static const FieldPart I021_V2_4_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V2_4_170_VALUE, NULL };
-static const FieldPart *I021_V2_4_170_PARTS[] = {
+static const FieldPart * const I021_V2_4_170_PARTS[] = {
&I021_V2_4_170_VALUE,
NULL
};
@@ -26063,7 +25982,7 @@ static const value_string valstr_021_V2_4_200_SS[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_4_200_SS = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_4_200_SS, NULL };
-static const FieldPart *I021_V2_4_200_PARTS[] = {
+static const FieldPart * const I021_V2_4_200_PARTS[] = {
&I021_V2_4_200_ICF,
&I021_V2_4_200_LNAV,
&I021_V2_4_200_ME,
@@ -26101,7 +26020,7 @@ static const value_string valstr_021_V2_4_210_LTT[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_4_210_LTT = { 3, 1.0, FIELD_PART_UINT, &hf_021_V2_4_210_LTT, NULL };
-static const FieldPart *I021_V2_4_210_PARTS[] = {
+static const FieldPart * const I021_V2_4_210_PARTS[] = {
&IXXX_1bit_spare,
&I021_V2_4_210_VNS,
&I021_V2_4_210_VN,
@@ -26113,7 +26032,7 @@ static int hf_021_V2_4_220;
static int hf_021_V2_4_220_WS;
static int hf_021_V2_4_220_WS_VALUE;
static const FieldPart I021_V2_4_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_4_220_WS_VALUE, NULL };
-static const FieldPart *I021_V2_4_220_WS_PARTS[] = {
+static const FieldPart * const I021_V2_4_220_WS_PARTS[] = {
&I021_V2_4_220_WS_VALUE,
NULL
};
@@ -26121,7 +26040,7 @@ static const AsterixField I021_V2_4_220_WS = { FIXED, 2, 0, 0, &hf_021_V2_4_220_
static int hf_021_V2_4_220_WD;
static int hf_021_V2_4_220_WD_VALUE;
static const FieldPart I021_V2_4_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_4_220_WD_VALUE, NULL };
-static const FieldPart *I021_V2_4_220_WD_PARTS[] = {
+static const FieldPart * const I021_V2_4_220_WD_PARTS[] = {
&I021_V2_4_220_WD_VALUE,
NULL
};
@@ -26129,7 +26048,7 @@ static const AsterixField I021_V2_4_220_WD = { FIXED, 2, 0, 0, &hf_021_V2_4_220_
static int hf_021_V2_4_220_TMP;
static int hf_021_V2_4_220_TMP_VALUE;
static const FieldPart I021_V2_4_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_4_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V2_4_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V2_4_220_TMP_PARTS[] = {
&I021_V2_4_220_TMP_VALUE,
NULL
};
@@ -26137,7 +26056,7 @@ static const AsterixField I021_V2_4_220_TMP = { FIXED, 2, 0, 0, &hf_021_V2_4_220
static int hf_021_V2_4_220_TRB;
static int hf_021_V2_4_220_TRB_VALUE;
static const FieldPart I021_V2_4_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_4_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V2_4_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V2_4_220_TRB_PARTS[] = {
&I021_V2_4_220_TRB_VALUE,
NULL
};
@@ -26146,7 +26065,7 @@ static const AsterixField I021_V2_4_220 = { COMPOUND, 0, 0, 0, &hf_021_V2_4_220,
static int hf_021_V2_4_230;
static int hf_021_V2_4_230_VALUE;
static const FieldPart I021_V2_4_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V2_4_230_VALUE, NULL };
-static const FieldPart *I021_V2_4_230_PARTS[] = {
+static const FieldPart * const I021_V2_4_230_PARTS[] = {
&I021_V2_4_230_VALUE,
NULL
};
@@ -26154,7 +26073,7 @@ static const AsterixField I021_V2_4_230 = { FIXED, 2, 0, 0, &hf_021_V2_4_230, I0
static int hf_021_V2_4_250;
static int hf_021_V2_4_250_VALUE;
static const FieldPart I021_V2_4_250_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_021_V2_4_250_VALUE, NULL };
-static const FieldPart *I021_V2_4_250_PARTS[] = {
+static const FieldPart * const I021_V2_4_250_PARTS[] = {
&I021_V2_4_250_VALUE,
NULL
};
@@ -26176,7 +26095,7 @@ static int hf_021_V2_4_260_TTI;
static const FieldPart I021_V2_4_260_TTI = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_4_260_TTI, NULL };
static int hf_021_V2_4_260_TID;
static const FieldPart I021_V2_4_260_TID = { 26, 1.0, FIELD_PART_HEX, &hf_021_V2_4_260_TID, NULL };
-static const FieldPart *I021_V2_4_260_PARTS[] = {
+static const FieldPart * const I021_V2_4_260_PARTS[] = {
&I021_V2_4_260_TYP,
&I021_V2_4_260_STYP,
&I021_V2_4_260_ARA,
@@ -26226,7 +26145,7 @@ static const value_string valstr_021_V2_4_271_IDENT[] = {
static const FieldPart I021_V2_4_271_IDENT = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_4_271_IDENT, NULL };
static int hf_021_V2_4_271_LW;
static const FieldPart I021_V2_4_271_LW = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_4_271_LW, NULL };
-static const FieldPart *I021_V2_4_271_PARTS[] = {
+static const FieldPart * const I021_V2_4_271_PARTS[] = {
&IXXX_2bit_spare,
&I021_V2_4_271_POA,
&I021_V2_4_271_CDTIS,
@@ -26244,7 +26163,7 @@ static int hf_021_V2_4_295;
static int hf_021_V2_4_295_AOS;
static int hf_021_V2_4_295_AOS_VALUE;
static const FieldPart I021_V2_4_295_AOS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_AOS_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_AOS_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_AOS_PARTS[] = {
&I021_V2_4_295_AOS_VALUE,
NULL
};
@@ -26252,7 +26171,7 @@ static const AsterixField I021_V2_4_295_AOS = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_TRD;
static int hf_021_V2_4_295_TRD_VALUE;
static const FieldPart I021_V2_4_295_TRD_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_TRD_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_TRD_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_TRD_PARTS[] = {
&I021_V2_4_295_TRD_VALUE,
NULL
};
@@ -26260,7 +26179,7 @@ static const AsterixField I021_V2_4_295_TRD = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_M3A;
static int hf_021_V2_4_295_M3A_VALUE;
static const FieldPart I021_V2_4_295_M3A_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_M3A_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_M3A_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_M3A_PARTS[] = {
&I021_V2_4_295_M3A_VALUE,
NULL
};
@@ -26268,7 +26187,7 @@ static const AsterixField I021_V2_4_295_M3A = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_QI;
static int hf_021_V2_4_295_QI_VALUE;
static const FieldPart I021_V2_4_295_QI_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_QI_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_QI_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_QI_PARTS[] = {
&I021_V2_4_295_QI_VALUE,
NULL
};
@@ -26276,7 +26195,7 @@ static const AsterixField I021_V2_4_295_QI = { FIXED, 1, 0, 0, &hf_021_V2_4_295_
static int hf_021_V2_4_295_TI1;
static int hf_021_V2_4_295_TI1_VALUE;
static const FieldPart I021_V2_4_295_TI1_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_TI1_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_TI1_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_TI1_PARTS[] = {
&I021_V2_4_295_TI1_VALUE,
NULL
};
@@ -26284,7 +26203,7 @@ static const AsterixField I021_V2_4_295_TI1 = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_MAM;
static int hf_021_V2_4_295_MAM_VALUE;
static const FieldPart I021_V2_4_295_MAM_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_MAM_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_MAM_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_MAM_PARTS[] = {
&I021_V2_4_295_MAM_VALUE,
NULL
};
@@ -26292,7 +26211,7 @@ static const AsterixField I021_V2_4_295_MAM = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_GH;
static int hf_021_V2_4_295_GH_VALUE;
static const FieldPart I021_V2_4_295_GH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_GH_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_GH_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_GH_PARTS[] = {
&I021_V2_4_295_GH_VALUE,
NULL
};
@@ -26300,7 +26219,7 @@ static const AsterixField I021_V2_4_295_GH = { FIXED, 1, 0, 0, &hf_021_V2_4_295_
static int hf_021_V2_4_295_FL;
static int hf_021_V2_4_295_FL_VALUE;
static const FieldPart I021_V2_4_295_FL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_FL_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_FL_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_FL_PARTS[] = {
&I021_V2_4_295_FL_VALUE,
NULL
};
@@ -26308,7 +26227,7 @@ static const AsterixField I021_V2_4_295_FL = { FIXED, 1, 0, 0, &hf_021_V2_4_295_
static int hf_021_V2_4_295_ISA;
static int hf_021_V2_4_295_ISA_VALUE;
static const FieldPart I021_V2_4_295_ISA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_ISA_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_ISA_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_ISA_PARTS[] = {
&I021_V2_4_295_ISA_VALUE,
NULL
};
@@ -26316,7 +26235,7 @@ static const AsterixField I021_V2_4_295_ISA = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_FSA;
static int hf_021_V2_4_295_FSA_VALUE;
static const FieldPart I021_V2_4_295_FSA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_FSA_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_FSA_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_FSA_PARTS[] = {
&I021_V2_4_295_FSA_VALUE,
NULL
};
@@ -26324,7 +26243,7 @@ static const AsterixField I021_V2_4_295_FSA = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_AS;
static int hf_021_V2_4_295_AS_VALUE;
static const FieldPart I021_V2_4_295_AS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_AS_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_AS_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_AS_PARTS[] = {
&I021_V2_4_295_AS_VALUE,
NULL
};
@@ -26332,7 +26251,7 @@ static const AsterixField I021_V2_4_295_AS = { FIXED, 1, 0, 0, &hf_021_V2_4_295_
static int hf_021_V2_4_295_TAS;
static int hf_021_V2_4_295_TAS_VALUE;
static const FieldPart I021_V2_4_295_TAS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_TAS_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_TAS_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_TAS_PARTS[] = {
&I021_V2_4_295_TAS_VALUE,
NULL
};
@@ -26340,7 +26259,7 @@ static const AsterixField I021_V2_4_295_TAS = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_MH;
static int hf_021_V2_4_295_MH_VALUE;
static const FieldPart I021_V2_4_295_MH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_MH_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_MH_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_MH_PARTS[] = {
&I021_V2_4_295_MH_VALUE,
NULL
};
@@ -26348,7 +26267,7 @@ static const AsterixField I021_V2_4_295_MH = { FIXED, 1, 0, 0, &hf_021_V2_4_295_
static int hf_021_V2_4_295_BVR;
static int hf_021_V2_4_295_BVR_VALUE;
static const FieldPart I021_V2_4_295_BVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_BVR_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_BVR_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_BVR_PARTS[] = {
&I021_V2_4_295_BVR_VALUE,
NULL
};
@@ -26356,7 +26275,7 @@ static const AsterixField I021_V2_4_295_BVR = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_GVR;
static int hf_021_V2_4_295_GVR_VALUE;
static const FieldPart I021_V2_4_295_GVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_GVR_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_GVR_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_GVR_PARTS[] = {
&I021_V2_4_295_GVR_VALUE,
NULL
};
@@ -26364,7 +26283,7 @@ static const AsterixField I021_V2_4_295_GVR = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_GV;
static int hf_021_V2_4_295_GV_VALUE;
static const FieldPart I021_V2_4_295_GV_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_GV_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_GV_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_GV_PARTS[] = {
&I021_V2_4_295_GV_VALUE,
NULL
};
@@ -26372,7 +26291,7 @@ static const AsterixField I021_V2_4_295_GV = { FIXED, 1, 0, 0, &hf_021_V2_4_295_
static int hf_021_V2_4_295_TAR;
static int hf_021_V2_4_295_TAR_VALUE;
static const FieldPart I021_V2_4_295_TAR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_TAR_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_TAR_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_TAR_PARTS[] = {
&I021_V2_4_295_TAR_VALUE,
NULL
};
@@ -26380,7 +26299,7 @@ static const AsterixField I021_V2_4_295_TAR = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_TI2;
static int hf_021_V2_4_295_TI2_VALUE;
static const FieldPart I021_V2_4_295_TI2_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_TI2_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_TI2_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_TI2_PARTS[] = {
&I021_V2_4_295_TI2_VALUE,
NULL
};
@@ -26388,7 +26307,7 @@ static const AsterixField I021_V2_4_295_TI2 = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_TS;
static int hf_021_V2_4_295_TS_VALUE;
static const FieldPart I021_V2_4_295_TS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_TS_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_TS_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_TS_PARTS[] = {
&I021_V2_4_295_TS_VALUE,
NULL
};
@@ -26396,7 +26315,7 @@ static const AsterixField I021_V2_4_295_TS = { FIXED, 1, 0, 0, &hf_021_V2_4_295_
static int hf_021_V2_4_295_MET;
static int hf_021_V2_4_295_MET_VALUE;
static const FieldPart I021_V2_4_295_MET_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_MET_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_MET_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_MET_PARTS[] = {
&I021_V2_4_295_MET_VALUE,
NULL
};
@@ -26404,7 +26323,7 @@ static const AsterixField I021_V2_4_295_MET = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_ROA;
static int hf_021_V2_4_295_ROA_VALUE;
static const FieldPart I021_V2_4_295_ROA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_ROA_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_ROA_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_ROA_PARTS[] = {
&I021_V2_4_295_ROA_VALUE,
NULL
};
@@ -26412,7 +26331,7 @@ static const AsterixField I021_V2_4_295_ROA = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_ARA;
static int hf_021_V2_4_295_ARA_VALUE;
static const FieldPart I021_V2_4_295_ARA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_ARA_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_ARA_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_ARA_PARTS[] = {
&I021_V2_4_295_ARA_VALUE,
NULL
};
@@ -26420,7 +26339,7 @@ static const AsterixField I021_V2_4_295_ARA = { FIXED, 1, 0, 0, &hf_021_V2_4_295
static int hf_021_V2_4_295_SCC;
static int hf_021_V2_4_295_SCC_VALUE;
static const FieldPart I021_V2_4_295_SCC_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_4_295_SCC_VALUE, NULL };
-static const FieldPart *I021_V2_4_295_SCC_PARTS[] = {
+static const FieldPart * const I021_V2_4_295_SCC_PARTS[] = {
&I021_V2_4_295_SCC_VALUE,
NULL
};
@@ -26429,7 +26348,7 @@ static const AsterixField I021_V2_4_295 = { COMPOUND, 0, 0, 0, &hf_021_V2_4_295,
static int hf_021_V2_4_400;
static int hf_021_V2_4_400_VALUE;
static const FieldPart I021_V2_4_400_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_4_400_VALUE, NULL };
-static const FieldPart *I021_V2_4_400_PARTS[] = {
+static const FieldPart * const I021_V2_4_400_PARTS[] = {
&I021_V2_4_400_VALUE,
NULL
};
@@ -26439,8 +26358,7 @@ static const AsterixField I021_V2_4_RE = { EXP, 0, 0, 1, &hf_021_V2_4_RE, NULL,
static int hf_021_V2_4_SP;
static const AsterixField I021_V2_4_SP = { EXP, 0, 0, 1, &hf_021_V2_4_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V2_4_uap[] = {
+static const AsterixField * const I021_V2_4_uap[] = {
&I021_V2_4_010,
&I021_V2_4_040,
&I021_V2_4_161,
@@ -26492,11 +26410,10 @@ static const AsterixField *I021_V2_4_uap[] = {
&I021_V2_4_SP,
NULL
};
-static const AsterixField **I021_V2_4[] = {
+static const AsterixField * const * const I021_V2_4[] = {
I021_V2_4_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 2.5 */
static int hf_021_V2_5_008;
@@ -26551,7 +26468,7 @@ static const value_string valstr_021_V2_5_008_SA[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_5_008_SA = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_008_SA, NULL };
-static const FieldPart *I021_V2_5_008_PARTS[] = {
+static const FieldPart * const I021_V2_5_008_PARTS[] = {
&I021_V2_5_008_RA,
&I021_V2_5_008_TC,
&I021_V2_5_008_TS,
@@ -26567,7 +26484,7 @@ static int hf_021_V2_5_010_SAC;
static const FieldPart I021_V2_5_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_5_010_SAC, NULL };
static int hf_021_V2_5_010_SIC;
static const FieldPart I021_V2_5_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_5_010_SIC, NULL };
-static const FieldPart *I021_V2_5_010_PARTS[] = {
+static const FieldPart * const I021_V2_5_010_PARTS[] = {
&I021_V2_5_010_SAC,
&I021_V2_5_010_SIC,
NULL
@@ -26576,7 +26493,7 @@ static const AsterixField I021_V2_5_010 = { FIXED, 2, 0, 0, &hf_021_V2_5_010, I0
static int hf_021_V2_5_015;
static int hf_021_V2_5_015_VALUE;
static const FieldPart I021_V2_5_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_5_015_VALUE, NULL };
-static const FieldPart *I021_V2_5_015_PARTS[] = {
+static const FieldPart * const I021_V2_5_015_PARTS[] = {
&I021_V2_5_015_VALUE,
NULL
};
@@ -26584,7 +26501,7 @@ static const AsterixField I021_V2_5_015 = { FIXED, 1, 0, 0, &hf_021_V2_5_015, I0
static int hf_021_V2_5_016;
static int hf_021_V2_5_016_VALUE;
static const FieldPart I021_V2_5_016_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_021_V2_5_016_VALUE, NULL };
-static const FieldPart *I021_V2_5_016_PARTS[] = {
+static const FieldPart * const I021_V2_5_016_PARTS[] = {
&I021_V2_5_016_VALUE,
NULL
};
@@ -26620,7 +26537,7 @@ static const value_string valstr_021_V2_5_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_5_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_5_020_VALUE, NULL };
-static const FieldPart *I021_V2_5_020_PARTS[] = {
+static const FieldPart * const I021_V2_5_020_PARTS[] = {
&I021_V2_5_020_VALUE,
NULL
};
@@ -26748,7 +26665,7 @@ static const value_string valstr_021_V2_5_040_RCF[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_5_040_RCF = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_040_RCF, NULL };
-static const FieldPart *I021_V2_5_040_PARTS[] = {
+static const FieldPart * const I021_V2_5_040_PARTS[] = {
&I021_V2_5_040_ATP,
&I021_V2_5_040_ARC,
&I021_V2_5_040_RC,
@@ -26775,7 +26692,7 @@ static const AsterixField I021_V2_5_040 = { FX, 1, 0, 0, &hf_021_V2_5_040, I021_
static int hf_021_V2_5_070;
static int hf_021_V2_5_070_MODE3A;
static const FieldPart I021_V2_5_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_021_V2_5_070_MODE3A, NULL };
-static const FieldPart *I021_V2_5_070_PARTS[] = {
+static const FieldPart * const I021_V2_5_070_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_5_070_MODE3A,
NULL
@@ -26784,7 +26701,7 @@ static const AsterixField I021_V2_5_070 = { FIXED, 2, 0, 0, &hf_021_V2_5_070, I0
static int hf_021_V2_5_071;
static int hf_021_V2_5_071_VALUE;
static const FieldPart I021_V2_5_071_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_5_071_VALUE, NULL };
-static const FieldPart *I021_V2_5_071_PARTS[] = {
+static const FieldPart * const I021_V2_5_071_PARTS[] = {
&I021_V2_5_071_VALUE,
NULL
};
@@ -26792,7 +26709,7 @@ static const AsterixField I021_V2_5_071 = { FIXED, 3, 0, 0, &hf_021_V2_5_071, I0
static int hf_021_V2_5_072;
static int hf_021_V2_5_072_VALUE;
static const FieldPart I021_V2_5_072_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_5_072_VALUE, NULL };
-static const FieldPart *I021_V2_5_072_PARTS[] = {
+static const FieldPart * const I021_V2_5_072_PARTS[] = {
&I021_V2_5_072_VALUE,
NULL
};
@@ -26800,7 +26717,7 @@ static const AsterixField I021_V2_5_072 = { FIXED, 3, 0, 0, &hf_021_V2_5_072, I0
static int hf_021_V2_5_073;
static int hf_021_V2_5_073_VALUE;
static const FieldPart I021_V2_5_073_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_5_073_VALUE, NULL };
-static const FieldPart *I021_V2_5_073_PARTS[] = {
+static const FieldPart * const I021_V2_5_073_PARTS[] = {
&I021_V2_5_073_VALUE,
NULL
};
@@ -26817,7 +26734,7 @@ static const value_string valstr_021_V2_5_074_FSI[] = {
static const FieldPart I021_V2_5_074_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_5_074_FSI, NULL };
static int hf_021_V2_5_074_TOMRP;
static const FieldPart I021_V2_5_074_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_5_074_TOMRP, NULL };
-static const FieldPart *I021_V2_5_074_PARTS[] = {
+static const FieldPart * const I021_V2_5_074_PARTS[] = {
&I021_V2_5_074_FSI,
&I021_V2_5_074_TOMRP,
NULL
@@ -26826,7 +26743,7 @@ static const AsterixField I021_V2_5_074 = { FIXED, 4, 0, 0, &hf_021_V2_5_074, I0
static int hf_021_V2_5_075;
static int hf_021_V2_5_075_VALUE;
static const FieldPart I021_V2_5_075_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_5_075_VALUE, NULL };
-static const FieldPart *I021_V2_5_075_PARTS[] = {
+static const FieldPart * const I021_V2_5_075_PARTS[] = {
&I021_V2_5_075_VALUE,
NULL
};
@@ -26843,7 +26760,7 @@ static const value_string valstr_021_V2_5_076_FSI[] = {
static const FieldPart I021_V2_5_076_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_5_076_FSI, NULL };
static int hf_021_V2_5_076_TOMRP;
static const FieldPart I021_V2_5_076_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_5_076_TOMRP, NULL };
-static const FieldPart *I021_V2_5_076_PARTS[] = {
+static const FieldPart * const I021_V2_5_076_PARTS[] = {
&I021_V2_5_076_FSI,
&I021_V2_5_076_TOMRP,
NULL
@@ -26852,7 +26769,7 @@ static const AsterixField I021_V2_5_076 = { FIXED, 4, 0, 0, &hf_021_V2_5_076, I0
static int hf_021_V2_5_077;
static int hf_021_V2_5_077_VALUE;
static const FieldPart I021_V2_5_077_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_5_077_VALUE, NULL };
-static const FieldPart *I021_V2_5_077_PARTS[] = {
+static const FieldPart * const I021_V2_5_077_PARTS[] = {
&I021_V2_5_077_VALUE,
NULL
};
@@ -26860,7 +26777,7 @@ static const AsterixField I021_V2_5_077 = { FIXED, 3, 0, 0, &hf_021_V2_5_077, I0
static int hf_021_V2_5_080;
static int hf_021_V2_5_080_VALUE;
static const FieldPart I021_V2_5_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V2_5_080_VALUE, NULL };
-static const FieldPart *I021_V2_5_080_PARTS[] = {
+static const FieldPart * const I021_V2_5_080_PARTS[] = {
&I021_V2_5_080_VALUE,
NULL
};
@@ -26889,7 +26806,7 @@ static int hf_021_V2_5_090_GVA;
static const FieldPart I021_V2_5_090_GVA = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_5_090_GVA, NULL };
static int hf_021_V2_5_090_PIC;
static const FieldPart I021_V2_5_090_PIC = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_5_090_PIC, NULL };
-static const FieldPart *I021_V2_5_090_PARTS[] = {
+static const FieldPart * const I021_V2_5_090_PARTS[] = {
&I021_V2_5_090_NUCRNACV,
&I021_V2_5_090_NUCPNIC,
&IXXX_FX,
@@ -26924,7 +26841,7 @@ static const value_string valstr_021_V2_5_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_5_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_110_TIS_NVB, NULL };
-static const FieldPart *I021_V2_5_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V2_5_110_TIS_PARTS[] = {
&I021_V2_5_110_TIS_NAV,
&I021_V2_5_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -26999,7 +26916,7 @@ static int hf_021_V2_5_110_TID_TOV;
static const FieldPart I021_V2_5_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_5_110_TID_TOV, NULL };
static int hf_021_V2_5_110_TID_TTR;
static const FieldPart I021_V2_5_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V2_5_110_TID_TTR, NULL };
-static const FieldPart *I021_V2_5_110_TID_PARTS[] = {
+static const FieldPart * const I021_V2_5_110_TID_PARTS[] = {
&I021_V2_5_110_TID_TCA,
&I021_V2_5_110_TID_NC,
&I021_V2_5_110_TID_TCPN,
@@ -27021,7 +26938,7 @@ static int hf_021_V2_5_130_LAT;
static const FieldPart I021_V2_5_130_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_5_130_LAT, NULL };
static int hf_021_V2_5_130_LON;
static const FieldPart I021_V2_5_130_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_5_130_LON, NULL };
-static const FieldPart *I021_V2_5_130_PARTS[] = {
+static const FieldPart * const I021_V2_5_130_PARTS[] = {
&I021_V2_5_130_LAT,
&I021_V2_5_130_LON,
NULL
@@ -27032,7 +26949,7 @@ static int hf_021_V2_5_131_LAT;
static const FieldPart I021_V2_5_131_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_5_131_LAT, NULL };
static int hf_021_V2_5_131_LON;
static const FieldPart I021_V2_5_131_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_5_131_LON, NULL };
-static const FieldPart *I021_V2_5_131_PARTS[] = {
+static const FieldPart * const I021_V2_5_131_PARTS[] = {
&I021_V2_5_131_LAT,
&I021_V2_5_131_LON,
NULL
@@ -27041,7 +26958,7 @@ static const AsterixField I021_V2_5_131 = { FIXED, 8, 0, 0, &hf_021_V2_5_131, I0
static int hf_021_V2_5_132;
static int hf_021_V2_5_132_VALUE;
static const FieldPart I021_V2_5_132_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_021_V2_5_132_VALUE, NULL };
-static const FieldPart *I021_V2_5_132_PARTS[] = {
+static const FieldPart * const I021_V2_5_132_PARTS[] = {
&I021_V2_5_132_VALUE,
NULL
};
@@ -27049,7 +26966,7 @@ static const AsterixField I021_V2_5_132 = { FIXED, 1, 0, 0, &hf_021_V2_5_132, I0
static int hf_021_V2_5_140;
static int hf_021_V2_5_140_VALUE;
static const FieldPart I021_V2_5_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V2_5_140_VALUE, NULL };
-static const FieldPart *I021_V2_5_140_PARTS[] = {
+static const FieldPart * const I021_V2_5_140_PARTS[] = {
&I021_V2_5_140_VALUE,
NULL
};
@@ -27057,7 +26974,7 @@ static const AsterixField I021_V2_5_140 = { FIXED, 2, 0, 0, &hf_021_V2_5_140, I0
static int hf_021_V2_5_145;
static int hf_021_V2_5_145_VALUE;
static const FieldPart I021_V2_5_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_5_145_VALUE, NULL };
-static const FieldPart *I021_V2_5_145_PARTS[] = {
+static const FieldPart * const I021_V2_5_145_PARTS[] = {
&I021_V2_5_145_VALUE,
NULL
};
@@ -27081,7 +26998,7 @@ static const value_string valstr_021_V2_5_146_S[] = {
static const FieldPart I021_V2_5_146_S = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_5_146_S, NULL };
static int hf_021_V2_5_146_ALT;
static const FieldPart I021_V2_5_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_5_146_ALT, NULL };
-static const FieldPart *I021_V2_5_146_PARTS[] = {
+static const FieldPart * const I021_V2_5_146_PARTS[] = {
&I021_V2_5_146_SAS,
&I021_V2_5_146_S,
&I021_V2_5_146_ALT,
@@ -27112,7 +27029,7 @@ static const value_string valstr_021_V2_5_148_AM[] = {
static const FieldPart I021_V2_5_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_148_AM, NULL };
static int hf_021_V2_5_148_ALT;
static const FieldPart I021_V2_5_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_5_148_ALT, NULL };
-static const FieldPart *I021_V2_5_148_PARTS[] = {
+static const FieldPart * const I021_V2_5_148_PARTS[] = {
&I021_V2_5_148_MV,
&I021_V2_5_148_AH,
&I021_V2_5_148_AM,
@@ -27130,7 +27047,7 @@ static const value_string valstr_021_V2_5_150_IM[] = {
static const FieldPart I021_V2_5_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_150_IM, NULL };
static int hf_021_V2_5_150_AS;
static const FieldPart I021_V2_5_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V2_5_150_AS, NULL };
-static const FieldPart *I021_V2_5_150_PARTS[] = {
+static const FieldPart * const I021_V2_5_150_PARTS[] = {
&I021_V2_5_150_IM,
&I021_V2_5_150_AS,
NULL
@@ -27146,7 +27063,7 @@ static const value_string valstr_021_V2_5_151_RE[] = {
static const FieldPart I021_V2_5_151_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_151_RE, NULL };
static int hf_021_V2_5_151_TAS;
static const FieldPart I021_V2_5_151_TAS = { 15, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_5_151_TAS, NULL };
-static const FieldPart *I021_V2_5_151_PARTS[] = {
+static const FieldPart * const I021_V2_5_151_PARTS[] = {
&I021_V2_5_151_RE,
&I021_V2_5_151_TAS,
NULL
@@ -27155,7 +27072,7 @@ static const AsterixField I021_V2_5_151 = { FIXED, 2, 0, 0, &hf_021_V2_5_151, I0
static int hf_021_V2_5_152;
static int hf_021_V2_5_152_VALUE;
static const FieldPart I021_V2_5_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_5_152_VALUE, NULL };
-static const FieldPart *I021_V2_5_152_PARTS[] = {
+static const FieldPart * const I021_V2_5_152_PARTS[] = {
&I021_V2_5_152_VALUE,
NULL
};
@@ -27170,7 +27087,7 @@ static const value_string valstr_021_V2_5_155_RE[] = {
static const FieldPart I021_V2_5_155_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_155_RE, NULL };
static int hf_021_V2_5_155_BVR;
static const FieldPart I021_V2_5_155_BVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_5_155_BVR, NULL };
-static const FieldPart *I021_V2_5_155_PARTS[] = {
+static const FieldPart * const I021_V2_5_155_PARTS[] = {
&I021_V2_5_155_RE,
&I021_V2_5_155_BVR,
NULL
@@ -27186,7 +27103,7 @@ static const value_string valstr_021_V2_5_157_RE[] = {
static const FieldPart I021_V2_5_157_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_157_RE, NULL };
static int hf_021_V2_5_157_GVR;
static const FieldPart I021_V2_5_157_GVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_5_157_GVR, NULL };
-static const FieldPart *I021_V2_5_157_PARTS[] = {
+static const FieldPart * const I021_V2_5_157_PARTS[] = {
&I021_V2_5_157_RE,
&I021_V2_5_157_GVR,
NULL
@@ -27204,7 +27121,7 @@ static int hf_021_V2_5_160_GS;
static const FieldPart I021_V2_5_160_GS = { 15, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_021_V2_5_160_GS, NULL };
static int hf_021_V2_5_160_TA;
static const FieldPart I021_V2_5_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_5_160_TA, NULL };
-static const FieldPart *I021_V2_5_160_PARTS[] = {
+static const FieldPart * const I021_V2_5_160_PARTS[] = {
&I021_V2_5_160_RE,
&I021_V2_5_160_GS,
&I021_V2_5_160_TA,
@@ -27214,7 +27131,7 @@ static const AsterixField I021_V2_5_160 = { FIXED, 4, 0, 0, &hf_021_V2_5_160, I0
static int hf_021_V2_5_161;
static int hf_021_V2_5_161_TRNUM;
static const FieldPart I021_V2_5_161_TRNUM = { 12, 1.0, FIELD_PART_HEX, &hf_021_V2_5_161_TRNUM, NULL };
-static const FieldPart *I021_V2_5_161_PARTS[] = {
+static const FieldPart * const I021_V2_5_161_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_5_161_TRNUM,
NULL
@@ -27223,7 +27140,7 @@ static const AsterixField I021_V2_5_161 = { FIXED, 2, 0, 0, &hf_021_V2_5_161, I0
static int hf_021_V2_5_165;
static int hf_021_V2_5_165_TAR;
static const FieldPart I021_V2_5_165_TAR = { 10, 0.03125, FIELD_PART_FLOAT, &hf_021_V2_5_165_TAR, NULL };
-static const FieldPart *I021_V2_5_165_PARTS[] = {
+static const FieldPart * const I021_V2_5_165_PARTS[] = {
&IXXX_6bit_spare,
&I021_V2_5_165_TAR,
NULL
@@ -27232,7 +27149,7 @@ static const AsterixField I021_V2_5_165 = { FIXED, 2, 0, 0, &hf_021_V2_5_165, I0
static int hf_021_V2_5_170;
static int hf_021_V2_5_170_VALUE;
static const FieldPart I021_V2_5_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V2_5_170_VALUE, NULL };
-static const FieldPart *I021_V2_5_170_PARTS[] = {
+static const FieldPart * const I021_V2_5_170_PARTS[] = {
&I021_V2_5_170_VALUE,
NULL
};
@@ -27280,7 +27197,7 @@ static const value_string valstr_021_V2_5_200_SS[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_5_200_SS = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_5_200_SS, NULL };
-static const FieldPart *I021_V2_5_200_PARTS[] = {
+static const FieldPart * const I021_V2_5_200_PARTS[] = {
&I021_V2_5_200_ICF,
&I021_V2_5_200_LNAV,
&I021_V2_5_200_ME,
@@ -27319,7 +27236,7 @@ static const value_string valstr_021_V2_5_210_LTT[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_5_210_LTT = { 3, 1.0, FIELD_PART_UINT, &hf_021_V2_5_210_LTT, NULL };
-static const FieldPart *I021_V2_5_210_PARTS[] = {
+static const FieldPart * const I021_V2_5_210_PARTS[] = {
&IXXX_1bit_spare,
&I021_V2_5_210_VNS,
&I021_V2_5_210_VN,
@@ -27331,7 +27248,7 @@ static int hf_021_V2_5_220;
static int hf_021_V2_5_220_WS;
static int hf_021_V2_5_220_WS_VALUE;
static const FieldPart I021_V2_5_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_5_220_WS_VALUE, NULL };
-static const FieldPart *I021_V2_5_220_WS_PARTS[] = {
+static const FieldPart * const I021_V2_5_220_WS_PARTS[] = {
&I021_V2_5_220_WS_VALUE,
NULL
};
@@ -27339,7 +27256,7 @@ static const AsterixField I021_V2_5_220_WS = { FIXED, 2, 0, 0, &hf_021_V2_5_220_
static int hf_021_V2_5_220_WD;
static int hf_021_V2_5_220_WD_VALUE;
static const FieldPart I021_V2_5_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_5_220_WD_VALUE, NULL };
-static const FieldPart *I021_V2_5_220_WD_PARTS[] = {
+static const FieldPart * const I021_V2_5_220_WD_PARTS[] = {
&I021_V2_5_220_WD_VALUE,
NULL
};
@@ -27347,7 +27264,7 @@ static const AsterixField I021_V2_5_220_WD = { FIXED, 2, 0, 0, &hf_021_V2_5_220_
static int hf_021_V2_5_220_TMP;
static int hf_021_V2_5_220_TMP_VALUE;
static const FieldPart I021_V2_5_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_5_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V2_5_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V2_5_220_TMP_PARTS[] = {
&I021_V2_5_220_TMP_VALUE,
NULL
};
@@ -27355,7 +27272,7 @@ static const AsterixField I021_V2_5_220_TMP = { FIXED, 2, 0, 0, &hf_021_V2_5_220
static int hf_021_V2_5_220_TRB;
static int hf_021_V2_5_220_TRB_VALUE;
static const FieldPart I021_V2_5_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_5_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V2_5_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V2_5_220_TRB_PARTS[] = {
&I021_V2_5_220_TRB_VALUE,
NULL
};
@@ -27364,7 +27281,7 @@ static const AsterixField I021_V2_5_220 = { COMPOUND, 0, 0, 0, &hf_021_V2_5_220,
static int hf_021_V2_5_230;
static int hf_021_V2_5_230_VALUE;
static const FieldPart I021_V2_5_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V2_5_230_VALUE, NULL };
-static const FieldPart *I021_V2_5_230_PARTS[] = {
+static const FieldPart * const I021_V2_5_230_PARTS[] = {
&I021_V2_5_230_VALUE,
NULL
};
@@ -27372,7 +27289,7 @@ static const AsterixField I021_V2_5_230 = { FIXED, 2, 0, 0, &hf_021_V2_5_230, I0
static int hf_021_V2_5_250;
static int hf_021_V2_5_250_VALUE;
static const FieldPart I021_V2_5_250_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_021_V2_5_250_VALUE, NULL };
-static const FieldPart *I021_V2_5_250_PARTS[] = {
+static const FieldPart * const I021_V2_5_250_PARTS[] = {
&I021_V2_5_250_VALUE,
NULL
};
@@ -27394,7 +27311,7 @@ static int hf_021_V2_5_260_TTI;
static const FieldPart I021_V2_5_260_TTI = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_5_260_TTI, NULL };
static int hf_021_V2_5_260_TID;
static const FieldPart I021_V2_5_260_TID = { 26, 1.0, FIELD_PART_HEX, &hf_021_V2_5_260_TID, NULL };
-static const FieldPart *I021_V2_5_260_PARTS[] = {
+static const FieldPart * const I021_V2_5_260_PARTS[] = {
&I021_V2_5_260_TYP,
&I021_V2_5_260_STYP,
&I021_V2_5_260_ARA,
@@ -27444,7 +27361,7 @@ static const value_string valstr_021_V2_5_271_IDENT[] = {
static const FieldPart I021_V2_5_271_IDENT = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_5_271_IDENT, NULL };
static int hf_021_V2_5_271_LW;
static const FieldPart I021_V2_5_271_LW = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_5_271_LW, NULL };
-static const FieldPart *I021_V2_5_271_PARTS[] = {
+static const FieldPart * const I021_V2_5_271_PARTS[] = {
&IXXX_2bit_spare,
&I021_V2_5_271_POA,
&I021_V2_5_271_CDTIS,
@@ -27462,7 +27379,7 @@ static int hf_021_V2_5_295;
static int hf_021_V2_5_295_AOS;
static int hf_021_V2_5_295_AOS_VALUE;
static const FieldPart I021_V2_5_295_AOS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_AOS_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_AOS_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_AOS_PARTS[] = {
&I021_V2_5_295_AOS_VALUE,
NULL
};
@@ -27470,7 +27387,7 @@ static const AsterixField I021_V2_5_295_AOS = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_TRD;
static int hf_021_V2_5_295_TRD_VALUE;
static const FieldPart I021_V2_5_295_TRD_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_TRD_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_TRD_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_TRD_PARTS[] = {
&I021_V2_5_295_TRD_VALUE,
NULL
};
@@ -27478,7 +27395,7 @@ static const AsterixField I021_V2_5_295_TRD = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_M3A;
static int hf_021_V2_5_295_M3A_VALUE;
static const FieldPart I021_V2_5_295_M3A_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_M3A_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_M3A_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_M3A_PARTS[] = {
&I021_V2_5_295_M3A_VALUE,
NULL
};
@@ -27486,7 +27403,7 @@ static const AsterixField I021_V2_5_295_M3A = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_QI;
static int hf_021_V2_5_295_QI_VALUE;
static const FieldPart I021_V2_5_295_QI_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_QI_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_QI_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_QI_PARTS[] = {
&I021_V2_5_295_QI_VALUE,
NULL
};
@@ -27494,7 +27411,7 @@ static const AsterixField I021_V2_5_295_QI = { FIXED, 1, 0, 0, &hf_021_V2_5_295_
static int hf_021_V2_5_295_TI1;
static int hf_021_V2_5_295_TI1_VALUE;
static const FieldPart I021_V2_5_295_TI1_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_TI1_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_TI1_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_TI1_PARTS[] = {
&I021_V2_5_295_TI1_VALUE,
NULL
};
@@ -27502,7 +27419,7 @@ static const AsterixField I021_V2_5_295_TI1 = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_MAM;
static int hf_021_V2_5_295_MAM_VALUE;
static const FieldPart I021_V2_5_295_MAM_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_MAM_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_MAM_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_MAM_PARTS[] = {
&I021_V2_5_295_MAM_VALUE,
NULL
};
@@ -27510,7 +27427,7 @@ static const AsterixField I021_V2_5_295_MAM = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_GH;
static int hf_021_V2_5_295_GH_VALUE;
static const FieldPart I021_V2_5_295_GH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_GH_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_GH_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_GH_PARTS[] = {
&I021_V2_5_295_GH_VALUE,
NULL
};
@@ -27518,7 +27435,7 @@ static const AsterixField I021_V2_5_295_GH = { FIXED, 1, 0, 0, &hf_021_V2_5_295_
static int hf_021_V2_5_295_FL;
static int hf_021_V2_5_295_FL_VALUE;
static const FieldPart I021_V2_5_295_FL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_FL_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_FL_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_FL_PARTS[] = {
&I021_V2_5_295_FL_VALUE,
NULL
};
@@ -27526,7 +27443,7 @@ static const AsterixField I021_V2_5_295_FL = { FIXED, 1, 0, 0, &hf_021_V2_5_295_
static int hf_021_V2_5_295_ISA;
static int hf_021_V2_5_295_ISA_VALUE;
static const FieldPart I021_V2_5_295_ISA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_ISA_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_ISA_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_ISA_PARTS[] = {
&I021_V2_5_295_ISA_VALUE,
NULL
};
@@ -27534,7 +27451,7 @@ static const AsterixField I021_V2_5_295_ISA = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_FSA;
static int hf_021_V2_5_295_FSA_VALUE;
static const FieldPart I021_V2_5_295_FSA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_FSA_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_FSA_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_FSA_PARTS[] = {
&I021_V2_5_295_FSA_VALUE,
NULL
};
@@ -27542,7 +27459,7 @@ static const AsterixField I021_V2_5_295_FSA = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_AS;
static int hf_021_V2_5_295_AS_VALUE;
static const FieldPart I021_V2_5_295_AS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_AS_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_AS_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_AS_PARTS[] = {
&I021_V2_5_295_AS_VALUE,
NULL
};
@@ -27550,7 +27467,7 @@ static const AsterixField I021_V2_5_295_AS = { FIXED, 1, 0, 0, &hf_021_V2_5_295_
static int hf_021_V2_5_295_TAS;
static int hf_021_V2_5_295_TAS_VALUE;
static const FieldPart I021_V2_5_295_TAS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_TAS_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_TAS_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_TAS_PARTS[] = {
&I021_V2_5_295_TAS_VALUE,
NULL
};
@@ -27558,7 +27475,7 @@ static const AsterixField I021_V2_5_295_TAS = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_MH;
static int hf_021_V2_5_295_MH_VALUE;
static const FieldPart I021_V2_5_295_MH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_MH_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_MH_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_MH_PARTS[] = {
&I021_V2_5_295_MH_VALUE,
NULL
};
@@ -27566,7 +27483,7 @@ static const AsterixField I021_V2_5_295_MH = { FIXED, 1, 0, 0, &hf_021_V2_5_295_
static int hf_021_V2_5_295_BVR;
static int hf_021_V2_5_295_BVR_VALUE;
static const FieldPart I021_V2_5_295_BVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_BVR_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_BVR_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_BVR_PARTS[] = {
&I021_V2_5_295_BVR_VALUE,
NULL
};
@@ -27574,7 +27491,7 @@ static const AsterixField I021_V2_5_295_BVR = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_GVR;
static int hf_021_V2_5_295_GVR_VALUE;
static const FieldPart I021_V2_5_295_GVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_GVR_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_GVR_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_GVR_PARTS[] = {
&I021_V2_5_295_GVR_VALUE,
NULL
};
@@ -27582,7 +27499,7 @@ static const AsterixField I021_V2_5_295_GVR = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_GV;
static int hf_021_V2_5_295_GV_VALUE;
static const FieldPart I021_V2_5_295_GV_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_GV_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_GV_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_GV_PARTS[] = {
&I021_V2_5_295_GV_VALUE,
NULL
};
@@ -27590,7 +27507,7 @@ static const AsterixField I021_V2_5_295_GV = { FIXED, 1, 0, 0, &hf_021_V2_5_295_
static int hf_021_V2_5_295_TAR;
static int hf_021_V2_5_295_TAR_VALUE;
static const FieldPart I021_V2_5_295_TAR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_TAR_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_TAR_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_TAR_PARTS[] = {
&I021_V2_5_295_TAR_VALUE,
NULL
};
@@ -27598,7 +27515,7 @@ static const AsterixField I021_V2_5_295_TAR = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_TI2;
static int hf_021_V2_5_295_TI2_VALUE;
static const FieldPart I021_V2_5_295_TI2_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_TI2_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_TI2_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_TI2_PARTS[] = {
&I021_V2_5_295_TI2_VALUE,
NULL
};
@@ -27606,7 +27523,7 @@ static const AsterixField I021_V2_5_295_TI2 = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_TS;
static int hf_021_V2_5_295_TS_VALUE;
static const FieldPart I021_V2_5_295_TS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_TS_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_TS_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_TS_PARTS[] = {
&I021_V2_5_295_TS_VALUE,
NULL
};
@@ -27614,7 +27531,7 @@ static const AsterixField I021_V2_5_295_TS = { FIXED, 1, 0, 0, &hf_021_V2_5_295_
static int hf_021_V2_5_295_MET;
static int hf_021_V2_5_295_MET_VALUE;
static const FieldPart I021_V2_5_295_MET_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_MET_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_MET_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_MET_PARTS[] = {
&I021_V2_5_295_MET_VALUE,
NULL
};
@@ -27622,7 +27539,7 @@ static const AsterixField I021_V2_5_295_MET = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_ROA;
static int hf_021_V2_5_295_ROA_VALUE;
static const FieldPart I021_V2_5_295_ROA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_ROA_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_ROA_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_ROA_PARTS[] = {
&I021_V2_5_295_ROA_VALUE,
NULL
};
@@ -27630,7 +27547,7 @@ static const AsterixField I021_V2_5_295_ROA = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_ARA;
static int hf_021_V2_5_295_ARA_VALUE;
static const FieldPart I021_V2_5_295_ARA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_ARA_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_ARA_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_ARA_PARTS[] = {
&I021_V2_5_295_ARA_VALUE,
NULL
};
@@ -27638,7 +27555,7 @@ static const AsterixField I021_V2_5_295_ARA = { FIXED, 1, 0, 0, &hf_021_V2_5_295
static int hf_021_V2_5_295_SCC;
static int hf_021_V2_5_295_SCC_VALUE;
static const FieldPart I021_V2_5_295_SCC_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_5_295_SCC_VALUE, NULL };
-static const FieldPart *I021_V2_5_295_SCC_PARTS[] = {
+static const FieldPart * const I021_V2_5_295_SCC_PARTS[] = {
&I021_V2_5_295_SCC_VALUE,
NULL
};
@@ -27647,7 +27564,7 @@ static const AsterixField I021_V2_5_295 = { COMPOUND, 0, 0, 0, &hf_021_V2_5_295,
static int hf_021_V2_5_400;
static int hf_021_V2_5_400_VALUE;
static const FieldPart I021_V2_5_400_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_5_400_VALUE, NULL };
-static const FieldPart *I021_V2_5_400_PARTS[] = {
+static const FieldPart * const I021_V2_5_400_PARTS[] = {
&I021_V2_5_400_VALUE,
NULL
};
@@ -27657,8 +27574,7 @@ static const AsterixField I021_V2_5_RE = { EXP, 0, 0, 1, &hf_021_V2_5_RE, NULL,
static int hf_021_V2_5_SP;
static const AsterixField I021_V2_5_SP = { EXP, 0, 0, 1, &hf_021_V2_5_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V2_5_uap[] = {
+static const AsterixField * const I021_V2_5_uap[] = {
&I021_V2_5_010,
&I021_V2_5_040,
&I021_V2_5_161,
@@ -27710,11 +27626,10 @@ static const AsterixField *I021_V2_5_uap[] = {
&I021_V2_5_SP,
NULL
};
-static const AsterixField **I021_V2_5[] = {
+static const AsterixField * const * const I021_V2_5[] = {
I021_V2_5_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 021, edition 2.6 */
static int hf_021_V2_6_008;
@@ -27769,7 +27684,7 @@ static const value_string valstr_021_V2_6_008_SA[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_6_008_SA = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_008_SA, NULL };
-static const FieldPart *I021_V2_6_008_PARTS[] = {
+static const FieldPart * const I021_V2_6_008_PARTS[] = {
&I021_V2_6_008_RA,
&I021_V2_6_008_TC,
&I021_V2_6_008_TS,
@@ -27785,7 +27700,7 @@ static int hf_021_V2_6_010_SAC;
static const FieldPart I021_V2_6_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_6_010_SAC, NULL };
static int hf_021_V2_6_010_SIC;
static const FieldPart I021_V2_6_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_6_010_SIC, NULL };
-static const FieldPart *I021_V2_6_010_PARTS[] = {
+static const FieldPart * const I021_V2_6_010_PARTS[] = {
&I021_V2_6_010_SAC,
&I021_V2_6_010_SIC,
NULL
@@ -27794,7 +27709,7 @@ static const AsterixField I021_V2_6_010 = { FIXED, 2, 0, 0, &hf_021_V2_6_010, I0
static int hf_021_V2_6_015;
static int hf_021_V2_6_015_VALUE;
static const FieldPart I021_V2_6_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_6_015_VALUE, NULL };
-static const FieldPart *I021_V2_6_015_PARTS[] = {
+static const FieldPart * const I021_V2_6_015_PARTS[] = {
&I021_V2_6_015_VALUE,
NULL
};
@@ -27802,7 +27717,7 @@ static const AsterixField I021_V2_6_015 = { FIXED, 1, 0, 0, &hf_021_V2_6_015, I0
static int hf_021_V2_6_016;
static int hf_021_V2_6_016_VALUE;
static const FieldPart I021_V2_6_016_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_021_V2_6_016_VALUE, NULL };
-static const FieldPart *I021_V2_6_016_PARTS[] = {
+static const FieldPart * const I021_V2_6_016_PARTS[] = {
&I021_V2_6_016_VALUE,
NULL
};
@@ -27838,7 +27753,7 @@ static const value_string valstr_021_V2_6_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_6_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_6_020_VALUE, NULL };
-static const FieldPart *I021_V2_6_020_PARTS[] = {
+static const FieldPart * const I021_V2_6_020_PARTS[] = {
&I021_V2_6_020_VALUE,
NULL
};
@@ -27970,7 +27885,7 @@ static int hf_021_V2_6_040_TBC;
static const FieldPart I021_V2_6_040_TBC = { 7, 1.0, FIELD_PART_HEX, &hf_021_V2_6_040_TBC, NULL };
static int hf_021_V2_6_040_MBC;
static const FieldPart I021_V2_6_040_MBC = { 7, 1.0, FIELD_PART_HEX, &hf_021_V2_6_040_MBC, NULL };
-static const FieldPart *I021_V2_6_040_PARTS[] = {
+static const FieldPart * const I021_V2_6_040_PARTS[] = {
&I021_V2_6_040_ATP,
&I021_V2_6_040_ARC,
&I021_V2_6_040_RC,
@@ -28001,7 +27916,7 @@ static const AsterixField I021_V2_6_040 = { FX, 1, 0, 0, &hf_021_V2_6_040, I021_
static int hf_021_V2_6_070;
static int hf_021_V2_6_070_MODE3A;
static const FieldPart I021_V2_6_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_021_V2_6_070_MODE3A, NULL };
-static const FieldPart *I021_V2_6_070_PARTS[] = {
+static const FieldPart * const I021_V2_6_070_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_6_070_MODE3A,
NULL
@@ -28010,7 +27925,7 @@ static const AsterixField I021_V2_6_070 = { FIXED, 2, 0, 0, &hf_021_V2_6_070, I0
static int hf_021_V2_6_071;
static int hf_021_V2_6_071_VALUE;
static const FieldPart I021_V2_6_071_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_6_071_VALUE, NULL };
-static const FieldPart *I021_V2_6_071_PARTS[] = {
+static const FieldPart * const I021_V2_6_071_PARTS[] = {
&I021_V2_6_071_VALUE,
NULL
};
@@ -28018,7 +27933,7 @@ static const AsterixField I021_V2_6_071 = { FIXED, 3, 0, 0, &hf_021_V2_6_071, I0
static int hf_021_V2_6_072;
static int hf_021_V2_6_072_VALUE;
static const FieldPart I021_V2_6_072_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_6_072_VALUE, NULL };
-static const FieldPart *I021_V2_6_072_PARTS[] = {
+static const FieldPart * const I021_V2_6_072_PARTS[] = {
&I021_V2_6_072_VALUE,
NULL
};
@@ -28026,7 +27941,7 @@ static const AsterixField I021_V2_6_072 = { FIXED, 3, 0, 0, &hf_021_V2_6_072, I0
static int hf_021_V2_6_073;
static int hf_021_V2_6_073_VALUE;
static const FieldPart I021_V2_6_073_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_6_073_VALUE, NULL };
-static const FieldPart *I021_V2_6_073_PARTS[] = {
+static const FieldPart * const I021_V2_6_073_PARTS[] = {
&I021_V2_6_073_VALUE,
NULL
};
@@ -28043,7 +27958,7 @@ static const value_string valstr_021_V2_6_074_FSI[] = {
static const FieldPart I021_V2_6_074_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_6_074_FSI, NULL };
static int hf_021_V2_6_074_TOMRP;
static const FieldPart I021_V2_6_074_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_6_074_TOMRP, NULL };
-static const FieldPart *I021_V2_6_074_PARTS[] = {
+static const FieldPart * const I021_V2_6_074_PARTS[] = {
&I021_V2_6_074_FSI,
&I021_V2_6_074_TOMRP,
NULL
@@ -28052,7 +27967,7 @@ static const AsterixField I021_V2_6_074 = { FIXED, 4, 0, 0, &hf_021_V2_6_074, I0
static int hf_021_V2_6_075;
static int hf_021_V2_6_075_VALUE;
static const FieldPart I021_V2_6_075_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_6_075_VALUE, NULL };
-static const FieldPart *I021_V2_6_075_PARTS[] = {
+static const FieldPart * const I021_V2_6_075_PARTS[] = {
&I021_V2_6_075_VALUE,
NULL
};
@@ -28069,7 +27984,7 @@ static const value_string valstr_021_V2_6_076_FSI[] = {
static const FieldPart I021_V2_6_076_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_6_076_FSI, NULL };
static int hf_021_V2_6_076_TOMRP;
static const FieldPart I021_V2_6_076_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_V2_6_076_TOMRP, NULL };
-static const FieldPart *I021_V2_6_076_PARTS[] = {
+static const FieldPart * const I021_V2_6_076_PARTS[] = {
&I021_V2_6_076_FSI,
&I021_V2_6_076_TOMRP,
NULL
@@ -28078,7 +27993,7 @@ static const AsterixField I021_V2_6_076 = { FIXED, 4, 0, 0, &hf_021_V2_6_076, I0
static int hf_021_V2_6_077;
static int hf_021_V2_6_077_VALUE;
static const FieldPart I021_V2_6_077_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_V2_6_077_VALUE, NULL };
-static const FieldPart *I021_V2_6_077_PARTS[] = {
+static const FieldPart * const I021_V2_6_077_PARTS[] = {
&I021_V2_6_077_VALUE,
NULL
};
@@ -28086,7 +28001,7 @@ static const AsterixField I021_V2_6_077 = { FIXED, 3, 0, 0, &hf_021_V2_6_077, I0
static int hf_021_V2_6_080;
static int hf_021_V2_6_080_VALUE;
static const FieldPart I021_V2_6_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_V2_6_080_VALUE, NULL };
-static const FieldPart *I021_V2_6_080_PARTS[] = {
+static const FieldPart * const I021_V2_6_080_PARTS[] = {
&I021_V2_6_080_VALUE,
NULL
};
@@ -28115,7 +28030,7 @@ static int hf_021_V2_6_090_GVA;
static const FieldPart I021_V2_6_090_GVA = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_6_090_GVA, NULL };
static int hf_021_V2_6_090_PIC;
static const FieldPart I021_V2_6_090_PIC = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_6_090_PIC, NULL };
-static const FieldPart *I021_V2_6_090_PARTS[] = {
+static const FieldPart * const I021_V2_6_090_PARTS[] = {
&I021_V2_6_090_NUCRNACV,
&I021_V2_6_090_NUCPNIC,
&IXXX_FX,
@@ -28150,7 +28065,7 @@ static const value_string valstr_021_V2_6_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_6_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_110_TIS_NVB, NULL };
-static const FieldPart *I021_V2_6_110_TIS_PARTS[] = {
+static const FieldPart * const I021_V2_6_110_TIS_PARTS[] = {
&I021_V2_6_110_TIS_NAV,
&I021_V2_6_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -28225,7 +28140,7 @@ static int hf_021_V2_6_110_TID_TOV;
static const FieldPart I021_V2_6_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_6_110_TID_TOV, NULL };
static int hf_021_V2_6_110_TID_TTR;
static const FieldPart I021_V2_6_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_V2_6_110_TID_TTR, NULL };
-static const FieldPart *I021_V2_6_110_TID_PARTS[] = {
+static const FieldPart * const I021_V2_6_110_TID_PARTS[] = {
&I021_V2_6_110_TID_TCA,
&I021_V2_6_110_TID_NC,
&I021_V2_6_110_TID_TCPN,
@@ -28247,7 +28162,7 @@ static int hf_021_V2_6_130_LAT;
static const FieldPart I021_V2_6_130_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_6_130_LAT, NULL };
static int hf_021_V2_6_130_LON;
static const FieldPart I021_V2_6_130_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_V2_6_130_LON, NULL };
-static const FieldPart *I021_V2_6_130_PARTS[] = {
+static const FieldPart * const I021_V2_6_130_PARTS[] = {
&I021_V2_6_130_LAT,
&I021_V2_6_130_LON,
NULL
@@ -28258,7 +28173,7 @@ static int hf_021_V2_6_131_LAT;
static const FieldPart I021_V2_6_131_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_6_131_LAT, NULL };
static int hf_021_V2_6_131_LON;
static const FieldPart I021_V2_6_131_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_V2_6_131_LON, NULL };
-static const FieldPart *I021_V2_6_131_PARTS[] = {
+static const FieldPart * const I021_V2_6_131_PARTS[] = {
&I021_V2_6_131_LAT,
&I021_V2_6_131_LON,
NULL
@@ -28267,7 +28182,7 @@ static const AsterixField I021_V2_6_131 = { FIXED, 8, 0, 0, &hf_021_V2_6_131, I0
static int hf_021_V2_6_132;
static int hf_021_V2_6_132_VALUE;
static const FieldPart I021_V2_6_132_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_021_V2_6_132_VALUE, NULL };
-static const FieldPart *I021_V2_6_132_PARTS[] = {
+static const FieldPart * const I021_V2_6_132_PARTS[] = {
&I021_V2_6_132_VALUE,
NULL
};
@@ -28275,7 +28190,7 @@ static const AsterixField I021_V2_6_132 = { FIXED, 1, 0, 0, &hf_021_V2_6_132, I0
static int hf_021_V2_6_140;
static int hf_021_V2_6_140_VALUE;
static const FieldPart I021_V2_6_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_V2_6_140_VALUE, NULL };
-static const FieldPart *I021_V2_6_140_PARTS[] = {
+static const FieldPart * const I021_V2_6_140_PARTS[] = {
&I021_V2_6_140_VALUE,
NULL
};
@@ -28283,7 +28198,7 @@ static const AsterixField I021_V2_6_140 = { FIXED, 2, 0, 0, &hf_021_V2_6_140, I0
static int hf_021_V2_6_145;
static int hf_021_V2_6_145_VALUE;
static const FieldPart I021_V2_6_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_6_145_VALUE, NULL };
-static const FieldPart *I021_V2_6_145_PARTS[] = {
+static const FieldPart * const I021_V2_6_145_PARTS[] = {
&I021_V2_6_145_VALUE,
NULL
};
@@ -28307,7 +28222,7 @@ static const value_string valstr_021_V2_6_146_S[] = {
static const FieldPart I021_V2_6_146_S = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_6_146_S, NULL };
static int hf_021_V2_6_146_ALT;
static const FieldPart I021_V2_6_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_6_146_ALT, NULL };
-static const FieldPart *I021_V2_6_146_PARTS[] = {
+static const FieldPart * const I021_V2_6_146_PARTS[] = {
&I021_V2_6_146_SAS,
&I021_V2_6_146_S,
&I021_V2_6_146_ALT,
@@ -28338,7 +28253,7 @@ static const value_string valstr_021_V2_6_148_AM[] = {
static const FieldPart I021_V2_6_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_148_AM, NULL };
static int hf_021_V2_6_148_ALT;
static const FieldPart I021_V2_6_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_V2_6_148_ALT, NULL };
-static const FieldPart *I021_V2_6_148_PARTS[] = {
+static const FieldPart * const I021_V2_6_148_PARTS[] = {
&I021_V2_6_148_MV,
&I021_V2_6_148_AH,
&I021_V2_6_148_AM,
@@ -28356,7 +28271,7 @@ static const value_string valstr_021_V2_6_150_IM[] = {
static const FieldPart I021_V2_6_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_150_IM, NULL };
static int hf_021_V2_6_150_AS;
static const FieldPart I021_V2_6_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_V2_6_150_AS, NULL };
-static const FieldPart *I021_V2_6_150_PARTS[] = {
+static const FieldPart * const I021_V2_6_150_PARTS[] = {
&I021_V2_6_150_IM,
&I021_V2_6_150_AS,
NULL
@@ -28372,7 +28287,7 @@ static const value_string valstr_021_V2_6_151_RE[] = {
static const FieldPart I021_V2_6_151_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_151_RE, NULL };
static int hf_021_V2_6_151_TAS;
static const FieldPart I021_V2_6_151_TAS = { 15, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_6_151_TAS, NULL };
-static const FieldPart *I021_V2_6_151_PARTS[] = {
+static const FieldPart * const I021_V2_6_151_PARTS[] = {
&I021_V2_6_151_RE,
&I021_V2_6_151_TAS,
NULL
@@ -28381,7 +28296,7 @@ static const AsterixField I021_V2_6_151 = { FIXED, 2, 0, 0, &hf_021_V2_6_151, I0
static int hf_021_V2_6_152;
static int hf_021_V2_6_152_VALUE;
static const FieldPart I021_V2_6_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_6_152_VALUE, NULL };
-static const FieldPart *I021_V2_6_152_PARTS[] = {
+static const FieldPart * const I021_V2_6_152_PARTS[] = {
&I021_V2_6_152_VALUE,
NULL
};
@@ -28396,7 +28311,7 @@ static const value_string valstr_021_V2_6_155_RE[] = {
static const FieldPart I021_V2_6_155_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_155_RE, NULL };
static int hf_021_V2_6_155_BVR;
static const FieldPart I021_V2_6_155_BVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_6_155_BVR, NULL };
-static const FieldPart *I021_V2_6_155_PARTS[] = {
+static const FieldPart * const I021_V2_6_155_PARTS[] = {
&I021_V2_6_155_RE,
&I021_V2_6_155_BVR,
NULL
@@ -28412,7 +28327,7 @@ static const value_string valstr_021_V2_6_157_RE[] = {
static const FieldPart I021_V2_6_157_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_157_RE, NULL };
static int hf_021_V2_6_157_GVR;
static const FieldPart I021_V2_6_157_GVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_V2_6_157_GVR, NULL };
-static const FieldPart *I021_V2_6_157_PARTS[] = {
+static const FieldPart * const I021_V2_6_157_PARTS[] = {
&I021_V2_6_157_RE,
&I021_V2_6_157_GVR,
NULL
@@ -28430,7 +28345,7 @@ static int hf_021_V2_6_160_GS;
static const FieldPart I021_V2_6_160_GS = { 15, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_021_V2_6_160_GS, NULL };
static int hf_021_V2_6_160_TA;
static const FieldPart I021_V2_6_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_V2_6_160_TA, NULL };
-static const FieldPart *I021_V2_6_160_PARTS[] = {
+static const FieldPart * const I021_V2_6_160_PARTS[] = {
&I021_V2_6_160_RE,
&I021_V2_6_160_GS,
&I021_V2_6_160_TA,
@@ -28440,7 +28355,7 @@ static const AsterixField I021_V2_6_160 = { FIXED, 4, 0, 0, &hf_021_V2_6_160, I0
static int hf_021_V2_6_161;
static int hf_021_V2_6_161_TRNUM;
static const FieldPart I021_V2_6_161_TRNUM = { 12, 1.0, FIELD_PART_HEX, &hf_021_V2_6_161_TRNUM, NULL };
-static const FieldPart *I021_V2_6_161_PARTS[] = {
+static const FieldPart * const I021_V2_6_161_PARTS[] = {
&IXXX_4bit_spare,
&I021_V2_6_161_TRNUM,
NULL
@@ -28449,7 +28364,7 @@ static const AsterixField I021_V2_6_161 = { FIXED, 2, 0, 0, &hf_021_V2_6_161, I0
static int hf_021_V2_6_165;
static int hf_021_V2_6_165_TAR;
static const FieldPart I021_V2_6_165_TAR = { 10, 0.03125, FIELD_PART_FLOAT, &hf_021_V2_6_165_TAR, NULL };
-static const FieldPart *I021_V2_6_165_PARTS[] = {
+static const FieldPart * const I021_V2_6_165_PARTS[] = {
&IXXX_6bit_spare,
&I021_V2_6_165_TAR,
NULL
@@ -28458,7 +28373,7 @@ static const AsterixField I021_V2_6_165 = { FIXED, 2, 0, 0, &hf_021_V2_6_165, I0
static int hf_021_V2_6_170;
static int hf_021_V2_6_170_VALUE;
static const FieldPart I021_V2_6_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_V2_6_170_VALUE, NULL };
-static const FieldPart *I021_V2_6_170_PARTS[] = {
+static const FieldPart * const I021_V2_6_170_PARTS[] = {
&I021_V2_6_170_VALUE,
NULL
};
@@ -28506,7 +28421,7 @@ static const value_string valstr_021_V2_6_200_SS[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_6_200_SS = { 2, 1.0, FIELD_PART_UINT, &hf_021_V2_6_200_SS, NULL };
-static const FieldPart *I021_V2_6_200_PARTS[] = {
+static const FieldPart * const I021_V2_6_200_PARTS[] = {
&I021_V2_6_200_ICF,
&I021_V2_6_200_LNAV,
&I021_V2_6_200_ME,
@@ -28545,7 +28460,7 @@ static const value_string valstr_021_V2_6_210_LTT[] = {
{ 0, NULL }
};
static const FieldPart I021_V2_6_210_LTT = { 3, 1.0, FIELD_PART_UINT, &hf_021_V2_6_210_LTT, NULL };
-static const FieldPart *I021_V2_6_210_PARTS[] = {
+static const FieldPart * const I021_V2_6_210_PARTS[] = {
&IXXX_1bit_spare,
&I021_V2_6_210_VNS,
&I021_V2_6_210_VN,
@@ -28557,7 +28472,7 @@ static int hf_021_V2_6_220;
static int hf_021_V2_6_220_WS;
static int hf_021_V2_6_220_WS_VALUE;
static const FieldPart I021_V2_6_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_6_220_WS_VALUE, NULL };
-static const FieldPart *I021_V2_6_220_WS_PARTS[] = {
+static const FieldPart * const I021_V2_6_220_WS_PARTS[] = {
&I021_V2_6_220_WS_VALUE,
NULL
};
@@ -28565,7 +28480,7 @@ static const AsterixField I021_V2_6_220_WS = { FIXED, 2, 0, 0, &hf_021_V2_6_220_
static int hf_021_V2_6_220_WD;
static int hf_021_V2_6_220_WD_VALUE;
static const FieldPart I021_V2_6_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_V2_6_220_WD_VALUE, NULL };
-static const FieldPart *I021_V2_6_220_WD_PARTS[] = {
+static const FieldPart * const I021_V2_6_220_WD_PARTS[] = {
&I021_V2_6_220_WD_VALUE,
NULL
};
@@ -28573,7 +28488,7 @@ static const AsterixField I021_V2_6_220_WD = { FIXED, 2, 0, 0, &hf_021_V2_6_220_
static int hf_021_V2_6_220_TMP;
static int hf_021_V2_6_220_TMP_VALUE;
static const FieldPart I021_V2_6_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_V2_6_220_TMP_VALUE, NULL };
-static const FieldPart *I021_V2_6_220_TMP_PARTS[] = {
+static const FieldPart * const I021_V2_6_220_TMP_PARTS[] = {
&I021_V2_6_220_TMP_VALUE,
NULL
};
@@ -28581,7 +28496,7 @@ static const AsterixField I021_V2_6_220_TMP = { FIXED, 2, 0, 0, &hf_021_V2_6_220
static int hf_021_V2_6_220_TRB;
static int hf_021_V2_6_220_TRB_VALUE;
static const FieldPart I021_V2_6_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_V2_6_220_TRB_VALUE, NULL };
-static const FieldPart *I021_V2_6_220_TRB_PARTS[] = {
+static const FieldPart * const I021_V2_6_220_TRB_PARTS[] = {
&I021_V2_6_220_TRB_VALUE,
NULL
};
@@ -28590,7 +28505,7 @@ static const AsterixField I021_V2_6_220 = { COMPOUND, 0, 0, 0, &hf_021_V2_6_220,
static int hf_021_V2_6_230;
static int hf_021_V2_6_230_VALUE;
static const FieldPart I021_V2_6_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_V2_6_230_VALUE, NULL };
-static const FieldPart *I021_V2_6_230_PARTS[] = {
+static const FieldPart * const I021_V2_6_230_PARTS[] = {
&I021_V2_6_230_VALUE,
NULL
};
@@ -28598,7 +28513,7 @@ static const AsterixField I021_V2_6_230 = { FIXED, 2, 0, 0, &hf_021_V2_6_230, I0
static int hf_021_V2_6_250;
static int hf_021_V2_6_250_VALUE;
static const FieldPart I021_V2_6_250_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_021_V2_6_250_VALUE, NULL };
-static const FieldPart *I021_V2_6_250_PARTS[] = {
+static const FieldPart * const I021_V2_6_250_PARTS[] = {
&I021_V2_6_250_VALUE,
NULL
};
@@ -28620,7 +28535,7 @@ static int hf_021_V2_6_260_TTI;
static const FieldPart I021_V2_6_260_TTI = { 2, 1.0, FIELD_PART_HEX, &hf_021_V2_6_260_TTI, NULL };
static int hf_021_V2_6_260_TID;
static const FieldPart I021_V2_6_260_TID = { 26, 1.0, FIELD_PART_HEX, &hf_021_V2_6_260_TID, NULL };
-static const FieldPart *I021_V2_6_260_PARTS[] = {
+static const FieldPart * const I021_V2_6_260_PARTS[] = {
&I021_V2_6_260_TYP,
&I021_V2_6_260_STYP,
&I021_V2_6_260_ARA,
@@ -28670,7 +28585,7 @@ static const value_string valstr_021_V2_6_271_IDENT[] = {
static const FieldPart I021_V2_6_271_IDENT = { 1, 1.0, FIELD_PART_UINT, &hf_021_V2_6_271_IDENT, NULL };
static int hf_021_V2_6_271_LW;
static const FieldPart I021_V2_6_271_LW = { 4, 1.0, FIELD_PART_HEX, &hf_021_V2_6_271_LW, NULL };
-static const FieldPart *I021_V2_6_271_PARTS[] = {
+static const FieldPart * const I021_V2_6_271_PARTS[] = {
&IXXX_2bit_spare,
&I021_V2_6_271_POA,
&I021_V2_6_271_CDTIS,
@@ -28688,7 +28603,7 @@ static int hf_021_V2_6_295;
static int hf_021_V2_6_295_AOS;
static int hf_021_V2_6_295_AOS_VALUE;
static const FieldPart I021_V2_6_295_AOS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_AOS_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_AOS_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_AOS_PARTS[] = {
&I021_V2_6_295_AOS_VALUE,
NULL
};
@@ -28696,7 +28611,7 @@ static const AsterixField I021_V2_6_295_AOS = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_TRD;
static int hf_021_V2_6_295_TRD_VALUE;
static const FieldPart I021_V2_6_295_TRD_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_TRD_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_TRD_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_TRD_PARTS[] = {
&I021_V2_6_295_TRD_VALUE,
NULL
};
@@ -28704,7 +28619,7 @@ static const AsterixField I021_V2_6_295_TRD = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_M3A;
static int hf_021_V2_6_295_M3A_VALUE;
static const FieldPart I021_V2_6_295_M3A_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_M3A_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_M3A_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_M3A_PARTS[] = {
&I021_V2_6_295_M3A_VALUE,
NULL
};
@@ -28712,7 +28627,7 @@ static const AsterixField I021_V2_6_295_M3A = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_QI;
static int hf_021_V2_6_295_QI_VALUE;
static const FieldPart I021_V2_6_295_QI_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_QI_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_QI_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_QI_PARTS[] = {
&I021_V2_6_295_QI_VALUE,
NULL
};
@@ -28720,7 +28635,7 @@ static const AsterixField I021_V2_6_295_QI = { FIXED, 1, 0, 0, &hf_021_V2_6_295_
static int hf_021_V2_6_295_TI1;
static int hf_021_V2_6_295_TI1_VALUE;
static const FieldPart I021_V2_6_295_TI1_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_TI1_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_TI1_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_TI1_PARTS[] = {
&I021_V2_6_295_TI1_VALUE,
NULL
};
@@ -28728,7 +28643,7 @@ static const AsterixField I021_V2_6_295_TI1 = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_MAM;
static int hf_021_V2_6_295_MAM_VALUE;
static const FieldPart I021_V2_6_295_MAM_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_MAM_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_MAM_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_MAM_PARTS[] = {
&I021_V2_6_295_MAM_VALUE,
NULL
};
@@ -28736,7 +28651,7 @@ static const AsterixField I021_V2_6_295_MAM = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_GH;
static int hf_021_V2_6_295_GH_VALUE;
static const FieldPart I021_V2_6_295_GH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_GH_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_GH_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_GH_PARTS[] = {
&I021_V2_6_295_GH_VALUE,
NULL
};
@@ -28744,7 +28659,7 @@ static const AsterixField I021_V2_6_295_GH = { FIXED, 1, 0, 0, &hf_021_V2_6_295_
static int hf_021_V2_6_295_FL;
static int hf_021_V2_6_295_FL_VALUE;
static const FieldPart I021_V2_6_295_FL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_FL_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_FL_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_FL_PARTS[] = {
&I021_V2_6_295_FL_VALUE,
NULL
};
@@ -28752,7 +28667,7 @@ static const AsterixField I021_V2_6_295_FL = { FIXED, 1, 0, 0, &hf_021_V2_6_295_
static int hf_021_V2_6_295_SAL;
static int hf_021_V2_6_295_SAL_VALUE;
static const FieldPart I021_V2_6_295_SAL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_SAL_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_SAL_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_SAL_PARTS[] = {
&I021_V2_6_295_SAL_VALUE,
NULL
};
@@ -28760,7 +28675,7 @@ static const AsterixField I021_V2_6_295_SAL = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_FSA;
static int hf_021_V2_6_295_FSA_VALUE;
static const FieldPart I021_V2_6_295_FSA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_FSA_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_FSA_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_FSA_PARTS[] = {
&I021_V2_6_295_FSA_VALUE,
NULL
};
@@ -28768,7 +28683,7 @@ static const AsterixField I021_V2_6_295_FSA = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_AS;
static int hf_021_V2_6_295_AS_VALUE;
static const FieldPart I021_V2_6_295_AS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_AS_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_AS_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_AS_PARTS[] = {
&I021_V2_6_295_AS_VALUE,
NULL
};
@@ -28776,7 +28691,7 @@ static const AsterixField I021_V2_6_295_AS = { FIXED, 1, 0, 0, &hf_021_V2_6_295_
static int hf_021_V2_6_295_TAS;
static int hf_021_V2_6_295_TAS_VALUE;
static const FieldPart I021_V2_6_295_TAS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_TAS_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_TAS_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_TAS_PARTS[] = {
&I021_V2_6_295_TAS_VALUE,
NULL
};
@@ -28784,7 +28699,7 @@ static const AsterixField I021_V2_6_295_TAS = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_MH;
static int hf_021_V2_6_295_MH_VALUE;
static const FieldPart I021_V2_6_295_MH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_MH_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_MH_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_MH_PARTS[] = {
&I021_V2_6_295_MH_VALUE,
NULL
};
@@ -28792,7 +28707,7 @@ static const AsterixField I021_V2_6_295_MH = { FIXED, 1, 0, 0, &hf_021_V2_6_295_
static int hf_021_V2_6_295_BVR;
static int hf_021_V2_6_295_BVR_VALUE;
static const FieldPart I021_V2_6_295_BVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_BVR_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_BVR_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_BVR_PARTS[] = {
&I021_V2_6_295_BVR_VALUE,
NULL
};
@@ -28800,7 +28715,7 @@ static const AsterixField I021_V2_6_295_BVR = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_GVR;
static int hf_021_V2_6_295_GVR_VALUE;
static const FieldPart I021_V2_6_295_GVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_GVR_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_GVR_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_GVR_PARTS[] = {
&I021_V2_6_295_GVR_VALUE,
NULL
};
@@ -28808,7 +28723,7 @@ static const AsterixField I021_V2_6_295_GVR = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_GV;
static int hf_021_V2_6_295_GV_VALUE;
static const FieldPart I021_V2_6_295_GV_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_GV_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_GV_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_GV_PARTS[] = {
&I021_V2_6_295_GV_VALUE,
NULL
};
@@ -28816,7 +28731,7 @@ static const AsterixField I021_V2_6_295_GV = { FIXED, 1, 0, 0, &hf_021_V2_6_295_
static int hf_021_V2_6_295_TAR;
static int hf_021_V2_6_295_TAR_VALUE;
static const FieldPart I021_V2_6_295_TAR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_TAR_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_TAR_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_TAR_PARTS[] = {
&I021_V2_6_295_TAR_VALUE,
NULL
};
@@ -28824,7 +28739,7 @@ static const AsterixField I021_V2_6_295_TAR = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_TI2;
static int hf_021_V2_6_295_TI2_VALUE;
static const FieldPart I021_V2_6_295_TI2_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_TI2_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_TI2_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_TI2_PARTS[] = {
&I021_V2_6_295_TI2_VALUE,
NULL
};
@@ -28832,7 +28747,7 @@ static const AsterixField I021_V2_6_295_TI2 = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_TS;
static int hf_021_V2_6_295_TS_VALUE;
static const FieldPart I021_V2_6_295_TS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_TS_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_TS_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_TS_PARTS[] = {
&I021_V2_6_295_TS_VALUE,
NULL
};
@@ -28840,7 +28755,7 @@ static const AsterixField I021_V2_6_295_TS = { FIXED, 1, 0, 0, &hf_021_V2_6_295_
static int hf_021_V2_6_295_MET;
static int hf_021_V2_6_295_MET_VALUE;
static const FieldPart I021_V2_6_295_MET_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_MET_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_MET_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_MET_PARTS[] = {
&I021_V2_6_295_MET_VALUE,
NULL
};
@@ -28848,7 +28763,7 @@ static const AsterixField I021_V2_6_295_MET = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_ROA;
static int hf_021_V2_6_295_ROA_VALUE;
static const FieldPart I021_V2_6_295_ROA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_ROA_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_ROA_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_ROA_PARTS[] = {
&I021_V2_6_295_ROA_VALUE,
NULL
};
@@ -28856,7 +28771,7 @@ static const AsterixField I021_V2_6_295_ROA = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_ARA;
static int hf_021_V2_6_295_ARA_VALUE;
static const FieldPart I021_V2_6_295_ARA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_ARA_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_ARA_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_ARA_PARTS[] = {
&I021_V2_6_295_ARA_VALUE,
NULL
};
@@ -28864,7 +28779,7 @@ static const AsterixField I021_V2_6_295_ARA = { FIXED, 1, 0, 0, &hf_021_V2_6_295
static int hf_021_V2_6_295_SCC;
static int hf_021_V2_6_295_SCC_VALUE;
static const FieldPart I021_V2_6_295_SCC_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_V2_6_295_SCC_VALUE, NULL };
-static const FieldPart *I021_V2_6_295_SCC_PARTS[] = {
+static const FieldPart * const I021_V2_6_295_SCC_PARTS[] = {
&I021_V2_6_295_SCC_VALUE,
NULL
};
@@ -28873,7 +28788,7 @@ static const AsterixField I021_V2_6_295 = { COMPOUND, 0, 0, 0, &hf_021_V2_6_295,
static int hf_021_V2_6_400;
static int hf_021_V2_6_400_VALUE;
static const FieldPart I021_V2_6_400_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_V2_6_400_VALUE, NULL };
-static const FieldPart *I021_V2_6_400_PARTS[] = {
+static const FieldPart * const I021_V2_6_400_PARTS[] = {
&I021_V2_6_400_VALUE,
NULL
};
@@ -28936,7 +28851,7 @@ static const value_string valstr_021_008_SA[] = {
{ 0, NULL }
};
static const FieldPart I021_008_SA = { 1, 1.0, FIELD_PART_UINT, &hf_021_008_SA, NULL };
-static const FieldPart *I021_008_PARTS[] = {
+static const FieldPart * const I021_008_PARTS[] = {
&I021_008_RA,
&I021_008_TC,
&I021_008_TS,
@@ -28952,7 +28867,7 @@ static int hf_021_010_SAC;
static const FieldPart I021_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_021_010_SAC, NULL };
static int hf_021_010_SIC;
static const FieldPart I021_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_021_010_SIC, NULL };
-static const FieldPart *I021_010_PARTS[] = {
+static const FieldPart * const I021_010_PARTS[] = {
&I021_010_SAC,
&I021_010_SIC,
NULL
@@ -28961,7 +28876,7 @@ static const AsterixField I021_010 = { FIXED, 2, 0, 0, &hf_021_010, I021_010_PAR
static int hf_021_015;
static int hf_021_015_VALUE;
static const FieldPart I021_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_015_VALUE, NULL };
-static const FieldPart *I021_015_PARTS[] = {
+static const FieldPart * const I021_015_PARTS[] = {
&I021_015_VALUE,
NULL
};
@@ -28969,7 +28884,7 @@ static const AsterixField I021_015 = { FIXED, 1, 0, 0, &hf_021_015, I021_015_PAR
static int hf_021_016;
static int hf_021_016_VALUE;
static const FieldPart I021_016_VALUE = { 8, 0.5, FIELD_PART_UFLOAT, &hf_021_016_VALUE, NULL };
-static const FieldPart *I021_016_PARTS[] = {
+static const FieldPart * const I021_016_PARTS[] = {
&I021_016_VALUE,
NULL
};
@@ -29005,7 +28920,7 @@ static const value_string valstr_021_020_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I021_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_020_VALUE, NULL };
-static const FieldPart *I021_020_PARTS[] = {
+static const FieldPart * const I021_020_PARTS[] = {
&I021_020_VALUE,
NULL
};
@@ -29137,7 +29052,7 @@ static int hf_021_040_TBC;
static const FieldPart I021_040_TBC = { 7, 1.0, FIELD_PART_HEX, &hf_021_040_TBC, NULL };
static int hf_021_040_MBC;
static const FieldPart I021_040_MBC = { 7, 1.0, FIELD_PART_HEX, &hf_021_040_MBC, NULL };
-static const FieldPart *I021_040_PARTS[] = {
+static const FieldPart * const I021_040_PARTS[] = {
&I021_040_ATP,
&I021_040_ARC,
&I021_040_RC,
@@ -29168,7 +29083,7 @@ static const AsterixField I021_040 = { FX, 1, 0, 0, &hf_021_040, I021_040_PARTS,
static int hf_021_070;
static int hf_021_070_MODE3A;
static const FieldPart I021_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_021_070_MODE3A, NULL };
-static const FieldPart *I021_070_PARTS[] = {
+static const FieldPart * const I021_070_PARTS[] = {
&IXXX_4bit_spare,
&I021_070_MODE3A,
NULL
@@ -29177,7 +29092,7 @@ static const AsterixField I021_070 = { FIXED, 2, 0, 0, &hf_021_070, I021_070_PAR
static int hf_021_071;
static int hf_021_071_VALUE;
static const FieldPart I021_071_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_071_VALUE, NULL };
-static const FieldPart *I021_071_PARTS[] = {
+static const FieldPart * const I021_071_PARTS[] = {
&I021_071_VALUE,
NULL
};
@@ -29185,7 +29100,7 @@ static const AsterixField I021_071 = { FIXED, 3, 0, 0, &hf_021_071, I021_071_PAR
static int hf_021_072;
static int hf_021_072_VALUE;
static const FieldPart I021_072_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_072_VALUE, NULL };
-static const FieldPart *I021_072_PARTS[] = {
+static const FieldPart * const I021_072_PARTS[] = {
&I021_072_VALUE,
NULL
};
@@ -29193,7 +29108,7 @@ static const AsterixField I021_072 = { FIXED, 3, 0, 0, &hf_021_072, I021_072_PAR
static int hf_021_073;
static int hf_021_073_VALUE;
static const FieldPart I021_073_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_073_VALUE, NULL };
-static const FieldPart *I021_073_PARTS[] = {
+static const FieldPart * const I021_073_PARTS[] = {
&I021_073_VALUE,
NULL
};
@@ -29210,7 +29125,7 @@ static const value_string valstr_021_074_FSI[] = {
static const FieldPart I021_074_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_074_FSI, NULL };
static int hf_021_074_TOMRP;
static const FieldPart I021_074_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_074_TOMRP, NULL };
-static const FieldPart *I021_074_PARTS[] = {
+static const FieldPart * const I021_074_PARTS[] = {
&I021_074_FSI,
&I021_074_TOMRP,
NULL
@@ -29219,7 +29134,7 @@ static const AsterixField I021_074 = { FIXED, 4, 0, 0, &hf_021_074, I021_074_PAR
static int hf_021_075;
static int hf_021_075_VALUE;
static const FieldPart I021_075_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_075_VALUE, NULL };
-static const FieldPart *I021_075_PARTS[] = {
+static const FieldPart * const I021_075_PARTS[] = {
&I021_075_VALUE,
NULL
};
@@ -29236,7 +29151,7 @@ static const value_string valstr_021_076_FSI[] = {
static const FieldPart I021_076_FSI = { 2, 1.0, FIELD_PART_UINT, &hf_021_076_FSI, NULL };
static int hf_021_076_TOMRP;
static const FieldPart I021_076_TOMRP = { 30, 9.313225746154785e-10, FIELD_PART_UFLOAT, &hf_021_076_TOMRP, NULL };
-static const FieldPart *I021_076_PARTS[] = {
+static const FieldPart * const I021_076_PARTS[] = {
&I021_076_FSI,
&I021_076_TOMRP,
NULL
@@ -29245,7 +29160,7 @@ static const AsterixField I021_076 = { FIXED, 4, 0, 0, &hf_021_076, I021_076_PAR
static int hf_021_077;
static int hf_021_077_VALUE;
static const FieldPart I021_077_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_021_077_VALUE, NULL };
-static const FieldPart *I021_077_PARTS[] = {
+static const FieldPart * const I021_077_PARTS[] = {
&I021_077_VALUE,
NULL
};
@@ -29253,7 +29168,7 @@ static const AsterixField I021_077 = { FIXED, 3, 0, 0, &hf_021_077, I021_077_PAR
static int hf_021_080;
static int hf_021_080_VALUE;
static const FieldPart I021_080_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_021_080_VALUE, NULL };
-static const FieldPart *I021_080_PARTS[] = {
+static const FieldPart * const I021_080_PARTS[] = {
&I021_080_VALUE,
NULL
};
@@ -29282,7 +29197,7 @@ static int hf_021_090_GVA;
static const FieldPart I021_090_GVA = { 2, 1.0, FIELD_PART_HEX, &hf_021_090_GVA, NULL };
static int hf_021_090_PIC;
static const FieldPart I021_090_PIC = { 4, 1.0, FIELD_PART_HEX, &hf_021_090_PIC, NULL };
-static const FieldPart *I021_090_PARTS[] = {
+static const FieldPart * const I021_090_PARTS[] = {
&I021_090_NUCRNACV,
&I021_090_NUCPNIC,
&IXXX_FX,
@@ -29317,7 +29232,7 @@ static const value_string valstr_021_110_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I021_110_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_021_110_TIS_NVB, NULL };
-static const FieldPart *I021_110_TIS_PARTS[] = {
+static const FieldPart * const I021_110_TIS_PARTS[] = {
&I021_110_TIS_NAV,
&I021_110_TIS_NVB,
&IXXX_5bit_spare,
@@ -29392,7 +29307,7 @@ static int hf_021_110_TID_TOV;
static const FieldPart I021_110_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_021_110_TID_TOV, NULL };
static int hf_021_110_TID_TTR;
static const FieldPart I021_110_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_021_110_TID_TTR, NULL };
-static const FieldPart *I021_110_TID_PARTS[] = {
+static const FieldPart * const I021_110_TID_PARTS[] = {
&I021_110_TID_TCA,
&I021_110_TID_NC,
&I021_110_TID_TCPN,
@@ -29414,7 +29329,7 @@ static int hf_021_130_LAT;
static const FieldPart I021_130_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_130_LAT, NULL };
static int hf_021_130_LON;
static const FieldPart I021_130_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_021_130_LON, NULL };
-static const FieldPart *I021_130_PARTS[] = {
+static const FieldPart * const I021_130_PARTS[] = {
&I021_130_LAT,
&I021_130_LON,
NULL
@@ -29425,7 +29340,7 @@ static int hf_021_131_LAT;
static const FieldPart I021_131_LAT = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_131_LAT, NULL };
static int hf_021_131_LON;
static const FieldPart I021_131_LON = { 32, 1.6763806343078613e-07, FIELD_PART_FLOAT, &hf_021_131_LON, NULL };
-static const FieldPart *I021_131_PARTS[] = {
+static const FieldPart * const I021_131_PARTS[] = {
&I021_131_LAT,
&I021_131_LON,
NULL
@@ -29434,7 +29349,7 @@ static const AsterixField I021_131 = { FIXED, 8, 0, 0, &hf_021_131, I021_131_PAR
static int hf_021_132;
static int hf_021_132_VALUE;
static const FieldPart I021_132_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_021_132_VALUE, NULL };
-static const FieldPart *I021_132_PARTS[] = {
+static const FieldPart * const I021_132_PARTS[] = {
&I021_132_VALUE,
NULL
};
@@ -29442,7 +29357,7 @@ static const AsterixField I021_132 = { FIXED, 1, 0, 0, &hf_021_132, I021_132_PAR
static int hf_021_140;
static int hf_021_140_VALUE;
static const FieldPart I021_140_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_021_140_VALUE, NULL };
-static const FieldPart *I021_140_PARTS[] = {
+static const FieldPart * const I021_140_PARTS[] = {
&I021_140_VALUE,
NULL
};
@@ -29450,7 +29365,7 @@ static const AsterixField I021_140 = { FIXED, 2, 0, 0, &hf_021_140, I021_140_PAR
static int hf_021_145;
static int hf_021_145_VALUE;
static const FieldPart I021_145_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_145_VALUE, NULL };
-static const FieldPart *I021_145_PARTS[] = {
+static const FieldPart * const I021_145_PARTS[] = {
&I021_145_VALUE,
NULL
};
@@ -29474,7 +29389,7 @@ static const value_string valstr_021_146_S[] = {
static const FieldPart I021_146_S = { 2, 1.0, FIELD_PART_UINT, &hf_021_146_S, NULL };
static int hf_021_146_ALT;
static const FieldPart I021_146_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_146_ALT, NULL };
-static const FieldPart *I021_146_PARTS[] = {
+static const FieldPart * const I021_146_PARTS[] = {
&I021_146_SAS,
&I021_146_S,
&I021_146_ALT,
@@ -29505,7 +29420,7 @@ static const value_string valstr_021_148_AM[] = {
static const FieldPart I021_148_AM = { 1, 1.0, FIELD_PART_UINT, &hf_021_148_AM, NULL };
static int hf_021_148_ALT;
static const FieldPart I021_148_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_021_148_ALT, NULL };
-static const FieldPart *I021_148_PARTS[] = {
+static const FieldPart * const I021_148_PARTS[] = {
&I021_148_MV,
&I021_148_AH,
&I021_148_AM,
@@ -29523,7 +29438,7 @@ static const value_string valstr_021_150_IM[] = {
static const FieldPart I021_150_IM = { 1, 1.0, FIELD_PART_UINT, &hf_021_150_IM, NULL };
static int hf_021_150_AS;
static const FieldPart I021_150_AS = { 15, 1.0, FIELD_PART_HEX, &hf_021_150_AS, NULL };
-static const FieldPart *I021_150_PARTS[] = {
+static const FieldPart * const I021_150_PARTS[] = {
&I021_150_IM,
&I021_150_AS,
NULL
@@ -29539,7 +29454,7 @@ static const value_string valstr_021_151_RE[] = {
static const FieldPart I021_151_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_151_RE, NULL };
static int hf_021_151_TAS;
static const FieldPart I021_151_TAS = { 15, 1.0, FIELD_PART_UFLOAT, &hf_021_151_TAS, NULL };
-static const FieldPart *I021_151_PARTS[] = {
+static const FieldPart * const I021_151_PARTS[] = {
&I021_151_RE,
&I021_151_TAS,
NULL
@@ -29548,7 +29463,7 @@ static const AsterixField I021_151 = { FIXED, 2, 0, 0, &hf_021_151, I021_151_PAR
static int hf_021_152;
static int hf_021_152_VALUE;
static const FieldPart I021_152_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_152_VALUE, NULL };
-static const FieldPart *I021_152_PARTS[] = {
+static const FieldPart * const I021_152_PARTS[] = {
&I021_152_VALUE,
NULL
};
@@ -29563,7 +29478,7 @@ static const value_string valstr_021_155_RE[] = {
static const FieldPart I021_155_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_155_RE, NULL };
static int hf_021_155_BVR;
static const FieldPart I021_155_BVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_155_BVR, NULL };
-static const FieldPart *I021_155_PARTS[] = {
+static const FieldPart * const I021_155_PARTS[] = {
&I021_155_RE,
&I021_155_BVR,
NULL
@@ -29579,7 +29494,7 @@ static const value_string valstr_021_157_RE[] = {
static const FieldPart I021_157_RE = { 1, 1.0, FIELD_PART_UINT, &hf_021_157_RE, NULL };
static int hf_021_157_GVR;
static const FieldPart I021_157_GVR = { 15, 6.25, FIELD_PART_FLOAT, &hf_021_157_GVR, NULL };
-static const FieldPart *I021_157_PARTS[] = {
+static const FieldPart * const I021_157_PARTS[] = {
&I021_157_RE,
&I021_157_GVR,
NULL
@@ -29597,7 +29512,7 @@ static int hf_021_160_GS;
static const FieldPart I021_160_GS = { 15, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_021_160_GS, NULL };
static int hf_021_160_TA;
static const FieldPart I021_160_TA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_021_160_TA, NULL };
-static const FieldPart *I021_160_PARTS[] = {
+static const FieldPart * const I021_160_PARTS[] = {
&I021_160_RE,
&I021_160_GS,
&I021_160_TA,
@@ -29607,7 +29522,7 @@ static const AsterixField I021_160 = { FIXED, 4, 0, 0, &hf_021_160, I021_160_PAR
static int hf_021_161;
static int hf_021_161_TRNUM;
static const FieldPart I021_161_TRNUM = { 12, 1.0, FIELD_PART_HEX, &hf_021_161_TRNUM, NULL };
-static const FieldPart *I021_161_PARTS[] = {
+static const FieldPart * const I021_161_PARTS[] = {
&IXXX_4bit_spare,
&I021_161_TRNUM,
NULL
@@ -29616,7 +29531,7 @@ static const AsterixField I021_161 = { FIXED, 2, 0, 0, &hf_021_161, I021_161_PAR
static int hf_021_165;
static int hf_021_165_TAR;
static const FieldPart I021_165_TAR = { 10, 0.03125, FIELD_PART_FLOAT, &hf_021_165_TAR, NULL };
-static const FieldPart *I021_165_PARTS[] = {
+static const FieldPart * const I021_165_PARTS[] = {
&IXXX_6bit_spare,
&I021_165_TAR,
NULL
@@ -29625,7 +29540,7 @@ static const AsterixField I021_165 = { FIXED, 2, 0, 0, &hf_021_165, I021_165_PAR
static int hf_021_170;
static int hf_021_170_VALUE;
static const FieldPart I021_170_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_021_170_VALUE, NULL };
-static const FieldPart *I021_170_PARTS[] = {
+static const FieldPart * const I021_170_PARTS[] = {
&I021_170_VALUE,
NULL
};
@@ -29673,7 +29588,7 @@ static const value_string valstr_021_200_SS[] = {
{ 0, NULL }
};
static const FieldPart I021_200_SS = { 2, 1.0, FIELD_PART_UINT, &hf_021_200_SS, NULL };
-static const FieldPart *I021_200_PARTS[] = {
+static const FieldPart * const I021_200_PARTS[] = {
&I021_200_ICF,
&I021_200_LNAV,
&I021_200_ME,
@@ -29712,7 +29627,7 @@ static const value_string valstr_021_210_LTT[] = {
{ 0, NULL }
};
static const FieldPart I021_210_LTT = { 3, 1.0, FIELD_PART_UINT, &hf_021_210_LTT, NULL };
-static const FieldPart *I021_210_PARTS[] = {
+static const FieldPart * const I021_210_PARTS[] = {
&IXXX_1bit_spare,
&I021_210_VNS,
&I021_210_VN,
@@ -29724,7 +29639,7 @@ static int hf_021_220;
static int hf_021_220_WS;
static int hf_021_220_WS_VALUE;
static const FieldPart I021_220_WS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_220_WS_VALUE, NULL };
-static const FieldPart *I021_220_WS_PARTS[] = {
+static const FieldPart * const I021_220_WS_PARTS[] = {
&I021_220_WS_VALUE,
NULL
};
@@ -29732,7 +29647,7 @@ static const AsterixField I021_220_WS = { FIXED, 2, 0, 0, &hf_021_220_WS, I021_2
static int hf_021_220_WD;
static int hf_021_220_WD_VALUE;
static const FieldPart I021_220_WD_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_021_220_WD_VALUE, NULL };
-static const FieldPart *I021_220_WD_PARTS[] = {
+static const FieldPart * const I021_220_WD_PARTS[] = {
&I021_220_WD_VALUE,
NULL
};
@@ -29740,7 +29655,7 @@ static const AsterixField I021_220_WD = { FIXED, 2, 0, 0, &hf_021_220_WD, I021_2
static int hf_021_220_TMP;
static int hf_021_220_TMP_VALUE;
static const FieldPart I021_220_TMP_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_021_220_TMP_VALUE, NULL };
-static const FieldPart *I021_220_TMP_PARTS[] = {
+static const FieldPart * const I021_220_TMP_PARTS[] = {
&I021_220_TMP_VALUE,
NULL
};
@@ -29748,7 +29663,7 @@ static const AsterixField I021_220_TMP = { FIXED, 2, 0, 0, &hf_021_220_TMP, I021
static int hf_021_220_TRB;
static int hf_021_220_TRB_VALUE;
static const FieldPart I021_220_TRB_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_021_220_TRB_VALUE, NULL };
-static const FieldPart *I021_220_TRB_PARTS[] = {
+static const FieldPart * const I021_220_TRB_PARTS[] = {
&I021_220_TRB_VALUE,
NULL
};
@@ -29757,7 +29672,7 @@ static const AsterixField I021_220 = { COMPOUND, 0, 0, 0, &hf_021_220, NULL, { &
static int hf_021_230;
static int hf_021_230_VALUE;
static const FieldPart I021_230_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_021_230_VALUE, NULL };
-static const FieldPart *I021_230_PARTS[] = {
+static const FieldPart * const I021_230_PARTS[] = {
&I021_230_VALUE,
NULL
};
@@ -29765,7 +29680,7 @@ static const AsterixField I021_230 = { FIXED, 2, 0, 0, &hf_021_230, I021_230_PAR
static int hf_021_250;
static int hf_021_250_VALUE;
static const FieldPart I021_250_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_021_250_VALUE, NULL };
-static const FieldPart *I021_250_PARTS[] = {
+static const FieldPart * const I021_250_PARTS[] = {
&I021_250_VALUE,
NULL
};
@@ -29787,7 +29702,7 @@ static int hf_021_260_TTI;
static const FieldPart I021_260_TTI = { 2, 1.0, FIELD_PART_HEX, &hf_021_260_TTI, NULL };
static int hf_021_260_TID;
static const FieldPart I021_260_TID = { 26, 1.0, FIELD_PART_HEX, &hf_021_260_TID, NULL };
-static const FieldPart *I021_260_PARTS[] = {
+static const FieldPart * const I021_260_PARTS[] = {
&I021_260_TYP,
&I021_260_STYP,
&I021_260_ARA,
@@ -29837,7 +29752,7 @@ static const value_string valstr_021_271_IDENT[] = {
static const FieldPart I021_271_IDENT = { 1, 1.0, FIELD_PART_UINT, &hf_021_271_IDENT, NULL };
static int hf_021_271_LW;
static const FieldPart I021_271_LW = { 4, 1.0, FIELD_PART_HEX, &hf_021_271_LW, NULL };
-static const FieldPart *I021_271_PARTS[] = {
+static const FieldPart * const I021_271_PARTS[] = {
&IXXX_2bit_spare,
&I021_271_POA,
&I021_271_CDTIS,
@@ -29855,7 +29770,7 @@ static int hf_021_295;
static int hf_021_295_AOS;
static int hf_021_295_AOS_VALUE;
static const FieldPart I021_295_AOS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_AOS_VALUE, NULL };
-static const FieldPart *I021_295_AOS_PARTS[] = {
+static const FieldPart * const I021_295_AOS_PARTS[] = {
&I021_295_AOS_VALUE,
NULL
};
@@ -29863,7 +29778,7 @@ static const AsterixField I021_295_AOS = { FIXED, 1, 0, 0, &hf_021_295_AOS, I021
static int hf_021_295_TRD;
static int hf_021_295_TRD_VALUE;
static const FieldPart I021_295_TRD_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_TRD_VALUE, NULL };
-static const FieldPart *I021_295_TRD_PARTS[] = {
+static const FieldPart * const I021_295_TRD_PARTS[] = {
&I021_295_TRD_VALUE,
NULL
};
@@ -29871,7 +29786,7 @@ static const AsterixField I021_295_TRD = { FIXED, 1, 0, 0, &hf_021_295_TRD, I021
static int hf_021_295_M3A;
static int hf_021_295_M3A_VALUE;
static const FieldPart I021_295_M3A_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_M3A_VALUE, NULL };
-static const FieldPart *I021_295_M3A_PARTS[] = {
+static const FieldPart * const I021_295_M3A_PARTS[] = {
&I021_295_M3A_VALUE,
NULL
};
@@ -29879,7 +29794,7 @@ static const AsterixField I021_295_M3A = { FIXED, 1, 0, 0, &hf_021_295_M3A, I021
static int hf_021_295_QI;
static int hf_021_295_QI_VALUE;
static const FieldPart I021_295_QI_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_QI_VALUE, NULL };
-static const FieldPart *I021_295_QI_PARTS[] = {
+static const FieldPart * const I021_295_QI_PARTS[] = {
&I021_295_QI_VALUE,
NULL
};
@@ -29887,7 +29802,7 @@ static const AsterixField I021_295_QI = { FIXED, 1, 0, 0, &hf_021_295_QI, I021_2
static int hf_021_295_TI1;
static int hf_021_295_TI1_VALUE;
static const FieldPart I021_295_TI1_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_TI1_VALUE, NULL };
-static const FieldPart *I021_295_TI1_PARTS[] = {
+static const FieldPart * const I021_295_TI1_PARTS[] = {
&I021_295_TI1_VALUE,
NULL
};
@@ -29895,7 +29810,7 @@ static const AsterixField I021_295_TI1 = { FIXED, 1, 0, 0, &hf_021_295_TI1, I021
static int hf_021_295_MAM;
static int hf_021_295_MAM_VALUE;
static const FieldPart I021_295_MAM_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_MAM_VALUE, NULL };
-static const FieldPart *I021_295_MAM_PARTS[] = {
+static const FieldPart * const I021_295_MAM_PARTS[] = {
&I021_295_MAM_VALUE,
NULL
};
@@ -29903,7 +29818,7 @@ static const AsterixField I021_295_MAM = { FIXED, 1, 0, 0, &hf_021_295_MAM, I021
static int hf_021_295_GH;
static int hf_021_295_GH_VALUE;
static const FieldPart I021_295_GH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_GH_VALUE, NULL };
-static const FieldPart *I021_295_GH_PARTS[] = {
+static const FieldPart * const I021_295_GH_PARTS[] = {
&I021_295_GH_VALUE,
NULL
};
@@ -29911,7 +29826,7 @@ static const AsterixField I021_295_GH = { FIXED, 1, 0, 0, &hf_021_295_GH, I021_2
static int hf_021_295_FL;
static int hf_021_295_FL_VALUE;
static const FieldPart I021_295_FL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_FL_VALUE, NULL };
-static const FieldPart *I021_295_FL_PARTS[] = {
+static const FieldPart * const I021_295_FL_PARTS[] = {
&I021_295_FL_VALUE,
NULL
};
@@ -29919,7 +29834,7 @@ static const AsterixField I021_295_FL = { FIXED, 1, 0, 0, &hf_021_295_FL, I021_2
static int hf_021_295_SAL;
static int hf_021_295_SAL_VALUE;
static const FieldPart I021_295_SAL_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_SAL_VALUE, NULL };
-static const FieldPart *I021_295_SAL_PARTS[] = {
+static const FieldPart * const I021_295_SAL_PARTS[] = {
&I021_295_SAL_VALUE,
NULL
};
@@ -29927,7 +29842,7 @@ static const AsterixField I021_295_SAL = { FIXED, 1, 0, 0, &hf_021_295_SAL, I021
static int hf_021_295_FSA;
static int hf_021_295_FSA_VALUE;
static const FieldPart I021_295_FSA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_FSA_VALUE, NULL };
-static const FieldPart *I021_295_FSA_PARTS[] = {
+static const FieldPart * const I021_295_FSA_PARTS[] = {
&I021_295_FSA_VALUE,
NULL
};
@@ -29935,7 +29850,7 @@ static const AsterixField I021_295_FSA = { FIXED, 1, 0, 0, &hf_021_295_FSA, I021
static int hf_021_295_AS;
static int hf_021_295_AS_VALUE;
static const FieldPart I021_295_AS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_AS_VALUE, NULL };
-static const FieldPart *I021_295_AS_PARTS[] = {
+static const FieldPart * const I021_295_AS_PARTS[] = {
&I021_295_AS_VALUE,
NULL
};
@@ -29943,7 +29858,7 @@ static const AsterixField I021_295_AS = { FIXED, 1, 0, 0, &hf_021_295_AS, I021_2
static int hf_021_295_TAS;
static int hf_021_295_TAS_VALUE;
static const FieldPart I021_295_TAS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_TAS_VALUE, NULL };
-static const FieldPart *I021_295_TAS_PARTS[] = {
+static const FieldPart * const I021_295_TAS_PARTS[] = {
&I021_295_TAS_VALUE,
NULL
};
@@ -29951,7 +29866,7 @@ static const AsterixField I021_295_TAS = { FIXED, 1, 0, 0, &hf_021_295_TAS, I021
static int hf_021_295_MH;
static int hf_021_295_MH_VALUE;
static const FieldPart I021_295_MH_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_MH_VALUE, NULL };
-static const FieldPart *I021_295_MH_PARTS[] = {
+static const FieldPart * const I021_295_MH_PARTS[] = {
&I021_295_MH_VALUE,
NULL
};
@@ -29959,7 +29874,7 @@ static const AsterixField I021_295_MH = { FIXED, 1, 0, 0, &hf_021_295_MH, I021_2
static int hf_021_295_BVR;
static int hf_021_295_BVR_VALUE;
static const FieldPart I021_295_BVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_BVR_VALUE, NULL };
-static const FieldPart *I021_295_BVR_PARTS[] = {
+static const FieldPart * const I021_295_BVR_PARTS[] = {
&I021_295_BVR_VALUE,
NULL
};
@@ -29967,7 +29882,7 @@ static const AsterixField I021_295_BVR = { FIXED, 1, 0, 0, &hf_021_295_BVR, I021
static int hf_021_295_GVR;
static int hf_021_295_GVR_VALUE;
static const FieldPart I021_295_GVR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_GVR_VALUE, NULL };
-static const FieldPart *I021_295_GVR_PARTS[] = {
+static const FieldPart * const I021_295_GVR_PARTS[] = {
&I021_295_GVR_VALUE,
NULL
};
@@ -29975,7 +29890,7 @@ static const AsterixField I021_295_GVR = { FIXED, 1, 0, 0, &hf_021_295_GVR, I021
static int hf_021_295_GV;
static int hf_021_295_GV_VALUE;
static const FieldPart I021_295_GV_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_GV_VALUE, NULL };
-static const FieldPart *I021_295_GV_PARTS[] = {
+static const FieldPart * const I021_295_GV_PARTS[] = {
&I021_295_GV_VALUE,
NULL
};
@@ -29983,7 +29898,7 @@ static const AsterixField I021_295_GV = { FIXED, 1, 0, 0, &hf_021_295_GV, I021_2
static int hf_021_295_TAR;
static int hf_021_295_TAR_VALUE;
static const FieldPart I021_295_TAR_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_TAR_VALUE, NULL };
-static const FieldPart *I021_295_TAR_PARTS[] = {
+static const FieldPart * const I021_295_TAR_PARTS[] = {
&I021_295_TAR_VALUE,
NULL
};
@@ -29991,7 +29906,7 @@ static const AsterixField I021_295_TAR = { FIXED, 1, 0, 0, &hf_021_295_TAR, I021
static int hf_021_295_TI2;
static int hf_021_295_TI2_VALUE;
static const FieldPart I021_295_TI2_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_TI2_VALUE, NULL };
-static const FieldPart *I021_295_TI2_PARTS[] = {
+static const FieldPart * const I021_295_TI2_PARTS[] = {
&I021_295_TI2_VALUE,
NULL
};
@@ -29999,7 +29914,7 @@ static const AsterixField I021_295_TI2 = { FIXED, 1, 0, 0, &hf_021_295_TI2, I021
static int hf_021_295_TS;
static int hf_021_295_TS_VALUE;
static const FieldPart I021_295_TS_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_TS_VALUE, NULL };
-static const FieldPart *I021_295_TS_PARTS[] = {
+static const FieldPart * const I021_295_TS_PARTS[] = {
&I021_295_TS_VALUE,
NULL
};
@@ -30007,7 +29922,7 @@ static const AsterixField I021_295_TS = { FIXED, 1, 0, 0, &hf_021_295_TS, I021_2
static int hf_021_295_MET;
static int hf_021_295_MET_VALUE;
static const FieldPart I021_295_MET_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_MET_VALUE, NULL };
-static const FieldPart *I021_295_MET_PARTS[] = {
+static const FieldPart * const I021_295_MET_PARTS[] = {
&I021_295_MET_VALUE,
NULL
};
@@ -30015,7 +29930,7 @@ static const AsterixField I021_295_MET = { FIXED, 1, 0, 0, &hf_021_295_MET, I021
static int hf_021_295_ROA;
static int hf_021_295_ROA_VALUE;
static const FieldPart I021_295_ROA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_ROA_VALUE, NULL };
-static const FieldPart *I021_295_ROA_PARTS[] = {
+static const FieldPart * const I021_295_ROA_PARTS[] = {
&I021_295_ROA_VALUE,
NULL
};
@@ -30023,7 +29938,7 @@ static const AsterixField I021_295_ROA = { FIXED, 1, 0, 0, &hf_021_295_ROA, I021
static int hf_021_295_ARA;
static int hf_021_295_ARA_VALUE;
static const FieldPart I021_295_ARA_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_ARA_VALUE, NULL };
-static const FieldPart *I021_295_ARA_PARTS[] = {
+static const FieldPart * const I021_295_ARA_PARTS[] = {
&I021_295_ARA_VALUE,
NULL
};
@@ -30031,7 +29946,7 @@ static const AsterixField I021_295_ARA = { FIXED, 1, 0, 0, &hf_021_295_ARA, I021
static int hf_021_295_SCC;
static int hf_021_295_SCC_VALUE;
static const FieldPart I021_295_SCC_VALUE = { 8, 0.1, FIELD_PART_UFLOAT, &hf_021_295_SCC_VALUE, NULL };
-static const FieldPart *I021_295_SCC_PARTS[] = {
+static const FieldPart * const I021_295_SCC_PARTS[] = {
&I021_295_SCC_VALUE,
NULL
};
@@ -30040,7 +29955,7 @@ static const AsterixField I021_295 = { COMPOUND, 0, 0, 0, &hf_021_295, NULL, { &
static int hf_021_400;
static int hf_021_400_VALUE;
static const FieldPart I021_400_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_021_400_VALUE, NULL };
-static const FieldPart *I021_400_PARTS[] = {
+static const FieldPart * const I021_400_PARTS[] = {
&I021_400_VALUE,
NULL
};
@@ -30050,8 +29965,7 @@ static const AsterixField I021_RE = { EXP, 0, 0, 1, &hf_021_RE, NULL, { NULL } }
static int hf_021_SP;
static const AsterixField I021_SP = { EXP, 0, 0, 1, &hf_021_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_V2_6_uap[] = {
+static const AsterixField * const I021_V2_6_uap[] = {
&I021_V2_6_010,
&I021_V2_6_040,
&I021_V2_6_161,
@@ -30103,14 +30017,12 @@ static const AsterixField *I021_V2_6_uap[] = {
&I021_V2_6_SP,
NULL
};
-static const AsterixField **I021_V2_6[] = {
+static const AsterixField * const * const I021_V2_6[] = {
I021_V2_6_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I021_uap[] = {
+static const AsterixField * const I021_uap[] = {
&I021_010,
&I021_040,
&I021_161,
@@ -30162,11 +30074,10 @@ static const AsterixField *I021_uap[] = {
&I021_SP,
NULL
};
-static const AsterixField **I021[] = {
+static const AsterixField * const * const I021[] = {
I021_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 023, edition 1.2 */
static int hf_023_V1_2_000;
@@ -30178,7 +30089,7 @@ static const value_string valstr_023_V1_2_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I023_V1_2_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_023_V1_2_000_VALUE, NULL };
-static const FieldPart *I023_V1_2_000_PARTS[] = {
+static const FieldPart * const I023_V1_2_000_PARTS[] = {
&I023_V1_2_000_VALUE,
NULL
};
@@ -30188,7 +30099,7 @@ static int hf_023_V1_2_010_SAC;
static const FieldPart I023_V1_2_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_023_V1_2_010_SAC, NULL };
static int hf_023_V1_2_010_SIC;
static const FieldPart I023_V1_2_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_023_V1_2_010_SIC, NULL };
-static const FieldPart *I023_V1_2_010_PARTS[] = {
+static const FieldPart * const I023_V1_2_010_PARTS[] = {
&I023_V1_2_010_SAC,
&I023_V1_2_010_SIC,
NULL
@@ -30211,7 +30122,7 @@ static const value_string valstr_023_V1_2_015_STYP[] = {
{ 0, NULL }
};
static const FieldPart I023_V1_2_015_STYP = { 4, 1.0, FIELD_PART_UINT, &hf_023_V1_2_015_STYP, NULL };
-static const FieldPart *I023_V1_2_015_PARTS[] = {
+static const FieldPart * const I023_V1_2_015_PARTS[] = {
&I023_V1_2_015_SID,
&I023_V1_2_015_STYP,
NULL
@@ -30220,7 +30131,7 @@ static const AsterixField I023_V1_2_015 = { FIXED, 1, 0, 0, &hf_023_V1_2_015, I0
static int hf_023_V1_2_070;
static int hf_023_V1_2_070_VALUE;
static const FieldPart I023_V1_2_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_023_V1_2_070_VALUE, NULL };
-static const FieldPart *I023_V1_2_070_PARTS[] = {
+static const FieldPart * const I023_V1_2_070_PARTS[] = {
&I023_V1_2_070_VALUE,
NULL
};
@@ -30277,7 +30188,7 @@ static const value_string valstr_023_V1_2_100_RN[] = {
static const FieldPart I023_V1_2_100_RN = { 1, 1.0, FIELD_PART_UINT, &hf_023_V1_2_100_RN, NULL };
static int hf_023_V1_2_100_GSSP;
static const FieldPart I023_V1_2_100_GSSP = { 7, 1.0, FIELD_PART_UFLOAT, &hf_023_V1_2_100_GSSP, NULL };
-static const FieldPart *I023_V1_2_100_PARTS[] = {
+static const FieldPart * const I023_V1_2_100_PARTS[] = {
&I023_V1_2_100_NOGO,
&I023_V1_2_100_ODP,
&I023_V1_2_100_OXT,
@@ -30309,7 +30220,7 @@ static const value_string valstr_023_V1_2_101_SC[] = {
static const FieldPart I023_V1_2_101_SC = { 3, 1.0, FIELD_PART_UINT, &hf_023_V1_2_101_SC, NULL };
static int hf_023_V1_2_101_SSRP;
static const FieldPart I023_V1_2_101_SSRP = { 7, 1.0, FIELD_PART_UFLOAT, &hf_023_V1_2_101_SSRP, NULL };
-static const FieldPart *I023_V1_2_101_PARTS[] = {
+static const FieldPart * const I023_V1_2_101_PARTS[] = {
&I023_V1_2_101_RP,
&I023_V1_2_101_SC,
&IXXX_4bit_spare,
@@ -30331,7 +30242,7 @@ static const value_string valstr_023_V1_2_110_STAT[] = {
{ 0, NULL }
};
static const FieldPart I023_V1_2_110_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_023_V1_2_110_STAT, NULL };
-static const FieldPart *I023_V1_2_110_PARTS[] = {
+static const FieldPart * const I023_V1_2_110_PARTS[] = {
&IXXX_4bit_spare,
&I023_V1_2_110_STAT,
&IXXX_FX,
@@ -30371,7 +30282,7 @@ static const value_string valstr_023_V1_2_120_REF[] = {
static const FieldPart I023_V1_2_120_REF = { 1, 1.0, FIELD_PART_UINT, &hf_023_V1_2_120_REF, NULL };
static int hf_023_V1_2_120_CV;
static const FieldPart I023_V1_2_120_CV = { 32, 1.0, FIELD_PART_HEX, &hf_023_V1_2_120_CV, NULL };
-static const FieldPart *I023_V1_2_120_PARTS[] = {
+static const FieldPart * const I023_V1_2_120_PARTS[] = {
&I023_V1_2_120_TYPE,
&I023_V1_2_120_REF,
&IXXX_7bit_spare,
@@ -30382,7 +30293,7 @@ static const AsterixField I023_V1_2_120 = { REPETITIVE, 6, 1, 0, &hf_023_V1_2_12
static int hf_023_V1_2_200;
static int hf_023_V1_2_200_VALUE;
static const FieldPart I023_V1_2_200_VALUE = { 8, 1.0, FIELD_PART_UFLOAT, &hf_023_V1_2_200_VALUE, NULL };
-static const FieldPart *I023_V1_2_200_PARTS[] = {
+static const FieldPart * const I023_V1_2_200_PARTS[] = {
&I023_V1_2_200_VALUE,
NULL
};
@@ -30392,8 +30303,7 @@ static const AsterixField I023_V1_2_RE = { EXP, 0, 0, 1, &hf_023_V1_2_RE, NULL,
static int hf_023_V1_2_SP;
static const AsterixField I023_V1_2_SP = { EXP, 0, 0, 1, &hf_023_V1_2_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I023_V1_2_uap[] = {
+static const AsterixField * const I023_V1_2_uap[] = {
&I023_V1_2_010,
&I023_V1_2_000,
&I023_V1_2_015,
@@ -30410,11 +30320,10 @@ static const AsterixField *I023_V1_2_uap[] = {
&I023_V1_2_SP,
NULL
};
-static const AsterixField **I023_V1_2[] = {
+static const AsterixField * const * const I023_V1_2[] = {
I023_V1_2_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 023, edition 1.3 */
static int hf_023_V1_3_000;
@@ -30426,7 +30335,7 @@ static const value_string valstr_023_V1_3_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I023_V1_3_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_023_V1_3_000_VALUE, NULL };
-static const FieldPart *I023_V1_3_000_PARTS[] = {
+static const FieldPart * const I023_V1_3_000_PARTS[] = {
&I023_V1_3_000_VALUE,
NULL
};
@@ -30436,7 +30345,7 @@ static int hf_023_V1_3_010_SAC;
static const FieldPart I023_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_023_V1_3_010_SAC, NULL };
static int hf_023_V1_3_010_SIC;
static const FieldPart I023_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_023_V1_3_010_SIC, NULL };
-static const FieldPart *I023_V1_3_010_PARTS[] = {
+static const FieldPart * const I023_V1_3_010_PARTS[] = {
&I023_V1_3_010_SAC,
&I023_V1_3_010_SIC,
NULL
@@ -30459,7 +30368,7 @@ static const value_string valstr_023_V1_3_015_STYP[] = {
{ 0, NULL }
};
static const FieldPart I023_V1_3_015_STYP = { 4, 1.0, FIELD_PART_UINT, &hf_023_V1_3_015_STYP, NULL };
-static const FieldPart *I023_V1_3_015_PARTS[] = {
+static const FieldPart * const I023_V1_3_015_PARTS[] = {
&I023_V1_3_015_SID,
&I023_V1_3_015_STYP,
NULL
@@ -30468,7 +30377,7 @@ static const AsterixField I023_V1_3_015 = { FIXED, 1, 0, 0, &hf_023_V1_3_015, I0
static int hf_023_V1_3_070;
static int hf_023_V1_3_070_VALUE;
static const FieldPart I023_V1_3_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_023_V1_3_070_VALUE, NULL };
-static const FieldPart *I023_V1_3_070_PARTS[] = {
+static const FieldPart * const I023_V1_3_070_PARTS[] = {
&I023_V1_3_070_VALUE,
NULL
};
@@ -30525,7 +30434,7 @@ static const value_string valstr_023_V1_3_100_RN[] = {
static const FieldPart I023_V1_3_100_RN = { 1, 1.0, FIELD_PART_UINT, &hf_023_V1_3_100_RN, NULL };
static int hf_023_V1_3_100_GSSP;
static const FieldPart I023_V1_3_100_GSSP = { 7, 1.0, FIELD_PART_UFLOAT, &hf_023_V1_3_100_GSSP, NULL };
-static const FieldPart *I023_V1_3_100_PARTS[] = {
+static const FieldPart * const I023_V1_3_100_PARTS[] = {
&I023_V1_3_100_NOGO,
&I023_V1_3_100_ODP,
&I023_V1_3_100_OXT,
@@ -30557,7 +30466,7 @@ static const value_string valstr_023_V1_3_101_SC[] = {
static const FieldPart I023_V1_3_101_SC = { 3, 1.0, FIELD_PART_UINT, &hf_023_V1_3_101_SC, NULL };
static int hf_023_V1_3_101_SSRP;
static const FieldPart I023_V1_3_101_SSRP = { 7, 1.0, FIELD_PART_UFLOAT, &hf_023_V1_3_101_SSRP, NULL };
-static const FieldPart *I023_V1_3_101_PARTS[] = {
+static const FieldPart * const I023_V1_3_101_PARTS[] = {
&I023_V1_3_101_RP,
&I023_V1_3_101_SC,
&IXXX_4bit_spare,
@@ -30579,7 +30488,7 @@ static const value_string valstr_023_V1_3_110_STAT[] = {
{ 0, NULL }
};
static const FieldPart I023_V1_3_110_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_023_V1_3_110_STAT, NULL };
-static const FieldPart *I023_V1_3_110_PARTS[] = {
+static const FieldPart * const I023_V1_3_110_PARTS[] = {
&IXXX_4bit_spare,
&I023_V1_3_110_STAT,
&IXXX_FX,
@@ -30619,7 +30528,7 @@ static const value_string valstr_023_V1_3_120_REF[] = {
static const FieldPart I023_V1_3_120_REF = { 1, 1.0, FIELD_PART_UINT, &hf_023_V1_3_120_REF, NULL };
static int hf_023_V1_3_120_CV;
static const FieldPart I023_V1_3_120_CV = { 32, 1.0, FIELD_PART_HEX, &hf_023_V1_3_120_CV, NULL };
-static const FieldPart *I023_V1_3_120_PARTS[] = {
+static const FieldPart * const I023_V1_3_120_PARTS[] = {
&I023_V1_3_120_TYPE,
&I023_V1_3_120_REF,
&IXXX_7bit_spare,
@@ -30630,7 +30539,7 @@ static const AsterixField I023_V1_3_120 = { REPETITIVE, 6, 1, 0, &hf_023_V1_3_12
static int hf_023_V1_3_200;
static int hf_023_V1_3_200_VALUE;
static const FieldPart I023_V1_3_200_VALUE = { 8, 1.0, FIELD_PART_UFLOAT, &hf_023_V1_3_200_VALUE, NULL };
-static const FieldPart *I023_V1_3_200_PARTS[] = {
+static const FieldPart * const I023_V1_3_200_PARTS[] = {
&I023_V1_3_200_VALUE,
NULL
};
@@ -30650,7 +30559,7 @@ static const value_string valstr_023_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I023_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_023_000_VALUE, NULL };
-static const FieldPart *I023_000_PARTS[] = {
+static const FieldPart * const I023_000_PARTS[] = {
&I023_000_VALUE,
NULL
};
@@ -30660,7 +30569,7 @@ static int hf_023_010_SAC;
static const FieldPart I023_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_023_010_SAC, NULL };
static int hf_023_010_SIC;
static const FieldPart I023_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_023_010_SIC, NULL };
-static const FieldPart *I023_010_PARTS[] = {
+static const FieldPart * const I023_010_PARTS[] = {
&I023_010_SAC,
&I023_010_SIC,
NULL
@@ -30683,7 +30592,7 @@ static const value_string valstr_023_015_STYP[] = {
{ 0, NULL }
};
static const FieldPart I023_015_STYP = { 4, 1.0, FIELD_PART_UINT, &hf_023_015_STYP, NULL };
-static const FieldPart *I023_015_PARTS[] = {
+static const FieldPart * const I023_015_PARTS[] = {
&I023_015_SID,
&I023_015_STYP,
NULL
@@ -30692,7 +30601,7 @@ static const AsterixField I023_015 = { FIXED, 1, 0, 0, &hf_023_015, I023_015_PAR
static int hf_023_070;
static int hf_023_070_VALUE;
static const FieldPart I023_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_023_070_VALUE, NULL };
-static const FieldPart *I023_070_PARTS[] = {
+static const FieldPart * const I023_070_PARTS[] = {
&I023_070_VALUE,
NULL
};
@@ -30749,7 +30658,7 @@ static const value_string valstr_023_100_RN[] = {
static const FieldPart I023_100_RN = { 1, 1.0, FIELD_PART_UINT, &hf_023_100_RN, NULL };
static int hf_023_100_GSSP;
static const FieldPart I023_100_GSSP = { 7, 1.0, FIELD_PART_UFLOAT, &hf_023_100_GSSP, NULL };
-static const FieldPart *I023_100_PARTS[] = {
+static const FieldPart * const I023_100_PARTS[] = {
&I023_100_NOGO,
&I023_100_ODP,
&I023_100_OXT,
@@ -30781,7 +30690,7 @@ static const value_string valstr_023_101_SC[] = {
static const FieldPart I023_101_SC = { 3, 1.0, FIELD_PART_UINT, &hf_023_101_SC, NULL };
static int hf_023_101_SSRP;
static const FieldPart I023_101_SSRP = { 7, 1.0, FIELD_PART_UFLOAT, &hf_023_101_SSRP, NULL };
-static const FieldPart *I023_101_PARTS[] = {
+static const FieldPart * const I023_101_PARTS[] = {
&I023_101_RP,
&I023_101_SC,
&IXXX_4bit_spare,
@@ -30803,7 +30712,7 @@ static const value_string valstr_023_110_STAT[] = {
{ 0, NULL }
};
static const FieldPart I023_110_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_023_110_STAT, NULL };
-static const FieldPart *I023_110_PARTS[] = {
+static const FieldPart * const I023_110_PARTS[] = {
&IXXX_4bit_spare,
&I023_110_STAT,
&IXXX_FX,
@@ -30843,7 +30752,7 @@ static const value_string valstr_023_120_REF[] = {
static const FieldPart I023_120_REF = { 1, 1.0, FIELD_PART_UINT, &hf_023_120_REF, NULL };
static int hf_023_120_CV;
static const FieldPart I023_120_CV = { 32, 1.0, FIELD_PART_HEX, &hf_023_120_CV, NULL };
-static const FieldPart *I023_120_PARTS[] = {
+static const FieldPart * const I023_120_PARTS[] = {
&I023_120_TYPE,
&I023_120_REF,
&IXXX_7bit_spare,
@@ -30854,7 +30763,7 @@ static const AsterixField I023_120 = { REPETITIVE, 6, 1, 0, &hf_023_120, I023_12
static int hf_023_200;
static int hf_023_200_VALUE;
static const FieldPart I023_200_VALUE = { 8, 1.0, FIELD_PART_UFLOAT, &hf_023_200_VALUE, NULL };
-static const FieldPart *I023_200_PARTS[] = {
+static const FieldPart * const I023_200_PARTS[] = {
&I023_200_VALUE,
NULL
};
@@ -30864,8 +30773,7 @@ static const AsterixField I023_RE = { EXP, 0, 0, 1, &hf_023_RE, NULL, { NULL } }
static int hf_023_SP;
static const AsterixField I023_SP = { EXP, 0, 0, 1, &hf_023_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I023_V1_3_uap[] = {
+static const AsterixField * const I023_V1_3_uap[] = {
&I023_V1_3_010,
&I023_V1_3_000,
&I023_V1_3_015,
@@ -30882,14 +30790,12 @@ static const AsterixField *I023_V1_3_uap[] = {
&I023_V1_3_SP,
NULL
};
-static const AsterixField **I023_V1_3[] = {
+static const AsterixField * const * const I023_V1_3[] = {
I023_V1_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I023_uap[] = {
+static const AsterixField * const I023_uap[] = {
&I023_010,
&I023_000,
&I023_015,
@@ -30906,11 +30812,10 @@ static const AsterixField *I023_uap[] = {
&I023_SP,
NULL
};
-static const AsterixField **I023[] = {
+static const AsterixField * const * const I023[] = {
I023_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 025, edition 1.5 */
static int hf_025_V1_5_000;
@@ -30923,7 +30828,7 @@ static const value_string valstr_025_V1_5_000_RG[] = {
{ 0, NULL }
};
static const FieldPart I025_V1_5_000_RG = { 1, 1.0, FIELD_PART_UINT, &hf_025_V1_5_000_RG, NULL };
-static const FieldPart *I025_V1_5_000_PARTS[] = {
+static const FieldPart * const I025_V1_5_000_PARTS[] = {
&I025_V1_5_000_RTYP,
&I025_V1_5_000_RG,
NULL
@@ -30934,7 +30839,7 @@ static int hf_025_V1_5_010_SAC;
static const FieldPart I025_V1_5_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_025_V1_5_010_SAC, NULL };
static int hf_025_V1_5_010_SIC;
static const FieldPart I025_V1_5_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_025_V1_5_010_SIC, NULL };
-static const FieldPart *I025_V1_5_010_PARTS[] = {
+static const FieldPart * const I025_V1_5_010_PARTS[] = {
&I025_V1_5_010_SAC,
&I025_V1_5_010_SIC,
NULL
@@ -30943,7 +30848,7 @@ static const AsterixField I025_V1_5_010 = { FIXED, 2, 0, 0, &hf_025_V1_5_010, I0
static int hf_025_V1_5_015;
static int hf_025_V1_5_015_VALUE;
static const FieldPart I025_V1_5_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_025_V1_5_015_VALUE, NULL };
-static const FieldPart *I025_V1_5_015_PARTS[] = {
+static const FieldPart * const I025_V1_5_015_PARTS[] = {
&I025_V1_5_015_VALUE,
NULL
};
@@ -30951,7 +30856,7 @@ static const AsterixField I025_V1_5_015 = { FIXED, 1, 0, 0, &hf_025_V1_5_015, I0
static int hf_025_V1_5_020;
static int hf_025_V1_5_020_VALUE;
static const FieldPart I025_V1_5_020_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_025_V1_5_020_VALUE, NULL };
-static const FieldPart *I025_V1_5_020_PARTS[] = {
+static const FieldPart * const I025_V1_5_020_PARTS[] = {
&I025_V1_5_020_VALUE,
NULL
};
@@ -30959,7 +30864,7 @@ static const AsterixField I025_V1_5_020 = { FIXED, 6, 0, 0, &hf_025_V1_5_020, I0
static int hf_025_V1_5_070;
static int hf_025_V1_5_070_VALUE;
static const FieldPart I025_V1_5_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_025_V1_5_070_VALUE, NULL };
-static const FieldPart *I025_V1_5_070_PARTS[] = {
+static const FieldPart * const I025_V1_5_070_PARTS[] = {
&I025_V1_5_070_VALUE,
NULL
};
@@ -31028,7 +30933,7 @@ static const value_string valstr_025_V1_5_100_SESTAT[] = {
{ 0, NULL }
};
static const FieldPart I025_V1_5_100_SESTAT = { 3, 1.0, FIELD_PART_UINT, &hf_025_V1_5_100_SESTAT, NULL };
-static const FieldPart *I025_V1_5_100_PARTS[] = {
+static const FieldPart * const I025_V1_5_100_PARTS[] = {
&I025_V1_5_100_NOGO,
&I025_V1_5_100_OPS,
&I025_V1_5_100_SSTAT,
@@ -31302,7 +31207,7 @@ static const value_string valstr_025_V1_5_105_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I025_V1_5_105_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_025_V1_5_105_VALUE, NULL };
-static const FieldPart *I025_V1_5_105_PARTS[] = {
+static const FieldPart * const I025_V1_5_105_PARTS[] = {
&I025_V1_5_105_VALUE,
NULL
};
@@ -31388,7 +31293,7 @@ static const value_string valstr_025_V1_5_120_CS[] = {
{ 0, NULL }
};
static const FieldPart I025_V1_5_120_CS = { 2, 1.0, FIELD_PART_UINT, &hf_025_V1_5_120_CS, NULL };
-static const FieldPart *I025_V1_5_120_PARTS[] = {
+static const FieldPart * const I025_V1_5_120_PARTS[] = {
&I025_V1_5_120_CID,
&I025_V1_5_120_ERRC,
&I025_V1_5_120_CS,
@@ -31666,7 +31571,7 @@ static const value_string valstr_025_V1_5_140_REF[] = {
static const FieldPart I025_V1_5_140_REF = { 1, 1.0, FIELD_PART_UINT, &hf_025_V1_5_140_REF, NULL };
static int hf_025_V1_5_140_COUNT;
static const FieldPart I025_V1_5_140_COUNT = { 32, 1.0, FIELD_PART_UINT, &hf_025_V1_5_140_COUNT, NULL };
-static const FieldPart *I025_V1_5_140_PARTS[] = {
+static const FieldPart * const I025_V1_5_140_PARTS[] = {
&I025_V1_5_140_TYPE,
&I025_V1_5_140_REF,
&IXXX_7bit_spare,
@@ -31677,7 +31582,7 @@ static const AsterixField I025_V1_5_140 = { REPETITIVE, 6, 1, 0, &hf_025_V1_5_14
static int hf_025_V1_5_200;
static int hf_025_V1_5_200_VALUE;
static const FieldPart I025_V1_5_200_VALUE = { 24, 1.0, FIELD_PART_UINT, &hf_025_V1_5_200_VALUE, NULL };
-static const FieldPart *I025_V1_5_200_PARTS[] = {
+static const FieldPart * const I025_V1_5_200_PARTS[] = {
&I025_V1_5_200_VALUE,
NULL
};
@@ -31687,7 +31592,7 @@ static int hf_025_V1_5_600_LAT;
static const FieldPart I025_V1_5_600_LAT = { 32, 4.190951585769653e-08, FIELD_PART_FLOAT, &hf_025_V1_5_600_LAT, NULL };
static int hf_025_V1_5_600_LON;
static const FieldPart I025_V1_5_600_LON = { 32, 4.190951585769653e-08, FIELD_PART_FLOAT, &hf_025_V1_5_600_LON, NULL };
-static const FieldPart *I025_V1_5_600_PARTS[] = {
+static const FieldPart * const I025_V1_5_600_PARTS[] = {
&I025_V1_5_600_LAT,
&I025_V1_5_600_LON,
NULL
@@ -31696,7 +31601,7 @@ static const AsterixField I025_V1_5_600 = { FIXED, 8, 0, 0, &hf_025_V1_5_600, I0
static int hf_025_V1_5_610;
static int hf_025_V1_5_610_VALUE;
static const FieldPart I025_V1_5_610_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_025_V1_5_610_VALUE, NULL };
-static const FieldPart *I025_V1_5_610_PARTS[] = {
+static const FieldPart * const I025_V1_5_610_PARTS[] = {
&I025_V1_5_610_VALUE,
NULL
};
@@ -31715,7 +31620,7 @@ static const value_string valstr_025_000_RG[] = {
{ 0, NULL }
};
static const FieldPart I025_000_RG = { 1, 1.0, FIELD_PART_UINT, &hf_025_000_RG, NULL };
-static const FieldPart *I025_000_PARTS[] = {
+static const FieldPart * const I025_000_PARTS[] = {
&I025_000_RTYP,
&I025_000_RG,
NULL
@@ -31726,7 +31631,7 @@ static int hf_025_010_SAC;
static const FieldPart I025_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_025_010_SAC, NULL };
static int hf_025_010_SIC;
static const FieldPart I025_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_025_010_SIC, NULL };
-static const FieldPart *I025_010_PARTS[] = {
+static const FieldPart * const I025_010_PARTS[] = {
&I025_010_SAC,
&I025_010_SIC,
NULL
@@ -31735,7 +31640,7 @@ static const AsterixField I025_010 = { FIXED, 2, 0, 0, &hf_025_010, I025_010_PAR
static int hf_025_015;
static int hf_025_015_VALUE;
static const FieldPart I025_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_025_015_VALUE, NULL };
-static const FieldPart *I025_015_PARTS[] = {
+static const FieldPart * const I025_015_PARTS[] = {
&I025_015_VALUE,
NULL
};
@@ -31743,7 +31648,7 @@ static const AsterixField I025_015 = { FIXED, 1, 0, 0, &hf_025_015, I025_015_PAR
static int hf_025_020;
static int hf_025_020_VALUE;
static const FieldPart I025_020_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_025_020_VALUE, NULL };
-static const FieldPart *I025_020_PARTS[] = {
+static const FieldPart * const I025_020_PARTS[] = {
&I025_020_VALUE,
NULL
};
@@ -31751,7 +31656,7 @@ static const AsterixField I025_020 = { FIXED, 6, 0, 0, &hf_025_020, I025_020_PAR
static int hf_025_070;
static int hf_025_070_VALUE;
static const FieldPart I025_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_025_070_VALUE, NULL };
-static const FieldPart *I025_070_PARTS[] = {
+static const FieldPart * const I025_070_PARTS[] = {
&I025_070_VALUE,
NULL
};
@@ -31820,7 +31725,7 @@ static const value_string valstr_025_100_SESTAT[] = {
{ 0, NULL }
};
static const FieldPart I025_100_SESTAT = { 3, 1.0, FIELD_PART_UINT, &hf_025_100_SESTAT, NULL };
-static const FieldPart *I025_100_PARTS[] = {
+static const FieldPart * const I025_100_PARTS[] = {
&I025_100_NOGO,
&I025_100_OPS,
&I025_100_SSTAT,
@@ -32094,7 +31999,7 @@ static const value_string valstr_025_105_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I025_105_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_025_105_VALUE, NULL };
-static const FieldPart *I025_105_PARTS[] = {
+static const FieldPart * const I025_105_PARTS[] = {
&I025_105_VALUE,
NULL
};
@@ -32180,7 +32085,7 @@ static const value_string valstr_025_120_CS[] = {
{ 0, NULL }
};
static const FieldPart I025_120_CS = { 2, 1.0, FIELD_PART_UINT, &hf_025_120_CS, NULL };
-static const FieldPart *I025_120_PARTS[] = {
+static const FieldPart * const I025_120_PARTS[] = {
&I025_120_CID,
&I025_120_ERRC,
&I025_120_CS,
@@ -32458,7 +32363,7 @@ static const value_string valstr_025_140_REF[] = {
static const FieldPart I025_140_REF = { 1, 1.0, FIELD_PART_UINT, &hf_025_140_REF, NULL };
static int hf_025_140_COUNT;
static const FieldPart I025_140_COUNT = { 32, 1.0, FIELD_PART_UINT, &hf_025_140_COUNT, NULL };
-static const FieldPart *I025_140_PARTS[] = {
+static const FieldPart * const I025_140_PARTS[] = {
&I025_140_TYPE,
&I025_140_REF,
&IXXX_7bit_spare,
@@ -32469,7 +32374,7 @@ static const AsterixField I025_140 = { REPETITIVE, 6, 1, 0, &hf_025_140, I025_14
static int hf_025_200;
static int hf_025_200_VALUE;
static const FieldPart I025_200_VALUE = { 24, 1.0, FIELD_PART_UINT, &hf_025_200_VALUE, NULL };
-static const FieldPart *I025_200_PARTS[] = {
+static const FieldPart * const I025_200_PARTS[] = {
&I025_200_VALUE,
NULL
};
@@ -32479,7 +32384,7 @@ static int hf_025_600_LAT;
static const FieldPart I025_600_LAT = { 32, 4.190951585769653e-08, FIELD_PART_FLOAT, &hf_025_600_LAT, NULL };
static int hf_025_600_LON;
static const FieldPart I025_600_LON = { 32, 4.190951585769653e-08, FIELD_PART_FLOAT, &hf_025_600_LON, NULL };
-static const FieldPart *I025_600_PARTS[] = {
+static const FieldPart * const I025_600_PARTS[] = {
&I025_600_LAT,
&I025_600_LON,
NULL
@@ -32488,7 +32393,7 @@ static const AsterixField I025_600 = { FIXED, 8, 0, 0, &hf_025_600, I025_600_PAR
static int hf_025_610;
static int hf_025_610_VALUE;
static const FieldPart I025_610_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_025_610_VALUE, NULL };
-static const FieldPart *I025_610_PARTS[] = {
+static const FieldPart * const I025_610_PARTS[] = {
&I025_610_VALUE,
NULL
};
@@ -32496,8 +32401,7 @@ static const AsterixField I025_610 = { FIXED, 2, 0, 0, &hf_025_610, I025_610_PAR
static int hf_025_SP;
static const AsterixField I025_SP = { EXP, 0, 0, 1, &hf_025_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I025_V1_5_uap[] = {
+static const AsterixField * const I025_V1_5_uap[] = {
&I025_V1_5_010,
&I025_V1_5_000,
&I025_V1_5_200,
@@ -32513,14 +32417,12 @@ static const AsterixField *I025_V1_5_uap[] = {
&I025_V1_5_610,
NULL
};
-static const AsterixField **I025_V1_5[] = {
+static const AsterixField * const * const I025_V1_5[] = {
I025_V1_5_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I025_uap[] = {
+static const AsterixField * const I025_uap[] = {
&I025_010,
&I025_000,
&I025_200,
@@ -32536,11 +32438,10 @@ static const AsterixField *I025_uap[] = {
&I025_610,
NULL
};
-static const AsterixField **I025[] = {
+static const AsterixField * const * const I025[] = {
I025_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 032, edition 1.1 */
static int hf_032_V1_1_010;
@@ -32548,7 +32449,7 @@ static int hf_032_V1_1_010_SAC;
static const FieldPart I032_V1_1_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_032_V1_1_010_SAC, NULL };
static int hf_032_V1_1_010_SIC;
static const FieldPart I032_V1_1_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_032_V1_1_010_SIC, NULL };
-static const FieldPart *I032_V1_1_010_PARTS[] = {
+static const FieldPart * const I032_V1_1_010_PARTS[] = {
&I032_V1_1_010_SAC,
&I032_V1_1_010_SIC,
NULL
@@ -32557,7 +32458,7 @@ static const AsterixField I032_V1_1_010 = { FIXED, 2, 0, 0, &hf_032_V1_1_010, I0
static int hf_032_V1_1_015;
static int hf_032_V1_1_015_VALUE;
static const FieldPart I032_V1_1_015_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_032_V1_1_015_VALUE, NULL };
-static const FieldPart *I032_V1_1_015_PARTS[] = {
+static const FieldPart * const I032_V1_1_015_PARTS[] = {
&I032_V1_1_015_VALUE,
NULL
};
@@ -32567,7 +32468,7 @@ static int hf_032_V1_1_018_SAC;
static const FieldPart I032_V1_1_018_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_032_V1_1_018_SAC, NULL };
static int hf_032_V1_1_018_SIC;
static const FieldPart I032_V1_1_018_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_032_V1_1_018_SIC, NULL };
-static const FieldPart *I032_V1_1_018_PARTS[] = {
+static const FieldPart * const I032_V1_1_018_PARTS[] = {
&I032_V1_1_018_SAC,
&I032_V1_1_018_SIC,
NULL
@@ -32576,7 +32477,7 @@ static const AsterixField I032_V1_1_018 = { FIXED, 2, 0, 0, &hf_032_V1_1_018, I0
static int hf_032_V1_1_020;
static int hf_032_V1_1_020_VALUE;
static const FieldPart I032_V1_1_020_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_032_V1_1_020_VALUE, NULL };
-static const FieldPart *I032_V1_1_020_PARTS[] = {
+static const FieldPart * const I032_V1_1_020_PARTS[] = {
&I032_V1_1_020_VALUE,
NULL
};
@@ -32598,7 +32499,7 @@ static const value_string valstr_032_V1_1_035_NATURE[] = {
{ 0, NULL }
};
static const FieldPart I032_V1_1_035_NATURE = { 4, 1.0, FIELD_PART_UINT, &hf_032_V1_1_035_NATURE, NULL };
-static const FieldPart *I032_V1_1_035_PARTS[] = {
+static const FieldPart * const I032_V1_1_035_PARTS[] = {
&I032_V1_1_035_FAMILY,
&I032_V1_1_035_NATURE,
NULL
@@ -32607,7 +32508,7 @@ static const AsterixField I032_V1_1_035 = { FIXED, 1, 0, 0, &hf_032_V1_1_035, I0
static int hf_032_V1_1_040;
static int hf_032_V1_1_040_VALUE;
static const FieldPart I032_V1_1_040_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_032_V1_1_040_VALUE, NULL };
-static const FieldPart *I032_V1_1_040_PARTS[] = {
+static const FieldPart * const I032_V1_1_040_PARTS[] = {
&I032_V1_1_040_VALUE,
NULL
};
@@ -32617,7 +32518,7 @@ static int hf_032_V1_1_050_SUI;
static const FieldPart I032_V1_1_050_SUI = { 8, 1.0, FIELD_PART_UINT, &hf_032_V1_1_050_SUI, NULL };
static int hf_032_V1_1_050_STN;
static const FieldPart I032_V1_1_050_STN = { 15, 1.0, FIELD_PART_UINT, &hf_032_V1_1_050_STN, NULL };
-static const FieldPart *I032_V1_1_050_PARTS[] = {
+static const FieldPart * const I032_V1_1_050_PARTS[] = {
&I032_V1_1_050_SUI,
&I032_V1_1_050_STN,
&IXXX_FX,
@@ -32627,7 +32528,7 @@ static const AsterixField I032_V1_1_050 = { FX, 3, 0, 0, &hf_032_V1_1_050, I032_
static int hf_032_V1_1_060;
static int hf_032_V1_1_060_MODE3A;
static const FieldPart I032_V1_1_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_032_V1_1_060_MODE3A, NULL };
-static const FieldPart *I032_V1_1_060_PARTS[] = {
+static const FieldPart * const I032_V1_1_060_PARTS[] = {
&IXXX_4bit_spare,
&I032_V1_1_060_MODE3A,
NULL
@@ -32636,7 +32537,7 @@ static const AsterixField I032_V1_1_060 = { FIXED, 2, 0, 0, &hf_032_V1_1_060, I0
static int hf_032_V1_1_400;
static int hf_032_V1_1_400_VALUE;
static const FieldPart I032_V1_1_400_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_400_VALUE, NULL };
-static const FieldPart *I032_V1_1_400_PARTS[] = {
+static const FieldPart * const I032_V1_1_400_PARTS[] = {
&I032_V1_1_400_VALUE,
NULL
};
@@ -32644,7 +32545,7 @@ static const AsterixField I032_V1_1_400 = { FIXED, 7, 0, 0, &hf_032_V1_1_400, I0
static int hf_032_V1_1_410;
static int hf_032_V1_1_410_VALUE;
static const FieldPart I032_V1_1_410_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_032_V1_1_410_VALUE, NULL };
-static const FieldPart *I032_V1_1_410_PARTS[] = {
+static const FieldPart * const I032_V1_1_410_PARTS[] = {
&I032_V1_1_410_VALUE,
NULL
};
@@ -32674,7 +32575,7 @@ static int hf_032_V1_1_420_SP2;
static const FieldPart I032_V1_1_420_SP2 = { 1, 1.0, FIELD_PART_HEX, &hf_032_V1_1_420_SP2, NULL };
static int hf_032_V1_1_420_SP1;
static const FieldPart I032_V1_1_420_SP1 = { 1, 1.0, FIELD_PART_HEX, &hf_032_V1_1_420_SP1, NULL };
-static const FieldPart *I032_V1_1_420_PARTS[] = {
+static const FieldPart * const I032_V1_1_420_PARTS[] = {
&I032_V1_1_420_GATOAT,
&I032_V1_1_420_FR1FR2,
&I032_V1_1_420_SP3,
@@ -32687,7 +32588,7 @@ static const AsterixField I032_V1_1_420 = { FIXED, 1, 0, 0, &hf_032_V1_1_420, I0
static int hf_032_V1_1_430;
static int hf_032_V1_1_430_VALUE;
static const FieldPart I032_V1_1_430_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_430_VALUE, NULL };
-static const FieldPart *I032_V1_1_430_PARTS[] = {
+static const FieldPart * const I032_V1_1_430_PARTS[] = {
&I032_V1_1_430_VALUE,
NULL
};
@@ -32702,7 +32603,7 @@ static const value_string valstr_032_V1_1_435_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I032_V1_1_435_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_032_V1_1_435_VALUE, NULL };
-static const FieldPart *I032_V1_1_435_PARTS[] = {
+static const FieldPart * const I032_V1_1_435_PARTS[] = {
&I032_V1_1_435_VALUE,
NULL
};
@@ -32710,7 +32611,7 @@ static const AsterixField I032_V1_1_435 = { FIXED, 1, 0, 0, &hf_032_V1_1_435, I0
static int hf_032_V1_1_440;
static int hf_032_V1_1_440_VALUE;
static const FieldPart I032_V1_1_440_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_440_VALUE, NULL };
-static const FieldPart *I032_V1_1_440_PARTS[] = {
+static const FieldPart * const I032_V1_1_440_PARTS[] = {
&I032_V1_1_440_VALUE,
NULL
};
@@ -32718,7 +32619,7 @@ static const AsterixField I032_V1_1_440 = { FIXED, 4, 0, 0, &hf_032_V1_1_440, I0
static int hf_032_V1_1_450;
static int hf_032_V1_1_450_VALUE;
static const FieldPart I032_V1_1_450_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_450_VALUE, NULL };
-static const FieldPart *I032_V1_1_450_PARTS[] = {
+static const FieldPart * const I032_V1_1_450_PARTS[] = {
&I032_V1_1_450_VALUE,
NULL
};
@@ -32732,7 +32633,7 @@ static int hf_032_V1_1_460_OCT3;
static const FieldPart I032_V1_1_460_OCT3 = { 3, 1.0, FIELD_PART_HEX, &hf_032_V1_1_460_OCT3, NULL };
static int hf_032_V1_1_460_OCT4;
static const FieldPart I032_V1_1_460_OCT4 = { 3, 1.0, FIELD_PART_HEX, &hf_032_V1_1_460_OCT4, NULL };
-static const FieldPart *I032_V1_1_460_PARTS[] = {
+static const FieldPart * const I032_V1_1_460_PARTS[] = {
&IXXX_4bit_spare,
&I032_V1_1_460_OCT1,
&I032_V1_1_460_OCT2,
@@ -32744,7 +32645,7 @@ static const AsterixField I032_V1_1_460 = { REPETITIVE, 2, 1, 0, &hf_032_V1_1_46
static int hf_032_V1_1_480;
static int hf_032_V1_1_480_VALUE;
static const FieldPart I032_V1_1_480_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_032_V1_1_480_VALUE, NULL };
-static const FieldPart *I032_V1_1_480_PARTS[] = {
+static const FieldPart * const I032_V1_1_480_PARTS[] = {
&I032_V1_1_480_VALUE,
NULL
};
@@ -32754,7 +32655,7 @@ static int hf_032_V1_1_490_CEN;
static const FieldPart I032_V1_1_490_CEN = { 8, 1.0, FIELD_PART_HEX, &hf_032_V1_1_490_CEN, NULL };
static int hf_032_V1_1_490_POS;
static const FieldPart I032_V1_1_490_POS = { 8, 1.0, FIELD_PART_HEX, &hf_032_V1_1_490_POS, NULL };
-static const FieldPart *I032_V1_1_490_PARTS[] = {
+static const FieldPart * const I032_V1_1_490_PARTS[] = {
&I032_V1_1_490_CEN,
&I032_V1_1_490_POS,
NULL
@@ -32773,7 +32674,7 @@ static const value_string valstr_032_V1_1_500_IFI_TYP[] = {
static const FieldPart I032_V1_1_500_IFI_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_032_V1_1_500_IFI_TYP, NULL };
static int hf_032_V1_1_500_IFI_NBR;
static const FieldPart I032_V1_1_500_IFI_NBR = { 27, 1.0, FIELD_PART_UINT, &hf_032_V1_1_500_IFI_NBR, NULL };
-static const FieldPart *I032_V1_1_500_IFI_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_IFI_PARTS[] = {
&I032_V1_1_500_IFI_TYP,
&IXXX_3bit_spare,
&I032_V1_1_500_IFI_NBR,
@@ -32797,7 +32698,7 @@ static const value_string valstr_032_V1_1_500_RVP_HPR[] = {
{ 0, NULL }
};
static const FieldPart I032_V1_1_500_RVP_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_032_V1_1_500_RVP_HPR, NULL };
-static const FieldPart *I032_V1_1_500_RVP_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_RVP_PARTS[] = {
&IXXX_5bit_spare,
&I032_V1_1_500_RVP_RVSM,
&I032_V1_1_500_RVP_HPR,
@@ -32811,7 +32712,7 @@ static int hf_032_V1_1_500_RDS_NU2;
static const FieldPart I032_V1_1_500_RDS_NU2 = { 8, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_500_RDS_NU2, NULL };
static int hf_032_V1_1_500_RDS_LTR;
static const FieldPart I032_V1_1_500_RDS_LTR = { 8, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_500_RDS_LTR, NULL };
-static const FieldPart *I032_V1_1_500_RDS_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_RDS_PARTS[] = {
&I032_V1_1_500_RDS_NU1,
&I032_V1_1_500_RDS_NU2,
&I032_V1_1_500_RDS_LTR,
@@ -32860,7 +32761,7 @@ static const value_string valstr_032_V1_1_500_TOD_AVS[] = {
static const FieldPart I032_V1_1_500_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_032_V1_1_500_TOD_AVS, NULL };
static int hf_032_V1_1_500_TOD_SEC;
static const FieldPart I032_V1_1_500_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_032_V1_1_500_TOD_SEC, NULL };
-static const FieldPart *I032_V1_1_500_TOD_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_TOD_PARTS[] = {
&I032_V1_1_500_TOD_TYP,
&I032_V1_1_500_TOD_DAY,
&IXXX_4bit_spare,
@@ -32876,7 +32777,7 @@ static const AsterixField I032_V1_1_500_TOD = { REPETITIVE, 4, 1, 0, &hf_032_V1_
static int hf_032_V1_1_500_AST;
static int hf_032_V1_1_500_AST_VALUE;
static const FieldPart I032_V1_1_500_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_500_AST_VALUE, NULL };
-static const FieldPart *I032_V1_1_500_AST_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_AST_PARTS[] = {
&I032_V1_1_500_AST_VALUE,
NULL
};
@@ -32900,7 +32801,7 @@ static const value_string valstr_032_V1_1_500_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I032_V1_1_500_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_032_V1_1_500_STS_AVL, NULL };
-static const FieldPart *I032_V1_1_500_STS_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_STS_PARTS[] = {
&I032_V1_1_500_STS_EMP,
&I032_V1_1_500_STS_AVL,
&IXXX_4bit_spare,
@@ -32910,7 +32811,7 @@ static const AsterixField I032_V1_1_500_STS = { FIXED, 1, 0, 0, &hf_032_V1_1_500
static int hf_032_V1_1_500_SID;
static int hf_032_V1_1_500_SID_VALUE;
static const FieldPart I032_V1_1_500_SID_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_500_SID_VALUE, NULL };
-static const FieldPart *I032_V1_1_500_SID_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_SID_PARTS[] = {
&I032_V1_1_500_SID_VALUE,
NULL
};
@@ -32918,7 +32819,7 @@ static const AsterixField I032_V1_1_500_SID = { FIXED, 7, 0, 0, &hf_032_V1_1_500
static int hf_032_V1_1_500_STAR;
static int hf_032_V1_1_500_STAR_VALUE;
static const FieldPart I032_V1_1_500_STAR_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_032_V1_1_500_STAR_VALUE, NULL };
-static const FieldPart *I032_V1_1_500_STAR_PARTS[] = {
+static const FieldPart * const I032_V1_1_500_STAR_PARTS[] = {
&I032_V1_1_500_STAR_VALUE,
NULL
};
@@ -32933,7 +32834,7 @@ static int hf_032_010_SAC;
static const FieldPart I032_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_032_010_SAC, NULL };
static int hf_032_010_SIC;
static const FieldPart I032_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_032_010_SIC, NULL };
-static const FieldPart *I032_010_PARTS[] = {
+static const FieldPart * const I032_010_PARTS[] = {
&I032_010_SAC,
&I032_010_SIC,
NULL
@@ -32942,7 +32843,7 @@ static const AsterixField I032_010 = { FIXED, 2, 0, 0, &hf_032_010, I032_010_PAR
static int hf_032_015;
static int hf_032_015_VALUE;
static const FieldPart I032_015_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_032_015_VALUE, NULL };
-static const FieldPart *I032_015_PARTS[] = {
+static const FieldPart * const I032_015_PARTS[] = {
&I032_015_VALUE,
NULL
};
@@ -32952,7 +32853,7 @@ static int hf_032_018_SAC;
static const FieldPart I032_018_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_032_018_SAC, NULL };
static int hf_032_018_SIC;
static const FieldPart I032_018_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_032_018_SIC, NULL };
-static const FieldPart *I032_018_PARTS[] = {
+static const FieldPart * const I032_018_PARTS[] = {
&I032_018_SAC,
&I032_018_SIC,
NULL
@@ -32961,7 +32862,7 @@ static const AsterixField I032_018 = { FIXED, 2, 0, 0, &hf_032_018, I032_018_PAR
static int hf_032_020;
static int hf_032_020_VALUE;
static const FieldPart I032_020_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_032_020_VALUE, NULL };
-static const FieldPart *I032_020_PARTS[] = {
+static const FieldPart * const I032_020_PARTS[] = {
&I032_020_VALUE,
NULL
};
@@ -32983,7 +32884,7 @@ static const value_string valstr_032_035_NATURE[] = {
{ 0, NULL }
};
static const FieldPart I032_035_NATURE = { 4, 1.0, FIELD_PART_UINT, &hf_032_035_NATURE, NULL };
-static const FieldPart *I032_035_PARTS[] = {
+static const FieldPart * const I032_035_PARTS[] = {
&I032_035_FAMILY,
&I032_035_NATURE,
NULL
@@ -32992,7 +32893,7 @@ static const AsterixField I032_035 = { FIXED, 1, 0, 0, &hf_032_035, I032_035_PAR
static int hf_032_040;
static int hf_032_040_VALUE;
static const FieldPart I032_040_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_032_040_VALUE, NULL };
-static const FieldPart *I032_040_PARTS[] = {
+static const FieldPart * const I032_040_PARTS[] = {
&I032_040_VALUE,
NULL
};
@@ -33002,7 +32903,7 @@ static int hf_032_050_SUI;
static const FieldPart I032_050_SUI = { 8, 1.0, FIELD_PART_UINT, &hf_032_050_SUI, NULL };
static int hf_032_050_STN;
static const FieldPart I032_050_STN = { 15, 1.0, FIELD_PART_UINT, &hf_032_050_STN, NULL };
-static const FieldPart *I032_050_PARTS[] = {
+static const FieldPart * const I032_050_PARTS[] = {
&I032_050_SUI,
&I032_050_STN,
&IXXX_FX,
@@ -33012,7 +32913,7 @@ static const AsterixField I032_050 = { FX, 3, 0, 0, &hf_032_050, I032_050_PARTS,
static int hf_032_060;
static int hf_032_060_MODE3A;
static const FieldPart I032_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_032_060_MODE3A, NULL };
-static const FieldPart *I032_060_PARTS[] = {
+static const FieldPart * const I032_060_PARTS[] = {
&IXXX_4bit_spare,
&I032_060_MODE3A,
NULL
@@ -33021,7 +32922,7 @@ static const AsterixField I032_060 = { FIXED, 2, 0, 0, &hf_032_060, I032_060_PAR
static int hf_032_400;
static int hf_032_400_VALUE;
static const FieldPart I032_400_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_032_400_VALUE, NULL };
-static const FieldPart *I032_400_PARTS[] = {
+static const FieldPart * const I032_400_PARTS[] = {
&I032_400_VALUE,
NULL
};
@@ -33029,7 +32930,7 @@ static const AsterixField I032_400 = { FIXED, 7, 0, 0, &hf_032_400, I032_400_PAR
static int hf_032_410;
static int hf_032_410_VALUE;
static const FieldPart I032_410_VALUE = { 16, 1.0, FIELD_PART_UINT, &hf_032_410_VALUE, NULL };
-static const FieldPart *I032_410_PARTS[] = {
+static const FieldPart * const I032_410_PARTS[] = {
&I032_410_VALUE,
NULL
};
@@ -33059,7 +32960,7 @@ static int hf_032_420_SP2;
static const FieldPart I032_420_SP2 = { 1, 1.0, FIELD_PART_HEX, &hf_032_420_SP2, NULL };
static int hf_032_420_SP1;
static const FieldPart I032_420_SP1 = { 1, 1.0, FIELD_PART_HEX, &hf_032_420_SP1, NULL };
-static const FieldPart *I032_420_PARTS[] = {
+static const FieldPart * const I032_420_PARTS[] = {
&I032_420_GATOAT,
&I032_420_FR1FR2,
&I032_420_SP3,
@@ -33072,7 +32973,7 @@ static const AsterixField I032_420 = { FIXED, 1, 0, 0, &hf_032_420, I032_420_PAR
static int hf_032_430;
static int hf_032_430_VALUE;
static const FieldPart I032_430_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_032_430_VALUE, NULL };
-static const FieldPart *I032_430_PARTS[] = {
+static const FieldPart * const I032_430_PARTS[] = {
&I032_430_VALUE,
NULL
};
@@ -33087,7 +32988,7 @@ static const value_string valstr_032_435_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I032_435_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_032_435_VALUE, NULL };
-static const FieldPart *I032_435_PARTS[] = {
+static const FieldPart * const I032_435_PARTS[] = {
&I032_435_VALUE,
NULL
};
@@ -33095,7 +32996,7 @@ static const AsterixField I032_435 = { FIXED, 1, 0, 0, &hf_032_435, I032_435_PAR
static int hf_032_440;
static int hf_032_440_VALUE;
static const FieldPart I032_440_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_032_440_VALUE, NULL };
-static const FieldPart *I032_440_PARTS[] = {
+static const FieldPart * const I032_440_PARTS[] = {
&I032_440_VALUE,
NULL
};
@@ -33103,7 +33004,7 @@ static const AsterixField I032_440 = { FIXED, 4, 0, 0, &hf_032_440, I032_440_PAR
static int hf_032_450;
static int hf_032_450_VALUE;
static const FieldPart I032_450_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_032_450_VALUE, NULL };
-static const FieldPart *I032_450_PARTS[] = {
+static const FieldPart * const I032_450_PARTS[] = {
&I032_450_VALUE,
NULL
};
@@ -33117,7 +33018,7 @@ static int hf_032_460_OCT3;
static const FieldPart I032_460_OCT3 = { 3, 1.0, FIELD_PART_HEX, &hf_032_460_OCT3, NULL };
static int hf_032_460_OCT4;
static const FieldPart I032_460_OCT4 = { 3, 1.0, FIELD_PART_HEX, &hf_032_460_OCT4, NULL };
-static const FieldPart *I032_460_PARTS[] = {
+static const FieldPart * const I032_460_PARTS[] = {
&IXXX_4bit_spare,
&I032_460_OCT1,
&I032_460_OCT2,
@@ -33129,7 +33030,7 @@ static const AsterixField I032_460 = { REPETITIVE, 2, 1, 0, &hf_032_460, I032_46
static int hf_032_480;
static int hf_032_480_VALUE;
static const FieldPart I032_480_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_032_480_VALUE, NULL };
-static const FieldPart *I032_480_PARTS[] = {
+static const FieldPart * const I032_480_PARTS[] = {
&I032_480_VALUE,
NULL
};
@@ -33139,7 +33040,7 @@ static int hf_032_490_CEN;
static const FieldPart I032_490_CEN = { 8, 1.0, FIELD_PART_HEX, &hf_032_490_CEN, NULL };
static int hf_032_490_POS;
static const FieldPart I032_490_POS = { 8, 1.0, FIELD_PART_HEX, &hf_032_490_POS, NULL };
-static const FieldPart *I032_490_PARTS[] = {
+static const FieldPart * const I032_490_PARTS[] = {
&I032_490_CEN,
&I032_490_POS,
NULL
@@ -33158,7 +33059,7 @@ static const value_string valstr_032_500_IFI_TYP[] = {
static const FieldPart I032_500_IFI_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_032_500_IFI_TYP, NULL };
static int hf_032_500_IFI_NBR;
static const FieldPart I032_500_IFI_NBR = { 27, 1.0, FIELD_PART_UINT, &hf_032_500_IFI_NBR, NULL };
-static const FieldPart *I032_500_IFI_PARTS[] = {
+static const FieldPart * const I032_500_IFI_PARTS[] = {
&I032_500_IFI_TYP,
&IXXX_3bit_spare,
&I032_500_IFI_NBR,
@@ -33182,7 +33083,7 @@ static const value_string valstr_032_500_RVP_HPR[] = {
{ 0, NULL }
};
static const FieldPart I032_500_RVP_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_032_500_RVP_HPR, NULL };
-static const FieldPart *I032_500_RVP_PARTS[] = {
+static const FieldPart * const I032_500_RVP_PARTS[] = {
&IXXX_5bit_spare,
&I032_500_RVP_RVSM,
&I032_500_RVP_HPR,
@@ -33196,7 +33097,7 @@ static int hf_032_500_RDS_NU2;
static const FieldPart I032_500_RDS_NU2 = { 8, 1.0, FIELD_PART_ASCII, &hf_032_500_RDS_NU2, NULL };
static int hf_032_500_RDS_LTR;
static const FieldPart I032_500_RDS_LTR = { 8, 1.0, FIELD_PART_ASCII, &hf_032_500_RDS_LTR, NULL };
-static const FieldPart *I032_500_RDS_PARTS[] = {
+static const FieldPart * const I032_500_RDS_PARTS[] = {
&I032_500_RDS_NU1,
&I032_500_RDS_NU2,
&I032_500_RDS_LTR,
@@ -33245,7 +33146,7 @@ static const value_string valstr_032_500_TOD_AVS[] = {
static const FieldPart I032_500_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_032_500_TOD_AVS, NULL };
static int hf_032_500_TOD_SEC;
static const FieldPart I032_500_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_032_500_TOD_SEC, NULL };
-static const FieldPart *I032_500_TOD_PARTS[] = {
+static const FieldPart * const I032_500_TOD_PARTS[] = {
&I032_500_TOD_TYP,
&I032_500_TOD_DAY,
&IXXX_4bit_spare,
@@ -33261,7 +33162,7 @@ static const AsterixField I032_500_TOD = { REPETITIVE, 4, 1, 0, &hf_032_500_TOD,
static int hf_032_500_AST;
static int hf_032_500_AST_VALUE;
static const FieldPart I032_500_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_032_500_AST_VALUE, NULL };
-static const FieldPart *I032_500_AST_PARTS[] = {
+static const FieldPart * const I032_500_AST_PARTS[] = {
&I032_500_AST_VALUE,
NULL
};
@@ -33285,7 +33186,7 @@ static const value_string valstr_032_500_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I032_500_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_032_500_STS_AVL, NULL };
-static const FieldPart *I032_500_STS_PARTS[] = {
+static const FieldPart * const I032_500_STS_PARTS[] = {
&I032_500_STS_EMP,
&I032_500_STS_AVL,
&IXXX_4bit_spare,
@@ -33295,7 +33196,7 @@ static const AsterixField I032_500_STS = { FIXED, 1, 0, 0, &hf_032_500_STS, I032
static int hf_032_500_SID;
static int hf_032_500_SID_VALUE;
static const FieldPart I032_500_SID_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_032_500_SID_VALUE, NULL };
-static const FieldPart *I032_500_SID_PARTS[] = {
+static const FieldPart * const I032_500_SID_PARTS[] = {
&I032_500_SID_VALUE,
NULL
};
@@ -33303,7 +33204,7 @@ static const AsterixField I032_500_SID = { FIXED, 7, 0, 0, &hf_032_500_SID, I032
static int hf_032_500_STAR;
static int hf_032_500_STAR_VALUE;
static const FieldPart I032_500_STAR_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_032_500_STAR_VALUE, NULL };
-static const FieldPart *I032_500_STAR_PARTS[] = {
+static const FieldPart * const I032_500_STAR_PARTS[] = {
&I032_500_STAR_VALUE,
NULL
};
@@ -33312,8 +33213,7 @@ static const AsterixField I032_500 = { COMPOUND, 0, 0, 0, &hf_032_500, NULL, { &
static int hf_032_RE;
static const AsterixField I032_RE = { EXP, 0, 0, 1, &hf_032_RE, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I032_V1_1_uap[] = {
+static const AsterixField * const I032_V1_1_uap[] = {
&I032_V1_1_010,
&I032_V1_1_015,
&I032_V1_1_018,
@@ -33337,14 +33237,12 @@ static const AsterixField *I032_V1_1_uap[] = {
&I032_V1_1_RE,
NULL
};
-static const AsterixField **I032_V1_1[] = {
+static const AsterixField * const * const I032_V1_1[] = {
I032_V1_1_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I032_uap[] = {
+static const AsterixField * const I032_uap[] = {
&I032_010,
&I032_015,
&I032_018,
@@ -33368,11 +33266,10 @@ static const AsterixField *I032_uap[] = {
&I032_RE,
NULL
};
-static const AsterixField **I032[] = {
+static const AsterixField * const * const I032[] = {
I032_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 034, edition 1.27 */
static int hf_034_V1_27_000;
@@ -33385,7 +33282,7 @@ static const value_string valstr_034_V1_27_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_V1_27_000_VALUE, NULL };
-static const FieldPart *I034_V1_27_000_PARTS[] = {
+static const FieldPart * const I034_V1_27_000_PARTS[] = {
&I034_V1_27_000_VALUE,
NULL
};
@@ -33395,7 +33292,7 @@ static int hf_034_V1_27_010_SAC;
static const FieldPart I034_V1_27_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_034_V1_27_010_SAC, NULL };
static int hf_034_V1_27_010_SIC;
static const FieldPart I034_V1_27_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_034_V1_27_010_SIC, NULL };
-static const FieldPart *I034_V1_27_010_PARTS[] = {
+static const FieldPart * const I034_V1_27_010_PARTS[] = {
&I034_V1_27_010_SAC,
&I034_V1_27_010_SIC,
NULL
@@ -33404,7 +33301,7 @@ static const AsterixField I034_V1_27_010 = { FIXED, 2, 0, 0, &hf_034_V1_27_010,
static int hf_034_V1_27_020;
static int hf_034_V1_27_020_VALUE;
static const FieldPart I034_V1_27_020_VALUE = { 8, 1.40625, FIELD_PART_UFLOAT, &hf_034_V1_27_020_VALUE, NULL };
-static const FieldPart *I034_V1_27_020_PARTS[] = {
+static const FieldPart * const I034_V1_27_020_PARTS[] = {
&I034_V1_27_020_VALUE,
NULL
};
@@ -33412,7 +33309,7 @@ static const AsterixField I034_V1_27_020 = { FIXED, 1, 0, 0, &hf_034_V1_27_020,
static int hf_034_V1_27_030;
static int hf_034_V1_27_030_VALUE;
static const FieldPart I034_V1_27_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_034_V1_27_030_VALUE, NULL };
-static const FieldPart *I034_V1_27_030_PARTS[] = {
+static const FieldPart * const I034_V1_27_030_PARTS[] = {
&I034_V1_27_030_VALUE,
NULL
};
@@ -33420,7 +33317,7 @@ static const AsterixField I034_V1_27_030 = { FIXED, 3, 0, 0, &hf_034_V1_27_030,
static int hf_034_V1_27_041;
static int hf_034_V1_27_041_VALUE;
static const FieldPart I034_V1_27_041_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_034_V1_27_041_VALUE, NULL };
-static const FieldPart *I034_V1_27_041_PARTS[] = {
+static const FieldPart * const I034_V1_27_041_PARTS[] = {
&I034_V1_27_041_VALUE,
NULL
};
@@ -33476,7 +33373,7 @@ static const value_string valstr_034_V1_27_050_COM_TSV[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_050_COM_TSV = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_27_050_COM_TSV, NULL };
-static const FieldPart *I034_V1_27_050_COM_PARTS[] = {
+static const FieldPart * const I034_V1_27_050_COM_PARTS[] = {
&I034_V1_27_050_COM_NOGO,
&I034_V1_27_050_COM_RDPC,
&I034_V1_27_050_COM_RDPR,
@@ -33519,7 +33416,7 @@ static const value_string valstr_034_V1_27_050_PSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_050_PSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_27_050_PSR_MSC, NULL };
-static const FieldPart *I034_V1_27_050_PSR_PARTS[] = {
+static const FieldPart * const I034_V1_27_050_PSR_PARTS[] = {
&I034_V1_27_050_PSR_ANT,
&I034_V1_27_050_PSR_CHAB,
&I034_V1_27_050_PSR_OVL,
@@ -33559,7 +33456,7 @@ static const value_string valstr_034_V1_27_050_SSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_050_SSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_27_050_SSR_MSC, NULL };
-static const FieldPart *I034_V1_27_050_SSR_PARTS[] = {
+static const FieldPart * const I034_V1_27_050_SSR_PARTS[] = {
&I034_V1_27_050_SSR_ANT,
&I034_V1_27_050_SSR_CHAB,
&I034_V1_27_050_SSR_OVL,
@@ -33627,7 +33524,7 @@ static const value_string valstr_034_V1_27_050_MDS_OVLDLF[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_050_MDS_OVLDLF = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_27_050_MDS_OVLDLF, NULL };
-static const FieldPart *I034_V1_27_050_MDS_PARTS[] = {
+static const FieldPart * const I034_V1_27_050_MDS_PARTS[] = {
&I034_V1_27_050_MDS_ANT,
&I034_V1_27_050_MDS_CHAB,
&I034_V1_27_050_MDS_OVLSUR,
@@ -33669,7 +33566,7 @@ static const value_string valstr_034_V1_27_060_COM_REDXMT[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_060_COM_REDXMT = { 3, 1.0, FIELD_PART_UINT, &hf_034_V1_27_060_COM_REDXMT, NULL };
-static const FieldPart *I034_V1_27_060_COM_PARTS[] = {
+static const FieldPart * const I034_V1_27_060_COM_PARTS[] = {
&IXXX_1bit_spare,
&I034_V1_27_060_COM_REDRDP,
&I034_V1_27_060_COM_REDXMT,
@@ -33707,7 +33604,7 @@ static const value_string valstr_034_V1_27_060_PSR_STC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_060_PSR_STC = { 2, 1.0, FIELD_PART_UINT, &hf_034_V1_27_060_PSR_STC, NULL };
-static const FieldPart *I034_V1_27_060_PSR_PARTS[] = {
+static const FieldPart * const I034_V1_27_060_PSR_PARTS[] = {
&I034_V1_27_060_PSR_POL,
&I034_V1_27_060_PSR_REDRAD,
&I034_V1_27_060_PSR_STC,
@@ -33729,7 +33626,7 @@ static const value_string valstr_034_V1_27_060_SSR_REDRAD[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_060_SSR_REDRAD = { 3, 1.0, FIELD_PART_UINT, &hf_034_V1_27_060_SSR_REDRAD, NULL };
-static const FieldPart *I034_V1_27_060_SSR_PARTS[] = {
+static const FieldPart * const I034_V1_27_060_SSR_PARTS[] = {
&I034_V1_27_060_SSR_REDRAD,
&IXXX_5bit_spare,
NULL
@@ -33756,7 +33653,7 @@ static const value_string valstr_034_V1_27_060_MDS_CLU[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_060_MDS_CLU = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_27_060_MDS_CLU, NULL };
-static const FieldPart *I034_V1_27_060_MDS_PARTS[] = {
+static const FieldPart * const I034_V1_27_060_MDS_PARTS[] = {
&I034_V1_27_060_MDS_REDRAD,
&I034_V1_27_060_MDS_CLU,
&IXXX_4bit_spare,
@@ -33789,7 +33686,7 @@ static const value_string valstr_034_V1_27_070_TYP[] = {
static const FieldPart I034_V1_27_070_TYP = { 5, 1.0, FIELD_PART_UINT, &hf_034_V1_27_070_TYP, NULL };
static int hf_034_V1_27_070_COUNT;
static const FieldPart I034_V1_27_070_COUNT = { 11, 1.0, FIELD_PART_UINT, &hf_034_V1_27_070_COUNT, NULL };
-static const FieldPart *I034_V1_27_070_PARTS[] = {
+static const FieldPart * const I034_V1_27_070_PARTS[] = {
&I034_V1_27_070_TYP,
&I034_V1_27_070_COUNT,
NULL
@@ -33800,7 +33697,7 @@ static int hf_034_V1_27_090_RNG;
static const FieldPart I034_V1_27_090_RNG = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_034_V1_27_090_RNG, NULL };
static int hf_034_V1_27_090_AZM;
static const FieldPart I034_V1_27_090_AZM = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_034_V1_27_090_AZM, NULL };
-static const FieldPart *I034_V1_27_090_PARTS[] = {
+static const FieldPart * const I034_V1_27_090_PARTS[] = {
&I034_V1_27_090_RNG,
&I034_V1_27_090_AZM,
NULL
@@ -33815,7 +33712,7 @@ static int hf_034_V1_27_100_THETAST;
static const FieldPart I034_V1_27_100_THETAST = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_V1_27_100_THETAST, NULL };
static int hf_034_V1_27_100_THETAEND;
static const FieldPart I034_V1_27_100_THETAEND = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_V1_27_100_THETAEND, NULL };
-static const FieldPart *I034_V1_27_100_PARTS[] = {
+static const FieldPart * const I034_V1_27_100_PARTS[] = {
&I034_V1_27_100_RHOST,
&I034_V1_27_100_RHOEND,
&I034_V1_27_100_THETAST,
@@ -33839,7 +33736,7 @@ static const value_string valstr_034_V1_27_110_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_27_110_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_V1_27_110_VALUE, NULL };
-static const FieldPart *I034_V1_27_110_PARTS[] = {
+static const FieldPart * const I034_V1_27_110_PARTS[] = {
&I034_V1_27_110_VALUE,
NULL
};
@@ -33851,7 +33748,7 @@ static int hf_034_V1_27_120_LAT;
static const FieldPart I034_V1_27_120_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_V1_27_120_LAT, NULL };
static int hf_034_V1_27_120_LON;
static const FieldPart I034_V1_27_120_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_V1_27_120_LON, NULL };
-static const FieldPart *I034_V1_27_120_PARTS[] = {
+static const FieldPart * const I034_V1_27_120_PARTS[] = {
&I034_V1_27_120_HGT,
&I034_V1_27_120_LAT,
&I034_V1_27_120_LON,
@@ -33863,8 +33760,7 @@ static const AsterixField I034_V1_27_RE = { EXP, 0, 0, 1, &hf_034_V1_27_RE, NULL
static int hf_034_V1_27_SP;
static const AsterixField I034_V1_27_SP = { EXP, 0, 0, 1, &hf_034_V1_27_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I034_V1_27_uap[] = {
+static const AsterixField * const I034_V1_27_uap[] = {
&I034_V1_27_010,
&I034_V1_27_000,
&I034_V1_27_030,
@@ -33881,11 +33777,10 @@ static const AsterixField *I034_V1_27_uap[] = {
&I034_V1_27_SP,
NULL
};
-static const AsterixField **I034_V1_27[] = {
+static const AsterixField * const * const I034_V1_27[] = {
I034_V1_27_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 034, edition 1.28 */
static int hf_034_V1_28_000;
@@ -33899,7 +33794,7 @@ static const value_string valstr_034_V1_28_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_V1_28_000_VALUE, NULL };
-static const FieldPart *I034_V1_28_000_PARTS[] = {
+static const FieldPart * const I034_V1_28_000_PARTS[] = {
&I034_V1_28_000_VALUE,
NULL
};
@@ -33909,7 +33804,7 @@ static int hf_034_V1_28_010_SAC;
static const FieldPart I034_V1_28_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_034_V1_28_010_SAC, NULL };
static int hf_034_V1_28_010_SIC;
static const FieldPart I034_V1_28_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_034_V1_28_010_SIC, NULL };
-static const FieldPart *I034_V1_28_010_PARTS[] = {
+static const FieldPart * const I034_V1_28_010_PARTS[] = {
&I034_V1_28_010_SAC,
&I034_V1_28_010_SIC,
NULL
@@ -33918,7 +33813,7 @@ static const AsterixField I034_V1_28_010 = { FIXED, 2, 0, 0, &hf_034_V1_28_010,
static int hf_034_V1_28_020;
static int hf_034_V1_28_020_VALUE;
static const FieldPart I034_V1_28_020_VALUE = { 8, 1.40625, FIELD_PART_UFLOAT, &hf_034_V1_28_020_VALUE, NULL };
-static const FieldPart *I034_V1_28_020_PARTS[] = {
+static const FieldPart * const I034_V1_28_020_PARTS[] = {
&I034_V1_28_020_VALUE,
NULL
};
@@ -33926,7 +33821,7 @@ static const AsterixField I034_V1_28_020 = { FIXED, 1, 0, 0, &hf_034_V1_28_020,
static int hf_034_V1_28_030;
static int hf_034_V1_28_030_VALUE;
static const FieldPart I034_V1_28_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_034_V1_28_030_VALUE, NULL };
-static const FieldPart *I034_V1_28_030_PARTS[] = {
+static const FieldPart * const I034_V1_28_030_PARTS[] = {
&I034_V1_28_030_VALUE,
NULL
};
@@ -33934,7 +33829,7 @@ static const AsterixField I034_V1_28_030 = { FIXED, 3, 0, 0, &hf_034_V1_28_030,
static int hf_034_V1_28_041;
static int hf_034_V1_28_041_VALUE;
static const FieldPart I034_V1_28_041_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_034_V1_28_041_VALUE, NULL };
-static const FieldPart *I034_V1_28_041_PARTS[] = {
+static const FieldPart * const I034_V1_28_041_PARTS[] = {
&I034_V1_28_041_VALUE,
NULL
};
@@ -33990,7 +33885,7 @@ static const value_string valstr_034_V1_28_050_COM_TSV[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_050_COM_TSV = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_28_050_COM_TSV, NULL };
-static const FieldPart *I034_V1_28_050_COM_PARTS[] = {
+static const FieldPart * const I034_V1_28_050_COM_PARTS[] = {
&I034_V1_28_050_COM_NOGO,
&I034_V1_28_050_COM_RDPC,
&I034_V1_28_050_COM_RDPR,
@@ -34033,7 +33928,7 @@ static const value_string valstr_034_V1_28_050_PSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_050_PSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_28_050_PSR_MSC, NULL };
-static const FieldPart *I034_V1_28_050_PSR_PARTS[] = {
+static const FieldPart * const I034_V1_28_050_PSR_PARTS[] = {
&I034_V1_28_050_PSR_ANT,
&I034_V1_28_050_PSR_CHAB,
&I034_V1_28_050_PSR_OVL,
@@ -34073,7 +33968,7 @@ static const value_string valstr_034_V1_28_050_SSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_050_SSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_28_050_SSR_MSC, NULL };
-static const FieldPart *I034_V1_28_050_SSR_PARTS[] = {
+static const FieldPart * const I034_V1_28_050_SSR_PARTS[] = {
&I034_V1_28_050_SSR_ANT,
&I034_V1_28_050_SSR_CHAB,
&I034_V1_28_050_SSR_OVL,
@@ -34141,7 +34036,7 @@ static const value_string valstr_034_V1_28_050_MDS_OVLDLF[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_050_MDS_OVLDLF = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_28_050_MDS_OVLDLF, NULL };
-static const FieldPart *I034_V1_28_050_MDS_PARTS[] = {
+static const FieldPart * const I034_V1_28_050_MDS_PARTS[] = {
&I034_V1_28_050_MDS_ANT,
&I034_V1_28_050_MDS_CHAB,
&I034_V1_28_050_MDS_OVLSUR,
@@ -34183,7 +34078,7 @@ static const value_string valstr_034_V1_28_060_COM_REDXMT[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_060_COM_REDXMT = { 3, 1.0, FIELD_PART_UINT, &hf_034_V1_28_060_COM_REDXMT, NULL };
-static const FieldPart *I034_V1_28_060_COM_PARTS[] = {
+static const FieldPart * const I034_V1_28_060_COM_PARTS[] = {
&IXXX_1bit_spare,
&I034_V1_28_060_COM_REDRDP,
&I034_V1_28_060_COM_REDXMT,
@@ -34221,7 +34116,7 @@ static const value_string valstr_034_V1_28_060_PSR_STC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_060_PSR_STC = { 2, 1.0, FIELD_PART_UINT, &hf_034_V1_28_060_PSR_STC, NULL };
-static const FieldPart *I034_V1_28_060_PSR_PARTS[] = {
+static const FieldPart * const I034_V1_28_060_PSR_PARTS[] = {
&I034_V1_28_060_PSR_POL,
&I034_V1_28_060_PSR_REDRAD,
&I034_V1_28_060_PSR_STC,
@@ -34243,7 +34138,7 @@ static const value_string valstr_034_V1_28_060_SSR_REDRAD[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_060_SSR_REDRAD = { 3, 1.0, FIELD_PART_UINT, &hf_034_V1_28_060_SSR_REDRAD, NULL };
-static const FieldPart *I034_V1_28_060_SSR_PARTS[] = {
+static const FieldPart * const I034_V1_28_060_SSR_PARTS[] = {
&I034_V1_28_060_SSR_REDRAD,
&IXXX_5bit_spare,
NULL
@@ -34270,7 +34165,7 @@ static const value_string valstr_034_V1_28_060_MDS_CLU[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_060_MDS_CLU = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_28_060_MDS_CLU, NULL };
-static const FieldPart *I034_V1_28_060_MDS_PARTS[] = {
+static const FieldPart * const I034_V1_28_060_MDS_PARTS[] = {
&I034_V1_28_060_MDS_REDRAD,
&I034_V1_28_060_MDS_CLU,
&IXXX_4bit_spare,
@@ -34307,7 +34202,7 @@ static const value_string valstr_034_V1_28_070_TYP[] = {
static const FieldPart I034_V1_28_070_TYP = { 5, 1.0, FIELD_PART_UINT, &hf_034_V1_28_070_TYP, NULL };
static int hf_034_V1_28_070_COUNT;
static const FieldPart I034_V1_28_070_COUNT = { 11, 1.0, FIELD_PART_UINT, &hf_034_V1_28_070_COUNT, NULL };
-static const FieldPart *I034_V1_28_070_PARTS[] = {
+static const FieldPart * const I034_V1_28_070_PARTS[] = {
&I034_V1_28_070_TYP,
&I034_V1_28_070_COUNT,
NULL
@@ -34318,7 +34213,7 @@ static int hf_034_V1_28_090_RNG;
static const FieldPart I034_V1_28_090_RNG = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_034_V1_28_090_RNG, NULL };
static int hf_034_V1_28_090_AZM;
static const FieldPart I034_V1_28_090_AZM = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_034_V1_28_090_AZM, NULL };
-static const FieldPart *I034_V1_28_090_PARTS[] = {
+static const FieldPart * const I034_V1_28_090_PARTS[] = {
&I034_V1_28_090_RNG,
&I034_V1_28_090_AZM,
NULL
@@ -34333,7 +34228,7 @@ static int hf_034_V1_28_100_THETAST;
static const FieldPart I034_V1_28_100_THETAST = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_V1_28_100_THETAST, NULL };
static int hf_034_V1_28_100_THETAEND;
static const FieldPart I034_V1_28_100_THETAEND = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_V1_28_100_THETAEND, NULL };
-static const FieldPart *I034_V1_28_100_PARTS[] = {
+static const FieldPart * const I034_V1_28_100_PARTS[] = {
&I034_V1_28_100_RHOST,
&I034_V1_28_100_RHOEND,
&I034_V1_28_100_THETAST,
@@ -34357,7 +34252,7 @@ static const value_string valstr_034_V1_28_110_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_28_110_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_V1_28_110_VALUE, NULL };
-static const FieldPart *I034_V1_28_110_PARTS[] = {
+static const FieldPart * const I034_V1_28_110_PARTS[] = {
&I034_V1_28_110_VALUE,
NULL
};
@@ -34369,7 +34264,7 @@ static int hf_034_V1_28_120_LAT;
static const FieldPart I034_V1_28_120_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_V1_28_120_LAT, NULL };
static int hf_034_V1_28_120_LON;
static const FieldPart I034_V1_28_120_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_V1_28_120_LON, NULL };
-static const FieldPart *I034_V1_28_120_PARTS[] = {
+static const FieldPart * const I034_V1_28_120_PARTS[] = {
&I034_V1_28_120_HGT,
&I034_V1_28_120_LAT,
&I034_V1_28_120_LON,
@@ -34381,8 +34276,7 @@ static const AsterixField I034_V1_28_RE = { EXP, 0, 0, 1, &hf_034_V1_28_RE, NULL
static int hf_034_V1_28_SP;
static const AsterixField I034_V1_28_SP = { EXP, 0, 0, 1, &hf_034_V1_28_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I034_V1_28_uap[] = {
+static const AsterixField * const I034_V1_28_uap[] = {
&I034_V1_28_010,
&I034_V1_28_000,
&I034_V1_28_030,
@@ -34399,11 +34293,10 @@ static const AsterixField *I034_V1_28_uap[] = {
&I034_V1_28_SP,
NULL
};
-static const AsterixField **I034_V1_28[] = {
+static const AsterixField * const * const I034_V1_28[] = {
I034_V1_28_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 034, edition 1.29 */
static int hf_034_V1_29_000;
@@ -34419,7 +34312,7 @@ static const value_string valstr_034_V1_29_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_V1_29_000_VALUE, NULL };
-static const FieldPart *I034_V1_29_000_PARTS[] = {
+static const FieldPart * const I034_V1_29_000_PARTS[] = {
&I034_V1_29_000_VALUE,
NULL
};
@@ -34429,7 +34322,7 @@ static int hf_034_V1_29_010_SAC;
static const FieldPart I034_V1_29_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_034_V1_29_010_SAC, NULL };
static int hf_034_V1_29_010_SIC;
static const FieldPart I034_V1_29_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_034_V1_29_010_SIC, NULL };
-static const FieldPart *I034_V1_29_010_PARTS[] = {
+static const FieldPart * const I034_V1_29_010_PARTS[] = {
&I034_V1_29_010_SAC,
&I034_V1_29_010_SIC,
NULL
@@ -34438,7 +34331,7 @@ static const AsterixField I034_V1_29_010 = { FIXED, 2, 0, 0, &hf_034_V1_29_010,
static int hf_034_V1_29_020;
static int hf_034_V1_29_020_VALUE;
static const FieldPart I034_V1_29_020_VALUE = { 8, 1.40625, FIELD_PART_UFLOAT, &hf_034_V1_29_020_VALUE, NULL };
-static const FieldPart *I034_V1_29_020_PARTS[] = {
+static const FieldPart * const I034_V1_29_020_PARTS[] = {
&I034_V1_29_020_VALUE,
NULL
};
@@ -34446,7 +34339,7 @@ static const AsterixField I034_V1_29_020 = { FIXED, 1, 0, 0, &hf_034_V1_29_020,
static int hf_034_V1_29_030;
static int hf_034_V1_29_030_VALUE;
static const FieldPart I034_V1_29_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_034_V1_29_030_VALUE, NULL };
-static const FieldPart *I034_V1_29_030_PARTS[] = {
+static const FieldPart * const I034_V1_29_030_PARTS[] = {
&I034_V1_29_030_VALUE,
NULL
};
@@ -34454,7 +34347,7 @@ static const AsterixField I034_V1_29_030 = { FIXED, 3, 0, 0, &hf_034_V1_29_030,
static int hf_034_V1_29_041;
static int hf_034_V1_29_041_VALUE;
static const FieldPart I034_V1_29_041_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_034_V1_29_041_VALUE, NULL };
-static const FieldPart *I034_V1_29_041_PARTS[] = {
+static const FieldPart * const I034_V1_29_041_PARTS[] = {
&I034_V1_29_041_VALUE,
NULL
};
@@ -34510,7 +34403,7 @@ static const value_string valstr_034_V1_29_050_COM_TSV[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_050_COM_TSV = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_29_050_COM_TSV, NULL };
-static const FieldPart *I034_V1_29_050_COM_PARTS[] = {
+static const FieldPart * const I034_V1_29_050_COM_PARTS[] = {
&I034_V1_29_050_COM_NOGO,
&I034_V1_29_050_COM_RDPC,
&I034_V1_29_050_COM_RDPR,
@@ -34553,7 +34446,7 @@ static const value_string valstr_034_V1_29_050_PSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_050_PSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_29_050_PSR_MSC, NULL };
-static const FieldPart *I034_V1_29_050_PSR_PARTS[] = {
+static const FieldPart * const I034_V1_29_050_PSR_PARTS[] = {
&I034_V1_29_050_PSR_ANT,
&I034_V1_29_050_PSR_CHAB,
&I034_V1_29_050_PSR_OVL,
@@ -34593,7 +34486,7 @@ static const value_string valstr_034_V1_29_050_SSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_050_SSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_29_050_SSR_MSC, NULL };
-static const FieldPart *I034_V1_29_050_SSR_PARTS[] = {
+static const FieldPart * const I034_V1_29_050_SSR_PARTS[] = {
&I034_V1_29_050_SSR_ANT,
&I034_V1_29_050_SSR_CHAB,
&I034_V1_29_050_SSR_OVL,
@@ -34661,7 +34554,7 @@ static const value_string valstr_034_V1_29_050_MDS_OVLDLF[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_050_MDS_OVLDLF = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_29_050_MDS_OVLDLF, NULL };
-static const FieldPart *I034_V1_29_050_MDS_PARTS[] = {
+static const FieldPart * const I034_V1_29_050_MDS_PARTS[] = {
&I034_V1_29_050_MDS_ANT,
&I034_V1_29_050_MDS_CHAB,
&I034_V1_29_050_MDS_OVLSUR,
@@ -34703,7 +34596,7 @@ static const value_string valstr_034_V1_29_060_COM_REDXMT[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_060_COM_REDXMT = { 3, 1.0, FIELD_PART_UINT, &hf_034_V1_29_060_COM_REDXMT, NULL };
-static const FieldPart *I034_V1_29_060_COM_PARTS[] = {
+static const FieldPart * const I034_V1_29_060_COM_PARTS[] = {
&IXXX_1bit_spare,
&I034_V1_29_060_COM_REDRDP,
&I034_V1_29_060_COM_REDXMT,
@@ -34741,7 +34634,7 @@ static const value_string valstr_034_V1_29_060_PSR_STC[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_060_PSR_STC = { 2, 1.0, FIELD_PART_UINT, &hf_034_V1_29_060_PSR_STC, NULL };
-static const FieldPart *I034_V1_29_060_PSR_PARTS[] = {
+static const FieldPart * const I034_V1_29_060_PSR_PARTS[] = {
&I034_V1_29_060_PSR_POL,
&I034_V1_29_060_PSR_REDRAD,
&I034_V1_29_060_PSR_STC,
@@ -34763,7 +34656,7 @@ static const value_string valstr_034_V1_29_060_SSR_REDRAD[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_060_SSR_REDRAD = { 3, 1.0, FIELD_PART_UINT, &hf_034_V1_29_060_SSR_REDRAD, NULL };
-static const FieldPart *I034_V1_29_060_SSR_PARTS[] = {
+static const FieldPart * const I034_V1_29_060_SSR_PARTS[] = {
&I034_V1_29_060_SSR_REDRAD,
&IXXX_5bit_spare,
NULL
@@ -34790,7 +34683,7 @@ static const value_string valstr_034_V1_29_060_MDS_CLU[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_060_MDS_CLU = { 1, 1.0, FIELD_PART_UINT, &hf_034_V1_29_060_MDS_CLU, NULL };
-static const FieldPart *I034_V1_29_060_MDS_PARTS[] = {
+static const FieldPart * const I034_V1_29_060_MDS_PARTS[] = {
&I034_V1_29_060_MDS_REDRAD,
&I034_V1_29_060_MDS_CLU,
&IXXX_4bit_spare,
@@ -34827,7 +34720,7 @@ static const value_string valstr_034_V1_29_070_TYP[] = {
static const FieldPart I034_V1_29_070_TYP = { 5, 1.0, FIELD_PART_UINT, &hf_034_V1_29_070_TYP, NULL };
static int hf_034_V1_29_070_COUNT;
static const FieldPart I034_V1_29_070_COUNT = { 11, 1.0, FIELD_PART_UINT, &hf_034_V1_29_070_COUNT, NULL };
-static const FieldPart *I034_V1_29_070_PARTS[] = {
+static const FieldPart * const I034_V1_29_070_PARTS[] = {
&I034_V1_29_070_TYP,
&I034_V1_29_070_COUNT,
NULL
@@ -34838,7 +34731,7 @@ static int hf_034_V1_29_090_RNG;
static const FieldPart I034_V1_29_090_RNG = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_034_V1_29_090_RNG, NULL };
static int hf_034_V1_29_090_AZM;
static const FieldPart I034_V1_29_090_AZM = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_034_V1_29_090_AZM, NULL };
-static const FieldPart *I034_V1_29_090_PARTS[] = {
+static const FieldPart * const I034_V1_29_090_PARTS[] = {
&I034_V1_29_090_RNG,
&I034_V1_29_090_AZM,
NULL
@@ -34853,7 +34746,7 @@ static int hf_034_V1_29_100_THETAST;
static const FieldPart I034_V1_29_100_THETAST = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_V1_29_100_THETAST, NULL };
static int hf_034_V1_29_100_THETAEND;
static const FieldPart I034_V1_29_100_THETAEND = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_V1_29_100_THETAEND, NULL };
-static const FieldPart *I034_V1_29_100_PARTS[] = {
+static const FieldPart * const I034_V1_29_100_PARTS[] = {
&I034_V1_29_100_RHOST,
&I034_V1_29_100_RHOEND,
&I034_V1_29_100_THETAST,
@@ -34877,7 +34770,7 @@ static const value_string valstr_034_V1_29_110_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_V1_29_110_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_V1_29_110_VALUE, NULL };
-static const FieldPart *I034_V1_29_110_PARTS[] = {
+static const FieldPart * const I034_V1_29_110_PARTS[] = {
&I034_V1_29_110_VALUE,
NULL
};
@@ -34889,7 +34782,7 @@ static int hf_034_V1_29_120_LAT;
static const FieldPart I034_V1_29_120_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_V1_29_120_LAT, NULL };
static int hf_034_V1_29_120_LON;
static const FieldPart I034_V1_29_120_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_V1_29_120_LON, NULL };
-static const FieldPart *I034_V1_29_120_PARTS[] = {
+static const FieldPart * const I034_V1_29_120_PARTS[] = {
&I034_V1_29_120_HGT,
&I034_V1_29_120_LAT,
&I034_V1_29_120_LON,
@@ -34915,7 +34808,7 @@ static const value_string valstr_034_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_000_VALUE, NULL };
-static const FieldPart *I034_000_PARTS[] = {
+static const FieldPart * const I034_000_PARTS[] = {
&I034_000_VALUE,
NULL
};
@@ -34925,7 +34818,7 @@ static int hf_034_010_SAC;
static const FieldPart I034_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_034_010_SAC, NULL };
static int hf_034_010_SIC;
static const FieldPart I034_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_034_010_SIC, NULL };
-static const FieldPart *I034_010_PARTS[] = {
+static const FieldPart * const I034_010_PARTS[] = {
&I034_010_SAC,
&I034_010_SIC,
NULL
@@ -34934,7 +34827,7 @@ static const AsterixField I034_010 = { FIXED, 2, 0, 0, &hf_034_010, I034_010_PAR
static int hf_034_020;
static int hf_034_020_VALUE;
static const FieldPart I034_020_VALUE = { 8, 1.40625, FIELD_PART_UFLOAT, &hf_034_020_VALUE, NULL };
-static const FieldPart *I034_020_PARTS[] = {
+static const FieldPart * const I034_020_PARTS[] = {
&I034_020_VALUE,
NULL
};
@@ -34942,7 +34835,7 @@ static const AsterixField I034_020 = { FIXED, 1, 0, 0, &hf_034_020, I034_020_PAR
static int hf_034_030;
static int hf_034_030_VALUE;
static const FieldPart I034_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_034_030_VALUE, NULL };
-static const FieldPart *I034_030_PARTS[] = {
+static const FieldPart * const I034_030_PARTS[] = {
&I034_030_VALUE,
NULL
};
@@ -34950,7 +34843,7 @@ static const AsterixField I034_030 = { FIXED, 3, 0, 0, &hf_034_030, I034_030_PAR
static int hf_034_041;
static int hf_034_041_VALUE;
static const FieldPart I034_041_VALUE = { 16, 0.0078125, FIELD_PART_UFLOAT, &hf_034_041_VALUE, NULL };
-static const FieldPart *I034_041_PARTS[] = {
+static const FieldPart * const I034_041_PARTS[] = {
&I034_041_VALUE,
NULL
};
@@ -35006,7 +34899,7 @@ static const value_string valstr_034_050_COM_TSV[] = {
{ 0, NULL }
};
static const FieldPart I034_050_COM_TSV = { 1, 1.0, FIELD_PART_UINT, &hf_034_050_COM_TSV, NULL };
-static const FieldPart *I034_050_COM_PARTS[] = {
+static const FieldPart * const I034_050_COM_PARTS[] = {
&I034_050_COM_NOGO,
&I034_050_COM_RDPC,
&I034_050_COM_RDPR,
@@ -35049,7 +34942,7 @@ static const value_string valstr_034_050_PSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_050_PSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_050_PSR_MSC, NULL };
-static const FieldPart *I034_050_PSR_PARTS[] = {
+static const FieldPart * const I034_050_PSR_PARTS[] = {
&I034_050_PSR_ANT,
&I034_050_PSR_CHAB,
&I034_050_PSR_OVL,
@@ -35089,7 +34982,7 @@ static const value_string valstr_034_050_SSR_MSC[] = {
{ 0, NULL }
};
static const FieldPart I034_050_SSR_MSC = { 1, 1.0, FIELD_PART_UINT, &hf_034_050_SSR_MSC, NULL };
-static const FieldPart *I034_050_SSR_PARTS[] = {
+static const FieldPart * const I034_050_SSR_PARTS[] = {
&I034_050_SSR_ANT,
&I034_050_SSR_CHAB,
&I034_050_SSR_OVL,
@@ -35157,7 +35050,7 @@ static const value_string valstr_034_050_MDS_OVLDLF[] = {
{ 0, NULL }
};
static const FieldPart I034_050_MDS_OVLDLF = { 1, 1.0, FIELD_PART_UINT, &hf_034_050_MDS_OVLDLF, NULL };
-static const FieldPart *I034_050_MDS_PARTS[] = {
+static const FieldPart * const I034_050_MDS_PARTS[] = {
&I034_050_MDS_ANT,
&I034_050_MDS_CHAB,
&I034_050_MDS_OVLSUR,
@@ -35199,7 +35092,7 @@ static const value_string valstr_034_060_COM_REDXMT[] = {
{ 0, NULL }
};
static const FieldPart I034_060_COM_REDXMT = { 3, 1.0, FIELD_PART_UINT, &hf_034_060_COM_REDXMT, NULL };
-static const FieldPart *I034_060_COM_PARTS[] = {
+static const FieldPart * const I034_060_COM_PARTS[] = {
&IXXX_1bit_spare,
&I034_060_COM_REDRDP,
&I034_060_COM_REDXMT,
@@ -35237,7 +35130,7 @@ static const value_string valstr_034_060_PSR_STC[] = {
{ 0, NULL }
};
static const FieldPart I034_060_PSR_STC = { 2, 1.0, FIELD_PART_UINT, &hf_034_060_PSR_STC, NULL };
-static const FieldPart *I034_060_PSR_PARTS[] = {
+static const FieldPart * const I034_060_PSR_PARTS[] = {
&I034_060_PSR_POL,
&I034_060_PSR_REDRAD,
&I034_060_PSR_STC,
@@ -35259,7 +35152,7 @@ static const value_string valstr_034_060_SSR_REDRAD[] = {
{ 0, NULL }
};
static const FieldPart I034_060_SSR_REDRAD = { 3, 1.0, FIELD_PART_UINT, &hf_034_060_SSR_REDRAD, NULL };
-static const FieldPart *I034_060_SSR_PARTS[] = {
+static const FieldPart * const I034_060_SSR_PARTS[] = {
&I034_060_SSR_REDRAD,
&IXXX_5bit_spare,
NULL
@@ -35286,7 +35179,7 @@ static const value_string valstr_034_060_MDS_CLU[] = {
{ 0, NULL }
};
static const FieldPart I034_060_MDS_CLU = { 1, 1.0, FIELD_PART_UINT, &hf_034_060_MDS_CLU, NULL };
-static const FieldPart *I034_060_MDS_PARTS[] = {
+static const FieldPart * const I034_060_MDS_PARTS[] = {
&I034_060_MDS_REDRAD,
&I034_060_MDS_CLU,
&IXXX_4bit_spare,
@@ -35323,7 +35216,7 @@ static const value_string valstr_034_070_TYP[] = {
static const FieldPart I034_070_TYP = { 5, 1.0, FIELD_PART_UINT, &hf_034_070_TYP, NULL };
static int hf_034_070_COUNT;
static const FieldPart I034_070_COUNT = { 11, 1.0, FIELD_PART_UINT, &hf_034_070_COUNT, NULL };
-static const FieldPart *I034_070_PARTS[] = {
+static const FieldPart * const I034_070_PARTS[] = {
&I034_070_TYP,
&I034_070_COUNT,
NULL
@@ -35334,7 +35227,7 @@ static int hf_034_090_RNG;
static const FieldPart I034_090_RNG = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_034_090_RNG, NULL };
static int hf_034_090_AZM;
static const FieldPart I034_090_AZM = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_034_090_AZM, NULL };
-static const FieldPart *I034_090_PARTS[] = {
+static const FieldPart * const I034_090_PARTS[] = {
&I034_090_RNG,
&I034_090_AZM,
NULL
@@ -35349,7 +35242,7 @@ static int hf_034_100_THETAST;
static const FieldPart I034_100_THETAST = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_100_THETAST, NULL };
static int hf_034_100_THETAEND;
static const FieldPart I034_100_THETAEND = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_034_100_THETAEND, NULL };
-static const FieldPart *I034_100_PARTS[] = {
+static const FieldPart * const I034_100_PARTS[] = {
&I034_100_RHOST,
&I034_100_RHOEND,
&I034_100_THETAST,
@@ -35373,7 +35266,7 @@ static const value_string valstr_034_110_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I034_110_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_034_110_VALUE, NULL };
-static const FieldPart *I034_110_PARTS[] = {
+static const FieldPart * const I034_110_PARTS[] = {
&I034_110_VALUE,
NULL
};
@@ -35385,7 +35278,7 @@ static int hf_034_120_LAT;
static const FieldPart I034_120_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_120_LAT, NULL };
static int hf_034_120_LON;
static const FieldPart I034_120_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_034_120_LON, NULL };
-static const FieldPart *I034_120_PARTS[] = {
+static const FieldPart * const I034_120_PARTS[] = {
&I034_120_HGT,
&I034_120_LAT,
&I034_120_LON,
@@ -35397,8 +35290,7 @@ static const AsterixField I034_RE = { EXP, 0, 0, 1, &hf_034_RE, NULL, { NULL } }
static int hf_034_SP;
static const AsterixField I034_SP = { EXP, 0, 0, 1, &hf_034_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I034_V1_29_uap[] = {
+static const AsterixField * const I034_V1_29_uap[] = {
&I034_V1_29_010,
&I034_V1_29_000,
&I034_V1_29_030,
@@ -35415,14 +35307,12 @@ static const AsterixField *I034_V1_29_uap[] = {
&I034_V1_29_SP,
NULL
};
-static const AsterixField **I034_V1_29[] = {
+static const AsterixField * const * const I034_V1_29[] = {
I034_V1_29_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I034_uap[] = {
+static const AsterixField * const I034_uap[] = {
&I034_010,
&I034_000,
&I034_030,
@@ -35439,11 +35329,10 @@ static const AsterixField *I034_uap[] = {
&I034_SP,
NULL
};
-static const AsterixField **I034[] = {
+static const AsterixField * const * const I034[] = {
I034_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 048, edition 1.27 */
static int hf_048_V1_27_010;
@@ -35451,7 +35340,7 @@ static int hf_048_V1_27_010_SAC;
static const FieldPart I048_V1_27_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_27_010_SAC, NULL };
static int hf_048_V1_27_010_SIC;
static const FieldPart I048_V1_27_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_27_010_SIC, NULL };
-static const FieldPart *I048_V1_27_010_PARTS[] = {
+static const FieldPart * const I048_V1_27_010_PARTS[] = {
&I048_V1_27_010_SAC,
&I048_V1_27_010_SIC,
NULL
@@ -35543,7 +35432,7 @@ static const value_string valstr_048_V1_27_020_FOEFRI[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_27_020_FOEFRI = { 2, 1.0, FIELD_PART_UINT, &hf_048_V1_27_020_FOEFRI, NULL };
-static const FieldPart *I048_V1_27_020_PARTS[] = {
+static const FieldPart * const I048_V1_27_020_PARTS[] = {
&I048_V1_27_020_TYP,
&I048_V1_27_020_SIM,
&I048_V1_27_020_RDP,
@@ -35598,7 +35487,7 @@ static const value_string valstr_048_V1_27_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_27_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_048_V1_27_030_Subitem, NULL };
-static const FieldPart *I048_V1_27_030_PARTS[] = {
+static const FieldPart * const I048_V1_27_030_PARTS[] = {
&I048_V1_27_030_Subitem,
&IXXX_FX,
NULL
@@ -35609,7 +35498,7 @@ static int hf_048_V1_27_040_RHO;
static const FieldPart I048_V1_27_040_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_048_V1_27_040_RHO, NULL };
static int hf_048_V1_27_040_THETA;
static const FieldPart I048_V1_27_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_27_040_THETA, NULL };
-static const FieldPart *I048_V1_27_040_PARTS[] = {
+static const FieldPart * const I048_V1_27_040_PARTS[] = {
&I048_V1_27_040_RHO,
&I048_V1_27_040_THETA,
NULL
@@ -35620,7 +35509,7 @@ static int hf_048_V1_27_042_X;
static const FieldPart I048_V1_27_042_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_27_042_X, NULL };
static int hf_048_V1_27_042_Y;
static const FieldPart I048_V1_27_042_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_27_042_Y, NULL };
-static const FieldPart *I048_V1_27_042_PARTS[] = {
+static const FieldPart * const I048_V1_27_042_PARTS[] = {
&I048_V1_27_042_X,
&I048_V1_27_042_Y,
NULL
@@ -35650,7 +35539,7 @@ static const value_string valstr_048_V1_27_050_L[] = {
static const FieldPart I048_V1_27_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_050_L, NULL };
static int hf_048_V1_27_050_MODE2;
static const FieldPart I048_V1_27_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_27_050_MODE2, NULL };
-static const FieldPart *I048_V1_27_050_PARTS[] = {
+static const FieldPart * const I048_V1_27_050_PARTS[] = {
&I048_V1_27_050_V,
&I048_V1_27_050_G,
&I048_V1_27_050_L,
@@ -35683,7 +35572,7 @@ static const value_string valstr_048_V1_27_055_L[] = {
static const FieldPart I048_V1_27_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_055_L, NULL };
static int hf_048_V1_27_055_MODE1;
static const FieldPart I048_V1_27_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_048_V1_27_055_MODE1, NULL };
-static const FieldPart *I048_V1_27_055_PARTS[] = {
+static const FieldPart * const I048_V1_27_055_PARTS[] = {
&I048_V1_27_055_V,
&I048_V1_27_055_G,
&I048_V1_27_055_L,
@@ -35776,7 +35665,7 @@ static const value_string valstr_048_V1_27_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_27_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_060_QD1, NULL };
-static const FieldPart *I048_V1_27_060_PARTS[] = {
+static const FieldPart * const I048_V1_27_060_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_27_060_QA4,
&I048_V1_27_060_QA2,
@@ -35829,7 +35718,7 @@ static const value_string valstr_048_V1_27_065_QB1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_27_065_QB1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_065_QB1, NULL };
-static const FieldPart *I048_V1_27_065_PARTS[] = {
+static const FieldPart * const I048_V1_27_065_PARTS[] = {
&IXXX_3bit_spare,
&I048_V1_27_065_QA4,
&I048_V1_27_065_QA2,
@@ -35863,7 +35752,7 @@ static const value_string valstr_048_V1_27_070_L[] = {
static const FieldPart I048_V1_27_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_070_L, NULL };
static int hf_048_V1_27_070_MODE3A;
static const FieldPart I048_V1_27_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_27_070_MODE3A, NULL };
-static const FieldPart *I048_V1_27_070_PARTS[] = {
+static const FieldPart * const I048_V1_27_070_PARTS[] = {
&I048_V1_27_070_V,
&I048_V1_27_070_G,
&I048_V1_27_070_L,
@@ -35957,7 +35846,7 @@ static const value_string valstr_048_V1_27_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_27_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_080_QD1, NULL };
-static const FieldPart *I048_V1_27_080_PARTS[] = {
+static const FieldPart * const I048_V1_27_080_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_27_080_QA4,
&I048_V1_27_080_QA2,
@@ -35991,7 +35880,7 @@ static const value_string valstr_048_V1_27_090_G[] = {
static const FieldPart I048_V1_27_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_090_G, NULL };
static int hf_048_V1_27_090_FL;
static const FieldPart I048_V1_27_090_FL = { 14, 0.25, FIELD_PART_UFLOAT, &hf_048_V1_27_090_FL, NULL };
-static const FieldPart *I048_V1_27_090_PARTS[] = {
+static const FieldPart * const I048_V1_27_090_PARTS[] = {
&I048_V1_27_090_V,
&I048_V1_27_090_G,
&I048_V1_27_090_FL,
@@ -36099,7 +35988,7 @@ static const value_string valstr_048_V1_27_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_27_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_100_QD4, NULL };
-static const FieldPart *I048_V1_27_100_PARTS[] = {
+static const FieldPart * const I048_V1_27_100_PARTS[] = {
&I048_V1_27_100_V,
&I048_V1_27_100_G,
&IXXX_2bit_spare,
@@ -36123,7 +36012,7 @@ static const AsterixField I048_V1_27_100 = { FIXED, 4, 0, 0, &hf_048_V1_27_100,
static int hf_048_V1_27_110;
static int hf_048_V1_27_110_3DH;
static const FieldPart I048_V1_27_110_3DH = { 14, 25.0, FIELD_PART_FLOAT, &hf_048_V1_27_110_3DH, NULL };
-static const FieldPart *I048_V1_27_110_PARTS[] = {
+static const FieldPart * const I048_V1_27_110_PARTS[] = {
&IXXX_2bit_spare,
&I048_V1_27_110_3DH,
NULL
@@ -36140,7 +36029,7 @@ static const value_string valstr_048_V1_27_120_CAL_D[] = {
static const FieldPart I048_V1_27_120_CAL_D = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_120_CAL_D, NULL };
static int hf_048_V1_27_120_CAL_CAL;
static const FieldPart I048_V1_27_120_CAL_CAL = { 10, 1.0, FIELD_PART_FLOAT, &hf_048_V1_27_120_CAL_CAL, NULL };
-static const FieldPart *I048_V1_27_120_CAL_PARTS[] = {
+static const FieldPart * const I048_V1_27_120_CAL_PARTS[] = {
&I048_V1_27_120_CAL_D,
&IXXX_5bit_spare,
&I048_V1_27_120_CAL_CAL,
@@ -36154,7 +36043,7 @@ static int hf_048_V1_27_120_RDS_AMB;
static const FieldPart I048_V1_27_120_RDS_AMB = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_27_120_RDS_AMB, NULL };
static int hf_048_V1_27_120_RDS_FRQ;
static const FieldPart I048_V1_27_120_RDS_FRQ = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_27_120_RDS_FRQ, NULL };
-static const FieldPart *I048_V1_27_120_RDS_PARTS[] = {
+static const FieldPart * const I048_V1_27_120_RDS_PARTS[] = {
&I048_V1_27_120_RDS_DOP,
&I048_V1_27_120_RDS_AMB,
&I048_V1_27_120_RDS_FRQ,
@@ -36166,7 +36055,7 @@ static int hf_048_V1_27_130;
static int hf_048_V1_27_130_SRL;
static int hf_048_V1_27_130_SRL_VALUE;
static const FieldPart I048_V1_27_130_SRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_27_130_SRL_VALUE, NULL };
-static const FieldPart *I048_V1_27_130_SRL_PARTS[] = {
+static const FieldPart * const I048_V1_27_130_SRL_PARTS[] = {
&I048_V1_27_130_SRL_VALUE,
NULL
};
@@ -36174,7 +36063,7 @@ static const AsterixField I048_V1_27_130_SRL = { FIXED, 1, 0, 0, &hf_048_V1_27_1
static int hf_048_V1_27_130_SRR;
static int hf_048_V1_27_130_SRR_VALUE;
static const FieldPart I048_V1_27_130_SRR_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_048_V1_27_130_SRR_VALUE, NULL };
-static const FieldPart *I048_V1_27_130_SRR_PARTS[] = {
+static const FieldPart * const I048_V1_27_130_SRR_PARTS[] = {
&I048_V1_27_130_SRR_VALUE,
NULL
};
@@ -36182,7 +36071,7 @@ static const AsterixField I048_V1_27_130_SRR = { FIXED, 1, 0, 0, &hf_048_V1_27_1
static int hf_048_V1_27_130_SAM;
static int hf_048_V1_27_130_SAM_VALUE;
static const FieldPart I048_V1_27_130_SAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_27_130_SAM_VALUE, NULL };
-static const FieldPart *I048_V1_27_130_SAM_PARTS[] = {
+static const FieldPart * const I048_V1_27_130_SAM_PARTS[] = {
&I048_V1_27_130_SAM_VALUE,
NULL
};
@@ -36190,7 +36079,7 @@ static const AsterixField I048_V1_27_130_SAM = { FIXED, 1, 0, 0, &hf_048_V1_27_1
static int hf_048_V1_27_130_PRL;
static int hf_048_V1_27_130_PRL_VALUE;
static const FieldPart I048_V1_27_130_PRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_27_130_PRL_VALUE, NULL };
-static const FieldPart *I048_V1_27_130_PRL_PARTS[] = {
+static const FieldPart * const I048_V1_27_130_PRL_PARTS[] = {
&I048_V1_27_130_PRL_VALUE,
NULL
};
@@ -36198,7 +36087,7 @@ static const AsterixField I048_V1_27_130_PRL = { FIXED, 1, 0, 0, &hf_048_V1_27_1
static int hf_048_V1_27_130_PAM;
static int hf_048_V1_27_130_PAM_VALUE;
static const FieldPart I048_V1_27_130_PAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_27_130_PAM_VALUE, NULL };
-static const FieldPart *I048_V1_27_130_PAM_PARTS[] = {
+static const FieldPart * const I048_V1_27_130_PAM_PARTS[] = {
&I048_V1_27_130_PAM_VALUE,
NULL
};
@@ -36206,7 +36095,7 @@ static const AsterixField I048_V1_27_130_PAM = { FIXED, 1, 0, 0, &hf_048_V1_27_1
static int hf_048_V1_27_130_RPD;
static int hf_048_V1_27_130_RPD_VALUE;
static const FieldPart I048_V1_27_130_RPD_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_048_V1_27_130_RPD_VALUE, NULL };
-static const FieldPart *I048_V1_27_130_RPD_PARTS[] = {
+static const FieldPart * const I048_V1_27_130_RPD_PARTS[] = {
&I048_V1_27_130_RPD_VALUE,
NULL
};
@@ -36214,7 +36103,7 @@ static const AsterixField I048_V1_27_130_RPD = { FIXED, 1, 0, 0, &hf_048_V1_27_1
static int hf_048_V1_27_130_APD;
static int hf_048_V1_27_130_APD_VALUE;
static const FieldPart I048_V1_27_130_APD_VALUE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_048_V1_27_130_APD_VALUE, NULL };
-static const FieldPart *I048_V1_27_130_APD_PARTS[] = {
+static const FieldPart * const I048_V1_27_130_APD_PARTS[] = {
&I048_V1_27_130_APD_VALUE,
NULL
};
@@ -36223,7 +36112,7 @@ static const AsterixField I048_V1_27_130 = { COMPOUND, 0, 0, 0, &hf_048_V1_27_13
static int hf_048_V1_27_140;
static int hf_048_V1_27_140_VALUE;
static const FieldPart I048_V1_27_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_048_V1_27_140_VALUE, NULL };
-static const FieldPart *I048_V1_27_140_PARTS[] = {
+static const FieldPart * const I048_V1_27_140_PARTS[] = {
&I048_V1_27_140_VALUE,
NULL
};
@@ -36231,7 +36120,7 @@ static const AsterixField I048_V1_27_140 = { FIXED, 3, 0, 0, &hf_048_V1_27_140,
static int hf_048_V1_27_161;
static int hf_048_V1_27_161_TRN;
static const FieldPart I048_V1_27_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_048_V1_27_161_TRN, NULL };
-static const FieldPart *I048_V1_27_161_PARTS[] = {
+static const FieldPart * const I048_V1_27_161_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_27_161_TRN,
NULL
@@ -36305,7 +36194,7 @@ static const value_string valstr_048_V1_27_170_TCC[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_27_170_TCC = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_27_170_TCC, NULL };
-static const FieldPart *I048_V1_27_170_PARTS[] = {
+static const FieldPart * const I048_V1_27_170_PARTS[] = {
&I048_V1_27_170_CNF,
&I048_V1_27_170_RAD,
&I048_V1_27_170_DOU,
@@ -36326,7 +36215,7 @@ static int hf_048_V1_27_200_GSP;
static const FieldPart I048_V1_27_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_27_200_GSP, NULL };
static int hf_048_V1_27_200_HDG;
static const FieldPart I048_V1_27_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_27_200_HDG, NULL };
-static const FieldPart *I048_V1_27_200_PARTS[] = {
+static const FieldPart * const I048_V1_27_200_PARTS[] = {
&I048_V1_27_200_GSP,
&I048_V1_27_200_HDG,
NULL
@@ -36341,7 +36230,7 @@ static int hf_048_V1_27_210_SIGV;
static const FieldPart I048_V1_27_210_SIGV = { 8, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_27_210_SIGV, NULL };
static int hf_048_V1_27_210_SIGH;
static const FieldPart I048_V1_27_210_SIGH = { 8, 0.087890625, FIELD_PART_UFLOAT, &hf_048_V1_27_210_SIGH, NULL };
-static const FieldPart *I048_V1_27_210_PARTS[] = {
+static const FieldPart * const I048_V1_27_210_PARTS[] = {
&I048_V1_27_210_SIGX,
&I048_V1_27_210_SIGY,
&I048_V1_27_210_SIGV,
@@ -36352,7 +36241,7 @@ static const AsterixField I048_V1_27_210 = { FIXED, 4, 0, 0, &hf_048_V1_27_210,
static int hf_048_V1_27_220;
static int hf_048_V1_27_220_VALUE;
static const FieldPart I048_V1_27_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_048_V1_27_220_VALUE, NULL };
-static const FieldPart *I048_V1_27_220_PARTS[] = {
+static const FieldPart * const I048_V1_27_220_PARTS[] = {
&I048_V1_27_220_VALUE,
NULL
};
@@ -36412,7 +36301,7 @@ static int hf_048_V1_27_230_B1A;
static const FieldPart I048_V1_27_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_048_V1_27_230_B1A, NULL };
static int hf_048_V1_27_230_B1B;
static const FieldPart I048_V1_27_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_27_230_B1B, NULL };
-static const FieldPart *I048_V1_27_230_PARTS[] = {
+static const FieldPart * const I048_V1_27_230_PARTS[] = {
&I048_V1_27_230_COM,
&I048_V1_27_230_STAT,
&I048_V1_27_230_SI,
@@ -36428,7 +36317,7 @@ static const AsterixField I048_V1_27_230 = { FIXED, 2, 0, 0, &hf_048_V1_27_230,
static int hf_048_V1_27_240;
static int hf_048_V1_27_240_VALUE;
static const FieldPart I048_V1_27_240_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_048_V1_27_240_VALUE, NULL };
-static const FieldPart *I048_V1_27_240_PARTS[] = {
+static const FieldPart * const I048_V1_27_240_PARTS[] = {
&I048_V1_27_240_VALUE,
NULL
};
@@ -36440,7 +36329,7 @@ static int hf_048_V1_27_250_BDS1;
static const FieldPart I048_V1_27_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_27_250_BDS1, NULL };
static int hf_048_V1_27_250_BDS2;
static const FieldPart I048_V1_27_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_27_250_BDS2, NULL };
-static const FieldPart *I048_V1_27_250_PARTS[] = {
+static const FieldPart * const I048_V1_27_250_PARTS[] = {
&I048_V1_27_250_MBDATA,
&I048_V1_27_250_BDS1,
&I048_V1_27_250_BDS2,
@@ -36450,7 +36339,7 @@ static const AsterixField I048_V1_27_250 = { REPETITIVE, 8, 1, 0, &hf_048_V1_27_
static int hf_048_V1_27_260;
static int hf_048_V1_27_260_VALUE;
static const FieldPart I048_V1_27_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_048_V1_27_260_VALUE, NULL };
-static const FieldPart *I048_V1_27_260_PARTS[] = {
+static const FieldPart * const I048_V1_27_260_PARTS[] = {
&I048_V1_27_260_VALUE,
NULL
};
@@ -36460,8 +36349,7 @@ static const AsterixField I048_V1_27_RE = { EXP, 0, 0, 1, &hf_048_V1_27_RE, NULL
static int hf_048_V1_27_SP;
static const AsterixField I048_V1_27_SP = { EXP, 0, 0, 1, &hf_048_V1_27_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I048_V1_27_uap[] = {
+static const AsterixField * const I048_V1_27_uap[] = {
&I048_V1_27_010,
&I048_V1_27_140,
&I048_V1_27_020,
@@ -36492,11 +36380,10 @@ static const AsterixField *I048_V1_27_uap[] = {
&I048_V1_27_RE,
NULL
};
-static const AsterixField **I048_V1_27[] = {
+static const AsterixField * const * const I048_V1_27[] = {
I048_V1_27_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 048, edition 1.28 */
static int hf_048_V1_28_010;
@@ -36504,7 +36391,7 @@ static int hf_048_V1_28_010_SAC;
static const FieldPart I048_V1_28_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_28_010_SAC, NULL };
static int hf_048_V1_28_010_SIC;
static const FieldPart I048_V1_28_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_28_010_SIC, NULL };
-static const FieldPart *I048_V1_28_010_PARTS[] = {
+static const FieldPart * const I048_V1_28_010_PARTS[] = {
&I048_V1_28_010_SAC,
&I048_V1_28_010_SIC,
NULL
@@ -36596,7 +36483,7 @@ static const value_string valstr_048_V1_28_020_FOEFRI[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_28_020_FOEFRI = { 2, 1.0, FIELD_PART_UINT, &hf_048_V1_28_020_FOEFRI, NULL };
-static const FieldPart *I048_V1_28_020_PARTS[] = {
+static const FieldPart * const I048_V1_28_020_PARTS[] = {
&I048_V1_28_020_TYP,
&I048_V1_28_020_SIM,
&I048_V1_28_020_RDP,
@@ -36654,7 +36541,7 @@ static const value_string valstr_048_V1_28_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_28_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_048_V1_28_030_Subitem, NULL };
-static const FieldPart *I048_V1_28_030_PARTS[] = {
+static const FieldPart * const I048_V1_28_030_PARTS[] = {
&I048_V1_28_030_Subitem,
&IXXX_FX,
NULL
@@ -36665,7 +36552,7 @@ static int hf_048_V1_28_040_RHO;
static const FieldPart I048_V1_28_040_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_048_V1_28_040_RHO, NULL };
static int hf_048_V1_28_040_THETA;
static const FieldPart I048_V1_28_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_28_040_THETA, NULL };
-static const FieldPart *I048_V1_28_040_PARTS[] = {
+static const FieldPart * const I048_V1_28_040_PARTS[] = {
&I048_V1_28_040_RHO,
&I048_V1_28_040_THETA,
NULL
@@ -36676,7 +36563,7 @@ static int hf_048_V1_28_042_X;
static const FieldPart I048_V1_28_042_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_28_042_X, NULL };
static int hf_048_V1_28_042_Y;
static const FieldPart I048_V1_28_042_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_28_042_Y, NULL };
-static const FieldPart *I048_V1_28_042_PARTS[] = {
+static const FieldPart * const I048_V1_28_042_PARTS[] = {
&I048_V1_28_042_X,
&I048_V1_28_042_Y,
NULL
@@ -36706,7 +36593,7 @@ static const value_string valstr_048_V1_28_050_L[] = {
static const FieldPart I048_V1_28_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_050_L, NULL };
static int hf_048_V1_28_050_MODE2;
static const FieldPart I048_V1_28_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_28_050_MODE2, NULL };
-static const FieldPart *I048_V1_28_050_PARTS[] = {
+static const FieldPart * const I048_V1_28_050_PARTS[] = {
&I048_V1_28_050_V,
&I048_V1_28_050_G,
&I048_V1_28_050_L,
@@ -36739,7 +36626,7 @@ static const value_string valstr_048_V1_28_055_L[] = {
static const FieldPart I048_V1_28_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_055_L, NULL };
static int hf_048_V1_28_055_MODE1;
static const FieldPart I048_V1_28_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_048_V1_28_055_MODE1, NULL };
-static const FieldPart *I048_V1_28_055_PARTS[] = {
+static const FieldPart * const I048_V1_28_055_PARTS[] = {
&I048_V1_28_055_V,
&I048_V1_28_055_G,
&I048_V1_28_055_L,
@@ -36832,7 +36719,7 @@ static const value_string valstr_048_V1_28_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_28_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_060_QD1, NULL };
-static const FieldPart *I048_V1_28_060_PARTS[] = {
+static const FieldPart * const I048_V1_28_060_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_28_060_QA4,
&I048_V1_28_060_QA2,
@@ -36885,7 +36772,7 @@ static const value_string valstr_048_V1_28_065_QB1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_28_065_QB1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_065_QB1, NULL };
-static const FieldPart *I048_V1_28_065_PARTS[] = {
+static const FieldPart * const I048_V1_28_065_PARTS[] = {
&IXXX_3bit_spare,
&I048_V1_28_065_QA4,
&I048_V1_28_065_QA2,
@@ -36919,7 +36806,7 @@ static const value_string valstr_048_V1_28_070_L[] = {
static const FieldPart I048_V1_28_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_070_L, NULL };
static int hf_048_V1_28_070_MODE3A;
static const FieldPart I048_V1_28_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_28_070_MODE3A, NULL };
-static const FieldPart *I048_V1_28_070_PARTS[] = {
+static const FieldPart * const I048_V1_28_070_PARTS[] = {
&I048_V1_28_070_V,
&I048_V1_28_070_G,
&I048_V1_28_070_L,
@@ -37013,7 +36900,7 @@ static const value_string valstr_048_V1_28_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_28_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_080_QD1, NULL };
-static const FieldPart *I048_V1_28_080_PARTS[] = {
+static const FieldPart * const I048_V1_28_080_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_28_080_QA4,
&I048_V1_28_080_QA2,
@@ -37047,7 +36934,7 @@ static const value_string valstr_048_V1_28_090_G[] = {
static const FieldPart I048_V1_28_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_090_G, NULL };
static int hf_048_V1_28_090_FL;
static const FieldPart I048_V1_28_090_FL = { 14, 0.25, FIELD_PART_UFLOAT, &hf_048_V1_28_090_FL, NULL };
-static const FieldPart *I048_V1_28_090_PARTS[] = {
+static const FieldPart * const I048_V1_28_090_PARTS[] = {
&I048_V1_28_090_V,
&I048_V1_28_090_G,
&I048_V1_28_090_FL,
@@ -37155,7 +37042,7 @@ static const value_string valstr_048_V1_28_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_28_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_100_QD4, NULL };
-static const FieldPart *I048_V1_28_100_PARTS[] = {
+static const FieldPart * const I048_V1_28_100_PARTS[] = {
&I048_V1_28_100_V,
&I048_V1_28_100_G,
&IXXX_2bit_spare,
@@ -37179,7 +37066,7 @@ static const AsterixField I048_V1_28_100 = { FIXED, 4, 0, 0, &hf_048_V1_28_100,
static int hf_048_V1_28_110;
static int hf_048_V1_28_110_3DH;
static const FieldPart I048_V1_28_110_3DH = { 14, 25.0, FIELD_PART_FLOAT, &hf_048_V1_28_110_3DH, NULL };
-static const FieldPart *I048_V1_28_110_PARTS[] = {
+static const FieldPart * const I048_V1_28_110_PARTS[] = {
&IXXX_2bit_spare,
&I048_V1_28_110_3DH,
NULL
@@ -37196,7 +37083,7 @@ static const value_string valstr_048_V1_28_120_CAL_D[] = {
static const FieldPart I048_V1_28_120_CAL_D = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_120_CAL_D, NULL };
static int hf_048_V1_28_120_CAL_CAL;
static const FieldPart I048_V1_28_120_CAL_CAL = { 10, 1.0, FIELD_PART_FLOAT, &hf_048_V1_28_120_CAL_CAL, NULL };
-static const FieldPart *I048_V1_28_120_CAL_PARTS[] = {
+static const FieldPart * const I048_V1_28_120_CAL_PARTS[] = {
&I048_V1_28_120_CAL_D,
&IXXX_5bit_spare,
&I048_V1_28_120_CAL_CAL,
@@ -37210,7 +37097,7 @@ static int hf_048_V1_28_120_RDS_AMB;
static const FieldPart I048_V1_28_120_RDS_AMB = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_28_120_RDS_AMB, NULL };
static int hf_048_V1_28_120_RDS_FRQ;
static const FieldPart I048_V1_28_120_RDS_FRQ = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_28_120_RDS_FRQ, NULL };
-static const FieldPart *I048_V1_28_120_RDS_PARTS[] = {
+static const FieldPart * const I048_V1_28_120_RDS_PARTS[] = {
&I048_V1_28_120_RDS_DOP,
&I048_V1_28_120_RDS_AMB,
&I048_V1_28_120_RDS_FRQ,
@@ -37222,7 +37109,7 @@ static int hf_048_V1_28_130;
static int hf_048_V1_28_130_SRL;
static int hf_048_V1_28_130_SRL_VALUE;
static const FieldPart I048_V1_28_130_SRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_28_130_SRL_VALUE, NULL };
-static const FieldPart *I048_V1_28_130_SRL_PARTS[] = {
+static const FieldPart * const I048_V1_28_130_SRL_PARTS[] = {
&I048_V1_28_130_SRL_VALUE,
NULL
};
@@ -37230,7 +37117,7 @@ static const AsterixField I048_V1_28_130_SRL = { FIXED, 1, 0, 0, &hf_048_V1_28_1
static int hf_048_V1_28_130_SRR;
static int hf_048_V1_28_130_SRR_VALUE;
static const FieldPart I048_V1_28_130_SRR_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_048_V1_28_130_SRR_VALUE, NULL };
-static const FieldPart *I048_V1_28_130_SRR_PARTS[] = {
+static const FieldPart * const I048_V1_28_130_SRR_PARTS[] = {
&I048_V1_28_130_SRR_VALUE,
NULL
};
@@ -37238,7 +37125,7 @@ static const AsterixField I048_V1_28_130_SRR = { FIXED, 1, 0, 0, &hf_048_V1_28_1
static int hf_048_V1_28_130_SAM;
static int hf_048_V1_28_130_SAM_VALUE;
static const FieldPart I048_V1_28_130_SAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_28_130_SAM_VALUE, NULL };
-static const FieldPart *I048_V1_28_130_SAM_PARTS[] = {
+static const FieldPart * const I048_V1_28_130_SAM_PARTS[] = {
&I048_V1_28_130_SAM_VALUE,
NULL
};
@@ -37246,7 +37133,7 @@ static const AsterixField I048_V1_28_130_SAM = { FIXED, 1, 0, 0, &hf_048_V1_28_1
static int hf_048_V1_28_130_PRL;
static int hf_048_V1_28_130_PRL_VALUE;
static const FieldPart I048_V1_28_130_PRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_28_130_PRL_VALUE, NULL };
-static const FieldPart *I048_V1_28_130_PRL_PARTS[] = {
+static const FieldPart * const I048_V1_28_130_PRL_PARTS[] = {
&I048_V1_28_130_PRL_VALUE,
NULL
};
@@ -37254,7 +37141,7 @@ static const AsterixField I048_V1_28_130_PRL = { FIXED, 1, 0, 0, &hf_048_V1_28_1
static int hf_048_V1_28_130_PAM;
static int hf_048_V1_28_130_PAM_VALUE;
static const FieldPart I048_V1_28_130_PAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_28_130_PAM_VALUE, NULL };
-static const FieldPart *I048_V1_28_130_PAM_PARTS[] = {
+static const FieldPart * const I048_V1_28_130_PAM_PARTS[] = {
&I048_V1_28_130_PAM_VALUE,
NULL
};
@@ -37262,7 +37149,7 @@ static const AsterixField I048_V1_28_130_PAM = { FIXED, 1, 0, 0, &hf_048_V1_28_1
static int hf_048_V1_28_130_RPD;
static int hf_048_V1_28_130_RPD_VALUE;
static const FieldPart I048_V1_28_130_RPD_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_048_V1_28_130_RPD_VALUE, NULL };
-static const FieldPart *I048_V1_28_130_RPD_PARTS[] = {
+static const FieldPart * const I048_V1_28_130_RPD_PARTS[] = {
&I048_V1_28_130_RPD_VALUE,
NULL
};
@@ -37270,7 +37157,7 @@ static const AsterixField I048_V1_28_130_RPD = { FIXED, 1, 0, 0, &hf_048_V1_28_1
static int hf_048_V1_28_130_APD;
static int hf_048_V1_28_130_APD_VALUE;
static const FieldPart I048_V1_28_130_APD_VALUE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_048_V1_28_130_APD_VALUE, NULL };
-static const FieldPart *I048_V1_28_130_APD_PARTS[] = {
+static const FieldPart * const I048_V1_28_130_APD_PARTS[] = {
&I048_V1_28_130_APD_VALUE,
NULL
};
@@ -37279,7 +37166,7 @@ static const AsterixField I048_V1_28_130 = { COMPOUND, 0, 0, 0, &hf_048_V1_28_13
static int hf_048_V1_28_140;
static int hf_048_V1_28_140_VALUE;
static const FieldPart I048_V1_28_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_048_V1_28_140_VALUE, NULL };
-static const FieldPart *I048_V1_28_140_PARTS[] = {
+static const FieldPart * const I048_V1_28_140_PARTS[] = {
&I048_V1_28_140_VALUE,
NULL
};
@@ -37287,7 +37174,7 @@ static const AsterixField I048_V1_28_140 = { FIXED, 3, 0, 0, &hf_048_V1_28_140,
static int hf_048_V1_28_161;
static int hf_048_V1_28_161_TRN;
static const FieldPart I048_V1_28_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_048_V1_28_161_TRN, NULL };
-static const FieldPart *I048_V1_28_161_PARTS[] = {
+static const FieldPart * const I048_V1_28_161_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_28_161_TRN,
NULL
@@ -37361,7 +37248,7 @@ static const value_string valstr_048_V1_28_170_TCC[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_28_170_TCC = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_28_170_TCC, NULL };
-static const FieldPart *I048_V1_28_170_PARTS[] = {
+static const FieldPart * const I048_V1_28_170_PARTS[] = {
&I048_V1_28_170_CNF,
&I048_V1_28_170_RAD,
&I048_V1_28_170_DOU,
@@ -37382,7 +37269,7 @@ static int hf_048_V1_28_200_GSP;
static const FieldPart I048_V1_28_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_28_200_GSP, NULL };
static int hf_048_V1_28_200_HDG;
static const FieldPart I048_V1_28_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_28_200_HDG, NULL };
-static const FieldPart *I048_V1_28_200_PARTS[] = {
+static const FieldPart * const I048_V1_28_200_PARTS[] = {
&I048_V1_28_200_GSP,
&I048_V1_28_200_HDG,
NULL
@@ -37397,7 +37284,7 @@ static int hf_048_V1_28_210_SIGV;
static const FieldPart I048_V1_28_210_SIGV = { 8, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_28_210_SIGV, NULL };
static int hf_048_V1_28_210_SIGH;
static const FieldPart I048_V1_28_210_SIGH = { 8, 0.087890625, FIELD_PART_UFLOAT, &hf_048_V1_28_210_SIGH, NULL };
-static const FieldPart *I048_V1_28_210_PARTS[] = {
+static const FieldPart * const I048_V1_28_210_PARTS[] = {
&I048_V1_28_210_SIGX,
&I048_V1_28_210_SIGY,
&I048_V1_28_210_SIGV,
@@ -37408,7 +37295,7 @@ static const AsterixField I048_V1_28_210 = { FIXED, 4, 0, 0, &hf_048_V1_28_210,
static int hf_048_V1_28_220;
static int hf_048_V1_28_220_VALUE;
static const FieldPart I048_V1_28_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_048_V1_28_220_VALUE, NULL };
-static const FieldPart *I048_V1_28_220_PARTS[] = {
+static const FieldPart * const I048_V1_28_220_PARTS[] = {
&I048_V1_28_220_VALUE,
NULL
};
@@ -37468,7 +37355,7 @@ static int hf_048_V1_28_230_B1A;
static const FieldPart I048_V1_28_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_048_V1_28_230_B1A, NULL };
static int hf_048_V1_28_230_B1B;
static const FieldPart I048_V1_28_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_28_230_B1B, NULL };
-static const FieldPart *I048_V1_28_230_PARTS[] = {
+static const FieldPart * const I048_V1_28_230_PARTS[] = {
&I048_V1_28_230_COM,
&I048_V1_28_230_STAT,
&I048_V1_28_230_SI,
@@ -37484,7 +37371,7 @@ static const AsterixField I048_V1_28_230 = { FIXED, 2, 0, 0, &hf_048_V1_28_230,
static int hf_048_V1_28_240;
static int hf_048_V1_28_240_VALUE;
static const FieldPart I048_V1_28_240_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_048_V1_28_240_VALUE, NULL };
-static const FieldPart *I048_V1_28_240_PARTS[] = {
+static const FieldPart * const I048_V1_28_240_PARTS[] = {
&I048_V1_28_240_VALUE,
NULL
};
@@ -37496,7 +37383,7 @@ static int hf_048_V1_28_250_BDS1;
static const FieldPart I048_V1_28_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_28_250_BDS1, NULL };
static int hf_048_V1_28_250_BDS2;
static const FieldPart I048_V1_28_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_28_250_BDS2, NULL };
-static const FieldPart *I048_V1_28_250_PARTS[] = {
+static const FieldPart * const I048_V1_28_250_PARTS[] = {
&I048_V1_28_250_MBDATA,
&I048_V1_28_250_BDS1,
&I048_V1_28_250_BDS2,
@@ -37506,7 +37393,7 @@ static const AsterixField I048_V1_28_250 = { REPETITIVE, 8, 1, 0, &hf_048_V1_28_
static int hf_048_V1_28_260;
static int hf_048_V1_28_260_VALUE;
static const FieldPart I048_V1_28_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_048_V1_28_260_VALUE, NULL };
-static const FieldPart *I048_V1_28_260_PARTS[] = {
+static const FieldPart * const I048_V1_28_260_PARTS[] = {
&I048_V1_28_260_VALUE,
NULL
};
@@ -37516,8 +37403,7 @@ static const AsterixField I048_V1_28_RE = { EXP, 0, 0, 1, &hf_048_V1_28_RE, NULL
static int hf_048_V1_28_SP;
static const AsterixField I048_V1_28_SP = { EXP, 0, 0, 1, &hf_048_V1_28_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I048_V1_28_uap[] = {
+static const AsterixField * const I048_V1_28_uap[] = {
&I048_V1_28_010,
&I048_V1_28_140,
&I048_V1_28_020,
@@ -37548,11 +37434,10 @@ static const AsterixField *I048_V1_28_uap[] = {
&I048_V1_28_RE,
NULL
};
-static const AsterixField **I048_V1_28[] = {
+static const AsterixField * const * const I048_V1_28[] = {
I048_V1_28_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 048, edition 1.29 */
static int hf_048_V1_29_010;
@@ -37560,7 +37445,7 @@ static int hf_048_V1_29_010_SAC;
static const FieldPart I048_V1_29_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_29_010_SAC, NULL };
static int hf_048_V1_29_010_SIC;
static const FieldPart I048_V1_29_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_29_010_SIC, NULL };
-static const FieldPart *I048_V1_29_010_PARTS[] = {
+static const FieldPart * const I048_V1_29_010_PARTS[] = {
&I048_V1_29_010_SAC,
&I048_V1_29_010_SIC,
NULL
@@ -37652,7 +37537,7 @@ static const value_string valstr_048_V1_29_020_FOEFRI[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_29_020_FOEFRI = { 2, 1.0, FIELD_PART_UINT, &hf_048_V1_29_020_FOEFRI, NULL };
-static const FieldPart *I048_V1_29_020_PARTS[] = {
+static const FieldPart * const I048_V1_29_020_PARTS[] = {
&I048_V1_29_020_TYP,
&I048_V1_29_020_SIM,
&I048_V1_29_020_RDP,
@@ -37710,7 +37595,7 @@ static const value_string valstr_048_V1_29_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_29_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_048_V1_29_030_Subitem, NULL };
-static const FieldPart *I048_V1_29_030_PARTS[] = {
+static const FieldPart * const I048_V1_29_030_PARTS[] = {
&I048_V1_29_030_Subitem,
&IXXX_FX,
NULL
@@ -37721,7 +37606,7 @@ static int hf_048_V1_29_040_RHO;
static const FieldPart I048_V1_29_040_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_048_V1_29_040_RHO, NULL };
static int hf_048_V1_29_040_THETA;
static const FieldPart I048_V1_29_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_29_040_THETA, NULL };
-static const FieldPart *I048_V1_29_040_PARTS[] = {
+static const FieldPart * const I048_V1_29_040_PARTS[] = {
&I048_V1_29_040_RHO,
&I048_V1_29_040_THETA,
NULL
@@ -37732,7 +37617,7 @@ static int hf_048_V1_29_042_X;
static const FieldPart I048_V1_29_042_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_29_042_X, NULL };
static int hf_048_V1_29_042_Y;
static const FieldPart I048_V1_29_042_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_29_042_Y, NULL };
-static const FieldPart *I048_V1_29_042_PARTS[] = {
+static const FieldPart * const I048_V1_29_042_PARTS[] = {
&I048_V1_29_042_X,
&I048_V1_29_042_Y,
NULL
@@ -37762,7 +37647,7 @@ static const value_string valstr_048_V1_29_050_L[] = {
static const FieldPart I048_V1_29_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_050_L, NULL };
static int hf_048_V1_29_050_MODE2;
static const FieldPart I048_V1_29_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_29_050_MODE2, NULL };
-static const FieldPart *I048_V1_29_050_PARTS[] = {
+static const FieldPart * const I048_V1_29_050_PARTS[] = {
&I048_V1_29_050_V,
&I048_V1_29_050_G,
&I048_V1_29_050_L,
@@ -37795,7 +37680,7 @@ static const value_string valstr_048_V1_29_055_L[] = {
static const FieldPart I048_V1_29_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_055_L, NULL };
static int hf_048_V1_29_055_MODE1;
static const FieldPart I048_V1_29_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_048_V1_29_055_MODE1, NULL };
-static const FieldPart *I048_V1_29_055_PARTS[] = {
+static const FieldPart * const I048_V1_29_055_PARTS[] = {
&I048_V1_29_055_V,
&I048_V1_29_055_G,
&I048_V1_29_055_L,
@@ -37888,7 +37773,7 @@ static const value_string valstr_048_V1_29_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_29_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_060_QD1, NULL };
-static const FieldPart *I048_V1_29_060_PARTS[] = {
+static const FieldPart * const I048_V1_29_060_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_29_060_QA4,
&I048_V1_29_060_QA2,
@@ -37941,7 +37826,7 @@ static const value_string valstr_048_V1_29_065_QB1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_29_065_QB1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_065_QB1, NULL };
-static const FieldPart *I048_V1_29_065_PARTS[] = {
+static const FieldPart * const I048_V1_29_065_PARTS[] = {
&IXXX_3bit_spare,
&I048_V1_29_065_QA4,
&I048_V1_29_065_QA2,
@@ -37975,7 +37860,7 @@ static const value_string valstr_048_V1_29_070_L[] = {
static const FieldPart I048_V1_29_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_070_L, NULL };
static int hf_048_V1_29_070_MODE3A;
static const FieldPart I048_V1_29_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_29_070_MODE3A, NULL };
-static const FieldPart *I048_V1_29_070_PARTS[] = {
+static const FieldPart * const I048_V1_29_070_PARTS[] = {
&I048_V1_29_070_V,
&I048_V1_29_070_G,
&I048_V1_29_070_L,
@@ -38069,7 +37954,7 @@ static const value_string valstr_048_V1_29_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_29_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_080_QD1, NULL };
-static const FieldPart *I048_V1_29_080_PARTS[] = {
+static const FieldPart * const I048_V1_29_080_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_29_080_QA4,
&I048_V1_29_080_QA2,
@@ -38103,7 +37988,7 @@ static const value_string valstr_048_V1_29_090_G[] = {
static const FieldPart I048_V1_29_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_090_G, NULL };
static int hf_048_V1_29_090_FL;
static const FieldPart I048_V1_29_090_FL = { 14, 0.25, FIELD_PART_UFLOAT, &hf_048_V1_29_090_FL, NULL };
-static const FieldPart *I048_V1_29_090_PARTS[] = {
+static const FieldPart * const I048_V1_29_090_PARTS[] = {
&I048_V1_29_090_V,
&I048_V1_29_090_G,
&I048_V1_29_090_FL,
@@ -38211,7 +38096,7 @@ static const value_string valstr_048_V1_29_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_29_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_100_QD4, NULL };
-static const FieldPart *I048_V1_29_100_PARTS[] = {
+static const FieldPart * const I048_V1_29_100_PARTS[] = {
&I048_V1_29_100_V,
&I048_V1_29_100_G,
&IXXX_2bit_spare,
@@ -38235,7 +38120,7 @@ static const AsterixField I048_V1_29_100 = { FIXED, 4, 0, 0, &hf_048_V1_29_100,
static int hf_048_V1_29_110;
static int hf_048_V1_29_110_3DH;
static const FieldPart I048_V1_29_110_3DH = { 14, 25.0, FIELD_PART_FLOAT, &hf_048_V1_29_110_3DH, NULL };
-static const FieldPart *I048_V1_29_110_PARTS[] = {
+static const FieldPart * const I048_V1_29_110_PARTS[] = {
&IXXX_2bit_spare,
&I048_V1_29_110_3DH,
NULL
@@ -38252,7 +38137,7 @@ static const value_string valstr_048_V1_29_120_CAL_D[] = {
static const FieldPart I048_V1_29_120_CAL_D = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_120_CAL_D, NULL };
static int hf_048_V1_29_120_CAL_CAL;
static const FieldPart I048_V1_29_120_CAL_CAL = { 10, 1.0, FIELD_PART_FLOAT, &hf_048_V1_29_120_CAL_CAL, NULL };
-static const FieldPart *I048_V1_29_120_CAL_PARTS[] = {
+static const FieldPart * const I048_V1_29_120_CAL_PARTS[] = {
&I048_V1_29_120_CAL_D,
&IXXX_5bit_spare,
&I048_V1_29_120_CAL_CAL,
@@ -38266,7 +38151,7 @@ static int hf_048_V1_29_120_RDS_AMB;
static const FieldPart I048_V1_29_120_RDS_AMB = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_29_120_RDS_AMB, NULL };
static int hf_048_V1_29_120_RDS_FRQ;
static const FieldPart I048_V1_29_120_RDS_FRQ = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_29_120_RDS_FRQ, NULL };
-static const FieldPart *I048_V1_29_120_RDS_PARTS[] = {
+static const FieldPart * const I048_V1_29_120_RDS_PARTS[] = {
&I048_V1_29_120_RDS_DOP,
&I048_V1_29_120_RDS_AMB,
&I048_V1_29_120_RDS_FRQ,
@@ -38278,7 +38163,7 @@ static int hf_048_V1_29_130;
static int hf_048_V1_29_130_SRL;
static int hf_048_V1_29_130_SRL_VALUE;
static const FieldPart I048_V1_29_130_SRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_29_130_SRL_VALUE, NULL };
-static const FieldPart *I048_V1_29_130_SRL_PARTS[] = {
+static const FieldPart * const I048_V1_29_130_SRL_PARTS[] = {
&I048_V1_29_130_SRL_VALUE,
NULL
};
@@ -38286,7 +38171,7 @@ static const AsterixField I048_V1_29_130_SRL = { FIXED, 1, 0, 0, &hf_048_V1_29_1
static int hf_048_V1_29_130_SRR;
static int hf_048_V1_29_130_SRR_VALUE;
static const FieldPart I048_V1_29_130_SRR_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_048_V1_29_130_SRR_VALUE, NULL };
-static const FieldPart *I048_V1_29_130_SRR_PARTS[] = {
+static const FieldPart * const I048_V1_29_130_SRR_PARTS[] = {
&I048_V1_29_130_SRR_VALUE,
NULL
};
@@ -38294,7 +38179,7 @@ static const AsterixField I048_V1_29_130_SRR = { FIXED, 1, 0, 0, &hf_048_V1_29_1
static int hf_048_V1_29_130_SAM;
static int hf_048_V1_29_130_SAM_VALUE;
static const FieldPart I048_V1_29_130_SAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_29_130_SAM_VALUE, NULL };
-static const FieldPart *I048_V1_29_130_SAM_PARTS[] = {
+static const FieldPart * const I048_V1_29_130_SAM_PARTS[] = {
&I048_V1_29_130_SAM_VALUE,
NULL
};
@@ -38302,7 +38187,7 @@ static const AsterixField I048_V1_29_130_SAM = { FIXED, 1, 0, 0, &hf_048_V1_29_1
static int hf_048_V1_29_130_PRL;
static int hf_048_V1_29_130_PRL_VALUE;
static const FieldPart I048_V1_29_130_PRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_29_130_PRL_VALUE, NULL };
-static const FieldPart *I048_V1_29_130_PRL_PARTS[] = {
+static const FieldPart * const I048_V1_29_130_PRL_PARTS[] = {
&I048_V1_29_130_PRL_VALUE,
NULL
};
@@ -38310,7 +38195,7 @@ static const AsterixField I048_V1_29_130_PRL = { FIXED, 1, 0, 0, &hf_048_V1_29_1
static int hf_048_V1_29_130_PAM;
static int hf_048_V1_29_130_PAM_VALUE;
static const FieldPart I048_V1_29_130_PAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_29_130_PAM_VALUE, NULL };
-static const FieldPart *I048_V1_29_130_PAM_PARTS[] = {
+static const FieldPart * const I048_V1_29_130_PAM_PARTS[] = {
&I048_V1_29_130_PAM_VALUE,
NULL
};
@@ -38318,7 +38203,7 @@ static const AsterixField I048_V1_29_130_PAM = { FIXED, 1, 0, 0, &hf_048_V1_29_1
static int hf_048_V1_29_130_RPD;
static int hf_048_V1_29_130_RPD_VALUE;
static const FieldPart I048_V1_29_130_RPD_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_048_V1_29_130_RPD_VALUE, NULL };
-static const FieldPart *I048_V1_29_130_RPD_PARTS[] = {
+static const FieldPart * const I048_V1_29_130_RPD_PARTS[] = {
&I048_V1_29_130_RPD_VALUE,
NULL
};
@@ -38326,7 +38211,7 @@ static const AsterixField I048_V1_29_130_RPD = { FIXED, 1, 0, 0, &hf_048_V1_29_1
static int hf_048_V1_29_130_APD;
static int hf_048_V1_29_130_APD_VALUE;
static const FieldPart I048_V1_29_130_APD_VALUE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_048_V1_29_130_APD_VALUE, NULL };
-static const FieldPart *I048_V1_29_130_APD_PARTS[] = {
+static const FieldPart * const I048_V1_29_130_APD_PARTS[] = {
&I048_V1_29_130_APD_VALUE,
NULL
};
@@ -38335,7 +38220,7 @@ static const AsterixField I048_V1_29_130 = { COMPOUND, 0, 0, 0, &hf_048_V1_29_13
static int hf_048_V1_29_140;
static int hf_048_V1_29_140_VALUE;
static const FieldPart I048_V1_29_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_048_V1_29_140_VALUE, NULL };
-static const FieldPart *I048_V1_29_140_PARTS[] = {
+static const FieldPart * const I048_V1_29_140_PARTS[] = {
&I048_V1_29_140_VALUE,
NULL
};
@@ -38343,7 +38228,7 @@ static const AsterixField I048_V1_29_140 = { FIXED, 3, 0, 0, &hf_048_V1_29_140,
static int hf_048_V1_29_161;
static int hf_048_V1_29_161_TRN;
static const FieldPart I048_V1_29_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_048_V1_29_161_TRN, NULL };
-static const FieldPart *I048_V1_29_161_PARTS[] = {
+static const FieldPart * const I048_V1_29_161_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_29_161_TRN,
NULL
@@ -38417,7 +38302,7 @@ static const value_string valstr_048_V1_29_170_TCC[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_29_170_TCC = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_29_170_TCC, NULL };
-static const FieldPart *I048_V1_29_170_PARTS[] = {
+static const FieldPart * const I048_V1_29_170_PARTS[] = {
&I048_V1_29_170_CNF,
&I048_V1_29_170_RAD,
&I048_V1_29_170_DOU,
@@ -38438,7 +38323,7 @@ static int hf_048_V1_29_200_GSP;
static const FieldPart I048_V1_29_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_29_200_GSP, NULL };
static int hf_048_V1_29_200_HDG;
static const FieldPart I048_V1_29_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_29_200_HDG, NULL };
-static const FieldPart *I048_V1_29_200_PARTS[] = {
+static const FieldPart * const I048_V1_29_200_PARTS[] = {
&I048_V1_29_200_GSP,
&I048_V1_29_200_HDG,
NULL
@@ -38453,7 +38338,7 @@ static int hf_048_V1_29_210_SIGV;
static const FieldPart I048_V1_29_210_SIGV = { 8, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_29_210_SIGV, NULL };
static int hf_048_V1_29_210_SIGH;
static const FieldPart I048_V1_29_210_SIGH = { 8, 0.087890625, FIELD_PART_UFLOAT, &hf_048_V1_29_210_SIGH, NULL };
-static const FieldPart *I048_V1_29_210_PARTS[] = {
+static const FieldPart * const I048_V1_29_210_PARTS[] = {
&I048_V1_29_210_SIGX,
&I048_V1_29_210_SIGY,
&I048_V1_29_210_SIGV,
@@ -38464,7 +38349,7 @@ static const AsterixField I048_V1_29_210 = { FIXED, 4, 0, 0, &hf_048_V1_29_210,
static int hf_048_V1_29_220;
static int hf_048_V1_29_220_VALUE;
static const FieldPart I048_V1_29_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_048_V1_29_220_VALUE, NULL };
-static const FieldPart *I048_V1_29_220_PARTS[] = {
+static const FieldPart * const I048_V1_29_220_PARTS[] = {
&I048_V1_29_220_VALUE,
NULL
};
@@ -38524,7 +38409,7 @@ static int hf_048_V1_29_230_B1A;
static const FieldPart I048_V1_29_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_048_V1_29_230_B1A, NULL };
static int hf_048_V1_29_230_B1B;
static const FieldPart I048_V1_29_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_29_230_B1B, NULL };
-static const FieldPart *I048_V1_29_230_PARTS[] = {
+static const FieldPart * const I048_V1_29_230_PARTS[] = {
&I048_V1_29_230_COM,
&I048_V1_29_230_STAT,
&I048_V1_29_230_SI,
@@ -38540,7 +38425,7 @@ static const AsterixField I048_V1_29_230 = { FIXED, 2, 0, 0, &hf_048_V1_29_230,
static int hf_048_V1_29_240;
static int hf_048_V1_29_240_VALUE;
static const FieldPart I048_V1_29_240_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_048_V1_29_240_VALUE, NULL };
-static const FieldPart *I048_V1_29_240_PARTS[] = {
+static const FieldPart * const I048_V1_29_240_PARTS[] = {
&I048_V1_29_240_VALUE,
NULL
};
@@ -38552,7 +38437,7 @@ static int hf_048_V1_29_250_BDS1;
static const FieldPart I048_V1_29_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_29_250_BDS1, NULL };
static int hf_048_V1_29_250_BDS2;
static const FieldPart I048_V1_29_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_29_250_BDS2, NULL };
-static const FieldPart *I048_V1_29_250_PARTS[] = {
+static const FieldPart * const I048_V1_29_250_PARTS[] = {
&I048_V1_29_250_MBDATA,
&I048_V1_29_250_BDS1,
&I048_V1_29_250_BDS2,
@@ -38562,7 +38447,7 @@ static const AsterixField I048_V1_29_250 = { REPETITIVE, 8, 1, 0, &hf_048_V1_29_
static int hf_048_V1_29_260;
static int hf_048_V1_29_260_VALUE;
static const FieldPart I048_V1_29_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_048_V1_29_260_VALUE, NULL };
-static const FieldPart *I048_V1_29_260_PARTS[] = {
+static const FieldPart * const I048_V1_29_260_PARTS[] = {
&I048_V1_29_260_VALUE,
NULL
};
@@ -38572,8 +38457,7 @@ static const AsterixField I048_V1_29_RE = { EXP, 0, 0, 1, &hf_048_V1_29_RE, NULL
static int hf_048_V1_29_SP;
static const AsterixField I048_V1_29_SP = { EXP, 0, 0, 1, &hf_048_V1_29_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I048_V1_29_uap[] = {
+static const AsterixField * const I048_V1_29_uap[] = {
&I048_V1_29_010,
&I048_V1_29_140,
&I048_V1_29_020,
@@ -38604,11 +38488,10 @@ static const AsterixField *I048_V1_29_uap[] = {
&I048_V1_29_RE,
NULL
};
-static const AsterixField **I048_V1_29[] = {
+static const AsterixField * const * const I048_V1_29[] = {
I048_V1_29_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 048, edition 1.30 */
static int hf_048_V1_30_010;
@@ -38616,7 +38499,7 @@ static int hf_048_V1_30_010_SAC;
static const FieldPart I048_V1_30_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_30_010_SAC, NULL };
static int hf_048_V1_30_010_SIC;
static const FieldPart I048_V1_30_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_30_010_SIC, NULL };
-static const FieldPart *I048_V1_30_010_PARTS[] = {
+static const FieldPart * const I048_V1_30_010_PARTS[] = {
&I048_V1_30_010_SAC,
&I048_V1_30_010_SIC,
NULL
@@ -38708,7 +38591,7 @@ static const value_string valstr_048_V1_30_020_FOEFRI[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_30_020_FOEFRI = { 2, 1.0, FIELD_PART_UINT, &hf_048_V1_30_020_FOEFRI, NULL };
-static const FieldPart *I048_V1_30_020_PARTS[] = {
+static const FieldPart * const I048_V1_30_020_PARTS[] = {
&I048_V1_30_020_TYP,
&I048_V1_30_020_SIM,
&I048_V1_30_020_RDP,
@@ -38766,7 +38649,7 @@ static const value_string valstr_048_V1_30_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_30_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_048_V1_30_030_Subitem, NULL };
-static const FieldPart *I048_V1_30_030_PARTS[] = {
+static const FieldPart * const I048_V1_30_030_PARTS[] = {
&I048_V1_30_030_Subitem,
&IXXX_FX,
NULL
@@ -38777,7 +38660,7 @@ static int hf_048_V1_30_040_RHO;
static const FieldPart I048_V1_30_040_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_048_V1_30_040_RHO, NULL };
static int hf_048_V1_30_040_THETA;
static const FieldPart I048_V1_30_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_30_040_THETA, NULL };
-static const FieldPart *I048_V1_30_040_PARTS[] = {
+static const FieldPart * const I048_V1_30_040_PARTS[] = {
&I048_V1_30_040_RHO,
&I048_V1_30_040_THETA,
NULL
@@ -38788,7 +38671,7 @@ static int hf_048_V1_30_042_X;
static const FieldPart I048_V1_30_042_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_30_042_X, NULL };
static int hf_048_V1_30_042_Y;
static const FieldPart I048_V1_30_042_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_30_042_Y, NULL };
-static const FieldPart *I048_V1_30_042_PARTS[] = {
+static const FieldPart * const I048_V1_30_042_PARTS[] = {
&I048_V1_30_042_X,
&I048_V1_30_042_Y,
NULL
@@ -38818,7 +38701,7 @@ static const value_string valstr_048_V1_30_050_L[] = {
static const FieldPart I048_V1_30_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_050_L, NULL };
static int hf_048_V1_30_050_MODE2;
static const FieldPart I048_V1_30_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_30_050_MODE2, NULL };
-static const FieldPart *I048_V1_30_050_PARTS[] = {
+static const FieldPart * const I048_V1_30_050_PARTS[] = {
&I048_V1_30_050_V,
&I048_V1_30_050_G,
&I048_V1_30_050_L,
@@ -38851,7 +38734,7 @@ static const value_string valstr_048_V1_30_055_L[] = {
static const FieldPart I048_V1_30_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_055_L, NULL };
static int hf_048_V1_30_055_MODE1;
static const FieldPart I048_V1_30_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_048_V1_30_055_MODE1, NULL };
-static const FieldPart *I048_V1_30_055_PARTS[] = {
+static const FieldPart * const I048_V1_30_055_PARTS[] = {
&I048_V1_30_055_V,
&I048_V1_30_055_G,
&I048_V1_30_055_L,
@@ -38944,7 +38827,7 @@ static const value_string valstr_048_V1_30_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_30_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_060_QD1, NULL };
-static const FieldPart *I048_V1_30_060_PARTS[] = {
+static const FieldPart * const I048_V1_30_060_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_30_060_QA4,
&I048_V1_30_060_QA2,
@@ -38997,7 +38880,7 @@ static const value_string valstr_048_V1_30_065_QB1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_30_065_QB1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_065_QB1, NULL };
-static const FieldPart *I048_V1_30_065_PARTS[] = {
+static const FieldPart * const I048_V1_30_065_PARTS[] = {
&IXXX_3bit_spare,
&I048_V1_30_065_QA4,
&I048_V1_30_065_QA2,
@@ -39031,7 +38914,7 @@ static const value_string valstr_048_V1_30_070_L[] = {
static const FieldPart I048_V1_30_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_070_L, NULL };
static int hf_048_V1_30_070_MODE3A;
static const FieldPart I048_V1_30_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_30_070_MODE3A, NULL };
-static const FieldPart *I048_V1_30_070_PARTS[] = {
+static const FieldPart * const I048_V1_30_070_PARTS[] = {
&I048_V1_30_070_V,
&I048_V1_30_070_G,
&I048_V1_30_070_L,
@@ -39125,7 +39008,7 @@ static const value_string valstr_048_V1_30_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_30_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_080_QD1, NULL };
-static const FieldPart *I048_V1_30_080_PARTS[] = {
+static const FieldPart * const I048_V1_30_080_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_30_080_QA4,
&I048_V1_30_080_QA2,
@@ -39159,7 +39042,7 @@ static const value_string valstr_048_V1_30_090_G[] = {
static const FieldPart I048_V1_30_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_090_G, NULL };
static int hf_048_V1_30_090_FL;
static const FieldPart I048_V1_30_090_FL = { 14, 0.25, FIELD_PART_UFLOAT, &hf_048_V1_30_090_FL, NULL };
-static const FieldPart *I048_V1_30_090_PARTS[] = {
+static const FieldPart * const I048_V1_30_090_PARTS[] = {
&I048_V1_30_090_V,
&I048_V1_30_090_G,
&I048_V1_30_090_FL,
@@ -39267,7 +39150,7 @@ static const value_string valstr_048_V1_30_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_30_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_100_QD4, NULL };
-static const FieldPart *I048_V1_30_100_PARTS[] = {
+static const FieldPart * const I048_V1_30_100_PARTS[] = {
&I048_V1_30_100_V,
&I048_V1_30_100_G,
&IXXX_2bit_spare,
@@ -39291,7 +39174,7 @@ static const AsterixField I048_V1_30_100 = { FIXED, 4, 0, 0, &hf_048_V1_30_100,
static int hf_048_V1_30_110;
static int hf_048_V1_30_110_3DH;
static const FieldPart I048_V1_30_110_3DH = { 14, 25.0, FIELD_PART_FLOAT, &hf_048_V1_30_110_3DH, NULL };
-static const FieldPart *I048_V1_30_110_PARTS[] = {
+static const FieldPart * const I048_V1_30_110_PARTS[] = {
&IXXX_2bit_spare,
&I048_V1_30_110_3DH,
NULL
@@ -39308,7 +39191,7 @@ static const value_string valstr_048_V1_30_120_CAL_D[] = {
static const FieldPart I048_V1_30_120_CAL_D = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_120_CAL_D, NULL };
static int hf_048_V1_30_120_CAL_CAL;
static const FieldPart I048_V1_30_120_CAL_CAL = { 10, 1.0, FIELD_PART_FLOAT, &hf_048_V1_30_120_CAL_CAL, NULL };
-static const FieldPart *I048_V1_30_120_CAL_PARTS[] = {
+static const FieldPart * const I048_V1_30_120_CAL_PARTS[] = {
&I048_V1_30_120_CAL_D,
&IXXX_5bit_spare,
&I048_V1_30_120_CAL_CAL,
@@ -39322,7 +39205,7 @@ static int hf_048_V1_30_120_RDS_AMB;
static const FieldPart I048_V1_30_120_RDS_AMB = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_30_120_RDS_AMB, NULL };
static int hf_048_V1_30_120_RDS_FRQ;
static const FieldPart I048_V1_30_120_RDS_FRQ = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_30_120_RDS_FRQ, NULL };
-static const FieldPart *I048_V1_30_120_RDS_PARTS[] = {
+static const FieldPart * const I048_V1_30_120_RDS_PARTS[] = {
&I048_V1_30_120_RDS_DOP,
&I048_V1_30_120_RDS_AMB,
&I048_V1_30_120_RDS_FRQ,
@@ -39334,7 +39217,7 @@ static int hf_048_V1_30_130;
static int hf_048_V1_30_130_SRL;
static int hf_048_V1_30_130_SRL_VALUE;
static const FieldPart I048_V1_30_130_SRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_30_130_SRL_VALUE, NULL };
-static const FieldPart *I048_V1_30_130_SRL_PARTS[] = {
+static const FieldPart * const I048_V1_30_130_SRL_PARTS[] = {
&I048_V1_30_130_SRL_VALUE,
NULL
};
@@ -39342,7 +39225,7 @@ static const AsterixField I048_V1_30_130_SRL = { FIXED, 1, 0, 0, &hf_048_V1_30_1
static int hf_048_V1_30_130_SRR;
static int hf_048_V1_30_130_SRR_VALUE;
static const FieldPart I048_V1_30_130_SRR_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_048_V1_30_130_SRR_VALUE, NULL };
-static const FieldPart *I048_V1_30_130_SRR_PARTS[] = {
+static const FieldPart * const I048_V1_30_130_SRR_PARTS[] = {
&I048_V1_30_130_SRR_VALUE,
NULL
};
@@ -39350,7 +39233,7 @@ static const AsterixField I048_V1_30_130_SRR = { FIXED, 1, 0, 0, &hf_048_V1_30_1
static int hf_048_V1_30_130_SAM;
static int hf_048_V1_30_130_SAM_VALUE;
static const FieldPart I048_V1_30_130_SAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_30_130_SAM_VALUE, NULL };
-static const FieldPart *I048_V1_30_130_SAM_PARTS[] = {
+static const FieldPart * const I048_V1_30_130_SAM_PARTS[] = {
&I048_V1_30_130_SAM_VALUE,
NULL
};
@@ -39358,7 +39241,7 @@ static const AsterixField I048_V1_30_130_SAM = { FIXED, 1, 0, 0, &hf_048_V1_30_1
static int hf_048_V1_30_130_PRL;
static int hf_048_V1_30_130_PRL_VALUE;
static const FieldPart I048_V1_30_130_PRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_30_130_PRL_VALUE, NULL };
-static const FieldPart *I048_V1_30_130_PRL_PARTS[] = {
+static const FieldPart * const I048_V1_30_130_PRL_PARTS[] = {
&I048_V1_30_130_PRL_VALUE,
NULL
};
@@ -39366,7 +39249,7 @@ static const AsterixField I048_V1_30_130_PRL = { FIXED, 1, 0, 0, &hf_048_V1_30_1
static int hf_048_V1_30_130_PAM;
static int hf_048_V1_30_130_PAM_VALUE;
static const FieldPart I048_V1_30_130_PAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_30_130_PAM_VALUE, NULL };
-static const FieldPart *I048_V1_30_130_PAM_PARTS[] = {
+static const FieldPart * const I048_V1_30_130_PAM_PARTS[] = {
&I048_V1_30_130_PAM_VALUE,
NULL
};
@@ -39374,7 +39257,7 @@ static const AsterixField I048_V1_30_130_PAM = { FIXED, 1, 0, 0, &hf_048_V1_30_1
static int hf_048_V1_30_130_RPD;
static int hf_048_V1_30_130_RPD_VALUE;
static const FieldPart I048_V1_30_130_RPD_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_048_V1_30_130_RPD_VALUE, NULL };
-static const FieldPart *I048_V1_30_130_RPD_PARTS[] = {
+static const FieldPart * const I048_V1_30_130_RPD_PARTS[] = {
&I048_V1_30_130_RPD_VALUE,
NULL
};
@@ -39382,7 +39265,7 @@ static const AsterixField I048_V1_30_130_RPD = { FIXED, 1, 0, 0, &hf_048_V1_30_1
static int hf_048_V1_30_130_APD;
static int hf_048_V1_30_130_APD_VALUE;
static const FieldPart I048_V1_30_130_APD_VALUE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_048_V1_30_130_APD_VALUE, NULL };
-static const FieldPart *I048_V1_30_130_APD_PARTS[] = {
+static const FieldPart * const I048_V1_30_130_APD_PARTS[] = {
&I048_V1_30_130_APD_VALUE,
NULL
};
@@ -39391,7 +39274,7 @@ static const AsterixField I048_V1_30_130 = { COMPOUND, 0, 0, 0, &hf_048_V1_30_13
static int hf_048_V1_30_140;
static int hf_048_V1_30_140_VALUE;
static const FieldPart I048_V1_30_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_048_V1_30_140_VALUE, NULL };
-static const FieldPart *I048_V1_30_140_PARTS[] = {
+static const FieldPart * const I048_V1_30_140_PARTS[] = {
&I048_V1_30_140_VALUE,
NULL
};
@@ -39399,7 +39282,7 @@ static const AsterixField I048_V1_30_140 = { FIXED, 3, 0, 0, &hf_048_V1_30_140,
static int hf_048_V1_30_161;
static int hf_048_V1_30_161_TRN;
static const FieldPart I048_V1_30_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_048_V1_30_161_TRN, NULL };
-static const FieldPart *I048_V1_30_161_PARTS[] = {
+static const FieldPart * const I048_V1_30_161_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_30_161_TRN,
NULL
@@ -39473,7 +39356,7 @@ static const value_string valstr_048_V1_30_170_TCC[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_30_170_TCC = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_30_170_TCC, NULL };
-static const FieldPart *I048_V1_30_170_PARTS[] = {
+static const FieldPart * const I048_V1_30_170_PARTS[] = {
&I048_V1_30_170_CNF,
&I048_V1_30_170_RAD,
&I048_V1_30_170_DOU,
@@ -39494,7 +39377,7 @@ static int hf_048_V1_30_200_GSP;
static const FieldPart I048_V1_30_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_30_200_GSP, NULL };
static int hf_048_V1_30_200_HDG;
static const FieldPart I048_V1_30_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_30_200_HDG, NULL };
-static const FieldPart *I048_V1_30_200_PARTS[] = {
+static const FieldPart * const I048_V1_30_200_PARTS[] = {
&I048_V1_30_200_GSP,
&I048_V1_30_200_HDG,
NULL
@@ -39509,7 +39392,7 @@ static int hf_048_V1_30_210_SIGV;
static const FieldPart I048_V1_30_210_SIGV = { 8, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_30_210_SIGV, NULL };
static int hf_048_V1_30_210_SIGH;
static const FieldPart I048_V1_30_210_SIGH = { 8, 0.087890625, FIELD_PART_UFLOAT, &hf_048_V1_30_210_SIGH, NULL };
-static const FieldPart *I048_V1_30_210_PARTS[] = {
+static const FieldPart * const I048_V1_30_210_PARTS[] = {
&I048_V1_30_210_SIGX,
&I048_V1_30_210_SIGY,
&I048_V1_30_210_SIGV,
@@ -39520,7 +39403,7 @@ static const AsterixField I048_V1_30_210 = { FIXED, 4, 0, 0, &hf_048_V1_30_210,
static int hf_048_V1_30_220;
static int hf_048_V1_30_220_VALUE;
static const FieldPart I048_V1_30_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_048_V1_30_220_VALUE, NULL };
-static const FieldPart *I048_V1_30_220_PARTS[] = {
+static const FieldPart * const I048_V1_30_220_PARTS[] = {
&I048_V1_30_220_VALUE,
NULL
};
@@ -39580,7 +39463,7 @@ static int hf_048_V1_30_230_B1A;
static const FieldPart I048_V1_30_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_048_V1_30_230_B1A, NULL };
static int hf_048_V1_30_230_B1B;
static const FieldPart I048_V1_30_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_30_230_B1B, NULL };
-static const FieldPart *I048_V1_30_230_PARTS[] = {
+static const FieldPart * const I048_V1_30_230_PARTS[] = {
&I048_V1_30_230_COM,
&I048_V1_30_230_STAT,
&I048_V1_30_230_SI,
@@ -39596,7 +39479,7 @@ static const AsterixField I048_V1_30_230 = { FIXED, 2, 0, 0, &hf_048_V1_30_230,
static int hf_048_V1_30_240;
static int hf_048_V1_30_240_VALUE;
static const FieldPart I048_V1_30_240_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_048_V1_30_240_VALUE, NULL };
-static const FieldPart *I048_V1_30_240_PARTS[] = {
+static const FieldPart * const I048_V1_30_240_PARTS[] = {
&I048_V1_30_240_VALUE,
NULL
};
@@ -39608,7 +39491,7 @@ static int hf_048_V1_30_250_BDS1;
static const FieldPart I048_V1_30_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_30_250_BDS1, NULL };
static int hf_048_V1_30_250_BDS2;
static const FieldPart I048_V1_30_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_30_250_BDS2, NULL };
-static const FieldPart *I048_V1_30_250_PARTS[] = {
+static const FieldPart * const I048_V1_30_250_PARTS[] = {
&I048_V1_30_250_MBDATA,
&I048_V1_30_250_BDS1,
&I048_V1_30_250_BDS2,
@@ -39618,7 +39501,7 @@ static const AsterixField I048_V1_30_250 = { REPETITIVE, 8, 1, 0, &hf_048_V1_30_
static int hf_048_V1_30_260;
static int hf_048_V1_30_260_VALUE;
static const FieldPart I048_V1_30_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_048_V1_30_260_VALUE, NULL };
-static const FieldPart *I048_V1_30_260_PARTS[] = {
+static const FieldPart * const I048_V1_30_260_PARTS[] = {
&I048_V1_30_260_VALUE,
NULL
};
@@ -39628,8 +39511,7 @@ static const AsterixField I048_V1_30_RE = { EXP, 0, 0, 1, &hf_048_V1_30_RE, NULL
static int hf_048_V1_30_SP;
static const AsterixField I048_V1_30_SP = { EXP, 0, 0, 1, &hf_048_V1_30_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I048_V1_30_uap[] = {
+static const AsterixField * const I048_V1_30_uap[] = {
&I048_V1_30_010,
&I048_V1_30_140,
&I048_V1_30_020,
@@ -39660,11 +39542,10 @@ static const AsterixField *I048_V1_30_uap[] = {
&I048_V1_30_RE,
NULL
};
-static const AsterixField **I048_V1_30[] = {
+static const AsterixField * const * const I048_V1_30[] = {
I048_V1_30_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 048, edition 1.31 */
static int hf_048_V1_31_010;
@@ -39672,7 +39553,7 @@ static int hf_048_V1_31_010_SAC;
static const FieldPart I048_V1_31_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_31_010_SAC, NULL };
static int hf_048_V1_31_010_SIC;
static const FieldPart I048_V1_31_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_048_V1_31_010_SIC, NULL };
-static const FieldPart *I048_V1_31_010_PARTS[] = {
+static const FieldPart * const I048_V1_31_010_PARTS[] = {
&I048_V1_31_010_SAC,
&I048_V1_31_010_SIC,
NULL
@@ -39770,7 +39651,7 @@ static int hf_048_V1_31_020_SCN;
static const FieldPart I048_V1_31_020_SCN = { 2, 1.0, FIELD_PART_HEX, &hf_048_V1_31_020_SCN, NULL };
static int hf_048_V1_31_020_PAI;
static const FieldPart I048_V1_31_020_PAI = { 2, 1.0, FIELD_PART_HEX, &hf_048_V1_31_020_PAI, NULL };
-static const FieldPart *I048_V1_31_020_PARTS[] = {
+static const FieldPart * const I048_V1_31_020_PARTS[] = {
&I048_V1_31_020_TYP,
&I048_V1_31_020_SIM,
&I048_V1_31_020_RDP,
@@ -39835,7 +39716,7 @@ static const value_string valstr_048_V1_31_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_31_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_048_V1_31_030_Subitem, NULL };
-static const FieldPart *I048_V1_31_030_PARTS[] = {
+static const FieldPart * const I048_V1_31_030_PARTS[] = {
&I048_V1_31_030_Subitem,
&IXXX_FX,
NULL
@@ -39846,7 +39727,7 @@ static int hf_048_V1_31_040_RHO;
static const FieldPart I048_V1_31_040_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_048_V1_31_040_RHO, NULL };
static int hf_048_V1_31_040_THETA;
static const FieldPart I048_V1_31_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_31_040_THETA, NULL };
-static const FieldPart *I048_V1_31_040_PARTS[] = {
+static const FieldPart * const I048_V1_31_040_PARTS[] = {
&I048_V1_31_040_RHO,
&I048_V1_31_040_THETA,
NULL
@@ -39857,7 +39738,7 @@ static int hf_048_V1_31_042_X;
static const FieldPart I048_V1_31_042_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_31_042_X, NULL };
static int hf_048_V1_31_042_Y;
static const FieldPart I048_V1_31_042_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_V1_31_042_Y, NULL };
-static const FieldPart *I048_V1_31_042_PARTS[] = {
+static const FieldPart * const I048_V1_31_042_PARTS[] = {
&I048_V1_31_042_X,
&I048_V1_31_042_Y,
NULL
@@ -39887,7 +39768,7 @@ static const value_string valstr_048_V1_31_050_L[] = {
static const FieldPart I048_V1_31_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_050_L, NULL };
static int hf_048_V1_31_050_MODE2;
static const FieldPart I048_V1_31_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_31_050_MODE2, NULL };
-static const FieldPart *I048_V1_31_050_PARTS[] = {
+static const FieldPart * const I048_V1_31_050_PARTS[] = {
&I048_V1_31_050_V,
&I048_V1_31_050_G,
&I048_V1_31_050_L,
@@ -39920,7 +39801,7 @@ static const value_string valstr_048_V1_31_055_L[] = {
static const FieldPart I048_V1_31_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_055_L, NULL };
static int hf_048_V1_31_055_MODE1;
static const FieldPart I048_V1_31_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_048_V1_31_055_MODE1, NULL };
-static const FieldPart *I048_V1_31_055_PARTS[] = {
+static const FieldPart * const I048_V1_31_055_PARTS[] = {
&I048_V1_31_055_V,
&I048_V1_31_055_G,
&I048_V1_31_055_L,
@@ -40013,7 +39894,7 @@ static const value_string valstr_048_V1_31_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_31_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_060_QD1, NULL };
-static const FieldPart *I048_V1_31_060_PARTS[] = {
+static const FieldPart * const I048_V1_31_060_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_31_060_QA4,
&I048_V1_31_060_QA2,
@@ -40066,7 +39947,7 @@ static const value_string valstr_048_V1_31_065_QB1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_31_065_QB1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_065_QB1, NULL };
-static const FieldPart *I048_V1_31_065_PARTS[] = {
+static const FieldPart * const I048_V1_31_065_PARTS[] = {
&IXXX_3bit_spare,
&I048_V1_31_065_QA4,
&I048_V1_31_065_QA2,
@@ -40100,7 +39981,7 @@ static const value_string valstr_048_V1_31_070_L[] = {
static const FieldPart I048_V1_31_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_070_L, NULL };
static int hf_048_V1_31_070_MODE3A;
static const FieldPart I048_V1_31_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_V1_31_070_MODE3A, NULL };
-static const FieldPart *I048_V1_31_070_PARTS[] = {
+static const FieldPart * const I048_V1_31_070_PARTS[] = {
&I048_V1_31_070_V,
&I048_V1_31_070_G,
&I048_V1_31_070_L,
@@ -40194,7 +40075,7 @@ static const value_string valstr_048_V1_31_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_31_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_080_QD1, NULL };
-static const FieldPart *I048_V1_31_080_PARTS[] = {
+static const FieldPart * const I048_V1_31_080_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_31_080_QA4,
&I048_V1_31_080_QA2,
@@ -40228,7 +40109,7 @@ static const value_string valstr_048_V1_31_090_G[] = {
static const FieldPart I048_V1_31_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_090_G, NULL };
static int hf_048_V1_31_090_FL;
static const FieldPart I048_V1_31_090_FL = { 14, 0.25, FIELD_PART_UFLOAT, &hf_048_V1_31_090_FL, NULL };
-static const FieldPart *I048_V1_31_090_PARTS[] = {
+static const FieldPart * const I048_V1_31_090_PARTS[] = {
&I048_V1_31_090_V,
&I048_V1_31_090_G,
&I048_V1_31_090_FL,
@@ -40336,7 +40217,7 @@ static const value_string valstr_048_V1_31_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_31_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_100_QD4, NULL };
-static const FieldPart *I048_V1_31_100_PARTS[] = {
+static const FieldPart * const I048_V1_31_100_PARTS[] = {
&I048_V1_31_100_V,
&I048_V1_31_100_G,
&IXXX_2bit_spare,
@@ -40360,7 +40241,7 @@ static const AsterixField I048_V1_31_100 = { FIXED, 4, 0, 0, &hf_048_V1_31_100,
static int hf_048_V1_31_110;
static int hf_048_V1_31_110_3DH;
static const FieldPart I048_V1_31_110_3DH = { 14, 25.0, FIELD_PART_FLOAT, &hf_048_V1_31_110_3DH, NULL };
-static const FieldPart *I048_V1_31_110_PARTS[] = {
+static const FieldPart * const I048_V1_31_110_PARTS[] = {
&IXXX_2bit_spare,
&I048_V1_31_110_3DH,
NULL
@@ -40377,7 +40258,7 @@ static const value_string valstr_048_V1_31_120_CAL_D[] = {
static const FieldPart I048_V1_31_120_CAL_D = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_120_CAL_D, NULL };
static int hf_048_V1_31_120_CAL_CAL;
static const FieldPart I048_V1_31_120_CAL_CAL = { 10, 1.0, FIELD_PART_FLOAT, &hf_048_V1_31_120_CAL_CAL, NULL };
-static const FieldPart *I048_V1_31_120_CAL_PARTS[] = {
+static const FieldPart * const I048_V1_31_120_CAL_PARTS[] = {
&I048_V1_31_120_CAL_D,
&IXXX_5bit_spare,
&I048_V1_31_120_CAL_CAL,
@@ -40391,7 +40272,7 @@ static int hf_048_V1_31_120_RDS_AMB;
static const FieldPart I048_V1_31_120_RDS_AMB = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_31_120_RDS_AMB, NULL };
static int hf_048_V1_31_120_RDS_FRQ;
static const FieldPart I048_V1_31_120_RDS_FRQ = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_V1_31_120_RDS_FRQ, NULL };
-static const FieldPart *I048_V1_31_120_RDS_PARTS[] = {
+static const FieldPart * const I048_V1_31_120_RDS_PARTS[] = {
&I048_V1_31_120_RDS_DOP,
&I048_V1_31_120_RDS_AMB,
&I048_V1_31_120_RDS_FRQ,
@@ -40403,7 +40284,7 @@ static int hf_048_V1_31_130;
static int hf_048_V1_31_130_SRL;
static int hf_048_V1_31_130_SRL_VALUE;
static const FieldPart I048_V1_31_130_SRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_31_130_SRL_VALUE, NULL };
-static const FieldPart *I048_V1_31_130_SRL_PARTS[] = {
+static const FieldPart * const I048_V1_31_130_SRL_PARTS[] = {
&I048_V1_31_130_SRL_VALUE,
NULL
};
@@ -40411,7 +40292,7 @@ static const AsterixField I048_V1_31_130_SRL = { FIXED, 1, 0, 0, &hf_048_V1_31_1
static int hf_048_V1_31_130_SRR;
static int hf_048_V1_31_130_SRR_VALUE;
static const FieldPart I048_V1_31_130_SRR_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_048_V1_31_130_SRR_VALUE, NULL };
-static const FieldPart *I048_V1_31_130_SRR_PARTS[] = {
+static const FieldPart * const I048_V1_31_130_SRR_PARTS[] = {
&I048_V1_31_130_SRR_VALUE,
NULL
};
@@ -40419,7 +40300,7 @@ static const AsterixField I048_V1_31_130_SRR = { FIXED, 1, 0, 0, &hf_048_V1_31_1
static int hf_048_V1_31_130_SAM;
static int hf_048_V1_31_130_SAM_VALUE;
static const FieldPart I048_V1_31_130_SAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_31_130_SAM_VALUE, NULL };
-static const FieldPart *I048_V1_31_130_SAM_PARTS[] = {
+static const FieldPart * const I048_V1_31_130_SAM_PARTS[] = {
&I048_V1_31_130_SAM_VALUE,
NULL
};
@@ -40427,7 +40308,7 @@ static const AsterixField I048_V1_31_130_SAM = { FIXED, 1, 0, 0, &hf_048_V1_31_1
static int hf_048_V1_31_130_PRL;
static int hf_048_V1_31_130_PRL_VALUE;
static const FieldPart I048_V1_31_130_PRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_V1_31_130_PRL_VALUE, NULL };
-static const FieldPart *I048_V1_31_130_PRL_PARTS[] = {
+static const FieldPart * const I048_V1_31_130_PRL_PARTS[] = {
&I048_V1_31_130_PRL_VALUE,
NULL
};
@@ -40435,7 +40316,7 @@ static const AsterixField I048_V1_31_130_PRL = { FIXED, 1, 0, 0, &hf_048_V1_31_1
static int hf_048_V1_31_130_PAM;
static int hf_048_V1_31_130_PAM_VALUE;
static const FieldPart I048_V1_31_130_PAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_V1_31_130_PAM_VALUE, NULL };
-static const FieldPart *I048_V1_31_130_PAM_PARTS[] = {
+static const FieldPart * const I048_V1_31_130_PAM_PARTS[] = {
&I048_V1_31_130_PAM_VALUE,
NULL
};
@@ -40443,7 +40324,7 @@ static const AsterixField I048_V1_31_130_PAM = { FIXED, 1, 0, 0, &hf_048_V1_31_1
static int hf_048_V1_31_130_RPD;
static int hf_048_V1_31_130_RPD_VALUE;
static const FieldPart I048_V1_31_130_RPD_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_048_V1_31_130_RPD_VALUE, NULL };
-static const FieldPart *I048_V1_31_130_RPD_PARTS[] = {
+static const FieldPart * const I048_V1_31_130_RPD_PARTS[] = {
&I048_V1_31_130_RPD_VALUE,
NULL
};
@@ -40451,7 +40332,7 @@ static const AsterixField I048_V1_31_130_RPD = { FIXED, 1, 0, 0, &hf_048_V1_31_1
static int hf_048_V1_31_130_APD;
static int hf_048_V1_31_130_APD_VALUE;
static const FieldPart I048_V1_31_130_APD_VALUE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_048_V1_31_130_APD_VALUE, NULL };
-static const FieldPart *I048_V1_31_130_APD_PARTS[] = {
+static const FieldPart * const I048_V1_31_130_APD_PARTS[] = {
&I048_V1_31_130_APD_VALUE,
NULL
};
@@ -40460,7 +40341,7 @@ static const AsterixField I048_V1_31_130 = { COMPOUND, 0, 0, 0, &hf_048_V1_31_13
static int hf_048_V1_31_140;
static int hf_048_V1_31_140_VALUE;
static const FieldPart I048_V1_31_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_048_V1_31_140_VALUE, NULL };
-static const FieldPart *I048_V1_31_140_PARTS[] = {
+static const FieldPart * const I048_V1_31_140_PARTS[] = {
&I048_V1_31_140_VALUE,
NULL
};
@@ -40468,7 +40349,7 @@ static const AsterixField I048_V1_31_140 = { FIXED, 3, 0, 0, &hf_048_V1_31_140,
static int hf_048_V1_31_161;
static int hf_048_V1_31_161_TRN;
static const FieldPart I048_V1_31_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_048_V1_31_161_TRN, NULL };
-static const FieldPart *I048_V1_31_161_PARTS[] = {
+static const FieldPart * const I048_V1_31_161_PARTS[] = {
&IXXX_4bit_spare,
&I048_V1_31_161_TRN,
NULL
@@ -40542,7 +40423,7 @@ static const value_string valstr_048_V1_31_170_TCC[] = {
{ 0, NULL }
};
static const FieldPart I048_V1_31_170_TCC = { 1, 1.0, FIELD_PART_UINT, &hf_048_V1_31_170_TCC, NULL };
-static const FieldPart *I048_V1_31_170_PARTS[] = {
+static const FieldPart * const I048_V1_31_170_PARTS[] = {
&I048_V1_31_170_CNF,
&I048_V1_31_170_RAD,
&I048_V1_31_170_DOU,
@@ -40563,7 +40444,7 @@ static int hf_048_V1_31_200_GSP;
static const FieldPart I048_V1_31_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_31_200_GSP, NULL };
static int hf_048_V1_31_200_HDG;
static const FieldPart I048_V1_31_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_V1_31_200_HDG, NULL };
-static const FieldPart *I048_V1_31_200_PARTS[] = {
+static const FieldPart * const I048_V1_31_200_PARTS[] = {
&I048_V1_31_200_GSP,
&I048_V1_31_200_HDG,
NULL
@@ -40578,7 +40459,7 @@ static int hf_048_V1_31_210_SIGV;
static const FieldPart I048_V1_31_210_SIGV = { 8, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_V1_31_210_SIGV, NULL };
static int hf_048_V1_31_210_SIGH;
static const FieldPart I048_V1_31_210_SIGH = { 8, 0.087890625, FIELD_PART_UFLOAT, &hf_048_V1_31_210_SIGH, NULL };
-static const FieldPart *I048_V1_31_210_PARTS[] = {
+static const FieldPart * const I048_V1_31_210_PARTS[] = {
&I048_V1_31_210_SIGX,
&I048_V1_31_210_SIGY,
&I048_V1_31_210_SIGV,
@@ -40589,7 +40470,7 @@ static const AsterixField I048_V1_31_210 = { FIXED, 4, 0, 0, &hf_048_V1_31_210,
static int hf_048_V1_31_220;
static int hf_048_V1_31_220_VALUE;
static const FieldPart I048_V1_31_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_048_V1_31_220_VALUE, NULL };
-static const FieldPart *I048_V1_31_220_PARTS[] = {
+static const FieldPart * const I048_V1_31_220_PARTS[] = {
&I048_V1_31_220_VALUE,
NULL
};
@@ -40649,7 +40530,7 @@ static int hf_048_V1_31_230_B1A;
static const FieldPart I048_V1_31_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_048_V1_31_230_B1A, NULL };
static int hf_048_V1_31_230_B1B;
static const FieldPart I048_V1_31_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_31_230_B1B, NULL };
-static const FieldPart *I048_V1_31_230_PARTS[] = {
+static const FieldPart * const I048_V1_31_230_PARTS[] = {
&I048_V1_31_230_COM,
&I048_V1_31_230_STAT,
&I048_V1_31_230_SI,
@@ -40665,7 +40546,7 @@ static const AsterixField I048_V1_31_230 = { FIXED, 2, 0, 0, &hf_048_V1_31_230,
static int hf_048_V1_31_240;
static int hf_048_V1_31_240_VALUE;
static const FieldPart I048_V1_31_240_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_048_V1_31_240_VALUE, NULL };
-static const FieldPart *I048_V1_31_240_PARTS[] = {
+static const FieldPart * const I048_V1_31_240_PARTS[] = {
&I048_V1_31_240_VALUE,
NULL
};
@@ -40677,7 +40558,7 @@ static int hf_048_V1_31_250_BDS1;
static const FieldPart I048_V1_31_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_31_250_BDS1, NULL };
static int hf_048_V1_31_250_BDS2;
static const FieldPart I048_V1_31_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_048_V1_31_250_BDS2, NULL };
-static const FieldPart *I048_V1_31_250_PARTS[] = {
+static const FieldPart * const I048_V1_31_250_PARTS[] = {
&I048_V1_31_250_MBDATA,
&I048_V1_31_250_BDS1,
&I048_V1_31_250_BDS2,
@@ -40687,7 +40568,7 @@ static const AsterixField I048_V1_31_250 = { REPETITIVE, 8, 1, 0, &hf_048_V1_31_
static int hf_048_V1_31_260;
static int hf_048_V1_31_260_VALUE;
static const FieldPart I048_V1_31_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_048_V1_31_260_VALUE, NULL };
-static const FieldPart *I048_V1_31_260_PARTS[] = {
+static const FieldPart * const I048_V1_31_260_PARTS[] = {
&I048_V1_31_260_VALUE,
NULL
};
@@ -40703,7 +40584,7 @@ static int hf_048_010_SAC;
static const FieldPart I048_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_048_010_SAC, NULL };
static int hf_048_010_SIC;
static const FieldPart I048_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_048_010_SIC, NULL };
-static const FieldPart *I048_010_PARTS[] = {
+static const FieldPart * const I048_010_PARTS[] = {
&I048_010_SAC,
&I048_010_SIC,
NULL
@@ -40801,7 +40682,7 @@ static int hf_048_020_SCN;
static const FieldPart I048_020_SCN = { 2, 1.0, FIELD_PART_HEX, &hf_048_020_SCN, NULL };
static int hf_048_020_PAI;
static const FieldPart I048_020_PAI = { 2, 1.0, FIELD_PART_HEX, &hf_048_020_PAI, NULL };
-static const FieldPart *I048_020_PARTS[] = {
+static const FieldPart * const I048_020_PARTS[] = {
&I048_020_TYP,
&I048_020_SIM,
&I048_020_RDP,
@@ -40866,7 +40747,7 @@ static const value_string valstr_048_030_Subitem[] = {
{ 0, NULL }
};
static const FieldPart I048_030_Subitem = { 7, 1.0, FIELD_PART_UINT, &hf_048_030_Subitem, NULL };
-static const FieldPart *I048_030_PARTS[] = {
+static const FieldPart * const I048_030_PARTS[] = {
&I048_030_Subitem,
&IXXX_FX,
NULL
@@ -40877,7 +40758,7 @@ static int hf_048_040_RHO;
static const FieldPart I048_040_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_048_040_RHO, NULL };
static int hf_048_040_THETA;
static const FieldPart I048_040_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_040_THETA, NULL };
-static const FieldPart *I048_040_PARTS[] = {
+static const FieldPart * const I048_040_PARTS[] = {
&I048_040_RHO,
&I048_040_THETA,
NULL
@@ -40888,7 +40769,7 @@ static int hf_048_042_X;
static const FieldPart I048_042_X = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_042_X, NULL };
static int hf_048_042_Y;
static const FieldPart I048_042_Y = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_048_042_Y, NULL };
-static const FieldPart *I048_042_PARTS[] = {
+static const FieldPart * const I048_042_PARTS[] = {
&I048_042_X,
&I048_042_Y,
NULL
@@ -40918,7 +40799,7 @@ static const value_string valstr_048_050_L[] = {
static const FieldPart I048_050_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_050_L, NULL };
static int hf_048_050_MODE2;
static const FieldPart I048_050_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_050_MODE2, NULL };
-static const FieldPart *I048_050_PARTS[] = {
+static const FieldPart * const I048_050_PARTS[] = {
&I048_050_V,
&I048_050_G,
&I048_050_L,
@@ -40951,7 +40832,7 @@ static const value_string valstr_048_055_L[] = {
static const FieldPart I048_055_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_055_L, NULL };
static int hf_048_055_MODE1;
static const FieldPart I048_055_MODE1 = { 5, 1.0, FIELD_PART_HEX, &hf_048_055_MODE1, NULL };
-static const FieldPart *I048_055_PARTS[] = {
+static const FieldPart * const I048_055_PARTS[] = {
&I048_055_V,
&I048_055_G,
&I048_055_L,
@@ -41044,7 +40925,7 @@ static const value_string valstr_048_060_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_060_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_060_QD1, NULL };
-static const FieldPart *I048_060_PARTS[] = {
+static const FieldPart * const I048_060_PARTS[] = {
&IXXX_4bit_spare,
&I048_060_QA4,
&I048_060_QA2,
@@ -41097,7 +40978,7 @@ static const value_string valstr_048_065_QB1[] = {
{ 0, NULL }
};
static const FieldPart I048_065_QB1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_065_QB1, NULL };
-static const FieldPart *I048_065_PARTS[] = {
+static const FieldPart * const I048_065_PARTS[] = {
&IXXX_3bit_spare,
&I048_065_QA4,
&I048_065_QA2,
@@ -41131,7 +41012,7 @@ static const value_string valstr_048_070_L[] = {
static const FieldPart I048_070_L = { 1, 1.0, FIELD_PART_UINT, &hf_048_070_L, NULL };
static int hf_048_070_MODE3A;
static const FieldPart I048_070_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_048_070_MODE3A, NULL };
-static const FieldPart *I048_070_PARTS[] = {
+static const FieldPart * const I048_070_PARTS[] = {
&I048_070_V,
&I048_070_G,
&I048_070_L,
@@ -41225,7 +41106,7 @@ static const value_string valstr_048_080_QD1[] = {
{ 0, NULL }
};
static const FieldPart I048_080_QD1 = { 1, 1.0, FIELD_PART_UINT, &hf_048_080_QD1, NULL };
-static const FieldPart *I048_080_PARTS[] = {
+static const FieldPart * const I048_080_PARTS[] = {
&IXXX_4bit_spare,
&I048_080_QA4,
&I048_080_QA2,
@@ -41259,7 +41140,7 @@ static const value_string valstr_048_090_G[] = {
static const FieldPart I048_090_G = { 1, 1.0, FIELD_PART_UINT, &hf_048_090_G, NULL };
static int hf_048_090_FL;
static const FieldPart I048_090_FL = { 14, 0.25, FIELD_PART_UFLOAT, &hf_048_090_FL, NULL };
-static const FieldPart *I048_090_PARTS[] = {
+static const FieldPart * const I048_090_PARTS[] = {
&I048_090_V,
&I048_090_G,
&I048_090_FL,
@@ -41367,7 +41248,7 @@ static const value_string valstr_048_100_QD4[] = {
{ 0, NULL }
};
static const FieldPart I048_100_QD4 = { 1, 1.0, FIELD_PART_UINT, &hf_048_100_QD4, NULL };
-static const FieldPart *I048_100_PARTS[] = {
+static const FieldPart * const I048_100_PARTS[] = {
&I048_100_V,
&I048_100_G,
&IXXX_2bit_spare,
@@ -41391,7 +41272,7 @@ static const AsterixField I048_100 = { FIXED, 4, 0, 0, &hf_048_100, I048_100_PAR
static int hf_048_110;
static int hf_048_110_3DH;
static const FieldPart I048_110_3DH = { 14, 25.0, FIELD_PART_FLOAT, &hf_048_110_3DH, NULL };
-static const FieldPart *I048_110_PARTS[] = {
+static const FieldPart * const I048_110_PARTS[] = {
&IXXX_2bit_spare,
&I048_110_3DH,
NULL
@@ -41408,7 +41289,7 @@ static const value_string valstr_048_120_CAL_D[] = {
static const FieldPart I048_120_CAL_D = { 1, 1.0, FIELD_PART_UINT, &hf_048_120_CAL_D, NULL };
static int hf_048_120_CAL_CAL;
static const FieldPart I048_120_CAL_CAL = { 10, 1.0, FIELD_PART_FLOAT, &hf_048_120_CAL_CAL, NULL };
-static const FieldPart *I048_120_CAL_PARTS[] = {
+static const FieldPart * const I048_120_CAL_PARTS[] = {
&I048_120_CAL_D,
&IXXX_5bit_spare,
&I048_120_CAL_CAL,
@@ -41422,7 +41303,7 @@ static int hf_048_120_RDS_AMB;
static const FieldPart I048_120_RDS_AMB = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_120_RDS_AMB, NULL };
static int hf_048_120_RDS_FRQ;
static const FieldPart I048_120_RDS_FRQ = { 16, 1.0, FIELD_PART_UFLOAT, &hf_048_120_RDS_FRQ, NULL };
-static const FieldPart *I048_120_RDS_PARTS[] = {
+static const FieldPart * const I048_120_RDS_PARTS[] = {
&I048_120_RDS_DOP,
&I048_120_RDS_AMB,
&I048_120_RDS_FRQ,
@@ -41434,7 +41315,7 @@ static int hf_048_130;
static int hf_048_130_SRL;
static int hf_048_130_SRL_VALUE;
static const FieldPart I048_130_SRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_130_SRL_VALUE, NULL };
-static const FieldPart *I048_130_SRL_PARTS[] = {
+static const FieldPart * const I048_130_SRL_PARTS[] = {
&I048_130_SRL_VALUE,
NULL
};
@@ -41442,7 +41323,7 @@ static const AsterixField I048_130_SRL = { FIXED, 1, 0, 0, &hf_048_130_SRL, I048
static int hf_048_130_SRR;
static int hf_048_130_SRR_VALUE;
static const FieldPart I048_130_SRR_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_048_130_SRR_VALUE, NULL };
-static const FieldPart *I048_130_SRR_PARTS[] = {
+static const FieldPart * const I048_130_SRR_PARTS[] = {
&I048_130_SRR_VALUE,
NULL
};
@@ -41450,7 +41331,7 @@ static const AsterixField I048_130_SRR = { FIXED, 1, 0, 0, &hf_048_130_SRR, I048
static int hf_048_130_SAM;
static int hf_048_130_SAM_VALUE;
static const FieldPart I048_130_SAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_130_SAM_VALUE, NULL };
-static const FieldPart *I048_130_SAM_PARTS[] = {
+static const FieldPart * const I048_130_SAM_PARTS[] = {
&I048_130_SAM_VALUE,
NULL
};
@@ -41458,7 +41339,7 @@ static const AsterixField I048_130_SAM = { FIXED, 1, 0, 0, &hf_048_130_SAM, I048
static int hf_048_130_PRL;
static int hf_048_130_PRL_VALUE;
static const FieldPart I048_130_PRL_VALUE = { 8, 0.0439453125, FIELD_PART_UFLOAT, &hf_048_130_PRL_VALUE, NULL };
-static const FieldPart *I048_130_PRL_PARTS[] = {
+static const FieldPart * const I048_130_PRL_PARTS[] = {
&I048_130_PRL_VALUE,
NULL
};
@@ -41466,7 +41347,7 @@ static const AsterixField I048_130_PRL = { FIXED, 1, 0, 0, &hf_048_130_PRL, I048
static int hf_048_130_PAM;
static int hf_048_130_PAM_VALUE;
static const FieldPart I048_130_PAM_VALUE = { 8, 1.0, FIELD_PART_FLOAT, &hf_048_130_PAM_VALUE, NULL };
-static const FieldPart *I048_130_PAM_PARTS[] = {
+static const FieldPart * const I048_130_PAM_PARTS[] = {
&I048_130_PAM_VALUE,
NULL
};
@@ -41474,7 +41355,7 @@ static const AsterixField I048_130_PAM = { FIXED, 1, 0, 0, &hf_048_130_PAM, I048
static int hf_048_130_RPD;
static int hf_048_130_RPD_VALUE;
static const FieldPart I048_130_RPD_VALUE = { 8, 0.00390625, FIELD_PART_FLOAT, &hf_048_130_RPD_VALUE, NULL };
-static const FieldPart *I048_130_RPD_PARTS[] = {
+static const FieldPart * const I048_130_RPD_PARTS[] = {
&I048_130_RPD_VALUE,
NULL
};
@@ -41482,7 +41363,7 @@ static const AsterixField I048_130_RPD = { FIXED, 1, 0, 0, &hf_048_130_RPD, I048
static int hf_048_130_APD;
static int hf_048_130_APD_VALUE;
static const FieldPart I048_130_APD_VALUE = { 8, 0.02197265625, FIELD_PART_FLOAT, &hf_048_130_APD_VALUE, NULL };
-static const FieldPart *I048_130_APD_PARTS[] = {
+static const FieldPart * const I048_130_APD_PARTS[] = {
&I048_130_APD_VALUE,
NULL
};
@@ -41491,7 +41372,7 @@ static const AsterixField I048_130 = { COMPOUND, 0, 0, 0, &hf_048_130, NULL, { &
static int hf_048_140;
static int hf_048_140_VALUE;
static const FieldPart I048_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_048_140_VALUE, NULL };
-static const FieldPart *I048_140_PARTS[] = {
+static const FieldPart * const I048_140_PARTS[] = {
&I048_140_VALUE,
NULL
};
@@ -41499,7 +41380,7 @@ static const AsterixField I048_140 = { FIXED, 3, 0, 0, &hf_048_140, I048_140_PAR
static int hf_048_161;
static int hf_048_161_TRN;
static const FieldPart I048_161_TRN = { 12, 1.0, FIELD_PART_HEX, &hf_048_161_TRN, NULL };
-static const FieldPart *I048_161_PARTS[] = {
+static const FieldPart * const I048_161_PARTS[] = {
&IXXX_4bit_spare,
&I048_161_TRN,
NULL
@@ -41573,7 +41454,7 @@ static const value_string valstr_048_170_TCC[] = {
{ 0, NULL }
};
static const FieldPart I048_170_TCC = { 1, 1.0, FIELD_PART_UINT, &hf_048_170_TCC, NULL };
-static const FieldPart *I048_170_PARTS[] = {
+static const FieldPart * const I048_170_PARTS[] = {
&I048_170_CNF,
&I048_170_RAD,
&I048_170_DOU,
@@ -41594,7 +41475,7 @@ static int hf_048_200_GSP;
static const FieldPart I048_200_GSP = { 16, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_200_GSP, NULL };
static int hf_048_200_HDG;
static const FieldPart I048_200_HDG = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_048_200_HDG, NULL };
-static const FieldPart *I048_200_PARTS[] = {
+static const FieldPart * const I048_200_PARTS[] = {
&I048_200_GSP,
&I048_200_HDG,
NULL
@@ -41609,7 +41490,7 @@ static int hf_048_210_SIGV;
static const FieldPart I048_210_SIGV = { 8, 6.103515625e-05, FIELD_PART_UFLOAT, &hf_048_210_SIGV, NULL };
static int hf_048_210_SIGH;
static const FieldPart I048_210_SIGH = { 8, 0.087890625, FIELD_PART_UFLOAT, &hf_048_210_SIGH, NULL };
-static const FieldPart *I048_210_PARTS[] = {
+static const FieldPart * const I048_210_PARTS[] = {
&I048_210_SIGX,
&I048_210_SIGY,
&I048_210_SIGV,
@@ -41620,7 +41501,7 @@ static const AsterixField I048_210 = { FIXED, 4, 0, 0, &hf_048_210, I048_210_PAR
static int hf_048_220;
static int hf_048_220_VALUE;
static const FieldPart I048_220_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_048_220_VALUE, NULL };
-static const FieldPart *I048_220_PARTS[] = {
+static const FieldPart * const I048_220_PARTS[] = {
&I048_220_VALUE,
NULL
};
@@ -41680,7 +41561,7 @@ static int hf_048_230_B1A;
static const FieldPart I048_230_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_048_230_B1A, NULL };
static int hf_048_230_B1B;
static const FieldPart I048_230_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_048_230_B1B, NULL };
-static const FieldPart *I048_230_PARTS[] = {
+static const FieldPart * const I048_230_PARTS[] = {
&I048_230_COM,
&I048_230_STAT,
&I048_230_SI,
@@ -41696,7 +41577,7 @@ static const AsterixField I048_230 = { FIXED, 2, 0, 0, &hf_048_230, I048_230_PAR
static int hf_048_240;
static int hf_048_240_VALUE;
static const FieldPart I048_240_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_048_240_VALUE, NULL };
-static const FieldPart *I048_240_PARTS[] = {
+static const FieldPart * const I048_240_PARTS[] = {
&I048_240_VALUE,
NULL
};
@@ -41708,7 +41589,7 @@ static int hf_048_250_BDS1;
static const FieldPart I048_250_BDS1 = { 4, 1.0, FIELD_PART_HEX, &hf_048_250_BDS1, NULL };
static int hf_048_250_BDS2;
static const FieldPart I048_250_BDS2 = { 4, 1.0, FIELD_PART_HEX, &hf_048_250_BDS2, NULL };
-static const FieldPart *I048_250_PARTS[] = {
+static const FieldPart * const I048_250_PARTS[] = {
&I048_250_MBDATA,
&I048_250_BDS1,
&I048_250_BDS2,
@@ -41718,7 +41599,7 @@ static const AsterixField I048_250 = { REPETITIVE, 8, 1, 0, &hf_048_250, I048_25
static int hf_048_260;
static int hf_048_260_VALUE;
static const FieldPart I048_260_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_048_260_VALUE, NULL };
-static const FieldPart *I048_260_PARTS[] = {
+static const FieldPart * const I048_260_PARTS[] = {
&I048_260_VALUE,
NULL
};
@@ -41728,8 +41609,7 @@ static const AsterixField I048_RE = { EXP, 0, 0, 1, &hf_048_RE, NULL, { NULL } }
static int hf_048_SP;
static const AsterixField I048_SP = { EXP, 0, 0, 1, &hf_048_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I048_V1_31_uap[] = {
+static const AsterixField * const I048_V1_31_uap[] = {
&I048_V1_31_010,
&I048_V1_31_140,
&I048_V1_31_020,
@@ -41760,14 +41640,12 @@ static const AsterixField *I048_V1_31_uap[] = {
&I048_V1_31_RE,
NULL
};
-static const AsterixField **I048_V1_31[] = {
+static const AsterixField * const * const I048_V1_31[] = {
I048_V1_31_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I048_uap[] = {
+static const AsterixField * const I048_uap[] = {
&I048_010,
&I048_140,
&I048_020,
@@ -41798,11 +41676,10 @@ static const AsterixField *I048_uap[] = {
&I048_RE,
NULL
};
-static const AsterixField **I048[] = {
+static const AsterixField * const * const I048[] = {
I048_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 062, edition 1.17 */
static int hf_062_V1_17_010;
@@ -41810,7 +41687,7 @@ static int hf_062_V1_17_010_SAC;
static const FieldPart I062_V1_17_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_010_SAC, NULL };
static int hf_062_V1_17_010_SIC;
static const FieldPart I062_V1_17_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_010_SIC, NULL };
-static const FieldPart *I062_V1_17_010_PARTS[] = {
+static const FieldPart * const I062_V1_17_010_PARTS[] = {
&I062_V1_17_010_SAC,
&I062_V1_17_010_SIC,
NULL
@@ -41819,7 +41696,7 @@ static const AsterixField I062_V1_17_010 = { FIXED, 2, 0, 0, &hf_062_V1_17_010,
static int hf_062_V1_17_015;
static int hf_062_V1_17_015_VALUE;
static const FieldPart I062_V1_17_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_015_VALUE, NULL };
-static const FieldPart *I062_V1_17_015_PARTS[] = {
+static const FieldPart * const I062_V1_17_015_PARTS[] = {
&I062_V1_17_015_VALUE,
NULL
};
@@ -41827,7 +41704,7 @@ static const AsterixField I062_V1_17_015 = { FIXED, 1, 0, 0, &hf_062_V1_17_015,
static int hf_062_V1_17_040;
static int hf_062_V1_17_040_VALUE;
static const FieldPart I062_V1_17_040_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_062_V1_17_040_VALUE, NULL };
-static const FieldPart *I062_V1_17_040_PARTS[] = {
+static const FieldPart * const I062_V1_17_040_PARTS[] = {
&I062_V1_17_040_VALUE,
NULL
};
@@ -41856,7 +41733,7 @@ static const value_string valstr_062_V1_17_060_CH[] = {
static const FieldPart I062_V1_17_060_CH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_060_CH, NULL };
static int hf_062_V1_17_060_MODE3A;
static const FieldPart I062_V1_17_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_17_060_MODE3A, NULL };
-static const FieldPart *I062_V1_17_060_PARTS[] = {
+static const FieldPart * const I062_V1_17_060_PARTS[] = {
&I062_V1_17_060_V,
&I062_V1_17_060_G,
&I062_V1_17_060_CH,
@@ -41868,7 +41745,7 @@ static const AsterixField I062_V1_17_060 = { FIXED, 2, 0, 0, &hf_062_V1_17_060,
static int hf_062_V1_17_070;
static int hf_062_V1_17_070_VALUE;
static const FieldPart I062_V1_17_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_062_V1_17_070_VALUE, NULL };
-static const FieldPart *I062_V1_17_070_PARTS[] = {
+static const FieldPart * const I062_V1_17_070_PARTS[] = {
&I062_V1_17_070_VALUE,
NULL
};
@@ -42109,7 +41986,7 @@ static const value_string valstr_062_V1_17_080_DUPM[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_080_DUPM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_080_DUPM, NULL };
-static const FieldPart *I062_V1_17_080_PARTS[] = {
+static const FieldPart * const I062_V1_17_080_PARTS[] = {
&I062_V1_17_080_MON,
&I062_V1_17_080_SPI,
&I062_V1_17_080_MRH,
@@ -42156,7 +42033,7 @@ static int hf_062_V1_17_100_X;
static const FieldPart I062_V1_17_100_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_17_100_X, NULL };
static int hf_062_V1_17_100_Y;
static const FieldPart I062_V1_17_100_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_17_100_Y, NULL };
-static const FieldPart *I062_V1_17_100_PARTS[] = {
+static const FieldPart * const I062_V1_17_100_PARTS[] = {
&I062_V1_17_100_X,
&I062_V1_17_100_Y,
NULL
@@ -42167,7 +42044,7 @@ static int hf_062_V1_17_105_LAT;
static const FieldPart I062_V1_17_105_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_17_105_LAT, NULL };
static int hf_062_V1_17_105_LON;
static const FieldPart I062_V1_17_105_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_17_105_LON, NULL };
-static const FieldPart *I062_V1_17_105_PARTS[] = {
+static const FieldPart * const I062_V1_17_105_PARTS[] = {
&I062_V1_17_105_LAT,
&I062_V1_17_105_LON,
NULL
@@ -42231,7 +42108,7 @@ static const value_string valstr_062_V1_17_110_SUM_X[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_110_SUM_X = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_110_SUM_X, NULL };
-static const FieldPart *I062_V1_17_110_SUM_PARTS[] = {
+static const FieldPart * const I062_V1_17_110_SUM_PARTS[] = {
&I062_V1_17_110_SUM_M5,
&I062_V1_17_110_SUM_ID,
&I062_V1_17_110_SUM_DA,
@@ -42250,7 +42127,7 @@ static int hf_062_V1_17_110_PMN_NAT;
static const FieldPart I062_V1_17_110_PMN_NAT = { 5, 1.0, FIELD_PART_HEX, &hf_062_V1_17_110_PMN_NAT, NULL };
static int hf_062_V1_17_110_PMN_MIS;
static const FieldPart I062_V1_17_110_PMN_MIS = { 6, 1.0, FIELD_PART_HEX, &hf_062_V1_17_110_PMN_MIS, NULL };
-static const FieldPart *I062_V1_17_110_PMN_PARTS[] = {
+static const FieldPart * const I062_V1_17_110_PMN_PARTS[] = {
&IXXX_2bit_spare,
&I062_V1_17_110_PMN_PIN,
&IXXX_3bit_spare,
@@ -42265,7 +42142,7 @@ static int hf_062_V1_17_110_POS_LAT;
static const FieldPart I062_V1_17_110_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_17_110_POS_LAT, NULL };
static int hf_062_V1_17_110_POS_LON;
static const FieldPart I062_V1_17_110_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_17_110_POS_LON, NULL };
-static const FieldPart *I062_V1_17_110_POS_PARTS[] = {
+static const FieldPart * const I062_V1_17_110_POS_PARTS[] = {
&I062_V1_17_110_POS_LAT,
&I062_V1_17_110_POS_LON,
NULL
@@ -42281,7 +42158,7 @@ static const value_string valstr_062_V1_17_110_GA_RES[] = {
static const FieldPart I062_V1_17_110_GA_RES = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_110_GA_RES, NULL };
static int hf_062_V1_17_110_GA_GA;
static const FieldPart I062_V1_17_110_GA_GA = { 14, 25.0, FIELD_PART_FLOAT, &hf_062_V1_17_110_GA_GA, NULL };
-static const FieldPart *I062_V1_17_110_GA_PARTS[] = {
+static const FieldPart * const I062_V1_17_110_GA_PARTS[] = {
&IXXX_1bit_spare,
&I062_V1_17_110_GA_RES,
&I062_V1_17_110_GA_GA,
@@ -42291,7 +42168,7 @@ static const AsterixField I062_V1_17_110_GA = { FIXED, 2, 0, 0, &hf_062_V1_17_11
static int hf_062_V1_17_110_EM1;
static int hf_062_V1_17_110_EM1_EM1;
static const FieldPart I062_V1_17_110_EM1_EM1 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_17_110_EM1_EM1, NULL };
-static const FieldPart *I062_V1_17_110_EM1_PARTS[] = {
+static const FieldPart * const I062_V1_17_110_EM1_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_17_110_EM1_EM1,
NULL
@@ -42300,7 +42177,7 @@ static const AsterixField I062_V1_17_110_EM1 = { FIXED, 2, 0, 0, &hf_062_V1_17_1
static int hf_062_V1_17_110_TOS;
static int hf_062_V1_17_110_TOS_VALUE;
static const FieldPart I062_V1_17_110_TOS_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_062_V1_17_110_TOS_VALUE, NULL };
-static const FieldPart *I062_V1_17_110_TOS_PARTS[] = {
+static const FieldPart * const I062_V1_17_110_TOS_PARTS[] = {
&I062_V1_17_110_TOS_VALUE,
NULL
};
@@ -42341,7 +42218,7 @@ static const value_string valstr_062_V1_17_110_XP_X1[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_110_XP_X1 = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_110_XP_X1, NULL };
-static const FieldPart *I062_V1_17_110_XP_PARTS[] = {
+static const FieldPart * const I062_V1_17_110_XP_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_17_110_XP_X5,
&I062_V1_17_110_XP_XC,
@@ -42355,7 +42232,7 @@ static const AsterixField I062_V1_17_110 = { COMPOUND, 0, 0, 0, &hf_062_V1_17_11
static int hf_062_V1_17_120;
static int hf_062_V1_17_120_MODE2;
static const FieldPart I062_V1_17_120_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_17_120_MODE2, NULL };
-static const FieldPart *I062_V1_17_120_PARTS[] = {
+static const FieldPart * const I062_V1_17_120_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_17_120_MODE2,
NULL
@@ -42364,7 +42241,7 @@ static const AsterixField I062_V1_17_120 = { FIXED, 2, 0, 0, &hf_062_V1_17_120,
static int hf_062_V1_17_130;
static int hf_062_V1_17_130_VALUE;
static const FieldPart I062_V1_17_130_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_17_130_VALUE, NULL };
-static const FieldPart *I062_V1_17_130_PARTS[] = {
+static const FieldPart * const I062_V1_17_130_PARTS[] = {
&I062_V1_17_130_VALUE,
NULL
};
@@ -42379,7 +42256,7 @@ static const value_string valstr_062_V1_17_135_QNH[] = {
static const FieldPart I062_V1_17_135_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_135_QNH, NULL };
static int hf_062_V1_17_135_CTB;
static const FieldPart I062_V1_17_135_CTB = { 15, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_135_CTB, NULL };
-static const FieldPart *I062_V1_17_135_PARTS[] = {
+static const FieldPart * const I062_V1_17_135_PARTS[] = {
&I062_V1_17_135_QNH,
&I062_V1_17_135_CTB,
NULL
@@ -42388,7 +42265,7 @@ static const AsterixField I062_V1_17_135 = { FIXED, 2, 0, 0, &hf_062_V1_17_135,
static int hf_062_V1_17_136;
static int hf_062_V1_17_136_VALUE;
static const FieldPart I062_V1_17_136_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_136_VALUE, NULL };
-static const FieldPart *I062_V1_17_136_PARTS[] = {
+static const FieldPart * const I062_V1_17_136_PARTS[] = {
&I062_V1_17_136_VALUE,
NULL
};
@@ -42398,7 +42275,7 @@ static int hf_062_V1_17_185_VX;
static const FieldPart I062_V1_17_185_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_185_VX, NULL };
static int hf_062_V1_17_185_VY;
static const FieldPart I062_V1_17_185_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_185_VY, NULL };
-static const FieldPart *I062_V1_17_185_PARTS[] = {
+static const FieldPart * const I062_V1_17_185_PARTS[] = {
&I062_V1_17_185_VX,
&I062_V1_17_185_VY,
NULL
@@ -42439,7 +42316,7 @@ static const value_string valstr_062_V1_17_200_ADF[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_200_ADF = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_200_ADF, NULL };
-static const FieldPart *I062_V1_17_200_PARTS[] = {
+static const FieldPart * const I062_V1_17_200_PARTS[] = {
&I062_V1_17_200_TRANS,
&I062_V1_17_200_LONG,
&I062_V1_17_200_VERT,
@@ -42453,7 +42330,7 @@ static int hf_062_V1_17_210_AX;
static const FieldPart I062_V1_17_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_210_AX, NULL };
static int hf_062_V1_17_210_AY;
static const FieldPart I062_V1_17_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_210_AY, NULL };
-static const FieldPart *I062_V1_17_210_PARTS[] = {
+static const FieldPart * const I062_V1_17_210_PARTS[] = {
&I062_V1_17_210_AX,
&I062_V1_17_210_AY,
NULL
@@ -42462,7 +42339,7 @@ static const AsterixField I062_V1_17_210 = { FIXED, 2, 0, 0, &hf_062_V1_17_210,
static int hf_062_V1_17_220;
static int hf_062_V1_17_220_VALUE;
static const FieldPart I062_V1_17_220_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_17_220_VALUE, NULL };
-static const FieldPart *I062_V1_17_220_PARTS[] = {
+static const FieldPart * const I062_V1_17_220_PARTS[] = {
&I062_V1_17_220_VALUE,
NULL
};
@@ -42479,7 +42356,7 @@ static const value_string valstr_062_V1_17_245_STI[] = {
static const FieldPart I062_V1_17_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_17_245_STI, NULL };
static int hf_062_V1_17_245_CHR;
static const FieldPart I062_V1_17_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_17_245_CHR, NULL };
-static const FieldPart *I062_V1_17_245_PARTS[] = {
+static const FieldPart * const I062_V1_17_245_PARTS[] = {
&I062_V1_17_245_STI,
&IXXX_6bit_spare,
&I062_V1_17_245_CHR,
@@ -42493,7 +42370,7 @@ static int hf_062_V1_17_270_ORIENTATION;
static const FieldPart I062_V1_17_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_062_V1_17_270_ORIENTATION, NULL };
static int hf_062_V1_17_270_WIDTH;
static const FieldPart I062_V1_17_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_17_270_WIDTH, NULL };
-static const FieldPart *I062_V1_17_270_PARTS[] = {
+static const FieldPart * const I062_V1_17_270_PARTS[] = {
&I062_V1_17_270_LENGTH,
&IXXX_FX,
&I062_V1_17_270_ORIENTATION,
@@ -42507,7 +42384,7 @@ static int hf_062_V1_17_290;
static int hf_062_V1_17_290_TRK;
static int hf_062_V1_17_290_TRK_VALUE;
static const FieldPart I062_V1_17_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_TRK_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_TRK_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_TRK_PARTS[] = {
&I062_V1_17_290_TRK_VALUE,
NULL
};
@@ -42515,7 +42392,7 @@ static const AsterixField I062_V1_17_290_TRK = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_PSR;
static int hf_062_V1_17_290_PSR_VALUE;
static const FieldPart I062_V1_17_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_PSR_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_PSR_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_PSR_PARTS[] = {
&I062_V1_17_290_PSR_VALUE,
NULL
};
@@ -42523,7 +42400,7 @@ static const AsterixField I062_V1_17_290_PSR = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_SSR;
static int hf_062_V1_17_290_SSR_VALUE;
static const FieldPart I062_V1_17_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_SSR_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_SSR_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_SSR_PARTS[] = {
&I062_V1_17_290_SSR_VALUE,
NULL
};
@@ -42531,7 +42408,7 @@ static const AsterixField I062_V1_17_290_SSR = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_MDS;
static int hf_062_V1_17_290_MDS_VALUE;
static const FieldPart I062_V1_17_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_MDS_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_MDS_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_MDS_PARTS[] = {
&I062_V1_17_290_MDS_VALUE,
NULL
};
@@ -42539,7 +42416,7 @@ static const AsterixField I062_V1_17_290_MDS = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_ADS;
static int hf_062_V1_17_290_ADS_VALUE;
static const FieldPart I062_V1_17_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_ADS_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_ADS_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_ADS_PARTS[] = {
&I062_V1_17_290_ADS_VALUE,
NULL
};
@@ -42547,7 +42424,7 @@ static const AsterixField I062_V1_17_290_ADS = { FIXED, 2, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_ES;
static int hf_062_V1_17_290_ES_VALUE;
static const FieldPart I062_V1_17_290_ES_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_ES_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_ES_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_ES_PARTS[] = {
&I062_V1_17_290_ES_VALUE,
NULL
};
@@ -42555,7 +42432,7 @@ static const AsterixField I062_V1_17_290_ES = { FIXED, 1, 0, 0, &hf_062_V1_17_29
static int hf_062_V1_17_290_VDL;
static int hf_062_V1_17_290_VDL_VALUE;
static const FieldPart I062_V1_17_290_VDL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_VDL_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_VDL_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_VDL_PARTS[] = {
&I062_V1_17_290_VDL_VALUE,
NULL
};
@@ -42563,7 +42440,7 @@ static const AsterixField I062_V1_17_290_VDL = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_UAT;
static int hf_062_V1_17_290_UAT_VALUE;
static const FieldPart I062_V1_17_290_UAT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_UAT_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_UAT_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_UAT_PARTS[] = {
&I062_V1_17_290_UAT_VALUE,
NULL
};
@@ -42571,7 +42448,7 @@ static const AsterixField I062_V1_17_290_UAT = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_LOP;
static int hf_062_V1_17_290_LOP_VALUE;
static const FieldPart I062_V1_17_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_LOP_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_LOP_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_LOP_PARTS[] = {
&I062_V1_17_290_LOP_VALUE,
NULL
};
@@ -42579,7 +42456,7 @@ static const AsterixField I062_V1_17_290_LOP = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_290_MLT;
static int hf_062_V1_17_290_MLT_VALUE;
static const FieldPart I062_V1_17_290_MLT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_290_MLT_VALUE, NULL };
-static const FieldPart *I062_V1_17_290_MLT_PARTS[] = {
+static const FieldPart * const I062_V1_17_290_MLT_PARTS[] = {
&I062_V1_17_290_MLT_VALUE,
NULL
};
@@ -42589,7 +42466,7 @@ static int hf_062_V1_17_295;
static int hf_062_V1_17_295_MFL;
static int hf_062_V1_17_295_MFL_VALUE;
static const FieldPart I062_V1_17_295_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MFL_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MFL_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MFL_PARTS[] = {
&I062_V1_17_295_MFL_VALUE,
NULL
};
@@ -42597,7 +42474,7 @@ static const AsterixField I062_V1_17_295_MFL = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MD1;
static int hf_062_V1_17_295_MD1_VALUE;
static const FieldPart I062_V1_17_295_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MD1_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MD1_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MD1_PARTS[] = {
&I062_V1_17_295_MD1_VALUE,
NULL
};
@@ -42605,7 +42482,7 @@ static const AsterixField I062_V1_17_295_MD1 = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MD2;
static int hf_062_V1_17_295_MD2_VALUE;
static const FieldPart I062_V1_17_295_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MD2_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MD2_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MD2_PARTS[] = {
&I062_V1_17_295_MD2_VALUE,
NULL
};
@@ -42613,7 +42490,7 @@ static const AsterixField I062_V1_17_295_MD2 = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MDA;
static int hf_062_V1_17_295_MDA_VALUE;
static const FieldPart I062_V1_17_295_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MDA_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MDA_PARTS[] = {
&I062_V1_17_295_MDA_VALUE,
NULL
};
@@ -42621,7 +42498,7 @@ static const AsterixField I062_V1_17_295_MDA = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MD4;
static int hf_062_V1_17_295_MD4_VALUE;
static const FieldPart I062_V1_17_295_MD4_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MD4_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MD4_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MD4_PARTS[] = {
&I062_V1_17_295_MD4_VALUE,
NULL
};
@@ -42629,7 +42506,7 @@ static const AsterixField I062_V1_17_295_MD4 = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MD5;
static int hf_062_V1_17_295_MD5_VALUE;
static const FieldPart I062_V1_17_295_MD5_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MD5_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MD5_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MD5_PARTS[] = {
&I062_V1_17_295_MD5_VALUE,
NULL
};
@@ -42637,7 +42514,7 @@ static const AsterixField I062_V1_17_295_MD5 = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MHG;
static int hf_062_V1_17_295_MHG_VALUE;
static const FieldPart I062_V1_17_295_MHG_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MHG_PARTS[] = {
&I062_V1_17_295_MHG_VALUE,
NULL
};
@@ -42645,7 +42522,7 @@ static const AsterixField I062_V1_17_295_MHG = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_IAS;
static int hf_062_V1_17_295_IAS_VALUE;
static const FieldPart I062_V1_17_295_IAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_IAS_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_IAS_PARTS[] = {
&I062_V1_17_295_IAS_VALUE,
NULL
};
@@ -42653,7 +42530,7 @@ static const AsterixField I062_V1_17_295_IAS = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_TAS;
static int hf_062_V1_17_295_TAS_VALUE;
static const FieldPart I062_V1_17_295_TAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_TAS_PARTS[] = {
&I062_V1_17_295_TAS_VALUE,
NULL
};
@@ -42661,7 +42538,7 @@ static const AsterixField I062_V1_17_295_TAS = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_SAL;
static int hf_062_V1_17_295_SAL_VALUE;
static const FieldPart I062_V1_17_295_SAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_SAL_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_SAL_PARTS[] = {
&I062_V1_17_295_SAL_VALUE,
NULL
};
@@ -42669,7 +42546,7 @@ static const AsterixField I062_V1_17_295_SAL = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_FSS;
static int hf_062_V1_17_295_FSS_VALUE;
static const FieldPart I062_V1_17_295_FSS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_FSS_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_FSS_PARTS[] = {
&I062_V1_17_295_FSS_VALUE,
NULL
};
@@ -42677,7 +42554,7 @@ static const AsterixField I062_V1_17_295_FSS = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_TID;
static int hf_062_V1_17_295_TID_VALUE;
static const FieldPart I062_V1_17_295_TID_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_TID_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_TID_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_TID_PARTS[] = {
&I062_V1_17_295_TID_VALUE,
NULL
};
@@ -42685,7 +42562,7 @@ static const AsterixField I062_V1_17_295_TID = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_COM;
static int hf_062_V1_17_295_COM_VALUE;
static const FieldPart I062_V1_17_295_COM_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_COM_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_COM_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_COM_PARTS[] = {
&I062_V1_17_295_COM_VALUE,
NULL
};
@@ -42693,7 +42570,7 @@ static const AsterixField I062_V1_17_295_COM = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_SAB;
static int hf_062_V1_17_295_SAB_VALUE;
static const FieldPart I062_V1_17_295_SAB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_SAB_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_SAB_PARTS[] = {
&I062_V1_17_295_SAB_VALUE,
NULL
};
@@ -42701,7 +42578,7 @@ static const AsterixField I062_V1_17_295_SAB = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_ACS;
static int hf_062_V1_17_295_ACS_VALUE;
static const FieldPart I062_V1_17_295_ACS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_ACS_PARTS[] = {
&I062_V1_17_295_ACS_VALUE,
NULL
};
@@ -42709,7 +42586,7 @@ static const AsterixField I062_V1_17_295_ACS = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_BVR;
static int hf_062_V1_17_295_BVR_VALUE;
static const FieldPart I062_V1_17_295_BVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_BVR_PARTS[] = {
&I062_V1_17_295_BVR_VALUE,
NULL
};
@@ -42717,7 +42594,7 @@ static const AsterixField I062_V1_17_295_BVR = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_GVR;
static int hf_062_V1_17_295_GVR_VALUE;
static const FieldPart I062_V1_17_295_GVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_GVR_PARTS[] = {
&I062_V1_17_295_GVR_VALUE,
NULL
};
@@ -42725,7 +42602,7 @@ static const AsterixField I062_V1_17_295_GVR = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_RAN;
static int hf_062_V1_17_295_RAN_VALUE;
static const FieldPart I062_V1_17_295_RAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_RAN_PARTS[] = {
&I062_V1_17_295_RAN_VALUE,
NULL
};
@@ -42733,7 +42610,7 @@ static const AsterixField I062_V1_17_295_RAN = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_TAR;
static int hf_062_V1_17_295_TAR_VALUE;
static const FieldPart I062_V1_17_295_TAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_TAR_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_TAR_PARTS[] = {
&I062_V1_17_295_TAR_VALUE,
NULL
};
@@ -42741,7 +42618,7 @@ static const AsterixField I062_V1_17_295_TAR = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_TAN;
static int hf_062_V1_17_295_TAN_VALUE;
static const FieldPart I062_V1_17_295_TAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_TAN_PARTS[] = {
&I062_V1_17_295_TAN_VALUE,
NULL
};
@@ -42749,7 +42626,7 @@ static const AsterixField I062_V1_17_295_TAN = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_GSP;
static int hf_062_V1_17_295_GSP_VALUE;
static const FieldPart I062_V1_17_295_GSP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_GSP_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_GSP_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_GSP_PARTS[] = {
&I062_V1_17_295_GSP_VALUE,
NULL
};
@@ -42757,7 +42634,7 @@ static const AsterixField I062_V1_17_295_GSP = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_VUN;
static int hf_062_V1_17_295_VUN_VALUE;
static const FieldPart I062_V1_17_295_VUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_VUN_PARTS[] = {
&I062_V1_17_295_VUN_VALUE,
NULL
};
@@ -42765,7 +42642,7 @@ static const AsterixField I062_V1_17_295_VUN = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MET;
static int hf_062_V1_17_295_MET_VALUE;
static const FieldPart I062_V1_17_295_MET_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MET_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MET_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MET_PARTS[] = {
&I062_V1_17_295_MET_VALUE,
NULL
};
@@ -42773,7 +42650,7 @@ static const AsterixField I062_V1_17_295_MET = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_EMC;
static int hf_062_V1_17_295_EMC_VALUE;
static const FieldPart I062_V1_17_295_EMC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_EMC_PARTS[] = {
&I062_V1_17_295_EMC_VALUE,
NULL
};
@@ -42781,7 +42658,7 @@ static const AsterixField I062_V1_17_295_EMC = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_POS;
static int hf_062_V1_17_295_POS_VALUE;
static const FieldPart I062_V1_17_295_POS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_POS_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_POS_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_POS_PARTS[] = {
&I062_V1_17_295_POS_VALUE,
NULL
};
@@ -42789,7 +42666,7 @@ static const AsterixField I062_V1_17_295_POS = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_GAL;
static int hf_062_V1_17_295_GAL_VALUE;
static const FieldPart I062_V1_17_295_GAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_GAL_PARTS[] = {
&I062_V1_17_295_GAL_VALUE,
NULL
};
@@ -42797,7 +42674,7 @@ static const AsterixField I062_V1_17_295_GAL = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_PUN;
static int hf_062_V1_17_295_PUN_VALUE;
static const FieldPart I062_V1_17_295_PUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_PUN_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_PUN_PARTS[] = {
&I062_V1_17_295_PUN_VALUE,
NULL
};
@@ -42805,7 +42682,7 @@ static const AsterixField I062_V1_17_295_PUN = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MB;
static int hf_062_V1_17_295_MB_VALUE;
static const FieldPart I062_V1_17_295_MB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MB_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MB_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MB_PARTS[] = {
&I062_V1_17_295_MB_VALUE,
NULL
};
@@ -42813,7 +42690,7 @@ static const AsterixField I062_V1_17_295_MB = { FIXED, 1, 0, 0, &hf_062_V1_17_29
static int hf_062_V1_17_295_IAR;
static int hf_062_V1_17_295_IAR_VALUE;
static const FieldPart I062_V1_17_295_IAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_IAR_PARTS[] = {
&I062_V1_17_295_IAR_VALUE,
NULL
};
@@ -42821,7 +42698,7 @@ static const AsterixField I062_V1_17_295_IAR = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_MAC;
static int hf_062_V1_17_295_MAC_VALUE;
static const FieldPart I062_V1_17_295_MAC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_MAC_PARTS[] = {
&I062_V1_17_295_MAC_VALUE,
NULL
};
@@ -42829,7 +42706,7 @@ static const AsterixField I062_V1_17_295_MAC = { FIXED, 1, 0, 0, &hf_062_V1_17_2
static int hf_062_V1_17_295_BPS;
static int hf_062_V1_17_295_BPS_VALUE;
static const FieldPart I062_V1_17_295_BPS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_295_BPS_VALUE, NULL };
-static const FieldPart *I062_V1_17_295_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_17_295_BPS_PARTS[] = {
&I062_V1_17_295_BPS_VALUE,
NULL
};
@@ -42858,7 +42735,7 @@ static const value_string valstr_062_V1_17_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_17_300_VALUE, NULL };
-static const FieldPart *I062_V1_17_300_PARTS[] = {
+static const FieldPart * const I062_V1_17_300_PARTS[] = {
&I062_V1_17_300_VALUE,
NULL
};
@@ -42869,7 +42746,7 @@ static int hf_062_V1_17_340_SID_SAC;
static const FieldPart I062_V1_17_340_SID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_340_SID_SAC, NULL };
static int hf_062_V1_17_340_SID_SIC;
static const FieldPart I062_V1_17_340_SID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_340_SID_SIC, NULL };
-static const FieldPart *I062_V1_17_340_SID_PARTS[] = {
+static const FieldPart * const I062_V1_17_340_SID_PARTS[] = {
&I062_V1_17_340_SID_SAC,
&I062_V1_17_340_SID_SIC,
NULL
@@ -42880,7 +42757,7 @@ static int hf_062_V1_17_340_POS_RHO;
static const FieldPart I062_V1_17_340_POS_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_062_V1_17_340_POS_RHO, NULL };
static int hf_062_V1_17_340_POS_THETA;
static const FieldPart I062_V1_17_340_POS_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_17_340_POS_THETA, NULL };
-static const FieldPart *I062_V1_17_340_POS_PARTS[] = {
+static const FieldPart * const I062_V1_17_340_POS_PARTS[] = {
&I062_V1_17_340_POS_RHO,
&I062_V1_17_340_POS_THETA,
NULL
@@ -42889,7 +42766,7 @@ static const AsterixField I062_V1_17_340_POS = { FIXED, 4, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_340_HEIGHT;
static int hf_062_V1_17_340_HEIGHT_VALUE;
static const FieldPart I062_V1_17_340_HEIGHT_VALUE = { 16, 25.0, FIELD_PART_UFLOAT, &hf_062_V1_17_340_HEIGHT_VALUE, NULL };
-static const FieldPart *I062_V1_17_340_HEIGHT_PARTS[] = {
+static const FieldPart * const I062_V1_17_340_HEIGHT_PARTS[] = {
&I062_V1_17_340_HEIGHT_VALUE,
NULL
};
@@ -42911,7 +42788,7 @@ static const value_string valstr_062_V1_17_340_MDC_G[] = {
static const FieldPart I062_V1_17_340_MDC_G = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_340_MDC_G, NULL };
static int hf_062_V1_17_340_MDC_LMC;
static const FieldPart I062_V1_17_340_MDC_LMC = { 14, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_340_MDC_LMC, NULL };
-static const FieldPart *I062_V1_17_340_MDC_PARTS[] = {
+static const FieldPart * const I062_V1_17_340_MDC_PARTS[] = {
&I062_V1_17_340_MDC_V,
&I062_V1_17_340_MDC_G,
&I062_V1_17_340_MDC_LMC,
@@ -42942,7 +42819,7 @@ static const value_string valstr_062_V1_17_340_MDA_L[] = {
static const FieldPart I062_V1_17_340_MDA_L = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_340_MDA_L, NULL };
static int hf_062_V1_17_340_MDA_MODE3A;
static const FieldPart I062_V1_17_340_MDA_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_17_340_MDA_MODE3A, NULL };
-static const FieldPart *I062_V1_17_340_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_17_340_MDA_PARTS[] = {
&I062_V1_17_340_MDA_V,
&I062_V1_17_340_MDA_G,
&I062_V1_17_340_MDA_L,
@@ -42986,7 +42863,7 @@ static const value_string valstr_062_V1_17_340_TYP_TST[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_340_TYP_TST = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_340_TYP_TST, NULL };
-static const FieldPart *I062_V1_17_340_TYP_PARTS[] = {
+static const FieldPart * const I062_V1_17_340_TYP_PARTS[] = {
&I062_V1_17_340_TYP_TYP,
&I062_V1_17_340_TYP_SIM,
&I062_V1_17_340_TYP_RAB,
@@ -43000,7 +42877,7 @@ static int hf_062_V1_17_380;
static int hf_062_V1_17_380_ADR;
static int hf_062_V1_17_380_ADR_VALUE;
static const FieldPart I062_V1_17_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_ADR_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_ADR_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_ADR_PARTS[] = {
&I062_V1_17_380_ADR_VALUE,
NULL
};
@@ -43008,7 +42885,7 @@ static const AsterixField I062_V1_17_380_ADR = { FIXED, 3, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_ID;
static int hf_062_V1_17_380_ID_VALUE;
static const FieldPart I062_V1_17_380_ID_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_17_380_ID_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_ID_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_ID_PARTS[] = {
&I062_V1_17_380_ID_VALUE,
NULL
};
@@ -43016,7 +42893,7 @@ static const AsterixField I062_V1_17_380_ID = { FIXED, 6, 0, 0, &hf_062_V1_17_38
static int hf_062_V1_17_380_MHG;
static int hf_062_V1_17_380_MHG_VALUE;
static const FieldPart I062_V1_17_380_MHG_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_17_380_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_MHG_PARTS[] = {
&I062_V1_17_380_MHG_VALUE,
NULL
};
@@ -43031,7 +42908,7 @@ static const value_string valstr_062_V1_17_380_IAS_IM[] = {
static const FieldPart I062_V1_17_380_IAS_IM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_IAS_IM, NULL };
static int hf_062_V1_17_380_IAS_IAS;
static const FieldPart I062_V1_17_380_IAS_IAS = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_IAS_IAS, NULL };
-static const FieldPart *I062_V1_17_380_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_IAS_PARTS[] = {
&I062_V1_17_380_IAS_IM,
&I062_V1_17_380_IAS_IAS,
NULL
@@ -43040,7 +42917,7 @@ static const AsterixField I062_V1_17_380_IAS = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_TAS;
static int hf_062_V1_17_380_TAS_VALUE;
static const FieldPart I062_V1_17_380_TAS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_17_380_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_TAS_PARTS[] = {
&I062_V1_17_380_TAS_VALUE,
NULL
};
@@ -43064,7 +42941,7 @@ static const value_string valstr_062_V1_17_380_SAL_SRC[] = {
static const FieldPart I062_V1_17_380_SAL_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_SAL_SRC, NULL };
static int hf_062_V1_17_380_SAL_ALT;
static const FieldPart I062_V1_17_380_SAL_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_17_380_SAL_ALT, NULL };
-static const FieldPart *I062_V1_17_380_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_SAL_PARTS[] = {
&I062_V1_17_380_SAL_SAS,
&I062_V1_17_380_SAL_SRC,
&I062_V1_17_380_SAL_ALT,
@@ -43095,7 +42972,7 @@ static const value_string valstr_062_V1_17_380_FSS_AM[] = {
static const FieldPart I062_V1_17_380_FSS_AM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_FSS_AM, NULL };
static int hf_062_V1_17_380_FSS_ALT;
static const FieldPart I062_V1_17_380_FSS_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_17_380_FSS_ALT, NULL };
-static const FieldPart *I062_V1_17_380_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_FSS_PARTS[] = {
&I062_V1_17_380_FSS_MV,
&I062_V1_17_380_FSS_AH,
&I062_V1_17_380_FSS_AM,
@@ -43118,7 +42995,7 @@ static const value_string valstr_062_V1_17_380_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_380_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_TIS_NVB, NULL };
-static const FieldPart *I062_V1_17_380_TIS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_TIS_PARTS[] = {
&I062_V1_17_380_TIS_NAV,
&I062_V1_17_380_TIS_NVB,
&IXXX_5bit_spare,
@@ -43193,7 +43070,7 @@ static int hf_062_V1_17_380_TID_TOV;
static const FieldPart I062_V1_17_380_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_17_380_TID_TOV, NULL };
static int hf_062_V1_17_380_TID_TTR;
static const FieldPart I062_V1_17_380_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_062_V1_17_380_TID_TTR, NULL };
-static const FieldPart *I062_V1_17_380_TID_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_TID_PARTS[] = {
&I062_V1_17_380_TID_TCA,
&I062_V1_17_380_TID_NC,
&I062_V1_17_380_TID_TCPN,
@@ -43259,7 +43136,7 @@ static int hf_062_V1_17_380_COM_B1A;
static const FieldPart I062_V1_17_380_COM_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_COM_B1A, NULL };
static int hf_062_V1_17_380_COM_B1B;
static const FieldPart I062_V1_17_380_COM_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_COM_B1B, NULL };
-static const FieldPart *I062_V1_17_380_COM_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_COM_PARTS[] = {
&I062_V1_17_380_COM_COM,
&I062_V1_17_380_COM_STAT,
&IXXX_2bit_spare,
@@ -43319,7 +43196,7 @@ static const value_string valstr_062_V1_17_380_SAB_STAT[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_380_SAB_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_SAB_STAT, NULL };
-static const FieldPart *I062_V1_17_380_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_SAB_PARTS[] = {
&I062_V1_17_380_SAB_AC,
&I062_V1_17_380_SAB_MN,
&I062_V1_17_380_SAB_DC,
@@ -43332,7 +43209,7 @@ static const AsterixField I062_V1_17_380_SAB = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_ACS;
static int hf_062_V1_17_380_ACS_VALUE;
static const FieldPart I062_V1_17_380_ACS_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_ACS_PARTS[] = {
&I062_V1_17_380_ACS_VALUE,
NULL
};
@@ -43340,7 +43217,7 @@ static const AsterixField I062_V1_17_380_ACS = { FIXED, 7, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_BVR;
static int hf_062_V1_17_380_BVR_VALUE;
static const FieldPart I062_V1_17_380_BVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_17_380_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_BVR_PARTS[] = {
&I062_V1_17_380_BVR_VALUE,
NULL
};
@@ -43348,7 +43225,7 @@ static const AsterixField I062_V1_17_380_BVR = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_GVR;
static int hf_062_V1_17_380_GVR_VALUE;
static const FieldPart I062_V1_17_380_GVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_17_380_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_GVR_PARTS[] = {
&I062_V1_17_380_GVR_VALUE,
NULL
};
@@ -43356,7 +43233,7 @@ static const AsterixField I062_V1_17_380_GVR = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_RAN;
static int hf_062_V1_17_380_RAN_VALUE;
static const FieldPart I062_V1_17_380_RAN_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_062_V1_17_380_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_RAN_PARTS[] = {
&I062_V1_17_380_RAN_VALUE,
NULL
};
@@ -43373,7 +43250,7 @@ static const value_string valstr_062_V1_17_380_TAR_TI[] = {
static const FieldPart I062_V1_17_380_TAR_TI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_TAR_TI, NULL };
static int hf_062_V1_17_380_TAR_ROT;
static const FieldPart I062_V1_17_380_TAR_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_380_TAR_ROT, NULL };
-static const FieldPart *I062_V1_17_380_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_TAR_PARTS[] = {
&I062_V1_17_380_TAR_TI,
&IXXX_6bit_spare,
&I062_V1_17_380_TAR_ROT,
@@ -43384,7 +43261,7 @@ static const AsterixField I062_V1_17_380_TAR = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_TAN;
static int hf_062_V1_17_380_TAN_VALUE;
static const FieldPart I062_V1_17_380_TAN_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_17_380_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_TAN_PARTS[] = {
&I062_V1_17_380_TAN_VALUE,
NULL
};
@@ -43392,7 +43269,7 @@ static const AsterixField I062_V1_17_380_TAN = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_GS;
static int hf_062_V1_17_380_GS_VALUE;
static const FieldPart I062_V1_17_380_GS_VALUE = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_062_V1_17_380_GS_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_GS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_GS_PARTS[] = {
&I062_V1_17_380_GS_VALUE,
NULL
};
@@ -43400,7 +43277,7 @@ static const AsterixField I062_V1_17_380_GS = { FIXED, 2, 0, 0, &hf_062_V1_17_38
static int hf_062_V1_17_380_VUN;
static int hf_062_V1_17_380_VUN_VALUE;
static const FieldPart I062_V1_17_380_VUN_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_VUN_PARTS[] = {
&I062_V1_17_380_VUN_VALUE,
NULL
};
@@ -43442,7 +43319,7 @@ static int hf_062_V1_17_380_MET_TMPD;
static const FieldPart I062_V1_17_380_MET_TMPD = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_17_380_MET_TMPD, NULL };
static int hf_062_V1_17_380_MET_TRBD;
static const FieldPart I062_V1_17_380_MET_TRBD = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_MET_TRBD, NULL };
-static const FieldPart *I062_V1_17_380_MET_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_MET_PARTS[] = {
&I062_V1_17_380_MET_WS,
&I062_V1_17_380_MET_WD,
&I062_V1_17_380_MET_TMP,
@@ -43485,7 +43362,7 @@ static const value_string valstr_062_V1_17_380_EMC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_380_EMC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_17_380_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_EMC_PARTS[] = {
&I062_V1_17_380_EMC_VALUE,
NULL
};
@@ -43495,7 +43372,7 @@ static int hf_062_V1_17_380_POS_LAT;
static const FieldPart I062_V1_17_380_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_17_380_POS_LAT, NULL };
static int hf_062_V1_17_380_POS_LON;
static const FieldPart I062_V1_17_380_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_17_380_POS_LON, NULL };
-static const FieldPart *I062_V1_17_380_POS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_POS_PARTS[] = {
&I062_V1_17_380_POS_LAT,
&I062_V1_17_380_POS_LON,
NULL
@@ -43504,7 +43381,7 @@ static const AsterixField I062_V1_17_380_POS = { FIXED, 6, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_GAL;
static int hf_062_V1_17_380_GAL_VALUE;
static const FieldPart I062_V1_17_380_GAL_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_17_380_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_GAL_PARTS[] = {
&I062_V1_17_380_GAL_VALUE,
NULL
};
@@ -43512,7 +43389,7 @@ static const AsterixField I062_V1_17_380_GAL = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_PUN;
static int hf_062_V1_17_380_PUN_PUN;
static const FieldPart I062_V1_17_380_PUN_PUN = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_PUN_PUN, NULL };
-static const FieldPart *I062_V1_17_380_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_PUN_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_17_380_PUN_PUN,
NULL
@@ -43521,7 +43398,7 @@ static const AsterixField I062_V1_17_380_PUN = { FIXED, 1, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_MB;
static int hf_062_V1_17_380_MB_VALUE;
static const FieldPart I062_V1_17_380_MB_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_062_V1_17_380_MB_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_MB_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_MB_PARTS[] = {
&I062_V1_17_380_MB_VALUE,
NULL
};
@@ -43529,7 +43406,7 @@ static const AsterixField I062_V1_17_380_MB = { REPETITIVE, 8, 1, 0, &hf_062_V1_
static int hf_062_V1_17_380_IAR;
static int hf_062_V1_17_380_IAR_VALUE;
static const FieldPart I062_V1_17_380_IAR_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_17_380_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_IAR_PARTS[] = {
&I062_V1_17_380_IAR_VALUE,
NULL
};
@@ -43537,7 +43414,7 @@ static const AsterixField I062_V1_17_380_IAR = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_MAC;
static int hf_062_V1_17_380_MAC_VALUE;
static const FieldPart I062_V1_17_380_MAC_VALUE = { 16, 0.008, FIELD_PART_UFLOAT, &hf_062_V1_17_380_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_17_380_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_MAC_PARTS[] = {
&I062_V1_17_380_MAC_VALUE,
NULL
};
@@ -43545,7 +43422,7 @@ static const AsterixField I062_V1_17_380_MAC = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_380_BPS;
static int hf_062_V1_17_380_BPS_BPS;
static const FieldPart I062_V1_17_380_BPS_BPS = { 12, 0.1, FIELD_PART_UFLOAT, &hf_062_V1_17_380_BPS_BPS, NULL };
-static const FieldPart *I062_V1_17_380_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_17_380_BPS_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_17_380_BPS_BPS,
NULL
@@ -43558,7 +43435,7 @@ static int hf_062_V1_17_390_TAG_SAC;
static const FieldPart I062_V1_17_390_TAG_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_390_TAG_SAC, NULL };
static int hf_062_V1_17_390_TAG_SIC;
static const FieldPart I062_V1_17_390_TAG_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_390_TAG_SIC, NULL };
-static const FieldPart *I062_V1_17_390_TAG_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_TAG_PARTS[] = {
&I062_V1_17_390_TAG_SAC,
&I062_V1_17_390_TAG_SIC,
NULL
@@ -43567,7 +43444,7 @@ static const AsterixField I062_V1_17_390_TAG = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_CS;
static int hf_062_V1_17_390_CS_VALUE;
static const FieldPart I062_V1_17_390_CS_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_CS_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_CS_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_CS_PARTS[] = {
&I062_V1_17_390_CS_VALUE,
NULL
};
@@ -43584,7 +43461,7 @@ static const value_string valstr_062_V1_17_390_IFI_TYP[] = {
static const FieldPart I062_V1_17_390_IFI_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_17_390_IFI_TYP, NULL };
static int hf_062_V1_17_390_IFI_NBR;
static const FieldPart I062_V1_17_390_IFI_NBR = { 27, 1.0, FIELD_PART_UINT, &hf_062_V1_17_390_IFI_NBR, NULL };
-static const FieldPart *I062_V1_17_390_IFI_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_IFI_PARTS[] = {
&I062_V1_17_390_IFI_TYP,
&IXXX_3bit_spare,
&I062_V1_17_390_IFI_NBR,
@@ -43626,7 +43503,7 @@ static const value_string valstr_062_V1_17_390_FCT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_390_FCT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_390_FCT_HPR, NULL };
-static const FieldPart *I062_V1_17_390_FCT_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_FCT_PARTS[] = {
&I062_V1_17_390_FCT_GATOAT,
&I062_V1_17_390_FCT_FR1FR2,
&I062_V1_17_390_FCT_RVSM,
@@ -43638,7 +43515,7 @@ static const AsterixField I062_V1_17_390_FCT = { FIXED, 1, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_TAC;
static int hf_062_V1_17_390_TAC_VALUE;
static const FieldPart I062_V1_17_390_TAC_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_TAC_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_TAC_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_TAC_PARTS[] = {
&I062_V1_17_390_TAC_VALUE,
NULL
};
@@ -43646,7 +43523,7 @@ static const AsterixField I062_V1_17_390_TAC = { FIXED, 4, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_WTC;
static int hf_062_V1_17_390_WTC_VALUE;
static const FieldPart I062_V1_17_390_WTC_VALUE = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_WTC_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_WTC_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_WTC_PARTS[] = {
&I062_V1_17_390_WTC_VALUE,
NULL
};
@@ -43654,7 +43531,7 @@ static const AsterixField I062_V1_17_390_WTC = { FIXED, 1, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_DEP;
static int hf_062_V1_17_390_DEP_VALUE;
static const FieldPart I062_V1_17_390_DEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_DEP_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_DEP_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_DEP_PARTS[] = {
&I062_V1_17_390_DEP_VALUE,
NULL
};
@@ -43662,7 +43539,7 @@ static const AsterixField I062_V1_17_390_DEP = { FIXED, 4, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_DST;
static int hf_062_V1_17_390_DST_VALUE;
static const FieldPart I062_V1_17_390_DST_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_DST_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_DST_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_DST_PARTS[] = {
&I062_V1_17_390_DST_VALUE,
NULL
};
@@ -43674,7 +43551,7 @@ static int hf_062_V1_17_390_RDS_NU2;
static const FieldPart I062_V1_17_390_RDS_NU2 = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_RDS_NU2, NULL };
static int hf_062_V1_17_390_RDS_LTR;
static const FieldPart I062_V1_17_390_RDS_LTR = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_RDS_LTR, NULL };
-static const FieldPart *I062_V1_17_390_RDS_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_RDS_PARTS[] = {
&I062_V1_17_390_RDS_NU1,
&I062_V1_17_390_RDS_NU2,
&I062_V1_17_390_RDS_LTR,
@@ -43684,7 +43561,7 @@ static const AsterixField I062_V1_17_390_RDS = { FIXED, 3, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_CFL;
static int hf_062_V1_17_390_CFL_VALUE;
static const FieldPart I062_V1_17_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_390_CFL_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_CFL_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_CFL_PARTS[] = {
&I062_V1_17_390_CFL_VALUE,
NULL
};
@@ -43694,7 +43571,7 @@ static int hf_062_V1_17_390_CTL_CENTRE;
static const FieldPart I062_V1_17_390_CTL_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_390_CTL_CENTRE, NULL };
static int hf_062_V1_17_390_CTL_POSITION;
static const FieldPart I062_V1_17_390_CTL_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_390_CTL_POSITION, NULL };
-static const FieldPart *I062_V1_17_390_CTL_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_CTL_PARTS[] = {
&I062_V1_17_390_CTL_CENTRE,
&I062_V1_17_390_CTL_POSITION,
NULL
@@ -43742,7 +43619,7 @@ static const value_string valstr_062_V1_17_390_TOD_AVS[] = {
static const FieldPart I062_V1_17_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_390_TOD_AVS, NULL };
static int hf_062_V1_17_390_TOD_SEC;
static const FieldPart I062_V1_17_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_062_V1_17_390_TOD_SEC, NULL };
-static const FieldPart *I062_V1_17_390_TOD_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_TOD_PARTS[] = {
&I062_V1_17_390_TOD_TYP,
&I062_V1_17_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -43758,7 +43635,7 @@ static const AsterixField I062_V1_17_390_TOD = { REPETITIVE, 4, 1, 0, &hf_062_V1
static int hf_062_V1_17_390_AST;
static int hf_062_V1_17_390_AST_VALUE;
static const FieldPart I062_V1_17_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_AST_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_AST_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_AST_PARTS[] = {
&I062_V1_17_390_AST_VALUE,
NULL
};
@@ -43782,7 +43659,7 @@ static const value_string valstr_062_V1_17_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_17_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_17_390_STS_AVL, NULL };
-static const FieldPart *I062_V1_17_390_STS_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_STS_PARTS[] = {
&I062_V1_17_390_STS_EMP,
&I062_V1_17_390_STS_AVL,
&IXXX_4bit_spare,
@@ -43792,7 +43669,7 @@ static const AsterixField I062_V1_17_390_STS = { FIXED, 1, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_STD;
static int hf_062_V1_17_390_STD_VALUE;
static const FieldPart I062_V1_17_390_STD_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_STD_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_STD_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_STD_PARTS[] = {
&I062_V1_17_390_STD_VALUE,
NULL
};
@@ -43800,7 +43677,7 @@ static const AsterixField I062_V1_17_390_STD = { FIXED, 7, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_STA;
static int hf_062_V1_17_390_STA_VALUE;
static const FieldPart I062_V1_17_390_STA_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_STA_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_STA_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_STA_PARTS[] = {
&I062_V1_17_390_STA_VALUE,
NULL
};
@@ -43815,7 +43692,7 @@ static const value_string valstr_062_V1_17_390_PEM_VA[] = {
static const FieldPart I062_V1_17_390_PEM_VA = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_17_390_PEM_VA, NULL };
static int hf_062_V1_17_390_PEM_MODE3A;
static const FieldPart I062_V1_17_390_PEM_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_17_390_PEM_MODE3A, NULL };
-static const FieldPart *I062_V1_17_390_PEM_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_PEM_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_17_390_PEM_VA,
&I062_V1_17_390_PEM_MODE3A,
@@ -43825,7 +43702,7 @@ static const AsterixField I062_V1_17_390_PEM = { FIXED, 2, 0, 0, &hf_062_V1_17_3
static int hf_062_V1_17_390_PEC;
static int hf_062_V1_17_390_PEC_VALUE;
static const FieldPart I062_V1_17_390_PEC_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_17_390_PEC_VALUE, NULL };
-static const FieldPart *I062_V1_17_390_PEC_PARTS[] = {
+static const FieldPart * const I062_V1_17_390_PEC_PARTS[] = {
&I062_V1_17_390_PEC_VALUE,
NULL
};
@@ -43837,7 +43714,7 @@ static int hf_062_V1_17_500_APC_X;
static const FieldPart I062_V1_17_500_APC_X = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_17_500_APC_X, NULL };
static int hf_062_V1_17_500_APC_Y;
static const FieldPart I062_V1_17_500_APC_Y = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_17_500_APC_Y, NULL };
-static const FieldPart *I062_V1_17_500_APC_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_APC_PARTS[] = {
&I062_V1_17_500_APC_X,
&I062_V1_17_500_APC_Y,
NULL
@@ -43846,7 +43723,7 @@ static const AsterixField I062_V1_17_500_APC = { FIXED, 4, 0, 0, &hf_062_V1_17_5
static int hf_062_V1_17_500_COV;
static int hf_062_V1_17_500_COV_VALUE;
static const FieldPart I062_V1_17_500_COV_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_062_V1_17_500_COV_VALUE, NULL };
-static const FieldPart *I062_V1_17_500_COV_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_COV_PARTS[] = {
&I062_V1_17_500_COV_VALUE,
NULL
};
@@ -43856,7 +43733,7 @@ static int hf_062_V1_17_500_APW_LAT;
static const FieldPart I062_V1_17_500_APW_LAT = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_17_500_APW_LAT, NULL };
static int hf_062_V1_17_500_APW_LON;
static const FieldPart I062_V1_17_500_APW_LON = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_17_500_APW_LON, NULL };
-static const FieldPart *I062_V1_17_500_APW_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_APW_PARTS[] = {
&I062_V1_17_500_APW_LAT,
&I062_V1_17_500_APW_LON,
NULL
@@ -43865,7 +43742,7 @@ static const AsterixField I062_V1_17_500_APW = { FIXED, 4, 0, 0, &hf_062_V1_17_5
static int hf_062_V1_17_500_AGA;
static int hf_062_V1_17_500_AGA_VALUE;
static const FieldPart I062_V1_17_500_AGA_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_17_500_AGA_VALUE, NULL };
-static const FieldPart *I062_V1_17_500_AGA_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_AGA_PARTS[] = {
&I062_V1_17_500_AGA_VALUE,
NULL
};
@@ -43873,7 +43750,7 @@ static const AsterixField I062_V1_17_500_AGA = { FIXED, 1, 0, 0, &hf_062_V1_17_5
static int hf_062_V1_17_500_ABA;
static int hf_062_V1_17_500_ABA_VALUE;
static const FieldPart I062_V1_17_500_ABA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_500_ABA_VALUE, NULL };
-static const FieldPart *I062_V1_17_500_ABA_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_ABA_PARTS[] = {
&I062_V1_17_500_ABA_VALUE,
NULL
};
@@ -43883,7 +43760,7 @@ static int hf_062_V1_17_500_ATV_X;
static const FieldPart I062_V1_17_500_ATV_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_500_ATV_X, NULL };
static int hf_062_V1_17_500_ATV_Y;
static const FieldPart I062_V1_17_500_ATV_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_500_ATV_Y, NULL };
-static const FieldPart *I062_V1_17_500_ATV_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_ATV_PARTS[] = {
&I062_V1_17_500_ATV_X,
&I062_V1_17_500_ATV_Y,
NULL
@@ -43894,7 +43771,7 @@ static int hf_062_V1_17_500_AA_X;
static const FieldPart I062_V1_17_500_AA_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_500_AA_X, NULL };
static int hf_062_V1_17_500_AA_Y;
static const FieldPart I062_V1_17_500_AA_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_17_500_AA_Y, NULL };
-static const FieldPart *I062_V1_17_500_AA_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_AA_PARTS[] = {
&I062_V1_17_500_AA_X,
&I062_V1_17_500_AA_Y,
NULL
@@ -43903,7 +43780,7 @@ static const AsterixField I062_V1_17_500_AA = { FIXED, 2, 0, 0, &hf_062_V1_17_50
static int hf_062_V1_17_500_ARC;
static int hf_062_V1_17_500_ARC_VALUE;
static const FieldPart I062_V1_17_500_ARC_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_17_500_ARC_VALUE, NULL };
-static const FieldPart *I062_V1_17_500_ARC_PARTS[] = {
+static const FieldPart * const I062_V1_17_500_ARC_PARTS[] = {
&I062_V1_17_500_ARC_VALUE,
NULL
};
@@ -43918,7 +43795,7 @@ static int hf_062_V1_17_510_SIDENT;
static const FieldPart I062_V1_17_510_SIDENT = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_17_510_SIDENT, NULL };
static int hf_062_V1_17_510_STRACK;
static const FieldPart I062_V1_17_510_STRACK = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_17_510_STRACK, NULL };
-static const FieldPart *I062_V1_17_510_PARTS[] = {
+static const FieldPart * const I062_V1_17_510_PARTS[] = {
&I062_V1_17_510_MIDENT,
&I062_V1_17_510_MTRACK,
&IXXX_FX,
@@ -43933,8 +43810,7 @@ static const AsterixField I062_V1_17_RE = { EXP, 0, 0, 1, &hf_062_V1_17_RE, NULL
static int hf_062_V1_17_SP;
static const AsterixField I062_V1_17_SP = { EXP, 0, 0, 1, &hf_062_V1_17_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I062_V1_17_uap[] = {
+static const AsterixField * const I062_V1_17_uap[] = {
&I062_V1_17_010,
&IX_SPARE,
&I062_V1_17_015,
@@ -43972,11 +43848,10 @@ static const AsterixField *I062_V1_17_uap[] = {
&I062_V1_17_SP,
NULL
};
-static const AsterixField **I062_V1_17[] = {
+static const AsterixField * const * const I062_V1_17[] = {
I062_V1_17_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 062, edition 1.18 */
static int hf_062_V1_18_010;
@@ -43984,7 +43859,7 @@ static int hf_062_V1_18_010_SAC;
static const FieldPart I062_V1_18_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_010_SAC, NULL };
static int hf_062_V1_18_010_SIC;
static const FieldPart I062_V1_18_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_010_SIC, NULL };
-static const FieldPart *I062_V1_18_010_PARTS[] = {
+static const FieldPart * const I062_V1_18_010_PARTS[] = {
&I062_V1_18_010_SAC,
&I062_V1_18_010_SIC,
NULL
@@ -43993,7 +43868,7 @@ static const AsterixField I062_V1_18_010 = { FIXED, 2, 0, 0, &hf_062_V1_18_010,
static int hf_062_V1_18_015;
static int hf_062_V1_18_015_VALUE;
static const FieldPart I062_V1_18_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_015_VALUE, NULL };
-static const FieldPart *I062_V1_18_015_PARTS[] = {
+static const FieldPart * const I062_V1_18_015_PARTS[] = {
&I062_V1_18_015_VALUE,
NULL
};
@@ -44001,7 +43876,7 @@ static const AsterixField I062_V1_18_015 = { FIXED, 1, 0, 0, &hf_062_V1_18_015,
static int hf_062_V1_18_040;
static int hf_062_V1_18_040_VALUE;
static const FieldPart I062_V1_18_040_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_062_V1_18_040_VALUE, NULL };
-static const FieldPart *I062_V1_18_040_PARTS[] = {
+static const FieldPart * const I062_V1_18_040_PARTS[] = {
&I062_V1_18_040_VALUE,
NULL
};
@@ -44030,7 +43905,7 @@ static const value_string valstr_062_V1_18_060_CH[] = {
static const FieldPart I062_V1_18_060_CH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_060_CH, NULL };
static int hf_062_V1_18_060_MODE3A;
static const FieldPart I062_V1_18_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_18_060_MODE3A, NULL };
-static const FieldPart *I062_V1_18_060_PARTS[] = {
+static const FieldPart * const I062_V1_18_060_PARTS[] = {
&I062_V1_18_060_V,
&I062_V1_18_060_G,
&I062_V1_18_060_CH,
@@ -44042,7 +43917,7 @@ static const AsterixField I062_V1_18_060 = { FIXED, 2, 0, 0, &hf_062_V1_18_060,
static int hf_062_V1_18_070;
static int hf_062_V1_18_070_VALUE;
static const FieldPart I062_V1_18_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_062_V1_18_070_VALUE, NULL };
-static const FieldPart *I062_V1_18_070_PARTS[] = {
+static const FieldPart * const I062_V1_18_070_PARTS[] = {
&I062_V1_18_070_VALUE,
NULL
};
@@ -44304,7 +44179,7 @@ static const value_string valstr_062_V1_18_080_IEC[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_080_IEC = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_080_IEC, NULL };
-static const FieldPart *I062_V1_18_080_PARTS[] = {
+static const FieldPart * const I062_V1_18_080_PARTS[] = {
&I062_V1_18_080_MON,
&I062_V1_18_080_SPI,
&I062_V1_18_080_MRH,
@@ -44354,7 +44229,7 @@ static int hf_062_V1_18_100_X;
static const FieldPart I062_V1_18_100_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_18_100_X, NULL };
static int hf_062_V1_18_100_Y;
static const FieldPart I062_V1_18_100_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_18_100_Y, NULL };
-static const FieldPart *I062_V1_18_100_PARTS[] = {
+static const FieldPart * const I062_V1_18_100_PARTS[] = {
&I062_V1_18_100_X,
&I062_V1_18_100_Y,
NULL
@@ -44365,7 +44240,7 @@ static int hf_062_V1_18_105_LAT;
static const FieldPart I062_V1_18_105_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_18_105_LAT, NULL };
static int hf_062_V1_18_105_LON;
static const FieldPart I062_V1_18_105_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_18_105_LON, NULL };
-static const FieldPart *I062_V1_18_105_PARTS[] = {
+static const FieldPart * const I062_V1_18_105_PARTS[] = {
&I062_V1_18_105_LAT,
&I062_V1_18_105_LON,
NULL
@@ -44429,7 +44304,7 @@ static const value_string valstr_062_V1_18_110_SUM_X[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_110_SUM_X = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_110_SUM_X, NULL };
-static const FieldPart *I062_V1_18_110_SUM_PARTS[] = {
+static const FieldPart * const I062_V1_18_110_SUM_PARTS[] = {
&I062_V1_18_110_SUM_M5,
&I062_V1_18_110_SUM_ID,
&I062_V1_18_110_SUM_DA,
@@ -44448,7 +44323,7 @@ static int hf_062_V1_18_110_PMN_NAT;
static const FieldPart I062_V1_18_110_PMN_NAT = { 5, 1.0, FIELD_PART_HEX, &hf_062_V1_18_110_PMN_NAT, NULL };
static int hf_062_V1_18_110_PMN_MIS;
static const FieldPart I062_V1_18_110_PMN_MIS = { 6, 1.0, FIELD_PART_HEX, &hf_062_V1_18_110_PMN_MIS, NULL };
-static const FieldPart *I062_V1_18_110_PMN_PARTS[] = {
+static const FieldPart * const I062_V1_18_110_PMN_PARTS[] = {
&IXXX_2bit_spare,
&I062_V1_18_110_PMN_PIN,
&IXXX_3bit_spare,
@@ -44463,7 +44338,7 @@ static int hf_062_V1_18_110_POS_LAT;
static const FieldPart I062_V1_18_110_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_18_110_POS_LAT, NULL };
static int hf_062_V1_18_110_POS_LON;
static const FieldPart I062_V1_18_110_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_18_110_POS_LON, NULL };
-static const FieldPart *I062_V1_18_110_POS_PARTS[] = {
+static const FieldPart * const I062_V1_18_110_POS_PARTS[] = {
&I062_V1_18_110_POS_LAT,
&I062_V1_18_110_POS_LON,
NULL
@@ -44479,7 +44354,7 @@ static const value_string valstr_062_V1_18_110_GA_RES[] = {
static const FieldPart I062_V1_18_110_GA_RES = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_110_GA_RES, NULL };
static int hf_062_V1_18_110_GA_GA;
static const FieldPart I062_V1_18_110_GA_GA = { 14, 25.0, FIELD_PART_FLOAT, &hf_062_V1_18_110_GA_GA, NULL };
-static const FieldPart *I062_V1_18_110_GA_PARTS[] = {
+static const FieldPart * const I062_V1_18_110_GA_PARTS[] = {
&IXXX_1bit_spare,
&I062_V1_18_110_GA_RES,
&I062_V1_18_110_GA_GA,
@@ -44489,7 +44364,7 @@ static const AsterixField I062_V1_18_110_GA = { FIXED, 2, 0, 0, &hf_062_V1_18_11
static int hf_062_V1_18_110_EM1;
static int hf_062_V1_18_110_EM1_EM1;
static const FieldPart I062_V1_18_110_EM1_EM1 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_18_110_EM1_EM1, NULL };
-static const FieldPart *I062_V1_18_110_EM1_PARTS[] = {
+static const FieldPart * const I062_V1_18_110_EM1_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_18_110_EM1_EM1,
NULL
@@ -44498,7 +44373,7 @@ static const AsterixField I062_V1_18_110_EM1 = { FIXED, 2, 0, 0, &hf_062_V1_18_1
static int hf_062_V1_18_110_TOS;
static int hf_062_V1_18_110_TOS_VALUE;
static const FieldPart I062_V1_18_110_TOS_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_062_V1_18_110_TOS_VALUE, NULL };
-static const FieldPart *I062_V1_18_110_TOS_PARTS[] = {
+static const FieldPart * const I062_V1_18_110_TOS_PARTS[] = {
&I062_V1_18_110_TOS_VALUE,
NULL
};
@@ -44539,7 +44414,7 @@ static const value_string valstr_062_V1_18_110_XP_X1[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_110_XP_X1 = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_110_XP_X1, NULL };
-static const FieldPart *I062_V1_18_110_XP_PARTS[] = {
+static const FieldPart * const I062_V1_18_110_XP_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_18_110_XP_X5,
&I062_V1_18_110_XP_XC,
@@ -44553,7 +44428,7 @@ static const AsterixField I062_V1_18_110 = { COMPOUND, 0, 0, 0, &hf_062_V1_18_11
static int hf_062_V1_18_120;
static int hf_062_V1_18_120_MODE2;
static const FieldPart I062_V1_18_120_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_18_120_MODE2, NULL };
-static const FieldPart *I062_V1_18_120_PARTS[] = {
+static const FieldPart * const I062_V1_18_120_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_18_120_MODE2,
NULL
@@ -44562,7 +44437,7 @@ static const AsterixField I062_V1_18_120 = { FIXED, 2, 0, 0, &hf_062_V1_18_120,
static int hf_062_V1_18_130;
static int hf_062_V1_18_130_VALUE;
static const FieldPart I062_V1_18_130_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_18_130_VALUE, NULL };
-static const FieldPart *I062_V1_18_130_PARTS[] = {
+static const FieldPart * const I062_V1_18_130_PARTS[] = {
&I062_V1_18_130_VALUE,
NULL
};
@@ -44577,7 +44452,7 @@ static const value_string valstr_062_V1_18_135_QNH[] = {
static const FieldPart I062_V1_18_135_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_135_QNH, NULL };
static int hf_062_V1_18_135_CTB;
static const FieldPart I062_V1_18_135_CTB = { 15, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_135_CTB, NULL };
-static const FieldPart *I062_V1_18_135_PARTS[] = {
+static const FieldPart * const I062_V1_18_135_PARTS[] = {
&I062_V1_18_135_QNH,
&I062_V1_18_135_CTB,
NULL
@@ -44586,7 +44461,7 @@ static const AsterixField I062_V1_18_135 = { FIXED, 2, 0, 0, &hf_062_V1_18_135,
static int hf_062_V1_18_136;
static int hf_062_V1_18_136_VALUE;
static const FieldPart I062_V1_18_136_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_136_VALUE, NULL };
-static const FieldPart *I062_V1_18_136_PARTS[] = {
+static const FieldPart * const I062_V1_18_136_PARTS[] = {
&I062_V1_18_136_VALUE,
NULL
};
@@ -44596,7 +44471,7 @@ static int hf_062_V1_18_185_VX;
static const FieldPart I062_V1_18_185_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_185_VX, NULL };
static int hf_062_V1_18_185_VY;
static const FieldPart I062_V1_18_185_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_185_VY, NULL };
-static const FieldPart *I062_V1_18_185_PARTS[] = {
+static const FieldPart * const I062_V1_18_185_PARTS[] = {
&I062_V1_18_185_VX,
&I062_V1_18_185_VY,
NULL
@@ -44637,7 +44512,7 @@ static const value_string valstr_062_V1_18_200_ADF[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_200_ADF = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_200_ADF, NULL };
-static const FieldPart *I062_V1_18_200_PARTS[] = {
+static const FieldPart * const I062_V1_18_200_PARTS[] = {
&I062_V1_18_200_TRANS,
&I062_V1_18_200_LONG,
&I062_V1_18_200_VERT,
@@ -44651,7 +44526,7 @@ static int hf_062_V1_18_210_AX;
static const FieldPart I062_V1_18_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_210_AX, NULL };
static int hf_062_V1_18_210_AY;
static const FieldPart I062_V1_18_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_210_AY, NULL };
-static const FieldPart *I062_V1_18_210_PARTS[] = {
+static const FieldPart * const I062_V1_18_210_PARTS[] = {
&I062_V1_18_210_AX,
&I062_V1_18_210_AY,
NULL
@@ -44660,7 +44535,7 @@ static const AsterixField I062_V1_18_210 = { FIXED, 2, 0, 0, &hf_062_V1_18_210,
static int hf_062_V1_18_220;
static int hf_062_V1_18_220_VALUE;
static const FieldPart I062_V1_18_220_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_18_220_VALUE, NULL };
-static const FieldPart *I062_V1_18_220_PARTS[] = {
+static const FieldPart * const I062_V1_18_220_PARTS[] = {
&I062_V1_18_220_VALUE,
NULL
};
@@ -44677,7 +44552,7 @@ static const value_string valstr_062_V1_18_245_STI[] = {
static const FieldPart I062_V1_18_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_18_245_STI, NULL };
static int hf_062_V1_18_245_CHR;
static const FieldPart I062_V1_18_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_18_245_CHR, NULL };
-static const FieldPart *I062_V1_18_245_PARTS[] = {
+static const FieldPart * const I062_V1_18_245_PARTS[] = {
&I062_V1_18_245_STI,
&IXXX_6bit_spare,
&I062_V1_18_245_CHR,
@@ -44691,7 +44566,7 @@ static int hf_062_V1_18_270_ORIENTATION;
static const FieldPart I062_V1_18_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_062_V1_18_270_ORIENTATION, NULL };
static int hf_062_V1_18_270_WIDTH;
static const FieldPart I062_V1_18_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_18_270_WIDTH, NULL };
-static const FieldPart *I062_V1_18_270_PARTS[] = {
+static const FieldPart * const I062_V1_18_270_PARTS[] = {
&I062_V1_18_270_LENGTH,
&IXXX_FX,
&I062_V1_18_270_ORIENTATION,
@@ -44705,7 +44580,7 @@ static int hf_062_V1_18_290;
static int hf_062_V1_18_290_TRK;
static int hf_062_V1_18_290_TRK_VALUE;
static const FieldPart I062_V1_18_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_TRK_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_TRK_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_TRK_PARTS[] = {
&I062_V1_18_290_TRK_VALUE,
NULL
};
@@ -44713,7 +44588,7 @@ static const AsterixField I062_V1_18_290_TRK = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_PSR;
static int hf_062_V1_18_290_PSR_VALUE;
static const FieldPart I062_V1_18_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_PSR_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_PSR_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_PSR_PARTS[] = {
&I062_V1_18_290_PSR_VALUE,
NULL
};
@@ -44721,7 +44596,7 @@ static const AsterixField I062_V1_18_290_PSR = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_SSR;
static int hf_062_V1_18_290_SSR_VALUE;
static const FieldPart I062_V1_18_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_SSR_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_SSR_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_SSR_PARTS[] = {
&I062_V1_18_290_SSR_VALUE,
NULL
};
@@ -44729,7 +44604,7 @@ static const AsterixField I062_V1_18_290_SSR = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_MDS;
static int hf_062_V1_18_290_MDS_VALUE;
static const FieldPart I062_V1_18_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_MDS_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_MDS_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_MDS_PARTS[] = {
&I062_V1_18_290_MDS_VALUE,
NULL
};
@@ -44737,7 +44612,7 @@ static const AsterixField I062_V1_18_290_MDS = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_ADS;
static int hf_062_V1_18_290_ADS_VALUE;
static const FieldPart I062_V1_18_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_ADS_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_ADS_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_ADS_PARTS[] = {
&I062_V1_18_290_ADS_VALUE,
NULL
};
@@ -44745,7 +44620,7 @@ static const AsterixField I062_V1_18_290_ADS = { FIXED, 2, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_ES;
static int hf_062_V1_18_290_ES_VALUE;
static const FieldPart I062_V1_18_290_ES_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_ES_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_ES_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_ES_PARTS[] = {
&I062_V1_18_290_ES_VALUE,
NULL
};
@@ -44753,7 +44628,7 @@ static const AsterixField I062_V1_18_290_ES = { FIXED, 1, 0, 0, &hf_062_V1_18_29
static int hf_062_V1_18_290_VDL;
static int hf_062_V1_18_290_VDL_VALUE;
static const FieldPart I062_V1_18_290_VDL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_VDL_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_VDL_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_VDL_PARTS[] = {
&I062_V1_18_290_VDL_VALUE,
NULL
};
@@ -44761,7 +44636,7 @@ static const AsterixField I062_V1_18_290_VDL = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_UAT;
static int hf_062_V1_18_290_UAT_VALUE;
static const FieldPart I062_V1_18_290_UAT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_UAT_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_UAT_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_UAT_PARTS[] = {
&I062_V1_18_290_UAT_VALUE,
NULL
};
@@ -44769,7 +44644,7 @@ static const AsterixField I062_V1_18_290_UAT = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_LOP;
static int hf_062_V1_18_290_LOP_VALUE;
static const FieldPart I062_V1_18_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_LOP_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_LOP_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_LOP_PARTS[] = {
&I062_V1_18_290_LOP_VALUE,
NULL
};
@@ -44777,7 +44652,7 @@ static const AsterixField I062_V1_18_290_LOP = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_290_MLT;
static int hf_062_V1_18_290_MLT_VALUE;
static const FieldPart I062_V1_18_290_MLT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_290_MLT_VALUE, NULL };
-static const FieldPart *I062_V1_18_290_MLT_PARTS[] = {
+static const FieldPart * const I062_V1_18_290_MLT_PARTS[] = {
&I062_V1_18_290_MLT_VALUE,
NULL
};
@@ -44787,7 +44662,7 @@ static int hf_062_V1_18_295;
static int hf_062_V1_18_295_MFL;
static int hf_062_V1_18_295_MFL_VALUE;
static const FieldPart I062_V1_18_295_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MFL_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MFL_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MFL_PARTS[] = {
&I062_V1_18_295_MFL_VALUE,
NULL
};
@@ -44795,7 +44670,7 @@ static const AsterixField I062_V1_18_295_MFL = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MD1;
static int hf_062_V1_18_295_MD1_VALUE;
static const FieldPart I062_V1_18_295_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MD1_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MD1_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MD1_PARTS[] = {
&I062_V1_18_295_MD1_VALUE,
NULL
};
@@ -44803,7 +44678,7 @@ static const AsterixField I062_V1_18_295_MD1 = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MD2;
static int hf_062_V1_18_295_MD2_VALUE;
static const FieldPart I062_V1_18_295_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MD2_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MD2_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MD2_PARTS[] = {
&I062_V1_18_295_MD2_VALUE,
NULL
};
@@ -44811,7 +44686,7 @@ static const AsterixField I062_V1_18_295_MD2 = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MDA;
static int hf_062_V1_18_295_MDA_VALUE;
static const FieldPart I062_V1_18_295_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MDA_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MDA_PARTS[] = {
&I062_V1_18_295_MDA_VALUE,
NULL
};
@@ -44819,7 +44694,7 @@ static const AsterixField I062_V1_18_295_MDA = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MD4;
static int hf_062_V1_18_295_MD4_VALUE;
static const FieldPart I062_V1_18_295_MD4_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MD4_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MD4_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MD4_PARTS[] = {
&I062_V1_18_295_MD4_VALUE,
NULL
};
@@ -44827,7 +44702,7 @@ static const AsterixField I062_V1_18_295_MD4 = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MD5;
static int hf_062_V1_18_295_MD5_VALUE;
static const FieldPart I062_V1_18_295_MD5_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MD5_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MD5_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MD5_PARTS[] = {
&I062_V1_18_295_MD5_VALUE,
NULL
};
@@ -44835,7 +44710,7 @@ static const AsterixField I062_V1_18_295_MD5 = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MHG;
static int hf_062_V1_18_295_MHG_VALUE;
static const FieldPart I062_V1_18_295_MHG_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MHG_PARTS[] = {
&I062_V1_18_295_MHG_VALUE,
NULL
};
@@ -44843,7 +44718,7 @@ static const AsterixField I062_V1_18_295_MHG = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_IAS;
static int hf_062_V1_18_295_IAS_VALUE;
static const FieldPart I062_V1_18_295_IAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_IAS_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_IAS_PARTS[] = {
&I062_V1_18_295_IAS_VALUE,
NULL
};
@@ -44851,7 +44726,7 @@ static const AsterixField I062_V1_18_295_IAS = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_TAS;
static int hf_062_V1_18_295_TAS_VALUE;
static const FieldPart I062_V1_18_295_TAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_TAS_PARTS[] = {
&I062_V1_18_295_TAS_VALUE,
NULL
};
@@ -44859,7 +44734,7 @@ static const AsterixField I062_V1_18_295_TAS = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_SAL;
static int hf_062_V1_18_295_SAL_VALUE;
static const FieldPart I062_V1_18_295_SAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_SAL_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_SAL_PARTS[] = {
&I062_V1_18_295_SAL_VALUE,
NULL
};
@@ -44867,7 +44742,7 @@ static const AsterixField I062_V1_18_295_SAL = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_FSS;
static int hf_062_V1_18_295_FSS_VALUE;
static const FieldPart I062_V1_18_295_FSS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_FSS_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_FSS_PARTS[] = {
&I062_V1_18_295_FSS_VALUE,
NULL
};
@@ -44875,7 +44750,7 @@ static const AsterixField I062_V1_18_295_FSS = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_TID;
static int hf_062_V1_18_295_TID_VALUE;
static const FieldPart I062_V1_18_295_TID_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_TID_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_TID_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_TID_PARTS[] = {
&I062_V1_18_295_TID_VALUE,
NULL
};
@@ -44883,7 +44758,7 @@ static const AsterixField I062_V1_18_295_TID = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_COM;
static int hf_062_V1_18_295_COM_VALUE;
static const FieldPart I062_V1_18_295_COM_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_COM_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_COM_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_COM_PARTS[] = {
&I062_V1_18_295_COM_VALUE,
NULL
};
@@ -44891,7 +44766,7 @@ static const AsterixField I062_V1_18_295_COM = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_SAB;
static int hf_062_V1_18_295_SAB_VALUE;
static const FieldPart I062_V1_18_295_SAB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_SAB_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_SAB_PARTS[] = {
&I062_V1_18_295_SAB_VALUE,
NULL
};
@@ -44899,7 +44774,7 @@ static const AsterixField I062_V1_18_295_SAB = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_ACS;
static int hf_062_V1_18_295_ACS_VALUE;
static const FieldPart I062_V1_18_295_ACS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_ACS_PARTS[] = {
&I062_V1_18_295_ACS_VALUE,
NULL
};
@@ -44907,7 +44782,7 @@ static const AsterixField I062_V1_18_295_ACS = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_BVR;
static int hf_062_V1_18_295_BVR_VALUE;
static const FieldPart I062_V1_18_295_BVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_BVR_PARTS[] = {
&I062_V1_18_295_BVR_VALUE,
NULL
};
@@ -44915,7 +44790,7 @@ static const AsterixField I062_V1_18_295_BVR = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_GVR;
static int hf_062_V1_18_295_GVR_VALUE;
static const FieldPart I062_V1_18_295_GVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_GVR_PARTS[] = {
&I062_V1_18_295_GVR_VALUE,
NULL
};
@@ -44923,7 +44798,7 @@ static const AsterixField I062_V1_18_295_GVR = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_RAN;
static int hf_062_V1_18_295_RAN_VALUE;
static const FieldPart I062_V1_18_295_RAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_RAN_PARTS[] = {
&I062_V1_18_295_RAN_VALUE,
NULL
};
@@ -44931,7 +44806,7 @@ static const AsterixField I062_V1_18_295_RAN = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_TAR;
static int hf_062_V1_18_295_TAR_VALUE;
static const FieldPart I062_V1_18_295_TAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_TAR_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_TAR_PARTS[] = {
&I062_V1_18_295_TAR_VALUE,
NULL
};
@@ -44939,7 +44814,7 @@ static const AsterixField I062_V1_18_295_TAR = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_TAN;
static int hf_062_V1_18_295_TAN_VALUE;
static const FieldPart I062_V1_18_295_TAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_TAN_PARTS[] = {
&I062_V1_18_295_TAN_VALUE,
NULL
};
@@ -44947,7 +44822,7 @@ static const AsterixField I062_V1_18_295_TAN = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_GSP;
static int hf_062_V1_18_295_GSP_VALUE;
static const FieldPart I062_V1_18_295_GSP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_GSP_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_GSP_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_GSP_PARTS[] = {
&I062_V1_18_295_GSP_VALUE,
NULL
};
@@ -44955,7 +44830,7 @@ static const AsterixField I062_V1_18_295_GSP = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_VUN;
static int hf_062_V1_18_295_VUN_VALUE;
static const FieldPart I062_V1_18_295_VUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_VUN_PARTS[] = {
&I062_V1_18_295_VUN_VALUE,
NULL
};
@@ -44963,7 +44838,7 @@ static const AsterixField I062_V1_18_295_VUN = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MET;
static int hf_062_V1_18_295_MET_VALUE;
static const FieldPart I062_V1_18_295_MET_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MET_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MET_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MET_PARTS[] = {
&I062_V1_18_295_MET_VALUE,
NULL
};
@@ -44971,7 +44846,7 @@ static const AsterixField I062_V1_18_295_MET = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_EMC;
static int hf_062_V1_18_295_EMC_VALUE;
static const FieldPart I062_V1_18_295_EMC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_EMC_PARTS[] = {
&I062_V1_18_295_EMC_VALUE,
NULL
};
@@ -44979,7 +44854,7 @@ static const AsterixField I062_V1_18_295_EMC = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_POS;
static int hf_062_V1_18_295_POS_VALUE;
static const FieldPart I062_V1_18_295_POS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_POS_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_POS_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_POS_PARTS[] = {
&I062_V1_18_295_POS_VALUE,
NULL
};
@@ -44987,7 +44862,7 @@ static const AsterixField I062_V1_18_295_POS = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_GAL;
static int hf_062_V1_18_295_GAL_VALUE;
static const FieldPart I062_V1_18_295_GAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_GAL_PARTS[] = {
&I062_V1_18_295_GAL_VALUE,
NULL
};
@@ -44995,7 +44870,7 @@ static const AsterixField I062_V1_18_295_GAL = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_PUN;
static int hf_062_V1_18_295_PUN_VALUE;
static const FieldPart I062_V1_18_295_PUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_PUN_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_PUN_PARTS[] = {
&I062_V1_18_295_PUN_VALUE,
NULL
};
@@ -45003,7 +44878,7 @@ static const AsterixField I062_V1_18_295_PUN = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MB;
static int hf_062_V1_18_295_MB_VALUE;
static const FieldPart I062_V1_18_295_MB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MB_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MB_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MB_PARTS[] = {
&I062_V1_18_295_MB_VALUE,
NULL
};
@@ -45011,7 +44886,7 @@ static const AsterixField I062_V1_18_295_MB = { FIXED, 1, 0, 0, &hf_062_V1_18_29
static int hf_062_V1_18_295_IAR;
static int hf_062_V1_18_295_IAR_VALUE;
static const FieldPart I062_V1_18_295_IAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_IAR_PARTS[] = {
&I062_V1_18_295_IAR_VALUE,
NULL
};
@@ -45019,7 +44894,7 @@ static const AsterixField I062_V1_18_295_IAR = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_MAC;
static int hf_062_V1_18_295_MAC_VALUE;
static const FieldPart I062_V1_18_295_MAC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_MAC_PARTS[] = {
&I062_V1_18_295_MAC_VALUE,
NULL
};
@@ -45027,7 +44902,7 @@ static const AsterixField I062_V1_18_295_MAC = { FIXED, 1, 0, 0, &hf_062_V1_18_2
static int hf_062_V1_18_295_BPS;
static int hf_062_V1_18_295_BPS_VALUE;
static const FieldPart I062_V1_18_295_BPS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_295_BPS_VALUE, NULL };
-static const FieldPart *I062_V1_18_295_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_18_295_BPS_PARTS[] = {
&I062_V1_18_295_BPS_VALUE,
NULL
};
@@ -45056,7 +44931,7 @@ static const value_string valstr_062_V1_18_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_18_300_VALUE, NULL };
-static const FieldPart *I062_V1_18_300_PARTS[] = {
+static const FieldPart * const I062_V1_18_300_PARTS[] = {
&I062_V1_18_300_VALUE,
NULL
};
@@ -45067,7 +44942,7 @@ static int hf_062_V1_18_340_SID_SAC;
static const FieldPart I062_V1_18_340_SID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_340_SID_SAC, NULL };
static int hf_062_V1_18_340_SID_SIC;
static const FieldPart I062_V1_18_340_SID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_340_SID_SIC, NULL };
-static const FieldPart *I062_V1_18_340_SID_PARTS[] = {
+static const FieldPart * const I062_V1_18_340_SID_PARTS[] = {
&I062_V1_18_340_SID_SAC,
&I062_V1_18_340_SID_SIC,
NULL
@@ -45078,7 +44953,7 @@ static int hf_062_V1_18_340_POS_RHO;
static const FieldPart I062_V1_18_340_POS_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_062_V1_18_340_POS_RHO, NULL };
static int hf_062_V1_18_340_POS_THETA;
static const FieldPart I062_V1_18_340_POS_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_18_340_POS_THETA, NULL };
-static const FieldPart *I062_V1_18_340_POS_PARTS[] = {
+static const FieldPart * const I062_V1_18_340_POS_PARTS[] = {
&I062_V1_18_340_POS_RHO,
&I062_V1_18_340_POS_THETA,
NULL
@@ -45087,7 +44962,7 @@ static const AsterixField I062_V1_18_340_POS = { FIXED, 4, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_340_HEIGHT;
static int hf_062_V1_18_340_HEIGHT_VALUE;
static const FieldPart I062_V1_18_340_HEIGHT_VALUE = { 16, 25.0, FIELD_PART_UFLOAT, &hf_062_V1_18_340_HEIGHT_VALUE, NULL };
-static const FieldPart *I062_V1_18_340_HEIGHT_PARTS[] = {
+static const FieldPart * const I062_V1_18_340_HEIGHT_PARTS[] = {
&I062_V1_18_340_HEIGHT_VALUE,
NULL
};
@@ -45109,7 +44984,7 @@ static const value_string valstr_062_V1_18_340_MDC_G[] = {
static const FieldPart I062_V1_18_340_MDC_G = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_340_MDC_G, NULL };
static int hf_062_V1_18_340_MDC_LMC;
static const FieldPart I062_V1_18_340_MDC_LMC = { 14, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_340_MDC_LMC, NULL };
-static const FieldPart *I062_V1_18_340_MDC_PARTS[] = {
+static const FieldPart * const I062_V1_18_340_MDC_PARTS[] = {
&I062_V1_18_340_MDC_V,
&I062_V1_18_340_MDC_G,
&I062_V1_18_340_MDC_LMC,
@@ -45140,7 +45015,7 @@ static const value_string valstr_062_V1_18_340_MDA_L[] = {
static const FieldPart I062_V1_18_340_MDA_L = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_340_MDA_L, NULL };
static int hf_062_V1_18_340_MDA_MODE3A;
static const FieldPart I062_V1_18_340_MDA_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_18_340_MDA_MODE3A, NULL };
-static const FieldPart *I062_V1_18_340_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_18_340_MDA_PARTS[] = {
&I062_V1_18_340_MDA_V,
&I062_V1_18_340_MDA_G,
&I062_V1_18_340_MDA_L,
@@ -45184,7 +45059,7 @@ static const value_string valstr_062_V1_18_340_TYP_TST[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_340_TYP_TST = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_340_TYP_TST, NULL };
-static const FieldPart *I062_V1_18_340_TYP_PARTS[] = {
+static const FieldPart * const I062_V1_18_340_TYP_PARTS[] = {
&I062_V1_18_340_TYP_TYP,
&I062_V1_18_340_TYP_SIM,
&I062_V1_18_340_TYP_RAB,
@@ -45198,7 +45073,7 @@ static int hf_062_V1_18_380;
static int hf_062_V1_18_380_ADR;
static int hf_062_V1_18_380_ADR_VALUE;
static const FieldPart I062_V1_18_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_ADR_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_ADR_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_ADR_PARTS[] = {
&I062_V1_18_380_ADR_VALUE,
NULL
};
@@ -45206,7 +45081,7 @@ static const AsterixField I062_V1_18_380_ADR = { FIXED, 3, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_ID;
static int hf_062_V1_18_380_ID_VALUE;
static const FieldPart I062_V1_18_380_ID_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_18_380_ID_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_ID_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_ID_PARTS[] = {
&I062_V1_18_380_ID_VALUE,
NULL
};
@@ -45214,7 +45089,7 @@ static const AsterixField I062_V1_18_380_ID = { FIXED, 6, 0, 0, &hf_062_V1_18_38
static int hf_062_V1_18_380_MHG;
static int hf_062_V1_18_380_MHG_VALUE;
static const FieldPart I062_V1_18_380_MHG_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_18_380_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_MHG_PARTS[] = {
&I062_V1_18_380_MHG_VALUE,
NULL
};
@@ -45229,7 +45104,7 @@ static const value_string valstr_062_V1_18_380_IAS_IM[] = {
static const FieldPart I062_V1_18_380_IAS_IM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_IAS_IM, NULL };
static int hf_062_V1_18_380_IAS_IAS;
static const FieldPart I062_V1_18_380_IAS_IAS = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_IAS_IAS, NULL };
-static const FieldPart *I062_V1_18_380_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_IAS_PARTS[] = {
&I062_V1_18_380_IAS_IM,
&I062_V1_18_380_IAS_IAS,
NULL
@@ -45238,7 +45113,7 @@ static const AsterixField I062_V1_18_380_IAS = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_TAS;
static int hf_062_V1_18_380_TAS_VALUE;
static const FieldPart I062_V1_18_380_TAS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_18_380_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_TAS_PARTS[] = {
&I062_V1_18_380_TAS_VALUE,
NULL
};
@@ -45262,7 +45137,7 @@ static const value_string valstr_062_V1_18_380_SAL_SRC[] = {
static const FieldPart I062_V1_18_380_SAL_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_SAL_SRC, NULL };
static int hf_062_V1_18_380_SAL_ALT;
static const FieldPart I062_V1_18_380_SAL_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_18_380_SAL_ALT, NULL };
-static const FieldPart *I062_V1_18_380_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_SAL_PARTS[] = {
&I062_V1_18_380_SAL_SAS,
&I062_V1_18_380_SAL_SRC,
&I062_V1_18_380_SAL_ALT,
@@ -45293,7 +45168,7 @@ static const value_string valstr_062_V1_18_380_FSS_AM[] = {
static const FieldPart I062_V1_18_380_FSS_AM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_FSS_AM, NULL };
static int hf_062_V1_18_380_FSS_ALT;
static const FieldPart I062_V1_18_380_FSS_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_18_380_FSS_ALT, NULL };
-static const FieldPart *I062_V1_18_380_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_FSS_PARTS[] = {
&I062_V1_18_380_FSS_MV,
&I062_V1_18_380_FSS_AH,
&I062_V1_18_380_FSS_AM,
@@ -45316,7 +45191,7 @@ static const value_string valstr_062_V1_18_380_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_380_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_TIS_NVB, NULL };
-static const FieldPart *I062_V1_18_380_TIS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_TIS_PARTS[] = {
&I062_V1_18_380_TIS_NAV,
&I062_V1_18_380_TIS_NVB,
&IXXX_5bit_spare,
@@ -45391,7 +45266,7 @@ static int hf_062_V1_18_380_TID_TOV;
static const FieldPart I062_V1_18_380_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_18_380_TID_TOV, NULL };
static int hf_062_V1_18_380_TID_TTR;
static const FieldPart I062_V1_18_380_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_062_V1_18_380_TID_TTR, NULL };
-static const FieldPart *I062_V1_18_380_TID_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_TID_PARTS[] = {
&I062_V1_18_380_TID_TCA,
&I062_V1_18_380_TID_NC,
&I062_V1_18_380_TID_TCPN,
@@ -45459,7 +45334,7 @@ static int hf_062_V1_18_380_COM_B1A;
static const FieldPart I062_V1_18_380_COM_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_COM_B1A, NULL };
static int hf_062_V1_18_380_COM_B1B;
static const FieldPart I062_V1_18_380_COM_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_COM_B1B, NULL };
-static const FieldPart *I062_V1_18_380_COM_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_COM_PARTS[] = {
&I062_V1_18_380_COM_COM,
&I062_V1_18_380_COM_STAT,
&IXXX_2bit_spare,
@@ -45519,7 +45394,7 @@ static const value_string valstr_062_V1_18_380_SAB_STAT[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_380_SAB_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_SAB_STAT, NULL };
-static const FieldPart *I062_V1_18_380_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_SAB_PARTS[] = {
&I062_V1_18_380_SAB_AC,
&I062_V1_18_380_SAB_MN,
&I062_V1_18_380_SAB_DC,
@@ -45532,7 +45407,7 @@ static const AsterixField I062_V1_18_380_SAB = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_ACS;
static int hf_062_V1_18_380_ACS_VALUE;
static const FieldPart I062_V1_18_380_ACS_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_ACS_PARTS[] = {
&I062_V1_18_380_ACS_VALUE,
NULL
};
@@ -45540,7 +45415,7 @@ static const AsterixField I062_V1_18_380_ACS = { FIXED, 7, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_BVR;
static int hf_062_V1_18_380_BVR_VALUE;
static const FieldPart I062_V1_18_380_BVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_18_380_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_BVR_PARTS[] = {
&I062_V1_18_380_BVR_VALUE,
NULL
};
@@ -45548,7 +45423,7 @@ static const AsterixField I062_V1_18_380_BVR = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_GVR;
static int hf_062_V1_18_380_GVR_VALUE;
static const FieldPart I062_V1_18_380_GVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_18_380_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_GVR_PARTS[] = {
&I062_V1_18_380_GVR_VALUE,
NULL
};
@@ -45556,7 +45431,7 @@ static const AsterixField I062_V1_18_380_GVR = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_RAN;
static int hf_062_V1_18_380_RAN_VALUE;
static const FieldPart I062_V1_18_380_RAN_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_062_V1_18_380_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_RAN_PARTS[] = {
&I062_V1_18_380_RAN_VALUE,
NULL
};
@@ -45573,7 +45448,7 @@ static const value_string valstr_062_V1_18_380_TAR_TI[] = {
static const FieldPart I062_V1_18_380_TAR_TI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_TAR_TI, NULL };
static int hf_062_V1_18_380_TAR_ROT;
static const FieldPart I062_V1_18_380_TAR_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_380_TAR_ROT, NULL };
-static const FieldPart *I062_V1_18_380_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_TAR_PARTS[] = {
&I062_V1_18_380_TAR_TI,
&IXXX_6bit_spare,
&I062_V1_18_380_TAR_ROT,
@@ -45584,7 +45459,7 @@ static const AsterixField I062_V1_18_380_TAR = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_TAN;
static int hf_062_V1_18_380_TAN_VALUE;
static const FieldPart I062_V1_18_380_TAN_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_18_380_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_TAN_PARTS[] = {
&I062_V1_18_380_TAN_VALUE,
NULL
};
@@ -45592,7 +45467,7 @@ static const AsterixField I062_V1_18_380_TAN = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_GS;
static int hf_062_V1_18_380_GS_VALUE;
static const FieldPart I062_V1_18_380_GS_VALUE = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_062_V1_18_380_GS_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_GS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_GS_PARTS[] = {
&I062_V1_18_380_GS_VALUE,
NULL
};
@@ -45600,7 +45475,7 @@ static const AsterixField I062_V1_18_380_GS = { FIXED, 2, 0, 0, &hf_062_V1_18_38
static int hf_062_V1_18_380_VUN;
static int hf_062_V1_18_380_VUN_VALUE;
static const FieldPart I062_V1_18_380_VUN_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_VUN_PARTS[] = {
&I062_V1_18_380_VUN_VALUE,
NULL
};
@@ -45642,7 +45517,7 @@ static int hf_062_V1_18_380_MET_TMPD;
static const FieldPart I062_V1_18_380_MET_TMPD = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_18_380_MET_TMPD, NULL };
static int hf_062_V1_18_380_MET_TRBD;
static const FieldPart I062_V1_18_380_MET_TRBD = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_MET_TRBD, NULL };
-static const FieldPart *I062_V1_18_380_MET_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_MET_PARTS[] = {
&I062_V1_18_380_MET_WS,
&I062_V1_18_380_MET_WD,
&I062_V1_18_380_MET_TMP,
@@ -45685,7 +45560,7 @@ static const value_string valstr_062_V1_18_380_EMC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_380_EMC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_18_380_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_EMC_PARTS[] = {
&I062_V1_18_380_EMC_VALUE,
NULL
};
@@ -45695,7 +45570,7 @@ static int hf_062_V1_18_380_POS_LAT;
static const FieldPart I062_V1_18_380_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_18_380_POS_LAT, NULL };
static int hf_062_V1_18_380_POS_LON;
static const FieldPart I062_V1_18_380_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_18_380_POS_LON, NULL };
-static const FieldPart *I062_V1_18_380_POS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_POS_PARTS[] = {
&I062_V1_18_380_POS_LAT,
&I062_V1_18_380_POS_LON,
NULL
@@ -45704,7 +45579,7 @@ static const AsterixField I062_V1_18_380_POS = { FIXED, 6, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_GAL;
static int hf_062_V1_18_380_GAL_VALUE;
static const FieldPart I062_V1_18_380_GAL_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_18_380_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_GAL_PARTS[] = {
&I062_V1_18_380_GAL_VALUE,
NULL
};
@@ -45712,7 +45587,7 @@ static const AsterixField I062_V1_18_380_GAL = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_PUN;
static int hf_062_V1_18_380_PUN_PUN;
static const FieldPart I062_V1_18_380_PUN_PUN = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_PUN_PUN, NULL };
-static const FieldPart *I062_V1_18_380_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_PUN_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_18_380_PUN_PUN,
NULL
@@ -45721,7 +45596,7 @@ static const AsterixField I062_V1_18_380_PUN = { FIXED, 1, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_MB;
static int hf_062_V1_18_380_MB_VALUE;
static const FieldPart I062_V1_18_380_MB_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_062_V1_18_380_MB_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_MB_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_MB_PARTS[] = {
&I062_V1_18_380_MB_VALUE,
NULL
};
@@ -45729,7 +45604,7 @@ static const AsterixField I062_V1_18_380_MB = { REPETITIVE, 8, 1, 0, &hf_062_V1_
static int hf_062_V1_18_380_IAR;
static int hf_062_V1_18_380_IAR_VALUE;
static const FieldPart I062_V1_18_380_IAR_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_18_380_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_IAR_PARTS[] = {
&I062_V1_18_380_IAR_VALUE,
NULL
};
@@ -45737,7 +45612,7 @@ static const AsterixField I062_V1_18_380_IAR = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_MAC;
static int hf_062_V1_18_380_MAC_VALUE;
static const FieldPart I062_V1_18_380_MAC_VALUE = { 16, 0.008, FIELD_PART_UFLOAT, &hf_062_V1_18_380_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_18_380_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_MAC_PARTS[] = {
&I062_V1_18_380_MAC_VALUE,
NULL
};
@@ -45745,7 +45620,7 @@ static const AsterixField I062_V1_18_380_MAC = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_380_BPS;
static int hf_062_V1_18_380_BPS_BPS;
static const FieldPart I062_V1_18_380_BPS_BPS = { 12, 0.1, FIELD_PART_UFLOAT, &hf_062_V1_18_380_BPS_BPS, NULL };
-static const FieldPart *I062_V1_18_380_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_18_380_BPS_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_18_380_BPS_BPS,
NULL
@@ -45758,7 +45633,7 @@ static int hf_062_V1_18_390_TAG_SAC;
static const FieldPart I062_V1_18_390_TAG_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_390_TAG_SAC, NULL };
static int hf_062_V1_18_390_TAG_SIC;
static const FieldPart I062_V1_18_390_TAG_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_390_TAG_SIC, NULL };
-static const FieldPart *I062_V1_18_390_TAG_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_TAG_PARTS[] = {
&I062_V1_18_390_TAG_SAC,
&I062_V1_18_390_TAG_SIC,
NULL
@@ -45767,7 +45642,7 @@ static const AsterixField I062_V1_18_390_TAG = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_CS;
static int hf_062_V1_18_390_CS_VALUE;
static const FieldPart I062_V1_18_390_CS_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_CS_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_CS_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_CS_PARTS[] = {
&I062_V1_18_390_CS_VALUE,
NULL
};
@@ -45784,7 +45659,7 @@ static const value_string valstr_062_V1_18_390_IFI_TYP[] = {
static const FieldPart I062_V1_18_390_IFI_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_18_390_IFI_TYP, NULL };
static int hf_062_V1_18_390_IFI_NBR;
static const FieldPart I062_V1_18_390_IFI_NBR = { 27, 1.0, FIELD_PART_UINT, &hf_062_V1_18_390_IFI_NBR, NULL };
-static const FieldPart *I062_V1_18_390_IFI_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_IFI_PARTS[] = {
&I062_V1_18_390_IFI_TYP,
&IXXX_3bit_spare,
&I062_V1_18_390_IFI_NBR,
@@ -45826,7 +45701,7 @@ static const value_string valstr_062_V1_18_390_FCT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_390_FCT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_390_FCT_HPR, NULL };
-static const FieldPart *I062_V1_18_390_FCT_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_FCT_PARTS[] = {
&I062_V1_18_390_FCT_GATOAT,
&I062_V1_18_390_FCT_FR1FR2,
&I062_V1_18_390_FCT_RVSM,
@@ -45838,7 +45713,7 @@ static const AsterixField I062_V1_18_390_FCT = { FIXED, 1, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_TAC;
static int hf_062_V1_18_390_TAC_VALUE;
static const FieldPart I062_V1_18_390_TAC_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_TAC_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_TAC_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_TAC_PARTS[] = {
&I062_V1_18_390_TAC_VALUE,
NULL
};
@@ -45846,7 +45721,7 @@ static const AsterixField I062_V1_18_390_TAC = { FIXED, 4, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_WTC;
static int hf_062_V1_18_390_WTC_VALUE;
static const FieldPart I062_V1_18_390_WTC_VALUE = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_WTC_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_WTC_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_WTC_PARTS[] = {
&I062_V1_18_390_WTC_VALUE,
NULL
};
@@ -45854,7 +45729,7 @@ static const AsterixField I062_V1_18_390_WTC = { FIXED, 1, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_DEP;
static int hf_062_V1_18_390_DEP_VALUE;
static const FieldPart I062_V1_18_390_DEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_DEP_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_DEP_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_DEP_PARTS[] = {
&I062_V1_18_390_DEP_VALUE,
NULL
};
@@ -45862,7 +45737,7 @@ static const AsterixField I062_V1_18_390_DEP = { FIXED, 4, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_DST;
static int hf_062_V1_18_390_DST_VALUE;
static const FieldPart I062_V1_18_390_DST_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_DST_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_DST_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_DST_PARTS[] = {
&I062_V1_18_390_DST_VALUE,
NULL
};
@@ -45874,7 +45749,7 @@ static int hf_062_V1_18_390_RDS_NU2;
static const FieldPart I062_V1_18_390_RDS_NU2 = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_RDS_NU2, NULL };
static int hf_062_V1_18_390_RDS_LTR;
static const FieldPart I062_V1_18_390_RDS_LTR = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_RDS_LTR, NULL };
-static const FieldPart *I062_V1_18_390_RDS_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_RDS_PARTS[] = {
&I062_V1_18_390_RDS_NU1,
&I062_V1_18_390_RDS_NU2,
&I062_V1_18_390_RDS_LTR,
@@ -45884,7 +45759,7 @@ static const AsterixField I062_V1_18_390_RDS = { FIXED, 3, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_CFL;
static int hf_062_V1_18_390_CFL_VALUE;
static const FieldPart I062_V1_18_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_390_CFL_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_CFL_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_CFL_PARTS[] = {
&I062_V1_18_390_CFL_VALUE,
NULL
};
@@ -45894,7 +45769,7 @@ static int hf_062_V1_18_390_CTL_CENTRE;
static const FieldPart I062_V1_18_390_CTL_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_390_CTL_CENTRE, NULL };
static int hf_062_V1_18_390_CTL_POSITION;
static const FieldPart I062_V1_18_390_CTL_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_390_CTL_POSITION, NULL };
-static const FieldPart *I062_V1_18_390_CTL_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_CTL_PARTS[] = {
&I062_V1_18_390_CTL_CENTRE,
&I062_V1_18_390_CTL_POSITION,
NULL
@@ -45942,7 +45817,7 @@ static const value_string valstr_062_V1_18_390_TOD_AVS[] = {
static const FieldPart I062_V1_18_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_390_TOD_AVS, NULL };
static int hf_062_V1_18_390_TOD_SEC;
static const FieldPart I062_V1_18_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_062_V1_18_390_TOD_SEC, NULL };
-static const FieldPart *I062_V1_18_390_TOD_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_TOD_PARTS[] = {
&I062_V1_18_390_TOD_TYP,
&I062_V1_18_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -45958,7 +45833,7 @@ static const AsterixField I062_V1_18_390_TOD = { REPETITIVE, 4, 1, 0, &hf_062_V1
static int hf_062_V1_18_390_AST;
static int hf_062_V1_18_390_AST_VALUE;
static const FieldPart I062_V1_18_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_AST_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_AST_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_AST_PARTS[] = {
&I062_V1_18_390_AST_VALUE,
NULL
};
@@ -45982,7 +45857,7 @@ static const value_string valstr_062_V1_18_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_18_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_18_390_STS_AVL, NULL };
-static const FieldPart *I062_V1_18_390_STS_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_STS_PARTS[] = {
&I062_V1_18_390_STS_EMP,
&I062_V1_18_390_STS_AVL,
&IXXX_4bit_spare,
@@ -45992,7 +45867,7 @@ static const AsterixField I062_V1_18_390_STS = { FIXED, 1, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_STD;
static int hf_062_V1_18_390_STD_VALUE;
static const FieldPart I062_V1_18_390_STD_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_STD_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_STD_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_STD_PARTS[] = {
&I062_V1_18_390_STD_VALUE,
NULL
};
@@ -46000,7 +45875,7 @@ static const AsterixField I062_V1_18_390_STD = { FIXED, 7, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_STA;
static int hf_062_V1_18_390_STA_VALUE;
static const FieldPart I062_V1_18_390_STA_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_STA_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_STA_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_STA_PARTS[] = {
&I062_V1_18_390_STA_VALUE,
NULL
};
@@ -46015,7 +45890,7 @@ static const value_string valstr_062_V1_18_390_PEM_VA[] = {
static const FieldPart I062_V1_18_390_PEM_VA = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_18_390_PEM_VA, NULL };
static int hf_062_V1_18_390_PEM_MODE3A;
static const FieldPart I062_V1_18_390_PEM_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_18_390_PEM_MODE3A, NULL };
-static const FieldPart *I062_V1_18_390_PEM_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_PEM_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_18_390_PEM_VA,
&I062_V1_18_390_PEM_MODE3A,
@@ -46025,7 +45900,7 @@ static const AsterixField I062_V1_18_390_PEM = { FIXED, 2, 0, 0, &hf_062_V1_18_3
static int hf_062_V1_18_390_PEC;
static int hf_062_V1_18_390_PEC_VALUE;
static const FieldPart I062_V1_18_390_PEC_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_18_390_PEC_VALUE, NULL };
-static const FieldPart *I062_V1_18_390_PEC_PARTS[] = {
+static const FieldPart * const I062_V1_18_390_PEC_PARTS[] = {
&I062_V1_18_390_PEC_VALUE,
NULL
};
@@ -46037,7 +45912,7 @@ static int hf_062_V1_18_500_APC_X;
static const FieldPart I062_V1_18_500_APC_X = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_18_500_APC_X, NULL };
static int hf_062_V1_18_500_APC_Y;
static const FieldPart I062_V1_18_500_APC_Y = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_18_500_APC_Y, NULL };
-static const FieldPart *I062_V1_18_500_APC_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_APC_PARTS[] = {
&I062_V1_18_500_APC_X,
&I062_V1_18_500_APC_Y,
NULL
@@ -46046,7 +45921,7 @@ static const AsterixField I062_V1_18_500_APC = { FIXED, 4, 0, 0, &hf_062_V1_18_5
static int hf_062_V1_18_500_COV;
static int hf_062_V1_18_500_COV_VALUE;
static const FieldPart I062_V1_18_500_COV_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_062_V1_18_500_COV_VALUE, NULL };
-static const FieldPart *I062_V1_18_500_COV_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_COV_PARTS[] = {
&I062_V1_18_500_COV_VALUE,
NULL
};
@@ -46056,7 +45931,7 @@ static int hf_062_V1_18_500_APW_LAT;
static const FieldPart I062_V1_18_500_APW_LAT = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_18_500_APW_LAT, NULL };
static int hf_062_V1_18_500_APW_LON;
static const FieldPart I062_V1_18_500_APW_LON = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_18_500_APW_LON, NULL };
-static const FieldPart *I062_V1_18_500_APW_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_APW_PARTS[] = {
&I062_V1_18_500_APW_LAT,
&I062_V1_18_500_APW_LON,
NULL
@@ -46065,7 +45940,7 @@ static const AsterixField I062_V1_18_500_APW = { FIXED, 4, 0, 0, &hf_062_V1_18_5
static int hf_062_V1_18_500_AGA;
static int hf_062_V1_18_500_AGA_VALUE;
static const FieldPart I062_V1_18_500_AGA_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_18_500_AGA_VALUE, NULL };
-static const FieldPart *I062_V1_18_500_AGA_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_AGA_PARTS[] = {
&I062_V1_18_500_AGA_VALUE,
NULL
};
@@ -46073,7 +45948,7 @@ static const AsterixField I062_V1_18_500_AGA = { FIXED, 1, 0, 0, &hf_062_V1_18_5
static int hf_062_V1_18_500_ABA;
static int hf_062_V1_18_500_ABA_VALUE;
static const FieldPart I062_V1_18_500_ABA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_500_ABA_VALUE, NULL };
-static const FieldPart *I062_V1_18_500_ABA_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_ABA_PARTS[] = {
&I062_V1_18_500_ABA_VALUE,
NULL
};
@@ -46083,7 +45958,7 @@ static int hf_062_V1_18_500_ATV_X;
static const FieldPart I062_V1_18_500_ATV_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_500_ATV_X, NULL };
static int hf_062_V1_18_500_ATV_Y;
static const FieldPart I062_V1_18_500_ATV_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_500_ATV_Y, NULL };
-static const FieldPart *I062_V1_18_500_ATV_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_ATV_PARTS[] = {
&I062_V1_18_500_ATV_X,
&I062_V1_18_500_ATV_Y,
NULL
@@ -46094,7 +45969,7 @@ static int hf_062_V1_18_500_AA_X;
static const FieldPart I062_V1_18_500_AA_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_500_AA_X, NULL };
static int hf_062_V1_18_500_AA_Y;
static const FieldPart I062_V1_18_500_AA_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_18_500_AA_Y, NULL };
-static const FieldPart *I062_V1_18_500_AA_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_AA_PARTS[] = {
&I062_V1_18_500_AA_X,
&I062_V1_18_500_AA_Y,
NULL
@@ -46103,7 +45978,7 @@ static const AsterixField I062_V1_18_500_AA = { FIXED, 2, 0, 0, &hf_062_V1_18_50
static int hf_062_V1_18_500_ARC;
static int hf_062_V1_18_500_ARC_VALUE;
static const FieldPart I062_V1_18_500_ARC_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_18_500_ARC_VALUE, NULL };
-static const FieldPart *I062_V1_18_500_ARC_PARTS[] = {
+static const FieldPart * const I062_V1_18_500_ARC_PARTS[] = {
&I062_V1_18_500_ARC_VALUE,
NULL
};
@@ -46118,7 +45993,7 @@ static int hf_062_V1_18_510_SIDENT;
static const FieldPart I062_V1_18_510_SIDENT = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_18_510_SIDENT, NULL };
static int hf_062_V1_18_510_STRACK;
static const FieldPart I062_V1_18_510_STRACK = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_18_510_STRACK, NULL };
-static const FieldPart *I062_V1_18_510_PARTS[] = {
+static const FieldPart * const I062_V1_18_510_PARTS[] = {
&I062_V1_18_510_MIDENT,
&I062_V1_18_510_MTRACK,
&IXXX_FX,
@@ -46133,8 +46008,7 @@ static const AsterixField I062_V1_18_RE = { EXP, 0, 0, 1, &hf_062_V1_18_RE, NULL
static int hf_062_V1_18_SP;
static const AsterixField I062_V1_18_SP = { EXP, 0, 0, 1, &hf_062_V1_18_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I062_V1_18_uap[] = {
+static const AsterixField * const I062_V1_18_uap[] = {
&I062_V1_18_010,
&IX_SPARE,
&I062_V1_18_015,
@@ -46172,11 +46046,10 @@ static const AsterixField *I062_V1_18_uap[] = {
&I062_V1_18_SP,
NULL
};
-static const AsterixField **I062_V1_18[] = {
+static const AsterixField * const * const I062_V1_18[] = {
I062_V1_18_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 062, edition 1.19 */
static int hf_062_V1_19_010;
@@ -46184,7 +46057,7 @@ static int hf_062_V1_19_010_SAC;
static const FieldPart I062_V1_19_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_010_SAC, NULL };
static int hf_062_V1_19_010_SIC;
static const FieldPart I062_V1_19_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_010_SIC, NULL };
-static const FieldPart *I062_V1_19_010_PARTS[] = {
+static const FieldPart * const I062_V1_19_010_PARTS[] = {
&I062_V1_19_010_SAC,
&I062_V1_19_010_SIC,
NULL
@@ -46193,7 +46066,7 @@ static const AsterixField I062_V1_19_010 = { FIXED, 2, 0, 0, &hf_062_V1_19_010,
static int hf_062_V1_19_015;
static int hf_062_V1_19_015_VALUE;
static const FieldPart I062_V1_19_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_015_VALUE, NULL };
-static const FieldPart *I062_V1_19_015_PARTS[] = {
+static const FieldPart * const I062_V1_19_015_PARTS[] = {
&I062_V1_19_015_VALUE,
NULL
};
@@ -46201,7 +46074,7 @@ static const AsterixField I062_V1_19_015 = { FIXED, 1, 0, 0, &hf_062_V1_19_015,
static int hf_062_V1_19_040;
static int hf_062_V1_19_040_VALUE;
static const FieldPart I062_V1_19_040_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_062_V1_19_040_VALUE, NULL };
-static const FieldPart *I062_V1_19_040_PARTS[] = {
+static const FieldPart * const I062_V1_19_040_PARTS[] = {
&I062_V1_19_040_VALUE,
NULL
};
@@ -46230,7 +46103,7 @@ static const value_string valstr_062_V1_19_060_CH[] = {
static const FieldPart I062_V1_19_060_CH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_060_CH, NULL };
static int hf_062_V1_19_060_MODE3A;
static const FieldPart I062_V1_19_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_19_060_MODE3A, NULL };
-static const FieldPart *I062_V1_19_060_PARTS[] = {
+static const FieldPart * const I062_V1_19_060_PARTS[] = {
&I062_V1_19_060_V,
&I062_V1_19_060_G,
&I062_V1_19_060_CH,
@@ -46242,7 +46115,7 @@ static const AsterixField I062_V1_19_060 = { FIXED, 2, 0, 0, &hf_062_V1_19_060,
static int hf_062_V1_19_070;
static int hf_062_V1_19_070_VALUE;
static const FieldPart I062_V1_19_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_062_V1_19_070_VALUE, NULL };
-static const FieldPart *I062_V1_19_070_PARTS[] = {
+static const FieldPart * const I062_V1_19_070_PARTS[] = {
&I062_V1_19_070_VALUE,
NULL
};
@@ -46504,7 +46377,7 @@ static const value_string valstr_062_V1_19_080_IEC[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_080_IEC = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_080_IEC, NULL };
-static const FieldPart *I062_V1_19_080_PARTS[] = {
+static const FieldPart * const I062_V1_19_080_PARTS[] = {
&I062_V1_19_080_MON,
&I062_V1_19_080_SPI,
&I062_V1_19_080_MRH,
@@ -46554,7 +46427,7 @@ static int hf_062_V1_19_100_X;
static const FieldPart I062_V1_19_100_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_19_100_X, NULL };
static int hf_062_V1_19_100_Y;
static const FieldPart I062_V1_19_100_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_19_100_Y, NULL };
-static const FieldPart *I062_V1_19_100_PARTS[] = {
+static const FieldPart * const I062_V1_19_100_PARTS[] = {
&I062_V1_19_100_X,
&I062_V1_19_100_Y,
NULL
@@ -46565,7 +46438,7 @@ static int hf_062_V1_19_105_LAT;
static const FieldPart I062_V1_19_105_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_19_105_LAT, NULL };
static int hf_062_V1_19_105_LON;
static const FieldPart I062_V1_19_105_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_19_105_LON, NULL };
-static const FieldPart *I062_V1_19_105_PARTS[] = {
+static const FieldPart * const I062_V1_19_105_PARTS[] = {
&I062_V1_19_105_LAT,
&I062_V1_19_105_LON,
NULL
@@ -46629,7 +46502,7 @@ static const value_string valstr_062_V1_19_110_SUM_X[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_110_SUM_X = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_110_SUM_X, NULL };
-static const FieldPart *I062_V1_19_110_SUM_PARTS[] = {
+static const FieldPart * const I062_V1_19_110_SUM_PARTS[] = {
&I062_V1_19_110_SUM_M5,
&I062_V1_19_110_SUM_ID,
&I062_V1_19_110_SUM_DA,
@@ -46648,7 +46521,7 @@ static int hf_062_V1_19_110_PMN_NAT;
static const FieldPart I062_V1_19_110_PMN_NAT = { 5, 1.0, FIELD_PART_HEX, &hf_062_V1_19_110_PMN_NAT, NULL };
static int hf_062_V1_19_110_PMN_MIS;
static const FieldPart I062_V1_19_110_PMN_MIS = { 6, 1.0, FIELD_PART_HEX, &hf_062_V1_19_110_PMN_MIS, NULL };
-static const FieldPart *I062_V1_19_110_PMN_PARTS[] = {
+static const FieldPart * const I062_V1_19_110_PMN_PARTS[] = {
&IXXX_2bit_spare,
&I062_V1_19_110_PMN_PIN,
&IXXX_3bit_spare,
@@ -46663,7 +46536,7 @@ static int hf_062_V1_19_110_POS_LAT;
static const FieldPart I062_V1_19_110_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_19_110_POS_LAT, NULL };
static int hf_062_V1_19_110_POS_LON;
static const FieldPart I062_V1_19_110_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_19_110_POS_LON, NULL };
-static const FieldPart *I062_V1_19_110_POS_PARTS[] = {
+static const FieldPart * const I062_V1_19_110_POS_PARTS[] = {
&I062_V1_19_110_POS_LAT,
&I062_V1_19_110_POS_LON,
NULL
@@ -46679,7 +46552,7 @@ static const value_string valstr_062_V1_19_110_GA_RES[] = {
static const FieldPart I062_V1_19_110_GA_RES = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_110_GA_RES, NULL };
static int hf_062_V1_19_110_GA_GA;
static const FieldPart I062_V1_19_110_GA_GA = { 14, 25.0, FIELD_PART_FLOAT, &hf_062_V1_19_110_GA_GA, NULL };
-static const FieldPart *I062_V1_19_110_GA_PARTS[] = {
+static const FieldPart * const I062_V1_19_110_GA_PARTS[] = {
&IXXX_1bit_spare,
&I062_V1_19_110_GA_RES,
&I062_V1_19_110_GA_GA,
@@ -46689,7 +46562,7 @@ static const AsterixField I062_V1_19_110_GA = { FIXED, 2, 0, 0, &hf_062_V1_19_11
static int hf_062_V1_19_110_EM1;
static int hf_062_V1_19_110_EM1_EM1;
static const FieldPart I062_V1_19_110_EM1_EM1 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_19_110_EM1_EM1, NULL };
-static const FieldPart *I062_V1_19_110_EM1_PARTS[] = {
+static const FieldPart * const I062_V1_19_110_EM1_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_19_110_EM1_EM1,
NULL
@@ -46698,7 +46571,7 @@ static const AsterixField I062_V1_19_110_EM1 = { FIXED, 2, 0, 0, &hf_062_V1_19_1
static int hf_062_V1_19_110_TOS;
static int hf_062_V1_19_110_TOS_VALUE;
static const FieldPart I062_V1_19_110_TOS_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_062_V1_19_110_TOS_VALUE, NULL };
-static const FieldPart *I062_V1_19_110_TOS_PARTS[] = {
+static const FieldPart * const I062_V1_19_110_TOS_PARTS[] = {
&I062_V1_19_110_TOS_VALUE,
NULL
};
@@ -46739,7 +46612,7 @@ static const value_string valstr_062_V1_19_110_XP_X1[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_110_XP_X1 = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_110_XP_X1, NULL };
-static const FieldPart *I062_V1_19_110_XP_PARTS[] = {
+static const FieldPart * const I062_V1_19_110_XP_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_19_110_XP_X5,
&I062_V1_19_110_XP_XC,
@@ -46753,7 +46626,7 @@ static const AsterixField I062_V1_19_110 = { COMPOUND, 0, 0, 0, &hf_062_V1_19_11
static int hf_062_V1_19_120;
static int hf_062_V1_19_120_MODE2;
static const FieldPart I062_V1_19_120_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_19_120_MODE2, NULL };
-static const FieldPart *I062_V1_19_120_PARTS[] = {
+static const FieldPart * const I062_V1_19_120_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_19_120_MODE2,
NULL
@@ -46762,7 +46635,7 @@ static const AsterixField I062_V1_19_120 = { FIXED, 2, 0, 0, &hf_062_V1_19_120,
static int hf_062_V1_19_130;
static int hf_062_V1_19_130_VALUE;
static const FieldPart I062_V1_19_130_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_19_130_VALUE, NULL };
-static const FieldPart *I062_V1_19_130_PARTS[] = {
+static const FieldPart * const I062_V1_19_130_PARTS[] = {
&I062_V1_19_130_VALUE,
NULL
};
@@ -46777,7 +46650,7 @@ static const value_string valstr_062_V1_19_135_QNH[] = {
static const FieldPart I062_V1_19_135_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_135_QNH, NULL };
static int hf_062_V1_19_135_CTB;
static const FieldPart I062_V1_19_135_CTB = { 15, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_135_CTB, NULL };
-static const FieldPart *I062_V1_19_135_PARTS[] = {
+static const FieldPart * const I062_V1_19_135_PARTS[] = {
&I062_V1_19_135_QNH,
&I062_V1_19_135_CTB,
NULL
@@ -46786,7 +46659,7 @@ static const AsterixField I062_V1_19_135 = { FIXED, 2, 0, 0, &hf_062_V1_19_135,
static int hf_062_V1_19_136;
static int hf_062_V1_19_136_VALUE;
static const FieldPart I062_V1_19_136_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_136_VALUE, NULL };
-static const FieldPart *I062_V1_19_136_PARTS[] = {
+static const FieldPart * const I062_V1_19_136_PARTS[] = {
&I062_V1_19_136_VALUE,
NULL
};
@@ -46796,7 +46669,7 @@ static int hf_062_V1_19_185_VX;
static const FieldPart I062_V1_19_185_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_185_VX, NULL };
static int hf_062_V1_19_185_VY;
static const FieldPart I062_V1_19_185_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_185_VY, NULL };
-static const FieldPart *I062_V1_19_185_PARTS[] = {
+static const FieldPart * const I062_V1_19_185_PARTS[] = {
&I062_V1_19_185_VX,
&I062_V1_19_185_VY,
NULL
@@ -46837,7 +46710,7 @@ static const value_string valstr_062_V1_19_200_ADF[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_200_ADF = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_200_ADF, NULL };
-static const FieldPart *I062_V1_19_200_PARTS[] = {
+static const FieldPart * const I062_V1_19_200_PARTS[] = {
&I062_V1_19_200_TRANS,
&I062_V1_19_200_LONG,
&I062_V1_19_200_VERT,
@@ -46851,7 +46724,7 @@ static int hf_062_V1_19_210_AX;
static const FieldPart I062_V1_19_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_210_AX, NULL };
static int hf_062_V1_19_210_AY;
static const FieldPart I062_V1_19_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_210_AY, NULL };
-static const FieldPart *I062_V1_19_210_PARTS[] = {
+static const FieldPart * const I062_V1_19_210_PARTS[] = {
&I062_V1_19_210_AX,
&I062_V1_19_210_AY,
NULL
@@ -46860,7 +46733,7 @@ static const AsterixField I062_V1_19_210 = { FIXED, 2, 0, 0, &hf_062_V1_19_210,
static int hf_062_V1_19_220;
static int hf_062_V1_19_220_VALUE;
static const FieldPart I062_V1_19_220_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_19_220_VALUE, NULL };
-static const FieldPart *I062_V1_19_220_PARTS[] = {
+static const FieldPart * const I062_V1_19_220_PARTS[] = {
&I062_V1_19_220_VALUE,
NULL
};
@@ -46877,7 +46750,7 @@ static const value_string valstr_062_V1_19_245_STI[] = {
static const FieldPart I062_V1_19_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_19_245_STI, NULL };
static int hf_062_V1_19_245_CHR;
static const FieldPart I062_V1_19_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_19_245_CHR, NULL };
-static const FieldPart *I062_V1_19_245_PARTS[] = {
+static const FieldPart * const I062_V1_19_245_PARTS[] = {
&I062_V1_19_245_STI,
&IXXX_6bit_spare,
&I062_V1_19_245_CHR,
@@ -46891,7 +46764,7 @@ static int hf_062_V1_19_270_ORIENTATION;
static const FieldPart I062_V1_19_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_062_V1_19_270_ORIENTATION, NULL };
static int hf_062_V1_19_270_WIDTH;
static const FieldPart I062_V1_19_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_19_270_WIDTH, NULL };
-static const FieldPart *I062_V1_19_270_PARTS[] = {
+static const FieldPart * const I062_V1_19_270_PARTS[] = {
&I062_V1_19_270_LENGTH,
&IXXX_FX,
&I062_V1_19_270_ORIENTATION,
@@ -46905,7 +46778,7 @@ static int hf_062_V1_19_290;
static int hf_062_V1_19_290_TRK;
static int hf_062_V1_19_290_TRK_VALUE;
static const FieldPart I062_V1_19_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_TRK_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_TRK_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_TRK_PARTS[] = {
&I062_V1_19_290_TRK_VALUE,
NULL
};
@@ -46913,7 +46786,7 @@ static const AsterixField I062_V1_19_290_TRK = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_PSR;
static int hf_062_V1_19_290_PSR_VALUE;
static const FieldPart I062_V1_19_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_PSR_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_PSR_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_PSR_PARTS[] = {
&I062_V1_19_290_PSR_VALUE,
NULL
};
@@ -46921,7 +46794,7 @@ static const AsterixField I062_V1_19_290_PSR = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_SSR;
static int hf_062_V1_19_290_SSR_VALUE;
static const FieldPart I062_V1_19_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_SSR_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_SSR_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_SSR_PARTS[] = {
&I062_V1_19_290_SSR_VALUE,
NULL
};
@@ -46929,7 +46802,7 @@ static const AsterixField I062_V1_19_290_SSR = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_MDS;
static int hf_062_V1_19_290_MDS_VALUE;
static const FieldPart I062_V1_19_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_MDS_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_MDS_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_MDS_PARTS[] = {
&I062_V1_19_290_MDS_VALUE,
NULL
};
@@ -46937,7 +46810,7 @@ static const AsterixField I062_V1_19_290_MDS = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_ADS;
static int hf_062_V1_19_290_ADS_VALUE;
static const FieldPart I062_V1_19_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_ADS_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_ADS_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_ADS_PARTS[] = {
&I062_V1_19_290_ADS_VALUE,
NULL
};
@@ -46945,7 +46818,7 @@ static const AsterixField I062_V1_19_290_ADS = { FIXED, 2, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_ES;
static int hf_062_V1_19_290_ES_VALUE;
static const FieldPart I062_V1_19_290_ES_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_ES_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_ES_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_ES_PARTS[] = {
&I062_V1_19_290_ES_VALUE,
NULL
};
@@ -46953,7 +46826,7 @@ static const AsterixField I062_V1_19_290_ES = { FIXED, 1, 0, 0, &hf_062_V1_19_29
static int hf_062_V1_19_290_VDL;
static int hf_062_V1_19_290_VDL_VALUE;
static const FieldPart I062_V1_19_290_VDL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_VDL_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_VDL_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_VDL_PARTS[] = {
&I062_V1_19_290_VDL_VALUE,
NULL
};
@@ -46961,7 +46834,7 @@ static const AsterixField I062_V1_19_290_VDL = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_UAT;
static int hf_062_V1_19_290_UAT_VALUE;
static const FieldPart I062_V1_19_290_UAT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_UAT_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_UAT_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_UAT_PARTS[] = {
&I062_V1_19_290_UAT_VALUE,
NULL
};
@@ -46969,7 +46842,7 @@ static const AsterixField I062_V1_19_290_UAT = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_LOP;
static int hf_062_V1_19_290_LOP_VALUE;
static const FieldPart I062_V1_19_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_LOP_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_LOP_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_LOP_PARTS[] = {
&I062_V1_19_290_LOP_VALUE,
NULL
};
@@ -46977,7 +46850,7 @@ static const AsterixField I062_V1_19_290_LOP = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_290_MLT;
static int hf_062_V1_19_290_MLT_VALUE;
static const FieldPart I062_V1_19_290_MLT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_290_MLT_VALUE, NULL };
-static const FieldPart *I062_V1_19_290_MLT_PARTS[] = {
+static const FieldPart * const I062_V1_19_290_MLT_PARTS[] = {
&I062_V1_19_290_MLT_VALUE,
NULL
};
@@ -46987,7 +46860,7 @@ static int hf_062_V1_19_295;
static int hf_062_V1_19_295_MFL;
static int hf_062_V1_19_295_MFL_VALUE;
static const FieldPart I062_V1_19_295_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MFL_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MFL_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MFL_PARTS[] = {
&I062_V1_19_295_MFL_VALUE,
NULL
};
@@ -46995,7 +46868,7 @@ static const AsterixField I062_V1_19_295_MFL = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MD1;
static int hf_062_V1_19_295_MD1_VALUE;
static const FieldPart I062_V1_19_295_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MD1_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MD1_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MD1_PARTS[] = {
&I062_V1_19_295_MD1_VALUE,
NULL
};
@@ -47003,7 +46876,7 @@ static const AsterixField I062_V1_19_295_MD1 = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MD2;
static int hf_062_V1_19_295_MD2_VALUE;
static const FieldPart I062_V1_19_295_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MD2_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MD2_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MD2_PARTS[] = {
&I062_V1_19_295_MD2_VALUE,
NULL
};
@@ -47011,7 +46884,7 @@ static const AsterixField I062_V1_19_295_MD2 = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MDA;
static int hf_062_V1_19_295_MDA_VALUE;
static const FieldPart I062_V1_19_295_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MDA_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MDA_PARTS[] = {
&I062_V1_19_295_MDA_VALUE,
NULL
};
@@ -47019,7 +46892,7 @@ static const AsterixField I062_V1_19_295_MDA = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MD4;
static int hf_062_V1_19_295_MD4_VALUE;
static const FieldPart I062_V1_19_295_MD4_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MD4_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MD4_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MD4_PARTS[] = {
&I062_V1_19_295_MD4_VALUE,
NULL
};
@@ -47027,7 +46900,7 @@ static const AsterixField I062_V1_19_295_MD4 = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MD5;
static int hf_062_V1_19_295_MD5_VALUE;
static const FieldPart I062_V1_19_295_MD5_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MD5_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MD5_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MD5_PARTS[] = {
&I062_V1_19_295_MD5_VALUE,
NULL
};
@@ -47035,7 +46908,7 @@ static const AsterixField I062_V1_19_295_MD5 = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MHG;
static int hf_062_V1_19_295_MHG_VALUE;
static const FieldPart I062_V1_19_295_MHG_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MHG_PARTS[] = {
&I062_V1_19_295_MHG_VALUE,
NULL
};
@@ -47043,7 +46916,7 @@ static const AsterixField I062_V1_19_295_MHG = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_IAS;
static int hf_062_V1_19_295_IAS_VALUE;
static const FieldPart I062_V1_19_295_IAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_IAS_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_IAS_PARTS[] = {
&I062_V1_19_295_IAS_VALUE,
NULL
};
@@ -47051,7 +46924,7 @@ static const AsterixField I062_V1_19_295_IAS = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_TAS;
static int hf_062_V1_19_295_TAS_VALUE;
static const FieldPart I062_V1_19_295_TAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_TAS_PARTS[] = {
&I062_V1_19_295_TAS_VALUE,
NULL
};
@@ -47059,7 +46932,7 @@ static const AsterixField I062_V1_19_295_TAS = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_SAL;
static int hf_062_V1_19_295_SAL_VALUE;
static const FieldPart I062_V1_19_295_SAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_SAL_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_SAL_PARTS[] = {
&I062_V1_19_295_SAL_VALUE,
NULL
};
@@ -47067,7 +46940,7 @@ static const AsterixField I062_V1_19_295_SAL = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_FSS;
static int hf_062_V1_19_295_FSS_VALUE;
static const FieldPart I062_V1_19_295_FSS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_FSS_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_FSS_PARTS[] = {
&I062_V1_19_295_FSS_VALUE,
NULL
};
@@ -47075,7 +46948,7 @@ static const AsterixField I062_V1_19_295_FSS = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_TID;
static int hf_062_V1_19_295_TID_VALUE;
static const FieldPart I062_V1_19_295_TID_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_TID_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_TID_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_TID_PARTS[] = {
&I062_V1_19_295_TID_VALUE,
NULL
};
@@ -47083,7 +46956,7 @@ static const AsterixField I062_V1_19_295_TID = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_COM;
static int hf_062_V1_19_295_COM_VALUE;
static const FieldPart I062_V1_19_295_COM_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_COM_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_COM_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_COM_PARTS[] = {
&I062_V1_19_295_COM_VALUE,
NULL
};
@@ -47091,7 +46964,7 @@ static const AsterixField I062_V1_19_295_COM = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_SAB;
static int hf_062_V1_19_295_SAB_VALUE;
static const FieldPart I062_V1_19_295_SAB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_SAB_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_SAB_PARTS[] = {
&I062_V1_19_295_SAB_VALUE,
NULL
};
@@ -47099,7 +46972,7 @@ static const AsterixField I062_V1_19_295_SAB = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_ACS;
static int hf_062_V1_19_295_ACS_VALUE;
static const FieldPart I062_V1_19_295_ACS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_ACS_PARTS[] = {
&I062_V1_19_295_ACS_VALUE,
NULL
};
@@ -47107,7 +46980,7 @@ static const AsterixField I062_V1_19_295_ACS = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_BVR;
static int hf_062_V1_19_295_BVR_VALUE;
static const FieldPart I062_V1_19_295_BVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_BVR_PARTS[] = {
&I062_V1_19_295_BVR_VALUE,
NULL
};
@@ -47115,7 +46988,7 @@ static const AsterixField I062_V1_19_295_BVR = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_GVR;
static int hf_062_V1_19_295_GVR_VALUE;
static const FieldPart I062_V1_19_295_GVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_GVR_PARTS[] = {
&I062_V1_19_295_GVR_VALUE,
NULL
};
@@ -47123,7 +46996,7 @@ static const AsterixField I062_V1_19_295_GVR = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_RAN;
static int hf_062_V1_19_295_RAN_VALUE;
static const FieldPart I062_V1_19_295_RAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_RAN_PARTS[] = {
&I062_V1_19_295_RAN_VALUE,
NULL
};
@@ -47131,7 +47004,7 @@ static const AsterixField I062_V1_19_295_RAN = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_TAR;
static int hf_062_V1_19_295_TAR_VALUE;
static const FieldPart I062_V1_19_295_TAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_TAR_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_TAR_PARTS[] = {
&I062_V1_19_295_TAR_VALUE,
NULL
};
@@ -47139,7 +47012,7 @@ static const AsterixField I062_V1_19_295_TAR = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_TAN;
static int hf_062_V1_19_295_TAN_VALUE;
static const FieldPart I062_V1_19_295_TAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_TAN_PARTS[] = {
&I062_V1_19_295_TAN_VALUE,
NULL
};
@@ -47147,7 +47020,7 @@ static const AsterixField I062_V1_19_295_TAN = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_GSP;
static int hf_062_V1_19_295_GSP_VALUE;
static const FieldPart I062_V1_19_295_GSP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_GSP_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_GSP_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_GSP_PARTS[] = {
&I062_V1_19_295_GSP_VALUE,
NULL
};
@@ -47155,7 +47028,7 @@ static const AsterixField I062_V1_19_295_GSP = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_VUN;
static int hf_062_V1_19_295_VUN_VALUE;
static const FieldPart I062_V1_19_295_VUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_VUN_PARTS[] = {
&I062_V1_19_295_VUN_VALUE,
NULL
};
@@ -47163,7 +47036,7 @@ static const AsterixField I062_V1_19_295_VUN = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MET;
static int hf_062_V1_19_295_MET_VALUE;
static const FieldPart I062_V1_19_295_MET_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MET_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MET_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MET_PARTS[] = {
&I062_V1_19_295_MET_VALUE,
NULL
};
@@ -47171,7 +47044,7 @@ static const AsterixField I062_V1_19_295_MET = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_EMC;
static int hf_062_V1_19_295_EMC_VALUE;
static const FieldPart I062_V1_19_295_EMC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_EMC_PARTS[] = {
&I062_V1_19_295_EMC_VALUE,
NULL
};
@@ -47179,7 +47052,7 @@ static const AsterixField I062_V1_19_295_EMC = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_POS;
static int hf_062_V1_19_295_POS_VALUE;
static const FieldPart I062_V1_19_295_POS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_POS_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_POS_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_POS_PARTS[] = {
&I062_V1_19_295_POS_VALUE,
NULL
};
@@ -47187,7 +47060,7 @@ static const AsterixField I062_V1_19_295_POS = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_GAL;
static int hf_062_V1_19_295_GAL_VALUE;
static const FieldPart I062_V1_19_295_GAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_GAL_PARTS[] = {
&I062_V1_19_295_GAL_VALUE,
NULL
};
@@ -47195,7 +47068,7 @@ static const AsterixField I062_V1_19_295_GAL = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_PUN;
static int hf_062_V1_19_295_PUN_VALUE;
static const FieldPart I062_V1_19_295_PUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_PUN_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_PUN_PARTS[] = {
&I062_V1_19_295_PUN_VALUE,
NULL
};
@@ -47203,7 +47076,7 @@ static const AsterixField I062_V1_19_295_PUN = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MB;
static int hf_062_V1_19_295_MB_VALUE;
static const FieldPart I062_V1_19_295_MB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MB_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MB_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MB_PARTS[] = {
&I062_V1_19_295_MB_VALUE,
NULL
};
@@ -47211,7 +47084,7 @@ static const AsterixField I062_V1_19_295_MB = { FIXED, 1, 0, 0, &hf_062_V1_19_29
static int hf_062_V1_19_295_IAR;
static int hf_062_V1_19_295_IAR_VALUE;
static const FieldPart I062_V1_19_295_IAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_IAR_PARTS[] = {
&I062_V1_19_295_IAR_VALUE,
NULL
};
@@ -47219,7 +47092,7 @@ static const AsterixField I062_V1_19_295_IAR = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_MAC;
static int hf_062_V1_19_295_MAC_VALUE;
static const FieldPart I062_V1_19_295_MAC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_MAC_PARTS[] = {
&I062_V1_19_295_MAC_VALUE,
NULL
};
@@ -47227,7 +47100,7 @@ static const AsterixField I062_V1_19_295_MAC = { FIXED, 1, 0, 0, &hf_062_V1_19_2
static int hf_062_V1_19_295_BPS;
static int hf_062_V1_19_295_BPS_VALUE;
static const FieldPart I062_V1_19_295_BPS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_295_BPS_VALUE, NULL };
-static const FieldPart *I062_V1_19_295_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_19_295_BPS_PARTS[] = {
&I062_V1_19_295_BPS_VALUE,
NULL
};
@@ -47256,7 +47129,7 @@ static const value_string valstr_062_V1_19_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_19_300_VALUE, NULL };
-static const FieldPart *I062_V1_19_300_PARTS[] = {
+static const FieldPart * const I062_V1_19_300_PARTS[] = {
&I062_V1_19_300_VALUE,
NULL
};
@@ -47267,7 +47140,7 @@ static int hf_062_V1_19_340_SID_SAC;
static const FieldPart I062_V1_19_340_SID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_340_SID_SAC, NULL };
static int hf_062_V1_19_340_SID_SIC;
static const FieldPart I062_V1_19_340_SID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_340_SID_SIC, NULL };
-static const FieldPart *I062_V1_19_340_SID_PARTS[] = {
+static const FieldPart * const I062_V1_19_340_SID_PARTS[] = {
&I062_V1_19_340_SID_SAC,
&I062_V1_19_340_SID_SIC,
NULL
@@ -47278,7 +47151,7 @@ static int hf_062_V1_19_340_POS_RHO;
static const FieldPart I062_V1_19_340_POS_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_062_V1_19_340_POS_RHO, NULL };
static int hf_062_V1_19_340_POS_THETA;
static const FieldPart I062_V1_19_340_POS_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_19_340_POS_THETA, NULL };
-static const FieldPart *I062_V1_19_340_POS_PARTS[] = {
+static const FieldPart * const I062_V1_19_340_POS_PARTS[] = {
&I062_V1_19_340_POS_RHO,
&I062_V1_19_340_POS_THETA,
NULL
@@ -47287,7 +47160,7 @@ static const AsterixField I062_V1_19_340_POS = { FIXED, 4, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_340_HEIGHT;
static int hf_062_V1_19_340_HEIGHT_VALUE;
static const FieldPart I062_V1_19_340_HEIGHT_VALUE = { 16, 25.0, FIELD_PART_FLOAT, &hf_062_V1_19_340_HEIGHT_VALUE, NULL };
-static const FieldPart *I062_V1_19_340_HEIGHT_PARTS[] = {
+static const FieldPart * const I062_V1_19_340_HEIGHT_PARTS[] = {
&I062_V1_19_340_HEIGHT_VALUE,
NULL
};
@@ -47309,7 +47182,7 @@ static const value_string valstr_062_V1_19_340_MDC_G[] = {
static const FieldPart I062_V1_19_340_MDC_G = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_340_MDC_G, NULL };
static int hf_062_V1_19_340_MDC_LMC;
static const FieldPart I062_V1_19_340_MDC_LMC = { 14, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_340_MDC_LMC, NULL };
-static const FieldPart *I062_V1_19_340_MDC_PARTS[] = {
+static const FieldPart * const I062_V1_19_340_MDC_PARTS[] = {
&I062_V1_19_340_MDC_V,
&I062_V1_19_340_MDC_G,
&I062_V1_19_340_MDC_LMC,
@@ -47340,7 +47213,7 @@ static const value_string valstr_062_V1_19_340_MDA_L[] = {
static const FieldPart I062_V1_19_340_MDA_L = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_340_MDA_L, NULL };
static int hf_062_V1_19_340_MDA_MODE3A;
static const FieldPart I062_V1_19_340_MDA_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_19_340_MDA_MODE3A, NULL };
-static const FieldPart *I062_V1_19_340_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_19_340_MDA_PARTS[] = {
&I062_V1_19_340_MDA_V,
&I062_V1_19_340_MDA_G,
&I062_V1_19_340_MDA_L,
@@ -47384,7 +47257,7 @@ static const value_string valstr_062_V1_19_340_TYP_TST[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_340_TYP_TST = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_340_TYP_TST, NULL };
-static const FieldPart *I062_V1_19_340_TYP_PARTS[] = {
+static const FieldPart * const I062_V1_19_340_TYP_PARTS[] = {
&I062_V1_19_340_TYP_TYP,
&I062_V1_19_340_TYP_SIM,
&I062_V1_19_340_TYP_RAB,
@@ -47398,7 +47271,7 @@ static int hf_062_V1_19_380;
static int hf_062_V1_19_380_ADR;
static int hf_062_V1_19_380_ADR_VALUE;
static const FieldPart I062_V1_19_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_ADR_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_ADR_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_ADR_PARTS[] = {
&I062_V1_19_380_ADR_VALUE,
NULL
};
@@ -47406,7 +47279,7 @@ static const AsterixField I062_V1_19_380_ADR = { FIXED, 3, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_ID;
static int hf_062_V1_19_380_ID_VALUE;
static const FieldPart I062_V1_19_380_ID_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_19_380_ID_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_ID_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_ID_PARTS[] = {
&I062_V1_19_380_ID_VALUE,
NULL
};
@@ -47414,7 +47287,7 @@ static const AsterixField I062_V1_19_380_ID = { FIXED, 6, 0, 0, &hf_062_V1_19_38
static int hf_062_V1_19_380_MHG;
static int hf_062_V1_19_380_MHG_VALUE;
static const FieldPart I062_V1_19_380_MHG_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_19_380_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_MHG_PARTS[] = {
&I062_V1_19_380_MHG_VALUE,
NULL
};
@@ -47429,7 +47302,7 @@ static const value_string valstr_062_V1_19_380_IAS_IM[] = {
static const FieldPart I062_V1_19_380_IAS_IM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_IAS_IM, NULL };
static int hf_062_V1_19_380_IAS_IAS;
static const FieldPart I062_V1_19_380_IAS_IAS = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_IAS_IAS, NULL };
-static const FieldPart *I062_V1_19_380_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_IAS_PARTS[] = {
&I062_V1_19_380_IAS_IM,
&I062_V1_19_380_IAS_IAS,
NULL
@@ -47438,7 +47311,7 @@ static const AsterixField I062_V1_19_380_IAS = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_TAS;
static int hf_062_V1_19_380_TAS_VALUE;
static const FieldPart I062_V1_19_380_TAS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_19_380_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_TAS_PARTS[] = {
&I062_V1_19_380_TAS_VALUE,
NULL
};
@@ -47462,7 +47335,7 @@ static const value_string valstr_062_V1_19_380_SAL_SRC[] = {
static const FieldPart I062_V1_19_380_SAL_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_SAL_SRC, NULL };
static int hf_062_V1_19_380_SAL_ALT;
static const FieldPart I062_V1_19_380_SAL_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_19_380_SAL_ALT, NULL };
-static const FieldPart *I062_V1_19_380_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_SAL_PARTS[] = {
&I062_V1_19_380_SAL_SAS,
&I062_V1_19_380_SAL_SRC,
&I062_V1_19_380_SAL_ALT,
@@ -47493,7 +47366,7 @@ static const value_string valstr_062_V1_19_380_FSS_AM[] = {
static const FieldPart I062_V1_19_380_FSS_AM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_FSS_AM, NULL };
static int hf_062_V1_19_380_FSS_ALT;
static const FieldPart I062_V1_19_380_FSS_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_19_380_FSS_ALT, NULL };
-static const FieldPart *I062_V1_19_380_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_FSS_PARTS[] = {
&I062_V1_19_380_FSS_MV,
&I062_V1_19_380_FSS_AH,
&I062_V1_19_380_FSS_AM,
@@ -47516,7 +47389,7 @@ static const value_string valstr_062_V1_19_380_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_380_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_TIS_NVB, NULL };
-static const FieldPart *I062_V1_19_380_TIS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_TIS_PARTS[] = {
&I062_V1_19_380_TIS_NAV,
&I062_V1_19_380_TIS_NVB,
&IXXX_5bit_spare,
@@ -47591,7 +47464,7 @@ static int hf_062_V1_19_380_TID_TOV;
static const FieldPart I062_V1_19_380_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_19_380_TID_TOV, NULL };
static int hf_062_V1_19_380_TID_TTR;
static const FieldPart I062_V1_19_380_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_062_V1_19_380_TID_TTR, NULL };
-static const FieldPart *I062_V1_19_380_TID_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_TID_PARTS[] = {
&I062_V1_19_380_TID_TCA,
&I062_V1_19_380_TID_NC,
&I062_V1_19_380_TID_TCPN,
@@ -47659,7 +47532,7 @@ static int hf_062_V1_19_380_COM_B1A;
static const FieldPart I062_V1_19_380_COM_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_COM_B1A, NULL };
static int hf_062_V1_19_380_COM_B1B;
static const FieldPart I062_V1_19_380_COM_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_COM_B1B, NULL };
-static const FieldPart *I062_V1_19_380_COM_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_COM_PARTS[] = {
&I062_V1_19_380_COM_COM,
&I062_V1_19_380_COM_STAT,
&IXXX_2bit_spare,
@@ -47719,7 +47592,7 @@ static const value_string valstr_062_V1_19_380_SAB_STAT[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_380_SAB_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_SAB_STAT, NULL };
-static const FieldPart *I062_V1_19_380_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_SAB_PARTS[] = {
&I062_V1_19_380_SAB_AC,
&I062_V1_19_380_SAB_MN,
&I062_V1_19_380_SAB_DC,
@@ -47732,7 +47605,7 @@ static const AsterixField I062_V1_19_380_SAB = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_ACS;
static int hf_062_V1_19_380_ACS_VALUE;
static const FieldPart I062_V1_19_380_ACS_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_ACS_PARTS[] = {
&I062_V1_19_380_ACS_VALUE,
NULL
};
@@ -47740,7 +47613,7 @@ static const AsterixField I062_V1_19_380_ACS = { FIXED, 7, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_BVR;
static int hf_062_V1_19_380_BVR_VALUE;
static const FieldPart I062_V1_19_380_BVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_19_380_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_BVR_PARTS[] = {
&I062_V1_19_380_BVR_VALUE,
NULL
};
@@ -47748,7 +47621,7 @@ static const AsterixField I062_V1_19_380_BVR = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_GVR;
static int hf_062_V1_19_380_GVR_VALUE;
static const FieldPart I062_V1_19_380_GVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_19_380_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_GVR_PARTS[] = {
&I062_V1_19_380_GVR_VALUE,
NULL
};
@@ -47756,7 +47629,7 @@ static const AsterixField I062_V1_19_380_GVR = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_RAN;
static int hf_062_V1_19_380_RAN_VALUE;
static const FieldPart I062_V1_19_380_RAN_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_062_V1_19_380_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_RAN_PARTS[] = {
&I062_V1_19_380_RAN_VALUE,
NULL
};
@@ -47773,7 +47646,7 @@ static const value_string valstr_062_V1_19_380_TAR_TI[] = {
static const FieldPart I062_V1_19_380_TAR_TI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_TAR_TI, NULL };
static int hf_062_V1_19_380_TAR_ROT;
static const FieldPart I062_V1_19_380_TAR_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_380_TAR_ROT, NULL };
-static const FieldPart *I062_V1_19_380_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_TAR_PARTS[] = {
&I062_V1_19_380_TAR_TI,
&IXXX_6bit_spare,
&I062_V1_19_380_TAR_ROT,
@@ -47784,7 +47657,7 @@ static const AsterixField I062_V1_19_380_TAR = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_TAN;
static int hf_062_V1_19_380_TAN_VALUE;
static const FieldPart I062_V1_19_380_TAN_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_19_380_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_TAN_PARTS[] = {
&I062_V1_19_380_TAN_VALUE,
NULL
};
@@ -47792,7 +47665,7 @@ static const AsterixField I062_V1_19_380_TAN = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_GS;
static int hf_062_V1_19_380_GS_VALUE;
static const FieldPart I062_V1_19_380_GS_VALUE = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_062_V1_19_380_GS_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_GS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_GS_PARTS[] = {
&I062_V1_19_380_GS_VALUE,
NULL
};
@@ -47800,7 +47673,7 @@ static const AsterixField I062_V1_19_380_GS = { FIXED, 2, 0, 0, &hf_062_V1_19_38
static int hf_062_V1_19_380_VUN;
static int hf_062_V1_19_380_VUN_VALUE;
static const FieldPart I062_V1_19_380_VUN_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_VUN_PARTS[] = {
&I062_V1_19_380_VUN_VALUE,
NULL
};
@@ -47842,7 +47715,7 @@ static int hf_062_V1_19_380_MET_TMPD;
static const FieldPart I062_V1_19_380_MET_TMPD = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_19_380_MET_TMPD, NULL };
static int hf_062_V1_19_380_MET_TRBD;
static const FieldPart I062_V1_19_380_MET_TRBD = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_MET_TRBD, NULL };
-static const FieldPart *I062_V1_19_380_MET_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_MET_PARTS[] = {
&I062_V1_19_380_MET_WS,
&I062_V1_19_380_MET_WD,
&I062_V1_19_380_MET_TMP,
@@ -47885,7 +47758,7 @@ static const value_string valstr_062_V1_19_380_EMC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_380_EMC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_19_380_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_EMC_PARTS[] = {
&I062_V1_19_380_EMC_VALUE,
NULL
};
@@ -47895,7 +47768,7 @@ static int hf_062_V1_19_380_POS_LAT;
static const FieldPart I062_V1_19_380_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_19_380_POS_LAT, NULL };
static int hf_062_V1_19_380_POS_LON;
static const FieldPart I062_V1_19_380_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_19_380_POS_LON, NULL };
-static const FieldPart *I062_V1_19_380_POS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_POS_PARTS[] = {
&I062_V1_19_380_POS_LAT,
&I062_V1_19_380_POS_LON,
NULL
@@ -47904,7 +47777,7 @@ static const AsterixField I062_V1_19_380_POS = { FIXED, 6, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_GAL;
static int hf_062_V1_19_380_GAL_VALUE;
static const FieldPart I062_V1_19_380_GAL_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_19_380_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_GAL_PARTS[] = {
&I062_V1_19_380_GAL_VALUE,
NULL
};
@@ -47912,7 +47785,7 @@ static const AsterixField I062_V1_19_380_GAL = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_PUN;
static int hf_062_V1_19_380_PUN_PUN;
static const FieldPart I062_V1_19_380_PUN_PUN = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_PUN_PUN, NULL };
-static const FieldPart *I062_V1_19_380_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_PUN_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_19_380_PUN_PUN,
NULL
@@ -47921,7 +47794,7 @@ static const AsterixField I062_V1_19_380_PUN = { FIXED, 1, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_MB;
static int hf_062_V1_19_380_MB_VALUE;
static const FieldPart I062_V1_19_380_MB_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_062_V1_19_380_MB_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_MB_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_MB_PARTS[] = {
&I062_V1_19_380_MB_VALUE,
NULL
};
@@ -47929,7 +47802,7 @@ static const AsterixField I062_V1_19_380_MB = { REPETITIVE, 8, 1, 0, &hf_062_V1_
static int hf_062_V1_19_380_IAR;
static int hf_062_V1_19_380_IAR_VALUE;
static const FieldPart I062_V1_19_380_IAR_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_19_380_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_IAR_PARTS[] = {
&I062_V1_19_380_IAR_VALUE,
NULL
};
@@ -47937,7 +47810,7 @@ static const AsterixField I062_V1_19_380_IAR = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_MAC;
static int hf_062_V1_19_380_MAC_VALUE;
static const FieldPart I062_V1_19_380_MAC_VALUE = { 16, 0.008, FIELD_PART_UFLOAT, &hf_062_V1_19_380_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_19_380_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_MAC_PARTS[] = {
&I062_V1_19_380_MAC_VALUE,
NULL
};
@@ -47945,7 +47818,7 @@ static const AsterixField I062_V1_19_380_MAC = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_380_BPS;
static int hf_062_V1_19_380_BPS_BPS;
static const FieldPart I062_V1_19_380_BPS_BPS = { 12, 0.1, FIELD_PART_UFLOAT, &hf_062_V1_19_380_BPS_BPS, NULL };
-static const FieldPart *I062_V1_19_380_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_19_380_BPS_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_19_380_BPS_BPS,
NULL
@@ -47958,7 +47831,7 @@ static int hf_062_V1_19_390_TAG_SAC;
static const FieldPart I062_V1_19_390_TAG_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_390_TAG_SAC, NULL };
static int hf_062_V1_19_390_TAG_SIC;
static const FieldPart I062_V1_19_390_TAG_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_390_TAG_SIC, NULL };
-static const FieldPart *I062_V1_19_390_TAG_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_TAG_PARTS[] = {
&I062_V1_19_390_TAG_SAC,
&I062_V1_19_390_TAG_SIC,
NULL
@@ -47967,7 +47840,7 @@ static const AsterixField I062_V1_19_390_TAG = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_CS;
static int hf_062_V1_19_390_CS_VALUE;
static const FieldPart I062_V1_19_390_CS_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_CS_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_CS_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_CS_PARTS[] = {
&I062_V1_19_390_CS_VALUE,
NULL
};
@@ -47984,7 +47857,7 @@ static const value_string valstr_062_V1_19_390_IFI_TYP[] = {
static const FieldPart I062_V1_19_390_IFI_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_19_390_IFI_TYP, NULL };
static int hf_062_V1_19_390_IFI_NBR;
static const FieldPart I062_V1_19_390_IFI_NBR = { 27, 1.0, FIELD_PART_UINT, &hf_062_V1_19_390_IFI_NBR, NULL };
-static const FieldPart *I062_V1_19_390_IFI_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_IFI_PARTS[] = {
&I062_V1_19_390_IFI_TYP,
&IXXX_3bit_spare,
&I062_V1_19_390_IFI_NBR,
@@ -48026,7 +47899,7 @@ static const value_string valstr_062_V1_19_390_FCT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_390_FCT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_390_FCT_HPR, NULL };
-static const FieldPart *I062_V1_19_390_FCT_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_FCT_PARTS[] = {
&I062_V1_19_390_FCT_GATOAT,
&I062_V1_19_390_FCT_FR1FR2,
&I062_V1_19_390_FCT_RVSM,
@@ -48038,7 +47911,7 @@ static const AsterixField I062_V1_19_390_FCT = { FIXED, 1, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_TAC;
static int hf_062_V1_19_390_TAC_VALUE;
static const FieldPart I062_V1_19_390_TAC_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_TAC_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_TAC_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_TAC_PARTS[] = {
&I062_V1_19_390_TAC_VALUE,
NULL
};
@@ -48046,7 +47919,7 @@ static const AsterixField I062_V1_19_390_TAC = { FIXED, 4, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_WTC;
static int hf_062_V1_19_390_WTC_VALUE;
static const FieldPart I062_V1_19_390_WTC_VALUE = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_WTC_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_WTC_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_WTC_PARTS[] = {
&I062_V1_19_390_WTC_VALUE,
NULL
};
@@ -48054,7 +47927,7 @@ static const AsterixField I062_V1_19_390_WTC = { FIXED, 1, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_DEP;
static int hf_062_V1_19_390_DEP_VALUE;
static const FieldPart I062_V1_19_390_DEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_DEP_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_DEP_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_DEP_PARTS[] = {
&I062_V1_19_390_DEP_VALUE,
NULL
};
@@ -48062,7 +47935,7 @@ static const AsterixField I062_V1_19_390_DEP = { FIXED, 4, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_DST;
static int hf_062_V1_19_390_DST_VALUE;
static const FieldPart I062_V1_19_390_DST_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_DST_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_DST_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_DST_PARTS[] = {
&I062_V1_19_390_DST_VALUE,
NULL
};
@@ -48074,7 +47947,7 @@ static int hf_062_V1_19_390_RDS_NU2;
static const FieldPart I062_V1_19_390_RDS_NU2 = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_RDS_NU2, NULL };
static int hf_062_V1_19_390_RDS_LTR;
static const FieldPart I062_V1_19_390_RDS_LTR = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_RDS_LTR, NULL };
-static const FieldPart *I062_V1_19_390_RDS_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_RDS_PARTS[] = {
&I062_V1_19_390_RDS_NU1,
&I062_V1_19_390_RDS_NU2,
&I062_V1_19_390_RDS_LTR,
@@ -48084,7 +47957,7 @@ static const AsterixField I062_V1_19_390_RDS = { FIXED, 3, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_CFL;
static int hf_062_V1_19_390_CFL_VALUE;
static const FieldPart I062_V1_19_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_390_CFL_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_CFL_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_CFL_PARTS[] = {
&I062_V1_19_390_CFL_VALUE,
NULL
};
@@ -48094,7 +47967,7 @@ static int hf_062_V1_19_390_CTL_CENTRE;
static const FieldPart I062_V1_19_390_CTL_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_390_CTL_CENTRE, NULL };
static int hf_062_V1_19_390_CTL_POSITION;
static const FieldPart I062_V1_19_390_CTL_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_390_CTL_POSITION, NULL };
-static const FieldPart *I062_V1_19_390_CTL_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_CTL_PARTS[] = {
&I062_V1_19_390_CTL_CENTRE,
&I062_V1_19_390_CTL_POSITION,
NULL
@@ -48142,7 +48015,7 @@ static const value_string valstr_062_V1_19_390_TOD_AVS[] = {
static const FieldPart I062_V1_19_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_390_TOD_AVS, NULL };
static int hf_062_V1_19_390_TOD_SEC;
static const FieldPart I062_V1_19_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_062_V1_19_390_TOD_SEC, NULL };
-static const FieldPart *I062_V1_19_390_TOD_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_TOD_PARTS[] = {
&I062_V1_19_390_TOD_TYP,
&I062_V1_19_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -48158,7 +48031,7 @@ static const AsterixField I062_V1_19_390_TOD = { REPETITIVE, 4, 1, 0, &hf_062_V1
static int hf_062_V1_19_390_AST;
static int hf_062_V1_19_390_AST_VALUE;
static const FieldPart I062_V1_19_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_AST_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_AST_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_AST_PARTS[] = {
&I062_V1_19_390_AST_VALUE,
NULL
};
@@ -48182,7 +48055,7 @@ static const value_string valstr_062_V1_19_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_19_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_19_390_STS_AVL, NULL };
-static const FieldPart *I062_V1_19_390_STS_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_STS_PARTS[] = {
&I062_V1_19_390_STS_EMP,
&I062_V1_19_390_STS_AVL,
&IXXX_4bit_spare,
@@ -48192,7 +48065,7 @@ static const AsterixField I062_V1_19_390_STS = { FIXED, 1, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_STD;
static int hf_062_V1_19_390_STD_VALUE;
static const FieldPart I062_V1_19_390_STD_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_STD_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_STD_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_STD_PARTS[] = {
&I062_V1_19_390_STD_VALUE,
NULL
};
@@ -48200,7 +48073,7 @@ static const AsterixField I062_V1_19_390_STD = { FIXED, 7, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_STA;
static int hf_062_V1_19_390_STA_VALUE;
static const FieldPart I062_V1_19_390_STA_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_STA_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_STA_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_STA_PARTS[] = {
&I062_V1_19_390_STA_VALUE,
NULL
};
@@ -48215,7 +48088,7 @@ static const value_string valstr_062_V1_19_390_PEM_VA[] = {
static const FieldPart I062_V1_19_390_PEM_VA = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_19_390_PEM_VA, NULL };
static int hf_062_V1_19_390_PEM_MODE3A;
static const FieldPart I062_V1_19_390_PEM_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_19_390_PEM_MODE3A, NULL };
-static const FieldPart *I062_V1_19_390_PEM_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_PEM_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_19_390_PEM_VA,
&I062_V1_19_390_PEM_MODE3A,
@@ -48225,7 +48098,7 @@ static const AsterixField I062_V1_19_390_PEM = { FIXED, 2, 0, 0, &hf_062_V1_19_3
static int hf_062_V1_19_390_PEC;
static int hf_062_V1_19_390_PEC_VALUE;
static const FieldPart I062_V1_19_390_PEC_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_19_390_PEC_VALUE, NULL };
-static const FieldPart *I062_V1_19_390_PEC_PARTS[] = {
+static const FieldPart * const I062_V1_19_390_PEC_PARTS[] = {
&I062_V1_19_390_PEC_VALUE,
NULL
};
@@ -48237,7 +48110,7 @@ static int hf_062_V1_19_500_APC_X;
static const FieldPart I062_V1_19_500_APC_X = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_19_500_APC_X, NULL };
static int hf_062_V1_19_500_APC_Y;
static const FieldPart I062_V1_19_500_APC_Y = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_19_500_APC_Y, NULL };
-static const FieldPart *I062_V1_19_500_APC_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_APC_PARTS[] = {
&I062_V1_19_500_APC_X,
&I062_V1_19_500_APC_Y,
NULL
@@ -48246,7 +48119,7 @@ static const AsterixField I062_V1_19_500_APC = { FIXED, 4, 0, 0, &hf_062_V1_19_5
static int hf_062_V1_19_500_COV;
static int hf_062_V1_19_500_COV_VALUE;
static const FieldPart I062_V1_19_500_COV_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_062_V1_19_500_COV_VALUE, NULL };
-static const FieldPart *I062_V1_19_500_COV_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_COV_PARTS[] = {
&I062_V1_19_500_COV_VALUE,
NULL
};
@@ -48256,7 +48129,7 @@ static int hf_062_V1_19_500_APW_LAT;
static const FieldPart I062_V1_19_500_APW_LAT = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_19_500_APW_LAT, NULL };
static int hf_062_V1_19_500_APW_LON;
static const FieldPart I062_V1_19_500_APW_LON = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_19_500_APW_LON, NULL };
-static const FieldPart *I062_V1_19_500_APW_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_APW_PARTS[] = {
&I062_V1_19_500_APW_LAT,
&I062_V1_19_500_APW_LON,
NULL
@@ -48265,7 +48138,7 @@ static const AsterixField I062_V1_19_500_APW = { FIXED, 4, 0, 0, &hf_062_V1_19_5
static int hf_062_V1_19_500_AGA;
static int hf_062_V1_19_500_AGA_VALUE;
static const FieldPart I062_V1_19_500_AGA_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_19_500_AGA_VALUE, NULL };
-static const FieldPart *I062_V1_19_500_AGA_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_AGA_PARTS[] = {
&I062_V1_19_500_AGA_VALUE,
NULL
};
@@ -48273,7 +48146,7 @@ static const AsterixField I062_V1_19_500_AGA = { FIXED, 1, 0, 0, &hf_062_V1_19_5
static int hf_062_V1_19_500_ABA;
static int hf_062_V1_19_500_ABA_VALUE;
static const FieldPart I062_V1_19_500_ABA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_500_ABA_VALUE, NULL };
-static const FieldPart *I062_V1_19_500_ABA_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_ABA_PARTS[] = {
&I062_V1_19_500_ABA_VALUE,
NULL
};
@@ -48283,7 +48156,7 @@ static int hf_062_V1_19_500_ATV_X;
static const FieldPart I062_V1_19_500_ATV_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_500_ATV_X, NULL };
static int hf_062_V1_19_500_ATV_Y;
static const FieldPart I062_V1_19_500_ATV_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_500_ATV_Y, NULL };
-static const FieldPart *I062_V1_19_500_ATV_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_ATV_PARTS[] = {
&I062_V1_19_500_ATV_X,
&I062_V1_19_500_ATV_Y,
NULL
@@ -48294,7 +48167,7 @@ static int hf_062_V1_19_500_AA_X;
static const FieldPart I062_V1_19_500_AA_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_500_AA_X, NULL };
static int hf_062_V1_19_500_AA_Y;
static const FieldPart I062_V1_19_500_AA_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_19_500_AA_Y, NULL };
-static const FieldPart *I062_V1_19_500_AA_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_AA_PARTS[] = {
&I062_V1_19_500_AA_X,
&I062_V1_19_500_AA_Y,
NULL
@@ -48303,7 +48176,7 @@ static const AsterixField I062_V1_19_500_AA = { FIXED, 2, 0, 0, &hf_062_V1_19_50
static int hf_062_V1_19_500_ARC;
static int hf_062_V1_19_500_ARC_VALUE;
static const FieldPart I062_V1_19_500_ARC_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_19_500_ARC_VALUE, NULL };
-static const FieldPart *I062_V1_19_500_ARC_PARTS[] = {
+static const FieldPart * const I062_V1_19_500_ARC_PARTS[] = {
&I062_V1_19_500_ARC_VALUE,
NULL
};
@@ -48318,7 +48191,7 @@ static int hf_062_V1_19_510_SIDENT;
static const FieldPart I062_V1_19_510_SIDENT = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_19_510_SIDENT, NULL };
static int hf_062_V1_19_510_STRACK;
static const FieldPart I062_V1_19_510_STRACK = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_19_510_STRACK, NULL };
-static const FieldPart *I062_V1_19_510_PARTS[] = {
+static const FieldPart * const I062_V1_19_510_PARTS[] = {
&I062_V1_19_510_MIDENT,
&I062_V1_19_510_MTRACK,
&IXXX_FX,
@@ -48333,8 +48206,7 @@ static const AsterixField I062_V1_19_RE = { EXP, 0, 0, 1, &hf_062_V1_19_RE, NULL
static int hf_062_V1_19_SP;
static const AsterixField I062_V1_19_SP = { EXP, 0, 0, 1, &hf_062_V1_19_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I062_V1_19_uap[] = {
+static const AsterixField * const I062_V1_19_uap[] = {
&I062_V1_19_010,
&IX_SPARE,
&I062_V1_19_015,
@@ -48372,11 +48244,10 @@ static const AsterixField *I062_V1_19_uap[] = {
&I062_V1_19_SP,
NULL
};
-static const AsterixField **I062_V1_19[] = {
+static const AsterixField * const * const I062_V1_19[] = {
I062_V1_19_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 062, edition 1.20 */
static int hf_062_V1_20_010;
@@ -48384,7 +48255,7 @@ static int hf_062_V1_20_010_SAC;
static const FieldPart I062_V1_20_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_010_SAC, NULL };
static int hf_062_V1_20_010_SIC;
static const FieldPart I062_V1_20_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_010_SIC, NULL };
-static const FieldPart *I062_V1_20_010_PARTS[] = {
+static const FieldPart * const I062_V1_20_010_PARTS[] = {
&I062_V1_20_010_SAC,
&I062_V1_20_010_SIC,
NULL
@@ -48393,7 +48264,7 @@ static const AsterixField I062_V1_20_010 = { FIXED, 2, 0, 0, &hf_062_V1_20_010,
static int hf_062_V1_20_015;
static int hf_062_V1_20_015_VALUE;
static const FieldPart I062_V1_20_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_015_VALUE, NULL };
-static const FieldPart *I062_V1_20_015_PARTS[] = {
+static const FieldPart * const I062_V1_20_015_PARTS[] = {
&I062_V1_20_015_VALUE,
NULL
};
@@ -48401,7 +48272,7 @@ static const AsterixField I062_V1_20_015 = { FIXED, 1, 0, 0, &hf_062_V1_20_015,
static int hf_062_V1_20_040;
static int hf_062_V1_20_040_VALUE;
static const FieldPart I062_V1_20_040_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_062_V1_20_040_VALUE, NULL };
-static const FieldPart *I062_V1_20_040_PARTS[] = {
+static const FieldPart * const I062_V1_20_040_PARTS[] = {
&I062_V1_20_040_VALUE,
NULL
};
@@ -48430,7 +48301,7 @@ static const value_string valstr_062_V1_20_060_CH[] = {
static const FieldPart I062_V1_20_060_CH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_060_CH, NULL };
static int hf_062_V1_20_060_MODE3A;
static const FieldPart I062_V1_20_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_20_060_MODE3A, NULL };
-static const FieldPart *I062_V1_20_060_PARTS[] = {
+static const FieldPart * const I062_V1_20_060_PARTS[] = {
&I062_V1_20_060_V,
&I062_V1_20_060_G,
&I062_V1_20_060_CH,
@@ -48442,7 +48313,7 @@ static const AsterixField I062_V1_20_060 = { FIXED, 2, 0, 0, &hf_062_V1_20_060,
static int hf_062_V1_20_070;
static int hf_062_V1_20_070_VALUE;
static const FieldPart I062_V1_20_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_062_V1_20_070_VALUE, NULL };
-static const FieldPart *I062_V1_20_070_PARTS[] = {
+static const FieldPart * const I062_V1_20_070_PARTS[] = {
&I062_V1_20_070_VALUE,
NULL
};
@@ -48711,7 +48582,7 @@ static const value_string valstr_062_V1_20_080_MLAT[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_080_MLAT = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_080_MLAT, NULL };
-static const FieldPart *I062_V1_20_080_PARTS[] = {
+static const FieldPart * const I062_V1_20_080_PARTS[] = {
&I062_V1_20_080_MON,
&I062_V1_20_080_SPI,
&I062_V1_20_080_MRH,
@@ -48761,7 +48632,7 @@ static int hf_062_V1_20_100_X;
static const FieldPart I062_V1_20_100_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_20_100_X, NULL };
static int hf_062_V1_20_100_Y;
static const FieldPart I062_V1_20_100_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_V1_20_100_Y, NULL };
-static const FieldPart *I062_V1_20_100_PARTS[] = {
+static const FieldPart * const I062_V1_20_100_PARTS[] = {
&I062_V1_20_100_X,
&I062_V1_20_100_Y,
NULL
@@ -48772,7 +48643,7 @@ static int hf_062_V1_20_105_LAT;
static const FieldPart I062_V1_20_105_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_20_105_LAT, NULL };
static int hf_062_V1_20_105_LON;
static const FieldPart I062_V1_20_105_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_V1_20_105_LON, NULL };
-static const FieldPart *I062_V1_20_105_PARTS[] = {
+static const FieldPart * const I062_V1_20_105_PARTS[] = {
&I062_V1_20_105_LAT,
&I062_V1_20_105_LON,
NULL
@@ -48836,7 +48707,7 @@ static const value_string valstr_062_V1_20_110_SUM_X[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_110_SUM_X = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_110_SUM_X, NULL };
-static const FieldPart *I062_V1_20_110_SUM_PARTS[] = {
+static const FieldPart * const I062_V1_20_110_SUM_PARTS[] = {
&I062_V1_20_110_SUM_M5,
&I062_V1_20_110_SUM_ID,
&I062_V1_20_110_SUM_DA,
@@ -48855,7 +48726,7 @@ static int hf_062_V1_20_110_PMN_NAT;
static const FieldPart I062_V1_20_110_PMN_NAT = { 5, 1.0, FIELD_PART_HEX, &hf_062_V1_20_110_PMN_NAT, NULL };
static int hf_062_V1_20_110_PMN_MIS;
static const FieldPart I062_V1_20_110_PMN_MIS = { 6, 1.0, FIELD_PART_HEX, &hf_062_V1_20_110_PMN_MIS, NULL };
-static const FieldPart *I062_V1_20_110_PMN_PARTS[] = {
+static const FieldPart * const I062_V1_20_110_PMN_PARTS[] = {
&IXXX_2bit_spare,
&I062_V1_20_110_PMN_PIN,
&IXXX_3bit_spare,
@@ -48870,7 +48741,7 @@ static int hf_062_V1_20_110_POS_LAT;
static const FieldPart I062_V1_20_110_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_20_110_POS_LAT, NULL };
static int hf_062_V1_20_110_POS_LON;
static const FieldPart I062_V1_20_110_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_20_110_POS_LON, NULL };
-static const FieldPart *I062_V1_20_110_POS_PARTS[] = {
+static const FieldPart * const I062_V1_20_110_POS_PARTS[] = {
&I062_V1_20_110_POS_LAT,
&I062_V1_20_110_POS_LON,
NULL
@@ -48886,7 +48757,7 @@ static const value_string valstr_062_V1_20_110_GA_RES[] = {
static const FieldPart I062_V1_20_110_GA_RES = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_110_GA_RES, NULL };
static int hf_062_V1_20_110_GA_GA;
static const FieldPart I062_V1_20_110_GA_GA = { 14, 25.0, FIELD_PART_FLOAT, &hf_062_V1_20_110_GA_GA, NULL };
-static const FieldPart *I062_V1_20_110_GA_PARTS[] = {
+static const FieldPart * const I062_V1_20_110_GA_PARTS[] = {
&IXXX_1bit_spare,
&I062_V1_20_110_GA_RES,
&I062_V1_20_110_GA_GA,
@@ -48896,7 +48767,7 @@ static const AsterixField I062_V1_20_110_GA = { FIXED, 2, 0, 0, &hf_062_V1_20_11
static int hf_062_V1_20_110_EM1;
static int hf_062_V1_20_110_EM1_EM1;
static const FieldPart I062_V1_20_110_EM1_EM1 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_20_110_EM1_EM1, NULL };
-static const FieldPart *I062_V1_20_110_EM1_PARTS[] = {
+static const FieldPart * const I062_V1_20_110_EM1_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_20_110_EM1_EM1,
NULL
@@ -48905,7 +48776,7 @@ static const AsterixField I062_V1_20_110_EM1 = { FIXED, 2, 0, 0, &hf_062_V1_20_1
static int hf_062_V1_20_110_TOS;
static int hf_062_V1_20_110_TOS_VALUE;
static const FieldPart I062_V1_20_110_TOS_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_062_V1_20_110_TOS_VALUE, NULL };
-static const FieldPart *I062_V1_20_110_TOS_PARTS[] = {
+static const FieldPart * const I062_V1_20_110_TOS_PARTS[] = {
&I062_V1_20_110_TOS_VALUE,
NULL
};
@@ -48946,7 +48817,7 @@ static const value_string valstr_062_V1_20_110_XP_X1[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_110_XP_X1 = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_110_XP_X1, NULL };
-static const FieldPart *I062_V1_20_110_XP_PARTS[] = {
+static const FieldPart * const I062_V1_20_110_XP_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_20_110_XP_X5,
&I062_V1_20_110_XP_XC,
@@ -48960,7 +48831,7 @@ static const AsterixField I062_V1_20_110 = { COMPOUND, 0, 0, 0, &hf_062_V1_20_11
static int hf_062_V1_20_120;
static int hf_062_V1_20_120_MODE2;
static const FieldPart I062_V1_20_120_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_20_120_MODE2, NULL };
-static const FieldPart *I062_V1_20_120_PARTS[] = {
+static const FieldPart * const I062_V1_20_120_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_20_120_MODE2,
NULL
@@ -48969,7 +48840,7 @@ static const AsterixField I062_V1_20_120 = { FIXED, 2, 0, 0, &hf_062_V1_20_120,
static int hf_062_V1_20_130;
static int hf_062_V1_20_130_VALUE;
static const FieldPart I062_V1_20_130_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_20_130_VALUE, NULL };
-static const FieldPart *I062_V1_20_130_PARTS[] = {
+static const FieldPart * const I062_V1_20_130_PARTS[] = {
&I062_V1_20_130_VALUE,
NULL
};
@@ -48984,7 +48855,7 @@ static const value_string valstr_062_V1_20_135_QNH[] = {
static const FieldPart I062_V1_20_135_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_135_QNH, NULL };
static int hf_062_V1_20_135_CTB;
static const FieldPart I062_V1_20_135_CTB = { 15, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_135_CTB, NULL };
-static const FieldPart *I062_V1_20_135_PARTS[] = {
+static const FieldPart * const I062_V1_20_135_PARTS[] = {
&I062_V1_20_135_QNH,
&I062_V1_20_135_CTB,
NULL
@@ -48993,7 +48864,7 @@ static const AsterixField I062_V1_20_135 = { FIXED, 2, 0, 0, &hf_062_V1_20_135,
static int hf_062_V1_20_136;
static int hf_062_V1_20_136_VALUE;
static const FieldPart I062_V1_20_136_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_136_VALUE, NULL };
-static const FieldPart *I062_V1_20_136_PARTS[] = {
+static const FieldPart * const I062_V1_20_136_PARTS[] = {
&I062_V1_20_136_VALUE,
NULL
};
@@ -49003,7 +48874,7 @@ static int hf_062_V1_20_185_VX;
static const FieldPart I062_V1_20_185_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_185_VX, NULL };
static int hf_062_V1_20_185_VY;
static const FieldPart I062_V1_20_185_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_185_VY, NULL };
-static const FieldPart *I062_V1_20_185_PARTS[] = {
+static const FieldPart * const I062_V1_20_185_PARTS[] = {
&I062_V1_20_185_VX,
&I062_V1_20_185_VY,
NULL
@@ -49044,7 +48915,7 @@ static const value_string valstr_062_V1_20_200_ADF[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_200_ADF = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_200_ADF, NULL };
-static const FieldPart *I062_V1_20_200_PARTS[] = {
+static const FieldPart * const I062_V1_20_200_PARTS[] = {
&I062_V1_20_200_TRANS,
&I062_V1_20_200_LONG,
&I062_V1_20_200_VERT,
@@ -49058,7 +48929,7 @@ static int hf_062_V1_20_210_AX;
static const FieldPart I062_V1_20_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_210_AX, NULL };
static int hf_062_V1_20_210_AY;
static const FieldPart I062_V1_20_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_210_AY, NULL };
-static const FieldPart *I062_V1_20_210_PARTS[] = {
+static const FieldPart * const I062_V1_20_210_PARTS[] = {
&I062_V1_20_210_AX,
&I062_V1_20_210_AY,
NULL
@@ -49067,7 +48938,7 @@ static const AsterixField I062_V1_20_210 = { FIXED, 2, 0, 0, &hf_062_V1_20_210,
static int hf_062_V1_20_220;
static int hf_062_V1_20_220_VALUE;
static const FieldPart I062_V1_20_220_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_20_220_VALUE, NULL };
-static const FieldPart *I062_V1_20_220_PARTS[] = {
+static const FieldPart * const I062_V1_20_220_PARTS[] = {
&I062_V1_20_220_VALUE,
NULL
};
@@ -49084,7 +48955,7 @@ static const value_string valstr_062_V1_20_245_STI[] = {
static const FieldPart I062_V1_20_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_20_245_STI, NULL };
static int hf_062_V1_20_245_CHR;
static const FieldPart I062_V1_20_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_20_245_CHR, NULL };
-static const FieldPart *I062_V1_20_245_PARTS[] = {
+static const FieldPart * const I062_V1_20_245_PARTS[] = {
&I062_V1_20_245_STI,
&IXXX_6bit_spare,
&I062_V1_20_245_CHR,
@@ -49098,7 +48969,7 @@ static int hf_062_V1_20_270_ORIENTATION;
static const FieldPart I062_V1_20_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_062_V1_20_270_ORIENTATION, NULL };
static int hf_062_V1_20_270_WIDTH;
static const FieldPart I062_V1_20_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_20_270_WIDTH, NULL };
-static const FieldPart *I062_V1_20_270_PARTS[] = {
+static const FieldPart * const I062_V1_20_270_PARTS[] = {
&I062_V1_20_270_LENGTH,
&IXXX_FX,
&I062_V1_20_270_ORIENTATION,
@@ -49112,7 +48983,7 @@ static int hf_062_V1_20_290;
static int hf_062_V1_20_290_TRK;
static int hf_062_V1_20_290_TRK_VALUE;
static const FieldPart I062_V1_20_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_TRK_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_TRK_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_TRK_PARTS[] = {
&I062_V1_20_290_TRK_VALUE,
NULL
};
@@ -49120,7 +48991,7 @@ static const AsterixField I062_V1_20_290_TRK = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_PSR;
static int hf_062_V1_20_290_PSR_VALUE;
static const FieldPart I062_V1_20_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_PSR_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_PSR_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_PSR_PARTS[] = {
&I062_V1_20_290_PSR_VALUE,
NULL
};
@@ -49128,7 +48999,7 @@ static const AsterixField I062_V1_20_290_PSR = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_SSR;
static int hf_062_V1_20_290_SSR_VALUE;
static const FieldPart I062_V1_20_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_SSR_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_SSR_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_SSR_PARTS[] = {
&I062_V1_20_290_SSR_VALUE,
NULL
};
@@ -49136,7 +49007,7 @@ static const AsterixField I062_V1_20_290_SSR = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_MDS;
static int hf_062_V1_20_290_MDS_VALUE;
static const FieldPart I062_V1_20_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_MDS_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_MDS_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_MDS_PARTS[] = {
&I062_V1_20_290_MDS_VALUE,
NULL
};
@@ -49144,7 +49015,7 @@ static const AsterixField I062_V1_20_290_MDS = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_ADS;
static int hf_062_V1_20_290_ADS_VALUE;
static const FieldPart I062_V1_20_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_ADS_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_ADS_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_ADS_PARTS[] = {
&I062_V1_20_290_ADS_VALUE,
NULL
};
@@ -49152,7 +49023,7 @@ static const AsterixField I062_V1_20_290_ADS = { FIXED, 2, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_ES;
static int hf_062_V1_20_290_ES_VALUE;
static const FieldPart I062_V1_20_290_ES_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_ES_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_ES_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_ES_PARTS[] = {
&I062_V1_20_290_ES_VALUE,
NULL
};
@@ -49160,7 +49031,7 @@ static const AsterixField I062_V1_20_290_ES = { FIXED, 1, 0, 0, &hf_062_V1_20_29
static int hf_062_V1_20_290_VDL;
static int hf_062_V1_20_290_VDL_VALUE;
static const FieldPart I062_V1_20_290_VDL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_VDL_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_VDL_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_VDL_PARTS[] = {
&I062_V1_20_290_VDL_VALUE,
NULL
};
@@ -49168,7 +49039,7 @@ static const AsterixField I062_V1_20_290_VDL = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_UAT;
static int hf_062_V1_20_290_UAT_VALUE;
static const FieldPart I062_V1_20_290_UAT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_UAT_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_UAT_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_UAT_PARTS[] = {
&I062_V1_20_290_UAT_VALUE,
NULL
};
@@ -49176,7 +49047,7 @@ static const AsterixField I062_V1_20_290_UAT = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_LOP;
static int hf_062_V1_20_290_LOP_VALUE;
static const FieldPart I062_V1_20_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_LOP_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_LOP_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_LOP_PARTS[] = {
&I062_V1_20_290_LOP_VALUE,
NULL
};
@@ -49184,7 +49055,7 @@ static const AsterixField I062_V1_20_290_LOP = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_290_MLT;
static int hf_062_V1_20_290_MLT_VALUE;
static const FieldPart I062_V1_20_290_MLT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_290_MLT_VALUE, NULL };
-static const FieldPart *I062_V1_20_290_MLT_PARTS[] = {
+static const FieldPart * const I062_V1_20_290_MLT_PARTS[] = {
&I062_V1_20_290_MLT_VALUE,
NULL
};
@@ -49194,7 +49065,7 @@ static int hf_062_V1_20_295;
static int hf_062_V1_20_295_MFL;
static int hf_062_V1_20_295_MFL_VALUE;
static const FieldPart I062_V1_20_295_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MFL_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MFL_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MFL_PARTS[] = {
&I062_V1_20_295_MFL_VALUE,
NULL
};
@@ -49202,7 +49073,7 @@ static const AsterixField I062_V1_20_295_MFL = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MD1;
static int hf_062_V1_20_295_MD1_VALUE;
static const FieldPart I062_V1_20_295_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MD1_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MD1_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MD1_PARTS[] = {
&I062_V1_20_295_MD1_VALUE,
NULL
};
@@ -49210,7 +49081,7 @@ static const AsterixField I062_V1_20_295_MD1 = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MD2;
static int hf_062_V1_20_295_MD2_VALUE;
static const FieldPart I062_V1_20_295_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MD2_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MD2_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MD2_PARTS[] = {
&I062_V1_20_295_MD2_VALUE,
NULL
};
@@ -49218,7 +49089,7 @@ static const AsterixField I062_V1_20_295_MD2 = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MDA;
static int hf_062_V1_20_295_MDA_VALUE;
static const FieldPart I062_V1_20_295_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MDA_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MDA_PARTS[] = {
&I062_V1_20_295_MDA_VALUE,
NULL
};
@@ -49226,7 +49097,7 @@ static const AsterixField I062_V1_20_295_MDA = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MD4;
static int hf_062_V1_20_295_MD4_VALUE;
static const FieldPart I062_V1_20_295_MD4_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MD4_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MD4_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MD4_PARTS[] = {
&I062_V1_20_295_MD4_VALUE,
NULL
};
@@ -49234,7 +49105,7 @@ static const AsterixField I062_V1_20_295_MD4 = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MD5;
static int hf_062_V1_20_295_MD5_VALUE;
static const FieldPart I062_V1_20_295_MD5_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MD5_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MD5_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MD5_PARTS[] = {
&I062_V1_20_295_MD5_VALUE,
NULL
};
@@ -49242,7 +49113,7 @@ static const AsterixField I062_V1_20_295_MD5 = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MHG;
static int hf_062_V1_20_295_MHG_VALUE;
static const FieldPart I062_V1_20_295_MHG_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MHG_PARTS[] = {
&I062_V1_20_295_MHG_VALUE,
NULL
};
@@ -49250,7 +49121,7 @@ static const AsterixField I062_V1_20_295_MHG = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_IAS;
static int hf_062_V1_20_295_IAS_VALUE;
static const FieldPart I062_V1_20_295_IAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_IAS_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_IAS_PARTS[] = {
&I062_V1_20_295_IAS_VALUE,
NULL
};
@@ -49258,7 +49129,7 @@ static const AsterixField I062_V1_20_295_IAS = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_TAS;
static int hf_062_V1_20_295_TAS_VALUE;
static const FieldPart I062_V1_20_295_TAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_TAS_PARTS[] = {
&I062_V1_20_295_TAS_VALUE,
NULL
};
@@ -49266,7 +49137,7 @@ static const AsterixField I062_V1_20_295_TAS = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_SAL;
static int hf_062_V1_20_295_SAL_VALUE;
static const FieldPart I062_V1_20_295_SAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_SAL_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_SAL_PARTS[] = {
&I062_V1_20_295_SAL_VALUE,
NULL
};
@@ -49274,7 +49145,7 @@ static const AsterixField I062_V1_20_295_SAL = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_FSS;
static int hf_062_V1_20_295_FSS_VALUE;
static const FieldPart I062_V1_20_295_FSS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_FSS_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_FSS_PARTS[] = {
&I062_V1_20_295_FSS_VALUE,
NULL
};
@@ -49282,7 +49153,7 @@ static const AsterixField I062_V1_20_295_FSS = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_TID;
static int hf_062_V1_20_295_TID_VALUE;
static const FieldPart I062_V1_20_295_TID_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_TID_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_TID_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_TID_PARTS[] = {
&I062_V1_20_295_TID_VALUE,
NULL
};
@@ -49290,7 +49161,7 @@ static const AsterixField I062_V1_20_295_TID = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_COM;
static int hf_062_V1_20_295_COM_VALUE;
static const FieldPart I062_V1_20_295_COM_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_COM_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_COM_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_COM_PARTS[] = {
&I062_V1_20_295_COM_VALUE,
NULL
};
@@ -49298,7 +49169,7 @@ static const AsterixField I062_V1_20_295_COM = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_SAB;
static int hf_062_V1_20_295_SAB_VALUE;
static const FieldPart I062_V1_20_295_SAB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_SAB_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_SAB_PARTS[] = {
&I062_V1_20_295_SAB_VALUE,
NULL
};
@@ -49306,7 +49177,7 @@ static const AsterixField I062_V1_20_295_SAB = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_ACS;
static int hf_062_V1_20_295_ACS_VALUE;
static const FieldPart I062_V1_20_295_ACS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_ACS_PARTS[] = {
&I062_V1_20_295_ACS_VALUE,
NULL
};
@@ -49314,7 +49185,7 @@ static const AsterixField I062_V1_20_295_ACS = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_BVR;
static int hf_062_V1_20_295_BVR_VALUE;
static const FieldPart I062_V1_20_295_BVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_BVR_PARTS[] = {
&I062_V1_20_295_BVR_VALUE,
NULL
};
@@ -49322,7 +49193,7 @@ static const AsterixField I062_V1_20_295_BVR = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_GVR;
static int hf_062_V1_20_295_GVR_VALUE;
static const FieldPart I062_V1_20_295_GVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_GVR_PARTS[] = {
&I062_V1_20_295_GVR_VALUE,
NULL
};
@@ -49330,7 +49201,7 @@ static const AsterixField I062_V1_20_295_GVR = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_RAN;
static int hf_062_V1_20_295_RAN_VALUE;
static const FieldPart I062_V1_20_295_RAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_RAN_PARTS[] = {
&I062_V1_20_295_RAN_VALUE,
NULL
};
@@ -49338,7 +49209,7 @@ static const AsterixField I062_V1_20_295_RAN = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_TAR;
static int hf_062_V1_20_295_TAR_VALUE;
static const FieldPart I062_V1_20_295_TAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_TAR_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_TAR_PARTS[] = {
&I062_V1_20_295_TAR_VALUE,
NULL
};
@@ -49346,7 +49217,7 @@ static const AsterixField I062_V1_20_295_TAR = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_TAN;
static int hf_062_V1_20_295_TAN_VALUE;
static const FieldPart I062_V1_20_295_TAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_TAN_PARTS[] = {
&I062_V1_20_295_TAN_VALUE,
NULL
};
@@ -49354,7 +49225,7 @@ static const AsterixField I062_V1_20_295_TAN = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_GSP;
static int hf_062_V1_20_295_GSP_VALUE;
static const FieldPart I062_V1_20_295_GSP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_GSP_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_GSP_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_GSP_PARTS[] = {
&I062_V1_20_295_GSP_VALUE,
NULL
};
@@ -49362,7 +49233,7 @@ static const AsterixField I062_V1_20_295_GSP = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_VUN;
static int hf_062_V1_20_295_VUN_VALUE;
static const FieldPart I062_V1_20_295_VUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_VUN_PARTS[] = {
&I062_V1_20_295_VUN_VALUE,
NULL
};
@@ -49370,7 +49241,7 @@ static const AsterixField I062_V1_20_295_VUN = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MET;
static int hf_062_V1_20_295_MET_VALUE;
static const FieldPart I062_V1_20_295_MET_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MET_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MET_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MET_PARTS[] = {
&I062_V1_20_295_MET_VALUE,
NULL
};
@@ -49378,7 +49249,7 @@ static const AsterixField I062_V1_20_295_MET = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_EMC;
static int hf_062_V1_20_295_EMC_VALUE;
static const FieldPart I062_V1_20_295_EMC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_EMC_PARTS[] = {
&I062_V1_20_295_EMC_VALUE,
NULL
};
@@ -49386,7 +49257,7 @@ static const AsterixField I062_V1_20_295_EMC = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_POS;
static int hf_062_V1_20_295_POS_VALUE;
static const FieldPart I062_V1_20_295_POS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_POS_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_POS_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_POS_PARTS[] = {
&I062_V1_20_295_POS_VALUE,
NULL
};
@@ -49394,7 +49265,7 @@ static const AsterixField I062_V1_20_295_POS = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_GAL;
static int hf_062_V1_20_295_GAL_VALUE;
static const FieldPart I062_V1_20_295_GAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_GAL_PARTS[] = {
&I062_V1_20_295_GAL_VALUE,
NULL
};
@@ -49402,7 +49273,7 @@ static const AsterixField I062_V1_20_295_GAL = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_PUN;
static int hf_062_V1_20_295_PUN_VALUE;
static const FieldPart I062_V1_20_295_PUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_PUN_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_PUN_PARTS[] = {
&I062_V1_20_295_PUN_VALUE,
NULL
};
@@ -49410,7 +49281,7 @@ static const AsterixField I062_V1_20_295_PUN = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MB;
static int hf_062_V1_20_295_MB_VALUE;
static const FieldPart I062_V1_20_295_MB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MB_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MB_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MB_PARTS[] = {
&I062_V1_20_295_MB_VALUE,
NULL
};
@@ -49418,7 +49289,7 @@ static const AsterixField I062_V1_20_295_MB = { FIXED, 1, 0, 0, &hf_062_V1_20_29
static int hf_062_V1_20_295_IAR;
static int hf_062_V1_20_295_IAR_VALUE;
static const FieldPart I062_V1_20_295_IAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_IAR_PARTS[] = {
&I062_V1_20_295_IAR_VALUE,
NULL
};
@@ -49426,7 +49297,7 @@ static const AsterixField I062_V1_20_295_IAR = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_MAC;
static int hf_062_V1_20_295_MAC_VALUE;
static const FieldPart I062_V1_20_295_MAC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_MAC_PARTS[] = {
&I062_V1_20_295_MAC_VALUE,
NULL
};
@@ -49434,7 +49305,7 @@ static const AsterixField I062_V1_20_295_MAC = { FIXED, 1, 0, 0, &hf_062_V1_20_2
static int hf_062_V1_20_295_BPS;
static int hf_062_V1_20_295_BPS_VALUE;
static const FieldPart I062_V1_20_295_BPS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_295_BPS_VALUE, NULL };
-static const FieldPart *I062_V1_20_295_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_20_295_BPS_PARTS[] = {
&I062_V1_20_295_BPS_VALUE,
NULL
};
@@ -49463,7 +49334,7 @@ static const value_string valstr_062_V1_20_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_20_300_VALUE, NULL };
-static const FieldPart *I062_V1_20_300_PARTS[] = {
+static const FieldPart * const I062_V1_20_300_PARTS[] = {
&I062_V1_20_300_VALUE,
NULL
};
@@ -49474,7 +49345,7 @@ static int hf_062_V1_20_340_SID_SAC;
static const FieldPart I062_V1_20_340_SID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_340_SID_SAC, NULL };
static int hf_062_V1_20_340_SID_SIC;
static const FieldPart I062_V1_20_340_SID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_340_SID_SIC, NULL };
-static const FieldPart *I062_V1_20_340_SID_PARTS[] = {
+static const FieldPart * const I062_V1_20_340_SID_PARTS[] = {
&I062_V1_20_340_SID_SAC,
&I062_V1_20_340_SID_SIC,
NULL
@@ -49485,7 +49356,7 @@ static int hf_062_V1_20_340_POS_RHO;
static const FieldPart I062_V1_20_340_POS_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_062_V1_20_340_POS_RHO, NULL };
static int hf_062_V1_20_340_POS_THETA;
static const FieldPart I062_V1_20_340_POS_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_20_340_POS_THETA, NULL };
-static const FieldPart *I062_V1_20_340_POS_PARTS[] = {
+static const FieldPart * const I062_V1_20_340_POS_PARTS[] = {
&I062_V1_20_340_POS_RHO,
&I062_V1_20_340_POS_THETA,
NULL
@@ -49494,7 +49365,7 @@ static const AsterixField I062_V1_20_340_POS = { FIXED, 4, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_340_HEIGHT;
static int hf_062_V1_20_340_HEIGHT_VALUE;
static const FieldPart I062_V1_20_340_HEIGHT_VALUE = { 16, 25.0, FIELD_PART_FLOAT, &hf_062_V1_20_340_HEIGHT_VALUE, NULL };
-static const FieldPart *I062_V1_20_340_HEIGHT_PARTS[] = {
+static const FieldPart * const I062_V1_20_340_HEIGHT_PARTS[] = {
&I062_V1_20_340_HEIGHT_VALUE,
NULL
};
@@ -49516,7 +49387,7 @@ static const value_string valstr_062_V1_20_340_MDC_G[] = {
static const FieldPart I062_V1_20_340_MDC_G = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_340_MDC_G, NULL };
static int hf_062_V1_20_340_MDC_LMC;
static const FieldPart I062_V1_20_340_MDC_LMC = { 14, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_340_MDC_LMC, NULL };
-static const FieldPart *I062_V1_20_340_MDC_PARTS[] = {
+static const FieldPart * const I062_V1_20_340_MDC_PARTS[] = {
&I062_V1_20_340_MDC_V,
&I062_V1_20_340_MDC_G,
&I062_V1_20_340_MDC_LMC,
@@ -49547,7 +49418,7 @@ static const value_string valstr_062_V1_20_340_MDA_L[] = {
static const FieldPart I062_V1_20_340_MDA_L = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_340_MDA_L, NULL };
static int hf_062_V1_20_340_MDA_MODE3A;
static const FieldPart I062_V1_20_340_MDA_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_20_340_MDA_MODE3A, NULL };
-static const FieldPart *I062_V1_20_340_MDA_PARTS[] = {
+static const FieldPart * const I062_V1_20_340_MDA_PARTS[] = {
&I062_V1_20_340_MDA_V,
&I062_V1_20_340_MDA_G,
&I062_V1_20_340_MDA_L,
@@ -49591,7 +49462,7 @@ static const value_string valstr_062_V1_20_340_TYP_TST[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_340_TYP_TST = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_340_TYP_TST, NULL };
-static const FieldPart *I062_V1_20_340_TYP_PARTS[] = {
+static const FieldPart * const I062_V1_20_340_TYP_PARTS[] = {
&I062_V1_20_340_TYP_TYP,
&I062_V1_20_340_TYP_SIM,
&I062_V1_20_340_TYP_RAB,
@@ -49605,7 +49476,7 @@ static int hf_062_V1_20_380;
static int hf_062_V1_20_380_ADR;
static int hf_062_V1_20_380_ADR_VALUE;
static const FieldPart I062_V1_20_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_ADR_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_ADR_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_ADR_PARTS[] = {
&I062_V1_20_380_ADR_VALUE,
NULL
};
@@ -49613,7 +49484,7 @@ static const AsterixField I062_V1_20_380_ADR = { FIXED, 3, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_ID;
static int hf_062_V1_20_380_ID_VALUE;
static const FieldPart I062_V1_20_380_ID_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_V1_20_380_ID_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_ID_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_ID_PARTS[] = {
&I062_V1_20_380_ID_VALUE,
NULL
};
@@ -49621,7 +49492,7 @@ static const AsterixField I062_V1_20_380_ID = { FIXED, 6, 0, 0, &hf_062_V1_20_38
static int hf_062_V1_20_380_MHG;
static int hf_062_V1_20_380_MHG_VALUE;
static const FieldPart I062_V1_20_380_MHG_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_20_380_MHG_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_MHG_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_MHG_PARTS[] = {
&I062_V1_20_380_MHG_VALUE,
NULL
};
@@ -49636,7 +49507,7 @@ static const value_string valstr_062_V1_20_380_IAS_IM[] = {
static const FieldPart I062_V1_20_380_IAS_IM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_IAS_IM, NULL };
static int hf_062_V1_20_380_IAS_IAS;
static const FieldPart I062_V1_20_380_IAS_IAS = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_IAS_IAS, NULL };
-static const FieldPart *I062_V1_20_380_IAS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_IAS_PARTS[] = {
&I062_V1_20_380_IAS_IM,
&I062_V1_20_380_IAS_IAS,
NULL
@@ -49645,7 +49516,7 @@ static const AsterixField I062_V1_20_380_IAS = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_TAS;
static int hf_062_V1_20_380_TAS_VALUE;
static const FieldPart I062_V1_20_380_TAS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_20_380_TAS_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_TAS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_TAS_PARTS[] = {
&I062_V1_20_380_TAS_VALUE,
NULL
};
@@ -49669,7 +49540,7 @@ static const value_string valstr_062_V1_20_380_SAL_SRC[] = {
static const FieldPart I062_V1_20_380_SAL_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_SAL_SRC, NULL };
static int hf_062_V1_20_380_SAL_ALT;
static const FieldPart I062_V1_20_380_SAL_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_20_380_SAL_ALT, NULL };
-static const FieldPart *I062_V1_20_380_SAL_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_SAL_PARTS[] = {
&I062_V1_20_380_SAL_SAS,
&I062_V1_20_380_SAL_SRC,
&I062_V1_20_380_SAL_ALT,
@@ -49700,7 +49571,7 @@ static const value_string valstr_062_V1_20_380_FSS_AM[] = {
static const FieldPart I062_V1_20_380_FSS_AM = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_FSS_AM, NULL };
static int hf_062_V1_20_380_FSS_ALT;
static const FieldPart I062_V1_20_380_FSS_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_V1_20_380_FSS_ALT, NULL };
-static const FieldPart *I062_V1_20_380_FSS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_FSS_PARTS[] = {
&I062_V1_20_380_FSS_MV,
&I062_V1_20_380_FSS_AH,
&I062_V1_20_380_FSS_AM,
@@ -49723,7 +49594,7 @@ static const value_string valstr_062_V1_20_380_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_380_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_TIS_NVB, NULL };
-static const FieldPart *I062_V1_20_380_TIS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_TIS_PARTS[] = {
&I062_V1_20_380_TIS_NAV,
&I062_V1_20_380_TIS_NVB,
&IXXX_5bit_spare,
@@ -49798,7 +49669,7 @@ static int hf_062_V1_20_380_TID_TOV;
static const FieldPart I062_V1_20_380_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_20_380_TID_TOV, NULL };
static int hf_062_V1_20_380_TID_TTR;
static const FieldPart I062_V1_20_380_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_062_V1_20_380_TID_TTR, NULL };
-static const FieldPart *I062_V1_20_380_TID_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_TID_PARTS[] = {
&I062_V1_20_380_TID_TCA,
&I062_V1_20_380_TID_NC,
&I062_V1_20_380_TID_TCPN,
@@ -49866,7 +49737,7 @@ static int hf_062_V1_20_380_COM_B1A;
static const FieldPart I062_V1_20_380_COM_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_COM_B1A, NULL };
static int hf_062_V1_20_380_COM_B1B;
static const FieldPart I062_V1_20_380_COM_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_COM_B1B, NULL };
-static const FieldPart *I062_V1_20_380_COM_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_COM_PARTS[] = {
&I062_V1_20_380_COM_COM,
&I062_V1_20_380_COM_STAT,
&IXXX_2bit_spare,
@@ -49926,7 +49797,7 @@ static const value_string valstr_062_V1_20_380_SAB_STAT[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_380_SAB_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_SAB_STAT, NULL };
-static const FieldPart *I062_V1_20_380_SAB_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_SAB_PARTS[] = {
&I062_V1_20_380_SAB_AC,
&I062_V1_20_380_SAB_MN,
&I062_V1_20_380_SAB_DC,
@@ -49939,7 +49810,7 @@ static const AsterixField I062_V1_20_380_SAB = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_ACS;
static int hf_062_V1_20_380_ACS_VALUE;
static const FieldPart I062_V1_20_380_ACS_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_ACS_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_ACS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_ACS_PARTS[] = {
&I062_V1_20_380_ACS_VALUE,
NULL
};
@@ -49947,7 +49818,7 @@ static const AsterixField I062_V1_20_380_ACS = { FIXED, 7, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_BVR;
static int hf_062_V1_20_380_BVR_VALUE;
static const FieldPart I062_V1_20_380_BVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_20_380_BVR_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_BVR_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_BVR_PARTS[] = {
&I062_V1_20_380_BVR_VALUE,
NULL
};
@@ -49955,7 +49826,7 @@ static const AsterixField I062_V1_20_380_BVR = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_GVR;
static int hf_062_V1_20_380_GVR_VALUE;
static const FieldPart I062_V1_20_380_GVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_20_380_GVR_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_GVR_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_GVR_PARTS[] = {
&I062_V1_20_380_GVR_VALUE,
NULL
};
@@ -49963,7 +49834,7 @@ static const AsterixField I062_V1_20_380_GVR = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_RAN;
static int hf_062_V1_20_380_RAN_VALUE;
static const FieldPart I062_V1_20_380_RAN_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_062_V1_20_380_RAN_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_RAN_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_RAN_PARTS[] = {
&I062_V1_20_380_RAN_VALUE,
NULL
};
@@ -49980,7 +49851,7 @@ static const value_string valstr_062_V1_20_380_TAR_TI[] = {
static const FieldPart I062_V1_20_380_TAR_TI = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_TAR_TI, NULL };
static int hf_062_V1_20_380_TAR_ROT;
static const FieldPart I062_V1_20_380_TAR_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_380_TAR_ROT, NULL };
-static const FieldPart *I062_V1_20_380_TAR_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_TAR_PARTS[] = {
&I062_V1_20_380_TAR_TI,
&IXXX_6bit_spare,
&I062_V1_20_380_TAR_ROT,
@@ -49991,7 +49862,7 @@ static const AsterixField I062_V1_20_380_TAR = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_TAN;
static int hf_062_V1_20_380_TAN_VALUE;
static const FieldPart I062_V1_20_380_TAN_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_V1_20_380_TAN_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_TAN_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_TAN_PARTS[] = {
&I062_V1_20_380_TAN_VALUE,
NULL
};
@@ -49999,7 +49870,7 @@ static const AsterixField I062_V1_20_380_TAN = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_GS;
static int hf_062_V1_20_380_GS_VALUE;
static const FieldPart I062_V1_20_380_GS_VALUE = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_062_V1_20_380_GS_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_GS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_GS_PARTS[] = {
&I062_V1_20_380_GS_VALUE,
NULL
};
@@ -50007,7 +49878,7 @@ static const AsterixField I062_V1_20_380_GS = { FIXED, 2, 0, 0, &hf_062_V1_20_38
static int hf_062_V1_20_380_VUN;
static int hf_062_V1_20_380_VUN_VALUE;
static const FieldPart I062_V1_20_380_VUN_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_VUN_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_VUN_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_VUN_PARTS[] = {
&I062_V1_20_380_VUN_VALUE,
NULL
};
@@ -50049,7 +49920,7 @@ static int hf_062_V1_20_380_MET_TMPD;
static const FieldPart I062_V1_20_380_MET_TMPD = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_V1_20_380_MET_TMPD, NULL };
static int hf_062_V1_20_380_MET_TRBD;
static const FieldPart I062_V1_20_380_MET_TRBD = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_MET_TRBD, NULL };
-static const FieldPart *I062_V1_20_380_MET_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_MET_PARTS[] = {
&I062_V1_20_380_MET_WS,
&I062_V1_20_380_MET_WD,
&I062_V1_20_380_MET_TMP,
@@ -50092,7 +49963,7 @@ static const value_string valstr_062_V1_20_380_EMC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_380_EMC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_V1_20_380_EMC_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_EMC_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_EMC_PARTS[] = {
&I062_V1_20_380_EMC_VALUE,
NULL
};
@@ -50102,7 +49973,7 @@ static int hf_062_V1_20_380_POS_LAT;
static const FieldPart I062_V1_20_380_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_20_380_POS_LAT, NULL };
static int hf_062_V1_20_380_POS_LON;
static const FieldPart I062_V1_20_380_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_V1_20_380_POS_LON, NULL };
-static const FieldPart *I062_V1_20_380_POS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_POS_PARTS[] = {
&I062_V1_20_380_POS_LAT,
&I062_V1_20_380_POS_LON,
NULL
@@ -50111,7 +49982,7 @@ static const AsterixField I062_V1_20_380_POS = { FIXED, 6, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_GAL;
static int hf_062_V1_20_380_GAL_VALUE;
static const FieldPart I062_V1_20_380_GAL_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_V1_20_380_GAL_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_GAL_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_GAL_PARTS[] = {
&I062_V1_20_380_GAL_VALUE,
NULL
};
@@ -50119,7 +49990,7 @@ static const AsterixField I062_V1_20_380_GAL = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_PUN;
static int hf_062_V1_20_380_PUN_PUN;
static const FieldPart I062_V1_20_380_PUN_PUN = { 4, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_PUN_PUN, NULL };
-static const FieldPart *I062_V1_20_380_PUN_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_PUN_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_20_380_PUN_PUN,
NULL
@@ -50128,7 +49999,7 @@ static const AsterixField I062_V1_20_380_PUN = { FIXED, 1, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_BDSDATA;
static int hf_062_V1_20_380_BDSDATA_VALUE;
static const FieldPart I062_V1_20_380_BDSDATA_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_062_V1_20_380_BDSDATA_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_BDSDATA_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_BDSDATA_PARTS[] = {
&I062_V1_20_380_BDSDATA_VALUE,
NULL
};
@@ -50136,7 +50007,7 @@ static const AsterixField I062_V1_20_380_BDSDATA = { REPETITIVE, 8, 1, 0, &hf_06
static int hf_062_V1_20_380_IAR;
static int hf_062_V1_20_380_IAR_VALUE;
static const FieldPart I062_V1_20_380_IAR_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_V1_20_380_IAR_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_IAR_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_IAR_PARTS[] = {
&I062_V1_20_380_IAR_VALUE,
NULL
};
@@ -50144,7 +50015,7 @@ static const AsterixField I062_V1_20_380_IAR = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_MAC;
static int hf_062_V1_20_380_MAC_VALUE;
static const FieldPart I062_V1_20_380_MAC_VALUE = { 16, 0.008, FIELD_PART_UFLOAT, &hf_062_V1_20_380_MAC_VALUE, NULL };
-static const FieldPart *I062_V1_20_380_MAC_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_MAC_PARTS[] = {
&I062_V1_20_380_MAC_VALUE,
NULL
};
@@ -50152,7 +50023,7 @@ static const AsterixField I062_V1_20_380_MAC = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_380_BPS;
static int hf_062_V1_20_380_BPS_BPS;
static const FieldPart I062_V1_20_380_BPS_BPS = { 12, 0.1, FIELD_PART_UFLOAT, &hf_062_V1_20_380_BPS_BPS, NULL };
-static const FieldPart *I062_V1_20_380_BPS_PARTS[] = {
+static const FieldPart * const I062_V1_20_380_BPS_PARTS[] = {
&IXXX_4bit_spare,
&I062_V1_20_380_BPS_BPS,
NULL
@@ -50165,7 +50036,7 @@ static int hf_062_V1_20_390_TAG_SAC;
static const FieldPart I062_V1_20_390_TAG_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_390_TAG_SAC, NULL };
static int hf_062_V1_20_390_TAG_SIC;
static const FieldPart I062_V1_20_390_TAG_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_390_TAG_SIC, NULL };
-static const FieldPart *I062_V1_20_390_TAG_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_TAG_PARTS[] = {
&I062_V1_20_390_TAG_SAC,
&I062_V1_20_390_TAG_SIC,
NULL
@@ -50174,7 +50045,7 @@ static const AsterixField I062_V1_20_390_TAG = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_CS;
static int hf_062_V1_20_390_CS_VALUE;
static const FieldPart I062_V1_20_390_CS_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_CS_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_CS_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_CS_PARTS[] = {
&I062_V1_20_390_CS_VALUE,
NULL
};
@@ -50191,7 +50062,7 @@ static const value_string valstr_062_V1_20_390_IFI_TYP[] = {
static const FieldPart I062_V1_20_390_IFI_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_20_390_IFI_TYP, NULL };
static int hf_062_V1_20_390_IFI_NBR;
static const FieldPart I062_V1_20_390_IFI_NBR = { 27, 1.0, FIELD_PART_UINT, &hf_062_V1_20_390_IFI_NBR, NULL };
-static const FieldPart *I062_V1_20_390_IFI_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_IFI_PARTS[] = {
&I062_V1_20_390_IFI_TYP,
&IXXX_3bit_spare,
&I062_V1_20_390_IFI_NBR,
@@ -50233,7 +50104,7 @@ static const value_string valstr_062_V1_20_390_FCT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_390_FCT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_390_FCT_HPR, NULL };
-static const FieldPart *I062_V1_20_390_FCT_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_FCT_PARTS[] = {
&I062_V1_20_390_FCT_GATOAT,
&I062_V1_20_390_FCT_FR1FR2,
&I062_V1_20_390_FCT_RVSM,
@@ -50245,7 +50116,7 @@ static const AsterixField I062_V1_20_390_FCT = { FIXED, 1, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_TAC;
static int hf_062_V1_20_390_TAC_VALUE;
static const FieldPart I062_V1_20_390_TAC_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_TAC_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_TAC_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_TAC_PARTS[] = {
&I062_V1_20_390_TAC_VALUE,
NULL
};
@@ -50253,7 +50124,7 @@ static const AsterixField I062_V1_20_390_TAC = { FIXED, 4, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_WTC;
static int hf_062_V1_20_390_WTC_VALUE;
static const FieldPart I062_V1_20_390_WTC_VALUE = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_WTC_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_WTC_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_WTC_PARTS[] = {
&I062_V1_20_390_WTC_VALUE,
NULL
};
@@ -50261,7 +50132,7 @@ static const AsterixField I062_V1_20_390_WTC = { FIXED, 1, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_DEP;
static int hf_062_V1_20_390_DEP_VALUE;
static const FieldPart I062_V1_20_390_DEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_DEP_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_DEP_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_DEP_PARTS[] = {
&I062_V1_20_390_DEP_VALUE,
NULL
};
@@ -50269,7 +50140,7 @@ static const AsterixField I062_V1_20_390_DEP = { FIXED, 4, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_DST;
static int hf_062_V1_20_390_DST_VALUE;
static const FieldPart I062_V1_20_390_DST_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_DST_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_DST_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_DST_PARTS[] = {
&I062_V1_20_390_DST_VALUE,
NULL
};
@@ -50281,7 +50152,7 @@ static int hf_062_V1_20_390_RDS_NU2;
static const FieldPart I062_V1_20_390_RDS_NU2 = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_RDS_NU2, NULL };
static int hf_062_V1_20_390_RDS_LTR;
static const FieldPart I062_V1_20_390_RDS_LTR = { 8, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_RDS_LTR, NULL };
-static const FieldPart *I062_V1_20_390_RDS_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_RDS_PARTS[] = {
&I062_V1_20_390_RDS_NU1,
&I062_V1_20_390_RDS_NU2,
&I062_V1_20_390_RDS_LTR,
@@ -50291,7 +50162,7 @@ static const AsterixField I062_V1_20_390_RDS = { FIXED, 3, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_CFL;
static int hf_062_V1_20_390_CFL_VALUE;
static const FieldPart I062_V1_20_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_390_CFL_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_CFL_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_CFL_PARTS[] = {
&I062_V1_20_390_CFL_VALUE,
NULL
};
@@ -50301,7 +50172,7 @@ static int hf_062_V1_20_390_CTL_CENTRE;
static const FieldPart I062_V1_20_390_CTL_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_390_CTL_CENTRE, NULL };
static int hf_062_V1_20_390_CTL_POSITION;
static const FieldPart I062_V1_20_390_CTL_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_390_CTL_POSITION, NULL };
-static const FieldPart *I062_V1_20_390_CTL_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_CTL_PARTS[] = {
&I062_V1_20_390_CTL_CENTRE,
&I062_V1_20_390_CTL_POSITION,
NULL
@@ -50349,7 +50220,7 @@ static const value_string valstr_062_V1_20_390_TOD_AVS[] = {
static const FieldPart I062_V1_20_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_390_TOD_AVS, NULL };
static int hf_062_V1_20_390_TOD_SEC;
static const FieldPart I062_V1_20_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_062_V1_20_390_TOD_SEC, NULL };
-static const FieldPart *I062_V1_20_390_TOD_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_TOD_PARTS[] = {
&I062_V1_20_390_TOD_TYP,
&I062_V1_20_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -50365,7 +50236,7 @@ static const AsterixField I062_V1_20_390_TOD = { REPETITIVE, 4, 1, 0, &hf_062_V1
static int hf_062_V1_20_390_AST;
static int hf_062_V1_20_390_AST_VALUE;
static const FieldPart I062_V1_20_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_AST_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_AST_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_AST_PARTS[] = {
&I062_V1_20_390_AST_VALUE,
NULL
};
@@ -50389,7 +50260,7 @@ static const value_string valstr_062_V1_20_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I062_V1_20_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_062_V1_20_390_STS_AVL, NULL };
-static const FieldPart *I062_V1_20_390_STS_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_STS_PARTS[] = {
&I062_V1_20_390_STS_EMP,
&I062_V1_20_390_STS_AVL,
&IXXX_4bit_spare,
@@ -50399,7 +50270,7 @@ static const AsterixField I062_V1_20_390_STS = { FIXED, 1, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_STD;
static int hf_062_V1_20_390_STD_VALUE;
static const FieldPart I062_V1_20_390_STD_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_STD_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_STD_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_STD_PARTS[] = {
&I062_V1_20_390_STD_VALUE,
NULL
};
@@ -50407,7 +50278,7 @@ static const AsterixField I062_V1_20_390_STD = { FIXED, 7, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_STA;
static int hf_062_V1_20_390_STA_VALUE;
static const FieldPart I062_V1_20_390_STA_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_STA_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_STA_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_STA_PARTS[] = {
&I062_V1_20_390_STA_VALUE,
NULL
};
@@ -50422,7 +50293,7 @@ static const value_string valstr_062_V1_20_390_PEM_VA[] = {
static const FieldPart I062_V1_20_390_PEM_VA = { 1, 1.0, FIELD_PART_UINT, &hf_062_V1_20_390_PEM_VA, NULL };
static int hf_062_V1_20_390_PEM_MODE3A;
static const FieldPart I062_V1_20_390_PEM_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_V1_20_390_PEM_MODE3A, NULL };
-static const FieldPart *I062_V1_20_390_PEM_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_PEM_PARTS[] = {
&IXXX_3bit_spare,
&I062_V1_20_390_PEM_VA,
&I062_V1_20_390_PEM_MODE3A,
@@ -50432,7 +50303,7 @@ static const AsterixField I062_V1_20_390_PEM = { FIXED, 2, 0, 0, &hf_062_V1_20_3
static int hf_062_V1_20_390_PEC;
static int hf_062_V1_20_390_PEC_VALUE;
static const FieldPart I062_V1_20_390_PEC_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_V1_20_390_PEC_VALUE, NULL };
-static const FieldPart *I062_V1_20_390_PEC_PARTS[] = {
+static const FieldPart * const I062_V1_20_390_PEC_PARTS[] = {
&I062_V1_20_390_PEC_VALUE,
NULL
};
@@ -50444,7 +50315,7 @@ static int hf_062_V1_20_500_APC_X;
static const FieldPart I062_V1_20_500_APC_X = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_20_500_APC_X, NULL };
static int hf_062_V1_20_500_APC_Y;
static const FieldPart I062_V1_20_500_APC_Y = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_V1_20_500_APC_Y, NULL };
-static const FieldPart *I062_V1_20_500_APC_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_APC_PARTS[] = {
&I062_V1_20_500_APC_X,
&I062_V1_20_500_APC_Y,
NULL
@@ -50453,7 +50324,7 @@ static const AsterixField I062_V1_20_500_APC = { FIXED, 4, 0, 0, &hf_062_V1_20_5
static int hf_062_V1_20_500_COV;
static int hf_062_V1_20_500_COV_VALUE;
static const FieldPart I062_V1_20_500_COV_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_062_V1_20_500_COV_VALUE, NULL };
-static const FieldPart *I062_V1_20_500_COV_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_COV_PARTS[] = {
&I062_V1_20_500_COV_VALUE,
NULL
};
@@ -50463,7 +50334,7 @@ static int hf_062_V1_20_500_APW_LAT;
static const FieldPart I062_V1_20_500_APW_LAT = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_20_500_APW_LAT, NULL };
static int hf_062_V1_20_500_APW_LON;
static const FieldPart I062_V1_20_500_APW_LON = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_V1_20_500_APW_LON, NULL };
-static const FieldPart *I062_V1_20_500_APW_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_APW_PARTS[] = {
&I062_V1_20_500_APW_LAT,
&I062_V1_20_500_APW_LON,
NULL
@@ -50472,7 +50343,7 @@ static const AsterixField I062_V1_20_500_APW = { FIXED, 4, 0, 0, &hf_062_V1_20_5
static int hf_062_V1_20_500_AGA;
static int hf_062_V1_20_500_AGA_VALUE;
static const FieldPart I062_V1_20_500_AGA_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_20_500_AGA_VALUE, NULL };
-static const FieldPart *I062_V1_20_500_AGA_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_AGA_PARTS[] = {
&I062_V1_20_500_AGA_VALUE,
NULL
};
@@ -50480,7 +50351,7 @@ static const AsterixField I062_V1_20_500_AGA = { FIXED, 1, 0, 0, &hf_062_V1_20_5
static int hf_062_V1_20_500_ABA;
static int hf_062_V1_20_500_ABA_VALUE;
static const FieldPart I062_V1_20_500_ABA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_500_ABA_VALUE, NULL };
-static const FieldPart *I062_V1_20_500_ABA_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_ABA_PARTS[] = {
&I062_V1_20_500_ABA_VALUE,
NULL
};
@@ -50490,7 +50361,7 @@ static int hf_062_V1_20_500_ATV_X;
static const FieldPart I062_V1_20_500_ATV_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_500_ATV_X, NULL };
static int hf_062_V1_20_500_ATV_Y;
static const FieldPart I062_V1_20_500_ATV_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_500_ATV_Y, NULL };
-static const FieldPart *I062_V1_20_500_ATV_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_ATV_PARTS[] = {
&I062_V1_20_500_ATV_X,
&I062_V1_20_500_ATV_Y,
NULL
@@ -50501,7 +50372,7 @@ static int hf_062_V1_20_500_AA_X;
static const FieldPart I062_V1_20_500_AA_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_500_AA_X, NULL };
static int hf_062_V1_20_500_AA_Y;
static const FieldPart I062_V1_20_500_AA_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_V1_20_500_AA_Y, NULL };
-static const FieldPart *I062_V1_20_500_AA_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_AA_PARTS[] = {
&I062_V1_20_500_AA_X,
&I062_V1_20_500_AA_Y,
NULL
@@ -50510,7 +50381,7 @@ static const AsterixField I062_V1_20_500_AA = { FIXED, 2, 0, 0, &hf_062_V1_20_50
static int hf_062_V1_20_500_ARC;
static int hf_062_V1_20_500_ARC_VALUE;
static const FieldPart I062_V1_20_500_ARC_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_V1_20_500_ARC_VALUE, NULL };
-static const FieldPart *I062_V1_20_500_ARC_PARTS[] = {
+static const FieldPart * const I062_V1_20_500_ARC_PARTS[] = {
&I062_V1_20_500_ARC_VALUE,
NULL
};
@@ -50525,7 +50396,7 @@ static int hf_062_V1_20_510_SIDENT;
static const FieldPart I062_V1_20_510_SIDENT = { 8, 1.0, FIELD_PART_HEX, &hf_062_V1_20_510_SIDENT, NULL };
static int hf_062_V1_20_510_STRACK;
static const FieldPart I062_V1_20_510_STRACK = { 15, 1.0, FIELD_PART_HEX, &hf_062_V1_20_510_STRACK, NULL };
-static const FieldPart *I062_V1_20_510_PARTS[] = {
+static const FieldPart * const I062_V1_20_510_PARTS[] = {
&I062_V1_20_510_MIDENT,
&I062_V1_20_510_MTRACK,
&IXXX_FX,
@@ -50546,7 +50417,7 @@ static int hf_062_010_SAC;
static const FieldPart I062_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_010_SAC, NULL };
static int hf_062_010_SIC;
static const FieldPart I062_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_010_SIC, NULL };
-static const FieldPart *I062_010_PARTS[] = {
+static const FieldPart * const I062_010_PARTS[] = {
&I062_010_SAC,
&I062_010_SIC,
NULL
@@ -50555,7 +50426,7 @@ static const AsterixField I062_010 = { FIXED, 2, 0, 0, &hf_062_010, I062_010_PAR
static int hf_062_015;
static int hf_062_015_VALUE;
static const FieldPart I062_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_015_VALUE, NULL };
-static const FieldPart *I062_015_PARTS[] = {
+static const FieldPart * const I062_015_PARTS[] = {
&I062_015_VALUE,
NULL
};
@@ -50563,7 +50434,7 @@ static const AsterixField I062_015 = { FIXED, 1, 0, 0, &hf_062_015, I062_015_PAR
static int hf_062_040;
static int hf_062_040_VALUE;
static const FieldPart I062_040_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_062_040_VALUE, NULL };
-static const FieldPart *I062_040_PARTS[] = {
+static const FieldPart * const I062_040_PARTS[] = {
&I062_040_VALUE,
NULL
};
@@ -50592,7 +50463,7 @@ static const value_string valstr_062_060_CH[] = {
static const FieldPart I062_060_CH = { 1, 1.0, FIELD_PART_UINT, &hf_062_060_CH, NULL };
static int hf_062_060_MODE3A;
static const FieldPart I062_060_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_060_MODE3A, NULL };
-static const FieldPart *I062_060_PARTS[] = {
+static const FieldPart * const I062_060_PARTS[] = {
&I062_060_V,
&I062_060_G,
&I062_060_CH,
@@ -50604,7 +50475,7 @@ static const AsterixField I062_060 = { FIXED, 2, 0, 0, &hf_062_060, I062_060_PAR
static int hf_062_070;
static int hf_062_070_VALUE;
static const FieldPart I062_070_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_062_070_VALUE, NULL };
-static const FieldPart *I062_070_PARTS[] = {
+static const FieldPart * const I062_070_PARTS[] = {
&I062_070_VALUE,
NULL
};
@@ -50873,7 +50744,7 @@ static const value_string valstr_062_080_MLAT[] = {
{ 0, NULL }
};
static const FieldPart I062_080_MLAT = { 1, 1.0, FIELD_PART_UINT, &hf_062_080_MLAT, NULL };
-static const FieldPart *I062_080_PARTS[] = {
+static const FieldPart * const I062_080_PARTS[] = {
&I062_080_MON,
&I062_080_SPI,
&I062_080_MRH,
@@ -50923,7 +50794,7 @@ static int hf_062_100_X;
static const FieldPart I062_100_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_100_X, NULL };
static int hf_062_100_Y;
static const FieldPart I062_100_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_062_100_Y, NULL };
-static const FieldPart *I062_100_PARTS[] = {
+static const FieldPart * const I062_100_PARTS[] = {
&I062_100_X,
&I062_100_Y,
NULL
@@ -50934,7 +50805,7 @@ static int hf_062_105_LAT;
static const FieldPart I062_105_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_105_LAT, NULL };
static int hf_062_105_LON;
static const FieldPart I062_105_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_062_105_LON, NULL };
-static const FieldPart *I062_105_PARTS[] = {
+static const FieldPart * const I062_105_PARTS[] = {
&I062_105_LAT,
&I062_105_LON,
NULL
@@ -50998,7 +50869,7 @@ static const value_string valstr_062_110_SUM_X[] = {
{ 0, NULL }
};
static const FieldPart I062_110_SUM_X = { 1, 1.0, FIELD_PART_UINT, &hf_062_110_SUM_X, NULL };
-static const FieldPart *I062_110_SUM_PARTS[] = {
+static const FieldPart * const I062_110_SUM_PARTS[] = {
&I062_110_SUM_M5,
&I062_110_SUM_ID,
&I062_110_SUM_DA,
@@ -51017,7 +50888,7 @@ static int hf_062_110_PMN_NAT;
static const FieldPart I062_110_PMN_NAT = { 5, 1.0, FIELD_PART_HEX, &hf_062_110_PMN_NAT, NULL };
static int hf_062_110_PMN_MIS;
static const FieldPart I062_110_PMN_MIS = { 6, 1.0, FIELD_PART_HEX, &hf_062_110_PMN_MIS, NULL };
-static const FieldPart *I062_110_PMN_PARTS[] = {
+static const FieldPart * const I062_110_PMN_PARTS[] = {
&IXXX_2bit_spare,
&I062_110_PMN_PIN,
&IXXX_3bit_spare,
@@ -51032,7 +50903,7 @@ static int hf_062_110_POS_LAT;
static const FieldPart I062_110_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_110_POS_LAT, NULL };
static int hf_062_110_POS_LON;
static const FieldPart I062_110_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_110_POS_LON, NULL };
-static const FieldPart *I062_110_POS_PARTS[] = {
+static const FieldPart * const I062_110_POS_PARTS[] = {
&I062_110_POS_LAT,
&I062_110_POS_LON,
NULL
@@ -51048,7 +50919,7 @@ static const value_string valstr_062_110_GA_RES[] = {
static const FieldPart I062_110_GA_RES = { 1, 1.0, FIELD_PART_UINT, &hf_062_110_GA_RES, NULL };
static int hf_062_110_GA_GA;
static const FieldPart I062_110_GA_GA = { 14, 25.0, FIELD_PART_FLOAT, &hf_062_110_GA_GA, NULL };
-static const FieldPart *I062_110_GA_PARTS[] = {
+static const FieldPart * const I062_110_GA_PARTS[] = {
&IXXX_1bit_spare,
&I062_110_GA_RES,
&I062_110_GA_GA,
@@ -51058,7 +50929,7 @@ static const AsterixField I062_110_GA = { FIXED, 2, 0, 0, &hf_062_110_GA, I062_1
static int hf_062_110_EM1;
static int hf_062_110_EM1_EM1;
static const FieldPart I062_110_EM1_EM1 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_110_EM1_EM1, NULL };
-static const FieldPart *I062_110_EM1_PARTS[] = {
+static const FieldPart * const I062_110_EM1_PARTS[] = {
&IXXX_4bit_spare,
&I062_110_EM1_EM1,
NULL
@@ -51067,7 +50938,7 @@ static const AsterixField I062_110_EM1 = { FIXED, 2, 0, 0, &hf_062_110_EM1, I062
static int hf_062_110_TOS;
static int hf_062_110_TOS_VALUE;
static const FieldPart I062_110_TOS_VALUE = { 8, 0.0078125, FIELD_PART_FLOAT, &hf_062_110_TOS_VALUE, NULL };
-static const FieldPart *I062_110_TOS_PARTS[] = {
+static const FieldPart * const I062_110_TOS_PARTS[] = {
&I062_110_TOS_VALUE,
NULL
};
@@ -51108,7 +50979,7 @@ static const value_string valstr_062_110_XP_X1[] = {
{ 0, NULL }
};
static const FieldPart I062_110_XP_X1 = { 1, 1.0, FIELD_PART_UINT, &hf_062_110_XP_X1, NULL };
-static const FieldPart *I062_110_XP_PARTS[] = {
+static const FieldPart * const I062_110_XP_PARTS[] = {
&IXXX_3bit_spare,
&I062_110_XP_X5,
&I062_110_XP_XC,
@@ -51122,7 +50993,7 @@ static const AsterixField I062_110 = { COMPOUND, 0, 0, 0, &hf_062_110, NULL, { &
static int hf_062_120;
static int hf_062_120_MODE2;
static const FieldPart I062_120_MODE2 = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_120_MODE2, NULL };
-static const FieldPart *I062_120_PARTS[] = {
+static const FieldPart * const I062_120_PARTS[] = {
&IXXX_4bit_spare,
&I062_120_MODE2,
NULL
@@ -51131,7 +51002,7 @@ static const AsterixField I062_120 = { FIXED, 2, 0, 0, &hf_062_120, I062_120_PAR
static int hf_062_130;
static int hf_062_130_VALUE;
static const FieldPart I062_130_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_130_VALUE, NULL };
-static const FieldPart *I062_130_PARTS[] = {
+static const FieldPart * const I062_130_PARTS[] = {
&I062_130_VALUE,
NULL
};
@@ -51146,7 +51017,7 @@ static const value_string valstr_062_135_QNH[] = {
static const FieldPart I062_135_QNH = { 1, 1.0, FIELD_PART_UINT, &hf_062_135_QNH, NULL };
static int hf_062_135_CTB;
static const FieldPart I062_135_CTB = { 15, 0.25, FIELD_PART_FLOAT, &hf_062_135_CTB, NULL };
-static const FieldPart *I062_135_PARTS[] = {
+static const FieldPart * const I062_135_PARTS[] = {
&I062_135_QNH,
&I062_135_CTB,
NULL
@@ -51155,7 +51026,7 @@ static const AsterixField I062_135 = { FIXED, 2, 0, 0, &hf_062_135, I062_135_PAR
static int hf_062_136;
static int hf_062_136_VALUE;
static const FieldPart I062_136_VALUE = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_136_VALUE, NULL };
-static const FieldPart *I062_136_PARTS[] = {
+static const FieldPart * const I062_136_PARTS[] = {
&I062_136_VALUE,
NULL
};
@@ -51165,7 +51036,7 @@ static int hf_062_185_VX;
static const FieldPart I062_185_VX = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_185_VX, NULL };
static int hf_062_185_VY;
static const FieldPart I062_185_VY = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_185_VY, NULL };
-static const FieldPart *I062_185_PARTS[] = {
+static const FieldPart * const I062_185_PARTS[] = {
&I062_185_VX,
&I062_185_VY,
NULL
@@ -51206,7 +51077,7 @@ static const value_string valstr_062_200_ADF[] = {
{ 0, NULL }
};
static const FieldPart I062_200_ADF = { 1, 1.0, FIELD_PART_UINT, &hf_062_200_ADF, NULL };
-static const FieldPart *I062_200_PARTS[] = {
+static const FieldPart * const I062_200_PARTS[] = {
&I062_200_TRANS,
&I062_200_LONG,
&I062_200_VERT,
@@ -51220,7 +51091,7 @@ static int hf_062_210_AX;
static const FieldPart I062_210_AX = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_210_AX, NULL };
static int hf_062_210_AY;
static const FieldPart I062_210_AY = { 8, 0.25, FIELD_PART_FLOAT, &hf_062_210_AY, NULL };
-static const FieldPart *I062_210_PARTS[] = {
+static const FieldPart * const I062_210_PARTS[] = {
&I062_210_AX,
&I062_210_AY,
NULL
@@ -51229,7 +51100,7 @@ static const AsterixField I062_210 = { FIXED, 2, 0, 0, &hf_062_210, I062_210_PAR
static int hf_062_220;
static int hf_062_220_VALUE;
static const FieldPart I062_220_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_220_VALUE, NULL };
-static const FieldPart *I062_220_PARTS[] = {
+static const FieldPart * const I062_220_PARTS[] = {
&I062_220_VALUE,
NULL
};
@@ -51246,7 +51117,7 @@ static const value_string valstr_062_245_STI[] = {
static const FieldPart I062_245_STI = { 2, 1.0, FIELD_PART_UINT, &hf_062_245_STI, NULL };
static int hf_062_245_CHR;
static const FieldPart I062_245_CHR = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_245_CHR, NULL };
-static const FieldPart *I062_245_PARTS[] = {
+static const FieldPart * const I062_245_PARTS[] = {
&I062_245_STI,
&IXXX_6bit_spare,
&I062_245_CHR,
@@ -51260,7 +51131,7 @@ static int hf_062_270_ORIENTATION;
static const FieldPart I062_270_ORIENTATION = { 7, 2.8125, FIELD_PART_UFLOAT, &hf_062_270_ORIENTATION, NULL };
static int hf_062_270_WIDTH;
static const FieldPart I062_270_WIDTH = { 7, 1.0, FIELD_PART_UFLOAT, &hf_062_270_WIDTH, NULL };
-static const FieldPart *I062_270_PARTS[] = {
+static const FieldPart * const I062_270_PARTS[] = {
&I062_270_LENGTH,
&IXXX_FX,
&I062_270_ORIENTATION,
@@ -51274,7 +51145,7 @@ static int hf_062_290;
static int hf_062_290_TRK;
static int hf_062_290_TRK_VALUE;
static const FieldPart I062_290_TRK_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_TRK_VALUE, NULL };
-static const FieldPart *I062_290_TRK_PARTS[] = {
+static const FieldPart * const I062_290_TRK_PARTS[] = {
&I062_290_TRK_VALUE,
NULL
};
@@ -51282,7 +51153,7 @@ static const AsterixField I062_290_TRK = { FIXED, 1, 0, 0, &hf_062_290_TRK, I062
static int hf_062_290_PSR;
static int hf_062_290_PSR_VALUE;
static const FieldPart I062_290_PSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_PSR_VALUE, NULL };
-static const FieldPart *I062_290_PSR_PARTS[] = {
+static const FieldPart * const I062_290_PSR_PARTS[] = {
&I062_290_PSR_VALUE,
NULL
};
@@ -51290,7 +51161,7 @@ static const AsterixField I062_290_PSR = { FIXED, 1, 0, 0, &hf_062_290_PSR, I062
static int hf_062_290_SSR;
static int hf_062_290_SSR_VALUE;
static const FieldPart I062_290_SSR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_SSR_VALUE, NULL };
-static const FieldPart *I062_290_SSR_PARTS[] = {
+static const FieldPart * const I062_290_SSR_PARTS[] = {
&I062_290_SSR_VALUE,
NULL
};
@@ -51298,7 +51169,7 @@ static const AsterixField I062_290_SSR = { FIXED, 1, 0, 0, &hf_062_290_SSR, I062
static int hf_062_290_MDS;
static int hf_062_290_MDS_VALUE;
static const FieldPart I062_290_MDS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_MDS_VALUE, NULL };
-static const FieldPart *I062_290_MDS_PARTS[] = {
+static const FieldPart * const I062_290_MDS_PARTS[] = {
&I062_290_MDS_VALUE,
NULL
};
@@ -51306,7 +51177,7 @@ static const AsterixField I062_290_MDS = { FIXED, 1, 0, 0, &hf_062_290_MDS, I062
static int hf_062_290_ADS;
static int hf_062_290_ADS_VALUE;
static const FieldPart I062_290_ADS_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_290_ADS_VALUE, NULL };
-static const FieldPart *I062_290_ADS_PARTS[] = {
+static const FieldPart * const I062_290_ADS_PARTS[] = {
&I062_290_ADS_VALUE,
NULL
};
@@ -51314,7 +51185,7 @@ static const AsterixField I062_290_ADS = { FIXED, 2, 0, 0, &hf_062_290_ADS, I062
static int hf_062_290_ES;
static int hf_062_290_ES_VALUE;
static const FieldPart I062_290_ES_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_ES_VALUE, NULL };
-static const FieldPart *I062_290_ES_PARTS[] = {
+static const FieldPart * const I062_290_ES_PARTS[] = {
&I062_290_ES_VALUE,
NULL
};
@@ -51322,7 +51193,7 @@ static const AsterixField I062_290_ES = { FIXED, 1, 0, 0, &hf_062_290_ES, I062_2
static int hf_062_290_VDL;
static int hf_062_290_VDL_VALUE;
static const FieldPart I062_290_VDL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_VDL_VALUE, NULL };
-static const FieldPart *I062_290_VDL_PARTS[] = {
+static const FieldPart * const I062_290_VDL_PARTS[] = {
&I062_290_VDL_VALUE,
NULL
};
@@ -51330,7 +51201,7 @@ static const AsterixField I062_290_VDL = { FIXED, 1, 0, 0, &hf_062_290_VDL, I062
static int hf_062_290_UAT;
static int hf_062_290_UAT_VALUE;
static const FieldPart I062_290_UAT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_UAT_VALUE, NULL };
-static const FieldPart *I062_290_UAT_PARTS[] = {
+static const FieldPart * const I062_290_UAT_PARTS[] = {
&I062_290_UAT_VALUE,
NULL
};
@@ -51338,7 +51209,7 @@ static const AsterixField I062_290_UAT = { FIXED, 1, 0, 0, &hf_062_290_UAT, I062
static int hf_062_290_LOP;
static int hf_062_290_LOP_VALUE;
static const FieldPart I062_290_LOP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_LOP_VALUE, NULL };
-static const FieldPart *I062_290_LOP_PARTS[] = {
+static const FieldPart * const I062_290_LOP_PARTS[] = {
&I062_290_LOP_VALUE,
NULL
};
@@ -51346,7 +51217,7 @@ static const AsterixField I062_290_LOP = { FIXED, 1, 0, 0, &hf_062_290_LOP, I062
static int hf_062_290_MLT;
static int hf_062_290_MLT_VALUE;
static const FieldPart I062_290_MLT_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_290_MLT_VALUE, NULL };
-static const FieldPart *I062_290_MLT_PARTS[] = {
+static const FieldPart * const I062_290_MLT_PARTS[] = {
&I062_290_MLT_VALUE,
NULL
};
@@ -51356,7 +51227,7 @@ static int hf_062_295;
static int hf_062_295_MFL;
static int hf_062_295_MFL_VALUE;
static const FieldPart I062_295_MFL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MFL_VALUE, NULL };
-static const FieldPart *I062_295_MFL_PARTS[] = {
+static const FieldPart * const I062_295_MFL_PARTS[] = {
&I062_295_MFL_VALUE,
NULL
};
@@ -51364,7 +51235,7 @@ static const AsterixField I062_295_MFL = { FIXED, 1, 0, 0, &hf_062_295_MFL, I062
static int hf_062_295_MD1;
static int hf_062_295_MD1_VALUE;
static const FieldPart I062_295_MD1_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MD1_VALUE, NULL };
-static const FieldPart *I062_295_MD1_PARTS[] = {
+static const FieldPart * const I062_295_MD1_PARTS[] = {
&I062_295_MD1_VALUE,
NULL
};
@@ -51372,7 +51243,7 @@ static const AsterixField I062_295_MD1 = { FIXED, 1, 0, 0, &hf_062_295_MD1, I062
static int hf_062_295_MD2;
static int hf_062_295_MD2_VALUE;
static const FieldPart I062_295_MD2_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MD2_VALUE, NULL };
-static const FieldPart *I062_295_MD2_PARTS[] = {
+static const FieldPart * const I062_295_MD2_PARTS[] = {
&I062_295_MD2_VALUE,
NULL
};
@@ -51380,7 +51251,7 @@ static const AsterixField I062_295_MD2 = { FIXED, 1, 0, 0, &hf_062_295_MD2, I062
static int hf_062_295_MDA;
static int hf_062_295_MDA_VALUE;
static const FieldPart I062_295_MDA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MDA_VALUE, NULL };
-static const FieldPart *I062_295_MDA_PARTS[] = {
+static const FieldPart * const I062_295_MDA_PARTS[] = {
&I062_295_MDA_VALUE,
NULL
};
@@ -51388,7 +51259,7 @@ static const AsterixField I062_295_MDA = { FIXED, 1, 0, 0, &hf_062_295_MDA, I062
static int hf_062_295_MD4;
static int hf_062_295_MD4_VALUE;
static const FieldPart I062_295_MD4_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MD4_VALUE, NULL };
-static const FieldPart *I062_295_MD4_PARTS[] = {
+static const FieldPart * const I062_295_MD4_PARTS[] = {
&I062_295_MD4_VALUE,
NULL
};
@@ -51396,7 +51267,7 @@ static const AsterixField I062_295_MD4 = { FIXED, 1, 0, 0, &hf_062_295_MD4, I062
static int hf_062_295_MD5;
static int hf_062_295_MD5_VALUE;
static const FieldPart I062_295_MD5_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MD5_VALUE, NULL };
-static const FieldPart *I062_295_MD5_PARTS[] = {
+static const FieldPart * const I062_295_MD5_PARTS[] = {
&I062_295_MD5_VALUE,
NULL
};
@@ -51404,7 +51275,7 @@ static const AsterixField I062_295_MD5 = { FIXED, 1, 0, 0, &hf_062_295_MD5, I062
static int hf_062_295_MHG;
static int hf_062_295_MHG_VALUE;
static const FieldPart I062_295_MHG_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MHG_VALUE, NULL };
-static const FieldPart *I062_295_MHG_PARTS[] = {
+static const FieldPart * const I062_295_MHG_PARTS[] = {
&I062_295_MHG_VALUE,
NULL
};
@@ -51412,7 +51283,7 @@ static const AsterixField I062_295_MHG = { FIXED, 1, 0, 0, &hf_062_295_MHG, I062
static int hf_062_295_IAS;
static int hf_062_295_IAS_VALUE;
static const FieldPart I062_295_IAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_IAS_VALUE, NULL };
-static const FieldPart *I062_295_IAS_PARTS[] = {
+static const FieldPart * const I062_295_IAS_PARTS[] = {
&I062_295_IAS_VALUE,
NULL
};
@@ -51420,7 +51291,7 @@ static const AsterixField I062_295_IAS = { FIXED, 1, 0, 0, &hf_062_295_IAS, I062
static int hf_062_295_TAS;
static int hf_062_295_TAS_VALUE;
static const FieldPart I062_295_TAS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_TAS_VALUE, NULL };
-static const FieldPart *I062_295_TAS_PARTS[] = {
+static const FieldPart * const I062_295_TAS_PARTS[] = {
&I062_295_TAS_VALUE,
NULL
};
@@ -51428,7 +51299,7 @@ static const AsterixField I062_295_TAS = { FIXED, 1, 0, 0, &hf_062_295_TAS, I062
static int hf_062_295_SAL;
static int hf_062_295_SAL_VALUE;
static const FieldPart I062_295_SAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_SAL_VALUE, NULL };
-static const FieldPart *I062_295_SAL_PARTS[] = {
+static const FieldPart * const I062_295_SAL_PARTS[] = {
&I062_295_SAL_VALUE,
NULL
};
@@ -51436,7 +51307,7 @@ static const AsterixField I062_295_SAL = { FIXED, 1, 0, 0, &hf_062_295_SAL, I062
static int hf_062_295_FSS;
static int hf_062_295_FSS_VALUE;
static const FieldPart I062_295_FSS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_FSS_VALUE, NULL };
-static const FieldPart *I062_295_FSS_PARTS[] = {
+static const FieldPart * const I062_295_FSS_PARTS[] = {
&I062_295_FSS_VALUE,
NULL
};
@@ -51444,7 +51315,7 @@ static const AsterixField I062_295_FSS = { FIXED, 1, 0, 0, &hf_062_295_FSS, I062
static int hf_062_295_TID;
static int hf_062_295_TID_VALUE;
static const FieldPart I062_295_TID_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_TID_VALUE, NULL };
-static const FieldPart *I062_295_TID_PARTS[] = {
+static const FieldPart * const I062_295_TID_PARTS[] = {
&I062_295_TID_VALUE,
NULL
};
@@ -51452,7 +51323,7 @@ static const AsterixField I062_295_TID = { FIXED, 1, 0, 0, &hf_062_295_TID, I062
static int hf_062_295_COM;
static int hf_062_295_COM_VALUE;
static const FieldPart I062_295_COM_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_COM_VALUE, NULL };
-static const FieldPart *I062_295_COM_PARTS[] = {
+static const FieldPart * const I062_295_COM_PARTS[] = {
&I062_295_COM_VALUE,
NULL
};
@@ -51460,7 +51331,7 @@ static const AsterixField I062_295_COM = { FIXED, 1, 0, 0, &hf_062_295_COM, I062
static int hf_062_295_SAB;
static int hf_062_295_SAB_VALUE;
static const FieldPart I062_295_SAB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_SAB_VALUE, NULL };
-static const FieldPart *I062_295_SAB_PARTS[] = {
+static const FieldPart * const I062_295_SAB_PARTS[] = {
&I062_295_SAB_VALUE,
NULL
};
@@ -51468,7 +51339,7 @@ static const AsterixField I062_295_SAB = { FIXED, 1, 0, 0, &hf_062_295_SAB, I062
static int hf_062_295_ACS;
static int hf_062_295_ACS_VALUE;
static const FieldPart I062_295_ACS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_ACS_VALUE, NULL };
-static const FieldPart *I062_295_ACS_PARTS[] = {
+static const FieldPart * const I062_295_ACS_PARTS[] = {
&I062_295_ACS_VALUE,
NULL
};
@@ -51476,7 +51347,7 @@ static const AsterixField I062_295_ACS = { FIXED, 1, 0, 0, &hf_062_295_ACS, I062
static int hf_062_295_BVR;
static int hf_062_295_BVR_VALUE;
static const FieldPart I062_295_BVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_BVR_VALUE, NULL };
-static const FieldPart *I062_295_BVR_PARTS[] = {
+static const FieldPart * const I062_295_BVR_PARTS[] = {
&I062_295_BVR_VALUE,
NULL
};
@@ -51484,7 +51355,7 @@ static const AsterixField I062_295_BVR = { FIXED, 1, 0, 0, &hf_062_295_BVR, I062
static int hf_062_295_GVR;
static int hf_062_295_GVR_VALUE;
static const FieldPart I062_295_GVR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_GVR_VALUE, NULL };
-static const FieldPart *I062_295_GVR_PARTS[] = {
+static const FieldPart * const I062_295_GVR_PARTS[] = {
&I062_295_GVR_VALUE,
NULL
};
@@ -51492,7 +51363,7 @@ static const AsterixField I062_295_GVR = { FIXED, 1, 0, 0, &hf_062_295_GVR, I062
static int hf_062_295_RAN;
static int hf_062_295_RAN_VALUE;
static const FieldPart I062_295_RAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_RAN_VALUE, NULL };
-static const FieldPart *I062_295_RAN_PARTS[] = {
+static const FieldPart * const I062_295_RAN_PARTS[] = {
&I062_295_RAN_VALUE,
NULL
};
@@ -51500,7 +51371,7 @@ static const AsterixField I062_295_RAN = { FIXED, 1, 0, 0, &hf_062_295_RAN, I062
static int hf_062_295_TAR;
static int hf_062_295_TAR_VALUE;
static const FieldPart I062_295_TAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_TAR_VALUE, NULL };
-static const FieldPart *I062_295_TAR_PARTS[] = {
+static const FieldPart * const I062_295_TAR_PARTS[] = {
&I062_295_TAR_VALUE,
NULL
};
@@ -51508,7 +51379,7 @@ static const AsterixField I062_295_TAR = { FIXED, 1, 0, 0, &hf_062_295_TAR, I062
static int hf_062_295_TAN;
static int hf_062_295_TAN_VALUE;
static const FieldPart I062_295_TAN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_TAN_VALUE, NULL };
-static const FieldPart *I062_295_TAN_PARTS[] = {
+static const FieldPart * const I062_295_TAN_PARTS[] = {
&I062_295_TAN_VALUE,
NULL
};
@@ -51516,7 +51387,7 @@ static const AsterixField I062_295_TAN = { FIXED, 1, 0, 0, &hf_062_295_TAN, I062
static int hf_062_295_GSP;
static int hf_062_295_GSP_VALUE;
static const FieldPart I062_295_GSP_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_GSP_VALUE, NULL };
-static const FieldPart *I062_295_GSP_PARTS[] = {
+static const FieldPart * const I062_295_GSP_PARTS[] = {
&I062_295_GSP_VALUE,
NULL
};
@@ -51524,7 +51395,7 @@ static const AsterixField I062_295_GSP = { FIXED, 1, 0, 0, &hf_062_295_GSP, I062
static int hf_062_295_VUN;
static int hf_062_295_VUN_VALUE;
static const FieldPart I062_295_VUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_VUN_VALUE, NULL };
-static const FieldPart *I062_295_VUN_PARTS[] = {
+static const FieldPart * const I062_295_VUN_PARTS[] = {
&I062_295_VUN_VALUE,
NULL
};
@@ -51532,7 +51403,7 @@ static const AsterixField I062_295_VUN = { FIXED, 1, 0, 0, &hf_062_295_VUN, I062
static int hf_062_295_MET;
static int hf_062_295_MET_VALUE;
static const FieldPart I062_295_MET_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MET_VALUE, NULL };
-static const FieldPart *I062_295_MET_PARTS[] = {
+static const FieldPart * const I062_295_MET_PARTS[] = {
&I062_295_MET_VALUE,
NULL
};
@@ -51540,7 +51411,7 @@ static const AsterixField I062_295_MET = { FIXED, 1, 0, 0, &hf_062_295_MET, I062
static int hf_062_295_EMC;
static int hf_062_295_EMC_VALUE;
static const FieldPart I062_295_EMC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_EMC_VALUE, NULL };
-static const FieldPart *I062_295_EMC_PARTS[] = {
+static const FieldPart * const I062_295_EMC_PARTS[] = {
&I062_295_EMC_VALUE,
NULL
};
@@ -51548,7 +51419,7 @@ static const AsterixField I062_295_EMC = { FIXED, 1, 0, 0, &hf_062_295_EMC, I062
static int hf_062_295_POS;
static int hf_062_295_POS_VALUE;
static const FieldPart I062_295_POS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_POS_VALUE, NULL };
-static const FieldPart *I062_295_POS_PARTS[] = {
+static const FieldPart * const I062_295_POS_PARTS[] = {
&I062_295_POS_VALUE,
NULL
};
@@ -51556,7 +51427,7 @@ static const AsterixField I062_295_POS = { FIXED, 1, 0, 0, &hf_062_295_POS, I062
static int hf_062_295_GAL;
static int hf_062_295_GAL_VALUE;
static const FieldPart I062_295_GAL_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_GAL_VALUE, NULL };
-static const FieldPart *I062_295_GAL_PARTS[] = {
+static const FieldPart * const I062_295_GAL_PARTS[] = {
&I062_295_GAL_VALUE,
NULL
};
@@ -51564,7 +51435,7 @@ static const AsterixField I062_295_GAL = { FIXED, 1, 0, 0, &hf_062_295_GAL, I062
static int hf_062_295_PUN;
static int hf_062_295_PUN_VALUE;
static const FieldPart I062_295_PUN_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_PUN_VALUE, NULL };
-static const FieldPart *I062_295_PUN_PARTS[] = {
+static const FieldPart * const I062_295_PUN_PARTS[] = {
&I062_295_PUN_VALUE,
NULL
};
@@ -51572,7 +51443,7 @@ static const AsterixField I062_295_PUN = { FIXED, 1, 0, 0, &hf_062_295_PUN, I062
static int hf_062_295_MB;
static int hf_062_295_MB_VALUE;
static const FieldPart I062_295_MB_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MB_VALUE, NULL };
-static const FieldPart *I062_295_MB_PARTS[] = {
+static const FieldPart * const I062_295_MB_PARTS[] = {
&I062_295_MB_VALUE,
NULL
};
@@ -51580,7 +51451,7 @@ static const AsterixField I062_295_MB = { FIXED, 1, 0, 0, &hf_062_295_MB, I062_2
static int hf_062_295_IAR;
static int hf_062_295_IAR_VALUE;
static const FieldPart I062_295_IAR_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_IAR_VALUE, NULL };
-static const FieldPart *I062_295_IAR_PARTS[] = {
+static const FieldPart * const I062_295_IAR_PARTS[] = {
&I062_295_IAR_VALUE,
NULL
};
@@ -51588,7 +51459,7 @@ static const AsterixField I062_295_IAR = { FIXED, 1, 0, 0, &hf_062_295_IAR, I062
static int hf_062_295_MAC;
static int hf_062_295_MAC_VALUE;
static const FieldPart I062_295_MAC_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_MAC_VALUE, NULL };
-static const FieldPart *I062_295_MAC_PARTS[] = {
+static const FieldPart * const I062_295_MAC_PARTS[] = {
&I062_295_MAC_VALUE,
NULL
};
@@ -51596,7 +51467,7 @@ static const AsterixField I062_295_MAC = { FIXED, 1, 0, 0, &hf_062_295_MAC, I062
static int hf_062_295_BPS;
static int hf_062_295_BPS_VALUE;
static const FieldPart I062_295_BPS_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_295_BPS_VALUE, NULL };
-static const FieldPart *I062_295_BPS_PARTS[] = {
+static const FieldPart * const I062_295_BPS_PARTS[] = {
&I062_295_BPS_VALUE,
NULL
};
@@ -51625,7 +51496,7 @@ static const value_string valstr_062_300_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_300_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_300_VALUE, NULL };
-static const FieldPart *I062_300_PARTS[] = {
+static const FieldPart * const I062_300_PARTS[] = {
&I062_300_VALUE,
NULL
};
@@ -51636,7 +51507,7 @@ static int hf_062_340_SID_SAC;
static const FieldPart I062_340_SID_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_340_SID_SAC, NULL };
static int hf_062_340_SID_SIC;
static const FieldPart I062_340_SID_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_340_SID_SIC, NULL };
-static const FieldPart *I062_340_SID_PARTS[] = {
+static const FieldPart * const I062_340_SID_PARTS[] = {
&I062_340_SID_SAC,
&I062_340_SID_SIC,
NULL
@@ -51647,7 +51518,7 @@ static int hf_062_340_POS_RHO;
static const FieldPart I062_340_POS_RHO = { 16, 0.00390625, FIELD_PART_UFLOAT, &hf_062_340_POS_RHO, NULL };
static int hf_062_340_POS_THETA;
static const FieldPart I062_340_POS_THETA = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_340_POS_THETA, NULL };
-static const FieldPart *I062_340_POS_PARTS[] = {
+static const FieldPart * const I062_340_POS_PARTS[] = {
&I062_340_POS_RHO,
&I062_340_POS_THETA,
NULL
@@ -51656,7 +51527,7 @@ static const AsterixField I062_340_POS = { FIXED, 4, 0, 0, &hf_062_340_POS, I062
static int hf_062_340_HEIGHT;
static int hf_062_340_HEIGHT_VALUE;
static const FieldPart I062_340_HEIGHT_VALUE = { 16, 25.0, FIELD_PART_FLOAT, &hf_062_340_HEIGHT_VALUE, NULL };
-static const FieldPart *I062_340_HEIGHT_PARTS[] = {
+static const FieldPart * const I062_340_HEIGHT_PARTS[] = {
&I062_340_HEIGHT_VALUE,
NULL
};
@@ -51678,7 +51549,7 @@ static const value_string valstr_062_340_MDC_G[] = {
static const FieldPart I062_340_MDC_G = { 1, 1.0, FIELD_PART_UINT, &hf_062_340_MDC_G, NULL };
static int hf_062_340_MDC_LMC;
static const FieldPart I062_340_MDC_LMC = { 14, 0.25, FIELD_PART_FLOAT, &hf_062_340_MDC_LMC, NULL };
-static const FieldPart *I062_340_MDC_PARTS[] = {
+static const FieldPart * const I062_340_MDC_PARTS[] = {
&I062_340_MDC_V,
&I062_340_MDC_G,
&I062_340_MDC_LMC,
@@ -51709,7 +51580,7 @@ static const value_string valstr_062_340_MDA_L[] = {
static const FieldPart I062_340_MDA_L = { 1, 1.0, FIELD_PART_UINT, &hf_062_340_MDA_L, NULL };
static int hf_062_340_MDA_MODE3A;
static const FieldPart I062_340_MDA_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_340_MDA_MODE3A, NULL };
-static const FieldPart *I062_340_MDA_PARTS[] = {
+static const FieldPart * const I062_340_MDA_PARTS[] = {
&I062_340_MDA_V,
&I062_340_MDA_G,
&I062_340_MDA_L,
@@ -51753,7 +51624,7 @@ static const value_string valstr_062_340_TYP_TST[] = {
{ 0, NULL }
};
static const FieldPart I062_340_TYP_TST = { 1, 1.0, FIELD_PART_UINT, &hf_062_340_TYP_TST, NULL };
-static const FieldPart *I062_340_TYP_PARTS[] = {
+static const FieldPart * const I062_340_TYP_PARTS[] = {
&I062_340_TYP_TYP,
&I062_340_TYP_SIM,
&I062_340_TYP_RAB,
@@ -51767,7 +51638,7 @@ static int hf_062_380;
static int hf_062_380_ADR;
static int hf_062_380_ADR_VALUE;
static const FieldPart I062_380_ADR_VALUE = { 24, 1.0, FIELD_PART_HEX, &hf_062_380_ADR_VALUE, NULL };
-static const FieldPart *I062_380_ADR_PARTS[] = {
+static const FieldPart * const I062_380_ADR_PARTS[] = {
&I062_380_ADR_VALUE,
NULL
};
@@ -51775,7 +51646,7 @@ static const AsterixField I062_380_ADR = { FIXED, 3, 0, 0, &hf_062_380_ADR, I062
static int hf_062_380_ID;
static int hf_062_380_ID_VALUE;
static const FieldPart I062_380_ID_VALUE = { 48, 1.0, FIELD_PART_CALLSIGN, &hf_062_380_ID_VALUE, NULL };
-static const FieldPart *I062_380_ID_PARTS[] = {
+static const FieldPart * const I062_380_ID_PARTS[] = {
&I062_380_ID_VALUE,
NULL
};
@@ -51783,7 +51654,7 @@ static const AsterixField I062_380_ID = { FIXED, 6, 0, 0, &hf_062_380_ID, I062_3
static int hf_062_380_MHG;
static int hf_062_380_MHG_VALUE;
static const FieldPart I062_380_MHG_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_380_MHG_VALUE, NULL };
-static const FieldPart *I062_380_MHG_PARTS[] = {
+static const FieldPart * const I062_380_MHG_PARTS[] = {
&I062_380_MHG_VALUE,
NULL
};
@@ -51798,7 +51669,7 @@ static const value_string valstr_062_380_IAS_IM[] = {
static const FieldPart I062_380_IAS_IM = { 1, 1.0, FIELD_PART_UINT, &hf_062_380_IAS_IM, NULL };
static int hf_062_380_IAS_IAS;
static const FieldPart I062_380_IAS_IAS = { 15, 1.0, FIELD_PART_HEX, &hf_062_380_IAS_IAS, NULL };
-static const FieldPart *I062_380_IAS_PARTS[] = {
+static const FieldPart * const I062_380_IAS_PARTS[] = {
&I062_380_IAS_IM,
&I062_380_IAS_IAS,
NULL
@@ -51807,7 +51678,7 @@ static const AsterixField I062_380_IAS = { FIXED, 2, 0, 0, &hf_062_380_IAS, I062
static int hf_062_380_TAS;
static int hf_062_380_TAS_VALUE;
static const FieldPart I062_380_TAS_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_380_TAS_VALUE, NULL };
-static const FieldPart *I062_380_TAS_PARTS[] = {
+static const FieldPart * const I062_380_TAS_PARTS[] = {
&I062_380_TAS_VALUE,
NULL
};
@@ -51831,7 +51702,7 @@ static const value_string valstr_062_380_SAL_SRC[] = {
static const FieldPart I062_380_SAL_SRC = { 2, 1.0, FIELD_PART_UINT, &hf_062_380_SAL_SRC, NULL };
static int hf_062_380_SAL_ALT;
static const FieldPart I062_380_SAL_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_380_SAL_ALT, NULL };
-static const FieldPart *I062_380_SAL_PARTS[] = {
+static const FieldPart * const I062_380_SAL_PARTS[] = {
&I062_380_SAL_SAS,
&I062_380_SAL_SRC,
&I062_380_SAL_ALT,
@@ -51862,7 +51733,7 @@ static const value_string valstr_062_380_FSS_AM[] = {
static const FieldPart I062_380_FSS_AM = { 1, 1.0, FIELD_PART_UINT, &hf_062_380_FSS_AM, NULL };
static int hf_062_380_FSS_ALT;
static const FieldPart I062_380_FSS_ALT = { 13, 25.0, FIELD_PART_FLOAT, &hf_062_380_FSS_ALT, NULL };
-static const FieldPart *I062_380_FSS_PARTS[] = {
+static const FieldPart * const I062_380_FSS_PARTS[] = {
&I062_380_FSS_MV,
&I062_380_FSS_AH,
&I062_380_FSS_AM,
@@ -51885,7 +51756,7 @@ static const value_string valstr_062_380_TIS_NVB[] = {
{ 0, NULL }
};
static const FieldPart I062_380_TIS_NVB = { 1, 1.0, FIELD_PART_UINT, &hf_062_380_TIS_NVB, NULL };
-static const FieldPart *I062_380_TIS_PARTS[] = {
+static const FieldPart * const I062_380_TIS_PARTS[] = {
&I062_380_TIS_NAV,
&I062_380_TIS_NVB,
&IXXX_5bit_spare,
@@ -51960,7 +51831,7 @@ static int hf_062_380_TID_TOV;
static const FieldPart I062_380_TID_TOV = { 24, 1.0, FIELD_PART_UFLOAT, &hf_062_380_TID_TOV, NULL };
static int hf_062_380_TID_TTR;
static const FieldPart I062_380_TID_TTR = { 16, 0.01, FIELD_PART_UFLOAT, &hf_062_380_TID_TTR, NULL };
-static const FieldPart *I062_380_TID_PARTS[] = {
+static const FieldPart * const I062_380_TID_PARTS[] = {
&I062_380_TID_TCA,
&I062_380_TID_NC,
&I062_380_TID_TCPN,
@@ -52028,7 +51899,7 @@ static int hf_062_380_COM_B1A;
static const FieldPart I062_380_COM_B1A = { 1, 1.0, FIELD_PART_HEX, &hf_062_380_COM_B1A, NULL };
static int hf_062_380_COM_B1B;
static const FieldPart I062_380_COM_B1B = { 4, 1.0, FIELD_PART_HEX, &hf_062_380_COM_B1B, NULL };
-static const FieldPart *I062_380_COM_PARTS[] = {
+static const FieldPart * const I062_380_COM_PARTS[] = {
&I062_380_COM_COM,
&I062_380_COM_STAT,
&IXXX_2bit_spare,
@@ -52088,7 +51959,7 @@ static const value_string valstr_062_380_SAB_STAT[] = {
{ 0, NULL }
};
static const FieldPart I062_380_SAB_STAT = { 3, 1.0, FIELD_PART_UINT, &hf_062_380_SAB_STAT, NULL };
-static const FieldPart *I062_380_SAB_PARTS[] = {
+static const FieldPart * const I062_380_SAB_PARTS[] = {
&I062_380_SAB_AC,
&I062_380_SAB_MN,
&I062_380_SAB_DC,
@@ -52101,7 +51972,7 @@ static const AsterixField I062_380_SAB = { FIXED, 2, 0, 0, &hf_062_380_SAB, I062
static int hf_062_380_ACS;
static int hf_062_380_ACS_VALUE;
static const FieldPart I062_380_ACS_VALUE = { 56, 1.0, FIELD_PART_HEX, &hf_062_380_ACS_VALUE, NULL };
-static const FieldPart *I062_380_ACS_PARTS[] = {
+static const FieldPart * const I062_380_ACS_PARTS[] = {
&I062_380_ACS_VALUE,
NULL
};
@@ -52109,7 +51980,7 @@ static const AsterixField I062_380_ACS = { FIXED, 7, 0, 0, &hf_062_380_ACS, I062
static int hf_062_380_BVR;
static int hf_062_380_BVR_VALUE;
static const FieldPart I062_380_BVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_380_BVR_VALUE, NULL };
-static const FieldPart *I062_380_BVR_PARTS[] = {
+static const FieldPart * const I062_380_BVR_PARTS[] = {
&I062_380_BVR_VALUE,
NULL
};
@@ -52117,7 +51988,7 @@ static const AsterixField I062_380_BVR = { FIXED, 2, 0, 0, &hf_062_380_BVR, I062
static int hf_062_380_GVR;
static int hf_062_380_GVR_VALUE;
static const FieldPart I062_380_GVR_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_380_GVR_VALUE, NULL };
-static const FieldPart *I062_380_GVR_PARTS[] = {
+static const FieldPart * const I062_380_GVR_PARTS[] = {
&I062_380_GVR_VALUE,
NULL
};
@@ -52125,7 +51996,7 @@ static const AsterixField I062_380_GVR = { FIXED, 2, 0, 0, &hf_062_380_GVR, I062
static int hf_062_380_RAN;
static int hf_062_380_RAN_VALUE;
static const FieldPart I062_380_RAN_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_062_380_RAN_VALUE, NULL };
-static const FieldPart *I062_380_RAN_PARTS[] = {
+static const FieldPart * const I062_380_RAN_PARTS[] = {
&I062_380_RAN_VALUE,
NULL
};
@@ -52142,7 +52013,7 @@ static const value_string valstr_062_380_TAR_TI[] = {
static const FieldPart I062_380_TAR_TI = { 2, 1.0, FIELD_PART_UINT, &hf_062_380_TAR_TI, NULL };
static int hf_062_380_TAR_ROT;
static const FieldPart I062_380_TAR_ROT = { 7, 0.25, FIELD_PART_FLOAT, &hf_062_380_TAR_ROT, NULL };
-static const FieldPart *I062_380_TAR_PARTS[] = {
+static const FieldPart * const I062_380_TAR_PARTS[] = {
&I062_380_TAR_TI,
&IXXX_6bit_spare,
&I062_380_TAR_ROT,
@@ -52153,7 +52024,7 @@ static const AsterixField I062_380_TAR = { FIXED, 2, 0, 0, &hf_062_380_TAR, I062
static int hf_062_380_TAN;
static int hf_062_380_TAN_VALUE;
static const FieldPart I062_380_TAN_VALUE = { 16, 0.0054931640625, FIELD_PART_UFLOAT, &hf_062_380_TAN_VALUE, NULL };
-static const FieldPart *I062_380_TAN_PARTS[] = {
+static const FieldPart * const I062_380_TAN_PARTS[] = {
&I062_380_TAN_VALUE,
NULL
};
@@ -52161,7 +52032,7 @@ static const AsterixField I062_380_TAN = { FIXED, 2, 0, 0, &hf_062_380_TAN, I062
static int hf_062_380_GS;
static int hf_062_380_GS_VALUE;
static const FieldPart I062_380_GS_VALUE = { 16, 6.103515625e-05, FIELD_PART_FLOAT, &hf_062_380_GS_VALUE, NULL };
-static const FieldPart *I062_380_GS_PARTS[] = {
+static const FieldPart * const I062_380_GS_PARTS[] = {
&I062_380_GS_VALUE,
NULL
};
@@ -52169,7 +52040,7 @@ static const AsterixField I062_380_GS = { FIXED, 2, 0, 0, &hf_062_380_GS, I062_3
static int hf_062_380_VUN;
static int hf_062_380_VUN_VALUE;
static const FieldPart I062_380_VUN_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_062_380_VUN_VALUE, NULL };
-static const FieldPart *I062_380_VUN_PARTS[] = {
+static const FieldPart * const I062_380_VUN_PARTS[] = {
&I062_380_VUN_VALUE,
NULL
};
@@ -52211,7 +52082,7 @@ static int hf_062_380_MET_TMPD;
static const FieldPart I062_380_MET_TMPD = { 16, 0.25, FIELD_PART_FLOAT, &hf_062_380_MET_TMPD, NULL };
static int hf_062_380_MET_TRBD;
static const FieldPart I062_380_MET_TRBD = { 8, 1.0, FIELD_PART_UINT, &hf_062_380_MET_TRBD, NULL };
-static const FieldPart *I062_380_MET_PARTS[] = {
+static const FieldPart * const I062_380_MET_PARTS[] = {
&I062_380_MET_WS,
&I062_380_MET_WD,
&I062_380_MET_TMP,
@@ -52254,7 +52125,7 @@ static const value_string valstr_062_380_EMC_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I062_380_EMC_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_062_380_EMC_VALUE, NULL };
-static const FieldPart *I062_380_EMC_PARTS[] = {
+static const FieldPart * const I062_380_EMC_PARTS[] = {
&I062_380_EMC_VALUE,
NULL
};
@@ -52264,7 +52135,7 @@ static int hf_062_380_POS_LAT;
static const FieldPart I062_380_POS_LAT = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_380_POS_LAT, NULL };
static int hf_062_380_POS_LON;
static const FieldPart I062_380_POS_LON = { 24, 2.1457672119140625e-05, FIELD_PART_FLOAT, &hf_062_380_POS_LON, NULL };
-static const FieldPart *I062_380_POS_PARTS[] = {
+static const FieldPart * const I062_380_POS_PARTS[] = {
&I062_380_POS_LAT,
&I062_380_POS_LON,
NULL
@@ -52273,7 +52144,7 @@ static const AsterixField I062_380_POS = { FIXED, 6, 0, 0, &hf_062_380_POS, I062
static int hf_062_380_GAL;
static int hf_062_380_GAL_VALUE;
static const FieldPart I062_380_GAL_VALUE = { 16, 6.25, FIELD_PART_FLOAT, &hf_062_380_GAL_VALUE, NULL };
-static const FieldPart *I062_380_GAL_PARTS[] = {
+static const FieldPart * const I062_380_GAL_PARTS[] = {
&I062_380_GAL_VALUE,
NULL
};
@@ -52281,7 +52152,7 @@ static const AsterixField I062_380_GAL = { FIXED, 2, 0, 0, &hf_062_380_GAL, I062
static int hf_062_380_PUN;
static int hf_062_380_PUN_PUN;
static const FieldPart I062_380_PUN_PUN = { 4, 1.0, FIELD_PART_HEX, &hf_062_380_PUN_PUN, NULL };
-static const FieldPart *I062_380_PUN_PARTS[] = {
+static const FieldPart * const I062_380_PUN_PARTS[] = {
&IXXX_4bit_spare,
&I062_380_PUN_PUN,
NULL
@@ -52290,7 +52161,7 @@ static const AsterixField I062_380_PUN = { FIXED, 1, 0, 0, &hf_062_380_PUN, I062
static int hf_062_380_BDSDATA;
static int hf_062_380_BDSDATA_VALUE;
static const FieldPart I062_380_BDSDATA_VALUE = { 64, 1.0, FIELD_PART_HEX, &hf_062_380_BDSDATA_VALUE, NULL };
-static const FieldPart *I062_380_BDSDATA_PARTS[] = {
+static const FieldPart * const I062_380_BDSDATA_PARTS[] = {
&I062_380_BDSDATA_VALUE,
NULL
};
@@ -52298,7 +52169,7 @@ static const AsterixField I062_380_BDSDATA = { REPETITIVE, 8, 1, 0, &hf_062_380_
static int hf_062_380_IAR;
static int hf_062_380_IAR_VALUE;
static const FieldPart I062_380_IAR_VALUE = { 16, 1.0, FIELD_PART_UFLOAT, &hf_062_380_IAR_VALUE, NULL };
-static const FieldPart *I062_380_IAR_PARTS[] = {
+static const FieldPart * const I062_380_IAR_PARTS[] = {
&I062_380_IAR_VALUE,
NULL
};
@@ -52306,7 +52177,7 @@ static const AsterixField I062_380_IAR = { FIXED, 2, 0, 0, &hf_062_380_IAR, I062
static int hf_062_380_MAC;
static int hf_062_380_MAC_VALUE;
static const FieldPart I062_380_MAC_VALUE = { 16, 0.008, FIELD_PART_UFLOAT, &hf_062_380_MAC_VALUE, NULL };
-static const FieldPart *I062_380_MAC_PARTS[] = {
+static const FieldPart * const I062_380_MAC_PARTS[] = {
&I062_380_MAC_VALUE,
NULL
};
@@ -52314,7 +52185,7 @@ static const AsterixField I062_380_MAC = { FIXED, 2, 0, 0, &hf_062_380_MAC, I062
static int hf_062_380_BPS;
static int hf_062_380_BPS_BPS;
static const FieldPart I062_380_BPS_BPS = { 12, 0.1, FIELD_PART_UFLOAT, &hf_062_380_BPS_BPS, NULL };
-static const FieldPart *I062_380_BPS_PARTS[] = {
+static const FieldPart * const I062_380_BPS_PARTS[] = {
&IXXX_4bit_spare,
&I062_380_BPS_BPS,
NULL
@@ -52327,7 +52198,7 @@ static int hf_062_390_TAG_SAC;
static const FieldPart I062_390_TAG_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_062_390_TAG_SAC, NULL };
static int hf_062_390_TAG_SIC;
static const FieldPart I062_390_TAG_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_062_390_TAG_SIC, NULL };
-static const FieldPart *I062_390_TAG_PARTS[] = {
+static const FieldPart * const I062_390_TAG_PARTS[] = {
&I062_390_TAG_SAC,
&I062_390_TAG_SIC,
NULL
@@ -52336,7 +52207,7 @@ static const AsterixField I062_390_TAG = { FIXED, 2, 0, 0, &hf_062_390_TAG, I062
static int hf_062_390_CS;
static int hf_062_390_CS_VALUE;
static const FieldPart I062_390_CS_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_390_CS_VALUE, NULL };
-static const FieldPart *I062_390_CS_PARTS[] = {
+static const FieldPart * const I062_390_CS_PARTS[] = {
&I062_390_CS_VALUE,
NULL
};
@@ -52353,7 +52224,7 @@ static const value_string valstr_062_390_IFI_TYP[] = {
static const FieldPart I062_390_IFI_TYP = { 2, 1.0, FIELD_PART_UINT, &hf_062_390_IFI_TYP, NULL };
static int hf_062_390_IFI_NBR;
static const FieldPart I062_390_IFI_NBR = { 27, 1.0, FIELD_PART_UINT, &hf_062_390_IFI_NBR, NULL };
-static const FieldPart *I062_390_IFI_PARTS[] = {
+static const FieldPart * const I062_390_IFI_PARTS[] = {
&I062_390_IFI_TYP,
&IXXX_3bit_spare,
&I062_390_IFI_NBR,
@@ -52395,7 +52266,7 @@ static const value_string valstr_062_390_FCT_HPR[] = {
{ 0, NULL }
};
static const FieldPart I062_390_FCT_HPR = { 1, 1.0, FIELD_PART_UINT, &hf_062_390_FCT_HPR, NULL };
-static const FieldPart *I062_390_FCT_PARTS[] = {
+static const FieldPart * const I062_390_FCT_PARTS[] = {
&I062_390_FCT_GATOAT,
&I062_390_FCT_FR1FR2,
&I062_390_FCT_RVSM,
@@ -52407,7 +52278,7 @@ static const AsterixField I062_390_FCT = { FIXED, 1, 0, 0, &hf_062_390_FCT, I062
static int hf_062_390_TAC;
static int hf_062_390_TAC_VALUE;
static const FieldPart I062_390_TAC_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_390_TAC_VALUE, NULL };
-static const FieldPart *I062_390_TAC_PARTS[] = {
+static const FieldPart * const I062_390_TAC_PARTS[] = {
&I062_390_TAC_VALUE,
NULL
};
@@ -52415,7 +52286,7 @@ static const AsterixField I062_390_TAC = { FIXED, 4, 0, 0, &hf_062_390_TAC, I062
static int hf_062_390_WTC;
static int hf_062_390_WTC_VALUE;
static const FieldPart I062_390_WTC_VALUE = { 8, 1.0, FIELD_PART_ASCII, &hf_062_390_WTC_VALUE, NULL };
-static const FieldPart *I062_390_WTC_PARTS[] = {
+static const FieldPart * const I062_390_WTC_PARTS[] = {
&I062_390_WTC_VALUE,
NULL
};
@@ -52423,7 +52294,7 @@ static const AsterixField I062_390_WTC = { FIXED, 1, 0, 0, &hf_062_390_WTC, I062
static int hf_062_390_DEP;
static int hf_062_390_DEP_VALUE;
static const FieldPart I062_390_DEP_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_390_DEP_VALUE, NULL };
-static const FieldPart *I062_390_DEP_PARTS[] = {
+static const FieldPart * const I062_390_DEP_PARTS[] = {
&I062_390_DEP_VALUE,
NULL
};
@@ -52431,7 +52302,7 @@ static const AsterixField I062_390_DEP = { FIXED, 4, 0, 0, &hf_062_390_DEP, I062
static int hf_062_390_DST;
static int hf_062_390_DST_VALUE;
static const FieldPart I062_390_DST_VALUE = { 32, 1.0, FIELD_PART_ASCII, &hf_062_390_DST_VALUE, NULL };
-static const FieldPart *I062_390_DST_PARTS[] = {
+static const FieldPart * const I062_390_DST_PARTS[] = {
&I062_390_DST_VALUE,
NULL
};
@@ -52443,7 +52314,7 @@ static int hf_062_390_RDS_NU2;
static const FieldPart I062_390_RDS_NU2 = { 8, 1.0, FIELD_PART_ASCII, &hf_062_390_RDS_NU2, NULL };
static int hf_062_390_RDS_LTR;
static const FieldPart I062_390_RDS_LTR = { 8, 1.0, FIELD_PART_ASCII, &hf_062_390_RDS_LTR, NULL };
-static const FieldPart *I062_390_RDS_PARTS[] = {
+static const FieldPart * const I062_390_RDS_PARTS[] = {
&I062_390_RDS_NU1,
&I062_390_RDS_NU2,
&I062_390_RDS_LTR,
@@ -52453,7 +52324,7 @@ static const AsterixField I062_390_RDS = { FIXED, 3, 0, 0, &hf_062_390_RDS, I062
static int hf_062_390_CFL;
static int hf_062_390_CFL_VALUE;
static const FieldPart I062_390_CFL_VALUE = { 16, 0.25, FIELD_PART_UFLOAT, &hf_062_390_CFL_VALUE, NULL };
-static const FieldPart *I062_390_CFL_PARTS[] = {
+static const FieldPart * const I062_390_CFL_PARTS[] = {
&I062_390_CFL_VALUE,
NULL
};
@@ -52463,7 +52334,7 @@ static int hf_062_390_CTL_CENTRE;
static const FieldPart I062_390_CTL_CENTRE = { 8, 1.0, FIELD_PART_HEX, &hf_062_390_CTL_CENTRE, NULL };
static int hf_062_390_CTL_POSITION;
static const FieldPart I062_390_CTL_POSITION = { 8, 1.0, FIELD_PART_HEX, &hf_062_390_CTL_POSITION, NULL };
-static const FieldPart *I062_390_CTL_PARTS[] = {
+static const FieldPart * const I062_390_CTL_PARTS[] = {
&I062_390_CTL_CENTRE,
&I062_390_CTL_POSITION,
NULL
@@ -52511,7 +52382,7 @@ static const value_string valstr_062_390_TOD_AVS[] = {
static const FieldPart I062_390_TOD_AVS = { 1, 1.0, FIELD_PART_UINT, &hf_062_390_TOD_AVS, NULL };
static int hf_062_390_TOD_SEC;
static const FieldPart I062_390_TOD_SEC = { 6, 1.0, FIELD_PART_UINT, &hf_062_390_TOD_SEC, NULL };
-static const FieldPart *I062_390_TOD_PARTS[] = {
+static const FieldPart * const I062_390_TOD_PARTS[] = {
&I062_390_TOD_TYP,
&I062_390_TOD_DAY,
&IXXX_4bit_spare,
@@ -52527,7 +52398,7 @@ static const AsterixField I062_390_TOD = { REPETITIVE, 4, 1, 0, &hf_062_390_TOD,
static int hf_062_390_AST;
static int hf_062_390_AST_VALUE;
static const FieldPart I062_390_AST_VALUE = { 48, 1.0, FIELD_PART_ASCII, &hf_062_390_AST_VALUE, NULL };
-static const FieldPart *I062_390_AST_PARTS[] = {
+static const FieldPart * const I062_390_AST_PARTS[] = {
&I062_390_AST_VALUE,
NULL
};
@@ -52551,7 +52422,7 @@ static const value_string valstr_062_390_STS_AVL[] = {
{ 0, NULL }
};
static const FieldPart I062_390_STS_AVL = { 2, 1.0, FIELD_PART_UINT, &hf_062_390_STS_AVL, NULL };
-static const FieldPart *I062_390_STS_PARTS[] = {
+static const FieldPart * const I062_390_STS_PARTS[] = {
&I062_390_STS_EMP,
&I062_390_STS_AVL,
&IXXX_4bit_spare,
@@ -52561,7 +52432,7 @@ static const AsterixField I062_390_STS = { FIXED, 1, 0, 0, &hf_062_390_STS, I062
static int hf_062_390_STD;
static int hf_062_390_STD_VALUE;
static const FieldPart I062_390_STD_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_390_STD_VALUE, NULL };
-static const FieldPart *I062_390_STD_PARTS[] = {
+static const FieldPart * const I062_390_STD_PARTS[] = {
&I062_390_STD_VALUE,
NULL
};
@@ -52569,7 +52440,7 @@ static const AsterixField I062_390_STD = { FIXED, 7, 0, 0, &hf_062_390_STD, I062
static int hf_062_390_STA;
static int hf_062_390_STA_VALUE;
static const FieldPart I062_390_STA_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_390_STA_VALUE, NULL };
-static const FieldPart *I062_390_STA_PARTS[] = {
+static const FieldPart * const I062_390_STA_PARTS[] = {
&I062_390_STA_VALUE,
NULL
};
@@ -52584,7 +52455,7 @@ static const value_string valstr_062_390_PEM_VA[] = {
static const FieldPart I062_390_PEM_VA = { 1, 1.0, FIELD_PART_UINT, &hf_062_390_PEM_VA, NULL };
static int hf_062_390_PEM_MODE3A;
static const FieldPart I062_390_PEM_MODE3A = { 12, 1.0, FIELD_PART_SQUAWK, &hf_062_390_PEM_MODE3A, NULL };
-static const FieldPart *I062_390_PEM_PARTS[] = {
+static const FieldPart * const I062_390_PEM_PARTS[] = {
&IXXX_3bit_spare,
&I062_390_PEM_VA,
&I062_390_PEM_MODE3A,
@@ -52594,7 +52465,7 @@ static const AsterixField I062_390_PEM = { FIXED, 2, 0, 0, &hf_062_390_PEM, I062
static int hf_062_390_PEC;
static int hf_062_390_PEC_VALUE;
static const FieldPart I062_390_PEC_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_062_390_PEC_VALUE, NULL };
-static const FieldPart *I062_390_PEC_PARTS[] = {
+static const FieldPart * const I062_390_PEC_PARTS[] = {
&I062_390_PEC_VALUE,
NULL
};
@@ -52606,7 +52477,7 @@ static int hf_062_500_APC_X;
static const FieldPart I062_500_APC_X = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_500_APC_X, NULL };
static int hf_062_500_APC_Y;
static const FieldPart I062_500_APC_Y = { 16, 0.5, FIELD_PART_UFLOAT, &hf_062_500_APC_Y, NULL };
-static const FieldPart *I062_500_APC_PARTS[] = {
+static const FieldPart * const I062_500_APC_PARTS[] = {
&I062_500_APC_X,
&I062_500_APC_Y,
NULL
@@ -52615,7 +52486,7 @@ static const AsterixField I062_500_APC = { FIXED, 4, 0, 0, &hf_062_500_APC, I062
static int hf_062_500_COV;
static int hf_062_500_COV_VALUE;
static const FieldPart I062_500_COV_VALUE = { 16, 0.5, FIELD_PART_FLOAT, &hf_062_500_COV_VALUE, NULL };
-static const FieldPart *I062_500_COV_PARTS[] = {
+static const FieldPart * const I062_500_COV_PARTS[] = {
&I062_500_COV_VALUE,
NULL
};
@@ -52625,7 +52496,7 @@ static int hf_062_500_APW_LAT;
static const FieldPart I062_500_APW_LAT = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_500_APW_LAT, NULL };
static int hf_062_500_APW_LON;
static const FieldPart I062_500_APW_LON = { 16, 5.364418029785156e-06, FIELD_PART_UFLOAT, &hf_062_500_APW_LON, NULL };
-static const FieldPart *I062_500_APW_PARTS[] = {
+static const FieldPart * const I062_500_APW_PARTS[] = {
&I062_500_APW_LAT,
&I062_500_APW_LON,
NULL
@@ -52634,7 +52505,7 @@ static const AsterixField I062_500_APW = { FIXED, 4, 0, 0, &hf_062_500_APW, I062
static int hf_062_500_AGA;
static int hf_062_500_AGA_VALUE;
static const FieldPart I062_500_AGA_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_500_AGA_VALUE, NULL };
-static const FieldPart *I062_500_AGA_PARTS[] = {
+static const FieldPart * const I062_500_AGA_PARTS[] = {
&I062_500_AGA_VALUE,
NULL
};
@@ -52642,7 +52513,7 @@ static const AsterixField I062_500_AGA = { FIXED, 1, 0, 0, &hf_062_500_AGA, I062
static int hf_062_500_ABA;
static int hf_062_500_ABA_VALUE;
static const FieldPart I062_500_ABA_VALUE = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_500_ABA_VALUE, NULL };
-static const FieldPart *I062_500_ABA_PARTS[] = {
+static const FieldPart * const I062_500_ABA_PARTS[] = {
&I062_500_ABA_VALUE,
NULL
};
@@ -52652,7 +52523,7 @@ static int hf_062_500_ATV_X;
static const FieldPart I062_500_ATV_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_500_ATV_X, NULL };
static int hf_062_500_ATV_Y;
static const FieldPart I062_500_ATV_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_500_ATV_Y, NULL };
-static const FieldPart *I062_500_ATV_PARTS[] = {
+static const FieldPart * const I062_500_ATV_PARTS[] = {
&I062_500_ATV_X,
&I062_500_ATV_Y,
NULL
@@ -52663,7 +52534,7 @@ static int hf_062_500_AA_X;
static const FieldPart I062_500_AA_X = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_500_AA_X, NULL };
static int hf_062_500_AA_Y;
static const FieldPart I062_500_AA_Y = { 8, 0.25, FIELD_PART_UFLOAT, &hf_062_500_AA_Y, NULL };
-static const FieldPart *I062_500_AA_PARTS[] = {
+static const FieldPart * const I062_500_AA_PARTS[] = {
&I062_500_AA_X,
&I062_500_AA_Y,
NULL
@@ -52672,7 +52543,7 @@ static const AsterixField I062_500_AA = { FIXED, 2, 0, 0, &hf_062_500_AA, I062_5
static int hf_062_500_ARC;
static int hf_062_500_ARC_VALUE;
static const FieldPart I062_500_ARC_VALUE = { 8, 6.25, FIELD_PART_UFLOAT, &hf_062_500_ARC_VALUE, NULL };
-static const FieldPart *I062_500_ARC_PARTS[] = {
+static const FieldPart * const I062_500_ARC_PARTS[] = {
&I062_500_ARC_VALUE,
NULL
};
@@ -52687,7 +52558,7 @@ static int hf_062_510_SIDENT;
static const FieldPart I062_510_SIDENT = { 8, 1.0, FIELD_PART_HEX, &hf_062_510_SIDENT, NULL };
static int hf_062_510_STRACK;
static const FieldPart I062_510_STRACK = { 15, 1.0, FIELD_PART_HEX, &hf_062_510_STRACK, NULL };
-static const FieldPart *I062_510_PARTS[] = {
+static const FieldPart * const I062_510_PARTS[] = {
&I062_510_MIDENT,
&I062_510_MTRACK,
&IXXX_FX,
@@ -52702,8 +52573,7 @@ static const AsterixField I062_RE = { EXP, 0, 0, 1, &hf_062_RE, NULL, { NULL } }
static int hf_062_SP;
static const AsterixField I062_SP = { EXP, 0, 0, 1, &hf_062_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I062_V1_20_uap[] = {
+static const AsterixField * const I062_V1_20_uap[] = {
&I062_V1_20_010,
&IX_SPARE,
&I062_V1_20_015,
@@ -52741,14 +52611,12 @@ static const AsterixField *I062_V1_20_uap[] = {
&I062_V1_20_SP,
NULL
};
-static const AsterixField **I062_V1_20[] = {
+static const AsterixField * const * const I062_V1_20[] = {
I062_V1_20_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I062_uap[] = {
+static const AsterixField * const I062_uap[] = {
&I062_010,
&IX_SPARE,
&I062_015,
@@ -52786,11 +52654,10 @@ static const AsterixField *I062_uap[] = {
&I062_SP,
NULL
};
-static const AsterixField **I062[] = {
+static const AsterixField * const * const I062[] = {
I062_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 063, edition 1.6 */
static int hf_063_V1_6_010;
@@ -52798,7 +52665,7 @@ static int hf_063_V1_6_010_SAC;
static const FieldPart I063_V1_6_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_063_V1_6_010_SAC, NULL };
static int hf_063_V1_6_010_SIC;
static const FieldPart I063_V1_6_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_063_V1_6_010_SIC, NULL };
-static const FieldPart *I063_V1_6_010_PARTS[] = {
+static const FieldPart * const I063_V1_6_010_PARTS[] = {
&I063_V1_6_010_SAC,
&I063_V1_6_010_SIC,
NULL
@@ -52807,7 +52674,7 @@ static const AsterixField I063_V1_6_010 = { FIXED, 2, 0, 0, &hf_063_V1_6_010, I0
static int hf_063_V1_6_015;
static int hf_063_V1_6_015_VALUE;
static const FieldPart I063_V1_6_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_063_V1_6_015_VALUE, NULL };
-static const FieldPart *I063_V1_6_015_PARTS[] = {
+static const FieldPart * const I063_V1_6_015_PARTS[] = {
&I063_V1_6_015_VALUE,
NULL
};
@@ -52815,7 +52682,7 @@ static const AsterixField I063_V1_6_015 = { FIXED, 1, 0, 0, &hf_063_V1_6_015, I0
static int hf_063_V1_6_030;
static int hf_063_V1_6_030_VALUE;
static const FieldPart I063_V1_6_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_063_V1_6_030_VALUE, NULL };
-static const FieldPart *I063_V1_6_030_PARTS[] = {
+static const FieldPart * const I063_V1_6_030_PARTS[] = {
&I063_V1_6_030_VALUE,
NULL
};
@@ -52825,7 +52692,7 @@ static int hf_063_V1_6_050_SAC;
static const FieldPart I063_V1_6_050_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_063_V1_6_050_SAC, NULL };
static int hf_063_V1_6_050_SIC;
static const FieldPart I063_V1_6_050_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_063_V1_6_050_SIC, NULL };
-static const FieldPart *I063_V1_6_050_PARTS[] = {
+static const FieldPart * const I063_V1_6_050_PARTS[] = {
&I063_V1_6_050_SAC,
&I063_V1_6_050_SIC,
NULL
@@ -52918,7 +52785,7 @@ static const value_string valstr_063_V1_6_060_NPW[] = {
{ 0, NULL }
};
static const FieldPart I063_V1_6_060_NPW = { 1, 1.0, FIELD_PART_UINT, &hf_063_V1_6_060_NPW, NULL };
-static const FieldPart *I063_V1_6_060_PARTS[] = {
+static const FieldPart * const I063_V1_6_060_PARTS[] = {
&I063_V1_6_060_CON,
&I063_V1_6_060_PSR,
&I063_V1_6_060_SSR,
@@ -52940,7 +52807,7 @@ static const AsterixField I063_V1_6_060 = { FX, 1, 0, 0, &hf_063_V1_6_060, I063_
static int hf_063_V1_6_070;
static int hf_063_V1_6_070_VALUE;
static const FieldPart I063_V1_6_070_VALUE = { 16, 1.0, FIELD_PART_FLOAT, &hf_063_V1_6_070_VALUE, NULL };
-static const FieldPart *I063_V1_6_070_PARTS[] = {
+static const FieldPart * const I063_V1_6_070_PARTS[] = {
&I063_V1_6_070_VALUE,
NULL
};
@@ -52950,7 +52817,7 @@ static int hf_063_V1_6_080_SRG;
static const FieldPart I063_V1_6_080_SRG = { 16, 1e-05, FIELD_PART_FLOAT, &hf_063_V1_6_080_SRG, NULL };
static int hf_063_V1_6_080_SRB;
static const FieldPart I063_V1_6_080_SRB = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_063_V1_6_080_SRB, NULL };
-static const FieldPart *I063_V1_6_080_PARTS[] = {
+static const FieldPart * const I063_V1_6_080_PARTS[] = {
&I063_V1_6_080_SRG,
&I063_V1_6_080_SRB,
NULL
@@ -52959,7 +52826,7 @@ static const AsterixField I063_V1_6_080 = { FIXED, 4, 0, 0, &hf_063_V1_6_080, I0
static int hf_063_V1_6_081;
static int hf_063_V1_6_081_VALUE;
static const FieldPart I063_V1_6_081_VALUE = { 16, 0.0054931640625, FIELD_PART_FLOAT, &hf_063_V1_6_081_VALUE, NULL };
-static const FieldPart *I063_V1_6_081_PARTS[] = {
+static const FieldPart * const I063_V1_6_081_PARTS[] = {
&I063_V1_6_081_VALUE,
NULL
};
@@ -52969,7 +52836,7 @@ static int hf_063_V1_6_090_PRG;
static const FieldPart I063_V1_6_090_PRG = { 16, 1e-05, FIELD_PART_FLOAT, &hf_063_V1_6_090_PRG, NULL };
static int hf_063_V1_6_090_PRB;
static const FieldPart I063_V1_6_090_PRB = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_063_V1_6_090_PRB, NULL };
-static const FieldPart *I063_V1_6_090_PARTS[] = {
+static const FieldPart * const I063_V1_6_090_PARTS[] = {
&I063_V1_6_090_PRG,
&I063_V1_6_090_PRB,
NULL
@@ -52978,7 +52845,7 @@ static const AsterixField I063_V1_6_090 = { FIXED, 4, 0, 0, &hf_063_V1_6_090, I0
static int hf_063_V1_6_091;
static int hf_063_V1_6_091_VALUE;
static const FieldPart I063_V1_6_091_VALUE = { 16, 0.0054931640625, FIELD_PART_FLOAT, &hf_063_V1_6_091_VALUE, NULL };
-static const FieldPart *I063_V1_6_091_PARTS[] = {
+static const FieldPart * const I063_V1_6_091_PARTS[] = {
&I063_V1_6_091_VALUE,
NULL
};
@@ -52986,7 +52853,7 @@ static const AsterixField I063_V1_6_091 = { FIXED, 2, 0, 0, &hf_063_V1_6_091, I0
static int hf_063_V1_6_092;
static int hf_063_V1_6_092_VALUE;
static const FieldPart I063_V1_6_092_VALUE = { 16, 0.0054931640625, FIELD_PART_FLOAT, &hf_063_V1_6_092_VALUE, NULL };
-static const FieldPart *I063_V1_6_092_PARTS[] = {
+static const FieldPart * const I063_V1_6_092_PARTS[] = {
&I063_V1_6_092_VALUE,
NULL
};
@@ -53002,7 +52869,7 @@ static int hf_063_010_SAC;
static const FieldPart I063_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_063_010_SAC, NULL };
static int hf_063_010_SIC;
static const FieldPart I063_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_063_010_SIC, NULL };
-static const FieldPart *I063_010_PARTS[] = {
+static const FieldPart * const I063_010_PARTS[] = {
&I063_010_SAC,
&I063_010_SIC,
NULL
@@ -53011,7 +52878,7 @@ static const AsterixField I063_010 = { FIXED, 2, 0, 0, &hf_063_010, I063_010_PAR
static int hf_063_015;
static int hf_063_015_VALUE;
static const FieldPart I063_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_063_015_VALUE, NULL };
-static const FieldPart *I063_015_PARTS[] = {
+static const FieldPart * const I063_015_PARTS[] = {
&I063_015_VALUE,
NULL
};
@@ -53019,7 +52886,7 @@ static const AsterixField I063_015 = { FIXED, 1, 0, 0, &hf_063_015, I063_015_PAR
static int hf_063_030;
static int hf_063_030_VALUE;
static const FieldPart I063_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_063_030_VALUE, NULL };
-static const FieldPart *I063_030_PARTS[] = {
+static const FieldPart * const I063_030_PARTS[] = {
&I063_030_VALUE,
NULL
};
@@ -53029,7 +52896,7 @@ static int hf_063_050_SAC;
static const FieldPart I063_050_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_063_050_SAC, NULL };
static int hf_063_050_SIC;
static const FieldPart I063_050_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_063_050_SIC, NULL };
-static const FieldPart *I063_050_PARTS[] = {
+static const FieldPart * const I063_050_PARTS[] = {
&I063_050_SAC,
&I063_050_SIC,
NULL
@@ -53122,7 +52989,7 @@ static const value_string valstr_063_060_NPW[] = {
{ 0, NULL }
};
static const FieldPart I063_060_NPW = { 1, 1.0, FIELD_PART_UINT, &hf_063_060_NPW, NULL };
-static const FieldPart *I063_060_PARTS[] = {
+static const FieldPart * const I063_060_PARTS[] = {
&I063_060_CON,
&I063_060_PSR,
&I063_060_SSR,
@@ -53144,7 +53011,7 @@ static const AsterixField I063_060 = { FX, 1, 0, 0, &hf_063_060, I063_060_PARTS,
static int hf_063_070;
static int hf_063_070_VALUE;
static const FieldPart I063_070_VALUE = { 16, 1.0, FIELD_PART_FLOAT, &hf_063_070_VALUE, NULL };
-static const FieldPart *I063_070_PARTS[] = {
+static const FieldPart * const I063_070_PARTS[] = {
&I063_070_VALUE,
NULL
};
@@ -53154,7 +53021,7 @@ static int hf_063_080_SRG;
static const FieldPart I063_080_SRG = { 16, 1e-05, FIELD_PART_FLOAT, &hf_063_080_SRG, NULL };
static int hf_063_080_SRB;
static const FieldPart I063_080_SRB = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_063_080_SRB, NULL };
-static const FieldPart *I063_080_PARTS[] = {
+static const FieldPart * const I063_080_PARTS[] = {
&I063_080_SRG,
&I063_080_SRB,
NULL
@@ -53163,7 +53030,7 @@ static const AsterixField I063_080 = { FIXED, 4, 0, 0, &hf_063_080, I063_080_PAR
static int hf_063_081;
static int hf_063_081_VALUE;
static const FieldPart I063_081_VALUE = { 16, 0.0054931640625, FIELD_PART_FLOAT, &hf_063_081_VALUE, NULL };
-static const FieldPart *I063_081_PARTS[] = {
+static const FieldPart * const I063_081_PARTS[] = {
&I063_081_VALUE,
NULL
};
@@ -53173,7 +53040,7 @@ static int hf_063_090_PRG;
static const FieldPart I063_090_PRG = { 16, 1e-05, FIELD_PART_FLOAT, &hf_063_090_PRG, NULL };
static int hf_063_090_PRB;
static const FieldPart I063_090_PRB = { 16, 0.0078125, FIELD_PART_FLOAT, &hf_063_090_PRB, NULL };
-static const FieldPart *I063_090_PARTS[] = {
+static const FieldPart * const I063_090_PARTS[] = {
&I063_090_PRG,
&I063_090_PRB,
NULL
@@ -53182,7 +53049,7 @@ static const AsterixField I063_090 = { FIXED, 4, 0, 0, &hf_063_090, I063_090_PAR
static int hf_063_091;
static int hf_063_091_VALUE;
static const FieldPart I063_091_VALUE = { 16, 0.0054931640625, FIELD_PART_FLOAT, &hf_063_091_VALUE, NULL };
-static const FieldPart *I063_091_PARTS[] = {
+static const FieldPart * const I063_091_PARTS[] = {
&I063_091_VALUE,
NULL
};
@@ -53190,7 +53057,7 @@ static const AsterixField I063_091 = { FIXED, 2, 0, 0, &hf_063_091, I063_091_PAR
static int hf_063_092;
static int hf_063_092_VALUE;
static const FieldPart I063_092_VALUE = { 16, 0.0054931640625, FIELD_PART_FLOAT, &hf_063_092_VALUE, NULL };
-static const FieldPart *I063_092_PARTS[] = {
+static const FieldPart * const I063_092_PARTS[] = {
&I063_092_VALUE,
NULL
};
@@ -53200,8 +53067,7 @@ static const AsterixField I063_RE = { EXP, 0, 0, 1, &hf_063_RE, NULL, { NULL } }
static int hf_063_SP;
static const AsterixField I063_SP = { EXP, 0, 0, 1, &hf_063_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I063_V1_6_uap[] = {
+static const AsterixField * const I063_V1_6_uap[] = {
&I063_V1_6_010,
&I063_V1_6_015,
&I063_V1_6_030,
@@ -53218,14 +53084,12 @@ static const AsterixField *I063_V1_6_uap[] = {
&I063_V1_6_SP,
NULL
};
-static const AsterixField **I063_V1_6[] = {
+static const AsterixField * const * const I063_V1_6[] = {
I063_V1_6_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I063_uap[] = {
+static const AsterixField * const I063_uap[] = {
&I063_010,
&I063_015,
&I063_030,
@@ -53242,11 +53106,10 @@ static const AsterixField *I063_uap[] = {
&I063_SP,
NULL
};
-static const AsterixField **I063[] = {
+static const AsterixField * const * const I063[] = {
I063_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 065, edition 1.4 */
static int hf_065_V1_4_000;
@@ -53258,7 +53121,7 @@ static const value_string valstr_065_V1_4_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_V1_4_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_4_000_VALUE, NULL };
-static const FieldPart *I065_V1_4_000_PARTS[] = {
+static const FieldPart * const I065_V1_4_000_PARTS[] = {
&I065_V1_4_000_VALUE,
NULL
};
@@ -53268,7 +53131,7 @@ static int hf_065_V1_4_010_SAC;
static const FieldPart I065_V1_4_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_4_010_SAC, NULL };
static int hf_065_V1_4_010_SIC;
static const FieldPart I065_V1_4_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_4_010_SIC, NULL };
-static const FieldPart *I065_V1_4_010_PARTS[] = {
+static const FieldPart * const I065_V1_4_010_PARTS[] = {
&I065_V1_4_010_SAC,
&I065_V1_4_010_SIC,
NULL
@@ -53277,7 +53140,7 @@ static const AsterixField I065_V1_4_010 = { FIXED, 2, 0, 0, &hf_065_V1_4_010, I0
static int hf_065_V1_4_015;
static int hf_065_V1_4_015_VALUE;
static const FieldPart I065_V1_4_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_4_015_VALUE, NULL };
-static const FieldPart *I065_V1_4_015_PARTS[] = {
+static const FieldPart * const I065_V1_4_015_PARTS[] = {
&I065_V1_4_015_VALUE,
NULL
};
@@ -53285,7 +53148,7 @@ static const AsterixField I065_V1_4_015 = { FIXED, 1, 0, 0, &hf_065_V1_4_015, I0
static int hf_065_V1_4_020;
static int hf_065_V1_4_020_VALUE;
static const FieldPart I065_V1_4_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_4_020_VALUE, NULL };
-static const FieldPart *I065_V1_4_020_PARTS[] = {
+static const FieldPart * const I065_V1_4_020_PARTS[] = {
&I065_V1_4_020_VALUE,
NULL
};
@@ -53293,7 +53156,7 @@ static const AsterixField I065_V1_4_020 = { FIXED, 1, 0, 0, &hf_065_V1_4_020, I0
static int hf_065_V1_4_030;
static int hf_065_V1_4_030_VALUE;
static const FieldPart I065_V1_4_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_065_V1_4_030_VALUE, NULL };
-static const FieldPart *I065_V1_4_030_PARTS[] = {
+static const FieldPart * const I065_V1_4_030_PARTS[] = {
&I065_V1_4_030_VALUE,
NULL
};
@@ -53333,7 +53196,7 @@ static const value_string valstr_065_V1_4_040_PSS[] = {
static const FieldPart I065_V1_4_040_PSS = { 2, 1.0, FIELD_PART_UINT, &hf_065_V1_4_040_PSS, NULL };
static int hf_065_V1_4_040_STTN;
static const FieldPart I065_V1_4_040_STTN = { 1, 1.0, FIELD_PART_HEX, &hf_065_V1_4_040_STTN, NULL };
-static const FieldPart *I065_V1_4_040_PARTS[] = {
+static const FieldPart * const I065_V1_4_040_PARTS[] = {
&I065_V1_4_040_NOGO,
&I065_V1_4_040_OVL,
&I065_V1_4_040_TSV,
@@ -53365,7 +53228,7 @@ static const value_string valstr_065_V1_4_050_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_V1_4_050_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_4_050_VALUE, NULL };
-static const FieldPart *I065_V1_4_050_PARTS[] = {
+static const FieldPart * const I065_V1_4_050_PARTS[] = {
&I065_V1_4_050_VALUE,
NULL
};
@@ -53375,8 +53238,7 @@ static const AsterixField I065_V1_4_RE = { EXP, 0, 0, 1, &hf_065_V1_4_RE, NULL,
static int hf_065_V1_4_SP;
static const AsterixField I065_V1_4_SP = { EXP, 0, 0, 1, &hf_065_V1_4_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I065_V1_4_uap[] = {
+static const AsterixField * const I065_V1_4_uap[] = {
&I065_V1_4_010,
&I065_V1_4_000,
&I065_V1_4_015,
@@ -53393,11 +53255,10 @@ static const AsterixField *I065_V1_4_uap[] = {
&I065_V1_4_SP,
NULL
};
-static const AsterixField **I065_V1_4[] = {
+static const AsterixField * const * const I065_V1_4[] = {
I065_V1_4_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 065, edition 1.5 */
static int hf_065_V1_5_000;
@@ -53409,7 +53270,7 @@ static const value_string valstr_065_V1_5_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_V1_5_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_5_000_VALUE, NULL };
-static const FieldPart *I065_V1_5_000_PARTS[] = {
+static const FieldPart * const I065_V1_5_000_PARTS[] = {
&I065_V1_5_000_VALUE,
NULL
};
@@ -53419,7 +53280,7 @@ static int hf_065_V1_5_010_SAC;
static const FieldPart I065_V1_5_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_5_010_SAC, NULL };
static int hf_065_V1_5_010_SIC;
static const FieldPart I065_V1_5_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_5_010_SIC, NULL };
-static const FieldPart *I065_V1_5_010_PARTS[] = {
+static const FieldPart * const I065_V1_5_010_PARTS[] = {
&I065_V1_5_010_SAC,
&I065_V1_5_010_SIC,
NULL
@@ -53428,7 +53289,7 @@ static const AsterixField I065_V1_5_010 = { FIXED, 2, 0, 0, &hf_065_V1_5_010, I0
static int hf_065_V1_5_015;
static int hf_065_V1_5_015_VALUE;
static const FieldPart I065_V1_5_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_5_015_VALUE, NULL };
-static const FieldPart *I065_V1_5_015_PARTS[] = {
+static const FieldPart * const I065_V1_5_015_PARTS[] = {
&I065_V1_5_015_VALUE,
NULL
};
@@ -53436,7 +53297,7 @@ static const AsterixField I065_V1_5_015 = { FIXED, 1, 0, 0, &hf_065_V1_5_015, I0
static int hf_065_V1_5_020;
static int hf_065_V1_5_020_VALUE;
static const FieldPart I065_V1_5_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_5_020_VALUE, NULL };
-static const FieldPart *I065_V1_5_020_PARTS[] = {
+static const FieldPart * const I065_V1_5_020_PARTS[] = {
&I065_V1_5_020_VALUE,
NULL
};
@@ -53444,7 +53305,7 @@ static const AsterixField I065_V1_5_020 = { FIXED, 1, 0, 0, &hf_065_V1_5_020, I0
static int hf_065_V1_5_030;
static int hf_065_V1_5_030_VALUE;
static const FieldPart I065_V1_5_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_065_V1_5_030_VALUE, NULL };
-static const FieldPart *I065_V1_5_030_PARTS[] = {
+static const FieldPart * const I065_V1_5_030_PARTS[] = {
&I065_V1_5_030_VALUE,
NULL
};
@@ -53484,7 +53345,7 @@ static const value_string valstr_065_V1_5_040_PSS[] = {
static const FieldPart I065_V1_5_040_PSS = { 2, 1.0, FIELD_PART_UINT, &hf_065_V1_5_040_PSS, NULL };
static int hf_065_V1_5_040_STTN;
static const FieldPart I065_V1_5_040_STTN = { 1, 1.0, FIELD_PART_HEX, &hf_065_V1_5_040_STTN, NULL };
-static const FieldPart *I065_V1_5_040_PARTS[] = {
+static const FieldPart * const I065_V1_5_040_PARTS[] = {
&I065_V1_5_040_NOGO,
&I065_V1_5_040_OVL,
&I065_V1_5_040_TSV,
@@ -53516,7 +53377,7 @@ static const value_string valstr_065_V1_5_050_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_V1_5_050_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_5_050_VALUE, NULL };
-static const FieldPart *I065_V1_5_050_PARTS[] = {
+static const FieldPart * const I065_V1_5_050_PARTS[] = {
&I065_V1_5_050_VALUE,
NULL
};
@@ -53526,8 +53387,7 @@ static const AsterixField I065_V1_5_RE = { EXP, 0, 0, 1, &hf_065_V1_5_RE, NULL,
static int hf_065_V1_5_SP;
static const AsterixField I065_V1_5_SP = { EXP, 0, 0, 1, &hf_065_V1_5_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I065_V1_5_uap[] = {
+static const AsterixField * const I065_V1_5_uap[] = {
&I065_V1_5_010,
&I065_V1_5_000,
&I065_V1_5_015,
@@ -53544,11 +53404,10 @@ static const AsterixField *I065_V1_5_uap[] = {
&I065_V1_5_SP,
NULL
};
-static const AsterixField **I065_V1_5[] = {
+static const AsterixField * const * const I065_V1_5[] = {
I065_V1_5_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 065, edition 1.6 */
static int hf_065_V1_6_000;
@@ -53560,7 +53419,7 @@ static const value_string valstr_065_V1_6_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_V1_6_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_6_000_VALUE, NULL };
-static const FieldPart *I065_V1_6_000_PARTS[] = {
+static const FieldPart * const I065_V1_6_000_PARTS[] = {
&I065_V1_6_000_VALUE,
NULL
};
@@ -53570,7 +53429,7 @@ static int hf_065_V1_6_010_SAC;
static const FieldPart I065_V1_6_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_6_010_SAC, NULL };
static int hf_065_V1_6_010_SIC;
static const FieldPart I065_V1_6_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_6_010_SIC, NULL };
-static const FieldPart *I065_V1_6_010_PARTS[] = {
+static const FieldPart * const I065_V1_6_010_PARTS[] = {
&I065_V1_6_010_SAC,
&I065_V1_6_010_SIC,
NULL
@@ -53579,7 +53438,7 @@ static const AsterixField I065_V1_6_010 = { FIXED, 2, 0, 0, &hf_065_V1_6_010, I0
static int hf_065_V1_6_015;
static int hf_065_V1_6_015_VALUE;
static const FieldPart I065_V1_6_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_065_V1_6_015_VALUE, NULL };
-static const FieldPart *I065_V1_6_015_PARTS[] = {
+static const FieldPart * const I065_V1_6_015_PARTS[] = {
&I065_V1_6_015_VALUE,
NULL
};
@@ -53587,7 +53446,7 @@ static const AsterixField I065_V1_6_015 = { FIXED, 1, 0, 0, &hf_065_V1_6_015, I0
static int hf_065_V1_6_020;
static int hf_065_V1_6_020_VALUE;
static const FieldPart I065_V1_6_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_6_020_VALUE, NULL };
-static const FieldPart *I065_V1_6_020_PARTS[] = {
+static const FieldPart * const I065_V1_6_020_PARTS[] = {
&I065_V1_6_020_VALUE,
NULL
};
@@ -53595,7 +53454,7 @@ static const AsterixField I065_V1_6_020 = { FIXED, 1, 0, 0, &hf_065_V1_6_020, I0
static int hf_065_V1_6_030;
static int hf_065_V1_6_030_VALUE;
static const FieldPart I065_V1_6_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_065_V1_6_030_VALUE, NULL };
-static const FieldPart *I065_V1_6_030_PARTS[] = {
+static const FieldPart * const I065_V1_6_030_PARTS[] = {
&I065_V1_6_030_VALUE,
NULL
};
@@ -53635,7 +53494,7 @@ static const value_string valstr_065_V1_6_040_PSS[] = {
static const FieldPart I065_V1_6_040_PSS = { 2, 1.0, FIELD_PART_UINT, &hf_065_V1_6_040_PSS, NULL };
static int hf_065_V1_6_040_STTN;
static const FieldPart I065_V1_6_040_STTN = { 1, 1.0, FIELD_PART_HEX, &hf_065_V1_6_040_STTN, NULL };
-static const FieldPart *I065_V1_6_040_PARTS[] = {
+static const FieldPart * const I065_V1_6_040_PARTS[] = {
&I065_V1_6_040_NOGO,
&I065_V1_6_040_OVL,
&I065_V1_6_040_TSV,
@@ -53667,7 +53526,7 @@ static const value_string valstr_065_V1_6_050_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_V1_6_050_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_V1_6_050_VALUE, NULL };
-static const FieldPart *I065_V1_6_050_PARTS[] = {
+static const FieldPart * const I065_V1_6_050_PARTS[] = {
&I065_V1_6_050_VALUE,
NULL
};
@@ -53687,7 +53546,7 @@ static const value_string valstr_065_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_000_VALUE, NULL };
-static const FieldPart *I065_000_PARTS[] = {
+static const FieldPart * const I065_000_PARTS[] = {
&I065_000_VALUE,
NULL
};
@@ -53697,7 +53556,7 @@ static int hf_065_010_SAC;
static const FieldPart I065_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_065_010_SAC, NULL };
static int hf_065_010_SIC;
static const FieldPart I065_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_065_010_SIC, NULL };
-static const FieldPart *I065_010_PARTS[] = {
+static const FieldPart * const I065_010_PARTS[] = {
&I065_010_SAC,
&I065_010_SIC,
NULL
@@ -53706,7 +53565,7 @@ static const AsterixField I065_010 = { FIXED, 2, 0, 0, &hf_065_010, I065_010_PAR
static int hf_065_015;
static int hf_065_015_VALUE;
static const FieldPart I065_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_065_015_VALUE, NULL };
-static const FieldPart *I065_015_PARTS[] = {
+static const FieldPart * const I065_015_PARTS[] = {
&I065_015_VALUE,
NULL
};
@@ -53714,7 +53573,7 @@ static const AsterixField I065_015 = { FIXED, 1, 0, 0, &hf_065_015, I065_015_PAR
static int hf_065_020;
static int hf_065_020_VALUE;
static const FieldPart I065_020_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_020_VALUE, NULL };
-static const FieldPart *I065_020_PARTS[] = {
+static const FieldPart * const I065_020_PARTS[] = {
&I065_020_VALUE,
NULL
};
@@ -53722,7 +53581,7 @@ static const AsterixField I065_020 = { FIXED, 1, 0, 0, &hf_065_020, I065_020_PAR
static int hf_065_030;
static int hf_065_030_VALUE;
static const FieldPart I065_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_065_030_VALUE, NULL };
-static const FieldPart *I065_030_PARTS[] = {
+static const FieldPart * const I065_030_PARTS[] = {
&I065_030_VALUE,
NULL
};
@@ -53762,7 +53621,7 @@ static const value_string valstr_065_040_PSS[] = {
static const FieldPart I065_040_PSS = { 2, 1.0, FIELD_PART_UINT, &hf_065_040_PSS, NULL };
static int hf_065_040_STTN;
static const FieldPart I065_040_STTN = { 1, 1.0, FIELD_PART_HEX, &hf_065_040_STTN, NULL };
-static const FieldPart *I065_040_PARTS[] = {
+static const FieldPart * const I065_040_PARTS[] = {
&I065_040_NOGO,
&I065_040_OVL,
&I065_040_TSV,
@@ -53794,7 +53653,7 @@ static const value_string valstr_065_050_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I065_050_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_065_050_VALUE, NULL };
-static const FieldPart *I065_050_PARTS[] = {
+static const FieldPart * const I065_050_PARTS[] = {
&I065_050_VALUE,
NULL
};
@@ -53804,8 +53663,7 @@ static const AsterixField I065_RE = { EXP, 0, 0, 1, &hf_065_RE, NULL, { NULL } }
static int hf_065_SP;
static const AsterixField I065_SP = { EXP, 0, 0, 1, &hf_065_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I065_V1_6_uap[] = {
+static const AsterixField * const I065_V1_6_uap[] = {
&I065_V1_6_010,
&I065_V1_6_000,
&I065_V1_6_015,
@@ -53822,14 +53680,12 @@ static const AsterixField *I065_V1_6_uap[] = {
&I065_V1_6_SP,
NULL
};
-static const AsterixField **I065_V1_6[] = {
+static const AsterixField * const * const I065_V1_6[] = {
I065_V1_6_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I065_uap[] = {
+static const AsterixField * const I065_uap[] = {
&I065_010,
&I065_000,
&I065_015,
@@ -53846,11 +53702,10 @@ static const AsterixField *I065_uap[] = {
&I065_SP,
NULL
};
-static const AsterixField **I065[] = {
+static const AsterixField * const * const I065[] = {
I065_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 205, edition 1.0 */
static int hf_205_V1_0_000;
@@ -53864,7 +53719,7 @@ static const value_string valstr_205_V1_0_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I205_V1_0_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_205_V1_0_000_VALUE, NULL };
-static const FieldPart *I205_V1_0_000_PARTS[] = {
+static const FieldPart * const I205_V1_0_000_PARTS[] = {
&I205_V1_0_000_VALUE,
NULL
};
@@ -53874,7 +53729,7 @@ static int hf_205_V1_0_010_SAC;
static const FieldPart I205_V1_0_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_010_SAC, NULL };
static int hf_205_V1_0_010_SIC;
static const FieldPart I205_V1_0_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_010_SIC, NULL };
-static const FieldPart *I205_V1_0_010_PARTS[] = {
+static const FieldPart * const I205_V1_0_010_PARTS[] = {
&I205_V1_0_010_SAC,
&I205_V1_0_010_SIC,
NULL
@@ -53883,7 +53738,7 @@ static const AsterixField I205_V1_0_010 = { FIXED, 2, 0, 0, &hf_205_V1_0_010, I2
static int hf_205_V1_0_015;
static int hf_205_V1_0_015_VALUE;
static const FieldPart I205_V1_0_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_015_VALUE, NULL };
-static const FieldPart *I205_V1_0_015_PARTS[] = {
+static const FieldPart * const I205_V1_0_015_PARTS[] = {
&I205_V1_0_015_VALUE,
NULL
};
@@ -53891,7 +53746,7 @@ static const AsterixField I205_V1_0_015 = { FIXED, 1, 0, 0, &hf_205_V1_0_015, I2
static int hf_205_V1_0_030;
static int hf_205_V1_0_030_VALUE;
static const FieldPart I205_V1_0_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_205_V1_0_030_VALUE, NULL };
-static const FieldPart *I205_V1_0_030_PARTS[] = {
+static const FieldPart * const I205_V1_0_030_PARTS[] = {
&I205_V1_0_030_VALUE,
NULL
};
@@ -53899,7 +53754,7 @@ static const AsterixField I205_V1_0_030 = { FIXED, 3, 0, 0, &hf_205_V1_0_030, I2
static int hf_205_V1_0_040;
static int hf_205_V1_0_040_VALUE;
static const FieldPart I205_V1_0_040_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_040_VALUE, NULL };
-static const FieldPart *I205_V1_0_040_PARTS[] = {
+static const FieldPart * const I205_V1_0_040_PARTS[] = {
&I205_V1_0_040_VALUE,
NULL
};
@@ -53909,7 +53764,7 @@ static int hf_205_V1_0_050_LAT;
static const FieldPart I205_V1_0_050_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_V1_0_050_LAT, NULL };
static int hf_205_V1_0_050_LON;
static const FieldPart I205_V1_0_050_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_V1_0_050_LON, NULL };
-static const FieldPart *I205_V1_0_050_PARTS[] = {
+static const FieldPart * const I205_V1_0_050_PARTS[] = {
&I205_V1_0_050_LAT,
&I205_V1_0_050_LON,
NULL
@@ -53920,7 +53775,7 @@ static int hf_205_V1_0_060_X;
static const FieldPart I205_V1_0_060_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_V1_0_060_X, NULL };
static int hf_205_V1_0_060_Y;
static const FieldPart I205_V1_0_060_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_V1_0_060_Y, NULL };
-static const FieldPart *I205_V1_0_060_PARTS[] = {
+static const FieldPart * const I205_V1_0_060_PARTS[] = {
&I205_V1_0_060_X,
&I205_V1_0_060_Y,
NULL
@@ -53929,7 +53784,7 @@ static const AsterixField I205_V1_0_060 = { FIXED, 6, 0, 0, &hf_205_V1_0_060, I2
static int hf_205_V1_0_070;
static int hf_205_V1_0_070_VALUE;
static const FieldPart I205_V1_0_070_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_205_V1_0_070_VALUE, NULL };
-static const FieldPart *I205_V1_0_070_PARTS[] = {
+static const FieldPart * const I205_V1_0_070_PARTS[] = {
&I205_V1_0_070_VALUE,
NULL
};
@@ -53937,7 +53792,7 @@ static const AsterixField I205_V1_0_070 = { FIXED, 2, 0, 0, &hf_205_V1_0_070, I2
static int hf_205_V1_0_080;
static int hf_205_V1_0_080_VALUE;
static const FieldPart I205_V1_0_080_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_205_V1_0_080_VALUE, NULL };
-static const FieldPart *I205_V1_0_080_PARTS[] = {
+static const FieldPart * const I205_V1_0_080_PARTS[] = {
&I205_V1_0_080_VALUE,
NULL
};
@@ -53945,7 +53800,7 @@ static const AsterixField I205_V1_0_080 = { FIXED, 2, 0, 0, &hf_205_V1_0_080, I2
static int hf_205_V1_0_090;
static int hf_205_V1_0_090_VALUE;
static const FieldPart I205_V1_0_090_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_205_V1_0_090_VALUE, NULL };
-static const FieldPart *I205_V1_0_090_PARTS[] = {
+static const FieldPart * const I205_V1_0_090_PARTS[] = {
&I205_V1_0_090_VALUE,
NULL
};
@@ -53953,7 +53808,7 @@ static const AsterixField I205_V1_0_090 = { FIXED, 7, 0, 0, &hf_205_V1_0_090, I2
static int hf_205_V1_0_100;
static int hf_205_V1_0_100_VALUE;
static const FieldPart I205_V1_0_100_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_100_VALUE, NULL };
-static const FieldPart *I205_V1_0_100_PARTS[] = {
+static const FieldPart * const I205_V1_0_100_PARTS[] = {
&I205_V1_0_100_VALUE,
NULL
};
@@ -53961,7 +53816,7 @@ static const AsterixField I205_V1_0_100 = { FIXED, 1, 0, 0, &hf_205_V1_0_100, I2
static int hf_205_V1_0_110;
static int hf_205_V1_0_110_VALUE;
static const FieldPart I205_V1_0_110_VALUE = { 8, 100.0, FIELD_PART_UFLOAT, &hf_205_V1_0_110_VALUE, NULL };
-static const FieldPart *I205_V1_0_110_PARTS[] = {
+static const FieldPart * const I205_V1_0_110_PARTS[] = {
&I205_V1_0_110_VALUE,
NULL
};
@@ -53969,7 +53824,7 @@ static const AsterixField I205_V1_0_110 = { FIXED, 1, 0, 0, &hf_205_V1_0_110, I2
static int hf_205_V1_0_120;
static int hf_205_V1_0_120_VALUE;
static const FieldPart I205_V1_0_120_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_120_VALUE, NULL };
-static const FieldPart *I205_V1_0_120_PARTS[] = {
+static const FieldPart * const I205_V1_0_120_PARTS[] = {
&I205_V1_0_120_VALUE,
NULL
};
@@ -53979,7 +53834,7 @@ static int hf_205_V1_0_130_LAT;
static const FieldPart I205_V1_0_130_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_V1_0_130_LAT, NULL };
static int hf_205_V1_0_130_LON;
static const FieldPart I205_V1_0_130_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_V1_0_130_LON, NULL };
-static const FieldPart *I205_V1_0_130_PARTS[] = {
+static const FieldPart * const I205_V1_0_130_PARTS[] = {
&I205_V1_0_130_LAT,
&I205_V1_0_130_LON,
NULL
@@ -53990,7 +53845,7 @@ static int hf_205_V1_0_140_X;
static const FieldPart I205_V1_0_140_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_V1_0_140_X, NULL };
static int hf_205_V1_0_140_Y;
static const FieldPart I205_V1_0_140_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_V1_0_140_Y, NULL };
-static const FieldPart *I205_V1_0_140_PARTS[] = {
+static const FieldPart * const I205_V1_0_140_PARTS[] = {
&I205_V1_0_140_X,
&I205_V1_0_140_Y,
NULL
@@ -53999,7 +53854,7 @@ static const AsterixField I205_V1_0_140 = { FIXED, 6, 0, 0, &hf_205_V1_0_140, I2
static int hf_205_V1_0_150;
static int hf_205_V1_0_150_VALUE;
static const FieldPart I205_V1_0_150_VALUE = { 8, 100.0, FIELD_PART_UFLOAT, &hf_205_V1_0_150_VALUE, NULL };
-static const FieldPart *I205_V1_0_150_PARTS[] = {
+static const FieldPart * const I205_V1_0_150_PARTS[] = {
&I205_V1_0_150_VALUE,
NULL
};
@@ -54007,7 +53862,7 @@ static const AsterixField I205_V1_0_150 = { FIXED, 1, 0, 0, &hf_205_V1_0_150, I2
static int hf_205_V1_0_160;
static int hf_205_V1_0_160_VALUE;
static const FieldPart I205_V1_0_160_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_205_V1_0_160_VALUE, NULL };
-static const FieldPart *I205_V1_0_160_PARTS[] = {
+static const FieldPart * const I205_V1_0_160_PARTS[] = {
&I205_V1_0_160_VALUE,
NULL
};
@@ -54015,7 +53870,7 @@ static const AsterixField I205_V1_0_160 = { FIXED, 2, 0, 0, &hf_205_V1_0_160, I2
static int hf_205_V1_0_170;
static int hf_205_V1_0_170_VALUE;
static const FieldPart I205_V1_0_170_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_170_VALUE, NULL };
-static const FieldPart *I205_V1_0_170_PARTS[] = {
+static const FieldPart * const I205_V1_0_170_PARTS[] = {
&I205_V1_0_170_VALUE,
NULL
};
@@ -54023,7 +53878,7 @@ static const AsterixField I205_V1_0_170 = { FIXED, 1, 0, 0, &hf_205_V1_0_170, I2
static int hf_205_V1_0_180;
static int hf_205_V1_0_180_VALUE;
static const FieldPart I205_V1_0_180_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_205_V1_0_180_VALUE, NULL };
-static const FieldPart *I205_V1_0_180_PARTS[] = {
+static const FieldPart * const I205_V1_0_180_PARTS[] = {
&I205_V1_0_180_VALUE,
NULL
};
@@ -54031,7 +53886,7 @@ static const AsterixField I205_V1_0_180 = { FIXED, 2, 0, 0, &hf_205_V1_0_180, I2
static int hf_205_V1_0_190;
static int hf_205_V1_0_190_VALUE;
static const FieldPart I205_V1_0_190_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_V1_0_190_VALUE, NULL };
-static const FieldPart *I205_V1_0_190_PARTS[] = {
+static const FieldPart * const I205_V1_0_190_PARTS[] = {
&I205_V1_0_190_VALUE,
NULL
};
@@ -54039,7 +53894,7 @@ static const AsterixField I205_V1_0_190 = { FIXED, 1, 0, 0, &hf_205_V1_0_190, I2
static int hf_205_V1_0_200;
static int hf_205_V1_0_200_VALUE;
static const FieldPart I205_V1_0_200_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_205_V1_0_200_VALUE, NULL };
-static const FieldPart *I205_V1_0_200_PARTS[] = {
+static const FieldPart * const I205_V1_0_200_PARTS[] = {
&I205_V1_0_200_VALUE,
NULL
};
@@ -54059,7 +53914,7 @@ static const value_string valstr_205_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I205_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_205_000_VALUE, NULL };
-static const FieldPart *I205_000_PARTS[] = {
+static const FieldPart * const I205_000_PARTS[] = {
&I205_000_VALUE,
NULL
};
@@ -54069,7 +53924,7 @@ static int hf_205_010_SAC;
static const FieldPart I205_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_205_010_SAC, NULL };
static int hf_205_010_SIC;
static const FieldPart I205_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_205_010_SIC, NULL };
-static const FieldPart *I205_010_PARTS[] = {
+static const FieldPart * const I205_010_PARTS[] = {
&I205_010_SAC,
&I205_010_SIC,
NULL
@@ -54078,7 +53933,7 @@ static const AsterixField I205_010 = { FIXED, 2, 0, 0, &hf_205_010, I205_010_PAR
static int hf_205_015;
static int hf_205_015_VALUE;
static const FieldPart I205_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_015_VALUE, NULL };
-static const FieldPart *I205_015_PARTS[] = {
+static const FieldPart * const I205_015_PARTS[] = {
&I205_015_VALUE,
NULL
};
@@ -54086,7 +53941,7 @@ static const AsterixField I205_015 = { FIXED, 1, 0, 0, &hf_205_015, I205_015_PAR
static int hf_205_030;
static int hf_205_030_VALUE;
static const FieldPart I205_030_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_205_030_VALUE, NULL };
-static const FieldPart *I205_030_PARTS[] = {
+static const FieldPart * const I205_030_PARTS[] = {
&I205_030_VALUE,
NULL
};
@@ -54094,7 +53949,7 @@ static const AsterixField I205_030 = { FIXED, 3, 0, 0, &hf_205_030, I205_030_PAR
static int hf_205_040;
static int hf_205_040_VALUE;
static const FieldPart I205_040_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_040_VALUE, NULL };
-static const FieldPart *I205_040_PARTS[] = {
+static const FieldPart * const I205_040_PARTS[] = {
&I205_040_VALUE,
NULL
};
@@ -54104,7 +53959,7 @@ static int hf_205_050_LAT;
static const FieldPart I205_050_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_050_LAT, NULL };
static int hf_205_050_LON;
static const FieldPart I205_050_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_050_LON, NULL };
-static const FieldPart *I205_050_PARTS[] = {
+static const FieldPart * const I205_050_PARTS[] = {
&I205_050_LAT,
&I205_050_LON,
NULL
@@ -54115,7 +53970,7 @@ static int hf_205_060_X;
static const FieldPart I205_060_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_060_X, NULL };
static int hf_205_060_Y;
static const FieldPart I205_060_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_060_Y, NULL };
-static const FieldPart *I205_060_PARTS[] = {
+static const FieldPart * const I205_060_PARTS[] = {
&I205_060_X,
&I205_060_Y,
NULL
@@ -54124,7 +53979,7 @@ static const AsterixField I205_060 = { FIXED, 6, 0, 0, &hf_205_060, I205_060_PAR
static int hf_205_070;
static int hf_205_070_VALUE;
static const FieldPart I205_070_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_205_070_VALUE, NULL };
-static const FieldPart *I205_070_PARTS[] = {
+static const FieldPart * const I205_070_PARTS[] = {
&I205_070_VALUE,
NULL
};
@@ -54132,7 +53987,7 @@ static const AsterixField I205_070 = { FIXED, 2, 0, 0, &hf_205_070, I205_070_PAR
static int hf_205_080;
static int hf_205_080_VALUE;
static const FieldPart I205_080_VALUE = { 16, 0.01, FIELD_PART_UFLOAT, &hf_205_080_VALUE, NULL };
-static const FieldPart *I205_080_PARTS[] = {
+static const FieldPart * const I205_080_PARTS[] = {
&I205_080_VALUE,
NULL
};
@@ -54140,7 +53995,7 @@ static const AsterixField I205_080 = { FIXED, 2, 0, 0, &hf_205_080, I205_080_PAR
static int hf_205_090;
static int hf_205_090_VALUE;
static const FieldPart I205_090_VALUE = { 56, 1.0, FIELD_PART_ASCII, &hf_205_090_VALUE, NULL };
-static const FieldPart *I205_090_PARTS[] = {
+static const FieldPart * const I205_090_PARTS[] = {
&I205_090_VALUE,
NULL
};
@@ -54148,7 +54003,7 @@ static const AsterixField I205_090 = { FIXED, 7, 0, 0, &hf_205_090, I205_090_PAR
static int hf_205_100;
static int hf_205_100_VALUE;
static const FieldPart I205_100_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_100_VALUE, NULL };
-static const FieldPart *I205_100_PARTS[] = {
+static const FieldPart * const I205_100_PARTS[] = {
&I205_100_VALUE,
NULL
};
@@ -54156,7 +54011,7 @@ static const AsterixField I205_100 = { FIXED, 1, 0, 0, &hf_205_100, I205_100_PAR
static int hf_205_110;
static int hf_205_110_VALUE;
static const FieldPart I205_110_VALUE = { 8, 100.0, FIELD_PART_UFLOAT, &hf_205_110_VALUE, NULL };
-static const FieldPart *I205_110_PARTS[] = {
+static const FieldPart * const I205_110_PARTS[] = {
&I205_110_VALUE,
NULL
};
@@ -54164,7 +54019,7 @@ static const AsterixField I205_110 = { FIXED, 1, 0, 0, &hf_205_110, I205_110_PAR
static int hf_205_120;
static int hf_205_120_VALUE;
static const FieldPart I205_120_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_120_VALUE, NULL };
-static const FieldPart *I205_120_PARTS[] = {
+static const FieldPart * const I205_120_PARTS[] = {
&I205_120_VALUE,
NULL
};
@@ -54174,7 +54029,7 @@ static int hf_205_130_LAT;
static const FieldPart I205_130_LAT = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_130_LAT, NULL };
static int hf_205_130_LON;
static const FieldPart I205_130_LON = { 32, 5.364418029785156e-06, FIELD_PART_FLOAT, &hf_205_130_LON, NULL };
-static const FieldPart *I205_130_PARTS[] = {
+static const FieldPart * const I205_130_PARTS[] = {
&I205_130_LAT,
&I205_130_LON,
NULL
@@ -54185,7 +54040,7 @@ static int hf_205_140_X;
static const FieldPart I205_140_X = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_140_X, NULL };
static int hf_205_140_Y;
static const FieldPart I205_140_Y = { 24, 0.5, FIELD_PART_FLOAT, &hf_205_140_Y, NULL };
-static const FieldPart *I205_140_PARTS[] = {
+static const FieldPart * const I205_140_PARTS[] = {
&I205_140_X,
&I205_140_Y,
NULL
@@ -54194,7 +54049,7 @@ static const AsterixField I205_140 = { FIXED, 6, 0, 0, &hf_205_140, I205_140_PAR
static int hf_205_150;
static int hf_205_150_VALUE;
static const FieldPart I205_150_VALUE = { 8, 100.0, FIELD_PART_UFLOAT, &hf_205_150_VALUE, NULL };
-static const FieldPart *I205_150_PARTS[] = {
+static const FieldPart * const I205_150_PARTS[] = {
&I205_150_VALUE,
NULL
};
@@ -54202,7 +54057,7 @@ static const AsterixField I205_150 = { FIXED, 1, 0, 0, &hf_205_150, I205_150_PAR
static int hf_205_160;
static int hf_205_160_VALUE;
static const FieldPart I205_160_VALUE = { 16, 1.0, FIELD_PART_HEX, &hf_205_160_VALUE, NULL };
-static const FieldPart *I205_160_PARTS[] = {
+static const FieldPart * const I205_160_PARTS[] = {
&I205_160_VALUE,
NULL
};
@@ -54210,7 +54065,7 @@ static const AsterixField I205_160 = { FIXED, 2, 0, 0, &hf_205_160, I205_160_PAR
static int hf_205_170;
static int hf_205_170_VALUE;
static const FieldPart I205_170_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_170_VALUE, NULL };
-static const FieldPart *I205_170_PARTS[] = {
+static const FieldPart * const I205_170_PARTS[] = {
&I205_170_VALUE,
NULL
};
@@ -54218,7 +54073,7 @@ static const AsterixField I205_170 = { FIXED, 1, 0, 0, &hf_205_170, I205_170_PAR
static int hf_205_180;
static int hf_205_180_VALUE;
static const FieldPart I205_180_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_205_180_VALUE, NULL };
-static const FieldPart *I205_180_PARTS[] = {
+static const FieldPart * const I205_180_PARTS[] = {
&I205_180_VALUE,
NULL
};
@@ -54226,7 +54081,7 @@ static const AsterixField I205_180 = { FIXED, 2, 0, 0, &hf_205_180, I205_180_PAR
static int hf_205_190;
static int hf_205_190_VALUE;
static const FieldPart I205_190_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_205_190_VALUE, NULL };
-static const FieldPart *I205_190_PARTS[] = {
+static const FieldPart * const I205_190_PARTS[] = {
&I205_190_VALUE,
NULL
};
@@ -54234,7 +54089,7 @@ static const AsterixField I205_190 = { FIXED, 1, 0, 0, &hf_205_190, I205_190_PAR
static int hf_205_200;
static int hf_205_200_VALUE;
static const FieldPart I205_200_VALUE = { 16, 0.01, FIELD_PART_FLOAT, &hf_205_200_VALUE, NULL };
-static const FieldPart *I205_200_PARTS[] = {
+static const FieldPart * const I205_200_PARTS[] = {
&I205_200_VALUE,
NULL
};
@@ -54242,8 +54097,7 @@ static const AsterixField I205_200 = { FIXED, 2, 0, 0, &hf_205_200, I205_200_PAR
static int hf_205_SP;
static const AsterixField I205_SP = { EXP, 0, 0, 1, &hf_205_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I205_V1_0_uap[] = {
+static const AsterixField * const I205_V1_0_uap[] = {
&I205_V1_0_010,
&I205_V1_0_015,
&I205_V1_0_000,
@@ -54268,14 +54122,12 @@ static const AsterixField *I205_V1_0_uap[] = {
&I205_V1_0_SP,
NULL
};
-static const AsterixField **I205_V1_0[] = {
+static const AsterixField * const * const I205_V1_0[] = {
I205_V1_0_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I205_uap[] = {
+static const AsterixField * const I205_uap[] = {
&I205_010,
&I205_015,
&I205_000,
@@ -54300,11 +54152,10 @@ static const AsterixField *I205_uap[] = {
&I205_SP,
NULL
};
-static const AsterixField **I205[] = {
+static const AsterixField * const * const I205[] = {
I205_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 240, edition 1.3 */
static int hf_240_V1_3_000;
@@ -54315,7 +54166,7 @@ static const value_string valstr_240_V1_3_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I240_V1_3_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_240_V1_3_000_VALUE, NULL };
-static const FieldPart *I240_V1_3_000_PARTS[] = {
+static const FieldPart * const I240_V1_3_000_PARTS[] = {
&I240_V1_3_000_VALUE,
NULL
};
@@ -54325,7 +54176,7 @@ static int hf_240_V1_3_010_SAC;
static const FieldPart I240_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_240_V1_3_010_SAC, NULL };
static int hf_240_V1_3_010_SIC;
static const FieldPart I240_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_240_V1_3_010_SIC, NULL };
-static const FieldPart *I240_V1_3_010_PARTS[] = {
+static const FieldPart * const I240_V1_3_010_PARTS[] = {
&I240_V1_3_010_SAC,
&I240_V1_3_010_SIC,
NULL
@@ -54334,7 +54185,7 @@ static const AsterixField I240_V1_3_010 = { FIXED, 2, 0, 0, &hf_240_V1_3_010, I2
static int hf_240_V1_3_020;
static int hf_240_V1_3_020_VALUE;
static const FieldPart I240_V1_3_020_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_240_V1_3_020_VALUE, NULL };
-static const FieldPart *I240_V1_3_020_PARTS[] = {
+static const FieldPart * const I240_V1_3_020_PARTS[] = {
&I240_V1_3_020_VALUE,
NULL
};
@@ -54342,7 +54193,7 @@ static const AsterixField I240_V1_3_020 = { FIXED, 4, 0, 0, &hf_240_V1_3_020, I2
static int hf_240_V1_3_030;
static int hf_240_V1_3_030_VALUE;
static const FieldPart I240_V1_3_030_VALUE = { 8, 1.0, FIELD_PART_ASCII, &hf_240_V1_3_030_VALUE, NULL };
-static const FieldPart *I240_V1_3_030_PARTS[] = {
+static const FieldPart * const I240_V1_3_030_PARTS[] = {
&I240_V1_3_030_VALUE,
NULL
};
@@ -54356,7 +54207,7 @@ static int hf_240_V1_3_040_STARTRG;
static const FieldPart I240_V1_3_040_STARTRG = { 32, 1.0, FIELD_PART_UINT, &hf_240_V1_3_040_STARTRG, NULL };
static int hf_240_V1_3_040_CELLDUR;
static const FieldPart I240_V1_3_040_CELLDUR = { 32, 1.0, FIELD_PART_UFLOAT, &hf_240_V1_3_040_CELLDUR, NULL };
-static const FieldPart *I240_V1_3_040_PARTS[] = {
+static const FieldPart * const I240_V1_3_040_PARTS[] = {
&I240_V1_3_040_STARTAZ,
&I240_V1_3_040_ENDAZ,
&I240_V1_3_040_STARTRG,
@@ -54373,7 +54224,7 @@ static int hf_240_V1_3_041_STARTRG;
static const FieldPart I240_V1_3_041_STARTRG = { 32, 1.0, FIELD_PART_UINT, &hf_240_V1_3_041_STARTRG, NULL };
static int hf_240_V1_3_041_CELLDUR;
static const FieldPart I240_V1_3_041_CELLDUR = { 32, 1.0, FIELD_PART_UFLOAT, &hf_240_V1_3_041_CELLDUR, NULL };
-static const FieldPart *I240_V1_3_041_PARTS[] = {
+static const FieldPart * const I240_V1_3_041_PARTS[] = {
&I240_V1_3_041_STARTAZ,
&I240_V1_3_041_ENDAZ,
&I240_V1_3_041_STARTRG,
@@ -54400,7 +54251,7 @@ static const value_string valstr_240_V1_3_048_RES[] = {
{ 0, NULL }
};
static const FieldPart I240_V1_3_048_RES = { 8, 1.0, FIELD_PART_UINT, &hf_240_V1_3_048_RES, NULL };
-static const FieldPart *I240_V1_3_048_PARTS[] = {
+static const FieldPart * const I240_V1_3_048_PARTS[] = {
&I240_V1_3_048_C,
&IXXX_7bit_spare,
&I240_V1_3_048_RES,
@@ -54412,7 +54263,7 @@ static int hf_240_V1_3_049_NBVB;
static const FieldPart I240_V1_3_049_NBVB = { 16, 1.0, FIELD_PART_UINT, &hf_240_V1_3_049_NBVB, NULL };
static int hf_240_V1_3_049_NBCELLS;
static const FieldPart I240_V1_3_049_NBCELLS = { 24, 1.0, FIELD_PART_UINT, &hf_240_V1_3_049_NBCELLS, NULL };
-static const FieldPart *I240_V1_3_049_PARTS[] = {
+static const FieldPart * const I240_V1_3_049_PARTS[] = {
&I240_V1_3_049_NBVB,
&I240_V1_3_049_NBCELLS,
NULL
@@ -54421,7 +54272,7 @@ static const AsterixField I240_V1_3_049 = { FIXED, 5, 0, 0, &hf_240_V1_3_049, I2
static int hf_240_V1_3_050;
static int hf_240_V1_3_050_VALUE;
static const FieldPart I240_V1_3_050_VALUE = { 32, 1.0, FIELD_PART_HEX, &hf_240_V1_3_050_VALUE, NULL };
-static const FieldPart *I240_V1_3_050_PARTS[] = {
+static const FieldPart * const I240_V1_3_050_PARTS[] = {
&I240_V1_3_050_VALUE,
NULL
};
@@ -54429,7 +54280,7 @@ static const AsterixField I240_V1_3_050 = { REPETITIVE, 4, 1, 0, &hf_240_V1_3_05
static int hf_240_V1_3_051;
static int hf_240_V1_3_051_VALUE;
static const FieldPart I240_V1_3_051_VALUE = { 512, 1.0, FIELD_PART_HEX, &hf_240_V1_3_051_VALUE, NULL };
-static const FieldPart *I240_V1_3_051_PARTS[] = {
+static const FieldPart * const I240_V1_3_051_PARTS[] = {
&I240_V1_3_051_VALUE,
NULL
};
@@ -54437,7 +54288,7 @@ static const AsterixField I240_V1_3_051 = { REPETITIVE, 64, 1, 0, &hf_240_V1_3_0
static int hf_240_V1_3_052;
static int hf_240_V1_3_052_VALUE;
static const FieldPart I240_V1_3_052_VALUE = { 2048, 1.0, FIELD_PART_HEX, &hf_240_V1_3_052_VALUE, NULL };
-static const FieldPart *I240_V1_3_052_PARTS[] = {
+static const FieldPart * const I240_V1_3_052_PARTS[] = {
&I240_V1_3_052_VALUE,
NULL
};
@@ -54445,7 +54296,7 @@ static const AsterixField I240_V1_3_052 = { REPETITIVE, 256, 1, 0, &hf_240_V1_3_
static int hf_240_V1_3_140;
static int hf_240_V1_3_140_VALUE;
static const FieldPart I240_V1_3_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_240_V1_3_140_VALUE, NULL };
-static const FieldPart *I240_V1_3_140_PARTS[] = {
+static const FieldPart * const I240_V1_3_140_PARTS[] = {
&I240_V1_3_140_VALUE,
NULL
};
@@ -54464,7 +54315,7 @@ static const value_string valstr_240_000_VALUE[] = {
{ 0, NULL }
};
static const FieldPart I240_000_VALUE = { 8, 1.0, FIELD_PART_UINT, &hf_240_000_VALUE, NULL };
-static const FieldPart *I240_000_PARTS[] = {
+static const FieldPart * const I240_000_PARTS[] = {
&I240_000_VALUE,
NULL
};
@@ -54474,7 +54325,7 @@ static int hf_240_010_SAC;
static const FieldPart I240_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_240_010_SAC, NULL };
static int hf_240_010_SIC;
static const FieldPart I240_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_240_010_SIC, NULL };
-static const FieldPart *I240_010_PARTS[] = {
+static const FieldPart * const I240_010_PARTS[] = {
&I240_010_SAC,
&I240_010_SIC,
NULL
@@ -54483,7 +54334,7 @@ static const AsterixField I240_010 = { FIXED, 2, 0, 0, &hf_240_010, I240_010_PAR
static int hf_240_020;
static int hf_240_020_VALUE;
static const FieldPart I240_020_VALUE = { 32, 1.0, FIELD_PART_UINT, &hf_240_020_VALUE, NULL };
-static const FieldPart *I240_020_PARTS[] = {
+static const FieldPart * const I240_020_PARTS[] = {
&I240_020_VALUE,
NULL
};
@@ -54491,7 +54342,7 @@ static const AsterixField I240_020 = { FIXED, 4, 0, 0, &hf_240_020, I240_020_PAR
static int hf_240_030;
static int hf_240_030_VALUE;
static const FieldPart I240_030_VALUE = { 8, 1.0, FIELD_PART_ASCII, &hf_240_030_VALUE, NULL };
-static const FieldPart *I240_030_PARTS[] = {
+static const FieldPart * const I240_030_PARTS[] = {
&I240_030_VALUE,
NULL
};
@@ -54505,7 +54356,7 @@ static int hf_240_040_STARTRG;
static const FieldPart I240_040_STARTRG = { 32, 1.0, FIELD_PART_UINT, &hf_240_040_STARTRG, NULL };
static int hf_240_040_CELLDUR;
static const FieldPart I240_040_CELLDUR = { 32, 1.0, FIELD_PART_UFLOAT, &hf_240_040_CELLDUR, NULL };
-static const FieldPart *I240_040_PARTS[] = {
+static const FieldPart * const I240_040_PARTS[] = {
&I240_040_STARTAZ,
&I240_040_ENDAZ,
&I240_040_STARTRG,
@@ -54522,7 +54373,7 @@ static int hf_240_041_STARTRG;
static const FieldPart I240_041_STARTRG = { 32, 1.0, FIELD_PART_UINT, &hf_240_041_STARTRG, NULL };
static int hf_240_041_CELLDUR;
static const FieldPart I240_041_CELLDUR = { 32, 1.0, FIELD_PART_UFLOAT, &hf_240_041_CELLDUR, NULL };
-static const FieldPart *I240_041_PARTS[] = {
+static const FieldPart * const I240_041_PARTS[] = {
&I240_041_STARTAZ,
&I240_041_ENDAZ,
&I240_041_STARTRG,
@@ -54549,7 +54400,7 @@ static const value_string valstr_240_048_RES[] = {
{ 0, NULL }
};
static const FieldPart I240_048_RES = { 8, 1.0, FIELD_PART_UINT, &hf_240_048_RES, NULL };
-static const FieldPart *I240_048_PARTS[] = {
+static const FieldPart * const I240_048_PARTS[] = {
&I240_048_C,
&IXXX_7bit_spare,
&I240_048_RES,
@@ -54561,7 +54412,7 @@ static int hf_240_049_NBVB;
static const FieldPart I240_049_NBVB = { 16, 1.0, FIELD_PART_UINT, &hf_240_049_NBVB, NULL };
static int hf_240_049_NBCELLS;
static const FieldPart I240_049_NBCELLS = { 24, 1.0, FIELD_PART_UINT, &hf_240_049_NBCELLS, NULL };
-static const FieldPart *I240_049_PARTS[] = {
+static const FieldPart * const I240_049_PARTS[] = {
&I240_049_NBVB,
&I240_049_NBCELLS,
NULL
@@ -54570,7 +54421,7 @@ static const AsterixField I240_049 = { FIXED, 5, 0, 0, &hf_240_049, I240_049_PAR
static int hf_240_050;
static int hf_240_050_VALUE;
static const FieldPart I240_050_VALUE = { 32, 1.0, FIELD_PART_HEX, &hf_240_050_VALUE, NULL };
-static const FieldPart *I240_050_PARTS[] = {
+static const FieldPart * const I240_050_PARTS[] = {
&I240_050_VALUE,
NULL
};
@@ -54578,7 +54429,7 @@ static const AsterixField I240_050 = { REPETITIVE, 4, 1, 0, &hf_240_050, I240_05
static int hf_240_051;
static int hf_240_051_VALUE;
static const FieldPart I240_051_VALUE = { 512, 1.0, FIELD_PART_HEX, &hf_240_051_VALUE, NULL };
-static const FieldPart *I240_051_PARTS[] = {
+static const FieldPart * const I240_051_PARTS[] = {
&I240_051_VALUE,
NULL
};
@@ -54586,7 +54437,7 @@ static const AsterixField I240_051 = { REPETITIVE, 64, 1, 0, &hf_240_051, I240_0
static int hf_240_052;
static int hf_240_052_VALUE;
static const FieldPart I240_052_VALUE = { 2048, 1.0, FIELD_PART_HEX, &hf_240_052_VALUE, NULL };
-static const FieldPart *I240_052_PARTS[] = {
+static const FieldPart * const I240_052_PARTS[] = {
&I240_052_VALUE,
NULL
};
@@ -54594,7 +54445,7 @@ static const AsterixField I240_052 = { REPETITIVE, 256, 1, 0, &hf_240_052, I240_
static int hf_240_140;
static int hf_240_140_VALUE;
static const FieldPart I240_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_240_140_VALUE, NULL };
-static const FieldPart *I240_140_PARTS[] = {
+static const FieldPart * const I240_140_PARTS[] = {
&I240_140_VALUE,
NULL
};
@@ -54604,8 +54455,7 @@ static const AsterixField I240_RE = { EXP, 0, 0, 1, &hf_240_RE, NULL, { NULL } }
static int hf_240_SP;
static const AsterixField I240_SP = { EXP, 0, 0, 1, &hf_240_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I240_V1_3_uap[] = {
+static const AsterixField * const I240_V1_3_uap[] = {
&I240_V1_3_010,
&I240_V1_3_000,
&I240_V1_3_020,
@@ -54622,14 +54472,12 @@ static const AsterixField *I240_V1_3_uap[] = {
&I240_V1_3_SP,
NULL
};
-static const AsterixField **I240_V1_3[] = {
+static const AsterixField * const * const I240_V1_3[] = {
I240_V1_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I240_uap[] = {
+static const AsterixField * const I240_uap[] = {
&I240_010,
&I240_000,
&I240_020,
@@ -54646,11 +54494,10 @@ static const AsterixField *I240_uap[] = {
&I240_SP,
NULL
};
-static const AsterixField **I240[] = {
+static const AsterixField * const * const I240[] = {
I240_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 247, edition 1.2 */
static int hf_247_V1_2_010;
@@ -54658,7 +54505,7 @@ static int hf_247_V1_2_010_SAC;
static const FieldPart I247_V1_2_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_247_V1_2_010_SAC, NULL };
static int hf_247_V1_2_010_SIC;
static const FieldPart I247_V1_2_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_247_V1_2_010_SIC, NULL };
-static const FieldPart *I247_V1_2_010_PARTS[] = {
+static const FieldPart * const I247_V1_2_010_PARTS[] = {
&I247_V1_2_010_SAC,
&I247_V1_2_010_SIC,
NULL
@@ -54667,7 +54514,7 @@ static const AsterixField I247_V1_2_010 = { FIXED, 2, 0, 0, &hf_247_V1_2_010, I2
static int hf_247_V1_2_015;
static int hf_247_V1_2_015_VALUE;
static const FieldPart I247_V1_2_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_247_V1_2_015_VALUE, NULL };
-static const FieldPart *I247_V1_2_015_PARTS[] = {
+static const FieldPart * const I247_V1_2_015_PARTS[] = {
&I247_V1_2_015_VALUE,
NULL
};
@@ -54675,7 +54522,7 @@ static const AsterixField I247_V1_2_015 = { FIXED, 1, 0, 0, &hf_247_V1_2_015, I2
static int hf_247_V1_2_140;
static int hf_247_V1_2_140_VALUE;
static const FieldPart I247_V1_2_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_247_V1_2_140_VALUE, NULL };
-static const FieldPart *I247_V1_2_140_PARTS[] = {
+static const FieldPart * const I247_V1_2_140_PARTS[] = {
&I247_V1_2_140_VALUE,
NULL
};
@@ -54687,7 +54534,7 @@ static int hf_247_V1_2_550_MAIN;
static const FieldPart I247_V1_2_550_MAIN = { 8, 1.0, FIELD_PART_UINT, &hf_247_V1_2_550_MAIN, NULL };
static int hf_247_V1_2_550_SUB;
static const FieldPart I247_V1_2_550_SUB = { 8, 1.0, FIELD_PART_UINT, &hf_247_V1_2_550_SUB, NULL };
-static const FieldPart *I247_V1_2_550_PARTS[] = {
+static const FieldPart * const I247_V1_2_550_PARTS[] = {
&I247_V1_2_550_CAT,
&I247_V1_2_550_MAIN,
&I247_V1_2_550_SUB,
@@ -54699,8 +54546,7 @@ static const AsterixField I247_V1_2_RE = { EXP, 0, 0, 1, &hf_247_V1_2_RE, NULL,
static int hf_247_V1_2_SP;
static const AsterixField I247_V1_2_SP = { EXP, 0, 0, 1, &hf_247_V1_2_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I247_V1_2_uap[] = {
+static const AsterixField * const I247_V1_2_uap[] = {
&I247_V1_2_010,
&I247_V1_2_015,
&I247_V1_2_140,
@@ -54710,11 +54556,10 @@ static const AsterixField *I247_V1_2_uap[] = {
&I247_V1_2_RE,
NULL
};
-static const AsterixField **I247_V1_2[] = {
+static const AsterixField * const * const I247_V1_2[] = {
I247_V1_2_uap,
NULL
};
-DIAG_ON_PEDANTIC
/* Category 247, edition 1.3 */
static int hf_247_V1_3_010;
@@ -54722,7 +54567,7 @@ static int hf_247_V1_3_010_SAC;
static const FieldPart I247_V1_3_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_247_V1_3_010_SAC, NULL };
static int hf_247_V1_3_010_SIC;
static const FieldPart I247_V1_3_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_247_V1_3_010_SIC, NULL };
-static const FieldPart *I247_V1_3_010_PARTS[] = {
+static const FieldPart * const I247_V1_3_010_PARTS[] = {
&I247_V1_3_010_SAC,
&I247_V1_3_010_SIC,
NULL
@@ -54731,7 +54576,7 @@ static const AsterixField I247_V1_3_010 = { FIXED, 2, 0, 0, &hf_247_V1_3_010, I2
static int hf_247_V1_3_015;
static int hf_247_V1_3_015_VALUE;
static const FieldPart I247_V1_3_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_247_V1_3_015_VALUE, NULL };
-static const FieldPart *I247_V1_3_015_PARTS[] = {
+static const FieldPart * const I247_V1_3_015_PARTS[] = {
&I247_V1_3_015_VALUE,
NULL
};
@@ -54739,7 +54584,7 @@ static const AsterixField I247_V1_3_015 = { FIXED, 1, 0, 0, &hf_247_V1_3_015, I2
static int hf_247_V1_3_140;
static int hf_247_V1_3_140_VALUE;
static const FieldPart I247_V1_3_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_247_V1_3_140_VALUE, NULL };
-static const FieldPart *I247_V1_3_140_PARTS[] = {
+static const FieldPart * const I247_V1_3_140_PARTS[] = {
&I247_V1_3_140_VALUE,
NULL
};
@@ -54751,7 +54596,7 @@ static int hf_247_V1_3_550_MAIN;
static const FieldPart I247_V1_3_550_MAIN = { 8, 1.0, FIELD_PART_UINT, &hf_247_V1_3_550_MAIN, NULL };
static int hf_247_V1_3_550_SUB;
static const FieldPart I247_V1_3_550_SUB = { 8, 1.0, FIELD_PART_UINT, &hf_247_V1_3_550_SUB, NULL };
-static const FieldPart *I247_V1_3_550_PARTS[] = {
+static const FieldPart * const I247_V1_3_550_PARTS[] = {
&I247_V1_3_550_CAT,
&I247_V1_3_550_MAIN,
&I247_V1_3_550_SUB,
@@ -54769,7 +54614,7 @@ static int hf_247_010_SAC;
static const FieldPart I247_010_SAC = { 8, 1.0, FIELD_PART_HEX, &hf_247_010_SAC, NULL };
static int hf_247_010_SIC;
static const FieldPart I247_010_SIC = { 8, 1.0, FIELD_PART_HEX, &hf_247_010_SIC, NULL };
-static const FieldPart *I247_010_PARTS[] = {
+static const FieldPart * const I247_010_PARTS[] = {
&I247_010_SAC,
&I247_010_SIC,
NULL
@@ -54778,7 +54623,7 @@ static const AsterixField I247_010 = { FIXED, 2, 0, 0, &hf_247_010, I247_010_PAR
static int hf_247_015;
static int hf_247_015_VALUE;
static const FieldPart I247_015_VALUE = { 8, 1.0, FIELD_PART_HEX, &hf_247_015_VALUE, NULL };
-static const FieldPart *I247_015_PARTS[] = {
+static const FieldPart * const I247_015_PARTS[] = {
&I247_015_VALUE,
NULL
};
@@ -54786,7 +54631,7 @@ static const AsterixField I247_015 = { FIXED, 1, 0, 0, &hf_247_015, I247_015_PAR
static int hf_247_140;
static int hf_247_140_VALUE;
static const FieldPart I247_140_VALUE = { 24, 0.0078125, FIELD_PART_UFLOAT, &hf_247_140_VALUE, NULL };
-static const FieldPart *I247_140_PARTS[] = {
+static const FieldPart * const I247_140_PARTS[] = {
&I247_140_VALUE,
NULL
};
@@ -54798,7 +54643,7 @@ static int hf_247_550_MAIN;
static const FieldPart I247_550_MAIN = { 8, 1.0, FIELD_PART_UINT, &hf_247_550_MAIN, NULL };
static int hf_247_550_SUB;
static const FieldPart I247_550_SUB = { 8, 1.0, FIELD_PART_UINT, &hf_247_550_SUB, NULL };
-static const FieldPart *I247_550_PARTS[] = {
+static const FieldPart * const I247_550_PARTS[] = {
&I247_550_CAT,
&I247_550_MAIN,
&I247_550_SUB,
@@ -54810,8 +54655,7 @@ static const AsterixField I247_RE = { EXP, 0, 0, 1, &hf_247_RE, NULL, { NULL } }
static int hf_247_SP;
static const AsterixField I247_SP = { EXP, 0, 0, 1, &hf_247_SP, NULL, { NULL } };
-DIAG_OFF_PEDANTIC
-static const AsterixField *I247_V1_3_uap[] = {
+static const AsterixField * const I247_V1_3_uap[] = {
&I247_V1_3_010,
&I247_V1_3_015,
&I247_V1_3_140,
@@ -54821,14 +54665,12 @@ static const AsterixField *I247_V1_3_uap[] = {
&I247_V1_3_RE,
NULL
};
-static const AsterixField **I247_V1_3[] = {
+static const AsterixField * const * const I247_V1_3[] = {
I247_V1_3_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField *I247_uap[] = {
+static const AsterixField * const I247_uap[] = {
&I247_010,
&I247_015,
&I247_140,
@@ -54838,15 +54680,12 @@ static const AsterixField *I247_uap[] = {
&I247_RE,
NULL
};
-static const AsterixField **I247[] = {
+static const AsterixField * const * const I247[] = {
I247_uap,
NULL
};
-DIAG_ON_PEDANTIC
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I001all[] = { I001, I001_V1_4, I001_V1_3, I001_V1_2 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I001all[] = { I001, I001_V1_4, I001_V1_3, I001_V1_2 };
static const enum_val_t I001_versions[] = {
{ "I001", "Version 1.4 (latest)", 0 },
@@ -54856,9 +54695,7 @@ static const enum_val_t I001_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I002all[] = { I002, I002_V1_1, I002_V1_0 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I002all[] = { I002, I002_V1_1, I002_V1_0 };
static const enum_val_t I002_versions[] = {
{ "I002", "Version 1.1 (latest)", 0 },
@@ -54867,9 +54704,7 @@ static const enum_val_t I002_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I004all[] = { I004, I004_V1_12 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I004all[] = { I004, I004_V1_12 };
static const enum_val_t I004_versions[] = {
{ "I004", "Version 1.12 (latest)", 0 },
@@ -54877,9 +54712,7 @@ static const enum_val_t I004_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I008all[] = { I008, I008_V1_3, I008_V1_2 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I008all[] = { I008, I008_V1_3, I008_V1_2 };
static const enum_val_t I008_versions[] = {
{ "I008", "Version 1.3 (latest)", 0 },
@@ -54888,9 +54721,7 @@ static const enum_val_t I008_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I009all[] = { I009, I009_V2_1 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I009all[] = { I009, I009_V2_1 };
static const enum_val_t I009_versions[] = {
{ "I009", "Version 2.1 (latest)", 0 },
@@ -54898,9 +54729,7 @@ static const enum_val_t I009_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I010all[] = { I010, I010_V1_1 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I010all[] = { I010, I010_V1_1 };
static const enum_val_t I010_versions[] = {
{ "I010", "Version 1.1 (latest)", 0 },
@@ -54908,9 +54737,7 @@ static const enum_val_t I010_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I011all[] = { I011, I011_V1_3, I011_V1_2 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I011all[] = { I011, I011_V1_3, I011_V1_2 };
static const enum_val_t I011_versions[] = {
{ "I011", "Version 1.3 (latest)", 0 },
@@ -54919,9 +54746,7 @@ static const enum_val_t I011_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I015all[] = { I015, I015_V1_1, I015_V1_0 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I015all[] = { I015, I015_V1_1, I015_V1_0 };
static const enum_val_t I015_versions[] = {
{ "I015", "Version 1.1 (latest)", 0 },
@@ -54930,9 +54755,7 @@ static const enum_val_t I015_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I016all[] = { I016, I016_V1_0 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I016all[] = { I016, I016_V1_0 };
static const enum_val_t I016_versions[] = {
{ "I016", "Version 1.0 (latest)", 0 },
@@ -54940,9 +54763,7 @@ static const enum_val_t I016_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I017all[] = { I017, I017_V1_3 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I017all[] = { I017, I017_V1_3 };
static const enum_val_t I017_versions[] = {
{ "I017", "Version 1.3 (latest)", 0 },
@@ -54950,9 +54771,7 @@ static const enum_val_t I017_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I018all[] = { I018, I018_V1_7 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I018all[] = { I018, I018_V1_7 };
static const enum_val_t I018_versions[] = {
{ "I018", "Version 1.7 (latest)", 0 },
@@ -54960,9 +54779,7 @@ static const enum_val_t I018_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I019all[] = { I019, I019_V1_3 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I019all[] = { I019, I019_V1_3 };
static const enum_val_t I019_versions[] = {
{ "I019", "Version 1.3 (latest)", 0 },
@@ -54970,9 +54787,7 @@ static const enum_val_t I019_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I020all[] = { I020, I020_V1_10, I020_V1_9 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I020all[] = { I020, I020_V1_10, I020_V1_9 };
static const enum_val_t I020_versions[] = {
{ "I020", "Version 1.10 (latest)", 0 },
@@ -54981,9 +54796,7 @@ static const enum_val_t I020_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I021all[] = { I021, I021_V2_6, I021_V2_5, I021_V2_4, I021_V2_3, I021_V2_2, I021_V0_26, I021_V0_25, I021_V0_24, I021_V0_23 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I021all[] = { I021, I021_V2_6, I021_V2_5, I021_V2_4, I021_V2_3, I021_V2_2, I021_V0_26, I021_V0_25, I021_V0_24, I021_V0_23 };
static const enum_val_t I021_versions[] = {
{ "I021", "Version 2.6 (latest)", 0 },
@@ -54999,9 +54812,7 @@ static const enum_val_t I021_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I023all[] = { I023, I023_V1_3, I023_V1_2 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I023all[] = { I023, I023_V1_3, I023_V1_2 };
static const enum_val_t I023_versions[] = {
{ "I023", "Version 1.3 (latest)", 0 },
@@ -55010,9 +54821,7 @@ static const enum_val_t I023_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I025all[] = { I025, I025_V1_5 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I025all[] = { I025, I025_V1_5 };
static const enum_val_t I025_versions[] = {
{ "I025", "Version 1.5 (latest)", 0 },
@@ -55020,9 +54829,7 @@ static const enum_val_t I025_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I032all[] = { I032, I032_V1_1 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I032all[] = { I032, I032_V1_1 };
static const enum_val_t I032_versions[] = {
{ "I032", "Version 1.1 (latest)", 0 },
@@ -55030,9 +54837,7 @@ static const enum_val_t I032_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I034all[] = { I034, I034_V1_29, I034_V1_28, I034_V1_27 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I034all[] = { I034, I034_V1_29, I034_V1_28, I034_V1_27 };
static const enum_val_t I034_versions[] = {
{ "I034", "Version 1.29 (latest)", 0 },
@@ -55042,9 +54847,7 @@ static const enum_val_t I034_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I048all[] = { I048, I048_V1_31, I048_V1_30, I048_V1_29, I048_V1_28, I048_V1_27 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I048all[] = { I048, I048_V1_31, I048_V1_30, I048_V1_29, I048_V1_28, I048_V1_27 };
static const enum_val_t I048_versions[] = {
{ "I048", "Version 1.31 (latest)", 0 },
@@ -55056,9 +54859,7 @@ static const enum_val_t I048_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I062all[] = { I062, I062_V1_20, I062_V1_19, I062_V1_18, I062_V1_17 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I062all[] = { I062, I062_V1_20, I062_V1_19, I062_V1_18, I062_V1_17 };
static const enum_val_t I062_versions[] = {
{ "I062", "Version 1.20 (latest)", 0 },
@@ -55069,9 +54870,7 @@ static const enum_val_t I062_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I063all[] = { I063, I063_V1_6 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I063all[] = { I063, I063_V1_6 };
static const enum_val_t I063_versions[] = {
{ "I063", "Version 1.6 (latest)", 0 },
@@ -55079,9 +54878,7 @@ static const enum_val_t I063_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I065all[] = { I065, I065_V1_6, I065_V1_5, I065_V1_4 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I065all[] = { I065, I065_V1_6, I065_V1_5, I065_V1_4 };
static const enum_val_t I065_versions[] = {
{ "I065", "Version 1.6 (latest)", 0 },
@@ -55091,9 +54888,7 @@ static const enum_val_t I065_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I205all[] = { I205, I205_V1_0 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I205all[] = { I205, I205_V1_0 };
static const enum_val_t I205_versions[] = {
{ "I205", "Version 1.0 (latest)", 0 },
@@ -55101,9 +54896,7 @@ static const enum_val_t I205_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I240all[] = { I240, I240_V1_3 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I240all[] = { I240, I240_V1_3 };
static const enum_val_t I240_versions[] = {
{ "I240", "Version 1.3 (latest)", 0 },
@@ -55111,9 +54904,7 @@ static const enum_val_t I240_versions[] = {
{ NULL, NULL, 0 }
};
-DIAG_OFF_PEDANTIC
-static const AsterixField ***I247all[] = { I247, I247_V1_3, I247_V1_2 };
-DIAG_ON_PEDANTIC
+static const AsterixField * const * const * const I247all[] = { I247, I247_V1_3, I247_V1_2 };
static const enum_val_t I247_versions[] = {
{ "I247", "Version 1.3 (latest)", 0 },
@@ -55122,7 +54913,7 @@ static const enum_val_t I247_versions[] = {
{ NULL, NULL, 0 }
};
-static const AsterixField ****categories[] = {
+static const AsterixField * const * const * const * const categories[] = {
NULL, /* 000 */
I001all, /* 001 */
I002all, /* 002 */
@@ -55742,7 +55533,7 @@ static void dissect_asterix_data_block (tvbuff_t *tvb, packet_info *pinfo, unsig
// We're transported over UDP and our offset always advances.
// NOLINTNEXTLINE(misc-no-recursion)
-static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned offset, proto_tree *tree, uint8_t category, const AsterixField *current_uap[])
+static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned offset, proto_tree *tree, uint8_t category, const AsterixField * const current_uap [])
{
unsigned i, j, size, start, len, inner_offset, fspec_len;
uint64_t counter;
@@ -55765,7 +55556,7 @@ static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned o
asterix_field_tree = proto_item_add_subtree (asterix_field_item, ett_asterix_subtree);
fspec_len = asterix_fspec_len (tvb, offset + start);
proto_tree_add_item (asterix_field_tree, hf_asterix_fspec, tvb, offset + start, fspec_len, ENC_NA);
- dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, (const AsterixField **)current_uap[i]->field);
+ dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, current_uap[i]->field);
break;
case REPETITIVE:
asterix_field_item = proto_tree_add_item (tree, *current_uap[i]->hf, tvb, offset + start, len, ENC_NA);
@@ -55788,7 +55579,7 @@ static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned o
start++;
fspec_len = asterix_fspec_len (tvb, offset + start);
proto_tree_add_item (asterix_field_tree, hf_asterix_fspec, tvb, offset + start, fspec_len, ENC_NA);
- dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, (const AsterixField **)current_uap[i]->field);
+ dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, current_uap[i]->field);
break;*/
default: /* FIXED, FX, FX_1, FX_UAP */
asterix_field_item = proto_tree_add_item (tree, *current_uap[i]->hf, tvb, offset + start, len, ENC_NA);
@@ -55912,8 +55703,8 @@ static uint8_t asterix_bit (uint8_t b, uint8_t bitNo)
* If the number is positive, all other bits must remain 0. */
static void twos_complement (int64_t *v, int bit_len)
{
- if (*v & (G_GUINT64_CONSTANT(1) << (bit_len - 1))) {
- *v |= (G_GUINT64_CONSTANT(0xffffffffffffffff) << bit_len);
+ if (*v & (UINT64_C(1) << (bit_len - 1))) {
+ *v |= (UINT64_C(0xffffffffffffffff) << bit_len);
}
}
@@ -55937,7 +55728,7 @@ static uint8_t asterix_field_exists (tvbuff_t *tvb, unsigned offset, int bitInde
// We're transported over UDP and our offset always advances.
// NOLINTNEXTLINE(misc-no-recursion)
-static int asterix_field_length (tvbuff_t *tvb, unsigned offset, const AsterixField *field)
+static int asterix_field_length (tvbuff_t *tvb, unsigned offset, const AsterixField * const field)
{
unsigned size;
uint64_t count;
@@ -55979,11 +55770,11 @@ static int asterix_field_length (tvbuff_t *tvb, unsigned offset, const AsterixFi
static uint8_t asterix_get_active_uap (tvbuff_t *tvb, unsigned offset, uint8_t category)
{
int i, inner_offset;
- AsterixField **current_uap;
+ AsterixField const * const *current_uap;
if ((category == 1) && (categories[category] != NULL)) { /* if category is supported */
if (categories[category][global_categories_version[category]][1] != NULL) { /* if exists another uap */
- current_uap = (AsterixField **)categories[category][global_categories_version[category]][0];
+ current_uap = categories[category][global_categories_version[category]][0];
if (current_uap != NULL) {
inner_offset = asterix_fspec_len (tvb, offset);
for (i = 0; current_uap[i] != NULL; i++) {
@@ -56000,7 +55791,7 @@ static uint8_t asterix_get_active_uap (tvbuff_t *tvb, unsigned offset, uint8_t c
return 0;
}
-static int asterix_field_offset (tvbuff_t *tvb, unsigned offset, const AsterixField *current_uap[], int field_index)
+static int asterix_field_offset (tvbuff_t *tvb, unsigned offset, const AsterixField * const current_uap[], int field_index)
{
int i, inner_offset;
inner_offset = 0;
@@ -56017,10 +55808,10 @@ static int asterix_field_offset (tvbuff_t *tvb, unsigned offset, const AsterixFi
static int asterix_message_length (tvbuff_t *tvb, unsigned offset, uint8_t category, uint8_t active_uap)
{
int i, size;
- AsterixField **current_uap;
+ AsterixField const * const *current_uap;
if (categories[category] != NULL) { /* if category is supported */
- current_uap = (AsterixField **)categories[category][global_categories_version[category]][active_uap];
+ current_uap = categories[category][global_categories_version[category]][active_uap];
if (current_uap != NULL) {
size = asterix_fspec_len (tvb, offset);
for (i = 0; current_uap[i] != NULL; i++) {
diff --git a/epan/dissectors/packet-at.c b/epan/dissectors/packet-at.c
index a52575eaee..231135914c 100644
--- a/epan/dissectors/packet-at.c
+++ b/epan/dissectors/packet-at.c
@@ -2596,18 +2596,18 @@ static gboolean is_padded(tvbuff_t *tvb, gint captured_len, gint first_pad_offse
for (offset = first_pad_offset; offset < captured_len; offset++) {
val = tvb_get_guint8(tvb, offset);
if (val != 0x00)
- return (FALSE);
+ return FALSE;
}
- return (TRUE);
+ return TRUE;
}
#define MIN_PADDED_ALLOWED_CHARS 4
/* Experimental approach based upon the one used for PPP */
static gboolean heur_dissect_at(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
- const guint8 at_magic1[2] = {0x0d, 0x0a};
- const guint8 at_magic2[3] = {0x0d, 0x0d, 0x0a};
- const guint8 at_magic3[2] = {0x41, 0x54}; /* 'A' 'T' */
+ static const guint8 at_magic1[2] = {0x0d, 0x0a};
+ static const guint8 at_magic2[3] = {0x0d, 0x0d, 0x0a};
+ static const guint8 at_magic3[2] = {0x41, 0x54}; /* 'A' 'T' */
gint len, allwd_chars_len;
tvbuff_t *tvb_no_padding;
@@ -2622,16 +2622,16 @@ static gboolean heur_dissect_at(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/* This is a padded AT Command */
tvb_no_padding = tvb_new_subset_length(tvb, 0, allwd_chars_len);
dissect_at(tvb_no_padding, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
}
else if(allwd_chars_len == len) {
/* This is an (unpadded) AT Command */
dissect_at(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
}
- return (FALSE);
+ return FALSE;
}
void
diff --git a/epan/dissectors/packet-atalk.c b/epan/dissectors/packet-atalk.c
index 7d3c379a8b..1e79a956b7 100644
--- a/epan/dissectors/packet-atalk.c
+++ b/epan/dissectors/packet-atalk.c
@@ -38,7 +38,7 @@ void proto_reg_handoff_atalk(void);
static reassembly_table atp_reassembly_table;
/* desegmentation of ATP */
-static gboolean atp_defragment = TRUE;
+static bool atp_defragment = true;
static dissector_handle_t afp_handle;
static dissector_handle_t afp_server_status_handle;
@@ -242,7 +242,7 @@ typedef struct {
guint8 value; /* command for asp, bitmap for atp */
} asp_request_val;
-static wmem_map_t *asp_request_hash = NULL;
+static wmem_map_t *asp_request_hash;
/* Hash Functions */
static gint asp_equal (gconstpointer v, gconstpointer v2)
@@ -265,7 +265,7 @@ static guint asp_hash (gconstpointer v)
}
/* ------------------------------------ */
-static wmem_map_t *atp_request_hash = NULL;
+static wmem_map_t *atp_request_hash;
/* ------------------------------------ */
@@ -1601,7 +1601,7 @@ static const value_string llap_type_vals[] = {
};
static value_string_ext llap_type_vals_ext = VALUE_STRING_EXT_INIT(llap_type_vals);
-static gboolean
+static bool
capture_llap(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo _U_, const union wtap_pseudo_header *pseudo_header _U_)
{
/* XXX - get its own counter
@@ -1928,7 +1928,7 @@ proto_register_atalk(void)
{ &hf_asp_zero_value,
{ "Pad (0)", "asp.zero_value",
FT_BYTES, BASE_NONE, NULL, 0x0,
- "Pad", HFILL }},
+ NULL, HFILL }},
};
static hf_register_info hf_zip[] = {
@@ -1938,7 +1938,7 @@ proto_register_atalk(void)
{ &hf_zip_zero_value,
{ "Pad (0)", "zip.zero_value",FT_BYTES, BASE_NONE, NULL, 0x0,
- "Pad", HFILL }},
+ NULL, HFILL }},
{ &hf_zip_atp_function,
{ "Function", "zip.atp_function", FT_UINT8, BASE_DEC, VALS(zip_atp_function_vals), 0x0,
diff --git a/epan/dissectors/packet-atm.c b/epan/dissectors/packet-atm.c
index 3478812ec7..04c7afe514 100644
--- a/epan/dissectors/packet-atm.c
+++ b/epan/dissectors/packet-atm.c
@@ -136,7 +136,7 @@ static dissector_handle_t ppp_handle;
static dissector_handle_t eth_maybefcs_handle;
static dissector_handle_t ip_handle;
-static gboolean dissect_lanesscop = FALSE;
+static bool dissect_lanesscop;
static dissector_table_t atm_type_aal2_table;
static dissector_table_t atm_type_aal5_table;
@@ -650,7 +650,7 @@ dissect_le_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
}
-static gboolean
+static bool
capture_lane(const guchar *pd, int offset _U_,
int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
@@ -776,7 +776,7 @@ static const value_string ipsilon_type_vals[] = {
{ 0, NULL }
};
-static gboolean
+static bool
capture_atm(const guchar *pd, int offset,
int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
diff --git a/epan/dissectors/packet-atn-cm.c b/epan/dissectors/packet-atn-cm.c
index 6fd003e1c2..ebf4c38d0b 100644
--- a/epan/dissectors/packet-atn-cm.c
+++ b/epan/dissectors/packet-atn-cm.c
@@ -10,19 +10,16 @@
* Routines for ATN context management protocol packet disassembly.
* ATN context management allows an aircraft
* to log on to a ground facility.
-
+ *
* details see:
- * http://en.wikipedia.org/wiki/CPDLC
- * http://members.optusnet.com.au/~cjr/introduction.htm
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://members.optusnet.com.au/~cjr/introduction.htm
+ *
* standards:
- * http://legacy.icao.int/anb/panels/acp/repository.cfm
-
- * note:
- * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Ed2 here
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Second Edition here
* (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
-
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
+ *
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
@@ -85,21 +82,21 @@ static int hf_atn_cm_locSysNselTsel; /* OCTET_STRING_SIZE_10_11 */
static int hf_atn_cm_hours; /* Timehours */
static int hf_atn_cm_minutes; /* Timeminutes */
-static gint ett_atn_cm_CMAircraftMessage;
-static gint ett_atn_cm_CMGroundMessage;
-static gint ett_atn_cm_APAddress;
-static gint ett_atn_cm_AEQualifierVersion;
-static gint ett_atn_cm_AEQualifierVersionAddress;
-static gint ett_atn_cm_CMContactRequest;
-static gint ett_atn_cm_CMLogonRequest;
-static gint ett_atn_cm_SEQUENCE_SIZE_1_256_OF_AEQualifierVersionAddress;
-static gint ett_atn_cm_SEQUENCE_SIZE_1_256_OF_AEQualifierVersion;
-static gint ett_atn_cm_CMLogonResponse;
-static gint ett_atn_cm_Date;
-static gint ett_atn_cm_DateTime;
-static gint ett_atn_cm_LongTsap;
-static gint ett_atn_cm_ShortTsap;
-static gint ett_atn_cm_Time;
+static int ett_atn_cm_CMAircraftMessage;
+static int ett_atn_cm_CMGroundMessage;
+static int ett_atn_cm_APAddress;
+static int ett_atn_cm_AEQualifierVersion;
+static int ett_atn_cm_AEQualifierVersionAddress;
+static int ett_atn_cm_CMContactRequest;
+static int ett_atn_cm_CMLogonRequest;
+static int ett_atn_cm_SEQUENCE_SIZE_1_256_OF_AEQualifierVersionAddress;
+static int ett_atn_cm_SEQUENCE_SIZE_1_256_OF_AEQualifierVersion;
+static int ett_atn_cm_CMLogonResponse;
+static int ett_atn_cm_Date;
+static int ett_atn_cm_DateTime;
+static int ett_atn_cm_LongTsap;
+static int ett_atn_cm_ShortTsap;
+static int ett_atn_cm_Time;
static gint ett_atn_cm;
diff --git a/epan/dissectors/packet-atn-cpdlc.c b/epan/dissectors/packet-atn-cpdlc.c
index 116413e6f6..e66b672ff0 100644
--- a/epan/dissectors/packet-atn-cpdlc.c
+++ b/epan/dissectors/packet-atn-cpdlc.c
@@ -8,18 +8,15 @@
* Copyright 2013
*
* Routines for ATN Cpdlcc protocol packet disassembly
-
+ *
* details see:
- * http://en.wikipedia.org/wiki/CPDLC
- * http://members.optusnet.com.au/~cjr/introduction.htm
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://members.optusnet.com.au/~cjr/introduction.htm
+ *
* standards:
- * http://legacy.icao.int/anb/panels/acp/repository.cfm
-
- * note:
- * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Ed2 here
+ * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Second Edition here
* (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -688,148 +685,148 @@ static int hf_atn_cpdlc_winds_speed; /* WindSpeed */
static int hf_atn_cpdlc_windSpeedEnglish; /* WindSpeedEnglish */
static int hf_atn_cpdlc_windSpeedMetric; /* WindSpeedMetric */
-static gint ett_atn_cpdlc_GroundPDUs;
-static gint ett_atn_cpdlc_UplinkMessage;
-static gint ett_atn_cpdlc_AircraftPDUs;
-static gint ett_atn_cpdlc_StartDownMessage;
-static gint ett_atn_cpdlc_DownlinkMessage;
-static gint ett_atn_cpdlc_ProtectedGroundPDUs;
-static gint ett_atn_cpdlc_ProtectedUplinkMessage;
-static gint ett_atn_cpdlc_ATCForwardMessage;
-static gint ett_atn_cpdlc_ForwardHeader;
-static gint ett_atn_cpdlc_ForwardMessage;
-static gint ett_atn_cpdlc_ProtectedAircraftPDUs;
-static gint ett_atn_cpdlc_ProtectedStartDownMessage;
-static gint ett_atn_cpdlc_ProtectedDownlinkMessage;
-static gint ett_atn_cpdlc_ATCUplinkMessage;
-static gint ett_atn_cpdlc_ATCUplinkMessageData;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId;
-static gint ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance;
-static gint ett_atn_cpdlc_ATCDownlinkMessage;
-static gint ett_atn_cpdlc_ATCDownlinkMessageData;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId;
-static gint ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata;
-static gint ett_atn_cpdlc_ATCMessageHeader;
-static gint ett_atn_cpdlc_ATCUplinkMsgElementId;
-static gint ett_atn_cpdlc_ATCDownlinkMsgElementId;
-static gint ett_atn_cpdlc_Altimeter;
-static gint ett_atn_cpdlc_ATWAlongTrackWaypoint;
-static gint ett_atn_cpdlc_ATWLevel;
-static gint ett_atn_cpdlc_ATWLevelSequence;
-static gint ett_atn_cpdlc_ATWDistance;
-static gint ett_atn_cpdlc_Code;
-static gint ett_atn_cpdlc_ControlledTime;
-static gint ett_atn_cpdlc_Date;
-static gint ett_atn_cpdlc_DateTimeGroup;
-static gint ett_atn_cpdlc_Degrees;
-static gint ett_atn_cpdlc_DepartureClearance;
-static gint ett_atn_cpdlc_DirectionDegrees;
-static gint ett_atn_cpdlc_Distance;
-static gint ett_atn_cpdlc_DistanceSpecified;
-static gint ett_atn_cpdlc_DistanceSpecifiedDirection;
-static gint ett_atn_cpdlc_DistanceSpecifiedDirectionTime;
-static gint ett_atn_cpdlc_Facility;
-static gint ett_atn_cpdlc_FacilityDesignationAltimeter;
-static gint ett_atn_cpdlc_FacilityDesignationATISCode;
-static gint ett_atn_cpdlc_FixName;
-static gint ett_atn_cpdlc_FlightInformation;
-static gint ett_atn_cpdlc_Frequency;
-static gint ett_atn_cpdlc_FurtherInstructions;
-static gint ett_atn_cpdlc_Holdatwaypoint;
-static gint ett_atn_cpdlc_HoldClearance;
-static gint ett_atn_cpdlc_InterceptCourseFrom;
-static gint ett_atn_cpdlc_InterceptCourseFromSelection;
-static gint ett_atn_cpdlc_Latitude;
-static gint ett_atn_cpdlc_LatitudeDegreesMinutes;
-static gint ett_atn_cpdlc_LatitudeDegreesMinutesSeconds;
-static gint ett_atn_cpdlc_LatitudeLongitude;
-static gint ett_atn_cpdlc_LatitudeReportingPoints;
-static gint ett_atn_cpdlc_LatitudeType;
-static gint ett_atn_cpdlc_LatLonReportingPoints;
-static gint ett_atn_cpdlc_LegDistance;
-static gint ett_atn_cpdlc_LegType;
-static gint ett_atn_cpdlc_Level;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType;
-static gint ett_atn_cpdlc_LevelLevel;
-static gint ett_atn_cpdlc_LevelPosition;
-static gint ett_atn_cpdlc_LevelProcedureName;
-static gint ett_atn_cpdlc_LevelsOfFlight;
-static gint ett_atn_cpdlc_LevelSpeed;
-static gint ett_atn_cpdlc_LevelSpeedSpeed;
-static gint ett_atn_cpdlc_LevelTime;
-static gint ett_atn_cpdlc_LevelType;
-static gint ett_atn_cpdlc_Longitude;
-static gint ett_atn_cpdlc_LongitudeDegreesMinutes;
-static gint ett_atn_cpdlc_LongitudeDegreesMinutesSeconds;
-static gint ett_atn_cpdlc_LongitudeReportingPoints;
-static gint ett_atn_cpdlc_LongitudeType;
-static gint ett_atn_cpdlc_Navaid;
-static gint ett_atn_cpdlc_PlaceBearing;
-static gint ett_atn_cpdlc_PlaceBearingDistance;
-static gint ett_atn_cpdlc_PlaceBearingPlaceBearing;
-static gint ett_atn_cpdlc_Position;
-static gint ett_atn_cpdlc_PositionDegrees;
-static gint ett_atn_cpdlc_PositionDistanceSpecifiedDirection;
-static gint ett_atn_cpdlc_PositionLevel;
-static gint ett_atn_cpdlc_PositionLevelLevel;
-static gint ett_atn_cpdlc_PositionLevelSpeed;
-static gint ett_atn_cpdlc_PositionPosition;
-static gint ett_atn_cpdlc_PositionProcedureName;
-static gint ett_atn_cpdlc_PositionReport;
-static gint ett_atn_cpdlc_PositionRouteClearanceIndex;
-static gint ett_atn_cpdlc_PositionSpeed;
-static gint ett_atn_cpdlc_PositionSpeedSpeed;
-static gint ett_atn_cpdlc_PositionTime;
-static gint ett_atn_cpdlc_PositionTimeLevel;
-static gint ett_atn_cpdlc_PositionTimeTime;
-static gint ett_atn_cpdlc_PositionUnitNameFrequency;
-static gint ett_atn_cpdlc_ProcedureName;
-static gint ett_atn_cpdlc_PublishedIdentifier;
-static gint ett_atn_cpdlc_RemainingFuelPersonsOnBoard;
-static gint ett_atn_cpdlc_ReportingPoints;
-static gint ett_atn_cpdlc_RouteAndLevels;
-static gint ett_atn_cpdlc_RouteClearance;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation;
-static gint ett_atn_cpdlc_RouteInformation;
-static gint ett_atn_cpdlc_RouteInformationAdditional;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel;
-static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival;
-static gint ett_atn_cpdlc_RTARequiredTimeArrival;
-static gint ett_atn_cpdlc_RTATime;
-static gint ett_atn_cpdlc_Runway;
-static gint ett_atn_cpdlc_RunwayRVR;
-static gint ett_atn_cpdlc_RVR;
-static gint ett_atn_cpdlc_Speed;
-static gint ett_atn_cpdlc_SpeedSpeed;
-static gint ett_atn_cpdlc_SpeedTime;
-static gint ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType;
-static gint ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed;
-static gint ett_atn_cpdlc_Time;
-static gint ett_atn_cpdlc_TimeLevel;
-static gint ett_atn_cpdlc_TimeDeparture;
-static gint ett_atn_cpdlc_TimeDistanceSpecifiedDirection;
-static gint ett_atn_cpdlc_TimeDistanceToFromPosition;
-static gint ett_atn_cpdlc_Timehhmmss;
-static gint ett_atn_cpdlc_TimeUnitNameFrequency;
-static gint ett_atn_cpdlc_TimePosition;
-static gint ett_atn_cpdlc_TimePositionLevel;
-static gint ett_atn_cpdlc_TimePositionLevelSpeed;
-static gint ett_atn_cpdlc_TimeSpeed;
-static gint ett_atn_cpdlc_TimeSpeedSpeed;
-static gint ett_atn_cpdlc_TimeTime;
-static gint ett_atn_cpdlc_TimeToFromPosition;
-static gint ett_atn_cpdlc_ToFromPosition;
-static gint ett_atn_cpdlc_UnitName;
-static gint ett_atn_cpdlc_UnitNameFrequency;
-static gint ett_atn_cpdlc_VerticalChange;
-static gint ett_atn_cpdlc_VerticalRate;
-static gint ett_atn_cpdlc_WaypointSpeedLevel;
-static gint ett_atn_cpdlc_Winds;
-static gint ett_atn_cpdlc_WindSpeed;
+static int ett_atn_cpdlc_GroundPDUs;
+static int ett_atn_cpdlc_UplinkMessage;
+static int ett_atn_cpdlc_AircraftPDUs;
+static int ett_atn_cpdlc_StartDownMessage;
+static int ett_atn_cpdlc_DownlinkMessage;
+static int ett_atn_cpdlc_ProtectedGroundPDUs;
+static int ett_atn_cpdlc_ProtectedUplinkMessage;
+static int ett_atn_cpdlc_ATCForwardMessage;
+static int ett_atn_cpdlc_ForwardHeader;
+static int ett_atn_cpdlc_ForwardMessage;
+static int ett_atn_cpdlc_ProtectedAircraftPDUs;
+static int ett_atn_cpdlc_ProtectedStartDownMessage;
+static int ett_atn_cpdlc_ProtectedDownlinkMessage;
+static int ett_atn_cpdlc_ATCUplinkMessage;
+static int ett_atn_cpdlc_ATCUplinkMessageData;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId;
+static int ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance;
+static int ett_atn_cpdlc_ATCDownlinkMessage;
+static int ett_atn_cpdlc_ATCDownlinkMessageData;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId;
+static int ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata;
+static int ett_atn_cpdlc_ATCMessageHeader;
+static int ett_atn_cpdlc_ATCUplinkMsgElementId;
+static int ett_atn_cpdlc_ATCDownlinkMsgElementId;
+static int ett_atn_cpdlc_Altimeter;
+static int ett_atn_cpdlc_ATWAlongTrackWaypoint;
+static int ett_atn_cpdlc_ATWLevel;
+static int ett_atn_cpdlc_ATWLevelSequence;
+static int ett_atn_cpdlc_ATWDistance;
+static int ett_atn_cpdlc_Code;
+static int ett_atn_cpdlc_ControlledTime;
+static int ett_atn_cpdlc_Date;
+static int ett_atn_cpdlc_DateTimeGroup;
+static int ett_atn_cpdlc_Degrees;
+static int ett_atn_cpdlc_DepartureClearance;
+static int ett_atn_cpdlc_DirectionDegrees;
+static int ett_atn_cpdlc_Distance;
+static int ett_atn_cpdlc_DistanceSpecified;
+static int ett_atn_cpdlc_DistanceSpecifiedDirection;
+static int ett_atn_cpdlc_DistanceSpecifiedDirectionTime;
+static int ett_atn_cpdlc_Facility;
+static int ett_atn_cpdlc_FacilityDesignationAltimeter;
+static int ett_atn_cpdlc_FacilityDesignationATISCode;
+static int ett_atn_cpdlc_FixName;
+static int ett_atn_cpdlc_FlightInformation;
+static int ett_atn_cpdlc_Frequency;
+static int ett_atn_cpdlc_FurtherInstructions;
+static int ett_atn_cpdlc_Holdatwaypoint;
+static int ett_atn_cpdlc_HoldClearance;
+static int ett_atn_cpdlc_InterceptCourseFrom;
+static int ett_atn_cpdlc_InterceptCourseFromSelection;
+static int ett_atn_cpdlc_Latitude;
+static int ett_atn_cpdlc_LatitudeDegreesMinutes;
+static int ett_atn_cpdlc_LatitudeDegreesMinutesSeconds;
+static int ett_atn_cpdlc_LatitudeLongitude;
+static int ett_atn_cpdlc_LatitudeReportingPoints;
+static int ett_atn_cpdlc_LatitudeType;
+static int ett_atn_cpdlc_LatLonReportingPoints;
+static int ett_atn_cpdlc_LegDistance;
+static int ett_atn_cpdlc_LegType;
+static int ett_atn_cpdlc_Level;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType;
+static int ett_atn_cpdlc_LevelLevel;
+static int ett_atn_cpdlc_LevelPosition;
+static int ett_atn_cpdlc_LevelProcedureName;
+static int ett_atn_cpdlc_LevelsOfFlight;
+static int ett_atn_cpdlc_LevelSpeed;
+static int ett_atn_cpdlc_LevelSpeedSpeed;
+static int ett_atn_cpdlc_LevelTime;
+static int ett_atn_cpdlc_LevelType;
+static int ett_atn_cpdlc_Longitude;
+static int ett_atn_cpdlc_LongitudeDegreesMinutes;
+static int ett_atn_cpdlc_LongitudeDegreesMinutesSeconds;
+static int ett_atn_cpdlc_LongitudeReportingPoints;
+static int ett_atn_cpdlc_LongitudeType;
+static int ett_atn_cpdlc_Navaid;
+static int ett_atn_cpdlc_PlaceBearing;
+static int ett_atn_cpdlc_PlaceBearingDistance;
+static int ett_atn_cpdlc_PlaceBearingPlaceBearing;
+static int ett_atn_cpdlc_Position;
+static int ett_atn_cpdlc_PositionDegrees;
+static int ett_atn_cpdlc_PositionDistanceSpecifiedDirection;
+static int ett_atn_cpdlc_PositionLevel;
+static int ett_atn_cpdlc_PositionLevelLevel;
+static int ett_atn_cpdlc_PositionLevelSpeed;
+static int ett_atn_cpdlc_PositionPosition;
+static int ett_atn_cpdlc_PositionProcedureName;
+static int ett_atn_cpdlc_PositionReport;
+static int ett_atn_cpdlc_PositionRouteClearanceIndex;
+static int ett_atn_cpdlc_PositionSpeed;
+static int ett_atn_cpdlc_PositionSpeedSpeed;
+static int ett_atn_cpdlc_PositionTime;
+static int ett_atn_cpdlc_PositionTimeLevel;
+static int ett_atn_cpdlc_PositionTimeTime;
+static int ett_atn_cpdlc_PositionUnitNameFrequency;
+static int ett_atn_cpdlc_ProcedureName;
+static int ett_atn_cpdlc_PublishedIdentifier;
+static int ett_atn_cpdlc_RemainingFuelPersonsOnBoard;
+static int ett_atn_cpdlc_ReportingPoints;
+static int ett_atn_cpdlc_RouteAndLevels;
+static int ett_atn_cpdlc_RouteClearance;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation;
+static int ett_atn_cpdlc_RouteInformation;
+static int ett_atn_cpdlc_RouteInformationAdditional;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel;
+static int ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival;
+static int ett_atn_cpdlc_RTARequiredTimeArrival;
+static int ett_atn_cpdlc_RTATime;
+static int ett_atn_cpdlc_Runway;
+static int ett_atn_cpdlc_RunwayRVR;
+static int ett_atn_cpdlc_RVR;
+static int ett_atn_cpdlc_Speed;
+static int ett_atn_cpdlc_SpeedSpeed;
+static int ett_atn_cpdlc_SpeedTime;
+static int ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType;
+static int ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed;
+static int ett_atn_cpdlc_Time;
+static int ett_atn_cpdlc_TimeLevel;
+static int ett_atn_cpdlc_TimeDeparture;
+static int ett_atn_cpdlc_TimeDistanceSpecifiedDirection;
+static int ett_atn_cpdlc_TimeDistanceToFromPosition;
+static int ett_atn_cpdlc_Timehhmmss;
+static int ett_atn_cpdlc_TimeUnitNameFrequency;
+static int ett_atn_cpdlc_TimePosition;
+static int ett_atn_cpdlc_TimePositionLevel;
+static int ett_atn_cpdlc_TimePositionLevelSpeed;
+static int ett_atn_cpdlc_TimeSpeed;
+static int ett_atn_cpdlc_TimeSpeedSpeed;
+static int ett_atn_cpdlc_TimeTime;
+static int ett_atn_cpdlc_TimeToFromPosition;
+static int ett_atn_cpdlc_ToFromPosition;
+static int ett_atn_cpdlc_UnitName;
+static int ett_atn_cpdlc_UnitNameFrequency;
+static int ett_atn_cpdlc_VerticalChange;
+static int ett_atn_cpdlc_VerticalRate;
+static int ett_atn_cpdlc_WaypointSpeedLevel;
+static int ett_atn_cpdlc_Winds;
+static int ett_atn_cpdlc_WindSpeed;
static gint ett_atn_cpdlc;
diff --git a/epan/dissectors/packet-atn-sl.c b/epan/dissectors/packet-atn-sl.c
new file mode 100644
index 0000000000..88f35f2107
--- /dev/null
+++ b/epan/dissectors/packet-atn-sl.c
@@ -0,0 +1,238 @@
+/* packet-atn-sl.c
+ * Routines for ISO/OSI network protocol packet disassembly
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+
+void proto_register_atn_sl(void);
+void proto_reg_handoff_atn_sl(void);
+
+/* protocols and fields */
+
+static int proto_atn_sl;
+static gint ett_atn_sl;
+
+static int hf_atn_sl_tt;
+static int hf_atn_sl_sc;
+
+/* ATN traffic types (ICAO doc 9705 Edition3 SV5 5.6.2.2.6.7.3) */
+#define ATN_TT_ATSC_NO_PREFERENCE 0x01
+#define ATN_TT_ATSC_CLASS_A 0x10
+#define ATN_TT_ATSC_CLASS_B 0x11
+#define ATN_TT_ATSC_CLASS_C 0x12
+#define ATN_TT_ATSC_CLASS_D 0x13
+#define ATN_TT_ATSC_CLASS_E 0x14
+#define ATN_TT_ATSC_CLASS_F 0x15
+#define ATN_TT_ATSC_CLASS_G 0x16
+#define ATN_TT_ATSC_CLASS_H 0x17
+#define ATN_TT_AOC_NO_PREFERENCE 0x21
+#define ATN_TT_AOC_G 0x22
+#define ATN_TT_AOC_V 0x23
+#define ATN_TT_AOC_S 0x24
+#define ATN_TT_AOC_H 0x25
+#define ATN_TT_AOC_M 0x26
+#define ATN_TT_AOC_G_V 0x27
+#define ATN_TT_AOC_G_V_S 0x28
+#define ATN_TT_AOC_G_V_H_S 0x29
+#define ATN_TT_ADM_NO_PREFERENCE 0x30
+#define ATN_TT_SYS_MGMT_NO_PREFERENCE 0x60
+
+/* ATN security classification (ICAO doc 9705 Edition3 SV5 5.6.2.2.6.8.3) */
+#define ATN_SC_UNCLASSIFIED 0x01
+#define ATN_SC_RESTRICTED 0x02
+#define ATN_SC_CONFIDENTIAL 0x03
+#define ATN_SC_SECRET 0x04
+#define ATN_SC_TOP_SECRET 0x05
+
+/* ATN security label records */
+#define OSI_OPT_SECURITY_ATN_SR 0xc0
+#define OSI_OPT_SECURITY_ATN_TT 0x0f
+#define OSI_OPT_SECURITY_ATN_SC 0x03
+#define OSI_OPT_SECURITY_ATN_SR_LEN 6
+#define OSI_OPT_SECURITY_ATN_TT_LEN 1
+#define OSI_OPT_SECURITY_ATN_SC_LEN 1
+#define OSI_OPT_SECURITY_ATN_SI_MAX_LEN 8
+
+
+static const guchar atn_security_registration_val[] = {
+ 0x06, 0x04, 0x2b, 0x1b, 0x00, 0x00
+}; /* =iso(1).org(3).ICAO(27).ATN(0).TrafficType(0)*/
+
+#if 0
+static const value_string osi_opt_sec_atn_sr_vals[] = {
+ {OSI_OPT_SECURITY_ATN_SR, "ATN Security Label"},
+ {0, NULL}
+};
+#endif
+
+static const value_string osi_opt_sec_atn_si_vals[] = {
+ {OSI_OPT_SECURITY_ATN_TT, "Traffic Type and Routing"},
+ {OSI_OPT_SECURITY_ATN_SC, "Security classification"},
+ {0, NULL}
+};
+
+static const value_string osi_opt_sec_atn_tt_vals[] = {
+ {ATN_TT_ATSC_NO_PREFERENCE, "ATSC No preference"},
+ {ATN_TT_ATSC_CLASS_A, "ATSC Class A"},
+ {ATN_TT_ATSC_CLASS_B, "ATSC Class B"},
+ {ATN_TT_ATSC_CLASS_C, "ATSC Class C"},
+ {ATN_TT_ATSC_CLASS_D, "ATSC Class D"},
+ {ATN_TT_ATSC_CLASS_E, "ATSC Class E"},
+ {ATN_TT_ATSC_CLASS_F, "ATSC Class F"},
+ {ATN_TT_ATSC_CLASS_G, "ATSC Class G"},
+ {ATN_TT_ATSC_CLASS_H, "ATSC Class H"},
+ {ATN_TT_AOC_NO_PREFERENCE, "AOC No preference"},
+ {ATN_TT_AOC_G, "AOC Gatelink only"},
+ {ATN_TT_AOC_V, "AOC VHF only"},
+ {ATN_TT_AOC_S, "AOC Satellite only"},
+ {ATN_TT_AOC_H, "AOC HF only"},
+ {ATN_TT_AOC_M, "AOC Mode S only"},
+ {ATN_TT_AOC_G_V, "AOC Gatelink first, then VHF"},
+ {ATN_TT_AOC_G_V_S, "AOC Gatelink first, then VHF, then Satellite"},
+ {ATN_TT_AOC_G_V_H_S, "AOC Gatelink first, then VHF, then HF, then Satellite"},
+ {ATN_TT_ADM_NO_PREFERENCE, "ATN Administrative No preference"},
+ {ATN_TT_SYS_MGMT_NO_PREFERENCE, "ATN Systems Management No preference"},
+ {0, NULL}
+};
+
+static const value_string osi_opt_sec_atn_sc_vals[] = {
+ {ATN_SC_UNCLASSIFIED, "unclassified"},
+ {ATN_SC_RESTRICTED, "restricted"},
+ {ATN_SC_CONFIDENTIAL, "confidential"},
+ {ATN_SC_SECRET, "secret"},
+ {ATN_SC_TOP_SECRET, "top secret"},
+ {0, NULL}
+};
+
+/* dissect ATN security label used for policy based interdomain routing.*/
+/* For details see ICAO doc 9705 Edition 3 SV5 5.6.2.2.2.2 */
+static int
+dissect_atn_sl(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
+ void* data _U_)
+{
+ proto_item *ti;
+ proto_tree *atn_sl_tree;
+ guint offset = 0;
+ guchar len = 0;
+ guint8 tag_name = 0;
+ guint security_info_end = 0;
+
+ ti = proto_tree_add_item(tree, proto_atn_sl, tvb, offset, -1, ENC_NA);
+ atn_sl_tree = proto_item_add_subtree(ti, ett_atn_sl);
+
+ /* check Security Registration Length */
+ len = tvb_get_guint8(tvb, offset);
+ if ( OSI_OPT_SECURITY_ATN_SR_LEN != len )
+ return tvb_captured_length(tvb);
+ offset++;
+
+ /* check Security Registration ID */
+ if ( tvb_memeql(tvb, offset, atn_security_registration_val, OSI_OPT_SECURITY_ATN_SR_LEN) )
+ return tvb_captured_length(tvb);
+
+ offset += OSI_OPT_SECURITY_ATN_SR_LEN;
+
+ /* Security Information length */
+ len = tvb_get_guint8(tvb, offset);
+
+ if ( OSI_OPT_SECURITY_ATN_SI_MAX_LEN < len )
+ return tvb_captured_length(tvb);
+
+ offset++;
+
+ security_info_end = offset + len;
+ while ( offset < security_info_end ) {
+ /* check tag name length*/
+ len = tvb_get_guint8(tvb, offset); /* check tag name length*/
+ if ( len != 1 )
+ return tvb_captured_length(tvb);
+
+ offset++;
+
+ tag_name = tvb_get_guint8(tvb, offset);
+ offset++;
+
+ switch(tag_name) {
+ case OSI_OPT_SECURITY_ATN_TT:
+ /* check tag set length*/
+ len = tvb_get_guint8(tvb, offset);
+ if ( len != OSI_OPT_SECURITY_ATN_TT_LEN )
+ return tvb_captured_length(tvb);
+
+ offset++;
+ proto_tree_add_uint_format(atn_sl_tree, hf_atn_sl_tt, tvb, offset, 1,
+ tvb_get_guint8(tvb, offset), "%s: %s",
+ val_to_str(OSI_OPT_SECURITY_ATN_TT, osi_opt_sec_atn_si_vals, "Unknown (0x%x)"),
+ val_to_str(tvb_get_guint8(tvb, offset ), osi_opt_sec_atn_tt_vals, "Unknown (0x%x)"));
+ offset += len;
+ break;
+
+ case OSI_OPT_SECURITY_ATN_SC:
+ /* check tag set length*/
+ len = tvb_get_guint8(tvb, offset);
+ if ( len != OSI_OPT_SECURITY_ATN_SC_LEN )
+ return tvb_captured_length(tvb);
+
+ offset++;
+ proto_tree_add_uint_format(atn_sl_tree, hf_atn_sl_sc, tvb, offset, 1,
+ tvb_get_guint8(tvb, offset), "%s: %s",
+ val_to_str(OSI_OPT_SECURITY_ATN_SC, osi_opt_sec_atn_si_vals, "Unknown (0x%x)"),
+ val_to_str(tvb_get_guint8(tvb, offset ), osi_opt_sec_atn_sc_vals, "Unknown (0x%x)"));
+ offset += len;
+ break;
+
+ default:
+ return tvb_captured_length(tvb);
+ }
+ }
+ return tvb_captured_length(tvb);
+}
+
+void
+proto_register_atn_sl(void)
+{
+ static hf_register_info hf[] = {
+ { &hf_atn_sl_tt,
+ { "ATN traffic type", "atn_sl.tt", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+
+ { &hf_atn_sl_sc,
+ { "ATN security classification", "atn_sl.sc", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ };
+ static gint *ett[] = {
+ &ett_atn_sl,
+ };
+
+ proto_atn_sl = proto_register_protocol("ATN Security Label", "ATN SL", "atn_sl");
+ proto_register_field_array(proto_atn_sl, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+void
+proto_reg_handoff_atn_sl(void)
+{
+ dissector_handle_t atn_sl_handle;
+
+ atn_sl_handle = create_dissector_handle(dissect_atn_sl, proto_atn_sl);
+ dissector_add_for_decode_as("osi.opt_security", atn_sl_handle);
+}
+
+/*
+ * Editor modelines - https://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/packet-atn-ulcs.c b/epan/dissectors/packet-atn-ulcs.c
index a8b516af36..b2624853b0 100644
--- a/epan/dissectors/packet-atn-ulcs.c
+++ b/epan/dissectors/packet-atn-ulcs.c
@@ -9,28 +9,26 @@
*
* Routines for ATN upper layer
* protocol packet disassembly
-
+ *
* ATN upper layers are embedded within OSI Layer 4 (COTP).
*
* ATN upper layers contain:
* Session Layer (NUL protocol option)
* Presentation Layer (NUL protocol option)
* ATN upper Layer/Application (ACSE PDU or PDV-list PDU)
-
+ *
* ATN applications protocols (i.e. CM or CPDLC) are contained within
* ACSE user-information or PDV presentation data.
-
+ *
* details see:
- * http://en.wikipedia.org/wiki/CPDLC
- * http://members.optusnet.com.au/~cjr/introduction.htm
-
+ * https://en.wikipedia.org/wiki/CPDLC
+ * https://members.optusnet.com.au/~cjr/introduction.htm
+ *
* standards:
- * http://legacy.icao.int/anb/panels/acp/repository.cfm
-
- * note:
- * We are dealing with ATN/ULCS aka ICAO Doc 9705 Ed2 here
+ * We are dealing with ATN/ULCS aka ICAO Doc 9705 Second Edition here
* (don't think there is an ULCS equivalent for "FANS-1/A ").
-
+ * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
+ *
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
@@ -123,18 +121,18 @@ void proto_reg_handoff_atn_ulcs(void);
static heur_dissector_list_t atn_ulcs_heur_subdissector_list;
/* presentation subdissectors i.e. CM, CPDLC */
-static dissector_handle_t atn_cm_handle = NULL;
-static dissector_handle_t atn_cpdlc_handle = NULL;
+static dissector_handle_t atn_cm_handle;
+static dissector_handle_t atn_cpdlc_handle;
static int proto_atn_ulcs;
-static guint32 ulcs_context_value = 0;
+static guint32 ulcs_context_value;
static const char *object_identifier_id;
-static wmem_tree_t *aarq_data_tree = NULL;
-static wmem_tree_t *atn_conversation_tree = NULL;
+static wmem_tree_t *aarq_data_tree;
+static wmem_tree_t *atn_conversation_tree;
-static proto_tree *root_tree = NULL;
+static proto_tree *root_tree;
/* forward declarations for functions generated from asn1 */
static int dissect_atn_ulcs_T_externalt_encoding_single_asn1_type(
@@ -253,31 +251,31 @@ static int hf_atn_ulcs_T_aare_apdu_protocol_version_version1;
static int hf_atn_ulcs_ACSE_requirements_authentication;
static int hf_atn_ulcs_ACSE_requirements_application_context_negotiation;
-static gint ett_atn_ulcs_Fully_encoded_data;
-static gint ett_atn_ulcs_PDV_list;
-static gint ett_atn_ulcs_T_presentation_data_values;
-static gint ett_atn_ulcs_EXTERNALt;
-static gint ett_atn_ulcs_T_encoding;
-static gint ett_atn_ulcs_ACSE_apdu;
-static gint ett_atn_ulcs_AARQ_apdu;
-static gint ett_atn_ulcs_T_aarq_apdu_protocol_version;
-static gint ett_atn_ulcs_AARE_apdu;
-static gint ett_atn_ulcs_T_aare_apdu_protocol_version;
-static gint ett_atn_ulcs_RLRQ_apdu;
-static gint ett_atn_ulcs_RLRE_apdu;
-static gint ett_atn_ulcs_ABRT_apdu;
-static gint ett_atn_ulcs_ACSE_requirements;
-static gint ett_atn_ulcs_Application_context_name_list;
-static gint ett_atn_ulcs_AP_title;
-static gint ett_atn_ulcs_AE_qualifier;
-static gint ett_atn_ulcs_Associate_source_diagnostic;
-static gint ett_atn_ulcs_Association_information;
-static gint ett_atn_ulcs_Authentication_value;
-static gint ett_atn_ulcs_T_other;
-static gint ett_atn_ulcs_Name;
-static gint ett_atn_ulcs_RDNSequence;
-static gint ett_atn_ulcs_RelativeDistinguishedName;
-static gint ett_atn_ulcs_AttributeTypeAndValue;
+static int ett_atn_ulcs_Fully_encoded_data;
+static int ett_atn_ulcs_PDV_list;
+static int ett_atn_ulcs_T_presentation_data_values;
+static int ett_atn_ulcs_EXTERNALt;
+static int ett_atn_ulcs_T_encoding;
+static int ett_atn_ulcs_ACSE_apdu;
+static int ett_atn_ulcs_AARQ_apdu;
+static int ett_atn_ulcs_T_aarq_apdu_protocol_version;
+static int ett_atn_ulcs_AARE_apdu;
+static int ett_atn_ulcs_T_aare_apdu_protocol_version;
+static int ett_atn_ulcs_RLRQ_apdu;
+static int ett_atn_ulcs_RLRE_apdu;
+static int ett_atn_ulcs_ABRT_apdu;
+static int ett_atn_ulcs_ACSE_requirements;
+static int ett_atn_ulcs_Application_context_name_list;
+static int ett_atn_ulcs_AP_title;
+static int ett_atn_ulcs_AE_qualifier;
+static int ett_atn_ulcs_Associate_source_diagnostic;
+static int ett_atn_ulcs_Association_information;
+static int ett_atn_ulcs_Authentication_value;
+static int ett_atn_ulcs_T_other;
+static int ett_atn_ulcs_Name;
+static int ett_atn_ulcs_RDNSequence;
+static int ett_atn_ulcs_RelativeDistinguishedName;
+static int ett_atn_ulcs_AttributeTypeAndValue;
static gint ett_atn_ulcs;
static gint ett_atn_acse;
diff --git a/epan/dissectors/packet-autosar-ipdu-multiplexer.c b/epan/dissectors/packet-autosar-ipdu-multiplexer.c
index e45051f5c2..c2f4aed8af 100644
--- a/epan/dissectors/packet-autosar-ipdu-multiplexer.c
+++ b/epan/dissectors/packet-autosar-ipdu-multiplexer.c
@@ -36,10 +36,10 @@ static int proto_ipdu_multiplexer;
#define IPDUM_NAME "AUTOSAR I-PduM"
/* dissector handles - incoming messages */
-static dissector_handle_t ipdum_handle_can = NULL;
-static dissector_handle_t ipdum_handle_flexray = NULL;
-static dissector_handle_t ipdum_handle_lin = NULL;
-static dissector_handle_t ipdum_handle_pdu_transport = NULL;
+static dissector_handle_t ipdum_handle_can;
+static dissector_handle_t ipdum_handle_flexray;
+static dissector_handle_t ipdum_handle_lin;
+static dissector_handle_t ipdum_handle_pdu_transport;
/* subdissectors - outgoing messages */
static dissector_table_t subdissector_table;
@@ -121,25 +121,25 @@ typedef struct _ipdum_pdu_transport_mapping {
} ipdum_pdu_transport_mapping_t;
typedef ipdum_pdu_transport_mapping_t ipdum_pdu_transport_mapping_uat_t;
-static ipdum_message_list_uat_t *ipdum_message_list = NULL;
-static guint ipdum_message_list_num = 0;
-static GHashTable *data_ipdum_messages = NULL;
+static ipdum_message_list_uat_t *ipdum_message_list;
+static guint ipdum_message_list_num;
+static GHashTable *data_ipdum_messages;
-static ipdum_can_mapping_t *ipdum_can_mapping = NULL;
-static guint ipdum_can_mapping_num = 0;
-static GHashTable *data_ipdum_can_mappings = NULL;
+static ipdum_can_mapping_t *ipdum_can_mapping;
+static guint ipdum_can_mapping_num;
+static GHashTable *data_ipdum_can_mappings;
-static ipdum_flexray_mapping_t *ipdum_flexray_mapping = NULL;
-static guint ipdum_flexray_mapping_num = 0;
-static GHashTable *data_ipdum_flexray_mappings = NULL;
+static ipdum_flexray_mapping_t *ipdum_flexray_mapping;
+static guint ipdum_flexray_mapping_num;
+static GHashTable *data_ipdum_flexray_mappings;
-static ipdum_lin_mapping_t *ipdum_lin_mapping = NULL;
-static guint ipdum_lin_mapping_num = 0;
-static GHashTable *data_ipdum_lin_mappings = NULL;
+static ipdum_lin_mapping_t *ipdum_lin_mapping;
+static guint ipdum_lin_mapping_num;
+static GHashTable *data_ipdum_lin_mappings;
-static ipdum_pdu_transport_mapping_t *ipdum_pdu_transport_mapping = NULL;
-static guint ipdum_pdu_transport_mapping_num = 0;
-static GHashTable *data_ipdum_pdu_transport_mappings = NULL;
+static ipdum_pdu_transport_mapping_t *ipdum_pdu_transport_mapping;
+static guint ipdum_pdu_transport_mapping_num;
+static GHashTable *data_ipdum_pdu_transport_mappings;
/* UAT Callbacks and Helpers */
diff --git a/epan/dissectors/packet-autosar-nm.c b/epan/dissectors/packet-autosar-nm.c
index dcec611744..18c0764c8c 100644
--- a/epan/dissectors/packet-autosar-nm.c
+++ b/epan/dissectors/packet-autosar-nm.c
@@ -126,12 +126,12 @@ static const enum_val_t cbv_version_vals[] = {
static gint g_autosar_nm_cbv_version = (gint)autosar_4_1_or_newer;
/* Id and mask of CAN frames to be dissected */
-static guint32 g_autosar_nm_can_id = 0;
+static guint32 g_autosar_nm_can_id;
static guint32 g_autosar_nm_can_id_mask = 0xffffffff;
/* Relevant PDUs */
-static range_t *g_autosar_nm_pdus = NULL;
-static range_t *g_autosar_nm_ipdum_pdus = NULL;
+static range_t *g_autosar_nm_pdus;
+static range_t *g_autosar_nm_ipdum_pdus;
/*******************************
diff --git a/epan/dissectors/packet-ax25-kiss.c b/epan/dissectors/packet-ax25-kiss.c
index e565216a66..2abe196dd8 100644
--- a/epan/dissectors/packet-ax25-kiss.c
+++ b/epan/dissectors/packet-ax25-kiss.c
@@ -122,7 +122,7 @@
#define KISS_PORT_MASK 0xf0
/* Global preferences */
-static gboolean gPREF_CKSUM_MODE = FALSE;
+static bool gPREF_CKSUM_MODE;
void proto_register_ax25_kiss(void);
void proto_reg_handoff_ax25_kiss(void);
@@ -166,7 +166,7 @@ static const value_string kiss_frame_types[] = {
{ 0, NULL }
};
-static gboolean
+static bool
capture_ax25_kiss( const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
int l_offset;
diff --git a/epan/dissectors/packet-ax25-nol3.c b/epan/dissectors/packet-ax25-nol3.c
index a919116fae..c0edb5d7e2 100644
--- a/epan/dissectors/packet-ax25-nol3.c
+++ b/epan/dissectors/packet-ax25-nol3.c
@@ -55,8 +55,8 @@ static int hf_dx_report;
/* static int hf_text; */
/* Global preferences */
-static gboolean gPREF_APRS = FALSE;
-static gboolean gPREF_DX = FALSE;
+static bool gPREF_APRS;
+static bool gPREF_DX;
/* Initialize the subtree pointers */
static gint ett_ax25_nol3;
diff --git a/epan/dissectors/packet-ax25.c b/epan/dissectors/packet-ax25.c
index a7de32e471..ae901579c3 100644
--- a/epan/dissectors/packet-ax25.c
+++ b/epan/dissectors/packet-ax25.c
@@ -238,7 +238,7 @@ dissect_ax25( tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
return tvb_captured_length(tvb);
}
-static gboolean
+static bool
capture_ax25( const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint8 control;
diff --git a/epan/dissectors/packet-ayiya.c b/epan/dissectors/packet-ayiya.c
index 725e4da0bb..fe37819147 100644
--- a/epan/dissectors/packet-ayiya.c
+++ b/epan/dissectors/packet-ayiya.c
@@ -35,7 +35,7 @@ static int hf_signature;
static gint ett_ayiya;
-static dissector_handle_t ayiya_handle = NULL;
+static dissector_handle_t ayiya_handle;
static const value_string identity_types[] = {
{ 0x0, "None" },
diff --git a/epan/dissectors/packet-bacapp.c b/epan/dissectors/packet-bacapp.c
index 94efea0348..a79d32a683 100644
--- a/epan/dissectors/packet-bacapp.c
+++ b/epan/dissectors/packet-bacapp.c
@@ -2984,7 +2984,7 @@ BACnetFileStartOption [] = {
};
static const value_string
-BACnetFileRequestCount [] = {
+BacnetFileRequestedCount [] = {
{ 0, "Requested Octet Count: "},
{ 1, "Requested Record Count: "},
{ 0, NULL}
@@ -3171,8 +3171,8 @@ BACnetLifeSafetyState [] = {
static const value_string
BACnetLimitEnable[] = {
- { 0, "low-limit" },
- { 1, "high-limit" },
+ { 0, "low-limit-enable" },
+ { 1, "high-limit-enable" },
{ 0, NULL }
};
@@ -3458,6 +3458,7 @@ BACnetReliability [] = {
{ 22, "proprietary-command-failure"},
{ 23, "faults-listed"},
{ 24, "referenced-object-fault"},
+ { 25, "multi-state-out-of-range"},
{ 0, NULL}
};
@@ -4641,9 +4642,9 @@ BACnetAcknowledgementFilter [] = {
static const value_string
BACnetResultFlags [] = {
- { 0, "firstitem"},
- { 1, "lastitem"},
- { 2, "moreitems"},
+ { 0, "first-item"},
+ { 1, "last-item"},
+ { 2, "more-items"},
{ 0, NULL}
};
@@ -4808,7 +4809,7 @@ BACnetEventType [] = {
{ 4, "floating-limit" },
{ 5, "out-of-range" },
{ 6, "complex-event-type" },
- { 7, "(deprecated)buffer-ready" },
+ { 7, "(deprecated)event-buffer-ready" },
{ 8, "change-of-life-safety" },
{ 9, "extended" },
{ 10, "buffer-ready" },
@@ -6640,12 +6641,10 @@ BACnetVendorIdentifiers [] = {
{ 1367, "iDM Energiesysteme GmbH" },
{ 1368, "BeNext B.V." },
{ 1369, "CleanAir.ai Corporation" },
- { 1369, "CleanAir.ai Corporation" },
{ 1370, "Revolution Microelectronics (America) Inc." },
{ 1371, "Real-Time Systems GmbH" },
{ 1372, "ZedBee Technologies Pvt Ltd" },
{ 1373, "Winmate Technology Solutions Pvt. Ltd." },
- { 1373, "Winmate Technology Solutions Pvt. Ltd." },
{ 1374, "Senticon Ltd." },
{ 1375, "Rossaker AB" },
{ 1376, "OPIT Solutions Ltd" },
@@ -6733,6 +6732,18 @@ BACnetVendorIdentifiers [] = {
{ 1460, "Delta Fire Ltda." },
{ 1461, "Bock Water Heaters, Inc." },
{ 1462, "Cleaver-Brooks" },
+ { 1463, "Scanalytics, Inc." },
+ { 1464, "WI6LABS" },
+ { 1465, "AC&T System Co., Ltd" },
+ { 1466, "VergeSense" },
+ { 1467, "Systemair Mfg. Inc." },
+ { 1468, "Seeley International" },
+ { 1469, "Crane Building Services & Utilities" },
+ { 1470, "Brady Corporation" },
+ { 1471, "Qingdao Hisense Hitachi Air-Conditioning Systems Co., Ltd." },
+ { 1472, "Golden Quality Co. Ltd." },
+ { 1473, "Elvaco AB" },
+ { 1474, "Strong Technology, LLC" },
{ 0, NULL }
};
static value_string_ext BACnetVendorIdentifiers_ext = VALUE_STRING_EXT_INIT(BACnetVendorIdentifiers);
@@ -6828,8 +6839,8 @@ static gint32 propertyIdentifier = -1;
static gint32 propertyArrayIndex = -1;
static guint32 object_type = 4096;
-static guint8 bacapp_flags = 0;
-static guint8 bacapp_seq = 0;
+static guint8 bacapp_flags;
+static guint8 bacapp_seq;
/* Defined to allow vendor identifier registration of private transfer dissectors */
static dissector_table_t bacapp_dissector_table;
@@ -8498,7 +8509,7 @@ fPropertyIdentifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
guint32 lvt;
guint tag_len;
proto_tree *subtree;
- const gchar *label = "Property Identifier";
+ static const gchar *label = "Property Identifier";
propertyIdentifier = 0; /* global Variable */
tag_len = fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
@@ -10721,7 +10732,7 @@ fVendorIdentifier(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
guint tag_len;
proto_item *ti;
proto_tree *subtree;
- const gchar *label = "Vendor ID";
+ static const gchar *label = "Vendor ID";
tag_len = fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fUnsigned32(tvb, offset + tag_len, lvt, &val))
@@ -10756,7 +10767,7 @@ fRestartReason(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset
guint tag_len;
proto_item *ti;
proto_tree *subtree;
- const gchar *label = "Restart Reason";
+ static const gchar *label = "Restart Reason";
tag_len = fTagHeader(tvb, pinfo, offset, &tag_no, &tag_info, &lvt);
if (fUnsigned32(tvb, offset + tag_len, lvt, &val))
@@ -11006,8 +11017,7 @@ BACnetPropertyStatesEnums[] = {
{ 59, BACnetAuditLevel },
{ 60, BACnetAuditOperation }
};
-#define BACnetPropertyStatesEnums_Size \
- (sizeof(BACnetPropertyStatesEnums) / sizeof(BACnetPropertyStatesEnums[0]))
+#define BACnetPropertyStatesEnums_Size array_length(BACnetPropertyStatesEnums)
static guint
fBACnetPropertyStates(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
@@ -15715,7 +15725,7 @@ fAtomicReadFileRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
val_to_str_const(tag_no, BACnetFileAccessOption, "unknown access method"));
offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fSignedTag(tvb, pinfo, subtree, offset, val_to_str_const(tag_no, BACnetFileStartOption, "unknown option"));
- offset = fUnsignedTag(tvb, pinfo, subtree, offset, val_to_str_const(tag_no, BACnetFileRequestCount, "unknown option"));
+ offset = fUnsignedTag(tvb, pinfo, subtree, offset, val_to_str_const(tag_no, BacnetFileRequestedCount, "unknown option"));
offset += fTagHeaderTree(tvb, pinfo, subtree, offset, &tag_no, &tag_info, &lvt);
}
return offset;
@@ -16554,13 +16564,13 @@ dissect_bacapp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _
gint8 ack = 0;
/* Strings for BACnet Statistics */
- const gchar errstr[] = "ERROR: ";
- const gchar rejstr[] = "REJECTED: ";
- const gchar abortstr[] = "ABORTED: ";
- const gchar sackstr[] = " (SimpleAck)";
- const gchar cackstr[] = " (ComplexAck)";
- const gchar uconfsreqstr[] = " (Unconfirmed Service Request)";
- const gchar confsreqstr[] = " (Confirmed Service Request)";
+ static const gchar errstr[] = "ERROR: ";
+ static const gchar rejstr[] = "REJECTED: ";
+ static const gchar abortstr[] = "ABORTED: ";
+ static const gchar sackstr[] = " (SimpleAck)";
+ static const gchar cackstr[] = " (ComplexAck)";
+ static const gchar uconfsreqstr[] = " (Unconfirmed Service Request)";
+ static const gchar confsreqstr[] = " (Confirmed Service Request)";
col_set_str(pinfo->cinfo, COL_PROTOCOL, "BACnet-APDU");
col_clear(pinfo->cinfo, COL_INFO);
diff --git a/epan/dissectors/packet-bacnet.c b/epan/dissectors/packet-bacnet.c
index 233d374cfe..8a4836d5ce 100644
--- a/epan/dissectors/packet-bacnet.c
+++ b/epan/dissectors/packet-bacnet.c
@@ -303,7 +303,7 @@ static gint ett_bacnet_control;
static gint ett_bacnet_wrapper_control;
static gint ett_bacnet_update_control;
-static dissector_handle_t bacnet_handle = NULL;
+static dissector_handle_t bacnet_handle;
static int * const control_flags[] = {
&hf_bacnet_control_net,
@@ -344,7 +344,7 @@ static int * const wrapper_control_flags[] = {
int
bacnet_dissect_sec_wrapper(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- gint offset, gboolean *pis_net_msg_flg)
+ gint offset, bool *pis_net_msg_flg)
{
guint8 bacnet_dlen;
guint8 bacnet_wrapper_control;
@@ -732,7 +732,7 @@ dissect_bacnet_npdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint of
/* Security-Payload */
case BAC_NET_SECUR_PAY:
{
- gboolean is_net_msg_flg;
+ bool is_net_msg_flg;
guint16 bacnet_len;
offset = bacnet_dissect_sec_wrapper(tvb, pinfo, tree, offset, &is_net_msg_flg);
@@ -1272,13 +1272,13 @@ proto_register_bacnet(void)
{ "Termination Time Value (seconds)",
"bacnet.term_time_value",
FT_UINT8, BASE_DEC, NULL, 0,
- "Termination Time Value", HFILL }
+ NULL, HFILL }
},
{ &hf_bacnet_netno_status,
{ "Network number status (enumerated)",
"bacnet.netno_status",
FT_UINT8, BASE_DEC, NULL, 0,
- "Network number status", HFILL }
+ NULL, HFILL }
},
{ &hf_bacnet_wrapper_control,
{ "Wrapper control",
diff --git a/epan/dissectors/packet-bacnet.h b/epan/dissectors/packet-bacnet.h
index b0851c3445..91bbfabc8d 100644
--- a/epan/dissectors/packet-bacnet.h
+++ b/epan/dissectors/packet-bacnet.h
@@ -12,7 +12,7 @@
extern int
bacnet_dissect_sec_wrapper(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- gint offset, gboolean *pis_net_msg_flg);
+ gint offset, bool *pis_net_msg_flg);
#endif /* __PACKET_BACNET_H__ */
diff --git a/epan/dissectors/packet-beep.c b/epan/dissectors/packet-beep.c
index 8c42455caf..3fb8d129b0 100644
--- a/epan/dissectors/packet-beep.c
+++ b/epan/dissectors/packet-beep.c
@@ -33,8 +33,8 @@ void proto_reg_handoff_beep(void);
static dissector_handle_t beep_handle;
-static range_t *global_beep_tcp_ports = NULL;
-static int global_beep_strict_term = TRUE;
+static range_t *global_beep_tcp_ports;
+static bool global_beep_strict_term = true;
static int proto_beep;
@@ -147,7 +147,7 @@ struct beep_request_val {
int c_mime_hdr, s_mime_hdr;
};
-static wmem_map_t *beep_request_hash = NULL;
+static wmem_map_t *beep_request_hash;
/* Hash Functions */
static gint
diff --git a/epan/dissectors/packet-ber.c b/epan/dissectors/packet-ber.c
index 7d32bc2040..42d175bbbe 100644
--- a/epan/dissectors/packet-ber.c
+++ b/epan/dissectors/packet-ber.c
@@ -185,18 +185,18 @@ static expert_field ei_ber_real_not_primitive;
static dissector_handle_t ber_handle;
static dissector_handle_t ber_file_handle;
-static gboolean show_internal_ber_fields = FALSE;
-static gboolean decode_octetstring_as_ber = FALSE;
-static gboolean decode_primitive_as_ber = FALSE;
-static gboolean decode_unexpected = FALSE;
-static gboolean decode_warning_leading_zero_bits = FALSE;
+static bool show_internal_ber_fields;
+static bool decode_octetstring_as_ber;
+static bool decode_primitive_as_ber;
+static bool decode_unexpected;
+static bool decode_warning_leading_zero_bits;
-static gchar *decode_as_syntax = NULL;
+static gchar *decode_as_syntax;
-static dissector_table_t ber_oid_dissector_table = NULL;
-static dissector_table_t ber_syntax_dissector_table = NULL;
+static dissector_table_t ber_oid_dissector_table;
+static dissector_table_t ber_syntax_dissector_table;
-static GHashTable *syntax_table = NULL;
+static GHashTable *syntax_table;
static gint8 last_class;
static bool last_pc;
@@ -407,18 +407,18 @@ static void ber_populate_list(const gchar *table_name _U_, decode_as_add_to_list
ber_decode_as_foreach(decode_ber_add_to_list, &populate);
}
-static gboolean ber_decode_as_reset(const char *name _U_, gconstpointer pattern _U_)
+static bool ber_decode_as_reset(const char *name _U_, gconstpointer pattern _U_)
{
g_free(decode_as_syntax);
decode_as_syntax = NULL;
- return FALSE;
+ return false;
}
-static gboolean ber_decode_as_change(const char *name _U_, gconstpointer pattern _U_, gconstpointer handle _U_, const gchar* list_name)
+static bool ber_decode_as_change(const char *name _U_, gconstpointer pattern _U_, gconstpointer handle _U_, const gchar* list_name)
{
g_free(decode_as_syntax);
decode_as_syntax = g_strdup(list_name);
- return FALSE;
+ return false;
}
int
@@ -723,6 +723,7 @@ ber_proto_tree_add_item(packet_info *pinfo, proto_tree *tree,
gint length, const guint encoding)
{
header_field_info *hfinfo;
+ proto_item* ti;
hfinfo = proto_registrar_get_nth((guint)hfindex);
if (hfinfo != NULL) {
@@ -791,7 +792,13 @@ ber_proto_tree_add_item(packet_info *pinfo, proto_tree *tree,
return ber_add_bad_length_error(pinfo, tree,
hfinfo->name, tvb, start, length);
break;
-
+ case FT_STRING:
+ if (length == 0) {
+ ti = proto_tree_add_item(tree, hfindex, tvb, start, length, encoding);
+ proto_item_append_text(ti, "<MISSING>");
+ return ti;
+ }
+ break;
default:
break;
}
@@ -4274,7 +4281,7 @@ dissect_ber_file(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
bool
oid_has_dissector(const char *oid) {
- return(dissector_get_string_handle(ber_oid_dissector_table, oid) != NULL);
+ return (dissector_get_string_handle(ber_oid_dissector_table, oid) != NULL);
}
static void
diff --git a/epan/dissectors/packet-bfcp.c b/epan/dissectors/packet-bfcp.c
index bbcc34c812..3c66b4406b 100644
--- a/epan/dissectors/packet-bfcp.c
+++ b/epan/dissectors/packet-bfcp.c
@@ -550,7 +550,7 @@ dissect_bfcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
guint8 primitive;
const gchar *str;
gint bfcp_payload_length;
- gboolean f_bit;
+ bool f_bit;
proto_tree *bfcp_tree;
proto_item *ti;
diff --git a/epan/dissectors/packet-bgp.c b/epan/dissectors/packet-bgp.c
index cc0c16d187..4327fa5806 100644
--- a/epan/dissectors/packet-bgp.c
+++ b/epan/dissectors/packet-bgp.c
@@ -2033,6 +2033,8 @@ static const true_false_string tfs_manually_auto_derived = { "manually derived",
/* Maximal size of an IP address string */
#define MAX_SIZE_OF_IP_ADDR_STRING 16
+static const guint8 rd_zero[BGP_ROUTE_DISTINGUISHER_SIZE] = {0};
+
static int proto_bgp;
/* BGP header field initialisation */
@@ -3144,9 +3146,9 @@ static expert_field ei_bgp_mup_unknown_rt;
static expert_field ei_bgp_mup_nlri_addr_len_err;
/* desegmentation */
-static gboolean bgp_desegment = TRUE;
+static bool bgp_desegment = true;
-static gint bgp_asn_len = 0;
+static gint bgp_asn_len;
/* FF: BGP-LS is just a collector of IGP link state information. Some
fields are encoded "as-is" from the IGP, hence in order to dissect
@@ -3365,7 +3367,7 @@ decode_path_prefix4(proto_tree *tree, packet_info *pinfo, int hf_path_id, int hf
proto_tree_add_item(prefix_tree, hf_path_id, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(prefix_tree, hf_bgp_prefix_length, tvb, offset + 4, 1, ENC_BIG_ENDIAN);
proto_tree_add_ipv4(prefix_tree, hf_addr, tvb, offset + 4 + 1, length, ip_addr);
- return(4 + 1 + length);
+ return 4 + 1 + length;
}
/*
@@ -3402,7 +3404,7 @@ decode_prefix4(proto_tree *tree, packet_info *pinfo, proto_item *parent_item, in
proto_tree_add_uint_format(prefix_tree, hf_bgp_prefix_length, tvb, offset, 1, plen, "%s prefix length: %u",
tag, plen);
proto_tree_add_ipv4(prefix_tree, hf_addr, tvb, offset + 1, length, ip_addr);
- return(1 + length);
+ return 1 + length;
}
/*
@@ -3440,7 +3442,7 @@ decode_path_prefix6(proto_tree *tree, packet_info *pinfo, int hf_path_id, int hf
tag, plen);
proto_tree_add_ipv6(prefix_tree, hf_addr, tvb, offset + 4 + 1, length, &addr);
- return(4 + 1 + length);
+ return 4 + 1 + length;
}
/*
@@ -3473,7 +3475,7 @@ decode_prefix6(proto_tree *tree, packet_info *pinfo, int hf_addr, tvbuff_t *tvb,
proto_tree_add_uint_format(prefix_tree, hf_bgp_prefix_length, tvb, offset, 1, plen, "%s prefix length: %u",
tag, plen);
proto_tree_add_ipv6(prefix_tree, hf_addr, tvb, offset + 1, length, &addr);
- return(1 + length);
+ return 1 + length;
}
static int
@@ -3513,7 +3515,7 @@ decode_fspec_match_prefix6(proto_tree *tree, proto_item *parent_item, int hf_add
if (parent_item != NULL)
proto_item_append_text(parent_item, " (%s/%u)",
address_to_str(pinfo->pool, &addr_str), plen);
- return(2 + length);
+ return 2 + length;
}
const char*
@@ -3924,7 +3926,7 @@ decode_flowspec_nlri(proto_tree *tree, tvbuff_t *tvb, gint offset, guint16 afi,
if (afi != AFNUM_INET && afi != AFNUM_INET6)
{
expert_add_info(pinfo, NULL, &ei_bgp_afi_type_not_supported);
- return(-1);
+ return -1;
}
tot_flow_len = tvb_get_guint8(tvb, offset);
@@ -4070,7 +4072,7 @@ decode_flowspec_nlri(proto_tree *tree, tvbuff_t *tvb, gint offset, guint16 afi,
break;
proto_item_set_len(filter_item,filter_len+1);
}
- return(tot_flow_len+offset_len-1);
+ return tot_flow_len+offset_len-1;
}
/*
@@ -4296,7 +4298,7 @@ decode_MPLS_stack(tvbuff_t *tvb, gint offset, wmem_strbuf_t *stack_strbuf)
/* withdrawn routes may contain 0 or 0x800000 in the first label */
if((indx == offset)&&(label_entry==0||label_entry==0x800000)) {
wmem_strbuf_append(stack_strbuf, "0 (withdrawn)");
- return (1);
+ return 1;
}
wmem_strbuf_append_printf(stack_strbuf, "%u%s", label_entry >> 4,
@@ -4305,7 +4307,7 @@ decode_MPLS_stack(tvbuff_t *tvb, gint offset, wmem_strbuf_t *stack_strbuf)
indx += 3 ;
}
- return((indx - offset) / 3);
+ return (indx - offset) / 3;
}
static guint
@@ -4330,7 +4332,7 @@ decode_MPLS_stack_tree(tvbuff_t *tvb, gint offset, proto_tree *parent_tree)
if((indx == offset)&&(label_entry==0||label_entry==0x800000)) {
proto_item_append_text(labels_item, " (withdrawn)");
proto_item_append_text(label_item, " (withdrawn)");
- return (1);
+ return 1;
}
proto_item_append_text(labels_item, "%u%s", label_entry >> 4,
@@ -4346,7 +4348,7 @@ decode_MPLS_stack_tree(tvbuff_t *tvb, gint offset, proto_tree *parent_tree)
}
}
proto_item_set_len(labels_item, (indx - offset));
- return((indx - offset) / 3);
+ return (indx - offset) / 3;
}
/*
@@ -4377,8 +4379,6 @@ decode_mp_next_hop_vpn_ipv4(tvbuff_t *tvb, proto_tree *tree, gint offset, packet
{
proto_item *ti;
const char *rd_string;
- const guint8 rd_zero[] = {0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00 };
switch (nhlen) {
case (BGP_ROUTE_DISTINGUISHER_SIZE + FT_IPv4_LEN):
@@ -4444,8 +4444,6 @@ decode_mp_next_hop_vpn_ipv6(tvbuff_t *tvb, proto_tree *tree, gint offset, packet
{
proto_item *ti;
const char *rd_string;
- const guint8 rd_zero[] = {0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00 };
ws_in6_addr ipv6_addr;
char ipv6_buffer[WS_INET6_ADDRSTRLEN];
@@ -6030,7 +6028,7 @@ decode_link_state_attribute_tlv(proto_tree *tree, tvbuff_t *tvb, gint offset, pa
proto_tree_add_item(tlv_tree, hf_bgp_ls_sr_tlv_srv6_endx_sid_reserved, tvb, offset + 9, 1, ENC_BIG_ENDIAN);
local_offset = offset + 10;
if (protocol_id == BGP_LS_NLRI_PROTO_ID_OSPF) {
- proto_tree_add_item(tlv_tree, hf_bgp_ls_sr_tlv_srv6_endx_sid_neighbor_ospf, tvb, local_offset, 6, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tlv_tree, hf_bgp_ls_sr_tlv_srv6_endx_sid_neighbor_ospf, tvb, local_offset, 4, ENC_BIG_ENDIAN);
local_offset += 4;
} else {
/* FF: most common case is IS-IS, so if it is not OSPF we go that way */
@@ -6521,7 +6519,7 @@ static int decode_evpn_nlri_esi(proto_tree *tree, tvbuff_t *tvb, gint offset, pa
"Invalid EVPN ESI (%u)!", esi_type);
return (-1);
}
- return(0);
+ return 0;
}
/*
@@ -7642,7 +7640,7 @@ decode_prefix_MP(proto_tree *tree, int hf_path_id, int hf_addr4, int hf_addr6,
case SAFNUM_FSPEC_VPN_RULE:
total_length = decode_flowspec_nlri(tree, tvb, offset, afi, safi, pinfo);
if(total_length < 0)
- return(-1);
+ return -1;
total_length++;
break;
case SAFNUM_BGP_MUP:
@@ -7839,7 +7837,7 @@ decode_prefix_MP(proto_tree *tree, int hf_path_id, int hf_addr4, int hf_addr6,
case SAFNUM_FSPEC_VPN_RULE:
total_length = decode_flowspec_nlri(tree, tvb, offset, afi, safi, pinfo);
if(total_length < 0)
- return(-1);
+ return -1;
total_length++;
break;
default:
@@ -8134,7 +8132,7 @@ decode_prefix_MP(proto_tree *tree, int hf_path_id, int hf_addr4, int hf_addr6,
"Unknown AFI (%u) value", afi);
return -1;
} /* switch (afi) */
- return(total_length);
+ return total_length;
}
/*
@@ -8599,7 +8597,7 @@ heuristic_as2_or_4_from_as_path(tvbuff_t *tvb, gint as_path_offset, gint end_att
counter_as_segment++;
}
*number_as_segment = counter_as_segment;
- return(4);
+ return 4;
}
/* case of user specified ASN length */
if (bgp_asn_len != 0) {
@@ -8618,13 +8616,13 @@ heuristic_as2_or_4_from_as_path(tvbuff_t *tvb, gint as_path_offset, gint end_att
counter_as_segment++;
}
*number_as_segment = counter_as_segment;
- return(bgp_asn_len);
+ return bgp_asn_len;
}
/* case of a empty path attribute */
if (as_path_offset == end_attr_offset)
{
*number_as_segment = 0;
- return(bgp_asn_len);
+ return bgp_asn_len;
}
/* case of we run the heuristic to find the as length */
k_save = k;
@@ -8674,10 +8672,10 @@ heuristic_as2_or_4_from_as_path(tvbuff_t *tvb, gint as_path_offset, gint end_att
if (k == end_attr_offset) {
/* success */
*number_as_segment = counter_as_segment;
- return(assumed_as_len);
+ return assumed_as_len;
} else
/* we are in trouble */
- return(-1);
+ return -1;
}
/*
@@ -9465,7 +9463,7 @@ dissect_bgp_update_ext_com(proto_tree *parent_tree, tvbuff_t *tvb, guint16 tlen,
proto_item_append_text (community_item, " [%s]", val_to_str_const(com_type_high_byte, bgpext_com_type_high, "Unknown community"));
offset = offset + 8;
}
- return(0);
+ return 0;
}
static int
@@ -9590,7 +9588,7 @@ dissect_bgp_update_pmsi_attr(packet_info *pinfo, proto_tree *parent_tree, tvbuff
}
- return(0);
+ return 0;
}
/*
diff --git a/epan/dissectors/packet-bitcoin.c b/epan/dissectors/packet-bitcoin.c
index 81e9efd39c..b24fc1acfe 100644
--- a/epan/dissectors/packet-bitcoin.c
+++ b/epan/dissectors/packet-bitcoin.c
@@ -329,7 +329,7 @@ static expert_field ei_bitcoin_address_length;
static expert_field ei_bitcoin_script_len;
-static gboolean bitcoin_desegment = TRUE;
+static bool bitcoin_desegment = true;
static guint
get_bitcoin_pdu_length(packet_info *pinfo _U_, tvbuff_t *tvb,
diff --git a/epan/dissectors/packet-bittorrent.c b/epan/dissectors/packet-bittorrent.c
index 2977dc2c94..f454b3ce37 100644
--- a/epan/dissectors/packet-bittorrent.c
+++ b/epan/dissectors/packet-bittorrent.c
@@ -172,8 +172,8 @@ static gint ett_bittorrent;
static gint ett_bittorrent_msg;
static gint ett_peer_id;
-static gboolean bittorrent_desegment = TRUE;
-static gboolean decode_client_information = FALSE;
+static bool bittorrent_desegment = true;
+static bool decode_client_information;
struct client_information {
char id[5]; /* string length must be <= 4 to allow space for NUL termination byte */
diff --git a/epan/dissectors/packet-bluetooth.c b/epan/dissectors/packet-bluetooth.c
index 5d48df23dc..f74ed1b48e 100644
--- a/epan/dissectors/packet-bluetooth.c
+++ b/epan/dissectors/packet-bluetooth.c
@@ -55,17 +55,17 @@ static dissector_table_t bluetooth_table;
static dissector_table_t hci_vendor_table;
dissector_table_t bluetooth_uuid_table;
-static wmem_tree_t *chandle_sessions = NULL;
-static wmem_tree_t *chandle_to_bdaddr = NULL;
-static wmem_tree_t *chandle_to_mode = NULL;
-static wmem_tree_t *shandle_to_chandle = NULL;
-static wmem_tree_t *bdaddr_to_name = NULL;
-static wmem_tree_t *bdaddr_to_role = NULL;
-static wmem_tree_t *localhost_name = NULL;
-static wmem_tree_t *localhost_bdaddr = NULL;
-static wmem_tree_t *hci_vendors = NULL;
-
-wmem_tree_t *bluetooth_uuids = NULL;
+static wmem_tree_t *chandle_sessions;
+static wmem_tree_t *chandle_to_bdaddr;
+static wmem_tree_t *chandle_to_mode;
+static wmem_tree_t *shandle_to_chandle;
+static wmem_tree_t *bdaddr_to_name;
+static wmem_tree_t *bdaddr_to_role;
+static wmem_tree_t *localhost_name;
+static wmem_tree_t *localhost_bdaddr;
+static wmem_tree_t *hci_vendors;
+
+wmem_tree_t *bluetooth_uuids;
static int bluetooth_tap;
int bluetooth_device_tap;
diff --git a/epan/dissectors/packet-bmp.c b/epan/dissectors/packet-bmp.c
index 55907e92e7..92c96a9787 100644
--- a/epan/dissectors/packet-bmp.c
+++ b/epan/dissectors/packet-bmp.c
@@ -460,7 +460,7 @@ static dissector_handle_t bmp_handle;
static dissector_handle_t dissector_bgp;
/* desegmentation */
-static gboolean bmp_desegment = TRUE;
+static bool bmp_desegment = true;
typedef struct bmpv4_tlv_info {
guint16 type;
diff --git a/epan/dissectors/packet-bootparams.c b/epan/dissectors/packet-bootparams.c
index 5766293dd2..0f23da7062 100644
--- a/epan/dissectors/packet-bootparams.c
+++ b/epan/dissectors/packet-bootparams.c
@@ -160,7 +160,7 @@ proto_register_bootparams(void)
NULL, 0, NULL, HFILL }},
{ &hf_bootparams_hostaddr, {
"Client Address", "bootparams.hostaddr", FT_IPv4, BASE_NONE,
- NULL, 0, "Address", HFILL }},
+ NULL, 0, NULL, HFILL }},
{ &hf_bootparams_routeraddr, {
"Router Address", "bootparams.routeraddr", FT_IPv4, BASE_NONE,
NULL, 0, NULL, HFILL }},
diff --git a/epan/dissectors/packet-bpdu.c b/epan/dissectors/packet-bpdu.c
index 4e745c918d..0a794e0e84 100644
--- a/epan/dissectors/packet-bpdu.c
+++ b/epan/dissectors/packet-bpdu.c
@@ -181,13 +181,13 @@ static expert_field ei_bpdu_type;
static expert_field ei_bpdu_version_support;
-static gboolean bpdu_use_system_id_extensions = TRUE;
+static bool bpdu_use_system_id_extensions = true;
static dissector_handle_t gvrp_handle;
static dissector_handle_t gmrp_handle;
-static dissector_handle_t bpdu_handle = NULL;
-static dissector_handle_t bpdu_cisco_handle = NULL;
+static dissector_handle_t bpdu_handle;
+static dissector_handle_t bpdu_cisco_handle;
static const value_string protocol_id_vals[] = {
{ 0, "Spanning Tree Protocol" },
diff --git a/epan/dissectors/packet-bpq.c b/epan/dissectors/packet-bpq.c
index bef1260c77..cde8fe813c 100644
--- a/epan/dissectors/packet-bpq.c
+++ b/epan/dissectors/packet-bpq.c
@@ -90,7 +90,7 @@ dissect_bpq( tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
return tvb_captured_length(tvb);
}
-static gboolean
+static bool
capture_bpq( const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
int l_offset;
diff --git a/epan/dissectors/packet-bpsec.c b/epan/dissectors/packet-bpsec.c
index 5b1cca3e6d..5164bb3909 100644
--- a/epan/dissectors/packet-bpsec.c
+++ b/epan/dissectors/packet-bpsec.c
@@ -36,10 +36,10 @@ void proto_reg_handoff_bpsec(void);
static int proto_bpsec;
/// Dissect opaque CBOR data
-static dissector_handle_t handle_cbor = NULL;
+static dissector_handle_t handle_cbor;
/// Extension sub-dissectors
-static dissector_table_t param_dissectors = NULL;
-static dissector_table_t result_dissectors = NULL;
+static dissector_table_t param_dissectors;
+static dissector_table_t result_dissectors;
static const val64_string shavar_vals[] = {
{5, "HMAC 256/256"},
diff --git a/epan/dissectors/packet-bpv6.c b/epan/dissectors/packet-bpv6.c
index 39c19a22c6..08a5609805 100644
--- a/epan/dissectors/packet-bpv6.c
+++ b/epan/dissectors/packet-bpv6.c
@@ -68,9 +68,9 @@ static gint64
evaluate_sdnv_64(tvbuff_t *tvb, int offset, int *bytecount);
static int proto_bundle;
-static dissector_handle_t bundle_handle = NULL;
-static dissector_handle_t bpv6_handle = NULL;
-static dissector_handle_t bpv7_handle = NULL;
+static dissector_handle_t bundle_handle;
+static dissector_handle_t bpv6_handle;
+static dissector_handle_t bpv7_handle;
static int hf_bundle_pdu_version;
@@ -1925,7 +1925,7 @@ dissect_bpv6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
if (primary_header_size == 0) { /*Couldn't parse primary header*/
col_add_str(pinfo->cinfo, COL_INFO, "Protocol Error");
- return(0); /*Give up*/
+ return 0; /*Give up*/
}
proto_item_set_len(ti, primary_header_size);
@@ -1953,7 +1953,7 @@ dissect_bpv6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
proto_item_set_len(ti_bundle_protocol, offset);
- return(offset);
+ return offset;
}
/// Introspect the data to choose a dissector version
diff --git a/epan/dissectors/packet-bpv7.c b/epan/dissectors/packet-bpv7.c
index b412db80a3..424bbab5a7 100644
--- a/epan/dissectors/packet-bpv7.c
+++ b/epan/dissectors/packet-bpv7.c
@@ -41,9 +41,9 @@ static const char *const proto_name_bp = "BPv7";
static const char *const proto_name_bp_admin = "BPv7 Admin";
/// Protocol preferences and defaults
-static gboolean bp_compute_crc = TRUE;
-static gboolean bp_reassemble_payload = TRUE;
-static gboolean bp_payload_try_heur = FALSE;
+static bool bp_compute_crc = true;
+static bool bp_reassemble_payload = true;
+static bool bp_payload_try_heur;
/// Protocol handles
static int proto_bp;
@@ -52,20 +52,20 @@ static int proto_blocktype;
static int proto_bp_admin;
static int proto_admintype;
/// Protocol-level data
-static bp_history_t *bp_history = NULL;
+static bp_history_t *bp_history;
-static dissector_handle_t handle_admin = NULL;
+static dissector_handle_t handle_admin;
/// Dissect opaque CBOR data
-static dissector_handle_t handle_cbor = NULL;
-static dissector_handle_t handle_cborseq = NULL;
+static dissector_handle_t handle_cbor;
+static dissector_handle_t handle_cborseq;
/// Extension sub-dissectors
-static dissector_table_t block_dissectors = NULL;
-static dissector_table_t payload_dissectors_dtn_wkssp = NULL;
-static dissector_table_t payload_dissectors_dtn_serv = NULL;
-static dissector_table_t payload_dissectors_ipn_serv = NULL;
-static dissector_table_t admin_dissectors = NULL;
+static dissector_table_t block_dissectors;
+static dissector_table_t payload_dissectors_dtn_wkssp;
+static dissector_table_t payload_dissectors_dtn_serv;
+static dissector_table_t payload_dissectors_ipn_serv;
+static dissector_table_t admin_dissectors;
/// BTSD heuristic
-static heur_dissector_list_t btsd_heur = NULL;
+static heur_dissector_list_t btsd_heur;
/// Fragment reassembly
static reassembly_table bp_reassembly_table;
@@ -1682,7 +1682,7 @@ static gboolean dissect_status_assertion(proto_tree *tree, int hfassert, packet_
proto_tree *tree_assert = proto_item_add_subtree(item_assert, ett_status_assert);
wscbor_chunk_t *chunk = wscbor_chunk_read(pinfo->pool, tvb, offset);
- gboolean *status_val = wscbor_require_boolean(pinfo->pool, chunk);
+ bool *status_val = wscbor_require_boolean(pinfo->pool, chunk);
proto_tree_add_cbor_boolean(tree_assert, hf_status_assert_val, pinfo, tvb, chunk, status_val);
if (status_val) {
result = *status_val;
@@ -2214,7 +2214,7 @@ static tap_packet_status bp_conv_packet(void *pct, packet_info *pinfo, epan_diss
0, 0,
1, pinfo->fd->pkt_len,
&pinfo->rel_ts, &pinfo->abs_ts,
- &bp_ct_dissector_info, ENDPOINT_NONE
+ &bp_ct_dissector_info, CONVERSATION_NONE
);
return TAP_PACKET_REDRAW;
@@ -2257,7 +2257,7 @@ static tap_packet_status bp_endp_packet(void *pit, packet_info *pinfo, epan_diss
return TAP_PACKET_REDRAW;
}
-static gboolean bp_filter_valid(packet_info *pinfo, void *user_data _U_) {
+static bool bp_filter_valid(packet_info *pinfo, void *user_data _U_) {
const bp_bundle_t *bundle = p_get_proto_data(pinfo->pool, pinfo, proto_bp, PROTO_DATA_BUNDLE);
return bundle != NULL;
}
diff --git a/epan/dissectors/packet-brdwlk.c b/epan/dissectors/packet-brdwlk.c
index d2074d2bb7..e1be22b50d 100644
--- a/epan/dissectors/packet-brdwlk.c
+++ b/epan/dissectors/packet-brdwlk.c
@@ -86,7 +86,7 @@ static gint ett_brdwlk_error;
static gint proto_brdwlk;
-static guint16 packet_count = 0;
+static guint16 packet_count;
static gboolean first_pkt = TRUE; /* start of capture */
static dissector_handle_t fc_dissector_handle;
diff --git a/epan/dissectors/packet-bssap.c b/epan/dissectors/packet-bssap.c
index 949e333e40..16c3b9eaac 100644
--- a/epan/dissectors/packet-bssap.c
+++ b/epan/dissectors/packet-bssap.c
@@ -462,7 +462,7 @@ dissect_bssap_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bssap_tre
break;
}
- return(parameter_length);
+ return parameter_length;
}
static guint16
@@ -481,7 +481,7 @@ dissect_bssap_var_parameter(tvbuff_t *tvb, packet_info *pinfo,
dissect_bssap_parameter(tvb, pinfo, bssap_tree, tree, parameter_type,
offset, parameter_length, sccp_info);
- return(parameter_length + length_length);
+ return parameter_length + length_length;
}
static int
@@ -2126,21 +2126,21 @@ dissect_bssap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
{
case 0x00:
if (tvb_get_guint8(tvb, 1) != (tvb_reported_length(tvb) - 2)) {
- return(FALSE);
+ return FALSE;
}
if (tvb_get_guint8(tvb, 2) == 0x40 && tvb_get_guint8(tvb, 3) != 0x01) {
- return(FALSE);
+ return FALSE;
}
break;
case 0x01:
if (tvb_get_guint8(tvb, 2) != (tvb_reported_length(tvb) - 3)) {
- return(FALSE);
+ return FALSE;
}
break;
default:
- return(FALSE);
+ return FALSE;
}
switch (default_protocol_global) {
@@ -2159,7 +2159,7 @@ dissect_bssap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
}
- return(TRUE);
+ return TRUE;
}
/* Register the protocol with Wireshark */
diff --git a/epan/dissectors/packet-bssgp.c b/epan/dissectors/packet-bssgp.c
index 5183524222..384389abec 100644
--- a/epan/dissectors/packet-bssgp.c
+++ b/epan/dissectors/packet-bssgp.c
@@ -621,7 +621,7 @@ de_bssgp_aligment_octets(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
proto_tree_add_item(tree, hf_bssgp_spare, tvb, curr_offset, len, ENC_NA);
- return(len);
+ return len;
}
/*
@@ -637,7 +637,7 @@ de_bssgp_bmax_default_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
proto_tree_add_item(tree, hf_bssgp_bmax, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.3 BSS Area Indication
@@ -652,7 +652,7 @@ de_bssgp_bss_area_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
proto_tree_add_item(tree, hf_bssgp_bss_area_ind, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.4 Bucket Leak Rate (R)
@@ -667,7 +667,7 @@ de_bssgp_bucket_leak_rate(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_item(tree, hf_bssgp_r, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.5 BVC Bucket Size
@@ -682,7 +682,7 @@ de_bssgp_bvc_bucket_size(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
proto_tree_add_item(tree, hf_bssgp_bucket_size, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.6 BVCI (BSSGP Virtual Connection Identifier)
@@ -704,7 +704,7 @@ de_bssgp_bvci(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
snprintf(add_string, string_len, " - 0x%x", bvci);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.7 BVC Measurement
@@ -723,7 +723,7 @@ de_bssgp_bvc_meas(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_item(tree, hf_bssgp_delay_val, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.8 Cause
@@ -826,7 +826,7 @@ de_bssgp_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_bssgp_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset+=1;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.9 Cell Identifier
@@ -861,7 +861,7 @@ de_bssgp_cell_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
g_free(str);
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.10 Channel needed
@@ -882,7 +882,7 @@ de_bssgp_chnl_needed(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint3
curr_offset = de_rr_chnl_needed(tvb, tree, pinfo, curr_offset, len , NULL, 0);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -927,7 +927,7 @@ de_bssgp_flush_action(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
snprintf(add_string, string_len, " - %s", val_to_str_const(oct, bssgp_flush_action_vals, "Reserved"));
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.14 IMSI
@@ -963,7 +963,7 @@ de_bssgp_llc_pdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
}
}
- return(len);
+ return len;
}
/*
* 11.3.16 LLC Frames Discarded
@@ -984,7 +984,7 @@ de_bssgp_llc_frames_disc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
if (add_string)
snprintf(add_string, string_len, " - %u Frames", oct);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.17 Location Area
@@ -1029,7 +1029,7 @@ de_bssgp_ms_bucket_size(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_bssgp_bucket_size, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.22 MS Radio Access Capability
@@ -1084,7 +1084,7 @@ de_bssgp_pdu_lifetime(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
proto_tree_add_item(tree, hf_bssgp_delay_val, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1217,7 +1217,7 @@ de_bssgp_qos_profile(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint3
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.29 Radio Cause
@@ -1242,7 +1242,7 @@ de_bssgp_ra_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_item(tree, hf_bssgp_ra_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1266,7 +1266,7 @@ de_bssgp_ra_cap_upd_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_item(tree, hf_bssgp_ra_cap_upd_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1289,7 +1289,7 @@ de_bssgp_r_default_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
proto_tree_add_item(tree, hf_bssgp_r_default_ms, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1307,7 +1307,7 @@ de_bssgp_suspend_ref_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.34 Tag
@@ -1325,7 +1325,7 @@ de_bssgp_tag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1355,7 +1355,7 @@ de_bssgp_trace_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1372,7 +1372,7 @@ de_bssgp_trace_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_bssgp_trace_type_data, tvb, curr_offset, len, ENC_NA);
- return(len);
+ return len;
}
/*
* 11.3.39 Transaction Id
@@ -1386,7 +1386,7 @@ de_bssgp_transaction_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_bssgp_transaction_id, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.40 Trigger Id
@@ -1400,7 +1400,7 @@ de_bssgp_trigger_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_bssgp_trigger_id, tvb, curr_offset, len, ENC_NA);
- return(len);
+ return len;
}
/*
* 11.3.41 Number of octets affected
@@ -1422,7 +1422,7 @@ de_bssgp_no_of_oct_affected(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
if (add_string)
snprintf(add_string, string_len, " - %u", no_of_oct);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.42 Packet Flow Identifier (PFI)
@@ -1472,7 +1472,7 @@ de_bssgp_gprs_timer(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.45 Feature Bitmap
@@ -1502,7 +1502,7 @@ de_bssgp_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.46 Bucket Full Ratio
@@ -1519,7 +1519,7 @@ de_bssgp_bucket_full_ratio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.47 Service UTRAN CCO
@@ -1555,7 +1555,7 @@ de_bssgp_serv_utran_cco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_bssgp_serv_utran_cco, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1576,7 +1576,7 @@ de_bssgp_nsei(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offse
col_append_sep_fstr(pinfo->cinfo, COL_INFO, BSSGP_SEP, "NSEI %u", nsei);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.49 RRLP APDU
@@ -1607,7 +1607,7 @@ de_bssgp_rrlp_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
call_data_dissector(next_tvb, pinfo, gparent_tree);
}
}
- return(len);
+ return len;
}
/*
@@ -1699,7 +1699,7 @@ de_bssgp_rrlp_flags(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
/* Flag 1 (Octet 3, bit 1): */
proto_tree_add_item(tree, hf_bssgp_rrlp_flag1, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1728,7 +1728,7 @@ de_bssgp_rim_app_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_bssgp_rim_app_id, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1745,7 +1745,7 @@ de_bssgp_rim_seq_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_bssgp_rim_seq_no, tvb, curr_offset, 4, ENC_BIG_ENDIAN);
curr_offset+=4;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.62a RIM Container
@@ -1821,7 +1821,7 @@ de_bssgp_ran_information_request_app_cont(tvbuff_t *tvb, proto_tree *tree, packe
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -1977,13 +1977,13 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, packet_i
/*Falltrough */
case 4:
/* RAN-INFORMATION/End PDU*/
- return(curr_offset - offset);
+ return curr_offset-offset;
break;
default:
break;
}
proto_tree_add_expert_format(tree, pinfo, &ei_bssgp_ran_inf_app_cont_utra_si, tvb, curr_offset-1, 1, "UTRA SI Container - not present");
- return(curr_offset - offset);
+ return curr_offset-offset;
}
new_tvb = tvb_new_subset_length(tvb, curr_offset, (len - (curr_offset - offset)));
call_dissector_only(rrc_sys_info_cont_handle, new_tvb, pinfo, tree, NULL);
@@ -1997,7 +1997,7 @@ de_bssgp_ran_information_app_cont_unit(tvbuff_t *tvb, proto_tree *tree, packet_i
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.64 Application Error Container
@@ -2097,7 +2097,7 @@ de_bssgp_ran_app_error_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
proto_tree_add_expert(tree, pinfo, &ei_bssgp_unknown_app_container, tvb, curr_offset, len);
break;
}
- return(len);
+ return len;
}
/*
@@ -2164,7 +2164,7 @@ de_bssgp_rim_pdu_indications(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
break;
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -2194,7 +2194,7 @@ de_bssgp_rim_proto_ver_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_item(tree, hf_bssgp_rim_proto_ver_no, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -2254,7 +2254,7 @@ de_bssgp_pfc_flow_ctrl(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guin
curr_offset++;
}
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.69 Global CN-Id
@@ -2360,7 +2360,7 @@ de_bssgp_mbms_session_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
proto_tree_add_item(tree, hf_bssgp_mbms_session_id, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.72 MBMS Session Duration
@@ -2377,7 +2377,7 @@ de_bssgp_mbms_session_dur(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
new_tvb =tvb_new_subset_length(tvb, offset, len);
dissector_try_uint(diameter_3gpp_avp_dissector_table, 904, new_tvb, pinfo, tree);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.73 MBMS Service Area Identity List
@@ -2398,7 +2398,7 @@ de_bssgp_mbms_sai_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guin
new_tvb =tvb_new_subset_length(tvb, offset, len);
dissector_try_uint(diameter_3gpp_avp_dissector_table, 903, new_tvb, pinfo, tree);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.74 MBMS Response
@@ -2437,7 +2437,7 @@ de_bssgp_mbms_response(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_bssgp_mbms_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.75 MBMS Routing Area List
@@ -2491,7 +2491,7 @@ de_bssgp_mbms_ra_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint
curr_offset+=8;
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -2513,7 +2513,7 @@ de_bssgp_mbms_session_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_item(tree, hf_bssgp_session_inf, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.77 TMGI (Temporary Mobile Group Identity)
@@ -2557,7 +2557,7 @@ de_bssgp_mbms_stop_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
proto_tree_add_item(tree, hf_bssgp_mbms_stop_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.79 Source BSS to Target BSS Transparent Container
@@ -2642,7 +2642,7 @@ de_bssgp_pfcs_to_be_set_up_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
curr_offset += 3;
}
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.83 List of set-up PFCs
@@ -2677,7 +2677,7 @@ de_bssgp_list_of_setup_pfcs(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.84 Extended Feature Bitmap
@@ -2704,7 +2704,7 @@ de_bssgp_ext_feature_bitmap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
ett_bssgp_extended_feature_bitmap, bssgp_ext_feature_bitmap_fields, ENC_BIG_ENDIAN, BMT_NO_APPEND);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.85 Source to Target Transparent Container
@@ -2723,7 +2723,7 @@ de_bssgp_src_to_trg_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
*/
proto_tree_add_item(tree, hf_bssgp_src_to_trg_transp_cont, tvb, curr_offset, len, ENC_NA);
- return(len);
+ return len;
}
/*
@@ -2746,7 +2746,7 @@ de_bssgp_trg_to_src_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
*/
proto_tree_add_item(tree, hf_bssgp_trg_to_src_transp_cont, tvb, curr_offset, len, ENC_NA);
- return(len);
+ return len;
}
/*
@@ -2774,7 +2774,7 @@ de_bssgp_rnc_identifier(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
g_free(str);
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -2799,7 +2799,7 @@ de_bssgp_page_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_bssgp_page_mode, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.89 Container ID
@@ -2814,7 +2814,7 @@ de_bssgp_container_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
proto_tree_add_item(tree, hf_bssgp_container_id, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -2861,7 +2861,7 @@ de_bssgp_global_tfi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
}
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.91 IMEI
@@ -2885,7 +2885,7 @@ de_bssgp_time_to_MBMS_data_tran(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
value = tvb_get_guint8(tvb,curr_offset) + 1;
proto_tree_add_uint(tree, hf_bssgp_time_to_MBMS_data_tran, tvb, curr_offset, 1, value);
- return(len);
+ return len;
}
/*
* 11.3.93 MBMS Session Repetition Number
@@ -2900,7 +2900,7 @@ de_bssgp_mbms_session_rep_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
proto_tree_add_item(tree, hf_bssgp_mbms_session_rep_no, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(len);
+ return len;
}
/*
* 11.3.94 Inter RAT Handover Info
@@ -2920,7 +2920,7 @@ de_bssgp_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
*/
dissect_rrc_InterRATHandoverInfo_PDU(new_tvb, pinfo, tree, NULL);
- return(len);
+ return len;
}
/*
* 11.3.95 PS Handover Command
@@ -2939,7 +2939,7 @@ de_bssgp_ps_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_bssgp_ps_ho_cmd, tvb, curr_offset, len, ENC_NA);
- return(len);
+ return len;
}
/*
@@ -2956,7 +2956,7 @@ de_bssgp_ps_ho_indications(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
proto_tree_add_item(tree, hf_bssgp_sipsi, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -2998,7 +2998,7 @@ de_bssgp_sipsi_container(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
}
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.95c Active PFCs List
@@ -3033,7 +3033,7 @@ de_bssgp_active_pfcs_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.96 Velocity Data
@@ -3051,7 +3051,7 @@ de_bssgp_velocity_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guin
*/
curr_offset = dissect_description_of_velocity(tvb, tree, pinfo, curr_offset, len, add_string, string_len);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.97 DTM Handover Command
@@ -3069,7 +3069,7 @@ de_bssgp_dtm_ho_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
*/
proto_tree_add_item(tree, hf_bssgp_dtm_handover_command_data, tvb, curr_offset, len, ENC_NA);
- return(len);
+ return len;
}
/*
* 11.3.98 CS Indication
@@ -3090,7 +3090,7 @@ de_bssgp_cs_indication(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_bssgp_cs_indication, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.99 Requested GANSS Assistance Data
@@ -3136,7 +3136,7 @@ de_bssgp_flow_control_gran(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
proto_tree_add_item(tree, hf_bssgp_flow_control_gran, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.103 eNB Identifier
@@ -3159,7 +3159,7 @@ de_bssgp_enb_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
dissect_s1ap_Global_ENB_ID_PDU(new_tvb, pinfo, tree, NULL);
- return(len);
+ return len;
}
/*
* 11.3.104 E-UTRAN Inter RAT Handover Info
@@ -3181,7 +3181,7 @@ de_bssgp_e_utran_inter_rat_ho_info(tvbuff_t *tvb, proto_tree *tree, packet_info
*/
dissect_lte_rrc_UE_EUTRA_Capability_PDU(new_tvb, pinfo, tree, NULL);
- return(len);
+ return len;
}
/*
* 11.3.105 Subscriber Profile ID for RAT/Frequency priority
@@ -3203,7 +3203,7 @@ de_bssgp_sub_prof_id_f_rat_freq_prio(tvbuff_t *tvb, proto_tree *tree, packet_inf
proto_tree_add_uint(tree, hf_bssgp_sub_prof_id_f_rat_freq_prio, tvb, curr_offset, 1, value);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.106 Request for Inter-RAT Handover Info
@@ -3220,7 +3220,7 @@ de_bssgp_req_for_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *
proto_tree_add_item(tree, hf_bssgp_irat_ho_inf_req, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.107 Reliable Inter-RAT Handover Info
@@ -3236,7 +3236,7 @@ de_bssgp_reliable_inter_rat_ho_inf(tvbuff_t *tvb, proto_tree *tree, packet_info
proto_tree_add_item(tree, hf_bssgp_rel_int_rat_ho_inf_ind, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.108 SON Transfer Application Identity
@@ -3254,7 +3254,7 @@ de_bssgp_son_transfer_app_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
dissect_s1ap_SONtransferApplicationIdentity_PDU(next_tvb, pinfo, tree, NULL);
}
- return(len);
+ return len;
}
/*
* 11.3.109 CSG Identifier
@@ -3284,7 +3284,7 @@ de_bssgp_csg_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_bssgp_cell_acc_mode, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.110 Tracking Area Code
@@ -3307,7 +3307,7 @@ de_bssgp_redir_attempt_flg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
proto_tree_add_item(tree, hf_bssgp_spare, tvb, curr_offset, 1, ENC_NA);
curr_offset += 1;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -3347,7 +3347,7 @@ de_bssgp_redir_indication(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_item(tree, hf_bssgp_redir_indication_reroute_reject_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset += 1;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -3372,7 +3372,7 @@ de_bssgp_redir_complete(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_bssgp_redir_complete_outcome, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset += 1;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -3401,7 +3401,7 @@ de_bssgp_sci(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
proto_tree_add_item(tree, hf_bssgp_sci, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -3429,7 +3429,7 @@ de_bssgp_ggsn_pgw_location(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
proto_tree_add_item(tree, hf_bssgp_ggsn_pgw_location, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -3453,7 +3453,7 @@ de_bssgp_pri_class_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_bitmask(tree, tvb, curr_offset, hf_bssgp_prio_class_ind, ett_bssgp_prio_class_ind, bssgp_prio_class_flags, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 11.3.122 Extended DRX parameters
@@ -3484,7 +3484,7 @@ de_bssgp_edrx_params(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
proto_tree_add_item(tree, hf_bssgp_edrx_cycle_value, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -3502,7 +3502,7 @@ de_bssgp_tunpo(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_bssgp_tunpo_seconds, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -3537,7 +3537,7 @@ de_bssgp_coverage_class(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_bssgp_ec_ul_coverage_class, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -3589,7 +3589,7 @@ de_bssgp_pag_attempt_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_item(tree, hf_bssgp_paging_attempt_count, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -4052,7 +4052,7 @@ de_bssgp_ran_inf_request_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *
/* SON Transfer Application Identity (note 2) SON Transfer Application Identity/11.3.108 C TLV 3-m */
ELEM_IN_ELEM_OPT_TELV(0x84, BSSGP_PDU_TYPE, DE_BSSGP_SON_TRANSFER_APP_ID, NULL);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.62a.2 RAN-INFORMATION RIM Container
@@ -4085,7 +4085,7 @@ de_bssgp_ran_inf_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
/* SON Transfer Application Identity (note 2) SON Transfer Application Identity/11.3.108 C TLV 3-m */
ELEM_IN_ELEM_OPT_TELV(0x84, BSSGP_PDU_TYPE, DE_BSSGP_SON_TRANSFER_APP_ID, NULL);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -4113,7 +4113,7 @@ de_bssgp_ran_inf_ack_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
/* SON Transfer Application Identity (note 1) SON Transfer Application Identity/11.3.108 C TLV 3-m */
ELEM_IN_ELEM_OPT_TELV(0x84, BSSGP_PDU_TYPE, DE_BSSGP_SON_TRANSFER_APP_ID, NULL);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.62a.4 RAN-INFORMATION-ERROR RIM Container
@@ -4142,7 +4142,7 @@ de_bssgp_ran_inf_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
/* SON Transfer Application Identity (note 1) SON Transfer Application Identity/11.3.108 C TLV 3-m */
ELEM_IN_ELEM_OPT_TELV(0x84, BSSGP_PDU_TYPE, DE_BSSGP_SON_TRANSFER_APP_ID, NULL);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 11.3.62a.5 RAN-INFORMATION-APPLICATION-ERROR RIM Container
@@ -4173,7 +4173,7 @@ de_bssgp_ran_inf_app_error_rim_cont(tvbuff_t *tvb, proto_tree *tree, packet_info
/* SON Transfer Application Identity (note 1) SON Transfer Application Identity/11.3.108 C TLV 3-m */
ELEM_IN_ELEM_OPT_TELV(0x84, BSSGP_PDU_TYPE, DE_BSSGP_SON_TRANSFER_APP_ID, NULL);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -4210,7 +4210,7 @@ de_bssgp_source_BSS_to_target_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, p
/* E-UTRAN Inter RAT Handover Info E-UTRAN Inter RAT HandoverInfo/11.3.104 O (note 1) TLV 3-? */
ELEM_IN_ELEM_OPT_TELV(0x80, BSSGP_PDU_TYPE, DE_BSSGP_E_UTRAN_INTER_RAT_HO_INFO, NULL);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
@@ -4238,7 +4238,7 @@ de_bssgp_target_BSS_to_source_BSS_transp_cont(tvbuff_t *tvb, proto_tree *tree, p
/* DTM Handover Command DTM Handover Command/11.3.97 O (Note 2) TLV 22-? */
ELEM_IN_ELEM_OPT_TELV(0x79, BSSGP_PDU_TYPE, DE_BSSGP_DTM_HO_CMD, NULL);
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/* MESSAGE FUNCTIONS */
@@ -4305,7 +4305,7 @@ bssgp_dl_unitdata(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 o
/* Old Routing Area Identification (note 12) Old Routing Area Identification/11.3.127 O TLV 8 */
ELEM_OPT_TELV(BSSGP_IEI_OLD_RA_IDENTIFICATION, GSM_A_PDU_TYPE_GM, DE_RAI, " - Old routing area identification");
/* Attach Indicator(note 13) Attach Indicator / 11.3.128 O TLV 3 */
- ELEM_OPT_TELV(BSSGP_IEI_ATTACH_INDIC, GSM_A_PDU_TYPE_GM, DE_BSSGP_ATTACH_INDIC, NULL);
+ ELEM_OPT_TELV(BSSGP_IEI_ATTACH_INDIC, BSSGP_PDU_TYPE, DE_BSSGP_ATTACH_INDIC, NULL);
/* SGSN Group Identity (note 15) SGSN Group Identity/11.3.131 C TLV 5 */
/* Additional P-TMSI (note 15) Additional P-TMSI/11.3.132 C TLV 6 */
diff --git a/epan/dissectors/packet-bt-utp.c b/epan/dissectors/packet-bt-utp.c
index 0cfb53cfb1..2001b3371b 100644
--- a/epan/dissectors/packet-bt-utp.c
+++ b/epan/dissectors/packet-bt-utp.c
@@ -221,14 +221,14 @@ static expert_field ei_extension_len_invalid;
static gint ett_bt_utp;
static gint ett_bt_utp_extension;
-static gboolean enable_version0 = FALSE;
+static bool enable_version0;
static guint max_window_size = V1_MAX_WINDOW_SIZE;
/* XXX: Desegementation and OOO-reassembly are not supported yet */
-static gboolean utp_desegment = FALSE;
+static gboolean utp_desegment;
/*static gboolean utp_reassemble_out_of_order = FALSE;*/
-static gboolean utp_analyze_seq = TRUE;
+static bool utp_analyze_seq = true;
-static guint32 bt_utp_stream_count = 0;
+static guint32 bt_utp_stream_count;
typedef struct _utp_multisegment_pdu {
diff --git a/epan/dissectors/packet-btatt.c b/epan/dissectors/packet-btatt.c
index 7f271dffcd..a7e3d02ca4 100644
--- a/epan/dissectors/packet-btatt.c
+++ b/epan/dissectors/packet-btatt.c
@@ -2136,10 +2136,10 @@ static expert_field ei_btatt_unexpected_data;
static expert_field ei_btatt_undecoded;
static expert_field ei_btatt_invalid_length;
-static wmem_tree_t *mtus = NULL;
-static wmem_tree_t *requests = NULL;
-static wmem_tree_t *fragments = NULL;
-static wmem_tree_t *handle_to_uuid = NULL;
+static wmem_tree_t *mtus;
+static wmem_tree_t *requests;
+static wmem_tree_t *fragments;
+static wmem_tree_t *handle_to_uuid;
static dissector_handle_t btatt_handle;
static dissector_handle_t btgatt_handle;
@@ -4225,19 +4225,34 @@ gboolean bluetooth_gatt_has_no_parameter(guint8 opcode)
opcode == ATT_OPCODE_HANDLE_VALUE_CONFIRMATION;
}
+static int
+get_handle_db_direction(guint8 opcode, int direction)
+{
+ if (is_readable_request(opcode) || is_writeable_request(opcode) || opcode == ATT_OPCODE_HANDLE_VALUE_CONFIRMATION || opcode == ATT_OPCODE_WRITE_REQUEST)
+ return !direction;
+ if (is_readable_response(opcode) || is_writeable_response(opcode))
+ return direction;
+ if (opcode == ATT_OPCODE_HANDLE_VALUE_NOTIFICATION || opcode == ATT_OPCODE_HANDLE_VALUE_INDICATION)
+ return direction;
+
+ return direction;
+}
+
static request_data_t *
get_request(tvbuff_t *tvb, gint offset, packet_info *pinfo, guint8 opcode,
bluetooth_data_t *bluetooth_data)
{
request_data_t *request_data;
- wmem_tree_key_t key[4];
+ wmem_tree_key_t key[5];
wmem_tree_t *sub_wmemtree;
- guint32 frame_number, curr_layer_num;
+ guint32 frame_number, curr_layer_num, direction;
if (!bluetooth_data)
return NULL;
curr_layer_num = pinfo->curr_layer_num;
+ // Request is always in opposite direction from response
+ direction = pinfo->p2p_dir == P2P_DIR_SENT ? P2P_DIR_RECV : P2P_DIR_SENT;
key[0].length = 1;
key[0].key = &bluetooth_data->interface_id;
@@ -4245,8 +4260,10 @@ get_request(tvbuff_t *tvb, gint offset, packet_info *pinfo, guint8 opcode,
key[1].key = &bluetooth_data->adapter_id;
key[2].length = 1;
key[2].key = &curr_layer_num;
- key[3].length = 0;
- key[3].key = NULL;
+ key[3].length = 1;
+ key[3].key = &direction;
+ key[4].length = 0;
+ key[4].key = NULL;
frame_number = pinfo->num;
@@ -4345,12 +4362,13 @@ static void
save_request(packet_info *pinfo, guint8 opcode, union request_parameters_union parameters,
bluetooth_data_t *bluetooth_data)
{
- wmem_tree_key_t key[5];
- guint32 frame_number, curr_layer_num;
+ wmem_tree_key_t key[6];
+ guint32 frame_number, curr_layer_num, direction;
request_data_t *request_data;
frame_number = pinfo->num;
curr_layer_num = pinfo->curr_layer_num;
+ direction = pinfo->p2p_dir;
key[0].length = 1;
key[0].key = &bluetooth_data->interface_id;
@@ -4359,9 +4377,11 @@ save_request(packet_info *pinfo, guint8 opcode, union request_parameters_union p
key[2].length = 1;
key[2].key = &curr_layer_num;
key[3].length = 1;
- key[3].key = &frame_number;
- key[4].length = 0;
- key[4].key = NULL;
+ key[3].key = &direction;
+ key[4].length = 1;
+ key[4].key = &frame_number;
+ key[5].length = 0;
+ key[5].key = NULL;
request_data = wmem_new0(wmem_file_scope(), request_data_t);
request_data->opcode = opcode;
@@ -4390,22 +4410,25 @@ save_handle(packet_info *pinfo, bluetooth_uuid_t uuid, guint32 handle,
}
if (!pinfo->fd->visited && bluetooth_data) {
- wmem_tree_key_t key[5];
- guint32 frame_number;
+ wmem_tree_key_t key[6];
+ guint32 frame_number, direction;
handle_data_t *handle_data;
frame_number = pinfo->num;
+ direction = pinfo->p2p_dir;
key[0].length = 1;
key[0].key = &bluetooth_data->interface_id;
key[1].length = 1;
key[1].key = &bluetooth_data->adapter_id;
key[2].length = 1;
- key[2].key = &handle;
+ key[2].key = &direction;
key[3].length = 1;
- key[3].key = &frame_number;
- key[4].length = 0;
- key[4].key = NULL;
+ key[3].key = &handle;
+ key[4].length = 1;
+ key[4].key = &frame_number;
+ key[5].length = 0;
+ key[5].key = NULL;
handle_data = wmem_new(wmem_file_scope(), handle_data_t);
handle_data->uuid = uuid;
@@ -4416,11 +4439,11 @@ save_handle(packet_info *pinfo, bluetooth_uuid_t uuid, guint32 handle,
}
static bluetooth_uuid_t
-get_bluetooth_uuid_from_handle(packet_info *pinfo, guint32 handle,
- bluetooth_data_t *bluetooth_data)
+get_bluetooth_uuid_from_handle(packet_info *pinfo, guint32 handle, guint8 opcode,
+ bluetooth_data_t *bluetooth_data)
{
- wmem_tree_key_t key[4];
- guint32 frame_number;
+ wmem_tree_key_t key[5];
+ guint32 frame_number, direction;
handle_data_t *handle_data;
wmem_tree_t *sub_wmemtree;
bluetooth_uuid_t uuid;
@@ -4429,15 +4452,18 @@ get_bluetooth_uuid_from_handle(packet_info *pinfo, guint32 handle,
if (bluetooth_data) {
frame_number = pinfo->num;
+ direction = get_handle_db_direction(opcode, pinfo->p2p_dir);
key[0].length = 1;
key[0].key = &bluetooth_data->interface_id;
key[1].length = 1;
key[1].key = &bluetooth_data->adapter_id;
key[2].length = 1;
- key[2].key = &handle;
- key[3].length = 0;
- key[3].key = NULL;
+ key[2].key = &direction;
+ key[3].length = 1;
+ key[3].key = &handle;
+ key[4].length = 0;
+ key[4].key = NULL;
sub_wmemtree = (wmem_tree_t *) wmem_tree_lookup32_array(handle_to_uuid, key);
handle_data = (sub_wmemtree) ? (handle_data_t *) wmem_tree_lookup32_le(sub_wmemtree, frame_number) : NULL;
@@ -4450,11 +4476,11 @@ get_bluetooth_uuid_from_handle(packet_info *pinfo, guint32 handle,
}
static bluetooth_uuid_t
-get_service_uuid_from_handle(packet_info *pinfo, guint32 handle,
+get_service_uuid_from_handle(packet_info *pinfo, guint32 handle, guint8 opcode,
bluetooth_data_t *bluetooth_data)
{
- wmem_tree_key_t key[4];
- guint32 frame_number;
+ wmem_tree_key_t key[5];
+ guint32 frame_number, direction;
handle_data_t *handle_data;
wmem_tree_t *sub_wmemtree;
bluetooth_uuid_t uuid;
@@ -4463,15 +4489,18 @@ get_service_uuid_from_handle(packet_info *pinfo, guint32 handle,
if (bluetooth_data) {
frame_number = pinfo->num;
+ direction = get_handle_db_direction(opcode, pinfo->p2p_dir);
key[0].length = 1;
key[0].key = &bluetooth_data->interface_id;
key[1].length = 1;
key[1].key = &bluetooth_data->adapter_id;
key[2].length = 1;
- key[2].key = &handle;
- key[3].length = 0;
- key[3].key = NULL;
+ key[2].key = &direction;
+ key[3].length = 1;
+ key[3].key = &handle;
+ key[4].length = 0;
+ key[4].key = NULL;
while (handle > 0) {
sub_wmemtree = (wmem_tree_t *) wmem_tree_lookup32_array(handle_to_uuid, key);
@@ -4490,11 +4519,11 @@ get_service_uuid_from_handle(packet_info *pinfo, guint32 handle,
}
static bluetooth_uuid_t
-get_characteristic_uuid_from_handle(packet_info *pinfo, guint32 handle,
+get_characteristic_uuid_from_handle(packet_info *pinfo, guint32 handle, guint8 opcode,
bluetooth_data_t *bluetooth_data)
{
- wmem_tree_key_t key[4];
- guint32 frame_number;
+ wmem_tree_key_t key[5];
+ guint32 frame_number, direction;
handle_data_t *handle_data;
wmem_tree_t *sub_wmemtree;
bluetooth_uuid_t uuid;
@@ -4503,15 +4532,18 @@ get_characteristic_uuid_from_handle(packet_info *pinfo, guint32 handle,
if (bluetooth_data) {
frame_number = pinfo->num;
+ direction = get_handle_db_direction(opcode, pinfo->p2p_dir);
key[0].length = 1;
key[0].key = &bluetooth_data->interface_id;
key[1].length = 1;
key[1].key = &bluetooth_data->adapter_id;
key[2].length = 1;
- key[2].key = &handle;
- key[3].length = 0;
- key[3].key = NULL;
+ key[2].key = &direction;
+ key[3].length = 1;
+ key[3].key = &handle;
+ key[4].length = 0;
+ key[4].key = NULL;
while (handle > 0) {
sub_wmemtree = (wmem_tree_t *) wmem_tree_lookup32_array(handle_to_uuid, key);
@@ -4532,7 +4564,7 @@ get_characteristic_uuid_from_handle(packet_info *pinfo, guint32 handle,
return uuid;
}
-static void col_append_info_by_handle(packet_info *pinfo, guint16 handle, bluetooth_data_t *bluetooth_data)
+static void col_append_info_by_handle(packet_info *pinfo, guint16 handle, guint8 opcode, bluetooth_data_t *bluetooth_data)
{
bluetooth_uuid_t service_uuid;
bluetooth_uuid_t characteristic_uuid;
@@ -4541,9 +4573,10 @@ static void col_append_info_by_handle(packet_info *pinfo, guint16 handle, blueto
if (!bluetooth_data)
return;
- service_uuid = get_service_uuid_from_handle(pinfo, handle, bluetooth_data);
- characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, handle, bluetooth_data);
- uuid = get_bluetooth_uuid_from_handle(pinfo, handle, bluetooth_data);
+ service_uuid = get_service_uuid_from_handle(pinfo, handle, opcode, bluetooth_data);
+ characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, handle, opcode, bluetooth_data);
+ uuid = get_bluetooth_uuid_from_handle(pinfo, handle, opcode, bluetooth_data);
+
if (!memcmp(&service_uuid, &uuid, sizeof(uuid))) {
col_append_fstr(pinfo->cinfo, COL_INFO, ", Handle: 0x%04x (%s)",
@@ -4584,7 +4617,7 @@ static gint dissect_gatt_uuid(proto_tree *tree, packet_info *pinfo, tvbuff_t *tv
static int
dissect_handle(proto_tree *tree, packet_info *pinfo, gint hf,
tvbuff_t *tvb, gint offset, bluetooth_data_t *bluetooth_data,
- bluetooth_uuid_t *uuid, gint32 handle)
+ bluetooth_uuid_t *uuid, gint32 handle, guint8 opcode)
{
proto_item *handle_item;
proto_item *sub_item;
@@ -4603,9 +4636,9 @@ dissect_handle(proto_tree *tree, packet_info *pinfo, gint hf,
DISSECTOR_ASSERT_NOT_REACHED();
}
- service_uuid = get_service_uuid_from_handle(pinfo, (guint16) handle, bluetooth_data);
- characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, (guint16) handle, bluetooth_data);
- attribute_uuid = get_bluetooth_uuid_from_handle(pinfo, (guint16) handle, bluetooth_data);
+ service_uuid = get_service_uuid_from_handle(pinfo, (guint16) handle, opcode, bluetooth_data);
+ characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, (guint16) handle, opcode, bluetooth_data);
+ attribute_uuid = get_bluetooth_uuid_from_handle(pinfo, (guint16) handle, opcode, bluetooth_data);
proto_item_append_text(handle_item, " (");
if (memcmp(&service_uuid, &attribute_uuid, sizeof(attribute_uuid))) {
@@ -4877,7 +4910,7 @@ dissect_attribute_value(proto_tree *tree, proto_item *patron_item, packet_info *
return old_offset + tvb_captured_length(tvb);
}
- service_uuid = get_service_uuid_from_handle(pinfo, handle, bluetooth_data);
+ service_uuid = get_service_uuid_from_handle(pinfo, handle, att_data->opcode, bluetooth_data);
switch (uuid.bt_uuid) {
case 0x2800: /* GATT Primary Service Declaration */
@@ -4930,7 +4963,7 @@ dissect_attribute_value(proto_tree *tree, proto_item *patron_item, packet_info *
if (bluetooth_gatt_has_no_parameter(att_data->opcode))
break;
- offset = dissect_handle(tree, pinfo, hf_btatt_included_service_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(tree, pinfo, hf_btatt_included_service_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, att_data->opcode);
sub_handle = tvb_get_guint16(tvb, offset - 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item(tree, hf_btatt_ending_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -4959,7 +4992,7 @@ dissect_attribute_value(proto_tree *tree, proto_item *patron_item, packet_info *
proto_tree_add_bitmask(tree, tvb, offset, hf_btatt_characteristic_properties, ett_btatt_characteristic_properties, hfx_btatt_characteristic_properties, ENC_NA);
offset += 1;
- offset = dissect_handle(tree, pinfo, hf_btatt_characteristic_value_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(tree, pinfo, hf_btatt_characteristic_value_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, att_data->opcode);
sub_handle = tvb_get_guint16(tvb, offset - 2, ENC_LITTLE_ENDIAN);
if (tvb_reported_length_remaining(tvb, offset) == 16) {
@@ -5034,7 +5067,7 @@ dissect_attribute_value(proto_tree *tree, proto_item *patron_item, packet_info *
{
bluetooth_uuid_t characteristic_uuid;
- characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, handle, bluetooth_data);
+ characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, handle, att_data->opcode, bluetooth_data);
if (value & 0x1) switch (characteristic_uuid.bt_uuid) { /* Notification */
case 0x2A05: /* Service Changed */
@@ -5274,7 +5307,7 @@ dissect_attribute_value(proto_tree *tree, proto_item *patron_item, packet_info *
sub_tree = proto_item_add_subtree(sub_item, ett_btatt_list);
while (offset < (gint64) tvb_captured_length(tvb)) {
- offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, att_data->opcode);
}
break;
case 0x2906: /* Valid Range */ {
@@ -5285,7 +5318,7 @@ dissect_attribute_value(proto_tree *tree, proto_item *patron_item, packet_info *
if (bluetooth_gatt_has_no_parameter(att_data->opcode))
break;
- characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, handle, bluetooth_data);
+ characteristic_uuid = get_characteristic_uuid_from_handle(pinfo, handle, att_data->opcode, bluetooth_data);
characteristic_dissector_name = wmem_strdup_printf(pinfo->pool, "btgatt.uuid0x%s", print_numeric_bluetooth_uuid(pinfo->pool, &characteristic_uuid));
characteristic_dissector = find_dissector(characteristic_dissector_name);
@@ -10822,13 +10855,13 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
request_opcode = tvb_get_guint8(tvb, offset);
offset += 1;
- offset = dissect_handle(main_tree, pinfo, hf_btatt_handle_in_error, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(main_tree, pinfo, hf_btatt_handle_in_error, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, opcode);
handle = tvb_get_letohs(tvb, offset - 2);
error_code = tvb_get_guint8(tvb, offset);
if (error_code >= 0x80 && error_code <= 0x9F) {
- service_uuid = get_service_uuid_from_handle(pinfo, handle, bluetooth_data);
+ service_uuid = get_service_uuid_from_handle(pinfo, handle, opcode, bluetooth_data);
switch (service_uuid.bt_uuid) {
case GATT_SERVICE_AUTOMATION_IO:
@@ -10919,7 +10952,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
col_append_fstr(pinfo->cinfo, COL_INFO, " - %s",
val_to_str_const(error_code, error_vals, "<unknown>"));
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
proto_tree_add_item(main_tree, hfx_btatt_error_code, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset++;
@@ -10993,7 +11026,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
sub_item = proto_tree_add_item(main_tree, hf_btatt_information_data, tvb, offset, 4, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_btatt_list);
- offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, opcode);
handle = tvb_get_guint16(tvb, offset - 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item(sub_tree, hf_btatt_uuid16, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -11005,7 +11038,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
save_handle(pinfo, uuid, handle, ATTRIBUTE_TYPE_OTHER, bluetooth_data);
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
}
}
else if (format == 2) {
@@ -11013,7 +11046,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
sub_item = proto_tree_add_item(main_tree, hf_btatt_information_data, tvb, offset, 4, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_btatt_list);
- offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, opcode);
handle = tvb_get_guint16(tvb, offset - 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item(sub_tree, hf_btatt_uuid128, tvb, offset, 16, ENC_NA);
@@ -11025,7 +11058,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
save_handle(pinfo, uuid, handle, ATTRIBUTE_TYPE_OTHER, bluetooth_data);
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
}
}
else {
@@ -11073,7 +11106,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
sub_tree = proto_item_add_subtree(sub_item, ett_btatt_list);
- offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, opcode);
proto_tree_add_item(sub_tree, hf_btatt_group_end_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
@@ -11158,7 +11191,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
ATTRIBUTE_TYPE_OTHER, bluetooth_data);
}
- offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, opcode);
if (request_data) {
offset = dissect_attribute_value(sub_tree, sub_item, pinfo, tvb, offset, length - 2, tvb_get_guint16(tvb, offset - 2, ENC_LITTLE_ENDIAN), request_data->parameters.read_by_type.uuid, &att_data);
@@ -11177,10 +11210,10 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
break;
case 0x0a: /* Read Request */
- offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB);
+ offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB, opcode);
handle = tvb_get_letohs(tvb, offset - 2);
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
if (!pinfo->fd->visited && bluetooth_data) {
union request_parameters_union request_parameters;
@@ -11197,9 +11230,9 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
case 0x0b: /* Read Response */
if (request_data) {
- dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle);
+ dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle, opcode);
- col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, opcode, bluetooth_data);
}
if (is_long_attribute_value(uuid) && tvb_captured_length(tvb) >= mtu) {
@@ -11220,10 +11253,10 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
break;
case 0x0c: /* Read Blob Request */
- offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB);
+ offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB, opcode);
handle = tvb_get_letohs(tvb, offset - 2);
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
col_append_fstr(pinfo->cinfo, COL_INFO, ", Offset: %u", tvb_get_letohs(tvb, offset));
proto_tree_add_item(main_tree, hf_btatt_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -11244,9 +11277,9 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
case 0x0d: /* Read Blob Response */
if (request_data && request_data->opcode == (opcode - 1)) {
- dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle);
+ dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle, opcode);
- col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, opcode, bluetooth_data);
if (request_data->parameters.read_write.offset == 0 && !is_long_attribute_value(uuid)) {
offset = dissect_attribute_value(main_tree, NULL, pinfo, tvb, offset, tvb_captured_length_remaining(tvb, offset), request_data->parameters.read_write.handle, uuid, &att_data);
@@ -11291,7 +11324,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
col_append_str(pinfo->cinfo, COL_INFO, ", Handles: ");
while (tvb_reported_length_remaining(tvb, offset) >= 2) {
- offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB);
+ offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB, opcode);
handle = tvb_get_letohs(tvb, offset - 2);
col_append_fstr(pinfo->cinfo, COL_INFO, "0x%04x ", handle);
@@ -11314,7 +11347,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
guint i_handle;
for (i_handle = 0; i_handle < request_data->parameters.read_multiple.number_of_handles; i_handle += 1) {
- dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_multiple.handle[i_handle]);
+ dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_multiple.handle[i_handle], opcode);
offset = dissect_attribute_value(main_tree, NULL, pinfo, tvb, offset, tvb_captured_length_remaining(tvb, offset), request_data->parameters.read_multiple.handle[i_handle], uuid, &att_data);
}
} else {
@@ -11340,7 +11373,7 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
sub_tree = proto_item_add_subtree(sub_item, ett_btatt_list);
- offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB);
+ offset = dissect_handle(sub_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, NULL, HANDLE_TVB, opcode);
handle = tvb_get_guint16(tvb, offset - 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item(sub_tree, hf_btatt_group_end_handle, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -11366,9 +11399,9 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
case 0x1d: /* Handle Value Indication */
case 0x52: /* Write Command */
case 0x1b: /* Handle Value Notification */
- offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB);
+ offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB, opcode);
handle = tvb_get_letohs(tvb, offset - 2);
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
offset = dissect_attribute_value(main_tree, NULL, pinfo, tvb, offset, tvb_captured_length_remaining(tvb, offset), tvb_get_guint16(tvb, offset - 2, ENC_LITTLE_ENDIAN), uuid, &att_data);
if (!pinfo->fd->visited && bluetooth_data && (opcode == 0x12 || opcode == 0x1d)) {
union request_parameters_union request_parameters;
@@ -11384,21 +11417,21 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
/* No parameters */
if (request_data && request_data->opcode == (opcode - 1)) {
- dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle);
+ dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle, opcode);
dissect_attribute_value(main_tree, NULL, pinfo, tvb, offset, 0, request_data->parameters.read_write.handle, uuid, &att_data);
- col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, opcode, bluetooth_data);
}
break;
case 0x16: /* Prepare Write Request */
case 0x17: /* Prepare Write Response */
- offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB);
+ offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB, opcode);
handle = tvb_get_letohs(tvb, offset - 2);
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
col_append_fstr(pinfo->cinfo, COL_INFO, ", Offset: %u", tvb_get_letohs(tvb, offset));
proto_tree_add_item(main_tree, hf_btatt_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
@@ -11463,9 +11496,9 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
case 0x1E: /* Handle Value Confirmation */
if (request_data && request_data->opcode == (opcode - 1)) {
- dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle);
+ dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, request_data->parameters.read_write.handle, opcode);
- col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, request_data->parameters.read_write.handle, opcode, bluetooth_data);
dissect_attribute_value(main_tree, NULL, pinfo, tvb, offset, 0, request_data->parameters.read_write.handle, uuid, &att_data);
}
@@ -11475,10 +11508,10 @@ dissect_btatt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
guint8 length;
- offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB);
+ offset = dissect_handle(main_tree, pinfo, hf_btatt_handle, tvb, offset, bluetooth_data, &uuid, HANDLE_TVB, opcode);
handle = tvb_get_letohs(tvb, offset - 2);
- col_append_info_by_handle(pinfo, handle, bluetooth_data);
+ col_append_info_by_handle(pinfo, handle, opcode, bluetooth_data);
length = tvb_reported_length_remaining(tvb, offset);
dissect_attribute_value(main_tree, NULL, pinfo, tvb, offset, (length > 12) ? length - 12 : 0, handle, uuid, &att_data);
diff --git a/epan/dissectors/packet-btavctp.c b/epan/dissectors/packet-btavctp.c
index 66e9934321..9a5ab59ccb 100644
--- a/epan/dissectors/packet-btavctp.c
+++ b/epan/dissectors/packet-btavctp.c
@@ -61,8 +61,8 @@ typedef struct _fragments_t {
wmem_tree_t *fragment;
} fragments_t;
-static wmem_tree_t *reassembling = NULL;
-static fragments_t *fragments = NULL;
+static wmem_tree_t *reassembling;
+static fragments_t *fragments;
static const value_string packet_type_vals[] = {
{ PACKET_TYPE_SINGLE, "Single" },
diff --git a/epan/dissectors/packet-btavdtp.c b/epan/dissectors/packet-btavdtp.c
index d3b08db16a..892ff5e05c 100644
--- a/epan/dissectors/packet-btavdtp.c
+++ b/epan/dissectors/packet-btavdtp.c
@@ -296,10 +296,10 @@ static dissector_handle_t bta2dp_handle;
static dissector_handle_t btvdp_handle;
static dissector_handle_t rtp_handle;
-static wmem_tree_t *channels = NULL;
-static wmem_tree_t *sep_list = NULL;
-static wmem_tree_t *sep_open = NULL;
-static wmem_tree_t *media_packet_times = NULL;
+static wmem_tree_t *channels;
+static wmem_tree_t *sep_list;
+static wmem_tree_t *sep_open;
+static wmem_tree_t *media_packet_times;
/* A2DP declarations */
static gint proto_bta2dp;
@@ -325,7 +325,7 @@ static dissector_handle_t mp2t_handle;
static dissector_handle_t mpeg_audio_handle;
static dissector_handle_t atrac_handle;
-static gboolean force_a2dp_scms_t = FALSE;
+static bool force_a2dp_scms_t;
static gint force_a2dp_codec = CODEC_DEFAULT;
static const enum_val_t pref_a2dp_codec[] = {
@@ -363,7 +363,7 @@ static int hf_btvdp_reserved;
static dissector_handle_t h263_handle;
static dissector_handle_t mp4v_es_handle;
-static gboolean force_vdp_scms_t = FALSE;
+static bool force_vdp_scms_t;
static gint force_vdp_codec = CODEC_H263_BASELINE;
static const enum_val_t pref_vdp_codec[] = {
diff --git a/epan/dissectors/packet-btavrcp.c b/epan/dissectors/packet-btavrcp.c
index 6c8660c0ed..56efc0ce42 100644
--- a/epan/dissectors/packet-btavrcp.c
+++ b/epan/dissectors/packet-btavrcp.c
@@ -261,8 +261,8 @@ static dissector_handle_t btavrcp_handle;
#define STATUS_OK 0x04
-static wmem_tree_t *reassembling = NULL;
-static wmem_tree_t *timing = NULL;
+static wmem_tree_t *reassembling;
+static wmem_tree_t *timing;
wmem_tree_t *btavrcp_song_positions = NULL;
typedef struct _avrcp_proto_data_t {
diff --git a/epan/dissectors/packet-btbnep.c b/epan/dissectors/packet-btbnep.c
index 601d10d767..fc89adb088 100644
--- a/epan/dissectors/packet-btbnep.c
+++ b/epan/dissectors/packet-btbnep.c
@@ -64,7 +64,7 @@ static expert_field ei_btbnep_len_past_end;
static dissector_handle_t btbnep_handle;
-static gboolean top_dissect = TRUE;
+static bool top_dissect = true;
static dissector_handle_t llc_handle;
static dissector_handle_t ipx_handle;
diff --git a/epan/dissectors/packet-bthci_acl.c b/epan/dissectors/packet-bthci_acl.c
index 8b60e52b16..980214d2ca 100644
--- a/epan/dissectors/packet-bthci_acl.c
+++ b/epan/dissectors/packet-bthci_acl.c
@@ -52,9 +52,9 @@ static expert_field ei_invalid_session;
static expert_field ei_length_bad;
static dissector_handle_t bthci_acl_handle;
-static dissector_handle_t btl2cap_handle = NULL;
+static dissector_handle_t btl2cap_handle;
-static gboolean acl_reassembly = TRUE;
+static bool acl_reassembly = true;
typedef struct _multi_fragment_pdu_t {
guint32 first_frame;
@@ -68,7 +68,7 @@ typedef struct _chandle_data_t {
wmem_tree_t *start_fragments; /* indexed by pinfo->num */
} chandle_data_t;
-static wmem_tree_t *chandle_tree = NULL;
+static wmem_tree_t *chandle_tree;
static const value_string role_vals[] = {
{ 0, "Unknown" },
@@ -100,7 +100,7 @@ static const value_string bc_flag_vals[] = {
{ 0, NULL }
};
-static guint32 invalid_session = 0;
+static guint32 invalid_session;
void proto_register_bthci_acl(void);
@@ -140,7 +140,7 @@ dissect_bthci_acl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
gint localhost_length;
localhost_bdaddr_entry_t *localhost_bdaddr_entry;
localhost_name_entry_t *localhost_name_entry;
- const guint8 unknown_bd_addr[6] = {0, 0, 0, 0, 0, 0};
+ static const guint8 unknown_bd_addr[6] = {0};
const guint8 *src_bd_addr = &unknown_bd_addr[0];
const gchar *src_name = "";
const gchar *src_addr_name = "";
diff --git a/epan/dissectors/packet-bthci_cmd.c b/epan/dissectors/packet-bthci_cmd.c
index 43b6bb5a9d..8c596378f2 100644
--- a/epan/dissectors/packet-bthci_cmd.c
+++ b/epan/dissectors/packet-bthci_cmd.c
@@ -1153,7 +1153,7 @@ static dissector_table_t bluetooth_eir_ad_manufacturer_company_id;
static dissector_table_t bluetooth_eir_ad_tds_organization_id;
static dissector_table_t bluetooth_eir_ad_service_uuid;
-wmem_tree_t *bthci_cmds = NULL;
+wmem_tree_t *bthci_cmds;
extern value_string_ext ext_usb_vendors_vals;
extern value_string_ext ext_usb_products_vals;
@@ -6972,12 +6972,12 @@ proto_register_bthci_cmd(void)
{ &hf_bthci_cmd_transmit_bandwidth,
{"Tx Bandwidth (bytes/s)", "bthci_cmd.tx_bandwidth",
FT_UINT32, BASE_DEC, NULL, 0x0,
- "Tx Bandwidth", HFILL}
+ NULL, HFILL}
},
{ &hf_bthci_cmd_receive_bandwidth,
{"Rx Bandwidth (bytes/s)", "bthci_cmd.rx_bandwidth",
FT_UINT32, BASE_DEC, NULL, 0x0,
- "Rx Bandwidth", HFILL}
+ NULL, HFILL}
},
{ &hf_bthci_cmd_max_latency_ms,
{"Max. Latency (ms)", "bthci_cmd.max_latency_ms",
diff --git a/epan/dissectors/packet-bthci_iso.c b/epan/dissectors/packet-bthci_iso.c
index a6045b293c..9a4355bc67 100644
--- a/epan/dissectors/packet-bthci_iso.c
+++ b/epan/dissectors/packet-bthci_iso.c
@@ -49,7 +49,7 @@ static expert_field ei_length_bad;
static dissector_handle_t bthci_iso_handle;
static dissector_handle_t bthci_iso_data_handle;
-static gboolean iso_reassembly = TRUE;
+static bool iso_reassembly = true;
typedef struct _multi_fragment_pdu_t {
guint32 first_frame;
@@ -63,7 +63,7 @@ typedef struct _chandle_data_t {
wmem_tree_t *start_fragments; /* indexed by pinfo->num */
} chandle_data_t;
-static wmem_tree_t *chandle_tree = NULL;
+static wmem_tree_t *chandle_tree;
static const value_string iso_pb_flag_vals[] = {
{ 0x00, "First SDU Fragment"},
diff --git a/epan/dissectors/packet-bthci_sco.c b/epan/dissectors/packet-bthci_sco.c
index 85ab2acdd3..64a79ced0d 100644
--- a/epan/dissectors/packet-bthci_sco.c
+++ b/epan/dissectors/packet-bthci_sco.c
@@ -35,7 +35,7 @@ static int hf_bthci_sco_stream_number;
/* Initialize the subtree pointers */
static gint ett_bthci_sco;
-wmem_tree_t *bthci_sco_stream_numbers = NULL;
+wmem_tree_t *bthci_sco_stream_numbers;
static dissector_handle_t bthci_sco_handle;
diff --git a/epan/dissectors/packet-bthcrp.c b/epan/dissectors/packet-bthcrp.c
index 56fc2b6169..2b501cf173 100644
--- a/epan/dissectors/packet-bthcrp.c
+++ b/epan/dissectors/packet-bthcrp.c
@@ -60,9 +60,9 @@ static expert_field ei_bthcrp_unexpected_data;
static dissector_handle_t bthcrp_handle;
static gint force_client = FORCE_CLIENT_DEFAULT;
-static gint psm_control = 0;
-static gint psm_data_stream = 0;
-static gint psm_notification = 0;
+static gint psm_control;
+static gint psm_data_stream;
+static gint psm_notification;
static const value_string control_pdu_id_vals[] = {
{ 0x0001, "CR_DataChannelCreditGrant" },
diff --git a/epan/dissectors/packet-bthfp.c b/epan/dissectors/packet-bthfp.c
index 2e6bc45138..2296eb6a43 100644
--- a/epan/dissectors/packet-bthfp.c
+++ b/epan/dissectors/packet-bthfp.c
@@ -179,7 +179,7 @@ static gint ett_bthfp_xapl_accessory_info;
static dissector_handle_t bthfp_handle;
-static wmem_tree_t *fragments = NULL;
+static wmem_tree_t *fragments;
#define ROLE_UNKNOWN 0
#define ROLE_AG 1
diff --git a/epan/dissectors/packet-bthid.c b/epan/dissectors/packet-bthid.c
index 35646b3efd..ff3b02d4bc 100644
--- a/epan/dissectors/packet-bthid.c
+++ b/epan/dissectors/packet-bthid.c
@@ -46,7 +46,7 @@ static dissector_handle_t usb_hid_boot_keyboard_input_report_handle;
static dissector_handle_t usb_hid_boot_keyboard_output_report_handle;
static dissector_handle_t usb_hid_boot_mouse_input_report_handle;
-static gboolean show_deprecated = FALSE;
+static bool show_deprecated;
static const value_string transaction_type_vals[] = {
{ 0x00, "HANDSHAKE" },
diff --git a/epan/dissectors/packet-bthsp.c b/epan/dissectors/packet-bthsp.c
index 13465629c8..45c941880d 100644
--- a/epan/dissectors/packet-bthsp.c
+++ b/epan/dissectors/packet-bthsp.c
@@ -52,7 +52,7 @@ static gint ett_bthsp_parameters;
static dissector_handle_t bthsp_handle;
-static wmem_tree_t *fragments = NULL;
+static wmem_tree_t *fragments;
#define ROLE_UNKNOWN 0
#define ROLE_AG 1
diff --git a/epan/dissectors/packet-btle.c b/epan/dissectors/packet-btle.c
index c668d1cf0a..15d108df7e 100644
--- a/epan/dissectors/packet-btle.c
+++ b/epan/dissectors/packet-btle.c
@@ -534,6 +534,7 @@ static dissector_handle_t btcommon_le_channel_map_handle;
static dissector_handle_t btl2cap_handle;
static wmem_tree_t *connection_info_tree;
+static wmem_tree_t *periodic_adv_info_tree;
static wmem_tree_t *broadcastiso_connection_info_tree;
static wmem_tree_t *connection_parameter_info_tree;
static wmem_tree_t *adi_to_first_frame_tree;
@@ -932,7 +933,7 @@ static const true_false_string tfs_random_public = {
void proto_register_btle(void);
void proto_reg_handoff_btle(void);
-static gboolean btle_detect_retransmit = TRUE;
+static bool btle_detect_retransmit = true;
static void
btle_init(void)
@@ -1002,9 +1003,11 @@ btle_crc(tvbuff_t *tvb, const guint8 payload_len, const guint32 crc_init)
return state;
}
-static const gchar * adv_pdu_type_str_get(const btle_context_t *btle_context, guint32 pdu_type)
+static const gchar * adv_pdu_type_str_get(const btle_context_t *btle_context, guint32 pdu_type, gboolean is_periodic_adv)
{
- if (!btle_context || !(btle_context->channel < 37)) {
+ if (is_periodic_adv) {
+ return "AUX_SYNC_IND";
+ } else if (!btle_context || !(btle_context->channel < 37)) {
return val_to_str_ext_const(pdu_type, &pdu_type_vals_ext, "Unknown");
} else if (pdu_type == 0x07 && btle_context->aux_pdu_type_valid) {
return val_to_str_ext_const(btle_context->aux_pdu_type, &aux_pdu_common_vals_ext, "Unknown");
@@ -1023,7 +1026,7 @@ static const gchar * adv_pdu_type_str_get(const btle_context_t *btle_context, gu
static guint32
reverse_bits_per_byte(const guint32 val)
{
- const guint8 nibble_rev[16] = {
+ static const guint8 nibble_rev[16] = {
0x0, 0x8, 0x4, 0xc, 0x2, 0xa, 0x6, 0xe,
0x1, 0x9, 0x5, 0xd, 0x3, 0xb, 0x7, 0xf
};
@@ -1682,7 +1685,7 @@ control_proc_start(tvbuff_t *tvb,
if (proc_info && proc_info->proc_opcode == opcode) {
proto_item *sub_item;
- for (guint i = 1; i < sizeof(proc_info->frames)/sizeof(proc_info->frames[0]); i++) {
+ for (guint i = 1; i < array_length(proc_info->frames); i++) {
if (proc_info->frames[i]) {
sub_item = proto_tree_add_uint(btle_tree, hf_response_in_frame, tvb, 0, 0, proc_info->frames[i]);
proto_item_set_generated(sub_item);
@@ -1847,6 +1850,53 @@ dissect_ad_eir(tvbuff_t *tvb, guint32 interface_id, guint32 adapter_id, guint32
}
}
+static guint8
+guess_btle_pdu_type_from_access(guint32 interface_id,
+ guint32 adapter_id,
+ guint32 access_address)
+{
+ wmem_tree_key_t key[5];
+ wmem_tree_t *wmem_tree;
+ guint32 broadcast_iso_seed_access_address = access_address & 0x0041ffff;
+
+ /* No context to provide us with physical channel pdu type, make an assumption from the access address */
+ if (access_address == ACCESS_ADDRESS_ADVERTISING) {
+ return BTLE_PDU_TYPE_ADVERTISING;
+ }
+
+ /* Check if it is a connection context. */
+ key[0].length = 1;
+ key[0].key = &interface_id;
+ key[1].length = 1;
+ key[1].key = &adapter_id;
+ key[2].length = 1;
+ key[2].key = &access_address;
+ key[3].length = 0;
+ key[3].key = NULL;
+
+ wmem_tree = (wmem_tree_t *) wmem_tree_lookup32_array(connection_info_tree, key);
+ if (wmem_tree) {
+ /* Connection. */
+ return BTLE_PDU_TYPE_DATA;
+ }
+
+ wmem_tree = (wmem_tree_t *) wmem_tree_lookup32_array(periodic_adv_info_tree, key);
+ if (wmem_tree) {
+ /* Periodic advertiser. */
+ return BTLE_PDU_TYPE_ADVERTISING;
+ }
+
+ key[2].key = &broadcast_iso_seed_access_address;
+ wmem_tree = (wmem_tree_t *) wmem_tree_lookup32_array(broadcastiso_connection_info_tree, key);
+ if (wmem_tree) {
+ /* Broadcast ISO. */
+ return BTLE_PDU_TYPE_BROADCASTISO;
+ }
+
+ /* Default to data. */
+ return BTLE_PDU_TYPE_DATA;
+}
+
static gint
dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
@@ -1956,7 +2006,9 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
if (btle_pdu_type == BTLE_PDU_TYPE_UNKNOWN) {
/* No context to provide us with physical channel pdu type, make an assumption from the access address */
- btle_pdu_type = access_address == ACCESS_ADDRESS_ADVERTISING ? BTLE_PDU_TYPE_ADVERTISING : BTLE_PDU_TYPE_DATA;
+ btle_pdu_type = guess_btle_pdu_type_from_access(interface_id,
+ adapter_id,
+ access_address);
}
if (btle_pdu_type == BTLE_PDU_TYPE_ADVERTISING) {
@@ -1966,8 +2018,10 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
proto_tree *link_layer_data_tree;
guint8 header, pdu_type;
gboolean ch_sel_valid = FALSE, tx_add_valid = FALSE, rx_add_valid = FALSE;
+ gboolean is_periodic_adv = FALSE;
- if (crc_status == CRC_INDETERMINATE) {
+ if (crc_status == CRC_INDETERMINATE &&
+ access_address == ACCESS_ADDRESS_ADVERTISING) {
/* Advertising channel CRCs can aways be calculated, because CRCInit is always known. */
crc_status = CRC_CAN_BE_CALCULATED;
}
@@ -1982,6 +2036,14 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
key[3].key = NULL;
wmem_tree = (wmem_tree_t *) wmem_tree_lookup32_array(connection_info_tree, key);
+ if (!wmem_tree) {
+ /* Check periodic advertising tree */
+ wmem_tree = (wmem_tree_t *) wmem_tree_lookup32_array(periodic_adv_info_tree, key);
+ if (wmem_tree) {
+ is_periodic_adv = true;
+ }
+ }
+
if (wmem_tree) {
connection_info = (connection_info_t *) wmem_tree_lookup32_le(wmem_tree, pinfo->num);
if (connection_info) {
@@ -2031,9 +2093,9 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
break;
}
- proto_item_append_text(advertising_header_item, " (PDU Type: %s", adv_pdu_type_str_get(btle_context, pdu_type));
+ proto_item_append_text(advertising_header_item, " (PDU Type: %s", adv_pdu_type_str_get(btle_context, pdu_type, is_periodic_adv));
item = proto_tree_add_item(advertising_header_tree, hf_advertising_header_pdu_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_item_append_text(item, " %s", adv_pdu_type_str_get(btle_context, pdu_type));
+ proto_item_append_text(item, " %s", adv_pdu_type_str_get(btle_context, pdu_type, is_periodic_adv));
proto_tree_add_item(advertising_header_tree, hf_advertising_header_rfu_1, tvb, offset, 1, ENC_LITTLE_ENDIAN);
if (ch_sel_valid) {
@@ -2062,7 +2124,7 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
proto_item_append_text(advertising_header_item, ")");
- col_set_str(pinfo->cinfo, COL_INFO, adv_pdu_type_str_get(btle_context, pdu_type));
+ col_set_str(pinfo->cinfo, COL_INFO, adv_pdu_type_str_get(btle_context, pdu_type, is_periodic_adv));
offset += 1;
@@ -2293,7 +2355,7 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
break;
case 0x07: /* ADV_EXT_IND / AUX_ADV_IND / AUX_SYNC_IND / AUX_CHAIN_IND / AUX_SCAN_RSP */
- case 0x08: /* AUX_CONNNECT_RSP */
+ case 0x08: /* AUX_CONNECT_RSP */
{
guint8 tmp, ext_header_len, flags, acad_len;
proto_item *ext_header_item, *ext_flags_item;
@@ -2447,7 +2509,7 @@ dissect_btle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
connection_info->direction_info[BTLE_DIR_SLAVE_MASTER].control_procs =
wmem_tree_new(wmem_file_scope());
- wmem_tree_insert32_array(connection_info_tree, key, connection_info);
+ wmem_tree_insert32_array(periodic_adv_info_tree, key, connection_info);
connection_parameter_info = wmem_new0(wmem_file_scope(), connection_parameter_info_t);
connection_parameter_info->parameters_frame = pinfo->num;
@@ -5983,6 +6045,7 @@ proto_register_btle(void)
};
connection_info_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+ periodic_adv_info_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
broadcastiso_connection_info_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
connection_parameter_info_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
adi_to_first_frame_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
diff --git a/epan/dissectors/packet-btmesh-pbadv.c b/epan/dissectors/packet-btmesh-pbadv.c
index eff558a7ff..e5a8bb9151 100644
--- a/epan/dissectors/packet-btmesh-pbadv.c
+++ b/epan/dissectors/packet-btmesh-pbadv.c
@@ -459,7 +459,7 @@ proto_register_btmesh_pbadv(void)
{ &hf_btmesh_gpp_fragments,
{ "Reassembled Generic Provisioning Payload Fragments", "pbadv.gen_prov.gpp.fragments",
FT_NONE, BASE_NONE, NULL, 0x0,
- "Generic Provisioning Payload Fragments", HFILL }
+ NULL, HFILL }
},
{ &hf_btmesh_gpp_fragment,
{ "Generic Provisioning Payload Fragment", "pbadv.gen_prov.gpp.fragment",
diff --git a/epan/dissectors/packet-btmesh-proxy.c b/epan/dissectors/packet-btmesh-proxy.c
index 2c167737fb..cdb758f29a 100644
--- a/epan/dissectors/packet-btmesh-proxy.c
+++ b/epan/dissectors/packet-btmesh-proxy.c
@@ -497,7 +497,7 @@ proto_register_btmesh_proxy(void)
{ &hf_btmesh_proxy_fragments,
{ "Reassembled Proxy Payload Fragments", "btmproxy.fragments",
FT_NONE, BASE_NONE, NULL, 0x0,
- "Proxy Payload Fragments", HFILL }
+ NULL, HFILL }
},
{ &hf_btmesh_proxy_fragment,
{ "Proxy Payload Fragment", "btmproxy.fragment",
diff --git a/epan/dissectors/packet-btmesh.c b/epan/dissectors/packet-btmesh.c
index 9ee61f4adf..2d74690d61 100644
--- a/epan/dissectors/packet-btmesh.c
+++ b/epan/dissectors/packet-btmesh.c
@@ -611,8 +611,8 @@ static dissector_table_t btmesh_model_vendor_dissector_table;
* UAT for BT Mesh
*-------------------------------------
*/
-static uat_t *btmesh_uat = NULL;
-static guint num_btmesh_uat = 0;
+static uat_t *btmesh_uat;
+static guint num_btmesh_uat;
/* UAT Network, Application and IVIndex entry structure. */
typedef struct {
@@ -633,10 +633,10 @@ typedef struct {
guint32 net_key_iv_index_hash; /* Used to identify net key / IV index pair */
} uat_btmesh_record_t;
-static uat_btmesh_record_t *uat_btmesh_records = NULL;
+static uat_btmesh_record_t *uat_btmesh_records;
-static uat_t *btmesh_dev_key_uat = NULL;
-static guint num_btmesh_dev_key_uat = 0;
+static uat_t *btmesh_dev_key_uat;
+static guint num_btmesh_dev_key_uat;
/* UAT Device Key entry structure. */
typedef struct {
@@ -649,10 +649,10 @@ typedef struct {
guint8 valid; /* this counter must be equal to BTMESH_DEVICE_KEY_ENTRY_VALID make UAT entry valid */
} uat_btmesh_dev_key_record_t;
-static uat_btmesh_dev_key_record_t *uat_btmesh_dev_key_records = NULL;
+static uat_btmesh_dev_key_record_t *uat_btmesh_dev_key_records;
-static uat_t * btmesh_label_uuid_uat = NULL;
-static guint num_btmesh_label_uuid_uat = 0;
+static uat_t * btmesh_label_uuid_uat;
+static guint num_btmesh_label_uuid_uat;
/* UAT Label UUID entry structure. */
typedef struct {
@@ -663,7 +663,7 @@ typedef struct {
guint8 valid; /* this counter must be equal to BTMESH_LABEL_UUID_ENTRY_VALID make UAT entry valid */
} uat_btmesh_label_uuid_record_t;
-static uat_btmesh_label_uuid_record_t *uat_btmesh_label_uuid_records = NULL;
+static uat_btmesh_label_uuid_record_t *uat_btmesh_label_uuid_records;
typedef struct {
guint16 property_id;
@@ -8721,7 +8721,7 @@ proto_register_btmesh(void)
{ &hf_btmesh_segmented_access_fragments,
{ "Reassembled Segmented Access Message Fragments", "btmesh.segmented.access.fragments",
FT_NONE, BASE_NONE, NULL, 0x0,
- "Segmented Access Message Fragments", HFILL }
+ NULL, HFILL }
},
{ &hf_btmesh_segmented_access_fragment,
{ "Segmented Access Message Fragment", "btmesh.segmented.access.fragment",
diff --git a/epan/dissectors/packet-btrfcomm.c b/epan/dissectors/packet-btrfcomm.c
index a05c5a4702..d024aad082 100644
--- a/epan/dissectors/packet-btrfcomm.c
+++ b/epan/dissectors/packet-btrfcomm.c
@@ -115,7 +115,7 @@ static dissector_handle_t btgnss_handle;
static dissector_table_t rfcomm_dlci_dissector_table;
-static wmem_tree_t *service_directions = NULL;
+static wmem_tree_t *service_directions;
typedef struct {
guint32 direction;
@@ -128,10 +128,10 @@ typedef struct {
dissector_handle_t payload_proto;
} uat_rfcomm_channels_t;
-static gboolean rfcomm_channels_enabled = FALSE;
-static uat_t *uat_rfcomm_channels = NULL;
-static uat_rfcomm_channels_t *rfcomm_channels = NULL;
-static guint num_rfcomm_channels = 0;
+static bool rfcomm_channels_enabled;
+static uat_t *uat_rfcomm_channels;
+static uat_rfcomm_channels_t *rfcomm_channels;
+static guint num_rfcomm_channels;
UAT_DEC_CB_DEF(rfcomm_channels, channel, uat_rfcomm_channels_t)
UAT_DISSECTOR_DEF(rfcomm_channels, payload_proto, payload_proto, payload_proto_name, uat_rfcomm_channels_t)
@@ -1006,12 +1006,12 @@ proto_register_btrfcomm(void)
{ &hf_mcc_cmd,
{ "MCC Command Type", "btrfcomm.mcc.cmd",
FT_UINT8, BASE_HEX, VALS(vs_ctl), 0xFC,
- "Command Type", HFILL}
+ NULL, HFILL}
},
{ &hf_frame_type,
{ "Frame type", "btrfcomm.frame_type",
FT_UINT8, BASE_HEX, VALS(vs_frame_type), 0xEF,
- "Command/Response flag", HFILL}
+ NULL, HFILL}
},
{ &hf_acknowledgement_timer_t1,
{ "Acknowledgement Timer T1", "btrfcomm.acknowledgement_timer_t1",
@@ -1057,27 +1057,27 @@ proto_register_btrfcomm(void)
{ &hf_msc_fc,
{ "Flow Control (FC)", "btrfcomm.msc.fc",
FT_UINT8, BASE_HEX, NULL, 0x02,
- "Flow Control", HFILL}
+ NULL, HFILL}
},
{ &hf_msc_rtc,
{ "Ready To Communicate (RTC)", "btrfcomm.msc.rtc",
FT_UINT8, BASE_HEX, NULL, 0x04,
- "Ready To Communicate", HFILL}
+ NULL, HFILL}
},
{ &hf_msc_rtr,
{ "Ready To Receive (RTR)", "btrfcomm.msc.rtr",
FT_UINT8, BASE_HEX, NULL, 0x08,
- "Ready To Receive", HFILL}
+ NULL, HFILL}
},
{ &hf_msc_ic,
{ "Incoming Call Indicator (IC)", "btrfcomm.msc.ic",
FT_UINT8, BASE_HEX, NULL, 0x40,
- "Incoming Call Indicator", HFILL}
+ NULL, HFILL}
},
{ &hf_msc_dv,
{ "Data Valid (DV)", "btrfcomm.msc.dv",
FT_UINT8, BASE_HEX, NULL, 0x80,
- "Data Valid", HFILL}
+ NULL, HFILL}
},
{ &hf_msc_l,
{ "Length of break in units of 200ms", "btrfcomm.msc.bl",
diff --git a/epan/dissectors/packet-btsdp.c b/epan/dissectors/packet-btsdp.c
index eb79e51c3f..074a037de2 100644
--- a/epan/dissectors/packet-btsdp.c
+++ b/epan/dissectors/packet-btsdp.c
@@ -568,10 +568,10 @@ static expert_field ei_length_bad;
static dissector_handle_t btsdp_handle;
-static wmem_tree_t *tid_requests = NULL;
-static wmem_tree_t *continuation_states = NULL;
-static wmem_tree_t *record_handle_services = NULL;
-static wmem_tree_t *service_infos = NULL;
+static wmem_tree_t *tid_requests;
+static wmem_tree_t *continuation_states;
+static wmem_tree_t *record_handle_services;
+static wmem_tree_t *service_infos;
typedef struct _tid_request_t {
guint32 interface_id;
diff --git a/epan/dissectors/packet-bvlc.c b/epan/dissectors/packet-bvlc.c
index 2b387abcb1..f3a7034e52 100644
--- a/epan/dissectors/packet-bvlc.c
+++ b/epan/dissectors/packet-bvlc.c
@@ -90,8 +90,8 @@ static int hf_bscvlc_connect_uuid;
static dissector_table_t bvlc_dissector_table;
static dissector_table_t bscvlc_dissector_table;
static dissector_table_t bvlc_ipv6_dissector_table;
-static dissector_handle_t bvlc_handle = NULL;
-static dissector_handle_t bscvlc_handle = NULL;
+static dissector_handle_t bvlc_handle;
+static dissector_handle_t bscvlc_handle;
static const value_string bvlc_function_names[] = {
{ 0x00, "BVLC-Result" },
diff --git a/epan/dissectors/packet-bzr.c b/epan/dissectors/packet-bzr.c
index edc051850e..8ac3b3eee9 100644
--- a/epan/dissectors/packet-bzr.c
+++ b/epan/dissectors/packet-bzr.c
@@ -37,7 +37,7 @@ static gint hf_bzr_packet_protocol_version;
static gint hf_bzr_packet_kind;
static dissector_handle_t bencode_handle;
-static dissector_handle_t bzr_handle = NULL;
+static dissector_handle_t bzr_handle;
#define REQUEST_VERSION_TWO "bzr request 2\n"
#define RESPONSE_VERSION_TWO "bzr response 2\n"
@@ -60,7 +60,7 @@ static const value_string message_results[] = {
};
/* desegmentation of Bazaar over TCP */
-static gboolean bzr_desegment = TRUE;
+static bool bzr_desegment = true;
static guint get_bzr_prefixed_len(tvbuff_t *tvb, int offset)
{
diff --git a/epan/dissectors/packet-c1222.c b/epan/dissectors/packet-c1222.c
index b2772266e5..b351c2af12 100644
--- a/epan/dissectors/packet-c1222.c
+++ b/epan/dissectors/packet-c1222.c
@@ -71,8 +71,8 @@
void proto_register_c1222(void);
-static dissector_handle_t c1222_handle=NULL;
-static dissector_handle_t c1222_udp_handle=NULL;
+static dissector_handle_t c1222_handle;
+static dissector_handle_t c1222_udp_handle;
/* Initialize the protocol and registered fields */
static int proto_c1222;
@@ -171,52 +171,52 @@ static int ett_c1222_crypto;
static int ett_c1222_cmd;
/* these pointers are for the header elements that may be needed to verify the crypto */
-static guint8 *aSO_context = NULL;
-static guint8 *called_AP_title = NULL;
-static guint8 *called_AP_invocation_id = NULL;
-static guint8 *calling_AE_qualifier = NULL;
-static guint8 *calling_AP_invocation_id = NULL;
-static guint8 *mechanism_name = NULL;
-static guint8 *calling_authentication_value = NULL;
-static guint8 *user_information = NULL;
-static guint8 *calling_AP_title = NULL;
-static guint8 *key_id_element = NULL;
-static guint8 *iv_element = NULL;
+static guint8 *aSO_context;
+static guint8 *called_AP_title;
+static guint8 *called_AP_invocation_id;
+static guint8 *calling_AE_qualifier;
+static guint8 *calling_AP_invocation_id;
+static guint8 *mechanism_name;
+static guint8 *calling_authentication_value;
+static guint8 *user_information;
+static guint8 *calling_AP_title;
+static guint8 *key_id_element;
+static guint8 *iv_element;
/* these are the related lengths */
-static guint32 aSO_context_len = 0;
-static guint32 called_AP_title_len = 0;
-static guint32 called_AP_invocation_id_len = 0;
-static guint32 calling_AE_qualifier_len = 0;
-static guint32 calling_AP_invocation_id_len = 0;
-static guint32 mechanism_name_len = 0;
-static guint32 calling_authentication_value_len = 0;
-static guint32 user_information_len = 0;
-static guint32 calling_AP_title_len = 0;
-static guint32 key_id_element_len = 0;
-static guint32 iv_element_len = 0;
+static guint32 aSO_context_len;
+static guint32 called_AP_title_len;
+static guint32 called_AP_invocation_id_len;
+static guint32 calling_AE_qualifier_len;
+static guint32 calling_AP_invocation_id_len;
+static guint32 mechanism_name_len;
+static guint32 calling_authentication_value_len;
+static guint32 user_information_len;
+static guint32 calling_AP_title_len;
+static guint32 key_id_element_len;
+static guint32 iv_element_len;
/* these are the related allocation sizes (which might be different from the lengths) */
-static guint32 aSO_context_allocated = 0;
-static guint32 called_AP_title_allocated = 0;
-static guint32 called_AP_invocation_id_allocated = 0;
-static guint32 calling_AE_qualifier_allocated = 0;
-static guint32 calling_AP_invocation_id_allocated = 0;
-static guint32 mechanism_name_allocated = 0;
-static guint32 calling_authentication_value_allocated = 0;
-static guint32 user_information_allocated = 0;
-static guint32 calling_AP_title_allocated = 0;
-static guint32 key_id_element_allocated = 0;
-static guint32 iv_element_allocated = 0;
-
-static gint ett_c1222_MESSAGE_U;
-static gint ett_c1222_Called_AP_title;
-static gint ett_c1222_Calling_AP_title;
-static gint ett_c1222_Calling_authentication_value_U;
-static gint ett_c1222_Authentication_value_encoding;
-static gint ett_c1222_Calling_authentication_value_single_asn1;
-static gint ett_c1222_Calling_authentication_value_c1222_U;
-static gint ett_c1222_Calling_authentication_value_c1221_U;
+static guint32 aSO_context_allocated;
+static guint32 called_AP_title_allocated;
+static guint32 called_AP_invocation_id_allocated;
+static guint32 calling_AE_qualifier_allocated;
+static guint32 calling_AP_invocation_id_allocated;
+static guint32 mechanism_name_allocated;
+static guint32 calling_authentication_value_allocated;
+static guint32 user_information_allocated;
+static guint32 calling_AP_title_allocated;
+static guint32 key_id_element_allocated;
+static guint32 iv_element_allocated;
+
+static int ett_c1222_MESSAGE_U;
+static int ett_c1222_Called_AP_title;
+static int ett_c1222_Calling_AP_title;
+static int ett_c1222_Calling_authentication_value_U;
+static int ett_c1222_Authentication_value_encoding;
+static int ett_c1222_Calling_authentication_value_single_asn1;
+static int ett_c1222_Calling_authentication_value_c1222_U;
+static int ett_c1222_Calling_authentication_value_c1221_U;
static expert_field ei_c1222_command_truncated;
static expert_field ei_c1222_bad_checksum;
@@ -229,12 +229,12 @@ static expert_field ei_c1222_epsem_field_length_error;
static expert_field ei_c1222_mac_missing;
/* Preferences */
-static gboolean c1222_desegment = TRUE;
-static gboolean c1222_decrypt = TRUE;
-static gboolean c1222_big_endian = FALSE;
-static const gchar *c1222_baseoid_str = NULL;
-static guint8 *c1222_baseoid = NULL;
-static guint c1222_baseoid_len = 0;
+static bool c1222_desegment = true;
+static bool c1222_decrypt = true;
+static bool c1222_big_endian;
+static const gchar *c1222_baseoid_str;
+static guint8 *c1222_baseoid;
+static guint c1222_baseoid_len;
/*------------------------------
* Data Structures
@@ -340,8 +340,8 @@ typedef struct _c1222_uat_data {
UAT_HEX_CB_DEF(c1222_users, keynum, c1222_uat_data_t)
UAT_BUFFER_CB_DEF(c1222_users, key, c1222_uat_data_t, key, keylen)
-static c1222_uat_data_t *c1222_uat_data = NULL;
-static guint num_c1222_uat_data = 0;
+static c1222_uat_data_t *c1222_uat_data;
+static guint num_c1222_uat_data;
static uat_t *c1222_uat;
/* these macros ares used to populate fields needed to verify crypto */
diff --git a/epan/dissectors/packet-c15ch.c b/epan/dissectors/packet-c15ch.c
index ecb24d05e9..8f93f44850 100644
--- a/epan/dissectors/packet-c15ch.c
+++ b/epan/dissectors/packet-c15ch.c
@@ -132,12 +132,12 @@ static gint ett_c15ch_second_level_sub3;
static gint ett_c15ch_second_level_sub4;
static int proto_c15ch_second_level;
-static dissector_handle_t c15ch_hbeat_handle = NULL;
-static dissector_handle_t c15ch_handle = NULL;
+static dissector_handle_t c15ch_hbeat_handle;
+static dissector_handle_t c15ch_handle;
-static dissector_handle_t general_sccp_handle = NULL;
-static dissector_handle_t general_isup_handle = NULL;
-static dissector_handle_t general_q931_handle = NULL;
+static dissector_handle_t general_sccp_handle;
+static dissector_handle_t general_isup_handle;
+static dissector_handle_t general_q931_handle;
/* ama */
/* Fields */
@@ -3011,7 +3011,7 @@ static const value_string c15inc_gwe_task_types[] = {
};
#if 0
-static const guint8 INVALID_TASK_TYPE_VAL = 0;
+static const guint8 INVALID_TASK_TYPE_VAL;
#endif
static const value_string c15inc_gwe_bc_fiat_types[] = {
diff --git a/epan/dissectors/packet-calcappprotocol.c b/epan/dissectors/packet-calcappprotocol.c
index 4dc9e51e45..2e00190885 100644
--- a/epan/dissectors/packet-calcappprotocol.c
+++ b/epan/dissectors/packet-calcappprotocol.c
@@ -38,8 +38,8 @@ static int hf_message_jobid;
static int hf_message_jobsize;
static int hf_message_completed;
-static guint64 calcappprotocol_total_msgs = 0;
-static guint64 calcappprotocol_total_bytes = 0;
+static guint64 calcappprotocol_total_msgs;
+static guint64 calcappprotocol_total_bytes;
/* Initialize the subtree pointers */
static gint ett_calcappprotocol;
@@ -127,7 +127,7 @@ dissect_calcappprotocol(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *t
};
/* dissect the message */
dissect_calcappprotocol_message(message_tvb, pinfo, calcappprotocol_tree);
- return(TRUE);
+ return TRUE;
}
diff --git a/epan/dissectors/packet-camel.c b/epan/dissectors/packet-camel.c
index 702ba4b419..092318c1c3 100644
--- a/epan/dissectors/packet-camel.c
+++ b/epan/dissectors/packet-camel.c
@@ -59,7 +59,7 @@ static int camel_tap;
/* Global variables */
static guint32 opcode=0;
static guint32 errorCode=0;
-static guint32 camel_ver = 0;
+static guint32 camel_ver;
/* When several Camel components are received in a single TCAP message,
we have to use several buffers for the stored parameters
@@ -606,7 +606,7 @@ static int dissect_camel_EstablishTemporaryConnectionArgV2(bool implicit_tag _U_
static int dissect_camel_SpecializedResourceReportArgV23(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/* XXX - can we get rid of these and always do the SRT work? */
-static gboolean gcamel_PersistentSRT=FALSE;
+static bool gcamel_PersistentSRT=false;
static gboolean gcamel_DisplaySRT=FALSE;
gboolean gcamel_StatSRT=FALSE;
@@ -634,202 +634,202 @@ static gint ett_camel_number;
static gint ett_camel_digitsResponse;
static gint ett_camel_timeandtimezone;
-static gint ett_camel_AChChargingAddress;
-static gint ett_camel_AOCBeforeAnswer;
-static gint ett_camel_AOCGPRS;
-static gint ett_camel_AOCSubsequent;
-static gint ett_camel_AudibleIndicator;
-static gint ett_camel_BackwardServiceInteractionInd;
-static gint ett_camel_BasicGapCriteria;
-static gint ett_camel_T_calledAddressAndService;
-static gint ett_camel_T_callingAddressAndService;
-static gint ett_camel_BCSMEvent;
-static gint ett_camel_BCSM_Failure;
-static gint ett_camel_BearerCapability;
-static gint ett_camel_Burst;
-static gint ett_camel_BurstList;
-static gint ett_camel_CAI_GSM0224;
-static gint ett_camel_CallSegmentFailure;
-static gint ett_camel_CallSegmentToCancel;
-static gint ett_camel_CAMEL_AChBillingChargingCharacteristics;
-static gint ett_camel_T_timeDurationCharging;
-static gint ett_camel_CAMEL_CallResult;
-static gint ett_camel_T_timeDurationChargingResult;
-static gint ett_camel_CAMEL_FCIBillingChargingCharacteristics;
-static gint ett_camel_T_fci_fCIBCCCAMELsequence1;
-static gint ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics;
-static gint ett_camel_T_fciGPRS_fCIBCCCAMELsequence1;
-static gint ett_camel_CAMEL_FCISMSBillingChargingCharacteristics;
-static gint ett_camel_T_fciSMS_fCIBCCCAMELsequence1;
-static gint ett_camel_CAMEL_SCIBillingChargingCharacteristics;
-static gint ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt;
-static gint ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics;
-static gint ett_camel_ChangeOfPositionControlInfo;
-static gint ett_camel_ChangeOfLocation;
-static gint ett_camel_ChangeOfLocationAlt;
-static gint ett_camel_ChargingCharacteristics;
-static gint ett_camel_ChargingResult;
-static gint ett_camel_ChargingRollOver;
-static gint ett_camel_CollectedDigits;
-static gint ett_camel_CollectedInfo;
-static gint ett_camel_CompoundCriteria;
-static gint ett_camel_DestinationRoutingAddress;
-static gint ett_camel_DpSpecificCriteria;
-static gint ett_camel_DpSpecificCriteriaAlt;
-static gint ett_camel_DpSpecificInfoAlt;
-static gint ett_camel_T_oServiceChangeSpecificInfo;
-static gint ett_camel_T_tServiceChangeSpecificInfo;
-static gint ett_camel_T_collectedInfoSpecificInfo;
-static gint ett_camel_ElapsedTime;
-static gint ett_camel_T_timeGPRSIfTariffSwitch;
-static gint ett_camel_ElapsedTimeRollOver;
-static gint ett_camel_T_rO_TimeGPRSIfTariffSwitch;
-static gint ett_camel_EndUserAddress;
-static gint ett_camel_EventSpecificInformationBCSM;
-static gint ett_camel_T_routeSelectFailureSpecificInfo;
-static gint ett_camel_T_oCalledPartyBusySpecificInfo;
-static gint ett_camel_T_oNoAnswerSpecificInfo;
-static gint ett_camel_T_oAnswerSpecificInfo;
-static gint ett_camel_T_oMidCallSpecificInfo;
-static gint ett_camel_T_omidCallEvents;
-static gint ett_camel_T_oDisconnectSpecificInfo;
-static gint ett_camel_T_tBusySpecificInfo;
-static gint ett_camel_T_tNoAnswerSpecificInfo;
-static gint ett_camel_T_tAnswerSpecificInfo;
-static gint ett_camel_T_tMidCallSpecificInfo;
-static gint ett_camel_T_tmidCallEvents;
-static gint ett_camel_T_tDisconnectSpecificInfo;
-static gint ett_camel_T_oTermSeizedSpecificInfo;
-static gint ett_camel_T_callAcceptedSpecificInfo;
-static gint ett_camel_T_oAbandonSpecificInfo;
-static gint ett_camel_T_oChangeOfPositionSpecificInfo;
-static gint ett_camel_T_tChangeOfPositionSpecificInfo;
-static gint ett_camel_EventSpecificInformationSMS;
-static gint ett_camel_T_o_smsFailureSpecificInfo;
-static gint ett_camel_T_o_smsSubmissionSpecificInfo;
-static gint ett_camel_T_t_smsFailureSpecificInfo;
-static gint ett_camel_T_t_smsDeliverySpecificInfo;
-static gint ett_camel_Extensions;
-static gint ett_camel_ExtensionField;
-static gint ett_camel_ForwardServiceInteractionInd;
-static gint ett_camel_GapCriteria;
-static gint ett_camel_GapIndicators;
-static gint ett_camel_GapOnService;
-static gint ett_camel_GapTreatment;
-static gint ett_camel_GenericNumbers;
-static gint ett_camel_GPRS_QoS;
-static gint ett_camel_GPRS_QoS_Extension;
-static gint ett_camel_GPRSEvent;
-static gint ett_camel_GPRSEventSpecificInformation;
-static gint ett_camel_T_attachChangeOfPositionSpecificInformation;
-static gint ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation;
-static gint ett_camel_T_detachSpecificInformation;
-static gint ett_camel_T_disconnectSpecificInformation;
-static gint ett_camel_T_pDPContextEstablishmentSpecificInformation;
-static gint ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation;
-static gint ett_camel_InbandInfo;
-static gint ett_camel_InformationToSend;
-static gint ett_camel_LegOrCallSegment;
-static gint ett_camel_LocationInformationGPRS;
-static gint ett_camel_MessageID;
-static gint ett_camel_T_text;
-static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4;
-static gint ett_camel_T_variableMessage;
-static gint ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart;
-static gint ett_camel_MetDPCriteriaList;
-static gint ett_camel_MetDPCriterion;
-static gint ett_camel_MetDPCriterionAlt;
-static gint ett_camel_MidCallControlInfo;
-static gint ett_camel_QualityOfService;
-static gint ett_camel_ReceivingSideID;
-static gint ett_camel_RequestedInformationList;
-static gint ett_camel_RequestedInformationTypeList;
-static gint ett_camel_RequestedInformation;
-static gint ett_camel_RequestedInformationValue;
-static gint ett_camel_SendingSideID;
-static gint ett_camel_ServiceInteractionIndicatorsTwo;
-static gint ett_camel_SMSEvent;
-static gint ett_camel_TimeIfTariffSwitch;
-static gint ett_camel_TimeInformation;
-static gint ett_camel_Tone;
-static gint ett_camel_TransferredVolume;
-static gint ett_camel_T_volumeIfTariffSwitch;
-static gint ett_camel_TransferredVolumeRollOver;
-static gint ett_camel_T_rO_VolumeIfTariffSwitch;
-static gint ett_camel_VariablePart;
-static gint ett_camel_PAR_cancelFailed;
-static gint ett_camel_CAP_GPRS_ReferenceNumber;
-static gint ett_camel_PlayAnnouncementArg;
-static gint ett_camel_PromptAndCollectUserInformationArg;
-static gint ett_camel_ReceivedInformationArg;
-static gint ett_camel_SpecializedResourceReportArg;
-static gint ett_camel_ApplyChargingArg;
-static gint ett_camel_AssistRequestInstructionsArg;
-static gint ett_camel_CallGapArg;
-static gint ett_camel_CallInformationReportArg;
-static gint ett_camel_CallInformationRequestArg;
-static gint ett_camel_CancelArg;
-static gint ett_camel_CollectInformationArg;
-static gint ett_camel_ConnectArg;
-static gint ett_camel_ConnectToResourceArg;
-static gint ett_camel_T_resourceAddress;
-static gint ett_camel_ContinueWithArgumentArg;
-static gint ett_camel_ContinueWithArgumentArgExtension;
-static gint ett_camel_DisconnectForwardConnectionWithArgumentArg;
-static gint ett_camel_DisconnectLegArg;
-static gint ett_camel_EntityReleasedArg;
-static gint ett_camel_EstablishTemporaryConnectionArg;
-static gint ett_camel_EventReportBCSMArg;
-static gint ett_camel_InitialDPArg;
-static gint ett_camel_InitialDPArgExtension;
-static gint ett_camel_InitiateCallAttemptArg;
-static gint ett_camel_InitiateCallAttemptRes;
-static gint ett_camel_MoveLegArg;
-static gint ett_camel_PlayToneArg;
-static gint ett_camel_ReleaseCallArg;
-static gint ett_camel_AllCallSegmentsWithExtension;
-static gint ett_camel_RequestReportBCSMEventArg;
-static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent;
-static gint ett_camel_ResetTimerArg;
-static gint ett_camel_SendChargingInformationArg;
-static gint ett_camel_SplitLegArg;
-static gint ett_camel_ApplyChargingGPRSArg;
-static gint ett_camel_ApplyChargingReportGPRSArg;
-static gint ett_camel_CancelGPRSArg;
-static gint ett_camel_ConnectGPRSArg;
-static gint ett_camel_ContinueGPRSArg;
-static gint ett_camel_EntityReleasedGPRSArg;
-static gint ett_camel_EventReportGPRSArg;
-static gint ett_camel_InitialDPGPRSArg;
-static gint ett_camel_ReleaseGPRSArg;
-static gint ett_camel_RequestReportGPRSEventArg;
-static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent;
-static gint ett_camel_ResetTimerGPRSArg;
-static gint ett_camel_SendChargingInformationGPRSArg;
-static gint ett_camel_ConnectSMSArg;
-static gint ett_camel_EventReportSMSArg;
-static gint ett_camel_InitialDPSMSArg;
-static gint ett_camel_RequestReportSMSEventArg;
-static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent;
-static gint ett_camel_ResetTimerSMSArg;
-static gint ett_camel_EstablishTemporaryConnectionArgV2;
-static gint ett_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField;
-static gint ett_camel_InitialDPArgExtensionV2;
-static gint ett_camel_NACarrierInformation;
-static gint ett_camel_NA_Info;
-static gint ett_camel_CAMEL_AChBillingChargingCharacteristicsV2;
-static gint ett_camel_T_timeDurationCharging_01;
-static gint ett_camel_ReleaseIfDurationExceeded;
-static gint ett_camel_Code;
-static gint ett_camel_ROS;
-static gint ett_camel_Invoke;
-static gint ett_camel_T_linkedId;
-static gint ett_camel_ReturnResult;
-static gint ett_camel_T_result;
-static gint ett_camel_ReturnError;
-static gint ett_camel_Reject;
-static gint ett_camel_T_problem;
-static gint ett_camel_InvokeId;
+static int ett_camel_AChChargingAddress;
+static int ett_camel_AOCBeforeAnswer;
+static int ett_camel_AOCGPRS;
+static int ett_camel_AOCSubsequent;
+static int ett_camel_AudibleIndicator;
+static int ett_camel_BackwardServiceInteractionInd;
+static int ett_camel_BasicGapCriteria;
+static int ett_camel_T_calledAddressAndService;
+static int ett_camel_T_callingAddressAndService;
+static int ett_camel_BCSMEvent;
+static int ett_camel_BCSM_Failure;
+static int ett_camel_BearerCapability;
+static int ett_camel_Burst;
+static int ett_camel_BurstList;
+static int ett_camel_CAI_GSM0224;
+static int ett_camel_CallSegmentFailure;
+static int ett_camel_CallSegmentToCancel;
+static int ett_camel_CAMEL_AChBillingChargingCharacteristics;
+static int ett_camel_T_timeDurationCharging;
+static int ett_camel_CAMEL_CallResult;
+static int ett_camel_T_timeDurationChargingResult;
+static int ett_camel_CAMEL_FCIBillingChargingCharacteristics;
+static int ett_camel_T_fci_fCIBCCCAMELsequence1;
+static int ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics;
+static int ett_camel_T_fciGPRS_fCIBCCCAMELsequence1;
+static int ett_camel_CAMEL_FCISMSBillingChargingCharacteristics;
+static int ett_camel_T_fciSMS_fCIBCCCAMELsequence1;
+static int ett_camel_CAMEL_SCIBillingChargingCharacteristics;
+static int ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt;
+static int ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics;
+static int ett_camel_ChangeOfPositionControlInfo;
+static int ett_camel_ChangeOfLocation;
+static int ett_camel_ChangeOfLocationAlt;
+static int ett_camel_ChargingCharacteristics;
+static int ett_camel_ChargingResult;
+static int ett_camel_ChargingRollOver;
+static int ett_camel_CollectedDigits;
+static int ett_camel_CollectedInfo;
+static int ett_camel_CompoundCriteria;
+static int ett_camel_DestinationRoutingAddress;
+static int ett_camel_DpSpecificCriteria;
+static int ett_camel_DpSpecificCriteriaAlt;
+static int ett_camel_DpSpecificInfoAlt;
+static int ett_camel_T_oServiceChangeSpecificInfo;
+static int ett_camel_T_tServiceChangeSpecificInfo;
+static int ett_camel_T_collectedInfoSpecificInfo;
+static int ett_camel_ElapsedTime;
+static int ett_camel_T_timeGPRSIfTariffSwitch;
+static int ett_camel_ElapsedTimeRollOver;
+static int ett_camel_T_rO_TimeGPRSIfTariffSwitch;
+static int ett_camel_EndUserAddress;
+static int ett_camel_EventSpecificInformationBCSM;
+static int ett_camel_T_routeSelectFailureSpecificInfo;
+static int ett_camel_T_oCalledPartyBusySpecificInfo;
+static int ett_camel_T_oNoAnswerSpecificInfo;
+static int ett_camel_T_oAnswerSpecificInfo;
+static int ett_camel_T_oMidCallSpecificInfo;
+static int ett_camel_T_omidCallEvents;
+static int ett_camel_T_oDisconnectSpecificInfo;
+static int ett_camel_T_tBusySpecificInfo;
+static int ett_camel_T_tNoAnswerSpecificInfo;
+static int ett_camel_T_tAnswerSpecificInfo;
+static int ett_camel_T_tMidCallSpecificInfo;
+static int ett_camel_T_tmidCallEvents;
+static int ett_camel_T_tDisconnectSpecificInfo;
+static int ett_camel_T_oTermSeizedSpecificInfo;
+static int ett_camel_T_callAcceptedSpecificInfo;
+static int ett_camel_T_oAbandonSpecificInfo;
+static int ett_camel_T_oChangeOfPositionSpecificInfo;
+static int ett_camel_T_tChangeOfPositionSpecificInfo;
+static int ett_camel_EventSpecificInformationSMS;
+static int ett_camel_T_o_smsFailureSpecificInfo;
+static int ett_camel_T_o_smsSubmissionSpecificInfo;
+static int ett_camel_T_t_smsFailureSpecificInfo;
+static int ett_camel_T_t_smsDeliverySpecificInfo;
+static int ett_camel_Extensions;
+static int ett_camel_ExtensionField;
+static int ett_camel_ForwardServiceInteractionInd;
+static int ett_camel_GapCriteria;
+static int ett_camel_GapIndicators;
+static int ett_camel_GapOnService;
+static int ett_camel_GapTreatment;
+static int ett_camel_GenericNumbers;
+static int ett_camel_GPRS_QoS;
+static int ett_camel_GPRS_QoS_Extension;
+static int ett_camel_GPRSEvent;
+static int ett_camel_GPRSEventSpecificInformation;
+static int ett_camel_T_attachChangeOfPositionSpecificInformation;
+static int ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation;
+static int ett_camel_T_detachSpecificInformation;
+static int ett_camel_T_disconnectSpecificInformation;
+static int ett_camel_T_pDPContextEstablishmentSpecificInformation;
+static int ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation;
+static int ett_camel_InbandInfo;
+static int ett_camel_InformationToSend;
+static int ett_camel_LegOrCallSegment;
+static int ett_camel_LocationInformationGPRS;
+static int ett_camel_MessageID;
+static int ett_camel_T_text;
+static int ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4;
+static int ett_camel_T_variableMessage;
+static int ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart;
+static int ett_camel_MetDPCriteriaList;
+static int ett_camel_MetDPCriterion;
+static int ett_camel_MetDPCriterionAlt;
+static int ett_camel_MidCallControlInfo;
+static int ett_camel_QualityOfService;
+static int ett_camel_ReceivingSideID;
+static int ett_camel_RequestedInformationList;
+static int ett_camel_RequestedInformationTypeList;
+static int ett_camel_RequestedInformation;
+static int ett_camel_RequestedInformationValue;
+static int ett_camel_SendingSideID;
+static int ett_camel_ServiceInteractionIndicatorsTwo;
+static int ett_camel_SMSEvent;
+static int ett_camel_TimeIfTariffSwitch;
+static int ett_camel_TimeInformation;
+static int ett_camel_Tone;
+static int ett_camel_TransferredVolume;
+static int ett_camel_T_volumeIfTariffSwitch;
+static int ett_camel_TransferredVolumeRollOver;
+static int ett_camel_T_rO_VolumeIfTariffSwitch;
+static int ett_camel_VariablePart;
+static int ett_camel_PAR_cancelFailed;
+static int ett_camel_CAP_GPRS_ReferenceNumber;
+static int ett_camel_PlayAnnouncementArg;
+static int ett_camel_PromptAndCollectUserInformationArg;
+static int ett_camel_ReceivedInformationArg;
+static int ett_camel_SpecializedResourceReportArg;
+static int ett_camel_ApplyChargingArg;
+static int ett_camel_AssistRequestInstructionsArg;
+static int ett_camel_CallGapArg;
+static int ett_camel_CallInformationReportArg;
+static int ett_camel_CallInformationRequestArg;
+static int ett_camel_CancelArg;
+static int ett_camel_CollectInformationArg;
+static int ett_camel_ConnectArg;
+static int ett_camel_ConnectToResourceArg;
+static int ett_camel_T_resourceAddress;
+static int ett_camel_ContinueWithArgumentArg;
+static int ett_camel_ContinueWithArgumentArgExtension;
+static int ett_camel_DisconnectForwardConnectionWithArgumentArg;
+static int ett_camel_DisconnectLegArg;
+static int ett_camel_EntityReleasedArg;
+static int ett_camel_EstablishTemporaryConnectionArg;
+static int ett_camel_EventReportBCSMArg;
+static int ett_camel_InitialDPArg;
+static int ett_camel_InitialDPArgExtension;
+static int ett_camel_InitiateCallAttemptArg;
+static int ett_camel_InitiateCallAttemptRes;
+static int ett_camel_MoveLegArg;
+static int ett_camel_PlayToneArg;
+static int ett_camel_ReleaseCallArg;
+static int ett_camel_AllCallSegmentsWithExtension;
+static int ett_camel_RequestReportBCSMEventArg;
+static int ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent;
+static int ett_camel_ResetTimerArg;
+static int ett_camel_SendChargingInformationArg;
+static int ett_camel_SplitLegArg;
+static int ett_camel_ApplyChargingGPRSArg;
+static int ett_camel_ApplyChargingReportGPRSArg;
+static int ett_camel_CancelGPRSArg;
+static int ett_camel_ConnectGPRSArg;
+static int ett_camel_ContinueGPRSArg;
+static int ett_camel_EntityReleasedGPRSArg;
+static int ett_camel_EventReportGPRSArg;
+static int ett_camel_InitialDPGPRSArg;
+static int ett_camel_ReleaseGPRSArg;
+static int ett_camel_RequestReportGPRSEventArg;
+static int ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent;
+static int ett_camel_ResetTimerGPRSArg;
+static int ett_camel_SendChargingInformationGPRSArg;
+static int ett_camel_ConnectSMSArg;
+static int ett_camel_EventReportSMSArg;
+static int ett_camel_InitialDPSMSArg;
+static int ett_camel_RequestReportSMSEventArg;
+static int ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent;
+static int ett_camel_ResetTimerSMSArg;
+static int ett_camel_EstablishTemporaryConnectionArgV2;
+static int ett_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField;
+static int ett_camel_InitialDPArgExtensionV2;
+static int ett_camel_NACarrierInformation;
+static int ett_camel_NA_Info;
+static int ett_camel_CAMEL_AChBillingChargingCharacteristicsV2;
+static int ett_camel_T_timeDurationCharging_01;
+static int ett_camel_ReleaseIfDurationExceeded;
+static int ett_camel_Code;
+static int ett_camel_ROS;
+static int ett_camel_Invoke;
+static int ett_camel_T_linkedId;
+static int ett_camel_ReturnResult;
+static int ett_camel_T_result;
+static int ett_camel_ReturnError;
+static int ett_camel_Reject;
+static int ett_camel_T_problem;
+static int ett_camel_InvokeId;
static expert_field ei_camel_unknown_invokeData;
static expert_field ei_camel_unknown_returnResultData;
@@ -850,11 +850,11 @@ static dissector_handle_t camel_v4_handle;
static guint8 PDPTypeOrganization;
static guint8 PDPTypeNumber;
-const char *camel_obj_id = NULL;
-gboolean is_ExtensionField =FALSE;
+const char *camel_obj_id;
+gboolean is_ExtensionField;
/* Global hash tables*/
-static wmem_map_t *srt_calls = NULL;
+static wmem_map_t *srt_calls;
static guint32 camelsrt_global_SessionId=1;
static int camel_opcode_type;
@@ -1347,7 +1347,7 @@ dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, _U_ guint len,
"Diagnostic : %u", oct);
curr_offset++;
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static int dissect_camel_InitialDPArgExtensionV2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -8097,8 +8097,8 @@ camelsrt_razinfo(void)
}
-static guint8 camel_pdu_type = 0;
-static guint8 camel_pdu_size = 0;
+static guint8 camel_pdu_type;
+static guint8 camel_pdu_size;
static int
diff --git a/epan/dissectors/packet-caneth.c b/epan/dissectors/packet-caneth.c
index 5c6b7ea42a..c3817bc130 100644
--- a/epan/dissectors/packet-caneth.c
+++ b/epan/dissectors/packet-caneth.c
@@ -92,7 +92,6 @@ dissect_caneth_can(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
{
proto_tree *can_tree;
proto_item *ti;
- guint32 data_len;
guint32 raw_can_id;
gint8 ext_flag;
gint8 rtr_flag;
@@ -117,20 +116,22 @@ dissect_caneth_can(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
}
can_info.id |= (ext_flag ? CAN_EFF_FLAG : 0) | (rtr_flag ? CAN_RTR_FLAG : 0);
+ can_info.fd = CAN_TYPE_CAN_CLASSIC;
+ can_info.bus_id = 0; /* see get_bus_id in packet-socketcan.c? */
- proto_tree_add_item_ret_uint(can_tree, hf_caneth_can_len, tvb, CAN_DLC_OFFSET, 1, ENC_NA, &data_len);
+ proto_tree_add_item_ret_uint(can_tree, hf_caneth_can_len, tvb, CAN_DLC_OFFSET, 1, ENC_NA, &can_info.len);
proto_tree_add_item(can_tree, hf_caneth_can_extflag, tvb, CAN_EXT_FLAG_OFFSET, 1, ENC_NA);
proto_tree_add_item(can_tree, hf_caneth_can_rtrflag, tvb, CAN_RTR_FLAG_OFFSET, 1, ENC_NA);
- next_tvb = tvb_new_subset_length(tvb, CAN_DATA_OFFSET, data_len);
+ next_tvb = tvb_new_subset_length(tvb, CAN_DATA_OFFSET, can_info.len);
if (!socketcan_call_subdissectors(next_tvb, pinfo, tree, &can_info, FALSE)) {
call_data_dissector(next_tvb, pinfo, tree);
}
- if (tvb_captured_length_remaining(tvb, CAN_DATA_OFFSET + data_len) > 0)
+ if (tvb_captured_length_remaining(tvb, CAN_DATA_OFFSET + can_info.len) > 0)
{
- proto_tree_add_item(can_tree, hf_caneth_can_padding, tvb, CAN_DATA_OFFSET + data_len, -1, ENC_NA);
+ proto_tree_add_item(can_tree, hf_caneth_can_padding, tvb, CAN_DATA_OFFSET + can_info.len, -1, ENC_NA);
}
return tvb_captured_length(tvb);
}
diff --git a/epan/dissectors/packet-canopen.c b/epan/dissectors/packet-canopen.c
index 03fed3bf24..1c237d9121 100644
--- a/epan/dissectors/packet-canopen.c
+++ b/epan/dissectors/packet-canopen.c
@@ -1515,7 +1515,7 @@ proto_register_canopen(void)
{ &hf_canopen_sdo_cmd_toggle,
{ "Toggle bit", "canopen.sdo.toggle",
FT_UINT8, BASE_DEC, NULL, 0x10,
- "toggle", HFILL }},
+ NULL, HFILL }},
{ &hf_canopen_sdo_cmd_updown_n,
{ "Non-data bytes", "canopen.sdo.n",
FT_UINT8, BASE_DEC, NULL, 0x0E,
diff --git a/epan/dissectors/packet-capwap.c b/epan/dissectors/packet-capwap.c
index 5ce29f966d..1c291e35bf 100644
--- a/epan/dissectors/packet-capwap.c
+++ b/epan/dissectors/packet-capwap.c
@@ -29,10 +29,10 @@ static dissector_handle_t capwap_data_handle;
#define UDP_PORT_CAPWAP_CONTROL 5246
#define UDP_PORT_CAPWAP_DATA 5247
-static range_t *global_capwap_data_udp_ports = NULL;
-static gboolean global_capwap_draft_8_cisco = FALSE;
-static gboolean global_capwap_reassemble = TRUE;
-static gboolean global_capwap_swap_frame_control = TRUE;
+static range_t *global_capwap_data_udp_ports;
+static bool global_capwap_draft_8_cisco;
+static bool global_capwap_reassemble = true;
+static bool global_capwap_swap_frame_control = true;
static reassembly_table capwap_reassembly_table;
diff --git a/epan/dissectors/packet-carp.c b/epan/dissectors/packet-carp.c
index 6d222dc590..9b89d6ea81 100644
--- a/epan/dissectors/packet-carp.c
+++ b/epan/dissectors/packet-carp.c
@@ -166,17 +166,17 @@ void proto_register_carp(void)
{ &hf_carp_ver_type,
{"CARP message version and type", "carp.typever",
FT_UINT8, BASE_DEC, NULL, 0x0,
- "CARP version and type", HFILL }},
+ NULL, HFILL }},
{ &hf_carp_version,
{"CARP protocol version", "carp.version",
FT_UINT8, BASE_DEC, NULL, CARP_VERSION_MASK,
- "CARP version", HFILL }},
+ NULL, HFILL }},
{ &hf_carp_type,
{"CARP packet type", "carp.type",
FT_UINT8, BASE_DEC, VALS(carp_type_vals), CARP_TYPE_MASK,
- "CARP type", HFILL }},
+ NULL, HFILL }},
{ &hf_carp_vhid,
{"Virtual Host ID", "carp.vhid",
diff --git a/epan/dissectors/packet-cast.c b/epan/dissectors/packet-cast.c
index fac820e03c..93209b5946 100644
--- a/epan/dissectors/packet-cast.c
+++ b/epan/dissectors/packet-cast.c
@@ -380,7 +380,7 @@ static gint ett_cast;
static gint ett_cast_tree;
/* desegmentation of SCCP */
-static gboolean cast_desegment = TRUE;
+static bool cast_desegment = true;
/* Dissect a single CAST PDU */
static int
diff --git a/epan/dissectors/packet-catapult-dct2000.c b/epan/dissectors/packet-catapult-dct2000.c
index c7cc35dd0b..88782aebf8 100644
--- a/epan/dissectors/packet-catapult-dct2000.c
+++ b/epan/dissectors/packet-catapult-dct2000.c
@@ -130,12 +130,12 @@ static int hf_catapult_dct2000_rawtraffic_pdu;
/* Variables used for preferences */
-static gboolean catapult_dct2000_try_ipprim_heuristic = TRUE;
-static gboolean catapult_dct2000_try_sctpprim_heuristic = TRUE;
-static gboolean catapult_dct2000_dissect_lte_rrc = TRUE;
-static gboolean catapult_dct2000_dissect_mac_lte_oob_messages = TRUE;
-static gboolean catapult_dct2000_dissect_old_protocol_names = FALSE;
-static gboolean catapult_dct2000_use_protocol_name_as_dissector_name = FALSE;
+static bool catapult_dct2000_try_ipprim_heuristic = true;
+static bool catapult_dct2000_try_sctpprim_heuristic = true;
+static bool catapult_dct2000_dissect_lte_rrc = true;
+static bool catapult_dct2000_dissect_mac_lte_oob_messages = true;
+static bool catapult_dct2000_dissect_old_protocol_names;
+static bool catapult_dct2000_use_protocol_name_as_dissector_name;
/* Protocol subtree. */
static int ett_catapult_dct2000;
@@ -2913,6 +2913,9 @@ dissect_catapult_dct2000(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
case 5:
p_mac_nr_info->rntiType = C_RNTI;
break;
+ case 6:
+ p_mac_nr_info->rntiType = MSGB_RNTI;
+ break;
default:
p_mac_nr_info->rntiType = NO_RNTI;
break;
diff --git a/epan/dissectors/packet-cattp.c b/epan/dissectors/packet-cattp.c
index d8c05e0dd1..51e785a664 100644
--- a/epan/dissectors/packet-cattp.c
+++ b/epan/dissectors/packet-cattp.c
@@ -91,7 +91,7 @@ static int hf_cattp_eaks;
static expert_field ei_cattp_checksum;
/* Preference to control whether to check the CATTP checksum */
-static gboolean cattp_check_checksum = TRUE;
+static bool cattp_check_checksum = true;
/* Reason code mapping */
static const value_string cattp_reset_reason[] = {
diff --git a/epan/dissectors/packet-cdt.c b/epan/dissectors/packet-cdt.c
index 7b91eee1d2..2030d270db 100644
--- a/epan/dissectors/packet-cdt.c
+++ b/epan/dissectors/packet-cdt.c
@@ -43,10 +43,10 @@
void proto_register_cdt(void);
void proto_reg_handoff_cdt(void);
-static proto_tree *top_tree = NULL;
-static proto_item *cdt_item = NULL;
+static proto_tree *top_tree;
+static proto_item *cdt_item;
-static guint32 content_type = 0;
+static guint32 content_type;
/* Initialize the protocol and registered fields */
static int proto_cdt;
@@ -61,10 +61,10 @@ static int hf_cdt_contentType_OID; /* T_contentType_OID */
static int hf_cdt_compressedContent; /* CompressedContent */
/* Initialize the subtree pointers */
-static gint ett_cdt_CompressedData;
-static gint ett_cdt_CompressionAlgorithmIdentifier;
-static gint ett_cdt_CompressedContentInfo;
-static gint ett_cdt_T_contentType;
+static int ett_cdt_CompressedData;
+static int ett_cdt_CompressionAlgorithmIdentifier;
+static int ett_cdt_CompressedContentInfo;
+static int ett_cdt_T_contentType;
static expert_field ei_cdt_unable_compress_content;
static expert_field ei_cdt_unable_uncompress_content;
diff --git a/epan/dissectors/packet-ceph.c b/epan/dissectors/packet-ceph.c
index b40c27608e..90e5c9e155 100644
--- a/epan/dissectors/packet-ceph.c
+++ b/epan/dissectors/packet-ceph.c
@@ -1736,8 +1736,8 @@ gboolean c_warn_size(proto_tree *tree,
* then zero if the version is too new. Otherwise return zero.
*/
static
-gshort c_warn_ver(proto_item *ti,
- gint act, gint min, gint max, c_pkt_data *data)
+int c_warn_ver(proto_item *ti,
+ gint act, gint min, gint max, c_pkt_data *data)
{
DISSECTOR_ASSERT_CMPINT(min, <=, max);
@@ -2274,6 +2274,7 @@ guint c_dissect_encoded(proto_tree *tree, c_encoded *enc,
enc->version = tvb_get_guint8(tvb, off);
ti = proto_tree_add_item(tree, hf_encoded_ver,
tvb, off++, 1, ENC_LITTLE_ENDIAN);
+ /* XXX - should we quit if this doesn't return 0? */
c_warn_ver(ti, enc->version, minver, maxver, data);
enc->compat = tvb_get_guint8(tvb, off);
proto_tree_add_item(tree, hf_encoded_compat,
@@ -2406,6 +2407,7 @@ guint c_dissect_pg(proto_tree *root, gint hf,
ver = tvb_get_guint8(tvb, off);
ti2 = proto_tree_add_item(tree, hf_pgid_ver, tvb, off, 1, ENC_LITTLE_ENDIAN);
+ /* XXX - should we quit if this doesn't return 0? */
c_warn_ver(ti2, ver, 1, 1, data);
off += 1;
@@ -2480,6 +2482,7 @@ guint c_dissect_path(proto_tree *root, gint hf,
v = tvb_get_guint8(tvb, off);
ti2 = proto_tree_add_item(tree, hf_path_ver, tvb, off, 1, ENC_LITTLE_ENDIAN);
+ /* XXX - should we quit if this doesn't return 0? */
c_warn_ver(ti2, v, 1, 1, data);
off += 1;
@@ -3143,6 +3146,7 @@ guint c_dissect_osdinfo(proto_tree *root, int hf,
ver = tvb_get_guint8(tvb, off);
ti2 = proto_tree_add_item(tree, hf_osdinfo_ver,
tvb, off, 1, ENC_LITTLE_ENDIAN);
+ /* XXX - should we quit if this doesn't return 0? */
c_warn_ver(ti2, ver, 1, 1, data);
off += 1;
@@ -4524,6 +4528,7 @@ guint c_dissect_msg_auth(proto_tree *root,
subtree = proto_item_add_subtree(ti2, ett_msg_auth_supportedproto);
ver = tvb_get_guint8(tvb, off);
+ /* XXX - should we quit if this doesn't return 0? */
c_warn_ver(ti2, ver, 1, 1, data);
proto_tree_add_item(tree, hf_msg_auth_supportedproto_ver,
tvb, off, 1, ENC_LITTLE_ENDIAN);
diff --git a/epan/dissectors/packet-cesoeth.c b/epan/dissectors/packet-cesoeth.c
index 80bb8f0344..ef6b9fe887 100644
--- a/epan/dissectors/packet-cesoeth.c
+++ b/epan/dissectors/packet-cesoeth.c
@@ -97,8 +97,8 @@ static const value_string l1_m_names[] =
};
/* Preferences */
-static gboolean has_rtp_header = FALSE;
-static gboolean heuristic_rtp_header = TRUE;
+static bool has_rtp_header;
+static bool heuristic_rtp_header = true;
static int
diff --git a/epan/dissectors/packet-charging_ase.c b/epan/dissectors/packet-charging_ase.c
index 3f78c65a79..b39573272d 100644
--- a/epan/dissectors/packet-charging_ase.c
+++ b/epan/dissectors/packet-charging_ase.c
@@ -97,36 +97,36 @@ static int hf_charging_ase_T_tariffControlIndicators_non_cyclicTariff;
static int hf_charging_ase_T_tariffControlIndicators_01_non_cyclicTariff;
static int ett_charging_ase;
-static gint ett_charging_ase_ChargingMessageType;
-static gint ett_charging_ase_ChargingAcknowledgementInformation;
-static gint ett_charging_ase_T_acknowledgementIndicators;
-static gint ett_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField;
-static gint ett_charging_ase_ChargingControlIndicators;
-static gint ett_charging_ase_AddOnChargingInformation;
-static gint ett_charging_ase_T_addOncharge;
-static gint ett_charging_ase_ChargingTariffInformation;
-static gint ett_charging_ase_T_chargingTariff;
-static gint ett_charging_ase_Code;
-static gint ett_charging_ase_CommunicationChargeCurrency;
-static gint ett_charging_ase_CommunicationChargePulse;
-static gint ett_charging_ase_CurrencyFactorScale;
-static gint ett_charging_ase_ExtensionField;
-static gint ett_charging_ase_StartCharging;
-static gint ett_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification;
-static gint ett_charging_ase_StopCharging;
-static gint ett_charging_ase_T_stopIndicators;
-static gint ett_charging_ase_SubTariffControl;
-static gint ett_charging_ase_TariffCurrency;
-static gint ett_charging_ase_TariffSwitchCurrency;
-static gint ett_charging_ase_TariffCurrencyFormat;
-static gint ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency;
-static gint ett_charging_ase_T_tariffControlIndicators;
-static gint ett_charging_ase_TariffPulse;
-static gint ett_charging_ase_TariffSwitchPulse;
-static gint ett_charging_ase_TariffPulseFormat;
-static gint ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse;
-static gint ett_charging_ase_T_tariffControlIndicators_01;
-static gint ett_charging_ase_ChargingReferenceIdentification;
+static int ett_charging_ase_ChargingMessageType;
+static int ett_charging_ase_ChargingAcknowledgementInformation;
+static int ett_charging_ase_T_acknowledgementIndicators;
+static int ett_charging_ase_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField;
+static int ett_charging_ase_ChargingControlIndicators;
+static int ett_charging_ase_AddOnChargingInformation;
+static int ett_charging_ase_T_addOncharge;
+static int ett_charging_ase_ChargingTariffInformation;
+static int ett_charging_ase_T_chargingTariff;
+static int ett_charging_ase_Code;
+static int ett_charging_ase_CommunicationChargeCurrency;
+static int ett_charging_ase_CommunicationChargePulse;
+static int ett_charging_ase_CurrencyFactorScale;
+static int ett_charging_ase_ExtensionField;
+static int ett_charging_ase_StartCharging;
+static int ett_charging_ase_SEQUENCE_SIZE_1_maxNetworkOperators_OF_NetworkIdentification;
+static int ett_charging_ase_StopCharging;
+static int ett_charging_ase_T_stopIndicators;
+static int ett_charging_ase_SubTariffControl;
+static int ett_charging_ase_TariffCurrency;
+static int ett_charging_ase_TariffSwitchCurrency;
+static int ett_charging_ase_TariffCurrencyFormat;
+static int ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargeCurrency;
+static int ett_charging_ase_T_tariffControlIndicators;
+static int ett_charging_ase_TariffPulse;
+static int ett_charging_ase_TariffSwitchPulse;
+static int ett_charging_ase_TariffPulseFormat;
+static int ett_charging_ase_SEQUENCE_SIZE_minCommunicationTariffNum_maxCommunicationTariffNum_OF_CommunicationChargePulse;
+static int ett_charging_ase_T_tariffControlIndicators_01;
+static int ett_charging_ase_ChargingReferenceIdentification;
static expert_field ei_charging_ase_extensions_not_dissected;
diff --git a/epan/dissectors/packet-chdlc.c b/epan/dissectors/packet-chdlc.c
index 8ea4191ab1..0b31ee3826 100644
--- a/epan/dissectors/packet-chdlc.c
+++ b/epan/dissectors/packet-chdlc.c
@@ -103,7 +103,7 @@ const value_string chdlc_vals[] = {
{0, NULL}
};
-static gboolean
+static bool
capture_chdlc( const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header) {
if (!BYTES_ARE_IN_FRAME(offset, len, 4))
return FALSE;
@@ -149,7 +149,7 @@ chdlctype(dissector_handle_t sub_dissector, guint16 chdlc_type,
}
}
-static gint chdlc_fcs_decode = 0; /* 0 = No FCS, 1 = 16 bit FCS, 2 = 32 bit FCS */
+static gint chdlc_fcs_decode; /* 0 = No FCS, 1 = 16 bit FCS, 2 = 32 bit FCS */
static int
dissect_chdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
diff --git a/epan/dissectors/packet-cigi.c b/epan/dissectors/packet-cigi.c
index 3e94271aba..5e3e38f731 100644
--- a/epan/dissectors/packet-cigi.c
+++ b/epan/dissectors/packet-cigi.c
@@ -503,7 +503,7 @@ static int hf_cigi2_sensor_control_level;
static int hf_cigi2_sensor_control_ac_coupling;
static int hf_cigi2_sensor_control_noise;
-static const true_false_string cigi2_sensor_control_polarity_tfs = {
+static const true_false_string black_white_tfs = {
"Black",
"White"
};
@@ -1025,7 +1025,7 @@ static const true_false_string cigi3_entity_control_collision_detection_request_
"No Request"
};
-static const true_false_string cigi3_entity_control_inherit_alpha_tfs = {
+static const true_false_string inherited_not_inherited_tfs = {
"Inherited",
"Not Inherited"
};
@@ -1888,11 +1888,6 @@ static const true_false_string cigi3_sensor_control_polarity_tfs = {
"White hot"
};
-static const true_false_string cigi3_sensor_control_track_white_black_tfs = {
- "Black",
- "White"
-};
-
/* CIGI4 Sensor Control */
#define CIGI4_PACKET_SIZE_SENSOR_CONTROL 32
@@ -1928,12 +1923,6 @@ static const true_false_string cigi4_sensor_control_polarity_tfs = {
"White hot"
};
-static const true_false_string cigi4_sensor_control_track_white_black_tfs = {
- "Black",
- "White"
-};
-
-
/* CIGI3 Motion Tracker Control */
#define CIGI3_PACKET_SIZE_MOTION_TRACKER_CONTROL 8
@@ -2785,11 +2774,6 @@ static const true_false_string cigi3_3_symbol_control_flash_control_tfs = {
"Continue"
};
-static const true_false_string cigi3_3_symbol_control_inherit_color_tfs = {
- "Inherited",
- "Not Inherited"
-};
-
/* CIGI4 Symbol Control */
#define CIGI4_PACKET_SIZE_SYMBOL_CONTROL 48
@@ -2826,10 +2810,6 @@ static const true_false_string cigi4_symbol_control_flash_control_tfs = {
"Continue"
};
-static const true_false_string cigi4_symbol_control_inherit_color_tfs = {
- "Inherited",
- "Not Inherited"
-};
/* CIGI3_3 Short Symbol Control */
#define CIGI3_PACKET_SIZE_SHORT_SYMBOL_CONTROL_DEFINITION 32
@@ -3805,8 +3785,8 @@ static const char *global_ig_ip;
static gint ett_cigi;
/* The version of cigi to use */
-static gint cigi_version = 0;
-static gint cigi_minor_version = 0;
+static gint cigi_version;
+static gint cigi_minor_version;
/* The byte order of cigi to use; our default is big-endian */
static gint cigi_byte_order = ENC_BIG_ENDIAN;
@@ -10741,7 +10721,7 @@ proto_register_cigi(void)
},
{ &hf_cigi3_entity_control_inherit_alpha,
{ "Inherit Alpha", "cigi.entity_control.inherit_alpha",
- FT_BOOLEAN, 8, TFS(&cigi3_entity_control_inherit_alpha_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&inherited_not_inherited_tfs), 0x10,
"Specifies whether the entity's alpha is combined with the apparent alpha of its parent", HFILL }
},
{ &hf_cigi3_entity_control_ground_ocean_clamp,
@@ -10840,7 +10820,7 @@ proto_register_cigi(void)
},
{ &hf_cigi3_3_entity_control_inherit_alpha,
{ "Inherit Alpha", "cigi.entity_control.inherit_alpha",
- FT_BOOLEAN, 8, TFS(&cigi3_entity_control_inherit_alpha_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&inherited_not_inherited_tfs), 0x10,
"Specifies whether the entity's alpha is combined with the apparent alpha of its parent", HFILL }
},
{ &hf_cigi3_3_entity_control_ground_ocean_clamp,
@@ -13314,7 +13294,7 @@ proto_register_cigi(void)
},
{ &hf_cigi2_sensor_control_polarity,
{ "Polarity", "cigi.sensor_control.polarity",
- FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x02,
+ FT_BOOLEAN, 8, TFS(&black_white_tfs), 0x02,
"Indicates whether this sensor is showing white hot or black hot", HFILL }
},
{ &hf_cigi2_sensor_control_line_dropout,
@@ -13339,7 +13319,7 @@ proto_register_cigi(void)
},
{ &hf_cigi2_sensor_control_track_polarity,
{ "Track White/Black", "cigi.sensor_control.track_polarity",
- FT_BOOLEAN, 8, TFS(&cigi2_sensor_control_polarity_tfs), 0x04,
+ FT_BOOLEAN, 8, TFS(&black_white_tfs), 0x04,
"Identifies whether the weapons sensor will track wither white or black", HFILL }
},
{ &hf_cigi2_sensor_control_gain,
@@ -13401,7 +13381,7 @@ proto_register_cigi(void)
},
{ &hf_cigi3_sensor_control_track_white_black,
{ "Track White/Black", "cigi.sensor_control.track_white_black",
- FT_BOOLEAN, 8, TFS(&cigi3_sensor_control_track_white_black_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&black_white_tfs), 0x10,
"Specifies whether the sensor tracks white or black", HFILL }
},
{ &hf_cigi3_sensor_control_track_mode,
@@ -13474,7 +13454,7 @@ proto_register_cigi(void)
},
{ &hf_cigi4_sensor_control_track_white_black,
{ "Track White/Black", "cigi.sensor_control.track_white_black",
- FT_BOOLEAN, 8, TFS(&cigi4_sensor_control_track_white_black_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&black_white_tfs), 0x10,
"Specifies whether the sensor tracks white or black", HFILL }
},
{ &hf_cigi4_sensor_control_track_mode,
@@ -17074,7 +17054,7 @@ proto_register_cigi(void)
},
{ &hf_cigi3_3_symbol_control_inherit_color,
{ "Inherit Color", "cigi.symbol_control.inherit_color",
- FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_inherit_color_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&inherited_not_inherited_tfs), 0x10,
"Specifies whether the symbol inherits color from a parent symbol", HFILL }
},
{ &hf_cigi3_3_symbol_control_parent_symbol_ident,
@@ -17176,7 +17156,7 @@ proto_register_cigi(void)
},
{ &hf_cigi4_symbol_control_inherit_color,
{ "Inherit Color", "cigi.symbol_control.inherit_color",
- FT_BOOLEAN, 8, TFS(&cigi4_symbol_control_inherit_color_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&inherited_not_inherited_tfs), 0x10,
"Specifies whether the symbol inherits color from a parent symbol", HFILL }
},
{ &hf_cigi4_symbol_control_parent_symbol_ident,
@@ -17280,7 +17260,7 @@ proto_register_cigi(void)
},
{ &hf_cigi3_3_short_symbol_control_inherit_color,
{ "Inherit Color", "cigi.short_symbol_control.inherit_color",
- FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_inherit_color_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&inherited_not_inherited_tfs), 0x10,
"Specifies whether the symbol inherits color from a parent symbol", HFILL }
},
{ &hf_cigi3_3_short_symbol_control_attribute_select1,
@@ -17382,7 +17362,7 @@ proto_register_cigi(void)
},
{ &hf_cigi4_short_symbol_control_inherit_color,
{ "Inherit Color", "cigi.short_symbol_control.inherit_color",
- FT_BOOLEAN, 8, TFS(&cigi3_3_symbol_control_inherit_color_tfs), 0x10,
+ FT_BOOLEAN, 8, TFS(&inherited_not_inherited_tfs), 0x10,
"Specifies whether the symbol inherits color from a parent symbol", HFILL }
},
{ &hf_cigi4_short_symbol_control_attribute_select1,
diff --git a/epan/dissectors/packet-cimetrics.c b/epan/dissectors/packet-cimetrics.c
index db58784db3..41cc06a0ca 100644
--- a/epan/dissectors/packet-cimetrics.c
+++ b/epan/dissectors/packet-cimetrics.c
@@ -83,7 +83,7 @@ proto_register_cimetrics(void)
{ &hf_cimetrics_mstp_value,
{ "8-bit value", "cimetrics.mstp_value",
FT_UINT8, BASE_DEC, NULL, 0,
- "value", HFILL }
+ NULL, HFILL }
}
};
static hf_register_info hf2[] = {
diff --git a/epan/dissectors/packet-cip.c b/epan/dissectors/packet-cip.c
index 78dcebb0b2..dabf929fe5 100644
--- a/epan/dissectors/packet-cip.c
+++ b/epan/dissectors/packet-cip.c
@@ -77,7 +77,7 @@ static dissector_handle_t modbus_handle;
static dissector_handle_t cip_class_cco_handle;
static heur_dissector_list_t heur_subdissector_service;
-static gboolean cip_enhanced_info_column = TRUE;
+static bool cip_enhanced_info_column = true;
/* Initialize the protocol and registered fields */
static int proto_cip;
@@ -4471,7 +4471,7 @@ static cip_service_info_t cip_obj_spec_service_table[] = {
static cip_service_info_t* cip_get_service_cip(guint32 class_id, guint8 service_id)
{
return cip_get_service_one_table(&cip_obj_spec_service_table[0],
- sizeof(cip_obj_spec_service_table) / sizeof(cip_service_info_t),
+ array_length(cip_obj_spec_service_table),
class_id,
service_id);
}
@@ -4489,10 +4489,10 @@ typedef struct attribute_val_array {
*/
static attribute_val_array_t all_attribute_vals[] = {
- {sizeof(cip_attribute_vals)/sizeof(attribute_info_t), cip_attribute_vals},
- {sizeof(enip_attribute_vals)/sizeof(attribute_info_t), enip_attribute_vals},
- {sizeof(cip_safety_attribute_vals)/sizeof(attribute_info_t), cip_safety_attribute_vals},
- {sizeof(cip_motion_attribute_vals)/sizeof(attribute_info_t), cip_motion_attribute_vals},
+ {array_length(cip_attribute_vals), cip_attribute_vals},
+ {array_length(enip_attribute_vals), enip_attribute_vals},
+ {array_length(cip_safety_attribute_vals), cip_safety_attribute_vals},
+ {array_length(cip_motion_attribute_vals), cip_motion_attribute_vals},
};
attribute_info_t* cip_get_attribute(guint class_id, guint instance, guint attribute)
@@ -4511,7 +4511,7 @@ attribute_info_t* cip_get_attribute(guint class_id, guint instance, guint attrib
{ 0, TRUE, 7, -1, CLASS_ATTRIBUTE_7_NAME, cip_uint, &hf_attr_class_num_inst_attr, NULL },
};
- for (i = 0; i < sizeof(all_attribute_vals)/sizeof(attribute_val_array_t); i++)
+ for (i = 0; i < array_length(all_attribute_vals); i++)
{
att_array = &all_attribute_vals[i];
for (j = 0; j < att_array->size; j++)
@@ -4530,7 +4530,7 @@ attribute_info_t* cip_get_attribute(guint class_id, guint instance, guint attrib
/* Check against common class attributes. */
if (instance == 0)
{
- for (i = 0; i < sizeof(class_attribute_vals) / sizeof(attribute_info_t); i++)
+ for (i = 0; i < array_length(class_attribute_vals); i++)
{
pattr = &class_attribute_vals[i];
if (pattr->attribute == attribute)
@@ -6850,7 +6850,7 @@ typedef struct cip_gaa_val {
wmem_list_t *attributes;
} cip_gaa_val_t;
-static wmem_map_t *cip_gaa_hashtable = NULL;
+static wmem_map_t *cip_gaa_hashtable;
static guint
cip_gaa_hash (gconstpointer v)
@@ -6889,7 +6889,7 @@ static void build_get_attr_all_table(void)
cip_gaa_hashtable = wmem_map_new(wmem_epan_scope(), cip_gaa_hash, cip_gaa_equal);
- for (i = 0; i < sizeof(all_attribute_vals)/sizeof(attribute_val_array_t); i++)
+ for (i = 0; i < array_length(all_attribute_vals); i++)
{
att_array = &all_attribute_vals[i];
for (j = 0; j < att_array->size; j++)
diff --git a/epan/dissectors/packet-cipmotion.c b/epan/dissectors/packet-cipmotion.c
index 6669f5c09a..ed93e2bf36 100644
--- a/epan/dissectors/packet-cipmotion.c
+++ b/epan/dissectors/packet-cipmotion.c
@@ -311,7 +311,7 @@ static expert_field ei_format_rev_conn_pt;
static dissector_handle_t cipmotion_handle;
static dissector_handle_t cipmotion3_handle;
-static gboolean display_full_attribute_data = FALSE;
+static bool display_full_attribute_data;
/* These are the BITMASKS for the Time Data Set header field */
#define TIME_DATA_SET_TIME_STAMP 0x1
diff --git a/epan/dissectors/packet-cisco-fp-mim.c b/epan/dissectors/packet-cisco-fp-mim.c
index 52ebce10fc..2797ee6632 100644
--- a/epan/dissectors/packet-cisco-fp-mim.c
+++ b/epan/dissectors/packet-cisco-fp-mim.c
@@ -26,7 +26,7 @@
void proto_register_mim(void);
void proto_reg_handoff_fabricpath(void);
-static gboolean fp_check_fcs = FALSE;
+static bool fp_check_fcs;
static int proto_fp;
static gint ett_mim;
diff --git a/epan/dissectors/packet-clnp.c b/epan/dissectors/packet-clnp.c
index 66852cc0bb..3a61477ea7 100644
--- a/epan/dissectors/packet-clnp.c
+++ b/epan/dissectors/packet-clnp.c
@@ -53,8 +53,6 @@ static int hf_clnp_dest_length;
static int hf_clnp_dest;
static int hf_clnp_src_length;
static int hf_clnp_src;
- int hf_clnp_atntt; /* as referenced in packet-osi-options.c */
- int hf_clnp_atnsc; /* as referenced in packet-osi-options.c */
static int hf_clnp_segments;
static int hf_clnp_segment;
static int hf_clnp_segment_overlap;
@@ -183,9 +181,8 @@ static reassembly_table clnp_reassembly_table;
/* options */
static guint tp_nsap_selector = NSEL_TP;
-static gboolean always_decode_transport = FALSE;
-static gboolean clnp_reassemble = TRUE;
-gboolean clnp_decode_atn_options = FALSE;
+static bool always_decode_transport;
+static bool clnp_reassemble = true;
/* function definitions */
@@ -219,7 +216,7 @@ dissect_clnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
gboolean save_in_error_pkt;
fragment_head *fd_head;
tvbuff_t *next_tvb;
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
gboolean save_fragmented;
heur_dtbl_entry_t *hdtbl_entry;
@@ -627,12 +624,6 @@ proto_register_clnp(void)
{ &hf_clnp_src,
{ "SA", "clnp.ssap", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
- { &hf_clnp_atntt,
- { "ATN traffic type", "clnp.atn.tt", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
-
- { &hf_clnp_atnsc,
- { "ATN security classification", "clnp.atn.sc", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
-
{ &hf_clnp_segment_overlap,
{ "Segment overlap", "clnp.segment.overlap", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"Segment overlaps with other segments", HFILL }},
@@ -715,10 +706,8 @@ proto_register_clnp(void)
"Reassemble segmented CLNP datagrams",
"Whether segmented CLNP datagrams should be reassembled",
&clnp_reassemble);
- prefs_register_bool_preference(clnp_module, "decode_atn_options",
- "Decode ATN security label",
- "Whether ATN security label should be decoded",
- &clnp_decode_atn_options);
+ /* XXX - catch this and tweak the decode_as settings? */
+ prefs_register_obsolete_preference(clnp_module, "decode_atn_options");
}
void
diff --git a/epan/dissectors/packet-cmip.c b/epan/dissectors/packet-cmip.c
index 0398c1de11..ee8101186b 100644
--- a/epan/dissectors/packet-cmip.c
+++ b/epan/dissectors/packet-cmip.c
@@ -324,133 +324,133 @@ static int hf_cmip_T_daysOfWeek_saturday;
/* Initialize the subtree pointers */
static gint ett_cmip;
-static gint ett_cmip_PAR_missingAttributeValue;
-static gint ett_cmip_ActionArgument;
-static gint ett_cmip_ActionError;
-static gint ett_cmip_ActionErrorInfo;
-static gint ett_cmip_T_actionErrorInfo;
-static gint ett_cmip_ActionInfo;
-static gint ett_cmip_ActionReply;
-static gint ett_cmip_ActionResult;
-static gint ett_cmip_ActionTypeId;
-static gint ett_cmip_Attribute;
-static gint ett_cmip_AttributeError;
-static gint ett_cmip_AttributeId;
-static gint ett_cmip_AttributeIdError;
-static gint ett_cmip_AttributeValueAssertion;
-static gint ett_cmip_BaseManagedObjectId;
-static gint ett_cmip_CMISFilter;
-static gint ett_cmip_SET_OF_CMISFilter;
-static gint ett_cmip_ComplexityLimitation;
-static gint ett_cmip_CreateArgument;
-static gint ett_cmip_T_managedOrSuperiorObjectInstance;
-static gint ett_cmip_SET_OF_Attribute;
-static gint ett_cmip_CreateResult;
-static gint ett_cmip_DeleteArgument;
-static gint ett_cmip_DeleteError;
-static gint ett_cmip_DeleteResult;
-static gint ett_cmip_EventReply;
-static gint ett_cmip_EventReportArgument;
-static gint ett_cmip_EventReportResult;
-static gint ett_cmip_EventTypeId;
-static gint ett_cmip_FilterItem;
-static gint ett_cmip_T_substrings;
-static gint ett_cmip_T_substrings_item;
-static gint ett_cmip_GetArgument;
-static gint ett_cmip_GetInfoStatus;
-static gint ett_cmip_GetListError;
-static gint ett_cmip_SET_OF_GetInfoStatus;
-static gint ett_cmip_GetResult;
-static gint ett_cmip_InvalidArgumentValue;
-static gint ett_cmip_T_eventValue;
-static gint ett_cmip_LinkedReplyArgument;
-static gint ett_cmip_NoSuchAction;
-static gint ett_cmip_NoSuchArgument;
-static gint ett_cmip_T_actionId;
-static gint ett_cmip_T_eventId;
-static gint ett_cmip_NoSuchEventType;
-static gint ett_cmip_ObjectClass;
-static gint ett_cmip_ObjectInstance;
-static gint ett_cmip_ProcessingFailure;
-static gint ett_cmip_RDNSequence;
-static gint ett_cmip_RelativeDistinguishedName;
-static gint ett_cmip_Scope;
-static gint ett_cmip_SetArgument;
-static gint ett_cmip_SetInfoStatus;
-static gint ett_cmip_SetListError;
-static gint ett_cmip_SET_OF_SetInfoStatus;
-static gint ett_cmip_SetResult;
-static gint ett_cmip_SpecificErrorInfo;
-static gint ett_cmip_CMIPAbortInfo;
-static gint ett_cmip_FunctionalUnits;
-static gint ett_cmip_CMIPUserInfo;
-static gint ett_cmip_ProtocolVersion;
-static gint ett_cmip_AdditionalInformation;
-static gint ett_cmip_Allomorphs;
-static gint ett_cmip_AttributeIdentifierList;
-static gint ett_cmip_AttributeList;
-static gint ett_cmip_AttributeValueChangeDefinition;
-static gint ett_cmip_AttributeValueChangeDefinition_item;
-static gint ett_cmip_AlarmStatus;
-static gint ett_cmip_AvailabilityStatus;
-static gint ett_cmip_BackUpDestinationList;
-static gint ett_cmip_BackUpRelationshipObject;
-static gint ett_cmip_CapacityAlarmThreshold;
-static gint ett_cmip_ControlStatus;
-static gint ett_cmip_CorrelatedNotifications;
-static gint ett_cmip_CorrelatedNotifications_item;
-static gint ett_cmip_SET_OF_NotificationIdentifier;
-static gint ett_cmip_Destination;
-static gint ett_cmip_SET_OF_AE_title;
-static gint ett_cmip_GroupObjects;
-static gint ett_cmip_IntervalsOfDay;
-static gint ett_cmip_IntervalsOfDay_item;
-static gint ett_cmip_ManagementExtension;
-static gint ett_cmip_MonitoredAttributes;
-static gint ett_cmip_ObservedValue;
-static gint ett_cmip_Packages;
-static gint ett_cmip_PrioritisedObject;
-static gint ett_cmip_PrioritisedObject_item;
-static gint ett_cmip_ProbableCause;
-static gint ett_cmip_ProceduralStatus;
-static gint ett_cmip_ProposedRepairActions;
-static gint ett_cmip_SecurityAlarmDetector;
-static gint ett_cmip_ServiceUser;
-static gint ett_cmip_SimpleNameType;
-static gint ett_cmip_SpecificIdentifier;
-static gint ett_cmip_SpecificProblems;
-static gint ett_cmip_StopTime;
-static gint ett_cmip_SupportedFeatures;
-static gint ett_cmip_SupportedFeatures_item;
-static gint ett_cmip_SystemId;
-static gint ett_cmip_SystemTitle;
-static gint ett_cmip_Time24;
-static gint ett_cmip_ThresholdInfo;
-static gint ett_cmip_ThresholdLevelInd;
-static gint ett_cmip_T_up;
-static gint ett_cmip_T_down;
-static gint ett_cmip_WeekMask;
-static gint ett_cmip_WeekMask_item;
-static gint ett_cmip_T_daysOfWeek;
-static gint ett_cmip_Code;
-static gint ett_cmip_ROS;
-static gint ett_cmip_Invoke;
-static gint ett_cmip_T_linkedId;
-static gint ett_cmip_ReturnResult;
-static gint ett_cmip_T_result;
-static gint ett_cmip_ReturnError;
-static gint ett_cmip_Reject;
-static gint ett_cmip_T_problem;
-static gint ett_cmip_InvokeId;
-static gint ett_cmip_SET_OF_AttributeId;
-static gint ett_cmip_T_modificationList;
-static gint ett_cmip_T_modificationList_item;
+static int ett_cmip_PAR_missingAttributeValue;
+static int ett_cmip_ActionArgument;
+static int ett_cmip_ActionError;
+static int ett_cmip_ActionErrorInfo;
+static int ett_cmip_T_actionErrorInfo;
+static int ett_cmip_ActionInfo;
+static int ett_cmip_ActionReply;
+static int ett_cmip_ActionResult;
+static int ett_cmip_ActionTypeId;
+static int ett_cmip_Attribute;
+static int ett_cmip_AttributeError;
+static int ett_cmip_AttributeId;
+static int ett_cmip_AttributeIdError;
+static int ett_cmip_AttributeValueAssertion;
+static int ett_cmip_BaseManagedObjectId;
+static int ett_cmip_CMISFilter;
+static int ett_cmip_SET_OF_CMISFilter;
+static int ett_cmip_ComplexityLimitation;
+static int ett_cmip_CreateArgument;
+static int ett_cmip_T_managedOrSuperiorObjectInstance;
+static int ett_cmip_SET_OF_Attribute;
+static int ett_cmip_CreateResult;
+static int ett_cmip_DeleteArgument;
+static int ett_cmip_DeleteError;
+static int ett_cmip_DeleteResult;
+static int ett_cmip_EventReply;
+static int ett_cmip_EventReportArgument;
+static int ett_cmip_EventReportResult;
+static int ett_cmip_EventTypeId;
+static int ett_cmip_FilterItem;
+static int ett_cmip_T_substrings;
+static int ett_cmip_T_substrings_item;
+static int ett_cmip_GetArgument;
+static int ett_cmip_GetInfoStatus;
+static int ett_cmip_GetListError;
+static int ett_cmip_SET_OF_GetInfoStatus;
+static int ett_cmip_GetResult;
+static int ett_cmip_InvalidArgumentValue;
+static int ett_cmip_T_eventValue;
+static int ett_cmip_LinkedReplyArgument;
+static int ett_cmip_NoSuchAction;
+static int ett_cmip_NoSuchArgument;
+static int ett_cmip_T_actionId;
+static int ett_cmip_T_eventId;
+static int ett_cmip_NoSuchEventType;
+static int ett_cmip_ObjectClass;
+static int ett_cmip_ObjectInstance;
+static int ett_cmip_ProcessingFailure;
+static int ett_cmip_RDNSequence;
+static int ett_cmip_RelativeDistinguishedName;
+static int ett_cmip_Scope;
+static int ett_cmip_SetArgument;
+static int ett_cmip_SetInfoStatus;
+static int ett_cmip_SetListError;
+static int ett_cmip_SET_OF_SetInfoStatus;
+static int ett_cmip_SetResult;
+static int ett_cmip_SpecificErrorInfo;
+static int ett_cmip_CMIPAbortInfo;
+static int ett_cmip_FunctionalUnits;
+static int ett_cmip_CMIPUserInfo;
+static int ett_cmip_ProtocolVersion;
+static int ett_cmip_AdditionalInformation;
+static int ett_cmip_Allomorphs;
+static int ett_cmip_AttributeIdentifierList;
+static int ett_cmip_AttributeList;
+static int ett_cmip_AttributeValueChangeDefinition;
+static int ett_cmip_AttributeValueChangeDefinition_item;
+static int ett_cmip_AlarmStatus;
+static int ett_cmip_AvailabilityStatus;
+static int ett_cmip_BackUpDestinationList;
+static int ett_cmip_BackUpRelationshipObject;
+static int ett_cmip_CapacityAlarmThreshold;
+static int ett_cmip_ControlStatus;
+static int ett_cmip_CorrelatedNotifications;
+static int ett_cmip_CorrelatedNotifications_item;
+static int ett_cmip_SET_OF_NotificationIdentifier;
+static int ett_cmip_Destination;
+static int ett_cmip_SET_OF_AE_title;
+static int ett_cmip_GroupObjects;
+static int ett_cmip_IntervalsOfDay;
+static int ett_cmip_IntervalsOfDay_item;
+static int ett_cmip_ManagementExtension;
+static int ett_cmip_MonitoredAttributes;
+static int ett_cmip_ObservedValue;
+static int ett_cmip_Packages;
+static int ett_cmip_PrioritisedObject;
+static int ett_cmip_PrioritisedObject_item;
+static int ett_cmip_ProbableCause;
+static int ett_cmip_ProceduralStatus;
+static int ett_cmip_ProposedRepairActions;
+static int ett_cmip_SecurityAlarmDetector;
+static int ett_cmip_ServiceUser;
+static int ett_cmip_SimpleNameType;
+static int ett_cmip_SpecificIdentifier;
+static int ett_cmip_SpecificProblems;
+static int ett_cmip_StopTime;
+static int ett_cmip_SupportedFeatures;
+static int ett_cmip_SupportedFeatures_item;
+static int ett_cmip_SystemId;
+static int ett_cmip_SystemTitle;
+static int ett_cmip_Time24;
+static int ett_cmip_ThresholdInfo;
+static int ett_cmip_ThresholdLevelInd;
+static int ett_cmip_T_up;
+static int ett_cmip_T_down;
+static int ett_cmip_WeekMask;
+static int ett_cmip_WeekMask_item;
+static int ett_cmip_T_daysOfWeek;
+static int ett_cmip_Code;
+static int ett_cmip_ROS;
+static int ett_cmip_Invoke;
+static int ett_cmip_T_linkedId;
+static int ett_cmip_ReturnResult;
+static int ett_cmip_T_result;
+static int ett_cmip_ReturnError;
+static int ett_cmip_Reject;
+static int ett_cmip_T_problem;
+static int ett_cmip_InvokeId;
+static int ett_cmip_SET_OF_AttributeId;
+static int ett_cmip_T_modificationList;
+static int ett_cmip_T_modificationList_item;
static expert_field ei_wrong_spdu_type;
static guint32 opcode;
-static dissector_handle_t cmip_handle = NULL;
+static dissector_handle_t cmip_handle;
/* Dissector table */
static dissector_table_t attribute_id_dissector_table;
@@ -1011,7 +1011,7 @@ static const ber_choice_t CMISFilter_choice[] = {
static int
dissect_cmip_CMISFilter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // CMISFilter → CMISFilter/and → CMISFilter
+ // CMISFilter -> CMISFilter/and -> CMISFilter
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-cmp.c b/epan/dissectors/packet-cmp.c
index 52dfa407af..106c40b398 100644
--- a/epan/dissectors/packet-cmp.c
+++ b/epan/dissectors/packet-cmp.c
@@ -47,10 +47,10 @@ static dissector_handle_t cmp_tcp_style_http_handle;
static dissector_handle_t cmp_tcp_handle;
/* desegmentation of CMP over TCP */
-static gboolean cmp_desegment = TRUE;
+static bool cmp_desegment = true;
-static guint cmp_alternate_http_port = 0;
-static guint cmp_alternate_tcp_style_http_port = 0;
+static guint cmp_alternate_http_port;
+static guint cmp_alternate_tcp_style_http_port;
/* Initialize the protocol and registered fields */
static int proto_cmp;
@@ -224,53 +224,53 @@ static int hf_cmp_PKIFailureInfo_duplicateCertReq;
/* Initialize the subtree pointers */
static gint ett_cmp;
-static gint ett_cmp_CMPCertificate;
-static gint ett_cmp_PKIMessage;
-static gint ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CMPCertificate;
-static gint ett_cmp_PKIMessages;
-static gint ett_cmp_PKIHeader;
-static gint ett_cmp_SEQUENCE_SIZE_1_MAX_OF_InfoTypeAndValue;
-static gint ett_cmp_PKIFreeText;
-static gint ett_cmp_PKIBody;
-static gint ett_cmp_ProtectedPart;
-static gint ett_cmp_PBMParameter;
-static gint ett_cmp_DHBMParameter;
-static gint ett_cmp_PKIFailureInfo;
-static gint ett_cmp_PKIStatusInfo;
-static gint ett_cmp_OOBCertHash;
-static gint ett_cmp_POPODecKeyChallContent;
-static gint ett_cmp_Challenge;
-static gint ett_cmp_POPODecKeyRespContent;
-static gint ett_cmp_CertRepMessage;
-static gint ett_cmp_SEQUENCE_OF_CertResponse;
-static gint ett_cmp_CertResponse;
-static gint ett_cmp_CertifiedKeyPair;
-static gint ett_cmp_CertOrEncCert;
-static gint ett_cmp_KeyRecRepContent;
-static gint ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CertifiedKeyPair;
-static gint ett_cmp_RevReqContent;
-static gint ett_cmp_RevDetails;
-static gint ett_cmp_RevRepContent;
-static gint ett_cmp_SEQUENCE_SIZE_1_MAX_OF_PKIStatusInfo;
-static gint ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CertId;
-static gint ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CertificateList;
-static gint ett_cmp_CAKeyUpdAnnContent;
-static gint ett_cmp_RevAnnContent;
-static gint ett_cmp_CRLAnnContent;
-static gint ett_cmp_CertConfirmContent;
-static gint ett_cmp_CertStatus;
-static gint ett_cmp_InfoTypeAndValue;
-static gint ett_cmp_SignKeyPairTypesValue;
-static gint ett_cmp_EncKeyPairTypesValue;
-static gint ett_cmp_UnsupportedOIDsValue;
-static gint ett_cmp_SuppLangTagsValue;
-static gint ett_cmp_GenMsgContent;
-static gint ett_cmp_GenRepContent;
-static gint ett_cmp_ErrorMsgContent;
-static gint ett_cmp_PollReqContent;
-static gint ett_cmp_PollReqContent_item;
-static gint ett_cmp_PollRepContent;
-static gint ett_cmp_PollRepContent_item;
+static int ett_cmp_CMPCertificate;
+static int ett_cmp_PKIMessage;
+static int ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CMPCertificate;
+static int ett_cmp_PKIMessages;
+static int ett_cmp_PKIHeader;
+static int ett_cmp_SEQUENCE_SIZE_1_MAX_OF_InfoTypeAndValue;
+static int ett_cmp_PKIFreeText;
+static int ett_cmp_PKIBody;
+static int ett_cmp_ProtectedPart;
+static int ett_cmp_PBMParameter;
+static int ett_cmp_DHBMParameter;
+static int ett_cmp_PKIFailureInfo;
+static int ett_cmp_PKIStatusInfo;
+static int ett_cmp_OOBCertHash;
+static int ett_cmp_POPODecKeyChallContent;
+static int ett_cmp_Challenge;
+static int ett_cmp_POPODecKeyRespContent;
+static int ett_cmp_CertRepMessage;
+static int ett_cmp_SEQUENCE_OF_CertResponse;
+static int ett_cmp_CertResponse;
+static int ett_cmp_CertifiedKeyPair;
+static int ett_cmp_CertOrEncCert;
+static int ett_cmp_KeyRecRepContent;
+static int ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CertifiedKeyPair;
+static int ett_cmp_RevReqContent;
+static int ett_cmp_RevDetails;
+static int ett_cmp_RevRepContent;
+static int ett_cmp_SEQUENCE_SIZE_1_MAX_OF_PKIStatusInfo;
+static int ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CertId;
+static int ett_cmp_SEQUENCE_SIZE_1_MAX_OF_CertificateList;
+static int ett_cmp_CAKeyUpdAnnContent;
+static int ett_cmp_RevAnnContent;
+static int ett_cmp_CRLAnnContent;
+static int ett_cmp_CertConfirmContent;
+static int ett_cmp_CertStatus;
+static int ett_cmp_InfoTypeAndValue;
+static int ett_cmp_SignKeyPairTypesValue;
+static int ett_cmp_EncKeyPairTypesValue;
+static int ett_cmp_UnsupportedOIDsValue;
+static int ett_cmp_SuppLangTagsValue;
+static int ett_cmp_GenMsgContent;
+static int ett_cmp_GenRepContent;
+static int ett_cmp_ErrorMsgContent;
+static int ett_cmp_PollReqContent;
+static int ett_cmp_PollReqContent_item;
+static int ett_cmp_PollRepContent;
+static int ett_cmp_PollRepContent_item;
/*--- Cyclic dependencies ---*/
/* PKIMessage -> PKIBody -> NestedMessageContent -> PKIMessages -> PKIMessage */
@@ -1087,7 +1087,7 @@ static const ber_sequence_t PKIMessage_sequence[] = {
int
dissect_cmp_PKIMessage(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // PKIMessage → PKIBody → NestedMessageContent → PKIMessages → PKIMessage
+ // PKIMessage -> PKIBody -> NestedMessageContent -> PKIMessages -> PKIMessage
actx->pinfo->dissection_depth += 4;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-cms.c b/epan/dissectors/packet-cms.c
index fe1c3f976c..7cb00bf02b 100644
--- a/epan/dissectors/packet-cms.c
+++ b/epan/dissectors/packet-cms.c
@@ -229,87 +229,87 @@ static int hf_cms_msgDigest; /* OCTET_STRING */
/* Initialize the subtree pointers */
static gint ett_cms;
-static gint ett_cms_ContentInfo;
-static gint ett_cms_SignedData;
-static gint ett_cms_DigestAlgorithmIdentifiers;
-static gint ett_cms_SignerInfos;
-static gint ett_cms_EncapsulatedContentInfo;
-static gint ett_cms_SignerInfo;
-static gint ett_cms_SignerIdentifier;
-static gint ett_cms_SignedAttributes;
-static gint ett_cms_UnsignedAttributes;
-static gint ett_cms_Attribute;
-static gint ett_cms_SET_OF_AttributeValue;
-static gint ett_cms_EnvelopedData;
-static gint ett_cms_OriginatorInfo;
-static gint ett_cms_RecipientInfos;
-static gint ett_cms_EncryptedContentInfo;
-static gint ett_cms_UnprotectedAttributes;
-static gint ett_cms_RecipientInfo;
-static gint ett_cms_KeyTransRecipientInfo;
-static gint ett_cms_RecipientIdentifier;
-static gint ett_cms_KeyAgreeRecipientInfo;
-static gint ett_cms_OriginatorIdentifierOrKey;
-static gint ett_cms_OriginatorPublicKey;
-static gint ett_cms_RecipientEncryptedKeys;
-static gint ett_cms_RecipientEncryptedKey;
-static gint ett_cms_KeyAgreeRecipientIdentifier;
-static gint ett_cms_RecipientKeyIdentifier;
-static gint ett_cms_KEKRecipientInfo;
-static gint ett_cms_KEKIdentifier;
-static gint ett_cms_PasswordRecipientInfo;
-static gint ett_cms_OtherRecipientInfo;
-static gint ett_cms_DigestedData;
-static gint ett_cms_EncryptedData;
-static gint ett_cms_AuthenticatedData;
-static gint ett_cms_AuthAttributes;
-static gint ett_cms_UnauthAttributes;
-static gint ett_cms_RevocationInfoChoices;
-static gint ett_cms_RevocationInfoChoice;
-static gint ett_cms_OtherRevocationInfoFormat;
-static gint ett_cms_CertificateChoices;
-static gint ett_cms_CertificateSet;
-static gint ett_cms_IssuerAndSerialNumber;
-static gint ett_cms_OtherKeyAttribute;
-static gint ett_cms_Time;
-static gint ett_cms_RC2CBCParameter;
-static gint ett_cms_ExtendedCertificate;
-static gint ett_cms_ExtendedCertificateInfo;
-static gint ett_cms_DigestInfo;
-static gint ett_cms_SMIMECapabilities;
-static gint ett_cms_SMIMECapability;
-static gint ett_cms_SMIMEEncryptionKeyPreference;
-static gint ett_cms_RC2CBCParameters;
-static gint ett_cms_AuthEnvelopedData;
-static gint ett_cms_CCMParameters;
-static gint ett_cms_GCMParameters;
-static gint ett_cms_AttributeCertificateV1;
-static gint ett_cms_AttributeCertificateInfoV1;
-static gint ett_cms_T_subject;
-static gint ett_cms_SEQUENCE_OF_Attribute;
-static gint ett_cms_FirmwarePackageIdentifier;
-static gint ett_cms_PreferredOrLegacyPackageIdentifier;
-static gint ett_cms_PreferredPackageIdentifier;
-static gint ett_cms_PreferredOrLegacyStalePackageIdentifier;
-static gint ett_cms_TargetHardwareIdentifiers;
-static gint ett_cms_ImplementedCryptoAlgorithms;
-static gint ett_cms_ImplementedCompressAlgorithms;
-static gint ett_cms_CommunityIdentifiers;
-static gint ett_cms_CommunityIdentifier;
-static gint ett_cms_HardwareModules;
-static gint ett_cms_SEQUENCE_OF_HardwareSerialEntry;
-static gint ett_cms_HardwareSerialEntry;
-static gint ett_cms_T_block;
-static gint ett_cms_FirmwarePackageInfo;
-static gint ett_cms_SEQUENCE_OF_PreferredOrLegacyPackageIdentifier;
-static gint ett_cms_FirmwarePackageLoadReceipt;
-static gint ett_cms_FirmwarePackageLoadError;
-static gint ett_cms_SEQUENCE_OF_CurrentFWConfig;
-static gint ett_cms_CurrentFWConfig;
-static gint ett_cms_HardwareModuleName;
-static gint ett_cms_FirmwarePackageMessageDigest;
-
-static dissector_handle_t cms_handle = NULL;
+static int ett_cms_ContentInfo;
+static int ett_cms_SignedData;
+static int ett_cms_DigestAlgorithmIdentifiers;
+static int ett_cms_SignerInfos;
+static int ett_cms_EncapsulatedContentInfo;
+static int ett_cms_SignerInfo;
+static int ett_cms_SignerIdentifier;
+static int ett_cms_SignedAttributes;
+static int ett_cms_UnsignedAttributes;
+static int ett_cms_Attribute;
+static int ett_cms_SET_OF_AttributeValue;
+static int ett_cms_EnvelopedData;
+static int ett_cms_OriginatorInfo;
+static int ett_cms_RecipientInfos;
+static int ett_cms_EncryptedContentInfo;
+static int ett_cms_UnprotectedAttributes;
+static int ett_cms_RecipientInfo;
+static int ett_cms_KeyTransRecipientInfo;
+static int ett_cms_RecipientIdentifier;
+static int ett_cms_KeyAgreeRecipientInfo;
+static int ett_cms_OriginatorIdentifierOrKey;
+static int ett_cms_OriginatorPublicKey;
+static int ett_cms_RecipientEncryptedKeys;
+static int ett_cms_RecipientEncryptedKey;
+static int ett_cms_KeyAgreeRecipientIdentifier;
+static int ett_cms_RecipientKeyIdentifier;
+static int ett_cms_KEKRecipientInfo;
+static int ett_cms_KEKIdentifier;
+static int ett_cms_PasswordRecipientInfo;
+static int ett_cms_OtherRecipientInfo;
+static int ett_cms_DigestedData;
+static int ett_cms_EncryptedData;
+static int ett_cms_AuthenticatedData;
+static int ett_cms_AuthAttributes;
+static int ett_cms_UnauthAttributes;
+static int ett_cms_RevocationInfoChoices;
+static int ett_cms_RevocationInfoChoice;
+static int ett_cms_OtherRevocationInfoFormat;
+static int ett_cms_CertificateChoices;
+static int ett_cms_CertificateSet;
+static int ett_cms_IssuerAndSerialNumber;
+static int ett_cms_OtherKeyAttribute;
+static int ett_cms_Time;
+static int ett_cms_RC2CBCParameter;
+static int ett_cms_ExtendedCertificate;
+static int ett_cms_ExtendedCertificateInfo;
+static int ett_cms_DigestInfo;
+static int ett_cms_SMIMECapabilities;
+static int ett_cms_SMIMECapability;
+static int ett_cms_SMIMEEncryptionKeyPreference;
+static int ett_cms_RC2CBCParameters;
+static int ett_cms_AuthEnvelopedData;
+static int ett_cms_CCMParameters;
+static int ett_cms_GCMParameters;
+static int ett_cms_AttributeCertificateV1;
+static int ett_cms_AttributeCertificateInfoV1;
+static int ett_cms_T_subject;
+static int ett_cms_SEQUENCE_OF_Attribute;
+static int ett_cms_FirmwarePackageIdentifier;
+static int ett_cms_PreferredOrLegacyPackageIdentifier;
+static int ett_cms_PreferredPackageIdentifier;
+static int ett_cms_PreferredOrLegacyStalePackageIdentifier;
+static int ett_cms_TargetHardwareIdentifiers;
+static int ett_cms_ImplementedCryptoAlgorithms;
+static int ett_cms_ImplementedCompressAlgorithms;
+static int ett_cms_CommunityIdentifiers;
+static int ett_cms_CommunityIdentifier;
+static int ett_cms_HardwareModules;
+static int ett_cms_SEQUENCE_OF_HardwareSerialEntry;
+static int ett_cms_HardwareSerialEntry;
+static int ett_cms_T_block;
+static int ett_cms_FirmwarePackageInfo;
+static int ett_cms_SEQUENCE_OF_PreferredOrLegacyPackageIdentifier;
+static int ett_cms_FirmwarePackageLoadReceipt;
+static int ett_cms_FirmwarePackageLoadError;
+static int ett_cms_SEQUENCE_OF_CurrentFWConfig;
+static int ett_cms_CurrentFWConfig;
+static int ett_cms_HardwareModuleName;
+static int ett_cms_FirmwarePackageMessageDigest;
+
+static dissector_handle_t cms_handle;
static int dissect_cms_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_) ; /* XXX kill a compiler warning until asn2wrs stops generating these silly wrappers */
@@ -318,8 +318,8 @@ struct cms_private_data {
tvbuff_t *content_tvb;
};
-static proto_tree *top_tree=NULL;
-static proto_tree *cap_tree=NULL;
+static proto_tree *top_tree;
+static proto_tree *cap_tree;
#define HASH_SHA1 "1.3.14.3.2.26"
diff --git a/epan/dissectors/packet-collectd.c b/epan/dissectors/packet-collectd.c
index 919b509aed..83ac49f1ab 100644
--- a/epan/dissectors/packet-collectd.c
+++ b/epan/dissectors/packet-collectd.c
@@ -388,7 +388,7 @@ dissect_collectd_string (tvbuff_t *tvb, packet_info *pinfo, gint type_hf,
if (ret_item != NULL)
*ret_item = pi;
- return (0);
+ return 0;
} /* int dissect_collectd_string */
static int
@@ -507,7 +507,7 @@ dissect_collectd_integer (tvbuff_t *tvb, packet_info *pinfo, gint type_hf,
proto_tree_add_item (pt, type_hf, tvb, offset + 4, 8, ENC_BIG_ENDIAN);
}
- return (0);
+ return 0;
} /* int dissect_collectd_integer */
static void
@@ -715,7 +715,7 @@ dissect_collectd_part_values (tvbuff_t *tvb, packet_info *pinfo, gint offset,
collectd_proto_tree_add_assembled_metric (tvb, offset + 6, length - 6,
vdispatch, pt);
- return (0);
+ return 0;
} /* void dissect_collectd_part_values */
static int
@@ -779,7 +779,7 @@ dissect_collectd_signature (tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_item (pt, hf_collectd_data_sighash, tvb, offset + 4, 32, ENC_NA);
proto_tree_add_item (pt, hf_collectd_data_username, tvb, offset + 36, length - 36, ENC_ASCII);
- return (0);
+ return 0;
} /* int dissect_collectd_signature */
static int
@@ -866,7 +866,7 @@ dissect_collectd_encrypted (tvbuff_t *tvb, packet_info *pinfo,
offset + (22 + username_length),
length - (22 + username_length), ENC_NA);
- return (0);
+ return 0;
} /* int dissect_collectd_encrypted */
static int
@@ -884,7 +884,7 @@ stats_account_string (wmem_allocator_t *scope, string_counter_t **ret_list, cons
if (strcmp (new_value, entry->string) == 0)
{
entry->count++;
- return (0);
+ return 0;
}
entry = (string_counter_t *)wmem_alloc0 (scope, sizeof (*entry));
@@ -894,7 +894,7 @@ stats_account_string (wmem_allocator_t *scope, string_counter_t **ret_list, cons
*ret_list = entry;
- return (0);
+ return 0;
}
static int
diff --git a/epan/dissectors/packet-communityid.c b/epan/dissectors/packet-communityid.c
index 6b5c3816a7..dd172b59a1 100644
--- a/epan/dissectors/packet-communityid.c
+++ b/epan/dissectors/packet-communityid.c
@@ -416,8 +416,8 @@ static int hf_communityid_hash;
static dissector_handle_t communityid_handle;
/* Config settings as handled by Wireshark's preference framework ... */
-static gboolean pref_cid_do_base64 = TRUE;
-static guint pref_cid_seed = 0;
+static bool pref_cid_do_base64 = true;
+static guint pref_cid_seed;
/* ... and as interpreted by the Community ID code. */
static communityid_cfg_t cid_cfg;
diff --git a/epan/dissectors/packet-componentstatus.c b/epan/dissectors/packet-componentstatus.c
index 0848c52cff..cbb81a387b 100644
--- a/epan/dissectors/packet-componentstatus.c
+++ b/epan/dissectors/packet-componentstatus.c
@@ -52,8 +52,8 @@ static int hf_message_sender_id_group;
static int hf_message_sender_id_object;
static int hf_message_sender_timestamp;
-static guint64 componentstatusprotocol_total_msgs = 0;
-static guint64 componentstatusprotocol_total_bytes = 0;
+static guint64 componentstatusprotocol_total_msgs;
+static guint64 componentstatusprotocol_total_bytes;
#define COMPONENTSTATUS_REPORT 0x01
@@ -259,16 +259,16 @@ dissect_componentstatusprotocol(tvbuff_t *message_tvb, packet_info *pinfo, proto
gint32 version;
if (tvb_reported_length(message_tvb) < 4 + 4)
- return(0);
+ return 0;
/* Check, if this packet really contains a ComponentStatusProtocol message */
type = tvb_get_guint8(message_tvb, 0);
if (type != COMPONENTSTATUS_REPORT) {
- return(0);
+ return 0;
}
version = tvb_get_ntohl(message_tvb, 4);
if (version != COMPONENTSTATUSPROTOCOL_VERSION) {
- return(0);
+ return 0;
}
col_set_str(pinfo->cinfo, COL_PROTOCOL, "ComponentStatusProtocol");
@@ -279,7 +279,7 @@ dissect_componentstatusprotocol(tvbuff_t *message_tvb, packet_info *pinfo, proto
/* dissect the message */
dissect_componentstatusprotocol_message(message_tvb, pinfo, componentstatusprotocol_tree);
- return(tvb_reported_length(message_tvb));
+ return tvb_reported_length(message_tvb);
}
diff --git a/epan/dissectors/packet-cops.c b/epan/dissectors/packet-cops.c
index d003f7fca0..d4174ea194 100644
--- a/epan/dissectors/packet-cops.c
+++ b/epan/dissectors/packet-cops.c
@@ -61,7 +61,7 @@
void proto_register_cops(void);
/* Preference: desegmentation of COPS */
-static gboolean cops_desegment = TRUE;
+static bool cops_desegment = true;
#define COPS_OBJECT_HDR_SIZE 4
@@ -829,7 +829,7 @@ static void decode_docsis_request_transmission_policy(tvbuff_t *tvb, guint32 off
static void cops_analyze_packetcable_dqos_obj(tvbuff_t *, packet_info *, proto_tree *, guint8, guint32);
static void cops_analyze_packetcable_mm_obj(tvbuff_t *, packet_info *, proto_tree *, guint8, guint32);
-static gboolean cops_packetcable = TRUE;
+static bool cops_packetcable = true;
/* End of addition for PacketCable */
@@ -3036,7 +3036,7 @@ info_to_cops_subtree(tvbuff_t *tvb, proto_tree *st, int n, int offset, const cha
proto_item *tv;
tv = proto_tree_add_none_format( st, hf_cops_subtree, tvb, offset, n, "%s", str);
- return( proto_item_add_subtree( tv, ett_cops_subtree ) );
+ return proto_item_add_subtree( tv, ett_cops_subtree );
}
/* Cops - Section : D-QoS Transaction ID */
diff --git a/epan/dissectors/packet-corosync-totemnet.c b/epan/dissectors/packet-corosync-totemnet.c
index e9e534ffb3..007466de06 100644
--- a/epan/dissectors/packet-corosync-totemnet.c
+++ b/epan/dissectors/packet-corosync-totemnet.c
@@ -45,8 +45,8 @@ static int hf_corosync_totemnet_security_crypto_type;
static int hf_corosync_totemnet_security_crypto_key;
/* configurable parameters */
-static gchar* corosync_totemnet_private_keys = NULL;
-static gchar** corosync_totemnet_private_keys_list = NULL;
+static gchar* corosync_totemnet_private_keys;
+static gchar** corosync_totemnet_private_keys_list;
/* Initialize the subtree pointers */
static gint ett_corosync_totemnet_security_header;
diff --git a/epan/dissectors/packet-cose.c b/epan/dissectors/packet-cose.c
index 4ee259a2be..fba5d5d3c1 100644
--- a/epan/dissectors/packet-cose.c
+++ b/epan/dissectors/packet-cose.c
@@ -40,31 +40,31 @@ static int proto_cose;
static int proto_cose_params;
/// Dissect opaque CBOR data
-static dissector_handle_t handle_cbor = NULL;
+static dissector_handle_t handle_cbor;
/// Dissector handles
-static dissector_handle_t handle_cose_msg_hdr = NULL;
-static dissector_handle_t handle_cose_msg_tagged = NULL;
-static dissector_handle_t handle_cose_sign = NULL;
-static dissector_handle_t handle_cose_sign_media_type = NULL;
-static dissector_handle_t handle_cose_sign1 = NULL;
-static dissector_handle_t handle_cose_sign1_media_type = NULL;
-static dissector_handle_t handle_cose_encrypt = NULL;
-static dissector_handle_t handle_cose_encrypt_media_type = NULL;
-static dissector_handle_t handle_cose_encrypt0 = NULL;
-static dissector_handle_t handle_cose_encrypt0_media_type = NULL;
-static dissector_handle_t handle_cose_mac = NULL;
-static dissector_handle_t handle_cose_mac_media_type = NULL;
-static dissector_handle_t handle_cose_mac0 = NULL;
-static dissector_handle_t handle_cose_mac0_media_type = NULL;
-static dissector_handle_t handle_cose_key = NULL;
-static dissector_handle_t handle_cose_key_set = NULL;
+static dissector_handle_t handle_cose_msg_hdr;
+static dissector_handle_t handle_cose_msg_tagged;
+static dissector_handle_t handle_cose_sign;
+static dissector_handle_t handle_cose_sign_media_type;
+static dissector_handle_t handle_cose_sign1;
+static dissector_handle_t handle_cose_sign1_media_type;
+static dissector_handle_t handle_cose_encrypt;
+static dissector_handle_t handle_cose_encrypt_media_type;
+static dissector_handle_t handle_cose_encrypt0;
+static dissector_handle_t handle_cose_encrypt0_media_type;
+static dissector_handle_t handle_cose_mac;
+static dissector_handle_t handle_cose_mac_media_type;
+static dissector_handle_t handle_cose_mac0;
+static dissector_handle_t handle_cose_mac0_media_type;
+static dissector_handle_t handle_cose_key;
+static dissector_handle_t handle_cose_key_set;
/// Dissect opaque data
-static dissector_table_t table_media = NULL;
+static dissector_table_t table_media;
/// Dissect extension items
-static dissector_table_t table_cose_msg_tag = NULL;
-static dissector_table_t table_header = NULL;
-static dissector_table_t table_keyparam = NULL;
+static dissector_table_t table_cose_msg_tag;
+static dissector_table_t table_header;
+static dissector_table_t table_keyparam;
static const val64_string alg_vals[] = {
{-65535, "RS1"},
diff --git a/epan/dissectors/packet-couchbase.c b/epan/dissectors/packet-couchbase.c
index 4b1a1d4d5c..3add5ba2a1 100644
--- a/epan/dissectors/packet-couchbase.c
+++ b/epan/dissectors/packet-couchbase.c
@@ -1148,7 +1148,7 @@ static dissector_handle_t couchbase_handle;
static dissector_handle_t json_handle;
/* desegmentation of COUCHBASE payload */
-static gboolean couchbase_desegment_body = TRUE;
+static bool couchbase_desegment_body = true;
static guint couchbase_ssl_port = 11207;
static guint couchbase_ssl_port_pref = 11207;
@@ -2759,29 +2759,12 @@ dissect_value(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
ti = proto_tree_add_item(tree, hf_value, tvb, offset, value_len, ENC_ASCII | ENC_NA);
#ifdef HAVE_SNAPPY
if (datatype & DT_SNAPPY) {
- size_t orig_size = 0;
- snappy_status ret;
- guchar *decompressed_buffer = NULL;
- tvbuff_t* compressed_tvb = NULL;
-
- ret = snappy_uncompressed_length(tvb_get_ptr(tvb, offset, -1),
- tvb_captured_length_remaining(tvb, offset),
- &orig_size);
- if (ret == SNAPPY_OK) {
- decompressed_buffer = (guchar*)wmem_alloc(pinfo->pool, orig_size);
- ret = snappy_uncompress(tvb_get_ptr(tvb, offset, -1),
- tvb_captured_length_remaining(tvb, offset),
- decompressed_buffer,
- &orig_size);
- if (ret == SNAPPY_OK) {
- compressed_tvb = tvb_new_child_real_data(tvb, decompressed_buffer, (guint32)orig_size, (guint32)orig_size);
- add_new_data_source(pinfo, compressed_tvb, "Decompressed Data");
+ tvbuff_t* decompressed_tvb = tvb_child_uncompress_snappy(tvb, tvb, offset, tvb_captured_length_remaining(tvb, offset));
+ if (decompressed_tvb != NULL) {
+ add_new_data_source(pinfo, decompressed_tvb, "Decompressed Data");
if (datatype & DT_JSON) {
- call_dissector(json_handle, compressed_tvb, pinfo, tree);
+ call_dissector(json_handle, decompressed_tvb, pinfo, tree);
}
- } else {
- expert_add_info_format(pinfo, ti, &ei_compression_error, "Error uncompressing snappy data");
- }
} else {
expert_add_info_format(pinfo, ti, &ei_compression_error, "Error uncompressing snappy data");
}
diff --git a/epan/dissectors/packet-cp2179.c b/epan/dissectors/packet-cp2179.c
index 7b147100a3..f76ada4148 100644
--- a/epan/dissectors/packet-cp2179.c
+++ b/epan/dissectors/packet-cp2179.c
@@ -58,7 +58,7 @@ void proto_register_cp2179(void);
#define SBO_OPERATE_REPLY_LEN 9
#define SBO_SELECT_REPLY_LEN 10
-static gboolean cp2179_telnet_clean = TRUE;
+static bool cp2179_telnet_clean = true;
/* Message Types */
#define BASIC_SCAN_REQUEST 1
@@ -564,7 +564,7 @@ dissect_response_frame(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int
proto_tree_add_item(cp2179_proto_tree, hf_cp2179_number_characters, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- /* get the converstation data */
+ /* get the conversation data */
conv = (cp2179_conversation *)p_get_proto_data(wmem_file_scope(), pinfo, proto_cp2179, 0);
if (conv) {
diff --git a/epan/dissectors/packet-cpfi.c b/epan/dissectors/packet-cpfi.c
index 59f1a22f27..d4e804fc99 100644
--- a/epan/dissectors/packet-cpfi.c
+++ b/epan/dissectors/packet-cpfi.c
@@ -48,7 +48,7 @@ void proto_reg_handoff_cpfi(void);
/* configurable parameters */
static guint gbl_cpfi_ttot_udp_port = CPFI_DEFAULT_TTOT_UDP_PORT;
-static gboolean cpfi_arrow_moves = TRUE;
+static bool cpfi_arrow_moves = true;
/* Initialize the protocol and registered fields */
static int proto_cpfi;
@@ -369,8 +369,7 @@ dissect_cpfi(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree, void *
footer_tvb = tvb_new_subset_length_caplen(message_tvb, 8+body_length, length, 8);
dissect_cpfi_footer(footer_tvb, cpfi_tree);
- return(tvb_reported_length(message_tvb));
-
+ return tvb_reported_length(message_tvb);
}
/* Register the protocol with Wireshark */
diff --git a/epan/dissectors/packet-cql.c b/epan/dissectors/packet-cql.c
index 89d69d4122..da5495cbf8 100644
--- a/epan/dissectors/packet-cql.c
+++ b/epan/dissectors/packet-cql.c
@@ -87,6 +87,7 @@ static int hf_cql_custom;
static int hf_cql_null_value;
static int hf_cql_int;
static int hf_cql_uuid;
+static int hf_cql_tracing_uuid;
static int hf_cql_port;
static int hf_cql_timeuuid;
static int hf_cql_varchar;
@@ -124,12 +125,15 @@ static int hf_cql_query_flags_names_for_values;
static int hf_cql_query_flags_reserved3;
static int hf_cql_result_rows_flags_values;
+static int hf_cql_result_prepared_flags_values;
static int hf_cql_result_rows_flag_global_tables_spec;
static int hf_cql_result_rows_flag_has_more_pages;
static int hf_cql_result_rows_flag_no_metadata;
static int hf_cql_result_rows_column_count;
static int hf_cql_result_rows_tuple_size;
+static int hf_cql_result_prepared_pk_count;
+
static int hf_cql_string_result_rows_global_table_spec_ksname;
static int hf_cql_string_result_rows_global_table_spec_table_name;
static int hf_cql_string_result_rows_table_name;
@@ -148,6 +152,7 @@ static int ett_cql_protocol;
static int ett_cql_version;
static int ett_cql_message;
static int ett_cql_result_columns;
+static int ett_cql_results_no_metadata;
static int ett_cql_result_map;
static int ett_cql_result_set;
static int ett_cql_result_metadata;
@@ -391,6 +396,50 @@ static const value_string cql_result_row_type_names[] = {
{ 0x0, NULL }
};
+/* From https://github.com/apache/cassandra/blob/cbf4dcb3345c7e2f42f6a897c66b6460b7acc2ca/doc/native_protocol_v4.spec#L1046 */
+typedef enum {
+ CQL_ERROR_SERVER = 0x0000,
+ CQL_ERROR_PROTOCOL = 0x000A,
+ CQL_ERROR_AUTH = 0x0100,
+ CQL_ERROR_UNAVAILABLE = 0x1000,
+ CQL_ERROR_OVERLOADED = 0x1001,
+ CQL_ERROR_BOOTSTRAPPING = 0x1002,
+ CQL_ERROR_TRUNCATE = 0x1003,
+ CQL_ERROR_WRITE_TIMEOUT = 0x1100,
+ CQL_ERROR_READ_TIMEOUT = 0x1200,
+ CQL_ERROR_READ_FAILURE = 0x1300,
+ CQL_ERROR_FUNCTION_FAILURE = 0x1400,
+ CQL_ERROR_WRITE_FAILURE = 0x1500,
+ CQL_ERROR_SYNTAX = 0x2000,
+ CQL_ERROR_UNAUTHORIEZED = 0x2100,
+ CQL_ERROR_INVALID = 0x2200,
+ CQL_ERROR_CONFIG = 0x2300,
+ CQL_ERROR_ALREADY_EXISTS = 0x2400,
+ CQL_ERROR_UNPREPARED = 0x2500
+} cql_error_types;
+
+static const value_string cql_error_names[] = {
+ { CQL_ERROR_SERVER, "Server error" },
+ { CQL_ERROR_PROTOCOL, "Protocol error" },
+ { CQL_ERROR_AUTH, "Authentication error" },
+ { CQL_ERROR_UNAVAILABLE, "Unavailable exception" },
+ { CQL_ERROR_OVERLOADED, "Overloaded" },
+ { CQL_ERROR_BOOTSTRAPPING, "Is_bootstrapping" },
+ { CQL_ERROR_TRUNCATE, "Truncate_error" },
+ { CQL_ERROR_WRITE_TIMEOUT, "Write_timeout" },
+ { CQL_ERROR_READ_TIMEOUT, "Read_timeout" },
+ { CQL_ERROR_READ_FAILURE, "Read_failure" },
+ { CQL_ERROR_FUNCTION_FAILURE, "Function_failure" },
+ { CQL_ERROR_WRITE_FAILURE, "Write_failure" },
+ { CQL_ERROR_SYNTAX, "Syntax_error" },
+ { CQL_ERROR_UNAUTHORIEZED, "Unauthorized" },
+ { CQL_ERROR_INVALID, "Invalid" },
+ {CQL_ERROR_CONFIG, "Config_error" },
+ { CQL_ERROR_ALREADY_EXISTS, "Already_exists" },
+ { CQL_ERROR_UNPREPARED, "Unprepared" },
+ { 0x0, NULL}
+};
+
static gint
dissect_cql_query_parameters(proto_tree* cql_subtree, tvbuff_t* tvb, gint offset, int execute)
{
@@ -925,6 +974,53 @@ static int parse_value(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t
return offset;
}
+static int parse_result_metadata(proto_tree* tree, packet_info *pinfo, tvbuff_t* tvb,
+ gint offset, gint flags, gint result_rows_columns_count)
+{
+ proto_tree* col_spec_subtree = NULL;
+ guint32 string_length = 0;
+ int j;
+
+ if ((flags & (CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC | CQL_RESULT_ROWS_FLAG_NO_METADATA)) == CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC) {
+ proto_tree_add_item_ret_uint(tree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
+ offset += 2;
+ proto_tree_add_item(tree, hf_cql_string_result_rows_global_table_spec_ksname, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ offset += string_length;
+
+ proto_tree_add_item_ret_uint(tree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
+ offset += 2;
+ proto_tree_add_item(tree, hf_cql_string_result_rows_global_table_spec_table_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ offset += string_length;
+ }
+
+ for (j = 0; j < result_rows_columns_count; ++j) {
+ col_spec_subtree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_cql_result_metadata_colspec, NULL, "Column");
+ proto_item_append_text(col_spec_subtree, " # %" PRId32 " specification", j + 1);
+ if (!(flags & CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC)) {
+ /* ksname and tablename */
+ proto_tree_add_item_ret_uint(col_spec_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
+ offset += 2;
+ proto_tree_add_item(col_spec_subtree, hf_cql_string_result_rows_keyspace_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ offset += string_length;
+ proto_tree_add_item_ret_uint(col_spec_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
+ offset += 2;
+ proto_tree_add_item(col_spec_subtree, hf_cql_string_result_rows_table_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ offset += string_length;
+ }
+
+ /* column name */
+ proto_tree_add_item_ret_uint(col_spec_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
+ offset += 2;
+ proto_tree_add_item(col_spec_subtree, hf_cql_string_result_rows_column_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ offset += string_length;
+
+ /* type "option" */
+ offset = parse_option(col_spec_subtree, pinfo, tvb, offset);
+ }
+
+ return offset;
+}
+
static int parse_row(proto_tree* columns_subtree, packet_info *pinfo, tvbuff_t* tvb,
gint offset_metadata, gint offset, gint result_rows_columns_count)
{
@@ -979,7 +1075,7 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
proto_tree* columns_subtree = NULL;
proto_tree* single_column_subtree = NULL;
proto_tree* metadata_subtree = NULL;
- proto_tree* col_spec_subtree = NULL;
+ proto_tree* prepared_metadata_subtree = NULL;
gint offset = 0;
gint offset_row_metadata = 0;
@@ -998,6 +1094,8 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
guint32 result_kind = 0;
gint32 result_rows_flags = 0;
gint32 result_rows_columns_count = 0;
+ gint32 result_prepared_flags = 0;
+ gint32 result_prepared_pk_count = 0;
gint64 j = 0;
gint64 k = 0;
guint32 short_bytes_length = 0;
@@ -1245,9 +1343,11 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
cql_subtree = proto_tree_add_subtree(cql_tree, tvb, offset, message_length, ett_cql_message, &ti, "Query");
/* Query */
+ const guint8 *query_string;
proto_tree_add_item_ret_uint(cql_subtree, hf_cql_string_length, tvb, offset, 4, ENC_BIG_ENDIAN, &string_length);
offset += 4;
- proto_tree_add_item(cql_subtree, hf_cql_string, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ proto_tree_add_item_ret_string(cql_subtree, hf_cql_string, tvb, offset, string_length, ENC_UTF_8 | ENC_NA, pinfo->pool, &query_string);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ": %s", query_string);
offset += string_length;
/* Query parameters */
@@ -1356,11 +1456,16 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
break;
}
} else {
+ if (flags & CQL_HEADER_FLAG_TRACING) {
+ add_cql_uuid(cql_tree, hf_cql_tracing_uuid, tvb, offset);
+ offset += 16;
+ }
switch (opcode) {
case CQL_OPCODE_ERROR:
cql_subtree = proto_tree_add_subtree(cql_tree, tvb, offset, message_length, ett_cql_message, &ti, "Message ERROR");
-
- proto_tree_add_item(cql_subtree, hf_cql_error_code, tvb, offset, 4, ENC_BIG_ENDIAN);
+ guint32 error_code;
+ proto_tree_add_item_ret_uint(cql_subtree, hf_cql_error_code, tvb, offset, 4, ENC_BIG_ENDIAN, &error_code);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ": %s (0x%x)", val_to_str_const(error_code, cql_error_names, "Unknown error code"), error_code);
offset += 4;
/* string */
@@ -1419,13 +1524,16 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
offset += 2;
proto_tree_add_item(cust_payload_tree, hf_cql_bytesmap_string, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
offset += string_length;
- proto_tree_add_item(single_column_subtree, hf_cql_bytes, tvb, offset, bytes_length, ENC_NA);
- offset += bytes_length;
+ if (bytes_length > 0) {
+ proto_tree_add_item(cust_payload_tree, hf_cql_bytes, tvb, offset, bytes_length, ENC_NA);
+ offset += bytes_length;
+ }
}
return offset;
}
proto_tree_add_item_ret_int(cql_subtree, hf_cql_result_kind, tvb, offset, 4, ENC_BIG_ENDIAN, &result_kind);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ": %s", val_to_str_const(result_kind, cql_result_kind_names, "Unknown kind"));
offset += 4;
switch (result_kind) {
@@ -1434,14 +1542,13 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
break;
case CQL_RESULT_KIND_ROWS:
- proto_tree_add_item_ret_uint(cql_subtree, hf_cql_result_rows_flags_values, tvb, offset, 4, ENC_BIG_ENDIAN, &result_rows_flags);
- proto_tree_add_item(cql_subtree, hf_cql_result_rows_flag_global_tables_spec, tvb, offset, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(cql_subtree, hf_cql_result_rows_flag_has_more_pages, tvb, offset, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(cql_subtree, hf_cql_result_rows_flag_no_metadata, tvb, offset, 4, ENC_BIG_ENDIAN);
+ metadata_subtree = proto_tree_add_subtree(cql_subtree, tvb, offset, 0, ett_cql_result_metadata, &ti, "Result Metadata");
+ proto_tree_add_item_ret_uint(metadata_subtree, hf_cql_result_rows_flags_values, tvb, offset, 4, ENC_BIG_ENDIAN, &result_rows_flags);
+ proto_tree_add_item(metadata_subtree, hf_cql_result_rows_flag_global_tables_spec, tvb, offset, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(metadata_subtree, hf_cql_result_rows_flag_has_more_pages, tvb, offset, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(metadata_subtree, hf_cql_result_rows_flag_no_metadata, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
- metadata_subtree = proto_tree_add_subtree(cql_subtree, tvb, offset, 0, ett_cql_result_metadata, &ti, "Metadata");
-
ti = proto_tree_add_item_ret_int(metadata_subtree, hf_cql_result_rows_column_count, tvb, offset, 4, ENC_BIG_ENDIAN, &result_rows_columns_count);
if (result_rows_columns_count < 0) {
expert_add_info(pinfo, ti, &ei_cql_unexpected_negative_value);
@@ -1449,18 +1556,6 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
}
offset += 4;
- if ((result_rows_flags & (CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC | CQL_RESULT_ROWS_FLAG_NO_METADATA)) == CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC) {
- proto_tree_add_item_ret_uint(metadata_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
- offset += 2;
- proto_tree_add_item(metadata_subtree, hf_cql_string_result_rows_global_table_spec_ksname, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
- offset += string_length;
-
- proto_tree_add_item_ret_uint(metadata_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
- offset += 2;
- proto_tree_add_item(metadata_subtree, hf_cql_string_result_rows_global_table_spec_table_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
- offset += string_length;
- }
-
if (result_rows_flags & CQL_RESULT_ROWS_FLAG_HAS_MORE_PAGES) {
/* show paging state */
proto_tree_add_item_ret_int(metadata_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
@@ -1478,32 +1573,7 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
* simply remember the offset of the row metadata for later parsing of the actual rows.
**/
offset_row_metadata = offset;
-
- for (j = 0; j < result_rows_columns_count; ++j) {
- col_spec_subtree = proto_tree_add_subtree(metadata_subtree, tvb, offset, 0, ett_cql_result_metadata_colspec, NULL, "Column");
- proto_item_append_text(col_spec_subtree, " # %" PRId64 " specification", j + 1);
- if (!(result_rows_flags & CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC)) {
- /* ksname and tablename */
- proto_tree_add_item_ret_uint(col_spec_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
- offset += 2;
- proto_tree_add_item(col_spec_subtree, hf_cql_string_result_rows_keyspace_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
- offset += string_length;
- proto_tree_add_item_ret_uint(col_spec_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
- offset += 2;
- proto_tree_add_item(col_spec_subtree, hf_cql_string_result_rows_table_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
- offset += string_length;
- }
-
- /* column name */
- proto_tree_add_item_ret_uint(col_spec_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
- offset += 2;
- proto_tree_add_item(col_spec_subtree, hf_cql_string_result_rows_column_name, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
- offset += string_length;
-
-
- /* type "option" */
- offset = parse_option(col_spec_subtree, pinfo, tvb, offset);
- }
+ offset = parse_result_metadata(metadata_subtree, pinfo, tvb, offset, result_rows_flags, result_rows_columns_count);
}
rows_subtree = proto_tree_add_subtree(cql_subtree, tvb, offset, 0, ett_cql_result_rows, &ti, "Rows");
@@ -1512,6 +1582,7 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
expert_add_info(pinfo, ti, &ei_cql_unexpected_negative_value);
return tvb_reported_length(tvb);
}
+ col_append_fstr(pinfo->cinfo, COL_INFO, " (%d rows)", result_rows_row_count);
offset += 4;
if (result_rows_columns_count) {
@@ -1523,12 +1594,20 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
offset = parse_row(columns_subtree, pinfo, tvb, offset_row_metadata, offset, result_rows_columns_count);
} else {
for (k = 0; k < result_rows_columns_count; ++k) {
- single_column_subtree = proto_tree_add_item_ret_int(columns_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
- proto_item_append_text(single_column_subtree, " for column # %" PRId64, k + 1);
+ proto_tree_add_item_ret_int(columns_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
offset += 4;
+ single_column_subtree = proto_tree_add_subtree(columns_subtree, tvb, offset, bytes_length > 0 ? bytes_length : 0, ett_cql_results_no_metadata, &ti, "Column data");
if (bytes_length > 0) {
+ proto_item_append_text(single_column_subtree, " for column # %" PRId64, k + 1);
proto_tree_add_item(single_column_subtree, hf_cql_bytes, tvb, offset, bytes_length, ENC_NA);
offset += bytes_length;
+ } else if (bytes_length == -1) {
+ proto_item_append_text(single_column_subtree, " is NULL for column # %" PRId64, k + 1);
+ } else if (bytes_length == -2) {
+ proto_item_append_text(single_column_subtree, " is not set for column # %" PRId64, k + 1);
+ } else {
+ expert_add_info(pinfo, ti, &ei_cql_unexpected_negative_value);
+ return tvb_reported_length(tvb);
}
}
}
@@ -1537,7 +1616,6 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
break;
-
case CQL_RESULT_KIND_SET_KEYSPACE:
proto_tree_add_item_ret_uint(cql_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
offset += 2;
@@ -1546,13 +1624,66 @@ dissect_cql_tcp_pdu(tvbuff_t* raw_tvb, packet_info* pinfo, proto_tree* tree, voi
case CQL_RESULT_KIND_PREPARED:
+ /* <id><metadata><result_metadata> */
+
/* Query ID */
proto_tree_add_item_ret_uint(cql_subtree, hf_cql_short_bytes_length, tvb, offset, 2, ENC_BIG_ENDIAN, &short_bytes_length);
offset += 2;
proto_tree_add_item(cql_subtree, hf_cql_query_id, tvb, offset, short_bytes_length, ENC_NA);
- break;
+ offset += short_bytes_length;
+ /* metadata: <flags><columns_count><pk_count>[<pk_index_1>...<pk_index_n>][<global_table_spec>?<col_spec_1>...<col_spec_n>] */
+ prepared_metadata_subtree = proto_tree_add_subtree(cql_subtree, tvb, offset, 0, ett_cql_result_metadata, &ti, "Prepared Metadata");
+ proto_tree_add_item_ret_uint(prepared_metadata_subtree, hf_cql_result_prepared_flags_values, tvb, offset, 4, ENC_BIG_ENDIAN, &result_prepared_flags);
+ proto_tree_add_item(prepared_metadata_subtree, hf_cql_result_rows_flag_global_tables_spec, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ proto_tree_add_item_ret_int(prepared_metadata_subtree, hf_cql_result_rows_column_count, tvb, offset, 4, ENC_BIG_ENDIAN, &result_rows_columns_count);
+ offset += 4;
+ proto_tree_add_item_ret_int(prepared_metadata_subtree, hf_cql_result_prepared_pk_count, tvb, offset, 4, ENC_BIG_ENDIAN, &result_prepared_pk_count);
+ offset += 4;
+
+ /* TODO: skipping all pk_index elements for now*/
+
+ if (result_prepared_flags & CQL_RESULT_ROWS_FLAG_GLOBAL_TABLES_SPEC) {
+ /* <global_table_spec> - two strings - name of keyspace and name of table */
+ proto_tree_add_item_ret_uint(prepared_metadata_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
+ offset += 2;
+ proto_tree_add_item(prepared_metadata_subtree, hf_cql_string, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ offset += string_length;
+ proto_tree_add_item_ret_uint(prepared_metadata_subtree, hf_cql_string_length, tvb, offset, 2, ENC_BIG_ENDIAN, &string_length);
+ offset += 2;
+ proto_tree_add_item(prepared_metadata_subtree, hf_cql_string, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
+ offset += string_length;
+ }
+ metadata_subtree = proto_tree_add_subtree(cql_subtree, tvb, offset, 0, ett_cql_result_metadata, &ti, "Result Metadata");
+ proto_tree_add_item_ret_uint(metadata_subtree, hf_cql_result_rows_flags_values, tvb, offset, 4, ENC_BIG_ENDIAN, &result_rows_flags);
+ proto_tree_add_item(metadata_subtree, hf_cql_result_rows_flag_global_tables_spec, tvb, offset, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(metadata_subtree, hf_cql_result_rows_flag_has_more_pages, tvb, offset, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(metadata_subtree, hf_cql_result_rows_flag_no_metadata, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ ti = proto_tree_add_item_ret_int(metadata_subtree, hf_cql_result_rows_column_count, tvb, offset, 4, ENC_BIG_ENDIAN, &result_rows_columns_count);
+ if (result_rows_columns_count < 0) {
+ expert_add_info(pinfo, ti, &ei_cql_unexpected_negative_value);
+ return tvb_reported_length(tvb);
+ }
+ offset += 4;
+
+ if (result_rows_flags & CQL_RESULT_ROWS_FLAG_HAS_MORE_PAGES) {
+ /* show paging state */
+ proto_tree_add_item_ret_int(metadata_subtree, hf_cql_bytes_length, tvb, offset, 4, ENC_BIG_ENDIAN, &bytes_length);
+ offset += 4;
+ if (bytes_length > 0) {
+ proto_tree_add_item(metadata_subtree, hf_cql_paging_state, tvb, offset, bytes_length, ENC_NA);
+ offset += bytes_length;
+ }
+ }
+
+ /* <result_metadata> is identical to rows result metadata */
+ parse_result_metadata(metadata_subtree, pinfo, tvb, offset, result_rows_flags, result_rows_columns_count);
+
+ break;
case CQL_RESULT_KIND_SCHEMA_CHANGE:
proto_tree_add_item(cql_subtree, hf_cql_string, tvb, offset, string_length, ENC_UTF_8 | ENC_NA);
offset += string_length;
@@ -1751,6 +1882,15 @@ proto_register_cql(void)
}
},
{
+ &hf_cql_result_prepared_flags_values,
+ {
+ "Prepared Result Flags", "cql.result.prepared.flags",
+ FT_UINT32, BASE_DEC,
+ NULL, 0x0,
+ NULL, HFILL
+ }
+ },
+ {
&hf_cql_result_rows_flag_global_tables_spec,
{
"Global tables spec.", "cql.result.rows.flags.global_tables",
@@ -2411,8 +2551,8 @@ proto_register_cql(void)
&hf_cql_error_code,
{
"Error Code", "cql.error_code",
- FT_INT32, BASE_DEC,
- NULL, 0x0,
+ FT_UINT32, BASE_HEX,
+ VALS(cql_error_names), 0x0,
"Error code from CQL server", HFILL
}
},
@@ -2435,6 +2575,15 @@ proto_register_cql(void)
}
},
{
+ &hf_cql_result_prepared_pk_count,
+ {
+ "PK Count", "cql.result.prepared.pk_count",
+ FT_INT32, BASE_DEC,
+ NULL, 0x0,
+ "Count of Partition Key columns in a Prepared result from CQL server", HFILL
+ }
+ },
+ {
&hf_cql_result_rows_tuple_size,
{
"Tuple Size", "cql.result.rows.tuple_size",
@@ -2480,6 +2629,15 @@ proto_register_cql(void)
}
},
{
+ &hf_cql_tracing_uuid,
+ {
+ "Tracing UUID", "cql.tracing_uuid",
+ FT_GUID, BASE_NONE,
+ NULL, 0x0,
+ NULL, HFILL
+ }
+ },
+ {
&hf_cql_port,
{
"Port", "cql.port",
@@ -2531,6 +2689,7 @@ proto_register_cql(void)
&ett_cql_version,
&ett_cql_message,
&ett_cql_result_columns,
+ &ett_cql_results_no_metadata,
&ett_cql_result_map,
&ett_cql_result_set,
&ett_cql_result_metadata,
diff --git a/epan/dissectors/packet-credssp.c b/epan/dissectors/packet-credssp.c
index 2ba6a4c91d..8b3f3f96c7 100644
--- a/epan/dissectors/packet-credssp.c
+++ b/epan/dissectors/packet-credssp.c
@@ -96,16 +96,16 @@ static int hf_credssp_clientNonce; /* T_clientNonce */
static gint ett_credssp;
static gint ett_credssp_RGC_CredBuffer;
-static gint ett_credssp_NegoData;
-static gint ett_credssp_NegoData_item;
-static gint ett_credssp_TSPasswordCreds;
-static gint ett_credssp_TSCspDataDetail;
-static gint ett_credssp_TSSmartCardCreds;
-static gint ett_credssp_TSRemoteGuardPackageCred;
-static gint ett_credssp_TSRemoteGuardCreds;
-static gint ett_credssp_SEQUENCE_OF_TSRemoteGuardPackageCred;
-static gint ett_credssp_TSCredentials;
-static gint ett_credssp_TSRequest;
+static int ett_credssp_NegoData;
+static int ett_credssp_NegoData_item;
+static int ett_credssp_TSPasswordCreds;
+static int ett_credssp_TSCspDataDetail;
+static int ett_credssp_TSSmartCardCreds;
+static int ett_credssp_TSRemoteGuardPackageCred;
+static int ett_credssp_TSRemoteGuardCreds;
+static int ett_credssp_SEQUENCE_OF_TSRemoteGuardPackageCred;
+static int ett_credssp_TSCredentials;
+static int ett_credssp_TSRequest;
diff --git a/epan/dissectors/packet-crmf.c b/epan/dissectors/packet-crmf.c
index 18bac31b46..b48b1c48a5 100644
--- a/epan/dissectors/packet-crmf.c
+++ b/epan/dissectors/packet-crmf.c
@@ -118,32 +118,32 @@ static int hf_crmf_attributes; /* Attributes */
static int hf_crmf_Attributes_item; /* Attribute */
/* Initialize the subtree pointers */
-static gint ett_crmf_CertReqMessages;
-static gint ett_crmf_CertReqMsg;
-static gint ett_crmf_SEQUENCE_SIZE_1_MAX_OF_AttributeTypeAndValue;
-static gint ett_crmf_CertRequest;
-static gint ett_crmf_CertTemplate;
-static gint ett_crmf_OptionalValidity;
-static gint ett_crmf_Controls;
-static gint ett_crmf_AttributeTypeAndValue;
-static gint ett_crmf_ProofOfPossession;
-static gint ett_crmf_POPOSigningKey;
-static gint ett_crmf_POPOSigningKeyInput;
-static gint ett_crmf_T_authInfo;
-static gint ett_crmf_PKMACValue;
-static gint ett_crmf_PBMParameter;
-static gint ett_crmf_POPOPrivKey;
-static gint ett_crmf_PKIPublicationInfo;
-static gint ett_crmf_SEQUENCE_SIZE_1_MAX_OF_SinglePubInfo;
-static gint ett_crmf_SinglePubInfo;
-static gint ett_crmf_PKIArchiveOptions;
-static gint ett_crmf_EncryptedKey;
-static gint ett_crmf_EncryptedValue;
-static gint ett_crmf_CertId;
-static gint ett_crmf_EncKeyWithID;
-static gint ett_crmf_T_identifier;
-static gint ett_crmf_PrivateKeyInfo;
-static gint ett_crmf_Attributes;
+static int ett_crmf_CertReqMessages;
+static int ett_crmf_CertReqMsg;
+static int ett_crmf_SEQUENCE_SIZE_1_MAX_OF_AttributeTypeAndValue;
+static int ett_crmf_CertRequest;
+static int ett_crmf_CertTemplate;
+static int ett_crmf_OptionalValidity;
+static int ett_crmf_Controls;
+static int ett_crmf_AttributeTypeAndValue;
+static int ett_crmf_ProofOfPossession;
+static int ett_crmf_POPOSigningKey;
+static int ett_crmf_POPOSigningKeyInput;
+static int ett_crmf_T_authInfo;
+static int ett_crmf_PKMACValue;
+static int ett_crmf_PBMParameter;
+static int ett_crmf_POPOPrivKey;
+static int ett_crmf_PKIPublicationInfo;
+static int ett_crmf_SEQUENCE_SIZE_1_MAX_OF_SinglePubInfo;
+static int ett_crmf_SinglePubInfo;
+static int ett_crmf_PKIArchiveOptions;
+static int ett_crmf_EncryptedKey;
+static int ett_crmf_EncryptedValue;
+static int ett_crmf_CertId;
+static int ett_crmf_EncKeyWithID;
+static int ett_crmf_T_identifier;
+static int ett_crmf_PrivateKeyInfo;
+static int ett_crmf_Attributes;
static int
diff --git a/epan/dissectors/packet-csn1.c b/epan/dissectors/packet-csn1.c
index db38f95dfc..6339e987df 100644
--- a/epan/dissectors/packet-csn1.c
+++ b/epan/dissectors/packet-csn1.c
@@ -1386,7 +1386,7 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
case CSN_RECURSIVE_TARRAY:
{ /* Recursive way to specify an array of type: <lists> ::= { 1 <type> } ** 0 ;
* M_REC_TARRAY(_STRUCT, _MEMBER, _MEMBER_TYPE, _ElementCountField)
- * {t, offsetof(_STRUCT, _ElementCountField), (void*)CSNDESCR_##_MEMBER_TYPE, offsetof(_STRUCT, _MEMBER), #_MEMBER, (StreamSerializeFcn_t)sizeof(_MEMBER_TYPE), NULL, NULL, (void_fn_t)ElementsOf(((_STRUCT*)0)->_MEMBER)}
+ * {t, offsetof(_STRUCT, _ElementCountField), (void*)CSNDESCR_##_MEMBER_TYPE, offsetof(_STRUCT, _MEMBER), #_MEMBER, (StreamSerializeFcn_t)sizeof(_MEMBER_TYPE), NULL, NULL, (void_fn_t)array_length(((_STRUCT*)0)->_MEMBER)}
*/
gint16 nSizeElement = (gint16)(gint32)pDescr->value;
guint32 nSizeArray = (guint32)((guintptr)pDescr->aux_fn);
@@ -1463,7 +1463,7 @@ csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pDescr, t
case CSN_RECURSIVE_TARRAY_1:
{ /* Recursive way to specify an array of type: <lists> ::= <type> { 1 <type> } ** 0 ;
* M_REC_TARRAY(_STRUCT, _MEMBER, _MEMBER_TYPE, _ElementCountField)
- * {t, offsetof(_STRUCT, _ElementCountField), (void*)CSNDESCR_##_MEMBER_TYPE, offsetof(_STRUCT, _MEMBER), #_MEMBER, (StreamSerializeFcn_t)sizeof(_MEMBER_TYPE), NULL, NULL, (void_fn_t)ElementsOf(((_STRUCT*)0)->_MEMBER)}
+ * {t, offsetof(_STRUCT, _ElementCountField), (void*)CSNDESCR_##_MEMBER_TYPE, offsetof(_STRUCT, _MEMBER), #_MEMBER, (StreamSerializeFcn_t)sizeof(_MEMBER_TYPE), NULL, NULL, (void_fn_t)array_length(((_STRUCT*)0)->_MEMBER)}
*/
gint16 nSizeElement = (gint16)(gint32)pDescr->value;
guint32 nSizeArray = (guint32)((guintptr)pDescr->aux_fn);
diff --git a/epan/dissectors/packet-csn1.h b/epan/dissectors/packet-csn1.h
index 1162644885..37d4ca54fd 100644
--- a/epan/dissectors/packet-csn1.h
+++ b/epan/dissectors/packet-csn1.h
@@ -40,11 +40,6 @@ typedef gint16 CSN_CallBackStatus_t;
#define CSNCBS_REVISION_LIMIT_STOP -20 /* Stop packing/unpacking - revision limit */
#define CSNCBS_NOT_SUPPORTED_IE -21 /* Handling of the unpacked IE is not supported by MS-software */
-
-
-#ifndef ElementsOf
-#define ElementsOf(array) (sizeof(array) / sizeof(array[0]))
-#endif
typedef void(*void_fn_t)(void);
/* Context holding CSN1 parameters */
@@ -448,7 +443,7 @@ gint16 csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pD
* Par4: will hold the number of element in the array after unpacking
*****************************************************************************/
#define M_REC_TARRAY(_STRUCT, _MEMBER, _MEMBER_TYPE, _ElementCountField, _HF_PTR)\
- {CSN_RECURSIVE_TARRAY, offsetof(_STRUCT, _ElementCountField), {(const void*)CSNDESCR_##_MEMBER_TYPE}, offsetof(_STRUCT, _MEMBER), FALSE, #_MEMBER, NULL, sizeof(_MEMBER_TYPE), _HF_PTR, NULL, (void_fn_t)ElementsOf(((_STRUCT*)0)->_MEMBER)}
+ {CSN_RECURSIVE_TARRAY, offsetof(_STRUCT, _ElementCountField), {(const void*)CSNDESCR_##_MEMBER_TYPE}, offsetof(_STRUCT, _MEMBER), FALSE, #_MEMBER, NULL, sizeof(_MEMBER_TYPE), _HF_PTR, NULL, (void_fn_t)array_length(((_STRUCT*)0)->_MEMBER)}
/******************************************************************************
* M_REC_TARRAY1(Par1, Par2, Par3, Par4)
@@ -456,7 +451,7 @@ gint16 csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pD
* <list> ::= <type> {1 <type>} ** 0 ;
*****************************************************************************/
#define M_REC_TARRAY_1(_STRUCT, _MEMBER, _MEMBER_TYPE, _ElementCountField, _HF_PTR)\
- {CSN_RECURSIVE_TARRAY_1, offsetof(_STRUCT, _ElementCountField), {(const void*)CSNDESCR_##_MEMBER_TYPE}, offsetof(_STRUCT, _MEMBER), FALSE, #_MEMBER, NULL, sizeof(_MEMBER_TYPE), _HF_PTR, NULL, (void_fn_t)ElementsOf(((_STRUCT*)0)->_MEMBER)}
+ {CSN_RECURSIVE_TARRAY_1, offsetof(_STRUCT, _ElementCountField), {(const void*)CSNDESCR_##_MEMBER_TYPE}, offsetof(_STRUCT, _MEMBER), FALSE, #_MEMBER, NULL, sizeof(_MEMBER_TYPE), _HF_PTR, NULL, (void_fn_t)array_length(((_STRUCT*)0)->_MEMBER)}
/******************************************************************************
* M_REC_TARRAY2(Par1, Par2, Par3, Par4)
@@ -464,7 +459,7 @@ gint16 csnStreamDissector(proto_tree *tree, csnStream_t* ar, const CSN_DESCR* pD
* <lists> ::= <type> { 0 <type> } ** 1 ;
*****************************************************************************/
#define M_REC_TARRAY_2(_STRUCT, _MEMBER, _MEMBER_TYPE, _ElementCountField)\
- {CSN_RECURSIVE_TARRAY_2, offsetof(_STRUCT, _ElementCountField), {(const void*)CSNDESCR_##_MEMBER_TYPE}, offsetof(_STRUCT, _MEMBER), FALSE, #_MEMBER, NULL, sizeof(_MEMBER_TYPE), NULL, NULL, (void_fn_t)ElementsOf(((_STRUCT*)0)->_MEMBER)}
+ {CSN_RECURSIVE_TARRAY_2, offsetof(_STRUCT, _ElementCountField), {(const void*)CSNDESCR_##_MEMBER_TYPE}, offsetof(_STRUCT, _MEMBER), FALSE, #_MEMBER, NULL, sizeof(_MEMBER_TYPE), NULL, NULL, (void_fn_t)array_length(((_STRUCT*)0)->_MEMBER)}
/******************************************************************************
* M_TYPE(Par1, Par2, Par3)
diff --git a/epan/dissectors/packet-ctdb.c b/epan/dissectors/packet-ctdb.c
index 1884ede026..853c8189d1 100644
--- a/epan/dissectors/packet-ctdb.c
+++ b/epan/dissectors/packet-ctdb.c
@@ -66,7 +66,7 @@ static gint ett_ctdb_key;
static expert_field ei_ctdb_too_many_nodes;
/* this tree keeps track of caller/reqid for ctdb transactions */
-static wmem_tree_t *ctdb_transactions=NULL;
+static wmem_tree_t *ctdb_transactions;
typedef struct _ctdb_trans_t {
guint32 key_hash;
guint32 request_in;
@@ -75,7 +75,7 @@ typedef struct _ctdb_trans_t {
} ctdb_trans_t;
/* this tree keeps track of CONTROL request/responses */
-static wmem_tree_t *ctdb_controls=NULL;
+static wmem_tree_t *ctdb_controls;
typedef struct _ctdb_control_t {
guint32 opcode;
guint32 request_in;
diff --git a/epan/dissectors/packet-dap.c b/epan/dissectors/packet-dap.c
index 8864b14925..022620cf28 100644
--- a/epan/dissectors/packet-dap.c
+++ b/epan/dissectors/packet-dap.c
@@ -459,176 +459,176 @@ static int hf_dap_SearchControlOptions_searchFamily;
/* Initialize the subtree pointers */
static gint ett_dap;
-static gint ett_dap_ServiceControls;
-static gint ett_dap_T_manageDSAITPlaneRef;
-static gint ett_dap_ServiceControlOptions;
-static gint ett_dap_EntryInformationSelection;
-static gint ett_dap_T_attributes;
-static gint ett_dap_SET_OF_AttributeType;
-static gint ett_dap_T_extraAttributes;
-static gint ett_dap_SET_SIZE_1_MAX_OF_AttributeType;
-static gint ett_dap_ContextSelection;
-static gint ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion;
-static gint ett_dap_TypeAndContextAssertion;
-static gint ett_dap_T_contextAssertions;
-static gint ett_dap_SEQUENCE_OF_ContextAssertion;
-static gint ett_dap_SET_OF_ContextAssertion;
-static gint ett_dap_FamilyReturn;
-static gint ett_dap_T_familySelect;
-static gint ett_dap_EntryInformation;
-static gint ett_dap_T_entry_information;
-static gint ett_dap_EntryInformationItem;
-static gint ett_dap_FamilyEntries;
-static gint ett_dap_SEQUENCE_OF_FamilyEntry;
-static gint ett_dap_FamilyEntry;
-static gint ett_dap_FamilyInformation;
-static gint ett_dap_T_family_information_item;
-static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries;
-static gint ett_dap_Filter;
-static gint ett_dap_SetOfFilter;
-static gint ett_dap_FilterItem;
-static gint ett_dap_T_substrings;
-static gint ett_dap_T_strings;
-static gint ett_dap_T_strings_item;
-static gint ett_dap_MatchingRuleAssertion;
-static gint ett_dap_T_matchingRule;
-static gint ett_dap_PagedResultsRequest;
-static gint ett_dap_T_newRequest;
-static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey;
-static gint ett_dap_SortKey;
-static gint ett_dap_SecurityParameters;
-static gint ett_dap_Time;
-static gint ett_dap_DirectoryBindArgument;
-static gint ett_dap_Credentials;
-static gint ett_dap_SimpleCredentials;
-static gint ett_dap_T_validity;
-static gint ett_dap_T_time1;
-static gint ett_dap_T_time2;
-static gint ett_dap_T_password;
-static gint ett_dap_T_protected;
-static gint ett_dap_StrongCredentials;
-static gint ett_dap_SpkmCredentials;
-static gint ett_dap_SaslCredentials;
-static gint ett_dap_TokenData;
-static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier;
-static gint ett_dap_Token;
-static gint ett_dap_Versions;
-static gint ett_dap_DirectoryBindError;
-static gint ett_dap_T_signedDirectoryBindError;
-static gint ett_dap_DirectoryBindErrorData;
-static gint ett_dap_T_error;
-static gint ett_dap_ReadArgumentData;
-static gint ett_dap_Name;
-static gint ett_dap_ReadArgument;
-static gint ett_dap_T_signedReadArgument;
-static gint ett_dap_ReadResultData;
-static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute;
-static gint ett_dap_ReadResult;
-static gint ett_dap_T_signedReadResult;
-static gint ett_dap_ModifyRights;
-static gint ett_dap_ModifyRights_item;
-static gint ett_dap_T_item;
-static gint ett_dap_T_permission;
-static gint ett_dap_CompareArgumentData;
-static gint ett_dap_CompareArgument;
-static gint ett_dap_T_signedCompareArgument;
-static gint ett_dap_CompareResultData;
-static gint ett_dap_CompareResult;
-static gint ett_dap_T_signedCompareResult;
-static gint ett_dap_AbandonArgumentData;
-static gint ett_dap_AbandonArgument;
-static gint ett_dap_T_signedAbandonArgument;
-static gint ett_dap_AbandonResultData;
-static gint ett_dap_AbandonResult;
-static gint ett_dap_AbandonInformation;
-static gint ett_dap_T_signedAbandonResult;
-static gint ett_dap_ListArgumentData;
-static gint ett_dap_ListArgument;
-static gint ett_dap_T_signedListArgument;
-static gint ett_dap_ListResultData;
-static gint ett_dap_T_listInfo;
-static gint ett_dap_T_subordinates;
-static gint ett_dap_T_subordinates_item;
-static gint ett_dap_SET_OF_ListResult;
-static gint ett_dap_ListResult;
-static gint ett_dap_T_signedListResult;
-static gint ett_dap_PartialOutcomeQualifier;
-static gint ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference;
-static gint ett_dap_T_unknownErrors;
-static gint ett_dap_T_entryCount;
-static gint ett_dap_SearchArgumentData;
-static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument;
-static gint ett_dap_SearchArgument;
-static gint ett_dap_T_signedSearchArgument;
-static gint ett_dap_HierarchySelections;
-static gint ett_dap_SearchControlOptions;
-static gint ett_dap_JoinArgument;
-static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair;
-static gint ett_dap_JoinAttPair;
-static gint ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType;
-static gint ett_dap_SearchResultData;
-static gint ett_dap_T_searchInfo;
-static gint ett_dap_SET_OF_EntryInformation;
-static gint ett_dap_SET_OF_SearchResult;
-static gint ett_dap_SearchResult;
-static gint ett_dap_T_signedSearchResult;
-static gint ett_dap_AddEntryArgumentData;
-static gint ett_dap_SET_OF_Attribute;
-static gint ett_dap_AddEntryArgument;
-static gint ett_dap_T_signedAddEntryArgument;
-static gint ett_dap_AddEntryResultData;
-static gint ett_dap_AddEntryResult;
-static gint ett_dap_AddEntryInformation;
-static gint ett_dap_T_signedAddEntryResult;
-static gint ett_dap_RemoveEntryArgumentData;
-static gint ett_dap_RemoveEntryArgument;
-static gint ett_dap_T_signedRemoveEntryArgument;
-static gint ett_dap_RemoveEntryResultData;
-static gint ett_dap_RemoveEntryResult;
-static gint ett_dap_RemoveEntryInformation;
-static gint ett_dap_T_signedRemoveEntryResult;
-static gint ett_dap_ModifyEntryArgumentData;
-static gint ett_dap_SEQUENCE_OF_EntryModification;
-static gint ett_dap_ModifyEntryArgument;
-static gint ett_dap_T_signedModifyEntryArgument;
-static gint ett_dap_ModifyEntryResultData;
-static gint ett_dap_ModifyEntryResult;
-static gint ett_dap_ModifyEntryInformation;
-static gint ett_dap_T_signedModifyEntryResult;
-static gint ett_dap_EntryModification;
-static gint ett_dap_ModifyDNArgument;
-static gint ett_dap_ModifyDNResultData;
-static gint ett_dap_ModifyDNResult;
-static gint ett_dap_ModifyDNInformation;
-static gint ett_dap_T_signedModifyDNResult;
-static gint ett_dap_AbandonedData;
-static gint ett_dap_Abandoned;
-static gint ett_dap_T_signedAbandoned;
-static gint ett_dap_AbandonFailedErrorData;
-static gint ett_dap_AbandonFailedError;
-static gint ett_dap_T_signedAbandonFailedError;
-static gint ett_dap_AttributeErrorData;
-static gint ett_dap_T_problems;
-static gint ett_dap_T_problems_item;
-static gint ett_dap_AttributeError;
-static gint ett_dap_T_signedAttributeError;
-static gint ett_dap_NameErrorData;
-static gint ett_dap_NameError;
-static gint ett_dap_T_signedNameError;
-static gint ett_dap_ReferralData;
-static gint ett_dap_Referral;
-static gint ett_dap_T_signedReferral;
-static gint ett_dap_SecurityErrorData;
-static gint ett_dap_SecurityError;
-static gint ett_dap_T_signedSecurityError;
-static gint ett_dap_ServiceErrorData;
-static gint ett_dap_ServiceError;
-static gint ett_dap_T_signedServiceError;
-static gint ett_dap_UpdateErrorData;
-static gint ett_dap_T_attributeInfo;
-static gint ett_dap_T_attributeInfo_item;
-static gint ett_dap_UpdateError;
-static gint ett_dap_T_signedUpdateError;
+static int ett_dap_ServiceControls;
+static int ett_dap_T_manageDSAITPlaneRef;
+static int ett_dap_ServiceControlOptions;
+static int ett_dap_EntryInformationSelection;
+static int ett_dap_T_attributes;
+static int ett_dap_SET_OF_AttributeType;
+static int ett_dap_T_extraAttributes;
+static int ett_dap_SET_SIZE_1_MAX_OF_AttributeType;
+static int ett_dap_ContextSelection;
+static int ett_dap_SET_SIZE_1_MAX_OF_TypeAndContextAssertion;
+static int ett_dap_TypeAndContextAssertion;
+static int ett_dap_T_contextAssertions;
+static int ett_dap_SEQUENCE_OF_ContextAssertion;
+static int ett_dap_SET_OF_ContextAssertion;
+static int ett_dap_FamilyReturn;
+static int ett_dap_T_familySelect;
+static int ett_dap_EntryInformation;
+static int ett_dap_T_entry_information;
+static int ett_dap_EntryInformationItem;
+static int ett_dap_FamilyEntries;
+static int ett_dap_SEQUENCE_OF_FamilyEntry;
+static int ett_dap_FamilyEntry;
+static int ett_dap_FamilyInformation;
+static int ett_dap_T_family_information_item;
+static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_FamilyEntries;
+static int ett_dap_Filter;
+static int ett_dap_SetOfFilter;
+static int ett_dap_FilterItem;
+static int ett_dap_T_substrings;
+static int ett_dap_T_strings;
+static int ett_dap_T_strings_item;
+static int ett_dap_MatchingRuleAssertion;
+static int ett_dap_T_matchingRule;
+static int ett_dap_PagedResultsRequest;
+static int ett_dap_T_newRequest;
+static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_SortKey;
+static int ett_dap_SortKey;
+static int ett_dap_SecurityParameters;
+static int ett_dap_Time;
+static int ett_dap_DirectoryBindArgument;
+static int ett_dap_Credentials;
+static int ett_dap_SimpleCredentials;
+static int ett_dap_T_validity;
+static int ett_dap_T_time1;
+static int ett_dap_T_time2;
+static int ett_dap_T_password;
+static int ett_dap_T_protected;
+static int ett_dap_StrongCredentials;
+static int ett_dap_SpkmCredentials;
+static int ett_dap_SaslCredentials;
+static int ett_dap_TokenData;
+static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_AlgorithmIdentifier;
+static int ett_dap_Token;
+static int ett_dap_Versions;
+static int ett_dap_DirectoryBindError;
+static int ett_dap_T_signedDirectoryBindError;
+static int ett_dap_DirectoryBindErrorData;
+static int ett_dap_T_error;
+static int ett_dap_ReadArgumentData;
+static int ett_dap_Name;
+static int ett_dap_ReadArgument;
+static int ett_dap_T_signedReadArgument;
+static int ett_dap_ReadResultData;
+static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_Attribute;
+static int ett_dap_ReadResult;
+static int ett_dap_T_signedReadResult;
+static int ett_dap_ModifyRights;
+static int ett_dap_ModifyRights_item;
+static int ett_dap_T_item;
+static int ett_dap_T_permission;
+static int ett_dap_CompareArgumentData;
+static int ett_dap_CompareArgument;
+static int ett_dap_T_signedCompareArgument;
+static int ett_dap_CompareResultData;
+static int ett_dap_CompareResult;
+static int ett_dap_T_signedCompareResult;
+static int ett_dap_AbandonArgumentData;
+static int ett_dap_AbandonArgument;
+static int ett_dap_T_signedAbandonArgument;
+static int ett_dap_AbandonResultData;
+static int ett_dap_AbandonResult;
+static int ett_dap_AbandonInformation;
+static int ett_dap_T_signedAbandonResult;
+static int ett_dap_ListArgumentData;
+static int ett_dap_ListArgument;
+static int ett_dap_T_signedListArgument;
+static int ett_dap_ListResultData;
+static int ett_dap_T_listInfo;
+static int ett_dap_T_subordinates;
+static int ett_dap_T_subordinates_item;
+static int ett_dap_SET_OF_ListResult;
+static int ett_dap_ListResult;
+static int ett_dap_T_signedListResult;
+static int ett_dap_PartialOutcomeQualifier;
+static int ett_dap_SET_SIZE_1_MAX_OF_ContinuationReference;
+static int ett_dap_T_unknownErrors;
+static int ett_dap_T_entryCount;
+static int ett_dap_SearchArgumentData;
+static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinArgument;
+static int ett_dap_SearchArgument;
+static int ett_dap_T_signedSearchArgument;
+static int ett_dap_HierarchySelections;
+static int ett_dap_SearchControlOptions;
+static int ett_dap_JoinArgument;
+static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinAttPair;
+static int ett_dap_JoinAttPair;
+static int ett_dap_SEQUENCE_SIZE_1_MAX_OF_JoinContextType;
+static int ett_dap_SearchResultData;
+static int ett_dap_T_searchInfo;
+static int ett_dap_SET_OF_EntryInformation;
+static int ett_dap_SET_OF_SearchResult;
+static int ett_dap_SearchResult;
+static int ett_dap_T_signedSearchResult;
+static int ett_dap_AddEntryArgumentData;
+static int ett_dap_SET_OF_Attribute;
+static int ett_dap_AddEntryArgument;
+static int ett_dap_T_signedAddEntryArgument;
+static int ett_dap_AddEntryResultData;
+static int ett_dap_AddEntryResult;
+static int ett_dap_AddEntryInformation;
+static int ett_dap_T_signedAddEntryResult;
+static int ett_dap_RemoveEntryArgumentData;
+static int ett_dap_RemoveEntryArgument;
+static int ett_dap_T_signedRemoveEntryArgument;
+static int ett_dap_RemoveEntryResultData;
+static int ett_dap_RemoveEntryResult;
+static int ett_dap_RemoveEntryInformation;
+static int ett_dap_T_signedRemoveEntryResult;
+static int ett_dap_ModifyEntryArgumentData;
+static int ett_dap_SEQUENCE_OF_EntryModification;
+static int ett_dap_ModifyEntryArgument;
+static int ett_dap_T_signedModifyEntryArgument;
+static int ett_dap_ModifyEntryResultData;
+static int ett_dap_ModifyEntryResult;
+static int ett_dap_ModifyEntryInformation;
+static int ett_dap_T_signedModifyEntryResult;
+static int ett_dap_EntryModification;
+static int ett_dap_ModifyDNArgument;
+static int ett_dap_ModifyDNResultData;
+static int ett_dap_ModifyDNResult;
+static int ett_dap_ModifyDNInformation;
+static int ett_dap_T_signedModifyDNResult;
+static int ett_dap_AbandonedData;
+static int ett_dap_Abandoned;
+static int ett_dap_T_signedAbandoned;
+static int ett_dap_AbandonFailedErrorData;
+static int ett_dap_AbandonFailedError;
+static int ett_dap_T_signedAbandonFailedError;
+static int ett_dap_AttributeErrorData;
+static int ett_dap_T_problems;
+static int ett_dap_T_problems_item;
+static int ett_dap_AttributeError;
+static int ett_dap_T_signedAttributeError;
+static int ett_dap_NameErrorData;
+static int ett_dap_NameError;
+static int ett_dap_T_signedNameError;
+static int ett_dap_ReferralData;
+static int ett_dap_Referral;
+static int ett_dap_T_signedReferral;
+static int ett_dap_SecurityErrorData;
+static int ett_dap_SecurityError;
+static int ett_dap_T_signedSecurityError;
+static int ett_dap_ServiceErrorData;
+static int ett_dap_ServiceError;
+static int ett_dap_T_signedServiceError;
+static int ett_dap_UpdateErrorData;
+static int ett_dap_T_attributeInfo;
+static int ett_dap_T_attributeInfo_item;
+static int ett_dap_UpdateError;
+static int ett_dap_T_signedUpdateError;
static expert_field ei_dap_anonymous;
@@ -1265,7 +1265,7 @@ static const ber_sequence_t FamilyEntries_sequence[] = {
static int
dissect_dap_FamilyEntries(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // FamilyEntries → FamilyEntries/familyEntries → FamilyEntry → FamilyEntry/family-info → FamilyEntries
+ // FamilyEntries -> FamilyEntries/familyEntries -> FamilyEntry -> FamilyEntry/family-info -> FamilyEntries
actx->pinfo->dissection_depth += 4;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -1468,7 +1468,7 @@ static const ber_choice_t Filter_choice[] = {
int
dissect_dap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Filter → SetOfFilter → Filter
+ // Filter -> SetOfFilter -> Filter
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -2929,7 +2929,7 @@ static const ber_choice_t ListResultData_choice[] = {
static int
dissect_dap_ListResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // ListResultData → ListResultData/uncorrelatedListInfo → ListResult → ListResultData
+ // ListResultData -> ListResultData/uncorrelatedListInfo -> ListResult -> ListResultData
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -3319,7 +3319,7 @@ static const ber_choice_t SearchResultData_choice[] = {
static int
dissect_dap_SearchResultData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // SearchResultData → SearchResultData/uncorrelatedSearchInfo → SearchResult → SearchResultData
+ // SearchResultData -> SearchResultData/uncorrelatedSearchInfo -> SearchResult -> SearchResultData
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-data.c b/epan/dissectors/packet-data.c
index f7d8426188..68d2cd8d30 100644
--- a/epan/dissectors/packet-data.c
+++ b/epan/dissectors/packet-data.c
@@ -32,10 +32,10 @@ static int hf_data_text;
static int hf_data_uncompressed_data;
static int hf_data_uncompressed_len;
-static gboolean new_pane = FALSE;
-static gboolean uncompress_data = FALSE;
-static gboolean show_as_text = FALSE;
-static gboolean generate_md5_hash = FALSE;
+static bool new_pane;
+static bool uncompress_data;
+static bool show_as_text;
+static bool generate_md5_hash;
static gint ett_data;
diff --git a/epan/dissectors/packet-db-lsp.c b/epan/dissectors/packet-db-lsp.c
index 28bf0d10bd..477aca9423 100644
--- a/epan/dissectors/packet-db-lsp.c
+++ b/epan/dissectors/packet-db-lsp.c
@@ -51,9 +51,9 @@ static dissector_handle_t db_lsp_tcp_handle;
static dissector_handle_t db_lsp_udp_handle;
/* Use heuristic */
-static gboolean try_heuristic = TRUE;
+static bool try_heuristic = true;
/* desegmentation of tcp payload */
-static gboolean db_lsp_desegment = TRUE;
+static bool db_lsp_desegment = true;
#define TYPE_CONFIG 0x16
#define TYPE_DATA 0x17
diff --git a/epan/dissectors/packet-dbus.c b/epan/dissectors/packet-dbus.c
index 94c6a0862f..ed7f9d7009 100644
--- a/epan/dissectors/packet-dbus.c
+++ b/epan/dissectors/packet-dbus.c
@@ -53,7 +53,7 @@ void proto_reg_handoff_dbus(void);
static int proto_dbus;
static gboolean dbus_desegment = TRUE;
-static gboolean dbus_resolve_names = TRUE;
+static bool dbus_resolve_names = true;
static dissector_handle_t dbus_handle;
static dissector_handle_t dbus_handle_tcp;
@@ -228,7 +228,7 @@ typedef struct _dbus_type_reader_t {
} dbus_type_reader_t;
typedef union {
- gboolean bool_;
+ bool bool_;
guint32 uint;
gint32 int_;
guint64 uint64;
diff --git a/epan/dissectors/packet-dccp.c b/epan/dissectors/packet-dccp.c
index b6f1b39e3a..5b797ecbfb 100644
--- a/epan/dissectors/packet-dccp.c
+++ b/epan/dissectors/packet-dccp.c
@@ -310,10 +310,10 @@ static dissector_table_t dccp_subdissector_table;
static heur_dissector_list_t heur_subdissector_list;
/* preferences */
-static gboolean dccp_summary_in_tree = TRUE;
-static gboolean try_heuristic_first = FALSE;
-static gboolean dccp_check_checksum = TRUE;
-static gboolean dccp_relative_seq = TRUE;
+static bool dccp_summary_in_tree = true;
+static bool try_heuristic_first;
+static bool dccp_check_checksum = true;
+static bool dccp_relative_seq = true;
static guint32 dccp_stream_count;
static void
@@ -570,7 +570,7 @@ guint32 get_dccp_stream_count(void)
return dccp_stream_count;
}
-static gboolean
+static bool
dccp_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "dccp");
diff --git a/epan/dissectors/packet-dcerpc-atsvc.c b/epan/dissectors/packet-dcerpc-atsvc.c
index 908c7ba370..71c748c9dc 100644
--- a/epan/dissectors/packet-dcerpc-atsvc.c
+++ b/epan/dissectors/packet-dcerpc-atsvc.c
@@ -22,82 +22,82 @@ void proto_register_dcerpc_atsvc(void);
void proto_reg_handoff_dcerpc_atsvc(void);
/* Ett declarations */
-static gint ett_dcerpc_atsvc = -1;
-static gint ett_atsvc_atsvc_DaysOfMonth = -1;
-static gint ett_atsvc_atsvc_Flags = -1;
-static gint ett_atsvc_atsvc_DaysOfWeek = -1;
-static gint ett_atsvc_atsvc_JobInfo = -1;
-static gint ett_atsvc_atsvc_JobEnumInfo = -1;
-static gint ett_atsvc_atsvc_enum_ctr = -1;
+static gint ett_dcerpc_atsvc;
+static gint ett_atsvc_atsvc_DaysOfMonth;
+static gint ett_atsvc_atsvc_Flags;
+static gint ett_atsvc_atsvc_DaysOfWeek;
+static gint ett_atsvc_atsvc_JobInfo;
+static gint ett_atsvc_atsvc_JobEnumInfo;
+static gint ett_atsvc_atsvc_enum_ctr;
/* Header field declarations */
-static gint hf_atsvc_atsvc_DaysOfMonth_Eight = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Eighteenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Eleventh = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fifteenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fifth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_First = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fourteenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fourth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Ninteenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Ninth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Second = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Seventeenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Seventh = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Sixteenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Sixth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Tenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Third = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Thirtieth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Thitteenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twelfth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyeighth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfifth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfirst = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfourth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyninth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentysecond = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyseventh = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentysixth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentythird = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY = -1;
-static gint hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE = -1;
-static gint hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR = -1;
-static gint hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE = -1;
-static gint hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY = -1;
-static gint hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY = -1;
-static gint hf_atsvc_atsvc_JobDel_max_job_id = -1;
-static gint hf_atsvc_atsvc_JobDel_min_job_id = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_command = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_days_of_month = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_days_of_week = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_flags = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_job_time = -1;
-static gint hf_atsvc_atsvc_JobEnum_ctr = -1;
-static gint hf_atsvc_atsvc_JobEnum_preferred_max_len = -1;
-static gint hf_atsvc_atsvc_JobEnum_resume_handle = -1;
-static gint hf_atsvc_atsvc_JobEnum_total_entries = -1;
-static gint hf_atsvc_atsvc_JobInfo_command = -1;
-static gint hf_atsvc_atsvc_JobInfo_days_of_month = -1;
-static gint hf_atsvc_atsvc_JobInfo_days_of_week = -1;
-static gint hf_atsvc_atsvc_JobInfo_flags = -1;
-static gint hf_atsvc_atsvc_JobInfo_job_time = -1;
-static gint hf_atsvc_atsvc_enum_ctr_entries_read = -1;
-static gint hf_atsvc_atsvc_enum_ctr_first_entry = -1;
-static gint hf_atsvc_job_id = -1;
-static gint hf_atsvc_job_info = -1;
-static gint hf_atsvc_opnum = -1;
-static gint hf_atsvc_servername = -1;
-static gint hf_atsvc_status = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eight;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eighteenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eleventh;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fifteenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fifth;
+static gint hf_atsvc_atsvc_DaysOfMonth_First;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fourteenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fourth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Ninteenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Ninth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Second;
+static gint hf_atsvc_atsvc_DaysOfMonth_Seventeenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Seventh;
+static gint hf_atsvc_atsvc_DaysOfMonth_Sixteenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Sixth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Tenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Third;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thirtieth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thitteenth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twelfth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyeighth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfifth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfirst;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfourth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyninth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentysecond;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyseventh;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentysixth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyth;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentythird;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY;
+static gint hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE;
+static gint hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR;
+static gint hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE;
+static gint hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY;
+static gint hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY;
+static gint hf_atsvc_atsvc_JobDel_max_job_id;
+static gint hf_atsvc_atsvc_JobDel_min_job_id;
+static gint hf_atsvc_atsvc_JobEnumInfo_command;
+static gint hf_atsvc_atsvc_JobEnumInfo_days_of_month;
+static gint hf_atsvc_atsvc_JobEnumInfo_days_of_week;
+static gint hf_atsvc_atsvc_JobEnumInfo_flags;
+static gint hf_atsvc_atsvc_JobEnumInfo_job_time;
+static gint hf_atsvc_atsvc_JobEnum_ctr;
+static gint hf_atsvc_atsvc_JobEnum_preferred_max_len;
+static gint hf_atsvc_atsvc_JobEnum_resume_handle;
+static gint hf_atsvc_atsvc_JobEnum_total_entries;
+static gint hf_atsvc_atsvc_JobInfo_command;
+static gint hf_atsvc_atsvc_JobInfo_days_of_month;
+static gint hf_atsvc_atsvc_JobInfo_days_of_week;
+static gint hf_atsvc_atsvc_JobInfo_flags;
+static gint hf_atsvc_atsvc_JobInfo_job_time;
+static gint hf_atsvc_atsvc_enum_ctr_entries_read;
+static gint hf_atsvc_atsvc_enum_ctr_first_entry;
+static gint hf_atsvc_job_id;
+static gint hf_atsvc_job_info;
+static gint hf_atsvc_opnum;
+static gint hf_atsvc_servername;
+static gint hf_atsvc_status;
static gint proto_dcerpc_atsvc = -1;
/* Version information */
@@ -1132,7 +1132,7 @@ atsvc_dissect_JobGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info
}
-static dcerpc_sub_dissector atsvc_dissectors[] = {
+static const dcerpc_sub_dissector atsvc_dissectors[] = {
{ 0, "JobAdd",
atsvc_dissect_JobAdd_request, atsvc_dissect_JobAdd_response},
{ 1, "JobDel",
diff --git a/epan/dissectors/packet-dcerpc-bossvr.c b/epan/dissectors/packet-dcerpc-bossvr.c
index 5f447bd116..d115f5168a 100644
--- a/epan/dissectors/packet-dcerpc-bossvr.c
+++ b/epan/dissectors/packet-dcerpc-bossvr.c
@@ -30,10 +30,10 @@ static gint ett_bossvr;
static e_guid_t uuid_bossvr = { 0x4d37f2dd, 0xed43, 0x0000, { 0x02, 0xc0, 0x37, 0xcf, 0x1e, 0x00, 0x00, 0x01 } };
-static guint16 ver_bossvr = 0;
+static guint16 ver_bossvr;
-static dcerpc_sub_dissector bossvr_dissectors[] = {
+static const dcerpc_sub_dissector bossvr_dissectors[] = {
{ 0, "GetServerStatus", NULL, NULL},
{ 1, "CreateBnode", NULL, NULL},
{ 2, "DeleteBnode", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-browser.c b/epan/dissectors/packet-dcerpc-browser.c
index cdd1183bb1..821b128bf6 100644
--- a/epan/dissectors/packet-dcerpc-browser.c
+++ b/epan/dissectors/packet-dcerpc-browser.c
@@ -63,7 +63,7 @@ static e_guid_t uuid_dcerpc_browser = {
{ 0x98, 0x33, 0x01, 0x28, 0x92, 0x02, 0x01, 0x62 }
};
-static guint16 ver_dcerpc_browser = 0;
+static guint16 ver_dcerpc_browser;
/*
@@ -1054,7 +1054,7 @@ dissect_browser_browserr_server_enum_ex_reply(tvbuff_t *tvb, int offset,
/*
IDL }
*/
-static dcerpc_sub_dissector dcerpc_browser_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_browser_dissectors[] = {
{ BROWSER_BROWSERR_SERVER_ENUM, "BrowserrServerEnum",
dissect_browser_browserr_server_enum_rqst,
dissect_browser_browserr_server_enum_reply },
diff --git a/epan/dissectors/packet-dcerpc-budb.c b/epan/dissectors/packet-dcerpc-budb.c
index c7a1d5596a..dc3e85804f 100644
--- a/epan/dissectors/packet-dcerpc-budb.c
+++ b/epan/dissectors/packet-dcerpc-budb.c
@@ -4841,7 +4841,7 @@ proto_register_budb(void)
proto_register_subtree_array(ett, array_length(ett));
}
-static dcerpc_sub_dissector function_dissectors[] = {
+static const dcerpc_sub_dissector function_dissectors[] = {
/* INCLUDED FILE : ETH_FT */
diff --git a/epan/dissectors/packet-dcerpc-butc.c b/epan/dissectors/packet-dcerpc-butc.c
index 74e15b3add..19f57ebd4a 100644
--- a/epan/dissectors/packet-dcerpc-butc.c
+++ b/epan/dissectors/packet-dcerpc-butc.c
@@ -2889,7 +2889,7 @@ proto_register_butc(void)
proto_register_subtree_array(ett, array_length(ett));
}
-static dcerpc_sub_dissector function_dissectors[] = {
+static const dcerpc_sub_dissector function_dissectors[] = {
/* INCLUDED FILE : ETH_FT */
diff --git a/epan/dissectors/packet-dcerpc-cds_clerkserver.c b/epan/dissectors/packet-dcerpc-cds_clerkserver.c
index bb1d860011..e607bda26b 100644
--- a/epan/dissectors/packet-dcerpc-cds_clerkserver.c
+++ b/epan/dissectors/packet-dcerpc-cds_clerkserver.c
@@ -34,7 +34,7 @@ static guint16 ver_cds_clerkserver = 1;
-static dcerpc_sub_dissector cds_clerkserver_dissectors[] = {
+static const dcerpc_sub_dissector cds_clerkserver_dissectors[] = {
{ 0, "AddReplica", NULL, NULL},
{ 1, "AllowClearinghouses", NULL, NULL},
{ 2, "Combine", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-cds_solicit.c b/epan/dissectors/packet-dcerpc-cds_solicit.c
index 8a2f5ef4b4..162f40cccf 100644
--- a/epan/dissectors/packet-dcerpc-cds_solicit.c
+++ b/epan/dissectors/packet-dcerpc-cds_solicit.c
@@ -31,7 +31,7 @@ static e_guid_t uuid_cds_solicit = { 0xd5579459, 0x8bca, 0x11ca, { 0xb7, 0x71, 0
static guint16 ver_cds_solicit = 1;
-static dcerpc_sub_dissector cds_solicit_dissectors[] = {
+static const dcerpc_sub_dissector cds_solicit_dissectors[] = {
{ 0, "cds_Solicit", NULL, NULL},
{ 1, "cds_Advertise", NULL, NULL},
{ 2, "cds_SolicitServer", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-clusapi.c b/epan/dissectors/packet-dcerpc-clusapi.c
index 1c98a7452d..1b868f1492 100644
--- a/epan/dissectors/packet-dcerpc-clusapi.c
+++ b/epan/dissectors/packet-dcerpc-clusapi.c
@@ -22,879 +22,879 @@ void proto_register_dcerpc_clusapi(void);
void proto_reg_handoff_dcerpc_clusapi(void);
/* Ett declarations */
-static gint ett_dcerpc_clusapi = -1;
-static gint ett_clusapi_RPC_SECURITY_DESCRIPTOR = -1;
-static gint ett_clusapi_RPC_SECURITY_ATTRIBUTES = -1;
-static gint ett_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO = -1;
-static gint ett_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS = -1;
-static gint ett_clusapi_CLUSTER_CREATE_GROUP_INFO_RPC = -1;
-static gint ett_clusapi_ClusterEnumType = -1;
-static gint ett_clusapi_ENUM_ENTRY = -1;
-static gint ett_clusapi_ENUM_LIST = -1;
-static gint ett_clusapi_GROUP_ENUM_ENTRY = -1;
-static gint ett_clusapi_RESOURCE_ENUM_ENTRY = -1;
-static gint ett_clusapi_GROUP_ENUM_LIST = -1;
-static gint ett_clusapi_RESOURCE_ENUM_LIST = -1;
-static gint ett_clusapi_ClusterGroupEnumType = -1;
-static gint ett_clusapi_CLUS_RESOURCE_CLASS_INFO = -1;
-static gint ett_clusapi_ClusterResTypeEnumType = -1;
-static gint ett_clusapi_clusapi_DesiredAccessMask = -1;
-static gint ett_clusapi_NOTIFY_FILTER_AND_TYPE_RPC = -1;
-static gint ett_clusapi_NOTIFICATION_DATA_RPC = -1;
-static gint ett_clusapi_NOTIFICATION_RPC = -1;
-static gint ett_clusapi_CLUSTER_DISKID = -1;
-static gint ett_clusapi_CLUSTER_MRR_NODE_RESPONSE = -1;
-static gint ett_clusapi_CLUSTER_MRR_RESPONSE = -1;
-static gint ett_clusapi_NOTIFICATION_DATA_ASYNC_RPC = -1;
+static gint ett_dcerpc_clusapi;
+static gint ett_clusapi_RPC_SECURITY_DESCRIPTOR;
+static gint ett_clusapi_RPC_SECURITY_ATTRIBUTES;
+static gint ett_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO;
+static gint ett_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS;
+static gint ett_clusapi_CLUSTER_CREATE_GROUP_INFO_RPC;
+static gint ett_clusapi_ClusterEnumType;
+static gint ett_clusapi_ENUM_ENTRY;
+static gint ett_clusapi_ENUM_LIST;
+static gint ett_clusapi_GROUP_ENUM_ENTRY;
+static gint ett_clusapi_RESOURCE_ENUM_ENTRY;
+static gint ett_clusapi_GROUP_ENUM_LIST;
+static gint ett_clusapi_RESOURCE_ENUM_LIST;
+static gint ett_clusapi_ClusterGroupEnumType;
+static gint ett_clusapi_CLUS_RESOURCE_CLASS_INFO;
+static gint ett_clusapi_ClusterResTypeEnumType;
+static gint ett_clusapi_clusapi_DesiredAccessMask;
+static gint ett_clusapi_NOTIFY_FILTER_AND_TYPE_RPC;
+static gint ett_clusapi_NOTIFICATION_DATA_RPC;
+static gint ett_clusapi_NOTIFICATION_RPC;
+static gint ett_clusapi_CLUSTER_DISKID;
+static gint ett_clusapi_CLUSTER_MRR_NODE_RESPONSE;
+static gint ett_clusapi_CLUSTER_MRR_RESPONSE;
+static gint ett_clusapi_NOTIFICATION_DATA_ASYNC_RPC;
/* Header field declarations */
-static gint hf_clusapi_CLUSTER_CREATE_GROUP_INFO_RPC_dwGroupType = -1;
-static gint hf_clusapi_CLUSTER_CREATE_GROUP_INFO_RPC_dwVersion = -1;
-static gint hf_clusapi_CLUSTER_DISKID_DiskIdBlob = -1;
-static gint hf_clusapi_CLUSTER_DISKID_DiskIdType = -1;
-static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_ResultCode = -1;
-static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_ResultSize = -1;
-static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_pResultData = -1;
-static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_pszNodeName = -1;
-static gint hf_clusapi_CLUSTER_MRR_RESPONSE_NodeCount = -1;
-static gint hf_clusapi_CLUSTER_MRR_RESPONSE_pNodes = -1;
-static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwClusterHighestVersion = -1;
-static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwClusterLowestVersion = -1;
-static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwFlags = -1;
-static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwReserved = -1;
-static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwSize = -1;
-static gint hf_clusapi_CLUS_RESOURCE_CLASS_INFO_Class = -1;
-static gint hf_clusapi_CLUS_RESOURCE_CLASS_INFO_SubClass = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_GROUP = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_INTERNAL_NETWORK = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_NETINTERFACE = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_NETWORK = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_NODE = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_RESOURCE = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_RESTYPE = -1;
-static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_SHARED_VOLUME_RESOURCE = -1;
-static gint hf_clusapi_ClusterGroupEnumType_CLUSTER_GROUP_ENUM_CONTAINS = -1;
-static gint hf_clusapi_ClusterGroupEnumType_CLUSTER_GROUP_ENUM_NODES = -1;
-static gint hf_clusapi_ClusterResTypeEnumType_CLUSTER_RESOURCE_TYPE_ENUM_NODES = -1;
-static gint hf_clusapi_ClusterResTypeEnumType_CLUSTER_RESOURCE_TYPE_ENUM_RESOURCES = -1;
-static gint hf_clusapi_ENUM_ENTRY_Name = -1;
-static gint hf_clusapi_ENUM_ENTRY_Type = -1;
-static gint hf_clusapi_ENUM_LIST_Entry = -1;
-static gint hf_clusapi_ENUM_LIST_EntryCount = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_Id = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_Name = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_Owner = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_Properties = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_RoProperties = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_cbProperties = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_cbRoProperties = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_dwFlags = -1;
-static gint hf_clusapi_GROUP_ENUM_ENTRY_dwState = -1;
-static gint hf_clusapi_GROUP_ENUM_LIST_Entry = -1;
-static gint hf_clusapi_GROUP_ENUM_LIST_EntryCount = -1;
-static gint hf_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS_NodeId = -1;
-static gint hf_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS_ReturnStatus = -1;
-static gint hf_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS_SetAttempted = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_ASYNC_RPC_Name = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_ASYNC_RPC_dwFilter = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_ASYNC_RPC_dwNotifyKey = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_RPC_FilterAndType = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_RPC_Name = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_RPC_ObjectId = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_RPC_ParentId = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_RPC_Type = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_RPC_buffer = -1;
-static gint hf_clusapi_NOTIFICATION_DATA_RPC_dwBufferSize = -1;
-static gint hf_clusapi_NOTIFICATION_RPC_NotificationData = -1;
-static gint hf_clusapi_NOTIFICATION_RPC_dwNotifyKey = -1;
-static gint hf_clusapi_NOTIFY_FILTER_AND_TYPE_RPC_FilterFlags = -1;
-static gint hf_clusapi_NOTIFY_FILTER_AND_TYPE_RPC_dwObjectType = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_Id = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_Name = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_OwnerId = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_OwnerName = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_Properties = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_RoProperties = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_cbProperties = -1;
-static gint hf_clusapi_RESOURCE_ENUM_ENTRY_cbRoProperties = -1;
-static gint hf_clusapi_RESOURCE_ENUM_LIST_Entry = -1;
-static gint hf_clusapi_RESOURCE_ENUM_LIST_EntryCount = -1;
-static gint hf_clusapi_RPC_SECURITY_ATTRIBUTES_RpcSecurityDescriptor = -1;
-static gint hf_clusapi_RPC_SECURITY_ATTRIBUTES_bInheritHandle = -1;
-static gint hf_clusapi_RPC_SECURITY_ATTRIBUTES_nLength = -1;
-static gint hf_clusapi_RPC_SECURITY_DESCRIPTOR_cbInSecurityDescriptor = -1;
-static gint hf_clusapi_RPC_SECURITY_DESCRIPTOR_cbOutSecurityDescriptor = -1;
-static gint hf_clusapi_RPC_SECURITY_DESCRIPTOR_lpSecurityDescriptor = -1;
-static gint hf_clusapi_clusapi_AddGroupSetDependency_DependentGroupSet = -1;
-static gint hf_clusapi_clusapi_AddGroupSetDependency_ProviderGroupSet = -1;
-static gint hf_clusapi_clusapi_AddGroupSetDependency_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetDependency_DependentGroup = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetDependency_ProviderGroupSet = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetDependency_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_FaultDomain = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_Group = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_GroupSet = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_Reserved = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_UpdateDomain = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_UseDomains = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSet_Group = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSet_GroupSet = -1;
-static gint hf_clusapi_clusapi_AddGroupToGroupSet_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyCluster_dwFilter = -1;
-static gint hf_clusapi_clusapi_AddNotifyCluster_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyCluster_hCluster = -1;
-static gint hf_clusapi_clusapi_AddNotifyCluster_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyCluster_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyGroup_dwFilter = -1;
-static gint hf_clusapi_clusapi_AddNotifyGroup_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyGroup_dwStateSequence = -1;
-static gint hf_clusapi_clusapi_AddNotifyGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_AddNotifyGroup_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyKey_Filter = -1;
-static gint hf_clusapi_clusapi_AddNotifyKey_WatchSubTree = -1;
-static gint hf_clusapi_clusapi_AddNotifyKey_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyKey_hKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyKey_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyKey_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetInterface_dwFilter = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetInterface_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetInterface_dwStateSequence = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetInterface_hNetInterface = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetInterface_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetInterface_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetwork_dwFilter = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetwork_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetwork_dwStateSequence = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetwork_hNetwork = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetwork_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyNetwork_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyNode_dwFilter = -1;
-static gint hf_clusapi_clusapi_AddNotifyNode_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyNode_dwStateSequence = -1;
-static gint hf_clusapi_clusapi_AddNotifyNode_hNode = -1;
-static gint hf_clusapi_clusapi_AddNotifyNode_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_dwVersion = -1;
-static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_filter = -1;
-static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_resTypeName = -1;
-static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyResource_dwFilter = -1;
-static gint hf_clusapi_clusapi_AddNotifyResource_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyResource_dwStateSequence = -1;
-static gint hf_clusapi_clusapi_AddNotifyResource_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyResource_hResource = -1;
-static gint hf_clusapi_clusapi_AddNotifyResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddNotifyV2_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_AddNotifyV2_dwVersion = -1;
-static gint hf_clusapi_clusapi_AddNotifyV2_filter = -1;
-static gint hf_clusapi_clusapi_AddNotifyV2_hNotify = -1;
-static gint hf_clusapi_clusapi_AddNotifyV2_hObject = -1;
-static gint hf_clusapi_clusapi_AddNotifyV2_isTargetedAtObject = -1;
-static gint hf_clusapi_clusapi_AddNotifyV2_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddResourceDependency_hDependsOn = -1;
-static gint hf_clusapi_clusapi_AddResourceDependency_hResource = -1;
-static gint hf_clusapi_clusapi_AddResourceDependency_rpc_status = -1;
-static gint hf_clusapi_clusapi_AddResourceNode_hNode = -1;
-static gint hf_clusapi_clusapi_AddResourceNode_hResource = -1;
-static gint hf_clusapi_clusapi_AddResourceNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_BackupClusterDatabase_lpszPathName = -1;
-static gint hf_clusapi_clusapi_BackupClusterDatabase_rpc_status = -1;
-static gint hf_clusapi_clusapi_CanResourceBeDependent_hResource = -1;
-static gint hf_clusapi_clusapi_CanResourceBeDependent_hResourceDependent = -1;
-static gint hf_clusapi_clusapi_CanResourceBeDependent_rpc_status = -1;
-static gint hf_clusapi_clusapi_CancelClusterGroupOperation_dwCancelFlags = -1;
-static gint hf_clusapi_clusapi_CancelClusterGroupOperation_hGroup = -1;
-static gint hf_clusapi_clusapi_CancelClusterGroupOperation_rpc_status = -1;
-static gint hf_clusapi_clusapi_ChangeCsvStateEx_dwState = -1;
-static gint hf_clusapi_clusapi_ChangeCsvStateEx_hResource = -1;
-static gint hf_clusapi_clusapi_ChangeCsvStateEx_lpszVolumeName = -1;
-static gint hf_clusapi_clusapi_ChangeCsvStateEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_ChangeCsvState_dwState = -1;
-static gint hf_clusapi_clusapi_ChangeCsvState_hResource = -1;
-static gint hf_clusapi_clusapi_ChangeCsvState_rpc_status = -1;
-static gint hf_clusapi_clusapi_ChangeResourceGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_ChangeResourceGroup_hResource = -1;
-static gint hf_clusapi_clusapi_ChangeResourceGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_CloseBatchPort_phBatchPort = -1;
-static gint hf_clusapi_clusapi_CloseCluster_Cluster = -1;
-static gint hf_clusapi_clusapi_CloseGroupSet_GroupSet = -1;
-static gint hf_clusapi_clusapi_CloseGroup_Group = -1;
-static gint hf_clusapi_clusapi_CloseKey_pKey = -1;
-static gint hf_clusapi_clusapi_CloseNetInterface_NetInterface = -1;
-static gint hf_clusapi_clusapi_CloseNetwork_Network = -1;
-static gint hf_clusapi_clusapi_CloseNode_Node = -1;
-static gint hf_clusapi_clusapi_CloseNotify_Notify = -1;
-static gint hf_clusapi_clusapi_CloseResource_Resource = -1;
-static gint hf_clusapi_clusapi_ClusterControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_ClusterControl_hCluster = -1;
-static gint hf_clusapi_clusapi_ClusterControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_ClusterControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_ClusterControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_ClusterControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_ClusterControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_ClusterControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_ClusterControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_dwComponent = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_dwControlCode = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_dwTimeout = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_fExcludeSelf = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_hCluster = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_inSize = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_nodeSet = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_pInData = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_ppInfo = -1;
-static gint hf_clusapi_clusapi_ClusterMrr_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateBatchPort_hKey = -1;
-static gint hf_clusapi_clusapi_CreateBatchPort_phBatchPort = -1;
-static gint hf_clusapi_clusapi_CreateBatchPort_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateEnumEx_ReturnIdEnum = -1;
-static gint hf_clusapi_clusapi_CreateEnumEx_ReturnNameEnum = -1;
-static gint hf_clusapi_clusapi_CreateEnumEx_dwOptions = -1;
-static gint hf_clusapi_clusapi_CreateEnumEx_dwType = -1;
-static gint hf_clusapi_clusapi_CreateEnumEx_hCluster = -1;
-static gint hf_clusapi_clusapi_CreateEnumEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateEnum_dwType = -1;
-static gint hf_clusapi_clusapi_CreateEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateGroupEnum_cbProperties = -1;
-static gint hf_clusapi_clusapi_CreateGroupEnum_cbRoProperties = -1;
-static gint hf_clusapi_clusapi_CreateGroupEnum_hCluster = -1;
-static gint hf_clusapi_clusapi_CreateGroupEnum_pProperties = -1;
-static gint hf_clusapi_clusapi_CreateGroupEnum_pRoProperties = -1;
-static gint hf_clusapi_clusapi_CreateGroupEnum_ppResultList = -1;
-static gint hf_clusapi_clusapi_CreateGroupEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateGroupEx_Status = -1;
-static gint hf_clusapi_clusapi_CreateGroupEx_hGroup = -1;
-static gint hf_clusapi_clusapi_CreateGroupEx_lpszGroupName = -1;
-static gint hf_clusapi_clusapi_CreateGroupEx_pGroupInfo = -1;
-static gint hf_clusapi_clusapi_CreateGroupEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateGroupResourceEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateGroupResourceEnum_dwType = -1;
-static gint hf_clusapi_clusapi_CreateGroupResourceEnum_hGroup = -1;
-static gint hf_clusapi_clusapi_CreateGroupResourceEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateGroupSetEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateGroupSetEnum_hCluster = -1;
-static gint hf_clusapi_clusapi_CreateGroupSetEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateGroupSet_Status = -1;
-static gint hf_clusapi_clusapi_CreateGroupSet_hGroupSet = -1;
-static gint hf_clusapi_clusapi_CreateGroupSet_lpszGroupSetName = -1;
-static gint hf_clusapi_clusapi_CreateGroupSet_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateGroup_Status = -1;
-static gint hf_clusapi_clusapi_CreateGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_CreateGroup_lpszGroupName = -1;
-static gint hf_clusapi_clusapi_CreateGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateKey_Status = -1;
-static gint hf_clusapi_clusapi_CreateKey_dwOptions = -1;
-static gint hf_clusapi_clusapi_CreateKey_hKey = -1;
-static gint hf_clusapi_clusapi_CreateKey_lpSecurityAttributes = -1;
-static gint hf_clusapi_clusapi_CreateKey_lpSubKey = -1;
-static gint hf_clusapi_clusapi_CreateKey_lpdwDisposition = -1;
-static gint hf_clusapi_clusapi_CreateKey_phKey = -1;
-static gint hf_clusapi_clusapi_CreateKey_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateKey_samDesired = -1;
-static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_hCluster = -1;
-static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_lpszNetworkName = -1;
-static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_lpszNodeName = -1;
-static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateNetworkEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateNetworkEnum_dwType = -1;
-static gint hf_clusapi_clusapi_CreateNetworkEnum_hNetwork = -1;
-static gint hf_clusapi_clusapi_CreateNetworkEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnumEx_ReturnIdEnum = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnumEx_ReturnNameEnum = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnumEx_dwOptions = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnumEx_dwType = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnumEx_hNode = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnumEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnum_dwType = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnum_hNode = -1;
-static gint hf_clusapi_clusapi_CreateNodeEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateNotifyV2_hNotify = -1;
-static gint hf_clusapi_clusapi_CreateNotifyV2_rpc_error = -1;
-static gint hf_clusapi_clusapi_CreateNotifyV2_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateNotify_Status = -1;
-static gint hf_clusapi_clusapi_CreateNotify_hNotify = -1;
-static gint hf_clusapi_clusapi_CreateNotify_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateResEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateResEnum_dwType = -1;
-static gint hf_clusapi_clusapi_CreateResEnum_hResource = -1;
-static gint hf_clusapi_clusapi_CreateResEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateResTypeEnum_ReturnEnum = -1;
-static gint hf_clusapi_clusapi_CreateResTypeEnum_dwType = -1;
-static gint hf_clusapi_clusapi_CreateResTypeEnum_lpszTypeName = -1;
-static gint hf_clusapi_clusapi_CreateResTypeEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateResourceEnum_cbProperties = -1;
-static gint hf_clusapi_clusapi_CreateResourceEnum_cbRoProperties = -1;
-static gint hf_clusapi_clusapi_CreateResourceEnum_hCluster = -1;
-static gint hf_clusapi_clusapi_CreateResourceEnum_pProperties = -1;
-static gint hf_clusapi_clusapi_CreateResourceEnum_pRoProperties = -1;
-static gint hf_clusapi_clusapi_CreateResourceEnum_ppResultList = -1;
-static gint hf_clusapi_clusapi_CreateResourceEnum_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateResourceType_dwIsAlive = -1;
-static gint hf_clusapi_clusapi_CreateResourceType_dwLooksAlive = -1;
-static gint hf_clusapi_clusapi_CreateResourceType_lpszDisplayName = -1;
-static gint hf_clusapi_clusapi_CreateResourceType_lpszDllName = -1;
-static gint hf_clusapi_clusapi_CreateResourceType_lpszTypeName = -1;
-static gint hf_clusapi_clusapi_CreateResourceType_rpc_status = -1;
-static gint hf_clusapi_clusapi_CreateResource_Status = -1;
-static gint hf_clusapi_clusapi_CreateResource_dwFlags = -1;
-static gint hf_clusapi_clusapi_CreateResource_hGroup = -1;
-static gint hf_clusapi_clusapi_CreateResource_hResource = -1;
-static gint hf_clusapi_clusapi_CreateResource_lpszResourceName = -1;
-static gint hf_clusapi_clusapi_CreateResource_lpszResourceType = -1;
-static gint hf_clusapi_clusapi_CreateResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_DeleteGroupSet_GroupSet = -1;
-static gint hf_clusapi_clusapi_DeleteGroupSet_rpc_status = -1;
-static gint hf_clusapi_clusapi_DeleteGroup_Group = -1;
-static gint hf_clusapi_clusapi_DeleteGroup_force = -1;
-static gint hf_clusapi_clusapi_DeleteGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_DeleteKey_hKey = -1;
-static gint hf_clusapi_clusapi_DeleteKey_lpSubKey = -1;
-static gint hf_clusapi_clusapi_DeleteKey_rpc_status = -1;
-static gint hf_clusapi_clusapi_DeleteResourceType_lpszTypeName = -1;
-static gint hf_clusapi_clusapi_DeleteResourceType_rpc_status = -1;
-static gint hf_clusapi_clusapi_DeleteResource_hResource = -1;
-static gint hf_clusapi_clusapi_DeleteResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_DeleteValue_hKey = -1;
-static gint hf_clusapi_clusapi_DeleteValue_lpValueName = -1;
-static gint hf_clusapi_clusapi_DeleteValue_rpc_status = -1;
-static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_CHANGE_ACCESS = -1;
-static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_ALL = -1;
-static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_EXECUTE = -1;
-static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_READ = -1;
-static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_WRITE = -1;
-static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_MAXIMUM_ALLOWED = -1;
-static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_READ_ACCESS = -1;
-static gint hf_clusapi_clusapi_EnumKey_KeyName = -1;
-static gint hf_clusapi_clusapi_EnumKey_dwIndex = -1;
-static gint hf_clusapi_clusapi_EnumKey_hKey = -1;
-static gint hf_clusapi_clusapi_EnumKey_lpftLastWriteTime = -1;
-static gint hf_clusapi_clusapi_EnumKey_rpc_status = -1;
-static gint hf_clusapi_clusapi_EnumValue_TotalSize = -1;
-static gint hf_clusapi_clusapi_EnumValue_dwIndex = -1;
-static gint hf_clusapi_clusapi_EnumValue_hKey = -1;
-static gint hf_clusapi_clusapi_EnumValue_lpData = -1;
-static gint hf_clusapi_clusapi_EnumValue_lpType = -1;
-static gint hf_clusapi_clusapi_EnumValue_lpValueName = -1;
-static gint hf_clusapi_clusapi_EnumValue_lpcbData = -1;
-static gint hf_clusapi_clusapi_EnumValue_rpc_status = -1;
-static gint hf_clusapi_clusapi_EvictNode_hNode = -1;
-static gint hf_clusapi_clusapi_EvictNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_ExecuteBatch_cbData = -1;
-static gint hf_clusapi_clusapi_ExecuteBatch_hKey = -1;
-static gint hf_clusapi_clusapi_ExecuteBatch_lpData = -1;
-static gint hf_clusapi_clusapi_ExecuteBatch_pdwFailedCommand = -1;
-static gint hf_clusapi_clusapi_ExecuteBatch_rpc_status = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatchEx_cbInData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatchEx_cbOutData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatchEx_flags = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatchEx_hKey = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatchEx_lpInData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatchEx_lpOutData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatchEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatch_cbInData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatch_cbOutData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatch_hKey = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatch_lpInData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatch_lpOutData = -1;
-static gint hf_clusapi_clusapi_ExecuteReadBatch_rpc_status = -1;
-static gint hf_clusapi_clusapi_FailResource_hResource = -1;
-static gint hf_clusapi_clusapi_FailResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetBatchNotification_cbData = -1;
-static gint hf_clusapi_clusapi_GetBatchNotification_hBatchNotify = -1;
-static gint hf_clusapi_clusapi_GetBatchNotification_lpData = -1;
-static gint hf_clusapi_clusapi_GetClusterName_ClusterName = -1;
-static gint hf_clusapi_clusapi_GetClusterName_NodeName = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion2_lpszCSDVersion = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion2_lpszVendorId = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion2_lpwBuildNumber = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion2_lpwMajorVersion = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion2_lpwMinorVersion = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion2_ppClusterOpVerInfo = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion2_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion_lpszCSDVersion = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion_lpszVendorId = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion_lpwBuildNumber = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion_lpwMajorVersion = -1;
-static gint hf_clusapi_clusapi_GetClusterVersion_lpwMinorVersion = -1;
-static gint hf_clusapi_clusapi_GetGroupId_hGroup = -1;
-static gint hf_clusapi_clusapi_GetGroupId_pGuid = -1;
-static gint hf_clusapi_clusapi_GetGroupId_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetGroupState_NodeName = -1;
-static gint hf_clusapi_clusapi_GetGroupState_State = -1;
-static gint hf_clusapi_clusapi_GetGroupState_hGroup = -1;
-static gint hf_clusapi_clusapi_GetGroupState_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetKeySecurity_SecurityInformation = -1;
-static gint hf_clusapi_clusapi_GetKeySecurity_hKey = -1;
-static gint hf_clusapi_clusapi_GetKeySecurity_pRpcSecurityDescriptor = -1;
-static gint hf_clusapi_clusapi_GetKeySecurity_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNetInterfaceId_hNetInterface = -1;
-static gint hf_clusapi_clusapi_GetNetInterfaceId_pGuid = -1;
-static gint hf_clusapi_clusapi_GetNetInterfaceId_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNetInterfaceState_State = -1;
-static gint hf_clusapi_clusapi_GetNetInterfaceState_hNetInterface = -1;
-static gint hf_clusapi_clusapi_GetNetInterfaceState_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNetInterface_lppszInterfaceName = -1;
-static gint hf_clusapi_clusapi_GetNetInterface_lpszNetworkName = -1;
-static gint hf_clusapi_clusapi_GetNetInterface_lpszNodeName = -1;
-static gint hf_clusapi_clusapi_GetNetInterface_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNetworkId_hNetwork = -1;
-static gint hf_clusapi_clusapi_GetNetworkId_pGuid = -1;
-static gint hf_clusapi_clusapi_GetNetworkId_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNetworkState_State = -1;
-static gint hf_clusapi_clusapi_GetNetworkState_hNetwork = -1;
-static gint hf_clusapi_clusapi_GetNetworkState_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNodeId_hNode = -1;
-static gint hf_clusapi_clusapi_GetNodeId_pGuid = -1;
-static gint hf_clusapi_clusapi_GetNodeId_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNodeState_State = -1;
-static gint hf_clusapi_clusapi_GetNodeState_hNode = -1;
-static gint hf_clusapi_clusapi_GetNodeState_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetNotifyAsync_Notifications = -1;
-static gint hf_clusapi_clusapi_GetNotifyAsync_dwNumNotifications = -1;
-static gint hf_clusapi_clusapi_GetNotifyAsync_hNotify = -1;
-static gint hf_clusapi_clusapi_GetNotifyV2_Notifications = -1;
-static gint hf_clusapi_clusapi_GetNotifyV2_dwNumNotifications = -1;
-static gint hf_clusapi_clusapi_GetNotifyV2_hNotify = -1;
-static gint hf_clusapi_clusapi_GetNotify_Name = -1;
-static gint hf_clusapi_clusapi_GetNotify_dwFilter = -1;
-static gint hf_clusapi_clusapi_GetNotify_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_GetNotify_dwStateSequence = -1;
-static gint hf_clusapi_clusapi_GetNotify_hNotify = -1;
-static gint hf_clusapi_clusapi_GetNotify_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetQuorumResource_lpszDeviceName = -1;
-static gint hf_clusapi_clusapi_GetQuorumResource_lpszResourceName = -1;
-static gint hf_clusapi_clusapi_GetQuorumResource_pdwMaxQuorumLogSize = -1;
-static gint hf_clusapi_clusapi_GetQuorumResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetResourceDependencyExpression_hResource = -1;
-static gint hf_clusapi_clusapi_GetResourceDependencyExpression_lpszDependencyExpression = -1;
-static gint hf_clusapi_clusapi_GetResourceDependencyExpression_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetResourceId_hResource = -1;
-static gint hf_clusapi_clusapi_GetResourceId_pGuid = -1;
-static gint hf_clusapi_clusapi_GetResourceId_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetResourceNetworkName_hResource = -1;
-static gint hf_clusapi_clusapi_GetResourceNetworkName_lpszName = -1;
-static gint hf_clusapi_clusapi_GetResourceNetworkName_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetResourceState_GroupName = -1;
-static gint hf_clusapi_clusapi_GetResourceState_NodeName = -1;
-static gint hf_clusapi_clusapi_GetResourceState_State = -1;
-static gint hf_clusapi_clusapi_GetResourceState_hResource = -1;
-static gint hf_clusapi_clusapi_GetResourceState_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetResourceType_hResource = -1;
-static gint hf_clusapi_clusapi_GetResourceType_lpszResourceType = -1;
-static gint hf_clusapi_clusapi_GetResourceType_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetRootKey_Status = -1;
-static gint hf_clusapi_clusapi_GetRootKey_phKey = -1;
-static gint hf_clusapi_clusapi_GetRootKey_rpc_status = -1;
-static gint hf_clusapi_clusapi_GetRootKey_samDesired = -1;
-static gint hf_clusapi_clusapi_GroupControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_GroupControl_hGroup = -1;
-static gint hf_clusapi_clusapi_GroupControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_GroupControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_GroupControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_GroupControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_GroupControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_GroupControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_GroupControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_hGroupSet = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_GroupSetControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_MoveGroupEx_cbInBufferSize = -1;
-static gint hf_clusapi_clusapi_MoveGroupEx_dwMoveFlags = -1;
-static gint hf_clusapi_clusapi_MoveGroupEx_hGroup = -1;
-static gint hf_clusapi_clusapi_MoveGroupEx_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_MoveGroupEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_MoveGroupToGroupSet_Group = -1;
-static gint hf_clusapi_clusapi_MoveGroupToGroupSet_GroupSet = -1;
-static gint hf_clusapi_clusapi_MoveGroupToGroupSet_rpc_status = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNodeEx_cbInBufferSize = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNodeEx_dwMoveFlags = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNodeEx_hGroup = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNodeEx_hNode = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNodeEx_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNodeEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNode_hGroup = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNode_hNode = -1;
-static gint hf_clusapi_clusapi_MoveGroupToNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_MoveGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_MoveGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_hNetInterface = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NetInterfaceControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NetworkControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NetworkControl_hNetwork = -1;
-static gint hf_clusapi_clusapi_NetworkControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NetworkControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NetworkControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NetworkControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NetworkControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NetworkControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NetworkControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_hCluster = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_hHostNode = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeClusterControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_hGroup = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeGroupControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_hGroupSet = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeGroupSetControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_hNetInterface = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeNetInterfaceControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_hNetwork = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeNetworkControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_hHostNode = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeNodeControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_hResource = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeResourceControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_hCluster = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_hNode = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpszResourceTypeName = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_NodeResourceTypeControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_OfflineGroupEx_cbInBufferSize = -1;
-static gint hf_clusapi_clusapi_OfflineGroupEx_dwOfflineFlags = -1;
-static gint hf_clusapi_clusapi_OfflineGroupEx_hGroup = -1;
-static gint hf_clusapi_clusapi_OfflineGroupEx_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_OfflineGroupEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OfflineGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_OfflineGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_OfflineResourceEx_cbInBufferSize = -1;
-static gint hf_clusapi_clusapi_OfflineResourceEx_dwOfflineFlags = -1;
-static gint hf_clusapi_clusapi_OfflineResourceEx_hResource = -1;
-static gint hf_clusapi_clusapi_OfflineResourceEx_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_OfflineResourceEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OfflineResource_hResource = -1;
-static gint hf_clusapi_clusapi_OfflineResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_OnlineGroupEx_cbInBufferSize = -1;
-static gint hf_clusapi_clusapi_OnlineGroupEx_dwOnlineFlags = -1;
-static gint hf_clusapi_clusapi_OnlineGroupEx_hGroup = -1;
-static gint hf_clusapi_clusapi_OnlineGroupEx_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_OnlineGroupEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OnlineGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_OnlineGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_OnlineResourceEx_cbInBufferSize = -1;
-static gint hf_clusapi_clusapi_OnlineResourceEx_dwOnlineFlags = -1;
-static gint hf_clusapi_clusapi_OnlineResourceEx_hResource = -1;
-static gint hf_clusapi_clusapi_OnlineResourceEx_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_OnlineResourceEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OnlineResource_hResource = -1;
-static gint hf_clusapi_clusapi_OnlineResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenClusterEx_Status = -1;
-static gint hf_clusapi_clusapi_OpenClusterEx_dwDesiredAccess = -1;
-static gint hf_clusapi_clusapi_OpenClusterEx_hCluster = -1;
-static gint hf_clusapi_clusapi_OpenClusterEx_lpdwGrantedAccess = -1;
-static gint hf_clusapi_clusapi_OpenCluster_Cluster = -1;
-static gint hf_clusapi_clusapi_OpenCluster_Status = -1;
-static gint hf_clusapi_clusapi_OpenGroupEx_Status = -1;
-static gint hf_clusapi_clusapi_OpenGroupEx_dwDesiredAccess = -1;
-static gint hf_clusapi_clusapi_OpenGroupEx_hGroup = -1;
-static gint hf_clusapi_clusapi_OpenGroupEx_lpdwGrantedAccess = -1;
-static gint hf_clusapi_clusapi_OpenGroupEx_lpszGroupName = -1;
-static gint hf_clusapi_clusapi_OpenGroupEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenGroupSet_Status = -1;
-static gint hf_clusapi_clusapi_OpenGroupSet_hGroupSet = -1;
-static gint hf_clusapi_clusapi_OpenGroupSet_lpszGroupSetName = -1;
-static gint hf_clusapi_clusapi_OpenGroupSet_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenGroup_Status = -1;
-static gint hf_clusapi_clusapi_OpenGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_OpenGroup_lpszGroupName = -1;
-static gint hf_clusapi_clusapi_OpenGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenKey_Status = -1;
-static gint hf_clusapi_clusapi_OpenKey_hKey = -1;
-static gint hf_clusapi_clusapi_OpenKey_lpSubKey = -1;
-static gint hf_clusapi_clusapi_OpenKey_phKey = -1;
-static gint hf_clusapi_clusapi_OpenKey_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenKey_samDesired = -1;
-static gint hf_clusapi_clusapi_OpenNetInterfaceEx_Status = -1;
-static gint hf_clusapi_clusapi_OpenNetInterfaceEx_dwDesiredAccess = -1;
-static gint hf_clusapi_clusapi_OpenNetInterfaceEx_hNetInterface = -1;
-static gint hf_clusapi_clusapi_OpenNetInterfaceEx_lpdwGrantedAccess = -1;
-static gint hf_clusapi_clusapi_OpenNetInterfaceEx_lpszNetInterfaceName = -1;
-static gint hf_clusapi_clusapi_OpenNetInterfaceEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenNetInterface_Status = -1;
-static gint hf_clusapi_clusapi_OpenNetInterface_hNetInterface = -1;
-static gint hf_clusapi_clusapi_OpenNetInterface_lpszNetInterfaceName = -1;
-static gint hf_clusapi_clusapi_OpenNetInterface_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenNetworkEx_Status = -1;
-static gint hf_clusapi_clusapi_OpenNetworkEx_dwDesiredAccess = -1;
-static gint hf_clusapi_clusapi_OpenNetworkEx_hNetwork = -1;
-static gint hf_clusapi_clusapi_OpenNetworkEx_lpdwGrantedAccess = -1;
-static gint hf_clusapi_clusapi_OpenNetworkEx_lpszNetworkName = -1;
-static gint hf_clusapi_clusapi_OpenNetworkEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenNetwork_Status = -1;
-static gint hf_clusapi_clusapi_OpenNetwork_hNetwork = -1;
-static gint hf_clusapi_clusapi_OpenNetwork_lpszNetworkName = -1;
-static gint hf_clusapi_clusapi_OpenNetwork_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenNodeEx_Status = -1;
-static gint hf_clusapi_clusapi_OpenNodeEx_dwDesiredAccess = -1;
-static gint hf_clusapi_clusapi_OpenNodeEx_hNode = -1;
-static gint hf_clusapi_clusapi_OpenNodeEx_lpdwGrantedAccess = -1;
-static gint hf_clusapi_clusapi_OpenNodeEx_lpszNodeName = -1;
-static gint hf_clusapi_clusapi_OpenNodeEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenNode_Status = -1;
-static gint hf_clusapi_clusapi_OpenNode_hNode = -1;
-static gint hf_clusapi_clusapi_OpenNode_lpszNodeName = -1;
-static gint hf_clusapi_clusapi_OpenNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenResourceEx_Status = -1;
-static gint hf_clusapi_clusapi_OpenResourceEx_dwDesiredAccess = -1;
-static gint hf_clusapi_clusapi_OpenResourceEx_hResource = -1;
-static gint hf_clusapi_clusapi_OpenResourceEx_lpdwGrantedAccess = -1;
-static gint hf_clusapi_clusapi_OpenResourceEx_lpszResourceName = -1;
-static gint hf_clusapi_clusapi_OpenResourceEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_OpenResource_Status = -1;
-static gint hf_clusapi_clusapi_OpenResource_hResource = -1;
-static gint hf_clusapi_clusapi_OpenResource_lpszResourceName = -1;
-static gint hf_clusapi_clusapi_OpenResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_PauseNodeEx_bDrainNode = -1;
-static gint hf_clusapi_clusapi_PauseNodeEx_dwPauseFlags = -1;
-static gint hf_clusapi_clusapi_PauseNodeEx_hNode = -1;
-static gint hf_clusapi_clusapi_PauseNodeEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_dwPauseFlags = -1;
-static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_hNode = -1;
-static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_hNodeDrainTarget = -1;
-static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_rpc_status = -1;
-static gint hf_clusapi_clusapi_PauseNode_hNode = -1;
-static gint hf_clusapi_clusapi_PauseNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_QueryAllValues_hKey = -1;
-static gint hf_clusapi_clusapi_QueryAllValues_pcbData = -1;
-static gint hf_clusapi_clusapi_QueryAllValues_ppData = -1;
-static gint hf_clusapi_clusapi_QueryAllValues_rpc_status = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_hKey = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_lpcSubKeys = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_lpcValues = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_lpcbMaxSubKeyLen = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_lpcbMaxValueLen = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_lpcbMaxValueNameLen = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_lpcbSecurityDescriptor = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_lpftLastWriteTime = -1;
-static gint hf_clusapi_clusapi_QueryInfoKey_rpc_status = -1;
-static gint hf_clusapi_clusapi_QueryValue_cbData = -1;
-static gint hf_clusapi_clusapi_QueryValue_hKey = -1;
-static gint hf_clusapi_clusapi_QueryValue_lpData = -1;
-static gint hf_clusapi_clusapi_QueryValue_lpValueName = -1;
-static gint hf_clusapi_clusapi_QueryValue_lpValueType = -1;
-static gint hf_clusapi_clusapi_QueryValue_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_QueryValue_rpc_status = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyGroup_StateSequence = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyGroup_dwFilter = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyGroup_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyGroup_hGroup = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyGroup_hNotify = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyGroup_rpc_status = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_StateSequence = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_dwFilter = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_hNetInterface = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_hNotify = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_rpc_status = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetwork_StateSequence = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetwork_dwFilter = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetwork_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetwork_hNetwork = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetwork_hNotify = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNetwork_rpc_status = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNode_StateSequence = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNode_dwFilter = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNode_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNode_hNode = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNode_hNotify = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyResource_StateSequence = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyResource_dwFilter = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyResource_dwNotifyKey = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyResource_hNotify = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyResource_hResource = -1;
-static gint hf_clusapi_clusapi_ReAddNotifyResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_RemoveClusterGroupDependency_hDependsOn = -1;
-static gint hf_clusapi_clusapi_RemoveClusterGroupDependency_hGroup = -1;
-static gint hf_clusapi_clusapi_RemoveClusterGroupDependency_rpc_status = -1;
-static gint hf_clusapi_clusapi_RemoveClusterGroupToGroupSetDependency_hDependsOn = -1;
-static gint hf_clusapi_clusapi_RemoveClusterGroupToGroupSetDependency_hGroup = -1;
-static gint hf_clusapi_clusapi_RemoveClusterGroupToGroupSetDependency_rpc_status = -1;
-static gint hf_clusapi_clusapi_RemoveGroupFromGroupSet_Group = -1;
-static gint hf_clusapi_clusapi_RemoveGroupFromGroupSet_rpc_status = -1;
-static gint hf_clusapi_clusapi_RemoveGroupSetDependency_hDependsOn = -1;
-static gint hf_clusapi_clusapi_RemoveGroupSetDependency_hGroupSet = -1;
-static gint hf_clusapi_clusapi_RemoveGroupSetDependency_rpc_status = -1;
-static gint hf_clusapi_clusapi_RemoveResourceDependency_hDependsOn = -1;
-static gint hf_clusapi_clusapi_RemoveResourceDependency_hResource = -1;
-static gint hf_clusapi_clusapi_RemoveResourceDependency_rpc_status = -1;
-static gint hf_clusapi_clusapi_RemoveResourceNode_hNode = -1;
-static gint hf_clusapi_clusapi_RemoveResourceNode_hResource = -1;
-static gint hf_clusapi_clusapi_RemoveResourceNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_ResourceControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_ResourceControl_hResource = -1;
-static gint hf_clusapi_clusapi_ResourceControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_ResourceControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_ResourceControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_ResourceControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_ResourceControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_ResourceControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_ResourceControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_dwControlCode = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_hCluster = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_lpBytesReturned = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_lpInBuffer = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_lpOutBuffer = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_lpcbRequired = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_lpszResourceTypeName = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_nInBufferSize = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_nOutBufferSize = -1;
-static gint hf_clusapi_clusapi_ResourceTypeControl_rpc_status = -1;
-static gint hf_clusapi_clusapi_RestartResource_dwFlags = -1;
-static gint hf_clusapi_clusapi_RestartResource_hResource = -1;
-static gint hf_clusapi_clusapi_RestartResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_ResumeNodeEx_dwResumeFailbackType = -1;
-static gint hf_clusapi_clusapi_ResumeNodeEx_dwResumeFlagsReserved = -1;
-static gint hf_clusapi_clusapi_ResumeNodeEx_hNode = -1;
-static gint hf_clusapi_clusapi_ResumeNodeEx_rpc_status = -1;
-static gint hf_clusapi_clusapi_ResumeNode_hNode = -1;
-static gint hf_clusapi_clusapi_ResumeNode_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetClusterName_NewClusterName = -1;
-static gint hf_clusapi_clusapi_SetClusterName_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetGroupDependencyExpression_hGroup = -1;
-static gint hf_clusapi_clusapi_SetGroupDependencyExpression_lpszDependencyExpression = -1;
-static gint hf_clusapi_clusapi_SetGroupDependencyExpression_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetGroupName_hGroup = -1;
-static gint hf_clusapi_clusapi_SetGroupName_lpszGroupName = -1;
-static gint hf_clusapi_clusapi_SetGroupName_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetGroupNodeList_cchListSize = -1;
-static gint hf_clusapi_clusapi_SetGroupNodeList_hGroup = -1;
-static gint hf_clusapi_clusapi_SetGroupNodeList_multiSzNodeList = -1;
-static gint hf_clusapi_clusapi_SetGroupNodeList_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetGroupSetDependencyExpression_hGroupSet = -1;
-static gint hf_clusapi_clusapi_SetGroupSetDependencyExpression_lpszDependencyExpression = -1;
-static gint hf_clusapi_clusapi_SetGroupSetDependencyExpression_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetKeySecurity_SecurityInformation = -1;
-static gint hf_clusapi_clusapi_SetKeySecurity_hKey = -1;
-static gint hf_clusapi_clusapi_SetKeySecurity_pRpcSecurityDescriptor = -1;
-static gint hf_clusapi_clusapi_SetKeySecurity_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetNetworkName_hNetwork = -1;
-static gint hf_clusapi_clusapi_SetNetworkName_lpszNetworkName = -1;
-static gint hf_clusapi_clusapi_SetNetworkName_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetNetworkPriorityOrder_NetworkCount = -1;
-static gint hf_clusapi_clusapi_SetNetworkPriorityOrder_NetworkIdList = -1;
-static gint hf_clusapi_clusapi_SetNetworkPriorityOrder_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetQuorumResource_dwMaxQuorumLogSize = -1;
-static gint hf_clusapi_clusapi_SetQuorumResource_hResource = -1;
-static gint hf_clusapi_clusapi_SetQuorumResource_lpszDeviceName = -1;
-static gint hf_clusapi_clusapi_SetQuorumResource_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetResourceDependencyExpression_hResource = -1;
-static gint hf_clusapi_clusapi_SetResourceDependencyExpression_lpszDependencyExpression = -1;
-static gint hf_clusapi_clusapi_SetResourceDependencyExpression_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetResourceName_hResource = -1;
-static gint hf_clusapi_clusapi_SetResourceName_lpszResourceName = -1;
-static gint hf_clusapi_clusapi_SetResourceName_rpc_status = -1;
-static gint hf_clusapi_clusapi_SetServiceAccountPassword_ExpectedBufferSize = -1;
-static gint hf_clusapi_clusapi_SetServiceAccountPassword_ReturnStatusBufferPtr = -1;
-static gint hf_clusapi_clusapi_SetServiceAccountPassword_ReturnStatusBufferSize = -1;
-static gint hf_clusapi_clusapi_SetServiceAccountPassword_SizeReturned = -1;
-static gint hf_clusapi_clusapi_SetServiceAccountPassword_dwFlags = -1;
-static gint hf_clusapi_clusapi_SetServiceAccountPassword_lpszNewPassword = -1;
-static gint hf_clusapi_clusapi_SetValue_cbData = -1;
-static gint hf_clusapi_clusapi_SetValue_dwType = -1;
-static gint hf_clusapi_clusapi_SetValue_hKey = -1;
-static gint hf_clusapi_clusapi_SetValue_lpData = -1;
-static gint hf_clusapi_clusapi_SetValue_lpValueName = -1;
-static gint hf_clusapi_clusapi_SetValue_rpc_status = -1;
-static gint hf_clusapi_clusapi_StmFindDisk_dwFlags = -1;
-static gint hf_clusapi_clusapi_StmFindDisk_hCluster = -1;
-static gint hf_clusapi_clusapi_StmFindDisk_pDiskId = -1;
-static gint hf_clusapi_clusapi_StmFindDisk_pUniqueId = -1;
-static gint hf_clusapi_clusapi_StmFindDisk_ppszDeviceName = -1;
-static gint hf_clusapi_clusapi_StmFindDisk_rpc_status = -1;
-static gint hf_clusapi_clusapi_StmFindDisk_uniqueIdSize = -1;
-static gint hf_clusapi_clusapi_UnblockGetNotifyCall_hNotify = -1;
-static gint hf_clusapi_opnum = -1;
-static gint hf_clusapi_werror = -1;
+static gint hf_clusapi_CLUSTER_CREATE_GROUP_INFO_RPC_dwGroupType;
+static gint hf_clusapi_CLUSTER_CREATE_GROUP_INFO_RPC_dwVersion;
+static gint hf_clusapi_CLUSTER_DISKID_DiskIdBlob;
+static gint hf_clusapi_CLUSTER_DISKID_DiskIdType;
+static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_ResultCode;
+static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_ResultSize;
+static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_pResultData;
+static gint hf_clusapi_CLUSTER_MRR_NODE_RESPONSE_pszNodeName;
+static gint hf_clusapi_CLUSTER_MRR_RESPONSE_NodeCount;
+static gint hf_clusapi_CLUSTER_MRR_RESPONSE_pNodes;
+static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwClusterHighestVersion;
+static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwClusterLowestVersion;
+static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwFlags;
+static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwReserved;
+static gint hf_clusapi_CLUSTER_OPERATIONAL_VERSION_INFO_dwSize;
+static gint hf_clusapi_CLUS_RESOURCE_CLASS_INFO_Class;
+static gint hf_clusapi_CLUS_RESOURCE_CLASS_INFO_SubClass;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_GROUP;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_INTERNAL_NETWORK;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_NETINTERFACE;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_NETWORK;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_NODE;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_RESOURCE;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_RESTYPE;
+static gint hf_clusapi_ClusterEnumType_CLUSTER_ENUM_SHARED_VOLUME_RESOURCE;
+static gint hf_clusapi_ClusterGroupEnumType_CLUSTER_GROUP_ENUM_CONTAINS;
+static gint hf_clusapi_ClusterGroupEnumType_CLUSTER_GROUP_ENUM_NODES;
+static gint hf_clusapi_ClusterResTypeEnumType_CLUSTER_RESOURCE_TYPE_ENUM_NODES;
+static gint hf_clusapi_ClusterResTypeEnumType_CLUSTER_RESOURCE_TYPE_ENUM_RESOURCES;
+static gint hf_clusapi_ENUM_ENTRY_Name;
+static gint hf_clusapi_ENUM_ENTRY_Type;
+static gint hf_clusapi_ENUM_LIST_Entry;
+static gint hf_clusapi_ENUM_LIST_EntryCount;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_Id;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_Name;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_Owner;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_Properties;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_RoProperties;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_cbProperties;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_cbRoProperties;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_dwFlags;
+static gint hf_clusapi_GROUP_ENUM_ENTRY_dwState;
+static gint hf_clusapi_GROUP_ENUM_LIST_Entry;
+static gint hf_clusapi_GROUP_ENUM_LIST_EntryCount;
+static gint hf_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS_NodeId;
+static gint hf_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS_ReturnStatus;
+static gint hf_clusapi_IDL_CLUSTER_SET_PASSWORD_STATUS_SetAttempted;
+static gint hf_clusapi_NOTIFICATION_DATA_ASYNC_RPC_Name;
+static gint hf_clusapi_NOTIFICATION_DATA_ASYNC_RPC_dwFilter;
+static gint hf_clusapi_NOTIFICATION_DATA_ASYNC_RPC_dwNotifyKey;
+static gint hf_clusapi_NOTIFICATION_DATA_RPC_FilterAndType;
+static gint hf_clusapi_NOTIFICATION_DATA_RPC_Name;
+static gint hf_clusapi_NOTIFICATION_DATA_RPC_ObjectId;
+static gint hf_clusapi_NOTIFICATION_DATA_RPC_ParentId;
+static gint hf_clusapi_NOTIFICATION_DATA_RPC_Type;
+static gint hf_clusapi_NOTIFICATION_DATA_RPC_buffer;
+static gint hf_clusapi_NOTIFICATION_DATA_RPC_dwBufferSize;
+static gint hf_clusapi_NOTIFICATION_RPC_NotificationData;
+static gint hf_clusapi_NOTIFICATION_RPC_dwNotifyKey;
+static gint hf_clusapi_NOTIFY_FILTER_AND_TYPE_RPC_FilterFlags;
+static gint hf_clusapi_NOTIFY_FILTER_AND_TYPE_RPC_dwObjectType;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_Id;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_Name;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_OwnerId;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_OwnerName;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_Properties;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_RoProperties;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_cbProperties;
+static gint hf_clusapi_RESOURCE_ENUM_ENTRY_cbRoProperties;
+static gint hf_clusapi_RESOURCE_ENUM_LIST_Entry;
+static gint hf_clusapi_RESOURCE_ENUM_LIST_EntryCount;
+static gint hf_clusapi_RPC_SECURITY_ATTRIBUTES_RpcSecurityDescriptor;
+static gint hf_clusapi_RPC_SECURITY_ATTRIBUTES_bInheritHandle;
+static gint hf_clusapi_RPC_SECURITY_ATTRIBUTES_nLength;
+static gint hf_clusapi_RPC_SECURITY_DESCRIPTOR_cbInSecurityDescriptor;
+static gint hf_clusapi_RPC_SECURITY_DESCRIPTOR_cbOutSecurityDescriptor;
+static gint hf_clusapi_RPC_SECURITY_DESCRIPTOR_lpSecurityDescriptor;
+static gint hf_clusapi_clusapi_AddGroupSetDependency_DependentGroupSet;
+static gint hf_clusapi_clusapi_AddGroupSetDependency_ProviderGroupSet;
+static gint hf_clusapi_clusapi_AddGroupSetDependency_rpc_status;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetDependency_DependentGroup;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetDependency_ProviderGroupSet;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetDependency_rpc_status;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_FaultDomain;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_Group;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_GroupSet;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_Reserved;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_UpdateDomain;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_UseDomains;
+static gint hf_clusapi_clusapi_AddGroupToGroupSetEx_rpc_status;
+static gint hf_clusapi_clusapi_AddGroupToGroupSet_Group;
+static gint hf_clusapi_clusapi_AddGroupToGroupSet_GroupSet;
+static gint hf_clusapi_clusapi_AddGroupToGroupSet_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyCluster_dwFilter;
+static gint hf_clusapi_clusapi_AddNotifyCluster_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyCluster_hCluster;
+static gint hf_clusapi_clusapi_AddNotifyCluster_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyCluster_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyGroup_dwFilter;
+static gint hf_clusapi_clusapi_AddNotifyGroup_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyGroup_dwStateSequence;
+static gint hf_clusapi_clusapi_AddNotifyGroup_hGroup;
+static gint hf_clusapi_clusapi_AddNotifyGroup_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyGroup_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyKey_Filter;
+static gint hf_clusapi_clusapi_AddNotifyKey_WatchSubTree;
+static gint hf_clusapi_clusapi_AddNotifyKey_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyKey_hKey;
+static gint hf_clusapi_clusapi_AddNotifyKey_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyKey_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyNetInterface_dwFilter;
+static gint hf_clusapi_clusapi_AddNotifyNetInterface_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyNetInterface_dwStateSequence;
+static gint hf_clusapi_clusapi_AddNotifyNetInterface_hNetInterface;
+static gint hf_clusapi_clusapi_AddNotifyNetInterface_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyNetInterface_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyNetwork_dwFilter;
+static gint hf_clusapi_clusapi_AddNotifyNetwork_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyNetwork_dwStateSequence;
+static gint hf_clusapi_clusapi_AddNotifyNetwork_hNetwork;
+static gint hf_clusapi_clusapi_AddNotifyNetwork_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyNetwork_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyNode_dwFilter;
+static gint hf_clusapi_clusapi_AddNotifyNode_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyNode_dwStateSequence;
+static gint hf_clusapi_clusapi_AddNotifyNode_hNode;
+static gint hf_clusapi_clusapi_AddNotifyNode_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyNode_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_dwVersion;
+static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_filter;
+static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_resTypeName;
+static gint hf_clusapi_clusapi_AddNotifyResourceTypeV2_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyResource_dwFilter;
+static gint hf_clusapi_clusapi_AddNotifyResource_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyResource_dwStateSequence;
+static gint hf_clusapi_clusapi_AddNotifyResource_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyResource_hResource;
+static gint hf_clusapi_clusapi_AddNotifyResource_rpc_status;
+static gint hf_clusapi_clusapi_AddNotifyV2_dwNotifyKey;
+static gint hf_clusapi_clusapi_AddNotifyV2_dwVersion;
+static gint hf_clusapi_clusapi_AddNotifyV2_filter;
+static gint hf_clusapi_clusapi_AddNotifyV2_hNotify;
+static gint hf_clusapi_clusapi_AddNotifyV2_hObject;
+static gint hf_clusapi_clusapi_AddNotifyV2_isTargetedAtObject;
+static gint hf_clusapi_clusapi_AddNotifyV2_rpc_status;
+static gint hf_clusapi_clusapi_AddResourceDependency_hDependsOn;
+static gint hf_clusapi_clusapi_AddResourceDependency_hResource;
+static gint hf_clusapi_clusapi_AddResourceDependency_rpc_status;
+static gint hf_clusapi_clusapi_AddResourceNode_hNode;
+static gint hf_clusapi_clusapi_AddResourceNode_hResource;
+static gint hf_clusapi_clusapi_AddResourceNode_rpc_status;
+static gint hf_clusapi_clusapi_BackupClusterDatabase_lpszPathName;
+static gint hf_clusapi_clusapi_BackupClusterDatabase_rpc_status;
+static gint hf_clusapi_clusapi_CanResourceBeDependent_hResource;
+static gint hf_clusapi_clusapi_CanResourceBeDependent_hResourceDependent;
+static gint hf_clusapi_clusapi_CanResourceBeDependent_rpc_status;
+static gint hf_clusapi_clusapi_CancelClusterGroupOperation_dwCancelFlags;
+static gint hf_clusapi_clusapi_CancelClusterGroupOperation_hGroup;
+static gint hf_clusapi_clusapi_CancelClusterGroupOperation_rpc_status;
+static gint hf_clusapi_clusapi_ChangeCsvStateEx_dwState;
+static gint hf_clusapi_clusapi_ChangeCsvStateEx_hResource;
+static gint hf_clusapi_clusapi_ChangeCsvStateEx_lpszVolumeName;
+static gint hf_clusapi_clusapi_ChangeCsvStateEx_rpc_status;
+static gint hf_clusapi_clusapi_ChangeCsvState_dwState;
+static gint hf_clusapi_clusapi_ChangeCsvState_hResource;
+static gint hf_clusapi_clusapi_ChangeCsvState_rpc_status;
+static gint hf_clusapi_clusapi_ChangeResourceGroup_hGroup;
+static gint hf_clusapi_clusapi_ChangeResourceGroup_hResource;
+static gint hf_clusapi_clusapi_ChangeResourceGroup_rpc_status;
+static gint hf_clusapi_clusapi_CloseBatchPort_phBatchPort;
+static gint hf_clusapi_clusapi_CloseCluster_Cluster;
+static gint hf_clusapi_clusapi_CloseGroupSet_GroupSet;
+static gint hf_clusapi_clusapi_CloseGroup_Group;
+static gint hf_clusapi_clusapi_CloseKey_pKey;
+static gint hf_clusapi_clusapi_CloseNetInterface_NetInterface;
+static gint hf_clusapi_clusapi_CloseNetwork_Network;
+static gint hf_clusapi_clusapi_CloseNode_Node;
+static gint hf_clusapi_clusapi_CloseNotify_Notify;
+static gint hf_clusapi_clusapi_CloseResource_Resource;
+static gint hf_clusapi_clusapi_ClusterControl_dwControlCode;
+static gint hf_clusapi_clusapi_ClusterControl_hCluster;
+static gint hf_clusapi_clusapi_ClusterControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_ClusterControl_lpInBuffer;
+static gint hf_clusapi_clusapi_ClusterControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_ClusterControl_lpcbRequired;
+static gint hf_clusapi_clusapi_ClusterControl_nInBufferSize;
+static gint hf_clusapi_clusapi_ClusterControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_ClusterControl_rpc_status;
+static gint hf_clusapi_clusapi_ClusterMrr_dwComponent;
+static gint hf_clusapi_clusapi_ClusterMrr_dwControlCode;
+static gint hf_clusapi_clusapi_ClusterMrr_dwTimeout;
+static gint hf_clusapi_clusapi_ClusterMrr_fExcludeSelf;
+static gint hf_clusapi_clusapi_ClusterMrr_hCluster;
+static gint hf_clusapi_clusapi_ClusterMrr_inSize;
+static gint hf_clusapi_clusapi_ClusterMrr_nodeSet;
+static gint hf_clusapi_clusapi_ClusterMrr_pInData;
+static gint hf_clusapi_clusapi_ClusterMrr_ppInfo;
+static gint hf_clusapi_clusapi_ClusterMrr_rpc_status;
+static gint hf_clusapi_clusapi_CreateBatchPort_hKey;
+static gint hf_clusapi_clusapi_CreateBatchPort_phBatchPort;
+static gint hf_clusapi_clusapi_CreateBatchPort_rpc_status;
+static gint hf_clusapi_clusapi_CreateEnumEx_ReturnIdEnum;
+static gint hf_clusapi_clusapi_CreateEnumEx_ReturnNameEnum;
+static gint hf_clusapi_clusapi_CreateEnumEx_dwOptions;
+static gint hf_clusapi_clusapi_CreateEnumEx_dwType;
+static gint hf_clusapi_clusapi_CreateEnumEx_hCluster;
+static gint hf_clusapi_clusapi_CreateEnumEx_rpc_status;
+static gint hf_clusapi_clusapi_CreateEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateEnum_dwType;
+static gint hf_clusapi_clusapi_CreateEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateGroupEnum_cbProperties;
+static gint hf_clusapi_clusapi_CreateGroupEnum_cbRoProperties;
+static gint hf_clusapi_clusapi_CreateGroupEnum_hCluster;
+static gint hf_clusapi_clusapi_CreateGroupEnum_pProperties;
+static gint hf_clusapi_clusapi_CreateGroupEnum_pRoProperties;
+static gint hf_clusapi_clusapi_CreateGroupEnum_ppResultList;
+static gint hf_clusapi_clusapi_CreateGroupEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateGroupEx_Status;
+static gint hf_clusapi_clusapi_CreateGroupEx_hGroup;
+static gint hf_clusapi_clusapi_CreateGroupEx_lpszGroupName;
+static gint hf_clusapi_clusapi_CreateGroupEx_pGroupInfo;
+static gint hf_clusapi_clusapi_CreateGroupEx_rpc_status;
+static gint hf_clusapi_clusapi_CreateGroupResourceEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateGroupResourceEnum_dwType;
+static gint hf_clusapi_clusapi_CreateGroupResourceEnum_hGroup;
+static gint hf_clusapi_clusapi_CreateGroupResourceEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateGroupSetEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateGroupSetEnum_hCluster;
+static gint hf_clusapi_clusapi_CreateGroupSetEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateGroupSet_Status;
+static gint hf_clusapi_clusapi_CreateGroupSet_hGroupSet;
+static gint hf_clusapi_clusapi_CreateGroupSet_lpszGroupSetName;
+static gint hf_clusapi_clusapi_CreateGroupSet_rpc_status;
+static gint hf_clusapi_clusapi_CreateGroup_Status;
+static gint hf_clusapi_clusapi_CreateGroup_hGroup;
+static gint hf_clusapi_clusapi_CreateGroup_lpszGroupName;
+static gint hf_clusapi_clusapi_CreateGroup_rpc_status;
+static gint hf_clusapi_clusapi_CreateKey_Status;
+static gint hf_clusapi_clusapi_CreateKey_dwOptions;
+static gint hf_clusapi_clusapi_CreateKey_hKey;
+static gint hf_clusapi_clusapi_CreateKey_lpSecurityAttributes;
+static gint hf_clusapi_clusapi_CreateKey_lpSubKey;
+static gint hf_clusapi_clusapi_CreateKey_lpdwDisposition;
+static gint hf_clusapi_clusapi_CreateKey_phKey;
+static gint hf_clusapi_clusapi_CreateKey_rpc_status;
+static gint hf_clusapi_clusapi_CreateKey_samDesired;
+static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_hCluster;
+static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_lpszNetworkName;
+static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_lpszNodeName;
+static gint hf_clusapi_clusapi_CreateNetInterfaceEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateNetworkEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateNetworkEnum_dwType;
+static gint hf_clusapi_clusapi_CreateNetworkEnum_hNetwork;
+static gint hf_clusapi_clusapi_CreateNetworkEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateNodeEnumEx_ReturnIdEnum;
+static gint hf_clusapi_clusapi_CreateNodeEnumEx_ReturnNameEnum;
+static gint hf_clusapi_clusapi_CreateNodeEnumEx_dwOptions;
+static gint hf_clusapi_clusapi_CreateNodeEnumEx_dwType;
+static gint hf_clusapi_clusapi_CreateNodeEnumEx_hNode;
+static gint hf_clusapi_clusapi_CreateNodeEnumEx_rpc_status;
+static gint hf_clusapi_clusapi_CreateNodeEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateNodeEnum_dwType;
+static gint hf_clusapi_clusapi_CreateNodeEnum_hNode;
+static gint hf_clusapi_clusapi_CreateNodeEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateNotifyV2_hNotify;
+static gint hf_clusapi_clusapi_CreateNotifyV2_rpc_error;
+static gint hf_clusapi_clusapi_CreateNotifyV2_rpc_status;
+static gint hf_clusapi_clusapi_CreateNotify_Status;
+static gint hf_clusapi_clusapi_CreateNotify_hNotify;
+static gint hf_clusapi_clusapi_CreateNotify_rpc_status;
+static gint hf_clusapi_clusapi_CreateResEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateResEnum_dwType;
+static gint hf_clusapi_clusapi_CreateResEnum_hResource;
+static gint hf_clusapi_clusapi_CreateResEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateResTypeEnum_ReturnEnum;
+static gint hf_clusapi_clusapi_CreateResTypeEnum_dwType;
+static gint hf_clusapi_clusapi_CreateResTypeEnum_lpszTypeName;
+static gint hf_clusapi_clusapi_CreateResTypeEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateResourceEnum_cbProperties;
+static gint hf_clusapi_clusapi_CreateResourceEnum_cbRoProperties;
+static gint hf_clusapi_clusapi_CreateResourceEnum_hCluster;
+static gint hf_clusapi_clusapi_CreateResourceEnum_pProperties;
+static gint hf_clusapi_clusapi_CreateResourceEnum_pRoProperties;
+static gint hf_clusapi_clusapi_CreateResourceEnum_ppResultList;
+static gint hf_clusapi_clusapi_CreateResourceEnum_rpc_status;
+static gint hf_clusapi_clusapi_CreateResourceType_dwIsAlive;
+static gint hf_clusapi_clusapi_CreateResourceType_dwLooksAlive;
+static gint hf_clusapi_clusapi_CreateResourceType_lpszDisplayName;
+static gint hf_clusapi_clusapi_CreateResourceType_lpszDllName;
+static gint hf_clusapi_clusapi_CreateResourceType_lpszTypeName;
+static gint hf_clusapi_clusapi_CreateResourceType_rpc_status;
+static gint hf_clusapi_clusapi_CreateResource_Status;
+static gint hf_clusapi_clusapi_CreateResource_dwFlags;
+static gint hf_clusapi_clusapi_CreateResource_hGroup;
+static gint hf_clusapi_clusapi_CreateResource_hResource;
+static gint hf_clusapi_clusapi_CreateResource_lpszResourceName;
+static gint hf_clusapi_clusapi_CreateResource_lpszResourceType;
+static gint hf_clusapi_clusapi_CreateResource_rpc_status;
+static gint hf_clusapi_clusapi_DeleteGroupSet_GroupSet;
+static gint hf_clusapi_clusapi_DeleteGroupSet_rpc_status;
+static gint hf_clusapi_clusapi_DeleteGroup_Group;
+static gint hf_clusapi_clusapi_DeleteGroup_force;
+static gint hf_clusapi_clusapi_DeleteGroup_rpc_status;
+static gint hf_clusapi_clusapi_DeleteKey_hKey;
+static gint hf_clusapi_clusapi_DeleteKey_lpSubKey;
+static gint hf_clusapi_clusapi_DeleteKey_rpc_status;
+static gint hf_clusapi_clusapi_DeleteResourceType_lpszTypeName;
+static gint hf_clusapi_clusapi_DeleteResourceType_rpc_status;
+static gint hf_clusapi_clusapi_DeleteResource_hResource;
+static gint hf_clusapi_clusapi_DeleteResource_rpc_status;
+static gint hf_clusapi_clusapi_DeleteValue_hKey;
+static gint hf_clusapi_clusapi_DeleteValue_lpValueName;
+static gint hf_clusapi_clusapi_DeleteValue_rpc_status;
+static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_CHANGE_ACCESS;
+static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_ALL;
+static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_EXECUTE;
+static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_READ;
+static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_GENERIC_WRITE;
+static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_MAXIMUM_ALLOWED;
+static gint hf_clusapi_clusapi_DesiredAccessMask_CLUSAPI_READ_ACCESS;
+static gint hf_clusapi_clusapi_EnumKey_KeyName;
+static gint hf_clusapi_clusapi_EnumKey_dwIndex;
+static gint hf_clusapi_clusapi_EnumKey_hKey;
+static gint hf_clusapi_clusapi_EnumKey_lpftLastWriteTime;
+static gint hf_clusapi_clusapi_EnumKey_rpc_status;
+static gint hf_clusapi_clusapi_EnumValue_TotalSize;
+static gint hf_clusapi_clusapi_EnumValue_dwIndex;
+static gint hf_clusapi_clusapi_EnumValue_hKey;
+static gint hf_clusapi_clusapi_EnumValue_lpData;
+static gint hf_clusapi_clusapi_EnumValue_lpType;
+static gint hf_clusapi_clusapi_EnumValue_lpValueName;
+static gint hf_clusapi_clusapi_EnumValue_lpcbData;
+static gint hf_clusapi_clusapi_EnumValue_rpc_status;
+static gint hf_clusapi_clusapi_EvictNode_hNode;
+static gint hf_clusapi_clusapi_EvictNode_rpc_status;
+static gint hf_clusapi_clusapi_ExecuteBatch_cbData;
+static gint hf_clusapi_clusapi_ExecuteBatch_hKey;
+static gint hf_clusapi_clusapi_ExecuteBatch_lpData;
+static gint hf_clusapi_clusapi_ExecuteBatch_pdwFailedCommand;
+static gint hf_clusapi_clusapi_ExecuteBatch_rpc_status;
+static gint hf_clusapi_clusapi_ExecuteReadBatchEx_cbInData;
+static gint hf_clusapi_clusapi_ExecuteReadBatchEx_cbOutData;
+static gint hf_clusapi_clusapi_ExecuteReadBatchEx_flags;
+static gint hf_clusapi_clusapi_ExecuteReadBatchEx_hKey;
+static gint hf_clusapi_clusapi_ExecuteReadBatchEx_lpInData;
+static gint hf_clusapi_clusapi_ExecuteReadBatchEx_lpOutData;
+static gint hf_clusapi_clusapi_ExecuteReadBatchEx_rpc_status;
+static gint hf_clusapi_clusapi_ExecuteReadBatch_cbInData;
+static gint hf_clusapi_clusapi_ExecuteReadBatch_cbOutData;
+static gint hf_clusapi_clusapi_ExecuteReadBatch_hKey;
+static gint hf_clusapi_clusapi_ExecuteReadBatch_lpInData;
+static gint hf_clusapi_clusapi_ExecuteReadBatch_lpOutData;
+static gint hf_clusapi_clusapi_ExecuteReadBatch_rpc_status;
+static gint hf_clusapi_clusapi_FailResource_hResource;
+static gint hf_clusapi_clusapi_FailResource_rpc_status;
+static gint hf_clusapi_clusapi_GetBatchNotification_cbData;
+static gint hf_clusapi_clusapi_GetBatchNotification_hBatchNotify;
+static gint hf_clusapi_clusapi_GetBatchNotification_lpData;
+static gint hf_clusapi_clusapi_GetClusterName_ClusterName;
+static gint hf_clusapi_clusapi_GetClusterName_NodeName;
+static gint hf_clusapi_clusapi_GetClusterVersion2_lpszCSDVersion;
+static gint hf_clusapi_clusapi_GetClusterVersion2_lpszVendorId;
+static gint hf_clusapi_clusapi_GetClusterVersion2_lpwBuildNumber;
+static gint hf_clusapi_clusapi_GetClusterVersion2_lpwMajorVersion;
+static gint hf_clusapi_clusapi_GetClusterVersion2_lpwMinorVersion;
+static gint hf_clusapi_clusapi_GetClusterVersion2_ppClusterOpVerInfo;
+static gint hf_clusapi_clusapi_GetClusterVersion2_rpc_status;
+static gint hf_clusapi_clusapi_GetClusterVersion_lpszCSDVersion;
+static gint hf_clusapi_clusapi_GetClusterVersion_lpszVendorId;
+static gint hf_clusapi_clusapi_GetClusterVersion_lpwBuildNumber;
+static gint hf_clusapi_clusapi_GetClusterVersion_lpwMajorVersion;
+static gint hf_clusapi_clusapi_GetClusterVersion_lpwMinorVersion;
+static gint hf_clusapi_clusapi_GetGroupId_hGroup;
+static gint hf_clusapi_clusapi_GetGroupId_pGuid;
+static gint hf_clusapi_clusapi_GetGroupId_rpc_status;
+static gint hf_clusapi_clusapi_GetGroupState_NodeName;
+static gint hf_clusapi_clusapi_GetGroupState_State;
+static gint hf_clusapi_clusapi_GetGroupState_hGroup;
+static gint hf_clusapi_clusapi_GetGroupState_rpc_status;
+static gint hf_clusapi_clusapi_GetKeySecurity_SecurityInformation;
+static gint hf_clusapi_clusapi_GetKeySecurity_hKey;
+static gint hf_clusapi_clusapi_GetKeySecurity_pRpcSecurityDescriptor;
+static gint hf_clusapi_clusapi_GetKeySecurity_rpc_status;
+static gint hf_clusapi_clusapi_GetNetInterfaceId_hNetInterface;
+static gint hf_clusapi_clusapi_GetNetInterfaceId_pGuid;
+static gint hf_clusapi_clusapi_GetNetInterfaceId_rpc_status;
+static gint hf_clusapi_clusapi_GetNetInterfaceState_State;
+static gint hf_clusapi_clusapi_GetNetInterfaceState_hNetInterface;
+static gint hf_clusapi_clusapi_GetNetInterfaceState_rpc_status;
+static gint hf_clusapi_clusapi_GetNetInterface_lppszInterfaceName;
+static gint hf_clusapi_clusapi_GetNetInterface_lpszNetworkName;
+static gint hf_clusapi_clusapi_GetNetInterface_lpszNodeName;
+static gint hf_clusapi_clusapi_GetNetInterface_rpc_status;
+static gint hf_clusapi_clusapi_GetNetworkId_hNetwork;
+static gint hf_clusapi_clusapi_GetNetworkId_pGuid;
+static gint hf_clusapi_clusapi_GetNetworkId_rpc_status;
+static gint hf_clusapi_clusapi_GetNetworkState_State;
+static gint hf_clusapi_clusapi_GetNetworkState_hNetwork;
+static gint hf_clusapi_clusapi_GetNetworkState_rpc_status;
+static gint hf_clusapi_clusapi_GetNodeId_hNode;
+static gint hf_clusapi_clusapi_GetNodeId_pGuid;
+static gint hf_clusapi_clusapi_GetNodeId_rpc_status;
+static gint hf_clusapi_clusapi_GetNodeState_State;
+static gint hf_clusapi_clusapi_GetNodeState_hNode;
+static gint hf_clusapi_clusapi_GetNodeState_rpc_status;
+static gint hf_clusapi_clusapi_GetNotifyAsync_Notifications;
+static gint hf_clusapi_clusapi_GetNotifyAsync_dwNumNotifications;
+static gint hf_clusapi_clusapi_GetNotifyAsync_hNotify;
+static gint hf_clusapi_clusapi_GetNotifyV2_Notifications;
+static gint hf_clusapi_clusapi_GetNotifyV2_dwNumNotifications;
+static gint hf_clusapi_clusapi_GetNotifyV2_hNotify;
+static gint hf_clusapi_clusapi_GetNotify_Name;
+static gint hf_clusapi_clusapi_GetNotify_dwFilter;
+static gint hf_clusapi_clusapi_GetNotify_dwNotifyKey;
+static gint hf_clusapi_clusapi_GetNotify_dwStateSequence;
+static gint hf_clusapi_clusapi_GetNotify_hNotify;
+static gint hf_clusapi_clusapi_GetNotify_rpc_status;
+static gint hf_clusapi_clusapi_GetQuorumResource_lpszDeviceName;
+static gint hf_clusapi_clusapi_GetQuorumResource_lpszResourceName;
+static gint hf_clusapi_clusapi_GetQuorumResource_pdwMaxQuorumLogSize;
+static gint hf_clusapi_clusapi_GetQuorumResource_rpc_status;
+static gint hf_clusapi_clusapi_GetResourceDependencyExpression_hResource;
+static gint hf_clusapi_clusapi_GetResourceDependencyExpression_lpszDependencyExpression;
+static gint hf_clusapi_clusapi_GetResourceDependencyExpression_rpc_status;
+static gint hf_clusapi_clusapi_GetResourceId_hResource;
+static gint hf_clusapi_clusapi_GetResourceId_pGuid;
+static gint hf_clusapi_clusapi_GetResourceId_rpc_status;
+static gint hf_clusapi_clusapi_GetResourceNetworkName_hResource;
+static gint hf_clusapi_clusapi_GetResourceNetworkName_lpszName;
+static gint hf_clusapi_clusapi_GetResourceNetworkName_rpc_status;
+static gint hf_clusapi_clusapi_GetResourceState_GroupName;
+static gint hf_clusapi_clusapi_GetResourceState_NodeName;
+static gint hf_clusapi_clusapi_GetResourceState_State;
+static gint hf_clusapi_clusapi_GetResourceState_hResource;
+static gint hf_clusapi_clusapi_GetResourceState_rpc_status;
+static gint hf_clusapi_clusapi_GetResourceType_hResource;
+static gint hf_clusapi_clusapi_GetResourceType_lpszResourceType;
+static gint hf_clusapi_clusapi_GetResourceType_rpc_status;
+static gint hf_clusapi_clusapi_GetRootKey_Status;
+static gint hf_clusapi_clusapi_GetRootKey_phKey;
+static gint hf_clusapi_clusapi_GetRootKey_rpc_status;
+static gint hf_clusapi_clusapi_GetRootKey_samDesired;
+static gint hf_clusapi_clusapi_GroupControl_dwControlCode;
+static gint hf_clusapi_clusapi_GroupControl_hGroup;
+static gint hf_clusapi_clusapi_GroupControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_GroupControl_lpInBuffer;
+static gint hf_clusapi_clusapi_GroupControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_GroupControl_lpcbRequired;
+static gint hf_clusapi_clusapi_GroupControl_nInBufferSize;
+static gint hf_clusapi_clusapi_GroupControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_GroupControl_rpc_status;
+static gint hf_clusapi_clusapi_GroupSetControl_dwControlCode;
+static gint hf_clusapi_clusapi_GroupSetControl_hGroupSet;
+static gint hf_clusapi_clusapi_GroupSetControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_GroupSetControl_lpInBuffer;
+static gint hf_clusapi_clusapi_GroupSetControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_GroupSetControl_lpcbRequired;
+static gint hf_clusapi_clusapi_GroupSetControl_nInBufferSize;
+static gint hf_clusapi_clusapi_GroupSetControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_GroupSetControl_rpc_status;
+static gint hf_clusapi_clusapi_MoveGroupEx_cbInBufferSize;
+static gint hf_clusapi_clusapi_MoveGroupEx_dwMoveFlags;
+static gint hf_clusapi_clusapi_MoveGroupEx_hGroup;
+static gint hf_clusapi_clusapi_MoveGroupEx_lpInBuffer;
+static gint hf_clusapi_clusapi_MoveGroupEx_rpc_status;
+static gint hf_clusapi_clusapi_MoveGroupToGroupSet_Group;
+static gint hf_clusapi_clusapi_MoveGroupToGroupSet_GroupSet;
+static gint hf_clusapi_clusapi_MoveGroupToGroupSet_rpc_status;
+static gint hf_clusapi_clusapi_MoveGroupToNodeEx_cbInBufferSize;
+static gint hf_clusapi_clusapi_MoveGroupToNodeEx_dwMoveFlags;
+static gint hf_clusapi_clusapi_MoveGroupToNodeEx_hGroup;
+static gint hf_clusapi_clusapi_MoveGroupToNodeEx_hNode;
+static gint hf_clusapi_clusapi_MoveGroupToNodeEx_lpInBuffer;
+static gint hf_clusapi_clusapi_MoveGroupToNodeEx_rpc_status;
+static gint hf_clusapi_clusapi_MoveGroupToNode_hGroup;
+static gint hf_clusapi_clusapi_MoveGroupToNode_hNode;
+static gint hf_clusapi_clusapi_MoveGroupToNode_rpc_status;
+static gint hf_clusapi_clusapi_MoveGroup_hGroup;
+static gint hf_clusapi_clusapi_MoveGroup_rpc_status;
+static gint hf_clusapi_clusapi_NetInterfaceControl_dwControlCode;
+static gint hf_clusapi_clusapi_NetInterfaceControl_hNetInterface;
+static gint hf_clusapi_clusapi_NetInterfaceControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NetInterfaceControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NetInterfaceControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NetInterfaceControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NetInterfaceControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NetInterfaceControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NetInterfaceControl_rpc_status;
+static gint hf_clusapi_clusapi_NetworkControl_dwControlCode;
+static gint hf_clusapi_clusapi_NetworkControl_hNetwork;
+static gint hf_clusapi_clusapi_NetworkControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NetworkControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NetworkControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NetworkControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NetworkControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NetworkControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NetworkControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeClusterControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeClusterControl_hCluster;
+static gint hf_clusapi_clusapi_NodeClusterControl_hHostNode;
+static gint hf_clusapi_clusapi_NodeClusterControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeClusterControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeClusterControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeClusterControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeClusterControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeClusterControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeClusterControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeControl_hNode;
+static gint hf_clusapi_clusapi_NodeControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeGroupControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeGroupControl_hGroup;
+static gint hf_clusapi_clusapi_NodeGroupControl_hNode;
+static gint hf_clusapi_clusapi_NodeGroupControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeGroupControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeGroupControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeGroupControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeGroupControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeGroupControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeGroupControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_hGroupSet;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_hNode;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeGroupSetControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_hNetInterface;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_hNode;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeNetInterfaceControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeNetworkControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeNetworkControl_hNetwork;
+static gint hf_clusapi_clusapi_NodeNetworkControl_hNode;
+static gint hf_clusapi_clusapi_NodeNetworkControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeNetworkControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeNetworkControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeNetworkControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeNetworkControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeNetworkControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeNetworkControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeNodeControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeNodeControl_hHostNode;
+static gint hf_clusapi_clusapi_NodeNodeControl_hNode;
+static gint hf_clusapi_clusapi_NodeNodeControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeNodeControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeNodeControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeNodeControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeNodeControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeNodeControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeNodeControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeResourceControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeResourceControl_hNode;
+static gint hf_clusapi_clusapi_NodeResourceControl_hResource;
+static gint hf_clusapi_clusapi_NodeResourceControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeResourceControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeResourceControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeResourceControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeResourceControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeResourceControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeResourceControl_rpc_status;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_dwControlCode;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_hCluster;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_hNode;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpInBuffer;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpcbRequired;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_lpszResourceTypeName;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_nInBufferSize;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_NodeResourceTypeControl_rpc_status;
+static gint hf_clusapi_clusapi_OfflineGroupEx_cbInBufferSize;
+static gint hf_clusapi_clusapi_OfflineGroupEx_dwOfflineFlags;
+static gint hf_clusapi_clusapi_OfflineGroupEx_hGroup;
+static gint hf_clusapi_clusapi_OfflineGroupEx_lpInBuffer;
+static gint hf_clusapi_clusapi_OfflineGroupEx_rpc_status;
+static gint hf_clusapi_clusapi_OfflineGroup_hGroup;
+static gint hf_clusapi_clusapi_OfflineGroup_rpc_status;
+static gint hf_clusapi_clusapi_OfflineResourceEx_cbInBufferSize;
+static gint hf_clusapi_clusapi_OfflineResourceEx_dwOfflineFlags;
+static gint hf_clusapi_clusapi_OfflineResourceEx_hResource;
+static gint hf_clusapi_clusapi_OfflineResourceEx_lpInBuffer;
+static gint hf_clusapi_clusapi_OfflineResourceEx_rpc_status;
+static gint hf_clusapi_clusapi_OfflineResource_hResource;
+static gint hf_clusapi_clusapi_OfflineResource_rpc_status;
+static gint hf_clusapi_clusapi_OnlineGroupEx_cbInBufferSize;
+static gint hf_clusapi_clusapi_OnlineGroupEx_dwOnlineFlags;
+static gint hf_clusapi_clusapi_OnlineGroupEx_hGroup;
+static gint hf_clusapi_clusapi_OnlineGroupEx_lpInBuffer;
+static gint hf_clusapi_clusapi_OnlineGroupEx_rpc_status;
+static gint hf_clusapi_clusapi_OnlineGroup_hGroup;
+static gint hf_clusapi_clusapi_OnlineGroup_rpc_status;
+static gint hf_clusapi_clusapi_OnlineResourceEx_cbInBufferSize;
+static gint hf_clusapi_clusapi_OnlineResourceEx_dwOnlineFlags;
+static gint hf_clusapi_clusapi_OnlineResourceEx_hResource;
+static gint hf_clusapi_clusapi_OnlineResourceEx_lpInBuffer;
+static gint hf_clusapi_clusapi_OnlineResourceEx_rpc_status;
+static gint hf_clusapi_clusapi_OnlineResource_hResource;
+static gint hf_clusapi_clusapi_OnlineResource_rpc_status;
+static gint hf_clusapi_clusapi_OpenClusterEx_Status;
+static gint hf_clusapi_clusapi_OpenClusterEx_dwDesiredAccess;
+static gint hf_clusapi_clusapi_OpenClusterEx_hCluster;
+static gint hf_clusapi_clusapi_OpenClusterEx_lpdwGrantedAccess;
+static gint hf_clusapi_clusapi_OpenCluster_Cluster;
+static gint hf_clusapi_clusapi_OpenCluster_Status;
+static gint hf_clusapi_clusapi_OpenGroupEx_Status;
+static gint hf_clusapi_clusapi_OpenGroupEx_dwDesiredAccess;
+static gint hf_clusapi_clusapi_OpenGroupEx_hGroup;
+static gint hf_clusapi_clusapi_OpenGroupEx_lpdwGrantedAccess;
+static gint hf_clusapi_clusapi_OpenGroupEx_lpszGroupName;
+static gint hf_clusapi_clusapi_OpenGroupEx_rpc_status;
+static gint hf_clusapi_clusapi_OpenGroupSet_Status;
+static gint hf_clusapi_clusapi_OpenGroupSet_hGroupSet;
+static gint hf_clusapi_clusapi_OpenGroupSet_lpszGroupSetName;
+static gint hf_clusapi_clusapi_OpenGroupSet_rpc_status;
+static gint hf_clusapi_clusapi_OpenGroup_Status;
+static gint hf_clusapi_clusapi_OpenGroup_hGroup;
+static gint hf_clusapi_clusapi_OpenGroup_lpszGroupName;
+static gint hf_clusapi_clusapi_OpenGroup_rpc_status;
+static gint hf_clusapi_clusapi_OpenKey_Status;
+static gint hf_clusapi_clusapi_OpenKey_hKey;
+static gint hf_clusapi_clusapi_OpenKey_lpSubKey;
+static gint hf_clusapi_clusapi_OpenKey_phKey;
+static gint hf_clusapi_clusapi_OpenKey_rpc_status;
+static gint hf_clusapi_clusapi_OpenKey_samDesired;
+static gint hf_clusapi_clusapi_OpenNetInterfaceEx_Status;
+static gint hf_clusapi_clusapi_OpenNetInterfaceEx_dwDesiredAccess;
+static gint hf_clusapi_clusapi_OpenNetInterfaceEx_hNetInterface;
+static gint hf_clusapi_clusapi_OpenNetInterfaceEx_lpdwGrantedAccess;
+static gint hf_clusapi_clusapi_OpenNetInterfaceEx_lpszNetInterfaceName;
+static gint hf_clusapi_clusapi_OpenNetInterfaceEx_rpc_status;
+static gint hf_clusapi_clusapi_OpenNetInterface_Status;
+static gint hf_clusapi_clusapi_OpenNetInterface_hNetInterface;
+static gint hf_clusapi_clusapi_OpenNetInterface_lpszNetInterfaceName;
+static gint hf_clusapi_clusapi_OpenNetInterface_rpc_status;
+static gint hf_clusapi_clusapi_OpenNetworkEx_Status;
+static gint hf_clusapi_clusapi_OpenNetworkEx_dwDesiredAccess;
+static gint hf_clusapi_clusapi_OpenNetworkEx_hNetwork;
+static gint hf_clusapi_clusapi_OpenNetworkEx_lpdwGrantedAccess;
+static gint hf_clusapi_clusapi_OpenNetworkEx_lpszNetworkName;
+static gint hf_clusapi_clusapi_OpenNetworkEx_rpc_status;
+static gint hf_clusapi_clusapi_OpenNetwork_Status;
+static gint hf_clusapi_clusapi_OpenNetwork_hNetwork;
+static gint hf_clusapi_clusapi_OpenNetwork_lpszNetworkName;
+static gint hf_clusapi_clusapi_OpenNetwork_rpc_status;
+static gint hf_clusapi_clusapi_OpenNodeEx_Status;
+static gint hf_clusapi_clusapi_OpenNodeEx_dwDesiredAccess;
+static gint hf_clusapi_clusapi_OpenNodeEx_hNode;
+static gint hf_clusapi_clusapi_OpenNodeEx_lpdwGrantedAccess;
+static gint hf_clusapi_clusapi_OpenNodeEx_lpszNodeName;
+static gint hf_clusapi_clusapi_OpenNodeEx_rpc_status;
+static gint hf_clusapi_clusapi_OpenNode_Status;
+static gint hf_clusapi_clusapi_OpenNode_hNode;
+static gint hf_clusapi_clusapi_OpenNode_lpszNodeName;
+static gint hf_clusapi_clusapi_OpenNode_rpc_status;
+static gint hf_clusapi_clusapi_OpenResourceEx_Status;
+static gint hf_clusapi_clusapi_OpenResourceEx_dwDesiredAccess;
+static gint hf_clusapi_clusapi_OpenResourceEx_hResource;
+static gint hf_clusapi_clusapi_OpenResourceEx_lpdwGrantedAccess;
+static gint hf_clusapi_clusapi_OpenResourceEx_lpszResourceName;
+static gint hf_clusapi_clusapi_OpenResourceEx_rpc_status;
+static gint hf_clusapi_clusapi_OpenResource_Status;
+static gint hf_clusapi_clusapi_OpenResource_hResource;
+static gint hf_clusapi_clusapi_OpenResource_lpszResourceName;
+static gint hf_clusapi_clusapi_OpenResource_rpc_status;
+static gint hf_clusapi_clusapi_PauseNodeEx_bDrainNode;
+static gint hf_clusapi_clusapi_PauseNodeEx_dwPauseFlags;
+static gint hf_clusapi_clusapi_PauseNodeEx_hNode;
+static gint hf_clusapi_clusapi_PauseNodeEx_rpc_status;
+static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_dwPauseFlags;
+static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_hNode;
+static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_hNodeDrainTarget;
+static gint hf_clusapi_clusapi_PauseNodeWithDrainTarget_rpc_status;
+static gint hf_clusapi_clusapi_PauseNode_hNode;
+static gint hf_clusapi_clusapi_PauseNode_rpc_status;
+static gint hf_clusapi_clusapi_QueryAllValues_hKey;
+static gint hf_clusapi_clusapi_QueryAllValues_pcbData;
+static gint hf_clusapi_clusapi_QueryAllValues_ppData;
+static gint hf_clusapi_clusapi_QueryAllValues_rpc_status;
+static gint hf_clusapi_clusapi_QueryInfoKey_hKey;
+static gint hf_clusapi_clusapi_QueryInfoKey_lpcSubKeys;
+static gint hf_clusapi_clusapi_QueryInfoKey_lpcValues;
+static gint hf_clusapi_clusapi_QueryInfoKey_lpcbMaxSubKeyLen;
+static gint hf_clusapi_clusapi_QueryInfoKey_lpcbMaxValueLen;
+static gint hf_clusapi_clusapi_QueryInfoKey_lpcbMaxValueNameLen;
+static gint hf_clusapi_clusapi_QueryInfoKey_lpcbSecurityDescriptor;
+static gint hf_clusapi_clusapi_QueryInfoKey_lpftLastWriteTime;
+static gint hf_clusapi_clusapi_QueryInfoKey_rpc_status;
+static gint hf_clusapi_clusapi_QueryValue_cbData;
+static gint hf_clusapi_clusapi_QueryValue_hKey;
+static gint hf_clusapi_clusapi_QueryValue_lpData;
+static gint hf_clusapi_clusapi_QueryValue_lpValueName;
+static gint hf_clusapi_clusapi_QueryValue_lpValueType;
+static gint hf_clusapi_clusapi_QueryValue_lpcbRequired;
+static gint hf_clusapi_clusapi_QueryValue_rpc_status;
+static gint hf_clusapi_clusapi_ReAddNotifyGroup_StateSequence;
+static gint hf_clusapi_clusapi_ReAddNotifyGroup_dwFilter;
+static gint hf_clusapi_clusapi_ReAddNotifyGroup_dwNotifyKey;
+static gint hf_clusapi_clusapi_ReAddNotifyGroup_hGroup;
+static gint hf_clusapi_clusapi_ReAddNotifyGroup_hNotify;
+static gint hf_clusapi_clusapi_ReAddNotifyGroup_rpc_status;
+static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_StateSequence;
+static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_dwFilter;
+static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_dwNotifyKey;
+static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_hNetInterface;
+static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_hNotify;
+static gint hf_clusapi_clusapi_ReAddNotifyNetInterface_rpc_status;
+static gint hf_clusapi_clusapi_ReAddNotifyNetwork_StateSequence;
+static gint hf_clusapi_clusapi_ReAddNotifyNetwork_dwFilter;
+static gint hf_clusapi_clusapi_ReAddNotifyNetwork_dwNotifyKey;
+static gint hf_clusapi_clusapi_ReAddNotifyNetwork_hNetwork;
+static gint hf_clusapi_clusapi_ReAddNotifyNetwork_hNotify;
+static gint hf_clusapi_clusapi_ReAddNotifyNetwork_rpc_status;
+static gint hf_clusapi_clusapi_ReAddNotifyNode_StateSequence;
+static gint hf_clusapi_clusapi_ReAddNotifyNode_dwFilter;
+static gint hf_clusapi_clusapi_ReAddNotifyNode_dwNotifyKey;
+static gint hf_clusapi_clusapi_ReAddNotifyNode_hNode;
+static gint hf_clusapi_clusapi_ReAddNotifyNode_hNotify;
+static gint hf_clusapi_clusapi_ReAddNotifyNode_rpc_status;
+static gint hf_clusapi_clusapi_ReAddNotifyResource_StateSequence;
+static gint hf_clusapi_clusapi_ReAddNotifyResource_dwFilter;
+static gint hf_clusapi_clusapi_ReAddNotifyResource_dwNotifyKey;
+static gint hf_clusapi_clusapi_ReAddNotifyResource_hNotify;
+static gint hf_clusapi_clusapi_ReAddNotifyResource_hResource;
+static gint hf_clusapi_clusapi_ReAddNotifyResource_rpc_status;
+static gint hf_clusapi_clusapi_RemoveClusterGroupDependency_hDependsOn;
+static gint hf_clusapi_clusapi_RemoveClusterGroupDependency_hGroup;
+static gint hf_clusapi_clusapi_RemoveClusterGroupDependency_rpc_status;
+static gint hf_clusapi_clusapi_RemoveClusterGroupToGroupSetDependency_hDependsOn;
+static gint hf_clusapi_clusapi_RemoveClusterGroupToGroupSetDependency_hGroup;
+static gint hf_clusapi_clusapi_RemoveClusterGroupToGroupSetDependency_rpc_status;
+static gint hf_clusapi_clusapi_RemoveGroupFromGroupSet_Group;
+static gint hf_clusapi_clusapi_RemoveGroupFromGroupSet_rpc_status;
+static gint hf_clusapi_clusapi_RemoveGroupSetDependency_hDependsOn;
+static gint hf_clusapi_clusapi_RemoveGroupSetDependency_hGroupSet;
+static gint hf_clusapi_clusapi_RemoveGroupSetDependency_rpc_status;
+static gint hf_clusapi_clusapi_RemoveResourceDependency_hDependsOn;
+static gint hf_clusapi_clusapi_RemoveResourceDependency_hResource;
+static gint hf_clusapi_clusapi_RemoveResourceDependency_rpc_status;
+static gint hf_clusapi_clusapi_RemoveResourceNode_hNode;
+static gint hf_clusapi_clusapi_RemoveResourceNode_hResource;
+static gint hf_clusapi_clusapi_RemoveResourceNode_rpc_status;
+static gint hf_clusapi_clusapi_ResourceControl_dwControlCode;
+static gint hf_clusapi_clusapi_ResourceControl_hResource;
+static gint hf_clusapi_clusapi_ResourceControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_ResourceControl_lpInBuffer;
+static gint hf_clusapi_clusapi_ResourceControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_ResourceControl_lpcbRequired;
+static gint hf_clusapi_clusapi_ResourceControl_nInBufferSize;
+static gint hf_clusapi_clusapi_ResourceControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_ResourceControl_rpc_status;
+static gint hf_clusapi_clusapi_ResourceTypeControl_dwControlCode;
+static gint hf_clusapi_clusapi_ResourceTypeControl_hCluster;
+static gint hf_clusapi_clusapi_ResourceTypeControl_lpBytesReturned;
+static gint hf_clusapi_clusapi_ResourceTypeControl_lpInBuffer;
+static gint hf_clusapi_clusapi_ResourceTypeControl_lpOutBuffer;
+static gint hf_clusapi_clusapi_ResourceTypeControl_lpcbRequired;
+static gint hf_clusapi_clusapi_ResourceTypeControl_lpszResourceTypeName;
+static gint hf_clusapi_clusapi_ResourceTypeControl_nInBufferSize;
+static gint hf_clusapi_clusapi_ResourceTypeControl_nOutBufferSize;
+static gint hf_clusapi_clusapi_ResourceTypeControl_rpc_status;
+static gint hf_clusapi_clusapi_RestartResource_dwFlags;
+static gint hf_clusapi_clusapi_RestartResource_hResource;
+static gint hf_clusapi_clusapi_RestartResource_rpc_status;
+static gint hf_clusapi_clusapi_ResumeNodeEx_dwResumeFailbackType;
+static gint hf_clusapi_clusapi_ResumeNodeEx_dwResumeFlagsReserved;
+static gint hf_clusapi_clusapi_ResumeNodeEx_hNode;
+static gint hf_clusapi_clusapi_ResumeNodeEx_rpc_status;
+static gint hf_clusapi_clusapi_ResumeNode_hNode;
+static gint hf_clusapi_clusapi_ResumeNode_rpc_status;
+static gint hf_clusapi_clusapi_SetClusterName_NewClusterName;
+static gint hf_clusapi_clusapi_SetClusterName_rpc_status;
+static gint hf_clusapi_clusapi_SetGroupDependencyExpression_hGroup;
+static gint hf_clusapi_clusapi_SetGroupDependencyExpression_lpszDependencyExpression;
+static gint hf_clusapi_clusapi_SetGroupDependencyExpression_rpc_status;
+static gint hf_clusapi_clusapi_SetGroupName_hGroup;
+static gint hf_clusapi_clusapi_SetGroupName_lpszGroupName;
+static gint hf_clusapi_clusapi_SetGroupName_rpc_status;
+static gint hf_clusapi_clusapi_SetGroupNodeList_cchListSize;
+static gint hf_clusapi_clusapi_SetGroupNodeList_hGroup;
+static gint hf_clusapi_clusapi_SetGroupNodeList_multiSzNodeList;
+static gint hf_clusapi_clusapi_SetGroupNodeList_rpc_status;
+static gint hf_clusapi_clusapi_SetGroupSetDependencyExpression_hGroupSet;
+static gint hf_clusapi_clusapi_SetGroupSetDependencyExpression_lpszDependencyExpression;
+static gint hf_clusapi_clusapi_SetGroupSetDependencyExpression_rpc_status;
+static gint hf_clusapi_clusapi_SetKeySecurity_SecurityInformation;
+static gint hf_clusapi_clusapi_SetKeySecurity_hKey;
+static gint hf_clusapi_clusapi_SetKeySecurity_pRpcSecurityDescriptor;
+static gint hf_clusapi_clusapi_SetKeySecurity_rpc_status;
+static gint hf_clusapi_clusapi_SetNetworkName_hNetwork;
+static gint hf_clusapi_clusapi_SetNetworkName_lpszNetworkName;
+static gint hf_clusapi_clusapi_SetNetworkName_rpc_status;
+static gint hf_clusapi_clusapi_SetNetworkPriorityOrder_NetworkCount;
+static gint hf_clusapi_clusapi_SetNetworkPriorityOrder_NetworkIdList;
+static gint hf_clusapi_clusapi_SetNetworkPriorityOrder_rpc_status;
+static gint hf_clusapi_clusapi_SetQuorumResource_dwMaxQuorumLogSize;
+static gint hf_clusapi_clusapi_SetQuorumResource_hResource;
+static gint hf_clusapi_clusapi_SetQuorumResource_lpszDeviceName;
+static gint hf_clusapi_clusapi_SetQuorumResource_rpc_status;
+static gint hf_clusapi_clusapi_SetResourceDependencyExpression_hResource;
+static gint hf_clusapi_clusapi_SetResourceDependencyExpression_lpszDependencyExpression;
+static gint hf_clusapi_clusapi_SetResourceDependencyExpression_rpc_status;
+static gint hf_clusapi_clusapi_SetResourceName_hResource;
+static gint hf_clusapi_clusapi_SetResourceName_lpszResourceName;
+static gint hf_clusapi_clusapi_SetResourceName_rpc_status;
+static gint hf_clusapi_clusapi_SetServiceAccountPassword_ExpectedBufferSize;
+static gint hf_clusapi_clusapi_SetServiceAccountPassword_ReturnStatusBufferPtr;
+static gint hf_clusapi_clusapi_SetServiceAccountPassword_ReturnStatusBufferSize;
+static gint hf_clusapi_clusapi_SetServiceAccountPassword_SizeReturned;
+static gint hf_clusapi_clusapi_SetServiceAccountPassword_dwFlags;
+static gint hf_clusapi_clusapi_SetServiceAccountPassword_lpszNewPassword;
+static gint hf_clusapi_clusapi_SetValue_cbData;
+static gint hf_clusapi_clusapi_SetValue_dwType;
+static gint hf_clusapi_clusapi_SetValue_hKey;
+static gint hf_clusapi_clusapi_SetValue_lpData;
+static gint hf_clusapi_clusapi_SetValue_lpValueName;
+static gint hf_clusapi_clusapi_SetValue_rpc_status;
+static gint hf_clusapi_clusapi_StmFindDisk_dwFlags;
+static gint hf_clusapi_clusapi_StmFindDisk_hCluster;
+static gint hf_clusapi_clusapi_StmFindDisk_pDiskId;
+static gint hf_clusapi_clusapi_StmFindDisk_pUniqueId;
+static gint hf_clusapi_clusapi_StmFindDisk_ppszDeviceName;
+static gint hf_clusapi_clusapi_StmFindDisk_rpc_status;
+static gint hf_clusapi_clusapi_StmFindDisk_uniqueIdSize;
+static gint hf_clusapi_clusapi_UnblockGetNotifyCall_hNotify;
+static gint hf_clusapi_opnum;
+static gint hf_clusapi_werror;
static gint proto_dcerpc_clusapi = -1;
/* Version information */
@@ -23160,7 +23160,7 @@ clusapi_dissect_AddGroupToGroupSetEx_request(tvbuff_t *tvb _U_, int offset _U_,
}
-static dcerpc_sub_dissector clusapi_dissectors[] = {
+static const dcerpc_sub_dissector clusapi_dissectors[] = {
{ 0, "OpenCluster",
clusapi_dissect_OpenCluster_request, clusapi_dissect_OpenCluster_response},
{ 1, "CloseCluster",
diff --git a/epan/dissectors/packet-dcerpc-conv.c b/epan/dissectors/packet-dcerpc-conv.c
index 44a670e243..21ce20e053 100644
--- a/epan/dissectors/packet-dcerpc-conv.c
+++ b/epan/dissectors/packet-dcerpc-conv.c
@@ -134,7 +134,7 @@ conv_dissect_who_are_you2_resp (tvbuff_t *tvb, int offset,
}
-static dcerpc_sub_dissector conv_dissectors[] = {
+static const dcerpc_sub_dissector conv_dissectors[] = {
{ 0, "who_are_you",
conv_dissect_who_are_you_rqst, conv_dissect_who_are_you_resp },
{ 1, "who_are_you2",
@@ -171,7 +171,7 @@ proto_register_conv (void)
{ &hf_conv_who_are_you2_resp_seq,
{"Sequence Number", "conv.who_are_you2_resp_seq", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_conv_who_are_you2_resp_casuuid,
- {"Client's address space UUID", "conv.who_are_you2_resp_casuuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL }}
+ {"Client's address space UUID", "conv.who_are_you2_resp_casuuid", FT_GUID, BASE_NONE, NULL, 0x0, NULL, HFILL }}
};
static gint *ett[] = {
diff --git a/epan/dissectors/packet-dcerpc-cprpc_server.c b/epan/dissectors/packet-dcerpc-cprpc_server.c
index 5848662911..f89a20a29b 100644
--- a/epan/dissectors/packet-dcerpc-cprpc_server.c
+++ b/epan/dissectors/packet-dcerpc-cprpc_server.c
@@ -31,7 +31,7 @@ static e_guid_t uuid_cprpc_server = { 0x4885772c, 0xc6d3, 0x11ca, { 0x84, 0xc6,
static guint16 ver_cprpc_server = 1;
-static dcerpc_sub_dissector cprpc_server_dissectors[] = {
+static const dcerpc_sub_dissector cprpc_server_dissectors[] = {
{ 0, "dnscp_server", NULL, NULL},
{ 0, NULL, NULL, NULL }
};
diff --git a/epan/dissectors/packet-dcerpc-dce122.c b/epan/dissectors/packet-dcerpc-dce122.c
index 0e97dfb363..b8b8ba2ac6 100644
--- a/epan/dissectors/packet-dcerpc-dce122.c
+++ b/epan/dissectors/packet-dcerpc-dce122.c
@@ -4415,8 +4415,6 @@ static const value_string dce_error_vals[] = {
{ 0, NULL }
};
-#define array_length(x) (sizeof x / sizeof x[0])
-
value_string_ext dce_error_vals_ext = VALUE_STRING_EXT_INIT(dce_error_vals);
/*
diff --git a/epan/dissectors/packet-dcerpc-dfs.c b/epan/dissectors/packet-dcerpc-dfs.c
index d2687e4434..0e2e40d6cb 100644
--- a/epan/dissectors/packet-dcerpc-dfs.c
+++ b/epan/dissectors/packet-dcerpc-dfs.c
@@ -22,212 +22,212 @@ void proto_register_dcerpc_netdfs(void);
void proto_reg_handoff_dcerpc_netdfs(void);
/* Ett declarations */
-static gint ett_dcerpc_netdfs = -1;
-static gint ett_netdfs_dfs_Info0 = -1;
-static gint ett_netdfs_dfs_Info1 = -1;
-static gint ett_netdfs_dfs_VolumeState = -1;
-static gint ett_netdfs_dfs_Info2 = -1;
-static gint ett_netdfs_dfs_StorageState = -1;
-static gint ett_netdfs_dfs_StorageInfo = -1;
-static gint ett_netdfs_dfs_Info3 = -1;
-static gint ett_netdfs_dfs_Info4 = -1;
-static gint ett_netdfs_dfs_PropertyFlags = -1;
-static gint ett_netdfs_dfs_Info5 = -1;
-static gint ett_netdfs_dfs_Target_Priority = -1;
-static gint ett_netdfs_dfs_StorageInfo2 = -1;
-static gint ett_netdfs_dfs_Info6 = -1;
-static gint ett_netdfs_dfs_Info7 = -1;
-static gint ett_netdfs_dfs_Info100 = -1;
-static gint ett_netdfs_dfs_Info101 = -1;
-static gint ett_netdfs_dfs_Info102 = -1;
-static gint ett_netdfs_dfs_Info103 = -1;
-static gint ett_netdfs_dfs_Info104 = -1;
-static gint ett_netdfs_dfs_Info105 = -1;
-static gint ett_netdfs_dfs_Info106 = -1;
-static gint ett_netdfs_dfs_Info200 = -1;
-static gint ett_netdfs_dfs_Info300 = -1;
-static gint ett_netdfs_dfs_Info = -1;
-static gint ett_netdfs_dfs_EnumArray1 = -1;
-static gint ett_netdfs_dfs_EnumArray2 = -1;
-static gint ett_netdfs_dfs_EnumArray3 = -1;
-static gint ett_netdfs_dfs_EnumArray4 = -1;
-static gint ett_netdfs_dfs_EnumArray200 = -1;
-static gint ett_netdfs_dfs_EnumArray300 = -1;
-static gint ett_netdfs_dfs_EnumInfo = -1;
-static gint ett_netdfs_dfs_EnumStruct = -1;
-static gint ett_netdfs_dfs_UnknownStruct = -1;
+static gint ett_dcerpc_netdfs;
+static gint ett_netdfs_dfs_Info0;
+static gint ett_netdfs_dfs_Info1;
+static gint ett_netdfs_dfs_VolumeState;
+static gint ett_netdfs_dfs_Info2;
+static gint ett_netdfs_dfs_StorageState;
+static gint ett_netdfs_dfs_StorageInfo;
+static gint ett_netdfs_dfs_Info3;
+static gint ett_netdfs_dfs_Info4;
+static gint ett_netdfs_dfs_PropertyFlags;
+static gint ett_netdfs_dfs_Info5;
+static gint ett_netdfs_dfs_Target_Priority;
+static gint ett_netdfs_dfs_StorageInfo2;
+static gint ett_netdfs_dfs_Info6;
+static gint ett_netdfs_dfs_Info7;
+static gint ett_netdfs_dfs_Info100;
+static gint ett_netdfs_dfs_Info101;
+static gint ett_netdfs_dfs_Info102;
+static gint ett_netdfs_dfs_Info103;
+static gint ett_netdfs_dfs_Info104;
+static gint ett_netdfs_dfs_Info105;
+static gint ett_netdfs_dfs_Info106;
+static gint ett_netdfs_dfs_Info200;
+static gint ett_netdfs_dfs_Info300;
+static gint ett_netdfs_dfs_Info;
+static gint ett_netdfs_dfs_EnumArray1;
+static gint ett_netdfs_dfs_EnumArray2;
+static gint ett_netdfs_dfs_EnumArray3;
+static gint ett_netdfs_dfs_EnumArray4;
+static gint ett_netdfs_dfs_EnumArray200;
+static gint ett_netdfs_dfs_EnumArray300;
+static gint ett_netdfs_dfs_EnumInfo;
+static gint ett_netdfs_dfs_EnumStruct;
+static gint ett_netdfs_dfs_UnknownStruct;
/* Header field declarations */
-static gint hf_netdfs_dfs_AddFtRoot_comment = -1;
-static gint hf_netdfs_dfs_AddFtRoot_dfs_config_dn = -1;
-static gint hf_netdfs_dfs_AddFtRoot_dfsname = -1;
-static gint hf_netdfs_dfs_AddFtRoot_dns_servername = -1;
-static gint hf_netdfs_dfs_AddFtRoot_flags = -1;
-static gint hf_netdfs_dfs_AddFtRoot_rootshare = -1;
-static gint hf_netdfs_dfs_AddFtRoot_servername = -1;
-static gint hf_netdfs_dfs_AddFtRoot_unknown1 = -1;
-static gint hf_netdfs_dfs_AddFtRoot_unknown2 = -1;
-static gint hf_netdfs_dfs_AddStdRootForced_comment = -1;
-static gint hf_netdfs_dfs_AddStdRootForced_rootshare = -1;
-static gint hf_netdfs_dfs_AddStdRootForced_servername = -1;
-static gint hf_netdfs_dfs_AddStdRootForced_store = -1;
-static gint hf_netdfs_dfs_AddStdRoot_comment = -1;
-static gint hf_netdfs_dfs_AddStdRoot_flags = -1;
-static gint hf_netdfs_dfs_AddStdRoot_rootshare = -1;
-static gint hf_netdfs_dfs_AddStdRoot_servername = -1;
-static gint hf_netdfs_dfs_Add_comment = -1;
-static gint hf_netdfs_dfs_Add_flags = -1;
-static gint hf_netdfs_dfs_Add_path = -1;
-static gint hf_netdfs_dfs_Add_server = -1;
-static gint hf_netdfs_dfs_Add_share = -1;
-static gint hf_netdfs_dfs_EnumArray1_count = -1;
-static gint hf_netdfs_dfs_EnumArray1_s = -1;
-static gint hf_netdfs_dfs_EnumArray200_count = -1;
-static gint hf_netdfs_dfs_EnumArray200_s = -1;
-static gint hf_netdfs_dfs_EnumArray2_count = -1;
-static gint hf_netdfs_dfs_EnumArray2_s = -1;
-static gint hf_netdfs_dfs_EnumArray300_count = -1;
-static gint hf_netdfs_dfs_EnumArray300_s = -1;
-static gint hf_netdfs_dfs_EnumArray3_count = -1;
-static gint hf_netdfs_dfs_EnumArray3_s = -1;
-static gint hf_netdfs_dfs_EnumArray4_count = -1;
-static gint hf_netdfs_dfs_EnumArray4_s = -1;
-static gint hf_netdfs_dfs_EnumEx_bufsize = -1;
-static gint hf_netdfs_dfs_EnumEx_dfs_name = -1;
-static gint hf_netdfs_dfs_EnumEx_info = -1;
-static gint hf_netdfs_dfs_EnumEx_level = -1;
-static gint hf_netdfs_dfs_EnumEx_total = -1;
-static gint hf_netdfs_dfs_EnumInfo_info1 = -1;
-static gint hf_netdfs_dfs_EnumInfo_info2 = -1;
-static gint hf_netdfs_dfs_EnumInfo_info200 = -1;
-static gint hf_netdfs_dfs_EnumInfo_info3 = -1;
-static gint hf_netdfs_dfs_EnumInfo_info300 = -1;
-static gint hf_netdfs_dfs_EnumInfo_info4 = -1;
-static gint hf_netdfs_dfs_EnumStruct_e = -1;
-static gint hf_netdfs_dfs_EnumStruct_level = -1;
-static gint hf_netdfs_dfs_Enum_bufsize = -1;
-static gint hf_netdfs_dfs_Enum_info = -1;
-static gint hf_netdfs_dfs_Enum_level = -1;
-static gint hf_netdfs_dfs_Enum_total = -1;
-static gint hf_netdfs_dfs_FlushFtTable_rootshare = -1;
-static gint hf_netdfs_dfs_FlushFtTable_servername = -1;
-static gint hf_netdfs_dfs_GetInfo_dfs_entry_path = -1;
-static gint hf_netdfs_dfs_GetInfo_info = -1;
-static gint hf_netdfs_dfs_GetInfo_level = -1;
-static gint hf_netdfs_dfs_GetInfo_servername = -1;
-static gint hf_netdfs_dfs_GetInfo_sharename = -1;
-static gint hf_netdfs_dfs_GetManagerVersion_version = -1;
-static gint hf_netdfs_dfs_Info100_comment = -1;
-static gint hf_netdfs_dfs_Info101_state = -1;
-static gint hf_netdfs_dfs_Info102_timeout = -1;
-static gint hf_netdfs_dfs_Info103_flags = -1;
-static gint hf_netdfs_dfs_Info104_priority = -1;
-static gint hf_netdfs_dfs_Info105_comment = -1;
-static gint hf_netdfs_dfs_Info105_property_flag_mask = -1;
-static gint hf_netdfs_dfs_Info105_property_flags = -1;
-static gint hf_netdfs_dfs_Info105_state = -1;
-static gint hf_netdfs_dfs_Info105_timeout = -1;
-static gint hf_netdfs_dfs_Info106_priority = -1;
-static gint hf_netdfs_dfs_Info106_state = -1;
-static gint hf_netdfs_dfs_Info1_path = -1;
-static gint hf_netdfs_dfs_Info200_dom_root = -1;
-static gint hf_netdfs_dfs_Info2_comment = -1;
-static gint hf_netdfs_dfs_Info2_num_stores = -1;
-static gint hf_netdfs_dfs_Info2_path = -1;
-static gint hf_netdfs_dfs_Info2_state = -1;
-static gint hf_netdfs_dfs_Info300_dom_root = -1;
-static gint hf_netdfs_dfs_Info300_flavor = -1;
-static gint hf_netdfs_dfs_Info3_comment = -1;
-static gint hf_netdfs_dfs_Info3_num_stores = -1;
-static gint hf_netdfs_dfs_Info3_path = -1;
-static gint hf_netdfs_dfs_Info3_state = -1;
-static gint hf_netdfs_dfs_Info3_stores = -1;
-static gint hf_netdfs_dfs_Info4_comment = -1;
-static gint hf_netdfs_dfs_Info4_guid = -1;
-static gint hf_netdfs_dfs_Info4_num_stores = -1;
-static gint hf_netdfs_dfs_Info4_path = -1;
-static gint hf_netdfs_dfs_Info4_state = -1;
-static gint hf_netdfs_dfs_Info4_stores = -1;
-static gint hf_netdfs_dfs_Info4_timeout = -1;
-static gint hf_netdfs_dfs_Info5_comment = -1;
-static gint hf_netdfs_dfs_Info5_flags = -1;
-static gint hf_netdfs_dfs_Info5_guid = -1;
-static gint hf_netdfs_dfs_Info5_num_stores = -1;
-static gint hf_netdfs_dfs_Info5_path = -1;
-static gint hf_netdfs_dfs_Info5_pktsize = -1;
-static gint hf_netdfs_dfs_Info5_state = -1;
-static gint hf_netdfs_dfs_Info5_timeout = -1;
-static gint hf_netdfs_dfs_Info6_comment = -1;
-static gint hf_netdfs_dfs_Info6_entry_path = -1;
-static gint hf_netdfs_dfs_Info6_flags = -1;
-static gint hf_netdfs_dfs_Info6_guid = -1;
-static gint hf_netdfs_dfs_Info6_num_stores = -1;
-static gint hf_netdfs_dfs_Info6_pktsize = -1;
-static gint hf_netdfs_dfs_Info6_state = -1;
-static gint hf_netdfs_dfs_Info6_stores = -1;
-static gint hf_netdfs_dfs_Info6_timeout = -1;
-static gint hf_netdfs_dfs_Info7_generation_guid = -1;
-static gint hf_netdfs_dfs_Info_info0 = -1;
-static gint hf_netdfs_dfs_Info_info1 = -1;
-static gint hf_netdfs_dfs_Info_info100 = -1;
-static gint hf_netdfs_dfs_Info_info101 = -1;
-static gint hf_netdfs_dfs_Info_info102 = -1;
-static gint hf_netdfs_dfs_Info_info103 = -1;
-static gint hf_netdfs_dfs_Info_info104 = -1;
-static gint hf_netdfs_dfs_Info_info105 = -1;
-static gint hf_netdfs_dfs_Info_info106 = -1;
-static gint hf_netdfs_dfs_Info_info2 = -1;
-static gint hf_netdfs_dfs_Info_info3 = -1;
-static gint hf_netdfs_dfs_Info_info4 = -1;
-static gint hf_netdfs_dfs_Info_info5 = -1;
-static gint hf_netdfs_dfs_Info_info6 = -1;
-static gint hf_netdfs_dfs_Info_info7 = -1;
-static gint hf_netdfs_dfs_ManagerInitialize_flags = -1;
-static gint hf_netdfs_dfs_ManagerInitialize_servername = -1;
-static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED = -1;
-static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS = -1;
-static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY = -1;
-static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING = -1;
-static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK = -1;
-static gint hf_netdfs_dfs_RemoveFtRoot_dfsname = -1;
-static gint hf_netdfs_dfs_RemoveFtRoot_dns_servername = -1;
-static gint hf_netdfs_dfs_RemoveFtRoot_flags = -1;
-static gint hf_netdfs_dfs_RemoveFtRoot_rootshare = -1;
-static gint hf_netdfs_dfs_RemoveFtRoot_servername = -1;
-static gint hf_netdfs_dfs_RemoveFtRoot_unknown = -1;
-static gint hf_netdfs_dfs_RemoveStdRoot_flags = -1;
-static gint hf_netdfs_dfs_RemoveStdRoot_rootshare = -1;
-static gint hf_netdfs_dfs_RemoveStdRoot_servername = -1;
-static gint hf_netdfs_dfs_Remove_dfs_entry_path = -1;
-static gint hf_netdfs_dfs_Remove_servername = -1;
-static gint hf_netdfs_dfs_Remove_sharename = -1;
-static gint hf_netdfs_dfs_SetInfo_dfs_entry_path = -1;
-static gint hf_netdfs_dfs_SetInfo_info = -1;
-static gint hf_netdfs_dfs_SetInfo_level = -1;
-static gint hf_netdfs_dfs_SetInfo_servername = -1;
-static gint hf_netdfs_dfs_SetInfo_sharename = -1;
-static gint hf_netdfs_dfs_StorageInfo2_info = -1;
-static gint hf_netdfs_dfs_StorageInfo2_target_priority = -1;
-static gint hf_netdfs_dfs_StorageInfo_server = -1;
-static gint hf_netdfs_dfs_StorageInfo_share = -1;
-static gint hf_netdfs_dfs_StorageInfo_state = -1;
-static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE = -1;
-static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE = -1;
-static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE = -1;
-static gint hf_netdfs_dfs_Target_Priority_reserved = -1;
-static gint hf_netdfs_dfs_Target_Priority_target_priority_class = -1;
-static gint hf_netdfs_dfs_Target_Priority_target_priority_rank = -1;
-static gint hf_netdfs_dfs_UnknownStruct_unknown1 = -1;
-static gint hf_netdfs_dfs_UnknownStruct_unknown2 = -1;
-static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB = -1;
-static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT = -1;
-static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE = -1;
-static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK = -1;
-static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE = -1;
-static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE = -1;
-static gint hf_netdfs_opnum = -1;
-static gint hf_netdfs_werror = -1;
+static gint hf_netdfs_dfs_AddFtRoot_comment;
+static gint hf_netdfs_dfs_AddFtRoot_dfs_config_dn;
+static gint hf_netdfs_dfs_AddFtRoot_dfsname;
+static gint hf_netdfs_dfs_AddFtRoot_dns_servername;
+static gint hf_netdfs_dfs_AddFtRoot_flags;
+static gint hf_netdfs_dfs_AddFtRoot_rootshare;
+static gint hf_netdfs_dfs_AddFtRoot_servername;
+static gint hf_netdfs_dfs_AddFtRoot_unknown1;
+static gint hf_netdfs_dfs_AddFtRoot_unknown2;
+static gint hf_netdfs_dfs_AddStdRootForced_comment;
+static gint hf_netdfs_dfs_AddStdRootForced_rootshare;
+static gint hf_netdfs_dfs_AddStdRootForced_servername;
+static gint hf_netdfs_dfs_AddStdRootForced_store;
+static gint hf_netdfs_dfs_AddStdRoot_comment;
+static gint hf_netdfs_dfs_AddStdRoot_flags;
+static gint hf_netdfs_dfs_AddStdRoot_rootshare;
+static gint hf_netdfs_dfs_AddStdRoot_servername;
+static gint hf_netdfs_dfs_Add_comment;
+static gint hf_netdfs_dfs_Add_flags;
+static gint hf_netdfs_dfs_Add_path;
+static gint hf_netdfs_dfs_Add_server;
+static gint hf_netdfs_dfs_Add_share;
+static gint hf_netdfs_dfs_EnumArray1_count;
+static gint hf_netdfs_dfs_EnumArray1_s;
+static gint hf_netdfs_dfs_EnumArray200_count;
+static gint hf_netdfs_dfs_EnumArray200_s;
+static gint hf_netdfs_dfs_EnumArray2_count;
+static gint hf_netdfs_dfs_EnumArray2_s;
+static gint hf_netdfs_dfs_EnumArray300_count;
+static gint hf_netdfs_dfs_EnumArray300_s;
+static gint hf_netdfs_dfs_EnumArray3_count;
+static gint hf_netdfs_dfs_EnumArray3_s;
+static gint hf_netdfs_dfs_EnumArray4_count;
+static gint hf_netdfs_dfs_EnumArray4_s;
+static gint hf_netdfs_dfs_EnumEx_bufsize;
+static gint hf_netdfs_dfs_EnumEx_dfs_name;
+static gint hf_netdfs_dfs_EnumEx_info;
+static gint hf_netdfs_dfs_EnumEx_level;
+static gint hf_netdfs_dfs_EnumEx_total;
+static gint hf_netdfs_dfs_EnumInfo_info1;
+static gint hf_netdfs_dfs_EnumInfo_info2;
+static gint hf_netdfs_dfs_EnumInfo_info200;
+static gint hf_netdfs_dfs_EnumInfo_info3;
+static gint hf_netdfs_dfs_EnumInfo_info300;
+static gint hf_netdfs_dfs_EnumInfo_info4;
+static gint hf_netdfs_dfs_EnumStruct_e;
+static gint hf_netdfs_dfs_EnumStruct_level;
+static gint hf_netdfs_dfs_Enum_bufsize;
+static gint hf_netdfs_dfs_Enum_info;
+static gint hf_netdfs_dfs_Enum_level;
+static gint hf_netdfs_dfs_Enum_total;
+static gint hf_netdfs_dfs_FlushFtTable_rootshare;
+static gint hf_netdfs_dfs_FlushFtTable_servername;
+static gint hf_netdfs_dfs_GetInfo_dfs_entry_path;
+static gint hf_netdfs_dfs_GetInfo_info;
+static gint hf_netdfs_dfs_GetInfo_level;
+static gint hf_netdfs_dfs_GetInfo_servername;
+static gint hf_netdfs_dfs_GetInfo_sharename;
+static gint hf_netdfs_dfs_GetManagerVersion_version;
+static gint hf_netdfs_dfs_Info100_comment;
+static gint hf_netdfs_dfs_Info101_state;
+static gint hf_netdfs_dfs_Info102_timeout;
+static gint hf_netdfs_dfs_Info103_flags;
+static gint hf_netdfs_dfs_Info104_priority;
+static gint hf_netdfs_dfs_Info105_comment;
+static gint hf_netdfs_dfs_Info105_property_flag_mask;
+static gint hf_netdfs_dfs_Info105_property_flags;
+static gint hf_netdfs_dfs_Info105_state;
+static gint hf_netdfs_dfs_Info105_timeout;
+static gint hf_netdfs_dfs_Info106_priority;
+static gint hf_netdfs_dfs_Info106_state;
+static gint hf_netdfs_dfs_Info1_path;
+static gint hf_netdfs_dfs_Info200_dom_root;
+static gint hf_netdfs_dfs_Info2_comment;
+static gint hf_netdfs_dfs_Info2_num_stores;
+static gint hf_netdfs_dfs_Info2_path;
+static gint hf_netdfs_dfs_Info2_state;
+static gint hf_netdfs_dfs_Info300_dom_root;
+static gint hf_netdfs_dfs_Info300_flavor;
+static gint hf_netdfs_dfs_Info3_comment;
+static gint hf_netdfs_dfs_Info3_num_stores;
+static gint hf_netdfs_dfs_Info3_path;
+static gint hf_netdfs_dfs_Info3_state;
+static gint hf_netdfs_dfs_Info3_stores;
+static gint hf_netdfs_dfs_Info4_comment;
+static gint hf_netdfs_dfs_Info4_guid;
+static gint hf_netdfs_dfs_Info4_num_stores;
+static gint hf_netdfs_dfs_Info4_path;
+static gint hf_netdfs_dfs_Info4_state;
+static gint hf_netdfs_dfs_Info4_stores;
+static gint hf_netdfs_dfs_Info4_timeout;
+static gint hf_netdfs_dfs_Info5_comment;
+static gint hf_netdfs_dfs_Info5_flags;
+static gint hf_netdfs_dfs_Info5_guid;
+static gint hf_netdfs_dfs_Info5_num_stores;
+static gint hf_netdfs_dfs_Info5_path;
+static gint hf_netdfs_dfs_Info5_pktsize;
+static gint hf_netdfs_dfs_Info5_state;
+static gint hf_netdfs_dfs_Info5_timeout;
+static gint hf_netdfs_dfs_Info6_comment;
+static gint hf_netdfs_dfs_Info6_entry_path;
+static gint hf_netdfs_dfs_Info6_flags;
+static gint hf_netdfs_dfs_Info6_guid;
+static gint hf_netdfs_dfs_Info6_num_stores;
+static gint hf_netdfs_dfs_Info6_pktsize;
+static gint hf_netdfs_dfs_Info6_state;
+static gint hf_netdfs_dfs_Info6_stores;
+static gint hf_netdfs_dfs_Info6_timeout;
+static gint hf_netdfs_dfs_Info7_generation_guid;
+static gint hf_netdfs_dfs_Info_info0;
+static gint hf_netdfs_dfs_Info_info1;
+static gint hf_netdfs_dfs_Info_info100;
+static gint hf_netdfs_dfs_Info_info101;
+static gint hf_netdfs_dfs_Info_info102;
+static gint hf_netdfs_dfs_Info_info103;
+static gint hf_netdfs_dfs_Info_info104;
+static gint hf_netdfs_dfs_Info_info105;
+static gint hf_netdfs_dfs_Info_info106;
+static gint hf_netdfs_dfs_Info_info2;
+static gint hf_netdfs_dfs_Info_info3;
+static gint hf_netdfs_dfs_Info_info4;
+static gint hf_netdfs_dfs_Info_info5;
+static gint hf_netdfs_dfs_Info_info6;
+static gint hf_netdfs_dfs_Info_info7;
+static gint hf_netdfs_dfs_ManagerInitialize_flags;
+static gint hf_netdfs_dfs_ManagerInitialize_servername;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK;
+static gint hf_netdfs_dfs_RemoveFtRoot_dfsname;
+static gint hf_netdfs_dfs_RemoveFtRoot_dns_servername;
+static gint hf_netdfs_dfs_RemoveFtRoot_flags;
+static gint hf_netdfs_dfs_RemoveFtRoot_rootshare;
+static gint hf_netdfs_dfs_RemoveFtRoot_servername;
+static gint hf_netdfs_dfs_RemoveFtRoot_unknown;
+static gint hf_netdfs_dfs_RemoveStdRoot_flags;
+static gint hf_netdfs_dfs_RemoveStdRoot_rootshare;
+static gint hf_netdfs_dfs_RemoveStdRoot_servername;
+static gint hf_netdfs_dfs_Remove_dfs_entry_path;
+static gint hf_netdfs_dfs_Remove_servername;
+static gint hf_netdfs_dfs_Remove_sharename;
+static gint hf_netdfs_dfs_SetInfo_dfs_entry_path;
+static gint hf_netdfs_dfs_SetInfo_info;
+static gint hf_netdfs_dfs_SetInfo_level;
+static gint hf_netdfs_dfs_SetInfo_servername;
+static gint hf_netdfs_dfs_SetInfo_sharename;
+static gint hf_netdfs_dfs_StorageInfo2_info;
+static gint hf_netdfs_dfs_StorageInfo2_target_priority;
+static gint hf_netdfs_dfs_StorageInfo_server;
+static gint hf_netdfs_dfs_StorageInfo_share;
+static gint hf_netdfs_dfs_StorageInfo_state;
+static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE;
+static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE;
+static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE;
+static gint hf_netdfs_dfs_Target_Priority_reserved;
+static gint hf_netdfs_dfs_Target_Priority_target_priority_class;
+static gint hf_netdfs_dfs_Target_Priority_target_priority_rank;
+static gint hf_netdfs_dfs_UnknownStruct_unknown1;
+static gint hf_netdfs_dfs_UnknownStruct_unknown2;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE;
+static gint hf_netdfs_opnum;
+static gint hf_netdfs_werror;
static gint proto_dcerpc_netdfs = -1;
/* Version information */
@@ -4747,7 +4747,7 @@ netdfs_dissect_dfs_SetInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_in
}
-static dcerpc_sub_dissector netdfs_dissectors[] = {
+static const dcerpc_sub_dissector netdfs_dissectors[] = {
{ 0, "dfs_GetManagerVersion",
netdfs_dissect_dfs_GetManagerVersion_request, netdfs_dissect_dfs_GetManagerVersion_response},
{ 1, "dfs_Add",
diff --git a/epan/dissectors/packet-dcerpc-dnsserver.c b/epan/dissectors/packet-dcerpc-dnsserver.c
index 44d93062f6..619aeba73d 100644
--- a/epan/dissectors/packet-dcerpc-dnsserver.c
+++ b/epan/dissectors/packet-dcerpc-dnsserver.c
@@ -22,166 +22,166 @@ void proto_register_dcerpc_dnsserver(void);
void proto_reg_handoff_dcerpc_dnsserver(void);
/* Ett declarations */
-static gint ett_dcerpc_dnsserver = -1;
-static gint ett_dnsserver_DNS_RPC_VERSION = -1;
-static gint ett_dnsserver_DNS_LOG_LEVELS = -1;
-static gint ett_dnsserver_DNS_RPC_PROTOCOLS = -1;
-static gint ett_dnsserver_DNS_SELECT_FLAGS = -1;
-static gint ett_dnsserver_DNS_RPC_NODE_FLAGS = -1;
-static gint ett_dnsserver_DNS_RPC_NAME = -1;
-static gint ett_dnsserver_DNS_RPC_RECORD_NODE_NAME = -1;
-static gint ett_dnsserver_DNS_RPC_RECORD_UNION = -1;
-static gint ett_dnsserver_DNS_RPC_RECORD = -1;
-static gint ett_dnsserver_DNS_RPC_NODE = -1;
-static gint ett_dnsserver_IP4_ARRAY = -1;
-static gint ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET = -1;
-static gint ett_dnsserver_DNSSRV_RPC_UNION = -1;
-static gint ett_dnsserver_DNS_RECORD_BUFFER = -1;
+static gint ett_dcerpc_dnsserver;
+static gint ett_dnsserver_DNS_RPC_VERSION;
+static gint ett_dnsserver_DNS_LOG_LEVELS;
+static gint ett_dnsserver_DNS_RPC_PROTOCOLS;
+static gint ett_dnsserver_DNS_SELECT_FLAGS;
+static gint ett_dnsserver_DNS_RPC_NODE_FLAGS;
+static gint ett_dnsserver_DNS_RPC_NAME;
+static gint ett_dnsserver_DNS_RPC_RECORD_NODE_NAME;
+static gint ett_dnsserver_DNS_RPC_RECORD_UNION;
+static gint ett_dnsserver_DNS_RPC_RECORD;
+static gint ett_dnsserver_DNS_RPC_NODE;
+static gint ett_dnsserver_IP4_ARRAY;
+static gint ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET;
+static gint ett_dnsserver_DNSSRV_RPC_UNION;
+static gint ett_dnsserver_DNS_RECORD_BUFFER;
/* Header field declarations */
-static gint hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotnet = -1;
-static gint hf_dnsserver_DNSSRV_RPC_UNION_dword = -1;
-static gint hf_dnsserver_DNSSRV_RPC_UNION_null = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE = -1;
-static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH = -1;
-static gint hf_dnsserver_DNS_RECORD_BUFFER_rpc_node = -1;
-static gint hf_dnsserver_DNS_RPC_NAME_Name = -1;
-static gint hf_dnsserver_DNS_RPC_NAME_NameLength = -1;
-static gint hf_dnsserver_DNS_RPC_NAME_name = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_Childcount = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_Flags = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_Length = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_NodeName = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_RecordCount = -1;
-static gint hf_dnsserver_DNS_RPC_NODE_records = -1;
-static gint hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC = -1;
-static gint hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE = -1;
-static gint hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_DataLength = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_Flags = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_NODE_NAME_Name = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_Serial = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_TimeStamp = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_TtlSeconds = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_Type = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_UNION_NodeName = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_record = -1;
-static gint hf_dnsserver_DNS_RPC_RECORD_reserved = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BootMethod = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainName = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsContainer = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestName = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Forwarders = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilter = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogLevel = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerName = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Version = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension0 = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension1 = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension2 = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension3 = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension4 = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension5 = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2 = -1;
-static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserved0 = -1;
-static gint hf_dnsserver_DNS_RPC_VERSION_OSMajorVersion = -1;
-static gint hf_dnsserver_DNS_RPC_VERSION_OSMinorVersion = -1;
-static gint hf_dnsserver_DNS_RPC_VERSION_ServicePackVersion = -1;
-static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA = -1;
-static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA = -1;
-static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA = -1;
-static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA = -1;
-static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN = -1;
-static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN = -1;
-static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_buffer_length = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_client_version = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_filter_start = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_filter_stop = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_node_name = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_record_buffer = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_record_buffer_ = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_record_type = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_select_flag = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_server_name = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_setting_flags = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_start_child = -1;
-static gint hf_dnsserver_DnssrvEnumRecords2_zone = -1;
-static gint hf_dnsserver_DnssrvQuery2_client_version = -1;
-static gint hf_dnsserver_DnssrvQuery2_data = -1;
-static gint hf_dnsserver_DnssrvQuery2_operation = -1;
-static gint hf_dnsserver_DnssrvQuery2_server_name = -1;
-static gint hf_dnsserver_DnssrvQuery2_setting_flags = -1;
-static gint hf_dnsserver_DnssrvQuery2_type_id = -1;
-static gint hf_dnsserver_DnssrvQuery2_zone = -1;
-static gint hf_dnsserver_IP4_ARRAY_AddrArray = -1;
-static gint hf_dnsserver_IP4_ARRAY_AddrCount = -1;
-static gint hf_dnsserver_opnum = -1;
-static gint hf_dnsserver_status = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotnet;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_dword;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_null;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE;
+static gint hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH;
+static gint hf_dnsserver_DNS_RECORD_BUFFER_rpc_node;
+static gint hf_dnsserver_DNS_RPC_NAME_Name;
+static gint hf_dnsserver_DNS_RPC_NAME_NameLength;
+static gint hf_dnsserver_DNS_RPC_NAME_name;
+static gint hf_dnsserver_DNS_RPC_NODE_Childcount;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION;
+static gint hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT;
+static gint hf_dnsserver_DNS_RPC_NODE_Flags;
+static gint hf_dnsserver_DNS_RPC_NODE_Length;
+static gint hf_dnsserver_DNS_RPC_NODE_NodeName;
+static gint hf_dnsserver_DNS_RPC_NODE_RecordCount;
+static gint hf_dnsserver_DNS_RPC_NODE_records;
+static gint hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC;
+static gint hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE;
+static gint hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP;
+static gint hf_dnsserver_DNS_RPC_RECORD_DataLength;
+static gint hf_dnsserver_DNS_RPC_RECORD_Flags;
+static gint hf_dnsserver_DNS_RPC_RECORD_NODE_NAME_Name;
+static gint hf_dnsserver_DNS_RPC_RECORD_Serial;
+static gint hf_dnsserver_DNS_RPC_RECORD_TimeStamp;
+static gint hf_dnsserver_DNS_RPC_RECORD_TtlSeconds;
+static gint hf_dnsserver_DNS_RPC_RECORD_Type;
+static gint hf_dnsserver_DNS_RPC_RECORD_UNION_NodeName;
+static gint hf_dnsserver_DNS_RPC_RECORD_record;
+static gint hf_dnsserver_DNS_RPC_RECORD_reserved;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AddressAnswerLimit;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AdminConfigured;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AllowUpdate;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoCacheUpdate;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_AutoReverseZones;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BindSecondaries;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_BootMethod;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DebugLevel;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultAgingState;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultNoRefreshInterval;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DefaultRefreshInterval;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainDirectoryPartition;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DomainName;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsAvailable;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsContainer;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDomainVersion;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsDsaVersion;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsForestVersion;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_DsPollingInterval;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_EventLogLevel;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestDirectoryPartition;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForestName;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardDelegations;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ForwardTimeout;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Forwarders;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LastScavengeTime;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ListenAddrs;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriority;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LocalNetPriorityNetmask;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFileMaxSize;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilePath;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogFilter;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LogLevel;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_LooseWildcarding;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_MaxCacheTtl;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NameCheckFlag;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_NoRecursion;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecurseAfterForwarding;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionRetry;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RecursionTimeout;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RoundRobin;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcProtocol;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_RpcStructureVersion;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ScavengingInterval;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_SecureResponses;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerAddrs;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_ServerName;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_StrictFileParsing;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_Version;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_WriteAuthorityNs;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension0;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension2;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension3;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension4;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_extension5;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserve_array2;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_reserved0;
+static gint hf_dnsserver_DNS_RPC_VERSION_OSMajorVersion;
+static gint hf_dnsserver_DNS_RPC_VERSION_OSMinorVersion;
+static gint hf_dnsserver_DNS_RPC_VERSION_ServicePackVersion;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA;
+static gint hf_dnsserver_DnssrvEnumRecords2_buffer_length;
+static gint hf_dnsserver_DnssrvEnumRecords2_client_version;
+static gint hf_dnsserver_DnssrvEnumRecords2_filter_start;
+static gint hf_dnsserver_DnssrvEnumRecords2_filter_stop;
+static gint hf_dnsserver_DnssrvEnumRecords2_node_name;
+static gint hf_dnsserver_DnssrvEnumRecords2_record_buffer;
+static gint hf_dnsserver_DnssrvEnumRecords2_record_buffer_;
+static gint hf_dnsserver_DnssrvEnumRecords2_record_type;
+static gint hf_dnsserver_DnssrvEnumRecords2_select_flag;
+static gint hf_dnsserver_DnssrvEnumRecords2_server_name;
+static gint hf_dnsserver_DnssrvEnumRecords2_setting_flags;
+static gint hf_dnsserver_DnssrvEnumRecords2_start_child;
+static gint hf_dnsserver_DnssrvEnumRecords2_zone;
+static gint hf_dnsserver_DnssrvQuery2_client_version;
+static gint hf_dnsserver_DnssrvQuery2_data;
+static gint hf_dnsserver_DnssrvQuery2_operation;
+static gint hf_dnsserver_DnssrvQuery2_server_name;
+static gint hf_dnsserver_DnssrvQuery2_setting_flags;
+static gint hf_dnsserver_DnssrvQuery2_type_id;
+static gint hf_dnsserver_DnssrvQuery2_zone;
+static gint hf_dnsserver_IP4_ARRAY_AddrArray;
+static gint hf_dnsserver_IP4_ARRAY_AddrCount;
+static gint hf_dnsserver_opnum;
+static gint hf_dnsserver_status;
static gint proto_dcerpc_dnsserver = -1;
/* Version information */
@@ -586,7 +586,7 @@ dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_
}
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NAME);
}
offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_dnsserver_DNS_RPC_NAME_NameLength, &len);
@@ -3013,7 +3013,7 @@ dnsserver_dissect_DnssrvUpdateRecord2_request(tvbuff_t *tvb _U_, int offset _U_,
}
-static dcerpc_sub_dissector dnsserver_dissectors[] = {
+static const dcerpc_sub_dissector dnsserver_dissectors[] = {
{ 0, "DnssrvOperation",
dnsserver_dissect_DnssrvOperation_request, dnsserver_dissect_DnssrvOperation_response},
{ 1, "DnssrvQuery",
diff --git a/epan/dissectors/packet-dcerpc-drsuapi.c b/epan/dissectors/packet-dcerpc-drsuapi.c
index 4b7fbed65d..39fa185828 100644
--- a/epan/dissectors/packet-dcerpc-drsuapi.c
+++ b/epan/dissectors/packet-dcerpc-drsuapi.c
@@ -22,960 +22,960 @@ void proto_register_dcerpc_drsuapi(void);
void proto_reg_handoff_dcerpc_drsuapi(void);
/* Ett declarations */
-static gint ett_dcerpc_drsuapi = -1;
-static gint ett_drsuapi_security_GroupAttrs = -1;
-static gint ett_drsuapi_drsuapi_DrsOptions = -1;
-static gint ett_drsuapi_drsuapi_DrsMoreOptions = -1;
-static gint ett_drsuapi_drsuapi_DrsUpdate = -1;
-static gint ett_drsuapi_drsuapi_SupportedExtensions = -1;
-static gint ett_drsuapi_drsuapi_SupportedExtensionsExt = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfo24 = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfo28 = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfo32 = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfo48 = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfo52 = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfoFallBack = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfo = -1;
-static gint ett_drsuapi_drsuapi_DsBindInfoCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaHighWaterMark = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursor = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursorCtrEx = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest5 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaOID = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsPartialAttributeSet = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest8 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest10 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursor2 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx = -1;
-static gint ett_drsuapi_drsuapi_DsAttributeValue = -1;
-static gint ett_drsuapi_drsuapi_DsAttributeValueCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAttribute = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAttributeCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjectFlags = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObject = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaMetaData = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaMetaDataCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjectListItemEx = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1 = -1;
-static gint ett_drsuapi_drsuapi_DsLinkedAttributeFlags = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaLinkedAttribute = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr2 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr7 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAddRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAddRequest2 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAddRequest = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaDelRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaDelRequest = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaModRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaModRequest = -1;
-static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr = -1;
-static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest = -1;
-static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags = -1;
-static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest = -1;
-static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo = -1;
-static gint ett_drsuapi_drsuapi_DsNameString = -1;
-static gint ett_drsuapi_drsuapi_DsNameRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsNameRequest = -1;
-static gint ett_drsuapi_drsuapi_DsNameInfo1 = -1;
-static gint ett_drsuapi_drsuapi_DsNameCtr1 = -1;
-static gint ett_drsuapi_drsuapi_DsNameCtr = -1;
-static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest = -1;
-static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult1 = -1;
-static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult = -1;
-static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest = -1;
-static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult1 = -1;
-static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfo1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfo2 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr2 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfo3 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr3 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCConnection01 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCConnectionCtr01 = -1;
-static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjectListItem = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryRequest2 = -1;
-static gint ett_drsuapi_drsuapi_SecBuffer = -1;
-static gint ett_drsuapi_drsuapi_SecBufferDesc = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryRequest3 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryRequest = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfoX = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1 = -1;
-static gint ett_drsuapi_drsuapi_NameResOp_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsaAddressListItem_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryCtr2 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryCtr3 = -1;
-static gint ett_drsuapi_drsuapi_DsAddEntryCtr = -1;
-static gint ett_drsuapi_drsuapi_DsExecuteKCCFlags = -1;
-static gint ett_drsuapi_drsuapi_DsExecuteKCC1 = -1;
-static gint ett_drsuapi_drsuapi_DsExecuteKCCRequest = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaNeighbour = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaNeighbourCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursorCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailure = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaOp = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaOpCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursor2Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursor3 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaCursor3Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaConnection04 = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaConnection04Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsReplica06 = -1;
-static gint ett_drsuapi_drsuapi_DsReplica06Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsReplicaInfo = -1;
-static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr = -1;
-static gint ett_drsuapi_drsuapi_DsGetMemberships2Request1 = -1;
-static gint ett_drsuapi_drsuapi_DsGetMemberships2Request = -1;
-static gint ett_drsuapi_drsuapi_DsSiteCostInfo = -1;
-static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr1 = -1;
-static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr = -1;
-static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest1 = -1;
-static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest = -1;
-static gint ett_drsuapi_drsuapi_ReadNgcKeyReqV1 = -1;
-static gint ett_drsuapi_drsuapi_ReadNgcKeyReq = -1;
-static gint ett_drsuapi_drsuapi_ReadNgcKeyReplyV1 = -1;
-static gint ett_drsuapi_drsuapi_ReadNgcKeyReply = -1;
+static gint ett_dcerpc_drsuapi;
+static gint ett_drsuapi_security_GroupAttrs;
+static gint ett_drsuapi_drsuapi_DrsOptions;
+static gint ett_drsuapi_drsuapi_DrsMoreOptions;
+static gint ett_drsuapi_drsuapi_DrsUpdate;
+static gint ett_drsuapi_drsuapi_SupportedExtensions;
+static gint ett_drsuapi_drsuapi_SupportedExtensionsExt;
+static gint ett_drsuapi_drsuapi_DsBindInfo24;
+static gint ett_drsuapi_drsuapi_DsBindInfo28;
+static gint ett_drsuapi_drsuapi_DsBindInfo32;
+static gint ett_drsuapi_drsuapi_DsBindInfo48;
+static gint ett_drsuapi_drsuapi_DsBindInfo52;
+static gint ett_drsuapi_drsuapi_DsBindInfoFallBack;
+static gint ett_drsuapi_drsuapi_DsBindInfo;
+static gint ett_drsuapi_drsuapi_DsBindInfoCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier;
+static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest1;
+static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest;
+static gint ett_drsuapi_drsuapi_DsReplicaHighWaterMark;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor;
+static gint ett_drsuapi_drsuapi_DsReplicaCursorCtrEx;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest5;
+static gint ett_drsuapi_drsuapi_DsReplicaOID;
+static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping;
+static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr;
+static gint ett_drsuapi_drsuapi_DsPartialAttributeSet;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest8;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest10;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor2;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx;
+static gint ett_drsuapi_drsuapi_DsAttributeValue;
+static gint ett_drsuapi_drsuapi_DsAttributeValueCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary;
+static gint ett_drsuapi_drsuapi_DsReplicaAttribute;
+static gint ett_drsuapi_drsuapi_DsReplicaAttributeCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectFlags;
+static gint ett_drsuapi_drsuapi_DsReplicaObject;
+static gint ett_drsuapi_drsuapi_DsReplicaMetaData;
+static gint ett_drsuapi_drsuapi_DsReplicaMetaDataCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectListItemEx;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1;
+static gint ett_drsuapi_drsuapi_DsLinkedAttributeFlags;
+static gint ett_drsuapi_drsuapi_DsReplicaLinkedAttribute;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr2;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr7;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1;
+static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest;
+static gint ett_drsuapi_drsuapi_DsReplicaAddRequest1;
+static gint ett_drsuapi_drsuapi_DsReplicaAddRequest2;
+static gint ett_drsuapi_drsuapi_DsReplicaAddRequest;
+static gint ett_drsuapi_drsuapi_DsReplicaDelRequest1;
+static gint ett_drsuapi_drsuapi_DsReplicaDelRequest;
+static gint ett_drsuapi_drsuapi_DsReplicaModRequest1;
+static gint ett_drsuapi_drsuapi_DsReplicaModRequest;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr1;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest1;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo;
+static gint ett_drsuapi_drsuapi_DsNameString;
+static gint ett_drsuapi_drsuapi_DsNameRequest1;
+static gint ett_drsuapi_drsuapi_DsNameRequest;
+static gint ett_drsuapi_drsuapi_DsNameInfo1;
+static gint ett_drsuapi_drsuapi_DsNameCtr1;
+static gint ett_drsuapi_drsuapi_DsNameCtr;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult1;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest1;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult1;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest;
+static gint ett_drsuapi_drsuapi_DsGetDCInfo1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfo2;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr2;
+static gint ett_drsuapi_drsuapi_DsGetDCInfo3;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr3;
+static gint ett_drsuapi_drsuapi_DsGetDCConnection01;
+static gint ett_drsuapi_drsuapi_DsGetDCConnectionCtr01;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectListItem;
+static gint ett_drsuapi_drsuapi_DsAddEntryRequest2;
+static gint ett_drsuapi_drsuapi_SecBuffer;
+static gint ett_drsuapi_drsuapi_SecBufferDesc;
+static gint ett_drsuapi_drsuapi_DsAddEntryRequest3;
+static gint ett_drsuapi_drsuapi_DsAddEntryRequest;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfoX;
+static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1;
+static gint ett_drsuapi_drsuapi_NameResOp_V1;
+static gint ett_drsuapi_drsuapi_DsaAddressListItem_V1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo;
+static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2;
+static gint ett_drsuapi_drsuapi_DsAddEntryCtr2;
+static gint ett_drsuapi_drsuapi_DsAddEntryCtr3;
+static gint ett_drsuapi_drsuapi_DsAddEntryCtr;
+static gint ett_drsuapi_drsuapi_DsExecuteKCCFlags;
+static gint ett_drsuapi_drsuapi_DsExecuteKCC1;
+static gint ett_drsuapi_drsuapi_DsExecuteKCCRequest;
+static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1;
+static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2;
+static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest;
+static gint ett_drsuapi_drsuapi_DsReplicaNeighbour;
+static gint ett_drsuapi_drsuapi_DsReplicaNeighbourCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaCursorCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailure;
+static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaOp;
+static gint ett_drsuapi_drsuapi_DsReplicaOpCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor2Ctr;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor3;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor3Ctr;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr;
+static gint ett_drsuapi_drsuapi_DsReplicaConnection04;
+static gint ett_drsuapi_drsuapi_DsReplicaConnection04Ctr;
+static gint ett_drsuapi_drsuapi_DsReplica06;
+static gint ett_drsuapi_drsuapi_DsReplica06Ctr;
+static gint ett_drsuapi_drsuapi_DsReplicaInfo;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr1;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Request1;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Request;
+static gint ett_drsuapi_drsuapi_DsSiteCostInfo;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr1;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest1;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest;
+static gint ett_drsuapi_drsuapi_ReadNgcKeyReqV1;
+static gint ett_drsuapi_drsuapi_ReadNgcKeyReq;
+static gint ett_drsuapi_drsuapi_ReadNgcKeyReplyV1;
+static gint ett_drsuapi_drsuapi_ReadNgcKeyReply;
/* Header field declarations */
-static gint hf_drsuapi_drsuapi_DrsMoreOptions_DRSUAPI_DRS_GET_TGT = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION = -1;
-static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP = -1;
-static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS = -1;
-static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS = -1;
-static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_count = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_id = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_objects = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_problem = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_count = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_id = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_objects = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2 = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3 = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req2 = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req3 = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1 = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_level = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsAddEntry_req = -1;
-static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values = -1;
-static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_values = -1;
-static gint hf_drsuapi_drsuapi_DsAttributeValue___ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsAttributeValue_blob = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo24_pid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo24_site_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo28_pid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo28_site_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo32_pid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo32_repl_epoch = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo32_site_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions_ext = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo48_pid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo48_site_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo52_config_dn_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo52_pid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo52_repl_epoch = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo52_site_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_capabilities_ext = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions_ext = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfoCtr_info = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfoCtr_length = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfoFallBack_info = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo_Fallback = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo_info24 = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo_info28 = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo_info32 = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo_info48 = -1;
-static gint hf_drsuapi_drsuapi_DsBindInfo_info52 = -1;
-static gint hf_drsuapi_drsuapi_DsBind_bind_guid = -1;
-static gint hf_drsuapi_drsuapi_DsBind_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsBind_bind_info = -1;
-static gint hf_drsuapi_drsuapi_DsCrackNames_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsCrackNames_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsCrackNames_level = -1;
-static gint hf_drsuapi_drsuapi_DsCrackNames_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsCrackNames_req = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCC1_flags = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCC1_taskID = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCC_level = -1;
-static gint hf_drsuapi_drsuapi_DsExecuteKCC_req = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_account = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo1_site_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level = -1;
-static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level = -1;
-static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2Request_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2_level = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships2_req = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type = -1;
-static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships_level = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsGetMemberships_req = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_ = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_ = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_ = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_ = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChanges_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChanges_level = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChanges_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsGetNCChanges_req = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req = -1;
-static gint hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE = -1;
-static gint hf_drsuapi_drsuapi_DsNameCtr1_array = -1;
-static gint hf_drsuapi_drsuapi_DsNameCtr1_count = -1;
-static gint hf_drsuapi_drsuapi_DsNameCtr_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name = -1;
-static gint hf_drsuapi_drsuapi_DsNameInfo1_result_name = -1;
-static gint hf_drsuapi_drsuapi_DsNameInfo1_status = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest1_codepage = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest1_count = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest1_format_desired = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest1_format_flags = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest1_format_offered = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest1_language = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest1_names = -1;
-static gint hf_drsuapi_drsuapi_DsNameRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsNameString_str = -1;
-static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_attids = -1;
-static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids = -1;
-static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1 = -1;
-static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_version = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1 = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServer_req = -1;
-static gint hf_drsuapi_drsuapi_DsRemoveDSServer_res = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06Ctr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06Ctr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06Ctr_reserved = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_str1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_u1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_u2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_u3 = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_u4 = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_u5 = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_u6 = -1;
-static gint hf_drsuapi_drsuapi_DsReplica06_u7 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_options = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_options = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAdd_level = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAdd_req = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttribute_attid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u3 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u5 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_options = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaDelRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaDel_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaDel_level = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaDel_req = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_level = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_req = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_clientctx = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors3 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_neighbours = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_pendingops = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_repsto = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaInfo_udv1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMetaData_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_options = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaModRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMod_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMod_level = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaMod_req = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOID_binary_oid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOID_length = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_object = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObject_flags = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaObject_identifier = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_array = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_count = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_time = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_start = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_type = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_options = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_priority = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaOp_serial_num = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSync_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSync_req = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaSync_version = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level = -1;
-static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req = -1;
-static gint hf_drsuapi_drsuapi_DsSiteCostInfo_error_code = -1;
-static gint hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost = -1;
-static gint hf_drsuapi_drsuapi_DsUnbind_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1 = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1 = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_req = -1;
-static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_res = -1;
-static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_address = -1;
-static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_next = -1;
-static gint hf_drsuapi_drsuapi_NameResOp_V1_name_res = -1;
-static gint hf_drsuapi_drsuapi_NameResOp_V1_next_rdn = -1;
-static gint hf_drsuapi_drsuapi_NameResOp_V1_unused_pad = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1 = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1 = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCost_ctr = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCost_level = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCost_level_out = -1;
-static gint hf_drsuapi_drsuapi_QuerySitesByCost_req = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_cNgcKey = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_pNgcKey = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_retVal = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKeyReply_V1 = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKeyReqV1_pwszAccount = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKeyReq_V1 = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKey_hDrs = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKey_inVersion = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKey_ngcReply = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKey_ngcReq = -1;
-static gint hf_drsuapi_drsuapi_ReadNgcKey_pOutVersion = -1;
-static gint hf_drsuapi_drsuapi_SecBufferDesc_buff_count = -1;
-static gint hf_drsuapi_drsuapi_SecBufferDesc_buffers = -1;
-static gint hf_drsuapi_drsuapi_SecBufferDesc_version = -1;
-static gint hf_drsuapi_drsuapi_SecBuffer_buf_size = -1;
-static gint hf_drsuapi_drsuapi_SecBuffer_buf_type = -1;
-static gint hf_drsuapi_drsuapi_SecBuffer_buffer = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = -1;
-static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = -1;
-static gint hf_drsuapi_opnum = -1;
-static gint hf_drsuapi_werror = -1;
+static gint hf_drsuapi_drsuapi_DrsMoreOptions_DRSUAPI_DRS_GET_TGT;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP;
+static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS;
+static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS;
+static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_count;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_id;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_objects;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_problem;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_count;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_id;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_objects;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req2;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req3;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type;
+static gint hf_drsuapi_drsuapi_DsAddEntry_bind_handle;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ctr;
+static gint hf_drsuapi_drsuapi_DsAddEntry_level;
+static gint hf_drsuapi_drsuapi_DsAddEntry_level_out;
+static gint hf_drsuapi_drsuapi_DsAddEntry_req;
+static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values;
+static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_values;
+static gint hf_drsuapi_drsuapi_DsAttributeValue___ndr_size;
+static gint hf_drsuapi_drsuapi_DsAttributeValue_blob;
+static gint hf_drsuapi_drsuapi_DsBindInfo24_pid;
+static gint hf_drsuapi_drsuapi_DsBindInfo24_site_guid;
+static gint hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_pid;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_site_guid;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions;
+static gint hf_drsuapi_drsuapi_DsBindInfo32_pid;
+static gint hf_drsuapi_drsuapi_DsBindInfo32_repl_epoch;
+static gint hf_drsuapi_drsuapi_DsBindInfo32_site_guid;
+static gint hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions;
+static gint hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions_ext;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_pid;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_site_guid;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext;
+static gint hf_drsuapi_drsuapi_DsBindInfo52_config_dn_guid;
+static gint hf_drsuapi_drsuapi_DsBindInfo52_pid;
+static gint hf_drsuapi_drsuapi_DsBindInfo52_repl_epoch;
+static gint hf_drsuapi_drsuapi_DsBindInfo52_site_guid;
+static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_capabilities_ext;
+static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions;
+static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions_ext;
+static gint hf_drsuapi_drsuapi_DsBindInfoCtr_info;
+static gint hf_drsuapi_drsuapi_DsBindInfoCtr_length;
+static gint hf_drsuapi_drsuapi_DsBindInfoFallBack_info;
+static gint hf_drsuapi_drsuapi_DsBindInfo_Fallback;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info24;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info28;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info32;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info48;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info52;
+static gint hf_drsuapi_drsuapi_DsBind_bind_guid;
+static gint hf_drsuapi_drsuapi_DsBind_bind_handle;
+static gint hf_drsuapi_drsuapi_DsBind_bind_info;
+static gint hf_drsuapi_drsuapi_DsCrackNames_bind_handle;
+static gint hf_drsuapi_drsuapi_DsCrackNames_ctr;
+static gint hf_drsuapi_drsuapi_DsCrackNames_level;
+static gint hf_drsuapi_drsuapi_DsCrackNames_level_out;
+static gint hf_drsuapi_drsuapi_DsCrackNames_req;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC1_flags;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC1_taskID;
+static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION;
+static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED;
+static gint hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC_level;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC_req;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_account;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6;
+static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array;
+static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_site_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Request_req1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_ctr;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_level;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_level_out;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_req;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_bind_handle;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_ctr;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_level;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_level_out;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_req;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_ctr;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_level;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_level_out;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_req;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req;
+static gint hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE;
+static gint hf_drsuapi_drsuapi_DsNameCtr1_array;
+static gint hf_drsuapi_drsuapi_DsNameCtr1_count;
+static gint hf_drsuapi_drsuapi_DsNameCtr_ctr1;
+static gint hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name;
+static gint hf_drsuapi_drsuapi_DsNameInfo1_result_name;
+static gint hf_drsuapi_drsuapi_DsNameInfo1_status;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_codepage;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_count;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_format_desired;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_format_flags;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_format_offered;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_language;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_names;
+static gint hf_drsuapi_drsuapi_DsNameRequest_req1;
+static gint hf_drsuapi_drsuapi_DsNameString_str;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_attids;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_version;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level_out;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_req;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_res;
+static gint hf_drsuapi_drsuapi_DsReplica06Ctr_array;
+static gint hf_drsuapi_drsuapi_DsReplica06Ctr_count;
+static gint hf_drsuapi_drsuapi_DsReplica06Ctr_reserved;
+static gint hf_drsuapi_drsuapi_DsReplica06_str1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u2;
+static gint hf_drsuapi_drsuapi_DsReplica06_u3;
+static gint hf_drsuapi_drsuapi_DsReplica06_u4;
+static gint hf_drsuapi_drsuapi_DsReplica06_u5;
+static gint hf_drsuapi_drsuapi_DsReplica06_u6;
+static gint hf_drsuapi_drsuapi_DsReplica06_u7;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_options;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_options;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req2;
+static gint hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle;
+static gint hf_drsuapi_drsuapi_DsReplicaAdd_level;
+static gint hf_drsuapi_drsuapi_DsReplicaAdd_req;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version;
+static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes;
+static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes;
+static gint hf_drsuapi_drsuapi_DsReplicaAttribute_attid;
+static gint hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u2;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u3;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u5;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_options;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest_req1;
+static gint hf_drsuapi_drsuapi_DsReplicaDel_bind_handle;
+static gint hf_drsuapi_drsuapi_DsReplicaDel_level;
+static gint hf_drsuapi_drsuapi_DsReplicaDel_req;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_level;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_req;
+static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_clientctx;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors2;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors3;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_neighbours;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_pendingops;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_repsto;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_udv1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_version;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_options;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest_req1;
+static gint hf_drsuapi_drsuapi_DsReplicaMod_bind_handle;
+static gint hf_drsuapi_drsuapi_DsReplicaMod_level;
+static gint hf_drsuapi_drsuapi_DsReplicaMod_req;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid;
+static gint hf_drsuapi_drsuapi_DsReplicaOID_binary_oid;
+static gint hf_drsuapi_drsuapi_DsReplicaOID_length;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_version;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_object;
+static gint hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr;
+static gint hf_drsuapi_drsuapi_DsReplicaObject_flags;
+static gint hf_drsuapi_drsuapi_DsReplicaObject_identifier;
+static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_array;
+static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_count;
+static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_time;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_start;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_type;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_options;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_priority;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_serial_num;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1;
+static gint hf_drsuapi_drsuapi_DsReplicaSync_bind_handle;
+static gint hf_drsuapi_drsuapi_DsReplicaSync_req;
+static gint hf_drsuapi_drsuapi_DsReplicaSync_version;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req;
+static gint hf_drsuapi_drsuapi_DsSiteCostInfo_error_code;
+static gint hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost;
+static gint hf_drsuapi_drsuapi_DsUnbind_bind_handle;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_req;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_res;
+static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_address;
+static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_next;
+static gint hf_drsuapi_drsuapi_NameResOp_V1_name_res;
+static gint hf_drsuapi_drsuapi_NameResOp_V1_next_rdn;
+static gint hf_drsuapi_drsuapi_NameResOp_V1_unused_pad;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_ctr;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_level;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_level_out;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_req;
+static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_cNgcKey;
+static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_pNgcKey;
+static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_retVal;
+static gint hf_drsuapi_drsuapi_ReadNgcKeyReply_V1;
+static gint hf_drsuapi_drsuapi_ReadNgcKeyReqV1_pwszAccount;
+static gint hf_drsuapi_drsuapi_ReadNgcKeyReq_V1;
+static gint hf_drsuapi_drsuapi_ReadNgcKey_hDrs;
+static gint hf_drsuapi_drsuapi_ReadNgcKey_inVersion;
+static gint hf_drsuapi_drsuapi_ReadNgcKey_ngcReply;
+static gint hf_drsuapi_drsuapi_ReadNgcKey_ngcReq;
+static gint hf_drsuapi_drsuapi_ReadNgcKey_pOutVersion;
+static gint hf_drsuapi_drsuapi_SecBufferDesc_buff_count;
+static gint hf_drsuapi_drsuapi_SecBufferDesc_buffers;
+static gint hf_drsuapi_drsuapi_SecBufferDesc_version;
+static gint hf_drsuapi_drsuapi_SecBuffer_buf_size;
+static gint hf_drsuapi_drsuapi_SecBuffer_buf_type;
+static gint hf_drsuapi_drsuapi_SecBuffer_buffer;
+static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM;
+static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2;
+static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS;
+static gint hf_drsuapi_opnum;
+static gint hf_drsuapi_werror;
static gint proto_dcerpc_drsuapi = -1;
/* Version information */
@@ -19133,7 +19133,7 @@ drsuapi_dissect_ReadNgcKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_inf
}
-static dcerpc_sub_dissector drsuapi_dissectors[] = {
+static const dcerpc_sub_dissector drsuapi_dissectors[] = {
{ 0, "DsBind",
drsuapi_dissect_DsBind_request, drsuapi_dissect_DsBind_response},
{ 1, "DsUnbind",
diff --git a/epan/dissectors/packet-dcerpc-dssetup.c b/epan/dissectors/packet-dcerpc-dssetup.c
index e56fef59cb..025d567719 100644
--- a/epan/dissectors/packet-dcerpc-dssetup.c
+++ b/epan/dissectors/packet-dcerpc-dssetup.c
@@ -22,35 +22,35 @@ void proto_register_dcerpc_dssetup(void);
void proto_reg_handoff_dcerpc_dssetup(void);
/* Ett declarations */
-static gint ett_dcerpc_dssetup = -1;
-static gint ett_dssetup_dssetup_DsRoleFlags = -1;
-static gint ett_dssetup_dssetup_DsRolePrimaryDomInfoBasic = -1;
-static gint ett_dssetup_dssetup_DsRoleUpgradeStatus = -1;
-static gint ett_dssetup_dssetup_DsRoleOpStatus = -1;
-static gint ett_dssetup_dssetup_DsRoleInfo = -1;
+static gint ett_dcerpc_dssetup;
+static gint ett_dssetup_dssetup_DsRoleFlags;
+static gint ett_dssetup_dssetup_DsRolePrimaryDomInfoBasic;
+static gint ett_dssetup_dssetup_DsRoleUpgradeStatus;
+static gint ett_dssetup_dssetup_DsRoleOpStatus;
+static gint ett_dssetup_dssetup_DsRoleInfo;
/* Header field declarations */
-static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT = -1;
-static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE = -1;
-static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING = -1;
-static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS = -1;
-static gint hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info = -1;
-static gint hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_level = -1;
-static gint hf_dssetup_dssetup_DsRoleInfo_basic = -1;
-static gint hf_dssetup_dssetup_DsRoleInfo_opstatus = -1;
-static gint hf_dssetup_dssetup_DsRoleInfo_upgrade = -1;
-static gint hf_dssetup_dssetup_DsRoleOpStatus_status = -1;
-static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain = -1;
-static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain = -1;
-static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid = -1;
-static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_flags = -1;
-static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest = -1;
-static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_role = -1;
-static gint hf_dssetup_dssetup_DsRoleUpgradeStatus_previous_role = -1;
-static gint hf_dssetup_dssetup_DsRoleUpgradeStatus_upgrading = -1;
-static gint hf_dssetup_opnum = -1;
-static gint hf_dssetup_werror = -1;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS;
+static gint hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info;
+static gint hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_level;
+static gint hf_dssetup_dssetup_DsRoleInfo_basic;
+static gint hf_dssetup_dssetup_DsRoleInfo_opstatus;
+static gint hf_dssetup_dssetup_DsRoleInfo_upgrade;
+static gint hf_dssetup_dssetup_DsRoleOpStatus_status;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_flags;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_role;
+static gint hf_dssetup_dssetup_DsRoleUpgradeStatus_previous_role;
+static gint hf_dssetup_dssetup_DsRoleUpgradeStatus_upgrading;
+static gint hf_dssetup_opnum;
+static gint hf_dssetup_werror;
static gint proto_dcerpc_dssetup = -1;
/* Version information */
@@ -870,7 +870,7 @@ dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_request(tvbuff_t *tvb _U_, int
}
-static dcerpc_sub_dissector dssetup_dissectors[] = {
+static const dcerpc_sub_dissector dssetup_dissectors[] = {
{ 0, "DsRoleGetPrimaryDomainInformation",
dssetup_dissect_DsRoleGetPrimaryDomainInformation_request, dssetup_dissect_DsRoleGetPrimaryDomainInformation_response},
{ 1, "DsRoleDnsNameToFlatName",
diff --git a/epan/dissectors/packet-dcerpc-dtsprovider.c b/epan/dissectors/packet-dcerpc-dtsprovider.c
index efbff53243..93aeff8c31 100644
--- a/epan/dissectors/packet-dcerpc-dtsprovider.c
+++ b/epan/dissectors/packet-dcerpc-dtsprovider.c
@@ -32,7 +32,7 @@ static e_guid_t uuid_dtsprovider = { 0xbfca1238, 0x628a, 0x11c9, { 0xa0, 0x73, 0
static guint16 ver_dtsprovider = 1;
-static dcerpc_sub_dissector dtsprovider_dissectors[] = {
+static const dcerpc_sub_dissector dtsprovider_dissectors[] = {
{ 0, "ContactProvider", NULL, NULL},
{ 1, "ServerRequestProviderTime", NULL, NULL},
{ 0, NULL, NULL, NULL }
diff --git a/epan/dissectors/packet-dcerpc-dtsstime_req.c b/epan/dissectors/packet-dcerpc-dtsstime_req.c
index 34db6506d3..6003c75bdc 100644
--- a/epan/dissectors/packet-dcerpc-dtsstime_req.c
+++ b/epan/dissectors/packet-dcerpc-dtsstime_req.c
@@ -31,7 +31,7 @@ static e_guid_t uuid_dtsstime_req = { 0x019ee420, 0x682d, 0x11c9, { 0xa6, 0x07,
static guint16 ver_dtsstime_req = 1;
-static dcerpc_sub_dissector dtsstime_req_dissectors[] = {
+static const dcerpc_sub_dissector dtsstime_req_dissectors[] = {
{ 0, "ClerkRequestTime", NULL, NULL},
{ 1, "ServerRequestTime", NULL, NULL},
{ 0, NULL, NULL, NULL }
diff --git a/epan/dissectors/packet-dcerpc-efs.c b/epan/dissectors/packet-dcerpc-efs.c
index c6e12d28bd..759818737a 100644
--- a/epan/dissectors/packet-dcerpc-efs.c
+++ b/epan/dissectors/packet-dcerpc-efs.c
@@ -22,47 +22,47 @@ void proto_register_dcerpc_efs(void);
void proto_reg_handoff_dcerpc_efs(void);
/* Ett declarations */
-static gint ett_dcerpc_efs = -1;
-static gint ett_efs_EFS_HASH_BLOB = -1;
-static gint ett_efs_ENCRYPTION_CERTIFICATE_HASH = -1;
-static gint ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST = -1;
-static gint ett_efs_EFS_CERTIFICATE_BLOB = -1;
-static gint ett_efs_ENCRYPTION_CERTIFICATE = -1;
+static gint ett_dcerpc_efs;
+static gint ett_efs_EFS_HASH_BLOB;
+static gint ett_efs_ENCRYPTION_CERTIFICATE_HASH;
+static gint ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST;
+static gint ett_efs_EFS_CERTIFICATE_BLOB;
+static gint ett_efs_ENCRYPTION_CERTIFICATE;
/* Header field declarations */
-static gint hf_efs_EFS_CERTIFICATE_BLOB_cbData = -1;
-static gint hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType = -1;
-static gint hf_efs_EFS_CERTIFICATE_BLOB_pbData = -1;
-static gint hf_efs_EFS_HASH_BLOB_cbData = -1;
-static gint hf_efs_EFS_HASH_BLOB_pbData = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_TotalLength = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_pUserSid = -1;
-static gint hf_efs_EfsRpcAddUsersToFile_FileName = -1;
-static gint hf_efs_EfsRpcCloseRaw_pvContext = -1;
-static gint hf_efs_EfsRpcDecryptFileSrv_FileName = -1;
-static gint hf_efs_EfsRpcDecryptFileSrv_Reserved = -1;
-static gint hf_efs_EfsRpcEncryptFileSrv_Filename = -1;
-static gint hf_efs_EfsRpcOpenFileRaw_FileName = -1;
-static gint hf_efs_EfsRpcOpenFileRaw_Flags = -1;
-static gint hf_efs_EfsRpcOpenFileRaw_pvContext = -1;
-static gint hf_efs_EfsRpcQueryRecoveryAgents_FileName = -1;
-static gint hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents = -1;
-static gint hf_efs_EfsRpcQueryUsersOnFile_FileName = -1;
-static gint hf_efs_EfsRpcQueryUsersOnFile_pUsers = -1;
-static gint hf_efs_EfsRpcReadFileRaw_pvContext = -1;
-static gint hf_efs_EfsRpcRemoveUsersFromFile_FileName = -1;
-static gint hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate = -1;
-static gint hf_efs_EfsRpcWriteFileRaw_pvContext = -1;
-static gint hf_efs_opnum = -1;
-static gint hf_efs_werror = -1;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_cbData;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_pbData;
+static gint hf_efs_EFS_HASH_BLOB_cbData;
+static gint hf_efs_EFS_HASH_BLOB_pbData;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_TotalLength;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_pUserSid;
+static gint hf_efs_EfsRpcAddUsersToFile_FileName;
+static gint hf_efs_EfsRpcCloseRaw_pvContext;
+static gint hf_efs_EfsRpcDecryptFileSrv_FileName;
+static gint hf_efs_EfsRpcDecryptFileSrv_Reserved;
+static gint hf_efs_EfsRpcEncryptFileSrv_Filename;
+static gint hf_efs_EfsRpcOpenFileRaw_FileName;
+static gint hf_efs_EfsRpcOpenFileRaw_Flags;
+static gint hf_efs_EfsRpcOpenFileRaw_pvContext;
+static gint hf_efs_EfsRpcQueryRecoveryAgents_FileName;
+static gint hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents;
+static gint hf_efs_EfsRpcQueryUsersOnFile_FileName;
+static gint hf_efs_EfsRpcQueryUsersOnFile_pUsers;
+static gint hf_efs_EfsRpcReadFileRaw_pvContext;
+static gint hf_efs_EfsRpcRemoveUsersFromFile_FileName;
+static gint hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate;
+static gint hf_efs_EfsRpcWriteFileRaw_pvContext;
+static gint hf_efs_opnum;
+static gint hf_efs_werror;
static gint proto_dcerpc_efs = -1;
/* Version information */
@@ -1143,7 +1143,7 @@ efs_dissect_EfsRpcDuplicateEncryptionInfoFile_request(tvbuff_t *tvb _U_, int off
}
-static dcerpc_sub_dissector efs_dissectors[] = {
+static const dcerpc_sub_dissector efs_dissectors[] = {
{ 0, "EfsRpcOpenFileRaw",
efs_dissect_EfsRpcOpenFileRaw_request, efs_dissect_EfsRpcOpenFileRaw_response},
{ 1, "EfsRpcReadFileRaw",
diff --git a/epan/dissectors/packet-dcerpc-epm.c b/epan/dissectors/packet-dcerpc-epm.c
index adeb938daa..7e0e520ab5 100644
--- a/epan/dissectors/packet-dcerpc-epm.c
+++ b/epan/dissectors/packet-dcerpc-epm.c
@@ -651,7 +651,7 @@ epm_dissect_ept_lookup_handle_free_resp (tvbuff_t *tvb, int offset,
}
-static dcerpc_sub_dissector epm_dissectors[] = {
+static const dcerpc_sub_dissector epm_dissectors[] = {
{ 0, "Insert",
epm_dissect_ept_insert_rqst,
epm_dissect_ept_insert_resp },
diff --git a/epan/dissectors/packet-dcerpc-eventlog.c b/epan/dissectors/packet-dcerpc-eventlog.c
index 8342ae7874..f3c1ab0299 100644
--- a/epan/dissectors/packet-dcerpc-eventlog.c
+++ b/epan/dissectors/packet-dcerpc-eventlog.c
@@ -22,106 +22,106 @@ void proto_register_dcerpc_eventlog(void);
void proto_reg_handoff_dcerpc_eventlog(void);
/* Ett declarations */
-static gint ett_dcerpc_eventlog = -1;
-static gint ett_eventlog_eventlogReadFlags = -1;
-static gint ett_eventlog_eventlogEventTypes = -1;
-static gint ett_eventlog_eventlog_OpenUnknown0 = -1;
-static gint ett_eventlog_eventlog_Record = -1;
-static gint ett_eventlog_eventlog_ChangeUnknown0 = -1;
+static gint ett_dcerpc_eventlog;
+static gint ett_eventlog_eventlogReadFlags;
+static gint ett_eventlog_eventlogEventTypes;
+static gint ett_eventlog_eventlog_OpenUnknown0;
+static gint ett_eventlog_eventlog_Record;
+static gint ett_eventlog_eventlog_ChangeUnknown0;
/* Header field declarations */
-static gint hf_eventlog_Record = -1;
-static gint hf_eventlog_Record_computer_name = -1;
-static gint hf_eventlog_Record_length = -1;
-static gint hf_eventlog_Record_source_name = -1;
-static gint hf_eventlog_Record_string = -1;
-static gint hf_eventlog_eventlogEventTypes_EVENTLOG_AUDIT_FAILURE = -1;
-static gint hf_eventlog_eventlogEventTypes_EVENTLOG_AUDIT_SUCCESS = -1;
-static gint hf_eventlog_eventlogEventTypes_EVENTLOG_ERROR_TYPE = -1;
-static gint hf_eventlog_eventlogEventTypes_EVENTLOG_INFORMATION_TYPE = -1;
-static gint hf_eventlog_eventlogEventTypes_EVENTLOG_WARNING_TYPE = -1;
-static gint hf_eventlog_eventlogReadFlags_EVENTLOG_BACKWARDS_READ = -1;
-static gint hf_eventlog_eventlogReadFlags_EVENTLOG_FORWARDS_READ = -1;
-static gint hf_eventlog_eventlogReadFlags_EVENTLOG_SEEK_READ = -1;
-static gint hf_eventlog_eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ = -1;
-static gint hf_eventlog_eventlog_BackupEventLogW_backupfilename = -1;
-static gint hf_eventlog_eventlog_BackupEventLogW_handle = -1;
-static gint hf_eventlog_eventlog_ChangeNotify_handle = -1;
-static gint hf_eventlog_eventlog_ChangeNotify_unknown2 = -1;
-static gint hf_eventlog_eventlog_ChangeNotify_unknown3 = -1;
-static gint hf_eventlog_eventlog_ChangeUnknown0_unknown0 = -1;
-static gint hf_eventlog_eventlog_ChangeUnknown0_unknown1 = -1;
-static gint hf_eventlog_eventlog_ClearEventLogW_backupfilename = -1;
-static gint hf_eventlog_eventlog_ClearEventLogW_handle = -1;
-static gint hf_eventlog_eventlog_CloseEventLog_handle = -1;
-static gint hf_eventlog_eventlog_DeregisterEventSource_handle = -1;
-static gint hf_eventlog_eventlog_FlushEventLog_handle = -1;
-static gint hf_eventlog_eventlog_GetLogIntormation_cbBufSize = -1;
-static gint hf_eventlog_eventlog_GetLogIntormation_cbBytesNeeded = -1;
-static gint hf_eventlog_eventlog_GetLogIntormation_dwInfoLevel = -1;
-static gint hf_eventlog_eventlog_GetLogIntormation_handle = -1;
-static gint hf_eventlog_eventlog_GetLogIntormation_lpBuffer = -1;
-static gint hf_eventlog_eventlog_GetNumRecords_handle = -1;
-static gint hf_eventlog_eventlog_GetNumRecords_number = -1;
-static gint hf_eventlog_eventlog_GetOldestRecord_handle = -1;
-static gint hf_eventlog_eventlog_GetOldestRecord_oldest = -1;
-static gint hf_eventlog_eventlog_OpenBackupEventLogW_handle = -1;
-static gint hf_eventlog_eventlog_OpenBackupEventLogW_logname = -1;
-static gint hf_eventlog_eventlog_OpenBackupEventLogW_unknown0 = -1;
-static gint hf_eventlog_eventlog_OpenBackupEventLogW_unknown2 = -1;
-static gint hf_eventlog_eventlog_OpenBackupEventLogW_unknown3 = -1;
-static gint hf_eventlog_eventlog_OpenEventLogW_MajorVersion = -1;
-static gint hf_eventlog_eventlog_OpenEventLogW_MinorVersion = -1;
-static gint hf_eventlog_eventlog_OpenEventLogW_Module = -1;
-static gint hf_eventlog_eventlog_OpenEventLogW_RegModuleName = -1;
-static gint hf_eventlog_eventlog_OpenEventLogW_handle = -1;
-static gint hf_eventlog_eventlog_OpenEventLogW_unknown0 = -1;
-static gint hf_eventlog_eventlog_OpenUnknown0_unknown0 = -1;
-static gint hf_eventlog_eventlog_OpenUnknown0_unknown1 = -1;
-static gint hf_eventlog_eventlog_ReadEventLogW_data = -1;
-static gint hf_eventlog_eventlog_ReadEventLogW_flags = -1;
-static gint hf_eventlog_eventlog_ReadEventLogW_handle = -1;
-static gint hf_eventlog_eventlog_ReadEventLogW_number_of_bytes = -1;
-static gint hf_eventlog_eventlog_ReadEventLogW_offset = -1;
-static gint hf_eventlog_eventlog_ReadEventLogW_real_size = -1;
-static gint hf_eventlog_eventlog_ReadEventLogW_sent_size = -1;
-static gint hf_eventlog_eventlog_Record_closing_record_number = -1;
-static gint hf_eventlog_eventlog_Record_computer_name = -1;
-static gint hf_eventlog_eventlog_Record_data_length = -1;
-static gint hf_eventlog_eventlog_Record_data_offset = -1;
-static gint hf_eventlog_eventlog_Record_event_category = -1;
-static gint hf_eventlog_eventlog_Record_event_id = -1;
-static gint hf_eventlog_eventlog_Record_event_type = -1;
-static gint hf_eventlog_eventlog_Record_num_of_strings = -1;
-static gint hf_eventlog_eventlog_Record_raw_data = -1;
-static gint hf_eventlog_eventlog_Record_record_number = -1;
-static gint hf_eventlog_eventlog_Record_reserved = -1;
-static gint hf_eventlog_eventlog_Record_reserved_flags = -1;
-static gint hf_eventlog_eventlog_Record_sid_length = -1;
-static gint hf_eventlog_eventlog_Record_sid_offset = -1;
-static gint hf_eventlog_eventlog_Record_size = -1;
-static gint hf_eventlog_eventlog_Record_source_name = -1;
-static gint hf_eventlog_eventlog_Record_stringoffset = -1;
-static gint hf_eventlog_eventlog_Record_strings = -1;
-static gint hf_eventlog_eventlog_Record_time_generated = -1;
-static gint hf_eventlog_eventlog_Record_time_written = -1;
-static gint hf_eventlog_eventlog_RegisterEventSourceW_handle = -1;
-static gint hf_eventlog_eventlog_RegisterEventSourceW_logname = -1;
-static gint hf_eventlog_eventlog_RegisterEventSourceW_servername = -1;
-static gint hf_eventlog_eventlog_RegisterEventSourceW_unknown0 = -1;
-static gint hf_eventlog_eventlog_RegisterEventSourceW_unknown2 = -1;
-static gint hf_eventlog_eventlog_RegisterEventSourceW_unknown3 = -1;
-static gint hf_eventlog_eventlog_ReportEventW_Type = -1;
-static gint hf_eventlog_eventlog_ReportEventW_computer_name = -1;
-static gint hf_eventlog_eventlog_ReportEventW_data_length = -1;
-static gint hf_eventlog_eventlog_ReportEventW_event_category = -1;
-static gint hf_eventlog_eventlog_ReportEventW_event_id = -1;
-static gint hf_eventlog_eventlog_ReportEventW_handle = -1;
-static gint hf_eventlog_eventlog_ReportEventW_num_of_strings = -1;
-static gint hf_eventlog_eventlog_ReportEventW_time = -1;
-static gint hf_eventlog_opnum = -1;
-static gint hf_eventlog_status = -1;
+static gint hf_eventlog_Record;
+static gint hf_eventlog_Record_computer_name;
+static gint hf_eventlog_Record_length;
+static gint hf_eventlog_Record_source_name;
+static gint hf_eventlog_Record_string;
+static gint hf_eventlog_eventlogEventTypes_EVENTLOG_AUDIT_FAILURE;
+static gint hf_eventlog_eventlogEventTypes_EVENTLOG_AUDIT_SUCCESS;
+static gint hf_eventlog_eventlogEventTypes_EVENTLOG_ERROR_TYPE;
+static gint hf_eventlog_eventlogEventTypes_EVENTLOG_INFORMATION_TYPE;
+static gint hf_eventlog_eventlogEventTypes_EVENTLOG_WARNING_TYPE;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_BACKWARDS_READ;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_FORWARDS_READ;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_SEEK_READ;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ;
+static gint hf_eventlog_eventlog_BackupEventLogW_backupfilename;
+static gint hf_eventlog_eventlog_BackupEventLogW_handle;
+static gint hf_eventlog_eventlog_ChangeNotify_handle;
+static gint hf_eventlog_eventlog_ChangeNotify_unknown2;
+static gint hf_eventlog_eventlog_ChangeNotify_unknown3;
+static gint hf_eventlog_eventlog_ChangeUnknown0_unknown0;
+static gint hf_eventlog_eventlog_ChangeUnknown0_unknown1;
+static gint hf_eventlog_eventlog_ClearEventLogW_backupfilename;
+static gint hf_eventlog_eventlog_ClearEventLogW_handle;
+static gint hf_eventlog_eventlog_CloseEventLog_handle;
+static gint hf_eventlog_eventlog_DeregisterEventSource_handle;
+static gint hf_eventlog_eventlog_FlushEventLog_handle;
+static gint hf_eventlog_eventlog_GetLogInformation_cbBufSize;
+static gint hf_eventlog_eventlog_GetLogInformation_cbBytesNeeded;
+static gint hf_eventlog_eventlog_GetLogInformation_dwInfoLevel;
+static gint hf_eventlog_eventlog_GetLogInformation_handle;
+static gint hf_eventlog_eventlog_GetLogInformation_lpBuffer;
+static gint hf_eventlog_eventlog_GetNumRecords_handle;
+static gint hf_eventlog_eventlog_GetNumRecords_number;
+static gint hf_eventlog_eventlog_GetOldestRecord_handle;
+static gint hf_eventlog_eventlog_GetOldestRecord_oldest;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_handle;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_logname;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_unknown0;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_unknown2;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_unknown3;
+static gint hf_eventlog_eventlog_OpenEventLogW_MajorVersion;
+static gint hf_eventlog_eventlog_OpenEventLogW_MinorVersion;
+static gint hf_eventlog_eventlog_OpenEventLogW_Module;
+static gint hf_eventlog_eventlog_OpenEventLogW_RegModuleName;
+static gint hf_eventlog_eventlog_OpenEventLogW_handle;
+static gint hf_eventlog_eventlog_OpenEventLogW_unknown0;
+static gint hf_eventlog_eventlog_OpenUnknown0_unknown0;
+static gint hf_eventlog_eventlog_OpenUnknown0_unknown1;
+static gint hf_eventlog_eventlog_ReadEventLogW_data;
+static gint hf_eventlog_eventlog_ReadEventLogW_flags;
+static gint hf_eventlog_eventlog_ReadEventLogW_handle;
+static gint hf_eventlog_eventlog_ReadEventLogW_number_of_bytes;
+static gint hf_eventlog_eventlog_ReadEventLogW_offset;
+static gint hf_eventlog_eventlog_ReadEventLogW_real_size;
+static gint hf_eventlog_eventlog_ReadEventLogW_sent_size;
+static gint hf_eventlog_eventlog_Record_closing_record_number;
+static gint hf_eventlog_eventlog_Record_computer_name;
+static gint hf_eventlog_eventlog_Record_data_length;
+static gint hf_eventlog_eventlog_Record_data_offset;
+static gint hf_eventlog_eventlog_Record_event_category;
+static gint hf_eventlog_eventlog_Record_event_id;
+static gint hf_eventlog_eventlog_Record_event_type;
+static gint hf_eventlog_eventlog_Record_num_of_strings;
+static gint hf_eventlog_eventlog_Record_raw_data;
+static gint hf_eventlog_eventlog_Record_record_number;
+static gint hf_eventlog_eventlog_Record_reserved;
+static gint hf_eventlog_eventlog_Record_reserved_flags;
+static gint hf_eventlog_eventlog_Record_sid_length;
+static gint hf_eventlog_eventlog_Record_sid_offset;
+static gint hf_eventlog_eventlog_Record_size;
+static gint hf_eventlog_eventlog_Record_source_name;
+static gint hf_eventlog_eventlog_Record_stringoffset;
+static gint hf_eventlog_eventlog_Record_strings;
+static gint hf_eventlog_eventlog_Record_time_generated;
+static gint hf_eventlog_eventlog_Record_time_written;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_handle;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_logname;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_servername;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_unknown0;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_unknown2;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_unknown3;
+static gint hf_eventlog_eventlog_ReportEventW_Type;
+static gint hf_eventlog_eventlog_ReportEventW_computer_name;
+static gint hf_eventlog_eventlog_ReportEventW_data_length;
+static gint hf_eventlog_eventlog_ReportEventW_event_category;
+static gint hf_eventlog_eventlog_ReportEventW_event_id;
+static gint hf_eventlog_eventlog_ReportEventW_handle;
+static gint hf_eventlog_eventlog_ReportEventW_num_of_strings;
+static gint hf_eventlog_eventlog_ReportEventW_time;
+static gint hf_eventlog_opnum;
+static gint hf_eventlog_status;
static gint proto_dcerpc_eventlog = -1;
/* Version information */
@@ -261,14 +261,14 @@ static int eventlog_dissect_element_ReportEventW_event_id(tvbuff_t *tvb _U_, int
static int eventlog_dissect_element_ReportEventW_num_of_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int eventlog_dissect_element_ReportEventW_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int eventlog_dissect_element_ReportEventW_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_dwInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_lpBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_lpBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_cbBufSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_cbBytesNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogIntormation_cbBytesNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_dwInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_lpBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_lpBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_cbBufSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_cbBytesNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_cbBytesNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int eventlog_dissect_element_FlushEventLog_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int eventlog_dissect_element_FlushEventLog_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int
@@ -366,10 +366,10 @@ eventlog_dissect_element_Record_strings(tvbuff_t *tvb, int offset, packet_info *
/* IDL: bitmap { */
-/* IDL: EVENTLOG_SEQUENTIAL_READ = 0x0001 , */
-/* IDL: EVENTLOG_SEEK_READ = 0x0002 , */
-/* IDL: EVENTLOG_FORWARDS_READ = 0x0004 , */
-/* IDL: EVENTLOG_BACKWARDS_READ = 0x0008 , */
+/* IDL: EVENTLOG_SEQUENTIAL_READ = 0x00000001 , */
+/* IDL: EVENTLOG_SEEK_READ = 0x00000002 , */
+/* IDL: EVENTLOG_FORWARDS_READ = 0x00000004 , */
+/* IDL: EVENTLOG_BACKWARDS_READ = 0x00000008 , */
/* IDL: } */
int
@@ -404,12 +404,12 @@ eventlog_dissect_bitmap_eventlogReadFlags(tvbuff_t *tvb _U_, int offset _U_, pac
/* IDL: bitmap { */
-/* IDL: EVENTLOG_SUCCESS = 0x0000 , */
-/* IDL: EVENTLOG_ERROR_TYPE = 0x0001 , */
-/* IDL: EVENTLOG_WARNING_TYPE = 0x0002 , */
-/* IDL: EVENTLOG_INFORMATION_TYPE = 0x0004 , */
-/* IDL: EVENTLOG_AUDIT_SUCCESS = 0x0008 , */
-/* IDL: EVENTLOG_AUDIT_FAILURE = 0x0010 , */
+/* IDL: EVENTLOG_SUCCESS = 0x00000000 , */
+/* IDL: EVENTLOG_ERROR_TYPE = 0x00000001 , */
+/* IDL: EVENTLOG_WARNING_TYPE = 0x00000002 , */
+/* IDL: EVENTLOG_INFORMATION_TYPE = 0x00000004 , */
+/* IDL: EVENTLOG_AUDIT_SUCCESS = 0x00000008 , */
+/* IDL: EVENTLOG_AUDIT_FAILURE = 0x00000010 , */
/* IDL: } */
int
@@ -1968,70 +1968,70 @@ eventlog_dissect_WriteClusterEvents_request(tvbuff_t *tvb _U_, int offset _U_, p
}
static int
-eventlog_dissect_element_GetLogIntormation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, eventlog_dissect_element_GetLogIntormation_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_GetLogIntormation_handle);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, eventlog_dissect_element_GetLogInformation_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_GetLogInformation_handle);
return offset;
}
static int
-eventlog_dissect_element_GetLogIntormation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogIntormation_handle, 0);
+ offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogInformation_handle, 0);
return offset;
}
static int
-eventlog_dissect_element_GetLogIntormation_dwInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_dwInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogIntormation_dwInfoLevel, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogInformation_dwInfoLevel, 0);
return offset;
}
static int
-eventlog_dissect_element_GetLogIntormation_lpBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_lpBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, eventlog_dissect_element_GetLogIntormation_lpBuffer_);
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, eventlog_dissect_element_GetLogInformation_lpBuffer_);
return offset;
}
static int
-eventlog_dissect_element_GetLogIntormation_lpBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_lpBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogIntormation_lpBuffer, 0);
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogInformation_lpBuffer, 0);
return offset;
}
static int
-eventlog_dissect_element_GetLogIntormation_cbBufSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_cbBufSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogIntormation_cbBufSize, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogInformation_cbBufSize, 0);
return offset;
}
static int
-eventlog_dissect_element_GetLogIntormation_cbBytesNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_cbBytesNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, eventlog_dissect_element_GetLogIntormation_cbBytesNeeded_, NDR_POINTER_REF, "Pointer to CbBytesNeeded (int32)",hf_eventlog_eventlog_GetLogIntormation_cbBytesNeeded);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, eventlog_dissect_element_GetLogInformation_cbBytesNeeded_, NDR_POINTER_REF, "Pointer to CbBytesNeeded (int32)",hf_eventlog_eventlog_GetLogInformation_cbBytesNeeded);
return offset;
}
static int
-eventlog_dissect_element_GetLogIntormation_cbBytesNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_cbBytesNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogIntormation_cbBytesNeeded, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_eventlog_eventlog_GetLogInformation_cbBytesNeeded, 0);
return offset;
}
-/* IDL: NTSTATUS eventlog_GetLogIntormation( */
+/* IDL: NTSTATUS eventlog_GetLogInformation( */
/* IDL: [in] [ref] policy_handle *handle, */
/* IDL: [in] uint32 dwInfoLevel, */
/* IDL: [out] [size_is(cbBufSize)] uint8 lpBuffer[*], */
@@ -2040,15 +2040,15 @@ eventlog_dissect_element_GetLogIntormation_cbBytesNeeded_(tvbuff_t *tvb _U_, int
/* IDL: ); */
static int
-eventlog_dissect_GetLogIntormation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_GetLogInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
guint32 status;
- di->dcerpc_procedure_name="GetLogIntormation";
- offset = eventlog_dissect_element_GetLogIntormation_lpBuffer(tvb, offset, pinfo, tree, di, drep);
+ di->dcerpc_procedure_name="GetLogInformation";
+ offset = eventlog_dissect_element_GetLogInformation_lpBuffer(tvb, offset, pinfo, tree, di, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
- offset = eventlog_dissect_element_GetLogIntormation_cbBytesNeeded(tvb, offset, pinfo, tree, di, drep);
+ offset = eventlog_dissect_element_GetLogInformation_cbBytesNeeded(tvb, offset, pinfo, tree, di, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep, hf_eventlog_status, &status);
@@ -2060,14 +2060,14 @@ eventlog_dissect_GetLogIntormation_response(tvbuff_t *tvb _U_, int offset _U_, p
}
static int
-eventlog_dissect_GetLogIntormation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+eventlog_dissect_GetLogInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- di->dcerpc_procedure_name="GetLogIntormation";
- offset = eventlog_dissect_element_GetLogIntormation_handle(tvb, offset, pinfo, tree, di, drep);
+ di->dcerpc_procedure_name="GetLogInformation";
+ offset = eventlog_dissect_element_GetLogInformation_handle(tvb, offset, pinfo, tree, di, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
- offset = eventlog_dissect_element_GetLogIntormation_dwInfoLevel(tvb, offset, pinfo, tree, di, drep);
+ offset = eventlog_dissect_element_GetLogInformation_dwInfoLevel(tvb, offset, pinfo, tree, di, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
- offset = eventlog_dissect_element_GetLogIntormation_cbBufSize(tvb, offset, pinfo, tree, di, drep);
+ offset = eventlog_dissect_element_GetLogInformation_cbBufSize(tvb, offset, pinfo, tree, di, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
return offset;
}
@@ -2116,7 +2116,7 @@ eventlog_dissect_FlushEventLog_request(tvbuff_t *tvb _U_, int offset _U_, packet
}
-static dcerpc_sub_dissector eventlog_dissectors[] = {
+static const dcerpc_sub_dissector eventlog_dissectors[] = {
{ 0, "ClearEventLogW",
eventlog_dissect_ClearEventLogW_request, eventlog_dissect_ClearEventLogW_response},
{ 1, "BackupEventLogW",
@@ -2161,8 +2161,8 @@ static dcerpc_sub_dissector eventlog_dissectors[] = {
eventlog_dissect_DeregisterClusterSvc_request, eventlog_dissect_DeregisterClusterSvc_response},
{ 21, "WriteClusterEvents",
eventlog_dissect_WriteClusterEvents_request, eventlog_dissect_WriteClusterEvents_response},
- { 22, "GetLogIntormation",
- eventlog_dissect_GetLogIntormation_request, eventlog_dissect_GetLogIntormation_response},
+ { 22, "GetLogInformation",
+ eventlog_dissect_GetLogInformation_request, eventlog_dissect_GetLogInformation_response},
{ 23, "FlushEventLog",
eventlog_dissect_FlushEventLog_request, eventlog_dissect_FlushEventLog_response},
{ 0, NULL, NULL, NULL }
@@ -2182,23 +2182,23 @@ void proto_register_dcerpc_eventlog(void)
{ &hf_eventlog_Record_string,
{ "string", "eventlog.Record.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlogEventTypes_EVENTLOG_AUDIT_FAILURE,
- { "EVENTLOG AUDIT FAILURE", "eventlog.eventlogEventTypes.EVENTLOG_AUDIT_FAILURE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_AUDIT_FAILURE_tfs), ( 0x0010 ), NULL, HFILL }},
+ { "EVENTLOG AUDIT FAILURE", "eventlog.eventlogEventTypes.EVENTLOG_AUDIT_FAILURE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_AUDIT_FAILURE_tfs), ( 0x00000010 ), NULL, HFILL }},
{ &hf_eventlog_eventlogEventTypes_EVENTLOG_AUDIT_SUCCESS,
- { "EVENTLOG AUDIT SUCCESS", "eventlog.eventlogEventTypes.EVENTLOG_AUDIT_SUCCESS", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_AUDIT_SUCCESS_tfs), ( 0x0008 ), NULL, HFILL }},
+ { "EVENTLOG AUDIT SUCCESS", "eventlog.eventlogEventTypes.EVENTLOG_AUDIT_SUCCESS", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_AUDIT_SUCCESS_tfs), ( 0x00000008 ), NULL, HFILL }},
{ &hf_eventlog_eventlogEventTypes_EVENTLOG_ERROR_TYPE,
- { "EVENTLOG ERROR TYPE", "eventlog.eventlogEventTypes.EVENTLOG_ERROR_TYPE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_ERROR_TYPE_tfs), ( 0x0001 ), NULL, HFILL }},
+ { "EVENTLOG ERROR TYPE", "eventlog.eventlogEventTypes.EVENTLOG_ERROR_TYPE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_ERROR_TYPE_tfs), ( 0x00000001 ), NULL, HFILL }},
{ &hf_eventlog_eventlogEventTypes_EVENTLOG_INFORMATION_TYPE,
- { "EVENTLOG INFORMATION TYPE", "eventlog.eventlogEventTypes.EVENTLOG_INFORMATION_TYPE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_INFORMATION_TYPE_tfs), ( 0x0004 ), NULL, HFILL }},
+ { "EVENTLOG INFORMATION TYPE", "eventlog.eventlogEventTypes.EVENTLOG_INFORMATION_TYPE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_INFORMATION_TYPE_tfs), ( 0x00000004 ), NULL, HFILL }},
{ &hf_eventlog_eventlogEventTypes_EVENTLOG_WARNING_TYPE,
- { "EVENTLOG WARNING TYPE", "eventlog.eventlogEventTypes.EVENTLOG_WARNING_TYPE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_WARNING_TYPE_tfs), ( 0x0002 ), NULL, HFILL }},
+ { "EVENTLOG WARNING TYPE", "eventlog.eventlogEventTypes.EVENTLOG_WARNING_TYPE", FT_BOOLEAN, 32, TFS(&eventlogEventTypes_EVENTLOG_WARNING_TYPE_tfs), ( 0x00000002 ), NULL, HFILL }},
{ &hf_eventlog_eventlogReadFlags_EVENTLOG_BACKWARDS_READ,
- { "EVENTLOG BACKWARDS READ", "eventlog.eventlogReadFlags.EVENTLOG_BACKWARDS_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_BACKWARDS_READ_tfs), ( 0x0008 ), NULL, HFILL }},
+ { "EVENTLOG BACKWARDS READ", "eventlog.eventlogReadFlags.EVENTLOG_BACKWARDS_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_BACKWARDS_READ_tfs), ( 0x00000008 ), NULL, HFILL }},
{ &hf_eventlog_eventlogReadFlags_EVENTLOG_FORWARDS_READ,
- { "EVENTLOG FORWARDS READ", "eventlog.eventlogReadFlags.EVENTLOG_FORWARDS_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_FORWARDS_READ_tfs), ( 0x0004 ), NULL, HFILL }},
+ { "EVENTLOG FORWARDS READ", "eventlog.eventlogReadFlags.EVENTLOG_FORWARDS_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_FORWARDS_READ_tfs), ( 0x00000004 ), NULL, HFILL }},
{ &hf_eventlog_eventlogReadFlags_EVENTLOG_SEEK_READ,
- { "EVENTLOG SEEK READ", "eventlog.eventlogReadFlags.EVENTLOG_SEEK_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_SEEK_READ_tfs), ( 0x0002 ), NULL, HFILL }},
+ { "EVENTLOG SEEK READ", "eventlog.eventlogReadFlags.EVENTLOG_SEEK_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_SEEK_READ_tfs), ( 0x00000002 ), NULL, HFILL }},
{ &hf_eventlog_eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ,
- { "EVENTLOG SEQUENTIAL READ", "eventlog.eventlogReadFlags.EVENTLOG_SEQUENTIAL_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ_tfs), ( 0x0001 ), NULL, HFILL }},
+ { "EVENTLOG SEQUENTIAL READ", "eventlog.eventlogReadFlags.EVENTLOG_SEQUENTIAL_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ_tfs), ( 0x00000001 ), NULL, HFILL }},
{ &hf_eventlog_eventlog_BackupEventLogW_backupfilename,
{ "Backupfilename", "eventlog.eventlog_BackupEventLogW.backupfilename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_BackupEventLogW_handle,
@@ -2223,16 +2223,16 @@ void proto_register_dcerpc_eventlog(void)
{ "Handle", "eventlog.eventlog_DeregisterEventSource.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_FlushEventLog_handle,
{ "Handle", "eventlog.eventlog_FlushEventLog.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_eventlog_eventlog_GetLogIntormation_cbBufSize,
- { "CbBufSize", "eventlog.eventlog_GetLogIntormation.cbBufSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_eventlog_eventlog_GetLogIntormation_cbBytesNeeded,
- { "CbBytesNeeded", "eventlog.eventlog_GetLogIntormation.cbBytesNeeded", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_eventlog_eventlog_GetLogIntormation_dwInfoLevel,
- { "DwInfoLevel", "eventlog.eventlog_GetLogIntormation.dwInfoLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_eventlog_eventlog_GetLogIntormation_handle,
- { "Handle", "eventlog.eventlog_GetLogIntormation.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_eventlog_eventlog_GetLogIntormation_lpBuffer,
- { "LpBuffer", "eventlog.eventlog_GetLogIntormation.lpBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_eventlog_eventlog_GetLogInformation_cbBufSize,
+ { "CbBufSize", "eventlog.eventlog_GetLogInformation.cbBufSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_eventlog_eventlog_GetLogInformation_cbBytesNeeded,
+ { "CbBytesNeeded", "eventlog.eventlog_GetLogInformation.cbBytesNeeded", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_eventlog_eventlog_GetLogInformation_dwInfoLevel,
+ { "DwInfoLevel", "eventlog.eventlog_GetLogInformation.dwInfoLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_eventlog_eventlog_GetLogInformation_handle,
+ { "Handle", "eventlog.eventlog_GetLogInformation.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_eventlog_eventlog_GetLogInformation_lpBuffer,
+ { "LpBuffer", "eventlog.eventlog_GetLogInformation.lpBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_GetNumRecords_handle,
{ "Handle", "eventlog.eventlog_GetNumRecords.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_GetNumRecords_number,
diff --git a/epan/dissectors/packet-dcerpc-fileexp.c b/epan/dissectors/packet-dcerpc-fileexp.c
index d4ff82810c..a70269d456 100644
--- a/epan/dissectors/packet-dcerpc-fileexp.c
+++ b/epan/dissectors/packet-dcerpc-fileexp.c
@@ -3870,7 +3870,7 @@ static int
return offset;
}
-static dcerpc_sub_dissector fileexp_dissectors[] = {
+static const dcerpc_sub_dissector fileexp_dissectors[] = {
{ 0, "SetContext", fileexp_dissect_setcontext_rqst, fileexp_dissect_setcontext_resp} ,
{ 1, "LookupRoot", fileexp_dissect_lookuproot_rqst, fileexp_dissect_lookuproot_resp} ,
{ 2, "FetchData", fileexp_dissect_fetchdata_rqst, fileexp_dissect_fetchdata_resp} ,
diff --git a/epan/dissectors/packet-dcerpc-fldb.c b/epan/dissectors/packet-dcerpc-fldb.c
index 768797c27d..d5696d2bfb 100644
--- a/epan/dissectors/packet-dcerpc-fldb.c
+++ b/epan/dissectors/packet-dcerpc-fldb.c
@@ -1452,7 +1452,7 @@ fldb_dissect_replaceentry_rqst (tvbuff_t *tvb, int offset,
}
-static dcerpc_sub_dissector fldb_dissectors[] = {
+static const dcerpc_sub_dissector fldb_dissectors[] = {
{0, "GetEntryByID", fldb_dissect_getentrybyid_rqst,
fldb_dissect_getentrybyid_resp},
{1, "GetEntryByName", fldb_dissect_getentrybyname_rqst,
diff --git a/epan/dissectors/packet-dcerpc-frsapi.c b/epan/dissectors/packet-dcerpc-frsapi.c
index c768af1ede..fca13269fd 100644
--- a/epan/dissectors/packet-dcerpc-frsapi.c
+++ b/epan/dissectors/packet-dcerpc-frsapi.c
@@ -40,7 +40,7 @@ static e_guid_t uuid_dcerpc_frsapi = {
static guint16 ver_dcerpc_frsapi = 1;
-static dcerpc_sub_dissector dcerpc_frsapi_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_frsapi_dissectors[] = {
{ FRSAPI_VERIFY_PROMOTION, "VerifyPromotion", NULL, NULL },
{ FRSAPI_PROMOTION_STATUS, "PromotionStatus", NULL, NULL },
{ FRSAPI_START_DEMOTION, "StartDemotion", NULL, NULL },
diff --git a/epan/dissectors/packet-dcerpc-frsrpc.c b/epan/dissectors/packet-dcerpc-frsrpc.c
index 127e6f26de..66891cf182 100644
--- a/epan/dissectors/packet-dcerpc-frsrpc.c
+++ b/epan/dissectors/packet-dcerpc-frsrpc.c
@@ -22,200 +22,200 @@ void proto_register_dcerpc_frsrpc(void);
void proto_reg_handoff_dcerpc_frsrpc(void);
/* Ett declarations */
-static gint ett_ChunkCtr = -1;
-static gint ett_dcerpc_frsrpc = -1;
-static gint ett_frsrpc_frsrpc_CommPktChunkGuidName = -1;
-static gint ett_frsrpc_frsrpc_CommPktGSVN = -1;
-static gint ett_frsrpc_frsrpc_CommPktCoCmdFlags = -1;
-static gint ett_frsrpc_frsrpc_CommPktCoCmdIFlags = -1;
-static gint ett_frsrpc_frsrpc_CommPktCoCmdContentCmd = -1;
-static gint ett_frsrpc_frsrpc_CommPktChangeOrderCommand = -1;
-static gint ett_frsrpc_frsrpc_CommPktDataExtensionChecksum = -1;
-static gint ett_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout = -1;
-static gint ett_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k = -1;
-static gint ett_frsrpc_frsrpc_CommPktChangeOrderRecordExtension = -1;
-static gint ett_frsrpc_frsrpc_CommPktChunkData = -1;
-static gint ett_frsrpc_frsrpc_CommPktChunk = -1;
-static gint ett_frsrpc_frsrpc_FrsSendCommPktReq = -1;
+static gint ett_ChunkCtr;
+static gint ett_dcerpc_frsrpc;
+static gint ett_frsrpc_frsrpc_CommPktChunkGuidName;
+static gint ett_frsrpc_frsrpc_CommPktGSVN;
+static gint ett_frsrpc_frsrpc_CommPktCoCmdFlags;
+static gint ett_frsrpc_frsrpc_CommPktCoCmdIFlags;
+static gint ett_frsrpc_frsrpc_CommPktCoCmdContentCmd;
+static gint ett_frsrpc_frsrpc_CommPktChangeOrderCommand;
+static gint ett_frsrpc_frsrpc_CommPktDataExtensionChecksum;
+static gint ett_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout;
+static gint ett_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k;
+static gint ett_frsrpc_frsrpc_CommPktChangeOrderRecordExtension;
+static gint ett_frsrpc_frsrpc_CommPktChunkData;
+static gint ett_frsrpc_frsrpc_CommPktChunk;
+static gint ett_frsrpc_frsrpc_FrsSendCommPktReq;
/* Header field declarations */
-static gint hf_CommPktChunk = -1;
-static gint hf_frsrpc_CommPktChangeOrderCommand_file_name = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_extension = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count = -1;
-static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_blob = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_block = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_block_size = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_bop = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_bopend = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_co_extension2 = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_command = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_compression_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_connection = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_file_offset = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_file_size = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_from = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_last_join_time = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_replica = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_to = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunk_data = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunk_data_ = -1;
-static gint hf_frsrpc_frsrpc_CommPktChunk_type = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count = -1;
-static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size = -1;
-static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type = -1;
-static gint hf_frsrpc_frsrpc_CommPktGSVN_guid = -1;
-static gint hf_frsrpc_frsrpc_CommPktGSVN_vsn = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_cs_id = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_ = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_major = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_memory_len = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_minor = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_upk_len = -1;
-static gint hf_frsrpc_frsrpc_FrsSendCommPkt_req = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_ = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_ = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_ = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name = -1;
-static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type = -1;
-static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size = -1;
-static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account = -1;
-static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password = -1;
-static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level = -1;
-static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name = -1;
-static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type = -1;
-static gint hf_frsrpc_opnum = -1;
-static gint hf_frsrpc_werror = -1;
+static gint hf_CommPktChunk;
+static gint hf_frsrpc_CommPktChangeOrderCommand_file_name;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_extension;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_blob;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_block;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_block_size;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_bop;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_bopend;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_extension2;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid_;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_sequence_number;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_command;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_compression_guid;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_connection;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_file_offset;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_file_size;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_from;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn_;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid_;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time_;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_last_join_time;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co_;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_replica;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_to;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector_;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name_;
+static gint hf_frsrpc_frsrpc_CommPktChunk_data;
+static gint hf_frsrpc_frsrpc_CommPktChunk_data_;
+static gint hf_frsrpc_frsrpc_CommPktChunk_type;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type;
+static gint hf_frsrpc_frsrpc_CommPktGSVN_guid;
+static gint hf_frsrpc_frsrpc_CommPktGSVN_vsn;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_cs_id;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_major;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_memory_len;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_minor;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_upk_len;
+static gint hf_frsrpc_frsrpc_FrsSendCommPkt_req;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type;
+static gint hf_frsrpc_opnum;
+static gint hf_frsrpc_werror;
static gint proto_dcerpc_frsrpc = -1;
/* Version information */
@@ -529,7 +529,7 @@ const value_string frsrpc_frsrpc_CommPktChunkType_vals[] = {
{ FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER, "FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER" },
{ FRSRPC_COMM_PKT_CHUNK_REMOTE_CO, "FRSRPC_COMM_PKT_CHUNK_REMOTE_CO" },
{ FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K, "FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K" },
- { FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2, "FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2" },
+ { FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2, "FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2" },
{ FRSRPC_COMM_PKT_CHUNK_EOP, "FRSRPC_COMM_PKT_CHUNK_EOP" },
{ 0, NULL }
};
@@ -558,7 +558,7 @@ static int frsrpc_dissect_element_CommPktChunkData_gvsn(tvbuff_t *tvb _U_, int o
static int frsrpc_dissect_element_CommPktChunkData_gvsn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_co_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_remote_co(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_remote_co_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
@@ -660,7 +660,7 @@ frsrpc_dissect_struct_CommPktChunk(tvbuff_t *tvb _U_, int offset _U_, packet_inf
int old_offset;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChunk);
}
offset = frsrpc_dissect_element_CommPktChunk_type(tvb, offset, pinfo, tree, di, drep, &type);
@@ -708,7 +708,7 @@ frsrpc_dissect_struct_frsrpc_CommPktChunkCtr(tvbuff_t *tvb, int offset, packet_i
guint32 remaining = tvb_reported_length_remaining(tvb, offset);
int align_status = di->no_align;
if (remaining > 0) {
- proto_item *item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, TRUE);
+ proto_item *item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, ENC_NA);
proto_tree *subtree = proto_item_add_subtree(item, ett_ChunkCtr);
di->no_align = 1;
while (remaining > 0) {
@@ -2035,7 +2035,7 @@ frsrpc_dissect_struct_CommPktChangeOrderRecordExtension(tvbuff_t *tvb _U_, int o
/* IDL: FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER=0x0010, */
/* IDL: FRSRPC_COMM_PKT_CHUNK_REMOTE_CO=0x000D, */
/* IDL: FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K=0x0016, */
-/* IDL: FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2=0x0017, */
+/* IDL: FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2=0x0017, */
/* IDL: FRSRPC_COMM_PKT_CHUNK_EOP=0x0013, */
/* IDL: } */
@@ -2074,10 +2074,10 @@ frsrpc_dissect_enum_CommPktChunkType(tvbuff_t *tvb _U_, int offset _U_, packet_i
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET)] [case(FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET)] hyper file_offset; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_GVSN)] [case(FRSRPC_COMM_PKT_CHUNK_GVSN)] [subcontext(4)] frsrpc_CommPktGSVN gvsn; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)] [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)] [subcontext(4)] GUID co_guid; */
-/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] uint32 co_sequnence_number; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] uint32 co_sequence_number; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)] [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)] [subcontext(4)] frsrpc_CommPktChangeOrderCommand remote_co; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)] [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)] [subcontext(4)] frsrpc_CommPktCoRecordExtensionWin2k co_ext_win2k; */
-/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)] [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)] frsrpc_CommPktChangeOrderRecordExtension co_extension2; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2)] [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2)] frsrpc_CommPktChangeOrderRecordExtension co_extension2; */
/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_EOP)] [case(FRSRPC_COMM_PKT_CHUNK_EOP)] [value(0xFFFFFFFF)] uint32 bopend; */
/* IDL: } */
@@ -2354,9 +2354,9 @@ frsrpc_dissect_element_CommPktChunkData_co_guid_(tvbuff_t *tvb _U_, int offset _
}
static int
-frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+frsrpc_dissect_element_CommPktChunkData_co_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_sequence_number, 0);
return offset;
}
@@ -2524,7 +2524,7 @@ frsrpc_dissect_CommPktChunkData(tvbuff_t *tvb _U_, int offset _U_, packet_info *
break;
case FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER:
- offset = frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvb, offset, pinfo, tree, di, drep);
+ offset = frsrpc_dissect_element_CommPktChunkData_co_sequence_number(tvb, offset, pinfo, tree, di, drep);
break;
case FRSRPC_COMM_PKT_CHUNK_REMOTE_CO:
@@ -2535,7 +2535,7 @@ frsrpc_dissect_CommPktChunkData(tvbuff_t *tvb _U_, int offset _U_, packet_info *
offset = frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvb, offset, pinfo, tree, di, drep);
break;
- case FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2:
+ case FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2:
offset = frsrpc_dissect_element_CommPktChunkData_co_extension2(tvb, offset, pinfo, tree, di, drep);
break;
@@ -3462,7 +3462,7 @@ frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_request(tvbuff_t *tvb _U_, int
}
-static dcerpc_sub_dissector frsrpc_dissectors[] = {
+static const dcerpc_sub_dissector frsrpc_dissectors[] = {
{ 0, "FrsSendCommPkt",
frsrpc_dissect_FrsSendCommPkt_request, frsrpc_dissect_FrsSendCommPkt_response},
{ 1, "FrsVerifyPromotionParent",
@@ -3615,8 +3615,8 @@ void proto_register_dcerpc_frsrpc(void)
{ "Co Guid", "frsrpc.frsrpc_CommPktChunkData.co_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_frsrpc_frsrpc_CommPktChunkData_co_guid_,
{ "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number,
- { "Co Sequnence Number", "frsrpc.frsrpc_CommPktChunkData.co_sequnence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_frsrpc_frsrpc_CommPktChunkData_co_sequence_number,
+ { "Co Sequence Number", "frsrpc.frsrpc_CommPktChunkData.co_sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_frsrpc_frsrpc_CommPktChunkData_command,
{ "Command", "frsrpc.frsrpc_CommPktChunkData.command", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCommand_vals), 0, NULL, HFILL }},
{ &hf_frsrpc_frsrpc_CommPktChunkData_compression_guid,
diff --git a/epan/dissectors/packet-dcerpc-frsrpc.h b/epan/dissectors/packet-dcerpc-frsrpc.h
index c12148de66..d611aff233 100644
--- a/epan/dissectors/packet-dcerpc-frsrpc.h
+++ b/epan/dissectors/packet-dcerpc-frsrpc.h
@@ -111,7 +111,7 @@ int frsrpc_dissect_enum_CommPktCommand(tvbuff_t *tvb _U_, int offset _U_, packet
#define FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER (0x0010)
#define FRSRPC_COMM_PKT_CHUNK_REMOTE_CO (0x000D)
#define FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K (0x0016)
-#define FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2 (0x0017)
+#define FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2 (0x0017)
#define FRSRPC_COMM_PKT_CHUNK_EOP (0x0013)
extern const value_string frsrpc_frsrpc_CommPktChunkType_vals[];
int frsrpc_dissect_enum_CommPktChunkType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_);
diff --git a/epan/dissectors/packet-dcerpc-frstrans.c b/epan/dissectors/packet-dcerpc-frstrans.c
index 96b5dbd396..ae628a8903 100644
--- a/epan/dissectors/packet-dcerpc-frstrans.c
+++ b/epan/dissectors/packet-dcerpc-frstrans.c
@@ -22,120 +22,120 @@ void proto_register_dcerpc_frstrans(void);
void proto_reg_handoff_dcerpc_frstrans(void);
/* Ett declarations */
-static gint ett_dcerpc_frstrans = -1;
-static gint ett_frstrans_frstrans_TransportFlags = -1;
-static gint ett_frstrans_frstrans_VersionVector = -1;
-static gint ett_frstrans_frstrans_Update = -1;
-static gint ett_frstrans_frstrans_EpoqueVector = -1;
-static gint ett_frstrans_frstrans_AsyncVersionVectorResponse = -1;
-static gint ett_frstrans_frstrans_AsyncResponseContext = -1;
-static gint ett_frstrans_frstrans_RdcParameterGeneric = -1;
-static gint ett_frstrans_frstrans_RdcParameterFilterMax = -1;
-static gint ett_frstrans_frstrans_RdcParameterFilterPoint = -1;
-static gint ett_frstrans_frstrans_RdcParameterUnion = -1;
-static gint ett_frstrans_frstrans_RdcParameters = -1;
-static gint ett_frstrans_frstrans_RdcFileInfo = -1;
+static gint ett_dcerpc_frstrans;
+static gint ett_frstrans_frstrans_TransportFlags;
+static gint ett_frstrans_frstrans_VersionVector;
+static gint ett_frstrans_frstrans_Update;
+static gint ett_frstrans_frstrans_EpoqueVector;
+static gint ett_frstrans_frstrans_AsyncVersionVectorResponse;
+static gint ett_frstrans_frstrans_AsyncResponseContext;
+static gint ett_frstrans_frstrans_RdcParameterGeneric;
+static gint ett_frstrans_frstrans_RdcParameterFilterMax;
+static gint ett_frstrans_frstrans_RdcParameterFilterPoint;
+static gint ett_frstrans_frstrans_RdcParameterUnion;
+static gint ett_frstrans_frstrans_RdcParameters;
+static gint ett_frstrans_frstrans_RdcFileInfo;
/* Header field declarations */
-static gint hf_frstrans_frstrans_AsyncPoll_connection_guid = -1;
-static gint hf_frstrans_frstrans_AsyncPoll_response = -1;
-static gint hf_frstrans_frstrans_AsyncResponseContext_response = -1;
-static gint hf_frstrans_frstrans_AsyncResponseContext_sequence_number = -1;
-static gint hf_frstrans_frstrans_AsyncResponseContext_status = -1;
-static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector = -1;
-static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector_count = -1;
-static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector = -1;
-static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector_count = -1;
-static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_vv_generation = -1;
-static gint hf_frstrans_frstrans_CheckConnectivity_connection_guid = -1;
-static gint hf_frstrans_frstrans_CheckConnectivity_replica_set_guid = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_day = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_day_of_week = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_hour = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_machine_guid = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_milli_seconds = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_minute = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_month = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_second = -1;
-static gint hf_frstrans_frstrans_EpoqueVector_year = -1;
-static gint hf_frstrans_frstrans_EstablishConnection_connection_guid = -1;
-static gint hf_frstrans_frstrans_EstablishConnection_downstream_flags = -1;
-static gint hf_frstrans_frstrans_EstablishConnection_downstream_protocol_version = -1;
-static gint hf_frstrans_frstrans_EstablishConnection_replica_set_guid = -1;
-static gint hf_frstrans_frstrans_EstablishConnection_upstream_flags = -1;
-static gint hf_frstrans_frstrans_EstablishConnection_upstream_protocol_version = -1;
-static gint hf_frstrans_frstrans_EstablishSession_connection_guid = -1;
-static gint hf_frstrans_frstrans_EstablishSession_content_set_guid = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_buffer_size = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_connection_guid = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_frs_update = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_is_end_of_file = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_desired = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_file_info = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_server_context = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_size_read = -1;
-static gint hf_frstrans_frstrans_InitializeFileTransferAsync_staging_policy = -1;
-static gint hf_frstrans_frstrans_RdcFileInfo_compression_algorithm = -1;
-static gint hf_frstrans_frstrans_RdcFileInfo_file_size_estimate = -1;
-static gint hf_frstrans_frstrans_RdcFileInfo_on_disk_file_size = -1;
-static gint hf_frstrans_frstrans_RdcFileInfo_rdc_filter_parameters = -1;
-static gint hf_frstrans_frstrans_RdcFileInfo_rdc_minimum_compatible_version = -1;
-static gint hf_frstrans_frstrans_RdcFileInfo_rdc_signature_levels = -1;
-static gint hf_frstrans_frstrans_RdcFileInfo_rdc_version = -1;
-static gint hf_frstrans_frstrans_RdcParameterFilterMax_max_window_size = -1;
-static gint hf_frstrans_frstrans_RdcParameterFilterMax_min_horizon_size = -1;
-static gint hf_frstrans_frstrans_RdcParameterFilterPoint_max_chunk_size = -1;
-static gint hf_frstrans_frstrans_RdcParameterFilterPoint_min_chunk_size = -1;
-static gint hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters = -1;
-static gint hf_frstrans_frstrans_RdcParameterGeneric_chunker_type = -1;
-static gint hf_frstrans_frstrans_RdcParameterUnion_filter_generic = -1;
-static gint hf_frstrans_frstrans_RdcParameterUnion_filter_max = -1;
-static gint hf_frstrans_frstrans_RdcParameterUnion_filter_point = -1;
-static gint hf_frstrans_frstrans_RdcParameters_rdc_chunker_algorithm = -1;
-static gint hf_frstrans_frstrans_RdcParameters_u = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_connection_guid = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_content_set_guid = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_credits_available = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_frs_update = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_gvsn_db_guid = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_gvsn_version = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_hash_requested = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_update_count = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_update_request_type = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_update_status = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_version_vector_diff = -1;
-static gint hf_frstrans_frstrans_RequestUpdates_version_vector_diff_count = -1;
-static gint hf_frstrans_frstrans_RequestVersionVector_change_type = -1;
-static gint hf_frstrans_frstrans_RequestVersionVector_connection_guid = -1;
-static gint hf_frstrans_frstrans_RequestVersionVector_content_set_guid = -1;
-static gint hf_frstrans_frstrans_RequestVersionVector_request_type = -1;
-static gint hf_frstrans_frstrans_RequestVersionVector_sequence_number = -1;
-static gint hf_frstrans_frstrans_RequestVersionVector_vv_generation = -1;
-static gint hf_frstrans_frstrans_TransportFlags_FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY = -1;
-static gint hf_frstrans_frstrans_Update_attributes = -1;
-static gint hf_frstrans_frstrans_Update_clock = -1;
-static gint hf_frstrans_frstrans_Update_content_set_guid = -1;
-static gint hf_frstrans_frstrans_Update_create_time = -1;
-static gint hf_frstrans_frstrans_Update_fence = -1;
-static gint hf_frstrans_frstrans_Update_flags = -1;
-static gint hf_frstrans_frstrans_Update_gsvn_db_guid = -1;
-static gint hf_frstrans_frstrans_Update_gsvn_version = -1;
-static gint hf_frstrans_frstrans_Update_name = -1;
-static gint hf_frstrans_frstrans_Update_name_conflict = -1;
-static gint hf_frstrans_frstrans_Update_parent_db_guid = -1;
-static gint hf_frstrans_frstrans_Update_parent_version = -1;
-static gint hf_frstrans_frstrans_Update_present = -1;
-static gint hf_frstrans_frstrans_Update_rdc_similarity = -1;
-static gint hf_frstrans_frstrans_Update_sha1_hash = -1;
-static gint hf_frstrans_frstrans_Update_uid_db_guid = -1;
-static gint hf_frstrans_frstrans_Update_uid_version = -1;
-static gint hf_frstrans_frstrans_VersionVector_db_guid = -1;
-static gint hf_frstrans_frstrans_VersionVector_high = -1;
-static gint hf_frstrans_frstrans_VersionVector_low = -1;
-static gint hf_frstrans_opnum = -1;
-static gint hf_frstrans_werror = -1;
+static gint hf_frstrans_frstrans_AsyncPoll_connection_guid;
+static gint hf_frstrans_frstrans_AsyncPoll_response;
+static gint hf_frstrans_frstrans_AsyncResponseContext_response;
+static gint hf_frstrans_frstrans_AsyncResponseContext_sequence_number;
+static gint hf_frstrans_frstrans_AsyncResponseContext_status;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector_count;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector_count;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_vv_generation;
+static gint hf_frstrans_frstrans_CheckConnectivity_connection_guid;
+static gint hf_frstrans_frstrans_CheckConnectivity_replica_set_guid;
+static gint hf_frstrans_frstrans_EpoqueVector_day;
+static gint hf_frstrans_frstrans_EpoqueVector_day_of_week;
+static gint hf_frstrans_frstrans_EpoqueVector_hour;
+static gint hf_frstrans_frstrans_EpoqueVector_machine_guid;
+static gint hf_frstrans_frstrans_EpoqueVector_milli_seconds;
+static gint hf_frstrans_frstrans_EpoqueVector_minute;
+static gint hf_frstrans_frstrans_EpoqueVector_month;
+static gint hf_frstrans_frstrans_EpoqueVector_second;
+static gint hf_frstrans_frstrans_EpoqueVector_year;
+static gint hf_frstrans_frstrans_EstablishConnection_connection_guid;
+static gint hf_frstrans_frstrans_EstablishConnection_downstream_flags;
+static gint hf_frstrans_frstrans_EstablishConnection_downstream_protocol_version;
+static gint hf_frstrans_frstrans_EstablishConnection_replica_set_guid;
+static gint hf_frstrans_frstrans_EstablishConnection_upstream_flags;
+static gint hf_frstrans_frstrans_EstablishConnection_upstream_protocol_version;
+static gint hf_frstrans_frstrans_EstablishSession_connection_guid;
+static gint hf_frstrans_frstrans_EstablishSession_content_set_guid;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_buffer_size;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_connection_guid;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_frs_update;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_is_end_of_file;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_desired;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_file_info;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_server_context;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_size_read;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_staging_policy;
+static gint hf_frstrans_frstrans_RdcFileInfo_compression_algorithm;
+static gint hf_frstrans_frstrans_RdcFileInfo_file_size_estimate;
+static gint hf_frstrans_frstrans_RdcFileInfo_on_disk_file_size;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_filter_parameters;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_minimum_compatible_version;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_signature_levels;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_version;
+static gint hf_frstrans_frstrans_RdcParameterFilterMax_max_window_size;
+static gint hf_frstrans_frstrans_RdcParameterFilterMax_min_horizon_size;
+static gint hf_frstrans_frstrans_RdcParameterFilterPoint_max_chunk_size;
+static gint hf_frstrans_frstrans_RdcParameterFilterPoint_min_chunk_size;
+static gint hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters;
+static gint hf_frstrans_frstrans_RdcParameterGeneric_chunker_type;
+static gint hf_frstrans_frstrans_RdcParameterUnion_filter_generic;
+static gint hf_frstrans_frstrans_RdcParameterUnion_filter_max;
+static gint hf_frstrans_frstrans_RdcParameterUnion_filter_point;
+static gint hf_frstrans_frstrans_RdcParameters_rdc_chunker_algorithm;
+static gint hf_frstrans_frstrans_RdcParameters_u;
+static gint hf_frstrans_frstrans_RequestUpdates_connection_guid;
+static gint hf_frstrans_frstrans_RequestUpdates_content_set_guid;
+static gint hf_frstrans_frstrans_RequestUpdates_credits_available;
+static gint hf_frstrans_frstrans_RequestUpdates_frs_update;
+static gint hf_frstrans_frstrans_RequestUpdates_gvsn_db_guid;
+static gint hf_frstrans_frstrans_RequestUpdates_gvsn_version;
+static gint hf_frstrans_frstrans_RequestUpdates_hash_requested;
+static gint hf_frstrans_frstrans_RequestUpdates_update_count;
+static gint hf_frstrans_frstrans_RequestUpdates_update_request_type;
+static gint hf_frstrans_frstrans_RequestUpdates_update_status;
+static gint hf_frstrans_frstrans_RequestUpdates_version_vector_diff;
+static gint hf_frstrans_frstrans_RequestUpdates_version_vector_diff_count;
+static gint hf_frstrans_frstrans_RequestVersionVector_change_type;
+static gint hf_frstrans_frstrans_RequestVersionVector_connection_guid;
+static gint hf_frstrans_frstrans_RequestVersionVector_content_set_guid;
+static gint hf_frstrans_frstrans_RequestVersionVector_request_type;
+static gint hf_frstrans_frstrans_RequestVersionVector_sequence_number;
+static gint hf_frstrans_frstrans_RequestVersionVector_vv_generation;
+static gint hf_frstrans_frstrans_TransportFlags_FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY;
+static gint hf_frstrans_frstrans_Update_attributes;
+static gint hf_frstrans_frstrans_Update_clock;
+static gint hf_frstrans_frstrans_Update_content_set_guid;
+static gint hf_frstrans_frstrans_Update_create_time;
+static gint hf_frstrans_frstrans_Update_fence;
+static gint hf_frstrans_frstrans_Update_flags;
+static gint hf_frstrans_frstrans_Update_gsvn_db_guid;
+static gint hf_frstrans_frstrans_Update_gsvn_version;
+static gint hf_frstrans_frstrans_Update_name;
+static gint hf_frstrans_frstrans_Update_name_conflict;
+static gint hf_frstrans_frstrans_Update_parent_db_guid;
+static gint hf_frstrans_frstrans_Update_parent_version;
+static gint hf_frstrans_frstrans_Update_present;
+static gint hf_frstrans_frstrans_Update_rdc_similarity;
+static gint hf_frstrans_frstrans_Update_sha1_hash;
+static gint hf_frstrans_frstrans_Update_uid_db_guid;
+static gint hf_frstrans_frstrans_Update_uid_version;
+static gint hf_frstrans_frstrans_VersionVector_db_guid;
+static gint hf_frstrans_frstrans_VersionVector_high;
+static gint hf_frstrans_frstrans_VersionVector_low;
+static gint hf_frstrans_opnum;
+static gint hf_frstrans_werror;
static gint proto_dcerpc_frstrans = -1;
/* Version information */
@@ -190,7 +190,7 @@ static int frstrans_dissect_element_Update_parent_version(tvbuff_t *tvb _U_, int
static int frstrans_dissect_element_Update_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int frstrans_dissect_element_Update_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string frstrans_frstrans_VersionRequestType_vals[] = {
- { FRSTRANS_VERSION_REQUEST_NORNAL_SYNC, "FRSTRANS_VERSION_REQUEST_NORNAL_SYNC" },
+ { FRSTRANS_VERSION_REQUEST_NORMAL_SYNC, "FRSTRANS_VERSION_REQUEST_NORMAL_SYNC" },
{ FRSTRANS_VERSION_REQUEST_SLOW_SYNC, "FRSTRANS_VERSION_REQUEST_SLOW_SYNC" },
{ FRSTRANS_VERSION_REQUEST_SLAVE_SYNC, "FRSTRANS_VERSION_REQUEST_SLAVE_SYNC" },
{ 0, NULL }
@@ -734,7 +734,7 @@ frstrans_dissect_struct_Update(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
/* IDL: enum { */
-/* IDL: FRSTRANS_VERSION_REQUEST_NORNAL_SYNC=0x0000, */
+/* IDL: FRSTRANS_VERSION_REQUEST_NORMAL_SYNC=0x0000, */
/* IDL: FRSTRANS_VERSION_REQUEST_SLOW_SYNC=0x0001, */
/* IDL: FRSTRANS_VERSION_REQUEST_SLAVE_SYNC=0x0002, */
/* IDL: } */
@@ -2558,7 +2558,7 @@ frstrans_dissect_FRSTRANS_RDC_GET_FILE_DATA_ASYNC_request(tvbuff_t *tvb _U_, int
}
-static dcerpc_sub_dissector frstrans_dissectors[] = {
+static const dcerpc_sub_dissector frstrans_dissectors[] = {
{ 0, "CheckConnectivity",
frstrans_dissect_CheckConnectivity_request, frstrans_dissect_CheckConnectivity_response},
{ 1, "EstablishConnection",
diff --git a/epan/dissectors/packet-dcerpc-frstrans.h b/epan/dissectors/packet-dcerpc-frstrans.h
index 4ad64198a3..0a6f6efbd2 100644
--- a/epan/dissectors/packet-dcerpc-frstrans.h
+++ b/epan/dissectors/packet-dcerpc-frstrans.h
@@ -27,7 +27,7 @@ extern const value_string frstrans_frstrans_UpdateStatus_vals[];
int frstrans_dissect_enum_UpdateStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_);
int frstrans_dissect_struct_VersionVector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int frstrans_dissect_struct_Update(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-#define FRSTRANS_VERSION_REQUEST_NORNAL_SYNC (0x0000)
+#define FRSTRANS_VERSION_REQUEST_NORMAL_SYNC (0x0000)
#define FRSTRANS_VERSION_REQUEST_SLOW_SYNC (0x0001)
#define FRSTRANS_VERSION_REQUEST_SLAVE_SYNC (0x0002)
extern const value_string frstrans_frstrans_VersionRequestType_vals[];
diff --git a/epan/dissectors/packet-dcerpc-fsrvp.c b/epan/dissectors/packet-dcerpc-fsrvp.c
index decb2160a7..a065dbd93f 100644
--- a/epan/dissectors/packet-dcerpc-fsrvp.c
+++ b/epan/dissectors/packet-dcerpc-fsrvp.c
@@ -22,51 +22,51 @@ void proto_register_dcerpc_fsrvp(void);
void proto_reg_handoff_dcerpc_fsrvp(void);
/* Ett declarations */
-static gint ett_dcerpc_fsrvp = -1;
-static gint ett_fsrvp_fssagent_share_mapping_1 = -1;
-static gint ett_fsrvp_fssagent_share_mapping = -1;
+static gint ett_dcerpc_fsrvp;
+static gint ett_fsrvp_fssagent_share_mapping_1;
+static gint ett_fsrvp_fssagent_share_mapping;
/* Header field declarations */
-static gint hf_fsrvp_fsrvp_AbortShadowCopySet_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ClientShadowCopyId = -1;
-static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ShareName = -1;
-static gint hf_fsrvp_fsrvp_AddToShadowCopySet_pShadowCopyId = -1;
-static gint hf_fsrvp_fsrvp_CommitShadowCopySet_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_CommitShadowCopySet_TimeOutInMilliseconds = -1;
-static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopyId = -1;
-static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShareName = -1;
-static gint hf_fsrvp_fsrvp_ExposeShadowCopySet_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_ExposeShadowCopySet_TimeOutInMilliseconds = -1;
-static gint hf_fsrvp_fsrvp_GetShareMapping_Level = -1;
-static gint hf_fsrvp_fsrvp_GetShareMapping_ShadowCopyId = -1;
-static gint hf_fsrvp_fsrvp_GetShareMapping_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_GetShareMapping_ShareMapping = -1;
-static gint hf_fsrvp_fsrvp_GetShareMapping_ShareName = -1;
-static gint hf_fsrvp_fsrvp_GetSupportedVersion_MaxVersion = -1;
-static gint hf_fsrvp_fsrvp_GetSupportedVersion_MinVersion = -1;
-static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyCompatibility = -1;
-static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyPresent = -1;
-static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShareName = -1;
-static gint hf_fsrvp_fsrvp_IsPathSupported_OwnerMachineName = -1;
-static gint hf_fsrvp_fsrvp_IsPathSupported_ShareName = -1;
-static gint hf_fsrvp_fsrvp_IsPathSupported_SupportedByThisProvider = -1;
-static gint hf_fsrvp_fsrvp_PrepareShadowCopySet_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_PrepareShadowCopySet_TimeOutInMilliseconds = -1;
-static gint hf_fsrvp_fsrvp_RecoveryCompleteShadowCopySet_ShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_SetContext_Context = -1;
-static gint hf_fsrvp_fsrvp_StartShadowCopySet_ClientShadowCopySetId = -1;
-static gint hf_fsrvp_fsrvp_StartShadowCopySet_pShadowCopySetId = -1;
-static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopyId = -1;
-static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopySetId = -1;
-static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopyShareName = -1;
-static gint hf_fsrvp_fssagent_share_mapping_1_ShareNameUNC = -1;
-static gint hf_fsrvp_fssagent_share_mapping_1_tstamp = -1;
-static gint hf_fsrvp_fssagent_share_mapping_ShareMapping1 = -1;
-static gint hf_fsrvp_opnum = -1;
-static gint hf_fsrvp_status = -1;
+static gint hf_fsrvp_fsrvp_AbortShadowCopySet_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ClientShadowCopyId;
+static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_AddToShadowCopySet_ShareName;
+static gint hf_fsrvp_fsrvp_AddToShadowCopySet_pShadowCopyId;
+static gint hf_fsrvp_fsrvp_CommitShadowCopySet_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_CommitShadowCopySet_TimeOutInMilliseconds;
+static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopyId;
+static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_DeleteShareMapping_ShareName;
+static gint hf_fsrvp_fsrvp_ExposeShadowCopySet_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_ExposeShadowCopySet_TimeOutInMilliseconds;
+static gint hf_fsrvp_fsrvp_GetShareMapping_Level;
+static gint hf_fsrvp_fsrvp_GetShareMapping_ShadowCopyId;
+static gint hf_fsrvp_fsrvp_GetShareMapping_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_GetShareMapping_ShareMapping;
+static gint hf_fsrvp_fsrvp_GetShareMapping_ShareName;
+static gint hf_fsrvp_fsrvp_GetSupportedVersion_MaxVersion;
+static gint hf_fsrvp_fsrvp_GetSupportedVersion_MinVersion;
+static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyCompatibility;
+static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShadowCopyPresent;
+static gint hf_fsrvp_fsrvp_IsPathShadowCopied_ShareName;
+static gint hf_fsrvp_fsrvp_IsPathSupported_OwnerMachineName;
+static gint hf_fsrvp_fsrvp_IsPathSupported_ShareName;
+static gint hf_fsrvp_fsrvp_IsPathSupported_SupportedByThisProvider;
+static gint hf_fsrvp_fsrvp_PrepareShadowCopySet_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_PrepareShadowCopySet_TimeOutInMilliseconds;
+static gint hf_fsrvp_fsrvp_RecoveryCompleteShadowCopySet_ShadowCopySetId;
+static gint hf_fsrvp_fsrvp_SetContext_Context;
+static gint hf_fsrvp_fsrvp_StartShadowCopySet_ClientShadowCopySetId;
+static gint hf_fsrvp_fsrvp_StartShadowCopySet_pShadowCopySetId;
+static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopyId;
+static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopySetId;
+static gint hf_fsrvp_fssagent_share_mapping_1_ShadowCopyShareName;
+static gint hf_fsrvp_fssagent_share_mapping_1_ShareNameUNC;
+static gint hf_fsrvp_fssagent_share_mapping_1_tstamp;
+static gint hf_fsrvp_fssagent_share_mapping_ShareMapping1;
+static gint hf_fsrvp_opnum;
+static gint hf_fsrvp_status;
static gint proto_dcerpc_fsrvp = -1;
/* Version information */
@@ -1067,7 +1067,7 @@ fsrvp_dissect_PrepareShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, p
}
-static dcerpc_sub_dissector fsrvp_dissectors[] = {
+static const dcerpc_sub_dissector fsrvp_dissectors[] = {
{ 0, "GetSupportedVersion",
fsrvp_dissect_GetSupportedVersion_request, fsrvp_dissect_GetSupportedVersion_response},
{ 1, "SetContext",
diff --git a/epan/dissectors/packet-dcerpc-ftserver.c b/epan/dissectors/packet-dcerpc-ftserver.c
index 3f1e5e41b5..ee85adb3dd 100644
--- a/epan/dissectors/packet-dcerpc-ftserver.c
+++ b/epan/dissectors/packet-dcerpc-ftserver.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_ftserver = { 0x4d37f2dd, 0xed43, 0x0004, { 0x02, 0xc0, 0x37
static guint16 ver_ftserver = 4;
-static dcerpc_sub_dissector ftserver_dissectors[] = {
+static const dcerpc_sub_dissector ftserver_dissectors[] = {
{ 0, "CreateTrans", NULL, NULL },
{ 1, "AbortTrans", NULL, NULL },
{ 2, "DeleteTrans", NULL, NULL },
diff --git a/epan/dissectors/packet-dcerpc-icl_rpc.c b/epan/dissectors/packet-dcerpc-icl_rpc.c
index 24e004426e..c3b0eceb81 100644
--- a/epan/dissectors/packet-dcerpc-icl_rpc.c
+++ b/epan/dissectors/packet-dcerpc-icl_rpc.c
@@ -31,7 +31,7 @@ static guint16 ver_icl_rpc = 1;
-static dcerpc_sub_dissector icl_rpc_dissectors[] = {
+static const dcerpc_sub_dissector icl_rpc_dissectors[] = {
{ 0, "DFSTRACE_GetSetInfo", NULL, NULL },
{ 1, "DFSTRACE_SetSetInfo", NULL, NULL },
{ 2, "DFSTRACE_GetLogInfo", NULL, NULL },
diff --git a/epan/dissectors/packet-dcerpc-initshutdown.c b/epan/dissectors/packet-dcerpc-initshutdown.c
index 3478a7b51b..9def6c291f 100644
--- a/epan/dissectors/packet-dcerpc-initshutdown.c
+++ b/epan/dissectors/packet-dcerpc-initshutdown.c
@@ -22,27 +22,27 @@ void proto_register_dcerpc_initshutdown(void);
void proto_reg_handoff_dcerpc_initshutdown(void);
/* Ett declarations */
-static gint ett_dcerpc_initshutdown = -1;
-static gint ett_initshutdown_initshutdown_ReasonFlags = -1;
+static gint ett_dcerpc_initshutdown;
+static gint ett_initshutdown_initshutdown_ReasonFlags;
/* Header field declarations */
-static gint hf_initshutdown_initshutdown_Abort_server = -1;
-static gint hf_initshutdown_initshutdown_InitEx_do_reboot = -1;
-static gint hf_initshutdown_initshutdown_InitEx_force_apps = -1;
-static gint hf_initshutdown_initshutdown_InitEx_hostname = -1;
-static gint hf_initshutdown_initshutdown_InitEx_message = -1;
-static gint hf_initshutdown_initshutdown_InitEx_reason = -1;
-static gint hf_initshutdown_initshutdown_InitEx_timeout = -1;
-static gint hf_initshutdown_initshutdown_Init_do_reboot = -1;
-static gint hf_initshutdown_initshutdown_Init_force_apps = -1;
-static gint hf_initshutdown_initshutdown_Init_hostname = -1;
-static gint hf_initshutdown_initshutdown_Init_message = -1;
-static gint hf_initshutdown_initshutdown_Init_timeout = -1;
-static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED = -1;
-static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED = -1;
-static gint hf_initshutdown_opnum = -1;
-static gint hf_initshutdown_werror = -1;
+static gint hf_initshutdown_initshutdown_Abort_server;
+static gint hf_initshutdown_initshutdown_InitEx_do_reboot;
+static gint hf_initshutdown_initshutdown_InitEx_force_apps;
+static gint hf_initshutdown_initshutdown_InitEx_hostname;
+static gint hf_initshutdown_initshutdown_InitEx_message;
+static gint hf_initshutdown_initshutdown_InitEx_reason;
+static gint hf_initshutdown_initshutdown_InitEx_timeout;
+static gint hf_initshutdown_initshutdown_Init_do_reboot;
+static gint hf_initshutdown_initshutdown_Init_force_apps;
+static gint hf_initshutdown_initshutdown_Init_hostname;
+static gint hf_initshutdown_initshutdown_Init_message;
+static gint hf_initshutdown_initshutdown_Init_timeout;
+static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED;
+static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED;
+static gint hf_initshutdown_opnum;
+static gint hf_initshutdown_werror;
static gint proto_dcerpc_initshutdown = -1;
/* Version information */
@@ -471,7 +471,7 @@ initshutdown_dissect_InitEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_in
}
-static dcerpc_sub_dissector initshutdown_dissectors[] = {
+static const dcerpc_sub_dissector initshutdown_dissectors[] = {
{ 0, "Init",
initshutdown_dissect_Init_request, initshutdown_dissect_Init_response},
{ 1, "Abort",
diff --git a/epan/dissectors/packet-dcerpc-iwbemlevel1login.c b/epan/dissectors/packet-dcerpc-iwbemlevel1login.c
index f922fce748..595a563560 100644
--- a/epan/dissectors/packet-dcerpc-iwbemlevel1login.c
+++ b/epan/dissectors/packet-dcerpc-iwbemlevel1login.c
@@ -22,49 +22,49 @@ void proto_register_dcerpc_IWbemLevel1Login(void);
void proto_reg_handoff_dcerpc_IWbemLevel1Login(void);
/* Ett declarations */
-static gint ett_IWbemLevel1Login_EstablishPosition_orpcthis = -1;
-static gint ett_IWbemLevel1Login_EstablishPosition_orpcthat = -1;
-static gint ett_IWbemLevel1Login_RequestChallenge_orpcthis = -1;
-static gint ett_IWbemLevel1Login_RequestChallenge_orpcthat = -1;
-static gint ett_IWbemLevel1Login_WBEMLogin_orpcthis = -1;
-static gint ett_IWbemLevel1Login_WBEMLogin_orpcthat = -1;
-static gint ett_IWbemLevel1Login_NTLMLogin_orpcthis = -1;
-static gint ett_IWbemLevel1Login_NTLMLogin_orpcthat = -1;
-static gint ett_dcerpc_IWbemLevel1Login = -1;
-static gint ett_IWbemLevel1Login_ORPCTHIS = -1;
-static gint ett_IWbemLevel1Login_ORPCTHAT = -1;
-static gint ett_IWbemLevel1Login_IWbemServices = -1;
+static gint ett_IWbemLevel1Login_EstablishPosition_orpcthis;
+static gint ett_IWbemLevel1Login_EstablishPosition_orpcthat;
+static gint ett_IWbemLevel1Login_RequestChallenge_orpcthis;
+static gint ett_IWbemLevel1Login_RequestChallenge_orpcthat;
+static gint ett_IWbemLevel1Login_WBEMLogin_orpcthis;
+static gint ett_IWbemLevel1Login_WBEMLogin_orpcthat;
+static gint ett_IWbemLevel1Login_NTLMLogin_orpcthis;
+static gint ett_IWbemLevel1Login_NTLMLogin_orpcthat;
+static gint ett_dcerpc_IWbemLevel1Login;
+static gint ett_IWbemLevel1Login_ORPCTHIS;
+static gint ett_IWbemLevel1Login_ORPCTHAT;
+static gint ett_IWbemLevel1Login_IWbemServices;
/* Header field declarations */
-static gint hf_IWbemLevel1Login_EstablishPosition_LocaleVersion = -1;
-static gint hf_IWbemLevel1Login_EstablishPosition_orpcthat = -1;
-static gint hf_IWbemLevel1Login_EstablishPosition_orpcthis = -1;
-static gint hf_IWbemLevel1Login_EstablishPosition_reserved1 = -1;
-static gint hf_IWbemLevel1Login_EstablishPosition_reserved2 = -1;
-static gint hf_IWbemLevel1Login_IWbemServices_count = -1;
-static gint hf_IWbemLevel1Login_IWbemServices_services = -1;
-static gint hf_IWbemLevel1Login_NTLMLogin_lFlags = -1;
-static gint hf_IWbemLevel1Login_NTLMLogin_orpcthat = -1;
-static gint hf_IWbemLevel1Login_NTLMLogin_orpcthis = -1;
-static gint hf_IWbemLevel1Login_NTLMLogin_pCtx = -1;
-static gint hf_IWbemLevel1Login_NTLMLogin_ppNamespace = -1;
-static gint hf_IWbemLevel1Login_NTLMLogin_wszNetworkResource = -1;
-static gint hf_IWbemLevel1Login_NTLMLogin_wszPreferredLocale = -1;
-static gint hf_IWbemLevel1Login_RequestChallenge_orpcthat = -1;
-static gint hf_IWbemLevel1Login_RequestChallenge_orpcthis = -1;
-static gint hf_IWbemLevel1Login_RequestChallenge_reserved1 = -1;
-static gint hf_IWbemLevel1Login_RequestChallenge_reserved2 = -1;
-static gint hf_IWbemLevel1Login_RequestChallenge_reserved3 = -1;
-static gint hf_IWbemLevel1Login_WBEMLogin_orpcthat = -1;
-static gint hf_IWbemLevel1Login_WBEMLogin_orpcthis = -1;
-static gint hf_IWbemLevel1Login_WBEMLogin_ppNamespace = -1;
-static gint hf_IWbemLevel1Login_WBEMLogin_reserved1 = -1;
-static gint hf_IWbemLevel1Login_WBEMLogin_reserved2 = -1;
-static gint hf_IWbemLevel1Login_WBEMLogin_reserved3 = -1;
-static gint hf_IWbemLevel1Login_WBEMLogin_reserved4 = -1;
-static gint hf_IWbemLevel1Login_opnum = -1;
-static gint hf_IWbemLevel1Login_werror = -1;
+static gint hf_IWbemLevel1Login_EstablishPosition_LocaleVersion;
+static gint hf_IWbemLevel1Login_EstablishPosition_orpcthat;
+static gint hf_IWbemLevel1Login_EstablishPosition_orpcthis;
+static gint hf_IWbemLevel1Login_EstablishPosition_reserved1;
+static gint hf_IWbemLevel1Login_EstablishPosition_reserved2;
+static gint hf_IWbemLevel1Login_IWbemServices_count;
+static gint hf_IWbemLevel1Login_IWbemServices_services;
+static gint hf_IWbemLevel1Login_NTLMLogin_lFlags;
+static gint hf_IWbemLevel1Login_NTLMLogin_orpcthat;
+static gint hf_IWbemLevel1Login_NTLMLogin_orpcthis;
+static gint hf_IWbemLevel1Login_NTLMLogin_pCtx;
+static gint hf_IWbemLevel1Login_NTLMLogin_ppNamespace;
+static gint hf_IWbemLevel1Login_NTLMLogin_wszNetworkResource;
+static gint hf_IWbemLevel1Login_NTLMLogin_wszPreferredLocale;
+static gint hf_IWbemLevel1Login_RequestChallenge_orpcthat;
+static gint hf_IWbemLevel1Login_RequestChallenge_orpcthis;
+static gint hf_IWbemLevel1Login_RequestChallenge_reserved1;
+static gint hf_IWbemLevel1Login_RequestChallenge_reserved2;
+static gint hf_IWbemLevel1Login_RequestChallenge_reserved3;
+static gint hf_IWbemLevel1Login_WBEMLogin_orpcthat;
+static gint hf_IWbemLevel1Login_WBEMLogin_orpcthis;
+static gint hf_IWbemLevel1Login_WBEMLogin_ppNamespace;
+static gint hf_IWbemLevel1Login_WBEMLogin_reserved1;
+static gint hf_IWbemLevel1Login_WBEMLogin_reserved2;
+static gint hf_IWbemLevel1Login_WBEMLogin_reserved3;
+static gint hf_IWbemLevel1Login_WBEMLogin_reserved4;
+static gint hf_IWbemLevel1Login_opnum;
+static gint hf_IWbemLevel1Login_werror;
static gint proto_dcerpc_IWbemLevel1Login = -1;
/* Version information */
@@ -884,7 +884,7 @@ IWbemLevel1Login_dissect_NTLMLogin_request(tvbuff_t *tvb _U_, int offset _U_, pa
}
-static dcerpc_sub_dissector IWbemLevel1Login_dissectors[] = {
+static const dcerpc_sub_dissector IWbemLevel1Login_dissectors[] = {
{ 0, "iwbemlevel1login_opnum0",
IWbemLevel1Login_dissect_iwbemlevel1login_opnum0_request, IWbemLevel1Login_dissect_iwbemlevel1login_opnum0_response},
{ 1, "iwbemlevel1login_opnum1",
diff --git a/epan/dissectors/packet-dcerpc-iwbemloginclientid.c b/epan/dissectors/packet-dcerpc-iwbemloginclientid.c
index 4a3dedd85a..739e2295fd 100644
--- a/epan/dissectors/packet-dcerpc-iwbemloginclientid.c
+++ b/epan/dissectors/packet-dcerpc-iwbemloginclientid.c
@@ -22,21 +22,21 @@ void proto_register_dcerpc_IWbemLoginClientID(void);
void proto_reg_handoff_dcerpc_IWbemLoginClientID(void);
/* Ett declarations */
-static gint ett_IWbemLoginClientID_SetClientInfo_orpcthis = -1;
-static gint ett_IWbemLoginClientID_SetClientInfo_orpcthat = -1;
-static gint ett_dcerpc_IWbemLoginClientID = -1;
-static gint ett_IWbemLoginClientID_ORPCTHIS = -1;
-static gint ett_IWbemLoginClientID_ORPCTHAT = -1;
+static gint ett_IWbemLoginClientID_SetClientInfo_orpcthis;
+static gint ett_IWbemLoginClientID_SetClientInfo_orpcthat;
+static gint ett_dcerpc_IWbemLoginClientID;
+static gint ett_IWbemLoginClientID_ORPCTHIS;
+static gint ett_IWbemLoginClientID_ORPCTHAT;
/* Header field declarations */
-static gint hf_IWbemLoginClientID_SetClientInfo_lClientProcId = -1;
-static gint hf_IWbemLoginClientID_SetClientInfo_lReserved = -1;
-static gint hf_IWbemLoginClientID_SetClientInfo_orpcthat = -1;
-static gint hf_IWbemLoginClientID_SetClientInfo_orpcthis = -1;
-static gint hf_IWbemLoginClientID_SetClientInfo_wszClientMachine = -1;
-static gint hf_IWbemLoginClientID_opnum = -1;
-static gint hf_IWbemLoginClientID_werror = -1;
+static gint hf_IWbemLoginClientID_SetClientInfo_lClientProcId;
+static gint hf_IWbemLoginClientID_SetClientInfo_lReserved;
+static gint hf_IWbemLoginClientID_SetClientInfo_orpcthat;
+static gint hf_IWbemLoginClientID_SetClientInfo_orpcthis;
+static gint hf_IWbemLoginClientID_SetClientInfo_wszClientMachine;
+static gint hf_IWbemLoginClientID_opnum;
+static gint hf_IWbemLoginClientID_werror;
static gint proto_dcerpc_IWbemLoginClientID = -1;
/* Version information */
@@ -283,7 +283,7 @@ IWbemLoginClientID_dissect_SetClientInfo_request(tvbuff_t *tvb _U_, int offset _
}
-static dcerpc_sub_dissector IWbemLoginClientID_dissectors[] = {
+static const dcerpc_sub_dissector IWbemLoginClientID_dissectors[] = {
{ 0, "iwbemloginclientid_opnum0",
IWbemLoginClientID_dissect_iwbemloginclientid_opnum0_request, IWbemLoginClientID_dissect_iwbemloginclientid_opnum0_response},
{ 1, "iwbemloginclientid_opnum1",
diff --git a/epan/dissectors/packet-dcerpc-iwbemloginclientidex.c b/epan/dissectors/packet-dcerpc-iwbemloginclientidex.c
index a17e227549..88a1b2bd4b 100644
--- a/epan/dissectors/packet-dcerpc-iwbemloginclientidex.c
+++ b/epan/dissectors/packet-dcerpc-iwbemloginclientidex.c
@@ -22,26 +22,26 @@ void proto_register_dcerpc_IWbemLoginClientIDEx(void);
void proto_reg_handoff_dcerpc_IWbemLoginClientIDEx(void);
/* Ett declarations */
-static gint ett_IWbemLoginClientIDEx_SetClientInfoEx_orpcthis = -1;
-static gint ett_IWbemLoginClientIDEx_SetClientInfoEx_orpcthat = -1;
-static gint ett_dcerpc_IWbemLoginClientIDEx = -1;
-static gint ett_IWbemLoginClientIDEx_ORPCTHIS = -1;
-static gint ett_IWbemLoginClientIDEx_ORPCTHAT = -1;
-static gint ett_IWbemLoginClientIDEx_FILETIME = -1;
+static gint ett_IWbemLoginClientIDEx_SetClientInfoEx_orpcthis;
+static gint ett_IWbemLoginClientIDEx_SetClientInfoEx_orpcthat;
+static gint ett_dcerpc_IWbemLoginClientIDEx;
+static gint ett_IWbemLoginClientIDEx_ORPCTHIS;
+static gint ett_IWbemLoginClientIDEx_ORPCTHAT;
+static gint ett_IWbemLoginClientIDEx_FILETIME;
/* Header field declarations */
-static gint hf_IWbemLoginClientIDEx_FILETIME_dwHighDateTime = -1;
-static gint hf_IWbemLoginClientIDEx_FILETIME_dwLowDateTime = -1;
-static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientMachine = -1;
-static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientMachineFQDN = -1;
-static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientProcId = -1;
-static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientProcessCreationTime = -1;
-static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_Reserved = -1;
-static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_orpcthat = -1;
-static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_orpcthis = -1;
-static gint hf_IWbemLoginClientIDEx_opnum = -1;
-static gint hf_IWbemLoginClientIDEx_werror = -1;
+static gint hf_IWbemLoginClientIDEx_FILETIME_dwHighDateTime;
+static gint hf_IWbemLoginClientIDEx_FILETIME_dwLowDateTime;
+static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientMachine;
+static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientMachineFQDN;
+static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientProcId;
+static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_ClientProcessCreationTime;
+static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_Reserved;
+static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_orpcthat;
+static gint hf_IWbemLoginClientIDEx_SetClientInfoEx_orpcthis;
+static gint hf_IWbemLoginClientIDEx_opnum;
+static gint hf_IWbemLoginClientIDEx_werror;
static gint proto_dcerpc_IWbemLoginClientIDEx = -1;
/* Version information */
@@ -379,7 +379,7 @@ IWbemLoginClientIDEx_dissect_SetClientInfoEx_request(tvbuff_t *tvb _U_, int offs
}
-static dcerpc_sub_dissector IWbemLoginClientIDEx_dissectors[] = {
+static const dcerpc_sub_dissector IWbemLoginClientIDEx_dissectors[] = {
{ 0, "iwbemloginclientidex_opnum0",
IWbemLoginClientIDEx_dissect_iwbemloginclientidex_opnum0_request, IWbemLoginClientIDEx_dissect_iwbemloginclientidex_opnum0_response},
{ 1, "iwbemloginclientidex_opnum1",
diff --git a/epan/dissectors/packet-dcerpc-iwbemservices.c b/epan/dissectors/packet-dcerpc-iwbemservices.c
index 1c4e9ae091..2fc6510014 100644
--- a/epan/dissectors/packet-dcerpc-iwbemservices.c
+++ b/epan/dissectors/packet-dcerpc-iwbemservices.c
@@ -22,40 +22,40 @@ void proto_register_dcerpc_IWbemServices(void);
void proto_reg_handoff_dcerpc_IWbemServices(void);
/* Ett declarations */
-static gint ett_IWbemServices_GetObject_orpcthis = -1;
-static gint ett_IWbemServices_GetObject_orpcthat = -1;
-static gint ett_IWbemServices_ExecMethod_orpcthis = -1;
-static gint ett_IWbemServices_ExecMethod_orpcthat = -1;
-static gint ett_dcerpc_IWbemServices = -1;
-static gint ett_IWbemServices_ORPCTHIS = -1;
-static gint ett_IWbemServices_ORPCTHAT = -1;
-static gint ett_IWbemServices_IWbemCallResult = -1;
-static gint ett_IWbemServices_IWbemClassObject = -1;
-static gint ett_IWbemServices_MInterfacePointer = -1;
-static gint ett_IWbemServices_IWbemContext = -1;
+static gint ett_IWbemServices_GetObject_orpcthis;
+static gint ett_IWbemServices_GetObject_orpcthat;
+static gint ett_IWbemServices_ExecMethod_orpcthis;
+static gint ett_IWbemServices_ExecMethod_orpcthat;
+static gint ett_dcerpc_IWbemServices;
+static gint ett_IWbemServices_ORPCTHIS;
+static gint ett_IWbemServices_ORPCTHAT;
+static gint ett_IWbemServices_IWbemCallResult;
+static gint ett_IWbemServices_IWbemClassObject;
+static gint ett_IWbemServices_MInterfacePointer;
+static gint ett_IWbemServices_IWbemContext;
/* Header field declarations */
-static gint hf_IWbemServices_ExecMethod_lFlags = -1;
-static gint hf_IWbemServices_ExecMethod_orpcthat = -1;
-static gint hf_IWbemServices_ExecMethod_orpcthis = -1;
-static gint hf_IWbemServices_ExecMethod_strMethodName = -1;
-static gint hf_IWbemServices_ExecMethod_strObjectPath = -1;
-static gint hf_IWbemServices_GetObject_lFlags = -1;
-static gint hf_IWbemServices_GetObject_orpcthat = -1;
-static gint hf_IWbemServices_GetObject_orpcthis = -1;
-static gint hf_IWbemServices_GetObject_pCtx = -1;
-static gint hf_IWbemServices_GetObject_ppCallResult = -1;
-static gint hf_IWbemServices_GetObject_ppObject = -1;
-static gint hf_IWbemServices_GetObject_strObjectPath = -1;
-static gint hf_IWbemServices_IWbemClassObject_count = -1;
-static gint hf_IWbemServices_IWbemClassObject_objects = -1;
-static gint hf_IWbemServices_IWbemContext_intPtr = -1;
-static gint hf_IWbemServices_IWbemContext_u = -1;
-static gint hf_IWbemServices_MInterfacePointer_abData = -1;
-static gint hf_IWbemServices_MInterfacePointer_ulCntData = -1;
-static gint hf_IWbemServices_opnum = -1;
-static gint hf_IWbemServices_werror = -1;
+static gint hf_IWbemServices_ExecMethod_lFlags;
+static gint hf_IWbemServices_ExecMethod_orpcthat;
+static gint hf_IWbemServices_ExecMethod_orpcthis;
+static gint hf_IWbemServices_ExecMethod_strMethodName;
+static gint hf_IWbemServices_ExecMethod_strObjectPath;
+static gint hf_IWbemServices_GetObject_lFlags;
+static gint hf_IWbemServices_GetObject_orpcthat;
+static gint hf_IWbemServices_GetObject_orpcthis;
+static gint hf_IWbemServices_GetObject_pCtx;
+static gint hf_IWbemServices_GetObject_ppCallResult;
+static gint hf_IWbemServices_GetObject_ppObject;
+static gint hf_IWbemServices_GetObject_strObjectPath;
+static gint hf_IWbemServices_IWbemClassObject_count;
+static gint hf_IWbemServices_IWbemClassObject_objects;
+static gint hf_IWbemServices_IWbemContext_intPtr;
+static gint hf_IWbemServices_IWbemContext_u;
+static gint hf_IWbemServices_MInterfacePointer_abData;
+static gint hf_IWbemServices_MInterfacePointer_ulCntData;
+static gint hf_IWbemServices_opnum;
+static gint hf_IWbemServices_werror;
static gint proto_dcerpc_IWbemServices = -1;
/* Version information */
@@ -1211,7 +1211,7 @@ IWbemServices_dissect_ExecMethod_request(tvbuff_t *tvb _U_, int offset _U_, pack
}
-static dcerpc_sub_dissector IWbemServices_dissectors[] = {
+static const dcerpc_sub_dissector IWbemServices_dissectors[] = {
{ 0, "iwbemservices_opnum0",
IWbemServices_dissect_iwbemservices_opnum0_request, IWbemServices_dissect_iwbemservices_opnum0_response},
{ 1, "iwbemservices_opnum1",
diff --git a/epan/dissectors/packet-dcerpc-krb5rpc.c b/epan/dissectors/packet-dcerpc-krb5rpc.c
index 20c0906d6b..0c4baa49d3 100644
--- a/epan/dissectors/packet-dcerpc-krb5rpc.c
+++ b/epan/dissectors/packet-dcerpc-krb5rpc.c
@@ -127,7 +127,7 @@ krb5rpc_dissect_sendto_kdc_resp (tvbuff_t * tvb, int offset,
}
-static dcerpc_sub_dissector krb5rpc_dissectors[] = {
+static const dcerpc_sub_dissector krb5rpc_dissectors[] = {
{0, "rsec_krb5rpc_sendto_kdc", krb5rpc_dissect_sendto_kdc_rqst,
krb5rpc_dissect_sendto_kdc_resp},
{0, NULL, NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-llb.c b/epan/dissectors/packet-dcerpc-llb.c
index 9d0ea2e866..2ae22e9162 100644
--- a/epan/dissectors/packet-dcerpc-llb.c
+++ b/epan/dissectors/packet-dcerpc-llb.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_llb =
static guint16 ver_llb = 4;
-static dcerpc_sub_dissector llb_dissectors[] = {
+static const dcerpc_sub_dissector llb_dissectors[] = {
{0, "insert", NULL, NULL},
{1, "delete", NULL, NULL},
{2, "lookup", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-lsa.c b/epan/dissectors/packet-dcerpc-lsa.c
index f63ef243a3..d22bb29444 100644
--- a/epan/dissectors/packet-dcerpc-lsa.c
+++ b/epan/dissectors/packet-dcerpc-lsa.c
@@ -22,647 +22,647 @@ void proto_register_dcerpc_lsarpc(void);
void proto_reg_handoff_dcerpc_lsarpc(void);
/* Ett declarations */
-static gint ett_lsarpc_names = -1;
-static gint ett_dcerpc_lsarpc = -1;
-static gint ett_lsarpc_security_secinfo = -1;
-static gint ett_lsarpc_kerb_EncTypes = -1;
-static gint ett_lsarpc_lsa_String = -1;
-static gint ett_lsarpc_lsa_StringLarge = -1;
-static gint ett_lsarpc_lsa_Strings = -1;
-static gint ett_lsarpc_lsa_AsciiString = -1;
-static gint ett_lsarpc_lsa_AsciiStringLarge = -1;
-static gint ett_lsarpc_lsa_BinaryString = -1;
-static gint ett_lsarpc_lsa_LUID = -1;
-static gint ett_lsarpc_lsa_PrivEntry = -1;
-static gint ett_lsarpc_lsa_PrivArray = -1;
-static gint ett_lsarpc_lsa_QosInfo = -1;
-static gint ett_lsarpc_lsa_ObjectAttribute = -1;
-static gint ett_lsarpc_lsa_PolicyAccessMask = -1;
-static gint ett_lsarpc_lsa_AccountAccessMask = -1;
-static gint ett_lsarpc_lsa_SecretAccessMask = -1;
-static gint ett_lsarpc_lsa_TrustedAccessMask = -1;
-static gint ett_lsarpc_lsa_AuditLogInfo = -1;
-static gint ett_lsarpc_lsa_AuditEventsInfo = -1;
-static gint ett_lsarpc_lsa_DomainInfo = -1;
-static gint ett_lsarpc_lsa_PDAccountInfo = -1;
-static gint ett_lsarpc_lsa_ServerRole = -1;
-static gint ett_lsarpc_lsa_ReplicaSourceInfo = -1;
-static gint ett_lsarpc_lsa_DefaultQuotaInfo = -1;
-static gint ett_lsarpc_lsa_ModificationInfo = -1;
-static gint ett_lsarpc_lsa_AuditFullSetInfo = -1;
-static gint ett_lsarpc_lsa_AuditFullQueryInfo = -1;
-static gint ett_lsarpc_lsa_DnsDomainInfo = -1;
-static gint ett_lsarpc_lsa_PolicyInformation = -1;
-static gint ett_lsarpc_lsa_SidPtr = -1;
-static gint ett_lsarpc_lsa_SidArray = -1;
-static gint ett_lsarpc_lsa_DomainList = -1;
-static gint ett_lsarpc_lsa_TranslatedSid = -1;
-static gint ett_lsarpc_lsa_TransSidArray = -1;
-static gint ett_lsarpc_lsa_RefDomainList = -1;
-static gint ett_lsarpc_lsa_TranslatedName = -1;
-static gint ett_lsarpc_lsa_TransNameArray = -1;
-static gint ett_lsarpc_lsa_LUIDAttribute = -1;
-static gint ett_lsarpc_lsa_PrivilegeSet = -1;
-static gint ett_lsarpc_lsa_DATA_BUF = -1;
-static gint ett_lsarpc_lsa_DATA_BUF2 = -1;
-static gint ett_lsarpc_lsa_TrustDirection = -1;
-static gint ett_lsarpc_lsa_TrustAttributes = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoName = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoControllers = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoPosixOffset = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoPassword = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoBasic = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoInfoEx = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoBuffer = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfo = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoFullInfo = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfoInternal = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoFullInfoInternal = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoInfoEx2Internal = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoFullInfo2Internal = -1;
-static gint ett_lsarpc_lsa_TrustDomainInfoSupportedEncTypes = -1;
-static gint ett_lsarpc_lsa_TrustedDomainInfo = -1;
-static gint ett_lsarpc_lsa_DATA_BUF_PTR = -1;
-static gint ett_lsarpc_lsa_RightAttribute = -1;
-static gint ett_lsarpc_lsa_RightSet = -1;
-static gint ett_lsarpc_lsa_DomainListEx = -1;
-static gint ett_lsarpc_lsa_DomainInfoQoS = -1;
-static gint ett_lsarpc_lsa_krbAuthenticationOptions = -1;
-static gint ett_lsarpc_lsa_DomainInfoKerberos = -1;
-static gint ett_lsarpc_lsa_DomainInfoEfs = -1;
-static gint ett_lsarpc_lsa_DomainInformationPolicy = -1;
-static gint ett_lsarpc_lsa_TranslatedName2 = -1;
-static gint ett_lsarpc_lsa_TransNameArray2 = -1;
-static gint ett_lsarpc_lsa_TranslatedSid2 = -1;
-static gint ett_lsarpc_lsa_TransSidArray2 = -1;
-static gint ett_lsarpc_lsa_TranslatedSid3 = -1;
-static gint ett_lsarpc_lsa_TransSidArray3 = -1;
-static gint ett_lsarpc_lsa_ForestTrustRecordFlags = -1;
-static gint ett_lsarpc_lsa_ForestTrustBinaryData = -1;
-static gint ett_lsarpc_lsa_ForestTrustDomainInfo = -1;
-static gint ett_lsarpc_lsa_ForestTrustData = -1;
-static gint ett_lsarpc_lsa_ForestTrustRecord = -1;
-static gint ett_lsarpc_lsa_ForestTrustInformation = -1;
-static gint ett_lsarpc_lsa_ForestTrustCollisionRecord = -1;
-static gint ett_lsarpc_lsa_ForestTrustCollisionInfo = -1;
-static gint ett_lsarpc_lsa_RevisionSupportedFeature = -1;
-static gint ett_lsarpc_lsa_revision_info1 = -1;
-static gint ett_lsarpc_lsa_revision_info = -1;
-static gint ett_lsarpc_lsa_ForestTrustData2 = -1;
-static gint ett_lsarpc_lsa_ForestTrustRecord2 = -1;
-static gint ett_lsarpc_lsa_ForestTrustInformation2 = -1;
+static gint ett_lsarpc_names;
+static gint ett_dcerpc_lsarpc;
+static gint ett_lsarpc_security_secinfo;
+static gint ett_lsarpc_kerb_EncTypes;
+static gint ett_lsarpc_lsa_String;
+static gint ett_lsarpc_lsa_StringLarge;
+static gint ett_lsarpc_lsa_Strings;
+static gint ett_lsarpc_lsa_AsciiString;
+static gint ett_lsarpc_lsa_AsciiStringLarge;
+static gint ett_lsarpc_lsa_BinaryString;
+static gint ett_lsarpc_lsa_LUID;
+static gint ett_lsarpc_lsa_PrivEntry;
+static gint ett_lsarpc_lsa_PrivArray;
+static gint ett_lsarpc_lsa_QosInfo;
+static gint ett_lsarpc_lsa_ObjectAttribute;
+static gint ett_lsarpc_lsa_PolicyAccessMask;
+static gint ett_lsarpc_lsa_AccountAccessMask;
+static gint ett_lsarpc_lsa_SecretAccessMask;
+static gint ett_lsarpc_lsa_TrustedAccessMask;
+static gint ett_lsarpc_lsa_AuditLogInfo;
+static gint ett_lsarpc_lsa_AuditEventsInfo;
+static gint ett_lsarpc_lsa_DomainInfo;
+static gint ett_lsarpc_lsa_PDAccountInfo;
+static gint ett_lsarpc_lsa_ServerRole;
+static gint ett_lsarpc_lsa_ReplicaSourceInfo;
+static gint ett_lsarpc_lsa_DefaultQuotaInfo;
+static gint ett_lsarpc_lsa_ModificationInfo;
+static gint ett_lsarpc_lsa_AuditFullSetInfo;
+static gint ett_lsarpc_lsa_AuditFullQueryInfo;
+static gint ett_lsarpc_lsa_DnsDomainInfo;
+static gint ett_lsarpc_lsa_PolicyInformation;
+static gint ett_lsarpc_lsa_SidPtr;
+static gint ett_lsarpc_lsa_SidArray;
+static gint ett_lsarpc_lsa_DomainList;
+static gint ett_lsarpc_lsa_TranslatedSid;
+static gint ett_lsarpc_lsa_TransSidArray;
+static gint ett_lsarpc_lsa_RefDomainList;
+static gint ett_lsarpc_lsa_TranslatedName;
+static gint ett_lsarpc_lsa_TransNameArray;
+static gint ett_lsarpc_lsa_LUIDAttribute;
+static gint ett_lsarpc_lsa_PrivilegeSet;
+static gint ett_lsarpc_lsa_DATA_BUF;
+static gint ett_lsarpc_lsa_DATA_BUF2;
+static gint ett_lsarpc_lsa_TrustDirection;
+static gint ett_lsarpc_lsa_TrustAttributes;
+static gint ett_lsarpc_lsa_TrustDomainInfoName;
+static gint ett_lsarpc_lsa_TrustDomainInfoControllers;
+static gint ett_lsarpc_lsa_TrustDomainInfoPosixOffset;
+static gint ett_lsarpc_lsa_TrustDomainInfoPassword;
+static gint ett_lsarpc_lsa_TrustDomainInfoBasic;
+static gint ett_lsarpc_lsa_TrustDomainInfoInfoEx;
+static gint ett_lsarpc_lsa_TrustDomainInfoBuffer;
+static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfo;
+static gint ett_lsarpc_lsa_TrustDomainInfoFullInfo;
+static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfoInternal;
+static gint ett_lsarpc_lsa_TrustDomainInfoFullInfoInternal;
+static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES;
+static gint ett_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES;
+static gint ett_lsarpc_lsa_TrustDomainInfoInfoEx2Internal;
+static gint ett_lsarpc_lsa_TrustDomainInfoFullInfo2Internal;
+static gint ett_lsarpc_lsa_TrustDomainInfoSupportedEncTypes;
+static gint ett_lsarpc_lsa_TrustedDomainInfo;
+static gint ett_lsarpc_lsa_DATA_BUF_PTR;
+static gint ett_lsarpc_lsa_RightAttribute;
+static gint ett_lsarpc_lsa_RightSet;
+static gint ett_lsarpc_lsa_DomainListEx;
+static gint ett_lsarpc_lsa_DomainInfoQoS;
+static gint ett_lsarpc_lsa_krbAuthenticationOptions;
+static gint ett_lsarpc_lsa_DomainInfoKerberos;
+static gint ett_lsarpc_lsa_DomainInfoEfs;
+static gint ett_lsarpc_lsa_DomainInformationPolicy;
+static gint ett_lsarpc_lsa_TranslatedName2;
+static gint ett_lsarpc_lsa_TransNameArray2;
+static gint ett_lsarpc_lsa_TranslatedSid2;
+static gint ett_lsarpc_lsa_TransSidArray2;
+static gint ett_lsarpc_lsa_TranslatedSid3;
+static gint ett_lsarpc_lsa_TransSidArray3;
+static gint ett_lsarpc_lsa_ForestTrustRecordFlags;
+static gint ett_lsarpc_lsa_ForestTrustBinaryData;
+static gint ett_lsarpc_lsa_ForestTrustDomainInfo;
+static gint ett_lsarpc_lsa_ForestTrustData;
+static gint ett_lsarpc_lsa_ForestTrustRecord;
+static gint ett_lsarpc_lsa_ForestTrustInformation;
+static gint ett_lsarpc_lsa_ForestTrustCollisionRecord;
+static gint ett_lsarpc_lsa_ForestTrustCollisionInfo;
+static gint ett_lsarpc_lsa_RevisionSupportedFeature;
+static gint ett_lsarpc_lsa_revision_info1;
+static gint ett_lsarpc_lsa_revision_info;
+static gint ett_lsarpc_lsa_ForestTrustData2;
+static gint ett_lsarpc_lsa_ForestTrustRecord2;
+static gint ett_lsarpc_lsa_ForestTrustInformation2;
/* Header field declarations */
-static gint hf_lsarpc_String_name = -1;
-static gint hf_lsarpc_account_access_mask = -1;
-static gint hf_lsarpc_domain_access_mask = -1;
-static gint hf_lsarpc_efs_blob_len = -1;
-static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_PRIVILEGES = -1;
-static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_QUOTAS = -1;
-static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS = -1;
-static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_VIEW = -1;
-static gint hf_lsarpc_lsa_AddAccountRights_handle = -1;
-static gint hf_lsarpc_lsa_AddAccountRights_rights = -1;
-static gint hf_lsarpc_lsa_AddAccountRights_sid = -1;
-static gint hf_lsarpc_lsa_AddPrivilegesToAccount_handle = -1;
-static gint hf_lsarpc_lsa_AddPrivilegesToAccount_privs = -1;
-static gint hf_lsarpc_lsa_AsciiStringLarge_length = -1;
-static gint hf_lsarpc_lsa_AsciiStringLarge_size = -1;
-static gint hf_lsarpc_lsa_AsciiStringLarge_string = -1;
-static gint hf_lsarpc_lsa_AsciiString_length = -1;
-static gint hf_lsarpc_lsa_AsciiString_size = -1;
-static gint hf_lsarpc_lsa_AsciiString_string = -1;
-static gint hf_lsarpc_lsa_AuditEventsInfo_auditing_mode = -1;
-static gint hf_lsarpc_lsa_AuditEventsInfo_count = -1;
-static gint hf_lsarpc_lsa_AuditEventsInfo_settings = -1;
-static gint hf_lsarpc_lsa_AuditFullQueryInfo_log_is_full = -1;
-static gint hf_lsarpc_lsa_AuditFullQueryInfo_shutdown_on_full = -1;
-static gint hf_lsarpc_lsa_AuditFullSetInfo_shutdown_on_full = -1;
-static gint hf_lsarpc_lsa_AuditLogInfo_maximum_log_size = -1;
-static gint hf_lsarpc_lsa_AuditLogInfo_next_audit_record = -1;
-static gint hf_lsarpc_lsa_AuditLogInfo_percent_full = -1;
-static gint hf_lsarpc_lsa_AuditLogInfo_retention_time = -1;
-static gint hf_lsarpc_lsa_AuditLogInfo_shutdown_in_progress = -1;
-static gint hf_lsarpc_lsa_AuditLogInfo_time_to_shutdown = -1;
-static gint hf_lsarpc_lsa_BinaryString_array = -1;
-static gint hf_lsarpc_lsa_BinaryString_length = -1;
-static gint hf_lsarpc_lsa_BinaryString_size = -1;
-static gint hf_lsarpc_lsa_CloseTrustedDomainEx_handle = -1;
-static gint hf_lsarpc_lsa_Close_handle = -1;
-static gint hf_lsarpc_lsa_CreateAccount_access_mask = -1;
-static gint hf_lsarpc_lsa_CreateAccount_acct_handle = -1;
-static gint hf_lsarpc_lsa_CreateAccount_handle = -1;
-static gint hf_lsarpc_lsa_CreateAccount_sid = -1;
-static gint hf_lsarpc_lsa_CreateSecret_access_mask = -1;
-static gint hf_lsarpc_lsa_CreateSecret_handle = -1;
-static gint hf_lsarpc_lsa_CreateSecret_name = -1;
-static gint hf_lsarpc_lsa_CreateSecret_sec_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_access_mask = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_auth_info_internal = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_info = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_policy_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_access_mask = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_auth_info_internal = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_info = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_policy_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx_access_mask = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx_auth_info = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx_info = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx_policy_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomainEx_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomain_access_mask = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomain_info = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomain_policy_handle = -1;
-static gint hf_lsarpc_lsa_CreateTrustedDomain_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_DATA_BUF2_data = -1;
-static gint hf_lsarpc_lsa_DATA_BUF2_size = -1;
-static gint hf_lsarpc_lsa_DATA_BUF_PTR_buf = -1;
-static gint hf_lsarpc_lsa_DATA_BUF_data = -1;
-static gint hf_lsarpc_lsa_DATA_BUF_length = -1;
-static gint hf_lsarpc_lsa_DATA_BUF_size = -1;
-static gint hf_lsarpc_lsa_DefaultQuotaInfo_max_wss = -1;
-static gint hf_lsarpc_lsa_DefaultQuotaInfo_min_wss = -1;
-static gint hf_lsarpc_lsa_DefaultQuotaInfo_non_paged_pool = -1;
-static gint hf_lsarpc_lsa_DefaultQuotaInfo_paged_pool = -1;
-static gint hf_lsarpc_lsa_DefaultQuotaInfo_pagefile = -1;
-static gint hf_lsarpc_lsa_DefaultQuotaInfo_unknown = -1;
-static gint hf_lsarpc_lsa_DeleteObject_handle = -1;
-static gint hf_lsarpc_lsa_DeleteTrustedDomain_dom_sid = -1;
-static gint hf_lsarpc_lsa_DeleteTrustedDomain_handle = -1;
-static gint hf_lsarpc_lsa_Delete_handle = -1;
-static gint hf_lsarpc_lsa_DnsDomainInfo_dns_domain = -1;
-static gint hf_lsarpc_lsa_DnsDomainInfo_dns_forest = -1;
-static gint hf_lsarpc_lsa_DnsDomainInfo_domain_guid = -1;
-static gint hf_lsarpc_lsa_DnsDomainInfo_name = -1;
-static gint hf_lsarpc_lsa_DnsDomainInfo_sid = -1;
-static gint hf_lsarpc_lsa_DomainInfoEfs_blob_size = -1;
-static gint hf_lsarpc_lsa_DomainInfoEfs_efs_blob = -1;
-static gint hf_lsarpc_lsa_DomainInfoKerberos_authentication_options = -1;
-static gint hf_lsarpc_lsa_DomainInfoKerberos_clock_skew = -1;
-static gint hf_lsarpc_lsa_DomainInfoKerberos_reserved = -1;
-static gint hf_lsarpc_lsa_DomainInfoKerberos_service_tkt_lifetime = -1;
-static gint hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_lifetime = -1;
-static gint hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_renewaltime = -1;
-static gint hf_lsarpc_lsa_DomainInfoQoS_quality_of_service = -1;
-static gint hf_lsarpc_lsa_DomainInfo_name = -1;
-static gint hf_lsarpc_lsa_DomainInfo_sid = -1;
-static gint hf_lsarpc_lsa_DomainInformationPolicy_efs_info = -1;
-static gint hf_lsarpc_lsa_DomainInformationPolicy_kerberos_info = -1;
-static gint hf_lsarpc_lsa_DomainInformationPolicy_qos_info = -1;
-static gint hf_lsarpc_lsa_DomainListEx_count = -1;
-static gint hf_lsarpc_lsa_DomainListEx_domains = -1;
-static gint hf_lsarpc_lsa_DomainList_count = -1;
-static gint hf_lsarpc_lsa_DomainList_domains = -1;
-static gint hf_lsarpc_lsa_EnumAccountRights_handle = -1;
-static gint hf_lsarpc_lsa_EnumAccountRights_rights = -1;
-static gint hf_lsarpc_lsa_EnumAccountRights_sid = -1;
-static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_handle = -1;
-static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_name = -1;
-static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_sids = -1;
-static gint hf_lsarpc_lsa_EnumAccounts_handle = -1;
-static gint hf_lsarpc_lsa_EnumAccounts_num_entries = -1;
-static gint hf_lsarpc_lsa_EnumAccounts_resume_handle = -1;
-static gint hf_lsarpc_lsa_EnumAccounts_sids = -1;
-static gint hf_lsarpc_lsa_EnumPrivsAccount_handle = -1;
-static gint hf_lsarpc_lsa_EnumPrivsAccount_privs = -1;
-static gint hf_lsarpc_lsa_EnumPrivs_handle = -1;
-static gint hf_lsarpc_lsa_EnumPrivs_max_count = -1;
-static gint hf_lsarpc_lsa_EnumPrivs_privs = -1;
-static gint hf_lsarpc_lsa_EnumPrivs_resume_handle = -1;
-static gint hf_lsarpc_lsa_EnumTrustDom_domains = -1;
-static gint hf_lsarpc_lsa_EnumTrustDom_handle = -1;
-static gint hf_lsarpc_lsa_EnumTrustDom_max_size = -1;
-static gint hf_lsarpc_lsa_EnumTrustDom_resume_handle = -1;
-static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_domains = -1;
-static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_handle = -1;
-static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_max_size = -1;
-static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_resume_handle = -1;
-static gint hf_lsarpc_lsa_ForestTrustBinaryData_data = -1;
-static gint hf_lsarpc_lsa_ForestTrustBinaryData_length = -1;
-static gint hf_lsarpc_lsa_ForestTrustCollisionInfo_count = -1;
-static gint hf_lsarpc_lsa_ForestTrustCollisionInfo_entries = -1;
-static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_flags = -1;
-static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_index = -1;
-static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_name = -1;
-static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_type = -1;
-static gint hf_lsarpc_lsa_ForestTrustData2_data = -1;
-static gint hf_lsarpc_lsa_ForestTrustData2_domain_info = -1;
-static gint hf_lsarpc_lsa_ForestTrustData2_scanner_info = -1;
-static gint hf_lsarpc_lsa_ForestTrustData2_top_level_name = -1;
-static gint hf_lsarpc_lsa_ForestTrustData2_top_level_name_ex = -1;
-static gint hf_lsarpc_lsa_ForestTrustData_data = -1;
-static gint hf_lsarpc_lsa_ForestTrustData_domain_info = -1;
-static gint hf_lsarpc_lsa_ForestTrustData_top_level_name = -1;
-static gint hf_lsarpc_lsa_ForestTrustData_top_level_name_ex = -1;
-static gint hf_lsarpc_lsa_ForestTrustDomainInfo_dns_domain_name = -1;
-static gint hf_lsarpc_lsa_ForestTrustDomainInfo_domain_sid = -1;
-static gint hf_lsarpc_lsa_ForestTrustDomainInfo_netbios_domain_name = -1;
-static gint hf_lsarpc_lsa_ForestTrustInformation2_count = -1;
-static gint hf_lsarpc_lsa_ForestTrustInformation2_entries = -1;
-static gint hf_lsarpc_lsa_ForestTrustInformation_count = -1;
-static gint hf_lsarpc_lsa_ForestTrustInformation_entries = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord2_flags = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord2_forest_trust_data = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord2_time = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord2_type = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_NB_DISABLED_ADMIN = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_NB_DISABLED_CONFLICT = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_SID_DISABLED_ADMIN = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_SID_DISABLED_CONFLICT = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_TLN_DISABLED_ADMIN = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_TLN_DISABLED_CONFLICT = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_TLN_DISABLED_NEW = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord_flags = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord_forest_trust_data = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord_time = -1;
-static gint hf_lsarpc_lsa_ForestTrustRecord_type = -1;
-static gint hf_lsarpc_lsa_GetSystemAccessAccount_access_mask = -1;
-static gint hf_lsarpc_lsa_GetSystemAccessAccount_handle = -1;
-static gint hf_lsarpc_lsa_GetUserName_account_name = -1;
-static gint hf_lsarpc_lsa_GetUserName_authority_name = -1;
-static gint hf_lsarpc_lsa_GetUserName_system_name = -1;
-static gint hf_lsarpc_lsa_LUIDAttribute_attribute = -1;
-static gint hf_lsarpc_lsa_LUIDAttribute_luid = -1;
-static gint hf_lsarpc_lsa_LUID_high = -1;
-static gint hf_lsarpc_lsa_LUID_low = -1;
-static gint hf_lsarpc_lsa_LookupNames2_client_revision = -1;
-static gint hf_lsarpc_lsa_LookupNames2_count = -1;
-static gint hf_lsarpc_lsa_LookupNames2_domains = -1;
-static gint hf_lsarpc_lsa_LookupNames2_handle = -1;
-static gint hf_lsarpc_lsa_LookupNames2_level = -1;
-static gint hf_lsarpc_lsa_LookupNames2_lookup_options = -1;
-static gint hf_lsarpc_lsa_LookupNames2_names = -1;
-static gint hf_lsarpc_lsa_LookupNames2_num_names = -1;
-static gint hf_lsarpc_lsa_LookupNames2_sids = -1;
-static gint hf_lsarpc_lsa_LookupNames3_client_revision = -1;
-static gint hf_lsarpc_lsa_LookupNames3_count = -1;
-static gint hf_lsarpc_lsa_LookupNames3_domains = -1;
-static gint hf_lsarpc_lsa_LookupNames3_handle = -1;
-static gint hf_lsarpc_lsa_LookupNames3_level = -1;
-static gint hf_lsarpc_lsa_LookupNames3_lookup_options = -1;
-static gint hf_lsarpc_lsa_LookupNames3_names = -1;
-static gint hf_lsarpc_lsa_LookupNames3_num_names = -1;
-static gint hf_lsarpc_lsa_LookupNames3_sids = -1;
-static gint hf_lsarpc_lsa_LookupNames4_client_revision = -1;
-static gint hf_lsarpc_lsa_LookupNames4_count = -1;
-static gint hf_lsarpc_lsa_LookupNames4_domains = -1;
-static gint hf_lsarpc_lsa_LookupNames4_level = -1;
-static gint hf_lsarpc_lsa_LookupNames4_lookup_options = -1;
-static gint hf_lsarpc_lsa_LookupNames4_names = -1;
-static gint hf_lsarpc_lsa_LookupNames4_num_names = -1;
-static gint hf_lsarpc_lsa_LookupNames4_sids = -1;
-static gint hf_lsarpc_lsa_LookupNames_count = -1;
-static gint hf_lsarpc_lsa_LookupNames_domains = -1;
-static gint hf_lsarpc_lsa_LookupNames_handle = -1;
-static gint hf_lsarpc_lsa_LookupNames_level = -1;
-static gint hf_lsarpc_lsa_LookupNames_names = -1;
-static gint hf_lsarpc_lsa_LookupNames_num_names = -1;
-static gint hf_lsarpc_lsa_LookupNames_sids = -1;
-static gint hf_lsarpc_lsa_LookupPrivDisplayName_disp_name = -1;
-static gint hf_lsarpc_lsa_LookupPrivDisplayName_handle = -1;
-static gint hf_lsarpc_lsa_LookupPrivDisplayName_language_id = -1;
-static gint hf_lsarpc_lsa_LookupPrivDisplayName_language_id_sys = -1;
-static gint hf_lsarpc_lsa_LookupPrivDisplayName_name = -1;
-static gint hf_lsarpc_lsa_LookupPrivDisplayName_returned_language_id = -1;
-static gint hf_lsarpc_lsa_LookupPrivName_handle = -1;
-static gint hf_lsarpc_lsa_LookupPrivName_luid = -1;
-static gint hf_lsarpc_lsa_LookupPrivName_name = -1;
-static gint hf_lsarpc_lsa_LookupPrivValue_handle = -1;
-static gint hf_lsarpc_lsa_LookupPrivValue_luid = -1;
-static gint hf_lsarpc_lsa_LookupPrivValue_name = -1;
-static gint hf_lsarpc_lsa_LookupSids2_client_revision = -1;
-static gint hf_lsarpc_lsa_LookupSids2_count = -1;
-static gint hf_lsarpc_lsa_LookupSids2_domains = -1;
-static gint hf_lsarpc_lsa_LookupSids2_handle = -1;
-static gint hf_lsarpc_lsa_LookupSids2_level = -1;
-static gint hf_lsarpc_lsa_LookupSids2_lookup_options = -1;
-static gint hf_lsarpc_lsa_LookupSids2_names = -1;
-static gint hf_lsarpc_lsa_LookupSids2_sids = -1;
-static gint hf_lsarpc_lsa_LookupSids3_client_revision = -1;
-static gint hf_lsarpc_lsa_LookupSids3_count = -1;
-static gint hf_lsarpc_lsa_LookupSids3_domains = -1;
-static gint hf_lsarpc_lsa_LookupSids3_level = -1;
-static gint hf_lsarpc_lsa_LookupSids3_lookup_options = -1;
-static gint hf_lsarpc_lsa_LookupSids3_names = -1;
-static gint hf_lsarpc_lsa_LookupSids3_sids = -1;
-static gint hf_lsarpc_lsa_LookupSids_count = -1;
-static gint hf_lsarpc_lsa_LookupSids_domains = -1;
-static gint hf_lsarpc_lsa_LookupSids_handle = -1;
-static gint hf_lsarpc_lsa_LookupSids_level = -1;
-static gint hf_lsarpc_lsa_LookupSids_names = -1;
-static gint hf_lsarpc_lsa_LookupSids_sids = -1;
-static gint hf_lsarpc_lsa_ModificationInfo_db_create_time = -1;
-static gint hf_lsarpc_lsa_ModificationInfo_modified_id = -1;
-static gint hf_lsarpc_lsa_ObjectAttribute_attributes = -1;
-static gint hf_lsarpc_lsa_ObjectAttribute_len = -1;
-static gint hf_lsarpc_lsa_ObjectAttribute_object_name = -1;
-static gint hf_lsarpc_lsa_ObjectAttribute_root_dir = -1;
-static gint hf_lsarpc_lsa_ObjectAttribute_sec_desc = -1;
-static gint hf_lsarpc_lsa_ObjectAttribute_sec_qos = -1;
-static gint hf_lsarpc_lsa_OpenAccount_access_mask = -1;
-static gint hf_lsarpc_lsa_OpenAccount_acct_handle = -1;
-static gint hf_lsarpc_lsa_OpenAccount_handle = -1;
-static gint hf_lsarpc_lsa_OpenAccount_sid = -1;
-static gint hf_lsarpc_lsa_OpenPolicy2_access_mask = -1;
-static gint hf_lsarpc_lsa_OpenPolicy2_attr = -1;
-static gint hf_lsarpc_lsa_OpenPolicy2_handle = -1;
-static gint hf_lsarpc_lsa_OpenPolicy2_system_name = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_access_mask = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_attr = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_handle = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_in_revision_info = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_in_version = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_out_revision_info = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_out_version = -1;
-static gint hf_lsarpc_lsa_OpenPolicy3_system_name = -1;
-static gint hf_lsarpc_lsa_OpenPolicy_access_mask = -1;
-static gint hf_lsarpc_lsa_OpenPolicy_attr = -1;
-static gint hf_lsarpc_lsa_OpenPolicy_handle = -1;
-static gint hf_lsarpc_lsa_OpenPolicy_system_name = -1;
-static gint hf_lsarpc_lsa_OpenSecret_access_mask = -1;
-static gint hf_lsarpc_lsa_OpenSecret_handle = -1;
-static gint hf_lsarpc_lsa_OpenSecret_name = -1;
-static gint hf_lsarpc_lsa_OpenSecret_sec_handle = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomainByName_access_mask = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomainByName_handle = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomainByName_name = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomainByName_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomain_access_mask = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomain_handle = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomain_sid = -1;
-static gint hf_lsarpc_lsa_OpenTrustedDomain_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_PDAccountInfo_name = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_AUDIT_LOG_ADMIN = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_ACCOUNT = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_PRIVILEGE = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_SECRET = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_GET_PRIVATE_INFORMATION = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_LOOKUP_NAMES = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_NOTIFICATION = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SERVER_ADMIN = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_AUDIT_REQUIREMENTS = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_TRUST_ADMIN = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_AUDIT_INFORMATION = -1;
-static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_LOCAL_INFORMATION = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_account_domain = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_audit_events = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_audit_log = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_auditfullquery = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_auditfullset = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_dns = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_dns_int = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_domain = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_l_account_domain = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_mod = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_pd = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_quota = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_replica = -1;
-static gint hf_lsarpc_lsa_PolicyInformation_role = -1;
-static gint hf_lsarpc_lsa_PrivArray_count = -1;
-static gint hf_lsarpc_lsa_PrivArray_privs = -1;
-static gint hf_lsarpc_lsa_PrivEntry_luid = -1;
-static gint hf_lsarpc_lsa_PrivEntry_name = -1;
-static gint hf_lsarpc_lsa_PrivilegeSet_count = -1;
-static gint hf_lsarpc_lsa_PrivilegeSet_set = -1;
-static gint hf_lsarpc_lsa_PrivilegeSet_unknown = -1;
-static gint hf_lsarpc_lsa_QosInfo_context_mode = -1;
-static gint hf_lsarpc_lsa_QosInfo_effective_only = -1;
-static gint hf_lsarpc_lsa_QosInfo_impersonation_level = -1;
-static gint hf_lsarpc_lsa_QosInfo_len = -1;
-static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_handle = -1;
-static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_info = -1;
-static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_level = -1;
-static gint hf_lsarpc_lsa_QueryInfoPolicy2_handle = -1;
-static gint hf_lsarpc_lsa_QueryInfoPolicy2_info = -1;
-static gint hf_lsarpc_lsa_QueryInfoPolicy2_level = -1;
-static gint hf_lsarpc_lsa_QueryInfoPolicy_handle = -1;
-static gint hf_lsarpc_lsa_QueryInfoPolicy_info = -1;
-static gint hf_lsarpc_lsa_QueryInfoPolicy_level = -1;
-static gint hf_lsarpc_lsa_QuerySecret_new_mtime = -1;
-static gint hf_lsarpc_lsa_QuerySecret_new_val = -1;
-static gint hf_lsarpc_lsa_QuerySecret_old_mtime = -1;
-static gint hf_lsarpc_lsa_QuerySecret_old_val = -1;
-static gint hf_lsarpc_lsa_QuerySecret_sec_handle = -1;
-static gint hf_lsarpc_lsa_QuerySecurity_handle = -1;
-static gint hf_lsarpc_lsa_QuerySecurity_sdbuf = -1;
-static gint hf_lsarpc_lsa_QuerySecurity_sec_info = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_handle = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_info = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_level = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_trusted_domain = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_dom_sid = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_handle = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_info = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_level = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_info = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_level = -1;
-static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_RefDomainList_count = -1;
-static gint hf_lsarpc_lsa_RefDomainList_domains = -1;
-static gint hf_lsarpc_lsa_RefDomainList_max_size = -1;
-static gint hf_lsarpc_lsa_RemoveAccountRights_handle = -1;
-static gint hf_lsarpc_lsa_RemoveAccountRights_remove_all = -1;
-static gint hf_lsarpc_lsa_RemoveAccountRights_rights = -1;
-static gint hf_lsarpc_lsa_RemoveAccountRights_sid = -1;
-static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_handle = -1;
-static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_privs = -1;
-static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_remove_all = -1;
-static gint hf_lsarpc_lsa_ReplicaSourceInfo_account = -1;
-static gint hf_lsarpc_lsa_ReplicaSourceInfo_source = -1;
-static gint hf_lsarpc_lsa_RetrievePrivateData_handle = -1;
-static gint hf_lsarpc_lsa_RetrievePrivateData_name = -1;
-static gint hf_lsarpc_lsa_RetrievePrivateData_val = -1;
-static gint hf_lsarpc_lsa_RevisionSupportedFeature_LSA_FEATURE_TDO_AUTH_INFO_AES_CIPHER = -1;
-static gint hf_lsarpc_lsa_RightAttribute_name = -1;
-static gint hf_lsarpc_lsa_RightSet_count = -1;
-static gint hf_lsarpc_lsa_RightSet_names = -1;
-static gint hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE = -1;
-static gint hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_SET_VALUE = -1;
-static gint hf_lsarpc_lsa_ServerRole_role = -1;
-static gint hf_lsarpc_lsa_SetDomainInformationPolicy_handle = -1;
-static gint hf_lsarpc_lsa_SetDomainInformationPolicy_info = -1;
-static gint hf_lsarpc_lsa_SetDomainInformationPolicy_level = -1;
-static gint hf_lsarpc_lsa_SetInfoPolicy2_handle = -1;
-static gint hf_lsarpc_lsa_SetInfoPolicy2_info = -1;
-static gint hf_lsarpc_lsa_SetInfoPolicy2_level = -1;
-static gint hf_lsarpc_lsa_SetInfoPolicy_handle = -1;
-static gint hf_lsarpc_lsa_SetInfoPolicy_info = -1;
-static gint hf_lsarpc_lsa_SetInfoPolicy_level = -1;
-static gint hf_lsarpc_lsa_SetInformationTrustedDomain_info = -1;
-static gint hf_lsarpc_lsa_SetInformationTrustedDomain_level = -1;
-static gint hf_lsarpc_lsa_SetInformationTrustedDomain_trustdom_handle = -1;
-static gint hf_lsarpc_lsa_SetSecObj_handle = -1;
-static gint hf_lsarpc_lsa_SetSecObj_sdbuf = -1;
-static gint hf_lsarpc_lsa_SetSecObj_sec_info = -1;
-static gint hf_lsarpc_lsa_SetSecret_new_val = -1;
-static gint hf_lsarpc_lsa_SetSecret_old_val = -1;
-static gint hf_lsarpc_lsa_SetSecret_sec_handle = -1;
-static gint hf_lsarpc_lsa_SetSystemAccessAccount_access_mask = -1;
-static gint hf_lsarpc_lsa_SetSystemAccessAccount_handle = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_handle = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_info = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_level = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_trusted_domain = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfo_dom_sid = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfo_handle = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfo_info = -1;
-static gint hf_lsarpc_lsa_SetTrustedDomainInfo_level = -1;
-static gint hf_lsarpc_lsa_SidArray_num_sids = -1;
-static gint hf_lsarpc_lsa_SidArray_sids = -1;
-static gint hf_lsarpc_lsa_SidPtr_sid = -1;
-static gint hf_lsarpc_lsa_StorePrivateData_handle = -1;
-static gint hf_lsarpc_lsa_StorePrivateData_name = -1;
-static gint hf_lsarpc_lsa_StorePrivateData_val = -1;
-static gint hf_lsarpc_lsa_StringLarge_length = -1;
-static gint hf_lsarpc_lsa_StringLarge_size = -1;
-static gint hf_lsarpc_lsa_StringLarge_string = -1;
-static gint hf_lsarpc_lsa_String_length = -1;
-static gint hf_lsarpc_lsa_String_size = -1;
-static gint hf_lsarpc_lsa_String_string = -1;
-static gint hf_lsarpc_lsa_Strings_count = -1;
-static gint hf_lsarpc_lsa_Strings_names = -1;
-static gint hf_lsarpc_lsa_TransNameArray2_count = -1;
-static gint hf_lsarpc_lsa_TransNameArray2_names = -1;
-static gint hf_lsarpc_lsa_TransNameArray_count = -1;
-static gint hf_lsarpc_lsa_TransNameArray_names = -1;
-static gint hf_lsarpc_lsa_TransSidArray2_count = -1;
-static gint hf_lsarpc_lsa_TransSidArray2_sids = -1;
-static gint hf_lsarpc_lsa_TransSidArray3_count = -1;
-static gint hf_lsarpc_lsa_TransSidArray3_sids = -1;
-static gint hf_lsarpc_lsa_TransSidArray_count = -1;
-static gint hf_lsarpc_lsa_TransSidArray_sids = -1;
-static gint hf_lsarpc_lsa_TranslatedName2_name = -1;
-static gint hf_lsarpc_lsa_TranslatedName2_sid_index = -1;
-static gint hf_lsarpc_lsa_TranslatedName2_sid_type = -1;
-static gint hf_lsarpc_lsa_TranslatedName2_unknown = -1;
-static gint hf_lsarpc_lsa_TranslatedName_name = -1;
-static gint hf_lsarpc_lsa_TranslatedName_sid_index = -1;
-static gint hf_lsarpc_lsa_TranslatedName_sid_type = -1;
-static gint hf_lsarpc_lsa_TranslatedSid2_rid = -1;
-static gint hf_lsarpc_lsa_TranslatedSid2_sid_index = -1;
-static gint hf_lsarpc_lsa_TranslatedSid2_sid_type = -1;
-static gint hf_lsarpc_lsa_TranslatedSid2_unknown = -1;
-static gint hf_lsarpc_lsa_TranslatedSid3_flags = -1;
-static gint hf_lsarpc_lsa_TranslatedSid3_sid = -1;
-static gint hf_lsarpc_lsa_TranslatedSid3_sid_index = -1;
-static gint hf_lsarpc_lsa_TranslatedSid3_sid_type = -1;
-static gint hf_lsarpc_lsa_TranslatedSid_rid = -1;
-static gint hf_lsarpc_lsa_TranslatedSid_sid_index = -1;
-static gint hf_lsarpc_lsa_TranslatedSid_sid_type = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_ENABLE_TGT_DELEGATION = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_NO_TGT_DELEGATION = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_PIM_TRUST = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION = -1;
-static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_WITHIN_FOREST = -1;
-static gint hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND = -1;
-static gint hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_OUTBOUND = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES_auth_data = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES_cipher = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES_salt = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternal_auth_blob = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_count = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_count = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoBasic_netbios_name = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoBasic_sid = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_AuthType = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_data = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_last_update_time = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoControllers_entries = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoControllers_netbios_names = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_posix_offset = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES_info_ex = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES_posix_offset = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_info_ex = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_posix_offset = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_info_ex = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_posix_offset = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_info_ex = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_domain_name = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_netbios_name = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_sid = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_attributes = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_direction = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_type = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoName_netbios_name = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoPassword_old_password = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoPassword_password = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoPosixOffset_posix_offset = -1;
-static gint hf_lsarpc_lsa_TrustDomainInfoSupportedEncTypes_enc_types = -1;
-static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_AUTH = -1;
-static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS = -1;
-static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_DOMAIN_NAME = -1;
-static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_POSIX = -1;
-static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH = -1;
-static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_CONTROLLERS = -1;
-static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_POSIX = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info_internal = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info_internal_aes = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_controllers = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_enc_types = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info2_internal = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info_internal = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info_internal_aes = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_info_basic = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_info_ex = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_info_ex2_internal = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_name = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_password = -1;
-static gint hf_lsarpc_lsa_TrustedDomainInfo_posix_offset = -1;
-static gint hf_lsarpc_lsa_krbAuthenticationOptions_LSA_POLICY_KERBEROS_VALIDATE_CLIENT = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_forest_trust_info = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_handle = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_highest_record_type = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_trusted_domain_name = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_forest_trust_info = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_handle = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_highest_record_type = -1;
-static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_trusted_domain_name = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_check_only = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_collision_info = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_forest_trust_info = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_handle = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_highest_record_type = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_trusted_domain_name = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_check_only = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_collision_info = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_forest_trust_info = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_handle = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_highest_record_type = -1;
-static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_trusted_domain_name = -1;
-static gint hf_lsarpc_lsa_revision_info1_revision = -1;
-static gint hf_lsarpc_lsa_revision_info1_supported_features = -1;
-static gint hf_lsarpc_lsa_revision_info_info1 = -1;
-static gint hf_lsarpc_names = -1;
-static gint hf_lsarpc_opnum = -1;
-static gint hf_lsarpc_policy_access_mask = -1;
-static gint hf_lsarpc_sec_desc_buf_len = -1;
-static gint hf_lsarpc_secret_access_mask = -1;
-static gint hf_lsarpc_status = -1;
+static gint hf_lsarpc_String_name;
+static gint hf_lsarpc_account_access_mask;
+static gint hf_lsarpc_domain_access_mask;
+static gint hf_lsarpc_efs_blob_len;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_PRIVILEGES;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_QUOTAS;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_VIEW;
+static gint hf_lsarpc_lsa_AddAccountRights_handle;
+static gint hf_lsarpc_lsa_AddAccountRights_rights;
+static gint hf_lsarpc_lsa_AddAccountRights_sid;
+static gint hf_lsarpc_lsa_AddPrivilegesToAccount_handle;
+static gint hf_lsarpc_lsa_AddPrivilegesToAccount_privs;
+static gint hf_lsarpc_lsa_AsciiStringLarge_length;
+static gint hf_lsarpc_lsa_AsciiStringLarge_size;
+static gint hf_lsarpc_lsa_AsciiStringLarge_string;
+static gint hf_lsarpc_lsa_AsciiString_length;
+static gint hf_lsarpc_lsa_AsciiString_size;
+static gint hf_lsarpc_lsa_AsciiString_string;
+static gint hf_lsarpc_lsa_AuditEventsInfo_auditing_mode;
+static gint hf_lsarpc_lsa_AuditEventsInfo_count;
+static gint hf_lsarpc_lsa_AuditEventsInfo_settings;
+static gint hf_lsarpc_lsa_AuditFullQueryInfo_log_is_full;
+static gint hf_lsarpc_lsa_AuditFullQueryInfo_shutdown_on_full;
+static gint hf_lsarpc_lsa_AuditFullSetInfo_shutdown_on_full;
+static gint hf_lsarpc_lsa_AuditLogInfo_maximum_log_size;
+static gint hf_lsarpc_lsa_AuditLogInfo_next_audit_record;
+static gint hf_lsarpc_lsa_AuditLogInfo_percent_full;
+static gint hf_lsarpc_lsa_AuditLogInfo_retention_time;
+static gint hf_lsarpc_lsa_AuditLogInfo_shutdown_in_progress;
+static gint hf_lsarpc_lsa_AuditLogInfo_time_to_shutdown;
+static gint hf_lsarpc_lsa_BinaryString_array;
+static gint hf_lsarpc_lsa_BinaryString_length;
+static gint hf_lsarpc_lsa_BinaryString_size;
+static gint hf_lsarpc_lsa_CloseTrustedDomainEx_handle;
+static gint hf_lsarpc_lsa_Close_handle;
+static gint hf_lsarpc_lsa_CreateAccount_access_mask;
+static gint hf_lsarpc_lsa_CreateAccount_acct_handle;
+static gint hf_lsarpc_lsa_CreateAccount_handle;
+static gint hf_lsarpc_lsa_CreateAccount_sid;
+static gint hf_lsarpc_lsa_CreateSecret_access_mask;
+static gint hf_lsarpc_lsa_CreateSecret_handle;
+static gint hf_lsarpc_lsa_CreateSecret_name;
+static gint hf_lsarpc_lsa_CreateSecret_sec_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_access_mask;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_auth_info_internal;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_info;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_policy_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_trustdom_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_access_mask;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_auth_info_internal;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_info;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_policy_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx3_trustdom_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_access_mask;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_auth_info;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_info;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_policy_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_trustdom_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_access_mask;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_info;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_policy_handle;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_trustdom_handle;
+static gint hf_lsarpc_lsa_DATA_BUF2_data;
+static gint hf_lsarpc_lsa_DATA_BUF2_size;
+static gint hf_lsarpc_lsa_DATA_BUF_PTR_buf;
+static gint hf_lsarpc_lsa_DATA_BUF_data;
+static gint hf_lsarpc_lsa_DATA_BUF_length;
+static gint hf_lsarpc_lsa_DATA_BUF_size;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_max_wss;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_min_wss;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_non_paged_pool;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_paged_pool;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_pagefile;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_unknown;
+static gint hf_lsarpc_lsa_DeleteObject_handle;
+static gint hf_lsarpc_lsa_DeleteTrustedDomain_dom_sid;
+static gint hf_lsarpc_lsa_DeleteTrustedDomain_handle;
+static gint hf_lsarpc_lsa_Delete_handle;
+static gint hf_lsarpc_lsa_DnsDomainInfo_dns_domain;
+static gint hf_lsarpc_lsa_DnsDomainInfo_dns_forest;
+static gint hf_lsarpc_lsa_DnsDomainInfo_domain_guid;
+static gint hf_lsarpc_lsa_DnsDomainInfo_name;
+static gint hf_lsarpc_lsa_DnsDomainInfo_sid;
+static gint hf_lsarpc_lsa_DomainInfoEfs_blob_size;
+static gint hf_lsarpc_lsa_DomainInfoEfs_efs_blob;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_authentication_options;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_clock_skew;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_reserved;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_service_tkt_lifetime;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_lifetime;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_renewaltime;
+static gint hf_lsarpc_lsa_DomainInfoQoS_quality_of_service;
+static gint hf_lsarpc_lsa_DomainInfo_name;
+static gint hf_lsarpc_lsa_DomainInfo_sid;
+static gint hf_lsarpc_lsa_DomainInformationPolicy_efs_info;
+static gint hf_lsarpc_lsa_DomainInformationPolicy_kerberos_info;
+static gint hf_lsarpc_lsa_DomainInformationPolicy_qos_info;
+static gint hf_lsarpc_lsa_DomainListEx_count;
+static gint hf_lsarpc_lsa_DomainListEx_domains;
+static gint hf_lsarpc_lsa_DomainList_count;
+static gint hf_lsarpc_lsa_DomainList_domains;
+static gint hf_lsarpc_lsa_EnumAccountRights_handle;
+static gint hf_lsarpc_lsa_EnumAccountRights_rights;
+static gint hf_lsarpc_lsa_EnumAccountRights_sid;
+static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_handle;
+static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_name;
+static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_sids;
+static gint hf_lsarpc_lsa_EnumAccounts_handle;
+static gint hf_lsarpc_lsa_EnumAccounts_num_entries;
+static gint hf_lsarpc_lsa_EnumAccounts_resume_handle;
+static gint hf_lsarpc_lsa_EnumAccounts_sids;
+static gint hf_lsarpc_lsa_EnumPrivsAccount_handle;
+static gint hf_lsarpc_lsa_EnumPrivsAccount_privs;
+static gint hf_lsarpc_lsa_EnumPrivs_handle;
+static gint hf_lsarpc_lsa_EnumPrivs_max_count;
+static gint hf_lsarpc_lsa_EnumPrivs_privs;
+static gint hf_lsarpc_lsa_EnumPrivs_resume_handle;
+static gint hf_lsarpc_lsa_EnumTrustDom_domains;
+static gint hf_lsarpc_lsa_EnumTrustDom_handle;
+static gint hf_lsarpc_lsa_EnumTrustDom_max_size;
+static gint hf_lsarpc_lsa_EnumTrustDom_resume_handle;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_domains;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_handle;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_max_size;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_resume_handle;
+static gint hf_lsarpc_lsa_ForestTrustBinaryData_data;
+static gint hf_lsarpc_lsa_ForestTrustBinaryData_length;
+static gint hf_lsarpc_lsa_ForestTrustCollisionInfo_count;
+static gint hf_lsarpc_lsa_ForestTrustCollisionInfo_entries;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_flags;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_index;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_name;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_type;
+static gint hf_lsarpc_lsa_ForestTrustData2_data;
+static gint hf_lsarpc_lsa_ForestTrustData2_domain_info;
+static gint hf_lsarpc_lsa_ForestTrustData2_scanner_info;
+static gint hf_lsarpc_lsa_ForestTrustData2_top_level_name;
+static gint hf_lsarpc_lsa_ForestTrustData2_top_level_name_ex;
+static gint hf_lsarpc_lsa_ForestTrustData_data;
+static gint hf_lsarpc_lsa_ForestTrustData_domain_info;
+static gint hf_lsarpc_lsa_ForestTrustData_top_level_name;
+static gint hf_lsarpc_lsa_ForestTrustData_top_level_name_ex;
+static gint hf_lsarpc_lsa_ForestTrustDomainInfo_dns_domain_name;
+static gint hf_lsarpc_lsa_ForestTrustDomainInfo_domain_sid;
+static gint hf_lsarpc_lsa_ForestTrustDomainInfo_netbios_domain_name;
+static gint hf_lsarpc_lsa_ForestTrustInformation2_count;
+static gint hf_lsarpc_lsa_ForestTrustInformation2_entries;
+static gint hf_lsarpc_lsa_ForestTrustInformation_count;
+static gint hf_lsarpc_lsa_ForestTrustInformation_entries;
+static gint hf_lsarpc_lsa_ForestTrustRecord2_flags;
+static gint hf_lsarpc_lsa_ForestTrustRecord2_forest_trust_data;
+static gint hf_lsarpc_lsa_ForestTrustRecord2_time;
+static gint hf_lsarpc_lsa_ForestTrustRecord2_type;
+static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_NB_DISABLED_ADMIN;
+static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_NB_DISABLED_CONFLICT;
+static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_SID_DISABLED_ADMIN;
+static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_SID_DISABLED_CONFLICT;
+static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_TLN_DISABLED_ADMIN;
+static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_TLN_DISABLED_CONFLICT;
+static gint hf_lsarpc_lsa_ForestTrustRecordFlags_LSA_TLN_DISABLED_NEW;
+static gint hf_lsarpc_lsa_ForestTrustRecord_flags;
+static gint hf_lsarpc_lsa_ForestTrustRecord_forest_trust_data;
+static gint hf_lsarpc_lsa_ForestTrustRecord_time;
+static gint hf_lsarpc_lsa_ForestTrustRecord_type;
+static gint hf_lsarpc_lsa_GetSystemAccessAccount_access_mask;
+static gint hf_lsarpc_lsa_GetSystemAccessAccount_handle;
+static gint hf_lsarpc_lsa_GetUserName_account_name;
+static gint hf_lsarpc_lsa_GetUserName_authority_name;
+static gint hf_lsarpc_lsa_GetUserName_system_name;
+static gint hf_lsarpc_lsa_LUIDAttribute_attribute;
+static gint hf_lsarpc_lsa_LUIDAttribute_luid;
+static gint hf_lsarpc_lsa_LUID_high;
+static gint hf_lsarpc_lsa_LUID_low;
+static gint hf_lsarpc_lsa_LookupNames2_client_revision;
+static gint hf_lsarpc_lsa_LookupNames2_count;
+static gint hf_lsarpc_lsa_LookupNames2_domains;
+static gint hf_lsarpc_lsa_LookupNames2_handle;
+static gint hf_lsarpc_lsa_LookupNames2_level;
+static gint hf_lsarpc_lsa_LookupNames2_lookup_options;
+static gint hf_lsarpc_lsa_LookupNames2_names;
+static gint hf_lsarpc_lsa_LookupNames2_num_names;
+static gint hf_lsarpc_lsa_LookupNames2_sids;
+static gint hf_lsarpc_lsa_LookupNames3_client_revision;
+static gint hf_lsarpc_lsa_LookupNames3_count;
+static gint hf_lsarpc_lsa_LookupNames3_domains;
+static gint hf_lsarpc_lsa_LookupNames3_handle;
+static gint hf_lsarpc_lsa_LookupNames3_level;
+static gint hf_lsarpc_lsa_LookupNames3_lookup_options;
+static gint hf_lsarpc_lsa_LookupNames3_names;
+static gint hf_lsarpc_lsa_LookupNames3_num_names;
+static gint hf_lsarpc_lsa_LookupNames3_sids;
+static gint hf_lsarpc_lsa_LookupNames4_client_revision;
+static gint hf_lsarpc_lsa_LookupNames4_count;
+static gint hf_lsarpc_lsa_LookupNames4_domains;
+static gint hf_lsarpc_lsa_LookupNames4_level;
+static gint hf_lsarpc_lsa_LookupNames4_lookup_options;
+static gint hf_lsarpc_lsa_LookupNames4_names;
+static gint hf_lsarpc_lsa_LookupNames4_num_names;
+static gint hf_lsarpc_lsa_LookupNames4_sids;
+static gint hf_lsarpc_lsa_LookupNames_count;
+static gint hf_lsarpc_lsa_LookupNames_domains;
+static gint hf_lsarpc_lsa_LookupNames_handle;
+static gint hf_lsarpc_lsa_LookupNames_level;
+static gint hf_lsarpc_lsa_LookupNames_names;
+static gint hf_lsarpc_lsa_LookupNames_num_names;
+static gint hf_lsarpc_lsa_LookupNames_sids;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_disp_name;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_handle;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_language_id;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_language_id_sys;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_name;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_returned_language_id;
+static gint hf_lsarpc_lsa_LookupPrivName_handle;
+static gint hf_lsarpc_lsa_LookupPrivName_luid;
+static gint hf_lsarpc_lsa_LookupPrivName_name;
+static gint hf_lsarpc_lsa_LookupPrivValue_handle;
+static gint hf_lsarpc_lsa_LookupPrivValue_luid;
+static gint hf_lsarpc_lsa_LookupPrivValue_name;
+static gint hf_lsarpc_lsa_LookupSids2_client_revision;
+static gint hf_lsarpc_lsa_LookupSids2_count;
+static gint hf_lsarpc_lsa_LookupSids2_domains;
+static gint hf_lsarpc_lsa_LookupSids2_handle;
+static gint hf_lsarpc_lsa_LookupSids2_level;
+static gint hf_lsarpc_lsa_LookupSids2_lookup_options;
+static gint hf_lsarpc_lsa_LookupSids2_names;
+static gint hf_lsarpc_lsa_LookupSids2_sids;
+static gint hf_lsarpc_lsa_LookupSids3_client_revision;
+static gint hf_lsarpc_lsa_LookupSids3_count;
+static gint hf_lsarpc_lsa_LookupSids3_domains;
+static gint hf_lsarpc_lsa_LookupSids3_level;
+static gint hf_lsarpc_lsa_LookupSids3_lookup_options;
+static gint hf_lsarpc_lsa_LookupSids3_names;
+static gint hf_lsarpc_lsa_LookupSids3_sids;
+static gint hf_lsarpc_lsa_LookupSids_count;
+static gint hf_lsarpc_lsa_LookupSids_domains;
+static gint hf_lsarpc_lsa_LookupSids_handle;
+static gint hf_lsarpc_lsa_LookupSids_level;
+static gint hf_lsarpc_lsa_LookupSids_names;
+static gint hf_lsarpc_lsa_LookupSids_sids;
+static gint hf_lsarpc_lsa_ModificationInfo_db_create_time;
+static gint hf_lsarpc_lsa_ModificationInfo_modified_id;
+static gint hf_lsarpc_lsa_ObjectAttribute_attributes;
+static gint hf_lsarpc_lsa_ObjectAttribute_len;
+static gint hf_lsarpc_lsa_ObjectAttribute_object_name;
+static gint hf_lsarpc_lsa_ObjectAttribute_root_dir;
+static gint hf_lsarpc_lsa_ObjectAttribute_sec_desc;
+static gint hf_lsarpc_lsa_ObjectAttribute_sec_qos;
+static gint hf_lsarpc_lsa_OpenAccount_access_mask;
+static gint hf_lsarpc_lsa_OpenAccount_acct_handle;
+static gint hf_lsarpc_lsa_OpenAccount_handle;
+static gint hf_lsarpc_lsa_OpenAccount_sid;
+static gint hf_lsarpc_lsa_OpenPolicy2_access_mask;
+static gint hf_lsarpc_lsa_OpenPolicy2_attr;
+static gint hf_lsarpc_lsa_OpenPolicy2_handle;
+static gint hf_lsarpc_lsa_OpenPolicy2_system_name;
+static gint hf_lsarpc_lsa_OpenPolicy3_access_mask;
+static gint hf_lsarpc_lsa_OpenPolicy3_attr;
+static gint hf_lsarpc_lsa_OpenPolicy3_handle;
+static gint hf_lsarpc_lsa_OpenPolicy3_in_revision_info;
+static gint hf_lsarpc_lsa_OpenPolicy3_in_version;
+static gint hf_lsarpc_lsa_OpenPolicy3_out_revision_info;
+static gint hf_lsarpc_lsa_OpenPolicy3_out_version;
+static gint hf_lsarpc_lsa_OpenPolicy3_system_name;
+static gint hf_lsarpc_lsa_OpenPolicy_access_mask;
+static gint hf_lsarpc_lsa_OpenPolicy_attr;
+static gint hf_lsarpc_lsa_OpenPolicy_handle;
+static gint hf_lsarpc_lsa_OpenPolicy_system_name;
+static gint hf_lsarpc_lsa_OpenSecret_access_mask;
+static gint hf_lsarpc_lsa_OpenSecret_handle;
+static gint hf_lsarpc_lsa_OpenSecret_name;
+static gint hf_lsarpc_lsa_OpenSecret_sec_handle;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_access_mask;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_handle;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_name;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_trustdom_handle;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_access_mask;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_handle;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_sid;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_trustdom_handle;
+static gint hf_lsarpc_lsa_PDAccountInfo_name;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_AUDIT_LOG_ADMIN;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_ACCOUNT;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_PRIVILEGE;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_SECRET;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_GET_PRIVATE_INFORMATION;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_LOOKUP_NAMES;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_NOTIFICATION;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SERVER_ADMIN;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_AUDIT_REQUIREMENTS;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_TRUST_ADMIN;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_AUDIT_INFORMATION;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_LOCAL_INFORMATION;
+static gint hf_lsarpc_lsa_PolicyInformation_account_domain;
+static gint hf_lsarpc_lsa_PolicyInformation_audit_events;
+static gint hf_lsarpc_lsa_PolicyInformation_audit_log;
+static gint hf_lsarpc_lsa_PolicyInformation_auditfullquery;
+static gint hf_lsarpc_lsa_PolicyInformation_auditfullset;
+static gint hf_lsarpc_lsa_PolicyInformation_dns;
+static gint hf_lsarpc_lsa_PolicyInformation_dns_int;
+static gint hf_lsarpc_lsa_PolicyInformation_domain;
+static gint hf_lsarpc_lsa_PolicyInformation_l_account_domain;
+static gint hf_lsarpc_lsa_PolicyInformation_mod;
+static gint hf_lsarpc_lsa_PolicyInformation_pd;
+static gint hf_lsarpc_lsa_PolicyInformation_quota;
+static gint hf_lsarpc_lsa_PolicyInformation_replica;
+static gint hf_lsarpc_lsa_PolicyInformation_role;
+static gint hf_lsarpc_lsa_PrivArray_count;
+static gint hf_lsarpc_lsa_PrivArray_privs;
+static gint hf_lsarpc_lsa_PrivEntry_luid;
+static gint hf_lsarpc_lsa_PrivEntry_name;
+static gint hf_lsarpc_lsa_PrivilegeSet_count;
+static gint hf_lsarpc_lsa_PrivilegeSet_set;
+static gint hf_lsarpc_lsa_PrivilegeSet_unknown;
+static gint hf_lsarpc_lsa_QosInfo_context_mode;
+static gint hf_lsarpc_lsa_QosInfo_effective_only;
+static gint hf_lsarpc_lsa_QosInfo_impersonation_level;
+static gint hf_lsarpc_lsa_QosInfo_len;
+static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_handle;
+static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_info;
+static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_level;
+static gint hf_lsarpc_lsa_QueryInfoPolicy2_handle;
+static gint hf_lsarpc_lsa_QueryInfoPolicy2_info;
+static gint hf_lsarpc_lsa_QueryInfoPolicy2_level;
+static gint hf_lsarpc_lsa_QueryInfoPolicy_handle;
+static gint hf_lsarpc_lsa_QueryInfoPolicy_info;
+static gint hf_lsarpc_lsa_QueryInfoPolicy_level;
+static gint hf_lsarpc_lsa_QuerySecret_new_mtime;
+static gint hf_lsarpc_lsa_QuerySecret_new_val;
+static gint hf_lsarpc_lsa_QuerySecret_old_mtime;
+static gint hf_lsarpc_lsa_QuerySecret_old_val;
+static gint hf_lsarpc_lsa_QuerySecret_sec_handle;
+static gint hf_lsarpc_lsa_QuerySecurity_handle;
+static gint hf_lsarpc_lsa_QuerySecurity_sdbuf;
+static gint hf_lsarpc_lsa_QuerySecurity_sec_info;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_handle;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_info;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_level;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_trusted_domain;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_dom_sid;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_handle;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_info;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_level;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_info;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_level;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_trustdom_handle;
+static gint hf_lsarpc_lsa_RefDomainList_count;
+static gint hf_lsarpc_lsa_RefDomainList_domains;
+static gint hf_lsarpc_lsa_RefDomainList_max_size;
+static gint hf_lsarpc_lsa_RemoveAccountRights_handle;
+static gint hf_lsarpc_lsa_RemoveAccountRights_remove_all;
+static gint hf_lsarpc_lsa_RemoveAccountRights_rights;
+static gint hf_lsarpc_lsa_RemoveAccountRights_sid;
+static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_handle;
+static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_privs;
+static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_remove_all;
+static gint hf_lsarpc_lsa_ReplicaSourceInfo_account;
+static gint hf_lsarpc_lsa_ReplicaSourceInfo_source;
+static gint hf_lsarpc_lsa_RetrievePrivateData_handle;
+static gint hf_lsarpc_lsa_RetrievePrivateData_name;
+static gint hf_lsarpc_lsa_RetrievePrivateData_val;
+static gint hf_lsarpc_lsa_RevisionSupportedFeature_LSA_FEATURE_TDO_AUTH_INFO_AES_CIPHER;
+static gint hf_lsarpc_lsa_RightAttribute_name;
+static gint hf_lsarpc_lsa_RightSet_count;
+static gint hf_lsarpc_lsa_RightSet_names;
+static gint hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE;
+static gint hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_SET_VALUE;
+static gint hf_lsarpc_lsa_ServerRole_role;
+static gint hf_lsarpc_lsa_SetDomainInformationPolicy_handle;
+static gint hf_lsarpc_lsa_SetDomainInformationPolicy_info;
+static gint hf_lsarpc_lsa_SetDomainInformationPolicy_level;
+static gint hf_lsarpc_lsa_SetInfoPolicy2_handle;
+static gint hf_lsarpc_lsa_SetInfoPolicy2_info;
+static gint hf_lsarpc_lsa_SetInfoPolicy2_level;
+static gint hf_lsarpc_lsa_SetInfoPolicy_handle;
+static gint hf_lsarpc_lsa_SetInfoPolicy_info;
+static gint hf_lsarpc_lsa_SetInfoPolicy_level;
+static gint hf_lsarpc_lsa_SetInformationTrustedDomain_info;
+static gint hf_lsarpc_lsa_SetInformationTrustedDomain_level;
+static gint hf_lsarpc_lsa_SetInformationTrustedDomain_trustdom_handle;
+static gint hf_lsarpc_lsa_SetSecObj_handle;
+static gint hf_lsarpc_lsa_SetSecObj_sdbuf;
+static gint hf_lsarpc_lsa_SetSecObj_sec_info;
+static gint hf_lsarpc_lsa_SetSecret_new_val;
+static gint hf_lsarpc_lsa_SetSecret_old_val;
+static gint hf_lsarpc_lsa_SetSecret_sec_handle;
+static gint hf_lsarpc_lsa_SetSystemAccessAccount_access_mask;
+static gint hf_lsarpc_lsa_SetSystemAccessAccount_handle;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_handle;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_info;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_level;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_trusted_domain;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_dom_sid;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_handle;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_info;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_level;
+static gint hf_lsarpc_lsa_SidArray_num_sids;
+static gint hf_lsarpc_lsa_SidArray_sids;
+static gint hf_lsarpc_lsa_SidPtr_sid;
+static gint hf_lsarpc_lsa_StorePrivateData_handle;
+static gint hf_lsarpc_lsa_StorePrivateData_name;
+static gint hf_lsarpc_lsa_StorePrivateData_val;
+static gint hf_lsarpc_lsa_StringLarge_length;
+static gint hf_lsarpc_lsa_StringLarge_size;
+static gint hf_lsarpc_lsa_StringLarge_string;
+static gint hf_lsarpc_lsa_String_length;
+static gint hf_lsarpc_lsa_String_size;
+static gint hf_lsarpc_lsa_String_string;
+static gint hf_lsarpc_lsa_Strings_count;
+static gint hf_lsarpc_lsa_Strings_names;
+static gint hf_lsarpc_lsa_TransNameArray2_count;
+static gint hf_lsarpc_lsa_TransNameArray2_names;
+static gint hf_lsarpc_lsa_TransNameArray_count;
+static gint hf_lsarpc_lsa_TransNameArray_names;
+static gint hf_lsarpc_lsa_TransSidArray2_count;
+static gint hf_lsarpc_lsa_TransSidArray2_sids;
+static gint hf_lsarpc_lsa_TransSidArray3_count;
+static gint hf_lsarpc_lsa_TransSidArray3_sids;
+static gint hf_lsarpc_lsa_TransSidArray_count;
+static gint hf_lsarpc_lsa_TransSidArray_sids;
+static gint hf_lsarpc_lsa_TranslatedName2_name;
+static gint hf_lsarpc_lsa_TranslatedName2_sid_index;
+static gint hf_lsarpc_lsa_TranslatedName2_sid_type;
+static gint hf_lsarpc_lsa_TranslatedName2_unknown;
+static gint hf_lsarpc_lsa_TranslatedName_name;
+static gint hf_lsarpc_lsa_TranslatedName_sid_index;
+static gint hf_lsarpc_lsa_TranslatedName_sid_type;
+static gint hf_lsarpc_lsa_TranslatedSid2_rid;
+static gint hf_lsarpc_lsa_TranslatedSid2_sid_index;
+static gint hf_lsarpc_lsa_TranslatedSid2_sid_type;
+static gint hf_lsarpc_lsa_TranslatedSid2_unknown;
+static gint hf_lsarpc_lsa_TranslatedSid3_flags;
+static gint hf_lsarpc_lsa_TranslatedSid3_sid;
+static gint hf_lsarpc_lsa_TranslatedSid3_sid_index;
+static gint hf_lsarpc_lsa_TranslatedSid3_sid_type;
+static gint hf_lsarpc_lsa_TranslatedSid_rid;
+static gint hf_lsarpc_lsa_TranslatedSid_sid_index;
+static gint hf_lsarpc_lsa_TranslatedSid_sid_type;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_ENABLE_TGT_DELEGATION;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_NO_TGT_DELEGATION;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_PIM_TRUST;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_WITHIN_FOREST;
+static gint hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND;
+static gint hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_OUTBOUND;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES_auth_data;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES_cipher;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternalAES_salt;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternal_auth_blob;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_count;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_count;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoBasic_netbios_name;
+static gint hf_lsarpc_lsa_TrustDomainInfoBasic_sid;
+static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_AuthType;
+static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_data;
+static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_last_update_time;
+static gint hf_lsarpc_lsa_TrustDomainInfoControllers_entries;
+static gint hf_lsarpc_lsa_TrustDomainInfoControllers_netbios_names;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_posix_offset;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES_info_ex;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternalAES_posix_offset;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_info_ex;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_posix_offset;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_auth_info;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_info_ex;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_posix_offset;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_info_ex;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_domain_name;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_netbios_name;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_sid;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_attributes;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_direction;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_type;
+static gint hf_lsarpc_lsa_TrustDomainInfoName_netbios_name;
+static gint hf_lsarpc_lsa_TrustDomainInfoPassword_old_password;
+static gint hf_lsarpc_lsa_TrustDomainInfoPassword_password;
+static gint hf_lsarpc_lsa_TrustDomainInfoPosixOffset_posix_offset;
+static gint hf_lsarpc_lsa_TrustDomainInfoSupportedEncTypes_enc_types;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_AUTH;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_DOMAIN_NAME;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_POSIX;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_CONTROLLERS;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_POSIX;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info_internal;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info_internal_aes;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_controllers;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_enc_types;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info2_internal;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info_internal;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info_internal_aes;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_info_basic;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_info_ex;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_info_ex2_internal;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_name;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_password;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_posix_offset;
+static gint hf_lsarpc_lsa_krbAuthenticationOptions_LSA_POLICY_KERBEROS_VALIDATE_CLIENT;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_forest_trust_info;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_handle;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_highest_record_type;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation2_trusted_domain_name;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_forest_trust_info;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_handle;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_highest_record_type;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_trusted_domain_name;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_check_only;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_collision_info;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_forest_trust_info;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_handle;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_highest_record_type;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation2_trusted_domain_name;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_check_only;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_collision_info;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_forest_trust_info;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_handle;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_highest_record_type;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_trusted_domain_name;
+static gint hf_lsarpc_lsa_revision_info1_revision;
+static gint hf_lsarpc_lsa_revision_info1_supported_features;
+static gint hf_lsarpc_lsa_revision_info_info1;
+static gint hf_lsarpc_names;
+static gint hf_lsarpc_opnum;
+static gint hf_lsarpc_policy_access_mask;
+static gint hf_lsarpc_sec_desc_buf_len;
+static gint hf_lsarpc_secret_access_mask;
+static gint hf_lsarpc_status;
static gint proto_dcerpc_lsarpc = -1;
/* Version information */
@@ -853,7 +853,7 @@ const value_string lsarpc_lsa_PolicyAuditEventType_vals[] = {
{ LSA_AUDIT_CATEGORY_LOGON, "LSA_AUDIT_CATEGORY_LOGON" },
{ LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS, "LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS" },
{ LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS, "LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS" },
- { LSA_AUDIT_CATEGORY_PROCCESS_TRACKING, "LSA_AUDIT_CATEGORY_PROCCESS_TRACKING" },
+ { LSA_AUDIT_CATEGORY_PROCESS_TRACKING, "LSA_AUDIT_CATEGORY_PROCESS_TRACKING" },
{ LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES, "LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES" },
{ LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT, "LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT" },
{ LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS, "LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS" },
@@ -1832,25 +1832,25 @@ lsarpc_domain_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guin
};
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info lsarpc_policy_access_mask_info = {
+static struct access_mask_info lsarpc_policy_access_mask_info = {
"LSA Policy", /* Name of specific rights */
lsarpc_policy_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
NULL /* Standard mapping table */
};
-struct access_mask_info lsarpc_account_access_mask_info = {
+static struct access_mask_info lsarpc_account_access_mask_info = {
"LSA Account", /* Name of specific rights */
lsarpc_account_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
NULL /* Standard mapping table */
};
-struct access_mask_info lsarpc_secret_access_mask_info = {
+static struct access_mask_info lsarpc_secret_access_mask_info = {
"LSA Secret", /* Name of specific rights */
lsarpc_secret_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
NULL /* Standard mapping table */
};
-struct access_mask_info lsarpc_domain_access_mask_info = {
+static struct access_mask_info lsarpc_domain_access_mask_info = {
"LSA Domain", /* Name of specific rights */
lsarpc_domain_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -1880,6 +1880,7 @@ lsarpc_dissect_bitmap_lsa_SecretAccessMask(tvbuff_t *tvb, int offset, packet_inf
&lsarpc_secret_access_mask_info, NULL);
return offset;
}
+/* TODO: not called, so couldn't make static. Delete? */
int
lsarpc_dissect_bitmap_lsa_DomainAccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep, int hf_index _U_, guint32 param _U_)
{
@@ -3117,7 +3118,7 @@ lsarpc_dissect_enum_lsa_PolicyAuditPolicy(tvbuff_t *tvb _U_, int offset _U_, pac
/* IDL: LSA_AUDIT_CATEGORY_LOGON=1, */
/* IDL: LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS=2, */
/* IDL: LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS=3, */
-/* IDL: LSA_AUDIT_CATEGORY_PROCCESS_TRACKING=4, */
+/* IDL: LSA_AUDIT_CATEGORY_PROCESS_TRACKING=4, */
/* IDL: LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES=5, */
/* IDL: LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT=6, */
/* IDL: LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS=7, */
@@ -15860,7 +15861,7 @@ lsarpc_dissect_lsa_lsaRSetForestTrustInformation2_request(tvbuff_t *tvb _U_, int
}
-static dcerpc_sub_dissector lsarpc_dissectors[] = {
+static const dcerpc_sub_dissector lsarpc_dissectors[] = {
{ 0, "lsa_Close",
lsarpc_dissect_lsa_Close_request, lsarpc_dissect_lsa_Close_response},
{ 1, "lsa_Delete",
diff --git a/epan/dissectors/packet-dcerpc-lsa.h b/epan/dissectors/packet-dcerpc-lsa.h
index 2ab222cc92..78ac07d275 100644
--- a/epan/dissectors/packet-dcerpc-lsa.h
+++ b/epan/dissectors/packet-dcerpc-lsa.h
@@ -100,7 +100,7 @@ int lsarpc_dissect_enum_lsa_PolicyAuditPolicy(tvbuff_t *tvb _U_, int offset _U_,
#define LSA_AUDIT_CATEGORY_LOGON (1)
#define LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS (2)
#define LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS (3)
-#define LSA_AUDIT_CATEGORY_PROCCESS_TRACKING (4)
+#define LSA_AUDIT_CATEGORY_PROCESS_TRACKING (4)
#define LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES (5)
#define LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT (6)
#define LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS (7)
diff --git a/epan/dissectors/packet-dcerpc-mapi.c b/epan/dissectors/packet-dcerpc-mapi.c
index e7d7584c96..2da97faa33 100644
--- a/epan/dissectors/packet-dcerpc-mapi.c
+++ b/epan/dissectors/packet-dcerpc-mapi.c
@@ -22,1893 +22,1893 @@ void proto_register_dcerpc_mapi(void);
void proto_reg_handoff_dcerpc_mapi(void);
/* Ett declarations */
-static gint ett_mapi_connect_request = -1;
-static gint ett_ServerObjectHandleTable = -1;
-static gint ett_dcerpc_mapi = -1;
-static gint ett_mapi_DATA_BLOB = -1;
-static gint ett_mapi_SBinary_short = -1;
-static gint ett_mapi_mapi_MV_LONG_STRUCT = -1;
-static gint ett_mapi_mapi_LPSTR = -1;
-static gint ett_mapi_mapi_SLPSTRArray = -1;
-static gint ett_mapi_mapi_LPWSTR = -1;
-static gint ett_mapi_mapi_SPLSTRArrayW = -1;
-static gint ett_mapi_mapi_SBinaryArray = -1;
-static gint ett_mapi_mapi_SGuidArray = -1;
-static gint ett_mapi_mapi_SRestriction_wrap = -1;
-static gint ett_mapi_mapi_SPropValue_wrap = -1;
-static gint ett_mapi_mapi_SPropValue_array_wrap = -1;
-static gint ett_mapi_MoveCopy_Action = -1;
-static gint ett_mapi_ReplyOOF_Action = -1;
-static gint ett_mapi_RecipientBlock = -1;
-static gint ett_mapi_ForwardDelegate_Action = -1;
-static gint ett_mapi_ActionData = -1;
-static gint ett_mapi_ActionBlockData = -1;
-static gint ett_mapi_ActionBlock = -1;
-static gint ett_mapi_RuleAction = -1;
-static gint ett_mapi_ShortArray_r = -1;
-static gint ett_mapi_LongArray_r = -1;
-static gint ett_mapi_BinaryArray_r = -1;
-static gint ett_mapi_DateTimeArray_r = -1;
-static gint ett_mapi_Binary_r = -1;
-static gint ett_mapi_mapi_SPropValue_CTR = -1;
-static gint ett_mapi_mapi_SPropValue = -1;
-static gint ett_mapi_mapi_SPropValue_array = -1;
-static gint ett_mapi_mapi_SPropTagArray = -1;
-static gint ett_mapi_Release_req = -1;
-static gint ett_mapi_Release_repl = -1;
-static gint ett_mapi_OpenFolder_req = -1;
-static gint ett_mapi_OpenFolder_Replicas = -1;
-static gint ett_mapi_IsGhosted = -1;
-static gint ett_mapi_OpenFolder_Success = -1;
-static gint ett_mapi_OpenFolder_repl_status = -1;
-static gint ett_mapi_OpenFolder_repl = -1;
-static gint ett_mapi_String = -1;
-static gint ett_mapi_TypedString = -1;
-static gint ett_mapi_OpenMessage_req = -1;
-static gint ett_mapi_RecipExchange = -1;
-static gint ett_mapi_RecipSMTP = -1;
-static gint ett_mapi_recipient_type = -1;
-static gint ett_mapi_recipient_SimpleDisplayName = -1;
-static gint ett_mapi_recipient_TransmittableDisplayName = -1;
-static gint ett_mapi_recipient_DisplayName = -1;
-static gint ett_mapi_recipient_EmailAddress = -1;
-static gint ett_mapi_RecipientRow = -1;
-static gint ett_mapi_OpenMessage_recipients = -1;
-static gint ett_mapi_OpenMessage_Success = -1;
-static gint ett_mapi_OpenMessage_repl_status = -1;
-static gint ett_mapi_OpenMessage_repl = -1;
-static gint ett_mapi_TableFlags = -1;
-static gint ett_mapi_GetHierarchyTable_req = -1;
-static gint ett_mapi_GetHierarchyTable_repl_success = -1;
-static gint ett_mapi_GetHierarchyTable_repl_status = -1;
-static gint ett_mapi_GetHierarchyTable_repl = -1;
-static gint ett_mapi_GetContentsTable_req = -1;
-static gint ett_mapi_GetContentsTable_repl_success = -1;
-static gint ett_mapi_GetContentsTable_repl_status = -1;
-static gint ett_mapi_GetContentsTable_repl = -1;
-static gint ett_mapi_CreateMessage_req = -1;
-static gint ett_mapi_CreateMessage_MessageId = -1;
-static gint ett_mapi_CreateMessage_repl_success = -1;
-static gint ett_mapi_CreateMessage_repl_status = -1;
-static gint ett_mapi_CreateMessage_repl = -1;
-static gint ett_mapi_GetProps_req = -1;
-static gint ett_mapi_GetProps_repl_success = -1;
-static gint ett_mapi_GetProps_repl_status = -1;
-static gint ett_mapi_GetProps_repl = -1;
-static gint ett_mapi_GetPropsAll_req = -1;
-static gint ett_mapi_GetPropsAll_repl_success = -1;
-static gint ett_mapi_GetPropsAll_repl_status = -1;
-static gint ett_mapi_GetPropsAll_repl = -1;
-static gint ett_mapi_GetPropList_req = -1;
-static gint ett_mapi_GetPropList_repl = -1;
-static gint ett_mapi_PropertyProblem = -1;
-static gint ett_mapi_SetProps_req = -1;
-static gint ett_mapi_SetProps_repl = -1;
-static gint ett_mapi_DeleteProps_req = -1;
-static gint ett_mapi_DeleteProps_repl = -1;
-static gint ett_mapi_SaveChangesMessage_req = -1;
-static gint ett_mapi_SaveChangesMessage_repl = -1;
-static gint ett_mapi_RemoveAllRecipients_req = -1;
-static gint ett_mapi_RemoveAllRecipients_repl = -1;
-static gint ett_mapi_ModifyRecipientRow = -1;
-static gint ett_mapi_ModifyRecipients_req = -1;
-static gint ett_mapi_ModifyRecipients_repl = -1;
-static gint ett_mapi_ReadRecipients_req = -1;
-static gint ett_mapi_ReadRecipientRow = -1;
-static gint ett_mapi_ReadRecipients_repl = -1;
-static gint ett_mapi_OpenRecipientRow = -1;
-static gint ett_mapi_ReloadCachedInformation_req = -1;
-static gint ett_mapi_ReloadCachedInformation_repl = -1;
-static gint ett_mapi_MSGFLAG_READ = -1;
-static gint ett_mapi_SetMessageReadFlag_req = -1;
-static gint ett_mapi_SetMessageReadFlag_LogonId = -1;
-static gint ett_mapi_SetMessageReadFlag_ClientData = -1;
-static gint ett_mapi_SetMessageReadFlag_repl = -1;
-static gint ett_mapi_SetColumns_req = -1;
-static gint ett_mapi_SetColumns_repl = -1;
-static gint ett_mapi_SSortOrder = -1;
-static gint ett_mapi_SSortOrderSet = -1;
-static gint ett_mapi_SortTable_req = -1;
-static gint ett_mapi_SortTable_repl = -1;
-static gint ett_mapi_mapi_SAndRestriction = -1;
-static gint ett_mapi_mapi_SOrRestriction = -1;
-static gint ett_mapi_mapi_SNotRestriction = -1;
-static gint ett_mapi_fuzzyLevel = -1;
-static gint ett_mapi_mapi_SContentRestriction = -1;
-static gint ett_mapi_mapi_SBitmaskRestriction = -1;
-static gint ett_mapi_mapi_SSizeRestriction = -1;
-static gint ett_mapi_mapi_SPropertyRestriction = -1;
-static gint ett_mapi_mapi_SCompareProps = -1;
-static gint ett_mapi_mapi_SExistRestriction = -1;
-static gint ett_mapi_mapi_SSubRestriction = -1;
-static gint ett_mapi_RestrictionVariable = -1;
-static gint ett_mapi_mapi_SCommentRestriction = -1;
-static gint ett_mapi_mapi_SRestriction_CTR = -1;
-static gint ett_mapi_mapi_SRestriction = -1;
-static gint ett_mapi_SRestriction_and = -1;
-static gint ett_mapi_SRestriction_or = -1;
-static gint ett_mapi_SRestriction_sub = -1;
-static gint ett_mapi_SRestriction_comment = -1;
-static gint ett_mapi_Restrict_req = -1;
-static gint ett_mapi_Restrict_repl = -1;
-static gint ett_mapi_QueryRows_req = -1;
-static gint ett_mapi_QueryRows_repl = -1;
-static gint ett_mapi_GetStatus_req = -1;
-static gint ett_mapi_GetStatus_repl = -1;
-static gint ett_mapi_QueryPosition_req = -1;
-static gint ett_mapi_QueryPosition_repl = -1;
-static gint ett_mapi_SeekRow_req = -1;
-static gint ett_mapi_SeekRow_repl = -1;
-static gint ett_mapi_SeekRowBookmark_req = -1;
-static gint ett_mapi_SeekRowBookmark_repl = -1;
-static gint ett_mapi_SeekRowApprox_req = -1;
-static gint ett_mapi_SeekRowApprox_repl = -1;
-static gint ett_mapi_CreateBookmark_req = -1;
-static gint ett_mapi_CreateBookmark_repl = -1;
-static gint ett_mapi_LPTSTR = -1;
-static gint ett_mapi_CreateFolder_req = -1;
-static gint ett_mapi_CreateFolder_GhostInfo = -1;
-static gint ett_mapi_CreateFolder_GhostUnion = -1;
-static gint ett_mapi_CreateFolder_repl = -1;
-static gint ett_mapi_DeleteFolderFlags = -1;
-static gint ett_mapi_DeleteFolder_req = -1;
-static gint ett_mapi_DeleteFolder_repl = -1;
-static gint ett_mapi_DeleteMessages_req = -1;
-static gint ett_mapi_DeleteMessages_repl = -1;
-static gint ett_mapi_GetMessageStatus_req = -1;
-static gint ett_mapi_ulMessageStatus = -1;
-static gint ett_mapi_SetMessageStatus_req = -1;
-static gint ett_mapi_SetMessageStatus_repl = -1;
-static gint ett_mapi_GetAttachmentTable_req = -1;
-static gint ett_mapi_GetAttachmentTable_repl = -1;
-static gint ett_mapi_OpenAttach_req = -1;
-static gint ett_mapi_OpenAttach_repl = -1;
-static gint ett_mapi_CreateAttach_req = -1;
-static gint ett_mapi_CreateAttach_repl = -1;
-static gint ett_mapi_DeleteAttach_req = -1;
-static gint ett_mapi_DeleteAttach_repl = -1;
-static gint ett_mapi_SaveChangesAttachment_req = -1;
-static gint ett_mapi_SaveChangesAttachment_repl = -1;
-static gint ett_mapi_SetReceiveFolder_req = -1;
-static gint ett_mapi_SetReceiveFolder_repl = -1;
-static gint ett_mapi_GetReceiveFolder_req = -1;
-static gint ett_mapi_GetReceiveFolder_repl = -1;
-static gint ett_mapi_hyperbool = -1;
-static gint ett_mapi_RegisterNotification_req = -1;
-static gint ett_mapi_RegisterNotification_repl = -1;
-static gint ett_mapi_MsgFlags = -1;
-static gint ett_mapi_MessageClass = -1;
-static gint ett_mapi_GID = -1;
-static gint ett_mapi_NewMailNotification = -1;
-static gint ett_mapi_FolderCreatedNotification = -1;
-static gint ett_mapi_FolderDeletedNotification = -1;
-static gint ett_mapi_FolderModifiedNotification_10 = -1;
-static gint ett_mapi_FolderMoveCopyNotification = -1;
-static gint ett_mapi_SearchCompleteNotification = -1;
-static gint ett_mapi_HierarchyRowAddedNotification = -1;
-static gint ett_mapi_HierarchyRowDeletedNotification = -1;
-static gint ett_mapi_HierarchyRowModifiedNotification = -1;
-static gint ett_mapi_HierarchyTableChangeUnion = -1;
-static gint ett_mapi_HierarchyTableChange = -1;
-static gint ett_mapi_IcsNotification = -1;
-static gint ett_mapi_FolderModifiedNotification_1010 = -1;
-static gint ett_mapi_FolderModifiedNotification_2010 = -1;
-static gint ett_mapi_FolderModifiedNotification_3010 = -1;
-static gint ett_mapi_MessageCreatedNotification = -1;
-static gint ett_mapi_MessageDeletedNotification = -1;
-static gint ett_mapi_MessageModifiedNotification = -1;
-static gint ett_mapi_MessageMoveCopyNotification = -1;
-static gint ett_mapi_ContentsRowAddedNotification = -1;
-static gint ett_mapi_ContentsRowDeletedNotification = -1;
-static gint ett_mapi_ContentsRowModifiedNotification = -1;
-static gint ett_mapi_ContentsTableChangeUnion = -1;
-static gint ett_mapi_ContentsTableChange = -1;
-static gint ett_mapi_SearchMessageCreatedNotification = -1;
-static gint ett_mapi_SearchMessageRemovedNotification = -1;
-static gint ett_mapi_SearchMessageModifiedNotification = -1;
-static gint ett_mapi_NotificationData = -1;
-static gint ett_mapi_Notify_repl = -1;
-static gint ett_mapi_OpenStream_req = -1;
-static gint ett_mapi_OpenStream_repl = -1;
-static gint ett_mapi_MaximumByteCount = -1;
-static gint ett_mapi_ReadStream_req = -1;
-static gint ett_mapi_ReadStream_repl = -1;
-static gint ett_mapi_WriteStream_req = -1;
-static gint ett_mapi_WriteStream_repl = -1;
-static gint ett_mapi_SeekStream_req = -1;
-static gint ett_mapi_SeekStream_repl = -1;
-static gint ett_mapi_SetStreamSize_req = -1;
-static gint ett_mapi_SetStreamSize_repl = -1;
-static gint ett_mapi_SearchFlags = -1;
-static gint ett_mapi_SetSearchCriteria_req = -1;
-static gint ett_mapi_SetSearchCriteria_repl = -1;
-static gint ett_mapi_GetSearchCriteria_req = -1;
-static gint ett_mapi_GetSearchCriteria_repl = -1;
-static gint ett_mapi_SubmitMessage_req = -1;
-static gint ett_mapi_SubmitMessage_repl = -1;
-static gint ett_mapi_MoveCopyMessages_req = -1;
-static gint ett_mapi_MoveCopyMessages_repl = -1;
-static gint ett_mapi_AbortSubmit_req = -1;
-static gint ett_mapi_AbortSubmit_repl = -1;
-static gint ett_mapi_Folder_name = -1;
-static gint ett_mapi_MoveFolder_req = -1;
-static gint ett_mapi_MoveFolder_repl = -1;
-static gint ett_mapi_CopyFolder_req = -1;
-static gint ett_mapi_CopyFolder_repl = -1;
-static gint ett_mapi_QueryColumnsAll_req = -1;
-static gint ett_mapi_QueryColumnsAll_repl = -1;
-static gint ett_mapi_Abort_req = -1;
-static gint ett_mapi_Abort_repl = -1;
-static gint ett_mapi_CopyFlags = -1;
-static gint ett_mapi_CopyTo_req = -1;
-static gint ett_mapi_CopyTo_repl = -1;
-static gint ett_mapi_CopyToStream_req = -1;
-static gint ett_mapi_CopyToStream_repl = -1;
-static gint ett_mapi_CloneStream_req = -1;
-static gint ett_mapi_CloneStream_repl = -1;
-static gint ett_mapi_PermissionsTableFlags = -1;
-static gint ett_mapi_GetPermissionsTable_req = -1;
-static gint ett_mapi_GetPermissionsTable_repl = -1;
-static gint ett_mapi_RulesTableFlags = -1;
-static gint ett_mapi_GetRulesTable_req = -1;
-static gint ett_mapi_GetRulesTable_repl = -1;
-static gint ett_mapi_ModifyPermissionsFlags = -1;
-static gint ett_mapi_PermissionData = -1;
-static gint ett_mapi_mapi_PermissionsData = -1;
-static gint ett_mapi_ModifyPermissions_req = -1;
-static gint ett_mapi_ModifyPermissions_repl = -1;
-static gint ett_mapi_RuleData = -1;
-static gint ett_mapi_ModifyRulesFlag = -1;
-static gint ett_mapi_ModifyRules_req = -1;
-static gint ett_mapi_ModifyRules_repl = -1;
-static gint ett_mapi_GetOwningServers_req = -1;
-static gint ett_mapi_GetOwningServers_repl = -1;
-static gint ett_mapi_LongTermIdFromId_req = -1;
-static gint ett_mapi_LongTermId = -1;
-static gint ett_mapi_LongTermIdFromId_repl_Success = -1;
-static gint ett_mapi_LongTermIdFromId_repl_status = -1;
-static gint ett_mapi_LongTermIdFromId_repl = -1;
-static gint ett_mapi_IdFromLongTermId_req = -1;
-static gint ett_mapi_IdFromLongTermId_repl = -1;
-static gint ett_mapi_PublicFolderIsGhosted_req = -1;
-static gint ett_mapi_PublicFolderIsGhosted_repl = -1;
-static gint ett_mapi_OpenEmbeddedMessage_req = -1;
-static gint ett_mapi_OpenEmbeddedMessage_repl = -1;
-static gint ett_mapi_SetSpooler_req = -1;
-static gint ett_mapi_SetSpooler_repl = -1;
-static gint ett_mapi_SpoolerLockMessage_req = -1;
-static gint ett_mapi_SpoolerLockMessage_repl = -1;
-static gint ett_mapi_AddressTypes_req = -1;
-static gint ett_mapi_AddressTypes_repl = -1;
-static gint ett_mapi_TransportSend_req = -1;
-static gint ett_mapi_TransportSend_lpProps = -1;
-static gint ett_mapi_TransportSend_repl = -1;
-static gint ett_mapi_FastTransferSourceGetBuffer_req = -1;
-static gint ett_mapi_FastTransferSourceGetBuffer_repl = -1;
-static gint ett_mapi_FindRow_req = -1;
-static gint ett_mapi_FindRow_repl = -1;
-static gint ett_mapi_Progress_req = -1;
-static gint ett_mapi_Progress_repl = -1;
-static gint ett_mapi_TransportNewMail_req = -1;
-static gint ett_mapi_TransportNewMail_repl = -1;
-static gint ett_mapi_GetValidAttachments_req = -1;
-static gint ett_mapi_GetValidAttachments_repl = -1;
-static gint ett_mapi_mapi_name = -1;
-static gint ett_mapi_Kind = -1;
-static gint ett_mapi_MAPINAMEID = -1;
-static gint ett_mapi_GetNamesFromIDs_req = -1;
-static gint ett_mapi_GetNamesFromIDs_repl = -1;
-static gint ett_mapi_GetIDsFromNames_req = -1;
-static gint ett_mapi_GetIDsFromNames_repl = -1;
-static gint ett_mapi_UpdateDeferredActionMessages_req = -1;
-static gint ett_mapi_UpdateDeferredActionMessages_repl = -1;
-static gint ett_mapi_EmptyFolder_req = -1;
-static gint ett_mapi_EmptyFolder_repl = -1;
-static gint ett_mapi_ExpandRow_req = -1;
-static gint ett_mapi_ExpandRow_repl = -1;
-static gint ett_mapi_CollapseRow_req = -1;
-static gint ett_mapi_CollapseRow_repl = -1;
-static gint ett_mapi_LockRegionStream_req = -1;
-static gint ett_mapi_LockRegionStream_repl = -1;
-static gint ett_mapi_UnlockRegionStream_req = -1;
-static gint ett_mapi_UnlockRegionStream_repl = -1;
-static gint ett_mapi_CommitStream_req = -1;
-static gint ett_mapi_CommitStream_repl = -1;
-static gint ett_mapi_GetStreamSize_req = -1;
-static gint ett_mapi_GetStreamSize_repl = -1;
-static gint ett_mapi_QueryFlags = -1;
-static gint ett_mapi_QueryNamedProperties_guid = -1;
-static gint ett_mapi_QueryNamedProperties_req = -1;
-static gint ett_mapi_QueryNamedProperties_repl = -1;
-static gint ett_mapi_GetPerUserLongTermIds_req = -1;
-static gint ett_mapi_GetPerUserLongTermIds_repl = -1;
-static gint ett_mapi_GetPerUserGuid_req = -1;
-static gint ett_mapi_GetPerUserGuid_repl = -1;
-static gint ett_mapi_ReadPerUserInformation_req = -1;
-static gint ett_mapi_ReadPerUserInformation_repl = -1;
-static gint ett_mapi_SetReadFlags_req = -1;
-static gint ett_mapi_SetReadFlags_repl = -1;
-static gint ett_mapi_CopyProperties_req = -1;
-static gint ett_mapi_CopyProperties_repl = -1;
-static gint ett_mapi_FILETIME = -1;
-static gint ett_mapi_ReceiveFolder = -1;
-static gint ett_mapi_GetReceiveFolderTable_req = -1;
-static gint ett_mapi_GetReceiveFolderTable_repl = -1;
-static gint ett_mapi_GetCollapseState_req = -1;
-static gint ett_mapi_GetCollapseState_repl = -1;
-static gint ett_mapi_SetCollapseState_req = -1;
-static gint ett_mapi_SetCollapseState_repl = -1;
-static gint ett_mapi_GetTransportFolder_req = -1;
-static gint ett_mapi_GetTransportFolder_repl = -1;
-static gint ett_mapi_Pending_repl = -1;
-static gint ett_mapi_OptionsData_req = -1;
-static gint ett_mapi_OptionsData_HelpFileName = -1;
-static gint ett_mapi_OptionsData_repl = -1;
-static gint ett_mapi_SendOptions = -1;
-static gint ett_mapi_SynchronizationFlag = -1;
-static gint ett_mapi_SynchronizationExtraFlags = -1;
-static gint ett_mapi_SyncConfigure_req = -1;
-static gint ett_mapi_SyncConfigure_repl = -1;
-static gint ett_mapi_ImportFlag = -1;
-static gint ett_mapi_SyncImportMessageChange_req = -1;
-static gint ett_mapi_SyncImportMessageChange_repl = -1;
-static gint ett_mapi_SyncImportHierarchyChange_req = -1;
-static gint ett_mapi_SyncImportHierarchyChange_repl = -1;
-static gint ett_mapi_SyncImportDeletes_req = -1;
-static gint ett_mapi_SyncImportDeletes_repl = -1;
-static gint ett_mapi_SyncUploadStateStreamBegin_req = -1;
-static gint ett_mapi_SyncUploadStateStreamBegin_repl = -1;
-static gint ett_mapi_SyncUploadStateStreamContinue_req = -1;
-static gint ett_mapi_SyncUploadStateStreamContinue_repl = -1;
-static gint ett_mapi_SyncUploadStateStreamEnd_req = -1;
-static gint ett_mapi_SyncUploadStateStreamEnd_repl = -1;
-static gint ett_mapi_SyncImportMessageMove_req = -1;
-static gint ett_mapi_SyncImportMessageMove_repl = -1;
-static gint ett_mapi_SetPropertiesNoReplicate_req = -1;
-static gint ett_mapi_SetPropertiesNoReplicate_repl = -1;
-static gint ett_mapi_DeletePropertiesNoReplicate_req = -1;
-static gint ett_mapi_DeletePropertiesNoReplicate_repl = -1;
-static gint ett_mapi_StoreState = -1;
-static gint ett_mapi_GetStoreState_req = -1;
-static gint ett_mapi_GetStoreState_repl = -1;
-static gint ett_mapi_SyncOpenCollector_req = -1;
-static gint ett_mapi_SyncOpenCollector_repl = -1;
-static gint ett_mapi_GetLocalReplicaIds_req = -1;
-static gint ett_mapi_GetLocalReplicaIds_repl = -1;
-static gint ett_mapi_SyncImportReadStateChanges_req = -1;
-static gint ett_mapi_SyncImportReadStateChanges_repl = -1;
-static gint ett_mapi_ResetTable_req = -1;
-static gint ett_mapi_ResetTable_repl = -1;
-static gint ett_mapi_SyncGetTransferState_req = -1;
-static gint ett_mapi_SyncGetTransferState_repl = -1;
-static gint ett_mapi_OpenPublicFolderByName_req = -1;
-static gint ett_mapi_OpenPublicFolderByName_repl = -1;
-static gint ett_mapi_SetSyncNotificationGuid_req = -1;
-static gint ett_mapi_SetSyncNotificationGuid_repl = -1;
-static gint ett_mapi_FreeBookmark_req = -1;
-static gint ett_mapi_FreeBookmark_repl = -1;
-static gint ett_mapi_WriteAndCommitStream_req = -1;
-static gint ett_mapi_WriteAndCommitStream_repl = -1;
-static gint ett_mapi_HardDeleteMessages_req = -1;
-static gint ett_mapi_HardDeleteMessages_repl = -1;
-static gint ett_mapi_HardDeleteMessagesAndSubfolders_req = -1;
-static gint ett_mapi_HardDeleteMessagesAndSubfolders_repl = -1;
-static gint ett_mapi_OpenFlags = -1;
-static gint ett_mapi_LogonTime = -1;
-static gint ett_mapi_ResponseFlags = -1;
-static gint ett_mapi_Logon_req = -1;
-static gint ett_mapi_Logon_repl = -1;
-static gint ett_mapi_RopBufferTooSmall_repl = -1;
-static gint ett_mapi_RopRequest = -1;
-static gint ett_mapi_RopReply = -1;
-static gint ett_mapi_EcDoRpcMapiRequest = -1;
-static gint ett_mapi_EcDoRpcMapiResponse = -1;
-static gint ett_mapi_mapi_request = -1;
-static gint ett_mapi_mapi_response = -1;
-static gint ett_mapi_AUX_HEADER_TYPE_ENUM = -1;
-static gint ett_mapi_AUX_PERF_REQUESTID = -1;
-static gint ett_mapi_AUX_PERF_CLIENTINFO = -1;
-static gint ett_mapi_AUX_PERF_SERVERINFO = -1;
-static gint ett_mapi_AUX_PERF_SESSIONINFO = -1;
-static gint ett_mapi_AUX_PERF_SESSIONINFO_V2 = -1;
-static gint ett_mapi_AUX_PERF_DEFMDB_SUCCESS = -1;
-static gint ett_mapi_AUX_PERF_DEFGC_SUCCESS = -1;
-static gint ett_mapi_AUX_PERF_MDB_SUCCESS = -1;
-static gint ett_mapi_AUX_PERF_MDB_SUCCESS_V2 = -1;
-static gint ett_mapi_AUX_PERF_GC_SUCCESS = -1;
-static gint ett_mapi_AUX_PERF_GC_SUCCESS_V2 = -1;
-static gint ett_mapi_AUX_PERF_FAILURE = -1;
-static gint ett_mapi_AUX_PERF_FAILURE_V2 = -1;
-static gint ett_mapi_CLIENT_CONTROL_EnableFlags = -1;
-static gint ett_mapi_AUX_CLIENT_CONTROL = -1;
-static gint ett_mapi_AUX_PERF_PROCESSINFO = -1;
-static gint ett_mapi_AUX_OSVERSIONINFO = -1;
-static gint ett_mapi_EXORGINFO_OrgFlags = -1;
-static gint ett_mapi_AUX_EXORGINFO = -1;
-static gint ett_mapi_AuxDataVersion1 = -1;
-static gint ett_mapi_AuxDataVersion2 = -1;
-static gint ett_mapi_AUX_DATA = -1;
-static gint ett_mapi_AUX_HEADER = -1;
-static gint ett_mapi_RPC_HEADER_EXT_Flags = -1;
-static gint ett_mapi_RPC_HEADER_EXT = -1;
-static gint ett_mapi_AuxInfo = -1;
-static gint ett_mapi_AuxInfoOut = -1;
-static gint ett_mapi_RpcExt2Flags = -1;
-static gint ett_mapi_RopInput = -1;
-static gint ett_mapi_ROPInputBuffer = -1;
-static gint ett_mapi_RgbIn = -1;
-static gint ett_mapi_RopOutput = -1;
-static gint ett_mapi_ROPOutputBuffer = -1;
-static gint ett_mapi_RgbOut = -1;
+static gint ett_mapi_connect_request;
+static gint ett_ServerObjectHandleTable;
+static gint ett_dcerpc_mapi;
+static gint ett_mapi_DATA_BLOB;
+static gint ett_mapi_SBinary_short;
+static gint ett_mapi_mapi_MV_LONG_STRUCT;
+static gint ett_mapi_mapi_LPSTR;
+static gint ett_mapi_mapi_SLPSTRArray;
+static gint ett_mapi_mapi_LPWSTR;
+static gint ett_mapi_mapi_SPLSTRArrayW;
+static gint ett_mapi_mapi_SBinaryArray;
+static gint ett_mapi_mapi_SGuidArray;
+static gint ett_mapi_mapi_SRestriction_wrap;
+static gint ett_mapi_mapi_SPropValue_wrap;
+static gint ett_mapi_mapi_SPropValue_array_wrap;
+static gint ett_mapi_MoveCopy_Action;
+static gint ett_mapi_ReplyOOF_Action;
+static gint ett_mapi_RecipientBlock;
+static gint ett_mapi_ForwardDelegate_Action;
+static gint ett_mapi_ActionData;
+static gint ett_mapi_ActionBlockData;
+static gint ett_mapi_ActionBlock;
+static gint ett_mapi_RuleAction;
+static gint ett_mapi_ShortArray_r;
+static gint ett_mapi_LongArray_r;
+static gint ett_mapi_BinaryArray_r;
+static gint ett_mapi_DateTimeArray_r;
+static gint ett_mapi_Binary_r;
+static gint ett_mapi_mapi_SPropValue_CTR;
+static gint ett_mapi_mapi_SPropValue;
+static gint ett_mapi_mapi_SPropValue_array;
+static gint ett_mapi_mapi_SPropTagArray;
+static gint ett_mapi_Release_req;
+static gint ett_mapi_Release_repl;
+static gint ett_mapi_OpenFolder_req;
+static gint ett_mapi_OpenFolder_Replicas;
+static gint ett_mapi_IsGhosted;
+static gint ett_mapi_OpenFolder_Success;
+static gint ett_mapi_OpenFolder_repl_status;
+static gint ett_mapi_OpenFolder_repl;
+static gint ett_mapi_String;
+static gint ett_mapi_TypedString;
+static gint ett_mapi_OpenMessage_req;
+static gint ett_mapi_RecipExchange;
+static gint ett_mapi_RecipSMTP;
+static gint ett_mapi_recipient_type;
+static gint ett_mapi_recipient_SimpleDisplayName;
+static gint ett_mapi_recipient_TransmittableDisplayName;
+static gint ett_mapi_recipient_DisplayName;
+static gint ett_mapi_recipient_EmailAddress;
+static gint ett_mapi_RecipientRow;
+static gint ett_mapi_OpenMessage_recipients;
+static gint ett_mapi_OpenMessage_Success;
+static gint ett_mapi_OpenMessage_repl_status;
+static gint ett_mapi_OpenMessage_repl;
+static gint ett_mapi_TableFlags;
+static gint ett_mapi_GetHierarchyTable_req;
+static gint ett_mapi_GetHierarchyTable_repl_success;
+static gint ett_mapi_GetHierarchyTable_repl_status;
+static gint ett_mapi_GetHierarchyTable_repl;
+static gint ett_mapi_GetContentsTable_req;
+static gint ett_mapi_GetContentsTable_repl_success;
+static gint ett_mapi_GetContentsTable_repl_status;
+static gint ett_mapi_GetContentsTable_repl;
+static gint ett_mapi_CreateMessage_req;
+static gint ett_mapi_CreateMessage_MessageId;
+static gint ett_mapi_CreateMessage_repl_success;
+static gint ett_mapi_CreateMessage_repl_status;
+static gint ett_mapi_CreateMessage_repl;
+static gint ett_mapi_GetProps_req;
+static gint ett_mapi_GetProps_repl_success;
+static gint ett_mapi_GetProps_repl_status;
+static gint ett_mapi_GetProps_repl;
+static gint ett_mapi_GetPropsAll_req;
+static gint ett_mapi_GetPropsAll_repl_success;
+static gint ett_mapi_GetPropsAll_repl_status;
+static gint ett_mapi_GetPropsAll_repl;
+static gint ett_mapi_GetPropList_req;
+static gint ett_mapi_GetPropList_repl;
+static gint ett_mapi_PropertyProblem;
+static gint ett_mapi_SetProps_req;
+static gint ett_mapi_SetProps_repl;
+static gint ett_mapi_DeleteProps_req;
+static gint ett_mapi_DeleteProps_repl;
+static gint ett_mapi_SaveChangesMessage_req;
+static gint ett_mapi_SaveChangesMessage_repl;
+static gint ett_mapi_RemoveAllRecipients_req;
+static gint ett_mapi_RemoveAllRecipients_repl;
+static gint ett_mapi_ModifyRecipientRow;
+static gint ett_mapi_ModifyRecipients_req;
+static gint ett_mapi_ModifyRecipients_repl;
+static gint ett_mapi_ReadRecipients_req;
+static gint ett_mapi_ReadRecipientRow;
+static gint ett_mapi_ReadRecipients_repl;
+static gint ett_mapi_OpenRecipientRow;
+static gint ett_mapi_ReloadCachedInformation_req;
+static gint ett_mapi_ReloadCachedInformation_repl;
+static gint ett_mapi_MSGFLAG_READ;
+static gint ett_mapi_SetMessageReadFlag_req;
+static gint ett_mapi_SetMessageReadFlag_LogonId;
+static gint ett_mapi_SetMessageReadFlag_ClientData;
+static gint ett_mapi_SetMessageReadFlag_repl;
+static gint ett_mapi_SetColumns_req;
+static gint ett_mapi_SetColumns_repl;
+static gint ett_mapi_SSortOrder;
+static gint ett_mapi_SSortOrderSet;
+static gint ett_mapi_SortTable_req;
+static gint ett_mapi_SortTable_repl;
+static gint ett_mapi_mapi_SAndRestriction;
+static gint ett_mapi_mapi_SOrRestriction;
+static gint ett_mapi_mapi_SNotRestriction;
+static gint ett_mapi_fuzzyLevel;
+static gint ett_mapi_mapi_SContentRestriction;
+static gint ett_mapi_mapi_SBitmaskRestriction;
+static gint ett_mapi_mapi_SSizeRestriction;
+static gint ett_mapi_mapi_SPropertyRestriction;
+static gint ett_mapi_mapi_SCompareProps;
+static gint ett_mapi_mapi_SExistRestriction;
+static gint ett_mapi_mapi_SSubRestriction;
+static gint ett_mapi_RestrictionVariable;
+static gint ett_mapi_mapi_SCommentRestriction;
+static gint ett_mapi_mapi_SRestriction_CTR;
+static gint ett_mapi_mapi_SRestriction;
+static gint ett_mapi_SRestriction_and;
+static gint ett_mapi_SRestriction_or;
+static gint ett_mapi_SRestriction_sub;
+static gint ett_mapi_SRestriction_comment;
+static gint ett_mapi_Restrict_req;
+static gint ett_mapi_Restrict_repl;
+static gint ett_mapi_QueryRows_req;
+static gint ett_mapi_QueryRows_repl;
+static gint ett_mapi_GetStatus_req;
+static gint ett_mapi_GetStatus_repl;
+static gint ett_mapi_QueryPosition_req;
+static gint ett_mapi_QueryPosition_repl;
+static gint ett_mapi_SeekRow_req;
+static gint ett_mapi_SeekRow_repl;
+static gint ett_mapi_SeekRowBookmark_req;
+static gint ett_mapi_SeekRowBookmark_repl;
+static gint ett_mapi_SeekRowApprox_req;
+static gint ett_mapi_SeekRowApprox_repl;
+static gint ett_mapi_CreateBookmark_req;
+static gint ett_mapi_CreateBookmark_repl;
+static gint ett_mapi_LPTSTR;
+static gint ett_mapi_CreateFolder_req;
+static gint ett_mapi_CreateFolder_GhostInfo;
+static gint ett_mapi_CreateFolder_GhostUnion;
+static gint ett_mapi_CreateFolder_repl;
+static gint ett_mapi_DeleteFolderFlags;
+static gint ett_mapi_DeleteFolder_req;
+static gint ett_mapi_DeleteFolder_repl;
+static gint ett_mapi_DeleteMessages_req;
+static gint ett_mapi_DeleteMessages_repl;
+static gint ett_mapi_GetMessageStatus_req;
+static gint ett_mapi_ulMessageStatus;
+static gint ett_mapi_SetMessageStatus_req;
+static gint ett_mapi_SetMessageStatus_repl;
+static gint ett_mapi_GetAttachmentTable_req;
+static gint ett_mapi_GetAttachmentTable_repl;
+static gint ett_mapi_OpenAttach_req;
+static gint ett_mapi_OpenAttach_repl;
+static gint ett_mapi_CreateAttach_req;
+static gint ett_mapi_CreateAttach_repl;
+static gint ett_mapi_DeleteAttach_req;
+static gint ett_mapi_DeleteAttach_repl;
+static gint ett_mapi_SaveChangesAttachment_req;
+static gint ett_mapi_SaveChangesAttachment_repl;
+static gint ett_mapi_SetReceiveFolder_req;
+static gint ett_mapi_SetReceiveFolder_repl;
+static gint ett_mapi_GetReceiveFolder_req;
+static gint ett_mapi_GetReceiveFolder_repl;
+static gint ett_mapi_hyperbool;
+static gint ett_mapi_RegisterNotification_req;
+static gint ett_mapi_RegisterNotification_repl;
+static gint ett_mapi_MsgFlags;
+static gint ett_mapi_MessageClass;
+static gint ett_mapi_GID;
+static gint ett_mapi_NewMailNotification;
+static gint ett_mapi_FolderCreatedNotification;
+static gint ett_mapi_FolderDeletedNotification;
+static gint ett_mapi_FolderModifiedNotification_10;
+static gint ett_mapi_FolderMoveCopyNotification;
+static gint ett_mapi_SearchCompleteNotification;
+static gint ett_mapi_HierarchyRowAddedNotification;
+static gint ett_mapi_HierarchyRowDeletedNotification;
+static gint ett_mapi_HierarchyRowModifiedNotification;
+static gint ett_mapi_HierarchyTableChangeUnion;
+static gint ett_mapi_HierarchyTableChange;
+static gint ett_mapi_IcsNotification;
+static gint ett_mapi_FolderModifiedNotification_1010;
+static gint ett_mapi_FolderModifiedNotification_2010;
+static gint ett_mapi_FolderModifiedNotification_3010;
+static gint ett_mapi_MessageCreatedNotification;
+static gint ett_mapi_MessageDeletedNotification;
+static gint ett_mapi_MessageModifiedNotification;
+static gint ett_mapi_MessageMoveCopyNotification;
+static gint ett_mapi_ContentsRowAddedNotification;
+static gint ett_mapi_ContentsRowDeletedNotification;
+static gint ett_mapi_ContentsRowModifiedNotification;
+static gint ett_mapi_ContentsTableChangeUnion;
+static gint ett_mapi_ContentsTableChange;
+static gint ett_mapi_SearchMessageCreatedNotification;
+static gint ett_mapi_SearchMessageRemovedNotification;
+static gint ett_mapi_SearchMessageModifiedNotification;
+static gint ett_mapi_NotificationData;
+static gint ett_mapi_Notify_repl;
+static gint ett_mapi_OpenStream_req;
+static gint ett_mapi_OpenStream_repl;
+static gint ett_mapi_MaximumByteCount;
+static gint ett_mapi_ReadStream_req;
+static gint ett_mapi_ReadStream_repl;
+static gint ett_mapi_WriteStream_req;
+static gint ett_mapi_WriteStream_repl;
+static gint ett_mapi_SeekStream_req;
+static gint ett_mapi_SeekStream_repl;
+static gint ett_mapi_SetStreamSize_req;
+static gint ett_mapi_SetStreamSize_repl;
+static gint ett_mapi_SearchFlags;
+static gint ett_mapi_SetSearchCriteria_req;
+static gint ett_mapi_SetSearchCriteria_repl;
+static gint ett_mapi_GetSearchCriteria_req;
+static gint ett_mapi_GetSearchCriteria_repl;
+static gint ett_mapi_SubmitMessage_req;
+static gint ett_mapi_SubmitMessage_repl;
+static gint ett_mapi_MoveCopyMessages_req;
+static gint ett_mapi_MoveCopyMessages_repl;
+static gint ett_mapi_AbortSubmit_req;
+static gint ett_mapi_AbortSubmit_repl;
+static gint ett_mapi_Folder_name;
+static gint ett_mapi_MoveFolder_req;
+static gint ett_mapi_MoveFolder_repl;
+static gint ett_mapi_CopyFolder_req;
+static gint ett_mapi_CopyFolder_repl;
+static gint ett_mapi_QueryColumnsAll_req;
+static gint ett_mapi_QueryColumnsAll_repl;
+static gint ett_mapi_Abort_req;
+static gint ett_mapi_Abort_repl;
+static gint ett_mapi_CopyFlags;
+static gint ett_mapi_CopyTo_req;
+static gint ett_mapi_CopyTo_repl;
+static gint ett_mapi_CopyToStream_req;
+static gint ett_mapi_CopyToStream_repl;
+static gint ett_mapi_CloneStream_req;
+static gint ett_mapi_CloneStream_repl;
+static gint ett_mapi_PermissionsTableFlags;
+static gint ett_mapi_GetPermissionsTable_req;
+static gint ett_mapi_GetPermissionsTable_repl;
+static gint ett_mapi_RulesTableFlags;
+static gint ett_mapi_GetRulesTable_req;
+static gint ett_mapi_GetRulesTable_repl;
+static gint ett_mapi_ModifyPermissionsFlags;
+static gint ett_mapi_PermissionData;
+static gint ett_mapi_mapi_PermissionsData;
+static gint ett_mapi_ModifyPermissions_req;
+static gint ett_mapi_ModifyPermissions_repl;
+static gint ett_mapi_RuleData;
+static gint ett_mapi_ModifyRulesFlag;
+static gint ett_mapi_ModifyRules_req;
+static gint ett_mapi_ModifyRules_repl;
+static gint ett_mapi_GetOwningServers_req;
+static gint ett_mapi_GetOwningServers_repl;
+static gint ett_mapi_LongTermIdFromId_req;
+static gint ett_mapi_LongTermId;
+static gint ett_mapi_LongTermIdFromId_repl_Success;
+static gint ett_mapi_LongTermIdFromId_repl_status;
+static gint ett_mapi_LongTermIdFromId_repl;
+static gint ett_mapi_IdFromLongTermId_req;
+static gint ett_mapi_IdFromLongTermId_repl;
+static gint ett_mapi_PublicFolderIsGhosted_req;
+static gint ett_mapi_PublicFolderIsGhosted_repl;
+static gint ett_mapi_OpenEmbeddedMessage_req;
+static gint ett_mapi_OpenEmbeddedMessage_repl;
+static gint ett_mapi_SetSpooler_req;
+static gint ett_mapi_SetSpooler_repl;
+static gint ett_mapi_SpoolerLockMessage_req;
+static gint ett_mapi_SpoolerLockMessage_repl;
+static gint ett_mapi_AddressTypes_req;
+static gint ett_mapi_AddressTypes_repl;
+static gint ett_mapi_TransportSend_req;
+static gint ett_mapi_TransportSend_lpProps;
+static gint ett_mapi_TransportSend_repl;
+static gint ett_mapi_FastTransferSourceGetBuffer_req;
+static gint ett_mapi_FastTransferSourceGetBuffer_repl;
+static gint ett_mapi_FindRow_req;
+static gint ett_mapi_FindRow_repl;
+static gint ett_mapi_Progress_req;
+static gint ett_mapi_Progress_repl;
+static gint ett_mapi_TransportNewMail_req;
+static gint ett_mapi_TransportNewMail_repl;
+static gint ett_mapi_GetValidAttachments_req;
+static gint ett_mapi_GetValidAttachments_repl;
+static gint ett_mapi_mapi_name;
+static gint ett_mapi_Kind;
+static gint ett_mapi_MAPINAMEID;
+static gint ett_mapi_GetNamesFromIDs_req;
+static gint ett_mapi_GetNamesFromIDs_repl;
+static gint ett_mapi_GetIDsFromNames_req;
+static gint ett_mapi_GetIDsFromNames_repl;
+static gint ett_mapi_UpdateDeferredActionMessages_req;
+static gint ett_mapi_UpdateDeferredActionMessages_repl;
+static gint ett_mapi_EmptyFolder_req;
+static gint ett_mapi_EmptyFolder_repl;
+static gint ett_mapi_ExpandRow_req;
+static gint ett_mapi_ExpandRow_repl;
+static gint ett_mapi_CollapseRow_req;
+static gint ett_mapi_CollapseRow_repl;
+static gint ett_mapi_LockRegionStream_req;
+static gint ett_mapi_LockRegionStream_repl;
+static gint ett_mapi_UnlockRegionStream_req;
+static gint ett_mapi_UnlockRegionStream_repl;
+static gint ett_mapi_CommitStream_req;
+static gint ett_mapi_CommitStream_repl;
+static gint ett_mapi_GetStreamSize_req;
+static gint ett_mapi_GetStreamSize_repl;
+static gint ett_mapi_QueryFlags;
+static gint ett_mapi_QueryNamedProperties_guid;
+static gint ett_mapi_QueryNamedProperties_req;
+static gint ett_mapi_QueryNamedProperties_repl;
+static gint ett_mapi_GetPerUserLongTermIds_req;
+static gint ett_mapi_GetPerUserLongTermIds_repl;
+static gint ett_mapi_GetPerUserGuid_req;
+static gint ett_mapi_GetPerUserGuid_repl;
+static gint ett_mapi_ReadPerUserInformation_req;
+static gint ett_mapi_ReadPerUserInformation_repl;
+static gint ett_mapi_SetReadFlags_req;
+static gint ett_mapi_SetReadFlags_repl;
+static gint ett_mapi_CopyProperties_req;
+static gint ett_mapi_CopyProperties_repl;
+static gint ett_mapi_FILETIME;
+static gint ett_mapi_ReceiveFolder;
+static gint ett_mapi_GetReceiveFolderTable_req;
+static gint ett_mapi_GetReceiveFolderTable_repl;
+static gint ett_mapi_GetCollapseState_req;
+static gint ett_mapi_GetCollapseState_repl;
+static gint ett_mapi_SetCollapseState_req;
+static gint ett_mapi_SetCollapseState_repl;
+static gint ett_mapi_GetTransportFolder_req;
+static gint ett_mapi_GetTransportFolder_repl;
+static gint ett_mapi_Pending_repl;
+static gint ett_mapi_OptionsData_req;
+static gint ett_mapi_OptionsData_HelpFileName;
+static gint ett_mapi_OptionsData_repl;
+static gint ett_mapi_SendOptions;
+static gint ett_mapi_SynchronizationFlag;
+static gint ett_mapi_SynchronizationExtraFlags;
+static gint ett_mapi_SyncConfigure_req;
+static gint ett_mapi_SyncConfigure_repl;
+static gint ett_mapi_ImportFlag;
+static gint ett_mapi_SyncImportMessageChange_req;
+static gint ett_mapi_SyncImportMessageChange_repl;
+static gint ett_mapi_SyncImportHierarchyChange_req;
+static gint ett_mapi_SyncImportHierarchyChange_repl;
+static gint ett_mapi_SyncImportDeletes_req;
+static gint ett_mapi_SyncImportDeletes_repl;
+static gint ett_mapi_SyncUploadStateStreamBegin_req;
+static gint ett_mapi_SyncUploadStateStreamBegin_repl;
+static gint ett_mapi_SyncUploadStateStreamContinue_req;
+static gint ett_mapi_SyncUploadStateStreamContinue_repl;
+static gint ett_mapi_SyncUploadStateStreamEnd_req;
+static gint ett_mapi_SyncUploadStateStreamEnd_repl;
+static gint ett_mapi_SyncImportMessageMove_req;
+static gint ett_mapi_SyncImportMessageMove_repl;
+static gint ett_mapi_SetPropertiesNoReplicate_req;
+static gint ett_mapi_SetPropertiesNoReplicate_repl;
+static gint ett_mapi_DeletePropertiesNoReplicate_req;
+static gint ett_mapi_DeletePropertiesNoReplicate_repl;
+static gint ett_mapi_StoreState;
+static gint ett_mapi_GetStoreState_req;
+static gint ett_mapi_GetStoreState_repl;
+static gint ett_mapi_SyncOpenCollector_req;
+static gint ett_mapi_SyncOpenCollector_repl;
+static gint ett_mapi_GetLocalReplicaIds_req;
+static gint ett_mapi_GetLocalReplicaIds_repl;
+static gint ett_mapi_SyncImportReadStateChanges_req;
+static gint ett_mapi_SyncImportReadStateChanges_repl;
+static gint ett_mapi_ResetTable_req;
+static gint ett_mapi_ResetTable_repl;
+static gint ett_mapi_SyncGetTransferState_req;
+static gint ett_mapi_SyncGetTransferState_repl;
+static gint ett_mapi_OpenPublicFolderByName_req;
+static gint ett_mapi_OpenPublicFolderByName_repl;
+static gint ett_mapi_SetSyncNotificationGuid_req;
+static gint ett_mapi_SetSyncNotificationGuid_repl;
+static gint ett_mapi_FreeBookmark_req;
+static gint ett_mapi_FreeBookmark_repl;
+static gint ett_mapi_WriteAndCommitStream_req;
+static gint ett_mapi_WriteAndCommitStream_repl;
+static gint ett_mapi_HardDeleteMessages_req;
+static gint ett_mapi_HardDeleteMessages_repl;
+static gint ett_mapi_HardDeleteMessagesAndSubfolders_req;
+static gint ett_mapi_HardDeleteMessagesAndSubfolders_repl;
+static gint ett_mapi_OpenFlags;
+static gint ett_mapi_LogonTime;
+static gint ett_mapi_ResponseFlags;
+static gint ett_mapi_Logon_req;
+static gint ett_mapi_Logon_repl;
+static gint ett_mapi_RopBufferTooSmall_repl;
+static gint ett_mapi_RopRequest;
+static gint ett_mapi_RopReply;
+static gint ett_mapi_EcDoRpcMapiRequest;
+static gint ett_mapi_EcDoRpcMapiResponse;
+static gint ett_mapi_mapi_request;
+static gint ett_mapi_mapi_response;
+static gint ett_mapi_AUX_HEADER_TYPE_ENUM;
+static gint ett_mapi_AUX_PERF_REQUESTID;
+static gint ett_mapi_AUX_PERF_CLIENTINFO;
+static gint ett_mapi_AUX_PERF_SERVERINFO;
+static gint ett_mapi_AUX_PERF_SESSIONINFO;
+static gint ett_mapi_AUX_PERF_SESSIONINFO_V2;
+static gint ett_mapi_AUX_PERF_DEFMDB_SUCCESS;
+static gint ett_mapi_AUX_PERF_DEFGC_SUCCESS;
+static gint ett_mapi_AUX_PERF_MDB_SUCCESS;
+static gint ett_mapi_AUX_PERF_MDB_SUCCESS_V2;
+static gint ett_mapi_AUX_PERF_GC_SUCCESS;
+static gint ett_mapi_AUX_PERF_GC_SUCCESS_V2;
+static gint ett_mapi_AUX_PERF_FAILURE;
+static gint ett_mapi_AUX_PERF_FAILURE_V2;
+static gint ett_mapi_CLIENT_CONTROL_EnableFlags;
+static gint ett_mapi_AUX_CLIENT_CONTROL;
+static gint ett_mapi_AUX_PERF_PROCESSINFO;
+static gint ett_mapi_AUX_OSVERSIONINFO;
+static gint ett_mapi_EXORGINFO_OrgFlags;
+static gint ett_mapi_AUX_EXORGINFO;
+static gint ett_mapi_AuxDataVersion1;
+static gint ett_mapi_AuxDataVersion2;
+static gint ett_mapi_AUX_DATA;
+static gint ett_mapi_AUX_HEADER;
+static gint ett_mapi_RPC_HEADER_EXT_Flags;
+static gint ett_mapi_RPC_HEADER_EXT;
+static gint ett_mapi_AuxInfo;
+static gint ett_mapi_AuxInfoOut;
+static gint ett_mapi_RpcExt2Flags;
+static gint ett_mapi_RopInput;
+static gint ett_mapi_ROPInputBuffer;
+static gint ett_mapi_RgbIn;
+static gint ett_mapi_RopOutput;
+static gint ett_mapi_ROPOutputBuffer;
+static gint ett_mapi_RgbOut;
/* Header field declarations */
-static gint hf_mapi_AUX_CLIENT_CONTROL_EnableFlags = -1;
-static gint hf_mapi_AUX_CLIENT_CONTROL_ExpiryTime = -1;
-static gint hf_mapi_AUX_DATA_Version1 = -1;
-static gint hf_mapi_AUX_DATA_Version2 = -1;
-static gint hf_mapi_AUX_EXORGINFO_OrgFlags = -1;
-static gint hf_mapi_AUX_HEADER_AuxData = -1;
-static gint hf_mapi_AUX_HEADER_Size = -1;
-static gint hf_mapi_AUX_HEADER_TYPE_ENUM_Type = -1;
-static gint hf_mapi_AUX_HEADER_TYPE_ENUM_Type_2 = -1;
-static gint hf_mapi_AUX_HEADER_Version = -1;
-static gint hf_mapi_AUX_HEADER_hdrType = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_BuildNumber = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_MajorVersion = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_MinorVersion = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_OSVersionInfoSize = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_Reserved_1 = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_Reserved_2 = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_ServicePackMajor = -1;
-static gint hf_mapi_AUX_OSVERSIONINFO_ServicePackMinor = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterName = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterNameOffset = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterSpeed = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientID = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMask = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskOffset = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskSize = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPOffset = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPSize = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV4 = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV6 = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientMode = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressEther = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressOffset = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressSize = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_MachineName = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_MachineNameOffset = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_Reserved = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_UserName = -1;
-static gint hf_mapi_AUX_PERF_CLIENTINFO_UserNameOffset = -1;
-static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_RequestOperation = -1;
-static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_Reserved = -1;
-static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_ServerID = -1;
-static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_SessionID = -1;
-static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest = -1;
-static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_RequestID = -1;
-static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_Reserved = -1;
-static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_ClientID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_RequestID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_RequestOperation = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_Reserved = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_ResultCode = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_ServerID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_SessionID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_TimeToFailRequest = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_ClientID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_ProcessID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_RequestID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_RequestOperation = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_Reserved_1 = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_Reserved_2 = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_ResultCode = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_ServerID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_SessionID = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_FAILURE_V2_TimeToFailRequest = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_ClientID = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_RequestOperation = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_1 = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_2 = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_ServerID = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_SessionID = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ClientID = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ProcessID = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_RequestOperation = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_Reserved = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ServerID = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_SessionID = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_ClientID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_RequestID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_ServerID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_SessionID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ClientID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ProcessID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_RequestID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_Reserved = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ServerID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_SessionID = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest = -1;
-static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest = -1;
-static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessGuid = -1;
-static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessID = -1;
-static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessName = -1;
-static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessNameOffset = -1;
-static gint hf_mapi_AUX_PERF_PROCESSINFO_Reserved1 = -1;
-static gint hf_mapi_AUX_PERF_PROCESSINFO_Reserved2 = -1;
-static gint hf_mapi_AUX_PERF_REQUESTID_RequestID = -1;
-static gint hf_mapi_AUX_PERF_REQUESTID_SessionID = -1;
-static gint hf_mapi_AUX_PERF_SERVERINFO_ServerDN = -1;
-static gint hf_mapi_AUX_PERF_SERVERINFO_ServerDNOffset = -1;
-static gint hf_mapi_AUX_PERF_SERVERINFO_ServerID = -1;
-static gint hf_mapi_AUX_PERF_SERVERINFO_ServerName = -1;
-static gint hf_mapi_AUX_PERF_SERVERINFO_ServerNameOffset = -1;
-static gint hf_mapi_AUX_PERF_SERVERINFO_ServerType = -1;
-static gint hf_mapi_AUX_PERF_SESSIONINFO_Reserved = -1;
-static gint hf_mapi_AUX_PERF_SESSIONINFO_SessionGuid = -1;
-static gint hf_mapi_AUX_PERF_SESSIONINFO_SessionID = -1;
-static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_ConnectionID = -1;
-static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_Reserved = -1;
-static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionGuid = -1;
-static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionID = -1;
-static gint hf_mapi_AbortSubmit_req_FolderId = -1;
-static gint hf_mapi_AbortSubmit_req_MessageId = -1;
-static gint hf_mapi_Abort_repl_TableStatus = -1;
-static gint hf_mapi_ActionBlockData_ActionDataBuffer = -1;
-static gint hf_mapi_ActionBlockData_ActionFlags = -1;
-static gint hf_mapi_ActionBlockData_ActionFlavor = -1;
-static gint hf_mapi_ActionBlockData_ActionType = -1;
-static gint hf_mapi_ActionBlock_ActionBlockData = -1;
-static gint hf_mapi_ActionData_BounceCode = -1;
-static gint hf_mapi_ActionData_CopyAction = -1;
-static gint hf_mapi_ActionData_DeferAction = -1;
-static gint hf_mapi_ActionData_DelegateAction = -1;
-static gint hf_mapi_ActionData_ForwardAction = -1;
-static gint hf_mapi_ActionData_MoveAction = -1;
-static gint hf_mapi_ActionData_PropValue = -1;
-static gint hf_mapi_ActionData_ReplyAction = -1;
-static gint hf_mapi_ActionData_ReplyOOFAction = -1;
-static gint hf_mapi_AddressTypes_repl_cValues = -1;
-static gint hf_mapi_AddressTypes_repl_size = -1;
-static gint hf_mapi_AddressTypes_repl_transport = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryClientControl = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryEXOrgInfo = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryOSVersionInfo = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerFGGCSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgFailure = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgGcSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfClientInfo = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfDefgcSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFailure = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgFailure = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfGcSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfMdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfProcessInfo = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfRequestId = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfServerInfo = -1;
-static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfSessionInfo = -1;
-static gint hf_mapi_AuxDataVersion1_Payload = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryEXOrgInfo = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryOSVersionInfo = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerFGGCSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerf = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgFailure = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgGcSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfClientInfo = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfDefgcSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFailure = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgFailure = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfGcSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfMdbSuccess = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfProcessInfo = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfRequestId = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfServerInfo = -1;
-static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfSessioninfo = -1;
-static gint hf_mapi_AuxDataVersion2_Payload = -1;
-static gint hf_mapi_AuxInfoOut_RpcHeaderExtension = -1;
-static gint hf_mapi_AuxInfoOut_auxHeader = -1;
-static gint hf_mapi_AuxInfo_RpcHeaderExtension = -1;
-static gint hf_mapi_AuxInfo_auxHeader = -1;
-static gint hf_mapi_AuxInfo_auxInSize = -1;
-static gint hf_mapi_BinaryArray_r_cValues = -1;
-static gint hf_mapi_BinaryArray_r_lpbin = -1;
-static gint hf_mapi_Binary_r_cb = -1;
-static gint hf_mapi_Binary_r_lpb = -1;
-static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_COMPRESSION = -1;
-static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_HTTP_TUNNELING = -1;
-static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDGCDATA = -1;
-static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOMAILBOX = -1;
-static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOSERVER = -1;
-static gint hf_mapi_CollapseRow_repl_CollapsedRowCount = -1;
-static gint hf_mapi_CollapseRow_req_CategoryId = -1;
-static gint hf_mapi_ContentsRowAddedNotification_Columns = -1;
-static gint hf_mapi_ContentsRowAddedNotification_FID = -1;
-static gint hf_mapi_ContentsRowAddedNotification_InsertAfterFID = -1;
-static gint hf_mapi_ContentsRowAddedNotification_InsertAfterInstance = -1;
-static gint hf_mapi_ContentsRowAddedNotification_InsertAfterMID = -1;
-static gint hf_mapi_ContentsRowAddedNotification_Instance = -1;
-static gint hf_mapi_ContentsRowAddedNotification_MID = -1;
-static gint hf_mapi_ContentsRowDeletedNotification_FID = -1;
-static gint hf_mapi_ContentsRowDeletedNotification_Instance = -1;
-static gint hf_mapi_ContentsRowDeletedNotification_MID = -1;
-static gint hf_mapi_ContentsRowModifiedNotification_Columns = -1;
-static gint hf_mapi_ContentsRowModifiedNotification_FID = -1;
-static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterFID = -1;
-static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterInstance = -1;
-static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterMID = -1;
-static gint hf_mapi_ContentsRowModifiedNotification_Instance = -1;
-static gint hf_mapi_ContentsRowModifiedNotification_MID = -1;
-static gint hf_mapi_ContentsTableChangeUnion_ContentsRowAddedNotification = -1;
-static gint hf_mapi_ContentsTableChangeUnion_ContentsRowDeletedNotification = -1;
-static gint hf_mapi_ContentsTableChangeUnion_ContentsRowModifiedNotification = -1;
-static gint hf_mapi_ContentsTableChange_ContentsTableChangeUnion = -1;
-static gint hf_mapi_ContentsTableChange_TableEvent = -1;
-static gint hf_mapi_CopyFlags_CopyFlagsMove = -1;
-static gint hf_mapi_CopyFlags_CopyFlagsNoOverwrite = -1;
-static gint hf_mapi_CopyFolder_repl_PartialCompletion = -1;
-static gint hf_mapi_CopyFolder_req_FolderId = -1;
-static gint hf_mapi_CopyFolder_req_NewFolderName = -1;
-static gint hf_mapi_CopyFolder_req_UseUnicode = -1;
-static gint hf_mapi_CopyFolder_req_WantAsynchronous = -1;
-static gint hf_mapi_CopyFolder_req_WantRecursive = -1;
-static gint hf_mapi_CopyProperties_repl_PropertyProblem = -1;
-static gint hf_mapi_CopyProperties_repl_PropertyProblemCount = -1;
-static gint hf_mapi_CopyProperties_req_CopyFlags = -1;
-static gint hf_mapi_CopyProperties_req_PropertyTags = -1;
-static gint hf_mapi_CopyProperties_req_WantAsynchronous = -1;
-static gint hf_mapi_CopyToStream_repl_ReadByteCount = -1;
-static gint hf_mapi_CopyToStream_repl_WrittenByteCount = -1;
-static gint hf_mapi_CopyToStream_req_ByteCount = -1;
-static gint hf_mapi_CopyTo_repl_PropertyProblem = -1;
-static gint hf_mapi_CopyTo_repl_PropertyProblemCount = -1;
-static gint hf_mapi_CopyTo_req_CopyFlags = -1;
-static gint hf_mapi_CopyTo_req_ExcludedTags = -1;
-static gint hf_mapi_CopyTo_req_WantAsynchronous = -1;
-static gint hf_mapi_CopyTo_req_WantSubObjects = -1;
-static gint hf_mapi_CreateAttach_repl_AttachmentID = -1;
-static gint hf_mapi_CreateBookmark_repl_bookmark = -1;
-static gint hf_mapi_CreateFolder_GhostInfo_Ghost = -1;
-static gint hf_mapi_CreateFolder_GhostInfo_HasRules = -1;
-static gint hf_mapi_CreateFolder_GhostInfo_IsGhosted = -1;
-static gint hf_mapi_CreateFolder_GhostUnion_GhostInfo = -1;
-static gint hf_mapi_CreateFolder_repl_GhostUnion = -1;
-static gint hf_mapi_CreateFolder_repl_IsExistingFolder = -1;
-static gint hf_mapi_CreateFolder_repl_folder_id = -1;
-static gint hf_mapi_CreateFolder_req_FolderComment = -1;
-static gint hf_mapi_CreateFolder_req_FolderName = -1;
-static gint hf_mapi_CreateFolder_req_ulFlags = -1;
-static gint hf_mapi_CreateFolder_req_ulFolderType = -1;
-static gint hf_mapi_CreateFolder_req_ulType = -1;
-static gint hf_mapi_CreateMessage_MessageId_MessageId = -1;
-static gint hf_mapi_CreateMessage_repl_OutputHandleIndex = -1;
-static gint hf_mapi_CreateMessage_repl_ReturnValue = -1;
-static gint hf_mapi_CreateMessage_repl_repl = -1;
-static gint hf_mapi_CreateMessage_repl_status_Success = -1;
-static gint hf_mapi_CreateMessage_repl_success_HasMessageId = -1;
-static gint hf_mapi_CreateMessage_repl_success_MessageId = -1;
-static gint hf_mapi_CreateMessage_req_AssociatedFlag = -1;
-static gint hf_mapi_CreateMessage_req_CodePageId = -1;
-static gint hf_mapi_CreateMessage_req_FolderId = -1;
-static gint hf_mapi_DATA_BLOB_data = -1;
-static gint hf_mapi_DATA_BLOB_length = -1;
-static gint hf_mapi_DateTimeArray_r_cValues = -1;
-static gint hf_mapi_DateTimeArray_r_lpft = -1;
-static gint hf_mapi_DeleteAttach_req_AttachmentID = -1;
-static gint hf_mapi_DeleteFolderFlags_DELETE_HARD_DELETE = -1;
-static gint hf_mapi_DeleteFolderFlags_DEL_FOLDERS = -1;
-static gint hf_mapi_DeleteFolderFlags_DEL_MESSAGES = -1;
-static gint hf_mapi_DeleteFolder_repl_PartialCompletion = -1;
-static gint hf_mapi_DeleteFolder_req_DeleteFolderFlags = -1;
-static gint hf_mapi_DeleteFolder_req_FolderId = -1;
-static gint hf_mapi_DeleteMessages_repl_PartialCompletion = -1;
-static gint hf_mapi_DeleteMessages_req_NotifyNonRead = -1;
-static gint hf_mapi_DeleteMessages_req_WantAsynchronous = -1;
-static gint hf_mapi_DeleteMessages_req_cn_ids = -1;
-static gint hf_mapi_DeleteMessages_req_message_ids = -1;
-static gint hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblem = -1;
-static gint hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblemCount = -1;
-static gint hf_mapi_DeletePropertiesNoReplicate_req_PropertyTags = -1;
-static gint hf_mapi_DeleteProps_repl_PropertyProblem = -1;
-static gint hf_mapi_DeleteProps_repl_PropertyProblemCount = -1;
-static gint hf_mapi_DeleteProps_req_PropertyTagCount = -1;
-static gint hf_mapi_DeleteProps_req_tags = -1;
-static gint hf_mapi_EXORGINFO_OrgFlags_PUBLIC_FOLDERS_ENABLED = -1;
-static gint hf_mapi_EcDoRpcMapiRequest_opnum = -1;
-static gint hf_mapi_EcDoRpcMapiRequest_u = -1;
-static gint hf_mapi_EcDoRpcMapiResponse_opnum = -1;
-static gint hf_mapi_EcDoRpcMapiResponse_u = -1;
-static gint hf_mapi_EmptyFolder_repl_PartialCompletion = -1;
-static gint hf_mapi_EmptyFolder_req_WantAsynchronous = -1;
-static gint hf_mapi_EmptyFolder_req_WantDeleteAssociated = -1;
-static gint hf_mapi_ExpandRow_repl_ExpandedRowCount = -1;
-static gint hf_mapi_ExpandRow_repl_RowCount = -1;
-static gint hf_mapi_ExpandRow_repl_RowData = -1;
-static gint hf_mapi_ExpandRow_req_CategoryId = -1;
-static gint hf_mapi_ExpandRow_req_MaxRowCount = -1;
-static gint hf_mapi_FILETIME_dwHighDateTime = -1;
-static gint hf_mapi_FILETIME_dwLowDateTime = -1;
-static gint hf_mapi_FastTransferSourceGetBuffer_repl_InProgressCount = -1;
-static gint hf_mapi_FastTransferSourceGetBuffer_repl_Reserved = -1;
-static gint hf_mapi_FastTransferSourceGetBuffer_repl_TotalStepCount = -1;
-static gint hf_mapi_FastTransferSourceGetBuffer_repl_TransferBuffer = -1;
-static gint hf_mapi_FastTransferSourceGetBuffer_repl_TransferStatus = -1;
-static gint hf_mapi_FastTransferSourceGetBuffer_req_BufferSize = -1;
-static gint hf_mapi_FindRow_repl_HasRowData = -1;
-static gint hf_mapi_FindRow_repl_RowNoLongerVisible = -1;
-static gint hf_mapi_FindRow_repl_row = -1;
-static gint hf_mapi_FindRow_req_bookmark = -1;
-static gint hf_mapi_FindRow_req_origin = -1;
-static gint hf_mapi_FindRow_req_res = -1;
-static gint hf_mapi_FindRow_req_ulFlags = -1;
-static gint hf_mapi_FolderCreatedNotification_FID = -1;
-static gint hf_mapi_FolderCreatedNotification_ParentFID = -1;
-static gint hf_mapi_FolderCreatedNotification_TagCount = -1;
-static gint hf_mapi_FolderCreatedNotification_Tags = -1;
-static gint hf_mapi_FolderDeletedNotification_FID = -1;
-static gint hf_mapi_FolderDeletedNotification_ParentFID = -1;
-static gint hf_mapi_FolderModifiedNotification_1010_FID = -1;
-static gint hf_mapi_FolderModifiedNotification_1010_TagCount = -1;
-static gint hf_mapi_FolderModifiedNotification_1010_Tags = -1;
-static gint hf_mapi_FolderModifiedNotification_1010_TotalMessageCount = -1;
-static gint hf_mapi_FolderModifiedNotification_10_FID = -1;
-static gint hf_mapi_FolderModifiedNotification_10_TagCount = -1;
-static gint hf_mapi_FolderModifiedNotification_10_Tags = -1;
-static gint hf_mapi_FolderModifiedNotification_2010_FID = -1;
-static gint hf_mapi_FolderModifiedNotification_2010_TagCount = -1;
-static gint hf_mapi_FolderModifiedNotification_2010_Tags = -1;
-static gint hf_mapi_FolderModifiedNotification_2010_UnreadMessageCount = -1;
-static gint hf_mapi_FolderModifiedNotification_3010_FID = -1;
-static gint hf_mapi_FolderModifiedNotification_3010_TagCount = -1;
-static gint hf_mapi_FolderModifiedNotification_3010_Tags = -1;
-static gint hf_mapi_FolderModifiedNotification_3010_TotalMessageCount = -1;
-static gint hf_mapi_FolderModifiedNotification_3010_UnreadMessageCount = -1;
-static gint hf_mapi_FolderMoveCopyNotification_FID = -1;
-static gint hf_mapi_FolderMoveCopyNotification_OldFID = -1;
-static gint hf_mapi_FolderMoveCopyNotification_OldParentFID = -1;
-static gint hf_mapi_FolderMoveCopyNotification_ParentFID = -1;
-static gint hf_mapi_Folder_name_lpszA = -1;
-static gint hf_mapi_Folder_name_lpszW = -1;
-static gint hf_mapi_ForwardDelegate_Action_RecipientBlock = -1;
-static gint hf_mapi_ForwardDelegate_Action_RecipientCount = -1;
-static gint hf_mapi_FreeBookmark_req_bookmark = -1;
-static gint hf_mapi_GID_DatabaseGUID = -1;
-static gint hf_mapi_GID_GlobalCounter = -1;
-static gint hf_mapi_GetAttachmentTable_req_TableFlags = -1;
-static gint hf_mapi_GetCollapseState_repl_CollapseState = -1;
-static gint hf_mapi_GetCollapseState_req_RowId = -1;
-static gint hf_mapi_GetCollapseState_req_RowInstanceNumber = -1;
-static gint hf_mapi_GetContentsTable_repl_OutputHandleIndex = -1;
-static gint hf_mapi_GetContentsTable_repl_ReturnValue = -1;
-static gint hf_mapi_GetContentsTable_repl_repl = -1;
-static gint hf_mapi_GetContentsTable_repl_status_Success = -1;
-static gint hf_mapi_GetContentsTable_repl_success_RowCount = -1;
-static gint hf_mapi_GetContentsTable_req_TableFlags = -1;
-static gint hf_mapi_GetHierarchyTable_repl_OutputHandleIndex = -1;
-static gint hf_mapi_GetHierarchyTable_repl_ReturnValue = -1;
-static gint hf_mapi_GetHierarchyTable_repl_repl = -1;
-static gint hf_mapi_GetHierarchyTable_repl_status_Success = -1;
-static gint hf_mapi_GetHierarchyTable_repl_success_RowCount = -1;
-static gint hf_mapi_GetHierarchyTable_req_TableFlags = -1;
-static gint hf_mapi_GetIDsFromNames_repl_count = -1;
-static gint hf_mapi_GetIDsFromNames_repl_propID = -1;
-static gint hf_mapi_GetIDsFromNames_req_count = -1;
-static gint hf_mapi_GetIDsFromNames_req_nameid = -1;
-static gint hf_mapi_GetIDsFromNames_req_ulFlags = -1;
-static gint hf_mapi_GetLocalReplicaIds_repl_GlobalCount = -1;
-static gint hf_mapi_GetLocalReplicaIds_repl_ReplGuid = -1;
-static gint hf_mapi_GetLocalReplicaIds_req_IdCount = -1;
-static gint hf_mapi_GetMessageStatus_req_msgid = -1;
-static gint hf_mapi_GetNamesFromIDs_repl_count = -1;
-static gint hf_mapi_GetNamesFromIDs_repl_nameid = -1;
-static gint hf_mapi_GetNamesFromIDs_req_PropertyIdCount = -1;
-static gint hf_mapi_GetNamesFromIDs_req_PropertyIds = -1;
-static gint hf_mapi_GetOwningServers_repl_CheapServersCount = -1;
-static gint hf_mapi_GetOwningServers_repl_OwningServers = -1;
-static gint hf_mapi_GetOwningServers_repl_OwningServersCount = -1;
-static gint hf_mapi_GetOwningServers_req_FolderId = -1;
-static gint hf_mapi_GetPerUserGuid_repl_DatabaseGuid = -1;
-static gint hf_mapi_GetPerUserGuid_req_LongTermId = -1;
-static gint hf_mapi_GetPerUserLongTermIds_repl_LongTermIdCount = -1;
-static gint hf_mapi_GetPerUserLongTermIds_repl_LongTermIds = -1;
-static gint hf_mapi_GetPerUserLongTermIds_req_DatabaseGuid = -1;
-static gint hf_mapi_GetPermissionsTable_req_TableFlags = -1;
-static gint hf_mapi_GetPropList_repl_count = -1;
-static gint hf_mapi_GetPropList_repl_tags = -1;
-static gint hf_mapi_GetPropsAll_repl_InputHandleIndex = -1;
-static gint hf_mapi_GetPropsAll_repl_ReturnValue = -1;
-static gint hf_mapi_GetPropsAll_repl_repl = -1;
-static gint hf_mapi_GetPropsAll_repl_status_Success = -1;
-static gint hf_mapi_GetPropsAll_repl_success_properties = -1;
-static gint hf_mapi_GetPropsAll_req_PropertySizeLimit = -1;
-static gint hf_mapi_GetPropsAll_req_WantUnicode = -1;
-static gint hf_mapi_GetProps_repl_InputHandleIndex = -1;
-static gint hf_mapi_GetProps_repl_ReturnValue = -1;
-static gint hf_mapi_GetProps_repl_repl = -1;
-static gint hf_mapi_GetProps_repl_status_Success = -1;
-static gint hf_mapi_GetProps_repl_success_layout = -1;
-static gint hf_mapi_GetProps_repl_success_prop_data = -1;
-static gint hf_mapi_GetProps_req_PropertySizeLimit = -1;
-static gint hf_mapi_GetProps_req_WantUnicode = -1;
-static gint hf_mapi_GetProps_req_prop_count = -1;
-static gint hf_mapi_GetProps_req_properties = -1;
-static gint hf_mapi_GetReceiveFolderTable_repl_cValues = -1;
-static gint hf_mapi_GetReceiveFolderTable_repl_entries = -1;
-static gint hf_mapi_GetReceiveFolder_repl_MessageClass = -1;
-static gint hf_mapi_GetReceiveFolder_repl_folder_id = -1;
-static gint hf_mapi_GetReceiveFolder_req_MessageClass = -1;
-static gint hf_mapi_GetRulesTable_req_TableFlags = -1;
-static gint hf_mapi_GetSearchCriteria_repl_FolderIdCount = -1;
-static gint hf_mapi_GetSearchCriteria_repl_FolderIds = -1;
-static gint hf_mapi_GetSearchCriteria_repl_SearchFlags = -1;
-static gint hf_mapi_GetSearchCriteria_repl_res = -1;
-static gint hf_mapi_GetSearchCriteria_repl_unknown = -1;
-static gint hf_mapi_GetSearchCriteria_req_IncludeFolders = -1;
-static gint hf_mapi_GetSearchCriteria_req_IncludeRestriction = -1;
-static gint hf_mapi_GetSearchCriteria_req_UseUnicode = -1;
-static gint hf_mapi_GetStatus_repl_TableStatus = -1;
-static gint hf_mapi_GetStoreState_repl_StoreState = -1;
-static gint hf_mapi_GetStreamSize_repl_StreamSize = -1;
-static gint hf_mapi_GetTransportFolder_repl_FolderId = -1;
-static gint hf_mapi_GetValidAttachments_repl_AttachmentIdArray = -1;
-static gint hf_mapi_GetValidAttachments_repl_AttachmentIdCount = -1;
-static gint hf_mapi_HardDeleteMessagesAndSubfolders_repl_PartialCompletion = -1;
-static gint hf_mapi_HardDeleteMessagesAndSubfolders_req_WantAsynchronous = -1;
-static gint hf_mapi_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated = -1;
-static gint hf_mapi_HardDeleteMessages_repl_PartialCompletion = -1;
-static gint hf_mapi_HardDeleteMessages_req_MessageIdCount = -1;
-static gint hf_mapi_HardDeleteMessages_req_MessageIds = -1;
-static gint hf_mapi_HardDeleteMessages_req_NotifyNonRead = -1;
-static gint hf_mapi_HardDeleteMessages_req_WantAsynchronous = -1;
-static gint hf_mapi_HierarchyRowAddedNotification_Columns = -1;
-static gint hf_mapi_HierarchyRowAddedNotification_FID = -1;
-static gint hf_mapi_HierarchyRowAddedNotification_InsertAfterFID = -1;
-static gint hf_mapi_HierarchyRowDeletedNotification_FID = -1;
-static gint hf_mapi_HierarchyRowModifiedNotification_Columns = -1;
-static gint hf_mapi_HierarchyRowModifiedNotification_FID = -1;
-static gint hf_mapi_HierarchyRowModifiedNotification_InsertAfterFID = -1;
-static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowAddedNotification = -1;
-static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowDeletedNotification = -1;
-static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowModifiedNotification = -1;
-static gint hf_mapi_HierarchyTableChange_HierarchyTableChangeUnion = -1;
-static gint hf_mapi_HierarchyTableChange_TableEvent = -1;
-static gint hf_mapi_IcsNotification_GID = -1;
-static gint hf_mapi_IcsNotification_GIDCount = -1;
-static gint hf_mapi_IcsNotification_HierChanged = -1;
-static gint hf_mapi_IdFromLongTermId_repl_Id = -1;
-static gint hf_mapi_IdFromLongTermId_req_LongTermId = -1;
-static gint hf_mapi_ImportFlag_ImportFlag_Associated = -1;
-static gint hf_mapi_ImportFlag_ImportFlag_FailOnConflict = -1;
-static gint hf_mapi_InputHandleIndex = -1;
-static gint hf_mapi_IsGhosted_Replicas = -1;
-static gint hf_mapi_Kind_lid = -1;
-static gint hf_mapi_Kind_lpwstr = -1;
-static gint hf_mapi_LPTSTR_lpszA = -1;
-static gint hf_mapi_LPTSTR_lpszW = -1;
-static gint hf_mapi_LockRegionStream_req_LockFlags = -1;
-static gint hf_mapi_LockRegionStream_req_RegionOffset = -1;
-static gint hf_mapi_LockRegionStream_req_RegionSize = -1;
-static gint hf_mapi_LogonId = -1;
-static gint hf_mapi_LogonTime_Day = -1;
-static gint hf_mapi_LogonTime_DayOfWeek = -1;
-static gint hf_mapi_LogonTime_Hour = -1;
-static gint hf_mapi_LogonTime_Minutes = -1;
-static gint hf_mapi_LogonTime_Month = -1;
-static gint hf_mapi_LogonTime_Seconds = -1;
-static gint hf_mapi_LogonTime_Year = -1;
-static gint hf_mapi_Logon_repl_FolderIds = -1;
-static gint hf_mapi_Logon_repl_GwartTime = -1;
-static gint hf_mapi_Logon_repl_LogonFlags = -1;
-static gint hf_mapi_Logon_repl_LogonTime = -1;
-static gint hf_mapi_Logon_repl_MailboxGuid = -1;
-static gint hf_mapi_Logon_repl_OutputHandleIndex = -1;
-static gint hf_mapi_Logon_repl_PerUserGuid = -1;
-static gint hf_mapi_Logon_repl_ReplGuid = -1;
-static gint hf_mapi_Logon_repl_ReplId = -1;
-static gint hf_mapi_Logon_repl_ResponseFlags = -1;
-static gint hf_mapi_Logon_repl_ReturnValue = -1;
-static gint hf_mapi_Logon_repl_ServerName = -1;
-static gint hf_mapi_Logon_repl_ServerNameSize = -1;
-static gint hf_mapi_Logon_repl_StoreState = -1;
-static gint hf_mapi_Logon_req_EssDN = -1;
-static gint hf_mapi_Logon_req_EssdnSize = -1;
-static gint hf_mapi_Logon_req_LogonFlags = -1;
-static gint hf_mapi_Logon_req_OpenFlags = -1;
-static gint hf_mapi_Logon_req_StoreState = -1;
-static gint hf_mapi_LongArray_r_cValues = -1;
-static gint hf_mapi_LongArray_r_lpl = -1;
-static gint hf_mapi_LongTermIdFromId_repl_InputHandleIndex = -1;
-static gint hf_mapi_LongTermIdFromId_repl_ReturnValue = -1;
-static gint hf_mapi_LongTermIdFromId_repl_Success_LongTermId = -1;
-static gint hf_mapi_LongTermIdFromId_repl_repl = -1;
-static gint hf_mapi_LongTermIdFromId_repl_status_Success = -1;
-static gint hf_mapi_LongTermIdFromId_req_Id = -1;
-static gint hf_mapi_LongTermId_DatabaseGuid = -1;
-static gint hf_mapi_LongTermId_GlobalCounter = -1;
-static gint hf_mapi_LongTermId_padding = -1;
-static gint hf_mapi_MAPINAMEID_kind = -1;
-static gint hf_mapi_MAPINAMEID_lpguid = -1;
-static gint hf_mapi_MAPINAMEID_ulKind = -1;
-static gint hf_mapi_MSGFLAG_READ_CLEAR_NRN_PENDING = -1;
-static gint hf_mapi_MSGFLAG_READ_CLEAR_READ_FLAG = -1;
-static gint hf_mapi_MSGFLAG_READ_CLEAR_RN_PENDING = -1;
-static gint hf_mapi_MSGFLAG_READ_GENERATE_RECEIPT_ONLY = -1;
-static gint hf_mapi_MSGFLAG_READ_MAPI_DEFERRED_ERRORS = -1;
-static gint hf_mapi_MSGFLAG_READ_SUPPRESS_RECEIPT = -1;
-static gint hf_mapi_MaximumByteCount_value = -1;
-static gint hf_mapi_MessageClass_lpszA = -1;
-static gint hf_mapi_MessageClass_lpszW = -1;
-static gint hf_mapi_MessageCreatedNotification_FID = -1;
-static gint hf_mapi_MessageCreatedNotification_MID = -1;
-static gint hf_mapi_MessageCreatedNotification_TagCount = -1;
-static gint hf_mapi_MessageCreatedNotification_Tags = -1;
-static gint hf_mapi_MessageDeletedNotification_FID = -1;
-static gint hf_mapi_MessageDeletedNotification_MID = -1;
-static gint hf_mapi_MessageModifiedNotification_FID = -1;
-static gint hf_mapi_MessageModifiedNotification_MID = -1;
-static gint hf_mapi_MessageModifiedNotification_TagCount = -1;
-static gint hf_mapi_MessageModifiedNotification_Tags = -1;
-static gint hf_mapi_MessageMoveCopyNotification_FID = -1;
-static gint hf_mapi_MessageMoveCopyNotification_MID = -1;
-static gint hf_mapi_MessageMoveCopyNotification_OldFID = -1;
-static gint hf_mapi_MessageMoveCopyNotification_OldMID = -1;
-static gint hf_mapi_ModifyPermissionsFlags_ModifyPerms_IncludeFreeBusy = -1;
-static gint hf_mapi_ModifyPermissionsFlags_ModifyPerms_ReplaceRows = -1;
-static gint hf_mapi_ModifyPermissions_req_rowList = -1;
-static gint hf_mapi_ModifyRecipientRow_RecipClass = -1;
-static gint hf_mapi_ModifyRecipientRow_RecipientRow = -1;
-static gint hf_mapi_ModifyRecipientRow_idx = -1;
-static gint hf_mapi_ModifyRecipients_req_RecipientRow = -1;
-static gint hf_mapi_ModifyRecipients_req_cValues = -1;
-static gint hf_mapi_ModifyRecipients_req_prop_count = -1;
-static gint hf_mapi_ModifyRecipients_req_properties = -1;
-static gint hf_mapi_ModifyRulesFlag_ModifyRulesFlag_Replace = -1;
-static gint hf_mapi_ModifyRules_req_ModifyRulesFlags = -1;
-static gint hf_mapi_ModifyRules_req_RulesCount = -1;
-static gint hf_mapi_ModifyRules_req_RulesData = -1;
-static gint hf_mapi_MoveCopyMessages_repl_PartialCompletion = -1;
-static gint hf_mapi_MoveCopyMessages_req_WantAsynchronous = -1;
-static gint hf_mapi_MoveCopyMessages_req_WantCopy = -1;
-static gint hf_mapi_MoveCopyMessages_req_count = -1;
-static gint hf_mapi_MoveCopyMessages_req_message_id = -1;
-static gint hf_mapi_MoveCopy_Action_FolderEID = -1;
-static gint hf_mapi_MoveCopy_Action_FolderInThisStore = -1;
-static gint hf_mapi_MoveCopy_Action_StoreEID = -1;
-static gint hf_mapi_MoveFolder_repl_PartialCompletion = -1;
-static gint hf_mapi_MoveFolder_req_FolderId = -1;
-static gint hf_mapi_MoveFolder_req_NewFolderName = -1;
-static gint hf_mapi_MoveFolder_req_UseUnicode = -1;
-static gint hf_mapi_MoveFolder_req_WantAsynchronous = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_ASSOCIATED = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_FROMME = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_HASATTACH = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_NRN_PENDING = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_READ = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_RESEND = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_RN_PENDING = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_SUBMIT = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_UNMODIFIED = -1;
-static gint hf_mapi_MsgFlags_MSGFLAG_UNSENT = -1;
-static gint hf_mapi_NewMailNotification_FID = -1;
-static gint hf_mapi_NewMailNotification_MID = -1;
-static gint hf_mapi_NewMailNotification_MessageClass = -1;
-static gint hf_mapi_NewMailNotification_MessageFlags = -1;
-static gint hf_mapi_NewMailNotification_UnicodeFlag = -1;
-static gint hf_mapi_NotificationData_ContentsTableChange = -1;
-static gint hf_mapi_NotificationData_FolderCopyNotification = -1;
-static gint hf_mapi_NotificationData_FolderCreatedNotification = -1;
-static gint hf_mapi_NotificationData_FolderDeletedNotification = -1;
-static gint hf_mapi_NotificationData_FolderModifiedNotification_10 = -1;
-static gint hf_mapi_NotificationData_FolderModifiedNotification_1010 = -1;
-static gint hf_mapi_NotificationData_FolderModifiedNotification_2010 = -1;
-static gint hf_mapi_NotificationData_FolderModifiedNotification_3010 = -1;
-static gint hf_mapi_NotificationData_FolderMoveNotification = -1;
-static gint hf_mapi_NotificationData_HierarchyTableChange = -1;
-static gint hf_mapi_NotificationData_IcsNotification = -1;
-static gint hf_mapi_NotificationData_MessageCopyNotification = -1;
-static gint hf_mapi_NotificationData_MessageCreatedNotification = -1;
-static gint hf_mapi_NotificationData_MessageDeletedNotification = -1;
-static gint hf_mapi_NotificationData_MessageModifiedNotification = -1;
-static gint hf_mapi_NotificationData_MessageMoveNotification = -1;
-static gint hf_mapi_NotificationData_NewMailNotification = -1;
-static gint hf_mapi_NotificationData_NewMessageNotification = -1;
-static gint hf_mapi_NotificationData_SearchCompleteNotification = -1;
-static gint hf_mapi_NotificationData_SearchMessageCreatedNotification = -1;
-static gint hf_mapi_NotificationData_SearchMessageModifiedNotification = -1;
-static gint hf_mapi_NotificationData_SearchMessageRemovedNotification = -1;
-static gint hf_mapi_NotificationData_SearchTableChange = -1;
-static gint hf_mapi_Notify_repl_LogonId = -1;
-static gint hf_mapi_Notify_repl_NotificationData = -1;
-static gint hf_mapi_Notify_repl_NotificationHandle = -1;
-static gint hf_mapi_Notify_repl_NotificationType = -1;
-static gint hf_mapi_OpenAttach_req_AttachmentID = -1;
-static gint hf_mapi_OpenAttach_req_OpenAttachmentFlags = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_ColumnCount = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_HasNamedProperties = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_MessageId = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_NormalizedSubject = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientColumns = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientCount = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientRows = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_Reserved = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_RowCount = -1;
-static gint hf_mapi_OpenEmbeddedMessage_repl_SubjectPrefix = -1;
-static gint hf_mapi_OpenEmbeddedMessage_req_CodePageId = -1;
-static gint hf_mapi_OpenEmbeddedMessage_req_OpenModeFlags = -1;
-static gint hf_mapi_OpenFlags_ALTERNATE_SERVER = -1;
-static gint hf_mapi_OpenFlags_HOME_LOGON = -1;
-static gint hf_mapi_OpenFlags_IGNORE_HOME_MDB = -1;
-static gint hf_mapi_OpenFlags_NO_MAIL = -1;
-static gint hf_mapi_OpenFlags_PUBLIC = -1;
-static gint hf_mapi_OpenFlags_TAKE_OWNERSHIP = -1;
-static gint hf_mapi_OpenFlags_USE_PER_MDB_REPLID_MAPPING = -1;
-static gint hf_mapi_OpenFolder_Replicas_CheapServerCount = -1;
-static gint hf_mapi_OpenFolder_Replicas_ServerCount = -1;
-static gint hf_mapi_OpenFolder_Replicas_Servers = -1;
-static gint hf_mapi_OpenFolder_Success_Ghost = -1;
-static gint hf_mapi_OpenFolder_Success_HasRules = -1;
-static gint hf_mapi_OpenFolder_Success_IsGhosted = -1;
-static gint hf_mapi_OpenFolder_repl_OutputHandleIndex = -1;
-static gint hf_mapi_OpenFolder_repl_ReturnValue = -1;
-static gint hf_mapi_OpenFolder_repl_repl = -1;
-static gint hf_mapi_OpenFolder_repl_status_Success = -1;
-static gint hf_mapi_OpenFolder_req_FolderId = -1;
-static gint hf_mapi_OpenFolder_req_OpenModeFlags = -1;
-static gint hf_mapi_OpenMessage_Success_ColumnCount = -1;
-static gint hf_mapi_OpenMessage_Success_HasNamedProperties = -1;
-static gint hf_mapi_OpenMessage_Success_NormalizedSubject = -1;
-static gint hf_mapi_OpenMessage_Success_RecipientColumns = -1;
-static gint hf_mapi_OpenMessage_Success_RecipientCount = -1;
-static gint hf_mapi_OpenMessage_Success_RowCount = -1;
-static gint hf_mapi_OpenMessage_Success_SubjectPrefix = -1;
-static gint hf_mapi_OpenMessage_Success_recipients = -1;
-static gint hf_mapi_OpenMessage_recipients_RecipClass = -1;
-static gint hf_mapi_OpenMessage_recipients_RecipientRow = -1;
-static gint hf_mapi_OpenMessage_recipients_Reserved = -1;
-static gint hf_mapi_OpenMessage_recipients_codepage = -1;
-static gint hf_mapi_OpenMessage_repl_OutputHandleIndex = -1;
-static gint hf_mapi_OpenMessage_repl_ReturnValue = -1;
-static gint hf_mapi_OpenMessage_repl_repl = -1;
-static gint hf_mapi_OpenMessage_repl_status_Success = -1;
-static gint hf_mapi_OpenMessage_req_CodePageId = -1;
-static gint hf_mapi_OpenMessage_req_FolderId = -1;
-static gint hf_mapi_OpenMessage_req_MessageId = -1;
-static gint hf_mapi_OpenMessage_req_OpenModeFlags = -1;
-static gint hf_mapi_OpenPublicFolderByName_repl_Ghost = -1;
-static gint hf_mapi_OpenPublicFolderByName_repl_HasRules = -1;
-static gint hf_mapi_OpenPublicFolderByName_repl_IsGhosted = -1;
-static gint hf_mapi_OpenPublicFolderByName_req_handle_idx = -1;
-static gint hf_mapi_OpenPublicFolderByName_req_name = -1;
-static gint hf_mapi_OpenRecipientRow_CodePageId = -1;
-static gint hf_mapi_OpenRecipientRow_InputHandleIndex = -1;
-static gint hf_mapi_OpenRecipientRow_LogonId = -1;
-static gint hf_mapi_OpenRecipientRow_RecipientRow = -1;
-static gint hf_mapi_OpenRecipientRow_RecipientType = -1;
-static gint hf_mapi_OpenRecipientRow_Reserved = -1;
-static gint hf_mapi_OpenStream_repl_StreamSize = -1;
-static gint hf_mapi_OpenStream_req_OpenModeFlags = -1;
-static gint hf_mapi_OpenStream_req_PropertyTag = -1;
-static gint hf_mapi_OptionsData_HelpFileName_HelpFileName = -1;
-static gint hf_mapi_OptionsData_repl_HelpFile = -1;
-static gint hf_mapi_OptionsData_repl_HelpFileName = -1;
-static gint hf_mapi_OptionsData_repl_HelpFileSize = -1;
-static gint hf_mapi_OptionsData_repl_OptionsInfo = -1;
-static gint hf_mapi_OptionsData_repl_Reserved = -1;
-static gint hf_mapi_OptionsData_req_AddressType = -1;
-static gint hf_mapi_OptionsData_req_WantWin32 = -1;
-static gint hf_mapi_OutputHandleIndex = -1;
-static gint hf_mapi_Pending_repl_SessionIndex = -1;
-static gint hf_mapi_PermissionData_PermissionDataFlags = -1;
-static gint hf_mapi_PermissionData_lpProps = -1;
-static gint hf_mapi_PermissionsTableFlags_IncludeFreeBusy = -1;
-static gint hf_mapi_Progress_repl_CompletedTaskCount = -1;
-static gint hf_mapi_Progress_repl_TotalTaskCount = -1;
-static gint hf_mapi_Progress_req_WantCancel = -1;
-static gint hf_mapi_PropertyProblem_error_code = -1;
-static gint hf_mapi_PropertyProblem_index = -1;
-static gint hf_mapi_PropertyProblem_property_tag = -1;
-static gint hf_mapi_PublicFolderIsGhosted_repl_Ghost = -1;
-static gint hf_mapi_PublicFolderIsGhosted_repl_IsGhosted = -1;
-static gint hf_mapi_PublicFolderIsGhosted_req_FolderId = -1;
-static gint hf_mapi_QueryColumnsAll_repl_PropertyTagCount = -1;
-static gint hf_mapi_QueryColumnsAll_repl_PropertyTags = -1;
-static gint hf_mapi_QueryFlags_NoIds = -1;
-static gint hf_mapi_QueryFlags_NoStrings = -1;
-static gint hf_mapi_QueryNamedProperties_guid_guid = -1;
-static gint hf_mapi_QueryNamedProperties_repl_IdCount = -1;
-static gint hf_mapi_QueryNamedProperties_repl_PropertyIds = -1;
-static gint hf_mapi_QueryNamedProperties_repl_PropertyNames = -1;
-static gint hf_mapi_QueryNamedProperties_req_HasGuid = -1;
-static gint hf_mapi_QueryNamedProperties_req_PropertyGuid = -1;
-static gint hf_mapi_QueryNamedProperties_req_QueryFlags = -1;
-static gint hf_mapi_QueryPosition_repl_Denominator = -1;
-static gint hf_mapi_QueryPosition_repl_Numerator = -1;
-static gint hf_mapi_QueryRows_repl_Origin = -1;
-static gint hf_mapi_QueryRows_repl_RowCount = -1;
-static gint hf_mapi_QueryRows_repl_RowData = -1;
-static gint hf_mapi_QueryRows_req_ForwardRead = -1;
-static gint hf_mapi_QueryRows_req_QueryRowsFlags = -1;
-static gint hf_mapi_QueryRows_req_RowCount = -1;
-static gint hf_mapi_ROPInputBuffer_objectHandles = -1;
-static gint hf_mapi_ROPInputBuffer_rop = -1;
-static gint hf_mapi_ROPInputBuffer_ropSize = -1;
-static gint hf_mapi_ROPOutputBuffer_objectHandles = -1;
-static gint hf_mapi_ROPOutputBuffer_rop = -1;
-static gint hf_mapi_ROPOutputBuffer_ropSize = -1;
-static gint hf_mapi_RPC_HEADER_EXT_Flags = -1;
-static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Compressed = -1;
-static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Last = -1;
-static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_XorMagic = -1;
-static gint hf_mapi_RPC_HEADER_EXT_Size = -1;
-static gint hf_mapi_RPC_HEADER_EXT_SizeActual = -1;
-static gint hf_mapi_RPC_HEADER_EXT_Version = -1;
-static gint hf_mapi_ReadPerUserInformation_repl_Data = -1;
-static gint hf_mapi_ReadPerUserInformation_repl_HasFinished = -1;
-static gint hf_mapi_ReadPerUserInformation_req_DataOffset = -1;
-static gint hf_mapi_ReadPerUserInformation_req_FolderId = -1;
-static gint hf_mapi_ReadPerUserInformation_req_MaxDataSize = -1;
-static gint hf_mapi_ReadPerUserInformation_req_WhatIfChanged = -1;
-static gint hf_mapi_ReadRecipientRow_CodePageId = -1;
-static gint hf_mapi_ReadRecipientRow_RecipientRow = -1;
-static gint hf_mapi_ReadRecipientRow_RecipientType = -1;
-static gint hf_mapi_ReadRecipientRow_RowId = -1;
-static gint hf_mapi_ReadRecipientRow_ulReserved = -1;
-static gint hf_mapi_ReadRecipients_repl_RecipientRows = -1;
-static gint hf_mapi_ReadRecipients_repl_RowCount = -1;
-static gint hf_mapi_ReadRecipients_req_RowId = -1;
-static gint hf_mapi_ReadRecipients_req_ulReserved = -1;
-static gint hf_mapi_ReadStream_repl_data = -1;
-static gint hf_mapi_ReadStream_req_ByteCount = -1;
-static gint hf_mapi_ReadStream_req_MaximumByteCount = -1;
-static gint hf_mapi_ReceiveFolder_fid = -1;
-static gint hf_mapi_ReceiveFolder_lpszMessageClass = -1;
-static gint hf_mapi_ReceiveFolder_modiftime = -1;
-static gint hf_mapi_ReceiveFolder_unknown = -1;
-static gint hf_mapi_RecipExchange_addr_type = -1;
-static gint hf_mapi_RecipExchange_organization_length = -1;
-static gint hf_mapi_RecipExchange_username = -1;
-static gint hf_mapi_RecipientBlock_PropertyValue = -1;
-static gint hf_mapi_RecipientBlock_Reserved = -1;
-static gint hf_mapi_RecipientRow_DisplayName = -1;
-static gint hf_mapi_RecipientRow_EmailAddress = -1;
-static gint hf_mapi_RecipientRow_RecipientFlags = -1;
-static gint hf_mapi_RecipientRow_SimpleDisplayName = -1;
-static gint hf_mapi_RecipientRow_TransmittableDisplayName = -1;
-static gint hf_mapi_RecipientRow_layout = -1;
-static gint hf_mapi_RecipientRow_prop_count = -1;
-static gint hf_mapi_RecipientRow_prop_values = -1;
-static gint hf_mapi_RecipientRow_type = -1;
-static gint hf_mapi_RegisterNotification_req_layout = -1;
-static gint hf_mapi_RegisterNotification_req_notificationFlags = -1;
-static gint hf_mapi_RegisterNotification_req_u = -1;
-static gint hf_mapi_ReloadCachedInformation_repl_HasNamedProperties = -1;
-static gint hf_mapi_ReloadCachedInformation_repl_NormalizedSubject = -1;
-static gint hf_mapi_ReloadCachedInformation_repl_RecipientColumns = -1;
-static gint hf_mapi_ReloadCachedInformation_repl_RecipientCount = -1;
-static gint hf_mapi_ReloadCachedInformation_repl_RecipientRows = -1;
-static gint hf_mapi_ReloadCachedInformation_repl_RowCount = -1;
-static gint hf_mapi_ReloadCachedInformation_repl_SubjectPrefix = -1;
-static gint hf_mapi_ReloadCachedInformation_req_Reserved = -1;
-static gint hf_mapi_RemoveAllRecipients_req_ulReserved = -1;
-static gint hf_mapi_ReplyOOF_Action_ReplyTemplateFID = -1;
-static gint hf_mapi_ReplyOOF_Action_ReplyTemplateGUID = -1;
-static gint hf_mapi_ReplyOOF_Action_ReplyTemplateMID = -1;
-static gint hf_mapi_ResponseFlags_ResponseFlags_OOF = -1;
-static gint hf_mapi_ResponseFlags_ResponseFlags_OwnerRight = -1;
-static gint hf_mapi_ResponseFlags_ResponseFlags_Reserved = -1;
-static gint hf_mapi_ResponseFlags_ResponseFlags_SendAsRight = -1;
-static gint hf_mapi_ResponseHandleIndex = -1;
-static gint hf_mapi_Restrict_repl_TableStatus = -1;
-static gint hf_mapi_Restrict_req_handle_idx = -1;
-static gint hf_mapi_Restrict_req_restrictions = -1;
-static gint hf_mapi_RestrictionVariable_res = -1;
-static gint hf_mapi_RgbInSize = -1;
-static gint hf_mapi_RgbIn_RpcHeaderExtension = -1;
-static gint hf_mapi_RgbIn_ropIn = -1;
-static gint hf_mapi_RgbOutSize = -1;
-static gint hf_mapi_RgbOut_RpcHeaderExtension = -1;
-static gint hf_mapi_RgbOut_ropOut = -1;
-static gint hf_mapi_RopBufferTooSmall_repl_SizeNeeded = -1;
-static gint hf_mapi_RopInput_RopId = -1;
-static gint hf_mapi_RopInput_u = -1;
-static gint hf_mapi_RopOutput_RopId = -1;
-static gint hf_mapi_RopOutput_u = -1;
-static gint hf_mapi_RopReply_Abort = -1;
-static gint hf_mapi_RopReply_AbortSubmit = -1;
-static gint hf_mapi_RopReply_AddressTypes = -1;
-static gint hf_mapi_RopReply_Advise = -1;
-static gint hf_mapi_RopReply_CloneStream = -1;
-static gint hf_mapi_RopReply_CollapseRow = -1;
-static gint hf_mapi_RopReply_CommitStream = -1;
-static gint hf_mapi_RopReply_CopyFolder = -1;
-static gint hf_mapi_RopReply_CopyProperties = -1;
-static gint hf_mapi_RopReply_CopyTo = -1;
-static gint hf_mapi_RopReply_CopyToStream = -1;
-static gint hf_mapi_RopReply_CreateAttach = -1;
-static gint hf_mapi_RopReply_CreateBookmark = -1;
-static gint hf_mapi_RopReply_CreateFolder = -1;
-static gint hf_mapi_RopReply_CreateMessage = -1;
-static gint hf_mapi_RopReply_DeleteAttach = -1;
-static gint hf_mapi_RopReply_DeleteFolder = -1;
-static gint hf_mapi_RopReply_DeleteMessages = -1;
-static gint hf_mapi_RopReply_DeletePropertiesNoReplicate = -1;
-static gint hf_mapi_RopReply_DeleteProps = -1;
-static gint hf_mapi_RopReply_EmptyFolder = -1;
-static gint hf_mapi_RopReply_ExpandRow = -1;
-static gint hf_mapi_RopReply_FastTransferSourceGetBuffer = -1;
-static gint hf_mapi_RopReply_FindRow = -1;
-static gint hf_mapi_RopReply_FreeBookmark = -1;
-static gint hf_mapi_RopReply_GetAttachmentTable = -1;
-static gint hf_mapi_RopReply_GetCollapseState = -1;
-static gint hf_mapi_RopReply_GetContentsTable = -1;
-static gint hf_mapi_RopReply_GetHierarchyTable = -1;
-static gint hf_mapi_RopReply_GetIDsFromNames = -1;
-static gint hf_mapi_RopReply_GetLocalReplicaIds = -1;
-static gint hf_mapi_RopReply_GetNamesFromIDs = -1;
-static gint hf_mapi_RopReply_GetOwningServers = -1;
-static gint hf_mapi_RopReply_GetPerUserGuid = -1;
-static gint hf_mapi_RopReply_GetPerUserLongTermIds = -1;
-static gint hf_mapi_RopReply_GetPermissionsTable = -1;
-static gint hf_mapi_RopReply_GetPropList = -1;
-static gint hf_mapi_RopReply_GetProps = -1;
-static gint hf_mapi_RopReply_GetPropsAll = -1;
-static gint hf_mapi_RopReply_GetReceiveFolder = -1;
-static gint hf_mapi_RopReply_GetReceiveFolderTable = -1;
-static gint hf_mapi_RopReply_GetRulesTable = -1;
-static gint hf_mapi_RopReply_GetSearchCriteria = -1;
-static gint hf_mapi_RopReply_GetStatus = -1;
-static gint hf_mapi_RopReply_GetStoreState = -1;
-static gint hf_mapi_RopReply_GetStreamSize = -1;
-static gint hf_mapi_RopReply_GetTransportFolder = -1;
-static gint hf_mapi_RopReply_GetValidAttachments = -1;
-static gint hf_mapi_RopReply_HardDeleteMessages = -1;
-static gint hf_mapi_RopReply_HardDeleteMessagesAndSubfolders = -1;
-static gint hf_mapi_RopReply_IdFromLongTermId = -1;
-static gint hf_mapi_RopReply_LockRegionStream = -1;
-static gint hf_mapi_RopReply_Logon = -1;
-static gint hf_mapi_RopReply_LongTermIdFromId = -1;
-static gint hf_mapi_RopReply_ModifyPermissions = -1;
-static gint hf_mapi_RopReply_ModifyRecipients = -1;
-static gint hf_mapi_RopReply_ModifyRules = -1;
-static gint hf_mapi_RopReply_MoveCopyMessages = -1;
-static gint hf_mapi_RopReply_MoveFolder = -1;
-static gint hf_mapi_RopReply_Notify = -1;
-static gint hf_mapi_RopReply_OpenAttach = -1;
-static gint hf_mapi_RopReply_OpenEmbeddedMessage = -1;
-static gint hf_mapi_RopReply_OpenFolder = -1;
-static gint hf_mapi_RopReply_OpenMessage = -1;
-static gint hf_mapi_RopReply_OpenPublicFolderByName = -1;
-static gint hf_mapi_RopReply_OpenStream = -1;
-static gint hf_mapi_RopReply_OptionsData = -1;
-static gint hf_mapi_RopReply_Pending = -1;
-static gint hf_mapi_RopReply_Progress = -1;
-static gint hf_mapi_RopReply_PublicFolderIsGhosted = -1;
-static gint hf_mapi_RopReply_QueryColumnsAll = -1;
-static gint hf_mapi_RopReply_QueryNamedProperties = -1;
-static gint hf_mapi_RopReply_QueryPosition = -1;
-static gint hf_mapi_RopReply_QueryRows = -1;
-static gint hf_mapi_RopReply_ReadPerUserInformation = -1;
-static gint hf_mapi_RopReply_ReadRecipients = -1;
-static gint hf_mapi_RopReply_ReadStream = -1;
-static gint hf_mapi_RopReply_Release = -1;
-static gint hf_mapi_RopReply_ReloadCachedInformation = -1;
-static gint hf_mapi_RopReply_RemoveAllRecipients = -1;
-static gint hf_mapi_RopReply_ResetTable = -1;
-static gint hf_mapi_RopReply_Restrict = -1;
-static gint hf_mapi_RopReply_RopBufferTooSmall = -1;
-static gint hf_mapi_RopReply_SaveChangesAttachment = -1;
-static gint hf_mapi_RopReply_SaveChangesMessage = -1;
-static gint hf_mapi_RopReply_SeekRow = -1;
-static gint hf_mapi_RopReply_SeekRowApprox = -1;
-static gint hf_mapi_RopReply_SeekRowBookmark = -1;
-static gint hf_mapi_RopReply_SeekStream = -1;
-static gint hf_mapi_RopReply_SetCollapseState = -1;
-static gint hf_mapi_RopReply_SetColumns = -1;
-static gint hf_mapi_RopReply_SetMessageReadFlag = -1;
-static gint hf_mapi_RopReply_SetMessageStatus = -1;
-static gint hf_mapi_RopReply_SetPropertiesNoReplicate = -1;
-static gint hf_mapi_RopReply_SetProps = -1;
-static gint hf_mapi_RopReply_SetReadFlags = -1;
-static gint hf_mapi_RopReply_SetReceiveFolder = -1;
-static gint hf_mapi_RopReply_SetSearchCriteria = -1;
-static gint hf_mapi_RopReply_SetSpooler = -1;
-static gint hf_mapi_RopReply_SetStreamSize = -1;
-static gint hf_mapi_RopReply_SetSyncNotificationGuid = -1;
-static gint hf_mapi_RopReply_SortTable = -1;
-static gint hf_mapi_RopReply_SpoolerLockMessage = -1;
-static gint hf_mapi_RopReply_SubmitMessage = -1;
-static gint hf_mapi_RopReply_SyncConfigure = -1;
-static gint hf_mapi_RopReply_SyncGetTransferState = -1;
-static gint hf_mapi_RopReply_SyncImportDeletes = -1;
-static gint hf_mapi_RopReply_SyncImportHierarchyChange = -1;
-static gint hf_mapi_RopReply_SyncImportMessageChange = -1;
-static gint hf_mapi_RopReply_SyncImportMessageMove = -1;
-static gint hf_mapi_RopReply_SyncImportReadStateChanges = -1;
-static gint hf_mapi_RopReply_SyncOpenCollector = -1;
-static gint hf_mapi_RopReply_SyncUploadStateStreamBegin = -1;
-static gint hf_mapi_RopReply_SyncUploadStateStreamContinue = -1;
-static gint hf_mapi_RopReply_SyncUploadStateStreamEnd = -1;
-static gint hf_mapi_RopReply_TransportNewMail = -1;
-static gint hf_mapi_RopReply_TransportSend = -1;
-static gint hf_mapi_RopReply_UnlockRegionStream = -1;
-static gint hf_mapi_RopReply_UpdateDeferredActionMessages = -1;
-static gint hf_mapi_RopReply_WriteAndCommitStream = -1;
-static gint hf_mapi_RopReply_WriteStream = -1;
-static gint hf_mapi_RopRequest_Abort = -1;
-static gint hf_mapi_RopRequest_AbortSubmit = -1;
-static gint hf_mapi_RopRequest_AddressTypes = -1;
-static gint hf_mapi_RopRequest_Advise = -1;
-static gint hf_mapi_RopRequest_CloneStream = -1;
-static gint hf_mapi_RopRequest_CollapseRow = -1;
-static gint hf_mapi_RopRequest_CommitStream = -1;
-static gint hf_mapi_RopRequest_CopyFolder = -1;
-static gint hf_mapi_RopRequest_CopyProperties = -1;
-static gint hf_mapi_RopRequest_CopyTo = -1;
-static gint hf_mapi_RopRequest_CopyToStream = -1;
-static gint hf_mapi_RopRequest_CreateAttach = -1;
-static gint hf_mapi_RopRequest_CreateBookmark = -1;
-static gint hf_mapi_RopRequest_CreateFolder = -1;
-static gint hf_mapi_RopRequest_CreateMessage = -1;
-static gint hf_mapi_RopRequest_DeleteAttach = -1;
-static gint hf_mapi_RopRequest_DeleteFolder = -1;
-static gint hf_mapi_RopRequest_DeleteMessages = -1;
-static gint hf_mapi_RopRequest_DeletePropertiesNoReplicate = -1;
-static gint hf_mapi_RopRequest_DeleteProps = -1;
-static gint hf_mapi_RopRequest_EmptyFolder = -1;
-static gint hf_mapi_RopRequest_ExpandRow = -1;
-static gint hf_mapi_RopRequest_FastTransferSourceGetBuffer = -1;
-static gint hf_mapi_RopRequest_FindRow = -1;
-static gint hf_mapi_RopRequest_FreeBookmark = -1;
-static gint hf_mapi_RopRequest_GetAttachmentTable = -1;
-static gint hf_mapi_RopRequest_GetCollapseState = -1;
-static gint hf_mapi_RopRequest_GetContentsTable = -1;
-static gint hf_mapi_RopRequest_GetHierarchyTable = -1;
-static gint hf_mapi_RopRequest_GetIDsFromNames = -1;
-static gint hf_mapi_RopRequest_GetLocalReplicaIds = -1;
-static gint hf_mapi_RopRequest_GetMessageStatus = -1;
-static gint hf_mapi_RopRequest_GetNamesFromIDs = -1;
-static gint hf_mapi_RopRequest_GetOwningServers = -1;
-static gint hf_mapi_RopRequest_GetPerUserGuid = -1;
-static gint hf_mapi_RopRequest_GetPerUserLongTermIds = -1;
-static gint hf_mapi_RopRequest_GetPermissionsTable = -1;
-static gint hf_mapi_RopRequest_GetPropList = -1;
-static gint hf_mapi_RopRequest_GetProps = -1;
-static gint hf_mapi_RopRequest_GetPropsAll = -1;
-static gint hf_mapi_RopRequest_GetReceiveFolder = -1;
-static gint hf_mapi_RopRequest_GetReceiveFolderTable = -1;
-static gint hf_mapi_RopRequest_GetRulesTable = -1;
-static gint hf_mapi_RopRequest_GetSearchCriteria = -1;
-static gint hf_mapi_RopRequest_GetStatus = -1;
-static gint hf_mapi_RopRequest_GetStoreState = -1;
-static gint hf_mapi_RopRequest_GetStreamSize = -1;
-static gint hf_mapi_RopRequest_GetTransportFolder = -1;
-static gint hf_mapi_RopRequest_GetValidAttachments = -1;
-static gint hf_mapi_RopRequest_HardDeleteMessages = -1;
-static gint hf_mapi_RopRequest_HardDeleteMessagesAndSubfolders = -1;
-static gint hf_mapi_RopRequest_IdFromLongTermId = -1;
-static gint hf_mapi_RopRequest_LockRegionStream = -1;
-static gint hf_mapi_RopRequest_Logon = -1;
-static gint hf_mapi_RopRequest_LongTermIdFromId = -1;
-static gint hf_mapi_RopRequest_ModifyPermissions = -1;
-static gint hf_mapi_RopRequest_ModifyRecipients = -1;
-static gint hf_mapi_RopRequest_ModifyRules = -1;
-static gint hf_mapi_RopRequest_MoveCopyMessages = -1;
-static gint hf_mapi_RopRequest_MoveFolder = -1;
-static gint hf_mapi_RopRequest_OpenAttach = -1;
-static gint hf_mapi_RopRequest_OpenEmbeddedMessage = -1;
-static gint hf_mapi_RopRequest_OpenFolder = -1;
-static gint hf_mapi_RopRequest_OpenMessage = -1;
-static gint hf_mapi_RopRequest_OpenPublicFolderByName = -1;
-static gint hf_mapi_RopRequest_OpenStream = -1;
-static gint hf_mapi_RopRequest_OptionsData = -1;
-static gint hf_mapi_RopRequest_Progress = -1;
-static gint hf_mapi_RopRequest_PublicFolderIsGhosted = -1;
-static gint hf_mapi_RopRequest_QueryColumnsAll = -1;
-static gint hf_mapi_RopRequest_QueryNamedProperties = -1;
-static gint hf_mapi_RopRequest_QueryPosition = -1;
-static gint hf_mapi_RopRequest_QueryRows = -1;
-static gint hf_mapi_RopRequest_ReadPerUserInformation = -1;
-static gint hf_mapi_RopRequest_ReadRecipients = -1;
-static gint hf_mapi_RopRequest_ReadStream = -1;
-static gint hf_mapi_RopRequest_Release = -1;
-static gint hf_mapi_RopRequest_ReloadCachedInformation = -1;
-static gint hf_mapi_RopRequest_RemoveAllRecipients = -1;
-static gint hf_mapi_RopRequest_ResetTable = -1;
-static gint hf_mapi_RopRequest_Restrict = -1;
-static gint hf_mapi_RopRequest_SaveChangesAttachment = -1;
-static gint hf_mapi_RopRequest_SaveChangesMessage = -1;
-static gint hf_mapi_RopRequest_SeekRow = -1;
-static gint hf_mapi_RopRequest_SeekRowApprox = -1;
-static gint hf_mapi_RopRequest_SeekRowBookmark = -1;
-static gint hf_mapi_RopRequest_SeekStream = -1;
-static gint hf_mapi_RopRequest_SetCollapseState = -1;
-static gint hf_mapi_RopRequest_SetColumns = -1;
-static gint hf_mapi_RopRequest_SetMessageReadFlag = -1;
-static gint hf_mapi_RopRequest_SetMessageStatus = -1;
-static gint hf_mapi_RopRequest_SetPropertiesNoReplicate = -1;
-static gint hf_mapi_RopRequest_SetProps = -1;
-static gint hf_mapi_RopRequest_SetReadFlags = -1;
-static gint hf_mapi_RopRequest_SetReceiveFolder = -1;
-static gint hf_mapi_RopRequest_SetSearchCriteria = -1;
-static gint hf_mapi_RopRequest_SetSpooler = -1;
-static gint hf_mapi_RopRequest_SetStreamSize = -1;
-static gint hf_mapi_RopRequest_SetSyncNotificationGuid = -1;
-static gint hf_mapi_RopRequest_SortTable = -1;
-static gint hf_mapi_RopRequest_SpoolerLockMessage = -1;
-static gint hf_mapi_RopRequest_SubmitMessage = -1;
-static gint hf_mapi_RopRequest_SyncConfigure = -1;
-static gint hf_mapi_RopRequest_SyncGetTransferState = -1;
-static gint hf_mapi_RopRequest_SyncImportDeletes = -1;
-static gint hf_mapi_RopRequest_SyncImportHierarchyChange = -1;
-static gint hf_mapi_RopRequest_SyncImportMessageChange = -1;
-static gint hf_mapi_RopRequest_SyncImportMessageMove = -1;
-static gint hf_mapi_RopRequest_SyncImportReadStateChanges = -1;
-static gint hf_mapi_RopRequest_SyncOpenCollector = -1;
-static gint hf_mapi_RopRequest_SyncUploadStateStreamBegin = -1;
-static gint hf_mapi_RopRequest_SyncUploadStateStreamContinue = -1;
-static gint hf_mapi_RopRequest_SyncUploadStateStreamEnd = -1;
-static gint hf_mapi_RopRequest_TransportNewMail = -1;
-static gint hf_mapi_RopRequest_TransportSend = -1;
-static gint hf_mapi_RopRequest_UnlockRegionStream = -1;
-static gint hf_mapi_RopRequest_UpdateDeferredActionMessages = -1;
-static gint hf_mapi_RopRequest_WriteAndCommitStream = -1;
-static gint hf_mapi_RopRequest_WriteStream = -1;
-static gint hf_mapi_RpcExt2Flags_Chain = -1;
-static gint hf_mapi_RpcExt2Flags_NoCompression = -1;
-static gint hf_mapi_RpcExt2Flags_NoXorMagic = -1;
-static gint hf_mapi_RuleAction_ActionBlock = -1;
-static gint hf_mapi_RuleAction_count = -1;
-static gint hf_mapi_RuleData_PropertyValues = -1;
-static gint hf_mapi_RuleData_RuleDataFlags = -1;
-static gint hf_mapi_RulesTableFlags_RulesTableFlags_Unicode = -1;
-static gint hf_mapi_SBinary_short_cb = -1;
-static gint hf_mapi_SBinary_short_lpb = -1;
-static gint hf_mapi_SRestriction_and_res = -1;
-static gint hf_mapi_SRestriction_and_rt = -1;
-static gint hf_mapi_SRestriction_comment_res = -1;
-static gint hf_mapi_SRestriction_comment_rt = -1;
-static gint hf_mapi_SRestriction_or_res = -1;
-static gint hf_mapi_SRestriction_or_rt = -1;
-static gint hf_mapi_SRestriction_sub_res = -1;
-static gint hf_mapi_SRestriction_sub_rt = -1;
-static gint hf_mapi_SSortOrderSet_aSort = -1;
-static gint hf_mapi_SSortOrderSet_cCategories = -1;
-static gint hf_mapi_SSortOrderSet_cExpanded = -1;
-static gint hf_mapi_SSortOrderSet_cSorts = -1;
-static gint hf_mapi_SSortOrder_ulOrder = -1;
-static gint hf_mapi_SSortOrder_ulPropTag = -1;
-static gint hf_mapi_SaveChangesAttachment_req_SaveFlags = -1;
-static gint hf_mapi_SaveChangesMessage_repl_MessageId = -1;
-static gint hf_mapi_SaveChangesMessage_repl_handle_idx = -1;
-static gint hf_mapi_SaveChangesMessage_req_SaveFlags = -1;
-static gint hf_mapi_SearchCompleteNotification_FID = -1;
-static gint hf_mapi_SearchFlags_BACKGROUND_SEARCH = -1;
-static gint hf_mapi_SearchFlags_CONTENT_INDEXED_SEARCH = -1;
-static gint hf_mapi_SearchFlags_FOREGROUND_SEARCH = -1;
-static gint hf_mapi_SearchFlags_NON_CONTENT_INDEXED_SEARCH = -1;
-static gint hf_mapi_SearchFlags_RECURSIVE_SEARCH = -1;
-static gint hf_mapi_SearchFlags_RESTART_SEARCH = -1;
-static gint hf_mapi_SearchFlags_SHALLOW_SEARCH = -1;
-static gint hf_mapi_SearchFlags_STATIC_SEARCH = -1;
-static gint hf_mapi_SearchFlags_STOP_SEARCH = -1;
-static gint hf_mapi_SearchMessageCreatedNotification_FID = -1;
-static gint hf_mapi_SearchMessageCreatedNotification_MID = -1;
-static gint hf_mapi_SearchMessageCreatedNotification_SearchFID = -1;
-static gint hf_mapi_SearchMessageCreatedNotification_TagCount = -1;
-static gint hf_mapi_SearchMessageCreatedNotification_Tags = -1;
-static gint hf_mapi_SearchMessageModifiedNotification_FID = -1;
-static gint hf_mapi_SearchMessageModifiedNotification_MID = -1;
-static gint hf_mapi_SearchMessageModifiedNotification_TagCount = -1;
-static gint hf_mapi_SearchMessageModifiedNotification_Tags = -1;
-static gint hf_mapi_SearchMessageRemovedNotification_FID = -1;
-static gint hf_mapi_SearchMessageRemovedNotification_MID = -1;
-static gint hf_mapi_SearchMessageRemovedNotification_SearchFID = -1;
-static gint hf_mapi_SeekRowApprox_req_ulDenominator = -1;
-static gint hf_mapi_SeekRowApprox_req_ulNumerator = -1;
-static gint hf_mapi_SeekRowBookmark_repl_HasSoughtLess = -1;
-static gint hf_mapi_SeekRowBookmark_repl_RowNoLongerVisible = -1;
-static gint hf_mapi_SeekRowBookmark_repl_RowsSought = -1;
-static gint hf_mapi_SeekRowBookmark_req_Bookmark = -1;
-static gint hf_mapi_SeekRowBookmark_req_RowCount = -1;
-static gint hf_mapi_SeekRowBookmark_req_WantRowMovedCount = -1;
-static gint hf_mapi_SeekRow_repl_HasSoughtLess = -1;
-static gint hf_mapi_SeekRow_repl_RowsSought = -1;
-static gint hf_mapi_SeekRow_req_WantRowMovedCount = -1;
-static gint hf_mapi_SeekRow_req_offset = -1;
-static gint hf_mapi_SeekRow_req_origin = -1;
-static gint hf_mapi_SeekStream_repl_NewPosition = -1;
-static gint hf_mapi_SeekStream_req_Offset = -1;
-static gint hf_mapi_SeekStream_req_Origin = -1;
-static gint hf_mapi_SendOptions_SendOptions_ForUpload = -1;
-static gint hf_mapi_SendOptions_SendOptions_ForceUnicode = -1;
-static gint hf_mapi_SendOptions_SendOptions_Partial = -1;
-static gint hf_mapi_SendOptions_SendOptions_RecoverMode = -1;
-static gint hf_mapi_SendOptions_SendOptions_Unicode = -1;
-static gint hf_mapi_SetCollapseState_repl_bookmark = -1;
-static gint hf_mapi_SetCollapseState_req_CollapseState = -1;
-static gint hf_mapi_SetColumns_repl_TableStatus = -1;
-static gint hf_mapi_SetColumns_req_SetColumnsFlags = -1;
-static gint hf_mapi_SetColumns_req_prop_count = -1;
-static gint hf_mapi_SetColumns_req_properties = -1;
-static gint hf_mapi_SetMessageReadFlag_ClientData_ClientData = -1;
-static gint hf_mapi_SetMessageReadFlag_LogonId_LogonId = -1;
-static gint hf_mapi_SetMessageReadFlag_repl_ClientData = -1;
-static gint hf_mapi_SetMessageReadFlag_repl_LogonId = -1;
-static gint hf_mapi_SetMessageReadFlag_repl_ReadStatusChanged = -1;
-static gint hf_mapi_SetMessageReadFlag_req_ReadFlags = -1;
-static gint hf_mapi_SetMessageReadFlag_req_clientdata = -1;
-static gint hf_mapi_SetMessageStatus_repl_ulOldStatus = -1;
-static gint hf_mapi_SetMessageStatus_req_msgid = -1;
-static gint hf_mapi_SetMessageStatus_req_ulNewStatus = -1;
-static gint hf_mapi_SetMessageStatus_req_ulNewStatusMask = -1;
-static gint hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblem = -1;
-static gint hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblemCount = -1;
-static gint hf_mapi_SetPropertiesNoReplicate_req_values = -1;
-static gint hf_mapi_SetProps_repl_PropertyProblem = -1;
-static gint hf_mapi_SetProps_repl_PropertyProblemCount = -1;
-static gint hf_mapi_SetProps_req_values = -1;
-static gint hf_mapi_SetReadFlags_repl_PartialCompletion = -1;
-static gint hf_mapi_SetReadFlags_req_MessageIdCount = -1;
-static gint hf_mapi_SetReadFlags_req_MessageIds = -1;
-static gint hf_mapi_SetReadFlags_req_ReadFlags = -1;
-static gint hf_mapi_SetReadFlags_req_WantAsynchronous = -1;
-static gint hf_mapi_SetReceiveFolder_req_fid = -1;
-static gint hf_mapi_SetReceiveFolder_req_lpszMessageClass = -1;
-static gint hf_mapi_SetSearchCriteria_req_FolderIdCount = -1;
-static gint hf_mapi_SetSearchCriteria_req_FolderIds = -1;
-static gint hf_mapi_SetSearchCriteria_req_SearchFlags = -1;
-static gint hf_mapi_SetSearchCriteria_req_res = -1;
-static gint hf_mapi_SetStreamSize_req_SizeStream = -1;
-static gint hf_mapi_SetSyncNotificationGuid_req_NotificationGuid = -1;
-static gint hf_mapi_ShortArray_r_cValues = -1;
-static gint hf_mapi_ShortArray_r_lpi = -1;
-static gint hf_mapi_SortTable_repl_TableStatus = -1;
-static gint hf_mapi_SortTable_req_SortTableFlags = -1;
-static gint hf_mapi_SortTable_req_lpSortCriteria = -1;
-static gint hf_mapi_SpoolerLockMessage_req_LockState = -1;
-static gint hf_mapi_SpoolerLockMessage_req_MessageId = -1;
-static gint hf_mapi_StoreState_STORE_HAS_SEARCHES = -1;
-static gint hf_mapi_String_lpszA = -1;
-static gint hf_mapi_String_lpszW = -1;
-static gint hf_mapi_String_lpszW_reduced = -1;
-static gint hf_mapi_SubmitMessage_req_SubmitFlags = -1;
-static gint hf_mapi_SyncConfigure_req_PropertyTags = -1;
-static gint hf_mapi_SyncConfigure_req_RestrictionData = -1;
-static gint hf_mapi_SyncConfigure_req_SendOptions = -1;
-static gint hf_mapi_SyncConfigure_req_SynchronizationExtraFlags = -1;
-static gint hf_mapi_SyncConfigure_req_SynchronizationFlag = -1;
-static gint hf_mapi_SyncConfigure_req_SynchronizationType = -1;
-static gint hf_mapi_SyncImportDeletes_req_IsHierarchy = -1;
-static gint hf_mapi_SyncImportDeletes_req_PropertyValues = -1;
-static gint hf_mapi_SyncImportHierarchyChange_repl_FolderId = -1;
-static gint hf_mapi_SyncImportHierarchyChange_req_HierarchyValues = -1;
-static gint hf_mapi_SyncImportHierarchyChange_req_PropertyValues = -1;
-static gint hf_mapi_SyncImportMessageChange_repl_MessageId = -1;
-static gint hf_mapi_SyncImportMessageChange_req_ImportFlag = -1;
-static gint hf_mapi_SyncImportMessageChange_req_PropertyValues = -1;
-static gint hf_mapi_SyncImportMessageMove_repl_MessageId = -1;
-static gint hf_mapi_SyncImportMessageMove_req_ChangeNumberSize = -1;
-static gint hf_mapi_SyncImportMessageMove_req_ChangeNumberValue = -1;
-static gint hf_mapi_SyncImportMessageMove_req_DestinationMessageIdSize = -1;
-static gint hf_mapi_SyncImportMessageMove_req_DestinationMessageIdValue = -1;
-static gint hf_mapi_SyncImportMessageMove_req_PredecessorChangeListSize = -1;
-static gint hf_mapi_SyncImportMessageMove_req_PredecessorChangeListValue = -1;
-static gint hf_mapi_SyncImportMessageMove_req_SourceFolderIdSize = -1;
-static gint hf_mapi_SyncImportMessageMove_req_SourceFolderIdValue = -1;
-static gint hf_mapi_SyncImportMessageMove_req_SourceMessageIdSize = -1;
-static gint hf_mapi_SyncImportMessageMove_req_SourceMessageIdValue = -1;
-static gint hf_mapi_SyncImportReadStateChanges_req_MessageStates = -1;
-static gint hf_mapi_SyncOpenCollector_req_IsContentsCollector = -1;
-static gint hf_mapi_SyncUploadStateStreamBegin_req_StateProperty = -1;
-static gint hf_mapi_SyncUploadStateStreamBegin_req_TransferBufferSize = -1;
-static gint hf_mapi_SyncUploadStateStreamContinue_req_StreamDataSize = -1;
-static gint hf_mapi_SyncUploadStateStreamContinue_req_StreamDataValue = -1;
-static gint hf_mapi_SynchronizationExtraFlags_Cn = -1;
-static gint hf_mapi_SynchronizationExtraFlags_Eid = -1;
-static gint hf_mapi_SynchronizationExtraFlags_MessageSize = -1;
-static gint hf_mapi_SynchronizationExtraFlags_OrderByDeliveryTime = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_BestBody = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_FAI = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_IgnoreSpecifiedOnFAI = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoDeletions = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoForeignIdentifiers = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoSoftDeletions = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Normal = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_OnlySpecifiedProperties = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Progress = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_ReadState = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Reserved = -1;
-static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Unicode = -1;
-static gint hf_mapi_TableFlags_TableFlags_DeferredErrors = -1;
-static gint hf_mapi_TableFlags_TableFlags_Depth = -1;
-static gint hf_mapi_TableFlags_TableFlags_NoNotifications = -1;
-static gint hf_mapi_TableFlags_TableFlags_SoftDeletes = -1;
-static gint hf_mapi_TableFlags_TableFlags_SuppressNotifications = -1;
-static gint hf_mapi_TableFlags_TableFlags_UseUnicode = -1;
-static gint hf_mapi_TransportNewMail_req_FolderId = -1;
-static gint hf_mapi_TransportNewMail_req_MessageClass = -1;
-static gint hf_mapi_TransportNewMail_req_MessageFlags = -1;
-static gint hf_mapi_TransportNewMail_req_MessageId = -1;
-static gint hf_mapi_TransportSend_lpProps_lpProps = -1;
-static gint hf_mapi_TransportSend_repl_NoPropertiesReturned = -1;
-static gint hf_mapi_TransportSend_repl_properties = -1;
-static gint hf_mapi_TypedString_String = -1;
-static gint hf_mapi_TypedString_StringType = -1;
-static gint hf_mapi_UnlockRegionStream_req_LockFlags = -1;
-static gint hf_mapi_UnlockRegionStream_req_RegionOffset = -1;
-static gint hf_mapi_UnlockRegionStream_req_RegionSize = -1;
-static gint hf_mapi_UpdateDeferredActionMessages_req_ClientEntryId = -1;
-static gint hf_mapi_UpdateDeferredActionMessages_req_ServerEntryId = -1;
-static gint hf_mapi_WriteAndCommitStream_repl_WrittenSize = -1;
-static gint hf_mapi_WriteAndCommitStream_req_data = -1;
-static gint hf_mapi_WriteStream_repl_WrittenSize = -1;
-static gint hf_mapi_WriteStream_req_data = -1;
-static gint hf_mapi_decrypted_data = -1;
-static gint hf_mapi_fuzzyLevel_FL_IGNORECASE = -1;
-static gint hf_mapi_fuzzyLevel_FL_IGNORENONSPACE = -1;
-static gint hf_mapi_fuzzyLevel_FL_LOOSE = -1;
-static gint hf_mapi_fuzzyLevel_FL_PREFIX = -1;
-static gint hf_mapi_fuzzyLevel_FL_SUBSTRING = -1;
-static gint hf_mapi_hyperbool_ID = -1;
-static gint hf_mapi_mapi_EcDoAsyncConnectEx_cxh = -1;
-static gint hf_mapi_mapi_EcDoAsyncConnectEx_pacxh = -1;
-static gint hf_mapi_mapi_EcDoAsyncConnect_cxh = -1;
-static gint hf_mapi_mapi_EcDoAsyncConnect_pacxh = -1;
-static gint hf_mapi_mapi_EcDoAsyncWait_cxh = -1;
-static gint hf_mapi_mapi_EcDoAsyncWait_pulFlagsOut = -1;
-static gint hf_mapi_mapi_EcDoAsyncWait_ulFlagsIn = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_cbAuxIn = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_cbLimit = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_handle = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_pcRetry = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_pcbAuxOut = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_pcmsPollsMax = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_pcmsRetryDelay = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_picxr = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_pulTimeStamp = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_rgbAuxIn = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_rgbAuxOut = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_rgwBestVersion = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_rgwClientVersion = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_rgwServerVersion = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_szDNPrefix = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_szDisplayName = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_szUserDN = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_ulConMod = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_ulCpid = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_ulFlags = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_ulIcxrLink = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_ulLcidSort = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_ulLcidString = -1;
-static gint hf_mapi_mapi_EcDoConnectEx_usFCanConvertCodePages = -1;
-static gint hf_mapi_mapi_EcDoConnect_cbLimit = -1;
-static gint hf_mapi_mapi_EcDoConnect_hBinding = -1;
-static gint hf_mapi_mapi_EcDoConnect_pcRetry = -1;
-static gint hf_mapi_mapi_EcDoConnect_pcmsPollsMax = -1;
-static gint hf_mapi_mapi_EcDoConnect_pcmsRetryDelay = -1;
-static gint hf_mapi_mapi_EcDoConnect_picxr = -1;
-static gint hf_mapi_mapi_EcDoConnect_pullTimeStamp = -1;
-static gint hf_mapi_mapi_EcDoConnect_rgwBestVersion = -1;
-static gint hf_mapi_mapi_EcDoConnect_rgwClientVersion = -1;
-static gint hf_mapi_mapi_EcDoConnect_rgwServerVersion = -1;
-static gint hf_mapi_mapi_EcDoConnect_szDNPrefix = -1;
-static gint hf_mapi_mapi_EcDoConnect_szDisplayName = -1;
-static gint hf_mapi_mapi_EcDoConnect_szUserDN = -1;
-static gint hf_mapi_mapi_EcDoConnect_ulConMod = -1;
-static gint hf_mapi_mapi_EcDoConnect_ulCpid = -1;
-static gint hf_mapi_mapi_EcDoConnect_ulFlags = -1;
-static gint hf_mapi_mapi_EcDoConnect_ulIcxrLink = -1;
-static gint hf_mapi_mapi_EcDoConnect_ulLcidSort = -1;
-static gint hf_mapi_mapi_EcDoConnect_ulLcidString = -1;
-static gint hf_mapi_mapi_EcDoConnect_usFCanConvertCodePages = -1;
-static gint hf_mapi_mapi_EcDoDisconnect_pcxh = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_cbAuxIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_cbIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_pcbAuxOut = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_pcbOut = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_pcxh = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_pulFlags = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_pulTransTime = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_rgbAuxIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_rgbAuxOut = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_rgbIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt2_rgbOut = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_cbAuxIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_cbIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_pcbOut = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_pcxh = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_pulFlags = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_pulTransTime = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_rgbAuxIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_rgbIn = -1;
-static gint hf_mapi_mapi_EcDoRpcExt_rgbOut = -1;
-static gint hf_mapi_mapi_EcDoRpc_handle = -1;
-static gint hf_mapi_mapi_EcDoRpc_length = -1;
-static gint hf_mapi_mapi_EcDoRpc_mapi_request = -1;
-static gint hf_mapi_mapi_EcDoRpc_mapi_response = -1;
-static gint hf_mapi_mapi_EcDoRpc_max_data = -1;
-static gint hf_mapi_mapi_EcDoRpc_offset = -1;
-static gint hf_mapi_mapi_EcDoRpc_size = -1;
-static gint hf_mapi_mapi_EcGetMoreRpc_pcxh = -1;
-static gint hf_mapi_mapi_EcGetMoreRpc_pusLength = -1;
-static gint hf_mapi_mapi_EcGetMoreRpc_rgb = -1;
-static gint hf_mapi_mapi_EcGetMoreRpc_usSize = -1;
-static gint hf_mapi_mapi_EcRGetDCName_handle = -1;
-static gint hf_mapi_mapi_EcRGetDCName_rgchDomainController = -1;
-static gint hf_mapi_mapi_EcRGetDCName_szDomainName = -1;
-static gint hf_mapi_mapi_EcRNetGetDCName_rgchDomainController = -1;
-static gint hf_mapi_mapi_EcRNetGetDCName_szDomainName = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_cbCallbackAddress = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_cbContext = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_grbitMapiAdviseBits = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_hNotification = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_handle = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_iRpc = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_rgbCallbackAddress = -1;
-static gint hf_mapi_mapi_EcRRegisterPushNotification_rgbContext = -1;
-static gint hf_mapi_mapi_EcRUnregisterPushNotification_hNotification = -1;
-static gint hf_mapi_mapi_EcRUnregisterPushNotification_handle = -1;
-static gint hf_mapi_mapi_EcRUnregisterPushNotification_iRpc = -1;
-static gint hf_mapi_mapi_LPSTR_lppszA = -1;
-static gint hf_mapi_mapi_LPWSTR_lppszW = -1;
-static gint hf_mapi_mapi_MV_LONG_STRUCT_cValues = -1;
-static gint hf_mapi_mapi_MV_LONG_STRUCT_lpl = -1;
-static gint hf_mapi_mapi_PermissionsData_ModifyCount = -1;
-static gint hf_mapi_mapi_PermissionsData_ModifyFlags = -1;
-static gint hf_mapi_mapi_PermissionsData_PermissionsData = -1;
-static gint hf_mapi_mapi_SAndRestriction_cRes = -1;
-static gint hf_mapi_mapi_SAndRestriction_res = -1;
-static gint hf_mapi_mapi_SBinaryArray_bin = -1;
-static gint hf_mapi_mapi_SBinaryArray_cValues = -1;
-static gint hf_mapi_mapi_SBitmaskRestriction_relMBR = -1;
-static gint hf_mapi_mapi_SBitmaskRestriction_ulMask = -1;
-static gint hf_mapi_mapi_SBitmaskRestriction_ulPropTag = -1;
-static gint hf_mapi_mapi_SCommentRestriction_Restriction = -1;
-static gint hf_mapi_mapi_SCommentRestriction_RestrictionPresent = -1;
-static gint hf_mapi_mapi_SCommentRestriction_TaggedValues = -1;
-static gint hf_mapi_mapi_SCommentRestriction_TaggedValuesCount = -1;
-static gint hf_mapi_mapi_SCompareProps_relop = -1;
-static gint hf_mapi_mapi_SCompareProps_ulPropTag1 = -1;
-static gint hf_mapi_mapi_SCompareProps_ulPropTag2 = -1;
-static gint hf_mapi_mapi_SContentRestriction_fuzzy = -1;
-static gint hf_mapi_mapi_SContentRestriction_lpProp = -1;
-static gint hf_mapi_mapi_SContentRestriction_ulPropTag = -1;
-static gint hf_mapi_mapi_SExistRestriction_ulPropTag = -1;
-static gint hf_mapi_mapi_SGuidArray_cValues = -1;
-static gint hf_mapi_mapi_SGuidArray_lpguid = -1;
-static gint hf_mapi_mapi_SLPSTRArray_cValues = -1;
-static gint hf_mapi_mapi_SLPSTRArray_strings = -1;
-static gint hf_mapi_mapi_SNotRestriction_res = -1;
-static gint hf_mapi_mapi_SOrRestriction_cRes = -1;
-static gint hf_mapi_mapi_SOrRestriction_res = -1;
-static gint hf_mapi_mapi_SPLSTRArrayW_cValues = -1;
-static gint hf_mapi_mapi_SPLSTRArrayW_strings = -1;
-static gint hf_mapi_mapi_SPropTagArray_aulPropTag = -1;
-static gint hf_mapi_mapi_SPropTagArray_cValues = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_MVbin = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_MVft = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_MVguid = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_MVi = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_MVl = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_MVszA = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_MVszW = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_Restrictions = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_RuleAction = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_b = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_bin = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_d = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_dbl = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_err = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_ft = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_i = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_l = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_lpguid = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_lpszA = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_lpszW = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_null = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_object = -1;
-static gint hf_mapi_mapi_SPropValue_CTR_svreid = -1;
-static gint hf_mapi_mapi_SPropValue_array_cValues = -1;
-static gint hf_mapi_mapi_SPropValue_array_lpProps = -1;
-static gint hf_mapi_mapi_SPropValue_array_wrap_wrap = -1;
-static gint hf_mapi_mapi_SPropValue_ulPropTag = -1;
-static gint hf_mapi_mapi_SPropValue_value = -1;
-static gint hf_mapi_mapi_SPropValue_wrap_wrap = -1;
-static gint hf_mapi_mapi_SPropertyRestriction_lpProp = -1;
-static gint hf_mapi_mapi_SPropertyRestriction_relop = -1;
-static gint hf_mapi_mapi_SPropertyRestriction_ulPropTag = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resAnd = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resBitmask = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resComment = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resCompareProps = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resContent = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resExist = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resNot = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resOr = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resProperty = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resSize = -1;
-static gint hf_mapi_mapi_SRestriction_CTR_resSub = -1;
-static gint hf_mapi_mapi_SRestriction_res = -1;
-static gint hf_mapi_mapi_SRestriction_rt = -1;
-static gint hf_mapi_mapi_SRestriction_wrap_wrap = -1;
-static gint hf_mapi_mapi_SSizeRestriction_relop = -1;
-static gint hf_mapi_mapi_SSizeRestriction_size = -1;
-static gint hf_mapi_mapi_SSizeRestriction_ulPropTag = -1;
-static gint hf_mapi_mapi_SSubRestriction_res = -1;
-static gint hf_mapi_mapi_SSubRestriction_ulSubObject = -1;
-static gint hf_mapi_mapi_name_Name = -1;
-static gint hf_mapi_mapi_name_NameSize = -1;
-static gint hf_mapi_mapi_request_handles = -1;
-static gint hf_mapi_mapi_request_length = -1;
-static gint hf_mapi_mapi_request_mapi_len = -1;
-static gint hf_mapi_mapi_request_rpcRequest = -1;
-static gint hf_mapi_mapi_response_handles = -1;
-static gint hf_mapi_mapi_response_length = -1;
-static gint hf_mapi_mapi_response_mapi_len = -1;
-static gint hf_mapi_mapi_response_rpcResponse = -1;
-static gint hf_mapi_opnum = -1;
-static gint hf_mapi_recipient_DisplayName_lpszA = -1;
-static gint hf_mapi_recipient_DisplayName_lpszW = -1;
-static gint hf_mapi_recipient_EmailAddress_lpszA = -1;
-static gint hf_mapi_recipient_EmailAddress_lpszW = -1;
-static gint hf_mapi_recipient_SimpleDisplayName_lpszA = -1;
-static gint hf_mapi_recipient_SimpleDisplayName_lpszW = -1;
-static gint hf_mapi_recipient_TransmittableDisplayName_lpszA = -1;
-static gint hf_mapi_recipient_TransmittableDisplayName_lpszW = -1;
-static gint hf_mapi_recipient_type_EXCHANGE = -1;
-static gint hf_mapi_recipient_type_SMTP = -1;
-static gint hf_mapi_ulMessageStatus_MSGSTATUS_DELMARKED = -1;
-static gint hf_mapi_ulMessageStatus_MSGSTATUS_HIDDEN = -1;
-static gint hf_mapi_ulMessageStatus_MSGSTATUS_HIGHLIGHTED = -1;
-static gint hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DELETE = -1;
-static gint hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DOWNLOAD = -1;
-static gint hf_mapi_ulMessageStatus_MSGSTATUS_TAGGED = -1;
-static gint hf_mapi_werror = -1;
+static gint hf_mapi_AUX_CLIENT_CONTROL_EnableFlags;
+static gint hf_mapi_AUX_CLIENT_CONTROL_ExpiryTime;
+static gint hf_mapi_AUX_DATA_Version1;
+static gint hf_mapi_AUX_DATA_Version2;
+static gint hf_mapi_AUX_EXORGINFO_OrgFlags;
+static gint hf_mapi_AUX_HEADER_AuxData;
+static gint hf_mapi_AUX_HEADER_Size;
+static gint hf_mapi_AUX_HEADER_TYPE_ENUM_Type;
+static gint hf_mapi_AUX_HEADER_TYPE_ENUM_Type_2;
+static gint hf_mapi_AUX_HEADER_Version;
+static gint hf_mapi_AUX_HEADER_hdrType;
+static gint hf_mapi_AUX_OSVERSIONINFO_BuildNumber;
+static gint hf_mapi_AUX_OSVERSIONINFO_MajorVersion;
+static gint hf_mapi_AUX_OSVERSIONINFO_MinorVersion;
+static gint hf_mapi_AUX_OSVERSIONINFO_OSVersionInfoSize;
+static gint hf_mapi_AUX_OSVERSIONINFO_Reserved_1;
+static gint hf_mapi_AUX_OSVERSIONINFO_Reserved_2;
+static gint hf_mapi_AUX_OSVERSIONINFO_ServicePackMajor;
+static gint hf_mapi_AUX_OSVERSIONINFO_ServicePackMinor;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterName;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterNameOffset;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_AdapterSpeed;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientID;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMask;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskOffset;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPMaskSize;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPOffset;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPSize;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV4;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientIPV6;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_ClientMode;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressEther;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressOffset;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_MacAddressSize;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_MachineName;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_MachineNameOffset;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_Reserved;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_UserName;
+static gint hf_mapi_AUX_PERF_CLIENTINFO_UserNameOffset;
+static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_RequestOperation;
+static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_Reserved;
+static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_ServerID;
+static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_SessionID;
+static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_DEFGC_SUCCESS_TimeToCompleteRequest;
+static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_RequestID;
+static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_Reserved;
+static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_DEFMDB_SUCCESS_TimeToCompleteRequest;
+static gint hf_mapi_AUX_PERF_FAILURE_ClientID;
+static gint hf_mapi_AUX_PERF_FAILURE_RequestID;
+static gint hf_mapi_AUX_PERF_FAILURE_RequestOperation;
+static gint hf_mapi_AUX_PERF_FAILURE_Reserved;
+static gint hf_mapi_AUX_PERF_FAILURE_ResultCode;
+static gint hf_mapi_AUX_PERF_FAILURE_ServerID;
+static gint hf_mapi_AUX_PERF_FAILURE_SessionID;
+static gint hf_mapi_AUX_PERF_FAILURE_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_FAILURE_TimeToFailRequest;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_ClientID;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_ProcessID;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_RequestID;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_RequestOperation;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_Reserved_1;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_Reserved_2;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_ResultCode;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_ServerID;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_SessionID;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_FAILURE_V2_TimeToFailRequest;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_ClientID;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_RequestOperation;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_1;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_Reserved_2;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_ServerID;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_SessionID;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_TimeToCompleteRequest;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ClientID;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ProcessID;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_RequestOperation;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_Reserved;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_ServerID;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_SessionID;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_GC_SUCCESS_V2_TimeToCompleteRequest;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_ClientID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_RequestID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_ServerID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_SessionID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_TimeToCompleteRequest;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ClientID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ProcessID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_RequestID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_Reserved;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_ServerID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_SessionID;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeSinceRequest;
+static gint hf_mapi_AUX_PERF_MDB_SUCCESS_V2_TimeToCompleteRequest;
+static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessGuid;
+static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessID;
+static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessName;
+static gint hf_mapi_AUX_PERF_PROCESSINFO_ProcessNameOffset;
+static gint hf_mapi_AUX_PERF_PROCESSINFO_Reserved1;
+static gint hf_mapi_AUX_PERF_PROCESSINFO_Reserved2;
+static gint hf_mapi_AUX_PERF_REQUESTID_RequestID;
+static gint hf_mapi_AUX_PERF_REQUESTID_SessionID;
+static gint hf_mapi_AUX_PERF_SERVERINFO_ServerDN;
+static gint hf_mapi_AUX_PERF_SERVERINFO_ServerDNOffset;
+static gint hf_mapi_AUX_PERF_SERVERINFO_ServerID;
+static gint hf_mapi_AUX_PERF_SERVERINFO_ServerName;
+static gint hf_mapi_AUX_PERF_SERVERINFO_ServerNameOffset;
+static gint hf_mapi_AUX_PERF_SERVERINFO_ServerType;
+static gint hf_mapi_AUX_PERF_SESSIONINFO_Reserved;
+static gint hf_mapi_AUX_PERF_SESSIONINFO_SessionGuid;
+static gint hf_mapi_AUX_PERF_SESSIONINFO_SessionID;
+static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_ConnectionID;
+static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_Reserved;
+static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionGuid;
+static gint hf_mapi_AUX_PERF_SESSIONINFO_V2_SessionID;
+static gint hf_mapi_AbortSubmit_req_FolderId;
+static gint hf_mapi_AbortSubmit_req_MessageId;
+static gint hf_mapi_Abort_repl_TableStatus;
+static gint hf_mapi_ActionBlockData_ActionDataBuffer;
+static gint hf_mapi_ActionBlockData_ActionFlags;
+static gint hf_mapi_ActionBlockData_ActionFlavor;
+static gint hf_mapi_ActionBlockData_ActionType;
+static gint hf_mapi_ActionBlock_ActionBlockData;
+static gint hf_mapi_ActionData_BounceCode;
+static gint hf_mapi_ActionData_CopyAction;
+static gint hf_mapi_ActionData_DeferAction;
+static gint hf_mapi_ActionData_DelegateAction;
+static gint hf_mapi_ActionData_ForwardAction;
+static gint hf_mapi_ActionData_MoveAction;
+static gint hf_mapi_ActionData_PropValue;
+static gint hf_mapi_ActionData_ReplyAction;
+static gint hf_mapi_ActionData_ReplyOOFAction;
+static gint hf_mapi_AddressTypes_repl_cValues;
+static gint hf_mapi_AddressTypes_repl_size;
+static gint hf_mapi_AddressTypes_repl_transport;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryClientControl;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryEXOrgInfo;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryOSVersionInfo;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerFGGCSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefgcSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgDefmdbSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgFailure;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgGcSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfBgMdbSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfClientInfo;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfDefgcSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfDefmdbSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFailure;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefgcSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgDefmdbSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgFailure;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfFgMdbSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfGcSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfMdbSuccess;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfProcessInfo;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfRequestId;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfServerInfo;
+static gint hf_mapi_AuxDataVersion1_AuxiliaryPerfSessionInfo;
+static gint hf_mapi_AuxDataVersion1_Payload;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryEXOrgInfo;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryOSVersionInfo;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerFGGCSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerf;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefgcSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgDefmdbSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgFailure;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgGcSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfBgMdbSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfClientInfo;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfDefgcSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfDefmdbSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFailure;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefgcSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgDefmdbSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgFailure;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfFgMdbSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfGcSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfMdbSuccess;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfProcessInfo;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfRequestId;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfServerInfo;
+static gint hf_mapi_AuxDataVersion2_AuxiliaryPerfSessioninfo;
+static gint hf_mapi_AuxDataVersion2_Payload;
+static gint hf_mapi_AuxInfoOut_RpcHeaderExtension;
+static gint hf_mapi_AuxInfoOut_auxHeader;
+static gint hf_mapi_AuxInfo_RpcHeaderExtension;
+static gint hf_mapi_AuxInfo_auxHeader;
+static gint hf_mapi_AuxInfo_auxInSize;
+static gint hf_mapi_BinaryArray_r_cValues;
+static gint hf_mapi_BinaryArray_r_lpbin;
+static gint hf_mapi_Binary_r_cb;
+static gint hf_mapi_Binary_r_lpb;
+static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_COMPRESSION;
+static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_HTTP_TUNNELING;
+static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDGCDATA;
+static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOMAILBOX;
+static gint hf_mapi_CLIENT_CONTROL_EnableFlags_ENABLE_PERF_SENDTOSERVER;
+static gint hf_mapi_CollapseRow_repl_CollapsedRowCount;
+static gint hf_mapi_CollapseRow_req_CategoryId;
+static gint hf_mapi_ContentsRowAddedNotification_Columns;
+static gint hf_mapi_ContentsRowAddedNotification_FID;
+static gint hf_mapi_ContentsRowAddedNotification_InsertAfterFID;
+static gint hf_mapi_ContentsRowAddedNotification_InsertAfterInstance;
+static gint hf_mapi_ContentsRowAddedNotification_InsertAfterMID;
+static gint hf_mapi_ContentsRowAddedNotification_Instance;
+static gint hf_mapi_ContentsRowAddedNotification_MID;
+static gint hf_mapi_ContentsRowDeletedNotification_FID;
+static gint hf_mapi_ContentsRowDeletedNotification_Instance;
+static gint hf_mapi_ContentsRowDeletedNotification_MID;
+static gint hf_mapi_ContentsRowModifiedNotification_Columns;
+static gint hf_mapi_ContentsRowModifiedNotification_FID;
+static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterFID;
+static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterInstance;
+static gint hf_mapi_ContentsRowModifiedNotification_InsertAfterMID;
+static gint hf_mapi_ContentsRowModifiedNotification_Instance;
+static gint hf_mapi_ContentsRowModifiedNotification_MID;
+static gint hf_mapi_ContentsTableChangeUnion_ContentsRowAddedNotification;
+static gint hf_mapi_ContentsTableChangeUnion_ContentsRowDeletedNotification;
+static gint hf_mapi_ContentsTableChangeUnion_ContentsRowModifiedNotification;
+static gint hf_mapi_ContentsTableChange_ContentsTableChangeUnion;
+static gint hf_mapi_ContentsTableChange_TableEvent;
+static gint hf_mapi_CopyFlags_CopyFlagsMove;
+static gint hf_mapi_CopyFlags_CopyFlagsNoOverwrite;
+static gint hf_mapi_CopyFolder_repl_PartialCompletion;
+static gint hf_mapi_CopyFolder_req_FolderId;
+static gint hf_mapi_CopyFolder_req_NewFolderName;
+static gint hf_mapi_CopyFolder_req_UseUnicode;
+static gint hf_mapi_CopyFolder_req_WantAsynchronous;
+static gint hf_mapi_CopyFolder_req_WantRecursive;
+static gint hf_mapi_CopyProperties_repl_PropertyProblem;
+static gint hf_mapi_CopyProperties_repl_PropertyProblemCount;
+static gint hf_mapi_CopyProperties_req_CopyFlags;
+static gint hf_mapi_CopyProperties_req_PropertyTags;
+static gint hf_mapi_CopyProperties_req_WantAsynchronous;
+static gint hf_mapi_CopyToStream_repl_ReadByteCount;
+static gint hf_mapi_CopyToStream_repl_WrittenByteCount;
+static gint hf_mapi_CopyToStream_req_ByteCount;
+static gint hf_mapi_CopyTo_repl_PropertyProblem;
+static gint hf_mapi_CopyTo_repl_PropertyProblemCount;
+static gint hf_mapi_CopyTo_req_CopyFlags;
+static gint hf_mapi_CopyTo_req_ExcludedTags;
+static gint hf_mapi_CopyTo_req_WantAsynchronous;
+static gint hf_mapi_CopyTo_req_WantSubObjects;
+static gint hf_mapi_CreateAttach_repl_AttachmentID;
+static gint hf_mapi_CreateBookmark_repl_bookmark;
+static gint hf_mapi_CreateFolder_GhostInfo_Ghost;
+static gint hf_mapi_CreateFolder_GhostInfo_HasRules;
+static gint hf_mapi_CreateFolder_GhostInfo_IsGhosted;
+static gint hf_mapi_CreateFolder_GhostUnion_GhostInfo;
+static gint hf_mapi_CreateFolder_repl_GhostUnion;
+static gint hf_mapi_CreateFolder_repl_IsExistingFolder;
+static gint hf_mapi_CreateFolder_repl_folder_id;
+static gint hf_mapi_CreateFolder_req_FolderComment;
+static gint hf_mapi_CreateFolder_req_FolderName;
+static gint hf_mapi_CreateFolder_req_ulFlags;
+static gint hf_mapi_CreateFolder_req_ulFolderType;
+static gint hf_mapi_CreateFolder_req_ulType;
+static gint hf_mapi_CreateMessage_MessageId_MessageId;
+static gint hf_mapi_CreateMessage_repl_OutputHandleIndex;
+static gint hf_mapi_CreateMessage_repl_ReturnValue;
+static gint hf_mapi_CreateMessage_repl_repl;
+static gint hf_mapi_CreateMessage_repl_status_Success;
+static gint hf_mapi_CreateMessage_repl_success_HasMessageId;
+static gint hf_mapi_CreateMessage_repl_success_MessageId;
+static gint hf_mapi_CreateMessage_req_AssociatedFlag;
+static gint hf_mapi_CreateMessage_req_CodePageId;
+static gint hf_mapi_CreateMessage_req_FolderId;
+static gint hf_mapi_DATA_BLOB_data;
+static gint hf_mapi_DATA_BLOB_length;
+static gint hf_mapi_DateTimeArray_r_cValues;
+static gint hf_mapi_DateTimeArray_r_lpft;
+static gint hf_mapi_DeleteAttach_req_AttachmentID;
+static gint hf_mapi_DeleteFolderFlags_DELETE_HARD_DELETE;
+static gint hf_mapi_DeleteFolderFlags_DEL_FOLDERS;
+static gint hf_mapi_DeleteFolderFlags_DEL_MESSAGES;
+static gint hf_mapi_DeleteFolder_repl_PartialCompletion;
+static gint hf_mapi_DeleteFolder_req_DeleteFolderFlags;
+static gint hf_mapi_DeleteFolder_req_FolderId;
+static gint hf_mapi_DeleteMessages_repl_PartialCompletion;
+static gint hf_mapi_DeleteMessages_req_NotifyNonRead;
+static gint hf_mapi_DeleteMessages_req_WantAsynchronous;
+static gint hf_mapi_DeleteMessages_req_cn_ids;
+static gint hf_mapi_DeleteMessages_req_message_ids;
+static gint hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblem;
+static gint hf_mapi_DeletePropertiesNoReplicate_repl_PropertyProblemCount;
+static gint hf_mapi_DeletePropertiesNoReplicate_req_PropertyTags;
+static gint hf_mapi_DeleteProps_repl_PropertyProblem;
+static gint hf_mapi_DeleteProps_repl_PropertyProblemCount;
+static gint hf_mapi_DeleteProps_req_PropertyTagCount;
+static gint hf_mapi_DeleteProps_req_tags;
+static gint hf_mapi_EXORGINFO_OrgFlags_PUBLIC_FOLDERS_ENABLED;
+static gint hf_mapi_EcDoRpcMapiRequest_opnum;
+static gint hf_mapi_EcDoRpcMapiRequest_u;
+static gint hf_mapi_EcDoRpcMapiResponse_opnum;
+static gint hf_mapi_EcDoRpcMapiResponse_u;
+static gint hf_mapi_EmptyFolder_repl_PartialCompletion;
+static gint hf_mapi_EmptyFolder_req_WantAsynchronous;
+static gint hf_mapi_EmptyFolder_req_WantDeleteAssociated;
+static gint hf_mapi_ExpandRow_repl_ExpandedRowCount;
+static gint hf_mapi_ExpandRow_repl_RowCount;
+static gint hf_mapi_ExpandRow_repl_RowData;
+static gint hf_mapi_ExpandRow_req_CategoryId;
+static gint hf_mapi_ExpandRow_req_MaxRowCount;
+static gint hf_mapi_FILETIME_dwHighDateTime;
+static gint hf_mapi_FILETIME_dwLowDateTime;
+static gint hf_mapi_FastTransferSourceGetBuffer_repl_InProgressCount;
+static gint hf_mapi_FastTransferSourceGetBuffer_repl_Reserved;
+static gint hf_mapi_FastTransferSourceGetBuffer_repl_TotalStepCount;
+static gint hf_mapi_FastTransferSourceGetBuffer_repl_TransferBuffer;
+static gint hf_mapi_FastTransferSourceGetBuffer_repl_TransferStatus;
+static gint hf_mapi_FastTransferSourceGetBuffer_req_BufferSize;
+static gint hf_mapi_FindRow_repl_HasRowData;
+static gint hf_mapi_FindRow_repl_RowNoLongerVisible;
+static gint hf_mapi_FindRow_repl_row;
+static gint hf_mapi_FindRow_req_bookmark;
+static gint hf_mapi_FindRow_req_origin;
+static gint hf_mapi_FindRow_req_res;
+static gint hf_mapi_FindRow_req_ulFlags;
+static gint hf_mapi_FolderCreatedNotification_FID;
+static gint hf_mapi_FolderCreatedNotification_ParentFID;
+static gint hf_mapi_FolderCreatedNotification_TagCount;
+static gint hf_mapi_FolderCreatedNotification_Tags;
+static gint hf_mapi_FolderDeletedNotification_FID;
+static gint hf_mapi_FolderDeletedNotification_ParentFID;
+static gint hf_mapi_FolderModifiedNotification_1010_FID;
+static gint hf_mapi_FolderModifiedNotification_1010_TagCount;
+static gint hf_mapi_FolderModifiedNotification_1010_Tags;
+static gint hf_mapi_FolderModifiedNotification_1010_TotalMessageCount;
+static gint hf_mapi_FolderModifiedNotification_10_FID;
+static gint hf_mapi_FolderModifiedNotification_10_TagCount;
+static gint hf_mapi_FolderModifiedNotification_10_Tags;
+static gint hf_mapi_FolderModifiedNotification_2010_FID;
+static gint hf_mapi_FolderModifiedNotification_2010_TagCount;
+static gint hf_mapi_FolderModifiedNotification_2010_Tags;
+static gint hf_mapi_FolderModifiedNotification_2010_UnreadMessageCount;
+static gint hf_mapi_FolderModifiedNotification_3010_FID;
+static gint hf_mapi_FolderModifiedNotification_3010_TagCount;
+static gint hf_mapi_FolderModifiedNotification_3010_Tags;
+static gint hf_mapi_FolderModifiedNotification_3010_TotalMessageCount;
+static gint hf_mapi_FolderModifiedNotification_3010_UnreadMessageCount;
+static gint hf_mapi_FolderMoveCopyNotification_FID;
+static gint hf_mapi_FolderMoveCopyNotification_OldFID;
+static gint hf_mapi_FolderMoveCopyNotification_OldParentFID;
+static gint hf_mapi_FolderMoveCopyNotification_ParentFID;
+static gint hf_mapi_Folder_name_lpszA;
+static gint hf_mapi_Folder_name_lpszW;
+static gint hf_mapi_ForwardDelegate_Action_RecipientBlock;
+static gint hf_mapi_ForwardDelegate_Action_RecipientCount;
+static gint hf_mapi_FreeBookmark_req_bookmark;
+static gint hf_mapi_GID_DatabaseGUID;
+static gint hf_mapi_GID_GlobalCounter;
+static gint hf_mapi_GetAttachmentTable_req_TableFlags;
+static gint hf_mapi_GetCollapseState_repl_CollapseState;
+static gint hf_mapi_GetCollapseState_req_RowId;
+static gint hf_mapi_GetCollapseState_req_RowInstanceNumber;
+static gint hf_mapi_GetContentsTable_repl_OutputHandleIndex;
+static gint hf_mapi_GetContentsTable_repl_ReturnValue;
+static gint hf_mapi_GetContentsTable_repl_repl;
+static gint hf_mapi_GetContentsTable_repl_status_Success;
+static gint hf_mapi_GetContentsTable_repl_success_RowCount;
+static gint hf_mapi_GetContentsTable_req_TableFlags;
+static gint hf_mapi_GetHierarchyTable_repl_OutputHandleIndex;
+static gint hf_mapi_GetHierarchyTable_repl_ReturnValue;
+static gint hf_mapi_GetHierarchyTable_repl_repl;
+static gint hf_mapi_GetHierarchyTable_repl_status_Success;
+static gint hf_mapi_GetHierarchyTable_repl_success_RowCount;
+static gint hf_mapi_GetHierarchyTable_req_TableFlags;
+static gint hf_mapi_GetIDsFromNames_repl_count;
+static gint hf_mapi_GetIDsFromNames_repl_propID;
+static gint hf_mapi_GetIDsFromNames_req_count;
+static gint hf_mapi_GetIDsFromNames_req_nameid;
+static gint hf_mapi_GetIDsFromNames_req_ulFlags;
+static gint hf_mapi_GetLocalReplicaIds_repl_GlobalCount;
+static gint hf_mapi_GetLocalReplicaIds_repl_ReplGuid;
+static gint hf_mapi_GetLocalReplicaIds_req_IdCount;
+static gint hf_mapi_GetMessageStatus_req_msgid;
+static gint hf_mapi_GetNamesFromIDs_repl_count;
+static gint hf_mapi_GetNamesFromIDs_repl_nameid;
+static gint hf_mapi_GetNamesFromIDs_req_PropertyIdCount;
+static gint hf_mapi_GetNamesFromIDs_req_PropertyIds;
+static gint hf_mapi_GetOwningServers_repl_CheapServersCount;
+static gint hf_mapi_GetOwningServers_repl_OwningServers;
+static gint hf_mapi_GetOwningServers_repl_OwningServersCount;
+static gint hf_mapi_GetOwningServers_req_FolderId;
+static gint hf_mapi_GetPerUserGuid_repl_DatabaseGuid;
+static gint hf_mapi_GetPerUserGuid_req_LongTermId;
+static gint hf_mapi_GetPerUserLongTermIds_repl_LongTermIdCount;
+static gint hf_mapi_GetPerUserLongTermIds_repl_LongTermIds;
+static gint hf_mapi_GetPerUserLongTermIds_req_DatabaseGuid;
+static gint hf_mapi_GetPermissionsTable_req_TableFlags;
+static gint hf_mapi_GetPropList_repl_count;
+static gint hf_mapi_GetPropList_repl_tags;
+static gint hf_mapi_GetPropsAll_repl_InputHandleIndex;
+static gint hf_mapi_GetPropsAll_repl_ReturnValue;
+static gint hf_mapi_GetPropsAll_repl_repl;
+static gint hf_mapi_GetPropsAll_repl_status_Success;
+static gint hf_mapi_GetPropsAll_repl_success_properties;
+static gint hf_mapi_GetPropsAll_req_PropertySizeLimit;
+static gint hf_mapi_GetPropsAll_req_WantUnicode;
+static gint hf_mapi_GetProps_repl_InputHandleIndex;
+static gint hf_mapi_GetProps_repl_ReturnValue;
+static gint hf_mapi_GetProps_repl_repl;
+static gint hf_mapi_GetProps_repl_status_Success;
+static gint hf_mapi_GetProps_repl_success_layout;
+static gint hf_mapi_GetProps_repl_success_prop_data;
+static gint hf_mapi_GetProps_req_PropertySizeLimit;
+static gint hf_mapi_GetProps_req_WantUnicode;
+static gint hf_mapi_GetProps_req_prop_count;
+static gint hf_mapi_GetProps_req_properties;
+static gint hf_mapi_GetReceiveFolderTable_repl_cValues;
+static gint hf_mapi_GetReceiveFolderTable_repl_entries;
+static gint hf_mapi_GetReceiveFolder_repl_MessageClass;
+static gint hf_mapi_GetReceiveFolder_repl_folder_id;
+static gint hf_mapi_GetReceiveFolder_req_MessageClass;
+static gint hf_mapi_GetRulesTable_req_TableFlags;
+static gint hf_mapi_GetSearchCriteria_repl_FolderIdCount;
+static gint hf_mapi_GetSearchCriteria_repl_FolderIds;
+static gint hf_mapi_GetSearchCriteria_repl_SearchFlags;
+static gint hf_mapi_GetSearchCriteria_repl_res;
+static gint hf_mapi_GetSearchCriteria_repl_unknown;
+static gint hf_mapi_GetSearchCriteria_req_IncludeFolders;
+static gint hf_mapi_GetSearchCriteria_req_IncludeRestriction;
+static gint hf_mapi_GetSearchCriteria_req_UseUnicode;
+static gint hf_mapi_GetStatus_repl_TableStatus;
+static gint hf_mapi_GetStoreState_repl_StoreState;
+static gint hf_mapi_GetStreamSize_repl_StreamSize;
+static gint hf_mapi_GetTransportFolder_repl_FolderId;
+static gint hf_mapi_GetValidAttachments_repl_AttachmentIdArray;
+static gint hf_mapi_GetValidAttachments_repl_AttachmentIdCount;
+static gint hf_mapi_HardDeleteMessagesAndSubfolders_repl_PartialCompletion;
+static gint hf_mapi_HardDeleteMessagesAndSubfolders_req_WantAsynchronous;
+static gint hf_mapi_HardDeleteMessagesAndSubfolders_req_WantDeleteAssociated;
+static gint hf_mapi_HardDeleteMessages_repl_PartialCompletion;
+static gint hf_mapi_HardDeleteMessages_req_MessageIdCount;
+static gint hf_mapi_HardDeleteMessages_req_MessageIds;
+static gint hf_mapi_HardDeleteMessages_req_NotifyNonRead;
+static gint hf_mapi_HardDeleteMessages_req_WantAsynchronous;
+static gint hf_mapi_HierarchyRowAddedNotification_Columns;
+static gint hf_mapi_HierarchyRowAddedNotification_FID;
+static gint hf_mapi_HierarchyRowAddedNotification_InsertAfterFID;
+static gint hf_mapi_HierarchyRowDeletedNotification_FID;
+static gint hf_mapi_HierarchyRowModifiedNotification_Columns;
+static gint hf_mapi_HierarchyRowModifiedNotification_FID;
+static gint hf_mapi_HierarchyRowModifiedNotification_InsertAfterFID;
+static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowAddedNotification;
+static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowDeletedNotification;
+static gint hf_mapi_HierarchyTableChangeUnion_HierarchyRowModifiedNotification;
+static gint hf_mapi_HierarchyTableChange_HierarchyTableChangeUnion;
+static gint hf_mapi_HierarchyTableChange_TableEvent;
+static gint hf_mapi_IcsNotification_GID;
+static gint hf_mapi_IcsNotification_GIDCount;
+static gint hf_mapi_IcsNotification_HierChanged;
+static gint hf_mapi_IdFromLongTermId_repl_Id;
+static gint hf_mapi_IdFromLongTermId_req_LongTermId;
+static gint hf_mapi_ImportFlag_ImportFlag_Associated;
+static gint hf_mapi_ImportFlag_ImportFlag_FailOnConflict;
+static gint hf_mapi_InputHandleIndex;
+static gint hf_mapi_IsGhosted_Replicas;
+static gint hf_mapi_Kind_lid;
+static gint hf_mapi_Kind_lpwstr;
+static gint hf_mapi_LPTSTR_lpszA;
+static gint hf_mapi_LPTSTR_lpszW;
+static gint hf_mapi_LockRegionStream_req_LockFlags;
+static gint hf_mapi_LockRegionStream_req_RegionOffset;
+static gint hf_mapi_LockRegionStream_req_RegionSize;
+static gint hf_mapi_LogonId;
+static gint hf_mapi_LogonTime_Day;
+static gint hf_mapi_LogonTime_DayOfWeek;
+static gint hf_mapi_LogonTime_Hour;
+static gint hf_mapi_LogonTime_Minutes;
+static gint hf_mapi_LogonTime_Month;
+static gint hf_mapi_LogonTime_Seconds;
+static gint hf_mapi_LogonTime_Year;
+static gint hf_mapi_Logon_repl_FolderIds;
+static gint hf_mapi_Logon_repl_GwartTime;
+static gint hf_mapi_Logon_repl_LogonFlags;
+static gint hf_mapi_Logon_repl_LogonTime;
+static gint hf_mapi_Logon_repl_MailboxGuid;
+static gint hf_mapi_Logon_repl_OutputHandleIndex;
+static gint hf_mapi_Logon_repl_PerUserGuid;
+static gint hf_mapi_Logon_repl_ReplGuid;
+static gint hf_mapi_Logon_repl_ReplId;
+static gint hf_mapi_Logon_repl_ResponseFlags;
+static gint hf_mapi_Logon_repl_ReturnValue;
+static gint hf_mapi_Logon_repl_ServerName;
+static gint hf_mapi_Logon_repl_ServerNameSize;
+static gint hf_mapi_Logon_repl_StoreState;
+static gint hf_mapi_Logon_req_EssDN;
+static gint hf_mapi_Logon_req_EssdnSize;
+static gint hf_mapi_Logon_req_LogonFlags;
+static gint hf_mapi_Logon_req_OpenFlags;
+static gint hf_mapi_Logon_req_StoreState;
+static gint hf_mapi_LongArray_r_cValues;
+static gint hf_mapi_LongArray_r_lpl;
+static gint hf_mapi_LongTermIdFromId_repl_InputHandleIndex;
+static gint hf_mapi_LongTermIdFromId_repl_ReturnValue;
+static gint hf_mapi_LongTermIdFromId_repl_Success_LongTermId;
+static gint hf_mapi_LongTermIdFromId_repl_repl;
+static gint hf_mapi_LongTermIdFromId_repl_status_Success;
+static gint hf_mapi_LongTermIdFromId_req_Id;
+static gint hf_mapi_LongTermId_DatabaseGuid;
+static gint hf_mapi_LongTermId_GlobalCounter;
+static gint hf_mapi_LongTermId_padding;
+static gint hf_mapi_MAPINAMEID_kind;
+static gint hf_mapi_MAPINAMEID_lpguid;
+static gint hf_mapi_MAPINAMEID_ulKind;
+static gint hf_mapi_MSGFLAG_READ_CLEAR_NRN_PENDING;
+static gint hf_mapi_MSGFLAG_READ_CLEAR_READ_FLAG;
+static gint hf_mapi_MSGFLAG_READ_CLEAR_RN_PENDING;
+static gint hf_mapi_MSGFLAG_READ_GENERATE_RECEIPT_ONLY;
+static gint hf_mapi_MSGFLAG_READ_MAPI_DEFERRED_ERRORS;
+static gint hf_mapi_MSGFLAG_READ_SUPPRESS_RECEIPT;
+static gint hf_mapi_MaximumByteCount_value;
+static gint hf_mapi_MessageClass_lpszA;
+static gint hf_mapi_MessageClass_lpszW;
+static gint hf_mapi_MessageCreatedNotification_FID;
+static gint hf_mapi_MessageCreatedNotification_MID;
+static gint hf_mapi_MessageCreatedNotification_TagCount;
+static gint hf_mapi_MessageCreatedNotification_Tags;
+static gint hf_mapi_MessageDeletedNotification_FID;
+static gint hf_mapi_MessageDeletedNotification_MID;
+static gint hf_mapi_MessageModifiedNotification_FID;
+static gint hf_mapi_MessageModifiedNotification_MID;
+static gint hf_mapi_MessageModifiedNotification_TagCount;
+static gint hf_mapi_MessageModifiedNotification_Tags;
+static gint hf_mapi_MessageMoveCopyNotification_FID;
+static gint hf_mapi_MessageMoveCopyNotification_MID;
+static gint hf_mapi_MessageMoveCopyNotification_OldFID;
+static gint hf_mapi_MessageMoveCopyNotification_OldMID;
+static gint hf_mapi_ModifyPermissionsFlags_ModifyPerms_IncludeFreeBusy;
+static gint hf_mapi_ModifyPermissionsFlags_ModifyPerms_ReplaceRows;
+static gint hf_mapi_ModifyPermissions_req_rowList;
+static gint hf_mapi_ModifyRecipientRow_RecipClass;
+static gint hf_mapi_ModifyRecipientRow_RecipientRow;
+static gint hf_mapi_ModifyRecipientRow_idx;
+static gint hf_mapi_ModifyRecipients_req_RecipientRow;
+static gint hf_mapi_ModifyRecipients_req_cValues;
+static gint hf_mapi_ModifyRecipients_req_prop_count;
+static gint hf_mapi_ModifyRecipients_req_properties;
+static gint hf_mapi_ModifyRulesFlag_ModifyRulesFlag_Replace;
+static gint hf_mapi_ModifyRules_req_ModifyRulesFlags;
+static gint hf_mapi_ModifyRules_req_RulesCount;
+static gint hf_mapi_ModifyRules_req_RulesData;
+static gint hf_mapi_MoveCopyMessages_repl_PartialCompletion;
+static gint hf_mapi_MoveCopyMessages_req_WantAsynchronous;
+static gint hf_mapi_MoveCopyMessages_req_WantCopy;
+static gint hf_mapi_MoveCopyMessages_req_count;
+static gint hf_mapi_MoveCopyMessages_req_message_id;
+static gint hf_mapi_MoveCopy_Action_FolderEID;
+static gint hf_mapi_MoveCopy_Action_FolderInThisStore;
+static gint hf_mapi_MoveCopy_Action_StoreEID;
+static gint hf_mapi_MoveFolder_repl_PartialCompletion;
+static gint hf_mapi_MoveFolder_req_FolderId;
+static gint hf_mapi_MoveFolder_req_NewFolderName;
+static gint hf_mapi_MoveFolder_req_UseUnicode;
+static gint hf_mapi_MoveFolder_req_WantAsynchronous;
+static gint hf_mapi_MsgFlags_MSGFLAG_ASSOCIATED;
+static gint hf_mapi_MsgFlags_MSGFLAG_FROMME;
+static gint hf_mapi_MsgFlags_MSGFLAG_HASATTACH;
+static gint hf_mapi_MsgFlags_MSGFLAG_NRN_PENDING;
+static gint hf_mapi_MsgFlags_MSGFLAG_READ;
+static gint hf_mapi_MsgFlags_MSGFLAG_RESEND;
+static gint hf_mapi_MsgFlags_MSGFLAG_RN_PENDING;
+static gint hf_mapi_MsgFlags_MSGFLAG_SUBMIT;
+static gint hf_mapi_MsgFlags_MSGFLAG_UNMODIFIED;
+static gint hf_mapi_MsgFlags_MSGFLAG_UNSENT;
+static gint hf_mapi_NewMailNotification_FID;
+static gint hf_mapi_NewMailNotification_MID;
+static gint hf_mapi_NewMailNotification_MessageClass;
+static gint hf_mapi_NewMailNotification_MessageFlags;
+static gint hf_mapi_NewMailNotification_UnicodeFlag;
+static gint hf_mapi_NotificationData_ContentsTableChange;
+static gint hf_mapi_NotificationData_FolderCopyNotification;
+static gint hf_mapi_NotificationData_FolderCreatedNotification;
+static gint hf_mapi_NotificationData_FolderDeletedNotification;
+static gint hf_mapi_NotificationData_FolderModifiedNotification_10;
+static gint hf_mapi_NotificationData_FolderModifiedNotification_1010;
+static gint hf_mapi_NotificationData_FolderModifiedNotification_2010;
+static gint hf_mapi_NotificationData_FolderModifiedNotification_3010;
+static gint hf_mapi_NotificationData_FolderMoveNotification;
+static gint hf_mapi_NotificationData_HierarchyTableChange;
+static gint hf_mapi_NotificationData_IcsNotification;
+static gint hf_mapi_NotificationData_MessageCopyNotification;
+static gint hf_mapi_NotificationData_MessageCreatedNotification;
+static gint hf_mapi_NotificationData_MessageDeletedNotification;
+static gint hf_mapi_NotificationData_MessageModifiedNotification;
+static gint hf_mapi_NotificationData_MessageMoveNotification;
+static gint hf_mapi_NotificationData_NewMailNotification;
+static gint hf_mapi_NotificationData_NewMessageNotification;
+static gint hf_mapi_NotificationData_SearchCompleteNotification;
+static gint hf_mapi_NotificationData_SearchMessageCreatedNotification;
+static gint hf_mapi_NotificationData_SearchMessageModifiedNotification;
+static gint hf_mapi_NotificationData_SearchMessageRemovedNotification;
+static gint hf_mapi_NotificationData_SearchTableChange;
+static gint hf_mapi_Notify_repl_LogonId;
+static gint hf_mapi_Notify_repl_NotificationData;
+static gint hf_mapi_Notify_repl_NotificationHandle;
+static gint hf_mapi_Notify_repl_NotificationType;
+static gint hf_mapi_OpenAttach_req_AttachmentID;
+static gint hf_mapi_OpenAttach_req_OpenAttachmentFlags;
+static gint hf_mapi_OpenEmbeddedMessage_repl_ColumnCount;
+static gint hf_mapi_OpenEmbeddedMessage_repl_HasNamedProperties;
+static gint hf_mapi_OpenEmbeddedMessage_repl_MessageId;
+static gint hf_mapi_OpenEmbeddedMessage_repl_NormalizedSubject;
+static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientColumns;
+static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientCount;
+static gint hf_mapi_OpenEmbeddedMessage_repl_RecipientRows;
+static gint hf_mapi_OpenEmbeddedMessage_repl_Reserved;
+static gint hf_mapi_OpenEmbeddedMessage_repl_RowCount;
+static gint hf_mapi_OpenEmbeddedMessage_repl_SubjectPrefix;
+static gint hf_mapi_OpenEmbeddedMessage_req_CodePageId;
+static gint hf_mapi_OpenEmbeddedMessage_req_OpenModeFlags;
+static gint hf_mapi_OpenFlags_ALTERNATE_SERVER;
+static gint hf_mapi_OpenFlags_HOME_LOGON;
+static gint hf_mapi_OpenFlags_IGNORE_HOME_MDB;
+static gint hf_mapi_OpenFlags_NO_MAIL;
+static gint hf_mapi_OpenFlags_PUBLIC;
+static gint hf_mapi_OpenFlags_TAKE_OWNERSHIP;
+static gint hf_mapi_OpenFlags_USE_PER_MDB_REPLID_MAPPING;
+static gint hf_mapi_OpenFolder_Replicas_CheapServerCount;
+static gint hf_mapi_OpenFolder_Replicas_ServerCount;
+static gint hf_mapi_OpenFolder_Replicas_Servers;
+static gint hf_mapi_OpenFolder_Success_Ghost;
+static gint hf_mapi_OpenFolder_Success_HasRules;
+static gint hf_mapi_OpenFolder_Success_IsGhosted;
+static gint hf_mapi_OpenFolder_repl_OutputHandleIndex;
+static gint hf_mapi_OpenFolder_repl_ReturnValue;
+static gint hf_mapi_OpenFolder_repl_repl;
+static gint hf_mapi_OpenFolder_repl_status_Success;
+static gint hf_mapi_OpenFolder_req_FolderId;
+static gint hf_mapi_OpenFolder_req_OpenModeFlags;
+static gint hf_mapi_OpenMessage_Success_ColumnCount;
+static gint hf_mapi_OpenMessage_Success_HasNamedProperties;
+static gint hf_mapi_OpenMessage_Success_NormalizedSubject;
+static gint hf_mapi_OpenMessage_Success_RecipientColumns;
+static gint hf_mapi_OpenMessage_Success_RecipientCount;
+static gint hf_mapi_OpenMessage_Success_RowCount;
+static gint hf_mapi_OpenMessage_Success_SubjectPrefix;
+static gint hf_mapi_OpenMessage_Success_recipients;
+static gint hf_mapi_OpenMessage_recipients_RecipClass;
+static gint hf_mapi_OpenMessage_recipients_RecipientRow;
+static gint hf_mapi_OpenMessage_recipients_Reserved;
+static gint hf_mapi_OpenMessage_recipients_codepage;
+static gint hf_mapi_OpenMessage_repl_OutputHandleIndex;
+static gint hf_mapi_OpenMessage_repl_ReturnValue;
+static gint hf_mapi_OpenMessage_repl_repl;
+static gint hf_mapi_OpenMessage_repl_status_Success;
+static gint hf_mapi_OpenMessage_req_CodePageId;
+static gint hf_mapi_OpenMessage_req_FolderId;
+static gint hf_mapi_OpenMessage_req_MessageId;
+static gint hf_mapi_OpenMessage_req_OpenModeFlags;
+static gint hf_mapi_OpenPublicFolderByName_repl_Ghost;
+static gint hf_mapi_OpenPublicFolderByName_repl_HasRules;
+static gint hf_mapi_OpenPublicFolderByName_repl_IsGhosted;
+static gint hf_mapi_OpenPublicFolderByName_req_handle_idx;
+static gint hf_mapi_OpenPublicFolderByName_req_name;
+static gint hf_mapi_OpenRecipientRow_CodePageId;
+static gint hf_mapi_OpenRecipientRow_InputHandleIndex;
+static gint hf_mapi_OpenRecipientRow_LogonId;
+static gint hf_mapi_OpenRecipientRow_RecipientRow;
+static gint hf_mapi_OpenRecipientRow_RecipientType;
+static gint hf_mapi_OpenRecipientRow_Reserved;
+static gint hf_mapi_OpenStream_repl_StreamSize;
+static gint hf_mapi_OpenStream_req_OpenModeFlags;
+static gint hf_mapi_OpenStream_req_PropertyTag;
+static gint hf_mapi_OptionsData_HelpFileName_HelpFileName;
+static gint hf_mapi_OptionsData_repl_HelpFile;
+static gint hf_mapi_OptionsData_repl_HelpFileName;
+static gint hf_mapi_OptionsData_repl_HelpFileSize;
+static gint hf_mapi_OptionsData_repl_OptionsInfo;
+static gint hf_mapi_OptionsData_repl_Reserved;
+static gint hf_mapi_OptionsData_req_AddressType;
+static gint hf_mapi_OptionsData_req_WantWin32;
+static gint hf_mapi_OutputHandleIndex;
+static gint hf_mapi_Pending_repl_SessionIndex;
+static gint hf_mapi_PermissionData_PermissionDataFlags;
+static gint hf_mapi_PermissionData_lpProps;
+static gint hf_mapi_PermissionsTableFlags_IncludeFreeBusy;
+static gint hf_mapi_Progress_repl_CompletedTaskCount;
+static gint hf_mapi_Progress_repl_TotalTaskCount;
+static gint hf_mapi_Progress_req_WantCancel;
+static gint hf_mapi_PropertyProblem_error_code;
+static gint hf_mapi_PropertyProblem_index;
+static gint hf_mapi_PropertyProblem_property_tag;
+static gint hf_mapi_PublicFolderIsGhosted_repl_Ghost;
+static gint hf_mapi_PublicFolderIsGhosted_repl_IsGhosted;
+static gint hf_mapi_PublicFolderIsGhosted_req_FolderId;
+static gint hf_mapi_QueryColumnsAll_repl_PropertyTagCount;
+static gint hf_mapi_QueryColumnsAll_repl_PropertyTags;
+static gint hf_mapi_QueryFlags_NoIds;
+static gint hf_mapi_QueryFlags_NoStrings;
+static gint hf_mapi_QueryNamedProperties_guid_guid;
+static gint hf_mapi_QueryNamedProperties_repl_IdCount;
+static gint hf_mapi_QueryNamedProperties_repl_PropertyIds;
+static gint hf_mapi_QueryNamedProperties_repl_PropertyNames;
+static gint hf_mapi_QueryNamedProperties_req_HasGuid;
+static gint hf_mapi_QueryNamedProperties_req_PropertyGuid;
+static gint hf_mapi_QueryNamedProperties_req_QueryFlags;
+static gint hf_mapi_QueryPosition_repl_Denominator;
+static gint hf_mapi_QueryPosition_repl_Numerator;
+static gint hf_mapi_QueryRows_repl_Origin;
+static gint hf_mapi_QueryRows_repl_RowCount;
+static gint hf_mapi_QueryRows_repl_RowData;
+static gint hf_mapi_QueryRows_req_ForwardRead;
+static gint hf_mapi_QueryRows_req_QueryRowsFlags;
+static gint hf_mapi_QueryRows_req_RowCount;
+static gint hf_mapi_ROPInputBuffer_objectHandles;
+static gint hf_mapi_ROPInputBuffer_rop;
+static gint hf_mapi_ROPInputBuffer_ropSize;
+static gint hf_mapi_ROPOutputBuffer_objectHandles;
+static gint hf_mapi_ROPOutputBuffer_rop;
+static gint hf_mapi_ROPOutputBuffer_ropSize;
+static gint hf_mapi_RPC_HEADER_EXT_Flags;
+static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Compressed;
+static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_Last;
+static gint hf_mapi_RPC_HEADER_EXT_Flags_RHEF_XorMagic;
+static gint hf_mapi_RPC_HEADER_EXT_Size;
+static gint hf_mapi_RPC_HEADER_EXT_SizeActual;
+static gint hf_mapi_RPC_HEADER_EXT_Version;
+static gint hf_mapi_ReadPerUserInformation_repl_Data;
+static gint hf_mapi_ReadPerUserInformation_repl_HasFinished;
+static gint hf_mapi_ReadPerUserInformation_req_DataOffset;
+static gint hf_mapi_ReadPerUserInformation_req_FolderId;
+static gint hf_mapi_ReadPerUserInformation_req_MaxDataSize;
+static gint hf_mapi_ReadPerUserInformation_req_WhatIfChanged;
+static gint hf_mapi_ReadRecipientRow_CodePageId;
+static gint hf_mapi_ReadRecipientRow_RecipientRow;
+static gint hf_mapi_ReadRecipientRow_RecipientType;
+static gint hf_mapi_ReadRecipientRow_RowId;
+static gint hf_mapi_ReadRecipientRow_ulReserved;
+static gint hf_mapi_ReadRecipients_repl_RecipientRows;
+static gint hf_mapi_ReadRecipients_repl_RowCount;
+static gint hf_mapi_ReadRecipients_req_RowId;
+static gint hf_mapi_ReadRecipients_req_ulReserved;
+static gint hf_mapi_ReadStream_repl_data;
+static gint hf_mapi_ReadStream_req_ByteCount;
+static gint hf_mapi_ReadStream_req_MaximumByteCount;
+static gint hf_mapi_ReceiveFolder_fid;
+static gint hf_mapi_ReceiveFolder_lpszMessageClass;
+static gint hf_mapi_ReceiveFolder_modiftime;
+static gint hf_mapi_ReceiveFolder_unknown;
+static gint hf_mapi_RecipExchange_addr_type;
+static gint hf_mapi_RecipExchange_organization_length;
+static gint hf_mapi_RecipExchange_username;
+static gint hf_mapi_RecipientBlock_PropertyValue;
+static gint hf_mapi_RecipientBlock_Reserved;
+static gint hf_mapi_RecipientRow_DisplayName;
+static gint hf_mapi_RecipientRow_EmailAddress;
+static gint hf_mapi_RecipientRow_RecipientFlags;
+static gint hf_mapi_RecipientRow_SimpleDisplayName;
+static gint hf_mapi_RecipientRow_TransmittableDisplayName;
+static gint hf_mapi_RecipientRow_layout;
+static gint hf_mapi_RecipientRow_prop_count;
+static gint hf_mapi_RecipientRow_prop_values;
+static gint hf_mapi_RecipientRow_type;
+static gint hf_mapi_RegisterNotification_req_layout;
+static gint hf_mapi_RegisterNotification_req_notificationFlags;
+static gint hf_mapi_RegisterNotification_req_u;
+static gint hf_mapi_ReloadCachedInformation_repl_HasNamedProperties;
+static gint hf_mapi_ReloadCachedInformation_repl_NormalizedSubject;
+static gint hf_mapi_ReloadCachedInformation_repl_RecipientColumns;
+static gint hf_mapi_ReloadCachedInformation_repl_RecipientCount;
+static gint hf_mapi_ReloadCachedInformation_repl_RecipientRows;
+static gint hf_mapi_ReloadCachedInformation_repl_RowCount;
+static gint hf_mapi_ReloadCachedInformation_repl_SubjectPrefix;
+static gint hf_mapi_ReloadCachedInformation_req_Reserved;
+static gint hf_mapi_RemoveAllRecipients_req_ulReserved;
+static gint hf_mapi_ReplyOOF_Action_ReplyTemplateFID;
+static gint hf_mapi_ReplyOOF_Action_ReplyTemplateGUID;
+static gint hf_mapi_ReplyOOF_Action_ReplyTemplateMID;
+static gint hf_mapi_ResponseFlags_ResponseFlags_OOF;
+static gint hf_mapi_ResponseFlags_ResponseFlags_OwnerRight;
+static gint hf_mapi_ResponseFlags_ResponseFlags_Reserved;
+static gint hf_mapi_ResponseFlags_ResponseFlags_SendAsRight;
+static gint hf_mapi_ResponseHandleIndex;
+static gint hf_mapi_Restrict_repl_TableStatus;
+static gint hf_mapi_Restrict_req_handle_idx;
+static gint hf_mapi_Restrict_req_restrictions;
+static gint hf_mapi_RestrictionVariable_res;
+static gint hf_mapi_RgbInSize;
+static gint hf_mapi_RgbIn_RpcHeaderExtension;
+static gint hf_mapi_RgbIn_ropIn;
+static gint hf_mapi_RgbOutSize;
+static gint hf_mapi_RgbOut_RpcHeaderExtension;
+static gint hf_mapi_RgbOut_ropOut;
+static gint hf_mapi_RopBufferTooSmall_repl_SizeNeeded;
+static gint hf_mapi_RopInput_RopId;
+static gint hf_mapi_RopInput_u;
+static gint hf_mapi_RopOutput_RopId;
+static gint hf_mapi_RopOutput_u;
+static gint hf_mapi_RopReply_Abort;
+static gint hf_mapi_RopReply_AbortSubmit;
+static gint hf_mapi_RopReply_AddressTypes;
+static gint hf_mapi_RopReply_Advise;
+static gint hf_mapi_RopReply_CloneStream;
+static gint hf_mapi_RopReply_CollapseRow;
+static gint hf_mapi_RopReply_CommitStream;
+static gint hf_mapi_RopReply_CopyFolder;
+static gint hf_mapi_RopReply_CopyProperties;
+static gint hf_mapi_RopReply_CopyTo;
+static gint hf_mapi_RopReply_CopyToStream;
+static gint hf_mapi_RopReply_CreateAttach;
+static gint hf_mapi_RopReply_CreateBookmark;
+static gint hf_mapi_RopReply_CreateFolder;
+static gint hf_mapi_RopReply_CreateMessage;
+static gint hf_mapi_RopReply_DeleteAttach;
+static gint hf_mapi_RopReply_DeleteFolder;
+static gint hf_mapi_RopReply_DeleteMessages;
+static gint hf_mapi_RopReply_DeletePropertiesNoReplicate;
+static gint hf_mapi_RopReply_DeleteProps;
+static gint hf_mapi_RopReply_EmptyFolder;
+static gint hf_mapi_RopReply_ExpandRow;
+static gint hf_mapi_RopReply_FastTransferSourceGetBuffer;
+static gint hf_mapi_RopReply_FindRow;
+static gint hf_mapi_RopReply_FreeBookmark;
+static gint hf_mapi_RopReply_GetAttachmentTable;
+static gint hf_mapi_RopReply_GetCollapseState;
+static gint hf_mapi_RopReply_GetContentsTable;
+static gint hf_mapi_RopReply_GetHierarchyTable;
+static gint hf_mapi_RopReply_GetIDsFromNames;
+static gint hf_mapi_RopReply_GetLocalReplicaIds;
+static gint hf_mapi_RopReply_GetNamesFromIDs;
+static gint hf_mapi_RopReply_GetOwningServers;
+static gint hf_mapi_RopReply_GetPerUserGuid;
+static gint hf_mapi_RopReply_GetPerUserLongTermIds;
+static gint hf_mapi_RopReply_GetPermissionsTable;
+static gint hf_mapi_RopReply_GetPropList;
+static gint hf_mapi_RopReply_GetProps;
+static gint hf_mapi_RopReply_GetPropsAll;
+static gint hf_mapi_RopReply_GetReceiveFolder;
+static gint hf_mapi_RopReply_GetReceiveFolderTable;
+static gint hf_mapi_RopReply_GetRulesTable;
+static gint hf_mapi_RopReply_GetSearchCriteria;
+static gint hf_mapi_RopReply_GetStatus;
+static gint hf_mapi_RopReply_GetStoreState;
+static gint hf_mapi_RopReply_GetStreamSize;
+static gint hf_mapi_RopReply_GetTransportFolder;
+static gint hf_mapi_RopReply_GetValidAttachments;
+static gint hf_mapi_RopReply_HardDeleteMessages;
+static gint hf_mapi_RopReply_HardDeleteMessagesAndSubfolders;
+static gint hf_mapi_RopReply_IdFromLongTermId;
+static gint hf_mapi_RopReply_LockRegionStream;
+static gint hf_mapi_RopReply_Logon;
+static gint hf_mapi_RopReply_LongTermIdFromId;
+static gint hf_mapi_RopReply_ModifyPermissions;
+static gint hf_mapi_RopReply_ModifyRecipients;
+static gint hf_mapi_RopReply_ModifyRules;
+static gint hf_mapi_RopReply_MoveCopyMessages;
+static gint hf_mapi_RopReply_MoveFolder;
+static gint hf_mapi_RopReply_Notify;
+static gint hf_mapi_RopReply_OpenAttach;
+static gint hf_mapi_RopReply_OpenEmbeddedMessage;
+static gint hf_mapi_RopReply_OpenFolder;
+static gint hf_mapi_RopReply_OpenMessage;
+static gint hf_mapi_RopReply_OpenPublicFolderByName;
+static gint hf_mapi_RopReply_OpenStream;
+static gint hf_mapi_RopReply_OptionsData;
+static gint hf_mapi_RopReply_Pending;
+static gint hf_mapi_RopReply_Progress;
+static gint hf_mapi_RopReply_PublicFolderIsGhosted;
+static gint hf_mapi_RopReply_QueryColumnsAll;
+static gint hf_mapi_RopReply_QueryNamedProperties;
+static gint hf_mapi_RopReply_QueryPosition;
+static gint hf_mapi_RopReply_QueryRows;
+static gint hf_mapi_RopReply_ReadPerUserInformation;
+static gint hf_mapi_RopReply_ReadRecipients;
+static gint hf_mapi_RopReply_ReadStream;
+static gint hf_mapi_RopReply_Release;
+static gint hf_mapi_RopReply_ReloadCachedInformation;
+static gint hf_mapi_RopReply_RemoveAllRecipients;
+static gint hf_mapi_RopReply_ResetTable;
+static gint hf_mapi_RopReply_Restrict;
+static gint hf_mapi_RopReply_RopBufferTooSmall;
+static gint hf_mapi_RopReply_SaveChangesAttachment;
+static gint hf_mapi_RopReply_SaveChangesMessage;
+static gint hf_mapi_RopReply_SeekRow;
+static gint hf_mapi_RopReply_SeekRowApprox;
+static gint hf_mapi_RopReply_SeekRowBookmark;
+static gint hf_mapi_RopReply_SeekStream;
+static gint hf_mapi_RopReply_SetCollapseState;
+static gint hf_mapi_RopReply_SetColumns;
+static gint hf_mapi_RopReply_SetMessageReadFlag;
+static gint hf_mapi_RopReply_SetMessageStatus;
+static gint hf_mapi_RopReply_SetPropertiesNoReplicate;
+static gint hf_mapi_RopReply_SetProps;
+static gint hf_mapi_RopReply_SetReadFlags;
+static gint hf_mapi_RopReply_SetReceiveFolder;
+static gint hf_mapi_RopReply_SetSearchCriteria;
+static gint hf_mapi_RopReply_SetSpooler;
+static gint hf_mapi_RopReply_SetStreamSize;
+static gint hf_mapi_RopReply_SetSyncNotificationGuid;
+static gint hf_mapi_RopReply_SortTable;
+static gint hf_mapi_RopReply_SpoolerLockMessage;
+static gint hf_mapi_RopReply_SubmitMessage;
+static gint hf_mapi_RopReply_SyncConfigure;
+static gint hf_mapi_RopReply_SyncGetTransferState;
+static gint hf_mapi_RopReply_SyncImportDeletes;
+static gint hf_mapi_RopReply_SyncImportHierarchyChange;
+static gint hf_mapi_RopReply_SyncImportMessageChange;
+static gint hf_mapi_RopReply_SyncImportMessageMove;
+static gint hf_mapi_RopReply_SyncImportReadStateChanges;
+static gint hf_mapi_RopReply_SyncOpenCollector;
+static gint hf_mapi_RopReply_SyncUploadStateStreamBegin;
+static gint hf_mapi_RopReply_SyncUploadStateStreamContinue;
+static gint hf_mapi_RopReply_SyncUploadStateStreamEnd;
+static gint hf_mapi_RopReply_TransportNewMail;
+static gint hf_mapi_RopReply_TransportSend;
+static gint hf_mapi_RopReply_UnlockRegionStream;
+static gint hf_mapi_RopReply_UpdateDeferredActionMessages;
+static gint hf_mapi_RopReply_WriteAndCommitStream;
+static gint hf_mapi_RopReply_WriteStream;
+static gint hf_mapi_RopRequest_Abort;
+static gint hf_mapi_RopRequest_AbortSubmit;
+static gint hf_mapi_RopRequest_AddressTypes;
+static gint hf_mapi_RopRequest_Advise;
+static gint hf_mapi_RopRequest_CloneStream;
+static gint hf_mapi_RopRequest_CollapseRow;
+static gint hf_mapi_RopRequest_CommitStream;
+static gint hf_mapi_RopRequest_CopyFolder;
+static gint hf_mapi_RopRequest_CopyProperties;
+static gint hf_mapi_RopRequest_CopyTo;
+static gint hf_mapi_RopRequest_CopyToStream;
+static gint hf_mapi_RopRequest_CreateAttach;
+static gint hf_mapi_RopRequest_CreateBookmark;
+static gint hf_mapi_RopRequest_CreateFolder;
+static gint hf_mapi_RopRequest_CreateMessage;
+static gint hf_mapi_RopRequest_DeleteAttach;
+static gint hf_mapi_RopRequest_DeleteFolder;
+static gint hf_mapi_RopRequest_DeleteMessages;
+static gint hf_mapi_RopRequest_DeletePropertiesNoReplicate;
+static gint hf_mapi_RopRequest_DeleteProps;
+static gint hf_mapi_RopRequest_EmptyFolder;
+static gint hf_mapi_RopRequest_ExpandRow;
+static gint hf_mapi_RopRequest_FastTransferSourceGetBuffer;
+static gint hf_mapi_RopRequest_FindRow;
+static gint hf_mapi_RopRequest_FreeBookmark;
+static gint hf_mapi_RopRequest_GetAttachmentTable;
+static gint hf_mapi_RopRequest_GetCollapseState;
+static gint hf_mapi_RopRequest_GetContentsTable;
+static gint hf_mapi_RopRequest_GetHierarchyTable;
+static gint hf_mapi_RopRequest_GetIDsFromNames;
+static gint hf_mapi_RopRequest_GetLocalReplicaIds;
+static gint hf_mapi_RopRequest_GetMessageStatus;
+static gint hf_mapi_RopRequest_GetNamesFromIDs;
+static gint hf_mapi_RopRequest_GetOwningServers;
+static gint hf_mapi_RopRequest_GetPerUserGuid;
+static gint hf_mapi_RopRequest_GetPerUserLongTermIds;
+static gint hf_mapi_RopRequest_GetPermissionsTable;
+static gint hf_mapi_RopRequest_GetPropList;
+static gint hf_mapi_RopRequest_GetProps;
+static gint hf_mapi_RopRequest_GetPropsAll;
+static gint hf_mapi_RopRequest_GetReceiveFolder;
+static gint hf_mapi_RopRequest_GetReceiveFolderTable;
+static gint hf_mapi_RopRequest_GetRulesTable;
+static gint hf_mapi_RopRequest_GetSearchCriteria;
+static gint hf_mapi_RopRequest_GetStatus;
+static gint hf_mapi_RopRequest_GetStoreState;
+static gint hf_mapi_RopRequest_GetStreamSize;
+static gint hf_mapi_RopRequest_GetTransportFolder;
+static gint hf_mapi_RopRequest_GetValidAttachments;
+static gint hf_mapi_RopRequest_HardDeleteMessages;
+static gint hf_mapi_RopRequest_HardDeleteMessagesAndSubfolders;
+static gint hf_mapi_RopRequest_IdFromLongTermId;
+static gint hf_mapi_RopRequest_LockRegionStream;
+static gint hf_mapi_RopRequest_Logon;
+static gint hf_mapi_RopRequest_LongTermIdFromId;
+static gint hf_mapi_RopRequest_ModifyPermissions;
+static gint hf_mapi_RopRequest_ModifyRecipients;
+static gint hf_mapi_RopRequest_ModifyRules;
+static gint hf_mapi_RopRequest_MoveCopyMessages;
+static gint hf_mapi_RopRequest_MoveFolder;
+static gint hf_mapi_RopRequest_OpenAttach;
+static gint hf_mapi_RopRequest_OpenEmbeddedMessage;
+static gint hf_mapi_RopRequest_OpenFolder;
+static gint hf_mapi_RopRequest_OpenMessage;
+static gint hf_mapi_RopRequest_OpenPublicFolderByName;
+static gint hf_mapi_RopRequest_OpenStream;
+static gint hf_mapi_RopRequest_OptionsData;
+static gint hf_mapi_RopRequest_Progress;
+static gint hf_mapi_RopRequest_PublicFolderIsGhosted;
+static gint hf_mapi_RopRequest_QueryColumnsAll;
+static gint hf_mapi_RopRequest_QueryNamedProperties;
+static gint hf_mapi_RopRequest_QueryPosition;
+static gint hf_mapi_RopRequest_QueryRows;
+static gint hf_mapi_RopRequest_ReadPerUserInformation;
+static gint hf_mapi_RopRequest_ReadRecipients;
+static gint hf_mapi_RopRequest_ReadStream;
+static gint hf_mapi_RopRequest_Release;
+static gint hf_mapi_RopRequest_ReloadCachedInformation;
+static gint hf_mapi_RopRequest_RemoveAllRecipients;
+static gint hf_mapi_RopRequest_ResetTable;
+static gint hf_mapi_RopRequest_Restrict;
+static gint hf_mapi_RopRequest_SaveChangesAttachment;
+static gint hf_mapi_RopRequest_SaveChangesMessage;
+static gint hf_mapi_RopRequest_SeekRow;
+static gint hf_mapi_RopRequest_SeekRowApprox;
+static gint hf_mapi_RopRequest_SeekRowBookmark;
+static gint hf_mapi_RopRequest_SeekStream;
+static gint hf_mapi_RopRequest_SetCollapseState;
+static gint hf_mapi_RopRequest_SetColumns;
+static gint hf_mapi_RopRequest_SetMessageReadFlag;
+static gint hf_mapi_RopRequest_SetMessageStatus;
+static gint hf_mapi_RopRequest_SetPropertiesNoReplicate;
+static gint hf_mapi_RopRequest_SetProps;
+static gint hf_mapi_RopRequest_SetReadFlags;
+static gint hf_mapi_RopRequest_SetReceiveFolder;
+static gint hf_mapi_RopRequest_SetSearchCriteria;
+static gint hf_mapi_RopRequest_SetSpooler;
+static gint hf_mapi_RopRequest_SetStreamSize;
+static gint hf_mapi_RopRequest_SetSyncNotificationGuid;
+static gint hf_mapi_RopRequest_SortTable;
+static gint hf_mapi_RopRequest_SpoolerLockMessage;
+static gint hf_mapi_RopRequest_SubmitMessage;
+static gint hf_mapi_RopRequest_SyncConfigure;
+static gint hf_mapi_RopRequest_SyncGetTransferState;
+static gint hf_mapi_RopRequest_SyncImportDeletes;
+static gint hf_mapi_RopRequest_SyncImportHierarchyChange;
+static gint hf_mapi_RopRequest_SyncImportMessageChange;
+static gint hf_mapi_RopRequest_SyncImportMessageMove;
+static gint hf_mapi_RopRequest_SyncImportReadStateChanges;
+static gint hf_mapi_RopRequest_SyncOpenCollector;
+static gint hf_mapi_RopRequest_SyncUploadStateStreamBegin;
+static gint hf_mapi_RopRequest_SyncUploadStateStreamContinue;
+static gint hf_mapi_RopRequest_SyncUploadStateStreamEnd;
+static gint hf_mapi_RopRequest_TransportNewMail;
+static gint hf_mapi_RopRequest_TransportSend;
+static gint hf_mapi_RopRequest_UnlockRegionStream;
+static gint hf_mapi_RopRequest_UpdateDeferredActionMessages;
+static gint hf_mapi_RopRequest_WriteAndCommitStream;
+static gint hf_mapi_RopRequest_WriteStream;
+static gint hf_mapi_RpcExt2Flags_Chain;
+static gint hf_mapi_RpcExt2Flags_NoCompression;
+static gint hf_mapi_RpcExt2Flags_NoXorMagic;
+static gint hf_mapi_RuleAction_ActionBlock;
+static gint hf_mapi_RuleAction_count;
+static gint hf_mapi_RuleData_PropertyValues;
+static gint hf_mapi_RuleData_RuleDataFlags;
+static gint hf_mapi_RulesTableFlags_RulesTableFlags_Unicode;
+static gint hf_mapi_SBinary_short_cb;
+static gint hf_mapi_SBinary_short_lpb;
+static gint hf_mapi_SRestriction_and_res;
+static gint hf_mapi_SRestriction_and_rt;
+static gint hf_mapi_SRestriction_comment_res;
+static gint hf_mapi_SRestriction_comment_rt;
+static gint hf_mapi_SRestriction_or_res;
+static gint hf_mapi_SRestriction_or_rt;
+static gint hf_mapi_SRestriction_sub_res;
+static gint hf_mapi_SRestriction_sub_rt;
+static gint hf_mapi_SSortOrderSet_aSort;
+static gint hf_mapi_SSortOrderSet_cCategories;
+static gint hf_mapi_SSortOrderSet_cExpanded;
+static gint hf_mapi_SSortOrderSet_cSorts;
+static gint hf_mapi_SSortOrder_ulOrder;
+static gint hf_mapi_SSortOrder_ulPropTag;
+static gint hf_mapi_SaveChangesAttachment_req_SaveFlags;
+static gint hf_mapi_SaveChangesMessage_repl_MessageId;
+static gint hf_mapi_SaveChangesMessage_repl_handle_idx;
+static gint hf_mapi_SaveChangesMessage_req_SaveFlags;
+static gint hf_mapi_SearchCompleteNotification_FID;
+static gint hf_mapi_SearchFlags_BACKGROUND_SEARCH;
+static gint hf_mapi_SearchFlags_CONTENT_INDEXED_SEARCH;
+static gint hf_mapi_SearchFlags_FOREGROUND_SEARCH;
+static gint hf_mapi_SearchFlags_NON_CONTENT_INDEXED_SEARCH;
+static gint hf_mapi_SearchFlags_RECURSIVE_SEARCH;
+static gint hf_mapi_SearchFlags_RESTART_SEARCH;
+static gint hf_mapi_SearchFlags_SHALLOW_SEARCH;
+static gint hf_mapi_SearchFlags_STATIC_SEARCH;
+static gint hf_mapi_SearchFlags_STOP_SEARCH;
+static gint hf_mapi_SearchMessageCreatedNotification_FID;
+static gint hf_mapi_SearchMessageCreatedNotification_MID;
+static gint hf_mapi_SearchMessageCreatedNotification_SearchFID;
+static gint hf_mapi_SearchMessageCreatedNotification_TagCount;
+static gint hf_mapi_SearchMessageCreatedNotification_Tags;
+static gint hf_mapi_SearchMessageModifiedNotification_FID;
+static gint hf_mapi_SearchMessageModifiedNotification_MID;
+static gint hf_mapi_SearchMessageModifiedNotification_TagCount;
+static gint hf_mapi_SearchMessageModifiedNotification_Tags;
+static gint hf_mapi_SearchMessageRemovedNotification_FID;
+static gint hf_mapi_SearchMessageRemovedNotification_MID;
+static gint hf_mapi_SearchMessageRemovedNotification_SearchFID;
+static gint hf_mapi_SeekRowApprox_req_ulDenominator;
+static gint hf_mapi_SeekRowApprox_req_ulNumerator;
+static gint hf_mapi_SeekRowBookmark_repl_HasSoughtLess;
+static gint hf_mapi_SeekRowBookmark_repl_RowNoLongerVisible;
+static gint hf_mapi_SeekRowBookmark_repl_RowsSought;
+static gint hf_mapi_SeekRowBookmark_req_Bookmark;
+static gint hf_mapi_SeekRowBookmark_req_RowCount;
+static gint hf_mapi_SeekRowBookmark_req_WantRowMovedCount;
+static gint hf_mapi_SeekRow_repl_HasSoughtLess;
+static gint hf_mapi_SeekRow_repl_RowsSought;
+static gint hf_mapi_SeekRow_req_WantRowMovedCount;
+static gint hf_mapi_SeekRow_req_offset;
+static gint hf_mapi_SeekRow_req_origin;
+static gint hf_mapi_SeekStream_repl_NewPosition;
+static gint hf_mapi_SeekStream_req_Offset;
+static gint hf_mapi_SeekStream_req_Origin;
+static gint hf_mapi_SendOptions_SendOptions_ForUpload;
+static gint hf_mapi_SendOptions_SendOptions_ForceUnicode;
+static gint hf_mapi_SendOptions_SendOptions_Partial;
+static gint hf_mapi_SendOptions_SendOptions_RecoverMode;
+static gint hf_mapi_SendOptions_SendOptions_Unicode;
+static gint hf_mapi_SetCollapseState_repl_bookmark;
+static gint hf_mapi_SetCollapseState_req_CollapseState;
+static gint hf_mapi_SetColumns_repl_TableStatus;
+static gint hf_mapi_SetColumns_req_SetColumnsFlags;
+static gint hf_mapi_SetColumns_req_prop_count;
+static gint hf_mapi_SetColumns_req_properties;
+static gint hf_mapi_SetMessageReadFlag_ClientData_ClientData;
+static gint hf_mapi_SetMessageReadFlag_LogonId_LogonId;
+static gint hf_mapi_SetMessageReadFlag_repl_ClientData;
+static gint hf_mapi_SetMessageReadFlag_repl_LogonId;
+static gint hf_mapi_SetMessageReadFlag_repl_ReadStatusChanged;
+static gint hf_mapi_SetMessageReadFlag_req_ReadFlags;
+static gint hf_mapi_SetMessageReadFlag_req_clientdata;
+static gint hf_mapi_SetMessageStatus_repl_ulOldStatus;
+static gint hf_mapi_SetMessageStatus_req_msgid;
+static gint hf_mapi_SetMessageStatus_req_ulNewStatus;
+static gint hf_mapi_SetMessageStatus_req_ulNewStatusMask;
+static gint hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblem;
+static gint hf_mapi_SetPropertiesNoReplicate_repl_PropertyProblemCount;
+static gint hf_mapi_SetPropertiesNoReplicate_req_values;
+static gint hf_mapi_SetProps_repl_PropertyProblem;
+static gint hf_mapi_SetProps_repl_PropertyProblemCount;
+static gint hf_mapi_SetProps_req_values;
+static gint hf_mapi_SetReadFlags_repl_PartialCompletion;
+static gint hf_mapi_SetReadFlags_req_MessageIdCount;
+static gint hf_mapi_SetReadFlags_req_MessageIds;
+static gint hf_mapi_SetReadFlags_req_ReadFlags;
+static gint hf_mapi_SetReadFlags_req_WantAsynchronous;
+static gint hf_mapi_SetReceiveFolder_req_fid;
+static gint hf_mapi_SetReceiveFolder_req_lpszMessageClass;
+static gint hf_mapi_SetSearchCriteria_req_FolderIdCount;
+static gint hf_mapi_SetSearchCriteria_req_FolderIds;
+static gint hf_mapi_SetSearchCriteria_req_SearchFlags;
+static gint hf_mapi_SetSearchCriteria_req_res;
+static gint hf_mapi_SetStreamSize_req_SizeStream;
+static gint hf_mapi_SetSyncNotificationGuid_req_NotificationGuid;
+static gint hf_mapi_ShortArray_r_cValues;
+static gint hf_mapi_ShortArray_r_lpi;
+static gint hf_mapi_SortTable_repl_TableStatus;
+static gint hf_mapi_SortTable_req_SortTableFlags;
+static gint hf_mapi_SortTable_req_lpSortCriteria;
+static gint hf_mapi_SpoolerLockMessage_req_LockState;
+static gint hf_mapi_SpoolerLockMessage_req_MessageId;
+static gint hf_mapi_StoreState_STORE_HAS_SEARCHES;
+static gint hf_mapi_String_lpszA;
+static gint hf_mapi_String_lpszW;
+static gint hf_mapi_String_lpszW_reduced;
+static gint hf_mapi_SubmitMessage_req_SubmitFlags;
+static gint hf_mapi_SyncConfigure_req_PropertyTags;
+static gint hf_mapi_SyncConfigure_req_RestrictionData;
+static gint hf_mapi_SyncConfigure_req_SendOptions;
+static gint hf_mapi_SyncConfigure_req_SynchronizationExtraFlags;
+static gint hf_mapi_SyncConfigure_req_SynchronizationFlag;
+static gint hf_mapi_SyncConfigure_req_SynchronizationType;
+static gint hf_mapi_SyncImportDeletes_req_IsHierarchy;
+static gint hf_mapi_SyncImportDeletes_req_PropertyValues;
+static gint hf_mapi_SyncImportHierarchyChange_repl_FolderId;
+static gint hf_mapi_SyncImportHierarchyChange_req_HierarchyValues;
+static gint hf_mapi_SyncImportHierarchyChange_req_PropertyValues;
+static gint hf_mapi_SyncImportMessageChange_repl_MessageId;
+static gint hf_mapi_SyncImportMessageChange_req_ImportFlag;
+static gint hf_mapi_SyncImportMessageChange_req_PropertyValues;
+static gint hf_mapi_SyncImportMessageMove_repl_MessageId;
+static gint hf_mapi_SyncImportMessageMove_req_ChangeNumberSize;
+static gint hf_mapi_SyncImportMessageMove_req_ChangeNumberValue;
+static gint hf_mapi_SyncImportMessageMove_req_DestinationMessageIdSize;
+static gint hf_mapi_SyncImportMessageMove_req_DestinationMessageIdValue;
+static gint hf_mapi_SyncImportMessageMove_req_PredecessorChangeListSize;
+static gint hf_mapi_SyncImportMessageMove_req_PredecessorChangeListValue;
+static gint hf_mapi_SyncImportMessageMove_req_SourceFolderIdSize;
+static gint hf_mapi_SyncImportMessageMove_req_SourceFolderIdValue;
+static gint hf_mapi_SyncImportMessageMove_req_SourceMessageIdSize;
+static gint hf_mapi_SyncImportMessageMove_req_SourceMessageIdValue;
+static gint hf_mapi_SyncImportReadStateChanges_req_MessageStates;
+static gint hf_mapi_SyncOpenCollector_req_IsContentsCollector;
+static gint hf_mapi_SyncUploadStateStreamBegin_req_StateProperty;
+static gint hf_mapi_SyncUploadStateStreamBegin_req_TransferBufferSize;
+static gint hf_mapi_SyncUploadStateStreamContinue_req_StreamDataSize;
+static gint hf_mapi_SyncUploadStateStreamContinue_req_StreamDataValue;
+static gint hf_mapi_SynchronizationExtraFlags_Cn;
+static gint hf_mapi_SynchronizationExtraFlags_Eid;
+static gint hf_mapi_SynchronizationExtraFlags_MessageSize;
+static gint hf_mapi_SynchronizationExtraFlags_OrderByDeliveryTime;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_BestBody;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_FAI;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_IgnoreSpecifiedOnFAI;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoDeletions;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoForeignIdentifiers;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_NoSoftDeletions;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Normal;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_OnlySpecifiedProperties;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Progress;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_ReadState;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Reserved;
+static gint hf_mapi_SynchronizationFlag_SynchronizationFlag_Unicode;
+static gint hf_mapi_TableFlags_TableFlags_DeferredErrors;
+static gint hf_mapi_TableFlags_TableFlags_Depth;
+static gint hf_mapi_TableFlags_TableFlags_NoNotifications;
+static gint hf_mapi_TableFlags_TableFlags_SoftDeletes;
+static gint hf_mapi_TableFlags_TableFlags_SuppressNotifications;
+static gint hf_mapi_TableFlags_TableFlags_UseUnicode;
+static gint hf_mapi_TransportNewMail_req_FolderId;
+static gint hf_mapi_TransportNewMail_req_MessageClass;
+static gint hf_mapi_TransportNewMail_req_MessageFlags;
+static gint hf_mapi_TransportNewMail_req_MessageId;
+static gint hf_mapi_TransportSend_lpProps_lpProps;
+static gint hf_mapi_TransportSend_repl_NoPropertiesReturned;
+static gint hf_mapi_TransportSend_repl_properties;
+static gint hf_mapi_TypedString_String;
+static gint hf_mapi_TypedString_StringType;
+static gint hf_mapi_UnlockRegionStream_req_LockFlags;
+static gint hf_mapi_UnlockRegionStream_req_RegionOffset;
+static gint hf_mapi_UnlockRegionStream_req_RegionSize;
+static gint hf_mapi_UpdateDeferredActionMessages_req_ClientEntryId;
+static gint hf_mapi_UpdateDeferredActionMessages_req_ServerEntryId;
+static gint hf_mapi_WriteAndCommitStream_repl_WrittenSize;
+static gint hf_mapi_WriteAndCommitStream_req_data;
+static gint hf_mapi_WriteStream_repl_WrittenSize;
+static gint hf_mapi_WriteStream_req_data;
+static gint hf_mapi_decrypted_data;
+static gint hf_mapi_fuzzyLevel_FL_IGNORECASE;
+static gint hf_mapi_fuzzyLevel_FL_IGNORENONSPACE;
+static gint hf_mapi_fuzzyLevel_FL_LOOSE;
+static gint hf_mapi_fuzzyLevel_FL_PREFIX;
+static gint hf_mapi_fuzzyLevel_FL_SUBSTRING;
+static gint hf_mapi_hyperbool_ID;
+static gint hf_mapi_mapi_EcDoAsyncConnectEx_cxh;
+static gint hf_mapi_mapi_EcDoAsyncConnectEx_pacxh;
+static gint hf_mapi_mapi_EcDoAsyncConnect_cxh;
+static gint hf_mapi_mapi_EcDoAsyncConnect_pacxh;
+static gint hf_mapi_mapi_EcDoAsyncWait_cxh;
+static gint hf_mapi_mapi_EcDoAsyncWait_pulFlagsOut;
+static gint hf_mapi_mapi_EcDoAsyncWait_ulFlagsIn;
+static gint hf_mapi_mapi_EcDoConnectEx_cbAuxIn;
+static gint hf_mapi_mapi_EcDoConnectEx_cbLimit;
+static gint hf_mapi_mapi_EcDoConnectEx_handle;
+static gint hf_mapi_mapi_EcDoConnectEx_pcRetry;
+static gint hf_mapi_mapi_EcDoConnectEx_pcbAuxOut;
+static gint hf_mapi_mapi_EcDoConnectEx_pcmsPollsMax;
+static gint hf_mapi_mapi_EcDoConnectEx_pcmsRetryDelay;
+static gint hf_mapi_mapi_EcDoConnectEx_picxr;
+static gint hf_mapi_mapi_EcDoConnectEx_pulTimeStamp;
+static gint hf_mapi_mapi_EcDoConnectEx_rgbAuxIn;
+static gint hf_mapi_mapi_EcDoConnectEx_rgbAuxOut;
+static gint hf_mapi_mapi_EcDoConnectEx_rgwBestVersion;
+static gint hf_mapi_mapi_EcDoConnectEx_rgwClientVersion;
+static gint hf_mapi_mapi_EcDoConnectEx_rgwServerVersion;
+static gint hf_mapi_mapi_EcDoConnectEx_szDNPrefix;
+static gint hf_mapi_mapi_EcDoConnectEx_szDisplayName;
+static gint hf_mapi_mapi_EcDoConnectEx_szUserDN;
+static gint hf_mapi_mapi_EcDoConnectEx_ulConMod;
+static gint hf_mapi_mapi_EcDoConnectEx_ulCpid;
+static gint hf_mapi_mapi_EcDoConnectEx_ulFlags;
+static gint hf_mapi_mapi_EcDoConnectEx_ulIcxrLink;
+static gint hf_mapi_mapi_EcDoConnectEx_ulLcidSort;
+static gint hf_mapi_mapi_EcDoConnectEx_ulLcidString;
+static gint hf_mapi_mapi_EcDoConnectEx_usFCanConvertCodePages;
+static gint hf_mapi_mapi_EcDoConnect_cbLimit;
+static gint hf_mapi_mapi_EcDoConnect_hBinding;
+static gint hf_mapi_mapi_EcDoConnect_pcRetry;
+static gint hf_mapi_mapi_EcDoConnect_pcmsPollsMax;
+static gint hf_mapi_mapi_EcDoConnect_pcmsRetryDelay;
+static gint hf_mapi_mapi_EcDoConnect_picxr;
+static gint hf_mapi_mapi_EcDoConnect_pullTimeStamp;
+static gint hf_mapi_mapi_EcDoConnect_rgwBestVersion;
+static gint hf_mapi_mapi_EcDoConnect_rgwClientVersion;
+static gint hf_mapi_mapi_EcDoConnect_rgwServerVersion;
+static gint hf_mapi_mapi_EcDoConnect_szDNPrefix;
+static gint hf_mapi_mapi_EcDoConnect_szDisplayName;
+static gint hf_mapi_mapi_EcDoConnect_szUserDN;
+static gint hf_mapi_mapi_EcDoConnect_ulConMod;
+static gint hf_mapi_mapi_EcDoConnect_ulCpid;
+static gint hf_mapi_mapi_EcDoConnect_ulFlags;
+static gint hf_mapi_mapi_EcDoConnect_ulIcxrLink;
+static gint hf_mapi_mapi_EcDoConnect_ulLcidSort;
+static gint hf_mapi_mapi_EcDoConnect_ulLcidString;
+static gint hf_mapi_mapi_EcDoConnect_usFCanConvertCodePages;
+static gint hf_mapi_mapi_EcDoDisconnect_pcxh;
+static gint hf_mapi_mapi_EcDoRpcExt2_cbAuxIn;
+static gint hf_mapi_mapi_EcDoRpcExt2_cbIn;
+static gint hf_mapi_mapi_EcDoRpcExt2_pcbAuxOut;
+static gint hf_mapi_mapi_EcDoRpcExt2_pcbOut;
+static gint hf_mapi_mapi_EcDoRpcExt2_pcxh;
+static gint hf_mapi_mapi_EcDoRpcExt2_pulFlags;
+static gint hf_mapi_mapi_EcDoRpcExt2_pulTransTime;
+static gint hf_mapi_mapi_EcDoRpcExt2_rgbAuxIn;
+static gint hf_mapi_mapi_EcDoRpcExt2_rgbAuxOut;
+static gint hf_mapi_mapi_EcDoRpcExt2_rgbIn;
+static gint hf_mapi_mapi_EcDoRpcExt2_rgbOut;
+static gint hf_mapi_mapi_EcDoRpcExt_cbAuxIn;
+static gint hf_mapi_mapi_EcDoRpcExt_cbIn;
+static gint hf_mapi_mapi_EcDoRpcExt_pcbOut;
+static gint hf_mapi_mapi_EcDoRpcExt_pcxh;
+static gint hf_mapi_mapi_EcDoRpcExt_pulFlags;
+static gint hf_mapi_mapi_EcDoRpcExt_pulTransTime;
+static gint hf_mapi_mapi_EcDoRpcExt_rgbAuxIn;
+static gint hf_mapi_mapi_EcDoRpcExt_rgbIn;
+static gint hf_mapi_mapi_EcDoRpcExt_rgbOut;
+static gint hf_mapi_mapi_EcDoRpc_handle;
+static gint hf_mapi_mapi_EcDoRpc_length;
+static gint hf_mapi_mapi_EcDoRpc_mapi_request;
+static gint hf_mapi_mapi_EcDoRpc_mapi_response;
+static gint hf_mapi_mapi_EcDoRpc_max_data;
+static gint hf_mapi_mapi_EcDoRpc_offset;
+static gint hf_mapi_mapi_EcDoRpc_size;
+static gint hf_mapi_mapi_EcGetMoreRpc_pcxh;
+static gint hf_mapi_mapi_EcGetMoreRpc_pusLength;
+static gint hf_mapi_mapi_EcGetMoreRpc_rgb;
+static gint hf_mapi_mapi_EcGetMoreRpc_usSize;
+static gint hf_mapi_mapi_EcRGetDCName_handle;
+static gint hf_mapi_mapi_EcRGetDCName_rgchDomainController;
+static gint hf_mapi_mapi_EcRGetDCName_szDomainName;
+static gint hf_mapi_mapi_EcRNetGetDCName_rgchDomainController;
+static gint hf_mapi_mapi_EcRNetGetDCName_szDomainName;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_cbCallbackAddress;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_cbContext;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_grbitMapiAdviseBits;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_hNotification;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_handle;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_iRpc;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_rgbCallbackAddress;
+static gint hf_mapi_mapi_EcRRegisterPushNotification_rgbContext;
+static gint hf_mapi_mapi_EcRUnregisterPushNotification_hNotification;
+static gint hf_mapi_mapi_EcRUnregisterPushNotification_handle;
+static gint hf_mapi_mapi_EcRUnregisterPushNotification_iRpc;
+static gint hf_mapi_mapi_LPSTR_lppszA;
+static gint hf_mapi_mapi_LPWSTR_lppszW;
+static gint hf_mapi_mapi_MV_LONG_STRUCT_cValues;
+static gint hf_mapi_mapi_MV_LONG_STRUCT_lpl;
+static gint hf_mapi_mapi_PermissionsData_ModifyCount;
+static gint hf_mapi_mapi_PermissionsData_ModifyFlags;
+static gint hf_mapi_mapi_PermissionsData_PermissionsData;
+static gint hf_mapi_mapi_SAndRestriction_cRes;
+static gint hf_mapi_mapi_SAndRestriction_res;
+static gint hf_mapi_mapi_SBinaryArray_bin;
+static gint hf_mapi_mapi_SBinaryArray_cValues;
+static gint hf_mapi_mapi_SBitmaskRestriction_relMBR;
+static gint hf_mapi_mapi_SBitmaskRestriction_ulMask;
+static gint hf_mapi_mapi_SBitmaskRestriction_ulPropTag;
+static gint hf_mapi_mapi_SCommentRestriction_Restriction;
+static gint hf_mapi_mapi_SCommentRestriction_RestrictionPresent;
+static gint hf_mapi_mapi_SCommentRestriction_TaggedValues;
+static gint hf_mapi_mapi_SCommentRestriction_TaggedValuesCount;
+static gint hf_mapi_mapi_SCompareProps_relop;
+static gint hf_mapi_mapi_SCompareProps_ulPropTag1;
+static gint hf_mapi_mapi_SCompareProps_ulPropTag2;
+static gint hf_mapi_mapi_SContentRestriction_fuzzy;
+static gint hf_mapi_mapi_SContentRestriction_lpProp;
+static gint hf_mapi_mapi_SContentRestriction_ulPropTag;
+static gint hf_mapi_mapi_SExistRestriction_ulPropTag;
+static gint hf_mapi_mapi_SGuidArray_cValues;
+static gint hf_mapi_mapi_SGuidArray_lpguid;
+static gint hf_mapi_mapi_SLPSTRArray_cValues;
+static gint hf_mapi_mapi_SLPSTRArray_strings;
+static gint hf_mapi_mapi_SNotRestriction_res;
+static gint hf_mapi_mapi_SOrRestriction_cRes;
+static gint hf_mapi_mapi_SOrRestriction_res;
+static gint hf_mapi_mapi_SPLSTRArrayW_cValues;
+static gint hf_mapi_mapi_SPLSTRArrayW_strings;
+static gint hf_mapi_mapi_SPropTagArray_aulPropTag;
+static gint hf_mapi_mapi_SPropTagArray_cValues;
+static gint hf_mapi_mapi_SPropValue_CTR_MVbin;
+static gint hf_mapi_mapi_SPropValue_CTR_MVft;
+static gint hf_mapi_mapi_SPropValue_CTR_MVguid;
+static gint hf_mapi_mapi_SPropValue_CTR_MVi;
+static gint hf_mapi_mapi_SPropValue_CTR_MVl;
+static gint hf_mapi_mapi_SPropValue_CTR_MVszA;
+static gint hf_mapi_mapi_SPropValue_CTR_MVszW;
+static gint hf_mapi_mapi_SPropValue_CTR_Restrictions;
+static gint hf_mapi_mapi_SPropValue_CTR_RuleAction;
+static gint hf_mapi_mapi_SPropValue_CTR_b;
+static gint hf_mapi_mapi_SPropValue_CTR_bin;
+static gint hf_mapi_mapi_SPropValue_CTR_d;
+static gint hf_mapi_mapi_SPropValue_CTR_dbl;
+static gint hf_mapi_mapi_SPropValue_CTR_err;
+static gint hf_mapi_mapi_SPropValue_CTR_ft;
+static gint hf_mapi_mapi_SPropValue_CTR_i;
+static gint hf_mapi_mapi_SPropValue_CTR_l;
+static gint hf_mapi_mapi_SPropValue_CTR_lpguid;
+static gint hf_mapi_mapi_SPropValue_CTR_lpszA;
+static gint hf_mapi_mapi_SPropValue_CTR_lpszW;
+static gint hf_mapi_mapi_SPropValue_CTR_null;
+static gint hf_mapi_mapi_SPropValue_CTR_object;
+static gint hf_mapi_mapi_SPropValue_CTR_svreid;
+static gint hf_mapi_mapi_SPropValue_array_cValues;
+static gint hf_mapi_mapi_SPropValue_array_lpProps;
+static gint hf_mapi_mapi_SPropValue_array_wrap_wrap;
+static gint hf_mapi_mapi_SPropValue_ulPropTag;
+static gint hf_mapi_mapi_SPropValue_value;
+static gint hf_mapi_mapi_SPropValue_wrap_wrap;
+static gint hf_mapi_mapi_SPropertyRestriction_lpProp;
+static gint hf_mapi_mapi_SPropertyRestriction_relop;
+static gint hf_mapi_mapi_SPropertyRestriction_ulPropTag;
+static gint hf_mapi_mapi_SRestriction_CTR_resAnd;
+static gint hf_mapi_mapi_SRestriction_CTR_resBitmask;
+static gint hf_mapi_mapi_SRestriction_CTR_resComment;
+static gint hf_mapi_mapi_SRestriction_CTR_resCompareProps;
+static gint hf_mapi_mapi_SRestriction_CTR_resContent;
+static gint hf_mapi_mapi_SRestriction_CTR_resExist;
+static gint hf_mapi_mapi_SRestriction_CTR_resNot;
+static gint hf_mapi_mapi_SRestriction_CTR_resOr;
+static gint hf_mapi_mapi_SRestriction_CTR_resProperty;
+static gint hf_mapi_mapi_SRestriction_CTR_resSize;
+static gint hf_mapi_mapi_SRestriction_CTR_resSub;
+static gint hf_mapi_mapi_SRestriction_res;
+static gint hf_mapi_mapi_SRestriction_rt;
+static gint hf_mapi_mapi_SRestriction_wrap_wrap;
+static gint hf_mapi_mapi_SSizeRestriction_relop;
+static gint hf_mapi_mapi_SSizeRestriction_size;
+static gint hf_mapi_mapi_SSizeRestriction_ulPropTag;
+static gint hf_mapi_mapi_SSubRestriction_res;
+static gint hf_mapi_mapi_SSubRestriction_ulSubObject;
+static gint hf_mapi_mapi_name_Name;
+static gint hf_mapi_mapi_name_NameSize;
+static gint hf_mapi_mapi_request_handles;
+static gint hf_mapi_mapi_request_length;
+static gint hf_mapi_mapi_request_mapi_len;
+static gint hf_mapi_mapi_request_rpcRequest;
+static gint hf_mapi_mapi_response_handles;
+static gint hf_mapi_mapi_response_length;
+static gint hf_mapi_mapi_response_mapi_len;
+static gint hf_mapi_mapi_response_rpcResponse;
+static gint hf_mapi_opnum;
+static gint hf_mapi_recipient_DisplayName_lpszA;
+static gint hf_mapi_recipient_DisplayName_lpszW;
+static gint hf_mapi_recipient_EmailAddress_lpszA;
+static gint hf_mapi_recipient_EmailAddress_lpszW;
+static gint hf_mapi_recipient_SimpleDisplayName_lpszA;
+static gint hf_mapi_recipient_SimpleDisplayName_lpszW;
+static gint hf_mapi_recipient_TransmittableDisplayName_lpszA;
+static gint hf_mapi_recipient_TransmittableDisplayName_lpszW;
+static gint hf_mapi_recipient_type_EXCHANGE;
+static gint hf_mapi_recipient_type_SMTP;
+static gint hf_mapi_ulMessageStatus_MSGSTATUS_DELMARKED;
+static gint hf_mapi_ulMessageStatus_MSGSTATUS_HIDDEN;
+static gint hf_mapi_ulMessageStatus_MSGSTATUS_HIGHLIGHTED;
+static gint hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DELETE;
+static gint hf_mapi_ulMessageStatus_MSGSTATUS_REMOTE_DOWNLOAD;
+static gint hf_mapi_ulMessageStatus_MSGSTATUS_TAGGED;
+static gint hf_mapi_werror;
static gint proto_dcerpc_mapi = -1;
/* Version information */
@@ -8018,7 +8018,7 @@ static int mapi_dissect_element_EcDoAsyncConnectEx_cxh(tvbuff_t *tvb _U_, int of
static int mapi_dissect_element_EcDoAsyncConnectEx_cxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoAsyncConnectEx_pacxh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int mapi_dissect_element_EcDoAsyncConnectEx_pacxh_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-tvbuff_t *
+static tvbuff_t *
mapi_deobfuscate(tvbuff_t *tvb, int offset, packet_info *pinfo, guint32 size)
{
tvbuff_t *deob_tvb = NULL;
@@ -8183,7 +8183,7 @@ mapi_dissect_element_AuxInfo_auxHeader(tvbuff_t *tvb _U_, int offset _U_, packet
}
return offset;
}
-int
+static int
dissect_EcDoConnectEx_AuxInfoOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -8196,7 +8196,7 @@ mapi_dissect_element_EcDoConnectEx_rgbAuxOut_(tvbuff_t *tvb _U_, int offset _U_,
{
return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoConnectEx_AuxInfoOut);
}
-int
+static int
dissect_EcDoRpcExt2_AuxInfoOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -8303,7 +8303,7 @@ mapi_dissect_AUX_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
return offset;
}
}
-int
+static int
mapi_dissect_AUX_HEADER_TYPE_ENUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 Version, int hf_index _U_, guint8 *hdrType)
{
switch(Version) {
@@ -8338,7 +8338,7 @@ mapi_dissect_struct_AUX_HEADER(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
return offset;
}
int
-mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, guint32 param)
{
guint8 opnum = 0;
proto_item *item = NULL;
@@ -8352,14 +8352,14 @@ mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb _U_, int offset _U_, packet
tree = proto_item_add_subtree(item, ett_mapi_EcDoRpcMapiRequest);
}
offset = PIDL_dissect_uint8_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiRequest_opnum, param, &opnum);
- col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str_const(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
offset = mapi_dissect_element_EcDoRpcMapiRequest_u(tvb, offset, pinfo, tree, di, drep, &opnum);
proto_item_set_len(item, offset-old_offset);
di->no_align = oldalign;
return offset;
}
int
-mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+mapi_dissect_struct_request(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
@@ -8413,7 +8413,7 @@ mapi_dissect_element_EcDoConnectEx_szUserDN(tvbuff_t *tvb _U_, int offset _U_, p
return offset;
}
int
-mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, guint32 param)
{
guint8 opnum = 0;
proto_item *item = NULL;
@@ -8426,13 +8426,13 @@ mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb _U_, int offset _U_, packe
tree = proto_item_add_subtree(item, ett_mapi_EcDoRpcMapiResponse);
}
offset = PIDL_dissect_uint8_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiResponse_opnum, param, &opnum);
- col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str_const(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
offset = mapi_dissect_element_EcDoRpcMapiResponse_u(tvb, offset, pinfo, tree, di, drep, &opnum);
proto_item_set_len(item, offset-old_offset);
di->no_align = oldalign;
return offset;
}
-int
+static int
uint32_size_uint8_buffer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_size_index, int hf_buffer_index, guint32 param)
{
guint32 size= 0;
@@ -8586,6 +8586,7 @@ mapi_dissect_struct_Logon_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
#define RHEF_Compressed 0x0001
#define RHEF_XorMagic 0x0002
#define RHEF_Last 0x0004
+static
int dissect_RPC_HEADER_EXT(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, tvbuff_t **ppUncomp_tvb)
{
proto_tree *hTree = NULL;
@@ -8683,7 +8684,7 @@ mapi_dissect_struct_AuxInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf
}
return offset;
}
-int
+static int
mapi_dissect_RgbInOut(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index)
{
proto_item *item = NULL;
@@ -8725,7 +8726,7 @@ mapi_dissect_struct_RgbIn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
{
return mapi_dissect_RgbInOut(tvb, offset, pinfo, parent_tree, di, drep, hf_index);
}
-int
+static int
dissect_EcDoRpcExt2_RgbOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -8738,7 +8739,7 @@ mapi_dissect_element_EcDoRpcExt2_rgbOut_(tvbuff_t *tvb _U_, int offset _U_, pack
{
return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoRpcExt2_RgbOut);
}
-int
+static int
dissect_EcDoRpcExt_RgbOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -45486,7 +45487,7 @@ mapi_dissect_EcDoAsyncConnectEx_request(tvbuff_t *tvb _U_, int offset _U_, packe
}
-static dcerpc_sub_dissector mapi_dissectors[] = {
+static const dcerpc_sub_dissector mapi_dissectors[] = {
{ 0, "EcDoConnect",
mapi_dissect_EcDoConnect_request, mapi_dissect_EcDoConnect_response},
{ 1, "EcDoDisconnect",
diff --git a/epan/dissectors/packet-dcerpc-mdssvc.c b/epan/dissectors/packet-dcerpc-mdssvc.c
index 581f652068..97b6cc35c0 100644
--- a/epan/dissectors/packet-dcerpc-mdssvc.c
+++ b/epan/dissectors/packet-dcerpc-mdssvc.c
@@ -22,55 +22,55 @@ void proto_register_dcerpc_mdssvc(void);
void proto_reg_handoff_dcerpc_mdssvc(void);
/* Ett declarations */
-static gint ett_dcerpc_mdssvc = -1;
-static gint ett_mdssvc_mdssvc_blob = -1;
+static gint ett_dcerpc_mdssvc;
+static gint ett_mdssvc_mdssvc_blob;
/* Header field declarations */
-static gint hf_mdssvc_mdssvc_blob_length = -1;
-static gint hf_mdssvc_mdssvc_blob_size = -1;
-static gint hf_mdssvc_mdssvc_blob_spotlight_blob = -1;
-static gint hf_mdssvc_mdssvc_close_device_id = -1;
-static gint hf_mdssvc_mdssvc_close_in_handle = -1;
-static gint hf_mdssvc_mdssvc_close_out_handle = -1;
-static gint hf_mdssvc_mdssvc_close_status = -1;
-static gint hf_mdssvc_mdssvc_close_unkn1 = -1;
-static gint hf_mdssvc_mdssvc_close_unkn2 = -1;
-static gint hf_mdssvc_mdssvc_close_unkn3 = -1;
-static gint hf_mdssvc_mdssvc_cmd_device_id = -1;
-static gint hf_mdssvc_mdssvc_cmd_flags = -1;
-static gint hf_mdssvc_mdssvc_cmd_fragment = -1;
-static gint hf_mdssvc_mdssvc_cmd_handle = -1;
-static gint hf_mdssvc_mdssvc_cmd_max_fragment_size1 = -1;
-static gint hf_mdssvc_mdssvc_cmd_max_fragment_size2 = -1;
-static gint hf_mdssvc_mdssvc_cmd_request_blob = -1;
-static gint hf_mdssvc_mdssvc_cmd_response_blob = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn1 = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn3 = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn4 = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn5 = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn6 = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn7 = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn8 = -1;
-static gint hf_mdssvc_mdssvc_cmd_unkn9 = -1;
-static gint hf_mdssvc_mdssvc_open_device_id = -1;
-static gint hf_mdssvc_mdssvc_open_handle = -1;
-static gint hf_mdssvc_mdssvc_open_share_mount_path = -1;
-static gint hf_mdssvc_mdssvc_open_share_name = -1;
-static gint hf_mdssvc_mdssvc_open_share_path = -1;
-static gint hf_mdssvc_mdssvc_open_unkn2 = -1;
-static gint hf_mdssvc_mdssvc_open_unkn3 = -1;
-static gint hf_mdssvc_mdssvc_unknown1_device_id = -1;
-static gint hf_mdssvc_mdssvc_unknown1_flags = -1;
-static gint hf_mdssvc_mdssvc_unknown1_gid = -1;
-static gint hf_mdssvc_mdssvc_unknown1_handle = -1;
-static gint hf_mdssvc_mdssvc_unknown1_status = -1;
-static gint hf_mdssvc_mdssvc_unknown1_uid = -1;
-static gint hf_mdssvc_mdssvc_unknown1_unkn1 = -1;
-static gint hf_mdssvc_mdssvc_unknown1_unkn3 = -1;
-static gint hf_mdssvc_mdssvc_unknown1_unkn4 = -1;
-static gint hf_mdssvc_mdssvc_unknown1_unkn7 = -1;
-static gint hf_mdssvc_opnum = -1;
+static gint hf_mdssvc_mdssvc_blob_length;
+static gint hf_mdssvc_mdssvc_blob_size;
+static gint hf_mdssvc_mdssvc_blob_spotlight_blob;
+static gint hf_mdssvc_mdssvc_close_device_id;
+static gint hf_mdssvc_mdssvc_close_in_handle;
+static gint hf_mdssvc_mdssvc_close_out_handle;
+static gint hf_mdssvc_mdssvc_close_status;
+static gint hf_mdssvc_mdssvc_close_unkn1;
+static gint hf_mdssvc_mdssvc_close_unkn2;
+static gint hf_mdssvc_mdssvc_close_unkn3;
+static gint hf_mdssvc_mdssvc_cmd_device_id;
+static gint hf_mdssvc_mdssvc_cmd_flags;
+static gint hf_mdssvc_mdssvc_cmd_fragment;
+static gint hf_mdssvc_mdssvc_cmd_handle;
+static gint hf_mdssvc_mdssvc_cmd_max_fragment_size1;
+static gint hf_mdssvc_mdssvc_cmd_max_fragment_size2;
+static gint hf_mdssvc_mdssvc_cmd_request_blob;
+static gint hf_mdssvc_mdssvc_cmd_response_blob;
+static gint hf_mdssvc_mdssvc_cmd_unkn1;
+static gint hf_mdssvc_mdssvc_cmd_unkn3;
+static gint hf_mdssvc_mdssvc_cmd_unkn4;
+static gint hf_mdssvc_mdssvc_cmd_unkn5;
+static gint hf_mdssvc_mdssvc_cmd_unkn6;
+static gint hf_mdssvc_mdssvc_cmd_unkn7;
+static gint hf_mdssvc_mdssvc_cmd_unkn8;
+static gint hf_mdssvc_mdssvc_cmd_unkn9;
+static gint hf_mdssvc_mdssvc_open_device_id;
+static gint hf_mdssvc_mdssvc_open_handle;
+static gint hf_mdssvc_mdssvc_open_share_mount_path;
+static gint hf_mdssvc_mdssvc_open_share_name;
+static gint hf_mdssvc_mdssvc_open_share_path;
+static gint hf_mdssvc_mdssvc_open_unkn2;
+static gint hf_mdssvc_mdssvc_open_unkn3;
+static gint hf_mdssvc_mdssvc_unknown1_device_id;
+static gint hf_mdssvc_mdssvc_unknown1_flags;
+static gint hf_mdssvc_mdssvc_unknown1_gid;
+static gint hf_mdssvc_mdssvc_unknown1_handle;
+static gint hf_mdssvc_mdssvc_unknown1_status;
+static gint hf_mdssvc_mdssvc_unknown1_uid;
+static gint hf_mdssvc_mdssvc_unknown1_unkn1;
+static gint hf_mdssvc_mdssvc_unknown1_unkn3;
+static gint hf_mdssvc_mdssvc_unknown1_unkn4;
+static gint hf_mdssvc_mdssvc_unknown1_unkn7;
+static gint hf_mdssvc_opnum;
static gint proto_dcerpc_mdssvc = -1;
/* Version information */
@@ -870,7 +870,7 @@ mdssvc_dissect_close_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
}
-static dcerpc_sub_dissector mdssvc_dissectors[] = {
+static const dcerpc_sub_dissector mdssvc_dissectors[] = {
{ 0, "open",
mdssvc_dissect_open_request, mdssvc_dissect_open_response},
{ 1, "unknown1",
diff --git a/epan/dissectors/packet-dcerpc-messenger.c b/epan/dissectors/packet-dcerpc-messenger.c
index e7ed77c07e..3ec1509340 100644
--- a/epan/dissectors/packet-dcerpc-messenger.c
+++ b/epan/dissectors/packet-dcerpc-messenger.c
@@ -77,7 +77,7 @@ messenger_dissect_send_message_reply(tvbuff_t *tvb, int offset, packet_info *pin
-static dcerpc_sub_dissector dcerpc_messenger_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_messenger_dissectors[] = {
{0, "NetrSendMessage",
messenger_dissect_send_message_rqst,
messenger_dissect_send_message_reply },
diff --git a/epan/dissectors/packet-dcerpc-mgmt.c b/epan/dissectors/packet-dcerpc-mgmt.c
index 706ac1fcc9..dfed643981 100644
--- a/epan/dissectors/packet-dcerpc-mgmt.c
+++ b/epan/dissectors/packet-dcerpc-mgmt.c
@@ -52,7 +52,7 @@ mgmtrpc_dissect_inq_princ_name_request(tvbuff_t *tvb, int offset, packet_info *p
-static dcerpc_sub_dissector mgmt_dissectors[] = {
+static const dcerpc_sub_dissector mgmt_dissectors[] = {
{ 0, "rpc__mgmt_inq_if_ids", NULL, NULL },
{ 1, "rpc__mgmt_inq_stats", NULL, NULL },
{ 2, "rpc__mgmt_is_server_listening", NULL, NULL },
diff --git a/epan/dissectors/packet-dcerpc-misc.c b/epan/dissectors/packet-dcerpc-misc.c
index 2c2375bd8a..649bd3dd07 100644
--- a/epan/dissectors/packet-dcerpc-misc.c
+++ b/epan/dissectors/packet-dcerpc-misc.c
@@ -22,27 +22,27 @@ void proto_register_dcerpc_misc(void);
void proto_reg_handoff_dcerpc_misc(void);
/* Ett declarations */
-static gint ett_dcerpc_misc = -1;
-static gint ett_misc_GUID = -1;
-static gint ett_misc_ndr_syntax_id = -1;
-static gint ett_misc_policy_handle = -1;
-static gint ett_misc_KRB5_EDATA_NTSTATUS = -1;
+static gint ett_dcerpc_misc;
+static gint ett_misc_GUID;
+static gint ett_misc_ndr_syntax_id;
+static gint ett_misc_policy_handle;
+static gint ett_misc_KRB5_EDATA_NTSTATUS;
/* Header field declarations */
-static gint hf_misc_GUID_clock_seq = -1;
-static gint hf_misc_GUID_node = -1;
-static gint hf_misc_GUID_time_hi_and_version = -1;
-static gint hf_misc_GUID_time_low = -1;
-static gint hf_misc_GUID_time_mid = -1;
-static gint hf_misc_KRB5_EDATA_NTSTATUS_ntstatus = -1;
-static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown1 = -1;
-static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown2 = -1;
-static gint hf_misc_ndr_syntax_id_if_version = -1;
-static gint hf_misc_ndr_syntax_id_uuid = -1;
-static gint hf_misc_opnum = -1;
-static gint hf_misc_policy_handle_handle_type = -1;
-static gint hf_misc_policy_handle_uuid = -1;
+static gint hf_misc_GUID_clock_seq;
+static gint hf_misc_GUID_node;
+static gint hf_misc_GUID_time_hi_and_version;
+static gint hf_misc_GUID_time_low;
+static gint hf_misc_GUID_time_mid;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_ntstatus;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown1;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown2;
+static gint hf_misc_ndr_syntax_id_if_version;
+static gint hf_misc_ndr_syntax_id_uuid;
+static gint hf_misc_opnum;
+static gint hf_misc_policy_handle_handle_type;
+static gint hf_misc_policy_handle_uuid;
static gint proto_dcerpc_misc = -1;
/* Version information */
@@ -440,7 +440,7 @@ misc_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
/* IDL: } */
-static dcerpc_sub_dissector misc_dissectors[] = {
+static const dcerpc_sub_dissector misc_dissectors[] = {
{ 0, NULL, NULL, NULL }
};
diff --git a/epan/dissectors/packet-dcerpc-netlogon.c b/epan/dissectors/packet-dcerpc-netlogon.c
index bc74a77440..42e40083cb 100644
--- a/epan/dissectors/packet-dcerpc-netlogon.c
+++ b/epan/dissectors/packet-dcerpc-netlogon.c
@@ -90,7 +90,7 @@ static void printnbyte(const guint8* tab _U_,int nb _U_,const char* txt _U_,cons
#define NETLOGON_FLAG_2 0x2
#define NETLOGON_FLAG_1 0x1
-static wmem_map_t *netlogon_auths=NULL;
+static wmem_map_t *netlogon_auths;
#if 0
static wmem_map_t *schannel_auths;
#endif
@@ -129,7 +129,7 @@ static int hf_netlogon_sensitive_data;
static int hf_netlogon_security_information;
static int hf_netlogon_dummy;
static int hf_netlogon_neg_flags;
-/* static int hf_netlogon_neg_flags_80000000; */
+static int hf_netlogon_neg_flags_80000000;
static int hf_netlogon_neg_flags_40000000;
static int hf_netlogon_neg_flags_20000000;
/* static int hf_netlogon_neg_flags_10000000; */
@@ -2155,6 +2155,76 @@ netlogon_dissect_PAC_S4U_DELEGATION_INFO(tvbuff_t *tvb, int offset,
return offset;
}
+struct device_sid_callback_args {
+ const char **device_sid_ptr;
+ guint32 user_rid;
+ const char *domain_sid;
+ const char *device_sid;
+};
+
+static void device_sid_callback_fnct(packet_info *pinfo _U_,
+ proto_tree *tree _U_,
+ proto_item *item _U_,
+ dcerpc_info *di,
+ tvbuff_t *tvb _U_,
+ int start_offset _U_,
+ int end_offset _U_,
+ void *callback_args)
+{
+ struct device_sid_callback_args *args =
+ (struct device_sid_callback_args *)callback_args;
+ dcerpc_call_value *dcv = (dcerpc_call_value *)di->call_data;
+ const char *p = NULL;
+ ptrdiff_t len;
+
+ if (di->ptype != UINT8_MAX) {
+ return;
+ }
+
+ if (dcv == NULL) {
+ return;
+ }
+
+ if (args == NULL) {
+ return;
+ }
+
+ args->domain_sid = (const char *)dcv->private_data;
+ if (args->domain_sid == NULL) {
+ /* this should not happen... */
+ return;
+ }
+
+ len = strnlen(args->domain_sid, 64);
+
+ /* remove any debug info after the sid */
+ p = memchr(args->domain_sid, ' ', len);
+ if (p != NULL) {
+ ptrdiff_t mlen = p - args->domain_sid;
+ if (mlen < len) {
+ len = mlen;
+ }
+ }
+ p = memchr(args->domain_sid, '(', len);
+ if (p != NULL) {
+ ptrdiff_t mlen = p - args->domain_sid;
+ if (mlen < len) {
+ len = mlen;
+ }
+ }
+
+ /*
+ * we know we're called dissect_krb5_PAC_DEVICE_INFO
+ * so we should allocate the device_sid on wmem_epan_scope()
+ */
+ args->device_sid = wmem_strdup_printf(wmem_epan_scope(),
+ "%*.*s-%" PRIu32 "",
+ (int)len, (int)len,
+ args->domain_sid,
+ args->user_rid);
+ *args->device_sid_ptr = args->device_sid;
+}
+
/*
* IDL typedef struct {
* IDL long UserId;
@@ -2173,13 +2243,28 @@ netlogon_dissect_PAC_DEVICE_INFO(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree,
dcerpc_info *di, guint8 *drep)
{
+ dcerpc_call_value *dcv = (dcerpc_call_value *)di->call_data;
+ struct device_sid_callback_args *args = NULL;
+ guint32 *user_rid_ptr = NULL;
+
+ if (dcv && di->ptype == UINT8_MAX && dcv->private_data) {
+ args = wmem_new0(pinfo->pool, struct device_sid_callback_args);
+ /*
+ * dissect_krb5_PAC_DEVICE_INFO passes
+ * a pointer to const char *device_sid
+ */
+ args->device_sid_ptr = dcv->private_data;
+ user_rid_ptr = &args->user_rid;
+ }
+
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
- hf_netlogon_user_rid, NULL);
+ hf_netlogon_user_rid, user_rid_ptr);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
hf_netlogon_group_rid, NULL);
- offset = dissect_ndr_nt_PSID(tvb, offset, pinfo, tree, di, drep);
+ offset = dissect_ndr_nt_PSID_cb(tvb, offset, pinfo, tree, di, drep,
+ device_sid_callback_fnct, args);
offset = netlogon_dissect_GROUP_MEMBERSHIPS(tvb, offset,
pinfo, tree, di, drep,
@@ -6314,7 +6399,7 @@ netlogon_dissect_ServerCapabilities(tvbuff_t *tvb, int offset,
if(parent_tree){
tree = proto_tree_add_subtree(parent_tree, tvb, offset, 0,
ett_CAPABILITIES, &item,
- "Capabitilies");
+ "Capabilities");
}
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep,
@@ -6623,9 +6708,7 @@ netlogon_dissect_netrlogoncomputeclientdigest_reply(tvbuff_t *tvb, int offset,
static int netlogon_dissect_neg_options(tvbuff_t *tvb,proto_tree *tree,guint32 flags,int offset)
{
static int * const hf_flags[] = {
-#if 0
&hf_netlogon_neg_flags_80000000,
-#endif
&hf_netlogon_neg_flags_40000000,
&hf_netlogon_neg_flags_20000000,
#if 0
@@ -6715,6 +6798,42 @@ netlogon_dissect_netrserverauthenticate3_rqst(tvbuff_t *tvb, int offset,
return offset;
}
+static int
+netlogon_dissect_netrserverauthenticatekerberos_rqst(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
+{
+ guint32 flags;
+ offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
+ pinfo, tree, di, drep);
+ ALIGN_TO_5_BYTES
+
+ offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, di, drep,
+ NDR_POINTER_REF, "Acct Name", hf_netlogon_acct_name, 0);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES
+ } else {
+ ALIGN_TO_2_BYTES
+ }
+
+ offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
+ pinfo, tree, di, drep);
+
+ ALIGN_TO_5_BYTES
+
+ offset = dissect_ndr_str_pointer_item(tvb, offset, pinfo, tree, di, drep,
+ NDR_POINTER_REF, "Computer Name", hf_netlogon_computer_name, 0);
+
+ ALIGN_TO_4_BYTES;
+
+ flags = tvb_get_letohl (tvb, offset);
+ netlogon_dissect_neg_options(tvb,tree,flags,offset);
+ seen.isseen = FALSE;
+ seen.num = 0;
+ offset +=4;
+ return offset;
+}
+
/*
* IDL long NetrServerAuthenticate2(
* IDL [in][string][unique] wchar_t *logonserver,
@@ -6951,6 +7070,27 @@ netlogon_dissect_netrserverauthenticate2_reply(tvbuff_t *tvb, int offset,
return netlogon_dissect_netrserverauthenticate023_reply(tvb,offset,pinfo,tree,di,drep,2);
}
+static int
+netlogon_dissect_netrserverauthenticatekerberos_reply(tvbuff_t *tvb, int offset,
+ packet_info *pinfo,
+ proto_tree *tree,
+ dcerpc_info *di,
+ guint8 *drep)
+{
+ guint32 flags = 0;
+
+ flags = tvb_get_letohl (tvb, offset);
+ netlogon_dissect_neg_options(tvb,tree,flags,offset);
+ offset +=4;
+ ALIGN_TO_4_BYTES;
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, tree, drep,
+ hf_server_rid, NULL);
+ offset = dissect_ntstatus(tvb, offset, pinfo, tree, di, drep,
+ hf_netlogon_rc, NULL);
+
+ return offset;
+}
+
static int
netlogon_dissect_dsrgetdcnameex_rqst(tvbuff_t *tvb, int offset,
@@ -8015,7 +8155,7 @@ static int dissect_secchan_nl_auth_message(tvbuff_t *tvb, int offset,
/* Subdissectors */
-static dcerpc_sub_dissector dcerpc_netlogon_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_netlogon_dissectors[] = {
{ NETLOGON_NETRLOGONUASLOGON, "NetrLogonUasLogon",
netlogon_dissect_netrlogonuaslogon_rqst,
netlogon_dissect_netrlogonuaslogon_reply },
@@ -8159,6 +8299,9 @@ static dcerpc_sub_dissector dcerpc_netlogon_dissectors[] = {
{ NETLOGON_NETRCHAINSETCLIENTATTRIBUTES, "NetrChainSetClientAttributes",
netlogon_dissect_netrchainsetclientattributes_rqst,
netlogon_dissect_netrchainsetclientattributes_reply },
+ { NETLOGON_NETRSERVERAUTHENTICATEKERBEROS, "NetrServerAuthenticateKerberos",
+ netlogon_dissect_netrserverauthenticatekerberos_rqst,
+ netlogon_dissect_netrserverauthenticatekerberos_reply },
{0, NULL, NULL, NULL }
};
@@ -9283,10 +9426,8 @@ proto_register_dcerpc_netlogon(void)
{ "Negotiation options", "netlogon.neg_flags", FT_UINT32, BASE_HEX,
NULL, 0x0, "Negotiation Flags", HFILL }},
-#if 0
{ &hf_netlogon_neg_flags_80000000,
- { "Not used 80000000", "ntlmssp.neg_flags.na8000000", FT_BOOLEAN, 32, TFS(&tfs_set_notset), NETLOGON_FLAG_80000000, "Not used", HFILL }},
-#endif
+ { "Supports Kerberos Auth", "ntlmssp.neg_flags.supports_kerberos_auth", FT_BOOLEAN, 32, TFS(&tfs_set_notset), NETLOGON_FLAG_80000000, "supports kerberos", HFILL }},
{ &hf_netlogon_neg_flags_40000000,
{ "Authenticated RPC supported", "ntlmssp.neg_flags.na4000000", FT_BOOLEAN, 32, TFS(&tfs_set_notset), NETLOGON_FLAG_40000000, NULL, HFILL }},
diff --git a/epan/dissectors/packet-dcerpc-netlogon.h b/epan/dissectors/packet-dcerpc-netlogon.h
index 9f0bbe4444..3b30fd01ca 100644
--- a/epan/dissectors/packet-dcerpc-netlogon.h
+++ b/epan/dissectors/packet-dcerpc-netlogon.h
@@ -61,6 +61,7 @@
#define NETLOGON_NETRSERVERGETTRUSTINFO 0x2e
#define NETLOGON_DSRUPDATEREADONLYSERVERDNSRECORDS 0x30
#define NETLOGON_NETRCHAINSETCLIENTATTRIBUTES 0x36 /* This is documented as 49 (0x31) but it's 54) */
+#define NETLOGON_NETRSERVERAUTHENTICATEKERBEROS 0x3B
/* needed to decrypt PAC_LOGON_INFO in kerberos */
diff --git a/epan/dissectors/packet-dcerpc-nspi.c b/epan/dissectors/packet-dcerpc-nspi.c
index 41c0439894..617a54ef96 100644
--- a/epan/dissectors/packet-dcerpc-nspi.c
+++ b/epan/dissectors/packet-dcerpc-nspi.c
@@ -22,147 +22,147 @@ void proto_register_dcerpc_nspi(void);
void proto_reg_handoff_dcerpc_nspi(void);
/* Ett declarations */
-static gint ett_dcerpc_nspi = -1;
-static gint ett_nspi_MAPIUID = -1;
-static gint ett_nspi_input_locale = -1;
-static gint ett_nspi_MAPI_SETTINGS = -1;
-static gint ett_nspi_SPropTagArray = -1;
-static gint ett_nspi_instance_key = -1;
-static gint ett_nspi_MAPINAMEID = -1;
-static gint ett_nspi_SPropertyRestriction = -1;
-static gint ett_nspi_SAndRestriction = -1;
-static gint ett_nspi_SRestriction_CTR = -1;
-static gint ett_nspi_SRestriction = -1;
-static gint ett_nspi_SSortOrder = -1;
-static gint ett_nspi_SSortOrderSet = -1;
-static gint ett_nspi_NAME_STRING = -1;
-static gint ett_nspi_SBinary = -1;
-static gint ett_nspi_FILETIME = -1;
-static gint ett_nspi_SShortArray = -1;
-static gint ett_nspi_MV_LONG_STRUCT = -1;
-static gint ett_nspi_LPSTR = -1;
-static gint ett_nspi_SLPSTRArray = -1;
-static gint ett_nspi_SBinaryArray = -1;
-static gint ett_nspi_SGuidArray = -1;
-static gint ett_nspi_MV_UNICODE_STRUCT = -1;
-static gint ett_nspi_SDateTimeArray = -1;
-static gint ett_nspi_SPropValue_CTR = -1;
-static gint ett_nspi_SPropValue = -1;
-static gint ett_nspi_SRow = -1;
-static gint ett_nspi_SRowSet = -1;
+static gint ett_dcerpc_nspi;
+static gint ett_nspi_MAPIUID;
+static gint ett_nspi_input_locale;
+static gint ett_nspi_MAPI_SETTINGS;
+static gint ett_nspi_SPropTagArray;
+static gint ett_nspi_instance_key;
+static gint ett_nspi_MAPINAMEID;
+static gint ett_nspi_SPropertyRestriction;
+static gint ett_nspi_SAndRestriction;
+static gint ett_nspi_SRestriction_CTR;
+static gint ett_nspi_SRestriction;
+static gint ett_nspi_SSortOrder;
+static gint ett_nspi_SSortOrderSet;
+static gint ett_nspi_NAME_STRING;
+static gint ett_nspi_SBinary;
+static gint ett_nspi_FILETIME;
+static gint ett_nspi_SShortArray;
+static gint ett_nspi_MV_LONG_STRUCT;
+static gint ett_nspi_LPSTR;
+static gint ett_nspi_SLPSTRArray;
+static gint ett_nspi_SBinaryArray;
+static gint ett_nspi_SGuidArray;
+static gint ett_nspi_MV_UNICODE_STRUCT;
+static gint ett_nspi_SDateTimeArray;
+static gint ett_nspi_SPropValue_CTR;
+static gint ett_nspi_SPropValue;
+static gint ett_nspi_SRow;
+static gint ett_nspi_SRowSet;
/* Header field declarations */
-static gint hf_nspi_FILETIME_dwHighDateTime = -1;
-static gint hf_nspi_FILETIME_dwLowDateTime = -1;
-static gint hf_nspi_LPSTR_lppszA = -1;
-static gint hf_nspi_MAPINAMEID_lID = -1;
-static gint hf_nspi_MAPINAMEID_lpguid = -1;
-static gint hf_nspi_MAPINAMEID_ulKind = -1;
-static gint hf_nspi_MAPISTATUS_status = -1;
-static gint hf_nspi_MAPIUID_ab = -1;
-static gint hf_nspi_MAPI_SETTINGS_codepage = -1;
-static gint hf_nspi_MAPI_SETTINGS_flag = -1;
-static gint hf_nspi_MAPI_SETTINGS_handle = -1;
-static gint hf_nspi_MAPI_SETTINGS_input_locale = -1;
-static gint hf_nspi_MAPI_SETTINGS_service_provider = -1;
-static gint hf_nspi_MV_LONG_STRUCT_cValues = -1;
-static gint hf_nspi_MV_LONG_STRUCT_lpl = -1;
-static gint hf_nspi_MV_UNICODE_STRUCT_cValues = -1;
-static gint hf_nspi_MV_UNICODE_STRUCT_lpi = -1;
-static gint hf_nspi_NAME_STRING_str = -1;
-static gint hf_nspi_NspiBind_mapiuid = -1;
-static gint hf_nspi_NspiBind_settings = -1;
-static gint hf_nspi_NspiBind_unknown = -1;
-static gint hf_nspi_NspiDNToEph_flag = -1;
-static gint hf_nspi_NspiDNToEph_instance_key = -1;
-static gint hf_nspi_NspiDNToEph_server_dn = -1;
-static gint hf_nspi_NspiDNToEph_size = -1;
-static gint hf_nspi_NspiGetHierarchyInfo_RowSet = -1;
-static gint hf_nspi_NspiGetHierarchyInfo_settings = -1;
-static gint hf_nspi_NspiGetHierarchyInfo_unknown1 = -1;
-static gint hf_nspi_NspiGetHierarchyInfo_unknown2 = -1;
-static gint hf_nspi_NspiGetMatches_PropTagArray = -1;
-static gint hf_nspi_NspiGetMatches_REQ_properties = -1;
-static gint hf_nspi_NspiGetMatches_RowSet = -1;
-static gint hf_nspi_NspiGetMatches_instance_key = -1;
-static gint hf_nspi_NspiGetMatches_restrictions = -1;
-static gint hf_nspi_NspiGetMatches_settings = -1;
-static gint hf_nspi_NspiGetMatches_unknown1 = -1;
-static gint hf_nspi_NspiGetMatches_unknown2 = -1;
-static gint hf_nspi_NspiGetMatches_unknown3 = -1;
-static gint hf_nspi_NspiGetProps_REPL_values = -1;
-static gint hf_nspi_NspiGetProps_REQ_properties = -1;
-static gint hf_nspi_NspiGetProps_flag = -1;
-static gint hf_nspi_NspiGetProps_settings = -1;
-static gint hf_nspi_NspiQueryRows_REQ_properties = -1;
-static gint hf_nspi_NspiQueryRows_RowSet = -1;
-static gint hf_nspi_NspiQueryRows_flag = -1;
-static gint hf_nspi_NspiQueryRows_instance_key = -1;
-static gint hf_nspi_NspiQueryRows_lRows = -1;
-static gint hf_nspi_NspiQueryRows_settings = -1;
-static gint hf_nspi_NspiQueryRows_unknown = -1;
-static gint hf_nspi_NspiUnbind_status = -1;
-static gint hf_nspi_SAndRestriction_cRes = -1;
-static gint hf_nspi_SAndRestriction_lpRes = -1;
-static gint hf_nspi_SBinaryArray_cValues = -1;
-static gint hf_nspi_SBinaryArray_lpbin = -1;
-static gint hf_nspi_SBinary_cb = -1;
-static gint hf_nspi_SBinary_lpb = -1;
-static gint hf_nspi_SDateTimeArray_cValues = -1;
-static gint hf_nspi_SDateTimeArray_lpft = -1;
-static gint hf_nspi_SGuidArray_cValues = -1;
-static gint hf_nspi_SGuidArray_lpguid = -1;
-static gint hf_nspi_SLPSTRArray_cValues = -1;
-static gint hf_nspi_SLPSTRArray_strings = -1;
-static gint hf_nspi_SPropTagArray_aulPropTag = -1;
-static gint hf_nspi_SPropTagArray_cValues = -1;
-static gint hf_nspi_SPropValue_CTR_MVbin = -1;
-static gint hf_nspi_SPropValue_CTR_MVft = -1;
-static gint hf_nspi_SPropValue_CTR_MVguid = -1;
-static gint hf_nspi_SPropValue_CTR_MVi = -1;
-static gint hf_nspi_SPropValue_CTR_MVl = -1;
-static gint hf_nspi_SPropValue_CTR_MVszA = -1;
-static gint hf_nspi_SPropValue_CTR_MVszW = -1;
-static gint hf_nspi_SPropValue_CTR_b = -1;
-static gint hf_nspi_SPropValue_CTR_bin = -1;
-static gint hf_nspi_SPropValue_CTR_err = -1;
-static gint hf_nspi_SPropValue_CTR_ft = -1;
-static gint hf_nspi_SPropValue_CTR_i = -1;
-static gint hf_nspi_SPropValue_CTR_l = -1;
-static gint hf_nspi_SPropValue_CTR_lpguid = -1;
-static gint hf_nspi_SPropValue_CTR_lpszA = -1;
-static gint hf_nspi_SPropValue_CTR_lpszW = -1;
-static gint hf_nspi_SPropValue_CTR_null = -1;
-static gint hf_nspi_SPropValue_CTR_object = -1;
-static gint hf_nspi_SPropValue_dwAlignPad = -1;
-static gint hf_nspi_SPropValue_ulPropTag = -1;
-static gint hf_nspi_SPropertyRestriction_lpProp = -1;
-static gint hf_nspi_SPropertyRestriction_relop = -1;
-static gint hf_nspi_SPropertyRestriction_ulPropTag = -1;
-static gint hf_nspi_SRestriction_CTR_resAnd = -1;
-static gint hf_nspi_SRestriction_CTR_resProperty = -1;
-static gint hf_nspi_SRestriction_PTTYPE = -1;
-static gint hf_nspi_SRowSet_aRow = -1;
-static gint hf_nspi_SRowSet_cRows = -1;
-static gint hf_nspi_SRow_cValues = -1;
-static gint hf_nspi_SRow_lpProps = -1;
-static gint hf_nspi_SRow_ulAdrEntryPad = -1;
-static gint hf_nspi_SShortArray_cValues = -1;
-static gint hf_nspi_SShortArray_lpi = -1;
-static gint hf_nspi_SSortOrderSet_aSort = -1;
-static gint hf_nspi_SSortOrderSet_cCategories = -1;
-static gint hf_nspi_SSortOrderSet_cExpanded = -1;
-static gint hf_nspi_SSortOrderSet_cSorts = -1;
-static gint hf_nspi_SSortOrder_ulOrder = -1;
-static gint hf_nspi_SSortOrder_ulPropTag = -1;
-static gint hf_nspi_handle = -1;
-static gint hf_nspi_input_locale_language = -1;
-static gint hf_nspi_input_locale_method = -1;
-static gint hf_nspi_instance_key_cValues = -1;
-static gint hf_nspi_instance_key_value = -1;
-static gint hf_nspi_opnum = -1;
-static gint hf_nspi_property_type = -1;
+static gint hf_nspi_FILETIME_dwHighDateTime;
+static gint hf_nspi_FILETIME_dwLowDateTime;
+static gint hf_nspi_LPSTR_lppszA;
+static gint hf_nspi_MAPINAMEID_lID;
+static gint hf_nspi_MAPINAMEID_lpguid;
+static gint hf_nspi_MAPINAMEID_ulKind;
+static gint hf_nspi_MAPISTATUS_status;
+static gint hf_nspi_MAPIUID_ab;
+static gint hf_nspi_MAPI_SETTINGS_codepage;
+static gint hf_nspi_MAPI_SETTINGS_flag;
+static gint hf_nspi_MAPI_SETTINGS_handle;
+static gint hf_nspi_MAPI_SETTINGS_input_locale;
+static gint hf_nspi_MAPI_SETTINGS_service_provider;
+static gint hf_nspi_MV_LONG_STRUCT_cValues;
+static gint hf_nspi_MV_LONG_STRUCT_lpl;
+static gint hf_nspi_MV_UNICODE_STRUCT_cValues;
+static gint hf_nspi_MV_UNICODE_STRUCT_lpi;
+static gint hf_nspi_NAME_STRING_str;
+static gint hf_nspi_NspiBind_mapiuid;
+static gint hf_nspi_NspiBind_settings;
+static gint hf_nspi_NspiBind_unknown;
+static gint hf_nspi_NspiDNToEph_flag;
+static gint hf_nspi_NspiDNToEph_instance_key;
+static gint hf_nspi_NspiDNToEph_server_dn;
+static gint hf_nspi_NspiDNToEph_size;
+static gint hf_nspi_NspiGetHierarchyInfo_RowSet;
+static gint hf_nspi_NspiGetHierarchyInfo_settings;
+static gint hf_nspi_NspiGetHierarchyInfo_unknown1;
+static gint hf_nspi_NspiGetHierarchyInfo_unknown2;
+static gint hf_nspi_NspiGetMatches_PropTagArray;
+static gint hf_nspi_NspiGetMatches_REQ_properties;
+static gint hf_nspi_NspiGetMatches_RowSet;
+static gint hf_nspi_NspiGetMatches_instance_key;
+static gint hf_nspi_NspiGetMatches_restrictions;
+static gint hf_nspi_NspiGetMatches_settings;
+static gint hf_nspi_NspiGetMatches_unknown1;
+static gint hf_nspi_NspiGetMatches_unknown2;
+static gint hf_nspi_NspiGetMatches_unknown3;
+static gint hf_nspi_NspiGetProps_REPL_values;
+static gint hf_nspi_NspiGetProps_REQ_properties;
+static gint hf_nspi_NspiGetProps_flag;
+static gint hf_nspi_NspiGetProps_settings;
+static gint hf_nspi_NspiQueryRows_REQ_properties;
+static gint hf_nspi_NspiQueryRows_RowSet;
+static gint hf_nspi_NspiQueryRows_flag;
+static gint hf_nspi_NspiQueryRows_instance_key;
+static gint hf_nspi_NspiQueryRows_lRows;
+static gint hf_nspi_NspiQueryRows_settings;
+static gint hf_nspi_NspiQueryRows_unknown;
+static gint hf_nspi_NspiUnbind_status;
+static gint hf_nspi_SAndRestriction_cRes;
+static gint hf_nspi_SAndRestriction_lpRes;
+static gint hf_nspi_SBinaryArray_cValues;
+static gint hf_nspi_SBinaryArray_lpbin;
+static gint hf_nspi_SBinary_cb;
+static gint hf_nspi_SBinary_lpb;
+static gint hf_nspi_SDateTimeArray_cValues;
+static gint hf_nspi_SDateTimeArray_lpft;
+static gint hf_nspi_SGuidArray_cValues;
+static gint hf_nspi_SGuidArray_lpguid;
+static gint hf_nspi_SLPSTRArray_cValues;
+static gint hf_nspi_SLPSTRArray_strings;
+static gint hf_nspi_SPropTagArray_aulPropTag;
+static gint hf_nspi_SPropTagArray_cValues;
+static gint hf_nspi_SPropValue_CTR_MVbin;
+static gint hf_nspi_SPropValue_CTR_MVft;
+static gint hf_nspi_SPropValue_CTR_MVguid;
+static gint hf_nspi_SPropValue_CTR_MVi;
+static gint hf_nspi_SPropValue_CTR_MVl;
+static gint hf_nspi_SPropValue_CTR_MVszA;
+static gint hf_nspi_SPropValue_CTR_MVszW;
+static gint hf_nspi_SPropValue_CTR_b;
+static gint hf_nspi_SPropValue_CTR_bin;
+static gint hf_nspi_SPropValue_CTR_err;
+static gint hf_nspi_SPropValue_CTR_ft;
+static gint hf_nspi_SPropValue_CTR_i;
+static gint hf_nspi_SPropValue_CTR_l;
+static gint hf_nspi_SPropValue_CTR_lpguid;
+static gint hf_nspi_SPropValue_CTR_lpszA;
+static gint hf_nspi_SPropValue_CTR_lpszW;
+static gint hf_nspi_SPropValue_CTR_null;
+static gint hf_nspi_SPropValue_CTR_object;
+static gint hf_nspi_SPropValue_dwAlignPad;
+static gint hf_nspi_SPropValue_ulPropTag;
+static gint hf_nspi_SPropertyRestriction_lpProp;
+static gint hf_nspi_SPropertyRestriction_relop;
+static gint hf_nspi_SPropertyRestriction_ulPropTag;
+static gint hf_nspi_SRestriction_CTR_resAnd;
+static gint hf_nspi_SRestriction_CTR_resProperty;
+static gint hf_nspi_SRestriction_PTTYPE;
+static gint hf_nspi_SRowSet_aRow;
+static gint hf_nspi_SRowSet_cRows;
+static gint hf_nspi_SRow_cValues;
+static gint hf_nspi_SRow_lpProps;
+static gint hf_nspi_SRow_ulAdrEntryPad;
+static gint hf_nspi_SShortArray_cValues;
+static gint hf_nspi_SShortArray_lpi;
+static gint hf_nspi_SSortOrderSet_aSort;
+static gint hf_nspi_SSortOrderSet_cCategories;
+static gint hf_nspi_SSortOrderSet_cExpanded;
+static gint hf_nspi_SSortOrderSet_cSorts;
+static gint hf_nspi_SSortOrder_ulOrder;
+static gint hf_nspi_SSortOrder_ulPropTag;
+static gint hf_nspi_handle;
+static gint hf_nspi_input_locale_language;
+static gint hf_nspi_input_locale_method;
+static gint hf_nspi_instance_key_cValues;
+static gint hf_nspi_instance_key_value;
+static gint hf_nspi_opnum;
+static gint hf_nspi_property_type;
static gint proto_dcerpc_nspi = -1;
/* Version information */
@@ -10575,7 +10575,7 @@ nspi_dissect_NspiResolveNamesW_request(tvbuff_t *tvb _U_, int offset _U_, packet
}
-static dcerpc_sub_dissector nspi_dissectors[] = {
+static const dcerpc_sub_dissector nspi_dissectors[] = {
{ 0, "NspiBind",
nspi_dissect_NspiBind_request, nspi_dissect_NspiBind_response},
{ 1, "NspiUnbind",
diff --git a/epan/dissectors/packet-dcerpc-nt.c b/epan/dissectors/packet-dcerpc-nt.c
index a84bf1996f..a532c157d0 100644
--- a/epan/dissectors/packet-dcerpc-nt.c
+++ b/epan/dissectors/packet-dcerpc-nt.c
@@ -510,7 +510,7 @@ typedef struct {
pol_value *list; /* List of policy handle entries */
} pol_hash_value;
-static wmem_map_t *pol_hash = NULL;
+static wmem_map_t *pol_hash;
/* Hash function */
@@ -1469,7 +1469,10 @@ static int
dissect_ndr_nt_SID_hf_through_ptr(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_nt_SID(tvb, offset, pinfo, tree, di, drep);
+ offset = dissect_ndr_nt_SID_with_options(tvb, offset, pinfo, tree,
+ di, drep,
+ CB_STR_ITEM_LEVELS(2),
+ di->hf_index);
return offset;
}
@@ -1477,25 +1480,36 @@ dissect_ndr_nt_SID_hf_through_ptr(tvbuff_t *tvb, int offset, packet_info *pinfo,
static gint ett_nt_sid_pointer;
int
-dissect_ndr_nt_PSID(tvbuff_t *tvb, int offset,
- packet_info *pinfo, proto_tree *parent_tree,
- dcerpc_info *di, guint8 *drep)
+dissect_ndr_nt_PSID_cb(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *parent_tree,
+ dcerpc_info *di, guint8 *drep,
+ dcerpc_callback_fnct_t *callback, void *callback_args)
{
proto_item *item;
proto_tree *tree;
int old_offset=offset;
tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1,
- ett_nt_sid_pointer, &item, "SID pointer:");
+ ett_nt_sid_pointer, &item, "SID pointer");
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, di, drep,
+ offset = dissect_ndr_pointer_cb(tvb, offset, pinfo, tree, di, drep,
dissect_ndr_nt_SID_hf_through_ptr, NDR_POINTER_UNIQUE,
- "SID pointer", hf_nt_domain_sid);
+ "SID pointer", hf_nt_domain_sid,
+ callback, callback_args);
proto_item_set_len(item, offset-old_offset);
return offset;
}
+int
+dissect_ndr_nt_PSID(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *parent_tree,
+ dcerpc_info *di, guint8 *drep)
+{
+ return dissect_ndr_nt_PSID_cb(tvb, offset, pinfo, parent_tree,
+ di, drep, NULL, NULL);
+}
+
static const true_false_string tfs_nt_acb_disabled = {
"Account is DISABLED",
"Account is NOT disabled"
@@ -1629,7 +1643,7 @@ dissect_ndr_nt_LOGON_HOURS(tvbuff_t *tvb, int offset,
proto_tree *tree;
int old_offset=offset;
- ALIGN_TO_4_BYTES; /* strcture starts with short, but is aligned for longs */
+ ALIGN_TO_4_BYTES; /* structure starts with short, but is aligned for longs */
tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1,
ett_nt_logon_hours, &item, "LOGON_HOURS:");
diff --git a/epan/dissectors/packet-dcerpc-nt.h b/epan/dissectors/packet-dcerpc-nt.h
index 29e8f83adb..0ca0e8e02d 100644
--- a/epan/dissectors/packet-dcerpc-nt.h
+++ b/epan/dissectors/packet-dcerpc-nt.h
@@ -158,6 +158,11 @@ dissect_ndr_nt_SID_with_options(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree,
dcerpc_info *di, guint8 *drep, guint32 options, int hf_index);
int
+dissect_ndr_nt_PSID_cb(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *parent_tree,
+ dcerpc_info *di, guint8 *drep,
+ dcerpc_callback_fnct_t *callback, void *callback_args);
+int
dissect_ndr_nt_PSID(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *parent_tree,
dcerpc_info *di, guint8 *drep);
diff --git a/epan/dissectors/packet-dcerpc-pnp.c b/epan/dissectors/packet-dcerpc-pnp.c
index 0f8bdbf2d5..eadaa60023 100644
--- a/epan/dissectors/packet-dcerpc-pnp.c
+++ b/epan/dissectors/packet-dcerpc-pnp.c
@@ -38,7 +38,7 @@ static e_guid_t uuid_dcerpc_pnp = {
static guint16 ver_dcerpc_pnp = 1;
-static dcerpc_sub_dissector dcerpc_pnp_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_pnp_dissectors[] = {
{ PNP_DISCONNECT, "PNP_Disconnect", NULL, NULL },
{ PNP_CONNECT, "PNP_Connect", NULL, NULL },
{ PNP_GET_VERSION, "PNP_GetVersion", NULL, NULL },
diff --git a/epan/dissectors/packet-dcerpc-rdaclif.c b/epan/dissectors/packet-dcerpc-rdaclif.c
index 1a0692f2c7..0441f2c264 100644
--- a/epan/dissectors/packet-dcerpc-rdaclif.c
+++ b/epan/dissectors/packet-dcerpc-rdaclif.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_rdaclif =
static guint16 ver_rdaclif = 1;
-static dcerpc_sub_dissector rdaclif_dissectors[] = {
+static const dcerpc_sub_dissector rdaclif_dissectors[] = {
{0, "lookup", NULL, NULL},
{1, "replace", NULL, NULL},
{2, "get_access", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rep_proc.c b/epan/dissectors/packet-dcerpc-rep_proc.c
index aaca0dc069..f3f9867214 100644
--- a/epan/dissectors/packet-dcerpc-rep_proc.c
+++ b/epan/dissectors/packet-dcerpc-rep_proc.c
@@ -32,7 +32,7 @@ static e_guid_t uuid_rep_proc = { 0x4d37f2dd, 0xed43, 0x0005, { 0x02, 0xc0, 0x37
static guint16 ver_rep_proc = 4;
-static dcerpc_sub_dissector rep_proc_dissectors[] = {
+static const dcerpc_sub_dissector rep_proc_dissectors[] = {
{ 0, "CheckReplicationConfig", NULL, NULL },
{ 1, "AllCheckReplicationConfig", NULL, NULL },
{ 2, "KeepFilesAlive", NULL , NULL},
diff --git a/epan/dissectors/packet-dcerpc-rfr.c b/epan/dissectors/packet-dcerpc-rfr.c
index f008fe8b72..ff49783de3 100644
--- a/epan/dissectors/packet-dcerpc-rfr.c
+++ b/epan/dissectors/packet-dcerpc-rfr.c
@@ -22,20 +22,20 @@ void proto_register_dcerpc_rfr(void);
void proto_reg_handoff_dcerpc_rfr(void);
/* Ett declarations */
-static gint ett_dcerpc_rfr = -1;
+static gint ett_dcerpc_rfr;
/* Header field declarations */
-static gint hf_rfr_MAPISTATUS_status = -1;
-static gint hf_rfr_RfrGetFQDNFromLegacyDN_cbMailboxServerDN = -1;
-static gint hf_rfr_RfrGetFQDNFromLegacyDN_ppszServerFQDN = -1;
-static gint hf_rfr_RfrGetFQDNFromLegacyDN_szMailboxServerDN = -1;
-static gint hf_rfr_RfrGetFQDNFromLegacyDN_ulFlags = -1;
-static gint hf_rfr_RfrGetNewDSA_pUserDN = -1;
-static gint hf_rfr_RfrGetNewDSA_ppszServer = -1;
-static gint hf_rfr_RfrGetNewDSA_ppszUnused = -1;
-static gint hf_rfr_RfrGetNewDSA_ulFlags = -1;
-static gint hf_rfr_opnum = -1;
+static gint hf_rfr_MAPISTATUS_status;
+static gint hf_rfr_RfrGetFQDNFromLegacyDN_cbMailboxServerDN;
+static gint hf_rfr_RfrGetFQDNFromLegacyDN_ppszServerFQDN;
+static gint hf_rfr_RfrGetFQDNFromLegacyDN_szMailboxServerDN;
+static gint hf_rfr_RfrGetFQDNFromLegacyDN_ulFlags;
+static gint hf_rfr_RfrGetNewDSA_pUserDN;
+static gint hf_rfr_RfrGetNewDSA_ppszServer;
+static gint hf_rfr_RfrGetNewDSA_ppszUnused;
+static gint hf_rfr_RfrGetNewDSA_ulFlags;
+static gint hf_rfr_opnum;
static gint proto_dcerpc_rfr = -1;
/* Version information */
@@ -448,7 +448,7 @@ rfr_dissect_RfrGetFQDNFromLegacyDN_request(tvbuff_t *tvb _U_, int offset _U_, pa
}
-static dcerpc_sub_dissector rfr_dissectors[] = {
+static const dcerpc_sub_dissector rfr_dissectors[] = {
{ 0, "RfrGetNewDSA",
rfr_dissect_RfrGetNewDSA_request, rfr_dissect_RfrGetNewDSA_response},
{ 1, "RfrGetFQDNFromLegacyDN",
diff --git a/epan/dissectors/packet-dcerpc-roverride.c b/epan/dissectors/packet-dcerpc-roverride.c
index a08812e05e..e32b96d3f3 100644
--- a/epan/dissectors/packet-dcerpc-roverride.c
+++ b/epan/dissectors/packet-dcerpc-roverride.c
@@ -32,7 +32,7 @@ static e_guid_t uuid_roverride = { 0x5d978990, 0x4851, 0x11ca, { 0x99, 0x37, 0x0
static guint16 ver_roverride = 1;
-static dcerpc_sub_dissector roverride_dissectors[] = {
+static const dcerpc_sub_dissector roverride_dissectors[] = {
{ 0, "roverride_get_login_info", NULL, NULL},
{ 1, "roverride_check_passwd", NULL, NULL},
{ 2, "roverride_is_passwd_overridden", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rpriv.c b/epan/dissectors/packet-dcerpc-rpriv.c
index eea632cdc3..85370d1a62 100644
--- a/epan/dissectors/packet-dcerpc-rpriv.c
+++ b/epan/dissectors/packet-dcerpc-rpriv.c
@@ -80,7 +80,7 @@ rpriv_dissect_get_eptgt_rqst (tvbuff_t *tvb, int offset,
}
-static dcerpc_sub_dissector rpriv_dissectors[] = {
+static const dcerpc_sub_dissector rpriv_dissectors[] = {
{ 0, "get_ptgt", NULL,NULL},
{ 1, "become_delegate", NULL, NULL},
{ 2, "become_impersonator", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rras.c b/epan/dissectors/packet-dcerpc-rras.c
index 01c37e6f2a..73fd65338c 100644
--- a/epan/dissectors/packet-dcerpc-rras.c
+++ b/epan/dissectors/packet-dcerpc-rras.c
@@ -35,10 +35,10 @@ static e_guid_t uuid_dcerpc_rras = {
{ 0xbb, 0xd2, 0x00, 0x00, 0x1a, 0x18, 0x1c, 0xad }
};
-static guint16 ver_dcerpc_rras = 0;
+static guint16 ver_dcerpc_rras;
-static dcerpc_sub_dissector dcerpc_rras_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_rras_dissectors[] = {
{ RRAS_ADMIN_SERVER_GETINFO,
"MprAdminServerGetInfo", NULL, NULL },
{ RRAS_ADMIN_CONNECTION_ENUM,
diff --git a/epan/dissectors/packet-dcerpc-rs_acct.c b/epan/dissectors/packet-dcerpc-rs_acct.c
index 95cbbc040c..1379cf1fc4 100644
--- a/epan/dissectors/packet-dcerpc-rs_acct.c
+++ b/epan/dissectors/packet-dcerpc-rs_acct.c
@@ -90,7 +90,7 @@ rs_acct_dissect_get_projlist_rqst (tvbuff_t *tvb, int offset,
}
-static dcerpc_sub_dissector rs_acct_dissectors[] = {
+static const dcerpc_sub_dissector rs_acct_dissectors[] = {
{ 0, "add", NULL, NULL},
{ 1, "delete", NULL, NULL},
{ 2, "rename", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_attr.c b/epan/dissectors/packet-dcerpc-rs_attr.c
index ac13008247..649b8589e0 100644
--- a/epan/dissectors/packet-dcerpc-rs_attr.c
+++ b/epan/dissectors/packet-dcerpc-rs_attr.c
@@ -29,10 +29,10 @@ static gint ett_rs_attr;
static e_guid_t uuid_rs_attr = { 0xa71fc1e8, 0x567f, 0x11cb, { 0x98, 0xa0, 0x08, 0x00, 0x1e, 0x04, 0xde, 0x8c } };
-static guint16 ver_rs_attr = 0;
+static guint16 ver_rs_attr;
-static dcerpc_sub_dissector rs_attr_dissectors[] = {
+static const dcerpc_sub_dissector rs_attr_dissectors[] = {
{ 0, "rs_attr_cursor_init", NULL, NULL},
{ 1, "rs_attr_lookup_by_id", NULL, NULL},
{ 2, "rs_attr_lookup_no_expand", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_attr_schema.c b/epan/dissectors/packet-dcerpc-rs_attr_schema.c
index baa51e0a90..d789a00a34 100644
--- a/epan/dissectors/packet-dcerpc-rs_attr_schema.c
+++ b/epan/dissectors/packet-dcerpc-rs_attr_schema.c
@@ -29,10 +29,10 @@ static gint ett_rs_attr_schema;
static e_guid_t uuid_rs_attr_schema =
{ 0xb47c9460, 0x567f, 0x11cb, {0x8c, 0x09, 0x08, 0x00, 0x1e, 0x04, 0xde,
0x8c} };
-static guint16 ver_rs_attr_schema = 0;
+static guint16 ver_rs_attr_schema;
-static dcerpc_sub_dissector rs_attr_schema_dissectors[] = {
+static const dcerpc_sub_dissector rs_attr_schema_dissectors[] = {
{0, "create_entry", NULL, NULL},
{1, "delete_entry", NULL, NULL},
{2, "update_entry", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_bind.c b/epan/dissectors/packet-dcerpc-rs_bind.c
index a87d1de452..245afc70c1 100644
--- a/epan/dissectors/packet-dcerpc-rs_bind.c
+++ b/epan/dissectors/packet-dcerpc-rs_bind.c
@@ -35,7 +35,7 @@ static e_guid_t uuid_rs_bind =
static guint16 ver_rs_bind = 2;
-static dcerpc_sub_dissector rs_bind_dissectors[] = {
+static const dcerpc_sub_dissector rs_bind_dissectors[] = {
{0, "get_update_site", NULL, NULL},
{0, NULL, NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_misc.c b/epan/dissectors/packet-dcerpc-rs_misc.c
index 3e44a40275..6f824df052 100644
--- a/epan/dissectors/packet-dcerpc-rs_misc.c
+++ b/epan/dissectors/packet-dcerpc-rs_misc.c
@@ -64,7 +64,7 @@ rs_misc_dissect_login_get_info_rqst (tvbuff_t *tvb, int offset,
}
-static dcerpc_sub_dissector rs_misc_dissectors[] = {
+static const dcerpc_sub_dissector rs_misc_dissectors[] = {
{ 0, "login_get_info", rs_misc_dissect_login_get_info_rqst, NULL},
{ 1, "wait_until_consistent", NULL, NULL},
{ 2, "check_consistency", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_pgo.c b/epan/dissectors/packet-dcerpc-rs_pgo.c
index 1839a5ae34..74f9f69a7c 100644
--- a/epan/dissectors/packet-dcerpc-rs_pgo.c
+++ b/epan/dissectors/packet-dcerpc-rs_pgo.c
@@ -1469,7 +1469,7 @@ rs_pgo_dissect_delete_member_resp (tvbuff_t * tvb, int offset,
}
-static dcerpc_sub_dissector rs_pgo_dissectors[] = {
+static const dcerpc_sub_dissector rs_pgo_dissectors[] = {
{0, "add", rs_pgo_dissect_add_rqst, rs_pgo_dissect_add_resp},
{1, "delete", rs_pgo_dissect_delete_rqst, rs_pgo_dissect_delete_resp},
{2, "replace", rs_pgo_dissect_replace_rqst, rs_pgo_dissect_replace_resp},
diff --git a/epan/dissectors/packet-dcerpc-rs_plcy.c b/epan/dissectors/packet-dcerpc-rs_plcy.c
index 4e6fcac1b1..595bc2fad9 100644
--- a/epan/dissectors/packet-dcerpc-rs_plcy.c
+++ b/epan/dissectors/packet-dcerpc-rs_plcy.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_dcerpc_rs_plcy = {
static guint16 ver_dcerpc_rs_plcy = 1;
-static dcerpc_sub_dissector dcerpc_rs_plcy_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_rs_plcy_dissectors[] = {
{ 0, "rs_properties_get_info", NULL, NULL },
{ 1, "rs_properties_set_info ", NULL, NULL },
{ 2, "rs_policy_get_info", NULL, NULL },
diff --git a/epan/dissectors/packet-dcerpc-rs_prop_acct.c b/epan/dissectors/packet-dcerpc-rs_prop_acct.c
index 5f87ea6b58..bd1cb22dff 100644
--- a/epan/dissectors/packet-dcerpc-rs_prop_acct.c
+++ b/epan/dissectors/packet-dcerpc-rs_prop_acct.c
@@ -29,7 +29,7 @@ static e_guid_t uuid_rs_prop_acct = { 0x68097130, 0xde43, 0x11ca, { 0xa5, 0x54,
static guint16 ver_rs_prop_acct = 1;
-static dcerpc_sub_dissector rs_prop_acct_dissectors[] = {
+static const dcerpc_sub_dissector rs_prop_acct_dissectors[] = {
{ 0, "rs_prop_acct_add", NULL, NULL },
{ 1, "rs_prop_acct_delete", NULL, NULL },
{ 2, "rs_prop_acct_rename", NULL, NULL },
diff --git a/epan/dissectors/packet-dcerpc-rs_prop_acl.c b/epan/dissectors/packet-dcerpc-rs_prop_acl.c
index 73d7bea7bc..7266c29f66 100644
--- a/epan/dissectors/packet-dcerpc-rs_prop_acl.c
+++ b/epan/dissectors/packet-dcerpc-rs_prop_acl.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_rs_prop_acl =
static guint16 ver_rs_prop_acl = 1;
-static dcerpc_sub_dissector rs_prop_acl_dissectors[] = {
+static const dcerpc_sub_dissector rs_prop_acl_dissectors[] = {
{0, "replace", NULL, NULL},
{0, NULL, NULL, NULL}
};
diff --git a/epan/dissectors/packet-dcerpc-rs_prop_attr.c b/epan/dissectors/packet-dcerpc-rs_prop_attr.c
index 70a513580f..8995109924 100644
--- a/epan/dissectors/packet-dcerpc-rs_prop_attr.c
+++ b/epan/dissectors/packet-dcerpc-rs_prop_attr.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_rs_prop_attr =
static guint16 ver_rs_prop_attr = 1;
-static dcerpc_sub_dissector rs_prop_attr_dissectors[] = {
+static const dcerpc_sub_dissector rs_prop_attr_dissectors[] = {
{0, "update", NULL, NULL},
{1, "delete", NULL, NULL},
{0, NULL, NULL, NULL}
diff --git a/epan/dissectors/packet-dcerpc-rs_prop_pgo.c b/epan/dissectors/packet-dcerpc-rs_prop_pgo.c
index 5a3adbfc35..1003567cb9 100644
--- a/epan/dissectors/packet-dcerpc-rs_prop_pgo.c
+++ b/epan/dissectors/packet-dcerpc-rs_prop_pgo.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_rs_prop_pgo =
static guint16 ver_rs_prop_pgo = 1;
-static dcerpc_sub_dissector rs_prop_pgo_dissectors[] = {
+static const dcerpc_sub_dissector rs_prop_pgo_dissectors[] = {
{0, "add", NULL, NULL},
{1, "rename", NULL, NULL},
{2, "replace", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_prop_plcy.c b/epan/dissectors/packet-dcerpc-rs_prop_plcy.c
index 613cb07ea4..6c0c357b3b 100644
--- a/epan/dissectors/packet-dcerpc-rs_prop_plcy.c
+++ b/epan/dissectors/packet-dcerpc-rs_prop_plcy.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_rs_prop_plcy =
static guint16 ver_rs_prop_plcy = 1;
-static dcerpc_sub_dissector rs_prop_plcy_dissectors[] = {
+static const dcerpc_sub_dissector rs_prop_plcy_dissectors[] = {
{0, "rs_prop_properties_set_info", NULL, NULL},
{1, "rs_prop_plcy_set_info", NULL, NULL},
{2, "rs_prop_auth_plcy_set_info", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_pwd_mgmt.c b/epan/dissectors/packet-dcerpc-rs_pwd_mgmt.c
index 1f757f72e8..168bb64662 100644
--- a/epan/dissectors/packet-dcerpc-rs_pwd_mgmt.c
+++ b/epan/dissectors/packet-dcerpc-rs_pwd_mgmt.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_rs_pwd_mgmt =
static guint16 ver_rs_pwd_mgmt = 1;
-static dcerpc_sub_dissector rs_pwd_mgmt_dissectors[] = {
+static const dcerpc_sub_dissector rs_pwd_mgmt_dissectors[] = {
{0, "lookup", NULL, NULL},
{1, "replace", NULL, NULL},
{2, "get_access", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_repadm.c b/epan/dissectors/packet-dcerpc-rs_repadm.c
index 63c2c2ea0f..88235ba4ef 100644
--- a/epan/dissectors/packet-dcerpc-rs_repadm.c
+++ b/epan/dissectors/packet-dcerpc-rs_repadm.c
@@ -34,7 +34,7 @@ static guint16 ver_rs_repadm = 1;
-static dcerpc_sub_dissector rs_repadm_dissectors[] = {
+static const dcerpc_sub_dissector rs_repadm_dissectors[] = {
{ 0, "stop", NULL, NULL},
{ 1, "maint", NULL, NULL},
{ 2, "mkey", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_replist.c b/epan/dissectors/packet-dcerpc-rs_replist.c
index 818bf4fba9..ecb44fddc7 100644
--- a/epan/dissectors/packet-dcerpc-rs_replist.c
+++ b/epan/dissectors/packet-dcerpc-rs_replist.c
@@ -32,7 +32,7 @@ static e_guid_t uuid_rs_replist = { 0x850446b0, 0xe95b, 0x11CA, { 0xad, 0x90, 0x
static guint16 ver_rs_replist = 2;
-static dcerpc_sub_dissector rs_replist_dissectors[] = {
+static const dcerpc_sub_dissector rs_replist_dissectors[] = {
{ 0, "rs_replist_add_replica", NULL, NULL},
{ 1, "rs_replist_replace_replica", NULL, NULL},
{ 2, "rs_replist_delete_replica", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_repmgr.c b/epan/dissectors/packet-dcerpc-rs_repmgr.c
index d1bd369067..3cce53d422 100644
--- a/epan/dissectors/packet-dcerpc-rs_repmgr.c
+++ b/epan/dissectors/packet-dcerpc-rs_repmgr.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_rs_repmgr =
static guint16 ver_rs_repmgr = 2;
-static dcerpc_sub_dissector rs_repmgr_dissectors[] = {
+static const dcerpc_sub_dissector rs_repmgr_dissectors[] = {
{0, "get_info_and_creds", NULL, NULL},
{1, "init", NULL, NULL},
{2, "init_done", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-rs_unix.c b/epan/dissectors/packet-dcerpc-rs_unix.c
index c78a18b0b8..407ba8882d 100644
--- a/epan/dissectors/packet-dcerpc-rs_unix.c
+++ b/epan/dissectors/packet-dcerpc-rs_unix.c
@@ -31,7 +31,7 @@ static e_guid_t uuid_rs_unix = { 0x361993c0, 0xb000, 0x0000, { 0x0d, 0x00, 0x00,
static guint16 ver_rs_unix = 1;
-static dcerpc_sub_dissector rs_unix_dissectors[] = {
+static const dcerpc_sub_dissector rs_unix_dissectors[] = {
{ 0, "getpwents", NULL, NULL },
{ 0, NULL, NULL, NULL },
};
diff --git a/epan/dissectors/packet-dcerpc-rsec_login.c b/epan/dissectors/packet-dcerpc-rsec_login.c
index 81d1ceb86e..e2dd504f30 100644
--- a/epan/dissectors/packet-dcerpc-rsec_login.c
+++ b/epan/dissectors/packet-dcerpc-rsec_login.c
@@ -31,7 +31,7 @@ static e_guid_t uuid_rsec_login = { 0xa76e832a, 0x10df, 0x11cd, { 0x90, 0x56, 0x
static guint16 ver_rsec_login = 2;
-static dcerpc_sub_dissector rsec_login_dissectors[] = {
+static const dcerpc_sub_dissector rsec_login_dissectors[] = {
{ 0, "rsec_login_get_trusted_preauth", NULL, NULL},
{ 0, NULL, NULL, NULL }
};
diff --git a/epan/dissectors/packet-dcerpc-samr.c b/epan/dissectors/packet-dcerpc-samr.c
index 0e7cf3dd21..fbbcded8e7 100644
--- a/epan/dissectors/packet-dcerpc-samr.c
+++ b/epan/dissectors/packet-dcerpc-samr.c
@@ -22,666 +22,666 @@ void proto_register_dcerpc_samr(void);
void proto_reg_handoff_dcerpc_samr(void);
/* Ett declarations */
-static gint ett_dcerpc_samr = -1;
-static gint ett_samr_lsa_Strings = -1;
-static gint ett_samr_samr_AcctFlags = -1;
-static gint ett_samr_samr_ConnectAccessMask = -1;
-static gint ett_samr_samr_UserAccessMask = -1;
-static gint ett_samr_samr_DomainAccessMask = -1;
-static gint ett_samr_samr_GroupAccessMask = -1;
-static gint ett_samr_samr_AliasAccessMask = -1;
-static gint ett_samr_samr_SamEntry = -1;
-static gint ett_samr_samr_SamArray = -1;
-static gint ett_samr_samr_PasswordProperties = -1;
-static gint ett_samr_samr_DomInfo1 = -1;
-static gint ett_samr_samr_DomGeneralInformation = -1;
-static gint ett_samr_samr_DomInfo3 = -1;
-static gint ett_samr_samr_DomOEMInformation = -1;
-static gint ett_samr_samr_DomInfo5 = -1;
-static gint ett_samr_samr_DomInfo6 = -1;
-static gint ett_samr_samr_DomInfo7 = -1;
-static gint ett_samr_samr_DomInfo8 = -1;
-static gint ett_samr_samr_DomInfo9 = -1;
-static gint ett_samr_samr_DomGeneralInformation2 = -1;
-static gint ett_samr_samr_DomInfo12 = -1;
-static gint ett_samr_samr_DomInfo13 = -1;
-static gint ett_samr_samr_DomainInfo = -1;
-static gint ett_samr_samr_Ids = -1;
-static gint ett_samr_samr_GroupAttrs = -1;
-static gint ett_samr_samr_GroupInfoAll = -1;
-static gint ett_samr_samr_GroupInfoAttributes = -1;
-static gint ett_samr_samr_GroupInfoDescription = -1;
-static gint ett_samr_samr_GroupInfo = -1;
-static gint ett_samr_samr_RidTypeArray = -1;
-static gint ett_samr_samr_AliasInfoAll = -1;
-static gint ett_samr_samr_AliasInfo = -1;
-static gint ett_samr_samr_UserInfo1 = -1;
-static gint ett_samr_samr_UserInfo2 = -1;
-static gint ett_samr_samr_LogonHours = -1;
-static gint ett_samr_samr_UserInfo3 = -1;
-static gint ett_samr_samr_UserInfo4 = -1;
-static gint ett_samr_samr_UserInfo5 = -1;
-static gint ett_samr_samr_UserInfo6 = -1;
-static gint ett_samr_samr_UserInfo7 = -1;
-static gint ett_samr_samr_UserInfo8 = -1;
-static gint ett_samr_samr_UserInfo9 = -1;
-static gint ett_samr_samr_UserInfo10 = -1;
-static gint ett_samr_samr_UserInfo11 = -1;
-static gint ett_samr_samr_UserInfo12 = -1;
-static gint ett_samr_samr_UserInfo13 = -1;
-static gint ett_samr_samr_UserInfo14 = -1;
-static gint ett_samr_samr_UserInfo16 = -1;
-static gint ett_samr_samr_UserInfo17 = -1;
-static gint ett_samr_samr_Password = -1;
-static gint ett_samr_samr_UserInfo18 = -1;
-static gint ett_samr_samr_UserInfo20 = -1;
-static gint ett_samr_samr_FieldsPresent = -1;
-static gint ett_samr_samr_UserInfo21 = -1;
-static gint ett_samr_samr_CryptPassword = -1;
-static gint ett_samr_samr_UserInfo23 = -1;
-static gint ett_samr_samr_UserInfo24 = -1;
-static gint ett_samr_samr_CryptPasswordEx = -1;
-static gint ett_samr_samr_UserInfo25 = -1;
-static gint ett_samr_samr_UserInfo26 = -1;
-static gint ett_samr_samr_EncryptedPasswordAES = -1;
-static gint ett_samr_samr_UserInfo31 = -1;
-static gint ett_samr_samr_UserInfo32 = -1;
-static gint ett_samr_samr_UserInfo = -1;
-static gint ett_samr_samr_RidWithAttribute = -1;
-static gint ett_samr_samr_RidWithAttributeArray = -1;
-static gint ett_samr_samr_DispEntryGeneral = -1;
-static gint ett_samr_samr_DispInfoGeneral = -1;
-static gint ett_samr_samr_DispEntryFull = -1;
-static gint ett_samr_samr_DispInfoFull = -1;
-static gint ett_samr_samr_DispEntryFullGroup = -1;
-static gint ett_samr_samr_DispInfoFullGroups = -1;
-static gint ett_samr_samr_DispEntryAscii = -1;
-static gint ett_samr_samr_DispInfoAscii = -1;
-static gint ett_samr_samr_DispInfo = -1;
-static gint ett_samr_samr_PwInfo = -1;
-static gint ett_samr_userPwdChangeFailureInformation = -1;
-static gint ett_samr_samr_ConnectInfo1 = -1;
-static gint ett_samr_samr_ConnectInfo = -1;
-static gint ett_samr_samr_ValidateFieldsPresent = -1;
-static gint ett_samr_samr_ValidationBlob = -1;
-static gint ett_samr_samr_ValidatePasswordInfo = -1;
-static gint ett_samr_samr_ValidatePasswordRepCtr = -1;
-static gint ett_samr_samr_ValidatePasswordRep = -1;
-static gint ett_samr_samr_ValidatePasswordReq3 = -1;
-static gint ett_samr_samr_ValidatePasswordReq2 = -1;
-static gint ett_samr_samr_ValidatePasswordReq1 = -1;
-static gint ett_samr_samr_ValidatePasswordReq = -1;
+static gint ett_dcerpc_samr;
+static gint ett_samr_lsa_Strings;
+static gint ett_samr_samr_AcctFlags;
+static gint ett_samr_samr_ConnectAccessMask;
+static gint ett_samr_samr_UserAccessMask;
+static gint ett_samr_samr_DomainAccessMask;
+static gint ett_samr_samr_GroupAccessMask;
+static gint ett_samr_samr_AliasAccessMask;
+static gint ett_samr_samr_SamEntry;
+static gint ett_samr_samr_SamArray;
+static gint ett_samr_samr_PasswordProperties;
+static gint ett_samr_samr_DomInfo1;
+static gint ett_samr_samr_DomGeneralInformation;
+static gint ett_samr_samr_DomInfo3;
+static gint ett_samr_samr_DomOEMInformation;
+static gint ett_samr_samr_DomInfo5;
+static gint ett_samr_samr_DomInfo6;
+static gint ett_samr_samr_DomInfo7;
+static gint ett_samr_samr_DomInfo8;
+static gint ett_samr_samr_DomInfo9;
+static gint ett_samr_samr_DomGeneralInformation2;
+static gint ett_samr_samr_DomInfo12;
+static gint ett_samr_samr_DomInfo13;
+static gint ett_samr_samr_DomainInfo;
+static gint ett_samr_samr_Ids;
+static gint ett_samr_samr_GroupAttrs;
+static gint ett_samr_samr_GroupInfoAll;
+static gint ett_samr_samr_GroupInfoAttributes;
+static gint ett_samr_samr_GroupInfoDescription;
+static gint ett_samr_samr_GroupInfo;
+static gint ett_samr_samr_RidTypeArray;
+static gint ett_samr_samr_AliasInfoAll;
+static gint ett_samr_samr_AliasInfo;
+static gint ett_samr_samr_UserInfo1;
+static gint ett_samr_samr_UserInfo2;
+static gint ett_samr_samr_LogonHours;
+static gint ett_samr_samr_UserInfo3;
+static gint ett_samr_samr_UserInfo4;
+static gint ett_samr_samr_UserInfo5;
+static gint ett_samr_samr_UserInfo6;
+static gint ett_samr_samr_UserInfo7;
+static gint ett_samr_samr_UserInfo8;
+static gint ett_samr_samr_UserInfo9;
+static gint ett_samr_samr_UserInfo10;
+static gint ett_samr_samr_UserInfo11;
+static gint ett_samr_samr_UserInfo12;
+static gint ett_samr_samr_UserInfo13;
+static gint ett_samr_samr_UserInfo14;
+static gint ett_samr_samr_UserInfo16;
+static gint ett_samr_samr_UserInfo17;
+static gint ett_samr_samr_Password;
+static gint ett_samr_samr_UserInfo18;
+static gint ett_samr_samr_UserInfo20;
+static gint ett_samr_samr_FieldsPresent;
+static gint ett_samr_samr_UserInfo21;
+static gint ett_samr_samr_CryptPassword;
+static gint ett_samr_samr_UserInfo23;
+static gint ett_samr_samr_UserInfo24;
+static gint ett_samr_samr_CryptPasswordEx;
+static gint ett_samr_samr_UserInfo25;
+static gint ett_samr_samr_UserInfo26;
+static gint ett_samr_samr_EncryptedPasswordAES;
+static gint ett_samr_samr_UserInfo31;
+static gint ett_samr_samr_UserInfo32;
+static gint ett_samr_samr_UserInfo;
+static gint ett_samr_samr_RidWithAttribute;
+static gint ett_samr_samr_RidWithAttributeArray;
+static gint ett_samr_samr_DispEntryGeneral;
+static gint ett_samr_samr_DispInfoGeneral;
+static gint ett_samr_samr_DispEntryFull;
+static gint ett_samr_samr_DispInfoFull;
+static gint ett_samr_samr_DispEntryFullGroup;
+static gint ett_samr_samr_DispInfoFullGroups;
+static gint ett_samr_samr_DispEntryAscii;
+static gint ett_samr_samr_DispInfoAscii;
+static gint ett_samr_samr_DispInfo;
+static gint ett_samr_samr_PwInfo;
+static gint ett_samr_userPwdChangeFailureInformation;
+static gint ett_samr_samr_ConnectInfo1;
+static gint ett_samr_samr_ConnectInfo;
+static gint ett_samr_samr_ValidateFieldsPresent;
+static gint ett_samr_samr_ValidationBlob;
+static gint ett_samr_samr_ValidatePasswordInfo;
+static gint ett_samr_samr_ValidatePasswordRepCtr;
+static gint ett_samr_samr_ValidatePasswordRep;
+static gint ett_samr_samr_ValidatePasswordReq3;
+static gint ett_samr_samr_ValidatePasswordReq2;
+static gint ett_samr_samr_ValidatePasswordReq1;
+static gint ett_samr_samr_ValidatePasswordReq;
/* Header field declarations */
-static gint hf_samr_alias_access_mask = -1;
-static gint hf_samr_alias_handle = -1;
-static gint hf_samr_connect_access_mask = -1;
-static gint hf_samr_connect_handle = -1;
-static gint hf_samr_domain_access_mask = -1;
-static gint hf_samr_domain_handle = -1;
-static gint hf_samr_group_access_mask = -1;
-static gint hf_samr_group_handle = -1;
-static gint hf_samr_handle = -1;
-static gint hf_samr_lsa_Strings_count = -1;
-static gint hf_samr_lsa_Strings_names = -1;
-static gint hf_samr_opnum = -1;
-static gint hf_samr_rid = -1;
-static gint hf_samr_samr_AcctFlags_ACB_AUTOLOCK = -1;
-static gint hf_samr_samr_AcctFlags_ACB_DISABLED = -1;
-static gint hf_samr_samr_AcctFlags_ACB_DOMTRUST = -1;
-static gint hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH = -1;
-static gint hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED = -1;
-static gint hf_samr_samr_AcctFlags_ACB_HOMDIRREQ = -1;
-static gint hf_samr_samr_AcctFlags_ACB_MNS = -1;
-static gint hf_samr_samr_AcctFlags_ACB_NORMAL = -1;
-static gint hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED = -1;
-static gint hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD = -1;
-static gint hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT = -1;
-static gint hf_samr_samr_AcctFlags_ACB_PWNOEXP = -1;
-static gint hf_samr_samr_AcctFlags_ACB_PWNOTREQ = -1;
-static gint hf_samr_samr_AcctFlags_ACB_PW_EXPIRED = -1;
-static gint hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED = -1;
-static gint hf_samr_samr_AcctFlags_ACB_SVRTRUST = -1;
-static gint hf_samr_samr_AcctFlags_ACB_TEMPDUP = -1;
-static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION = -1;
-static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = -1;
-static gint hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS = -1;
-static gint hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY = -1;
-static gint hf_samr_samr_AcctFlags_ACB_WSTRUST = -1;
-static gint hf_samr_samr_AddAliasMember_sid = -1;
-static gint hf_samr_samr_AddGroupMember_flags = -1;
-static gint hf_samr_samr_AddMultipleMembersToAlias_sids = -1;
-static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER = -1;
-static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS = -1;
-static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO = -1;
-static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER = -1;
-static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO = -1;
-static gint hf_samr_samr_AliasInfoAll_description = -1;
-static gint hf_samr_samr_AliasInfoAll_name = -1;
-static gint hf_samr_samr_AliasInfoAll_num_members = -1;
-static gint hf_samr_samr_AliasInfo_all = -1;
-static gint hf_samr_samr_AliasInfo_description = -1;
-static gint hf_samr_samr_AliasInfo_name = -1;
-static gint hf_samr_samr_ChangePasswordUser2_account = -1;
-static gint hf_samr_samr_ChangePasswordUser2_lm_change = -1;
-static gint hf_samr_samr_ChangePasswordUser2_lm_password = -1;
-static gint hf_samr_samr_ChangePasswordUser2_lm_verifier = -1;
-static gint hf_samr_samr_ChangePasswordUser2_nt_password = -1;
-static gint hf_samr_samr_ChangePasswordUser2_nt_verifier = -1;
-static gint hf_samr_samr_ChangePasswordUser2_server = -1;
-static gint hf_samr_samr_ChangePasswordUser3_account = -1;
-static gint hf_samr_samr_ChangePasswordUser3_dominfo = -1;
-static gint hf_samr_samr_ChangePasswordUser3_lm_change = -1;
-static gint hf_samr_samr_ChangePasswordUser3_lm_password = -1;
-static gint hf_samr_samr_ChangePasswordUser3_lm_verifier = -1;
-static gint hf_samr_samr_ChangePasswordUser3_nt_password = -1;
-static gint hf_samr_samr_ChangePasswordUser3_nt_verifier = -1;
-static gint hf_samr_samr_ChangePasswordUser3_password3 = -1;
-static gint hf_samr_samr_ChangePasswordUser3_reject = -1;
-static gint hf_samr_samr_ChangePasswordUser3_server = -1;
-static gint hf_samr_samr_ChangePasswordUser4_account = -1;
-static gint hf_samr_samr_ChangePasswordUser4_password = -1;
-static gint hf_samr_samr_ChangePasswordUser4_server = -1;
-static gint hf_samr_samr_ChangePasswordUser_cross1_present = -1;
-static gint hf_samr_samr_ChangePasswordUser_cross2_present = -1;
-static gint hf_samr_samr_ChangePasswordUser_lm_cross = -1;
-static gint hf_samr_samr_ChangePasswordUser_lm_present = -1;
-static gint hf_samr_samr_ChangePasswordUser_new_lm_crypted = -1;
-static gint hf_samr_samr_ChangePasswordUser_new_nt_crypted = -1;
-static gint hf_samr_samr_ChangePasswordUser_nt_cross = -1;
-static gint hf_samr_samr_ChangePasswordUser_nt_present = -1;
-static gint hf_samr_samr_ChangePasswordUser_old_lm_crypted = -1;
-static gint hf_samr_samr_ChangePasswordUser_old_nt_crypted = -1;
-static gint hf_samr_samr_Connect2_system_name = -1;
-static gint hf_samr_samr_Connect3_system_name = -1;
-static gint hf_samr_samr_Connect3_unknown = -1;
-static gint hf_samr_samr_Connect4_client_version = -1;
-static gint hf_samr_samr_Connect4_system_name = -1;
-static gint hf_samr_samr_Connect5_info_in = -1;
-static gint hf_samr_samr_Connect5_info_out = -1;
-static gint hf_samr_samr_Connect5_level_in = -1;
-static gint hf_samr_samr_Connect5_level_out = -1;
-static gint hf_samr_samr_Connect5_system_name = -1;
-static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER = -1;
-static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN = -1;
-static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS = -1;
-static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER = -1;
-static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN = -1;
-static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER = -1;
-static gint hf_samr_samr_ConnectInfo1_client_version = -1;
-static gint hf_samr_samr_ConnectInfo1_supported_features = -1;
-static gint hf_samr_samr_ConnectInfo_info1 = -1;
-static gint hf_samr_samr_Connect_system_name = -1;
-static gint hf_samr_samr_CreateDomAlias_alias_name = -1;
-static gint hf_samr_samr_CreateDomainGroup_name = -1;
-static gint hf_samr_samr_CreateUser2_access_granted = -1;
-static gint hf_samr_samr_CreateUser2_account_name = -1;
-static gint hf_samr_samr_CreateUser2_acct_flags = -1;
-static gint hf_samr_samr_CreateUser_account_name = -1;
-static gint hf_samr_samr_CryptPasswordEx_data = -1;
-static gint hf_samr_samr_CryptPassword_data = -1;
-static gint hf_samr_samr_DeleteAliasMember_sid = -1;
-static gint hf_samr_samr_DispEntryAscii_account_name = -1;
-static gint hf_samr_samr_DispEntryAscii_idx = -1;
-static gint hf_samr_samr_DispEntryFullGroup_account_name = -1;
-static gint hf_samr_samr_DispEntryFullGroup_acct_flags = -1;
-static gint hf_samr_samr_DispEntryFullGroup_description = -1;
-static gint hf_samr_samr_DispEntryFullGroup_idx = -1;
-static gint hf_samr_samr_DispEntryFull_account_name = -1;
-static gint hf_samr_samr_DispEntryFull_acct_flags = -1;
-static gint hf_samr_samr_DispEntryFull_description = -1;
-static gint hf_samr_samr_DispEntryFull_idx = -1;
-static gint hf_samr_samr_DispEntryGeneral_account_name = -1;
-static gint hf_samr_samr_DispEntryGeneral_acct_flags = -1;
-static gint hf_samr_samr_DispEntryGeneral_description = -1;
-static gint hf_samr_samr_DispEntryGeneral_full_name = -1;
-static gint hf_samr_samr_DispEntryGeneral_idx = -1;
-static gint hf_samr_samr_DispInfoAscii_count = -1;
-static gint hf_samr_samr_DispInfoAscii_entries = -1;
-static gint hf_samr_samr_DispInfoFullGroups_count = -1;
-static gint hf_samr_samr_DispInfoFullGroups_entries = -1;
-static gint hf_samr_samr_DispInfoFull_count = -1;
-static gint hf_samr_samr_DispInfoFull_entries = -1;
-static gint hf_samr_samr_DispInfoGeneral_count = -1;
-static gint hf_samr_samr_DispInfoGeneral_entries = -1;
-static gint hf_samr_samr_DispInfo_info1 = -1;
-static gint hf_samr_samr_DispInfo_info2 = -1;
-static gint hf_samr_samr_DispInfo_info3 = -1;
-static gint hf_samr_samr_DispInfo_info4 = -1;
-static gint hf_samr_samr_DispInfo_info5 = -1;
-static gint hf_samr_samr_DomGeneralInformation2_general = -1;
-static gint hf_samr_samr_DomGeneralInformation2_lockout_duration = -1;
-static gint hf_samr_samr_DomGeneralInformation2_lockout_threshold = -1;
-static gint hf_samr_samr_DomGeneralInformation2_lockout_window = -1;
-static gint hf_samr_samr_DomGeneralInformation_domain_name = -1;
-static gint hf_samr_samr_DomGeneralInformation_domain_server_state = -1;
-static gint hf_samr_samr_DomGeneralInformation_force_logoff_time = -1;
-static gint hf_samr_samr_DomGeneralInformation_num_aliases = -1;
-static gint hf_samr_samr_DomGeneralInformation_num_groups = -1;
-static gint hf_samr_samr_DomGeneralInformation_num_users = -1;
-static gint hf_samr_samr_DomGeneralInformation_oem_information = -1;
-static gint hf_samr_samr_DomGeneralInformation_primary = -1;
-static gint hf_samr_samr_DomGeneralInformation_role = -1;
-static gint hf_samr_samr_DomGeneralInformation_sequence_num = -1;
-static gint hf_samr_samr_DomGeneralInformation_unknown3 = -1;
-static gint hf_samr_samr_DomInfo12_lockout_duration = -1;
-static gint hf_samr_samr_DomInfo12_lockout_threshold = -1;
-static gint hf_samr_samr_DomInfo12_lockout_window = -1;
-static gint hf_samr_samr_DomInfo13_domain_create_time = -1;
-static gint hf_samr_samr_DomInfo13_modified_count_at_last_promotion = -1;
-static gint hf_samr_samr_DomInfo13_sequence_num = -1;
-static gint hf_samr_samr_DomInfo1_max_password_age = -1;
-static gint hf_samr_samr_DomInfo1_min_password_age = -1;
-static gint hf_samr_samr_DomInfo1_min_password_length = -1;
-static gint hf_samr_samr_DomInfo1_password_history_length = -1;
-static gint hf_samr_samr_DomInfo1_password_properties = -1;
-static gint hf_samr_samr_DomInfo3_force_logoff_time = -1;
-static gint hf_samr_samr_DomInfo5_domain_name = -1;
-static gint hf_samr_samr_DomInfo6_primary = -1;
-static gint hf_samr_samr_DomInfo7_role = -1;
-static gint hf_samr_samr_DomInfo8_domain_create_time = -1;
-static gint hf_samr_samr_DomInfo8_sequence_num = -1;
-static gint hf_samr_samr_DomInfo9_domain_server_state = -1;
-static gint hf_samr_samr_DomOEMInformation_oem_information = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1 = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2 = -1;
-static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3 = -1;
-static gint hf_samr_samr_DomainInfo_general = -1;
-static gint hf_samr_samr_DomainInfo_general2 = -1;
-static gint hf_samr_samr_DomainInfo_info1 = -1;
-static gint hf_samr_samr_DomainInfo_info12 = -1;
-static gint hf_samr_samr_DomainInfo_info13 = -1;
-static gint hf_samr_samr_DomainInfo_info3 = -1;
-static gint hf_samr_samr_DomainInfo_info5 = -1;
-static gint hf_samr_samr_DomainInfo_info6 = -1;
-static gint hf_samr_samr_DomainInfo_info7 = -1;
-static gint hf_samr_samr_DomainInfo_info8 = -1;
-static gint hf_samr_samr_DomainInfo_info9 = -1;
-static gint hf_samr_samr_DomainInfo_oem = -1;
-static gint hf_samr_samr_EncryptedPasswordAES_PBKDF2Iterations = -1;
-static gint hf_samr_samr_EncryptedPasswordAES_auth_data = -1;
-static gint hf_samr_samr_EncryptedPasswordAES_cipher = -1;
-static gint hf_samr_samr_EncryptedPasswordAES_cipher_len = -1;
-static gint hf_samr_samr_EncryptedPasswordAES_salt = -1;
-static gint hf_samr_samr_EnumDomainAliases_max_size = -1;
-static gint hf_samr_samr_EnumDomainAliases_num_entries = -1;
-static gint hf_samr_samr_EnumDomainAliases_resume_handle = -1;
-static gint hf_samr_samr_EnumDomainAliases_sam = -1;
-static gint hf_samr_samr_EnumDomainGroups_max_size = -1;
-static gint hf_samr_samr_EnumDomainGroups_num_entries = -1;
-static gint hf_samr_samr_EnumDomainGroups_resume_handle = -1;
-static gint hf_samr_samr_EnumDomainGroups_sam = -1;
-static gint hf_samr_samr_EnumDomainUsers_acct_flags = -1;
-static gint hf_samr_samr_EnumDomainUsers_max_size = -1;
-static gint hf_samr_samr_EnumDomainUsers_num_entries = -1;
-static gint hf_samr_samr_EnumDomainUsers_resume_handle = -1;
-static gint hf_samr_samr_EnumDomainUsers_sam = -1;
-static gint hf_samr_samr_EnumDomains_buf_size = -1;
-static gint hf_samr_samr_EnumDomains_connect_handle = -1;
-static gint hf_samr_samr_EnumDomains_num_entries = -1;
-static gint hf_samr_samr_EnumDomains_resume_handle = -1;
-static gint hf_samr_samr_EnumDomains_sam = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_RID = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC = -1;
-static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS = -1;
-static gint hf_samr_samr_GetAliasMembership_rids = -1;
-static gint hf_samr_samr_GetAliasMembership_sids = -1;
-static gint hf_samr_samr_GetBootKeyInformation_domain_handle = -1;
-static gint hf_samr_samr_GetBootKeyInformation_unknown = -1;
-static gint hf_samr_samr_GetDisplayEnumerationIndex2_idx = -1;
-static gint hf_samr_samr_GetDisplayEnumerationIndex2_level = -1;
-static gint hf_samr_samr_GetDisplayEnumerationIndex2_name = -1;
-static gint hf_samr_samr_GetDisplayEnumerationIndex_idx = -1;
-static gint hf_samr_samr_GetDisplayEnumerationIndex_level = -1;
-static gint hf_samr_samr_GetDisplayEnumerationIndex_name = -1;
-static gint hf_samr_samr_GetDomPwInfo_domain_name = -1;
-static gint hf_samr_samr_GetDomPwInfo_info = -1;
-static gint hf_samr_samr_GetGroupsForUser_rids = -1;
-static gint hf_samr_samr_GetMembersInAlias_sids = -1;
-static gint hf_samr_samr_GetUserPwInfo_info = -1;
-static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER = -1;
-static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS = -1;
-static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO = -1;
-static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER = -1;
-static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO = -1;
-static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED = -1;
-static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT = -1;
-static gint hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID = -1;
-static gint hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY = -1;
-static gint hf_samr_samr_GroupAttrs_SE_GROUP_OWNER = -1;
-static gint hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE = -1;
-static gint hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY = -1;
-static gint hf_samr_samr_GroupInfoAll_attributes = -1;
-static gint hf_samr_samr_GroupInfoAll_description = -1;
-static gint hf_samr_samr_GroupInfoAll_name = -1;
-static gint hf_samr_samr_GroupInfoAll_num_members = -1;
-static gint hf_samr_samr_GroupInfoAttributes_attributes = -1;
-static gint hf_samr_samr_GroupInfoDescription_description = -1;
-static gint hf_samr_samr_GroupInfo_all = -1;
-static gint hf_samr_samr_GroupInfo_all2 = -1;
-static gint hf_samr_samr_GroupInfo_attributes = -1;
-static gint hf_samr_samr_GroupInfo_description = -1;
-static gint hf_samr_samr_GroupInfo_name = -1;
-static gint hf_samr_samr_Ids_count = -1;
-static gint hf_samr_samr_LogonHours_bits = -1;
-static gint hf_samr_samr_LogonHours_units_per_week = -1;
-static gint hf_samr_samr_LookupDomain_domain_name = -1;
-static gint hf_samr_samr_LookupDomain_sid = -1;
-static gint hf_samr_samr_LookupNames_names = -1;
-static gint hf_samr_samr_LookupNames_num_names = -1;
-static gint hf_samr_samr_LookupNames_rids = -1;
-static gint hf_samr_samr_LookupNames_types = -1;
-static gint hf_samr_samr_LookupRids_names = -1;
-static gint hf_samr_samr_LookupRids_num_rids = -1;
-static gint hf_samr_samr_LookupRids_types = -1;
-static gint hf_samr_samr_OemChangePasswordUser2_account = -1;
-static gint hf_samr_samr_OemChangePasswordUser2_hash = -1;
-static gint hf_samr_samr_OemChangePasswordUser2_password = -1;
-static gint hf_samr_samr_OemChangePasswordUser2_server = -1;
-static gint hf_samr_samr_OpenDomain_sid = -1;
-static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX = -1;
-static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS = -1;
-static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE = -1;
-static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE = -1;
-static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT = -1;
-static gint hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE = -1;
-static gint hf_samr_samr_Password_hash = -1;
-static gint hf_samr_samr_PwInfo_min_password_length = -1;
-static gint hf_samr_samr_PwInfo_password_properties = -1;
-static gint hf_samr_samr_QueryAliasInfo_info = -1;
-static gint hf_samr_samr_QueryAliasInfo_level = -1;
-static gint hf_samr_samr_QueryDisplayInfo2_buf_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo2_info = -1;
-static gint hf_samr_samr_QueryDisplayInfo2_level = -1;
-static gint hf_samr_samr_QueryDisplayInfo2_max_entries = -1;
-static gint hf_samr_samr_QueryDisplayInfo2_returned_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo2_start_idx = -1;
-static gint hf_samr_samr_QueryDisplayInfo2_total_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo3_buf_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo3_info = -1;
-static gint hf_samr_samr_QueryDisplayInfo3_level = -1;
-static gint hf_samr_samr_QueryDisplayInfo3_max_entries = -1;
-static gint hf_samr_samr_QueryDisplayInfo3_returned_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo3_start_idx = -1;
-static gint hf_samr_samr_QueryDisplayInfo3_total_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo_buf_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo_info = -1;
-static gint hf_samr_samr_QueryDisplayInfo_level = -1;
-static gint hf_samr_samr_QueryDisplayInfo_max_entries = -1;
-static gint hf_samr_samr_QueryDisplayInfo_returned_size = -1;
-static gint hf_samr_samr_QueryDisplayInfo_start_idx = -1;
-static gint hf_samr_samr_QueryDisplayInfo_total_size = -1;
-static gint hf_samr_samr_QueryDomainInfo2_info = -1;
-static gint hf_samr_samr_QueryDomainInfo2_level = -1;
-static gint hf_samr_samr_QueryDomainInfo_info = -1;
-static gint hf_samr_samr_QueryDomainInfo_level = -1;
-static gint hf_samr_samr_QueryGroupInfo_info = -1;
-static gint hf_samr_samr_QueryGroupInfo_level = -1;
-static gint hf_samr_samr_QueryGroupMember_rids = -1;
-static gint hf_samr_samr_QuerySecurity_sdbuf = -1;
-static gint hf_samr_samr_QuerySecurity_sec_info = -1;
-static gint hf_samr_samr_QueryUserInfo2_info = -1;
-static gint hf_samr_samr_QueryUserInfo2_level = -1;
-static gint hf_samr_samr_QueryUserInfo_info = -1;
-static gint hf_samr_samr_QueryUserInfo_level = -1;
-static gint hf_samr_samr_RemoveMemberFromForeignDomain_sid = -1;
-static gint hf_samr_samr_RemoveMultipleMembersFromAlias_sids = -1;
-static gint hf_samr_samr_RidToSid_sid = -1;
-static gint hf_samr_samr_RidTypeArray_count = -1;
-static gint hf_samr_samr_RidTypeArray_types = -1;
-static gint hf_samr_samr_RidWithAttributeArray_count = -1;
-static gint hf_samr_samr_RidWithAttributeArray_rids = -1;
-static gint hf_samr_samr_RidWithAttribute_attributes = -1;
-static gint hf_samr_samr_SamArray_count = -1;
-static gint hf_samr_samr_SamArray_entries = -1;
-static gint hf_samr_samr_SamEntry_idx = -1;
-static gint hf_samr_samr_SamEntry_name = -1;
-static gint hf_samr_samr_SetAliasInfo_info = -1;
-static gint hf_samr_samr_SetAliasInfo_level = -1;
-static gint hf_samr_samr_SetBootKeyInformation_unknown1 = -1;
-static gint hf_samr_samr_SetBootKeyInformation_unknown2 = -1;
-static gint hf_samr_samr_SetBootKeyInformation_unknown3 = -1;
-static gint hf_samr_samr_SetDomainInfo_info = -1;
-static gint hf_samr_samr_SetDomainInfo_level = -1;
-static gint hf_samr_samr_SetDsrmPassword_hash = -1;
-static gint hf_samr_samr_SetDsrmPassword_name = -1;
-static gint hf_samr_samr_SetDsrmPassword_unknown = -1;
-static gint hf_samr_samr_SetGroupInfo_info = -1;
-static gint hf_samr_samr_SetGroupInfo_level = -1;
-static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown1 = -1;
-static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown2 = -1;
-static gint hf_samr_samr_SetSecurity_sdbuf = -1;
-static gint hf_samr_samr_SetSecurity_sec_info = -1;
-static gint hf_samr_samr_SetUserInfo2_info = -1;
-static gint hf_samr_samr_SetUserInfo2_level = -1;
-static gint hf_samr_samr_SetUserInfo_info = -1;
-static gint hf_samr_samr_SetUserInfo_level = -1;
-static gint hf_samr_samr_Shutdown_connect_handle = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM = -1;
-static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD = -1;
-static gint hf_samr_samr_UserInfo10_home_directory = -1;
-static gint hf_samr_samr_UserInfo10_home_drive = -1;
-static gint hf_samr_samr_UserInfo11_logon_script = -1;
-static gint hf_samr_samr_UserInfo12_profile_path = -1;
-static gint hf_samr_samr_UserInfo13_description = -1;
-static gint hf_samr_samr_UserInfo14_workstations = -1;
-static gint hf_samr_samr_UserInfo16_acct_flags = -1;
-static gint hf_samr_samr_UserInfo17_acct_expiry = -1;
-static gint hf_samr_samr_UserInfo18_lm_pwd = -1;
-static gint hf_samr_samr_UserInfo18_lm_pwd_active = -1;
-static gint hf_samr_samr_UserInfo18_nt_pwd = -1;
-static gint hf_samr_samr_UserInfo18_nt_pwd_active = -1;
-static gint hf_samr_samr_UserInfo18_password_expired = -1;
-static gint hf_samr_samr_UserInfo1_account_name = -1;
-static gint hf_samr_samr_UserInfo1_comment = -1;
-static gint hf_samr_samr_UserInfo1_description = -1;
-static gint hf_samr_samr_UserInfo1_full_name = -1;
-static gint hf_samr_samr_UserInfo1_primary_gid = -1;
-static gint hf_samr_samr_UserInfo20_parameters = -1;
-static gint hf_samr_samr_UserInfo21_account_name = -1;
-static gint hf_samr_samr_UserInfo21_acct_expiry = -1;
-static gint hf_samr_samr_UserInfo21_acct_flags = -1;
-static gint hf_samr_samr_UserInfo21_allow_password_change = -1;
-static gint hf_samr_samr_UserInfo21_bad_password_count = -1;
-static gint hf_samr_samr_UserInfo21_buf_count = -1;
-static gint hf_samr_samr_UserInfo21_buffer = -1;
-static gint hf_samr_samr_UserInfo21_code_page = -1;
-static gint hf_samr_samr_UserInfo21_comment = -1;
-static gint hf_samr_samr_UserInfo21_country_code = -1;
-static gint hf_samr_samr_UserInfo21_description = -1;
-static gint hf_samr_samr_UserInfo21_fields_present = -1;
-static gint hf_samr_samr_UserInfo21_force_password_change = -1;
-static gint hf_samr_samr_UserInfo21_full_name = -1;
-static gint hf_samr_samr_UserInfo21_home_directory = -1;
-static gint hf_samr_samr_UserInfo21_home_drive = -1;
-static gint hf_samr_samr_UserInfo21_last_logoff = -1;
-static gint hf_samr_samr_UserInfo21_last_logon = -1;
-static gint hf_samr_samr_UserInfo21_last_password_change = -1;
-static gint hf_samr_samr_UserInfo21_lm_owf_password = -1;
-static gint hf_samr_samr_UserInfo21_lm_password_set = -1;
-static gint hf_samr_samr_UserInfo21_logon_count = -1;
-static gint hf_samr_samr_UserInfo21_logon_hours = -1;
-static gint hf_samr_samr_UserInfo21_logon_script = -1;
-static gint hf_samr_samr_UserInfo21_nt_owf_password = -1;
-static gint hf_samr_samr_UserInfo21_nt_password_set = -1;
-static gint hf_samr_samr_UserInfo21_parameters = -1;
-static gint hf_samr_samr_UserInfo21_password_expired = -1;
-static gint hf_samr_samr_UserInfo21_primary_gid = -1;
-static gint hf_samr_samr_UserInfo21_private_data = -1;
-static gint hf_samr_samr_UserInfo21_private_data_sensitive = -1;
-static gint hf_samr_samr_UserInfo21_profile_path = -1;
-static gint hf_samr_samr_UserInfo21_workstations = -1;
-static gint hf_samr_samr_UserInfo23_info = -1;
-static gint hf_samr_samr_UserInfo23_password = -1;
-static gint hf_samr_samr_UserInfo24_password = -1;
-static gint hf_samr_samr_UserInfo24_password_expired = -1;
-static gint hf_samr_samr_UserInfo25_info = -1;
-static gint hf_samr_samr_UserInfo25_password = -1;
-static gint hf_samr_samr_UserInfo26_password = -1;
-static gint hf_samr_samr_UserInfo26_password_expired = -1;
-static gint hf_samr_samr_UserInfo2_code_page = -1;
-static gint hf_samr_samr_UserInfo2_comment = -1;
-static gint hf_samr_samr_UserInfo2_country_code = -1;
-static gint hf_samr_samr_UserInfo2_reserved = -1;
-static gint hf_samr_samr_UserInfo31_password = -1;
-static gint hf_samr_samr_UserInfo31_password_expired = -1;
-static gint hf_samr_samr_UserInfo32_info = -1;
-static gint hf_samr_samr_UserInfo32_password = -1;
-static gint hf_samr_samr_UserInfo3_account_name = -1;
-static gint hf_samr_samr_UserInfo3_acct_flags = -1;
-static gint hf_samr_samr_UserInfo3_allow_password_change = -1;
-static gint hf_samr_samr_UserInfo3_bad_password_count = -1;
-static gint hf_samr_samr_UserInfo3_force_password_change = -1;
-static gint hf_samr_samr_UserInfo3_full_name = -1;
-static gint hf_samr_samr_UserInfo3_home_directory = -1;
-static gint hf_samr_samr_UserInfo3_home_drive = -1;
-static gint hf_samr_samr_UserInfo3_last_logoff = -1;
-static gint hf_samr_samr_UserInfo3_last_logon = -1;
-static gint hf_samr_samr_UserInfo3_last_password_change = -1;
-static gint hf_samr_samr_UserInfo3_logon_count = -1;
-static gint hf_samr_samr_UserInfo3_logon_hours = -1;
-static gint hf_samr_samr_UserInfo3_logon_script = -1;
-static gint hf_samr_samr_UserInfo3_primary_gid = -1;
-static gint hf_samr_samr_UserInfo3_profile_path = -1;
-static gint hf_samr_samr_UserInfo3_workstations = -1;
-static gint hf_samr_samr_UserInfo4_logon_hours = -1;
-static gint hf_samr_samr_UserInfo5_account_name = -1;
-static gint hf_samr_samr_UserInfo5_acct_expiry = -1;
-static gint hf_samr_samr_UserInfo5_acct_flags = -1;
-static gint hf_samr_samr_UserInfo5_bad_password_count = -1;
-static gint hf_samr_samr_UserInfo5_description = -1;
-static gint hf_samr_samr_UserInfo5_full_name = -1;
-static gint hf_samr_samr_UserInfo5_home_directory = -1;
-static gint hf_samr_samr_UserInfo5_home_drive = -1;
-static gint hf_samr_samr_UserInfo5_last_logoff = -1;
-static gint hf_samr_samr_UserInfo5_last_logon = -1;
-static gint hf_samr_samr_UserInfo5_last_password_change = -1;
-static gint hf_samr_samr_UserInfo5_logon_count = -1;
-static gint hf_samr_samr_UserInfo5_logon_hours = -1;
-static gint hf_samr_samr_UserInfo5_logon_script = -1;
-static gint hf_samr_samr_UserInfo5_primary_gid = -1;
-static gint hf_samr_samr_UserInfo5_profile_path = -1;
-static gint hf_samr_samr_UserInfo5_workstations = -1;
-static gint hf_samr_samr_UserInfo6_account_name = -1;
-static gint hf_samr_samr_UserInfo6_full_name = -1;
-static gint hf_samr_samr_UserInfo7_account_name = -1;
-static gint hf_samr_samr_UserInfo8_full_name = -1;
-static gint hf_samr_samr_UserInfo9_primary_gid = -1;
-static gint hf_samr_samr_UserInfo_info1 = -1;
-static gint hf_samr_samr_UserInfo_info10 = -1;
-static gint hf_samr_samr_UserInfo_info11 = -1;
-static gint hf_samr_samr_UserInfo_info12 = -1;
-static gint hf_samr_samr_UserInfo_info13 = -1;
-static gint hf_samr_samr_UserInfo_info14 = -1;
-static gint hf_samr_samr_UserInfo_info16 = -1;
-static gint hf_samr_samr_UserInfo_info17 = -1;
-static gint hf_samr_samr_UserInfo_info18 = -1;
-static gint hf_samr_samr_UserInfo_info2 = -1;
-static gint hf_samr_samr_UserInfo_info20 = -1;
-static gint hf_samr_samr_UserInfo_info21 = -1;
-static gint hf_samr_samr_UserInfo_info23 = -1;
-static gint hf_samr_samr_UserInfo_info24 = -1;
-static gint hf_samr_samr_UserInfo_info25 = -1;
-static gint hf_samr_samr_UserInfo_info26 = -1;
-static gint hf_samr_samr_UserInfo_info3 = -1;
-static gint hf_samr_samr_UserInfo_info31 = -1;
-static gint hf_samr_samr_UserInfo_info32 = -1;
-static gint hf_samr_samr_UserInfo_info4 = -1;
-static gint hf_samr_samr_UserInfo_info5 = -1;
-static gint hf_samr_samr_UserInfo_info6 = -1;
-static gint hf_samr_samr_UserInfo_info7 = -1;
-static gint hf_samr_samr_UserInfo_info8 = -1;
-static gint hf_samr_samr_UserInfo_info9 = -1;
-static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT = -1;
-static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME = -1;
-static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME = -1;
-static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY = -1;
-static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH = -1;
-static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET = -1;
-static gint hf_samr_samr_ValidatePasswordInfo_bad_password_time = -1;
-static gint hf_samr_samr_ValidatePasswordInfo_bad_pwd_count = -1;
-static gint hf_samr_samr_ValidatePasswordInfo_fields_present = -1;
-static gint hf_samr_samr_ValidatePasswordInfo_last_password_change = -1;
-static gint hf_samr_samr_ValidatePasswordInfo_lockout_time = -1;
-static gint hf_samr_samr_ValidatePasswordInfo_pwd_history = -1;
-static gint hf_samr_samr_ValidatePasswordInfo_pwd_history_len = -1;
-static gint hf_samr_samr_ValidatePasswordRepCtr_info = -1;
-static gint hf_samr_samr_ValidatePasswordRepCtr_status = -1;
-static gint hf_samr_samr_ValidatePasswordRep_ctr1 = -1;
-static gint hf_samr_samr_ValidatePasswordRep_ctr2 = -1;
-static gint hf_samr_samr_ValidatePasswordRep_ctr3 = -1;
-static gint hf_samr_samr_ValidatePasswordReq1_info = -1;
-static gint hf_samr_samr_ValidatePasswordReq1_password_matched = -1;
-static gint hf_samr_samr_ValidatePasswordReq2_account = -1;
-static gint hf_samr_samr_ValidatePasswordReq2_hash = -1;
-static gint hf_samr_samr_ValidatePasswordReq2_info = -1;
-static gint hf_samr_samr_ValidatePasswordReq2_password = -1;
-static gint hf_samr_samr_ValidatePasswordReq2_password_matched = -1;
-static gint hf_samr_samr_ValidatePasswordReq3_account = -1;
-static gint hf_samr_samr_ValidatePasswordReq3_clear_lockout = -1;
-static gint hf_samr_samr_ValidatePasswordReq3_hash = -1;
-static gint hf_samr_samr_ValidatePasswordReq3_info = -1;
-static gint hf_samr_samr_ValidatePasswordReq3_password = -1;
-static gint hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon = -1;
-static gint hf_samr_samr_ValidatePasswordReq_req1 = -1;
-static gint hf_samr_samr_ValidatePasswordReq_req2 = -1;
-static gint hf_samr_samr_ValidatePasswordReq_req3 = -1;
-static gint hf_samr_samr_ValidatePassword_level = -1;
-static gint hf_samr_samr_ValidatePassword_rep = -1;
-static gint hf_samr_samr_ValidatePassword_req = -1;
-static gint hf_samr_samr_ValidationBlob_data = -1;
-static gint hf_samr_samr_ValidationBlob_length = -1;
-static gint hf_samr_sec_desc_buf_len = -1;
-static gint hf_samr_status = -1;
-static gint hf_samr_userPwdChangeFailureInformation_extendedFailureReason = -1;
-static gint hf_samr_userPwdChangeFailureInformation_filterModuleName = -1;
-static gint hf_samr_user_access_mask = -1;
-static gint hf_samr_user_handle = -1;
+static gint hf_samr_alias_access_mask;
+static gint hf_samr_alias_handle;
+static gint hf_samr_connect_access_mask;
+static gint hf_samr_connect_handle;
+static gint hf_samr_domain_access_mask;
+static gint hf_samr_domain_handle;
+static gint hf_samr_group_access_mask;
+static gint hf_samr_group_handle;
+static gint hf_samr_handle;
+static gint hf_samr_lsa_Strings_count;
+static gint hf_samr_lsa_Strings_names;
+static gint hf_samr_opnum;
+static gint hf_samr_rid;
+static gint hf_samr_samr_AcctFlags_ACB_AUTOLOCK;
+static gint hf_samr_samr_AcctFlags_ACB_DISABLED;
+static gint hf_samr_samr_AcctFlags_ACB_DOMTRUST;
+static gint hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH;
+static gint hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED;
+static gint hf_samr_samr_AcctFlags_ACB_HOMDIRREQ;
+static gint hf_samr_samr_AcctFlags_ACB_MNS;
+static gint hf_samr_samr_AcctFlags_ACB_NORMAL;
+static gint hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED;
+static gint hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD;
+static gint hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT;
+static gint hf_samr_samr_AcctFlags_ACB_PWNOEXP;
+static gint hf_samr_samr_AcctFlags_ACB_PWNOTREQ;
+static gint hf_samr_samr_AcctFlags_ACB_PW_EXPIRED;
+static gint hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED;
+static gint hf_samr_samr_AcctFlags_ACB_SVRTRUST;
+static gint hf_samr_samr_AcctFlags_ACB_TEMPDUP;
+static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION;
+static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION;
+static gint hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS;
+static gint hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY;
+static gint hf_samr_samr_AcctFlags_ACB_WSTRUST;
+static gint hf_samr_samr_AddAliasMember_sid;
+static gint hf_samr_samr_AddGroupMember_flags;
+static gint hf_samr_samr_AddMultipleMembersToAlias_sids;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO;
+static gint hf_samr_samr_AliasInfoAll_description;
+static gint hf_samr_samr_AliasInfoAll_name;
+static gint hf_samr_samr_AliasInfoAll_num_members;
+static gint hf_samr_samr_AliasInfo_all;
+static gint hf_samr_samr_AliasInfo_description;
+static gint hf_samr_samr_AliasInfo_name;
+static gint hf_samr_samr_ChangePasswordUser2_account;
+static gint hf_samr_samr_ChangePasswordUser2_lm_change;
+static gint hf_samr_samr_ChangePasswordUser2_lm_password;
+static gint hf_samr_samr_ChangePasswordUser2_lm_verifier;
+static gint hf_samr_samr_ChangePasswordUser2_nt_password;
+static gint hf_samr_samr_ChangePasswordUser2_nt_verifier;
+static gint hf_samr_samr_ChangePasswordUser2_server;
+static gint hf_samr_samr_ChangePasswordUser3_account;
+static gint hf_samr_samr_ChangePasswordUser3_dominfo;
+static gint hf_samr_samr_ChangePasswordUser3_lm_change;
+static gint hf_samr_samr_ChangePasswordUser3_lm_password;
+static gint hf_samr_samr_ChangePasswordUser3_lm_verifier;
+static gint hf_samr_samr_ChangePasswordUser3_nt_password;
+static gint hf_samr_samr_ChangePasswordUser3_nt_verifier;
+static gint hf_samr_samr_ChangePasswordUser3_password3;
+static gint hf_samr_samr_ChangePasswordUser3_reject;
+static gint hf_samr_samr_ChangePasswordUser3_server;
+static gint hf_samr_samr_ChangePasswordUser4_account;
+static gint hf_samr_samr_ChangePasswordUser4_password;
+static gint hf_samr_samr_ChangePasswordUser4_server;
+static gint hf_samr_samr_ChangePasswordUser_cross1_present;
+static gint hf_samr_samr_ChangePasswordUser_cross2_present;
+static gint hf_samr_samr_ChangePasswordUser_lm_cross;
+static gint hf_samr_samr_ChangePasswordUser_lm_present;
+static gint hf_samr_samr_ChangePasswordUser_new_lm_crypted;
+static gint hf_samr_samr_ChangePasswordUser_new_nt_crypted;
+static gint hf_samr_samr_ChangePasswordUser_nt_cross;
+static gint hf_samr_samr_ChangePasswordUser_nt_present;
+static gint hf_samr_samr_ChangePasswordUser_old_lm_crypted;
+static gint hf_samr_samr_ChangePasswordUser_old_nt_crypted;
+static gint hf_samr_samr_Connect2_system_name;
+static gint hf_samr_samr_Connect3_system_name;
+static gint hf_samr_samr_Connect3_unknown;
+static gint hf_samr_samr_Connect4_client_version;
+static gint hf_samr_samr_Connect4_system_name;
+static gint hf_samr_samr_Connect5_info_in;
+static gint hf_samr_samr_Connect5_info_out;
+static gint hf_samr_samr_Connect5_level_in;
+static gint hf_samr_samr_Connect5_level_out;
+static gint hf_samr_samr_Connect5_system_name;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER;
+static gint hf_samr_samr_ConnectInfo1_client_version;
+static gint hf_samr_samr_ConnectInfo1_supported_features;
+static gint hf_samr_samr_ConnectInfo_info1;
+static gint hf_samr_samr_Connect_system_name;
+static gint hf_samr_samr_CreateDomAlias_alias_name;
+static gint hf_samr_samr_CreateDomainGroup_name;
+static gint hf_samr_samr_CreateUser2_access_granted;
+static gint hf_samr_samr_CreateUser2_account_name;
+static gint hf_samr_samr_CreateUser2_acct_flags;
+static gint hf_samr_samr_CreateUser_account_name;
+static gint hf_samr_samr_CryptPasswordEx_data;
+static gint hf_samr_samr_CryptPassword_data;
+static gint hf_samr_samr_DeleteAliasMember_sid;
+static gint hf_samr_samr_DispEntryAscii_account_name;
+static gint hf_samr_samr_DispEntryAscii_idx;
+static gint hf_samr_samr_DispEntryFullGroup_account_name;
+static gint hf_samr_samr_DispEntryFullGroup_acct_flags;
+static gint hf_samr_samr_DispEntryFullGroup_description;
+static gint hf_samr_samr_DispEntryFullGroup_idx;
+static gint hf_samr_samr_DispEntryFull_account_name;
+static gint hf_samr_samr_DispEntryFull_acct_flags;
+static gint hf_samr_samr_DispEntryFull_description;
+static gint hf_samr_samr_DispEntryFull_idx;
+static gint hf_samr_samr_DispEntryGeneral_account_name;
+static gint hf_samr_samr_DispEntryGeneral_acct_flags;
+static gint hf_samr_samr_DispEntryGeneral_description;
+static gint hf_samr_samr_DispEntryGeneral_full_name;
+static gint hf_samr_samr_DispEntryGeneral_idx;
+static gint hf_samr_samr_DispInfoAscii_count;
+static gint hf_samr_samr_DispInfoAscii_entries;
+static gint hf_samr_samr_DispInfoFullGroups_count;
+static gint hf_samr_samr_DispInfoFullGroups_entries;
+static gint hf_samr_samr_DispInfoFull_count;
+static gint hf_samr_samr_DispInfoFull_entries;
+static gint hf_samr_samr_DispInfoGeneral_count;
+static gint hf_samr_samr_DispInfoGeneral_entries;
+static gint hf_samr_samr_DispInfo_info1;
+static gint hf_samr_samr_DispInfo_info2;
+static gint hf_samr_samr_DispInfo_info3;
+static gint hf_samr_samr_DispInfo_info4;
+static gint hf_samr_samr_DispInfo_info5;
+static gint hf_samr_samr_DomGeneralInformation2_general;
+static gint hf_samr_samr_DomGeneralInformation2_lockout_duration;
+static gint hf_samr_samr_DomGeneralInformation2_lockout_threshold;
+static gint hf_samr_samr_DomGeneralInformation2_lockout_window;
+static gint hf_samr_samr_DomGeneralInformation_domain_name;
+static gint hf_samr_samr_DomGeneralInformation_domain_server_state;
+static gint hf_samr_samr_DomGeneralInformation_force_logoff_time;
+static gint hf_samr_samr_DomGeneralInformation_num_aliases;
+static gint hf_samr_samr_DomGeneralInformation_num_groups;
+static gint hf_samr_samr_DomGeneralInformation_num_users;
+static gint hf_samr_samr_DomGeneralInformation_oem_information;
+static gint hf_samr_samr_DomGeneralInformation_primary;
+static gint hf_samr_samr_DomGeneralInformation_role;
+static gint hf_samr_samr_DomGeneralInformation_sequence_num;
+static gint hf_samr_samr_DomGeneralInformation_unknown3;
+static gint hf_samr_samr_DomInfo12_lockout_duration;
+static gint hf_samr_samr_DomInfo12_lockout_threshold;
+static gint hf_samr_samr_DomInfo12_lockout_window;
+static gint hf_samr_samr_DomInfo13_domain_create_time;
+static gint hf_samr_samr_DomInfo13_modified_count_at_last_promotion;
+static gint hf_samr_samr_DomInfo13_sequence_num;
+static gint hf_samr_samr_DomInfo1_max_password_age;
+static gint hf_samr_samr_DomInfo1_min_password_age;
+static gint hf_samr_samr_DomInfo1_min_password_length;
+static gint hf_samr_samr_DomInfo1_password_history_length;
+static gint hf_samr_samr_DomInfo1_password_properties;
+static gint hf_samr_samr_DomInfo3_force_logoff_time;
+static gint hf_samr_samr_DomInfo5_domain_name;
+static gint hf_samr_samr_DomInfo6_primary;
+static gint hf_samr_samr_DomInfo7_role;
+static gint hf_samr_samr_DomInfo8_domain_create_time;
+static gint hf_samr_samr_DomInfo8_sequence_num;
+static gint hf_samr_samr_DomInfo9_domain_server_state;
+static gint hf_samr_samr_DomOEMInformation_oem_information;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3;
+static gint hf_samr_samr_DomainInfo_general;
+static gint hf_samr_samr_DomainInfo_general2;
+static gint hf_samr_samr_DomainInfo_info1;
+static gint hf_samr_samr_DomainInfo_info12;
+static gint hf_samr_samr_DomainInfo_info13;
+static gint hf_samr_samr_DomainInfo_info3;
+static gint hf_samr_samr_DomainInfo_info5;
+static gint hf_samr_samr_DomainInfo_info6;
+static gint hf_samr_samr_DomainInfo_info7;
+static gint hf_samr_samr_DomainInfo_info8;
+static gint hf_samr_samr_DomainInfo_info9;
+static gint hf_samr_samr_DomainInfo_oem;
+static gint hf_samr_samr_EncryptedPasswordAES_PBKDF2Iterations;
+static gint hf_samr_samr_EncryptedPasswordAES_auth_data;
+static gint hf_samr_samr_EncryptedPasswordAES_cipher;
+static gint hf_samr_samr_EncryptedPasswordAES_cipher_len;
+static gint hf_samr_samr_EncryptedPasswordAES_salt;
+static gint hf_samr_samr_EnumDomainAliases_max_size;
+static gint hf_samr_samr_EnumDomainAliases_num_entries;
+static gint hf_samr_samr_EnumDomainAliases_resume_handle;
+static gint hf_samr_samr_EnumDomainAliases_sam;
+static gint hf_samr_samr_EnumDomainGroups_max_size;
+static gint hf_samr_samr_EnumDomainGroups_num_entries;
+static gint hf_samr_samr_EnumDomainGroups_resume_handle;
+static gint hf_samr_samr_EnumDomainGroups_sam;
+static gint hf_samr_samr_EnumDomainUsers_acct_flags;
+static gint hf_samr_samr_EnumDomainUsers_max_size;
+static gint hf_samr_samr_EnumDomainUsers_num_entries;
+static gint hf_samr_samr_EnumDomainUsers_resume_handle;
+static gint hf_samr_samr_EnumDomainUsers_sam;
+static gint hf_samr_samr_EnumDomains_buf_size;
+static gint hf_samr_samr_EnumDomains_connect_handle;
+static gint hf_samr_samr_EnumDomains_num_entries;
+static gint hf_samr_samr_EnumDomains_resume_handle;
+static gint hf_samr_samr_EnumDomains_sam;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_RID;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS;
+static gint hf_samr_samr_GetAliasMembership_rids;
+static gint hf_samr_samr_GetAliasMembership_sids;
+static gint hf_samr_samr_GetBootKeyInformation_domain_handle;
+static gint hf_samr_samr_GetBootKeyInformation_unknown;
+static gint hf_samr_samr_GetDisplayEnumerationIndex2_idx;
+static gint hf_samr_samr_GetDisplayEnumerationIndex2_level;
+static gint hf_samr_samr_GetDisplayEnumerationIndex2_name;
+static gint hf_samr_samr_GetDisplayEnumerationIndex_idx;
+static gint hf_samr_samr_GetDisplayEnumerationIndex_level;
+static gint hf_samr_samr_GetDisplayEnumerationIndex_name;
+static gint hf_samr_samr_GetDomPwInfo_domain_name;
+static gint hf_samr_samr_GetDomPwInfo_info;
+static gint hf_samr_samr_GetGroupsForUser_rids;
+static gint hf_samr_samr_GetMembersInAlias_sids;
+static gint hf_samr_samr_GetUserPwInfo_info;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_OWNER;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY;
+static gint hf_samr_samr_GroupInfoAll_attributes;
+static gint hf_samr_samr_GroupInfoAll_description;
+static gint hf_samr_samr_GroupInfoAll_name;
+static gint hf_samr_samr_GroupInfoAll_num_members;
+static gint hf_samr_samr_GroupInfoAttributes_attributes;
+static gint hf_samr_samr_GroupInfoDescription_description;
+static gint hf_samr_samr_GroupInfo_all;
+static gint hf_samr_samr_GroupInfo_all2;
+static gint hf_samr_samr_GroupInfo_attributes;
+static gint hf_samr_samr_GroupInfo_description;
+static gint hf_samr_samr_GroupInfo_name;
+static gint hf_samr_samr_Ids_count;
+static gint hf_samr_samr_LogonHours_bits;
+static gint hf_samr_samr_LogonHours_units_per_week;
+static gint hf_samr_samr_LookupDomain_domain_name;
+static gint hf_samr_samr_LookupDomain_sid;
+static gint hf_samr_samr_LookupNames_names;
+static gint hf_samr_samr_LookupNames_num_names;
+static gint hf_samr_samr_LookupNames_rids;
+static gint hf_samr_samr_LookupNames_types;
+static gint hf_samr_samr_LookupRids_names;
+static gint hf_samr_samr_LookupRids_num_rids;
+static gint hf_samr_samr_LookupRids_types;
+static gint hf_samr_samr_OemChangePasswordUser2_account;
+static gint hf_samr_samr_OemChangePasswordUser2_hash;
+static gint hf_samr_samr_OemChangePasswordUser2_password;
+static gint hf_samr_samr_OemChangePasswordUser2_server;
+static gint hf_samr_samr_OpenDomain_sid;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE;
+static gint hf_samr_samr_Password_hash;
+static gint hf_samr_samr_PwInfo_min_password_length;
+static gint hf_samr_samr_PwInfo_password_properties;
+static gint hf_samr_samr_QueryAliasInfo_info;
+static gint hf_samr_samr_QueryAliasInfo_level;
+static gint hf_samr_samr_QueryDisplayInfo2_buf_size;
+static gint hf_samr_samr_QueryDisplayInfo2_info;
+static gint hf_samr_samr_QueryDisplayInfo2_level;
+static gint hf_samr_samr_QueryDisplayInfo2_max_entries;
+static gint hf_samr_samr_QueryDisplayInfo2_returned_size;
+static gint hf_samr_samr_QueryDisplayInfo2_start_idx;
+static gint hf_samr_samr_QueryDisplayInfo2_total_size;
+static gint hf_samr_samr_QueryDisplayInfo3_buf_size;
+static gint hf_samr_samr_QueryDisplayInfo3_info;
+static gint hf_samr_samr_QueryDisplayInfo3_level;
+static gint hf_samr_samr_QueryDisplayInfo3_max_entries;
+static gint hf_samr_samr_QueryDisplayInfo3_returned_size;
+static gint hf_samr_samr_QueryDisplayInfo3_start_idx;
+static gint hf_samr_samr_QueryDisplayInfo3_total_size;
+static gint hf_samr_samr_QueryDisplayInfo_buf_size;
+static gint hf_samr_samr_QueryDisplayInfo_info;
+static gint hf_samr_samr_QueryDisplayInfo_level;
+static gint hf_samr_samr_QueryDisplayInfo_max_entries;
+static gint hf_samr_samr_QueryDisplayInfo_returned_size;
+static gint hf_samr_samr_QueryDisplayInfo_start_idx;
+static gint hf_samr_samr_QueryDisplayInfo_total_size;
+static gint hf_samr_samr_QueryDomainInfo2_info;
+static gint hf_samr_samr_QueryDomainInfo2_level;
+static gint hf_samr_samr_QueryDomainInfo_info;
+static gint hf_samr_samr_QueryDomainInfo_level;
+static gint hf_samr_samr_QueryGroupInfo_info;
+static gint hf_samr_samr_QueryGroupInfo_level;
+static gint hf_samr_samr_QueryGroupMember_rids;
+static gint hf_samr_samr_QuerySecurity_sdbuf;
+static gint hf_samr_samr_QuerySecurity_sec_info;
+static gint hf_samr_samr_QueryUserInfo2_info;
+static gint hf_samr_samr_QueryUserInfo2_level;
+static gint hf_samr_samr_QueryUserInfo_info;
+static gint hf_samr_samr_QueryUserInfo_level;
+static gint hf_samr_samr_RemoveMemberFromForeignDomain_sid;
+static gint hf_samr_samr_RemoveMultipleMembersFromAlias_sids;
+static gint hf_samr_samr_RidToSid_sid;
+static gint hf_samr_samr_RidTypeArray_count;
+static gint hf_samr_samr_RidTypeArray_types;
+static gint hf_samr_samr_RidWithAttributeArray_count;
+static gint hf_samr_samr_RidWithAttributeArray_rids;
+static gint hf_samr_samr_RidWithAttribute_attributes;
+static gint hf_samr_samr_SamArray_count;
+static gint hf_samr_samr_SamArray_entries;
+static gint hf_samr_samr_SamEntry_idx;
+static gint hf_samr_samr_SamEntry_name;
+static gint hf_samr_samr_SetAliasInfo_info;
+static gint hf_samr_samr_SetAliasInfo_level;
+static gint hf_samr_samr_SetBootKeyInformation_unknown1;
+static gint hf_samr_samr_SetBootKeyInformation_unknown2;
+static gint hf_samr_samr_SetBootKeyInformation_unknown3;
+static gint hf_samr_samr_SetDomainInfo_info;
+static gint hf_samr_samr_SetDomainInfo_level;
+static gint hf_samr_samr_SetDsrmPassword_hash;
+static gint hf_samr_samr_SetDsrmPassword_name;
+static gint hf_samr_samr_SetDsrmPassword_unknown;
+static gint hf_samr_samr_SetGroupInfo_info;
+static gint hf_samr_samr_SetGroupInfo_level;
+static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown1;
+static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown2;
+static gint hf_samr_samr_SetSecurity_sdbuf;
+static gint hf_samr_samr_SetSecurity_sec_info;
+static gint hf_samr_samr_SetUserInfo2_info;
+static gint hf_samr_samr_SetUserInfo2_level;
+static gint hf_samr_samr_SetUserInfo_info;
+static gint hf_samr_samr_SetUserInfo_level;
+static gint hf_samr_samr_Shutdown_connect_handle;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD;
+static gint hf_samr_samr_UserInfo10_home_directory;
+static gint hf_samr_samr_UserInfo10_home_drive;
+static gint hf_samr_samr_UserInfo11_logon_script;
+static gint hf_samr_samr_UserInfo12_profile_path;
+static gint hf_samr_samr_UserInfo13_description;
+static gint hf_samr_samr_UserInfo14_workstations;
+static gint hf_samr_samr_UserInfo16_acct_flags;
+static gint hf_samr_samr_UserInfo17_acct_expiry;
+static gint hf_samr_samr_UserInfo18_lm_pwd;
+static gint hf_samr_samr_UserInfo18_lm_pwd_active;
+static gint hf_samr_samr_UserInfo18_nt_pwd;
+static gint hf_samr_samr_UserInfo18_nt_pwd_active;
+static gint hf_samr_samr_UserInfo18_password_expired;
+static gint hf_samr_samr_UserInfo1_account_name;
+static gint hf_samr_samr_UserInfo1_comment;
+static gint hf_samr_samr_UserInfo1_description;
+static gint hf_samr_samr_UserInfo1_full_name;
+static gint hf_samr_samr_UserInfo1_primary_gid;
+static gint hf_samr_samr_UserInfo20_parameters;
+static gint hf_samr_samr_UserInfo21_account_name;
+static gint hf_samr_samr_UserInfo21_acct_expiry;
+static gint hf_samr_samr_UserInfo21_acct_flags;
+static gint hf_samr_samr_UserInfo21_allow_password_change;
+static gint hf_samr_samr_UserInfo21_bad_password_count;
+static gint hf_samr_samr_UserInfo21_buf_count;
+static gint hf_samr_samr_UserInfo21_buffer;
+static gint hf_samr_samr_UserInfo21_code_page;
+static gint hf_samr_samr_UserInfo21_comment;
+static gint hf_samr_samr_UserInfo21_country_code;
+static gint hf_samr_samr_UserInfo21_description;
+static gint hf_samr_samr_UserInfo21_fields_present;
+static gint hf_samr_samr_UserInfo21_force_password_change;
+static gint hf_samr_samr_UserInfo21_full_name;
+static gint hf_samr_samr_UserInfo21_home_directory;
+static gint hf_samr_samr_UserInfo21_home_drive;
+static gint hf_samr_samr_UserInfo21_last_logoff;
+static gint hf_samr_samr_UserInfo21_last_logon;
+static gint hf_samr_samr_UserInfo21_last_password_change;
+static gint hf_samr_samr_UserInfo21_lm_owf_password;
+static gint hf_samr_samr_UserInfo21_lm_password_set;
+static gint hf_samr_samr_UserInfo21_logon_count;
+static gint hf_samr_samr_UserInfo21_logon_hours;
+static gint hf_samr_samr_UserInfo21_logon_script;
+static gint hf_samr_samr_UserInfo21_nt_owf_password;
+static gint hf_samr_samr_UserInfo21_nt_password_set;
+static gint hf_samr_samr_UserInfo21_parameters;
+static gint hf_samr_samr_UserInfo21_password_expired;
+static gint hf_samr_samr_UserInfo21_primary_gid;
+static gint hf_samr_samr_UserInfo21_private_data;
+static gint hf_samr_samr_UserInfo21_private_data_sensitive;
+static gint hf_samr_samr_UserInfo21_profile_path;
+static gint hf_samr_samr_UserInfo21_workstations;
+static gint hf_samr_samr_UserInfo23_info;
+static gint hf_samr_samr_UserInfo23_password;
+static gint hf_samr_samr_UserInfo24_password;
+static gint hf_samr_samr_UserInfo24_password_expired;
+static gint hf_samr_samr_UserInfo25_info;
+static gint hf_samr_samr_UserInfo25_password;
+static gint hf_samr_samr_UserInfo26_password;
+static gint hf_samr_samr_UserInfo26_password_expired;
+static gint hf_samr_samr_UserInfo2_code_page;
+static gint hf_samr_samr_UserInfo2_comment;
+static gint hf_samr_samr_UserInfo2_country_code;
+static gint hf_samr_samr_UserInfo2_reserved;
+static gint hf_samr_samr_UserInfo31_password;
+static gint hf_samr_samr_UserInfo31_password_expired;
+static gint hf_samr_samr_UserInfo32_info;
+static gint hf_samr_samr_UserInfo32_password;
+static gint hf_samr_samr_UserInfo3_account_name;
+static gint hf_samr_samr_UserInfo3_acct_flags;
+static gint hf_samr_samr_UserInfo3_allow_password_change;
+static gint hf_samr_samr_UserInfo3_bad_password_count;
+static gint hf_samr_samr_UserInfo3_force_password_change;
+static gint hf_samr_samr_UserInfo3_full_name;
+static gint hf_samr_samr_UserInfo3_home_directory;
+static gint hf_samr_samr_UserInfo3_home_drive;
+static gint hf_samr_samr_UserInfo3_last_logoff;
+static gint hf_samr_samr_UserInfo3_last_logon;
+static gint hf_samr_samr_UserInfo3_last_password_change;
+static gint hf_samr_samr_UserInfo3_logon_count;
+static gint hf_samr_samr_UserInfo3_logon_hours;
+static gint hf_samr_samr_UserInfo3_logon_script;
+static gint hf_samr_samr_UserInfo3_primary_gid;
+static gint hf_samr_samr_UserInfo3_profile_path;
+static gint hf_samr_samr_UserInfo3_workstations;
+static gint hf_samr_samr_UserInfo4_logon_hours;
+static gint hf_samr_samr_UserInfo5_account_name;
+static gint hf_samr_samr_UserInfo5_acct_expiry;
+static gint hf_samr_samr_UserInfo5_acct_flags;
+static gint hf_samr_samr_UserInfo5_bad_password_count;
+static gint hf_samr_samr_UserInfo5_description;
+static gint hf_samr_samr_UserInfo5_full_name;
+static gint hf_samr_samr_UserInfo5_home_directory;
+static gint hf_samr_samr_UserInfo5_home_drive;
+static gint hf_samr_samr_UserInfo5_last_logoff;
+static gint hf_samr_samr_UserInfo5_last_logon;
+static gint hf_samr_samr_UserInfo5_last_password_change;
+static gint hf_samr_samr_UserInfo5_logon_count;
+static gint hf_samr_samr_UserInfo5_logon_hours;
+static gint hf_samr_samr_UserInfo5_logon_script;
+static gint hf_samr_samr_UserInfo5_primary_gid;
+static gint hf_samr_samr_UserInfo5_profile_path;
+static gint hf_samr_samr_UserInfo5_workstations;
+static gint hf_samr_samr_UserInfo6_account_name;
+static gint hf_samr_samr_UserInfo6_full_name;
+static gint hf_samr_samr_UserInfo7_account_name;
+static gint hf_samr_samr_UserInfo8_full_name;
+static gint hf_samr_samr_UserInfo9_primary_gid;
+static gint hf_samr_samr_UserInfo_info1;
+static gint hf_samr_samr_UserInfo_info10;
+static gint hf_samr_samr_UserInfo_info11;
+static gint hf_samr_samr_UserInfo_info12;
+static gint hf_samr_samr_UserInfo_info13;
+static gint hf_samr_samr_UserInfo_info14;
+static gint hf_samr_samr_UserInfo_info16;
+static gint hf_samr_samr_UserInfo_info17;
+static gint hf_samr_samr_UserInfo_info18;
+static gint hf_samr_samr_UserInfo_info2;
+static gint hf_samr_samr_UserInfo_info20;
+static gint hf_samr_samr_UserInfo_info21;
+static gint hf_samr_samr_UserInfo_info23;
+static gint hf_samr_samr_UserInfo_info24;
+static gint hf_samr_samr_UserInfo_info25;
+static gint hf_samr_samr_UserInfo_info26;
+static gint hf_samr_samr_UserInfo_info3;
+static gint hf_samr_samr_UserInfo_info31;
+static gint hf_samr_samr_UserInfo_info32;
+static gint hf_samr_samr_UserInfo_info4;
+static gint hf_samr_samr_UserInfo_info5;
+static gint hf_samr_samr_UserInfo_info6;
+static gint hf_samr_samr_UserInfo_info7;
+static gint hf_samr_samr_UserInfo_info8;
+static gint hf_samr_samr_UserInfo_info9;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET;
+static gint hf_samr_samr_ValidatePasswordInfo_bad_password_time;
+static gint hf_samr_samr_ValidatePasswordInfo_bad_pwd_count;
+static gint hf_samr_samr_ValidatePasswordInfo_fields_present;
+static gint hf_samr_samr_ValidatePasswordInfo_last_password_change;
+static gint hf_samr_samr_ValidatePasswordInfo_lockout_time;
+static gint hf_samr_samr_ValidatePasswordInfo_pwd_history;
+static gint hf_samr_samr_ValidatePasswordInfo_pwd_history_len;
+static gint hf_samr_samr_ValidatePasswordRepCtr_info;
+static gint hf_samr_samr_ValidatePasswordRepCtr_status;
+static gint hf_samr_samr_ValidatePasswordRep_ctr1;
+static gint hf_samr_samr_ValidatePasswordRep_ctr2;
+static gint hf_samr_samr_ValidatePasswordRep_ctr3;
+static gint hf_samr_samr_ValidatePasswordReq1_info;
+static gint hf_samr_samr_ValidatePasswordReq1_password_matched;
+static gint hf_samr_samr_ValidatePasswordReq2_account;
+static gint hf_samr_samr_ValidatePasswordReq2_hash;
+static gint hf_samr_samr_ValidatePasswordReq2_info;
+static gint hf_samr_samr_ValidatePasswordReq2_password;
+static gint hf_samr_samr_ValidatePasswordReq2_password_matched;
+static gint hf_samr_samr_ValidatePasswordReq3_account;
+static gint hf_samr_samr_ValidatePasswordReq3_clear_lockout;
+static gint hf_samr_samr_ValidatePasswordReq3_hash;
+static gint hf_samr_samr_ValidatePasswordReq3_info;
+static gint hf_samr_samr_ValidatePasswordReq3_password;
+static gint hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon;
+static gint hf_samr_samr_ValidatePasswordReq_req1;
+static gint hf_samr_samr_ValidatePasswordReq_req2;
+static gint hf_samr_samr_ValidatePasswordReq_req3;
+static gint hf_samr_samr_ValidatePassword_level;
+static gint hf_samr_samr_ValidatePassword_rep;
+static gint hf_samr_samr_ValidatePassword_req;
+static gint hf_samr_samr_ValidationBlob_data;
+static gint hf_samr_samr_ValidationBlob_length;
+static gint hf_samr_sec_desc_buf_len;
+static gint hf_samr_status;
+static gint hf_samr_userPwdChangeFailureInformation_extendedFailureReason;
+static gint hf_samr_userPwdChangeFailureInformation_filterModuleName;
+static gint hf_samr_user_access_mask;
+static gint hf_samr_user_handle;
static gint proto_dcerpc_samr = -1;
/* Version information */
@@ -2058,7 +2058,7 @@ samr_connect_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint
};
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_connect_access_mask_info = {
+static struct access_mask_info samr_connect_access_mask_info = {
"SAMR Connect", /* Name of specific rights */
samr_connect_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -2085,7 +2085,7 @@ samr_alias_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32
};
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_alias_access_mask_info = {
+static struct access_mask_info samr_alias_access_mask_info = {
"SAMR Alias", /* Name of specific rights */
samr_alias_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -2112,7 +2112,7 @@ samr_group_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32
};
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_group_access_mask_info = {
+static struct access_mask_info samr_group_access_mask_info = {
"SAMR Group", /* Name of specific rights */
samr_group_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -2145,7 +2145,7 @@ samr_domain_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint3
};
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_domain_access_mask_info = {
+static struct access_mask_info samr_domain_access_mask_info = {
"SAMR Domain", /* Name of specific rights */
samr_domain_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -5699,7 +5699,7 @@ samr_dissect_struct_UserInfo18(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
static int
samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo20_parameters);
+ offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo20_parameters, 0);
return offset;
}
@@ -5984,7 +5984,7 @@ samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packe
static int
samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_parameters);
+ offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_parameters, 0);
return offset;
}
@@ -5992,7 +5992,7 @@ samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, pa
static int
samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_lm_owf_password);
+ offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_lm_owf_password, 0);
return offset;
}
@@ -6000,7 +6000,7 @@ samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U
static int
samr_dissect_element_UserInfo21_nt_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, 0, hf_samr_samr_UserInfo21_nt_owf_password);
+ offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, hf_samr_samr_UserInfo21_nt_owf_password, 0);
return offset;
}
@@ -15138,7 +15138,7 @@ samr_dissect_ChangePasswordUser4_request(tvbuff_t *tvb _U_, int offset _U_, pack
}
-static dcerpc_sub_dissector samr_dissectors[] = {
+static const dcerpc_sub_dissector samr_dissectors[] = {
{ 0, "Connect",
samr_dissect_Connect_request, samr_dissect_Connect_response},
{ 1, "Close",
diff --git a/epan/dissectors/packet-dcerpc-secidmap.c b/epan/dissectors/packet-dcerpc-secidmap.c
index 57119c97b1..970e5bf9d7 100644
--- a/epan/dissectors/packet-dcerpc-secidmap.c
+++ b/epan/dissectors/packet-dcerpc-secidmap.c
@@ -32,7 +32,7 @@ static guint16 ver_secidmap = 1;
-static dcerpc_sub_dissector secidmap_dissectors[] = {
+static const dcerpc_sub_dissector secidmap_dissectors[] = {
{ 0, "parse_name", NULL, NULL},
{ 1, "gen_name", NULL, NULL},
{ 2, "avoid_cn_bug", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-spoolss.c b/epan/dissectors/packet-dcerpc-spoolss.c
index bffdc263dc..aee8ec493d 100644
--- a/epan/dissectors/packet-dcerpc-spoolss.c
+++ b/epan/dissectors/packet-dcerpc-spoolss.c
@@ -5640,7 +5640,7 @@ SpoolssEnumPrinterDrivers_r(tvbuff_t *tvb, int offset,
buffer.tvb, buffer_offset, pinfo,
buffer.tree, di, drep);
/*break;*/
- goto done; /*Not entirely imeplemented*/
+ goto done; /*Not entirely implemented*/
default:
proto_tree_add_expert_format( buffer.tree, pinfo, &ei_driver_info_level, buffer.tvb, buffer_offset, -1, "Unknown driver info level %d", level);
goto done;
@@ -6946,7 +6946,7 @@ SpoolssGetPrinterDriverPackagePath_r(tvbuff_t *tvb, int offset,
* List of subdissectors for this pipe.
*/
-static dcerpc_sub_dissector dcerpc_spoolss_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_spoolss_dissectors[] = {
{ SPOOLSS_ENUMPRINTERS, "EnumPrinters",
SpoolssEnumPrinters_q, SpoolssEnumPrinters_r },
{ SPOOLSS_OPENPRINTER, "OpenPrinter",
diff --git a/epan/dissectors/packet-dcerpc-srvsvc.c b/epan/dissectors/packet-dcerpc-srvsvc.c
index 18f6777966..2ea519d265 100644
--- a/epan/dissectors/packet-dcerpc-srvsvc.c
+++ b/epan/dissectors/packet-dcerpc-srvsvc.c
@@ -19437,7 +19437,7 @@ srvsvc_dissect_NETRSERVERTRANSPORTDELEX_request(tvbuff_t *tvb _U_, int offset _U
}
-static dcerpc_sub_dissector srvsvc_dissectors[] = {
+static const dcerpc_sub_dissector srvsvc_dissectors[] = {
{ 0, "NetCharDevEnum",
srvsvc_dissect_NetCharDevEnum_request, srvsvc_dissect_NetCharDevEnum_response},
{ 1, "NetCharDevGetInfo",
diff --git a/epan/dissectors/packet-dcerpc-svcctl.c b/epan/dissectors/packet-dcerpc-svcctl.c
index a165d16700..f9a1ab5663 100644
--- a/epan/dissectors/packet-dcerpc-svcctl.c
+++ b/epan/dissectors/packet-dcerpc-svcctl.c
@@ -22,371 +22,371 @@ void proto_register_dcerpc_svcctl(void);
void proto_reg_handoff_dcerpc_svcctl(void);
/* Ett declarations */
-static gint ett_svcctl_service = -1;
-static gint ett_svcctl_service_name = -1;
-static gint ett_svcctl_display_name = -1;
-static gint ett_dcerpc_svcctl = -1;
-static gint ett_svcctl_security_secinfo = -1;
-static gint ett_svcctl_SERVICE_LOCK_STATUS = -1;
-static gint ett_svcctl_svcctl_ControlsAccepted = -1;
-static gint ett_svcctl_SERVICE_STATUS = -1;
-static gint ett_svcctl_SERVICE_STATUS_PROCESS = -1;
-static gint ett_svcctl_ENUM_SERVICE_STATUSW = -1;
-static gint ett_svcctl_ENUM_SERVICE_STATUSA = -1;
-static gint ett_svcctl_svcctl_MgrAccessMask = -1;
-static gint ett_svcctl_svcctl_ServiceAccessMask = -1;
-static gint ett_svcctl_QUERY_SERVICE_CONFIG = -1;
-static gint ett_svcctl_svcctl_ArgumentString = -1;
-static gint ett_svcctl_svcctl_ArgumentStringA = -1;
+static gint ett_svcctl_service;
+static gint ett_svcctl_service_name;
+static gint ett_svcctl_display_name;
+static gint ett_dcerpc_svcctl;
+static gint ett_svcctl_security_secinfo;
+static gint ett_svcctl_SERVICE_LOCK_STATUS;
+static gint ett_svcctl_svcctl_ControlsAccepted;
+static gint ett_svcctl_SERVICE_STATUS;
+static gint ett_svcctl_SERVICE_STATUS_PROCESS;
+static gint ett_svcctl_ENUM_SERVICE_STATUSW;
+static gint ett_svcctl_ENUM_SERVICE_STATUSA;
+static gint ett_svcctl_svcctl_MgrAccessMask;
+static gint ett_svcctl_svcctl_ServiceAccessMask;
+static gint ett_svcctl_QUERY_SERVICE_CONFIG;
+static gint ett_svcctl_svcctl_ArgumentString;
+static gint ett_svcctl_svcctl_ArgumentStringA;
/* Header field declarations */
-static gint hf_svcctl_ENUM_SERVICE_STATUSA_display_name = -1;
-static gint hf_svcctl_ENUM_SERVICE_STATUSA_service_name = -1;
-static gint hf_svcctl_ENUM_SERVICE_STATUSA_status = -1;
-static gint hf_svcctl_ENUM_SERVICE_STATUSW_display_name = -1;
-static gint hf_svcctl_ENUM_SERVICE_STATUSW_service_name = -1;
-static gint hf_svcctl_ENUM_SERVICE_STATUSW_status = -1;
-static gint hf_svcctl_EnumServicesStatusExA_group_name = -1;
-static gint hf_svcctl_EnumServicesStatusExA_info_level = -1;
-static gint hf_svcctl_EnumServicesStatusExA_needed = -1;
-static gint hf_svcctl_EnumServicesStatusExA_offered = -1;
-static gint hf_svcctl_EnumServicesStatusExA_resume_handle = -1;
-static gint hf_svcctl_EnumServicesStatusExA_scm_handle = -1;
-static gint hf_svcctl_EnumServicesStatusExA_service_returned = -1;
-static gint hf_svcctl_EnumServicesStatusExA_service_type = -1;
-static gint hf_svcctl_EnumServicesStatusExA_services = -1;
-static gint hf_svcctl_EnumServicesStatusExA_state = -1;
-static gint hf_svcctl_EnumServicesStatusExW_group_name = -1;
-static gint hf_svcctl_EnumServicesStatusExW_info_level = -1;
-static gint hf_svcctl_EnumServicesStatusExW_needed = -1;
-static gint hf_svcctl_EnumServicesStatusExW_offered = -1;
-static gint hf_svcctl_EnumServicesStatusExW_resume_handle = -1;
-static gint hf_svcctl_EnumServicesStatusExW_scmanager = -1;
-static gint hf_svcctl_EnumServicesStatusExW_service_returned = -1;
-static gint hf_svcctl_EnumServicesStatusExW_service_type = -1;
-static gint hf_svcctl_EnumServicesStatusExW_services = -1;
-static gint hf_svcctl_EnumServicesStatusExW_state = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_dependencies = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_displayname = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_error_control = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_executablepath = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_service_type = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_start_type = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_startname = -1;
-static gint hf_svcctl_QUERY_SERVICE_CONFIG_tag_id = -1;
-static gint hf_svcctl_SERVICE_LOCK_STATUS_is_locked = -1;
-static gint hf_svcctl_SERVICE_LOCK_STATUS_lock_duration = -1;
-static gint hf_svcctl_SERVICE_LOCK_STATUS_lock_owner = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_check_point = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_controls_accepted = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_process_id = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_service_exit_code = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_service_flags = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_state = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_type = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_wait_hint = -1;
-static gint hf_svcctl_SERVICE_STATUS_PROCESS_win32_exit_code = -1;
-static gint hf_svcctl_SERVICE_STATUS_check_point = -1;
-static gint hf_svcctl_SERVICE_STATUS_controls_accepted = -1;
-static gint hf_svcctl_SERVICE_STATUS_service_exit_code = -1;
-static gint hf_svcctl_SERVICE_STATUS_state = -1;
-static gint hf_svcctl_SERVICE_STATUS_type = -1;
-static gint hf_svcctl_SERVICE_STATUS_wait_hint = -1;
-static gint hf_svcctl_SERVICE_STATUS_win32_exit_code = -1;
-static gint hf_svcctl_opnum = -1;
-static gint hf_svcctl_service_buffer_size = -1;
-static gint hf_svcctl_service_referent_id = -1;
-static gint hf_svcctl_svcctl_ArgumentStringA_string = -1;
-static gint hf_svcctl_svcctl_ArgumentString_string = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfig2A_info = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfig2A_info_level = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfig2W_handle = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfig2W_info = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfig2W_info_level = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_binary_path = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_dependencies = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_display_name = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_error_control = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_password = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_service_handle = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_service_type = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_start_type = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigA_tag_id = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_binary_path = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_dependencies = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_display_name = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_dwDependSize = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_dwPwSize = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_error_control = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_password = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_service_handle = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_service_type = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_start_type = -1;
-static gint hf_svcctl_svcctl_ChangeServiceConfigW_tag_id = -1;
-static gint hf_svcctl_svcctl_CloseServiceHandle_object_handle = -1;
-static gint hf_svcctl_svcctl_ControlService_control = -1;
-static gint hf_svcctl_svcctl_ControlService_service_handle = -1;
-static gint hf_svcctl_svcctl_ControlService_service_status = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT = -1;
-static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_DisplayName = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_ServiceName = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_binary_path = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_dependencies = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_dependencies_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_desired_access = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_error_control = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_password = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_password_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_scm_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_service_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_service_start_name = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_service_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_start_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceA_tag_id = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_ServiceName = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_binary_path = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_dependencies = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_dependencies_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_desired_access = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_error_control = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_password = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_password_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_service_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_start_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64A_tag_id = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_ServiceName = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_binary_path = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_dependencies = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_dependencies_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_desired_access = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_error_control = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_password = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_password_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_service_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_start_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceWOW64W_tag_id = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_DisplayName = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_ServiceName = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_binary_path = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_dependencies = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_dependencies_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_desired_access = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_error_control = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_password = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_password_size = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_scm_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_service_handle = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_service_start_name = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_service_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_start_type = -1;
-static gint hf_svcctl_svcctl_CreateServiceW_tag_id = -1;
-static gint hf_svcctl_svcctl_CreateWowService_DisplayName = -1;
-static gint hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey = -1;
-static gint hf_svcctl_svcctl_CreateWowService_ServiceName = -1;
-static gint hf_svcctl_svcctl_CreateWowService_binary_path = -1;
-static gint hf_svcctl_svcctl_CreateWowService_dependencies = -1;
-static gint hf_svcctl_svcctl_CreateWowService_dependencies_size = -1;
-static gint hf_svcctl_svcctl_CreateWowService_desired_access = -1;
-static gint hf_svcctl_svcctl_CreateWowService_error_control = -1;
-static gint hf_svcctl_svcctl_CreateWowService_handle = -1;
-static gint hf_svcctl_svcctl_CreateWowService_password = -1;
-static gint hf_svcctl_svcctl_CreateWowService_password_size = -1;
-static gint hf_svcctl_svcctl_CreateWowService_scm_handle = -1;
-static gint hf_svcctl_svcctl_CreateWowService_service_start_name = -1;
-static gint hf_svcctl_svcctl_CreateWowService_service_type = -1;
-static gint hf_svcctl_svcctl_CreateWowService_service_wow_type = -1;
-static gint hf_svcctl_svcctl_CreateWowService_start_type = -1;
-static gint hf_svcctl_svcctl_CreateWowService_tag_id = -1;
-static gint hf_svcctl_svcctl_DeleteService_service_handle = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesA_needed = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesA_offered = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesA_service_handle = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesA_service_status = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesA_services_returned = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesA_state = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesW_offered = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesW_service_handle = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesW_service_state = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesW_service_status = -1;
-static gint hf_svcctl_svcctl_EnumDependentServicesW_services_returned = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_cbBufSize = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_lpBuffer = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_scm_handle = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_service_state = -1;
-static gint hf_svcctl_svcctl_EnumServiceGroupW_service_type = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_needed = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_offered = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_resume_handle = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_scm_handle = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_service = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_service_state = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_service_type = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusA_services_returned = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_bytes_needed = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_offered = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_resume_index = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_scm_handle = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_service_state = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_service_type = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_services = -1;
-static gint hf_svcctl_svcctl_EnumServicesStatusW_services_returned = -1;
-static gint hf_svcctl_svcctl_GetCurrentGroupeStateW_handle = -1;
-static gint hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup = -1;
-static gint hf_svcctl_svcctl_GetCurrentGroupeStateW_state = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameA_display_name = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameA_handle = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameA_service_name = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameW_display_name = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle = -1;
-static gint hf_svcctl_svcctl_GetServiceDisplayNameW_service_name = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameA_key_name = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameA_service_name = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameW_display_name = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameW_service_name = -1;
-static gint hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length = -1;
-static gint hf_svcctl_svcctl_LockServiceDatabase_lock_handle = -1;
-static gint hf_svcctl_svcctl_LockServiceDatabase_scm_handle = -1;
-static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS = -1;
-static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT = -1;
-static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE = -1;
-static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE = -1;
-static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK = -1;
-static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG = -1;
-static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS = -1;
-static gint hf_svcctl_svcctl_NotifyBootConfigStatus_boot_acceptable = -1;
-static gint hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name = -1;
-static gint hf_svcctl_svcctl_OpenSCManager2_database_name = -1;
-static gint hf_svcctl_svcctl_OpenSCManager2_desired_access = -1;
-static gint hf_svcctl_svcctl_OpenSCManager2_handle = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerA_DatabaseName = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerA_MachineName = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerA_access_mask = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerA_scm_handle = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerW_DatabaseName = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerW_MachineName = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerW_access_mask = -1;
-static gint hf_svcctl_svcctl_OpenSCManagerW_scm_handle = -1;
-static gint hf_svcctl_svcctl_OpenServiceA_ServiceName = -1;
-static gint hf_svcctl_svcctl_OpenServiceA_access_mask = -1;
-static gint hf_svcctl_svcctl_OpenServiceA_scm_handle = -1;
-static gint hf_svcctl_svcctl_OpenServiceA_service_handle = -1;
-static gint hf_svcctl_svcctl_OpenServiceW_ServiceName = -1;
-static gint hf_svcctl_svcctl_OpenServiceW_access_mask = -1;
-static gint hf_svcctl_svcctl_OpenServiceW_scm_handle = -1;
-static gint hf_svcctl_svcctl_OpenServiceW_service_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2A_buffer = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2A_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2A_info_level = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2A_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2A_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2W_buffer = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2W_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2W_info_level = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2W_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfig2W_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigA_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigA_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigA_query = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigA_service_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigEx_info_level = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigEx_service_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigW_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigW_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigW_service_config = -1;
-static gint hf_svcctl_svcctl_QueryServiceConfigW_service_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusA_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusA_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusW_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusW_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor = -1;
-static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags = -1;
-static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceStatusEx_buffer = -1;
-static gint hf_svcctl_svcctl_QueryServiceStatusEx_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceStatusEx_info_level = -1;
-static gint hf_svcctl_svcctl_QueryServiceStatusEx_needed = -1;
-static gint hf_svcctl_svcctl_QueryServiceStatusEx_offered = -1;
-static gint hf_svcctl_svcctl_QueryServiceStatus_service_handle = -1;
-static gint hf_svcctl_svcctl_QueryServiceStatus_service_status = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsA_handle = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsA_lpString = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsA_service_bits = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsA_set_bits_on = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsA_update_immediately = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsW_lpString = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsW_service_bits = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsW_service_handle = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsW_set_bits_on = -1;
-static gint hf_svcctl_svcctl_SCSetServiceBitsW_update_immediately = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP = -1;
-static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL = -1;
-static gint hf_svcctl_svcctl_SetServiceObjectSecurity_offered = -1;
-static gint hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor = -1;
-static gint hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags = -1;
-static gint hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle = -1;
-static gint hf_svcctl_svcctl_SetServiceStatus_service_handle = -1;
-static gint hf_svcctl_svcctl_SetServiceStatus_service_status = -1;
-static gint hf_svcctl_svcctl_StartServiceA_Arguments = -1;
-static gint hf_svcctl_svcctl_StartServiceA_NumArgs = -1;
-static gint hf_svcctl_svcctl_StartServiceA_service_handle = -1;
-static gint hf_svcctl_svcctl_StartServiceW_Arguments = -1;
-static gint hf_svcctl_svcctl_StartServiceW_NumArgs = -1;
-static gint hf_svcctl_svcctl_StartServiceW_service_handle = -1;
-static gint hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle = -1;
-static gint hf_svcctl_werror = -1;
+static gint hf_svcctl_ENUM_SERVICE_STATUSA_display_name;
+static gint hf_svcctl_ENUM_SERVICE_STATUSA_service_name;
+static gint hf_svcctl_ENUM_SERVICE_STATUSA_status;
+static gint hf_svcctl_ENUM_SERVICE_STATUSW_display_name;
+static gint hf_svcctl_ENUM_SERVICE_STATUSW_service_name;
+static gint hf_svcctl_ENUM_SERVICE_STATUSW_status;
+static gint hf_svcctl_EnumServicesStatusExA_group_name;
+static gint hf_svcctl_EnumServicesStatusExA_info_level;
+static gint hf_svcctl_EnumServicesStatusExA_needed;
+static gint hf_svcctl_EnumServicesStatusExA_offered;
+static gint hf_svcctl_EnumServicesStatusExA_resume_handle;
+static gint hf_svcctl_EnumServicesStatusExA_scm_handle;
+static gint hf_svcctl_EnumServicesStatusExA_service_returned;
+static gint hf_svcctl_EnumServicesStatusExA_service_type;
+static gint hf_svcctl_EnumServicesStatusExA_services;
+static gint hf_svcctl_EnumServicesStatusExA_state;
+static gint hf_svcctl_EnumServicesStatusExW_group_name;
+static gint hf_svcctl_EnumServicesStatusExW_info_level;
+static gint hf_svcctl_EnumServicesStatusExW_needed;
+static gint hf_svcctl_EnumServicesStatusExW_offered;
+static gint hf_svcctl_EnumServicesStatusExW_resume_handle;
+static gint hf_svcctl_EnumServicesStatusExW_scmanager;
+static gint hf_svcctl_EnumServicesStatusExW_service_returned;
+static gint hf_svcctl_EnumServicesStatusExW_service_type;
+static gint hf_svcctl_EnumServicesStatusExW_services;
+static gint hf_svcctl_EnumServicesStatusExW_state;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_dependencies;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_displayname;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_error_control;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_executablepath;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_service_type;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_start_type;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_startname;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_tag_id;
+static gint hf_svcctl_SERVICE_LOCK_STATUS_is_locked;
+static gint hf_svcctl_SERVICE_LOCK_STATUS_lock_duration;
+static gint hf_svcctl_SERVICE_LOCK_STATUS_lock_owner;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_check_point;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_controls_accepted;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_process_id;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_service_exit_code;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_service_flags;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_state;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_type;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_wait_hint;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_win32_exit_code;
+static gint hf_svcctl_SERVICE_STATUS_check_point;
+static gint hf_svcctl_SERVICE_STATUS_controls_accepted;
+static gint hf_svcctl_SERVICE_STATUS_service_exit_code;
+static gint hf_svcctl_SERVICE_STATUS_state;
+static gint hf_svcctl_SERVICE_STATUS_type;
+static gint hf_svcctl_SERVICE_STATUS_wait_hint;
+static gint hf_svcctl_SERVICE_STATUS_win32_exit_code;
+static gint hf_svcctl_opnum;
+static gint hf_svcctl_service_buffer_size;
+static gint hf_svcctl_service_referent_id;
+static gint hf_svcctl_svcctl_ArgumentStringA_string;
+static gint hf_svcctl_svcctl_ArgumentString_string;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2A_info;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2A_info_level;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2A_service_handle;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2W_handle;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2W_info;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2W_info_level;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_binary_path;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_dependencies;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_display_name;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_error_control;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_password;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_service_handle;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_service_type;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_start_type;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_tag_id;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_binary_path;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_dependencies;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_display_name;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_dwDependSize;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_dwPwSize;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_error_control;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_password;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_service_handle;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_service_type;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_start_type;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_tag_id;
+static gint hf_svcctl_svcctl_CloseServiceHandle_object_handle;
+static gint hf_svcctl_svcctl_ControlService_control;
+static gint hf_svcctl_svcctl_ControlService_service_handle;
+static gint hf_svcctl_svcctl_ControlService_service_status;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_HARDWAREPROFILECHANGE;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_NETBINDCHANGE;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PARAMCHANGE;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PAUSE_CONTINUE;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_POWEREVENT;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_PRESHUTDOWN;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SESSIONCHANGE;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_SHUTDOWN;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_STOP;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TIMECHANGE;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_TRIGGEREVENT;
+static gint hf_svcctl_svcctl_ControlsAccepted_SERVICE_ACCEPT_USERMODEREBOOT;
+static gint hf_svcctl_svcctl_CreateServiceA_DisplayName;
+static gint hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey;
+static gint hf_svcctl_svcctl_CreateServiceA_ServiceName;
+static gint hf_svcctl_svcctl_CreateServiceA_binary_path;
+static gint hf_svcctl_svcctl_CreateServiceA_dependencies;
+static gint hf_svcctl_svcctl_CreateServiceA_dependencies_size;
+static gint hf_svcctl_svcctl_CreateServiceA_desired_access;
+static gint hf_svcctl_svcctl_CreateServiceA_error_control;
+static gint hf_svcctl_svcctl_CreateServiceA_password;
+static gint hf_svcctl_svcctl_CreateServiceA_password_size;
+static gint hf_svcctl_svcctl_CreateServiceA_scm_handle;
+static gint hf_svcctl_svcctl_CreateServiceA_service_handle;
+static gint hf_svcctl_svcctl_CreateServiceA_service_start_name;
+static gint hf_svcctl_svcctl_CreateServiceA_service_type;
+static gint hf_svcctl_svcctl_CreateServiceA_start_type;
+static gint hf_svcctl_svcctl_CreateServiceA_tag_id;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_DisplayName;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_LoadOrderGroupKey;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_ServiceName;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_binary_path;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_dependencies;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_dependencies_size;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_desired_access;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_error_control;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_handle;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_password;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_password_size;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_scm_handle;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_service_start_name;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_service_type;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_start_type;
+static gint hf_svcctl_svcctl_CreateServiceWOW64A_tag_id;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_DisplayName;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_LoadOrderGroupKey;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_ServiceName;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_binary_path;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_dependencies;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_dependencies_size;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_desired_access;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_error_control;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_handle;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_password;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_password_size;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_scm_handle;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_service_start_name;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_service_type;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_start_type;
+static gint hf_svcctl_svcctl_CreateServiceWOW64W_tag_id;
+static gint hf_svcctl_svcctl_CreateServiceW_DisplayName;
+static gint hf_svcctl_svcctl_CreateServiceW_LoadOrderGroup;
+static gint hf_svcctl_svcctl_CreateServiceW_ServiceName;
+static gint hf_svcctl_svcctl_CreateServiceW_binary_path;
+static gint hf_svcctl_svcctl_CreateServiceW_dependencies;
+static gint hf_svcctl_svcctl_CreateServiceW_dependencies_size;
+static gint hf_svcctl_svcctl_CreateServiceW_desired_access;
+static gint hf_svcctl_svcctl_CreateServiceW_error_control;
+static gint hf_svcctl_svcctl_CreateServiceW_password;
+static gint hf_svcctl_svcctl_CreateServiceW_password_size;
+static gint hf_svcctl_svcctl_CreateServiceW_scm_handle;
+static gint hf_svcctl_svcctl_CreateServiceW_service_handle;
+static gint hf_svcctl_svcctl_CreateServiceW_service_start_name;
+static gint hf_svcctl_svcctl_CreateServiceW_service_type;
+static gint hf_svcctl_svcctl_CreateServiceW_start_type;
+static gint hf_svcctl_svcctl_CreateServiceW_tag_id;
+static gint hf_svcctl_svcctl_CreateWowService_DisplayName;
+static gint hf_svcctl_svcctl_CreateWowService_LoadOrderGroupKey;
+static gint hf_svcctl_svcctl_CreateWowService_ServiceName;
+static gint hf_svcctl_svcctl_CreateWowService_binary_path;
+static gint hf_svcctl_svcctl_CreateWowService_dependencies;
+static gint hf_svcctl_svcctl_CreateWowService_dependencies_size;
+static gint hf_svcctl_svcctl_CreateWowService_desired_access;
+static gint hf_svcctl_svcctl_CreateWowService_error_control;
+static gint hf_svcctl_svcctl_CreateWowService_handle;
+static gint hf_svcctl_svcctl_CreateWowService_password;
+static gint hf_svcctl_svcctl_CreateWowService_password_size;
+static gint hf_svcctl_svcctl_CreateWowService_scm_handle;
+static gint hf_svcctl_svcctl_CreateWowService_service_start_name;
+static gint hf_svcctl_svcctl_CreateWowService_service_type;
+static gint hf_svcctl_svcctl_CreateWowService_service_wow_type;
+static gint hf_svcctl_svcctl_CreateWowService_start_type;
+static gint hf_svcctl_svcctl_CreateWowService_tag_id;
+static gint hf_svcctl_svcctl_DeleteService_service_handle;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_needed;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_offered;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_service_handle;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_service_status;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_services_returned;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_state;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_bytesneeded;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_offered;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_service_handle;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_service_state;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_service_status;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_services_returned;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_ResumeIndex;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_cbBufSize;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_lpBuffer;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_lpServicesReturned;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_pcbBytesNeeded;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_pszGroupName;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_scm_handle;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_service_state;
+static gint hf_svcctl_svcctl_EnumServiceGroupW_service_type;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_needed;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_offered;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_resume_handle;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_scm_handle;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_service;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_service_state;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_service_type;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_services_returned;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_bytes_needed;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_offered;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_resume_index;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_scm_handle;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_service_state;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_service_type;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_services;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_services_returned;
+static gint hf_svcctl_svcctl_GetCurrentGroupeStateW_handle;
+static gint hf_svcctl_svcctl_GetCurrentGroupeStateW_lpLoadOrderGroup;
+static gint hf_svcctl_svcctl_GetCurrentGroupeStateW_state;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_display_name;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_handle;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_service_name;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_display_name;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_scm_handle;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_service_name;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_key_name;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_scm_handle;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_service_name;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_display_name;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_scm_handle;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_service_name;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_service_name_length;
+static gint hf_svcctl_svcctl_LockServiceDatabase_lock_handle;
+static gint hf_svcctl_svcctl_LockServiceDatabase_scm_handle;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ALL_ACCESS;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS;
+static gint hf_svcctl_svcctl_NotifyBootConfigStatus_boot_acceptable;
+static gint hf_svcctl_svcctl_NotifyBootConfigStatus_machine_name;
+static gint hf_svcctl_svcctl_OpenSCManager2_database_name;
+static gint hf_svcctl_svcctl_OpenSCManager2_desired_access;
+static gint hf_svcctl_svcctl_OpenSCManager2_handle;
+static gint hf_svcctl_svcctl_OpenSCManagerA_DatabaseName;
+static gint hf_svcctl_svcctl_OpenSCManagerA_MachineName;
+static gint hf_svcctl_svcctl_OpenSCManagerA_access_mask;
+static gint hf_svcctl_svcctl_OpenSCManagerA_scm_handle;
+static gint hf_svcctl_svcctl_OpenSCManagerW_DatabaseName;
+static gint hf_svcctl_svcctl_OpenSCManagerW_MachineName;
+static gint hf_svcctl_svcctl_OpenSCManagerW_access_mask;
+static gint hf_svcctl_svcctl_OpenSCManagerW_scm_handle;
+static gint hf_svcctl_svcctl_OpenServiceA_ServiceName;
+static gint hf_svcctl_svcctl_OpenServiceA_access_mask;
+static gint hf_svcctl_svcctl_OpenServiceA_scm_handle;
+static gint hf_svcctl_svcctl_OpenServiceA_service_handle;
+static gint hf_svcctl_svcctl_OpenServiceW_ServiceName;
+static gint hf_svcctl_svcctl_OpenServiceW_access_mask;
+static gint hf_svcctl_svcctl_OpenServiceW_scm_handle;
+static gint hf_svcctl_svcctl_OpenServiceW_service_handle;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_buffer;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_handle;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_info_level;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_needed;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_offered;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_buffer;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_handle;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_info_level;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_needed;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_offered;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_needed;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_offered;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_query;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_service_handle;
+static gint hf_svcctl_svcctl_QueryServiceConfigEx_info_level;
+static gint hf_svcctl_svcctl_QueryServiceConfigEx_service_handle;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_needed;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_offered;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_service_config;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_service_handle;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_needed;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_offered;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_scm_handle;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_needed;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_offered;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_scm_handle;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_bytes_needed;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_offered;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_security_descriptor;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_service_handle;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_buffer;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_handle;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_info_level;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_needed;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_offered;
+static gint hf_svcctl_svcctl_QueryServiceStatus_service_handle;
+static gint hf_svcctl_svcctl_QueryServiceStatus_service_status;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_handle;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_lpString;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_service_bits;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_set_bits_on;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_update_immediately;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_lpString;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_service_bits;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_service_handle;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_set_bits_on;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_update_immediately;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_offered;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_security_descriptor;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_service_handle;
+static gint hf_svcctl_svcctl_SetServiceStatus_service_handle;
+static gint hf_svcctl_svcctl_SetServiceStatus_service_status;
+static gint hf_svcctl_svcctl_StartServiceA_Arguments;
+static gint hf_svcctl_svcctl_StartServiceA_NumArgs;
+static gint hf_svcctl_svcctl_StartServiceA_service_handle;
+static gint hf_svcctl_svcctl_StartServiceW_Arguments;
+static gint hf_svcctl_svcctl_StartServiceW_NumArgs;
+static gint hf_svcctl_svcctl_StartServiceW_service_handle;
+static gint hf_svcctl_svcctl_UnlockServiceDatabase_lock_handle;
+static gint hf_svcctl_werror;
static gint proto_dcerpc_svcctl = -1;
/* Version information */
@@ -8768,7 +8768,7 @@ svcctl_dissect_GetSharedServiceDirectory_request(tvbuff_t *tvb _U_, int offset _
}
-static dcerpc_sub_dissector svcctl_dissectors[] = {
+static const dcerpc_sub_dissector svcctl_dissectors[] = {
{ 0, "CloseServiceHandle",
svcctl_dissect_CloseServiceHandle_request, svcctl_dissect_CloseServiceHandle_response},
{ 1, "ControlService",
diff --git a/epan/dissectors/packet-dcerpc-tapi.c b/epan/dissectors/packet-dcerpc-tapi.c
index b0d660a5eb..99aa0d2e57 100644
--- a/epan/dissectors/packet-dcerpc-tapi.c
+++ b/epan/dissectors/packet-dcerpc-tapi.c
@@ -169,7 +169,7 @@ dissect_tapi_client_detach_reply(tvbuff_t *tvb _U_, int offset,
/*
IDL }
*/
-static dcerpc_sub_dissector dcerpc_tapi_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_tapi_dissectors[] = {
{ TAPI_CLIENT_ATTACH, "ClientAttach",
dissect_tapi_client_attach_rqst,
dissect_tapi_client_attach_reply },
diff --git a/epan/dissectors/packet-dcerpc-taskschedulerservice.c b/epan/dissectors/packet-dcerpc-taskschedulerservice.c
index 322569d2a4..64af777eab 100644
--- a/epan/dissectors/packet-dcerpc-taskschedulerservice.c
+++ b/epan/dissectors/packet-dcerpc-taskschedulerservice.c
@@ -25,7 +25,7 @@ static gint ett_taskschedulerservice;
static int proto_taskschedulerservice;
/* sub dissector table of ITaskSchedulerService interface */
-static dcerpc_sub_dissector taskschedulerservice_dissectors[] = {
+static const dcerpc_sub_dissector taskschedulerservice_dissectors[] = {
/* Just map operations for now. Payloads are encrypted due to PKT_PRIVACY */
{0, "SchRpcHighestVersion", NULL, NULL},
{1, "SchRpcRegisterTask", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-tkn4int.c b/epan/dissectors/packet-dcerpc-tkn4int.c
index 31b9d77baa..77b7af0819 100644
--- a/epan/dissectors/packet-dcerpc-tkn4int.c
+++ b/epan/dissectors/packet-dcerpc-tkn4int.c
@@ -32,7 +32,7 @@ static e_guid_t uuid_tkn4int = { 0x4d37f2dd, 0xed96, 0x0000, { 0x02, 0xc0, 0x37,
static guint16 ver_tkn4int = 4;
-static dcerpc_sub_dissector tkn4int_dissectors[] = {
+static const dcerpc_sub_dissector tkn4int_dissectors[] = {
{ 0, "Probe", NULL, NULL},
{ 1, "InitTokenState", NULL, NULL},
{ 2, "TokenRevoke", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-trksvr.c b/epan/dissectors/packet-dcerpc-trksvr.c
index ff1bb7a463..84c21b1a92 100644
--- a/epan/dissectors/packet-dcerpc-trksvr.c
+++ b/epan/dissectors/packet-dcerpc-trksvr.c
@@ -40,7 +40,7 @@ static e_guid_t uuid_dcerpc_trksvr = {
static guint16 ver_dcerpc_trksvr = 1;
-static dcerpc_sub_dissector dcerpc_trksvr_dissectors[] = {
+static const dcerpc_sub_dissector dcerpc_trksvr_dissectors[] = {
{ 0, "LnkSvrMessage",
NULL,
NULL },
diff --git a/epan/dissectors/packet-dcerpc-ubikdisk.c b/epan/dissectors/packet-dcerpc-ubikdisk.c
index bccc84e440..3e2d8b6504 100644
--- a/epan/dissectors/packet-dcerpc-ubikdisk.c
+++ b/epan/dissectors/packet-dcerpc-ubikdisk.c
@@ -32,7 +32,7 @@ static e_guid_t uuid_ubikdisk = { 0x4d37f2dd, 0xed43, 0x0002, { 0x02, 0xc0, 0x37
static guint16 ver_ubikdisk = 4;
-static dcerpc_sub_dissector ubikdisk_dissectors[] = {
+static const dcerpc_sub_dissector ubikdisk_dissectors[] = {
{ 0, "Begin", NULL, NULL},
{ 1, "Commit", NULL, NULL},
{ 2, "Lock", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-ubikvote.c b/epan/dissectors/packet-dcerpc-ubikvote.c
index 8f5f097dfc..30c7634b44 100644
--- a/epan/dissectors/packet-dcerpc-ubikvote.c
+++ b/epan/dissectors/packet-dcerpc-ubikvote.c
@@ -32,7 +32,7 @@ static e_guid_t uuid_ubikvote = { 0x4d37f2dd, 0xed43, 0x0003, { 0x02, 0xc0, 0x37
static guint16 ver_ubikvote = 4;
-static dcerpc_sub_dissector ubikvote_dissectors[] = {
+static const dcerpc_sub_dissector ubikvote_dissectors[] = {
{ 0, "Beacon", NULL, NULL},
{ 1, "Debug", NULL, NULL},
{ 2, "SDebug", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-update.c b/epan/dissectors/packet-dcerpc-update.c
index de51a697c6..f27b55aa6d 100644
--- a/epan/dissectors/packet-dcerpc-update.c
+++ b/epan/dissectors/packet-dcerpc-update.c
@@ -33,7 +33,7 @@ static e_guid_t uuid_dce_update =
static guint16 ver_dce_update = 4;
-static dcerpc_sub_dissector dce_update_dissectors[] = {
+static const dcerpc_sub_dissector dce_update_dissectors[] = {
{0, "UPDATE_GetServerInterfaces", NULL, NULL},
{1, "UPDATE_FetchInfo", NULL, NULL},
{2, "UPDATE_FetchFile", NULL, NULL},
diff --git a/epan/dissectors/packet-dcerpc-winreg.c b/epan/dissectors/packet-dcerpc-winreg.c
index e313087467..a205d92409 100644
--- a/epan/dissectors/packet-dcerpc-winreg.c
+++ b/epan/dissectors/packet-dcerpc-winreg.c
@@ -22,171 +22,171 @@ void proto_register_dcerpc_winreg(void);
void proto_reg_handoff_dcerpc_winreg(void);
/* Ett declarations */
-static gint ett_dcerpc_winreg = -1;
-static gint ett_winreg_security_secinfo = -1;
-static gint ett_winreg_winreg_AccessMask = -1;
-static gint ett_winreg_winreg_String = -1;
-static gint ett_winreg_KeySecurityData = -1;
-static gint ett_winreg_winreg_SecBuf = -1;
-static gint ett_winreg_winreg_KeyOptions = -1;
-static gint ett_winreg_winreg_StringBuf = -1;
-static gint ett_winreg_winreg_ValNameBuf = -1;
-static gint ett_winreg_winreg_NotifyChangeType = -1;
-static gint ett_winreg_winreg_RestoreKeyFlags = -1;
-static gint ett_winreg_KeySecurityAttribute = -1;
-static gint ett_winreg_QueryMultipleValue = -1;
+static gint ett_dcerpc_winreg;
+static gint ett_winreg_security_secinfo;
+static gint ett_winreg_winreg_AccessMask;
+static gint ett_winreg_winreg_String;
+static gint ett_winreg_KeySecurityData;
+static gint ett_winreg_winreg_SecBuf;
+static gint ett_winreg_winreg_KeyOptions;
+static gint ett_winreg_winreg_StringBuf;
+static gint ett_winreg_winreg_ValNameBuf;
+static gint ett_winreg_winreg_NotifyChangeType;
+static gint ett_winreg_winreg_RestoreKeyFlags;
+static gint ett_winreg_KeySecurityAttribute;
+static gint ett_winreg_QueryMultipleValue;
/* Header field declarations */
-static gint hf_winreg_KeySecurityAttribute_data_size = -1;
-static gint hf_winreg_KeySecurityAttribute_inherit = -1;
-static gint hf_winreg_KeySecurityAttribute_sec_data = -1;
-static gint hf_winreg_KeySecurityData_data = -1;
-static gint hf_winreg_KeySecurityData_len = -1;
-static gint hf_winreg_KeySecurityData_size = -1;
-static gint hf_winreg_QueryMultipleValue_ve_type = -1;
-static gint hf_winreg_QueryMultipleValue_ve_valuelen = -1;
-static gint hf_winreg_QueryMultipleValue_ve_valuename = -1;
-static gint hf_winreg_QueryMultipleValue_ve_valueptr = -1;
-static gint hf_winreg_access_mask = -1;
-static gint hf_winreg_handle = -1;
-static gint hf_winreg_opnum = -1;
-static gint hf_winreg_sd = -1;
-static gint hf_winreg_sd_actual_size = -1;
-static gint hf_winreg_sd_max_size = -1;
-static gint hf_winreg_sd_offset = -1;
-static gint hf_winreg_system_name = -1;
-static gint hf_winreg_werror = -1;
-static gint hf_winreg_winreg_AbortSystemShutdown_server = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_CREATE_LINK = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_NOTIFY = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_SET_VALUE = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY = -1;
-static gint hf_winreg_winreg_CreateKey_action_taken = -1;
-static gint hf_winreg_winreg_CreateKey_keyclass = -1;
-static gint hf_winreg_winreg_CreateKey_name = -1;
-static gint hf_winreg_winreg_CreateKey_new_handle = -1;
-static gint hf_winreg_winreg_CreateKey_options = -1;
-static gint hf_winreg_winreg_CreateKey_secdesc = -1;
-static gint hf_winreg_winreg_DeleteKeyEx_access_mask = -1;
-static gint hf_winreg_winreg_DeleteKeyEx_handle = -1;
-static gint hf_winreg_winreg_DeleteKeyEx_key = -1;
-static gint hf_winreg_winreg_DeleteKeyEx_reserved = -1;
-static gint hf_winreg_winreg_DeleteKey_key = -1;
-static gint hf_winreg_winreg_DeleteValue_value = -1;
-static gint hf_winreg_winreg_EnumKey_enum_index = -1;
-static gint hf_winreg_winreg_EnumKey_keyclass = -1;
-static gint hf_winreg_winreg_EnumKey_last_changed_time = -1;
-static gint hf_winreg_winreg_EnumKey_name = -1;
-static gint hf_winreg_winreg_EnumValue_enum_index = -1;
-static gint hf_winreg_winreg_EnumValue_length = -1;
-static gint hf_winreg_winreg_EnumValue_name = -1;
-static gint hf_winreg_winreg_EnumValue_size = -1;
-static gint hf_winreg_winreg_EnumValue_type = -1;
-static gint hf_winreg_winreg_EnumValue_value = -1;
-static gint hf_winreg_winreg_GetKeySecurity_sec_info = -1;
-static gint hf_winreg_winreg_GetVersion_version = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_force_apps = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_hostname = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_message = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_reason = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_timeout = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_do_reboot = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_force_apps = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_hostname = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_message = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_timeout = -1;
-static gint hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE = -1;
-static gint hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK = -1;
-static gint hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK = -1;
-static gint hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE = -1;
-static gint hf_winreg_winreg_LoadKey_filename = -1;
-static gint hf_winreg_winreg_LoadKey_keyname = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_notify_filter = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_string1 = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_string2 = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown2 = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree = -1;
-static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES = -1;
-static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET = -1;
-static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME = -1;
-static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY = -1;
-static gint hf_winreg_winreg_OpenHKCU_access_mask = -1;
-static gint hf_winreg_winreg_OpenHKPD_access_mask = -1;
-static gint hf_winreg_winreg_OpenKey_access_mask = -1;
-static gint hf_winreg_winreg_OpenKey_keyname = -1;
-static gint hf_winreg_winreg_OpenKey_options = -1;
-static gint hf_winreg_winreg_OpenKey_parent_handle = -1;
-static gint hf_winreg_winreg_QueryInfoKey_classname = -1;
-static gint hf_winreg_winreg_QueryInfoKey_last_changed_time = -1;
-static gint hf_winreg_winreg_QueryInfoKey_max_classlen = -1;
-static gint hf_winreg_winreg_QueryInfoKey_max_subkeylen = -1;
-static gint hf_winreg_winreg_QueryInfoKey_max_valbufsize = -1;
-static gint hf_winreg_winreg_QueryInfoKey_max_valnamelen = -1;
-static gint hf_winreg_winreg_QueryInfoKey_num_subkeys = -1;
-static gint hf_winreg_winreg_QueryInfoKey_num_values = -1;
-static gint hf_winreg_winreg_QueryInfoKey_secdescsize = -1;
-static gint hf_winreg_winreg_QueryMultipleValues2_buffer = -1;
-static gint hf_winreg_winreg_QueryMultipleValues2_key_handle = -1;
-static gint hf_winreg_winreg_QueryMultipleValues2_needed = -1;
-static gint hf_winreg_winreg_QueryMultipleValues2_num_values = -1;
-static gint hf_winreg_winreg_QueryMultipleValues2_offered = -1;
-static gint hf_winreg_winreg_QueryMultipleValues2_values_in = -1;
-static gint hf_winreg_winreg_QueryMultipleValues2_values_out = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_buffer = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_buffer_size = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_key_handle = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_num_values = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_values_in = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_values_out = -1;
-static gint hf_winreg_winreg_QueryValue_data = -1;
-static gint hf_winreg_winreg_QueryValue_data_length = -1;
-static gint hf_winreg_winreg_QueryValue_data_size = -1;
-static gint hf_winreg_winreg_QueryValue_type = -1;
-static gint hf_winreg_winreg_QueryValue_value_name = -1;
-static gint hf_winreg_winreg_ReplaceKey_handle = -1;
-static gint hf_winreg_winreg_ReplaceKey_new_file = -1;
-static gint hf_winreg_winreg_ReplaceKey_old_file = -1;
-static gint hf_winreg_winreg_ReplaceKey_subkey = -1;
-static gint hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE = -1;
-static gint hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH = -1;
-static gint hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE = -1;
-static gint hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE = -1;
-static gint hf_winreg_winreg_RestoreKey_filename = -1;
-static gint hf_winreg_winreg_RestoreKey_flags = -1;
-static gint hf_winreg_winreg_RestoreKey_handle = -1;
-static gint hf_winreg_winreg_SaveKeyEx_filename = -1;
-static gint hf_winreg_winreg_SaveKeyEx_flags = -1;
-static gint hf_winreg_winreg_SaveKeyEx_handle = -1;
-static gint hf_winreg_winreg_SaveKeyEx_sec_attrib = -1;
-static gint hf_winreg_winreg_SaveKey_filename = -1;
-static gint hf_winreg_winreg_SaveKey_handle = -1;
-static gint hf_winreg_winreg_SaveKey_sec_attrib = -1;
-static gint hf_winreg_winreg_SecBuf_inherit = -1;
-static gint hf_winreg_winreg_SecBuf_length = -1;
-static gint hf_winreg_winreg_SecBuf_sd = -1;
-static gint hf_winreg_winreg_SetKeySecurity_sec_info = -1;
-static gint hf_winreg_winreg_SetValue_data = -1;
-static gint hf_winreg_winreg_SetValue_name = -1;
-static gint hf_winreg_winreg_SetValue_size = -1;
-static gint hf_winreg_winreg_SetValue_type = -1;
-static gint hf_winreg_winreg_StringBuf_length = -1;
-static gint hf_winreg_winreg_StringBuf_name = -1;
-static gint hf_winreg_winreg_StringBuf_size = -1;
-static gint hf_winreg_winreg_String_name = -1;
-static gint hf_winreg_winreg_String_name_len = -1;
-static gint hf_winreg_winreg_String_name_size = -1;
-static gint hf_winreg_winreg_UnLoadKey_handle = -1;
-static gint hf_winreg_winreg_UnLoadKey_subkey = -1;
-static gint hf_winreg_winreg_ValNameBuf_length = -1;
-static gint hf_winreg_winreg_ValNameBuf_name = -1;
-static gint hf_winreg_winreg_ValNameBuf_size = -1;
+static gint hf_winreg_KeySecurityAttribute_data_size;
+static gint hf_winreg_KeySecurityAttribute_inherit;
+static gint hf_winreg_KeySecurityAttribute_sec_data;
+static gint hf_winreg_KeySecurityData_data;
+static gint hf_winreg_KeySecurityData_len;
+static gint hf_winreg_KeySecurityData_size;
+static gint hf_winreg_QueryMultipleValue_ve_type;
+static gint hf_winreg_QueryMultipleValue_ve_valuelen;
+static gint hf_winreg_QueryMultipleValue_ve_valuename;
+static gint hf_winreg_QueryMultipleValue_ve_valueptr;
+static gint hf_winreg_access_mask;
+static gint hf_winreg_handle;
+static gint hf_winreg_opnum;
+static gint hf_winreg_sd;
+static gint hf_winreg_sd_actual_size;
+static gint hf_winreg_sd_max_size;
+static gint hf_winreg_sd_offset;
+static gint hf_winreg_system_name;
+static gint hf_winreg_werror;
+static gint hf_winreg_winreg_AbortSystemShutdown_server;
+static gint hf_winreg_winreg_AccessMask_KEY_CREATE_LINK;
+static gint hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY;
+static gint hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS;
+static gint hf_winreg_winreg_AccessMask_KEY_NOTIFY;
+static gint hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE;
+static gint hf_winreg_winreg_AccessMask_KEY_SET_VALUE;
+static gint hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY;
+static gint hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY;
+static gint hf_winreg_winreg_CreateKey_action_taken;
+static gint hf_winreg_winreg_CreateKey_keyclass;
+static gint hf_winreg_winreg_CreateKey_name;
+static gint hf_winreg_winreg_CreateKey_new_handle;
+static gint hf_winreg_winreg_CreateKey_options;
+static gint hf_winreg_winreg_CreateKey_secdesc;
+static gint hf_winreg_winreg_DeleteKeyEx_access_mask;
+static gint hf_winreg_winreg_DeleteKeyEx_handle;
+static gint hf_winreg_winreg_DeleteKeyEx_key;
+static gint hf_winreg_winreg_DeleteKeyEx_reserved;
+static gint hf_winreg_winreg_DeleteKey_key;
+static gint hf_winreg_winreg_DeleteValue_value;
+static gint hf_winreg_winreg_EnumKey_enum_index;
+static gint hf_winreg_winreg_EnumKey_keyclass;
+static gint hf_winreg_winreg_EnumKey_last_changed_time;
+static gint hf_winreg_winreg_EnumKey_name;
+static gint hf_winreg_winreg_EnumValue_enum_index;
+static gint hf_winreg_winreg_EnumValue_length;
+static gint hf_winreg_winreg_EnumValue_name;
+static gint hf_winreg_winreg_EnumValue_size;
+static gint hf_winreg_winreg_EnumValue_type;
+static gint hf_winreg_winreg_EnumValue_value;
+static gint hf_winreg_winreg_GetKeySecurity_sec_info;
+static gint hf_winreg_winreg_GetVersion_version;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_force_apps;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_hostname;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_message;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_reason;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_timeout;
+static gint hf_winreg_winreg_InitiateSystemShutdown_do_reboot;
+static gint hf_winreg_winreg_InitiateSystemShutdown_force_apps;
+static gint hf_winreg_winreg_InitiateSystemShutdown_hostname;
+static gint hf_winreg_winreg_InitiateSystemShutdown_message;
+static gint hf_winreg_winreg_InitiateSystemShutdown_timeout;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE;
+static gint hf_winreg_winreg_LoadKey_filename;
+static gint hf_winreg_winreg_LoadKey_keyname;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_notify_filter;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_string1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_string2;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown2;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY;
+static gint hf_winreg_winreg_OpenHKCU_access_mask;
+static gint hf_winreg_winreg_OpenHKPD_access_mask;
+static gint hf_winreg_winreg_OpenKey_access_mask;
+static gint hf_winreg_winreg_OpenKey_keyname;
+static gint hf_winreg_winreg_OpenKey_options;
+static gint hf_winreg_winreg_OpenKey_parent_handle;
+static gint hf_winreg_winreg_QueryInfoKey_classname;
+static gint hf_winreg_winreg_QueryInfoKey_last_changed_time;
+static gint hf_winreg_winreg_QueryInfoKey_max_classlen;
+static gint hf_winreg_winreg_QueryInfoKey_max_subkeylen;
+static gint hf_winreg_winreg_QueryInfoKey_max_valbufsize;
+static gint hf_winreg_winreg_QueryInfoKey_max_valnamelen;
+static gint hf_winreg_winreg_QueryInfoKey_num_subkeys;
+static gint hf_winreg_winreg_QueryInfoKey_num_values;
+static gint hf_winreg_winreg_QueryInfoKey_secdescsize;
+static gint hf_winreg_winreg_QueryMultipleValues2_buffer;
+static gint hf_winreg_winreg_QueryMultipleValues2_key_handle;
+static gint hf_winreg_winreg_QueryMultipleValues2_needed;
+static gint hf_winreg_winreg_QueryMultipleValues2_num_values;
+static gint hf_winreg_winreg_QueryMultipleValues2_offered;
+static gint hf_winreg_winreg_QueryMultipleValues2_values_in;
+static gint hf_winreg_winreg_QueryMultipleValues2_values_out;
+static gint hf_winreg_winreg_QueryMultipleValues_buffer;
+static gint hf_winreg_winreg_QueryMultipleValues_buffer_size;
+static gint hf_winreg_winreg_QueryMultipleValues_key_handle;
+static gint hf_winreg_winreg_QueryMultipleValues_num_values;
+static gint hf_winreg_winreg_QueryMultipleValues_values_in;
+static gint hf_winreg_winreg_QueryMultipleValues_values_out;
+static gint hf_winreg_winreg_QueryValue_data;
+static gint hf_winreg_winreg_QueryValue_data_length;
+static gint hf_winreg_winreg_QueryValue_data_size;
+static gint hf_winreg_winreg_QueryValue_type;
+static gint hf_winreg_winreg_QueryValue_value_name;
+static gint hf_winreg_winreg_ReplaceKey_handle;
+static gint hf_winreg_winreg_ReplaceKey_new_file;
+static gint hf_winreg_winreg_ReplaceKey_old_file;
+static gint hf_winreg_winreg_ReplaceKey_subkey;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE;
+static gint hf_winreg_winreg_RestoreKey_filename;
+static gint hf_winreg_winreg_RestoreKey_flags;
+static gint hf_winreg_winreg_RestoreKey_handle;
+static gint hf_winreg_winreg_SaveKeyEx_filename;
+static gint hf_winreg_winreg_SaveKeyEx_flags;
+static gint hf_winreg_winreg_SaveKeyEx_handle;
+static gint hf_winreg_winreg_SaveKeyEx_sec_attrib;
+static gint hf_winreg_winreg_SaveKey_filename;
+static gint hf_winreg_winreg_SaveKey_handle;
+static gint hf_winreg_winreg_SaveKey_sec_attrib;
+static gint hf_winreg_winreg_SecBuf_inherit;
+static gint hf_winreg_winreg_SecBuf_length;
+static gint hf_winreg_winreg_SecBuf_sd;
+static gint hf_winreg_winreg_SetKeySecurity_sec_info;
+static gint hf_winreg_winreg_SetValue_data;
+static gint hf_winreg_winreg_SetValue_name;
+static gint hf_winreg_winreg_SetValue_size;
+static gint hf_winreg_winreg_SetValue_type;
+static gint hf_winreg_winreg_StringBuf_length;
+static gint hf_winreg_winreg_StringBuf_name;
+static gint hf_winreg_winreg_StringBuf_size;
+static gint hf_winreg_winreg_String_name;
+static gint hf_winreg_winreg_String_name_len;
+static gint hf_winreg_winreg_String_name_size;
+static gint hf_winreg_winreg_UnLoadKey_handle;
+static gint hf_winreg_winreg_UnLoadKey_subkey;
+static gint hf_winreg_winreg_ValNameBuf_length;
+static gint hf_winreg_winreg_ValNameBuf_name;
+static gint hf_winreg_winreg_ValNameBuf_size;
static gint proto_dcerpc_winreg = -1;
/* Version information */
@@ -579,7 +579,7 @@ winreg_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32 acc
};
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info winreg_access_mask_info = {
+static struct access_mask_info winreg_access_mask_info = {
"WINREG", /* Name of specific rights */
winreg_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -4679,7 +4679,7 @@ winreg_dissect_DeleteKeyEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_inf
}
-static dcerpc_sub_dissector winreg_dissectors[] = {
+static const dcerpc_sub_dissector winreg_dissectors[] = {
{ 0, "OpenHKCR",
winreg_dissect_OpenHKCR_request, winreg_dissect_OpenHKCR_response},
{ 1, "OpenHKCU",
diff --git a/epan/dissectors/packet-dcerpc-winspool.c b/epan/dissectors/packet-dcerpc-winspool.c
index 53e77065fc..96dfdd3bb0 100644
--- a/epan/dissectors/packet-dcerpc-winspool.c
+++ b/epan/dissectors/packet-dcerpc-winspool.c
@@ -22,362 +22,362 @@ void proto_register_dcerpc_iremotewinspool(void);
void proto_reg_handoff_dcerpc_iremotewinspool(void);
/* Ett declarations */
-static gint ett_dcerpc_iremotewinspool = -1;
-static gint ett_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER = -1;
-static gint ett_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER = -1;
-static gint ett_iremotewinspool_winspool_PrintPropertyValueUnion = -1;
-static gint ett_iremotewinspool_winspool_PrintPropertyValue = -1;
-static gint ett_iremotewinspool_winspool_PrintNamedProperty = -1;
-static gint ett_iremotewinspool_winspool_PrintPropertiesCollection = -1;
-static gint ett_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags = -1;
-static gint ett_iremotewinspool_winspool_UploadPrinterDriverPackageFlags = -1;
+static gint ett_dcerpc_iremotewinspool;
+static gint ett_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER;
+static gint ett_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER;
+static gint ett_iremotewinspool_winspool_PrintPropertyValueUnion;
+static gint ett_iremotewinspool_winspool_PrintPropertyValue;
+static gint ett_iremotewinspool_winspool_PrintNamedProperty;
+static gint ett_iremotewinspool_winspool_PrintPropertiesCollection;
+static gint ett_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags;
+static gint ett_iremotewinspool_winspool_UploadPrinterDriverPackageFlags;
/* Header field declarations */
-static gint hf_iremotewinspool_hresult = -1;
-static gint hf_iremotewinspool_opnum = -1;
-static gint hf_iremotewinspool_sec_desc_buf_len = -1;
-static gint hf_iremotewinspool_werror = -1;
-static gint hf_iremotewinspool_winspool_AsyncAbortPrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddForm_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddForm_pFormInfoContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddJob_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddJob_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddJob_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddJob_pAddJob = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddJob_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddMonitor_Name = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddMonitor_pMonitorContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrintServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrinterName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pProvider = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPort_pMonitorName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPort_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPort_pPortContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPort_pPortVarContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPathName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPrintProcessorName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_dwFileCopyFlags = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pDriverContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pClientInfo = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pDevModeContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pHandle = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pPrinterContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pSecurityContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncClosePrinter_phPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID = -1;
-static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion = -1;
-static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate = -1;
-static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled = -1;
-static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pDevModeContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pHandle = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteForm_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteForm_pFormName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_JobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_pszName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_Name = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_pMonitorName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pPrinterName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_Name = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pPrintProcessorName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pKeyName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterData_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterData_pValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwVersionNum = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pDriverName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszInfPath = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pDriverName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterIC_phPrinterIC = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterKey_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinterKey_pKeyName = -1;
-static gint hf_iremotewinspool_winspool_AsyncDeletePrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEndDocPrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEndPagePrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumForms_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumForms_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumForms_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumForms_pForm = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumForms_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumForms_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_JobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_pcProperties = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_ppProperties = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_FirstJob = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_NoJobs = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pJob = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pMonitor = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pPrinterEnum = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPorts_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPorts_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pPort = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_cbEnumValues = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pEnumValues = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pKeyName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pcbEnumValues = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pnEnumValues = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbData = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_dwIndex = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pData = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pType = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbData = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pDrivers = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_cbSubkey = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pKeyName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pSubkey = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pcbSubkey = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_Flags = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pPrinterEnum = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pcReturned = -1;
-static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetForm_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetForm_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetForm_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetForm_pForm = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetForm_pFormName = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetForm_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_JobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pValue = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pszName = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJob_JobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJob_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJob_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJob_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJob_pJob = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetJob_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_nSize = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pData = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pKeyName = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pType = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_nSize = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pData = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pType = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMajorVersion = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMinorVersion = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pDriver = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMinVersion = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinter_Level = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinter_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinter_pPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetPrinter_pcbNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_hRpcHandle = -1;
-static gint hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_ppNotifyData = -1;
-static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags = -1;
-static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName = -1;
-static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath = -1;
-static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_AccessRequired = -1;
-static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pClientInfo = -1;
-static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pDatatype = -1;
-static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pDevModeContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pHandle = -1;
-static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pPrinterName = -1;
-static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn = -1;
-static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut = -1;
-static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC = -1;
-static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn = -1;
-static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut = -1;
-static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_ul = -1;
-static gint hf_iremotewinspool_winspool_AsyncReadPrinter_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncReadPrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncReadPrinter_pBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncReadPrinter_pcNoBytesRead = -1;
-static gint hf_iremotewinspool_winspool_AsyncResetPrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncResetPrinter_pDatatype = -1;
-static gint hf_iremotewinspool_winspool_AsyncResetPrinter_pDevModeContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncScheduleJob_JobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncScheduleJob_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pAction = -1;
-static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pReqData = -1;
-static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_ppRespData = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetForm_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetForm_pFormInfoContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetForm_pFormName = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_JobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_pProperty = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetJob_Command = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetJob_JobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetJob_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetJob_pJobContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPort_pName = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPort_pPortContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPort_pPortName = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_Type = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_cbData = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pData = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pKeyName = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_Type = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_cbData = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_pData = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_pValueName = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinter_Command = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pDevModeContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pPrinterContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pSecurityContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_pDocInfoContainer = -1;
-static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_pJobId = -1;
-static gint hf_iremotewinspool_winspool_AsyncStartPagePrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_dwFlags = -1;
-static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath = -1;
-static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath = -1;
-static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment = -1;
-static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszInfPath = -1;
-static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszServer = -1;
-static gint hf_iremotewinspool_winspool_AsyncWritePrinter_cbBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncWritePrinter_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_AsyncWritePrinter_pBuf = -1;
-static gint hf_iremotewinspool_winspool_AsyncWritePrinter_pcWritten = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_cbInputData = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_cbOutputData = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_hXcv = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_pInputData = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_pOutputData = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_pcbOutputNeeded = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_pdwStatus = -1;
-static gint hf_iremotewinspool_winspool_AsyncXcvData_pszDataName = -1;
-static gint hf_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags_IPDFP_COPY_ALL_FILES = -1;
-static gint hf_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions = -1;
-static gint hf_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER_pInfo = -1;
-static gint hf_iremotewinspool_winspool_PrintNamedProperty_propertyName = -1;
-static gint hf_iremotewinspool_winspool_PrintNamedProperty_propertyValue = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertiesCollection_numberOfProperties = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertiesCollection_propertiesCollection = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyByte = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyDevModeContainer = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt32 = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt64 = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyOptionsContainer = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyReplyContainer = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertySDContainer = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyString = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyTimeContainer = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValue_PropertyType = -1;
-static gint hf_iremotewinspool_winspool_PrintPropertyValue_value = -1;
-static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_hRpcHandle = -1;
-static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_pNotifyFilter = -1;
-static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_ppNotifyData = -1;
-static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_hPrinter = -1;
-static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter = -1;
-static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_phRpcHandle = -1;
-static gint hf_iremotewinspool_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle = -1;
-static gint hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_CHECK_DRIVERSTORE = -1;
-static gint hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_UPLOAD_ALWAYS = -1;
+static gint hf_iremotewinspool_hresult;
+static gint hf_iremotewinspool_opnum;
+static gint hf_iremotewinspool_sec_desc_buf_len;
+static gint hf_iremotewinspool_werror;
+static gint hf_iremotewinspool_winspool_AsyncAbortPrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncAddForm_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncAddForm_pFormInfoContainer;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_Level;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_pAddJob;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncAddMonitor_Name;
+static gint hf_iremotewinspool_winspool_AsyncAddMonitor_pMonitorContainer;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrintServer;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrinterName;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pProvider;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pServer;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pMonitorName;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pName;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pPortContainer;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pPortVarContainer;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pName;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPathName;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPrintProcessorName;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_dwFileCopyFlags;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pDriverContainer;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pName;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pClientInfo;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pDevModeContainer;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pHandle;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pName;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pPrinterContainer;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pSecurityContainer;
+static gint hf_iremotewinspool_winspool_AsyncClosePrinter_phPrinter;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszServer;
+static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pDevModeContainer;
+static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pHandle;
+static gint hf_iremotewinspool_winspool_AsyncDeleteForm_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncDeleteForm_pFormName;
+static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_JobId;
+static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_pszName;
+static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_Name;
+static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_pMonitorName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pPrinterName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pServer;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_Name;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pPrintProcessorName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pKeyName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pValueName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterData_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterData_pValueName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwVersionNum;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pDriverName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszInfPath;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszServer;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pDriverName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterIC_phPrinterIC;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterKey_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterKey_pKeyName;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEndDocPrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEndPagePrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_pForm;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_JobId;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_pcProperties;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_ppProperties;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_FirstJob;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_NoJobs;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pJob;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pMonitor;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pName;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pPrinterEnum;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pServer;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pPort;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_cbEnumValues;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pEnumValues;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pKeyName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pcbEnumValues;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pnEnumValues;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbData;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbValueName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_dwIndex;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pData;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pType;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pValueName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbData;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbValueName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pDrivers;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_cbSubkey;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pKeyName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pSubkey;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pcbSubkey;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_Flags;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_Level;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pName;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pPrinterEnum;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pcReturned;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszServer;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_Level;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_pForm;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_pFormName;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_JobId;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pValue;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pszName;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_JobId;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_Level;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_pJob;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_Level;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pName;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_nSize;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pData;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pKeyName;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pType;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pValueName;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_nSize;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pData;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pType;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pValueName;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_Level;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pName;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszServer;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_Level;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMajorVersion;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMinorVersion;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pDriver;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMinVersion;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_Level;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_pPrinter;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_pcbNeeded;
+static gint hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_hRpcHandle;
+static gint hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_ppNotifyData;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszServer;
+static gint hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_AccessRequired;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pClientInfo;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pDatatype;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pDevModeContainer;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pHandle;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pPrinterName;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_ul;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_pBuf;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_pcNoBytesRead;
+static gint hf_iremotewinspool_winspool_AsyncResetPrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncResetPrinter_pDatatype;
+static gint hf_iremotewinspool_winspool_AsyncResetPrinter_pDevModeContainer;
+static gint hf_iremotewinspool_winspool_AsyncScheduleJob_JobId;
+static gint hf_iremotewinspool_winspool_AsyncScheduleJob_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pAction;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pReqData;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_ppRespData;
+static gint hf_iremotewinspool_winspool_AsyncSetForm_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSetForm_pFormInfoContainer;
+static gint hf_iremotewinspool_winspool_AsyncSetForm_pFormName;
+static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_JobId;
+static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_pProperty;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_Command;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_JobId;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_pJobContainer;
+static gint hf_iremotewinspool_winspool_AsyncSetPort_pName;
+static gint hf_iremotewinspool_winspool_AsyncSetPort_pPortContainer;
+static gint hf_iremotewinspool_winspool_AsyncSetPort_pPortName;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_Type;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_cbData;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pData;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pKeyName;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pValueName;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_Type;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_cbData;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_pData;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_pValueName;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_Command;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pDevModeContainer;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pPrinterContainer;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pSecurityContainer;
+static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_pDocInfoContainer;
+static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_pJobId;
+static gint hf_iremotewinspool_winspool_AsyncStartPagePrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_dwFlags;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszInfPath;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszServer;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_cbBuf;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_hPrinter;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_pBuf;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_pcWritten;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_cbInputData;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_cbOutputData;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_hXcv;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pInputData;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pOutputData;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pcbOutputNeeded;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pdwStatus;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pszDataName;
+static gint hf_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags_IPDFP_COPY_ALL_FILES;
+static gint hf_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions;
+static gint hf_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER_pInfo;
+static gint hf_iremotewinspool_winspool_PrintNamedProperty_propertyName;
+static gint hf_iremotewinspool_winspool_PrintNamedProperty_propertyValue;
+static gint hf_iremotewinspool_winspool_PrintPropertiesCollection_numberOfProperties;
+static gint hf_iremotewinspool_winspool_PrintPropertiesCollection_propertiesCollection;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyByte;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyDevModeContainer;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt32;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt64;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyOptionsContainer;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyReplyContainer;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertySDContainer;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyString;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyTimeContainer;
+static gint hf_iremotewinspool_winspool_PrintPropertyValue_PropertyType;
+static gint hf_iremotewinspool_winspool_PrintPropertyValue_value;
+static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_hRpcHandle;
+static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_pNotifyFilter;
+static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_ppNotifyData;
+static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_hPrinter;
+static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter;
+static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_phRpcHandle;
+static gint hf_iremotewinspool_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle;
+static gint hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_CHECK_DRIVERSTORE;
+static gint hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_UPLOAD_ALWAYS;
static gint proto_dcerpc_iremotewinspool = -1;
/* Version information */
@@ -9177,7 +9177,7 @@ iremotewinspool_dissect_winspool_AsyncLogJobInfoForBranchOffice_request(tvbuff_t
}
-static dcerpc_sub_dissector iremotewinspool_dissectors[] = {
+static const dcerpc_sub_dissector iremotewinspool_dissectors[] = {
{ 0, "winspool_AsyncOpenPrinter",
iremotewinspool_dissect_winspool_AsyncOpenPrinter_request, iremotewinspool_dissect_winspool_AsyncOpenPrinter_response},
{ 1, "winspool_AsyncAddPrinter",
diff --git a/epan/dissectors/packet-dcerpc-witness.c b/epan/dissectors/packet-dcerpc-witness.c
index 8d232deb1b..9e19034edf 100644
--- a/epan/dissectors/packet-dcerpc-witness.c
+++ b/epan/dissectors/packet-dcerpc-witness.c
@@ -22,75 +22,75 @@ void proto_register_dcerpc_witness(void);
void proto_reg_handoff_dcerpc_witness(void);
/* Ett declarations */
-static gint ett_dcerpc_witness = -1;
-static gint ett_witness_witness_interfaceInfo_flags = -1;
-static gint ett_witness_witness_interfaceInfo = -1;
-static gint ett_witness_witness_interfaceList = -1;
-static gint ett_witness_witness_ResourceChange = -1;
-static gint ett_witness_witness_IPaddrInfo_flags = -1;
-static gint ett_witness_witness_IPaddrInfo = -1;
-static gint ett_witness_witness_IPaddrInfoList = -1;
-static gint ett_witness_witness_notifyResponse_message = -1;
-static gint ett_witness_witness_notifyResponse = -1;
-static gint ett_witness_witness_RegisterEx_flags = -1;
+static gint ett_dcerpc_witness;
+static gint ett_witness_witness_interfaceInfo_flags;
+static gint ett_witness_witness_interfaceInfo;
+static gint ett_witness_witness_interfaceList;
+static gint ett_witness_witness_ResourceChange;
+static gint ett_witness_witness_IPaddrInfo_flags;
+static gint ett_witness_witness_IPaddrInfo;
+static gint ett_witness_witness_IPaddrInfoList;
+static gint ett_witness_witness_notifyResponse_message;
+static gint ett_witness_witness_notifyResponse;
+static gint ett_witness_witness_RegisterEx_flags;
/* Header field declarations */
-static gint hf_witness_opnum = -1;
-static gint hf_witness_werror = -1;
-static gint hf_witness_witness_AsyncNotify_context_handle = -1;
-static gint hf_witness_witness_AsyncNotify_response = -1;
-static gint hf_witness_witness_GetInterfaceList_interface_list = -1;
-static gint hf_witness_witness_IPaddrInfoList_addr = -1;
-static gint hf_witness_witness_IPaddrInfoList_length = -1;
-static gint hf_witness_witness_IPaddrInfoList_num = -1;
-static gint hf_witness_witness_IPaddrInfoList_reserved = -1;
-static gint hf_witness_witness_IPaddrInfo_flags = -1;
-static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_OFFLINE = -1;
-static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_ONLINE = -1;
-static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_V4 = -1;
-static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_V6 = -1;
-static gint hf_witness_witness_IPaddrInfo_ipv4 = -1;
-static gint hf_witness_witness_IPaddrInfo_ipv6 = -1;
-static gint hf_witness_witness_RegisterEx_client_computer_name = -1;
-static gint hf_witness_witness_RegisterEx_context_handle = -1;
-static gint hf_witness_witness_RegisterEx_flags = -1;
-static gint hf_witness_witness_RegisterEx_flags_WITNESS_REGISTER_IP_NOTIFICATION = -1;
-static gint hf_witness_witness_RegisterEx_ip_address = -1;
-static gint hf_witness_witness_RegisterEx_net_name = -1;
-static gint hf_witness_witness_RegisterEx_share_name = -1;
-static gint hf_witness_witness_RegisterEx_timeout = -1;
-static gint hf_witness_witness_RegisterEx_version = -1;
-static gint hf_witness_witness_Register_client_computer_name = -1;
-static gint hf_witness_witness_Register_context_handle = -1;
-static gint hf_witness_witness_Register_ip_address = -1;
-static gint hf_witness_witness_Register_net_name = -1;
-static gint hf_witness_witness_Register_version = -1;
-static gint hf_witness_witness_ResourceChange_length = -1;
-static gint hf_witness_witness_ResourceChange_name = -1;
-static gint hf_witness_witness_ResourceChange_type = -1;
-static gint hf_witness_witness_UnRegister_context_handle = -1;
-static gint hf_witness_witness_interfaceInfo_flags = -1;
-static gint hf_witness_witness_interfaceInfo_flags_WITNESS_INFO_IPv4_VALID = -1;
-static gint hf_witness_witness_interfaceInfo_flags_WITNESS_INFO_IPv6_VALID = -1;
-static gint hf_witness_witness_interfaceInfo_flags_WITNESS_INFO_WITNESS_IF = -1;
-static gint hf_witness_witness_interfaceInfo_group_name = -1;
-static gint hf_witness_witness_interfaceInfo_ipv4 = -1;
-static gint hf_witness_witness_interfaceInfo_ipv6 = -1;
-static gint hf_witness_witness_interfaceInfo_state = -1;
-static gint hf_witness_witness_interfaceInfo_version = -1;
-static gint hf_witness_witness_interfaceList_interfaces = -1;
-static gint hf_witness_witness_interfaceList_num_interfaces = -1;
-static gint hf_witness_witness_notifyResponse_length = -1;
-static gint hf_witness_witness_notifyResponse_message_client_move = -1;
-static gint hf_witness_witness_notifyResponse_message_data = -1;
-static gint hf_witness_witness_notifyResponse_message_ip_change = -1;
-static gint hf_witness_witness_notifyResponse_message_resource_change = -1;
-static gint hf_witness_witness_notifyResponse_message_share_move = -1;
-static gint hf_witness_witness_notifyResponse_messages = -1;
-static gint hf_witness_witness_notifyResponse_messages_ = -1;
-static gint hf_witness_witness_notifyResponse_num = -1;
-static gint hf_witness_witness_notifyResponse_type = -1;
+static gint hf_witness_opnum;
+static gint hf_witness_werror;
+static gint hf_witness_witness_AsyncNotify_context_handle;
+static gint hf_witness_witness_AsyncNotify_response;
+static gint hf_witness_witness_GetInterfaceList_interface_list;
+static gint hf_witness_witness_IPaddrInfoList_addr;
+static gint hf_witness_witness_IPaddrInfoList_length;
+static gint hf_witness_witness_IPaddrInfoList_num;
+static gint hf_witness_witness_IPaddrInfoList_reserved;
+static gint hf_witness_witness_IPaddrInfo_flags;
+static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_OFFLINE;
+static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_ONLINE;
+static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_V4;
+static gint hf_witness_witness_IPaddrInfo_flags_WITNESS_IPADDR_V6;
+static gint hf_witness_witness_IPaddrInfo_ipv4;
+static gint hf_witness_witness_IPaddrInfo_ipv6;
+static gint hf_witness_witness_RegisterEx_client_computer_name;
+static gint hf_witness_witness_RegisterEx_context_handle;
+static gint hf_witness_witness_RegisterEx_flags;
+static gint hf_witness_witness_RegisterEx_flags_WITNESS_REGISTER_IP_NOTIFICATION;
+static gint hf_witness_witness_RegisterEx_ip_address;
+static gint hf_witness_witness_RegisterEx_net_name;
+static gint hf_witness_witness_RegisterEx_share_name;
+static gint hf_witness_witness_RegisterEx_timeout;
+static gint hf_witness_witness_RegisterEx_version;
+static gint hf_witness_witness_Register_client_computer_name;
+static gint hf_witness_witness_Register_context_handle;
+static gint hf_witness_witness_Register_ip_address;
+static gint hf_witness_witness_Register_net_name;
+static gint hf_witness_witness_Register_version;
+static gint hf_witness_witness_ResourceChange_length;
+static gint hf_witness_witness_ResourceChange_name;
+static gint hf_witness_witness_ResourceChange_type;
+static gint hf_witness_witness_UnRegister_context_handle;
+static gint hf_witness_witness_interfaceInfo_flags;
+static gint hf_witness_witness_interfaceInfo_flags_WITNESS_INFO_IPv4_VALID;
+static gint hf_witness_witness_interfaceInfo_flags_WITNESS_INFO_IPv6_VALID;
+static gint hf_witness_witness_interfaceInfo_flags_WITNESS_INFO_WITNESS_IF;
+static gint hf_witness_witness_interfaceInfo_group_name;
+static gint hf_witness_witness_interfaceInfo_ipv4;
+static gint hf_witness_witness_interfaceInfo_ipv6;
+static gint hf_witness_witness_interfaceInfo_state;
+static gint hf_witness_witness_interfaceInfo_version;
+static gint hf_witness_witness_interfaceList_interfaces;
+static gint hf_witness_witness_interfaceList_num_interfaces;
+static gint hf_witness_witness_notifyResponse_length;
+static gint hf_witness_witness_notifyResponse_message_client_move;
+static gint hf_witness_witness_notifyResponse_message_data;
+static gint hf_witness_witness_notifyResponse_message_ip_change;
+static gint hf_witness_witness_notifyResponse_message_resource_change;
+static gint hf_witness_witness_notifyResponse_message_share_move;
+static gint hf_witness_witness_notifyResponse_messages;
+static gint hf_witness_witness_notifyResponse_messages_;
+static gint hf_witness_witness_notifyResponse_num;
+static gint hf_witness_witness_notifyResponse_type;
static gint proto_dcerpc_witness = -1;
/* Version information */
@@ -1454,7 +1454,7 @@ witness_dissect_RegisterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_inf
}
-static dcerpc_sub_dissector witness_dissectors[] = {
+static const dcerpc_sub_dissector witness_dissectors[] = {
{ 0, "GetInterfaceList",
witness_dissect_GetInterfaceList_request, witness_dissect_GetInterfaceList_response},
{ 1, "Register",
diff --git a/epan/dissectors/packet-dcerpc-wkssvc.c b/epan/dissectors/packet-dcerpc-wkssvc.c
index 6a362b1e45..cd25345f23 100644
--- a/epan/dissectors/packet-dcerpc-wkssvc.c
+++ b/epan/dissectors/packet-dcerpc-wkssvc.c
@@ -10082,7 +10082,7 @@ wkssvc_dissect_NetrEnumerateComputerNames_request(tvbuff_t *tvb _U_, int offset
}
-static dcerpc_sub_dissector wkssvc_dissectors[] = {
+static const dcerpc_sub_dissector wkssvc_dissectors[] = {
{ 0, "NetWkstaGetInfo",
wkssvc_dissect_NetWkstaGetInfo_request, wkssvc_dissect_NetWkstaGetInfo_response},
{ 1, "NetWkstaSetInfo",
diff --git a/epan/dissectors/packet-dcerpc-wzcsvc.c b/epan/dissectors/packet-dcerpc-wzcsvc.c
index 85e0a149f5..60430c4ddf 100644
--- a/epan/dissectors/packet-dcerpc-wzcsvc.c
+++ b/epan/dissectors/packet-dcerpc-wzcsvc.c
@@ -22,11 +22,11 @@ void proto_register_dcerpc_wzcsvc(void);
void proto_reg_handoff_dcerpc_wzcsvc(void);
/* Ett declarations */
-static gint ett_dcerpc_wzcsvc = -1;
+static gint ett_dcerpc_wzcsvc;
/* Header field declarations */
-static gint hf_wzcsvc_opnum = -1;
+static gint hf_wzcsvc_opnum;
static gint proto_dcerpc_wzcsvc = -1;
/* Version information */
@@ -364,7 +364,7 @@ wzcsvc_dissect_GetWZCDbLogRecord_request(tvbuff_t *tvb _U_, int offset _U_, pack
}
-static dcerpc_sub_dissector wzcsvc_dissectors[] = {
+static const dcerpc_sub_dissector wzcsvc_dissectors[] = {
{ 0, "EnumInterfaces",
wzcsvc_dissect_EnumInterfaces_request, wzcsvc_dissect_EnumInterfaces_response},
{ 1, "QueryInterface",
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c
index 5785987549..085bad2a25 100644
--- a/epan/dissectors/packet-dcerpc.c
+++ b/epan/dissectors/packet-dcerpc.c
@@ -686,9 +686,19 @@ static expert_field ei_dcerpc_cn_rts_command;
static expert_field ei_dcerpc_not_implemented;
static const guint8 TRAILER_SIGNATURE[] = {0x8a, 0xe3, 0x13, 0x71, 0x02, 0xf4, 0x36, 0x71};
-static tvbuff_t *tvb_trailer_signature = NULL;
+static tvbuff_t *tvb_trailer_signature;
+
+static GSList *decode_dcerpc_bindings;
+
+static wmem_map_t *dcerpc_connections;
+
+typedef struct _dcerpc_connection {
+ conversation_t *conv;
+ guint64 transport_salt;
+ guint32 first_frame;
+ gboolean hdr_signing_negotiated;
+} dcerpc_connection;
-static GSList *decode_dcerpc_bindings = NULL;
/*
* To keep track of ctx_id mappings.
*
@@ -696,7 +706,7 @@ static GSList *decode_dcerpc_bindings = NULL;
* Note that we always specify a SMB FID. For non-SMB transports this
* value is 0.
*/
-static wmem_map_t *dcerpc_binds = NULL;
+static wmem_map_t *dcerpc_binds;
typedef struct _dcerpc_bind_key {
conversation_t *conv;
@@ -710,7 +720,7 @@ typedef struct _dcerpc_bind_value {
e_guid_t transport;
} dcerpc_bind_value;
-static wmem_map_t *dcerpc_auths = NULL;
+static wmem_map_t *dcerpc_auths;
typedef struct _dcerpc_auth_context {
conversation_t *conv;
@@ -968,7 +978,7 @@ decode_dcerpc_binding_cmp(gconstpointer a, gconstpointer b)
}
/* remove a binding (looking the same way as the given one) */
-static gboolean
+static bool
decode_dcerpc_binding_reset(const char *name _U_, gconstpointer pattern)
{
const decode_dcerpc_bind_values_t *binding = (const decode_dcerpc_bind_values_t *)pattern;
@@ -980,7 +990,7 @@ decode_dcerpc_binding_reset(const char *name _U_, gconstpointer pattern)
binding,
decode_dcerpc_binding_cmp);
if (le == NULL)
- return FALSE;
+ return false;
old_binding = (decode_dcerpc_bind_values_t *)le->data;
@@ -990,10 +1000,10 @@ decode_dcerpc_binding_reset(const char *name _U_, gconstpointer pattern)
free_address(&old_binding->addr_b);
g_string_free(old_binding->ifname, TRUE);
g_free(old_binding);
- return FALSE;
+ return false;
}
-static gboolean
+static bool
dcerpc_decode_as_change(const char *name, gconstpointer pattern, gconstpointer handle, const gchar* list_name)
{
const decode_dcerpc_bind_values_t *binding = (const decode_dcerpc_bind_values_t*)pattern;
@@ -1017,7 +1027,7 @@ dcerpc_decode_as_change(const char *name, gconstpointer pattern, gconstpointer h
decode_dcerpc_bindings = g_slist_append (decode_dcerpc_bindings, stored_binding);
- return FALSE;
+ return false;
}
static const fragment_items dcerpc_frag_items = {
@@ -1040,7 +1050,7 @@ static const fragment_items dcerpc_frag_items = {
};
/* try to desegment big DCE/RPC packets over TCP? */
-static gboolean dcerpc_cn_desegment = TRUE;
+static bool dcerpc_cn_desegment = true;
/* reassemble DCE/RPC fragments */
/* reassembly of cl dcerpc fragments will not work for the case where ONE frame
@@ -1051,7 +1061,7 @@ static gboolean dcerpc_cn_desegment = TRUE;
reassembly of co dcerpc fragments will not work for the case where TCP/SMB frames
are coming in out of sequence, but that will hurt in a lot of other places as well.
*/
-static gboolean dcerpc_reassemble = TRUE;
+static bool dcerpc_reassemble = true;
static reassembly_table dcerpc_co_reassembly_table;
static reassembly_table dcerpc_cl_reassembly_table;
@@ -1344,7 +1354,7 @@ typedef struct _dcerpc_dissector_data
static dissector_table_t uuid_dissector_table;
/* the registered subdissectors */
-GHashTable *dcerpc_uuids = NULL;
+GHashTable *dcerpc_uuids;
static gint
dcerpc_uuid_equal(gconstpointer k1, gconstpointer k2)
@@ -1420,7 +1430,7 @@ dissect_dcerpc_guid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
{
dcerpc_dissector_data_t* dissector_data = (dcerpc_dissector_data_t*)data;
const gchar *name = NULL;
- dcerpc_sub_dissector *proc;
+ const dcerpc_sub_dissector *proc;
int (*volatile sub_dissect)(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) = NULL;
proto_item *pi, *sub_item;
proto_tree *sub_tree;
@@ -1654,6 +1664,8 @@ dissect_dcerpc_guid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
proto_tree_add_item(sub_tree, hf_dcerpc_auth_padding, tvb, auth_pad_offset, auth_pad_len, ENC_NA);
}
+ free_ndr_pointer_list(dissector_data->info);
+
pinfo->current_proto = saved_proto;
return tvb_captured_length(tvb);
@@ -1683,7 +1695,7 @@ dcerpc_init_finalize(dissector_handle_t guid_handle, guid_key *key, dcerpc_uuid_
void
dcerpc_init_uuid(int proto, int ett, e_guid_t *uuid, guint16 ver,
- dcerpc_sub_dissector *procs, int opnum_hf)
+ const dcerpc_sub_dissector *procs, int opnum_hf)
{
guid_key *key = (guid_key *)g_malloc(sizeof (*key));
dcerpc_uuid_value *value = (dcerpc_uuid_value *)g_malloc(sizeof (*value));
@@ -1773,7 +1785,7 @@ dcerpc_get_proto_hf_opnum(e_guid_t *uuid, guint16 ver)
/* Create a value_string consisting of DCERPC opnum and name from a
subdissector array. */
-value_string *value_string_from_subdissectors(dcerpc_sub_dissector *sd)
+value_string *value_string_from_subdissectors(const dcerpc_sub_dissector *sd)
{
value_string *vs = NULL;
int i;
@@ -1802,7 +1814,7 @@ again:
/* Function to find the subdissector table of a registered protocol
* or NULL if the protocol/version is not known to wireshark.
*/
-dcerpc_sub_dissector *
+const dcerpc_sub_dissector *
dcerpc_get_proto_sub_dissector(e_guid_t *uuid, guint16 ver)
{
guid_key key;
@@ -1817,6 +1829,27 @@ dcerpc_get_proto_sub_dissector(e_guid_t *uuid, guint16 ver)
}
+static gint
+dcerpc_connection_equal(gconstpointer k1, gconstpointer k2)
+{
+ const dcerpc_connection *key1 = (const dcerpc_connection *)k1;
+ const dcerpc_connection *key2 = (const dcerpc_connection *)k2;
+ return ((key1->conv == key2->conv)
+ && (key1->transport_salt == key2->transport_salt));
+}
+
+static guint
+dcerpc_connection_hash(gconstpointer k)
+{
+ const dcerpc_connection *key = (const dcerpc_connection *)k;
+ guint hash;
+
+ hash = GPOINTER_TO_UINT(key->conv);
+ hash += g_int64_hash(&key->transport_salt);
+
+ return hash;
+}
+
static gint
dcerpc_bind_equal(gconstpointer k1, gconstpointer k2)
@@ -1872,8 +1905,8 @@ dcerpc_auth_context_hash(gconstpointer k)
* To keep track of callid mappings. Should really use some generic
* conversation support instead.
*/
-static wmem_map_t *dcerpc_cn_calls = NULL;
-static wmem_map_t *dcerpc_dg_calls = NULL;
+static wmem_map_t *dcerpc_cn_calls;
+static wmem_map_t *dcerpc_dg_calls;
typedef struct _dcerpc_cn_call_key {
conversation_t *conv;
@@ -1942,7 +1975,7 @@ dcerpc_dg_call_hash(gconstpointer k)
XXX - why not just use the same keys as are used for calls?
*/
-static wmem_map_t *dcerpc_matched = NULL;
+static wmem_map_t *dcerpc_matched;
typedef struct _dcerpc_matched_key {
guint32 frame;
@@ -1990,7 +2023,7 @@ dcerpcstat_init(struct register_srt* srt, GArray* srt_array)
dcerpcstat_tap_data_t* tap_data = (dcerpcstat_tap_data_t*)get_srt_table_param_data(srt);
srt_stat_table *dcerpc_srt_table;
int i, hf_opnum;
- dcerpc_sub_dissector *procs;
+ const dcerpc_sub_dissector *procs;
DISSECTOR_ASSERT(tap_data);
@@ -2069,7 +2102,7 @@ dcerpcstat_param(register_srt_t* srt, const char* opt_arg, char** err)
guint d1,d2,d3,d40,d41,d42,d43,d44,d45,d46,d47;
int major, minor;
guint16 ver;
- dcerpc_sub_dissector *procs;
+ const dcerpc_sub_dissector *procs;
if (sscanf(opt_arg, ",%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x,%d.%d%n",
&d1,&d2,&d3,&d40,&d41,&d42,&d43,&d44,&d45,&d46,&d47,&major,&minor,&pos) == 13)
@@ -2708,13 +2741,13 @@ dissect_ndr_cvstring(tvbuff_t *tvb, int offset, packet_info *pinfo,
*/
tvb_ensure_bytes_exist(tvb, offset, buffer_len);
if (size_is == sizeof(guint16)) {
- s = tvb_get_string_enc(pinfo->pool, tvb, offset, buffer_len,
+ s = (char *)tvb_get_string_enc(pinfo->pool, tvb, offset, buffer_len,
ENC_UTF_16|DREP_ENC_INTEGER(drep));
} else {
/*
* XXX - what if size_is is neither 1 nor 2?
*/
- s = tvb_get_string_enc(pinfo->pool, tvb, offset, buffer_len,
+ s = (char *)tvb_get_string_enc(pinfo->pool, tvb, offset, buffer_len,
DREP_ENC_CHAR(drep));
}
if (tree && buffer_len)
@@ -2945,31 +2978,6 @@ dissect_ndr_wchar_vstring(tvbuff_t *tvb, int offset, packet_info *pinfo,
FALSE, NULL);
}
-/* ndr pointer handling */
-/* Should we re-read the size of the list ?
- * Instead of re-calculating the size every time, use the stored value unless this
- * flag is set which means: re-read the size of the list
- */
-static gboolean must_check_size = FALSE;
-/*
- * List of pointers encountered so far in the current level. Points to an
- * element of list_ndr_pointer_list.
- */
-static GSList *ndr_pointer_list = NULL;
-
-static GHashTable *ndr_pointer_hash = NULL;
-/*
- * List of pointer list, in order to avoid huge performance penalty
- * when dealing with list bigger than 100 elements due to the way we
- * try to insert in the list.
- * We instead maintain a stack of pointer list
- * To make it easier to manage we just use a list to materialize the stack
- */
-static GSList *list_ndr_pointer_list = NULL;
-
-/* Boolean controlling whether pointers are top-level or embedded */
-static gboolean pointers_are_top_level = TRUE;
-
/* as a kludge, we represent all embedded reference pointers as id == -1
hoping that his will not collide with any non-ref pointers */
typedef struct ndr_pointer_data {
@@ -2983,26 +2991,30 @@ typedef struct ndr_pointer_data {
} ndr_pointer_data_t;
void
+free_ndr_pointer_list(dcerpc_info *di)
+{
+ while (di->pointers.list_list) {
+ GSList *list = (GSList *)g_slist_nth_data(di->pointers.list_list, 0);
+ di->pointers.list_list = g_slist_remove(di->pointers.list_list, list);
+ g_slist_free_full(list, g_free);
+ }
+ g_slist_free_full(di->pointers.list_list, g_free);
+ if (di->pointers.hash) {
+ g_hash_table_destroy(di->pointers.hash);
+ }
+ memset(&di->pointers, 0, sizeof(di->pointers));
+}
+
+void
init_ndr_pointer_list(dcerpc_info *di)
{
di->conformant_run = 0;
- while (list_ndr_pointer_list) {
- GSList *list = (GSList *)g_slist_nth_data(list_ndr_pointer_list, 0);
- list_ndr_pointer_list = g_slist_remove(list_ndr_pointer_list, list);
- g_slist_free_full(list, g_free);
- }
- g_slist_free_full(list_ndr_pointer_list, g_free);
+ free_ndr_pointer_list(di);
- list_ndr_pointer_list = NULL;
- pointers_are_top_level = TRUE;
- must_check_size = FALSE;
+ di->pointers.are_top_level = TRUE;
- ndr_pointer_list = NULL;
- if (ndr_pointer_hash) {
- g_hash_table_destroy(ndr_pointer_hash);
- }
- ndr_pointer_hash = g_hash_table_new(g_int_hash, g_int_equal);
+ di->pointers.hash = g_hash_table_new(g_int_hash, g_int_equal);
}
int
@@ -3019,19 +3031,19 @@ dissect_deferred_pointers(packet_info *pinfo, tvbuff_t *tvb, int offset, dcerpc_
* pidl has a difficiency of unconditionally emitting calls
* dissect_deferred_pointers() to the generated dissectors.
*/
- if (list_ndr_pointer_list == NULL) {
+ if (di->pointers.list_list == NULL) {
return offset;
}
/* Probably not necessary, it is supposed to prevent more pointers from
* being added to the list. */
- ndr_pointer_list = NULL;
+ di->pointers.list = NULL;
next_pointer = 0;
/* Obtain the current list of pointers at this level. */
- current_ndr_pointer_list = (GSList *)g_slist_last(list_ndr_pointer_list)->data;
- original_depth = g_slist_length(list_ndr_pointer_list);
+ current_ndr_pointer_list = (GSList *)g_slist_last(di->pointers.list_list)->data;
+ original_depth = g_slist_length(di->pointers.list_list);
len = g_slist_length(current_ndr_pointer_list);
do {
@@ -3058,7 +3070,7 @@ process_list:
di->conformant_eaten = 0;
old_offset = offset;
saved_ndr_pointer_list = current_ndr_pointer_list;
- ndr_pointer_list = NULL;
+ di->pointers.list = NULL;
offset = (*(fnct))(tvb, offset, pinfo, NULL, di, drep);
DISSECTOR_ASSERT((offset-old_offset) == di->conformant_eaten);
@@ -3114,12 +3126,12 @@ process_list:
if (tnpd->callback)
tnpd->callback(pinfo, tnpd->tree, tnpd->item, di, tvb, old_offset, offset, tnpd->callback_args);
proto_item_set_len(tnpd->item, offset - old_offset);
- if (ndr_pointer_list) {
+ if (di->pointers.list) {
/* We found some pointers to dissect, descend into it. */
next_pointer = 0;
- len = g_slist_length(ndr_pointer_list);
- current_ndr_pointer_list = ndr_pointer_list;
- ndr_pointer_list = NULL;
+ len = g_slist_length(di->pointers.list);
+ current_ndr_pointer_list = di->pointers.list;
+ di->pointers.list = NULL;
goto process_list; /* Process the new current_ndr_pointer_list */
} else {
current_ndr_pointer_list = saved_ndr_pointer_list;
@@ -3127,21 +3139,21 @@ process_list:
}
/* If we found the end of the list, but add_pointer_to_list extended
* it, then be sure to handle those extra elements. */
- if (i == (len - 1) && (must_check_size == TRUE)) {
- len = g_slist_length(ndr_pointer_list);
- must_check_size = FALSE;
+ if (i == (len - 1) && (di->pointers.must_check_size == TRUE)) {
+ len = g_slist_length(di->pointers.list);
+ di->pointers.must_check_size = FALSE;
}
}
/* We reached the end of one level, go to the level bellow if possible
* reset list a level n
*/
- if ((i >= (len - 1)) && (g_slist_length(list_ndr_pointer_list) > original_depth)) {
+ if ((i >= (len - 1)) && (g_slist_length(di->pointers.list_list) > original_depth)) {
GSList *list;
/* Remove existing list */
g_slist_free_full(current_ndr_pointer_list, g_free);
- list = (GSList *)g_slist_last(list_ndr_pointer_list)->data;
- list_ndr_pointer_list = g_slist_remove(list_ndr_pointer_list, list);
+ list = (GSList *)g_slist_last(di->pointers.list_list)->data;
+ di->pointers.list_list = g_slist_remove(di->pointers.list_list, list);
/* Rewind on the lower level, in theory it's not too great because we
* will one more time iterate on pointers already done
@@ -3149,25 +3161,25 @@ process_list:
*/
next_pointer = 0;
/* Move to the next list of pointers. */
- current_ndr_pointer_list = (GSList *)g_slist_last(list_ndr_pointer_list)->data;
+ current_ndr_pointer_list = (GSList *)g_slist_last(di->pointers.list_list)->data;
len = g_slist_length(current_ndr_pointer_list);
found_new_pointer = 1;
}
} while (found_new_pointer);
- DISSECTOR_ASSERT(original_depth == g_slist_length(list_ndr_pointer_list));
+ DISSECTOR_ASSERT(original_depth == g_slist_length(di->pointers.list_list));
- g_slist_free_full(ndr_pointer_list, g_free);
+ g_slist_free_full(di->pointers.list, g_free);
/* Restore the previous list of pointers. */
- ndr_pointer_list = (GSList *)g_slist_last(list_ndr_pointer_list)->data;
+ di->pointers.list = (GSList *)g_slist_last(di->pointers.list_list)->data;
return offset;
}
static int
-find_pointer_index(guint32 id)
+find_pointer_index(dcerpc_info *di, guint32 id)
{
- guint *p = (guint*) g_hash_table_lookup(ndr_pointer_hash, &id);
+ guint *p = (guint*) g_hash_table_lookup(di->pointers.hash, &id);
return (p != NULL);
}
@@ -3221,14 +3233,15 @@ add_pointer_to_list(packet_info *pinfo, proto_tree *tree, proto_item *item,
/* Update the list of pointers for use by dissect_deferred_pointers. If this
* is the first pointer, create a list and add it to the stack. */
- if (!ndr_pointer_list) {
- ndr_pointer_list = g_slist_append(NULL, npd);
- list_ndr_pointer_list = g_slist_append(list_ndr_pointer_list, ndr_pointer_list);
+ if (!di->pointers.list) {
+ di->pointers.list = g_slist_append(NULL, npd);
+ di->pointers.list_list = g_slist_append(di->pointers.list_list,
+ di->pointers.list);
} else {
- ndr_pointer_list = g_slist_append(ndr_pointer_list, npd);
+ di->pointers.list = g_slist_append(di->pointers.list, npd);
}
- g_hash_table_insert(ndr_pointer_hash, p_id, p_id);
- must_check_size = TRUE;
+ g_hash_table_insert(di->pointers.hash, p_id, p_id);
+ di->pointers.must_check_size = TRUE;
}
@@ -3274,7 +3287,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
/*TOP LEVEL REFERENCE POINTER*/
- if ( pointers_are_top_level
+ if (di->pointers.are_top_level
&& (type == NDR_POINTER_REF) ) {
proto_item *item;
@@ -3288,7 +3301,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
}
/*TOP LEVEL FULL POINTER*/
- if ( pointers_are_top_level
+ if (di->pointers.are_top_level
&& (type == NDR_POINTER_PTR) ) {
int found;
guint64 id;
@@ -3307,7 +3320,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
/* see if we have seen this pointer before
The value is truncated to 32bits. 64bit values have only been
seen on fuzz-tested files */
- found = find_pointer_index((guint32)id);
+ found = find_pointer_index(di, (guint32)id);
/* we have seen this pointer before */
if (found) {
@@ -3330,7 +3343,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
goto after_ref_id;
}
/*TOP LEVEL UNIQUE POINTER*/
- if ( pointers_are_top_level
+ if (di->pointers.are_top_level
&& (type == NDR_POINTER_UNIQUE) ) {
guint64 id;
proto_item *item;
@@ -3362,7 +3375,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
}
/*EMBEDDED REFERENCE POINTER*/
- if ( (!pointers_are_top_level)
+ if ((!di->pointers.are_top_level)
&& (type == NDR_POINTER_REF) ) {
guint64 id;
proto_item *item;
@@ -3387,7 +3400,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
}
/*EMBEDDED UNIQUE POINTER*/
- if ( (!pointers_are_top_level)
+ if ((!di->pointers.are_top_level)
&& (type == NDR_POINTER_UNIQUE) ) {
guint64 id;
proto_item *item;
@@ -3419,7 +3432,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
}
/*EMBEDDED FULL POINTER*/
- if ( (!pointers_are_top_level)
+ if ((!di->pointers.are_top_level)
&& (type == NDR_POINTER_PTR) ) {
int found;
guint64 id;
@@ -3438,7 +3451,7 @@ dissect_ndr_pointer_cb(tvbuff_t *tvb, gint offset, packet_info *pinfo,
/* see if we have seen this pointer before
The value is truncated to 32bits. 64bit values have only been
seen on fuzztested files */
- found = find_pointer_index((guint32)id);
+ found = find_pointer_index(di, (guint32)id);
/* we have seen this pointer before */
if (found) {
@@ -3467,10 +3480,10 @@ after_ref_id:
/* After each top level pointer we have dissected we have to
dissect all deferrals before we move on to the next top level
argument */
- if (pointers_are_top_level == TRUE) {
- pointers_are_top_level = FALSE;
+ if (di->pointers.are_top_level == TRUE) {
+ di->pointers.are_top_level = FALSE;
offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
- pointers_are_top_level = TRUE;
+ di->pointers.are_top_level = TRUE;
}
/* Set the length for the new subtree */
@@ -3496,7 +3509,7 @@ dissect_ndr_toplevel_pointer(tvbuff_t *tvb, gint offset, packet_info *pinfo,
{
int ret;
- pointers_are_top_level = TRUE;
+ di->pointers.are_top_level = TRUE;
ret = dissect_ndr_pointer_cb(
tvb, offset, pinfo, tree, di, drep, fnct, type, text, hf_index,
NULL, NULL);
@@ -3509,7 +3522,7 @@ dissect_ndr_embedded_pointer(tvbuff_t *tvb, gint offset, packet_info *pinfo,
{
int ret;
- pointers_are_top_level = FALSE;
+ di->pointers.are_top_level = FALSE;
ret = dissect_ndr_pointer_cb(
tvb, offset, pinfo, tree, di, drep, fnct, type, text, hf_index,
NULL, NULL);
@@ -3821,6 +3834,35 @@ dissect_dcerpc_cn_auth_move(dcerpc_auth_info *auth_info, proto_tree *dcerpc_tree
}
}
+static dcerpc_connection *find_or_create_dcerpc_connection(packet_info *pinfo)
+{
+ dcerpc_connection connection_key = {
+ .conv = find_or_create_conversation(pinfo),
+ .transport_salt = dcerpc_get_transport_salt(pinfo),
+ .first_frame = G_MAXUINT32,
+ };
+ dcerpc_connection *connection = NULL;
+
+ connection = (dcerpc_connection *)wmem_map_lookup(dcerpc_connections, &connection_key);
+ if (connection != NULL) {
+ goto return_value;
+ }
+
+ connection = wmem_new(wmem_file_scope(), dcerpc_connection);
+ if (connection == NULL) {
+ return NULL;
+ }
+
+ *connection = connection_key;
+ wmem_map_insert(dcerpc_connections, connection, connection);
+
+return_value:
+ if (pinfo->fd->num < connection->first_frame) {
+ connection->first_frame = pinfo->fd->num;
+ }
+ return connection;
+}
+
static dcerpc_auth_context *find_or_create_dcerpc_auth_context(packet_info *pinfo,
dcerpc_auth_info *auth_info)
{
@@ -3901,6 +3943,7 @@ dissect_dcerpc_cn_auth(tvbuff_t *tvb, int stub_offset, packet_info *pinfo,
*/
offset = hdr->frag_len - (hdr->auth_len + 8);
if (offset == 0 || tvb_offset_exists(tvb, offset - 1)) {
+ dcerpc_connection *connection = NULL;
dcerpc_auth_context *auth_context = NULL;
int auth_offset = offset;
@@ -3958,13 +4001,20 @@ dissect_dcerpc_cn_auth(tvbuff_t *tvb, int stub_offset, packet_info *pinfo,
MIN(hdr->auth_len,tvb_reported_length_remaining(tvb, offset)),
hdr->auth_len);
+ connection = find_or_create_dcerpc_connection(pinfo);
auth_context = find_or_create_dcerpc_auth_context(pinfo, auth_info);
if (auth_context != NULL) {
if (hdr->ptype == PDU_BIND || hdr->ptype == PDU_ALTER) {
if (auth_context->first_frame == pinfo->fd->num) {
auth_context->hdr_signing = (hdr->flags & PFC_HDR_SIGNING);
+ if (auth_context->hdr_signing && connection != NULL) {
+ connection->hdr_signing_negotiated = TRUE;
+ }
}
}
+ if (connection != NULL && connection->hdr_signing_negotiated) {
+ auth_context->hdr_signing = TRUE;
+ }
auth_info->hdr_signing = auth_context->hdr_signing;
}
@@ -7209,8 +7259,21 @@ proto_register_dcerpc(void)
uuid_dissector_table = register_dissector_table(DCERPC_TABLE_NAME, "DCE/RPC UUIDs", proto_dcerpc, FT_GUID, BASE_HEX);
- /* structures and data for BIND */
- dcerpc_binds = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), dcerpc_bind_hash, dcerpc_bind_equal);
+ /*
+ * structures and data for
+ * - per connection,
+ * - per presentation context (bind)
+ * - per authentication context
+ */
+ dcerpc_connections = wmem_map_new_autoreset(wmem_epan_scope(),
+ wmem_file_scope(),
+ dcerpc_connection_hash,
+ dcerpc_connection_equal);
+
+ dcerpc_binds = wmem_map_new_autoreset(wmem_epan_scope(),
+ wmem_file_scope(),
+ dcerpc_bind_hash,
+ dcerpc_bind_equal);
dcerpc_auths = wmem_map_new_autoreset(wmem_epan_scope(),
wmem_file_scope(),
diff --git a/epan/dissectors/packet-dcerpc.h b/epan/dissectors/packet-dcerpc.h
index 05159e8f73..6b360f5822 100644
--- a/epan/dissectors/packet-dcerpc.h
+++ b/epan/dissectors/packet-dcerpc.h
@@ -169,6 +169,32 @@ typedef struct _dcerpc_info {
dcerpc_call_value *call_data;
const char *dcerpc_procedure_name; /* Used by PIDL to store the name of the current dcerpc procedure */
void *private_data;
+
+ /* ndr pointer handling */
+ struct {
+ /* Should we re-read the size of the list ?
+ * Instead of re-calculating the size every time, use the stored value unless this
+ * flag is set which means: re-read the size of the list
+ */
+ gboolean must_check_size;
+ /*
+ * List of pointers encountered so far in the current level. Points to an
+ * element of list_ndr_pointer_list.
+ */
+ GSList *list;
+ GHashTable *hash;
+ /*
+ * List of pointer list, in order to avoid huge performance penalty
+ * when dealing with list bigger than 100 elements due to the way we
+ * try to insert in the list.
+ * We instead maintain a stack of pointer list
+ * To make it easier to manage we just use a list to materialize the stack
+ */
+ GSList *list_list;
+
+ /* Boolean controlling whether pointers are top-level or embedded */
+ gboolean are_top_level;
+ } pointers;
} dcerpc_info;
#define PDU_REQ 0
@@ -390,7 +416,7 @@ typedef struct _dcerpc_sub_dissector {
/* registration function for subdissectors */
WS_DLL_PUBLIC
-void dcerpc_init_uuid (int proto, int ett, e_guid_t *uuid, guint16 ver, dcerpc_sub_dissector *procs, int opnum_hf);
+void dcerpc_init_uuid (int proto, int ett, e_guid_t *uuid, guint16 ver, const dcerpc_sub_dissector *procs, int opnum_hf);
WS_DLL_PUBLIC
void dcerpc_init_from_handle(int proto, e_guid_t *uuid, guint16 ver, dissector_handle_t guid_handle);
WS_DLL_PUBLIC
@@ -398,11 +424,11 @@ const char *dcerpc_get_proto_name(e_guid_t *uuid, guint16 ver);
WS_DLL_PUBLIC
int dcerpc_get_proto_hf_opnum(e_guid_t *uuid, guint16 ver);
WS_DLL_PUBLIC
-dcerpc_sub_dissector *dcerpc_get_proto_sub_dissector(e_guid_t *uuid, guint16 ver);
+const dcerpc_sub_dissector *dcerpc_get_proto_sub_dissector(e_guid_t *uuid, guint16 ver);
/* Create a opnum, name value_string from a subdissector list */
-value_string *value_string_from_subdissectors(dcerpc_sub_dissector *sd);
+value_string *value_string_from_subdissectors(const dcerpc_sub_dissector *sd);
/* Decode As... functionality */
/* remove all bindings */
@@ -424,7 +450,7 @@ typedef struct _dcerpc_uuid_value {
int proto_id;
int ett;
const gchar *name;
- dcerpc_sub_dissector *procs;
+ const dcerpc_sub_dissector *procs;
int opnum_hf;
} dcerpc_uuid_value;
@@ -507,6 +533,8 @@ WS_DLL_PUBLIC void dcerpc_set_transport_salt(guint64 dcetransportsalt, packet_in
#define DCE_C_AUTHN_LEVEL_PKT_PRIVACY 6
void
+free_ndr_pointer_list(dcerpc_info *di);
+void
init_ndr_pointer_list(dcerpc_info *di);
diff --git a/epan/dissectors/packet-dcm.c b/epan/dissectors/packet-dcm.c
index 525622c25b..1eccad89f5 100644
--- a/epan/dissectors/packet-dcm.c
+++ b/epan/dissectors/packet-dcm.c
@@ -269,17 +269,17 @@ void proto_reg_handoff_dcm(void);
#define WIRESHARK_MEDIA_STORAGE_SOP_INSTANCE_UID_PREFIX "1.2.826.0.1.3680043.8.427.11.2"
#define WIRESHARK_IMPLEMENTATION_VERSION "WIRESHARK"
-static gboolean global_dcm_export_header = TRUE;
+static bool global_dcm_export_header = true;
static guint global_dcm_export_minsize = 4096; /* Filter small objects in export */
-static gboolean global_dcm_seq_subtree = TRUE;
-static gboolean global_dcm_tag_subtree = FALSE; /* Only useful for debugging */
-static gboolean global_dcm_cmd_details = TRUE; /* Show details in header and info column */
-static gboolean global_dcm_reassemble = TRUE; /* Merge fragmented PDVs */
+static bool global_dcm_seq_subtree = true;
+static bool global_dcm_tag_subtree; /* Only useful for debugging */
+static bool global_dcm_cmd_details = true; /* Show details in header and info column */
+static bool global_dcm_reassemble = true; /* Merge fragmented PDVs */
-static wmem_map_t *dcm_tag_table = NULL;
-static wmem_map_t *dcm_uid_table = NULL;
-static wmem_map_t *dcm_status_table = NULL;
+static wmem_map_t *dcm_tag_table;
+static wmem_map_t *dcm_uid_table;
+static wmem_map_t *dcm_status_table;
/* Initialize the protocol and registered fields */
static int proto_dcm;
diff --git a/epan/dissectors/packet-dcom-dispatch.c b/epan/dissectors/packet-dcom-dispatch.c
index feeed27a59..e7b3fe1e40 100644
--- a/epan/dissectors/packet-dcom-dispatch.c
+++ b/epan/dissectors/packet-dcom-dispatch.c
@@ -70,7 +70,7 @@ static gint ett_dispatch_params;
static gint ett_dispatch_excepinfo;
static e_guid_t uuid_dispatch = { 0x00020400, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } };
-static guint16 ver_dispatch = 0;
+static guint16 ver_dispatch;
static gint ett_dispatch;
static int proto_dispatch;
@@ -490,7 +490,7 @@ dissect_IDispatch_Invoke_resp(tvbuff_t *tvb, int offset,
/* sub dissector table of IDispatch interface */
-static dcerpc_sub_dissector dispatch_dissectors[] = {
+static const dcerpc_sub_dissector dispatch_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
diff --git a/epan/dissectors/packet-dcom-oxid.c b/epan/dissectors/packet-dcom-oxid.c
index 60ebf13f25..a1193bfce9 100644
--- a/epan/dissectors/packet-dcom-oxid.c
+++ b/epan/dissectors/packet-dcom-oxid.c
@@ -44,7 +44,7 @@ static int hf_oxid_ds_array;
static gint ett_oxid;
static e_guid_t uuid_oxid = { 0x99fcfec4, 0x5260, 0x101b, { 0xbb, 0xcb, 0x00, 0xaa, 0x00, 0x21, 0x34, 0x7a } };
-static guint16 ver_oxid = 0;
+static guint16 ver_oxid;
static int
@@ -256,7 +256,7 @@ dissect_oxid_server_alive2_resp(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* XXX - some dissectors still need to be done */
-static dcerpc_sub_dissector oxid_dissectors[] = {
+static const dcerpc_sub_dissector oxid_dissectors[] = {
{ 0, "ResolveOxid", NULL, NULL },
{ 1, "SimplePing", dissect_oxid_simple_ping_rqst, dissect_oxid_simple_ping_resp },
{ 2, "ComplexPing", dissect_oxid_complex_ping_rqst, dissect_oxid_complex_ping_resp },
diff --git a/epan/dissectors/packet-dcom-provideclassinfo.c b/epan/dissectors/packet-dcom-provideclassinfo.c
index 8e7ae63750..ad73786d5e 100644
--- a/epan/dissectors/packet-dcom-provideclassinfo.c
+++ b/epan/dissectors/packet-dcom-provideclassinfo.c
@@ -25,7 +25,7 @@ static int hf_provideclassinfo_opnum;
static int hf_typeinfo;
static e_guid_t uuid_provideclassinfo = { 0xb196b283, 0xbab4, 0x101a, { 0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07} };
-static guint16 ver_provideclassinfo = 0;
+static guint16 ver_provideclassinfo;
static gint ett_provideclassinfo;
static int proto_provideclassinfo;
@@ -54,7 +54,7 @@ static int dissect_IProvideClassInfo_GetClassInfo_resp(tvbuff_t *tvb, int offset
}
/* sub dissector table of IProvideClassInfo interface */
-static dcerpc_sub_dissector provideclassinfo_dissectors[] = {
+static const dcerpc_sub_dissector provideclassinfo_dissectors[] = {
{3, "GetClassInfo", dissect_IProvideClassInfo_GetClassInfo_rqst, dissect_IProvideClassInfo_GetClassInfo_resp},
{0, NULL, NULL, NULL},
};
diff --git a/epan/dissectors/packet-dcom-remact.c b/epan/dissectors/packet-dcom-remact.c
index 9193928d4b..38d21fc93b 100644
--- a/epan/dissectors/packet-dcom-remact.c
+++ b/epan/dissectors/packet-dcom-remact.c
@@ -39,7 +39,7 @@ static int hf_remact_authn_hint;
static int proto_remact;
static gint ett_remact;
static e_guid_t uuid_remact = { 0x4d9f4ab8, 0x7d1c, 0x11cf, { 0x86, 0x1e, 0x00, 0x20, 0xaf, 0x6e, 0x7c, 0x57 } };
-static guint16 ver_remact = 0;
+static guint16 ver_remact;
static int
@@ -187,7 +187,7 @@ dissect_remact_remote_activation_resp(tvbuff_t *tvb, int offset,
}
-static dcerpc_sub_dissector remact_dissectors[] = {
+static const dcerpc_sub_dissector remact_dissectors[] = {
{ 0, "RemoteActivation", dissect_remact_remote_activation_rqst, dissect_remact_remote_activation_resp },
{ 0, NULL, NULL, NULL },
};
diff --git a/epan/dissectors/packet-dcom-remunkn.c b/epan/dissectors/packet-dcom-remunkn.c
index 702e20d4c8..bbaf5c4b4e 100644
--- a/epan/dissectors/packet-dcom-remunkn.c
+++ b/epan/dissectors/packet-dcom-remunkn.c
@@ -41,7 +41,7 @@ static gint ett_remunk_rqi_result;
static gint ett_remunk;
static e_guid_t uuid_remunk = { 0x00000131, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } };
-static guint16 ver_remunk = 0;
+static guint16 ver_remunk;
static int proto_remunk;
static e_guid_t ipid_remunk = { 0x00000131, 0x1234, 0x5678, { 0xCA, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } };
@@ -54,7 +54,7 @@ static e_guid_t ipid_remunk = { 0x00000131, 0x1234, 0x5678, { 0xCA, 0xFE, 0x00,
static gint ett_remunk2;
static e_guid_t uuid_remunk2 = { 0x00000143, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } };
-static guint16 ver_remunk2 = 0;
+static guint16 ver_remunk2;
static int proto_remunk2;
@@ -271,7 +271,7 @@ dissect_remunk_remrelease_rqst(tvbuff_t *tvb, int offset,
/* sub dissector table of IRemUnknown interface */
-static dcerpc_sub_dissector remunk_dissectors[] = {
+static const dcerpc_sub_dissector remunk_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -283,7 +283,7 @@ static dcerpc_sub_dissector remunk_dissectors[] = {
};
/* sub dissector table of IRemUnknown2 interface */
-static dcerpc_sub_dissector remunk2_dissectors[] = {
+static const dcerpc_sub_dissector remunk2_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
diff --git a/epan/dissectors/packet-dcom-sysact.c b/epan/dissectors/packet-dcom-sysact.c
index 4603837e1b..f1edcd4d35 100644
--- a/epan/dissectors/packet-dcom-sysact.c
+++ b/epan/dissectors/packet-dcom-sysact.c
@@ -126,7 +126,7 @@ static int hf_typesz_filler;
static int hf_typesz_buflen;
static e_guid_t uuid_ISystemActivator = { 0x000001a0, 0x0000, 0x0000, { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } };
-static guint16 ver_ISystemActivator = 0;
+static guint16 ver_ISystemActivator;
/*static e_guid_t clsid_ActivationPropertiesIn = { 0x00000338, 0x0000, 0x0000, { 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} };*/
/*static e_guid_t clsid_ActivationPropertiesOut = { 0x00000339, 0x0000, 0x0000, { 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} };*/
@@ -1177,7 +1177,7 @@ dissect_remsysact_remotegetclassobject_resp(tvbuff_t *tvb, int offset,
return offset;
}
-static dcerpc_sub_dissector ISystemActivator_dissectors[] = {
+static const dcerpc_sub_dissector ISystemActivator_dissectors[] = {
{ 0, "QueryInterfaceIRemoteSCMActivator", NULL, NULL },
{ 1, "AddRefIRemoteISCMActivator", NULL, NULL },
{ 2, "ReleaseIRemoteISCMActivator", NULL, NULL },
diff --git a/epan/dissectors/packet-dcom-typeinfo.c b/epan/dissectors/packet-dcom-typeinfo.c
index fd45777c67..d1b822bcb9 100644
--- a/epan/dissectors/packet-dcom-typeinfo.c
+++ b/epan/dissectors/packet-dcom-typeinfo.c
@@ -174,7 +174,7 @@ static int hf_typeinfo_wMinorVerNum;
static gint ett_typeinfo_names;
static e_guid_t uuid_typeinfo = {0x00020401, 0x0000, 0x0000, {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
-static guint16 ver_typeinfo = 0;
+static guint16 ver_typeinfo;
static gint ett_typeinfo;
static int proto_typeinfo;
@@ -808,7 +808,7 @@ int dissect_ITypeInfo_GetTypeAttr_resp(tvbuff_t *tvb, int offset,
}
/* sub dissector table of ITypeInfo interface */
-static dcerpc_sub_dissector typeinfo_dissectors[] = {
+static const dcerpc_sub_dissector typeinfo_dissectors[] = {
{3, "GetTypeAttr", dissect_ITypeInfo_GetTypeAttr_rqst, dissect_ITypeInfo_GetTypeAttr_resp},
{4, "GetTypeComp", NULL, NULL},
{5, "GetFuncDesc", dissect_ITypeInfo_GetFuncDesc_rqst, dissect_ITypeInfo_GetFuncDesc_resp},
diff --git a/epan/dissectors/packet-dcom.c b/epan/dissectors/packet-dcom.c
index 613579407a..bd0c856116 100644
--- a/epan/dissectors/packet-dcom.c
+++ b/epan/dissectors/packet-dcom.c
@@ -69,7 +69,7 @@ void proto_reg_handoff_dcom (void);
static int proto_dcom;
-gboolean dcom_prefs_display_unmarshalling_details = FALSE;
+bool dcom_prefs_display_unmarshalling_details;
static gint ett_dcom_this;
@@ -215,9 +215,9 @@ static const e_guid_t iid_act_prop_in = { 0x000001A2, 0x0000, 0x0000, { 0xC0,
static const e_guid_t iid_act_prop_out = { 0x000001A3, 0x0000, 0x0000, { 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} };
#endif
-static GList *dcom_machines = NULL;
-static GList *dcom_interfaces = NULL;
-static GList *dcom_marshalers = NULL;
+static GList *dcom_machines;
+static GList *dcom_interfaces;
+static GList *dcom_marshalers;
static const value_string dcom_thisthat_flag_vals[] = {
{ 0, "INFO_NULL" },
diff --git a/epan/dissectors/packet-dcom.h b/epan/dissectors/packet-dcom.h
index f1af6dda8d..e3fbe46030 100644
--- a/epan/dissectors/packet-dcom.h
+++ b/epan/dissectors/packet-dcom.h
@@ -26,7 +26,7 @@ extern int hf_dcom_ipid;
extern GHashTable *dcom_uuids;
/* preferences */
-WS_DLL_PUBLIC gboolean dcom_prefs_display_unmarshalling_details;
+WS_DLL_PUBLIC bool dcom_prefs_display_unmarshalling_details;
typedef struct dcom_machine_s {
diff --git a/epan/dissectors/packet-dec-dnart.c b/epan/dissectors/packet-dec-dnart.c
index 38a98905af..3f358af97c 100644
--- a/epan/dissectors/packet-dec-dnart.c
+++ b/epan/dissectors/packet-dec-dnart.c
@@ -164,8 +164,8 @@ static gint ett_dec_sess_contents;
static expert_field ei_dec_rt_checksum;
-static gint dec_dna_total_bytes_this_segment = 0;
-static gint dec_dna_previous_total = 0;
+static gint dec_dna_total_bytes_this_segment;
+static gint dec_dna_previous_total;
static const value_string rt_msg_type_vals[] = {
{ 0x0 , "Initialization message" },
diff --git a/epan/dissectors/packet-dect-mitel-eth.c b/epan/dissectors/packet-dect-mitel-eth.c
index 8030571df5..7bb3786942 100644
--- a/epan/dissectors/packet-dect-mitel-eth.c
+++ b/epan/dissectors/packet-dect-mitel-eth.c
@@ -1165,7 +1165,7 @@ static int dissect_dect_mitel_eth(tvbuff_t *tvb, packet_info *pinfo, proto_tree
guint16 mitel_eth_len, payload_len;
guint8 prim_type, layer, mt_item_length;
int offset = 0;
- gboolean ip_encapsulated;
+ bool ip_encapsulated;
tvbuff_t *payload_tvb = NULL;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MI-DECToE");
@@ -1178,9 +1178,9 @@ static int dissect_dect_mitel_eth(tvbuff_t *tvb, packet_info *pinfo, proto_tree
* field with not yet really known content and a two byte length field. This is not in place / consumed
* by the upper layer dissector if this protocol is used in OMM<>RFP communication. So the data parameter
* is used to get information from the dect-mitel-rfp dissector whether it was IP encapsulated or not.
- */
+ */
if(data) {
- ip_encapsulated = *( ( gboolean* )data );
+ ip_encapsulated = *( ( bool* )data );
} else {
ip_encapsulated = false;
}
diff --git a/epan/dissectors/packet-dect-mitel-rfp.c b/epan/dissectors/packet-dect-mitel-rfp.c
index e5b5e679d6..8d5679bfc6 100644
--- a/epan/dissectors/packet-dect-mitel-rfp.c
+++ b/epan/dissectors/packet-dect-mitel-rfp.c
@@ -1594,7 +1594,7 @@ static int dissect_dect_mitel_rfp(tvbuff_t *tvb, packet_info *pinfo, proto_tree
guint offset = 0;
guint16 message_type, message_length;
tvbuff_t *next_tvb;
- gboolean ip_encapsulated = true;
+ bool ip_encapsulated = true;
/*** COLUMN DATA ***/
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MITEL-RFP");
diff --git a/epan/dissectors/packet-dect-nwk.c b/epan/dissectors/packet-dect-nwk.c
index f5ade108ef..5b820ea743 100644
--- a/epan/dissectors/packet-dect-nwk.c
+++ b/epan/dissectors/packet-dect-nwk.c
@@ -3128,7 +3128,7 @@ void proto_register_dect_nwk(void)
}
},
{ &hf_dect_nwk_s_ie_iwu_to_iwu_discriminator_type,
- { "Discriminator Type", "dect_nwk.s.ie.iwu_to_iwu.protocol_discriminator", FT_UINT8, BASE_HEX,
+ { "Discriminator Type", "dect_nwk.s.ie.iwu_to_iwu.discriminator_type", FT_UINT8, BASE_HEX,
VALS(dect_nwk_s_ie_iwu_to_iwu_discriminator_type_val), 0x7F, NULL, HFILL
}
},
diff --git a/epan/dissectors/packet-devicenet.c b/epan/dissectors/packet-devicenet.c
index 888d108654..b8bed7c3e5 100644
--- a/epan/dissectors/packet-devicenet.c
+++ b/epan/dissectors/packet-devicenet.c
@@ -121,9 +121,9 @@ typedef struct {
} uat_devicenet_record_t;
-static uat_devicenet_record_t *uat_devicenet_records = NULL;
-static uat_t *devicenet_uat = NULL;
-static guint num_devicenet_records_uat = 0;
+static uat_devicenet_record_t *uat_devicenet_records;
+static uat_t *devicenet_uat;
+static guint num_devicenet_records_uat;
static bool uat_devicenet_record_update_cb(void* r, char** err) {
uat_devicenet_record_t* rec = (uat_devicenet_record_t *)r;
diff --git a/epan/dissectors/packet-dhcp-failover.c b/epan/dissectors/packet-dhcp-failover.c
index 88e982ddcd..4c23f1e4c1 100644
--- a/epan/dissectors/packet-dhcp-failover.c
+++ b/epan/dissectors/packet-dhcp-failover.c
@@ -45,7 +45,7 @@ void proto_reg_handoff_dhcpfo(void);
static dissector_handle_t dhcpfo_handle;
/* desegmentation of DHCP failover over TCP */
-static gboolean dhcpfo_desegment = TRUE;
+static bool dhcpfo_desegment = true;
/* enum preference to interpret Microsoft-formatted fields correctly */
#define AUTODETECT_MS_DHCP 0
diff --git a/epan/dissectors/packet-dhcp.c b/epan/dissectors/packet-dhcp.c
index ccd1837caa..e7c39bee30 100644
--- a/epan/dissectors/packet-dhcp.c
+++ b/epan/dissectors/packet-dhcp.c
@@ -1015,7 +1015,7 @@ static const value_string o43pxeclient_boot_menu_types[] = {
{ 0, NULL },
};
-static gboolean novell_string = FALSE;
+static bool novell_string;
static gint dhcp_uuid_endian = ENC_LITTLE_ENDIAN;
@@ -1715,10 +1715,10 @@ typedef struct {
} uat_dhcp_record_t;
-static uat_dhcp_record_t *uat_dhcp_records = NULL;
-static uat_t *dhcp_uat = NULL;
-static guint num_dhcp_records_uat = 0;
-static wmem_list_t *saved_uat_opts = NULL; /* List of previous options from UAT to "free" from dissection */
+static uat_dhcp_record_t *uat_dhcp_records;
+static uat_t *dhcp_uat;
+static guint num_dhcp_records_uat;
+static wmem_list_t *saved_uat_opts; /* List of previous options from UAT to "free" from dissection */
static void* uat_dhcp_record_copy_cb(void* n, const void* o, size_t siz _U_) {
uat_dhcp_record_t* new_record = (uat_dhcp_record_t *)n;
@@ -8531,7 +8531,7 @@ proto_register_dhcp(void)
/* AEROHIVE (Extremenetworks) vendor suboptions */
{ &hf_dhcp_option43_aerohive_suboption,
- { "Option 43 Suboption", "dhcp.option.vendor.cisco.suboption",
+ { "Option 43 Suboption", "dhcp.option.vendor.aerohive.suboption",
FT_UINT8, BASE_DEC, VALS(option43_aerohive_suboption_vals), 0x0,
"Option 43:AEROHIVE Suboption", HFILL }},
diff --git a/epan/dissectors/packet-dhcpv6.c b/epan/dissectors/packet-dhcpv6.c
index 816b7acba4..437dfac96c 100644
--- a/epan/dissectors/packet-dhcpv6.c
+++ b/epan/dissectors/packet-dhcpv6.c
@@ -60,8 +60,8 @@
void proto_register_dhcpv6(void);
void proto_reg_handoff_dhcpv6(void);
-static gboolean dhcpv6_bulk_leasequery_desegment = TRUE;
-static gboolean cablelabs_interface_id = FALSE;
+static bool dhcpv6_bulk_leasequery_desegment = true;
+static bool cablelabs_interface_id;
static int proto_dhcpv6;
static int proto_dhcpv6_bulk_leasequery;
diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c
index 9d93d10900..a460178ba6 100644
--- a/epan/dissectors/packet-diameter.c
+++ b/epan/dissectors/packet-diameter.c
@@ -320,7 +320,7 @@ static dissector_handle_t diameter_sctp_handle;
#define DEFAULT_DIAMETER_TLS_PORT 5868
/* desegmentation of Diameter over TCP */
-static gboolean gbl_diameter_desegment = TRUE;
+static bool gbl_diameter_desegment = true;
/* Dissector tables */
static dissector_table_t diameter_dissector_table;
@@ -380,7 +380,7 @@ compare_avps(const void *a, const void *b)
return 0;
}
-static GHashTable* diameterstat_cmd_str_hash = NULL;
+static GHashTable* diameterstat_cmd_str_hash;
#define DIAMETER_NUM_PROCEDURES 1
static void
@@ -545,7 +545,7 @@ dissect_diameter_base_framed_ipv6_prefix(tvbuff_t *tvb, packet_info *pinfo, prot
diam_sub_dis->avp_str = wmem_strdup_printf(pinfo->pool, "%s/%u", address_to_str(pinfo->pool, &addr), prefix_len);
}
- return(prefix_len_bytes+2);
+ return prefix_len_bytes+2;
}
/* AVP Code: 1 User-Name */
diff --git a/epan/dissectors/packet-diameter_3gpp.c b/epan/dissectors/packet-diameter_3gpp.c
index 9d7d36688f..bf8a550bbb 100644
--- a/epan/dissectors/packet-diameter_3gpp.c
+++ b/epan/dissectors/packet-diameter_3gpp.c
@@ -1165,7 +1165,7 @@ dissect_diameter_3gpp_feature_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
break;
case DIAM_APPID_3GPP_S6T:
{
- int* const flags[] = {
+ static int * const flags[] = {
&hf_diameter_3gpp_feature_list_s6t_spare_b31_b10,
&hf_diameter_3gpp_feature_list_s6t_flags_bit9,
&hf_diameter_3gpp_feature_list_s6t_flags_bit8,
@@ -2365,6 +2365,21 @@ dissect_diameter_3gpp_uva_flags(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
}
/* 3GPP TS 29.272
+* 7.3.159 MME-Number-for-MT-SMS
+* AVP Code: 1645 MME-Number-for-MT-SMS
+*/
+static int
+dissect_diameter_3gpp_mme_number_for_mt_sms(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_)
+{
+ int offset = 0;
+ int length = tvb_reported_length(tvb);
+
+ dissect_e164_isdn(tvb, tree, offset, length, E164_ENC_BCD);
+
+ return length;
+}
+
+/* 3GPP TS 29.272
* 7.3.165 Subscription-Data-Flags
* AVP Code: 1654 Subscription-Data-Flags
*/
@@ -3141,6 +3156,9 @@ proto_reg_handoff_diameter_3gpp(void)
/* AVP Code: 1640 UVA-Flags */
dissector_add_uint("diameter.3gpp", 1640, create_dissector_handle(dissect_diameter_3gpp_uva_flags, proto_diameter_3gpp));
+ /* AVP Code: 1645 MME-Number-for-MT-SMS */
+ dissector_add_uint("diameter.3gpp", 1645, create_dissector_handle(dissect_diameter_3gpp_mme_number_for_mt_sms, proto_diameter_3gpp));
+
/* AVP Code: 1654 Subscription-Data-Flags */
dissector_add_uint("diameter.3gpp", 1654, create_dissector_handle(dissect_diameter_3gpp_subscription_data_flags, proto_diameter_3gpp));
diff --git a/epan/dissectors/packet-discard.c b/epan/dissectors/packet-discard.c
index cc1b43f980..7b2117f0f8 100644
--- a/epan/dissectors/packet-discard.c
+++ b/epan/dissectors/packet-discard.c
@@ -33,8 +33,8 @@ static int hf_discard_text;
static int hf_discard_md5_hash;
static int hf_discard_len;
-static gboolean show_as_text = FALSE;
-static gboolean generate_md5_hash = FALSE;
+static bool show_as_text;
+static bool generate_md5_hash;
static gint ett_discard;
diff --git a/epan/dissectors/packet-disp.c b/epan/dissectors/packet-disp.c
index e146696043..ba6848821e 100644
--- a/epan/dissectors/packet-disp.c
+++ b/epan/dissectors/packet-disp.c
@@ -161,67 +161,67 @@ static int hf_disp_shadowError; /* ShadowErrorData */
/* Initialize the subtree pointers */
static gint ett_disp;
-static gint ett_disp_ModificationParameter;
-static gint ett_disp_SET_OF_SupplierAndConsumers;
-static gint ett_disp_ShadowingAgreementInfo;
-static gint ett_disp_UnitOfReplication;
-static gint ett_disp_T_supplyContexts;
-static gint ett_disp_T_selectedContexts;
-static gint ett_disp_AreaSpecification;
-static gint ett_disp_Knowledge;
-static gint ett_disp_AttributeSelection;
-static gint ett_disp_ClassAttributeSelection;
-static gint ett_disp_ClassAttributes;
-static gint ett_disp_AttributeTypes;
-static gint ett_disp_UpdateMode;
-static gint ett_disp_SupplierUpdateMode;
-static gint ett_disp_SchedulingParameters;
-static gint ett_disp_PeriodicStrategy;
-static gint ett_disp_CoordinateShadowUpdateArgumentData;
-static gint ett_disp_T_updateStrategy;
-static gint ett_disp_CoordinateShadowUpdateArgument;
-static gint ett_disp_T_signedCoordinateShadowUpdateArgument;
-static gint ett_disp_CoordinateShadowUpdateResult;
-static gint ett_disp_InformationData;
-static gint ett_disp_SEQUENCE_OF_Attribute;
-static gint ett_disp_Information;
-static gint ett_disp_T_signedInformation;
-static gint ett_disp_RequestShadowUpdateArgumentData;
-static gint ett_disp_T_requestedStrategy;
-static gint ett_disp_RequestShadowUpdateArgument;
-static gint ett_disp_T_signedRequestShadowUpdateArgument;
-static gint ett_disp_RequestShadowUpdateResult;
-static gint ett_disp_UpdateShadowArgumentData;
-static gint ett_disp_UpdateShadowArgument;
-static gint ett_disp_T_signedUpdateShadowArgument;
-static gint ett_disp_UpdateShadowResult;
-static gint ett_disp_UpdateWindow;
-static gint ett_disp_RefreshInformation;
-static gint ett_disp_TotalRefresh;
-static gint ett_disp_SET_OF_Subtree;
-static gint ett_disp_SDSEContent;
-static gint ett_disp_SET_OF_Attribute;
-static gint ett_disp_SET_OF_AttributeType;
-static gint ett_disp_Subtree;
-static gint ett_disp_IncrementalRefresh;
-static gint ett_disp_IncrementalStepRefresh;
-static gint ett_disp_T_sDSEChanges;
-static gint ett_disp_SEQUENCE_OF_SubordinateChanges;
-static gint ett_disp_ContentChange;
-static gint ett_disp_T_rename;
-static gint ett_disp_T_attributeChanges;
-static gint ett_disp_SEQUENCE_OF_EntryModification;
-static gint ett_disp_SubordinateChanges;
-static gint ett_disp_ShadowErrorData;
-static gint ett_disp_ShadowError;
-static gint ett_disp_T_signedShadowError;
+static int ett_disp_ModificationParameter;
+static int ett_disp_SET_OF_SupplierAndConsumers;
+static int ett_disp_ShadowingAgreementInfo;
+static int ett_disp_UnitOfReplication;
+static int ett_disp_T_supplyContexts;
+static int ett_disp_T_selectedContexts;
+static int ett_disp_AreaSpecification;
+static int ett_disp_Knowledge;
+static int ett_disp_AttributeSelection;
+static int ett_disp_ClassAttributeSelection;
+static int ett_disp_ClassAttributes;
+static int ett_disp_AttributeTypes;
+static int ett_disp_UpdateMode;
+static int ett_disp_SupplierUpdateMode;
+static int ett_disp_SchedulingParameters;
+static int ett_disp_PeriodicStrategy;
+static int ett_disp_CoordinateShadowUpdateArgumentData;
+static int ett_disp_T_updateStrategy;
+static int ett_disp_CoordinateShadowUpdateArgument;
+static int ett_disp_T_signedCoordinateShadowUpdateArgument;
+static int ett_disp_CoordinateShadowUpdateResult;
+static int ett_disp_InformationData;
+static int ett_disp_SEQUENCE_OF_Attribute;
+static int ett_disp_Information;
+static int ett_disp_T_signedInformation;
+static int ett_disp_RequestShadowUpdateArgumentData;
+static int ett_disp_T_requestedStrategy;
+static int ett_disp_RequestShadowUpdateArgument;
+static int ett_disp_T_signedRequestShadowUpdateArgument;
+static int ett_disp_RequestShadowUpdateResult;
+static int ett_disp_UpdateShadowArgumentData;
+static int ett_disp_UpdateShadowArgument;
+static int ett_disp_T_signedUpdateShadowArgument;
+static int ett_disp_UpdateShadowResult;
+static int ett_disp_UpdateWindow;
+static int ett_disp_RefreshInformation;
+static int ett_disp_TotalRefresh;
+static int ett_disp_SET_OF_Subtree;
+static int ett_disp_SDSEContent;
+static int ett_disp_SET_OF_Attribute;
+static int ett_disp_SET_OF_AttributeType;
+static int ett_disp_Subtree;
+static int ett_disp_IncrementalRefresh;
+static int ett_disp_IncrementalStepRefresh;
+static int ett_disp_T_sDSEChanges;
+static int ett_disp_SEQUENCE_OF_SubordinateChanges;
+static int ett_disp_ContentChange;
+static int ett_disp_T_rename;
+static int ett_disp_T_attributeChanges;
+static int ett_disp_SEQUENCE_OF_EntryModification;
+static int ett_disp_SubordinateChanges;
+static int ett_disp_ShadowErrorData;
+static int ett_disp_ShadowError;
+static int ett_disp_T_signedShadowError;
static expert_field ei_disp_unsupported_opcode;
static expert_field ei_disp_unsupported_errcode;
static expert_field ei_disp_unsupported_pdu;
static expert_field ei_disp_zero_pdu;
-static dissector_handle_t disp_handle = NULL;
+static dissector_handle_t disp_handle;
/*--- Cyclic dependencies ---*/
@@ -1041,7 +1041,7 @@ static const ber_sequence_t Subtree_sequence[] = {
static int
dissect_disp_Subtree(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Subtree → Subtree/subtree → Subtree
+ // Subtree -> Subtree/subtree -> Subtree
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -1204,7 +1204,7 @@ static const ber_sequence_t IncrementalStepRefresh_sequence[] = {
static int
dissect_disp_IncrementalStepRefresh(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // IncrementalStepRefresh → IncrementalStepRefresh/subordinateUpdates → SubordinateChanges → IncrementalStepRefresh
+ // IncrementalStepRefresh -> IncrementalStepRefresh/subordinateUpdates -> SubordinateChanges -> IncrementalStepRefresh
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-distcc.c b/epan/dissectors/packet-distcc.c
index 43fb6b885e..f81b35ad26 100644
--- a/epan/dissectors/packet-distcc.c
+++ b/epan/dissectors/packet-distcc.c
@@ -40,7 +40,7 @@ static gint ett_distcc;
static expert_field ei_distcc_short_pdu;
-static gboolean distcc_desegment = TRUE;
+static bool distcc_desegment = true;
#define TCP_PORT_DISTCC 3632
diff --git a/epan/dissectors/packet-dji-uav.c b/epan/dissectors/packet-dji-uav.c
index 68f236f600..b6e5082a4c 100644
--- a/epan/dissectors/packet-dji-uav.c
+++ b/epan/dissectors/packet-dji-uav.c
@@ -30,7 +30,7 @@ void proto_reg_handoff_djiuav(void);
static dissector_handle_t djiuav_handle;
/* Enable desegmentation of djiuav over TCP */
-static gboolean djiuav_desegment = TRUE;
+static bool djiuav_desegment = true;
/* Command/Response tracking */
typedef struct _djiuav_conv_info_t {
diff --git a/epan/dissectors/packet-dlep.c b/epan/dissectors/packet-dlep.c
index 3f35482dae..5cdbab5f53 100644
--- a/epan/dissectors/packet-dlep.c
+++ b/epan/dissectors/packet-dlep.c
@@ -193,7 +193,7 @@
#define DLEP_MSG_HEADER_LEN 4
-static gboolean dlep_desegment = TRUE;
+static bool dlep_desegment = true;
static dissector_handle_t dlep_msg_handle;
static dissector_handle_t dlep_sig_handle;
diff --git a/epan/dissectors/packet-dlt.c b/epan/dissectors/packet-dlt.c
index dda06edb61..33785ea5ae 100644
--- a/epan/dissectors/packet-dlt.c
+++ b/epan/dissectors/packet-dlt.c
@@ -164,9 +164,9 @@ void proto_reg_handoff_dlt_storage_header(void);
static int proto_dlt;
static int proto_dlt_storage_header;
-static dissector_handle_t dlt_handle_udp = NULL;
-static dissector_handle_t dlt_handle_tcp = NULL;
-static dissector_handle_t dlt_handle_storage = NULL;
+static dissector_handle_t dlt_handle_udp;
+static dissector_handle_t dlt_handle_tcp;
+static dissector_handle_t dlt_handle_storage;
/* Subdissectors */
static heur_dissector_list_t heur_subdissector_list;
diff --git a/epan/dissectors/packet-dmp.c b/epan/dissectors/packet-dmp.c
index 0302ee47b9..e295a0054c 100644
--- a/epan/dissectors/packet-dmp.c
+++ b/epan/dissectors/packet-dmp.c
@@ -492,8 +492,8 @@ typedef struct _dmp_id_val {
guint32 ack_resend_count; /* Acknowledgement resend counter */
} dmp_id_val;
-static wmem_map_t *dmp_id_hash_table = NULL;
-static wmem_map_t *dmp_long_id_hash_table = NULL;
+static wmem_map_t *dmp_id_hash_table;
+static wmem_map_t *dmp_long_id_hash_table;
/* Global values used in several functions */
static struct dmp_data {
@@ -523,9 +523,9 @@ static struct dmp_data {
/* User definable values */
static gint dmp_nat_decode = NAT_DECODE_DMP;
-static gint dmp_local_nation = 0;
-static gboolean use_seq_ack_analysis = TRUE;
-static gboolean dmp_align = FALSE;
+static gint dmp_local_nation;
+static bool use_seq_ack_analysis = true;
+static bool dmp_align;
typedef struct _dmp_security_class_t {
guint nation;
@@ -4165,13 +4165,13 @@ void proto_register_dmp (void)
*/
{ &hf_addr_recipient,
{ "Recipient Number", "dmp.recipient", FT_NONE, BASE_NONE,
- NULL, 0x0, "Recipient", HFILL } },
+ NULL, 0x0, NULL, HFILL } },
{ &hf_addr_originator,
{ "Originator", "dmp.originator", FT_NONE, BASE_NONE,
NULL, 0x0, NULL, HFILL } },
{ &hf_addr_reporting_name,
{ "Reporting Name Number", "dmp.reporting_name", FT_NONE,
- BASE_NONE, NULL, 0x0, "Reporting Name", HFILL } },
+ BASE_NONE, NULL, 0x0, NULL, HFILL } },
{ &hf_addr_dl_expanded,
{ "DL Expanded", "dmp.dl_expanded", FT_BOOLEAN, BASE_NONE,
NULL, 0x0, "Message has been DL expanded", HFILL } },
@@ -4550,14 +4550,14 @@ void proto_register_dmp (void)
{ &hf_report_reason,
{ "Reason (P1)", "dmp.report_reason", FT_UINT8, BASE_DEC,
VALS (p1_NonDeliveryReasonCode_vals), 0x3F,
- "Reason", HFILL } },
+ NULL, HFILL } },
{ &hf_report_info_present_ndr,
{ "Info Present", "dmp.info_present", FT_BOOLEAN, 8,
TFS (&tfs_present_absent), 0x80, NULL, HFILL } },
{ &hf_report_diagn,
{ "Diagnostic (P1)", "dmp.report_diagnostic", FT_UINT8, BASE_DEC,
VALS (p1_NonDeliveryDiagnosticCode_vals), 0x7F,
- "Diagnostic", HFILL } },
+ NULL, HFILL } },
{ &hf_report_suppl_info_len,
{ "Supplementary Information", "dmp.suppl_info_len", FT_UINT8,
BASE_DEC, NULL, 0x0, "Supplementary Information Length", HFILL } },
@@ -4624,7 +4624,7 @@ void proto_register_dmp (void)
VALS (ack_reason), 0x0, "Reason", HFILL } },
{ &hf_ack_diagnostic,
{ "Ack Diagnostic", "dmp.ack_diagnostic", FT_UINT8, BASE_DEC,
- NULL, 0x0, "Diagnostic", HFILL } },
+ NULL, 0x0, NULL, HFILL } },
{ &hf_ack_recips,
{ "Recipient List", "dmp.ack_rec_list", FT_NONE, BASE_NONE,
NULL, 0x0, NULL, HFILL } },
diff --git a/epan/dissectors/packet-dmx.c b/epan/dissectors/packet-dmx.c
index 35f13256c2..c4414c738e 100644
--- a/epan/dissectors/packet-dmx.c
+++ b/epan/dissectors/packet-dmx.c
@@ -105,9 +105,9 @@ static dissector_handle_t dmx_text_handle;
/*
* Here are the global variables associated with the preferences for DMX
*/
-static gint global_disp_chan_val_type = 0;
+static gint global_disp_chan_val_type;
static gint global_disp_col_count = 16;
-static gint global_disp_chan_nr_type = 0;
+static gint global_disp_chan_nr_type;
static int
dissect_dmx_chan(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
diff --git a/epan/dissectors/packet-dnp.c b/epan/dissectors/packet-dnp.c
index 32b08b74dc..c62d7d9d54 100644
--- a/epan/dissectors/packet-dnp.c
+++ b/epan/dissectors/packet-dnp.c
@@ -1550,7 +1550,7 @@ static const fragment_items dnp3_frag_items = {
};
/* desegmentation of DNP3 over TCP */
-static gboolean dnp3_desegment = TRUE;
+static bool dnp3_desegment = true;
/* Enum for different quality type fields */
enum QUALITY_TYPE {
diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c
index da572e8063..9d3daab43e 100644
--- a/epan/dissectors/packet-dns.c
+++ b/epan/dissectors/packet-dns.c
@@ -78,16 +78,16 @@
// parent knob to turn on-off the entire query-response statistics (at runtime)
// qr = Query-Response
-static gboolean dns_qr_statistics_enabled = TRUE;
+static bool dns_qr_statistics_enabled = true;
// knob to turn on-off the display of query record name (at runtime)
// qrn = Query-Record-Name
-static gboolean dns_qr_qrn_statistics_enabled = FALSE;
+static bool dns_qr_qrn_statistics_enabled;
// knob to turn on-off the display of query-record-name for answers, authorities
// and additionals with zero values (at runtime)
// aud = Answers-aUthorities-aDdtionals; zv = Zero-Value
-static gboolean dns_qr_qrn_aud_zv_statistics_enabled = FALSE;
+static bool dns_qr_qrn_aud_zv_statistics_enabled;
// support for above knobs
static pref_t* perf_qr_enable_statistics;
@@ -191,9 +191,9 @@ static gboolean dns_qr_rt_d_statistics_enabled = TRUE; // d = aDditional
static guint dns_qr_r_ra_ttls[TTL_MAXIMUM_ELEMENTS]; // ra = Answer array
static guint dns_qr_r_ru_ttls[TTL_MAXIMUM_ELEMENTS]; // ru = aUthority array
static guint dns_qr_r_rd_ttls[TTL_MAXIMUM_ELEMENTS]; // rd = aDditional array
-static guint dns_qr_r_ra_ttl_index = 0; // ra = Answer index
-static guint dns_qr_r_ru_ttl_index = 0; // ru = aUthority index
-static guint dns_qr_r_rd_ttl_index = 0; // rd = aDditional index
+static guint dns_qr_r_ra_ttl_index; // ra = Answer index
+static guint dns_qr_r_ru_ttl_index; // ru = aUthority index
+static guint dns_qr_r_rd_ttl_index; // rd = aDditional index
// pointers that point and index into context arrays, i.e., points to answer
// array when processing an answer, points to authority array when processing an
@@ -517,6 +517,7 @@ static int hf_dns_opt_padding;
static int hf_dns_opt_chain_fqdn;
static int hf_dns_opt_ext_error_info_code;
static int hf_dns_opt_ext_error_extra_text;
+static int hf_dns_opt_agent_domain;
static int hf_dns_nsec3_algo;
static int hf_dns_nsec3_flags;
static int hf_dns_nsec3_flag_optout;
@@ -664,7 +665,7 @@ static expert_field ei_dns_retransmit_response;
static expert_field ei_dns_extraneous_data;
static expert_field ei_dns_response_missing;
-static dissector_table_t dns_tsig_dissector_table=NULL;
+static dissector_table_t dns_tsig_dissector_table;
static dissector_handle_t dns_handle;
static dissector_handle_t mdns_udp_handle;
@@ -673,9 +674,9 @@ static dissector_handle_t doq_handle;
/* desegmentation of DNS over TCP */
-static gboolean dns_desegment = TRUE;
+static bool dns_desegment = true;
-static gboolean dns_qname_stats = FALSE;
+static bool dns_qname_stats;
/* Maximum number of elapsed seconds between messages with the same
* transaction ID to be considered as a retransmission
@@ -872,6 +873,7 @@ typedef struct _dns_conv_info_t {
#define O_PADDING 12 /* EDNS(0) Padding Option (RFC7830) */
#define O_CHAIN 13 /* draft-ietf-dnsop-edns-chain-query */
#define O_EXT_ERROR 15 /* Extended DNS Errors (RFC8914) */
+#define O_REPORT_CHANNEL 18 /* DNS Error Reporting (RFC9567) */
#define MIN_DNAME_LEN 2 /* minimum domain name length */
@@ -1318,6 +1320,7 @@ static const value_string edns0_opt_code_vals[] = {
{O_PADDING, "PADDING"},
{O_CHAIN, "CHAIN"},
{O_EXT_ERROR, "Extended DNS Error"},
+ {O_REPORT_CHANNEL, "Report-Channel"},
{0, NULL}
};
/* DNS-Based Authentication of Named Entities (DANE) Parameters
@@ -2063,7 +2066,7 @@ dissect_type_bitmap(proto_tree *rr_tree, tvbuff_t *tvb, int cur_offset, int rr_l
rr_len -= 1;
}
}
- return(initial_offset - cur_offset);
+ return initial_offset - cur_offset;
}
static int
@@ -2092,8 +2095,9 @@ dissect_type_bitmap_nxt(proto_tree *rr_tree, tvbuff_t *tvb, int cur_offset, int
rr_len -= 1;
}
- return(initial_offset - cur_offset);
+ return initial_offset - cur_offset;
}
+
/*
* SIG, KEY, and CERT RR algorithms.
* http://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.txt (last updated 2017-01-09)
@@ -2263,7 +2267,7 @@ add_timestamp(proto_tree *tree, int hf_id, tvbuff_t *tvb, int offset)
https://www.ietf.org/archive/id/draft-denis-dprive-dnscrypt-01.html
https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/dnscrypt_certs.go
*/
-static void
+static int
dissect_dnscrypt(proto_tree *tree, tvbuff_t *tvb, int offset, guint length)
{
proto_item *sub_item;
@@ -2298,6 +2302,8 @@ dissect_dnscrypt(proto_tree *tree, tvbuff_t *tvb, int offset, guint length)
add_timestamp(sub_tree, hf_dns_dnscrypt_ts_end, tvb, offset);
offset += 4;
+
+ return offset;
}
static int
@@ -3447,6 +3453,21 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset,
}
break;
+ case O_REPORT_CHANNEL:
+ {
+
+ const gchar *dname;
+ int dname_len;
+
+ used_bytes = get_dns_name(tvb, cur_offset, 0, dns_data_offset,
+ &dname, &dname_len);
+ name_out = format_text(wmem_packet_scope(), (const guchar*)dname, dname_len);
+ proto_tree_add_string(rropt_tree, hf_dns_opt_agent_domain, tvb, cur_offset, used_bytes, name_out);
+
+ cur_offset += used_bytes;
+ rropt_len -= used_bytes;
+ }
+ break;
default:
{
cur_offset += optlen;
@@ -7241,6 +7262,11 @@ proto_register_dns(void)
FT_STRING, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
+ { &hf_dns_opt_agent_domain,
+ { "Agent Domain", "dns.opt.agent_domain",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
{ &hf_dns_count_questions,
{ "Questions", "dns.count.queries",
FT_UINT16, BASE_DEC, NULL, 0x0,
diff --git a/epan/dissectors/packet-do-irp.c b/epan/dissectors/packet-do-irp.c
index 22b8caed21..1078d6d99a 100644
--- a/epan/dissectors/packet-do-irp.c
+++ b/epan/dissectors/packet-do-irp.c
@@ -265,7 +265,7 @@ struct do_irp_request_hash_val {
guint32 pnum_resp;
guint32 opcode;
};
-static wmem_map_t *do_irp_request_hash_map = NULL;
+static wmem_map_t *do_irp_request_hash_map;
#define DO_IRP_OC_RESERVED 0
#define DO_IRP_OC_RESOLUTION 1
diff --git a/epan/dissectors/packet-docsis-macmgmt.c b/epan/dissectors/packet-docsis-macmgmt.c
index 21a95773e6..fa5e331299 100644
--- a/epan/dissectors/packet-docsis-macmgmt.c
+++ b/epan/dissectors/packet-docsis-macmgmt.c
@@ -3840,6 +3840,7 @@ dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
tvbuff_t *attr_tvb;
total_len = tvb_reported_length_remaining (tvb, 0);
+ increment_dissection_depth(pinfo);
while (pos < total_len)
{
type = tvb_get_guint8 (tvb, pos);
@@ -3880,7 +3881,6 @@ dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
ti = proto_tree_add_item (attr_tree, hf_docsis_bpkmattr_cm_id, tvb, pos, length, ENC_NA);
attr_subtree = proto_item_add_subtree(ti, ett_docsis_bpkmattr_cmid);
attr_tvb = tvb_new_subset_length (tvb, pos, length);
- // We recurse here, but we're limited by our packet length and the depth check in proto_tree_add_node.
dissect_attrs (attr_tvb, pinfo, attr_subtree);
break;
case BPKM_DISPLAY_STR:
@@ -4015,6 +4015,7 @@ dissect_attrs (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
pos += length; /* switch */
} /* while */
+ decrement_dissection_depth(pinfo);
}
static int
diff --git a/epan/dissectors/packet-docsis.c b/epan/dissectors/packet-docsis.c
index daeb7e9a28..c700c1cadd 100644
--- a/epan/dissectors/packet-docsis.c
+++ b/epan/dissectors/packet-docsis.c
@@ -52,8 +52,8 @@ void proto_register_docsis(void);
void proto_reg_handoff_docsis(void);
/* Assume all packets have an FCS */
-static gboolean docsis_check_fcs = TRUE;
-static gboolean docsis_dissect_encrypted_frames = FALSE;
+static bool docsis_check_fcs = true;
+static bool docsis_dissect_encrypted_frames;
#define DOCSIS_MIN_HEADER_LEN 6
@@ -285,7 +285,7 @@ static const fragment_items docsis_frag_items = {
/* Dissection */
/* Code to Dissect the extended header; TLV Formatted headers */
static void
-dissect_ehdr (tvbuff_t * tvb, proto_tree * tree, packet_info * pinfo, gboolean *is_encrypted)
+dissect_ehdr (tvbuff_t * tvb, proto_tree * tree, packet_info * pinfo, bool *is_encrypted)
{
proto_tree *ehdr_tree;
proto_item *eh_length_item;
@@ -479,7 +479,7 @@ dissect_hcs_field (tvbuff_t * tvb, packet_info * pinfo, proto_tree * docsis_tree
/* The length field may condain a SID, but this logic is not handled here */
static void
dissect_exthdr_length_field (tvbuff_t * tvb, packet_info * pinfo, proto_tree * docsis_tree,
- guint8 exthdr, guint16 mac_parm, guint16 len_sid, guint16 *payload_length, gboolean *is_encrypted)
+ guint8 exthdr, guint16 mac_parm, guint16 len_sid, guint16 *payload_length, bool *is_encrypted)
{
proto_item *length_item;
if (exthdr == EXT_HDR_ON)
@@ -599,7 +599,7 @@ dissect_docsis (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* da
guint16 payload_length = 0;
/* guint16 framelen = 0; */
gboolean save_fragmented;
- gboolean is_encrypted = FALSE;
+ bool is_encrypted = false;
gboolean fcs_correct;
proto_item *ti;
proto_tree *docsis_tree;
diff --git a/epan/dissectors/packet-dof.c b/epan/dissectors/packet-dof.c
index f5b16aaf12..acd462f3d1 100644
--- a/epan/dissectors/packet-dof.c
+++ b/epan/dissectors/packet-dof.c
@@ -697,8 +697,8 @@ typedef struct _dof_globals
dof_packet_data *dof_packet_tail;
dof_security_data *global_security;
dof_learned_group_data *learned_group_data;
- gboolean decrypt_all_packets;
- gboolean track_operations;
+ bool decrypt_all_packets;
+ bool track_operations;
guint track_operations_window;
} dof_globals;
@@ -1215,7 +1215,7 @@ static int * const bitmask_oap_1_cmdcontrol_flags[] = {
static expert_field ei_oap_no_session;
-static GHashTable *oap_1_alias_to_binding = NULL;
+static GHashTable *oap_1_alias_to_binding;
#define OAP_1_RESPONSE (0x80)
#define OAP_1_CMD_ACTIVATE 28
@@ -2103,9 +2103,9 @@ static expert_field ei_security_13_out_of_range;
* partial information is known, and must support looking up in both directions
* based on what is known from a particular PDU.
*/
-static GHashTable *node_key_to_sid_id = NULL;
-static GHashTable *sid_buffer_to_sid_id = NULL;
-static GHashTable *sid_id_to_sid_buffer = NULL;
+static GHashTable *node_key_to_sid_id;
+static GHashTable *sid_buffer_to_sid_id;
+static GHashTable *sid_id_to_sid_buffer;
typedef struct _node_key_to_sid_id_key
{
@@ -2222,7 +2222,7 @@ static void dpp_reset_sid_support(void)
* The hash is used to look up common operation information each time an operation
* is seen in any packet.
*/
-static GHashTable *dpp_opid_to_packet_data = NULL;
+static GHashTable *dpp_opid_to_packet_data;
static guint dpp_opid_hash_fn(gconstpointer opid)
{
@@ -2257,7 +2257,7 @@ static void dpp_reset_opid_support(void)
/**
* NON-SECURE SESSION LOOKUP SUPPORT
*/
-static GHashTable *dof_ns_session_lookup = NULL;
+static GHashTable *dof_ns_session_lookup;
/**
* NON-SECURE DPS SESSION
@@ -3223,8 +3223,8 @@ static int dof_dissect_dnp_length(tvbuff_t *tvb, packet_info *pinfo, guint8 vers
* mode templates, security keys, and secrets to be configured.
*/
-static gboolean decrypt_all_packets = FALSE;
-static gboolean track_operations = FALSE;
+static bool decrypt_all_packets;
+static bool track_operations;
static guint track_operations_window = 5;
static guint32 next_dof_frame = 1;
@@ -3235,8 +3235,8 @@ typedef struct _secmode_field_t {
gchar *kek;
} secmode_field_t;
-static secmode_field_t *secmode_list = NULL;
-static guint num_secmode_list = 0;
+static secmode_field_t *secmode_list;
+static guint num_secmode_list;
/* Structure for security keys. */
typedef struct _seckey_field_t {
@@ -3331,12 +3331,12 @@ static dof_security_data global_security;
static guint8 count_hex_bytes(gchar *str);
/* Global DPS data structures for security keys. */
-static seckey_field_t *seckey_list = NULL;
-static guint num_seckey_list = 0;
+static seckey_field_t *seckey_list;
+static guint num_seckey_list;
/* Global DPS data structures for identity secrets. */
-static identsecret_field_t *identsecret_list = NULL;
-static guint num_identsecret_list = 0;
+static identsecret_field_t *identsecret_list;
+static guint num_identsecret_list;
/* Callbacks for Configuration security templates. */
@@ -3528,7 +3528,7 @@ static void init_addr_port_tables(void);
* transport address. This requires a hash lookup from address/port to ID.
*/
-static GHashTable *addr_port_to_id = NULL;
+static GHashTable *addr_port_to_id;
typedef struct _addr_port_key
{
@@ -4353,7 +4353,7 @@ static guint8 parseHexField(struct parseCtx *ctx)
{
if (PARSECTX_PEEK_NEXT_CHAR_OID(ctx) == '}')
{
- /* no seperator after byte block */
+ /* no separator after byte block */
return 1;
}
PARSECTX_STEP_OID(ctx, 1);
@@ -4476,7 +4476,7 @@ static guint8 parseOIDClass(struct parseCtx *ctx)
{
if (PARSECTX_PEEK_NEXT_CHAR_OID(ctx) == '}')
{
- /* no seperator after byte block */
+ /* no separator after byte block */
return 1;
}
PARSECTX_STEP_OID(ctx, 1);
@@ -8338,7 +8338,7 @@ static int dissect_oap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
else
offset = oap_1_tree_add_binding(oap_tree, pinfo, tvb, offset);
- /* Read the miniumum delta. */
+ /* Read the minimum delta. */
{
gint delta_len;
guint16 delta;
diff --git a/epan/dissectors/packet-doip.c b/epan/dissectors/packet-doip.c
index 71567b62b2..4a050ea250 100644
--- a/epan/dissectors/packet-doip.c
+++ b/epan/dissectors/packet-doip.c
@@ -346,7 +346,7 @@ static const value_string diag_nack_codes[] = {
* Config
*/
-static gboolean doip_hide_address_names = TRUE;
+static bool doip_hide_address_names = true;
/*
* Fields
@@ -530,9 +530,9 @@ ht_lookup_name(GHashTable* ht, unsigned int identifier) {
*/
#define DATAFILE_DOIP_DIAG_ADDRESSES "DoIP_diagnostic_addresses"
-static GHashTable *data_doip_diag_addresses = NULL;
-static generic_one_id_string_t* doip_diag_addresses = NULL;
-static guint doip_diag_address_count = 0;
+static GHashTable *data_doip_diag_addresses;
+static generic_one_id_string_t* doip_diag_addresses;
+static guint doip_diag_address_count;
UAT_HEX_CB_DEF(doip_diag_addresses, id, generic_one_id_string_t)
UAT_CSTRING_CB_DEF(doip_diag_addresses, name, generic_one_id_string_t)
@@ -580,9 +580,9 @@ doip_prototree_add_with_resolv(proto_tree* doip_tree, int hfindex, int hfindex_n
*/
#define DATAFILE_DOIP_PAYLOAD_TYPES "DoIP_payload_types"
-static GHashTable *data_doip_payload_types = NULL;
-static generic_one_id_string_t* doip_payload_types = NULL;
-static guint doip_payload_type_count = 0;
+static GHashTable *data_doip_payload_types;
+static generic_one_id_string_t* doip_payload_types;
+static guint doip_payload_type_count;
UAT_HEX_CB_DEF(doip_payload_types, id, generic_one_id_string_t)
UAT_CSTRING_CB_DEF(doip_payload_types, name, generic_one_id_string_t)
diff --git a/epan/dissectors/packet-dop.c b/epan/dissectors/packet-dop.c
index 088c88e104..7ae708cd53 100644
--- a/epan/dissectors/packet-dop.c
+++ b/epan/dissectors/packet-dop.c
@@ -46,7 +46,7 @@ void proto_reg_handoff_dop(void);
/* Initialize the protocol and registered fields */
static int proto_dop;
-static const char *binding_type = NULL; /* binding_type */
+static const char *binding_type; /* binding_type */
static int call_dop_oid_callback(const char *base_string, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *col_info, void* data);
@@ -246,73 +246,73 @@ static int hf_dop_GrantsAndDenials_denyInvoke;
/* Initialize the subtree pointers */
static gint ett_dop;
static gint ett_dop_unknown;
-static gint ett_dop_DSEType;
-static gint ett_dop_SupplierOrConsumer;
-static gint ett_dop_SET_OF_ProtocolInformation;
-static gint ett_dop_SupplierInformation;
-static gint ett_dop_SupplierAndConsumers;
-static gint ett_dop_SET_OF_AccessPoint;
-static gint ett_dop_EstablishOperationalBindingArgumentData;
-static gint ett_dop_EstablishArgumentInitiator;
-static gint ett_dop_EstablishOperationalBindingArgument;
-static gint ett_dop_T_signedEstablishOperationalBindingArgument;
-static gint ett_dop_OperationalBindingID;
-static gint ett_dop_Validity;
-static gint ett_dop_T_validFrom;
-static gint ett_dop_T_validUntil;
-static gint ett_dop_Time;
-static gint ett_dop_EstablishOperationalBindingResult;
-static gint ett_dop_T_initiator;
-static gint ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute;
-static gint ett_dop_ModifyOperationalBindingArgumentData;
-static gint ett_dop_ModifyArgumentInitiator;
-static gint ett_dop_ModifyOperationalBindingArgument;
-static gint ett_dop_T_signedModifyOperationalBindingArgument;
-static gint ett_dop_ModifyOperationalBindingResult;
-static gint ett_dop_ProtectedModifyResult;
-static gint ett_dop_ModifyOperationalBindingResultData;
-static gint ett_dop_TerminateOperationalBindingArgumentData;
-static gint ett_dop_TerminateArgumentInitiator;
-static gint ett_dop_TerminateOperationalBindingArgument;
-static gint ett_dop_T_signedTerminateOperationalBindingArgument;
-static gint ett_dop_TerminateOperationalBindingResult;
-static gint ett_dop_ProtectedTerminateResult;
-static gint ett_dop_TerminateOperationalBindingResultData;
-static gint ett_dop_OpBindingErrorParam;
-static gint ett_dop_HierarchicalAgreement;
-static gint ett_dop_SuperiorToSubordinate;
-static gint ett_dop_SET_OF_Attribute;
-static gint ett_dop_DITcontext;
-static gint ett_dop_Vertex;
-static gint ett_dop_SET_OF_SubentryInfo;
-static gint ett_dop_SubentryInfo;
-static gint ett_dop_SubordinateToSuperior;
-static gint ett_dop_SuperiorToSubordinateModification;
-static gint ett_dop_NonSpecificHierarchicalAgreement;
-static gint ett_dop_NHOBSuperiorToSubordinate;
-static gint ett_dop_NHOBSubordinateToSuperior;
-static gint ett_dop_ACIItem;
-static gint ett_dop_T_itemOrUserFirst;
-static gint ett_dop_T_itemFirst;
-static gint ett_dop_SET_OF_ItemPermission;
-static gint ett_dop_T_userFirst;
-static gint ett_dop_SET_OF_UserPermission;
-static gint ett_dop_ProtectedItems;
-static gint ett_dop_SET_OF_AttributeType;
-static gint ett_dop_SET_OF_AttributeTypeAndValue;
-static gint ett_dop_SET_OF_MaxValueCount;
-static gint ett_dop_SET_OF_RestrictedValue;
-static gint ett_dop_SET_OF_ContextAssertion;
-static gint ett_dop_MaxValueCount;
-static gint ett_dop_RestrictedValue;
-static gint ett_dop_UserClasses;
-static gint ett_dop_SET_OF_NameAndOptionalUID;
-static gint ett_dop_SET_OF_SubtreeSpecification;
-static gint ett_dop_ItemPermission;
-static gint ett_dop_UserPermission;
-static gint ett_dop_AuthenticationLevel;
-static gint ett_dop_T_basicLevels;
-static gint ett_dop_GrantsAndDenials;
+static int ett_dop_DSEType;
+static int ett_dop_SupplierOrConsumer;
+static int ett_dop_SET_OF_ProtocolInformation;
+static int ett_dop_SupplierInformation;
+static int ett_dop_SupplierAndConsumers;
+static int ett_dop_SET_OF_AccessPoint;
+static int ett_dop_EstablishOperationalBindingArgumentData;
+static int ett_dop_EstablishArgumentInitiator;
+static int ett_dop_EstablishOperationalBindingArgument;
+static int ett_dop_T_signedEstablishOperationalBindingArgument;
+static int ett_dop_OperationalBindingID;
+static int ett_dop_Validity;
+static int ett_dop_T_validFrom;
+static int ett_dop_T_validUntil;
+static int ett_dop_Time;
+static int ett_dop_EstablishOperationalBindingResult;
+static int ett_dop_T_initiator;
+static int ett_dop_SEQUENCE_SIZE_1_MAX_OF_Attribute;
+static int ett_dop_ModifyOperationalBindingArgumentData;
+static int ett_dop_ModifyArgumentInitiator;
+static int ett_dop_ModifyOperationalBindingArgument;
+static int ett_dop_T_signedModifyOperationalBindingArgument;
+static int ett_dop_ModifyOperationalBindingResult;
+static int ett_dop_ProtectedModifyResult;
+static int ett_dop_ModifyOperationalBindingResultData;
+static int ett_dop_TerminateOperationalBindingArgumentData;
+static int ett_dop_TerminateArgumentInitiator;
+static int ett_dop_TerminateOperationalBindingArgument;
+static int ett_dop_T_signedTerminateOperationalBindingArgument;
+static int ett_dop_TerminateOperationalBindingResult;
+static int ett_dop_ProtectedTerminateResult;
+static int ett_dop_TerminateOperationalBindingResultData;
+static int ett_dop_OpBindingErrorParam;
+static int ett_dop_HierarchicalAgreement;
+static int ett_dop_SuperiorToSubordinate;
+static int ett_dop_SET_OF_Attribute;
+static int ett_dop_DITcontext;
+static int ett_dop_Vertex;
+static int ett_dop_SET_OF_SubentryInfo;
+static int ett_dop_SubentryInfo;
+static int ett_dop_SubordinateToSuperior;
+static int ett_dop_SuperiorToSubordinateModification;
+static int ett_dop_NonSpecificHierarchicalAgreement;
+static int ett_dop_NHOBSuperiorToSubordinate;
+static int ett_dop_NHOBSubordinateToSuperior;
+static int ett_dop_ACIItem;
+static int ett_dop_T_itemOrUserFirst;
+static int ett_dop_T_itemFirst;
+static int ett_dop_SET_OF_ItemPermission;
+static int ett_dop_T_userFirst;
+static int ett_dop_SET_OF_UserPermission;
+static int ett_dop_ProtectedItems;
+static int ett_dop_SET_OF_AttributeType;
+static int ett_dop_SET_OF_AttributeTypeAndValue;
+static int ett_dop_SET_OF_MaxValueCount;
+static int ett_dop_SET_OF_RestrictedValue;
+static int ett_dop_SET_OF_ContextAssertion;
+static int ett_dop_MaxValueCount;
+static int ett_dop_RestrictedValue;
+static int ett_dop_UserClasses;
+static int ett_dop_SET_OF_NameAndOptionalUID;
+static int ett_dop_SET_OF_SubtreeSpecification;
+static int ett_dop_ItemPermission;
+static int ett_dop_UserPermission;
+static int ett_dop_AuthenticationLevel;
+static int ett_dop_T_basicLevels;
+static int ett_dop_GrantsAndDenials;
static expert_field ei_dop_unknown_binding_parameter;
static expert_field ei_dop_unsupported_opcode;
@@ -320,7 +320,7 @@ static expert_field ei_dop_unsupported_errcode;
static expert_field ei_dop_unsupported_pdu;
static expert_field ei_dop_zero_pdu;
-static dissector_handle_t dop_handle = NULL;
+static dissector_handle_t dop_handle;
/* Dissector table */
static dissector_table_t dop_dissector_table;
diff --git a/epan/dissectors/packet-drda.c b/epan/dissectors/packet-drda.c
index 7964bc4b2f..48670d6813 100644
--- a/epan/dissectors/packet-drda.c
+++ b/epan/dissectors/packet-drda.c
@@ -233,7 +233,7 @@ typedef ENUM_VAL_T_ENUM(typdefnam_vals) enum_typdefnam_t;
ENUM_VAL_T_ARRAY_STATIC(typdefnam_vals);
/* Preferences */
-static gboolean drda_desegment = TRUE;
+static bool drda_desegment = true;
static guint drda_default_sqlam = 7;
static gint drda_default_typdefnam = TYPDEFNAM_X86;
static gint drda_default_ccsidsbc = IANA_CS_UTF_8;
diff --git a/epan/dissectors/packet-dsi.c b/epan/dissectors/packet-dsi.c
index 5702da5c7e..db1fb5e24a 100644
--- a/epan/dissectors/packet-dsi.c
+++ b/epan/dissectors/packet-dsi.c
@@ -108,7 +108,7 @@ static const value_string dsi_open_type_vals[] = {
{0, NULL } };
/* desegmentation of DSI */
-static gboolean dsi_desegment = TRUE;
+static bool dsi_desegment = true;
static dissector_handle_t afp_handle;
static dissector_handle_t afp_server_status_handle;
diff --git a/epan/dissectors/packet-dsp.c b/epan/dissectors/packet-dsp.c
index 1a51f14c5b..5b59ac9903 100644
--- a/epan/dissectors/packet-dsp.c
+++ b/epan/dissectors/packet-dsp.c
@@ -184,77 +184,77 @@ static int hf_dsp_other; /* EXTERNAL */
/* Initialize the subtree pointers */
static gint ett_dsp;
-static gint ett_dsp_ChainedReadArgumentData;
-static gint ett_dsp_ChainedReadArgument;
-static gint ett_dsp_T_signedChainedReadArgument;
-static gint ett_dsp_ChainedReadResultData;
-static gint ett_dsp_ChainedReadResult;
-static gint ett_dsp_T_signedChainedReadResult;
-static gint ett_dsp_ChainedCompareArgumentData;
-static gint ett_dsp_ChainedCompareArgument;
-static gint ett_dsp_T_signedChainedCompareArgument;
-static gint ett_dsp_ChainedCompareResultData;
-static gint ett_dsp_ChainedCompareResult;
-static gint ett_dsp_T_signedChainedCompareResult;
-static gint ett_dsp_ChainedListArgumentData;
-static gint ett_dsp_ChainedListArgument;
-static gint ett_dsp_T_signedChainedListArgument;
-static gint ett_dsp_ChainedListResultData;
-static gint ett_dsp_ChainedListResult;
-static gint ett_dsp_T_signedChainedListResult;
-static gint ett_dsp_ChainedSearchArgumentData;
-static gint ett_dsp_ChainedSearchArgument;
-static gint ett_dsp_T_signedChainedSearchArgument;
-static gint ett_dsp_ChainedSearchResultData;
-static gint ett_dsp_ChainedSearchResult;
-static gint ett_dsp_T_signedChainedSearchResult;
-static gint ett_dsp_ChainedAddEntryArgumentData;
-static gint ett_dsp_ChainedAddEntryArgument;
-static gint ett_dsp_T_signedChainedAddEntryArgument;
-static gint ett_dsp_ChainedAddEntryResultData;
-static gint ett_dsp_ChainedAddEntryResult;
-static gint ett_dsp_T_signedChainedAddEntryResult;
-static gint ett_dsp_ChainedRemoveEntryArgumentData;
-static gint ett_dsp_ChainedRemoveEntryArgument;
-static gint ett_dsp_T_signedChainedRemoveEntryArgument;
-static gint ett_dsp_ChainedRemoveEntryResultData;
-static gint ett_dsp_ChainedRemoveEntryResult;
-static gint ett_dsp_T_signedChainedRemoveEntryResult;
-static gint ett_dsp_ChainedModifyEntryArgumentData;
-static gint ett_dsp_ChainedModifyEntryArgument;
-static gint ett_dsp_T_signedChainedModifyEntryArgument;
-static gint ett_dsp_ChainedModifyEntryResultData;
-static gint ett_dsp_ChainedModifyEntryResult;
-static gint ett_dsp_T_signedChainedModifyEntryResult;
-static gint ett_dsp_ChainedModifyDNArgumentData;
-static gint ett_dsp_ChainedModifyDNArgument;
-static gint ett_dsp_T_signedChainedModifyDNArgument;
-static gint ett_dsp_ChainedModifyDNResultData;
-static gint ett_dsp_ChainedModifyDNResult;
-static gint ett_dsp_T_signedChainedModifyDNResult;
-static gint ett_dsp_DSAReferralData;
-static gint ett_dsp_SEQUENCE_OF_Attribute;
-static gint ett_dsp_DSAReferral;
-static gint ett_dsp_T_signedDSAReferral;
-static gint ett_dsp_ChainingArguments;
-static gint ett_dsp_Time;
-static gint ett_dsp_ChainingResults;
-static gint ett_dsp_SEQUENCE_OF_CrossReference;
-static gint ett_dsp_CrossReference;
-static gint ett_dsp_OperationProgress;
-static gint ett_dsp_TraceInformation;
-static gint ett_dsp_TraceItem;
-static gint ett_dsp_AccessPoint;
-static gint ett_dsp_SET_OF_ProtocolInformation;
-static gint ett_dsp_MasterOrShadowAccessPoint;
-static gint ett_dsp_MasterAndShadowAccessPoints;
-static gint ett_dsp_AccessPointInformation;
-static gint ett_dsp_DitBridgeKnowledge;
-static gint ett_dsp_Exclusions;
-static gint ett_dsp_ContinuationReference;
-static gint ett_dsp_SET_OF_AccessPointInformation;
-static gint ett_dsp_AuthenticationLevel;
-static gint ett_dsp_T_basicLevels;
+static int ett_dsp_ChainedReadArgumentData;
+static int ett_dsp_ChainedReadArgument;
+static int ett_dsp_T_signedChainedReadArgument;
+static int ett_dsp_ChainedReadResultData;
+static int ett_dsp_ChainedReadResult;
+static int ett_dsp_T_signedChainedReadResult;
+static int ett_dsp_ChainedCompareArgumentData;
+static int ett_dsp_ChainedCompareArgument;
+static int ett_dsp_T_signedChainedCompareArgument;
+static int ett_dsp_ChainedCompareResultData;
+static int ett_dsp_ChainedCompareResult;
+static int ett_dsp_T_signedChainedCompareResult;
+static int ett_dsp_ChainedListArgumentData;
+static int ett_dsp_ChainedListArgument;
+static int ett_dsp_T_signedChainedListArgument;
+static int ett_dsp_ChainedListResultData;
+static int ett_dsp_ChainedListResult;
+static int ett_dsp_T_signedChainedListResult;
+static int ett_dsp_ChainedSearchArgumentData;
+static int ett_dsp_ChainedSearchArgument;
+static int ett_dsp_T_signedChainedSearchArgument;
+static int ett_dsp_ChainedSearchResultData;
+static int ett_dsp_ChainedSearchResult;
+static int ett_dsp_T_signedChainedSearchResult;
+static int ett_dsp_ChainedAddEntryArgumentData;
+static int ett_dsp_ChainedAddEntryArgument;
+static int ett_dsp_T_signedChainedAddEntryArgument;
+static int ett_dsp_ChainedAddEntryResultData;
+static int ett_dsp_ChainedAddEntryResult;
+static int ett_dsp_T_signedChainedAddEntryResult;
+static int ett_dsp_ChainedRemoveEntryArgumentData;
+static int ett_dsp_ChainedRemoveEntryArgument;
+static int ett_dsp_T_signedChainedRemoveEntryArgument;
+static int ett_dsp_ChainedRemoveEntryResultData;
+static int ett_dsp_ChainedRemoveEntryResult;
+static int ett_dsp_T_signedChainedRemoveEntryResult;
+static int ett_dsp_ChainedModifyEntryArgumentData;
+static int ett_dsp_ChainedModifyEntryArgument;
+static int ett_dsp_T_signedChainedModifyEntryArgument;
+static int ett_dsp_ChainedModifyEntryResultData;
+static int ett_dsp_ChainedModifyEntryResult;
+static int ett_dsp_T_signedChainedModifyEntryResult;
+static int ett_dsp_ChainedModifyDNArgumentData;
+static int ett_dsp_ChainedModifyDNArgument;
+static int ett_dsp_T_signedChainedModifyDNArgument;
+static int ett_dsp_ChainedModifyDNResultData;
+static int ett_dsp_ChainedModifyDNResult;
+static int ett_dsp_T_signedChainedModifyDNResult;
+static int ett_dsp_DSAReferralData;
+static int ett_dsp_SEQUENCE_OF_Attribute;
+static int ett_dsp_DSAReferral;
+static int ett_dsp_T_signedDSAReferral;
+static int ett_dsp_ChainingArguments;
+static int ett_dsp_Time;
+static int ett_dsp_ChainingResults;
+static int ett_dsp_SEQUENCE_OF_CrossReference;
+static int ett_dsp_CrossReference;
+static int ett_dsp_OperationProgress;
+static int ett_dsp_TraceInformation;
+static int ett_dsp_TraceItem;
+static int ett_dsp_AccessPoint;
+static int ett_dsp_SET_OF_ProtocolInformation;
+static int ett_dsp_MasterOrShadowAccessPoint;
+static int ett_dsp_MasterAndShadowAccessPoints;
+static int ett_dsp_AccessPointInformation;
+static int ett_dsp_DitBridgeKnowledge;
+static int ett_dsp_Exclusions;
+static int ett_dsp_ContinuationReference;
+static int ett_dsp_SET_OF_AccessPointInformation;
+static int ett_dsp_AuthenticationLevel;
+static int ett_dsp_T_basicLevels;
static expert_field ei_dsp_unsupported_opcode;
static expert_field ei_dsp_unsupported_errcode;
diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c
index 3bf25ea35b..220b3e6e76 100644
--- a/epan/dissectors/packet-dtls.c
+++ b/epan/dissectors/packet-dtls.c
@@ -47,10 +47,12 @@
#include <epan/decode_as.h>
#include <epan/proto_data.h>
#include <epan/secrets.h> /* for privkey_hash_table_new */
+#include <epan/tfs.h>
#include <wsutil/str_util.h>
#include <wsutil/strtoi.h>
#include <wsutil/utf8_entities.h>
#include <wsutil/rsa.h>
+#include <wsutil/pint.h>
#include "packet-tls-utils.h"
#include "packet-dtls.h"
#include "packet-rtp.h"
@@ -60,8 +62,8 @@ void proto_register_dtls(void);
#ifdef HAVE_LIBGNUTLS
/* DTLS User Access Table */
-static ssldecrypt_assoc_t *dtlskeylist_uats = NULL;
-static guint ndtlsdecrypt = 0;
+static ssldecrypt_assoc_t *dtlskeylist_uats;
+static guint ndtlsdecrypt;
#endif
/* we need to remember the top tree so that subdissectors we call are created
@@ -85,6 +87,12 @@ static proto_tree *top_tree;
#define SRTP_AEAD_AES_128_GCM 0x0007
#define SRTP_AEAD_AES_256_GCM 0x0008
+#define DTLS13_FIXED_MASK 0xE0
+#define DTLS13_C_BIT_MASK 0x10
+#define DTLS13_S_BIT_MASK 0x08
+#define DTLS13_L_BIT_MASK 0x04
+#define DTLS13_HDR_EPOCH_BIT_MASK 0x3
+
static const value_string srtp_protection_profile_vals[] = {
{ SRTP_AES128_CM_HMAC_SHA1_80, "SRTP_AES128_CM_HMAC_SHA1_80" }, /* RFC 5764 */
{ SRTP_AES128_CM_HMAC_SHA1_32, "SRTP_AES128_CM_HMAC_SHA1_32" },
@@ -95,6 +103,11 @@ static const value_string srtp_protection_profile_vals[] = {
{ 0x00, NULL },
};
+static const true_false_string dtls_uni_hdr_seq_tfs = {
+ "16 bits",
+ "8 bits"
+};
+
/* Initialize the protocol and registered fields */
static gint dtls_tap = -1;
static gint exported_pdu_tap = -1;
@@ -103,8 +116,12 @@ static gint hf_dtls_record;
static gint hf_dtls_record_content_type;
static gint hf_dtls_record_special_type;
static gint hf_dtls_record_version;
+static gint hf_dtls_ack_record_numbers;
static gint hf_dtls_record_epoch;
+static gint hf_dtls_record_epoch64;
static gint hf_dtls_record_sequence_number;
+static gint hf_dtls_record_sequence_suffix;
+static gint hf_dtls_record_sequence_suffix_dec;
static gint hf_dtls_record_connection_id;
static gint hf_dtls_record_length;
static gint hf_dtls_record_appdata;
@@ -126,6 +143,8 @@ static gint hf_dtls_heartbeat_message_payload_length;
static gint hf_dtls_heartbeat_message_payload;
static gint hf_dtls_heartbeat_message_padding;
+static gint hf_dtls_ack_message;
+static gint hf_dtls_ack_record_numbers_length;
static gint hf_dtls_fragments;
static gint hf_dtls_fragment;
static gint hf_dtls_fragment_overlap;
@@ -142,6 +161,13 @@ static gint hf_dtls_hs_ext_use_srtp_protection_profile;
static gint hf_dtls_hs_ext_use_srtp_mki_length;
static gint hf_dtls_hs_ext_use_srtp_mki;
+static gint hf_dtls_uni_hdr;
+static gint hf_dtls_uni_hdr_fixed;
+static gint hf_dtls_uni_hdr_cid;
+static gint hf_dtls_uni_hdr_seq;
+static gint hf_dtls_uni_hdr_len;
+static gint hf_dtls_uni_hdr_epoch;
+
/* header fields used in ssl-utils, but defined here. */
static dtls_hfs_t dtls_hfs;
@@ -151,7 +177,11 @@ static gint ett_dtls_record;
static gint ett_dtls_alert;
static gint ett_dtls_handshake;
static gint ett_dtls_heartbeat;
+static gint ett_dtls_ack;
+static gint ett_dtls_ack_record_numbers;
+static gint ett_dtls_ack_record_number;
static gint ett_dtls_certs;
+static gint ett_dtls_uni_hdr;
static gint ett_dtls_fragment;
static gint ett_dtls_fragments;
@@ -168,20 +198,20 @@ static expert_field ei_dtls_cid_invalid_enc_content;
#endif
#ifdef HAVE_LIBGNUTLS
-static GHashTable *dtls_key_hash = NULL;
-static wmem_stack_t *key_list_stack = NULL;
-static uat_t *dtlsdecrypt_uat = NULL;
-static const gchar *dtls_keys_list = NULL;
+static GHashTable *dtls_key_hash;
+static wmem_stack_t *key_list_stack;
+static uat_t *dtlsdecrypt_uat;
+static const gchar *dtls_keys_list;
#endif
static reassembly_table dtls_reassembly_table;
-static dissector_table_t dtls_associations = NULL;
-static dissector_handle_t dtls_handle = NULL;
-static StringInfo dtls_compressed_data = {NULL, 0};
-static StringInfo dtls_decrypted_data = {NULL, 0};
-static gint dtls_decrypted_data_avail = 0;
+static dissector_table_t dtls_associations;
+static dissector_handle_t dtls_handle;
+static StringInfo dtls_compressed_data;
+static StringInfo dtls_decrypted_data;
+static gint dtls_decrypted_data_avail;
-static ssl_common_options_t dtls_options = { NULL, NULL};
-static const gchar *dtls_debug_file_name = NULL;
+static ssl_common_options_t dtls_options;
+static const gchar *dtls_debug_file_name;
static guint32 dtls_default_client_cid_length;
static guint32 dtls_default_server_cid_length;
@@ -338,12 +368,17 @@ dtls_parse_old_keys(void)
*
*/
-/* record layer dissector */
+/* record layer dissectors */
static gint dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, guint32 offset,
SslSession *session, gint is_from_server,
SslDecryptSession *conv_data,
guint8 curr_layer_num_ssl);
+static gint dissect_dtls13_record(tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree, guint32 offset,
+ SslSession *session, gint is_from_server,
+ SslDecryptSession *conv_data,
+ guint8 curr_layer_num_ssl);
/* alert message dissector */
static void dissect_dtls_alert(tvbuff_t *tvb, packet_info *pinfo,
@@ -363,6 +398,9 @@ static void dissect_dtls_heartbeat(tvbuff_t *tvb, packet_info *pinfo,
const SslSession *session, guint32 record_length,
gboolean decrypted);
+/* acknowledgement message dissector */
+static void dissect_dtls_ack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint32 record_length);
+
static int dissect_dtls_hnd_hello_verify_request(ssl_common_dissect_t *hf, tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree,
guint32 offset, guint32 offset_end);
@@ -440,7 +478,12 @@ dissect_dtls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
if (session->last_nontls_frame != 0 &&
session->last_nontls_frame >= pinfo->num) {
/* This conversation started at a different protocol and STARTTLS was
- * used, but this packet comes too early. */
+ * used, but this packet comes too early.
+ * XXX - Does anything use STARTTLS with DTLS? Would we get here anyway,
+ * since we don't call conversation_set_dissector[_from_frame_number] for
+ * DTLS? Regardless, dissect_dtls_heur should check for this 0 and return
+ * FALSE.
+ */
return 0;
}
@@ -468,40 +511,28 @@ dissect_dtls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
{
/* first try to dispatch off the cached version
* known to be associated with the conversation
+ *
+ * In fact, all versions of DTLS have the same dissector. Note as
+ * we don't set DTLS as the conversation dissector, either
+ * looks_like_dtls() passed in dissect_dtls_heur(), or this has
+ * been set to DTLS explicitly via the port or some other method,
+ * so we already think this is DTLS. We don't expect Continuation
+ * Data over UDP datagrams (unlike TCP segments), but we'll check
+ * the content type in dissect_dtls_record and mark as Continuation
+ * Data if an unknown type, so the only thing calling looks_like_dtls()
+ * here would do is additionally verify the legacy_record_version -
+ * which MUST be ignored for all purposes per RFC 9147.
*/
switch(session->version) {
case DTLSV1DOT0_VERSION:
case DTLSV1DOT0_OPENSSL_VERSION:
case DTLSV1DOT2_VERSION:
+ case DTLSV1DOT3_VERSION:
+ default:
offset = dissect_dtls_record(tvb, pinfo, dtls_tree,
offset, session, is_from_server,
ssl_session, curr_layer_num_ssl);
break;
-
- /* that failed, so apply some heuristics based
- * on this individual packet
- */
- default:
- if (looks_like_dtls(tvb, offset))
- {
- /* looks like dtls */
- offset = dissect_dtls_record(tvb, pinfo, dtls_tree,
- offset, session, is_from_server,
- ssl_session, curr_layer_num_ssl);
- }
- else
- {
- /* looks like something unknown, so lump into
- * continuation data
- */
- offset = tvb_reported_length(tvb);
- col_append_sep_str(pinfo->cinfo, COL_INFO,
- NULL, "Continuation Data");
-
- /* Set the protocol column */
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "DTLS");
- }
- break;
}
}
@@ -539,6 +570,9 @@ dissect_dtls_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
* captured payload length against the remainder of the UDP packet size. */
guint length = tvb_captured_length(tvb);
guint offset = 0;
+ unsigned record_length = 0;
+ SslDecryptSession *ssl_session = NULL;
+ SslSession *session = NULL;
if (tvb_reported_length(tvb) == length) {
/* The entire payload was captured. */
@@ -546,14 +580,54 @@ dissect_dtls_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
/* Advance offset to the end of the current DTLS record */
guint8 record_type = tvb_get_guint8(tvb, offset);
- if (record_type == SSL_ID_TLS12_CID) {
- /* CID length is not embedded in the packet */
- SslDecryptSession *ssl_session = ssl_get_session_by_cid(tvb, offset + 11);
- SslSession *session = ssl_session ? &ssl_session->session : NULL;
- gint is_from_server = ssl_packet_from_server(session, dtls_associations, pinfo);
- offset += dtls_cid_length(session, is_from_server);
+ if ((record_type & DTLS13_FIXED_MASK) >> 5 == 1) {
+ offset += 1;
+ /* With the DTLS 1.3 Unified Header, the legacy_record_version
+ * field is encrypted, so our heuristics are weaker. Only accept
+ * the frame if we already have seen DTLS (with the correct CID,
+ * if the CID is included) on the connection.
+ * N.B. - We don't call conversation_set_dissector_from_frame_number
+ * like in packet-tls.c because DTLS is commonly multiplexed with
+ * SRTP/SRTCP/STUN/TURN/ZRTP per RFC 7983. (And now QUIC, RFC 9443.)
+ */
+ if (record_type & DTLS13_C_BIT_MASK) {
+ /* CID length is not embedded in the packet */
+ ssl_session = ssl_get_session_by_cid(tvb, offset);
+ session = ssl_session ? &ssl_session->session : NULL;
+ gint is_from_server = ssl_packet_from_server(session, dtls_associations, pinfo);
+ offset += dtls_cid_length(session, is_from_server);
+ } else {
+ /* No CID, just look for a session on this conversation. Don't
+ * call ssl_get_session here, as we don't want to allocate a new
+ * session. */
+ conversation_t *conversation = find_or_create_conversation(pinfo);
+ ssl_session = conversation_get_proto_data(conversation, proto_dtls);
+ session = ssl_session ? &ssl_session->session : NULL;
+ }
+ if (session == NULL) {
+ return FALSE;
+ }
+ offset += (record_type & DTLS13_S_BIT_MASK) ? 2 : 1;
+ if (record_type & DTLS13_L_BIT_MASK) {
+ record_length = tvb_get_ntohs(tvb, offset);
+ offset += 2;
+ } else {
+ /* Length not present, so the heuristic is weaker. */
+ record_length = tvb_reported_length_remaining(tvb, offset);
+ }
+ } else {
+ offset += 11;
+ if (record_type == SSL_ID_TLS12_CID) {
+ /* CID length is not embedded in the packet */
+ ssl_session = ssl_get_session_by_cid(tvb, offset);
+ session = ssl_session ? &ssl_session->session : NULL;
+ gint is_from_server = ssl_packet_from_server(session, dtls_associations, pinfo);
+ offset += dtls_cid_length(session, is_from_server);
+ }
+ record_length = tvb_get_ntohs(tvb, offset);
+ offset += 2;
}
- offset += tvb_get_ntohs(tvb, offset + 11) + 13;
+ offset += record_length;
if (offset == length) {
dissect_dtls(tvb, pinfo, tree, data);
return TRUE;
@@ -630,7 +704,7 @@ dtls_is_null_cipher(guint cipher )
}
static void
-dtls_save_decrypted_record(packet_info *pinfo, gint record_id, guint8 content_type, guint8 curr_layer_num_ssl)
+dtls_save_decrypted_record(packet_info *pinfo, gint record_id, guint8 content_type, guint8 curr_layer_num_ssl, gboolean inner_content_type)
{
const guchar *data = dtls_decrypted_data.data;
guint datalen = dtls_decrypted_data_avail;
@@ -639,7 +713,7 @@ dtls_save_decrypted_record(packet_info *pinfo, gint record_id, guint8 content_ty
return;
}
- if (content_type == SSL_ID_TLS12_CID) {
+ if (content_type == SSL_ID_TLS12_CID || inner_content_type) {
/*
* The actual data is followed by the content type and then zero or
* more padding. Scan backwards for content type, skipping padding.
@@ -671,7 +745,7 @@ decrypt_dtls_record(tvbuff_t *tvb, packet_info *pinfo, guint32 offset, SslDecryp
/* if we can decrypt and decryption have success
* add decrypted data to this packet info */
- if (!ssl || !(ssl->state & SSL_HAVE_SESSION_KEY)) {
+ if (!ssl || ((ssl->session.version != DTLSV1DOT3_VERSION) && !(ssl->state & SSL_HAVE_SESSION_KEY))) {
ssl_debug_printf("decrypt_dtls_record: no session key\n");
return FALSE;
}
@@ -707,7 +781,7 @@ decrypt_dtls_record(tvbuff_t *tvb, packet_info *pinfo, guint32 offset, SslDecryp
/* run decryption and add decrypted payload to protocol data, if decryption
* is successful*/
dtls_decrypted_data_avail = dtls_decrypted_data.data_len;
- if (ssl->state & SSL_HAVE_SESSION_KEY) {
+ if (ssl->state & SSL_HAVE_SESSION_KEY || ssl->session.version == DTLSV1DOT3_VERSION) {
if (!decoder) {
ssl_debug_printf("decrypt_dtls_record: no decoder available\n");
return FALSE;
@@ -726,7 +800,7 @@ decrypt_dtls_record(tvbuff_t *tvb, packet_info *pinfo, guint32 offset, SslDecryp
}
if (success) {
- dtls_save_decrypted_record(pinfo, tvb_raw_offset(tvb)+offset, content_type, curr_layer_num_ssl);
+ dtls_save_decrypted_record(pinfo, tvb_raw_offset(tvb)+offset, content_type, curr_layer_num_ssl, ssl->session.version == DTLSV1DOT3_VERSION);
}
return success;
}
@@ -749,6 +823,87 @@ export_pdu_packet(tvbuff_t *tvb, packet_info *pinfo, guint8 tag, const gchar *na
* DTLS Dissection Routines
*
*********************************************************************/
+
+static void
+dissect_dtls_appdata(tvbuff_t *tvb, packet_info *pinfo, guint32 offset,
+ guint32 record_length, SslSession *session,
+ proto_tree *dtls_record_tree, gboolean is_from_server,
+ tvbuff_t *decrypted, SslRecordInfo *record)
+{
+ heur_dtbl_entry_t *hdtbl_entry;
+ proto_item *ti;
+ /* show on info column what we are decoding */
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Application Data");
+
+ /* app_handle discovery is done here instead of dissect_dtls_payload()
+ * because the protocol name needs to be displayed below. */
+ if (!session->app_handle) {
+ /* Unknown protocol handle, ssl_starttls_ack was not called before.
+ * Try to find an appropriate dissection handle and cache it. */
+ dissector_handle_t handle;
+ handle = dissector_get_uint_handle(dtls_associations, pinfo->srcport);
+ handle = handle ? handle : dissector_get_uint_handle(dtls_associations, pinfo->destport);
+ if (handle) session->app_handle = handle;
+ }
+
+ proto_item_set_text(dtls_record_tree,
+ "%s Record Layer: %s Protocol: %s",
+ val_to_str_const(session->version, ssl_version_short_names, "DTLS"),
+ val_to_str_const(SSL_ID_APP_DATA, ssl_31_content_type, "unknown"),
+ session->app_handle
+ ? dissector_handle_get_protocol_long_name(session->app_handle)
+ : "Application Data");
+
+ proto_tree_add_item(dtls_record_tree, hf_dtls_record_appdata, tvb,
+ offset, record_length, ENC_NA);
+
+ if (session->app_handle) {
+ ti = proto_tree_add_string(dtls_record_tree, hf_dtls_record_appdata_proto, tvb, 0, 0, dissector_handle_get_protocol_long_name(session->app_handle));
+ proto_item_set_generated(ti);
+ }
+
+ /* show decrypted data info, if available */
+ if (decrypted) {
+ gboolean dissected;
+ guint16 saved_match_port;
+ /* try to dissect decrypted data*/
+ ssl_debug_printf("%s decrypted len %d\n", G_STRFUNC, record->data_len);
+
+ saved_match_port = pinfo->match_uint;
+ if (is_from_server) {
+ pinfo->match_uint = pinfo->srcport;
+ } else {
+ pinfo->match_uint = pinfo->destport;
+ }
+
+ /* find out a dissector using server port*/
+ if (session->app_handle) {
+ ssl_debug_printf("%s: found handle %p (%s)\n", G_STRFUNC,
+ (void *)session->app_handle,
+ dissector_handle_get_dissector_name(session->app_handle));
+ ssl_print_data("decrypted app data", record->plain_data, record->data_len);
+
+ if (have_tap_listener(exported_pdu_tap)) {
+ export_pdu_packet(decrypted, pinfo, EXP_PDU_TAG_DISSECTOR_NAME,
+ dissector_handle_get_dissector_name(session->app_handle));
+ }
+
+ dissected = call_dissector_only(session->app_handle, decrypted, pinfo, top_tree, NULL);
+ }
+ else {
+ /* try heuristic subdissectors */
+ dissected = dissector_try_heuristic(heur_subdissector_list, decrypted, pinfo, top_tree, &hdtbl_entry, NULL);
+ if (dissected && have_tap_listener(exported_pdu_tap)) {
+ export_pdu_packet(decrypted, pinfo, EXP_PDU_TAG_HEUR_DISSECTOR_NAME, hdtbl_entry->short_name);
+ }
+ }
+ pinfo->match_uint = saved_match_port;
+ /* fallback to data dissector */
+ if (!dissected)
+ call_data_dissector(decrypted, pinfo, top_tree);
+ }
+}
+/* Dissect a DTLS record from version 1.2 and below */
static gint
dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, guint32 offset,
@@ -805,7 +960,6 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
proto_item *length_pi, *ct_pi;
tvbuff_t *decrypted;
SslRecordInfo *record = NULL;
- heur_dtbl_entry_t *hdtbl_entry;
guint8 *cid = NULL;
guint8 cid_length;
@@ -816,6 +970,11 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
* Get the record layer fields of interest
*/
content_type = tvb_get_guint8(tvb, offset);
+ if ((content_type & DTLS13_FIXED_MASK) >> 5 == 1) {
+ /* RFC 9147 s4.1: this is a DTLS 1.3 Unified Header record */
+ return dissect_dtls13_record(tvb, pinfo, tree, offset, session,
+ is_from_server, ssl, curr_layer_num_ssl);
+ }
version = tvb_get_ntohs(tvb, offset + 1);
epoch = tvb_get_ntohs(tvb, offset + 3);
sequence_number = tvb_get_ntoh48(tvb, offset + 5);
@@ -844,8 +1003,6 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
val_to_str_const(session->version, ssl_version_short_names, "DTLS"),
content_type);
- /* Set the protocol column */
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "DTLS");
return offset + dtls_record_length;
}
@@ -910,12 +1067,30 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
/*
* if we don't already have a version set for this conversation,
* but this message's version is authoritative (i.e., it's
- * not client_hello, then save the version to the conversation
- * structure and print the column version
+ * not client_hello), then save the version to the conversation
+ * structure and print the column version.
*/
next_byte = tvb_get_guint8(tvb, offset);
- if (session->version == SSL_VER_UNKNOWN)
+ if (session->version == SSL_VER_UNKNOWN) {
+ if (version == DTLSV1DOT2_VERSION && content_type == SSL_ID_HANDSHAKE) {
+ /*
+ * if the version in the header is DTLS 1.2, this may actually be
+ * a DTLS 1.3 handshake; this must be determined from any
+ * supported_versions extension in the hello messages. We'll check
+ * this later in dissect_dtls_handshake, but try to get the column
+ * correct here on the first pass if we can.
+ */
+ if (next_byte == SSL_HND_SERVER_HELLO && record_length > 12 && tvb_bytes_exist(tvb, offset, 12)) {
+ uint32_t fragment_offset = tvb_get_ntoh24(tvb, offset + 6);
+ uint32_t fragment_length = tvb_get_ntoh24(tvb, offset + 9);
+ if (fragment_offset == 0 && tvb_bytes_exist(tvb, offset + 12, fragment_length)) {
+ /* Only look at the first fragment. */
+ tls_scan_server_hello(tvb, offset + 12, offset + 12 + fragment_length, &version, NULL);
+ }
+ }
+ }
ssl_try_set_version(session, ssl, content_type, next_byte, TRUE, version);
+ }
col_set_str(pinfo->cinfo, COL_PROTOCOL,
val_to_str_const(session->version, ssl_version_short_names, "DTLS"));
@@ -925,8 +1100,9 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
ssl_debug_printf("dissect_dtls_record: content_type %d epoch %d seq %"PRIu64"\n", content_type, epoch, sequence_number);
/* try to decrypt record on the first pass, if possible. Store decrypted
- * record for later usage (without having to decrypt again). */
- if (ssl) {
+ * record for later usage (without having to decrypt again).
+ * DTLSv1.3 records are decrypted from dissect_dtls13_record */
+ if (ssl && (ssl->session.version != DTLSV1DOT3_VERSION)) {
decrypt_dtls_record(tvb, pinfo, offset, ssl, content_type, version, record_length, curr_layer_num_ssl, cid, cid_length);
}
decrypted = ssl_get_record_info(tvb, proto_dtls, pinfo, tvb_raw_offset(tvb)+offset, curr_layer_num_ssl, &record);
@@ -1000,77 +1176,8 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
break;
}
case SSL_ID_APP_DATA:
- /* show on info column what we are decoding */
- col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Application Data");
-
- /* app_handle discovery is done here instead of dissect_dtls_payload()
- * because the protocol name needs to be displayed below. */
- if (!session->app_handle) {
- /* Unknown protocol handle, ssl_starttls_ack was not called before.
- * Try to find an appropriate dissection handle and cache it. */
- dissector_handle_t handle;
- handle = dissector_get_uint_handle(dtls_associations, pinfo->srcport);
- handle = handle ? handle : dissector_get_uint_handle(dtls_associations, pinfo->destport);
- if (handle) session->app_handle = handle;
- }
-
- proto_item_set_text(dtls_record_tree,
- "%s Record Layer: %s Protocol: %s",
- val_to_str_const(session->version, ssl_version_short_names, "DTLS"),
- val_to_str_const(content_type, ssl_31_content_type, "unknown"),
- session->app_handle
- ? dissector_handle_get_protocol_long_name(session->app_handle)
- : "Application Data");
-
- proto_tree_add_item(dtls_record_tree, hf_dtls_record_appdata, tvb,
- offset, record_length, ENC_NA);
-
- if (session->app_handle) {
- ti = proto_tree_add_string(dtls_record_tree, hf_dtls_record_appdata_proto, tvb, 0, 0, dissector_handle_get_protocol_long_name(session->app_handle));
- proto_item_set_generated(ti);
- }
-
- /* show decrypted data info, if available */
- if (decrypted)
- {
- gboolean dissected;
- guint16 saved_match_port;
- /* try to dissect decrypted data*/
- ssl_debug_printf("%s decrypted len %d\n", G_STRFUNC, record->data_len);
-
- saved_match_port = pinfo->match_uint;
- if (is_from_server) {
- pinfo->match_uint = pinfo->srcport;
- } else {
- pinfo->match_uint = pinfo->destport;
- }
-
- /* find out a dissector using server port*/
- if (session->app_handle) {
- ssl_debug_printf("%s: found handle %p (%s)\n", G_STRFUNC,
- (void *)session->app_handle,
- dissector_handle_get_dissector_name(session->app_handle));
- ssl_print_data("decrypted app data", record->plain_data, record->data_len);
-
- if (have_tap_listener(exported_pdu_tap)) {
- export_pdu_packet(decrypted, pinfo, EXP_PDU_TAG_DISSECTOR_NAME,
- dissector_handle_get_dissector_name(session->app_handle));
- }
-
- dissected = call_dissector_only(session->app_handle, decrypted, pinfo, top_tree, NULL);
- }
- else {
- /* try heuristic subdissectors */
- dissected = dissector_try_heuristic(heur_subdissector_list, decrypted, pinfo, top_tree, &hdtbl_entry, NULL);
- if (dissected && have_tap_listener(exported_pdu_tap)) {
- export_pdu_packet(decrypted, pinfo, EXP_PDU_TAG_HEUR_DISSECTOR_NAME, hdtbl_entry->short_name);
- }
- }
- pinfo->match_uint = saved_match_port;
- /* fallback to data dissector */
- if (!dissected)
- call_data_dissector(decrypted, pinfo, top_tree);
- }
+ dissect_dtls_appdata(tvb, pinfo, offset, record_length, session,
+ dtls_record_tree, is_from_server, decrypted, record);
break;
case SSL_ID_HEARTBEAT:
/* try to retrieve and use decrypted alert record, if any. */
@@ -1086,12 +1193,594 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
expert_add_info_format(pinfo, ct_pi, &ei_dtls_cid_invalid_content_type,
"Invalid content type (%d)", content_type);
break;
+ case SSL_ID_DTLS13_ACK:
+ if (decrypted) {
+ dissect_dtls_ack(decrypted, pinfo, dtls_record_tree, 0, tvb_reported_length(decrypted));
+ } else {
+ dissect_dtls_ack(tvb, pinfo, dtls_record_tree, offset, record_length);
+ }
}
offset += record_length; /* skip to end of record */
return offset;
}
+
+/* setup cryptographic keys based on dtls13_current_epoch */
+static gint
+dtls13_load_keys_from_epoch(SslDecryptSession *session, gboolean is_from_server, uint64_t epoch)
+{
+ ssl_master_key_map_t *master_key_map = NULL;
+ TLSRecordType secret_type;
+ SslDecoder *dec;
+
+ if (!session) {
+ ssl_debug_printf("dtls13_load_keys_from_epoch: no session\n");
+ return -1;
+ }
+
+ dec = NULL;
+ if (is_from_server)
+ dec = session->server;
+ else
+ dec = session->client;
+
+ if (dec && dec->dtls13_epoch == epoch)
+ return 0;
+
+ /* The DTLS dissector does not support decrypting packets from epoch < N once
+ * it decrypted a packet from epoch N. In order to do that, the dissector
+ * needs to maintain the expected next sequence number per epoch. The added
+ * complexity makes it not worthwhile. */
+ if (dec && dec->dtls13_epoch > epoch) {
+ ssl_debug_printf("%s: refuse to load past epoch %" PRIu64"\n", G_STRFUNC, epoch);
+ return 0;
+ }
+
+ /* double check that we increment the epoch by one after hs */
+ if (dec && dec->dtls13_epoch != 0 && epoch != dec->dtls13_epoch + 1)
+ return 0;
+
+ master_key_map = tls_get_master_key_map(TRUE);
+ if (master_key_map == NULL) {
+ ssl_debug_printf("dtls13_load_keys_from_epoch: no master key map\n");
+ return -1;
+ }
+
+ switch (epoch)
+ {
+ case 1:
+ secret_type = TLS_SECRET_0RTT_APP;
+ tls13_change_key(session, master_key_map, is_from_server, secret_type);
+ break;
+ case 2:
+ secret_type = TLS_SECRET_HANDSHAKE;
+ tls13_change_key(session, master_key_map, is_from_server, secret_type);
+ break;
+ case 3:
+ secret_type = TLS_SECRET_APP;
+ tls13_change_key(session, master_key_map, is_from_server, secret_type);
+ break;
+ default:
+ tls13_key_update(session, is_from_server);
+ break;
+ }
+
+ if (is_from_server && session->server) {
+ session->server->dtls13_epoch = epoch;
+ } else if (session->client) {
+ session->client->dtls13_epoch = epoch;
+ }
+
+ return 0;
+}
+
+
+/**
+ * Reconstructs sequence numbers in DTLS 1.3.
+ *
+ * This function takes the expected sequence number, the low bits of the sequence number,
+ * and a mask as input. It finds the closest number to the expected sequence number that
+ * has the lower bits equal to @seq_low_bits.
+ * @param expected_seq_number The expected sequence number.
+ * @param seq_low_bits The low bits of the sequence number (encrypted).
+ * @param len The length of @enc_seq_low_bits.
+ * @param dec_mask The decryption mask for @enc_seq_low_bits.
+ * @return The reconstructed dequeued sequence number.
+ */
+static guint64 dtls13_reconstruct_seq_number(guint64 expected_seq_number, guint16 seq_low_bits,
+ int len, uint8_t *dec_mask)
+{
+ guint16 expected_low_bits;
+ guint64 c1, c2, d1, d2;
+ guint16 mask;
+
+ /* we just need 1 or 2 bytes of the xor mask */
+ if (len == 1) {
+ dec_mask[1] = 0;
+ }
+ seq_low_bits ^= (dec_mask[0] << 8 | dec_mask[1]);
+
+ mask = (len == 2) ? 0xffff : 0xff;
+ expected_low_bits = expected_seq_number & mask;
+ c1 = (expected_seq_number & ~(mask)) | seq_low_bits;
+
+ if (expected_low_bits == seq_low_bits) {
+ return c1;
+ }
+ if (expected_low_bits < seq_low_bits) {
+ d1 = c1 - expected_seq_number;
+ c2 = c1 - (mask + 1);
+ d2 = expected_seq_number - c2;
+ } else {
+ d1 = expected_seq_number - c1;
+ c2 = c1 + (mask + 1);
+ d2 = c2 - expected_seq_number;
+ }
+
+ if (d1 < d2)
+ return c1;
+ return c2;
+}
+
+#define DTLS13_RECORD_NUMBER_MASK_SZ 16
+static int dtls13_get_record_number_xor_mask(SslDecoder *dec, const uint8_t *ciphertext, uint8_t *mask)
+{
+ if (!dec->cipher_suite)
+ return -1;
+
+ if (dec->cipher_suite->enc == ENC_NULL) {
+ memset(mask, 0, DTLS13_RECORD_NUMBER_MASK_SZ);
+ return 0;
+ }
+
+ if (dec->cipher_suite->enc == ENC_AES || dec->cipher_suite->enc == ENC_AES256) {
+ if (gcry_cipher_encrypt(dec->sn_evp, mask, DTLS13_RECORD_NUMBER_MASK_SZ,
+ ciphertext, DTLS13_RECORD_NUMBER_MASK_SZ) != 0) {
+ ssl_debug_printf("dtls1.3: record mask generation failed\n");
+ return -1;
+ }
+ return 0;
+ }
+
+ if (dec->cipher_suite->enc == ENC_CHACHA20) {
+ if (gcry_cipher_setiv(dec->sn_evp, ciphertext, DTLS13_RECORD_NUMBER_MASK_SZ) != 0) {
+ ssl_debug_printf("dtls1.3: record mask generation failed: can't set iv\n");
+ return -1;
+ }
+ memset(mask, 0, DTLS13_RECORD_NUMBER_MASK_SZ);
+ if (gcry_cipher_encrypt(dec->sn_evp, mask, DTLS13_RECORD_NUMBER_MASK_SZ, mask, DTLS13_RECORD_NUMBER_MASK_SZ) != 0) {
+ ssl_debug_printf("dtls1.3: record mask generation failed\n");
+ return -1;
+ }
+ return 0;
+ }
+
+ ssl_debug_printf("dtls1.3: unsupported cipher\n");
+ return -1;
+}
+
+static gboolean dtls13_create_aad(tvbuff_t *tvb, SslDecryptSession *ssl, gboolean is_from_server, guint8 hdr_flags, guint32 hdr_off, guint32 hdr_size,
+ guint64 sequence_number, guint16 dtls_record_length)
+{
+ unsigned int cid_length = 0;
+ SslDecoder *dec = NULL;
+ int seq_length;
+
+ if (is_from_server && ssl->server) {
+ dec = ssl->server;
+ } else if (ssl->client) {
+ dec = ssl->client;
+ }
+ if (!dec)
+ return FALSE;
+
+ dec->seq = sequence_number;
+ dec->dtls13_aad.data = wmem_realloc(wmem_file_scope(), dec->dtls13_aad.data, hdr_size);
+ dec->dtls13_aad.data_len = hdr_size;
+ dec->dtls13_aad.data[0] = hdr_flags;
+ cid_length = 0;
+
+ seq_length = 1;
+ if (hdr_flags & DTLS13_S_BIT_MASK)
+ seq_length = 2;
+ if (hdr_flags & DTLS13_C_BIT_MASK) {
+ /* total - 1 byte for hdr flag, 1 or 2 byte for seq suffix, 0 or 2 bytes for len */
+ cid_length = hdr_size - 1 - seq_length;
+ if (hdr_flags & DTLS13_L_BIT_MASK)
+ cid_length -= 2;
+ DISSECTOR_ASSERT(cid_length < hdr_size);
+ memcpy(&dec->dtls13_aad.data[1], tvb_get_ptr(tvb, hdr_off + 1, cid_length), cid_length);
+ }
+
+ if (seq_length == 2) {
+ phton16(&dec->dtls13_aad.data[1 + cid_length], sequence_number);
+ } else {
+ dec->dtls13_aad.data[1 + cid_length] = sequence_number;
+ }
+ if (hdr_flags & DTLS13_L_BIT_MASK) {
+ phton16(&dec->dtls13_aad.data[1 + cid_length + seq_length], dtls_record_length);
+ }
+
+ return TRUE;
+}
+
+static gboolean dtls13_decrypt_unified_record(tvbuff_t *tvb, packet_info *pinfo, guint32 hdr_off, uint32_t hdr_size,
+ uint8_t hdr_flags, gboolean is_from_server,
+ SslDecryptSession *ssl, guint32 dtls_record_length, guint8 curr_layer_num_ssl,
+ uint16_t seq_suffix, uint8_t seq_length)
+{
+ uint8_t mask[DTLS13_RECORD_NUMBER_MASK_SZ];
+ uint64_t sequence_number;
+ SslDecoder *dec = NULL;
+ gboolean success;
+
+ if (is_from_server && ssl->server) {
+ dec = ssl->server;
+ } else if (ssl->client) {
+ dec = ssl->client;
+ }
+
+ if (dec == NULL) {
+ ssl_debug_printf("dissect_dtls13_record: no decoder available\n");
+ return FALSE;
+ }
+
+ if (dtls13_get_record_number_xor_mask(dec, tvb_get_ptr(tvb, hdr_off + hdr_size, DTLS13_RECORD_NUMBER_MASK_SZ), mask) != 0) {
+ ssl_debug_printf("dissect_dtls13_record: can't get record number mask\n");
+ return FALSE;
+ }
+
+ sequence_number = dtls13_reconstruct_seq_number(ssl->session.dtls13_next_seq_num[is_from_server], seq_suffix, seq_length, mask);
+
+ /* setup parameter for decryption of this packet */
+ if (!dtls13_create_aad(tvb, ssl, is_from_server, hdr_flags, hdr_off, hdr_size, sequence_number, dtls_record_length)) {
+ ssl_debug_printf("%s: can't create AAD\n", G_STRFUNC);
+ return FALSE;
+ }
+
+ /* CID is already included in dtls13_add, there is no need to add it here */
+ success = decrypt_dtls_record(tvb, pinfo, hdr_off + hdr_size, ssl, 0, ssl->session.version, dtls_record_length, curr_layer_num_ssl, NULL, 0);
+ if (sequence_number >= ssl->session.dtls13_next_seq_num[is_from_server]) {
+ ssl->session.dtls13_next_seq_num[is_from_server] = sequence_number + 1;
+ }
+
+ return success;
+}
+
+/**
+ * Try to guess the early data cipher using trial decryption. based on decrypt_tls13_early_data.
+ * Requires Libgcrypt 1.6 or newer for verifying that decryption is successful.
+ */
+static gboolean
+dtls13_decrypt_early_data(tvbuff_t *tvb, packet_info *pinfo, guint32 hdr_off, guint32 hdr_size, guint8 hdr_flags,
+ guint16 record_length, SslDecryptSession *ssl,
+ guint8 curr_layer_num_ssl, guint16 seq_suffix, guint8 seq_length)
+{
+ StringInfo *secret;
+
+ static const guint16 tls13_ciphers[] = {
+ 0x1301, /* TLS_AES_128_GCM_SHA256 */
+ 0x1302, /* TLS_AES_256_GCM_SHA384 */
+ 0x1303, /* TLS_CHACHA20_POLY1305_SHA256 */
+ 0x1304, /* TLS_AES_128_CCM_SHA256 */
+ 0x1305, /* TLS_AES_128_CCM_8_SHA256 */
+ };
+
+ gboolean success = FALSE;
+
+ ssl_debug_printf("Trying early data encryption, first record / trial decryption: %s\n",
+ !(ssl->state & SSL_SEEN_0RTT_APPDATA) ? "true" : "false");
+
+
+ secret = tls13_load_secret(ssl, tls_get_master_key_map(TRUE), FALSE, TLS_SECRET_0RTT_APP);
+ if (!secret) {
+ ssl_debug_printf("Missing secrets, early data decryption not possible!\n");
+ return FALSE;
+ }
+
+ for (guint i = 0; i < G_N_ELEMENTS(tls13_ciphers); i++) {
+ guint16 cipher = tls13_ciphers[i];
+
+ ssl_debug_printf("Performing early data trial decryption, cipher = %#x\n", cipher);
+ ssl->session.cipher = cipher;
+ ssl->cipher_suite = ssl_find_cipher(cipher);
+ if (!tls13_generate_keys(ssl, secret, FALSE)) {
+ /* Unable to create cipher (old Libgcrypt) */
+ continue;
+ }
+
+ success = dtls13_decrypt_unified_record(tvb, pinfo, hdr_off, hdr_size, hdr_flags, FALSE, ssl, record_length, curr_layer_num_ssl, seq_suffix, seq_length);
+ if (success) {
+ /* update epoch number to decrypt other 0RTT packets */
+ ssl->client->dtls13_epoch = 1;
+ ssl_debug_printf("Early data decryption succeeded, cipher = %#x\n", cipher);
+ break;
+ }
+ }
+ if (!success) {
+ ssl_debug_printf("Trial decryption of early data failed!\n");
+ }
+ return success;
+}
+
+static gboolean dtls13_setup_keys(uint8_t hdr_flags, gboolean is_from_server, SslDecryptSession *ssl, guint32 dtls_record_length,
+ gboolean *first_early_data)
+{
+ uint64_t epoch, curr_max_epoch;
+
+ epoch = (hdr_flags & DTLS13_HDR_EPOCH_BIT_MASK);
+
+ if (first_early_data != NULL)
+ *first_early_data = FALSE;
+
+ /* DTLSv1.3 minimum payload is 16 bytes */
+ if (dtls_record_length < 16) {
+ ssl_debug_printf("dtls13: record too short\n");
+ return FALSE;
+ }
+
+ /* determine the epoch */
+ curr_max_epoch = ssl->session.dtls13_current_epoch[is_from_server];
+
+ if ((curr_max_epoch & 0x3) != epoch) {
+ /* No KeyUpdate seen, we are still in the handshake (epoch 1 or 2) or using traffic_secret_0 (epoch 3) */
+ if (curr_max_epoch < 4) {
+ if (epoch > curr_max_epoch) {
+ ssl->session.dtls13_current_epoch[is_from_server] = epoch;
+ }
+ } else {
+
+ /* try to decrypt with the last epoch with the same low bits */
+ epoch = (curr_max_epoch & ~(0x3)) | epoch;
+ if (epoch > curr_max_epoch)
+ epoch -= 4;
+ }
+ } else {
+ epoch = curr_max_epoch;
+ }
+
+ if (epoch == 0) {
+ ssl_debug_printf("dtls13: unified header with epoch 0 (plaintext)\n");
+ return FALSE;
+ }
+
+ /* early data */
+ if (epoch == 1) {
+ if (ssl->session.dtls13_current_epoch[is_from_server] > 1) {
+ ssl_debug_printf("%s: early data received after encrypted HS, abort decryption\n", G_STRFUNC);
+ return FALSE;
+ }
+ if (!ssl->has_early_data) {
+ ssl_debug_printf("%s: early data received but not advertised in CH extensions, abort decryption\n", G_STRFUNC);
+ return FALSE;
+ }
+ /* first early data packet, need to go into trial decryption */
+ if (!(ssl->client && (ssl->client->dtls13_epoch == 1))) {
+ if (first_early_data != NULL)
+ *first_early_data = TRUE;
+ return TRUE;
+ }
+ }
+
+ if (dtls13_load_keys_from_epoch(ssl, is_from_server, epoch) < 0) {
+ ssl_debug_printf("dtls13: can't load keys\n");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/* Dissect a DTLS record from version 1.3 */
+static gint
+dissect_dtls13_record(tvbuff_t *tvb, packet_info *pinfo _U_,
+ proto_tree *tree, guint32 offset,
+ SslSession *session, gint is_from_server,
+ SslDecryptSession* ssl,
+ guint8 curr_layer_num_ssl _U_)
+{
+ /*
+ * struct {
+ * ContentType type;
+ * ProtocolVersion legacy_record_version;
+ * uint16 epoch = 0
+ * uint48 sequence_number;
+ * uint16 length;
+ * opaque fragment[DTLSPlaintext.length];
+ * } DTLSPlaintext;
+ *
+ * struct {
+ * opaque content[DTLSPlaintext.length];
+ * ContentType type;
+ * uint8 zeros[length_of_padding];
+ * } DTLSInnerPlaintext;
+ *
+ * struct {
+ * opaque unified_hdr[variable];
+ * opaque encrypted_record[length];
+ * } DTLSCiphertext;
+ *
+ * unified_hdr:
+ * 0 1 2 3 4 5 6 7
+ * +-+-+-+-+-+-+-+-+
+ * |0|0|1|C|S|L|E E|
+ * +-+-+-+-+-+-+-+-+
+ * | Connection ID | Legend:
+ * | (if any, |
+ * / length as / C - Connection ID (CID) present
+ * | negotiated) | S - Sequence number length
+ * +-+-+-+-+-+-+-+-+ L - Length present
+ * | 8 or 16 bit | E - Epoch
+ * |Sequence Number|
+ * +-+-+-+-+-+-+-+-+
+ * | 16 bit Length |
+ * | (if present) |
+ * +-+-+-+-+-+-+-+-+
+ */
+
+ static int * const uni_hdr_flags[] = {
+ &hf_dtls_uni_hdr_fixed,
+ &hf_dtls_uni_hdr_cid,
+ &hf_dtls_uni_hdr_seq,
+ &hf_dtls_uni_hdr_len,
+ &hf_dtls_uni_hdr_epoch,
+ NULL
+ };
+
+ proto_tree *dtls_record_tree;
+ proto_item *ti;
+ proto_item *length_pi;
+ guint32 dtls_record_length = 0;
+
+ guint32 hdr_offset = offset;
+ guint32 hdr_start = offset;
+ guint8 hdr_flags;
+ gboolean c_bit; /* 1 = Connection ID field is present */
+ gboolean s_bit; /* 0 = 8-bit sequence number, 1 = 16-bit */
+ gboolean l_bit; /* 1 = Length field is present */
+
+ guint8 seq_length;
+ guint8 cid_length = 0;
+ guint16 seq_suffix;
+ tvbuff_t *decrypted = NULL;
+ SslRecordInfo *record = NULL;
+ gboolean success;
+ gboolean is_first_early_data;
+
+ hdr_flags = tvb_get_guint8(tvb, hdr_offset);
+ c_bit = (hdr_flags & DTLS13_C_BIT_MASK) == DTLS13_C_BIT_MASK;
+ s_bit = (hdr_flags & DTLS13_S_BIT_MASK) == DTLS13_S_BIT_MASK;
+ l_bit = (hdr_flags & DTLS13_L_BIT_MASK) == DTLS13_L_BIT_MASK;
+ hdr_offset += 1;
+
+ if (c_bit) {
+ /* Connection ID length to use if any */
+ cid_length = dtls_cid_length(session, is_from_server);
+ hdr_offset += cid_length;
+ }
+
+ if (s_bit) {
+ /* Lowest 16 bits of the sequence number */
+ seq_length = 2;
+ seq_suffix = tvb_get_ntohs(tvb, hdr_offset);
+ }
+ else {
+ /* Lowest 8 bits of the sequence number */
+ seq_length = 1;
+ seq_suffix = tvb_get_guint8(tvb, hdr_offset);
+ }
+ /* Note: seq_suffix is encrypted if the payload is encrypted,
+ * as per RFC 9147 section 4.2.3. To get the real sequence number,
+ * we need to decrypt, and *then* use the result to find the sequence
+ * number closest to one plus the last sequence number.
+ */
+ hdr_offset += seq_length;
+
+ if (l_bit) {
+ dtls_record_length = tvb_get_ntohs(tvb, hdr_offset);
+ hdr_offset += 2;
+ }
+ else {
+ dtls_record_length = tvb_captured_length_remaining(tvb, hdr_offset);
+ }
+
+ /*
+ * If GUI, fill in record layer part of tree
+ */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL,
+ val_to_str_const(session->version, ssl_version_short_names, "DTLS"));
+
+ ti = proto_tree_add_item(tree, hf_dtls_record, tvb, offset,
+ (hdr_offset - offset) + dtls_record_length, ENC_NA);
+ dtls_record_tree = proto_item_add_subtree(ti, ett_dtls_record);
+
+ proto_tree_add_bitmask_with_flags(dtls_record_tree, tvb, offset,
+ hf_dtls_uni_hdr, ett_dtls_uni_hdr, uni_hdr_flags,
+ ENC_BIG_ENDIAN, BMT_NO_INT);
+
+ offset += 1;
+
+ if (c_bit && cid_length > 0) {
+ proto_tree_add_item(dtls_record_tree, hf_dtls_record_connection_id, tvb, offset, cid_length, ENC_NA);
+ offset += cid_length;
+ }
+
+ proto_tree_add_uint(dtls_record_tree, hf_dtls_record_sequence_suffix, tvb, offset, seq_length, seq_suffix);
+ offset += seq_length;
+
+ if (l_bit) {
+ proto_tree_add_item(dtls_record_tree, hf_dtls_record_length, tvb,
+ offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ }
+ else {
+ length_pi = proto_tree_add_uint(dtls_record_tree, hf_dtls_record_length, tvb,
+ offset, 0, dtls_record_length);
+ proto_item_set_generated(length_pi);
+ }
+
+ if (ssl) {
+ success = dtls13_setup_keys(hdr_flags, is_from_server, ssl, dtls_record_length, &is_first_early_data);
+ if (success) {
+ if (!is_from_server && is_first_early_data) {
+ /* try to decrypt early data */
+ dtls13_decrypt_early_data(tvb, pinfo, hdr_start, hdr_offset - hdr_start, hdr_flags, dtls_record_length, ssl, curr_layer_num_ssl, seq_suffix, seq_length);
+ } else {
+ dtls13_decrypt_unified_record(tvb, pinfo, hdr_start, hdr_offset - hdr_start, hdr_flags, is_from_server, ssl, dtls_record_length, curr_layer_num_ssl, seq_suffix, seq_length);
+ }
+ }
+ }
+
+ decrypted = ssl_get_record_info(tvb, proto_dtls, pinfo, tvb_raw_offset(tvb)+offset, curr_layer_num_ssl, &record);
+ if (decrypted)
+ {
+ /* on first pass add seq suffix decrypted info */
+ if (ssl) {
+ if (is_from_server && ssl->server) {
+ record->dtls13_seq_suffix = ssl->server->seq;
+ } else if (ssl->client) {
+ record->dtls13_seq_suffix = ssl->client->seq;
+ }
+ }
+
+ ti = proto_tree_add_uint(dtls_record_tree, hf_dtls_record_sequence_suffix_dec, tvb, hdr_start + 1 + cid_length,
+ seq_length, record->dtls13_seq_suffix);
+ proto_item_set_generated(ti);
+ add_new_data_source(pinfo, decrypted, "Decrypted DTLS");
+ /* real content type*/
+ switch ((record->type))
+ {
+ case SSL_ID_HANDSHAKE:
+ dissect_dtls_handshake(decrypted, pinfo, dtls_record_tree, 0,
+ tvb_reported_length(decrypted), FALSE, session, is_from_server,
+ ssl, record->type);
+ break;
+ case SSL_ID_ALERT:
+ dissect_dtls_alert(decrypted, pinfo, dtls_record_tree, 0,
+ session);
+ break;
+ case SSL_ID_DTLS13_ACK:
+ dissect_dtls_ack(decrypted, pinfo, dtls_record_tree, 0, tvb_reported_length(decrypted));
+ break;
+ case SSL_ID_APP_DATA:
+ dissect_dtls_appdata(tvb, pinfo, offset, dtls_record_length, session,
+ dtls_record_tree, is_from_server, decrypted, record);
+ break;
+ default:
+ break;
+ }
+ } else {
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Encrypted Data");
+ proto_tree_add_item(dtls_record_tree, hf_dtls_record_encrypted_content, tvb,
+ offset, dtls_record_length, ENC_NA);
+ proto_item_set_text(dtls_record_tree,
+ "%s Record Layer: Encrypted Data",
+ val_to_str_const(session->version, ssl_version_short_names, "DTLS"));
+ }
+
+ return offset + dtls_record_length;
+}
+
/* dissects the alert message, filling in the tree */
static void
dissect_dtls_alert(tvbuff_t *tvb, packet_info *pinfo,
@@ -1162,6 +1851,29 @@ dissect_dtls_alert(tvbuff_t *tvb, packet_info *pinfo,
}
}
+static void
+dtls13_maybe_increase_max_epoch(SslDecryptSession *ssl, gboolean is_from_server)
+{
+ SslDecoder *dec;
+
+ if (ssl == NULL)
+ return;
+
+ if (is_from_server)
+ dec = ssl->server;
+ else
+ dec = ssl->client;
+
+ if (dec == NULL)
+ return;
+
+ /* be sure to increment from the current epoch just once, and to increment
+ * again only after the new epoch was seen. This assures that the dissector
+ * can always compute the next epoch, and avoid that duplicate packets wrongly
+ * increment the max epoch multiple times. */
+ if (dec->dtls13_epoch == ssl->session.dtls13_current_epoch[is_from_server])
+ ssl->session.dtls13_current_epoch[is_from_server]++;
+}
/* dissects the handshake protocol, filling the tree */
static void
@@ -1198,6 +1910,7 @@ dissect_dtls_handshake(tvbuff_t *tvb, packet_info *pinfo,
const gchar *msg_type_str;
guint8 msg_type;
guint32 length;
+ guint16 version;
guint16 message_seq;
guint32 fragment_offset;
guint32 fragment_length;
@@ -1225,6 +1938,7 @@ dissect_dtls_handshake(tvbuff_t *tvb, packet_info *pinfo,
const gchar *frag_str = NULL;
gboolean fragmented;
guint32 hs_offset = offset;
+ bool is_hrr = 0;
/* add a subtree for the handshake protocol */
ti = proto_tree_add_item(tree, hf_dtls_handshake_protocol, tvb, offset, -1, ENC_NA);
@@ -1239,8 +1953,16 @@ dissect_dtls_handshake(tvbuff_t *tvb, packet_info *pinfo,
* situation where the first octet of the encrypted handshake
* message is actually a known handshake message type.
*/
- if (!maybe_encrypted || offset + fragment_length <= record_length)
- msg_type_str = try_val_to_str(msg_type, ssl_31_handshake_type);
+ if (!maybe_encrypted || offset + fragment_length <= record_length) {
+ if (msg_type == SSL_HND_SERVER_HELLO) {
+ tls_scan_server_hello(tvb, offset+12, fragment_length, &version, &is_hrr);
+ }
+ if (is_hrr) {
+ msg_type_str = try_val_to_str(SSL_HND_HELLO_RETRY_REQUEST, ssl_31_handshake_type);
+ } else {
+ msg_type_str = try_val_to_str(msg_type, ssl_31_handshake_type);
+ }
+ }
if (!msg_type_str && !first_iteration)
{
@@ -1460,15 +2182,21 @@ dissect_dtls_handshake(tvbuff_t *tvb, packet_info *pinfo,
&dtls_hfs);
if (ssl) {
tls_save_crandom(ssl, tls_get_master_key_map(FALSE));
+ /* force DTLSv1.3 version if early data is seen */
+ if (ssl->has_early_data) {
+ session->version = DTLSV1DOT3_VERSION;
+ ssl->state |= SSL_VERSION;
+ ssl_debug_printf("%s forcing version 0x%04X -> state 0x%02X\n", G_STRFUNC, DTLSV1DOT3_VERSION, ssl->state);
+ }
}
break;
case SSL_HND_SERVER_HELLO:
- ssl_try_set_version(session, ssl, SSL_ID_HANDSHAKE, SSL_HND_SERVER_HELLO, TRUE,
- tvb_get_ntohs(sub_tvb, 0));
+ tls_scan_server_hello(sub_tvb, 0, fragment_length, &version, &is_hrr);
+ ssl_try_set_version(session, ssl, SSL_ID_HANDSHAKE, SSL_HND_SERVER_HELLO, TRUE, version);
ssl_dissect_hnd_srv_hello(&dissect_dtls_hf, sub_tvb, pinfo, ssl_hand_tree,
- 0, length, session, ssl, TRUE, FALSE);
+ 0, length, session, ssl, TRUE, is_hrr);
break;
case SSL_HND_HELLO_VERIFY_REQUEST:
@@ -1551,11 +2279,17 @@ dissect_dtls_handshake(tvbuff_t *tvb, packet_info *pinfo,
case SSL_HND_CERT_URL:
case SSL_HND_SUPPLEMENTAL_DATA:
case SSL_HND_KEY_UPDATE:
+ tls13_dissect_hnd_key_update(&dissect_dtls_hf, sub_tvb, ssl_hand_tree, 0);
+ if (ssl && ssl->session.version == DTLSV1DOT3_VERSION) {
+ dtls13_maybe_increase_max_epoch(ssl, is_from_server);
+ }
+ break;
case SSL_HND_ENCRYPTED_EXTS:
case SSL_HND_END_OF_EARLY_DATA: /* TLS 1.3 */
case SSL_HND_COMPRESSED_CERTIFICATE:
+ break;
case SSL_HND_ENCRYPTED_EXTENSIONS: /* TLS 1.3 */
- /* TODO: does this need further dissection? */
+ ssl_dissect_hnd_encrypted_extensions(&dissect_dtls_hf, sub_tvb, pinfo, ssl_hand_tree, 0, length, session, ssl, 1);
break;
}
}
@@ -1647,6 +2381,59 @@ dissect_dtls_heartbeat(tvbuff_t *tvb, packet_info *pinfo,
}
}
+/* dissects the acknowledgement message from RFC 9147 section 7 */
+static void
+dissect_dtls_ack(tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree, guint32 offset,
+ guint32 record_length)
+{
+ /*
+ * section 4:
+ * struct {
+ * uint64 epoch;
+ * uint64 sequence_number;
+ * } RecordNumber;
+ *
+ * section 7:
+ * struct {
+ * RecordNumber record_numbers<0..2^16-1>;
+ * } ACK;
+ */
+
+ guint32 i;
+ uint32_t record_number_length;
+ proto_tree *ti;
+ proto_tree *dtls_ack_tree, *rn_tree;
+ guint64 epoch;
+ guint64 number;
+
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Acknowledgement");
+ ti = proto_tree_add_item(tree, hf_dtls_ack_message, tvb,
+ offset, record_length, ENC_NA);
+ dtls_ack_tree = proto_item_add_subtree(ti, ett_dtls_ack);
+
+ /* record_numbers<2..2^16-2> */
+ if (!ssl_add_vector(&dissect_dtls_hf, tvb, pinfo, dtls_ack_tree, offset, record_length, &record_number_length,
+ hf_dtls_ack_record_numbers_length, 2, G_MAXUINT16 - 1)) {
+ return;
+ }
+
+ offset += 2;
+ ti = proto_tree_add_none_format(dtls_ack_tree, hf_dtls_ack_record_numbers, tvb, offset, record_number_length,
+ "RecordNumbers (%u record number%s)",
+ record_number_length / 16, plurality(record_number_length / 16, "", "s"));
+ dtls_ack_tree = proto_item_add_subtree(ti, ett_dtls_ack_record_numbers);
+
+ for (i = 0; i < record_number_length; i += 16) {
+ rn_tree = proto_tree_add_subtree(dtls_ack_tree, tvb, offset + i, 16, ett_dtls_ack_record_number, NULL, "");
+ proto_tree_add_item_ret_uint64(rn_tree, hf_dtls_record_epoch64, tvb,
+ offset + i + 0, 8, ENC_BIG_ENDIAN, &epoch);
+ proto_tree_add_item_ret_uint64(rn_tree, hf_dtls_record_sequence_number, tvb,
+ offset + i + 8, 8, ENC_BIG_ENDIAN, &number);
+ proto_item_set_text(rn_tree, "RecordNumber: epoch %" G_GUINT64_FORMAT ", sequence number %" G_GUINT64_FORMAT, epoch, number);
+ }
+}
+
static int
dissect_dtls_hnd_hello_verify_request(ssl_common_dissect_t *hf, tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree,
@@ -1826,6 +2613,9 @@ looks_like_dtls(tvbuff_t *tvb, guint32 offset)
byte = tvb_get_guint8(tvb, offset);
if (!ssl_is_valid_content_type(byte))
{
+ if ((byte & DTLS13_FIXED_MASK) >> 5 == 1) {
+ return 1;
+ }
return 0;
}
@@ -2018,11 +2808,26 @@ proto_register_dtls(void)
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_dtls_record_epoch64,
+ { "Epoch", "dtls.record.epoch",
+ FT_UINT64, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_dtls_record_sequence_number,
{ "Sequence Number", "dtls.record.sequence_number",
FT_UINT64, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_dtls_record_sequence_suffix,
+ { "Sequence Number suffix", "dtls.record.sequence_suffix",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "Lowest-order bits of the sequence number", HFILL }
+ },
+ { &hf_dtls_record_sequence_suffix_dec,
+ { "Sequence Number suffix (decrypted)", "dtls.record.sequence_suffix_dec",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "Lowest-order bits of the sequence number (decrypted)", HFILL }
+ },
{ &hf_dtls_record_connection_id,
{ "Connection ID", "dtls.record.connection_id",
FT_BYTES, BASE_NONE, NULL, 0x0,
@@ -2035,7 +2840,7 @@ proto_register_dtls(void)
},
{ &hf_dtls_record_appdata,
{ "Encrypted Application Data", "dtls.app_data",
- FT_BYTES, BASE_NONE, NULL, 0x0,
+ FT_BYTES, BASE_NONE|BASE_NO_DISPLAY_VALUE, NULL, 0x0,
"Payload is encrypted application data", HFILL }
},
{ &hf_dtls_record_appdata_proto,
@@ -2045,7 +2850,7 @@ proto_register_dtls(void)
},
{ &hf_dtls_record_encrypted_content,
{ "Encrypted Record Content", "dtls.enc_content",
- FT_BYTES, BASE_NONE, NULL, 0x0,
+ FT_BYTES, BASE_NONE|BASE_NO_DISPLAY_VALUE, NULL, 0x0,
"Encrypted record data", HFILL }
},
{ & hf_dtls_alert_message,
@@ -2125,6 +2930,16 @@ proto_register_dtls(void)
{ "Payload Length", "dtls.heartbeat_message.padding",
FT_BYTES, BASE_NONE, NULL, 0x00, NULL, HFILL }
},
+ { &hf_dtls_ack_message,
+ { "Acknowledgement Message", "dtls.ack_message",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_dtls_ack_record_numbers_length,
+ { "Record Number Length", "dtls.ack.record_numbers_length",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_dtls_fragments,
{ "Message fragments", "dtls.fragments",
FT_NONE, BASE_NONE, NULL, 0x00, NULL, HFILL }
@@ -2133,6 +2948,11 @@ proto_register_dtls(void)
{ "Message fragment", "dtls.fragment",
FT_FRAMENUM, BASE_NONE, NULL, 0x00, NULL, HFILL }
},
+ { &hf_dtls_ack_record_numbers,
+ { "Record Numbers", "dtls.ack.record_numbers",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_dtls_fragment_overlap,
{ "Message fragment overlap", "dtls.fragment.overlap",
FT_BOOLEAN, BASE_NONE, NULL, 0x0, NULL, HFILL }
@@ -2183,6 +3003,31 @@ proto_register_dtls(void)
{ "MKI", "dtls.use_srtp.mki",
FT_BYTES, BASE_NONE, NULL, 0x00, NULL, HFILL }
},
+ { &hf_dtls_uni_hdr,
+ { "Unified header bitmask", "dtls.unified_header.bitmask",
+ FT_UINT8, BASE_HEX, NULL, 0x00, "DTLS 1.3 unified header bitmask", HFILL }
+ },
+ { &hf_dtls_uni_hdr_fixed,
+ { "Fixed bits", "dtls.unified_header.fixed",
+ FT_UINT8, BASE_HEX, NULL, DTLS13_FIXED_MASK, NULL, HFILL }
+ },
+ { &hf_dtls_uni_hdr_cid,
+ { "CID field", "dtls.unified_header.cid_present",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), DTLS13_C_BIT_MASK, NULL, HFILL }
+ },
+ { &hf_dtls_uni_hdr_seq,
+ { "Sequence number size", "dtls.unified_header.seq_size",
+ FT_BOOLEAN, 8, TFS(&dtls_uni_hdr_seq_tfs), DTLS13_S_BIT_MASK, NULL, HFILL }
+ },
+ { &hf_dtls_uni_hdr_len,
+ { "Length field", "dtls.unified_header.length",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), DTLS13_L_BIT_MASK, NULL, HFILL }
+ },
+ { &hf_dtls_uni_hdr_epoch,
+ { "Epoch lowest-order bits", "dtls.unified_header.epoch_bits",
+ FT_UINT8, BASE_DEC, NULL, 0x03, NULL, HFILL }
+ },
+
SSL_COMMON_HF_LIST(dissect_dtls_hf, "dtls")
};
@@ -2193,7 +3038,11 @@ proto_register_dtls(void)
&ett_dtls_alert,
&ett_dtls_handshake,
&ett_dtls_heartbeat,
+ &ett_dtls_ack,
+ &ett_dtls_ack_record_number,
+ &ett_dtls_ack_record_numbers,
&ett_dtls_certs,
+ &ett_dtls_uni_hdr,
&ett_dtls_fragment,
&ett_dtls_fragments,
SSL_COMMON_ETT_LIST(dissect_dtls_hf)
diff --git a/epan/dissectors/packet-dvb-s2-bb.c b/epan/dissectors/packet-dvb-s2-bb.c
index cfa62f438e..aef226ad1c 100644
--- a/epan/dissectors/packet-dvb-s2-bb.c
+++ b/epan/dissectors/packet-dvb-s2-bb.c
@@ -124,10 +124,10 @@ static const enum_val_t dvb_s2_modeadapt_enum[] = {
{NULL, NULL, -1}
};
-static gboolean dvb_s2_full_dissection = FALSE;
-static gboolean dvb_s2_df_dissection = FALSE;
+static bool dvb_s2_full_dissection;
+static bool dvb_s2_df_dissection;
static gint dvb_s2_default_modeadapt = DVB_S2_MODEADAPT_TYPE_L3;
-static gboolean dvb_s2_try_all_modeadapt = TRUE;
+static bool dvb_s2_try_all_modeadapt = true;
/* Initialize the protocol and registered fields */
static int proto_dvb_s2_modeadapt;
@@ -990,7 +990,7 @@ typedef struct {
guint32 isi;
} virtual_stream_key;
-static wmem_map_t *virtual_stream_hashtable = NULL;
+static wmem_map_t *virtual_stream_hashtable;
static guint virtual_stream_count = 1;
/* Hash functions */
@@ -1177,7 +1177,7 @@ static int dissect_dvb_s2_gse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
tvbuff_t *next_tvb, *data_tvb;
gboolean dissected = FALSE;
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
gboolean complete = FALSE;
dvbs2_bb_data *pdata;
@@ -1310,7 +1310,7 @@ static int dissect_dvb_s2_gse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
next_tvb = process_reassembled_data(tvb, new_off, pinfo, "Reassembled GSE",
dvbs2_frag_head, &dvb_s2_gse_frag_items, &update_col_info, tree);
- if (next_tvb != NULL) {
+ if (next_tvb != NULL && subpacket_data) {
/* We have a reassembled packet. */
complete = TRUE;
labeltype = subpacket_data->labeltype;
diff --git a/epan/dissectors/packet-dvbci.c b/epan/dissectors/packet-dvbci.c
index 3629db55aa..c3fa0020ac 100644
--- a/epan/dissectors/packet-dvbci.c
+++ b/epan/dissectors/packet-dvbci.c
@@ -427,7 +427,7 @@ void proto_reg_handoff_dvbci(void);
/* "don't care" value for min_len_field and len_field (this can't be 0) */
#define LEN_FIELD_ANY G_MAXUINT32
-static GHashTable *apdu_table = NULL;
+static GHashTable *apdu_table;
typedef struct _apdu_info_t {
guint32 tag;
@@ -839,13 +839,13 @@ static int proto_dvbci;
static dissector_handle_t dvbci_handle;
-static const gchar *dvbci_sek = NULL;
-static const gchar *dvbci_siv = NULL;
-static gboolean dvbci_dissect_lsc_msg = FALSE;
+static const gchar *dvbci_sek;
+static const gchar *dvbci_siv;
+static bool dvbci_dissect_lsc_msg;
/* the output of pref_key_string_to_bin() applied to dvbci_sek and _siv */
-static unsigned char *dvbci_sek_bin = NULL;
-static unsigned char *dvbci_siv_bin = NULL;
+static unsigned char *dvbci_sek_bin;
+static unsigned char *dvbci_siv_bin;
static dissector_handle_t data_handle;
static dissector_handle_t mpeg_pmt_handle;
@@ -1327,7 +1327,7 @@ static const value_string dvbci_spdu_tag[] = {
{ T_CLOSE_SESSION_RESPONSE, "Close Session Response" },
{ 0, NULL }
};
-static GHashTable *spdu_table = NULL;
+static GHashTable *spdu_table;
static const spdu_info_t spdu_info[] = {
{ T_SESSION_NUMBER, DIRECTION_ANY, 2 },
{ T_OPEN_SESSION_REQUEST, DATA_CAM_TO_HOST, 4 },
diff --git a/epan/dissectors/packet-dvmrp.c b/epan/dissectors/packet-dvmrp.c
index 7e2d510c33..372ab25e69 100644
--- a/epan/dissectors/packet-dvmrp.c
+++ b/epan/dissectors/packet-dvmrp.c
@@ -102,7 +102,7 @@ static int ett_route;
static expert_field ei_checksum;
-static int strict_v3 = FALSE;
+static bool strict_v3;
#define DVMRP_TYPE 0x13
static const value_string dvmrp_type[] = {
diff --git a/epan/dissectors/packet-e1ap.c b/epan/dissectors/packet-e1ap.c
index 4a0096a118..88de155539 100644
--- a/epan/dissectors/packet-e1ap.c
+++ b/epan/dissectors/packet-e1ap.c
@@ -13,7 +13,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 37.483 V17.7.0 (2023-12)
+ * References: 3GPP TS 37.483 V17.8.0 (2024-03)
*/
#include "config.h"
@@ -72,6 +72,7 @@ void proto_reg_handoff_e1ap(void);
#define maxnoofSharedNG_UTerminations 8
#define maxnoofMRBs 32
#define maxnoofMBSSessionIDs 512
+#define maxnoofDUs 512
typedef enum _ProcedureCode_enum {
id_reset = 0,
@@ -310,7 +311,27 @@ typedef enum _ProtocolIE_ID_enum {
id_Secondary_PDU_Session_Data_Forwarding_Information = 190,
id_MBSSessionResourceNotification = 191,
id_MCBearerContextInactivityTimer = 192,
- id_MCBearerContextStatusChange = 193
+ id_MCBearerContextStatusChange = 193,
+ id_Unknown_194 = 194,
+ id_Unknown_195 = 195,
+ id_Unknown_196 = 196,
+ id_Unknown_197 = 197,
+ id_Unknown_198 = 198,
+ id_Unknown_199 = 199,
+ id_Unknown_200 = 200,
+ id_Unknown_201 = 201,
+ id_Unknown_202 = 202,
+ id_Unknown_203 = 203,
+ id_Unknown_204 = 204,
+ id_Unknown_205 = 205,
+ id_Unknown_206 = 206,
+ id_Unknown_207 = 207,
+ id_F1U_TNL_InfoToAdd_List = 208,
+ id_F1U_TNL_InfoAdded_List = 209,
+ id_F1U_TNL_InfoToAddOrModify_List = 210,
+ id_F1U_TNL_InfoAddedOrModified_List = 211,
+ id_F1U_TNL_InfoToRelease_List = 212,
+ id_BroadcastF1U_ContextReferenceE1 = 213
} ProtocolIE_ID_enum;
/* Initialize the protocol and registered fields */
@@ -386,6 +407,11 @@ static int hf_e1ap_Endpoint_IP_address_and_port_PDU; /* Endpoint_IP_address_and
static int hf_e1ap_ExtendedPacketDelayBudget_PDU; /* ExtendedPacketDelayBudget */
static int hf_e1ap_ECGI_Support_List_PDU; /* ECGI_Support_List */
static int hf_e1ap_ExtendedSliceSupportList_PDU; /* ExtendedSliceSupportList */
+static int hf_e1ap_F1U_TNL_InfoAdded_List_PDU; /* F1U_TNL_InfoAdded_List */
+static int hf_e1ap_F1U_TNL_InfoToAdd_List_PDU; /* F1U_TNL_InfoToAdd_List */
+static int hf_e1ap_F1U_TNL_InfoAddedOrModified_List_PDU; /* F1U_TNL_InfoAddedOrModified_List */
+static int hf_e1ap_F1U_TNL_InfoToAddOrModify_List_PDU; /* F1U_TNL_InfoToAddOrModify_List */
+static int hf_e1ap_F1U_TNL_InfoToRelease_List_PDU; /* F1U_TNL_InfoToRelease_List */
static int hf_e1ap_GlobalMBSSessionID_PDU; /* GlobalMBSSessionID */
static int hf_e1ap_GNB_CU_CP_Name_PDU; /* GNB_CU_CP_Name */
static int hf_e1ap_Extended_GNB_CU_CP_Name_PDU; /* Extended_GNB_CU_CP_Name */
@@ -790,6 +816,12 @@ static int hf_e1ap_eUTRANallocationAndRetentionPriority; /* EUTRANAllocationAnd
static int hf_e1ap_gbrQosInformation; /* GBR_QosInformation */
static int hf_e1ap_ExtendedSliceSupportList_item; /* Slice_Support_Item */
static int hf_e1ap_firstDLCountVal; /* PDCP_Count */
+static int hf_e1ap_F1U_TNL_InfoAdded_List_item; /* F1U_TNL_InfoAdded_Item */
+static int hf_e1ap_broadcastF1U_ContextReferenceE1; /* BroadcastF1U_ContextReferenceE1 */
+static int hf_e1ap_F1U_TNL_InfoToAdd_List_item; /* F1U_TNL_InfoToAdd_Item */
+static int hf_e1ap_F1U_TNL_InfoAddedOrModified_List_item; /* F1U_TNL_InfoAddedOrModified_Item */
+static int hf_e1ap_F1U_TNL_InfoToAddOrModify_List_item; /* F1U_TNL_InfoToAddOrModify_Item */
+static int hf_e1ap_F1U_TNL_InfoToRelease_List_item; /* F1U_TNL_InfoToRelease_Item */
static int hf_e1ap_tmgi; /* OCTET_STRING_SIZE_6 */
static int hf_e1ap_nid; /* NID */
static int hf_e1ap_gNB_CU_CP_NameVisibleString; /* GNB_CU_CP_NameVisibleString */
@@ -1122,429 +1154,439 @@ static gint ett_e1ap_InterfacesToTrace;
static gint ett_e1ap_MeasurementsToActivate;
static gint ett_e1ap_ReportCharacteristics;
static gint ett_e1ap_BurstArrivalTime;
-static gint ett_e1ap_PrivateIE_ID;
-static gint ett_e1ap_ProtocolIE_Container;
-static gint ett_e1ap_ProtocolIE_Field;
-static gint ett_e1ap_ProtocolExtensionContainer;
-static gint ett_e1ap_ProtocolExtensionField;
-static gint ett_e1ap_PrivateIE_Container;
-static gint ett_e1ap_PrivateIE_Field;
-static gint ett_e1ap_ActivityInformation;
-static gint ett_e1ap_AlternativeQoSParaSetList;
-static gint ett_e1ap_AlternativeQoSParaSetItem;
-static gint ett_e1ap_BCBearerContextToSetup;
-static gint ett_e1ap_BCBearerContextNGU_TNLInfoat5GC;
-static gint ett_e1ap_BCMRBSetupConfiguration;
-static gint ett_e1ap_BCMRBSetupConfiguration_Item;
-static gint ett_e1ap_BCBearerContextToSetupResponse;
-static gint ett_e1ap_BCBearerContextNGU_TNLInfoatNGRAN;
-static gint ett_e1ap_BCMRBSetupResponseList;
-static gint ett_e1ap_BCMRBSetupResponseList_Item;
-static gint ett_e1ap_BCBearerContextF1U_TNLInfoatCU;
-static gint ett_e1ap_BCMRBFailedList;
-static gint ett_e1ap_BCMRBFailedList_Item;
-static gint ett_e1ap_BCBearerContextToModify;
-static gint ett_e1ap_BCMRBModifyConfiguration;
-static gint ett_e1ap_BCMRBModifyConfiguration_Item;
-static gint ett_e1ap_BCBearerContextF1U_TNLInfoatDU;
-static gint ett_e1ap_BCMRBRemoveConfiguration;
-static gint ett_e1ap_BCBearerContextToModifyResponse;
-static gint ett_e1ap_BCMRBSetupModifyResponseList;
-static gint ett_e1ap_BCMRBSetupModifyResponseList_Item;
-static gint ett_e1ap_BCBearerContextToModifyRequired;
-static gint ett_e1ap_BCBearerContextToModifyConfirm;
-static gint ett_e1ap_Cause;
-static gint ett_e1ap_Cell_Group_Information;
-static gint ett_e1ap_Cell_Group_Information_Item;
-static gint ett_e1ap_CP_TNL_Information;
-static gint ett_e1ap_CriticalityDiagnostics;
-static gint ett_e1ap_CriticalityDiagnostics_IE_List;
-static gint ett_e1ap_CriticalityDiagnostics_IE_List_item;
-static gint ett_e1ap_DAPSRequestInfo;
-static gint ett_e1ap_Data_Forwarding_Information_Request;
-static gint ett_e1ap_Data_Forwarding_Information;
-static gint ett_e1ap_DataForwardingtoE_UTRANInformationList;
-static gint ett_e1ap_DataForwardingtoE_UTRANInformationListItem;
-static gint ett_e1ap_Data_Usage_per_PDU_Session_Report;
-static gint ett_e1ap_SEQUENCE_SIZE_1_maxnooftimeperiods_OF_MRDC_Data_Usage_Report_Item;
-static gint ett_e1ap_Data_Usage_per_QoS_Flow_List;
-static gint ett_e1ap_Data_Usage_per_QoS_Flow_Item;
-static gint ett_e1ap_Data_Usage_Report_List;
-static gint ett_e1ap_Data_Usage_Report_Item;
-static gint ett_e1ap_DLDiscarding;
-static gint ett_e1ap_DLUPTNLAddressToUpdateItem;
-static gint ett_e1ap_DRB_Activity_List;
-static gint ett_e1ap_DRB_Activity_Item;
-static gint ett_e1ap_DRB_Confirm_Modified_List_EUTRAN;
-static gint ett_e1ap_DRB_Confirm_Modified_Item_EUTRAN;
-static gint ett_e1ap_DRB_Confirm_Modified_List_NG_RAN;
-static gint ett_e1ap_DRB_Confirm_Modified_Item_NG_RAN;
-static gint ett_e1ap_DRB_Failed_List_EUTRAN;
-static gint ett_e1ap_DRB_Failed_Item_EUTRAN;
-static gint ett_e1ap_DRB_Failed_Mod_List_EUTRAN;
-static gint ett_e1ap_DRB_Failed_Mod_Item_EUTRAN;
-static gint ett_e1ap_DRB_Failed_List_NG_RAN;
-static gint ett_e1ap_DRB_Failed_Item_NG_RAN;
-static gint ett_e1ap_DRB_Failed_Mod_List_NG_RAN;
-static gint ett_e1ap_DRB_Failed_Mod_Item_NG_RAN;
-static gint ett_e1ap_DRB_Failed_To_Modify_List_EUTRAN;
-static gint ett_e1ap_DRB_Failed_To_Modify_Item_EUTRAN;
-static gint ett_e1ap_DRB_Failed_To_Modify_List_NG_RAN;
-static gint ett_e1ap_DRB_Failed_To_Modify_Item_NG_RAN;
-static gint ett_e1ap_DRB_Measurement_Results_Information_List;
-static gint ett_e1ap_DRB_Measurement_Results_Information_Item;
-static gint ett_e1ap_DRB_Modified_List_EUTRAN;
-static gint ett_e1ap_DRB_Modified_Item_EUTRAN;
-static gint ett_e1ap_DRB_Modified_List_NG_RAN;
-static gint ett_e1ap_DRB_Modified_Item_NG_RAN;
-static gint ett_e1ap_DRB_Removed_Item;
-static gint ett_e1ap_SEQUENCE_SIZE_1_maxnoofQoSFlows_OF_QoS_Flow_Removed_Item;
-static gint ett_e1ap_DRB_Required_To_Modify_List_EUTRAN;
-static gint ett_e1ap_DRB_Required_To_Modify_Item_EUTRAN;
-static gint ett_e1ap_DRB_Required_To_Modify_List_NG_RAN;
-static gint ett_e1ap_DRB_Required_To_Modify_Item_NG_RAN;
-static gint ett_e1ap_DRB_Setup_List_EUTRAN;
-static gint ett_e1ap_DRB_Setup_Item_EUTRAN;
-static gint ett_e1ap_DRB_Setup_Mod_List_EUTRAN;
-static gint ett_e1ap_DRB_Setup_Mod_Item_EUTRAN;
-static gint ett_e1ap_DRB_Setup_List_NG_RAN;
-static gint ett_e1ap_DRB_Setup_Item_NG_RAN;
-static gint ett_e1ap_DRB_Setup_Mod_List_NG_RAN;
-static gint ett_e1ap_DRB_Setup_Mod_Item_NG_RAN;
-static gint ett_e1ap_DRB_Status_Item;
-static gint ett_e1ap_DRBs_Subject_To_Counter_Check_List_EUTRAN;
-static gint ett_e1ap_DRBs_Subject_To_Counter_Check_Item_EUTRAN;
-static gint ett_e1ap_DRBs_Subject_To_Counter_Check_List_NG_RAN;
-static gint ett_e1ap_DRBs_Subject_To_Counter_Check_Item_NG_RAN;
-static gint ett_e1ap_DRBs_Subject_To_Early_Forwarding_List;
-static gint ett_e1ap_DRBs_Subject_To_Early_Forwarding_Item;
-static gint ett_e1ap_DRB_To_Modify_List_EUTRAN;
-static gint ett_e1ap_DRB_To_Modify_Item_EUTRAN;
-static gint ett_e1ap_DRB_To_Modify_List_NG_RAN;
-static gint ett_e1ap_DRB_To_Modify_Item_NG_RAN;
-static gint ett_e1ap_DRB_To_Remove_List_EUTRAN;
-static gint ett_e1ap_DRB_To_Remove_Item_EUTRAN;
-static gint ett_e1ap_DRB_Required_To_Remove_List_EUTRAN;
-static gint ett_e1ap_DRB_Required_To_Remove_Item_EUTRAN;
-static gint ett_e1ap_DRB_To_Remove_List_NG_RAN;
-static gint ett_e1ap_DRB_To_Remove_Item_NG_RAN;
-static gint ett_e1ap_DRB_Required_To_Remove_List_NG_RAN;
-static gint ett_e1ap_DRB_Required_To_Remove_Item_NG_RAN;
-static gint ett_e1ap_DRB_To_Setup_List_EUTRAN;
-static gint ett_e1ap_DRB_To_Setup_Item_EUTRAN;
-static gint ett_e1ap_DRB_To_Setup_Mod_List_EUTRAN;
-static gint ett_e1ap_DRB_To_Setup_Mod_Item_EUTRAN;
-static gint ett_e1ap_DRB_To_Setup_List_NG_RAN;
-static gint ett_e1ap_DRB_To_Setup_Item_NG_RAN;
-static gint ett_e1ap_DRB_To_Setup_Mod_List_NG_RAN;
-static gint ett_e1ap_DRB_To_Setup_Mod_Item_NG_RAN;
-static gint ett_e1ap_DRB_Usage_Report_List;
-static gint ett_e1ap_DRB_Usage_Report_Item;
-static gint ett_e1ap_Dynamic5QIDescriptor;
-static gint ett_e1ap_EarlyForwardingCOUNTInfo;
-static gint ett_e1ap_EHC_Common_Parameters;
-static gint ett_e1ap_EHC_Downlink_Parameters;
-static gint ett_e1ap_EHC_Uplink_Parameters;
-static gint ett_e1ap_EHC_Parameters;
-static gint ett_e1ap_Endpoint_IP_address_and_port;
-static gint ett_e1ap_EUTRANAllocationAndRetentionPriority;
-static gint ett_e1ap_ECGI;
-static gint ett_e1ap_ECGI_Support_List;
-static gint ett_e1ap_ECGI_Support_Item;
-static gint ett_e1ap_EUTRAN_QoS_Support_List;
-static gint ett_e1ap_EUTRAN_QoS_Support_Item;
-static gint ett_e1ap_EUTRAN_QoS;
-static gint ett_e1ap_ExtendedSliceSupportList;
-static gint ett_e1ap_FirstDLCount;
-static gint ett_e1ap_GlobalMBSSessionID;
-static gint ett_e1ap_Extended_GNB_CU_CP_Name;
-static gint ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration;
-static gint ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_Item;
-static gint ett_e1ap_GNB_CU_UP_MBS_Support_Info;
-static gint ett_e1ap_Extended_GNB_CU_UP_Name;
-static gint ett_e1ap_GNB_CU_CP_TNLA_Setup_Item;
-static gint ett_e1ap_GNB_CU_CP_TNLA_Failed_To_Setup_Item;
-static gint ett_e1ap_GNB_CU_CP_TNLA_To_Add_Item;
-static gint ett_e1ap_GNB_CU_CP_TNLA_To_Remove_Item;
-static gint ett_e1ap_GNB_CU_CP_TNLA_To_Update_Item;
-static gint ett_e1ap_GNB_CU_UP_TNLA_To_Remove_Item;
-static gint ett_e1ap_GBR_QosInformation;
-static gint ett_e1ap_GBR_QoSFlowInformation;
-static gint ett_e1ap_GTPTLAs;
-static gint ett_e1ap_GTPTLA_Item;
-static gint ett_e1ap_GTPTunnel;
-static gint ett_e1ap_HW_CapacityIndicator;
-static gint ett_e1ap_ImmediateMDT;
-static gint ett_e1ap_IAB_Donor_CU_UPPSKInfo_Item;
-static gint ett_e1ap_LocationDependentMBSNGUInformationAt5GC;
-static gint ett_e1ap_LocationDependentMBSNGUInformationAt5GC_Item;
-static gint ett_e1ap_LocationDependentMBSF1UInformationAtCU;
-static gint ett_e1ap_LocationDependentMBSF1UInformationAtCU_Item;
-static gint ett_e1ap_LocationDependentMBSF1UInformationAtDU;
-static gint ett_e1ap_LocationDependentMBSF1UInformationAtDU_Item;
-static gint ett_e1ap_LocationDependentMBSNGUInformationAtNGRAN;
-static gint ett_e1ap_LocationDependentMBSNGUInformationAtNGRAN_Item;
-static gint ett_e1ap_MaximumIPdatarate;
-static gint ett_e1ap_MBSF1UInformationAtCU;
-static gint ett_e1ap_MBSF1UInformationAtDU;
-static gint ett_e1ap_MBSNGUInformationAt5GC;
-static gint ett_e1ap_MBSNGUInformationAt5GC_Multicast;
-static gint ett_e1ap_MBSNGUInformationAtNGRAN;
-static gint ett_e1ap_MBSSessionAssociatedInfoNonSupportToSupport;
-static gint ett_e1ap_MBSSessionAssociatedInformation;
-static gint ett_e1ap_MBSSessionAssociatedInformationList;
-static gint ett_e1ap_MBSSessionAssociatedInformation_Item;
-static gint ett_e1ap_MBS_Support_Info_ToAdd_List;
-static gint ett_e1ap_MBS_Support_Info_ToAdd_Item;
-static gint ett_e1ap_MBS_Support_Info_ToRemove_List;
-static gint ett_e1ap_MBSSessionResourceNotification;
-static gint ett_e1ap_MBS_DL_Data_Arrival;
-static gint ett_e1ap_MCBearerContext_Inactivity;
-static gint ett_e1ap_MBS_Support_Info_ToRemove_Item;
-static gint ett_e1ap_MCBearerContextToSetup;
-static gint ett_e1ap_MCMRBSetupConfiguration;
-static gint ett_e1ap_MCMRBSetupConfiguration_Item;
-static gint ett_e1ap_MCBearerContextToSetupResponse;
-static gint ett_e1ap_MCBearerContextNGU_TNLInfoatNGRAN;
-static gint ett_e1ap_MCMRBSetupResponseList;
-static gint ett_e1ap_MCMRBSetupResponseList_Item;
-static gint ett_e1ap_MCMRBFailedList;
-static gint ett_e1ap_MCMRBFailedList_Item;
-static gint ett_e1ap_MCBearerContextToModify;
-static gint ett_e1ap_MCBearerContextNGUTNLInfoat5GC;
-static gint ett_e1ap_MCBearerContextNGUTnlInfoatNGRANRequest;
-static gint ett_e1ap_MCMRBSetupModifyConfiguration;
-static gint ett_e1ap_MCMRBSetupModifyConfiguration_Item;
-static gint ett_e1ap_MCBearerContextF1UTNLInfoatDU;
-static gint ett_e1ap_MBSMulticastF1UContextDescriptor;
-static gint ett_e1ap_MCMRBRemoveConfiguration;
-static gint ett_e1ap_MCBearerContextToModifyResponse;
-static gint ett_e1ap_MCBearerContextNGU_TNLInfoatNGRANModifyResponse;
-static gint ett_e1ap_MCMRBSetupModifyResponseList;
-static gint ett_e1ap_MCMRBSetupModifyResponseList_Item;
-static gint ett_e1ap_MCBearerContextToModifyRequired;
-static gint ett_e1ap_MCMRBModifyRequiredConfiguration;
-static gint ett_e1ap_MCMRBModifyRequiredConfiguration_Item;
-static gint ett_e1ap_MCBearerContextToModifyConfirm;
-static gint ett_e1ap_MCMRBModifyConfirmList;
-static gint ett_e1ap_MCMRBModifyConfirmList_Item;
-static gint ett_e1ap_MCForwardingResourceRequest;
-static gint ett_e1ap_MRBForwardingResourceRequestList;
-static gint ett_e1ap_MRBForwardingResourceRequest_Item;
-static gint ett_e1ap_MCForwardingResourceIndication;
-static gint ett_e1ap_MRBForwardingResourceIndicationList;
-static gint ett_e1ap_MRBForwardingResourceIndication_Item;
-static gint ett_e1ap_MCForwardingResourceResponse;
-static gint ett_e1ap_MRBForwardingResourceResponseList;
-static gint ett_e1ap_MRBForwardingResourceResponse_Item;
-static gint ett_e1ap_MCForwardingResourceRelease;
-static gint ett_e1ap_MCForwardingResourceReleaseIndication;
-static gint ett_e1ap_MRB_ProgressInformation;
-static gint ett_e1ap_MRB_ProgressInformationSNs;
-static gint ett_e1ap_MRDC_Data_Usage_Report_Item;
-static gint ett_e1ap_MRDC_Usage_Information;
-static gint ett_e1ap_M4Configuration;
-static gint ett_e1ap_M6Configuration;
-static gint ett_e1ap_M7Configuration;
-static gint ett_e1ap_MDT_Configuration;
-static gint ett_e1ap_MDTMode;
-static gint ett_e1ap_MDTPLMNList;
-static gint ett_e1ap_MDTPLMNModificationList;
-static gint ett_e1ap_NGRANAllocationAndRetentionPriority;
-static gint ett_e1ap_NG_RAN_QoS_Support_List;
-static gint ett_e1ap_NG_RAN_QoS_Support_Item;
-static gint ett_e1ap_Non_Dynamic5QIDescriptor;
-static gint ett_e1ap_NPNSupportInfo;
-static gint ett_e1ap_NPNSupportInfo_SNPN;
-static gint ett_e1ap_NPNContextInfo;
-static gint ett_e1ap_NPNContextInfo_SNPN;
-static gint ett_e1ap_NR_CGI;
-static gint ett_e1ap_NR_CGI_Support_List;
-static gint ett_e1ap_NR_CGI_Support_Item;
-static gint ett_e1ap_Extended_NR_CGI_Support_List;
-static gint ett_e1ap_Extended_NR_CGI_Support_Item;
-static gint ett_e1ap_PacketErrorRate;
-static gint ett_e1ap_PDCP_Configuration;
-static gint ett_e1ap_PDCP_Count;
-static gint ett_e1ap_PDU_Session_Resource_Data_Usage_List;
-static gint ett_e1ap_PDU_Session_Resource_Data_Usage_Item;
-static gint ett_e1ap_PDCP_SN_Status_Information;
-static gint ett_e1ap_DRBBStatusTransfer;
-static gint ett_e1ap_PDU_Session_Resource_Activity_List;
-static gint ett_e1ap_PDU_Session_Resource_Activity_Item;
-static gint ett_e1ap_PDU_Session_Resource_Confirm_Modified_List;
-static gint ett_e1ap_PDU_Session_Resource_Confirm_Modified_Item;
-static gint ett_e1ap_PDU_Session_Resource_Failed_List;
-static gint ett_e1ap_PDU_Session_Resource_Failed_Item;
-static gint ett_e1ap_PDU_Session_Resource_Failed_Mod_List;
-static gint ett_e1ap_PDU_Session_Resource_Failed_Mod_Item;
-static gint ett_e1ap_PDU_Session_Resource_Failed_To_Modify_List;
-static gint ett_e1ap_PDU_Session_Resource_Failed_To_Modify_Item;
-static gint ett_e1ap_PDU_Session_Resource_Modified_List;
-static gint ett_e1ap_PDU_Session_Resource_Modified_Item;
-static gint ett_e1ap_PDU_Session_Resource_Required_To_Modify_List;
-static gint ett_e1ap_PDU_Session_Resource_Required_To_Modify_Item;
-static gint ett_e1ap_PDU_Session_Resource_Setup_List;
-static gint ett_e1ap_PDU_Session_Resource_Setup_Item;
-static gint ett_e1ap_PDU_Session_Resource_Setup_Mod_List;
-static gint ett_e1ap_PDU_Session_Resource_Setup_Mod_Item;
-static gint ett_e1ap_PDU_Session_Resource_To_Modify_List;
-static gint ett_e1ap_PDU_Session_Resource_To_Modify_Item;
-static gint ett_e1ap_PDU_Session_Resource_To_Remove_List;
-static gint ett_e1ap_PDU_Session_Resource_To_Remove_Item;
-static gint ett_e1ap_PDU_Session_Resource_To_Setup_List;
-static gint ett_e1ap_PDU_Session_Resource_To_Setup_Item;
-static gint ett_e1ap_PDU_Session_Resource_To_Setup_Mod_List;
-static gint ett_e1ap_PDU_Session_Resource_To_Setup_Mod_Item;
-static gint ett_e1ap_PDU_Session_To_Notify_List;
-static gint ett_e1ap_PDU_Session_To_Notify_Item;
-static gint ett_e1ap_QoS_Characteristics;
-static gint ett_e1ap_QoS_Flow_List;
-static gint ett_e1ap_QoS_Flow_Item;
-static gint ett_e1ap_QoS_Flow_Failed_List;
-static gint ett_e1ap_QoS_Flow_Failed_Item;
-static gint ett_e1ap_QoS_Flow_Mapping_List;
-static gint ett_e1ap_QoS_Flow_Mapping_Item;
-static gint ett_e1ap_QoS_Parameters_Support_List;
-static gint ett_e1ap_QoS_Flow_QoS_Parameter_List;
-static gint ett_e1ap_QoS_Flow_QoS_Parameter_Item;
-static gint ett_e1ap_QoSFlowLevelQoSParameters;
-static gint ett_e1ap_QoS_Flow_Removed_Item;
-static gint ett_e1ap_QoS_Flows_to_be_forwarded_List;
-static gint ett_e1ap_QoS_Flows_to_be_forwarded_Item;
-static gint ett_e1ap_QoS_Mapping_Information;
-static gint ett_e1ap_DataForwardingtoNG_RANQoSFlowInformationList;
-static gint ett_e1ap_DataForwardingtoNG_RANQoSFlowInformationList_Item;
-static gint ett_e1ap_RedundantPDUSessionInformation;
-static gint ett_e1ap_RetainabilityMeasurementsInfo;
-static gint ett_e1ap_ROHC_Parameters;
-static gint ett_e1ap_ROHC;
-static gint ett_e1ap_SecurityAlgorithm;
-static gint ett_e1ap_SecurityIndication;
-static gint ett_e1ap_SecurityInformation;
-static gint ett_e1ap_SecurityResult;
-static gint ett_e1ap_Slice_Support_List;
-static gint ett_e1ap_Slice_Support_Item;
-static gint ett_e1ap_SNSSAI;
-static gint ett_e1ap_SDAP_Configuration;
-static gint ett_e1ap_TNL_AvailableCapacityIndicator;
-static gint ett_e1ap_TSCTrafficCharacteristics;
-static gint ett_e1ap_TSCTrafficInformation;
-static gint ett_e1ap_TraceActivation;
-static gint ett_e1ap_T_ReorderingTimer;
-static gint ett_e1ap_Transport_Layer_Address_Info;
-static gint ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Add_List;
-static gint ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Add_Item;
-static gint ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Remove_List;
-static gint ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Remove_Item;
-static gint ett_e1ap_UDC_Parameters;
-static gint ett_e1ap_UE_associatedLogicalE1_ConnectionItem;
-static gint ett_e1ap_UESliceMaximumBitRateList;
-static gint ett_e1ap_UESliceMaximumBitRateItem;
-static gint ett_e1ap_ULUPTNLAddressToUpdateItem;
-static gint ett_e1ap_UP_Parameters;
-static gint ett_e1ap_UP_Parameters_Item;
-static gint ett_e1ap_UPSecuritykey;
-static gint ett_e1ap_UP_TNL_Information;
-static gint ett_e1ap_UplinkOnlyROHC;
-static gint ett_e1ap_Reset;
-static gint ett_e1ap_ResetType;
-static gint ett_e1ap_UE_associatedLogicalE1_ConnectionListRes;
-static gint ett_e1ap_ResetAcknowledge;
-static gint ett_e1ap_UE_associatedLogicalE1_ConnectionListResAck;
-static gint ett_e1ap_ErrorIndication;
-static gint ett_e1ap_GNB_CU_UP_E1SetupRequest;
-static gint ett_e1ap_SupportedPLMNs_List;
-static gint ett_e1ap_SupportedPLMNs_Item;
-static gint ett_e1ap_GNB_CU_UP_E1SetupResponse;
-static gint ett_e1ap_GNB_CU_UP_E1SetupFailure;
-static gint ett_e1ap_GNB_CU_CP_E1SetupRequest;
-static gint ett_e1ap_GNB_CU_CP_E1SetupResponse;
-static gint ett_e1ap_GNB_CU_CP_E1SetupFailure;
-static gint ett_e1ap_GNB_CU_UP_ConfigurationUpdate;
-static gint ett_e1ap_GNB_CU_UP_TNLA_To_Remove_List;
-static gint ett_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge;
-static gint ett_e1ap_GNB_CU_UP_ConfigurationUpdateFailure;
-static gint ett_e1ap_GNB_CU_CP_ConfigurationUpdate;
-static gint ett_e1ap_GNB_CU_CP_TNLA_To_Add_List;
-static gint ett_e1ap_GNB_CU_CP_TNLA_To_Remove_List;
-static gint ett_e1ap_GNB_CU_CP_TNLA_To_Update_List;
-static gint ett_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge;
-static gint ett_e1ap_GNB_CU_CP_TNLA_Setup_List;
-static gint ett_e1ap_GNB_CU_CP_TNLA_Failed_To_Setup_List;
-static gint ett_e1ap_GNB_CU_CP_ConfigurationUpdateFailure;
-static gint ett_e1ap_E1ReleaseRequest;
-static gint ett_e1ap_E1ReleaseResponse;
-static gint ett_e1ap_BearerContextSetupRequest;
-static gint ett_e1ap_System_BearerContextSetupRequest;
-static gint ett_e1ap_BearerContextSetupResponse;
-static gint ett_e1ap_System_BearerContextSetupResponse;
-static gint ett_e1ap_BearerContextSetupFailure;
-static gint ett_e1ap_BearerContextModificationRequest;
-static gint ett_e1ap_System_BearerContextModificationRequest;
-static gint ett_e1ap_BearerContextModificationResponse;
-static gint ett_e1ap_System_BearerContextModificationResponse;
-static gint ett_e1ap_BearerContextModificationFailure;
-static gint ett_e1ap_BearerContextModificationRequired;
-static gint ett_e1ap_System_BearerContextModificationRequired;
-static gint ett_e1ap_BearerContextModificationConfirm;
-static gint ett_e1ap_System_BearerContextModificationConfirm;
-static gint ett_e1ap_BearerContextReleaseCommand;
-static gint ett_e1ap_BearerContextReleaseComplete;
-static gint ett_e1ap_BearerContextReleaseRequest;
-static gint ett_e1ap_DRB_Status_List;
-static gint ett_e1ap_BearerContextInactivityNotification;
-static gint ett_e1ap_DLDataNotification;
-static gint ett_e1ap_ULDataNotification;
-static gint ett_e1ap_DataUsageReport;
-static gint ett_e1ap_GNB_CU_UP_CounterCheckRequest;
-static gint ett_e1ap_System_GNB_CU_UP_CounterCheckRequest;
-static gint ett_e1ap_GNB_CU_UP_StatusIndication;
-static gint ett_e1ap_GNB_CU_CPMeasurementResultsInformation;
-static gint ett_e1ap_MRDC_DataUsageReport;
-static gint ett_e1ap_TraceStart;
-static gint ett_e1ap_DeactivateTrace;
-static gint ett_e1ap_CellTrafficTrace;
-static gint ett_e1ap_PrivateMessage;
-static gint ett_e1ap_ResourceStatusRequest;
-static gint ett_e1ap_ResourceStatusResponse;
-static gint ett_e1ap_ResourceStatusFailure;
-static gint ett_e1ap_ResourceStatusUpdate;
-static gint ett_e1ap_IAB_UPTNLAddressUpdate;
-static gint ett_e1ap_DLUPTNLAddressToUpdateList;
-static gint ett_e1ap_IAB_UPTNLAddressUpdateAcknowledge;
-static gint ett_e1ap_ULUPTNLAddressToUpdateList;
-static gint ett_e1ap_IAB_UPTNLAddressUpdateFailure;
-static gint ett_e1ap_EarlyForwardingSNTransfer;
-static gint ett_e1ap_IABPSKNotification;
-static gint ett_e1ap_IAB_Donor_CU_UPPSKInfo;
-static gint ett_e1ap_BCBearerContextSetupRequest;
-static gint ett_e1ap_BCBearerContextSetupResponse;
-static gint ett_e1ap_BCBearerContextSetupFailure;
-static gint ett_e1ap_BCBearerContextModificationRequest;
-static gint ett_e1ap_BCBearerContextModificationResponse;
-static gint ett_e1ap_BCBearerContextModificationFailure;
-static gint ett_e1ap_BCBearerContextModificationRequired;
-static gint ett_e1ap_BCBearerContextModificationConfirm;
-static gint ett_e1ap_BCBearerContextReleaseCommand;
-static gint ett_e1ap_BCBearerContextReleaseComplete;
-static gint ett_e1ap_BCBearerContextReleaseRequest;
-static gint ett_e1ap_MCBearerContextSetupRequest;
-static gint ett_e1ap_MCBearerContextSetupResponse;
-static gint ett_e1ap_MCBearerContextSetupFailure;
-static gint ett_e1ap_MCBearerContextModificationRequest;
-static gint ett_e1ap_MCBearerContextModificationResponse;
-static gint ett_e1ap_MCBearerContextModificationFailure;
-static gint ett_e1ap_MCBearerContextModificationRequired;
-static gint ett_e1ap_MCBearerContextModificationConfirm;
-static gint ett_e1ap_MCBearerContextReleaseCommand;
-static gint ett_e1ap_MCBearerContextReleaseComplete;
-static gint ett_e1ap_MCBearerContextReleaseRequest;
-static gint ett_e1ap_MCBearerNotification;
-static gint ett_e1ap_E1AP_PDU;
-static gint ett_e1ap_InitiatingMessage;
-static gint ett_e1ap_SuccessfulOutcome;
-static gint ett_e1ap_UnsuccessfulOutcome;
+static int ett_e1ap_PrivateIE_ID;
+static int ett_e1ap_ProtocolIE_Container;
+static int ett_e1ap_ProtocolIE_Field;
+static int ett_e1ap_ProtocolExtensionContainer;
+static int ett_e1ap_ProtocolExtensionField;
+static int ett_e1ap_PrivateIE_Container;
+static int ett_e1ap_PrivateIE_Field;
+static int ett_e1ap_ActivityInformation;
+static int ett_e1ap_AlternativeQoSParaSetList;
+static int ett_e1ap_AlternativeQoSParaSetItem;
+static int ett_e1ap_BCBearerContextToSetup;
+static int ett_e1ap_BCBearerContextNGU_TNLInfoat5GC;
+static int ett_e1ap_BCMRBSetupConfiguration;
+static int ett_e1ap_BCMRBSetupConfiguration_Item;
+static int ett_e1ap_BCBearerContextToSetupResponse;
+static int ett_e1ap_BCBearerContextNGU_TNLInfoatNGRAN;
+static int ett_e1ap_BCMRBSetupResponseList;
+static int ett_e1ap_BCMRBSetupResponseList_Item;
+static int ett_e1ap_BCBearerContextF1U_TNLInfoatCU;
+static int ett_e1ap_BCMRBFailedList;
+static int ett_e1ap_BCMRBFailedList_Item;
+static int ett_e1ap_BCBearerContextToModify;
+static int ett_e1ap_BCMRBModifyConfiguration;
+static int ett_e1ap_BCMRBModifyConfiguration_Item;
+static int ett_e1ap_BCBearerContextF1U_TNLInfoatDU;
+static int ett_e1ap_BCMRBRemoveConfiguration;
+static int ett_e1ap_BCBearerContextToModifyResponse;
+static int ett_e1ap_BCMRBSetupModifyResponseList;
+static int ett_e1ap_BCMRBSetupModifyResponseList_Item;
+static int ett_e1ap_BCBearerContextToModifyRequired;
+static int ett_e1ap_BCBearerContextToModifyConfirm;
+static int ett_e1ap_Cause;
+static int ett_e1ap_Cell_Group_Information;
+static int ett_e1ap_Cell_Group_Information_Item;
+static int ett_e1ap_CP_TNL_Information;
+static int ett_e1ap_CriticalityDiagnostics;
+static int ett_e1ap_CriticalityDiagnostics_IE_List;
+static int ett_e1ap_CriticalityDiagnostics_IE_List_item;
+static int ett_e1ap_DAPSRequestInfo;
+static int ett_e1ap_Data_Forwarding_Information_Request;
+static int ett_e1ap_Data_Forwarding_Information;
+static int ett_e1ap_DataForwardingtoE_UTRANInformationList;
+static int ett_e1ap_DataForwardingtoE_UTRANInformationListItem;
+static int ett_e1ap_Data_Usage_per_PDU_Session_Report;
+static int ett_e1ap_SEQUENCE_SIZE_1_maxnooftimeperiods_OF_MRDC_Data_Usage_Report_Item;
+static int ett_e1ap_Data_Usage_per_QoS_Flow_List;
+static int ett_e1ap_Data_Usage_per_QoS_Flow_Item;
+static int ett_e1ap_Data_Usage_Report_List;
+static int ett_e1ap_Data_Usage_Report_Item;
+static int ett_e1ap_DLDiscarding;
+static int ett_e1ap_DLUPTNLAddressToUpdateItem;
+static int ett_e1ap_DRB_Activity_List;
+static int ett_e1ap_DRB_Activity_Item;
+static int ett_e1ap_DRB_Confirm_Modified_List_EUTRAN;
+static int ett_e1ap_DRB_Confirm_Modified_Item_EUTRAN;
+static int ett_e1ap_DRB_Confirm_Modified_List_NG_RAN;
+static int ett_e1ap_DRB_Confirm_Modified_Item_NG_RAN;
+static int ett_e1ap_DRB_Failed_List_EUTRAN;
+static int ett_e1ap_DRB_Failed_Item_EUTRAN;
+static int ett_e1ap_DRB_Failed_Mod_List_EUTRAN;
+static int ett_e1ap_DRB_Failed_Mod_Item_EUTRAN;
+static int ett_e1ap_DRB_Failed_List_NG_RAN;
+static int ett_e1ap_DRB_Failed_Item_NG_RAN;
+static int ett_e1ap_DRB_Failed_Mod_List_NG_RAN;
+static int ett_e1ap_DRB_Failed_Mod_Item_NG_RAN;
+static int ett_e1ap_DRB_Failed_To_Modify_List_EUTRAN;
+static int ett_e1ap_DRB_Failed_To_Modify_Item_EUTRAN;
+static int ett_e1ap_DRB_Failed_To_Modify_List_NG_RAN;
+static int ett_e1ap_DRB_Failed_To_Modify_Item_NG_RAN;
+static int ett_e1ap_DRB_Measurement_Results_Information_List;
+static int ett_e1ap_DRB_Measurement_Results_Information_Item;
+static int ett_e1ap_DRB_Modified_List_EUTRAN;
+static int ett_e1ap_DRB_Modified_Item_EUTRAN;
+static int ett_e1ap_DRB_Modified_List_NG_RAN;
+static int ett_e1ap_DRB_Modified_Item_NG_RAN;
+static int ett_e1ap_DRB_Removed_Item;
+static int ett_e1ap_SEQUENCE_SIZE_1_maxnoofQoSFlows_OF_QoS_Flow_Removed_Item;
+static int ett_e1ap_DRB_Required_To_Modify_List_EUTRAN;
+static int ett_e1ap_DRB_Required_To_Modify_Item_EUTRAN;
+static int ett_e1ap_DRB_Required_To_Modify_List_NG_RAN;
+static int ett_e1ap_DRB_Required_To_Modify_Item_NG_RAN;
+static int ett_e1ap_DRB_Setup_List_EUTRAN;
+static int ett_e1ap_DRB_Setup_Item_EUTRAN;
+static int ett_e1ap_DRB_Setup_Mod_List_EUTRAN;
+static int ett_e1ap_DRB_Setup_Mod_Item_EUTRAN;
+static int ett_e1ap_DRB_Setup_List_NG_RAN;
+static int ett_e1ap_DRB_Setup_Item_NG_RAN;
+static int ett_e1ap_DRB_Setup_Mod_List_NG_RAN;
+static int ett_e1ap_DRB_Setup_Mod_Item_NG_RAN;
+static int ett_e1ap_DRB_Status_Item;
+static int ett_e1ap_DRBs_Subject_To_Counter_Check_List_EUTRAN;
+static int ett_e1ap_DRBs_Subject_To_Counter_Check_Item_EUTRAN;
+static int ett_e1ap_DRBs_Subject_To_Counter_Check_List_NG_RAN;
+static int ett_e1ap_DRBs_Subject_To_Counter_Check_Item_NG_RAN;
+static int ett_e1ap_DRBs_Subject_To_Early_Forwarding_List;
+static int ett_e1ap_DRBs_Subject_To_Early_Forwarding_Item;
+static int ett_e1ap_DRB_To_Modify_List_EUTRAN;
+static int ett_e1ap_DRB_To_Modify_Item_EUTRAN;
+static int ett_e1ap_DRB_To_Modify_List_NG_RAN;
+static int ett_e1ap_DRB_To_Modify_Item_NG_RAN;
+static int ett_e1ap_DRB_To_Remove_List_EUTRAN;
+static int ett_e1ap_DRB_To_Remove_Item_EUTRAN;
+static int ett_e1ap_DRB_Required_To_Remove_List_EUTRAN;
+static int ett_e1ap_DRB_Required_To_Remove_Item_EUTRAN;
+static int ett_e1ap_DRB_To_Remove_List_NG_RAN;
+static int ett_e1ap_DRB_To_Remove_Item_NG_RAN;
+static int ett_e1ap_DRB_Required_To_Remove_List_NG_RAN;
+static int ett_e1ap_DRB_Required_To_Remove_Item_NG_RAN;
+static int ett_e1ap_DRB_To_Setup_List_EUTRAN;
+static int ett_e1ap_DRB_To_Setup_Item_EUTRAN;
+static int ett_e1ap_DRB_To_Setup_Mod_List_EUTRAN;
+static int ett_e1ap_DRB_To_Setup_Mod_Item_EUTRAN;
+static int ett_e1ap_DRB_To_Setup_List_NG_RAN;
+static int ett_e1ap_DRB_To_Setup_Item_NG_RAN;
+static int ett_e1ap_DRB_To_Setup_Mod_List_NG_RAN;
+static int ett_e1ap_DRB_To_Setup_Mod_Item_NG_RAN;
+static int ett_e1ap_DRB_Usage_Report_List;
+static int ett_e1ap_DRB_Usage_Report_Item;
+static int ett_e1ap_Dynamic5QIDescriptor;
+static int ett_e1ap_EarlyForwardingCOUNTInfo;
+static int ett_e1ap_EHC_Common_Parameters;
+static int ett_e1ap_EHC_Downlink_Parameters;
+static int ett_e1ap_EHC_Uplink_Parameters;
+static int ett_e1ap_EHC_Parameters;
+static int ett_e1ap_Endpoint_IP_address_and_port;
+static int ett_e1ap_EUTRANAllocationAndRetentionPriority;
+static int ett_e1ap_ECGI;
+static int ett_e1ap_ECGI_Support_List;
+static int ett_e1ap_ECGI_Support_Item;
+static int ett_e1ap_EUTRAN_QoS_Support_List;
+static int ett_e1ap_EUTRAN_QoS_Support_Item;
+static int ett_e1ap_EUTRAN_QoS;
+static int ett_e1ap_ExtendedSliceSupportList;
+static int ett_e1ap_FirstDLCount;
+static int ett_e1ap_F1U_TNL_InfoAdded_List;
+static int ett_e1ap_F1U_TNL_InfoAdded_Item;
+static int ett_e1ap_F1U_TNL_InfoToAdd_List;
+static int ett_e1ap_F1U_TNL_InfoToAdd_Item;
+static int ett_e1ap_F1U_TNL_InfoAddedOrModified_List;
+static int ett_e1ap_F1U_TNL_InfoAddedOrModified_Item;
+static int ett_e1ap_F1U_TNL_InfoToAddOrModify_List;
+static int ett_e1ap_F1U_TNL_InfoToAddOrModify_Item;
+static int ett_e1ap_F1U_TNL_InfoToRelease_List;
+static int ett_e1ap_F1U_TNL_InfoToRelease_Item;
+static int ett_e1ap_GlobalMBSSessionID;
+static int ett_e1ap_Extended_GNB_CU_CP_Name;
+static int ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration;
+static int ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration_Item;
+static int ett_e1ap_GNB_CU_UP_MBS_Support_Info;
+static int ett_e1ap_Extended_GNB_CU_UP_Name;
+static int ett_e1ap_GNB_CU_CP_TNLA_Setup_Item;
+static int ett_e1ap_GNB_CU_CP_TNLA_Failed_To_Setup_Item;
+static int ett_e1ap_GNB_CU_CP_TNLA_To_Add_Item;
+static int ett_e1ap_GNB_CU_CP_TNLA_To_Remove_Item;
+static int ett_e1ap_GNB_CU_CP_TNLA_To_Update_Item;
+static int ett_e1ap_GNB_CU_UP_TNLA_To_Remove_Item;
+static int ett_e1ap_GBR_QosInformation;
+static int ett_e1ap_GBR_QoSFlowInformation;
+static int ett_e1ap_GTPTLAs;
+static int ett_e1ap_GTPTLA_Item;
+static int ett_e1ap_GTPTunnel;
+static int ett_e1ap_HW_CapacityIndicator;
+static int ett_e1ap_ImmediateMDT;
+static int ett_e1ap_IAB_Donor_CU_UPPSKInfo_Item;
+static int ett_e1ap_LocationDependentMBSNGUInformationAt5GC;
+static int ett_e1ap_LocationDependentMBSNGUInformationAt5GC_Item;
+static int ett_e1ap_LocationDependentMBSF1UInformationAtCU;
+static int ett_e1ap_LocationDependentMBSF1UInformationAtCU_Item;
+static int ett_e1ap_LocationDependentMBSF1UInformationAtDU;
+static int ett_e1ap_LocationDependentMBSF1UInformationAtDU_Item;
+static int ett_e1ap_LocationDependentMBSNGUInformationAtNGRAN;
+static int ett_e1ap_LocationDependentMBSNGUInformationAtNGRAN_Item;
+static int ett_e1ap_MaximumIPdatarate;
+static int ett_e1ap_MBSF1UInformationAtCU;
+static int ett_e1ap_MBSF1UInformationAtDU;
+static int ett_e1ap_MBSNGUInformationAt5GC;
+static int ett_e1ap_MBSNGUInformationAt5GC_Multicast;
+static int ett_e1ap_MBSNGUInformationAtNGRAN;
+static int ett_e1ap_MBSSessionAssociatedInfoNonSupportToSupport;
+static int ett_e1ap_MBSSessionAssociatedInformation;
+static int ett_e1ap_MBSSessionAssociatedInformationList;
+static int ett_e1ap_MBSSessionAssociatedInformation_Item;
+static int ett_e1ap_MBS_Support_Info_ToAdd_List;
+static int ett_e1ap_MBS_Support_Info_ToAdd_Item;
+static int ett_e1ap_MBS_Support_Info_ToRemove_List;
+static int ett_e1ap_MBSSessionResourceNotification;
+static int ett_e1ap_MBS_DL_Data_Arrival;
+static int ett_e1ap_MCBearerContext_Inactivity;
+static int ett_e1ap_MBS_Support_Info_ToRemove_Item;
+static int ett_e1ap_MCBearerContextToSetup;
+static int ett_e1ap_MCMRBSetupConfiguration;
+static int ett_e1ap_MCMRBSetupConfiguration_Item;
+static int ett_e1ap_MCBearerContextToSetupResponse;
+static int ett_e1ap_MCBearerContextNGU_TNLInfoatNGRAN;
+static int ett_e1ap_MCMRBSetupResponseList;
+static int ett_e1ap_MCMRBSetupResponseList_Item;
+static int ett_e1ap_MCMRBFailedList;
+static int ett_e1ap_MCMRBFailedList_Item;
+static int ett_e1ap_MCBearerContextToModify;
+static int ett_e1ap_MCBearerContextNGUTNLInfoat5GC;
+static int ett_e1ap_MCBearerContextNGUTnlInfoatNGRANRequest;
+static int ett_e1ap_MCMRBSetupModifyConfiguration;
+static int ett_e1ap_MCMRBSetupModifyConfiguration_Item;
+static int ett_e1ap_MCBearerContextF1UTNLInfoatDU;
+static int ett_e1ap_MBSMulticastF1UContextDescriptor;
+static int ett_e1ap_MCMRBRemoveConfiguration;
+static int ett_e1ap_MCBearerContextToModifyResponse;
+static int ett_e1ap_MCBearerContextNGU_TNLInfoatNGRANModifyResponse;
+static int ett_e1ap_MCMRBSetupModifyResponseList;
+static int ett_e1ap_MCMRBSetupModifyResponseList_Item;
+static int ett_e1ap_MCBearerContextToModifyRequired;
+static int ett_e1ap_MCMRBModifyRequiredConfiguration;
+static int ett_e1ap_MCMRBModifyRequiredConfiguration_Item;
+static int ett_e1ap_MCBearerContextToModifyConfirm;
+static int ett_e1ap_MCMRBModifyConfirmList;
+static int ett_e1ap_MCMRBModifyConfirmList_Item;
+static int ett_e1ap_MCForwardingResourceRequest;
+static int ett_e1ap_MRBForwardingResourceRequestList;
+static int ett_e1ap_MRBForwardingResourceRequest_Item;
+static int ett_e1ap_MCForwardingResourceIndication;
+static int ett_e1ap_MRBForwardingResourceIndicationList;
+static int ett_e1ap_MRBForwardingResourceIndication_Item;
+static int ett_e1ap_MCForwardingResourceResponse;
+static int ett_e1ap_MRBForwardingResourceResponseList;
+static int ett_e1ap_MRBForwardingResourceResponse_Item;
+static int ett_e1ap_MCForwardingResourceRelease;
+static int ett_e1ap_MCForwardingResourceReleaseIndication;
+static int ett_e1ap_MRB_ProgressInformation;
+static int ett_e1ap_MRB_ProgressInformationSNs;
+static int ett_e1ap_MRDC_Data_Usage_Report_Item;
+static int ett_e1ap_MRDC_Usage_Information;
+static int ett_e1ap_M4Configuration;
+static int ett_e1ap_M6Configuration;
+static int ett_e1ap_M7Configuration;
+static int ett_e1ap_MDT_Configuration;
+static int ett_e1ap_MDTMode;
+static int ett_e1ap_MDTPLMNList;
+static int ett_e1ap_MDTPLMNModificationList;
+static int ett_e1ap_NGRANAllocationAndRetentionPriority;
+static int ett_e1ap_NG_RAN_QoS_Support_List;
+static int ett_e1ap_NG_RAN_QoS_Support_Item;
+static int ett_e1ap_Non_Dynamic5QIDescriptor;
+static int ett_e1ap_NPNSupportInfo;
+static int ett_e1ap_NPNSupportInfo_SNPN;
+static int ett_e1ap_NPNContextInfo;
+static int ett_e1ap_NPNContextInfo_SNPN;
+static int ett_e1ap_NR_CGI;
+static int ett_e1ap_NR_CGI_Support_List;
+static int ett_e1ap_NR_CGI_Support_Item;
+static int ett_e1ap_Extended_NR_CGI_Support_List;
+static int ett_e1ap_Extended_NR_CGI_Support_Item;
+static int ett_e1ap_PacketErrorRate;
+static int ett_e1ap_PDCP_Configuration;
+static int ett_e1ap_PDCP_Count;
+static int ett_e1ap_PDU_Session_Resource_Data_Usage_List;
+static int ett_e1ap_PDU_Session_Resource_Data_Usage_Item;
+static int ett_e1ap_PDCP_SN_Status_Information;
+static int ett_e1ap_DRBBStatusTransfer;
+static int ett_e1ap_PDU_Session_Resource_Activity_List;
+static int ett_e1ap_PDU_Session_Resource_Activity_Item;
+static int ett_e1ap_PDU_Session_Resource_Confirm_Modified_List;
+static int ett_e1ap_PDU_Session_Resource_Confirm_Modified_Item;
+static int ett_e1ap_PDU_Session_Resource_Failed_List;
+static int ett_e1ap_PDU_Session_Resource_Failed_Item;
+static int ett_e1ap_PDU_Session_Resource_Failed_Mod_List;
+static int ett_e1ap_PDU_Session_Resource_Failed_Mod_Item;
+static int ett_e1ap_PDU_Session_Resource_Failed_To_Modify_List;
+static int ett_e1ap_PDU_Session_Resource_Failed_To_Modify_Item;
+static int ett_e1ap_PDU_Session_Resource_Modified_List;
+static int ett_e1ap_PDU_Session_Resource_Modified_Item;
+static int ett_e1ap_PDU_Session_Resource_Required_To_Modify_List;
+static int ett_e1ap_PDU_Session_Resource_Required_To_Modify_Item;
+static int ett_e1ap_PDU_Session_Resource_Setup_List;
+static int ett_e1ap_PDU_Session_Resource_Setup_Item;
+static int ett_e1ap_PDU_Session_Resource_Setup_Mod_List;
+static int ett_e1ap_PDU_Session_Resource_Setup_Mod_Item;
+static int ett_e1ap_PDU_Session_Resource_To_Modify_List;
+static int ett_e1ap_PDU_Session_Resource_To_Modify_Item;
+static int ett_e1ap_PDU_Session_Resource_To_Remove_List;
+static int ett_e1ap_PDU_Session_Resource_To_Remove_Item;
+static int ett_e1ap_PDU_Session_Resource_To_Setup_List;
+static int ett_e1ap_PDU_Session_Resource_To_Setup_Item;
+static int ett_e1ap_PDU_Session_Resource_To_Setup_Mod_List;
+static int ett_e1ap_PDU_Session_Resource_To_Setup_Mod_Item;
+static int ett_e1ap_PDU_Session_To_Notify_List;
+static int ett_e1ap_PDU_Session_To_Notify_Item;
+static int ett_e1ap_QoS_Characteristics;
+static int ett_e1ap_QoS_Flow_List;
+static int ett_e1ap_QoS_Flow_Item;
+static int ett_e1ap_QoS_Flow_Failed_List;
+static int ett_e1ap_QoS_Flow_Failed_Item;
+static int ett_e1ap_QoS_Flow_Mapping_List;
+static int ett_e1ap_QoS_Flow_Mapping_Item;
+static int ett_e1ap_QoS_Parameters_Support_List;
+static int ett_e1ap_QoS_Flow_QoS_Parameter_List;
+static int ett_e1ap_QoS_Flow_QoS_Parameter_Item;
+static int ett_e1ap_QoSFlowLevelQoSParameters;
+static int ett_e1ap_QoS_Flow_Removed_Item;
+static int ett_e1ap_QoS_Flows_to_be_forwarded_List;
+static int ett_e1ap_QoS_Flows_to_be_forwarded_Item;
+static int ett_e1ap_QoS_Mapping_Information;
+static int ett_e1ap_DataForwardingtoNG_RANQoSFlowInformationList;
+static int ett_e1ap_DataForwardingtoNG_RANQoSFlowInformationList_Item;
+static int ett_e1ap_RedundantPDUSessionInformation;
+static int ett_e1ap_RetainabilityMeasurementsInfo;
+static int ett_e1ap_ROHC_Parameters;
+static int ett_e1ap_ROHC;
+static int ett_e1ap_SecurityAlgorithm;
+static int ett_e1ap_SecurityIndication;
+static int ett_e1ap_SecurityInformation;
+static int ett_e1ap_SecurityResult;
+static int ett_e1ap_Slice_Support_List;
+static int ett_e1ap_Slice_Support_Item;
+static int ett_e1ap_SNSSAI;
+static int ett_e1ap_SDAP_Configuration;
+static int ett_e1ap_TNL_AvailableCapacityIndicator;
+static int ett_e1ap_TSCTrafficCharacteristics;
+static int ett_e1ap_TSCTrafficInformation;
+static int ett_e1ap_TraceActivation;
+static int ett_e1ap_T_ReorderingTimer;
+static int ett_e1ap_Transport_Layer_Address_Info;
+static int ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Add_List;
+static int ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Add_Item;
+static int ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Remove_List;
+static int ett_e1ap_Transport_UP_Layer_Addresses_Info_To_Remove_Item;
+static int ett_e1ap_UDC_Parameters;
+static int ett_e1ap_UE_associatedLogicalE1_ConnectionItem;
+static int ett_e1ap_UESliceMaximumBitRateList;
+static int ett_e1ap_UESliceMaximumBitRateItem;
+static int ett_e1ap_ULUPTNLAddressToUpdateItem;
+static int ett_e1ap_UP_Parameters;
+static int ett_e1ap_UP_Parameters_Item;
+static int ett_e1ap_UPSecuritykey;
+static int ett_e1ap_UP_TNL_Information;
+static int ett_e1ap_UplinkOnlyROHC;
+static int ett_e1ap_Reset;
+static int ett_e1ap_ResetType;
+static int ett_e1ap_UE_associatedLogicalE1_ConnectionListRes;
+static int ett_e1ap_ResetAcknowledge;
+static int ett_e1ap_UE_associatedLogicalE1_ConnectionListResAck;
+static int ett_e1ap_ErrorIndication;
+static int ett_e1ap_GNB_CU_UP_E1SetupRequest;
+static int ett_e1ap_SupportedPLMNs_List;
+static int ett_e1ap_SupportedPLMNs_Item;
+static int ett_e1ap_GNB_CU_UP_E1SetupResponse;
+static int ett_e1ap_GNB_CU_UP_E1SetupFailure;
+static int ett_e1ap_GNB_CU_CP_E1SetupRequest;
+static int ett_e1ap_GNB_CU_CP_E1SetupResponse;
+static int ett_e1ap_GNB_CU_CP_E1SetupFailure;
+static int ett_e1ap_GNB_CU_UP_ConfigurationUpdate;
+static int ett_e1ap_GNB_CU_UP_TNLA_To_Remove_List;
+static int ett_e1ap_GNB_CU_UP_ConfigurationUpdateAcknowledge;
+static int ett_e1ap_GNB_CU_UP_ConfigurationUpdateFailure;
+static int ett_e1ap_GNB_CU_CP_ConfigurationUpdate;
+static int ett_e1ap_GNB_CU_CP_TNLA_To_Add_List;
+static int ett_e1ap_GNB_CU_CP_TNLA_To_Remove_List;
+static int ett_e1ap_GNB_CU_CP_TNLA_To_Update_List;
+static int ett_e1ap_GNB_CU_CP_ConfigurationUpdateAcknowledge;
+static int ett_e1ap_GNB_CU_CP_TNLA_Setup_List;
+static int ett_e1ap_GNB_CU_CP_TNLA_Failed_To_Setup_List;
+static int ett_e1ap_GNB_CU_CP_ConfigurationUpdateFailure;
+static int ett_e1ap_E1ReleaseRequest;
+static int ett_e1ap_E1ReleaseResponse;
+static int ett_e1ap_BearerContextSetupRequest;
+static int ett_e1ap_System_BearerContextSetupRequest;
+static int ett_e1ap_BearerContextSetupResponse;
+static int ett_e1ap_System_BearerContextSetupResponse;
+static int ett_e1ap_BearerContextSetupFailure;
+static int ett_e1ap_BearerContextModificationRequest;
+static int ett_e1ap_System_BearerContextModificationRequest;
+static int ett_e1ap_BearerContextModificationResponse;
+static int ett_e1ap_System_BearerContextModificationResponse;
+static int ett_e1ap_BearerContextModificationFailure;
+static int ett_e1ap_BearerContextModificationRequired;
+static int ett_e1ap_System_BearerContextModificationRequired;
+static int ett_e1ap_BearerContextModificationConfirm;
+static int ett_e1ap_System_BearerContextModificationConfirm;
+static int ett_e1ap_BearerContextReleaseCommand;
+static int ett_e1ap_BearerContextReleaseComplete;
+static int ett_e1ap_BearerContextReleaseRequest;
+static int ett_e1ap_DRB_Status_List;
+static int ett_e1ap_BearerContextInactivityNotification;
+static int ett_e1ap_DLDataNotification;
+static int ett_e1ap_ULDataNotification;
+static int ett_e1ap_DataUsageReport;
+static int ett_e1ap_GNB_CU_UP_CounterCheckRequest;
+static int ett_e1ap_System_GNB_CU_UP_CounterCheckRequest;
+static int ett_e1ap_GNB_CU_UP_StatusIndication;
+static int ett_e1ap_GNB_CU_CPMeasurementResultsInformation;
+static int ett_e1ap_MRDC_DataUsageReport;
+static int ett_e1ap_TraceStart;
+static int ett_e1ap_DeactivateTrace;
+static int ett_e1ap_CellTrafficTrace;
+static int ett_e1ap_PrivateMessage;
+static int ett_e1ap_ResourceStatusRequest;
+static int ett_e1ap_ResourceStatusResponse;
+static int ett_e1ap_ResourceStatusFailure;
+static int ett_e1ap_ResourceStatusUpdate;
+static int ett_e1ap_IAB_UPTNLAddressUpdate;
+static int ett_e1ap_DLUPTNLAddressToUpdateList;
+static int ett_e1ap_IAB_UPTNLAddressUpdateAcknowledge;
+static int ett_e1ap_ULUPTNLAddressToUpdateList;
+static int ett_e1ap_IAB_UPTNLAddressUpdateFailure;
+static int ett_e1ap_EarlyForwardingSNTransfer;
+static int ett_e1ap_IABPSKNotification;
+static int ett_e1ap_IAB_Donor_CU_UPPSKInfo;
+static int ett_e1ap_BCBearerContextSetupRequest;
+static int ett_e1ap_BCBearerContextSetupResponse;
+static int ett_e1ap_BCBearerContextSetupFailure;
+static int ett_e1ap_BCBearerContextModificationRequest;
+static int ett_e1ap_BCBearerContextModificationResponse;
+static int ett_e1ap_BCBearerContextModificationFailure;
+static int ett_e1ap_BCBearerContextModificationRequired;
+static int ett_e1ap_BCBearerContextModificationConfirm;
+static int ett_e1ap_BCBearerContextReleaseCommand;
+static int ett_e1ap_BCBearerContextReleaseComplete;
+static int ett_e1ap_BCBearerContextReleaseRequest;
+static int ett_e1ap_MCBearerContextSetupRequest;
+static int ett_e1ap_MCBearerContextSetupResponse;
+static int ett_e1ap_MCBearerContextSetupFailure;
+static int ett_e1ap_MCBearerContextModificationRequest;
+static int ett_e1ap_MCBearerContextModificationResponse;
+static int ett_e1ap_MCBearerContextModificationFailure;
+static int ett_e1ap_MCBearerContextModificationRequired;
+static int ett_e1ap_MCBearerContextModificationConfirm;
+static int ett_e1ap_MCBearerContextReleaseCommand;
+static int ett_e1ap_MCBearerContextReleaseComplete;
+static int ett_e1ap_MCBearerContextReleaseRequest;
+static int ett_e1ap_MCBearerNotification;
+static int ett_e1ap_E1AP_PDU;
+static int ett_e1ap_InitiatingMessage;
+static int ett_e1ap_SuccessfulOutcome;
+static int ett_e1ap_UnsuccessfulOutcome;
enum{
INITIATING_MESSAGE,
@@ -1924,6 +1966,26 @@ static const value_string e1ap_ProtocolIE_ID_vals[] = {
{ id_MBSSessionResourceNotification, "id-MBSSessionResourceNotification" },
{ id_MCBearerContextInactivityTimer, "id-MCBearerContextInactivityTimer" },
{ id_MCBearerContextStatusChange, "id-MCBearerContextStatusChange" },
+ { id_Unknown_194, "id-Unknown-194" },
+ { id_Unknown_195, "id-Unknown-195" },
+ { id_Unknown_196, "id-Unknown-196" },
+ { id_Unknown_197, "id-Unknown-197" },
+ { id_Unknown_198, "id-Unknown-198" },
+ { id_Unknown_199, "id-Unknown-199" },
+ { id_Unknown_200, "id-Unknown-200" },
+ { id_Unknown_201, "id-Unknown-201" },
+ { id_Unknown_202, "id-Unknown-202" },
+ { id_Unknown_203, "id-Unknown-203" },
+ { id_Unknown_204, "id-Unknown-204" },
+ { id_Unknown_205, "id-Unknown-205" },
+ { id_Unknown_206, "id-Unknown-206" },
+ { id_Unknown_207, "id-Unknown-207" },
+ { id_F1U_TNL_InfoToAdd_List, "id-F1U-TNL-InfoToAdd-List" },
+ { id_F1U_TNL_InfoAdded_List, "id-F1U-TNL-InfoAdded-List" },
+ { id_F1U_TNL_InfoToAddOrModify_List, "id-F1U-TNL-InfoToAddOrModify-List" },
+ { id_F1U_TNL_InfoAddedOrModified_List, "id-F1U-TNL-InfoAddedOrModified-List" },
+ { id_F1U_TNL_InfoToRelease_List, "id-F1U-TNL-InfoToRelease-List" },
+ { id_BroadcastF1U_ContextReferenceE1, "id-BroadcastF1U-ContextReferenceE1" },
{ 0, NULL }
};
@@ -2333,7 +2395,7 @@ dissect_e1ap_INTEGER_1_8_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_e1ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+ 0U, UINT64_C(4000000000000), NULL, TRUE);
return offset;
}
@@ -4037,6 +4099,16 @@ dissect_e1ap_BCBearerContextToModifyResponse(tvbuff_t *tvb _U_, int offset _U_,
}
+
+static int
+dissect_e1ap_BroadcastF1U_ContextReferenceE1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 4, 4, FALSE, NULL);
+
+ return offset;
+}
+
+
static const per_sequence_t BCBearerContextToModifyRequired_sequence[] = {
{ &hf_e1ap_bcMRBToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_BCMRBRemoveConfiguration },
{ &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
@@ -4614,7 +4686,7 @@ dissect_e1ap_T_endTimeStamp_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_e1ap_INTEGER_0_18446744073709551615(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(18446744073709551615), NULL, FALSE);
+ 0U, UINT64_C(18446744073709551615), NULL, FALSE);
return offset;
}
@@ -6666,6 +6738,154 @@ dissect_e1ap_ExtendedSliceSupportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
}
+static const per_sequence_t F1U_TNL_InfoAdded_Item_sequence[] = {
+ { &hf_e1ap_broadcastF1U_ContextReferenceE1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BroadcastF1U_ContextReferenceE1 },
+ { &hf_e1ap_bcBearerContextF1U_TNLInfoatCU, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BCBearerContextF1U_TNLInfoatCU },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoAdded_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoAdded_Item, F1U_TNL_InfoAdded_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoAdded_List_sequence_of[1] = {
+ { &hf_e1ap_F1U_TNL_InfoAdded_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_F1U_TNL_InfoAdded_Item },
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoAdded_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoAdded_List, F1U_TNL_InfoAdded_List_sequence_of,
+ 1, maxnoofDUs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoToAdd_Item_sequence[] = {
+ { &hf_e1ap_broadcastF1U_ContextReferenceE1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BroadcastF1U_ContextReferenceE1 },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoToAdd_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoToAdd_Item, F1U_TNL_InfoToAdd_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoToAdd_List_sequence_of[1] = {
+ { &hf_e1ap_F1U_TNL_InfoToAdd_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_F1U_TNL_InfoToAdd_Item },
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoToAdd_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoToAdd_List, F1U_TNL_InfoToAdd_List_sequence_of,
+ 1, maxnoofDUs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoAddedOrModified_Item_sequence[] = {
+ { &hf_e1ap_broadcastF1U_ContextReferenceE1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BroadcastF1U_ContextReferenceE1 },
+ { &hf_e1ap_bcBearerContextF1U_TNLInfoatCU, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_BCBearerContextF1U_TNLInfoatCU },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoAddedOrModified_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoAddedOrModified_Item, F1U_TNL_InfoAddedOrModified_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoAddedOrModified_List_sequence_of[1] = {
+ { &hf_e1ap_F1U_TNL_InfoAddedOrModified_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_F1U_TNL_InfoAddedOrModified_Item },
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoAddedOrModified_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoAddedOrModified_List, F1U_TNL_InfoAddedOrModified_List_sequence_of,
+ 1, maxnoofDUs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoToAddOrModify_Item_sequence[] = {
+ { &hf_e1ap_broadcastF1U_ContextReferenceE1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BroadcastF1U_ContextReferenceE1 },
+ { &hf_e1ap_bcBearerContextF1U_TNLInfoatDU, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_BCBearerContextF1U_TNLInfoatDU },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoToAddOrModify_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoToAddOrModify_Item, F1U_TNL_InfoToAddOrModify_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoToAddOrModify_List_sequence_of[1] = {
+ { &hf_e1ap_F1U_TNL_InfoToAddOrModify_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_F1U_TNL_InfoToAddOrModify_Item },
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoToAddOrModify_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoToAddOrModify_List, F1U_TNL_InfoToAddOrModify_List_sequence_of,
+ 1, maxnoofDUs, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoToRelease_Item_sequence[] = {
+ { &hf_e1ap_broadcastF1U_ContextReferenceE1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_e1ap_BroadcastF1U_ContextReferenceE1 },
+ { &hf_e1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_e1ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoToRelease_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoToRelease_Item, F1U_TNL_InfoToRelease_Item_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t F1U_TNL_InfoToRelease_List_sequence_of[1] = {
+ { &hf_e1ap_F1U_TNL_InfoToRelease_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_e1ap_F1U_TNL_InfoToRelease_Item },
+};
+
+static int
+dissect_e1ap_F1U_TNL_InfoToRelease_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_e1ap_F1U_TNL_InfoToRelease_List, F1U_TNL_InfoToRelease_List_sequence_of,
+ 1, maxnoofDUs, FALSE);
+
+ return offset;
+}
+
+
static int
dissect_e1ap_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -6784,7 +7004,7 @@ dissect_e1ap_GNB_CU_UP_Capacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_e1ap_GNB_CU_UP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(68719476735), NULL, FALSE);
+ 0U, UINT64_C(68719476735), NULL, FALSE);
return offset;
}
@@ -7092,7 +7312,7 @@ dissect_e1ap_GNB_CU_UP_OverloadInformation(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_e1ap_GNB_DU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(68719476735), NULL, FALSE);
+ 0U, UINT64_C(68719476735), NULL, FALSE);
return offset;
}
@@ -12233,6 +12453,46 @@ static int dissect_ExtendedSliceSupportList_PDU(tvbuff_t *tvb _U_, packet_info *
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_F1U_TNL_InfoAdded_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_F1U_TNL_InfoAdded_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_F1U_TNL_InfoAdded_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1U_TNL_InfoToAdd_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_F1U_TNL_InfoToAdd_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_F1U_TNL_InfoToAdd_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1U_TNL_InfoAddedOrModified_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_F1U_TNL_InfoAddedOrModified_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_F1U_TNL_InfoAddedOrModified_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1U_TNL_InfoToAddOrModify_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_F1U_TNL_InfoToAddOrModify_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_F1U_TNL_InfoToAddOrModify_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
+static int dissect_F1U_TNL_InfoToRelease_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_e1ap_F1U_TNL_InfoToRelease_List(tvb, offset, &asn1_ctx, tree, hf_e1ap_F1U_TNL_InfoToRelease_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_GlobalMBSSessionID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -14234,6 +14494,26 @@ void proto_register_e1ap(void) {
{ "ExtendedSliceSupportList", "e1ap.ExtendedSliceSupportList",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoAdded_List_PDU,
+ { "F1U-TNL-InfoAdded-List", "e1ap.F1U_TNL_InfoAdded_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoToAdd_List_PDU,
+ { "F1U-TNL-InfoToAdd-List", "e1ap.F1U_TNL_InfoToAdd_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoAddedOrModified_List_PDU,
+ { "F1U-TNL-InfoAddedOrModified-List", "e1ap.F1U_TNL_InfoAddedOrModified_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoToAddOrModify_List_PDU,
+ { "F1U-TNL-InfoToAddOrModify-List", "e1ap.F1U_TNL_InfoToAddOrModify_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoToRelease_List_PDU,
+ { "F1U-TNL-InfoToRelease-List", "e1ap.F1U_TNL_InfoToRelease_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
{ &hf_e1ap_GlobalMBSSessionID_PDU,
{ "GlobalMBSSessionID", "e1ap.GlobalMBSSessionID_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -15850,6 +16130,30 @@ void proto_register_e1ap(void) {
{ "firstDLCountVal", "e1ap.firstDLCountVal_element",
FT_NONE, BASE_NONE, NULL, 0,
"PDCP_Count", HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoAdded_List_item,
+ { "F1U-TNL-InfoAdded-Item", "e1ap.F1U_TNL_InfoAdded_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_broadcastF1U_ContextReferenceE1,
+ { "broadcastF1U-ContextReferenceE1", "e1ap.broadcastF1U_ContextReferenceE1",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoToAdd_List_item,
+ { "F1U-TNL-InfoToAdd-Item", "e1ap.F1U_TNL_InfoToAdd_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoAddedOrModified_List_item,
+ { "F1U-TNL-InfoAddedOrModified-Item", "e1ap.F1U_TNL_InfoAddedOrModified_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoToAddOrModify_List_item,
+ { "F1U-TNL-InfoToAddOrModify-Item", "e1ap.F1U_TNL_InfoToAddOrModify_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_e1ap_F1U_TNL_InfoToRelease_List_item,
+ { "F1U-TNL-InfoToRelease-Item", "e1ap.F1U_TNL_InfoToRelease_Item_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_e1ap_tmgi,
{ "tmgi", "e1ap.tmgi",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -17287,6 +17591,16 @@ void proto_register_e1ap(void) {
&ett_e1ap_EUTRAN_QoS,
&ett_e1ap_ExtendedSliceSupportList,
&ett_e1ap_FirstDLCount,
+ &ett_e1ap_F1U_TNL_InfoAdded_List,
+ &ett_e1ap_F1U_TNL_InfoAdded_Item,
+ &ett_e1ap_F1U_TNL_InfoToAdd_List,
+ &ett_e1ap_F1U_TNL_InfoToAdd_Item,
+ &ett_e1ap_F1U_TNL_InfoAddedOrModified_List,
+ &ett_e1ap_F1U_TNL_InfoAddedOrModified_Item,
+ &ett_e1ap_F1U_TNL_InfoToAddOrModify_List,
+ &ett_e1ap_F1U_TNL_InfoToAddOrModify_Item,
+ &ett_e1ap_F1U_TNL_InfoToRelease_List,
+ &ett_e1ap_F1U_TNL_InfoToRelease_Item,
&ett_e1ap_GlobalMBSSessionID,
&ett_e1ap_Extended_GNB_CU_CP_Name,
&ett_e1ap_GNB_CU_UP_CellGroupRelatedConfiguration,
@@ -17796,6 +18110,11 @@ proto_reg_handoff_e1ap(void)
dissector_add_uint("e1ap.extension", id_Secondary_PDU_Session_Data_Forwarding_Information, create_dissector_handle(dissect_Data_Forwarding_Information_PDU, proto_e1ap));
dissector_add_uint("e1ap.extension", id_MCBearerContextInactivityTimer, create_dissector_handle(dissect_Inactivity_Timer_PDU, proto_e1ap));
dissector_add_uint("e1ap.extension", id_MCBearerContextStatusChange, create_dissector_handle(dissect_MCBearerContextStatusChange_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.extension", id_F1U_TNL_InfoToAdd_List, create_dissector_handle(dissect_F1U_TNL_InfoToAdd_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.extension", id_F1U_TNL_InfoAdded_List, create_dissector_handle(dissect_F1U_TNL_InfoAdded_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.extension", id_F1U_TNL_InfoToAddOrModify_List, create_dissector_handle(dissect_F1U_TNL_InfoToAddOrModify_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.extension", id_F1U_TNL_InfoAddedOrModified_List, create_dissector_handle(dissect_F1U_TNL_InfoAddedOrModified_List_PDU, proto_e1ap));
+ dissector_add_uint("e1ap.extension", id_F1U_TNL_InfoToRelease_List, create_dissector_handle(dissect_F1U_TNL_InfoToRelease_List_PDU, proto_e1ap));
dissector_add_uint("e1ap.proc.imsg", id_reset, create_dissector_handle(dissect_Reset_PDU, proto_e1ap));
dissector_add_uint("e1ap.proc.sout", id_reset, create_dissector_handle(dissect_ResetAcknowledge_PDU, proto_e1ap));
dissector_add_uint("e1ap.proc.imsg", id_errorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_e1ap));
diff --git a/epan/dissectors/packet-e212.c b/epan/dissectors/packet-e212.c
index 7662583a88..b4ed5c3f76 100644
--- a/epan/dissectors/packet-e212.c
+++ b/epan/dissectors/packet-e212.c
@@ -26,7 +26,7 @@ void proto_register_e212(void);
/*
* Annexes to ITU Operational Bulletin
* No. 1117 - 1.II.2017 (List of Mobile Country Codes)
- * No. 1162 - 15.XII.2018 (Mobile Network Codes)
+ * No. 1280 - 15.XI.2023 (Mobile Network Codes)
*
* With Amendment No. 1 (T-SP-OB 1164 - 15.I.2019) up to and
* including Amendment No. 34 (T-SP-OB 1198 - 15.VI.2020)
@@ -874,54 +874,71 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 20214, "CYTA (HELLAS)" },
{ 20215, "BWS" },
{ 20216, "INTER TELECOM" },
+ { 20400, "Intovoice B.V." },
{ 20401, "RadioAccess Network Services B.V." },
- { 20402, "Tele2 Nederland B.V." },
+ { 20402, "T-Mobile Netherlands B.V." },
{ 20403, "Voiceworks B.V." },
{ 20404, "Vodafone Libertel B.V." },
{ 20405, "Elephant Talk Communications Premium Rate Services" },
- { 20406, "Mundio Mobile (Netherlands) Ltd" },
- { 20407, "Teleena Holding B.V." },
- { 20408, "KPN Mobile The Netherlands B.V." },
+ { 20406, "Private Mobility Nederland B.V." },
+ { 20407, "Tata Communications MOVE B.V." },
+ { 20408, "KPN B.V." },
{ 20409, "Lycamobile Netherlands Limited" },
{ 20410, "KPN B.V." },
+ { 20411, "Greenet Netwerk B.V." },
{ 20412, "KPN B.V." },
{ 20413, "Unica Installatietechniek B.V." },
+ { 20414, "Venus & Mercury Telecom" },
{ 20415, "Ziggo B.V." },
{ 20416, "T-Mobile Netherlands B.V." },
- { 20417, "Intercity Mobile Communications B.V." },
- { 20418, "UPC Nederland B.V." },
+ { 20417, "Lebara Ltd" },
+ { 20418, "Ziggo Services B.V." },
{ 20419, "Mixe Communication Solutions B.V." },
{ 20420, "T-Mobile Netherlands B.V." },
{ 20421, "ProRail B.V." },
{ 20422, "Ministerie van Defensie" },
- { 20423, "ASpider Solutions Nederland B.V." },
- { 20424, "Private Mobility Nederland B.V." },
- { 20425, "CAPX B.V." },
+ { 20423, "KORE Wireless Nederland B.V." },
+ { 20424, "PM Factory B.V." },
+ { 20425, "CapX Nederland" },
{ 20426, "SpeakUp B.V." },
+ { 20427, "L-Mobi Mobile B.V." },
{ 20428, "Lancelot B.V." },
- { 20429, "Private Mobile Ltd" },
+ { 20429, "Tismi B.V." },
+ { 20430, "ASpider Solutions Nederland B.V." },
+ { 20432, "Cubic Telecom Limited" },
+ { 20433, "Truphone B.V." },
{ 20460, "Nextgen Mobile Ltd" },
- { 20461, "BodyTrace Netherlands B.V." },
+ { 20461, "Alcadis B.V." },
+ { 20462, "RGTN Wholesale Netherlands B.V." },
+ { 20463, "Messagebird BV" },
{ 20464, "Zetacom B.V." },
{ 20465, "AGMS Nederland B.V." },
{ 20466, "Utility Connect B.V." },
{ 20467, "RadioAccess B.V." },
{ 20468, "Roamware (Netherlands) B.V." },
- { 20469, "KPN Mobile The Netherlands B.V." },
+ { 20469, "KPN B.V." },
+ { 20491, "Enexis Netbeheer B.V." },
{ 20601, "Proximus" },
{ 20602, "N.M.B.S" },
+ { 20603, "Citymesh" },
+ { 20604, "MWINGZ (Proximus/Orange Belgium)" },
{ 20605, "Telenet" },
{ 20606, "Lycamobile sprl" },
{ 20607, "Mundio Mobile Belgium nv" },
{ 20608, "Nethys" },
{ 20610, "Orange Belgium" },
+ { 20611, "L-Mobi Mobile" },
{ 20620, "Telenet Group" },
+ { 20622, "FEBO Telecom" },
{ 20625, "Voyacom" },
{ 20628, "BICS SA" },
+ { 20629, "TISMI" },
{ 20630, "Unleashed" },
{ 20633, "Ericsson *test use only*" },
+ { 20634, "ONOFFAPP" },
{ 20650, "IP Nexia" },
- { 20801, "Orange" },
+ { 20699, "e-BO Enterprises" },
+ { 20801, "Orange" }, /* Annex E: MSIN range 0100000000-0199999999 are Orange/Monoco Télécom */
{ 20802, "Orange" },
{ 20803, "MobiquiThings" },
{ 20804, "Sisteer" },
@@ -932,35 +949,42 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 20809, "Société Française du Radiotéléphone" },
{ 20810, "Société Française du Radiotéléphone" },
{ 20811, "Société Française du Radiotéléphone" },
+ { 20812, "Truphone France" },
{ 20813, "Société Française du Radiotéléphone" },
{ 20814, "RFF" },
{ 20815, "Free Mobile" },
{ 20816, "Free Mobile" },
{ 20817, "Legos" },
- { 20819, "Altitude Infrastructure" },
+ { 20819, "Haute-Garonne numérique" },
{ 20820, "Bouygues Telecom" },
{ 20821, "Bouygues Telecom" },
{ 20822, "Transatel" },
{ 20823, "Syndicat mixte ouvert Charente Numérique" },
{ 20824, "MobiquiThings" },
{ 20825, "Lycamobile" },
- { 20826, "Euro-Information telecom" },
+ { 20826, "Bouygues Telecom Business - Distribution" },
{ 20827, "Coriolis Telecom" },
- { 20828, "Airbus defense ans space SAS" },
+ { 20828, "Airmob Infra Full" },
{ 20829, "Cubic télécom France" },
{ 20830, "Syma Mobile" },
{ 20831, "Vectone Mobile" },
{ 20832, "Orange" },
- { 20833, "Département des Pyrénées Atlantiques" },
+ { 20833, "Syndicat mixte La Fibre64" },
+ { 20834, "Cellhire (France)" },
+ { 20835, "Free mobile" },
+ { 20836, "Free mobile" },
+ { 20837, "IP Directions" },
+ { 20838, "Lebara France Limited" },
+ { 20839, "Netwo" },
{ 20886, "SEM@FOR77" },
- { 20887, "Régie Autonome des Transports Parisiens" },
+ { 20887, "AIRBUS DEFENCE AND SPACE SAS" },
{ 20888, "Bouygues Telecom" },
- { 20889, "Fondation b-com" },
+ { 20889, "Hub One" },
{ 20891, "Orange" },
{ 20893, "Thales communications & Security" },
{ 20894, "Halys" },
{ 20895, "Orange" },
- { 20896, "Axione" },
+ { 20896, "Région Bourgogne-Franche-Comté" },
{ 20897, "Thales communications & Security" },
{ 20898, "Société Air France" },
{ 21210, "Monaco Telecom" },
@@ -976,8 +1000,9 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 21409, "France Telecom España, SA" },
{ 21410, "ZINNIA TELECOMUNICACIONES, S.L.U." },
{ 21411, "TELECOM CASTILLA-LA MANCHA, S.A." },
- { 21412, "SAC CONVERGENT AGGREGATION SERVICES, S.L.U." },
+ { 21412, "VENUS MOVIL, S.L. UNIPERSONAL" },
{ 21413, "SYMA MOBILE ESPAÑA, S.L." },
+ { 21414, "AVATEL MÓVIL, S.L.U." },
{ 21416, "R CABLE Y TELECOMUNICACIONES GALICIA, S.A." },
{ 21417, "R Cable y Telecomunicaciones Galicia, SA" },
{ 21419, "E-Plus Móviles, SL" },
@@ -985,7 +1010,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 21422, "Best Spain Telecom, SL" },
{ 21423, "Xfera Móviles, S.A.U." },
{ 21424, "VODAFONE ESPAÑA, S.A.U." },
- { 21425, "Lycamobile, SL" },
+ { 21425, "XFERA MÓVILES, S.A. UNIPERSONAL" },
{ 21426, "Lleida Networks Serveis Telemátics, SL" },
{ 21427, "SCN Truphone SL" },
{ 21428, "Consorcio de Telecomunicaciones Avanzadas, S.A." },
@@ -996,14 +1021,17 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 21434, "AIRE NETWORKS DEL MEDITERRÁNEO, S.L. UNIPERSONAL" },
{ 21435, "INGENIUM OUTSOURCING SERVICES, S.L." },
{ 21436, "ALAI OPERADOR DE TELECOMUNICACIONES, S.L." },
+ { 21437, "VODAFONE ESPAÑA, S.A.U." },
{ 21438, "Telefónica Móviles España, SAU" },
{ 21451, "ENTIDAD PÚBLICA EMPRESARIAL ADMINISTRADOR DE INFRAESTRUCTURAS FERROVIARIAS" },
{ 21601, "Telenor Hungary Ltd" },
{ 21602, "MVM NET Ltd." },
{ 21603, "DIGI Telecommunication Ltd." },
+ { 21604, "Pro-M PrCo. Ltd." },
+ { 21620, "Yettel Hungary Ltd." },
{ 21630, "Magyar Telecom Plc" },
{ 21670, "Vodafone" },
- { 21671, "UPC Hungary Ltd" },
+ { 21671, "Vodafone Hungary Ltd" },
{ 21699, "MÁV Co." },
{ 21803, "Eronet Mobile Communications Ltd." },
{ 21805, "MOBI'S (Mobilina Srpske)" },
@@ -1041,7 +1069,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 22803, "Salt Mobile SA" },
{ 22805, "Comfone AG" },
{ 22806, "SBB AG" },
- { 22808, "TelCommunication Services AG" },
+ { 22808, "Sunrise Communications AG" },
{ 22809, "Comfone AG" },
{ 22811, "Swisscom Broadcast AG" },
{ 22812, "Sunrise Communications AG" },
@@ -1051,18 +1079,28 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 22855, "WeMobile SA" },
{ 22857, "Mitto AG" },
{ 22858, "Beeone Communications SA" },
+ { 22858, "Vectone Mobile Limited, London" },
{ 22860, "Sunrise Communications AG" },
{ 22862, "Telecom26 AG" },
{ 22863, "Fink Telecom Services" },
{ 22864, "NTH AG" },
+ { 22866, "Inovia Services SA" },
+ { 22867, "Datatrade Managed AG" },
+ { 22868, "Intellico AG" },
+ { 22869, "MTEL Schweiz GmbH" },
+ { 22870, "Tismi BV" },
+ { 22871, "Spusu AG" },
{ 23001, "T-Mobile Czech Republic a.s." },
- { 23002, "Telefónica O2 Czech Republic a.s." },
+ { 23002, "O2 Czech Republic a.s." },
{ 23003, "Vodafone Czech Republic a.s." },
- { 23004, "Air Telecom a.s." },
+ { 23004, "Nordic Telecom Regional s.r.o." },
{ 23005, "PODA a.s." },
{ 23006, "Nordic Telecom 5G a.s." },
+ { 23007, "T-Mobile Czech Republic a.s." },
{ 23008, "Compatel s.r.o" },
- { 23098, "Sprava Zeleznicni Dopravni Cesty" },
+ { 23009, "Uniphone, s.r.o" },
+ { 23011, "incrate s.r.o" },
+ { 23098, "Sprava zeleznic, statni organizace" },
{ 23101, "Orange, GSM" },
{ 23102, "Eurotel, GSM & NMT" },
{ 23104, "Eurotel, UMTS" },
@@ -1088,7 +1126,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 23220, "Mtel Austrija GmbH" },
{ 23291, "ÖBB - Infrastruktur AG" },
{ 23400, "British Telecom" },
- { 23401, "Mundio Mobile Limited" },
+ { 23401, "Vectone Mobile Limited" },
{ 23402, "Telefonica UK Limited" },
{ 23403, "Jersey Airtel Limited" },
{ 23404, "FMS Solutions Limited" },
@@ -1101,51 +1139,62 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 23411, "Telefonica UK Limited" },
{ 23412, "Network Rail Infrastructure Limited" },
{ 23413, "Network Rail Infrastructure Limited" },
- { 23414, "HAY SYSTEMS LIMITED" },
- { 23415, "Vodafone Uk Ltd" },
+ { 23414, "LINK MOBILITY UK LTD" },
+ { 23415, "Vodafone Limited" },
{ 23416, "TalkTalk Communications Limited" },
{ 23417, "FleXtel Limited" },
{ 23418, "Cloud9 Communications Limited" },
- { 23419, "TeleWare PLC" },
+ { 23419, "TeleWare Group PLC" },
{ 23420, "Hutchison 3G UK Limited" },
{ 23422, "Telesign Mobile Limited" },
{ 23423, "Icron Network Limited" },
{ 23424, "Stour Marine Limited" },
{ 23425, "Truphone Limited" },
{ 23426, "Lycamobile UK Limited" },
- { 23427, "Teleena UK Limited" },
+ { 23427, "Tata Communications Move UK Ltd" },
{ 23428, "Marathon Telecom Limited" },
- { 23429, "(aq) Limited trading as aql" },
+ { 23429, "(AQ) LIMITED" },
{ 23430, "EE Limited ( TM)" },
{ 23431, "EE Limited ( TM)" },
{ 23432, "EE Limited ( TM)" },
- { 23433, "Orange" },
- { 23434, "Orange" },
+ { 23433, "EE Limited (Orange)" },
+ { 23434, "EE Limited (Orange)" },
{ 23436, "Sure (Isle of Man) Limited" },
{ 23437, "Synectiv Ltd" },
{ 23438, "Virgin Mobile Telecoms Limited" },
{ 23439, "Gamma Telecom Holdings Ltd" },
- { 23450, "Jersey Telecom" },
+ { 23440, "Mass Response Service GmbH" },
+ { 23450, "JT (Jersey) Limited" },
{ 23451, "UK Broadband Limited" },
{ 23452, "Shyam Telecom UK Ltd" },
- { 23453, "Limitless Mobile Ltd" },
+ { 23453, "Tango Networks UK Ltd" },
{ 23454, "The Carphone Warehouse Limited" },
{ 23455, "Sure (Guernsey) Limited" },
- { 23456, "CESG" },
+ { 23456, "The National Cyber Security Centre" },
{ 23457, "Sky UK Limited" },
- { 23458, "Manx Telecom" },
+ { 23458, "MANX TELECOM TRADING LIMITED" },
{ 23459, "Limitless Mobile Ltd" },
{ 23470, "AMSUK Limited" },
{ 23471, "Home Office" },
+ { 23472, "Hanhaa Limited" },
+ { 23473, "BlueWave Communications" },
+ { 23474, "Pareteum Europe B.V." },
{ 23476, "British Telecom" },
+ { 23477, "Vodafone Limited" },
{ 23478, "Airwave Solutions Ltd" },
{ 23486, "EE Limited ( TM)" },
- { 23500, "Mundio Mobile Limited" },
+ { 23488, "Telet Research (N.I.) Limited" },
+ { 23500, "Vectone Mobile Limited" },
{ 23501, "EE Limited ( TM)" },
{ 23502, "EE Limited ( TM)" },
{ 23503, "UK Broadband Limited" },
+ { 23504, "University Of Strathclyde" },
+ { 23506, "University Of Strathclyde" },
+ { 23507, "University Of Strathclyde" },
+ { 23508, "Spitfire Network Services Limited" },
{ 23577, "British Telecom" },
- { 23591, "Vodafone Uk Ltd" },
+ { 23588, "Telet Research (N.I.) Limited" },
+ { 23591, "Vodafone Limited" },
{ 23592, "Vodafone Ltd (C&W)" },
{ 23594, "Hutchison 3G UK Limited" },
{ 23595, "Network Rail Infrastructure Limited" },
@@ -1174,6 +1223,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 23866, "TT-Netvaerket P/S" },
{ 23873, "Onomondo ApS" },
{ 23877, "Telenor" },
+ { 23888, "Cobira ApS" },
{ 23896, "Telia Danmark" },
{ 24001, "Telia Sverige AB" },
{ 24002, "Hi3G Access AB" },
@@ -1187,33 +1237,34 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 24010, "Tele2 Sverige AB" },
{ 24011, "ComHem AB" },
{ 24012, "Lycamobile Sweden Limited" },
- { 24013, "A3 Företag AB" },
+ { 24013, "Bredband2 Allmänna IT AB" },
{ 24014, "Tele2 Business AB" },
{ 24015, "Sierra Wireless Sweden AB" },
{ 24016, "42 Telecom AB" },
{ 24017, "Götalandsnätet AB" },
{ 24018, "Generic Mobile Systems Sweden AB" },
{ 24019, "Vecton Mobile (Sweden) Ltd" },
- { 24020, "Wireless Maingate Messaging Services AB" },
+ { 24020, "Sierra Wireless Messaging AB" },
{ 24021, "Trafikverket centralfunktion IT" },
{ 24022, "EuTel AB" },
{ 24023, "Infobip LTD (UK)" },
{ 24024, "Net4Mobility HB" },
{ 24025, "Monty UK Global Limited" },
- { 24026, "Twilio Sweden AB" },
+ { 24026, "Twilio Ireland Ltd." },
{ 24027, "GlobeTouch AB" },
{ 24028, "LINK Mobile A/S" },
- { 24029, "Mercury International Carrier Services" },
+ { 24029, "MI Carrier Services AB" },
{ 24031, "RebTel Networks AB" },
{ 24032, "Compatel Limited" },
{ 24033, "Mobile Arts AB" },
{ 24034, "Trafikverket centralfunktion IT" },
{ 24035, "42 Telecom LTD" },
{ 24036, "interactive digital media GmbH" },
- { 24037, "CLX Networks AB" },
+ { 24037, "Sinch Sweden AB" },
{ 24038, "Voxbone SA" },
{ 24039, "Primlight AB" },
- { 24040, "North net connect AB" },
+ { 24040, "Netmore Group AB" },
+ { 24041, "Telenor Sverige AB" },
{ 24042, "Telenor Connexion AB" },
{ 24043, "MobiWeb Ltd." },
{ 24044, "Telenabler AB" },
@@ -1221,7 +1272,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 24046, "SMS Provider Corp." },
{ 24047, "Viatel Sweden AB" },
{ 24048, "Tismi BV" },
- { 24060, "Telefonaktiebolaget LM Ericsson (MNC assigned for test purpose. Temporary license until 2019-12-31)" },
+ { 24049, "Telia Sverige AB" },
+ { 24060, "Västra Götalandsregionen (temporary assigned until 2026-12-31)" },
{ 24061, "MessageBird B.V." },
{ 24063, "Fink Telecom Services" },
{ 24065, "shared use for closed networks" },
@@ -1303,6 +1355,18 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 24814, "Estonian Crafts OÜ" },
{ 24816, "SmartTel Plus OÜ" },
{ 24817, "Baltergo OÜ" },
+ { 24818, "CLOUD COMMUNICATIONS OÜ" },
+ { 24819, "OkTelecom OÜ" },
+ { 24820, "DOTT Telecom OÜ" },
+ { 24821, "Tismi B.V." },
+ { 24822, "M2MConnect OÜ" },
+ { 24824, "Novametro OÜ" },
+ { 24826, "It-Decision Telecom OÜ" },
+ { 24828, "Nord Connect OÜ" },
+ { 24829, "SkyTel OÜ" },
+ { 24830, "Mediafon Carrier Services OÜ" },
+ { 24831, "YATECO OÜ" },
+ { 24832, "Narayana OÜ" },
{ 24871, "Siseministeerium (Ministry of Interior)" },
{ 25001, "Mobile Telesystems" },
{ 25002, "Megafon" },
@@ -1423,7 +1487,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 27002, "MTX Connect S.à r.l." },
{ 27007, "Bouygues Telecom S.A." },
{ 27010, "Join Experience S.A." },
- { 27077, "Tango S.A." },
+ { 27077, "Proximus Luxembourgh S.A." },
{ 27078, "Interactive Digital Media GmbH" },
{ 27079, "Mitto A.G." },
{ 27080, "Syniverse Technologies S.à r.l." },
@@ -1442,8 +1506,9 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 27217, "Three Ireland (Hutchison) Ltd" },
{ 27218, "Cubic Telecom Limited" },
{ 27221, "Net Feasa Limited" },
+ { 27268, "Office of the Government Chief Information Officer" },
{ 27401, "Iceland Telecom Ltd." },
- { 27402, "Og fjarskipti hf (Vodafone Iceland)" },
+ { 27402, "Og fjarskipti hf (Vodafone Iceland)" }, /* Annex E: MSIN beginning with 9 are P/F Kall, reg. No 2868 (Vodafone FO) in Faroe Islands */
{ 27403, "Og fjarskipti hf (Vodafone Iceland)" },
{ 27404, "IMC Islande ehf" },
{ 27407, "IceCell ehf" },
@@ -1451,11 +1516,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 27602, "Vodafone Albania" },
{ 27603, "Eagle Mobile" },
{ 27604, "Mobile 4 AL" },
- { 27801, "Vodafone Malta" },
+ { 27801, "Epic Communications Ltd" },
{ 27811, "YOM" },
- { 27821, "go mobile" },
+ { 27821, "GO mobile" },
{ 27830, "GO Mobile" },
- { 27877, "3G Telecommunications Ltd" },
+ { 27877, "Melita Ltd" },
{ 28001, "CYTA" },
{ 28002, "CYTA" },
{ 28010, "Scancom (Cyprus) Ltd." },
@@ -1475,6 +1540,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 28212, "\"Telecom1\" LTD" },
{ 28213, "\"Asanet\" LTD" },
{ 28214, "\"Datahouseglobal” LTD" },
+ { 28215, "\"Servicebox\" LTD" },
+ { 28222, "\"Myphone\" LTD" },
{ 28401, "Mobiltel EAD" },
{ 28405, "Globul" },
{ 28601, "Turkcell" },
@@ -1484,11 +1551,15 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 28801, "Faroese Telecom - GSM" },
{ 28802, "Kall GSM" },
{ 28803, "Sp/f Tosa" },
+ { 28810, "Faroese Telecom" },
{ 29001, "Tele Greenland" },
{ 29002, "inu:it a/s" },
+ { 29003, "GTV" },
{ 29201, "Prima San Marino / San Marino Telecom" },
{ 29310, "Slovenske železnice – Infrastruktura d.o.o." },
+ { 29311, "BeeIN d.o.o." },
{ 29320, "Compatel Limited" },
+ { 29321, "Novatel d.o.o." },
{ 29340, "A1 Slovenija d.d." },
{ 29341, "Telekom Slovenije d.d." },
{ 29364, "T-2 d.o.o." },
@@ -1499,18 +1570,21 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 29404, "Company for telecommunications LYCAMOBILE LLC-Skopje" },
{ 29410, "WTI Macedonia" },
{ 29411, "MOBIK TELEKOMUNIKACII DOOEL- Skopje" },
+ { 29412, "MTEL DOOEL Skopje" },
{ 29501, "Swisscom Schweiz AG" },
{ 29502, "Salt (Liechtenstein) AG" },
{ 29505, "Telecom Liechtenstein AG" },
{ 29506, "Cubic AG" },
{ 29507, "First Mobile AG" },
{ 29509, "Emnify GmbH" },
- { 29510, "SORACOM LI, LTD." },
+ { 29510, "SORACOM CORPORATION, LTD." },
+ { 29511, "DIMOCO Messaging AG" },
{ 29701, "Telenor Montenegro" },
{ 29702, "Crnogorski Telekom" },
{ 29703, "Mtel Montenegro" },
{ 30801, "SAS SPM Telecom" },
{ 30802, "Globaltel" },
+ { 30803, "SAS SPM Telecom" },
{ 34001, "Orange Caraïbe" },
{ 34002, "Outremer Telecom" },
{ 34003, "United telecommunications services Caraïbe" },
@@ -1545,13 +1619,14 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 40004, "\"Azerfon\" LLC" },
{ 40005, "Special State Protection Service of the Republic of Azerbaijan" },
{ 40006, "\"Nakhtel\" LLC" },
- { 40101, "Beeline / K-Mobile" },
- { 40102, "Kcell / Activ" },
+ { 40101, "Kar-Tel llc" },
+ { 40102, "TSC Kazak Telecom" },
{ 40107, "Altel / Dalacom" },
{ 40108, "Kazakhtelecom CDMA2000" },
{ 40177, "Tele2 / NEO" },
- { 40211, "Bhutan Telecom Ltd" },
- { 40217, "B-Mobile of Bhutan Telecom" },
+ { 40211, "Bhutan Telecom Limited (Bmobile)" },
+ { 40217, "Bhutan Telecom Limited (Bmobile)" },
+ { 40277, "Tashi InfoComm Limited (Tashi Cell)" },
{ 40400, "Dishnet Wireless Ltd, Madhya Pradesh" },
{ 40401, "Aircell Digilink India Ltd., Haryana" },
{ 40402, "Bharti Airtel Ltd., Punjab" },
@@ -1712,7 +1787,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 41603, "Umniah" },
{ 41677, "MobileCom" },
{ 41701, "Syriatel" },
- { 41702, "Spacetel Syria / MTN Syria" },
+ { 41702, "MTN Syria" },
+ { 41703, "WAFA Telecom" },
{ 41709, "Syrian Telecom" },
{ 41805, "Asia Cell" },
{ 41820, "Zain Iraq (previously Atheer)" },
@@ -1747,6 +1823,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 42202, "Oman Mobile Telecommunications Company (Oman Mobile)" },
{ 42203, "Oman Qatari Telecommunications Company (Nawras)" },
{ 42204, "Oman Telecommunications Company (Omantel)" },
+ { 42206, "Vodafone Oman" },
{ 42402, "Etisalat" },
{ 42501, "Partner Communications Co. Ltd." },
{ 42502, "Cellcom Israel Ltd" },
@@ -1767,10 +1844,12 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 42519, "Azi Communications Ltd" },
{ 42520, "Bezeq Ltd" },
{ 42521, "B.I.P Communications Ltd." },
+ { 42522, "Maskyoo Telephonia Ltd." },
{ 42523, "Beezz Communication Solutions Ltd." },
{ 42524, "012 Telecom Ltd." },
{ 42525, "IMOD" },
{ 42526, "LB Annatel Ltd." },
+ { 42527, "BITIT Ltd." },
{ 42528, "PHI Networks" },
{ 42529, "CG Networks" },
{ 42601, "Bahrain Telecommunications Company (BATELCO)" },
@@ -1778,19 +1857,39 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 42603, "Civil Aviation Authority" },
{ 42604, "STC Bahrain" },
{ 42605, "Royal Court" },
+ { 42606, "STC Bahrain" },
+ { 42607, "TAIF" },
{ 42701, "QATARNET" },
{ 42706, "Ooredoo Q.S.C./MOI LTE" },
{ 42899, "Mobicom" },
{ 42901, "Nepal Telecommunications" },
- { 43208, "Shatel Mobile" },
- { 43211, "Telecommunication Company of Iran (TCI)" },
- { 43214, "Telecommunication Kish Co. (KIFZO)" },
+ { 43201, "KISH CELL PARS" },
+ { 43202, "NEGIN ERTEBATAT AVA" },
+ { 43203, "PARSIAN HAMRAH LOTUS" },
+ { 43204, "TOSE E FANAVARI ERTEBATAT NOVIN HAMRAH" },
+ { 43205, "HAMRAH HOSHMAND AYANDEH" },
+ { 43206, "ERTEBATAT ARYANTEL" },
+ { 43207, "HOOSHMAND AMIN MOBILE" },
+ { 43208, "TOSE-E ERTEBATAT HAMRAH SHATEL" },
+ { 43209, "HIWEB" },
+ { 43211, "MCI (Mobile Communications of Iran)" },
+ { 43212, "HIWEB" },
+ { 43213, "HIWEB" },
+ { 43214, "Kish Free Zone Organization" },
{ 43219, "Telecommunication Company of Iran (TCI) - Isfahan Celcom GSM" },
{ 43220, "Rightel" },
- { 43232, "Taliya" },
- { 43235, "MTN/IranCell" },
- { 43250, "Arya Resaneh Tadbir (Shatel)" },
- { 43270, "MTCE" },
+ { 43232, "TCI (Telecommunication Company of Iran)" },
+ { 43235, "IRANCELL" },
+ { 43244, "ERTEBATAT MOBIN NET" },
+ { 43245, "FARABORD DADEHAYE IRANIAN" },
+ { 43246, "HIWEB" },
+ { 43249, "GOSTARESH ERTEBATAT MABNA" },
+ { 43250, "SHATEL" },
+ { 43251, "PISHGAMAN TOSE-E ERTEBATAT" },
+ { 43252, "ASIATECH" },
+ { 43270, "TCI (Telecommunication Company of Iran)" },
+ { 43271, "ERTEBATAT KOOHE NOOR" },
+ { 43293, "ERTEBATAT FARZANEGAN PARS" },
{ 43401, "Buztel" },
{ 43402, "Uzmacom" },
{ 43404, "Daewoo Unitel" },
@@ -1811,20 +1910,29 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 43801, "Barash Communication Technologies (BCTI)" },
{ 43802, "TM-Cell" },
{ 44000, "SoftBank Corp." },
- { 44001, "UQ Communications Inc." },
+ { 44001, "KDDI Corporation" },
{ 44002, "Hanshin Cable Engineering Co. Ltd." },
{ 44003, "Internet Initiative Japan Inc." },
{ 44004, "Japan Radio Co., Ltd." },
{ 44005, "Wireless City Planning Inc." },
{ 44006, "SAKURA Internet Inc." },
- { 44007, "LTE-X, Inc." },
- { 44008, "Panasonic Systems Solutions Japan Co., Ltd" },
- { 44009, "Marubeni Wireless Communications Inc." },
+ { 44007, "closip, Inc." },
+ { 44008, "Panasonic Connect Co., Ltd" },
+ { 44009, "Marubeni Network Solutions Inc." },
{ 44010, "NTT DOCOMO, INC." },
{ 44011, "Rakuten Mobile Network, Inc." },
{ 44012, "CABLE MEDIA WAIWAI CORPORATION" },
+ { 44013, "NTT Communications Corporation" },
+ { 44014, "GRAPE ONE LTD." },
+ { 44015, "BB Backbone Corp." },
+ { 44016, "Nokia Innovations Japan G.K." },
+ { 44017, "OSAKA GAS BUSINESS CREATE CORPORATION" },
+ { 44018, "Kintetsu Cable Network, Ltd" },
+ { 44019, "NEC Networks & System Integration Corporation" },
{ 44020, "SoftBank Corp." },
{ 44021, "SoftBank Corp." },
+ { 44022, "JTOWER Inc." },
+ { 44023, "FUJITSU LIMITED" },
{ 44050, "KDDI Corporation" },
{ 44051, "KDDI Corporation" },
{ 44052, "KDDI Corporation" },
@@ -1891,6 +1999,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 45430, "China Data Enterprises Ltd" },
{ 45431, "China Telecom Global Limited" },
{ 45432, "Hong Kong Broadband Network Ltd" },
+ { 45435, "Webbing Hong Kong Limited" },
+ { 45436, "Easco Telecommunications Limited" },
{ 45500, "SmarTone – Comunicações Móveis, S.A." },
{ 45501, "Companhia de Telecomunicações de Macau, S.A.R.L." },
{ 45502, "China Telecom (Macau) Limitada" },
@@ -1907,9 +2017,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 45606, "Smart" },
{ 45608, "Viettel" },
{ 45618, "Mfone" },
- { 45701, "Lao Telecommunications" },
- { 45702, "ETL Mobile" },
- { 45708, "Millicom" },
+ { 45701, "Lao Telecommunication Public Company" },
+ { 45702, "ETL Company Limited" },
+ { 45703, "Star Telecom Co., Ltd" },
+ { 45707, "Best Telecom Co., Ltd" },
+ { 45708, "TPLUS Digital Sole Company Limited" },
{ 46000, "China Mobile" },
{ 46001, "China Unicom" },
{ 46002, "China Mobile" },
@@ -1978,14 +2090,21 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 50546, "ANGLOGOLD ASHANTI AUSTRALIA LTD" },
{ 50547, "Woodside Energy Limited" },
{ 50548, "Titan ICT Pty Ltd" },
+ { 50549, "Field Solutions Group Pty Ltd" },
{ 50550, "Pivotel Group Pty Limited" },
+ { 50551, "Fortescue Metals Group Ltd" },
+ { 50552, "Optitel Pty Ltd" },
+ { 50553, "Shell Australia Pty Ltd" },
+ { 50555, "New South Wales Government Telecommunications Authority" },
+ { 50556, "Nokia Solutions and Networks Pty Ltd" },
+ { 50557, "CiFi Pty Ltd" },
{ 50561, "Commtel Network Solutions Pty Ltd" },
{ 50562, "NBNCo Limited" },
{ 50568, "NBNCo Limited" },
{ 50571, "Telstra Corporation Ltd." },
{ 50572, "Telstra Corporation Ltd." },
{ 50588, "Pivotel Group Pty Limited" },
- { 50590, "Optus Ltd." },
+ { 50590, "UE Access Pty Ltd" },
{ 50599, "One.Tel GSM 1800 Pty. Ltd." },
{ 51000, "PSN" },
{ 51001, "Satelindo" },
@@ -2026,17 +2145,19 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 52803, "Unified National Networks Sdn Bhd (UNN)" },
{ 52811, "DST Com" },
{ 53000, "Reserved for AMPS MIN based IMSI's" },
- { 53001, "Vodafone New Zealand GSM Network" },
+ { 53001, "One New Zealand Group Limited" },
{ 53002, "Teleom New Zealand CDMA Network" },
{ 53003, "Woosh Wireless - CDMA Network" },
- { 53004, "TelstraClear - GSM Network" },
+ { 53004, "One New Zealand Group Limited" },
{ 53005, "Telecom New Zealand - UMTS Ntework" },
{ 53006, "FX Networks Ltd" },
- { 53007, "Bluereach Limited" },
+ { 53007, "Dense Air New Zealand Ltd" },
+ { 53011, "Interim Māori Spectrum Commission" },
{ 53024, "NZ Communications - UMTS Network" },
{ 53701, "Bmobile" },
{ 53702, "Telikom PNG Ltd" },
{ 53703, "Digicel Ltd" },
+ { 53704, "Digitec Communication Limited" },
{ 53901, "Tonga Communications Corporation" },
{ 53943, "Digicel" },
{ 53988, "Digicel (Tonga) Ltd" },
@@ -2169,6 +2290,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 63090, "Africell RDC" },
{ 63102, "Unitel" },
{ 63104, "Movicel" },
+ { 63105, "AFRICELL" },
{ 63201, "Guinétel S.A." },
{ 63202, "Spacetel Guinea-Bissau S.A." },
{ 63301, "Cable and wireless (Seychelles) Ltd" },
@@ -2195,10 +2317,13 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 63907, "Telkom Kenya Limited" },
{ 63909, "Homeland Media Group Limited" },
{ 63910, "Jamii Telecommunications Limited" },
+ { 63911, "Jambo Telecoms Limited" },
+ { 63912, "Infura Limited" },
{ 64002, "MIC Tanzania Limited (Tigo)" },
{ 64003, "Zanzibar Telecom Limited (Zantel)" },
{ 64004, "Vodacom Tanzania Limited" },
{ 64005, "Airtel Tanzania Limited" },
+ { 64006, "WIA Company Limited" },
{ 64007, "Tanzania Telecommunications Company Limited" },
{ 64009, "Viettel Tanzania Limited (Halotel)" },
{ 64011, "Smile Communications Tanzania Ltd" },
@@ -2206,6 +2331,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 64014, "MO Mobile Holding Limited" },
{ 64101, "Airtel Uganda Limited" },
{ 64104, "Tangerine Uganda Limited" },
+ { 64108, "Talkio Mobile Limited" },
{ 64110, "MTN Uganda Limited" },
{ 64111, "Uganda Telecom Limited" },
{ 64116, "SimbaNET Uganda Limited" },
@@ -2226,6 +2352,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 64501, "Celtel Zambia Ltd." },
{ 64502, "Telecel Zambia Ltd." },
{ 64503, "Zamtel" },
+ { 64507, "Liquid Telecom Zambia Limited" },
{ 64601, "Celtel Madagascar (Zain), GSM" },
{ 64602, "Orange Madagascar, GSM" },
{ 64604, "Telecom Malagasy Mobile, GSM" },
@@ -2260,6 +2387,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 65402, "TELMA / TELCO SA" },
{ 65501, "Vodacom (Pty) Ltd." },
{ 65502, "Telkom SA Ltd" },
+ { 65503, "Telkom SA SOC Ltd" },
{ 65505, "Telkom SA Ltd" },
{ 65506, "Sentech (Pty) Ltd." },
{ 65507, "Cell C (Pty) Ltd." },
@@ -2287,6 +2415,8 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 65565, "Vodacom Pty Ltd" },
{ 65573, "Wireless Business Solutions (Pty) Ltd" },
{ 65574, "Wireless Business Solutions (Pty) Ltd" },
+ { 65576, "Comsol Networks (Pty) Ltd" },
+ { 65577, "K2015315513 (Pty) Ltd t\\a One Telecom (Pty) Ltd" },
{ 65801, "Sure South Atlantic Ltd. (Ascension)" },
{ 65912, "Sudani/Sudatel" },
{ 65991, "Zain-South Sudan" },
@@ -2295,6 +2425,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 65997, "Gemtel" },
{ 70267, "Belize Telecommunications Ltd., GSM 1900" },
{ 70269, "SMART/Speednet Communications Ltd." },
+ { 70401, "Servicios de Comunicaciones Personales Inalámbricas, S.A. (SERCOM, S.A" },
{ 70402, "Comunicaciones Celulares S.A." },
{ 70403, "Telefónica Centroamérica Guatemala S.A." },
{ 70601, "CTE Telecom Personal, S.A. de C.V." },
@@ -2308,9 +2439,10 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 71204, "Telefónica de Costa Rica TC, S.A." },
{ 71220, "Virtualis" },
{ 71401, "Cable & Wireless Panama S.A." },
- { 71402, "BSC de Panama S.A." },
+ { 71402, "Grupo de Comunicaciones Digitales, S.A. (TIGO)" },
{ 71403, "Claro Panamá, S.A." },
{ 71404, "Digicel (Panamá), S.A." },
+ { 71405, "Cable & Wireless Panamá, S.A." },
{ 71610, "TIM Peru" },
{ 72400, "NEXTEL" },
{ 72401, "SISTEER DO BRASIL TELECOMUNICAÇÔES (MVNO)" },
@@ -2323,7 +2455,9 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 72411, "Telefônica Brasil S.A." },
{ 72415, "SERCOMTEL" },
{ 72416, "BRT CELULAR" },
+ { 72417, "SURF TELECOM S.A." },
{ 72418, "DATORA (MVNO)" },
+ { 72421, "LIGUE" },
{ 72423, "Telefônica Brasil S.A." },
{ 72424, "AMAZONIA CELULAR" },
{ 72430, "TNL PCS Oi" },
@@ -2367,14 +2501,17 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 73403, "GALAXY ENTERTAINMENT DE VENEZUELA C.A." },
{ 73404, "Telcel, C.A." },
{ 73406, "Telecomunicaciones Movilnet, C.A." },
+ { 73408, "PATRIACELL C.A." },
{ 73601, "Nuevatel S.A." },
{ 73602, "ENTEL S.A." },
{ 73603, "Telecel S.A." },
+ { 73800, "E-Networks Inc." },
{ 73801, "U-Mobile (Cellular) Inc." },
{ 73805, "eGovernment Unit, Ministry of the Presidency" },
{ 74000, "Otecel S.A. - Bellsouth" },
{ 74001, "Porta GSM" },
{ 74002, "Telecsa S.A." },
+ { 74204, "Free Caraïbe" },
{ 74401, "Hóla Paraguay S.A." },
{ 74402, "Hutchison Telecom S.A." },
{ 74403, "Compañia Privada de Comunicaciones S.A." },
@@ -2384,7 +2521,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 74801, "Administración Nacional de Telecomunicaciones (ANTEL)" },
{ 74807, "Telefónica Móviles del Uruguay S.A. (Movistar)" },
{ 74810, "AM Wireless Uruguay S.A. (Claro)" },
+ { 74815, "ENALUR S.A." },
+ { 90101, "Webbing" },
+ { 90102, "GlobalmatiX AG" },
{ 90103, "Iridium Communications Inc" },
+ { 90104, "BBIX Singapore Pte. Ltd." },
{ 90105, "Thuraya RMSS Network" },
{ 90106, "Thuraya Satellite Telecommunications Company" },
{ 90111, "Inmarsat Ltd." },
@@ -2395,7 +2536,7 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 90116, "Cisco Systems, Inc." },
{ 90117, "Jersey Telecom" },
{ 90118, "Cingular Wireless" },
- { 90119, "Vodafone Malta (Monaco Telecom)" },
+ { 90119, "Epic Communications Limited (Monaco Telecom)" },
{ 90120, "Intermatica" },
{ 90121, "Wins Limited (Formerly Seanet Maritime Communications AB)" },
{ 90122, "MediaLincc Ltd" },
@@ -2422,11 +2563,11 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 90146, "Telecom26 AG" },
{ 90147, "Ooredoo" },
{ 90148, "Com4 Sweden AB" },
- { 90149, "Zain Kuwait" },
+ { 90149, "Mobile Telecommunications Company K.S.C.P. (Formerly Zain Kuwait)" },
{ 90150, "Sawatch Limited/EchoStar Mobile Limited" },
{ 90151, "VisionNG" },
{ 90152, "Manx Telecom Trading Ltd." },
- { 90153, "Deutsche Telekom AG" },
+ { 90153, "Inmarsat Ltd. (replacing Deutsche Telekom AG)" },
{ 90154, "Teleena Holding B.V." },
{ 90155, "Beezz Communication Solutions Ltd." },
{ 90156, "European Telecommunications Standards Institute (ETSI)" },
@@ -2445,9 +2586,34 @@ static const value_string mcc_mnc_2digits_codes[] = {
{ 90169, "Legos" },
{ 90170, "Clementvale Baltic OÜ" },
{ 90171, "Tampnet AS" },
- { 90172, "Tele2 IoT" },
+ { 90172, "Tele2 Sverige Aktiebolag (Formerly Tele2 IoT)" },
{ 90173, "Cubic Telecom Limited" },
+ { 90174, "Etisalat" },
+ { 90175, "Podsystem Ltd." },
+ { 90176, "A1 Telekom Austria AG" },
+ { 90177, "Bouygues Telecom" },
+ { 90178, "Telecom Italia Sparkle S.p.A." },
+ { 90179, "Nokia Corporation" },
+ { 90180, "Flo Live Limited" },
+ { 90181, "Airnity SAS" },
+ { 90182, "Eseye Limited" },
+ { 90183, "iBasis Netherlands BV" },
+ { 90184, "TELEFONICA MOVILES ESPAÑA, S.A. UNIPERSONAL (TME)" },
+ { 90185, "Telefónica Germany GmbH & Co. OHG" },
+ { 90186, "BJT PARTNERS SAS" },
+ { 90187, "Cisco Systems, Inc." },
{ 90188, "UN Office for the Coordination of Humanitarian Affairs (OCHA)" },
+ { 90189, "DIDWW Ireland Limited" },
+ { 90190, "Truphone Limited" },
+ { 90191, "World Mobile Group Limited" },
+ { 90192, "Phonegroup SA" },
+ { 90193, "SkyFive AG" },
+ { 90194, "Intelsat US LLC" },
+ { 90195, "HMD Global Oy" },
+ { 90196, "KORE Wireless" },
+ { 90197, "Satelio IoT Services S.L." },
+ { 90198, "Skylo Technologies, Inc." },
+ { 90199, "Athalos Global Services BV" },
{ 90201, "MulteFire Alliance" },
{ 99101, "World's Global Telecom (temporary assignment for trial until 14.I.2021)" },
{ 99999, "Internal use, example, testing" },
@@ -2459,13 +2625,33 @@ value_string_ext mcc_mnc_2digits_codes_ext = VALUE_STRING_EXT_INIT(mcc_mnc_2digi
static const value_string mcc_mnc_3digits_codes[] = {
{ 208500, "EDF" },
{ 208700, "Weaccess group" },
+ { 208701, "GIP Vendée numérique" },
+ { 208702, "17-Numérique" },
+ { 208703, "Nivertel" },
+ { 208704, "Axione Limousin" },
+ { 208705, "Hautes-Pyrénées Numérique" },
+ { 208706, "Tours Métropole Numérique" },
+ { 208707, "Sartel THD" },
+ { 208708, "Melis@ territoires ruraux" },
+ { 208709, "Quimper communauté télécom" },
+ { 208710, "Losange" },
+ { 208711, "Nomotech" },
+ { 208712, "Syndicat Audois d'énergies et du Numérique" },
+ { 208713, "SD NUM SAS" },
+ { 208714, "Département de l'Isère" },
+ { 214700, "IBERDROLA ESPAÑA, S.A.UNIPERSONAL" },
+ { 214701, "ENDESA DISTRIBUCIÓN ELÉCTRICA, S.L." },
{ 302100, "Data on Tap Inc." },
{ 302130, "Xplornet Communications" },
{ 302131, "Xplornet Communications" },
+ { 302140, "Fibernetics Corporation" },
{ 302150, "Cogeco Connexion Inc." },
+ { 302151, "Cogeco Connexion Inc." },
+ { 302152, "Cogeco Connexion Inc." },
{ 302220, "Telus Mobility" },
{ 302221, "Telus Mobility" },
{ 302222, "Telus Mobility" },
+ { 302230, "ISP Telecom" },
{ 302250, "ALO Mobile Inc" },
{ 302270, "Bragg Communications" },
{ 302290, "Airtel Wireless" },
@@ -2485,7 +2671,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 302530, "Keewatinook Okimacinac" },
{ 302550, "Star Solutions International Inc." },
{ 302560, "Lynx Mobility" },
- { 302570, "Light Squared" },
+ { 302570, "Ligado Networks Corp." },
{ 302590, "Quadro Communication" },
{ 302600, "Iristel Inc." },
{ 302610, "Bell Mobility" },
@@ -2496,19 +2682,25 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 302660, "MTS Mobility" },
{ 302670, "CityTel Mobility" },
{ 302680, "Sask Tel Mobility" },
+ { 302681, "SaskTel Mobility" },
{ 302690, "Bell Mobility" },
{ 302710, "Globalstar" },
{ 302720, "Rogers Wireless" },
{ 302721, "Rogers Communications Canada Inc. (Wireless)" },
{ 302730, "TerreStar Solutions" },
- { 302740, "Shaw Telecom G.P." },
+ { 302740, "Rogers Communications Canada Inc." },
+ { 302741, "Rogers Communications Canada Inc." },
{ 302760, "Public Mobile Inc" },
{ 302770, "Rural Com" },
{ 302780, "Sask Tel Mobility" },
+ { 302781, "SaskTel Mobility" },
+ { 302848, "Vocom International Telecommunications, Inc" },
{ 302860, "Telus Mobility" },
{ 302880, "Telus/Bell shared" },
{ 302940, "Wightman Telecom" },
{ 302990, "Test" },
+ { 302996, "Powertech Labs (experimental)" },
+ { 302998, "Institu de Recherche d’Hydro-Québec (experimental)" },
{ 310010, "Verizon Wireless" },
{ 310012, "Verizon Wireless" },
{ 310013, "Verizon Wireless" },
@@ -2517,13 +2709,14 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310020, "Union Telephone Company" },
{ 310030, "AT&T Mobility" },
{ 310035, "ETEX Communications, LP (d/b/a) ETEX Wireless" },
+ { 310040, "Mobi" },
{ 310050, "Alaska Wireless Networks" },
{ 310070, "AT&T Mobility" },
{ 310080, "AT&T Mobility" },
{ 310090, "AT&T Mobility" },
- { 310100, "New Mexico RSA 4 East Ltd. Partnership" },
- { 310110, "Pacific Telecom Inc" },
- { 310120, "Sprint" },
+ { 310100, "New Mexico RSA 4 East Limited Partnership" },
+ { 310110, "PTI Pacifica, Inc." },
+ { 310120, "T-Mobile USA" },
{ 310130, "Carolina West Wireless" },
{ 310140, "GTA Wireless LLC" },
{ 310150, "AT&T Mobility" },
@@ -2552,17 +2745,18 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310390, "TX-11 Acquistion LLC" },
{ 310400, "Wave Runner LLC" },
{ 310410, "AT&T Mobility" },
+ { 310420, "World Mobile Networks, Inc" },
{ 310430, "GCI Communications Corp" },
{ 310440, "Numerex Corp" },
{ 310450, "North East Cellular Inc." },
- { 310460, "Newcore Wireless" },
+ { 310460, "Eseye" },
{ 310470, "Docomo Pacific Inc" },
- { 310480, "Wave Runner LLC" },
+ { 310480, "PTI Pacifica, Inc." },
{ 310490, "T-Mobile USA" },
{ 310500, "Public Service Cellular, Inc." },
{ 310510, "Nsight" },
{ 310520, "Transactions Network Services (TNS)" },
- { 310530, "Iowa Wireless Services LLC dba | Wireless" },
+ { 310530, "T-Mobile" },
{ 310540, "Oklahoma Western Telephone Company" },
{ 310550, "Syniverse Technologies" },
{ 310570, "Broadpoint, LLC (former PetroCom, LLC) c/o MTPCS, LLC dba CellularOne" },
@@ -2579,7 +2773,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310599, "Verizon Wireless" },
{ 310600, "NewCell dba Cellcom" },
{ 310620, "Nsighttel Wireless, LLC" },
- { 310630, "Agri-Valley Broadband, Inc" },
+ { 310630, "Choice Wireless" },
{ 310640, "Numerex Corp" },
{ 310650, "JASPER TECHNOLOGIES INC." },
{ 310660, "T-Mobile USA" },
@@ -2593,12 +2787,12 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310740, "Viaero Wireless" },
{ 310750, "East Kentucky Network LLC dba Appalachian Wireless" },
{ 310760, "Lynch 3G Communications Corporation" },
- { 310770, "Iowa Wireless Services LLC dba I Wireless" },
+ { 310770, "T-Mobile" },
{ 310790, "PinPoint Communications Inc." },
{ 310800, "T-Mobile USA" },
{ 310810, "Pacific Lightwave Inc." },
{ 310820, "Verizon Wireless" },
- { 310830, "Sprint" },
+ { 310830, "T-Mobile USA" },
{ 310840, "Telecom North America Mobile Inc" },
{ 310850, "Aeris Communications, Inc." },
{ 310860, "West Central Wireless" },
@@ -2617,7 +2811,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 310910, "Verizon Wireless" },
{ 310920, "James Valley Wireless LLC" },
{ 310930, "Copper Valley Wireless" },
- { 310940, "Tyntec Inc." },
+ { 310940, "Tyntec Limited" },
{ 310950, "AT&T Mobility" },
{ 310960, "UBET Wireless" },
{ 310970, "Globalstar USA" },
@@ -2634,7 +2828,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311090, "AT&T Mobility" },
{ 311100, "Nex-Tech Wireless LLC" },
{ 311110, "Verizon Wireless" },
- { 311120, "Wave Runner LLC" },
+ { 311120, "PTI Pacifica, Inc." },
{ 311140, "Cross Telephone Company" },
{ 311150, "Wilkes Cellular Inc." },
{ 311170, "Tampnet (formerly Broadpoint, LLC (former PetroCom, LLC) c/o MTPCS, LL" },
@@ -2642,6 +2836,9 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311190, "AT&T Mobility" },
{ 311210, "Telnyx LLC" },
{ 311220, "United States Cellular" },
+ { 311225, "U.S. Cellular" },
+ { 311228, "U.S. Cellular" },
+ { 311229, "U.S. Cellular" },
{ 311230, "Cellular South Inc." },
{ 311240, "Cordova Wireless Communications Inc" },
{ 311250, "Wave Runner LLC" },
@@ -2680,7 +2877,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311410, "Iowa RSA No. 2 Limited Partnership" },
{ 311420, "Northwest Cell" },
{ 311430, "RSA 1 Limited Partnership dba Cellular 29 Plus" },
- { 311440, "Bluegrass Cellular LLC" },
+ { 311440, "Verizon Wireless" },
{ 311450, "Panhandle Telecommunication Systems Inc." },
{ 311460, "ELECTRIC IMP INCORPORATED" },
{ 311470, "Vitelcom Cellular D/B/A Innovative Wireless" },
@@ -2694,12 +2891,17 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311487, "Verizon Wireless" },
{ 311488, "Verizon Wireless" },
{ 311489, "Verizon Wireless" },
- { 311490, "Sprint" },
+ { 311490, "T-Mobile USA" },
+ { 311500, "Mobi" },
{ 311510, "Ligado Networks" },
- { 311530, "Newcore Wireless LLC" },
+ { 311530, "WorldCell Solutions LLC" },
+ { 311540, "Coeur Rochester, Inc" },
{ 311550, "Commnet Midwest, LLC" },
{ 311560, "OTZ Communications Inc" },
+ { 311570, "Medicom" },
{ 311580, "U.S. Cellular" },
+ { 311588, "U.S. Cellular" },
+ { 311589, "U.S. Cellular" },
{ 311590, "Verizon Wireless" },
{ 311600, "Limitless Mobile, LLC" },
{ 311610, "North Dakota Network Co." },
@@ -2721,21 +2923,22 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 311770, "Altiostar Networks, Inc." },
{ 311780, "The American Samoa Telecommunications Authority" },
{ 311790, "Coleman County Telephone Cooperative, Inc." },
- { 311800, "Bluegrass Cellular LLC" },
- { 311810, "Blegrass Cellular LLC" },
- { 311820, "Sonus Networks" },
+ { 311800, "Verizon Wireless" },
+ { 311810, "Verizon Wireless" },
+ { 311820, "Ribbon Communications" },
{ 311830, "Thumb Cellular LLC" },
{ 311840, "Nsight" },
{ 311850, "Nsight" },
{ 311860, "Uintah Basin Electronic Telecommunications" },
- { 311870, "Sprint" },
- { 311880, "Sprint" },
- { 311882, "Sprint" },
+ { 311870, "T-Mobile USA" },
+ { 311880, "T-Mobile USA" },
+ { 311882, "T-Mobile" },
{ 311890, "Globecomm Network Services Corporation" },
{ 311900, "Gigsky Inc." },
{ 311910, "SI Wireless LLC" },
{ 311920, "Missouri RSA No 5 Partnership" },
- { 311940, "Sprint" },
+ { 311930, "Cox Communications" },
+ { 311940, "T-Mobile USA" },
{ 311950, "Sunman Telecommunications corp." },
{ 311970, "Big River Broadband LLC" },
{ 311980, "LigTel Communications" },
@@ -2754,13 +2957,13 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312160, "RSA1 Limited Partnership dba Chat Mobility" },
{ 312170, "Iowa RSA No. 2 Limited Partnership" },
{ 312180, "Limitless Mobile, LLC" },
- { 312190, "Sprint" },
+ { 312190, "T-Mobile USA" },
{ 312210, "ASPENTA, LLC" },
{ 312220, "Chariton Valley Communications Corporation" },
{ 312230, "SRT Communications Inc." },
{ 312240, "Sprint" },
- { 312250, "Sprint" },
- { 312260, "Central LTE Holdings" },
+ { 312250, "T-Mobile USA" },
+ { 312260, "WorldCell Solutions LLC" },
{ 312270, "Cellular Network Partnership dba Pioneer Cellular" },
{ 312280, "Cellular Network Partnership dba Pioneer Cellular" },
{ 312290, "Uintah Basin Electronic Telecommunications" },
@@ -2783,10 +2986,10 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312480, "Sagebrush Cellular, Inc." },
{ 312490, "TrustComm, Inc" },
{ 312510, "Wue" },
- { 312530, "Sprint" },
+ { 312530, "T-Mobile USA" },
{ 312550, "Great Plains Communications, Inc" },
{ 312570, "Buffalo-Lake Erie Wireless Systems Co., LLC" },
- { 312580, "Morgan, Lewis & Bockius LLP" },
+ { 312580, "Google LLC" },
{ 312590, "Northern Michigan University" },
{ 312600, "Sagebrush Cellular, Inc." },
{ 312620, "GlobeTouch Inc." },
@@ -2815,6 +3018,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312880, "Albemarle County Public Schools" },
{ 312890, "Circle Gx" },
{ 312900, "Flat West Wireless, LLC" },
+ { 312910, "East Kentucky Network LLC dba Appalachian Wireless" },
{ 312920, "Northeast Wireless Networks" },
{ 312930, "Hewlett-Packard Communication Services, LLC" },
{ 312940, "Webformix" },
@@ -2824,9 +3028,9 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 312980, "Mark Twain Communications Company" },
{ 312990, "PREMIER HOLDINGS, LLC" },
{ 313000, "Tennessee Wireless" },
- { 313010, "Cross Wireless LLC dba Sprocket Wireless" },
+ { 313010, "Cross Wireless LLC dba Bravado Wireless" },
{ 313020, "CTC Telecom, INC. dba CTC Wireless" },
- { 313030, "Eagle Telephone System, INC dba Snake River PCS" },
+ { 313030, "AT&T Mobility" },
{ 313040, "Nucla-Naturita Telephone Company" },
{ 313050, "Manti Tele Communications Company, Inc. dba Breakaway Wireless" },
{ 313060, "Country Wireless" },
@@ -2853,7 +3057,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313260, "Expeto Wireless Inc." },
{ 313280, "King Street Wireless, LP" },
{ 313290, "Gulf Coast Broadband LLC" },
- { 313300, "Cambio WiFi of Delmarva, LLC." },
+ { 313300, "Southern California Edison" },
{ 313310, "CAL.NET, INC" },
{ 313320, "Paladin Wireless" },
{ 313330, "CenturyTel Broadband Services LLC" },
@@ -2864,11 +3068,11 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313380, "OptimERA Inc." },
{ 313390, "Altice USA Wireless, Inc." },
{ 313400, "Texoma Communications, LLC" },
- { 313410, "pdvWireless" },
+ { 313410, "Anterix Inc." },
{ 313420, "Hudson Valley Wireless" },
{ 313440, "Arvig Enterprises INC" },
{ 313450, "Spectrum Wireless Holdings, LLC" },
- { 313460, "Mobi, Inc." },
+ { 313460, "Mobi" },
{ 313470, "San Diego Gas & Electric Company" },
{ 313480, "Ready Wireless, LLC" },
{ 313490, "Puloli, Inc" },
@@ -2877,13 +3081,13 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313520, "Florida Broadband, Inc" },
{ 313540, "Nokia Innovations US LLC" },
{ 313550, "Mile High Networks LLC" },
- { 313560, "Transit Wireless, LLC" },
+ { 313560, "Boldyn Networks Transit US LLC" },
{ 313570, "Celular Network Partnership" },
{ 313580, "Telecall Telecommuncations Corp." },
{ 313590, "Southern Communications Services, Inc. D/B/A Southern Linc" },
{ 313600, "ST Engineering iDirect" },
- { 313610, "Crystal Automation Systems, Inc." },
- { 313620, "Screened Images" },
+ { 313610, "Point Broadband Fiber Holding, LLC" },
+ { 313620, "Omniprophis Corporation" },
{ 313630, "LICT Corporation" },
{ 313640, "Geoverse" },
{ 313650, "Chevron USA INC" },
@@ -2895,13 +3099,37 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 313710, "Extent Systems" },
{ 313720, "1st Point Communications, LLC" },
{ 313730, "TruAccess Networks" },
- { 313740, "RTO Wireless, LLC" },
- { 313750, "313-CellTex Networks, LLC" },
- { 313760, "Hologram, Inc." },
+ { 313740, "RTO Wireless" },
+ { 313750, "CellTex Networks, LLC" },
+ { 313760, "Hologram" },
{ 313770, "Tango Networks" },
+ { 313780, "Windstream Services LLC" },
+ { 313790, "Liberty Cablevision of Puerto Rico LLC" },
+ { 313810, "W.A.T.C.H. TV Co. dba Watch Communications" },
+ { 313820, "Inland Cellular Telephone Company" },
+ { 313830, "360 communications INC" },
+ { 313840, "Celblox Acquisitions" },
+ { 313850, "Softcom Internet Communications, Inc." },
+ { 313860, "AMG Technology Investment Group dba Nextlink Internet" },
+ { 313870, "Elektrafi LLC" },
+ { 313880, "Shuttle Wireless Solutions Inc." },
+ { 313890, "Tulare County Office of Education" },
+ { 313900, "All Tribal Networks" },
+ { 313910, "San Diego Gas and Electric" },
+ { 313920, "JCI US INC" },
+ { 313930, "Standing Rock Telecom" },
+ { 313940, "Motorola Solutions, Inc" },
+ { 313950, "Cheyenne and Arapaho Development Group" },
+ { 313960, "Townes 5G, LLC" },
+ { 313970, "Tychron Corporation" },
+ { 313990, "Ericsson US" },
{ 314010, "Boingo Wireless Inc" },
{ 314020, "Spectrum Wireless Holdings, LLC" },
{ 314030, "Baicells Technologies North America Inc." },
+ { 314060, "Texas A&M University System – RELLIS Campus" },
+ { 314070, "Texas A&M University System – RELLIS Campus" },
+ { 314080, "Texas A&M University System – RELLIS Campus" },
+ { 314090, "Southern Communications Services, Inc. D/B/A Southern Linc" },
{ 314100, "RESERVED FOR PUBLIC SAFETY" },
{ 314110, "RESERVED FOR PUBLIC SAFETY" },
{ 314120, "RESERVED FOR PUBLIC SAFETY" },
@@ -2912,24 +3140,71 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 314170, "RESERVED FOR PUBLIC SAFETY" },
{ 314180, "RESERVED FOR PUBLIC SAFETY" },
{ 314190, "RESERVED FOR PUBLIC SAFETY" },
+ { 314200, "XF Wireless Investments" },
+ { 314210, "Telecom Resource Center" },
+ { 314220, "Secrus Technologies" },
+ { 314230, "Trace-Tek" },
+ { 314240, "XF Wireless Investments" },
+ { 314260, "AT&T Mobility" },
+ { 314270, "AT&T Mobility" },
+ { 314280, "Pollen Mobile LLC" },
+ { 314290, "Wave" },
+ { 314310, "Terranet" },
+ { 314320, "Agri-Valley Communications, Inc" },
+ { 314330, "Nova Labs Inc." },
+ { 314340, "E-MARCONI LLC" },
+ { 314350, "Evergy" },
+ { 314360, "Oceus Networks, LLC" },
+ { 314370, "Texas A&M University – ITEC" },
+ { 314380, "Circle Computer Resources, Inc." },
+ { 314390, "AT&T" },
+ { 314400, "Cellular South Inc. dba C Spire" },
+ { 314410, "Peeringhub Inc" },
+ { 314420, "Cox Communications, Inc" },
+ { 314430, "Highway9 Networks, Inc." },
+ { 314440, "Tecore Global Services, LLC" },
+ { 314450, "NUWAVE Communications, Inc." },
+ { 314460, "Texas A&M University" },
+ { 314470, "Manhattan Telecommunications Corporation LLC" },
+ { 314480, "Xcel Energy Services Inc." },
+ { 314490, "Utah Education and Telehealth Network (UETN)" },
+ { 314500, "Aetheros Inc" },
+ { 314510, "SI Wireless LLC" },
+ { 314520, "Oklahoma Gas & Electric Company (OG&E)" },
+ { 314530, "Agile Networks" },
+ { 314540, "RGTN USA, Inc." },
{ 316010, "Sprint" },
{ 316011, "Southern Communications Services Inc." },
+ { 316700, "Mile High Networks LLC" },
{ 334001, "COMUNICACIONES DIGITALES DEL NORTE, S.A. DE C.V" },
- { 334010, "NII DIGITAL, S. DE R.L. DE C.V." },
+ { 334010, "AT&T COMUNICACIONES DIGITALES, S. DE R.L. DE C.V." },
{ 334020, "RADIOMOVIL DIPSA, S.A. DE C.V." },
- { 334030, "PEGASO COMUNICACIONES Y SISTEMAS, S.A. DE C.V." },
- { 334040, "IUSACELL PCS DE MEXICO, S.A. DE C.V." },
- { 334050, "COMUNICACIONES CELULARES DE OCCIDENTE, S.A. DE C.V. / SISTEMAS TELEFONICOS PORTATILES CELULARES, S.A. DE C.V. / TELECOMUNICACIONES DEL GOLFO, S.A. DE C.V. / SOS TELECOMUNICACIONES, S.A. DE C.V. / PORTATEL DEL SURESTE, S.A. DE C.V." },
+ { 334030, "PEGASO PCS, S.A. DE C.V." },
+ { 334040, "AT&T NORTE, S. DE R.L. DE C.V. Y AT&T DESARROLLO EN COMUNICACIONES DE MÉXICO, S. DE R.L. DE C.V." },
+ { 334050, "GRUPO AT&T CELULLAR, S. DE R.L. DE C.V." },
{ 334060, "SERVICIOS DE ACCESO INALAMBRICO, S.A DE C.V." },
{ 334066, "TELÉFONOS DE MÉXICO, S.A.B. DE C.V" },
- { 334070, "OPERADORA UNEFON, S. A. DE C.V." },
- { 334080, "OPERADORA UNEFON, S. A. DE C.V." },
- { 334090, "NII DIGITAL, S. DE R.L. DE C.V." },
+ { 334070, "AT&T COMERCIALIZACIÓN MÓVIL, S. DE R.L. DE C.V." },
+ { 334080, "AT&T COMERCIALIZACIÓN MÓVIL, S. DE R.L. DE C.V." },
+ { 334090, "AT&T COMUNICACIONES DIGITALES, S. DE R.L. DE C.V." },
+ { 334100, "TELECOMUNICACIONES DE MÉXICO" },
+ { 334110, "MAXCOM TELECOMUNICACIONES, S.A.B. DE C.V." },
+ { 334120, "QUICKLY PHONE, S.A. DE C.V." },
+ { 334130, "AXTEL, S.A.B. DE C.V." },
+ { 334140, "ALTÁN REDES, S.A.P.I. DE C.V." },
+ { 334150, "ULTRAVISIÓN, S.A. DE C.V." },
+ { 334160, "CABLEVISIÓN RED, S.A. DE C.V." },
+ { 334170, "OXIO MOBILE, S.A. DE C.V." },
+ { 334180, "FREEDOMPOP MÉXICO, S.A. DE C.V." },
+ { 334190, "VIASAT TECNOLOGÍA, S.A. DE C.V." },
{ 338040, "Symbiote Investment Limited" },
{ 338050, "Digicel (Jamaica) Ltd" },
+ { 338080, "Rock Mobile Limited" },
{ 338110, "Cable and Wireless Jamaica Ltd" },
{ 342600, "Cable & Wireless (Barbados) Ltd. trading as Lime" },
- { 342820, "Sunbeach Communications" },
+ { 342646, "KW Telecommunications Inc." },
+ { 342800, "Ozone" },
+ { 342820, "Neptune Communications Inc." },
{ 344030, "APUA PCS" },
{ 344920, "Cable & Wireless (Antigua) trading as Lime" },
{ 344930, "AT&T Wireless (Antigua)" },
@@ -2940,6 +3215,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 348570, "Caribbean Cellular Telephone Ltd." },
{ 348770, "Digicel (BVI) Ltd" },
{ 350000, "Bermuda Digital Communications Ltd (CellOne)" },
+ { 350007, "Paradise Mobile" },
{ 352110, "Cable & Wireless Grenada ltd trading as lime" },
{ 354860, "Cable & Wireless (West Indies) Ltd trading as Lime" },
{ 356110, "Cable & Wireless St Kitts & Nevis Ltd trading as Lime" },
@@ -2961,6 +3237,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 405011, "Reliance Communications Ltd/GSM, Kerala" },
{ 405012, "Reliance Infocomm Ltd, Andhra Pradesh" },
{ 405013, "Reliance Communications Ltd/GSM, Maharashtra" },
+ { 405014, "Reliance Communications Ltd/GSM, Madhya Pradesh" },
{ 405018, "Reliance Communications Ltd/GSM, Punjab" },
{ 405020, "Reliance Communications Ltd/GSM, Tamilnadu" },
{ 405021, "Reliance Communications Ltd/GSM, UP (East)" },
@@ -3003,10 +3280,24 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 405807, "Dishnet Wireless Ltd, Haryana" },
{ 405808, "Dishnet Wireless Ltd, Madhya Pradesh" },
{ 405809, "Dishnet Wireless Ltd, Kerala" },
+ { 441200, "SORACOM, Inc." },
+ { 441201, "Aurens Co.,Ltd." },
+ { 441202, "Sony Wireless Communications Inc." },
+ { 441203, "GujoCity" },
+ { 441204, "Wicom Inc." },
+ { 441205, "KATCH NETWORK INC." },
+ { 441206, "MITSUBISHI ELECTRIC CORPORATION" },
+ { 441207, "Mitsui Knowledge Industry Co., Ltd." },
+ { 441208, "CHUDENKO CORPORATION" },
+ { 441209, "Cable Television TOYAMA Inc." },
+ { 441210, "NIPPON TELEGRAPH AND TELEPHONE EAST CORPORATION" },
+ { 441211, "STARCAT CABLE NETWORK Co., LTD." },
+ { 441212, "I-TEC Solutions Co., Ltd." },
+ { 441213, "Hokkaido Telecommunication Network Co., Inc." },
{ 708001, "Megatel" },
{ 708002, "Celtel" },
{ 708040, "Digicel Honduras" },
- { 714020, "Telefónica Móviles Panamá S.A." },
+ { 714020, "Grupo de Comunicaciones Digitales, S.A. (TIGO)" },
{ 722010, "Compañia de Radiocomunicaciones Moviles S.A." },
{ 722020, "Nextel Argentina srl" },
{ 722070, "Telefónica Comunicaciones Personales S.A." },
@@ -3026,6 +3317,7 @@ static const value_string mcc_mnc_3digits_codes[] = {
{ 732130, "Avantel" },
{ 738002, "Guyana Telephone & Telegraph Company Limited (Cellink)" },
{ 738003, "Quark Communications Inc." },
+ { 738040, "E-Networks Inc." },
{ 750001, "Touch" },
{ 999999, "Internal use, example, testing" },
{ 1666665, "Unset" },
diff --git a/epan/dissectors/packet-e2ap.c b/epan/dissectors/packet-e2ap.c
index 24e62568af..e6b42be55c 100644
--- a/epan/dissectors/packet-e2ap.c
+++ b/epan/dissectors/packet-e2ap.c
@@ -1086,511 +1086,511 @@ static expert_field ei_e2ap_ran_function_id_not_mapped;
static expert_field ei_e2ap_ran_function_dissector_mismatch;
static expert_field ei_e2ap_ran_function_max_dissectors_registered;
-static gint ett_e2ap_ProtocolIE_Container;
-static gint ett_e2ap_ProtocolIE_Field;
-static gint ett_e2ap_Cause;
-static gint ett_e2ap_CriticalityDiagnostics;
-static gint ett_e2ap_CriticalityDiagnostics_IE_List;
-static gint ett_e2ap_CriticalityDiagnostics_IE_Item;
-static gint ett_e2ap_E2nodeComponentConfiguration;
-static gint ett_e2ap_E2nodeComponentConfigurationAck;
-static gint ett_e2ap_E2nodeComponentID;
-static gint ett_e2ap_E2nodeComponentInterfaceE1;
-static gint ett_e2ap_E2nodeComponentInterfaceF1;
-static gint ett_e2ap_E2nodeComponentInterfaceNG;
-static gint ett_e2ap_E2nodeComponentInterfaceS1;
-static gint ett_e2ap_E2nodeComponentInterfaceX2;
-static gint ett_e2ap_E2nodeComponentInterfaceXn;
-static gint ett_e2ap_E2nodeComponentInterfaceW1;
-static gint ett_e2ap_ENB_ID;
-static gint ett_e2ap_ENB_ID_Choice;
-static gint ett_e2ap_ENGNB_ID;
-static gint ett_e2ap_GlobalE2node_ID;
-static gint ett_e2ap_GlobalE2node_en_gNB_ID;
-static gint ett_e2ap_GlobalE2node_eNB_ID;
-static gint ett_e2ap_GlobalE2node_gNB_ID;
-static gint ett_e2ap_GlobalE2node_ng_eNB_ID;
-static gint ett_e2ap_GlobalENB_ID;
-static gint ett_e2ap_GlobalenGNB_ID;
-static gint ett_e2ap_GlobalgNB_ID;
-static gint ett_e2ap_GlobalngeNB_ID;
-static gint ett_e2ap_GlobalNG_RANNode_ID;
-static gint ett_e2ap_GlobalRIC_ID;
-static gint ett_e2ap_GNB_ID_Choice;
-static gint ett_e2ap_RICrequestID;
-static gint ett_e2ap_RICsubsequentAction;
-static gint ett_e2ap_TNLinformation;
-static gint ett_e2ap_RICsubscriptionRequest;
-static gint ett_e2ap_RICsubscriptionDetails;
-static gint ett_e2ap_RICactions_ToBeSetup_List;
-static gint ett_e2ap_RICaction_ToBeSetup_Item;
-static gint ett_e2ap_RICsubscriptionResponse;
-static gint ett_e2ap_RICaction_Admitted_List;
-static gint ett_e2ap_RICaction_Admitted_Item;
-static gint ett_e2ap_RICaction_NotAdmitted_List;
-static gint ett_e2ap_RICaction_NotAdmitted_Item;
-static gint ett_e2ap_RICsubscriptionFailure;
-static gint ett_e2ap_RICsubscriptionDeleteRequest;
-static gint ett_e2ap_RICsubscriptionDeleteResponse;
-static gint ett_e2ap_RICsubscriptionDeleteFailure;
-static gint ett_e2ap_RICsubscriptionDeleteRequired;
-static gint ett_e2ap_RICsubscription_List_withCause;
-static gint ett_e2ap_RICsubscription_withCause_Item;
-static gint ett_e2ap_RICsubscriptionModificationRequest;
-static gint ett_e2ap_RICactions_ToBeRemovedForModification_List;
-static gint ett_e2ap_RICaction_ToBeRemovedForModification_Item;
-static gint ett_e2ap_RICactions_ToBeModifiedForModification_List;
-static gint ett_e2ap_RICaction_ToBeModifiedForModification_Item;
-static gint ett_e2ap_RICactions_ToBeAddedForModification_List;
-static gint ett_e2ap_RICaction_ToBeAddedForModification_Item;
-static gint ett_e2ap_RICsubscriptionModificationResponse;
-static gint ett_e2ap_RICactions_RemovedForModification_List;
-static gint ett_e2ap_RICaction_RemovedForModification_Item;
-static gint ett_e2ap_RICactions_FailedToBeRemovedForModification_List;
-static gint ett_e2ap_RICaction_FailedToBeRemovedForModification_Item;
-static gint ett_e2ap_RICactions_ModifiedForModification_List;
-static gint ett_e2ap_RICaction_ModifiedForModification_Item;
-static gint ett_e2ap_RICactions_FailedToBeModifiedForModification_List;
-static gint ett_e2ap_RICaction_FailedToBeModifiedForModification_Item;
-static gint ett_e2ap_RICactions_AddedForModification_List;
-static gint ett_e2ap_RICaction_AddedForModification_Item;
-static gint ett_e2ap_RICactions_FailedToBeAddedForModification_List;
-static gint ett_e2ap_RICaction_FailedToBeAddedForModification_Item;
-static gint ett_e2ap_RICsubscriptionModificationFailure;
-static gint ett_e2ap_RICsubscriptionModificationRequired;
-static gint ett_e2ap_RICactions_RequiredToBeModified_List;
-static gint ett_e2ap_RICaction_RequiredToBeModified_Item;
-static gint ett_e2ap_RICactions_RequiredToBeRemoved_List;
-static gint ett_e2ap_RICaction_RequiredToBeRemoved_Item;
-static gint ett_e2ap_RICsubscriptionModificationConfirm;
-static gint ett_e2ap_RICactions_ConfirmedForModification_List;
-static gint ett_e2ap_RICaction_ConfirmedForModification_Item;
-static gint ett_e2ap_RICactions_RefusedToBeModified_List;
-static gint ett_e2ap_RICaction_RefusedToBeModified_Item;
-static gint ett_e2ap_RICactions_ConfirmedForRemoval_List;
-static gint ett_e2ap_RICaction_ConfirmedForRemoval_Item;
-static gint ett_e2ap_RICactions_RefusedToBeRemoved_List;
-static gint ett_e2ap_RICaction_RefusedToBeRemoved_Item;
-static gint ett_e2ap_RICsubscriptionModificationRefuse;
-static gint ett_e2ap_RICindication;
-static gint ett_e2ap_RICcontrolRequest;
-static gint ett_e2ap_RICcontrolAcknowledge;
-static gint ett_e2ap_RICcontrolFailure;
-static gint ett_e2ap_RICQueryRequest;
-static gint ett_e2ap_RICQueryResponse;
-static gint ett_e2ap_RICQueryFailure;
-static gint ett_e2ap_ErrorIndication;
-static gint ett_e2ap_E2setupRequest;
-static gint ett_e2ap_E2setupResponse;
-static gint ett_e2ap_E2setupFailure;
-static gint ett_e2ap_E2connectionUpdate;
-static gint ett_e2ap_E2connectionUpdate_List;
-static gint ett_e2ap_E2connectionUpdate_Item;
-static gint ett_e2ap_E2connectionUpdateRemove_List;
-static gint ett_e2ap_E2connectionUpdateRemove_Item;
-static gint ett_e2ap_E2connectionUpdateAcknowledge;
-static gint ett_e2ap_E2connectionSetupFailed_List;
-static gint ett_e2ap_E2connectionSetupFailed_Item;
-static gint ett_e2ap_E2connectionUpdateFailure;
-static gint ett_e2ap_E2nodeConfigurationUpdate;
-static gint ett_e2ap_E2nodeComponentConfigAddition_List;
-static gint ett_e2ap_E2nodeComponentConfigAddition_Item;
-static gint ett_e2ap_E2nodeComponentConfigUpdate_List;
-static gint ett_e2ap_E2nodeComponentConfigUpdate_Item;
-static gint ett_e2ap_E2nodeComponentConfigRemoval_List;
-static gint ett_e2ap_E2nodeComponentConfigRemoval_Item;
-static gint ett_e2ap_E2nodeTNLassociationRemoval_List;
-static gint ett_e2ap_E2nodeTNLassociationRemoval_Item;
-static gint ett_e2ap_E2nodeConfigurationUpdateAcknowledge;
-static gint ett_e2ap_E2nodeComponentConfigAdditionAck_List;
-static gint ett_e2ap_E2nodeComponentConfigAdditionAck_Item;
-static gint ett_e2ap_E2nodeComponentConfigUpdateAck_List;
-static gint ett_e2ap_E2nodeComponentConfigUpdateAck_Item;
-static gint ett_e2ap_E2nodeComponentConfigRemovalAck_List;
-static gint ett_e2ap_E2nodeComponentConfigRemovalAck_Item;
-static gint ett_e2ap_E2nodeConfigurationUpdateFailure;
-static gint ett_e2ap_ResetRequest;
-static gint ett_e2ap_ResetResponse;
-static gint ett_e2ap_RICserviceUpdate;
-static gint ett_e2ap_RANfunctions_List;
-static gint ett_e2ap_RANfunction_Item;
-static gint ett_e2ap_RANfunctionsID_List;
-static gint ett_e2ap_RANfunctionID_Item;
-static gint ett_e2ap_RICserviceUpdateAcknowledge;
-static gint ett_e2ap_RANfunctionsIDcause_List;
-static gint ett_e2ap_RANfunctionIDcause_Item;
-static gint ett_e2ap_RICserviceUpdateFailure;
-static gint ett_e2ap_RICserviceQuery;
-static gint ett_e2ap_E2RemovalRequest;
-static gint ett_e2ap_E2RemovalResponse;
-static gint ett_e2ap_E2RemovalFailure;
-static gint ett_e2ap_E2AP_PDU;
-static gint ett_e2ap_InitiatingMessage;
-static gint ett_e2ap_SuccessfulOutcome;
-static gint ett_e2ap_UnsuccessfulOutcome;
-static gint ett_e2ap_CGI;
-static gint ett_e2ap_InterfaceIdentifier;
-static gint ett_e2ap_InterfaceID_NG;
-static gint ett_e2ap_InterfaceID_Xn;
-static gint ett_e2ap_InterfaceID_F1;
-static gint ett_e2ap_InterfaceID_E1;
-static gint ett_e2ap_InterfaceID_S1;
-static gint ett_e2ap_InterfaceID_X2;
-static gint ett_e2ap_T_nodeType;
-static gint ett_e2ap_InterfaceID_W1;
-static gint ett_e2ap_Interface_MessageID;
-static gint ett_e2ap_RANfunction_Name;
-static gint ett_e2ap_RRC_MessageID;
-static gint ett_e2ap_T_rrcType;
-static gint ett_e2ap_ServingCell_ARFCN;
-static gint ett_e2ap_ServingCell_PCI;
-static gint ett_e2ap_UEID;
-static gint ett_e2ap_UEID_GNB;
-static gint ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_List;
-static gint ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_Item;
-static gint ett_e2ap_UEID_GNB_CU_F1AP_ID_List;
-static gint ett_e2ap_UEID_GNB_CU_CP_F1AP_ID_Item;
-static gint ett_e2ap_UEID_GNB_DU;
-static gint ett_e2ap_UEID_GNB_CU_UP;
-static gint ett_e2ap_UEID_NG_ENB;
-static gint ett_e2ap_UEID_NG_ENB_DU;
-static gint ett_e2ap_UEID_EN_GNB;
-static gint ett_e2ap_UEID_ENB;
-static gint ett_e2ap_GUMMEI;
-static gint ett_e2ap_EUTRA_CGI;
-static gint ett_e2ap_GlobalGNB_ID;
-static gint ett_e2ap_GlobalNgENB_ID;
-static gint ett_e2ap_GNB_ID;
-static gint ett_e2ap_GUAMI;
-static gint ett_e2ap_NgENB_ID;
-static gint ett_e2ap_NR_CGI;
-static gint ett_e2ap_S_NSSAI;
-static gint ett_e2ap_GlobalNGRANNodeID;
-static gint ett_e2ap_NR_ARFCN;
-static gint ett_e2ap_NRFrequencyBand_List;
-static gint ett_e2ap_NRFrequencyBandItem;
-static gint ett_e2ap_NRFrequencyInfo;
-static gint ett_e2ap_SupportedSULBandList;
-static gint ett_e2ap_SupportedSULFreqBandItem;
-static gint ett_e2ap_NeighborCell_List;
-static gint ett_e2ap_NeighborCell_Item;
-static gint ett_e2ap_NeighborCell_Item_Choice_NR;
-static gint ett_e2ap_NeighborCell_Item_Choice_E_UTRA;
-static gint ett_e2ap_NeighborRelation_Info;
-static gint ett_e2ap_EventTrigger_Cell_Info;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item;
-static gint ett_e2ap_EventTrigger_Cell_Info_Item;
-static gint ett_e2ap_T_cellType;
-static gint ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual;
-static gint ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Group;
-static gint ett_e2ap_EventTrigger_UE_Info;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item;
-static gint ett_e2ap_EventTrigger_UE_Info_Item;
-static gint ett_e2ap_T_ueType;
-static gint ett_e2ap_EventTrigger_UE_Info_Item_Choice_Individual;
-static gint ett_e2ap_EventTrigger_UE_Info_Item_Choice_Group;
-static gint ett_e2ap_EventTrigger_UEevent_Info;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item;
-static gint ett_e2ap_EventTrigger_UEevent_Info_Item;
-static gint ett_e2ap_RANParameter_Definition;
-static gint ett_e2ap_RANParameter_Definition_Choice;
-static gint ett_e2ap_RANParameter_Definition_Choice_LIST;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item;
-static gint ett_e2ap_RANParameter_Definition_Choice_LIST_Item;
-static gint ett_e2ap_RANParameter_Definition_Choice_STRUCTURE;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item;
-static gint ett_e2ap_RANParameter_Definition_Choice_STRUCTURE_Item;
-static gint ett_e2ap_RANParameter_Value;
-static gint ett_e2ap_RANParameter_ValueType;
-static gint ett_e2ap_RANParameter_ValueType_Choice_ElementTrue;
-static gint ett_e2ap_RANParameter_ValueType_Choice_ElementFalse;
-static gint ett_e2ap_RANParameter_ValueType_Choice_Structure;
-static gint ett_e2ap_RANParameter_ValueType_Choice_List;
-static gint ett_e2ap_RANParameter_STRUCTURE;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item;
-static gint ett_e2ap_RANParameter_STRUCTURE_Item;
-static gint ett_e2ap_RANParameter_LIST;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE;
-static gint ett_e2ap_RANParameter_Testing;
-static gint ett_e2ap_RANParameter_TestingCondition;
-static gint ett_e2ap_RANParameter_Testing_Item;
-static gint ett_e2ap_T_ranParameter_Type;
-static gint ett_e2ap_RANParameter_Testing_Item_Choice_List;
-static gint ett_e2ap_RANParameter_Testing_Item_Choice_Structure;
-static gint ett_e2ap_RANParameter_Testing_Item_Choice_ElementTrue;
-static gint ett_e2ap_RANParameter_Testing_Item_Choice_ElementFalse;
-static gint ett_e2ap_RANParameter_Testing_LIST;
-static gint ett_e2ap_RANParameter_Testing_STRUCTURE;
-static gint ett_e2ap_RIC_PolicyAction;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item;
-static gint ett_e2ap_RIC_PolicyAction_RANParameter_Item;
-static gint ett_e2ap_E2SM_RC_EventTrigger;
-static gint ett_e2ap_T_ric_eventTrigger_formats;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format1_Item;
-static gint ett_e2ap_MessageType_Choice;
-static gint ett_e2ap_MessageType_Choice_NI;
-static gint ett_e2ap_MessageType_Choice_RRC;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format2;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format3;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format3_Item;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format4;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format4_Item;
-static gint ett_e2ap_TriggerType_Choice;
-static gint ett_e2ap_TriggerType_Choice_RRCstate;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item;
-static gint ett_e2ap_TriggerType_Choice_RRCstate_Item;
-static gint ett_e2ap_TriggerType_Choice_UEID;
-static gint ett_e2ap_TriggerType_Choice_L2state;
-static gint ett_e2ap_E2SM_RC_EventTrigger_Format5;
-static gint ett_e2ap_E2SM_RC_ActionDefinition;
-static gint ett_e2ap_T_ric_actionDefinition_formats;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format1_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format2;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format2_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format3;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format3_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format4;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format4_Style_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format4_Indication_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item;
-static gint ett_e2ap_E2SM_RC_ActionDefinition_Format4_RANP_Item;
-static gint ett_e2ap_E2SM_RC_IndicationHeader;
-static gint ett_e2ap_T_ric_indicationHeader_formats;
-static gint ett_e2ap_E2SM_RC_IndicationHeader_Format1;
-static gint ett_e2ap_E2SM_RC_IndicationHeader_Format2;
-static gint ett_e2ap_E2SM_RC_IndicationHeader_Format3;
-static gint ett_e2ap_E2SM_RC_IndicationMessage;
-static gint ett_e2ap_T_ric_indicationMessage_formats;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format1_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format2;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format2_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format2_RANParameter_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format3;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format3_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format4;
-static gint ett_e2ap_SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE;
-static gint ett_e2ap_SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemUE;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemCell;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format5;
-static gint ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format5_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format6;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format6_Style_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format6_Indication_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item;
-static gint ett_e2ap_E2SM_RC_IndicationMessage_Format6_RANP_Item;
-static gint ett_e2ap_E2SM_RC_CallProcessID;
-static gint ett_e2ap_T_ric_callProcessID_formats;
-static gint ett_e2ap_E2SM_RC_CallProcessID_Format1;
-static gint ett_e2ap_E2SM_RC_ControlHeader;
-static gint ett_e2ap_T_ric_controlHeader_formats;
-static gint ett_e2ap_E2SM_RC_ControlHeader_Format1;
-static gint ett_e2ap_E2SM_RC_ControlHeader_Format2;
-static gint ett_e2ap_E2SM_RC_ControlMessage;
-static gint ett_e2ap_T_ric_controlMessage_formats;
-static gint ett_e2ap_E2SM_RC_ControlMessage_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item;
-static gint ett_e2ap_E2SM_RC_ControlMessage_Format1_Item;
-static gint ett_e2ap_E2SM_RC_ControlMessage_Format2;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item;
-static gint ett_e2ap_E2SM_RC_ControlMessage_Format2_Style_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item;
-static gint ett_e2ap_E2SM_RC_ControlMessage_Format2_ControlAction_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome;
-static gint ett_e2ap_T_ric_controlOutcome_formats;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format1_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format2;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format2_Style_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format2_RANP_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format3;
-static gint ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item;
-static gint ett_e2ap_E2SM_RC_ControlOutcome_Format3_Item;
-static gint ett_e2ap_E2SM_RC_RANFunctionDefinition;
-static gint ett_e2ap_RANFunctionDefinition_EventTrigger;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item;
-static gint ett_e2ap_RANFunctionDefinition_EventTrigger_Style_Item;
-static gint ett_e2ap_L2Parameters_RANParameter_Item;
-static gint ett_e2ap_UEIdentification_RANParameter_Item;
-static gint ett_e2ap_CellIdentification_RANParameter_Item;
-static gint ett_e2ap_RANFunctionDefinition_EventTrigger_CallProcess_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item;
-static gint ett_e2ap_RANFunctionDefinition_EventTrigger_Breakpoint_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item;
-static gint ett_e2ap_CallProcessBreakpoint_RANParameter_Item;
-static gint ett_e2ap_RANFunctionDefinition_Report;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item;
-static gint ett_e2ap_RANFunctionDefinition_Report_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item;
-static gint ett_e2ap_Report_RANParameter_Item;
-static gint ett_e2ap_RANFunctionDefinition_Insert;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item;
-static gint ett_e2ap_RANFunctionDefinition_Insert_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item;
-static gint ett_e2ap_RANFunctionDefinition_Insert_Indication_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item;
-static gint ett_e2ap_InsertIndication_RANParameter_Item;
-static gint ett_e2ap_RANFunctionDefinition_Control;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item;
-static gint ett_e2ap_RANFunctionDefinition_Control_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item;
-static gint ett_e2ap_ControlOutcome_RANParameter_Item;
-static gint ett_e2ap_RANFunctionDefinition_Control_Action_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item;
-static gint ett_e2ap_ControlAction_RANParameter_Item;
-static gint ett_e2ap_RANFunctionDefinition_Policy;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item;
-static gint ett_e2ap_RANFunctionDefinition_Policy_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item;
-static gint ett_e2ap_RANFunctionDefinition_Policy_Action_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item;
-static gint ett_e2ap_PolicyAction_RANParameter_Item;
-static gint ett_e2ap_PolicyCondition_RANParameter_Item;
-static gint ett_e2ap_BinRangeValue;
-static gint ett_e2ap_MeasurementType;
-static gint ett_e2ap_MeasurementLabel;
-static gint ett_e2ap_TestCondInfo;
-static gint ett_e2ap_TestCond_Type;
-static gint ett_e2ap_TestCond_Value;
-static gint ett_e2ap_BinRangeDefinition;
-static gint ett_e2ap_BinRangeList;
-static gint ett_e2ap_BinRangeItem;
-static gint ett_e2ap_DistMeasurementBinRangeList;
-static gint ett_e2ap_DistMeasurementBinRangeItem;
-static gint ett_e2ap_MeasurementInfoList;
-static gint ett_e2ap_MeasurementInfoItem;
-static gint ett_e2ap_LabelInfoList;
-static gint ett_e2ap_LabelInfoItem;
-static gint ett_e2ap_MeasurementData;
-static gint ett_e2ap_MeasurementDataItem;
-static gint ett_e2ap_MeasurementRecord;
-static gint ett_e2ap_MeasurementRecordItem;
-static gint ett_e2ap_MeasurementInfo_Action_List;
-static gint ett_e2ap_MeasurementInfo_Action_Item;
-static gint ett_e2ap_MeasurementCondList;
-static gint ett_e2ap_MeasurementCondItem;
-static gint ett_e2ap_MeasurementCondUEidList;
-static gint ett_e2ap_MeasurementCondUEidItem;
-static gint ett_e2ap_MatchingCondList;
-static gint ett_e2ap_MatchingCondItem;
-static gint ett_e2ap_MatchingCondItem_Choice;
-static gint ett_e2ap_MatchingUEidList;
-static gint ett_e2ap_MatchingUEidItem;
-static gint ett_e2ap_MatchingUEidPerGP;
-static gint ett_e2ap_MatchingUEidPerGP_Item;
-static gint ett_e2ap_T_matchedPerGP;
-static gint ett_e2ap_MatchingUEidList_PerGP;
-static gint ett_e2ap_MatchingUEidItem_PerGP;
-static gint ett_e2ap_MatchingUeCondPerSubList;
-static gint ett_e2ap_MatchingUeCondPerSubItem;
-static gint ett_e2ap_MatchingUEidPerSubList;
-static gint ett_e2ap_MatchingUEidPerSubItem;
-static gint ett_e2ap_UEMeasurementReportList;
-static gint ett_e2ap_UEMeasurementReportItem;
-static gint ett_e2ap_E2SM_KPM_EventTriggerDefinition;
-static gint ett_e2ap_T_eventDefinition_formats;
-static gint ett_e2ap_E2SM_KPM_EventTriggerDefinition_Format1;
-static gint ett_e2ap_E2SM_KPM_ActionDefinition;
-static gint ett_e2ap_T_actionDefinition_formats;
-static gint ett_e2ap_E2SM_KPM_ActionDefinition_Format1;
-static gint ett_e2ap_E2SM_KPM_ActionDefinition_Format2;
-static gint ett_e2ap_E2SM_KPM_ActionDefinition_Format3;
-static gint ett_e2ap_E2SM_KPM_ActionDefinition_Format4;
-static gint ett_e2ap_E2SM_KPM_ActionDefinition_Format5;
-static gint ett_e2ap_E2SM_KPM_IndicationHeader;
-static gint ett_e2ap_T_indicationHeader_formats;
-static gint ett_e2ap_E2SM_KPM_IndicationHeader_Format1;
-static gint ett_e2ap_E2SM_KPM_IndicationMessage;
-static gint ett_e2ap_T_indicationMessage_formats;
-static gint ett_e2ap_E2SM_KPM_IndicationMessage_Format1;
-static gint ett_e2ap_E2SM_KPM_IndicationMessage_Format2;
-static gint ett_e2ap_E2SM_KPM_IndicationMessage_Format3;
-static gint ett_e2ap_E2SM_KPM_RANfunction_Description;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item;
-static gint ett_e2ap_RIC_EventTriggerStyle_Item;
-static gint ett_e2ap_RIC_ReportStyle_Item;
-static gint ett_e2ap_E2SM_NI_EventTriggerDefinition;
-static gint ett_e2ap_E2SM_NI_EventTriggerDefinition_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item;
-static gint ett_e2ap_E2SM_NI_ActionDefinition;
-static gint ett_e2ap_E2SM_NI_ActionDefinitionFormat;
-static gint ett_e2ap_E2SM_NI_ActionDefinition_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item;
-static gint ett_e2ap_E2SM_NI_ActionDefinition_Format2;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item;
-static gint ett_e2ap_E2SM_NI_IndicationHeader;
-static gint ett_e2ap_E2SM_NI_IndicationHeader_Format1;
-static gint ett_e2ap_E2SM_NI_IndicationMessage;
-static gint ett_e2ap_E2SM_NI_IndicationMessage_Format1;
-static gint ett_e2ap_E2SM_NI_CallProcessID;
-static gint ett_e2ap_E2SM_NI_CallProcessID_Format1;
-static gint ett_e2ap_E2SM_NI_CallProcessID_Format2;
-static gint ett_e2ap_E2SM_NI_ControlHeader;
-static gint ett_e2ap_E2SM_NI_ControlHeader_Format1;
-static gint ett_e2ap_E2SM_NI_ControlMessage;
-static gint ett_e2ap_E2SM_NI_ControlMessage_Format1;
-static gint ett_e2ap_E2SM_NI_ControlOutcome;
-static gint ett_e2ap_E2SM_NI_ControlOutcome_Format1;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item;
-static gint ett_e2ap_E2SM_NI_RANfunction_Description;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item;
-static gint ett_e2ap_E2SM_NI_RANfunction_Item;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List;
-static gint ett_e2ap_Global_gNB_DU_ID;
-static gint ett_e2ap_Global_gNB_CU_UP_ID;
-static gint ett_e2ap_NI_Identifier;
-static gint ett_e2ap_NI_MessageType;
-static gint ett_e2ap_NI_MessageTypeApproach1;
-static gint ett_e2ap_NI_ProtocolIE_Item;
-static gint ett_e2ap_NI_ProtocolIE_Value;
-static gint ett_e2ap_RANimperativePolicy;
-static gint ett_e2ap_RANparameter_Item;
-static gint ett_e2ap_RANparameterDef_Item;
-static gint ett_e2ap_RANparameter_Value;
-static gint ett_e2ap_RANueGroup_Item;
-static gint ett_e2ap_RANueGroupDefinition;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item;
-static gint ett_e2ap_RANueGroupDef_Item;
-static gint ett_e2ap_RIC_ControlStyle_List;
-static gint ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item;
-static gint ett_e2ap_RIC_EventTriggerStyle_List;
-static gint ett_e2ap_RIC_InsertStyle_List;
-static gint ett_e2ap_RIC_PolicyStyle_List;
-static gint ett_e2ap_RIC_ReportStyle_List;
+static int ett_e2ap_ProtocolIE_Container;
+static int ett_e2ap_ProtocolIE_Field;
+static int ett_e2ap_Cause;
+static int ett_e2ap_CriticalityDiagnostics;
+static int ett_e2ap_CriticalityDiagnostics_IE_List;
+static int ett_e2ap_CriticalityDiagnostics_IE_Item;
+static int ett_e2ap_E2nodeComponentConfiguration;
+static int ett_e2ap_E2nodeComponentConfigurationAck;
+static int ett_e2ap_E2nodeComponentID;
+static int ett_e2ap_E2nodeComponentInterfaceE1;
+static int ett_e2ap_E2nodeComponentInterfaceF1;
+static int ett_e2ap_E2nodeComponentInterfaceNG;
+static int ett_e2ap_E2nodeComponentInterfaceS1;
+static int ett_e2ap_E2nodeComponentInterfaceX2;
+static int ett_e2ap_E2nodeComponentInterfaceXn;
+static int ett_e2ap_E2nodeComponentInterfaceW1;
+static int ett_e2ap_ENB_ID;
+static int ett_e2ap_ENB_ID_Choice;
+static int ett_e2ap_ENGNB_ID;
+static int ett_e2ap_GlobalE2node_ID;
+static int ett_e2ap_GlobalE2node_en_gNB_ID;
+static int ett_e2ap_GlobalE2node_eNB_ID;
+static int ett_e2ap_GlobalE2node_gNB_ID;
+static int ett_e2ap_GlobalE2node_ng_eNB_ID;
+static int ett_e2ap_GlobalENB_ID;
+static int ett_e2ap_GlobalenGNB_ID;
+static int ett_e2ap_GlobalgNB_ID;
+static int ett_e2ap_GlobalngeNB_ID;
+static int ett_e2ap_GlobalNG_RANNode_ID;
+static int ett_e2ap_GlobalRIC_ID;
+static int ett_e2ap_GNB_ID_Choice;
+static int ett_e2ap_RICrequestID;
+static int ett_e2ap_RICsubsequentAction;
+static int ett_e2ap_TNLinformation;
+static int ett_e2ap_RICsubscriptionRequest;
+static int ett_e2ap_RICsubscriptionDetails;
+static int ett_e2ap_RICactions_ToBeSetup_List;
+static int ett_e2ap_RICaction_ToBeSetup_Item;
+static int ett_e2ap_RICsubscriptionResponse;
+static int ett_e2ap_RICaction_Admitted_List;
+static int ett_e2ap_RICaction_Admitted_Item;
+static int ett_e2ap_RICaction_NotAdmitted_List;
+static int ett_e2ap_RICaction_NotAdmitted_Item;
+static int ett_e2ap_RICsubscriptionFailure;
+static int ett_e2ap_RICsubscriptionDeleteRequest;
+static int ett_e2ap_RICsubscriptionDeleteResponse;
+static int ett_e2ap_RICsubscriptionDeleteFailure;
+static int ett_e2ap_RICsubscriptionDeleteRequired;
+static int ett_e2ap_RICsubscription_List_withCause;
+static int ett_e2ap_RICsubscription_withCause_Item;
+static int ett_e2ap_RICsubscriptionModificationRequest;
+static int ett_e2ap_RICactions_ToBeRemovedForModification_List;
+static int ett_e2ap_RICaction_ToBeRemovedForModification_Item;
+static int ett_e2ap_RICactions_ToBeModifiedForModification_List;
+static int ett_e2ap_RICaction_ToBeModifiedForModification_Item;
+static int ett_e2ap_RICactions_ToBeAddedForModification_List;
+static int ett_e2ap_RICaction_ToBeAddedForModification_Item;
+static int ett_e2ap_RICsubscriptionModificationResponse;
+static int ett_e2ap_RICactions_RemovedForModification_List;
+static int ett_e2ap_RICaction_RemovedForModification_Item;
+static int ett_e2ap_RICactions_FailedToBeRemovedForModification_List;
+static int ett_e2ap_RICaction_FailedToBeRemovedForModification_Item;
+static int ett_e2ap_RICactions_ModifiedForModification_List;
+static int ett_e2ap_RICaction_ModifiedForModification_Item;
+static int ett_e2ap_RICactions_FailedToBeModifiedForModification_List;
+static int ett_e2ap_RICaction_FailedToBeModifiedForModification_Item;
+static int ett_e2ap_RICactions_AddedForModification_List;
+static int ett_e2ap_RICaction_AddedForModification_Item;
+static int ett_e2ap_RICactions_FailedToBeAddedForModification_List;
+static int ett_e2ap_RICaction_FailedToBeAddedForModification_Item;
+static int ett_e2ap_RICsubscriptionModificationFailure;
+static int ett_e2ap_RICsubscriptionModificationRequired;
+static int ett_e2ap_RICactions_RequiredToBeModified_List;
+static int ett_e2ap_RICaction_RequiredToBeModified_Item;
+static int ett_e2ap_RICactions_RequiredToBeRemoved_List;
+static int ett_e2ap_RICaction_RequiredToBeRemoved_Item;
+static int ett_e2ap_RICsubscriptionModificationConfirm;
+static int ett_e2ap_RICactions_ConfirmedForModification_List;
+static int ett_e2ap_RICaction_ConfirmedForModification_Item;
+static int ett_e2ap_RICactions_RefusedToBeModified_List;
+static int ett_e2ap_RICaction_RefusedToBeModified_Item;
+static int ett_e2ap_RICactions_ConfirmedForRemoval_List;
+static int ett_e2ap_RICaction_ConfirmedForRemoval_Item;
+static int ett_e2ap_RICactions_RefusedToBeRemoved_List;
+static int ett_e2ap_RICaction_RefusedToBeRemoved_Item;
+static int ett_e2ap_RICsubscriptionModificationRefuse;
+static int ett_e2ap_RICindication;
+static int ett_e2ap_RICcontrolRequest;
+static int ett_e2ap_RICcontrolAcknowledge;
+static int ett_e2ap_RICcontrolFailure;
+static int ett_e2ap_RICQueryRequest;
+static int ett_e2ap_RICQueryResponse;
+static int ett_e2ap_RICQueryFailure;
+static int ett_e2ap_ErrorIndication;
+static int ett_e2ap_E2setupRequest;
+static int ett_e2ap_E2setupResponse;
+static int ett_e2ap_E2setupFailure;
+static int ett_e2ap_E2connectionUpdate;
+static int ett_e2ap_E2connectionUpdate_List;
+static int ett_e2ap_E2connectionUpdate_Item;
+static int ett_e2ap_E2connectionUpdateRemove_List;
+static int ett_e2ap_E2connectionUpdateRemove_Item;
+static int ett_e2ap_E2connectionUpdateAcknowledge;
+static int ett_e2ap_E2connectionSetupFailed_List;
+static int ett_e2ap_E2connectionSetupFailed_Item;
+static int ett_e2ap_E2connectionUpdateFailure;
+static int ett_e2ap_E2nodeConfigurationUpdate;
+static int ett_e2ap_E2nodeComponentConfigAddition_List;
+static int ett_e2ap_E2nodeComponentConfigAddition_Item;
+static int ett_e2ap_E2nodeComponentConfigUpdate_List;
+static int ett_e2ap_E2nodeComponentConfigUpdate_Item;
+static int ett_e2ap_E2nodeComponentConfigRemoval_List;
+static int ett_e2ap_E2nodeComponentConfigRemoval_Item;
+static int ett_e2ap_E2nodeTNLassociationRemoval_List;
+static int ett_e2ap_E2nodeTNLassociationRemoval_Item;
+static int ett_e2ap_E2nodeConfigurationUpdateAcknowledge;
+static int ett_e2ap_E2nodeComponentConfigAdditionAck_List;
+static int ett_e2ap_E2nodeComponentConfigAdditionAck_Item;
+static int ett_e2ap_E2nodeComponentConfigUpdateAck_List;
+static int ett_e2ap_E2nodeComponentConfigUpdateAck_Item;
+static int ett_e2ap_E2nodeComponentConfigRemovalAck_List;
+static int ett_e2ap_E2nodeComponentConfigRemovalAck_Item;
+static int ett_e2ap_E2nodeConfigurationUpdateFailure;
+static int ett_e2ap_ResetRequest;
+static int ett_e2ap_ResetResponse;
+static int ett_e2ap_RICserviceUpdate;
+static int ett_e2ap_RANfunctions_List;
+static int ett_e2ap_RANfunction_Item;
+static int ett_e2ap_RANfunctionsID_List;
+static int ett_e2ap_RANfunctionID_Item;
+static int ett_e2ap_RICserviceUpdateAcknowledge;
+static int ett_e2ap_RANfunctionsIDcause_List;
+static int ett_e2ap_RANfunctionIDcause_Item;
+static int ett_e2ap_RICserviceUpdateFailure;
+static int ett_e2ap_RICserviceQuery;
+static int ett_e2ap_E2RemovalRequest;
+static int ett_e2ap_E2RemovalResponse;
+static int ett_e2ap_E2RemovalFailure;
+static int ett_e2ap_E2AP_PDU;
+static int ett_e2ap_InitiatingMessage;
+static int ett_e2ap_SuccessfulOutcome;
+static int ett_e2ap_UnsuccessfulOutcome;
+static int ett_e2ap_CGI;
+static int ett_e2ap_InterfaceIdentifier;
+static int ett_e2ap_InterfaceID_NG;
+static int ett_e2ap_InterfaceID_Xn;
+static int ett_e2ap_InterfaceID_F1;
+static int ett_e2ap_InterfaceID_E1;
+static int ett_e2ap_InterfaceID_S1;
+static int ett_e2ap_InterfaceID_X2;
+static int ett_e2ap_T_nodeType;
+static int ett_e2ap_InterfaceID_W1;
+static int ett_e2ap_Interface_MessageID;
+static int ett_e2ap_RANfunction_Name;
+static int ett_e2ap_RRC_MessageID;
+static int ett_e2ap_T_rrcType;
+static int ett_e2ap_ServingCell_ARFCN;
+static int ett_e2ap_ServingCell_PCI;
+static int ett_e2ap_UEID;
+static int ett_e2ap_UEID_GNB;
+static int ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_List;
+static int ett_e2ap_UEID_GNB_CU_CP_E1AP_ID_Item;
+static int ett_e2ap_UEID_GNB_CU_F1AP_ID_List;
+static int ett_e2ap_UEID_GNB_CU_CP_F1AP_ID_Item;
+static int ett_e2ap_UEID_GNB_DU;
+static int ett_e2ap_UEID_GNB_CU_UP;
+static int ett_e2ap_UEID_NG_ENB;
+static int ett_e2ap_UEID_NG_ENB_DU;
+static int ett_e2ap_UEID_EN_GNB;
+static int ett_e2ap_UEID_ENB;
+static int ett_e2ap_GUMMEI;
+static int ett_e2ap_EUTRA_CGI;
+static int ett_e2ap_GlobalGNB_ID;
+static int ett_e2ap_GlobalNgENB_ID;
+static int ett_e2ap_GNB_ID;
+static int ett_e2ap_GUAMI;
+static int ett_e2ap_NgENB_ID;
+static int ett_e2ap_NR_CGI;
+static int ett_e2ap_S_NSSAI;
+static int ett_e2ap_GlobalNGRANNodeID;
+static int ett_e2ap_NR_ARFCN;
+static int ett_e2ap_NRFrequencyBand_List;
+static int ett_e2ap_NRFrequencyBandItem;
+static int ett_e2ap_NRFrequencyInfo;
+static int ett_e2ap_SupportedSULBandList;
+static int ett_e2ap_SupportedSULFreqBandItem;
+static int ett_e2ap_NeighborCell_List;
+static int ett_e2ap_NeighborCell_Item;
+static int ett_e2ap_NeighborCell_Item_Choice_NR;
+static int ett_e2ap_NeighborCell_Item_Choice_E_UTRA;
+static int ett_e2ap_NeighborRelation_Info;
+static int ett_e2ap_EventTrigger_Cell_Info;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellInfo_OF_EventTrigger_Cell_Info_Item;
+static int ett_e2ap_EventTrigger_Cell_Info_Item;
+static int ett_e2ap_T_cellType;
+static int ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual;
+static int ett_e2ap_EventTrigger_Cell_Info_Item_Choice_Group;
+static int ett_e2ap_EventTrigger_UE_Info;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfo_OF_EventTrigger_UE_Info_Item;
+static int ett_e2ap_EventTrigger_UE_Info_Item;
+static int ett_e2ap_T_ueType;
+static int ett_e2ap_EventTrigger_UE_Info_Item_Choice_Individual;
+static int ett_e2ap_EventTrigger_UE_Info_Item_Choice_Group;
+static int ett_e2ap_EventTrigger_UEevent_Info;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEeventInfo_OF_EventTrigger_UEevent_Info_Item;
+static int ett_e2ap_EventTrigger_UEevent_Info_Item;
+static int ett_e2ap_RANParameter_Definition;
+static int ett_e2ap_RANParameter_Definition_Choice;
+static int ett_e2ap_RANParameter_Definition_Choice_LIST;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_Definition_Choice_LIST_Item;
+static int ett_e2ap_RANParameter_Definition_Choice_LIST_Item;
+static int ett_e2ap_RANParameter_Definition_Choice_STRUCTURE;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_Definition_Choice_STRUCTURE_Item;
+static int ett_e2ap_RANParameter_Definition_Choice_STRUCTURE_Item;
+static int ett_e2ap_RANParameter_Value;
+static int ett_e2ap_RANParameter_ValueType;
+static int ett_e2ap_RANParameter_ValueType_Choice_ElementTrue;
+static int ett_e2ap_RANParameter_ValueType_Choice_ElementFalse;
+static int ett_e2ap_RANParameter_ValueType_Choice_Structure;
+static int ett_e2ap_RANParameter_ValueType_Choice_List;
+static int ett_e2ap_RANParameter_STRUCTURE;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersinStructure_OF_RANParameter_STRUCTURE_Item;
+static int ett_e2ap_RANParameter_STRUCTURE_Item;
+static int ett_e2ap_RANParameter_LIST;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofItemsinList_OF_RANParameter_STRUCTURE;
+static int ett_e2ap_RANParameter_Testing;
+static int ett_e2ap_RANParameter_TestingCondition;
+static int ett_e2ap_RANParameter_Testing_Item;
+static int ett_e2ap_T_ranParameter_Type;
+static int ett_e2ap_RANParameter_Testing_Item_Choice_List;
+static int ett_e2ap_RANParameter_Testing_Item_Choice_Structure;
+static int ett_e2ap_RANParameter_Testing_Item_Choice_ElementTrue;
+static int ett_e2ap_RANParameter_Testing_Item_Choice_ElementFalse;
+static int ett_e2ap_RANParameter_Testing_LIST;
+static int ett_e2ap_RANParameter_Testing_STRUCTURE;
+static int ett_e2ap_RIC_PolicyAction;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_RIC_PolicyAction_RANParameter_Item;
+static int ett_e2ap_RIC_PolicyAction_RANParameter_Item;
+static int ett_e2ap_E2SM_RC_EventTrigger;
+static int ett_e2ap_T_ric_eventTrigger_formats;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofMessages_OF_E2SM_RC_EventTrigger_Format1_Item;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format1_Item;
+static int ett_e2ap_MessageType_Choice;
+static int ett_e2ap_MessageType_Choice_NI;
+static int ett_e2ap_MessageType_Choice_RRC;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format2;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format3;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofE2InfoChanges_OF_E2SM_RC_EventTrigger_Format3_Item;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format3_Item;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format4;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEInfoChanges_OF_E2SM_RC_EventTrigger_Format4_Item;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format4_Item;
+static int ett_e2ap_TriggerType_Choice;
+static int ett_e2ap_TriggerType_Choice_RRCstate;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRRCstate_OF_TriggerType_Choice_RRCstate_Item;
+static int ett_e2ap_TriggerType_Choice_RRCstate_Item;
+static int ett_e2ap_TriggerType_Choice_UEID;
+static int ett_e2ap_TriggerType_Choice_L2state;
+static int ett_e2ap_E2SM_RC_EventTrigger_Format5;
+static int ett_e2ap_E2SM_RC_ActionDefinition;
+static int ett_e2ap_T_ric_actionDefinition_formats;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofParametersToReport_OF_E2SM_RC_ActionDefinition_Format1_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format1_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format2;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyConditions_OF_E2SM_RC_ActionDefinition_Format2_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format2_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format3;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format3_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format3_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format4;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ActionDefinition_Format4_Style_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format4_Style_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_ActionDefinition_Format4_Indication_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format4_Indication_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ActionDefinition_Format4_RANP_Item;
+static int ett_e2ap_E2SM_RC_ActionDefinition_Format4_RANP_Item;
+static int ett_e2ap_E2SM_RC_IndicationHeader;
+static int ett_e2ap_T_ric_indicationHeader_formats;
+static int ett_e2ap_E2SM_RC_IndicationHeader_Format1;
+static int ett_e2ap_E2SM_RC_IndicationHeader_Format2;
+static int ett_e2ap_E2SM_RC_IndicationHeader_Format3;
+static int ett_e2ap_E2SM_RC_IndicationMessage;
+static int ett_e2ap_T_ric_indicationMessage_formats;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format1_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format1_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format2;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format2_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format2_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format2_RANParameter_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format2_RANParameter_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format3;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format3_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format3_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format4;
+static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofUEID_OF_E2SM_RC_IndicationMessage_Format4_ItemUE;
+static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofCellID_OF_E2SM_RC_IndicationMessage_Format4_ItemCell;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemUE;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format4_ItemCell;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format5;
+static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format5_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format5_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format6;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_IndicationMessage_Format6_Style_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format6_Style_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndicationActions_OF_E2SM_RC_IndicationMessage_Format6_Indication_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format6_Indication_Item;
+static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_IndicationMessage_Format6_RANP_Item;
+static int ett_e2ap_E2SM_RC_IndicationMessage_Format6_RANP_Item;
+static int ett_e2ap_E2SM_RC_CallProcessID;
+static int ett_e2ap_T_ric_callProcessID_formats;
+static int ett_e2ap_E2SM_RC_CallProcessID_Format1;
+static int ett_e2ap_E2SM_RC_ControlHeader;
+static int ett_e2ap_T_ric_controlHeader_formats;
+static int ett_e2ap_E2SM_RC_ControlHeader_Format1;
+static int ett_e2ap_E2SM_RC_ControlHeader_Format2;
+static int ett_e2ap_E2SM_RC_ControlMessage;
+static int ett_e2ap_T_ric_controlMessage_formats;
+static int ett_e2ap_E2SM_RC_ControlMessage_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlMessage_Format1_Item;
+static int ett_e2ap_E2SM_RC_ControlMessage_Format1_Item;
+static int ett_e2ap_E2SM_RC_ControlMessage_Format2;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlMessage_Format2_Style_Item;
+static int ett_e2ap_E2SM_RC_ControlMessage_Format2_Style_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlMessage_Format2_ControlAction_Item;
+static int ett_e2ap_E2SM_RC_ControlMessage_Format2_ControlAction_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome;
+static int ett_e2ap_T_ric_controlOutcome_formats;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format1_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format1_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format2;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_E2SM_RC_ControlOutcome_Format2_Style_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format2_Style_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofMulCtrlActions_OF_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format2_ControlOutcome_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_E2SM_RC_ControlOutcome_Format2_RANP_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format2_RANP_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format3;
+static int ett_e2ap_SEQUENCE_SIZE_0_maxnoofRANOutcomeParameters_OF_E2SM_RC_ControlOutcome_Format3_Item;
+static int ett_e2ap_E2SM_RC_ControlOutcome_Format3_Item;
+static int ett_e2ap_E2SM_RC_RANFunctionDefinition;
+static int ett_e2ap_RANFunctionDefinition_EventTrigger;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_EventTrigger_Style_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_L2Parameters_RANParameter_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessTypes_OF_RANFunctionDefinition_EventTrigger_CallProcess_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_UEIdentification_RANParameter_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CellIdentification_RANParameter_Item;
+static int ett_e2ap_RANFunctionDefinition_EventTrigger_Style_Item;
+static int ett_e2ap_L2Parameters_RANParameter_Item;
+static int ett_e2ap_UEIdentification_RANParameter_Item;
+static int ett_e2ap_CellIdentification_RANParameter_Item;
+static int ett_e2ap_RANFunctionDefinition_EventTrigger_CallProcess_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofCallProcessBreakpoints_OF_RANFunctionDefinition_EventTrigger_Breakpoint_Item;
+static int ett_e2ap_RANFunctionDefinition_EventTrigger_Breakpoint_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_CallProcessBreakpoint_RANParameter_Item;
+static int ett_e2ap_CallProcessBreakpoint_RANParameter_Item;
+static int ett_e2ap_RANFunctionDefinition_Report;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Report_Item;
+static int ett_e2ap_RANFunctionDefinition_Report_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_Report_RANParameter_Item;
+static int ett_e2ap_Report_RANParameter_Item;
+static int ett_e2ap_RANFunctionDefinition_Insert;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Insert_Item;
+static int ett_e2ap_RANFunctionDefinition_Insert_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofInsertIndication_OF_RANFunctionDefinition_Insert_Indication_Item;
+static int ett_e2ap_RANFunctionDefinition_Insert_Indication_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_InsertIndication_RANParameter_Item;
+static int ett_e2ap_InsertIndication_RANParameter_Item;
+static int ett_e2ap_RANFunctionDefinition_Control;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Control_Item;
+static int ett_e2ap_RANFunctionDefinition_Control_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofControlAction_OF_RANFunctionDefinition_Control_Action_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRANOutcomeParameters_OF_ControlOutcome_RANParameter_Item;
+static int ett_e2ap_ControlOutcome_RANParameter_Item;
+static int ett_e2ap_RANFunctionDefinition_Control_Action_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_ControlAction_RANParameter_Item;
+static int ett_e2ap_ControlAction_RANParameter_Item;
+static int ett_e2ap_RANFunctionDefinition_Policy;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RANFunctionDefinition_Policy_Item;
+static int ett_e2ap_RANFunctionDefinition_Policy_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofPolicyAction_OF_RANFunctionDefinition_Policy_Action_Item;
+static int ett_e2ap_RANFunctionDefinition_Policy_Action_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyAction_RANParameter_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofAssociatedRANParameters_OF_PolicyCondition_RANParameter_Item;
+static int ett_e2ap_PolicyAction_RANParameter_Item;
+static int ett_e2ap_PolicyCondition_RANParameter_Item;
+static int ett_e2ap_BinRangeValue;
+static int ett_e2ap_MeasurementType;
+static int ett_e2ap_MeasurementLabel;
+static int ett_e2ap_TestCondInfo;
+static int ett_e2ap_TestCond_Type;
+static int ett_e2ap_TestCond_Value;
+static int ett_e2ap_BinRangeDefinition;
+static int ett_e2ap_BinRangeList;
+static int ett_e2ap_BinRangeItem;
+static int ett_e2ap_DistMeasurementBinRangeList;
+static int ett_e2ap_DistMeasurementBinRangeItem;
+static int ett_e2ap_MeasurementInfoList;
+static int ett_e2ap_MeasurementInfoItem;
+static int ett_e2ap_LabelInfoList;
+static int ett_e2ap_LabelInfoItem;
+static int ett_e2ap_MeasurementData;
+static int ett_e2ap_MeasurementDataItem;
+static int ett_e2ap_MeasurementRecord;
+static int ett_e2ap_MeasurementRecordItem;
+static int ett_e2ap_MeasurementInfo_Action_List;
+static int ett_e2ap_MeasurementInfo_Action_Item;
+static int ett_e2ap_MeasurementCondList;
+static int ett_e2ap_MeasurementCondItem;
+static int ett_e2ap_MeasurementCondUEidList;
+static int ett_e2ap_MeasurementCondUEidItem;
+static int ett_e2ap_MatchingCondList;
+static int ett_e2ap_MatchingCondItem;
+static int ett_e2ap_MatchingCondItem_Choice;
+static int ett_e2ap_MatchingUEidList;
+static int ett_e2ap_MatchingUEidItem;
+static int ett_e2ap_MatchingUEidPerGP;
+static int ett_e2ap_MatchingUEidPerGP_Item;
+static int ett_e2ap_T_matchedPerGP;
+static int ett_e2ap_MatchingUEidList_PerGP;
+static int ett_e2ap_MatchingUEidItem_PerGP;
+static int ett_e2ap_MatchingUeCondPerSubList;
+static int ett_e2ap_MatchingUeCondPerSubItem;
+static int ett_e2ap_MatchingUEidPerSubList;
+static int ett_e2ap_MatchingUEidPerSubItem;
+static int ett_e2ap_UEMeasurementReportList;
+static int ett_e2ap_UEMeasurementReportItem;
+static int ett_e2ap_E2SM_KPM_EventTriggerDefinition;
+static int ett_e2ap_T_eventDefinition_formats;
+static int ett_e2ap_E2SM_KPM_EventTriggerDefinition_Format1;
+static int ett_e2ap_E2SM_KPM_ActionDefinition;
+static int ett_e2ap_T_actionDefinition_formats;
+static int ett_e2ap_E2SM_KPM_ActionDefinition_Format1;
+static int ett_e2ap_E2SM_KPM_ActionDefinition_Format2;
+static int ett_e2ap_E2SM_KPM_ActionDefinition_Format3;
+static int ett_e2ap_E2SM_KPM_ActionDefinition_Format4;
+static int ett_e2ap_E2SM_KPM_ActionDefinition_Format5;
+static int ett_e2ap_E2SM_KPM_IndicationHeader;
+static int ett_e2ap_T_indicationHeader_formats;
+static int ett_e2ap_E2SM_KPM_IndicationHeader_Format1;
+static int ett_e2ap_E2SM_KPM_IndicationMessage;
+static int ett_e2ap_T_indicationMessage_formats;
+static int ett_e2ap_E2SM_KPM_IndicationMessage_Format1;
+static int ett_e2ap_E2SM_KPM_IndicationMessage_Format2;
+static int ett_e2ap_E2SM_KPM_IndicationMessage_Format3;
+static int ett_e2ap_E2SM_KPM_RANfunction_Description;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item;
+static int ett_e2ap_RIC_EventTriggerStyle_Item;
+static int ett_e2ap_RIC_ReportStyle_Item;
+static int ett_e2ap_E2SM_NI_EventTriggerDefinition;
+static int ett_e2ap_E2SM_NI_EventTriggerDefinition_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofInterfaceProtocolTests_OF_NI_ProtocolIE_Item;
+static int ett_e2ap_E2SM_NI_ActionDefinition;
+static int ett_e2ap_E2SM_NI_ActionDefinitionFormat;
+static int ett_e2ap_E2SM_NI_ActionDefinition_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofActionParameters_OF_RANparameter_Item;
+static int ett_e2ap_E2SM_NI_ActionDefinition_Format2;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANueGroups_OF_RANueGroup_Item;
+static int ett_e2ap_E2SM_NI_IndicationHeader;
+static int ett_e2ap_E2SM_NI_IndicationHeader_Format1;
+static int ett_e2ap_E2SM_NI_IndicationMessage;
+static int ett_e2ap_E2SM_NI_IndicationMessage_Format1;
+static int ett_e2ap_E2SM_NI_CallProcessID;
+static int ett_e2ap_E2SM_NI_CallProcessID_Format1;
+static int ett_e2ap_E2SM_NI_CallProcessID_Format2;
+static int ett_e2ap_E2SM_NI_ControlHeader;
+static int ett_e2ap_E2SM_NI_ControlHeader_Format1;
+static int ett_e2ap_E2SM_NI_ControlMessage;
+static int ett_e2ap_E2SM_NI_ControlMessage_Format1;
+static int ett_e2ap_E2SM_NI_ControlOutcome;
+static int ett_e2ap_E2SM_NI_ControlOutcome_Format1;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameter_Item;
+static int ett_e2ap_E2SM_NI_RANfunction_Description;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofNItypes_OF_E2SM_NI_RANfunction_Item;
+static int ett_e2ap_E2SM_NI_RANfunction_Item;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_EventTriggerStyle_List;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ReportStyle_List;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_InsertStyle_List;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_ControlStyle_List;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRICstyles_OF_RIC_PolicyStyle_List;
+static int ett_e2ap_Global_gNB_DU_ID;
+static int ett_e2ap_Global_gNB_CU_UP_ID;
+static int ett_e2ap_NI_Identifier;
+static int ett_e2ap_NI_MessageType;
+static int ett_e2ap_NI_MessageTypeApproach1;
+static int ett_e2ap_NI_ProtocolIE_Item;
+static int ett_e2ap_NI_ProtocolIE_Value;
+static int ett_e2ap_RANimperativePolicy;
+static int ett_e2ap_RANparameter_Item;
+static int ett_e2ap_RANparameterDef_Item;
+static int ett_e2ap_RANparameter_Value;
+static int ett_e2ap_RANueGroup_Item;
+static int ett_e2ap_RANueGroupDefinition;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANueGroupDef_Item;
+static int ett_e2ap_RANueGroupDef_Item;
+static int ett_e2ap_RIC_ControlStyle_List;
+static int ett_e2ap_SEQUENCE_SIZE_1_maxofRANparameters_OF_RANparameterDef_Item;
+static int ett_e2ap_RIC_EventTriggerStyle_List;
+static int ett_e2ap_RIC_InsertStyle_List;
+static int ett_e2ap_RIC_PolicyStyle_List;
+static int ett_e2ap_RIC_ReportStyle_List;
/* Forward declarations */
@@ -1705,7 +1705,7 @@ static const value_string mtype_names[] = {
{ 0, NULL }
};
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
@@ -3018,7 +3018,7 @@ dissect_e2ap_T_e2nodeComponentInterfaceTypeXn(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_e2ap_GNB_CU_UP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(68719476735), NULL, FALSE);
+ 0U, UINT64_C(68719476735), NULL, FALSE);
return offset;
}
@@ -3056,7 +3056,7 @@ dissect_e2ap_T_e2nodeComponentInterfaceTypeE1(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_e2ap_GNB_DU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(68719476735), NULL, FALSE);
+ 0U, UINT64_C(68719476735), NULL, FALSE);
return offset;
}
@@ -3095,7 +3095,7 @@ dissect_e2ap_T_e2nodeComponentInterfaceTypeF1(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_e2ap_NGENB_DU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(68719476735), NULL, FALSE);
+ 0U, UINT64_C(68719476735), NULL, FALSE);
return offset;
}
@@ -6437,7 +6437,7 @@ dissect_e2ap_ServingCell_PCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_e2ap_AMF_UE_NGAP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(1099511627775), NULL, FALSE);
+ 0U, UINT64_C(1099511627775), NULL, FALSE);
return offset;
}
@@ -7161,7 +7161,7 @@ dissect_e2ap_EventTrigger_Cell_Info_Item_Choice_Individual(tvbuff_t *tvb _U_, in
static int
dissect_e2ap_RANParameter_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 1U, G_GUINT64_CONSTANT(4294967296), NULL, TRUE);
+ 1U, UINT64_C(4294967296), NULL, TRUE);
return offset;
}
@@ -7426,7 +7426,7 @@ static const per_sequence_t RANParameter_Testing_Item_sequence[] = {
static int
dissect_e2ap_RANParameter_Testing_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // RANParameter-Testing-Item → RANParameter-Testing-Item/ranParameter-Type → RANParameter-Testing-Item-Choice-List → RANParameter-Testing-LIST → RANParameter-Testing-Item
+ // RANParameter-Testing-Item -> RANParameter-Testing-Item/ranParameter-Type -> RANParameter-Testing-Item-Choice-List -> RANParameter-Testing-LIST -> RANParameter-Testing-Item
actx->pinfo->dissection_depth += 4;
increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7818,7 +7818,7 @@ static const per_sequence_t RANParameter_Definition_sequence[] = {
static int
dissect_e2ap_RANParameter_Definition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // RANParameter-Definition → RANParameter-Definition-Choice → RANParameter-Definition-Choice-LIST → RANParameter-Definition-Choice-LIST/ranParameter-List → RANParameter-Definition-Choice-LIST-Item → RANParameter-Definition
+ // RANParameter-Definition -> RANParameter-Definition-Choice -> RANParameter-Definition-Choice-LIST -> RANParameter-Definition-Choice-LIST/ranParameter-List -> RANParameter-Definition-Choice-LIST-Item -> RANParameter-Definition
actx->pinfo->dissection_depth += 5;
increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -7975,7 +7975,7 @@ static const per_choice_t RANParameter_ValueType_choice[] = {
static int
dissect_e2ap_RANParameter_ValueType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // RANParameter-ValueType → RANParameter-ValueType-Choice-Structure → RANParameter-STRUCTURE → RANParameter-STRUCTURE/sequence-of-ranParameters → RANParameter-STRUCTURE-Item → RANParameter-ValueType
+ // RANParameter-ValueType -> RANParameter-ValueType-Choice-Structure -> RANParameter-STRUCTURE -> RANParameter-STRUCTURE/sequence-of-ranParameters -> RANParameter-STRUCTURE-Item -> RANParameter-ValueType
actx->pinfo->dissection_depth += 5;
increment_dissection_depth(actx->pinfo);
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
diff --git a/epan/dissectors/packet-eap.c b/epan/dissectors/packet-eap.c
index a29345e183..cd3bdd431a 100644
--- a/epan/dissectors/packet-eap.c
+++ b/epan/dissectors/packet-eap.c
@@ -2004,10 +2004,10 @@ dissect_eap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
case EAP_TYPE_TLS:
case EAP_TYPE_TEAP:
{
- gboolean more_fragments;
- gboolean has_length;
- gboolean is_start;
- gboolean outer_tlvs = false;
+ bool more_fragments;
+ bool has_length;
+ bool is_start;
+ bool outer_tlvs = false;
gint outer_tlvs_length = 0;
int eap_tls_seq = -1;
guint32 eap_reass_cookie = 0;
@@ -2465,9 +2465,9 @@ skip_tls_dissector:
**********************************************************************/
case EAP_TYPE_IKEV2:
{
- gboolean more_fragments;
- gboolean has_length;
- gboolean icv_present;
+ bool more_fragments;
+ bool has_length;
+ bool icv_present;
/* Flags field, 1 byte */
ti = proto_tree_add_item(eap_tree, hf_eap_ikev2_flags, tvb, offset, 1, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-ecmp.c b/epan/dissectors/packet-ecmp.c
index ec58fd52b8..6137c340b3 100644
--- a/epan/dissectors/packet-ecmp.c
+++ b/epan/dissectors/packet-ecmp.c
@@ -38,7 +38,7 @@ static int proto_ecmp;
static int proto_modbus;
/* These are the handles of our subdissectors */
-static dissector_handle_t modbus_handle = NULL;
+static dissector_handle_t modbus_handle;
/*smallest size of a packet, number of bytes*/
static const gint ecmp_min_packet_size = 6;
@@ -70,7 +70,7 @@ static const gint ecmp_min_packet_size = 6;
#define ECMP_COMMAND_MODBUSPDU 0x74
/* cyclic display formats */
-static const guint8 cyclic_display_byte_format = 0;
+static const guint8 cyclic_display_byte_format;
static const guint8 cyclic_display_word_format = 1;
static const guint8 cyclic_display_long_format = 2;
diff --git a/epan/dissectors/packet-ecpri.c b/epan/dissectors/packet-ecpri.c
index 59978e1003..f04e5487a4 100644
--- a/epan/dissectors/packet-ecpri.c
+++ b/epan/dissectors/packet-ecpri.c
@@ -142,7 +142,7 @@ static int hf_ecpri_length;
/**************************************************************************************************/
/* Preference to use the eCPRI Specification 1.2 encoding */
/**************************************************************************************************/
-static gboolean pref_message_type_decoding = TRUE;
+static bool pref_message_type_decoding = true;
/**************************************************************************************************/
/* eCPRI Handle */
@@ -397,6 +397,7 @@ static int dissect_ecpri(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
}
/* do-while loop for concatenation check */
+ bool concatenation_bit;
do
{
/* 4-byte boundary check for concatenation */
@@ -429,7 +430,7 @@ static int dissect_ecpri(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
/* Reserved */
proto_tree_add_item(header_tree, hf_reserved, tvb, offset, 1, ENC_NA);
/* C(oncatenated */
- ti_c_bit = proto_tree_add_item_ret_boolean(header_tree, hf_c_bit, tvb, offset, 1, ENC_NA, &concatenation);
+ ti_c_bit = proto_tree_add_item_ret_boolean(header_tree, hf_c_bit, tvb, offset, 1, ENC_NA, &concatenation_bit);
offset += 1;
/* eCPRI Message Type */
@@ -783,8 +784,8 @@ static int dissect_ecpri(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
offset += payload_size;
}
}
- } while (concatenation != 0 && reported_length - offset >= ECPRI_HEADER_LENGTH);
- if (concatenation != 0) {
+ } while (concatenation_bit != 0 && reported_length - offset >= ECPRI_HEADER_LENGTH);
+ if (concatenation_bit != false) {
expert_add_info_format(pinfo, ti_c_bit, &ei_c_bit, "Concatenation Bit is 1, should be 0");
}
diff --git a/epan/dissectors/packet-edonkey.c b/epan/dissectors/packet-edonkey.c
index a2d5c3fd6f..c8cb0c9f5a 100644
--- a/epan/dissectors/packet-edonkey.c
+++ b/epan/dissectors/packet-edonkey.c
@@ -177,7 +177,7 @@ static expert_field ei_kademlia_search_expression_type;
#define EDONKEY_UDP_PORT_RANGE "4665,4672" /* Not IANA registered */
/* desegmentation of eDonkey over TCP */
-static gboolean edonkey_desegment = TRUE;
+static bool edonkey_desegment = true;
static const value_string kademlia_msgs[] = {
{ KADEMLIA2_BOOTSTRAP_REQ ,"KADEMLIA2_BOOTSTRAP_REQ" },
diff --git a/epan/dissectors/packet-eero.c b/epan/dissectors/packet-eero.c
index 2de4229366..159e13849e 100644
--- a/epan/dissectors/packet-eero.c
+++ b/epan/dissectors/packet-eero.c
@@ -36,7 +36,7 @@ static capture_dissector_handle_t eero_cap_handle;
-static gboolean
+static bool
capture_eero(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_eero);
diff --git a/epan/dissectors/packet-eigrp.c b/epan/dissectors/packet-eigrp.c
index 9fe3896b39..38019333e5 100644
--- a/epan/dissectors/packet-eigrp.c
+++ b/epan/dissectors/packet-eigrp.c
@@ -537,8 +537,8 @@ static expert_field ei_eigrp_prefixlen;
static expert_field ei_eigrp_tlv_trunc;
/* some extra handle that might be needed */
-static dissector_handle_t ipxsap_handle = NULL;
-static dissector_table_t media_type_table = NULL;
+static dissector_handle_t ipxsap_handle;
+static dissector_table_t media_type_table;
static const value_string eigrp_opcode2string[] = {
{ EIGRP_OPC_UPDATE, "Update" },
@@ -1025,7 +1025,7 @@ dissect_eigrp_extdata_flags (proto_tree *tree, tvbuff_t *tvb, int offset)
ENC_BIG_ENDIAN);
offset += 1;
- return(offset);
+ return offset;
}
/**
@@ -1074,7 +1074,7 @@ dissect_eigrp_metric_flags (proto_tree *tree, tvbuff_t *tvb, int offset, int lim
ENC_BIG_ENDIAN);
offset += limit;
- return(offset);
+ return offset;
}
/**
@@ -1218,7 +1218,7 @@ dissect_eigrp_ipx_addrs (proto_item *ti, proto_tree *tree, tvbuff_t *tvb,
}
offset +=4;
- return(offset);
+ return offset;
}
/**
@@ -1430,7 +1430,7 @@ dissect_eigrp_legacy_metric (proto_tree *tree, tvbuff_t *tvb, int offset)
dissect_eigrp_metric_flags(sub_tree, sub_tvb, 15, 1);
offset += 16;
- return(offset);
+ return offset;
}
/**
@@ -1499,7 +1499,7 @@ dissect_eigrp_ipx_extdata (proto_tree *tree, tvbuff_t *tvb, int offset)
sub_offset += 2;
offset += sub_offset;
- return(offset);
+ return offset;
}
/**
@@ -1564,7 +1564,7 @@ dissect_eigrp_extdata (proto_tree *tree, tvbuff_t *tvb, int offset)
sub_offset += 1;
offset += sub_offset;
- return(offset);
+ return offset;
}
/**
@@ -1617,7 +1617,7 @@ dissect_eigrp_nexthop (proto_tree *tree, tvbuff_t *tvb, guint16 afi, int offset)
break;
}
- return(offset);
+ return offset;
}
/**
@@ -2093,7 +2093,7 @@ dissect_eigrp_metric_comm (proto_tree *tree, tvbuff_t *tvb, int offset, int limi
}
- return(offset);
+ return offset;
}
/**
@@ -2189,7 +2189,7 @@ dissect_eigrp_wide_metric_attr (proto_tree *tree, tvbuff_t *tvb,
}
offset += sub_offset;
- return(offset);
+ return offset;
}
/**
@@ -2287,7 +2287,7 @@ dissect_eigrp_wide_metric (proto_tree *tree, tvbuff_t *tvb, int offset)
offset = dissect_eigrp_wide_metric_attr(tree, tvb, offset, attr_size);
}
- return(offset);
+ return offset;
}
/**
@@ -2499,7 +2499,7 @@ dissect_eigrp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
* Therefore, it must be at least 4.
*/
proto_tree_add_expert(eigrp_tree, pinfo, &ei_eigrp_tlv_len, tvb, offset, -1);
- return(tvb_captured_length(tvb));
+ return tvb_captured_length(tvb);
}
tlv_tree = proto_tree_add_subtree(eigrp_tree, tvb, offset, size, ett_eigrp_tlv, &ti,
@@ -2551,7 +2551,7 @@ dissect_eigrp (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
}
/* Return the amount of data this dissector was able to dissect */
- return(tvb_captured_length(tvb));
+ return tvb_captured_length(tvb);
}
static void
diff --git a/epan/dissectors/packet-eiss.c b/epan/dissectors/packet-eiss.c
index 20db6c3539..a71f2018e4 100644
--- a/epan/dissectors/packet-eiss.c
+++ b/epan/dissectors/packet-eiss.c
@@ -245,7 +245,7 @@ dissect_eiss(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
proto_item *pi;
proto_tree *eiss_tree;
proto_item *items[PACKET_MPEG_SECT_PI__SIZE];
- gboolean ssi;
+ bool ssi;
guint reserved;
guint8 reserved2;
guint8 sect_num, last_sect_num;
diff --git a/epan/dissectors/packet-enc.c b/epan/dissectors/packet-enc.c
index 08d6dc5b25..d21a7af061 100644
--- a/epan/dissectors/packet-enc.c
+++ b/epan/dissectors/packet-enc.c
@@ -51,7 +51,7 @@ static int hf_enc_flags_reserved;
static gint ett_enc;
static gint ett_enc_flag;
-static gboolean
+static bool
capture_enc(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint32 af;
diff --git a/epan/dissectors/packet-enip.c b/epan/dissectors/packet-enip.c
index 5b9a315e4d..b781e4cb78 100644
--- a/epan/dissectors/packet-enip.c
+++ b/epan/dissectors/packet-enip.c
@@ -455,9 +455,9 @@ static dissector_handle_t dtls_handle;
static dissector_handle_t dlr_handle;
-static gboolean enip_desegment = TRUE;
-static gboolean enip_OTrun_idle = TRUE;
-static gboolean enip_TOrun_idle = FALSE;
+static bool enip_desegment = true;
+static bool enip_OTrun_idle = true;
+static bool enip_TOrun_idle;
static int proto_dlr;
@@ -810,7 +810,7 @@ static void enip_prompt(packet_info *pinfo _U_, gchar* result)
snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "Dissect unidentified I/O traffic as");
}
-static wmem_map_t *enip_request_hashtable = NULL;
+static wmem_map_t *enip_request_hashtable;
/* Return codes of function classifying packets as query/response */
enum enip_packet_type {ENIP_REQUEST_PACKET, ENIP_RESPONSE_PACKET, ENIP_CANNOT_CLASSIFY};
@@ -1083,7 +1083,7 @@ enip_exp_conv_filter(packet_info *pinfo, void *user_data _U_)
return buf;
}
-static gboolean cip_connection_conv_valid(packet_info *pinfo, void *user_data)
+static bool cip_connection_conv_valid(packet_info *pinfo, void *user_data)
{
return enip_io_conv_valid(pinfo, user_data) || enip_exp_conv_valid(pinfo, user_data);
}
@@ -1109,7 +1109,7 @@ static gchar* cip_connection_conv_filter(packet_info *pinfo, void *user_data)
*/
// Key: (triad, connection IDs), Value: cip_conn_info_t
-static wmem_map_t *enip_conn_hashtable = NULL;
+static wmem_map_t *enip_conn_hashtable;
static guint32 enip_unique_connid;
static gboolean
diff --git a/epan/dissectors/packet-enrp.c b/epan/dissectors/packet-enrp.c
index 3f8ab5b6b1..d534157fb1 100644
--- a/epan/dissectors/packet-enrp.c
+++ b/epan/dissectors/packet-enrp.c
@@ -98,8 +98,8 @@ static gint ett_enrp_parameter;
static gint ett_enrp_cause;
static gint ett_enrp_flags;
-static guint64 enrp_total_msgs = 0;
-static guint64 enrp_total_bytes = 0;
+static guint64 enrp_total_msgs;
+static guint64 enrp_total_bytes;
static expert_field ei_enrp_max_recursion_depth_reached;
static expert_field ei_enrp_invalid_length;
diff --git a/epan/dissectors/packet-enttec.c b/epan/dissectors/packet-enttec.c
index 411536d79a..b4cfb598b5 100644
--- a/epan/dissectors/packet-enttec.c
+++ b/epan/dissectors/packet-enttec.c
@@ -97,9 +97,9 @@ static int ett_enttec;
* for enttec
*/
-static gint global_disp_chan_val_type = 0;
+static gint global_disp_chan_val_type;
static gint global_disp_col_count = 16;
-static gint global_disp_chan_nr_type = 0;
+static gint global_disp_chan_nr_type;
static gint
dissect_enttec_poll_reply(tvbuff_t *tvb, guint offset, proto_tree *tree)
diff --git a/epan/dissectors/packet-eobi.c b/epan/dissectors/packet-eobi.c
index 97f8595892..6a1a4df4d8 100644
--- a/epan/dissectors/packet-eobi.c
+++ b/epan/dissectors/packet-eobi.c
@@ -3529,7 +3529,7 @@ dissect_eobi_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
}
int uidx = tid2uidx[templateid - 13001];
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
int old_fidx = 0;
int old_uidx = 0;
@@ -3541,9 +3541,9 @@ dissect_eobi_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
proto_tree *t = root;
while (top) {
DISSECTOR_ASSERT_CMPINT(fidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, (sizeof fields / sizeof fields[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, array_length(fields));
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
switch (fields[fidx].type) {
case ETI_EOF:
@@ -3565,7 +3565,7 @@ dissect_eobi_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
break;
case ETI_VAR_STRUCT:
case ETI_STRUCT:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
repeats = fields[fidx].type == ETI_VAR_STRUCT ? counter[fields[fidx].counter_off] : 1;
if (repeats) {
--repeats;
@@ -3606,14 +3606,14 @@ dissect_eobi_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
++uidx;
break;
case ETI_VAR_STRING:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
proto_tree_add_item(t, hf_eobi[fields[fidx].field_handle_idx], tvb, off, counter[fields[fidx].counter_off], ENC_ASCII);
off += counter[fields[fidx].counter_off];
++fidx;
++uidx;
break;
case ETI_COUNTER:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
DISSECTOR_ASSERT_CMPUINT(fields[fidx].size, <=, 2);
{
switch (fields[fidx].size) {
@@ -4356,6 +4356,6 @@ proto_reg_handoff_eobi(void)
56500, // Snapshot Boerse Frankfurt SIMU
56501 // Incremental Boerse Frankfurt SIMU
};
- for (unsigned i = 0; i < sizeof ports / sizeof ports[0]; ++i)
+ for (unsigned i = 0; i < array_length(ports); ++i)
dissector_add_uint("udp.port", ports[i], eobi_handle);
}
diff --git a/epan/dissectors/packet-epl.c b/epan/dissectors/packet-epl.c
index eff4a1fb54..f5f6363250 100644
--- a/epan/dissectors/packet-epl.c
+++ b/epan/dissectors/packet-epl.c
@@ -470,8 +470,8 @@ typedef struct {
guint32 frame;
} duplication_data;
-static guint32 ct = 0;
-static guint32 count = 0;
+static guint32 ct;
+static guint32 count;
typedef struct _epl_sdo_reassembly
{
@@ -596,9 +596,9 @@ struct device_profile_uat_assoc {
guint product_code;
};
-static uat_t *device_profile_uat = NULL;
-static struct device_profile_uat_assoc *device_profile_list_uats = NULL;
-static guint ndevice_profile_uat = 0;
+static uat_t *device_profile_uat;
+static struct device_profile_uat_assoc *device_profile_list_uats;
+static guint ndevice_profile_uat;
static void *device_profile_uat_copy_cb(void *, const void *, size_t);
static void device_profile_uat_free_cb(void *);
@@ -634,9 +634,9 @@ struct nodeid_profile_uat_assoc {
char *id_str;
};
-static uat_t *nodeid_profile_uat = NULL;
-static struct nodeid_profile_uat_assoc *nodeid_profile_list_uats = NULL;
-static guint nnodeid_profile_uat = 0;
+static uat_t *nodeid_profile_uat;
+static struct nodeid_profile_uat_assoc *nodeid_profile_list_uats;
+static guint nnodeid_profile_uat;
static void nodeid_profile_list_uats_nodeid_set_cb(void *, const char *, unsigned, const void*, const void*);
@@ -1625,14 +1625,14 @@ static gint hf_epl_asnd_nmtcommand_nmtdna_newnn;
static gint hf_epl_asnd_nmtcommand_nmtdna_leasetime;
-/*Asynchronuous SDO Sequence Layer*/
+/*Asynchronous SDO Sequence Layer*/
static gint hf_epl_asnd_sdo_seq;
static gint hf_epl_asnd_sdo_seq_receive_sequence_number;
static gint hf_epl_asnd_sdo_seq_receive_con;
static gint hf_epl_asnd_sdo_seq_send_sequence_number;
static gint hf_epl_asnd_sdo_seq_send_con;
-/*Asynchronuous SDO Command Layer*/
+/*Asynchronous SDO Command Layer*/
static gint hf_epl_asnd_sdo_cmd;
static gint hf_epl_asnd_sdo_cmd_transaction_id;
static gint hf_epl_asnd_sdo_cmd_response;
@@ -1821,16 +1821,16 @@ static expert_field ei_real_length_differs;
static dissector_handle_t epl_handle;
static dissector_handle_t epl_udp_handle;
-static gboolean show_cmd_layer_for_duplicated = FALSE;
-static gboolean show_pdo_meta_info = FALSE;
-static gboolean use_xdc_mappings = TRUE;
-static gboolean interpret_untyped_as_le = TRUE;
-static gboolean use_sdo_mappings = TRUE;
+static bool show_cmd_layer_for_duplicated;
+static bool show_pdo_meta_info;
+static bool use_xdc_mappings = true;
+static bool interpret_untyped_as_le = true;
+static bool use_sdo_mappings = true;
static gint ett_epl_asnd_sdo_data_reassembled;
static reassembly_table epl_reassembly_table;
-static GHashTable *epl_duplication_table = NULL;
+static GHashTable *epl_duplication_table;
const struct
epl_datatype *epl_type_to_hf(const char *name)
@@ -1864,7 +1864,7 @@ epl_address_equal(gconstpointer a, gconstpointer b)
* if we have dangling pointers. Courtesy of Peter Wu.
*/
-guint current_convo_generation = 0; /* FIXME remove */
+guint current_convo_generation; /* FIXME remove */
static wmem_allocator_t *pdo_mapping_scope;
static struct object_mapping *
get_object_mappings(wmem_array_t *arr, guint *len)
@@ -1896,7 +1896,7 @@ add_object_mapping(wmem_array_t *arr, struct object_mapping *mapping)
{
/* let's check if this overwrites an existing mapping */
guint i, len;
- /* A bit ineffecient (looping backwards would be better), but it's acyclic anyway */
+ /* A bit inefficient (looping backwards would be better), but it's acyclic anyway */
struct object_mapping *old = get_object_mappings(arr, &len);
for (i = 0; i < len; i++)
{
@@ -1919,7 +1919,7 @@ add_object_mapping(wmem_array_t *arr, struct object_mapping *mapping)
static wmem_map_t *epl_profiles_by_device, *epl_profiles_by_nodeid, *epl_profiles_by_address;
static struct profile *epl_default_profile;
-static const char *epl_default_profile_path = NULL, *epl_default_profile_path_last = NULL;
+static const char *epl_default_profile_path = NULL, *epl_default_profile_path_last;
static bool
profile_del_cb(wmem_allocator_t *pool _U_, wmem_cb_event_t event _U_, void *_profile)
@@ -2473,7 +2473,7 @@ cleanup_dissector(void)
}
/* preference whether or not display the SoC flags in info column */
-gboolean show_soc_flags = FALSE;
+bool show_soc_flags;
/* Define the tap for epl */
/*static gint epl_tap = -1;*/
@@ -3801,7 +3801,7 @@ dissect_epl_sdo_sequence(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo
free_key(key);
item = proto_tree_add_item(epl_tree, hf_epl_asnd_sdo_seq, tvb, offset, 5, ENC_NA);
sod_seq_tree = proto_item_add_subtree(item, ett_epl_sdo_sequence_layer);
- /* Asynchronuous SDO Sequence Layer */
+ /* Asynchronous SDO Sequence Layer */
seq_recv = tvb_get_guint8(tvb, offset);
proto_tree_add_uint(sod_seq_tree, hf_epl_asnd_sdo_seq_receive_sequence_number, tvb, offset, 1, seq_recv);
@@ -3870,18 +3870,15 @@ dissect_epl_sdo_command(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_segmentation, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- if (segment_size != 0)
- {
- offset += 1;
- proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_command_id, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
+ offset += 1;
+ proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_command_id, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ offset += 1;
- item = proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_segment_size, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 4;
- if ( tvb_reported_length_remaining(tvb, offset) < segment_size )
- expert_add_info_format(pinfo, item, &ei_real_length_differs,
- "Captured length differs, only %d octets will be displayed", tvb_reported_length_remaining(tvb, offset) - 4 );
- }
+ item = proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_segment_size, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 4;
+ if ( tvb_reported_length_remaining(tvb, offset) < segment_size )
+ expert_add_info_format(pinfo, item, &ei_real_length_differs,
+ "Captured length differs, only %d octets will be displayed", tvb_reported_length_remaining(tvb, offset) - 4 );
if (segmented == EPL_ASND_SDO_CMD_SEGMENTATION_INITIATE_TRANSFER)
{
@@ -3936,7 +3933,7 @@ dissect_epl_sdo_command(proto_tree *epl_tree, tvbuff_t *tvb, packet_info *pinfo,
/* the SDO response can contain several abort codes for multiple transfers */
while (remlength > 0)
{
- /* TODO enchance Index and SubIndex with string representation */
+ /* TODO enhance Index and SubIndex with string representation */
proto_tree_add_item(sdo_cmd_tree, hf_epl_asnd_sdo_cmd_data_index, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
@@ -4143,7 +4140,7 @@ dissect_epl_sdo_command_write_by_index(struct epl_convo *convo, proto_tree *epl_
/* set the fragmented flag */
pinfo->fragmented = TRUE;
- /* get payloade size */
+ /* get payload size */
payload_length = tvb_reported_length_remaining(tvb, offset);
/* if the frame is the last frame */
if(segmented == EPL_ASND_SDO_CMD_SEGMENTATION_TRANSFER_COMPLETE)
@@ -4200,7 +4197,7 @@ dissect_epl_sdo_command_write_by_index(struct epl_convo *convo, proto_tree *epl_
cmd_payload = proto_tree_add_uint_format(epl_tree, hf_epl_asnd_sdo_cmd_reassembled, tvb, offset, payload_length,0,
"Reassembled: %d bytes total (%d bytes in this frame)",frag_msg->len,payload_length);
payload_tree = proto_item_add_subtree(cmd_payload, ett_epl_asnd_sdo_data_reassembled);
- /* add the reassembley fields */
+ /* add the reassembly fields */
process_reassembled_data(tvb, 0, pinfo, "Reassembled Message", frag_msg, &epl_frag_items, NULL, payload_tree );
proto_tree_add_uint_format_value(payload_tree, hf_epl_asnd_sdo_cmd_reassembled, tvb, 0, 0,
payload_length, "%d bytes (over all fragments)", frag_msg->len);
@@ -4384,7 +4381,7 @@ dissect_epl_sdo_command_write_multiple_by_index(struct epl_convo *convo, proto_t
offsetincrement = tvb_get_letohl(tvb, offset);
- /* the data is aligned in 4-byte increments, therfore maximum padding is 3 */
+ /* the data is aligned in 4-byte increments, therefore maximum padding is 3 */
padding = tvb_get_guint8 ( tvb, offset + 7 ) & 0x03;
/* An offset increment of zero usually indicates, that we are at the end
@@ -5123,7 +5120,7 @@ dissect_epl_sdo_command_read_by_index(struct epl_convo *convo, proto_tree *epl_t
fragmentId = (guint32)((((guint32)epl_segmentation.src)<<16)+epl_segmentation.dest);
/* set the fragmented flag */
pinfo->fragmented = TRUE;
- /* get payloade size */
+ /* get payload size */
payload_length = tvb_reported_length_remaining(tvb, offset);
/* if the frame is the last frame */
if(segmented == EPL_ASND_SDO_CMD_SEGMENTATION_TRANSFER_COMPLETE)
@@ -5161,7 +5158,7 @@ dissect_epl_sdo_command_read_by_index(struct epl_convo *convo, proto_tree *epl_t
cmd_payload = proto_tree_add_uint_format(epl_tree, hf_epl_asnd_sdo_cmd_reassembled, tvb, offset, payload_length,0,
"Reassembled: %d bytes total (%d bytes in this frame)",frag_msg->len,payload_length);
payload_tree = proto_item_add_subtree(cmd_payload, ett_epl_asnd_sdo_data_reassembled);
- /* add the reassembley fields */
+ /* add the reassembly fields */
process_reassembled_data(tvb, 0, pinfo, "Reassembled Message", frag_msg, &epl_frag_items, NULL, payload_tree );
proto_tree_add_uint_format_value(payload_tree, hf_epl_asnd_sdo_cmd_reassembled, tvb, 0, 0,
payload_length, "%d bytes (over all fragments)", frag_msg->len);
@@ -6352,7 +6349,7 @@ proto_register_epl(void)
proto_epl = proto_register_protocol("Ethernet POWERLINK", "EPL", "epl");
/* subdissector code */
- heur_epl_subdissector_list = register_heur_dissector_list_with_description("epl", "Data encapsuated in EPL", proto_epl);
+ heur_epl_subdissector_list = register_heur_dissector_list_with_description("epl", "Data encapsulated in EPL", proto_epl);
heur_epl_data_subdissector_list = register_heur_dissector_list_with_description("epl_data", "EPL Data", proto_epl);
epl_asnd_dissector_table = register_dissector_table("epl.asnd",
"Manufacturer specific ASND service", proto_epl, FT_UINT8, BASE_DEC /*, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE*/);
diff --git a/epan/dissectors/packet-epmd.c b/epan/dissectors/packet-epmd.c
index 092a2732cf..20215f085c 100644
--- a/epan/dissectors/packet-epmd.c
+++ b/epan/dissectors/packet-epmd.c
@@ -47,10 +47,10 @@ static int hf_epmd_creation;
static gint ett_epmd;
-static dissector_handle_t epmd_handle = NULL;
+static dissector_handle_t epmd_handle;
/* Other dissectors */
-static dissector_handle_t edp_handle = NULL;
+static dissector_handle_t edp_handle;
#define EPMD_PORT 4369
@@ -267,14 +267,14 @@ check_epmd(tvbuff_t *tvb) {
* doesn't bring very much.
*/
if (tvb_captured_length(tvb) < 3)
- return (FALSE);
+ return FALSE;
type = tvb_get_guint8(tvb, 0);
switch (type) {
case EPMD_ALIVE_OK_RESP:
case EPMD_ALIVE2_RESP:
case EPMD_PORT2_RESP:
- return (TRUE);
+ return TRUE;
default:
break;
}
@@ -286,12 +286,12 @@ check_epmd(tvbuff_t *tvb) {
case EPMD_PORT_REQ:
case EPMD_PORT2_REQ:
case EPMD_NAMES_REQ:
- return (TRUE);
+ return TRUE;
default:
break;
}
- return (FALSE);
+ return FALSE;
}
static int
@@ -300,7 +300,7 @@ dissect_epmd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
proto_item *ti;
if (!check_epmd(tvb))
- return (0);
+ return 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
diff --git a/epan/dissectors/packet-erf.c b/epan/dissectors/packet-erf.c
index 329ee95314..680c26a7b1 100644
--- a/epan/dissectors/packet-erf.c
+++ b/epan/dissectors/packet-erf.c
@@ -289,7 +289,7 @@ typedef enum {
static gint erf_hdlc_type = ERF_HDLC_GUESS;
static dissector_handle_t chdlc_handle, ppp_handle, frelay_handle, mtp2_handle;
-static gboolean erf_rawcell_first = FALSE;
+static bool erf_rawcell_first;
typedef enum {
ERF_AAL5_GUESS = 0,
diff --git a/epan/dissectors/packet-erldp.c b/epan/dissectors/packet-erldp.c
index 863790bbdf..0e01b9a32c 100644
--- a/epan/dissectors/packet-erldp.c
+++ b/epan/dissectors/packet-erldp.c
@@ -260,7 +260,7 @@ static gint ett_etf_fragments;
static gboolean erldp_desegment = TRUE;
/* Dissectors */
-static dissector_handle_t erldp_handle = NULL;
+static dissector_handle_t erldp_handle;
/* Defragmentation */
static const fragment_items etf_frag_items = {
@@ -948,9 +948,9 @@ static guint get_erldp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
{
if (is_handshake(tvb, offset))
- return(2 + tvb_get_ntohs(tvb, offset));
+ return 2 + tvb_get_ntohs(tvb, offset);
- return(4 + tvb_get_ntohl(tvb, offset));
+ return 4 + tvb_get_ntohl(tvb, offset);
}
/*--- dissect_erldp -------------------------------------------------*/
diff --git a/epan/dissectors/packet-ess.c b/epan/dissectors/packet-ess.c
index c70b681a2e..6f07867858 100644
--- a/epan/dissectors/packet-ess.c
+++ b/epan/dissectors/packet-ess.c
@@ -142,37 +142,37 @@ static int hf_ess_serialNumber; /* CertificateSerialNumber */
#define id_sha256 "2.16.840.1.101.3.4.2.1"
/* Initialize the subtree pointers */
-static gint ett_ess_ReceiptRequest;
-static gint ett_ess_SEQUENCE_SIZE_1_ub_receiptsTo_OF_GeneralNames;
-static gint ett_ess_ReceiptsFrom;
-static gint ett_ess_SEQUENCE_OF_GeneralNames;
-static gint ett_ess_Receipt;
-static gint ett_ess_ContentHints;
-static gint ett_ess_ContentReference;
-static gint ett_ess_ESSSecurityLabel;
-static gint ett_ess_ESSPrivacyMark;
-static gint ett_ess_SecurityCategories;
-static gint ett_ess_SecurityCategory;
-static gint ett_ess_RestrictiveTag;
-static gint ett_ess_EnumeratedTag;
-static gint ett_ess_SET_OF_SecurityAttribute;
-static gint ett_ess_PermissiveTag;
-static gint ett_ess_InformativeTag;
-static gint ett_ess_FreeFormField;
-static gint ett_ess_EquivalentLabels;
-static gint ett_ess_MLExpansionHistory;
-static gint ett_ess_MLData;
-static gint ett_ess_EntityIdentifier;
-static gint ett_ess_MLReceiptPolicy;
-static gint ett_ess_SEQUENCE_SIZE_1_MAX_OF_GeneralNames;
-static gint ett_ess_SigningCertificate;
-static gint ett_ess_SEQUENCE_OF_ESSCertID;
-static gint ett_ess_SEQUENCE_OF_PolicyInformation;
-static gint ett_ess_SigningCertificateV2;
-static gint ett_ess_SEQUENCE_OF_ESSCertIDv2;
-static gint ett_ess_ESSCertIDv2;
-static gint ett_ess_ESSCertID;
-static gint ett_ess_IssuerSerial;
+static int ett_ess_ReceiptRequest;
+static int ett_ess_SEQUENCE_SIZE_1_ub_receiptsTo_OF_GeneralNames;
+static int ett_ess_ReceiptsFrom;
+static int ett_ess_SEQUENCE_OF_GeneralNames;
+static int ett_ess_Receipt;
+static int ett_ess_ContentHints;
+static int ett_ess_ContentReference;
+static int ett_ess_ESSSecurityLabel;
+static int ett_ess_ESSPrivacyMark;
+static int ett_ess_SecurityCategories;
+static int ett_ess_SecurityCategory;
+static int ett_ess_RestrictiveTag;
+static int ett_ess_EnumeratedTag;
+static int ett_ess_SET_OF_SecurityAttribute;
+static int ett_ess_PermissiveTag;
+static int ett_ess_InformativeTag;
+static int ett_ess_FreeFormField;
+static int ett_ess_EquivalentLabels;
+static int ett_ess_MLExpansionHistory;
+static int ett_ess_MLData;
+static int ett_ess_EntityIdentifier;
+static int ett_ess_MLReceiptPolicy;
+static int ett_ess_SEQUENCE_SIZE_1_MAX_OF_GeneralNames;
+static int ett_ess_SigningCertificate;
+static int ett_ess_SEQUENCE_OF_ESSCertID;
+static int ett_ess_SEQUENCE_OF_PolicyInformation;
+static int ett_ess_SigningCertificateV2;
+static int ett_ess_SEQUENCE_OF_ESSCertIDv2;
+static int ett_ess_ESSCertIDv2;
+static int ett_ess_ESSCertID;
+static int ett_ess_IssuerSerial;
static const char *object_identifier_id;
diff --git a/epan/dissectors/packet-etag.c b/epan/dissectors/packet-etag.c
index 0588638ba1..49e2702eaf 100644
--- a/epan/dissectors/packet-etag.c
+++ b/epan/dissectors/packet-etag.c
@@ -28,7 +28,7 @@ static dissector_handle_t ethertype_handle;
static int proto_etag;
-static gboolean etag_summary_in_tree = TRUE;
+static bool etag_summary_in_tree = true;
static int hf_etag_etype;
static int hf_etag_pcp;
diff --git a/epan/dissectors/packet-etch.c b/epan/dissectors/packet-etch.c
index 40fbfa3636..ae7497f87b 100644
--- a/epan/dissectors/packet-etch.c
+++ b/epan/dissectors/packet-etch.c
@@ -124,13 +124,13 @@ static dissector_handle_t etch_handle;
*/
static const char *gbl_keytab_folder = "";
-static char *gbl_current_keytab_folder = NULL;
+static char *gbl_current_keytab_folder;
static int gbl_pdu_counter;
static guint32 gbl_old_frame_num;
-static wmem_strbuf_t *gbl_symbol_buffer = NULL;
-static gboolean gbl_have_symbol = FALSE;
+static wmem_strbuf_t *gbl_symbol_buffer;
+static gboolean gbl_have_symbol;
/***************************************************************************/
/* Methods */
@@ -154,8 +154,8 @@ static int read_value(unsigned int *offset, tvbuff_t *tvb, proto_tree *etch_tree
* value_string_ext from the array for use by try_val_to_str_ext & friends.
* (Code based upon code in packet-diameter.c)
*/
-static GArray *gbl_symbols_array = NULL;
-static value_string_ext *gbl_symbols_vs_ext = NULL;
+static GArray *gbl_symbols_array;
+static value_string_ext *gbl_symbols_vs_ext;
static void
gbl_symbols_new(void)
diff --git a/epan/dissectors/packet-eth.c b/epan/dissectors/packet-eth.c
index 5929b7059a..11eacd1f6e 100644
--- a/epan/dissectors/packet-eth.c
+++ b/epan/dissectors/packet-eth.c
@@ -47,19 +47,19 @@ void proto_reg_handoff_eth(void);
#define PADDING_ANY 2
static gint eth_padding = PADDING_ZEROS;
-static guint eth_trailer_length = 0;
+static guint eth_trailer_length;
/* By default, try to autodetect FCS */
static gint eth_fcs = -1;
-static gboolean eth_check_fcs = FALSE;
+static bool eth_check_fcs;
/* Interpret packets as FW1 monitor file packets if they look as if they are */
-static gboolean eth_interpret_as_fw1_monitor = FALSE;
+static bool eth_interpret_as_fw1_monitor;
/* When capturing on a Cisco FEX some frames start with an extra destination mac */
-static gboolean eth_deduplicate_dmac = FALSE;
+static bool eth_deduplicate_dmac;
/* Preference settings defining conditions for which the CCSDS dissector is called */
-static gboolean ccsds_heuristic_length = FALSE;
-static gboolean ccsds_heuristic_version = FALSE;
-static gboolean ccsds_heuristic_header = FALSE;
-static gboolean ccsds_heuristic_bit = FALSE;
+static bool ccsds_heuristic_length;
+static bool ccsds_heuristic_version;
+static bool ccsds_heuristic_header;
+static bool ccsds_heuristic_bit;
/* protocols and header fields */
static int proto_eth;
@@ -197,7 +197,7 @@ eth_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, cons
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
eth_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return (pinfo->dl_src.type == AT_ETHER);
@@ -226,7 +226,7 @@ eth_build_filter(packet_info *pinfo, void *user_data _U_)
#define ETHERNET_802_3 2
#define ETHERNET_SNAP 3
-static gboolean
+static bool
capture_eth(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint16 etype, length;
@@ -578,11 +578,39 @@ dissect_eth_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
}
/* if we still did not leave the dissection, try identifying any ETH conversation
+ * When deinterlacing was asked and an interface is known, create an _IN conv,
+ * otherwise create an ordinary _NN one.
*
*/
- conversation_t *conv = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_ETH, 0, 0, NO_PORT_X);
+
+ guint conv_type = CONVERSATION_ETH_NN;
+ /* deinterlacing is requested */
+ if(prefs.conversation_deinterlacing_key>0) {
+ guint32 dtlc_iface = 0;
+
+ if(prefs.conversation_deinterlacing_key&CONV_DEINT_KEY_INTERFACE &&
+ pinfo->rec->presence_flags & WTAP_HAS_INTERFACE_ID) {
+
+ conv_type = CONVERSATION_ETH_IN;
+ dtlc_iface = pinfo->rec->rec_header.packet_header.interface_id;
+ }
+ else {
+ conv_type = CONVERSATION_ETH_NN;
+ }
+
+ // identify an existing conversation or create a new one
+ conversation_t *conv_deint = find_conversation_deinterlacer(pinfo->num, &pinfo->src, &pinfo->dst, conv_type,
+ dtlc_iface, 0, 0);
+ if(!conv_deint) {
+ conversation_new_deinterlacer(pinfo->num, &pinfo->src, &pinfo->dst,
+ conv_type, dtlc_iface, 0, 0);
+ }
+ }
+
+ conversation_t *conv = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst, conv_type, 0, 0, NO_PORT_X);
+
if(!conv) {
- conv = conversation_new(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_ETH, 0, 0, NO_PORTS);
+ conv = conversation_new(pinfo->num, &pinfo->src, &pinfo->dst, conv_type, 0, 0, NO_PORTS);
}
else {
/*
@@ -596,6 +624,7 @@ dissect_eth_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
}
}
}
+
ethd = get_eth_conversation_data(conv, pinfo);
if(ethd) {
ehdr->stream = ethd->stream;
diff --git a/epan/dissectors/packet-eti.c b/epan/dissectors/packet-eti.c
index 880f401c51..f78e93070e 100644
--- a/epan/dissectors/packet-eti.c
+++ b/epan/dissectors/packet-eti.c
@@ -11671,7 +11671,7 @@ dissect_eti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
int uidx = tid2uidx[templateid - 10000];
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
int old_fidx = 0;
int old_uidx = 0;
@@ -11683,9 +11683,9 @@ dissect_eti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
proto_tree *t = root;
while (top) {
DISSECTOR_ASSERT_CMPINT(fidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, (sizeof fields / sizeof fields[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, array_length(fields));
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
switch (fields[fidx].type) {
case ETI_EOF:
@@ -11707,7 +11707,7 @@ dissect_eti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
break;
case ETI_VAR_STRUCT:
case ETI_STRUCT:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
repeats = fields[fidx].type == ETI_VAR_STRUCT ? counter[fields[fidx].counter_off] : 1;
if (repeats) {
--repeats;
@@ -11748,14 +11748,14 @@ dissect_eti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
++uidx;
break;
case ETI_VAR_STRING:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
proto_tree_add_item(t, hf_eti[fields[fidx].field_handle_idx], tvb, off, counter[fields[fidx].counter_off], ENC_ASCII);
off += counter[fields[fidx].counter_off];
++fidx;
++uidx;
break;
case ETI_COUNTER:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
DISSECTOR_ASSERT_CMPUINT(fields[fidx].size, <=, 2);
{
switch (fields[fidx].size) {
diff --git a/epan/dissectors/packet-etsi_card_app_toolkit.c b/epan/dissectors/packet-etsi_card_app_toolkit.c
index 9a85beb8bc..3b06c368cb 100644
--- a/epan/dissectors/packet-etsi_card_app_toolkit.c
+++ b/epan/dissectors/packet-etsi_card_app_toolkit.c
@@ -1049,7 +1049,7 @@ dissect_cat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
while (pos < length) {
proto_item *ti;
guint32 g8, cmd_nr, cmd_qual;
- gboolean cmd_qual_flag;
+ bool cmd_qual_flag;
guint16 tag;
guint32 len, i;
guint8 *ptr = NULL;
@@ -1108,7 +1108,7 @@ dissect_cat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
case 0x13:
proto_tree_add_item_ret_boolean(elem_tree, hf_ctlv_cmd_qual_send_short_msg, tvb, pos+2, 1, ENC_BIG_ENDIAN, &cmd_qual_flag);
sms_data.stk_packing_required = cmd_qual_flag;
- cmd_qual = cmd_qual_flag ? 1 : 0;
+ cmd_qual = cmd_qual_flag;
break;
case 0x26:
proto_tree_add_item_ret_uint(elem_tree, hf_ctlv_cmd_qual_loci, tvb, pos+2, 1, ENC_BIG_ENDIAN, &cmd_qual);
@@ -1118,7 +1118,7 @@ dissect_cat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
break;
case 0x43:
proto_tree_add_item_ret_boolean(elem_tree, hf_ctlv_cmd_qual_send_data, tvb, pos+2, 1, ENC_BIG_ENDIAN, &cmd_qual_flag);
- cmd_qual = cmd_qual_flag ? 1 : 0;
+ cmd_qual = cmd_qual_flag;
break;
default:
proto_tree_add_item_ret_uint(elem_tree, hf_ctlv_cmd_qual, tvb, pos+2, 1, ENC_BIG_ENDIAN, &cmd_qual);
diff --git a/epan/dissectors/packet-etv.c b/epan/dissectors/packet-etv.c
index 2721b5cdc2..88f2fb3954 100644
--- a/epan/dissectors/packet-etv.c
+++ b/epan/dissectors/packet-etv.c
@@ -58,7 +58,7 @@ dissect_etv_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int prot
proto_item *pi;
proto_tree *etv_tree;
proto_item *items[PACKET_MPEG_SECT_PI__SIZE];
- gboolean ssi;
+ bool ssi;
guint reserved;
guint8 reserved2;
guint16 filter_info;
diff --git a/epan/dissectors/packet-etw.c b/epan/dissectors/packet-etw.c
index 342b6358b4..11fa08626d 100644
--- a/epan/dissectors/packet-etw.c
+++ b/epan/dissectors/packet-etw.c
@@ -63,7 +63,7 @@ static e_guid_t mbim_net_providerid = { 0xA42FE227, 0xA7BF, 0x4483, {0xA5, 0x02,
( ((Count)+(Pow2)-1) & (~(((int)(Pow2))-1)) )
#define ETW_HEADER_SIZE 0x60
-static int etw_counter = 0;
+static int etw_counter;
static int
dissect_etw(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree _U_, void* data _U_)
diff --git a/epan/dissectors/packet-evrc.c b/epan/dissectors/packet-evrc.c
index bc54d84803..05424c3d1a 100644
--- a/epan/dissectors/packet-evrc.c
+++ b/epan/dissectors/packet-evrc.c
@@ -191,7 +191,7 @@ static expert_field ei_evrc_unknown_variant;
* Variables to allow for proper deletion of dissector registration when
* the user changes values
*/
-static gboolean legacy_pt_60 = FALSE;
+static bool legacy_pt_60;
static guint8
@@ -203,19 +203,19 @@ evrc_frame_type_to_octs(guint8 frame_type)
break;
case 1: /* 1/8 rate */
- return(2);
+ return 2;
case 2: /* 1/4 rate */
- return(5);
+ return 5;
case 3: /* 1/2 rate */
- return(10);
+ return 10;
case 4: /* full rate */
- return(22);
+ return 22;
}
- return(0);
+ return 0;
}
/* GENERIC EVRC DISSECTOR FUNCTIONS */
diff --git a/epan/dissectors/packet-evs.c b/epan/dissectors/packet-evs.c
index ac78b63b26..cb61973fd6 100644
--- a/epan/dissectors/packet-evs.c
+++ b/epan/dissectors/packet-evs.c
@@ -26,7 +26,7 @@ void proto_reg_handoff_evs(void);
static dissector_handle_t evs_handle;
-static gboolean evs_hf_only = FALSE;
+static bool evs_hf_only;
/* Initialize the protocol and registered fields */
static int proto_evs;
diff --git a/epan/dissectors/packet-exec.c b/epan/dissectors/packet-exec.c
index 6c1437d49c..3faf1bdb90 100644
--- a/epan/dissectors/packet-exec.c
+++ b/epan/dissectors/packet-exec.c
@@ -22,8 +22,8 @@
#define EXEC_PORT 512
/* Variables for our preferences */
-static gboolean preference_info_show_username = TRUE;
-static gboolean preference_info_show_command = FALSE;
+static bool preference_info_show_username = true;
+static bool preference_info_show_command;
void proto_register_exec(void);
void proto_reg_handoff_exec(void);
diff --git a/epan/dissectors/packet-f1ap.c b/epan/dissectors/packet-f1ap.c
index 8adb598a6b..844bf395fb 100644
--- a/epan/dissectors/packet-f1ap.c
+++ b/epan/dissectors/packet-f1ap.c
@@ -13,7 +13,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 38.473 V17.7.0 (2023-12)
+ * References: 3GPP TS 38.473 V17.8.0 (2024-03)
*/
#include "config.h"
@@ -3193,1038 +3193,1038 @@ static gint ett_f1ap_UL_GapFR2_Config;
static gint ett_f1ap_ConfigRestrictInfoDAPS;
static gint ett_f1ap_UplinkTxDirectCurrentTwoCarrierListInfo;
static gint ett_f1ap_Ncd_SSB_RedCapInitialBWP_SDT;
-static gint ett_f1ap_PrivateIE_ID;
-static gint ett_f1ap_ProtocolIE_Container;
-static gint ett_f1ap_ProtocolIE_Field;
-static gint ett_f1ap_ProtocolExtensionContainer;
-static gint ett_f1ap_ProtocolExtensionField;
-static gint ett_f1ap_PrivateIE_Container;
-static gint ett_f1ap_PrivateIE_Field;
-static gint ett_f1ap_AbortTransmission;
-static gint ett_f1ap_AccessPointPosition;
-static gint ett_f1ap_Activated_Cells_to_be_Updated_List;
-static gint ett_f1ap_Activated_Cells_to_be_Updated_List_Item;
-static gint ett_f1ap_ActiveULBWP;
-static gint ett_f1ap_AdditionalPath_List;
-static gint ett_f1ap_AdditionalPath_Item;
-static gint ett_f1ap_ExtendedAdditionalPathList;
-static gint ett_f1ap_ExtendedAdditionalPathList_Item;
-static gint ett_f1ap_AdditionalPDCPDuplicationTNL_List;
-static gint ett_f1ap_AdditionalPDCPDuplicationTNL_Item;
-static gint ett_f1ap_AdditionalSIBMessageList;
-static gint ett_f1ap_AdditionalSIBMessageList_Item;
-static gint ett_f1ap_AffectedCellsAndBeams_List;
-static gint ett_f1ap_AffectedCellsAndBeams_Item;
-static gint ett_f1ap_AffectedSSB_List;
-static gint ett_f1ap_AffectedSSB_Item;
-static gint ett_f1ap_AggressorCellList;
-static gint ett_f1ap_AggressorCellList_Item;
-static gint ett_f1ap_AggressorgNBSetID;
-static gint ett_f1ap_AllocationAndRetentionPriority;
-static gint ett_f1ap_AlternativeQoSParaSetList;
-static gint ett_f1ap_AlternativeQoSParaSetItem;
-static gint ett_f1ap_AngleMeasurementQuality;
-static gint ett_f1ap_AperiodicSRSResourceTriggerList;
-static gint ett_f1ap_Associated_SCell_Item;
-static gint ett_f1ap_AvailablePLMNList;
-static gint ett_f1ap_AvailablePLMNList_Item;
-static gint ett_f1ap_AvailableSNPN_ID_List;
-static gint ett_f1ap_AvailableSNPN_ID_List_Item;
-static gint ett_f1ap_AoA_AssistanceInfo;
-static gint ett_f1ap_AngleMeasurementType;
-static gint ett_f1ap_ARPLocationInformation;
-static gint ett_f1ap_ARPLocationInformation_Item;
-static gint ett_f1ap_ARPLocationType;
-static gint ett_f1ap_BAP_Header_Rewriting_Added_List_Item;
-static gint ett_f1ap_BAP_Header_Rewriting_Removed_List_Item;
-static gint ett_f1ap_BandwidthSRS;
-static gint ett_f1ap_BAPlayerBHRLCchannelMappingInfo;
-static gint ett_f1ap_BAPlayerBHRLCchannelMappingInfoList;
-static gint ett_f1ap_BAPlayerBHRLCchannelMappingInfo_Item;
-static gint ett_f1ap_BAPRoutingID;
-static gint ett_f1ap_BCBearerContextF1U_TNLInfo;
-static gint ett_f1ap_BHChannels_FailedToBeModified_Item;
-static gint ett_f1ap_BHChannels_FailedToBeSetup_Item;
-static gint ett_f1ap_BHChannels_FailedToBeSetupMod_Item;
-static gint ett_f1ap_BHChannels_Modified_Item;
-static gint ett_f1ap_BHChannels_Required_ToBeReleased_Item;
-static gint ett_f1ap_BHChannels_Setup_Item;
-static gint ett_f1ap_BHChannels_SetupMod_Item;
-static gint ett_f1ap_BHChannels_ToBeModified_Item;
-static gint ett_f1ap_BHChannels_ToBeReleased_Item;
-static gint ett_f1ap_BHChannels_ToBeSetup_Item;
-static gint ett_f1ap_BHChannels_ToBeSetupMod_Item;
-static gint ett_f1ap_BHInfo;
-static gint ett_f1ap_BHQoSInformation;
-static gint ett_f1ap_BHRLCCHList;
-static gint ett_f1ap_BHRLCCHItem;
-static gint ett_f1ap_BH_Routing_Information_Added_List_Item;
-static gint ett_f1ap_BH_Routing_Information_Removed_List_Item;
-static gint ett_f1ap_BPLMN_ID_Info_List;
-static gint ett_f1ap_BPLMN_ID_Info_Item;
-static gint ett_f1ap_ServedPLMNs_List;
-static gint ett_f1ap_ServedPLMNs_Item;
-static gint ett_f1ap_BroadcastCAGList;
-static gint ett_f1ap_BroadcastMRBs_FailedToBeModified_Item;
-static gint ett_f1ap_BroadcastMRBs_FailedToBeSetup_Item;
-static gint ett_f1ap_BroadcastMRBs_FailedToBeSetupMod_Item;
-static gint ett_f1ap_BroadcastMRBs_Modified_Item;
-static gint ett_f1ap_BroadcastMRBs_Setup_Item;
-static gint ett_f1ap_BroadcastMRBs_SetupMod_Item;
-static gint ett_f1ap_BroadcastMRBs_ToBeModified_Item;
-static gint ett_f1ap_BroadcastMRBs_ToBeReleased_Item;
-static gint ett_f1ap_BroadcastMRBs_ToBeSetup_Item;
-static gint ett_f1ap_BroadcastMRBs_ToBeSetupMod_Item;
-static gint ett_f1ap_BroadcastNIDList;
-static gint ett_f1ap_BroadcastSNPN_ID_List;
-static gint ett_f1ap_BroadcastSNPN_ID_List_Item;
-static gint ett_f1ap_BroadcastPNI_NPN_ID_List;
-static gint ett_f1ap_BroadcastPNI_NPN_ID_List_Item;
-static gint ett_f1ap_BroadcastAreaScope;
-static gint ett_f1ap_BroadcastCellList;
-static gint ett_f1ap_Broadcast_Cell_List_Item;
-static gint ett_f1ap_Candidate_SpCell_Item;
-static gint ett_f1ap_CapacityValue;
-static gint ett_f1ap_Cause;
-static gint ett_f1ap_CellMeasurementResultList;
-static gint ett_f1ap_CellMeasurementResultItem;
-static gint ett_f1ap_CellsForSON_List;
-static gint ett_f1ap_CellsForSON_Item;
-static gint ett_f1ap_Cells_Failed_to_be_Activated_List_Item;
-static gint ett_f1ap_Cells_Status_Item;
-static gint ett_f1ap_Cells_To_Be_Broadcast_Item;
-static gint ett_f1ap_Cells_Broadcast_Completed_Item;
-static gint ett_f1ap_Broadcast_To_Be_Cancelled_Item;
-static gint ett_f1ap_Cells_Broadcast_Cancelled_Item;
-static gint ett_f1ap_Cells_to_be_Activated_List_Item;
-static gint ett_f1ap_Cells_to_be_Deactivated_List_Item;
-static gint ett_f1ap_Cells_to_be_Barred_Item;
-static gint ett_f1ap_CellToReportList;
-static gint ett_f1ap_CellToReportItem;
-static gint ett_f1ap_CellType;
-static gint ett_f1ap_CG_SDTSessionInfo;
-static gint ett_f1ap_Child_IAB_Nodes_NA_Resource_List;
-static gint ett_f1ap_Child_IAB_Nodes_NA_Resource_List_Item;
-static gint ett_f1ap_Child_Node_Cells_List;
-static gint ett_f1ap_Child_Node_Cells_List_Item;
-static gint ett_f1ap_Child_Nodes_List;
-static gint ett_f1ap_Child_Nodes_List_Item;
-static gint ett_f1ap_CNUEPagingIdentity;
-static gint ett_f1ap_CompositeAvailableCapacityGroup;
-static gint ett_f1ap_CompositeAvailableCapacity;
-static gint ett_f1ap_ConditionalInterDUMobilityInformation;
-static gint ett_f1ap_ConditionalIntraDUMobilityInformation;
-static gint ett_f1ap_Configured_BWP_List;
-static gint ett_f1ap_Configured_BWP_Item;
-static gint ett_f1ap_Coverage_Modification_Notification;
-static gint ett_f1ap_Coverage_Modification_List;
-static gint ett_f1ap_Coverage_Modification_Item;
-static gint ett_f1ap_CCO_Assistance_Information;
-static gint ett_f1ap_CP_TransportLayerAddress;
-static gint ett_f1ap_CPACMCGInformation;
-static gint ett_f1ap_CriticalityDiagnostics;
-static gint ett_f1ap_CriticalityDiagnostics_IE_List;
-static gint ett_f1ap_CriticalityDiagnostics_IE_Item;
-static gint ett_f1ap_CUDURadioInformationType;
-static gint ett_f1ap_CUDURIMInformation;
-static gint ett_f1ap_CUtoDURRCInformation;
-static gint ett_f1ap_Dedicated_SIDelivery_NeededUE_Item;
-static gint ett_f1ap_DL_PRS;
-static gint ett_f1ap_DL_PRSMutingPattern;
-static gint ett_f1ap_DLPRSResourceCoordinates;
-static gint ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRS_ResourceSets_OF_DLPRSResourceSetARP;
-static gint ett_f1ap_DLPRSResourceSetARP;
-static gint ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRS_ResourcesPerSet_OF_DLPRSResourceARP;
-static gint ett_f1ap_DL_PRSResourceSetARPLocation;
-static gint ett_f1ap_DLPRSResourceARP;
-static gint ett_f1ap_DL_PRSResourceARPLocation;
-static gint ett_f1ap_DL_UP_TNL_Address_to_Update_List_Item;
-static gint ett_f1ap_DLUPTNLInformation_ToBeSetup_List;
-static gint ett_f1ap_DLUPTNLInformation_ToBeSetup_Item;
-static gint ett_f1ap_DRB_Activity_Item;
-static gint ett_f1ap_DRBs_FailedToBeModified_Item;
-static gint ett_f1ap_DRBs_FailedToBeSetup_Item;
-static gint ett_f1ap_DRBs_FailedToBeSetupMod_Item;
-static gint ett_f1ap_DRB_Information;
-static gint ett_f1ap_DRBs_Modified_Item;
-static gint ett_f1ap_DRBs_ModifiedConf_Item;
-static gint ett_f1ap_DRB_Notify_Item;
-static gint ett_f1ap_DRBs_Required_ToBeModified_Item;
-static gint ett_f1ap_DRBs_Required_ToBeReleased_Item;
-static gint ett_f1ap_DRBs_Setup_Item;
-static gint ett_f1ap_DRBs_SetupMod_Item;
-static gint ett_f1ap_DRBs_ToBeModified_Item;
-static gint ett_f1ap_DRBs_ToBeReleased_Item;
-static gint ett_f1ap_DRBs_ToBeSetup_Item;
-static gint ett_f1ap_DRBs_ToBeSetupMod_Item;
-static gint ett_f1ap_DRXCycle;
-static gint ett_f1ap_DSInformationList;
-static gint ett_f1ap_DUCURadioInformationType;
-static gint ett_f1ap_DUCURIMInformation;
-static gint ett_f1ap_DUF_Slot_Config_Item;
-static gint ett_f1ap_DUF_Slot_Config_List;
-static gint ett_f1ap_DUtoCURRCInformation;
-static gint ett_f1ap_Dynamic5QIDescriptor;
-static gint ett_f1ap_DynamicPQIDescriptor;
-static gint ett_f1ap_E_CID_MeasurementQuantities;
-static gint ett_f1ap_E_CID_MeasurementQuantities_Item;
-static gint ett_f1ap_E_CID_MeasurementResult;
-static gint ett_f1ap_E_CID_MeasuredResults_List;
-static gint ett_f1ap_E_CID_MeasuredResults_Item;
-static gint ett_f1ap_E_CID_MeasuredResults_Value;
-static gint ett_f1ap_EgressBHRLCCHList;
-static gint ett_f1ap_EgressBHRLCCHItem;
-static gint ett_f1ap_Endpoint_IP_address_and_port;
-static gint ett_f1ap_ExtendedAvailablePLMN_List;
-static gint ett_f1ap_ExtendedAvailablePLMN_Item;
-static gint ett_f1ap_ExplicitFormat;
-static gint ett_f1ap_ExtendedServedPLMNs_List;
-static gint ett_f1ap_ExtendedServedPLMNs_Item;
-static gint ett_f1ap_ExtendedSliceSupportList;
-static gint ett_f1ap_EUTRACells_List;
-static gint ett_f1ap_EUTRACells_List_item;
-static gint ett_f1ap_EUTRA_Coex_FDD_Info;
-static gint ett_f1ap_EUTRA_Coex_Mode_Info;
-static gint ett_f1ap_EUTRA_Coex_TDD_Info;
-static gint ett_f1ap_EUTRA_PRACH_Configuration;
-static gint ett_f1ap_EUTRA_SpecialSubframe_Info;
-static gint ett_f1ap_EUTRANQoS;
-static gint ett_f1ap_EUTRA_Mode_Info;
-static gint ett_f1ap_EUTRA_FDD_Info;
-static gint ett_f1ap_EUTRA_TDD_Info;
-static gint ett_f1ap_Expected_UL_AoA;
-static gint ett_f1ap_Expected_ZoA_only;
-static gint ett_f1ap_Expected_Azimuth_AoA;
-static gint ett_f1ap_Expected_Zenith_AoA;
-static gint ett_f1ap_F1CTransferPath;
-static gint ett_f1ap_F1CTransferPathNRDC;
-static gint ett_f1ap_FDD_Info;
-static gint ett_f1ap_FDD_InfoRel16;
-static gint ett_f1ap_FiveG_ProSeAuthorized;
-static gint ett_f1ap_Flows_Mapped_To_DRB_List;
-static gint ett_f1ap_Flows_Mapped_To_DRB_Item;
-static gint ett_f1ap_FreqBandNrItem;
-static gint ett_f1ap_SEQUENCE_SIZE_0_maxnoofNrCellBands_OF_SupportedSULFreqBandItem;
-static gint ett_f1ap_FreqDomainLength;
-static gint ett_f1ap_FreqInfoRel16;
-static gint ett_f1ap_Frequency_Domain_HSNA_Configuration_List;
-static gint ett_f1ap_Frequency_Domain_HSNA_Configuration_Item;
-static gint ett_f1ap_Frequency_Domain_HSNA_Slot_Configuration_List;
-static gint ett_f1ap_Frequency_Domain_HSNA_Slot_Configuration_Item;
-static gint ett_f1ap_FlowsMappedToSLDRB_List;
-static gint ett_f1ap_FlowsMappedToSLDRB_Item;
-static gint ett_f1ap_GBR_QosInformation;
-static gint ett_f1ap_GBR_QoSFlowInformation;
-static gint ett_f1ap_GeographicalCoordinates;
-static gint ett_f1ap_GNB_CUSystemInformation;
-static gint ett_f1ap_SEQUENCE_SIZE_1_maxnoofSIBTypes_OF_SibtypetobeupdatedListItem;
-static gint ett_f1ap_GNB_CU_TNL_Association_Setup_Item;
-static gint ett_f1ap_GNB_CU_TNL_Association_Failed_To_Setup_Item;
-static gint ett_f1ap_GNB_CU_TNL_Association_To_Add_Item;
-static gint ett_f1ap_GNB_CU_TNL_Association_To_Remove_Item;
-static gint ett_f1ap_GNB_CU_TNL_Association_To_Update_Item;
-static gint ett_f1ap_GNB_DU_Cell_Resource_Configuration;
-static gint ett_f1ap_Extended_GNB_CU_Name;
-static gint ett_f1ap_Extended_GNB_DU_Name;
-static gint ett_f1ap_GNB_DU_Served_Cells_Item;
-static gint ett_f1ap_GNB_DU_System_Information;
-static gint ett_f1ap_GNB_DU_TNL_Association_To_Remove_Item;
-static gint ett_f1ap_GNBDUUESliceMaximumBitRateList;
-static gint ett_f1ap_GNBDUUESliceMaximumBitRateItem;
-static gint ett_f1ap_GNB_RxTxTimeDiff;
-static gint ett_f1ap_GNBRxTxTimeDiffMeas;
-static gint ett_f1ap_GTPTLAs;
-static gint ett_f1ap_GTPTLA_Item;
-static gint ett_f1ap_GTPTunnel;
-static gint ett_f1ap_HardwareLoadIndicator;
-static gint ett_f1ap_HSNASlotConfigList;
-static gint ett_f1ap_HSNASlotConfigItem;
-static gint ett_f1ap_IABCongestionIndication;
-static gint ett_f1ap_IAB_Congestion_Indication_List;
-static gint ett_f1ap_IAB_Congestion_Indication_Item;
-static gint ett_f1ap_IAB_Info_IAB_donor_CU;
-static gint ett_f1ap_IAB_Info_IAB_DU;
-static gint ett_f1ap_IAB_MT_Cell_List;
-static gint ett_f1ap_IAB_MT_Cell_List_Item;
-static gint ett_f1ap_IAB_MT_Cell_NA_Resource_Configuration_Mode_Info;
-static gint ett_f1ap_IAB_MT_Cell_NA_Resource_Configuration_FDD_Info;
-static gint ett_f1ap_IAB_MT_Cell_NA_Resource_Configuration_TDD_Info;
-static gint ett_f1ap_IAB_STC_Info;
-static gint ett_f1ap_IAB_STC_Info_List;
-static gint ett_f1ap_IAB_STC_Info_Item;
-static gint ett_f1ap_IAB_Allocated_TNL_Address_Item;
-static gint ett_f1ap_IAB_DU_Cell_Resource_Configuration_Mode_Info;
-static gint ett_f1ap_IAB_DU_Cell_Resource_Configuration_FDD_Info;
-static gint ett_f1ap_IAB_DU_Cell_Resource_Configuration_TDD_Info;
-static gint ett_f1ap_IABIPv6RequestType;
-static gint ett_f1ap_IABTNLAddress;
-static gint ett_f1ap_IABTNLAddressesRequested;
-static gint ett_f1ap_IAB_TNL_Addresses_To_Remove_Item;
-static gint ett_f1ap_IAB_TNL_Addresses_Exception;
-static gint ett_f1ap_IABTNLAddressList;
-static gint ett_f1ap_IABTNLAddress_Item;
-static gint ett_f1ap_IABv4AddressesRequested;
-static gint ett_f1ap_ImplicitFormat;
-static gint ett_f1ap_IntendedTDD_DL_ULConfig;
-static gint ett_f1ap_IPHeaderInformation;
-static gint ett_f1ap_IPtolayer2TrafficMappingInfo;
-static gint ett_f1ap_IPtolayer2TrafficMappingInfoList;
-static gint ett_f1ap_IPtolayer2TrafficMappingInfo_Item;
-static gint ett_f1ap_L139Info;
-static gint ett_f1ap_L839Info;
-static gint ett_f1ap_L571Info;
-static gint ett_f1ap_L1151Info;
-static gint ett_f1ap_LCS_to_GCS_Translation;
-static gint ett_f1ap_LCStoGCSTranslationList;
-static gint ett_f1ap_LCStoGCSTranslation;
-static gint ett_f1ap_LocationDependentMBSF1UInformation;
-static gint ett_f1ap_LocationDependentMBSF1UInformation_Item;
-static gint ett_f1ap_LocationUncertainty;
-static gint ett_f1ap_LoS_NLoSInformation;
-static gint ett_f1ap_LTEUESidelinkAggregateMaximumBitrate;
-static gint ett_f1ap_LTEV2XServicesAuthorized;
-static gint ett_f1ap_MappingInformationtoRemove;
-static gint ett_f1ap_MBS_Flows_Mapped_To_MRB_List;
-static gint ett_f1ap_MBS_Flows_Mapped_To_MRB_Item;
-static gint ett_f1ap_MBSF1UInformation;
-static gint ett_f1ap_MBS_Session_ID;
-static gint ett_f1ap_MBS_CUtoDURRCInformation;
-static gint ett_f1ap_MBS_Broadcast_Cell_List;
-static gint ett_f1ap_MBS_Broadcast_Cell_Item;
-static gint ett_f1ap_MBS_Broadcast_MRB_List;
-static gint ett_f1ap_MBS_Broadcast_MRB_Item;
-static gint ett_f1ap_MBSMulticastF1UContextDescriptor;
-static gint ett_f1ap_MulticastF1UContext_ToBeSetup_Item;
-static gint ett_f1ap_MulticastF1UContext_Setup_Item;
-static gint ett_f1ap_MulticastF1UContext_FailedToBeSetup_Item;
-static gint ett_f1ap_MBS_ServiceArea;
-static gint ett_f1ap_MBS_ServiceAreaInformation;
-static gint ett_f1ap_MBS_ServiceAreaCellList;
-static gint ett_f1ap_MBS_ServiceAreaTAIList;
-static gint ett_f1ap_MBS_ServiceAreaTAIList_Item;
-static gint ett_f1ap_MBS_ServiceAreaInformationList;
-static gint ett_f1ap_MBS_ServiceAreaInformationItem;
-static gint ett_f1ap_MC_PagingCell_Item;
-static gint ett_f1ap_MeasurementBeamInfo;
-static gint ett_f1ap_MRB_ProgressInformation;
-static gint ett_f1ap_MultipleULAoA;
-static gint ett_f1ap_MultipleULAoA_List;
-static gint ett_f1ap_MultipleULAoA_Item;
-static gint ett_f1ap_MulticastMBSSessionList;
-static gint ett_f1ap_MulticastMBSSessionList_Item;
-static gint ett_f1ap_MulticastMRBs_FailedToBeModified_Item;
-static gint ett_f1ap_MulticastMRBs_FailedToBeSetup_Item;
-static gint ett_f1ap_MulticastMRBs_FailedToBeSetupMod_Item;
-static gint ett_f1ap_MulticastMRBs_Modified_Item;
-static gint ett_f1ap_MulticastMRBs_Setup_Item;
-static gint ett_f1ap_MulticastMRBs_SetupMod_Item;
-static gint ett_f1ap_MulticastMRBs_ToBeModified_Item;
-static gint ett_f1ap_MulticastMRBs_ToBeReleased_Item;
-static gint ett_f1ap_MulticastMRBs_ToBeSetup_Item;
-static gint ett_f1ap_MulticastMRBs_ToBeSetupMod_Item;
-static gint ett_f1ap_MultiplexingInfo;
-static gint ett_f1ap_M5Configuration;
-static gint ett_f1ap_M6Configuration;
-static gint ett_f1ap_M7Configuration;
-static gint ett_f1ap_MDTConfiguration;
-static gint ett_f1ap_MDTPLMNList;
-static gint ett_f1ap_MDTPLMNModificationList;
-static gint ett_f1ap_MeasuredResultsValue;
-static gint ett_f1ap_NA_Resource_Configuration_List;
-static gint ett_f1ap_NA_Resource_Configuration_Item;
-static gint ett_f1ap_Neighbour_Node_Cells_List;
-static gint ett_f1ap_Neighbour_Node_Cells_List_Item;
-static gint ett_f1ap_Neighbour_Cell_Information_Item;
-static gint ett_f1ap_NeighbourNR_CellsForSON_List;
-static gint ett_f1ap_NeighbourNR_CellsForSON_Item;
-static gint ett_f1ap_NGRANAllocationAndRetentionPriority;
-static gint ett_f1ap_NGRANHighAccuracyAccessPointPosition;
-static gint ett_f1ap_NR_CGI_List_For_Restart_Item;
-static gint ett_f1ap_NR_PRSBeamInformation;
-static gint ett_f1ap_NR_PRSBeamInformationList;
-static gint ett_f1ap_NR_PRSBeamInformationItem;
-static gint ett_f1ap_NRPagingeDRXInformation;
-static gint ett_f1ap_NRPagingeDRXInformationforRRCINACTIVE;
-static gint ett_f1ap_NonDynamic5QIDescriptor;
-static gint ett_f1ap_NonDynamicPQIDescriptor;
-static gint ett_f1ap_NotificationInformation;
-static gint ett_f1ap_NPNBroadcastInformation;
-static gint ett_f1ap_NPN_Broadcast_Information_SNPN;
-static gint ett_f1ap_NPN_Broadcast_Information_PNI_NPN;
-static gint ett_f1ap_NPNSupportInfo;
-static gint ett_f1ap_NRCarrierList;
-static gint ett_f1ap_NRCarrierItem;
-static gint ett_f1ap_NRFreqInfo;
-static gint ett_f1ap_SEQUENCE_SIZE_1_maxnoofNrCellBands_OF_FreqBandNrItem;
-static gint ett_f1ap_NRCGI;
-static gint ett_f1ap_NR_Mode_Info;
-static gint ett_f1ap_NR_ModeInfoRel16;
-static gint ett_f1ap_NRPRACHConfig;
-static gint ett_f1ap_NRPRACHConfigList;
-static gint ett_f1ap_NRPRACHConfigItem;
-static gint ett_f1ap_NR_U_Channel_Info_List;
-static gint ett_f1ap_NR_U_Channel_Info_Item;
-static gint ett_f1ap_NR_U_Channel_List;
-static gint ett_f1ap_NR_U_Channel_Item;
-static gint ett_f1ap_NumDLULSymbols;
-static gint ett_f1ap_NRV2XServicesAuthorized;
-static gint ett_f1ap_NRUESidelinkAggregateMaximumBitrate;
-static gint ett_f1ap_OnDemandPRS_Info;
-static gint ett_f1ap_PacketErrorRate;
-static gint ett_f1ap_PagingCell_Item;
-static gint ett_f1ap_PagingIdentity;
-static gint ett_f1ap_PEIPSAssistanceInfo;
-static gint ett_f1ap_RelativePathDelay;
-static gint ett_f1ap_Parent_IAB_Nodes_NA_Resource_Configuration_List;
-static gint ett_f1ap_Parent_IAB_Nodes_NA_Resource_Configuration_Item;
-static gint ett_f1ap_PartialSuccessCell;
-static gint ett_f1ap_PathlossReferenceInfo;
-static gint ett_f1ap_PathlossReferenceSignal;
-static gint ett_f1ap_PathSwitchConfiguration;
-static gint ett_f1ap_PC5_QoS_Characteristics;
-static gint ett_f1ap_PC5QoSParameters;
-static gint ett_f1ap_PC5FlowBitRates;
-static gint ett_f1ap_PC5RLCChannelQoSInformation;
-static gint ett_f1ap_PC5RLCChannelToBeSetupList;
-static gint ett_f1ap_PC5RLCChannelToBeSetupItem;
-static gint ett_f1ap_PC5RLCChannelToBeModifiedList;
-static gint ett_f1ap_PC5RLCChannelToBeModifiedItem;
-static gint ett_f1ap_PC5RLCChannelToBeReleasedList;
-static gint ett_f1ap_PC5RLCChannelToBeReleasedItem;
-static gint ett_f1ap_PC5RLCChannelSetupList;
-static gint ett_f1ap_PC5RLCChannelSetupItem;
-static gint ett_f1ap_PC5RLCChannelFailedToBeSetupList;
-static gint ett_f1ap_PC5RLCChannelFailedToBeSetupItem;
-static gint ett_f1ap_PC5RLCChannelModifiedList;
-static gint ett_f1ap_PC5RLCChannelModifiedItem;
-static gint ett_f1ap_PC5RLCChannelFailedToBeModifiedList;
-static gint ett_f1ap_PC5RLCChannelFailedToBeModifiedItem;
-static gint ett_f1ap_PC5RLCChannelRequiredToBeModifiedList;
-static gint ett_f1ap_PC5RLCChannelRequiredToBeModifiedItem;
-static gint ett_f1ap_PC5RLCChannelRequiredToBeReleasedList;
-static gint ett_f1ap_PC5RLCChannelRequiredToBeReleasedItem;
-static gint ett_f1ap_PDCMeasurementQuantities;
-static gint ett_f1ap_PDCMeasurementQuantities_Item;
-static gint ett_f1ap_PDCMeasurementResult;
-static gint ett_f1ap_PDCMeasuredResultsList;
-static gint ett_f1ap_PDCMeasuredResults_Item;
-static gint ett_f1ap_PDCMeasuredResults_Value;
-static gint ett_f1ap_PeriodicityList;
-static gint ett_f1ap_PeriodicityList_Item;
-static gint ett_f1ap_PositioningBroadcastCells;
-static gint ett_f1ap_PosMeasGapPreConfigList;
-static gint ett_f1ap_PosMeasurementQuantities;
-static gint ett_f1ap_PosMeasurementQuantities_Item;
-static gint ett_f1ap_PosMeasurementResult;
-static gint ett_f1ap_PosMeasurementResultItem;
-static gint ett_f1ap_PosMeasurementResultList;
-static gint ett_f1ap_PosMeasurementResultList_Item;
-static gint ett_f1ap_PosResourceSetType;
-static gint ett_f1ap_PosResourceSetTypePR;
-static gint ett_f1ap_PosResourceSetTypeSP;
-static gint ett_f1ap_PosResourceSetTypeAP;
-static gint ett_f1ap_PosSItypeList;
-static gint ett_f1ap_PosSItype_Item;
-static gint ett_f1ap_PosSRSResourceID_List;
-static gint ett_f1ap_PosSRSResource_Item;
-static gint ett_f1ap_PosSRSResource_List;
-static gint ett_f1ap_PosSRSResourceSet_Item;
-static gint ett_f1ap_PosSRSResourceSet_List;
-static gint ett_f1ap_Protected_EUTRA_Resources_Item;
-static gint ett_f1ap_PRSConfiguration;
-static gint ett_f1ap_PRSInformationPos;
-static gint ett_f1ap_PRS_Measurement_Info_List;
-static gint ett_f1ap_PRS_Measurement_Info_List_Item;
-static gint ett_f1ap_Potential_SpCell_Item;
-static gint ett_f1ap_PRSAngleList;
-static gint ett_f1ap_PRSAngleItem;
-static gint ett_f1ap_PRSMuting;
-static gint ett_f1ap_PRSMutingOption1;
-static gint ett_f1ap_PRSMutingOption2;
-static gint ett_f1ap_PRSResource_List;
-static gint ett_f1ap_PRSResource_Item;
-static gint ett_f1ap_PRSResource_QCLInfo;
-static gint ett_f1ap_PRSResource_QCLSourceSSB;
-static gint ett_f1ap_PRSResource_QCLSourcePRS;
-static gint ett_f1ap_PRSResourceSet_List;
-static gint ett_f1ap_PRSResourceSet_Item;
-static gint ett_f1ap_PRSTransmissionOffIndication;
-static gint ett_f1ap_PRSTransmissionOffPerResource;
-static gint ett_f1ap_PRSTransmissionOffPerResource_Item;
-static gint ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRSresources_OF_PRSTransmissionOffIndicationPerResource_Item;
-static gint ett_f1ap_PRSTransmissionOffIndicationPerResource_Item;
-static gint ett_f1ap_PRSTransmissionOffInformation;
-static gint ett_f1ap_PRSTransmissionOffPerResourceSet;
-static gint ett_f1ap_PRSTransmissionOffPerResourceSet_Item;
-static gint ett_f1ap_PWS_Failed_NR_CGI_Item;
-static gint ett_f1ap_PWSSystemInformation;
-static gint ett_f1ap_PRSTRPList;
-static gint ett_f1ap_PRSTRPItem;
-static gint ett_f1ap_RequestedDLPRSTransmissionCharacteristics;
-static gint ett_f1ap_RequestedDLPRSResourceSet_List;
-static gint ett_f1ap_RequestedDLPRSResourceSet_Item;
-static gint ett_f1ap_RequestedDLPRSResource_List;
-static gint ett_f1ap_RequestedDLPRSResource_Item;
-static gint ett_f1ap_PRSTransmissionTRPList;
-static gint ett_f1ap_PRSTransmissionTRPItem;
-static gint ett_f1ap_QoEInformation;
-static gint ett_f1ap_QoEInformationList;
-static gint ett_f1ap_QoEInformationList_Item;
-static gint ett_f1ap_QoEMetrics;
-static gint ett_f1ap_QoS_Characteristics;
-static gint ett_f1ap_QoSFlowLevelQoSParameters;
-static gint ett_f1ap_QoSInformation;
-static gint ett_f1ap_RACHReportInformationList;
-static gint ett_f1ap_RACHReportInformationItem;
-static gint ett_f1ap_RadioResourceStatus;
-static gint ett_f1ap_MIMOPRBusageInformation;
-static gint ett_f1ap_RANUEPagingIdentity;
-static gint ett_f1ap_RAT_FrequencyPriorityInformation;
-static gint ett_f1ap_RBSetConfiguration;
-static gint ett_f1ap_ReferencePoint;
-static gint ett_f1ap_ReferenceSignal;
-static gint ett_f1ap_RelativeCartesianLocation;
-static gint ett_f1ap_RelativeGeodeticLocation;
-static gint ett_f1ap_RequestedSRSTransmissionCharacteristics;
-static gint ett_f1ap_ResourceCoordinationEUTRACellInfo;
-static gint ett_f1ap_ResourceCoordinationTransferInformation;
-static gint ett_f1ap_ResourceSetType;
-static gint ett_f1ap_ResourceSetTypePeriodic;
-static gint ett_f1ap_ResourceSetTypeSemi_persistent;
-static gint ett_f1ap_ResourceSetTypeAperiodic;
-static gint ett_f1ap_ReportingRequestType;
-static gint ett_f1ap_ResourceType;
-static gint ett_f1ap_ResourceTypePeriodic;
-static gint ett_f1ap_ResourceTypeSemi_persistent;
-static gint ett_f1ap_ResourceTypeAperiodic;
-static gint ett_f1ap_ResourceTypePos;
-static gint ett_f1ap_ResourceTypePeriodicPos;
-static gint ett_f1ap_ResourceTypeSemi_persistentPos;
-static gint ett_f1ap_ResourceTypeAperiodicPos;
-static gint ett_f1ap_RLCDuplicationInformation;
-static gint ett_f1ap_RLCDuplicationStateList;
-static gint ett_f1ap_RLCDuplicationState_Item;
-static gint ett_f1ap_RLCFailureIndication;
-static gint ett_f1ap_RLC_Status;
-static gint ett_f1ap_RLFReportInformationList;
-static gint ett_f1ap_RLFReportInformationItem;
-static gint ett_f1ap_RRCDeliveryStatus;
-static gint ett_f1ap_RRC_Version;
-static gint ett_f1ap_ResponseTime;
-static gint ett_f1ap_SCell_FailedtoSetup_Item;
-static gint ett_f1ap_SCell_FailedtoSetupMod_Item;
-static gint ett_f1ap_SCell_ToBeRemoved_Item;
-static gint ett_f1ap_SCell_ToBeSetup_Item;
-static gint ett_f1ap_SCell_ToBeSetupMod_Item;
-static gint ett_f1ap_SCS_SpecificCarrier;
-static gint ett_f1ap_SDTBearerConfigurationInfo;
-static gint ett_f1ap_SDTBearerConfig_List;
-static gint ett_f1ap_SDTBearerConfig_List_Item;
-static gint ett_f1ap_SDTBearerType;
-static gint ett_f1ap_SDTInformation;
-static gint ett_f1ap_Search_window_information;
-static gint ett_f1ap_ServingCellMO_List_Item;
-static gint ett_f1ap_ServingCellMO_encoded_in_CGC_List;
-static gint ett_f1ap_ServingCellMO_encoded_in_CGC_Item;
-static gint ett_f1ap_Served_Cell_Information;
-static gint ett_f1ap_Serving_Cells_List;
-static gint ett_f1ap_Serving_Cells_List_Item;
-static gint ett_f1ap_Supported_MBS_FSA_ID_List;
-static gint ett_f1ap_SFN_Offset;
-static gint ett_f1ap_Served_Cells_To_Add_Item;
-static gint ett_f1ap_Served_Cells_To_Delete_Item;
-static gint ett_f1ap_Served_Cells_To_Modify_Item;
-static gint ett_f1ap_Served_EUTRA_Cells_Information;
-static gint ett_f1ap_Service_Status;
-static gint ett_f1ap_SItype_List;
-static gint ett_f1ap_SItype_Item;
-static gint ett_f1ap_SibtypetobeupdatedListItem;
-static gint ett_f1ap_SidelinkRelayConfiguration;
-static gint ett_f1ap_SLDRBInformation;
-static gint ett_f1ap_SLDRBs_FailedToBeModified_Item;
-static gint ett_f1ap_SLDRBs_FailedToBeSetup_Item;
-static gint ett_f1ap_SLDRBs_FailedToBeSetupMod_Item;
-static gint ett_f1ap_SLDRBs_Modified_Item;
-static gint ett_f1ap_SLDRBs_ModifiedConf_Item;
-static gint ett_f1ap_SLDRBs_Required_ToBeModified_Item;
-static gint ett_f1ap_SLDRBs_Required_ToBeReleased_Item;
-static gint ett_f1ap_SLDRBs_Setup_Item;
-static gint ett_f1ap_SLDRBs_SetupMod_Item;
-static gint ett_f1ap_SLDRBs_ToBeModified_Item;
-static gint ett_f1ap_SLDRBs_ToBeReleased_Item;
-static gint ett_f1ap_SLDRBs_ToBeSetup_Item;
-static gint ett_f1ap_SLDRBs_ToBeSetupMod_Item;
-static gint ett_f1ap_SLDRXCycleList;
-static gint ett_f1ap_SLDRXCycleItem;
-static gint ett_f1ap_SLDRXInformation;
-static gint ett_f1ap_SliceAvailableCapacity;
-static gint ett_f1ap_SliceAvailableCapacityList;
-static gint ett_f1ap_SliceAvailableCapacityItem;
-static gint ett_f1ap_SNSSAIAvailableCapacity_List;
-static gint ett_f1ap_SNSSAIAvailableCapacity_Item;
-static gint ett_f1ap_SliceRadioResourceStatus;
-static gint ett_f1ap_SliceRadioResourceStatus_List;
-static gint ett_f1ap_SliceRadioResourceStatus_Item;
-static gint ett_f1ap_SNSSAIRadioResourceStatus_List;
-static gint ett_f1ap_SNSSAIRadioResourceStatus_Item;
-static gint ett_f1ap_SliceSupportList;
-static gint ett_f1ap_SliceSupportItem;
-static gint ett_f1ap_SliceToReportList;
-static gint ett_f1ap_SliceToReportItem;
-static gint ett_f1ap_SNSSAI_list;
-static gint ett_f1ap_SNSSAI_Item;
-static gint ett_f1ap_Slot_Configuration_List;
-static gint ett_f1ap_Slot_Configuration_Item;
-static gint ett_f1ap_SNSSAI;
-static gint ett_f1ap_SpatialDirectionInformation;
-static gint ett_f1ap_SpatialRelationInfo;
-static gint ett_f1ap_SpatialRelationforResourceID;
-static gint ett_f1ap_SpatialRelationforResourceIDItem;
-static gint ett_f1ap_SpatialRelationPerSRSResource;
-static gint ett_f1ap_SpatialRelationPerSRSResource_List;
-static gint ett_f1ap_SpatialRelationPerSRSResourceItem;
-static gint ett_f1ap_SpatialRelationPos;
-static gint ett_f1ap_SRBs_FailedToBeSetup_Item;
-static gint ett_f1ap_SRBs_FailedToBeSetupMod_Item;
-static gint ett_f1ap_SRBs_Modified_Item;
-static gint ett_f1ap_SRBs_Required_ToBeReleased_Item;
-static gint ett_f1ap_SRBs_Setup_Item;
-static gint ett_f1ap_SRBs_SetupMod_Item;
-static gint ett_f1ap_SRBs_ToBeReleased_Item;
-static gint ett_f1ap_SRBs_ToBeSetup_Item;
-static gint ett_f1ap_SRBs_ToBeSetupMod_Item;
-static gint ett_f1ap_SRSCarrier_List;
-static gint ett_f1ap_SRSCarrier_List_Item;
-static gint ett_f1ap_SRSConfig;
-static gint ett_f1ap_SRSConfiguration;
-static gint ett_f1ap_SRSResource;
-static gint ett_f1ap_SRSResourceID_List;
-static gint ett_f1ap_SRSResource_List;
-static gint ett_f1ap_SRSResourceSet;
-static gint ett_f1ap_SRSResourceSetList;
-static gint ett_f1ap_SRSResourceSetItem;
-static gint ett_f1ap_SRSResourceSet_List;
-static gint ett_f1ap_SRSResourceTrigger;
-static gint ett_f1ap_SRSResourcetype;
-static gint ett_f1ap_SRSResourceTypeChoice;
-static gint ett_f1ap_SRSInfo;
-static gint ett_f1ap_PosSRSInfo;
-static gint ett_f1ap_SSB;
-static gint ett_f1ap_SSBCoverageModification_List;
-static gint ett_f1ap_SSBCoverageModification_Item;
-static gint ett_f1ap_SSB_transmissionBitmap;
-static gint ett_f1ap_SSBAreaCapacityValueList;
-static gint ett_f1ap_SSBAreaCapacityValueItem;
-static gint ett_f1ap_SSBAreaRadioResourceStatusList;
-static gint ett_f1ap_SSBAreaRadioResourceStatusItem;
-static gint ett_f1ap_SSBInformation;
-static gint ett_f1ap_SSBInformationList;
-static gint ett_f1ap_SSBInformationItem;
-static gint ett_f1ap_SSB_PositionsInBurst;
-static gint ett_f1ap_SSB_TF_Configuration;
-static gint ett_f1ap_SSBToReportList;
-static gint ett_f1ap_SSBToReportItem;
-static gint ett_f1ap_StartRBIndex;
-static gint ett_f1ap_StartTimeAndDuration;
-static gint ett_f1ap_SUL_Information;
-static gint ett_f1ap_SuccessfulHOReportInformationList;
-static gint ett_f1ap_SuccessfulHOReportInformation_Item;
-static gint ett_f1ap_SupportedSULFreqBandItem;
-static gint ett_f1ap_SymbolAllocInSlot;
-static gint ett_f1ap_TargetCellList;
-static gint ett_f1ap_TargetCellList_Item;
-static gint ett_f1ap_NSAGSupportList;
-static gint ett_f1ap_NSAGSupportItem;
-static gint ett_f1ap_TDD_Info;
-static gint ett_f1ap_TDD_InfoRel16;
-static gint ett_f1ap_TRPTEGInformation;
-static gint ett_f1ap_RxTxTEG;
-static gint ett_f1ap_RxTEG;
-static gint ett_f1ap_TimeReferenceInformation;
-static gint ett_f1ap_TimeStamp;
-static gint ett_f1ap_TimeStampSlotIndex;
-static gint ett_f1ap_TimingMeasurementQuality;
-static gint ett_f1ap_TNLCapacityIndicator;
-static gint ett_f1ap_TraceActivation;
-static gint ett_f1ap_TrafficMappingInfo;
-static gint ett_f1ap_Transmission_Bandwidth;
-static gint ett_f1ap_TransmissionComb;
-static gint ett_f1ap_T_n2;
-static gint ett_f1ap_T_n4;
-static gint ett_f1ap_TransmissionCombn8;
-static gint ett_f1ap_TransmissionCombPos;
-static gint ett_f1ap_T_n2_01;
-static gint ett_f1ap_T_n4_01;
-static gint ett_f1ap_T_n8;
-static gint ett_f1ap_Transport_UP_Layer_Address_Info_To_Add_List;
-static gint ett_f1ap_Transport_UP_Layer_Address_Info_To_Add_Item;
-static gint ett_f1ap_Transport_UP_Layer_Address_Info_To_Remove_List;
-static gint ett_f1ap_Transport_UP_Layer_Address_Info_To_Remove_Item;
-static gint ett_f1ap_TRPBeamAntennaInformation;
-static gint ett_f1ap_Choice_TRP_Beam_Antenna_Info_Item;
-static gint ett_f1ap_TRP_BeamAntennaExplicitInformation;
-static gint ett_f1ap_TRP_BeamAntennaAngles;
-static gint ett_f1ap_TRP_BeamAntennaAnglesList_Item;
-static gint ett_f1ap_SEQUENCE_SIZE_1_maxnoElevationAngles_OF_TRP_ElevationAngleList_Item;
-static gint ett_f1ap_TRP_ElevationAngleList_Item;
-static gint ett_f1ap_SEQUENCE_SIZE_2_maxNumResourcesPerAngle_OF_TRP_Beam_Power_Item;
-static gint ett_f1ap_TRP_Beam_Power_Item;
-static gint ett_f1ap_TRPInformation;
-static gint ett_f1ap_TRPInformationItem;
-static gint ett_f1ap_TRPInformationTypeResponseList;
-static gint ett_f1ap_TRPInformationTypeResponseItem;
-static gint ett_f1ap_TRPList;
-static gint ett_f1ap_TRPListItem;
-static gint ett_f1ap_TRPMeasurementQuality;
-static gint ett_f1ap_TRPMeasurementQuality_Item;
-static gint ett_f1ap_TRP_MeasurementRequestList;
-static gint ett_f1ap_TRP_MeasurementRequestItem;
-static gint ett_f1ap_TRP_PRS_Info_List;
-static gint ett_f1ap_TRP_PRS_Info_List_Item;
-static gint ett_f1ap_TRPPositionDefinitionType;
-static gint ett_f1ap_TRPPositionDirect;
-static gint ett_f1ap_TRPPositionDirectAccuracy;
-static gint ett_f1ap_TRPPositionReferenced;
-static gint ett_f1ap_TRPReferencePointType;
-static gint ett_f1ap_TRP_Rx_TEGInformation;
-static gint ett_f1ap_TRP_RxTx_TEGInformation;
-static gint ett_f1ap_TRP_Tx_TEGInformation;
-static gint ett_f1ap_TRPTxTEGAssociation;
-static gint ett_f1ap_TRPTEG_Item;
-static gint ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRS_ResourcesPerSet_OF_DLPRSResourceID_Item;
-static gint ett_f1ap_DLPRSResourceID_Item;
-static gint ett_f1ap_Transport_Layer_Address_Info;
-static gint ett_f1ap_TSCAssistanceInformation;
-static gint ett_f1ap_TSCTrafficCharacteristics;
-static gint ett_f1ap_TRP_MeasurementUpdateList;
-static gint ett_f1ap_TRP_MeasurementUpdateItem;
-static gint ett_f1ap_UAC_Assistance_Info;
-static gint ett_f1ap_UACPLMN_List;
-static gint ett_f1ap_UACPLMN_Item;
-static gint ett_f1ap_UACType_List;
-static gint ett_f1ap_UACType_Item;
-static gint ett_f1ap_UACCategoryType;
-static gint ett_f1ap_UACOperatorDefined;
-static gint ett_f1ap_UE_associatedLogicalF1_ConnectionItem;
-static gint ett_f1ap_UEIdentityIndexValue;
-static gint ett_f1ap_UEIdentity_List_For_Paging_Item;
-static gint ett_f1ap_UE_MulticastMRBs_ConfirmedToBeModified_Item;
-static gint ett_f1ap_UE_MulticastMRBs_RequiredToBeModified_Item;
-static gint ett_f1ap_UE_MulticastMRBs_RequiredToBeReleased_Item;
-static gint ett_f1ap_UE_MulticastMRBs_Setup_Item;
-static gint ett_f1ap_UE_MulticastMRBs_Setupnew_Item;
-static gint ett_f1ap_UE_MulticastMRBs_ToBeReleased_Item;
-static gint ett_f1ap_UE_MulticastMRBs_ToBeSetup_Item;
-static gint ett_f1ap_UE_MulticastMRBs_ToBeSetup_atModify_Item;
-static gint ett_f1ap_UEPagingCapability;
-static gint ett_f1ap_UEReportingInformation;
-static gint ett_f1ap_UL_AoA;
-static gint ett_f1ap_UL_BH_Non_UP_Traffic_Mapping;
-static gint ett_f1ap_UL_BH_Non_UP_Traffic_Mapping_List;
-static gint ett_f1ap_UL_BH_Non_UP_Traffic_Mapping_Item;
-static gint ett_f1ap_ULConfiguration;
-static gint ett_f1ap_UL_RTOA_Measurement;
-static gint ett_f1ap_UL_RTOA_MeasurementItem;
-static gint ett_f1ap_UL_SRS_RSRPP;
-static gint ett_f1ap_UL_UP_TNL_Information_to_Update_List_Item;
-static gint ett_f1ap_UL_UP_TNL_Address_to_Update_List_Item;
-static gint ett_f1ap_ULUPTNLInformation_ToBeSetup_List;
-static gint ett_f1ap_ULUPTNLInformation_ToBeSetup_Item;
-static gint ett_f1ap_UplinkChannelBW_PerSCS_List;
-static gint ett_f1ap_UPTransportLayerInformation;
-static gint ett_f1ap_UuRLCChannelQoSInformation;
-static gint ett_f1ap_UuRLCChannelToBeSetupList;
-static gint ett_f1ap_UuRLCChannelToBeSetupItem;
-static gint ett_f1ap_UuRLCChannelToBeModifiedList;
-static gint ett_f1ap_UuRLCChannelToBeModifiedItem;
-static gint ett_f1ap_UuRLCChannelToBeReleasedList;
-static gint ett_f1ap_UuRLCChannelToBeReleasedItem;
-static gint ett_f1ap_UuRLCChannelSetupList;
-static gint ett_f1ap_UuRLCChannelSetupItem;
-static gint ett_f1ap_UuRLCChannelFailedToBeSetupList;
-static gint ett_f1ap_UuRLCChannelFailedToBeSetupItem;
-static gint ett_f1ap_UuRLCChannelModifiedList;
-static gint ett_f1ap_UuRLCChannelModifiedItem;
-static gint ett_f1ap_UuRLCChannelFailedToBeModifiedList;
-static gint ett_f1ap_UuRLCChannelFailedToBeModifiedItem;
-static gint ett_f1ap_UuRLCChannelRequiredToBeModifiedList;
-static gint ett_f1ap_UuRLCChannelRequiredToBeModifiedItem;
-static gint ett_f1ap_UuRLCChannelRequiredToBeReleasedList;
-static gint ett_f1ap_UuRLCChannelRequiredToBeReleasedItem;
-static gint ett_f1ap_VictimgNBSetID;
-static gint ett_f1ap_ZoAInformation;
-static gint ett_f1ap_Reset;
-static gint ett_f1ap_ResetType;
-static gint ett_f1ap_UE_associatedLogicalF1_ConnectionListRes;
-static gint ett_f1ap_ResetAcknowledge;
-static gint ett_f1ap_UE_associatedLogicalF1_ConnectionListResAck;
-static gint ett_f1ap_ErrorIndication;
-static gint ett_f1ap_F1SetupRequest;
-static gint ett_f1ap_GNB_DU_Served_Cells_List;
-static gint ett_f1ap_F1SetupResponse;
-static gint ett_f1ap_Cells_to_be_Activated_List;
-static gint ett_f1ap_F1SetupFailure;
-static gint ett_f1ap_GNBDUConfigurationUpdate;
-static gint ett_f1ap_Served_Cells_To_Add_List;
-static gint ett_f1ap_Served_Cells_To_Modify_List;
-static gint ett_f1ap_Served_Cells_To_Delete_List;
-static gint ett_f1ap_Cells_Status_List;
-static gint ett_f1ap_Dedicated_SIDelivery_NeededUE_List;
-static gint ett_f1ap_GNB_DU_TNL_Association_To_Remove_List;
-static gint ett_f1ap_GNBDUConfigurationUpdateAcknowledge;
-static gint ett_f1ap_GNBDUConfigurationUpdateFailure;
-static gint ett_f1ap_GNBCUConfigurationUpdate;
-static gint ett_f1ap_Cells_to_be_Deactivated_List;
-static gint ett_f1ap_GNB_CU_TNL_Association_To_Add_List;
-static gint ett_f1ap_GNB_CU_TNL_Association_To_Remove_List;
-static gint ett_f1ap_GNB_CU_TNL_Association_To_Update_List;
-static gint ett_f1ap_Cells_to_be_Barred_List;
-static gint ett_f1ap_Protected_EUTRA_Resources_List;
-static gint ett_f1ap_Neighbour_Cell_Information_List;
-static gint ett_f1ap_GNBCUConfigurationUpdateAcknowledge;
-static gint ett_f1ap_Cells_Failed_to_be_Activated_List;
-static gint ett_f1ap_GNB_CU_TNL_Association_Setup_List;
-static gint ett_f1ap_GNB_CU_TNL_Association_Failed_To_Setup_List;
-static gint ett_f1ap_GNBCUConfigurationUpdateFailure;
-static gint ett_f1ap_GNBDUResourceCoordinationRequest;
-static gint ett_f1ap_GNBDUResourceCoordinationResponse;
-static gint ett_f1ap_UEContextSetupRequest;
-static gint ett_f1ap_Candidate_SpCell_List;
-static gint ett_f1ap_SCell_ToBeSetup_List;
-static gint ett_f1ap_SRBs_ToBeSetup_List;
-static gint ett_f1ap_DRBs_ToBeSetup_List;
-static gint ett_f1ap_BHChannels_ToBeSetup_List;
-static gint ett_f1ap_SLDRBs_ToBeSetup_List;
-static gint ett_f1ap_UE_MulticastMRBs_ToBeSetup_List;
-static gint ett_f1ap_ServingCellMO_List;
-static gint ett_f1ap_UEContextSetupResponse;
-static gint ett_f1ap_DRBs_Setup_List;
-static gint ett_f1ap_SRBs_FailedToBeSetup_List;
-static gint ett_f1ap_DRBs_FailedToBeSetup_List;
-static gint ett_f1ap_SCell_FailedtoSetup_List;
-static gint ett_f1ap_SRBs_Setup_List;
-static gint ett_f1ap_BHChannels_Setup_List;
-static gint ett_f1ap_BHChannels_FailedToBeSetup_List;
-static gint ett_f1ap_SLDRBs_Setup_List;
-static gint ett_f1ap_SLDRBs_FailedToBeSetup_List;
-static gint ett_f1ap_UE_MulticastMRBs_Setupnew_List;
-static gint ett_f1ap_UEContextSetupFailure;
-static gint ett_f1ap_Potential_SpCell_List;
-static gint ett_f1ap_UEContextReleaseRequest;
-static gint ett_f1ap_UEContextReleaseCommand;
-static gint ett_f1ap_UEContextReleaseComplete;
-static gint ett_f1ap_UEContextModificationRequest;
-static gint ett_f1ap_SCell_ToBeSetupMod_List;
-static gint ett_f1ap_SCell_ToBeRemoved_List;
-static gint ett_f1ap_SRBs_ToBeSetupMod_List;
-static gint ett_f1ap_DRBs_ToBeSetupMod_List;
-static gint ett_f1ap_BHChannels_ToBeSetupMod_List;
-static gint ett_f1ap_DRBs_ToBeModified_List;
-static gint ett_f1ap_BHChannels_ToBeModified_List;
-static gint ett_f1ap_SRBs_ToBeReleased_List;
-static gint ett_f1ap_DRBs_ToBeReleased_List;
-static gint ett_f1ap_BHChannels_ToBeReleased_List;
-static gint ett_f1ap_UE_MulticastMRBs_ToBeSetup_atModify_List;
-static gint ett_f1ap_UE_MulticastMRBs_ToBeReleased_List;
-static gint ett_f1ap_SLDRBs_ToBeSetupMod_List;
-static gint ett_f1ap_SLDRBs_ToBeModified_List;
-static gint ett_f1ap_SLDRBs_ToBeReleased_List;
-static gint ett_f1ap_UEContextModificationResponse;
-static gint ett_f1ap_DRBs_SetupMod_List;
-static gint ett_f1ap_DRBs_Modified_List;
-static gint ett_f1ap_SRBs_SetupMod_List;
-static gint ett_f1ap_SRBs_Modified_List;
-static gint ett_f1ap_DRBs_FailedToBeModified_List;
-static gint ett_f1ap_SRBs_FailedToBeSetupMod_List;
-static gint ett_f1ap_DRBs_FailedToBeSetupMod_List;
-static gint ett_f1ap_SCell_FailedtoSetupMod_List;
-static gint ett_f1ap_BHChannels_SetupMod_List;
-static gint ett_f1ap_BHChannels_Modified_List;
-static gint ett_f1ap_BHChannels_FailedToBeModified_List;
-static gint ett_f1ap_BHChannels_FailedToBeSetupMod_List;
-static gint ett_f1ap_Associated_SCell_List;
-static gint ett_f1ap_SLDRBs_SetupMod_List;
-static gint ett_f1ap_SLDRBs_Modified_List;
-static gint ett_f1ap_SLDRBs_FailedToBeModified_List;
-static gint ett_f1ap_SLDRBs_FailedToBeSetupMod_List;
-static gint ett_f1ap_UE_MulticastMRBs_Setup_List;
-static gint ett_f1ap_UEContextModificationFailure;
-static gint ett_f1ap_UEContextModificationRequired;
-static gint ett_f1ap_DRBs_Required_ToBeModified_List;
-static gint ett_f1ap_DRBs_Required_ToBeReleased_List;
-static gint ett_f1ap_SRBs_Required_ToBeReleased_List;
-static gint ett_f1ap_BHChannels_Required_ToBeReleased_List;
-static gint ett_f1ap_SLDRBs_Required_ToBeModified_List;
-static gint ett_f1ap_SLDRBs_Required_ToBeReleased_List;
-static gint ett_f1ap_UE_MulticastMRBs_RequiredToBeModified_List;
-static gint ett_f1ap_UE_MulticastMRBs_RequiredToBeReleased_List;
-static gint ett_f1ap_UEContextModificationConfirm;
-static gint ett_f1ap_DRBs_ModifiedConf_List;
-static gint ett_f1ap_SLDRBs_ModifiedConf_List;
-static gint ett_f1ap_UE_MulticastMRBs_ConfirmedToBeModified_List;
-static gint ett_f1ap_UEContextModificationRefuse;
-static gint ett_f1ap_WriteReplaceWarningRequest;
-static gint ett_f1ap_Cells_To_Be_Broadcast_List;
-static gint ett_f1ap_WriteReplaceWarningResponse;
-static gint ett_f1ap_Cells_Broadcast_Completed_List;
-static gint ett_f1ap_PWSCancelRequest;
-static gint ett_f1ap_Broadcast_To_Be_Cancelled_List;
-static gint ett_f1ap_PWSCancelResponse;
-static gint ett_f1ap_Cells_Broadcast_Cancelled_List;
-static gint ett_f1ap_UEInactivityNotification;
-static gint ett_f1ap_DRB_Activity_List;
-static gint ett_f1ap_InitialULRRCMessageTransfer;
-static gint ett_f1ap_DLRRCMessageTransfer;
-static gint ett_f1ap_ULRRCMessageTransfer;
-static gint ett_f1ap_PrivateMessage;
-static gint ett_f1ap_SystemInformationDeliveryCommand;
-static gint ett_f1ap_Paging;
-static gint ett_f1ap_PagingCell_list;
-static gint ett_f1ap_Notify;
-static gint ett_f1ap_DRB_Notify_List;
-static gint ett_f1ap_NetworkAccessRateReduction;
-static gint ett_f1ap_PWSRestartIndication;
-static gint ett_f1ap_NR_CGI_List_For_Restart_List;
-static gint ett_f1ap_PWSFailureIndication;
-static gint ett_f1ap_PWS_Failed_NR_CGI_List;
-static gint ett_f1ap_GNBDUStatusIndication;
-static gint ett_f1ap_RRCDeliveryReport;
-static gint ett_f1ap_F1RemovalRequest;
-static gint ett_f1ap_F1RemovalResponse;
-static gint ett_f1ap_F1RemovalFailure;
-static gint ett_f1ap_TraceStart;
-static gint ett_f1ap_DeactivateTrace;
-static gint ett_f1ap_CellTrafficTrace;
-static gint ett_f1ap_DUCURadioInformationTransfer;
-static gint ett_f1ap_CUDURadioInformationTransfer;
-static gint ett_f1ap_BAPMappingConfiguration;
-static gint ett_f1ap_BH_Routing_Information_Added_List;
-static gint ett_f1ap_BH_Routing_Information_Removed_List;
-static gint ett_f1ap_BAP_Header_Rewriting_Added_List;
-static gint ett_f1ap_BAP_Header_Rewriting_Removed_List;
-static gint ett_f1ap_BAPMappingConfigurationAcknowledge;
-static gint ett_f1ap_BAPMappingConfigurationFailure;
-static gint ett_f1ap_GNBDUResourceConfiguration;
-static gint ett_f1ap_GNBDUResourceConfigurationAcknowledge;
-static gint ett_f1ap_GNBDUResourceConfigurationFailure;
-static gint ett_f1ap_IABTNLAddressRequest;
-static gint ett_f1ap_IAB_TNL_Addresses_To_Remove_List;
-static gint ett_f1ap_IABTNLAddressResponse;
-static gint ett_f1ap_IAB_Allocated_TNL_Address_List;
-static gint ett_f1ap_IABTNLAddressFailure;
-static gint ett_f1ap_IABUPConfigurationUpdateRequest;
-static gint ett_f1ap_UL_UP_TNL_Information_to_Update_List;
-static gint ett_f1ap_UL_UP_TNL_Address_to_Update_List;
-static gint ett_f1ap_IABUPConfigurationUpdateResponse;
-static gint ett_f1ap_DL_UP_TNL_Address_to_Update_List;
-static gint ett_f1ap_IABUPConfigurationUpdateFailure;
-static gint ett_f1ap_ResourceStatusRequest;
-static gint ett_f1ap_ResourceStatusResponse;
-static gint ett_f1ap_ResourceStatusFailure;
-static gint ett_f1ap_ResourceStatusUpdate;
-static gint ett_f1ap_AccessAndMobilityIndication;
-static gint ett_f1ap_ReferenceTimeInformationReportingControl;
-static gint ett_f1ap_ReferenceTimeInformationReport;
-static gint ett_f1ap_AccessSuccess;
-static gint ett_f1ap_PositioningAssistanceInformationControl;
-static gint ett_f1ap_PositioningAssistanceInformationFeedback;
-static gint ett_f1ap_PositioningMeasurementRequest;
-static gint ett_f1ap_PositioningMeasurementResponse;
-static gint ett_f1ap_PositioningMeasurementFailure;
-static gint ett_f1ap_PositioningMeasurementReport;
-static gint ett_f1ap_PositioningMeasurementAbort;
-static gint ett_f1ap_PositioningMeasurementFailureIndication;
-static gint ett_f1ap_PositioningMeasurementUpdate;
-static gint ett_f1ap_TRPInformationRequest;
-static gint ett_f1ap_TRPInformationTypeListTRPReq;
-static gint ett_f1ap_TRPInformationResponse;
-static gint ett_f1ap_TRPInformationListTRPResp;
-static gint ett_f1ap_TRPInformationFailure;
-static gint ett_f1ap_PositioningInformationRequest;
-static gint ett_f1ap_PositioningInformationResponse;
-static gint ett_f1ap_PositioningInformationFailure;
-static gint ett_f1ap_PositioningActivationRequest;
-static gint ett_f1ap_SRSType;
-static gint ett_f1ap_SemipersistentSRS;
-static gint ett_f1ap_AperiodicSRS;
-static gint ett_f1ap_PositioningActivationResponse;
-static gint ett_f1ap_PositioningActivationFailure;
-static gint ett_f1ap_PositioningDeactivation;
-static gint ett_f1ap_PositioningInformationUpdate;
-static gint ett_f1ap_E_CIDMeasurementInitiationRequest;
-static gint ett_f1ap_E_CIDMeasurementInitiationResponse;
-static gint ett_f1ap_E_CIDMeasurementInitiationFailure;
-static gint ett_f1ap_E_CIDMeasurementFailureIndication;
-static gint ett_f1ap_E_CIDMeasurementReport;
-static gint ett_f1ap_E_CIDMeasurementTerminationCommand;
-static gint ett_f1ap_BroadcastContextSetupRequest;
-static gint ett_f1ap_BroadcastMRBs_ToBeSetup_List;
-static gint ett_f1ap_BroadcastContextSetupResponse;
-static gint ett_f1ap_BroadcastMRBs_Setup_List;
-static gint ett_f1ap_BroadcastMRBs_FailedToBeSetup_List;
-static gint ett_f1ap_BroadcastContextSetupFailure;
-static gint ett_f1ap_BroadcastContextReleaseCommand;
-static gint ett_f1ap_BroadcastContextReleaseComplete;
-static gint ett_f1ap_BroadcastContextReleaseRequest;
-static gint ett_f1ap_BroadcastContextModificationRequest;
-static gint ett_f1ap_BroadcastMRBs_ToBeSetupMod_List;
-static gint ett_f1ap_BroadcastMRBs_ToBeModified_List;
-static gint ett_f1ap_BroadcastMRBs_ToBeReleased_List;
-static gint ett_f1ap_BroadcastContextModificationResponse;
-static gint ett_f1ap_BroadcastMRBs_SetupMod_List;
-static gint ett_f1ap_BroadcastMRBs_FailedToBeSetupMod_List;
-static gint ett_f1ap_BroadcastMRBs_Modified_List;
-static gint ett_f1ap_BroadcastMRBs_FailedToBeModified_List;
-static gint ett_f1ap_BroadcastContextModificationFailure;
-static gint ett_f1ap_MulticastGroupPaging;
-static gint ett_f1ap_UEIdentity_List_For_Paging_List;
-static gint ett_f1ap_MC_PagingCell_list;
-static gint ett_f1ap_MulticastContextSetupRequest;
-static gint ett_f1ap_MulticastMRBs_ToBeSetup_List;
-static gint ett_f1ap_MulticastContextSetupResponse;
-static gint ett_f1ap_MulticastMRBs_Setup_List;
-static gint ett_f1ap_MulticastMRBs_FailedToBeSetup_List;
-static gint ett_f1ap_MulticastContextSetupFailure;
-static gint ett_f1ap_MulticastContextReleaseCommand;
-static gint ett_f1ap_MulticastContextReleaseComplete;
-static gint ett_f1ap_MulticastContextReleaseRequest;
-static gint ett_f1ap_MulticastContextModificationRequest;
-static gint ett_f1ap_MulticastMRBs_ToBeSetupMod_List;
-static gint ett_f1ap_MulticastMRBs_ToBeModified_List;
-static gint ett_f1ap_MulticastMRBs_ToBeReleased_List;
-static gint ett_f1ap_MulticastContextModificationResponse;
-static gint ett_f1ap_MulticastMRBs_SetupMod_List;
-static gint ett_f1ap_MulticastMRBs_FailedToBeSetupMod_List;
-static gint ett_f1ap_MulticastMRBs_Modified_List;
-static gint ett_f1ap_MulticastMRBs_FailedToBeModified_List;
-static gint ett_f1ap_MulticastContextModificationFailure;
-static gint ett_f1ap_MulticastDistributionSetupRequest;
-static gint ett_f1ap_MulticastF1UContext_ToBeSetup_List;
-static gint ett_f1ap_MulticastDistributionSetupResponse;
-static gint ett_f1ap_MulticastF1UContext_Setup_List;
-static gint ett_f1ap_MulticastF1UContext_FailedToBeSetup_List;
-static gint ett_f1ap_MulticastDistributionSetupFailure;
-static gint ett_f1ap_MulticastDistributionReleaseCommand;
-static gint ett_f1ap_MulticastDistributionReleaseComplete;
-static gint ett_f1ap_PDCMeasurementInitiationRequest;
-static gint ett_f1ap_PDCMeasurementInitiationResponse;
-static gint ett_f1ap_PDCMeasurementInitiationFailure;
-static gint ett_f1ap_PDCMeasurementReport;
-static gint ett_f1ap_PDCMeasurementTerminationCommand;
-static gint ett_f1ap_PDCMeasurementFailureIndication;
-static gint ett_f1ap_PRSConfigurationRequest;
-static gint ett_f1ap_PRSConfigurationResponse;
-static gint ett_f1ap_PRSConfigurationFailure;
-static gint ett_f1ap_MeasurementPreconfigurationRequired;
-static gint ett_f1ap_MeasurementPreconfigurationConfirm;
-static gint ett_f1ap_MeasurementPreconfigurationRefuse;
-static gint ett_f1ap_MeasurementActivation;
-static gint ett_f1ap_QoEInformationTransfer;
-static gint ett_f1ap_PosSystemInformationDeliveryCommand;
-static gint ett_f1ap_F1AP_PDU;
-static gint ett_f1ap_InitiatingMessage;
-static gint ett_f1ap_SuccessfulOutcome;
-static gint ett_f1ap_UnsuccessfulOutcome;
+static int ett_f1ap_PrivateIE_ID;
+static int ett_f1ap_ProtocolIE_Container;
+static int ett_f1ap_ProtocolIE_Field;
+static int ett_f1ap_ProtocolExtensionContainer;
+static int ett_f1ap_ProtocolExtensionField;
+static int ett_f1ap_PrivateIE_Container;
+static int ett_f1ap_PrivateIE_Field;
+static int ett_f1ap_AbortTransmission;
+static int ett_f1ap_AccessPointPosition;
+static int ett_f1ap_Activated_Cells_to_be_Updated_List;
+static int ett_f1ap_Activated_Cells_to_be_Updated_List_Item;
+static int ett_f1ap_ActiveULBWP;
+static int ett_f1ap_AdditionalPath_List;
+static int ett_f1ap_AdditionalPath_Item;
+static int ett_f1ap_ExtendedAdditionalPathList;
+static int ett_f1ap_ExtendedAdditionalPathList_Item;
+static int ett_f1ap_AdditionalPDCPDuplicationTNL_List;
+static int ett_f1ap_AdditionalPDCPDuplicationTNL_Item;
+static int ett_f1ap_AdditionalSIBMessageList;
+static int ett_f1ap_AdditionalSIBMessageList_Item;
+static int ett_f1ap_AffectedCellsAndBeams_List;
+static int ett_f1ap_AffectedCellsAndBeams_Item;
+static int ett_f1ap_AffectedSSB_List;
+static int ett_f1ap_AffectedSSB_Item;
+static int ett_f1ap_AggressorCellList;
+static int ett_f1ap_AggressorCellList_Item;
+static int ett_f1ap_AggressorgNBSetID;
+static int ett_f1ap_AllocationAndRetentionPriority;
+static int ett_f1ap_AlternativeQoSParaSetList;
+static int ett_f1ap_AlternativeQoSParaSetItem;
+static int ett_f1ap_AngleMeasurementQuality;
+static int ett_f1ap_AperiodicSRSResourceTriggerList;
+static int ett_f1ap_Associated_SCell_Item;
+static int ett_f1ap_AvailablePLMNList;
+static int ett_f1ap_AvailablePLMNList_Item;
+static int ett_f1ap_AvailableSNPN_ID_List;
+static int ett_f1ap_AvailableSNPN_ID_List_Item;
+static int ett_f1ap_AoA_AssistanceInfo;
+static int ett_f1ap_AngleMeasurementType;
+static int ett_f1ap_ARPLocationInformation;
+static int ett_f1ap_ARPLocationInformation_Item;
+static int ett_f1ap_ARPLocationType;
+static int ett_f1ap_BAP_Header_Rewriting_Added_List_Item;
+static int ett_f1ap_BAP_Header_Rewriting_Removed_List_Item;
+static int ett_f1ap_BandwidthSRS;
+static int ett_f1ap_BAPlayerBHRLCchannelMappingInfo;
+static int ett_f1ap_BAPlayerBHRLCchannelMappingInfoList;
+static int ett_f1ap_BAPlayerBHRLCchannelMappingInfo_Item;
+static int ett_f1ap_BAPRoutingID;
+static int ett_f1ap_BCBearerContextF1U_TNLInfo;
+static int ett_f1ap_BHChannels_FailedToBeModified_Item;
+static int ett_f1ap_BHChannels_FailedToBeSetup_Item;
+static int ett_f1ap_BHChannels_FailedToBeSetupMod_Item;
+static int ett_f1ap_BHChannels_Modified_Item;
+static int ett_f1ap_BHChannels_Required_ToBeReleased_Item;
+static int ett_f1ap_BHChannels_Setup_Item;
+static int ett_f1ap_BHChannels_SetupMod_Item;
+static int ett_f1ap_BHChannels_ToBeModified_Item;
+static int ett_f1ap_BHChannels_ToBeReleased_Item;
+static int ett_f1ap_BHChannels_ToBeSetup_Item;
+static int ett_f1ap_BHChannels_ToBeSetupMod_Item;
+static int ett_f1ap_BHInfo;
+static int ett_f1ap_BHQoSInformation;
+static int ett_f1ap_BHRLCCHList;
+static int ett_f1ap_BHRLCCHItem;
+static int ett_f1ap_BH_Routing_Information_Added_List_Item;
+static int ett_f1ap_BH_Routing_Information_Removed_List_Item;
+static int ett_f1ap_BPLMN_ID_Info_List;
+static int ett_f1ap_BPLMN_ID_Info_Item;
+static int ett_f1ap_ServedPLMNs_List;
+static int ett_f1ap_ServedPLMNs_Item;
+static int ett_f1ap_BroadcastCAGList;
+static int ett_f1ap_BroadcastMRBs_FailedToBeModified_Item;
+static int ett_f1ap_BroadcastMRBs_FailedToBeSetup_Item;
+static int ett_f1ap_BroadcastMRBs_FailedToBeSetupMod_Item;
+static int ett_f1ap_BroadcastMRBs_Modified_Item;
+static int ett_f1ap_BroadcastMRBs_Setup_Item;
+static int ett_f1ap_BroadcastMRBs_SetupMod_Item;
+static int ett_f1ap_BroadcastMRBs_ToBeModified_Item;
+static int ett_f1ap_BroadcastMRBs_ToBeReleased_Item;
+static int ett_f1ap_BroadcastMRBs_ToBeSetup_Item;
+static int ett_f1ap_BroadcastMRBs_ToBeSetupMod_Item;
+static int ett_f1ap_BroadcastNIDList;
+static int ett_f1ap_BroadcastSNPN_ID_List;
+static int ett_f1ap_BroadcastSNPN_ID_List_Item;
+static int ett_f1ap_BroadcastPNI_NPN_ID_List;
+static int ett_f1ap_BroadcastPNI_NPN_ID_List_Item;
+static int ett_f1ap_BroadcastAreaScope;
+static int ett_f1ap_BroadcastCellList;
+static int ett_f1ap_Broadcast_Cell_List_Item;
+static int ett_f1ap_Candidate_SpCell_Item;
+static int ett_f1ap_CapacityValue;
+static int ett_f1ap_Cause;
+static int ett_f1ap_CellMeasurementResultList;
+static int ett_f1ap_CellMeasurementResultItem;
+static int ett_f1ap_CellsForSON_List;
+static int ett_f1ap_CellsForSON_Item;
+static int ett_f1ap_Cells_Failed_to_be_Activated_List_Item;
+static int ett_f1ap_Cells_Status_Item;
+static int ett_f1ap_Cells_To_Be_Broadcast_Item;
+static int ett_f1ap_Cells_Broadcast_Completed_Item;
+static int ett_f1ap_Broadcast_To_Be_Cancelled_Item;
+static int ett_f1ap_Cells_Broadcast_Cancelled_Item;
+static int ett_f1ap_Cells_to_be_Activated_List_Item;
+static int ett_f1ap_Cells_to_be_Deactivated_List_Item;
+static int ett_f1ap_Cells_to_be_Barred_Item;
+static int ett_f1ap_CellToReportList;
+static int ett_f1ap_CellToReportItem;
+static int ett_f1ap_CellType;
+static int ett_f1ap_CG_SDTSessionInfo;
+static int ett_f1ap_Child_IAB_Nodes_NA_Resource_List;
+static int ett_f1ap_Child_IAB_Nodes_NA_Resource_List_Item;
+static int ett_f1ap_Child_Node_Cells_List;
+static int ett_f1ap_Child_Node_Cells_List_Item;
+static int ett_f1ap_Child_Nodes_List;
+static int ett_f1ap_Child_Nodes_List_Item;
+static int ett_f1ap_CNUEPagingIdentity;
+static int ett_f1ap_CompositeAvailableCapacityGroup;
+static int ett_f1ap_CompositeAvailableCapacity;
+static int ett_f1ap_ConditionalInterDUMobilityInformation;
+static int ett_f1ap_ConditionalIntraDUMobilityInformation;
+static int ett_f1ap_Configured_BWP_List;
+static int ett_f1ap_Configured_BWP_Item;
+static int ett_f1ap_Coverage_Modification_Notification;
+static int ett_f1ap_Coverage_Modification_List;
+static int ett_f1ap_Coverage_Modification_Item;
+static int ett_f1ap_CCO_Assistance_Information;
+static int ett_f1ap_CP_TransportLayerAddress;
+static int ett_f1ap_CPACMCGInformation;
+static int ett_f1ap_CriticalityDiagnostics;
+static int ett_f1ap_CriticalityDiagnostics_IE_List;
+static int ett_f1ap_CriticalityDiagnostics_IE_Item;
+static int ett_f1ap_CUDURadioInformationType;
+static int ett_f1ap_CUDURIMInformation;
+static int ett_f1ap_CUtoDURRCInformation;
+static int ett_f1ap_Dedicated_SIDelivery_NeededUE_Item;
+static int ett_f1ap_DL_PRS;
+static int ett_f1ap_DL_PRSMutingPattern;
+static int ett_f1ap_DLPRSResourceCoordinates;
+static int ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRS_ResourceSets_OF_DLPRSResourceSetARP;
+static int ett_f1ap_DLPRSResourceSetARP;
+static int ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRS_ResourcesPerSet_OF_DLPRSResourceARP;
+static int ett_f1ap_DL_PRSResourceSetARPLocation;
+static int ett_f1ap_DLPRSResourceARP;
+static int ett_f1ap_DL_PRSResourceARPLocation;
+static int ett_f1ap_DL_UP_TNL_Address_to_Update_List_Item;
+static int ett_f1ap_DLUPTNLInformation_ToBeSetup_List;
+static int ett_f1ap_DLUPTNLInformation_ToBeSetup_Item;
+static int ett_f1ap_DRB_Activity_Item;
+static int ett_f1ap_DRBs_FailedToBeModified_Item;
+static int ett_f1ap_DRBs_FailedToBeSetup_Item;
+static int ett_f1ap_DRBs_FailedToBeSetupMod_Item;
+static int ett_f1ap_DRB_Information;
+static int ett_f1ap_DRBs_Modified_Item;
+static int ett_f1ap_DRBs_ModifiedConf_Item;
+static int ett_f1ap_DRB_Notify_Item;
+static int ett_f1ap_DRBs_Required_ToBeModified_Item;
+static int ett_f1ap_DRBs_Required_ToBeReleased_Item;
+static int ett_f1ap_DRBs_Setup_Item;
+static int ett_f1ap_DRBs_SetupMod_Item;
+static int ett_f1ap_DRBs_ToBeModified_Item;
+static int ett_f1ap_DRBs_ToBeReleased_Item;
+static int ett_f1ap_DRBs_ToBeSetup_Item;
+static int ett_f1ap_DRBs_ToBeSetupMod_Item;
+static int ett_f1ap_DRXCycle;
+static int ett_f1ap_DSInformationList;
+static int ett_f1ap_DUCURadioInformationType;
+static int ett_f1ap_DUCURIMInformation;
+static int ett_f1ap_DUF_Slot_Config_Item;
+static int ett_f1ap_DUF_Slot_Config_List;
+static int ett_f1ap_DUtoCURRCInformation;
+static int ett_f1ap_Dynamic5QIDescriptor;
+static int ett_f1ap_DynamicPQIDescriptor;
+static int ett_f1ap_E_CID_MeasurementQuantities;
+static int ett_f1ap_E_CID_MeasurementQuantities_Item;
+static int ett_f1ap_E_CID_MeasurementResult;
+static int ett_f1ap_E_CID_MeasuredResults_List;
+static int ett_f1ap_E_CID_MeasuredResults_Item;
+static int ett_f1ap_E_CID_MeasuredResults_Value;
+static int ett_f1ap_EgressBHRLCCHList;
+static int ett_f1ap_EgressBHRLCCHItem;
+static int ett_f1ap_Endpoint_IP_address_and_port;
+static int ett_f1ap_ExtendedAvailablePLMN_List;
+static int ett_f1ap_ExtendedAvailablePLMN_Item;
+static int ett_f1ap_ExplicitFormat;
+static int ett_f1ap_ExtendedServedPLMNs_List;
+static int ett_f1ap_ExtendedServedPLMNs_Item;
+static int ett_f1ap_ExtendedSliceSupportList;
+static int ett_f1ap_EUTRACells_List;
+static int ett_f1ap_EUTRACells_List_item;
+static int ett_f1ap_EUTRA_Coex_FDD_Info;
+static int ett_f1ap_EUTRA_Coex_Mode_Info;
+static int ett_f1ap_EUTRA_Coex_TDD_Info;
+static int ett_f1ap_EUTRA_PRACH_Configuration;
+static int ett_f1ap_EUTRA_SpecialSubframe_Info;
+static int ett_f1ap_EUTRANQoS;
+static int ett_f1ap_EUTRA_Mode_Info;
+static int ett_f1ap_EUTRA_FDD_Info;
+static int ett_f1ap_EUTRA_TDD_Info;
+static int ett_f1ap_Expected_UL_AoA;
+static int ett_f1ap_Expected_ZoA_only;
+static int ett_f1ap_Expected_Azimuth_AoA;
+static int ett_f1ap_Expected_Zenith_AoA;
+static int ett_f1ap_F1CTransferPath;
+static int ett_f1ap_F1CTransferPathNRDC;
+static int ett_f1ap_FDD_Info;
+static int ett_f1ap_FDD_InfoRel16;
+static int ett_f1ap_FiveG_ProSeAuthorized;
+static int ett_f1ap_Flows_Mapped_To_DRB_List;
+static int ett_f1ap_Flows_Mapped_To_DRB_Item;
+static int ett_f1ap_FreqBandNrItem;
+static int ett_f1ap_SEQUENCE_SIZE_0_maxnoofNrCellBands_OF_SupportedSULFreqBandItem;
+static int ett_f1ap_FreqDomainLength;
+static int ett_f1ap_FreqInfoRel16;
+static int ett_f1ap_Frequency_Domain_HSNA_Configuration_List;
+static int ett_f1ap_Frequency_Domain_HSNA_Configuration_Item;
+static int ett_f1ap_Frequency_Domain_HSNA_Slot_Configuration_List;
+static int ett_f1ap_Frequency_Domain_HSNA_Slot_Configuration_Item;
+static int ett_f1ap_FlowsMappedToSLDRB_List;
+static int ett_f1ap_FlowsMappedToSLDRB_Item;
+static int ett_f1ap_GBR_QosInformation;
+static int ett_f1ap_GBR_QoSFlowInformation;
+static int ett_f1ap_GeographicalCoordinates;
+static int ett_f1ap_GNB_CUSystemInformation;
+static int ett_f1ap_SEQUENCE_SIZE_1_maxnoofSIBTypes_OF_SibtypetobeupdatedListItem;
+static int ett_f1ap_GNB_CU_TNL_Association_Setup_Item;
+static int ett_f1ap_GNB_CU_TNL_Association_Failed_To_Setup_Item;
+static int ett_f1ap_GNB_CU_TNL_Association_To_Add_Item;
+static int ett_f1ap_GNB_CU_TNL_Association_To_Remove_Item;
+static int ett_f1ap_GNB_CU_TNL_Association_To_Update_Item;
+static int ett_f1ap_GNB_DU_Cell_Resource_Configuration;
+static int ett_f1ap_Extended_GNB_CU_Name;
+static int ett_f1ap_Extended_GNB_DU_Name;
+static int ett_f1ap_GNB_DU_Served_Cells_Item;
+static int ett_f1ap_GNB_DU_System_Information;
+static int ett_f1ap_GNB_DU_TNL_Association_To_Remove_Item;
+static int ett_f1ap_GNBDUUESliceMaximumBitRateList;
+static int ett_f1ap_GNBDUUESliceMaximumBitRateItem;
+static int ett_f1ap_GNB_RxTxTimeDiff;
+static int ett_f1ap_GNBRxTxTimeDiffMeas;
+static int ett_f1ap_GTPTLAs;
+static int ett_f1ap_GTPTLA_Item;
+static int ett_f1ap_GTPTunnel;
+static int ett_f1ap_HardwareLoadIndicator;
+static int ett_f1ap_HSNASlotConfigList;
+static int ett_f1ap_HSNASlotConfigItem;
+static int ett_f1ap_IABCongestionIndication;
+static int ett_f1ap_IAB_Congestion_Indication_List;
+static int ett_f1ap_IAB_Congestion_Indication_Item;
+static int ett_f1ap_IAB_Info_IAB_donor_CU;
+static int ett_f1ap_IAB_Info_IAB_DU;
+static int ett_f1ap_IAB_MT_Cell_List;
+static int ett_f1ap_IAB_MT_Cell_List_Item;
+static int ett_f1ap_IAB_MT_Cell_NA_Resource_Configuration_Mode_Info;
+static int ett_f1ap_IAB_MT_Cell_NA_Resource_Configuration_FDD_Info;
+static int ett_f1ap_IAB_MT_Cell_NA_Resource_Configuration_TDD_Info;
+static int ett_f1ap_IAB_STC_Info;
+static int ett_f1ap_IAB_STC_Info_List;
+static int ett_f1ap_IAB_STC_Info_Item;
+static int ett_f1ap_IAB_Allocated_TNL_Address_Item;
+static int ett_f1ap_IAB_DU_Cell_Resource_Configuration_Mode_Info;
+static int ett_f1ap_IAB_DU_Cell_Resource_Configuration_FDD_Info;
+static int ett_f1ap_IAB_DU_Cell_Resource_Configuration_TDD_Info;
+static int ett_f1ap_IABIPv6RequestType;
+static int ett_f1ap_IABTNLAddress;
+static int ett_f1ap_IABTNLAddressesRequested;
+static int ett_f1ap_IAB_TNL_Addresses_To_Remove_Item;
+static int ett_f1ap_IAB_TNL_Addresses_Exception;
+static int ett_f1ap_IABTNLAddressList;
+static int ett_f1ap_IABTNLAddress_Item;
+static int ett_f1ap_IABv4AddressesRequested;
+static int ett_f1ap_ImplicitFormat;
+static int ett_f1ap_IntendedTDD_DL_ULConfig;
+static int ett_f1ap_IPHeaderInformation;
+static int ett_f1ap_IPtolayer2TrafficMappingInfo;
+static int ett_f1ap_IPtolayer2TrafficMappingInfoList;
+static int ett_f1ap_IPtolayer2TrafficMappingInfo_Item;
+static int ett_f1ap_L139Info;
+static int ett_f1ap_L839Info;
+static int ett_f1ap_L571Info;
+static int ett_f1ap_L1151Info;
+static int ett_f1ap_LCS_to_GCS_Translation;
+static int ett_f1ap_LCStoGCSTranslationList;
+static int ett_f1ap_LCStoGCSTranslation;
+static int ett_f1ap_LocationDependentMBSF1UInformation;
+static int ett_f1ap_LocationDependentMBSF1UInformation_Item;
+static int ett_f1ap_LocationUncertainty;
+static int ett_f1ap_LoS_NLoSInformation;
+static int ett_f1ap_LTEUESidelinkAggregateMaximumBitrate;
+static int ett_f1ap_LTEV2XServicesAuthorized;
+static int ett_f1ap_MappingInformationtoRemove;
+static int ett_f1ap_MBS_Flows_Mapped_To_MRB_List;
+static int ett_f1ap_MBS_Flows_Mapped_To_MRB_Item;
+static int ett_f1ap_MBSF1UInformation;
+static int ett_f1ap_MBS_Session_ID;
+static int ett_f1ap_MBS_CUtoDURRCInformation;
+static int ett_f1ap_MBS_Broadcast_Cell_List;
+static int ett_f1ap_MBS_Broadcast_Cell_Item;
+static int ett_f1ap_MBS_Broadcast_MRB_List;
+static int ett_f1ap_MBS_Broadcast_MRB_Item;
+static int ett_f1ap_MBSMulticastF1UContextDescriptor;
+static int ett_f1ap_MulticastF1UContext_ToBeSetup_Item;
+static int ett_f1ap_MulticastF1UContext_Setup_Item;
+static int ett_f1ap_MulticastF1UContext_FailedToBeSetup_Item;
+static int ett_f1ap_MBS_ServiceArea;
+static int ett_f1ap_MBS_ServiceAreaInformation;
+static int ett_f1ap_MBS_ServiceAreaCellList;
+static int ett_f1ap_MBS_ServiceAreaTAIList;
+static int ett_f1ap_MBS_ServiceAreaTAIList_Item;
+static int ett_f1ap_MBS_ServiceAreaInformationList;
+static int ett_f1ap_MBS_ServiceAreaInformationItem;
+static int ett_f1ap_MC_PagingCell_Item;
+static int ett_f1ap_MeasurementBeamInfo;
+static int ett_f1ap_MRB_ProgressInformation;
+static int ett_f1ap_MultipleULAoA;
+static int ett_f1ap_MultipleULAoA_List;
+static int ett_f1ap_MultipleULAoA_Item;
+static int ett_f1ap_MulticastMBSSessionList;
+static int ett_f1ap_MulticastMBSSessionList_Item;
+static int ett_f1ap_MulticastMRBs_FailedToBeModified_Item;
+static int ett_f1ap_MulticastMRBs_FailedToBeSetup_Item;
+static int ett_f1ap_MulticastMRBs_FailedToBeSetupMod_Item;
+static int ett_f1ap_MulticastMRBs_Modified_Item;
+static int ett_f1ap_MulticastMRBs_Setup_Item;
+static int ett_f1ap_MulticastMRBs_SetupMod_Item;
+static int ett_f1ap_MulticastMRBs_ToBeModified_Item;
+static int ett_f1ap_MulticastMRBs_ToBeReleased_Item;
+static int ett_f1ap_MulticastMRBs_ToBeSetup_Item;
+static int ett_f1ap_MulticastMRBs_ToBeSetupMod_Item;
+static int ett_f1ap_MultiplexingInfo;
+static int ett_f1ap_M5Configuration;
+static int ett_f1ap_M6Configuration;
+static int ett_f1ap_M7Configuration;
+static int ett_f1ap_MDTConfiguration;
+static int ett_f1ap_MDTPLMNList;
+static int ett_f1ap_MDTPLMNModificationList;
+static int ett_f1ap_MeasuredResultsValue;
+static int ett_f1ap_NA_Resource_Configuration_List;
+static int ett_f1ap_NA_Resource_Configuration_Item;
+static int ett_f1ap_Neighbour_Node_Cells_List;
+static int ett_f1ap_Neighbour_Node_Cells_List_Item;
+static int ett_f1ap_Neighbour_Cell_Information_Item;
+static int ett_f1ap_NeighbourNR_CellsForSON_List;
+static int ett_f1ap_NeighbourNR_CellsForSON_Item;
+static int ett_f1ap_NGRANAllocationAndRetentionPriority;
+static int ett_f1ap_NGRANHighAccuracyAccessPointPosition;
+static int ett_f1ap_NR_CGI_List_For_Restart_Item;
+static int ett_f1ap_NR_PRSBeamInformation;
+static int ett_f1ap_NR_PRSBeamInformationList;
+static int ett_f1ap_NR_PRSBeamInformationItem;
+static int ett_f1ap_NRPagingeDRXInformation;
+static int ett_f1ap_NRPagingeDRXInformationforRRCINACTIVE;
+static int ett_f1ap_NonDynamic5QIDescriptor;
+static int ett_f1ap_NonDynamicPQIDescriptor;
+static int ett_f1ap_NotificationInformation;
+static int ett_f1ap_NPNBroadcastInformation;
+static int ett_f1ap_NPN_Broadcast_Information_SNPN;
+static int ett_f1ap_NPN_Broadcast_Information_PNI_NPN;
+static int ett_f1ap_NPNSupportInfo;
+static int ett_f1ap_NRCarrierList;
+static int ett_f1ap_NRCarrierItem;
+static int ett_f1ap_NRFreqInfo;
+static int ett_f1ap_SEQUENCE_SIZE_1_maxnoofNrCellBands_OF_FreqBandNrItem;
+static int ett_f1ap_NRCGI;
+static int ett_f1ap_NR_Mode_Info;
+static int ett_f1ap_NR_ModeInfoRel16;
+static int ett_f1ap_NRPRACHConfig;
+static int ett_f1ap_NRPRACHConfigList;
+static int ett_f1ap_NRPRACHConfigItem;
+static int ett_f1ap_NR_U_Channel_Info_List;
+static int ett_f1ap_NR_U_Channel_Info_Item;
+static int ett_f1ap_NR_U_Channel_List;
+static int ett_f1ap_NR_U_Channel_Item;
+static int ett_f1ap_NumDLULSymbols;
+static int ett_f1ap_NRV2XServicesAuthorized;
+static int ett_f1ap_NRUESidelinkAggregateMaximumBitrate;
+static int ett_f1ap_OnDemandPRS_Info;
+static int ett_f1ap_PacketErrorRate;
+static int ett_f1ap_PagingCell_Item;
+static int ett_f1ap_PagingIdentity;
+static int ett_f1ap_PEIPSAssistanceInfo;
+static int ett_f1ap_RelativePathDelay;
+static int ett_f1ap_Parent_IAB_Nodes_NA_Resource_Configuration_List;
+static int ett_f1ap_Parent_IAB_Nodes_NA_Resource_Configuration_Item;
+static int ett_f1ap_PartialSuccessCell;
+static int ett_f1ap_PathlossReferenceInfo;
+static int ett_f1ap_PathlossReferenceSignal;
+static int ett_f1ap_PathSwitchConfiguration;
+static int ett_f1ap_PC5_QoS_Characteristics;
+static int ett_f1ap_PC5QoSParameters;
+static int ett_f1ap_PC5FlowBitRates;
+static int ett_f1ap_PC5RLCChannelQoSInformation;
+static int ett_f1ap_PC5RLCChannelToBeSetupList;
+static int ett_f1ap_PC5RLCChannelToBeSetupItem;
+static int ett_f1ap_PC5RLCChannelToBeModifiedList;
+static int ett_f1ap_PC5RLCChannelToBeModifiedItem;
+static int ett_f1ap_PC5RLCChannelToBeReleasedList;
+static int ett_f1ap_PC5RLCChannelToBeReleasedItem;
+static int ett_f1ap_PC5RLCChannelSetupList;
+static int ett_f1ap_PC5RLCChannelSetupItem;
+static int ett_f1ap_PC5RLCChannelFailedToBeSetupList;
+static int ett_f1ap_PC5RLCChannelFailedToBeSetupItem;
+static int ett_f1ap_PC5RLCChannelModifiedList;
+static int ett_f1ap_PC5RLCChannelModifiedItem;
+static int ett_f1ap_PC5RLCChannelFailedToBeModifiedList;
+static int ett_f1ap_PC5RLCChannelFailedToBeModifiedItem;
+static int ett_f1ap_PC5RLCChannelRequiredToBeModifiedList;
+static int ett_f1ap_PC5RLCChannelRequiredToBeModifiedItem;
+static int ett_f1ap_PC5RLCChannelRequiredToBeReleasedList;
+static int ett_f1ap_PC5RLCChannelRequiredToBeReleasedItem;
+static int ett_f1ap_PDCMeasurementQuantities;
+static int ett_f1ap_PDCMeasurementQuantities_Item;
+static int ett_f1ap_PDCMeasurementResult;
+static int ett_f1ap_PDCMeasuredResultsList;
+static int ett_f1ap_PDCMeasuredResults_Item;
+static int ett_f1ap_PDCMeasuredResults_Value;
+static int ett_f1ap_PeriodicityList;
+static int ett_f1ap_PeriodicityList_Item;
+static int ett_f1ap_PositioningBroadcastCells;
+static int ett_f1ap_PosMeasGapPreConfigList;
+static int ett_f1ap_PosMeasurementQuantities;
+static int ett_f1ap_PosMeasurementQuantities_Item;
+static int ett_f1ap_PosMeasurementResult;
+static int ett_f1ap_PosMeasurementResultItem;
+static int ett_f1ap_PosMeasurementResultList;
+static int ett_f1ap_PosMeasurementResultList_Item;
+static int ett_f1ap_PosResourceSetType;
+static int ett_f1ap_PosResourceSetTypePR;
+static int ett_f1ap_PosResourceSetTypeSP;
+static int ett_f1ap_PosResourceSetTypeAP;
+static int ett_f1ap_PosSItypeList;
+static int ett_f1ap_PosSItype_Item;
+static int ett_f1ap_PosSRSResourceID_List;
+static int ett_f1ap_PosSRSResource_Item;
+static int ett_f1ap_PosSRSResource_List;
+static int ett_f1ap_PosSRSResourceSet_Item;
+static int ett_f1ap_PosSRSResourceSet_List;
+static int ett_f1ap_Protected_EUTRA_Resources_Item;
+static int ett_f1ap_PRSConfiguration;
+static int ett_f1ap_PRSInformationPos;
+static int ett_f1ap_PRS_Measurement_Info_List;
+static int ett_f1ap_PRS_Measurement_Info_List_Item;
+static int ett_f1ap_Potential_SpCell_Item;
+static int ett_f1ap_PRSAngleList;
+static int ett_f1ap_PRSAngleItem;
+static int ett_f1ap_PRSMuting;
+static int ett_f1ap_PRSMutingOption1;
+static int ett_f1ap_PRSMutingOption2;
+static int ett_f1ap_PRSResource_List;
+static int ett_f1ap_PRSResource_Item;
+static int ett_f1ap_PRSResource_QCLInfo;
+static int ett_f1ap_PRSResource_QCLSourceSSB;
+static int ett_f1ap_PRSResource_QCLSourcePRS;
+static int ett_f1ap_PRSResourceSet_List;
+static int ett_f1ap_PRSResourceSet_Item;
+static int ett_f1ap_PRSTransmissionOffIndication;
+static int ett_f1ap_PRSTransmissionOffPerResource;
+static int ett_f1ap_PRSTransmissionOffPerResource_Item;
+static int ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRSresources_OF_PRSTransmissionOffIndicationPerResource_Item;
+static int ett_f1ap_PRSTransmissionOffIndicationPerResource_Item;
+static int ett_f1ap_PRSTransmissionOffInformation;
+static int ett_f1ap_PRSTransmissionOffPerResourceSet;
+static int ett_f1ap_PRSTransmissionOffPerResourceSet_Item;
+static int ett_f1ap_PWS_Failed_NR_CGI_Item;
+static int ett_f1ap_PWSSystemInformation;
+static int ett_f1ap_PRSTRPList;
+static int ett_f1ap_PRSTRPItem;
+static int ett_f1ap_RequestedDLPRSTransmissionCharacteristics;
+static int ett_f1ap_RequestedDLPRSResourceSet_List;
+static int ett_f1ap_RequestedDLPRSResourceSet_Item;
+static int ett_f1ap_RequestedDLPRSResource_List;
+static int ett_f1ap_RequestedDLPRSResource_Item;
+static int ett_f1ap_PRSTransmissionTRPList;
+static int ett_f1ap_PRSTransmissionTRPItem;
+static int ett_f1ap_QoEInformation;
+static int ett_f1ap_QoEInformationList;
+static int ett_f1ap_QoEInformationList_Item;
+static int ett_f1ap_QoEMetrics;
+static int ett_f1ap_QoS_Characteristics;
+static int ett_f1ap_QoSFlowLevelQoSParameters;
+static int ett_f1ap_QoSInformation;
+static int ett_f1ap_RACHReportInformationList;
+static int ett_f1ap_RACHReportInformationItem;
+static int ett_f1ap_RadioResourceStatus;
+static int ett_f1ap_MIMOPRBusageInformation;
+static int ett_f1ap_RANUEPagingIdentity;
+static int ett_f1ap_RAT_FrequencyPriorityInformation;
+static int ett_f1ap_RBSetConfiguration;
+static int ett_f1ap_ReferencePoint;
+static int ett_f1ap_ReferenceSignal;
+static int ett_f1ap_RelativeCartesianLocation;
+static int ett_f1ap_RelativeGeodeticLocation;
+static int ett_f1ap_RequestedSRSTransmissionCharacteristics;
+static int ett_f1ap_ResourceCoordinationEUTRACellInfo;
+static int ett_f1ap_ResourceCoordinationTransferInformation;
+static int ett_f1ap_ResourceSetType;
+static int ett_f1ap_ResourceSetTypePeriodic;
+static int ett_f1ap_ResourceSetTypeSemi_persistent;
+static int ett_f1ap_ResourceSetTypeAperiodic;
+static int ett_f1ap_ReportingRequestType;
+static int ett_f1ap_ResourceType;
+static int ett_f1ap_ResourceTypePeriodic;
+static int ett_f1ap_ResourceTypeSemi_persistent;
+static int ett_f1ap_ResourceTypeAperiodic;
+static int ett_f1ap_ResourceTypePos;
+static int ett_f1ap_ResourceTypePeriodicPos;
+static int ett_f1ap_ResourceTypeSemi_persistentPos;
+static int ett_f1ap_ResourceTypeAperiodicPos;
+static int ett_f1ap_RLCDuplicationInformation;
+static int ett_f1ap_RLCDuplicationStateList;
+static int ett_f1ap_RLCDuplicationState_Item;
+static int ett_f1ap_RLCFailureIndication;
+static int ett_f1ap_RLC_Status;
+static int ett_f1ap_RLFReportInformationList;
+static int ett_f1ap_RLFReportInformationItem;
+static int ett_f1ap_RRCDeliveryStatus;
+static int ett_f1ap_RRC_Version;
+static int ett_f1ap_ResponseTime;
+static int ett_f1ap_SCell_FailedtoSetup_Item;
+static int ett_f1ap_SCell_FailedtoSetupMod_Item;
+static int ett_f1ap_SCell_ToBeRemoved_Item;
+static int ett_f1ap_SCell_ToBeSetup_Item;
+static int ett_f1ap_SCell_ToBeSetupMod_Item;
+static int ett_f1ap_SCS_SpecificCarrier;
+static int ett_f1ap_SDTBearerConfigurationInfo;
+static int ett_f1ap_SDTBearerConfig_List;
+static int ett_f1ap_SDTBearerConfig_List_Item;
+static int ett_f1ap_SDTBearerType;
+static int ett_f1ap_SDTInformation;
+static int ett_f1ap_Search_window_information;
+static int ett_f1ap_ServingCellMO_List_Item;
+static int ett_f1ap_ServingCellMO_encoded_in_CGC_List;
+static int ett_f1ap_ServingCellMO_encoded_in_CGC_Item;
+static int ett_f1ap_Served_Cell_Information;
+static int ett_f1ap_Serving_Cells_List;
+static int ett_f1ap_Serving_Cells_List_Item;
+static int ett_f1ap_Supported_MBS_FSA_ID_List;
+static int ett_f1ap_SFN_Offset;
+static int ett_f1ap_Served_Cells_To_Add_Item;
+static int ett_f1ap_Served_Cells_To_Delete_Item;
+static int ett_f1ap_Served_Cells_To_Modify_Item;
+static int ett_f1ap_Served_EUTRA_Cells_Information;
+static int ett_f1ap_Service_Status;
+static int ett_f1ap_SItype_List;
+static int ett_f1ap_SItype_Item;
+static int ett_f1ap_SibtypetobeupdatedListItem;
+static int ett_f1ap_SidelinkRelayConfiguration;
+static int ett_f1ap_SLDRBInformation;
+static int ett_f1ap_SLDRBs_FailedToBeModified_Item;
+static int ett_f1ap_SLDRBs_FailedToBeSetup_Item;
+static int ett_f1ap_SLDRBs_FailedToBeSetupMod_Item;
+static int ett_f1ap_SLDRBs_Modified_Item;
+static int ett_f1ap_SLDRBs_ModifiedConf_Item;
+static int ett_f1ap_SLDRBs_Required_ToBeModified_Item;
+static int ett_f1ap_SLDRBs_Required_ToBeReleased_Item;
+static int ett_f1ap_SLDRBs_Setup_Item;
+static int ett_f1ap_SLDRBs_SetupMod_Item;
+static int ett_f1ap_SLDRBs_ToBeModified_Item;
+static int ett_f1ap_SLDRBs_ToBeReleased_Item;
+static int ett_f1ap_SLDRBs_ToBeSetup_Item;
+static int ett_f1ap_SLDRBs_ToBeSetupMod_Item;
+static int ett_f1ap_SLDRXCycleList;
+static int ett_f1ap_SLDRXCycleItem;
+static int ett_f1ap_SLDRXInformation;
+static int ett_f1ap_SliceAvailableCapacity;
+static int ett_f1ap_SliceAvailableCapacityList;
+static int ett_f1ap_SliceAvailableCapacityItem;
+static int ett_f1ap_SNSSAIAvailableCapacity_List;
+static int ett_f1ap_SNSSAIAvailableCapacity_Item;
+static int ett_f1ap_SliceRadioResourceStatus;
+static int ett_f1ap_SliceRadioResourceStatus_List;
+static int ett_f1ap_SliceRadioResourceStatus_Item;
+static int ett_f1ap_SNSSAIRadioResourceStatus_List;
+static int ett_f1ap_SNSSAIRadioResourceStatus_Item;
+static int ett_f1ap_SliceSupportList;
+static int ett_f1ap_SliceSupportItem;
+static int ett_f1ap_SliceToReportList;
+static int ett_f1ap_SliceToReportItem;
+static int ett_f1ap_SNSSAI_list;
+static int ett_f1ap_SNSSAI_Item;
+static int ett_f1ap_Slot_Configuration_List;
+static int ett_f1ap_Slot_Configuration_Item;
+static int ett_f1ap_SNSSAI;
+static int ett_f1ap_SpatialDirectionInformation;
+static int ett_f1ap_SpatialRelationInfo;
+static int ett_f1ap_SpatialRelationforResourceID;
+static int ett_f1ap_SpatialRelationforResourceIDItem;
+static int ett_f1ap_SpatialRelationPerSRSResource;
+static int ett_f1ap_SpatialRelationPerSRSResource_List;
+static int ett_f1ap_SpatialRelationPerSRSResourceItem;
+static int ett_f1ap_SpatialRelationPos;
+static int ett_f1ap_SRBs_FailedToBeSetup_Item;
+static int ett_f1ap_SRBs_FailedToBeSetupMod_Item;
+static int ett_f1ap_SRBs_Modified_Item;
+static int ett_f1ap_SRBs_Required_ToBeReleased_Item;
+static int ett_f1ap_SRBs_Setup_Item;
+static int ett_f1ap_SRBs_SetupMod_Item;
+static int ett_f1ap_SRBs_ToBeReleased_Item;
+static int ett_f1ap_SRBs_ToBeSetup_Item;
+static int ett_f1ap_SRBs_ToBeSetupMod_Item;
+static int ett_f1ap_SRSCarrier_List;
+static int ett_f1ap_SRSCarrier_List_Item;
+static int ett_f1ap_SRSConfig;
+static int ett_f1ap_SRSConfiguration;
+static int ett_f1ap_SRSResource;
+static int ett_f1ap_SRSResourceID_List;
+static int ett_f1ap_SRSResource_List;
+static int ett_f1ap_SRSResourceSet;
+static int ett_f1ap_SRSResourceSetList;
+static int ett_f1ap_SRSResourceSetItem;
+static int ett_f1ap_SRSResourceSet_List;
+static int ett_f1ap_SRSResourceTrigger;
+static int ett_f1ap_SRSResourcetype;
+static int ett_f1ap_SRSResourceTypeChoice;
+static int ett_f1ap_SRSInfo;
+static int ett_f1ap_PosSRSInfo;
+static int ett_f1ap_SSB;
+static int ett_f1ap_SSBCoverageModification_List;
+static int ett_f1ap_SSBCoverageModification_Item;
+static int ett_f1ap_SSB_transmissionBitmap;
+static int ett_f1ap_SSBAreaCapacityValueList;
+static int ett_f1ap_SSBAreaCapacityValueItem;
+static int ett_f1ap_SSBAreaRadioResourceStatusList;
+static int ett_f1ap_SSBAreaRadioResourceStatusItem;
+static int ett_f1ap_SSBInformation;
+static int ett_f1ap_SSBInformationList;
+static int ett_f1ap_SSBInformationItem;
+static int ett_f1ap_SSB_PositionsInBurst;
+static int ett_f1ap_SSB_TF_Configuration;
+static int ett_f1ap_SSBToReportList;
+static int ett_f1ap_SSBToReportItem;
+static int ett_f1ap_StartRBIndex;
+static int ett_f1ap_StartTimeAndDuration;
+static int ett_f1ap_SUL_Information;
+static int ett_f1ap_SuccessfulHOReportInformationList;
+static int ett_f1ap_SuccessfulHOReportInformation_Item;
+static int ett_f1ap_SupportedSULFreqBandItem;
+static int ett_f1ap_SymbolAllocInSlot;
+static int ett_f1ap_TargetCellList;
+static int ett_f1ap_TargetCellList_Item;
+static int ett_f1ap_NSAGSupportList;
+static int ett_f1ap_NSAGSupportItem;
+static int ett_f1ap_TDD_Info;
+static int ett_f1ap_TDD_InfoRel16;
+static int ett_f1ap_TRPTEGInformation;
+static int ett_f1ap_RxTxTEG;
+static int ett_f1ap_RxTEG;
+static int ett_f1ap_TimeReferenceInformation;
+static int ett_f1ap_TimeStamp;
+static int ett_f1ap_TimeStampSlotIndex;
+static int ett_f1ap_TimingMeasurementQuality;
+static int ett_f1ap_TNLCapacityIndicator;
+static int ett_f1ap_TraceActivation;
+static int ett_f1ap_TrafficMappingInfo;
+static int ett_f1ap_Transmission_Bandwidth;
+static int ett_f1ap_TransmissionComb;
+static int ett_f1ap_T_n2;
+static int ett_f1ap_T_n4;
+static int ett_f1ap_TransmissionCombn8;
+static int ett_f1ap_TransmissionCombPos;
+static int ett_f1ap_T_n2_01;
+static int ett_f1ap_T_n4_01;
+static int ett_f1ap_T_n8;
+static int ett_f1ap_Transport_UP_Layer_Address_Info_To_Add_List;
+static int ett_f1ap_Transport_UP_Layer_Address_Info_To_Add_Item;
+static int ett_f1ap_Transport_UP_Layer_Address_Info_To_Remove_List;
+static int ett_f1ap_Transport_UP_Layer_Address_Info_To_Remove_Item;
+static int ett_f1ap_TRPBeamAntennaInformation;
+static int ett_f1ap_Choice_TRP_Beam_Antenna_Info_Item;
+static int ett_f1ap_TRP_BeamAntennaExplicitInformation;
+static int ett_f1ap_TRP_BeamAntennaAngles;
+static int ett_f1ap_TRP_BeamAntennaAnglesList_Item;
+static int ett_f1ap_SEQUENCE_SIZE_1_maxnoElevationAngles_OF_TRP_ElevationAngleList_Item;
+static int ett_f1ap_TRP_ElevationAngleList_Item;
+static int ett_f1ap_SEQUENCE_SIZE_2_maxNumResourcesPerAngle_OF_TRP_Beam_Power_Item;
+static int ett_f1ap_TRP_Beam_Power_Item;
+static int ett_f1ap_TRPInformation;
+static int ett_f1ap_TRPInformationItem;
+static int ett_f1ap_TRPInformationTypeResponseList;
+static int ett_f1ap_TRPInformationTypeResponseItem;
+static int ett_f1ap_TRPList;
+static int ett_f1ap_TRPListItem;
+static int ett_f1ap_TRPMeasurementQuality;
+static int ett_f1ap_TRPMeasurementQuality_Item;
+static int ett_f1ap_TRP_MeasurementRequestList;
+static int ett_f1ap_TRP_MeasurementRequestItem;
+static int ett_f1ap_TRP_PRS_Info_List;
+static int ett_f1ap_TRP_PRS_Info_List_Item;
+static int ett_f1ap_TRPPositionDefinitionType;
+static int ett_f1ap_TRPPositionDirect;
+static int ett_f1ap_TRPPositionDirectAccuracy;
+static int ett_f1ap_TRPPositionReferenced;
+static int ett_f1ap_TRPReferencePointType;
+static int ett_f1ap_TRP_Rx_TEGInformation;
+static int ett_f1ap_TRP_RxTx_TEGInformation;
+static int ett_f1ap_TRP_Tx_TEGInformation;
+static int ett_f1ap_TRPTxTEGAssociation;
+static int ett_f1ap_TRPTEG_Item;
+static int ett_f1ap_SEQUENCE_SIZE_1_maxnoofPRS_ResourcesPerSet_OF_DLPRSResourceID_Item;
+static int ett_f1ap_DLPRSResourceID_Item;
+static int ett_f1ap_Transport_Layer_Address_Info;
+static int ett_f1ap_TSCAssistanceInformation;
+static int ett_f1ap_TSCTrafficCharacteristics;
+static int ett_f1ap_TRP_MeasurementUpdateList;
+static int ett_f1ap_TRP_MeasurementUpdateItem;
+static int ett_f1ap_UAC_Assistance_Info;
+static int ett_f1ap_UACPLMN_List;
+static int ett_f1ap_UACPLMN_Item;
+static int ett_f1ap_UACType_List;
+static int ett_f1ap_UACType_Item;
+static int ett_f1ap_UACCategoryType;
+static int ett_f1ap_UACOperatorDefined;
+static int ett_f1ap_UE_associatedLogicalF1_ConnectionItem;
+static int ett_f1ap_UEIdentityIndexValue;
+static int ett_f1ap_UEIdentity_List_For_Paging_Item;
+static int ett_f1ap_UE_MulticastMRBs_ConfirmedToBeModified_Item;
+static int ett_f1ap_UE_MulticastMRBs_RequiredToBeModified_Item;
+static int ett_f1ap_UE_MulticastMRBs_RequiredToBeReleased_Item;
+static int ett_f1ap_UE_MulticastMRBs_Setup_Item;
+static int ett_f1ap_UE_MulticastMRBs_Setupnew_Item;
+static int ett_f1ap_UE_MulticastMRBs_ToBeReleased_Item;
+static int ett_f1ap_UE_MulticastMRBs_ToBeSetup_Item;
+static int ett_f1ap_UE_MulticastMRBs_ToBeSetup_atModify_Item;
+static int ett_f1ap_UEPagingCapability;
+static int ett_f1ap_UEReportingInformation;
+static int ett_f1ap_UL_AoA;
+static int ett_f1ap_UL_BH_Non_UP_Traffic_Mapping;
+static int ett_f1ap_UL_BH_Non_UP_Traffic_Mapping_List;
+static int ett_f1ap_UL_BH_Non_UP_Traffic_Mapping_Item;
+static int ett_f1ap_ULConfiguration;
+static int ett_f1ap_UL_RTOA_Measurement;
+static int ett_f1ap_UL_RTOA_MeasurementItem;
+static int ett_f1ap_UL_SRS_RSRPP;
+static int ett_f1ap_UL_UP_TNL_Information_to_Update_List_Item;
+static int ett_f1ap_UL_UP_TNL_Address_to_Update_List_Item;
+static int ett_f1ap_ULUPTNLInformation_ToBeSetup_List;
+static int ett_f1ap_ULUPTNLInformation_ToBeSetup_Item;
+static int ett_f1ap_UplinkChannelBW_PerSCS_List;
+static int ett_f1ap_UPTransportLayerInformation;
+static int ett_f1ap_UuRLCChannelQoSInformation;
+static int ett_f1ap_UuRLCChannelToBeSetupList;
+static int ett_f1ap_UuRLCChannelToBeSetupItem;
+static int ett_f1ap_UuRLCChannelToBeModifiedList;
+static int ett_f1ap_UuRLCChannelToBeModifiedItem;
+static int ett_f1ap_UuRLCChannelToBeReleasedList;
+static int ett_f1ap_UuRLCChannelToBeReleasedItem;
+static int ett_f1ap_UuRLCChannelSetupList;
+static int ett_f1ap_UuRLCChannelSetupItem;
+static int ett_f1ap_UuRLCChannelFailedToBeSetupList;
+static int ett_f1ap_UuRLCChannelFailedToBeSetupItem;
+static int ett_f1ap_UuRLCChannelModifiedList;
+static int ett_f1ap_UuRLCChannelModifiedItem;
+static int ett_f1ap_UuRLCChannelFailedToBeModifiedList;
+static int ett_f1ap_UuRLCChannelFailedToBeModifiedItem;
+static int ett_f1ap_UuRLCChannelRequiredToBeModifiedList;
+static int ett_f1ap_UuRLCChannelRequiredToBeModifiedItem;
+static int ett_f1ap_UuRLCChannelRequiredToBeReleasedList;
+static int ett_f1ap_UuRLCChannelRequiredToBeReleasedItem;
+static int ett_f1ap_VictimgNBSetID;
+static int ett_f1ap_ZoAInformation;
+static int ett_f1ap_Reset;
+static int ett_f1ap_ResetType;
+static int ett_f1ap_UE_associatedLogicalF1_ConnectionListRes;
+static int ett_f1ap_ResetAcknowledge;
+static int ett_f1ap_UE_associatedLogicalF1_ConnectionListResAck;
+static int ett_f1ap_ErrorIndication;
+static int ett_f1ap_F1SetupRequest;
+static int ett_f1ap_GNB_DU_Served_Cells_List;
+static int ett_f1ap_F1SetupResponse;
+static int ett_f1ap_Cells_to_be_Activated_List;
+static int ett_f1ap_F1SetupFailure;
+static int ett_f1ap_GNBDUConfigurationUpdate;
+static int ett_f1ap_Served_Cells_To_Add_List;
+static int ett_f1ap_Served_Cells_To_Modify_List;
+static int ett_f1ap_Served_Cells_To_Delete_List;
+static int ett_f1ap_Cells_Status_List;
+static int ett_f1ap_Dedicated_SIDelivery_NeededUE_List;
+static int ett_f1ap_GNB_DU_TNL_Association_To_Remove_List;
+static int ett_f1ap_GNBDUConfigurationUpdateAcknowledge;
+static int ett_f1ap_GNBDUConfigurationUpdateFailure;
+static int ett_f1ap_GNBCUConfigurationUpdate;
+static int ett_f1ap_Cells_to_be_Deactivated_List;
+static int ett_f1ap_GNB_CU_TNL_Association_To_Add_List;
+static int ett_f1ap_GNB_CU_TNL_Association_To_Remove_List;
+static int ett_f1ap_GNB_CU_TNL_Association_To_Update_List;
+static int ett_f1ap_Cells_to_be_Barred_List;
+static int ett_f1ap_Protected_EUTRA_Resources_List;
+static int ett_f1ap_Neighbour_Cell_Information_List;
+static int ett_f1ap_GNBCUConfigurationUpdateAcknowledge;
+static int ett_f1ap_Cells_Failed_to_be_Activated_List;
+static int ett_f1ap_GNB_CU_TNL_Association_Setup_List;
+static int ett_f1ap_GNB_CU_TNL_Association_Failed_To_Setup_List;
+static int ett_f1ap_GNBCUConfigurationUpdateFailure;
+static int ett_f1ap_GNBDUResourceCoordinationRequest;
+static int ett_f1ap_GNBDUResourceCoordinationResponse;
+static int ett_f1ap_UEContextSetupRequest;
+static int ett_f1ap_Candidate_SpCell_List;
+static int ett_f1ap_SCell_ToBeSetup_List;
+static int ett_f1ap_SRBs_ToBeSetup_List;
+static int ett_f1ap_DRBs_ToBeSetup_List;
+static int ett_f1ap_BHChannels_ToBeSetup_List;
+static int ett_f1ap_SLDRBs_ToBeSetup_List;
+static int ett_f1ap_UE_MulticastMRBs_ToBeSetup_List;
+static int ett_f1ap_ServingCellMO_List;
+static int ett_f1ap_UEContextSetupResponse;
+static int ett_f1ap_DRBs_Setup_List;
+static int ett_f1ap_SRBs_FailedToBeSetup_List;
+static int ett_f1ap_DRBs_FailedToBeSetup_List;
+static int ett_f1ap_SCell_FailedtoSetup_List;
+static int ett_f1ap_SRBs_Setup_List;
+static int ett_f1ap_BHChannels_Setup_List;
+static int ett_f1ap_BHChannels_FailedToBeSetup_List;
+static int ett_f1ap_SLDRBs_Setup_List;
+static int ett_f1ap_SLDRBs_FailedToBeSetup_List;
+static int ett_f1ap_UE_MulticastMRBs_Setupnew_List;
+static int ett_f1ap_UEContextSetupFailure;
+static int ett_f1ap_Potential_SpCell_List;
+static int ett_f1ap_UEContextReleaseRequest;
+static int ett_f1ap_UEContextReleaseCommand;
+static int ett_f1ap_UEContextReleaseComplete;
+static int ett_f1ap_UEContextModificationRequest;
+static int ett_f1ap_SCell_ToBeSetupMod_List;
+static int ett_f1ap_SCell_ToBeRemoved_List;
+static int ett_f1ap_SRBs_ToBeSetupMod_List;
+static int ett_f1ap_DRBs_ToBeSetupMod_List;
+static int ett_f1ap_BHChannels_ToBeSetupMod_List;
+static int ett_f1ap_DRBs_ToBeModified_List;
+static int ett_f1ap_BHChannels_ToBeModified_List;
+static int ett_f1ap_SRBs_ToBeReleased_List;
+static int ett_f1ap_DRBs_ToBeReleased_List;
+static int ett_f1ap_BHChannels_ToBeReleased_List;
+static int ett_f1ap_UE_MulticastMRBs_ToBeSetup_atModify_List;
+static int ett_f1ap_UE_MulticastMRBs_ToBeReleased_List;
+static int ett_f1ap_SLDRBs_ToBeSetupMod_List;
+static int ett_f1ap_SLDRBs_ToBeModified_List;
+static int ett_f1ap_SLDRBs_ToBeReleased_List;
+static int ett_f1ap_UEContextModificationResponse;
+static int ett_f1ap_DRBs_SetupMod_List;
+static int ett_f1ap_DRBs_Modified_List;
+static int ett_f1ap_SRBs_SetupMod_List;
+static int ett_f1ap_SRBs_Modified_List;
+static int ett_f1ap_DRBs_FailedToBeModified_List;
+static int ett_f1ap_SRBs_FailedToBeSetupMod_List;
+static int ett_f1ap_DRBs_FailedToBeSetupMod_List;
+static int ett_f1ap_SCell_FailedtoSetupMod_List;
+static int ett_f1ap_BHChannels_SetupMod_List;
+static int ett_f1ap_BHChannels_Modified_List;
+static int ett_f1ap_BHChannels_FailedToBeModified_List;
+static int ett_f1ap_BHChannels_FailedToBeSetupMod_List;
+static int ett_f1ap_Associated_SCell_List;
+static int ett_f1ap_SLDRBs_SetupMod_List;
+static int ett_f1ap_SLDRBs_Modified_List;
+static int ett_f1ap_SLDRBs_FailedToBeModified_List;
+static int ett_f1ap_SLDRBs_FailedToBeSetupMod_List;
+static int ett_f1ap_UE_MulticastMRBs_Setup_List;
+static int ett_f1ap_UEContextModificationFailure;
+static int ett_f1ap_UEContextModificationRequired;
+static int ett_f1ap_DRBs_Required_ToBeModified_List;
+static int ett_f1ap_DRBs_Required_ToBeReleased_List;
+static int ett_f1ap_SRBs_Required_ToBeReleased_List;
+static int ett_f1ap_BHChannels_Required_ToBeReleased_List;
+static int ett_f1ap_SLDRBs_Required_ToBeModified_List;
+static int ett_f1ap_SLDRBs_Required_ToBeReleased_List;
+static int ett_f1ap_UE_MulticastMRBs_RequiredToBeModified_List;
+static int ett_f1ap_UE_MulticastMRBs_RequiredToBeReleased_List;
+static int ett_f1ap_UEContextModificationConfirm;
+static int ett_f1ap_DRBs_ModifiedConf_List;
+static int ett_f1ap_SLDRBs_ModifiedConf_List;
+static int ett_f1ap_UE_MulticastMRBs_ConfirmedToBeModified_List;
+static int ett_f1ap_UEContextModificationRefuse;
+static int ett_f1ap_WriteReplaceWarningRequest;
+static int ett_f1ap_Cells_To_Be_Broadcast_List;
+static int ett_f1ap_WriteReplaceWarningResponse;
+static int ett_f1ap_Cells_Broadcast_Completed_List;
+static int ett_f1ap_PWSCancelRequest;
+static int ett_f1ap_Broadcast_To_Be_Cancelled_List;
+static int ett_f1ap_PWSCancelResponse;
+static int ett_f1ap_Cells_Broadcast_Cancelled_List;
+static int ett_f1ap_UEInactivityNotification;
+static int ett_f1ap_DRB_Activity_List;
+static int ett_f1ap_InitialULRRCMessageTransfer;
+static int ett_f1ap_DLRRCMessageTransfer;
+static int ett_f1ap_ULRRCMessageTransfer;
+static int ett_f1ap_PrivateMessage;
+static int ett_f1ap_SystemInformationDeliveryCommand;
+static int ett_f1ap_Paging;
+static int ett_f1ap_PagingCell_list;
+static int ett_f1ap_Notify;
+static int ett_f1ap_DRB_Notify_List;
+static int ett_f1ap_NetworkAccessRateReduction;
+static int ett_f1ap_PWSRestartIndication;
+static int ett_f1ap_NR_CGI_List_For_Restart_List;
+static int ett_f1ap_PWSFailureIndication;
+static int ett_f1ap_PWS_Failed_NR_CGI_List;
+static int ett_f1ap_GNBDUStatusIndication;
+static int ett_f1ap_RRCDeliveryReport;
+static int ett_f1ap_F1RemovalRequest;
+static int ett_f1ap_F1RemovalResponse;
+static int ett_f1ap_F1RemovalFailure;
+static int ett_f1ap_TraceStart;
+static int ett_f1ap_DeactivateTrace;
+static int ett_f1ap_CellTrafficTrace;
+static int ett_f1ap_DUCURadioInformationTransfer;
+static int ett_f1ap_CUDURadioInformationTransfer;
+static int ett_f1ap_BAPMappingConfiguration;
+static int ett_f1ap_BH_Routing_Information_Added_List;
+static int ett_f1ap_BH_Routing_Information_Removed_List;
+static int ett_f1ap_BAP_Header_Rewriting_Added_List;
+static int ett_f1ap_BAP_Header_Rewriting_Removed_List;
+static int ett_f1ap_BAPMappingConfigurationAcknowledge;
+static int ett_f1ap_BAPMappingConfigurationFailure;
+static int ett_f1ap_GNBDUResourceConfiguration;
+static int ett_f1ap_GNBDUResourceConfigurationAcknowledge;
+static int ett_f1ap_GNBDUResourceConfigurationFailure;
+static int ett_f1ap_IABTNLAddressRequest;
+static int ett_f1ap_IAB_TNL_Addresses_To_Remove_List;
+static int ett_f1ap_IABTNLAddressResponse;
+static int ett_f1ap_IAB_Allocated_TNL_Address_List;
+static int ett_f1ap_IABTNLAddressFailure;
+static int ett_f1ap_IABUPConfigurationUpdateRequest;
+static int ett_f1ap_UL_UP_TNL_Information_to_Update_List;
+static int ett_f1ap_UL_UP_TNL_Address_to_Update_List;
+static int ett_f1ap_IABUPConfigurationUpdateResponse;
+static int ett_f1ap_DL_UP_TNL_Address_to_Update_List;
+static int ett_f1ap_IABUPConfigurationUpdateFailure;
+static int ett_f1ap_ResourceStatusRequest;
+static int ett_f1ap_ResourceStatusResponse;
+static int ett_f1ap_ResourceStatusFailure;
+static int ett_f1ap_ResourceStatusUpdate;
+static int ett_f1ap_AccessAndMobilityIndication;
+static int ett_f1ap_ReferenceTimeInformationReportingControl;
+static int ett_f1ap_ReferenceTimeInformationReport;
+static int ett_f1ap_AccessSuccess;
+static int ett_f1ap_PositioningAssistanceInformationControl;
+static int ett_f1ap_PositioningAssistanceInformationFeedback;
+static int ett_f1ap_PositioningMeasurementRequest;
+static int ett_f1ap_PositioningMeasurementResponse;
+static int ett_f1ap_PositioningMeasurementFailure;
+static int ett_f1ap_PositioningMeasurementReport;
+static int ett_f1ap_PositioningMeasurementAbort;
+static int ett_f1ap_PositioningMeasurementFailureIndication;
+static int ett_f1ap_PositioningMeasurementUpdate;
+static int ett_f1ap_TRPInformationRequest;
+static int ett_f1ap_TRPInformationTypeListTRPReq;
+static int ett_f1ap_TRPInformationResponse;
+static int ett_f1ap_TRPInformationListTRPResp;
+static int ett_f1ap_TRPInformationFailure;
+static int ett_f1ap_PositioningInformationRequest;
+static int ett_f1ap_PositioningInformationResponse;
+static int ett_f1ap_PositioningInformationFailure;
+static int ett_f1ap_PositioningActivationRequest;
+static int ett_f1ap_SRSType;
+static int ett_f1ap_SemipersistentSRS;
+static int ett_f1ap_AperiodicSRS;
+static int ett_f1ap_PositioningActivationResponse;
+static int ett_f1ap_PositioningActivationFailure;
+static int ett_f1ap_PositioningDeactivation;
+static int ett_f1ap_PositioningInformationUpdate;
+static int ett_f1ap_E_CIDMeasurementInitiationRequest;
+static int ett_f1ap_E_CIDMeasurementInitiationResponse;
+static int ett_f1ap_E_CIDMeasurementInitiationFailure;
+static int ett_f1ap_E_CIDMeasurementFailureIndication;
+static int ett_f1ap_E_CIDMeasurementReport;
+static int ett_f1ap_E_CIDMeasurementTerminationCommand;
+static int ett_f1ap_BroadcastContextSetupRequest;
+static int ett_f1ap_BroadcastMRBs_ToBeSetup_List;
+static int ett_f1ap_BroadcastContextSetupResponse;
+static int ett_f1ap_BroadcastMRBs_Setup_List;
+static int ett_f1ap_BroadcastMRBs_FailedToBeSetup_List;
+static int ett_f1ap_BroadcastContextSetupFailure;
+static int ett_f1ap_BroadcastContextReleaseCommand;
+static int ett_f1ap_BroadcastContextReleaseComplete;
+static int ett_f1ap_BroadcastContextReleaseRequest;
+static int ett_f1ap_BroadcastContextModificationRequest;
+static int ett_f1ap_BroadcastMRBs_ToBeSetupMod_List;
+static int ett_f1ap_BroadcastMRBs_ToBeModified_List;
+static int ett_f1ap_BroadcastMRBs_ToBeReleased_List;
+static int ett_f1ap_BroadcastContextModificationResponse;
+static int ett_f1ap_BroadcastMRBs_SetupMod_List;
+static int ett_f1ap_BroadcastMRBs_FailedToBeSetupMod_List;
+static int ett_f1ap_BroadcastMRBs_Modified_List;
+static int ett_f1ap_BroadcastMRBs_FailedToBeModified_List;
+static int ett_f1ap_BroadcastContextModificationFailure;
+static int ett_f1ap_MulticastGroupPaging;
+static int ett_f1ap_UEIdentity_List_For_Paging_List;
+static int ett_f1ap_MC_PagingCell_list;
+static int ett_f1ap_MulticastContextSetupRequest;
+static int ett_f1ap_MulticastMRBs_ToBeSetup_List;
+static int ett_f1ap_MulticastContextSetupResponse;
+static int ett_f1ap_MulticastMRBs_Setup_List;
+static int ett_f1ap_MulticastMRBs_FailedToBeSetup_List;
+static int ett_f1ap_MulticastContextSetupFailure;
+static int ett_f1ap_MulticastContextReleaseCommand;
+static int ett_f1ap_MulticastContextReleaseComplete;
+static int ett_f1ap_MulticastContextReleaseRequest;
+static int ett_f1ap_MulticastContextModificationRequest;
+static int ett_f1ap_MulticastMRBs_ToBeSetupMod_List;
+static int ett_f1ap_MulticastMRBs_ToBeModified_List;
+static int ett_f1ap_MulticastMRBs_ToBeReleased_List;
+static int ett_f1ap_MulticastContextModificationResponse;
+static int ett_f1ap_MulticastMRBs_SetupMod_List;
+static int ett_f1ap_MulticastMRBs_FailedToBeSetupMod_List;
+static int ett_f1ap_MulticastMRBs_Modified_List;
+static int ett_f1ap_MulticastMRBs_FailedToBeModified_List;
+static int ett_f1ap_MulticastContextModificationFailure;
+static int ett_f1ap_MulticastDistributionSetupRequest;
+static int ett_f1ap_MulticastF1UContext_ToBeSetup_List;
+static int ett_f1ap_MulticastDistributionSetupResponse;
+static int ett_f1ap_MulticastF1UContext_Setup_List;
+static int ett_f1ap_MulticastF1UContext_FailedToBeSetup_List;
+static int ett_f1ap_MulticastDistributionSetupFailure;
+static int ett_f1ap_MulticastDistributionReleaseCommand;
+static int ett_f1ap_MulticastDistributionReleaseComplete;
+static int ett_f1ap_PDCMeasurementInitiationRequest;
+static int ett_f1ap_PDCMeasurementInitiationResponse;
+static int ett_f1ap_PDCMeasurementInitiationFailure;
+static int ett_f1ap_PDCMeasurementReport;
+static int ett_f1ap_PDCMeasurementTerminationCommand;
+static int ett_f1ap_PDCMeasurementFailureIndication;
+static int ett_f1ap_PRSConfigurationRequest;
+static int ett_f1ap_PRSConfigurationResponse;
+static int ett_f1ap_PRSConfigurationFailure;
+static int ett_f1ap_MeasurementPreconfigurationRequired;
+static int ett_f1ap_MeasurementPreconfigurationConfirm;
+static int ett_f1ap_MeasurementPreconfigurationRefuse;
+static int ett_f1ap_MeasurementActivation;
+static int ett_f1ap_QoEInformationTransfer;
+static int ett_f1ap_PosSystemInformationDeliveryCommand;
+static int ett_f1ap_F1AP_PDU;
+static int ett_f1ap_InitiatingMessage;
+static int ett_f1ap_SuccessfulOutcome;
+static int ett_f1ap_UnsuccessfulOutcome;
enum{
INITIATING_MESSAGE,
@@ -4568,7 +4568,7 @@ static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, pro
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
@@ -8368,7 +8368,7 @@ dissect_f1ap_QoSParaSetIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_f1ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+ 0U, UINT64_C(4000000000000), NULL, TRUE);
return offset;
}
@@ -14533,7 +14533,7 @@ dissect_f1ap_E_CID_MeasurementQuantities_Item(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_f1ap_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
@@ -16140,7 +16140,7 @@ dissect_f1ap_GNB_DU_MBS_F1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_f1ap_GNB_DU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(68719476735), NULL, FALSE);
+ 0U, UINT64_C(68719476735), NULL, FALSE);
return offset;
}
@@ -19121,9 +19121,9 @@ dissect_f1ap_INTEGER_0_180(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static const per_sequence_t PRSAngleItem_sequence[] = {
{ &hf_f1ap_nR_PRS_Azimuth , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_INTEGER_0_359 },
- { &hf_f1ap_nR_PRS_Azimuth_fine, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_INTEGER_0_9 },
- { &hf_f1ap_nR_PRS_Elevation, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_INTEGER_0_180 },
- { &hf_f1ap_nR_PRS_Elevation_fine, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_f1ap_INTEGER_0_9 },
+ { &hf_f1ap_nR_PRS_Azimuth_fine, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_f1ap_INTEGER_0_9 },
+ { &hf_f1ap_nR_PRS_Elevation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_f1ap_INTEGER_0_180 },
+ { &hf_f1ap_nR_PRS_Elevation_fine, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_f1ap_INTEGER_0_9 },
{ &hf_f1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_f1ap_ProtocolExtensionContainer },
{ NULL, 0, 0, NULL }
};
@@ -19514,6 +19514,7 @@ static const value_string f1ap_T_bandwidth_vals[] = {
{ 2, "mHz-40" },
{ 3, "mHz-60" },
{ 4, "mHz-80" },
+ { 5, "mHz-100" },
{ 0, NULL }
};
@@ -19521,7 +19522,7 @@ static const value_string f1ap_T_bandwidth_vals[] = {
static int
dissect_f1ap_T_bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 5, NULL, TRUE, 0, NULL);
+ 5, NULL, TRUE, 1, NULL);
return offset;
}
@@ -22200,7 +22201,7 @@ dissect_f1ap_StartTimeAndDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static const per_sequence_t RequestedDLPRSResourceSet_Item_sequence[] = {
- { &hf_f1ap_pRSbandwidth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_f1ap_INTEGER_1_63 },
+ { &hf_f1ap_pRSbandwidth , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_INTEGER_1_63 },
{ &hf_f1ap_combSize_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_T_combSize_01 },
{ &hf_f1ap_resourceSetPeriodicity_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_T_resourceSetPeriodicity_01 },
{ &hf_f1ap_resourceRepetitionFactor_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_f1ap_T_resourceRepetitionFactor_01 },
@@ -38235,7 +38236,7 @@ void proto_register_f1ap(void) {
NULL, HFILL }},
{ &hf_f1ap_BitRate_PDU,
{ "BitRate", "f1ap.BitRate",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
NULL, HFILL }},
{ &hf_f1ap_BearerTypeChange_PDU,
{ "BearerTypeChange", "f1ap.BearerTypeChange",
@@ -41531,11 +41532,11 @@ void proto_register_f1ap(void) {
"QoSParaSetIndex", HFILL }},
{ &hf_f1ap_guaranteedFlowBitRateDL,
{ "guaranteedFlowBitRateDL", "f1ap.guaranteedFlowBitRateDL",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_guaranteedFlowBitRateUL,
{ "guaranteedFlowBitRateUL", "f1ap.guaranteedFlowBitRateUL",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_packetDelayBudget,
{ "packetDelayBudget", "f1ap.packetDelayBudget",
@@ -42699,35 +42700,35 @@ void proto_register_f1ap(void) {
NULL, HFILL }},
{ &hf_f1ap_e_RAB_MaximumBitrateDL,
{ "e-RAB-MaximumBitrateDL", "f1ap.e_RAB_MaximumBitrateDL",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_e_RAB_MaximumBitrateUL,
{ "e-RAB-MaximumBitrateUL", "f1ap.e_RAB_MaximumBitrateUL",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_e_RAB_GuaranteedBitrateDL,
{ "e-RAB-GuaranteedBitrateDL", "f1ap.e_RAB_GuaranteedBitrateDL",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_e_RAB_GuaranteedBitrateUL,
{ "e-RAB-GuaranteedBitrateUL", "f1ap.e_RAB_GuaranteedBitrateUL",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_maxFlowBitRateDownlink,
{ "maxFlowBitRateDownlink", "f1ap.maxFlowBitRateDownlink",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_maxFlowBitRateUplink,
{ "maxFlowBitRateUplink", "f1ap.maxFlowBitRateUplink",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_guaranteedFlowBitRateDownlink,
{ "guaranteedFlowBitRateDownlink", "f1ap.guaranteedFlowBitRateDownlink",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_guaranteedFlowBitRateUplink,
{ "guaranteedFlowBitRateUplink", "f1ap.guaranteedFlowBitRateUplink",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_maxPacketLossRateDownlink,
{ "maxPacketLossRateDownlink", "f1ap.maxPacketLossRateDownlink",
@@ -42823,7 +42824,7 @@ void proto_register_f1ap(void) {
NULL, HFILL }},
{ &hf_f1ap_uESliceMaximumBitRateUL,
{ "uESliceMaximumBitRateUL", "f1ap.uESliceMaximumBitRateUL",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_rxTxTimeDiff,
{ "rxTxTimeDiff", "f1ap.rxTxTimeDiff",
@@ -43235,7 +43236,7 @@ void proto_register_f1ap(void) {
NULL, HFILL }},
{ &hf_f1ap_uELTESidelinkAggregateMaximumBitrate,
{ "uELTESidelinkAggregateMaximumBitrate", "f1ap.uELTESidelinkAggregateMaximumBitrate",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_vehicleUE,
{ "vehicleUE", "f1ap.vehicleUE",
@@ -43759,7 +43760,7 @@ void proto_register_f1ap(void) {
"INTEGER_0_13_", HFILL }},
{ &hf_f1ap_uENRSidelinkAggregateMaximumBitrate,
{ "uENRSidelinkAggregateMaximumBitrate", "f1ap.uENRSidelinkAggregateMaximumBitrate",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_onDemandPRSRequestAllowed,
{ "onDemandPRSRequestAllowed", "f1ap.onDemandPRSRequestAllowed",
@@ -43879,11 +43880,11 @@ void proto_register_f1ap(void) {
"PC5FlowBitRates", HFILL }},
{ &hf_f1ap_guaranteedFlowBitRate,
{ "guaranteedFlowBitRate", "f1ap.guaranteedFlowBitRate",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_maximumFlowBitRate,
{ "maximumFlowBitRate", "f1ap.maximumFlowBitRate",
- FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0,
+ FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
{ &hf_f1ap_pC5RLCChannelQoS,
{ "pC5RLCChannelQoS", "f1ap.pC5RLCChannelQoS_element",
diff --git a/epan/dissectors/packet-f5ethtrailer.c b/epan/dissectors/packet-f5ethtrailer.c
index d3126ead1a..02cf5579ba 100644
--- a/epan/dissectors/packet-f5ethtrailer.c
+++ b/epan/dissectors/packet-f5ethtrailer.c
@@ -327,16 +327,16 @@ static gint hf_fi_product;
static gint hf_fi_session;
/* Wireshark preference to show RST cause in info column */
-static gboolean rstcause_in_info = TRUE;
+static bool rstcause_in_info = true;
/** Wireshark preference to look at all trailer bytes for f5ethtrailer */
-static gboolean pref_walk_trailer = FALSE;
+static bool pref_walk_trailer;
/* Wireshark preference to enable/disable the population of other dissectors'
* fields.*/
-static gboolean pref_pop_other_fields = FALSE;
+static bool pref_pop_other_fields;
/** Wireshark preference to perform analysis */
-static gboolean pref_perform_analysis = FALSE;
+static bool pref_perform_analysis;
/** Wireshark preference to generate keylog entries from f5ethtrailer TLS data */
-static gboolean pref_generate_keylog = TRUE;
+static bool pref_generate_keylog = true;
/** Identifiers for taps (when enabled), only the address is important, the
* values are unused. */
static gboolean tap_ip_enabled;
@@ -419,10 +419,10 @@ ptype_to_ipproto(const port_type ptype)
* @param pinfo A pointer to the packet info to look at for the L3 data.
* @return True if it is valid IP/IPv6, false otherwise
*/
-static gboolean
+static bool
f5_ip_conv_valid(packet_info *pinfo, void *user_data _U_)
{
- gboolean is_ip = FALSE;
+ bool is_ip = false;
gboolean is_f5ethtrailer = FALSE;
proto_get_frame_protocols(pinfo->layers, &is_ip, NULL, NULL, NULL, NULL, NULL, NULL);
@@ -440,11 +440,11 @@ f5_ip_conv_valid(packet_info *pinfo, void *user_data _U_)
* @param pinfo A pointer to the packet info to look at for the L3/L4 data.
* @return True if it is valid IP/IPv6 + TCP, false otherwise
*/
-static gboolean
+static bool
f5_tcp_conv_valid(packet_info *pinfo, void *user_data _U_)
{
- gboolean is_ip = FALSE;
- gboolean is_tcp = FALSE;
+ bool is_ip = false;
+ bool is_tcp = false;
gboolean is_f5ethtrailer = FALSE;
proto_get_frame_protocols(pinfo->layers, &is_ip, &is_tcp, NULL, NULL, NULL, NULL, NULL);
@@ -462,11 +462,11 @@ f5_tcp_conv_valid(packet_info *pinfo, void *user_data _U_)
* @param pinfo A pointer to the packet info to look at for the L3/L4 data.
* @return True if it is valid IP/IPv6 + UDP, false otherwise
*/
-static gboolean
+static bool
f5_udp_conv_valid(packet_info *pinfo, void *user_data _U_)
{
- gboolean is_ip = FALSE;
- gboolean is_udp = FALSE;
+ bool is_ip = false;
+ bool is_udp = false;
gboolean is_f5ethtrailer = FALSE;
proto_get_frame_protocols(pinfo->layers, &is_ip, NULL, &is_udp, NULL, NULL, NULL, NULL);
@@ -907,12 +907,12 @@ static const char info_format_full_in_noslot[] = "IN tmm%-2u: ";
static const char info_format_full_out_noslot[] = "OUT tmm%-2u: ";
/* Variables used in f5eth_set_info_col functions initialized to defaults */
-static char *info_format_in_only = NULL; /**< In format in use with in/out only */
-static char *info_format_out_only = NULL; /**< Out format in use with in/out only */
-static char *info_format_in_noslot = NULL; /**< In format in use without slot */
-static char *info_format_out_noslot = NULL; /**< Out format in use without slot */
-static char *info_format_in_slot = NULL; /**< In format in use with slot */
-static char *info_format_out_slot = NULL; /**< Out format in use with slot */
+static char *info_format_in_only; /**< In format in use with in/out only */
+static char *info_format_out_only; /**< Out format in use with in/out only */
+static char *info_format_in_noslot; /**< In format in use without slot */
+static char *info_format_out_noslot; /**< Out format in use without slot */
+static char *info_format_in_slot; /**< In format in use with slot */
+static char *info_format_out_slot; /**< Out format in use with slot */
/** Info column display format preference types:
* These correspond to bit flags
@@ -941,13 +941,13 @@ static const enum_val_t f5eth_display_strings[] = {
static f5eth_info_type_t pref_info_type = full;
/** Preference for the brief in/out characters */
-static const char *pref_brief_inout_chars = NULL;
+static const char *pref_brief_inout_chars;
/** Function pointer prototype for info column set functions */
typedef void (*f5eth_set_col_info_func)(packet_info *, guint, guint, guint);
/** Preference for setting platform regex for which platforms to display slot information for. */
-static const char *pref_slots_regex = NULL;
+static const char *pref_slots_regex;
/** Whether or not to display slot information, set based on platform and regex preference. */
static gboolean display_slot = TRUE;
diff --git a/epan/dissectors/packet-fc.c b/epan/dissectors/packet-fc.c
index d613aa8c78..54120732cd 100644
--- a/epan/dissectors/packet-fc.c
+++ b/epan/dissectors/packet-fc.c
@@ -141,7 +141,7 @@ typedef struct _fc_conv_data_t {
} fc_conv_data_t;
/* Reassembly stuff */
-static gboolean fc_reassemble = TRUE;
+static bool fc_reassemble = true;
static guint32 fc_max_frame_size = 1024;
static reassembly_table fc_reassembly_table;
@@ -153,7 +153,7 @@ typedef struct _fcseq_conv_data {
guint32 seq_cnt;
} fcseq_conv_data_t;
-static wmem_map_t *fcseq_req_hash = NULL;
+static wmem_map_t *fcseq_req_hash;
/*
* Hash Functions
diff --git a/epan/dissectors/packet-fcdns.c b/epan/dissectors/packet-fcdns.c
index 8cd0f07e11..0ab8e4cf22 100644
--- a/epan/dissectors/packet-fcdns.c
+++ b/epan/dissectors/packet-fcdns.c
@@ -314,7 +314,7 @@ typedef struct _fcdns_conv_data {
guint32 opcode;
} fcdns_conv_data_t;
-static wmem_map_t *fcdns_req_hash = NULL;
+static wmem_map_t *fcdns_req_hash;
/*
* Hash Functions
diff --git a/epan/dissectors/packet-fcels.c b/epan/dissectors/packet-fcels.c
index 6f6120a9c3..da9d9d53b4 100644
--- a/epan/dissectors/packet-fcels.c
+++ b/epan/dissectors/packet-fcels.c
@@ -609,7 +609,7 @@ typedef struct _fcels_conv_data {
guint32 opcode;
} fcels_conv_data_t;
-static wmem_map_t *fcels_req_hash = NULL;
+static wmem_map_t *fcels_req_hash;
static dissector_handle_t fcsp_handle;
diff --git a/epan/dissectors/packet-fcfcs.c b/epan/dissectors/packet-fcfcs.c
index 3f8457ca3f..402a510d63 100644
--- a/epan/dissectors/packet-fcfcs.c
+++ b/epan/dissectors/packet-fcfcs.c
@@ -87,7 +87,7 @@ typedef struct _fcfcs_conv_data {
guint32 opcode;
} fcfcs_conv_data_t;
-static wmem_map_t *fcfcs_req_hash = NULL;
+static wmem_map_t *fcfcs_req_hash;
/*
* Hash Functions
diff --git a/epan/dissectors/packet-fcfzs.c b/epan/dissectors/packet-fcfzs.c
index 1f1cf3ffdf..88345a5ed4 100644
--- a/epan/dissectors/packet-fcfzs.c
+++ b/epan/dissectors/packet-fcfzs.c
@@ -9,6 +9,10 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
+/*
+ * Fibre Channel Generic Services (FC-GS) specification.
+ */
+
#include "config.h"
#include <epan/packet.h>
@@ -71,7 +75,7 @@ typedef struct _fcfzs_conv_data {
guint32 opcode;
} fcfzs_conv_data_t;
-static wmem_map_t *fcfzs_req_hash = NULL;
+static wmem_map_t *fcfzs_req_hash;
/*
* Hash Functions
@@ -116,9 +120,13 @@ dissect_fcfzs_zoneset(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int o
len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(tree, hf_fcfzs_zonesetnmlen, tvb, offset,
1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_fcfzs_zonesetname, tvb, offset+4,
+ offset += 4;
+ proto_tree_add_item(tree, hf_fcfzs_zonesetname, tvb, offset,
len, ENC_ASCII);
- offset += 4 + len + (4-(len % 4));
+ offset += len;
+ /* Fill Bytes */
+ if (len % 4)
+ offset += 4 - (len % 4);
/* Number of zones */
@@ -131,9 +139,13 @@ dissect_fcfzs_zoneset(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int o
len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(tree, hf_fcfzs_zonenmlen, tvb, offset,
1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_fcfzs_zonename, tvb, offset+4,
+ offset += 4;
+ proto_tree_add_item(tree, hf_fcfzs_zonename, tvb, offset,
len, ENC_ASCII);
- offset += 4 + len + (4-(len % 4));
+ offset += len;
+ /* Fill Bytes */
+ if (len % 4)
+ offset += 4 - (len % 4);
nummbrs = tvb_get_ntohl(tvb, offset);
proto_tree_add_item(tree, hf_fcfzs_nummbrentries, tvb, offset,
diff --git a/epan/dissectors/packet-fcip.c b/epan/dissectors/packet-fcip.c
index 153290e394..e4ba383b68 100644
--- a/epan/dissectors/packet-fcip.c
+++ b/epan/dissectors/packet-fcip.c
@@ -119,7 +119,7 @@ static int hf_fcip_conn_flags;
static int ett_fcip;
static guint fcip_port = 3225;
-static gboolean fcip_desegment = TRUE;
+static bool fcip_desegment = true;
static dissector_handle_t fc_handle;
static dissector_handle_t fcip_handle;
@@ -381,7 +381,7 @@ dissect_fcip (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
else if (offset == -2) {
/* We need more data to desegment */
- return (TRUE);
+ return TRUE;
}
start = offset;
@@ -401,7 +401,7 @@ dissect_fcip (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
pinfo->desegment_offset = offset;
pinfo->desegment_len = frame_len - bytes_remaining;
- return (TRUE);
+ return TRUE;
}
}
@@ -498,7 +498,7 @@ dissect_fcip (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
bytes_remaining -= frame_len;
}
- return (TRUE);
+ return TRUE;
}
/* This is called for those sessions where we have explicitly said
diff --git a/epan/dissectors/packet-fcswils.c b/epan/dissectors/packet-fcswils.c
index bfbe858756..93932fb988 100644
--- a/epan/dissectors/packet-fcswils.c
+++ b/epan/dissectors/packet-fcswils.c
@@ -434,7 +434,7 @@ typedef struct _fcswils_conv_data {
guint32 opcode;
} fcswils_conv_data_t;
-static wmem_map_t *fcswils_req_hash = NULL;
+static wmem_map_t *fcswils_req_hash;
/* list of commands for each commandset */
typedef void (*fcswils_dissector_t)(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, guint8 isreq);
diff --git a/epan/dissectors/packet-fddi.c b/epan/dissectors/packet-fddi.c
index 09572a0665..d7e6fe47b0 100644
--- a/epan/dissectors/packet-fddi.c
+++ b/epan/dissectors/packet-fddi.c
@@ -48,7 +48,7 @@ static dissector_handle_t fddi_handle, fddi_bitswapped_handle;
static capture_dissector_handle_t llc_cap_handle;
-static gboolean fddi_padding = FALSE;
+static bool fddi_padding;
#define FDDI_PADDING ((fddi_padding) ? 3 : 0)
@@ -192,7 +192,7 @@ fddi_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, con
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
capture_fddi(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
int fc;
diff --git a/epan/dissectors/packet-fix.c b/epan/dissectors/packet-fix.c
index 04b965271c..aa5fb1187b 100644
--- a/epan/dissectors/packet-fix.c
+++ b/epan/dissectors/packet-fix.c
@@ -41,7 +41,7 @@ typedef struct _fix_parameter {
static int proto_fix;
/* desegmentation of fix */
-static gboolean fix_desegment = TRUE;
+static bool fix_desegment = true;
/* Initialize the subtree pointers */
static gint ett_fix;
@@ -83,21 +83,11 @@ static void dissect_fix_init(void) {
}
static int
-tag_search(int key)
+fix_field_tag_compar(const void *v_needle, const void *v_entry)
{
- int lower = 0, upper = array_length(fix_fields) -1;
- while (lower <= upper) {
- int middle = (lower + upper) / 2;
- int res = fix_fields[middle].tag;
- if (res < key) {
- lower = middle + 1;
- } else if (res == key) {
- return middle;
- } else {
- upper = middle - 1;
- }
- }
- return -1;
+ int key = *(const int *)v_needle;
+ int entry_tag = ((const fix_field *)v_entry)->tag;
+ return key > entry_tag ? 1 : (key < entry_tag ? -1 : 0);
}
/* Code to actually dissect the packets */
@@ -270,7 +260,7 @@ dissect_fix_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
field_offset = 0;
while(field_offset < pdu_len && (tag = fix_param(tvb, field_offset)) ) {
- int i, found;
+ const fix_field *field;
if (tag->tag_len < 1) {
field_offset = tag->ctrla_offset + 1;
@@ -298,20 +288,19 @@ dissect_fix_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
}
/* fix_fields array is sorted by tag_value */
- found = 0;
- if ((i = tag_search(tag_value)) >= 0) {
- found = 1;
- }
+ field = bsearch(&tag_value, fix_fields, array_length(fix_fields), sizeof *fix_fields, fix_field_tag_compar);
value = tvb_get_string_enc(pinfo->pool, tvb, tag->value_offset, tag->value_len, ENC_ASCII);
ivalue_valid = ws_strtoi32(value, NULL, &ivalue);
- if (found) {
- if (fix_fields[i].table) {
+ if (field) {
+ int hf = fix_hf[field - fix_fields];
+
+ if (field->table) {
if (tree) {
- switch (fix_fields[i].type) {
+ switch (field->type) {
case 1: /* strings */
- proto_tree_add_string_format_value(fix_tree, fix_fields[i].hf_id, tvb, field_offset, tag->field_len, value,
- "%s (%s)", value, str_to_str(value, (const string_string *)fix_fields[i].table, "unknown %s"));
+ proto_tree_add_string_format_value(fix_tree, hf, tvb, field_offset, tag->field_len, value,
+ "%s (%s)", value, str_to_str(value, (const string_string *)field->table, "unknown %s"));
if (tag_value == 35) {
/* Make message type part of the Info column */
msg_type = str_to_str(value, messages_val, "FIX Message (%s)");
@@ -320,16 +309,16 @@ dissect_fix_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
}
break;
case 2: /* char */
- proto_tree_add_string_format_value(fix_tree, fix_fields[i].hf_id, tvb, field_offset, tag->field_len, value,
- "%s (%s)", value, val_to_str(*value, (const value_string *)fix_fields[i].table, "unknown %d"));
+ proto_tree_add_string_format_value(fix_tree, hf, tvb, field_offset, tag->field_len, value,
+ "%s (%s)", value, val_to_str(*value, (const value_string *)field->table, "unknown %d"));
break;
default:
if (ivalue_valid)
- proto_tree_add_string_format_value(fix_tree, fix_fields[i].hf_id, tvb, field_offset, tag->field_len, value,
- "%s (%s)", value, val_to_str(ivalue, (const value_string *)fix_fields[i].table, "unknown %d"));
+ proto_tree_add_string_format_value(fix_tree, hf, tvb, field_offset, tag->field_len, value,
+ "%s (%s)", value, val_to_str(ivalue, (const value_string *)field->table, "unknown %d"));
else {
- pi = proto_tree_add_string(fix_tree, fix_fields[i].hf_id, tvb, field_offset, tag->field_len, value);
- expert_add_info_format(pinfo, pi, &ei_fix_field_invalid, "Invalid string %s for fix field %u", value, i);
+ pi = proto_tree_add_string(fix_tree, hf, tvb, field_offset, tag->field_len, value);
+ expert_add_info_format(pinfo, pi, &ei_fix_field_invalid, "Invalid string %s for fix field tag %i", value, field->tag);
}
break;
}
@@ -353,11 +342,11 @@ dissect_fix_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
}
sum_ok = (ivalue == sum);
if (sum_ok) {
- item = proto_tree_add_string_format_value(fix_tree, fix_fields[i].hf_id, tvb, field_offset, tag->field_len,
+ item = proto_tree_add_string_format_value(fix_tree, hf, tvb, field_offset, tag->field_len,
value, "%s [correct]", value);
}
else {
- item = proto_tree_add_string_format_value(fix_tree, fix_fields[i].hf_id, tvb, field_offset, tag->field_len,
+ item = proto_tree_add_string_format_value(fix_tree, hf, tvb, field_offset, tag->field_len,
value, "%s [incorrect should be %d]", value, sum);
}
checksum_tree = proto_item_add_subtree(item, ett_checksum);
@@ -370,7 +359,7 @@ dissect_fix_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
}
break;
default:
- proto_tree_add_string(fix_tree, fix_fields[i].hf_id, tvb, field_offset, tag->field_len, value);
+ proto_tree_add_string(fix_tree, hf, tvb, field_offset, tag->field_len, value);
break;
}
}
diff --git a/epan/dissectors/packet-fix.h b/epan/dissectors/packet-fix.h
index 1411d4e35f..1665fc4865 100644
--- a/epan/dissectors/packet-fix.h
+++ b/epan/dissectors/packet-fix.h
@@ -6,7 +6,6 @@
typedef struct _fix_field {
int tag; /* FIX tag */
- int hf_id;
int type; /* */
const void *table;
} fix_field;
@@ -4934,9668 +4933,9669 @@ typedef struct _fix_field {
};
-static fix_field fix_fields[] = {
-
- { 1, -1, 0, NULL }, /* Account */
- { 2, -1, 0, NULL }, /* AdvId */
- { 3, -1, 0, NULL }, /* AdvRefID */
- { 4, -1, 2, AdvSide_val },
- { 5, -1, 1, AdvTransType_val },
- { 6, -1, 0, NULL }, /* AvgPx */
- { 7, -1, 0, NULL }, /* BeginSeqNo */
- { 8, -1, 0, NULL }, /* BeginString */
- { 9, -1, 0, NULL }, /* BodyLength */
- { 10, -1, 0, NULL }, /* CheckSum */
- { 11, -1, 0, NULL }, /* ClOrdID */
- { 12, -1, 0, NULL }, /* Commission */
- { 13, -1, 2, CommType_val },
- { 14, -1, 0, NULL }, /* CumQty */
- { 15, -1, 0, NULL }, /* Currency */
- { 16, -1, 0, NULL }, /* EndSeqNo */
- { 17, -1, 0, NULL }, /* ExecID */
- { 18, -1, 2, ExecInst_val },
- { 19, -1, 0, NULL }, /* ExecRefID */
- { 20, -1, 2, ExecTransType_val },
- { 21, -1, 2, HandlInst_val },
- { 22, -1, 1, SecurityIDSource_val },
- { 23, -1, 0, NULL }, /* IOIID */
- { 24, -1, 0, NULL }, /* IOIOthSvc */
- { 25, -1, 2, IOIQltyInd_val },
- { 26, -1, 0, NULL }, /* IOIRefID */
- { 27, -1, 1, IOIQty_val },
- { 28, -1, 2, IOITransType_val },
- { 29, -1, 2, LastCapacity_val },
- { 30, -1, 0, NULL }, /* LastMkt */
- { 31, -1, 0, NULL }, /* LastPx */
- { 32, -1, 0, NULL }, /* LastQty */
- { 33, -1, 0, NULL }, /* NoLinesOfText */
- { 34, -1, 0, NULL }, /* MsgSeqNum */
- { 35, -1, 1, MsgType_val },
- { 36, -1, 0, NULL }, /* NewSeqNo */
- { 37, -1, 0, NULL }, /* OrderID */
- { 38, -1, 0, NULL }, /* OrderQty */
- { 39, -1, 2, OrdStatus_val },
- { 40, -1, 2, OrdType_val },
- { 41, -1, 0, NULL }, /* OrigClOrdID */
- { 42, -1, 0, NULL }, /* OrigTime */
- { 43, -1, 2, PossDupFlag_val },
- { 44, -1, 0, NULL }, /* Price */
- { 45, -1, 0, NULL }, /* RefSeqNum */
- { 46, -1, 0, NULL }, /* RelatdSym */
- { 47, -1, 2, Rule80A_val },
- { 48, -1, 0, NULL }, /* SecurityID */
- { 49, -1, 0, NULL }, /* SenderCompID */
- { 50, -1, 0, NULL }, /* SenderSubID */
- { 51, -1, 0, NULL }, /* SendingDate */
- { 52, -1, 0, NULL }, /* SendingTime */
- { 53, -1, 0, NULL }, /* Quantity */
- { 54, -1, 2, Side_val },
- { 55, -1, 0, NULL }, /* Symbol */
- { 56, -1, 0, NULL }, /* TargetCompID */
- { 57, -1, 0, NULL }, /* TargetSubID */
- { 58, -1, 0, NULL }, /* Text */
- { 59, -1, 2, TimeInForce_val },
- { 60, -1, 0, NULL }, /* TransactTime */
- { 61, -1, 2, Urgency_val },
- { 62, -1, 0, NULL }, /* ValidUntilTime */
- { 63, -1, 1, SettlType_val },
- { 64, -1, 0, NULL }, /* SettlDate */
- { 65, -1, 1, SymbolSfx_val },
- { 66, -1, 0, NULL }, /* ListID */
- { 67, -1, 0, NULL }, /* ListSeqNo */
- { 68, -1, 0, NULL }, /* TotNoOrders */
- { 69, -1, 0, NULL }, /* ListExecInst */
- { 70, -1, 0, NULL }, /* AllocID */
- { 71, -1, 2, AllocTransType_val },
- { 72, -1, 0, NULL }, /* RefAllocID */
- { 73, -1, 0, NULL }, /* NoOrders */
- { 74, -1, 0, NULL }, /* AvgPxPrecision */
- { 75, -1, 0, NULL }, /* TradeDate */
- { 76, -1, 0, NULL }, /* ExecBroker */
- { 77, -1, 2, PositionEffect_val },
- { 78, -1, 0, NULL }, /* NoAllocs */
- { 79, -1, 0, NULL }, /* AllocAccount */
- { 80, -1, 0, NULL }, /* AllocQty */
- { 81, -1, 2, ProcessCode_val },
- { 82, -1, 0, NULL }, /* NoRpts */
- { 83, -1, 0, NULL }, /* RptSeq */
- { 84, -1, 0, NULL }, /* CxlQty */
- { 85, -1, 0, NULL }, /* NoDlvyInst */
- { 86, -1, 0, NULL }, /* DlvyInst */
- { 87, -1, 0, AllocStatus_val },
- { 88, -1, 0, AllocRejCode_val },
- { 89, -1, 0, NULL }, /* Signature */
- { 90, -1, 0, NULL }, /* SecureDataLen */
- { 91, -1, 0, NULL }, /* SecureData */
- { 92, -1, 0, NULL }, /* BrokerOfCredit */
- { 93, -1, 0, NULL }, /* SignatureLength */
- { 94, -1, 2, EmailType_val },
- { 95, -1, 0, NULL }, /* RawDataLength */
- { 96, -1, 0, NULL }, /* RawData */
- { 97, -1, 2, PossResend_val },
- { 98, -1, 0, EncryptMethod_val },
- { 99, -1, 0, NULL }, /* StopPx */
- { 100, -1, 0, NULL }, /* ExDestination */
- { 102, -1, 0, CxlRejReason_val },
- { 103, -1, 0, OrdRejReason_val },
- { 104, -1, 2, IOIQualifier_val },
- { 105, -1, 0, NULL }, /* WaveNo */
- { 106, -1, 0, NULL }, /* Issuer */
- { 107, -1, 0, NULL }, /* SecurityDesc */
- { 108, -1, 0, NULL }, /* HeartBtInt */
- { 109, -1, 0, NULL }, /* ClientID */
- { 110, -1, 0, NULL }, /* MinQty */
- { 111, -1, 0, NULL }, /* MaxFloor */
- { 112, -1, 0, NULL }, /* TestReqID */
- { 113, -1, 2, ReportToExch_val },
- { 114, -1, 2, LocateReqd_val },
- { 115, -1, 0, NULL }, /* OnBehalfOfCompID */
- { 116, -1, 0, NULL }, /* OnBehalfOfSubID */
- { 117, -1, 0, NULL }, /* QuoteID */
- { 118, -1, 0, NULL }, /* NetMoney */
- { 119, -1, 0, NULL }, /* SettlCurrAmt */
- { 120, -1, 0, NULL }, /* SettlCurrency */
- { 121, -1, 2, ForexReq_val },
- { 122, -1, 0, NULL }, /* OrigSendingTime */
- { 123, -1, 2, GapFillFlag_val },
- { 124, -1, 0, NULL }, /* NoExecs */
- { 125, -1, 0, NULL }, /* CxlType */
- { 126, -1, 0, NULL }, /* ExpireTime */
- { 127, -1, 2, DKReason_val },
- { 128, -1, 0, NULL }, /* DeliverToCompID */
- { 129, -1, 0, NULL }, /* DeliverToSubID */
- { 130, -1, 2, IOINaturalFlag_val },
- { 131, -1, 0, NULL }, /* QuoteReqID */
- { 132, -1, 0, NULL }, /* BidPx */
- { 133, -1, 0, NULL }, /* OfferPx */
- { 134, -1, 0, NULL }, /* BidSize */
- { 135, -1, 0, NULL }, /* OfferSize */
- { 136, -1, 0, NULL }, /* NoMiscFees */
- { 137, -1, 0, NULL }, /* MiscFeeAmt */
- { 138, -1, 0, NULL }, /* MiscFeeCurr */
- { 139, -1, 1, MiscFeeType_val },
- { 140, -1, 0, NULL }, /* PrevClosePx */
- { 141, -1, 2, ResetSeqNumFlag_val },
- { 142, -1, 0, NULL }, /* SenderLocationID */
- { 143, -1, 0, NULL }, /* TargetLocationID */
- { 144, -1, 0, NULL }, /* OnBehalfOfLocationID */
- { 145, -1, 0, NULL }, /* DeliverToLocationID */
- { 146, -1, 0, NULL }, /* NoRelatedSym */
- { 147, -1, 0, NULL }, /* Subject */
- { 148, -1, 0, NULL }, /* Headline */
- { 149, -1, 0, NULL }, /* URLLink */
- { 150, -1, 2, ExecType_val },
- { 151, -1, 0, NULL }, /* LeavesQty */
- { 152, -1, 0, NULL }, /* CashOrderQty */
- { 153, -1, 0, NULL }, /* AllocAvgPx */
- { 154, -1, 0, NULL }, /* AllocNetMoney */
- { 155, -1, 0, NULL }, /* SettlCurrFxRate */
- { 156, -1, 2, SettlCurrFxRateCalc_val },
- { 157, -1, 0, NULL }, /* NumDaysInterest */
- { 158, -1, 0, NULL }, /* AccruedInterestRate */
- { 159, -1, 0, NULL }, /* AccruedInterestAmt */
- { 160, -1, 2, SettlInstMode_val },
- { 161, -1, 0, NULL }, /* AllocText */
- { 162, -1, 0, NULL }, /* SettlInstID */
- { 163, -1, 2, SettlInstTransType_val },
- { 164, -1, 0, NULL }, /* EmailThreadID */
- { 165, -1, 2, SettlInstSource_val },
- { 166, -1, 1, SettlLocation_val },
- { 167, -1, 1, SecurityType_val },
- { 168, -1, 0, NULL }, /* EffectiveTime */
- { 169, -1, 0, StandInstDbType_val },
- { 170, -1, 0, NULL }, /* StandInstDbName */
- { 171, -1, 0, NULL }, /* StandInstDbID */
- { 172, -1, 0, SettlDeliveryType_val },
- { 173, -1, 0, NULL }, /* SettlDepositoryCode */
- { 174, -1, 0, NULL }, /* SettlBrkrCode */
- { 175, -1, 0, NULL }, /* SettlInstCode */
- { 176, -1, 0, NULL }, /* SecuritySettlAgentName */
- { 177, -1, 0, NULL }, /* SecuritySettlAgentCode */
- { 178, -1, 0, NULL }, /* SecuritySettlAgentAcctNum */
- { 179, -1, 0, NULL }, /* SecuritySettlAgentAcctName */
- { 180, -1, 0, NULL }, /* SecuritySettlAgentContactName */
- { 181, -1, 0, NULL }, /* SecuritySettlAgentContactPhone */
- { 182, -1, 0, NULL }, /* CashSettlAgentName */
- { 183, -1, 0, NULL }, /* CashSettlAgentCode */
- { 184, -1, 0, NULL }, /* CashSettlAgentAcctNum */
- { 185, -1, 0, NULL }, /* CashSettlAgentAcctName */
- { 186, -1, 0, NULL }, /* CashSettlAgentContactName */
- { 187, -1, 0, NULL }, /* CashSettlAgentContactPhone */
- { 188, -1, 0, NULL }, /* BidSpotRate */
- { 189, -1, 0, NULL }, /* BidForwardPoints */
- { 190, -1, 0, NULL }, /* OfferSpotRate */
- { 191, -1, 0, NULL }, /* OfferForwardPoints */
- { 192, -1, 0, NULL }, /* OrderQty2 */
- { 193, -1, 0, NULL }, /* SettlDate2 */
- { 194, -1, 0, NULL }, /* LastSpotRate */
- { 195, -1, 0, NULL }, /* LastForwardPoints */
- { 196, -1, 0, NULL }, /* AllocLinkID */
- { 197, -1, 0, AllocLinkType_val },
- { 198, -1, 0, NULL }, /* SecondaryOrderID */
- { 199, -1, 0, NULL }, /* NoIOIQualifiers */
- { 200, -1, 0, NULL }, /* MaturityMonthYear */
- { 201, -1, 0, PutOrCall_val },
- { 202, -1, 0, NULL }, /* StrikePrice */
- { 203, -1, 0, CoveredOrUncovered_val },
- { 204, -1, 0, CustomerOrFirm_val },
- { 205, -1, 0, NULL }, /* MaturityDay */
- { 206, -1, 0, NULL }, /* OptAttribute */
- { 207, -1, 0, NULL }, /* SecurityExchange */
- { 208, -1, 2, NotifyBrokerOfCredit_val },
- { 209, -1, 0, AllocHandlInst_val },
- { 210, -1, 0, NULL }, /* MaxShow */
- { 211, -1, 0, NULL }, /* PegOffsetValue */
- { 212, -1, 0, NULL }, /* XmlDataLen */
- { 213, -1, 0, NULL }, /* XmlData */
- { 214, -1, 0, NULL }, /* SettlInstRefID */
- { 215, -1, 0, NULL }, /* NoRoutingIDs */
- { 216, -1, 0, RoutingType_val },
- { 217, -1, 0, NULL }, /* RoutingID */
- { 218, -1, 0, NULL }, /* Spread */
- { 219, -1, 2, Benchmark_val },
- { 220, -1, 0, NULL }, /* BenchmarkCurveCurrency */
- { 221, -1, 1, BenchmarkCurveName_val },
- { 222, -1, 0, NULL }, /* BenchmarkCurvePoint */
- { 223, -1, 0, NULL }, /* CouponRate */
- { 224, -1, 0, NULL }, /* CouponPaymentDate */
- { 225, -1, 0, NULL }, /* IssueDate */
- { 226, -1, 0, NULL }, /* RepurchaseTerm */
- { 227, -1, 0, NULL }, /* RepurchaseRate */
- { 228, -1, 0, NULL }, /* Factor */
- { 229, -1, 0, NULL }, /* TradeOriginationDate */
- { 230, -1, 0, NULL }, /* ExDate */
- { 231, -1, 0, NULL }, /* ContractMultiplier */
- { 232, -1, 0, NULL }, /* NoStipulations */
- { 233, -1, 1, StipulationType_val },
- { 234, -1, 1, StipulationValue_val },
- { 235, -1, 1, YieldType_val },
- { 236, -1, 0, NULL }, /* Yield */
- { 237, -1, 0, NULL }, /* TotalTakedown */
- { 238, -1, 0, NULL }, /* Concession */
- { 239, -1, 0, NULL }, /* RepoCollateralSecurityType */
- { 240, -1, 0, NULL }, /* RedemptionDate */
- { 241, -1, 0, NULL }, /* UnderlyingCouponPaymentDate */
- { 242, -1, 0, NULL }, /* UnderlyingIssueDate */
- { 243, -1, 0, NULL }, /* UnderlyingRepoCollateralSecurityType */
- { 244, -1, 0, NULL }, /* UnderlyingRepurchaseTerm */
- { 245, -1, 0, NULL }, /* UnderlyingRepurchaseRate */
- { 246, -1, 0, NULL }, /* UnderlyingFactor */
- { 247, -1, 0, NULL }, /* UnderlyingRedemptionDate */
- { 248, -1, 0, NULL }, /* LegCouponPaymentDate */
- { 249, -1, 0, NULL }, /* LegIssueDate */
- { 250, -1, 0, NULL }, /* LegRepoCollateralSecurityType */
- { 251, -1, 0, NULL }, /* LegRepurchaseTerm */
- { 252, -1, 0, NULL }, /* LegRepurchaseRate */
- { 253, -1, 0, NULL }, /* LegFactor */
- { 254, -1, 0, NULL }, /* LegRedemptionDate */
- { 255, -1, 0, NULL }, /* CreditRating */
- { 256, -1, 0, NULL }, /* UnderlyingCreditRating */
- { 257, -1, 0, NULL }, /* LegCreditRating */
- { 258, -1, 2, TradedFlatSwitch_val },
- { 259, -1, 0, NULL }, /* BasisFeatureDate */
- { 260, -1, 0, NULL }, /* BasisFeaturePrice */
- { 262, -1, 0, NULL }, /* MDReqID */
- { 263, -1, 2, SubscriptionRequestType_val },
- { 264, -1, 0, NULL }, /* MarketDepth */
- { 265, -1, 0, MDUpdateType_val },
- { 266, -1, 2, AggregatedBook_val },
- { 267, -1, 0, NULL }, /* NoMDEntryTypes */
- { 268, -1, 0, NULL }, /* NoMDEntries */
- { 269, -1, 2, MDEntryType_val },
- { 270, -1, 0, NULL }, /* MDEntryPx */
- { 271, -1, 0, NULL }, /* MDEntrySize */
- { 272, -1, 0, NULL }, /* MDEntryDate */
- { 273, -1, 0, NULL }, /* MDEntryTime */
- { 274, -1, 2, TickDirection_val },
- { 275, -1, 0, NULL }, /* MDMkt */
- { 276, -1, 2, QuoteCondition_val },
- { 277, -1, 2, TradeCondition_val },
- { 278, -1, 0, NULL }, /* MDEntryID */
- { 279, -1, 2, MDUpdateAction_val },
- { 280, -1, 0, NULL }, /* MDEntryRefID */
- { 281, -1, 2, MDReqRejReason_val },
- { 282, -1, 0, NULL }, /* MDEntryOriginator */
- { 283, -1, 0, NULL }, /* LocationID */
- { 284, -1, 0, NULL }, /* DeskID */
- { 285, -1, 2, DeleteReason_val },
- { 286, -1, 2, OpenCloseSettlFlag_val },
- { 287, -1, 0, NULL }, /* SellerDays */
- { 288, -1, 0, NULL }, /* MDEntryBuyer */
- { 289, -1, 0, NULL }, /* MDEntrySeller */
- { 290, -1, 0, NULL }, /* MDEntryPositionNo */
- { 291, -1, 2, FinancialStatus_val },
- { 292, -1, 2, CorporateAction_val },
- { 293, -1, 0, NULL }, /* DefBidSize */
- { 294, -1, 0, NULL }, /* DefOfferSize */
- { 295, -1, 0, NULL }, /* NoQuoteEntries */
- { 296, -1, 0, NULL }, /* NoQuoteSets */
- { 297, -1, 0, QuoteStatus_val },
- { 298, -1, 0, QuoteCancelType_val },
- { 299, -1, 0, NULL }, /* QuoteEntryID */
- { 300, -1, 0, QuoteRejectReason_val },
- { 301, -1, 0, QuoteResponseLevel_val },
- { 302, -1, 0, NULL }, /* QuoteSetID */
- { 303, -1, 0, QuoteRequestType_val },
- { 304, -1, 0, NULL }, /* TotNoQuoteEntries */
- { 305, -1, 0, NULL }, /* UnderlyingSecurityIDSource */
- { 306, -1, 0, NULL }, /* UnderlyingIssuer */
- { 307, -1, 0, NULL }, /* UnderlyingSecurityDesc */
- { 308, -1, 0, NULL }, /* UnderlyingSecurityExchange */
- { 309, -1, 0, NULL }, /* UnderlyingSecurityID */
- { 310, -1, 0, NULL }, /* UnderlyingSecurityType */
- { 311, -1, 0, NULL }, /* UnderlyingSymbol */
- { 312, -1, 0, NULL }, /* UnderlyingSymbolSfx */
- { 313, -1, 0, NULL }, /* UnderlyingMaturityMonthYear */
- { 314, -1, 0, NULL }, /* UnderlyingMaturityDay */
- { 315, -1, 0, NULL }, /* UnderlyingPutOrCall */
- { 316, -1, 0, NULL }, /* UnderlyingStrikePrice */
- { 317, -1, 0, NULL }, /* UnderlyingOptAttribute */
- { 318, -1, 0, NULL }, /* UnderlyingCurrency */
- { 319, -1, 0, NULL }, /* RatioQty */
- { 320, -1, 0, NULL }, /* SecurityReqID */
- { 321, -1, 0, SecurityRequestType_val },
- { 322, -1, 0, NULL }, /* SecurityResponseID */
- { 323, -1, 0, SecurityResponseType_val },
- { 324, -1, 0, NULL }, /* SecurityStatusReqID */
- { 325, -1, 2, UnsolicitedIndicator_val },
- { 326, -1, 0, SecurityTradingStatus_val },
- { 327, -1, 0, HaltReasonInt_val },
- { 328, -1, 2, InViewOfCommon_val },
- { 329, -1, 2, DueToRelated_val },
- { 330, -1, 0, NULL }, /* BuyVolume */
- { 331, -1, 0, NULL }, /* SellVolume */
- { 332, -1, 0, NULL }, /* HighPx */
- { 333, -1, 0, NULL }, /* LowPx */
- { 334, -1, 0, Adjustment_val },
- { 335, -1, 0, NULL }, /* TradSesReqID */
- { 336, -1, 1, TradingSessionID_val },
- { 337, -1, 0, NULL }, /* ContraTrader */
- { 338, -1, 0, TradSesMethod_val },
- { 339, -1, 0, TradSesMode_val },
- { 340, -1, 0, TradSesStatus_val },
- { 341, -1, 0, NULL }, /* TradSesStartTime */
- { 342, -1, 0, NULL }, /* TradSesOpenTime */
- { 343, -1, 0, NULL }, /* TradSesPreCloseTime */
- { 344, -1, 0, NULL }, /* TradSesCloseTime */
- { 345, -1, 0, NULL }, /* TradSesEndTime */
- { 346, -1, 0, NULL }, /* NumberOfOrders */
- { 347, -1, 1, MessageEncoding_val },
- { 348, -1, 0, NULL }, /* EncodedIssuerLen */
- { 349, -1, 0, NULL }, /* EncodedIssuer */
- { 350, -1, 0, NULL }, /* EncodedSecurityDescLen */
- { 351, -1, 0, NULL }, /* EncodedSecurityDesc */
- { 352, -1, 0, NULL }, /* EncodedListExecInstLen */
- { 353, -1, 0, NULL }, /* EncodedListExecInst */
- { 354, -1, 0, NULL }, /* EncodedTextLen */
- { 355, -1, 0, NULL }, /* EncodedText */
- { 356, -1, 0, NULL }, /* EncodedSubjectLen */
- { 357, -1, 0, NULL }, /* EncodedSubject */
- { 358, -1, 0, NULL }, /* EncodedHeadlineLen */
- { 359, -1, 0, NULL }, /* EncodedHeadline */
- { 360, -1, 0, NULL }, /* EncodedAllocTextLen */
- { 361, -1, 0, NULL }, /* EncodedAllocText */
- { 362, -1, 0, NULL }, /* EncodedUnderlyingIssuerLen */
- { 363, -1, 0, NULL }, /* EncodedUnderlyingIssuer */
- { 364, -1, 0, NULL }, /* EncodedUnderlyingSecurityDescLen */
- { 365, -1, 0, NULL }, /* EncodedUnderlyingSecurityDesc */
- { 366, -1, 0, NULL }, /* AllocPrice */
- { 367, -1, 0, NULL }, /* QuoteSetValidUntilTime */
- { 368, -1, 0, NULL }, /* QuoteEntryRejectReason */
- { 369, -1, 0, NULL }, /* LastMsgSeqNumProcessed */
- { 370, -1, 0, NULL }, /* OnBehalfOfSendingTime */
- { 371, -1, 0, NULL }, /* RefTagID */
- { 372, -1, 0, NULL }, /* RefMsgType */
- { 373, -1, 0, SessionRejectReason_val },
- { 374, -1, 2, BidRequestTransType_val },
- { 375, -1, 0, NULL }, /* ContraBroker */
- { 376, -1, 0, NULL }, /* ComplianceID */
- { 377, -1, 2, SolicitedFlag_val },
- { 378, -1, 0, ExecRestatementReason_val },
- { 379, -1, 0, NULL }, /* BusinessRejectRefID */
- { 380, -1, 0, BusinessRejectReason_val },
- { 381, -1, 0, NULL }, /* GrossTradeAmt */
- { 382, -1, 0, NULL }, /* NoContraBrokers */
- { 383, -1, 0, NULL }, /* MaxMessageSize */
- { 384, -1, 0, NULL }, /* NoMsgTypes */
- { 385, -1, 2, MsgDirection_val },
- { 386, -1, 0, NULL }, /* NoTradingSessions */
- { 387, -1, 0, NULL }, /* TotalVolumeTraded */
- { 388, -1, 2, DiscretionInst_val },
- { 389, -1, 0, NULL }, /* DiscretionOffsetValue */
- { 390, -1, 0, NULL }, /* BidID */
- { 391, -1, 0, NULL }, /* ClientBidID */
- { 392, -1, 0, NULL }, /* ListName */
- { 393, -1, 0, NULL }, /* TotNoRelatedSym */
- { 394, -1, 0, BidType_val },
- { 395, -1, 0, NULL }, /* NumTickets */
- { 396, -1, 0, NULL }, /* SideValue1 */
- { 397, -1, 0, NULL }, /* SideValue2 */
- { 398, -1, 0, NULL }, /* NoBidDescriptors */
- { 399, -1, 0, BidDescriptorType_val },
- { 400, -1, 0, NULL }, /* BidDescriptor */
- { 401, -1, 0, SideValueInd_val },
- { 402, -1, 0, NULL }, /* LiquidityPctLow */
- { 403, -1, 0, NULL }, /* LiquidityPctHigh */
- { 404, -1, 0, NULL }, /* LiquidityValue */
- { 405, -1, 0, NULL }, /* EFPTrackingError */
- { 406, -1, 0, NULL }, /* FairValue */
- { 407, -1, 0, NULL }, /* OutsideIndexPct */
- { 408, -1, 0, NULL }, /* ValueOfFutures */
- { 409, -1, 0, LiquidityIndType_val },
- { 410, -1, 0, NULL }, /* WtAverageLiquidity */
- { 411, -1, 2, ExchangeForPhysical_val },
- { 412, -1, 0, NULL }, /* OutMainCntryUIndex */
- { 413, -1, 0, NULL }, /* CrossPercent */
- { 414, -1, 0, ProgRptReqs_val },
- { 415, -1, 0, NULL }, /* ProgPeriodInterval */
- { 416, -1, 0, IncTaxInd_val },
- { 417, -1, 0, NULL }, /* NumBidders */
- { 418, -1, 2, BidTradeType_val },
- { 419, -1, 2, BasisPxType_val },
- { 420, -1, 0, NULL }, /* NoBidComponents */
- { 421, -1, 0, NULL }, /* Country */
- { 422, -1, 0, NULL }, /* TotNoStrikes */
- { 423, -1, 0, PriceType_val },
- { 424, -1, 0, NULL }, /* DayOrderQty */
- { 425, -1, 0, NULL }, /* DayCumQty */
- { 426, -1, 0, NULL }, /* DayAvgPx */
- { 427, -1, 0, GTBookingInst_val },
- { 428, -1, 0, NULL }, /* NoStrikes */
- { 429, -1, 0, ListStatusType_val },
- { 430, -1, 0, NetGrossInd_val },
- { 431, -1, 0, ListOrderStatus_val },
- { 432, -1, 0, NULL }, /* ExpireDate */
- { 433, -1, 2, ListExecInstType_val },
- { 434, -1, 2, CxlRejResponseTo_val },
- { 435, -1, 0, NULL }, /* UnderlyingCouponRate */
- { 436, -1, 0, NULL }, /* UnderlyingContractMultiplier */
- { 437, -1, 0, NULL }, /* ContraTradeQty */
- { 438, -1, 0, NULL }, /* ContraTradeTime */
- { 439, -1, 0, NULL }, /* ClearingFirm */
- { 440, -1, 0, NULL }, /* ClearingAccount */
- { 441, -1, 0, NULL }, /* LiquidityNumSecurities */
- { 442, -1, 2, MultiLegReportingType_val },
- { 443, -1, 0, NULL }, /* StrikeTime */
- { 444, -1, 0, NULL }, /* ListStatusText */
- { 445, -1, 0, NULL }, /* EncodedListStatusTextLen */
- { 446, -1, 0, NULL }, /* EncodedListStatusText */
- { 447, -1, 2, PartyIDSource_val },
- { 448, -1, 0, NULL }, /* PartyID */
- { 449, -1, 0, NULL }, /* TotalVolumeTradedDate */
- { 450, -1, 0, NULL }, /* TotalVolumeTradedTime */
- { 451, -1, 0, NULL }, /* NetChgPrevDay */
- { 452, -1, 0, PartyRole_val },
- { 453, -1, 0, NULL }, /* NoPartyIDs */
- { 454, -1, 0, NULL }, /* NoSecurityAltID */
- { 455, -1, 0, NULL }, /* SecurityAltID */
- { 456, -1, 0, NULL }, /* SecurityAltIDSource */
- { 457, -1, 0, NULL }, /* NoUnderlyingSecurityAltID */
- { 458, -1, 0, NULL }, /* UnderlyingSecurityAltID */
- { 459, -1, 0, NULL }, /* UnderlyingSecurityAltIDSource */
- { 460, -1, 0, Product_val },
- { 461, -1, 0, NULL }, /* CFICode */
- { 462, -1, 0, NULL }, /* UnderlyingProduct */
- { 463, -1, 0, NULL }, /* UnderlyingCFICode */
- { 464, -1, 2, TestMessageIndicator_val },
- { 465, -1, 0, QuantityType_val },
- { 466, -1, 0, NULL }, /* BookingRefID */
- { 467, -1, 0, NULL }, /* IndividualAllocID */
- { 468, -1, 2, RoundingDirection_val },
- { 469, -1, 0, NULL }, /* RoundingModulus */
- { 470, -1, 0, NULL }, /* CountryOfIssue */
- { 471, -1, 0, NULL }, /* StateOrProvinceOfIssue */
- { 472, -1, 0, NULL }, /* LocaleOfIssue */
- { 473, -1, 0, NULL }, /* NoRegistDtls */
- { 474, -1, 0, NULL }, /* MailingDtls */
- { 475, -1, 0, NULL }, /* InvestorCountryOfResidence */
- { 476, -1, 0, NULL }, /* PaymentRef */
- { 477, -1, 0, DistribPaymentMethod_val },
- { 478, -1, 0, NULL }, /* CashDistribCurr */
- { 479, -1, 0, NULL }, /* CommCurrency */
- { 480, -1, 2, CancellationRights_val },
- { 481, -1, 2, MoneyLaunderingStatus_val },
- { 482, -1, 0, NULL }, /* MailingInst */
- { 483, -1, 0, NULL }, /* TransBkdTime */
- { 484, -1, 2, ExecPriceType_val },
- { 485, -1, 0, NULL }, /* ExecPriceAdjustment */
- { 486, -1, 0, NULL }, /* DateOfBirth */
- { 487, -1, 0, TradeReportTransType_val },
- { 488, -1, 0, NULL }, /* CardHolderName */
- { 489, -1, 0, NULL }, /* CardNumber */
- { 490, -1, 0, NULL }, /* CardExpDate */
- { 491, -1, 0, NULL }, /* CardIssNum */
- { 492, -1, 0, PaymentMethod_val },
- { 493, -1, 0, NULL }, /* RegistAcctType */
- { 494, -1, 0, NULL }, /* Designation */
- { 495, -1, 0, TaxAdvantageType_val },
- { 496, -1, 0, NULL }, /* RegistRejReasonText */
- { 497, -1, 2, FundRenewWaiv_val },
- { 498, -1, 0, NULL }, /* CashDistribAgentName */
- { 499, -1, 0, NULL }, /* CashDistribAgentCode */
- { 500, -1, 0, NULL }, /* CashDistribAgentAcctNumber */
- { 501, -1, 0, NULL }, /* CashDistribPayRef */
- { 502, -1, 0, NULL }, /* CashDistribAgentAcctName */
- { 503, -1, 0, NULL }, /* CardStartDate */
- { 504, -1, 0, NULL }, /* PaymentDate */
- { 505, -1, 0, NULL }, /* PaymentRemitterID */
- { 506, -1, 2, RegistStatus_val },
- { 507, -1, 0, RegistRejReasonCode_val },
- { 508, -1, 0, NULL }, /* RegistRefID */
- { 509, -1, 0, NULL }, /* RegistDtls */
- { 510, -1, 0, NULL }, /* NoDistribInsts */
- { 511, -1, 0, NULL }, /* RegistEmail */
- { 512, -1, 0, NULL }, /* DistribPercentage */
- { 513, -1, 0, NULL }, /* RegistID */
- { 514, -1, 2, RegistTransType_val },
- { 515, -1, 0, NULL }, /* ExecValuationPoint */
- { 516, -1, 0, NULL }, /* OrderPercent */
- { 517, -1, 2, OwnershipType_val },
- { 518, -1, 0, NULL }, /* NoContAmts */
- { 519, -1, 0, ContAmtType_val },
- { 520, -1, 0, NULL }, /* ContAmtValue */
- { 521, -1, 0, NULL }, /* ContAmtCurr */
- { 522, -1, 0, OwnerType_val },
- { 523, -1, 0, NULL }, /* PartySubID */
- { 524, -1, 0, NULL }, /* NestedPartyID */
- { 525, -1, 0, NULL }, /* NestedPartyIDSource */
- { 526, -1, 0, NULL }, /* SecondaryClOrdID */
- { 527, -1, 0, NULL }, /* SecondaryExecID */
- { 528, -1, 2, OrderCapacity_val },
- { 529, -1, 2, OrderRestrictions_val },
- { 530, -1, 2, MassCancelRequestType_val },
- { 531, -1, 2, MassCancelResponse_val },
- { 532, -1, 0, MassCancelRejectReason_val },
- { 533, -1, 0, NULL }, /* TotalAffectedOrders */
- { 534, -1, 0, NULL }, /* NoAffectedOrders */
- { 535, -1, 0, NULL }, /* AffectedOrderID */
- { 536, -1, 0, NULL }, /* AffectedSecondaryOrderID */
- { 537, -1, 0, QuoteType_val },
- { 538, -1, 0, NULL }, /* NestedPartyRole */
- { 539, -1, 0, NULL }, /* NoNestedPartyIDs */
- { 540, -1, 0, NULL }, /* TotalAccruedInterestAmt */
- { 541, -1, 0, NULL }, /* MaturityDate */
- { 542, -1, 0, NULL }, /* UnderlyingMaturityDate */
- { 543, -1, 0, NULL }, /* InstrRegistry */
- { 544, -1, 2, CashMargin_val },
- { 545, -1, 0, NULL }, /* NestedPartySubID */
- { 546, -1, 2, Scope_val },
- { 547, -1, 2, MDImplicitDelete_val },
- { 548, -1, 0, NULL }, /* CrossID */
- { 549, -1, 0, CrossType_val },
- { 550, -1, 0, CrossPrioritization_val },
- { 551, -1, 0, NULL }, /* OrigCrossID */
- { 552, -1, 2, NoSides_val },
- { 553, -1, 0, NULL }, /* Username */
- { 554, -1, 0, NULL }, /* Password */
- { 555, -1, 0, NULL }, /* NoLegs */
- { 556, -1, 0, NULL }, /* LegCurrency */
- { 557, -1, 0, NULL }, /* TotNoSecurityTypes */
- { 558, -1, 0, NULL }, /* NoSecurityTypes */
- { 559, -1, 0, SecurityListRequestType_val },
- { 560, -1, 0, SecurityRequestResult_val },
- { 561, -1, 0, NULL }, /* RoundLot */
- { 562, -1, 0, NULL }, /* MinTradeVol */
- { 563, -1, 0, MultiLegRptTypeReq_val },
- { 564, -1, 0, NULL }, /* LegPositionEffect */
- { 565, -1, 0, NULL }, /* LegCoveredOrUncovered */
- { 566, -1, 0, NULL }, /* LegPrice */
- { 567, -1, 0, TradSesStatusRejReason_val },
- { 568, -1, 0, NULL }, /* TradeRequestID */
- { 569, -1, 0, TradeRequestType_val },
- { 570, -1, 2, PreviouslyReported_val },
- { 571, -1, 0, NULL }, /* TradeReportID */
- { 572, -1, 0, NULL }, /* TradeReportRefID */
- { 573, -1, 2, MatchStatus_val },
- { 574, -1, 1, MatchType_val },
- { 575, -1, 2, OddLot_val },
- { 576, -1, 0, NULL }, /* NoClearingInstructions */
- { 577, -1, 0, ClearingInstruction_val },
- { 578, -1, 0, NULL }, /* TradeInputSource */
- { 579, -1, 0, NULL }, /* TradeInputDevice */
- { 580, -1, 0, NULL }, /* NoDates */
- { 581, -1, 0, AccountType_val },
- { 582, -1, 0, CustOrderCapacity_val },
- { 583, -1, 0, NULL }, /* ClOrdLinkID */
- { 584, -1, 0, NULL }, /* MassStatusReqID */
- { 585, -1, 0, MassStatusReqType_val },
- { 586, -1, 0, NULL }, /* OrigOrdModTime */
- { 587, -1, 0, NULL }, /* LegSettlType */
- { 588, -1, 0, NULL }, /* LegSettlDate */
- { 589, -1, 2, DayBookingInst_val },
- { 590, -1, 2, BookingUnit_val },
- { 591, -1, 2, PreallocMethod_val },
- { 592, -1, 0, NULL }, /* UnderlyingCountryOfIssue */
- { 593, -1, 0, NULL }, /* UnderlyingStateOrProvinceOfIssue */
- { 594, -1, 0, NULL }, /* UnderlyingLocaleOfIssue */
- { 595, -1, 0, NULL }, /* UnderlyingInstrRegistry */
- { 596, -1, 0, NULL }, /* LegCountryOfIssue */
- { 597, -1, 0, NULL }, /* LegStateOrProvinceOfIssue */
- { 598, -1, 0, NULL }, /* LegLocaleOfIssue */
- { 599, -1, 0, NULL }, /* LegInstrRegistry */
- { 600, -1, 0, NULL }, /* LegSymbol */
- { 601, -1, 0, NULL }, /* LegSymbolSfx */
- { 602, -1, 0, NULL }, /* LegSecurityID */
- { 603, -1, 0, NULL }, /* LegSecurityIDSource */
- { 604, -1, 0, NULL }, /* NoLegSecurityAltID */
- { 605, -1, 0, NULL }, /* LegSecurityAltID */
- { 606, -1, 0, NULL }, /* LegSecurityAltIDSource */
- { 607, -1, 0, NULL }, /* LegProduct */
- { 608, -1, 0, NULL }, /* LegCFICode */
- { 609, -1, 0, NULL }, /* LegSecurityType */
- { 610, -1, 0, NULL }, /* LegMaturityMonthYear */
- { 611, -1, 0, NULL }, /* LegMaturityDate */
- { 612, -1, 0, NULL }, /* LegStrikePrice */
- { 613, -1, 0, NULL }, /* LegOptAttribute */
- { 614, -1, 0, NULL }, /* LegContractMultiplier */
- { 615, -1, 0, NULL }, /* LegCouponRate */
- { 616, -1, 0, NULL }, /* LegSecurityExchange */
- { 617, -1, 0, NULL }, /* LegIssuer */
- { 618, -1, 0, NULL }, /* EncodedLegIssuerLen */
- { 619, -1, 0, NULL }, /* EncodedLegIssuer */
- { 620, -1, 0, NULL }, /* LegSecurityDesc */
- { 621, -1, 0, NULL }, /* EncodedLegSecurityDescLen */
- { 622, -1, 0, NULL }, /* EncodedLegSecurityDesc */
- { 623, -1, 0, NULL }, /* LegRatioQty */
- { 624, -1, 0, NULL }, /* LegSide */
- { 625, -1, 1, TradingSessionSubID_val },
- { 626, -1, 0, AllocType_val },
- { 627, -1, 0, NULL }, /* NoHops */
- { 628, -1, 0, NULL }, /* HopCompID */
- { 629, -1, 0, NULL }, /* HopSendingTime */
- { 630, -1, 0, NULL }, /* HopRefID */
- { 631, -1, 0, NULL }, /* MidPx */
- { 632, -1, 0, NULL }, /* BidYield */
- { 633, -1, 0, NULL }, /* MidYield */
- { 634, -1, 0, NULL }, /* OfferYield */
- { 635, -1, 1, ClearingFeeIndicator_val },
- { 636, -1, 2, WorkingIndicator_val },
- { 637, -1, 0, NULL }, /* LegLastPx */
- { 638, -1, 0, PriorityIndicator_val },
- { 639, -1, 0, NULL }, /* PriceImprovement */
- { 640, -1, 0, NULL }, /* Price2 */
- { 641, -1, 0, NULL }, /* LastForwardPoints2 */
- { 642, -1, 0, NULL }, /* BidForwardPoints2 */
- { 643, -1, 0, NULL }, /* OfferForwardPoints2 */
- { 644, -1, 0, NULL }, /* RFQReqID */
- { 645, -1, 0, NULL }, /* MktBidPx */
- { 646, -1, 0, NULL }, /* MktOfferPx */
- { 647, -1, 0, NULL }, /* MinBidSize */
- { 648, -1, 0, NULL }, /* MinOfferSize */
- { 649, -1, 0, NULL }, /* QuoteStatusReqID */
- { 650, -1, 2, LegalConfirm_val },
- { 651, -1, 0, NULL }, /* UnderlyingLastPx */
- { 652, -1, 0, NULL }, /* UnderlyingLastQty */
- { 653, -1, 0, SecDefStatus_val },
- { 654, -1, 0, NULL }, /* LegRefID */
- { 655, -1, 0, NULL }, /* ContraLegRefID */
- { 656, -1, 0, NULL }, /* SettlCurrBidFxRate */
- { 657, -1, 0, NULL }, /* SettlCurrOfferFxRate */
- { 658, -1, 0, QuoteRequestRejectReason_val },
- { 659, -1, 0, NULL }, /* SideComplianceID */
- { 660, -1, 0, AcctIDSource_val },
- { 661, -1, 0, NULL }, /* AllocAcctIDSource */
- { 662, -1, 0, NULL }, /* BenchmarkPrice */
- { 663, -1, 0, NULL }, /* BenchmarkPriceType */
- { 664, -1, 0, NULL }, /* ConfirmID */
- { 665, -1, 0, ConfirmStatus_val },
- { 666, -1, 0, ConfirmTransType_val },
- { 667, -1, 0, NULL }, /* ContractSettlMonth */
- { 668, -1, 0, DeliveryForm_val },
- { 669, -1, 0, NULL }, /* LastParPx */
- { 670, -1, 0, NULL }, /* NoLegAllocs */
- { 671, -1, 0, NULL }, /* LegAllocAccount */
- { 672, -1, 0, NULL }, /* LegIndividualAllocID */
- { 673, -1, 0, NULL }, /* LegAllocQty */
- { 674, -1, 0, NULL }, /* LegAllocAcctIDSource */
- { 675, -1, 0, NULL }, /* LegSettlCurrency */
- { 676, -1, 0, NULL }, /* LegBenchmarkCurveCurrency */
- { 677, -1, 0, NULL }, /* LegBenchmarkCurveName */
- { 678, -1, 0, NULL }, /* LegBenchmarkCurvePoint */
- { 679, -1, 0, NULL }, /* LegBenchmarkPrice */
- { 680, -1, 0, NULL }, /* LegBenchmarkPriceType */
- { 681, -1, 0, NULL }, /* LegBidPx */
- { 682, -1, 0, NULL }, /* LegIOIQty */
- { 683, -1, 0, NULL }, /* NoLegStipulations */
- { 684, -1, 0, NULL }, /* LegOfferPx */
- { 685, -1, 0, NULL }, /* LegOrderQty */
- { 686, -1, 0, NULL }, /* LegPriceType */
- { 687, -1, 0, NULL }, /* LegQty */
- { 688, -1, 0, NULL }, /* LegStipulationType */
- { 689, -1, 0, NULL }, /* LegStipulationValue */
- { 690, -1, 0, LegSwapType_val },
- { 691, -1, 0, NULL }, /* Pool */
- { 692, -1, 0, QuotePriceType_val },
- { 693, -1, 0, NULL }, /* QuoteRespID */
- { 694, -1, 0, QuoteRespType_val },
- { 695, -1, 0, NULL }, /* QuoteQualifier */
- { 696, -1, 0, NULL }, /* YieldRedemptionDate */
- { 697, -1, 0, NULL }, /* YieldRedemptionPrice */
- { 698, -1, 0, NULL }, /* YieldRedemptionPriceType */
- { 699, -1, 0, NULL }, /* BenchmarkSecurityID */
- { 700, -1, 0, NULL }, /* ReversalIndicator */
- { 701, -1, 0, NULL }, /* YieldCalcDate */
- { 702, -1, 0, NULL }, /* NoPositions */
- { 703, -1, 1, PosType_val },
- { 704, -1, 0, NULL }, /* LongQty */
- { 705, -1, 0, NULL }, /* ShortQty */
- { 706, -1, 0, PosQtyStatus_val },
- { 707, -1, 1, PosAmtType_val },
- { 708, -1, 0, NULL }, /* PosAmt */
- { 709, -1, 0, PosTransType_val },
- { 710, -1, 0, NULL }, /* PosReqID */
- { 711, -1, 0, NULL }, /* NoUnderlyings */
- { 712, -1, 0, PosMaintAction_val },
- { 713, -1, 0, NULL }, /* OrigPosReqRefID */
- { 714, -1, 0, NULL }, /* PosMaintRptRefID */
- { 715, -1, 0, NULL }, /* ClearingBusinessDate */
- { 716, -1, 1, SettlSessID_val },
- { 717, -1, 0, NULL }, /* SettlSessSubID */
- { 718, -1, 0, AdjustmentType_val },
- { 719, -1, 0, NULL }, /* ContraryInstructionIndicator */
- { 720, -1, 0, NULL }, /* PriorSpreadIndicator */
- { 721, -1, 0, NULL }, /* PosMaintRptID */
- { 722, -1, 0, PosMaintStatus_val },
- { 723, -1, 0, PosMaintResult_val },
- { 724, -1, 0, PosReqType_val },
- { 725, -1, 0, ResponseTransportType_val },
- { 726, -1, 0, NULL }, /* ResponseDestination */
- { 727, -1, 0, NULL }, /* TotalNumPosReports */
- { 728, -1, 0, PosReqResult_val },
- { 729, -1, 0, PosReqStatus_val },
- { 730, -1, 0, NULL }, /* SettlPrice */
- { 731, -1, 0, SettlPriceType_val },
- { 732, -1, 0, NULL }, /* UnderlyingSettlPrice */
- { 733, -1, 0, NULL }, /* UnderlyingSettlPriceType */
- { 734, -1, 0, NULL }, /* PriorSettlPrice */
- { 735, -1, 0, NULL }, /* NoQuoteQualifiers */
- { 736, -1, 0, NULL }, /* AllocSettlCurrency */
- { 737, -1, 0, NULL }, /* AllocSettlCurrAmt */
- { 738, -1, 0, NULL }, /* InterestAtMaturity */
- { 739, -1, 0, NULL }, /* LegDatedDate */
- { 740, -1, 0, NULL }, /* LegPool */
- { 741, -1, 0, NULL }, /* AllocInterestAtMaturity */
- { 742, -1, 0, NULL }, /* AllocAccruedInterestAmt */
- { 743, -1, 0, NULL }, /* DeliveryDate */
- { 744, -1, 2, AssignmentMethod_val },
- { 745, -1, 0, NULL }, /* AssignmentUnit */
- { 746, -1, 0, NULL }, /* OpenInterest */
- { 747, -1, 2, ExerciseMethod_val },
- { 748, -1, 0, NULL }, /* TotNumTradeReports */
- { 749, -1, 0, TradeRequestResult_val },
- { 750, -1, 0, TradeRequestStatus_val },
- { 751, -1, 0, TradeReportRejectReason_val },
- { 752, -1, 0, SideMultiLegReportingType_val },
- { 753, -1, 0, NULL }, /* NoPosAmt */
- { 754, -1, 0, NULL }, /* AutoAcceptIndicator */
- { 755, -1, 0, NULL }, /* AllocReportID */
- { 756, -1, 0, NULL }, /* NoNested2PartyIDs */
- { 757, -1, 0, NULL }, /* Nested2PartyID */
- { 758, -1, 0, NULL }, /* Nested2PartyIDSource */
- { 759, -1, 0, NULL }, /* Nested2PartyRole */
- { 760, -1, 0, NULL }, /* Nested2PartySubID */
- { 761, -1, 0, NULL }, /* BenchmarkSecurityIDSource */
- { 762, -1, 0, NULL }, /* SecuritySubType */
- { 763, -1, 0, NULL }, /* UnderlyingSecuritySubType */
- { 764, -1, 0, NULL }, /* LegSecuritySubType */
- { 765, -1, 0, NULL }, /* AllowableOneSidednessPct */
- { 766, -1, 0, NULL }, /* AllowableOneSidednessValue */
- { 767, -1, 0, NULL }, /* AllowableOneSidednessCurr */
- { 768, -1, 0, NULL }, /* NoTrdRegTimestamps */
- { 769, -1, 0, NULL }, /* TrdRegTimestamp */
- { 770, -1, 0, TrdRegTimestampType_val },
- { 771, -1, 0, NULL }, /* TrdRegTimestampOrigin */
- { 772, -1, 0, NULL }, /* ConfirmRefID */
- { 773, -1, 0, ConfirmType_val },
- { 774, -1, 0, ConfirmRejReason_val },
- { 775, -1, 0, BookingType_val },
- { 776, -1, 0, NULL }, /* IndividualAllocRejCode */
- { 777, -1, 0, NULL }, /* SettlInstMsgID */
- { 778, -1, 0, NULL }, /* NoSettlInst */
- { 779, -1, 0, NULL }, /* LastUpdateTime */
- { 780, -1, 0, AllocSettlInstType_val },
- { 781, -1, 0, NULL }, /* NoSettlPartyIDs */
- { 782, -1, 0, NULL }, /* SettlPartyID */
- { 783, -1, 0, NULL }, /* SettlPartyIDSource */
- { 784, -1, 0, NULL }, /* SettlPartyRole */
- { 785, -1, 0, NULL }, /* SettlPartySubID */
- { 786, -1, 0, NULL }, /* SettlPartySubIDType */
- { 787, -1, 2, DlvyInstType_val },
- { 788, -1, 0, TerminationType_val },
- { 789, -1, 0, NULL }, /* NextExpectedMsgSeqNum */
- { 790, -1, 0, NULL }, /* OrdStatusReqID */
- { 791, -1, 0, NULL }, /* SettlInstReqID */
- { 792, -1, 0, SettlInstReqRejCode_val },
- { 793, -1, 0, NULL }, /* SecondaryAllocID */
- { 794, -1, 0, AllocReportType_val },
- { 795, -1, 0, NULL }, /* AllocReportRefID */
- { 796, -1, 0, AllocCancReplaceReason_val },
- { 797, -1, 0, NULL }, /* CopyMsgIndicator */
- { 798, -1, 0, AllocAccountType_val },
- { 799, -1, 0, NULL }, /* OrderAvgPx */
- { 800, -1, 0, NULL }, /* OrderBookingQty */
- { 801, -1, 0, NULL }, /* NoSettlPartySubIDs */
- { 802, -1, 0, NULL }, /* NoPartySubIDs */
- { 803, -1, 0, PartySubIDType_val },
- { 804, -1, 0, NULL }, /* NoNestedPartySubIDs */
- { 805, -1, 0, NULL }, /* NestedPartySubIDType */
- { 806, -1, 0, NULL }, /* NoNested2PartySubIDs */
- { 807, -1, 0, NULL }, /* Nested2PartySubIDType */
- { 808, -1, 0, AllocIntermedReqType_val },
- { 810, -1, 0, NULL }, /* UnderlyingPx */
- { 811, -1, 0, NULL }, /* PriceDelta */
- { 812, -1, 0, NULL }, /* ApplQueueMax */
- { 813, -1, 0, NULL }, /* ApplQueueDepth */
- { 814, -1, 0, ApplQueueResolution_val },
- { 815, -1, 0, ApplQueueAction_val },
- { 816, -1, 0, NULL }, /* NoAltMDSource */
- { 817, -1, 0, NULL }, /* AltMDSourceID */
- { 818, -1, 0, NULL }, /* SecondaryTradeReportID */
- { 819, -1, 0, AvgPxIndicator_val },
- { 820, -1, 0, NULL }, /* TradeLinkID */
- { 821, -1, 0, NULL }, /* OrderInputDevice */
- { 822, -1, 0, NULL }, /* UnderlyingTradingSessionID */
- { 823, -1, 0, NULL }, /* UnderlyingTradingSessionSubID */
- { 824, -1, 0, NULL }, /* TradeLegRefID */
- { 825, -1, 0, NULL }, /* ExchangeRule */
- { 826, -1, 0, TradeAllocIndicator_val },
- { 827, -1, 0, ExpirationCycle_val },
- { 828, -1, 0, TrdType_val },
- { 829, -1, 0, TrdSubType_val },
- { 830, -1, 0, NULL }, /* TransferReason */
- { 831, -1, 0, NULL }, /* AsgnReqID */
- { 832, -1, 0, NULL }, /* TotNumAssignmentReports */
- { 833, -1, 0, NULL }, /* AsgnRptID */
- { 834, -1, 0, NULL }, /* ThresholdAmount */
- { 835, -1, 0, PegMoveType_val },
- { 836, -1, 0, PegOffsetType_val },
- { 837, -1, 0, PegLimitType_val },
- { 838, -1, 0, PegRoundDirection_val },
- { 839, -1, 0, NULL }, /* PeggedPrice */
- { 840, -1, 0, PegScope_val },
- { 841, -1, 0, DiscretionMoveType_val },
- { 842, -1, 0, DiscretionOffsetType_val },
- { 843, -1, 0, DiscretionLimitType_val },
- { 844, -1, 0, DiscretionRoundDirection_val },
- { 845, -1, 0, NULL }, /* DiscretionPrice */
- { 846, -1, 0, DiscretionScope_val },
- { 847, -1, 0, TargetStrategy_val },
- { 848, -1, 0, NULL }, /* TargetStrategyParameters */
- { 849, -1, 0, NULL }, /* ParticipationRate */
- { 850, -1, 0, NULL }, /* TargetStrategyPerformance */
- { 851, -1, 0, LastLiquidityInd_val },
- { 852, -1, 2, PublishTrdIndicator_val },
- { 853, -1, 0, ShortSaleReason_val },
- { 854, -1, 0, QtyType_val },
- { 855, -1, 0, NULL }, /* SecondaryTrdType */
- { 856, -1, 0, TradeReportType_val },
- { 857, -1, 0, AllocNoOrdersType_val },
- { 858, -1, 0, NULL }, /* SharedCommission */
- { 859, -1, 0, NULL }, /* ConfirmReqID */
- { 860, -1, 0, NULL }, /* AvgParPx */
- { 861, -1, 0, NULL }, /* ReportedPx */
- { 862, -1, 0, NULL }, /* NoCapacities */
- { 863, -1, 0, NULL }, /* OrderCapacityQty */
- { 864, -1, 0, NULL }, /* NoEvents */
- { 865, -1, 0, EventType_val },
- { 866, -1, 0, NULL }, /* EventDate */
- { 867, -1, 0, NULL }, /* EventPx */
- { 868, -1, 0, NULL }, /* EventText */
- { 869, -1, 0, NULL }, /* PctAtRisk */
- { 870, -1, 0, NULL }, /* NoInstrAttrib */
- { 871, -1, 0, InstrAttribType_val },
- { 872, -1, 0, NULL }, /* InstrAttribValue */
- { 873, -1, 0, NULL }, /* DatedDate */
- { 874, -1, 0, NULL }, /* InterestAccrualDate */
- { 875, -1, 0, CPProgram_val },
- { 876, -1, 0, NULL }, /* CPRegType */
- { 877, -1, 0, NULL }, /* UnderlyingCPProgram */
- { 878, -1, 0, NULL }, /* UnderlyingCPRegType */
- { 879, -1, 0, NULL }, /* UnderlyingQty */
- { 880, -1, 0, NULL }, /* TrdMatchID */
- { 881, -1, 0, NULL }, /* SecondaryTradeReportRefID */
- { 882, -1, 0, NULL }, /* UnderlyingDirtyPrice */
- { 883, -1, 0, NULL }, /* UnderlyingEndPrice */
- { 884, -1, 0, NULL }, /* UnderlyingStartValue */
- { 885, -1, 0, NULL }, /* UnderlyingCurrentValue */
- { 886, -1, 0, NULL }, /* UnderlyingEndValue */
- { 887, -1, 0, NULL }, /* NoUnderlyingStips */
- { 888, -1, 0, NULL }, /* UnderlyingStipType */
- { 889, -1, 0, NULL }, /* UnderlyingStipValue */
- { 890, -1, 0, NULL }, /* MaturityNetMoney */
- { 891, -1, 0, MiscFeeBasis_val },
- { 892, -1, 0, NULL }, /* TotNoAllocs */
- { 893, -1, 2, LastFragment_val },
- { 894, -1, 0, NULL }, /* CollReqID */
- { 895, -1, 0, CollAsgnReason_val },
- { 896, -1, 0, CollInquiryQualifier_val },
- { 897, -1, 0, NULL }, /* NoTrades */
- { 898, -1, 0, NULL }, /* MarginRatio */
- { 899, -1, 0, NULL }, /* MarginExcess */
- { 900, -1, 0, NULL }, /* TotalNetValue */
- { 901, -1, 0, NULL }, /* CashOutstanding */
- { 902, -1, 0, NULL }, /* CollAsgnID */
- { 903, -1, 0, CollAsgnTransType_val },
- { 904, -1, 0, NULL }, /* CollRespID */
- { 905, -1, 0, CollAsgnRespType_val },
- { 906, -1, 0, CollAsgnRejectReason_val },
- { 907, -1, 0, NULL }, /* CollAsgnRefID */
- { 908, -1, 0, NULL }, /* CollRptID */
- { 909, -1, 0, NULL }, /* CollInquiryID */
- { 910, -1, 0, CollStatus_val },
- { 911, -1, 0, NULL }, /* TotNumReports */
- { 912, -1, 2, LastRptRequested_val },
- { 913, -1, 0, NULL }, /* AgreementDesc */
- { 914, -1, 0, NULL }, /* AgreementID */
- { 915, -1, 0, NULL }, /* AgreementDate */
- { 916, -1, 0, NULL }, /* StartDate */
- { 917, -1, 0, NULL }, /* EndDate */
- { 918, -1, 0, NULL }, /* AgreementCurrency */
- { 919, -1, 0, DeliveryType_val },
- { 920, -1, 0, NULL }, /* EndAccruedInterestAmt */
- { 921, -1, 0, NULL }, /* StartCash */
- { 922, -1, 0, NULL }, /* EndCash */
- { 923, -1, 0, NULL }, /* UserRequestID */
- { 924, -1, 0, UserRequestType_val },
- { 925, -1, 0, NULL }, /* NewPassword */
- { 926, -1, 0, UserStatus_val },
- { 927, -1, 0, NULL }, /* UserStatusText */
- { 928, -1, 0, StatusValue_val },
- { 929, -1, 0, NULL }, /* StatusText */
- { 930, -1, 0, NULL }, /* RefCompID */
- { 931, -1, 0, NULL }, /* RefSubID */
- { 932, -1, 0, NULL }, /* NetworkResponseID */
- { 933, -1, 0, NULL }, /* NetworkRequestID */
- { 934, -1, 0, NULL }, /* LastNetworkResponseID */
- { 935, -1, 0, NetworkRequestType_val },
- { 936, -1, 0, NULL }, /* NoCompIDs */
- { 937, -1, 0, NetworkStatusResponseType_val },
- { 938, -1, 0, NULL }, /* NoCollInquiryQualifier */
- { 939, -1, 0, TrdRptStatus_val },
- { 940, -1, 0, AffirmStatus_val },
- { 941, -1, 0, NULL }, /* UnderlyingStrikeCurrency */
- { 942, -1, 0, NULL }, /* LegStrikeCurrency */
- { 943, -1, 0, NULL }, /* TimeBracket */
- { 944, -1, 0, CollAction_val },
- { 945, -1, 0, CollInquiryStatus_val },
- { 946, -1, 0, CollInquiryResult_val },
- { 947, -1, 0, NULL }, /* StrikeCurrency */
- { 948, -1, 0, NULL }, /* NoNested3PartyIDs */
- { 949, -1, 0, NULL }, /* Nested3PartyID */
- { 950, -1, 0, NULL }, /* Nested3PartyIDSource */
- { 951, -1, 0, NULL }, /* Nested3PartyRole */
- { 952, -1, 0, NULL }, /* NoNested3PartySubIDs */
- { 953, -1, 0, NULL }, /* Nested3PartySubID */
- { 954, -1, 0, NULL }, /* Nested3PartySubIDType */
- { 955, -1, 0, NULL }, /* LegContractSettlMonth */
- { 956, -1, 0, NULL }, /* LegInterestAccrualDate */
- { 957, -1, 0, NULL }, /* NoStrategyParameters */
- { 958, -1, 0, NULL }, /* StrategyParameterName */
- { 959, -1, 0, StrategyParameterType_val },
- { 960, -1, 0, NULL }, /* StrategyParameterValue */
- { 961, -1, 0, NULL }, /* HostCrossID */
- { 962, -1, 0, NULL }, /* SideTimeInForce */
- { 963, -1, 0, NULL }, /* MDReportID */
- { 964, -1, 0, NULL }, /* SecurityReportID */
- { 965, -1, 1, SecurityStatus_val },
- { 966, -1, 0, NULL }, /* SettleOnOpenFlag */
- { 967, -1, 0, NULL }, /* StrikeMultiplier */
- { 968, -1, 0, NULL }, /* StrikeValue */
- { 969, -1, 0, NULL }, /* MinPriceIncrement */
- { 970, -1, 0, NULL }, /* PositionLimit */
- { 971, -1, 0, NULL }, /* NTPositionLimit */
- { 972, -1, 0, NULL }, /* UnderlyingAllocationPercent */
- { 973, -1, 0, NULL }, /* UnderlyingCashAmount */
- { 974, -1, 1, UnderlyingCashType_val },
- { 975, -1, 0, UnderlyingSettlementType_val },
- { 976, -1, 0, NULL }, /* QuantityDate */
- { 977, -1, 0, NULL }, /* ContIntRptID */
- { 978, -1, 0, NULL }, /* LateIndicator */
- { 979, -1, 0, NULL }, /* InputSource */
- { 980, -1, 2, SecurityUpdateAction_val },
- { 981, -1, 0, NULL }, /* NoExpiration */
- { 982, -1, 0, ExpirationQtyType_val },
- { 983, -1, 0, NULL }, /* ExpQty */
- { 984, -1, 0, NULL }, /* NoUnderlyingAmounts */
- { 985, -1, 0, NULL }, /* UnderlyingPayAmount */
- { 986, -1, 0, NULL }, /* UnderlyingCollectAmount */
- { 987, -1, 0, NULL }, /* UnderlyingSettlementDate */
- { 988, -1, 0, NULL }, /* UnderlyingSettlementStatus */
- { 989, -1, 0, NULL }, /* SecondaryIndividualAllocID */
- { 990, -1, 0, NULL }, /* LegReportID */
- { 991, -1, 0, NULL }, /* RndPx */
- { 992, -1, 0, IndividualAllocType_val },
- { 993, -1, 0, NULL }, /* AllocCustomerCapacity */
- { 994, -1, 0, NULL }, /* TierCode */
- { 996, -1, 1, UnitOfMeasure_val },
- { 997, -1, 1, TimeUnit_val },
- { 998, -1, 0, NULL }, /* UnderlyingUnitOfMeasure */
- { 999, -1, 0, NULL }, /* LegUnitOfMeasure */
- { 1000, -1, 0, NULL }, /* UnderlyingTimeUnit */
- { 1001, -1, 0, NULL }, /* LegTimeUnit */
- { 1002, -1, 0, AllocMethod_val },
- { 1003, -1, 0, NULL }, /* TradeID */
- { 1005, -1, 0, NULL }, /* SideTradeReportID */
- { 1006, -1, 0, NULL }, /* SideFillStationCd */
- { 1007, -1, 0, NULL }, /* SideReasonCd */
- { 1008, -1, 0, NULL }, /* SideTrdSubTyp */
- { 1009, -1, 0, NULL }, /* SideLastQty */
- { 1011, -1, 0, NULL }, /* MessageEventSource */
- { 1012, -1, 0, NULL }, /* SideTrdRegTimestamp */
- { 1013, -1, 0, NULL }, /* SideTrdRegTimestampType */
- { 1014, -1, 0, NULL }, /* SideTrdRegTimestampSrc */
- { 1015, -1, 2, AsOfIndicator_val },
- { 1016, -1, 0, NULL }, /* NoSideTrdRegTS */
- { 1017, -1, 0, NULL }, /* LegOptionRatio */
- { 1018, -1, 0, NULL }, /* NoInstrumentParties */
- { 1019, -1, 0, NULL }, /* InstrumentPartyID */
- { 1020, -1, 0, NULL }, /* TradeVolume */
- { 1021, -1, 0, MDBookType_val },
- { 1022, -1, 0, NULL }, /* MDFeedType */
- { 1023, -1, 0, NULL }, /* MDPriceLevel */
- { 1024, -1, 0, MDOriginType_val },
- { 1025, -1, 0, NULL }, /* FirstPx */
- { 1026, -1, 0, NULL }, /* MDEntrySpotRate */
- { 1027, -1, 0, NULL }, /* MDEntryForwardPoints */
- { 1028, -1, 0, NULL }, /* ManualOrderIndicator */
- { 1029, -1, 0, NULL }, /* CustDirectedOrder */
- { 1030, -1, 0, NULL }, /* ReceivedDeptID */
- { 1031, -1, 2, CustOrderHandlingInst_val },
- { 1032, -1, 0, OrderHandlingInstSource_val },
- { 1033, -1, 1, DeskType_val },
- { 1034, -1, 0, DeskTypeSource_val },
- { 1035, -1, 2, DeskOrderHandlingInst_val },
- { 1036, -1, 2, ExecAckStatus_val },
- { 1037, -1, 0, NULL }, /* UnderlyingDeliveryAmount */
- { 1038, -1, 0, NULL }, /* UnderlyingCapValue */
- { 1039, -1, 0, NULL }, /* UnderlyingSettlMethod */
- { 1040, -1, 0, NULL }, /* SecondaryTradeID */
- { 1041, -1, 0, NULL }, /* FirmTradeID */
- { 1042, -1, 0, NULL }, /* SecondaryFirmTradeID */
- { 1043, -1, 0, CollApplType_val },
- { 1044, -1, 0, NULL }, /* UnderlyingAdjustedQuantity */
- { 1045, -1, 0, NULL }, /* UnderlyingFXRate */
- { 1046, -1, 2, UnderlyingFXRateCalc_val },
- { 1047, -1, 2, AllocPositionEffect_val },
- { 1048, -1, 2, DealingCapacity_val },
- { 1049, -1, 0, NULL }, /* InstrmtAssignmentMethod */
- { 1050, -1, 0, NULL }, /* InstrumentPartyIDSource */
- { 1051, -1, 0, NULL }, /* InstrumentPartyRole */
- { 1052, -1, 0, NULL }, /* NoInstrumentPartySubIDs */
- { 1053, -1, 0, NULL }, /* InstrumentPartySubID */
- { 1054, -1, 0, NULL }, /* InstrumentPartySubIDType */
- { 1055, -1, 0, NULL }, /* PositionCurrency */
- { 1056, -1, 0, NULL }, /* CalculatedCcyLastQty */
- { 1057, -1, 2, AggressorIndicator_val },
- { 1058, -1, 0, NULL }, /* NoUndlyInstrumentParties */
- { 1059, -1, 0, NULL }, /* UnderlyingInstrumentPartyID */
- { 1060, -1, 0, NULL }, /* UnderlyingInstrumentPartyIDSource */
- { 1061, -1, 0, NULL }, /* UnderlyingInstrumentPartyRole */
- { 1062, -1, 0, NULL }, /* NoUndlyInstrumentPartySubIDs */
- { 1063, -1, 0, NULL }, /* UnderlyingInstrumentPartySubID */
- { 1064, -1, 0, NULL }, /* UnderlyingInstrumentPartySubIDType */
- { 1065, -1, 0, NULL }, /* BidSwapPoints */
- { 1066, -1, 0, NULL }, /* OfferSwapPoints */
- { 1067, -1, 0, NULL }, /* LegBidForwardPoints */
- { 1068, -1, 0, NULL }, /* LegOfferForwardPoints */
- { 1069, -1, 0, NULL }, /* SwapPoints */
- { 1070, -1, 0, MDQuoteType_val },
- { 1071, -1, 0, NULL }, /* LastSwapPoints */
- { 1072, -1, 0, NULL }, /* SideGrossTradeAmt */
- { 1073, -1, 0, NULL }, /* LegLastForwardPoints */
- { 1074, -1, 0, NULL }, /* LegCalculatedCcyLastQty */
- { 1075, -1, 0, NULL }, /* LegGrossTradeAmt */
- { 1079, -1, 0, NULL }, /* MaturityTime */
- { 1080, -1, 0, NULL }, /* RefOrderID */
- { 1081, -1, 2, RefOrderIDSource_val },
- { 1082, -1, 0, NULL }, /* SecondaryDisplayQty */
- { 1083, -1, 2, DisplayWhen_val },
- { 1084, -1, 2, DisplayMethod_val },
- { 1085, -1, 0, NULL }, /* DisplayLowQty */
- { 1086, -1, 0, NULL }, /* DisplayHighQty */
- { 1087, -1, 0, NULL }, /* DisplayMinIncr */
- { 1088, -1, 0, NULL }, /* RefreshQty */
- { 1089, -1, 0, NULL }, /* MatchIncrement */
- { 1090, -1, 0, NULL }, /* MaxPriceLevels */
- { 1091, -1, 0, NULL }, /* PreTradeAnonymity */
- { 1092, -1, 2, PriceProtectionScope_val },
- { 1093, -1, 2, LotType_val },
- { 1094, -1, 0, PegPriceType_val },
- { 1095, -1, 0, NULL }, /* PeggedRefPrice */
- { 1096, -1, 0, NULL }, /* PegSecurityIDSource */
- { 1097, -1, 0, NULL }, /* PegSecurityID */
- { 1098, -1, 0, NULL }, /* PegSymbol */
- { 1099, -1, 0, NULL }, /* PegSecurityDesc */
- { 1100, -1, 2, TriggerType_val },
- { 1101, -1, 2, TriggerAction_val },
- { 1102, -1, 0, NULL }, /* TriggerPrice */
- { 1103, -1, 0, NULL }, /* TriggerSymbol */
- { 1104, -1, 0, NULL }, /* TriggerSecurityID */
- { 1105, -1, 0, NULL }, /* TriggerSecurityIDSource */
- { 1106, -1, 0, NULL }, /* TriggerSecurityDesc */
- { 1107, -1, 2, TriggerPriceType_val },
- { 1108, -1, 2, TriggerPriceTypeScope_val },
- { 1109, -1, 2, TriggerPriceDirection_val },
- { 1110, -1, 0, NULL }, /* TriggerNewPrice */
- { 1111, -1, 2, TriggerOrderType_val },
- { 1112, -1, 0, NULL }, /* TriggerNewQty */
- { 1113, -1, 0, NULL }, /* TriggerTradingSessionID */
- { 1114, -1, 0, NULL }, /* TriggerTradingSessionSubID */
- { 1115, -1, 2, OrderCategory_val },
- { 1116, -1, 0, NULL }, /* NoRootPartyIDs */
- { 1117, -1, 0, NULL }, /* RootPartyID */
- { 1118, -1, 0, NULL }, /* RootPartyIDSource */
- { 1119, -1, 0, NULL }, /* RootPartyRole */
- { 1120, -1, 0, NULL }, /* NoRootPartySubIDs */
- { 1121, -1, 0, NULL }, /* RootPartySubID */
- { 1122, -1, 0, NULL }, /* RootPartySubIDType */
- { 1123, -1, 2, TradeHandlingInstr_val },
- { 1124, -1, 0, NULL }, /* OrigTradeHandlingInstr */
- { 1125, -1, 0, NULL }, /* OrigTradeDate */
- { 1126, -1, 0, NULL }, /* OrigTradeID */
- { 1127, -1, 0, NULL }, /* OrigSecondaryTradeID */
- { 1128, -1, 1, ApplVerID_val },
- { 1129, -1, 0, NULL }, /* CstmApplVerID */
- { 1130, -1, 0, NULL }, /* RefApplVerID */
- { 1131, -1, 0, NULL }, /* RefCstmApplVerID */
- { 1132, -1, 0, NULL }, /* TZTransactTime */
- { 1133, -1, 2, ExDestinationIDSource_val },
- { 1134, -1, 0, NULL }, /* ReportedPxDiff */
- { 1135, -1, 0, NULL }, /* RptSys */
- { 1136, -1, 0, NULL }, /* AllocClearingFeeIndicator */
- { 1137, -1, 0, NULL }, /* DefaultApplVerID */
- { 1138, -1, 0, NULL }, /* DisplayQty */
- { 1139, -1, 0, NULL }, /* ExchangeSpecialInstructions */
- { 1140, -1, 0, NULL }, /* MaxTradeVol */
- { 1141, -1, 0, NULL }, /* NoMDFeedTypes */
- { 1142, -1, 0, NULL }, /* MatchAlgorithm */
- { 1143, -1, 0, NULL }, /* MaxPriceVariation */
- { 1144, -1, 0, ImpliedMarketIndicator_val },
- { 1145, -1, 0, NULL }, /* EventTime */
- { 1146, -1, 0, NULL }, /* MinPriceIncrementAmount */
- { 1147, -1, 0, NULL }, /* UnitOfMeasureQty */
- { 1148, -1, 0, NULL }, /* LowLimitPrice */
- { 1149, -1, 0, NULL }, /* HighLimitPrice */
- { 1150, -1, 0, NULL }, /* TradingReferencePrice */
- { 1151, -1, 0, NULL }, /* SecurityGroup */
- { 1152, -1, 0, NULL }, /* LegNumber */
- { 1153, -1, 0, NULL }, /* SettlementCycleNo */
- { 1154, -1, 0, NULL }, /* SideCurrency */
- { 1155, -1, 0, NULL }, /* SideSettlCurrency */
- { 1156, -1, 0, NULL }, /* ApplExtID */
- { 1157, -1, 0, NULL }, /* CcyAmt */
- { 1158, -1, 0, NULL }, /* NoSettlDetails */
- { 1159, -1, 0, SettlObligMode_val },
- { 1160, -1, 0, NULL }, /* SettlObligMsgID */
- { 1161, -1, 0, NULL }, /* SettlObligID */
- { 1162, -1, 2, SettlObligTransType_val },
- { 1163, -1, 0, NULL }, /* SettlObligRefID */
- { 1164, -1, 2, SettlObligSource_val },
- { 1165, -1, 0, NULL }, /* NoSettlOblig */
- { 1166, -1, 0, NULL }, /* QuoteMsgID */
- { 1167, -1, 0, QuoteEntryStatus_val },
- { 1168, -1, 0, NULL }, /* TotNoCxldQuotes */
- { 1169, -1, 0, NULL }, /* TotNoAccQuotes */
- { 1170, -1, 0, NULL }, /* TotNoRejQuotes */
- { 1171, -1, 0, NULL }, /* PrivateQuote */
- { 1172, -1, 0, RespondentType_val },
- { 1173, -1, 0, NULL }, /* MDSubBookType */
- { 1174, -1, 0, SecurityTradingEvent_val },
- { 1175, -1, 0, NULL }, /* NoStatsIndicators */
- { 1176, -1, 0, StatsType_val },
- { 1177, -1, 0, NULL }, /* NoOfSecSizes */
- { 1178, -1, 0, MDSecSizeType_val },
- { 1179, -1, 0, NULL }, /* MDSecSize */
- { 1180, -1, 0, NULL }, /* ApplID */
- { 1181, -1, 0, NULL }, /* ApplSeqNum */
- { 1182, -1, 0, NULL }, /* ApplBegSeqNum */
- { 1183, -1, 0, NULL }, /* ApplEndSeqNum */
- { 1184, -1, 0, NULL }, /* SecurityXMLLen */
- { 1185, -1, 0, NULL }, /* SecurityXML */
- { 1186, -1, 0, NULL }, /* SecurityXMLSchema */
- { 1187, -1, 0, NULL }, /* RefreshIndicator */
- { 1188, -1, 0, NULL }, /* Volatility */
- { 1189, -1, 0, NULL }, /* TimeToExpiration */
- { 1190, -1, 0, NULL }, /* RiskFreeRate */
- { 1191, -1, 0, NULL }, /* PriceUnitOfMeasure */
- { 1192, -1, 0, NULL }, /* PriceUnitOfMeasureQty */
- { 1193, -1, 2, SettlMethod_val },
- { 1194, -1, 0, ExerciseStyle_val },
- { 1195, -1, 0, NULL }, /* OptPayoutAmount */
- { 1196, -1, 1, PriceQuoteMethod_val },
- { 1197, -1, 1, ValuationMethod_val },
- { 1198, -1, 0, ListMethod_val },
- { 1199, -1, 0, NULL }, /* CapPrice */
- { 1200, -1, 0, NULL }, /* FloorPrice */
- { 1201, -1, 0, NULL }, /* NoStrikeRules */
- { 1202, -1, 0, NULL }, /* StartStrikePxRange */
- { 1203, -1, 0, NULL }, /* EndStrikePxRange */
- { 1204, -1, 0, NULL }, /* StrikeIncrement */
- { 1205, -1, 0, NULL }, /* NoTickRules */
- { 1206, -1, 0, NULL }, /* StartTickPriceRange */
- { 1207, -1, 0, NULL }, /* EndTickPriceRange */
- { 1208, -1, 0, NULL }, /* TickIncrement */
- { 1209, -1, 0, TickRuleType_val },
- { 1210, -1, 0, NULL }, /* NestedInstrAttribType */
- { 1211, -1, 0, NULL }, /* NestedInstrAttribValue */
- { 1212, -1, 0, NULL }, /* LegMaturityTime */
- { 1213, -1, 0, NULL }, /* UnderlyingMaturityTime */
- { 1214, -1, 0, NULL }, /* DerivativeSymbol */
- { 1215, -1, 0, NULL }, /* DerivativeSymbolSfx */
- { 1216, -1, 0, NULL }, /* DerivativeSecurityID */
- { 1217, -1, 0, NULL }, /* DerivativeSecurityIDSource */
- { 1218, -1, 0, NULL }, /* NoDerivativeSecurityAltID */
- { 1219, -1, 0, NULL }, /* DerivativeSecurityAltID */
- { 1220, -1, 0, NULL }, /* DerivativeSecurityAltIDSource */
- { 1221, -1, 0, NULL }, /* SecondaryLowLimitPrice */
- { 1222, -1, 0, NULL }, /* MaturityRuleID */
- { 1223, -1, 0, NULL }, /* StrikeRuleID */
- { 1224, -1, 0, NULL }, /* LegUnitOfMeasureQty */
- { 1225, -1, 0, NULL }, /* DerivativeOptPayAmount */
- { 1226, -1, 0, NULL }, /* EndMaturityMonthYear */
- { 1227, -1, 0, NULL }, /* ProductComplex */
- { 1228, -1, 0, NULL }, /* DerivativeProductComplex */
- { 1229, -1, 0, NULL }, /* MaturityMonthYearIncrement */
- { 1230, -1, 0, NULL }, /* SecondaryHighLimitPrice */
- { 1231, -1, 0, NULL }, /* MinLotSize */
- { 1232, -1, 0, NULL }, /* NoExecInstRules */
- { 1234, -1, 0, NULL }, /* NoLotTypeRules */
- { 1235, -1, 0, NULL }, /* NoMatchRules */
- { 1236, -1, 0, NULL }, /* NoMaturityRules */
- { 1237, -1, 0, NULL }, /* NoOrdTypeRules */
- { 1239, -1, 0, NULL }, /* NoTimeInForceRules */
- { 1240, -1, 0, NULL }, /* SecondaryTradingReferencePrice */
- { 1241, -1, 0, NULL }, /* StartMaturityMonthYear */
- { 1242, -1, 0, NULL }, /* FlexProductEligibilityIndicator */
- { 1243, -1, 0, NULL }, /* DerivFlexProductEligibilityIndicator */
- { 1244, -1, 0, NULL }, /* FlexibleIndicator */
- { 1245, -1, 0, NULL }, /* TradingCurrency */
- { 1246, -1, 0, NULL }, /* DerivativeProduct */
- { 1247, -1, 0, NULL }, /* DerivativeSecurityGroup */
- { 1248, -1, 0, NULL }, /* DerivativeCFICode */
- { 1249, -1, 0, NULL }, /* DerivativeSecurityType */
- { 1250, -1, 0, NULL }, /* DerivativeSecuritySubType */
- { 1251, -1, 0, NULL }, /* DerivativeMaturityMonthYear */
- { 1252, -1, 0, NULL }, /* DerivativeMaturityDate */
- { 1253, -1, 0, NULL }, /* DerivativeMaturityTime */
- { 1254, -1, 0, NULL }, /* DerivativeSettleOnOpenFlag */
- { 1255, -1, 0, NULL }, /* DerivativeInstrmtAssignmentMethod */
- { 1256, -1, 0, NULL }, /* DerivativeSecurityStatus */
- { 1257, -1, 0, NULL }, /* DerivativeInstrRegistry */
- { 1258, -1, 0, NULL }, /* DerivativeCountryOfIssue */
- { 1259, -1, 0, NULL }, /* DerivativeStateOrProvinceOfIssue */
- { 1260, -1, 0, NULL }, /* DerivativeLocaleOfIssue */
- { 1261, -1, 0, NULL }, /* DerivativeStrikePrice */
- { 1262, -1, 0, NULL }, /* DerivativeStrikeCurrency */
- { 1263, -1, 0, NULL }, /* DerivativeStrikeMultiplier */
- { 1264, -1, 0, NULL }, /* DerivativeStrikeValue */
- { 1265, -1, 0, NULL }, /* DerivativeOptAttribute */
- { 1266, -1, 0, NULL }, /* DerivativeContractMultiplier */
- { 1267, -1, 0, NULL }, /* DerivativeMinPriceIncrement */
- { 1268, -1, 0, NULL }, /* DerivativeMinPriceIncrementAmount */
- { 1269, -1, 0, NULL }, /* DerivativeUnitOfMeasure */
- { 1270, -1, 0, NULL }, /* DerivativeUnitOfMeasureQty */
- { 1271, -1, 0, NULL }, /* DerivativeTimeUnit */
- { 1272, -1, 0, NULL }, /* DerivativeSecurityExchange */
- { 1273, -1, 0, NULL }, /* DerivativePositionLimit */
- { 1274, -1, 0, NULL }, /* DerivativeNTPositionLimit */
- { 1275, -1, 0, NULL }, /* DerivativeIssuer */
- { 1276, -1, 0, NULL }, /* DerivativeIssueDate */
- { 1277, -1, 0, NULL }, /* DerivativeEncodedIssuerLen */
- { 1278, -1, 0, NULL }, /* DerivativeEncodedIssuer */
- { 1279, -1, 0, NULL }, /* DerivativeSecurityDesc */
- { 1280, -1, 0, NULL }, /* DerivativeEncodedSecurityDescLen */
- { 1281, -1, 0, NULL }, /* DerivativeEncodedSecurityDesc */
- { 1282, -1, 0, NULL }, /* DerivativeSecurityXMLLen */
- { 1283, -1, 0, NULL }, /* DerivativeSecurityXML */
- { 1284, -1, 0, NULL }, /* DerivativeSecurityXMLSchema */
- { 1285, -1, 0, NULL }, /* DerivativeContractSettlMonth */
- { 1286, -1, 0, NULL }, /* NoDerivativeEvents */
- { 1287, -1, 0, NULL }, /* DerivativeEventType */
- { 1288, -1, 0, NULL }, /* DerivativeEventDate */
- { 1289, -1, 0, NULL }, /* DerivativeEventTime */
- { 1290, -1, 0, NULL }, /* DerivativeEventPx */
- { 1291, -1, 0, NULL }, /* DerivativeEventText */
- { 1292, -1, 0, NULL }, /* NoDerivativeInstrumentParties */
- { 1293, -1, 0, NULL }, /* DerivativeInstrumentPartyID */
- { 1294, -1, 0, NULL }, /* DerivativeInstrumentPartyIDSource */
- { 1295, -1, 0, NULL }, /* DerivativeInstrumentPartyRole */
- { 1296, -1, 0, NULL }, /* NoDerivativeInstrumentPartySubIDs */
- { 1297, -1, 0, NULL }, /* DerivativeInstrumentPartySubID */
- { 1298, -1, 0, NULL }, /* DerivativeInstrumentPartySubIDType */
- { 1299, -1, 0, NULL }, /* DerivativeExerciseStyle */
- { 1300, -1, 0, NULL }, /* MarketSegmentID */
- { 1301, -1, 0, NULL }, /* MarketID */
- { 1302, -1, 0, MaturityMonthYearIncrementUnits_val },
- { 1303, -1, 0, MaturityMonthYearFormat_val },
- { 1304, -1, 0, NULL }, /* StrikeExerciseStyle */
- { 1305, -1, 0, NULL }, /* SecondaryPriceLimitType */
- { 1306, -1, 0, PriceLimitType_val },
- { 1307, -1, 0, DerivativeSecurityListRequestType_val },
- { 1308, -1, 0, NULL }, /* ExecInstValue */
- { 1309, -1, 0, NULL }, /* NoTradingSessionRules */
- { 1310, -1, 0, NULL }, /* NoMarketSegments */
- { 1311, -1, 0, NULL }, /* NoDerivativeInstrAttrib */
- { 1312, -1, 0, NULL }, /* NoNestedInstrAttrib */
- { 1313, -1, 0, NULL }, /* DerivativeInstrAttribType */
- { 1314, -1, 0, NULL }, /* DerivativeInstrAttribValue */
- { 1315, -1, 0, NULL }, /* DerivativePriceUnitOfMeasure */
- { 1316, -1, 0, NULL }, /* DerivativePriceUnitOfMeasureQty */
- { 1317, -1, 0, NULL }, /* DerivativeSettlMethod */
- { 1318, -1, 0, NULL }, /* DerivativePriceQuoteMethod */
- { 1319, -1, 0, NULL }, /* DerivativeValuationMethod */
- { 1320, -1, 0, NULL }, /* DerivativeListMethod */
- { 1321, -1, 0, NULL }, /* DerivativeCapPrice */
- { 1322, -1, 0, NULL }, /* DerivativeFloorPrice */
- { 1323, -1, 0, NULL }, /* DerivativePutOrCall */
- { 1324, -1, 0, NULL }, /* ListUpdateAction */
- { 1325, -1, 0, NULL }, /* ParentMktSegmID */
- { 1326, -1, 0, NULL }, /* TradingSessionDesc */
- { 1327, -1, 0, NULL }, /* TradSesUpdateAction */
- { 1328, -1, 0, NULL }, /* RejectText */
- { 1329, -1, 0, NULL }, /* FeeMultiplier */
- { 1330, -1, 0, NULL }, /* UnderlyingLegSymbol */
- { 1331, -1, 0, NULL }, /* UnderlyingLegSymbolSfx */
- { 1332, -1, 0, NULL }, /* UnderlyingLegSecurityID */
- { 1333, -1, 0, NULL }, /* UnderlyingLegSecurityIDSource */
- { 1334, -1, 0, NULL }, /* NoUnderlyingLegSecurityAltID */
- { 1335, -1, 0, NULL }, /* UnderlyingLegSecurityAltID */
- { 1336, -1, 0, NULL }, /* UnderlyingLegSecurityAltIDSource */
- { 1337, -1, 0, NULL }, /* UnderlyingLegSecurityType */
- { 1338, -1, 0, NULL }, /* UnderlyingLegSecuritySubType */
- { 1339, -1, 0, NULL }, /* UnderlyingLegMaturityMonthYear */
- { 1340, -1, 0, NULL }, /* UnderlyingLegStrikePrice */
- { 1341, -1, 0, NULL }, /* UnderlyingLegSecurityExchange */
- { 1342, -1, 0, NULL }, /* NoOfLegUnderlyings */
- { 1343, -1, 0, NULL }, /* UnderlyingLegPutOrCall */
- { 1344, -1, 0, NULL }, /* UnderlyingLegCFICode */
- { 1345, -1, 0, NULL }, /* UnderlyingLegMaturityDate */
- { 1346, -1, 0, NULL }, /* ApplReqID */
- { 1347, -1, 0, ApplReqType_val },
- { 1348, -1, 0, ApplResponseType_val },
- { 1349, -1, 0, NULL }, /* ApplTotalMessageCount */
- { 1350, -1, 0, NULL }, /* ApplLastSeqNum */
- { 1351, -1, 0, NULL }, /* NoApplIDs */
- { 1352, -1, 0, NULL }, /* ApplResendFlag */
- { 1353, -1, 0, NULL }, /* ApplResponseID */
- { 1354, -1, 0, ApplResponseError_val },
- { 1355, -1, 0, NULL }, /* RefApplID */
- { 1356, -1, 0, NULL }, /* ApplReportID */
- { 1357, -1, 0, NULL }, /* RefApplLastSeqNum */
- { 1358, -1, 0, NULL }, /* LegPutOrCall */
- { 1359, -1, 0, NULL }, /* EncodedSymbolLen */
- { 1360, -1, 0, NULL }, /* EncodedSymbol */
- { 1361, -1, 0, NULL }, /* TotNoFills */
- { 1362, -1, 0, NULL }, /* NoFills */
- { 1363, -1, 0, NULL }, /* FillExecID */
- { 1364, -1, 0, NULL }, /* FillPx */
- { 1365, -1, 0, NULL }, /* FillQty */
- { 1366, -1, 0, NULL }, /* LegAllocID */
- { 1367, -1, 0, NULL }, /* LegAllocSettlCurrency */
- { 1368, -1, 0, TradSesEvent_val },
- { 1369, -1, 0, NULL }, /* MassActionReportID */
- { 1370, -1, 0, NULL }, /* NoNotAffectedOrders */
- { 1371, -1, 0, NULL }, /* NotAffectedOrderID */
- { 1372, -1, 0, NULL }, /* NotAffOrigClOrdID */
- { 1373, -1, 0, MassActionType_val },
- { 1374, -1, 0, MassActionScope_val },
- { 1375, -1, 0, MassActionResponse_val },
- { 1376, -1, 0, MassActionRejectReason_val },
- { 1377, -1, 0, MultilegModel_val },
- { 1378, -1, 0, MultilegPriceMethod_val },
- { 1379, -1, 0, NULL }, /* LegVolatility */
- { 1380, -1, 0, NULL }, /* DividendYield */
- { 1381, -1, 0, NULL }, /* LegDividendYield */
- { 1382, -1, 0, NULL }, /* CurrencyRatio */
- { 1383, -1, 0, NULL }, /* LegCurrencyRatio */
- { 1384, -1, 0, NULL }, /* LegExecInst */
- { 1385, -1, 0, ContingencyType_val },
- { 1386, -1, 0, ListRejectReason_val },
- { 1387, -1, 0, NULL }, /* NoTrdRepIndicators */
- { 1388, -1, 0, NULL }, /* TrdRepPartyRole */
- { 1389, -1, 0, NULL }, /* TrdRepIndicator */
- { 1390, -1, 0, TradePublishIndicator_val },
- { 1391, -1, 0, NULL }, /* UnderlyingLegOptAttribute */
- { 1392, -1, 0, NULL }, /* UnderlyingLegSecurityDesc */
- { 1393, -1, 0, NULL }, /* MarketReqID */
- { 1394, -1, 0, NULL }, /* MarketReportID */
- { 1395, -1, 2, MarketUpdateAction_val },
- { 1396, -1, 0, NULL }, /* MarketSegmentDesc */
- { 1397, -1, 0, NULL }, /* EncodedMktSegmDescLen */
- { 1398, -1, 0, NULL }, /* EncodedMktSegmDesc */
- { 1399, -1, 0, NULL }, /* ApplNewSeqNum */
- { 1400, -1, 0, NULL }, /* EncryptedPasswordMethod */
- { 1401, -1, 0, NULL }, /* EncryptedPasswordLen */
- { 1402, -1, 0, NULL }, /* EncryptedPassword */
- { 1403, -1, 0, NULL }, /* EncryptedNewPasswordLen */
- { 1404, -1, 0, NULL }, /* EncryptedNewPassword */
- { 1405, -1, 0, NULL }, /* UnderlyingLegMaturityTime */
- { 1406, -1, 0, NULL }, /* RefApplExtID */
- { 1407, -1, 0, NULL }, /* DefaultApplExtID */
- { 1408, -1, 0, NULL }, /* DefaultCstmApplVerID */
- { 1409, -1, 0, SessionStatus_val },
- { 1410, -1, 0, NULL }, /* DefaultVerIndicator */
- { 1411, -1, 0, NULL }, /* Nested4PartySubIDType */
- { 1412, -1, 0, NULL }, /* Nested4PartySubID */
- { 1413, -1, 0, NULL }, /* NoNested4PartySubIDs */
- { 1414, -1, 0, NULL }, /* NoNested4PartyIDs */
- { 1415, -1, 0, NULL }, /* Nested4PartyID */
- { 1416, -1, 0, NULL }, /* Nested4PartyIDSource */
- { 1417, -1, 0, NULL }, /* Nested4PartyRole */
- { 1418, -1, 0, NULL }, /* LegLastQty */
- { 1419, -1, 0, NULL }, /* UnderlyingExerciseStyle */
- { 1420, -1, 0, NULL }, /* LegExerciseStyle */
- { 1421, -1, 0, NULL }, /* LegPriceUnitOfMeasure */
- { 1422, -1, 0, NULL }, /* LegPriceUnitOfMeasureQty */
- { 1423, -1, 0, NULL }, /* UnderlyingUnitOfMeasureQty */
- { 1424, -1, 0, NULL }, /* UnderlyingPriceUnitOfMeasure */
- { 1425, -1, 0, NULL }, /* UnderlyingPriceUnitOfMeasureQty */
- { 1426, -1, 0, ApplReportType_val },
- { 1427, -1, 0, NULL }, /* SideExecID */
- { 1428, -1, 0, NULL }, /* OrderDelay */
- { 1429, -1, 0, OrderDelayUnit_val },
- { 1430, -1, 2, VenueType_val },
- { 1431, -1, 0, RefOrdIDReason_val },
- { 1432, -1, 0, OrigCustOrderCapacity_val },
- { 1433, -1, 0, NULL }, /* RefApplReqID */
- { 1434, -1, 0, ModelType_val },
- { 1435, -1, 0, ContractMultiplierUnit_val },
- { 1436, -1, 0, NULL }, /* LegContractMultiplierUnit */
- { 1437, -1, 0, NULL }, /* UnderlyingContractMultiplierUnit */
- { 1438, -1, 0, NULL }, /* DerivativeContractMultiplierUnit */
- { 1439, -1, 0, FlowScheduleType_val },
- { 1440, -1, 0, NULL }, /* LegFlowScheduleType */
- { 1441, -1, 0, NULL }, /* UnderlyingFlowScheduleType */
- { 1442, -1, 0, NULL }, /* DerivativeFlowScheduleType */
- { 1443, -1, 0, NULL }, /* FillLiquidityInd */
- { 1444, -1, 0, NULL }, /* SideLiquidityInd */
- { 1445, -1, 0, NULL }, /* NoRateSources */
- { 1446, -1, 0, RateSource_val },
- { 1447, -1, 0, RateSourceType_val },
- { 1448, -1, 0, NULL }, /* ReferencePage */
- { 1449, -1, 1, RestructuringType_val },
- { 1450, -1, 1, Seniority_val },
- { 1451, -1, 0, NULL }, /* NotionalPercentageOutstanding */
- { 1452, -1, 0, NULL }, /* OriginalNotionalPercentageOutstanding */
- { 1453, -1, 0, NULL }, /* UnderlyingRestructuringType */
- { 1454, -1, 0, NULL }, /* UnderlyingSeniority */
- { 1455, -1, 0, NULL }, /* UnderlyingNotionalPercentageOutstanding */
- { 1456, -1, 0, NULL }, /* UnderlyingOriginalNotionalPercentageOutstanding */
- { 1457, -1, 0, NULL }, /* AttachmentPoint */
- { 1458, -1, 0, NULL }, /* DetachmentPoint */
- { 1459, -1, 0, NULL }, /* UnderlyingAttachmentPoint */
- { 1460, -1, 0, NULL }, /* UnderlyingDetachmentPoint */
- { 1461, -1, 0, NULL }, /* NoTargetPartyIDs */
- { 1462, -1, 0, NULL }, /* TargetPartyID */
- { 1463, -1, 0, NULL }, /* TargetPartyIDSource */
- { 1464, -1, 0, NULL }, /* TargetPartyRole */
- { 1465, -1, 0, NULL }, /* SecurityListID */
- { 1466, -1, 0, NULL }, /* SecurityListRefID */
- { 1467, -1, 0, NULL }, /* SecurityListDesc */
- { 1468, -1, 0, NULL }, /* EncodedSecurityListDescLen */
- { 1469, -1, 0, NULL }, /* EncodedSecurityListDesc */
- { 1470, -1, 0, SecurityListType_val },
- { 1471, -1, 0, SecurityListTypeSource_val },
- { 1472, -1, 0, NULL }, /* NewsID */
- { 1473, -1, 0, NewsCategory_val },
- { 1474, -1, 0, NULL }, /* LanguageCode */
- { 1475, -1, 0, NULL }, /* NoNewsRefIDs */
- { 1476, -1, 0, NULL }, /* NewsRefID */
- { 1477, -1, 0, NewsRefType_val },
- { 1478, -1, 0, StrikePriceDeterminationMethod_val },
- { 1479, -1, 0, StrikePriceBoundaryMethod_val },
- { 1480, -1, 0, NULL }, /* StrikePriceBoundaryPrecision */
- { 1481, -1, 0, UnderlyingPriceDeterminationMethod_val },
- { 1482, -1, 0, OptPayoutType_val },
- { 1483, -1, 0, NULL }, /* NoComplexEvents */
- { 1484, -1, 0, ComplexEventType_val },
- { 1485, -1, 0, NULL }, /* ComplexOptPayoutAmount */
- { 1486, -1, 0, NULL }, /* ComplexEventPrice */
- { 1487, -1, 0, ComplexEventPriceBoundaryMethod_val },
- { 1488, -1, 0, NULL }, /* ComplexEventPriceBoundaryPrecision */
- { 1489, -1, 0, ComplexEventPriceTimeType_val },
- { 1490, -1, 0, ComplexEventCondition_val },
- { 1491, -1, 0, NULL }, /* NoComplexEventDates */
- { 1492, -1, 0, NULL }, /* ComplexEventStartDate */
- { 1493, -1, 0, NULL }, /* ComplexEventEndDate */
- { 1494, -1, 0, NULL }, /* NoComplexEventTimes */
- { 1495, -1, 0, NULL }, /* ComplexEventStartTime */
- { 1496, -1, 0, NULL }, /* ComplexEventEndTime */
- { 1497, -1, 0, NULL }, /* StreamAsgnReqID */
- { 1498, -1, 0, StreamAsgnReqType_val },
- { 1499, -1, 0, NULL }, /* NoAsgnReqs */
- { 1500, -1, 0, NULL }, /* MDStreamID */
- { 1501, -1, 0, NULL }, /* StreamAsgnRptID */
- { 1502, -1, 0, StreamAsgnRejReason_val },
- { 1503, -1, 0, StreamAsgnAckType_val },
- { 1504, -1, 0, NULL }, /* RelSymTransactTime */
- { 1505, -1, 0, NULL }, /* PartyDetailsListRequestID */
- { 1506, -1, 0, NULL }, /* NoPartyListResponseTypes */
- { 1507, -1, 0, PartyListResponseType_val },
- { 1508, -1, 0, NULL }, /* NoRequestedPartyRoles */
- { 1509, -1, 0, NULL }, /* RequestedPartyRole */
- { 1510, -1, 0, NULL }, /* PartyDetailsListReportID */
- { 1511, -1, 0, PartyDetailsRequestResult_val },
- { 1512, -1, 0, NULL }, /* TotNoPartyList */
- { 1513, -1, 0, NULL }, /* NoPartyList */
- { 1514, -1, 0, NULL }, /* NoPartyRelationships */
- { 1515, -1, 0, PartyRelationship_val },
- { 1516, -1, 0, NULL }, /* NoPartyAltIDs */
- { 1517, -1, 0, NULL }, /* PartyAltID */
- { 1518, -1, 0, NULL }, /* PartyAltIDSource */
- { 1519, -1, 0, NULL }, /* NoPartyAltSubIDs */
- { 1520, -1, 0, NULL }, /* PartyAltSubID */
- { 1521, -1, 0, NULL }, /* PartyAltSubIDType */
- { 1522, -1, 0, NULL }, /* NoContextPartyIDs */
- { 1523, -1, 0, NULL }, /* ContextPartyID */
- { 1524, -1, 0, NULL }, /* ContextPartyIDSource */
- { 1525, -1, 0, NULL }, /* ContextPartyRole */
- { 1526, -1, 0, NULL }, /* NoContextPartySubIDs */
- { 1527, -1, 0, NULL }, /* ContextPartySubID */
- { 1528, -1, 0, NULL }, /* ContextPartySubIDType */
- { 1529, -1, 0, NULL }, /* NoRiskLimits */
- { 1530, -1, 0, RiskLimitType_val },
- { 1531, -1, 0, NULL }, /* RiskLimitAmount */
- { 1532, -1, 0, NULL }, /* RiskLimitCurrency */
- { 1533, -1, 0, NULL }, /* RiskLimitPlatform */
- { 1534, -1, 0, NULL }, /* NoRiskInstruments */
- { 1535, -1, 0, RiskInstrumentOperator_val },
- { 1536, -1, 0, NULL }, /* RiskSymbol */
- { 1537, -1, 0, NULL }, /* RiskSymbolSfx */
- { 1538, -1, 0, NULL }, /* RiskSecurityID */
- { 1539, -1, 0, NULL }, /* RiskSecurityIDSource */
- { 1540, -1, 0, NULL }, /* NoRiskSecurityAltID */
- { 1541, -1, 0, NULL }, /* RiskSecurityAltID */
- { 1542, -1, 0, NULL }, /* RiskSecurityAltIDSource */
- { 1543, -1, 0, NULL }, /* RiskProduct */
- { 1544, -1, 0, NULL }, /* RiskProductComplex */
- { 1545, -1, 0, NULL }, /* RiskSecurityGroup */
- { 1546, -1, 0, NULL }, /* RiskCFICode */
- { 1547, -1, 0, NULL }, /* RiskSecurityType */
- { 1548, -1, 0, NULL }, /* RiskSecuritySubType */
- { 1549, -1, 0, NULL }, /* RiskMaturityMonthYear */
- { 1550, -1, 0, NULL }, /* RiskMaturityTime */
- { 1551, -1, 0, NULL }, /* RiskRestructuringType */
- { 1552, -1, 0, NULL }, /* RiskSeniority */
- { 1553, -1, 0, NULL }, /* RiskPutOrCall */
- { 1554, -1, 0, NULL }, /* RiskFlexibleIndicator */
- { 1555, -1, 0, NULL }, /* RiskCouponRate */
- { 1556, -1, 0, NULL }, /* RiskSecurityDesc */
- { 1557, -1, 0, NULL }, /* RiskInstrumentSettlType */
- { 1558, -1, 0, NULL }, /* RiskInstrumentMultiplier */
- { 1559, -1, 0, NULL }, /* NoRiskWarningLevels */
- { 1560, -1, 0, NULL }, /* RiskWarningLevelPercent */
- { 1561, -1, 0, NULL }, /* RiskWarningLevelName */
- { 1562, -1, 0, NULL }, /* NoRelatedPartyIDs */
- { 1563, -1, 0, NULL }, /* RelatedPartyID */
- { 1564, -1, 0, NULL }, /* RelatedPartyIDSource */
- { 1565, -1, 0, NULL }, /* RelatedPartyRole */
- { 1566, -1, 0, NULL }, /* NoRelatedPartySubIDs */
- { 1567, -1, 0, NULL }, /* RelatedPartySubID */
- { 1568, -1, 0, NULL }, /* RelatedPartySubIDType */
- { 1569, -1, 0, NULL }, /* NoRelatedPartyAltIDs */
- { 1570, -1, 0, NULL }, /* RelatedPartyAltID */
- { 1571, -1, 0, NULL }, /* RelatedPartyAltIDSource */
- { 1572, -1, 0, NULL }, /* NoRelatedPartyAltSubIDs */
- { 1573, -1, 0, NULL }, /* RelatedPartyAltSubID */
- { 1574, -1, 0, NULL }, /* RelatedPartyAltSubIDType */
- { 1575, -1, 0, NULL }, /* NoRelatedContextPartyIDs */
- { 1576, -1, 0, NULL }, /* RelatedContextPartyID */
- { 1577, -1, 0, NULL }, /* RelatedContextPartyIDSource */
- { 1578, -1, 0, NULL }, /* RelatedContextPartyRole */
- { 1579, -1, 0, NULL }, /* NoRelatedContextPartySubIDs */
- { 1580, -1, 0, NULL }, /* RelatedContextPartySubID */
- { 1581, -1, 0, NULL }, /* RelatedContextPartySubIDType */
- { 1582, -1, 0, NULL }, /* NoRelationshipRiskLimits */
- { 1583, -1, 0, NULL }, /* RelationshipRiskLimitType */
- { 1584, -1, 0, NULL }, /* RelationshipRiskLimitAmount */
- { 1585, -1, 0, NULL }, /* RelationshipRiskLimitCurrency */
- { 1586, -1, 0, NULL }, /* RelationshipRiskLimitPlatform */
- { 1587, -1, 0, NULL }, /* NoRelationshipRiskInstruments */
- { 1588, -1, 0, NULL }, /* RelationshipRiskInstrumentOperator */
- { 1589, -1, 0, NULL }, /* RelationshipRiskSymbol */
- { 1590, -1, 0, NULL }, /* RelationshipRiskSymbolSfx */
- { 1591, -1, 0, NULL }, /* RelationshipRiskSecurityID */
- { 1592, -1, 0, NULL }, /* RelationshipRiskSecurityIDSource */
- { 1593, -1, 0, NULL }, /* NoRelationshipRiskSecurityAltID */
- { 1594, -1, 0, NULL }, /* RelationshipRiskSecurityAltID */
- { 1595, -1, 0, NULL }, /* RelationshipRiskSecurityAltIDSource */
- { 1596, -1, 0, NULL }, /* RelationshipRiskProduct */
- { 1597, -1, 0, NULL }, /* RelationshipRiskProductComplex */
- { 1598, -1, 0, NULL }, /* RelationshipRiskSecurityGroup */
- { 1599, -1, 0, NULL }, /* RelationshipRiskCFICode */
- { 1600, -1, 0, NULL }, /* RelationshipRiskSecurityType */
- { 1601, -1, 0, NULL }, /* RelationshipRiskSecuritySubType */
- { 1602, -1, 0, NULL }, /* RelationshipRiskMaturityMonthYear */
- { 1603, -1, 0, NULL }, /* RelationshipRiskMaturityTime */
- { 1604, -1, 0, NULL }, /* RelationshipRiskRestructuringType */
- { 1605, -1, 0, NULL }, /* RelationshipRiskSeniority */
- { 1606, -1, 0, NULL }, /* RelationshipRiskPutOrCall */
- { 1607, -1, 0, NULL }, /* RelationshipRiskFlexibleIndicator */
- { 1608, -1, 0, NULL }, /* RelationshipRiskCouponRate */
- { 1609, -1, 0, NULL }, /* RelationshipRiskSecurityExchange */
- { 1610, -1, 0, NULL }, /* RelationshipRiskSecurityDesc */
- { 1611, -1, 0, NULL }, /* RelationshipRiskInstrumentSettlType */
- { 1612, -1, 0, NULL }, /* RelationshipRiskInstrumentMultiplier */
- { 1613, -1, 0, NULL }, /* NoRelationshipRiskWarningLevels */
- { 1614, -1, 0, NULL }, /* RelationshipRiskWarningLevelPercent */
- { 1615, -1, 0, NULL }, /* RelationshipRiskWarningLevelName */
- { 1616, -1, 0, NULL }, /* RiskSecurityExchange */
- { 1617, -1, 0, StreamAsgnType_val },
- { 1618, -1, 0, NULL }, /* RelationshipRiskEncodedSecurityDescLen */
- { 1619, -1, 0, NULL }, /* RelationshipRiskEncodedSecurityDesc */
- { 1620, -1, 0, NULL }, /* RiskEncodedSecurityDescLen */
- { 1621, -1, 0, NULL }, /* RiskEncodedSecurityDesc */
- };
-
+static const fix_field fix_fields[] = {
+
+ { 1, 0, NULL }, /* Account */
+ { 2, 0, NULL }, /* AdvId */
+ { 3, 0, NULL }, /* AdvRefID */
+ { 4, 2, AdvSide_val },
+ { 5, 1, AdvTransType_val },
+ { 6, 0, NULL }, /* AvgPx */
+ { 7, 0, NULL }, /* BeginSeqNo */
+ { 8, 0, NULL }, /* BeginString */
+ { 9, 0, NULL }, /* BodyLength */
+ { 10, 0, NULL }, /* CheckSum */
+ { 11, 0, NULL }, /* ClOrdID */
+ { 12, 0, NULL }, /* Commission */
+ { 13, 2, CommType_val },
+ { 14, 0, NULL }, /* CumQty */
+ { 15, 0, NULL }, /* Currency */
+ { 16, 0, NULL }, /* EndSeqNo */
+ { 17, 0, NULL }, /* ExecID */
+ { 18, 2, ExecInst_val },
+ { 19, 0, NULL }, /* ExecRefID */
+ { 20, 2, ExecTransType_val },
+ { 21, 2, HandlInst_val },
+ { 22, 1, SecurityIDSource_val },
+ { 23, 0, NULL }, /* IOIID */
+ { 24, 0, NULL }, /* IOIOthSvc */
+ { 25, 2, IOIQltyInd_val },
+ { 26, 0, NULL }, /* IOIRefID */
+ { 27, 1, IOIQty_val },
+ { 28, 2, IOITransType_val },
+ { 29, 2, LastCapacity_val },
+ { 30, 0, NULL }, /* LastMkt */
+ { 31, 0, NULL }, /* LastPx */
+ { 32, 0, NULL }, /* LastQty */
+ { 33, 0, NULL }, /* NoLinesOfText */
+ { 34, 0, NULL }, /* MsgSeqNum */
+ { 35, 1, MsgType_val },
+ { 36, 0, NULL }, /* NewSeqNo */
+ { 37, 0, NULL }, /* OrderID */
+ { 38, 0, NULL }, /* OrderQty */
+ { 39, 2, OrdStatus_val },
+ { 40, 2, OrdType_val },
+ { 41, 0, NULL }, /* OrigClOrdID */
+ { 42, 0, NULL }, /* OrigTime */
+ { 43, 2, PossDupFlag_val },
+ { 44, 0, NULL }, /* Price */
+ { 45, 0, NULL }, /* RefSeqNum */
+ { 46, 0, NULL }, /* RelatdSym */
+ { 47, 2, Rule80A_val },
+ { 48, 0, NULL }, /* SecurityID */
+ { 49, 0, NULL }, /* SenderCompID */
+ { 50, 0, NULL }, /* SenderSubID */
+ { 51, 0, NULL }, /* SendingDate */
+ { 52, 0, NULL }, /* SendingTime */
+ { 53, 0, NULL }, /* Quantity */
+ { 54, 2, Side_val },
+ { 55, 0, NULL }, /* Symbol */
+ { 56, 0, NULL }, /* TargetCompID */
+ { 57, 0, NULL }, /* TargetSubID */
+ { 58, 0, NULL }, /* Text */
+ { 59, 2, TimeInForce_val },
+ { 60, 0, NULL }, /* TransactTime */
+ { 61, 2, Urgency_val },
+ { 62, 0, NULL }, /* ValidUntilTime */
+ { 63, 1, SettlType_val },
+ { 64, 0, NULL }, /* SettlDate */
+ { 65, 1, SymbolSfx_val },
+ { 66, 0, NULL }, /* ListID */
+ { 67, 0, NULL }, /* ListSeqNo */
+ { 68, 0, NULL }, /* TotNoOrders */
+ { 69, 0, NULL }, /* ListExecInst */
+ { 70, 0, NULL }, /* AllocID */
+ { 71, 2, AllocTransType_val },
+ { 72, 0, NULL }, /* RefAllocID */
+ { 73, 0, NULL }, /* NoOrders */
+ { 74, 0, NULL }, /* AvgPxPrecision */
+ { 75, 0, NULL }, /* TradeDate */
+ { 76, 0, NULL }, /* ExecBroker */
+ { 77, 2, PositionEffect_val },
+ { 78, 0, NULL }, /* NoAllocs */
+ { 79, 0, NULL }, /* AllocAccount */
+ { 80, 0, NULL }, /* AllocQty */
+ { 81, 2, ProcessCode_val },
+ { 82, 0, NULL }, /* NoRpts */
+ { 83, 0, NULL }, /* RptSeq */
+ { 84, 0, NULL }, /* CxlQty */
+ { 85, 0, NULL }, /* NoDlvyInst */
+ { 86, 0, NULL }, /* DlvyInst */
+ { 87, 0, AllocStatus_val },
+ { 88, 0, AllocRejCode_val },
+ { 89, 0, NULL }, /* Signature */
+ { 90, 0, NULL }, /* SecureDataLen */
+ { 91, 0, NULL }, /* SecureData */
+ { 92, 0, NULL }, /* BrokerOfCredit */
+ { 93, 0, NULL }, /* SignatureLength */
+ { 94, 2, EmailType_val },
+ { 95, 0, NULL }, /* RawDataLength */
+ { 96, 0, NULL }, /* RawData */
+ { 97, 2, PossResend_val },
+ { 98, 0, EncryptMethod_val },
+ { 99, 0, NULL }, /* StopPx */
+ { 100, 0, NULL }, /* ExDestination */
+ { 102, 0, CxlRejReason_val },
+ { 103, 0, OrdRejReason_val },
+ { 104, 2, IOIQualifier_val },
+ { 105, 0, NULL }, /* WaveNo */
+ { 106, 0, NULL }, /* Issuer */
+ { 107, 0, NULL }, /* SecurityDesc */
+ { 108, 0, NULL }, /* HeartBtInt */
+ { 109, 0, NULL }, /* ClientID */
+ { 110, 0, NULL }, /* MinQty */
+ { 111, 0, NULL }, /* MaxFloor */
+ { 112, 0, NULL }, /* TestReqID */
+ { 113, 2, ReportToExch_val },
+ { 114, 2, LocateReqd_val },
+ { 115, 0, NULL }, /* OnBehalfOfCompID */
+ { 116, 0, NULL }, /* OnBehalfOfSubID */
+ { 117, 0, NULL }, /* QuoteID */
+ { 118, 0, NULL }, /* NetMoney */
+ { 119, 0, NULL }, /* SettlCurrAmt */
+ { 120, 0, NULL }, /* SettlCurrency */
+ { 121, 2, ForexReq_val },
+ { 122, 0, NULL }, /* OrigSendingTime */
+ { 123, 2, GapFillFlag_val },
+ { 124, 0, NULL }, /* NoExecs */
+ { 125, 0, NULL }, /* CxlType */
+ { 126, 0, NULL }, /* ExpireTime */
+ { 127, 2, DKReason_val },
+ { 128, 0, NULL }, /* DeliverToCompID */
+ { 129, 0, NULL }, /* DeliverToSubID */
+ { 130, 2, IOINaturalFlag_val },
+ { 131, 0, NULL }, /* QuoteReqID */
+ { 132, 0, NULL }, /* BidPx */
+ { 133, 0, NULL }, /* OfferPx */
+ { 134, 0, NULL }, /* BidSize */
+ { 135, 0, NULL }, /* OfferSize */
+ { 136, 0, NULL }, /* NoMiscFees */
+ { 137, 0, NULL }, /* MiscFeeAmt */
+ { 138, 0, NULL }, /* MiscFeeCurr */
+ { 139, 1, MiscFeeType_val },
+ { 140, 0, NULL }, /* PrevClosePx */
+ { 141, 2, ResetSeqNumFlag_val },
+ { 142, 0, NULL }, /* SenderLocationID */
+ { 143, 0, NULL }, /* TargetLocationID */
+ { 144, 0, NULL }, /* OnBehalfOfLocationID */
+ { 145, 0, NULL }, /* DeliverToLocationID */
+ { 146, 0, NULL }, /* NoRelatedSym */
+ { 147, 0, NULL }, /* Subject */
+ { 148, 0, NULL }, /* Headline */
+ { 149, 0, NULL }, /* URLLink */
+ { 150, 2, ExecType_val },
+ { 151, 0, NULL }, /* LeavesQty */
+ { 152, 0, NULL }, /* CashOrderQty */
+ { 153, 0, NULL }, /* AllocAvgPx */
+ { 154, 0, NULL }, /* AllocNetMoney */
+ { 155, 0, NULL }, /* SettlCurrFxRate */
+ { 156, 2, SettlCurrFxRateCalc_val },
+ { 157, 0, NULL }, /* NumDaysInterest */
+ { 158, 0, NULL }, /* AccruedInterestRate */
+ { 159, 0, NULL }, /* AccruedInterestAmt */
+ { 160, 2, SettlInstMode_val },
+ { 161, 0, NULL }, /* AllocText */
+ { 162, 0, NULL }, /* SettlInstID */
+ { 163, 2, SettlInstTransType_val },
+ { 164, 0, NULL }, /* EmailThreadID */
+ { 165, 2, SettlInstSource_val },
+ { 166, 1, SettlLocation_val },
+ { 167, 1, SecurityType_val },
+ { 168, 0, NULL }, /* EffectiveTime */
+ { 169, 0, StandInstDbType_val },
+ { 170, 0, NULL }, /* StandInstDbName */
+ { 171, 0, NULL }, /* StandInstDbID */
+ { 172, 0, SettlDeliveryType_val },
+ { 173, 0, NULL }, /* SettlDepositoryCode */
+ { 174, 0, NULL }, /* SettlBrkrCode */
+ { 175, 0, NULL }, /* SettlInstCode */
+ { 176, 0, NULL }, /* SecuritySettlAgentName */
+ { 177, 0, NULL }, /* SecuritySettlAgentCode */
+ { 178, 0, NULL }, /* SecuritySettlAgentAcctNum */
+ { 179, 0, NULL }, /* SecuritySettlAgentAcctName */
+ { 180, 0, NULL }, /* SecuritySettlAgentContactName */
+ { 181, 0, NULL }, /* SecuritySettlAgentContactPhone */
+ { 182, 0, NULL }, /* CashSettlAgentName */
+ { 183, 0, NULL }, /* CashSettlAgentCode */
+ { 184, 0, NULL }, /* CashSettlAgentAcctNum */
+ { 185, 0, NULL }, /* CashSettlAgentAcctName */
+ { 186, 0, NULL }, /* CashSettlAgentContactName */
+ { 187, 0, NULL }, /* CashSettlAgentContactPhone */
+ { 188, 0, NULL }, /* BidSpotRate */
+ { 189, 0, NULL }, /* BidForwardPoints */
+ { 190, 0, NULL }, /* OfferSpotRate */
+ { 191, 0, NULL }, /* OfferForwardPoints */
+ { 192, 0, NULL }, /* OrderQty2 */
+ { 193, 0, NULL }, /* SettlDate2 */
+ { 194, 0, NULL }, /* LastSpotRate */
+ { 195, 0, NULL }, /* LastForwardPoints */
+ { 196, 0, NULL }, /* AllocLinkID */
+ { 197, 0, AllocLinkType_val },
+ { 198, 0, NULL }, /* SecondaryOrderID */
+ { 199, 0, NULL }, /* NoIOIQualifiers */
+ { 200, 0, NULL }, /* MaturityMonthYear */
+ { 201, 0, PutOrCall_val },
+ { 202, 0, NULL }, /* StrikePrice */
+ { 203, 0, CoveredOrUncovered_val },
+ { 204, 0, CustomerOrFirm_val },
+ { 205, 0, NULL }, /* MaturityDay */
+ { 206, 0, NULL }, /* OptAttribute */
+ { 207, 0, NULL }, /* SecurityExchange */
+ { 208, 2, NotifyBrokerOfCredit_val },
+ { 209, 0, AllocHandlInst_val },
+ { 210, 0, NULL }, /* MaxShow */
+ { 211, 0, NULL }, /* PegOffsetValue */
+ { 212, 0, NULL }, /* XmlDataLen */
+ { 213, 0, NULL }, /* XmlData */
+ { 214, 0, NULL }, /* SettlInstRefID */
+ { 215, 0, NULL }, /* NoRoutingIDs */
+ { 216, 0, RoutingType_val },
+ { 217, 0, NULL }, /* RoutingID */
+ { 218, 0, NULL }, /* Spread */
+ { 219, 2, Benchmark_val },
+ { 220, 0, NULL }, /* BenchmarkCurveCurrency */
+ { 221, 1, BenchmarkCurveName_val },
+ { 222, 0, NULL }, /* BenchmarkCurvePoint */
+ { 223, 0, NULL }, /* CouponRate */
+ { 224, 0, NULL }, /* CouponPaymentDate */
+ { 225, 0, NULL }, /* IssueDate */
+ { 226, 0, NULL }, /* RepurchaseTerm */
+ { 227, 0, NULL }, /* RepurchaseRate */
+ { 228, 0, NULL }, /* Factor */
+ { 229, 0, NULL }, /* TradeOriginationDate */
+ { 230, 0, NULL }, /* ExDate */
+ { 231, 0, NULL }, /* ContractMultiplier */
+ { 232, 0, NULL }, /* NoStipulations */
+ { 233, 1, StipulationType_val },
+ { 234, 1, StipulationValue_val },
+ { 235, 1, YieldType_val },
+ { 236, 0, NULL }, /* Yield */
+ { 237, 0, NULL }, /* TotalTakedown */
+ { 238, 0, NULL }, /* Concession */
+ { 239, 0, NULL }, /* RepoCollateralSecurityType */
+ { 240, 0, NULL }, /* RedemptionDate */
+ { 241, 0, NULL }, /* UnderlyingCouponPaymentDate */
+ { 242, 0, NULL }, /* UnderlyingIssueDate */
+ { 243, 0, NULL }, /* UnderlyingRepoCollateralSecurityType */
+ { 244, 0, NULL }, /* UnderlyingRepurchaseTerm */
+ { 245, 0, NULL }, /* UnderlyingRepurchaseRate */
+ { 246, 0, NULL }, /* UnderlyingFactor */
+ { 247, 0, NULL }, /* UnderlyingRedemptionDate */
+ { 248, 0, NULL }, /* LegCouponPaymentDate */
+ { 249, 0, NULL }, /* LegIssueDate */
+ { 250, 0, NULL }, /* LegRepoCollateralSecurityType */
+ { 251, 0, NULL }, /* LegRepurchaseTerm */
+ { 252, 0, NULL }, /* LegRepurchaseRate */
+ { 253, 0, NULL }, /* LegFactor */
+ { 254, 0, NULL }, /* LegRedemptionDate */
+ { 255, 0, NULL }, /* CreditRating */
+ { 256, 0, NULL }, /* UnderlyingCreditRating */
+ { 257, 0, NULL }, /* LegCreditRating */
+ { 258, 2, TradedFlatSwitch_val },
+ { 259, 0, NULL }, /* BasisFeatureDate */
+ { 260, 0, NULL }, /* BasisFeaturePrice */
+ { 262, 0, NULL }, /* MDReqID */
+ { 263, 2, SubscriptionRequestType_val },
+ { 264, 0, NULL }, /* MarketDepth */
+ { 265, 0, MDUpdateType_val },
+ { 266, 2, AggregatedBook_val },
+ { 267, 0, NULL }, /* NoMDEntryTypes */
+ { 268, 0, NULL }, /* NoMDEntries */
+ { 269, 2, MDEntryType_val },
+ { 270, 0, NULL }, /* MDEntryPx */
+ { 271, 0, NULL }, /* MDEntrySize */
+ { 272, 0, NULL }, /* MDEntryDate */
+ { 273, 0, NULL }, /* MDEntryTime */
+ { 274, 2, TickDirection_val },
+ { 275, 0, NULL }, /* MDMkt */
+ { 276, 2, QuoteCondition_val },
+ { 277, 2, TradeCondition_val },
+ { 278, 0, NULL }, /* MDEntryID */
+ { 279, 2, MDUpdateAction_val },
+ { 280, 0, NULL }, /* MDEntryRefID */
+ { 281, 2, MDReqRejReason_val },
+ { 282, 0, NULL }, /* MDEntryOriginator */
+ { 283, 0, NULL }, /* LocationID */
+ { 284, 0, NULL }, /* DeskID */
+ { 285, 2, DeleteReason_val },
+ { 286, 2, OpenCloseSettlFlag_val },
+ { 287, 0, NULL }, /* SellerDays */
+ { 288, 0, NULL }, /* MDEntryBuyer */
+ { 289, 0, NULL }, /* MDEntrySeller */
+ { 290, 0, NULL }, /* MDEntryPositionNo */
+ { 291, 2, FinancialStatus_val },
+ { 292, 2, CorporateAction_val },
+ { 293, 0, NULL }, /* DefBidSize */
+ { 294, 0, NULL }, /* DefOfferSize */
+ { 295, 0, NULL }, /* NoQuoteEntries */
+ { 296, 0, NULL }, /* NoQuoteSets */
+ { 297, 0, QuoteStatus_val },
+ { 298, 0, QuoteCancelType_val },
+ { 299, 0, NULL }, /* QuoteEntryID */
+ { 300, 0, QuoteRejectReason_val },
+ { 301, 0, QuoteResponseLevel_val },
+ { 302, 0, NULL }, /* QuoteSetID */
+ { 303, 0, QuoteRequestType_val },
+ { 304, 0, NULL }, /* TotNoQuoteEntries */
+ { 305, 0, NULL }, /* UnderlyingSecurityIDSource */
+ { 306, 0, NULL }, /* UnderlyingIssuer */
+ { 307, 0, NULL }, /* UnderlyingSecurityDesc */
+ { 308, 0, NULL }, /* UnderlyingSecurityExchange */
+ { 309, 0, NULL }, /* UnderlyingSecurityID */
+ { 310, 0, NULL }, /* UnderlyingSecurityType */
+ { 311, 0, NULL }, /* UnderlyingSymbol */
+ { 312, 0, NULL }, /* UnderlyingSymbolSfx */
+ { 313, 0, NULL }, /* UnderlyingMaturityMonthYear */
+ { 314, 0, NULL }, /* UnderlyingMaturityDay */
+ { 315, 0, NULL }, /* UnderlyingPutOrCall */
+ { 316, 0, NULL }, /* UnderlyingStrikePrice */
+ { 317, 0, NULL }, /* UnderlyingOptAttribute */
+ { 318, 0, NULL }, /* UnderlyingCurrency */
+ { 319, 0, NULL }, /* RatioQty */
+ { 320, 0, NULL }, /* SecurityReqID */
+ { 321, 0, SecurityRequestType_val },
+ { 322, 0, NULL }, /* SecurityResponseID */
+ { 323, 0, SecurityResponseType_val },
+ { 324, 0, NULL }, /* SecurityStatusReqID */
+ { 325, 2, UnsolicitedIndicator_val },
+ { 326, 0, SecurityTradingStatus_val },
+ { 327, 0, HaltReasonInt_val },
+ { 328, 2, InViewOfCommon_val },
+ { 329, 2, DueToRelated_val },
+ { 330, 0, NULL }, /* BuyVolume */
+ { 331, 0, NULL }, /* SellVolume */
+ { 332, 0, NULL }, /* HighPx */
+ { 333, 0, NULL }, /* LowPx */
+ { 334, 0, Adjustment_val },
+ { 335, 0, NULL }, /* TradSesReqID */
+ { 336, 1, TradingSessionID_val },
+ { 337, 0, NULL }, /* ContraTrader */
+ { 338, 0, TradSesMethod_val },
+ { 339, 0, TradSesMode_val },
+ { 340, 0, TradSesStatus_val },
+ { 341, 0, NULL }, /* TradSesStartTime */
+ { 342, 0, NULL }, /* TradSesOpenTime */
+ { 343, 0, NULL }, /* TradSesPreCloseTime */
+ { 344, 0, NULL }, /* TradSesCloseTime */
+ { 345, 0, NULL }, /* TradSesEndTime */
+ { 346, 0, NULL }, /* NumberOfOrders */
+ { 347, 1, MessageEncoding_val },
+ { 348, 0, NULL }, /* EncodedIssuerLen */
+ { 349, 0, NULL }, /* EncodedIssuer */
+ { 350, 0, NULL }, /* EncodedSecurityDescLen */
+ { 351, 0, NULL }, /* EncodedSecurityDesc */
+ { 352, 0, NULL }, /* EncodedListExecInstLen */
+ { 353, 0, NULL }, /* EncodedListExecInst */
+ { 354, 0, NULL }, /* EncodedTextLen */
+ { 355, 0, NULL }, /* EncodedText */
+ { 356, 0, NULL }, /* EncodedSubjectLen */
+ { 357, 0, NULL }, /* EncodedSubject */
+ { 358, 0, NULL }, /* EncodedHeadlineLen */
+ { 359, 0, NULL }, /* EncodedHeadline */
+ { 360, 0, NULL }, /* EncodedAllocTextLen */
+ { 361, 0, NULL }, /* EncodedAllocText */
+ { 362, 0, NULL }, /* EncodedUnderlyingIssuerLen */
+ { 363, 0, NULL }, /* EncodedUnderlyingIssuer */
+ { 364, 0, NULL }, /* EncodedUnderlyingSecurityDescLen */
+ { 365, 0, NULL }, /* EncodedUnderlyingSecurityDesc */
+ { 366, 0, NULL }, /* AllocPrice */
+ { 367, 0, NULL }, /* QuoteSetValidUntilTime */
+ { 368, 0, NULL }, /* QuoteEntryRejectReason */
+ { 369, 0, NULL }, /* LastMsgSeqNumProcessed */
+ { 370, 0, NULL }, /* OnBehalfOfSendingTime */
+ { 371, 0, NULL }, /* RefTagID */
+ { 372, 0, NULL }, /* RefMsgType */
+ { 373, 0, SessionRejectReason_val },
+ { 374, 2, BidRequestTransType_val },
+ { 375, 0, NULL }, /* ContraBroker */
+ { 376, 0, NULL }, /* ComplianceID */
+ { 377, 2, SolicitedFlag_val },
+ { 378, 0, ExecRestatementReason_val },
+ { 379, 0, NULL }, /* BusinessRejectRefID */
+ { 380, 0, BusinessRejectReason_val },
+ { 381, 0, NULL }, /* GrossTradeAmt */
+ { 382, 0, NULL }, /* NoContraBrokers */
+ { 383, 0, NULL }, /* MaxMessageSize */
+ { 384, 0, NULL }, /* NoMsgTypes */
+ { 385, 2, MsgDirection_val },
+ { 386, 0, NULL }, /* NoTradingSessions */
+ { 387, 0, NULL }, /* TotalVolumeTraded */
+ { 388, 2, DiscretionInst_val },
+ { 389, 0, NULL }, /* DiscretionOffsetValue */
+ { 390, 0, NULL }, /* BidID */
+ { 391, 0, NULL }, /* ClientBidID */
+ { 392, 0, NULL }, /* ListName */
+ { 393, 0, NULL }, /* TotNoRelatedSym */
+ { 394, 0, BidType_val },
+ { 395, 0, NULL }, /* NumTickets */
+ { 396, 0, NULL }, /* SideValue1 */
+ { 397, 0, NULL }, /* SideValue2 */
+ { 398, 0, NULL }, /* NoBidDescriptors */
+ { 399, 0, BidDescriptorType_val },
+ { 400, 0, NULL }, /* BidDescriptor */
+ { 401, 0, SideValueInd_val },
+ { 402, 0, NULL }, /* LiquidityPctLow */
+ { 403, 0, NULL }, /* LiquidityPctHigh */
+ { 404, 0, NULL }, /* LiquidityValue */
+ { 405, 0, NULL }, /* EFPTrackingError */
+ { 406, 0, NULL }, /* FairValue */
+ { 407, 0, NULL }, /* OutsideIndexPct */
+ { 408, 0, NULL }, /* ValueOfFutures */
+ { 409, 0, LiquidityIndType_val },
+ { 410, 0, NULL }, /* WtAverageLiquidity */
+ { 411, 2, ExchangeForPhysical_val },
+ { 412, 0, NULL }, /* OutMainCntryUIndex */
+ { 413, 0, NULL }, /* CrossPercent */
+ { 414, 0, ProgRptReqs_val },
+ { 415, 0, NULL }, /* ProgPeriodInterval */
+ { 416, 0, IncTaxInd_val },
+ { 417, 0, NULL }, /* NumBidders */
+ { 418, 2, BidTradeType_val },
+ { 419, 2, BasisPxType_val },
+ { 420, 0, NULL }, /* NoBidComponents */
+ { 421, 0, NULL }, /* Country */
+ { 422, 0, NULL }, /* TotNoStrikes */
+ { 423, 0, PriceType_val },
+ { 424, 0, NULL }, /* DayOrderQty */
+ { 425, 0, NULL }, /* DayCumQty */
+ { 426, 0, NULL }, /* DayAvgPx */
+ { 427, 0, GTBookingInst_val },
+ { 428, 0, NULL }, /* NoStrikes */
+ { 429, 0, ListStatusType_val },
+ { 430, 0, NetGrossInd_val },
+ { 431, 0, ListOrderStatus_val },
+ { 432, 0, NULL }, /* ExpireDate */
+ { 433, 2, ListExecInstType_val },
+ { 434, 2, CxlRejResponseTo_val },
+ { 435, 0, NULL }, /* UnderlyingCouponRate */
+ { 436, 0, NULL }, /* UnderlyingContractMultiplier */
+ { 437, 0, NULL }, /* ContraTradeQty */
+ { 438, 0, NULL }, /* ContraTradeTime */
+ { 439, 0, NULL }, /* ClearingFirm */
+ { 440, 0, NULL }, /* ClearingAccount */
+ { 441, 0, NULL }, /* LiquidityNumSecurities */
+ { 442, 2, MultiLegReportingType_val },
+ { 443, 0, NULL }, /* StrikeTime */
+ { 444, 0, NULL }, /* ListStatusText */
+ { 445, 0, NULL }, /* EncodedListStatusTextLen */
+ { 446, 0, NULL }, /* EncodedListStatusText */
+ { 447, 2, PartyIDSource_val },
+ { 448, 0, NULL }, /* PartyID */
+ { 449, 0, NULL }, /* TotalVolumeTradedDate */
+ { 450, 0, NULL }, /* TotalVolumeTradedTime */
+ { 451, 0, NULL }, /* NetChgPrevDay */
+ { 452, 0, PartyRole_val },
+ { 453, 0, NULL }, /* NoPartyIDs */
+ { 454, 0, NULL }, /* NoSecurityAltID */
+ { 455, 0, NULL }, /* SecurityAltID */
+ { 456, 0, NULL }, /* SecurityAltIDSource */
+ { 457, 0, NULL }, /* NoUnderlyingSecurityAltID */
+ { 458, 0, NULL }, /* UnderlyingSecurityAltID */
+ { 459, 0, NULL }, /* UnderlyingSecurityAltIDSource */
+ { 460, 0, Product_val },
+ { 461, 0, NULL }, /* CFICode */
+ { 462, 0, NULL }, /* UnderlyingProduct */
+ { 463, 0, NULL }, /* UnderlyingCFICode */
+ { 464, 2, TestMessageIndicator_val },
+ { 465, 0, QuantityType_val },
+ { 466, 0, NULL }, /* BookingRefID */
+ { 467, 0, NULL }, /* IndividualAllocID */
+ { 468, 2, RoundingDirection_val },
+ { 469, 0, NULL }, /* RoundingModulus */
+ { 470, 0, NULL }, /* CountryOfIssue */
+ { 471, 0, NULL }, /* StateOrProvinceOfIssue */
+ { 472, 0, NULL }, /* LocaleOfIssue */
+ { 473, 0, NULL }, /* NoRegistDtls */
+ { 474, 0, NULL }, /* MailingDtls */
+ { 475, 0, NULL }, /* InvestorCountryOfResidence */
+ { 476, 0, NULL }, /* PaymentRef */
+ { 477, 0, DistribPaymentMethod_val },
+ { 478, 0, NULL }, /* CashDistribCurr */
+ { 479, 0, NULL }, /* CommCurrency */
+ { 480, 2, CancellationRights_val },
+ { 481, 2, MoneyLaunderingStatus_val },
+ { 482, 0, NULL }, /* MailingInst */
+ { 483, 0, NULL }, /* TransBkdTime */
+ { 484, 2, ExecPriceType_val },
+ { 485, 0, NULL }, /* ExecPriceAdjustment */
+ { 486, 0, NULL }, /* DateOfBirth */
+ { 487, 0, TradeReportTransType_val },
+ { 488, 0, NULL }, /* CardHolderName */
+ { 489, 0, NULL }, /* CardNumber */
+ { 490, 0, NULL }, /* CardExpDate */
+ { 491, 0, NULL }, /* CardIssNum */
+ { 492, 0, PaymentMethod_val },
+ { 493, 0, NULL }, /* RegistAcctType */
+ { 494, 0, NULL }, /* Designation */
+ { 495, 0, TaxAdvantageType_val },
+ { 496, 0, NULL }, /* RegistRejReasonText */
+ { 497, 2, FundRenewWaiv_val },
+ { 498, 0, NULL }, /* CashDistribAgentName */
+ { 499, 0, NULL }, /* CashDistribAgentCode */
+ { 500, 0, NULL }, /* CashDistribAgentAcctNumber */
+ { 501, 0, NULL }, /* CashDistribPayRef */
+ { 502, 0, NULL }, /* CashDistribAgentAcctName */
+ { 503, 0, NULL }, /* CardStartDate */
+ { 504, 0, NULL }, /* PaymentDate */
+ { 505, 0, NULL }, /* PaymentRemitterID */
+ { 506, 2, RegistStatus_val },
+ { 507, 0, RegistRejReasonCode_val },
+ { 508, 0, NULL }, /* RegistRefID */
+ { 509, 0, NULL }, /* RegistDtls */
+ { 510, 0, NULL }, /* NoDistribInsts */
+ { 511, 0, NULL }, /* RegistEmail */
+ { 512, 0, NULL }, /* DistribPercentage */
+ { 513, 0, NULL }, /* RegistID */
+ { 514, 2, RegistTransType_val },
+ { 515, 0, NULL }, /* ExecValuationPoint */
+ { 516, 0, NULL }, /* OrderPercent */
+ { 517, 2, OwnershipType_val },
+ { 518, 0, NULL }, /* NoContAmts */
+ { 519, 0, ContAmtType_val },
+ { 520, 0, NULL }, /* ContAmtValue */
+ { 521, 0, NULL }, /* ContAmtCurr */
+ { 522, 0, OwnerType_val },
+ { 523, 0, NULL }, /* PartySubID */
+ { 524, 0, NULL }, /* NestedPartyID */
+ { 525, 0, NULL }, /* NestedPartyIDSource */
+ { 526, 0, NULL }, /* SecondaryClOrdID */
+ { 527, 0, NULL }, /* SecondaryExecID */
+ { 528, 2, OrderCapacity_val },
+ { 529, 2, OrderRestrictions_val },
+ { 530, 2, MassCancelRequestType_val },
+ { 531, 2, MassCancelResponse_val },
+ { 532, 0, MassCancelRejectReason_val },
+ { 533, 0, NULL }, /* TotalAffectedOrders */
+ { 534, 0, NULL }, /* NoAffectedOrders */
+ { 535, 0, NULL }, /* AffectedOrderID */
+ { 536, 0, NULL }, /* AffectedSecondaryOrderID */
+ { 537, 0, QuoteType_val },
+ { 538, 0, NULL }, /* NestedPartyRole */
+ { 539, 0, NULL }, /* NoNestedPartyIDs */
+ { 540, 0, NULL }, /* TotalAccruedInterestAmt */
+ { 541, 0, NULL }, /* MaturityDate */
+ { 542, 0, NULL }, /* UnderlyingMaturityDate */
+ { 543, 0, NULL }, /* InstrRegistry */
+ { 544, 2, CashMargin_val },
+ { 545, 0, NULL }, /* NestedPartySubID */
+ { 546, 2, Scope_val },
+ { 547, 2, MDImplicitDelete_val },
+ { 548, 0, NULL }, /* CrossID */
+ { 549, 0, CrossType_val },
+ { 550, 0, CrossPrioritization_val },
+ { 551, 0, NULL }, /* OrigCrossID */
+ { 552, 2, NoSides_val },
+ { 553, 0, NULL }, /* Username */
+ { 554, 0, NULL }, /* Password */
+ { 555, 0, NULL }, /* NoLegs */
+ { 556, 0, NULL }, /* LegCurrency */
+ { 557, 0, NULL }, /* TotNoSecurityTypes */
+ { 558, 0, NULL }, /* NoSecurityTypes */
+ { 559, 0, SecurityListRequestType_val },
+ { 560, 0, SecurityRequestResult_val },
+ { 561, 0, NULL }, /* RoundLot */
+ { 562, 0, NULL }, /* MinTradeVol */
+ { 563, 0, MultiLegRptTypeReq_val },
+ { 564, 0, NULL }, /* LegPositionEffect */
+ { 565, 0, NULL }, /* LegCoveredOrUncovered */
+ { 566, 0, NULL }, /* LegPrice */
+ { 567, 0, TradSesStatusRejReason_val },
+ { 568, 0, NULL }, /* TradeRequestID */
+ { 569, 0, TradeRequestType_val },
+ { 570, 2, PreviouslyReported_val },
+ { 571, 0, NULL }, /* TradeReportID */
+ { 572, 0, NULL }, /* TradeReportRefID */
+ { 573, 2, MatchStatus_val },
+ { 574, 1, MatchType_val },
+ { 575, 2, OddLot_val },
+ { 576, 0, NULL }, /* NoClearingInstructions */
+ { 577, 0, ClearingInstruction_val },
+ { 578, 0, NULL }, /* TradeInputSource */
+ { 579, 0, NULL }, /* TradeInputDevice */
+ { 580, 0, NULL }, /* NoDates */
+ { 581, 0, AccountType_val },
+ { 582, 0, CustOrderCapacity_val },
+ { 583, 0, NULL }, /* ClOrdLinkID */
+ { 584, 0, NULL }, /* MassStatusReqID */
+ { 585, 0, MassStatusReqType_val },
+ { 586, 0, NULL }, /* OrigOrdModTime */
+ { 587, 0, NULL }, /* LegSettlType */
+ { 588, 0, NULL }, /* LegSettlDate */
+ { 589, 2, DayBookingInst_val },
+ { 590, 2, BookingUnit_val },
+ { 591, 2, PreallocMethod_val },
+ { 592, 0, NULL }, /* UnderlyingCountryOfIssue */
+ { 593, 0, NULL }, /* UnderlyingStateOrProvinceOfIssue */
+ { 594, 0, NULL }, /* UnderlyingLocaleOfIssue */
+ { 595, 0, NULL }, /* UnderlyingInstrRegistry */
+ { 596, 0, NULL }, /* LegCountryOfIssue */
+ { 597, 0, NULL }, /* LegStateOrProvinceOfIssue */
+ { 598, 0, NULL }, /* LegLocaleOfIssue */
+ { 599, 0, NULL }, /* LegInstrRegistry */
+ { 600, 0, NULL }, /* LegSymbol */
+ { 601, 0, NULL }, /* LegSymbolSfx */
+ { 602, 0, NULL }, /* LegSecurityID */
+ { 603, 0, NULL }, /* LegSecurityIDSource */
+ { 604, 0, NULL }, /* NoLegSecurityAltID */
+ { 605, 0, NULL }, /* LegSecurityAltID */
+ { 606, 0, NULL }, /* LegSecurityAltIDSource */
+ { 607, 0, NULL }, /* LegProduct */
+ { 608, 0, NULL }, /* LegCFICode */
+ { 609, 0, NULL }, /* LegSecurityType */
+ { 610, 0, NULL }, /* LegMaturityMonthYear */
+ { 611, 0, NULL }, /* LegMaturityDate */
+ { 612, 0, NULL }, /* LegStrikePrice */
+ { 613, 0, NULL }, /* LegOptAttribute */
+ { 614, 0, NULL }, /* LegContractMultiplier */
+ { 615, 0, NULL }, /* LegCouponRate */
+ { 616, 0, NULL }, /* LegSecurityExchange */
+ { 617, 0, NULL }, /* LegIssuer */
+ { 618, 0, NULL }, /* EncodedLegIssuerLen */
+ { 619, 0, NULL }, /* EncodedLegIssuer */
+ { 620, 0, NULL }, /* LegSecurityDesc */
+ { 621, 0, NULL }, /* EncodedLegSecurityDescLen */
+ { 622, 0, NULL }, /* EncodedLegSecurityDesc */
+ { 623, 0, NULL }, /* LegRatioQty */
+ { 624, 0, NULL }, /* LegSide */
+ { 625, 1, TradingSessionSubID_val },
+ { 626, 0, AllocType_val },
+ { 627, 0, NULL }, /* NoHops */
+ { 628, 0, NULL }, /* HopCompID */
+ { 629, 0, NULL }, /* HopSendingTime */
+ { 630, 0, NULL }, /* HopRefID */
+ { 631, 0, NULL }, /* MidPx */
+ { 632, 0, NULL }, /* BidYield */
+ { 633, 0, NULL }, /* MidYield */
+ { 634, 0, NULL }, /* OfferYield */
+ { 635, 1, ClearingFeeIndicator_val },
+ { 636, 2, WorkingIndicator_val },
+ { 637, 0, NULL }, /* LegLastPx */
+ { 638, 0, PriorityIndicator_val },
+ { 639, 0, NULL }, /* PriceImprovement */
+ { 640, 0, NULL }, /* Price2 */
+ { 641, 0, NULL }, /* LastForwardPoints2 */
+ { 642, 0, NULL }, /* BidForwardPoints2 */
+ { 643, 0, NULL }, /* OfferForwardPoints2 */
+ { 644, 0, NULL }, /* RFQReqID */
+ { 645, 0, NULL }, /* MktBidPx */
+ { 646, 0, NULL }, /* MktOfferPx */
+ { 647, 0, NULL }, /* MinBidSize */
+ { 648, 0, NULL }, /* MinOfferSize */
+ { 649, 0, NULL }, /* QuoteStatusReqID */
+ { 650, 2, LegalConfirm_val },
+ { 651, 0, NULL }, /* UnderlyingLastPx */
+ { 652, 0, NULL }, /* UnderlyingLastQty */
+ { 653, 0, SecDefStatus_val },
+ { 654, 0, NULL }, /* LegRefID */
+ { 655, 0, NULL }, /* ContraLegRefID */
+ { 656, 0, NULL }, /* SettlCurrBidFxRate */
+ { 657, 0, NULL }, /* SettlCurrOfferFxRate */
+ { 658, 0, QuoteRequestRejectReason_val },
+ { 659, 0, NULL }, /* SideComplianceID */
+ { 660, 0, AcctIDSource_val },
+ { 661, 0, NULL }, /* AllocAcctIDSource */
+ { 662, 0, NULL }, /* BenchmarkPrice */
+ { 663, 0, NULL }, /* BenchmarkPriceType */
+ { 664, 0, NULL }, /* ConfirmID */
+ { 665, 0, ConfirmStatus_val },
+ { 666, 0, ConfirmTransType_val },
+ { 667, 0, NULL }, /* ContractSettlMonth */
+ { 668, 0, DeliveryForm_val },
+ { 669, 0, NULL }, /* LastParPx */
+ { 670, 0, NULL }, /* NoLegAllocs */
+ { 671, 0, NULL }, /* LegAllocAccount */
+ { 672, 0, NULL }, /* LegIndividualAllocID */
+ { 673, 0, NULL }, /* LegAllocQty */
+ { 674, 0, NULL }, /* LegAllocAcctIDSource */
+ { 675, 0, NULL }, /* LegSettlCurrency */
+ { 676, 0, NULL }, /* LegBenchmarkCurveCurrency */
+ { 677, 0, NULL }, /* LegBenchmarkCurveName */
+ { 678, 0, NULL }, /* LegBenchmarkCurvePoint */
+ { 679, 0, NULL }, /* LegBenchmarkPrice */
+ { 680, 0, NULL }, /* LegBenchmarkPriceType */
+ { 681, 0, NULL }, /* LegBidPx */
+ { 682, 0, NULL }, /* LegIOIQty */
+ { 683, 0, NULL }, /* NoLegStipulations */
+ { 684, 0, NULL }, /* LegOfferPx */
+ { 685, 0, NULL }, /* LegOrderQty */
+ { 686, 0, NULL }, /* LegPriceType */
+ { 687, 0, NULL }, /* LegQty */
+ { 688, 0, NULL }, /* LegStipulationType */
+ { 689, 0, NULL }, /* LegStipulationValue */
+ { 690, 0, LegSwapType_val },
+ { 691, 0, NULL }, /* Pool */
+ { 692, 0, QuotePriceType_val },
+ { 693, 0, NULL }, /* QuoteRespID */
+ { 694, 0, QuoteRespType_val },
+ { 695, 0, NULL }, /* QuoteQualifier */
+ { 696, 0, NULL }, /* YieldRedemptionDate */
+ { 697, 0, NULL }, /* YieldRedemptionPrice */
+ { 698, 0, NULL }, /* YieldRedemptionPriceType */
+ { 699, 0, NULL }, /* BenchmarkSecurityID */
+ { 700, 0, NULL }, /* ReversalIndicator */
+ { 701, 0, NULL }, /* YieldCalcDate */
+ { 702, 0, NULL }, /* NoPositions */
+ { 703, 1, PosType_val },
+ { 704, 0, NULL }, /* LongQty */
+ { 705, 0, NULL }, /* ShortQty */
+ { 706, 0, PosQtyStatus_val },
+ { 707, 1, PosAmtType_val },
+ { 708, 0, NULL }, /* PosAmt */
+ { 709, 0, PosTransType_val },
+ { 710, 0, NULL }, /* PosReqID */
+ { 711, 0, NULL }, /* NoUnderlyings */
+ { 712, 0, PosMaintAction_val },
+ { 713, 0, NULL }, /* OrigPosReqRefID */
+ { 714, 0, NULL }, /* PosMaintRptRefID */
+ { 715, 0, NULL }, /* ClearingBusinessDate */
+ { 716, 1, SettlSessID_val },
+ { 717, 0, NULL }, /* SettlSessSubID */
+ { 718, 0, AdjustmentType_val },
+ { 719, 0, NULL }, /* ContraryInstructionIndicator */
+ { 720, 0, NULL }, /* PriorSpreadIndicator */
+ { 721, 0, NULL }, /* PosMaintRptID */
+ { 722, 0, PosMaintStatus_val },
+ { 723, 0, PosMaintResult_val },
+ { 724, 0, PosReqType_val },
+ { 725, 0, ResponseTransportType_val },
+ { 726, 0, NULL }, /* ResponseDestination */
+ { 727, 0, NULL }, /* TotalNumPosReports */
+ { 728, 0, PosReqResult_val },
+ { 729, 0, PosReqStatus_val },
+ { 730, 0, NULL }, /* SettlPrice */
+ { 731, 0, SettlPriceType_val },
+ { 732, 0, NULL }, /* UnderlyingSettlPrice */
+ { 733, 0, NULL }, /* UnderlyingSettlPriceType */
+ { 734, 0, NULL }, /* PriorSettlPrice */
+ { 735, 0, NULL }, /* NoQuoteQualifiers */
+ { 736, 0, NULL }, /* AllocSettlCurrency */
+ { 737, 0, NULL }, /* AllocSettlCurrAmt */
+ { 738, 0, NULL }, /* InterestAtMaturity */
+ { 739, 0, NULL }, /* LegDatedDate */
+ { 740, 0, NULL }, /* LegPool */
+ { 741, 0, NULL }, /* AllocInterestAtMaturity */
+ { 742, 0, NULL }, /* AllocAccruedInterestAmt */
+ { 743, 0, NULL }, /* DeliveryDate */
+ { 744, 2, AssignmentMethod_val },
+ { 745, 0, NULL }, /* AssignmentUnit */
+ { 746, 0, NULL }, /* OpenInterest */
+ { 747, 2, ExerciseMethod_val },
+ { 748, 0, NULL }, /* TotNumTradeReports */
+ { 749, 0, TradeRequestResult_val },
+ { 750, 0, TradeRequestStatus_val },
+ { 751, 0, TradeReportRejectReason_val },
+ { 752, 0, SideMultiLegReportingType_val },
+ { 753, 0, NULL }, /* NoPosAmt */
+ { 754, 0, NULL }, /* AutoAcceptIndicator */
+ { 755, 0, NULL }, /* AllocReportID */
+ { 756, 0, NULL }, /* NoNested2PartyIDs */
+ { 757, 0, NULL }, /* Nested2PartyID */
+ { 758, 0, NULL }, /* Nested2PartyIDSource */
+ { 759, 0, NULL }, /* Nested2PartyRole */
+ { 760, 0, NULL }, /* Nested2PartySubID */
+ { 761, 0, NULL }, /* BenchmarkSecurityIDSource */
+ { 762, 0, NULL }, /* SecuritySubType */
+ { 763, 0, NULL }, /* UnderlyingSecuritySubType */
+ { 764, 0, NULL }, /* LegSecuritySubType */
+ { 765, 0, NULL }, /* AllowableOneSidednessPct */
+ { 766, 0, NULL }, /* AllowableOneSidednessValue */
+ { 767, 0, NULL }, /* AllowableOneSidednessCurr */
+ { 768, 0, NULL }, /* NoTrdRegTimestamps */
+ { 769, 0, NULL }, /* TrdRegTimestamp */
+ { 770, 0, TrdRegTimestampType_val },
+ { 771, 0, NULL }, /* TrdRegTimestampOrigin */
+ { 772, 0, NULL }, /* ConfirmRefID */
+ { 773, 0, ConfirmType_val },
+ { 774, 0, ConfirmRejReason_val },
+ { 775, 0, BookingType_val },
+ { 776, 0, NULL }, /* IndividualAllocRejCode */
+ { 777, 0, NULL }, /* SettlInstMsgID */
+ { 778, 0, NULL }, /* NoSettlInst */
+ { 779, 0, NULL }, /* LastUpdateTime */
+ { 780, 0, AllocSettlInstType_val },
+ { 781, 0, NULL }, /* NoSettlPartyIDs */
+ { 782, 0, NULL }, /* SettlPartyID */
+ { 783, 0, NULL }, /* SettlPartyIDSource */
+ { 784, 0, NULL }, /* SettlPartyRole */
+ { 785, 0, NULL }, /* SettlPartySubID */
+ { 786, 0, NULL }, /* SettlPartySubIDType */
+ { 787, 2, DlvyInstType_val },
+ { 788, 0, TerminationType_val },
+ { 789, 0, NULL }, /* NextExpectedMsgSeqNum */
+ { 790, 0, NULL }, /* OrdStatusReqID */
+ { 791, 0, NULL }, /* SettlInstReqID */
+ { 792, 0, SettlInstReqRejCode_val },
+ { 793, 0, NULL }, /* SecondaryAllocID */
+ { 794, 0, AllocReportType_val },
+ { 795, 0, NULL }, /* AllocReportRefID */
+ { 796, 0, AllocCancReplaceReason_val },
+ { 797, 0, NULL }, /* CopyMsgIndicator */
+ { 798, 0, AllocAccountType_val },
+ { 799, 0, NULL }, /* OrderAvgPx */
+ { 800, 0, NULL }, /* OrderBookingQty */
+ { 801, 0, NULL }, /* NoSettlPartySubIDs */
+ { 802, 0, NULL }, /* NoPartySubIDs */
+ { 803, 0, PartySubIDType_val },
+ { 804, 0, NULL }, /* NoNestedPartySubIDs */
+ { 805, 0, NULL }, /* NestedPartySubIDType */
+ { 806, 0, NULL }, /* NoNested2PartySubIDs */
+ { 807, 0, NULL }, /* Nested2PartySubIDType */
+ { 808, 0, AllocIntermedReqType_val },
+ { 810, 0, NULL }, /* UnderlyingPx */
+ { 811, 0, NULL }, /* PriceDelta */
+ { 812, 0, NULL }, /* ApplQueueMax */
+ { 813, 0, NULL }, /* ApplQueueDepth */
+ { 814, 0, ApplQueueResolution_val },
+ { 815, 0, ApplQueueAction_val },
+ { 816, 0, NULL }, /* NoAltMDSource */
+ { 817, 0, NULL }, /* AltMDSourceID */
+ { 818, 0, NULL }, /* SecondaryTradeReportID */
+ { 819, 0, AvgPxIndicator_val },
+ { 820, 0, NULL }, /* TradeLinkID */
+ { 821, 0, NULL }, /* OrderInputDevice */
+ { 822, 0, NULL }, /* UnderlyingTradingSessionID */
+ { 823, 0, NULL }, /* UnderlyingTradingSessionSubID */
+ { 824, 0, NULL }, /* TradeLegRefID */
+ { 825, 0, NULL }, /* ExchangeRule */
+ { 826, 0, TradeAllocIndicator_val },
+ { 827, 0, ExpirationCycle_val },
+ { 828, 0, TrdType_val },
+ { 829, 0, TrdSubType_val },
+ { 830, 0, NULL }, /* TransferReason */
+ { 831, 0, NULL }, /* AsgnReqID */
+ { 832, 0, NULL }, /* TotNumAssignmentReports */
+ { 833, 0, NULL }, /* AsgnRptID */
+ { 834, 0, NULL }, /* ThresholdAmount */
+ { 835, 0, PegMoveType_val },
+ { 836, 0, PegOffsetType_val },
+ { 837, 0, PegLimitType_val },
+ { 838, 0, PegRoundDirection_val },
+ { 839, 0, NULL }, /* PeggedPrice */
+ { 840, 0, PegScope_val },
+ { 841, 0, DiscretionMoveType_val },
+ { 842, 0, DiscretionOffsetType_val },
+ { 843, 0, DiscretionLimitType_val },
+ { 844, 0, DiscretionRoundDirection_val },
+ { 845, 0, NULL }, /* DiscretionPrice */
+ { 846, 0, DiscretionScope_val },
+ { 847, 0, TargetStrategy_val },
+ { 848, 0, NULL }, /* TargetStrategyParameters */
+ { 849, 0, NULL }, /* ParticipationRate */
+ { 850, 0, NULL }, /* TargetStrategyPerformance */
+ { 851, 0, LastLiquidityInd_val },
+ { 852, 2, PublishTrdIndicator_val },
+ { 853, 0, ShortSaleReason_val },
+ { 854, 0, QtyType_val },
+ { 855, 0, NULL }, /* SecondaryTrdType */
+ { 856, 0, TradeReportType_val },
+ { 857, 0, AllocNoOrdersType_val },
+ { 858, 0, NULL }, /* SharedCommission */
+ { 859, 0, NULL }, /* ConfirmReqID */
+ { 860, 0, NULL }, /* AvgParPx */
+ { 861, 0, NULL }, /* ReportedPx */
+ { 862, 0, NULL }, /* NoCapacities */
+ { 863, 0, NULL }, /* OrderCapacityQty */
+ { 864, 0, NULL }, /* NoEvents */
+ { 865, 0, EventType_val },
+ { 866, 0, NULL }, /* EventDate */
+ { 867, 0, NULL }, /* EventPx */
+ { 868, 0, NULL }, /* EventText */
+ { 869, 0, NULL }, /* PctAtRisk */
+ { 870, 0, NULL }, /* NoInstrAttrib */
+ { 871, 0, InstrAttribType_val },
+ { 872, 0, NULL }, /* InstrAttribValue */
+ { 873, 0, NULL }, /* DatedDate */
+ { 874, 0, NULL }, /* InterestAccrualDate */
+ { 875, 0, CPProgram_val },
+ { 876, 0, NULL }, /* CPRegType */
+ { 877, 0, NULL }, /* UnderlyingCPProgram */
+ { 878, 0, NULL }, /* UnderlyingCPRegType */
+ { 879, 0, NULL }, /* UnderlyingQty */
+ { 880, 0, NULL }, /* TrdMatchID */
+ { 881, 0, NULL }, /* SecondaryTradeReportRefID */
+ { 882, 0, NULL }, /* UnderlyingDirtyPrice */
+ { 883, 0, NULL }, /* UnderlyingEndPrice */
+ { 884, 0, NULL }, /* UnderlyingStartValue */
+ { 885, 0, NULL }, /* UnderlyingCurrentValue */
+ { 886, 0, NULL }, /* UnderlyingEndValue */
+ { 887, 0, NULL }, /* NoUnderlyingStips */
+ { 888, 0, NULL }, /* UnderlyingStipType */
+ { 889, 0, NULL }, /* UnderlyingStipValue */
+ { 890, 0, NULL }, /* MaturityNetMoney */
+ { 891, 0, MiscFeeBasis_val },
+ { 892, 0, NULL }, /* TotNoAllocs */
+ { 893, 2, LastFragment_val },
+ { 894, 0, NULL }, /* CollReqID */
+ { 895, 0, CollAsgnReason_val },
+ { 896, 0, CollInquiryQualifier_val },
+ { 897, 0, NULL }, /* NoTrades */
+ { 898, 0, NULL }, /* MarginRatio */
+ { 899, 0, NULL }, /* MarginExcess */
+ { 900, 0, NULL }, /* TotalNetValue */
+ { 901, 0, NULL }, /* CashOutstanding */
+ { 902, 0, NULL }, /* CollAsgnID */
+ { 903, 0, CollAsgnTransType_val },
+ { 904, 0, NULL }, /* CollRespID */
+ { 905, 0, CollAsgnRespType_val },
+ { 906, 0, CollAsgnRejectReason_val },
+ { 907, 0, NULL }, /* CollAsgnRefID */
+ { 908, 0, NULL }, /* CollRptID */
+ { 909, 0, NULL }, /* CollInquiryID */
+ { 910, 0, CollStatus_val },
+ { 911, 0, NULL }, /* TotNumReports */
+ { 912, 2, LastRptRequested_val },
+ { 913, 0, NULL }, /* AgreementDesc */
+ { 914, 0, NULL }, /* AgreementID */
+ { 915, 0, NULL }, /* AgreementDate */
+ { 916, 0, NULL }, /* StartDate */
+ { 917, 0, NULL }, /* EndDate */
+ { 918, 0, NULL }, /* AgreementCurrency */
+ { 919, 0, DeliveryType_val },
+ { 920, 0, NULL }, /* EndAccruedInterestAmt */
+ { 921, 0, NULL }, /* StartCash */
+ { 922, 0, NULL }, /* EndCash */
+ { 923, 0, NULL }, /* UserRequestID */
+ { 924, 0, UserRequestType_val },
+ { 925, 0, NULL }, /* NewPassword */
+ { 926, 0, UserStatus_val },
+ { 927, 0, NULL }, /* UserStatusText */
+ { 928, 0, StatusValue_val },
+ { 929, 0, NULL }, /* StatusText */
+ { 930, 0, NULL }, /* RefCompID */
+ { 931, 0, NULL }, /* RefSubID */
+ { 932, 0, NULL }, /* NetworkResponseID */
+ { 933, 0, NULL }, /* NetworkRequestID */
+ { 934, 0, NULL }, /* LastNetworkResponseID */
+ { 935, 0, NetworkRequestType_val },
+ { 936, 0, NULL }, /* NoCompIDs */
+ { 937, 0, NetworkStatusResponseType_val },
+ { 938, 0, NULL }, /* NoCollInquiryQualifier */
+ { 939, 0, TrdRptStatus_val },
+ { 940, 0, AffirmStatus_val },
+ { 941, 0, NULL }, /* UnderlyingStrikeCurrency */
+ { 942, 0, NULL }, /* LegStrikeCurrency */
+ { 943, 0, NULL }, /* TimeBracket */
+ { 944, 0, CollAction_val },
+ { 945, 0, CollInquiryStatus_val },
+ { 946, 0, CollInquiryResult_val },
+ { 947, 0, NULL }, /* StrikeCurrency */
+ { 948, 0, NULL }, /* NoNested3PartyIDs */
+ { 949, 0, NULL }, /* Nested3PartyID */
+ { 950, 0, NULL }, /* Nested3PartyIDSource */
+ { 951, 0, NULL }, /* Nested3PartyRole */
+ { 952, 0, NULL }, /* NoNested3PartySubIDs */
+ { 953, 0, NULL }, /* Nested3PartySubID */
+ { 954, 0, NULL }, /* Nested3PartySubIDType */
+ { 955, 0, NULL }, /* LegContractSettlMonth */
+ { 956, 0, NULL }, /* LegInterestAccrualDate */
+ { 957, 0, NULL }, /* NoStrategyParameters */
+ { 958, 0, NULL }, /* StrategyParameterName */
+ { 959, 0, StrategyParameterType_val },
+ { 960, 0, NULL }, /* StrategyParameterValue */
+ { 961, 0, NULL }, /* HostCrossID */
+ { 962, 0, NULL }, /* SideTimeInForce */
+ { 963, 0, NULL }, /* MDReportID */
+ { 964, 0, NULL }, /* SecurityReportID */
+ { 965, 1, SecurityStatus_val },
+ { 966, 0, NULL }, /* SettleOnOpenFlag */
+ { 967, 0, NULL }, /* StrikeMultiplier */
+ { 968, 0, NULL }, /* StrikeValue */
+ { 969, 0, NULL }, /* MinPriceIncrement */
+ { 970, 0, NULL }, /* PositionLimit */
+ { 971, 0, NULL }, /* NTPositionLimit */
+ { 972, 0, NULL }, /* UnderlyingAllocationPercent */
+ { 973, 0, NULL }, /* UnderlyingCashAmount */
+ { 974, 1, UnderlyingCashType_val },
+ { 975, 0, UnderlyingSettlementType_val },
+ { 976, 0, NULL }, /* QuantityDate */
+ { 977, 0, NULL }, /* ContIntRptID */
+ { 978, 0, NULL }, /* LateIndicator */
+ { 979, 0, NULL }, /* InputSource */
+ { 980, 2, SecurityUpdateAction_val },
+ { 981, 0, NULL }, /* NoExpiration */
+ { 982, 0, ExpirationQtyType_val },
+ { 983, 0, NULL }, /* ExpQty */
+ { 984, 0, NULL }, /* NoUnderlyingAmounts */
+ { 985, 0, NULL }, /* UnderlyingPayAmount */
+ { 986, 0, NULL }, /* UnderlyingCollectAmount */
+ { 987, 0, NULL }, /* UnderlyingSettlementDate */
+ { 988, 0, NULL }, /* UnderlyingSettlementStatus */
+ { 989, 0, NULL }, /* SecondaryIndividualAllocID */
+ { 990, 0, NULL }, /* LegReportID */
+ { 991, 0, NULL }, /* RndPx */
+ { 992, 0, IndividualAllocType_val },
+ { 993, 0, NULL }, /* AllocCustomerCapacity */
+ { 994, 0, NULL }, /* TierCode */
+ { 996, 1, UnitOfMeasure_val },
+ { 997, 1, TimeUnit_val },
+ { 998, 0, NULL }, /* UnderlyingUnitOfMeasure */
+ { 999, 0, NULL }, /* LegUnitOfMeasure */
+ { 1000, 0, NULL }, /* UnderlyingTimeUnit */
+ { 1001, 0, NULL }, /* LegTimeUnit */
+ { 1002, 0, AllocMethod_val },
+ { 1003, 0, NULL }, /* TradeID */
+ { 1005, 0, NULL }, /* SideTradeReportID */
+ { 1006, 0, NULL }, /* SideFillStationCd */
+ { 1007, 0, NULL }, /* SideReasonCd */
+ { 1008, 0, NULL }, /* SideTrdSubTyp */
+ { 1009, 0, NULL }, /* SideLastQty */
+ { 1011, 0, NULL }, /* MessageEventSource */
+ { 1012, 0, NULL }, /* SideTrdRegTimestamp */
+ { 1013, 0, NULL }, /* SideTrdRegTimestampType */
+ { 1014, 0, NULL }, /* SideTrdRegTimestampSrc */
+ { 1015, 2, AsOfIndicator_val },
+ { 1016, 0, NULL }, /* NoSideTrdRegTS */
+ { 1017, 0, NULL }, /* LegOptionRatio */
+ { 1018, 0, NULL }, /* NoInstrumentParties */
+ { 1019, 0, NULL }, /* InstrumentPartyID */
+ { 1020, 0, NULL }, /* TradeVolume */
+ { 1021, 0, MDBookType_val },
+ { 1022, 0, NULL }, /* MDFeedType */
+ { 1023, 0, NULL }, /* MDPriceLevel */
+ { 1024, 0, MDOriginType_val },
+ { 1025, 0, NULL }, /* FirstPx */
+ { 1026, 0, NULL }, /* MDEntrySpotRate */
+ { 1027, 0, NULL }, /* MDEntryForwardPoints */
+ { 1028, 0, NULL }, /* ManualOrderIndicator */
+ { 1029, 0, NULL }, /* CustDirectedOrder */
+ { 1030, 0, NULL }, /* ReceivedDeptID */
+ { 1031, 2, CustOrderHandlingInst_val },
+ { 1032, 0, OrderHandlingInstSource_val },
+ { 1033, 1, DeskType_val },
+ { 1034, 0, DeskTypeSource_val },
+ { 1035, 2, DeskOrderHandlingInst_val },
+ { 1036, 2, ExecAckStatus_val },
+ { 1037, 0, NULL }, /* UnderlyingDeliveryAmount */
+ { 1038, 0, NULL }, /* UnderlyingCapValue */
+ { 1039, 0, NULL }, /* UnderlyingSettlMethod */
+ { 1040, 0, NULL }, /* SecondaryTradeID */
+ { 1041, 0, NULL }, /* FirmTradeID */
+ { 1042, 0, NULL }, /* SecondaryFirmTradeID */
+ { 1043, 0, CollApplType_val },
+ { 1044, 0, NULL }, /* UnderlyingAdjustedQuantity */
+ { 1045, 0, NULL }, /* UnderlyingFXRate */
+ { 1046, 2, UnderlyingFXRateCalc_val },
+ { 1047, 2, AllocPositionEffect_val },
+ { 1048, 2, DealingCapacity_val },
+ { 1049, 0, NULL }, /* InstrmtAssignmentMethod */
+ { 1050, 0, NULL }, /* InstrumentPartyIDSource */
+ { 1051, 0, NULL }, /* InstrumentPartyRole */
+ { 1052, 0, NULL }, /* NoInstrumentPartySubIDs */
+ { 1053, 0, NULL }, /* InstrumentPartySubID */
+ { 1054, 0, NULL }, /* InstrumentPartySubIDType */
+ { 1055, 0, NULL }, /* PositionCurrency */
+ { 1056, 0, NULL }, /* CalculatedCcyLastQty */
+ { 1057, 2, AggressorIndicator_val },
+ { 1058, 0, NULL }, /* NoUndlyInstrumentParties */
+ { 1059, 0, NULL }, /* UnderlyingInstrumentPartyID */
+ { 1060, 0, NULL }, /* UnderlyingInstrumentPartyIDSource */
+ { 1061, 0, NULL }, /* UnderlyingInstrumentPartyRole */
+ { 1062, 0, NULL }, /* NoUndlyInstrumentPartySubIDs */
+ { 1063, 0, NULL }, /* UnderlyingInstrumentPartySubID */
+ { 1064, 0, NULL }, /* UnderlyingInstrumentPartySubIDType */
+ { 1065, 0, NULL }, /* BidSwapPoints */
+ { 1066, 0, NULL }, /* OfferSwapPoints */
+ { 1067, 0, NULL }, /* LegBidForwardPoints */
+ { 1068, 0, NULL }, /* LegOfferForwardPoints */
+ { 1069, 0, NULL }, /* SwapPoints */
+ { 1070, 0, MDQuoteType_val },
+ { 1071, 0, NULL }, /* LastSwapPoints */
+ { 1072, 0, NULL }, /* SideGrossTradeAmt */
+ { 1073, 0, NULL }, /* LegLastForwardPoints */
+ { 1074, 0, NULL }, /* LegCalculatedCcyLastQty */
+ { 1075, 0, NULL }, /* LegGrossTradeAmt */
+ { 1079, 0, NULL }, /* MaturityTime */
+ { 1080, 0, NULL }, /* RefOrderID */
+ { 1081, 2, RefOrderIDSource_val },
+ { 1082, 0, NULL }, /* SecondaryDisplayQty */
+ { 1083, 2, DisplayWhen_val },
+ { 1084, 2, DisplayMethod_val },
+ { 1085, 0, NULL }, /* DisplayLowQty */
+ { 1086, 0, NULL }, /* DisplayHighQty */
+ { 1087, 0, NULL }, /* DisplayMinIncr */
+ { 1088, 0, NULL }, /* RefreshQty */
+ { 1089, 0, NULL }, /* MatchIncrement */
+ { 1090, 0, NULL }, /* MaxPriceLevels */
+ { 1091, 0, NULL }, /* PreTradeAnonymity */
+ { 1092, 2, PriceProtectionScope_val },
+ { 1093, 2, LotType_val },
+ { 1094, 0, PegPriceType_val },
+ { 1095, 0, NULL }, /* PeggedRefPrice */
+ { 1096, 0, NULL }, /* PegSecurityIDSource */
+ { 1097, 0, NULL }, /* PegSecurityID */
+ { 1098, 0, NULL }, /* PegSymbol */
+ { 1099, 0, NULL }, /* PegSecurityDesc */
+ { 1100, 2, TriggerType_val },
+ { 1101, 2, TriggerAction_val },
+ { 1102, 0, NULL }, /* TriggerPrice */
+ { 1103, 0, NULL }, /* TriggerSymbol */
+ { 1104, 0, NULL }, /* TriggerSecurityID */
+ { 1105, 0, NULL }, /* TriggerSecurityIDSource */
+ { 1106, 0, NULL }, /* TriggerSecurityDesc */
+ { 1107, 2, TriggerPriceType_val },
+ { 1108, 2, TriggerPriceTypeScope_val },
+ { 1109, 2, TriggerPriceDirection_val },
+ { 1110, 0, NULL }, /* TriggerNewPrice */
+ { 1111, 2, TriggerOrderType_val },
+ { 1112, 0, NULL }, /* TriggerNewQty */
+ { 1113, 0, NULL }, /* TriggerTradingSessionID */
+ { 1114, 0, NULL }, /* TriggerTradingSessionSubID */
+ { 1115, 2, OrderCategory_val },
+ { 1116, 0, NULL }, /* NoRootPartyIDs */
+ { 1117, 0, NULL }, /* RootPartyID */
+ { 1118, 0, NULL }, /* RootPartyIDSource */
+ { 1119, 0, NULL }, /* RootPartyRole */
+ { 1120, 0, NULL }, /* NoRootPartySubIDs */
+ { 1121, 0, NULL }, /* RootPartySubID */
+ { 1122, 0, NULL }, /* RootPartySubIDType */
+ { 1123, 2, TradeHandlingInstr_val },
+ { 1124, 0, NULL }, /* OrigTradeHandlingInstr */
+ { 1125, 0, NULL }, /* OrigTradeDate */
+ { 1126, 0, NULL }, /* OrigTradeID */
+ { 1127, 0, NULL }, /* OrigSecondaryTradeID */
+ { 1128, 1, ApplVerID_val },
+ { 1129, 0, NULL }, /* CstmApplVerID */
+ { 1130, 0, NULL }, /* RefApplVerID */
+ { 1131, 0, NULL }, /* RefCstmApplVerID */
+ { 1132, 0, NULL }, /* TZTransactTime */
+ { 1133, 2, ExDestinationIDSource_val },
+ { 1134, 0, NULL }, /* ReportedPxDiff */
+ { 1135, 0, NULL }, /* RptSys */
+ { 1136, 0, NULL }, /* AllocClearingFeeIndicator */
+ { 1137, 0, NULL }, /* DefaultApplVerID */
+ { 1138, 0, NULL }, /* DisplayQty */
+ { 1139, 0, NULL }, /* ExchangeSpecialInstructions */
+ { 1140, 0, NULL }, /* MaxTradeVol */
+ { 1141, 0, NULL }, /* NoMDFeedTypes */
+ { 1142, 0, NULL }, /* MatchAlgorithm */
+ { 1143, 0, NULL }, /* MaxPriceVariation */
+ { 1144, 0, ImpliedMarketIndicator_val },
+ { 1145, 0, NULL }, /* EventTime */
+ { 1146, 0, NULL }, /* MinPriceIncrementAmount */
+ { 1147, 0, NULL }, /* UnitOfMeasureQty */
+ { 1148, 0, NULL }, /* LowLimitPrice */
+ { 1149, 0, NULL }, /* HighLimitPrice */
+ { 1150, 0, NULL }, /* TradingReferencePrice */
+ { 1151, 0, NULL }, /* SecurityGroup */
+ { 1152, 0, NULL }, /* LegNumber */
+ { 1153, 0, NULL }, /* SettlementCycleNo */
+ { 1154, 0, NULL }, /* SideCurrency */
+ { 1155, 0, NULL }, /* SideSettlCurrency */
+ { 1156, 0, NULL }, /* ApplExtID */
+ { 1157, 0, NULL }, /* CcyAmt */
+ { 1158, 0, NULL }, /* NoSettlDetails */
+ { 1159, 0, SettlObligMode_val },
+ { 1160, 0, NULL }, /* SettlObligMsgID */
+ { 1161, 0, NULL }, /* SettlObligID */
+ { 1162, 2, SettlObligTransType_val },
+ { 1163, 0, NULL }, /* SettlObligRefID */
+ { 1164, 2, SettlObligSource_val },
+ { 1165, 0, NULL }, /* NoSettlOblig */
+ { 1166, 0, NULL }, /* QuoteMsgID */
+ { 1167, 0, QuoteEntryStatus_val },
+ { 1168, 0, NULL }, /* TotNoCxldQuotes */
+ { 1169, 0, NULL }, /* TotNoAccQuotes */
+ { 1170, 0, NULL }, /* TotNoRejQuotes */
+ { 1171, 0, NULL }, /* PrivateQuote */
+ { 1172, 0, RespondentType_val },
+ { 1173, 0, NULL }, /* MDSubBookType */
+ { 1174, 0, SecurityTradingEvent_val },
+ { 1175, 0, NULL }, /* NoStatsIndicators */
+ { 1176, 0, StatsType_val },
+ { 1177, 0, NULL }, /* NoOfSecSizes */
+ { 1178, 0, MDSecSizeType_val },
+ { 1179, 0, NULL }, /* MDSecSize */
+ { 1180, 0, NULL }, /* ApplID */
+ { 1181, 0, NULL }, /* ApplSeqNum */
+ { 1182, 0, NULL }, /* ApplBegSeqNum */
+ { 1183, 0, NULL }, /* ApplEndSeqNum */
+ { 1184, 0, NULL }, /* SecurityXMLLen */
+ { 1185, 0, NULL }, /* SecurityXML */
+ { 1186, 0, NULL }, /* SecurityXMLSchema */
+ { 1187, 0, NULL }, /* RefreshIndicator */
+ { 1188, 0, NULL }, /* Volatility */
+ { 1189, 0, NULL }, /* TimeToExpiration */
+ { 1190, 0, NULL }, /* RiskFreeRate */
+ { 1191, 0, NULL }, /* PriceUnitOfMeasure */
+ { 1192, 0, NULL }, /* PriceUnitOfMeasureQty */
+ { 1193, 2, SettlMethod_val },
+ { 1194, 0, ExerciseStyle_val },
+ { 1195, 0, NULL }, /* OptPayoutAmount */
+ { 1196, 1, PriceQuoteMethod_val },
+ { 1197, 1, ValuationMethod_val },
+ { 1198, 0, ListMethod_val },
+ { 1199, 0, NULL }, /* CapPrice */
+ { 1200, 0, NULL }, /* FloorPrice */
+ { 1201, 0, NULL }, /* NoStrikeRules */
+ { 1202, 0, NULL }, /* StartStrikePxRange */
+ { 1203, 0, NULL }, /* EndStrikePxRange */
+ { 1204, 0, NULL }, /* StrikeIncrement */
+ { 1205, 0, NULL }, /* NoTickRules */
+ { 1206, 0, NULL }, /* StartTickPriceRange */
+ { 1207, 0, NULL }, /* EndTickPriceRange */
+ { 1208, 0, NULL }, /* TickIncrement */
+ { 1209, 0, TickRuleType_val },
+ { 1210, 0, NULL }, /* NestedInstrAttribType */
+ { 1211, 0, NULL }, /* NestedInstrAttribValue */
+ { 1212, 0, NULL }, /* LegMaturityTime */
+ { 1213, 0, NULL }, /* UnderlyingMaturityTime */
+ { 1214, 0, NULL }, /* DerivativeSymbol */
+ { 1215, 0, NULL }, /* DerivativeSymbolSfx */
+ { 1216, 0, NULL }, /* DerivativeSecurityID */
+ { 1217, 0, NULL }, /* DerivativeSecurityIDSource */
+ { 1218, 0, NULL }, /* NoDerivativeSecurityAltID */
+ { 1219, 0, NULL }, /* DerivativeSecurityAltID */
+ { 1220, 0, NULL }, /* DerivativeSecurityAltIDSource */
+ { 1221, 0, NULL }, /* SecondaryLowLimitPrice */
+ { 1222, 0, NULL }, /* MaturityRuleID */
+ { 1223, 0, NULL }, /* StrikeRuleID */
+ { 1224, 0, NULL }, /* LegUnitOfMeasureQty */
+ { 1225, 0, NULL }, /* DerivativeOptPayAmount */
+ { 1226, 0, NULL }, /* EndMaturityMonthYear */
+ { 1227, 0, NULL }, /* ProductComplex */
+ { 1228, 0, NULL }, /* DerivativeProductComplex */
+ { 1229, 0, NULL }, /* MaturityMonthYearIncrement */
+ { 1230, 0, NULL }, /* SecondaryHighLimitPrice */
+ { 1231, 0, NULL }, /* MinLotSize */
+ { 1232, 0, NULL }, /* NoExecInstRules */
+ { 1234, 0, NULL }, /* NoLotTypeRules */
+ { 1235, 0, NULL }, /* NoMatchRules */
+ { 1236, 0, NULL }, /* NoMaturityRules */
+ { 1237, 0, NULL }, /* NoOrdTypeRules */
+ { 1239, 0, NULL }, /* NoTimeInForceRules */
+ { 1240, 0, NULL }, /* SecondaryTradingReferencePrice */
+ { 1241, 0, NULL }, /* StartMaturityMonthYear */
+ { 1242, 0, NULL }, /* FlexProductEligibilityIndicator */
+ { 1243, 0, NULL }, /* DerivFlexProductEligibilityIndicator */
+ { 1244, 0, NULL }, /* FlexibleIndicator */
+ { 1245, 0, NULL }, /* TradingCurrency */
+ { 1246, 0, NULL }, /* DerivativeProduct */
+ { 1247, 0, NULL }, /* DerivativeSecurityGroup */
+ { 1248, 0, NULL }, /* DerivativeCFICode */
+ { 1249, 0, NULL }, /* DerivativeSecurityType */
+ { 1250, 0, NULL }, /* DerivativeSecuritySubType */
+ { 1251, 0, NULL }, /* DerivativeMaturityMonthYear */
+ { 1252, 0, NULL }, /* DerivativeMaturityDate */
+ { 1253, 0, NULL }, /* DerivativeMaturityTime */
+ { 1254, 0, NULL }, /* DerivativeSettleOnOpenFlag */
+ { 1255, 0, NULL }, /* DerivativeInstrmtAssignmentMethod */
+ { 1256, 0, NULL }, /* DerivativeSecurityStatus */
+ { 1257, 0, NULL }, /* DerivativeInstrRegistry */
+ { 1258, 0, NULL }, /* DerivativeCountryOfIssue */
+ { 1259, 0, NULL }, /* DerivativeStateOrProvinceOfIssue */
+ { 1260, 0, NULL }, /* DerivativeLocaleOfIssue */
+ { 1261, 0, NULL }, /* DerivativeStrikePrice */
+ { 1262, 0, NULL }, /* DerivativeStrikeCurrency */
+ { 1263, 0, NULL }, /* DerivativeStrikeMultiplier */
+ { 1264, 0, NULL }, /* DerivativeStrikeValue */
+ { 1265, 0, NULL }, /* DerivativeOptAttribute */
+ { 1266, 0, NULL }, /* DerivativeContractMultiplier */
+ { 1267, 0, NULL }, /* DerivativeMinPriceIncrement */
+ { 1268, 0, NULL }, /* DerivativeMinPriceIncrementAmount */
+ { 1269, 0, NULL }, /* DerivativeUnitOfMeasure */
+ { 1270, 0, NULL }, /* DerivativeUnitOfMeasureQty */
+ { 1271, 0, NULL }, /* DerivativeTimeUnit */
+ { 1272, 0, NULL }, /* DerivativeSecurityExchange */
+ { 1273, 0, NULL }, /* DerivativePositionLimit */
+ { 1274, 0, NULL }, /* DerivativeNTPositionLimit */
+ { 1275, 0, NULL }, /* DerivativeIssuer */
+ { 1276, 0, NULL }, /* DerivativeIssueDate */
+ { 1277, 0, NULL }, /* DerivativeEncodedIssuerLen */
+ { 1278, 0, NULL }, /* DerivativeEncodedIssuer */
+ { 1279, 0, NULL }, /* DerivativeSecurityDesc */
+ { 1280, 0, NULL }, /* DerivativeEncodedSecurityDescLen */
+ { 1281, 0, NULL }, /* DerivativeEncodedSecurityDesc */
+ { 1282, 0, NULL }, /* DerivativeSecurityXMLLen */
+ { 1283, 0, NULL }, /* DerivativeSecurityXML */
+ { 1284, 0, NULL }, /* DerivativeSecurityXMLSchema */
+ { 1285, 0, NULL }, /* DerivativeContractSettlMonth */
+ { 1286, 0, NULL }, /* NoDerivativeEvents */
+ { 1287, 0, NULL }, /* DerivativeEventType */
+ { 1288, 0, NULL }, /* DerivativeEventDate */
+ { 1289, 0, NULL }, /* DerivativeEventTime */
+ { 1290, 0, NULL }, /* DerivativeEventPx */
+ { 1291, 0, NULL }, /* DerivativeEventText */
+ { 1292, 0, NULL }, /* NoDerivativeInstrumentParties */
+ { 1293, 0, NULL }, /* DerivativeInstrumentPartyID */
+ { 1294, 0, NULL }, /* DerivativeInstrumentPartyIDSource */
+ { 1295, 0, NULL }, /* DerivativeInstrumentPartyRole */
+ { 1296, 0, NULL }, /* NoDerivativeInstrumentPartySubIDs */
+ { 1297, 0, NULL }, /* DerivativeInstrumentPartySubID */
+ { 1298, 0, NULL }, /* DerivativeInstrumentPartySubIDType */
+ { 1299, 0, NULL }, /* DerivativeExerciseStyle */
+ { 1300, 0, NULL }, /* MarketSegmentID */
+ { 1301, 0, NULL }, /* MarketID */
+ { 1302, 0, MaturityMonthYearIncrementUnits_val },
+ { 1303, 0, MaturityMonthYearFormat_val },
+ { 1304, 0, NULL }, /* StrikeExerciseStyle */
+ { 1305, 0, NULL }, /* SecondaryPriceLimitType */
+ { 1306, 0, PriceLimitType_val },
+ { 1307, 0, DerivativeSecurityListRequestType_val },
+ { 1308, 0, NULL }, /* ExecInstValue */
+ { 1309, 0, NULL }, /* NoTradingSessionRules */
+ { 1310, 0, NULL }, /* NoMarketSegments */
+ { 1311, 0, NULL }, /* NoDerivativeInstrAttrib */
+ { 1312, 0, NULL }, /* NoNestedInstrAttrib */
+ { 1313, 0, NULL }, /* DerivativeInstrAttribType */
+ { 1314, 0, NULL }, /* DerivativeInstrAttribValue */
+ { 1315, 0, NULL }, /* DerivativePriceUnitOfMeasure */
+ { 1316, 0, NULL }, /* DerivativePriceUnitOfMeasureQty */
+ { 1317, 0, NULL }, /* DerivativeSettlMethod */
+ { 1318, 0, NULL }, /* DerivativePriceQuoteMethod */
+ { 1319, 0, NULL }, /* DerivativeValuationMethod */
+ { 1320, 0, NULL }, /* DerivativeListMethod */
+ { 1321, 0, NULL }, /* DerivativeCapPrice */
+ { 1322, 0, NULL }, /* DerivativeFloorPrice */
+ { 1323, 0, NULL }, /* DerivativePutOrCall */
+ { 1324, 0, NULL }, /* ListUpdateAction */
+ { 1325, 0, NULL }, /* ParentMktSegmID */
+ { 1326, 0, NULL }, /* TradingSessionDesc */
+ { 1327, 0, NULL }, /* TradSesUpdateAction */
+ { 1328, 0, NULL }, /* RejectText */
+ { 1329, 0, NULL }, /* FeeMultiplier */
+ { 1330, 0, NULL }, /* UnderlyingLegSymbol */
+ { 1331, 0, NULL }, /* UnderlyingLegSymbolSfx */
+ { 1332, 0, NULL }, /* UnderlyingLegSecurityID */
+ { 1333, 0, NULL }, /* UnderlyingLegSecurityIDSource */
+ { 1334, 0, NULL }, /* NoUnderlyingLegSecurityAltID */
+ { 1335, 0, NULL }, /* UnderlyingLegSecurityAltID */
+ { 1336, 0, NULL }, /* UnderlyingLegSecurityAltIDSource */
+ { 1337, 0, NULL }, /* UnderlyingLegSecurityType */
+ { 1338, 0, NULL }, /* UnderlyingLegSecuritySubType */
+ { 1339, 0, NULL }, /* UnderlyingLegMaturityMonthYear */
+ { 1340, 0, NULL }, /* UnderlyingLegStrikePrice */
+ { 1341, 0, NULL }, /* UnderlyingLegSecurityExchange */
+ { 1342, 0, NULL }, /* NoOfLegUnderlyings */
+ { 1343, 0, NULL }, /* UnderlyingLegPutOrCall */
+ { 1344, 0, NULL }, /* UnderlyingLegCFICode */
+ { 1345, 0, NULL }, /* UnderlyingLegMaturityDate */
+ { 1346, 0, NULL }, /* ApplReqID */
+ { 1347, 0, ApplReqType_val },
+ { 1348, 0, ApplResponseType_val },
+ { 1349, 0, NULL }, /* ApplTotalMessageCount */
+ { 1350, 0, NULL }, /* ApplLastSeqNum */
+ { 1351, 0, NULL }, /* NoApplIDs */
+ { 1352, 0, NULL }, /* ApplResendFlag */
+ { 1353, 0, NULL }, /* ApplResponseID */
+ { 1354, 0, ApplResponseError_val },
+ { 1355, 0, NULL }, /* RefApplID */
+ { 1356, 0, NULL }, /* ApplReportID */
+ { 1357, 0, NULL }, /* RefApplLastSeqNum */
+ { 1358, 0, NULL }, /* LegPutOrCall */
+ { 1359, 0, NULL }, /* EncodedSymbolLen */
+ { 1360, 0, NULL }, /* EncodedSymbol */
+ { 1361, 0, NULL }, /* TotNoFills */
+ { 1362, 0, NULL }, /* NoFills */
+ { 1363, 0, NULL }, /* FillExecID */
+ { 1364, 0, NULL }, /* FillPx */
+ { 1365, 0, NULL }, /* FillQty */
+ { 1366, 0, NULL }, /* LegAllocID */
+ { 1367, 0, NULL }, /* LegAllocSettlCurrency */
+ { 1368, 0, TradSesEvent_val },
+ { 1369, 0, NULL }, /* MassActionReportID */
+ { 1370, 0, NULL }, /* NoNotAffectedOrders */
+ { 1371, 0, NULL }, /* NotAffectedOrderID */
+ { 1372, 0, NULL }, /* NotAffOrigClOrdID */
+ { 1373, 0, MassActionType_val },
+ { 1374, 0, MassActionScope_val },
+ { 1375, 0, MassActionResponse_val },
+ { 1376, 0, MassActionRejectReason_val },
+ { 1377, 0, MultilegModel_val },
+ { 1378, 0, MultilegPriceMethod_val },
+ { 1379, 0, NULL }, /* LegVolatility */
+ { 1380, 0, NULL }, /* DividendYield */
+ { 1381, 0, NULL }, /* LegDividendYield */
+ { 1382, 0, NULL }, /* CurrencyRatio */
+ { 1383, 0, NULL }, /* LegCurrencyRatio */
+ { 1384, 0, NULL }, /* LegExecInst */
+ { 1385, 0, ContingencyType_val },
+ { 1386, 0, ListRejectReason_val },
+ { 1387, 0, NULL }, /* NoTrdRepIndicators */
+ { 1388, 0, NULL }, /* TrdRepPartyRole */
+ { 1389, 0, NULL }, /* TrdRepIndicator */
+ { 1390, 0, TradePublishIndicator_val },
+ { 1391, 0, NULL }, /* UnderlyingLegOptAttribute */
+ { 1392, 0, NULL }, /* UnderlyingLegSecurityDesc */
+ { 1393, 0, NULL }, /* MarketReqID */
+ { 1394, 0, NULL }, /* MarketReportID */
+ { 1395, 2, MarketUpdateAction_val },
+ { 1396, 0, NULL }, /* MarketSegmentDesc */
+ { 1397, 0, NULL }, /* EncodedMktSegmDescLen */
+ { 1398, 0, NULL }, /* EncodedMktSegmDesc */
+ { 1399, 0, NULL }, /* ApplNewSeqNum */
+ { 1400, 0, NULL }, /* EncryptedPasswordMethod */
+ { 1401, 0, NULL }, /* EncryptedPasswordLen */
+ { 1402, 0, NULL }, /* EncryptedPassword */
+ { 1403, 0, NULL }, /* EncryptedNewPasswordLen */
+ { 1404, 0, NULL }, /* EncryptedNewPassword */
+ { 1405, 0, NULL }, /* UnderlyingLegMaturityTime */
+ { 1406, 0, NULL }, /* RefApplExtID */
+ { 1407, 0, NULL }, /* DefaultApplExtID */
+ { 1408, 0, NULL }, /* DefaultCstmApplVerID */
+ { 1409, 0, SessionStatus_val },
+ { 1410, 0, NULL }, /* DefaultVerIndicator */
+ { 1411, 0, NULL }, /* Nested4PartySubIDType */
+ { 1412, 0, NULL }, /* Nested4PartySubID */
+ { 1413, 0, NULL }, /* NoNested4PartySubIDs */
+ { 1414, 0, NULL }, /* NoNested4PartyIDs */
+ { 1415, 0, NULL }, /* Nested4PartyID */
+ { 1416, 0, NULL }, /* Nested4PartyIDSource */
+ { 1417, 0, NULL }, /* Nested4PartyRole */
+ { 1418, 0, NULL }, /* LegLastQty */
+ { 1419, 0, NULL }, /* UnderlyingExerciseStyle */
+ { 1420, 0, NULL }, /* LegExerciseStyle */
+ { 1421, 0, NULL }, /* LegPriceUnitOfMeasure */
+ { 1422, 0, NULL }, /* LegPriceUnitOfMeasureQty */
+ { 1423, 0, NULL }, /* UnderlyingUnitOfMeasureQty */
+ { 1424, 0, NULL }, /* UnderlyingPriceUnitOfMeasure */
+ { 1425, 0, NULL }, /* UnderlyingPriceUnitOfMeasureQty */
+ { 1426, 0, ApplReportType_val },
+ { 1427, 0, NULL }, /* SideExecID */
+ { 1428, 0, NULL }, /* OrderDelay */
+ { 1429, 0, OrderDelayUnit_val },
+ { 1430, 2, VenueType_val },
+ { 1431, 0, RefOrdIDReason_val },
+ { 1432, 0, OrigCustOrderCapacity_val },
+ { 1433, 0, NULL }, /* RefApplReqID */
+ { 1434, 0, ModelType_val },
+ { 1435, 0, ContractMultiplierUnit_val },
+ { 1436, 0, NULL }, /* LegContractMultiplierUnit */
+ { 1437, 0, NULL }, /* UnderlyingContractMultiplierUnit */
+ { 1438, 0, NULL }, /* DerivativeContractMultiplierUnit */
+ { 1439, 0, FlowScheduleType_val },
+ { 1440, 0, NULL }, /* LegFlowScheduleType */
+ { 1441, 0, NULL }, /* UnderlyingFlowScheduleType */
+ { 1442, 0, NULL }, /* DerivativeFlowScheduleType */
+ { 1443, 0, NULL }, /* FillLiquidityInd */
+ { 1444, 0, NULL }, /* SideLiquidityInd */
+ { 1445, 0, NULL }, /* NoRateSources */
+ { 1446, 0, RateSource_val },
+ { 1447, 0, RateSourceType_val },
+ { 1448, 0, NULL }, /* ReferencePage */
+ { 1449, 1, RestructuringType_val },
+ { 1450, 1, Seniority_val },
+ { 1451, 0, NULL }, /* NotionalPercentageOutstanding */
+ { 1452, 0, NULL }, /* OriginalNotionalPercentageOutstanding */
+ { 1453, 0, NULL }, /* UnderlyingRestructuringType */
+ { 1454, 0, NULL }, /* UnderlyingSeniority */
+ { 1455, 0, NULL }, /* UnderlyingNotionalPercentageOutstanding */
+ { 1456, 0, NULL }, /* UnderlyingOriginalNotionalPercentageOutstanding */
+ { 1457, 0, NULL }, /* AttachmentPoint */
+ { 1458, 0, NULL }, /* DetachmentPoint */
+ { 1459, 0, NULL }, /* UnderlyingAttachmentPoint */
+ { 1460, 0, NULL }, /* UnderlyingDetachmentPoint */
+ { 1461, 0, NULL }, /* NoTargetPartyIDs */
+ { 1462, 0, NULL }, /* TargetPartyID */
+ { 1463, 0, NULL }, /* TargetPartyIDSource */
+ { 1464, 0, NULL }, /* TargetPartyRole */
+ { 1465, 0, NULL }, /* SecurityListID */
+ { 1466, 0, NULL }, /* SecurityListRefID */
+ { 1467, 0, NULL }, /* SecurityListDesc */
+ { 1468, 0, NULL }, /* EncodedSecurityListDescLen */
+ { 1469, 0, NULL }, /* EncodedSecurityListDesc */
+ { 1470, 0, SecurityListType_val },
+ { 1471, 0, SecurityListTypeSource_val },
+ { 1472, 0, NULL }, /* NewsID */
+ { 1473, 0, NewsCategory_val },
+ { 1474, 0, NULL }, /* LanguageCode */
+ { 1475, 0, NULL }, /* NoNewsRefIDs */
+ { 1476, 0, NULL }, /* NewsRefID */
+ { 1477, 0, NewsRefType_val },
+ { 1478, 0, StrikePriceDeterminationMethod_val },
+ { 1479, 0, StrikePriceBoundaryMethod_val },
+ { 1480, 0, NULL }, /* StrikePriceBoundaryPrecision */
+ { 1481, 0, UnderlyingPriceDeterminationMethod_val },
+ { 1482, 0, OptPayoutType_val },
+ { 1483, 0, NULL }, /* NoComplexEvents */
+ { 1484, 0, ComplexEventType_val },
+ { 1485, 0, NULL }, /* ComplexOptPayoutAmount */
+ { 1486, 0, NULL }, /* ComplexEventPrice */
+ { 1487, 0, ComplexEventPriceBoundaryMethod_val },
+ { 1488, 0, NULL }, /* ComplexEventPriceBoundaryPrecision */
+ { 1489, 0, ComplexEventPriceTimeType_val },
+ { 1490, 0, ComplexEventCondition_val },
+ { 1491, 0, NULL }, /* NoComplexEventDates */
+ { 1492, 0, NULL }, /* ComplexEventStartDate */
+ { 1493, 0, NULL }, /* ComplexEventEndDate */
+ { 1494, 0, NULL }, /* NoComplexEventTimes */
+ { 1495, 0, NULL }, /* ComplexEventStartTime */
+ { 1496, 0, NULL }, /* ComplexEventEndTime */
+ { 1497, 0, NULL }, /* StreamAsgnReqID */
+ { 1498, 0, StreamAsgnReqType_val },
+ { 1499, 0, NULL }, /* NoAsgnReqs */
+ { 1500, 0, NULL }, /* MDStreamID */
+ { 1501, 0, NULL }, /* StreamAsgnRptID */
+ { 1502, 0, StreamAsgnRejReason_val },
+ { 1503, 0, StreamAsgnAckType_val },
+ { 1504, 0, NULL }, /* RelSymTransactTime */
+ { 1505, 0, NULL }, /* PartyDetailsListRequestID */
+ { 1506, 0, NULL }, /* NoPartyListResponseTypes */
+ { 1507, 0, PartyListResponseType_val },
+ { 1508, 0, NULL }, /* NoRequestedPartyRoles */
+ { 1509, 0, NULL }, /* RequestedPartyRole */
+ { 1510, 0, NULL }, /* PartyDetailsListReportID */
+ { 1511, 0, PartyDetailsRequestResult_val },
+ { 1512, 0, NULL }, /* TotNoPartyList */
+ { 1513, 0, NULL }, /* NoPartyList */
+ { 1514, 0, NULL }, /* NoPartyRelationships */
+ { 1515, 0, PartyRelationship_val },
+ { 1516, 0, NULL }, /* NoPartyAltIDs */
+ { 1517, 0, NULL }, /* PartyAltID */
+ { 1518, 0, NULL }, /* PartyAltIDSource */
+ { 1519, 0, NULL }, /* NoPartyAltSubIDs */
+ { 1520, 0, NULL }, /* PartyAltSubID */
+ { 1521, 0, NULL }, /* PartyAltSubIDType */
+ { 1522, 0, NULL }, /* NoContextPartyIDs */
+ { 1523, 0, NULL }, /* ContextPartyID */
+ { 1524, 0, NULL }, /* ContextPartyIDSource */
+ { 1525, 0, NULL }, /* ContextPartyRole */
+ { 1526, 0, NULL }, /* NoContextPartySubIDs */
+ { 1527, 0, NULL }, /* ContextPartySubID */
+ { 1528, 0, NULL }, /* ContextPartySubIDType */
+ { 1529, 0, NULL }, /* NoRiskLimits */
+ { 1530, 0, RiskLimitType_val },
+ { 1531, 0, NULL }, /* RiskLimitAmount */
+ { 1532, 0, NULL }, /* RiskLimitCurrency */
+ { 1533, 0, NULL }, /* RiskLimitPlatform */
+ { 1534, 0, NULL }, /* NoRiskInstruments */
+ { 1535, 0, RiskInstrumentOperator_val },
+ { 1536, 0, NULL }, /* RiskSymbol */
+ { 1537, 0, NULL }, /* RiskSymbolSfx */
+ { 1538, 0, NULL }, /* RiskSecurityID */
+ { 1539, 0, NULL }, /* RiskSecurityIDSource */
+ { 1540, 0, NULL }, /* NoRiskSecurityAltID */
+ { 1541, 0, NULL }, /* RiskSecurityAltID */
+ { 1542, 0, NULL }, /* RiskSecurityAltIDSource */
+ { 1543, 0, NULL }, /* RiskProduct */
+ { 1544, 0, NULL }, /* RiskProductComplex */
+ { 1545, 0, NULL }, /* RiskSecurityGroup */
+ { 1546, 0, NULL }, /* RiskCFICode */
+ { 1547, 0, NULL }, /* RiskSecurityType */
+ { 1548, 0, NULL }, /* RiskSecuritySubType */
+ { 1549, 0, NULL }, /* RiskMaturityMonthYear */
+ { 1550, 0, NULL }, /* RiskMaturityTime */
+ { 1551, 0, NULL }, /* RiskRestructuringType */
+ { 1552, 0, NULL }, /* RiskSeniority */
+ { 1553, 0, NULL }, /* RiskPutOrCall */
+ { 1554, 0, NULL }, /* RiskFlexibleIndicator */
+ { 1555, 0, NULL }, /* RiskCouponRate */
+ { 1556, 0, NULL }, /* RiskSecurityDesc */
+ { 1557, 0, NULL }, /* RiskInstrumentSettlType */
+ { 1558, 0, NULL }, /* RiskInstrumentMultiplier */
+ { 1559, 0, NULL }, /* NoRiskWarningLevels */
+ { 1560, 0, NULL }, /* RiskWarningLevelPercent */
+ { 1561, 0, NULL }, /* RiskWarningLevelName */
+ { 1562, 0, NULL }, /* NoRelatedPartyIDs */
+ { 1563, 0, NULL }, /* RelatedPartyID */
+ { 1564, 0, NULL }, /* RelatedPartyIDSource */
+ { 1565, 0, NULL }, /* RelatedPartyRole */
+ { 1566, 0, NULL }, /* NoRelatedPartySubIDs */
+ { 1567, 0, NULL }, /* RelatedPartySubID */
+ { 1568, 0, NULL }, /* RelatedPartySubIDType */
+ { 1569, 0, NULL }, /* NoRelatedPartyAltIDs */
+ { 1570, 0, NULL }, /* RelatedPartyAltID */
+ { 1571, 0, NULL }, /* RelatedPartyAltIDSource */
+ { 1572, 0, NULL }, /* NoRelatedPartyAltSubIDs */
+ { 1573, 0, NULL }, /* RelatedPartyAltSubID */
+ { 1574, 0, NULL }, /* RelatedPartyAltSubIDType */
+ { 1575, 0, NULL }, /* NoRelatedContextPartyIDs */
+ { 1576, 0, NULL }, /* RelatedContextPartyID */
+ { 1577, 0, NULL }, /* RelatedContextPartyIDSource */
+ { 1578, 0, NULL }, /* RelatedContextPartyRole */
+ { 1579, 0, NULL }, /* NoRelatedContextPartySubIDs */
+ { 1580, 0, NULL }, /* RelatedContextPartySubID */
+ { 1581, 0, NULL }, /* RelatedContextPartySubIDType */
+ { 1582, 0, NULL }, /* NoRelationshipRiskLimits */
+ { 1583, 0, NULL }, /* RelationshipRiskLimitType */
+ { 1584, 0, NULL }, /* RelationshipRiskLimitAmount */
+ { 1585, 0, NULL }, /* RelationshipRiskLimitCurrency */
+ { 1586, 0, NULL }, /* RelationshipRiskLimitPlatform */
+ { 1587, 0, NULL }, /* NoRelationshipRiskInstruments */
+ { 1588, 0, NULL }, /* RelationshipRiskInstrumentOperator */
+ { 1589, 0, NULL }, /* RelationshipRiskSymbol */
+ { 1590, 0, NULL }, /* RelationshipRiskSymbolSfx */
+ { 1591, 0, NULL }, /* RelationshipRiskSecurityID */
+ { 1592, 0, NULL }, /* RelationshipRiskSecurityIDSource */
+ { 1593, 0, NULL }, /* NoRelationshipRiskSecurityAltID */
+ { 1594, 0, NULL }, /* RelationshipRiskSecurityAltID */
+ { 1595, 0, NULL }, /* RelationshipRiskSecurityAltIDSource */
+ { 1596, 0, NULL }, /* RelationshipRiskProduct */
+ { 1597, 0, NULL }, /* RelationshipRiskProductComplex */
+ { 1598, 0, NULL }, /* RelationshipRiskSecurityGroup */
+ { 1599, 0, NULL }, /* RelationshipRiskCFICode */
+ { 1600, 0, NULL }, /* RelationshipRiskSecurityType */
+ { 1601, 0, NULL }, /* RelationshipRiskSecuritySubType */
+ { 1602, 0, NULL }, /* RelationshipRiskMaturityMonthYear */
+ { 1603, 0, NULL }, /* RelationshipRiskMaturityTime */
+ { 1604, 0, NULL }, /* RelationshipRiskRestructuringType */
+ { 1605, 0, NULL }, /* RelationshipRiskSeniority */
+ { 1606, 0, NULL }, /* RelationshipRiskPutOrCall */
+ { 1607, 0, NULL }, /* RelationshipRiskFlexibleIndicator */
+ { 1608, 0, NULL }, /* RelationshipRiskCouponRate */
+ { 1609, 0, NULL }, /* RelationshipRiskSecurityExchange */
+ { 1610, 0, NULL }, /* RelationshipRiskSecurityDesc */
+ { 1611, 0, NULL }, /* RelationshipRiskInstrumentSettlType */
+ { 1612, 0, NULL }, /* RelationshipRiskInstrumentMultiplier */
+ { 1613, 0, NULL }, /* NoRelationshipRiskWarningLevels */
+ { 1614, 0, NULL }, /* RelationshipRiskWarningLevelPercent */
+ { 1615, 0, NULL }, /* RelationshipRiskWarningLevelName */
+ { 1616, 0, NULL }, /* RiskSecurityExchange */
+ { 1617, 0, StreamAsgnType_val },
+ { 1618, 0, NULL }, /* RelationshipRiskEncodedSecurityDescLen */
+ { 1619, 0, NULL }, /* RelationshipRiskEncodedSecurityDesc */
+ { 1620, 0, NULL }, /* RiskEncodedSecurityDescLen */
+ { 1621, 0, NULL }, /* RiskEncodedSecurityDesc */
+ };
+
+static int fix_hf[1610];
static hf_register_info hf_FIX[] = {
- { &fix_fields[0].hf_id,
+ { &fix_hf[0],
{ "Account (1)", "fix.Account",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1].hf_id,
+ { &fix_hf[1],
{ "AdvId (2)", "fix.AdvId",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[2].hf_id,
+ { &fix_hf[2],
{ "AdvRefID (3)", "fix.AdvRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[3].hf_id,
+ { &fix_hf[3],
{ "AdvSide (4)", "fix.AdvSide",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[4].hf_id,
+ { &fix_hf[4],
{ "AdvTransType (5)", "fix.AdvTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[5].hf_id,
+ { &fix_hf[5],
{ "AvgPx (6)", "fix.AvgPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[6].hf_id,
+ { &fix_hf[6],
{ "BeginSeqNo (7)", "fix.BeginSeqNo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[7].hf_id,
+ { &fix_hf[7],
{ "BeginString (8)", "fix.BeginString",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[8].hf_id,
+ { &fix_hf[8],
{ "BodyLength (9)", "fix.BodyLength",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[9].hf_id,
+ { &fix_hf[9],
{ "CheckSum (10)", "fix.CheckSum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[10].hf_id,
+ { &fix_hf[10],
{ "ClOrdID (11)", "fix.ClOrdID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[11].hf_id,
+ { &fix_hf[11],
{ "Commission (12)", "fix.Commission",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[12].hf_id,
+ { &fix_hf[12],
{ "CommType (13)", "fix.CommType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[13].hf_id,
+ { &fix_hf[13],
{ "CumQty (14)", "fix.CumQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[14].hf_id,
+ { &fix_hf[14],
{ "Currency (15)", "fix.Currency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[15].hf_id,
+ { &fix_hf[15],
{ "EndSeqNo (16)", "fix.EndSeqNo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[16].hf_id,
+ { &fix_hf[16],
{ "ExecID (17)", "fix.ExecID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[17].hf_id,
+ { &fix_hf[17],
{ "ExecInst (18)", "fix.ExecInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[18].hf_id,
+ { &fix_hf[18],
{ "ExecRefID (19)", "fix.ExecRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[19].hf_id,
+ { &fix_hf[19],
{ "ExecTransType (20)", "fix.ExecTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[20].hf_id,
+ { &fix_hf[20],
{ "HandlInst (21)", "fix.HandlInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[21].hf_id,
+ { &fix_hf[21],
{ "SecurityIDSource (22)", "fix.SecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[22].hf_id,
+ { &fix_hf[22],
{ "IOIID (23)", "fix.IOIID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[23].hf_id,
+ { &fix_hf[23],
{ "IOIOthSvc (24)", "fix.IOIOthSvc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[24].hf_id,
+ { &fix_hf[24],
{ "IOIQltyInd (25)", "fix.IOIQltyInd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[25].hf_id,
+ { &fix_hf[25],
{ "IOIRefID (26)", "fix.IOIRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[26].hf_id,
+ { &fix_hf[26],
{ "IOIQty (27)", "fix.IOIQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[27].hf_id,
+ { &fix_hf[27],
{ "IOITransType (28)", "fix.IOITransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[28].hf_id,
+ { &fix_hf[28],
{ "LastCapacity (29)", "fix.LastCapacity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[29].hf_id,
+ { &fix_hf[29],
{ "LastMkt (30)", "fix.LastMkt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[30].hf_id,
+ { &fix_hf[30],
{ "LastPx (31)", "fix.LastPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[31].hf_id,
+ { &fix_hf[31],
{ "LastQty (32)", "fix.LastQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[32].hf_id,
+ { &fix_hf[32],
{ "NoLinesOfText (33)", "fix.NoLinesOfText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[33].hf_id,
+ { &fix_hf[33],
{ "MsgSeqNum (34)", "fix.MsgSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[34].hf_id,
+ { &fix_hf[34],
{ "MsgType (35)", "fix.MsgType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[35].hf_id,
+ { &fix_hf[35],
{ "NewSeqNo (36)", "fix.NewSeqNo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[36].hf_id,
+ { &fix_hf[36],
{ "OrderID (37)", "fix.OrderID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[37].hf_id,
+ { &fix_hf[37],
{ "OrderQty (38)", "fix.OrderQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[38].hf_id,
+ { &fix_hf[38],
{ "OrdStatus (39)", "fix.OrdStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[39].hf_id,
+ { &fix_hf[39],
{ "OrdType (40)", "fix.OrdType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[40].hf_id,
+ { &fix_hf[40],
{ "OrigClOrdID (41)", "fix.OrigClOrdID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[41].hf_id,
+ { &fix_hf[41],
{ "OrigTime (42)", "fix.OrigTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[42].hf_id,
+ { &fix_hf[42],
{ "PossDupFlag (43)", "fix.PossDupFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[43].hf_id,
+ { &fix_hf[43],
{ "Price (44)", "fix.Price",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[44].hf_id,
+ { &fix_hf[44],
{ "RefSeqNum (45)", "fix.RefSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[45].hf_id,
+ { &fix_hf[45],
{ "RelatdSym (46)", "fix.RelatdSym",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[46].hf_id,
+ { &fix_hf[46],
{ "Rule80A (47)", "fix.Rule80A",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[47].hf_id,
+ { &fix_hf[47],
{ "SecurityID (48)", "fix.SecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[48].hf_id,
+ { &fix_hf[48],
{ "SenderCompID (49)", "fix.SenderCompID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[49].hf_id,
+ { &fix_hf[49],
{ "SenderSubID (50)", "fix.SenderSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[50].hf_id,
+ { &fix_hf[50],
{ "SendingDate (51)", "fix.SendingDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[51].hf_id,
+ { &fix_hf[51],
{ "SendingTime (52)", "fix.SendingTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[52].hf_id,
+ { &fix_hf[52],
{ "Quantity (53)", "fix.Quantity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[53].hf_id,
+ { &fix_hf[53],
{ "Side (54)", "fix.Side",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[54].hf_id,
+ { &fix_hf[54],
{ "Symbol (55)", "fix.Symbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[55].hf_id,
+ { &fix_hf[55],
{ "TargetCompID (56)", "fix.TargetCompID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[56].hf_id,
+ { &fix_hf[56],
{ "TargetSubID (57)", "fix.TargetSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[57].hf_id,
+ { &fix_hf[57],
{ "Text (58)", "fix.Text",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[58].hf_id,
+ { &fix_hf[58],
{ "TimeInForce (59)", "fix.TimeInForce",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[59].hf_id,
+ { &fix_hf[59],
{ "TransactTime (60)", "fix.TransactTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[60].hf_id,
+ { &fix_hf[60],
{ "Urgency (61)", "fix.Urgency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[61].hf_id,
+ { &fix_hf[61],
{ "ValidUntilTime (62)", "fix.ValidUntilTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[62].hf_id,
+ { &fix_hf[62],
{ "SettlType (63)", "fix.SettlType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[63].hf_id,
+ { &fix_hf[63],
{ "SettlDate (64)", "fix.SettlDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[64].hf_id,
+ { &fix_hf[64],
{ "SymbolSfx (65)", "fix.SymbolSfx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[65].hf_id,
+ { &fix_hf[65],
{ "ListID (66)", "fix.ListID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[66].hf_id,
+ { &fix_hf[66],
{ "ListSeqNo (67)", "fix.ListSeqNo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[67].hf_id,
+ { &fix_hf[67],
{ "TotNoOrders (68)", "fix.TotNoOrders",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[68].hf_id,
+ { &fix_hf[68],
{ "ListExecInst (69)", "fix.ListExecInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[69].hf_id,
+ { &fix_hf[69],
{ "AllocID (70)", "fix.AllocID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[70].hf_id,
+ { &fix_hf[70],
{ "AllocTransType (71)", "fix.AllocTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[71].hf_id,
+ { &fix_hf[71],
{ "RefAllocID (72)", "fix.RefAllocID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[72].hf_id,
+ { &fix_hf[72],
{ "NoOrders (73)", "fix.NoOrders",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[73].hf_id,
+ { &fix_hf[73],
{ "AvgPxPrecision (74)", "fix.AvgPxPrecision",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[74].hf_id,
+ { &fix_hf[74],
{ "TradeDate (75)", "fix.TradeDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[75].hf_id,
+ { &fix_hf[75],
{ "ExecBroker (76)", "fix.ExecBroker",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[76].hf_id,
+ { &fix_hf[76],
{ "PositionEffect (77)", "fix.PositionEffect",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[77].hf_id,
+ { &fix_hf[77],
{ "NoAllocs (78)", "fix.NoAllocs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[78].hf_id,
+ { &fix_hf[78],
{ "AllocAccount (79)", "fix.AllocAccount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[79].hf_id,
+ { &fix_hf[79],
{ "AllocQty (80)", "fix.AllocQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[80].hf_id,
+ { &fix_hf[80],
{ "ProcessCode (81)", "fix.ProcessCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[81].hf_id,
+ { &fix_hf[81],
{ "NoRpts (82)", "fix.NoRpts",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[82].hf_id,
+ { &fix_hf[82],
{ "RptSeq (83)", "fix.RptSeq",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[83].hf_id,
+ { &fix_hf[83],
{ "CxlQty (84)", "fix.CxlQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[84].hf_id,
+ { &fix_hf[84],
{ "NoDlvyInst (85)", "fix.NoDlvyInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[85].hf_id,
+ { &fix_hf[85],
{ "DlvyInst (86)", "fix.DlvyInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[86].hf_id,
+ { &fix_hf[86],
{ "AllocStatus (87)", "fix.AllocStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[87].hf_id,
+ { &fix_hf[87],
{ "AllocRejCode (88)", "fix.AllocRejCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[88].hf_id,
+ { &fix_hf[88],
{ "Signature (89)", "fix.Signature",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[89].hf_id,
+ { &fix_hf[89],
{ "SecureDataLen (90)", "fix.SecureDataLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[90].hf_id,
+ { &fix_hf[90],
{ "SecureData (91)", "fix.SecureData",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[91].hf_id,
+ { &fix_hf[91],
{ "BrokerOfCredit (92)", "fix.BrokerOfCredit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[92].hf_id,
+ { &fix_hf[92],
{ "SignatureLength (93)", "fix.SignatureLength",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[93].hf_id,
+ { &fix_hf[93],
{ "EmailType (94)", "fix.EmailType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[94].hf_id,
+ { &fix_hf[94],
{ "RawDataLength (95)", "fix.RawDataLength",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[95].hf_id,
+ { &fix_hf[95],
{ "RawData (96)", "fix.RawData",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[96].hf_id,
+ { &fix_hf[96],
{ "PossResend (97)", "fix.PossResend",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[97].hf_id,
+ { &fix_hf[97],
{ "EncryptMethod (98)", "fix.EncryptMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[98].hf_id,
+ { &fix_hf[98],
{ "StopPx (99)", "fix.StopPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[99].hf_id,
+ { &fix_hf[99],
{ "ExDestination (100)", "fix.ExDestination",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[100].hf_id,
+ { &fix_hf[100],
{ "CxlRejReason (102)", "fix.CxlRejReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[101].hf_id,
+ { &fix_hf[101],
{ "OrdRejReason (103)", "fix.OrdRejReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[102].hf_id,
+ { &fix_hf[102],
{ "IOIQualifier (104)", "fix.IOIQualifier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[103].hf_id,
+ { &fix_hf[103],
{ "WaveNo (105)", "fix.WaveNo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[104].hf_id,
+ { &fix_hf[104],
{ "Issuer (106)", "fix.Issuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[105].hf_id,
+ { &fix_hf[105],
{ "SecurityDesc (107)", "fix.SecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[106].hf_id,
+ { &fix_hf[106],
{ "HeartBtInt (108)", "fix.HeartBtInt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[107].hf_id,
+ { &fix_hf[107],
{ "ClientID (109)", "fix.ClientID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[108].hf_id,
+ { &fix_hf[108],
{ "MinQty (110)", "fix.MinQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[109].hf_id,
+ { &fix_hf[109],
{ "MaxFloor (111)", "fix.MaxFloor",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[110].hf_id,
+ { &fix_hf[110],
{ "TestReqID (112)", "fix.TestReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[111].hf_id,
+ { &fix_hf[111],
{ "ReportToExch (113)", "fix.ReportToExch",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[112].hf_id,
+ { &fix_hf[112],
{ "LocateReqd (114)", "fix.LocateReqd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[113].hf_id,
+ { &fix_hf[113],
{ "OnBehalfOfCompID (115)", "fix.OnBehalfOfCompID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[114].hf_id,
+ { &fix_hf[114],
{ "OnBehalfOfSubID (116)", "fix.OnBehalfOfSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[115].hf_id,
+ { &fix_hf[115],
{ "QuoteID (117)", "fix.QuoteID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[116].hf_id,
+ { &fix_hf[116],
{ "NetMoney (118)", "fix.NetMoney",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[117].hf_id,
+ { &fix_hf[117],
{ "SettlCurrAmt (119)", "fix.SettlCurrAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[118].hf_id,
+ { &fix_hf[118],
{ "SettlCurrency (120)", "fix.SettlCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[119].hf_id,
+ { &fix_hf[119],
{ "ForexReq (121)", "fix.ForexReq",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[120].hf_id,
+ { &fix_hf[120],
{ "OrigSendingTime (122)", "fix.OrigSendingTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[121].hf_id,
+ { &fix_hf[121],
{ "GapFillFlag (123)", "fix.GapFillFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[122].hf_id,
+ { &fix_hf[122],
{ "NoExecs (124)", "fix.NoExecs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[123].hf_id,
+ { &fix_hf[123],
{ "CxlType (125)", "fix.CxlType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[124].hf_id,
+ { &fix_hf[124],
{ "ExpireTime (126)", "fix.ExpireTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[125].hf_id,
+ { &fix_hf[125],
{ "DKReason (127)", "fix.DKReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[126].hf_id,
+ { &fix_hf[126],
{ "DeliverToCompID (128)", "fix.DeliverToCompID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[127].hf_id,
+ { &fix_hf[127],
{ "DeliverToSubID (129)", "fix.DeliverToSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[128].hf_id,
+ { &fix_hf[128],
{ "IOINaturalFlag (130)", "fix.IOINaturalFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[129].hf_id,
+ { &fix_hf[129],
{ "QuoteReqID (131)", "fix.QuoteReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[130].hf_id,
+ { &fix_hf[130],
{ "BidPx (132)", "fix.BidPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[131].hf_id,
+ { &fix_hf[131],
{ "OfferPx (133)", "fix.OfferPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[132].hf_id,
+ { &fix_hf[132],
{ "BidSize (134)", "fix.BidSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[133].hf_id,
+ { &fix_hf[133],
{ "OfferSize (135)", "fix.OfferSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[134].hf_id,
+ { &fix_hf[134],
{ "NoMiscFees (136)", "fix.NoMiscFees",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[135].hf_id,
+ { &fix_hf[135],
{ "MiscFeeAmt (137)", "fix.MiscFeeAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[136].hf_id,
+ { &fix_hf[136],
{ "MiscFeeCurr (138)", "fix.MiscFeeCurr",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[137].hf_id,
+ { &fix_hf[137],
{ "MiscFeeType (139)", "fix.MiscFeeType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[138].hf_id,
+ { &fix_hf[138],
{ "PrevClosePx (140)", "fix.PrevClosePx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[139].hf_id,
+ { &fix_hf[139],
{ "ResetSeqNumFlag (141)", "fix.ResetSeqNumFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[140].hf_id,
+ { &fix_hf[140],
{ "SenderLocationID (142)", "fix.SenderLocationID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[141].hf_id,
+ { &fix_hf[141],
{ "TargetLocationID (143)", "fix.TargetLocationID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[142].hf_id,
+ { &fix_hf[142],
{ "OnBehalfOfLocationID (144)", "fix.OnBehalfOfLocationID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[143].hf_id,
+ { &fix_hf[143],
{ "DeliverToLocationID (145)", "fix.DeliverToLocationID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[144].hf_id,
+ { &fix_hf[144],
{ "NoRelatedSym (146)", "fix.NoRelatedSym",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[145].hf_id,
+ { &fix_hf[145],
{ "Subject (147)", "fix.Subject",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[146].hf_id,
+ { &fix_hf[146],
{ "Headline (148)", "fix.Headline",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[147].hf_id,
+ { &fix_hf[147],
{ "URLLink (149)", "fix.URLLink",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[148].hf_id,
+ { &fix_hf[148],
{ "ExecType (150)", "fix.ExecType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[149].hf_id,
+ { &fix_hf[149],
{ "LeavesQty (151)", "fix.LeavesQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[150].hf_id,
+ { &fix_hf[150],
{ "CashOrderQty (152)", "fix.CashOrderQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[151].hf_id,
+ { &fix_hf[151],
{ "AllocAvgPx (153)", "fix.AllocAvgPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[152].hf_id,
+ { &fix_hf[152],
{ "AllocNetMoney (154)", "fix.AllocNetMoney",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[153].hf_id,
+ { &fix_hf[153],
{ "SettlCurrFxRate (155)", "fix.SettlCurrFxRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[154].hf_id,
+ { &fix_hf[154],
{ "SettlCurrFxRateCalc (156)", "fix.SettlCurrFxRateCalc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[155].hf_id,
+ { &fix_hf[155],
{ "NumDaysInterest (157)", "fix.NumDaysInterest",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[156].hf_id,
+ { &fix_hf[156],
{ "AccruedInterestRate (158)", "fix.AccruedInterestRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[157].hf_id,
+ { &fix_hf[157],
{ "AccruedInterestAmt (159)", "fix.AccruedInterestAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[158].hf_id,
+ { &fix_hf[158],
{ "SettlInstMode (160)", "fix.SettlInstMode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[159].hf_id,
+ { &fix_hf[159],
{ "AllocText (161)", "fix.AllocText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[160].hf_id,
+ { &fix_hf[160],
{ "SettlInstID (162)", "fix.SettlInstID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[161].hf_id,
+ { &fix_hf[161],
{ "SettlInstTransType (163)", "fix.SettlInstTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[162].hf_id,
+ { &fix_hf[162],
{ "EmailThreadID (164)", "fix.EmailThreadID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[163].hf_id,
+ { &fix_hf[163],
{ "SettlInstSource (165)", "fix.SettlInstSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[164].hf_id,
+ { &fix_hf[164],
{ "SettlLocation (166)", "fix.SettlLocation",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[165].hf_id,
+ { &fix_hf[165],
{ "SecurityType (167)", "fix.SecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[166].hf_id,
+ { &fix_hf[166],
{ "EffectiveTime (168)", "fix.EffectiveTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[167].hf_id,
+ { &fix_hf[167],
{ "StandInstDbType (169)", "fix.StandInstDbType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[168].hf_id,
+ { &fix_hf[168],
{ "StandInstDbName (170)", "fix.StandInstDbName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[169].hf_id,
+ { &fix_hf[169],
{ "StandInstDbID (171)", "fix.StandInstDbID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[170].hf_id,
+ { &fix_hf[170],
{ "SettlDeliveryType (172)", "fix.SettlDeliveryType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[171].hf_id,
+ { &fix_hf[171],
{ "SettlDepositoryCode (173)", "fix.SettlDepositoryCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[172].hf_id,
+ { &fix_hf[172],
{ "SettlBrkrCode (174)", "fix.SettlBrkrCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[173].hf_id,
+ { &fix_hf[173],
{ "SettlInstCode (175)", "fix.SettlInstCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[174].hf_id,
+ { &fix_hf[174],
{ "SecuritySettlAgentName (176)", "fix.SecuritySettlAgentName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[175].hf_id,
+ { &fix_hf[175],
{ "SecuritySettlAgentCode (177)", "fix.SecuritySettlAgentCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[176].hf_id,
+ { &fix_hf[176],
{ "SecuritySettlAgentAcctNum (178)", "fix.SecuritySettlAgentAcctNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[177].hf_id,
+ { &fix_hf[177],
{ "SecuritySettlAgentAcctName (179)", "fix.SecuritySettlAgentAcctName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[178].hf_id,
+ { &fix_hf[178],
{ "SecuritySettlAgentContactName (180)", "fix.SecuritySettlAgentContactName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[179].hf_id,
+ { &fix_hf[179],
{ "SecuritySettlAgentContactPhone (181)", "fix.SecuritySettlAgentContactPhone",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[180].hf_id,
+ { &fix_hf[180],
{ "CashSettlAgentName (182)", "fix.CashSettlAgentName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[181].hf_id,
+ { &fix_hf[181],
{ "CashSettlAgentCode (183)", "fix.CashSettlAgentCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[182].hf_id,
+ { &fix_hf[182],
{ "CashSettlAgentAcctNum (184)", "fix.CashSettlAgentAcctNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[183].hf_id,
+ { &fix_hf[183],
{ "CashSettlAgentAcctName (185)", "fix.CashSettlAgentAcctName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[184].hf_id,
+ { &fix_hf[184],
{ "CashSettlAgentContactName (186)", "fix.CashSettlAgentContactName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[185].hf_id,
+ { &fix_hf[185],
{ "CashSettlAgentContactPhone (187)", "fix.CashSettlAgentContactPhone",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[186].hf_id,
+ { &fix_hf[186],
{ "BidSpotRate (188)", "fix.BidSpotRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[187].hf_id,
+ { &fix_hf[187],
{ "BidForwardPoints (189)", "fix.BidForwardPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[188].hf_id,
+ { &fix_hf[188],
{ "OfferSpotRate (190)", "fix.OfferSpotRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[189].hf_id,
+ { &fix_hf[189],
{ "OfferForwardPoints (191)", "fix.OfferForwardPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[190].hf_id,
+ { &fix_hf[190],
{ "OrderQty2 (192)", "fix.OrderQty2",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[191].hf_id,
+ { &fix_hf[191],
{ "SettlDate2 (193)", "fix.SettlDate2",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[192].hf_id,
+ { &fix_hf[192],
{ "LastSpotRate (194)", "fix.LastSpotRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[193].hf_id,
+ { &fix_hf[193],
{ "LastForwardPoints (195)", "fix.LastForwardPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[194].hf_id,
+ { &fix_hf[194],
{ "AllocLinkID (196)", "fix.AllocLinkID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[195].hf_id,
+ { &fix_hf[195],
{ "AllocLinkType (197)", "fix.AllocLinkType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[196].hf_id,
+ { &fix_hf[196],
{ "SecondaryOrderID (198)", "fix.SecondaryOrderID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[197].hf_id,
+ { &fix_hf[197],
{ "NoIOIQualifiers (199)", "fix.NoIOIQualifiers",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[198].hf_id,
+ { &fix_hf[198],
{ "MaturityMonthYear (200)", "fix.MaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[199].hf_id,
+ { &fix_hf[199],
{ "PutOrCall (201)", "fix.PutOrCall",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[200].hf_id,
+ { &fix_hf[200],
{ "StrikePrice (202)", "fix.StrikePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[201].hf_id,
+ { &fix_hf[201],
{ "CoveredOrUncovered (203)", "fix.CoveredOrUncovered",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[202].hf_id,
+ { &fix_hf[202],
{ "CustomerOrFirm (204)", "fix.CustomerOrFirm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[203].hf_id,
+ { &fix_hf[203],
{ "MaturityDay (205)", "fix.MaturityDay",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[204].hf_id,
+ { &fix_hf[204],
{ "OptAttribute (206)", "fix.OptAttribute",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[205].hf_id,
+ { &fix_hf[205],
{ "SecurityExchange (207)", "fix.SecurityExchange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[206].hf_id,
+ { &fix_hf[206],
{ "NotifyBrokerOfCredit (208)", "fix.NotifyBrokerOfCredit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[207].hf_id,
+ { &fix_hf[207],
{ "AllocHandlInst (209)", "fix.AllocHandlInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[208].hf_id,
+ { &fix_hf[208],
{ "MaxShow (210)", "fix.MaxShow",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[209].hf_id,
+ { &fix_hf[209],
{ "PegOffsetValue (211)", "fix.PegOffsetValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[210].hf_id,
+ { &fix_hf[210],
{ "XmlDataLen (212)", "fix.XmlDataLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[211].hf_id,
+ { &fix_hf[211],
{ "XmlData (213)", "fix.XmlData",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[212].hf_id,
+ { &fix_hf[212],
{ "SettlInstRefID (214)", "fix.SettlInstRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[213].hf_id,
+ { &fix_hf[213],
{ "NoRoutingIDs (215)", "fix.NoRoutingIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[214].hf_id,
+ { &fix_hf[214],
{ "RoutingType (216)", "fix.RoutingType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[215].hf_id,
+ { &fix_hf[215],
{ "RoutingID (217)", "fix.RoutingID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[216].hf_id,
+ { &fix_hf[216],
{ "Spread (218)", "fix.Spread",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[217].hf_id,
+ { &fix_hf[217],
{ "Benchmark (219)", "fix.Benchmark",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[218].hf_id,
+ { &fix_hf[218],
{ "BenchmarkCurveCurrency (220)", "fix.BenchmarkCurveCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[219].hf_id,
+ { &fix_hf[219],
{ "BenchmarkCurveName (221)", "fix.BenchmarkCurveName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[220].hf_id,
+ { &fix_hf[220],
{ "BenchmarkCurvePoint (222)", "fix.BenchmarkCurvePoint",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[221].hf_id,
+ { &fix_hf[221],
{ "CouponRate (223)", "fix.CouponRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[222].hf_id,
+ { &fix_hf[222],
{ "CouponPaymentDate (224)", "fix.CouponPaymentDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[223].hf_id,
+ { &fix_hf[223],
{ "IssueDate (225)", "fix.IssueDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[224].hf_id,
+ { &fix_hf[224],
{ "RepurchaseTerm (226)", "fix.RepurchaseTerm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[225].hf_id,
+ { &fix_hf[225],
{ "RepurchaseRate (227)", "fix.RepurchaseRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[226].hf_id,
+ { &fix_hf[226],
{ "Factor (228)", "fix.Factor",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[227].hf_id,
+ { &fix_hf[227],
{ "TradeOriginationDate (229)", "fix.TradeOriginationDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[228].hf_id,
+ { &fix_hf[228],
{ "ExDate (230)", "fix.ExDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[229].hf_id,
+ { &fix_hf[229],
{ "ContractMultiplier (231)", "fix.ContractMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[230].hf_id,
+ { &fix_hf[230],
{ "NoStipulations (232)", "fix.NoStipulations",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[231].hf_id,
+ { &fix_hf[231],
{ "StipulationType (233)", "fix.StipulationType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[232].hf_id,
+ { &fix_hf[232],
{ "StipulationValue (234)", "fix.StipulationValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[233].hf_id,
+ { &fix_hf[233],
{ "YieldType (235)", "fix.YieldType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[234].hf_id,
+ { &fix_hf[234],
{ "Yield (236)", "fix.Yield",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[235].hf_id,
+ { &fix_hf[235],
{ "TotalTakedown (237)", "fix.TotalTakedown",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[236].hf_id,
+ { &fix_hf[236],
{ "Concession (238)", "fix.Concession",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[237].hf_id,
+ { &fix_hf[237],
{ "RepoCollateralSecurityType (239)", "fix.RepoCollateralSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[238].hf_id,
+ { &fix_hf[238],
{ "RedemptionDate (240)", "fix.RedemptionDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[239].hf_id,
+ { &fix_hf[239],
{ "UnderlyingCouponPaymentDate (241)", "fix.UnderlyingCouponPaymentDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[240].hf_id,
+ { &fix_hf[240],
{ "UnderlyingIssueDate (242)", "fix.UnderlyingIssueDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[241].hf_id,
+ { &fix_hf[241],
{ "UnderlyingRepoCollateralSecurityType (243)", "fix.UnderlyingRepoCollateralSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[242].hf_id,
+ { &fix_hf[242],
{ "UnderlyingRepurchaseTerm (244)", "fix.UnderlyingRepurchaseTerm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[243].hf_id,
+ { &fix_hf[243],
{ "UnderlyingRepurchaseRate (245)", "fix.UnderlyingRepurchaseRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[244].hf_id,
+ { &fix_hf[244],
{ "UnderlyingFactor (246)", "fix.UnderlyingFactor",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[245].hf_id,
+ { &fix_hf[245],
{ "UnderlyingRedemptionDate (247)", "fix.UnderlyingRedemptionDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[246].hf_id,
+ { &fix_hf[246],
{ "LegCouponPaymentDate (248)", "fix.LegCouponPaymentDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[247].hf_id,
+ { &fix_hf[247],
{ "LegIssueDate (249)", "fix.LegIssueDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[248].hf_id,
+ { &fix_hf[248],
{ "LegRepoCollateralSecurityType (250)", "fix.LegRepoCollateralSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[249].hf_id,
+ { &fix_hf[249],
{ "LegRepurchaseTerm (251)", "fix.LegRepurchaseTerm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[250].hf_id,
+ { &fix_hf[250],
{ "LegRepurchaseRate (252)", "fix.LegRepurchaseRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[251].hf_id,
+ { &fix_hf[251],
{ "LegFactor (253)", "fix.LegFactor",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[252].hf_id,
+ { &fix_hf[252],
{ "LegRedemptionDate (254)", "fix.LegRedemptionDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[253].hf_id,
+ { &fix_hf[253],
{ "CreditRating (255)", "fix.CreditRating",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[254].hf_id,
+ { &fix_hf[254],
{ "UnderlyingCreditRating (256)", "fix.UnderlyingCreditRating",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[255].hf_id,
+ { &fix_hf[255],
{ "LegCreditRating (257)", "fix.LegCreditRating",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[256].hf_id,
+ { &fix_hf[256],
{ "TradedFlatSwitch (258)", "fix.TradedFlatSwitch",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[257].hf_id,
+ { &fix_hf[257],
{ "BasisFeatureDate (259)", "fix.BasisFeatureDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[258].hf_id,
+ { &fix_hf[258],
{ "BasisFeaturePrice (260)", "fix.BasisFeaturePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[259].hf_id,
+ { &fix_hf[259],
{ "MDReqID (262)", "fix.MDReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[260].hf_id,
+ { &fix_hf[260],
{ "SubscriptionRequestType (263)", "fix.SubscriptionRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[261].hf_id,
+ { &fix_hf[261],
{ "MarketDepth (264)", "fix.MarketDepth",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[262].hf_id,
+ { &fix_hf[262],
{ "MDUpdateType (265)", "fix.MDUpdateType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[263].hf_id,
+ { &fix_hf[263],
{ "AggregatedBook (266)", "fix.AggregatedBook",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[264].hf_id,
+ { &fix_hf[264],
{ "NoMDEntryTypes (267)", "fix.NoMDEntryTypes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[265].hf_id,
+ { &fix_hf[265],
{ "NoMDEntries (268)", "fix.NoMDEntries",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[266].hf_id,
+ { &fix_hf[266],
{ "MDEntryType (269)", "fix.MDEntryType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[267].hf_id,
+ { &fix_hf[267],
{ "MDEntryPx (270)", "fix.MDEntryPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[268].hf_id,
+ { &fix_hf[268],
{ "MDEntrySize (271)", "fix.MDEntrySize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[269].hf_id,
+ { &fix_hf[269],
{ "MDEntryDate (272)", "fix.MDEntryDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[270].hf_id,
+ { &fix_hf[270],
{ "MDEntryTime (273)", "fix.MDEntryTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[271].hf_id,
+ { &fix_hf[271],
{ "TickDirection (274)", "fix.TickDirection",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[272].hf_id,
+ { &fix_hf[272],
{ "MDMkt (275)", "fix.MDMkt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[273].hf_id,
+ { &fix_hf[273],
{ "QuoteCondition (276)", "fix.QuoteCondition",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[274].hf_id,
+ { &fix_hf[274],
{ "TradeCondition (277)", "fix.TradeCondition",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[275].hf_id,
+ { &fix_hf[275],
{ "MDEntryID (278)", "fix.MDEntryID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[276].hf_id,
+ { &fix_hf[276],
{ "MDUpdateAction (279)", "fix.MDUpdateAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[277].hf_id,
+ { &fix_hf[277],
{ "MDEntryRefID (280)", "fix.MDEntryRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[278].hf_id,
+ { &fix_hf[278],
{ "MDReqRejReason (281)", "fix.MDReqRejReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[279].hf_id,
+ { &fix_hf[279],
{ "MDEntryOriginator (282)", "fix.MDEntryOriginator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[280].hf_id,
+ { &fix_hf[280],
{ "LocationID (283)", "fix.LocationID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[281].hf_id,
+ { &fix_hf[281],
{ "DeskID (284)", "fix.DeskID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[282].hf_id,
+ { &fix_hf[282],
{ "DeleteReason (285)", "fix.DeleteReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[283].hf_id,
+ { &fix_hf[283],
{ "OpenCloseSettlFlag (286)", "fix.OpenCloseSettlFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[284].hf_id,
+ { &fix_hf[284],
{ "SellerDays (287)", "fix.SellerDays",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[285].hf_id,
+ { &fix_hf[285],
{ "MDEntryBuyer (288)", "fix.MDEntryBuyer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[286].hf_id,
+ { &fix_hf[286],
{ "MDEntrySeller (289)", "fix.MDEntrySeller",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[287].hf_id,
+ { &fix_hf[287],
{ "MDEntryPositionNo (290)", "fix.MDEntryPositionNo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[288].hf_id,
+ { &fix_hf[288],
{ "FinancialStatus (291)", "fix.FinancialStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[289].hf_id,
+ { &fix_hf[289],
{ "CorporateAction (292)", "fix.CorporateAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[290].hf_id,
+ { &fix_hf[290],
{ "DefBidSize (293)", "fix.DefBidSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[291].hf_id,
+ { &fix_hf[291],
{ "DefOfferSize (294)", "fix.DefOfferSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[292].hf_id,
+ { &fix_hf[292],
{ "NoQuoteEntries (295)", "fix.NoQuoteEntries",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[293].hf_id,
+ { &fix_hf[293],
{ "NoQuoteSets (296)", "fix.NoQuoteSets",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[294].hf_id,
+ { &fix_hf[294],
{ "QuoteStatus (297)", "fix.QuoteStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[295].hf_id,
+ { &fix_hf[295],
{ "QuoteCancelType (298)", "fix.QuoteCancelType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[296].hf_id,
+ { &fix_hf[296],
{ "QuoteEntryID (299)", "fix.QuoteEntryID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[297].hf_id,
+ { &fix_hf[297],
{ "QuoteRejectReason (300)", "fix.QuoteRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[298].hf_id,
+ { &fix_hf[298],
{ "QuoteResponseLevel (301)", "fix.QuoteResponseLevel",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[299].hf_id,
+ { &fix_hf[299],
{ "QuoteSetID (302)", "fix.QuoteSetID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[300].hf_id,
+ { &fix_hf[300],
{ "QuoteRequestType (303)", "fix.QuoteRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[301].hf_id,
+ { &fix_hf[301],
{ "TotNoQuoteEntries (304)", "fix.TotNoQuoteEntries",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[302].hf_id,
+ { &fix_hf[302],
{ "UnderlyingSecurityIDSource (305)", "fix.UnderlyingSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[303].hf_id,
+ { &fix_hf[303],
{ "UnderlyingIssuer (306)", "fix.UnderlyingIssuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[304].hf_id,
+ { &fix_hf[304],
{ "UnderlyingSecurityDesc (307)", "fix.UnderlyingSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[305].hf_id,
+ { &fix_hf[305],
{ "UnderlyingSecurityExchange (308)", "fix.UnderlyingSecurityExchange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[306].hf_id,
+ { &fix_hf[306],
{ "UnderlyingSecurityID (309)", "fix.UnderlyingSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[307].hf_id,
+ { &fix_hf[307],
{ "UnderlyingSecurityType (310)", "fix.UnderlyingSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[308].hf_id,
+ { &fix_hf[308],
{ "UnderlyingSymbol (311)", "fix.UnderlyingSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[309].hf_id,
+ { &fix_hf[309],
{ "UnderlyingSymbolSfx (312)", "fix.UnderlyingSymbolSfx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[310].hf_id,
+ { &fix_hf[310],
{ "UnderlyingMaturityMonthYear (313)", "fix.UnderlyingMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[311].hf_id,
+ { &fix_hf[311],
{ "UnderlyingMaturityDay (314)", "fix.UnderlyingMaturityDay",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[312].hf_id,
+ { &fix_hf[312],
{ "UnderlyingPutOrCall (315)", "fix.UnderlyingPutOrCall",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[313].hf_id,
+ { &fix_hf[313],
{ "UnderlyingStrikePrice (316)", "fix.UnderlyingStrikePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[314].hf_id,
+ { &fix_hf[314],
{ "UnderlyingOptAttribute (317)", "fix.UnderlyingOptAttribute",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[315].hf_id,
+ { &fix_hf[315],
{ "UnderlyingCurrency (318)", "fix.UnderlyingCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[316].hf_id,
+ { &fix_hf[316],
{ "RatioQty (319)", "fix.RatioQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[317].hf_id,
+ { &fix_hf[317],
{ "SecurityReqID (320)", "fix.SecurityReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[318].hf_id,
+ { &fix_hf[318],
{ "SecurityRequestType (321)", "fix.SecurityRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[319].hf_id,
+ { &fix_hf[319],
{ "SecurityResponseID (322)", "fix.SecurityResponseID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[320].hf_id,
+ { &fix_hf[320],
{ "SecurityResponseType (323)", "fix.SecurityResponseType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[321].hf_id,
+ { &fix_hf[321],
{ "SecurityStatusReqID (324)", "fix.SecurityStatusReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[322].hf_id,
+ { &fix_hf[322],
{ "UnsolicitedIndicator (325)", "fix.UnsolicitedIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[323].hf_id,
+ { &fix_hf[323],
{ "SecurityTradingStatus (326)", "fix.SecurityTradingStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[324].hf_id,
+ { &fix_hf[324],
{ "HaltReasonInt (327)", "fix.HaltReasonInt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[325].hf_id,
+ { &fix_hf[325],
{ "InViewOfCommon (328)", "fix.InViewOfCommon",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[326].hf_id,
+ { &fix_hf[326],
{ "DueToRelated (329)", "fix.DueToRelated",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[327].hf_id,
+ { &fix_hf[327],
{ "BuyVolume (330)", "fix.BuyVolume",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[328].hf_id,
+ { &fix_hf[328],
{ "SellVolume (331)", "fix.SellVolume",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[329].hf_id,
+ { &fix_hf[329],
{ "HighPx (332)", "fix.HighPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[330].hf_id,
+ { &fix_hf[330],
{ "LowPx (333)", "fix.LowPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[331].hf_id,
+ { &fix_hf[331],
{ "Adjustment (334)", "fix.Adjustment",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[332].hf_id,
+ { &fix_hf[332],
{ "TradSesReqID (335)", "fix.TradSesReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[333].hf_id,
+ { &fix_hf[333],
{ "TradingSessionID (336)", "fix.TradingSessionID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[334].hf_id,
+ { &fix_hf[334],
{ "ContraTrader (337)", "fix.ContraTrader",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[335].hf_id,
+ { &fix_hf[335],
{ "TradSesMethod (338)", "fix.TradSesMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[336].hf_id,
+ { &fix_hf[336],
{ "TradSesMode (339)", "fix.TradSesMode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[337].hf_id,
+ { &fix_hf[337],
{ "TradSesStatus (340)", "fix.TradSesStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[338].hf_id,
+ { &fix_hf[338],
{ "TradSesStartTime (341)", "fix.TradSesStartTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[339].hf_id,
+ { &fix_hf[339],
{ "TradSesOpenTime (342)", "fix.TradSesOpenTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[340].hf_id,
+ { &fix_hf[340],
{ "TradSesPreCloseTime (343)", "fix.TradSesPreCloseTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[341].hf_id,
+ { &fix_hf[341],
{ "TradSesCloseTime (344)", "fix.TradSesCloseTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[342].hf_id,
+ { &fix_hf[342],
{ "TradSesEndTime (345)", "fix.TradSesEndTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[343].hf_id,
+ { &fix_hf[343],
{ "NumberOfOrders (346)", "fix.NumberOfOrders",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[344].hf_id,
+ { &fix_hf[344],
{ "MessageEncoding (347)", "fix.MessageEncoding",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[345].hf_id,
+ { &fix_hf[345],
{ "EncodedIssuerLen (348)", "fix.EncodedIssuerLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[346].hf_id,
+ { &fix_hf[346],
{ "EncodedIssuer (349)", "fix.EncodedIssuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[347].hf_id,
+ { &fix_hf[347],
{ "EncodedSecurityDescLen (350)", "fix.EncodedSecurityDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[348].hf_id,
+ { &fix_hf[348],
{ "EncodedSecurityDesc (351)", "fix.EncodedSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[349].hf_id,
+ { &fix_hf[349],
{ "EncodedListExecInstLen (352)", "fix.EncodedListExecInstLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[350].hf_id,
+ { &fix_hf[350],
{ "EncodedListExecInst (353)", "fix.EncodedListExecInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[351].hf_id,
+ { &fix_hf[351],
{ "EncodedTextLen (354)", "fix.EncodedTextLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[352].hf_id,
+ { &fix_hf[352],
{ "EncodedText (355)", "fix.EncodedText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[353].hf_id,
+ { &fix_hf[353],
{ "EncodedSubjectLen (356)", "fix.EncodedSubjectLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[354].hf_id,
+ { &fix_hf[354],
{ "EncodedSubject (357)", "fix.EncodedSubject",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[355].hf_id,
+ { &fix_hf[355],
{ "EncodedHeadlineLen (358)", "fix.EncodedHeadlineLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[356].hf_id,
+ { &fix_hf[356],
{ "EncodedHeadline (359)", "fix.EncodedHeadline",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[357].hf_id,
+ { &fix_hf[357],
{ "EncodedAllocTextLen (360)", "fix.EncodedAllocTextLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[358].hf_id,
+ { &fix_hf[358],
{ "EncodedAllocText (361)", "fix.EncodedAllocText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[359].hf_id,
+ { &fix_hf[359],
{ "EncodedUnderlyingIssuerLen (362)", "fix.EncodedUnderlyingIssuerLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[360].hf_id,
+ { &fix_hf[360],
{ "EncodedUnderlyingIssuer (363)", "fix.EncodedUnderlyingIssuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[361].hf_id,
+ { &fix_hf[361],
{ "EncodedUnderlyingSecurityDescLen (364)", "fix.EncodedUnderlyingSecurityDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[362].hf_id,
+ { &fix_hf[362],
{ "EncodedUnderlyingSecurityDesc (365)", "fix.EncodedUnderlyingSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[363].hf_id,
+ { &fix_hf[363],
{ "AllocPrice (366)", "fix.AllocPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[364].hf_id,
+ { &fix_hf[364],
{ "QuoteSetValidUntilTime (367)", "fix.QuoteSetValidUntilTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[365].hf_id,
+ { &fix_hf[365],
{ "QuoteEntryRejectReason (368)", "fix.QuoteEntryRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[366].hf_id,
+ { &fix_hf[366],
{ "LastMsgSeqNumProcessed (369)", "fix.LastMsgSeqNumProcessed",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[367].hf_id,
+ { &fix_hf[367],
{ "OnBehalfOfSendingTime (370)", "fix.OnBehalfOfSendingTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[368].hf_id,
+ { &fix_hf[368],
{ "RefTagID (371)", "fix.RefTagID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[369].hf_id,
+ { &fix_hf[369],
{ "RefMsgType (372)", "fix.RefMsgType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[370].hf_id,
+ { &fix_hf[370],
{ "SessionRejectReason (373)", "fix.SessionRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[371].hf_id,
+ { &fix_hf[371],
{ "BidRequestTransType (374)", "fix.BidRequestTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[372].hf_id,
+ { &fix_hf[372],
{ "ContraBroker (375)", "fix.ContraBroker",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[373].hf_id,
+ { &fix_hf[373],
{ "ComplianceID (376)", "fix.ComplianceID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[374].hf_id,
+ { &fix_hf[374],
{ "SolicitedFlag (377)", "fix.SolicitedFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[375].hf_id,
+ { &fix_hf[375],
{ "ExecRestatementReason (378)", "fix.ExecRestatementReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[376].hf_id,
+ { &fix_hf[376],
{ "BusinessRejectRefID (379)", "fix.BusinessRejectRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[377].hf_id,
+ { &fix_hf[377],
{ "BusinessRejectReason (380)", "fix.BusinessRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[378].hf_id,
+ { &fix_hf[378],
{ "GrossTradeAmt (381)", "fix.GrossTradeAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[379].hf_id,
+ { &fix_hf[379],
{ "NoContraBrokers (382)", "fix.NoContraBrokers",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[380].hf_id,
+ { &fix_hf[380],
{ "MaxMessageSize (383)", "fix.MaxMessageSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[381].hf_id,
+ { &fix_hf[381],
{ "NoMsgTypes (384)", "fix.NoMsgTypes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[382].hf_id,
+ { &fix_hf[382],
{ "MsgDirection (385)", "fix.MsgDirection",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[383].hf_id,
+ { &fix_hf[383],
{ "NoTradingSessions (386)", "fix.NoTradingSessions",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[384].hf_id,
+ { &fix_hf[384],
{ "TotalVolumeTraded (387)", "fix.TotalVolumeTraded",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[385].hf_id,
+ { &fix_hf[385],
{ "DiscretionInst (388)", "fix.DiscretionInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[386].hf_id,
+ { &fix_hf[386],
{ "DiscretionOffsetValue (389)", "fix.DiscretionOffsetValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[387].hf_id,
+ { &fix_hf[387],
{ "BidID (390)", "fix.BidID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[388].hf_id,
+ { &fix_hf[388],
{ "ClientBidID (391)", "fix.ClientBidID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[389].hf_id,
+ { &fix_hf[389],
{ "ListName (392)", "fix.ListName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[390].hf_id,
+ { &fix_hf[390],
{ "TotNoRelatedSym (393)", "fix.TotNoRelatedSym",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[391].hf_id,
+ { &fix_hf[391],
{ "BidType (394)", "fix.BidType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[392].hf_id,
+ { &fix_hf[392],
{ "NumTickets (395)", "fix.NumTickets",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[393].hf_id,
+ { &fix_hf[393],
{ "SideValue1 (396)", "fix.SideValue1",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[394].hf_id,
+ { &fix_hf[394],
{ "SideValue2 (397)", "fix.SideValue2",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[395].hf_id,
+ { &fix_hf[395],
{ "NoBidDescriptors (398)", "fix.NoBidDescriptors",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[396].hf_id,
+ { &fix_hf[396],
{ "BidDescriptorType (399)", "fix.BidDescriptorType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[397].hf_id,
+ { &fix_hf[397],
{ "BidDescriptor (400)", "fix.BidDescriptor",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[398].hf_id,
+ { &fix_hf[398],
{ "SideValueInd (401)", "fix.SideValueInd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[399].hf_id,
+ { &fix_hf[399],
{ "LiquidityPctLow (402)", "fix.LiquidityPctLow",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[400].hf_id,
+ { &fix_hf[400],
{ "LiquidityPctHigh (403)", "fix.LiquidityPctHigh",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[401].hf_id,
+ { &fix_hf[401],
{ "LiquidityValue (404)", "fix.LiquidityValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[402].hf_id,
+ { &fix_hf[402],
{ "EFPTrackingError (405)", "fix.EFPTrackingError",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[403].hf_id,
+ { &fix_hf[403],
{ "FairValue (406)", "fix.FairValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[404].hf_id,
+ { &fix_hf[404],
{ "OutsideIndexPct (407)", "fix.OutsideIndexPct",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[405].hf_id,
+ { &fix_hf[405],
{ "ValueOfFutures (408)", "fix.ValueOfFutures",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[406].hf_id,
+ { &fix_hf[406],
{ "LiquidityIndType (409)", "fix.LiquidityIndType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[407].hf_id,
+ { &fix_hf[407],
{ "WtAverageLiquidity (410)", "fix.WtAverageLiquidity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[408].hf_id,
+ { &fix_hf[408],
{ "ExchangeForPhysical (411)", "fix.ExchangeForPhysical",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[409].hf_id,
+ { &fix_hf[409],
{ "OutMainCntryUIndex (412)", "fix.OutMainCntryUIndex",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[410].hf_id,
+ { &fix_hf[410],
{ "CrossPercent (413)", "fix.CrossPercent",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[411].hf_id,
+ { &fix_hf[411],
{ "ProgRptReqs (414)", "fix.ProgRptReqs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[412].hf_id,
+ { &fix_hf[412],
{ "ProgPeriodInterval (415)", "fix.ProgPeriodInterval",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[413].hf_id,
+ { &fix_hf[413],
{ "IncTaxInd (416)", "fix.IncTaxInd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[414].hf_id,
+ { &fix_hf[414],
{ "NumBidders (417)", "fix.NumBidders",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[415].hf_id,
+ { &fix_hf[415],
{ "BidTradeType (418)", "fix.BidTradeType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[416].hf_id,
+ { &fix_hf[416],
{ "BasisPxType (419)", "fix.BasisPxType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[417].hf_id,
+ { &fix_hf[417],
{ "NoBidComponents (420)", "fix.NoBidComponents",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[418].hf_id,
+ { &fix_hf[418],
{ "Country (421)", "fix.Country",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[419].hf_id,
+ { &fix_hf[419],
{ "TotNoStrikes (422)", "fix.TotNoStrikes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[420].hf_id,
+ { &fix_hf[420],
{ "PriceType (423)", "fix.PriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[421].hf_id,
+ { &fix_hf[421],
{ "DayOrderQty (424)", "fix.DayOrderQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[422].hf_id,
+ { &fix_hf[422],
{ "DayCumQty (425)", "fix.DayCumQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[423].hf_id,
+ { &fix_hf[423],
{ "DayAvgPx (426)", "fix.DayAvgPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[424].hf_id,
+ { &fix_hf[424],
{ "GTBookingInst (427)", "fix.GTBookingInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[425].hf_id,
+ { &fix_hf[425],
{ "NoStrikes (428)", "fix.NoStrikes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[426].hf_id,
+ { &fix_hf[426],
{ "ListStatusType (429)", "fix.ListStatusType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[427].hf_id,
+ { &fix_hf[427],
{ "NetGrossInd (430)", "fix.NetGrossInd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[428].hf_id,
+ { &fix_hf[428],
{ "ListOrderStatus (431)", "fix.ListOrderStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[429].hf_id,
+ { &fix_hf[429],
{ "ExpireDate (432)", "fix.ExpireDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[430].hf_id,
+ { &fix_hf[430],
{ "ListExecInstType (433)", "fix.ListExecInstType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[431].hf_id,
+ { &fix_hf[431],
{ "CxlRejResponseTo (434)", "fix.CxlRejResponseTo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[432].hf_id,
+ { &fix_hf[432],
{ "UnderlyingCouponRate (435)", "fix.UnderlyingCouponRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[433].hf_id,
+ { &fix_hf[433],
{ "UnderlyingContractMultiplier (436)", "fix.UnderlyingContractMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[434].hf_id,
+ { &fix_hf[434],
{ "ContraTradeQty (437)", "fix.ContraTradeQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[435].hf_id,
+ { &fix_hf[435],
{ "ContraTradeTime (438)", "fix.ContraTradeTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[436].hf_id,
+ { &fix_hf[436],
{ "ClearingFirm (439)", "fix.ClearingFirm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[437].hf_id,
+ { &fix_hf[437],
{ "ClearingAccount (440)", "fix.ClearingAccount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[438].hf_id,
+ { &fix_hf[438],
{ "LiquidityNumSecurities (441)", "fix.LiquidityNumSecurities",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[439].hf_id,
+ { &fix_hf[439],
{ "MultiLegReportingType (442)", "fix.MultiLegReportingType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[440].hf_id,
+ { &fix_hf[440],
{ "StrikeTime (443)", "fix.StrikeTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[441].hf_id,
+ { &fix_hf[441],
{ "ListStatusText (444)", "fix.ListStatusText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[442].hf_id,
+ { &fix_hf[442],
{ "EncodedListStatusTextLen (445)", "fix.EncodedListStatusTextLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[443].hf_id,
+ { &fix_hf[443],
{ "EncodedListStatusText (446)", "fix.EncodedListStatusText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[444].hf_id,
+ { &fix_hf[444],
{ "PartyIDSource (447)", "fix.PartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[445].hf_id,
+ { &fix_hf[445],
{ "PartyID (448)", "fix.PartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[446].hf_id,
+ { &fix_hf[446],
{ "TotalVolumeTradedDate (449)", "fix.TotalVolumeTradedDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[447].hf_id,
+ { &fix_hf[447],
{ "TotalVolumeTradedTime (450)", "fix.TotalVolumeTradedTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[448].hf_id,
+ { &fix_hf[448],
{ "NetChgPrevDay (451)", "fix.NetChgPrevDay",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[449].hf_id,
+ { &fix_hf[449],
{ "PartyRole (452)", "fix.PartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[450].hf_id,
+ { &fix_hf[450],
{ "NoPartyIDs (453)", "fix.NoPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[451].hf_id,
+ { &fix_hf[451],
{ "NoSecurityAltID (454)", "fix.NoSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[452].hf_id,
+ { &fix_hf[452],
{ "SecurityAltID (455)", "fix.SecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[453].hf_id,
+ { &fix_hf[453],
{ "SecurityAltIDSource (456)", "fix.SecurityAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[454].hf_id,
+ { &fix_hf[454],
{ "NoUnderlyingSecurityAltID (457)", "fix.NoUnderlyingSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[455].hf_id,
+ { &fix_hf[455],
{ "UnderlyingSecurityAltID (458)", "fix.UnderlyingSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[456].hf_id,
+ { &fix_hf[456],
{ "UnderlyingSecurityAltIDSource (459)", "fix.UnderlyingSecurityAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[457].hf_id,
+ { &fix_hf[457],
{ "Product (460)", "fix.Product",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[458].hf_id,
+ { &fix_hf[458],
{ "CFICode (461)", "fix.CFICode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[459].hf_id,
+ { &fix_hf[459],
{ "UnderlyingProduct (462)", "fix.UnderlyingProduct",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[460].hf_id,
+ { &fix_hf[460],
{ "UnderlyingCFICode (463)", "fix.UnderlyingCFICode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[461].hf_id,
+ { &fix_hf[461],
{ "TestMessageIndicator (464)", "fix.TestMessageIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[462].hf_id,
+ { &fix_hf[462],
{ "QuantityType (465)", "fix.QuantityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[463].hf_id,
+ { &fix_hf[463],
{ "BookingRefID (466)", "fix.BookingRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[464].hf_id,
+ { &fix_hf[464],
{ "IndividualAllocID (467)", "fix.IndividualAllocID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[465].hf_id,
+ { &fix_hf[465],
{ "RoundingDirection (468)", "fix.RoundingDirection",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[466].hf_id,
+ { &fix_hf[466],
{ "RoundingModulus (469)", "fix.RoundingModulus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[467].hf_id,
+ { &fix_hf[467],
{ "CountryOfIssue (470)", "fix.CountryOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[468].hf_id,
+ { &fix_hf[468],
{ "StateOrProvinceOfIssue (471)", "fix.StateOrProvinceOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[469].hf_id,
+ { &fix_hf[469],
{ "LocaleOfIssue (472)", "fix.LocaleOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[470].hf_id,
+ { &fix_hf[470],
{ "NoRegistDtls (473)", "fix.NoRegistDtls",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[471].hf_id,
+ { &fix_hf[471],
{ "MailingDtls (474)", "fix.MailingDtls",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[472].hf_id,
+ { &fix_hf[472],
{ "InvestorCountryOfResidence (475)", "fix.InvestorCountryOfResidence",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[473].hf_id,
+ { &fix_hf[473],
{ "PaymentRef (476)", "fix.PaymentRef",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[474].hf_id,
+ { &fix_hf[474],
{ "DistribPaymentMethod (477)", "fix.DistribPaymentMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[475].hf_id,
+ { &fix_hf[475],
{ "CashDistribCurr (478)", "fix.CashDistribCurr",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[476].hf_id,
+ { &fix_hf[476],
{ "CommCurrency (479)", "fix.CommCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[477].hf_id,
+ { &fix_hf[477],
{ "CancellationRights (480)", "fix.CancellationRights",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[478].hf_id,
+ { &fix_hf[478],
{ "MoneyLaunderingStatus (481)", "fix.MoneyLaunderingStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[479].hf_id,
+ { &fix_hf[479],
{ "MailingInst (482)", "fix.MailingInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[480].hf_id,
+ { &fix_hf[480],
{ "TransBkdTime (483)", "fix.TransBkdTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[481].hf_id,
+ { &fix_hf[481],
{ "ExecPriceType (484)", "fix.ExecPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[482].hf_id,
+ { &fix_hf[482],
{ "ExecPriceAdjustment (485)", "fix.ExecPriceAdjustment",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[483].hf_id,
+ { &fix_hf[483],
{ "DateOfBirth (486)", "fix.DateOfBirth",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[484].hf_id,
+ { &fix_hf[484],
{ "TradeReportTransType (487)", "fix.TradeReportTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[485].hf_id,
+ { &fix_hf[485],
{ "CardHolderName (488)", "fix.CardHolderName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[486].hf_id,
+ { &fix_hf[486],
{ "CardNumber (489)", "fix.CardNumber",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[487].hf_id,
+ { &fix_hf[487],
{ "CardExpDate (490)", "fix.CardExpDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[488].hf_id,
+ { &fix_hf[488],
{ "CardIssNum (491)", "fix.CardIssNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[489].hf_id,
+ { &fix_hf[489],
{ "PaymentMethod (492)", "fix.PaymentMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[490].hf_id,
+ { &fix_hf[490],
{ "RegistAcctType (493)", "fix.RegistAcctType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[491].hf_id,
+ { &fix_hf[491],
{ "Designation (494)", "fix.Designation",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[492].hf_id,
+ { &fix_hf[492],
{ "TaxAdvantageType (495)", "fix.TaxAdvantageType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[493].hf_id,
+ { &fix_hf[493],
{ "RegistRejReasonText (496)", "fix.RegistRejReasonText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[494].hf_id,
+ { &fix_hf[494],
{ "FundRenewWaiv (497)", "fix.FundRenewWaiv",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[495].hf_id,
+ { &fix_hf[495],
{ "CashDistribAgentName (498)", "fix.CashDistribAgentName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[496].hf_id,
+ { &fix_hf[496],
{ "CashDistribAgentCode (499)", "fix.CashDistribAgentCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[497].hf_id,
+ { &fix_hf[497],
{ "CashDistribAgentAcctNumber (500)", "fix.CashDistribAgentAcctNumber",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[498].hf_id,
+ { &fix_hf[498],
{ "CashDistribPayRef (501)", "fix.CashDistribPayRef",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[499].hf_id,
+ { &fix_hf[499],
{ "CashDistribAgentAcctName (502)", "fix.CashDistribAgentAcctName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[500].hf_id,
+ { &fix_hf[500],
{ "CardStartDate (503)", "fix.CardStartDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[501].hf_id,
+ { &fix_hf[501],
{ "PaymentDate (504)", "fix.PaymentDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[502].hf_id,
+ { &fix_hf[502],
{ "PaymentRemitterID (505)", "fix.PaymentRemitterID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[503].hf_id,
+ { &fix_hf[503],
{ "RegistStatus (506)", "fix.RegistStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[504].hf_id,
+ { &fix_hf[504],
{ "RegistRejReasonCode (507)", "fix.RegistRejReasonCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[505].hf_id,
+ { &fix_hf[505],
{ "RegistRefID (508)", "fix.RegistRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[506].hf_id,
+ { &fix_hf[506],
{ "RegistDtls (509)", "fix.RegistDtls",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[507].hf_id,
+ { &fix_hf[507],
{ "NoDistribInsts (510)", "fix.NoDistribInsts",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[508].hf_id,
+ { &fix_hf[508],
{ "RegistEmail (511)", "fix.RegistEmail",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[509].hf_id,
+ { &fix_hf[509],
{ "DistribPercentage (512)", "fix.DistribPercentage",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[510].hf_id,
+ { &fix_hf[510],
{ "RegistID (513)", "fix.RegistID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[511].hf_id,
+ { &fix_hf[511],
{ "RegistTransType (514)", "fix.RegistTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[512].hf_id,
+ { &fix_hf[512],
{ "ExecValuationPoint (515)", "fix.ExecValuationPoint",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[513].hf_id,
+ { &fix_hf[513],
{ "OrderPercent (516)", "fix.OrderPercent",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[514].hf_id,
+ { &fix_hf[514],
{ "OwnershipType (517)", "fix.OwnershipType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[515].hf_id,
+ { &fix_hf[515],
{ "NoContAmts (518)", "fix.NoContAmts",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[516].hf_id,
+ { &fix_hf[516],
{ "ContAmtType (519)", "fix.ContAmtType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[517].hf_id,
+ { &fix_hf[517],
{ "ContAmtValue (520)", "fix.ContAmtValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[518].hf_id,
+ { &fix_hf[518],
{ "ContAmtCurr (521)", "fix.ContAmtCurr",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[519].hf_id,
+ { &fix_hf[519],
{ "OwnerType (522)", "fix.OwnerType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[520].hf_id,
+ { &fix_hf[520],
{ "PartySubID (523)", "fix.PartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[521].hf_id,
+ { &fix_hf[521],
{ "NestedPartyID (524)", "fix.NestedPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[522].hf_id,
+ { &fix_hf[522],
{ "NestedPartyIDSource (525)", "fix.NestedPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[523].hf_id,
+ { &fix_hf[523],
{ "SecondaryClOrdID (526)", "fix.SecondaryClOrdID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[524].hf_id,
+ { &fix_hf[524],
{ "SecondaryExecID (527)", "fix.SecondaryExecID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[525].hf_id,
+ { &fix_hf[525],
{ "OrderCapacity (528)", "fix.OrderCapacity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[526].hf_id,
+ { &fix_hf[526],
{ "OrderRestrictions (529)", "fix.OrderRestrictions",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[527].hf_id,
+ { &fix_hf[527],
{ "MassCancelRequestType (530)", "fix.MassCancelRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[528].hf_id,
+ { &fix_hf[528],
{ "MassCancelResponse (531)", "fix.MassCancelResponse",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[529].hf_id,
+ { &fix_hf[529],
{ "MassCancelRejectReason (532)", "fix.MassCancelRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[530].hf_id,
+ { &fix_hf[530],
{ "TotalAffectedOrders (533)", "fix.TotalAffectedOrders",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[531].hf_id,
+ { &fix_hf[531],
{ "NoAffectedOrders (534)", "fix.NoAffectedOrders",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[532].hf_id,
+ { &fix_hf[532],
{ "AffectedOrderID (535)", "fix.AffectedOrderID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[533].hf_id,
+ { &fix_hf[533],
{ "AffectedSecondaryOrderID (536)", "fix.AffectedSecondaryOrderID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[534].hf_id,
+ { &fix_hf[534],
{ "QuoteType (537)", "fix.QuoteType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[535].hf_id,
+ { &fix_hf[535],
{ "NestedPartyRole (538)", "fix.NestedPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[536].hf_id,
+ { &fix_hf[536],
{ "NoNestedPartyIDs (539)", "fix.NoNestedPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[537].hf_id,
+ { &fix_hf[537],
{ "TotalAccruedInterestAmt (540)", "fix.TotalAccruedInterestAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[538].hf_id,
+ { &fix_hf[538],
{ "MaturityDate (541)", "fix.MaturityDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[539].hf_id,
+ { &fix_hf[539],
{ "UnderlyingMaturityDate (542)", "fix.UnderlyingMaturityDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[540].hf_id,
+ { &fix_hf[540],
{ "InstrRegistry (543)", "fix.InstrRegistry",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[541].hf_id,
+ { &fix_hf[541],
{ "CashMargin (544)", "fix.CashMargin",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[542].hf_id,
+ { &fix_hf[542],
{ "NestedPartySubID (545)", "fix.NestedPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[543].hf_id,
+ { &fix_hf[543],
{ "Scope (546)", "fix.Scope",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[544].hf_id,
+ { &fix_hf[544],
{ "MDImplicitDelete (547)", "fix.MDImplicitDelete",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[545].hf_id,
+ { &fix_hf[545],
{ "CrossID (548)", "fix.CrossID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[546].hf_id,
+ { &fix_hf[546],
{ "CrossType (549)", "fix.CrossType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[547].hf_id,
+ { &fix_hf[547],
{ "CrossPrioritization (550)", "fix.CrossPrioritization",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[548].hf_id,
+ { &fix_hf[548],
{ "OrigCrossID (551)", "fix.OrigCrossID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[549].hf_id,
+ { &fix_hf[549],
{ "NoSides (552)", "fix.NoSides",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[550].hf_id,
+ { &fix_hf[550],
{ "Username (553)", "fix.Username",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[551].hf_id,
+ { &fix_hf[551],
{ "Password (554)", "fix.Password",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[552].hf_id,
+ { &fix_hf[552],
{ "NoLegs (555)", "fix.NoLegs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[553].hf_id,
+ { &fix_hf[553],
{ "LegCurrency (556)", "fix.LegCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[554].hf_id,
+ { &fix_hf[554],
{ "TotNoSecurityTypes (557)", "fix.TotNoSecurityTypes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[555].hf_id,
+ { &fix_hf[555],
{ "NoSecurityTypes (558)", "fix.NoSecurityTypes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[556].hf_id,
+ { &fix_hf[556],
{ "SecurityListRequestType (559)", "fix.SecurityListRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[557].hf_id,
+ { &fix_hf[557],
{ "SecurityRequestResult (560)", "fix.SecurityRequestResult",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[558].hf_id,
+ { &fix_hf[558],
{ "RoundLot (561)", "fix.RoundLot",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[559].hf_id,
+ { &fix_hf[559],
{ "MinTradeVol (562)", "fix.MinTradeVol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[560].hf_id,
+ { &fix_hf[560],
{ "MultiLegRptTypeReq (563)", "fix.MultiLegRptTypeReq",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[561].hf_id,
+ { &fix_hf[561],
{ "LegPositionEffect (564)", "fix.LegPositionEffect",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[562].hf_id,
+ { &fix_hf[562],
{ "LegCoveredOrUncovered (565)", "fix.LegCoveredOrUncovered",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[563].hf_id,
+ { &fix_hf[563],
{ "LegPrice (566)", "fix.LegPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[564].hf_id,
+ { &fix_hf[564],
{ "TradSesStatusRejReason (567)", "fix.TradSesStatusRejReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[565].hf_id,
+ { &fix_hf[565],
{ "TradeRequestID (568)", "fix.TradeRequestID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[566].hf_id,
+ { &fix_hf[566],
{ "TradeRequestType (569)", "fix.TradeRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[567].hf_id,
+ { &fix_hf[567],
{ "PreviouslyReported (570)", "fix.PreviouslyReported",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[568].hf_id,
+ { &fix_hf[568],
{ "TradeReportID (571)", "fix.TradeReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[569].hf_id,
+ { &fix_hf[569],
{ "TradeReportRefID (572)", "fix.TradeReportRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[570].hf_id,
+ { &fix_hf[570],
{ "MatchStatus (573)", "fix.MatchStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[571].hf_id,
+ { &fix_hf[571],
{ "MatchType (574)", "fix.MatchType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[572].hf_id,
+ { &fix_hf[572],
{ "OddLot (575)", "fix.OddLot",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[573].hf_id,
+ { &fix_hf[573],
{ "NoClearingInstructions (576)", "fix.NoClearingInstructions",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[574].hf_id,
+ { &fix_hf[574],
{ "ClearingInstruction (577)", "fix.ClearingInstruction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[575].hf_id,
+ { &fix_hf[575],
{ "TradeInputSource (578)", "fix.TradeInputSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[576].hf_id,
+ { &fix_hf[576],
{ "TradeInputDevice (579)", "fix.TradeInputDevice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[577].hf_id,
+ { &fix_hf[577],
{ "NoDates (580)", "fix.NoDates",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[578].hf_id,
+ { &fix_hf[578],
{ "AccountType (581)", "fix.AccountType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[579].hf_id,
+ { &fix_hf[579],
{ "CustOrderCapacity (582)", "fix.CustOrderCapacity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[580].hf_id,
+ { &fix_hf[580],
{ "ClOrdLinkID (583)", "fix.ClOrdLinkID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[581].hf_id,
+ { &fix_hf[581],
{ "MassStatusReqID (584)", "fix.MassStatusReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[582].hf_id,
+ { &fix_hf[582],
{ "MassStatusReqType (585)", "fix.MassStatusReqType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[583].hf_id,
+ { &fix_hf[583],
{ "OrigOrdModTime (586)", "fix.OrigOrdModTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[584].hf_id,
+ { &fix_hf[584],
{ "LegSettlType (587)", "fix.LegSettlType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[585].hf_id,
+ { &fix_hf[585],
{ "LegSettlDate (588)", "fix.LegSettlDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[586].hf_id,
+ { &fix_hf[586],
{ "DayBookingInst (589)", "fix.DayBookingInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[587].hf_id,
+ { &fix_hf[587],
{ "BookingUnit (590)", "fix.BookingUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[588].hf_id,
+ { &fix_hf[588],
{ "PreallocMethod (591)", "fix.PreallocMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[589].hf_id,
+ { &fix_hf[589],
{ "UnderlyingCountryOfIssue (592)", "fix.UnderlyingCountryOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[590].hf_id,
+ { &fix_hf[590],
{ "UnderlyingStateOrProvinceOfIssue (593)", "fix.UnderlyingStateOrProvinceOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[591].hf_id,
+ { &fix_hf[591],
{ "UnderlyingLocaleOfIssue (594)", "fix.UnderlyingLocaleOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[592].hf_id,
+ { &fix_hf[592],
{ "UnderlyingInstrRegistry (595)", "fix.UnderlyingInstrRegistry",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[593].hf_id,
+ { &fix_hf[593],
{ "LegCountryOfIssue (596)", "fix.LegCountryOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[594].hf_id,
+ { &fix_hf[594],
{ "LegStateOrProvinceOfIssue (597)", "fix.LegStateOrProvinceOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[595].hf_id,
+ { &fix_hf[595],
{ "LegLocaleOfIssue (598)", "fix.LegLocaleOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[596].hf_id,
+ { &fix_hf[596],
{ "LegInstrRegistry (599)", "fix.LegInstrRegistry",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[597].hf_id,
+ { &fix_hf[597],
{ "LegSymbol (600)", "fix.LegSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[598].hf_id,
+ { &fix_hf[598],
{ "LegSymbolSfx (601)", "fix.LegSymbolSfx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[599].hf_id,
+ { &fix_hf[599],
{ "LegSecurityID (602)", "fix.LegSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[600].hf_id,
+ { &fix_hf[600],
{ "LegSecurityIDSource (603)", "fix.LegSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[601].hf_id,
+ { &fix_hf[601],
{ "NoLegSecurityAltID (604)", "fix.NoLegSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[602].hf_id,
+ { &fix_hf[602],
{ "LegSecurityAltID (605)", "fix.LegSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[603].hf_id,
+ { &fix_hf[603],
{ "LegSecurityAltIDSource (606)", "fix.LegSecurityAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[604].hf_id,
+ { &fix_hf[604],
{ "LegProduct (607)", "fix.LegProduct",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[605].hf_id,
+ { &fix_hf[605],
{ "LegCFICode (608)", "fix.LegCFICode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[606].hf_id,
+ { &fix_hf[606],
{ "LegSecurityType (609)", "fix.LegSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[607].hf_id,
+ { &fix_hf[607],
{ "LegMaturityMonthYear (610)", "fix.LegMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[608].hf_id,
+ { &fix_hf[608],
{ "LegMaturityDate (611)", "fix.LegMaturityDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[609].hf_id,
+ { &fix_hf[609],
{ "LegStrikePrice (612)", "fix.LegStrikePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[610].hf_id,
+ { &fix_hf[610],
{ "LegOptAttribute (613)", "fix.LegOptAttribute",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[611].hf_id,
+ { &fix_hf[611],
{ "LegContractMultiplier (614)", "fix.LegContractMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[612].hf_id,
+ { &fix_hf[612],
{ "LegCouponRate (615)", "fix.LegCouponRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[613].hf_id,
+ { &fix_hf[613],
{ "LegSecurityExchange (616)", "fix.LegSecurityExchange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[614].hf_id,
+ { &fix_hf[614],
{ "LegIssuer (617)", "fix.LegIssuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[615].hf_id,
+ { &fix_hf[615],
{ "EncodedLegIssuerLen (618)", "fix.EncodedLegIssuerLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[616].hf_id,
+ { &fix_hf[616],
{ "EncodedLegIssuer (619)", "fix.EncodedLegIssuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[617].hf_id,
+ { &fix_hf[617],
{ "LegSecurityDesc (620)", "fix.LegSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[618].hf_id,
+ { &fix_hf[618],
{ "EncodedLegSecurityDescLen (621)", "fix.EncodedLegSecurityDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[619].hf_id,
+ { &fix_hf[619],
{ "EncodedLegSecurityDesc (622)", "fix.EncodedLegSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[620].hf_id,
+ { &fix_hf[620],
{ "LegRatioQty (623)", "fix.LegRatioQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[621].hf_id,
+ { &fix_hf[621],
{ "LegSide (624)", "fix.LegSide",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[622].hf_id,
+ { &fix_hf[622],
{ "TradingSessionSubID (625)", "fix.TradingSessionSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[623].hf_id,
+ { &fix_hf[623],
{ "AllocType (626)", "fix.AllocType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[624].hf_id,
+ { &fix_hf[624],
{ "NoHops (627)", "fix.NoHops",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[625].hf_id,
+ { &fix_hf[625],
{ "HopCompID (628)", "fix.HopCompID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[626].hf_id,
+ { &fix_hf[626],
{ "HopSendingTime (629)", "fix.HopSendingTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[627].hf_id,
+ { &fix_hf[627],
{ "HopRefID (630)", "fix.HopRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[628].hf_id,
+ { &fix_hf[628],
{ "MidPx (631)", "fix.MidPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[629].hf_id,
+ { &fix_hf[629],
{ "BidYield (632)", "fix.BidYield",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[630].hf_id,
+ { &fix_hf[630],
{ "MidYield (633)", "fix.MidYield",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[631].hf_id,
+ { &fix_hf[631],
{ "OfferYield (634)", "fix.OfferYield",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[632].hf_id,
+ { &fix_hf[632],
{ "ClearingFeeIndicator (635)", "fix.ClearingFeeIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[633].hf_id,
+ { &fix_hf[633],
{ "WorkingIndicator (636)", "fix.WorkingIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[634].hf_id,
+ { &fix_hf[634],
{ "LegLastPx (637)", "fix.LegLastPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[635].hf_id,
+ { &fix_hf[635],
{ "PriorityIndicator (638)", "fix.PriorityIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[636].hf_id,
+ { &fix_hf[636],
{ "PriceImprovement (639)", "fix.PriceImprovement",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[637].hf_id,
+ { &fix_hf[637],
{ "Price2 (640)", "fix.Price2",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[638].hf_id,
+ { &fix_hf[638],
{ "LastForwardPoints2 (641)", "fix.LastForwardPoints2",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[639].hf_id,
+ { &fix_hf[639],
{ "BidForwardPoints2 (642)", "fix.BidForwardPoints2",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[640].hf_id,
+ { &fix_hf[640],
{ "OfferForwardPoints2 (643)", "fix.OfferForwardPoints2",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[641].hf_id,
+ { &fix_hf[641],
{ "RFQReqID (644)", "fix.RFQReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[642].hf_id,
+ { &fix_hf[642],
{ "MktBidPx (645)", "fix.MktBidPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[643].hf_id,
+ { &fix_hf[643],
{ "MktOfferPx (646)", "fix.MktOfferPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[644].hf_id,
+ { &fix_hf[644],
{ "MinBidSize (647)", "fix.MinBidSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[645].hf_id,
+ { &fix_hf[645],
{ "MinOfferSize (648)", "fix.MinOfferSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[646].hf_id,
+ { &fix_hf[646],
{ "QuoteStatusReqID (649)", "fix.QuoteStatusReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[647].hf_id,
+ { &fix_hf[647],
{ "LegalConfirm (650)", "fix.LegalConfirm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[648].hf_id,
+ { &fix_hf[648],
{ "UnderlyingLastPx (651)", "fix.UnderlyingLastPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[649].hf_id,
+ { &fix_hf[649],
{ "UnderlyingLastQty (652)", "fix.UnderlyingLastQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[650].hf_id,
+ { &fix_hf[650],
{ "SecDefStatus (653)", "fix.SecDefStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[651].hf_id,
+ { &fix_hf[651],
{ "LegRefID (654)", "fix.LegRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[652].hf_id,
+ { &fix_hf[652],
{ "ContraLegRefID (655)", "fix.ContraLegRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[653].hf_id,
+ { &fix_hf[653],
{ "SettlCurrBidFxRate (656)", "fix.SettlCurrBidFxRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[654].hf_id,
+ { &fix_hf[654],
{ "SettlCurrOfferFxRate (657)", "fix.SettlCurrOfferFxRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[655].hf_id,
+ { &fix_hf[655],
{ "QuoteRequestRejectReason (658)", "fix.QuoteRequestRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[656].hf_id,
+ { &fix_hf[656],
{ "SideComplianceID (659)", "fix.SideComplianceID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[657].hf_id,
+ { &fix_hf[657],
{ "AcctIDSource (660)", "fix.AcctIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[658].hf_id,
+ { &fix_hf[658],
{ "AllocAcctIDSource (661)", "fix.AllocAcctIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[659].hf_id,
+ { &fix_hf[659],
{ "BenchmarkPrice (662)", "fix.BenchmarkPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[660].hf_id,
+ { &fix_hf[660],
{ "BenchmarkPriceType (663)", "fix.BenchmarkPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[661].hf_id,
+ { &fix_hf[661],
{ "ConfirmID (664)", "fix.ConfirmID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[662].hf_id,
+ { &fix_hf[662],
{ "ConfirmStatus (665)", "fix.ConfirmStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[663].hf_id,
+ { &fix_hf[663],
{ "ConfirmTransType (666)", "fix.ConfirmTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[664].hf_id,
+ { &fix_hf[664],
{ "ContractSettlMonth (667)", "fix.ContractSettlMonth",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[665].hf_id,
+ { &fix_hf[665],
{ "DeliveryForm (668)", "fix.DeliveryForm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[666].hf_id,
+ { &fix_hf[666],
{ "LastParPx (669)", "fix.LastParPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[667].hf_id,
+ { &fix_hf[667],
{ "NoLegAllocs (670)", "fix.NoLegAllocs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[668].hf_id,
+ { &fix_hf[668],
{ "LegAllocAccount (671)", "fix.LegAllocAccount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[669].hf_id,
+ { &fix_hf[669],
{ "LegIndividualAllocID (672)", "fix.LegIndividualAllocID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[670].hf_id,
+ { &fix_hf[670],
{ "LegAllocQty (673)", "fix.LegAllocQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[671].hf_id,
+ { &fix_hf[671],
{ "LegAllocAcctIDSource (674)", "fix.LegAllocAcctIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[672].hf_id,
+ { &fix_hf[672],
{ "LegSettlCurrency (675)", "fix.LegSettlCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[673].hf_id,
+ { &fix_hf[673],
{ "LegBenchmarkCurveCurrency (676)", "fix.LegBenchmarkCurveCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[674].hf_id,
+ { &fix_hf[674],
{ "LegBenchmarkCurveName (677)", "fix.LegBenchmarkCurveName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[675].hf_id,
+ { &fix_hf[675],
{ "LegBenchmarkCurvePoint (678)", "fix.LegBenchmarkCurvePoint",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[676].hf_id,
+ { &fix_hf[676],
{ "LegBenchmarkPrice (679)", "fix.LegBenchmarkPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[677].hf_id,
+ { &fix_hf[677],
{ "LegBenchmarkPriceType (680)", "fix.LegBenchmarkPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[678].hf_id,
+ { &fix_hf[678],
{ "LegBidPx (681)", "fix.LegBidPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[679].hf_id,
+ { &fix_hf[679],
{ "LegIOIQty (682)", "fix.LegIOIQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[680].hf_id,
+ { &fix_hf[680],
{ "NoLegStipulations (683)", "fix.NoLegStipulations",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[681].hf_id,
+ { &fix_hf[681],
{ "LegOfferPx (684)", "fix.LegOfferPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[682].hf_id,
+ { &fix_hf[682],
{ "LegOrderQty (685)", "fix.LegOrderQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[683].hf_id,
+ { &fix_hf[683],
{ "LegPriceType (686)", "fix.LegPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[684].hf_id,
+ { &fix_hf[684],
{ "LegQty (687)", "fix.LegQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[685].hf_id,
+ { &fix_hf[685],
{ "LegStipulationType (688)", "fix.LegStipulationType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[686].hf_id,
+ { &fix_hf[686],
{ "LegStipulationValue (689)", "fix.LegStipulationValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[687].hf_id,
+ { &fix_hf[687],
{ "LegSwapType (690)", "fix.LegSwapType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[688].hf_id,
+ { &fix_hf[688],
{ "Pool (691)", "fix.Pool",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[689].hf_id,
+ { &fix_hf[689],
{ "QuotePriceType (692)", "fix.QuotePriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[690].hf_id,
+ { &fix_hf[690],
{ "QuoteRespID (693)", "fix.QuoteRespID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[691].hf_id,
+ { &fix_hf[691],
{ "QuoteRespType (694)", "fix.QuoteRespType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[692].hf_id,
+ { &fix_hf[692],
{ "QuoteQualifier (695)", "fix.QuoteQualifier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[693].hf_id,
+ { &fix_hf[693],
{ "YieldRedemptionDate (696)", "fix.YieldRedemptionDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[694].hf_id,
+ { &fix_hf[694],
{ "YieldRedemptionPrice (697)", "fix.YieldRedemptionPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[695].hf_id,
+ { &fix_hf[695],
{ "YieldRedemptionPriceType (698)", "fix.YieldRedemptionPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[696].hf_id,
+ { &fix_hf[696],
{ "BenchmarkSecurityID (699)", "fix.BenchmarkSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[697].hf_id,
+ { &fix_hf[697],
{ "ReversalIndicator (700)", "fix.ReversalIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[698].hf_id,
+ { &fix_hf[698],
{ "YieldCalcDate (701)", "fix.YieldCalcDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[699].hf_id,
+ { &fix_hf[699],
{ "NoPositions (702)", "fix.NoPositions",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[700].hf_id,
+ { &fix_hf[700],
{ "PosType (703)", "fix.PosType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[701].hf_id,
+ { &fix_hf[701],
{ "LongQty (704)", "fix.LongQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[702].hf_id,
+ { &fix_hf[702],
{ "ShortQty (705)", "fix.ShortQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[703].hf_id,
+ { &fix_hf[703],
{ "PosQtyStatus (706)", "fix.PosQtyStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[704].hf_id,
+ { &fix_hf[704],
{ "PosAmtType (707)", "fix.PosAmtType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[705].hf_id,
+ { &fix_hf[705],
{ "PosAmt (708)", "fix.PosAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[706].hf_id,
+ { &fix_hf[706],
{ "PosTransType (709)", "fix.PosTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[707].hf_id,
+ { &fix_hf[707],
{ "PosReqID (710)", "fix.PosReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[708].hf_id,
+ { &fix_hf[708],
{ "NoUnderlyings (711)", "fix.NoUnderlyings",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[709].hf_id,
+ { &fix_hf[709],
{ "PosMaintAction (712)", "fix.PosMaintAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[710].hf_id,
+ { &fix_hf[710],
{ "OrigPosReqRefID (713)", "fix.OrigPosReqRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[711].hf_id,
+ { &fix_hf[711],
{ "PosMaintRptRefID (714)", "fix.PosMaintRptRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[712].hf_id,
+ { &fix_hf[712],
{ "ClearingBusinessDate (715)", "fix.ClearingBusinessDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[713].hf_id,
+ { &fix_hf[713],
{ "SettlSessID (716)", "fix.SettlSessID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[714].hf_id,
+ { &fix_hf[714],
{ "SettlSessSubID (717)", "fix.SettlSessSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[715].hf_id,
+ { &fix_hf[715],
{ "AdjustmentType (718)", "fix.AdjustmentType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[716].hf_id,
+ { &fix_hf[716],
{ "ContraryInstructionIndicator (719)", "fix.ContraryInstructionIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[717].hf_id,
+ { &fix_hf[717],
{ "PriorSpreadIndicator (720)", "fix.PriorSpreadIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[718].hf_id,
+ { &fix_hf[718],
{ "PosMaintRptID (721)", "fix.PosMaintRptID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[719].hf_id,
+ { &fix_hf[719],
{ "PosMaintStatus (722)", "fix.PosMaintStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[720].hf_id,
+ { &fix_hf[720],
{ "PosMaintResult (723)", "fix.PosMaintResult",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[721].hf_id,
+ { &fix_hf[721],
{ "PosReqType (724)", "fix.PosReqType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[722].hf_id,
+ { &fix_hf[722],
{ "ResponseTransportType (725)", "fix.ResponseTransportType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[723].hf_id,
+ { &fix_hf[723],
{ "ResponseDestination (726)", "fix.ResponseDestination",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[724].hf_id,
+ { &fix_hf[724],
{ "TotalNumPosReports (727)", "fix.TotalNumPosReports",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[725].hf_id,
+ { &fix_hf[725],
{ "PosReqResult (728)", "fix.PosReqResult",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[726].hf_id,
+ { &fix_hf[726],
{ "PosReqStatus (729)", "fix.PosReqStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[727].hf_id,
+ { &fix_hf[727],
{ "SettlPrice (730)", "fix.SettlPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[728].hf_id,
+ { &fix_hf[728],
{ "SettlPriceType (731)", "fix.SettlPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[729].hf_id,
+ { &fix_hf[729],
{ "UnderlyingSettlPrice (732)", "fix.UnderlyingSettlPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[730].hf_id,
+ { &fix_hf[730],
{ "UnderlyingSettlPriceType (733)", "fix.UnderlyingSettlPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[731].hf_id,
+ { &fix_hf[731],
{ "PriorSettlPrice (734)", "fix.PriorSettlPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[732].hf_id,
+ { &fix_hf[732],
{ "NoQuoteQualifiers (735)", "fix.NoQuoteQualifiers",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[733].hf_id,
+ { &fix_hf[733],
{ "AllocSettlCurrency (736)", "fix.AllocSettlCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[734].hf_id,
+ { &fix_hf[734],
{ "AllocSettlCurrAmt (737)", "fix.AllocSettlCurrAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[735].hf_id,
+ { &fix_hf[735],
{ "InterestAtMaturity (738)", "fix.InterestAtMaturity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[736].hf_id,
+ { &fix_hf[736],
{ "LegDatedDate (739)", "fix.LegDatedDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[737].hf_id,
+ { &fix_hf[737],
{ "LegPool (740)", "fix.LegPool",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[738].hf_id,
+ { &fix_hf[738],
{ "AllocInterestAtMaturity (741)", "fix.AllocInterestAtMaturity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[739].hf_id,
+ { &fix_hf[739],
{ "AllocAccruedInterestAmt (742)", "fix.AllocAccruedInterestAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[740].hf_id,
+ { &fix_hf[740],
{ "DeliveryDate (743)", "fix.DeliveryDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[741].hf_id,
+ { &fix_hf[741],
{ "AssignmentMethod (744)", "fix.AssignmentMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[742].hf_id,
+ { &fix_hf[742],
{ "AssignmentUnit (745)", "fix.AssignmentUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[743].hf_id,
+ { &fix_hf[743],
{ "OpenInterest (746)", "fix.OpenInterest",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[744].hf_id,
+ { &fix_hf[744],
{ "ExerciseMethod (747)", "fix.ExerciseMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[745].hf_id,
+ { &fix_hf[745],
{ "TotNumTradeReports (748)", "fix.TotNumTradeReports",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[746].hf_id,
+ { &fix_hf[746],
{ "TradeRequestResult (749)", "fix.TradeRequestResult",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[747].hf_id,
+ { &fix_hf[747],
{ "TradeRequestStatus (750)", "fix.TradeRequestStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[748].hf_id,
+ { &fix_hf[748],
{ "TradeReportRejectReason (751)", "fix.TradeReportRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[749].hf_id,
+ { &fix_hf[749],
{ "SideMultiLegReportingType (752)", "fix.SideMultiLegReportingType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[750].hf_id,
+ { &fix_hf[750],
{ "NoPosAmt (753)", "fix.NoPosAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[751].hf_id,
+ { &fix_hf[751],
{ "AutoAcceptIndicator (754)", "fix.AutoAcceptIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[752].hf_id,
+ { &fix_hf[752],
{ "AllocReportID (755)", "fix.AllocReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[753].hf_id,
+ { &fix_hf[753],
{ "NoNested2PartyIDs (756)", "fix.NoNested2PartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[754].hf_id,
+ { &fix_hf[754],
{ "Nested2PartyID (757)", "fix.Nested2PartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[755].hf_id,
+ { &fix_hf[755],
{ "Nested2PartyIDSource (758)", "fix.Nested2PartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[756].hf_id,
+ { &fix_hf[756],
{ "Nested2PartyRole (759)", "fix.Nested2PartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[757].hf_id,
+ { &fix_hf[757],
{ "Nested2PartySubID (760)", "fix.Nested2PartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[758].hf_id,
+ { &fix_hf[758],
{ "BenchmarkSecurityIDSource (761)", "fix.BenchmarkSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[759].hf_id,
+ { &fix_hf[759],
{ "SecuritySubType (762)", "fix.SecuritySubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[760].hf_id,
+ { &fix_hf[760],
{ "UnderlyingSecuritySubType (763)", "fix.UnderlyingSecuritySubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[761].hf_id,
+ { &fix_hf[761],
{ "LegSecuritySubType (764)", "fix.LegSecuritySubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[762].hf_id,
+ { &fix_hf[762],
{ "AllowableOneSidednessPct (765)", "fix.AllowableOneSidednessPct",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[763].hf_id,
+ { &fix_hf[763],
{ "AllowableOneSidednessValue (766)", "fix.AllowableOneSidednessValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[764].hf_id,
+ { &fix_hf[764],
{ "AllowableOneSidednessCurr (767)", "fix.AllowableOneSidednessCurr",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[765].hf_id,
+ { &fix_hf[765],
{ "NoTrdRegTimestamps (768)", "fix.NoTrdRegTimestamps",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[766].hf_id,
+ { &fix_hf[766],
{ "TrdRegTimestamp (769)", "fix.TrdRegTimestamp",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[767].hf_id,
+ { &fix_hf[767],
{ "TrdRegTimestampType (770)", "fix.TrdRegTimestampType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[768].hf_id,
+ { &fix_hf[768],
{ "TrdRegTimestampOrigin (771)", "fix.TrdRegTimestampOrigin",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[769].hf_id,
+ { &fix_hf[769],
{ "ConfirmRefID (772)", "fix.ConfirmRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[770].hf_id,
+ { &fix_hf[770],
{ "ConfirmType (773)", "fix.ConfirmType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[771].hf_id,
+ { &fix_hf[771],
{ "ConfirmRejReason (774)", "fix.ConfirmRejReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[772].hf_id,
+ { &fix_hf[772],
{ "BookingType (775)", "fix.BookingType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[773].hf_id,
+ { &fix_hf[773],
{ "IndividualAllocRejCode (776)", "fix.IndividualAllocRejCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[774].hf_id,
+ { &fix_hf[774],
{ "SettlInstMsgID (777)", "fix.SettlInstMsgID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[775].hf_id,
+ { &fix_hf[775],
{ "NoSettlInst (778)", "fix.NoSettlInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[776].hf_id,
+ { &fix_hf[776],
{ "LastUpdateTime (779)", "fix.LastUpdateTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[777].hf_id,
+ { &fix_hf[777],
{ "AllocSettlInstType (780)", "fix.AllocSettlInstType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[778].hf_id,
+ { &fix_hf[778],
{ "NoSettlPartyIDs (781)", "fix.NoSettlPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[779].hf_id,
+ { &fix_hf[779],
{ "SettlPartyID (782)", "fix.SettlPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[780].hf_id,
+ { &fix_hf[780],
{ "SettlPartyIDSource (783)", "fix.SettlPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[781].hf_id,
+ { &fix_hf[781],
{ "SettlPartyRole (784)", "fix.SettlPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[782].hf_id,
+ { &fix_hf[782],
{ "SettlPartySubID (785)", "fix.SettlPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[783].hf_id,
+ { &fix_hf[783],
{ "SettlPartySubIDType (786)", "fix.SettlPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[784].hf_id,
+ { &fix_hf[784],
{ "DlvyInstType (787)", "fix.DlvyInstType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[785].hf_id,
+ { &fix_hf[785],
{ "TerminationType (788)", "fix.TerminationType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[786].hf_id,
+ { &fix_hf[786],
{ "NextExpectedMsgSeqNum (789)", "fix.NextExpectedMsgSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[787].hf_id,
+ { &fix_hf[787],
{ "OrdStatusReqID (790)", "fix.OrdStatusReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[788].hf_id,
+ { &fix_hf[788],
{ "SettlInstReqID (791)", "fix.SettlInstReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[789].hf_id,
+ { &fix_hf[789],
{ "SettlInstReqRejCode (792)", "fix.SettlInstReqRejCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[790].hf_id,
+ { &fix_hf[790],
{ "SecondaryAllocID (793)", "fix.SecondaryAllocID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[791].hf_id,
+ { &fix_hf[791],
{ "AllocReportType (794)", "fix.AllocReportType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[792].hf_id,
+ { &fix_hf[792],
{ "AllocReportRefID (795)", "fix.AllocReportRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[793].hf_id,
+ { &fix_hf[793],
{ "AllocCancReplaceReason (796)", "fix.AllocCancReplaceReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[794].hf_id,
+ { &fix_hf[794],
{ "CopyMsgIndicator (797)", "fix.CopyMsgIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[795].hf_id,
+ { &fix_hf[795],
{ "AllocAccountType (798)", "fix.AllocAccountType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[796].hf_id,
+ { &fix_hf[796],
{ "OrderAvgPx (799)", "fix.OrderAvgPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[797].hf_id,
+ { &fix_hf[797],
{ "OrderBookingQty (800)", "fix.OrderBookingQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[798].hf_id,
+ { &fix_hf[798],
{ "NoSettlPartySubIDs (801)", "fix.NoSettlPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[799].hf_id,
+ { &fix_hf[799],
{ "NoPartySubIDs (802)", "fix.NoPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[800].hf_id,
+ { &fix_hf[800],
{ "PartySubIDType (803)", "fix.PartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[801].hf_id,
+ { &fix_hf[801],
{ "NoNestedPartySubIDs (804)", "fix.NoNestedPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[802].hf_id,
+ { &fix_hf[802],
{ "NestedPartySubIDType (805)", "fix.NestedPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[803].hf_id,
+ { &fix_hf[803],
{ "NoNested2PartySubIDs (806)", "fix.NoNested2PartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[804].hf_id,
+ { &fix_hf[804],
{ "Nested2PartySubIDType (807)", "fix.Nested2PartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[805].hf_id,
+ { &fix_hf[805],
{ "AllocIntermedReqType (808)", "fix.AllocIntermedReqType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[806].hf_id,
+ { &fix_hf[806],
{ "UnderlyingPx (810)", "fix.UnderlyingPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[807].hf_id,
+ { &fix_hf[807],
{ "PriceDelta (811)", "fix.PriceDelta",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[808].hf_id,
+ { &fix_hf[808],
{ "ApplQueueMax (812)", "fix.ApplQueueMax",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[809].hf_id,
+ { &fix_hf[809],
{ "ApplQueueDepth (813)", "fix.ApplQueueDepth",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[810].hf_id,
+ { &fix_hf[810],
{ "ApplQueueResolution (814)", "fix.ApplQueueResolution",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[811].hf_id,
+ { &fix_hf[811],
{ "ApplQueueAction (815)", "fix.ApplQueueAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[812].hf_id,
+ { &fix_hf[812],
{ "NoAltMDSource (816)", "fix.NoAltMDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[813].hf_id,
+ { &fix_hf[813],
{ "AltMDSourceID (817)", "fix.AltMDSourceID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[814].hf_id,
+ { &fix_hf[814],
{ "SecondaryTradeReportID (818)", "fix.SecondaryTradeReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[815].hf_id,
+ { &fix_hf[815],
{ "AvgPxIndicator (819)", "fix.AvgPxIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[816].hf_id,
+ { &fix_hf[816],
{ "TradeLinkID (820)", "fix.TradeLinkID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[817].hf_id,
+ { &fix_hf[817],
{ "OrderInputDevice (821)", "fix.OrderInputDevice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[818].hf_id,
+ { &fix_hf[818],
{ "UnderlyingTradingSessionID (822)", "fix.UnderlyingTradingSessionID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[819].hf_id,
+ { &fix_hf[819],
{ "UnderlyingTradingSessionSubID (823)", "fix.UnderlyingTradingSessionSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[820].hf_id,
+ { &fix_hf[820],
{ "TradeLegRefID (824)", "fix.TradeLegRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[821].hf_id,
+ { &fix_hf[821],
{ "ExchangeRule (825)", "fix.ExchangeRule",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[822].hf_id,
+ { &fix_hf[822],
{ "TradeAllocIndicator (826)", "fix.TradeAllocIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[823].hf_id,
+ { &fix_hf[823],
{ "ExpirationCycle (827)", "fix.ExpirationCycle",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[824].hf_id,
+ { &fix_hf[824],
{ "TrdType (828)", "fix.TrdType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[825].hf_id,
+ { &fix_hf[825],
{ "TrdSubType (829)", "fix.TrdSubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[826].hf_id,
+ { &fix_hf[826],
{ "TransferReason (830)", "fix.TransferReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[827].hf_id,
+ { &fix_hf[827],
{ "AsgnReqID (831)", "fix.AsgnReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[828].hf_id,
+ { &fix_hf[828],
{ "TotNumAssignmentReports (832)", "fix.TotNumAssignmentReports",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[829].hf_id,
+ { &fix_hf[829],
{ "AsgnRptID (833)", "fix.AsgnRptID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[830].hf_id,
+ { &fix_hf[830],
{ "ThresholdAmount (834)", "fix.ThresholdAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[831].hf_id,
+ { &fix_hf[831],
{ "PegMoveType (835)", "fix.PegMoveType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[832].hf_id,
+ { &fix_hf[832],
{ "PegOffsetType (836)", "fix.PegOffsetType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[833].hf_id,
+ { &fix_hf[833],
{ "PegLimitType (837)", "fix.PegLimitType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[834].hf_id,
+ { &fix_hf[834],
{ "PegRoundDirection (838)", "fix.PegRoundDirection",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[835].hf_id,
+ { &fix_hf[835],
{ "PeggedPrice (839)", "fix.PeggedPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[836].hf_id,
+ { &fix_hf[836],
{ "PegScope (840)", "fix.PegScope",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[837].hf_id,
+ { &fix_hf[837],
{ "DiscretionMoveType (841)", "fix.DiscretionMoveType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[838].hf_id,
+ { &fix_hf[838],
{ "DiscretionOffsetType (842)", "fix.DiscretionOffsetType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[839].hf_id,
+ { &fix_hf[839],
{ "DiscretionLimitType (843)", "fix.DiscretionLimitType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[840].hf_id,
+ { &fix_hf[840],
{ "DiscretionRoundDirection (844)", "fix.DiscretionRoundDirection",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[841].hf_id,
+ { &fix_hf[841],
{ "DiscretionPrice (845)", "fix.DiscretionPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[842].hf_id,
+ { &fix_hf[842],
{ "DiscretionScope (846)", "fix.DiscretionScope",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[843].hf_id,
+ { &fix_hf[843],
{ "TargetStrategy (847)", "fix.TargetStrategy",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[844].hf_id,
+ { &fix_hf[844],
{ "TargetStrategyParameters (848)", "fix.TargetStrategyParameters",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[845].hf_id,
+ { &fix_hf[845],
{ "ParticipationRate (849)", "fix.ParticipationRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[846].hf_id,
+ { &fix_hf[846],
{ "TargetStrategyPerformance (850)", "fix.TargetStrategyPerformance",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[847].hf_id,
+ { &fix_hf[847],
{ "LastLiquidityInd (851)", "fix.LastLiquidityInd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[848].hf_id,
+ { &fix_hf[848],
{ "PublishTrdIndicator (852)", "fix.PublishTrdIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[849].hf_id,
+ { &fix_hf[849],
{ "ShortSaleReason (853)", "fix.ShortSaleReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[850].hf_id,
+ { &fix_hf[850],
{ "QtyType (854)", "fix.QtyType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[851].hf_id,
+ { &fix_hf[851],
{ "SecondaryTrdType (855)", "fix.SecondaryTrdType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[852].hf_id,
+ { &fix_hf[852],
{ "TradeReportType (856)", "fix.TradeReportType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[853].hf_id,
+ { &fix_hf[853],
{ "AllocNoOrdersType (857)", "fix.AllocNoOrdersType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[854].hf_id,
+ { &fix_hf[854],
{ "SharedCommission (858)", "fix.SharedCommission",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[855].hf_id,
+ { &fix_hf[855],
{ "ConfirmReqID (859)", "fix.ConfirmReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[856].hf_id,
+ { &fix_hf[856],
{ "AvgParPx (860)", "fix.AvgParPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[857].hf_id,
+ { &fix_hf[857],
{ "ReportedPx (861)", "fix.ReportedPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[858].hf_id,
+ { &fix_hf[858],
{ "NoCapacities (862)", "fix.NoCapacities",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[859].hf_id,
+ { &fix_hf[859],
{ "OrderCapacityQty (863)", "fix.OrderCapacityQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[860].hf_id,
+ { &fix_hf[860],
{ "NoEvents (864)", "fix.NoEvents",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[861].hf_id,
+ { &fix_hf[861],
{ "EventType (865)", "fix.EventType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[862].hf_id,
+ { &fix_hf[862],
{ "EventDate (866)", "fix.EventDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[863].hf_id,
+ { &fix_hf[863],
{ "EventPx (867)", "fix.EventPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[864].hf_id,
+ { &fix_hf[864],
{ "EventText (868)", "fix.EventText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[865].hf_id,
+ { &fix_hf[865],
{ "PctAtRisk (869)", "fix.PctAtRisk",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[866].hf_id,
+ { &fix_hf[866],
{ "NoInstrAttrib (870)", "fix.NoInstrAttrib",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[867].hf_id,
+ { &fix_hf[867],
{ "InstrAttribType (871)", "fix.InstrAttribType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[868].hf_id,
+ { &fix_hf[868],
{ "InstrAttribValue (872)", "fix.InstrAttribValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[869].hf_id,
+ { &fix_hf[869],
{ "DatedDate (873)", "fix.DatedDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[870].hf_id,
+ { &fix_hf[870],
{ "InterestAccrualDate (874)", "fix.InterestAccrualDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[871].hf_id,
+ { &fix_hf[871],
{ "CPProgram (875)", "fix.CPProgram",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[872].hf_id,
+ { &fix_hf[872],
{ "CPRegType (876)", "fix.CPRegType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[873].hf_id,
+ { &fix_hf[873],
{ "UnderlyingCPProgram (877)", "fix.UnderlyingCPProgram",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[874].hf_id,
+ { &fix_hf[874],
{ "UnderlyingCPRegType (878)", "fix.UnderlyingCPRegType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[875].hf_id,
+ { &fix_hf[875],
{ "UnderlyingQty (879)", "fix.UnderlyingQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[876].hf_id,
+ { &fix_hf[876],
{ "TrdMatchID (880)", "fix.TrdMatchID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[877].hf_id,
+ { &fix_hf[877],
{ "SecondaryTradeReportRefID (881)", "fix.SecondaryTradeReportRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[878].hf_id,
+ { &fix_hf[878],
{ "UnderlyingDirtyPrice (882)", "fix.UnderlyingDirtyPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[879].hf_id,
+ { &fix_hf[879],
{ "UnderlyingEndPrice (883)", "fix.UnderlyingEndPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[880].hf_id,
+ { &fix_hf[880],
{ "UnderlyingStartValue (884)", "fix.UnderlyingStartValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[881].hf_id,
+ { &fix_hf[881],
{ "UnderlyingCurrentValue (885)", "fix.UnderlyingCurrentValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[882].hf_id,
+ { &fix_hf[882],
{ "UnderlyingEndValue (886)", "fix.UnderlyingEndValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[883].hf_id,
+ { &fix_hf[883],
{ "NoUnderlyingStips (887)", "fix.NoUnderlyingStips",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[884].hf_id,
+ { &fix_hf[884],
{ "UnderlyingStipType (888)", "fix.UnderlyingStipType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[885].hf_id,
+ { &fix_hf[885],
{ "UnderlyingStipValue (889)", "fix.UnderlyingStipValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[886].hf_id,
+ { &fix_hf[886],
{ "MaturityNetMoney (890)", "fix.MaturityNetMoney",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[887].hf_id,
+ { &fix_hf[887],
{ "MiscFeeBasis (891)", "fix.MiscFeeBasis",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[888].hf_id,
+ { &fix_hf[888],
{ "TotNoAllocs (892)", "fix.TotNoAllocs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[889].hf_id,
+ { &fix_hf[889],
{ "LastFragment (893)", "fix.LastFragment",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[890].hf_id,
+ { &fix_hf[890],
{ "CollReqID (894)", "fix.CollReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[891].hf_id,
+ { &fix_hf[891],
{ "CollAsgnReason (895)", "fix.CollAsgnReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[892].hf_id,
+ { &fix_hf[892],
{ "CollInquiryQualifier (896)", "fix.CollInquiryQualifier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[893].hf_id,
+ { &fix_hf[893],
{ "NoTrades (897)", "fix.NoTrades",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[894].hf_id,
+ { &fix_hf[894],
{ "MarginRatio (898)", "fix.MarginRatio",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[895].hf_id,
+ { &fix_hf[895],
{ "MarginExcess (899)", "fix.MarginExcess",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[896].hf_id,
+ { &fix_hf[896],
{ "TotalNetValue (900)", "fix.TotalNetValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[897].hf_id,
+ { &fix_hf[897],
{ "CashOutstanding (901)", "fix.CashOutstanding",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[898].hf_id,
+ { &fix_hf[898],
{ "CollAsgnID (902)", "fix.CollAsgnID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[899].hf_id,
+ { &fix_hf[899],
{ "CollAsgnTransType (903)", "fix.CollAsgnTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[900].hf_id,
+ { &fix_hf[900],
{ "CollRespID (904)", "fix.CollRespID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[901].hf_id,
+ { &fix_hf[901],
{ "CollAsgnRespType (905)", "fix.CollAsgnRespType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[902].hf_id,
+ { &fix_hf[902],
{ "CollAsgnRejectReason (906)", "fix.CollAsgnRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[903].hf_id,
+ { &fix_hf[903],
{ "CollAsgnRefID (907)", "fix.CollAsgnRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[904].hf_id,
+ { &fix_hf[904],
{ "CollRptID (908)", "fix.CollRptID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[905].hf_id,
+ { &fix_hf[905],
{ "CollInquiryID (909)", "fix.CollInquiryID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[906].hf_id,
+ { &fix_hf[906],
{ "CollStatus (910)", "fix.CollStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[907].hf_id,
+ { &fix_hf[907],
{ "TotNumReports (911)", "fix.TotNumReports",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[908].hf_id,
+ { &fix_hf[908],
{ "LastRptRequested (912)", "fix.LastRptRequested",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[909].hf_id,
+ { &fix_hf[909],
{ "AgreementDesc (913)", "fix.AgreementDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[910].hf_id,
+ { &fix_hf[910],
{ "AgreementID (914)", "fix.AgreementID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[911].hf_id,
+ { &fix_hf[911],
{ "AgreementDate (915)", "fix.AgreementDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[912].hf_id,
+ { &fix_hf[912],
{ "StartDate (916)", "fix.StartDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[913].hf_id,
+ { &fix_hf[913],
{ "EndDate (917)", "fix.EndDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[914].hf_id,
+ { &fix_hf[914],
{ "AgreementCurrency (918)", "fix.AgreementCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[915].hf_id,
+ { &fix_hf[915],
{ "DeliveryType (919)", "fix.DeliveryType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[916].hf_id,
+ { &fix_hf[916],
{ "EndAccruedInterestAmt (920)", "fix.EndAccruedInterestAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[917].hf_id,
+ { &fix_hf[917],
{ "StartCash (921)", "fix.StartCash",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[918].hf_id,
+ { &fix_hf[918],
{ "EndCash (922)", "fix.EndCash",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[919].hf_id,
+ { &fix_hf[919],
{ "UserRequestID (923)", "fix.UserRequestID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[920].hf_id,
+ { &fix_hf[920],
{ "UserRequestType (924)", "fix.UserRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[921].hf_id,
+ { &fix_hf[921],
{ "NewPassword (925)", "fix.NewPassword",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[922].hf_id,
+ { &fix_hf[922],
{ "UserStatus (926)", "fix.UserStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[923].hf_id,
+ { &fix_hf[923],
{ "UserStatusText (927)", "fix.UserStatusText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[924].hf_id,
+ { &fix_hf[924],
{ "StatusValue (928)", "fix.StatusValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[925].hf_id,
+ { &fix_hf[925],
{ "StatusText (929)", "fix.StatusText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[926].hf_id,
+ { &fix_hf[926],
{ "RefCompID (930)", "fix.RefCompID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[927].hf_id,
+ { &fix_hf[927],
{ "RefSubID (931)", "fix.RefSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[928].hf_id,
+ { &fix_hf[928],
{ "NetworkResponseID (932)", "fix.NetworkResponseID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[929].hf_id,
+ { &fix_hf[929],
{ "NetworkRequestID (933)", "fix.NetworkRequestID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[930].hf_id,
+ { &fix_hf[930],
{ "LastNetworkResponseID (934)", "fix.LastNetworkResponseID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[931].hf_id,
+ { &fix_hf[931],
{ "NetworkRequestType (935)", "fix.NetworkRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[932].hf_id,
+ { &fix_hf[932],
{ "NoCompIDs (936)", "fix.NoCompIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[933].hf_id,
+ { &fix_hf[933],
{ "NetworkStatusResponseType (937)", "fix.NetworkStatusResponseType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[934].hf_id,
+ { &fix_hf[934],
{ "NoCollInquiryQualifier (938)", "fix.NoCollInquiryQualifier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[935].hf_id,
+ { &fix_hf[935],
{ "TrdRptStatus (939)", "fix.TrdRptStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[936].hf_id,
+ { &fix_hf[936],
{ "AffirmStatus (940)", "fix.AffirmStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[937].hf_id,
+ { &fix_hf[937],
{ "UnderlyingStrikeCurrency (941)", "fix.UnderlyingStrikeCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[938].hf_id,
+ { &fix_hf[938],
{ "LegStrikeCurrency (942)", "fix.LegStrikeCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[939].hf_id,
+ { &fix_hf[939],
{ "TimeBracket (943)", "fix.TimeBracket",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[940].hf_id,
+ { &fix_hf[940],
{ "CollAction (944)", "fix.CollAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[941].hf_id,
+ { &fix_hf[941],
{ "CollInquiryStatus (945)", "fix.CollInquiryStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[942].hf_id,
+ { &fix_hf[942],
{ "CollInquiryResult (946)", "fix.CollInquiryResult",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[943].hf_id,
+ { &fix_hf[943],
{ "StrikeCurrency (947)", "fix.StrikeCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[944].hf_id,
+ { &fix_hf[944],
{ "NoNested3PartyIDs (948)", "fix.NoNested3PartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[945].hf_id,
+ { &fix_hf[945],
{ "Nested3PartyID (949)", "fix.Nested3PartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[946].hf_id,
+ { &fix_hf[946],
{ "Nested3PartyIDSource (950)", "fix.Nested3PartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[947].hf_id,
+ { &fix_hf[947],
{ "Nested3PartyRole (951)", "fix.Nested3PartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[948].hf_id,
+ { &fix_hf[948],
{ "NoNested3PartySubIDs (952)", "fix.NoNested3PartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[949].hf_id,
+ { &fix_hf[949],
{ "Nested3PartySubID (953)", "fix.Nested3PartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[950].hf_id,
+ { &fix_hf[950],
{ "Nested3PartySubIDType (954)", "fix.Nested3PartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[951].hf_id,
+ { &fix_hf[951],
{ "LegContractSettlMonth (955)", "fix.LegContractSettlMonth",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[952].hf_id,
+ { &fix_hf[952],
{ "LegInterestAccrualDate (956)", "fix.LegInterestAccrualDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[953].hf_id,
+ { &fix_hf[953],
{ "NoStrategyParameters (957)", "fix.NoStrategyParameters",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[954].hf_id,
+ { &fix_hf[954],
{ "StrategyParameterName (958)", "fix.StrategyParameterName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[955].hf_id,
+ { &fix_hf[955],
{ "StrategyParameterType (959)", "fix.StrategyParameterType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[956].hf_id,
+ { &fix_hf[956],
{ "StrategyParameterValue (960)", "fix.StrategyParameterValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[957].hf_id,
+ { &fix_hf[957],
{ "HostCrossID (961)", "fix.HostCrossID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[958].hf_id,
+ { &fix_hf[958],
{ "SideTimeInForce (962)", "fix.SideTimeInForce",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[959].hf_id,
+ { &fix_hf[959],
{ "MDReportID (963)", "fix.MDReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[960].hf_id,
+ { &fix_hf[960],
{ "SecurityReportID (964)", "fix.SecurityReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[961].hf_id,
+ { &fix_hf[961],
{ "SecurityStatus (965)", "fix.SecurityStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[962].hf_id,
+ { &fix_hf[962],
{ "SettleOnOpenFlag (966)", "fix.SettleOnOpenFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[963].hf_id,
+ { &fix_hf[963],
{ "StrikeMultiplier (967)", "fix.StrikeMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[964].hf_id,
+ { &fix_hf[964],
{ "StrikeValue (968)", "fix.StrikeValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[965].hf_id,
+ { &fix_hf[965],
{ "MinPriceIncrement (969)", "fix.MinPriceIncrement",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[966].hf_id,
+ { &fix_hf[966],
{ "PositionLimit (970)", "fix.PositionLimit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[967].hf_id,
+ { &fix_hf[967],
{ "NTPositionLimit (971)", "fix.NTPositionLimit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[968].hf_id,
+ { &fix_hf[968],
{ "UnderlyingAllocationPercent (972)", "fix.UnderlyingAllocationPercent",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[969].hf_id,
+ { &fix_hf[969],
{ "UnderlyingCashAmount (973)", "fix.UnderlyingCashAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[970].hf_id,
+ { &fix_hf[970],
{ "UnderlyingCashType (974)", "fix.UnderlyingCashType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[971].hf_id,
+ { &fix_hf[971],
{ "UnderlyingSettlementType (975)", "fix.UnderlyingSettlementType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[972].hf_id,
+ { &fix_hf[972],
{ "QuantityDate (976)", "fix.QuantityDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[973].hf_id,
+ { &fix_hf[973],
{ "ContIntRptID (977)", "fix.ContIntRptID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[974].hf_id,
+ { &fix_hf[974],
{ "LateIndicator (978)", "fix.LateIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[975].hf_id,
+ { &fix_hf[975],
{ "InputSource (979)", "fix.InputSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[976].hf_id,
+ { &fix_hf[976],
{ "SecurityUpdateAction (980)", "fix.SecurityUpdateAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[977].hf_id,
+ { &fix_hf[977],
{ "NoExpiration (981)", "fix.NoExpiration",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[978].hf_id,
+ { &fix_hf[978],
{ "ExpirationQtyType (982)", "fix.ExpirationQtyType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[979].hf_id,
+ { &fix_hf[979],
{ "ExpQty (983)", "fix.ExpQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[980].hf_id,
+ { &fix_hf[980],
{ "NoUnderlyingAmounts (984)", "fix.NoUnderlyingAmounts",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[981].hf_id,
+ { &fix_hf[981],
{ "UnderlyingPayAmount (985)", "fix.UnderlyingPayAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[982].hf_id,
+ { &fix_hf[982],
{ "UnderlyingCollectAmount (986)", "fix.UnderlyingCollectAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[983].hf_id,
+ { &fix_hf[983],
{ "UnderlyingSettlementDate (987)", "fix.UnderlyingSettlementDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[984].hf_id,
+ { &fix_hf[984],
{ "UnderlyingSettlementStatus (988)", "fix.UnderlyingSettlementStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[985].hf_id,
+ { &fix_hf[985],
{ "SecondaryIndividualAllocID (989)", "fix.SecondaryIndividualAllocID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[986].hf_id,
+ { &fix_hf[986],
{ "LegReportID (990)", "fix.LegReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[987].hf_id,
+ { &fix_hf[987],
{ "RndPx (991)", "fix.RndPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[988].hf_id,
+ { &fix_hf[988],
{ "IndividualAllocType (992)", "fix.IndividualAllocType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[989].hf_id,
+ { &fix_hf[989],
{ "AllocCustomerCapacity (993)", "fix.AllocCustomerCapacity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[990].hf_id,
+ { &fix_hf[990],
{ "TierCode (994)", "fix.TierCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[991].hf_id,
+ { &fix_hf[991],
{ "UnitOfMeasure (996)", "fix.UnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[992].hf_id,
+ { &fix_hf[992],
{ "TimeUnit (997)", "fix.TimeUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[993].hf_id,
+ { &fix_hf[993],
{ "UnderlyingUnitOfMeasure (998)", "fix.UnderlyingUnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[994].hf_id,
+ { &fix_hf[994],
{ "LegUnitOfMeasure (999)", "fix.LegUnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[995].hf_id,
+ { &fix_hf[995],
{ "UnderlyingTimeUnit (1000)", "fix.UnderlyingTimeUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[996].hf_id,
+ { &fix_hf[996],
{ "LegTimeUnit (1001)", "fix.LegTimeUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[997].hf_id,
+ { &fix_hf[997],
{ "AllocMethod (1002)", "fix.AllocMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[998].hf_id,
+ { &fix_hf[998],
{ "TradeID (1003)", "fix.TradeID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[999].hf_id,
+ { &fix_hf[999],
{ "SideTradeReportID (1005)", "fix.SideTradeReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1000].hf_id,
+ { &fix_hf[1000],
{ "SideFillStationCd (1006)", "fix.SideFillStationCd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1001].hf_id,
+ { &fix_hf[1001],
{ "SideReasonCd (1007)", "fix.SideReasonCd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1002].hf_id,
+ { &fix_hf[1002],
{ "SideTrdSubTyp (1008)", "fix.SideTrdSubTyp",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1003].hf_id,
+ { &fix_hf[1003],
{ "SideLastQty (1009)", "fix.SideLastQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1004].hf_id,
+ { &fix_hf[1004],
{ "MessageEventSource (1011)", "fix.MessageEventSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1005].hf_id,
+ { &fix_hf[1005],
{ "SideTrdRegTimestamp (1012)", "fix.SideTrdRegTimestamp",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1006].hf_id,
+ { &fix_hf[1006],
{ "SideTrdRegTimestampType (1013)", "fix.SideTrdRegTimestampType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1007].hf_id,
+ { &fix_hf[1007],
{ "SideTrdRegTimestampSrc (1014)", "fix.SideTrdRegTimestampSrc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1008].hf_id,
+ { &fix_hf[1008],
{ "AsOfIndicator (1015)", "fix.AsOfIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1009].hf_id,
+ { &fix_hf[1009],
{ "NoSideTrdRegTS (1016)", "fix.NoSideTrdRegTS",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1010].hf_id,
+ { &fix_hf[1010],
{ "LegOptionRatio (1017)", "fix.LegOptionRatio",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1011].hf_id,
+ { &fix_hf[1011],
{ "NoInstrumentParties (1018)", "fix.NoInstrumentParties",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1012].hf_id,
+ { &fix_hf[1012],
{ "InstrumentPartyID (1019)", "fix.InstrumentPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1013].hf_id,
+ { &fix_hf[1013],
{ "TradeVolume (1020)", "fix.TradeVolume",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1014].hf_id,
+ { &fix_hf[1014],
{ "MDBookType (1021)", "fix.MDBookType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1015].hf_id,
+ { &fix_hf[1015],
{ "MDFeedType (1022)", "fix.MDFeedType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1016].hf_id,
+ { &fix_hf[1016],
{ "MDPriceLevel (1023)", "fix.MDPriceLevel",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1017].hf_id,
+ { &fix_hf[1017],
{ "MDOriginType (1024)", "fix.MDOriginType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1018].hf_id,
+ { &fix_hf[1018],
{ "FirstPx (1025)", "fix.FirstPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1019].hf_id,
+ { &fix_hf[1019],
{ "MDEntrySpotRate (1026)", "fix.MDEntrySpotRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1020].hf_id,
+ { &fix_hf[1020],
{ "MDEntryForwardPoints (1027)", "fix.MDEntryForwardPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1021].hf_id,
+ { &fix_hf[1021],
{ "ManualOrderIndicator (1028)", "fix.ManualOrderIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1022].hf_id,
+ { &fix_hf[1022],
{ "CustDirectedOrder (1029)", "fix.CustDirectedOrder",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1023].hf_id,
+ { &fix_hf[1023],
{ "ReceivedDeptID (1030)", "fix.ReceivedDeptID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1024].hf_id,
+ { &fix_hf[1024],
{ "CustOrderHandlingInst (1031)", "fix.CustOrderHandlingInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1025].hf_id,
+ { &fix_hf[1025],
{ "OrderHandlingInstSource (1032)", "fix.OrderHandlingInstSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1026].hf_id,
+ { &fix_hf[1026],
{ "DeskType (1033)", "fix.DeskType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1027].hf_id,
+ { &fix_hf[1027],
{ "DeskTypeSource (1034)", "fix.DeskTypeSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1028].hf_id,
+ { &fix_hf[1028],
{ "DeskOrderHandlingInst (1035)", "fix.DeskOrderHandlingInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1029].hf_id,
+ { &fix_hf[1029],
{ "ExecAckStatus (1036)", "fix.ExecAckStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1030].hf_id,
+ { &fix_hf[1030],
{ "UnderlyingDeliveryAmount (1037)", "fix.UnderlyingDeliveryAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1031].hf_id,
+ { &fix_hf[1031],
{ "UnderlyingCapValue (1038)", "fix.UnderlyingCapValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1032].hf_id,
+ { &fix_hf[1032],
{ "UnderlyingSettlMethod (1039)", "fix.UnderlyingSettlMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1033].hf_id,
+ { &fix_hf[1033],
{ "SecondaryTradeID (1040)", "fix.SecondaryTradeID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1034].hf_id,
+ { &fix_hf[1034],
{ "FirmTradeID (1041)", "fix.FirmTradeID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1035].hf_id,
+ { &fix_hf[1035],
{ "SecondaryFirmTradeID (1042)", "fix.SecondaryFirmTradeID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1036].hf_id,
+ { &fix_hf[1036],
{ "CollApplType (1043)", "fix.CollApplType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1037].hf_id,
+ { &fix_hf[1037],
{ "UnderlyingAdjustedQuantity (1044)", "fix.UnderlyingAdjustedQuantity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1038].hf_id,
+ { &fix_hf[1038],
{ "UnderlyingFXRate (1045)", "fix.UnderlyingFXRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1039].hf_id,
+ { &fix_hf[1039],
{ "UnderlyingFXRateCalc (1046)", "fix.UnderlyingFXRateCalc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1040].hf_id,
+ { &fix_hf[1040],
{ "AllocPositionEffect (1047)", "fix.AllocPositionEffect",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1041].hf_id,
+ { &fix_hf[1041],
{ "DealingCapacity (1048)", "fix.DealingCapacity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1042].hf_id,
+ { &fix_hf[1042],
{ "InstrmtAssignmentMethod (1049)", "fix.InstrmtAssignmentMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1043].hf_id,
+ { &fix_hf[1043],
{ "InstrumentPartyIDSource (1050)", "fix.InstrumentPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1044].hf_id,
+ { &fix_hf[1044],
{ "InstrumentPartyRole (1051)", "fix.InstrumentPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1045].hf_id,
+ { &fix_hf[1045],
{ "NoInstrumentPartySubIDs (1052)", "fix.NoInstrumentPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1046].hf_id,
+ { &fix_hf[1046],
{ "InstrumentPartySubID (1053)", "fix.InstrumentPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1047].hf_id,
+ { &fix_hf[1047],
{ "InstrumentPartySubIDType (1054)", "fix.InstrumentPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1048].hf_id,
+ { &fix_hf[1048],
{ "PositionCurrency (1055)", "fix.PositionCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1049].hf_id,
+ { &fix_hf[1049],
{ "CalculatedCcyLastQty (1056)", "fix.CalculatedCcyLastQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1050].hf_id,
+ { &fix_hf[1050],
{ "AggressorIndicator (1057)", "fix.AggressorIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1051].hf_id,
+ { &fix_hf[1051],
{ "NoUndlyInstrumentParties (1058)", "fix.NoUndlyInstrumentParties",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1052].hf_id,
+ { &fix_hf[1052],
{ "UnderlyingInstrumentPartyID (1059)", "fix.UnderlyingInstrumentPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1053].hf_id,
+ { &fix_hf[1053],
{ "UnderlyingInstrumentPartyIDSource (1060)", "fix.UnderlyingInstrumentPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1054].hf_id,
+ { &fix_hf[1054],
{ "UnderlyingInstrumentPartyRole (1061)", "fix.UnderlyingInstrumentPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1055].hf_id,
+ { &fix_hf[1055],
{ "NoUndlyInstrumentPartySubIDs (1062)", "fix.NoUndlyInstrumentPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1056].hf_id,
+ { &fix_hf[1056],
{ "UnderlyingInstrumentPartySubID (1063)", "fix.UnderlyingInstrumentPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1057].hf_id,
+ { &fix_hf[1057],
{ "UnderlyingInstrumentPartySubIDType (1064)", "fix.UnderlyingInstrumentPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1058].hf_id,
+ { &fix_hf[1058],
{ "BidSwapPoints (1065)", "fix.BidSwapPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1059].hf_id,
+ { &fix_hf[1059],
{ "OfferSwapPoints (1066)", "fix.OfferSwapPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1060].hf_id,
+ { &fix_hf[1060],
{ "LegBidForwardPoints (1067)", "fix.LegBidForwardPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1061].hf_id,
+ { &fix_hf[1061],
{ "LegOfferForwardPoints (1068)", "fix.LegOfferForwardPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1062].hf_id,
+ { &fix_hf[1062],
{ "SwapPoints (1069)", "fix.SwapPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1063].hf_id,
+ { &fix_hf[1063],
{ "MDQuoteType (1070)", "fix.MDQuoteType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1064].hf_id,
+ { &fix_hf[1064],
{ "LastSwapPoints (1071)", "fix.LastSwapPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1065].hf_id,
+ { &fix_hf[1065],
{ "SideGrossTradeAmt (1072)", "fix.SideGrossTradeAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1066].hf_id,
+ { &fix_hf[1066],
{ "LegLastForwardPoints (1073)", "fix.LegLastForwardPoints",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1067].hf_id,
+ { &fix_hf[1067],
{ "LegCalculatedCcyLastQty (1074)", "fix.LegCalculatedCcyLastQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1068].hf_id,
+ { &fix_hf[1068],
{ "LegGrossTradeAmt (1075)", "fix.LegGrossTradeAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1069].hf_id,
+ { &fix_hf[1069],
{ "MaturityTime (1079)", "fix.MaturityTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1070].hf_id,
+ { &fix_hf[1070],
{ "RefOrderID (1080)", "fix.RefOrderID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1071].hf_id,
+ { &fix_hf[1071],
{ "RefOrderIDSource (1081)", "fix.RefOrderIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1072].hf_id,
+ { &fix_hf[1072],
{ "SecondaryDisplayQty (1082)", "fix.SecondaryDisplayQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1073].hf_id,
+ { &fix_hf[1073],
{ "DisplayWhen (1083)", "fix.DisplayWhen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1074].hf_id,
+ { &fix_hf[1074],
{ "DisplayMethod (1084)", "fix.DisplayMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1075].hf_id,
+ { &fix_hf[1075],
{ "DisplayLowQty (1085)", "fix.DisplayLowQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1076].hf_id,
+ { &fix_hf[1076],
{ "DisplayHighQty (1086)", "fix.DisplayHighQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1077].hf_id,
+ { &fix_hf[1077],
{ "DisplayMinIncr (1087)", "fix.DisplayMinIncr",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1078].hf_id,
+ { &fix_hf[1078],
{ "RefreshQty (1088)", "fix.RefreshQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1079].hf_id,
+ { &fix_hf[1079],
{ "MatchIncrement (1089)", "fix.MatchIncrement",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1080].hf_id,
+ { &fix_hf[1080],
{ "MaxPriceLevels (1090)", "fix.MaxPriceLevels",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1081].hf_id,
+ { &fix_hf[1081],
{ "PreTradeAnonymity (1091)", "fix.PreTradeAnonymity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1082].hf_id,
+ { &fix_hf[1082],
{ "PriceProtectionScope (1092)", "fix.PriceProtectionScope",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1083].hf_id,
+ { &fix_hf[1083],
{ "LotType (1093)", "fix.LotType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1084].hf_id,
+ { &fix_hf[1084],
{ "PegPriceType (1094)", "fix.PegPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1085].hf_id,
+ { &fix_hf[1085],
{ "PeggedRefPrice (1095)", "fix.PeggedRefPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1086].hf_id,
+ { &fix_hf[1086],
{ "PegSecurityIDSource (1096)", "fix.PegSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1087].hf_id,
+ { &fix_hf[1087],
{ "PegSecurityID (1097)", "fix.PegSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1088].hf_id,
+ { &fix_hf[1088],
{ "PegSymbol (1098)", "fix.PegSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1089].hf_id,
+ { &fix_hf[1089],
{ "PegSecurityDesc (1099)", "fix.PegSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1090].hf_id,
+ { &fix_hf[1090],
{ "TriggerType (1100)", "fix.TriggerType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1091].hf_id,
+ { &fix_hf[1091],
{ "TriggerAction (1101)", "fix.TriggerAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1092].hf_id,
+ { &fix_hf[1092],
{ "TriggerPrice (1102)", "fix.TriggerPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1093].hf_id,
+ { &fix_hf[1093],
{ "TriggerSymbol (1103)", "fix.TriggerSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1094].hf_id,
+ { &fix_hf[1094],
{ "TriggerSecurityID (1104)", "fix.TriggerSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1095].hf_id,
+ { &fix_hf[1095],
{ "TriggerSecurityIDSource (1105)", "fix.TriggerSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1096].hf_id,
+ { &fix_hf[1096],
{ "TriggerSecurityDesc (1106)", "fix.TriggerSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1097].hf_id,
+ { &fix_hf[1097],
{ "TriggerPriceType (1107)", "fix.TriggerPriceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1098].hf_id,
+ { &fix_hf[1098],
{ "TriggerPriceTypeScope (1108)", "fix.TriggerPriceTypeScope",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1099].hf_id,
+ { &fix_hf[1099],
{ "TriggerPriceDirection (1109)", "fix.TriggerPriceDirection",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1100].hf_id,
+ { &fix_hf[1100],
{ "TriggerNewPrice (1110)", "fix.TriggerNewPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1101].hf_id,
+ { &fix_hf[1101],
{ "TriggerOrderType (1111)", "fix.TriggerOrderType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1102].hf_id,
+ { &fix_hf[1102],
{ "TriggerNewQty (1112)", "fix.TriggerNewQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1103].hf_id,
+ { &fix_hf[1103],
{ "TriggerTradingSessionID (1113)", "fix.TriggerTradingSessionID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1104].hf_id,
+ { &fix_hf[1104],
{ "TriggerTradingSessionSubID (1114)", "fix.TriggerTradingSessionSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1105].hf_id,
+ { &fix_hf[1105],
{ "OrderCategory (1115)", "fix.OrderCategory",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1106].hf_id,
+ { &fix_hf[1106],
{ "NoRootPartyIDs (1116)", "fix.NoRootPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1107].hf_id,
+ { &fix_hf[1107],
{ "RootPartyID (1117)", "fix.RootPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1108].hf_id,
+ { &fix_hf[1108],
{ "RootPartyIDSource (1118)", "fix.RootPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1109].hf_id,
+ { &fix_hf[1109],
{ "RootPartyRole (1119)", "fix.RootPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1110].hf_id,
+ { &fix_hf[1110],
{ "NoRootPartySubIDs (1120)", "fix.NoRootPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1111].hf_id,
+ { &fix_hf[1111],
{ "RootPartySubID (1121)", "fix.RootPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1112].hf_id,
+ { &fix_hf[1112],
{ "RootPartySubIDType (1122)", "fix.RootPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1113].hf_id,
+ { &fix_hf[1113],
{ "TradeHandlingInstr (1123)", "fix.TradeHandlingInstr",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1114].hf_id,
+ { &fix_hf[1114],
{ "OrigTradeHandlingInstr (1124)", "fix.OrigTradeHandlingInstr",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1115].hf_id,
+ { &fix_hf[1115],
{ "OrigTradeDate (1125)", "fix.OrigTradeDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1116].hf_id,
+ { &fix_hf[1116],
{ "OrigTradeID (1126)", "fix.OrigTradeID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1117].hf_id,
+ { &fix_hf[1117],
{ "OrigSecondaryTradeID (1127)", "fix.OrigSecondaryTradeID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1118].hf_id,
+ { &fix_hf[1118],
{ "ApplVerID (1128)", "fix.ApplVerID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1119].hf_id,
+ { &fix_hf[1119],
{ "CstmApplVerID (1129)", "fix.CstmApplVerID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1120].hf_id,
+ { &fix_hf[1120],
{ "RefApplVerID (1130)", "fix.RefApplVerID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1121].hf_id,
+ { &fix_hf[1121],
{ "RefCstmApplVerID (1131)", "fix.RefCstmApplVerID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1122].hf_id,
+ { &fix_hf[1122],
{ "TZTransactTime (1132)", "fix.TZTransactTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1123].hf_id,
+ { &fix_hf[1123],
{ "ExDestinationIDSource (1133)", "fix.ExDestinationIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1124].hf_id,
+ { &fix_hf[1124],
{ "ReportedPxDiff (1134)", "fix.ReportedPxDiff",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1125].hf_id,
+ { &fix_hf[1125],
{ "RptSys (1135)", "fix.RptSys",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1126].hf_id,
+ { &fix_hf[1126],
{ "AllocClearingFeeIndicator (1136)", "fix.AllocClearingFeeIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1127].hf_id,
+ { &fix_hf[1127],
{ "DefaultApplVerID (1137)", "fix.DefaultApplVerID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1128].hf_id,
+ { &fix_hf[1128],
{ "DisplayQty (1138)", "fix.DisplayQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1129].hf_id,
+ { &fix_hf[1129],
{ "ExchangeSpecialInstructions (1139)", "fix.ExchangeSpecialInstructions",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1130].hf_id,
+ { &fix_hf[1130],
{ "MaxTradeVol (1140)", "fix.MaxTradeVol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1131].hf_id,
+ { &fix_hf[1131],
{ "NoMDFeedTypes (1141)", "fix.NoMDFeedTypes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1132].hf_id,
+ { &fix_hf[1132],
{ "MatchAlgorithm (1142)", "fix.MatchAlgorithm",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1133].hf_id,
+ { &fix_hf[1133],
{ "MaxPriceVariation (1143)", "fix.MaxPriceVariation",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1134].hf_id,
+ { &fix_hf[1134],
{ "ImpliedMarketIndicator (1144)", "fix.ImpliedMarketIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1135].hf_id,
+ { &fix_hf[1135],
{ "EventTime (1145)", "fix.EventTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1136].hf_id,
+ { &fix_hf[1136],
{ "MinPriceIncrementAmount (1146)", "fix.MinPriceIncrementAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1137].hf_id,
+ { &fix_hf[1137],
{ "UnitOfMeasureQty (1147)", "fix.UnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1138].hf_id,
+ { &fix_hf[1138],
{ "LowLimitPrice (1148)", "fix.LowLimitPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1139].hf_id,
+ { &fix_hf[1139],
{ "HighLimitPrice (1149)", "fix.HighLimitPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1140].hf_id,
+ { &fix_hf[1140],
{ "TradingReferencePrice (1150)", "fix.TradingReferencePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1141].hf_id,
+ { &fix_hf[1141],
{ "SecurityGroup (1151)", "fix.SecurityGroup",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1142].hf_id,
+ { &fix_hf[1142],
{ "LegNumber (1152)", "fix.LegNumber",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1143].hf_id,
+ { &fix_hf[1143],
{ "SettlementCycleNo (1153)", "fix.SettlementCycleNo",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1144].hf_id,
+ { &fix_hf[1144],
{ "SideCurrency (1154)", "fix.SideCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1145].hf_id,
+ { &fix_hf[1145],
{ "SideSettlCurrency (1155)", "fix.SideSettlCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1146].hf_id,
+ { &fix_hf[1146],
{ "ApplExtID (1156)", "fix.ApplExtID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1147].hf_id,
+ { &fix_hf[1147],
{ "CcyAmt (1157)", "fix.CcyAmt",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1148].hf_id,
+ { &fix_hf[1148],
{ "NoSettlDetails (1158)", "fix.NoSettlDetails",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1149].hf_id,
+ { &fix_hf[1149],
{ "SettlObligMode (1159)", "fix.SettlObligMode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1150].hf_id,
+ { &fix_hf[1150],
{ "SettlObligMsgID (1160)", "fix.SettlObligMsgID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1151].hf_id,
+ { &fix_hf[1151],
{ "SettlObligID (1161)", "fix.SettlObligID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1152].hf_id,
+ { &fix_hf[1152],
{ "SettlObligTransType (1162)", "fix.SettlObligTransType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1153].hf_id,
+ { &fix_hf[1153],
{ "SettlObligRefID (1163)", "fix.SettlObligRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1154].hf_id,
+ { &fix_hf[1154],
{ "SettlObligSource (1164)", "fix.SettlObligSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1155].hf_id,
+ { &fix_hf[1155],
{ "NoSettlOblig (1165)", "fix.NoSettlOblig",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1156].hf_id,
+ { &fix_hf[1156],
{ "QuoteMsgID (1166)", "fix.QuoteMsgID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1157].hf_id,
+ { &fix_hf[1157],
{ "QuoteEntryStatus (1167)", "fix.QuoteEntryStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1158].hf_id,
+ { &fix_hf[1158],
{ "TotNoCxldQuotes (1168)", "fix.TotNoCxldQuotes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1159].hf_id,
+ { &fix_hf[1159],
{ "TotNoAccQuotes (1169)", "fix.TotNoAccQuotes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1160].hf_id,
+ { &fix_hf[1160],
{ "TotNoRejQuotes (1170)", "fix.TotNoRejQuotes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1161].hf_id,
+ { &fix_hf[1161],
{ "PrivateQuote (1171)", "fix.PrivateQuote",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1162].hf_id,
+ { &fix_hf[1162],
{ "RespondentType (1172)", "fix.RespondentType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1163].hf_id,
+ { &fix_hf[1163],
{ "MDSubBookType (1173)", "fix.MDSubBookType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1164].hf_id,
+ { &fix_hf[1164],
{ "SecurityTradingEvent (1174)", "fix.SecurityTradingEvent",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1165].hf_id,
+ { &fix_hf[1165],
{ "NoStatsIndicators (1175)", "fix.NoStatsIndicators",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1166].hf_id,
+ { &fix_hf[1166],
{ "StatsType (1176)", "fix.StatsType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1167].hf_id,
+ { &fix_hf[1167],
{ "NoOfSecSizes (1177)", "fix.NoOfSecSizes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1168].hf_id,
+ { &fix_hf[1168],
{ "MDSecSizeType (1178)", "fix.MDSecSizeType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1169].hf_id,
+ { &fix_hf[1169],
{ "MDSecSize (1179)", "fix.MDSecSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1170].hf_id,
+ { &fix_hf[1170],
{ "ApplID (1180)", "fix.ApplID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1171].hf_id,
+ { &fix_hf[1171],
{ "ApplSeqNum (1181)", "fix.ApplSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1172].hf_id,
+ { &fix_hf[1172],
{ "ApplBegSeqNum (1182)", "fix.ApplBegSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1173].hf_id,
+ { &fix_hf[1173],
{ "ApplEndSeqNum (1183)", "fix.ApplEndSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1174].hf_id,
+ { &fix_hf[1174],
{ "SecurityXMLLen (1184)", "fix.SecurityXMLLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1175].hf_id,
+ { &fix_hf[1175],
{ "SecurityXML (1185)", "fix.SecurityXML",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1176].hf_id,
+ { &fix_hf[1176],
{ "SecurityXMLSchema (1186)", "fix.SecurityXMLSchema",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1177].hf_id,
+ { &fix_hf[1177],
{ "RefreshIndicator (1187)", "fix.RefreshIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1178].hf_id,
+ { &fix_hf[1178],
{ "Volatility (1188)", "fix.Volatility",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1179].hf_id,
+ { &fix_hf[1179],
{ "TimeToExpiration (1189)", "fix.TimeToExpiration",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1180].hf_id,
+ { &fix_hf[1180],
{ "RiskFreeRate (1190)", "fix.RiskFreeRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1181].hf_id,
+ { &fix_hf[1181],
{ "PriceUnitOfMeasure (1191)", "fix.PriceUnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1182].hf_id,
+ { &fix_hf[1182],
{ "PriceUnitOfMeasureQty (1192)", "fix.PriceUnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1183].hf_id,
+ { &fix_hf[1183],
{ "SettlMethod (1193)", "fix.SettlMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1184].hf_id,
+ { &fix_hf[1184],
{ "ExerciseStyle (1194)", "fix.ExerciseStyle",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1185].hf_id,
+ { &fix_hf[1185],
{ "OptPayoutAmount (1195)", "fix.OptPayoutAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1186].hf_id,
+ { &fix_hf[1186],
{ "PriceQuoteMethod (1196)", "fix.PriceQuoteMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1187].hf_id,
+ { &fix_hf[1187],
{ "ValuationMethod (1197)", "fix.ValuationMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1188].hf_id,
+ { &fix_hf[1188],
{ "ListMethod (1198)", "fix.ListMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1189].hf_id,
+ { &fix_hf[1189],
{ "CapPrice (1199)", "fix.CapPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1190].hf_id,
+ { &fix_hf[1190],
{ "FloorPrice (1200)", "fix.FloorPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1191].hf_id,
+ { &fix_hf[1191],
{ "NoStrikeRules (1201)", "fix.NoStrikeRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1192].hf_id,
+ { &fix_hf[1192],
{ "StartStrikePxRange (1202)", "fix.StartStrikePxRange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1193].hf_id,
+ { &fix_hf[1193],
{ "EndStrikePxRange (1203)", "fix.EndStrikePxRange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1194].hf_id,
+ { &fix_hf[1194],
{ "StrikeIncrement (1204)", "fix.StrikeIncrement",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1195].hf_id,
+ { &fix_hf[1195],
{ "NoTickRules (1205)", "fix.NoTickRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1196].hf_id,
+ { &fix_hf[1196],
{ "StartTickPriceRange (1206)", "fix.StartTickPriceRange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1197].hf_id,
+ { &fix_hf[1197],
{ "EndTickPriceRange (1207)", "fix.EndTickPriceRange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1198].hf_id,
+ { &fix_hf[1198],
{ "TickIncrement (1208)", "fix.TickIncrement",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1199].hf_id,
+ { &fix_hf[1199],
{ "TickRuleType (1209)", "fix.TickRuleType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1200].hf_id,
+ { &fix_hf[1200],
{ "NestedInstrAttribType (1210)", "fix.NestedInstrAttribType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1201].hf_id,
+ { &fix_hf[1201],
{ "NestedInstrAttribValue (1211)", "fix.NestedInstrAttribValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1202].hf_id,
+ { &fix_hf[1202],
{ "LegMaturityTime (1212)", "fix.LegMaturityTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1203].hf_id,
+ { &fix_hf[1203],
{ "UnderlyingMaturityTime (1213)", "fix.UnderlyingMaturityTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1204].hf_id,
+ { &fix_hf[1204],
{ "DerivativeSymbol (1214)", "fix.DerivativeSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1205].hf_id,
+ { &fix_hf[1205],
{ "DerivativeSymbolSfx (1215)", "fix.DerivativeSymbolSfx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1206].hf_id,
+ { &fix_hf[1206],
{ "DerivativeSecurityID (1216)", "fix.DerivativeSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1207].hf_id,
+ { &fix_hf[1207],
{ "DerivativeSecurityIDSource (1217)", "fix.DerivativeSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1208].hf_id,
+ { &fix_hf[1208],
{ "NoDerivativeSecurityAltID (1218)", "fix.NoDerivativeSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1209].hf_id,
+ { &fix_hf[1209],
{ "DerivativeSecurityAltID (1219)", "fix.DerivativeSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1210].hf_id,
+ { &fix_hf[1210],
{ "DerivativeSecurityAltIDSource (1220)", "fix.DerivativeSecurityAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1211].hf_id,
+ { &fix_hf[1211],
{ "SecondaryLowLimitPrice (1221)", "fix.SecondaryLowLimitPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1212].hf_id,
+ { &fix_hf[1212],
{ "MaturityRuleID (1222)", "fix.MaturityRuleID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1213].hf_id,
+ { &fix_hf[1213],
{ "StrikeRuleID (1223)", "fix.StrikeRuleID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1214].hf_id,
+ { &fix_hf[1214],
{ "LegUnitOfMeasureQty (1224)", "fix.LegUnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1215].hf_id,
+ { &fix_hf[1215],
{ "DerivativeOptPayAmount (1225)", "fix.DerivativeOptPayAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1216].hf_id,
+ { &fix_hf[1216],
{ "EndMaturityMonthYear (1226)", "fix.EndMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1217].hf_id,
+ { &fix_hf[1217],
{ "ProductComplex (1227)", "fix.ProductComplex",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1218].hf_id,
+ { &fix_hf[1218],
{ "DerivativeProductComplex (1228)", "fix.DerivativeProductComplex",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1219].hf_id,
+ { &fix_hf[1219],
{ "MaturityMonthYearIncrement (1229)", "fix.MaturityMonthYearIncrement",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1220].hf_id,
+ { &fix_hf[1220],
{ "SecondaryHighLimitPrice (1230)", "fix.SecondaryHighLimitPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1221].hf_id,
+ { &fix_hf[1221],
{ "MinLotSize (1231)", "fix.MinLotSize",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1222].hf_id,
+ { &fix_hf[1222],
{ "NoExecInstRules (1232)", "fix.NoExecInstRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1223].hf_id,
+ { &fix_hf[1223],
{ "NoLotTypeRules (1234)", "fix.NoLotTypeRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1224].hf_id,
+ { &fix_hf[1224],
{ "NoMatchRules (1235)", "fix.NoMatchRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1225].hf_id,
+ { &fix_hf[1225],
{ "NoMaturityRules (1236)", "fix.NoMaturityRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1226].hf_id,
+ { &fix_hf[1226],
{ "NoOrdTypeRules (1237)", "fix.NoOrdTypeRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1227].hf_id,
+ { &fix_hf[1227],
{ "NoTimeInForceRules (1239)", "fix.NoTimeInForceRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1228].hf_id,
+ { &fix_hf[1228],
{ "SecondaryTradingReferencePrice (1240)", "fix.SecondaryTradingReferencePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1229].hf_id,
+ { &fix_hf[1229],
{ "StartMaturityMonthYear (1241)", "fix.StartMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1230].hf_id,
+ { &fix_hf[1230],
{ "FlexProductEligibilityIndicator (1242)", "fix.FlexProductEligibilityIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1231].hf_id,
+ { &fix_hf[1231],
{ "DerivFlexProductEligibilityIndicator (1243)", "fix.DerivFlexProductEligibilityIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1232].hf_id,
+ { &fix_hf[1232],
{ "FlexibleIndicator (1244)", "fix.FlexibleIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1233].hf_id,
+ { &fix_hf[1233],
{ "TradingCurrency (1245)", "fix.TradingCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1234].hf_id,
+ { &fix_hf[1234],
{ "DerivativeProduct (1246)", "fix.DerivativeProduct",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1235].hf_id,
+ { &fix_hf[1235],
{ "DerivativeSecurityGroup (1247)", "fix.DerivativeSecurityGroup",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1236].hf_id,
+ { &fix_hf[1236],
{ "DerivativeCFICode (1248)", "fix.DerivativeCFICode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1237].hf_id,
+ { &fix_hf[1237],
{ "DerivativeSecurityType (1249)", "fix.DerivativeSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1238].hf_id,
+ { &fix_hf[1238],
{ "DerivativeSecuritySubType (1250)", "fix.DerivativeSecuritySubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1239].hf_id,
+ { &fix_hf[1239],
{ "DerivativeMaturityMonthYear (1251)", "fix.DerivativeMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1240].hf_id,
+ { &fix_hf[1240],
{ "DerivativeMaturityDate (1252)", "fix.DerivativeMaturityDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1241].hf_id,
+ { &fix_hf[1241],
{ "DerivativeMaturityTime (1253)", "fix.DerivativeMaturityTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1242].hf_id,
+ { &fix_hf[1242],
{ "DerivativeSettleOnOpenFlag (1254)", "fix.DerivativeSettleOnOpenFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1243].hf_id,
+ { &fix_hf[1243],
{ "DerivativeInstrmtAssignmentMethod (1255)", "fix.DerivativeInstrmtAssignmentMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1244].hf_id,
+ { &fix_hf[1244],
{ "DerivativeSecurityStatus (1256)", "fix.DerivativeSecurityStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1245].hf_id,
+ { &fix_hf[1245],
{ "DerivativeInstrRegistry (1257)", "fix.DerivativeInstrRegistry",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1246].hf_id,
+ { &fix_hf[1246],
{ "DerivativeCountryOfIssue (1258)", "fix.DerivativeCountryOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1247].hf_id,
+ { &fix_hf[1247],
{ "DerivativeStateOrProvinceOfIssue (1259)", "fix.DerivativeStateOrProvinceOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1248].hf_id,
+ { &fix_hf[1248],
{ "DerivativeLocaleOfIssue (1260)", "fix.DerivativeLocaleOfIssue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1249].hf_id,
+ { &fix_hf[1249],
{ "DerivativeStrikePrice (1261)", "fix.DerivativeStrikePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1250].hf_id,
+ { &fix_hf[1250],
{ "DerivativeStrikeCurrency (1262)", "fix.DerivativeStrikeCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1251].hf_id,
+ { &fix_hf[1251],
{ "DerivativeStrikeMultiplier (1263)", "fix.DerivativeStrikeMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1252].hf_id,
+ { &fix_hf[1252],
{ "DerivativeStrikeValue (1264)", "fix.DerivativeStrikeValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1253].hf_id,
+ { &fix_hf[1253],
{ "DerivativeOptAttribute (1265)", "fix.DerivativeOptAttribute",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1254].hf_id,
+ { &fix_hf[1254],
{ "DerivativeContractMultiplier (1266)", "fix.DerivativeContractMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1255].hf_id,
+ { &fix_hf[1255],
{ "DerivativeMinPriceIncrement (1267)", "fix.DerivativeMinPriceIncrement",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1256].hf_id,
+ { &fix_hf[1256],
{ "DerivativeMinPriceIncrementAmount (1268)", "fix.DerivativeMinPriceIncrementAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1257].hf_id,
+ { &fix_hf[1257],
{ "DerivativeUnitOfMeasure (1269)", "fix.DerivativeUnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1258].hf_id,
+ { &fix_hf[1258],
{ "DerivativeUnitOfMeasureQty (1270)", "fix.DerivativeUnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1259].hf_id,
+ { &fix_hf[1259],
{ "DerivativeTimeUnit (1271)", "fix.DerivativeTimeUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1260].hf_id,
+ { &fix_hf[1260],
{ "DerivativeSecurityExchange (1272)", "fix.DerivativeSecurityExchange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1261].hf_id,
+ { &fix_hf[1261],
{ "DerivativePositionLimit (1273)", "fix.DerivativePositionLimit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1262].hf_id,
+ { &fix_hf[1262],
{ "DerivativeNTPositionLimit (1274)", "fix.DerivativeNTPositionLimit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1263].hf_id,
+ { &fix_hf[1263],
{ "DerivativeIssuer (1275)", "fix.DerivativeIssuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1264].hf_id,
+ { &fix_hf[1264],
{ "DerivativeIssueDate (1276)", "fix.DerivativeIssueDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1265].hf_id,
+ { &fix_hf[1265],
{ "DerivativeEncodedIssuerLen (1277)", "fix.DerivativeEncodedIssuerLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1266].hf_id,
+ { &fix_hf[1266],
{ "DerivativeEncodedIssuer (1278)", "fix.DerivativeEncodedIssuer",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1267].hf_id,
+ { &fix_hf[1267],
{ "DerivativeSecurityDesc (1279)", "fix.DerivativeSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1268].hf_id,
+ { &fix_hf[1268],
{ "DerivativeEncodedSecurityDescLen (1280)", "fix.DerivativeEncodedSecurityDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1269].hf_id,
+ { &fix_hf[1269],
{ "DerivativeEncodedSecurityDesc (1281)", "fix.DerivativeEncodedSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1270].hf_id,
+ { &fix_hf[1270],
{ "DerivativeSecurityXMLLen (1282)", "fix.DerivativeSecurityXMLLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1271].hf_id,
+ { &fix_hf[1271],
{ "DerivativeSecurityXML (1283)", "fix.DerivativeSecurityXML",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1272].hf_id,
+ { &fix_hf[1272],
{ "DerivativeSecurityXMLSchema (1284)", "fix.DerivativeSecurityXMLSchema",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1273].hf_id,
+ { &fix_hf[1273],
{ "DerivativeContractSettlMonth (1285)", "fix.DerivativeContractSettlMonth",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1274].hf_id,
+ { &fix_hf[1274],
{ "NoDerivativeEvents (1286)", "fix.NoDerivativeEvents",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1275].hf_id,
+ { &fix_hf[1275],
{ "DerivativeEventType (1287)", "fix.DerivativeEventType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1276].hf_id,
+ { &fix_hf[1276],
{ "DerivativeEventDate (1288)", "fix.DerivativeEventDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1277].hf_id,
+ { &fix_hf[1277],
{ "DerivativeEventTime (1289)", "fix.DerivativeEventTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1278].hf_id,
+ { &fix_hf[1278],
{ "DerivativeEventPx (1290)", "fix.DerivativeEventPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1279].hf_id,
+ { &fix_hf[1279],
{ "DerivativeEventText (1291)", "fix.DerivativeEventText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1280].hf_id,
+ { &fix_hf[1280],
{ "NoDerivativeInstrumentParties (1292)", "fix.NoDerivativeInstrumentParties",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1281].hf_id,
+ { &fix_hf[1281],
{ "DerivativeInstrumentPartyID (1293)", "fix.DerivativeInstrumentPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1282].hf_id,
+ { &fix_hf[1282],
{ "DerivativeInstrumentPartyIDSource (1294)", "fix.DerivativeInstrumentPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1283].hf_id,
+ { &fix_hf[1283],
{ "DerivativeInstrumentPartyRole (1295)", "fix.DerivativeInstrumentPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1284].hf_id,
+ { &fix_hf[1284],
{ "NoDerivativeInstrumentPartySubIDs (1296)", "fix.NoDerivativeInstrumentPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1285].hf_id,
+ { &fix_hf[1285],
{ "DerivativeInstrumentPartySubID (1297)", "fix.DerivativeInstrumentPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1286].hf_id,
+ { &fix_hf[1286],
{ "DerivativeInstrumentPartySubIDType (1298)", "fix.DerivativeInstrumentPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1287].hf_id,
+ { &fix_hf[1287],
{ "DerivativeExerciseStyle (1299)", "fix.DerivativeExerciseStyle",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1288].hf_id,
+ { &fix_hf[1288],
{ "MarketSegmentID (1300)", "fix.MarketSegmentID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1289].hf_id,
+ { &fix_hf[1289],
{ "MarketID (1301)", "fix.MarketID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1290].hf_id,
+ { &fix_hf[1290],
{ "MaturityMonthYearIncrementUnits (1302)", "fix.MaturityMonthYearIncrementUnits",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1291].hf_id,
+ { &fix_hf[1291],
{ "MaturityMonthYearFormat (1303)", "fix.MaturityMonthYearFormat",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1292].hf_id,
+ { &fix_hf[1292],
{ "StrikeExerciseStyle (1304)", "fix.StrikeExerciseStyle",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1293].hf_id,
+ { &fix_hf[1293],
{ "SecondaryPriceLimitType (1305)", "fix.SecondaryPriceLimitType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1294].hf_id,
+ { &fix_hf[1294],
{ "PriceLimitType (1306)", "fix.PriceLimitType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1295].hf_id,
+ { &fix_hf[1295],
{ "DerivativeSecurityListRequestType (1307)", "fix.DerivativeSecurityListRequestType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1296].hf_id,
+ { &fix_hf[1296],
{ "ExecInstValue (1308)", "fix.ExecInstValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1297].hf_id,
+ { &fix_hf[1297],
{ "NoTradingSessionRules (1309)", "fix.NoTradingSessionRules",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1298].hf_id,
+ { &fix_hf[1298],
{ "NoMarketSegments (1310)", "fix.NoMarketSegments",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1299].hf_id,
+ { &fix_hf[1299],
{ "NoDerivativeInstrAttrib (1311)", "fix.NoDerivativeInstrAttrib",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1300].hf_id,
+ { &fix_hf[1300],
{ "NoNestedInstrAttrib (1312)", "fix.NoNestedInstrAttrib",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1301].hf_id,
+ { &fix_hf[1301],
{ "DerivativeInstrAttribType (1313)", "fix.DerivativeInstrAttribType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1302].hf_id,
+ { &fix_hf[1302],
{ "DerivativeInstrAttribValue (1314)", "fix.DerivativeInstrAttribValue",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1303].hf_id,
+ { &fix_hf[1303],
{ "DerivativePriceUnitOfMeasure (1315)", "fix.DerivativePriceUnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1304].hf_id,
+ { &fix_hf[1304],
{ "DerivativePriceUnitOfMeasureQty (1316)", "fix.DerivativePriceUnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1305].hf_id,
+ { &fix_hf[1305],
{ "DerivativeSettlMethod (1317)", "fix.DerivativeSettlMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1306].hf_id,
+ { &fix_hf[1306],
{ "DerivativePriceQuoteMethod (1318)", "fix.DerivativePriceQuoteMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1307].hf_id,
+ { &fix_hf[1307],
{ "DerivativeValuationMethod (1319)", "fix.DerivativeValuationMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1308].hf_id,
+ { &fix_hf[1308],
{ "DerivativeListMethod (1320)", "fix.DerivativeListMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1309].hf_id,
+ { &fix_hf[1309],
{ "DerivativeCapPrice (1321)", "fix.DerivativeCapPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1310].hf_id,
+ { &fix_hf[1310],
{ "DerivativeFloorPrice (1322)", "fix.DerivativeFloorPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1311].hf_id,
+ { &fix_hf[1311],
{ "DerivativePutOrCall (1323)", "fix.DerivativePutOrCall",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1312].hf_id,
+ { &fix_hf[1312],
{ "ListUpdateAction (1324)", "fix.ListUpdateAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1313].hf_id,
+ { &fix_hf[1313],
{ "ParentMktSegmID (1325)", "fix.ParentMktSegmID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1314].hf_id,
+ { &fix_hf[1314],
{ "TradingSessionDesc (1326)", "fix.TradingSessionDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1315].hf_id,
+ { &fix_hf[1315],
{ "TradSesUpdateAction (1327)", "fix.TradSesUpdateAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1316].hf_id,
+ { &fix_hf[1316],
{ "RejectText (1328)", "fix.RejectText",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1317].hf_id,
+ { &fix_hf[1317],
{ "FeeMultiplier (1329)", "fix.FeeMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1318].hf_id,
+ { &fix_hf[1318],
{ "UnderlyingLegSymbol (1330)", "fix.UnderlyingLegSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1319].hf_id,
+ { &fix_hf[1319],
{ "UnderlyingLegSymbolSfx (1331)", "fix.UnderlyingLegSymbolSfx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1320].hf_id,
+ { &fix_hf[1320],
{ "UnderlyingLegSecurityID (1332)", "fix.UnderlyingLegSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1321].hf_id,
+ { &fix_hf[1321],
{ "UnderlyingLegSecurityIDSource (1333)", "fix.UnderlyingLegSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1322].hf_id,
+ { &fix_hf[1322],
{ "NoUnderlyingLegSecurityAltID (1334)", "fix.NoUnderlyingLegSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1323].hf_id,
+ { &fix_hf[1323],
{ "UnderlyingLegSecurityAltID (1335)", "fix.UnderlyingLegSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1324].hf_id,
+ { &fix_hf[1324],
{ "UnderlyingLegSecurityAltIDSource (1336)", "fix.UnderlyingLegSecurityAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1325].hf_id,
+ { &fix_hf[1325],
{ "UnderlyingLegSecurityType (1337)", "fix.UnderlyingLegSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1326].hf_id,
+ { &fix_hf[1326],
{ "UnderlyingLegSecuritySubType (1338)", "fix.UnderlyingLegSecuritySubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1327].hf_id,
+ { &fix_hf[1327],
{ "UnderlyingLegMaturityMonthYear (1339)", "fix.UnderlyingLegMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1328].hf_id,
+ { &fix_hf[1328],
{ "UnderlyingLegStrikePrice (1340)", "fix.UnderlyingLegStrikePrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1329].hf_id,
+ { &fix_hf[1329],
{ "UnderlyingLegSecurityExchange (1341)", "fix.UnderlyingLegSecurityExchange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1330].hf_id,
+ { &fix_hf[1330],
{ "NoOfLegUnderlyings (1342)", "fix.NoOfLegUnderlyings",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1331].hf_id,
+ { &fix_hf[1331],
{ "UnderlyingLegPutOrCall (1343)", "fix.UnderlyingLegPutOrCall",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1332].hf_id,
+ { &fix_hf[1332],
{ "UnderlyingLegCFICode (1344)", "fix.UnderlyingLegCFICode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1333].hf_id,
+ { &fix_hf[1333],
{ "UnderlyingLegMaturityDate (1345)", "fix.UnderlyingLegMaturityDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1334].hf_id,
+ { &fix_hf[1334],
{ "ApplReqID (1346)", "fix.ApplReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1335].hf_id,
+ { &fix_hf[1335],
{ "ApplReqType (1347)", "fix.ApplReqType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1336].hf_id,
+ { &fix_hf[1336],
{ "ApplResponseType (1348)", "fix.ApplResponseType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1337].hf_id,
+ { &fix_hf[1337],
{ "ApplTotalMessageCount (1349)", "fix.ApplTotalMessageCount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1338].hf_id,
+ { &fix_hf[1338],
{ "ApplLastSeqNum (1350)", "fix.ApplLastSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1339].hf_id,
+ { &fix_hf[1339],
{ "NoApplIDs (1351)", "fix.NoApplIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1340].hf_id,
+ { &fix_hf[1340],
{ "ApplResendFlag (1352)", "fix.ApplResendFlag",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1341].hf_id,
+ { &fix_hf[1341],
{ "ApplResponseID (1353)", "fix.ApplResponseID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1342].hf_id,
+ { &fix_hf[1342],
{ "ApplResponseError (1354)", "fix.ApplResponseError",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1343].hf_id,
+ { &fix_hf[1343],
{ "RefApplID (1355)", "fix.RefApplID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1344].hf_id,
+ { &fix_hf[1344],
{ "ApplReportID (1356)", "fix.ApplReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1345].hf_id,
+ { &fix_hf[1345],
{ "RefApplLastSeqNum (1357)", "fix.RefApplLastSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1346].hf_id,
+ { &fix_hf[1346],
{ "LegPutOrCall (1358)", "fix.LegPutOrCall",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1347].hf_id,
+ { &fix_hf[1347],
{ "EncodedSymbolLen (1359)", "fix.EncodedSymbolLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1348].hf_id,
+ { &fix_hf[1348],
{ "EncodedSymbol (1360)", "fix.EncodedSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1349].hf_id,
+ { &fix_hf[1349],
{ "TotNoFills (1361)", "fix.TotNoFills",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1350].hf_id,
+ { &fix_hf[1350],
{ "NoFills (1362)", "fix.NoFills",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1351].hf_id,
+ { &fix_hf[1351],
{ "FillExecID (1363)", "fix.FillExecID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1352].hf_id,
+ { &fix_hf[1352],
{ "FillPx (1364)", "fix.FillPx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1353].hf_id,
+ { &fix_hf[1353],
{ "FillQty (1365)", "fix.FillQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1354].hf_id,
+ { &fix_hf[1354],
{ "LegAllocID (1366)", "fix.LegAllocID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1355].hf_id,
+ { &fix_hf[1355],
{ "LegAllocSettlCurrency (1367)", "fix.LegAllocSettlCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1356].hf_id,
+ { &fix_hf[1356],
{ "TradSesEvent (1368)", "fix.TradSesEvent",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1357].hf_id,
+ { &fix_hf[1357],
{ "MassActionReportID (1369)", "fix.MassActionReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1358].hf_id,
+ { &fix_hf[1358],
{ "NoNotAffectedOrders (1370)", "fix.NoNotAffectedOrders",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1359].hf_id,
+ { &fix_hf[1359],
{ "NotAffectedOrderID (1371)", "fix.NotAffectedOrderID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1360].hf_id,
+ { &fix_hf[1360],
{ "NotAffOrigClOrdID (1372)", "fix.NotAffOrigClOrdID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1361].hf_id,
+ { &fix_hf[1361],
{ "MassActionType (1373)", "fix.MassActionType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1362].hf_id,
+ { &fix_hf[1362],
{ "MassActionScope (1374)", "fix.MassActionScope",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1363].hf_id,
+ { &fix_hf[1363],
{ "MassActionResponse (1375)", "fix.MassActionResponse",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1364].hf_id,
+ { &fix_hf[1364],
{ "MassActionRejectReason (1376)", "fix.MassActionRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1365].hf_id,
+ { &fix_hf[1365],
{ "MultilegModel (1377)", "fix.MultilegModel",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1366].hf_id,
+ { &fix_hf[1366],
{ "MultilegPriceMethod (1378)", "fix.MultilegPriceMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1367].hf_id,
+ { &fix_hf[1367],
{ "LegVolatility (1379)", "fix.LegVolatility",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1368].hf_id,
+ { &fix_hf[1368],
{ "DividendYield (1380)", "fix.DividendYield",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1369].hf_id,
+ { &fix_hf[1369],
{ "LegDividendYield (1381)", "fix.LegDividendYield",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1370].hf_id,
+ { &fix_hf[1370],
{ "CurrencyRatio (1382)", "fix.CurrencyRatio",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1371].hf_id,
+ { &fix_hf[1371],
{ "LegCurrencyRatio (1383)", "fix.LegCurrencyRatio",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1372].hf_id,
+ { &fix_hf[1372],
{ "LegExecInst (1384)", "fix.LegExecInst",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1373].hf_id,
+ { &fix_hf[1373],
{ "ContingencyType (1385)", "fix.ContingencyType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1374].hf_id,
+ { &fix_hf[1374],
{ "ListRejectReason (1386)", "fix.ListRejectReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1375].hf_id,
+ { &fix_hf[1375],
{ "NoTrdRepIndicators (1387)", "fix.NoTrdRepIndicators",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1376].hf_id,
+ { &fix_hf[1376],
{ "TrdRepPartyRole (1388)", "fix.TrdRepPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1377].hf_id,
+ { &fix_hf[1377],
{ "TrdRepIndicator (1389)", "fix.TrdRepIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1378].hf_id,
+ { &fix_hf[1378],
{ "TradePublishIndicator (1390)", "fix.TradePublishIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1379].hf_id,
+ { &fix_hf[1379],
{ "UnderlyingLegOptAttribute (1391)", "fix.UnderlyingLegOptAttribute",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1380].hf_id,
+ { &fix_hf[1380],
{ "UnderlyingLegSecurityDesc (1392)", "fix.UnderlyingLegSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1381].hf_id,
+ { &fix_hf[1381],
{ "MarketReqID (1393)", "fix.MarketReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1382].hf_id,
+ { &fix_hf[1382],
{ "MarketReportID (1394)", "fix.MarketReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1383].hf_id,
+ { &fix_hf[1383],
{ "MarketUpdateAction (1395)", "fix.MarketUpdateAction",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1384].hf_id,
+ { &fix_hf[1384],
{ "MarketSegmentDesc (1396)", "fix.MarketSegmentDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1385].hf_id,
+ { &fix_hf[1385],
{ "EncodedMktSegmDescLen (1397)", "fix.EncodedMktSegmDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1386].hf_id,
+ { &fix_hf[1386],
{ "EncodedMktSegmDesc (1398)", "fix.EncodedMktSegmDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1387].hf_id,
+ { &fix_hf[1387],
{ "ApplNewSeqNum (1399)", "fix.ApplNewSeqNum",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1388].hf_id,
+ { &fix_hf[1388],
{ "EncryptedPasswordMethod (1400)", "fix.EncryptedPasswordMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1389].hf_id,
+ { &fix_hf[1389],
{ "EncryptedPasswordLen (1401)", "fix.EncryptedPasswordLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1390].hf_id,
+ { &fix_hf[1390],
{ "EncryptedPassword (1402)", "fix.EncryptedPassword",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1391].hf_id,
+ { &fix_hf[1391],
{ "EncryptedNewPasswordLen (1403)", "fix.EncryptedNewPasswordLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1392].hf_id,
+ { &fix_hf[1392],
{ "EncryptedNewPassword (1404)", "fix.EncryptedNewPassword",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1393].hf_id,
+ { &fix_hf[1393],
{ "UnderlyingLegMaturityTime (1405)", "fix.UnderlyingLegMaturityTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1394].hf_id,
+ { &fix_hf[1394],
{ "RefApplExtID (1406)", "fix.RefApplExtID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1395].hf_id,
+ { &fix_hf[1395],
{ "DefaultApplExtID (1407)", "fix.DefaultApplExtID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1396].hf_id,
+ { &fix_hf[1396],
{ "DefaultCstmApplVerID (1408)", "fix.DefaultCstmApplVerID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1397].hf_id,
+ { &fix_hf[1397],
{ "SessionStatus (1409)", "fix.SessionStatus",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1398].hf_id,
+ { &fix_hf[1398],
{ "DefaultVerIndicator (1410)", "fix.DefaultVerIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1399].hf_id,
+ { &fix_hf[1399],
{ "Nested4PartySubIDType (1411)", "fix.Nested4PartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1400].hf_id,
+ { &fix_hf[1400],
{ "Nested4PartySubID (1412)", "fix.Nested4PartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1401].hf_id,
+ { &fix_hf[1401],
{ "NoNested4PartySubIDs (1413)", "fix.NoNested4PartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1402].hf_id,
+ { &fix_hf[1402],
{ "NoNested4PartyIDs (1414)", "fix.NoNested4PartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1403].hf_id,
+ { &fix_hf[1403],
{ "Nested4PartyID (1415)", "fix.Nested4PartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1404].hf_id,
+ { &fix_hf[1404],
{ "Nested4PartyIDSource (1416)", "fix.Nested4PartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1405].hf_id,
+ { &fix_hf[1405],
{ "Nested4PartyRole (1417)", "fix.Nested4PartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1406].hf_id,
+ { &fix_hf[1406],
{ "LegLastQty (1418)", "fix.LegLastQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1407].hf_id,
+ { &fix_hf[1407],
{ "UnderlyingExerciseStyle (1419)", "fix.UnderlyingExerciseStyle",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1408].hf_id,
+ { &fix_hf[1408],
{ "LegExerciseStyle (1420)", "fix.LegExerciseStyle",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1409].hf_id,
+ { &fix_hf[1409],
{ "LegPriceUnitOfMeasure (1421)", "fix.LegPriceUnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1410].hf_id,
+ { &fix_hf[1410],
{ "LegPriceUnitOfMeasureQty (1422)", "fix.LegPriceUnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1411].hf_id,
+ { &fix_hf[1411],
{ "UnderlyingUnitOfMeasureQty (1423)", "fix.UnderlyingUnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1412].hf_id,
+ { &fix_hf[1412],
{ "UnderlyingPriceUnitOfMeasure (1424)", "fix.UnderlyingPriceUnitOfMeasure",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1413].hf_id,
+ { &fix_hf[1413],
{ "UnderlyingPriceUnitOfMeasureQty (1425)", "fix.UnderlyingPriceUnitOfMeasureQty",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1414].hf_id,
+ { &fix_hf[1414],
{ "ApplReportType (1426)", "fix.ApplReportType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1415].hf_id,
+ { &fix_hf[1415],
{ "SideExecID (1427)", "fix.SideExecID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1416].hf_id,
+ { &fix_hf[1416],
{ "OrderDelay (1428)", "fix.OrderDelay",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1417].hf_id,
+ { &fix_hf[1417],
{ "OrderDelayUnit (1429)", "fix.OrderDelayUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1418].hf_id,
+ { &fix_hf[1418],
{ "VenueType (1430)", "fix.VenueType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1419].hf_id,
+ { &fix_hf[1419],
{ "RefOrdIDReason (1431)", "fix.RefOrdIDReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1420].hf_id,
+ { &fix_hf[1420],
{ "OrigCustOrderCapacity (1432)", "fix.OrigCustOrderCapacity",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1421].hf_id,
+ { &fix_hf[1421],
{ "RefApplReqID (1433)", "fix.RefApplReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1422].hf_id,
+ { &fix_hf[1422],
{ "ModelType (1434)", "fix.ModelType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1423].hf_id,
+ { &fix_hf[1423],
{ "ContractMultiplierUnit (1435)", "fix.ContractMultiplierUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1424].hf_id,
+ { &fix_hf[1424],
{ "LegContractMultiplierUnit (1436)", "fix.LegContractMultiplierUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1425].hf_id,
+ { &fix_hf[1425],
{ "UnderlyingContractMultiplierUnit (1437)", "fix.UnderlyingContractMultiplierUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1426].hf_id,
+ { &fix_hf[1426],
{ "DerivativeContractMultiplierUnit (1438)", "fix.DerivativeContractMultiplierUnit",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1427].hf_id,
+ { &fix_hf[1427],
{ "FlowScheduleType (1439)", "fix.FlowScheduleType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1428].hf_id,
+ { &fix_hf[1428],
{ "LegFlowScheduleType (1440)", "fix.LegFlowScheduleType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1429].hf_id,
+ { &fix_hf[1429],
{ "UnderlyingFlowScheduleType (1441)", "fix.UnderlyingFlowScheduleType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1430].hf_id,
+ { &fix_hf[1430],
{ "DerivativeFlowScheduleType (1442)", "fix.DerivativeFlowScheduleType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1431].hf_id,
+ { &fix_hf[1431],
{ "FillLiquidityInd (1443)", "fix.FillLiquidityInd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1432].hf_id,
+ { &fix_hf[1432],
{ "SideLiquidityInd (1444)", "fix.SideLiquidityInd",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1433].hf_id,
+ { &fix_hf[1433],
{ "NoRateSources (1445)", "fix.NoRateSources",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1434].hf_id,
+ { &fix_hf[1434],
{ "RateSource (1446)", "fix.RateSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1435].hf_id,
+ { &fix_hf[1435],
{ "RateSourceType (1447)", "fix.RateSourceType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1436].hf_id,
+ { &fix_hf[1436],
{ "ReferencePage (1448)", "fix.ReferencePage",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1437].hf_id,
+ { &fix_hf[1437],
{ "RestructuringType (1449)", "fix.RestructuringType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1438].hf_id,
+ { &fix_hf[1438],
{ "Seniority (1450)", "fix.Seniority",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1439].hf_id,
+ { &fix_hf[1439],
{ "NotionalPercentageOutstanding (1451)", "fix.NotionalPercentageOutstanding",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1440].hf_id,
+ { &fix_hf[1440],
{ "OriginalNotionalPercentageOutstanding (1452)", "fix.OriginalNotionalPercentageOutstanding",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1441].hf_id,
+ { &fix_hf[1441],
{ "UnderlyingRestructuringType (1453)", "fix.UnderlyingRestructuringType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1442].hf_id,
+ { &fix_hf[1442],
{ "UnderlyingSeniority (1454)", "fix.UnderlyingSeniority",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1443].hf_id,
+ { &fix_hf[1443],
{ "UnderlyingNotionalPercentageOutstanding (1455)", "fix.UnderlyingNotionalPercentageOutstanding",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1444].hf_id,
+ { &fix_hf[1444],
{ "UnderlyingOriginalNotionalPercentageOutstanding (1456)", "fix.UnderlyingOriginalNotionalPercentageOutstanding",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1445].hf_id,
+ { &fix_hf[1445],
{ "AttachmentPoint (1457)", "fix.AttachmentPoint",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1446].hf_id,
+ { &fix_hf[1446],
{ "DetachmentPoint (1458)", "fix.DetachmentPoint",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1447].hf_id,
+ { &fix_hf[1447],
{ "UnderlyingAttachmentPoint (1459)", "fix.UnderlyingAttachmentPoint",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1448].hf_id,
+ { &fix_hf[1448],
{ "UnderlyingDetachmentPoint (1460)", "fix.UnderlyingDetachmentPoint",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1449].hf_id,
+ { &fix_hf[1449],
{ "NoTargetPartyIDs (1461)", "fix.NoTargetPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1450].hf_id,
+ { &fix_hf[1450],
{ "TargetPartyID (1462)", "fix.TargetPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1451].hf_id,
+ { &fix_hf[1451],
{ "TargetPartyIDSource (1463)", "fix.TargetPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1452].hf_id,
+ { &fix_hf[1452],
{ "TargetPartyRole (1464)", "fix.TargetPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1453].hf_id,
+ { &fix_hf[1453],
{ "SecurityListID (1465)", "fix.SecurityListID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1454].hf_id,
+ { &fix_hf[1454],
{ "SecurityListRefID (1466)", "fix.SecurityListRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1455].hf_id,
+ { &fix_hf[1455],
{ "SecurityListDesc (1467)", "fix.SecurityListDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1456].hf_id,
+ { &fix_hf[1456],
{ "EncodedSecurityListDescLen (1468)", "fix.EncodedSecurityListDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1457].hf_id,
+ { &fix_hf[1457],
{ "EncodedSecurityListDesc (1469)", "fix.EncodedSecurityListDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1458].hf_id,
+ { &fix_hf[1458],
{ "SecurityListType (1470)", "fix.SecurityListType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1459].hf_id,
+ { &fix_hf[1459],
{ "SecurityListTypeSource (1471)", "fix.SecurityListTypeSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1460].hf_id,
+ { &fix_hf[1460],
{ "NewsID (1472)", "fix.NewsID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1461].hf_id,
+ { &fix_hf[1461],
{ "NewsCategory (1473)", "fix.NewsCategory",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1462].hf_id,
+ { &fix_hf[1462],
{ "LanguageCode (1474)", "fix.LanguageCode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1463].hf_id,
+ { &fix_hf[1463],
{ "NoNewsRefIDs (1475)", "fix.NoNewsRefIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1464].hf_id,
+ { &fix_hf[1464],
{ "NewsRefID (1476)", "fix.NewsRefID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1465].hf_id,
+ { &fix_hf[1465],
{ "NewsRefType (1477)", "fix.NewsRefType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1466].hf_id,
+ { &fix_hf[1466],
{ "StrikePriceDeterminationMethod (1478)", "fix.StrikePriceDeterminationMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1467].hf_id,
+ { &fix_hf[1467],
{ "StrikePriceBoundaryMethod (1479)", "fix.StrikePriceBoundaryMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1468].hf_id,
+ { &fix_hf[1468],
{ "StrikePriceBoundaryPrecision (1480)", "fix.StrikePriceBoundaryPrecision",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1469].hf_id,
+ { &fix_hf[1469],
{ "UnderlyingPriceDeterminationMethod (1481)", "fix.UnderlyingPriceDeterminationMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1470].hf_id,
+ { &fix_hf[1470],
{ "OptPayoutType (1482)", "fix.OptPayoutType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1471].hf_id,
+ { &fix_hf[1471],
{ "NoComplexEvents (1483)", "fix.NoComplexEvents",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1472].hf_id,
+ { &fix_hf[1472],
{ "ComplexEventType (1484)", "fix.ComplexEventType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1473].hf_id,
+ { &fix_hf[1473],
{ "ComplexOptPayoutAmount (1485)", "fix.ComplexOptPayoutAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1474].hf_id,
+ { &fix_hf[1474],
{ "ComplexEventPrice (1486)", "fix.ComplexEventPrice",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1475].hf_id,
+ { &fix_hf[1475],
{ "ComplexEventPriceBoundaryMethod (1487)", "fix.ComplexEventPriceBoundaryMethod",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1476].hf_id,
+ { &fix_hf[1476],
{ "ComplexEventPriceBoundaryPrecision (1488)", "fix.ComplexEventPriceBoundaryPrecision",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1477].hf_id,
+ { &fix_hf[1477],
{ "ComplexEventPriceTimeType (1489)", "fix.ComplexEventPriceTimeType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1478].hf_id,
+ { &fix_hf[1478],
{ "ComplexEventCondition (1490)", "fix.ComplexEventCondition",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1479].hf_id,
+ { &fix_hf[1479],
{ "NoComplexEventDates (1491)", "fix.NoComplexEventDates",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1480].hf_id,
+ { &fix_hf[1480],
{ "ComplexEventStartDate (1492)", "fix.ComplexEventStartDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1481].hf_id,
+ { &fix_hf[1481],
{ "ComplexEventEndDate (1493)", "fix.ComplexEventEndDate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1482].hf_id,
+ { &fix_hf[1482],
{ "NoComplexEventTimes (1494)", "fix.NoComplexEventTimes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1483].hf_id,
+ { &fix_hf[1483],
{ "ComplexEventStartTime (1495)", "fix.ComplexEventStartTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1484].hf_id,
+ { &fix_hf[1484],
{ "ComplexEventEndTime (1496)", "fix.ComplexEventEndTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1485].hf_id,
+ { &fix_hf[1485],
{ "StreamAsgnReqID (1497)", "fix.StreamAsgnReqID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1486].hf_id,
+ { &fix_hf[1486],
{ "StreamAsgnReqType (1498)", "fix.StreamAsgnReqType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1487].hf_id,
+ { &fix_hf[1487],
{ "NoAsgnReqs (1499)", "fix.NoAsgnReqs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1488].hf_id,
+ { &fix_hf[1488],
{ "MDStreamID (1500)", "fix.MDStreamID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1489].hf_id,
+ { &fix_hf[1489],
{ "StreamAsgnRptID (1501)", "fix.StreamAsgnRptID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1490].hf_id,
+ { &fix_hf[1490],
{ "StreamAsgnRejReason (1502)", "fix.StreamAsgnRejReason",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1491].hf_id,
+ { &fix_hf[1491],
{ "StreamAsgnAckType (1503)", "fix.StreamAsgnAckType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1492].hf_id,
+ { &fix_hf[1492],
{ "RelSymTransactTime (1504)", "fix.RelSymTransactTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1493].hf_id,
+ { &fix_hf[1493],
{ "PartyDetailsListRequestID (1505)", "fix.PartyDetailsListRequestID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1494].hf_id,
+ { &fix_hf[1494],
{ "NoPartyListResponseTypes (1506)", "fix.NoPartyListResponseTypes",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1495].hf_id,
+ { &fix_hf[1495],
{ "PartyListResponseType (1507)", "fix.PartyListResponseType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1496].hf_id,
+ { &fix_hf[1496],
{ "NoRequestedPartyRoles (1508)", "fix.NoRequestedPartyRoles",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1497].hf_id,
+ { &fix_hf[1497],
{ "RequestedPartyRole (1509)", "fix.RequestedPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1498].hf_id,
+ { &fix_hf[1498],
{ "PartyDetailsListReportID (1510)", "fix.PartyDetailsListReportID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1499].hf_id,
+ { &fix_hf[1499],
{ "PartyDetailsRequestResult (1511)", "fix.PartyDetailsRequestResult",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1500].hf_id,
+ { &fix_hf[1500],
{ "TotNoPartyList (1512)", "fix.TotNoPartyList",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1501].hf_id,
+ { &fix_hf[1501],
{ "NoPartyList (1513)", "fix.NoPartyList",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1502].hf_id,
+ { &fix_hf[1502],
{ "NoPartyRelationships (1514)", "fix.NoPartyRelationships",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1503].hf_id,
+ { &fix_hf[1503],
{ "PartyRelationship (1515)", "fix.PartyRelationship",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1504].hf_id,
+ { &fix_hf[1504],
{ "NoPartyAltIDs (1516)", "fix.NoPartyAltIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1505].hf_id,
+ { &fix_hf[1505],
{ "PartyAltID (1517)", "fix.PartyAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1506].hf_id,
+ { &fix_hf[1506],
{ "PartyAltIDSource (1518)", "fix.PartyAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1507].hf_id,
+ { &fix_hf[1507],
{ "NoPartyAltSubIDs (1519)", "fix.NoPartyAltSubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1508].hf_id,
+ { &fix_hf[1508],
{ "PartyAltSubID (1520)", "fix.PartyAltSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1509].hf_id,
+ { &fix_hf[1509],
{ "PartyAltSubIDType (1521)", "fix.PartyAltSubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1510].hf_id,
+ { &fix_hf[1510],
{ "NoContextPartyIDs (1522)", "fix.NoContextPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1511].hf_id,
+ { &fix_hf[1511],
{ "ContextPartyID (1523)", "fix.ContextPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1512].hf_id,
+ { &fix_hf[1512],
{ "ContextPartyIDSource (1524)", "fix.ContextPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1513].hf_id,
+ { &fix_hf[1513],
{ "ContextPartyRole (1525)", "fix.ContextPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1514].hf_id,
+ { &fix_hf[1514],
{ "NoContextPartySubIDs (1526)", "fix.NoContextPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1515].hf_id,
+ { &fix_hf[1515],
{ "ContextPartySubID (1527)", "fix.ContextPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1516].hf_id,
+ { &fix_hf[1516],
{ "ContextPartySubIDType (1528)", "fix.ContextPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1517].hf_id,
+ { &fix_hf[1517],
{ "NoRiskLimits (1529)", "fix.NoRiskLimits",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1518].hf_id,
+ { &fix_hf[1518],
{ "RiskLimitType (1530)", "fix.RiskLimitType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1519].hf_id,
+ { &fix_hf[1519],
{ "RiskLimitAmount (1531)", "fix.RiskLimitAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1520].hf_id,
+ { &fix_hf[1520],
{ "RiskLimitCurrency (1532)", "fix.RiskLimitCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1521].hf_id,
+ { &fix_hf[1521],
{ "RiskLimitPlatform (1533)", "fix.RiskLimitPlatform",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1522].hf_id,
+ { &fix_hf[1522],
{ "NoRiskInstruments (1534)", "fix.NoRiskInstruments",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1523].hf_id,
+ { &fix_hf[1523],
{ "RiskInstrumentOperator (1535)", "fix.RiskInstrumentOperator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1524].hf_id,
+ { &fix_hf[1524],
{ "RiskSymbol (1536)", "fix.RiskSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1525].hf_id,
+ { &fix_hf[1525],
{ "RiskSymbolSfx (1537)", "fix.RiskSymbolSfx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1526].hf_id,
+ { &fix_hf[1526],
{ "RiskSecurityID (1538)", "fix.RiskSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1527].hf_id,
+ { &fix_hf[1527],
{ "RiskSecurityIDSource (1539)", "fix.RiskSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1528].hf_id,
+ { &fix_hf[1528],
{ "NoRiskSecurityAltID (1540)", "fix.NoRiskSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1529].hf_id,
+ { &fix_hf[1529],
{ "RiskSecurityAltID (1541)", "fix.RiskSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1530].hf_id,
+ { &fix_hf[1530],
{ "RiskSecurityAltIDSource (1542)", "fix.RiskSecurityAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1531].hf_id,
+ { &fix_hf[1531],
{ "RiskProduct (1543)", "fix.RiskProduct",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1532].hf_id,
+ { &fix_hf[1532],
{ "RiskProductComplex (1544)", "fix.RiskProductComplex",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1533].hf_id,
+ { &fix_hf[1533],
{ "RiskSecurityGroup (1545)", "fix.RiskSecurityGroup",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1534].hf_id,
+ { &fix_hf[1534],
{ "RiskCFICode (1546)", "fix.RiskCFICode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1535].hf_id,
+ { &fix_hf[1535],
{ "RiskSecurityType (1547)", "fix.RiskSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1536].hf_id,
+ { &fix_hf[1536],
{ "RiskSecuritySubType (1548)", "fix.RiskSecuritySubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1537].hf_id,
+ { &fix_hf[1537],
{ "RiskMaturityMonthYear (1549)", "fix.RiskMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1538].hf_id,
+ { &fix_hf[1538],
{ "RiskMaturityTime (1550)", "fix.RiskMaturityTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1539].hf_id,
+ { &fix_hf[1539],
{ "RiskRestructuringType (1551)", "fix.RiskRestructuringType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1540].hf_id,
+ { &fix_hf[1540],
{ "RiskSeniority (1552)", "fix.RiskSeniority",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1541].hf_id,
+ { &fix_hf[1541],
{ "RiskPutOrCall (1553)", "fix.RiskPutOrCall",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1542].hf_id,
+ { &fix_hf[1542],
{ "RiskFlexibleIndicator (1554)", "fix.RiskFlexibleIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1543].hf_id,
+ { &fix_hf[1543],
{ "RiskCouponRate (1555)", "fix.RiskCouponRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1544].hf_id,
+ { &fix_hf[1544],
{ "RiskSecurityDesc (1556)", "fix.RiskSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1545].hf_id,
+ { &fix_hf[1545],
{ "RiskInstrumentSettlType (1557)", "fix.RiskInstrumentSettlType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1546].hf_id,
+ { &fix_hf[1546],
{ "RiskInstrumentMultiplier (1558)", "fix.RiskInstrumentMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1547].hf_id,
+ { &fix_hf[1547],
{ "NoRiskWarningLevels (1559)", "fix.NoRiskWarningLevels",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1548].hf_id,
+ { &fix_hf[1548],
{ "RiskWarningLevelPercent (1560)", "fix.RiskWarningLevelPercent",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1549].hf_id,
+ { &fix_hf[1549],
{ "RiskWarningLevelName (1561)", "fix.RiskWarningLevelName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1550].hf_id,
+ { &fix_hf[1550],
{ "NoRelatedPartyIDs (1562)", "fix.NoRelatedPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1551].hf_id,
+ { &fix_hf[1551],
{ "RelatedPartyID (1563)", "fix.RelatedPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1552].hf_id,
+ { &fix_hf[1552],
{ "RelatedPartyIDSource (1564)", "fix.RelatedPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1553].hf_id,
+ { &fix_hf[1553],
{ "RelatedPartyRole (1565)", "fix.RelatedPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1554].hf_id,
+ { &fix_hf[1554],
{ "NoRelatedPartySubIDs (1566)", "fix.NoRelatedPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1555].hf_id,
+ { &fix_hf[1555],
{ "RelatedPartySubID (1567)", "fix.RelatedPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1556].hf_id,
+ { &fix_hf[1556],
{ "RelatedPartySubIDType (1568)", "fix.RelatedPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1557].hf_id,
+ { &fix_hf[1557],
{ "NoRelatedPartyAltIDs (1569)", "fix.NoRelatedPartyAltIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1558].hf_id,
+ { &fix_hf[1558],
{ "RelatedPartyAltID (1570)", "fix.RelatedPartyAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1559].hf_id,
+ { &fix_hf[1559],
{ "RelatedPartyAltIDSource (1571)", "fix.RelatedPartyAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1560].hf_id,
+ { &fix_hf[1560],
{ "NoRelatedPartyAltSubIDs (1572)", "fix.NoRelatedPartyAltSubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1561].hf_id,
+ { &fix_hf[1561],
{ "RelatedPartyAltSubID (1573)", "fix.RelatedPartyAltSubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1562].hf_id,
+ { &fix_hf[1562],
{ "RelatedPartyAltSubIDType (1574)", "fix.RelatedPartyAltSubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1563].hf_id,
+ { &fix_hf[1563],
{ "NoRelatedContextPartyIDs (1575)", "fix.NoRelatedContextPartyIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1564].hf_id,
+ { &fix_hf[1564],
{ "RelatedContextPartyID (1576)", "fix.RelatedContextPartyID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1565].hf_id,
+ { &fix_hf[1565],
{ "RelatedContextPartyIDSource (1577)", "fix.RelatedContextPartyIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1566].hf_id,
+ { &fix_hf[1566],
{ "RelatedContextPartyRole (1578)", "fix.RelatedContextPartyRole",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1567].hf_id,
+ { &fix_hf[1567],
{ "NoRelatedContextPartySubIDs (1579)", "fix.NoRelatedContextPartySubIDs",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1568].hf_id,
+ { &fix_hf[1568],
{ "RelatedContextPartySubID (1580)", "fix.RelatedContextPartySubID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1569].hf_id,
+ { &fix_hf[1569],
{ "RelatedContextPartySubIDType (1581)", "fix.RelatedContextPartySubIDType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1570].hf_id,
+ { &fix_hf[1570],
{ "NoRelationshipRiskLimits (1582)", "fix.NoRelationshipRiskLimits",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1571].hf_id,
+ { &fix_hf[1571],
{ "RelationshipRiskLimitType (1583)", "fix.RelationshipRiskLimitType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1572].hf_id,
+ { &fix_hf[1572],
{ "RelationshipRiskLimitAmount (1584)", "fix.RelationshipRiskLimitAmount",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1573].hf_id,
+ { &fix_hf[1573],
{ "RelationshipRiskLimitCurrency (1585)", "fix.RelationshipRiskLimitCurrency",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1574].hf_id,
+ { &fix_hf[1574],
{ "RelationshipRiskLimitPlatform (1586)", "fix.RelationshipRiskLimitPlatform",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1575].hf_id,
+ { &fix_hf[1575],
{ "NoRelationshipRiskInstruments (1587)", "fix.NoRelationshipRiskInstruments",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1576].hf_id,
+ { &fix_hf[1576],
{ "RelationshipRiskInstrumentOperator (1588)", "fix.RelationshipRiskInstrumentOperator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1577].hf_id,
+ { &fix_hf[1577],
{ "RelationshipRiskSymbol (1589)", "fix.RelationshipRiskSymbol",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1578].hf_id,
+ { &fix_hf[1578],
{ "RelationshipRiskSymbolSfx (1590)", "fix.RelationshipRiskSymbolSfx",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1579].hf_id,
+ { &fix_hf[1579],
{ "RelationshipRiskSecurityID (1591)", "fix.RelationshipRiskSecurityID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1580].hf_id,
+ { &fix_hf[1580],
{ "RelationshipRiskSecurityIDSource (1592)", "fix.RelationshipRiskSecurityIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1581].hf_id,
+ { &fix_hf[1581],
{ "NoRelationshipRiskSecurityAltID (1593)", "fix.NoRelationshipRiskSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1582].hf_id,
+ { &fix_hf[1582],
{ "RelationshipRiskSecurityAltID (1594)", "fix.RelationshipRiskSecurityAltID",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1583].hf_id,
+ { &fix_hf[1583],
{ "RelationshipRiskSecurityAltIDSource (1595)", "fix.RelationshipRiskSecurityAltIDSource",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1584].hf_id,
+ { &fix_hf[1584],
{ "RelationshipRiskProduct (1596)", "fix.RelationshipRiskProduct",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1585].hf_id,
+ { &fix_hf[1585],
{ "RelationshipRiskProductComplex (1597)", "fix.RelationshipRiskProductComplex",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1586].hf_id,
+ { &fix_hf[1586],
{ "RelationshipRiskSecurityGroup (1598)", "fix.RelationshipRiskSecurityGroup",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1587].hf_id,
+ { &fix_hf[1587],
{ "RelationshipRiskCFICode (1599)", "fix.RelationshipRiskCFICode",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1588].hf_id,
+ { &fix_hf[1588],
{ "RelationshipRiskSecurityType (1600)", "fix.RelationshipRiskSecurityType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1589].hf_id,
+ { &fix_hf[1589],
{ "RelationshipRiskSecuritySubType (1601)", "fix.RelationshipRiskSecuritySubType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1590].hf_id,
+ { &fix_hf[1590],
{ "RelationshipRiskMaturityMonthYear (1602)", "fix.RelationshipRiskMaturityMonthYear",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1591].hf_id,
+ { &fix_hf[1591],
{ "RelationshipRiskMaturityTime (1603)", "fix.RelationshipRiskMaturityTime",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1592].hf_id,
+ { &fix_hf[1592],
{ "RelationshipRiskRestructuringType (1604)", "fix.RelationshipRiskRestructuringType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1593].hf_id,
+ { &fix_hf[1593],
{ "RelationshipRiskSeniority (1605)", "fix.RelationshipRiskSeniority",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1594].hf_id,
+ { &fix_hf[1594],
{ "RelationshipRiskPutOrCall (1606)", "fix.RelationshipRiskPutOrCall",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1595].hf_id,
+ { &fix_hf[1595],
{ "RelationshipRiskFlexibleIndicator (1607)", "fix.RelationshipRiskFlexibleIndicator",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1596].hf_id,
+ { &fix_hf[1596],
{ "RelationshipRiskCouponRate (1608)", "fix.RelationshipRiskCouponRate",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1597].hf_id,
+ { &fix_hf[1597],
{ "RelationshipRiskSecurityExchange (1609)", "fix.RelationshipRiskSecurityExchange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1598].hf_id,
+ { &fix_hf[1598],
{ "RelationshipRiskSecurityDesc (1610)", "fix.RelationshipRiskSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1599].hf_id,
+ { &fix_hf[1599],
{ "RelationshipRiskInstrumentSettlType (1611)", "fix.RelationshipRiskInstrumentSettlType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1600].hf_id,
+ { &fix_hf[1600],
{ "RelationshipRiskInstrumentMultiplier (1612)", "fix.RelationshipRiskInstrumentMultiplier",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1601].hf_id,
+ { &fix_hf[1601],
{ "NoRelationshipRiskWarningLevels (1613)", "fix.NoRelationshipRiskWarningLevels",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1602].hf_id,
+ { &fix_hf[1602],
{ "RelationshipRiskWarningLevelPercent (1614)", "fix.RelationshipRiskWarningLevelPercent",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1603].hf_id,
+ { &fix_hf[1603],
{ "RelationshipRiskWarningLevelName (1615)", "fix.RelationshipRiskWarningLevelName",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1604].hf_id,
+ { &fix_hf[1604],
{ "RiskSecurityExchange (1616)", "fix.RiskSecurityExchange",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1605].hf_id,
+ { &fix_hf[1605],
{ "StreamAsgnType (1617)", "fix.StreamAsgnType",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1606].hf_id,
+ { &fix_hf[1606],
{ "RelationshipRiskEncodedSecurityDescLen (1618)", "fix.RelationshipRiskEncodedSecurityDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1607].hf_id,
+ { &fix_hf[1607],
{ "RelationshipRiskEncodedSecurityDesc (1619)", "fix.RelationshipRiskEncodedSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1608].hf_id,
+ { &fix_hf[1608],
{ "RiskEncodedSecurityDescLen (1620)", "fix.RiskEncodedSecurityDescLen",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
},
- { &fix_fields[1609].hf_id,
+ { &fix_hf[1609],
{ "RiskEncodedSecurityDesc (1621)", "fix.RiskEncodedSecurityDesc",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
diff --git a/epan/dissectors/packet-flexray.c b/epan/dissectors/packet-flexray.c
index 95c0903418..af63342d18 100644
--- a/epan/dissectors/packet-flexray.c
+++ b/epan/dissectors/packet-flexray.c
@@ -26,7 +26,7 @@ void proto_register_flexray(void);
static dissector_handle_t flexray_handle;
-static gboolean prefvar_try_heuristic_first = FALSE;
+static bool prefvar_try_heuristic_first;
static dissector_table_t subdissector_table;
static dissector_table_t flexrayid_subdissector_table;
@@ -110,9 +110,9 @@ typedef struct _sender_receiver_config {
#define DATAFILE_FR_SENDER_RECEIVER "FR_senders_receivers"
-static GHashTable *data_sender_receiver = NULL;
-static sender_receiver_config_t *sender_receiver_configs = NULL;
-static guint sender_receiver_config_num = 0;
+static GHashTable *data_sender_receiver;
+static sender_receiver_config_t *sender_receiver_configs;
+static guint sender_receiver_config_num;
UAT_HEX_CB_DEF(sender_receiver_configs, bus_id, sender_receiver_config_t)
UAT_HEX_CB_DEF(sender_receiver_configs, channel, sender_receiver_config_t)
@@ -319,7 +319,7 @@ dissect_flexray(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
ti = proto_tree_add_item(flexray_tree, hf_flexray_measurement_header_field, tvb, 0, 1, ENC_BIG_ENDIAN);
measurement_tree = proto_item_add_subtree(ti, ett_flexray_measurement_header);
- gboolean flexray_channel_is_b;
+ bool flexray_channel_is_b;
proto_tree_add_item_ret_boolean(measurement_tree, hf_flexray_ch, tvb, 0, 1, ENC_BIG_ENDIAN, &flexray_channel_is_b);
guint32 frame_type;
@@ -346,7 +346,7 @@ dissect_flexray(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
proto_item *ti_header = proto_tree_add_item(flexray_tree, hf_flexray_frame_header, tvb, 2, -1, ENC_NA);
flexray_frame_tree = proto_item_add_subtree(ti_header, ett_flexray_frame);
- gboolean nfi, sfi, stfi;
+ bool nfi, sfi, stfi;
proto_tree_add_item(flexray_frame_tree, hf_flexray_res, tvb, 2, 1, ENC_NA);
proto_tree_add_item(flexray_frame_tree, hf_flexray_ppi, tvb, 2, 1, ENC_NA);
proto_tree_add_item_ret_boolean(flexray_frame_tree, hf_flexray_nfi, tvb, 2, 1, ENC_NA, &nfi);
diff --git a/epan/dissectors/packet-fmp.c b/epan/dissectors/packet-fmp.c
index 57a2322049..17d0289107 100644
--- a/epan/dissectors/packet-fmp.c
+++ b/epan/dissectors/packet-fmp.c
@@ -123,7 +123,7 @@ static const value_string fmp_encoding_mode_vals[] = {
{0,NULL}
};
-static gboolean fmp_fhandle_reqrep_matching = FALSE;
+static bool fmp_fhandle_reqrep_matching;
static int
dissect_fmp_genString(tvbuff_t *tvb, int offset, proto_tree *tree)
diff --git a/epan/dissectors/packet-fmtp.c b/epan/dissectors/packet-fmtp.c
index b46c71024e..4acd6e7afb 100644
--- a/epan/dissectors/packet-fmtp.c
+++ b/epan/dissectors/packet-fmtp.c
@@ -131,19 +131,19 @@ dissect_fmtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
* Check that packet looks like FMTP before going further
*/
/* VERSION must currently be 0x02 */
- if (tvb_get_guint8(tvb, 0) != 0x02) return (FALSE);
+ if (tvb_get_guint8(tvb, 0) != 0x02) return FALSE;
/* RESERVED must currently be 0x00 */
- if (tvb_get_guint8(tvb, 1) != 0x00) return (FALSE);
+ if (tvb_get_guint8(tvb, 1) != 0x00) return FALSE;
length = tvb_get_ntohs(tvb, 2);
/* LENGTH must currently not exceed 5 (header) + 10240 (data) */
- if ((length > FMTP_MAX_LEN) || (length < FMTP_HEADER_LEN)) return (FALSE);
+ if ((length > FMTP_MAX_LEN) || (length < FMTP_HEADER_LEN)) return FALSE;
/* TYP must currently be in range 0x01-0x04 */
if ((tvb_get_guint8(tvb, 4) < 0x01) || (tvb_get_guint8(tvb, 4) > 0x04))
- return (FALSE);
+ return FALSE;
tcp_dissect_pdus(tvb, pinfo, tree, TRUE, FMTP_HEADER_LEN,
get_fmtp_message_len, dissect_fmtp_message, data);
- return (TRUE);
+ return TRUE;
}
void
diff --git a/epan/dissectors/packet-forces.c b/epan/dissectors/packet-forces.c
index 191b3c6d7e..44cd6da0cb 100644
--- a/epan/dissectors/packet-forces.c
+++ b/epan/dissectors/packet-forces.c
@@ -135,9 +135,9 @@ static int hf_forces_unknown_tlv;
#define TCP_UDP_TML_FOCES_MESSAGE_OFFSET_TCP 2
/*SCTP TML*/
-static guint forces_alternate_sctp_high_prio_channel_port = 0;
-static guint forces_alternate_sctp_med_prio_channel_port = 0;
-static guint forces_alternate_sctp_low_prio_channel_port = 0;
+static guint forces_alternate_sctp_high_prio_channel_port;
+static guint forces_alternate_sctp_med_prio_channel_port;
+static guint forces_alternate_sctp_low_prio_channel_port;
/*Initialize the subtree pointers*/
static gint ett_forces;
diff --git a/epan/dissectors/packet-fp_mux.c b/epan/dissectors/packet-fp_mux.c
index 51a2391fcf..e3ec5b7dae 100644
--- a/epan/dissectors/packet-fp_mux.c
+++ b/epan/dissectors/packet-fp_mux.c
@@ -49,9 +49,9 @@ static expert_field ei_fpm_bad_length;
/* Preferences */
/* Place UID in proto tree */
-static gboolean fp_mux_uid_in_tree = TRUE;
+static bool fp_mux_uid_in_tree = true;
/* Call heuristic FP dissectors on payload */
-static gboolean call_fp_heur = TRUE;
+static bool call_fp_heur = true;
/* Enum Values */
static const true_false_string fpmux_extension_flag_vals = {
diff --git a/epan/dissectors/packet-fr.c b/epan/dissectors/packet-fr.c
index 685678c373..6fe01340e8 100644
--- a/epan/dissectors/packet-fr.c
+++ b/epan/dissectors/packet-fr.c
@@ -201,7 +201,7 @@ static const xdlc_cf_items fr_cf_items_ext = {
&hf_fr_ftype_s_u_ext
};
-static gboolean
+static bool
capture_fr(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint8 fr_octet;
diff --git a/epan/dissectors/packet-fractalgeneratorprotocol.c b/epan/dissectors/packet-fractalgeneratorprotocol.c
index a35dbceaaa..535ea0729a 100644
--- a/epan/dissectors/packet-fractalgeneratorprotocol.c
+++ b/epan/dissectors/packet-fractalgeneratorprotocol.c
@@ -49,8 +49,8 @@ static int hf_parameter_c2imag;
static int hf_parameter_n;
static int hf_buffer;
-static guint64 fgp_total_msgs = 0;
-static guint64 fgp_total_bytes = 0;
+static guint64 fgp_total_msgs;
+static guint64 fgp_total_bytes;
/* Initialize the subtree pointers */
static gint ett_fractalgeneratorprotocol;
@@ -192,7 +192,7 @@ dissect_fractalgeneratorprotocol(tvbuff_t *message_tvb, packet_info *pinfo, prot
/* dissect the message */
dissect_fgp_message(message_tvb, pinfo, fgp_tree);
- return(TRUE);
+ return TRUE;
}
diff --git a/epan/dissectors/packet-frame.c b/epan/dissectors/packet-frame.c
index d630eeff97..869c8499fa 100644
--- a/epan/dissectors/packet-frame.c
+++ b/epan/dissectors/packet-frame.c
@@ -214,11 +214,11 @@ static dissector_handle_t sysdig_handle;
static dissector_handle_t systemd_journal_handle;
/* Preferences */
-static gboolean show_file_off = FALSE;
-static gboolean force_docsis_encap = FALSE;
-static gboolean generate_md5_hash = FALSE;
-static gboolean generate_bits_field = TRUE;
-static gboolean disable_packet_size_limited_in_summary = FALSE;
+static bool show_file_off;
+static bool force_docsis_encap;
+static bool generate_md5_hash;
+static bool generate_bits_field = true;
+static bool disable_packet_size_limited_in_summary;
static guint max_comment_lines = 30;
static const value_string p2p_dirs[] = {
@@ -497,7 +497,7 @@ frame_add_hash(wtap_block_t block _U_, guint option_id, wtap_opttype_e option_ty
if (option_id == OPT_PKT_HASH) {
packet_hash_opt_t *hash = &option->packet_hash;
const char *format
- = fr_user_data->n_changes ? "%s (%u)" : ", %s (%u)";
+ = fr_user_data->n_changes ? ", %s (%u)" : "%s (%u)";
proto_item_append_text(fr_user_data->item, format,
get_hash_type_string(hash->type),
diff --git a/epan/dissectors/packet-ftam.c b/epan/dissectors/packet-ftam.c
index 18b24438d7..26f485343d 100644
--- a/epan/dissectors/packet-ftam.c
+++ b/epan/dissectors/packet-ftam.c
@@ -466,168 +466,168 @@ static int hf_ftam_Attribute_Names_read_Child_objects;
/* Initialize the subtree pointers */
static gint ett_ftam;
-static gint ett_ftam_PDU;
-static gint ett_ftam_FTAM_Regime_PDU;
-static gint ett_ftam_F_INITIALIZE_request;
-static gint ett_ftam_F_INITIALIZE_response;
-static gint ett_ftam_Protocol_Version_U;
-static gint ett_ftam_Service_Class_U;
-static gint ett_ftam_Functional_Units_U;
-static gint ett_ftam_Attribute_Groups_U;
-static gint ett_ftam_Contents_Type_List_U;
-static gint ett_ftam_Contents_Type_List_item;
-static gint ett_ftam_F_TERMINATE_request;
-static gint ett_ftam_F_TERMINATE_response;
-static gint ett_ftam_F_U_ABORT_request;
-static gint ett_ftam_F_P_ABORT_request;
-static gint ett_ftam_File_PDU;
-static gint ett_ftam_F_SELECT_request;
-static gint ett_ftam_F_SELECT_response;
-static gint ett_ftam_F_DESELECT_request;
-static gint ett_ftam_F_DESELECT_response;
-static gint ett_ftam_F_CREATE_request;
-static gint ett_ftam_F_CREATE_response;
-static gint ett_ftam_F_DELETE_request;
-static gint ett_ftam_F_DELETE_response;
-static gint ett_ftam_F_READ_ATTRIB_request;
-static gint ett_ftam_F_READ_ATTRIB_response;
-static gint ett_ftam_F_CHANGE_ATTRIB_request;
-static gint ett_ftam_F_CHANGE_ATTRIB_response;
-static gint ett_ftam_F_OPEN_request;
-static gint ett_ftam_T_processing_mode;
-static gint ett_ftam_T_open_contents_type;
-static gint ett_ftam_SET_OF_Abstract_Syntax_Name;
-static gint ett_ftam_F_OPEN_response;
-static gint ett_ftam_F_CLOSE_request;
-static gint ett_ftam_F_CLOSE_response;
-static gint ett_ftam_F_BEGIN_GROUP_request;
-static gint ett_ftam_F_BEGIN_GROUP_response;
-static gint ett_ftam_F_END_GROUP_request;
-static gint ett_ftam_F_END_GROUP_response;
-static gint ett_ftam_F_RECOVER_request;
-static gint ett_ftam_F_RECOVER_response;
-static gint ett_ftam_F_LOCATE_request;
-static gint ett_ftam_F_LOCATE_response;
-static gint ett_ftam_F_ERASE_request;
-static gint ett_ftam_F_ERASE_response;
-static gint ett_ftam_Bulk_Data_PDU;
-static gint ett_ftam_F_READ_request;
-static gint ett_ftam_F_WRITE_request;
-static gint ett_ftam_F_DATA_END_request;
-static gint ett_ftam_F_TRANSFER_END_request;
-static gint ett_ftam_F_TRANSFER_END_response;
-static gint ett_ftam_F_CANCEL_request;
-static gint ett_ftam_F_CANCEL_response;
-static gint ett_ftam_F_RESTART_request;
-static gint ett_ftam_F_RESTART_response;
-static gint ett_ftam_Access_Context_U;
-static gint ett_ftam_Access_Passwords_U;
-static gint ett_ftam_Access_Request_U;
-static gint ett_ftam_Change_Attributes_U;
-static gint ett_ftam_Charging_U;
-static gint ett_ftam_Charging_item;
-static gint ett_ftam_Concurrency_Control_U;
-static gint ett_ftam_Create_Attributes_U;
-static gint ett_ftam_Diagnostic_U;
-static gint ett_ftam_Diagnostic_item;
-static gint ett_ftam_FADU_Identity_U;
-static gint ett_ftam_SEQUENCE_OF_Node_Name;
-static gint ett_ftam_Password_U;
-static gint ett_ftam_Read_Attributes_U;
-static gint ett_ftam_Select_Attributes_U;
-static gint ett_ftam_Access_Control_Attribute;
-static gint ett_ftam_SET_OF_Access_Control_Element;
-static gint ett_ftam_Access_Control_Change_Attribute;
-static gint ett_ftam_T_actual_values1;
-static gint ett_ftam_Access_Control_Element;
-static gint ett_ftam_Concurrency_Access;
-static gint ett_ftam_Concurrency_Key;
-static gint ett_ftam_Account_Attribute;
-static gint ett_ftam_Contents_Type_Attribute;
-static gint ett_ftam_T_document_type;
-static gint ett_ftam_T_constraint_set_and_abstract_Syntax;
-static gint ett_ftam_Date_and_Time_Attribute;
-static gint ett_ftam_Object_Availability_Attribute;
-static gint ett_ftam_Pathname_Attribute;
-static gint ett_ftam_Object_Size_Attribute;
-static gint ett_ftam_Legal_Qualification_Attribute;
-static gint ett_ftam_Permitted_Actions_Attribute;
-static gint ett_ftam_Private_Use_Attribute;
-static gint ett_ftam_User_Identity_Attribute;
-static gint ett_ftam_Child_Objects_Attribute;
-static gint ett_ftam_FSM_PDU;
-static gint ett_ftam_F_CHANGE_PREFIX_request;
-static gint ett_ftam_F_CHANGE_PREFIX_response;
-static gint ett_ftam_F_LIST_request;
-static gint ett_ftam_F_LIST_response;
-static gint ett_ftam_F_GROUP_SELECT_request;
-static gint ett_ftam_F_GROUP_SELECT_response;
-static gint ett_ftam_F_GROUP_DELETE_request;
-static gint ett_ftam_F_GROUP_DELETE_response;
-static gint ett_ftam_F_GROUP_MOVE_request;
-static gint ett_ftam_F_GROUP_MOVE_response;
-static gint ett_ftam_F_GROUP_COPY_request;
-static gint ett_ftam_F_GROUP_COPY_response;
-static gint ett_ftam_F_GROUP_LIST_request;
-static gint ett_ftam_F_GROUP_LIST_response;
-static gint ett_ftam_F_GROUP_CHANGE_ATTRIB_request;
-static gint ett_ftam_F_GROUP_CHANGE_ATTRIB_response;
-static gint ett_ftam_F_SELECT_ANOTHER_request;
-static gint ett_ftam_F_SELECT_ANOTHER_response;
-static gint ett_ftam_F_CREATE_DIRECTORY_request;
-static gint ett_ftam_F_CREATE_DIRECTORY_response;
-static gint ett_ftam_F_LINK_request;
-static gint ett_ftam_F_LINK_response;
-static gint ett_ftam_F_UNLINK_request;
-static gint ett_ftam_F_UNLINK_response;
-static gint ett_ftam_F_READ_LINK_ATTRIB_request;
-static gint ett_ftam_F_READ_LINK_ATTRIB_response;
-static gint ett_ftam_F_CHANGE_LINK_ATTRIB_request;
-static gint ett_ftam_F_CHANGE_LINK_ATTRIB_response;
-static gint ett_ftam_F_MOVE_request;
-static gint ett_ftam_F_MOVE_response;
-static gint ett_ftam_F_COPY_request;
-static gint ett_ftam_F_COPY_response;
-static gint ett_ftam_Attribute_Extension_Names;
-static gint ett_ftam_Attribute_Extension_Set_Name;
-static gint ett_ftam_SEQUENCE_OF_Extension_Attribute_identifier;
-static gint ett_ftam_Attribute_Extensions;
-static gint ett_ftam_Attribute_Extension_Set;
-static gint ett_ftam_SEQUENCE_OF_Extension_Attribute;
-static gint ett_ftam_Extension_Attribute;
-static gint ett_ftam_Scope_U;
-static gint ett_ftam_T__untag_item;
-static gint ett_ftam_OR_Set;
-static gint ett_ftam_AND_Set;
-static gint ett_ftam_AND_Set_item;
-static gint ett_ftam_Equality_Comparision;
-static gint ett_ftam_Relational_Comparision;
-static gint ett_ftam_Pathname_Pattern;
-static gint ett_ftam_T_pathname_value;
-static gint ett_ftam_T_pathname_value_item;
-static gint ett_ftam_String_Pattern;
-static gint ett_ftam_T_string_value;
-static gint ett_ftam_T_string_value_item;
-static gint ett_ftam_Bitstring_Pattern;
-static gint ett_ftam_Date_and_Time_Pattern;
-static gint ett_ftam_Integer_Pattern;
-static gint ett_ftam_Object_Identifier_Pattern;
-static gint ett_ftam_Boolean_Pattern;
-static gint ett_ftam_Contents_Type_Pattern;
-static gint ett_ftam_T_constraint_set_abstract_Syntax_Pattern;
-static gint ett_ftam_Attribute_Extensions_Pattern;
-static gint ett_ftam_Attribute_Extensions_Pattern_item;
-static gint ett_ftam_T_extension_set_attribute_Patterns;
-static gint ett_ftam_T_extension_set_attribute_Patterns_item;
-static gint ett_ftam_SEQUENCE_OF_Read_Attributes;
-static gint ett_ftam_Operation_Result_U;
-static gint ett_ftam_SEQUENCE_OF_Pathname;
-static gint ett_ftam_Pathname;
-static gint ett_ftam_Pass_Passwords;
-static gint ett_ftam_Path_Access_Passwords_U;
-static gint ett_ftam_Path_Access_Passwords_item;
-static gint ett_ftam_Attribute_Names;
-static gint ett_ftam_AE_title;
+static int ett_ftam_PDU;
+static int ett_ftam_FTAM_Regime_PDU;
+static int ett_ftam_F_INITIALIZE_request;
+static int ett_ftam_F_INITIALIZE_response;
+static int ett_ftam_Protocol_Version_U;
+static int ett_ftam_Service_Class_U;
+static int ett_ftam_Functional_Units_U;
+static int ett_ftam_Attribute_Groups_U;
+static int ett_ftam_Contents_Type_List_U;
+static int ett_ftam_Contents_Type_List_item;
+static int ett_ftam_F_TERMINATE_request;
+static int ett_ftam_F_TERMINATE_response;
+static int ett_ftam_F_U_ABORT_request;
+static int ett_ftam_F_P_ABORT_request;
+static int ett_ftam_File_PDU;
+static int ett_ftam_F_SELECT_request;
+static int ett_ftam_F_SELECT_response;
+static int ett_ftam_F_DESELECT_request;
+static int ett_ftam_F_DESELECT_response;
+static int ett_ftam_F_CREATE_request;
+static int ett_ftam_F_CREATE_response;
+static int ett_ftam_F_DELETE_request;
+static int ett_ftam_F_DELETE_response;
+static int ett_ftam_F_READ_ATTRIB_request;
+static int ett_ftam_F_READ_ATTRIB_response;
+static int ett_ftam_F_CHANGE_ATTRIB_request;
+static int ett_ftam_F_CHANGE_ATTRIB_response;
+static int ett_ftam_F_OPEN_request;
+static int ett_ftam_T_processing_mode;
+static int ett_ftam_T_open_contents_type;
+static int ett_ftam_SET_OF_Abstract_Syntax_Name;
+static int ett_ftam_F_OPEN_response;
+static int ett_ftam_F_CLOSE_request;
+static int ett_ftam_F_CLOSE_response;
+static int ett_ftam_F_BEGIN_GROUP_request;
+static int ett_ftam_F_BEGIN_GROUP_response;
+static int ett_ftam_F_END_GROUP_request;
+static int ett_ftam_F_END_GROUP_response;
+static int ett_ftam_F_RECOVER_request;
+static int ett_ftam_F_RECOVER_response;
+static int ett_ftam_F_LOCATE_request;
+static int ett_ftam_F_LOCATE_response;
+static int ett_ftam_F_ERASE_request;
+static int ett_ftam_F_ERASE_response;
+static int ett_ftam_Bulk_Data_PDU;
+static int ett_ftam_F_READ_request;
+static int ett_ftam_F_WRITE_request;
+static int ett_ftam_F_DATA_END_request;
+static int ett_ftam_F_TRANSFER_END_request;
+static int ett_ftam_F_TRANSFER_END_response;
+static int ett_ftam_F_CANCEL_request;
+static int ett_ftam_F_CANCEL_response;
+static int ett_ftam_F_RESTART_request;
+static int ett_ftam_F_RESTART_response;
+static int ett_ftam_Access_Context_U;
+static int ett_ftam_Access_Passwords_U;
+static int ett_ftam_Access_Request_U;
+static int ett_ftam_Change_Attributes_U;
+static int ett_ftam_Charging_U;
+static int ett_ftam_Charging_item;
+static int ett_ftam_Concurrency_Control_U;
+static int ett_ftam_Create_Attributes_U;
+static int ett_ftam_Diagnostic_U;
+static int ett_ftam_Diagnostic_item;
+static int ett_ftam_FADU_Identity_U;
+static int ett_ftam_SEQUENCE_OF_Node_Name;
+static int ett_ftam_Password_U;
+static int ett_ftam_Read_Attributes_U;
+static int ett_ftam_Select_Attributes_U;
+static int ett_ftam_Access_Control_Attribute;
+static int ett_ftam_SET_OF_Access_Control_Element;
+static int ett_ftam_Access_Control_Change_Attribute;
+static int ett_ftam_T_actual_values1;
+static int ett_ftam_Access_Control_Element;
+static int ett_ftam_Concurrency_Access;
+static int ett_ftam_Concurrency_Key;
+static int ett_ftam_Account_Attribute;
+static int ett_ftam_Contents_Type_Attribute;
+static int ett_ftam_T_document_type;
+static int ett_ftam_T_constraint_set_and_abstract_Syntax;
+static int ett_ftam_Date_and_Time_Attribute;
+static int ett_ftam_Object_Availability_Attribute;
+static int ett_ftam_Pathname_Attribute;
+static int ett_ftam_Object_Size_Attribute;
+static int ett_ftam_Legal_Qualification_Attribute;
+static int ett_ftam_Permitted_Actions_Attribute;
+static int ett_ftam_Private_Use_Attribute;
+static int ett_ftam_User_Identity_Attribute;
+static int ett_ftam_Child_Objects_Attribute;
+static int ett_ftam_FSM_PDU;
+static int ett_ftam_F_CHANGE_PREFIX_request;
+static int ett_ftam_F_CHANGE_PREFIX_response;
+static int ett_ftam_F_LIST_request;
+static int ett_ftam_F_LIST_response;
+static int ett_ftam_F_GROUP_SELECT_request;
+static int ett_ftam_F_GROUP_SELECT_response;
+static int ett_ftam_F_GROUP_DELETE_request;
+static int ett_ftam_F_GROUP_DELETE_response;
+static int ett_ftam_F_GROUP_MOVE_request;
+static int ett_ftam_F_GROUP_MOVE_response;
+static int ett_ftam_F_GROUP_COPY_request;
+static int ett_ftam_F_GROUP_COPY_response;
+static int ett_ftam_F_GROUP_LIST_request;
+static int ett_ftam_F_GROUP_LIST_response;
+static int ett_ftam_F_GROUP_CHANGE_ATTRIB_request;
+static int ett_ftam_F_GROUP_CHANGE_ATTRIB_response;
+static int ett_ftam_F_SELECT_ANOTHER_request;
+static int ett_ftam_F_SELECT_ANOTHER_response;
+static int ett_ftam_F_CREATE_DIRECTORY_request;
+static int ett_ftam_F_CREATE_DIRECTORY_response;
+static int ett_ftam_F_LINK_request;
+static int ett_ftam_F_LINK_response;
+static int ett_ftam_F_UNLINK_request;
+static int ett_ftam_F_UNLINK_response;
+static int ett_ftam_F_READ_LINK_ATTRIB_request;
+static int ett_ftam_F_READ_LINK_ATTRIB_response;
+static int ett_ftam_F_CHANGE_LINK_ATTRIB_request;
+static int ett_ftam_F_CHANGE_LINK_ATTRIB_response;
+static int ett_ftam_F_MOVE_request;
+static int ett_ftam_F_MOVE_response;
+static int ett_ftam_F_COPY_request;
+static int ett_ftam_F_COPY_response;
+static int ett_ftam_Attribute_Extension_Names;
+static int ett_ftam_Attribute_Extension_Set_Name;
+static int ett_ftam_SEQUENCE_OF_Extension_Attribute_identifier;
+static int ett_ftam_Attribute_Extensions;
+static int ett_ftam_Attribute_Extension_Set;
+static int ett_ftam_SEQUENCE_OF_Extension_Attribute;
+static int ett_ftam_Extension_Attribute;
+static int ett_ftam_Scope_U;
+static int ett_ftam_T__untag_item;
+static int ett_ftam_OR_Set;
+static int ett_ftam_AND_Set;
+static int ett_ftam_AND_Set_item;
+static int ett_ftam_Equality_Comparision;
+static int ett_ftam_Relational_Comparision;
+static int ett_ftam_Pathname_Pattern;
+static int ett_ftam_T_pathname_value;
+static int ett_ftam_T_pathname_value_item;
+static int ett_ftam_String_Pattern;
+static int ett_ftam_T_string_value;
+static int ett_ftam_T_string_value_item;
+static int ett_ftam_Bitstring_Pattern;
+static int ett_ftam_Date_and_Time_Pattern;
+static int ett_ftam_Integer_Pattern;
+static int ett_ftam_Object_Identifier_Pattern;
+static int ett_ftam_Boolean_Pattern;
+static int ett_ftam_Contents_Type_Pattern;
+static int ett_ftam_T_constraint_set_abstract_Syntax_Pattern;
+static int ett_ftam_Attribute_Extensions_Pattern;
+static int ett_ftam_Attribute_Extensions_Pattern_item;
+static int ett_ftam_T_extension_set_attribute_Patterns;
+static int ett_ftam_T_extension_set_attribute_Patterns_item;
+static int ett_ftam_SEQUENCE_OF_Read_Attributes;
+static int ett_ftam_Operation_Result_U;
+static int ett_ftam_SEQUENCE_OF_Pathname;
+static int ett_ftam_Pathname;
+static int ett_ftam_Pass_Passwords;
+static int ett_ftam_Path_Access_Passwords_U;
+static int ett_ftam_Path_Access_Passwords_item;
+static int ett_ftam_Attribute_Names;
+static int ett_ftam_AE_title;
static expert_field ei_ftam_zero_pdu;
diff --git a/epan/dissectors/packet-ftdi-ft.c b/epan/dissectors/packet-ftdi-ft.c
index 4aa5fd2895..eed804ec6c 100644
--- a/epan/dissectors/packet-ftdi-ft.c
+++ b/epan/dissectors/packet-ftdi-ft.c
@@ -132,9 +132,9 @@ static dissector_handle_t ftdi_ft_handle;
static reassembly_table ftdi_reassembly_table;
-static wmem_tree_t *request_info = NULL;
-static wmem_tree_t *bitmode_info = NULL;
-static wmem_tree_t *desegment_info = NULL;
+static wmem_tree_t *request_info;
+static wmem_tree_t *bitmode_info;
+static wmem_tree_t *desegment_info;
typedef struct _request_data {
guint32 bus_id;
diff --git a/epan/dissectors/packet-ftdi-mpsse.c b/epan/dissectors/packet-ftdi-mpsse.c
index 49b89aefd0..0649bacb6d 100644
--- a/epan/dissectors/packet-ftdi-mpsse.c
+++ b/epan/dissectors/packet-ftdi-mpsse.c
@@ -119,8 +119,8 @@ static dissector_handle_t ftdi_mpsse_handle;
* levels, tx_command_info tree is being used. It contains pointers to the same list as rx_command_info but
* allows TX dissection to obtain the relevant command_data_t entry without traversing the list.
*/
-static wmem_tree_t *rx_command_info = NULL;
-static wmem_tree_t *tx_command_info = NULL;
+static wmem_tree_t *rx_command_info;
+static wmem_tree_t *tx_command_info;
typedef struct _command_data command_data_t;
diff --git a/epan/dissectors/packet-ftp.c b/epan/dissectors/packet-ftp.c
index 6852469a54..355da7cd57 100644
--- a/epan/dissectors/packet-ftp.c
+++ b/epan/dissectors/packet-ftp.c
@@ -167,7 +167,7 @@ static const value_string eprt_af_vals[] = {
It will be used to set the maximum file size for FTP's export
objects (in megabytes). Use 0 for no limit.
*/
-static guint pref_export_maxsize = 0;
+static guint pref_export_maxsize;
typedef struct _ftp_eo_t {
gchar *command; /* Command this data stream answers (e.g., RETR foo.txt) */
@@ -180,10 +180,10 @@ typedef struct _ftp_eo_t {
table's row number, so we can append data from later FTP packets
to the entries.
*/
-GHashTable *command_packet_to_eo_row = NULL;
+GHashTable *command_packet_to_eo_row;
/* Track which row number in the export object table we're up to */
-guint32 eo_row_count = 0;
+guint32 eo_row_count;
/**
* This is the callback passed to register_export_object()
@@ -363,7 +363,7 @@ static ftp_conversation_t *find_or_create_ftp_conversation(packet_info *pinfo)
}
/* Keep track of ftp_data_conversation_t*, keyed by the ftp command frame */
-static GHashTable *ftp_command_to_data_hash = NULL;
+static GHashTable *ftp_command_to_data_hash;
/* When new data conversation is being created, should:
diff --git a/epan/dissectors/packet-fw1.c b/epan/dissectors/packet-fw1.c
index f75af44235..5e5020d428 100644
--- a/epan/dissectors/packet-fw1.c
+++ b/epan/dissectors/packet-fw1.c
@@ -86,9 +86,9 @@ void proto_register_fw1(void);
void proto_reg_handoff_fw1(void);
/* Place FW1 summary in proto tree */
-static gboolean fw1_summary_in_tree = TRUE;
-static gboolean fw1_with_uuid = FALSE;
-static gboolean fw1_iflist_with_chain = FALSE;
+static bool fw1_summary_in_tree = true;
+static bool fw1_with_uuid;
+static bool fw1_iflist_with_chain;
static dissector_handle_t ethertype_handle;
diff --git a/epan/dissectors/packet-gadu-gadu.c b/epan/dissectors/packet-gadu-gadu.c
index c857727b40..de499781af 100644
--- a/epan/dissectors/packet-gadu-gadu.c
+++ b/epan/dissectors/packet-gadu-gadu.c
@@ -22,7 +22,7 @@ void proto_reg_handoff_gadu_gadu(void);
#define TCP_PORT_GADU_GADU 8074 /* assigned by IANA */
/* desegmentation of Gadu-Gadu over TCP */
-static gboolean gadu_gadu_desegment = TRUE;
+static bool gadu_gadu_desegment = true;
static dissector_handle_t gadu_gadu_handle;
diff --git a/epan/dissectors/packet-gbcs.c b/epan/dissectors/packet-gbcs.c
index 7f4ff13f3b..8e48d5d9f5 100644
--- a/epan/dissectors/packet-gbcs.c
+++ b/epan/dissectors/packet-gbcs.c
@@ -29,6 +29,7 @@
#include "packet-zbee-nwk.h"
#include "packet-zbee-zcl.h"
#include "packet-zbee-aps.h"
+#include <wsutil/epochs.h>
#include <wsutil/time_util.h>
#define gbcs_message_code_names_VALUE_STRING_LIST(XXX) \
@@ -582,11 +583,7 @@ static void dissect_gbcs_gbz_component(tvbuff_t *tvb, packet_info *pinfo, proto_
}
if (fromdatetime_present) {
- nstime_t timestamp;
-
- timestamp.secs = (time_t)tvb_get_ntohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- timestamp.nsecs = 0;
- proto_tree_add_time(component_tree, hf_gbcs_gbz_from_date_time, tvb, *offset, 4, &timestamp);
+ proto_tree_add_item(component_tree, hf_gbcs_gbz_from_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_BIG_ENDIAN);
*offset += 4;
component_len -= 4;
}
@@ -681,7 +678,7 @@ static int dissect_gbcs_gbz(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, val_to_str_ext_const(alert_code, &gbcs_gbz_alert_code_names_ext, "Unknown alert"));
offset += 2;
- timestamp.secs = (time_t)tvb_get_ntohl(tvb, offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ timestamp.secs = (time_t)tvb_get_ntohl(tvb, offset) + EPOCH_DELTA_2000_01_01_00_00_00_UTC;
timestamp.nsecs = 0;
proto_tree_add_time(gbz_tree, hf_gbcs_gbz_timestamp, tvb, offset, 4, &timestamp);
offset += 4;
diff --git a/epan/dissectors/packet-gdt.c b/epan/dissectors/packet-gdt.c
index 0363f192ee..833d519afb 100644
--- a/epan/dissectors/packet-gdt.c
+++ b/epan/dissectors/packet-gdt.c
@@ -34,7 +34,7 @@
/* Initialize the protocol and registered fields */
static int proto_gdt;
-static dissector_handle_t gdt_handle = NULL;
+static dissector_handle_t gdt_handle;
static int hf_gdt_GDTMessage_PDU; /* GDTMessage */
static int hf_gdt_version; /* INTEGER */
@@ -89,27 +89,27 @@ static int hf_gdt_enc_type; /* OCTET_STRING */
/* Initialize the subtree pointers */
static int ett_gdt;
-static gint ett_gdt_Header;
-static gint ett_gdt_EndPointDescriptor;
-static gint ett_gdt_Body;
-static gint ett_gdt_StateMessage;
-static gint ett_gdt_ServiceMessage;
-static gint ett_gdt_RoutingMessage;
-static gint ett_gdt_RegistrationMessage;
-static gint ett_gdt_StatsMessage;
-static gint ett_gdt_AuthMessage;
-static gint ett_gdt_DataRetentionMessage;
-static gint ett_gdt_FilterMessage;
-static gint ett_gdt_PacketFwdMessage;
-static gint ett_gdt_NotifyMessage;
-static gint ett_gdt_DataMessage;
-static gint ett_gdt_ConfigMessage;
-static gint ett_gdt_Parameter;
-static gint ett_gdt_T_value;
-static gint ett_gdt_Parameters;
-static gint ett_gdt_HopInfo;
-static gint ett_gdt_GDTMessage;
-static gint ett_gdt_EncryptionInfo;
+static int ett_gdt_Header;
+static int ett_gdt_EndPointDescriptor;
+static int ett_gdt_Body;
+static int ett_gdt_StateMessage;
+static int ett_gdt_ServiceMessage;
+static int ett_gdt_RoutingMessage;
+static int ett_gdt_RegistrationMessage;
+static int ett_gdt_StatsMessage;
+static int ett_gdt_AuthMessage;
+static int ett_gdt_DataRetentionMessage;
+static int ett_gdt_FilterMessage;
+static int ett_gdt_PacketFwdMessage;
+static int ett_gdt_NotifyMessage;
+static int ett_gdt_DataMessage;
+static int ett_gdt_ConfigMessage;
+static int ett_gdt_Parameter;
+static int ett_gdt_T_value;
+static int ett_gdt_Parameters;
+static int ett_gdt_HopInfo;
+static int ett_gdt_GDTMessage;
+static int ett_gdt_EncryptionInfo;
diff --git a/epan/dissectors/packet-gearman.c b/epan/dissectors/packet-gearman.c
index 752b71e5f5..456380286c 100644
--- a/epan/dissectors/packet-gearman.c
+++ b/epan/dissectors/packet-gearman.c
@@ -66,7 +66,7 @@ static gint ett_gearman_content;
static expert_field ei_gearman_pkt_type_unknown;
-static gboolean gearman_desegment = TRUE;
+static bool gearman_desegment = true;
static const int GEARMAN_COMMAND_HEADER_SIZE = 12;
static const int GEARMAN_PORT = 4730;
@@ -81,7 +81,7 @@ static const gchar *GEARMAN_MGR_CMDS[] = {
"version"
};
-static const int GEARMAN_MGR_CMDS_COUNT = sizeof(GEARMAN_MGR_CMDS)/sizeof(GEARMAN_MGR_CMDS[0]);
+static const int GEARMAN_MGR_CMDS_COUNT = array_length(GEARMAN_MGR_CMDS);
typedef enum
{
diff --git a/epan/dissectors/packet-ged125.c b/epan/dissectors/packet-ged125.c
index 8609db75f6..591a6db47b 100644
--- a/epan/dissectors/packet-ged125.c
+++ b/epan/dissectors/packet-ged125.c
@@ -143,7 +143,7 @@ static expert_field ei_ged125_TrunkCount_invalid;
static dissector_handle_t ged125_handle;
/* Preferences */
-static gboolean ged125_desegment_body = TRUE;
+static bool ged125_desegment_body = true;
#define GED125_FAILURE_CONF_VALUE 1
#define GED125_FAILURE_EVENT_VALUE 2
diff --git a/epan/dissectors/packet-geonw.c b/epan/dissectors/packet-geonw.c
index 7ab183ca8d..f99b935977 100644
--- a/epan/dissectors/packet-geonw.c
+++ b/epan/dissectors/packet-geonw.c
@@ -152,7 +152,7 @@ void proto_register_geonw(void);
/*
* Variables
*/
-static wmem_map_t *geonw_hashtable = NULL;
+static wmem_map_t *geonw_hashtable;
static int proto_geonw;
static int proto_btpa;
@@ -455,7 +455,7 @@ static int geonw_name_resolution_len(void);
static geonw_transaction_t *transaction_start(packet_info * pinfo, proto_tree * tree);
static geonw_transaction_t *transaction_end(packet_info * pinfo, proto_tree * tree);
-static gboolean geonw_analyze_seq = TRUE;
+static bool geonw_analyze_seq = true;
/*
* GeoNetworking Address Type
diff --git a/epan/dissectors/packet-giop.c b/epan/dissectors/packet-giop.c
index a01d6c8f63..f43be0c94f 100644
--- a/epan/dissectors/packet-giop.c
+++ b/epan/dissectors/packet-giop.c
@@ -925,7 +925,7 @@ LocateReplyHeader_t;
* DATA - complete_request_list
*/
-static GList *giop_complete_request_list = NULL;
+static GList *giop_complete_request_list;
struct comp_req_list_entry {
guint32 fn; /* frame number */
@@ -954,7 +954,7 @@ struct complete_reply_hash_val {
guint32 mfn; /* matching frame number (request) */
};
-GHashTable *giop_complete_reply_hash = NULL; /* hash */
+GHashTable *giop_complete_reply_hash; /* hash */
/*
* DATA - Module Hash stuff to store data from register_giop_user_module
@@ -977,7 +977,7 @@ struct giop_module_val {
giop_sub_handle_t *subh; /* handle to sub dissector */
};
-GHashTable *giop_module_hash = NULL; /* hash */
+GHashTable *giop_module_hash; /* hash */
/*
@@ -986,7 +986,7 @@ GHashTable *giop_module_hash = NULL; /* hash */
*
*/
-static GSList *giop_sub_list = NULL;
+static GSList *giop_sub_list;
/*
* DATA - Hash stuff to follow request/reply. This is so if we get a REPLY
@@ -1076,7 +1076,7 @@ struct giop_object_val {
ior_src_t src; /* where did Iget this IOR from */
};
-GHashTable *giop_objkey_hash = NULL; /* hash */
+GHashTable *giop_objkey_hash; /* hash */
/*
* Data structure attached to a conversation.
@@ -1089,8 +1089,8 @@ typedef struct giop_conv_info_t {
} giop_conv_info_t;
-static gboolean giop_desegment = TRUE;
-static gboolean giop_reassemble = TRUE;
+static bool giop_desegment = true;
+static bool giop_reassemble = true;
static const char *giop_ior_file = "IOR.txt";
/*
@@ -2505,7 +2505,7 @@ static void dissect_data_for_typecode(tvbuff_t *tvb, packet_info *pinfo, proto_t
*/
static void dissect_typecode_string_param(tvbuff_t *tvb, proto_tree *tree, gint *offset,
- gboolean new_stream_is_big_endian, guint32 new_boundary, int hf_id, const gchar **str ) {
+ bool new_stream_is_big_endian, guint32 new_boundary, int hf_id, const gchar **str ) {
guint32 u_octet4; /* unsigned int32 */
const gchar *buf = NULL; /* ptr to string buffer */
@@ -2524,7 +2524,7 @@ static void dissect_tk_objref_params(tvbuff_t *tvb, proto_tree *tree, gint *offs
gboolean stream_is_big_endian, guint32 boundary) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
/*guint32 seqlen;*/ /* sequence length */
@@ -2552,7 +2552,7 @@ static void dissect_tk_struct_params(tvbuff_t *tvb, packet_info *pinfo, proto_tr
MessageHeader * header, wmem_list_t *params) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
/* parameter count (of tuples) */
guint32 *count = wmem_new0(pinfo->pool, guint32);
@@ -2613,7 +2613,7 @@ static void dissect_tk_union_params(tvbuff_t *tvb, packet_info *pinfo, proto_tre
MessageHeader * header) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
guint32 TCKind; /* TypeCode */
gint32 s_octet4; /* signed int32 */
@@ -2678,7 +2678,7 @@ static void dissect_tk_enum_params(tvbuff_t *tvb, packet_info *pinfo, proto_tree
gboolean stream_is_big_endian, guint32 boundary, wmem_list_t *params) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
guint32 *count = wmem_alloc0(pinfo->pool, sizeof(guint32)); /* parameter count (of tuples) */
/*guint32 seqlen;*/ /* sequence length */
@@ -2724,7 +2724,7 @@ static void dissect_tk_sequence_params(tvbuff_t *tvb, packet_info *pinfo, proto_
MessageHeader * header, wmem_list_t *params) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
guint32 *u_octet4 = wmem_new(pinfo->pool, guint32); /* unsigned int32 */
@@ -2757,7 +2757,7 @@ static void dissect_tk_array_params(tvbuff_t *tvb, packet_info *pinfo, proto_tre
MessageHeader * header, wmem_list_t *params) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
guint32 *u_octet4 = wmem_new(pinfo->pool, guint32); /* unsigned int32 */
@@ -2797,7 +2797,7 @@ static void dissect_tk_alias_params(tvbuff_t *tvb, packet_info *pinfo, proto_tre
MessageHeader * header, wmem_list_t *params) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
/*guint32 seqlen;*/ /* sequence length */
@@ -2833,7 +2833,7 @@ static void dissect_tk_except_params(tvbuff_t *tvb, packet_info *pinfo, proto_tr
MessageHeader * header) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
guint32 count; /* parameter count (of tuples) */
/*guint32 seqlen;*/ /* sequence length */
@@ -2880,7 +2880,7 @@ static void dissect_tk_value_params(tvbuff_t *tvb, packet_info *pinfo, proto_tre
MessageHeader * header) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
gint16 s_octet2; /* signed int16 */
@@ -2941,7 +2941,7 @@ static void dissect_tk_value_box_params(tvbuff_t *tvb, packet_info *pinfo, proto
MessageHeader * header) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
/*guint32 seqlen;*/ /* sequence length */
@@ -2968,7 +2968,7 @@ static void dissect_tk_native_params(tvbuff_t *tvb, proto_tree *tree, gint *offs
gboolean stream_is_big_endian, guint32 boundary) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
/*guint32 seqlen;*/ /* sequence length */
@@ -2994,7 +2994,7 @@ static void dissect_tk_abstract_interface_params(tvbuff_t *tvb, proto_tree *tree
gboolean stream_is_big_endian, guint32 boundary) {
guint32 new_boundary; /* new boundary for encapsulation */
- gboolean new_stream_is_big_endian; /* new endianness for encapsulation */
+ bool new_stream_is_big_endian; /* new endianness for encapsulation */
/*guint32 seqlen;*/ /* sequence length */
@@ -3041,7 +3041,7 @@ static void dissect_tk_abstract_interface_params(tvbuff_t *tvb, proto_tree *tree
guint32 get_CDR_encap_info(tvbuff_t *tvb, proto_tree *tree, gint *offset,
gboolean old_stream_is_big_endian, guint32 old_boundary,
- gboolean *new_stream_is_big_endian_ptr, guint32 *new_boundary_ptr ) {
+ bool *new_stream_is_big_endian_ptr, guint32 *new_boundary_ptr ) {
guint32 seqlen; /* sequence length */
guint8 giop_endianness;
@@ -3212,7 +3212,7 @@ guint32 get_CDR_enum(tvbuff_t *tvb, int *offset, gboolean stream_is_big_endian,
*
*
* As the fixed type could be any size, I will not try to fit it into our
- * simple types like gdouble or glong etc. I will just create a string buffer holding
+ * simple types like double or long etc. I will just create a string buffer holding
* a representation (after scale is applied), and with a decimal point or zero padding
* inserted at the right place if necessary. The string is null terminated
*
@@ -4195,7 +4195,7 @@ static void decode_ServiceContextList(tvbuff_t *tvb, packet_info *pinfo, proto_t
guint32 i;
guint32 vscid; /* Vendor Service context id */
guint32 scid;
- gboolean encapsulation_is_be;
+ bool encapsulation_is_be;
guint32 encapsulation_boundary;
int temp_offset;
int start_offset = *offset;
@@ -6006,7 +6006,7 @@ static void decode_TaggedProfile(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
guint32 pidtag; /* profile ID TAG */
const guint8 *profile_data; /* profile_data pointer */
guint32 new_boundary; /* for encapsulations encountered */
- gboolean new_big_endianness; /* for encapsulations encountered */
+ bool new_big_endianness; /* for encapsulations encountered */
proto_item *ti;
/* Get ProfileId tag */
diff --git a/epan/dissectors/packet-giop.h b/epan/dissectors/packet-giop.h
index 00d2cf4b96..e3c0057d68 100644
--- a/epan/dissectors/packet-giop.h
+++ b/epan/dissectors/packet-giop.h
@@ -231,7 +231,7 @@ WS_DLL_PUBLIC guint32 get_CDR_enum(tvbuff_t *tvb, int *offset,
*
*
* As the fixed type could be any size, I will not try to fit it into our
- * simple types like gdouble or glong etc. I will just create a string buffer holding
+ * simple types like double or long etc. I will just create a string buffer holding
* a representation (after scale is applied), and with a decimal point or zero padding
* inserted at the right place if necessary. The string is null terminated
*
@@ -297,18 +297,11 @@ WS_DLL_PUBLIC gint32 get_CDR_long(tvbuff_t *tvb, int *offset,
* have been processed.
*/
-#ifdef G_HAVE_GLONG_DOUBLE
-
-WS_DLL_PUBLIC glong_double get_CDR_long_double(tvbuff_t *tvb, int *offset,
- gboolean stream_is_big_endian, int boundary);
-#else
-
/* FIX -- Cast long double to gdouble until I figure this out -- FS*/
WS_DLL_PUBLIC gdouble get_CDR_long_double(tvbuff_t *tvb, int *offset,
gboolean stream_is_big_endian, int boundary);
-#endif
/* Copy an 8 octet sequence from the tvbuff
@@ -515,7 +508,7 @@ WS_DLL_PUBLIC gboolean is_big_endian (MessageHeader * header);
WS_DLL_PUBLIC guint32 get_CDR_encap_info(tvbuff_t *tvb, proto_tree *tree, gint *offset,
gboolean old_stream_is_big_endian, guint32 old_boundary,
- gboolean *new_stream_is_big_endian_ptr, guint32 *new_boundary_ptr );
+ bool *new_stream_is_big_endian_ptr, guint32 *new_boundary_ptr );
/* Take in an array of guint8 and create a new ephemeral string.
* Replace non-printable characters with periods.
diff --git a/epan/dissectors/packet-git.c b/epan/dissectors/packet-git.c
index 9b9f5d41c3..de9f9b5ad0 100644
--- a/epan/dissectors/packet-git.c
+++ b/epan/dissectors/packet-git.c
@@ -73,7 +73,7 @@ static const value_string sideband_vals[] = {
};
/* desegmentation of Git over TCP */
-static gboolean git_desegment = TRUE;
+static bool git_desegment = true;
static gboolean get_packet_length(tvbuff_t *tvb, int offset,
guint16 *length)
diff --git a/epan/dissectors/packet-glow.c b/epan/dissectors/packet-glow.c
index 562a60826b..0946200787 100644
--- a/epan/dissectors/packet-glow.c
+++ b/epan/dissectors/packet-glow.c
@@ -27,7 +27,7 @@
void proto_register_glow(void);
-static dissector_handle_t glow_handle=NULL;
+static dissector_handle_t glow_handle;
static int proto_glow;
static int hf_glow_Root_PDU; /* Root */
@@ -128,48 +128,48 @@ static int hf_glow_qualifiedTemplate; /* QualifiedTemplate */
/* Initialize the subtree pointers */
static int ett_glow;
-static gint ett_glow_Template_U;
-static gint ett_glow_QualifiedTemplate_U;
-static gint ett_glow_TemplateElement;
-static gint ett_glow_Parameter_U;
-static gint ett_glow_QualifiedParameter_U;
-static gint ett_glow_ParameterContents;
-static gint ett_glow_Value;
-static gint ett_glow_MinMax;
-static gint ett_glow_StringIntegerPair_U;
-static gint ett_glow_SEQUENCE_OF_StringIntegerPair;
-static gint ett_glow_StreamDescription_U;
-static gint ett_glow_Command_U;
-static gint ett_glow_T_options;
-static gint ett_glow_Node_U;
-static gint ett_glow_QualifiedNode_U;
-static gint ett_glow_NodeContents;
-static gint ett_glow_Matrix_U;
-static gint ett_glow_MatrixContents;
-static gint ett_glow_ParametersLocation;
-static gint ett_glow_LabelCollection;
-static gint ett_glow_Label_U;
-static gint ett_glow_TargetCollection;
-static gint ett_glow_Signal;
-static gint ett_glow_SourceCollection;
-static gint ett_glow_ConnectionCollection;
-static gint ett_glow_Connection_U;
-static gint ett_glow_QualifiedMatrix_U;
-static gint ett_glow_Function_U;
-static gint ett_glow_QualifiedFunction_U;
-static gint ett_glow_FunctionContents;
-static gint ett_glow_TupleDescription;
-static gint ett_glow_TupleItemDescription_U;
-static gint ett_glow_Invocation_U;
-static gint ett_glow_Tuple;
-static gint ett_glow_InvocationResult_U;
-static gint ett_glow_SEQUENCE_OF_Element;
-static gint ett_glow_Element;
-static gint ett_glow_StreamEntry_U;
-static gint ett_glow_SEQUENCE_OF_StreamEntry;
-static gint ett_glow_Root_U;
-static gint ett_glow_SEQUENCE_OF_RootElement;
-static gint ett_glow_RootElement;
+static int ett_glow_Template_U;
+static int ett_glow_QualifiedTemplate_U;
+static int ett_glow_TemplateElement;
+static int ett_glow_Parameter_U;
+static int ett_glow_QualifiedParameter_U;
+static int ett_glow_ParameterContents;
+static int ett_glow_Value;
+static int ett_glow_MinMax;
+static int ett_glow_StringIntegerPair_U;
+static int ett_glow_SEQUENCE_OF_StringIntegerPair;
+static int ett_glow_StreamDescription_U;
+static int ett_glow_Command_U;
+static int ett_glow_T_options;
+static int ett_glow_Node_U;
+static int ett_glow_QualifiedNode_U;
+static int ett_glow_NodeContents;
+static int ett_glow_Matrix_U;
+static int ett_glow_MatrixContents;
+static int ett_glow_ParametersLocation;
+static int ett_glow_LabelCollection;
+static int ett_glow_Label_U;
+static int ett_glow_TargetCollection;
+static int ett_glow_Signal;
+static int ett_glow_SourceCollection;
+static int ett_glow_ConnectionCollection;
+static int ett_glow_Connection_U;
+static int ett_glow_QualifiedMatrix_U;
+static int ett_glow_Function_U;
+static int ett_glow_QualifiedFunction_U;
+static int ett_glow_FunctionContents;
+static int ett_glow_TupleDescription;
+static int ett_glow_TupleItemDescription_U;
+static int ett_glow_Invocation_U;
+static int ett_glow_Tuple;
+static int ett_glow_InvocationResult_U;
+static int ett_glow_SEQUENCE_OF_Element;
+static int ett_glow_Element;
+static int ett_glow_StreamEntry_U;
+static int ett_glow_SEQUENCE_OF_StreamEntry;
+static int ett_glow_Root_U;
+static int ett_glow_SEQUENCE_OF_RootElement;
+static int ett_glow_RootElement;
/*--- Cyclic dependencies ---*/
@@ -1085,7 +1085,7 @@ dissect_glow_SEQUENCE_OF_Element(bool implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_glow_ElementCollection(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // ElementCollection → ElementCollection/_untag → Element → Node → Node/_untag → ElementCollection
+ // ElementCollection -> ElementCollection/_untag -> Element -> Node -> Node/_untag -> ElementCollection
actx->pinfo->dissection_depth += 5;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1116,7 +1116,7 @@ dissect_glow_Parameter_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static int
dissect_glow_Parameter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Parameter → Parameter/_untag → ElementCollection → ElementCollection/_untag → Element → Parameter
+ // Parameter -> Parameter/_untag -> ElementCollection -> ElementCollection/_untag -> Element -> Parameter
actx->pinfo->dissection_depth += 5;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
@@ -1173,7 +1173,7 @@ dissect_glow_Template_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
dissect_glow_Template(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Template → Template/_untag → TemplateElement → Parameter → Parameter/_untag → ElementCollection → ElementCollection/_untag → Element → Template
+ // Template -> Template/_untag -> TemplateElement -> Parameter -> Parameter/_untag -> ElementCollection -> ElementCollection/_untag -> Element -> Template
actx->pinfo->dissection_depth += 8;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-gmhdr.c b/epan/dissectors/packet-gmhdr.c
index 1aa9385f9d..6716294b36 100644
--- a/epan/dissectors/packet-gmhdr.c
+++ b/epan/dissectors/packet-gmhdr.c
@@ -89,9 +89,9 @@ static const value_string gmhdr_plfm_str[] = {
static dissector_handle_t ethertype_handle;
-static gboolean gmhdr_summary_in_tree = TRUE;
-static gboolean gmtrailer_summary_in_tree = TRUE;
-static gboolean gmhdr_decode_timestamp_trailer = TRUE;
+static bool gmhdr_summary_in_tree = true;
+static bool gmtrailer_summary_in_tree = true;
+static bool gmhdr_decode_timestamp_trailer = true;
static int proto_gmhdr;
static int proto_gmtrailer;
diff --git a/epan/dissectors/packet-gmr1_bcch.c b/epan/dissectors/packet-gmr1_bcch.c
index ae154ed8a8..8a4a4db286 100644
--- a/epan/dissectors/packet-gmr1_bcch.c
+++ b/epan/dissectors/packet-gmr1_bcch.c
@@ -912,7 +912,7 @@ static const
CSN_DESCR_BEGIN(SystemInformation1_t)
M_TYPE_LABEL (SystemInformation1_t, Block_Header, SI1_Block_Header_t, "Block Header"),
M_TYPE_LABEL (SystemInformation1_t, Segment1A, Segment1A_t, "Segment 1A"),
- M_CHOICE_IL (SystemInformation1_t, SegmentType, SI1_SegmentChoice, ElementsOf(SI1_SegmentChoice), &hf_si1_segment_choice),
+ M_CHOICE_IL (SystemInformation1_t, SegmentType, SI1_SegmentChoice, array_length(SI1_SegmentChoice), &hf_si1_segment_choice),
CSN_DESCR_END (SystemInformation1_t)
/* System Information type 2 - [1] 10.1.32 */
@@ -938,7 +938,7 @@ CSN_ChoiceElement_t SI2_SegmentChoice[] =
static const
CSN_DESCR_BEGIN(SystemInformation2_t)
M_TYPE_LABEL (SystemInformation2_t, Block_Header, SI2_Block_Header_t, "Block Header"),
- M_CHOICE_IL (SystemInformation2_t, SegmentType, SI2_SegmentChoice, ElementsOf(SI2_SegmentChoice), &hf_si1_segment_choice),
+ M_CHOICE_IL (SystemInformation2_t, SegmentType, SI2_SegmentChoice, array_length(SI2_SegmentChoice), &hf_si1_segment_choice),
CSN_DESCR_END (SystemInformation2_t)
diff --git a/epan/dissectors/packet-goose.c b/epan/dissectors/packet-goose.c
index 7f9b124796..cb9129b594 100644
--- a/epan/dissectors/packet-goose.c
+++ b/epan/dissectors/packet-goose.c
@@ -163,23 +163,23 @@ static int ett_goose;
static int ett_reserve1;
static int ett_expert_inf_sim;
-static gint ett_goose_GOOSEpdu;
-static gint ett_goose_GSEMngtPdu;
-static gint ett_goose_RequestResponse;
-static gint ett_goose_GSEMngtRequests;
-static gint ett_goose_GSEMngtResponses;
-static gint ett_goose_GetReferenceRequestPdu;
-static gint ett_goose_T_getReferenceRequest_offset;
-static gint ett_goose_GetElementRequestPdu;
-static gint ett_goose_T_references;
-static gint ett_goose_GSEMngtResponsePdu;
-static gint ett_goose_PositiveNegative;
-static gint ett_goose_T_responsePositive;
-static gint ett_goose_SEQUENCE_OF_RequestResults;
-static gint ett_goose_RequestResults;
-static gint ett_goose_IECGoosePdu;
-static gint ett_goose_SEQUENCE_OF_Data;
-static gint ett_goose_Data;
+static int ett_goose_GOOSEpdu;
+static int ett_goose_GSEMngtPdu;
+static int ett_goose_RequestResponse;
+static int ett_goose_GSEMngtRequests;
+static int ett_goose_GSEMngtResponses;
+static int ett_goose_GetReferenceRequestPdu;
+static int ett_goose_T_getReferenceRequest_offset;
+static int ett_goose_GetElementRequestPdu;
+static int ett_goose_T_references;
+static int ett_goose_GSEMngtResponsePdu;
+static int ett_goose_PositiveNegative;
+static int ett_goose_T_responsePositive;
+static int ett_goose_SEQUENCE_OF_RequestResults;
+static int ett_goose_RequestResults;
+static int ett_goose_IECGoosePdu;
+static int ett_goose_SEQUENCE_OF_Data;
+static int ett_goose_Data;
/*--- Cyclic dependencies ---*/
@@ -710,7 +710,7 @@ static const ber_choice_t Data_choice[] = {
static int
dissect_goose_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Data → Data/array → Data
+ // Data -> Data/array -> Data
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -764,7 +764,7 @@ dissect_goose_GOOSEpdu(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
}
-static dissector_handle_t goose_handle = NULL;
+static dissector_handle_t goose_handle;
#define OSI_SPDU_TUNNELED 0xA0 /* Tunneled */
diff --git a/epan/dissectors/packet-gopher.c b/epan/dissectors/packet-gopher.c
index c53ecfe8f2..80b861f80b 100644
--- a/epan/dissectors/packet-gopher.c
+++ b/epan/dissectors/packet-gopher.c
@@ -65,7 +65,7 @@ static const value_string item_types[] = {
#define TCP_DEFAULT_RANGE "70"
-static range_t *gopher_tcp_range = NULL;
+static range_t *gopher_tcp_range;
/* Returns TRUE if the packet is from a client */
static gboolean
diff --git a/epan/dissectors/packet-gprs-llc.c b/epan/dissectors/packet-gprs-llc.c
index 73778eee3f..f23a2ba7d5 100644
--- a/epan/dissectors/packet-gprs-llc.c
+++ b/epan/dissectors/packet-gprs-llc.c
@@ -116,7 +116,7 @@ static expert_field ei_llcgprs_no_info_field;
static dissector_handle_t sndcp_xid_handle;
static dissector_handle_t gprs_llc_handle;
-static gboolean ignore_cipher_bit = FALSE;
+static bool ignore_cipher_bit;
static dissector_table_t llcgprs_subdissector_table;
diff --git a/epan/dissectors/packet-gprscdr.c b/epan/dissectors/packet-gprscdr.c
index 8bc1bc1381..ac4e0bea0f 100644
--- a/epan/dissectors/packet-gprscdr.c
+++ b/epan/dissectors/packet-gprscdr.c
@@ -533,112 +533,112 @@ static int ett_gprscdr_pdp_pdn_type;
static int ett_gprscdr_eps_qos_arp;
static int ett_gprscdr_managementextension_information;
static int ett_gprscdr_userlocationinformation;
-static gint ett_gprscdr_Diagnostics;
-static gint ett_gprscdr_Ecgi;
-static gint ett_gprscdr_EnhancedDiagnostics;
-static gint ett_gprscdr_SEQUENCE_OF_RANNASCause;
-static gint ett_gprscdr_InvolvedParty;
-static gint ett_gprscdr_IPAddress;
-static gint ett_gprscdr_IPBinaryAddress;
-static gint ett_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength;
-static gint ett_gprscdr_IPBinV6AddressWithPrefixLength;
-static gint ett_gprscdr_IPTextRepresentedAddress;
-static gint ett_gprscdr_LCSClientIdentity;
-static gint ett_gprscdr_LevelOfCAMELService;
-static gint ett_gprscdr_LocationAreaAndCell;
-static gint ett_gprscdr_ManagementExtensions;
-static gint ett_gprscdr_MBMSInformation;
-static gint ett_gprscdr_Ncgi;
-static gint ett_gprscdr_PDPAddress;
-static gint ett_gprscdr_PSCellInformation;
-static gint ett_gprscdr_SCSASAddress;
-static gint ett_gprscdr_ServiceSpecificInfo;
-static gint ett_gprscdr_SubscriptionID;
-static gint ett_gprscdr_ManagementExtension;
-static gint ett_gprscdr_GPRSCallEventRecord;
-static gint ett_gprscdr_GGSNPDPRecord;
-static gint ett_gprscdr_SEQUENCE_OF_GSNAddress;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651;
-static gint ett_gprscdr_GGSNPDPRecordV750;
-static gint ett_gprscdr_EGSNPDPRecord;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651;
-static gint ett_gprscdr_EGSNPDPRecordV750;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750;
-static gint ett_gprscdr_SGSNPDPRecordV651;
-static gint ett_gprscdr_SGSNSMORecordV651;
-static gint ett_gprscdr_SGSNSMTRecordV651;
-static gint ett_gprscdr_ChangeOfCharConditionV651;
-static gint ett_gprscdr_ChangeOfServiceConditionV651;
-static gint ett_gprscdr_ChangeOfServiceConditionV750;
-static gint ett_gprscdr_SEQUENCE_OF_AFRecordInformation;
-static gint ett_gprscdr_ServiceConditionChangeV651;
-static gint ett_gprscdr_ServiceConditionChangeV750;
-static gint ett_gprscdr_GPRSRecord;
-static gint ett_gprscdr_SGWRecord;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition;
-static gint ett_gprscdr_SEQUENCE_OF_ServingNodeType;
-static gint ett_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport;
-static gint ett_gprscdr_PGWRecord;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition;
-static gint ett_gprscdr_TDFRecord;
-static gint ett_gprscdr_IPERecord;
-static gint ett_gprscdr_EPDGRecord;
-static gint ett_gprscdr_TWAGRecord;
-static gint ett_gprscdr_SGSNMMRecord;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeLocation;
-static gint ett_gprscdr_SGSNPDPRecord;
-static gint ett_gprscdr_SGSNSMORecord;
-static gint ett_gprscdr_SGSNSMTRecord;
-static gint ett_gprscdr_SGSNMTLCSRecord;
-static gint ett_gprscdr_SGSNMOLCSRecord;
-static gint ett_gprscdr_SGSNNILCSRecord;
-static gint ett_gprscdr_SGSNMBMSRecord;
-static gint ett_gprscdr_SEQUENCE_OF_RAIdentity;
-static gint ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition;
-static gint ett_gprscdr_GGSNMBMSRecord;
-static gint ett_gprscdr_GWMBMSRecord;
-static gint ett_gprscdr_AccessLineIdentifier;
-static gint ett_gprscdr_AFRecordInformation;
-static gint ett_gprscdr_APNRateControl;
-static gint ett_gprscdr_APNRateControlParameters;
-static gint ett_gprscdr_CalleePartyInformation;
-static gint ett_gprscdr_SEQUENCE_OF_InvolvedParty;
-static gint ett_gprscdr_CAMELInformationMM;
-static gint ett_gprscdr_CAMELInformationPDP;
-static gint ett_gprscdr_CAMELInformationSMS;
-static gint ett_gprscdr_ChangeOfCharCondition;
-static gint ett_gprscdr_SEQUENCE_OF_PresenceReportingAreaInfo;
-static gint ett_gprscdr_ChangeOfMBMSCondition;
-static gint ett_gprscdr_ChangeOfServiceCondition;
-static gint ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo;
-static gint ett_gprscdr_ChangeLocation;
-static gint ett_gprscdr_EPCQoSInformation;
-static gint ett_gprscdr_EventBasedChargingInformation;
-static gint ett_gprscdr_SEQUENCE_OF_TimeStamp;
-static gint ett_gprscdr_FixedUserLocationInformation;
-static gint ett_gprscdr_Flows;
-static gint ett_gprscdr_T_flowNumber;
-static gint ett_gprscdr_MOExceptionDataCounter;
-static gint ett_gprscdr_PresenceReportingAreaInfo;
-static gint ett_gprscdr_PresenceReportingAreaNode;
-static gint ett_gprscdr_PSFurnishChargingInformation;
-static gint ett_gprscdr_RANSecondaryRATUsageReport;
-static gint ett_gprscdr_RelatedChangeOfCharCondition;
-static gint ett_gprscdr_RelatedChangeOfServiceCondition;
-static gint ett_gprscdr_ServiceConditionChange;
-static gint ett_gprscdr_ServingPLMNRateControl;
-static gint ett_gprscdr_TimeQuotaMechanism;
-static gint ett_gprscdr_TWANUserLocationInfo;
-static gint ett_gprscdr_UserCSGInformation;
-static gint ett_gprscdr_UWANUserLocationInfo;
-static gint ett_gprscdr_VoLTEInformation;
-static gint ett_gprscdr_WLANOperatorId;
+static int ett_gprscdr_Diagnostics;
+static int ett_gprscdr_Ecgi;
+static int ett_gprscdr_EnhancedDiagnostics;
+static int ett_gprscdr_SEQUENCE_OF_RANNASCause;
+static int ett_gprscdr_InvolvedParty;
+static int ett_gprscdr_IPAddress;
+static int ett_gprscdr_IPBinaryAddress;
+static int ett_gprscdr_IPBinV6AddressWithOrWithoutPrefixLength;
+static int ett_gprscdr_IPBinV6AddressWithPrefixLength;
+static int ett_gprscdr_IPTextRepresentedAddress;
+static int ett_gprscdr_LCSClientIdentity;
+static int ett_gprscdr_LevelOfCAMELService;
+static int ett_gprscdr_LocationAreaAndCell;
+static int ett_gprscdr_ManagementExtensions;
+static int ett_gprscdr_MBMSInformation;
+static int ett_gprscdr_Ncgi;
+static int ett_gprscdr_PDPAddress;
+static int ett_gprscdr_PSCellInformation;
+static int ett_gprscdr_SCSASAddress;
+static int ett_gprscdr_ServiceSpecificInfo;
+static int ett_gprscdr_SubscriptionID;
+static int ett_gprscdr_ManagementExtension;
+static int ett_gprscdr_GPRSCallEventRecord;
+static int ett_gprscdr_GGSNPDPRecord;
+static int ett_gprscdr_SEQUENCE_OF_GSNAddress;
+static int ett_gprscdr_SEQUENCE_OF_ChangeOfCharConditionV651;
+static int ett_gprscdr_GGSNPDPRecordV750;
+static int ett_gprscdr_EGSNPDPRecord;
+static int ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV651;
+static int ett_gprscdr_EGSNPDPRecordV750;
+static int ett_gprscdr_SEQUENCE_OF_ChangeOfServiceConditionV750;
+static int ett_gprscdr_SGSNPDPRecordV651;
+static int ett_gprscdr_SGSNSMORecordV651;
+static int ett_gprscdr_SGSNSMTRecordV651;
+static int ett_gprscdr_ChangeOfCharConditionV651;
+static int ett_gprscdr_ChangeOfServiceConditionV651;
+static int ett_gprscdr_ChangeOfServiceConditionV750;
+static int ett_gprscdr_SEQUENCE_OF_AFRecordInformation;
+static int ett_gprscdr_ServiceConditionChangeV651;
+static int ett_gprscdr_ServiceConditionChangeV750;
+static int ett_gprscdr_GPRSRecord;
+static int ett_gprscdr_SGWRecord;
+static int ett_gprscdr_SEQUENCE_OF_ChangeOfCharCondition;
+static int ett_gprscdr_SEQUENCE_OF_ServingNodeType;
+static int ett_gprscdr_SEQUENCE_OF_RANSecondaryRATUsageReport;
+static int ett_gprscdr_PGWRecord;
+static int ett_gprscdr_SEQUENCE_OF_ChangeOfServiceCondition;
+static int ett_gprscdr_TDFRecord;
+static int ett_gprscdr_IPERecord;
+static int ett_gprscdr_EPDGRecord;
+static int ett_gprscdr_TWAGRecord;
+static int ett_gprscdr_SGSNMMRecord;
+static int ett_gprscdr_SEQUENCE_OF_ChangeLocation;
+static int ett_gprscdr_SGSNPDPRecord;
+static int ett_gprscdr_SGSNSMORecord;
+static int ett_gprscdr_SGSNSMTRecord;
+static int ett_gprscdr_SGSNMTLCSRecord;
+static int ett_gprscdr_SGSNMOLCSRecord;
+static int ett_gprscdr_SGSNNILCSRecord;
+static int ett_gprscdr_SGSNMBMSRecord;
+static int ett_gprscdr_SEQUENCE_OF_RAIdentity;
+static int ett_gprscdr_SEQUENCE_OF_ChangeOfMBMSCondition;
+static int ett_gprscdr_GGSNMBMSRecord;
+static int ett_gprscdr_GWMBMSRecord;
+static int ett_gprscdr_AccessLineIdentifier;
+static int ett_gprscdr_AFRecordInformation;
+static int ett_gprscdr_APNRateControl;
+static int ett_gprscdr_APNRateControlParameters;
+static int ett_gprscdr_CalleePartyInformation;
+static int ett_gprscdr_SEQUENCE_OF_InvolvedParty;
+static int ett_gprscdr_CAMELInformationMM;
+static int ett_gprscdr_CAMELInformationPDP;
+static int ett_gprscdr_CAMELInformationSMS;
+static int ett_gprscdr_ChangeOfCharCondition;
+static int ett_gprscdr_SEQUENCE_OF_PresenceReportingAreaInfo;
+static int ett_gprscdr_ChangeOfMBMSCondition;
+static int ett_gprscdr_ChangeOfServiceCondition;
+static int ett_gprscdr_SEQUENCE_OF_ServiceSpecificInfo;
+static int ett_gprscdr_ChangeLocation;
+static int ett_gprscdr_EPCQoSInformation;
+static int ett_gprscdr_EventBasedChargingInformation;
+static int ett_gprscdr_SEQUENCE_OF_TimeStamp;
+static int ett_gprscdr_FixedUserLocationInformation;
+static int ett_gprscdr_Flows;
+static int ett_gprscdr_T_flowNumber;
+static int ett_gprscdr_MOExceptionDataCounter;
+static int ett_gprscdr_PresenceReportingAreaInfo;
+static int ett_gprscdr_PresenceReportingAreaNode;
+static int ett_gprscdr_PSFurnishChargingInformation;
+static int ett_gprscdr_RANSecondaryRATUsageReport;
+static int ett_gprscdr_RelatedChangeOfCharCondition;
+static int ett_gprscdr_RelatedChangeOfServiceCondition;
+static int ett_gprscdr_ServiceConditionChange;
+static int ett_gprscdr_ServingPLMNRateControl;
+static int ett_gprscdr_TimeQuotaMechanism;
+static int ett_gprscdr_TWANUserLocationInfo;
+static int ett_gprscdr_UserCSGInformation;
+static int ett_gprscdr_UWANUserLocationInfo;
+static int ett_gprscdr_VoLTEInformation;
+static int ett_gprscdr_WLANOperatorId;
static expert_field ei_gprscdr_not_dissected;
static expert_field ei_gprscdr_choice_not_found;
/* Global variables */
-static const char *obj_id = NULL;
+static const char *obj_id;
static const value_string gprscdr_daylight_saving_time_vals[] = {
{0, "No adjustment"},
diff --git a/epan/dissectors/packet-gquic.c b/epan/dissectors/packet-gquic.c
index 7aa430e4d4..fa7a3f0e6f 100644
--- a/epan/dissectors/packet-gquic.c
+++ b/epan/dissectors/packet-gquic.c
@@ -189,7 +189,7 @@ static int hf_gquic_stream_data;
static int hf_gquic_payload;
#define QUIC_PORT_RANGE "80,443"
-static gboolean g_gquic_debug = FALSE;
+static bool g_gquic_debug;
static gint ett_gquic;
static gint ett_gquic_puflags;
@@ -1435,6 +1435,7 @@ dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, gui
proto_tree_add_item(tag_tree, hf_gquic_tag_value, tvb, tag_offset_start + tag_offset, tag_len, ENC_NA);
+ increment_dissection_depth(pinfo);
switch(tag){
case TAG_PAD:
proto_tree_add_item(tag_tree, hf_gquic_tag_pad, tvb, tag_offset_start + tag_offset, tag_len, ENC_NA);
@@ -1491,7 +1492,6 @@ dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, gui
scfg_tag_number = tvb_get_guint32(tvb, tag_offset_start + tag_offset, ENC_LITTLE_ENDIAN);
tag_offset += 4;
- // We recurse here, but we're limited by tree depth checks in epan
dissect_gquic_tag(tvb, pinfo, tag_tree, tag_offset_start + tag_offset, scfg_tag_number);
tag_offset += tag_len - 4 - 4;
}
@@ -1714,6 +1714,8 @@ dissect_gquic_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tree, gui
tag_offset += tag_len;
break;
}
+ decrement_dissection_depth(pinfo);
+
if(tag_offset != offset_end){
/* Wrong Tag len... */
proto_tree_add_expert(tag_tree, pinfo, &ei_gquic_tag_unknown, tvb, tag_offset_start + tag_offset, tag_len);
diff --git a/epan/dissectors/packet-gre.c b/epan/dissectors/packet-gre.c
index 4f9b08e9a5..8309bf28e2 100644
--- a/epan/dissectors/packet-gre.c
+++ b/epan/dissectors/packet-gre.c
@@ -303,7 +303,7 @@ dissect_gre_wccp2_redirect_header(tvbuff_t *tvb, int offset, proto_tree *tree)
proto_tree_add_item(rh_tree, hf_gre_wccp_primary_bucket, tvb, offset +3, 1, ENC_BIG_ENDIAN);
}
-static gboolean
+static bool
capture_gre(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_gre);
diff --git a/epan/dissectors/packet-grpc.c b/epan/dissectors/packet-grpc.c
index fba6c0ea42..2006b464be 100644
--- a/epan/dissectors/packet-grpc.c
+++ b/epan/dissectors/packet-grpc.c
@@ -80,13 +80,13 @@
#ifdef HAVE_ZLIB
static gboolean grpc_decompress_body = TRUE;
#else
-static gboolean grpc_decompress_body = FALSE;
+static gboolean grpc_decompress_body;
#endif
/* detect json automatically */
-static gboolean grpc_detect_json_automatically = TRUE;
+static bool grpc_detect_json_automatically = true;
/* whether embed GRPC messages under HTTP2 (or other) protocol tree items */
-static gboolean grpc_embedded_under_http2 = FALSE;
+static bool grpc_embedded_under_http2;
void proto_register_grpc(void);
void proto_reg_handoff_grpc(void);
diff --git a/epan/dissectors/packet-gsm_a_bssmap.c b/epan/dissectors/packet-gsm_a_bssmap.c
index 0493b1419a..b192fec0aa 100644
--- a/epan/dissectors/packet-gsm_a_bssmap.c
+++ b/epan/dissectors/packet-gsm_a_bssmap.c
@@ -796,7 +796,7 @@ static gint ett_dlci;
static gint ett_codec_lst;
static gint ett_bss_to_bss_info;
-static dissector_handle_t gsm_bsslap_handle = NULL;
+static dissector_handle_t gsm_bsslap_handle;
static dissector_handle_t dtap_handle;
static dissector_handle_t bssgp_handle;
static dissector_handle_t rrc_handle;
@@ -1091,7 +1091,7 @@ be_cic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset,
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.3 Connection Release Requested
@@ -1122,7 +1122,7 @@ be_res_avail(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
}
- return(len);
+ return len;
}
/*
* [2] 3.2.2.5 Cause
@@ -1268,7 +1268,7 @@ bssmap_dissect_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint3
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.6 IMSI
@@ -1301,7 +1301,7 @@ be_tmsi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, gui
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -1319,7 +1319,7 @@ be_num_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offse
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* [2] 3.2.2.9 Layer 3 Header Information
@@ -1344,7 +1344,7 @@ be_l3_header_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 o
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -1375,7 +1375,7 @@ be_enc_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -1645,7 +1645,7 @@ be_chan_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.12 Periodicity
@@ -1659,7 +1659,7 @@ be_periodicity(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_a_bssmap_periodicity, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.13 Extended Resource Indicator
@@ -1685,7 +1685,7 @@ be_ext_res_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.14 Total Resource Accessible
@@ -1705,7 +1705,7 @@ be_tot_res_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
/*curr_offset+=2;*/
- return(len);
+ return len;
}
/*
* 3.2.2.15 LSA Identifier
@@ -1728,7 +1728,7 @@ be_lsa_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offse
/*curr_offset+=3;*/
- return(len);
+ return len;
}
@@ -1753,7 +1753,7 @@ be_lsa_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset+=3;
}
- return(len);
+ return len;
}
/*
* [2] 3.2.2.17 Cell Identifier
@@ -1887,7 +1887,7 @@ be_cell_id_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
break;
}
- return(curr_offset - offset);
+ return curr_offset-offset;
}
guint16
@@ -1920,7 +1920,7 @@ be_cell_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -1967,7 +1967,7 @@ be_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset,
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.19 Classmark Information Type 2
@@ -1998,7 +1998,7 @@ be_int_band(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.22 RR Cause
@@ -2039,7 +2039,7 @@ be_lsa_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
curr_offset+=3;
}
- return(len);
+ return len;
}
/*
* [2] 3.2.2.24 Layer 3 Information
@@ -2106,7 +2106,7 @@ be_l3_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2135,7 +2135,7 @@ be_dlci(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset,
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2152,7 +2152,7 @@ be_down_dtx_flag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2215,7 +2215,7 @@ be_cell_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.27a Cell Identifier List Segment
@@ -2253,7 +2253,7 @@ be_cell_id_list_seg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len-2);
- return(len);
+ return len;
}
/*
@@ -2274,7 +2274,7 @@ be_cell_id_lst_seg_f_est_cells(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len-1);
- return(len);
+ return len;
}
/*
* 3.2.2.27c Cell Identifier List Segment for cells to be established
@@ -2294,7 +2294,7 @@ be_cell_id_lst_seg_f_cell_tb_est(tvbuff_t *tvb, proto_tree *tree, packet_info *p
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len-1);
- return(len);
+ return len;
}
/*
* 3.2.2.27d (void)
@@ -2317,7 +2317,7 @@ be_cell_id_lst_seg_f_rel_cell(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len-1);
- return(len);
+ return len;
}
/*
* 3.2.2.27f Cell Identifier List Segment for not established cells - no establishment possible
@@ -2337,7 +2337,7 @@ be_cell_id_lst_seg_f_not_est_cell(tvbuff_t *tvb, proto_tree *tree, packet_info *
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len-1);
- return(len);
+ return len;
}
/*
* 3.2.2.28 Response Request
@@ -2365,7 +2365,7 @@ be_res_ind_method(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_item(tree, hf_gsm_a_bssap_res_ind_method, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(len);
+ return len;
}
/*
@@ -2386,7 +2386,7 @@ be_cic_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
proto_tree_add_item(tree, hf_gsm_a_bssap_cic_list_range, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_bssap_cic_list_status, tvb, (curr_offset+1), (len-1), ENC_NA);
- return(len);
+ return len;
}
/*
* 3.2.2.32 Diagnostics
@@ -2403,7 +2403,7 @@ be_diag(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset,
NO_MORE_DATA_CHECK(len);
proto_tree_add_item(tree, hf_gsm_a_bssap_diag_msg_rcv, tvb, curr_offset, (len-2), ENC_NA);
- return(len);
+ return len;
}
/*
* [2] 3.2.2.33 Chosen Channel
@@ -2483,7 +2483,7 @@ be_chosen_chan(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2501,7 +2501,7 @@ be_ciph_resp_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -2532,13 +2532,13 @@ be_l3_msg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, g
if(word==0x1709){
/* start the dissection from byte 3 */
de_mid(l3_tvb, tree, pinfo, 2, 9, NULL, 0);
- return(len);
+ return len;
}
/* Octet j (j = 3, 4, ..., n) is the unchanged octet j of a radio interface layer 3 message
* as defined in 3GPP TS 24.008, n is equal to the length of that radio interface layer 3 message. */
call_dissector(dtap_handle, l3_tvb, pinfo, g_tree);
- return(len);
+ return len;
}
/*
@@ -2556,7 +2556,7 @@ be_cha_needed(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.37 Trace Type
@@ -2585,7 +2585,7 @@ be_trace_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2603,7 +2603,7 @@ be_trace_trigger_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.2.39 Trace Reference */
@@ -2620,7 +2620,7 @@ be_trace_reference(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.2.40 TransactionID */
static guint16
@@ -2644,7 +2644,7 @@ be_trace_transaction_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.41 Mobile Identity (IMSI, IMEISV or IMEI as coded in 3GPP TS 24.008)
@@ -2666,7 +2666,7 @@ be_trace_omc_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* [2] 3.2.2.43 Forward Indicator
@@ -2690,7 +2690,7 @@ be_for_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offs
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2727,7 +2727,7 @@ be_chosen_enc_alg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2765,7 +2765,7 @@ be_cct_pool(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.46 Circuit Pool List
@@ -2791,7 +2791,7 @@ be_curr_chan_1(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2811,7 +2811,7 @@ be_que_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offs
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -2878,7 +2878,7 @@ be_speech_ver(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.52 Assignment Requirement
@@ -2963,7 +2963,7 @@ be_conf_evo_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_a_bssmap_smi, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.58 Old BSS to New BSS information
@@ -3018,7 +3018,7 @@ be_lcs_prio(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
proto_tree_add_item(tree, hf_gsm_a_bssmap_lcs_pri, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -3044,7 +3044,7 @@ be_loc_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
curr_offset++;
}
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -3063,7 +3063,7 @@ be_loc_est(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
data_tvb = tvb_new_subset_length(tvb, curr_offset, len);
dissect_geographical_description(data_tvb, pinfo, tree);
- return(len);
+ return len;
}
/*
* 3.2.2.65 Positioning Data
@@ -3104,7 +3104,7 @@ be_pos_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
}
}
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.66 LCS Cause
@@ -3187,7 +3187,7 @@ be_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, gui
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.69 Network Element Identity
@@ -3207,7 +3207,7 @@ be_gps_assist_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.71 Deciphering Keys
@@ -3227,7 +3227,7 @@ be_ret_err_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offs
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.73 Return Error Cause
@@ -3242,7 +3242,7 @@ be_ret_err_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.74 Segmentation
@@ -3257,7 +3257,7 @@ be_seg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guin
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.75 Service Handover
@@ -3284,7 +3284,7 @@ be_serv_ho(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offs
proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_spare_bits, tvb, curr_offset<<3, 5, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_bssmap_serv_ho_inf, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(len);
+ return len;
}
/*
@@ -3306,7 +3306,7 @@ be_src_rnc_to_tar_rnc_umts(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
container_tvb = tvb_new_subset_length(tvb, curr_offset, len);
dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(container_tvb, pinfo, tree, NULL);
- return(len);
+ return len;
}
/*
* 3.2.2.77 Source RNC to target RNC transparent information (cdma2000)
@@ -3323,7 +3323,7 @@ be_src_rnc_to_tar_rnc_cdma(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
* for cdma2000 is defined in relevant specifications.
*/
- return(len);
+ return len;
}
/*
* 3.2.2.78 GERAN Classmark
@@ -3362,7 +3362,7 @@ be_geran_cls_m(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offs
proto_tree_add_item(tree, hf_gsm_a_bssmap_acceptable_chan_coding_bit2, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_bssmap_acceptable_chan_coding_bit1, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 3.2.2.79 GERAN BSC Container
@@ -3384,7 +3384,7 @@ be_geran_bsc_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_item(tree, hf_gsm_a_bssmap_allowed_data_rate_bit4, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_bssmap_max_nb_traffic_chan, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 3.2.2.80 New BSS to Old BSS Information
@@ -3422,7 +3422,7 @@ be_inter_sys_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
dissect_ranap_InterSystemInformation_TransparentContainer_PDU(new_tvb, pinfo, tree, NULL);
}
- return(len);
+ return len;
}
/*
* 3.2.2.82 SNA Access Information
@@ -3436,7 +3436,7 @@ be_sna_acc_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offs
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
@@ -3455,7 +3455,7 @@ be_vstk_rand_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_uint64(tree, hf_gsm_a_bssmap_vstk_rand, tvb, curr_offset, 5, vstk_rand);
proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_spare_bits, tvb, (((curr_offset+4)<<3)+4), 4, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 3.2.2.84 VSTK information
@@ -3465,7 +3465,7 @@ be_vstk_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
{
proto_tree_add_item(tree, hf_gsm_a_bssmap_vstk, tvb, offset, 16, ENC_NA);
- return(len);
+ return len;
}
/*
* 3.2.2.85 Paging Information
@@ -3499,7 +3499,7 @@ be_paging_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
proto_tree_add_item(tree, hf_gsm_a_bssmap_paging_inf_flg, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.86 IMEI
@@ -3514,7 +3514,7 @@ be_vel_est(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
{
dissect_description_of_velocity(tvb, tree, pinfo, offset, len, add_string, string_len);
- return(len);
+ return len;
}
/*
* 3.2.2.88 VGCS Feature Flags
@@ -3564,7 +3564,7 @@ be_vgcs_feat_flg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.89 Talker Priority
@@ -3589,7 +3589,7 @@ be_talker_pri(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offse
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
@@ -3611,7 +3611,7 @@ be_talker_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
curr_offset++;
proto_tree_add_item(tree, hf_gsm_a_bssmap_talker_identity_field, tvb, curr_offset, len-1, ENC_NA);
- return(len);
+ return len;
}
/*
* 3.2.2.92 SMS to VGCS
@@ -3625,7 +3625,7 @@ be_sms_to_vgcs(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offs
rp_data_n_ms(tvb, tree, pinfo, offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.93 VGCS talker mode
@@ -3665,7 +3665,7 @@ be_vgcs_talker_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_gsm_a_bssmap_group_cipher_key_nb, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_spare_bits, tvb, ((curr_offset<<3)+6), 2, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 3.2.2.94 VGCS/VBS Cell Status
@@ -3691,7 +3691,7 @@ be_vgcs_vbs_cell_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_spare_bits, tvb, (curr_offset<<3), 5, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_bssmap_vgcs_vbs_cell_status, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 3.2.2.95 GANSS Assistance Data
@@ -3707,7 +3707,7 @@ be_ganss_ass_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.96 GANSS Positioning Data
@@ -3752,7 +3752,7 @@ be_ganss_pos_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_item(tree, hf_gsm_a_bssmap_usage, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.97 GANSS Location Type
@@ -3766,7 +3766,7 @@ be_ganss_loc_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 o
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.98 Application Data
@@ -3780,7 +3780,7 @@ be_app_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
proto_tree_add_expert(tree, pinfo, &ei_gsm_a_bssmap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 3.2.2.99 Data Identity
@@ -3790,7 +3790,7 @@ be_app_data_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
{
proto_tree_add_item(tree, hf_gsm_a_bssmap_data_id, tvb, offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 3.2.2.100 Application Data Information
@@ -3809,7 +3809,7 @@ be_app_data_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_spare_bits, tvb, (curr_offset<<3), 7, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_bssmap_bt_ind, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 3.2.2.101 MSISDN
@@ -3864,7 +3864,7 @@ be_aoip_trans_lay_add(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint
default:
/* Bogus */
proto_tree_add_expert_format(tree, pinfo, &ei_gsm_a_bssmap_bogus_length, tvb, curr_offset, len, "Bogus length %u",len);
- return(len);
+ return len;
}
proto_tree_add_item(tree, hf_gsm_a_bssmap_aoip_trans_port, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
rtp_port = tvb_get_ntohs(tvb,curr_offset);
@@ -3889,7 +3889,7 @@ be_aoip_trans_lay_add(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint
rtp_add_address(pinfo, PT_UDP, &rtp_dst_addr, rtp_port, 0, "BSS MAP", pinfo->num, FALSE, 0);
rtcp_add_address(pinfo, &rtp_dst_addr, rtp_port+1, 0, "BSS MAP", pinfo->num);
}
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.103 Speech Codec List
@@ -4095,7 +4095,7 @@ be_speech_codec_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
}
}
proto_item_set_len(item, consumed);
- return(len);
+ return len;
}
/*
* 3.2.2.104 Speech Codec
@@ -4245,7 +4245,7 @@ be_speech_codec(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
}
}
proto_item_set_len(item, consumed);
- return(len);
+ return len;
}
/*
* 3.2.2.105 Call Identifier
@@ -4265,7 +4265,7 @@ be_call_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offs
proto_tree_add_item(tree, hf_gsm_a_bssmap_call_id, tvb, curr_offset, 4, ENC_LITTLE_ENDIAN);
curr_offset+=4;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.106 Call Identifier List
@@ -4284,7 +4284,7 @@ be_call_id_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset+=4;
}
- return(len);
+ return len;
}
/*
* 3.2.2.107 A-Interface Selector for RESET
@@ -4308,7 +4308,7 @@ be_a_itf_sel_for_reset(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_gsm_a_bssmap_rtd, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.109 Kc128
@@ -4322,7 +4322,7 @@ be_kc128(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset
proto_tree_add_item(tree, hf_gsm_a_bssmap_kc128, tvb, curr_offset, 16, ENC_NA);
curr_offset+=16;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 3.2.2.110 CSG Identifier
@@ -4348,7 +4348,7 @@ be_csg_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offse
bit_offset += 7;
proto_tree_add_bits_item(tree, hf_gsm_a_bssmap_cell_access_mode, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
@@ -4394,7 +4394,7 @@ be_reroute_rej_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
proto_tree_add_item(tree, hf_gsm_a_bssmap_reroute_rej_cause, tvb, curr_offset, 1, ENC_NA);
curr_offset+=1;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -4410,7 +4410,7 @@ be_send_seqn(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
proto_tree_add_item(tree, hf_gsm_a_bssmap_send_seqn, tvb, curr_offset, 1, ENC_NA);
curr_offset+=1;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -4434,7 +4434,7 @@ be_reroute_outcome(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_gsm_a_bssmap_reroute_outcome, tvb, curr_offset, 1, ENC_NA);
curr_offset+=1;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -4471,7 +4471,7 @@ be_lcls_conf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
proto_tree_add_item(tree, hf_gsm_a_bssmap_lcls_conf, tvb, curr_offset, 1, ENC_NA);
curr_offset+=1;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -4496,7 +4496,7 @@ be_lcls_con_status_control(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
proto_tree_add_item(tree, hf_gsm_a_bssmap_lcls_con_status_control, tvb, curr_offset, 1, ENC_NA);
curr_offset+=1;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -4526,7 +4526,7 @@ be_lcls_bss_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_gsm_a_bssmap_lcls_bss_status, tvb, curr_offset, 1, ENC_NA);
curr_offset+=1;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
@@ -4864,7 +4864,7 @@ be_fe_extra_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_item(tree, hf_fe_extra_info_spare, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.2 Current Channel type 2 */
@@ -4881,7 +4881,7 @@ be_fe_cur_chan_type2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
proto_tree_add_item(tree, hf_fe_cur_chan_type2_chan_field_spare, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.3 Target cell radio information */
@@ -4895,7 +4895,7 @@ be_fe_target_radio_cell_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
proto_tree_add_item(tree, hf_fe_target_radio_cell_info_rxlev_ncell_spare, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.4 GPRS Suspend Information */
@@ -4911,7 +4911,7 @@ be_fe_gprs_suspend_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
bssgp_suspend_ack(tvb, tree, pinfo, offset, len);
curr_offset += len;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.5 MultiRate configuration Information */
@@ -4947,7 +4947,7 @@ be_fe_dual_transfer_mode_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
proto_tree_add_item(tree, hf_fe_dtm_info_spare_bits, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.7 Inter RAT Handover Info */
@@ -4988,7 +4988,7 @@ be_fe_cell_load_info_group(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
curr_offset += be_cell_id(tvb, tree, pinfo, curr_offset, len, NULL, 0);
curr_offset += be_field_element_dissect(tvb, tree, pinfo, curr_offset, len + offset - curr_offset, NULL, 0);
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.12 Cell Load Information */
@@ -5007,7 +5007,7 @@ be_fe_cell_load_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
proto_tree_add_item(tree, hf_fe_cell_load_info_nrt_load_information_value, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.13 PS Indication */
@@ -5020,7 +5020,7 @@ be_fe_ps_indication(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_fe_ps_indication, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.14 DTM Handover Command Indication */
@@ -5033,7 +5033,7 @@ be_fe_dtm_ho_command_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
proto_tree_add_item(tree, hf_fe_dtm_ho_command_ind_spare, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/* 3.2.3.17 Source Cell ID */
@@ -5054,7 +5054,7 @@ be_fe_source_cell_id(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo _U_, gu
new_tvb = tvb_new_subset_remaining(tvb, curr_offset);
dissect_s1ap_Global_ENB_ID_PDU(new_tvb, pinfo, tree, NULL);
- return(len);
+ return len;
}
@@ -7518,7 +7518,7 @@ static void (*bssmap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
NULL, /* NONE */
};
-#define NUM_BSSMAP_MSG_FCNS (int)(sizeof(bssmap_msg_fcn)/sizeof(bssmap_msg_fcn[0]))
+#define NUM_BSSMAP_MSG_FCNS (int)array_length(bssmap_msg_fcn)
static int
dissect_bssmap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
diff --git a/epan/dissectors/packet-gsm_a_common.c b/epan/dissectors/packet-gsm_a_common.c
index 490dc0eed1..1c89765416 100644
--- a/epan/dissectors/packet-gsm_a_common.c
+++ b/epan/dissectors/packet-gsm_a_common.c
@@ -770,9 +770,9 @@ static expert_field ei_gsm_a_format_not_supported;
static expert_field ei_gsm_a_mobile_identity_type;
static expert_field ei_gsm_a_ie_length_too_short;
-sccp_assoc_info_t* sccp_assoc = NULL;
+sccp_assoc_info_t* sccp_assoc;
-#define NUM_GSM_COMMON_ELEM (sizeof(gsm_common_elem_strings)/sizeof(value_string))
+#define NUM_GSM_COMMON_ELEM array_length(gsm_common_elem_strings)
gint ett_gsm_common_elem[NUM_GSM_COMMON_ELEM];
@@ -3604,14 +3604,14 @@ static stat_tap_table_item gsm_a_stat_fields[] = {
{TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "IEI", "%d"},
{TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Message Name", "%-25s"},
{TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Count", "%d"}
- };
+};
static void gsm_a_stat_init(stat_tap_table_ui* new_stat, const char *table_title, const value_string *msg_strings)
{
- int num_fields = sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(gsm_a_stat_fields);
stat_tap_table* table;
guint i;
- stat_tap_table_item_type items[sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(gsm_a_stat_fields)];
items[IEI_COLUMN].type = TABLE_ITEM_UINT;
items[MSG_NAME_COLUMN].type = TABLE_ITEM_STRING;
@@ -4819,8 +4819,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4835,8 +4835,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4851,8 +4851,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4867,8 +4867,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4883,8 +4883,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4899,8 +4899,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4915,8 +4915,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4931,8 +4931,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4947,8 +4947,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
@@ -4963,8 +4963,8 @@ proto_register_gsm_a_common(void)
gsm_a_stat_reset,
gsm_a_stat_free_table_item,
NULL,
- sizeof(gsm_a_stat_fields)/sizeof(stat_tap_table_item), gsm_a_stat_fields,
- sizeof(gsm_a_stat_params)/sizeof(tap_param), gsm_a_stat_params,
+ array_length(gsm_a_stat_fields), gsm_a_stat_fields,
+ array_length(gsm_a_stat_params), gsm_a_stat_params,
NULL,
0
};
diff --git a/epan/dissectors/packet-gsm_a_dtap.c b/epan/dissectors/packet-gsm_a_dtap.c
index 3db48c14b3..51989d051b 100644
--- a/epan/dissectors/packet-gsm_a_dtap.c
+++ b/epan/dissectors/packet-gsm_a_dtap.c
@@ -775,7 +775,7 @@ static proto_tree *g_tree;
static gint is_uplink;
static guint8 epc_test_loop_mode;
-#define NUM_GSM_DTAP_ELEM (sizeof(gsm_dtap_elem_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_ELEM array_length(gsm_dtap_elem_strings)
gint ett_gsm_dtap_elem[NUM_GSM_DTAP_ELEM];
/*
@@ -825,7 +825,7 @@ de_auth_resp_param(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_gsm_a_dtap_sres, tvb, offset, 4, ENC_NA);
/* no length check possible */
- return (4);
+ return 4;
}
/*
@@ -1007,7 +1007,7 @@ de_rej_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 of
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -1307,7 +1307,7 @@ de_mm_timer(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
proto_tree_add_item(subtree, hf_gsm_a_dtap_mm_timer_unit, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(subtree, hf_gsm_a_dtap_mm_timer_value, tvb, offset, 1, ENC_BIG_ENDIAN);
- return (1);
+ return 1;
}
/*
@@ -2194,7 +2194,7 @@ de_call_state(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -2858,7 +2858,7 @@ de_recall_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_bits_item(tree, hf_gsm_a_spare_bits, tvb, (offset<<3), 5, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_gsm_a_dtap_recall_type, tvb, offset, 1, ENC_BIG_ENDIAN);
- return (1);
+ return 1;
}
/*
@@ -4034,7 +4034,7 @@ de_gcc_call_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset += 4;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static const value_string gcc_call_state_vals[] = {
@@ -4129,7 +4129,7 @@ de_gcc_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_dtap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static const true_false_string gcc_orig_ind_vals = {
@@ -4148,7 +4148,7 @@ de_gcc_orig_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static const true_false_string gcc_state_attr_da = {
@@ -4214,7 +4214,7 @@ de_bcc_call_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset += 4;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static const range_string bcc_call_state_vals[] = {
@@ -4305,7 +4305,7 @@ de_bcc_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_dtap_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static const true_false_string bcc_orig_ind_vals = {
@@ -4324,7 +4324,7 @@ de_bcc_orig_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static const true_false_string bcc_state_attr_da = {
@@ -6644,7 +6644,7 @@ dtap_tp_epc_update_ue_location_information(tvbuff_t *tvb, proto_tree *tree, pack
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_dtap_extraneous_data);
}
-#define NUM_GSM_DTAP_MSG_GCC (sizeof(gsm_a_dtap_msg_gcc_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_MSG_GCC array_length(gsm_a_dtap_msg_gcc_strings)
static gint ett_gsm_dtap_msg_gcc[NUM_GSM_DTAP_MSG_GCC];
static void (*dtap_msg_gcc[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
dtap_gcc_imm_setup, /* IMMEDIATE SETUP */
@@ -6659,7 +6659,7 @@ static void (*dtap_msg_gcc[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
NULL, /* NONE */
};
-#define NUM_GSM_DTAP_MSG_BCC (sizeof(gsm_a_dtap_msg_bcc_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_MSG_BCC array_length(gsm_a_dtap_msg_bcc_strings)
static gint ett_gsm_dtap_msg_bcc[NUM_GSM_DTAP_MSG_BCC];
static void (*dtap_msg_bcc[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
dtap_bcc_imm_setup, /* IMMEDIATE SETUP */
@@ -6675,7 +6675,7 @@ static void (*dtap_msg_bcc[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
NULL, /* NONE */
};
-#define NUM_GSM_DTAP_MSG_MM (sizeof(gsm_a_dtap_msg_mm_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_MSG_MM array_length(gsm_a_dtap_msg_mm_strings)
static gint ett_gsm_dtap_msg_mm[NUM_GSM_DTAP_MSG_MM];
static void (*dtap_msg_mm_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
dtap_mm_imsi_det_ind, /* IMSI Detach Indication */
@@ -6704,7 +6704,7 @@ static void (*dtap_msg_mm_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *p
NULL, /* NONE */
};
-#define NUM_GSM_DTAP_MSG_CC (sizeof(gsm_a_dtap_msg_cc_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_MSG_CC array_length(gsm_a_dtap_msg_cc_strings)
static gint ett_gsm_dtap_msg_cc[NUM_GSM_DTAP_MSG_CC];
static void (*dtap_msg_cc_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
dtap_cc_alerting, /* Alerting */
@@ -6745,7 +6745,7 @@ static void (*dtap_msg_cc_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *p
NULL, /* NONE */
};
-#define NUM_GSM_DTAP_MSG_SMS (sizeof(gsm_a_dtap_msg_sms_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_MSG_SMS array_length(gsm_a_dtap_msg_sms_strings)
static gint ett_gsm_dtap_msg_sms[NUM_GSM_DTAP_MSG_SMS];
static void (*dtap_msg_sms_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
dtap_sms_cp_data, /* CP-DATA */
@@ -6754,7 +6754,7 @@ static void (*dtap_msg_sms_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *
NULL, /* NONE */
};
-#define NUM_GSM_DTAP_MSG_SS (sizeof(gsm_a_dtap_msg_ss_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_MSG_SS array_length(gsm_a_dtap_msg_ss_strings)
static gint ett_gsm_dtap_msg_ss[NUM_GSM_DTAP_MSG_SS];
static void (*dtap_msg_ss_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
dtap_cc_release_complete, /* Release Complete */
@@ -6763,7 +6763,7 @@ static void (*dtap_msg_ss_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *p
NULL, /* NONE */
};
-#define NUM_GSM_DTAP_MSG_TP (sizeof(gsm_a_dtap_msg_tp_strings)/sizeof(value_string))
+#define NUM_GSM_DTAP_MSG_TP array_length(gsm_a_dtap_msg_tp_strings)
static gint ett_gsm_dtap_msg_tp[NUM_GSM_DTAP_MSG_TP];
static void (*dtap_msg_tp_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len) = {
dtap_tp_close_tch_loop_cmd, /* CLOSE TCH LOOP CMD */
diff --git a/epan/dissectors/packet-gsm_a_gm.c b/epan/dissectors/packet-gsm_a_gm.c
index 274801cad0..ca124fb8f8 100644
--- a/epan/dissectors/packet-gsm_a_gm.c
+++ b/epan/dissectors/packet-gsm_a_gm.c
@@ -690,7 +690,7 @@ de_gmm_attach_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_item(tree, hf_gsm_a_gm_res_of_attach, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -710,7 +710,7 @@ de_gmm_attach_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_gsm_a_gm_type_of_attach, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -735,7 +735,7 @@ de_gmm_ciph_alg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_a_gm_type_of_ciph_alg, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -756,7 +756,7 @@ de_gmm_integ_alg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_item(tree, hf_gsm_a_gm_type_of_integ_alg, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -774,7 +774,7 @@ de_gmm_tmsi_stat(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_item(tree, hf_gsm_a_gm_tmsi_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -1021,7 +1021,7 @@ de_gmm_ftostby(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_bits_item(tree, hf_gsm_a_gm_force_to_standby, tvb, bit_offset + 1, 3, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -1038,7 +1038,7 @@ de_gmm_ftostby_h(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_bits_item(tree, hf_gsm_a_gm_force_to_standby, tvb, bit_offset + 1, 3, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -1100,7 +1100,7 @@ de_gmm_ident_type2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_gsm_a_gm_type_of_identity, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -1124,7 +1124,7 @@ de_gmm_imeisv_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_bits_item(tree, hf_gsm_a_gm_imeisv_req, tvb, bit_offset + 1, 3, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -3610,7 +3610,7 @@ de_gmm_update_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_gsm_a_gm_update_type, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -3623,7 +3623,7 @@ de_gmm_ac_ref_nr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_bits_item(tree, hf_gsm_a_gm_ac_ref_nr, tvb, (offset << 3) + 4, 4, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -3636,7 +3636,7 @@ de_gmm_ac_ref_nr_h(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_bits_item(tree, hf_gsm_a_gm_ac_ref_nr, tvb, offset << 3, 4, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -3663,7 +3663,7 @@ de_gmm_service_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
/*bit_offset += 3;*/
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -4088,7 +4088,7 @@ de_gmm_up_integ_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_gsm_a_gm_up_integ_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/* [14] 10.5.5.35 DCN-ID */
@@ -4122,7 +4122,7 @@ de_gmm_non_3gpp_nw_prov_pol(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
proto_tree_add_item(tree, hf_gsm_a_gm_n3en_ind, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -4234,7 +4234,7 @@ de_gc_timer(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
proto_tree_add_item(subtree, hf_gsm_a_gm_gprs_timer_value, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -5842,7 +5842,7 @@ de_sm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
offset, 1, oct, "%s (%u)", str, oct);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -5864,7 +5864,7 @@ de_sm_cause_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
offset, 1, oct, "%s (%u)", str, oct);
/* no length check possible */
- return (1);
+ return 1;
}
/*
* [7] 10.5.6.7
@@ -5937,7 +5937,7 @@ de_sm_sapi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offs
proto_tree_add_item(tree, hf_gsm_a_sm_llc_sapi, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -5955,7 +5955,7 @@ de_sm_tear_down(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_a_sm_tdi, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -6475,7 +6475,7 @@ de_sm_enh_nsapi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
offset, 1, oct, "%s (%u)", str, oct);
/* no length check possible */
- return (1);
+ return 1;
}
/*
@@ -6497,7 +6497,7 @@ de_sm_req_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_a_sm_req_type, tvb, offset, 1, ENC_BIG_ENDIAN);
/* no length check possible */
- return (1);
+ return 1;
}
/*
diff --git a/epan/dissectors/packet-gsm_a_rp.c b/epan/dissectors/packet-gsm_a_rp.c
index 10dd1f0610..296a1c1499 100644
--- a/epan/dissectors/packet-gsm_a_rp.c
+++ b/epan/dissectors/packet-gsm_a_rp.c
@@ -26,6 +26,7 @@
#include <wsutil/wsjson.h>
#include "packet-gsm_a_common.h"
+#include "packet-media-type.h"
void proto_register_gsm_a_rp(void);
void proto_reg_handoff_gsm_a_rp(void);
@@ -111,7 +112,7 @@ de_rp_message_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
/* no length check possible */
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -120,7 +121,7 @@ de_rp_message_ref(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
static guint16
de_rp_orig_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
{
- return(de_cld_party_bcd_num(tvb, tree, pinfo, offset, len, add_string, string_len));
+ return de_cld_party_bcd_num(tvb, tree, pinfo, offset, len, add_string, string_len);
}
/*
@@ -129,7 +130,7 @@ de_rp_orig_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
static guint16
de_rp_dest_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len)
{
- return(de_cld_party_bcd_num(tvb, tree, pinfo, offset, len, add_string, string_len));
+ return de_cld_party_bcd_num(tvb, tree, pinfo, offset, len, add_string, string_len);
}
/*
@@ -156,7 +157,7 @@ de_rp_user_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_rp_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -220,7 +221,7 @@ de_rp_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_rp_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
guint16 (*rp_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len) = {
@@ -488,7 +489,7 @@ dissect_rp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
}
static int
-dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, media_content_info_t *content_info)
{
tvbuff_t* json_tvb;
int ret;
@@ -496,6 +497,8 @@ dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
char *json_data;
const char *content_id;
+ if (!gsm_a_dtap_handle || !content_info || content_info->type > MEDIA_CONTAINER_HTTP_OTHERS || !content_info->content_id)
+ return 0;
json_tvb = (tvbuff_t*)p_get_proto_data(pinfo->pool, pinfo, proto_json, 0);
if (!json_tvb)
return 0;
@@ -510,18 +513,19 @@ dissect_nf_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (!cur_tok)
return 0;
content_id = json_get_string(json_data, cur_tok, "contentId");
- if (content_id && !strcmp(content_id, "sms") && gsm_a_dtap_handle)
+ if (content_id && !strcmp(content_id, content_info->content_id))
return call_dissector_only(gsm_a_dtap_handle, tvb, pinfo, tree, NULL);
return 0;
}
static int
-dissect_rp_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+dissect_rp_media_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
int ret;
+ media_content_info_t *content_info = (media_content_info_t *)data;
- ret = dissect_nf_media_type(tvb, pinfo, tree);
+ ret = dissect_nf_media_type(tvb, pinfo, tree, content_info);
if (!ret)
ret = dissect_rp(tvb, pinfo, tree, NULL);
return ret;
diff --git a/epan/dissectors/packet-gsm_a_rr.c b/epan/dissectors/packet-gsm_a_rr.c
index b2a9aee805..d1f8e9f16f 100644
--- a/epan/dissectors/packet-gsm_a_rr.c
+++ b/epan/dissectors/packet-gsm_a_rr.c
@@ -54,7 +54,7 @@ void proto_reg_handoff_gsm_a_rr(void);
static dissector_handle_t rrc_irat_ho_info_handle;
static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle;
-static guint gsm_a_rr_nri_length = 0;
+static guint gsm_a_rr_nri_length;
#define PADDING_BYTE 0x2B
@@ -1715,7 +1715,7 @@ dissect_arfcn_list_core(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
}
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1737,7 +1737,7 @@ dissect_arfcn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
curr_offset += dissect_arfcn_list_core(tvb, tree, pinfo, offset, len, add_string, string_len, oct);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1760,7 +1760,7 @@ dissect_arfcn_list2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
curr_offset += dissect_arfcn_list_core(tvb, tree, pinfo, offset, len, add_string, string_len, oct);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static guint16
@@ -2086,7 +2086,7 @@ de_rr_cell_dsc(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint
curr_offset = curr_offset + 2;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2131,7 +2131,7 @@ de_rr_cell_opt_bcch(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_,
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2169,7 +2169,7 @@ de_rr_cell_opt_sacch(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_,
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2193,7 +2193,7 @@ de_rr_cell_sel_param(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_,
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2271,7 +2271,7 @@ de_rr_ch_dsc(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint32
curr_offset = curr_offset + 2;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.5a Channel Description 2
@@ -2364,7 +2364,7 @@ de_rr_ch_dsc2(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint3
curr_offset = curr_offset + 2;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2404,7 +2404,7 @@ de_rr_ch_dsc3(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint3
curr_offset = curr_offset + 2;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2451,7 +2451,7 @@ de_rr_ch_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.7 Channel Mode 2
@@ -2480,7 +2480,7 @@ de_rr_ch_mode2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.7a UTRAN Classmark information element
@@ -2500,7 +2500,7 @@ de_rr_utran_cm(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offs
}
curr_offset += len;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2554,7 +2554,7 @@ de_rr_cm_enq_mask(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.8 Channel Needed
@@ -2583,7 +2583,7 @@ de_rr_chnl_needed(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, gu
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.8a Channel Request Description
@@ -2700,7 +2700,7 @@ de_rr_cip_mode_set(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
}
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.10 Cipher Response
@@ -2731,7 +2731,7 @@ de_rr_cip_mode_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_bits_item(tree, hf_gsm_a_rr_cr, tvb, (curr_offset<<3)+bit_offset+3, 1, ENC_BIG_ENDIAN);
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/* [3] 10.5.2.11 Control Channel Description */
@@ -2792,7 +2792,7 @@ de_rr_ctrl_ch_desc(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, g
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/* [3] 10.5.2.11a DTM Information Details
@@ -2873,7 +2873,7 @@ de_rr_dyn_arfcn_map(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
{
expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_gsm_a_rr_ie_underrun);
}
- return(len);
+ return len;
}
/*
* [3] 10.5.2.12 Frequency Channel Sequence
@@ -2897,7 +2897,7 @@ de_rr_freq_ch_seq(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
curr_offset = curr_offset + 8;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -3166,7 +3166,7 @@ de_rr_ho_ref(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint32
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static const value_string gsm_a_access_tech_type_vals[] = {
@@ -3410,7 +3410,7 @@ de_tbf_starting_time(tvbuff_t *tvb, proto_tree *tree, guint32 bit_offset)
item = proto_tree_add_uint(tree, hf_gsm_a_rr_tbf_starting_time, tvb, bit_offset >> 3, ((curr_bit_offset - bit_offset) >> 3) + 1, rfn);
proto_item_set_generated(item);
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -4232,7 +4232,7 @@ de_rr_l2_pseudo_len(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_,
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4351,7 +4351,7 @@ de_rr_meas_res(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint
* Thus the value part is 17 - 1 == 16 octets long. Unused bits are set to zero. */
gsm_rr_padding_bits(subtree, tvb, bit_offset, 16, 0x00);
- return(16);
+ return 16;
}
/*
@@ -4382,7 +4382,7 @@ de_rr_mob_all(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
}
curr_offset = curr_offset + len;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4398,7 +4398,7 @@ de_rr_mob_time_diff(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
proto_tree_add_item(tree, hf_gsm_a_rr_mobile_time_difference, tvb, curr_offset, len, ENC_BIG_ENDIAN);
curr_offset = curr_offset + len;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4587,7 +4587,7 @@ de_rr_multirate_conf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
}
curr_offset = offset + len;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4635,7 +4635,7 @@ de_rr_mult_all(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset++;
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4929,7 +4929,7 @@ de_rr_packet_ch_desc(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_,
}
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -4958,7 +4958,7 @@ de_rr_ded_mod_or_tbf(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_,
curr_offset += 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.25c RR Packet Uplink Assignment
@@ -5021,7 +5021,7 @@ de_rr_page_mode(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guin
curr_offset += 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.26a (void)
@@ -5043,7 +5043,7 @@ de_rr_ncc_perm(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.28 Power Command
@@ -5113,7 +5113,7 @@ de_rr_pow_cmd(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint3
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5137,7 +5137,7 @@ de_rr_pow_cmd_and_acc_type(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinf
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.29 RACH Control Parameters
@@ -5198,7 +5198,7 @@ de_rr_rach_ctrl_param(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_
curr_offset = curr_offset + 2;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.30 Request Reference M V 3
@@ -5245,7 +5245,7 @@ de_rr_req_ref(tvbuff_t *tvb, proto_tree *subtree, packet_info *pinfo _U_, guint3
item = proto_tree_add_uint(subtree, hf_gsm_a_rr_rfn, tvb, curr_offset-2, 2, rfn);
proto_item_set_generated(item);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.31
@@ -5261,7 +5261,7 @@ de_rr_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -5960,7 +5960,7 @@ de_rr_bsic_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset, rr_rest_octets
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -5985,7 +5985,7 @@ de_rr_report_priority_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset, rr_
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6055,7 +6055,7 @@ de_rr_meas_param_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset, rr_rest_
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6075,7 +6075,7 @@ de_rr_3g_add_meas_param_desc2(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
/* Additions in Rel-8 */
@@ -6388,7 +6388,7 @@ de_rr_3g_priority_param_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6435,7 +6435,7 @@ de_rr_eutran_neighbour_cells(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6463,7 +6463,7 @@ de_rr_eutran_neighbour_cells_mi(tvbuff_t *tvb, proto_tree *tree, gint bit_offset
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6527,7 +6527,7 @@ de_rr_eutran_pcid(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
curr_bit_offset += 1;
}
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6551,7 +6551,7 @@ de_rr_eutran_not_allowed_cells(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6572,7 +6572,7 @@ de_rr_eutran_pcid_to_ta_mapping(tvbuff_t *tvb, proto_tree *tree, gint bit_offset
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6746,7 +6746,7 @@ de_rr_eutran_measurement_param_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_of
curr_bit_offset += 1;
}
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6870,7 +6870,7 @@ de_rr_eutran_param_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -6928,7 +6928,7 @@ de_rr_eutran_param_desc_mi(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -7041,7 +7041,7 @@ de_rr_3g_csg_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -7068,7 +7068,7 @@ de_rr_eutran_csg_desc(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -7089,7 +7089,7 @@ de_rr_eutran_csg_desc_mi(tvbuff_t *tvb, proto_tree *tree, gint bit_offset)
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -7113,7 +7113,7 @@ de_rr_utran_measurement_control_param_mi(tvbuff_t *tvb, proto_tree *tree, gint b
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static gint
@@ -7148,7 +7148,7 @@ de_rr_3g_supplementary_param_desc_mi(tvbuff_t *tvb, proto_tree *tree, gint bit_o
}
proto_item_set_len(item,((curr_bit_offset>>3) - (bit_offset>>3) + 1));
- return(curr_bit_offset - bit_offset);
+ return curr_bit_offset - bit_offset;
}
static guint16
@@ -8556,7 +8556,7 @@ de_rr_starting_time(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
curr_offset++;
item = proto_tree_add_uint(tree, hf_gsm_a_rr_rfn, tvb, curr_offset-2, 2, rfn);
proto_item_set_generated(item);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.39 Synchronization Indication
@@ -8600,7 +8600,7 @@ de_rr_sync_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8616,7 +8616,7 @@ de_rr_timing_adv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_item(tree, hf_gsm_a_rr_timing_adv, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8632,7 +8632,7 @@ de_rr_time_diff(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_a_rr_time_diff, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.41a TLLI
@@ -8657,7 +8657,7 @@ de_rr_tlli(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offs
if(add_string)
snprintf(add_string, string_len, " - 0x%x", tlli);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8677,7 +8677,7 @@ de_rr_tmsi_ptmsi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
proto_tree_add_item(subtree, hf_gsm_a_tmsi, tvb, curr_offset, 4, ENC_BIG_ENDIAN);
curr_offset = curr_offset + 4;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8706,7 +8706,7 @@ de_rr_vgcs_tar_mode_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_gsm_a_rr_group_cipher_key_number, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8723,7 +8723,7 @@ de_rr_vgcs_cip_par(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
curr_offset = curr_offset + 2;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.43 Wait Indication
@@ -8739,7 +8739,7 @@ de_rr_wait_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8773,7 +8773,7 @@ de_rr_ext_meas_result(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
curr_offset = offset + len;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8816,7 +8816,7 @@ de_rr_sus_cau(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
curr_offset = curr_offset + 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* [3] 10.5.2.48 APDU ID
@@ -8903,7 +8903,7 @@ de_rr_ho_to_utran_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint
}
curr_offset += len;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
@@ -8945,7 +8945,7 @@ de_rr_serv_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_a_rr_MBMS_broadcast, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8972,7 +8972,7 @@ de_rr_ded_serv_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = curr_offset + 3;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -8998,7 +8998,7 @@ de_rr_carrier_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
curr_offset += 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -9027,7 +9027,7 @@ de_rr_feature_indicator(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset += 1;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
diff --git a/epan/dissectors/packet-gsm_abis_pgsl.c b/epan/dissectors/packet-gsm_abis_pgsl.c
index 45740eddfd..b752ac5d5e 100644
--- a/epan/dissectors/packet-gsm_abis_pgsl.c
+++ b/epan/dissectors/packet-gsm_abis_pgsl.c
@@ -80,7 +80,7 @@ static int hf_pgsl_ab_ab_type;
static int ett_pgsl;
static int ett_pacch;
-static gboolean abis_pgsl_ir = FALSE;
+static bool abis_pgsl_ir;
#define PGSL_MSG_DLDATA_REQ 1
#define PGSL_MSG_DLDATA_IND 2
diff --git a/epan/dissectors/packet-gsm_bsslap.c b/epan/dissectors/packet-gsm_bsslap.c
index 6dfa07fb25..efb2986685 100644
--- a/epan/dissectors/packet-gsm_bsslap.c
+++ b/epan/dissectors/packet-gsm_bsslap.c
@@ -21,7 +21,7 @@
void proto_reg_handoff_gsm_bsslap(void);
void proto_register_gsm_bsslap(void);
-static dissector_handle_t bsslap_rrlp_handle = NULL;
+static dissector_handle_t bsslap_rrlp_handle;
/* Initialize the protocol and registered fields */
static int proto_gsm_bsslap;
@@ -165,7 +165,7 @@ de_ta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, g
proto_tree_add_item(tree, hf_gsm_bsslap_ta, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.12 Measurement Report IE
@@ -180,7 +180,7 @@ de_meas_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
proto_tree_add_expert(tree, pinfo, &ei_gsm_bsslap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
#endif
/*
@@ -209,7 +209,7 @@ de_bsslap_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_bsslap_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.15 RRLP Flag IE
@@ -227,7 +227,7 @@ de_rrlp_flg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
proto_tree_add_item(tree, hf_gsm_bsslap_rrlp_flg, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
static guint16
de_rrlp_ie(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
@@ -247,7 +247,7 @@ de_rrlp_ie(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
}
curr_offset += length;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.17 Cell Identity List IE
@@ -316,7 +316,7 @@ de_cell_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.18 Enhanced Measurement Report IE
@@ -333,7 +333,7 @@ de_enh_meas_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 off
proto_tree_add_expert(tree, pinfo, &ei_gsm_bsslap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 5.19 Location Area Code IE
@@ -347,7 +347,7 @@ de_lac(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset,
proto_tree_add_item(tree, hf_gsm_bsslap_lac, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.21 MS Power IE
@@ -361,7 +361,7 @@ de_ms_pow(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offse
proto_tree_add_item(tree, hf_gsm_bsslap_ms_pow, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -376,7 +376,7 @@ de_delta_time(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 o
proto_tree_add_item(tree, hf_gsm_bsslap_timer_value, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.23 Serving Cell Identifier IE
@@ -394,7 +394,7 @@ de_blap_enc_key(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
proto_tree_add_item(tree, hf_gsm_bsslap_encryption_key, tvb, curr_offset, 8, ENC_NA);
curr_offset = curr_offset + 8;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.25 Cipher Mode Setting IE
@@ -420,7 +420,7 @@ de_poll_rep(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 off
proto_tree_add_item(tree, hf_gsm_bsslap_poll_rep, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 5.29 Packet Channel Description IE
@@ -437,7 +437,7 @@ de_pkt_ch_desc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offs
proto_tree_add_expert(tree, pinfo, &ei_gsm_bsslap_not_decoded_yet, tvb, curr_offset, len);
- return(len);
+ return len;
}
/*
* 5.31 TFI IE
@@ -456,7 +456,7 @@ de_tfi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset,
proto_tree_add_item(tree, hf_gsm_bsslap_tfi, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
diff --git a/epan/dissectors/packet-gsm_bssmap_le.c b/epan/dissectors/packet-gsm_bssmap_le.c
index 9c883adf86..f4654165eb 100644
--- a/epan/dissectors/packet-gsm_bssmap_le.c
+++ b/epan/dissectors/packet-gsm_bssmap_le.c
@@ -259,7 +259,7 @@ static expert_field ei_gsm_a_bssmap_le_not_decoded_yet;
static expert_field ei_gsm_a_bssmap_le_extraneous_data;
static expert_field ei_gsm_a_bssmap_le_missing_mandatory_element;
-static dissector_handle_t gsm_bsslap_handle = NULL;
+static dissector_handle_t gsm_bsslap_handle;
static dissector_handle_t bssmap_le_handle;
static proto_tree *g_tree;
@@ -321,7 +321,7 @@ de_bmaple_apdu(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offs
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_bssmap_le_extraneous_data);
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 10.4 Cause
@@ -366,7 +366,7 @@ de_bmaple_decihp_keys(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
proto_tree_add_bits_item(tree, hf_gsm_bssmap_le_next_deciphering_key_value, tvb, bit_offset, 56, ENC_NA);
/*offset += 7;*/
- return(len);
+ return len;
}
/*
* 10.9 Geographic Location
@@ -415,7 +415,7 @@ de_bmaple_req_gps_ass_data(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
/* Octet 5 to Octet 8+2n Satellite related data */
proto_tree_add_expert_format(tree, pinfo, &ei_gsm_a_bssmap_le_not_decoded_yet, tvb, curr_offset, len-2, "Satellite related data Not decoded yet");
- return(len);
+ return len;
}
/*
* 10.11 IMSI
@@ -479,7 +479,7 @@ de_bmaple_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
curr_offset++;
}
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 10.14 LCS Client Type
@@ -521,7 +521,7 @@ de_bmaple_client(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
/*bitCount = bitCount + 4;*/
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 10.15 LCS Priority
@@ -582,7 +582,7 @@ de_bmaple_lcs_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
proto_tree_add_bits_item(tree, hf_gsm_bssmap_le_response_time_category, tvb, bitCount, 2, ENC_BIG_ENDIAN);
/*bitCount = bitCount + 2;*/
- return(len);
+ return len;
}
/*
* 10.17 (void)
@@ -607,7 +607,7 @@ de_bmaple_location_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_gsm_bssmap_le_pos_method, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 10.19 Network Element Identity
@@ -639,8 +639,7 @@ de_bmaple_pos_dta(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
curr_offset++;
}
-
- return(len);
+ return len;
}
/*
* 10.21 Return Error Request
diff --git a/epan/dissectors/packet-gsm_gsup.c b/epan/dissectors/packet-gsm_gsup.c
index db25b05231..949e196700 100644
--- a/epan/dissectors/packet-gsm_gsup.c
+++ b/epan/dissectors/packet-gsm_gsup.c
@@ -269,7 +269,7 @@ void proto_reg_handoff_gsup(void);
static int proto_gsup;
/* show GSUP source/destination names as text (true) or only binary (false) */
-static gboolean show_name_as_text = TRUE;
+static bool show_name_as_text = true;
static int hf_gsup_msg_type;
static int hf_gsup_iei;
diff --git a/epan/dissectors/packet-gsm_ipa.c b/epan/dissectors/packet-gsm_ipa.c
index c3b9424f1c..0092dc1748 100644
--- a/epan/dissectors/packet-gsm_ipa.c
+++ b/epan/dissectors/packet-gsm_ipa.c
@@ -63,8 +63,8 @@ void proto_reg_handoff_gsm_ipa(void);
static dissector_handle_t ipa_tcp_handle;
static dissector_handle_t ipa_udp_handle;
-static gboolean global_ipa_in_root = FALSE;
-static gboolean global_ipa_in_info = FALSE;
+static bool global_ipa_in_root;
+static bool global_ipa_in_info;
/* Initialize the protocol and registered fields */
static int proto_ipa;
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c
index 2af2f34198..99f80171ff 100644
--- a/epan/dissectors/packet-gsm_map.c
+++ b/epan/dissectors/packet-gsm_map.c
@@ -2076,522 +2076,522 @@ static gint ett_gsm_map_GeodeticInformation;
/* --- Module MAP-ExtensionDataTypes --- --- --- */
-static gint ett_gsm_map_ExtensionContainer;
-static gint ett_gsm_map_SLR_ArgExtensionContainer;
-static gint ett_gsm_map_PrivateExtensionList;
-static gint ett_gsm_map_PrivateExtension;
-static gint ett_gsm_map_PCS_Extensions;
-static gint ett_gsm_map_SLR_Arg_PCS_Extensions;
+static int ett_gsm_map_ExtensionContainer;
+static int ett_gsm_map_SLR_ArgExtensionContainer;
+static int ett_gsm_map_PrivateExtensionList;
+static int ett_gsm_map_PrivateExtension;
+static int ett_gsm_map_PCS_Extensions;
+static int ett_gsm_map_SLR_Arg_PCS_Extensions;
/* --- Module MAP-CommonDataTypes --- --- --- */
-static gint ett_gsm_map_ExternalSignalInfo;
-static gint ett_gsm_map_Ext_ExternalSignalInfo;
-static gint ett_gsm_map_AccessNetworkSignalInfo;
-static gint ett_gsm_map_Identity;
-static gint ett_gsm_map_IMSI_WithLMSI;
-static gint ett_gsm_map_SubscriberId;
-static gint ett_gsm_map_HLR_List;
-static gint ett_gsm_map_NAEA_PreferredCI;
-static gint ett_gsm_map_SubscriberIdentity;
-static gint ett_gsm_map_LCSClientExternalID;
-static gint ett_gsm_map_NetworkNodeDiameterAddress;
-static gint ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI;
-static gint ett_gsm_map_BasicServiceCode;
-static gint ett_gsm_map_Ext_BasicServiceCode;
-static gint ett_gsm_map_EMLPP_Info;
-static gint ett_gsm_map_MC_SS_Info;
+static int ett_gsm_map_ExternalSignalInfo;
+static int ett_gsm_map_Ext_ExternalSignalInfo;
+static int ett_gsm_map_AccessNetworkSignalInfo;
+static int ett_gsm_map_Identity;
+static int ett_gsm_map_IMSI_WithLMSI;
+static int ett_gsm_map_SubscriberId;
+static int ett_gsm_map_HLR_List;
+static int ett_gsm_map_NAEA_PreferredCI;
+static int ett_gsm_map_SubscriberIdentity;
+static int ett_gsm_map_LCSClientExternalID;
+static int ett_gsm_map_NetworkNodeDiameterAddress;
+static int ett_gsm_map_CellGlobalIdOrServiceAreaIdOrLAI;
+static int ett_gsm_map_BasicServiceCode;
+static int ett_gsm_map_Ext_BasicServiceCode;
+static int ett_gsm_map_EMLPP_Info;
+static int ett_gsm_map_MC_SS_Info;
/* --- Module MAP-SS-DataTypes --- --- --- */
-static gint ett_gsm_map_ss_RegisterSS_Arg;
-static gint ett_gsm_map_ss_SS_Info;
-static gint ett_gsm_map_ss_ForwardingInfo;
-static gint ett_gsm_map_ss_ForwardingFeatureList;
-static gint ett_gsm_map_ss_ForwardingFeature;
-static gint ett_gsm_map_ss_CallBarringInfo;
-static gint ett_gsm_map_ss_CallBarringFeatureList;
-static gint ett_gsm_map_ss_CallBarringFeature;
-static gint ett_gsm_map_ss_SS_Data;
-static gint ett_gsm_map_ss_SS_SubscriptionOption;
-static gint ett_gsm_map_ss_SS_ForBS_Code;
-static gint ett_gsm_map_ss_GenericServiceInfo;
-static gint ett_gsm_map_ss_CCBS_FeatureList;
-static gint ett_gsm_map_ss_CCBS_Feature;
-static gint ett_gsm_map_ss_InterrogateSS_Res;
-static gint ett_gsm_map_ss_USSD_Arg;
-static gint ett_gsm_map_ss_USSD_Res;
-static gint ett_gsm_map_ss_SS_List;
-static gint ett_gsm_map_ss_BasicServiceGroupList;
-static gint ett_gsm_map_ss_SS_InvocationNotificationArg;
-static gint ett_gsm_map_ss_SS_InvocationNotificationRes;
-static gint ett_gsm_map_ss_SS_EventSpecification;
-static gint ett_gsm_map_ss_RegisterCC_EntryArg;
-static gint ett_gsm_map_ss_CCBS_Data;
-static gint ett_gsm_map_ss_ServiceIndicator;
-static gint ett_gsm_map_ss_RegisterCC_EntryRes;
-static gint ett_gsm_map_ss_EraseCC_EntryArg;
-static gint ett_gsm_map_ss_EraseCC_EntryRes;
+static int ett_gsm_map_ss_RegisterSS_Arg;
+static int ett_gsm_map_ss_SS_Info;
+static int ett_gsm_map_ss_ForwardingInfo;
+static int ett_gsm_map_ss_ForwardingFeatureList;
+static int ett_gsm_map_ss_ForwardingFeature;
+static int ett_gsm_map_ss_CallBarringInfo;
+static int ett_gsm_map_ss_CallBarringFeatureList;
+static int ett_gsm_map_ss_CallBarringFeature;
+static int ett_gsm_map_ss_SS_Data;
+static int ett_gsm_map_ss_SS_SubscriptionOption;
+static int ett_gsm_map_ss_SS_ForBS_Code;
+static int ett_gsm_map_ss_GenericServiceInfo;
+static int ett_gsm_map_ss_CCBS_FeatureList;
+static int ett_gsm_map_ss_CCBS_Feature;
+static int ett_gsm_map_ss_InterrogateSS_Res;
+static int ett_gsm_map_ss_USSD_Arg;
+static int ett_gsm_map_ss_USSD_Res;
+static int ett_gsm_map_ss_SS_List;
+static int ett_gsm_map_ss_BasicServiceGroupList;
+static int ett_gsm_map_ss_SS_InvocationNotificationArg;
+static int ett_gsm_map_ss_SS_InvocationNotificationRes;
+static int ett_gsm_map_ss_SS_EventSpecification;
+static int ett_gsm_map_ss_RegisterCC_EntryArg;
+static int ett_gsm_map_ss_CCBS_Data;
+static int ett_gsm_map_ss_ServiceIndicator;
+static int ett_gsm_map_ss_RegisterCC_EntryRes;
+static int ett_gsm_map_ss_EraseCC_EntryArg;
+static int ett_gsm_map_ss_EraseCC_EntryRes;
/* --- Module MAP-ER-DataTypes --- --- --- */
-static gint ett_gsm_map_er_RoamingNotAllowedParam;
-static gint ett_gsm_map_er_CallBarredParam;
-static gint ett_gsm_map_er_ExtensibleCallBarredParam;
-static gint ett_gsm_map_er_CUG_RejectParam;
-static gint ett_gsm_map_er_SS_IncompatibilityCause;
-static gint ett_gsm_map_er_SM_DeliveryFailureCause;
-static gint ett_gsm_map_er_AbsentSubscriberSM_Param;
-static gint ett_gsm_map_er_SystemFailureParam;
-static gint ett_gsm_map_er_ExtensibleSystemFailureParam;
-static gint ett_gsm_map_er_DataMissingParam;
-static gint ett_gsm_map_er_UnexpectedDataParam;
-static gint ett_gsm_map_er_FacilityNotSupParam;
-static gint ett_gsm_map_er_OR_NotAllowedParam;
-static gint ett_gsm_map_er_UnknownSubscriberParam;
-static gint ett_gsm_map_er_NumberChangedParam;
-static gint ett_gsm_map_er_UnidentifiedSubParam;
-static gint ett_gsm_map_er_IllegalSubscriberParam;
-static gint ett_gsm_map_er_IllegalEquipmentParam;
-static gint ett_gsm_map_er_BearerServNotProvParam;
-static gint ett_gsm_map_er_TeleservNotProvParam;
-static gint ett_gsm_map_er_TracingBufferFullParam;
-static gint ett_gsm_map_er_NoRoamingNbParam;
-static gint ett_gsm_map_er_AbsentSubscriberParam;
-static gint ett_gsm_map_er_BusySubscriberParam;
-static gint ett_gsm_map_er_NoSubscriberReplyParam;
-static gint ett_gsm_map_er_ForwardingViolationParam;
-static gint ett_gsm_map_er_ForwardingFailedParam;
-static gint ett_gsm_map_er_ATI_NotAllowedParam;
-static gint ett_gsm_map_er_ATSI_NotAllowedParam;
-static gint ett_gsm_map_er_ATM_NotAllowedParam;
-static gint ett_gsm_map_er_IllegalSS_OperationParam;
-static gint ett_gsm_map_er_SS_NotAvailableParam;
-static gint ett_gsm_map_er_SS_SubscriptionViolationParam;
-static gint ett_gsm_map_er_InformationNotAvailableParam;
-static gint ett_gsm_map_er_SubBusyForMT_SMS_Param;
-static gint ett_gsm_map_er_MessageWaitListFullParam;
-static gint ett_gsm_map_er_ResourceLimitationParam;
-static gint ett_gsm_map_er_NoGroupCallNbParam;
-static gint ett_gsm_map_er_IncompatibleTerminalParam;
-static gint ett_gsm_map_er_ShortTermDenialParam;
-static gint ett_gsm_map_er_LongTermDenialParam;
-static gint ett_gsm_map_er_UnauthorizedRequestingNetwork_Param;
-static gint ett_gsm_map_er_UnauthorizedLCSClient_Param;
-static gint ett_gsm_map_er_PositionMethodFailure_Param;
-static gint ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param;
-static gint ett_gsm_map_er_MM_EventNotSupported_Param;
-static gint ett_gsm_map_er_TargetCellOutsideGCA_Param;
-static gint ett_gsm_map_er_OngoingGroupCallParam;
+static int ett_gsm_map_er_RoamingNotAllowedParam;
+static int ett_gsm_map_er_CallBarredParam;
+static int ett_gsm_map_er_ExtensibleCallBarredParam;
+static int ett_gsm_map_er_CUG_RejectParam;
+static int ett_gsm_map_er_SS_IncompatibilityCause;
+static int ett_gsm_map_er_SM_DeliveryFailureCause;
+static int ett_gsm_map_er_AbsentSubscriberSM_Param;
+static int ett_gsm_map_er_SystemFailureParam;
+static int ett_gsm_map_er_ExtensibleSystemFailureParam;
+static int ett_gsm_map_er_DataMissingParam;
+static int ett_gsm_map_er_UnexpectedDataParam;
+static int ett_gsm_map_er_FacilityNotSupParam;
+static int ett_gsm_map_er_OR_NotAllowedParam;
+static int ett_gsm_map_er_UnknownSubscriberParam;
+static int ett_gsm_map_er_NumberChangedParam;
+static int ett_gsm_map_er_UnidentifiedSubParam;
+static int ett_gsm_map_er_IllegalSubscriberParam;
+static int ett_gsm_map_er_IllegalEquipmentParam;
+static int ett_gsm_map_er_BearerServNotProvParam;
+static int ett_gsm_map_er_TeleservNotProvParam;
+static int ett_gsm_map_er_TracingBufferFullParam;
+static int ett_gsm_map_er_NoRoamingNbParam;
+static int ett_gsm_map_er_AbsentSubscriberParam;
+static int ett_gsm_map_er_BusySubscriberParam;
+static int ett_gsm_map_er_NoSubscriberReplyParam;
+static int ett_gsm_map_er_ForwardingViolationParam;
+static int ett_gsm_map_er_ForwardingFailedParam;
+static int ett_gsm_map_er_ATI_NotAllowedParam;
+static int ett_gsm_map_er_ATSI_NotAllowedParam;
+static int ett_gsm_map_er_ATM_NotAllowedParam;
+static int ett_gsm_map_er_IllegalSS_OperationParam;
+static int ett_gsm_map_er_SS_NotAvailableParam;
+static int ett_gsm_map_er_SS_SubscriptionViolationParam;
+static int ett_gsm_map_er_InformationNotAvailableParam;
+static int ett_gsm_map_er_SubBusyForMT_SMS_Param;
+static int ett_gsm_map_er_MessageWaitListFullParam;
+static int ett_gsm_map_er_ResourceLimitationParam;
+static int ett_gsm_map_er_NoGroupCallNbParam;
+static int ett_gsm_map_er_IncompatibleTerminalParam;
+static int ett_gsm_map_er_ShortTermDenialParam;
+static int ett_gsm_map_er_LongTermDenialParam;
+static int ett_gsm_map_er_UnauthorizedRequestingNetwork_Param;
+static int ett_gsm_map_er_UnauthorizedLCSClient_Param;
+static int ett_gsm_map_er_PositionMethodFailure_Param;
+static int ett_gsm_map_er_UnknownOrUnreachableLCSClient_Param;
+static int ett_gsm_map_er_MM_EventNotSupported_Param;
+static int ett_gsm_map_er_TargetCellOutsideGCA_Param;
+static int ett_gsm_map_er_OngoingGroupCallParam;
/* --- Module MAP-SM-DataTypes --- --- --- */
-static gint ett_gsm_map_sm_RoutingInfoForSM_Arg;
-static gint ett_gsm_map_sm_RoutingInfoForSM_Res;
-static gint ett_gsm_map_sm_IP_SM_GW_Guidance;
-static gint ett_gsm_map_sm_LocationInfoWithLMSI;
-static gint ett_gsm_map_sm_Additional_Number;
-static gint ett_gsm_map_sm_MO_ForwardSM_Arg;
-static gint ett_gsm_map_sm_MO_ForwardSM_Res;
-static gint ett_gsm_map_sm_MT_ForwardSM_Arg;
-static gint ett_gsm_map_sm_CorrelationID;
-static gint ett_gsm_map_sm_MT_ForwardSM_Res;
-static gint ett_gsm_map_sm_SM_RP_DA;
-static gint ett_gsm_map_sm_SM_RP_OA;
-static gint ett_gsm_map_sm_ReportSM_DeliveryStatusArg;
-static gint ett_gsm_map_sm_ReportSM_DeliveryStatusRes;
-static gint ett_gsm_map_sm_AlertServiceCentreArg;
-static gint ett_gsm_map_sm_InformServiceCentreArg;
-static gint ett_gsm_map_sm_MW_Status;
-static gint ett_gsm_map_sm_ReadyForSM_Arg;
-static gint ett_gsm_map_sm_ReadyForSM_Res;
-static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg;
-static gint ett_gsm_map_sm_MT_ForwardSM_VGCS_Res;
-static gint ett_gsm_map_sm_DispatcherList;
-static gint ett_gsm_map_sm_AdditionalDispatcherList;
+static int ett_gsm_map_sm_RoutingInfoForSM_Arg;
+static int ett_gsm_map_sm_RoutingInfoForSM_Res;
+static int ett_gsm_map_sm_IP_SM_GW_Guidance;
+static int ett_gsm_map_sm_LocationInfoWithLMSI;
+static int ett_gsm_map_sm_Additional_Number;
+static int ett_gsm_map_sm_MO_ForwardSM_Arg;
+static int ett_gsm_map_sm_MO_ForwardSM_Res;
+static int ett_gsm_map_sm_MT_ForwardSM_Arg;
+static int ett_gsm_map_sm_CorrelationID;
+static int ett_gsm_map_sm_MT_ForwardSM_Res;
+static int ett_gsm_map_sm_SM_RP_DA;
+static int ett_gsm_map_sm_SM_RP_OA;
+static int ett_gsm_map_sm_ReportSM_DeliveryStatusArg;
+static int ett_gsm_map_sm_ReportSM_DeliveryStatusRes;
+static int ett_gsm_map_sm_AlertServiceCentreArg;
+static int ett_gsm_map_sm_InformServiceCentreArg;
+static int ett_gsm_map_sm_MW_Status;
+static int ett_gsm_map_sm_ReadyForSM_Arg;
+static int ett_gsm_map_sm_ReadyForSM_Res;
+static int ett_gsm_map_sm_MT_ForwardSM_VGCS_Arg;
+static int ett_gsm_map_sm_MT_ForwardSM_VGCS_Res;
+static int ett_gsm_map_sm_DispatcherList;
+static int ett_gsm_map_sm_AdditionalDispatcherList;
/* --- Module MAP-OM-DataTypes --- --- --- */
-static gint ett_gsm_map_om_ActivateTraceModeArg;
-static gint ett_gsm_map_om_MDT_Configuration;
-static gint ett_gsm_map_om_MDT_Allowed_PLMNId_List;
-static gint ett_gsm_map_om_AreaScope;
-static gint ett_gsm_map_om_CGI_List;
-static gint ett_gsm_map_om_E_UTRAN_CGI_List;
-static gint ett_gsm_map_om_RoutingAreaId_List;
-static gint ett_gsm_map_om_LocationAreaId_List;
-static gint ett_gsm_map_om_TrackingAreaId_List;
-static gint ett_gsm_map_om_TraceDepthList;
-static gint ett_gsm_map_om_TraceNE_TypeList;
-static gint ett_gsm_map_om_TraceInterfaceList;
-static gint ett_gsm_map_om_MSC_S_InterfaceList;
-static gint ett_gsm_map_om_MGW_InterfaceList;
-static gint ett_gsm_map_om_SGSN_InterfaceList;
-static gint ett_gsm_map_om_GGSN_InterfaceList;
-static gint ett_gsm_map_om_RNC_InterfaceList;
-static gint ett_gsm_map_om_BMSC_InterfaceList;
-static gint ett_gsm_map_om_MME_InterfaceList;
-static gint ett_gsm_map_om_SGW_InterfaceList;
-static gint ett_gsm_map_om_PGW_InterfaceList;
-static gint ett_gsm_map_om_ENB_InterfaceList;
-static gint ett_gsm_map_om_TraceEventList;
-static gint ett_gsm_map_om_MSC_S_EventList;
-static gint ett_gsm_map_om_MGW_EventList;
-static gint ett_gsm_map_om_SGSN_EventList;
-static gint ett_gsm_map_om_GGSN_EventList;
-static gint ett_gsm_map_om_BMSC_EventList;
-static gint ett_gsm_map_om_MME_EventList;
-static gint ett_gsm_map_om_SGW_EventList;
-static gint ett_gsm_map_om_PGW_EventList;
-static gint ett_gsm_map_om_TracePropagationList;
-static gint ett_gsm_map_om_ActivateTraceModeRes;
-static gint ett_gsm_map_om_DeactivateTraceModeArg;
-static gint ett_gsm_map_om_DeactivateTraceModeRes;
+static int ett_gsm_map_om_ActivateTraceModeArg;
+static int ett_gsm_map_om_MDT_Configuration;
+static int ett_gsm_map_om_MDT_Allowed_PLMNId_List;
+static int ett_gsm_map_om_AreaScope;
+static int ett_gsm_map_om_CGI_List;
+static int ett_gsm_map_om_E_UTRAN_CGI_List;
+static int ett_gsm_map_om_RoutingAreaId_List;
+static int ett_gsm_map_om_LocationAreaId_List;
+static int ett_gsm_map_om_TrackingAreaId_List;
+static int ett_gsm_map_om_TraceDepthList;
+static int ett_gsm_map_om_TraceNE_TypeList;
+static int ett_gsm_map_om_TraceInterfaceList;
+static int ett_gsm_map_om_MSC_S_InterfaceList;
+static int ett_gsm_map_om_MGW_InterfaceList;
+static int ett_gsm_map_om_SGSN_InterfaceList;
+static int ett_gsm_map_om_GGSN_InterfaceList;
+static int ett_gsm_map_om_RNC_InterfaceList;
+static int ett_gsm_map_om_BMSC_InterfaceList;
+static int ett_gsm_map_om_MME_InterfaceList;
+static int ett_gsm_map_om_SGW_InterfaceList;
+static int ett_gsm_map_om_PGW_InterfaceList;
+static int ett_gsm_map_om_ENB_InterfaceList;
+static int ett_gsm_map_om_TraceEventList;
+static int ett_gsm_map_om_MSC_S_EventList;
+static int ett_gsm_map_om_MGW_EventList;
+static int ett_gsm_map_om_SGSN_EventList;
+static int ett_gsm_map_om_GGSN_EventList;
+static int ett_gsm_map_om_BMSC_EventList;
+static int ett_gsm_map_om_MME_EventList;
+static int ett_gsm_map_om_SGW_EventList;
+static int ett_gsm_map_om_PGW_EventList;
+static int ett_gsm_map_om_TracePropagationList;
+static int ett_gsm_map_om_ActivateTraceModeRes;
+static int ett_gsm_map_om_DeactivateTraceModeArg;
+static int ett_gsm_map_om_DeactivateTraceModeRes;
/* --- Module MAP-MS-DataTypes --- --- --- */
-static gint ett_gsm_map_ms_UpdateLocationArg;
-static gint ett_gsm_map_ms_VLR_Capability;
-static gint ett_gsm_map_ms_SupportedRAT_Types;
-static gint ett_gsm_map_ms_SuperChargerInfo;
-static gint ett_gsm_map_ms_SupportedLCS_CapabilitySets;
-static gint ett_gsm_map_ms_UpdateLocationRes;
-static gint ett_gsm_map_ms_ADD_Info;
-static gint ett_gsm_map_ms_PagingArea;
-static gint ett_gsm_map_ms_LocationArea;
-static gint ett_gsm_map_ms_CancelLocationArg_U;
-static gint ett_gsm_map_ms_CancelLocationRes;
-static gint ett_gsm_map_ms_PurgeMS_Arg_U;
-static gint ett_gsm_map_ms_PurgeMS_Res;
-static gint ett_gsm_map_ms_SendIdentificationArg;
-static gint ett_gsm_map_ms_SendIdentificationRes_U;
-static gint ett_gsm_map_ms_AuthenticationSetList;
-static gint ett_gsm_map_ms_TripletList;
-static gint ett_gsm_map_ms_QuintupletList;
-static gint ett_gsm_map_ms_AuthenticationTriplet;
-static gint ett_gsm_map_ms_AuthenticationQuintuplet;
-static gint ett_gsm_map_ms_CurrentSecurityContext;
-static gint ett_gsm_map_ms_GSM_SecurityContextData;
-static gint ett_gsm_map_ms_UMTS_SecurityContextData;
-static gint ett_gsm_map_ms_AuthenticationFailureReportArg;
-static gint ett_gsm_map_ms_AuthenticationFailureReportRes;
-static gint ett_gsm_map_ms_UpdateGprsLocationArg;
-static gint ett_gsm_map_ms_EPS_Info;
-static gint ett_gsm_map_ms_PDN_GW_Update;
-static gint ett_gsm_map_ms_ISR_Information;
-static gint ett_gsm_map_ms_SGSN_Capability;
-static gint ett_gsm_map_ms_SupportedFeatures;
-static gint ett_gsm_map_ms_Ext_SupportedFeatures;
-static gint ett_gsm_map_ms_UpdateGprsLocationRes;
-static gint ett_gsm_map_ms_EPLMN_List;
-static gint ett_gsm_map_ms_AdjacentPLMN_List;
-static gint ett_gsm_map_ms_ForwardAccessSignalling_Arg_U;
-static gint ett_gsm_map_ms_AllowedUMTS_Algorithms;
-static gint ett_gsm_map_ms_PrepareHO_Arg_U;
-static gint ett_gsm_map_ms_LCLS_Negotiation;
-static gint ett_gsm_map_ms_LCLS_ConfigurationPreference;
-static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverList;
-static gint ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo;
-static gint ett_gsm_map_ms_RadioResourceList;
-static gint ett_gsm_map_ms_RadioResource;
-static gint ett_gsm_map_ms_PrepareHO_Res_U;
-static gint ett_gsm_map_ms_SelectedUMTS_Algorithms;
-static gint ett_gsm_map_ms_ChosenRadioResourceInformation;
-static gint ett_gsm_map_ms_PrepareSubsequentHO_Arg_U;
-static gint ett_gsm_map_ms_PrepareSubsequentHO_Res_U;
-static gint ett_gsm_map_ms_ProcessAccessSignalling_Arg_U;
-static gint ett_gsm_map_ms_AoIPCodecsList;
-static gint ett_gsm_map_ms_SupportedCodecsList;
-static gint ett_gsm_map_ms_CodecList;
-static gint ett_gsm_map_ms_SendEndSignal_Arg_U;
-static gint ett_gsm_map_ms_SendEndSignal_Res;
-static gint ett_gsm_map_ms_RelocationNumberList;
-static gint ett_gsm_map_ms_RelocationNumber;
-static gint ett_gsm_map_ms_SendAuthenticationInfoArg;
-static gint ett_gsm_map_ms_Re_synchronisationInfo;
-static gint ett_gsm_map_ms_SendAuthenticationInfoRes_U;
-static gint ett_gsm_map_ms_EPS_AuthenticationSetList;
-static gint ett_gsm_map_ms_EPC_AV;
-static gint ett_gsm_map_ms_CheckIMEI_Arg;
-static gint ett_gsm_map_ms_CheckIMEI_Res;
-static gint ett_gsm_map_ms_RequestedEquipmentInfo;
-static gint ett_gsm_map_ms_UESBI_Iu;
-static gint ett_gsm_map_ms_InsertSubscriberDataArg;
-static gint ett_gsm_map_ms_EDRX_Cycle_Length_List;
-static gint ett_gsm_map_ms_EDRX_Cycle_Length;
-static gint ett_gsm_map_ms_Reset_Id_List;
-static gint ett_gsm_map_ms_IMSI_GroupIdList;
-static gint ett_gsm_map_ms_IMSI_GroupId;
-static gint ett_gsm_map_ms_CSG_SubscriptionDataList;
-static gint ett_gsm_map_ms_CSG_SubscriptionData;
-static gint ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList;
-static gint ett_gsm_map_ms_LIPA_AllowedAPNList;
-static gint ett_gsm_map_ms_EPS_SubscriptionData;
-static gint ett_gsm_map_ms_APN_ConfigurationProfile;
-static gint ett_gsm_map_ms_EPS_DataList;
-static gint ett_gsm_map_ms_APN_Configuration;
-static gint ett_gsm_map_ms_EPS_QoS_Subscribed;
-static gint ett_gsm_map_ms_AMBR;
-static gint ett_gsm_map_ms_SpecificAPNInfoList;
-static gint ett_gsm_map_ms_SpecificAPNInfo;
-static gint ett_gsm_map_ms_Allocation_Retention_Priority;
-static gint ett_gsm_map_ms_PDN_GW_Identity;
-static gint ett_gsm_map_ms_WLAN_Offloadability;
-static gint ett_gsm_map_ms_AccessRestrictionData;
-static gint ett_gsm_map_ms_Ext_AccessRestrictionData;
-static gint ett_gsm_map_ms_AdjacentAccessRestrictionDataList;
-static gint ett_gsm_map_ms_AdjacentAccessRestrictionData;
-static gint ett_gsm_map_ms_LCSInformation;
-static gint ett_gsm_map_ms_GMLC_List;
-static gint ett_gsm_map_ms_GPRSDataList;
-static gint ett_gsm_map_ms_PDP_Context;
-static gint ett_gsm_map_ms_GPRSSubscriptionData;
-static gint ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo;
-static gint ett_gsm_map_ms_GPRS_CSI;
-static gint ett_gsm_map_ms_GPRS_CamelTDPDataList;
-static gint ett_gsm_map_ms_GPRS_CamelTDPData;
-static gint ett_gsm_map_ms_LSADataList;
-static gint ett_gsm_map_ms_LSAData;
-static gint ett_gsm_map_ms_LSAInformation;
-static gint ett_gsm_map_ms_SubscriberData;
-static gint ett_gsm_map_ms_BearerServiceList;
-static gint ett_gsm_map_ms_TeleserviceList;
-static gint ett_gsm_map_ms_ODB_Data;
-static gint ett_gsm_map_ms_ODB_GeneralData;
-static gint ett_gsm_map_ms_ODB_HPLMN_Data;
-static gint ett_gsm_map_ms_Ext_SS_InfoList;
-static gint ett_gsm_map_ms_Ext_SS_Info;
-static gint ett_gsm_map_ms_Ext_ForwInfo;
-static gint ett_gsm_map_ms_Ext_ForwFeatureList;
-static gint ett_gsm_map_ms_Ext_ForwFeature;
-static gint ett_gsm_map_ms_Ext_CallBarInfo;
-static gint ett_gsm_map_ms_Ext_CallBarFeatureList;
-static gint ett_gsm_map_ms_Ext_CallBarringFeature;
-static gint ett_gsm_map_ms_CUG_Info;
-static gint ett_gsm_map_ms_CUG_SubscriptionList;
-static gint ett_gsm_map_ms_CUG_Subscription;
-static gint ett_gsm_map_ms_CUG_FeatureList;
-static gint ett_gsm_map_ms_Ext_BasicServiceGroupList;
-static gint ett_gsm_map_ms_CUG_Feature;
-static gint ett_gsm_map_ms_Ext_SS_Data;
-static gint ett_gsm_map_ms_LCS_PrivacyExceptionList;
-static gint ett_gsm_map_ms_LCS_PrivacyClass;
-static gint ett_gsm_map_ms_ExternalClientList;
-static gint ett_gsm_map_ms_PLMNClientList;
-static gint ett_gsm_map_ms_Ext_ExternalClientList;
-static gint ett_gsm_map_ms_ExternalClient;
-static gint ett_gsm_map_ms_ServiceTypeList;
-static gint ett_gsm_map_ms_ServiceType;
-static gint ett_gsm_map_ms_MOLR_List;
-static gint ett_gsm_map_ms_MOLR_Class;
-static gint ett_gsm_map_ms_ZoneCodeList;
-static gint ett_gsm_map_ms_InsertSubscriberDataRes;
-static gint ett_gsm_map_ms_DeleteSubscriberDataArg;
-static gint ett_gsm_map_ms_SpecificCSI_Withdraw;
-static gint ett_gsm_map_ms_GPRSSubscriptionDataWithdraw;
-static gint ett_gsm_map_ms_EPS_SubscriptionDataWithdraw;
-static gint ett_gsm_map_ms_ContextIdList;
-static gint ett_gsm_map_ms_LSAInformationWithdraw;
-static gint ett_gsm_map_ms_LSAIdentityList;
-static gint ett_gsm_map_ms_BasicServiceList;
-static gint ett_gsm_map_ms_DeleteSubscriberDataRes;
-static gint ett_gsm_map_ms_VlrCamelSubscriptionInfo;
-static gint ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList;
-static gint ett_gsm_map_ms_MT_smsCAMELTDP_Criteria;
-static gint ett_gsm_map_ms_TPDU_TypeCriterion;
-static gint ett_gsm_map_ms_D_CSI;
-static gint ett_gsm_map_ms_DP_AnalysedInfoCriteriaList;
-static gint ett_gsm_map_ms_DP_AnalysedInfoCriterium;
-static gint ett_gsm_map_ms_SS_CSI;
-static gint ett_gsm_map_ms_SS_CamelData;
-static gint ett_gsm_map_ms_SS_EventList;
-static gint ett_gsm_map_ms_O_CSI;
-static gint ett_gsm_map_ms_O_BcsmCamelTDPDataList;
-static gint ett_gsm_map_ms_O_BcsmCamelTDPData;
-static gint ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList;
-static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList;
-static gint ett_gsm_map_ms_O_BcsmCamelTDP_Criteria;
-static gint ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria;
-static gint ett_gsm_map_ms_DestinationNumberCriteria;
-static gint ett_gsm_map_ms_DestinationNumberList;
-static gint ett_gsm_map_ms_DestinationNumberLengthList;
-static gint ett_gsm_map_ms_BasicServiceCriteria;
-static gint ett_gsm_map_ms_O_CauseValueCriteria;
-static gint ett_gsm_map_ms_T_CauseValueCriteria;
-static gint ett_gsm_map_ms_SupportedCamelPhases;
-static gint ett_gsm_map_ms_OfferedCamel4CSIs;
-static gint ett_gsm_map_ms_OfferedCamel4Functionalities;
-static gint ett_gsm_map_ms_SMS_CSI;
-static gint ett_gsm_map_ms_SMS_CAMEL_TDP_DataList;
-static gint ett_gsm_map_ms_SMS_CAMEL_TDP_Data;
-static gint ett_gsm_map_ms_M_CSI;
-static gint ett_gsm_map_ms_MG_CSI;
-static gint ett_gsm_map_ms_MobilityTriggers;
-static gint ett_gsm_map_ms_T_CSI;
-static gint ett_gsm_map_ms_T_BcsmCamelTDPDataList;
-static gint ett_gsm_map_ms_T_BcsmCamelTDPData;
-static gint ett_gsm_map_ms_SendRoutingInfoForGprsArg;
-static gint ett_gsm_map_ms_SendRoutingInfoForGprsRes;
-static gint ett_gsm_map_ms_FailureReportArg;
-static gint ett_gsm_map_ms_FailureReportRes;
-static gint ett_gsm_map_ms_NoteMsPresentForGprsArg;
-static gint ett_gsm_map_ms_NoteMsPresentForGprsRes;
-static gint ett_gsm_map_ms_ResetArg;
-static gint ett_gsm_map_ms_SendingNode_Number;
-static gint ett_gsm_map_ms_RestoreDataArg;
-static gint ett_gsm_map_ms_RestoreDataRes;
-static gint ett_gsm_map_ms_VBSDataList;
-static gint ett_gsm_map_ms_VGCSDataList;
-static gint ett_gsm_map_ms_VoiceGroupCallData;
-static gint ett_gsm_map_ms_AdditionalSubscriptions;
-static gint ett_gsm_map_ms_VoiceBroadcastData;
-static gint ett_gsm_map_ms_ProvideSubscriberInfoArg;
-static gint ett_gsm_map_ms_ProvideSubscriberInfoRes;
-static gint ett_gsm_map_ms_SubscriberInfo;
-static gint ett_gsm_map_ms_MNPInfoRes;
-static gint ett_gsm_map_ms_GPRSMSClass;
-static gint ett_gsm_map_ms_RequestedInfo;
-static gint ett_gsm_map_ms_RequestedNodes;
-static gint ett_gsm_map_ms_LocationInformation;
-static gint ett_gsm_map_ms_LocationInformationEPS;
-static gint ett_gsm_map_ms_LocationInformationGPRS;
-static gint ett_gsm_map_ms_LocationInformation5GS;
-static gint ett_gsm_map_ms_UserCSGInformation;
-static gint ett_gsm_map_ms_SubscriberState;
-static gint ett_gsm_map_ms_PS_SubscriberState;
-static gint ett_gsm_map_ms_PDP_ContextInfoList;
-static gint ett_gsm_map_ms_PDP_ContextInfo;
-static gint ett_gsm_map_ms_AnyTimeInterrogationArg;
-static gint ett_gsm_map_ms_AnyTimeInterrogationRes;
-static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg;
-static gint ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes;
-static gint ett_gsm_map_ms_CallWaitingData;
-static gint ett_gsm_map_ms_Ext_CwFeatureList;
-static gint ett_gsm_map_ms_Ext_CwFeature;
-static gint ett_gsm_map_ms_ClipData;
-static gint ett_gsm_map_ms_ClirData;
-static gint ett_gsm_map_ms_CallHoldData;
-static gint ett_gsm_map_ms_EctData;
-static gint ett_gsm_map_ms_RequestedSubscriptionInfo;
-static gint ett_gsm_map_ms_MSISDN_BS_List;
-static gint ett_gsm_map_ms_MSISDN_BS;
-static gint ett_gsm_map_ms_CallForwardingData;
-static gint ett_gsm_map_ms_CallBarringData;
-static gint ett_gsm_map_ms_ODB_Info;
-static gint ett_gsm_map_ms_CAMEL_SubscriptionInfo;
-static gint ett_gsm_map_ms_AnyTimeModificationArg;
-static gint ett_gsm_map_ms_ModificationRequestFor_CW_Info;
-static gint ett_gsm_map_ms_ModificationRequestFor_CH_Info;
-static gint ett_gsm_map_ms_ModificationRequestFor_ECT_Info;
-static gint ett_gsm_map_ms_ModificationRequestFor_CLIR_Info;
-static gint ett_gsm_map_ms_ModificationRequestFor_CLIP_Info;
-static gint ett_gsm_map_ms_ModificationRequestFor_CSG;
-static gint ett_gsm_map_ms_RequestedServingNode;
-static gint ett_gsm_map_ms_ServingNode;
-static gint ett_gsm_map_ms_AnyTimeModificationRes;
-static gint ett_gsm_map_ms_ModificationRequestFor_CF_Info;
-static gint ett_gsm_map_ms_ModificationRequestFor_CB_Info;
-static gint ett_gsm_map_ms_ModificationRequestFor_ODB_data;
-static gint ett_gsm_map_ms_ModificationRequestFor_CSI;
-static gint ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data;
-static gint ett_gsm_map_ms_NoteSubscriberDataModifiedArg;
-static gint ett_gsm_map_ms_NoteSubscriberDataModifiedRes;
-static gint ett_gsm_map_ms_NoteMM_EventArg;
-static gint ett_gsm_map_ms_NoteMM_EventRes;
-static gint ett_gsm_map_ms_Ext_SS_InfoFor_CSE;
-static gint ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE;
-static gint ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE;
-static gint ett_gsm_map_ms_UpdateVcsgLocationArg;
-static gint ett_gsm_map_ms_UpdateVcsgLocationRes;
-static gint ett_gsm_map_ms_CancelVcsgLocationArg;
-static gint ett_gsm_map_ms_CancelVcsgLocationRes;
+static int ett_gsm_map_ms_UpdateLocationArg;
+static int ett_gsm_map_ms_VLR_Capability;
+static int ett_gsm_map_ms_SupportedRAT_Types;
+static int ett_gsm_map_ms_SuperChargerInfo;
+static int ett_gsm_map_ms_SupportedLCS_CapabilitySets;
+static int ett_gsm_map_ms_UpdateLocationRes;
+static int ett_gsm_map_ms_ADD_Info;
+static int ett_gsm_map_ms_PagingArea;
+static int ett_gsm_map_ms_LocationArea;
+static int ett_gsm_map_ms_CancelLocationArg_U;
+static int ett_gsm_map_ms_CancelLocationRes;
+static int ett_gsm_map_ms_PurgeMS_Arg_U;
+static int ett_gsm_map_ms_PurgeMS_Res;
+static int ett_gsm_map_ms_SendIdentificationArg;
+static int ett_gsm_map_ms_SendIdentificationRes_U;
+static int ett_gsm_map_ms_AuthenticationSetList;
+static int ett_gsm_map_ms_TripletList;
+static int ett_gsm_map_ms_QuintupletList;
+static int ett_gsm_map_ms_AuthenticationTriplet;
+static int ett_gsm_map_ms_AuthenticationQuintuplet;
+static int ett_gsm_map_ms_CurrentSecurityContext;
+static int ett_gsm_map_ms_GSM_SecurityContextData;
+static int ett_gsm_map_ms_UMTS_SecurityContextData;
+static int ett_gsm_map_ms_AuthenticationFailureReportArg;
+static int ett_gsm_map_ms_AuthenticationFailureReportRes;
+static int ett_gsm_map_ms_UpdateGprsLocationArg;
+static int ett_gsm_map_ms_EPS_Info;
+static int ett_gsm_map_ms_PDN_GW_Update;
+static int ett_gsm_map_ms_ISR_Information;
+static int ett_gsm_map_ms_SGSN_Capability;
+static int ett_gsm_map_ms_SupportedFeatures;
+static int ett_gsm_map_ms_Ext_SupportedFeatures;
+static int ett_gsm_map_ms_UpdateGprsLocationRes;
+static int ett_gsm_map_ms_EPLMN_List;
+static int ett_gsm_map_ms_AdjacentPLMN_List;
+static int ett_gsm_map_ms_ForwardAccessSignalling_Arg_U;
+static int ett_gsm_map_ms_AllowedUMTS_Algorithms;
+static int ett_gsm_map_ms_PrepareHO_Arg_U;
+static int ett_gsm_map_ms_LCLS_Negotiation;
+static int ett_gsm_map_ms_LCLS_ConfigurationPreference;
+static int ett_gsm_map_ms_BSSMAP_ServiceHandoverList;
+static int ett_gsm_map_ms_BSSMAP_ServiceHandoverInfo;
+static int ett_gsm_map_ms_RadioResourceList;
+static int ett_gsm_map_ms_RadioResource;
+static int ett_gsm_map_ms_PrepareHO_Res_U;
+static int ett_gsm_map_ms_SelectedUMTS_Algorithms;
+static int ett_gsm_map_ms_ChosenRadioResourceInformation;
+static int ett_gsm_map_ms_PrepareSubsequentHO_Arg_U;
+static int ett_gsm_map_ms_PrepareSubsequentHO_Res_U;
+static int ett_gsm_map_ms_ProcessAccessSignalling_Arg_U;
+static int ett_gsm_map_ms_AoIPCodecsList;
+static int ett_gsm_map_ms_SupportedCodecsList;
+static int ett_gsm_map_ms_CodecList;
+static int ett_gsm_map_ms_SendEndSignal_Arg_U;
+static int ett_gsm_map_ms_SendEndSignal_Res;
+static int ett_gsm_map_ms_RelocationNumberList;
+static int ett_gsm_map_ms_RelocationNumber;
+static int ett_gsm_map_ms_SendAuthenticationInfoArg;
+static int ett_gsm_map_ms_Re_synchronisationInfo;
+static int ett_gsm_map_ms_SendAuthenticationInfoRes_U;
+static int ett_gsm_map_ms_EPS_AuthenticationSetList;
+static int ett_gsm_map_ms_EPC_AV;
+static int ett_gsm_map_ms_CheckIMEI_Arg;
+static int ett_gsm_map_ms_CheckIMEI_Res;
+static int ett_gsm_map_ms_RequestedEquipmentInfo;
+static int ett_gsm_map_ms_UESBI_Iu;
+static int ett_gsm_map_ms_InsertSubscriberDataArg;
+static int ett_gsm_map_ms_EDRX_Cycle_Length_List;
+static int ett_gsm_map_ms_EDRX_Cycle_Length;
+static int ett_gsm_map_ms_Reset_Id_List;
+static int ett_gsm_map_ms_IMSI_GroupIdList;
+static int ett_gsm_map_ms_IMSI_GroupId;
+static int ett_gsm_map_ms_CSG_SubscriptionDataList;
+static int ett_gsm_map_ms_CSG_SubscriptionData;
+static int ett_gsm_map_ms_VPLMN_CSG_SubscriptionDataList;
+static int ett_gsm_map_ms_LIPA_AllowedAPNList;
+static int ett_gsm_map_ms_EPS_SubscriptionData;
+static int ett_gsm_map_ms_APN_ConfigurationProfile;
+static int ett_gsm_map_ms_EPS_DataList;
+static int ett_gsm_map_ms_APN_Configuration;
+static int ett_gsm_map_ms_EPS_QoS_Subscribed;
+static int ett_gsm_map_ms_AMBR;
+static int ett_gsm_map_ms_SpecificAPNInfoList;
+static int ett_gsm_map_ms_SpecificAPNInfo;
+static int ett_gsm_map_ms_Allocation_Retention_Priority;
+static int ett_gsm_map_ms_PDN_GW_Identity;
+static int ett_gsm_map_ms_WLAN_Offloadability;
+static int ett_gsm_map_ms_AccessRestrictionData;
+static int ett_gsm_map_ms_Ext_AccessRestrictionData;
+static int ett_gsm_map_ms_AdjacentAccessRestrictionDataList;
+static int ett_gsm_map_ms_AdjacentAccessRestrictionData;
+static int ett_gsm_map_ms_LCSInformation;
+static int ett_gsm_map_ms_GMLC_List;
+static int ett_gsm_map_ms_GPRSDataList;
+static int ett_gsm_map_ms_PDP_Context;
+static int ett_gsm_map_ms_GPRSSubscriptionData;
+static int ett_gsm_map_ms_SGSN_CAMEL_SubscriptionInfo;
+static int ett_gsm_map_ms_GPRS_CSI;
+static int ett_gsm_map_ms_GPRS_CamelTDPDataList;
+static int ett_gsm_map_ms_GPRS_CamelTDPData;
+static int ett_gsm_map_ms_LSADataList;
+static int ett_gsm_map_ms_LSAData;
+static int ett_gsm_map_ms_LSAInformation;
+static int ett_gsm_map_ms_SubscriberData;
+static int ett_gsm_map_ms_BearerServiceList;
+static int ett_gsm_map_ms_TeleserviceList;
+static int ett_gsm_map_ms_ODB_Data;
+static int ett_gsm_map_ms_ODB_GeneralData;
+static int ett_gsm_map_ms_ODB_HPLMN_Data;
+static int ett_gsm_map_ms_Ext_SS_InfoList;
+static int ett_gsm_map_ms_Ext_SS_Info;
+static int ett_gsm_map_ms_Ext_ForwInfo;
+static int ett_gsm_map_ms_Ext_ForwFeatureList;
+static int ett_gsm_map_ms_Ext_ForwFeature;
+static int ett_gsm_map_ms_Ext_CallBarInfo;
+static int ett_gsm_map_ms_Ext_CallBarFeatureList;
+static int ett_gsm_map_ms_Ext_CallBarringFeature;
+static int ett_gsm_map_ms_CUG_Info;
+static int ett_gsm_map_ms_CUG_SubscriptionList;
+static int ett_gsm_map_ms_CUG_Subscription;
+static int ett_gsm_map_ms_CUG_FeatureList;
+static int ett_gsm_map_ms_Ext_BasicServiceGroupList;
+static int ett_gsm_map_ms_CUG_Feature;
+static int ett_gsm_map_ms_Ext_SS_Data;
+static int ett_gsm_map_ms_LCS_PrivacyExceptionList;
+static int ett_gsm_map_ms_LCS_PrivacyClass;
+static int ett_gsm_map_ms_ExternalClientList;
+static int ett_gsm_map_ms_PLMNClientList;
+static int ett_gsm_map_ms_Ext_ExternalClientList;
+static int ett_gsm_map_ms_ExternalClient;
+static int ett_gsm_map_ms_ServiceTypeList;
+static int ett_gsm_map_ms_ServiceType;
+static int ett_gsm_map_ms_MOLR_List;
+static int ett_gsm_map_ms_MOLR_Class;
+static int ett_gsm_map_ms_ZoneCodeList;
+static int ett_gsm_map_ms_InsertSubscriberDataRes;
+static int ett_gsm_map_ms_DeleteSubscriberDataArg;
+static int ett_gsm_map_ms_SpecificCSI_Withdraw;
+static int ett_gsm_map_ms_GPRSSubscriptionDataWithdraw;
+static int ett_gsm_map_ms_EPS_SubscriptionDataWithdraw;
+static int ett_gsm_map_ms_ContextIdList;
+static int ett_gsm_map_ms_LSAInformationWithdraw;
+static int ett_gsm_map_ms_LSAIdentityList;
+static int ett_gsm_map_ms_BasicServiceList;
+static int ett_gsm_map_ms_DeleteSubscriberDataRes;
+static int ett_gsm_map_ms_VlrCamelSubscriptionInfo;
+static int ett_gsm_map_ms_MT_smsCAMELTDP_CriteriaList;
+static int ett_gsm_map_ms_MT_smsCAMELTDP_Criteria;
+static int ett_gsm_map_ms_TPDU_TypeCriterion;
+static int ett_gsm_map_ms_D_CSI;
+static int ett_gsm_map_ms_DP_AnalysedInfoCriteriaList;
+static int ett_gsm_map_ms_DP_AnalysedInfoCriterium;
+static int ett_gsm_map_ms_SS_CSI;
+static int ett_gsm_map_ms_SS_CamelData;
+static int ett_gsm_map_ms_SS_EventList;
+static int ett_gsm_map_ms_O_CSI;
+static int ett_gsm_map_ms_O_BcsmCamelTDPDataList;
+static int ett_gsm_map_ms_O_BcsmCamelTDPData;
+static int ett_gsm_map_ms_O_BcsmCamelTDPCriteriaList;
+static int ett_gsm_map_ms_T_BCSM_CAMEL_TDP_CriteriaList;
+static int ett_gsm_map_ms_O_BcsmCamelTDP_Criteria;
+static int ett_gsm_map_ms_T_BCSM_CAMEL_TDP_Criteria;
+static int ett_gsm_map_ms_DestinationNumberCriteria;
+static int ett_gsm_map_ms_DestinationNumberList;
+static int ett_gsm_map_ms_DestinationNumberLengthList;
+static int ett_gsm_map_ms_BasicServiceCriteria;
+static int ett_gsm_map_ms_O_CauseValueCriteria;
+static int ett_gsm_map_ms_T_CauseValueCriteria;
+static int ett_gsm_map_ms_SupportedCamelPhases;
+static int ett_gsm_map_ms_OfferedCamel4CSIs;
+static int ett_gsm_map_ms_OfferedCamel4Functionalities;
+static int ett_gsm_map_ms_SMS_CSI;
+static int ett_gsm_map_ms_SMS_CAMEL_TDP_DataList;
+static int ett_gsm_map_ms_SMS_CAMEL_TDP_Data;
+static int ett_gsm_map_ms_M_CSI;
+static int ett_gsm_map_ms_MG_CSI;
+static int ett_gsm_map_ms_MobilityTriggers;
+static int ett_gsm_map_ms_T_CSI;
+static int ett_gsm_map_ms_T_BcsmCamelTDPDataList;
+static int ett_gsm_map_ms_T_BcsmCamelTDPData;
+static int ett_gsm_map_ms_SendRoutingInfoForGprsArg;
+static int ett_gsm_map_ms_SendRoutingInfoForGprsRes;
+static int ett_gsm_map_ms_FailureReportArg;
+static int ett_gsm_map_ms_FailureReportRes;
+static int ett_gsm_map_ms_NoteMsPresentForGprsArg;
+static int ett_gsm_map_ms_NoteMsPresentForGprsRes;
+static int ett_gsm_map_ms_ResetArg;
+static int ett_gsm_map_ms_SendingNode_Number;
+static int ett_gsm_map_ms_RestoreDataArg;
+static int ett_gsm_map_ms_RestoreDataRes;
+static int ett_gsm_map_ms_VBSDataList;
+static int ett_gsm_map_ms_VGCSDataList;
+static int ett_gsm_map_ms_VoiceGroupCallData;
+static int ett_gsm_map_ms_AdditionalSubscriptions;
+static int ett_gsm_map_ms_VoiceBroadcastData;
+static int ett_gsm_map_ms_ProvideSubscriberInfoArg;
+static int ett_gsm_map_ms_ProvideSubscriberInfoRes;
+static int ett_gsm_map_ms_SubscriberInfo;
+static int ett_gsm_map_ms_MNPInfoRes;
+static int ett_gsm_map_ms_GPRSMSClass;
+static int ett_gsm_map_ms_RequestedInfo;
+static int ett_gsm_map_ms_RequestedNodes;
+static int ett_gsm_map_ms_LocationInformation;
+static int ett_gsm_map_ms_LocationInformationEPS;
+static int ett_gsm_map_ms_LocationInformationGPRS;
+static int ett_gsm_map_ms_LocationInformation5GS;
+static int ett_gsm_map_ms_UserCSGInformation;
+static int ett_gsm_map_ms_SubscriberState;
+static int ett_gsm_map_ms_PS_SubscriberState;
+static int ett_gsm_map_ms_PDP_ContextInfoList;
+static int ett_gsm_map_ms_PDP_ContextInfo;
+static int ett_gsm_map_ms_AnyTimeInterrogationArg;
+static int ett_gsm_map_ms_AnyTimeInterrogationRes;
+static int ett_gsm_map_ms_AnyTimeSubscriptionInterrogationArg;
+static int ett_gsm_map_ms_AnyTimeSubscriptionInterrogationRes;
+static int ett_gsm_map_ms_CallWaitingData;
+static int ett_gsm_map_ms_Ext_CwFeatureList;
+static int ett_gsm_map_ms_Ext_CwFeature;
+static int ett_gsm_map_ms_ClipData;
+static int ett_gsm_map_ms_ClirData;
+static int ett_gsm_map_ms_CallHoldData;
+static int ett_gsm_map_ms_EctData;
+static int ett_gsm_map_ms_RequestedSubscriptionInfo;
+static int ett_gsm_map_ms_MSISDN_BS_List;
+static int ett_gsm_map_ms_MSISDN_BS;
+static int ett_gsm_map_ms_CallForwardingData;
+static int ett_gsm_map_ms_CallBarringData;
+static int ett_gsm_map_ms_ODB_Info;
+static int ett_gsm_map_ms_CAMEL_SubscriptionInfo;
+static int ett_gsm_map_ms_AnyTimeModificationArg;
+static int ett_gsm_map_ms_ModificationRequestFor_CW_Info;
+static int ett_gsm_map_ms_ModificationRequestFor_CH_Info;
+static int ett_gsm_map_ms_ModificationRequestFor_ECT_Info;
+static int ett_gsm_map_ms_ModificationRequestFor_CLIR_Info;
+static int ett_gsm_map_ms_ModificationRequestFor_CLIP_Info;
+static int ett_gsm_map_ms_ModificationRequestFor_CSG;
+static int ett_gsm_map_ms_RequestedServingNode;
+static int ett_gsm_map_ms_ServingNode;
+static int ett_gsm_map_ms_AnyTimeModificationRes;
+static int ett_gsm_map_ms_ModificationRequestFor_CF_Info;
+static int ett_gsm_map_ms_ModificationRequestFor_CB_Info;
+static int ett_gsm_map_ms_ModificationRequestFor_ODB_data;
+static int ett_gsm_map_ms_ModificationRequestFor_CSI;
+static int ett_gsm_map_ms_ModificationRequestFor_IP_SM_GW_Data;
+static int ett_gsm_map_ms_NoteSubscriberDataModifiedArg;
+static int ett_gsm_map_ms_NoteSubscriberDataModifiedRes;
+static int ett_gsm_map_ms_NoteMM_EventArg;
+static int ett_gsm_map_ms_NoteMM_EventRes;
+static int ett_gsm_map_ms_Ext_SS_InfoFor_CSE;
+static int ett_gsm_map_ms_Ext_ForwardingInfoFor_CSE;
+static int ett_gsm_map_ms_Ext_CallBarringInfoFor_CSE;
+static int ett_gsm_map_ms_UpdateVcsgLocationArg;
+static int ett_gsm_map_ms_UpdateVcsgLocationRes;
+static int ett_gsm_map_ms_CancelVcsgLocationArg;
+static int ett_gsm_map_ms_CancelVcsgLocationRes;
/* --- Module MAP-CH-DataTypes --- --- --- */
-static gint ett_gsm_map_ch_CUG_CheckInfo;
-static gint ett_gsm_map_ch_SendRoutingInfoArg;
-static gint ett_gsm_map_ch_SuppressMTSS;
-static gint ett_gsm_map_ch_SendRoutingInfoRes_U;
-static gint ett_gsm_map_ch_AllowedServices;
-static gint ett_gsm_map_ch_CCBS_Indicators;
-static gint ett_gsm_map_ch_RoutingInfo;
-static gint ett_gsm_map_ch_ForwardingData;
-static gint ett_gsm_map_ch_ProvideRoamingNumberArg;
-static gint ett_gsm_map_ch_ProvideRoamingNumberRes;
-static gint ett_gsm_map_ch_ResumeCallHandlingArg;
-static gint ett_gsm_map_ch_UU_Data;
-static gint ett_gsm_map_ch_ResumeCallHandlingRes;
-static gint ett_gsm_map_ch_CamelInfo;
-static gint ett_gsm_map_ch_ExtendedRoutingInfo;
-static gint ett_gsm_map_ch_CamelRoutingInfo;
-static gint ett_gsm_map_ch_GmscCamelSubscriptionInfo;
-static gint ett_gsm_map_ch_SetReportingStateArg;
-static gint ett_gsm_map_ch_SetReportingStateRes;
-static gint ett_gsm_map_ch_StatusReportArg;
-static gint ett_gsm_map_ch_EventReportData;
-static gint ett_gsm_map_ch_CallReportData;
-static gint ett_gsm_map_ch_StatusReportRes;
-static gint ett_gsm_map_ch_RemoteUserFreeArg;
-static gint ett_gsm_map_ch_RemoteUserFreeRes;
-static gint ett_gsm_map_ch_IST_AlertArg;
-static gint ett_gsm_map_ch_IST_AlertRes;
-static gint ett_gsm_map_ch_IST_CommandArg;
-static gint ett_gsm_map_ch_IST_CommandRes;
-static gint ett_gsm_map_ch_ReleaseResourcesArg;
-static gint ett_gsm_map_ch_ReleaseResourcesRes;
+static int ett_gsm_map_ch_CUG_CheckInfo;
+static int ett_gsm_map_ch_SendRoutingInfoArg;
+static int ett_gsm_map_ch_SuppressMTSS;
+static int ett_gsm_map_ch_SendRoutingInfoRes_U;
+static int ett_gsm_map_ch_AllowedServices;
+static int ett_gsm_map_ch_CCBS_Indicators;
+static int ett_gsm_map_ch_RoutingInfo;
+static int ett_gsm_map_ch_ForwardingData;
+static int ett_gsm_map_ch_ProvideRoamingNumberArg;
+static int ett_gsm_map_ch_ProvideRoamingNumberRes;
+static int ett_gsm_map_ch_ResumeCallHandlingArg;
+static int ett_gsm_map_ch_UU_Data;
+static int ett_gsm_map_ch_ResumeCallHandlingRes;
+static int ett_gsm_map_ch_CamelInfo;
+static int ett_gsm_map_ch_ExtendedRoutingInfo;
+static int ett_gsm_map_ch_CamelRoutingInfo;
+static int ett_gsm_map_ch_GmscCamelSubscriptionInfo;
+static int ett_gsm_map_ch_SetReportingStateArg;
+static int ett_gsm_map_ch_SetReportingStateRes;
+static int ett_gsm_map_ch_StatusReportArg;
+static int ett_gsm_map_ch_EventReportData;
+static int ett_gsm_map_ch_CallReportData;
+static int ett_gsm_map_ch_StatusReportRes;
+static int ett_gsm_map_ch_RemoteUserFreeArg;
+static int ett_gsm_map_ch_RemoteUserFreeRes;
+static int ett_gsm_map_ch_IST_AlertArg;
+static int ett_gsm_map_ch_IST_AlertRes;
+static int ett_gsm_map_ch_IST_CommandArg;
+static int ett_gsm_map_ch_IST_CommandRes;
+static int ett_gsm_map_ch_ReleaseResourcesArg;
+static int ett_gsm_map_ch_ReleaseResourcesRes;
/* --- Module MAP-LCS-DataTypes --- --- --- */
-static gint ett_gsm_map_lcs_RoutingInfoForLCS_Arg;
-static gint ett_gsm_map_lcs_RoutingInfoForLCS_Res;
-static gint ett_gsm_map_lcs_LCSLocationInfo;
-static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Arg;
-static gint ett_gsm_map_lcs_LocationType;
-static gint ett_gsm_map_lcs_DeferredLocationEventType;
-static gint ett_gsm_map_lcs_LCS_ClientID;
-static gint ett_gsm_map_lcs_LCSClientName;
-static gint ett_gsm_map_lcs_LCSRequestorID;
-static gint ett_gsm_map_lcs_LCS_QoS;
-static gint ett_gsm_map_lcs_ResponseTime;
-static gint ett_gsm_map_lcs_SupportedGADShapes;
-static gint ett_gsm_map_lcs_LCSCodeword;
-static gint ett_gsm_map_lcs_LCS_PrivacyCheck;
-static gint ett_gsm_map_lcs_AreaEventInfo;
-static gint ett_gsm_map_lcs_AreaDefinition;
-static gint ett_gsm_map_lcs_AreaList;
-static gint ett_gsm_map_lcs_Area;
-static gint ett_gsm_map_lcs_PeriodicLDRInfo;
-static gint ett_gsm_map_lcs_ReportingPLMNList;
-static gint ett_gsm_map_lcs_PLMNList;
-static gint ett_gsm_map_lcs_ReportingPLMN;
-static gint ett_gsm_map_lcs_ProvideSubscriberLocation_Res;
-static gint ett_gsm_map_lcs_SubscriberLocationReport_Arg;
-static gint ett_gsm_map_lcs_Deferredmt_lrData;
-static gint ett_gsm_map_lcs_ServingNodeAddress;
-static gint ett_gsm_map_lcs_SubscriberLocationReport_Res;
+static int ett_gsm_map_lcs_RoutingInfoForLCS_Arg;
+static int ett_gsm_map_lcs_RoutingInfoForLCS_Res;
+static int ett_gsm_map_lcs_LCSLocationInfo;
+static int ett_gsm_map_lcs_ProvideSubscriberLocation_Arg;
+static int ett_gsm_map_lcs_LocationType;
+static int ett_gsm_map_lcs_DeferredLocationEventType;
+static int ett_gsm_map_lcs_LCS_ClientID;
+static int ett_gsm_map_lcs_LCSClientName;
+static int ett_gsm_map_lcs_LCSRequestorID;
+static int ett_gsm_map_lcs_LCS_QoS;
+static int ett_gsm_map_lcs_ResponseTime;
+static int ett_gsm_map_lcs_SupportedGADShapes;
+static int ett_gsm_map_lcs_LCSCodeword;
+static int ett_gsm_map_lcs_LCS_PrivacyCheck;
+static int ett_gsm_map_lcs_AreaEventInfo;
+static int ett_gsm_map_lcs_AreaDefinition;
+static int ett_gsm_map_lcs_AreaList;
+static int ett_gsm_map_lcs_Area;
+static int ett_gsm_map_lcs_PeriodicLDRInfo;
+static int ett_gsm_map_lcs_ReportingPLMNList;
+static int ett_gsm_map_lcs_PLMNList;
+static int ett_gsm_map_lcs_ReportingPLMN;
+static int ett_gsm_map_lcs_ProvideSubscriberLocation_Res;
+static int ett_gsm_map_lcs_SubscriberLocationReport_Arg;
+static int ett_gsm_map_lcs_Deferredmt_lrData;
+static int ett_gsm_map_lcs_ServingNodeAddress;
+static int ett_gsm_map_lcs_SubscriberLocationReport_Res;
/* --- Module MAP-GR-DataTypes --- --- --- */
-static gint ett_gsm_map_gr_PrepareGroupCallArg;
-static gint ett_gsm_map_gr_PrepareGroupCallRes;
-static gint ett_gsm_map_gr_SendGroupCallEndSignalArg;
-static gint ett_gsm_map_gr_SendGroupCallEndSignalRes;
-static gint ett_gsm_map_gr_ForwardGroupCallSignallingArg;
-static gint ett_gsm_map_gr_ProcessGroupCallSignallingArg;
-static gint ett_gsm_map_gr_StateAttributes;
-static gint ett_gsm_map_gr_SendGroupCallInfoArg;
-static gint ett_gsm_map_gr_SendGroupCallInfoRes;
+static int ett_gsm_map_gr_PrepareGroupCallArg;
+static int ett_gsm_map_gr_PrepareGroupCallRes;
+static int ett_gsm_map_gr_SendGroupCallEndSignalArg;
+static int ett_gsm_map_gr_SendGroupCallEndSignalRes;
+static int ett_gsm_map_gr_ForwardGroupCallSignallingArg;
+static int ett_gsm_map_gr_ProcessGroupCallSignallingArg;
+static int ett_gsm_map_gr_StateAttributes;
+static int ett_gsm_map_gr_SendGroupCallInfoArg;
+static int ett_gsm_map_gr_SendGroupCallInfoRes;
/* --- Module MAP-DialogueInformation --- --- --- */
-static gint ett_gsm_map_dialogue_MAP_DialoguePDU;
-static gint ett_gsm_map_dialogue_MAP_OpenInfo;
-static gint ett_gsm_map_dialogue_MAP_AcceptInfo;
-static gint ett_gsm_map_dialogue_MAP_CloseInfo;
-static gint ett_gsm_map_dialogue_MAP_RefuseInfo;
-static gint ett_gsm_map_dialogue_MAP_UserAbortInfo;
-static gint ett_gsm_map_dialogue_MAP_UserAbortChoice;
-static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo;
+static int ett_gsm_map_dialogue_MAP_DialoguePDU;
+static int ett_gsm_map_dialogue_MAP_OpenInfo;
+static int ett_gsm_map_dialogue_MAP_AcceptInfo;
+static int ett_gsm_map_dialogue_MAP_CloseInfo;
+static int ett_gsm_map_dialogue_MAP_RefuseInfo;
+static int ett_gsm_map_dialogue_MAP_UserAbortInfo;
+static int ett_gsm_map_dialogue_MAP_UserAbortChoice;
+static int ett_gsm_map_dialogue_MAP_ProviderAbortInfo;
/* --- Module MAP-LocationServiceOperations --- --- --- */
@@ -2622,170 +2622,170 @@ static gint ett_gsm_map_dialogue_MAP_ProviderAbortInfo;
/* --- Module DummyMAP --- --- --- */
-static gint ett_gsm_old_Component;
-static gint ett_gsm_old_Invoke;
-static gint ett_gsm_old_ReturnResult;
-static gint ett_gsm_old_T_resultretres;
-static gint ett_gsm_old_ReturnError;
-static gint ett_gsm_old_Reject;
-static gint ett_gsm_old_T_invokeIDRej;
-static gint ett_gsm_old_T_problem;
-static gint ett_gsm_old_MAP_OPERATION;
-static gint ett_gsm_old_MAP_ERROR;
-static gint ett_gsm_old_Bss_APDU;
-static gint ett_gsm_old_ProvideSIWFSNumberArg;
-static gint ett_gsm_old_ProvideSIWFSNumberRes;
-static gint ett_gsm_old_PurgeMSArgV2;
-static gint ett_gsm_old_PrepareHO_ArgOld;
-static gint ett_gsm_old_PrepareHO_ResOld;
-static gint ett_gsm_old_SendAuthenticationInfoResOld;
-static gint ett_gsm_old_SendAuthenticationInfoResOld_item;
-static gint ett_gsm_old_SendIdentificationResV2;
-static gint ett_gsm_old_TripletListold;
-static gint ett_gsm_old_AuthenticationTriplet_v2;
-static gint ett_gsm_old_SIWFSSignallingModifyArg;
-static gint ett_gsm_old_SIWFSSignallingModifyRes;
-static gint ett_gsm_old_SecureTransportArg;
-static gint ett_gsm_old_SecureTransportErrorParam;
-static gint ett_gsm_old_SecureTransportRes;
-static gint ett_gsm_old_SecurityHeader;
-static gint ett_gsm_old_OriginalComponentIdentifier;
-static gint ett_gsm_old_OperationCode;
-static gint ett_gsm_old_ErrorCode;
-static gint ett_gsm_old_PlmnContainer_U;
-static gint ett_gsm_old_T_operatorSS_Code;
-static gint ett_gsm_old_ForwardSM_Arg;
-static gint ett_gsm_old_SM_RP_DAold;
-static gint ett_gsm_old_SM_RP_OAold;
-static gint ett_gsm_old_SendRoutingInfoArgV2;
-static gint ett_gsm_old_SendRoutingInfoResV2;
-static gint ett_gsm_old_BeginSubscriberActivityArg;
-static gint ett_gsm_old_RoutingInfoForSM_ArgV1;
-static gint ett_gsm_old_RoutingInfoForSM_ResV2;
-static gint ett_gsm_old_LocationInfoWithLMSIv2;
-static gint ett_gsm_old_LocationInfo;
-static gint ett_gsm_old_SendParametersArg;
-static gint ett_gsm_old_RequestParameterList;
-static gint ett_gsm_old_SentParameter;
-static gint ett_gsm_old_AuthenticationSetListOld;
-static gint ett_gsm_old_SentParameterList;
-static gint ett_gsm_old_ResetArgV1;
+static int ett_gsm_old_Component;
+static int ett_gsm_old_Invoke;
+static int ett_gsm_old_ReturnResult;
+static int ett_gsm_old_T_resultretres;
+static int ett_gsm_old_ReturnError;
+static int ett_gsm_old_Reject;
+static int ett_gsm_old_T_invokeIDRej;
+static int ett_gsm_old_T_problem;
+static int ett_gsm_old_MAP_OPERATION;
+static int ett_gsm_old_MAP_ERROR;
+static int ett_gsm_old_Bss_APDU;
+static int ett_gsm_old_ProvideSIWFSNumberArg;
+static int ett_gsm_old_ProvideSIWFSNumberRes;
+static int ett_gsm_old_PurgeMSArgV2;
+static int ett_gsm_old_PrepareHO_ArgOld;
+static int ett_gsm_old_PrepareHO_ResOld;
+static int ett_gsm_old_SendAuthenticationInfoResOld;
+static int ett_gsm_old_SendAuthenticationInfoResOld_item;
+static int ett_gsm_old_SendIdentificationResV2;
+static int ett_gsm_old_TripletListold;
+static int ett_gsm_old_AuthenticationTriplet_v2;
+static int ett_gsm_old_SIWFSSignallingModifyArg;
+static int ett_gsm_old_SIWFSSignallingModifyRes;
+static int ett_gsm_old_SecureTransportArg;
+static int ett_gsm_old_SecureTransportErrorParam;
+static int ett_gsm_old_SecureTransportRes;
+static int ett_gsm_old_SecurityHeader;
+static int ett_gsm_old_OriginalComponentIdentifier;
+static int ett_gsm_old_OperationCode;
+static int ett_gsm_old_ErrorCode;
+static int ett_gsm_old_PlmnContainer_U;
+static int ett_gsm_old_T_operatorSS_Code;
+static int ett_gsm_old_ForwardSM_Arg;
+static int ett_gsm_old_SM_RP_DAold;
+static int ett_gsm_old_SM_RP_OAold;
+static int ett_gsm_old_SendRoutingInfoArgV2;
+static int ett_gsm_old_SendRoutingInfoResV2;
+static int ett_gsm_old_BeginSubscriberActivityArg;
+static int ett_gsm_old_RoutingInfoForSM_ArgV1;
+static int ett_gsm_old_RoutingInfoForSM_ResV2;
+static int ett_gsm_old_LocationInfoWithLMSIv2;
+static int ett_gsm_old_LocationInfo;
+static int ett_gsm_old_SendParametersArg;
+static int ett_gsm_old_RequestParameterList;
+static int ett_gsm_old_SentParameter;
+static int ett_gsm_old_AuthenticationSetListOld;
+static int ett_gsm_old_SentParameterList;
+static int ett_gsm_old_ResetArgV1;
/* --- Module SS-DataTypes --- --- --- */
-static gint ett_gsm_ss_NotifySS_Arg;
-static gint ett_gsm_ss_ForwardChargeAdviceArg;
-static gint ett_gsm_ss_ChargingInformation;
-static gint ett_gsm_ss_ForwardCUG_InfoArg;
-static gint ett_gsm_ss_ECT_Indicator;
-static gint ett_gsm_ss_NameIndicator;
-static gint ett_gsm_ss_Name;
-static gint ett_gsm_ss_NameSet;
-static gint ett_gsm_ss_RDN;
-static gint ett_gsm_ss_RemotePartyNumber;
-static gint ett_gsm_ss_AccessRegisterCCEntryArg;
-static gint ett_gsm_ss_CallDeflectionArg;
-static gint ett_gsm_ss_UserUserServiceArg;
-static gint ett_gsm_ss_LocationNotificationArg;
-static gint ett_gsm_ss_DeferredLocationExt;
-static gint ett_gsm_ss_LocationNotificationRes;
-static gint ett_gsm_ss_LCS_MOLRArg;
-static gint ett_gsm_ss_MultiplePositioningProtocolPDUs;
-static gint ett_gsm_ss_LCS_MOLRRes;
-static gint ett_gsm_ss_LCS_AreaEventRequestArg;
-static gint ett_gsm_ss_LCS_AreaEventReportArg;
-static gint ett_gsm_ss_LCS_AreaEventCancellationArg;
-static gint ett_gsm_ss_LCS_PeriodicLocationRequestArg;
-static gint ett_gsm_ss_LCS_PeriodicLocationRequestRes;
-static gint ett_gsm_ss_LCS_LocationUpdateArg;
-static gint ett_gsm_ss_LCS_LocationUpdateRes;
-static gint ett_gsm_ss_LCS_PeriodicLocationCancellationArg;
-static gint ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg;
-static gint ett_gsm_ss_PeriodicLocation;
-static gint ett_gsm_ss_AreaEventReporting;
-static gint ett_gsm_ss_AreaList;
-static gint ett_gsm_ss_Area;
-static gint ett_gsm_ss_Location_Info;
-static gint ett_gsm_ss_MotionEventReporting;
-static gint ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes;
+static int ett_gsm_ss_NotifySS_Arg;
+static int ett_gsm_ss_ForwardChargeAdviceArg;
+static int ett_gsm_ss_ChargingInformation;
+static int ett_gsm_ss_ForwardCUG_InfoArg;
+static int ett_gsm_ss_ECT_Indicator;
+static int ett_gsm_ss_NameIndicator;
+static int ett_gsm_ss_Name;
+static int ett_gsm_ss_NameSet;
+static int ett_gsm_ss_RDN;
+static int ett_gsm_ss_RemotePartyNumber;
+static int ett_gsm_ss_AccessRegisterCCEntryArg;
+static int ett_gsm_ss_CallDeflectionArg;
+static int ett_gsm_ss_UserUserServiceArg;
+static int ett_gsm_ss_LocationNotificationArg;
+static int ett_gsm_ss_DeferredLocationExt;
+static int ett_gsm_ss_LocationNotificationRes;
+static int ett_gsm_ss_LCS_MOLRArg;
+static int ett_gsm_ss_MultiplePositioningProtocolPDUs;
+static int ett_gsm_ss_LCS_MOLRRes;
+static int ett_gsm_ss_LCS_AreaEventRequestArg;
+static int ett_gsm_ss_LCS_AreaEventReportArg;
+static int ett_gsm_ss_LCS_AreaEventCancellationArg;
+static int ett_gsm_ss_LCS_PeriodicLocationRequestArg;
+static int ett_gsm_ss_LCS_PeriodicLocationRequestRes;
+static int ett_gsm_ss_LCS_LocationUpdateArg;
+static int ett_gsm_ss_LCS_LocationUpdateRes;
+static int ett_gsm_ss_LCS_PeriodicLocationCancellationArg;
+static int ett_gsm_ss_LCS_PeriodicTriggeredInvokeArg;
+static int ett_gsm_ss_PeriodicLocation;
+static int ett_gsm_ss_AreaEventReporting;
+static int ett_gsm_ss_AreaList;
+static int ett_gsm_ss_Area;
+static int ett_gsm_ss_Location_Info;
+static int ett_gsm_ss_MotionEventReporting;
+static int ett_gsm_ss_LCS_PeriodicTriggeredInvokeRes;
/* --- Module SS-Operations --- --- --- */
/* --- Module EricssonMAP --- --- --- */
-static gint ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg;
-static gint ett_gsm_map_ericsson_ExtensionType;
-static gint ett_gsm_map_ericsson_IsdArgType;
-static gint ett_gsm_map_ericsson_IsdArgData;
-static gint ett_gsm_map_ericsson_PrivateFeatureData;
-static gint ett_gsm_map_ericsson_OickInfo;
-static gint ett_gsm_map_ericsson_SubscriptionTypeInfo;
-static gint ett_gsm_map_ericsson_IsdResType;
-static gint ett_gsm_map_ericsson_IsdResData;
-static gint ett_gsm_map_ericsson_DsdArgType;
-static gint ett_gsm_map_ericsson_DsdArgData;
-static gint ett_gsm_map_ericsson_SRIArgType;
-static gint ett_gsm_map_ericsson_SriArgData;
-static gint ett_gsm_map_ericsson_SRIResType;
-static gint ett_gsm_map_ericsson_SriResData;
-static gint ett_gsm_map_ericsson_PrnArgType;
-static gint ett_gsm_map_ericsson_PrnArgData;
-static gint ett_gsm_map_ericsson_UlArgType;
-static gint ett_gsm_map_ericsson_UlArgData;
-static gint ett_gsm_map_ericsson_PrivateFeatureUlArgData;
-static gint ett_gsm_map_ericsson_ExtraSignalInfo_U;
-static gint ett_gsm_map_ericsson_SaiArgType;
-static gint ett_gsm_map_ericsson_SaiResType;
-static gint ett_gsm_map_ericsson_AtiArgType;
-static gint ett_gsm_map_ericsson_AtiResType;
-static gint ett_gsm_map_ericsson_RdArgType;
-static gint ett_gsm_map_ericsson_RequestedInfoType;
-static gint ett_gsm_map_ericsson_ExtAtiArgType;
-static gint ett_gsm_map_ericsson_AtiArgData;
+static int ett_gsm_map_ericsson_EnhancedCheckIMEI_Arg;
+static int ett_gsm_map_ericsson_ExtensionType;
+static int ett_gsm_map_ericsson_IsdArgType;
+static int ett_gsm_map_ericsson_IsdArgData;
+static int ett_gsm_map_ericsson_PrivateFeatureData;
+static int ett_gsm_map_ericsson_OickInfo;
+static int ett_gsm_map_ericsson_SubscriptionTypeInfo;
+static int ett_gsm_map_ericsson_IsdResType;
+static int ett_gsm_map_ericsson_IsdResData;
+static int ett_gsm_map_ericsson_DsdArgType;
+static int ett_gsm_map_ericsson_DsdArgData;
+static int ett_gsm_map_ericsson_SRIArgType;
+static int ett_gsm_map_ericsson_SriArgData;
+static int ett_gsm_map_ericsson_SRIResType;
+static int ett_gsm_map_ericsson_SriResData;
+static int ett_gsm_map_ericsson_PrnArgType;
+static int ett_gsm_map_ericsson_PrnArgData;
+static int ett_gsm_map_ericsson_UlArgType;
+static int ett_gsm_map_ericsson_UlArgData;
+static int ett_gsm_map_ericsson_PrivateFeatureUlArgData;
+static int ett_gsm_map_ericsson_ExtraSignalInfo_U;
+static int ett_gsm_map_ericsson_SaiArgType;
+static int ett_gsm_map_ericsson_SaiResType;
+static int ett_gsm_map_ericsson_AtiArgType;
+static int ett_gsm_map_ericsson_AtiResType;
+static int ett_gsm_map_ericsson_RdArgType;
+static int ett_gsm_map_ericsson_RequestedInfoType;
+static int ett_gsm_map_ericsson_ExtAtiArgType;
+static int ett_gsm_map_ericsson_AtiArgData;
/* --- Module NokiaMAP-Extensions --- --- --- */
-static gint ett_NokiaMAP_Extensions_IsdArgExt_U;
-static gint ett_NokiaMAP_Extensions_DsdArgExt_U;
-static gint ett_NokiaMAP_Extensions_UlResExt_U;
-static gint ett_NokiaMAP_Extensions_ChargingAreaList;
-static gint ett_NokiaMAP_Extensions_RegionalChargingData;
-static gint ett_NokiaMAP_Extensions_SS_DataExtension_U;
-static gint ett_NokiaMAP_Extensions_SriExtension_U;
-static gint ett_NokiaMAP_Extensions_ExtraSignalInfo_U;
-static gint ett_NokiaMAP_Extensions_Nokia_CUG_Data;
-static gint ett_NokiaMAP_Extensions_SriResExtension_U;
-static gint ett_NokiaMAP_Extensions_RgData;
-static gint ett_NokiaMAP_Extensions_MemberList;
-static gint ett_NokiaMAP_Extensions_CanLocArgExt_U;
-static gint ett_NokiaMAP_Extensions_ATMargExt_U;
-static gint ett_NokiaMAP_Extensions_OlcmInfoTable;
-static gint ett_NokiaMAP_Extensions_OlcmInfo;
-static gint ett_NokiaMAP_Extensions_ATMresExt_U;
-static gint ett_NokiaMAP_Extensions_DTMargExt_U;
-static gint ett_NokiaMAP_Extensions_FraudInfo;
-static gint ett_NokiaMAP_Extensions_FraudData;
-static gint ett_NokiaMAP_Extensions_ServiceWithInfo;
-static gint ett_NokiaMAP_Extensions_ServiceListWithInfo;
-static gint ett_NokiaMAP_Extensions_INKey;
-static gint ett_NokiaMAP_Extensions_MKey;
-static gint ett_NokiaMAP_Extensions_SMSKey;
-static gint ett_NokiaMAP_Extensions_HO_Ext_U;
-static gint ett_NokiaMAP_Extensions_CodecListExt;
-static gint ett_NokiaMAP_Extensions_SelectedCodec;
-static gint ett_NokiaMAP_Extensions_AbsentSubscriberExt_U;
-static gint ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U;
-static gint ett_NokiaMAP_Extensions_RoutingCategoryExt_U;
-static gint ett_NokiaMAP_Extensions_SriForSMArgExt_U;
-static gint ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U;
-static gint ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U;
-static gint ett_NokiaMAP_Extensions_UdlArgExt_U;
-static gint ett_NokiaMAP_Extensions_RoamNotAllowedExt_U;
-static gint ett_NokiaMAP_Extensions_AnyTimeModArgExt_U;
-static gint ett_NokiaMAP_Extensions_AccessTypeExt;
-static gint ett_NokiaMAP_Extensions_AccessSubscriptionListExt;
-static gint ett_NokiaMAP_Extensions_AllowedServiceData;
+static int ett_NokiaMAP_Extensions_IsdArgExt_U;
+static int ett_NokiaMAP_Extensions_DsdArgExt_U;
+static int ett_NokiaMAP_Extensions_UlResExt_U;
+static int ett_NokiaMAP_Extensions_ChargingAreaList;
+static int ett_NokiaMAP_Extensions_RegionalChargingData;
+static int ett_NokiaMAP_Extensions_SS_DataExtension_U;
+static int ett_NokiaMAP_Extensions_SriExtension_U;
+static int ett_NokiaMAP_Extensions_ExtraSignalInfo_U;
+static int ett_NokiaMAP_Extensions_Nokia_CUG_Data;
+static int ett_NokiaMAP_Extensions_SriResExtension_U;
+static int ett_NokiaMAP_Extensions_RgData;
+static int ett_NokiaMAP_Extensions_MemberList;
+static int ett_NokiaMAP_Extensions_CanLocArgExt_U;
+static int ett_NokiaMAP_Extensions_ATMargExt_U;
+static int ett_NokiaMAP_Extensions_OlcmInfoTable;
+static int ett_NokiaMAP_Extensions_OlcmInfo;
+static int ett_NokiaMAP_Extensions_ATMresExt_U;
+static int ett_NokiaMAP_Extensions_DTMargExt_U;
+static int ett_NokiaMAP_Extensions_FraudInfo;
+static int ett_NokiaMAP_Extensions_FraudData;
+static int ett_NokiaMAP_Extensions_ServiceWithInfo;
+static int ett_NokiaMAP_Extensions_ServiceListWithInfo;
+static int ett_NokiaMAP_Extensions_INKey;
+static int ett_NokiaMAP_Extensions_MKey;
+static int ett_NokiaMAP_Extensions_SMSKey;
+static int ett_NokiaMAP_Extensions_HO_Ext_U;
+static int ett_NokiaMAP_Extensions_CodecListExt;
+static int ett_NokiaMAP_Extensions_SelectedCodec;
+static int ett_NokiaMAP_Extensions_AbsentSubscriberExt_U;
+static int ett_NokiaMAP_Extensions_ErrOlcmInfoTableExt_U;
+static int ett_NokiaMAP_Extensions_RoutingCategoryExt_U;
+static int ett_NokiaMAP_Extensions_SriForSMArgExt_U;
+static int ett_NokiaMAP_Extensions_ReportSMDelStatArgExt_U;
+static int ett_NokiaMAP_Extensions_MO_ForwardSM_ArgExt_U;
+static int ett_NokiaMAP_Extensions_UdlArgExt_U;
+static int ett_NokiaMAP_Extensions_RoamNotAllowedExt_U;
+static int ett_NokiaMAP_Extensions_AnyTimeModArgExt_U;
+static int ett_NokiaMAP_Extensions_AccessTypeExt;
+static int ett_NokiaMAP_Extensions_AccessSubscriptionListExt;
+static int ett_NokiaMAP_Extensions_AllowedServiceData;
static expert_field ei_gsm_map_unknown_sequence3;
static expert_field ei_gsm_map_unknown_sequence;
@@ -2806,7 +2806,7 @@ static dissector_table_t map_prop_err_opcode_table; /* proprietary operat
static range_t *global_ssn_range;
#define APPLICATON_CONTEXT_FROM_TRACE 0
static gint pref_application_context_version = APPLICATON_CONTEXT_FROM_TRACE;
-static gboolean pref_ericsson_proprietary_ext = FALSE;
+static bool pref_ericsson_proprietary_ext;
/* Global variables */
static guint32 opcode=0;
@@ -2815,8 +2815,8 @@ static int application_context_version;
static guint ProtocolId;
static guint AccessNetworkProtocolId;
static int gsm_map_tap;
-static guint8 gsmmap_pdu_type = 0;
-static guint8 gsm_map_pdu_size = 0;
+static guint8 gsmmap_pdu_type;
+static guint8 gsm_map_pdu_size;
#define SMS_ENCODING_NOT_SET 0
#define SMS_ENCODING_7BIT 1
diff --git a/epan/dissectors/packet-gsm_r_uus1.c b/epan/dissectors/packet-gsm_r_uus1.c
index 3197e4ce90..e78ee69e8c 100644
--- a/epan/dissectors/packet-gsm_r_uus1.c
+++ b/epan/dissectors/packet-gsm_r_uus1.c
@@ -111,8 +111,8 @@ static gint ett_gsm_r_uus1_alert_controller;
/* Preferences */
-static gboolean q931_u2u = FALSE;
-static gboolean gsm_a_u2u = TRUE;
+static bool q931_u2u;
+static bool gsm_a_u2u = true;
static expert_field ei_gsm_r_uus1_not_implemented_yet;
diff --git a/epan/dissectors/packet-gsm_rlcmac.c b/epan/dissectors/packet-gsm_rlcmac.c
index 61e6855c0c..6de68c4d5a 100644
--- a/epan/dissectors/packet-gsm_rlcmac.c
+++ b/epan/dissectors/packet-gsm_rlcmac.c
@@ -47,8 +47,8 @@
void proto_register_gsm_rlcmac(void);
void proto_reg_handoff_gsm_rlcmac(void);
-static dissector_handle_t lte_rrc_dl_dcch_handle = NULL;
-static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
+static dissector_handle_t lte_rrc_dl_dcch_handle;
+static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle;
/* private typedefs */
typedef struct
@@ -2255,7 +2255,7 @@ CSN_ChoiceElement_t IA_EGPRS_Choice[] =
static const
CSN_DESCR_BEGIN(IA_EGPRS_t)
M_UINT (IA_EGPRS_t, UnionType, 1, &hf_ia_egprs_uniontype ),
- M_CHOICE (IA_EGPRS_t, UnionType, IA_EGPRS_Choice, ElementsOf(IA_EGPRS_Choice)),
+ M_CHOICE (IA_EGPRS_t, UnionType, IA_EGPRS_Choice, array_length(IA_EGPRS_Choice)),
CSN_DESCR_END (IA_EGPRS_t)
static const
@@ -2411,7 +2411,7 @@ CSN_ChoiceElement_t PacketPollingID[] =
static const
CSN_DESCR_BEGIN(PacketPollingID_t)
- M_CHOICE (PacketPollingID_t, UnionType, PacketPollingID, ElementsOf(PacketPollingID), &hf_packet_polling_id_choice),
+ M_CHOICE (PacketPollingID_t, UnionType, PacketPollingID, array_length(PacketPollingID), &hf_packet_polling_id_choice),
CSN_DESCR_END (PacketPollingID_t)
static const
@@ -2493,7 +2493,7 @@ CSN_DESCR_BEGIN(PBCCH_Description_t)/*SI13*/
M_UINT (PBCCH_Description_t, TSC, 3, &hf_tsc),
M_UINT (PBCCH_Description_t, TN, 3, &hf_pbcch_description_tn),
- M_CHOICE (PBCCH_Description_t, UnionType, SI13_PBCCH_Description_Channel, ElementsOf(SI13_PBCCH_Description_Channel), &hf_pbcch_description_choice),
+ M_CHOICE (PBCCH_Description_t, UnionType, SI13_PBCCH_Description_Channel, array_length(SI13_PBCCH_Description_Channel), &hf_pbcch_description_choice),
CSN_DESCR_END (PBCCH_Description_t)
static const
@@ -2811,7 +2811,7 @@ CSN_ChoiceElement_t MS_RA_capability_value_Choice[] =
static const
CSN_DESCR_BEGIN(MS_RA_capability_value_t)
- M_CHOICE (MS_RA_capability_value_t, IndexOfAccTech, MS_RA_capability_value_Choice, ElementsOf(MS_RA_capability_value_Choice), &hf_ms_ra_capability_value_choice),
+ M_CHOICE (MS_RA_capability_value_t, IndexOfAccTech, MS_RA_capability_value_Choice, array_length(MS_RA_capability_value_Choice), &hf_ms_ra_capability_value_choice),
CSN_DESCR_END (MS_RA_capability_value_t)
/*
@@ -2859,7 +2859,7 @@ CSN_ChoiceElement_t MultibandChoice[] =
#if 0
static const
CSN_DESCR_BEGIN(Multiband_t)
- M_CHOICE (Multiband_t, Multiband, MultibandChoice, ElementsOf(MultibandChoice)),
+ M_CHOICE (Multiband_t, Multiband, MultibandChoice, array_length(MultibandChoice)),
CSN_DESCR_END (Multiband_t)
#endif
@@ -2985,7 +2985,7 @@ CSN_ChoiceElement_t PacketResourceRequestID[] =
static const
CSN_DESCR_BEGIN(PacketResourceRequestID_t)
- M_CHOICE (PacketResourceRequestID_t, UnionType, PacketResourceRequestID, ElementsOf(PacketResourceRequestID), &hf_packet_resource_request_id_choice),
+ M_CHOICE (PacketResourceRequestID_t, UnionType, PacketResourceRequestID, array_length(PacketResourceRequestID), &hf_packet_resource_request_id_choice),
CSN_DESCR_END (PacketResourceRequestID_t)
static const
@@ -3856,7 +3856,7 @@ CSN_ChoiceElement_t PacketUplinkID[] =
static const
CSN_DESCR_BEGIN(PacketUplinkID_t)
- M_CHOICE (PacketUplinkID_t, UnionType, PacketUplinkID, ElementsOf(PacketUplinkID), &hf_packet_uplink_id_choice),
+ M_CHOICE (PacketUplinkID_t, UnionType, PacketUplinkID, array_length(PacketUplinkID), &hf_packet_uplink_id_choice),
CSN_DESCR_END (PacketUplinkID_t)
static const
@@ -3988,7 +3988,7 @@ CSN_ChoiceElement_t PacketDownlinkID[] =
static const
CSN_DESCR_BEGIN(PacketDownlinkID_t)
- M_CHOICE (PacketDownlinkID_t, UnionType, PacketDownlinkID, ElementsOf(PacketDownlinkID), &hf_packet_downlink_id_choice),
+ M_CHOICE (PacketDownlinkID_t, UnionType, PacketDownlinkID, array_length(PacketDownlinkID), &hf_packet_downlink_id_choice),
CSN_DESCR_END (PacketDownlinkID_t)
static const
@@ -4134,7 +4134,7 @@ CSN_DESCR_END (PUAN_Fixed_Uplink_Allocation_t)
static const
CSN_DESCR_BEGIN (EC_Packet_Uplink_Ack_Nack_fai0_t)
- M_CHOICE_IL (EC_Packet_Uplink_Ack_Nack_fai0_t, EC_AckNack_Description_Type, EC_AckNack_Description_Type_Dependent_Contents, ElementsOf(EC_AckNack_Description_Type_Dependent_Contents), &hf_ec_acknack_description),
+ M_CHOICE_IL (EC_Packet_Uplink_Ack_Nack_fai0_t, EC_AckNack_Description_Type, EC_AckNack_Description_Type_Dependent_Contents, array_length(EC_AckNack_Description_Type_Dependent_Contents), &hf_ec_acknack_description),
M_TYPE (EC_Packet_Uplink_Ack_Nack_fai0_t, PUAN_Fixed_Uplink_Allocation, PUAN_Fixed_Uplink_Allocation_t),
M_UINT (EC_Packet_Uplink_Ack_Nack_fai0_t, RESEGMENT, 1, &hf_resegment),
@@ -4176,7 +4176,7 @@ CSN_DESCR_BEGIN (EC_Packet_Uplink_Ack_Nack_t)
M_UINT (EC_Packet_Uplink_Ack_Nack_t, USED_DL_COVERAGE_CLASS, 2, &hf_used_dl_coverage_class),
M_UINT (EC_Packet_Uplink_Ack_Nack_t, UPLINK_TFI, 5, &hf_uplink_tfi),
- M_CHOICE_IL (EC_Packet_Uplink_Ack_Nack_t, Final_Ack_Indicator, PUAN_FAI_Value_Dependent_Contents, ElementsOf(PUAN_FAI_Value_Dependent_Contents), &hf_final_ack_indication),
+ M_CHOICE_IL (EC_Packet_Uplink_Ack_Nack_t, Final_Ack_Indicator, PUAN_FAI_Value_Dependent_Contents, array_length(PUAN_FAI_Value_Dependent_Contents), &hf_final_ack_indication),
M_NEXT_EXIST (EC_Packet_Uplink_Ack_Nack_t, Exist_EC_Packet_Timing_Advance, 1, &hf_ec_packet_timing_advance_exist),
M_TYPE (EC_Packet_Uplink_Ack_Nack_t, EC_Packet_Timing_Advance, EC_Packet_Timing_Advance_t),
@@ -4365,7 +4365,7 @@ CSN_DESCR_BEGIN (EC_Packet_Downlink_Ack_Nack_t)
M_UINT (EC_Packet_Downlink_Ack_Nack_t, MESSAGE_TYPE, 5, &hf_ec_ul_message_type),
M_UINT (EC_Packet_Downlink_Ack_Nack_t, DOWNLINK_TFI, 5, &hf_downlink_tfi),
M_UINT (EC_Packet_Downlink_Ack_Nack_t, MS_OUT_OF_MEMORY, 1, &hf_egprs_pd_acknack_ms_out_of_memory),
- M_CHOICE_IL (EC_Packet_Downlink_Ack_Nack_t, Final_Ack_Indicator, PDAN_FAI_Value_Dependent_Contents, ElementsOf(PDAN_FAI_Value_Dependent_Contents), &hf_final_ack_indication),
+ M_CHOICE_IL (EC_Packet_Downlink_Ack_Nack_t, Final_Ack_Indicator, PDAN_FAI_Value_Dependent_Contents, array_length(PDAN_FAI_Value_Dependent_Contents), &hf_final_ack_indication),
M_NEXT_EXIST (EC_Packet_Downlink_Ack_Nack_t, Exist_EC_Channel_Quality_Report, 2, &hf_ec_channel_quality_report_exist),
M_TYPE (EC_Packet_Downlink_Ack_Nack_t, EC_Channel_Quality_Report, EC_Channel_Quality_Report_t),
@@ -4587,7 +4587,7 @@ CSN_ChoiceElement_t PacketPowerControlTimingAdvanceID[] =
static const
CSN_DESCR_BEGIN(PacketPowerControlTimingAdvanceID_t)
- M_CHOICE (PacketPowerControlTimingAdvanceID_t, UnionType, PacketPowerControlTimingAdvanceID, ElementsOf(PacketPowerControlTimingAdvanceID), &hf_ppc_timing_advance_id_choice),
+ M_CHOICE (PacketPowerControlTimingAdvanceID_t, UnionType, PacketPowerControlTimingAdvanceID, array_length(PacketPowerControlTimingAdvanceID), &hf_ppc_timing_advance_id_choice),
CSN_DESCR_END (PacketPowerControlTimingAdvanceID_t)
static const
@@ -4887,7 +4887,7 @@ CSN_ChoiceElement_t RejectID[] =
static const
CSN_DESCR_BEGIN(RejectID_t)
- M_CHOICE (RejectID_t, UnionType, RejectID, ElementsOf(RejectID), &hf_reject_id_choice),
+ M_CHOICE (RejectID_t, UnionType, RejectID, array_length(RejectID), &hf_reject_id_choice),
CSN_DESCR_END (RejectID_t)
static const
@@ -4919,7 +4919,7 @@ CSN_ChoiceElement_t PacketCellChangeOrderID[] =
static const
CSN_DESCR_BEGIN(PacketCellChangeOrderID_t)
- M_CHOICE (PacketCellChangeOrderID_t, UnionType, PacketCellChangeOrderID, ElementsOf(PacketCellChangeOrderID), &hf_packet_cell_change_order_id_choice),
+ M_CHOICE (PacketCellChangeOrderID_t, UnionType, PacketCellChangeOrderID, array_length(PacketCellChangeOrderID), &hf_packet_cell_change_order_id_choice),
CSN_DESCR_END (PacketCellChangeOrderID_t)
#if 0
@@ -6537,7 +6537,7 @@ CSN_ChoiceElement_t PNCDContainer[] =
static const
CSN_DESCR_BEGIN(PNCDContainer_t)
- M_CHOICE (PNCDContainer_t, UnionType, PNCDContainer, ElementsOf(PNCDContainer), &hf_pncd_container_choice),
+ M_CHOICE (PNCDContainer_t, UnionType, PNCDContainer, array_length(PNCDContainer), &hf_pncd_container_choice),
CSN_DESCR_END (PNCDContainer_t)
static const
@@ -6898,7 +6898,7 @@ CSN_ChoiceElement_t AdditionalMsRadAccessCapID[] =
static const
CSN_DESCR_BEGIN(AdditionalMsRadAccessCapID_t)
- M_CHOICE (AdditionalMsRadAccessCapID_t, UnionType, AdditionalMsRadAccessCapID, ElementsOf(AdditionalMsRadAccessCapID), &hf_additional_ms_rad_access_cap_id_choice),
+ M_CHOICE (AdditionalMsRadAccessCapID_t, UnionType, AdditionalMsRadAccessCapID, array_length(AdditionalMsRadAccessCapID), &hf_additional_ms_rad_access_cap_id_choice),
CSN_DESCR_END (AdditionalMsRadAccessCapID_t)
@@ -7474,26 +7474,26 @@ static const MT_Strings_t szMT_Uplink[] = {
static const char*
MT_DL_TextGet(guint8 mt)
{
- if (mt < ElementsOf(szMT_Downlink))
+ if (mt < array_length(szMT_Downlink))
{
- return(szMT_Downlink[mt]);
+ return szMT_Downlink[mt];
}
else
{
- return("Unknown message type");
+ return "Unknown message type";
}
}
static const char*
MT_UL_TextGet(guint8 mt)
{
- if (mt < ElementsOf(szMT_Uplink))
+ if (mt < array_length(szMT_Uplink))
{
- return(szMT_Uplink[mt]);
+ return szMT_Uplink[mt];
}
else
{
- return("Unknown message type");
+ return "Unknown message type";
}
}
diff --git a/epan/dissectors/packet-gsm_rlp.c b/epan/dissectors/packet-gsm_rlp.c
index d940a8b971..a544e0e15a 100644
--- a/epan/dissectors/packet-gsm_rlp.c
+++ b/epan/dissectors/packet-gsm_rlp.c
@@ -41,7 +41,7 @@ static int ett_gsmrlp_xid;
static expert_field ei_gsmrlp_fcs_bad;
static dissector_handle_t l2rcop_handle;
-static gboolean decode_as_l2rcop = true;
+static bool decode_as_l2rcop = true;
/* 3GPP TS 24.002 Section 5.2.1 */
enum rlp_ftype {
diff --git a/epan/dissectors/packet-gsm_sms.c b/epan/dissectors/packet-gsm_sms.c
index 68314bd32e..42d75c93ab 100644
--- a/epan/dissectors/packet-gsm_sms.c
+++ b/epan/dissectors/packet-gsm_sms.c
@@ -252,8 +252,8 @@ static expert_field ei_gsm_sms_short_data;
static expert_field ei_gsm_sms_unexpected_data_length;
static expert_field ei_gsm_sms_message_dissector_not_implemented;
-static gboolean reassemble_sms = TRUE;
-static gboolean reassemble_sms_with_lower_layers_info = TRUE;
+static bool reassemble_sms = true;
+static bool reassemble_sms_with_lower_layers_info = true;
static proto_tree *g_tree;
/* 3GPP TS 23.038 version 7.0.0 Release 7
@@ -289,7 +289,7 @@ static value_string_ext gsm_sms_coding_group_bits_vals_ext = VALUE_STRING_EXT_IN
static dissector_table_t gsm_sms_dissector_tbl;
/* Short Message reassembly */
static reassembly_table g_sm_reassembly_table;
-static wmem_multimap_t *g_sm_fragment_params_table = NULL;
+static wmem_multimap_t *g_sm_fragment_params_table;
static gint ett_gsm_sms_ud_fragment;
static gint ett_gsm_sms_ud_fragments;
/*
diff --git a/epan/dissectors/packet-gsm_sms_ud.c b/epan/dissectors/packet-gsm_sms_ud.c
index b61ba58bde..f0743f810f 100644
--- a/epan/dissectors/packet-gsm_sms_ud.c
+++ b/epan/dissectors/packet-gsm_sms_ud.c
@@ -105,14 +105,14 @@ static const fragment_items sm_frag_items = {
};
/* Dissect all SM data as WSP if the UDH contains a Port Number IE */
-static gboolean port_number_udh_means_wsp = FALSE;
+static bool port_number_udh_means_wsp;
/* Always try dissecting the 1st fragment of a SM,
* even if it is not reassembled */
-static gboolean try_dissect_1st_frag = FALSE;
+static bool try_dissect_1st_frag;
/* Prevent subdissectors changing column data */
-static gboolean prevent_subdissectors_changing_columns = FALSE;
+static bool prevent_subdissectors_changing_columns;
static dissector_handle_t wsp_handle;
diff --git a/epan/dissectors/packet-gsm_um.c b/epan/dissectors/packet-gsm_um.c
index 0d794bc93c..572c8dba12 100644
--- a/epan/dissectors/packet-gsm_um.c
+++ b/epan/dissectors/packet-gsm_um.c
@@ -38,7 +38,7 @@ static dissector_handle_t gsm_um_handle;
static dissector_handle_t lapdm_handle;
static dissector_handle_t dtap_handle;
-static gboolean dcs1800_gsm = TRUE;
+static bool dcs1800_gsm = true;
#define GSM_UM_L2_PSEUDO_LEN 0xfc
diff --git a/epan/dissectors/packet-gssapi.c b/epan/dissectors/packet-gssapi.c
index affea6cf67..567a8a728e 100644
--- a/epan/dissectors/packet-gssapi.c
+++ b/epan/dissectors/packet-gssapi.c
@@ -52,7 +52,7 @@ static gint ett_gssapi_segments;
static expert_field ei_gssapi_unknown_header;
-static gboolean gssapi_reassembly = TRUE;
+static bool gssapi_reassembly = true;
static dissector_handle_t gssapi_handle;
@@ -733,6 +733,7 @@ proto_reg_handoff_gssapi(void)
&gssapi_auth_fns);
dissector_add_string("dns.tsig.mac", "gss.microsoft.com", gssapi_handle);
+ dissector_add_string("dns.tsig.mac", "gss-tsig", gssapi_handle);
}
/*
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index 4d167ee1c9..a1dfaf1da1 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -102,10 +102,10 @@ static dissector_handle_t nrup_handle;
#define GTP_TPDU_AS_ETHERNET 4
#define GTP_TPDU_AS_CUSTOM 5
-static gboolean g_gtp_over_tcp = TRUE;
-gboolean g_gtp_session = FALSE;
+static bool g_gtp_over_tcp = true;
+bool g_gtp_session;
-static guint pref_pair_matching_max_interval_ms = 0; /* Default: disable */
+static guint pref_pair_matching_max_interval_ms; /* Default: disable */
static guint g_gtpv0_port = GTPv0_PORT;
static guint g_gtpv1c_port = GTPv1C_PORT;
@@ -683,16 +683,21 @@ typedef struct {
gchar *teid_str;
gboolean teid_wildcard;
guint32 teid;
+ guint direction;
guint header_present;
enum pdcp_plane plane;
guint lte_sn_length;
guint rohc_compression;
//guint rohc_mode;
guint rohc_profile;
+ /* One approach would be to just use the TEID, but it is 32 bits and would need to be
+ * truncated to (ultimately) 16 bits to be used as a UEId for PDCP */
+ guint32 ue_id;
+ guint rb_id;
} uat_pdcp_lte_keys_record_t;
/* N.B. this is an array/table of the struct above, where IP address + TEID is the key */
-static uat_pdcp_lte_keys_record_t *uat_pdcp_lte_keys_records = NULL;
+static uat_pdcp_lte_keys_record_t *uat_pdcp_lte_keys_records;
static bool pdcp_lte_update_cb(void *r, char **err)
{
@@ -722,6 +727,21 @@ static bool pdcp_lte_update_cb(void *r, char **err)
return FALSE;
}
+ /* Range-check rb */
+ if ((rec->rb_id < 1) || (rec->rb_id > 10)) {
+ if (err)
+ *err = ws_strdup_printf("RB Id must be in range [1,10]");
+ return FALSE;
+ }
+
+ /* Range-check ueid */
+ if ((rec->ue_id < 1) || (rec->ue_id > 65535)) {
+ if (err)
+ *err = ws_strdup_printf("UEId must be in range [1,65535]");
+ return FALSE;
+ }
+
+
return TRUE;
}
@@ -734,12 +754,15 @@ static void *pdcp_lte_copy_cb(void *n, const void *o, size_t len _U_)
new_rec->ip_addr_str = g_strdup(old_rec->ip_addr_str);
clear_address(&new_rec->ip_address);
new_rec->teid_str = g_strdup(old_rec->teid_str);
+ new_rec->direction = old_rec->direction;
new_rec->header_present = old_rec->header_present;
new_rec->plane = old_rec->plane;
new_rec->lte_sn_length = old_rec->lte_sn_length;
new_rec->rohc_compression = old_rec->rohc_compression;
//new_rec->rohc_mode = old_rec->rohc_mode;
new_rec->rohc_profile = old_rec->rohc_profile;
+ new_rec->ue_id = old_rec->ue_id;
+ new_rec->rb_id = old_rec->rb_id;
pdcp_lte_update_cb(new_rec, NULL);
@@ -781,10 +804,14 @@ typedef struct {
guint rohc_compression;
//guint rohc_mode;
guint rohc_profile;
+ /* One approach would be to just use the TEID, but it is 32 bits and would need to be
+ * truncated to (ultimately) 16 bits to be used as a UEId for PDCP */
+ guint32 ue_id;
+ guint rb_id;
} uat_pdcp_nr_keys_record_t;
/* N.B. this is an array/table of the struct above, where IP address + TEID is the key */
-static uat_pdcp_nr_keys_record_t *uat_pdcp_nr_keys_records = NULL;
+static uat_pdcp_nr_keys_record_t *uat_pdcp_nr_keys_records;
static bool pdcp_nr_update_cb(void *r, char **err) {
uat_pdcp_nr_keys_record_t* rec = (uat_pdcp_nr_keys_record_t *)r;
@@ -813,6 +840,20 @@ static bool pdcp_nr_update_cb(void *r, char **err) {
return FALSE;
}
+ /* Range-check rb */
+ if ((rec->rb_id < 1) || (rec->rb_id > 32)) {
+ if (err)
+ *err = ws_strdup_printf("RB Id must be in range [1,32]");
+ return FALSE;
+ }
+
+ /* Range-check ueid */
+ if ((rec->ue_id < 1) || (rec->ue_id > 65535)) {
+ if (err)
+ *err = ws_strdup_printf("UEId must be in range [1,65535]");
+ return FALSE;
+ }
+
return TRUE;
}
@@ -822,7 +863,7 @@ static void *pdcp_nr_copy_cb(void *n, const void *o, size_t len _U_) {
/* Copy UAT fields */
new_rec->ip_addr_str = g_strdup(old_rec->ip_addr_str);
- clear_address(&new_rec->ip_address);
+ clear_address(&new_rec->ip_address); /* not copying address.. */
new_rec->teid_str = g_strdup(old_rec->teid_str);
new_rec->direction = old_rec->direction;
new_rec->sdap_header_present = old_rec->sdap_header_present;
@@ -832,6 +873,8 @@ static void *pdcp_nr_copy_cb(void *n, const void *o, size_t len _U_) {
new_rec->rohc_compression = old_rec->rohc_compression;
//new_rec->rohc_mode = old_rec->rohc_mode;
new_rec->rohc_profile = old_rec->rohc_profile;
+ new_rec->ue_id = old_rec->ue_id;
+ new_rec->rb_id = old_rec->rb_id;
pdcp_nr_update_cb(new_rec, NULL);
@@ -847,44 +890,48 @@ static void pdcp_nr_free_cb(void *r)
free_address_wmem(wmem_epan_scope(), &rec->ip_address);
}
-#define PDCP_NR_DIRECTION_UPLINK_STR "UL"
+#define PDCP_DIRECTION_UPLINK_STR "UL"
+#define PDCP_DIRECTION_DOWNLINK_STR "DL"
static const value_string vs_direction[] = {
- { PDCP_NR_DIRECTION_UPLINK, PDCP_NR_DIRECTION_UPLINK_STR },
- { PDCP_NR_DIRECTION_DOWNLINK, "DL" },
+ { PDCP_NR_DIRECTION_UPLINK, PDCP_DIRECTION_UPLINK_STR },
+ { PDCP_NR_DIRECTION_DOWNLINK, PDCP_DIRECTION_DOWNLINK_STR },
{ 0, NULL }
};
/* Value sets for each drop-down list in the GUI */
#define PDCP_NR_SDAP_HEADER_NOT_PRESENT_STR "SDAP header NOT present"
#define PDCP_NR_SDAP_HEADER_NOT_PRESENT 0
-#define PDCP_NR_SDAP_HEADER_PRESENT 1
+#define PDCP_NR_SDAP_HEADER_PRESENT 1
static const value_string vs_sdap_header_present[] = {
{ 0, PDCP_NR_SDAP_HEADER_NOT_PRESENT_STR },
{ 1, "SDAP header present" },
{ 0, NULL }
};
-#define PDCP_LTE_HEADER_PRESENT_STR "Header present"
+#define PDCP_LTE_HEADER_NOT_PRESENT_STR "Header NOT present"
+#define PDCP_LTE_HEADER_PRESENT_STR "Header present"
#define PDCP_LTE_HEADER_NOT_PRESENT 0
-#define PDCP_LTE_HEADER_PRESENT 1
+#define PDCP_LTE_HEADER_PRESENT 1
static const value_string vs_header_present[] = {
- { 0, "Header NOT present" },
+ { 0, PDCP_LTE_HEADER_NOT_PRESENT_STR },
{ 1, PDCP_LTE_HEADER_PRESENT_STR },
{ 0, NULL }
};
#define MAC_I_PRESENT_FALSE_STR "MAC-I NOT present"
+#define MAC_I_PRESENT_TRUE_STR "MAC-I present"
static const value_string vs_mac_i_present[] = {
{ FALSE, MAC_I_PRESENT_FALSE_STR },
- { TRUE, "MAC-I present" },
+ { TRUE, MAC_I_PRESENT_TRUE_STR },
{ 0, NULL }
};
-#define USER_PLANE_STR "User plane"
+#define SIGNALING_PLANE_STR "Signaling plane"
+#define USER_PLANE_STR "User plane"
static const value_string vs_pdcp_plane[] = {
- { NR_SIGNALING_PLANE, "Signaling plane" },
+ { NR_SIGNALING_PLANE, SIGNALING_PLANE_STR },
{ NR_USER_PLANE, USER_PLANE_STR },
{ 0, NULL }
};
@@ -923,13 +970,13 @@ static const value_string vs_rohc_profile[] = {
};
/* Entries added by UAT */
-static uat_t * pdcp_nr_keys_uat = NULL;
-static guint num_pdcp_nr_keys_uat = 0;
+static uat_t * pdcp_nr_keys_uat;
+static guint num_pdcp_nr_keys_uat;
/* Default values for a TEID entry */
UAT_CSTRING_CB_DEF(pdcp_nr_users, ip_addr_str, uat_pdcp_nr_keys_record_t)
UAT_CSTRING_CB_DEF(pdcp_nr_users, teid_str, uat_pdcp_nr_keys_record_t)
-UAT_VS_DEF(pdcp_nr_users, direction, uat_pdcp_nr_keys_record_t, guint, PDCP_NR_DIRECTION_UPLINK, PDCP_NR_DIRECTION_UPLINK_STR)
+UAT_VS_DEF(pdcp_nr_users, direction, uat_pdcp_nr_keys_record_t, guint, PDCP_NR_DIRECTION_UPLINK, PDCP_DIRECTION_UPLINK_STR)
UAT_VS_DEF(pdcp_nr_users, sdap_header_present, uat_pdcp_nr_keys_record_t, guint, PDCP_NR_SDAP_HEADER_NOT_PRESENT, PDCP_NR_SDAP_HEADER_NOT_PRESENT_STR)
UAT_VS_DEF(pdcp_nr_users, mac_i_present, uat_pdcp_nr_keys_record_t, guint, FALSE, MAC_I_PRESENT_FALSE_STR)
UAT_VS_DEF(pdcp_nr_users, plane, uat_pdcp_nr_keys_record_t, enum pdcp_nr_plane, NR_USER_PLANE, USER_PLANE_STR)
@@ -937,6 +984,8 @@ UAT_VS_DEF(pdcp_nr_users, pdcp_nr_sn_length, uat_pdcp_nr_keys_record_t, guint, P
UAT_VS_DEF(pdcp_nr_users, rohc_compression, uat_pdcp_nr_keys_record_t, guint, FALSE, ROHC_COMPRESSION_FALSE_STR)
//UAT_VS_DEF(pdcp_nr_users, rohc_mode, uat_pdcp_nr_keys_record_t, guint, MODE_NOT_SET, ROHC_MODE_NOT_SET_STR)
UAT_VS_DEF(pdcp_nr_users, rohc_profile, uat_pdcp_nr_keys_record_t, guint, ROHC_PROFILE_UNCOMPRESSED, ROHC_PROFILE_UNCOMPRESSED_STR)
+UAT_DEC_CB_DEF(pdcp_nr_users, ue_id, uat_pdcp_nr_keys_record_t)
+UAT_DEC_CB_DEF(pdcp_nr_users, rb_id, uat_pdcp_nr_keys_record_t)
static uat_pdcp_nr_keys_record_t* look_up_pdcp_nr_keys_record(packet_info *pinfo, guint32 teidn)
{
@@ -956,18 +1005,21 @@ static uat_pdcp_nr_keys_record_t* look_up_pdcp_nr_keys_record(packet_info *pinfo
}
/* Entries added by UAT */
-static uat_t * pdcp_lte_keys_uat = NULL;
-static guint num_pdcp_lte_keys_uat = 0;
+static uat_t * pdcp_lte_keys_uat;
+static guint num_pdcp_lte_keys_uat;
/* Default values for a TEID entry */
UAT_CSTRING_CB_DEF(pdcp_lte_users, ip_addr_str, uat_pdcp_lte_keys_record_t)
UAT_CSTRING_CB_DEF(pdcp_lte_users, teid_str, uat_pdcp_lte_keys_record_t)
+UAT_VS_DEF(pdcp_lte_users, direction, uat_pdcp_lte_keys_record_t, guint, PDCP_NR_DIRECTION_UPLINK, PDCP_DIRECTION_UPLINK_STR)
UAT_VS_DEF(pdcp_lte_users, header_present, uat_pdcp_lte_keys_record_t, guint, PDCP_LTE_HEADER_PRESENT, PDCP_LTE_HEADER_PRESENT_STR)
UAT_VS_DEF(pdcp_lte_users, plane, uat_pdcp_lte_keys_record_t, enum pdcp_plane, USER_PLANE, USER_PLANE_STR)
UAT_VS_DEF(pdcp_lte_users, lte_sn_length, uat_pdcp_lte_keys_record_t, guint, PDCP_NR_SN_LENGTH_12_BITS, PDCP_SN_LENGTH_12_BITS_STR)
UAT_VS_DEF(pdcp_lte_users, rohc_compression, uat_pdcp_lte_keys_record_t, guint, FALSE, ROHC_COMPRESSION_FALSE_STR)
//UAT_VS_DEF(pdcp_lte_users, rohc_mode, uat_pdcp_lte_keys_record_t, guint, MODE_NOT_SET, ROHC_MODE_NOT_SET_STR)
UAT_VS_DEF(pdcp_lte_users, rohc_profile, uat_pdcp_lte_keys_record_t, guint, ROHC_PROFILE_UNCOMPRESSED, ROHC_PROFILE_UNCOMPRESSED_STR)
+UAT_DEC_CB_DEF(pdcp_lte_users, ue_id, uat_pdcp_lte_keys_record_t)
+UAT_DEC_CB_DEF(pdcp_lte_users, rb_id, uat_pdcp_lte_keys_record_t)
static uat_pdcp_lte_keys_record_t* look_up_pdcp_lte_keys_record(packet_info *pinfo, guint32 teidn)
{
@@ -988,7 +1040,7 @@ static uat_pdcp_lte_keys_record_t* look_up_pdcp_lte_keys_record(packet_info *pin
/* --- END PDCP NR DECODE ADDITIONS --- */
-static gboolean g_gtp_etsi_order = FALSE;
+static bool g_gtp_etsi_order;
static gint dissect_tpdu_as = GTP_TPDU_AS_TPDU_HEUR;
static const enum_val_t gtp_decode_tpdu_as[] = {
@@ -2453,7 +2505,7 @@ static const value_string gtp_ext_hdr_pdu_ses_cont_pdu_type_vals[] = {
#define MM_PROTO_SESSION_MGMT 0x0A
#define MM_PROTO_NON_CALL_RELATED 0x0B
-static GHashTable *gtpstat_msg_idx_hash = NULL;
+static GHashTable *gtpstat_msg_idx_hash;
static void
gtpstat_init(struct register_srt* srt _U_, GArray* srt_array)
@@ -2986,7 +3038,7 @@ static const gtp_opt_t gtpopt[] = {
#define NUM_GTP_IES 255
static gint ett_gtp_ies[NUM_GTP_IES];
-static guint8 gtp_version = 0;
+static guint8 gtp_version;
#define BCD2CHAR(d) ((d) | 0x30)
@@ -4228,13 +4280,10 @@ static const _gtp_mess_items umts_mess_items[] = {
to keep track of request/response-pairs
*/
typedef struct gtp_conv_info_t {
- struct gtp_conv_info_t *next;
wmem_map_t *unmatched;
wmem_map_t *matched;
} gtp_conv_info_t;
-static gtp_conv_info_t *gtp_info_items = NULL;
-
static guint
gtp_sn_hash(gconstpointer k)
{
@@ -9907,8 +9956,8 @@ dissect_nrup(tvbuff_t * tvb, packet_info * pinfo _U_, proto_tree * tree,
void *private_data _U_)
{
guint32 pdu_type;
- gboolean dl_disc_blk;
- gboolean dl_flush;
+ bool dl_disc_blk;
+ bool dl_flush;
guint32 dl_disc_num_blks;
gint offset = 0;
@@ -9927,7 +9976,7 @@ dissect_nrup(tvbuff_t * tvb, packet_info * pinfo _U_, proto_tree * tree,
case NR_UP_DL_USER_DATA:
{
/* 5.5.2.1 */
- gboolean report_delivered;
+ bool report_delivered;
/* PDU Type (=0) Spare DL Discard Blocks DL Flush Report polling Octet 1*/
proto_tree_add_item(nrup_tree, hf_nrup_spr_bit_extnd_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -9982,13 +10031,13 @@ dissect_nrup(tvbuff_t * tvb, packet_info * pinfo _U_, proto_tree * tree,
case NR_UP_DL_DATA_DELIVERY_STATUS:
{
/* 5.5.2.2 */
- gboolean high_tx_nr_pdcp_sn_ind;
- gboolean high_del_nr_pdcp_sn_ind;
- gboolean lost_packet_report;
- gboolean high_retx_nr_pdcp_sn_ind;
- gboolean high_del_retx_nr_pdcp_sn_ind;
- gboolean cause_rpt;
- gboolean data_rate_ind;
+ bool high_tx_nr_pdcp_sn_ind;
+ bool high_del_nr_pdcp_sn_ind;
+ bool lost_packet_report;
+ bool high_retx_nr_pdcp_sn_ind;
+ bool high_del_retx_nr_pdcp_sn_ind;
+ bool cause_rpt;
+ bool data_rate_ind;
guint32 lost_NR_U_SN_range;
proto_tree_add_item_ret_boolean(nrup_tree, hf_nrup_high_tx_nr_pdcp_sn_ind ,tvb, offset,1, ENC_BIG_ENDIAN, &high_tx_nr_pdcp_sn_ind );
@@ -10057,11 +10106,11 @@ dissect_nrup(tvbuff_t * tvb, packet_info * pinfo _U_, proto_tree * tree,
case NR_UP_ASSISTANCE_INFORMATION_DATA:
{
/* 5.5.2.3 */
- gboolean pdcp_duplication_indication;
- gboolean assistance_information_ind;
- gboolean ul_delay_ind;
- gboolean dl_delay_ind;
- gboolean pdcp_duplication_suggestion;
+ bool pdcp_duplication_indication;
+ bool assistance_information_ind;
+ bool ul_delay_ind;
+ bool dl_delay_ind;
+ bool pdcp_duplication_suggestion;
/* Flags */
proto_tree_add_item_ret_boolean(nrup_tree, hf_nrup_pdcp_duplication_ind, tvb, offset,1, ENC_BIG_ENDIAN, &pdcp_duplication_indication);
@@ -10134,8 +10183,7 @@ dissect_gtp_tpdu_by_handle(dissector_handle_t handle, tvbuff_t * tvb, packet_inf
tvbuff_t *next_tvb;
next_tvb = tvb_new_subset_remaining(tvb, offset);
call_dissector(handle, next_tvb, pinfo, tree);
- col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "GTP <");
- col_append_str(pinfo->cinfo, COL_PROTOCOL, ">");
+ col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "GTP/");
}
static void
@@ -10153,10 +10201,10 @@ dissect_gtp_tpdu_as_pdcp_lte_info(tvbuff_t * tvb, packet_info * pinfo, proto_tre
if (p_pdcp_info == NULL) {
p_pdcp_info = wmem_new0(wmem_file_scope(), pdcp_lte_info);
/* Channel info is needed for RRC parsing */
- /*p_pdcp_info->direction;*/
- /*p_pdcp_info->ueid;*/
- /*p_pdcp_info->channelType;*/
- /*p_pdcp_info->channelId;*/
+ p_pdcp_info->direction = found_record->direction;
+ p_pdcp_info->ueid = found_record->ue_id;
+ p_pdcp_info->channelType = Channel_DCCH;
+ p_pdcp_info->channelId = found_record->rb_id;
/*p_pdcp_info->BCCHTransport;*/
/* Details of PDCP header */
@@ -10208,12 +10256,14 @@ dissect_gtp_tpsu_as_pdcp_nr_info(tvbuff_t * tvb, packet_info * pinfo, proto_tree
struct pdcp_nr_info temp_data;
pdcp_tvb = tvb_new_subset_remaining(tvb, offset);
- /* Fill in pdcp_nr_info */
+ /* Fill in pdcp_nr_info */
temp_data.direction = found_record->direction;
- /*temp_data.ueid*/
- /*temp_data.bearerType;*/
- /*temp_data.bearerId;*/
+ temp_data.bearerType = Bearer_DCCH; /* always */
+ /* Want to use same ueid as other PDCP config.. */
+ temp_data.ueid = found_record->ue_id;
+ /* Get this from table, may also be available from F1AP signalling... */
+ temp_data.bearerId = found_record->rb_id;
/* Details of PDCP header */
temp_data.plane = found_record->plane;
@@ -10228,6 +10278,7 @@ dissect_gtp_tpsu_as_pdcp_nr_info(tvbuff_t * tvb, packet_info * pinfo, proto_tree
} else {
temp_data.sdap_header = 0;
}
+ /* Integrity MAC present? */
temp_data.maci_present = found_record->mac_i_present;
/* RoHC settings */
@@ -10331,9 +10382,6 @@ dissect_gtp_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
gtp_info->unmatched = wmem_map_new(wmem_file_scope(), gtp_sn_hash, gtp_sn_equal_unmatched);
conversation_add_proto_data(conversation, proto_gtp, gtp_info);
-
- gtp_info->next = gtp_info_items;
- gtp_info_items = gtp_info;
}
gtp_hdr->flags = tvb_get_guint8(tvb, offset);
@@ -10936,8 +10984,7 @@ dissect_gtp_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
#endif
proto_tree_add_item(tree, hf_gtp_tpdu_data, tvb, offset, -1, ENC_NA);
- col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "GTP <");
- col_append_str(pinfo->cinfo, COL_PROTOCOL, ">");
+ col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "GTP/");
}
}
break;
@@ -11018,27 +11065,6 @@ static void
gtp_init(void)
{
gtp_session_count = 1;
- session_table = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
- frame_map = wmem_map_new(wmem_file_scope(), gtp_info_hash, gtp_info_equal);
-}
-
-static void
-gtp_cleanup(void)
-{
- /* our structures are in file-scoped wmem_map_t's which will be
- * automatically freed when the capture file is closed; here we just null
- * out our pointers to prevent potential references to freed memory.
- */
- gtp_conv_info_t *gtp_info;
-
- for (gtp_info = gtp_info_items; gtp_info != NULL; gtp_info = gtp_info->next) {
- gtp_info->matched=NULL;
- gtp_info->unmatched=NULL;
- }
-
- gtp_info_items = NULL;
- session_table = NULL;
- frame_map = NULL;
}
void
@@ -11813,10 +11839,10 @@ proto_register_gtp(void)
FT_UINT16, BASE_HEX_DEC, NULL, 0,
NULL, HFILL}
},
- { &hf_gtp_session,
- { "Session", "gtp.session",
- FT_UINT32, BASE_DEC, NULL, 0,
- NULL, HFILL }
+ {&hf_gtp_session,
+ { "Session", "gtp.session",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }
},
{&hf_gtp_sndcp_number,
{ "SNDCP N-PDU LLC Number", "gtp.sndcp_number",
@@ -13022,12 +13048,15 @@ proto_register_gtp(void)
static uat_field_t pdcp_lte_keys_uat_flds[] = {
UAT_FLD_CSTRING_OTHER(pdcp_lte_users, ip_addr_str, "Dst IP address", pdcp_uat_fld_ip_chk_cb, "IPv4 or IPv6 address"),
UAT_FLD_CSTRING_OTHER(pdcp_lte_users, teid_str, "TEID value or \"" PDCP_TEID_WILDCARD "\"", pdcp_uat_fld_teid_chk_cb, "Tunnel Endpoint Identifier"),
+ UAT_FLD_VS(pdcp_lte_users, direction, "Direction", vs_direction, "Direction of frames"),
UAT_FLD_VS(pdcp_lte_users, header_present, "Header present", vs_header_present, "Header present flag"),
UAT_FLD_VS(pdcp_lte_users, plane, "Plane", vs_pdcp_plane, "Signaling or user plane"),
UAT_FLD_VS(pdcp_lte_users, lte_sn_length, "PDCP SN length", vs_pdcp_lte_sn_length, "Length of PDCP sequence number"),
UAT_FLD_VS(pdcp_lte_users, rohc_compression, "ROHC compression", vs_rohc_compression, "Header compression"),
//UAT_FLD_VS(pdcp_lte_users, rohc_mode, "ROHC mode", vs_rohc_mode, "ROHC mode"),
UAT_FLD_VS(pdcp_lte_users, rohc_profile, "ROHC profile", vs_rohc_profile, "ROHC profile"),
+ UAT_FLD_DEC(pdcp_lte_users, ue_id, "UE Id", "UE Identifier to match other PDCP config"),
+ UAT_FLD_DEC(pdcp_lte_users, rb_id, "RB Id", "Radio Bearer Identifier"),
UAT_END_FIELDS
};
@@ -13046,6 +13075,7 @@ proto_register_gtp(void)
NULL, /* reset callback */
pdcp_lte_keys_uat_flds); /* UAT field definitions */
+
prefs_register_uat_preference(gtp_module,
"pdcp_lte_table",
"GTP PDCP-LTE Keys",
@@ -13055,7 +13085,7 @@ proto_register_gtp(void)
static uat_field_t pdcp_nr_keys_uat_flds[] = {
UAT_FLD_CSTRING_OTHER(pdcp_nr_users, ip_addr_str, "Dst IP address", pdcp_uat_fld_ip_chk_cb, "IPv4 or IPv6 address"),
UAT_FLD_CSTRING_OTHER(pdcp_nr_users, teid_str, "TEID value or \"" PDCP_TEID_WILDCARD "\"", pdcp_uat_fld_teid_chk_cb, "Tunnel Endpoint Identifier"),
- UAT_FLD_VS(pdcp_nr_users, direction, "Direction", vs_direction, "Direction"),
+ UAT_FLD_VS(pdcp_nr_users, direction, "Direction", vs_direction, "Direction of frames"),
UAT_FLD_VS(pdcp_nr_users, sdap_header_present, "SDAP header present flag", vs_sdap_header_present, "SDAP header present flag"),
UAT_FLD_VS(pdcp_nr_users, mac_i_present, "MAC-I present flag", vs_mac_i_present, "MAC-I present flag"),
UAT_FLD_VS(pdcp_nr_users, plane, "Plane", vs_pdcp_plane, "Signaling or user plane"),
@@ -13063,6 +13093,8 @@ proto_register_gtp(void)
UAT_FLD_VS(pdcp_nr_users, rohc_compression, "ROHC compression", vs_rohc_compression, "Header compression"),
//UAT_FLD_VS(pdcp_nr_users, rohc_mode, "ROHC mode", vs_rohc_mode, "ROHC mode"),
UAT_FLD_VS(pdcp_nr_users, rohc_profile, "ROHC profile", vs_rohc_profile, "ROHC profile"),
+ UAT_FLD_DEC(pdcp_nr_users, ue_id, "UE Id", "UE Identifier to match other PDCP config"),
+ UAT_FLD_DEC(pdcp_nr_users, rb_id, "RB Id", "Radio Bearer Identifier"),
UAT_END_FIELDS
};
@@ -13081,6 +13113,18 @@ proto_register_gtp(void)
NULL, /* reset callback */
pdcp_nr_keys_uat_flds); /* UAT field definitions */
+ /* Set default values for new entries to this table. Choosing SRB-1 (DL) */
+ /* N.B. currently doesn't seem to work.. */
+ static const char *nr_keys_uat_defaults_[] = {
+ NULL, /*dst-address*/
+ "*", /*teid*/
+ PDCP_DIRECTION_DOWNLINK_STR, PDCP_NR_SDAP_HEADER_NOT_PRESENT_STR, MAC_I_PRESENT_TRUE_STR,
+ SIGNALING_PLANE_STR, PDCP_SN_LENGTH_12_BITS_STR, ROHC_COMPRESSION_FALSE_STR, ROHC_PROFILE_UNCOMPRESSED_STR,
+ "1", /*ueid*/ "1" /*rb*/
+ };
+ uat_set_default_values(pdcp_nr_keys_uat, nr_keys_uat_defaults_);
+
+
prefs_register_uat_preference(gtp_module,
"pdcp_nr_table",
"GTP PDCP-NR Keys",
@@ -13097,8 +13141,9 @@ proto_register_gtp(void)
gtp_cdr_fmt_dissector_table = register_dissector_table("gtp.cdr_fmt", "GTP Data Record Type", proto_gtp, FT_UINT16, BASE_DEC);
gtp_hdr_ext_dissector_table = register_dissector_table("gtp.hdr_ext", "GTP Header Extension", proto_gtp, FT_UINT16, BASE_DEC);
+ session_table = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
+ frame_map = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), gtp_info_hash, gtp_info_equal);
register_init_routine(gtp_init);
- register_cleanup_routine(gtp_cleanup);
gtp_tap = register_tap("gtp");
gtpv1_tap = register_tap("gtpv1");
@@ -13129,8 +13174,6 @@ proto_reg_handoff_gtp(void)
radius_register_avp_dissector(VENDOR_THE3GPP, 5, dissect_radius_qos_umts);
radius_register_avp_dissector(VENDOR_THE3GPP, 12, dissect_radius_selection_mode);
-
-
eth_handle = find_dissector_add_dependency("eth_withoutfcs", proto_gtp);
ip_handle = find_dissector_add_dependency("ip", proto_gtp);
ipv6_handle = find_dissector_add_dependency("ipv6", proto_gtp);
diff --git a/epan/dissectors/packet-gtp.h b/epan/dissectors/packet-gtp.h
index 6f285324ba..af01ea5886 100644
--- a/epan/dissectors/packet-gtp.h
+++ b/epan/dissectors/packet-gtp.h
@@ -150,7 +150,7 @@ typedef struct gtp_hdr_ext_info {
/* Data structures to keep track of sessions */
extern guint32 gtp_session_count;
-extern gboolean g_gtp_session;
+extern bool g_gtp_session;
typedef struct session_args {
wmem_list_t *teid_list;
diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c
index 6e99bded41..e4256380eb 100644
--- a/epan/dissectors/packet-gtpv2.c
+++ b/epan/dissectors/packet-gtpv2.c
@@ -25,6 +25,7 @@
#include <epan/addr_resolv.h>
#include <epan/tap.h>
#include <epan/srt_table.h>
+#include <proto.h>
#include "packet-gsm_a_common.h"
#include "packet-gsm_map.h"
@@ -558,7 +559,7 @@ static int hf_gtpv2_iksrvcc;
static int hf_gtpv2_nsapi08;
static int hf_gtpv2_voice_domain_and_ue_usage_setting;
static int hf_gtpv2_ue_radio_capability_for_paging_information;
-static int hf_gtpv2_upd_source_port_number;
+static int hf_gtpv2_port_number;
static int hf_gtpv2_uplink_used_ue_ambr;
static int hf_gtpv2_tmsi_bytes;
static int hf_gtpv2_dl_gtp_u_sequence_number;
@@ -826,6 +827,14 @@ static int hf_gtpv2_additional_rrm_policy_index;
static int hf_gtpv2_group_id;
+static int hf_gtpv2_ie_pscell_id_spare;
+static int hf_gtpv2_ie_pscell_id_nr_cgi;
+static int hf_gtpv2_ie_up_security_policy_up_ip_policy;
+static int hf_gtpv2_ie_up_security_policy_spare;
+static int hf_gtpv2_nf_instance_id_nf_instance_id;
+static int hf_gtpv2_nf_timer_in_seconds_timer_value;
+
+
static gint ett_gtpv2;
static gint ett_gtpv2_flags;
static gint ett_gtpv2_uli_flags;
@@ -949,6 +958,8 @@ static int gtpv2_tap;
#define GTPV2_MODIFY_BEARER_RESPONSE 35
#define GTPV2_DELETE_SESSION_REQUEST 36
#define GTPV2_DELETE_SESSION_RESPONSE 37
+#define GTPV2_REMOTE_UE_REPORT_NOTIFICATION 40
+#define GTPV2_REMOTE_UE_REPORT_ACKNOWLEDGE 41
#define GTPV2_MODIFY_BEARER_COMMAND 64
#define GTPV2_MODIFY_BEARER_FAILURE_INDICATION 65
#define GTPV2_DELETE_BEARER_COMMAND 66
@@ -964,6 +975,7 @@ static int gtpv2_tap;
#define GTPV2_IDENTIFICATION_RESPONSE 129
#define GTPV2_CONTEXT_REQUEST 130
#define GTPV2_CONTEXT_RESPONSE 131
+#define GTPV2_CONTEXT_ACKNOWLEDGE 132
#define GTPV2_FORWARD_RELOCATION_REQ 133
#define GTPV2_FORWARD_RELOCATION_RESP 134
#define GTPV2_FORWARD_RELOCATION_COMPLETE_NOTIFICATION 135
@@ -975,6 +987,8 @@ static int gtpv2_tap;
#define GTPV2_CONFIGURATION_TRANSFER_TUNNEL 141
#define GTPV2_RAN_INFORMATION_RELAY 152
#define GTPV2_DL_DATA_NOTIF_ACK 177
+#define GTPV2_MODIFY_ACESSS_BEARER_REQUEST 211
+#define GTPV2_MODIFY_ACCESS_BEARER_RESPONSE 212
/* Table 6.1-1: Message types for GTPv2 */
static const value_string gtpv2_message_type_vals[] = {
@@ -1185,13 +1199,13 @@ static gint ett_gtpv2_ies[NUM_GTPV2_IES];
#define GTPV2_IE_GUTI 117
#define GTPV2_IE_F_CONTAINER 118
#define GTPV2_IE_F_CAUSE 119
-#define GTPV2_IE_SEL_PLMN_ID 120
+#define GTPV2_IE_PLMN_ID 120
#define GTPV2_IE_TARGET_ID 121
/* GTPV2_IE_NSAPI 122 */
#define GTPV2_IE_PKT_FLOW_ID 123
#define GTPV2_IE_RAB_CONTEXT 124
#define GTPV2_IE_S_RNC_PDCP_CTX_INFO 125
-#define GTPV2_IE_UDP_S_PORT_NR 126
+#define GTPV2_IE_PORT_NR 126
#define GTPV2_IE_APN_RESTRICTION 127
#define GTPV2_IE_SEL_MODE 128
#define GTPV2_IE_SOURCE_IDENT 129
@@ -1282,11 +1296,13 @@ static gint ett_gtpv2_ies[NUM_GTPV2_IES];
#define GTPV2_IE_PC5_QOS_FLOW 212
#define GTPV2_IE_SGI_PTP_TUNNEL_ADDRESS 213
#define GTPV2_IE_PGW_CHANGE_INFO 214
-#define GTPV2_IE_PGW_SET_FQDN 215
+#define GTPV2_IE_PGW_FQDN 215
#define GTPV2_IE_GROUP_ID 216
#define GTPV2_IE_PSCELL_ID 217
#define GTPV2_IE_UP_SECURITY_POLICY 218
#define GTPV2_IE_ALT_IMSI 219
+#define GTPV2_IE_NF_INSTANCE_ID 220
+#define GTPV2_IE_TIMER_IN_SECONDS 221
/*
220 to 253 Spare. For future use.
254 Special IE type for IE Type Extension
@@ -1311,7 +1327,7 @@ static gint ett_gtpv2_ies[NUM_GTPV2_IES];
#define PREF_DECODE_SRVCC_P2C_TRANS_CONT_TARGET_UTRAN 1
static gint pref_decode_srvcc_p2c_trans_cont = PREF_DECODE_SRVCC_P2C_TRANS_CONT_NO;
-static guint pref_pair_matching_max_interval_ms = 0; /* Default: disable */
+static guint pref_pair_matching_max_interval_ms; /* Default: disable */
/* Table 8.1-1: Information Element types for GTPv2 */
static const value_string gtpv2_element_type_vals[] = {
@@ -1385,13 +1401,13 @@ static const value_string gtpv2_element_type_vals[] = {
{117, "GUTI"}, /* Variable Length / 8.47 */
{118, "F-Container"}, /* Variable Length / 8.48 */
{119, "F-Cause"}, /* Variable Length / 8.49 */
- {120, "Selected PLMN ID"}, /* Variable Length / 8.50 */
+ {120, "PLMN ID"}, /* Variable Length / 8.50 */
{121, "Target Identification"}, /* Variable Length / 8.51 */
{122, "NSAPI"}, /* Extendable / 8.52 */
{123, "Packet Flow ID"}, /* Variable Length / 8.53 */
{124, "RAB Context"}, /* Fixed Length / 8.54 */
{125, "Source RNC PDCP Context Info"}, /* Variable Length / 8.55 */
- {126, "UDP Source Port Number"}, /* Extendable / 8.56 */
+ {126, "Port Number"}, /* Extendable / 8.56 */
{127, "APN Restriction"}, /* Extendable / 8.57 */
{128, "Selection Mode"}, /* Extendable / 8.58 */
{129, "Source Identification"}, /* Variable Length / 8.50 */
@@ -1480,12 +1496,14 @@ static const value_string gtpv2_element_type_vals[] = {
{212, "PC5 QoS Flow" }, /* Extendable / 8.143 */
{213, "SGi PtP Tunnel Address" }, /* Extendable / 8.144 */
{214, "PGW Change Info" }, /* Extendable / 8.145 */
- {215, "PGW Set FQDN" }, /* Extendable / 8.146 */
+ {215, "PGW FQDN" }, /* Extendable / 8.146 */
{216, "Group Id" }, /* Variable Length / 8.147 */
{217, "PSCell ID" }, /* Fixed Length / 8.148*/
{218, "UP Security Policy" }, /* Extendable / 8.149*/
{219, "Alternative IMSI" }, /* Variable Length / 8.150 */
- /* 220 to 254 Spare. For future use. */
+ {220, "NF Instance ID" }, /* Fixed Length / 8.151 */
+ {221, "Timer in Seconds"}, /* Variable Length / 8.152 */
+ /* 222 to 254 Spare. For future use. */
{255, "Private Extension"}, /* Variable Length / 8.67 */
{0, NULL}
};
@@ -1568,7 +1586,7 @@ gtpv2_sn_equal_unmatched(gconstpointer k1, gconstpointer k2)
return key1->seq_nr == key2->seq_nr;
}
-static GHashTable *gtpv2_stat_msg_idx_hash = NULL;
+static GHashTable *gtpv2_stat_msg_idx_hash;
static void
gtpv2_stat_init(struct register_srt* srt _U_, GArray*srt_array)
@@ -1629,6 +1647,313 @@ value_in_tenth_of_percent_fmt(gchar* s, guint32 v)
snprintf(s, ITEM_LABEL_LENGTH, "%.1f%% (%u)", (float)v / 10, v);
}
+/* Add Info element on IE types with multiple instances in same group */
+typedef struct _gtpv2_information_element_instance {
+ guint8 message_type; /* Message type */
+ guint8 parent_ie; /* Parent group IE for which our IE is in. 0 if on message level */
+ guint8 type; /* This IE type */
+ guint8 instance; /* Which Instance */
+ const gchar *info_element; /* Information element for the IE type */
+} gtpv2_information_element_instance_t;
+
+/* IE types which defines with multiple instances in ch7.2 Tunnel Management Messages and ch7.3 Mobility Management Messages */
+static const gtpv2_information_element_instance_t gtpv2_information_element_instance_vals[] = {
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_F_TEID, 0, "Sender F-TEID for Control Plane" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_F_TEID, 1, "PGW S5/S8 Address for Control Plane or PMIP" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_BEARER_CTX, 0, "Bearer Contexts to be Created" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_BEARER_CTX, 1, "Bearer Contexts to be Removed" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_FQ_CSID, 0, "MME-FQ-CSID" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_FQ_CSID, 2, "ePDG-FQ-CSID" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_FQ_CSID, 3, "TWAN-FQ-CSID" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_LDN, 0, "MME/S4-SGSN LDN" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_LDN, 1, "SGW LDN" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_LDN, 2, "ePDG LDN" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_LDN, 3, "TWAN LDN" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IP_ADDRESS, 0, "UE Local IP Address" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IP_ADDRESS, 1, "H(e)NB Local IP Address" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IP_ADDRESS, 2, "MME/S4-SGSN Identifier" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IP_ADDRESS, 3, "ePDG IP Address" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_PORT_NR, 0, "UE UDP Port" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_PORT_NR, 1, "H(e)NB Local UDP Port" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_PORT_NR, 2, "UE TCP Port" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 2, "TWAN/ePDG Overload Control Info" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_TWAN_IDENTIFIER, 0, "TWAN Identifier" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_TWAN_IDENTIFIER, 1, "WLAN Location Info" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_TWAN_ID_TS, 0, "WLAN Location Timestamp" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_ULI, 0, "User Location Info" },
+ { GTPV2_CREATE_SESSION_REQUEST, 0, GTPV2_IE_ULI, 1, "User Location Info for SGW" },
+
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_F_TEID, 0, "Sender F-TEID for Control Plane" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_F_TEID, 1, "PGW S5/S8 Address for Control Plane or PMIP" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_BEARER_CTX, 0, "Bearer Contexts to be Created" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_BEARER_CTX, 1, "Bearer Contexts to be Removed" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_FQ_CSID, 0, "PGW-FQ-CSID" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_LDN, 0, "SGW LDN" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_LDN, 1, "PGW LDN" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "PGW APN level Load Control Info" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 2, "SGW node level Load Control Info" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "PGW Overload Control Info" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_FQDN, 0, "Charging Gateway Name" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_FQDN, 1, "PGW Node Name" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IE_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IP_ADDRESS, 0, "Charging Gateway Address" },
+ { GTPV2_CREATE_SESSION_RESPONSE, 0, GTPV2_IP_ADDRESS, 1, "Alternative PGW-C/SMF Address" },
+ { GTPV2_CREATE_SESSION_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 0, "PGW Set FQDN" },
+ { GTPV2_CREATE_SESSION_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_CREATE_SESSION_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 0, "Alternative PGW-C/SMF Address" },
+
+ { GTPV2_CREATE_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 0, "PGW-FQ-CSID" },
+ { GTPV2_CREATE_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_CREATE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_CREATE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "PGW APN level Load Control Info" },
+ { GTPV2_CREATE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 2, "SGW node level Load Control Info" },
+ { GTPV2_CREATE_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "PGW Overload Control Info" },
+ { GTPV2_CREATE_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 0, "PGW Set FQDN" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 0, "Alternative PGW-C/SMF Address" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 1, "New PGW-C/SMF Address" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 2, "New PGW Control Plane IP Address" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 3, "New SGW-C Address" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_GROUP_ID, 0, "Group Id" },
+ { GTPV2_CREATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_GROUP_ID, 1, "New Group Id" },
+
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 0, "MME-FQ-CSID" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 2, "ePDG-FQ-CSID" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 3, "TWAN-FQ-CSID" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 2, "TWAN/ePDG Overload Control Info" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_IDENTIFIER, 0, "TWAN Identifier" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_IDENTIFIER, 1, "WLAN Location Info" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_ID_TS, 1, "WLAN Location Timestamp" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_PORT_NR, 0, "UE UDP Port" },
+ { GTPV2_CREATE_BEARER_RESPONSE, 0, GTPV2_IE_PORT_NR, 1, "UE TCP Por" },
+
+ { GTPV2_BEARER_RESOURCE_COMMAND, 0, GTPV2_EBI, 0, "Linked EPS Bearer ID (LBI)" },
+ { GTPV2_BEARER_RESOURCE_COMMAND, 0, GTPV2_EBI, 1, "EPS Bearer ID" },
+ { GTPV2_BEARER_RESOURCE_COMMAND, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_BEARER_RESOURCE_COMMAND, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+
+ { GTPV2_BEARER_RESOURCE_FAILURE_INDICATION, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "PGW Overload Control Info" },
+ { GTPV2_BEARER_RESOURCE_FAILURE_INDICATION, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_BEARER_CTX, 0, "Bearer Contexts to be Modified" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_BEARER_CTX, 1, "Bearer Contexts to be Removed" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 0, "MME-FQ-CSID" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IP_ADDRESS, 0, "H(e)NB Local IP Address" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IP_ADDRESS, 1, "UE Local IP Address" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IP_ADDRESS, 2, "MME/S4-SGSN Identifier" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_PORT_NR, 0, "H(e)NB Local UDP Port" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_PORT_NR, 1, "UE UDP Port" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 2, "ePDG Overload Control Info" },
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_ULI, 0, "User Location Info" }, /* redundant */
+ { GTPV2_MODIFY_BEARER_REQUEST, 0, GTPV2_IE_ULI, 1, "User Location Info for SGW" }, /* redundant ? */
+
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_BEARER_CTX, 0, "Bearer Contexts to be Modified" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_BEARER_CTX, 1, "Bearer Contexts to be Removed" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 0, "PGW-FQ-CSID" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_LDN, 0, "SGW LDN" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_LDN, 1, "PGW LDN" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "PGW APN level Load Control Info" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 2, "SGW node level Load Control Info" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "PGW Overload Control Info" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 0, "PGW Set FQDN" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_MODIFY_BEARER_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 0, "Alternative PGW-C/SMF Address" },
+
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_EBI, 0, "Linked EPS Bearer ID (LBI)" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 2, "TWAN/ePDG Overload Control Info" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_TWAN_IDENTIFIER, 0, "TWAN Identifier" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_TWAN_IDENTIFIER, 1, "WLAN Location Info" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_TWAN_ID_TS, 1, "WLAN Location Timestamp" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_PORT_NR, 0, "UE UDP Port" },
+ { GTPV2_DELETE_SESSION_REQUEST, 0, GTPV2_IE_PORT_NR, 1, "UE TCP Por" },
+
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_EBI, 0, "Linked EPS Bearer ID (LBI)" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_EBI, 1, "EPS Bearer ID" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 0, "PGW-FQ-CSID" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "PGW APN level Load Control Info" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 2, "SGW node level Load Control Info" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "PGW Overload Control Info" },
+ { GTPV2_DELETE_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 0, "PGW Set FQDN" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 0, "Alternative PGW-C/SMF Address" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 1, "New PGW-C/SMF Address" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 2, "New PGW Control Plane IP Address" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 3, "New SGW-C Address" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_GROUP_ID, 0, "Group Id" },
+ { GTPV2_DELETE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_GROUP_ID, 1, "New Group Id" },
+
+ { GTPV2_DELETE_SESSION_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_DELETE_SESSION_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "PGW APN level Load Control Info" },
+ { GTPV2_DELETE_SESSION_RESPONSE, 0, GTPV2_IE_LOAD_CONTROL_INF, 2, "SGW node level Load Control Info" },
+ { GTPV2_DELETE_SESSION_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "PGW Overload Control Info" },
+ { GTPV2_DELETE_SESSION_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_EBI, 0, "Linked EPS Bearer ID (LBI)" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 0, "MME-FQ-CSID" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 2, "ePDG-FQ-CSID" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 3, "TWAN-FQ-CSID" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 2, "TWAN/ePDG Overload Control Info" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_IDENTIFIER, 0, "TWAN Identifier" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_IDENTIFIER, 1, "WLAN Location Info" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_ID_TS, 1, "WLAN Location Timestamp" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_PORT_NR, 0, "UE UDP Port" },
+ { GTPV2_DELETE_BEARER_RESPONSE, 0, GTPV2_IE_PORT_NR, 1, "UE TCP Por" },
+
+ { GTPV2_MODIFY_BEARER_COMMAND, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_MODIFY_BEARER_COMMAND, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_MODIFY_BEARER_COMMAND, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 2, "TWAN/ePDG Overload Control Info" },
+
+ { GTPV2_MODIFY_BEARER_FAILURE_INDICATION, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_MODIFY_BEARER_FAILURE_INDICATION, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "SGW node level Load Control Info" },
+
+ { GTPV2_UPDATE_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 0, "PGW-FQ-CSID" },
+ { GTPV2_UPDATE_BEARER_REQUEST, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_UPDATE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_UPDATE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "PGW APN level Load Control Info" },
+ { GTPV2_UPDATE_BEARER_REQUEST, 0, GTPV2_IE_LOAD_CONTROL_INF, 2, "SGW node level Load Control Info" },
+ { GTPV2_UPDATE_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "PGW Overload Control Info" },
+ { GTPV2_UPDATE_BEARER_REQUEST, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 0, "PGW Set FQDN" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 0, "Alternative PGW-C/SMF Address" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 1, "New PGW-C/SMF Address" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 2, "New PGW Control Plane IP Address" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 3, "New SGW-C Address" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_GROUP_ID, 0, "Group Id" },
+ { GTPV2_UPDATE_BEARER_REQUEST, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_GROUP_ID, 1, "New Group Id" },
+
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 0, "MME-FQ-CSID" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 1, "SGW-FQ-CSID" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 2, "ePDG-FQ-CSID" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_FQ_CSID, 3, "TWAN-FQ-CSID" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 2, "TWAN/ePDG Overload Control Info" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_IDENTIFIER, 0, "TWAN Identifier" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_IDENTIFIER, 1, "WLAN Location Info" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_TWAN_ID_TS, 1, "WLAN Location Timestamp" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_PORT_NR, 0, "UE UDP Port" },
+ { GTPV2_UPDATE_BEARER_RESPONSE, 0, GTPV2_IE_PORT_NR, 1, "UE TCP Por" },
+
+ { GTPV2_DELETE_BEARER_COMMAND, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 0, "MME/S4-SGSN Overload Control Info" },
+ { GTPV2_DELETE_BEARER_COMMAND, 0, GTPV2_IE_OVERLOAD_CONTROL_INF, 1, "SGW Overload Control Info" },
+
+ { GTPV2_DELETE_BEARER_FAILURE_INDICATION, 0, GTPV2_IE_LOAD_CONTROL_INF, 0, "PGW node level Load Control Info" },
+ { GTPV2_DELETE_BEARER_FAILURE_INDICATION, 0, GTPV2_IE_LOAD_CONTROL_INF, 1, "SGW node level Load Control Info" },
+
+ { GTPV2_MODIFY_ACESSS_BEARER_REQUEST, 0, GTPV2_IE_BEARER_CTX, 0, "Bearer Contexts to be Modified" },
+ { GTPV2_MODIFY_ACESSS_BEARER_REQUEST, 0, GTPV2_IE_BEARER_CTX, 1, "Bearer Contexts to be Removed" },
+
+ { GTPV2_MODIFY_ACCESS_BEARER_RESPONSE, 0, GTPV2_IE_BEARER_CTX, 0, "Bearer Contexts to be Modified" },
+ { GTPV2_MODIFY_ACCESS_BEARER_RESPONSE, 0, GTPV2_IE_BEARER_CTX, 1, "Bearer Contexts to be Removed" },
+
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_F_CONTAINER, 0, "E-UTRAN Transparent Container" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_F_CONTAINER, 1, "UTRAN Transparent Container" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_F_CONTAINER, 2, "BSS Container" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IP_ADDRESS, 0, "HRPD access node S101 IP Address" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IP_ADDRESS, 1, "1xIWS S102 IP Address" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_CAUSE, 0, "S1-AP Cause" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_CAUSE, 1, "RANAP Cause" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_CAUSE, 2, "BSSGP Cause" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_RFSP_INDEX, 0, "Subscribed RFSP Index" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_RFSP_INDEX, 1, "RFSP Index in Use" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_FQDN, 0, "SGW FQDN" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_FQDN, 1, "SGSN FQDN" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_FQDN, 2, "MME FQDN" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_ADDITIONAL_RRM_POLICY_INDEX, 0, "Subscribed Additional RRM Policy Index" },
+ { GTPV2_FORWARD_RELOCATION_REQ, 0, GTPV2_IE_ADDITIONAL_RRM_POLICY_INDEX, 1, "Additional RRM Policy Index in Use" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_PDN_CONNECTION, GTPV2_IE_FQDN, 0, "PGW FQDN" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_PDN_CONNECTION, GTPV2_IE_FQDN, 1, "Local Home Network ID" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_V2X_CONTEXT, GTPV2_IE_SERVICES_AUTHORIZED, 0, "LTE V2X Service Authorized" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_V2X_CONTEXT, GTPV2_IE_SERVICES_AUTHORIZED, 1, "NR V2X Service Authorized" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_V2X_CONTEXT, GTPV2_IE_BIT_RATE, 0, "LTE UE Sidelink Aggregate Maximum Bit Rate" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_V2X_CONTEXT, GTPV2_IE_BIT_RATE, 1, "NR UE Sidelink Aggregate Maximum Bit Rate" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 0, "PGW Set FQDN" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 0, "Alternative PGW-C/SMF Address" },
+ { GTPV2_FORWARD_RELOCATION_REQ, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 1, "New PGW-C/SMF Address" },
+
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_BEARER_CTX, 0, "List of Set-up Bearers" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_BEARER_CTX, 1, "List of Set-up RABs" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_BEARER_CTX, 2, "List of Set-up PFCs" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_BEARER_CTX, 2, "List of Set-up Bearers for SCEF PDN Connections" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_CAUSE, 0, "S1-AP Cause" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_CAUSE, 1, "RANAP Cause" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_CAUSE, 2, "BSSGP Cause" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_F_CONTAINER, 0, "E-UTRAN Transparent Container" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_F_CONTAINER, 1, "UTRAN Transparent Container" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_F_CONTAINER, 2, "BSS Container" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_FQDN, 0, "SGSN Node Name" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_FQDN, 1, "MME Node Name" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_NODE_IDENTIFIER, 0, "SGSN Identifier" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_NODE_IDENTIFIER, 1, "MME Identifier" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_NODE_IDENTIFIER, 2, "SGSN Identifier for MT-SMS" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_NODE_IDENTIFIER, 3, "MME Identifier for MT-SMS" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_NODE_NUMBER, 0, "SGSN Number" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_NODE_NUMBER, 1, "MME Number for MT-SMS" },
+ { GTPV2_FORWARD_RELOCATION_RESP, 0, GTPV2_IE_NODE_NUMBER, 2, "MSC Number" },
+
+ { GTPV2_FORWARD_RELOCATION_COMPLETE_ACKNOWLEDGE, 0, GTPV2_IE_SECONDARY_RAT_USAGE_DATA_REPORT, 0, "Secondary RAT Usage Data Report" },
+ { GTPV2_FORWARD_RELOCATION_COMPLETE_ACKNOWLEDGE, 0, GTPV2_IE_SECONDARY_RAT_USAGE_DATA_REPORT, 1, "Secondary RAT Usage Data Report from NG-RAN" },
+
+ { GTPV2_CONTEXT_REQUEST, 0, GTPV2_IE_FQDN, 0, "SGSN Node Name" },
+ { GTPV2_CONTEXT_REQUEST, 0, GTPV2_IE_FQDN, 1, "MME Node Name" },
+ { GTPV2_CONTEXT_REQUEST, 0, GTPV2_IE_NODE_IDENTIFIER, 0, "SGSN Identifier" },
+ { GTPV2_CONTEXT_REQUEST, 0, GTPV2_IE_NODE_IDENTIFIER, 1, "MME Identifier" },
+
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IP_ADDRESS, 0, "HRPD access node S101 IP Address" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IP_ADDRESS, 1, "1xIWS S102 IP Address" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_RFSP_INDEX, 0, "Subscribed RFSP Index" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_RFSP_INDEX, 1, "RFSP Index in Use" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_FQDN, 0, "SGW Node Name" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_FQDN, 1, "SGSN Node Name" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_FQDN, 2, "MME Node Name" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_INTEGER_NUMBER, 0, "UE Usage Type" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_INTEGER_NUMBER, 1, "Remaining Running Service Gap Timer" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_ADDITIONAL_RRM_POLICY_INDEX, 0, "Subscribed Additional RRM Policy Index" },
+ { GTPV2_CONTEXT_RESPONSE, 0, GTPV2_IE_ADDITIONAL_RRM_POLICY_INDEX, 1, "Additional RRM Policy Index in Use" },
+ { GTPV2_CONTEXT_RESPONSE, GTPV2_IE_PDN_CONNECTION, GTPV2_IE_FQDN, 0, "PGW FQDN" },
+ { GTPV2_CONTEXT_RESPONSE, GTPV2_IE_PDN_CONNECTION, GTPV2_IE_FQDN, 1, "Local Home Network ID" },
+ { GTPV2_CONTEXT_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 0, "PGW Set FQDN" },
+ { GTPV2_CONTEXT_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IE_PGW_FQDN, 1, "Alternative PGW-C/SMF FQDN" },
+ { GTPV2_CONTEXT_RESPONSE, GTPV2_IE_PGW_CHANGE_INFO, GTPV2_IP_ADDRESS, 0, "Alternative PGW-C/SMF Address" },
+
+ { GTPV2_CONTEXT_ACKNOWLEDGE, 0, GTPV2_IE_NODE_NUMBER, 0, "SGSN Number" },
+ { GTPV2_CONTEXT_ACKNOWLEDGE, 0, GTPV2_IE_NODE_NUMBER, 1, "MME Number for MT-SMS" },
+ { GTPV2_CONTEXT_ACKNOWLEDGE, 0, GTPV2_IE_NODE_IDENTIFIER, 0, "SGSN Identifier for MT-SMS" },
+ { GTPV2_CONTEXT_ACKNOWLEDGE, 0, GTPV2_IE_NODE_IDENTIFIER, 1, "MME Identifier for MT-SMS" },
+
+ { GTPV2_CONFIGURATION_TRANSFER_TUNNEL, 0, GTPV2_IE_TARGET_ID, 0, "Target eNodeB ID / en-gNB ID / gnB ID" },
+ { GTPV2_CONFIGURATION_TRANSFER_TUNNEL, 0, GTPV2_IE_TARGET_ID, 1, "Connected Target eNodeB ID" },
+
+ { 0, 0, 0, 0, NULL },
+};
+
+#define NUM_GTPV2_IE_INFO_ELEM_INSTANCES (sizeof(gtpv2_information_element_instance_vals)/sizeof(gtpv2_information_element_instance_t))
/* Code to dissect IE's */
@@ -2794,7 +3119,7 @@ dissect_gtpv2_bearer_qos(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
static int* const bearer_qos_oct1_flags[] = {
&hf_gtpv2_bearer_qos_pci,
&hf_gtpv2_bearer_qos_pl,
- &hf_gtpv2_bearer_qos_pl,
+ &hf_gtpv2_bearer_qos_pvi,
NULL
};
proto_tree_add_bitmask_list(tree, tvb, offset, 1, bearer_qos_oct1_flags, ENC_BIG_ENDIAN);
@@ -3696,7 +4021,7 @@ dissect_gtpv2_bearer_ctx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U_
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_bearer_ctx);
new_tvb = tvb_new_subset_length(tvb, offset, length);
- dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, 0, message_type, args);
+ dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, 0, message_type, args, GTPV2_IE_BEARER_CTX);
}
/* 8.29 Charging ID */
@@ -3916,7 +4241,7 @@ dissect_gtpv2_tra_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, prot
proto_tree_add_bits_item(sgw_tree, hf_gtpv2_spare_bits, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
static int* const tra_info_pgw_flags[] = {
- &hf_gtpv2_tra_info_pgw_pdn_con_creat,
+ &hf_gtpv2_tra_info_sgw_bearer_act_mod_del,
&hf_gtpv2_tra_info_pgw_pdn_con_term,
&hf_gtpv2_tra_info_pgw_pdn_con_creat,
NULL
@@ -5223,7 +5548,7 @@ dissect_gtpv2_PDN_conn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U_,
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_PDN_conn);
new_tvb = tvb_new_subset_length(tvb, offset, length);
- dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args);
+ dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args, GTPV2_IE_PDN_CONNECTION);
}
/*
* 8.40 PDU Numbers
@@ -5683,7 +6008,7 @@ dissect_gtpv2_F_cause(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto
}
/*
- * 8.50 Selected PLMN ID
+ * 8.50 PLMN ID
*/
/*
* The Selected PLMN ID IE contains the core network operator selected for tne UE
@@ -5703,7 +6028,7 @@ dissect_gtpv2_F_cause(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto
* +--+--+--+--+--+--+--+--+
*/
static void
-dissect_gtpv2_sel_plmn_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_)
+dissect_gtpv2_plmn_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_)
{
gchar *mcc_mnc_str;
@@ -5990,12 +6315,12 @@ dissect_gtpv2_s_rnc_pdcp_ctx_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
}
/*
- * 8.56 UDP Source Port Number
+ * 8.56 Port Number
*/
static void
-dissect_udp_s_port_nr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_)
+dissect_port_nr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_)
{
- proto_tree_add_item(tree, hf_gtpv2_upd_source_port_number, tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gtpv2_port_number, tvb, 0, 2, ENC_BIG_ENDIAN);
proto_item_append_text(item, "%u", tvb_get_ntohs(tvb, 0));
}
/*
@@ -7606,7 +7931,7 @@ dissect_gtpv2_overload_control_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_overload_control_information);
new_tvb = tvb_new_subset_length(tvb, offset, length);
- dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args);
+ dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args, GTPV2_IE_OVERLOAD_CONTROL_INF);
}
/*
* 8.112 Load Control Information
@@ -7622,7 +7947,7 @@ dissect_gtpv2_load_control_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_load_control_inf);
new_tvb = tvb_new_subset_length(tvb, offset, length);
- dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, 0, message_type, args);
+ dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, 0, message_type, args, GTPV2_IE_LOAD_CONTROL_INF);
}
/*
* 8.113 Metric
@@ -7793,7 +8118,7 @@ static void
dissect_gtpv2_mon_event_inf(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_)
{
int offset = 0;
- gboolean srie;
+ bool srie;
guint32 scef_id_len;
/* Octet 4 higher four bits flags SIRE, NSCF, NSUI and NSUR */
@@ -7868,7 +8193,7 @@ dissect_gtpv2_scef_pdn_connection(tvbuff_t *tvb, packet_info *pinfo, proto_tree
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_PDN_conn);
new_tvb = tvb_new_subset_length(tvb, offset, length);
- dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args);
+ dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args, GTPV2_IE_SCEF_PDN_CONNECTION);
}
@@ -8443,8 +8768,8 @@ static void
dissect_gtpv2_ie_mon_event_ext_inf(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
{
int offset = 0;
- gboolean lrtp;
- gboolean srie;
+ bool lrtp;
+ bool srie;
guint32 scef_id_len;
/* Octet 5 Bit 8-3 Spare Bit 2 SRIE Bit 1 LRTP */
@@ -8541,12 +8866,12 @@ dissect_gtpv2_ie_pgw_change_info(tvbuff_t* tvb, packet_info* pinfo, proto_tree*
grouped_tree = proto_item_add_subtree(item, ett_gtpv2_PGW_change_info);
new_tvb = tvb_new_subset_length(tvb, offset, length);
- dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args);
+ dissect_gtpv2_ie_common(new_tvb, pinfo, grouped_tree, offset, message_type, args, GTPV2_IE_PGW_CHANGE_INFO);
}
-/* 215 PGW Set FQDN Extendable / 8.146 */
+/* 215 PGW FQDN Extendable / 8.146 */
static void
-dissect_gtpv2_ie_pgw_set_fqdn(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item, guint16 length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
+dissect_gtpv2_ie_pgw_fqdn(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item, guint16 length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
{
int offset = 0;
offset = decode_gtpv2_fqdn(tvb, pinfo, tree, item, offset, length);
@@ -8565,23 +8890,70 @@ dissect_gtpv2_ie_group_id(tvbuff_t* tvb, packet_info* pinfo _U_, proto_tree* tre
/* 217 PSCell Id / 8.148 */
static void
-dissect_gtpv2_ie_pscell_id(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
+dissect_gtpv2_ie_pscell_id(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
{
- proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, 0, length);
+ int offset = 0;
+
+ dissect_e212_mcc_mnc(tvb, pinfo, tree, offset, E212_NONE, TRUE);
+ offset += 3;
+ proto_tree_add_item(tree, hf_gtpv2_ie_pscell_id_spare, tvb, offset, 5, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gtpv2_ie_pscell_id_nr_cgi, tvb, offset, 5, ENC_NA);
+
}
/* 218 UP Security Policy / 8.149 */
+static const value_string gtpv2_up_ip_policy_vals[] = {
+ {0, "User Plane Integrity protection with EPS is not needed"},
+ {1, "User Plane Integrity protection with EPS is preferred"},
+ {2, "User Plane Integrity protection with EPS is required"},
+ {3, "Spare"},
+ {0, NULL}
+};
+
static void
dissect_gtpv2_ie_up_security_policy(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
{
- proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, 0, length);
+ proto_tree_add_item(tree, hf_gtpv2_ie_up_security_policy_spare, tvb, 0, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_gtpv2_ie_up_security_policy_up_ip_policy, tvb, 0, 1, ENC_BIG_ENDIAN);
+ if (length > 2) {
+ proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, 1, length - 2);
+ }
}
/* 219 Alternative IMSI / 8.150 */
static void
-dissect_gtpv2_ie_alternative_imsi(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
+dissect_gtpv2_ie_alternative_imsi(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, proto_item* item, guint16 length, guint8 message_type, guint8 instance, session_args_t* args)
{
- proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, 0, length);
+ /*
+ * TS 29.274 V18.4.0 says:
+ * Alternative IMSI is in the form of an IMSI as defined in 3GPP TS 23.003.
+ */
+ dissect_gtpv2_imsi(tvb, pinfo, tree, item, length, message_type, instance, args);
+}
+
+/* 220 NF Instance ID / 8.151 */
+static void
+dissect_gtpv2_ie_nf_instance_id(tvbuff_t* tvb, packet_info* pinfo _U_, proto_tree* tree, proto_item* item _U_, guint16 _U_ length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
+{
+ /*
+ * String uniquely identifying a NF instance. The format of the NF Instance ID shall be a
+ * Universally Unique Identifier (UUID) version 4, as described in IETF RFC 4122 [15]. The
+ * hexadecimal letters should be formatted as lower-case characters by the sender, and they
+ * shall be handled as case-insensitive by the receiver.
+ *
+ * Example: "4ace9d34-2c69-4f99-92d5-a73a3fe8e23b"
+ */
+ proto_tree_add_item(tree, hf_gtpv2_nf_instance_id_nf_instance_id, tvb, 0, 36, ENC_BIG_ENDIAN);
+}
+
+/* 221 Timer in Seconds / 8.152 */
+static void
+dissect_gtpv2_timer_in_seconds(tvbuff_t* tvb, packet_info* pinfo _U_, proto_tree* tree, proto_item* item _U_, guint16 _U_ length, guint8 message_type _U_, guint8 instance _U_, session_args_t* args _U_)
+{
+ proto_tree_add_item(tree, hf_gtpv2_nf_timer_in_seconds_timer_value, tvb, 0, 3, ENC_BIG_ENDIAN);
+ if (length > 4) {
+ proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, 3, length - 4);
+ }
}
/* Table 8.1-1: Information Element types for GTPv2 */
@@ -8659,13 +9031,13 @@ static const gtpv2_ie_t gtpv2_ies[] = {
{GTPV2_IE_GUTI, dissect_gtpv2_guti}, /* 117, GUTI 8.47 */
{GTPV2_IE_F_CONTAINER, dissect_gtpv2_F_container}, /* 118, Fully Qualified Container (F-Container) */
{GTPV2_IE_F_CAUSE, dissect_gtpv2_F_cause}, /* 119, Fully Qualified Cause (F-Cause) */
- {GTPV2_IE_SEL_PLMN_ID, dissect_gtpv2_sel_plmn_id}, /* 120, Selected PLMN ID 8.50 */
+ {GTPV2_IE_PLMN_ID, dissect_gtpv2_plmn_id}, /* 120, PLMN ID 8.50 */
{GTPV2_IE_TARGET_ID, dissect_gtpv2_target_id}, /* 121, Target Identification */
/* 122, Void 8.52 */
{GTPV2_IE_PKT_FLOW_ID, dissect_gtpv2_pkt_flow_id}, /* 123, Packet Flow ID 8.53 */
{GTPV2_IE_RAB_CONTEXT, dissect_gtpv2_rab_context}, /* 124, RAB Context 8.54 */
{GTPV2_IE_S_RNC_PDCP_CTX_INFO, dissect_gtpv2_s_rnc_pdcp_ctx_info}, /* 125, Source RNC PDCP context info 8.55 */
- {GTPV2_IE_UDP_S_PORT_NR, dissect_udp_s_port_nr}, /* 126, UDP Source Port Number 8.56 */
+ {GTPV2_IE_PORT_NR, dissect_port_nr}, /* 126, Port Number 8.56 */
{GTPV2_IE_APN_RESTRICTION, dissect_gtpv2_apn_rest}, /* 127, APN Restriction */
{GTPV2_IE_SEL_MODE, dissect_gtpv2_selec_mode}, /* 128, Selection Mode */
{GTPV2_IE_SOURCE_IDENT, dissect_gtpv2_source_ident}, /* 129, Source Identification 8.59 */
@@ -8755,14 +9127,14 @@ static const gtpv2_ie_t gtpv2_ies[] = {
{GTPV2_IE_PC5_QOS_FLOW, dissect_gtpv2_ie_pc5_qos_flow }, /* 212 PC5 QoS Flow Extendable / 8.143 */
{GTPV2_IE_SGI_PTP_TUNNEL_ADDRESS, dissect_gtpv2_ie_sgi_ptp_tunnel_address }, /* 213 SGi PtP Tunnel Address Extendable / 8.144 */
{GTPV2_IE_PGW_CHANGE_INFO, dissect_gtpv2_ie_pgw_change_info }, /* 214 PGW Change Info Extendable / 8.145 */
- {GTPV2_IE_PGW_SET_FQDN, dissect_gtpv2_ie_pgw_set_fqdn }, /* 215 PGW Set FQDN Extendable / 8.146 */
+ {GTPV2_IE_PGW_FQDN, dissect_gtpv2_ie_pgw_fqdn }, /* 215 PGW FQDN Extendable / 8.146 */
{GTPV2_IE_GROUP_ID, dissect_gtpv2_ie_group_id }, /* 216 Group Id Variable Length / 8.147 */
{GTPV2_IE_PSCELL_ID, dissect_gtpv2_ie_pscell_id }, /* 217 PSCell Id Fixed Length / 8.148 */
{GTPV2_IE_UP_SECURITY_POLICY, dissect_gtpv2_ie_up_security_policy }, /* 218 UP Security Policy Extendable / 8.149 */
{GTPV2_IE_ALT_IMSI, dissect_gtpv2_ie_alternative_imsi }, /* 219 Alternative IMSI Variable Length / 8.150 */
-
- {GTPV2_IE_PRIVATE_EXT, dissect_gtpv2_private_ext},
-
+ {GTPV2_IE_NF_INSTANCE_ID, dissect_gtpv2_ie_nf_instance_id }, /* 220 NF Instance ID*/
+ {GTPV2_IE_TIMER_IN_SECONDS, dissect_gtpv2_timer_in_seconds }, /* 221 Timer in Seconds*/
+ {GTPV2_IE_PRIVATE_EXT, dissect_gtpv2_private_ext },
{0, dissect_gtpv2_unknown}
};
@@ -8995,7 +9367,7 @@ track_gtpv2_session(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gtpv
}
void
-dissect_gtpv2_ie_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gint offset, guint8 message_type, session_args_t * args)
+dissect_gtpv2_ie_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gint offset, guint8 message_type, session_args_t * args, guint8 parent_ie)
{
proto_tree *ie_tree;
proto_item *ti;
@@ -9003,6 +9375,7 @@ dissect_gtpv2_ie_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
guint8 type, instance;
guint16 length;
int i, remaining_length, msg_length;
+ unsigned info_elem;
/*
* Octets 8 7 6 5 4 3 2 1
* 1 Type
@@ -9053,6 +9426,20 @@ dissect_gtpv2_ie_common(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
instance = tvb_get_guint8(tvb, offset) & 0x0f;
proto_tree_add_item(ie_tree, hf_gtpv2_instance, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ /* Add Info element on IE types with multiple instances in same group */
+ if (message_type > 0) {
+ for (info_elem = 0; info_elem < NUM_GTPV2_IE_INFO_ELEM_INSTANCES; info_elem++) {
+ if (gtpv2_information_element_instance_vals[info_elem].message_type == message_type &&
+ gtpv2_information_element_instance_vals[info_elem].parent_ie == parent_ie &&
+ gtpv2_information_element_instance_vals[info_elem].type == type &&
+ gtpv2_information_element_instance_vals[info_elem].instance == instance)
+ {
+ proto_item_append_text(ie_tree, " %s: ", gtpv2_information_element_instance_vals[info_elem].info_element);
+ break;
+ }
+ }
+ }
offset++;
}
@@ -9232,9 +9619,9 @@ dissect_gtpv2(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data
if (p_flag) {
msg_tvb = tvb_new_subset_length(tvb, 0, msg_length + 4);
- dissect_gtpv2_ie_common(msg_tvb, pinfo, gtpv2_tree, offset, message_type, args);
+ dissect_gtpv2_ie_common(msg_tvb, pinfo, gtpv2_tree, offset, message_type, args, 0);
} else {
- dissect_gtpv2_ie_common(tvb, pinfo, gtpv2_tree, offset, message_type, args);
+ dissect_gtpv2_ie_common(tvb, pinfo, gtpv2_tree, offset, message_type, args, 0);
}
/*Use sequence number to track Req/Resp pairs*/
cause_aux = 16; /* Cause accepted by default. Only used when args is NULL */
@@ -11658,7 +12045,7 @@ void proto_register_gtpv2(void)
{ &hf_gtpv2_hop_counter, { "Hop Counter", "gtpv2.hop_counter", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_gtpv2_packet_flow_id, { "Packet Flow ID", "gtpv2.packet_flow_id", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_gtpv2_rrc_container, { "RRC Container", "gtpv2.rrc_container", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
- { &hf_gtpv2_upd_source_port_number, { "UPD Source Port Number", "gtpv2.upd_source_port_number", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { &hf_gtpv2_port_number, { "Port Number", "gtpv2.port_number", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_gtpv2_proprietary_value, { "Proprietary value", "gtpv2.proprietary_value", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_gtpv2_spare_bytes, { "Spare", "gtpv2.spare_bytes", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_gtpv2_dl_pdcp_sequence_number, { "DL PDCP Sequence Number", "gtpv2.dl_pdcp_sequence_number", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
@@ -12591,6 +12978,36 @@ void proto_register_gtpv2(void)
FT_STRING, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_gtpv2_ie_up_security_policy_up_ip_policy,
+ { "UP IP Policy", "gtpv2.ie_up_security_policy.up_ip_policy",
+ FT_UINT8, BASE_DEC, VALS(gtpv2_up_ip_policy_vals), 0x3,
+ NULL, HFILL }
+ },
+ { &hf_gtpv2_ie_pscell_id_spare,
+ { "Spare", "gtpv2.pscell_id.spare",
+ FT_UINT40, BASE_DEC, NULL, 0xF000000000,
+ NULL, HFILL }
+ },
+ { &hf_gtpv2_ie_pscell_id_nr_cgi,
+ { "NR CGI", "gtpv2.pscell_id.nr_cgi",
+ FT_UINT40, BASE_HEX, NULL, 0x0FFFFFFFFF,
+ NULL, HFILL }
+ },
+ { &hf_gtpv2_ie_up_security_policy_spare,
+ { "Spare", "gtpv2.up_security_policy.spare",
+ FT_UINT8, BASE_DEC, NULL, 0xFC,
+ NULL, HFILL }
+ },
+ { &hf_gtpv2_nf_instance_id_nf_instance_id,
+ { "NF Instance ID", "gtpv2.nf_instance_id_nf_instance_id",
+ FT_GUID, BASE_NONE, NULL, 0x0,
+ NULL, HFILL}
+ },
+ { &hf_gtpv2_nf_timer_in_seconds_timer_value,
+ { "Timer in Seconds", "gtpv2.timer_in_seconds_timer_value",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL}
+ },
};
/* Setup protocol subtree array */
diff --git a/epan/dissectors/packet-gtpv2.h b/epan/dissectors/packet-gtpv2.h
index b383275fff..eefc3bba11 100644
--- a/epan/dissectors/packet-gtpv2.h
+++ b/epan/dissectors/packet-gtpv2.h
@@ -8,7 +8,7 @@
*/
#include "packet-gtp.h"
-extern void dissect_gtpv2_ie_common(tvbuff_t* tvb, packet_info* pinfo _U_, proto_tree* tree, gint offset, guint8 message_type, session_args_t* args);
+extern void dissect_gtpv2_ie_common(tvbuff_t* tvb, packet_info* pinfo _U_, proto_tree* tree, gint offset, guint8 message_type, session_args_t* args, guint8 parent_ie);
extern void dissect_gtpv2_mbms_service_area(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_);
extern void dissect_gtpv2_mbms_session_duration(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_);
diff --git a/epan/dissectors/packet-gvsp.c b/epan/dissectors/packet-gvsp.c
index 98bc7e76e5..ee9f5fa2da 100644
--- a/epan/dissectors/packet-gvsp.c
+++ b/epan/dissectors/packet-gvsp.c
@@ -3589,7 +3589,7 @@ void proto_register_gvsp(void)
{ &hf_gvsp_gendc_part_header_1D_padding_v2_2,
{ "Padding (1D Data)", "gvsp.gendc.part.header.1d.padding",
- FT_UINT16, BASE_HEX_DEC, NULL, 0x0,
+ FT_UINT32, BASE_HEX_DEC, NULL, 0x0,
NULL, HFILL
} },
};
diff --git a/epan/dissectors/packet-h223.c b/epan/dissectors/packet-h223.c
index 972a2c5c87..619840566e 100644
--- a/epan/dissectors/packet-h223.c
+++ b/epan/dissectors/packet-h223.c
@@ -166,7 +166,7 @@ typedef struct {
guint32 vc; /* child circuit */
} circuit_chain_key;
-static wmem_map_t *circuit_chain_hashtable = NULL;
+static wmem_map_t *circuit_chain_hashtable;
static guint circuit_chain_count = 1;
/* Hash Functions */
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index 70af1c0798..489661f95b 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -79,7 +79,7 @@ typedef struct _h225ras_call_info_key {
/* Global Memory Chunks for lists and Global hash tables*/
-static wmem_map_t *ras_calls[7] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL};
+static wmem_map_t *ras_calls[7];
/* functions, needed using ras-request and halfcall matching*/
static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category);
@@ -97,9 +97,9 @@ static dissector_table_t gef_name_dissector_table;
static dissector_table_t gef_content_dissector_table;
-static dissector_handle_t h245_handle=NULL;
-static dissector_handle_t h245dg_handle=NULL;
-static dissector_handle_t h4501_handle=NULL;
+static dissector_handle_t h245_handle;
+static dissector_handle_t h245dg_handle;
+static dissector_handle_t h4501_handle;
static dissector_handle_t nsp_handle;
static dissector_handle_t tp_handle;
@@ -894,258 +894,258 @@ static int hf_h225_notAvailable; /* NULL */
/* Initialize the subtree pointers */
static gint ett_h225;
-static gint ett_h225_H323_UserInformation;
-static gint ett_h225_T_user_data;
-static gint ett_h225_H323_UU_PDU;
-static gint ett_h225_T_h323_message_body;
-static gint ett_h225_T_h4501SupplementaryService;
-static gint ett_h225_H245Control;
-static gint ett_h225_SEQUENCE_OF_NonStandardParameter;
-static gint ett_h225_T_tunnelledSignallingMessage;
-static gint ett_h225_T_messageContent;
-static gint ett_h225_SEQUENCE_OF_GenericData;
-static gint ett_h225_StimulusControl;
-static gint ett_h225_Alerting_UUIE;
-static gint ett_h225_SEQUENCE_OF_ClearToken;
-static gint ett_h225_SEQUENCE_OF_CryptoH323Token;
-static gint ett_h225_SEQUENCE_OF_AliasAddress;
-static gint ett_h225_SEQUENCE_OF_ServiceControlSession;
-static gint ett_h225_SEQUENCE_OF_DisplayName;
-static gint ett_h225_CallProceeding_UUIE;
-static gint ett_h225_Connect_UUIE;
-static gint ett_h225_Information_UUIE;
-static gint ett_h225_ReleaseComplete_UUIE;
-static gint ett_h225_ReleaseCompleteReason;
-static gint ett_h225_Setup_UUIE;
-static gint ett_h225_SEQUENCE_OF_CallReferenceValue;
-static gint ett_h225_T_conferenceGoal;
-static gint ett_h225_SEQUENCE_OF_H245Security;
-static gint ett_h225_FastStart;
-static gint ett_h225_T_connectionParameters;
-static gint ett_h225_Language;
-static gint ett_h225_SEQUENCE_OF_SupportedProtocols;
-static gint ett_h225_SEQUENCE_OF_FeatureDescriptor;
-static gint ett_h225_ParallelH245Control;
-static gint ett_h225_SEQUENCE_OF_ExtendedAliasAddress;
-static gint ett_h225_ScnConnectionType;
-static gint ett_h225_ScnConnectionAggregation;
-static gint ett_h225_PresentationIndicator;
-static gint ett_h225_Facility_UUIE;
-static gint ett_h225_SEQUENCE_OF_ConferenceList;
-static gint ett_h225_ConferenceList;
-static gint ett_h225_FacilityReason;
-static gint ett_h225_Progress_UUIE;
-static gint ett_h225_TransportAddress;
-static gint ett_h225_H245TransportAddress;
-static gint ett_h225_T_h245IpAddress;
-static gint ett_h225_T_h245IpSourceRoute;
-static gint ett_h225_T_h245Route;
-static gint ett_h225_T_h245Routing;
-static gint ett_h225_T_h245IpxAddress;
-static gint ett_h225_T_h245Ip6Address;
-static gint ett_h225_T_ipAddress;
-static gint ett_h225_T_ipSourceRoute;
-static gint ett_h225_T_route;
-static gint ett_h225_T_routing;
-static gint ett_h225_T_ipxAddress;
-static gint ett_h225_T_ip6Address;
-static gint ett_h225_Status_UUIE;
-static gint ett_h225_StatusInquiry_UUIE;
-static gint ett_h225_SetupAcknowledge_UUIE;
-static gint ett_h225_Notify_UUIE;
-static gint ett_h225_EndpointType;
-static gint ett_h225_SEQUENCE_OF_TunnelledProtocol;
-static gint ett_h225_GatewayInfo;
-static gint ett_h225_SupportedProtocols;
-static gint ett_h225_H310Caps;
-static gint ett_h225_SEQUENCE_OF_DataRate;
-static gint ett_h225_SEQUENCE_OF_SupportedPrefix;
-static gint ett_h225_H320Caps;
-static gint ett_h225_H321Caps;
-static gint ett_h225_H322Caps;
-static gint ett_h225_H323Caps;
-static gint ett_h225_H324Caps;
-static gint ett_h225_VoiceCaps;
-static gint ett_h225_T120OnlyCaps;
-static gint ett_h225_NonStandardProtocol;
-static gint ett_h225_T38FaxAnnexbOnlyCaps;
-static gint ett_h225_SIPCaps;
-static gint ett_h225_McuInfo;
-static gint ett_h225_TerminalInfo;
-static gint ett_h225_GatekeeperInfo;
-static gint ett_h225_VendorIdentifier;
-static gint ett_h225_H221NonStandard;
-static gint ett_h225_TunnelledProtocol;
-static gint ett_h225_TunnelledProtocol_id;
-static gint ett_h225_TunnelledProtocolAlternateIdentifier;
-static gint ett_h225_NonStandardParameter;
-static gint ett_h225_NonStandardIdentifier;
-static gint ett_h225_AliasAddress;
-static gint ett_h225_AddressPattern;
-static gint ett_h225_T_range;
-static gint ett_h225_PartyNumber;
-static gint ett_h225_PublicPartyNumber;
-static gint ett_h225_PrivatePartyNumber;
-static gint ett_h225_DisplayName;
-static gint ett_h225_PublicTypeOfNumber;
-static gint ett_h225_PrivateTypeOfNumber;
-static gint ett_h225_MobileUIM;
-static gint ett_h225_ANSI_41_UIM;
-static gint ett_h225_T_system_id;
-static gint ett_h225_GSM_UIM;
-static gint ett_h225_IsupNumber;
-static gint ett_h225_IsupPublicPartyNumber;
-static gint ett_h225_IsupPrivatePartyNumber;
-static gint ett_h225_NatureOfAddress;
-static gint ett_h225_ExtendedAliasAddress;
-static gint ett_h225_Endpoint;
-static gint ett_h225_SEQUENCE_OF_TransportAddress;
-static gint ett_h225_AlternateTransportAddresses;
-static gint ett_h225_UseSpecifiedTransport;
-static gint ett_h225_AlternateGK;
-static gint ett_h225_AltGKInfo;
-static gint ett_h225_SEQUENCE_OF_AlternateGK;
-static gint ett_h225_SecurityServiceMode;
-static gint ett_h225_SecurityCapabilities;
-static gint ett_h225_SecurityErrors;
-static gint ett_h225_SecurityErrors2;
-static gint ett_h225_H245Security;
-static gint ett_h225_QseriesOptions;
-static gint ett_h225_Q954Details;
-static gint ett_h225_CallIdentifier;
-static gint ett_h225_EncryptIntAlg;
-static gint ett_h225_NonIsoIntegrityMechanism;
-static gint ett_h225_IntegrityMechanism;
-static gint ett_h225_ICV;
-static gint ett_h225_CryptoH323Token;
-static gint ett_h225_T_cryptoEPPwdHash;
-static gint ett_h225_T_cryptoGKPwdHash;
-static gint ett_h225_DataRate;
-static gint ett_h225_CallLinkage;
-static gint ett_h225_SupportedPrefix;
-static gint ett_h225_CapacityReportingCapability;
-static gint ett_h225_CapacityReportingSpecification;
-static gint ett_h225_CapacityReportingSpecification_when;
-static gint ett_h225_CallCapacity;
-static gint ett_h225_CallCapacityInfo;
-static gint ett_h225_SEQUENCE_OF_CallsAvailable;
-static gint ett_h225_CallsAvailable;
-static gint ett_h225_CircuitInfo;
-static gint ett_h225_CircuitIdentifier;
-static gint ett_h225_CicInfo;
-static gint ett_h225_T_cic_2_4;
-static gint ett_h225_GroupID;
-static gint ett_h225_T_member;
-static gint ett_h225_CarrierInfo;
-static gint ett_h225_ServiceControlDescriptor;
-static gint ett_h225_ServiceControlSession;
-static gint ett_h225_ServiceControlSession_reason;
-static gint ett_h225_RasUsageInfoTypes;
-static gint ett_h225_RasUsageSpecification;
-static gint ett_h225_RasUsageSpecification_when;
-static gint ett_h225_RasUsageSpecificationcallStartingPoint;
-static gint ett_h225_RasUsageInformation;
-static gint ett_h225_CallTerminationCause;
-static gint ett_h225_BandwidthDetails;
-static gint ett_h225_CallCreditCapability;
-static gint ett_h225_CallCreditServiceControl;
-static gint ett_h225_T_billingMode;
-static gint ett_h225_CallCreditServiceControl_callStartingPoint;
-static gint ett_h225_GenericData;
-static gint ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter;
-static gint ett_h225_GenericIdentifier;
-static gint ett_h225_EnumeratedParameter;
-static gint ett_h225_Content;
-static gint ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData;
-static gint ett_h225_FeatureSet;
-static gint ett_h225_TransportChannelInfo;
-static gint ett_h225_RTPSession;
-static gint ett_h225_T_associatedSessionIds;
-static gint ett_h225_RehomingModel;
-static gint ett_h225_RasMessage;
-static gint ett_h225_SEQUENCE_OF_AdmissionConfirm;
-static gint ett_h225_GatekeeperRequest;
-static gint ett_h225_SEQUENCE_OF_Endpoint;
-static gint ett_h225_SEQUENCE_OF_AuthenticationMechanism;
-static gint ett_h225_T_algorithmOIDs;
-static gint ett_h225_SEQUENCE_OF_IntegrityMechanism;
-static gint ett_h225_GatekeeperConfirm;
-static gint ett_h225_GatekeeperReject;
-static gint ett_h225_GatekeeperRejectReason;
-static gint ett_h225_RegistrationRequest;
-static gint ett_h225_SEQUENCE_OF_AddressPattern;
-static gint ett_h225_SEQUENCE_OF_H248PackagesDescriptor;
-static gint ett_h225_RegistrationConfirm;
-static gint ett_h225_T_preGrantedARQ;
-static gint ett_h225_SEQUENCE_OF_RasUsageSpecification;
-static gint ett_h225_RegistrationReject;
-static gint ett_h225_RegistrationRejectReason;
-static gint ett_h225_T_invalidTerminalAliases;
-static gint ett_h225_UnregistrationRequest;
-static gint ett_h225_UnregRequestReason;
-static gint ett_h225_UnregistrationConfirm;
-static gint ett_h225_UnregistrationReject;
-static gint ett_h225_UnregRejectReason;
-static gint ett_h225_AdmissionRequest;
-static gint ett_h225_DestinationInfo;
-static gint ett_h225_CallType;
-static gint ett_h225_CallModel;
-static gint ett_h225_TransportQOS;
-static gint ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability;
-static gint ett_h225_AdmissionConfirm;
-static gint ett_h225_UUIEsRequested;
-static gint ett_h225_AdmissionReject;
-static gint ett_h225_AdmissionRejectReason;
-static gint ett_h225_SEQUENCE_OF_PartyNumber;
-static gint ett_h225_BandwidthRequest;
-static gint ett_h225_SEQUENCE_OF_BandwidthDetails;
-static gint ett_h225_BandwidthConfirm;
-static gint ett_h225_BandwidthReject;
-static gint ett_h225_BandRejectReason;
-static gint ett_h225_LocationRequest;
-static gint ett_h225_LocationConfirm;
-static gint ett_h225_LocationReject;
-static gint ett_h225_LocationRejectReason;
-static gint ett_h225_DisengageRequest;
-static gint ett_h225_DisengageReason;
-static gint ett_h225_DisengageConfirm;
-static gint ett_h225_DisengageReject;
-static gint ett_h225_DisengageRejectReason;
-static gint ett_h225_InfoRequest;
-static gint ett_h225_InfoRequestResponse;
-static gint ett_h225_T_perCallInfo;
-static gint ett_h225_T_perCallInfo_item;
-static gint ett_h225_SEQUENCE_OF_RTPSession;
-static gint ett_h225_SEQUENCE_OF_TransportChannelInfo;
-static gint ett_h225_SEQUENCE_OF_ConferenceIdentifier;
-static gint ett_h225_T_pdu;
-static gint ett_h225_T_pdu_item;
-static gint ett_h225_InfoRequestResponseStatus;
-static gint ett_h225_InfoRequestAck;
-static gint ett_h225_InfoRequestNak;
-static gint ett_h225_InfoRequestNakReason;
-static gint ett_h225_NonStandardMessage;
-static gint ett_h225_UnknownMessageResponse;
-static gint ett_h225_RequestInProgress;
-static gint ett_h225_ResourcesAvailableIndicate;
-static gint ett_h225_ResourcesAvailableConfirm;
-static gint ett_h225_ServiceControlIndication;
-static gint ett_h225_T_callSpecific;
-static gint ett_h225_ServiceControlResponse;
-static gint ett_h225_T_result;
+static int ett_h225_H323_UserInformation;
+static int ett_h225_T_user_data;
+static int ett_h225_H323_UU_PDU;
+static int ett_h225_T_h323_message_body;
+static int ett_h225_T_h4501SupplementaryService;
+static int ett_h225_H245Control;
+static int ett_h225_SEQUENCE_OF_NonStandardParameter;
+static int ett_h225_T_tunnelledSignallingMessage;
+static int ett_h225_T_messageContent;
+static int ett_h225_SEQUENCE_OF_GenericData;
+static int ett_h225_StimulusControl;
+static int ett_h225_Alerting_UUIE;
+static int ett_h225_SEQUENCE_OF_ClearToken;
+static int ett_h225_SEQUENCE_OF_CryptoH323Token;
+static int ett_h225_SEQUENCE_OF_AliasAddress;
+static int ett_h225_SEQUENCE_OF_ServiceControlSession;
+static int ett_h225_SEQUENCE_OF_DisplayName;
+static int ett_h225_CallProceeding_UUIE;
+static int ett_h225_Connect_UUIE;
+static int ett_h225_Information_UUIE;
+static int ett_h225_ReleaseComplete_UUIE;
+static int ett_h225_ReleaseCompleteReason;
+static int ett_h225_Setup_UUIE;
+static int ett_h225_SEQUENCE_OF_CallReferenceValue;
+static int ett_h225_T_conferenceGoal;
+static int ett_h225_SEQUENCE_OF_H245Security;
+static int ett_h225_FastStart;
+static int ett_h225_T_connectionParameters;
+static int ett_h225_Language;
+static int ett_h225_SEQUENCE_OF_SupportedProtocols;
+static int ett_h225_SEQUENCE_OF_FeatureDescriptor;
+static int ett_h225_ParallelH245Control;
+static int ett_h225_SEQUENCE_OF_ExtendedAliasAddress;
+static int ett_h225_ScnConnectionType;
+static int ett_h225_ScnConnectionAggregation;
+static int ett_h225_PresentationIndicator;
+static int ett_h225_Facility_UUIE;
+static int ett_h225_SEQUENCE_OF_ConferenceList;
+static int ett_h225_ConferenceList;
+static int ett_h225_FacilityReason;
+static int ett_h225_Progress_UUIE;
+static int ett_h225_TransportAddress;
+static int ett_h225_H245TransportAddress;
+static int ett_h225_T_h245IpAddress;
+static int ett_h225_T_h245IpSourceRoute;
+static int ett_h225_T_h245Route;
+static int ett_h225_T_h245Routing;
+static int ett_h225_T_h245IpxAddress;
+static int ett_h225_T_h245Ip6Address;
+static int ett_h225_T_ipAddress;
+static int ett_h225_T_ipSourceRoute;
+static int ett_h225_T_route;
+static int ett_h225_T_routing;
+static int ett_h225_T_ipxAddress;
+static int ett_h225_T_ip6Address;
+static int ett_h225_Status_UUIE;
+static int ett_h225_StatusInquiry_UUIE;
+static int ett_h225_SetupAcknowledge_UUIE;
+static int ett_h225_Notify_UUIE;
+static int ett_h225_EndpointType;
+static int ett_h225_SEQUENCE_OF_TunnelledProtocol;
+static int ett_h225_GatewayInfo;
+static int ett_h225_SupportedProtocols;
+static int ett_h225_H310Caps;
+static int ett_h225_SEQUENCE_OF_DataRate;
+static int ett_h225_SEQUENCE_OF_SupportedPrefix;
+static int ett_h225_H320Caps;
+static int ett_h225_H321Caps;
+static int ett_h225_H322Caps;
+static int ett_h225_H323Caps;
+static int ett_h225_H324Caps;
+static int ett_h225_VoiceCaps;
+static int ett_h225_T120OnlyCaps;
+static int ett_h225_NonStandardProtocol;
+static int ett_h225_T38FaxAnnexbOnlyCaps;
+static int ett_h225_SIPCaps;
+static int ett_h225_McuInfo;
+static int ett_h225_TerminalInfo;
+static int ett_h225_GatekeeperInfo;
+static int ett_h225_VendorIdentifier;
+static int ett_h225_H221NonStandard;
+static int ett_h225_TunnelledProtocol;
+static int ett_h225_TunnelledProtocol_id;
+static int ett_h225_TunnelledProtocolAlternateIdentifier;
+static int ett_h225_NonStandardParameter;
+static int ett_h225_NonStandardIdentifier;
+static int ett_h225_AliasAddress;
+static int ett_h225_AddressPattern;
+static int ett_h225_T_range;
+static int ett_h225_PartyNumber;
+static int ett_h225_PublicPartyNumber;
+static int ett_h225_PrivatePartyNumber;
+static int ett_h225_DisplayName;
+static int ett_h225_PublicTypeOfNumber;
+static int ett_h225_PrivateTypeOfNumber;
+static int ett_h225_MobileUIM;
+static int ett_h225_ANSI_41_UIM;
+static int ett_h225_T_system_id;
+static int ett_h225_GSM_UIM;
+static int ett_h225_IsupNumber;
+static int ett_h225_IsupPublicPartyNumber;
+static int ett_h225_IsupPrivatePartyNumber;
+static int ett_h225_NatureOfAddress;
+static int ett_h225_ExtendedAliasAddress;
+static int ett_h225_Endpoint;
+static int ett_h225_SEQUENCE_OF_TransportAddress;
+static int ett_h225_AlternateTransportAddresses;
+static int ett_h225_UseSpecifiedTransport;
+static int ett_h225_AlternateGK;
+static int ett_h225_AltGKInfo;
+static int ett_h225_SEQUENCE_OF_AlternateGK;
+static int ett_h225_SecurityServiceMode;
+static int ett_h225_SecurityCapabilities;
+static int ett_h225_SecurityErrors;
+static int ett_h225_SecurityErrors2;
+static int ett_h225_H245Security;
+static int ett_h225_QseriesOptions;
+static int ett_h225_Q954Details;
+static int ett_h225_CallIdentifier;
+static int ett_h225_EncryptIntAlg;
+static int ett_h225_NonIsoIntegrityMechanism;
+static int ett_h225_IntegrityMechanism;
+static int ett_h225_ICV;
+static int ett_h225_CryptoH323Token;
+static int ett_h225_T_cryptoEPPwdHash;
+static int ett_h225_T_cryptoGKPwdHash;
+static int ett_h225_DataRate;
+static int ett_h225_CallLinkage;
+static int ett_h225_SupportedPrefix;
+static int ett_h225_CapacityReportingCapability;
+static int ett_h225_CapacityReportingSpecification;
+static int ett_h225_CapacityReportingSpecification_when;
+static int ett_h225_CallCapacity;
+static int ett_h225_CallCapacityInfo;
+static int ett_h225_SEQUENCE_OF_CallsAvailable;
+static int ett_h225_CallsAvailable;
+static int ett_h225_CircuitInfo;
+static int ett_h225_CircuitIdentifier;
+static int ett_h225_CicInfo;
+static int ett_h225_T_cic_2_4;
+static int ett_h225_GroupID;
+static int ett_h225_T_member;
+static int ett_h225_CarrierInfo;
+static int ett_h225_ServiceControlDescriptor;
+static int ett_h225_ServiceControlSession;
+static int ett_h225_ServiceControlSession_reason;
+static int ett_h225_RasUsageInfoTypes;
+static int ett_h225_RasUsageSpecification;
+static int ett_h225_RasUsageSpecification_when;
+static int ett_h225_RasUsageSpecificationcallStartingPoint;
+static int ett_h225_RasUsageInformation;
+static int ett_h225_CallTerminationCause;
+static int ett_h225_BandwidthDetails;
+static int ett_h225_CallCreditCapability;
+static int ett_h225_CallCreditServiceControl;
+static int ett_h225_T_billingMode;
+static int ett_h225_CallCreditServiceControl_callStartingPoint;
+static int ett_h225_GenericData;
+static int ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter;
+static int ett_h225_GenericIdentifier;
+static int ett_h225_EnumeratedParameter;
+static int ett_h225_Content;
+static int ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData;
+static int ett_h225_FeatureSet;
+static int ett_h225_TransportChannelInfo;
+static int ett_h225_RTPSession;
+static int ett_h225_T_associatedSessionIds;
+static int ett_h225_RehomingModel;
+static int ett_h225_RasMessage;
+static int ett_h225_SEQUENCE_OF_AdmissionConfirm;
+static int ett_h225_GatekeeperRequest;
+static int ett_h225_SEQUENCE_OF_Endpoint;
+static int ett_h225_SEQUENCE_OF_AuthenticationMechanism;
+static int ett_h225_T_algorithmOIDs;
+static int ett_h225_SEQUENCE_OF_IntegrityMechanism;
+static int ett_h225_GatekeeperConfirm;
+static int ett_h225_GatekeeperReject;
+static int ett_h225_GatekeeperRejectReason;
+static int ett_h225_RegistrationRequest;
+static int ett_h225_SEQUENCE_OF_AddressPattern;
+static int ett_h225_SEQUENCE_OF_H248PackagesDescriptor;
+static int ett_h225_RegistrationConfirm;
+static int ett_h225_T_preGrantedARQ;
+static int ett_h225_SEQUENCE_OF_RasUsageSpecification;
+static int ett_h225_RegistrationReject;
+static int ett_h225_RegistrationRejectReason;
+static int ett_h225_T_invalidTerminalAliases;
+static int ett_h225_UnregistrationRequest;
+static int ett_h225_UnregRequestReason;
+static int ett_h225_UnregistrationConfirm;
+static int ett_h225_UnregistrationReject;
+static int ett_h225_UnregRejectReason;
+static int ett_h225_AdmissionRequest;
+static int ett_h225_DestinationInfo;
+static int ett_h225_CallType;
+static int ett_h225_CallModel;
+static int ett_h225_TransportQOS;
+static int ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability;
+static int ett_h225_AdmissionConfirm;
+static int ett_h225_UUIEsRequested;
+static int ett_h225_AdmissionReject;
+static int ett_h225_AdmissionRejectReason;
+static int ett_h225_SEQUENCE_OF_PartyNumber;
+static int ett_h225_BandwidthRequest;
+static int ett_h225_SEQUENCE_OF_BandwidthDetails;
+static int ett_h225_BandwidthConfirm;
+static int ett_h225_BandwidthReject;
+static int ett_h225_BandRejectReason;
+static int ett_h225_LocationRequest;
+static int ett_h225_LocationConfirm;
+static int ett_h225_LocationReject;
+static int ett_h225_LocationRejectReason;
+static int ett_h225_DisengageRequest;
+static int ett_h225_DisengageReason;
+static int ett_h225_DisengageConfirm;
+static int ett_h225_DisengageReject;
+static int ett_h225_DisengageRejectReason;
+static int ett_h225_InfoRequest;
+static int ett_h225_InfoRequestResponse;
+static int ett_h225_T_perCallInfo;
+static int ett_h225_T_perCallInfo_item;
+static int ett_h225_SEQUENCE_OF_RTPSession;
+static int ett_h225_SEQUENCE_OF_TransportChannelInfo;
+static int ett_h225_SEQUENCE_OF_ConferenceIdentifier;
+static int ett_h225_T_pdu;
+static int ett_h225_T_pdu_item;
+static int ett_h225_InfoRequestResponseStatus;
+static int ett_h225_InfoRequestAck;
+static int ett_h225_InfoRequestNak;
+static int ett_h225_InfoRequestNakReason;
+static int ett_h225_NonStandardMessage;
+static int ett_h225_UnknownMessageResponse;
+static int ett_h225_RequestInProgress;
+static int ett_h225_ResourcesAvailableIndicate;
+static int ett_h225_ResourcesAvailableConfirm;
+static int ett_h225_ServiceControlIndication;
+static int ett_h225_T_callSpecific;
+static int ett_h225_ServiceControlResponse;
+static int ett_h225_T_result;
/* Preferences */
static guint h225_tls_port = TLS_PORT_CS;
-static gboolean h225_reassembly = TRUE;
-static gboolean h225_h245_in_tree = TRUE;
-static gboolean h225_tp_in_tree = TRUE;
+static bool h225_reassembly = true;
+static bool h225_h245_in_tree = true;
+static bool h225_tp_in_tree = true;
/* Global variables */
static guint32 ipv4_address;
static ws_in6_addr ipv6_address;
static ws_in6_addr ipv6_address_zeros = {{0}};
static guint32 ip_port;
-static gboolean contains_faststart = FALSE;
+static gboolean contains_faststart;
static e_guid_t *call_id_guid;
/* NonStandardParameter */
@@ -2001,7 +2001,7 @@ dissect_h225_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
int min_len, max_len;
- gboolean has_extension;
+ bool has_extension;
get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
@@ -3967,7 +3967,7 @@ static const per_sequence_t EnumeratedParameter_sequence[] = {
static int
dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // EnumeratedParameter → Content → Content/compound → EnumeratedParameter
+ // EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
gef_ctx_t *parent_gefx;
@@ -3992,7 +3992,7 @@ static const per_sequence_t GenericData_sequence[] = {
int
dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // GenericData → GenericData/parameters → EnumeratedParameter → Content → Content/nested → GenericData
+ // GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData
actx->pinfo->dissection_depth += 5;
increment_dissection_depth(actx->pinfo);
void *priv_data = actx->private_data;
@@ -7832,21 +7832,21 @@ dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/* The following values represent the size of their valuestring arrays */
-#define RAS_MSG_TYPES (sizeof(h225_RasMessage_vals) / sizeof(value_string))
-#define CS_MSG_TYPES (sizeof(T_h323_message_body_vals) / sizeof(value_string))
-
-#define GRJ_REASONS (sizeof(GatekeeperRejectReason_vals) / sizeof(value_string))
-#define RRJ_REASONS (sizeof(RegistrationRejectReason_vals) / sizeof(value_string))
-#define URQ_REASONS (sizeof(UnregRequestReason_vals) / sizeof(value_string))
-#define URJ_REASONS (sizeof(UnregRejectReason_vals) / sizeof(value_string))
-#define ARJ_REASONS (sizeof(AdmissionRejectReason_vals) / sizeof(value_string))
-#define BRJ_REASONS (sizeof(BandRejectReason_vals) / sizeof(value_string))
-#define DRQ_REASONS (sizeof(DisengageReason_vals) / sizeof(value_string))
-#define DRJ_REASONS (sizeof(DisengageRejectReason_vals) / sizeof(value_string))
-#define LRJ_REASONS (sizeof(LocationRejectReason_vals) / sizeof(value_string))
-#define IRQNAK_REASONS (sizeof(InfoRequestNakReason_vals) / sizeof(value_string))
-#define REL_CMP_REASONS (sizeof(h225_ReleaseCompleteReason_vals) / sizeof(value_string))
-#define FACILITY_REASONS (sizeof(FacilityReason_vals) / sizeof(value_string))
+#define RAS_MSG_TYPES array_length(h225_RasMessage_vals)
+#define CS_MSG_TYPES array_length(T_h323_message_body_vals)
+
+#define GRJ_REASONS array_length(GatekeeperRejectReason_vals)
+#define RRJ_REASONS array_length(RegistrationRejectReason_vals)
+#define URQ_REASONS array_length(UnregRequestReason_vals)
+#define URJ_REASONS array_length(UnregRejectReason_vals)
+#define ARJ_REASONS array_length(AdmissionRejectReason_vals)
+#define BRJ_REASONS array_length(BandRejectReason_vals)
+#define DRQ_REASONS array_length(DisengageReason_vals)
+#define DRJ_REASONS array_length(DisengageRejectReason_vals)
+#define LRJ_REASONS array_length(LocationRejectReason_vals)
+#define IRQNAK_REASONS array_length(InfoRequestNakReason_vals)
+#define REL_CMP_REASONS array_length(h225_ReleaseCompleteReason_vals)
+#define FACILITY_REASONS array_length(FacilityReason_vals)
/* TAP STAT INFO */
typedef enum
@@ -7883,10 +7883,10 @@ static guint other_idx;
static void h225_stat_init(stat_tap_table_ui* new_stat)
{
const char *table_name = "H.225 Messages and Message Reasons";
- int num_fields = sizeof(h225_stat_fields)/sizeof(stat_tap_table_item);
+ int num_fields = array_length(h225_stat_fields);
stat_tap_table *table;
int row_idx = 0, msg_idx;
- stat_tap_table_item_type items[sizeof(h225_stat_fields)/sizeof(stat_tap_table_item)];
+ stat_tap_table_item_type items[array_length(h225_stat_fields)];
table = stat_tap_find_table(new_stat, table_name);
if (table) {
@@ -11609,8 +11609,8 @@ void proto_register_h225(void) {
h225_stat_reset,
NULL,
NULL,
- sizeof(h225_stat_fields)/sizeof(stat_tap_table_item), h225_stat_fields,
- sizeof(h225_stat_params)/sizeof(tap_param), h225_stat_params,
+ array_length(h225_stat_fields), h225_stat_fields,
+ array_length(h225_stat_params), h225_stat_params,
NULL,
0
};
diff --git a/epan/dissectors/packet-h225.h b/epan/dissectors/packet-h225.h
index c94470fe51..8b0271dfff 100644
--- a/epan/dissectors/packet-h225.h
+++ b/epan/dissectors/packet-h225.h
@@ -53,7 +53,7 @@ typedef struct _h225_packet_info {
/* added for h225 conversations analysis */
gboolean is_faststart; /* true, if faststart field is included */
gboolean is_h245;
- gboolean is_h245Tunneling;
+ bool is_h245Tunneling;
guint32 h245_address;
guint16 h245_port;
gchar dialedDigits[129]; /* Dialed Digits in the LRQ and LCF used for voip analysis */
diff --git a/epan/dissectors/packet-h235.c b/epan/dissectors/packet-h235.c
index fce4361b39..a842623eeb 100644
--- a/epan/dissectors/packet-h235.c
+++ b/epan/dissectors/packet-h235.c
@@ -144,38 +144,38 @@ static int hf_h235_fecBeforeSrtp; /* NULL */
static int hf_h235_fecAfterSrtp; /* NULL */
/* Initialize the subtree pointers */
-static gint ett_h235_NonStandardParameter;
-static gint ett_h235_DHset;
-static gint ett_h235_ECpoint;
-static gint ett_h235_ECKASDH;
-static gint ett_h235_T_eckasdhp;
-static gint ett_h235_T_eckasdh2;
-static gint ett_h235_TypedCertificate;
-static gint ett_h235_AuthenticationBES;
-static gint ett_h235_AuthenticationMechanism;
-static gint ett_h235_ClearToken;
-static gint ett_h235_SEQUENCE_OF_ProfileElement;
-static gint ett_h235_ProfileElement;
-static gint ett_h235_Element;
-static gint ett_h235_SIGNED;
-static gint ett_h235_ENCRYPTED;
-static gint ett_h235_HASHED;
-static gint ett_h235_Params;
-static gint ett_h235_CryptoToken;
-static gint ett_h235_T_cryptoEncryptedToken;
-static gint ett_h235_T_cryptoSignedToken;
-static gint ett_h235_T_cryptoHashedToken;
-static gint ett_h235_H235Key;
-static gint ett_h235_V3KeySyncMaterial;
-static gint ett_h235_SrtpCryptoCapability;
-static gint ett_h235_SrtpCryptoInfo;
-static gint ett_h235_SrtpKeys;
-static gint ett_h235_SrtpKeyParameters;
-static gint ett_h235_T_lifetime;
-static gint ett_h235_T_mki;
-static gint ett_h235_SrtpSessionParameters;
-static gint ett_h235_SEQUENCE_OF_GenericData;
-static gint ett_h235_FecOrder;
+static int ett_h235_NonStandardParameter;
+static int ett_h235_DHset;
+static int ett_h235_ECpoint;
+static int ett_h235_ECKASDH;
+static int ett_h235_T_eckasdhp;
+static int ett_h235_T_eckasdh2;
+static int ett_h235_TypedCertificate;
+static int ett_h235_AuthenticationBES;
+static int ett_h235_AuthenticationMechanism;
+static int ett_h235_ClearToken;
+static int ett_h235_SEQUENCE_OF_ProfileElement;
+static int ett_h235_ProfileElement;
+static int ett_h235_Element;
+static int ett_h235_SIGNED;
+static int ett_h235_ENCRYPTED;
+static int ett_h235_HASHED;
+static int ett_h235_Params;
+static int ett_h235_CryptoToken;
+static int ett_h235_T_cryptoEncryptedToken;
+static int ett_h235_T_cryptoSignedToken;
+static int ett_h235_T_cryptoHashedToken;
+static int ett_h235_H235Key;
+static int ett_h235_V3KeySyncMaterial;
+static int ett_h235_SrtpCryptoCapability;
+static int ett_h235_SrtpCryptoInfo;
+static int ett_h235_SrtpKeys;
+static int ett_h235_SrtpKeyParameters;
+static int ett_h235_T_lifetime;
+static int ett_h235_T_mki;
+static int ett_h235_SrtpSessionParameters;
+static int ett_h235_SEQUENCE_OF_GenericData;
+static int ett_h235_FecOrder;
static int
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index 03a2ca8631..d28412e88f 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -51,7 +51,7 @@
void proto_register_h245(void);
void proto_reg_handoff_h245(void);
-static dissector_handle_t rtcp_handle=NULL;
+static dissector_handle_t rtcp_handle;
static dissector_table_t nsp_object_dissector_table;
static dissector_table_t nsp_h221_dissector_table;
static dissector_table_t gef_name_dissector_table;
@@ -60,8 +60,8 @@ static dissector_handle_t h245_handle;
static dissector_handle_t nsp_handle;
static dissector_handle_t data_handle;
static dissector_handle_t MultimediaSystemControlMessage_handle;
-static dissector_handle_t h263_handle = NULL;
-static dissector_handle_t amr_handle = NULL;
+static dissector_handle_t h263_handle;
+static dissector_handle_t amr_handle;
static void init_h245_packet_info(h245_packet_info *pi);
static int hf_h245_pdu_type;
@@ -73,9 +73,9 @@ static int hf_h245_debug_dissector_try_string;
h245_packet_info *h245_pi=NULL;
-static gboolean h245_reassembly = TRUE;
-static gboolean h245_shorttypes = FALSE;
-static gboolean info_col_fmt_prepend = FALSE;
+static bool h245_reassembly = true;
+static bool h245_shorttypes;
+static bool info_col_fmt_prepend;
typedef enum _AudioCapability_enum {
@@ -318,7 +318,7 @@ static const value_string h245_AudioCapability_short_vals[] = {
/* To put the codec type only in COL_INFO when
an OLC is read */
-const char* codec_type = NULL;
+const char* codec_type;
static guint32 rfc_number;
typedef struct _unicast_addr_t {
@@ -343,10 +343,10 @@ typedef struct _olc_info_t {
channel_info_t rev_lc;
} olc_info_t;
-static wmem_map_t* h245_pending_olc_reqs = NULL;
-static gboolean fast_start = FALSE;
-static olc_info_t *upcoming_olc = NULL;
-static channel_info_t *upcoming_channel = NULL;
+static wmem_map_t* h245_pending_olc_reqs;
+static gboolean fast_start;
+static olc_info_t *upcoming_olc;
+static channel_info_t *upcoming_channel;
/* NonStandardParameter */
static const char *nsiOID;
@@ -378,7 +378,7 @@ static const value_string h245_h239subMessageIdentifier_vals[] = {
/* h223 multiplex codes */
-static h223_set_mc_handle_t h223_set_mc_handle = NULL;
+static h223_set_mc_handle_t h223_set_mc_handle;
h223_mux_element *h223_me=NULL;
guint8 h223_mc=0;
void h245_set_h223_set_mc_handle( h223_set_mc_handle_t handle )
@@ -392,7 +392,7 @@ typedef struct {
h223_lc_params *rev_channel_params;
} h223_pending_olc;
-static wmem_map_t* h223_pending_olc_reqs[] = { NULL, NULL };
+static wmem_map_t* h223_pending_olc_reqs[2];
static dissector_handle_t h245_lc_dissector;
static guint16 h245_lc_temp;
static guint16 h223_fw_lc_num;
@@ -400,7 +400,7 @@ static guint16 h223_rev_lc_num;
static h223_lc_params *h223_lc_params_temp;
static h223_lc_params *h223_fw_lc_params;
static h223_lc_params *h223_rev_lc_params;
-static h223_add_lc_handle_t h223_add_lc_handle = NULL;
+static h223_add_lc_handle_t h223_add_lc_handle;
static void h223_lc_init( void )
{
@@ -1900,497 +1900,497 @@ static int hf_h245_encryptedAlphanumeric; /* EncryptedAlphanumeric */
/* Initialize the subtree pointers */
static int ett_h245;
static int ett_h245_returnedFunction;
-static gint ett_h245_MultimediaSystemControlMessage;
-static gint ett_h245_RequestMessage;
-static gint ett_h245_ResponseMessage;
-static gint ett_h245_CommandMessage;
-static gint ett_h245_IndicationMessage;
-static gint ett_h245_GenericMessage;
-static gint ett_h245_T_messageContent;
-static gint ett_h245_NonStandardMessage;
-static gint ett_h245_NonStandardParameter;
-static gint ett_h245_NonStandardIdentifier;
-static gint ett_h245_H221NonStandardID;
-static gint ett_h245_MasterSlaveDetermination;
-static gint ett_h245_MasterSlaveDeterminationAck;
-static gint ett_h245_T_decision;
-static gint ett_h245_MasterSlaveDeterminationReject;
-static gint ett_h245_MasterSlaveDeterminationRejectCause;
-static gint ett_h245_MasterSlaveDeterminationRelease;
-static gint ett_h245_TerminalCapabilitySet;
-static gint ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry;
-static gint ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor;
-static gint ett_h245_SEQUENCE_OF_GenericInformation;
-static gint ett_h245_CapabilityTableEntry;
-static gint ett_h245_CapabilityDescriptor;
-static gint ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet;
-static gint ett_h245_AlternativeCapabilitySet;
-static gint ett_h245_TerminalCapabilitySetAck;
-static gint ett_h245_TerminalCapabilitySetReject;
-static gint ett_h245_TerminalCapabilitySetRejectCause;
-static gint ett_h245_T_tableEntryCapacityExceeded;
-static gint ett_h245_TerminalCapabilitySetRelease;
-static gint ett_h245_Capability;
-static gint ett_h245_T_h233EncryptionReceiveCapability;
-static gint ett_h245_H235SecurityCapability;
-static gint ett_h245_MultiplexCapability;
-static gint ett_h245_H222Capability;
-static gint ett_h245_SET_OF_VCCapability;
-static gint ett_h245_VCCapability;
-static gint ett_h245_T_aal1;
-static gint ett_h245_T_aal5;
-static gint ett_h245_T_availableBitRates;
-static gint ett_h245_Avb_type;
-static gint ett_h245_T_rangeOfBitRates;
-static gint ett_h245_T_aal1ViaGateway;
-static gint ett_h245_SET_SIZE_1_256_OF_Q2931Address;
-static gint ett_h245_H223Capability;
-static gint ett_h245_T_h223MultiplexTableCapability;
-static gint ett_h245_T_enhanced;
-static gint ett_h245_T_mobileOperationTransmitCapability;
-static gint ett_h245_T_mobileMultilinkFrameCapability;
-static gint ett_h245_H223AnnexCCapability;
-static gint ett_h245_V76Capability;
-static gint ett_h245_V75Capability;
-static gint ett_h245_H2250Capability;
-static gint ett_h245_T_mcCapability;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability;
-static gint ett_h245_MediaPacketizationCapability;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType;
-static gint ett_h245_RSVPParameters;
-static gint ett_h245_QOSMode;
-static gint ett_h245_ATMParameters;
-static gint ett_h245_ServicePriorityValue;
-static gint ett_h245_ServicePriority;
-static gint ett_h245_AuthorizationParameters;
-static gint ett_h245_QOSType;
-static gint ett_h245_QOSClass;
-static gint ett_h245_QOSDescriptor;
-static gint ett_h245_GenericTransportParameters;
-static gint ett_h245_QOSCapability;
-static gint ett_h245_MediaTransportType;
-static gint ett_h245_T_atm_AAL5_compressed;
-static gint ett_h245_MediaChannelCapability;
-static gint ett_h245_TransportCapability;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability;
-static gint ett_h245_RedundancyEncodingCapability;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber;
-static gint ett_h245_RedundancyEncodingMethod;
-static gint ett_h245_RTPH263VideoRedundancyEncoding;
-static gint ett_h245_T_frameToThreadMapping;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping;
-static gint ett_h245_T_containedThreads;
-static gint ett_h245_RTPH263VideoRedundancyFrameMapping;
-static gint ett_h245_T_frameSequence;
-static gint ett_h245_MultipointCapability;
-static gint ett_h245_SEQUENCE_OF_MediaDistributionCapability;
-static gint ett_h245_MediaDistributionCapability;
-static gint ett_h245_SEQUENCE_OF_DataApplicationCapability;
-static gint ett_h245_VideoCapability;
-static gint ett_h245_ExtendedVideoCapability;
-static gint ett_h245_SEQUENCE_OF_VideoCapability;
-static gint ett_h245_SEQUENCE_OF_GenericCapability;
-static gint ett_h245_H261VideoCapability;
-static gint ett_h245_H262VideoCapability;
-static gint ett_h245_H263VideoCapability;
-static gint ett_h245_EnhancementLayerInfo;
-static gint ett_h245_SET_SIZE_1_14_OF_EnhancementOptions;
-static gint ett_h245_SET_SIZE_1_14_OF_BEnhancementParameters;
-static gint ett_h245_BEnhancementParameters;
-static gint ett_h245_EnhancementOptions;
-static gint ett_h245_H263Options;
-static gint ett_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency;
-static gint ett_h245_SET_SIZE_1_16_OF_CustomPictureFormat;
-static gint ett_h245_SET_SIZE_1_16_OF_H263VideoModeCombos;
-static gint ett_h245_TransparencyParameters;
-static gint ett_h245_RefPictureSelection;
-static gint ett_h245_T_additionalPictureMemory;
-static gint ett_h245_T_videoBackChannelSend;
-static gint ett_h245_T_enhancedReferencePicSelect;
-static gint ett_h245_T_subPictureRemovalParameters;
-static gint ett_h245_CustomPictureClockFrequency;
-static gint ett_h245_CustomPictureFormat;
-static gint ett_h245_T_mPI;
-static gint ett_h245_T_customPCF;
-static gint ett_h245_T_customPCF_item;
-static gint ett_h245_T_pixelAspectInformation;
-static gint ett_h245_T_pixelAspectCode;
-static gint ett_h245_T_extendedPAR;
-static gint ett_h245_T_extendedPAR_item;
-static gint ett_h245_H263VideoModeCombos;
-static gint ett_h245_SET_SIZE_1_16_OF_H263ModeComboFlags;
-static gint ett_h245_H263ModeComboFlags;
-static gint ett_h245_H263Version3Options;
-static gint ett_h245_IS11172VideoCapability;
-static gint ett_h245_AudioCapability;
-static gint ett_h245_T_g7231;
-static gint ett_h245_G729Extensions;
-static gint ett_h245_G7231AnnexCCapability;
-static gint ett_h245_G723AnnexCAudioMode;
-static gint ett_h245_IS11172AudioCapability;
-static gint ett_h245_IS13818AudioCapability;
-static gint ett_h245_GSMAudioCapability;
-static gint ett_h245_VBDCapability;
-static gint ett_h245_DataApplicationCapability;
-static gint ett_h245_Application;
-static gint ett_h245_T_t84;
-static gint ett_h245_Nlpid;
-static gint ett_h245_T_t38fax;
-static gint ett_h245_DataProtocolCapability;
-static gint ett_h245_T_v76wCompression;
-static gint ett_h245_CompressionType;
-static gint ett_h245_V42bis;
-static gint ett_h245_T84Profile;
-static gint ett_h245_T_t84Restricted;
-static gint ett_h245_T38FaxProfile;
-static gint ett_h245_T38FaxRateManagement;
-static gint ett_h245_T38FaxUdpOptions;
-static gint ett_h245_T_t38FaxUdpEC;
-static gint ett_h245_T38FaxTcpOptions;
-static gint ett_h245_EncryptionAuthenticationAndIntegrity;
-static gint ett_h245_EncryptionCapability;
-static gint ett_h245_MediaEncryptionAlgorithm;
-static gint ett_h245_AuthenticationCapability;
-static gint ett_h245_IntegrityCapability;
-static gint ett_h245_UserInputCapability;
-static gint ett_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter;
-static gint ett_h245_ConferenceCapability;
-static gint ett_h245_SEQUENCE_OF_NonStandardParameter;
-static gint ett_h245_GenericCapability;
-static gint ett_h245_T_collapsing;
-static gint ett_h245_T_nonCollapsing;
-static gint ett_h245_CapabilityIdentifier;
-static gint ett_h245_GenericParameter;
-static gint ett_h245_SEQUENCE_OF_ParameterIdentifier;
-static gint ett_h245_ParameterIdentifier;
-static gint ett_h245_ParameterValue;
-static gint ett_h245_SEQUENCE_OF_GenericParameter;
-static gint ett_h245_MultiplexedStreamCapability;
-static gint ett_h245_MultiplexFormat;
-static gint ett_h245_AudioTelephonyEventCapability;
-static gint ett_h245_AudioToneCapability;
-static gint ett_h245_NoPTAudioTelephonyEventCapability;
-static gint ett_h245_NoPTAudioToneCapability;
-static gint ett_h245_MultiplePayloadStreamCapability;
-static gint ett_h245_DepFECCapability;
-static gint ett_h245_FECC_rfc2733;
-static gint ett_h245_T_separateStreamBool;
-static gint ett_h245_FECCapability;
-static gint ett_h245_Rfc2733Format;
-static gint ett_h245_OpenLogicalChannel;
-static gint ett_h245_T_forwardLogicalChannelParameters;
-static gint ett_h245_OLC_forw_multiplexParameters;
-static gint ett_h245_OLC_reverseLogicalChannelParameters;
-static gint ett_h245_OLC_rev_multiplexParameters;
-static gint ett_h245_NetworkAccessParameters;
-static gint ett_h245_T_distribution;
-static gint ett_h245_T_networkAddress;
-static gint ett_h245_T_t120SetupProcedure;
-static gint ett_h245_Q2931Address;
-static gint ett_h245_T_address;
-static gint ett_h245_V75Parameters;
-static gint ett_h245_DataType;
-static gint ett_h245_H235Media;
-static gint ett_h245_T_mediaType;
-static gint ett_h245_MultiplexedStreamParameter;
-static gint ett_h245_H222LogicalChannelParameters;
-static gint ett_h245_H223LogicalChannelParameters;
-static gint ett_h245_T_adaptationLayerType;
-static gint ett_h245_Al3;
-static gint ett_h245_H223AL1MParameters;
-static gint ett_h245_T_transferMode;
-static gint ett_h245_AL1HeaderFEC;
-static gint ett_h245_AL1CrcLength;
-static gint ett_h245_ArqType;
-static gint ett_h245_H223AL2MParameters;
-static gint ett_h245_AL2HeaderFEC;
-static gint ett_h245_H223AL3MParameters;
-static gint ett_h245_T_headerFormat;
-static gint ett_h245_AL3CrcLength;
-static gint ett_h245_H223AnnexCArqParameters;
-static gint ett_h245_T_numberOfRetransmissions;
-static gint ett_h245_V76LogicalChannelParameters;
-static gint ett_h245_T_suspendResume;
-static gint ett_h245_V76LCP_mode;
-static gint ett_h245_T_eRM;
-static gint ett_h245_T_recovery;
-static gint ett_h245_V76HDLCParameters;
-static gint ett_h245_CRCLength;
-static gint ett_h245_H2250LogicalChannelParameters;
-static gint ett_h245_T_mediaPacketization;
-static gint ett_h245_RTPPayloadType;
-static gint ett_h245_T_payloadDescriptor;
-static gint ett_h245_RedundancyEncoding;
-static gint ett_h245_T_rtpRedundancyEncoding;
-static gint ett_h245_SEQUENCE_OF_RedundancyEncodingElement;
-static gint ett_h245_RedundancyEncodingElement;
-static gint ett_h245_MultiplePayloadStream;
-static gint ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement;
-static gint ett_h245_MultiplePayloadStreamElement;
-static gint ett_h245_DepFECData;
-static gint ett_h245_RFC2733Data;
-static gint ett_h245_FECdata_mode;
-static gint ett_h245_DepSeparateStream;
-static gint ett_h245_T_differentPort;
-static gint ett_h245_T_samePort;
-static gint ett_h245_FECData;
-static gint ett_h245_T_rfc2733;
-static gint ett_h245_T_pktMode;
-static gint ett_h245_T_mode_rfc2733sameport;
-static gint ett_h245_T_mode_rfc2733diffport;
-static gint ett_h245_TransportAddress;
-static gint ett_h245_UnicastAddress;
-static gint ett_h245_T_iPAddress;
-static gint ett_h245_T_iPXAddress;
-static gint ett_h245_T_iP6Address;
-static gint ett_h245_T_iPSourceRouteAddress;
-static gint ett_h245_T_routing;
-static gint ett_h245_T_route;
-static gint ett_h245_MulticastAddress;
-static gint ett_h245_MIPAddress;
-static gint ett_h245_MIP6Address;
-static gint ett_h245_EncryptionSync;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_EscrowData;
-static gint ett_h245_EscrowData;
-static gint ett_h245_OpenLogicalChannelAck;
-static gint ett_h245_OLC_ack_reverseLogicalChannelParameters;
-static gint ett_h245_T_olc_ack_multiplexParameters;
-static gint ett_h245_T_forwardMultiplexAckParameters;
-static gint ett_h245_OpenLogicalChannelReject;
-static gint ett_h245_OpenLogicalChannelRejectCause;
-static gint ett_h245_OpenLogicalChannelConfirm;
-static gint ett_h245_H2250LogicalChannelAckParameters;
-static gint ett_h245_CloseLogicalChannel;
-static gint ett_h245_T_cLC_source;
-static gint ett_h245_Clc_reason;
-static gint ett_h245_CloseLogicalChannelAck;
-static gint ett_h245_RequestChannelClose;
-static gint ett_h245_T_reason;
-static gint ett_h245_RequestChannelCloseAck;
-static gint ett_h245_RequestChannelCloseReject;
-static gint ett_h245_RequestChannelCloseRejectCause;
-static gint ett_h245_RequestChannelCloseRelease;
-static gint ett_h245_MultiplexEntrySend;
-static gint ett_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor;
-static gint ett_h245_MultiplexEntryDescriptor;
-static gint ett_h245_T_elementList;
-static gint ett_h245_MultiplexElement;
-static gint ett_h245_Me_type;
-static gint ett_h245_T_subElementList;
-static gint ett_h245_ME_repeatCount;
-static gint ett_h245_MultiplexEntrySendAck;
-static gint ett_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber;
-static gint ett_h245_MultiplexEntrySendReject;
-static gint ett_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions;
-static gint ett_h245_MultiplexEntryRejectionDescriptions;
-static gint ett_h245_MultiplexEntryRejectionDescriptionsCause;
-static gint ett_h245_MultiplexEntrySendRelease;
-static gint ett_h245_RequestMultiplexEntry;
-static gint ett_h245_RequestMultiplexEntryAck;
-static gint ett_h245_RequestMultiplexEntryReject;
-static gint ett_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions;
-static gint ett_h245_RequestMultiplexEntryRejectionDescriptions;
-static gint ett_h245_RequestMultiplexEntryRejectionDescriptionsCause;
-static gint ett_h245_RequestMultiplexEntryRelease;
-static gint ett_h245_RequestMode;
-static gint ett_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription;
-static gint ett_h245_RequestModeAck;
-static gint ett_h245_Req_mode_ack_response;
-static gint ett_h245_RequestModeReject;
-static gint ett_h245_RequestModeRejectCause;
-static gint ett_h245_RequestModeRelease;
-static gint ett_h245_ModeDescription;
-static gint ett_h245_ModeElementType;
-static gint ett_h245_ModeElement;
-static gint ett_h245_H235Mode;
-static gint ett_h245_T_mediaMode;
-static gint ett_h245_MultiplexedStreamModeParameters;
-static gint ett_h245_RedundancyEncodingDTMode;
-static gint ett_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement;
-static gint ett_h245_RedundancyEncodingDTModeElement;
-static gint ett_h245_Re_type;
-static gint ett_h245_MultiplePayloadStreamMode;
-static gint ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode;
-static gint ett_h245_MultiplePayloadStreamElementMode;
-static gint ett_h245_DepFECMode;
-static gint ett_h245_T_rfc2733Mode;
-static gint ett_h245_FEC_mode;
-static gint ett_h245_FECMode;
-static gint ett_h245_H223ModeParameters;
-static gint ett_h245_AdaptationLayerType;
-static gint ett_h245_V76ModeParameters;
-static gint ett_h245_H2250ModeParameters;
-static gint ett_h245_RedundancyEncodingMode;
-static gint ett_h245_T_secondaryEncodingMode;
-static gint ett_h245_VideoMode;
-static gint ett_h245_H261VideoMode;
-static gint ett_h245_H261Resolution;
-static gint ett_h245_H262VideoMode;
-static gint ett_h245_T_profileAndLevel;
-static gint ett_h245_H263VideoMode;
-static gint ett_h245_H263Resolution;
-static gint ett_h245_IS11172VideoMode;
-static gint ett_h245_AudioMode;
-static gint ett_h245_Mode_g7231;
-static gint ett_h245_IS11172AudioMode;
-static gint ett_h245_T_audioLayer;
-static gint ett_h245_T_audioSampling;
-static gint ett_h245_IS11172_multichannelType;
-static gint ett_h245_IS13818AudioMode;
-static gint ett_h245_IS13818AudioLayer;
-static gint ett_h245_IS13818AudioSampling;
-static gint ett_h245_IS13818MultichannelType;
-static gint ett_h245_G7231AnnexCMode;
-static gint ett_h245_VBDMode;
-static gint ett_h245_DataMode;
-static gint ett_h245_DataModeApplication;
-static gint ett_h245_T38faxApp;
-static gint ett_h245_EncryptionMode;
-static gint ett_h245_RoundTripDelayRequest;
-static gint ett_h245_RoundTripDelayResponse;
-static gint ett_h245_MaintenanceLoopRequest;
-static gint ett_h245_Mlr_type;
-static gint ett_h245_MaintenanceLoopAck;
-static gint ett_h245_Mla_type;
-static gint ett_h245_MaintenanceLoopReject;
-static gint ett_h245_Mlrej_type;
-static gint ett_h245_MaintenanceLoopRejectCause;
-static gint ett_h245_MaintenanceLoopOffCommand;
-static gint ett_h245_CommunicationModeCommand;
-static gint ett_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry;
-static gint ett_h245_CommunicationModeRequest;
-static gint ett_h245_CommunicationModeResponse;
-static gint ett_h245_CommunicationModeTableEntry;
-static gint ett_h245_T_entryDataType;
-static gint ett_h245_ConferenceRequest;
-static gint ett_h245_T_requestTerminalCertificate;
-static gint ett_h245_CertSelectionCriteria;
-static gint ett_h245_Criteria;
-static gint ett_h245_TerminalLabel;
-static gint ett_h245_ConferenceResponse;
-static gint ett_h245_T_mCTerminalIDResponse;
-static gint ett_h245_T_terminalIDResponse;
-static gint ett_h245_T_conferenceIDResponse;
-static gint ett_h245_T_passwordResponse;
-static gint ett_h245_SET_SIZE_1_256_OF_TerminalLabel;
-static gint ett_h245_T_makeMeChairResponse;
-static gint ett_h245_T_extensionAddressResponse;
-static gint ett_h245_T_chairTokenOwnerResponse;
-static gint ett_h245_T_terminalCertificateResponse;
-static gint ett_h245_T_broadcastMyLogicalChannelResponse;
-static gint ett_h245_T_makeTerminalBroadcasterResponse;
-static gint ett_h245_T_sendThisSourceResponse;
-static gint ett_h245_RequestAllTerminalIDsResponse;
-static gint ett_h245_SEQUENCE_OF_TerminalInformation;
-static gint ett_h245_TerminalInformation;
-static gint ett_h245_RemoteMCRequest;
-static gint ett_h245_RemoteMCResponse;
-static gint ett_h245_T_reject;
-static gint ett_h245_MultilinkRequest;
-static gint ett_h245_CallInformationReq;
-static gint ett_h245_AddConnectionReq;
-static gint ett_h245_RemoveConnectionReq;
-static gint ett_h245_MaximumHeaderIntervalReq;
-static gint ett_h245_T_requestType;
-static gint ett_h245_MultilinkResponse;
-static gint ett_h245_CallInformationResp;
-static gint ett_h245_AddConnectionResp;
-static gint ett_h245_T_responseCode;
-static gint ett_h245_T_rejected;
-static gint ett_h245_RemoveConnectionResp;
-static gint ett_h245_MaximumHeaderIntervalResp;
-static gint ett_h245_MultilinkIndication;
-static gint ett_h245_T_crcDesired;
-static gint ett_h245_T_excessiveError;
-static gint ett_h245_DialingInformation;
-static gint ett_h245_SET_SIZE_1_65535_OF_DialingInformationNumber;
-static gint ett_h245_DialingInformationNumber;
-static gint ett_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType;
-static gint ett_h245_DialingInformationNetworkType;
-static gint ett_h245_ConnectionIdentifier;
-static gint ett_h245_LogicalChannelRateRequest;
-static gint ett_h245_LogicalChannelRateAcknowledge;
-static gint ett_h245_LogicalChannelRateReject;
-static gint ett_h245_LogicalChannelRateRejectReason;
-static gint ett_h245_LogicalChannelRateRelease;
-static gint ett_h245_SendTerminalCapabilitySet;
-static gint ett_h245_T_specificRequest;
-static gint ett_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber;
-static gint ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber;
-static gint ett_h245_EncryptionCommand;
-static gint ett_h245_T_encryptionAlgorithmID;
-static gint ett_h245_FlowControlCommand;
-static gint ett_h245_Scope;
-static gint ett_h245_Restriction;
-static gint ett_h245_EndSessionCommand;
-static gint ett_h245_T_gstnOptions;
-static gint ett_h245_T_isdnOptions;
-static gint ett_h245_ConferenceCommand;
-static gint ett_h245_SubstituteConferenceIDCommand;
-static gint ett_h245_EncryptionUpdateDirection;
-static gint ett_h245_MiscellaneousCommand;
-static gint ett_h245_Mc_type;
-static gint ett_h245_T_videoFastUpdateGOB;
-static gint ett_h245_T_videoFastUpdateMB;
-static gint ett_h245_T_progressiveRefinementStart;
-static gint ett_h245_T_repeatCount;
-static gint ett_h245_T_videoBadMBs;
-static gint ett_h245_SEQUENCE_OF_PictureReference;
-static gint ett_h245_T_lostPartialPicture;
-static gint ett_h245_T_encryptionUpdateCommand;
-static gint ett_h245_T_encryptionUpdateAck;
-static gint ett_h245_KeyProtectionMethod;
-static gint ett_h245_EncryptionUpdateRequest;
-static gint ett_h245_PictureReference;
-static gint ett_h245_H223MultiplexReconfiguration;
-static gint ett_h245_T_h223ModeChange;
-static gint ett_h245_T_h223AnnexADoubleFlag;
-static gint ett_h245_NewATMVCCommand;
-static gint ett_h245_Cmd_aal;
-static gint ett_h245_Cmd_aal1;
-static gint ett_h245_Cmd_clockRecovery;
-static gint ett_h245_Cmd_errorCorrection;
-static gint ett_h245_Cmd_aal5;
-static gint ett_h245_Cmd_multiplex;
-static gint ett_h245_Cmd_reverseParameters;
-static gint ett_h245_CmdR_multiplex;
-static gint ett_h245_MobileMultilinkReconfigurationCommand;
-static gint ett_h245_T_status;
-static gint ett_h245_FunctionNotUnderstood;
-static gint ett_h245_FunctionNotSupported;
-static gint ett_h245_FunctionNotSupportedCause;
-static gint ett_h245_ConferenceIndication;
-static gint ett_h245_TerminalYouAreSeeingInSubPictureNumber;
-static gint ett_h245_VideoIndicateCompose;
-static gint ett_h245_MiscellaneousIndication;
-static gint ett_h245_Mi_type;
-static gint ett_h245_T_videoNotDecodedMBs;
-static gint ett_h245_JitterIndication;
-static gint ett_h245_H223SkewIndication;
-static gint ett_h245_H2250MaximumSkewIndication;
-static gint ett_h245_MCLocationIndication;
-static gint ett_h245_VendorIdentification;
-static gint ett_h245_NewATMVCIndication;
-static gint ett_h245_Ind_aal;
-static gint ett_h245_Ind_aal1;
-static gint ett_h245_Ind_clockRecovery;
-static gint ett_h245_Ind_errorCorrection;
-static gint ett_h245_Ind_aal5;
-static gint ett_h245_Ind_multiplex;
-static gint ett_h245_Ind_reverseParameters;
-static gint ett_h245_IndR_multiplex;
-static gint ett_h245_Params;
-static gint ett_h245_UserInputIndication;
-static gint ett_h245_T_userInputSupportIndication;
-static gint ett_h245_T_signal;
-static gint ett_h245_T_rtp;
-static gint ett_h245_T_signalUpdate;
-static gint ett_h245_Si_rtp;
-static gint ett_h245_T_extendedAlphanumeric;
-static gint ett_h245_EncryptedAlphanumeric;
-static gint ett_h245_FlowControlIndication;
-static gint ett_h245_MobileMultilinkReconfigurationIndication;
+static int ett_h245_MultimediaSystemControlMessage;
+static int ett_h245_RequestMessage;
+static int ett_h245_ResponseMessage;
+static int ett_h245_CommandMessage;
+static int ett_h245_IndicationMessage;
+static int ett_h245_GenericMessage;
+static int ett_h245_T_messageContent;
+static int ett_h245_NonStandardMessage;
+static int ett_h245_NonStandardParameter;
+static int ett_h245_NonStandardIdentifier;
+static int ett_h245_H221NonStandardID;
+static int ett_h245_MasterSlaveDetermination;
+static int ett_h245_MasterSlaveDeterminationAck;
+static int ett_h245_T_decision;
+static int ett_h245_MasterSlaveDeterminationReject;
+static int ett_h245_MasterSlaveDeterminationRejectCause;
+static int ett_h245_MasterSlaveDeterminationRelease;
+static int ett_h245_TerminalCapabilitySet;
+static int ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry;
+static int ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor;
+static int ett_h245_SEQUENCE_OF_GenericInformation;
+static int ett_h245_CapabilityTableEntry;
+static int ett_h245_CapabilityDescriptor;
+static int ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet;
+static int ett_h245_AlternativeCapabilitySet;
+static int ett_h245_TerminalCapabilitySetAck;
+static int ett_h245_TerminalCapabilitySetReject;
+static int ett_h245_TerminalCapabilitySetRejectCause;
+static int ett_h245_T_tableEntryCapacityExceeded;
+static int ett_h245_TerminalCapabilitySetRelease;
+static int ett_h245_Capability;
+static int ett_h245_T_h233EncryptionReceiveCapability;
+static int ett_h245_H235SecurityCapability;
+static int ett_h245_MultiplexCapability;
+static int ett_h245_H222Capability;
+static int ett_h245_SET_OF_VCCapability;
+static int ett_h245_VCCapability;
+static int ett_h245_T_aal1;
+static int ett_h245_T_aal5;
+static int ett_h245_T_availableBitRates;
+static int ett_h245_Avb_type;
+static int ett_h245_T_rangeOfBitRates;
+static int ett_h245_T_aal1ViaGateway;
+static int ett_h245_SET_SIZE_1_256_OF_Q2931Address;
+static int ett_h245_H223Capability;
+static int ett_h245_T_h223MultiplexTableCapability;
+static int ett_h245_T_enhanced;
+static int ett_h245_T_mobileOperationTransmitCapability;
+static int ett_h245_T_mobileMultilinkFrameCapability;
+static int ett_h245_H223AnnexCCapability;
+static int ett_h245_V76Capability;
+static int ett_h245_V75Capability;
+static int ett_h245_H2250Capability;
+static int ett_h245_T_mcCapability;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability;
+static int ett_h245_MediaPacketizationCapability;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType;
+static int ett_h245_RSVPParameters;
+static int ett_h245_QOSMode;
+static int ett_h245_ATMParameters;
+static int ett_h245_ServicePriorityValue;
+static int ett_h245_ServicePriority;
+static int ett_h245_AuthorizationParameters;
+static int ett_h245_QOSType;
+static int ett_h245_QOSClass;
+static int ett_h245_QOSDescriptor;
+static int ett_h245_GenericTransportParameters;
+static int ett_h245_QOSCapability;
+static int ett_h245_MediaTransportType;
+static int ett_h245_T_atm_AAL5_compressed;
+static int ett_h245_MediaChannelCapability;
+static int ett_h245_TransportCapability;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability;
+static int ett_h245_RedundancyEncodingCapability;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber;
+static int ett_h245_RedundancyEncodingMethod;
+static int ett_h245_RTPH263VideoRedundancyEncoding;
+static int ett_h245_T_frameToThreadMapping;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping;
+static int ett_h245_T_containedThreads;
+static int ett_h245_RTPH263VideoRedundancyFrameMapping;
+static int ett_h245_T_frameSequence;
+static int ett_h245_MultipointCapability;
+static int ett_h245_SEQUENCE_OF_MediaDistributionCapability;
+static int ett_h245_MediaDistributionCapability;
+static int ett_h245_SEQUENCE_OF_DataApplicationCapability;
+static int ett_h245_VideoCapability;
+static int ett_h245_ExtendedVideoCapability;
+static int ett_h245_SEQUENCE_OF_VideoCapability;
+static int ett_h245_SEQUENCE_OF_GenericCapability;
+static int ett_h245_H261VideoCapability;
+static int ett_h245_H262VideoCapability;
+static int ett_h245_H263VideoCapability;
+static int ett_h245_EnhancementLayerInfo;
+static int ett_h245_SET_SIZE_1_14_OF_EnhancementOptions;
+static int ett_h245_SET_SIZE_1_14_OF_BEnhancementParameters;
+static int ett_h245_BEnhancementParameters;
+static int ett_h245_EnhancementOptions;
+static int ett_h245_H263Options;
+static int ett_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency;
+static int ett_h245_SET_SIZE_1_16_OF_CustomPictureFormat;
+static int ett_h245_SET_SIZE_1_16_OF_H263VideoModeCombos;
+static int ett_h245_TransparencyParameters;
+static int ett_h245_RefPictureSelection;
+static int ett_h245_T_additionalPictureMemory;
+static int ett_h245_T_videoBackChannelSend;
+static int ett_h245_T_enhancedReferencePicSelect;
+static int ett_h245_T_subPictureRemovalParameters;
+static int ett_h245_CustomPictureClockFrequency;
+static int ett_h245_CustomPictureFormat;
+static int ett_h245_T_mPI;
+static int ett_h245_T_customPCF;
+static int ett_h245_T_customPCF_item;
+static int ett_h245_T_pixelAspectInformation;
+static int ett_h245_T_pixelAspectCode;
+static int ett_h245_T_extendedPAR;
+static int ett_h245_T_extendedPAR_item;
+static int ett_h245_H263VideoModeCombos;
+static int ett_h245_SET_SIZE_1_16_OF_H263ModeComboFlags;
+static int ett_h245_H263ModeComboFlags;
+static int ett_h245_H263Version3Options;
+static int ett_h245_IS11172VideoCapability;
+static int ett_h245_AudioCapability;
+static int ett_h245_T_g7231;
+static int ett_h245_G729Extensions;
+static int ett_h245_G7231AnnexCCapability;
+static int ett_h245_G723AnnexCAudioMode;
+static int ett_h245_IS11172AudioCapability;
+static int ett_h245_IS13818AudioCapability;
+static int ett_h245_GSMAudioCapability;
+static int ett_h245_VBDCapability;
+static int ett_h245_DataApplicationCapability;
+static int ett_h245_Application;
+static int ett_h245_T_t84;
+static int ett_h245_Nlpid;
+static int ett_h245_T_t38fax;
+static int ett_h245_DataProtocolCapability;
+static int ett_h245_T_v76wCompression;
+static int ett_h245_CompressionType;
+static int ett_h245_V42bis;
+static int ett_h245_T84Profile;
+static int ett_h245_T_t84Restricted;
+static int ett_h245_T38FaxProfile;
+static int ett_h245_T38FaxRateManagement;
+static int ett_h245_T38FaxUdpOptions;
+static int ett_h245_T_t38FaxUdpEC;
+static int ett_h245_T38FaxTcpOptions;
+static int ett_h245_EncryptionAuthenticationAndIntegrity;
+static int ett_h245_EncryptionCapability;
+static int ett_h245_MediaEncryptionAlgorithm;
+static int ett_h245_AuthenticationCapability;
+static int ett_h245_IntegrityCapability;
+static int ett_h245_UserInputCapability;
+static int ett_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter;
+static int ett_h245_ConferenceCapability;
+static int ett_h245_SEQUENCE_OF_NonStandardParameter;
+static int ett_h245_GenericCapability;
+static int ett_h245_T_collapsing;
+static int ett_h245_T_nonCollapsing;
+static int ett_h245_CapabilityIdentifier;
+static int ett_h245_GenericParameter;
+static int ett_h245_SEQUENCE_OF_ParameterIdentifier;
+static int ett_h245_ParameterIdentifier;
+static int ett_h245_ParameterValue;
+static int ett_h245_SEQUENCE_OF_GenericParameter;
+static int ett_h245_MultiplexedStreamCapability;
+static int ett_h245_MultiplexFormat;
+static int ett_h245_AudioTelephonyEventCapability;
+static int ett_h245_AudioToneCapability;
+static int ett_h245_NoPTAudioTelephonyEventCapability;
+static int ett_h245_NoPTAudioToneCapability;
+static int ett_h245_MultiplePayloadStreamCapability;
+static int ett_h245_DepFECCapability;
+static int ett_h245_FECC_rfc2733;
+static int ett_h245_T_separateStreamBool;
+static int ett_h245_FECCapability;
+static int ett_h245_Rfc2733Format;
+static int ett_h245_OpenLogicalChannel;
+static int ett_h245_T_forwardLogicalChannelParameters;
+static int ett_h245_OLC_forw_multiplexParameters;
+static int ett_h245_OLC_reverseLogicalChannelParameters;
+static int ett_h245_OLC_rev_multiplexParameters;
+static int ett_h245_NetworkAccessParameters;
+static int ett_h245_T_distribution;
+static int ett_h245_T_networkAddress;
+static int ett_h245_T_t120SetupProcedure;
+static int ett_h245_Q2931Address;
+static int ett_h245_T_address;
+static int ett_h245_V75Parameters;
+static int ett_h245_DataType;
+static int ett_h245_H235Media;
+static int ett_h245_T_mediaType;
+static int ett_h245_MultiplexedStreamParameter;
+static int ett_h245_H222LogicalChannelParameters;
+static int ett_h245_H223LogicalChannelParameters;
+static int ett_h245_T_adaptationLayerType;
+static int ett_h245_Al3;
+static int ett_h245_H223AL1MParameters;
+static int ett_h245_T_transferMode;
+static int ett_h245_AL1HeaderFEC;
+static int ett_h245_AL1CrcLength;
+static int ett_h245_ArqType;
+static int ett_h245_H223AL2MParameters;
+static int ett_h245_AL2HeaderFEC;
+static int ett_h245_H223AL3MParameters;
+static int ett_h245_T_headerFormat;
+static int ett_h245_AL3CrcLength;
+static int ett_h245_H223AnnexCArqParameters;
+static int ett_h245_T_numberOfRetransmissions;
+static int ett_h245_V76LogicalChannelParameters;
+static int ett_h245_T_suspendResume;
+static int ett_h245_V76LCP_mode;
+static int ett_h245_T_eRM;
+static int ett_h245_T_recovery;
+static int ett_h245_V76HDLCParameters;
+static int ett_h245_CRCLength;
+static int ett_h245_H2250LogicalChannelParameters;
+static int ett_h245_T_mediaPacketization;
+static int ett_h245_RTPPayloadType;
+static int ett_h245_T_payloadDescriptor;
+static int ett_h245_RedundancyEncoding;
+static int ett_h245_T_rtpRedundancyEncoding;
+static int ett_h245_SEQUENCE_OF_RedundancyEncodingElement;
+static int ett_h245_RedundancyEncodingElement;
+static int ett_h245_MultiplePayloadStream;
+static int ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement;
+static int ett_h245_MultiplePayloadStreamElement;
+static int ett_h245_DepFECData;
+static int ett_h245_RFC2733Data;
+static int ett_h245_FECdata_mode;
+static int ett_h245_DepSeparateStream;
+static int ett_h245_T_differentPort;
+static int ett_h245_T_samePort;
+static int ett_h245_FECData;
+static int ett_h245_T_rfc2733;
+static int ett_h245_T_pktMode;
+static int ett_h245_T_mode_rfc2733sameport;
+static int ett_h245_T_mode_rfc2733diffport;
+static int ett_h245_TransportAddress;
+static int ett_h245_UnicastAddress;
+static int ett_h245_T_iPAddress;
+static int ett_h245_T_iPXAddress;
+static int ett_h245_T_iP6Address;
+static int ett_h245_T_iPSourceRouteAddress;
+static int ett_h245_T_routing;
+static int ett_h245_T_route;
+static int ett_h245_MulticastAddress;
+static int ett_h245_MIPAddress;
+static int ett_h245_MIP6Address;
+static int ett_h245_EncryptionSync;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_EscrowData;
+static int ett_h245_EscrowData;
+static int ett_h245_OpenLogicalChannelAck;
+static int ett_h245_OLC_ack_reverseLogicalChannelParameters;
+static int ett_h245_T_olc_ack_multiplexParameters;
+static int ett_h245_T_forwardMultiplexAckParameters;
+static int ett_h245_OpenLogicalChannelReject;
+static int ett_h245_OpenLogicalChannelRejectCause;
+static int ett_h245_OpenLogicalChannelConfirm;
+static int ett_h245_H2250LogicalChannelAckParameters;
+static int ett_h245_CloseLogicalChannel;
+static int ett_h245_T_cLC_source;
+static int ett_h245_Clc_reason;
+static int ett_h245_CloseLogicalChannelAck;
+static int ett_h245_RequestChannelClose;
+static int ett_h245_T_reason;
+static int ett_h245_RequestChannelCloseAck;
+static int ett_h245_RequestChannelCloseReject;
+static int ett_h245_RequestChannelCloseRejectCause;
+static int ett_h245_RequestChannelCloseRelease;
+static int ett_h245_MultiplexEntrySend;
+static int ett_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor;
+static int ett_h245_MultiplexEntryDescriptor;
+static int ett_h245_T_elementList;
+static int ett_h245_MultiplexElement;
+static int ett_h245_Me_type;
+static int ett_h245_T_subElementList;
+static int ett_h245_ME_repeatCount;
+static int ett_h245_MultiplexEntrySendAck;
+static int ett_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber;
+static int ett_h245_MultiplexEntrySendReject;
+static int ett_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions;
+static int ett_h245_MultiplexEntryRejectionDescriptions;
+static int ett_h245_MultiplexEntryRejectionDescriptionsCause;
+static int ett_h245_MultiplexEntrySendRelease;
+static int ett_h245_RequestMultiplexEntry;
+static int ett_h245_RequestMultiplexEntryAck;
+static int ett_h245_RequestMultiplexEntryReject;
+static int ett_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions;
+static int ett_h245_RequestMultiplexEntryRejectionDescriptions;
+static int ett_h245_RequestMultiplexEntryRejectionDescriptionsCause;
+static int ett_h245_RequestMultiplexEntryRelease;
+static int ett_h245_RequestMode;
+static int ett_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription;
+static int ett_h245_RequestModeAck;
+static int ett_h245_Req_mode_ack_response;
+static int ett_h245_RequestModeReject;
+static int ett_h245_RequestModeRejectCause;
+static int ett_h245_RequestModeRelease;
+static int ett_h245_ModeDescription;
+static int ett_h245_ModeElementType;
+static int ett_h245_ModeElement;
+static int ett_h245_H235Mode;
+static int ett_h245_T_mediaMode;
+static int ett_h245_MultiplexedStreamModeParameters;
+static int ett_h245_RedundancyEncodingDTMode;
+static int ett_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement;
+static int ett_h245_RedundancyEncodingDTModeElement;
+static int ett_h245_Re_type;
+static int ett_h245_MultiplePayloadStreamMode;
+static int ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode;
+static int ett_h245_MultiplePayloadStreamElementMode;
+static int ett_h245_DepFECMode;
+static int ett_h245_T_rfc2733Mode;
+static int ett_h245_FEC_mode;
+static int ett_h245_FECMode;
+static int ett_h245_H223ModeParameters;
+static int ett_h245_AdaptationLayerType;
+static int ett_h245_V76ModeParameters;
+static int ett_h245_H2250ModeParameters;
+static int ett_h245_RedundancyEncodingMode;
+static int ett_h245_T_secondaryEncodingMode;
+static int ett_h245_VideoMode;
+static int ett_h245_H261VideoMode;
+static int ett_h245_H261Resolution;
+static int ett_h245_H262VideoMode;
+static int ett_h245_T_profileAndLevel;
+static int ett_h245_H263VideoMode;
+static int ett_h245_H263Resolution;
+static int ett_h245_IS11172VideoMode;
+static int ett_h245_AudioMode;
+static int ett_h245_Mode_g7231;
+static int ett_h245_IS11172AudioMode;
+static int ett_h245_T_audioLayer;
+static int ett_h245_T_audioSampling;
+static int ett_h245_IS11172_multichannelType;
+static int ett_h245_IS13818AudioMode;
+static int ett_h245_IS13818AudioLayer;
+static int ett_h245_IS13818AudioSampling;
+static int ett_h245_IS13818MultichannelType;
+static int ett_h245_G7231AnnexCMode;
+static int ett_h245_VBDMode;
+static int ett_h245_DataMode;
+static int ett_h245_DataModeApplication;
+static int ett_h245_T38faxApp;
+static int ett_h245_EncryptionMode;
+static int ett_h245_RoundTripDelayRequest;
+static int ett_h245_RoundTripDelayResponse;
+static int ett_h245_MaintenanceLoopRequest;
+static int ett_h245_Mlr_type;
+static int ett_h245_MaintenanceLoopAck;
+static int ett_h245_Mla_type;
+static int ett_h245_MaintenanceLoopReject;
+static int ett_h245_Mlrej_type;
+static int ett_h245_MaintenanceLoopRejectCause;
+static int ett_h245_MaintenanceLoopOffCommand;
+static int ett_h245_CommunicationModeCommand;
+static int ett_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry;
+static int ett_h245_CommunicationModeRequest;
+static int ett_h245_CommunicationModeResponse;
+static int ett_h245_CommunicationModeTableEntry;
+static int ett_h245_T_entryDataType;
+static int ett_h245_ConferenceRequest;
+static int ett_h245_T_requestTerminalCertificate;
+static int ett_h245_CertSelectionCriteria;
+static int ett_h245_Criteria;
+static int ett_h245_TerminalLabel;
+static int ett_h245_ConferenceResponse;
+static int ett_h245_T_mCTerminalIDResponse;
+static int ett_h245_T_terminalIDResponse;
+static int ett_h245_T_conferenceIDResponse;
+static int ett_h245_T_passwordResponse;
+static int ett_h245_SET_SIZE_1_256_OF_TerminalLabel;
+static int ett_h245_T_makeMeChairResponse;
+static int ett_h245_T_extensionAddressResponse;
+static int ett_h245_T_chairTokenOwnerResponse;
+static int ett_h245_T_terminalCertificateResponse;
+static int ett_h245_T_broadcastMyLogicalChannelResponse;
+static int ett_h245_T_makeTerminalBroadcasterResponse;
+static int ett_h245_T_sendThisSourceResponse;
+static int ett_h245_RequestAllTerminalIDsResponse;
+static int ett_h245_SEQUENCE_OF_TerminalInformation;
+static int ett_h245_TerminalInformation;
+static int ett_h245_RemoteMCRequest;
+static int ett_h245_RemoteMCResponse;
+static int ett_h245_T_reject;
+static int ett_h245_MultilinkRequest;
+static int ett_h245_CallInformationReq;
+static int ett_h245_AddConnectionReq;
+static int ett_h245_RemoveConnectionReq;
+static int ett_h245_MaximumHeaderIntervalReq;
+static int ett_h245_T_requestType;
+static int ett_h245_MultilinkResponse;
+static int ett_h245_CallInformationResp;
+static int ett_h245_AddConnectionResp;
+static int ett_h245_T_responseCode;
+static int ett_h245_T_rejected;
+static int ett_h245_RemoveConnectionResp;
+static int ett_h245_MaximumHeaderIntervalResp;
+static int ett_h245_MultilinkIndication;
+static int ett_h245_T_crcDesired;
+static int ett_h245_T_excessiveError;
+static int ett_h245_DialingInformation;
+static int ett_h245_SET_SIZE_1_65535_OF_DialingInformationNumber;
+static int ett_h245_DialingInformationNumber;
+static int ett_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType;
+static int ett_h245_DialingInformationNetworkType;
+static int ett_h245_ConnectionIdentifier;
+static int ett_h245_LogicalChannelRateRequest;
+static int ett_h245_LogicalChannelRateAcknowledge;
+static int ett_h245_LogicalChannelRateReject;
+static int ett_h245_LogicalChannelRateRejectReason;
+static int ett_h245_LogicalChannelRateRelease;
+static int ett_h245_SendTerminalCapabilitySet;
+static int ett_h245_T_specificRequest;
+static int ett_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber;
+static int ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber;
+static int ett_h245_EncryptionCommand;
+static int ett_h245_T_encryptionAlgorithmID;
+static int ett_h245_FlowControlCommand;
+static int ett_h245_Scope;
+static int ett_h245_Restriction;
+static int ett_h245_EndSessionCommand;
+static int ett_h245_T_gstnOptions;
+static int ett_h245_T_isdnOptions;
+static int ett_h245_ConferenceCommand;
+static int ett_h245_SubstituteConferenceIDCommand;
+static int ett_h245_EncryptionUpdateDirection;
+static int ett_h245_MiscellaneousCommand;
+static int ett_h245_Mc_type;
+static int ett_h245_T_videoFastUpdateGOB;
+static int ett_h245_T_videoFastUpdateMB;
+static int ett_h245_T_progressiveRefinementStart;
+static int ett_h245_T_repeatCount;
+static int ett_h245_T_videoBadMBs;
+static int ett_h245_SEQUENCE_OF_PictureReference;
+static int ett_h245_T_lostPartialPicture;
+static int ett_h245_T_encryptionUpdateCommand;
+static int ett_h245_T_encryptionUpdateAck;
+static int ett_h245_KeyProtectionMethod;
+static int ett_h245_EncryptionUpdateRequest;
+static int ett_h245_PictureReference;
+static int ett_h245_H223MultiplexReconfiguration;
+static int ett_h245_T_h223ModeChange;
+static int ett_h245_T_h223AnnexADoubleFlag;
+static int ett_h245_NewATMVCCommand;
+static int ett_h245_Cmd_aal;
+static int ett_h245_Cmd_aal1;
+static int ett_h245_Cmd_clockRecovery;
+static int ett_h245_Cmd_errorCorrection;
+static int ett_h245_Cmd_aal5;
+static int ett_h245_Cmd_multiplex;
+static int ett_h245_Cmd_reverseParameters;
+static int ett_h245_CmdR_multiplex;
+static int ett_h245_MobileMultilinkReconfigurationCommand;
+static int ett_h245_T_status;
+static int ett_h245_FunctionNotUnderstood;
+static int ett_h245_FunctionNotSupported;
+static int ett_h245_FunctionNotSupportedCause;
+static int ett_h245_ConferenceIndication;
+static int ett_h245_TerminalYouAreSeeingInSubPictureNumber;
+static int ett_h245_VideoIndicateCompose;
+static int ett_h245_MiscellaneousIndication;
+static int ett_h245_Mi_type;
+static int ett_h245_T_videoNotDecodedMBs;
+static int ett_h245_JitterIndication;
+static int ett_h245_H223SkewIndication;
+static int ett_h245_H2250MaximumSkewIndication;
+static int ett_h245_MCLocationIndication;
+static int ett_h245_VendorIdentification;
+static int ett_h245_NewATMVCIndication;
+static int ett_h245_Ind_aal;
+static int ett_h245_Ind_aal1;
+static int ett_h245_Ind_clockRecovery;
+static int ett_h245_Ind_errorCorrection;
+static int ett_h245_Ind_aal5;
+static int ett_h245_Ind_multiplex;
+static int ett_h245_Ind_reverseParameters;
+static int ett_h245_IndR_multiplex;
+static int ett_h245_Params;
+static int ett_h245_UserInputIndication;
+static int ett_h245_T_userInputSupportIndication;
+static int ett_h245_T_signal;
+static int ett_h245_T_rtp;
+static int ett_h245_T_signalUpdate;
+static int ett_h245_Si_rtp;
+static int ett_h245_T_extendedAlphanumeric;
+static int ett_h245_EncryptedAlphanumeric;
+static int ett_h245_FlowControlIndication;
+static int ett_h245_MobileMultilinkReconfigurationIndication;
/* Forward declarations */
static int dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -3864,7 +3864,7 @@ static const per_sequence_t GenericParameter_sequence[] = {
static int
dissect_h245_GenericParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // GenericParameter → ParameterValue → ParameterValue/genericParameter → GenericParameter
+ // GenericParameter -> ParameterValue -> ParameterValue/genericParameter -> GenericParameter
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -5664,7 +5664,7 @@ static const per_choice_t VideoCapability_choice[] = {
static int
dissect_h245_VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // VideoCapability → ExtendedVideoCapability → ExtendedVideoCapability/videoCapability → VideoCapability
+ // VideoCapability -> ExtendedVideoCapability -> ExtendedVideoCapability/videoCapability -> VideoCapability
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
gint32 value;
@@ -5985,7 +5985,7 @@ static const per_choice_t AudioCapability_choice[] = {
static int
dissect_h245_AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // AudioCapability → VBDCapability → AudioCapability
+ // AudioCapability -> VBDCapability -> AudioCapability
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
gint32 value;
@@ -7148,7 +7148,7 @@ static const per_choice_t DataType_choice[] = {
static int
dissect_h245_DataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // DataType → H235Media → H235Media/mediaType → RedundancyEncoding → DataType
+ // DataType -> H235Media -> H235Media/mediaType -> RedundancyEncoding -> DataType
actx->pinfo->dissection_depth += 4;
increment_dissection_depth(actx->pinfo);
gint choice_index;
@@ -7665,7 +7665,7 @@ dissect_h245_T_adaptationLayerType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_h245_T_h223_lc_segmentableFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- gboolean value;
+ bool value;
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &value);
if(h223_lc_params_temp)
@@ -8869,7 +8869,7 @@ static const per_sequence_t MultiplexElement_sequence[] = {
static int
dissect_h245_MultiplexElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // MultiplexElement → MultiplexElement/type → MultiplexElement/type/subElementList → MultiplexElement
+ // MultiplexElement -> MultiplexElement/type -> MultiplexElement/type/subElementList -> MultiplexElement
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
/*MultiplexElement*/
@@ -9503,7 +9503,7 @@ static const per_choice_t AudioMode_choice[] = {
static int
dissect_h245_AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // AudioMode → VBDMode → AudioMode
+ // AudioMode -> VBDMode -> AudioMode
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
gint32 value;
@@ -9861,7 +9861,7 @@ static const per_choice_t ModeElementType_choice[] = {
static int
dissect_h245_ModeElementType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // ModeElementType → RedundancyEncodingDTMode → RedundancyEncodingDTModeElement → RedundancyEncodingDTModeElement/type → FECMode → ModeElementType
+ // ModeElementType -> RedundancyEncodingDTMode -> RedundancyEncodingDTModeElement -> RedundancyEncodingDTModeElement/type -> FECMode -> ModeElementType
actx->pinfo->dissection_depth += 5;
increment_dissection_depth(actx->pinfo);
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
diff --git a/epan/dissectors/packet-h248.c b/epan/dissectors/packet-h248.c
index ef6a2b01a3..0fa5c330de 100644
--- a/epan/dissectors/packet-h248.c
+++ b/epan/dissectors/packet-h248.c
@@ -404,149 +404,149 @@ static gcp_hf_ett_t h248_arrel;
static gint exported_pdu_tap = -1;
-static gint ett_h248_MegacoMessage;
-static gint ett_h248_AuthenticationHeader;
-static gint ett_h248_Message;
-static gint ett_h248_T_messageBody;
-static gint ett_h248_SEQUENCE_OF_Transaction;
-static gint ett_h248_MId;
-static gint ett_h248_DomainName;
-static gint ett_h248_IP4Address;
-static gint ett_h248_IP6Address;
-static gint ett_h248_Transaction;
-static gint ett_h248_TransactionRequest;
-static gint ett_h248_SEQUENCE_OF_ActionRequest;
-static gint ett_h248_TransactionPending;
-static gint ett_h248_TransactionReply;
-static gint ett_h248_T_transactionResult;
-static gint ett_h248_SEQUENCE_OF_ActionReply;
-static gint ett_h248_SegmentReply;
-static gint ett_h248_TransactionResponseAck;
-static gint ett_h248_TransactionAck;
-static gint ett_h248_ErrorDescriptor;
-static gint ett_h248_ActionRequest;
-static gint ett_h248_SEQUENCE_OF_CommandRequest;
-static gint ett_h248_ActionReply;
-static gint ett_h248_SEQUENCE_OF_CommandReply;
-static gint ett_h248_ContextRequest;
-static gint ett_h248_T_topologyReq;
-static gint ett_h248_SEQUENCE_OF_PropertyParm;
-static gint ett_h248_SEQUENCE_OF_ContextIDinList;
-static gint ett_h248_ContextAttrAuditRequest;
-static gint ett_h248_SEQUENCE_OF_IndAudPropertyParm;
-static gint ett_h248_SelectLogic;
-static gint ett_h248_CommandRequest;
-static gint ett_h248_Command;
-static gint ett_h248_CommandReply;
-static gint ett_h248_TopologyRequest;
-static gint ett_h248_AmmRequest;
-static gint ett_h248_SEQUENCE_OF_AmmDescriptor;
-static gint ett_h248_AmmDescriptor;
-static gint ett_h248_AmmsReply;
-static gint ett_h248_SubtractRequest;
-static gint ett_h248_AuditRequest;
-static gint ett_h248_AuditReply;
-static gint ett_h248_AuditResult;
-static gint ett_h248_TermListAuditResult;
-static gint ett_h248_TerminationAudit;
-static gint ett_h248_AuditReturnParameter;
-static gint ett_h248_AuditDescriptor;
-static gint ett_h248_T_auditToken;
-static gint ett_h248_SEQUENCE_OF_IndAuditParameter;
-static gint ett_h248_IndAuditParameter;
-static gint ett_h248_IndAudMediaDescriptor;
-static gint ett_h248_IndAudMediaDescriptorStreams;
-static gint ett_h248_SEQUENCE_OF_IndAudStreamDescriptor;
-static gint ett_h248_IndAudStreamDescriptor;
-static gint ett_h248_IndAudStreamParms;
-static gint ett_h248_IndAudLocalControlDescriptor;
-static gint ett_h248_IndAudPropertyParm;
-static gint ett_h248_IndAudLocalRemoteDescriptor;
-static gint ett_h248_IndAudPropertyGroup;
-static gint ett_h248_IndAudTerminationStateDescriptor;
-static gint ett_h248_IndAudEventsDescriptor;
-static gint ett_h248_IndAudEventBufferDescriptor;
-static gint ett_h248_IndAudSignalsDescriptor;
-static gint ett_h248_IndAudSeqSigList;
-static gint ett_h248_IndAudSignal;
-static gint ett_h248_IndAudDigitMapDescriptor;
-static gint ett_h248_IndAudStatisticsDescriptor;
-static gint ett_h248_IndAudPackagesDescriptor;
-static gint ett_h248_NotifyRequest;
-static gint ett_h248_NotifyReply;
-static gint ett_h248_ObservedEventsDescriptor;
-static gint ett_h248_SEQUENCE_OF_ObservedEvent;
-static gint ett_h248_ObservedEvent;
-static gint ett_h248_SEQUENCE_OF_EventParameter;
-static gint ett_h248_EventParameter;
-static gint ett_h248_EventPar_extraInfo;
-static gint ett_h248_EventParamValues;
-static gint ett_h248_ServiceChangeRequest;
-static gint ett_h248_ServiceChangeReply;
-static gint ett_h248_ServiceChangeResult;
-static gint ett_h248_TerminationID;
-static gint ett_h248_SEQUENCE_OF_WildcardField;
-static gint ett_h248_TerminationIDList;
-static gint ett_h248_MediaDescriptor;
-static gint ett_h248_T_streams;
-static gint ett_h248_SEQUENCE_OF_StreamDescriptor;
-static gint ett_h248_StreamDescriptor;
-static gint ett_h248_StreamParms;
-static gint ett_h248_LocalControlDescriptor;
-static gint ett_h248_PropertyParm;
-static gint ett_h248_SEQUENCE_OF_PropertyID;
-static gint ett_h248_PropParm_extraInfo;
-static gint ett_h248_LocalRemoteDescriptor;
-static gint ett_h248_SEQUENCE_OF_PropertyGroup;
-static gint ett_h248_PropertyGroup;
-static gint ett_h248_TerminationStateDescriptor;
-static gint ett_h248_MuxDescriptor;
-static gint ett_h248_SEQUENCE_OF_TerminationID;
-static gint ett_h248_EventsDescriptor;
-static gint ett_h248_SEQUENCE_OF_RequestedEvent;
-static gint ett_h248_RequestedEvent;
-static gint ett_h248_RegulatedEmbeddedDescriptor;
-static gint ett_h248_NotifyBehaviour;
-static gint ett_h248_RequestedActions;
-static gint ett_h248_EventDM;
-static gint ett_h248_SecondEventsDescriptor;
-static gint ett_h248_SEQUENCE_OF_SecondRequestedEvent;
-static gint ett_h248_SecondRequestedEvent;
-static gint ett_h248_SecondRequestedActions;
-static gint ett_h248_EventBufferDescriptor;
-static gint ett_h248_EventSpec;
-static gint ett_h248_SignalsDescriptor;
-static gint ett_h248_SignalRequest;
-static gint ett_h248_SeqSigList;
-static gint ett_h248_SEQUENCE_OF_Signal;
-static gint ett_h248_Signal;
-static gint ett_h248_SEQUENCE_OF_SigParameter;
-static gint ett_h248_NotifyCompletion;
-static gint ett_h248_SigParameter;
-static gint ett_h248_T_extraInfo;
-static gint ett_h248_SigParamValues;
-static gint ett_h248_ModemDescriptor;
-static gint ett_h248_SEQUENCE_OF_ModemType;
-static gint ett_h248_DigitMapDescriptor;
-static gint ett_h248_DigitMapValue;
-static gint ett_h248_ServiceChangeParm;
-static gint ett_h248_SCreasonValue;
-static gint ett_h248_ServiceChangeAddress;
-static gint ett_h248_ServiceChangeResParm;
-static gint ett_h248_ServiceChangeProfile;
-static gint ett_h248_PackagesDescriptor;
-static gint ett_h248_PackagesItem;
-static gint ett_h248_StatisticsDescriptor;
-static gint ett_h248_StatisticsParameter;
-static gint ett_h248_NonStandardData;
-static gint ett_h248_NonStandardIdentifier;
-static gint ett_h248_H221NonStandard;
-static gint ett_h248_TimeNotation;
-static gint ett_h248_Value;
-static gint ett_h248_AuditReplyV1;
-static gint ett_h248_AuditResultV1;
-static gint ett_h248_EventParameterV1;
-static gint ett_h248_SigParameterV1;
+static int ett_h248_MegacoMessage;
+static int ett_h248_AuthenticationHeader;
+static int ett_h248_Message;
+static int ett_h248_T_messageBody;
+static int ett_h248_SEQUENCE_OF_Transaction;
+static int ett_h248_MId;
+static int ett_h248_DomainName;
+static int ett_h248_IP4Address;
+static int ett_h248_IP6Address;
+static int ett_h248_Transaction;
+static int ett_h248_TransactionRequest;
+static int ett_h248_SEQUENCE_OF_ActionRequest;
+static int ett_h248_TransactionPending;
+static int ett_h248_TransactionReply;
+static int ett_h248_T_transactionResult;
+static int ett_h248_SEQUENCE_OF_ActionReply;
+static int ett_h248_SegmentReply;
+static int ett_h248_TransactionResponseAck;
+static int ett_h248_TransactionAck;
+static int ett_h248_ErrorDescriptor;
+static int ett_h248_ActionRequest;
+static int ett_h248_SEQUENCE_OF_CommandRequest;
+static int ett_h248_ActionReply;
+static int ett_h248_SEQUENCE_OF_CommandReply;
+static int ett_h248_ContextRequest;
+static int ett_h248_T_topologyReq;
+static int ett_h248_SEQUENCE_OF_PropertyParm;
+static int ett_h248_SEQUENCE_OF_ContextIDinList;
+static int ett_h248_ContextAttrAuditRequest;
+static int ett_h248_SEQUENCE_OF_IndAudPropertyParm;
+static int ett_h248_SelectLogic;
+static int ett_h248_CommandRequest;
+static int ett_h248_Command;
+static int ett_h248_CommandReply;
+static int ett_h248_TopologyRequest;
+static int ett_h248_AmmRequest;
+static int ett_h248_SEQUENCE_OF_AmmDescriptor;
+static int ett_h248_AmmDescriptor;
+static int ett_h248_AmmsReply;
+static int ett_h248_SubtractRequest;
+static int ett_h248_AuditRequest;
+static int ett_h248_AuditReply;
+static int ett_h248_AuditResult;
+static int ett_h248_TermListAuditResult;
+static int ett_h248_TerminationAudit;
+static int ett_h248_AuditReturnParameter;
+static int ett_h248_AuditDescriptor;
+static int ett_h248_T_auditToken;
+static int ett_h248_SEQUENCE_OF_IndAuditParameter;
+static int ett_h248_IndAuditParameter;
+static int ett_h248_IndAudMediaDescriptor;
+static int ett_h248_IndAudMediaDescriptorStreams;
+static int ett_h248_SEQUENCE_OF_IndAudStreamDescriptor;
+static int ett_h248_IndAudStreamDescriptor;
+static int ett_h248_IndAudStreamParms;
+static int ett_h248_IndAudLocalControlDescriptor;
+static int ett_h248_IndAudPropertyParm;
+static int ett_h248_IndAudLocalRemoteDescriptor;
+static int ett_h248_IndAudPropertyGroup;
+static int ett_h248_IndAudTerminationStateDescriptor;
+static int ett_h248_IndAudEventsDescriptor;
+static int ett_h248_IndAudEventBufferDescriptor;
+static int ett_h248_IndAudSignalsDescriptor;
+static int ett_h248_IndAudSeqSigList;
+static int ett_h248_IndAudSignal;
+static int ett_h248_IndAudDigitMapDescriptor;
+static int ett_h248_IndAudStatisticsDescriptor;
+static int ett_h248_IndAudPackagesDescriptor;
+static int ett_h248_NotifyRequest;
+static int ett_h248_NotifyReply;
+static int ett_h248_ObservedEventsDescriptor;
+static int ett_h248_SEQUENCE_OF_ObservedEvent;
+static int ett_h248_ObservedEvent;
+static int ett_h248_SEQUENCE_OF_EventParameter;
+static int ett_h248_EventParameter;
+static int ett_h248_EventPar_extraInfo;
+static int ett_h248_EventParamValues;
+static int ett_h248_ServiceChangeRequest;
+static int ett_h248_ServiceChangeReply;
+static int ett_h248_ServiceChangeResult;
+static int ett_h248_TerminationID;
+static int ett_h248_SEQUENCE_OF_WildcardField;
+static int ett_h248_TerminationIDList;
+static int ett_h248_MediaDescriptor;
+static int ett_h248_T_streams;
+static int ett_h248_SEQUENCE_OF_StreamDescriptor;
+static int ett_h248_StreamDescriptor;
+static int ett_h248_StreamParms;
+static int ett_h248_LocalControlDescriptor;
+static int ett_h248_PropertyParm;
+static int ett_h248_SEQUENCE_OF_PropertyID;
+static int ett_h248_PropParm_extraInfo;
+static int ett_h248_LocalRemoteDescriptor;
+static int ett_h248_SEQUENCE_OF_PropertyGroup;
+static int ett_h248_PropertyGroup;
+static int ett_h248_TerminationStateDescriptor;
+static int ett_h248_MuxDescriptor;
+static int ett_h248_SEQUENCE_OF_TerminationID;
+static int ett_h248_EventsDescriptor;
+static int ett_h248_SEQUENCE_OF_RequestedEvent;
+static int ett_h248_RequestedEvent;
+static int ett_h248_RegulatedEmbeddedDescriptor;
+static int ett_h248_NotifyBehaviour;
+static int ett_h248_RequestedActions;
+static int ett_h248_EventDM;
+static int ett_h248_SecondEventsDescriptor;
+static int ett_h248_SEQUENCE_OF_SecondRequestedEvent;
+static int ett_h248_SecondRequestedEvent;
+static int ett_h248_SecondRequestedActions;
+static int ett_h248_EventBufferDescriptor;
+static int ett_h248_EventSpec;
+static int ett_h248_SignalsDescriptor;
+static int ett_h248_SignalRequest;
+static int ett_h248_SeqSigList;
+static int ett_h248_SEQUENCE_OF_Signal;
+static int ett_h248_Signal;
+static int ett_h248_SEQUENCE_OF_SigParameter;
+static int ett_h248_NotifyCompletion;
+static int ett_h248_SigParameter;
+static int ett_h248_T_extraInfo;
+static int ett_h248_SigParamValues;
+static int ett_h248_ModemDescriptor;
+static int ett_h248_SEQUENCE_OF_ModemType;
+static int ett_h248_DigitMapDescriptor;
+static int ett_h248_DigitMapValue;
+static int ett_h248_ServiceChangeParm;
+static int ett_h248_SCreasonValue;
+static int ett_h248_ServiceChangeAddress;
+static int ett_h248_ServiceChangeResParm;
+static int ett_h248_ServiceChangeProfile;
+static int ett_h248_PackagesDescriptor;
+static int ett_h248_PackagesItem;
+static int ett_h248_StatisticsDescriptor;
+static int ett_h248_StatisticsParameter;
+static int ett_h248_NonStandardData;
+static int ett_h248_NonStandardIdentifier;
+static int ett_h248_H221NonStandard;
+static int ett_h248_TimeNotation;
+static int ett_h248_Value;
+static int ett_h248_AuditReplyV1;
+static int ett_h248_AuditResultV1;
+static int ett_h248_EventParameterV1;
+static int ett_h248_SigParameterV1;
static expert_field ei_h248_errored_command;
static expert_field ei_h248_transactionId64;
@@ -592,10 +592,10 @@ const value_string gcp_term_types[] = {
{ 0, NULL }
};
-static wmem_tree_t* gcp_msgs = NULL;
-static wmem_tree_t* gcp_trxs = NULL;
-static wmem_tree_t* gcp_ctxs_by_trx = NULL;
-static wmem_tree_t* gcp_ctxs = NULL;
+static wmem_tree_t* gcp_msgs;
+static wmem_tree_t* gcp_trxs;
+static wmem_tree_t* gcp_ctxs_by_trx;
+static wmem_tree_t* gcp_ctxs;
gcp_msg_t* gcp_msg(packet_info* pinfo, int o, gboolean keep_persistent_data) {
gcp_msg_t* m;
@@ -1292,8 +1292,8 @@ void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb
/* END Gateway Control Protocol -- Context Tracking */
#define H248_PORT 2945
-static gboolean keep_persistent_data = FALSE;
-static gboolean h248_desegment = TRUE;
+static bool keep_persistent_data;
+static bool h248_desegment = true;
@@ -1880,9 +1880,9 @@ static const value_string wildcard_levels[] = {
{ 0, NULL }
};
-static h248_curr_info_t curr_info = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
+static h248_curr_info_t curr_info;
static guint32 error_code;
-static guint32 h248_version = 0; /* h248v1 support */
+static guint32 h248_version; /* h248v1 support */
static gcp_wildcard_t wild_term;
static guint8 wild_card = 0xFF; /* place to store wildcardField */
@@ -1950,7 +1950,7 @@ static const h248_pkg_param_t no_param = { 0, &hf_h248_param, h248_param_uint_it
static const h248_pkg_evt_t no_event = { 0, &hf_h248_no_evt, &ett_h248_no_evt, NULL, NULL };
static const h248_package_t *find_package_id(guint16 pkgid);
-static wmem_tree_t* packages = NULL;
+static wmem_tree_t* packages;
extern void h248_param_PkgdName(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u1 _U_, void* u2 _U_) {
tvbuff_t *new_tvb = NULL;
@@ -4247,7 +4247,7 @@ static const ber_sequence_t SecondEventsDescriptor_sequence[] = {
static int
dissect_h248_SecondEventsDescriptor(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // SecondEventsDescriptor → SecondEventsDescriptor/eventList → SecondRequestedEvent → SecondRequestedActions → NotifyBehaviour → RegulatedEmbeddedDescriptor → SecondEventsDescriptor
+ // SecondEventsDescriptor -> SecondEventsDescriptor/eventList -> SecondRequestedEvent -> SecondRequestedActions -> NotifyBehaviour -> RegulatedEmbeddedDescriptor -> SecondEventsDescriptor
actx->pinfo->dissection_depth += 6;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-h248_3gpp.c b/epan/dissectors/packet-h248_3gpp.c
index 4d79171c71..cb9293e4ab 100644
--- a/epan/dissectors/packet-h248_3gpp.c
+++ b/epan/dissectors/packet-h248_3gpp.c
@@ -42,7 +42,7 @@ static int hf_h248_package_3GUP_initdir;
static gint ett_h248_package_3GUP;
-static gboolean implicit = FALSE;
+static gboolean implicit;
static const value_string h248_3GUP_properties_vals[] = {
{ 0x0000, "threegup (3G User Plane)" },
diff --git a/epan/dissectors/packet-h248_annex_e.c b/epan/dissectors/packet-h248_annex_e.c
index 39f2074571..9bba27685b 100644
--- a/epan/dissectors/packet-h248_annex_e.c
+++ b/epan/dissectors/packet-h248_annex_e.c
@@ -29,8 +29,8 @@ void proto_register_h248_annex_e(void);
*/
static int proto_h248_annex_E;
-static gboolean h248_e_implicit = FALSE;
-static gboolean implicit = FALSE;
+static gboolean h248_e_implicit;
+static gboolean implicit;
/* H.248.1 E.1 Generic Package */
static int hf_h248_pkg_generic;
diff --git a/epan/dissectors/packet-h248_q1950.c b/epan/dissectors/packet-h248_q1950.c
index ba06cee10b..d65d58721e 100644
--- a/epan/dissectors/packet-h248_q1950.c
+++ b/epan/dissectors/packet-h248_q1950.c
@@ -30,7 +30,7 @@ void proto_register_q1950(void);
#define PFNAME "h248q1950"
static int proto_q1950;
-static bool implicit = FALSE;
+static bool implicit;
/* A.3 Bearer characteristics package */
static int hf_h248_pkg_BCP;
@@ -269,7 +269,7 @@ static h248_package_t h248_pkg_GB = {
/* A.7 Bearer control tunnelling package */
-static dissector_handle_t bctp_dissector = NULL;
+static dissector_handle_t bctp_dissector;
static int hf_h248_pkg_bt;
static int hf_h248_pkg_bt_tind;
diff --git a/epan/dissectors/packet-h264.c b/epan/dissectors/packet-h264.c
index c3a02782e3..6ed2140994 100644
--- a/epan/dissectors/packet-h264.c
+++ b/epan/dissectors/packet-h264.c
@@ -561,17 +561,20 @@ dissect_h264_exp_golomb_code(proto_tree *tree, packet_info *pinfo, int hf_index,
start_offset = *start_bit_offset>>3;
- if (hf_index > 0)
+ if (hf_index > 0) {
hf_field = proto_registrar_get_nth(hf_index);
+ }
- switch (descriptor) {
- case H264_SE_V:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
- break;
+ if (hf_field) {
+ switch (descriptor) {
+ case H264_SE_V:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
+ break;
- default:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
- break;
+ default:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
+ break;
+ }
}
bit_offset = *start_bit_offset;
@@ -3793,7 +3796,7 @@ proto_register_h264(void)
},
{ &hf_h264_pacsi_tl0picidx,
{ "TL0PICIDX", "h264.pacsi.tl0picidx",
- FT_UINT8, BASE_DEC, NULL, 0xff,
+ FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
{ &hf_h264_pacsi_idrpicid,
diff --git a/epan/dissectors/packet-h265.c b/epan/dissectors/packet-h265.c
index a5f3408c9c..2d6507b320 100644
--- a/epan/dissectors/packet-h265.c
+++ b/epan/dissectors/packet-h265.c
@@ -396,12 +396,12 @@ static expert_field ei_h265_value_to_large;
static dissector_handle_t h265_handle;
-static gboolean dependent_slice_segments_enabled_flag = 0;
-static guint num_extra_slice_header_bits = 0;
-static guint log2_min_luma_coding_block_size_minus3 = 0;
-static guint log2_diff_max_min_luma_coding_block_size = 0;
-static guint pic_width_in_luma_samples = 0;
-static guint pic_height_in_luma_samples = 0;
+static gboolean dependent_slice_segments_enabled_flag;
+static guint num_extra_slice_header_bits;
+static guint log2_min_luma_coding_block_size_minus3;
+static guint log2_diff_max_min_luma_coding_block_size;
+static guint pic_width_in_luma_samples;
+static guint pic_height_in_luma_samples;
/* syntax tables in subclause 7.3 is equal to
* ue(v), me(v), se(v), or te(v).
@@ -801,18 +801,21 @@ dissect_h265_exp_golomb_code(proto_tree *tree, int hf_index, tvbuff_t *tvb, pack
start_offset = *start_bit_offset >> 3;
- if (hf_index > 0)
+ if (hf_index > 0) {
hf_field = proto_registrar_get_nth(hf_index);
+ }
- /* Allow only gint32 for se(v), guint32 for others. */
- switch (descriptor) {
- case H265_SE_V:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
- break;
+ if (hf_field) {
+ /* Allow only gint32 for se(v), guint32 for others. */
+ switch (descriptor) {
+ case H265_SE_V:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_INT32);
+ break;
- default:
- DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
- break;
+ default:
+ DISSECTOR_ASSERT_FIELD_TYPE(hf_field, FT_UINT32);
+ break;
+ }
}
bit_offset = *start_bit_offset;
@@ -1716,7 +1719,7 @@ dissect_h265_profile_tier_level(proto_tree* tree, tvbuff_t* tvb, packet_info* pi
proto_item *general_level_idc_item;
guint32 general_profile_idc, general_level_idc;
guint32 sub_layer_profile_idc[32] = { 0 };
- gboolean general_tier_flag = 0;
+ bool general_tier_flag = 0;
gboolean general_profile_compatibility_flag[32] = { 0 };
gboolean sub_layer_profile_present_flag[32] = { 0 };
gboolean sub_layer_level_present_flag[32] = { 0 };
diff --git a/epan/dissectors/packet-h282.c b/epan/dissectors/packet-h282.c
index 51eaef2f3e..87e2ee74c7 100644
--- a/epan/dissectors/packet-h282.c
+++ b/epan/dissectors/packet-h282.c
@@ -467,149 +467,149 @@ static int hf_h282_nonStandardIndication; /* NonStandardPDU */
/* Initialize the subtree pointers */
static int ett_h282;
-static gint ett_h282_Key;
-static gint ett_h282_NonStandardParameter;
-static gint ett_h282_NonStandardIdentifier;
-static gint ett_h282_DeviceClass;
-static gint ett_h282_DeviceProfile;
-static gint ett_h282_StreamProfile;
-static gint ett_h282_CapabilityID;
-static gint ett_h282_NonCollapsingCapabilities;
-static gint ett_h282_NonCollapsingCapabilities_item;
-static gint ett_h282_T_applicationData;
-static gint ett_h282_SET_SIZE_0_127_OF_DeviceProfile;
-static gint ett_h282_SET_SIZE_0_127_OF_StreamProfile;
-static gint ett_h282_StreamPlayerState;
-static gint ett_h282_DevicePresetCapability;
-static gint ett_h282_T_presetCapability;
-static gint ett_h282_T_presetCapability_item;
-static gint ett_h282_CameraFilterCapability;
-static gint ett_h282_T_filterTextLabel;
-static gint ett_h282_T_filterTextLabel_item;
-static gint ett_h282_CameraLensCapability;
-static gint ett_h282_T_accessoryTextLabel;
-static gint ett_h282_T_accessoryTextLabel_item;
-static gint ett_h282_ExternalCameraLightCapability;
-static gint ett_h282_T_lightTextLabel;
-static gint ett_h282_T_lightTextLabel_item;
-static gint ett_h282_CameraPanSpeedCapability;
-static gint ett_h282_CameraTiltSpeedCapability;
-static gint ett_h282_PanPositionCapability;
-static gint ett_h282_TiltPositionCapability;
-static gint ett_h282_PlayBackSpeedCapability;
-static gint ett_h282_T_multiplierFactors;
-static gint ett_h282_T_divisorFactors;
-static gint ett_h282_VideoInputsCapability;
-static gint ett_h282_T_availableDevices;
-static gint ett_h282_T_availableDevices_item;
-static gint ett_h282_AudioInputsCapability;
-static gint ett_h282_T_availableDevices_01;
-static gint ett_h282_T_availableDevices_item_01;
-static gint ett_h282_DeviceAttribute;
-static gint ett_h282_DeviceState;
-static gint ett_h282_DeviceDate;
-static gint ett_h282_DeviceTime;
-static gint ett_h282_DevicePreset;
-static gint ett_h282_T_mode;
-static gint ett_h282_Mode;
-static gint ett_h282_PointingToggle;
-static gint ett_h282_SelectExternalLight;
-static gint ett_h282_PanContinuous;
-static gint ett_h282_T_panDirection;
-static gint ett_h282_TiltContinuous;
-static gint ett_h282_T_tiltDirection;
-static gint ett_h282_ZoomContinuous;
-static gint ett_h282_T_zoomDirection;
-static gint ett_h282_FocusContinuous;
-static gint ett_h282_T_focusDirection;
-static gint ett_h282_PositioningMode;
-static gint ett_h282_SetZoomPosition;
-static gint ett_h282_SetFocusPosition;
-static gint ett_h282_SetIrisPosition;
-static gint ett_h282_SetPanPosition;
-static gint ett_h282_SetTiltPosition;
-static gint ett_h282_SelectDirection;
-static gint ett_h282_AutoSlideShowControl;
-static gint ett_h282_ProgramDuration;
-static gint ett_h282_PlaybackSpeed;
-static gint ett_h282_RecordForDuration;
-static gint ett_h282_DeviceInputs;
-static gint ett_h282_T_inputDevices;
-static gint ett_h282_T_inputDevices_item;
-static gint ett_h282_ControlAttribute;
-static gint ett_h282_StatusAttributeIdentifier;
-static gint ett_h282_CurrentDeviceState;
-static gint ett_h282_CurrentDeviceDate;
-static gint ett_h282_T_currentDay;
-static gint ett_h282_T_currentMonth;
-static gint ett_h282_T_currentYear;
-static gint ett_h282_CurrentDeviceTime;
-static gint ett_h282_T_currentHour;
-static gint ett_h282_T_currentMinute;
-static gint ett_h282_CurrentDevicePreset;
-static gint ett_h282_CurrentMode;
-static gint ett_h282_CurrentPointingMode;
-static gint ett_h282_CurrentCameraLensNumber;
-static gint ett_h282_CurrentCameraFilterNumber;
-static gint ett_h282_CurrentExternalLight;
-static gint ett_h282_CurrentCameraPanSpeed;
-static gint ett_h282_CurrentCameraTiltSpeed;
-static gint ett_h282_CurrentBackLight;
-static gint ett_h282_CurrentWhiteBalance;
-static gint ett_h282_CurrentZoomPosition;
-static gint ett_h282_CurrentFocusPosition;
-static gint ett_h282_CurrentIrisPosition;
-static gint ett_h282_CurrentPanPosition;
-static gint ett_h282_CurrentTiltPosition;
-static gint ett_h282_CurrentSlide;
-static gint ett_h282_CurrentAutoSlideDisplayTime;
-static gint ett_h282_CurrentSelectedProgram;
-static gint ett_h282_CurrentStreamPlayerState;
-static gint ett_h282_CurrentPlaybackSpeed;
-static gint ett_h282_CurrentAudioOutputMute;
-static gint ett_h282_StatusAttribute;
-static gint ett_h282_DeviceEventIdentifier;
-static gint ett_h282_CameraPannedToLimit;
-static gint ett_h282_CameraTiltedToLimit;
-static gint ett_h282_CameraZoomedToLimit;
-static gint ett_h282_CameraFocusedToLimit;
-static gint ett_h282_DeviceEvent;
-static gint ett_h282_SourceSelectRequest;
-static gint ett_h282_SourceSelectResponse;
-static gint ett_h282_T_result;
-static gint ett_h282_SourceEventsRequest;
-static gint ett_h282_SourceEventsResponse;
-static gint ett_h282_T_result_01;
-static gint ett_h282_SourceChangeEventIndication;
-static gint ett_h282_DeviceAttributeRequest;
-static gint ett_h282_DeviceAttributeResponse;
-static gint ett_h282_SET_OF_DeviceAttribute;
-static gint ett_h282_T_result_02;
-static gint ett_h282_DeviceLockRequest;
-static gint ett_h282_DeviceLockResponse;
-static gint ett_h282_T_result_03;
-static gint ett_h282_DeviceLockEnquireRequest;
-static gint ett_h282_DeviceLockEnquireResponse;
-static gint ett_h282_T_result_04;
-static gint ett_h282_DeviceLockTerminatedIndication;
-static gint ett_h282_DeviceControlRequest;
-static gint ett_h282_SET_SIZE_1_8_OF_ControlAttribute;
-static gint ett_h282_DeviceStatusEnquireRequest;
-static gint ett_h282_SET_SIZE_1_16_OF_StatusAttributeIdentifier;
-static gint ett_h282_DeviceStatusEnquireResponse;
-static gint ett_h282_SET_SIZE_1_16_OF_StatusAttribute;
-static gint ett_h282_T_result_05;
-static gint ett_h282_ConfigureDeviceEventsRequest;
-static gint ett_h282_SET_OF_DeviceEventIdentifier;
-static gint ett_h282_ConfigureDeviceEventsResponse;
-static gint ett_h282_T_result_06;
-static gint ett_h282_DeviceEventNotifyIndication;
-static gint ett_h282_SET_SIZE_1_8_OF_DeviceEvent;
-static gint ett_h282_NonStandardPDU;
-static gint ett_h282_RDCPDU;
-static gint ett_h282_RequestPDU;
-static gint ett_h282_ResponsePDU;
-static gint ett_h282_IndicationPDU;
+static int ett_h282_Key;
+static int ett_h282_NonStandardParameter;
+static int ett_h282_NonStandardIdentifier;
+static int ett_h282_DeviceClass;
+static int ett_h282_DeviceProfile;
+static int ett_h282_StreamProfile;
+static int ett_h282_CapabilityID;
+static int ett_h282_NonCollapsingCapabilities;
+static int ett_h282_NonCollapsingCapabilities_item;
+static int ett_h282_T_applicationData;
+static int ett_h282_SET_SIZE_0_127_OF_DeviceProfile;
+static int ett_h282_SET_SIZE_0_127_OF_StreamProfile;
+static int ett_h282_StreamPlayerState;
+static int ett_h282_DevicePresetCapability;
+static int ett_h282_T_presetCapability;
+static int ett_h282_T_presetCapability_item;
+static int ett_h282_CameraFilterCapability;
+static int ett_h282_T_filterTextLabel;
+static int ett_h282_T_filterTextLabel_item;
+static int ett_h282_CameraLensCapability;
+static int ett_h282_T_accessoryTextLabel;
+static int ett_h282_T_accessoryTextLabel_item;
+static int ett_h282_ExternalCameraLightCapability;
+static int ett_h282_T_lightTextLabel;
+static int ett_h282_T_lightTextLabel_item;
+static int ett_h282_CameraPanSpeedCapability;
+static int ett_h282_CameraTiltSpeedCapability;
+static int ett_h282_PanPositionCapability;
+static int ett_h282_TiltPositionCapability;
+static int ett_h282_PlayBackSpeedCapability;
+static int ett_h282_T_multiplierFactors;
+static int ett_h282_T_divisorFactors;
+static int ett_h282_VideoInputsCapability;
+static int ett_h282_T_availableDevices;
+static int ett_h282_T_availableDevices_item;
+static int ett_h282_AudioInputsCapability;
+static int ett_h282_T_availableDevices_01;
+static int ett_h282_T_availableDevices_item_01;
+static int ett_h282_DeviceAttribute;
+static int ett_h282_DeviceState;
+static int ett_h282_DeviceDate;
+static int ett_h282_DeviceTime;
+static int ett_h282_DevicePreset;
+static int ett_h282_T_mode;
+static int ett_h282_Mode;
+static int ett_h282_PointingToggle;
+static int ett_h282_SelectExternalLight;
+static int ett_h282_PanContinuous;
+static int ett_h282_T_panDirection;
+static int ett_h282_TiltContinuous;
+static int ett_h282_T_tiltDirection;
+static int ett_h282_ZoomContinuous;
+static int ett_h282_T_zoomDirection;
+static int ett_h282_FocusContinuous;
+static int ett_h282_T_focusDirection;
+static int ett_h282_PositioningMode;
+static int ett_h282_SetZoomPosition;
+static int ett_h282_SetFocusPosition;
+static int ett_h282_SetIrisPosition;
+static int ett_h282_SetPanPosition;
+static int ett_h282_SetTiltPosition;
+static int ett_h282_SelectDirection;
+static int ett_h282_AutoSlideShowControl;
+static int ett_h282_ProgramDuration;
+static int ett_h282_PlaybackSpeed;
+static int ett_h282_RecordForDuration;
+static int ett_h282_DeviceInputs;
+static int ett_h282_T_inputDevices;
+static int ett_h282_T_inputDevices_item;
+static int ett_h282_ControlAttribute;
+static int ett_h282_StatusAttributeIdentifier;
+static int ett_h282_CurrentDeviceState;
+static int ett_h282_CurrentDeviceDate;
+static int ett_h282_T_currentDay;
+static int ett_h282_T_currentMonth;
+static int ett_h282_T_currentYear;
+static int ett_h282_CurrentDeviceTime;
+static int ett_h282_T_currentHour;
+static int ett_h282_T_currentMinute;
+static int ett_h282_CurrentDevicePreset;
+static int ett_h282_CurrentMode;
+static int ett_h282_CurrentPointingMode;
+static int ett_h282_CurrentCameraLensNumber;
+static int ett_h282_CurrentCameraFilterNumber;
+static int ett_h282_CurrentExternalLight;
+static int ett_h282_CurrentCameraPanSpeed;
+static int ett_h282_CurrentCameraTiltSpeed;
+static int ett_h282_CurrentBackLight;
+static int ett_h282_CurrentWhiteBalance;
+static int ett_h282_CurrentZoomPosition;
+static int ett_h282_CurrentFocusPosition;
+static int ett_h282_CurrentIrisPosition;
+static int ett_h282_CurrentPanPosition;
+static int ett_h282_CurrentTiltPosition;
+static int ett_h282_CurrentSlide;
+static int ett_h282_CurrentAutoSlideDisplayTime;
+static int ett_h282_CurrentSelectedProgram;
+static int ett_h282_CurrentStreamPlayerState;
+static int ett_h282_CurrentPlaybackSpeed;
+static int ett_h282_CurrentAudioOutputMute;
+static int ett_h282_StatusAttribute;
+static int ett_h282_DeviceEventIdentifier;
+static int ett_h282_CameraPannedToLimit;
+static int ett_h282_CameraTiltedToLimit;
+static int ett_h282_CameraZoomedToLimit;
+static int ett_h282_CameraFocusedToLimit;
+static int ett_h282_DeviceEvent;
+static int ett_h282_SourceSelectRequest;
+static int ett_h282_SourceSelectResponse;
+static int ett_h282_T_result;
+static int ett_h282_SourceEventsRequest;
+static int ett_h282_SourceEventsResponse;
+static int ett_h282_T_result_01;
+static int ett_h282_SourceChangeEventIndication;
+static int ett_h282_DeviceAttributeRequest;
+static int ett_h282_DeviceAttributeResponse;
+static int ett_h282_SET_OF_DeviceAttribute;
+static int ett_h282_T_result_02;
+static int ett_h282_DeviceLockRequest;
+static int ett_h282_DeviceLockResponse;
+static int ett_h282_T_result_03;
+static int ett_h282_DeviceLockEnquireRequest;
+static int ett_h282_DeviceLockEnquireResponse;
+static int ett_h282_T_result_04;
+static int ett_h282_DeviceLockTerminatedIndication;
+static int ett_h282_DeviceControlRequest;
+static int ett_h282_SET_SIZE_1_8_OF_ControlAttribute;
+static int ett_h282_DeviceStatusEnquireRequest;
+static int ett_h282_SET_SIZE_1_16_OF_StatusAttributeIdentifier;
+static int ett_h282_DeviceStatusEnquireResponse;
+static int ett_h282_SET_SIZE_1_16_OF_StatusAttribute;
+static int ett_h282_T_result_05;
+static int ett_h282_ConfigureDeviceEventsRequest;
+static int ett_h282_SET_OF_DeviceEventIdentifier;
+static int ett_h282_ConfigureDeviceEventsResponse;
+static int ett_h282_T_result_06;
+static int ett_h282_DeviceEventNotifyIndication;
+static int ett_h282_SET_SIZE_1_8_OF_DeviceEvent;
+static int ett_h282_NonStandardPDU;
+static int ett_h282_RDCPDU;
+static int ett_h282_RequestPDU;
+static int ett_h282_ResponsePDU;
+static int ett_h282_IndicationPDU;
/* Dissectors */
diff --git a/epan/dissectors/packet-h283.c b/epan/dissectors/packet-h283.c
index 0593d84b6a..634f1405f9 100644
--- a/epan/dissectors/packet-h283.c
+++ b/epan/dissectors/packet-h283.c
@@ -66,20 +66,20 @@ static int hf_h283_deviceChange; /* NULL */
/* Initialize the subtree pointers */
static int ett_h283;
-static gint ett_h283_H221NonStandard;
-static gint ett_h283_NonStandardIdentifier;
-static gint ett_h283_NonStandardParameter;
-static gint ett_h283_LCTPDU;
-static gint ett_h283_T_pduType;
-static gint ett_h283_SEQUENCE_OF_NonStandardParameter;
-static gint ett_h283_MTAddress;
-static gint ett_h283_RDCData;
-static gint ett_h283_T_dataType;
-static gint ett_h283_LCTMessage;
-static gint ett_h283_LCTRequest;
-static gint ett_h283_LCTResponse;
-static gint ett_h283_LCTIndication;
-static gint ett_h283_NonStandardMessage;
+static int ett_h283_H221NonStandard;
+static int ett_h283_NonStandardIdentifier;
+static int ett_h283_NonStandardParameter;
+static int ett_h283_LCTPDU;
+static int ett_h283_T_pduType;
+static int ett_h283_SEQUENCE_OF_NonStandardParameter;
+static int ett_h283_MTAddress;
+static int ett_h283_RDCData;
+static int ett_h283_T_dataType;
+static int ett_h283_LCTMessage;
+static int ett_h283_LCTRequest;
+static int ett_h283_LCTResponse;
+static int ett_h283_LCTIndication;
+static int ett_h283_NonStandardMessage;
/* Subdissectors */
static dissector_handle_t rdc_pdu_handle;
diff --git a/epan/dissectors/packet-h323.c b/epan/dissectors/packet-h323.c
index a4ebb9777c..925abe184d 100644
--- a/epan/dissectors/packet-h323.c
+++ b/epan/dissectors/packet-h323.c
@@ -109,19 +109,19 @@ static int hf_h323_timeToLive; /* TimeToLive */
static int hf_h323_includeFastStart; /* NULL */
/* Initialize the subtree pointers */
-static gint ett_h323_RasTunnelledSignallingMessage;
-static gint ett_h323_T_messageContent;
-static gint ett_h323_RobustnessData;
-static gint ett_h323_T_robustnessData;
-static gint ett_h323_BackupCallSignalAddresses;
-static gint ett_h323_BackupCallSignalAddresses_item;
-static gint ett_h323_Rrq_RD;
-static gint ett_h323_Rcf_RD;
-static gint ett_h323_Setup_RD;
-static gint ett_h323_Connect_RD;
-static gint ett_h323_Status_RD;
-static gint ett_h323_T_fastStart;
-static gint ett_h323_StatusInquiry_RD;
+static int ett_h323_RasTunnelledSignallingMessage;
+static int ett_h323_T_messageContent;
+static int ett_h323_RobustnessData;
+static int ett_h323_T_robustnessData;
+static int ett_h323_BackupCallSignalAddresses;
+static int ett_h323_BackupCallSignalAddresses_item;
+static int ett_h323_Rrq_RD;
+static int ett_h323_Rcf_RD;
+static int ett_h323_Setup_RD;
+static int ett_h323_Connect_RD;
+static int ett_h323_Status_RD;
+static int ett_h323_T_fastStart;
+static int ett_h323_StatusInquiry_RD;
diff --git a/epan/dissectors/packet-h450-ros.c b/epan/dissectors/packet-h450-ros.c
index 0b506da19d..710e349505 100644
--- a/epan/dissectors/packet-h450-ros.c
+++ b/epan/dissectors/packet-h450-ros.c
@@ -55,21 +55,21 @@ static int hf_h450_ros_returnResultProblem; /* ReturnResultProblem */
static int hf_h450_ros_returnErrorProblem; /* ReturnErrorProblem */
/* Initialize the subtree pointers */
-static gint ett_h450_ros_Code;
-static gint ett_h450_ros_ROS;
-static gint ett_h450_ros_Invoke;
-static gint ett_h450_ros_ReturnResult;
-static gint ett_h450_ros_T_result;
-static gint ett_h450_ros_ReturnError;
-static gint ett_h450_ros_Reject;
-static gint ett_h450_ros_T_problem;
+static int ett_h450_ros_Code;
+static int ett_h450_ros_ROS;
+static int ett_h450_ros_Invoke;
+static int ett_h450_ros_ReturnResult;
+static int ett_h450_ros_T_result;
+static int ett_h450_ros_ReturnError;
+static int ett_h450_ros_Reject;
+static int ett_h450_ros_T_problem;
static expert_field ei_ros_undecoded;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t data_handle = NULL;
+static dissector_handle_t data_handle;
/* Global variables */
static gint32 problem_val;
diff --git a/epan/dissectors/packet-h450.c b/epan/dissectors/packet-h450.c
index 8f79843cb4..fb5b731c42 100644
--- a/epan/dissectors/packet-h450.c
+++ b/epan/dissectors/packet-h450.c
@@ -435,173 +435,173 @@ static int hf_h450_12_ssCISilentMonitorPermitted; /* NULL */
/* --- Modules H4501-Supplementary-ServiceAPDU-Structure Addressing-Data-Elements H225-generic-parameters-definition Manufacturer-specific-service-extension-definition H4501-General-Error-List --- --- --- */
-static gint ett_h450_H4501SupplementaryService;
-static gint ett_h450_NetworkFacilityExtension;
-static gint ett_h450_EntityType;
-static gint ett_h450_InterpretationApdu;
-static gint ett_h450_ServiceApdus;
-static gint ett_h450_T_rosApdus;
-static gint ett_h450_EndpointAddress;
-static gint ett_h450_SEQUENCE_OF_AliasAddress;
-static gint ett_h450_PartySubaddress;
-static gint ett_h450_UserSpecifiedSubaddress;
-static gint ett_h450_Extension;
+static int ett_h450_H4501SupplementaryService;
+static int ett_h450_NetworkFacilityExtension;
+static int ett_h450_EntityType;
+static int ett_h450_InterpretationApdu;
+static int ett_h450_ServiceApdus;
+static int ett_h450_T_rosApdus;
+static int ett_h450_EndpointAddress;
+static int ett_h450_SEQUENCE_OF_AliasAddress;
+static int ett_h450_PartySubaddress;
+static int ett_h450_UserSpecifiedSubaddress;
+static int ett_h450_Extension;
/* --- Module Call-Transfer-Operations --- --- --- */
-static gint ett_h450_2_DummyArg;
-static gint ett_h450_2_DummyRes;
-static gint ett_h450_2_CTInitiateArg;
-static gint ett_h450_2_T_cTInitiateArg_argumentExtension;
-static gint ett_h450_2_CTSetupArg;
-static gint ett_h450_2_T_cTSetupArg_argumentExtension;
-static gint ett_h450_2_CTIdentifyRes;
-static gint ett_h450_2_T_resultExtension;
-static gint ett_h450_2_CTUpdateArg;
-static gint ett_h450_2_T_cTUpdateArg_argumentExtension;
-static gint ett_h450_2_SubaddressTransferArg;
-static gint ett_h450_2_T_subaddressTransferArg_argumentExtension;
-static gint ett_h450_2_CTCompleteArg;
-static gint ett_h450_2_T_cTCompleteArg_argumentExtension;
-static gint ett_h450_2_CTActiveArg;
-static gint ett_h450_2_T_cTActiveArg_argumentExtension;
-static gint ett_h450_2_ExtensionSeq;
-static gint ett_h450_2_PAR_unspecified;
+static int ett_h450_2_DummyArg;
+static int ett_h450_2_DummyRes;
+static int ett_h450_2_CTInitiateArg;
+static int ett_h450_2_T_cTInitiateArg_argumentExtension;
+static int ett_h450_2_CTSetupArg;
+static int ett_h450_2_T_cTSetupArg_argumentExtension;
+static int ett_h450_2_CTIdentifyRes;
+static int ett_h450_2_T_resultExtension;
+static int ett_h450_2_CTUpdateArg;
+static int ett_h450_2_T_cTUpdateArg_argumentExtension;
+static int ett_h450_2_SubaddressTransferArg;
+static int ett_h450_2_T_subaddressTransferArg_argumentExtension;
+static int ett_h450_2_CTCompleteArg;
+static int ett_h450_2_T_cTCompleteArg_argumentExtension;
+static int ett_h450_2_CTActiveArg;
+static int ett_h450_2_T_cTActiveArg_argumentExtension;
+static int ett_h450_2_ExtensionSeq;
+static int ett_h450_2_PAR_unspecified;
/* --- Module Call-Diversion-Operations --- --- --- */
-static gint ett_h450_3_ARG_activateDiversionQ;
-static gint ett_h450_3_ActivateDiversionQArg_extension;
-static gint ett_h450_3_RES_activateDiversionQ;
-static gint ett_h450_3_ARG_deactivateDiversionQ;
-static gint ett_h450_3_DeactivateDiversionQArg_extension;
-static gint ett_h450_3_RES_deactivateDiversionQ;
-static gint ett_h450_3_ARG_interrogateDiversionQ;
-static gint ett_h450_3_InterrogateDiversionQ_extension;
-static gint ett_h450_3_ARG_checkRestriction;
-static gint ett_h450_3_CheckRestrictionArg_extension;
-static gint ett_h450_3_RES_checkRestriction;
-static gint ett_h450_3_ARG_callRerouting;
-static gint ett_h450_3_CallReroutingArg_extension;
-static gint ett_h450_3_RES_callRerouting;
-static gint ett_h450_3_ARG_divertingLegInformation1;
-static gint ett_h450_3_DivertingLegInformation1Arg_extension;
-static gint ett_h450_3_ARG_divertingLegInformation2;
-static gint ett_h450_3_DivertingLegInformation2Arg_extension;
-static gint ett_h450_3_ARG_divertingLegInformation3;
-static gint ett_h450_3_DivertingLegInformation3Arg_extension;
-static gint ett_h450_3_ARG_divertingLegInformation4;
-static gint ett_h450_3_DivertingLegInformation4Arg_extension;
-static gint ett_h450_3_ARG_cfnrDivertedLegFailed;
-static gint ett_h450_3_IntResultList;
-static gint ett_h450_3_IntResult;
-static gint ett_h450_3_IntResult_extension;
-static gint ett_h450_3_PAR_unspecified;
-static gint ett_h450_3_ExtensionSeq;
+static int ett_h450_3_ARG_activateDiversionQ;
+static int ett_h450_3_ActivateDiversionQArg_extension;
+static int ett_h450_3_RES_activateDiversionQ;
+static int ett_h450_3_ARG_deactivateDiversionQ;
+static int ett_h450_3_DeactivateDiversionQArg_extension;
+static int ett_h450_3_RES_deactivateDiversionQ;
+static int ett_h450_3_ARG_interrogateDiversionQ;
+static int ett_h450_3_InterrogateDiversionQ_extension;
+static int ett_h450_3_ARG_checkRestriction;
+static int ett_h450_3_CheckRestrictionArg_extension;
+static int ett_h450_3_RES_checkRestriction;
+static int ett_h450_3_ARG_callRerouting;
+static int ett_h450_3_CallReroutingArg_extension;
+static int ett_h450_3_RES_callRerouting;
+static int ett_h450_3_ARG_divertingLegInformation1;
+static int ett_h450_3_DivertingLegInformation1Arg_extension;
+static int ett_h450_3_ARG_divertingLegInformation2;
+static int ett_h450_3_DivertingLegInformation2Arg_extension;
+static int ett_h450_3_ARG_divertingLegInformation3;
+static int ett_h450_3_DivertingLegInformation3Arg_extension;
+static int ett_h450_3_ARG_divertingLegInformation4;
+static int ett_h450_3_DivertingLegInformation4Arg_extension;
+static int ett_h450_3_ARG_cfnrDivertedLegFailed;
+static int ett_h450_3_IntResultList;
+static int ett_h450_3_IntResult;
+static int ett_h450_3_IntResult_extension;
+static int ett_h450_3_PAR_unspecified;
+static int ett_h450_3_ExtensionSeq;
/* --- Module Call-Hold-Operations --- --- --- */
-static gint ett_h450_4_HoldNotificArg;
-static gint ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_4_RetrieveNotificArg;
-static gint ett_h450_4_RemoteHoldArg;
-static gint ett_h450_4_RemoteHoldRes;
-static gint ett_h450_4_RemoteRetrieveArg;
-static gint ett_h450_4_RemoteRetrieveRes;
-static gint ett_h450_4_MixedExtension;
-static gint ett_h450_4_PAR_undefined;
+static int ett_h450_4_HoldNotificArg;
+static int ett_h450_4_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_4_RetrieveNotificArg;
+static int ett_h450_4_RemoteHoldArg;
+static int ett_h450_4_RemoteHoldRes;
+static int ett_h450_4_RemoteRetrieveArg;
+static int ett_h450_4_RemoteRetrieveRes;
+static int ett_h450_4_MixedExtension;
+static int ett_h450_4_PAR_undefined;
/* --- Module Call-Park-Pickup-Operations --- --- --- */
-static gint ett_h450_5_CpRequestArg;
-static gint ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_5_CpRequestRes;
-static gint ett_h450_5_CpSetupArg;
-static gint ett_h450_5_CpSetupRes;
-static gint ett_h450_5_GroupIndicationOnArg;
-static gint ett_h450_5_GroupIndicationOnRes;
-static gint ett_h450_5_GroupIndicationOffArg;
-static gint ett_h450_5_GroupIndicationOffRes;
-static gint ett_h450_5_PickrequArg;
-static gint ett_h450_5_PickrequRes;
-static gint ett_h450_5_PickupArg;
-static gint ett_h450_5_PickupRes;
-static gint ett_h450_5_PickExeArg;
-static gint ett_h450_5_PickExeRes;
-static gint ett_h450_5_CpNotifyArg;
-static gint ett_h450_5_CpickupNotifyArg;
-static gint ett_h450_5_PAR_undefined;
+static int ett_h450_5_CpRequestArg;
+static int ett_h450_5_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_5_CpRequestRes;
+static int ett_h450_5_CpSetupArg;
+static int ett_h450_5_CpSetupRes;
+static int ett_h450_5_GroupIndicationOnArg;
+static int ett_h450_5_GroupIndicationOnRes;
+static int ett_h450_5_GroupIndicationOffArg;
+static int ett_h450_5_GroupIndicationOffRes;
+static int ett_h450_5_PickrequArg;
+static int ett_h450_5_PickrequRes;
+static int ett_h450_5_PickupArg;
+static int ett_h450_5_PickupRes;
+static int ett_h450_5_PickExeArg;
+static int ett_h450_5_PickExeRes;
+static int ett_h450_5_CpNotifyArg;
+static int ett_h450_5_CpickupNotifyArg;
+static int ett_h450_5_PAR_undefined;
/* --- Module Call-Waiting-Operations --- --- --- */
-static gint ett_h450_6_CallWaitingArg;
-static gint ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_6_CallWaitingArg;
+static int ett_h450_6_SEQUENCE_SIZE_0_255_OF_MixedExtension;
/* --- Module Message-Waiting-Indication-Operations --- --- --- */
-static gint ett_h450_7_MWIActivateArg;
-static gint ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_7_DummyRes;
-static gint ett_h450_7_MWIDeactivateArg;
-static gint ett_h450_7_MWIInterrogateArg;
-static gint ett_h450_7_MWIInterrogateRes;
-static gint ett_h450_7_MWIInterrogateResElt;
-static gint ett_h450_7_MsgCentreId;
-static gint ett_h450_7_PAR_undefined;
+static int ett_h450_7_MWIActivateArg;
+static int ett_h450_7_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_7_DummyRes;
+static int ett_h450_7_MWIDeactivateArg;
+static int ett_h450_7_MWIInterrogateArg;
+static int ett_h450_7_MWIInterrogateRes;
+static int ett_h450_7_MWIInterrogateResElt;
+static int ett_h450_7_MsgCentreId;
+static int ett_h450_7_PAR_undefined;
/* --- Module Name-Operations --- --- --- */
-static gint ett_h450_8_ARG_callingName;
-static gint ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_8_ARG_alertingName;
-static gint ett_h450_8_ARG_connectedName;
-static gint ett_h450_8_ARG_busyName;
-static gint ett_h450_8_Name;
-static gint ett_h450_8_NamePresentationAllowed;
-static gint ett_h450_8_NamePresentationRestricted;
+static int ett_h450_8_ARG_callingName;
+static int ett_h450_8_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_8_ARG_alertingName;
+static int ett_h450_8_ARG_connectedName;
+static int ett_h450_8_ARG_busyName;
+static int ett_h450_8_Name;
+static int ett_h450_8_NamePresentationAllowed;
+static int ett_h450_8_NamePresentationRestricted;
/* --- Module Call-Completion-Operations --- --- --- */
-static gint ett_h450_9_CcRequestArg;
-static gint ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_9_CcRequestRes;
-static gint ett_h450_9_CcArg;
-static gint ett_h450_9_CcShortArg;
-static gint ett_h450_9_CcLongArg;
+static int ett_h450_9_CcRequestArg;
+static int ett_h450_9_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_9_CcRequestRes;
+static int ett_h450_9_CcArg;
+static int ett_h450_9_CcShortArg;
+static int ett_h450_9_CcLongArg;
/* --- Module Call-Offer-Operations --- --- --- */
-static gint ett_h450_10_CoReqOptArg;
-static gint ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_10_RUAlertOptArg;
-static gint ett_h450_10_CfbOvrOptArg;
+static int ett_h450_10_CoReqOptArg;
+static int ett_h450_10_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_10_RUAlertOptArg;
+static int ett_h450_10_CfbOvrOptArg;
/* --- Module Call-Intrusion-Operations --- --- --- */
-static gint ett_h450_11_CIRequestArg;
-static gint ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_11_CIRequestRes;
-static gint ett_h450_11_CIGetCIPLOptArg;
-static gint ett_h450_11_CIGetCIPLRes;
-static gint ett_h450_11_CIIsOptArg;
-static gint ett_h450_11_CIIsOptRes;
-static gint ett_h450_11_CIFrcRelArg;
-static gint ett_h450_11_CIFrcRelOptRes;
-static gint ett_h450_11_CIWobOptArg;
-static gint ett_h450_11_CIWobOptRes;
-static gint ett_h450_11_CISilentArg;
-static gint ett_h450_11_CISilentOptRes;
-static gint ett_h450_11_CINotificationArg;
-static gint ett_h450_11_CIStatusInformation;
+static int ett_h450_11_CIRequestArg;
+static int ett_h450_11_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_11_CIRequestRes;
+static int ett_h450_11_CIGetCIPLOptArg;
+static int ett_h450_11_CIGetCIPLRes;
+static int ett_h450_11_CIIsOptArg;
+static int ett_h450_11_CIIsOptRes;
+static int ett_h450_11_CIFrcRelArg;
+static int ett_h450_11_CIFrcRelOptRes;
+static int ett_h450_11_CIWobOptArg;
+static int ett_h450_11_CIWobOptRes;
+static int ett_h450_11_CISilentArg;
+static int ett_h450_11_CISilentOptRes;
+static int ett_h450_11_CINotificationArg;
+static int ett_h450_11_CIStatusInformation;
/* --- Module Common-Information-Operations --- --- --- */
-static gint ett_h450_12_CmnArg;
-static gint ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension;
-static gint ett_h450_12_DummyArg;
-static gint ett_h450_12_FeatureList;
-static gint ett_h450_12_FeatureValues;
-static gint ett_h450_12_FeatureControl;
+static int ett_h450_12_CmnArg;
+static int ett_h450_12_SEQUENCE_SIZE_0_255_OF_MixedExtension;
+static int ett_h450_12_DummyArg;
+static int ett_h450_12_FeatureList;
+static int ett_h450_12_FeatureValues;
+static int ett_h450_12_FeatureControl;
static expert_field ei_h450_unsupported_arg_type;
static expert_field ei_h450_unsupported_result_type;
diff --git a/epan/dissectors/packet-h460.c b/epan/dissectors/packet-h460.c
index c014365197..8ad61fa46a 100644
--- a/epan/dissectors/packet-h460.c
+++ b/epan/dissectors/packet-h460.c
@@ -239,99 +239,99 @@ static int hf_h460_21_sourceAddress; /* UnicastAddress */
/* --- Module NUMBER-PORTABILITY --- --- --- */
-static gint ett_h460_2_NumberPortabilityInfo;
-static gint ett_h460_2_T_nUMBERPORTABILITYDATA;
-static gint ett_h460_2_NumberPortabilityRejectReason;
-static gint ett_h460_2_PortabilityAddress;
-static gint ett_h460_2_NumberPortabilityTypeOfNumber;
-static gint ett_h460_2_PortabilityTypeOfNumber;
-static gint ett_h460_2_RegionalParameters;
+static int ett_h460_2_NumberPortabilityInfo;
+static int ett_h460_2_T_nUMBERPORTABILITYDATA;
+static int ett_h460_2_NumberPortabilityRejectReason;
+static int ett_h460_2_PortabilityAddress;
+static int ett_h460_2_NumberPortabilityTypeOfNumber;
+static int ett_h460_2_PortabilityTypeOfNumber;
+static int ett_h460_2_RegionalParameters;
/* --- Module CIRCUIT-STATUS-MAP --- --- --- */
-static gint ett_h460_3_CircuitStatus;
-static gint ett_h460_3_SEQUENCE_OF_CircuitStatusMap;
-static gint ett_h460_3_CircuitStatusMap;
-static gint ett_h460_3_CircuitStatusType;
+static int ett_h460_3_CircuitStatus;
+static int ett_h460_3_SEQUENCE_OF_CircuitStatusMap;
+static int ett_h460_3_CircuitStatusMap;
+static int ett_h460_3_CircuitStatusType;
/* --- Module CALL-PRIORITY --- --- --- */
-static gint ett_h460_4_CallPriorityInfo;
-static gint ett_h460_4_T_priorityValue;
-static gint ett_h460_4_SEQUENCE_OF_ClearToken;
-static gint ett_h460_4_SEQUENCE_OF_CryptoToken;
-static gint ett_h460_4_T_rejectReason;
-static gint ett_h460_4_CountryInternationalNetworkCallOriginationIdentification;
-static gint ett_h460_4_T_numberingPlan;
-static gint ett_h460_4_T_x121;
-static gint ett_h460_4_T_e164;
+static int ett_h460_4_CallPriorityInfo;
+static int ett_h460_4_T_priorityValue;
+static int ett_h460_4_SEQUENCE_OF_ClearToken;
+static int ett_h460_4_SEQUENCE_OF_CryptoToken;
+static int ett_h460_4_T_rejectReason;
+static int ett_h460_4_CountryInternationalNetworkCallOriginationIdentification;
+static int ett_h460_4_T_numberingPlan;
+static int ett_h460_4_T_x121;
+static int ett_h460_4_T_e164;
/* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
-static gint ett_h460_9_Extension;
-static gint ett_h460_9_RTCPMeasures;
-static gint ett_h460_9_T_mediaSenderMeasures;
-static gint ett_h460_9_T_mediaReceiverMeasures;
-static gint ett_h460_9_SEQUENCE_OF_Extension;
-static gint ett_h460_9_PerCallQoSReport;
-static gint ett_h460_9_SEQUENCE_OF_RTCPMeasures;
-static gint ett_h460_9_QosMonitoringReportData;
-static gint ett_h460_9_PeriodicQoSMonReport;
-static gint ett_h460_9_SEQUENCE_OF_PerCallQoSReport;
-static gint ett_h460_9_FinalQosMonReport;
-static gint ett_h460_9_InterGKQosMonReport;
-static gint ett_h460_9_ExtendedRTPMetrics;
-static gint ett_h460_9_BurstMetrics;
-static gint ett_h460_9_PLCtypes;
-static gint ett_h460_9_JitterBufferParms;
-static gint ett_h460_9_JitterBufferTypes;
+static int ett_h460_9_Extension;
+static int ett_h460_9_RTCPMeasures;
+static int ett_h460_9_T_mediaSenderMeasures;
+static int ett_h460_9_T_mediaReceiverMeasures;
+static int ett_h460_9_SEQUENCE_OF_Extension;
+static int ett_h460_9_PerCallQoSReport;
+static int ett_h460_9_SEQUENCE_OF_RTCPMeasures;
+static int ett_h460_9_QosMonitoringReportData;
+static int ett_h460_9_PeriodicQoSMonReport;
+static int ett_h460_9_SEQUENCE_OF_PerCallQoSReport;
+static int ett_h460_9_FinalQosMonReport;
+static int ett_h460_9_InterGKQosMonReport;
+static int ett_h460_9_ExtendedRTPMetrics;
+static int ett_h460_9_BurstMetrics;
+static int ett_h460_9_PLCtypes;
+static int ett_h460_9_JitterBufferParms;
+static int ett_h460_9_JitterBufferTypes;
/* --- Module CALL-PARTY-CATEGORY --- --- --- */
-static gint ett_h460_10_CallPartyCategoryInfo;
+static int ett_h460_10_CallPartyCategoryInfo;
/* --- Module MLPP --- --- --- */
-static gint ett_h460_14_MLPPInfo;
-static gint ett_h460_14_MlppNotification;
-static gint ett_h460_14_AlternateParty;
-static gint ett_h460_14_ReleaseCall;
+static int ett_h460_14_MLPPInfo;
+static int ett_h460_14_MlppNotification;
+static int ett_h460_14_AlternateParty;
+static int ett_h460_14_ReleaseCall;
/* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
-static gint ett_h460_15_SignallingChannelData;
-static gint ett_h460_15_T_signallingChannelData;
-static gint ett_h460_15_ChannelSuspendRequest;
-static gint ett_h460_15_SEQUENCE_OF_TransportAddress;
-static gint ett_h460_15_ChannelSuspendResponse;
-static gint ett_h460_15_ChannelSuspendConfirm;
-static gint ett_h460_15_ChannelSuspendCancel;
-static gint ett_h460_15_ChannelResumeRequest;
-static gint ett_h460_15_ChannelResumeResponse;
+static int ett_h460_15_SignallingChannelData;
+static int ett_h460_15_T_signallingChannelData;
+static int ett_h460_15_ChannelSuspendRequest;
+static int ett_h460_15_SEQUENCE_OF_TransportAddress;
+static int ett_h460_15_ChannelSuspendResponse;
+static int ett_h460_15_ChannelSuspendConfirm;
+static int ett_h460_15_ChannelSuspendCancel;
+static int ett_h460_15_ChannelResumeRequest;
+static int ett_h460_15_ChannelResumeResponse;
/* --- Module SIGNALLING-TRAVERSAL --- --- --- */
-static gint ett_h460_18_IncomingCallIndication;
-static gint ett_h460_18_LRQKeepAliveData;
+static int ett_h460_18_IncomingCallIndication;
+static int ett_h460_18_LRQKeepAliveData;
/* --- Module MEDIA-TRAVERSAL --- --- --- */
-static gint ett_h460_19_TraversalParameters;
+static int ett_h460_19_TraversalParameters;
/* --- Module MESSAGE-BROADCAST --- --- --- */
-static gint ett_h460_21_CapabilityAdvertisement;
-static gint ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities;
-static gint ett_h460_21_ReceiveCapabilities;
-static gint ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability;
-static gint ett_h460_21_TransmitCapabilities;
+static int ett_h460_21_CapabilityAdvertisement;
+static int ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities;
+static int ett_h460_21_ReceiveCapabilities;
+static int ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability;
+static int ett_h460_21_TransmitCapabilities;
/* Main dissector handle */
static dissector_handle_t h460_name_handle;
/* Subdissectors */
-static dissector_handle_t q931_ie_handle = NULL;
-static dissector_handle_t h225_ras_handle = NULL;
+static dissector_handle_t q931_ie_handle;
+static dissector_handle_t h225_ras_handle;
/* --- Module NUMBER-PORTABILITY --- --- --- */
diff --git a/epan/dissectors/packet-h501.c b/epan/dissectors/packet-h501.c
index 12cde1fac5..98a49068a4 100644
--- a/epan/dissectors/packet-h501.c
+++ b/epan/dissectors/packet-h501.c
@@ -289,105 +289,105 @@ static int hf_h501_causeIE; /* INTEGER_1_65535 */
/* Initialize the subtree pointers */
static int ett_h501;
-static gint ett_h501_Message;
-static gint ett_h501_MessageBody;
-static gint ett_h501_MessageCommonInfo;
-static gint ett_h501_SEQUENCE_OF_TransportAddress;
-static gint ett_h501_SEQUENCE_OF_ClearToken;
-static gint ett_h501_SEQUENCE_OF_CryptoH323Token;
-static gint ett_h501_SEQUENCE_OF_NonStandardParameter;
-static gint ett_h501_SEQUENCE_OF_GenericData;
-static gint ett_h501_ServiceRequest;
-static gint ett_h501_SEQUENCE_OF_SecurityMode;
-static gint ett_h501_SecurityMode;
-static gint ett_h501_T_algorithmOIDs;
-static gint ett_h501_ServiceConfirmation;
-static gint ett_h501_ServiceRejection;
-static gint ett_h501_ServiceRejectionReason;
-static gint ett_h501_ServiceRelease;
-static gint ett_h501_ServiceReleaseReason;
-static gint ett_h501_DescriptorRequest;
-static gint ett_h501_SEQUENCE_OF_DescriptorID;
-static gint ett_h501_DescriptorConfirmation;
-static gint ett_h501_SEQUENCE_OF_Descriptor;
-static gint ett_h501_DescriptorRejection;
-static gint ett_h501_DescriptorRejectionReason;
-static gint ett_h501_DescriptorIDRequest;
-static gint ett_h501_DescriptorIDConfirmation;
-static gint ett_h501_SEQUENCE_OF_DescriptorInfo;
-static gint ett_h501_DescriptorIDRejection;
-static gint ett_h501_DescriptorIDRejectionReason;
-static gint ett_h501_DescriptorUpdate;
-static gint ett_h501_SEQUENCE_OF_UpdateInformation;
-static gint ett_h501_UpdateInformation;
-static gint ett_h501_T_descriptorInfo;
-static gint ett_h501_T_updateType;
-static gint ett_h501_DescriptorUpdateAck;
-static gint ett_h501_AccessRequest;
-static gint ett_h501_SEQUENCE_OF_SupportedProtocols;
-static gint ett_h501_AccessConfirmation;
-static gint ett_h501_SEQUENCE_OF_AddressTemplate;
-static gint ett_h501_SEQUENCE_OF_ServiceControlSession;
-static gint ett_h501_AccessRejection;
-static gint ett_h501_AccessRejectionReason;
-static gint ett_h501_UsageRequest;
-static gint ett_h501_UsageConfirmation;
-static gint ett_h501_UsageRejection;
-static gint ett_h501_UsageIndication;
-static gint ett_h501_SEQUENCE_OF_AccessToken;
-static gint ett_h501_SEQUENCE_OF_UsageField;
-static gint ett_h501_UsageField;
-static gint ett_h501_UsageRejectReason;
-static gint ett_h501_UsageIndicationConfirmation;
-static gint ett_h501_UsageIndicationRejection;
-static gint ett_h501_UsageIndicationRejectionReason;
-static gint ett_h501_ValidationRequest;
-static gint ett_h501_ValidationConfirmation;
-static gint ett_h501_ValidationRejection;
-static gint ett_h501_ValidationRejectionReason;
-static gint ett_h501_RequestInProgress;
-static gint ett_h501_NonStandardRequest;
-static gint ett_h501_NonStandardConfirmation;
-static gint ett_h501_NonStandardRejection;
-static gint ett_h501_NonStandardRejectionReason;
-static gint ett_h501_UnknownMessageResponse;
-static gint ett_h501_UnknownMessageReason;
-static gint ett_h501_AuthenticationRequest;
-static gint ett_h501_AuthenticationConfirmation;
-static gint ett_h501_AuthenticationRejection;
-static gint ett_h501_AuthenticationRejectionReason;
-static gint ett_h501_AddressTemplate;
-static gint ett_h501_SEQUENCE_OF_Pattern;
-static gint ett_h501_SEQUENCE_OF_RouteInformation;
-static gint ett_h501_Pattern;
-static gint ett_h501_T_range;
-static gint ett_h501_RouteInformation;
-static gint ett_h501_T_messageType;
-static gint ett_h501_SEQUENCE_OF_PriceInfoSpec;
-static gint ett_h501_SEQUENCE_OF_ContactInformation;
-static gint ett_h501_SEQUENCE_OF_CircuitIdentifier;
-static gint ett_h501_ContactInformation;
-static gint ett_h501_PriceInfoSpec;
-static gint ett_h501_SEQUENCE_OF_PriceElement;
-static gint ett_h501_PriceElement;
-static gint ett_h501_T_units;
-static gint ett_h501_Descriptor;
-static gint ett_h501_DescriptorInfo;
-static gint ett_h501_AlternatePEInfo;
-static gint ett_h501_SEQUENCE_OF_AlternatePE;
-static gint ett_h501_AlternatePE;
-static gint ett_h501_AccessToken;
-static gint ett_h501_CallInformation;
-static gint ett_h501_UsageCallStatus;
-static gint ett_h501_UserInformation;
-static gint ett_h501_UsageSpecification;
-static gint ett_h501_T_when;
-static gint ett_h501_T_required;
-static gint ett_h501_T_preferred;
-static gint ett_h501_PartyInformation;
-static gint ett_h501_SEQUENCE_OF_AliasAddress;
-static gint ett_h501_Role;
-static gint ett_h501_TerminationCause;
+static int ett_h501_Message;
+static int ett_h501_MessageBody;
+static int ett_h501_MessageCommonInfo;
+static int ett_h501_SEQUENCE_OF_TransportAddress;
+static int ett_h501_SEQUENCE_OF_ClearToken;
+static int ett_h501_SEQUENCE_OF_CryptoH323Token;
+static int ett_h501_SEQUENCE_OF_NonStandardParameter;
+static int ett_h501_SEQUENCE_OF_GenericData;
+static int ett_h501_ServiceRequest;
+static int ett_h501_SEQUENCE_OF_SecurityMode;
+static int ett_h501_SecurityMode;
+static int ett_h501_T_algorithmOIDs;
+static int ett_h501_ServiceConfirmation;
+static int ett_h501_ServiceRejection;
+static int ett_h501_ServiceRejectionReason;
+static int ett_h501_ServiceRelease;
+static int ett_h501_ServiceReleaseReason;
+static int ett_h501_DescriptorRequest;
+static int ett_h501_SEQUENCE_OF_DescriptorID;
+static int ett_h501_DescriptorConfirmation;
+static int ett_h501_SEQUENCE_OF_Descriptor;
+static int ett_h501_DescriptorRejection;
+static int ett_h501_DescriptorRejectionReason;
+static int ett_h501_DescriptorIDRequest;
+static int ett_h501_DescriptorIDConfirmation;
+static int ett_h501_SEQUENCE_OF_DescriptorInfo;
+static int ett_h501_DescriptorIDRejection;
+static int ett_h501_DescriptorIDRejectionReason;
+static int ett_h501_DescriptorUpdate;
+static int ett_h501_SEQUENCE_OF_UpdateInformation;
+static int ett_h501_UpdateInformation;
+static int ett_h501_T_descriptorInfo;
+static int ett_h501_T_updateType;
+static int ett_h501_DescriptorUpdateAck;
+static int ett_h501_AccessRequest;
+static int ett_h501_SEQUENCE_OF_SupportedProtocols;
+static int ett_h501_AccessConfirmation;
+static int ett_h501_SEQUENCE_OF_AddressTemplate;
+static int ett_h501_SEQUENCE_OF_ServiceControlSession;
+static int ett_h501_AccessRejection;
+static int ett_h501_AccessRejectionReason;
+static int ett_h501_UsageRequest;
+static int ett_h501_UsageConfirmation;
+static int ett_h501_UsageRejection;
+static int ett_h501_UsageIndication;
+static int ett_h501_SEQUENCE_OF_AccessToken;
+static int ett_h501_SEQUENCE_OF_UsageField;
+static int ett_h501_UsageField;
+static int ett_h501_UsageRejectReason;
+static int ett_h501_UsageIndicationConfirmation;
+static int ett_h501_UsageIndicationRejection;
+static int ett_h501_UsageIndicationRejectionReason;
+static int ett_h501_ValidationRequest;
+static int ett_h501_ValidationConfirmation;
+static int ett_h501_ValidationRejection;
+static int ett_h501_ValidationRejectionReason;
+static int ett_h501_RequestInProgress;
+static int ett_h501_NonStandardRequest;
+static int ett_h501_NonStandardConfirmation;
+static int ett_h501_NonStandardRejection;
+static int ett_h501_NonStandardRejectionReason;
+static int ett_h501_UnknownMessageResponse;
+static int ett_h501_UnknownMessageReason;
+static int ett_h501_AuthenticationRequest;
+static int ett_h501_AuthenticationConfirmation;
+static int ett_h501_AuthenticationRejection;
+static int ett_h501_AuthenticationRejectionReason;
+static int ett_h501_AddressTemplate;
+static int ett_h501_SEQUENCE_OF_Pattern;
+static int ett_h501_SEQUENCE_OF_RouteInformation;
+static int ett_h501_Pattern;
+static int ett_h501_T_range;
+static int ett_h501_RouteInformation;
+static int ett_h501_T_messageType;
+static int ett_h501_SEQUENCE_OF_PriceInfoSpec;
+static int ett_h501_SEQUENCE_OF_ContactInformation;
+static int ett_h501_SEQUENCE_OF_CircuitIdentifier;
+static int ett_h501_ContactInformation;
+static int ett_h501_PriceInfoSpec;
+static int ett_h501_SEQUENCE_OF_PriceElement;
+static int ett_h501_PriceElement;
+static int ett_h501_T_units;
+static int ett_h501_Descriptor;
+static int ett_h501_DescriptorInfo;
+static int ett_h501_AlternatePEInfo;
+static int ett_h501_SEQUENCE_OF_AlternatePE;
+static int ett_h501_AlternatePE;
+static int ett_h501_AccessToken;
+static int ett_h501_CallInformation;
+static int ett_h501_UsageCallStatus;
+static int ett_h501_UserInformation;
+static int ett_h501_UsageSpecification;
+static int ett_h501_T_when;
+static int ett_h501_T_required;
+static int ett_h501_T_preferred;
+static int ett_h501_PartyInformation;
+static int ett_h501_SEQUENCE_OF_AliasAddress;
+static int ett_h501_Role;
+static int ett_h501_TerminationCause;
/* Dissectors */
static dissector_handle_t h501_pdu_handle;
@@ -396,7 +396,7 @@ static dissector_handle_t h501_tcp_handle;
/* Preferences */
#define H501_PORT 2099
-static gboolean h501_desegment_tcp = TRUE;
+static bool h501_desegment_tcp = true;
void proto_reg_handoff_h501(void);
diff --git a/epan/dissectors/packet-hartip.c b/epan/dissectors/packet-hartip.c
index 05a0ee1978..00cec4ccd7 100644
--- a/epan/dissectors/packet-hartip.c
+++ b/epan/dissectors/packet-hartip.c
@@ -25,7 +25,7 @@ void proto_reg_handoff_hartip(void);
static dissector_handle_t hartip_tcp_handle;
static dissector_handle_t hartip_udp_handle;
-static gboolean hartip_desegment = TRUE;
+static bool hartip_desegment = true;
static int proto_hartip;
static int hf_hartip_hdr_version;
diff --git a/epan/dissectors/packet-hazelcast.c b/epan/dissectors/packet-hazelcast.c
index b942289e23..77a066a25a 100644
--- a/epan/dissectors/packet-hazelcast.c
+++ b/epan/dissectors/packet-hazelcast.c
@@ -84,7 +84,7 @@ static gint ett_hazelcast;
static gint ett_hazelcast_flags;
/* prefs */
-static gboolean hazelcast_desegment = TRUE;
+static bool hazelcast_desegment = true;
#define HAZELCAST_PORT 5701 /* Not IANA registered */
static const value_string operationTypes[] = {
diff --git a/epan/dissectors/packet-hci_mon.c b/epan/dissectors/packet-hci_mon.c
index 99e98c82e1..d4f0704562 100644
--- a/epan/dissectors/packet-hci_mon.c
+++ b/epan/dissectors/packet-hci_mon.c
@@ -48,7 +48,7 @@ static gint ett_flags;
static expert_field ei_unknown_data;
-static wmem_tree_t *adapter_to_disconnect_in_frame = NULL;
+static wmem_tree_t *adapter_to_disconnect_in_frame;
static dissector_handle_t hci_mon_handle;
static dissector_handle_t bthci_cmd_handle;
diff --git a/epan/dissectors/packet-hci_usb.c b/epan/dissectors/packet-hci_usb.c
index 2b25560ab9..225271622f 100644
--- a/epan/dissectors/packet-hci_usb.c
+++ b/epan/dissectors/packet-hci_usb.c
@@ -44,7 +44,7 @@ static int hf_msg_fragment_count;
static int hf_msg_reassembled_in;
static int hf_msg_reassembled_length;
-static wmem_tree_t *fragment_info_table = NULL;
+static wmem_tree_t *fragment_info_table;
static reassembly_table hci_usb_reassembly_table;
diff --git a/epan/dissectors/packet-hdcp2.c b/epan/dissectors/packet-hdcp2.c
index 9a36fef114..296b2150a9 100644
--- a/epan/dissectors/packet-hdcp2.c
+++ b/epan/dissectors/packet-hdcp2.c
@@ -106,7 +106,7 @@ typedef struct _msg_info_t {
guint16 len; /* number of bytes following initial msg_id field */
} msg_info_t;
-static wmem_map_t *msg_table = NULL;
+static wmem_map_t *msg_table;
static const msg_info_t msg_info[] = {
{ ID_AKE_INIT, 8 },
diff --git a/epan/dissectors/packet-hdfs.c b/epan/dissectors/packet-hdfs.c
index f65c507eeb..04359b8b8a 100644
--- a/epan/dissectors/packet-hdfs.c
+++ b/epan/dissectors/packet-hdfs.c
@@ -42,12 +42,12 @@ void proto_reg_handoff_hdfs(void);
#if 0
-static const int START = 0;
+static const int START;
static const int AUTHENTICATION = 1;
static const int DATA = 2;
#endif
-static range_t *tcp_ports = NULL;
+static range_t *tcp_ports;
static int proto_hdfs;
static int hf_hdfs_pdu_type;
diff --git a/epan/dissectors/packet-hip.c b/epan/dissectors/packet-hip.c
index 0c7d7c9532..1b2b79588a 100644
--- a/epan/dissectors/packet-hip.c
+++ b/epan/dissectors/packet-hip.c
@@ -1150,7 +1150,7 @@ dissect_hip_tlv(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_item *ti, i
default:
break;
}
- return (0);
+ return 0;
}
void
diff --git a/epan/dissectors/packet-hl7.c b/epan/dissectors/packet-hl7.c
index 498007b6af..0b6f9ceefe 100644
--- a/epan/dissectors/packet-hl7.c
+++ b/epan/dissectors/packet-hl7.c
@@ -71,11 +71,11 @@ static expert_field ei_hl7_malformed;
/* FF: global_hl7_raw determines whether we are going to display
* the raw text of the HL7 message (like SIP and MEGACO dissectors) */
-static gboolean global_hl7_raw = FALSE;
+static bool global_hl7_raw;
/* FF: global_hl7_llp determines whether we are going to display
* the LLP block markers */
-static gboolean global_hl7_llp = FALSE;
+static bool global_hl7_llp;
/* as per Health Level Seven, Version 2.6, appendix A */
static const string_string hl7_msg_type_vals[] = {
diff --git a/epan/dissectors/packet-hnbap.c b/epan/dissectors/packet-hnbap.c
index d42136dec3..9e5dd06188 100644
--- a/epan/dissectors/packet-hnbap.c
+++ b/epan/dissectors/packet-hnbap.c
@@ -237,70 +237,70 @@ static int hf_hnbap_unsuccessfulOutcome_value; /* UnsuccessfulOutcome_value *
/* Initialize the subtree pointers */
static int ett_hnbap;
static int ett_hnbap_imsi;
-static gint ett_hnbap_PrivateIE_ID;
-static gint ett_hnbap_ProtocolIE_Container;
-static gint ett_hnbap_ProtocolIE_Field;
-static gint ett_hnbap_ProtocolExtensionContainer;
-static gint ett_hnbap_ProtocolExtensionField;
-static gint ett_hnbap_PrivateIE_Container;
-static gint ett_hnbap_PrivateIE_Field;
-static gint ett_hnbap_AltitudeAndDirection;
-static gint ett_hnbap_Cause;
-static gint ett_hnbap_CriticalityDiagnostics;
-static gint ett_hnbap_CriticalityDiagnostics_IE_List;
-static gint ett_hnbap_CriticalityDiagnostics_IE_List_item;
-static gint ett_hnbap_CGI;
-static gint ett_hnbap_GeographicalLocation;
-static gint ett_hnbap_GeographicalCoordinates;
-static gint ett_hnbap_HNB_Cell_Identifier;
-static gint ett_hnbap_HNB_RNL_Identity;
-static gint ett_hnbap_HNBConfigInfo;
-static gint ett_hnbap_ConfigurationInformation;
-static gint ett_hnbap_HNBConfigurationInformationProvided;
-static gint ett_hnbap_HNBConfigurationInformationMissing;
-static gint ett_hnbap_HNB_Location_Information;
-static gint ett_hnbap_HNB_Identity;
-static gint ett_hnbap_IMSIESN;
-static gint ett_hnbap_IP_Address;
-static gint ett_hnbap_T_ipaddress;
-static gint ett_hnbap_Iurh_Signalling_TNL_AddressList;
-static gint ett_hnbap_LAI;
-static gint ett_hnbap_MacroCoverageInformation;
-static gint ett_hnbap_MacroCellID;
-static gint ett_hnbap_NeighbourInfoList;
-static gint ett_hnbap_NeighbourInfoRequestList;
-static gint ett_hnbap_NeighbourInfoRequestItem;
-static gint ett_hnbap_PTMSIRAI;
-static gint ett_hnbap_RABList;
-static gint ett_hnbap_RABListItem;
-static gint ett_hnbap_RAI;
-static gint ett_hnbap_TMSILAI;
-static gint ett_hnbap_TransportInfo;
-static gint ett_hnbap_T_transportAssociation;
-static gint ett_hnbap_UE_Capabilities;
-static gint ett_hnbap_UTRANCellID;
-static gint ett_hnbap_UE_Identity;
-static gint ett_hnbap_HNBRegisterRequest;
-static gint ett_hnbap_HNBRegisterAccept;
-static gint ett_hnbap_HNBRegisterReject;
-static gint ett_hnbap_HNBDe_Register;
-static gint ett_hnbap_UERegisterRequest;
-static gint ett_hnbap_UERegisterAccept;
-static gint ett_hnbap_UERegisterReject;
-static gint ett_hnbap_UEDe_Register;
-static gint ett_hnbap_CSGMembershipUpdate;
-static gint ett_hnbap_TNLUpdateRequest;
-static gint ett_hnbap_TNLUpdateResponse;
-static gint ett_hnbap_TNLUpdateFailure;
-static gint ett_hnbap_HNBConfigTransferRequest;
-static gint ett_hnbap_HNBConfigTransferResponse;
-static gint ett_hnbap_RelocationComplete;
-static gint ett_hnbap_ErrorIndication;
-static gint ett_hnbap_PrivateMessage;
-static gint ett_hnbap_HNBAP_PDU;
-static gint ett_hnbap_InitiatingMessage;
-static gint ett_hnbap_SuccessfulOutcome;
-static gint ett_hnbap_UnsuccessfulOutcome;
+static int ett_hnbap_PrivateIE_ID;
+static int ett_hnbap_ProtocolIE_Container;
+static int ett_hnbap_ProtocolIE_Field;
+static int ett_hnbap_ProtocolExtensionContainer;
+static int ett_hnbap_ProtocolExtensionField;
+static int ett_hnbap_PrivateIE_Container;
+static int ett_hnbap_PrivateIE_Field;
+static int ett_hnbap_AltitudeAndDirection;
+static int ett_hnbap_Cause;
+static int ett_hnbap_CriticalityDiagnostics;
+static int ett_hnbap_CriticalityDiagnostics_IE_List;
+static int ett_hnbap_CriticalityDiagnostics_IE_List_item;
+static int ett_hnbap_CGI;
+static int ett_hnbap_GeographicalLocation;
+static int ett_hnbap_GeographicalCoordinates;
+static int ett_hnbap_HNB_Cell_Identifier;
+static int ett_hnbap_HNB_RNL_Identity;
+static int ett_hnbap_HNBConfigInfo;
+static int ett_hnbap_ConfigurationInformation;
+static int ett_hnbap_HNBConfigurationInformationProvided;
+static int ett_hnbap_HNBConfigurationInformationMissing;
+static int ett_hnbap_HNB_Location_Information;
+static int ett_hnbap_HNB_Identity;
+static int ett_hnbap_IMSIESN;
+static int ett_hnbap_IP_Address;
+static int ett_hnbap_T_ipaddress;
+static int ett_hnbap_Iurh_Signalling_TNL_AddressList;
+static int ett_hnbap_LAI;
+static int ett_hnbap_MacroCoverageInformation;
+static int ett_hnbap_MacroCellID;
+static int ett_hnbap_NeighbourInfoList;
+static int ett_hnbap_NeighbourInfoRequestList;
+static int ett_hnbap_NeighbourInfoRequestItem;
+static int ett_hnbap_PTMSIRAI;
+static int ett_hnbap_RABList;
+static int ett_hnbap_RABListItem;
+static int ett_hnbap_RAI;
+static int ett_hnbap_TMSILAI;
+static int ett_hnbap_TransportInfo;
+static int ett_hnbap_T_transportAssociation;
+static int ett_hnbap_UE_Capabilities;
+static int ett_hnbap_UTRANCellID;
+static int ett_hnbap_UE_Identity;
+static int ett_hnbap_HNBRegisterRequest;
+static int ett_hnbap_HNBRegisterAccept;
+static int ett_hnbap_HNBRegisterReject;
+static int ett_hnbap_HNBDe_Register;
+static int ett_hnbap_UERegisterRequest;
+static int ett_hnbap_UERegisterAccept;
+static int ett_hnbap_UERegisterReject;
+static int ett_hnbap_UEDe_Register;
+static int ett_hnbap_CSGMembershipUpdate;
+static int ett_hnbap_TNLUpdateRequest;
+static int ett_hnbap_TNLUpdateResponse;
+static int ett_hnbap_TNLUpdateFailure;
+static int ett_hnbap_HNBConfigTransferRequest;
+static int ett_hnbap_HNBConfigTransferResponse;
+static int ett_hnbap_RelocationComplete;
+static int ett_hnbap_ErrorIndication;
+static int ett_hnbap_PrivateMessage;
+static int ett_hnbap_HNBAP_PDU;
+static int ett_hnbap_InitiatingMessage;
+static int ett_hnbap_SuccessfulOutcome;
+static int ett_hnbap_UnsuccessfulOutcome;
struct hnbap_private_data {
e212_number_type_t number_type;
diff --git a/epan/dissectors/packet-homeplug-av.c b/epan/dissectors/packet-homeplug-av.c
index deefba5639..35e63965c2 100644
--- a/epan/dissectors/packet-homeplug-av.c
+++ b/epan/dissectors/packet-homeplug-av.c
@@ -812,7 +812,7 @@ static gint ett_homeplug_av_st_iotecha_bss_entry;
/* End of ST/IoTecha specific subtrees */
/* Saving vendor specific subtree */
-static proto_tree *ti_vendor = 0;
+static proto_tree *ti_vendor;
#define HOMEPLUG_AV_MMHDR_LEN 3 /* MM version (1) + MM type (2) */
diff --git a/epan/dissectors/packet-homeplug.c b/epan/dissectors/packet-homeplug.c
index c5cd33170a..388255d802 100644
--- a/epan/dissectors/packet-homeplug.c
+++ b/epan/dissectors/packet-homeplug.c
@@ -220,11 +220,11 @@ static gint ett_homeplug_stc;
static expert_field ei_homeplug_tone_map_not_exist;
-static guint8 homeplug_ne = 0;
-static guint8 homeplug_melen = 0;
-static guint8 homeplug_metype = 0;
+static guint8 homeplug_ne;
+static guint8 homeplug_melen;
+static guint8 homeplug_metype;
-static guint32 homeplug_offset = 0;
+static guint32 homeplug_offset;
/* METYPE Values */
diff --git a/epan/dissectors/packet-hp-erm.c b/epan/dissectors/packet-hp-erm.c
index 155adae4c7..25511db21f 100644
--- a/epan/dissectors/packet-hp-erm.c
+++ b/epan/dissectors/packet-hp-erm.c
@@ -76,7 +76,7 @@ dissect_hp_erm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _
proto_tree *hp_erm_tree;
tvbuff_t *eth_tvb;
int offset = 0;
- int * const flags[] = {
+ static int * const flags[] = {
&hf_hp_erm_unknown2,
&hf_hp_erm_priority,
&hf_hp_erm_cfi,
diff --git a/epan/dissectors/packet-hpfeeds.c b/epan/dissectors/packet-hpfeeds.c
index 0c293f8aaf..ff410e9baf 100644
--- a/epan/dissectors/packet-hpfeeds.c
+++ b/epan/dissectors/packet-hpfeeds.c
@@ -55,8 +55,8 @@ static dissector_handle_t hpfeeds_handle;
static heur_dissector_list_t heur_subdissector_list;
/* Preferences */
-static gboolean hpfeeds_desegment = TRUE;
-static gboolean try_heuristic = TRUE;
+static bool hpfeeds_desegment = true;
+static bool try_heuristic = true;
static int proto_hpfeeds;
diff --git a/epan/dissectors/packet-hsfz.c b/epan/dissectors/packet-hsfz.c
index c39aaf2888..5ec17e1e3a 100644
--- a/epan/dissectors/packet-hsfz.c
+++ b/epan/dissectors/packet-hsfz.c
@@ -91,13 +91,13 @@ typedef struct _udf_one_id_string {
} udf_one_id_string_t;
/*** Hash Tables for lookup data ***/
-static GHashTable *ht_diag_addr = NULL;
+static GHashTable *ht_diag_addr;
-static gboolean hsfz_check_header = FALSE;
-static gboolean hsfz_show_uds_in_ack = FALSE;
+static bool hsfz_check_header;
+static bool hsfz_show_uds_in_ack;
-static udf_one_id_string_t *udf_diag_addr = NULL;
-static guint udf_diag_addr_num = 0;
+static udf_one_id_string_t *udf_diag_addr;
+static guint udf_diag_addr_num;
static void *
udf_copy_one_id_string_cb(void* n, const void* o, size_t size _U_) {
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index 3a590cff31..c270782be7 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -36,7 +36,7 @@
#include <epan/export_object.h>
#include <epan/exceptions.h>
#include <epan/show_exception.h>
-
+#include <glib.h>
#include "packet-http.h"
#include "packet-http2.h"
#include "packet-tcp.h"
@@ -62,8 +62,6 @@ static int proto_ssdp;
static int hf_http_notification;
static int hf_http_response;
static int hf_http_request;
-static int hf_http_response_number;
-static int hf_http_request_number;
static int hf_http_response_line;
static int hf_http_request_line;
static int hf_http_basic;
@@ -83,7 +81,6 @@ static int hf_http_request_version;
static int hf_http_response_version;
static int hf_http_response_code;
static int hf_http_response_code_desc;
-static int hf_http_response_for_uri;
static int hf_http_response_phrase;
static int hf_http_authorization;
static int hf_http_proxy_authenticate;
@@ -123,10 +120,10 @@ static int hf_http_x_forwarded_for;
static int hf_http_http2_settings;
static int hf_http_request_in;
static int hf_http_response_in;
-static int hf_http_next_request_in;
+/*static int hf_http_next_request_in;
static int hf_http_next_response_in;
static int hf_http_prev_request_in;
-static int hf_http_prev_response_in;
+static int hf_http_prev_response_in; */
static int hf_http_time;
static int hf_http_chunk_size;
static int hf_http_chunk_data;
@@ -149,7 +146,6 @@ static gint ett_http_encoded_entity;
static gint ett_http_header_item;
static gint ett_http_http2_settings_item;
-static expert_field ei_http_chat;
static expert_field ei_http_te_and_length;
static expert_field ei_http_te_unknown;
static expert_field ei_http_subdissector_failed;
@@ -255,27 +251,32 @@ UAT_CSTRING_CB_DEF(header_fields, header_desc, header_field_t)
* desegmentation of HTTP headers
* (when we are over TCP or another protocol providing the desegmentation API)
*/
-static gboolean http_desegment_headers = TRUE;
+static bool http_desegment_headers = true;
/*
* desegmentation of HTTP bodies
* (when we are over TCP or another protocol providing the desegmentation API)
* TODO let the user filter on content-type the bodies he wants desegmented
*/
-static gboolean http_desegment_body = TRUE;
+static bool http_desegment_body = true;
/*
* De-chunking of content-encoding: chunk entity bodies.
*/
-static gboolean http_dechunk_body = TRUE;
+static bool http_dechunk_body = true;
/*
* Decompression of zlib or brotli encoded entities.
*/
#if defined(HAVE_ZLIB) || defined(HAVE_BROTLI)
-static gboolean http_decompress_body = TRUE;
+static bool http_decompress_body = true;
#endif
+/*
+ * Extra checks for valid ASCII data in HTTP headers.
+ */
+static bool http_check_ascii_headers = false;
+
/* Simple Service Discovery Protocol
* SSDP is implemented atop HTTP (yes, it really *does* run over UDP).
* SSDP is the discovery protocol of Universal Plug and Play
@@ -294,11 +295,11 @@ static gboolean http_decompress_body = TRUE;
#define SCTP_DEFAULT_RANGE "80"
#define TLS_DEFAULT_RANGE "443"
-static range_t *global_http_tls_range = NULL;
+static range_t *global_http_tls_range;
-static range_t *http_tcp_range = NULL;
-static range_t *http_sctp_range = NULL;
-static range_t *http_tls_range = NULL;
+static range_t *http_tcp_range;
+static range_t *http_sctp_range;
+static range_t *http_tls_range;
typedef void (*ReqRespDissector)(packet_info*, tvbuff_t*, proto_tree*, int, const guchar*,
const guchar*, http_conv_t *, http_req_res_t *);
@@ -353,6 +354,21 @@ typedef struct {
http_streaming_reassembly_data_t* res_streaming_reassembly_data;
} http_req_res_private_data_t;
+ typedef struct _request_trans_t {
+ uint64_t first_range_num;
+ guint32 req_frame;
+ nstime_t abs_time;
+ gchar *request_uri;
+} request_trans_t;
+
+ typedef struct _match_trans_t {
+ guint32 req_frame;
+ guint32 resp_frame;
+ nstime_t delta_time;
+ gchar *request_uri;
+ gchar *http_host;
+} match_trans_t;
+
static gint parse_http_status_code(const guchar *line, const guchar *lineend);
static int is_http_request_or_reply(packet_info *pinfo, const gchar *data, int linelen,
media_container_type_t *type, ReqRespDissector
@@ -360,7 +376,7 @@ static int is_http_request_or_reply(packet_info *pinfo, const gchar *data, int l
static guint chunked_encoding_dissector(tvbuff_t **tvb_ptr, packet_info *pinfo,
proto_tree *tree, int offset);
static gboolean valid_header_name(const guchar *line, int header_len);
-static void process_header(tvbuff_t *tvb, int offset, int next_offset,
+static gboolean process_header(tvbuff_t *tvb, int offset, int next_offset,
const guchar *line, int linelen, int colon_offset,
packet_info *pinfo, proto_tree *tree,
headers_t *eh_ptr, http_conv_t *conv_data,
@@ -771,11 +787,11 @@ static int st_node_requests_by_referer = -1;
static const gchar *st_str_request_sequences = "HTTP Request Sequences";
/* Mapping of URIs to the most-recently seen node id */
-static wmem_map_t* refstats_uri_to_node_id_hash = NULL;
+static wmem_map_t* refstats_uri_to_node_id_hash;
/* Mapping of node ids to the node's URI ('name' value) */
-static wmem_map_t* refstats_node_id_to_uri_hash = NULL;
+static wmem_map_t* refstats_node_id_to_uri_hash;
/* Mapping of node ids to the parent node id */
-static wmem_map_t* refstats_node_id_to_parent_node_id_hash = NULL;
+static wmem_map_t* refstats_node_id_to_parent_node_id_hash;
/* HTTP/Request Sequences stats init function */
@@ -930,14 +946,18 @@ determine_http_location_target(wmem_allocator_t *scope, const gchar *base_url, c
}
/* A leading slash means to put the location after the netloc */
else if (g_str_has_prefix(location_url, "/")) {
- gchar *scheme_end = strstr(base_url_no_query, "://") + 3;
+ /* We have already tested strstr(base_url) above */
+ gchar *scheme_end;
gchar *netloc_end;
gint netloc_length;
- if (scheme_end[0] == '\0') {
+
+ scheme_end = strstr(base_url_no_query, "://") + 3;
+ /* The following code was the only way to stop VS dereferencing errors. */
+ if (!(*scheme_end)) {
return NULL;
}
netloc_end = strstr(scheme_end, "/");
- if (netloc_end == NULL) {
+ if (!(*netloc_end)) {
return NULL;
}
netloc_length = (gint) (netloc_end - base_url_no_query);
@@ -1067,6 +1087,8 @@ get_http_conversation_data(packet_info *pinfo, conversation_t **conversation)
conv_data = wmem_new0(wmem_file_scope(), http_conv_t);
conv_data->chunk_offsets_fwd = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
conv_data->chunk_offsets_rev = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+ conv_data->req_list = NULL;
+ conv_data->matches_table = wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
conversation_add_proto_data(*conversation, proto_http,
conv_data);
@@ -1083,17 +1105,9 @@ static http_req_res_t*
push_req_res(http_conv_t *conv_data)
{
http_req_res_t *req_res = wmem_new0(wmem_file_scope(), http_req_res_t);
- nstime_set_unset(&(req_res->req_ts));
- req_res->number = ++conv_data->req_res_num;
-
- if (! conv_data->req_res_tail) {
- conv_data->req_res_tail = req_res;
- } else {
- req_res->prev = conv_data->req_res_tail;
- conv_data->req_res_tail->next = req_res;
- conv_data->req_res_tail = req_res;
- }
+ nstime_set_unset(&(req_res->req_ts));
+ conv_data->req_res_tail = req_res;
req_res->private_data = wmem_new0(wmem_file_scope(), http_req_res_private_data_t);
return req_res;
@@ -1136,7 +1150,8 @@ push_res(http_conv_t *conv_data, packet_info *pinfo)
the http_req_res_t object created by the request is
used. */
/* XXX: This finds the only most recent request and doesn't support
- * HTTP 1.1 pipelining.
+ * HTTP 1.1 pipelining. This limitation has been addressed for
+ * HTTP GETS if Range Requests are supported.
*/
http_req_res_t *req_res = conv_data->req_res_tail;
if (!req_res || (req_res->res_framenum > 0 && req_res->response_code >= 200)) {
@@ -1145,7 +1160,8 @@ push_res(http_conv_t *conv_data, packet_info *pinfo)
req_res->res_framenum = pinfo->num;
/* XXX: Using the same proto key for the frame doesn't work well
* with HTTP 1.1 pipelining, or other situations where more
- * than one request can appear in a frame.
+ * than one request can appear in a frame and multiple outstanding
+ * GET requests. The latter has been addressed with matches_table."
*/
p_add_proto_data(wmem_file_scope(), pinfo, proto_http, HTTP_PROTO_DATA_REQRES, req_res);
@@ -1613,6 +1629,19 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo,
*/
if (saw_req_resp_or_header || valid_header_name(line, (int)(linep - line))) {
colon_offset += (int)(linep - line);
+ if (http_check_ascii_headers) {
+ int i;
+ for (i = 0; i < linelen; i++) {
+ if (line[i] & 0x80) {
+ /*
+ * Non-ASCII! Return -2 for invalid
+ * HTTP, distinct from -1 for possible
+ * reassembly required.
+ */
+ return -2;
+ }
+ }
+ }
goto is_http;
}
}
@@ -1692,7 +1721,6 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo,
req_tree = proto_tree_add_subtree(http_tree, tvb,
offset, next_offset - offset, ett_http_request, &hdr_item, text);
- expert_add_info_format(pinfo, hdr_item, &ei_http_chat, "%s", text);
if (!PINFO_FD_VISITED(pinfo)) {
if (http_type == MEDIA_CONTAINER_HTTP_REQUEST) {
curr = push_req(conv_data, pinfo);
@@ -1713,14 +1741,22 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo,
/*
* Header.
*/
- process_header(tvb, offset, next_offset, line, linelen,
+ gboolean good_header = process_header(tvb, offset, next_offset, line, linelen,
colon_offset, pinfo, http_tree, headers, conv_data,
http_type, header_value_map, streaming_chunk_mode);
+ if (http_check_ascii_headers && !good_header) {
+ /*
+ * Line is not a good HTTP header.
+ * Return -2 to mark as invalid HTTP;
+ * this is distinct from returning -1 when
+ * it may be HTTP but in need of reassembly.
+ */
+ return -2;
+ }
}
offset = next_offset;
}
if (stat_info->http_host && stat_info->request_uri) {
- proto_item *e_ti;
gchar *uri;
if ((g_ascii_strncasecmp(stat_info->request_uri, "http://", 7) == 0) ||
@@ -1737,20 +1773,15 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo,
if (!PINFO_FD_VISITED(pinfo) && curr) {
curr->full_uri = wmem_strdup(wmem_file_scope(), uri);
}
- if (tree) {
- e_ti = proto_tree_add_string(http_tree,
- hf_http_request_full_uri, tvb, 0,
- 0, uri);
-
- proto_item_set_url(e_ti);
- proto_item_set_generated(e_ti);
- }
}
-
+ else {
+ /* If the request has a range, this is, or potentially is, asynchronous I/O thus
+ * full_uri must be reinitialized because it is set to that of the last request. */
+ if (curr && curr->req_has_range)
+ curr->full_uri = NULL;
+ }
if (tree) {
proto_item *pi;
- http_req_res_t *prev = curr ? curr->prev : NULL;
- http_req_res_t *next = curr ? curr->next : NULL;
switch (http_type) {
@@ -1765,71 +1796,112 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo,
hf_http_response, tvb, 0, 0, 1);
proto_item_set_hidden(hidden_item);
- if (curr) {
- nstime_t delta;
+ match_trans_t *match_trans = NULL;
- pi = proto_tree_add_uint_format(http_tree, hf_http_response_number, tvb, 0, 0, curr->number, "HTTP response %u/%u", curr->number, conv_data->req_res_num);
- proto_item_set_generated(pi);
+ if (curr && curr->response_code == 206 && curr->resp_has_range) {
+ /* The conv_data->matches_table is only used for GET requests with ranges and
+ * response_codes of 206 (Partial Content). (Note: only GETs use ranges.)
+ */
+ match_trans = (match_trans_t *)wmem_map_lookup(conv_data->matches_table,
+ GUINT_TO_POINTER(pinfo->num));
+ if (match_trans) {
+ pi = proto_tree_add_uint(http_tree, hf_http_request_in, tvb, 0, 0,
+ match_trans->req_frame);
+ proto_item_set_generated(pi);
- if (! nstime_is_unset(&(curr->req_ts))) {
- nstime_delta(&delta, &pinfo->abs_ts, &(curr->req_ts));
- pi = proto_tree_add_time(http_tree, hf_http_time, tvb, 0, 0, &delta);
+ pi = proto_tree_add_time(http_tree, hf_http_time, tvb, 0, 0,
+ &match_trans->delta_time);
proto_item_set_generated(pi);
+
+ pi = proto_tree_add_string(http_tree, hf_http_request_uri, tvb, 0, 0,
+ match_trans->request_uri);
+ proto_item_set_generated(pi);
+ {
+ gchar *uri;
+ uri = wmem_strdup_printf(pinfo->pool, "%s://%s%s",
+ is_tls ? "https" : "http",
+ g_strstrip(wmem_strdup(pinfo->pool, match_trans->http_host)), match_trans->request_uri);
+
+ pi = proto_tree_add_string(http_tree, hf_http_request_full_uri, tvb, 0, 0,
+ uri);
+ proto_item_set_url(pi);
+ proto_item_set_generated(pi);
+ }
}
}
- if (prev && prev->req_framenum) {
- pi = proto_tree_add_uint(http_tree, hf_http_prev_request_in, tvb, 0, 0, prev->req_framenum);
- proto_item_set_generated(pi);
- }
- if (prev && prev->res_framenum) {
- pi = proto_tree_add_uint(http_tree, hf_http_prev_response_in, tvb, 0, 0, prev->res_framenum);
- proto_item_set_generated(pi);
- }
- if (curr && curr->req_framenum) {
+
+ /* If responses don't have a range, the I/O is synchronous in which case a request is
+ * matched with the following response. If a request or response is missing from the
+ * capture file, correct matching resumes at the next request. */
+ if(!match_trans
+ && curr
+ && !curr->resp_has_range
+ && curr->req_framenum) {
pi = proto_tree_add_uint(http_tree, hf_http_request_in, tvb, 0, 0, curr->req_framenum);
proto_item_set_generated(pi);
- }
- if (next && next->req_framenum) {
- pi = proto_tree_add_uint(http_tree, hf_http_next_request_in, tvb, 0, 0, next->req_framenum);
- proto_item_set_generated(pi);
- }
- if (next && next->res_framenum) {
- pi = proto_tree_add_uint(http_tree, hf_http_next_response_in, tvb, 0, 0, next->res_framenum);
- proto_item_set_generated(pi);
- }
- /*
- * add the request URI to the response to allow filtering responses filtered by URI
- */
- if (curr && curr->request_uri) {
- pi = proto_tree_add_string(http_tree, hf_http_response_for_uri, tvb, 0, 0, curr->full_uri ? curr->full_uri : curr->request_uri);
- proto_item_set_generated(pi);
- }
+ if (! nstime_is_unset(&(curr->req_ts))) {
+ nstime_t delta;
+ nstime_delta(&delta, &pinfo->abs_ts, &(curr->req_ts));
+ pi = proto_tree_add_time(http_tree, hf_http_time, tvb, 0, 0, &delta);
+ proto_item_set_generated(pi);
+ }
+ if (curr->request_uri) {
+ pi = proto_tree_add_string(http_tree, hf_http_request_uri, tvb, 0, 0,
+ curr->request_uri);
+ proto_item_set_generated(pi);
+ }
+ if (curr->full_uri) {
+ pi = proto_tree_add_string(http_tree, hf_http_request_full_uri, tvb, 0, 0,
+ curr->full_uri);
+ proto_item_set_url(pi);
+ proto_item_set_generated(pi);
+ }
+ }
break;
-
case MEDIA_CONTAINER_HTTP_REQUEST:
- hidden_item = proto_tree_add_boolean(http_tree,
- hf_http_request, tvb, 0, 0, 1);
+ {
+ int size = wmem_map_size(conv_data->matches_table);
+
+ hidden_item = proto_tree_add_boolean(http_tree, hf_http_request, tvb, 0, 0, 1);
proto_item_set_hidden(hidden_item);
+ match_trans = NULL;
if (curr) {
- pi = proto_tree_add_uint_format(http_tree, hf_http_request_number, tvb, 0, 0, curr->number, "HTTP request %u/%u", curr->number, conv_data->req_res_num);
- proto_item_set_generated(pi);
- }
- if (prev && prev->req_framenum) {
- pi = proto_tree_add_uint(http_tree, hf_http_prev_request_in, tvb, 0, 0, prev->req_framenum);
- proto_item_set_generated(pi);
- }
- if (curr && curr->res_framenum) {
- pi = proto_tree_add_uint(http_tree, hf_http_response_in, tvb, 0, 0, curr->res_framenum);
- proto_item_set_generated(pi);
+ if (size > 0 && curr->req_has_range) {
+ match_trans = (match_trans_t *)wmem_map_lookup(conv_data->matches_table,
+ GUINT_TO_POINTER(pinfo->num));
+ if (match_trans) {
+ pi = proto_tree_add_uint(http_tree, hf_http_response_in,
+ tvb, 0, 0, match_trans->resp_frame);
+ proto_item_set_generated(pi);
+ }
+ }
+ else {
+ if(!match_trans
+ && !curr->resp_has_range
+ && curr->res_framenum) {
+ pi = proto_tree_add_uint(http_tree, hf_http_response_in, tvb, 0, 0, curr->res_framenum);
+ proto_item_set_generated(pi);
+
+ }
+ }
+
+ if (curr->full_uri) {
+ pi = proto_tree_add_string(http_tree, hf_http_request_full_uri, tvb, 0, 0,
+ curr->full_uri);
+ proto_item_set_url(pi);
+ proto_item_set_generated(pi);
+ }
+ else if (stat_info->full_uri){
+ pi = proto_tree_add_string(http_tree, hf_http_request_full_uri, tvb, 0, 0,
+ stat_info->full_uri);
+ proto_item_set_url(pi);
+ proto_item_set_generated(pi);
+ }
}
- if (next && next->req_framenum) {
- pi = proto_tree_add_uint(http_tree, hf_http_next_request_in, tvb, 0, 0, next->req_framenum);
- proto_item_set_generated(pi);
}
-
break;
case MEDIA_CONTAINER_HTTP_OTHERS:
@@ -1997,7 +2069,7 @@ dissecting_body:
/*
* Handle *transfer* encodings.
*/
- if (headers->transfer_encoding_chunked) {
+ if (headers && headers->transfer_encoding_chunked) {
if (!http_dechunk_body) {
/* Chunking disabled, cannot dissect further. */
/* XXX: Should this be sent to the follow tap? */
@@ -2095,6 +2167,15 @@ dissecting_body:
}
#endif
+#ifdef HAVE_SNAPPY
+ if (http_decompress_body &&
+ g_ascii_strcasecmp(headers->content_encoding, "snappy") == 0)
+ {
+ uncomp_tvb = tvb_child_uncompress_snappy(tvb, next_tvb, 0,
+ tvb_captured_length(next_tvb));
+ }
+#endif
+
/*
* Add the encoded entity to the protocol tree
*/
@@ -2371,6 +2452,10 @@ basic_request_dissector(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tree,
/* Save the request URI for various later uses */
request_uri = tvb_get_string_enc(pinfo->pool, tvb, offset, tokenlen, ENC_ASCII);
+
+ if (request_uri == NULL && curr)
+ request_uri = curr->request_uri;
+
stat_info->request_uri = wmem_strdup(pinfo->pool, request_uri);
if (!PINFO_FD_VISITED(pinfo) && curr) {
curr->request_uri = wmem_strdup(wmem_file_scope(), request_uri);
@@ -2979,6 +3064,8 @@ typedef struct {
#define HDR_REFERER 12
#define HDR_LOCATION 13
#define HDR_HTTP2_SETTINGS 14
+#define HDR_RANGE 15
+#define HDR_CONTENT_RANGE 16
static const header_info headers[] = {
{ "Authorization", &hf_http_authorization, HDR_AUTHORIZATION },
@@ -2992,8 +3079,8 @@ static const header_info headers[] = {
{ "Upgrade", &hf_http_upgrade, HDR_UPGRADE },
{ "User-Agent", &hf_http_user_agent, HDR_NO_SPECIAL },
{ "Host", &hf_http_host, HDR_HOST },
- { "Range", &hf_http_range, HDR_NO_SPECIAL },
- { "Content-Range", &hf_http_content_range, HDR_NO_SPECIAL },
+ { "Range", &hf_http_range, HDR_RANGE },
+ { "Content-Range", &hf_http_content_range, HDR_CONTENT_RANGE },
{ "Connection", &hf_http_connection, HDR_NO_SPECIAL },
{ "Cookie", &hf_http_cookie, HDR_COOKIE },
{ "Accept", &hf_http_accept, HDR_NO_SPECIAL },
@@ -3197,7 +3284,7 @@ valid_header_name(const guchar *line, int header_len)
return TRUE;
}
-static void
+static gboolean
process_header(tvbuff_t *tvb, int offset, int next_offset,
const guchar *line, int linelen, int colon_offset,
packet_info *pinfo, proto_tree *tree, headers_t *eh_ptr,
@@ -3217,10 +3304,11 @@ process_header(tvbuff_t *tvb, int offset, int next_offset,
char *p;
guchar *up;
proto_item *hdr_item, *it;
- int i;
+ int f;
int* hf_id;
tap_credential_t* auth;
- http_req_res_t *curr_req_res = (http_req_res_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_http, HTTP_PROTO_DATA_REQRES);
+ http_req_res_t *curr_req_res = (http_req_res_t *)p_get_proto_data(wmem_file_scope(), pinfo,
+ proto_http, HTTP_PROTO_DATA_REQRES);
http_info_value_t *stat_info = p_get_proto_data(pinfo->pool, pinfo, proto_http, HTTP_PROTO_DATA_INFO);
wmem_allocator_t *scope = (!PINFO_FD_VISITED(pinfo) && streaming_chunk_mode) ? wmem_file_scope() :
((PINFO_FD_VISITED(pinfo) && streaming_chunk_mode) ? NULL : pinfo->pool);
@@ -3233,6 +3321,12 @@ process_header(tvbuff_t *tvb, int offset, int next_offset,
* Not a valid header name? Just add a line plus expert info.
*/
if (!valid_header_name(line, header_len)) {
+ if (http_check_ascii_headers) {
+ /* If we're offering the chance for other dissectors to parse,
+ * we shouldn't add any tree items ourselves.
+ */
+ return FALSE;
+ }
if (http_type == MEDIA_CONTAINER_HTTP_REQUEST) {
hf_index = hf_http_request_line;
} else if (http_type == MEDIA_CONTAINER_HTTP_RESPONSE) {
@@ -3243,7 +3337,7 @@ process_header(tvbuff_t *tvb, int offset, int next_offset,
it = proto_tree_add_item(tree, hf_index, tvb, offset, len, ENC_NA|ENC_ASCII);
proto_item_set_text(it, "%s", format_text(pinfo->pool, line, len));
expert_add_info(pinfo, it, &ei_http_bad_header_name);
- return;
+ return FALSE;
}
/*
@@ -3440,8 +3534,8 @@ process_header(tvbuff_t *tvb, int offset, int next_offset,
}
eh_ptr->content_type = wmem_strdup(scope, value);
- for (i = 0; i < value_len; i++) {
- c = value[i];
+ for (f = 0; f < value_len; f++) {
+ c = value[f];
if (c == ';' || g_ascii_isspace(c)) {
/*
* End of subtype - either
@@ -3456,25 +3550,25 @@ process_header(tvbuff_t *tvb, int offset, int next_offset,
* Map the character to lower case;
* content types are case-insensitive.
*/
- eh_ptr->content_type[i] = g_ascii_tolower(eh_ptr->content_type[i]);
+ eh_ptr->content_type[f] = g_ascii_tolower(eh_ptr->content_type[f]);
}
- eh_ptr->content_type[i] = '\0';
+ eh_ptr->content_type[f] = '\0';
/*
* Now find the start of the optional parameters;
* skip the optional white space and the semicolon
* if this has not been done before.
*/
- i++;
- while (i < value_len) {
- c = eh_ptr->content_type[i];
+ f++;
+ while (f < value_len) {
+ c = eh_ptr->content_type[f];
if (c == ';' || g_ascii_isspace(c))
/* Skip till start of parameters */
- i++;
+ f++;
else
break;
}
- if (i < value_len)
- eh_ptr->content_type_parameters = eh_ptr->content_type + i;
+ if (f < value_len)
+ eh_ptr->content_type_parameters = eh_ptr->content_type + f;
else
eh_ptr->content_type_parameters = NULL;
break;
@@ -3547,27 +3641,27 @@ process_header(tvbuff_t *tvb, int offset, int next_offset,
int part_len;
cookie_tree = proto_item_add_subtree(hdr_item, ett_http_header_item);
- for (i = 0; i < value_len; ) {
+ for (f = 0; f < value_len; ) {
/* skip whitespace and ';' (terminates at '\0' or earlier) */
- c = value[i];
+ c = value[f];
while (c == ';' || g_ascii_isspace(c))
- c = value[++i];
+ c = value[++f];
- if (i >= value_len)
+ if (f >= value_len)
break;
/* find "cookie=foo " in "cookie=foo ; bar" */
- part = value + i;
- part_end = (char *)memchr(part, ';', value_len - i);
+ part = value + f;
+ part_end = (char *)memchr(part, ';', value_len - f);
if (part_end)
part_len =(int)(part_end - part);
else
- part_len = value_len - i;
+ part_len = value_len - f;
/* finally add cookie to tree */
proto_tree_add_item(cookie_tree, hf_http_cookie_pair,
- tvb, value_offset + i, part_len, ENC_NA|ENC_ASCII);
- i += part_len;
+ tvb, value_offset + f, part_len, ENC_NA|ENC_ASCII);
+ f += part_len;
}
}
break;
@@ -3608,8 +3702,219 @@ process_header(tvbuff_t *tvb, int offset, int next_offset,
break;
}
+ case HDR_RANGE:
+ {
+ /* THIS IS A GET REQUEST
+ * Note: GET is the only method that employs ranges.
+ * (Unless the data has errors or is noncompliant.)
+ */
+ if (curr_req_res && !pinfo->fd->visited) {
+ /*
+ * Unlike protocols such as NFS and SMB, the HTTP protocol (RFC 9110) does not
+ * provide an identifier with which to match requests and responses. Instead,
+ * matching is solely based upon the order in which responses are received.
+ * HTTP I/O is 'asynchronously ordered' such that, for example, the first of four
+ * GET responses are matched with the first outstanding request, the next
+ * response with the second oldest outstanding request and so on (FIFO).
+ * The previous method instead matched responses with the last of several
+ * async requests rather than the first (LIFO), and did not handle requests
+ * with no responses such as the case where one or more HTTP packets were
+ * not captured. Whenever there were multiple outstanding requests, the SRT
+ * (RTT) stats were incorrect, in some cases massively so.
+ *
+ * While RFC 9110 expressly prohibits matching via byte ranges because, among
+ * other things, the server may return fewer bytes than requested,
+ * the first number of the range does not change. Unlike HTTP implementations,
+ * Wireshark has the problem of requests/responses missing from the capture
+ * file. In such cases resumption of correct matching was virtually impossible.
+ * In addition, all matching was incorrect from that point on.
+ *
+ * The method of matching used herein is able to recover from packet loss,
+ * any number of missing frames, and duplicate range requests. The
+ * method used is explained within the comments.
+ */
+ /* https://www.rfc-editor.org/rfc/rfc9110.html#name-range-requests
+ * Note that RFC 9110 16.5 defines a registry for
+ * range units, but only bytes are registered.
+ * ABNF:
+ * Range = ranges-specifier
+ * ranges-specifier = range-unit "=" range-set
+ * range-set = 1#range-spec
+ * range-spec = int-range / suffix-range / other-range
+ * 1# is an ABNF extension defined in RFC 9110 5.6.1
+ * which covers comma separated list with optional
+ * white space:
+ * 1#element => element *( OWS "," OWS element )
+ * We don't care about other-range, but will try to
+ * handle int-range and suffix-range.
+ * This ignores any entries past the first in a list,
+ * though responses to such would be multipart.
+ * As mentioned above, this breaks down if the
+ * response does not include all requested ranges
+ * fully in one response.
+ */
+ const char *pos = strchr(value, '=');
+ if (pos == NULL) {
+ break;
+ }
+ pos++;
+ uint64_t first_range_num = 0;
+ /* Get the first range number */
+ ws_strtou64(pos, &pos, &first_range_num);
+ /* If the first number of the range is missing or '0',
+ * use the second number in the range instead if we can.
+ * XXX - Unlike strtoul, we can check the return value
+ * of ws_strtou64() to distinguish between "converted
+ * successfully as 0" and "failed conversion."
+ * Note that strtoul allows an unsigned integer to
+ * begin with a negative sign and applies unsigned
+ * integer wraparound rules.
+ * ws_strtouXX rejects an initial hyphen-minus, which
+ * is good, as we want to properly handle:
+ * suffix-range = "-" suffix-length
+ */
+ if (first_range_num == 0 && *pos == '-') {
+ pos++;
+ /* Pass in an end pointer to convert
+ * a list of ranges, the first of which is
+ * a suffix-range.
+ */
+ ws_strtou64(pos, &pos, &first_range_num);
+ }
+ /* req_list is used for req/resp matching and the deletion (and freeing) of matching
+ * requests and any orphans that preceed them. A GSList is used instead of a wmem map
+ * because there are rarely more than 10 requests in the list."
+ */
+ if (first_range_num > 0) {
+ request_trans_t* req_trans = wmem_new(wmem_file_scope(), request_trans_t);
+ req_trans->first_range_num = first_range_num;
+ req_trans->req_frame = pinfo->num;
+ req_trans->abs_time = pinfo->fd->abs_ts;
+ req_trans->request_uri = curr_req_res->request_uri;
+
+ /* XXX - This leaks if matching responses aren't
+ * found (the data does not, but the list node
+ * does.) A wmem_list would prevent that.
+ */
+ conv_data->req_list = g_slist_append(conv_data->req_list, GUINT_TO_POINTER(req_trans));
+ curr_req_res->req_has_range = TRUE;
+ }
+ }
+
+ break;
+ }
+ case HDR_CONTENT_RANGE:
+ /*
+ * THIS IS A GET RESPONSE
+ * GET is the only method that employs ranges.
+ * XXX - Except that RFC 9110 14.4 & 14.5 note that by
+ * private agreement it can be included in a request
+ * to request a partial PUT.
+ * ABNF:
+ * Content-Range = range-unit SP ( range-resp / unsatisfied-range )
+ * range-resp = incl-range "/" ( complete-length / "*" )
+ * We do not attempt to handle unsatisfied-range.
+ * Note that only one range can be included; multiple
+ * ranges are transmitted with the media type of
+ * "multipart/byteranges" and each body part contains
+ * its own Content-Type and Content-Range fields.
+ * The multipart dissector does not handle this nor
+ * access the request list.
+ */
+ if (curr_req_res && !pinfo->fd->visited) {
+ request_trans_t *req_trans;
+ match_trans_t *match_trans = NULL;
+ nstime_t ns;
+ GSList *iter = NULL;
+
+ /* Note SP instead of '=' in ABNF. */
+ const char *pos = strchr(value, ' ');
+ if (pos == NULL) {
+ break;
+ }
+ pos++;
+ uint64_t first_crange_num = 0;
+ /* Get the first content range number */
+ ws_strtou64(pos, &pos, &first_crange_num);
+
+ if (first_crange_num == 0 && *pos == '-') {
+ pos++;
+ ws_strtou64(pos, &pos, &first_crange_num);
+ }
+
+ /* Get the position of the matching request if any in the reqs_table.
+ * This is used to remove and free the matching request, and the unmatched
+ * requests (orphans) that preceed it.
+ * XXX - There is *NO* guarantee that there is
+ * a perfectly matching request, see 15.3.7:
+ * "However, a server might want to send only a
+ * subset of the data requested for reasons of
+ * its own... A client MUST inspect a 206
+ * response's Content-Type and Content-Range
+ * field(s) to determine what parts are enclosed
+ * and whether additional requests are needed."
+ * Also 15.3.7.2 Multiple Parts, noting that
+ * the response may be sent in a Content-Type
+ * multipart/byteranges, also "When multiple
+ * ranges are requested, a server MAY coalesce
+ * any of the ranges that overlap, or that are
+ * separated by a gap that is smaller than the
+ * overhead of sending multiple parts, regardless
+ * of the order in which the corresponding range-
+ * spec appeared in the received Range header
+ * field." and 15.3.7.3 Combining Parts.
+ * However, as mentioned above, the LIFO method
+ * had issues with that as well. Truly proper
+ * handling of such edge cases is more difficult.
+ */
+ req_trans = NULL;
+ if (conv_data->req_list && conv_data->req_list->data) {
+ for (iter = conv_data->req_list; iter; iter = iter->next) {
+ if (((request_trans_t*)iter->data)->first_range_num == first_crange_num) {
+ req_trans = iter->data;
+ break;
+ }
+ }
+ }
+
+ if (first_crange_num != 0 && req_trans) {
+ match_trans = wmem_new(wmem_file_scope(), match_trans_t);
+ match_trans->req_frame = req_trans->req_frame;
+ match_trans->resp_frame = pinfo->num;
+ nstime_delta(&ns, &pinfo->fd->abs_ts, &req_trans->abs_time);
+ match_trans->delta_time = ns;
+ match_trans->request_uri = req_trans->request_uri;
+ match_trans->http_host = curr_req_res->http_host;
+
+ wmem_map_insert(conv_data->matches_table,
+ GUINT_TO_POINTER(match_trans->req_frame), (void *)match_trans);
+ wmem_map_insert(conv_data->matches_table,
+ GUINT_TO_POINTER(match_trans->resp_frame), (void *)match_trans);
+
+ /* Remove and free all of the list entries up to and including the
+ * matching one from req_list. */
+ if (conv_data->req_list) {
+ GSList *top_of_list = NULL;
+
+ top_of_list = conv_data->req_list;
+ while (top_of_list && top_of_list->data != req_trans) {
+
+ top_of_list = g_slist_delete_link(top_of_list, top_of_list);
+ }
+ if (top_of_list && top_of_list->data == req_trans) {
+
+ top_of_list = g_slist_delete_link(top_of_list, top_of_list);
+ }
+ conv_data->req_list = top_of_list;
+ }
+ }
+ }
+ if (curr_req_res)
+ curr_req_res->resp_has_range = TRUE;
+ break;
}
}
+ return TRUE;
}
/* Returns index of header tag in headers */
@@ -3904,12 +4209,12 @@ check_auth_kerberos(proto_item *hdr_item, tvbuff_t *tvb, packet_info *pinfo, con
return FALSE;
}
-static void
+static int
dissect_http_on_stream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
http_conv_t *conv_data, gboolean end_of_stream, const guint32 *seq)
{
int offset = 0;
- int len;
+ int len = 0;
while (tvb_reported_length_remaining(tvb, offset) > 0) {
/* Switch protocol if the data starts after response headers. */
@@ -3937,7 +4242,7 @@ dissect_http_on_stream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
}
len = dissect_http_message(tvb, offset, pinfo, tree, conv_data, "HTTP", proto_http, end_of_stream, seq);
- if (len == -1)
+ if (len < 0)
break;
offset += len;
@@ -3948,6 +4253,10 @@ dissect_http_on_stream(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
col_set_fence(pinfo->cinfo, COL_INFO);
}
+ /* dissect_http_message() returns -2 if message is not valid HTTP */
+ return (len == -2)
+ ? 0
+ : (int)tvb_captured_length(tvb);
}
static int
@@ -3993,13 +4302,7 @@ dissect_http_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
/* XXX - how to detect end-of-stream without tcpinfo */
end_of_stream = (tcpinfo && IS_TH_FIN(tcpinfo->flags));
- dissect_http_on_stream(tvb, pinfo, tree, conv_data, end_of_stream, tcpinfo ? &tcpinfo->seq : NULL);
-
- /* XXX - If we haven't seen any HTTP yet even after dissecting above,
- * should we return 0 here so that heuristic dissectors can get a
- * chance?
- */
- return tvb_captured_length(tvb);
+ return dissect_http_on_stream(tvb, pinfo, tree, conv_data, end_of_stream, tcpinfo ? &tcpinfo->seq : NULL);
}
static gboolean
@@ -4042,8 +4345,7 @@ dissect_http_tls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
struct tlsinfo *tlsinfo = (struct tlsinfo *)data;
end_of_stream = (tlsinfo && tlsinfo->end_of_stream);
- dissect_http_on_stream(tvb, pinfo, tree, conv_data, end_of_stream, tlsinfo ? &tlsinfo->seq : NULL);
- return tvb_captured_length(tvb);
+ return dissect_http_on_stream(tvb, pinfo, tree, conv_data, end_of_stream, tlsinfo ? &tlsinfo->seq : NULL);
}
static gboolean
@@ -4093,8 +4395,7 @@ dissect_http_sctp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat
/*
* XXX - we need to provide an end-of-stream indication.
*/
- dissect_http_on_stream(tvb, pinfo, tree, conv_data, FALSE, NULL);
- return tvb_captured_length(tvb);
+ return dissect_http_on_stream(tvb, pinfo, tree, conv_data, FALSE, NULL);
}
static int
@@ -4109,8 +4410,7 @@ dissect_http(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
* XXX - what should be done about reassembly, pipelining, etc.
* here?
*/
- dissect_http_on_stream(tvb, pinfo, tree, conv_data, FALSE, NULL);
- return tvb_captured_length(tvb);
+ return dissect_http_on_stream(tvb, pinfo, tree, conv_data, FALSE, NULL);
}
static int
@@ -4161,14 +4461,6 @@ proto_register_http(void)
{ "Request", "http.request",
FT_BOOLEAN, BASE_NONE, NULL, 0x0,
"TRUE if HTTP request", HFILL }},
- { &hf_http_response_number,
- { "Response number", "http.response_number",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
- { &hf_http_request_number,
- { "Request number", "http.request_number",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
{ &hf_http_basic,
{ "Credentials", "http.authbasic",
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
@@ -4238,10 +4530,6 @@ proto_register_http(void)
{ "Status Code Description", "http.response.code.desc",
FT_STRING, BASE_NONE, NULL, 0x0,
"HTTP Response Status Code Description", HFILL }},
- { &hf_http_response_for_uri,
- { "Request URI", "http.response_for.uri",
- FT_STRING, BASE_NONE, NULL, 0x0,
- "HTTP Response For-URI", HFILL }},
{ &hf_http_response_phrase,
{ "Response Phrase", "http.response.phrase",
FT_STRING, BASE_NONE, NULL, 0x0,
@@ -4398,22 +4686,6 @@ proto_register_http(void)
{ "Response in frame", "http.response_in",
FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0,
"This packet will be responded in the packet with this number", HFILL }},
- { &hf_http_next_request_in,
- { "Next request in frame", "http.next_request_in",
- FT_FRAMENUM, BASE_NONE, NULL, 0,
- "The next HTTP request starts in packet number", HFILL }},
- { &hf_http_next_response_in,
- { "Next response in frame", "http.next_response_in",
- FT_FRAMENUM, BASE_NONE, NULL, 0,
- "The next HTTP response starts in packet number", HFILL }},
- { &hf_http_prev_request_in,
- { "Prev request in frame", "http.prev_request_in",
- FT_FRAMENUM, BASE_NONE, NULL, 0,
- "The previous HTTP request starts in packet number", HFILL }},
- { &hf_http_prev_response_in,
- { "Prev response in frame", "http.prev_response_in",
- FT_FRAMENUM, BASE_NONE, NULL, 0,
- "The previous HTTP response starts in packet number", HFILL }},
{ &hf_http_time,
{ "Time since request", "http.time",
FT_RELATIVE_TIME, BASE_NONE, NULL, 0,
@@ -4467,7 +4739,6 @@ proto_register_http(void)
};
static ei_register_info ei[] = {
- { &ei_http_chat, { "http.chat", PI_SEQUENCE, PI_CHAT, "Formatted text", EXPFILL }},
{ &ei_http_te_and_length, { "http.te_and_length", PI_MALFORMED, PI_WARN, "The Content-Length and Transfer-Encoding header must not be set together", EXPFILL }},
{ &ei_http_te_unknown, { "http.te_unknown", PI_UNDECODED, PI_WARN, "Unknown transfer coding name in Transfer-Encoding header", EXPFILL }},
{ &ei_http_subdissector_failed, { "http.subdissector_failed", PI_MALFORMED, PI_NOTE, "HTTP body subdissector failed, trying heuristic subdissector", EXPFILL }},
@@ -4476,7 +4747,8 @@ proto_register_http(void)
{ &ei_http_leading_crlf, { "http.leading_crlf", PI_MALFORMED, PI_ERROR, "Leading CRLF previous message in the stream may have extra CRLF", EXPFILL }},
{ &ei_http_bad_header_name, { "http.bad_header_name", PI_PROTOCOL, PI_WARN, "Illegal characters found in header name", EXPFILL }},
{ &ei_http_decompression_failed, { "http.decompression_failed", PI_UNDECODED, PI_WARN, "Decompression failed", EXPFILL }},
- { &ei_http_decompression_disabled, { "http.decompression_disabled", PI_UNDECODED, PI_CHAT, "Decompression disabled", EXPFILL }},
+ { &ei_http_decompression_disabled, { "http.decompression_disabled", PI_UNDECODED, PI_CHAT, "Decompression disabled", EXPFILL }}
+
};
/* UAT for header fields */
@@ -4534,6 +4806,11 @@ proto_register_http(void)
"using \"Content-Encoding: \"",
&http_decompress_body);
#endif
+ prefs_register_bool_preference(http_module, "check_ascii_headers",
+ "Reject non-ASCII headers as invalid HTTP",
+ "Whether to treat non-ASCII in headers as non-HTTP data "
+ "and allow other dissectors to process it",
+ &http_check_ascii_headers);
prefs_register_obsolete_preference(http_module, "tcp_alternate_port");
range_convert_str(wmem_epan_scope(), &global_http_tls_range, TLS_DEFAULT_RANGE, 65535);
diff --git a/epan/dissectors/packet-http.h b/epan/dissectors/packet-http.h
index bfc199e140..a95c2e9e04 100644
--- a/epan/dissectors/packet-http.h
+++ b/epan/dissectors/packet-http.h
@@ -56,17 +56,15 @@ typedef struct _http_req_res_t {
gchar *http_host;
gchar *request_uri;
gchar *full_uri;
- /** pointer to the next element in the linked list, NULL for the tail node */
- struct _http_req_res_t *next;
- /** pointer to the previous element in the linked list, NULL for the head node */
- struct _http_req_res_t *prev;
+ gboolean req_has_range;
+ gboolean resp_has_range;
+
/** private data used by http dissector */
void* private_data;
} http_req_res_t;
/** Conversation data of a HTTP connection. */
typedef struct _http_conv_t {
- guint32 req_res_num; /**< The number of requests in the conversation. */
/* Used to speed up desegmenting of chunked Transfer-Encoding. */
wmem_map_t *chunk_offsets_fwd;
@@ -95,6 +93,10 @@ typedef struct _http_conv_t {
*/
gboolean message_ended;
+ /* Used for req/res matching */
+ GSList *req_list;
+ wmem_map_t *matches_table;
+
} http_conv_t;
/* Used for HTTP Export Object feature */
diff --git a/epan/dissectors/packet-http2.c b/epan/dissectors/packet-http2.c
index 130ea4daa6..cef4ac0367 100644
--- a/epan/dissectors/packet-http2.c
+++ b/epan/dissectors/packet-http2.c
@@ -79,7 +79,7 @@ VALUE_STRING_ARRAY(http2_header_repr_type);
#if defined(HAVE_ZLIB) || defined(HAVE_BROTLI)
static gboolean http2_decompress_body = TRUE;
#else
-static gboolean http2_decompress_body = FALSE;
+static gboolean http2_decompress_body;
#endif
/* Try to dissect reassembled http2.data.data according to content-type later */
@@ -301,7 +301,7 @@ decode_as_http2_populate_list(const gchar* table_name _U_, decode_as_add_to_list
#endif /*HAVE_NGHTTP2*/
-static GHashTable* streamid_hash = NULL;
+static GHashTable* streamid_hash;
void proto_register_http2(void);
void proto_reg_handoff_http2(void);
@@ -555,9 +555,9 @@ static const fragment_items http2_body_fragment_items = {
bytes. We reduce memory usage by caching header field in this
wmem_map_t to reuse its memory region when we see the same header
field next time. */
-static wmem_map_t *http2_hdrcache_map = NULL;
+static wmem_map_t *http2_hdrcache_map;
/* Header name_length + name + value_length + value */
-static char *http2_header_pstr = NULL;
+static char *http2_header_pstr;
#endif
#ifdef HAVE_NGHTTP2
@@ -574,11 +574,11 @@ typedef struct _header_field_t {
gchar* header_desc;
} header_field_t;
-static header_field_t* header_fields = NULL;
-static guint num_header_fields = 0;
-static guint num_header_fields_cleanup = 0;
+static header_field_t* header_fields;
+static guint num_header_fields;
+static guint num_header_fields_cleanup;
-static GHashTable* header_fields_hash = NULL;
+static GHashTable* header_fields_hash;
static bool
header_fields_update_cb(void *r, char **err)
@@ -644,7 +644,7 @@ header_fields_free_cb(void*r)
}
-static hf_register_info* hf_uat = NULL;
+static hf_register_info* hf_uat;
static void
deregister_header_fields(void)
@@ -1054,11 +1054,12 @@ typedef struct {
http2_direction_type direction;
gchar* header_name;
gchar* header_value;
+ gboolean override; /* override existing header */
gboolean enable; /* enable or disable this rule */
} http2_fake_header_t;
-static http2_fake_header_t* http2_fake_headers = NULL;
-static guint num_http2_fake_headers = 0;
+static http2_fake_header_t* http2_fake_headers;
+static guint num_http2_fake_headers;
static void*
http2_fake_headers_copy_cb(void* n, const void* o, size_t siz _U_)
@@ -1137,10 +1138,11 @@ UAT_VS_DEF(http2_fake_headers, direction, http2_fake_header_t, http2_direction_t
DIRECTION_IN, try_val_to_str(DIRECTION_IN, http2_direction_type_vals))
UAT_CSTRING_CB_DEF(http2_fake_headers, header_name, http2_fake_header_t)
UAT_CSTRING_CB_DEF(http2_fake_headers, header_value, http2_fake_header_t)
+UAT_BOOL_CB_DEF(http2_fake_headers, override, http2_fake_header_t)
UAT_BOOL_CB_DEF(http2_fake_headers, enable, http2_fake_header_t)
static const gchar*
-get_fake_header_value(packet_info* pinfo, const gchar* name, gboolean the_other_direction)
+get_fake_header_value(packet_info* pinfo, const gchar* name, gboolean the_other_direction, gboolean* override)
{
if (num_http2_fake_headers == 0) {
return NULL;
@@ -1168,6 +1170,9 @@ get_fake_header_value(packet_info* pinfo, const gchar* name, gboolean the_other_
}
if (fake_header->direction == direction && strcmp(fake_header->header_name, name) == 0) {
+ if(override) {
+ *override = fake_header->override;
+ }
return wmem_strdup(pinfo->pool, fake_header->header_value);
}
}
@@ -1854,7 +1859,7 @@ get_content_type_parameters_only(const gchar *content_type, int content_type_str
*/
static void
populate_http_header_tracking(tvbuff_t *tvb, packet_info *pinfo, http2_session_t *h2session, int header_value_length,
- const gchar *header_name, const gchar *header_value, guint32 stream_id)
+ const gchar *header_name, const gchar *header_value, guint32 stream_id, const gboolean override)
{
http2_stream_info_t *stream_info = get_stream_info_for_id(pinfo, h2session, FALSE, stream_id);
http2_data_stream_body_info_t *body_info = get_data_stream_body_info_for_id(pinfo, h2session, stream_id);
@@ -1862,7 +1867,7 @@ populate_http_header_tracking(tvbuff_t *tvb, packet_info *pinfo, http2_session_t
/* Populate the content encoding used so we can uncompress the body later if required */
if (strcmp(header_name, HTTP2_HEADER_CONTENT_ENCODING) == 0) {
- if (body_info->content_encoding == NULL) {
+ if (body_info->content_encoding == NULL || override == TRUE) {
body_info->content_encoding = wmem_strndup(wmem_file_scope(), header_value, header_value_length);
}
}
@@ -1905,7 +1910,7 @@ populate_http_header_tracking(tvbuff_t *tvb, packet_info *pinfo, http2_session_t
/* Populate the content type so we can dissect the body later */
if (strcmp(header_name, HTTP2_HEADER_CONTENT_TYPE) == 0) {
- if (body_info->content_type == NULL) {
+ if (body_info->content_type == NULL || override == TRUE) {
body_info->content_type = get_content_type_only(header_value, header_value_length);
body_info->content_type_parameters = get_content_type_parameters_only(header_value, header_value_length);
stream_info->reassembly_mode = http2_get_data_reassembly_mode(body_info->content_type);
@@ -2309,7 +2314,7 @@ inflate_http2_header_block(tvbuff_t *tvb, packet_info *pinfo, guint offset, prot
* http2_frame_num_t points to. */
guint32 header_stream_id;
if (!PINFO_FD_VISITED(pinfo) && (header_stream_id = is_in_header_context(tvb, pinfo, h2session))) {
- populate_http_header_tracking(tvb, pinfo, h2session, header_value_length, header_name, header_value, header_stream_id);
+ populate_http_header_tracking(tvb, pinfo, h2session, header_value_length, header_name, header_value, header_stream_id, FALSE);
}
/* Add encoding representation */
@@ -2455,13 +2460,13 @@ try_init_stream_with_fake_headers(tvbuff_t* tvb, packet_info* pinfo, http2_sessi
}
/* now match one */
- if (get_real_header_value(pinfo, fake_header->header_name, FALSE)) {
- /* If this header already appears, the fake header is ignored. */
+ if (get_real_header_value(pinfo, fake_header->header_name, FALSE) && fake_header->override == FALSE) {
+ /* If this header already appears, the fake header is ignored, unless we want to override. */
continue;
}
populate_http_header_tracking(tvb, pinfo, h2session, (int)strlen(fake_header->header_value),
- fake_header->header_name, fake_header->header_value, h2session->current_stream_id);
+ fake_header->header_name, fake_header->header_value, h2session->current_stream_id, fake_header->override);
wmem_array_append(header_stream_info->fake_headers, &fake_header, 1);
}
@@ -2601,7 +2606,7 @@ http2_get_stream_id_ge(guint streamid, guint sub_stream_id, guint *sub_stream_id
return FALSE;
}
-static gboolean
+static bool
http2_get_sub_stream_id(guint streamid, guint sub_stream_id, gboolean le, guint *sub_stream_id_out)
{
if (le) {
@@ -3335,12 +3340,15 @@ get_real_header_value(packet_info* pinfo, const gchar* name, gboolean the_other_
const gchar*
http2_get_header_value(packet_info *pinfo, const gchar* name, gboolean the_other_direction)
{
- const gchar* value = get_real_header_value(pinfo, name, the_other_direction);
- if (value) {
- return value;
- } else {
- return get_fake_header_value(pinfo, name, the_other_direction);
+ gboolean override = FALSE;
+ const gchar* real_value = get_real_header_value(pinfo, name, the_other_direction);
+ const gchar* fake_value = get_fake_header_value(pinfo, name, the_other_direction, &override);
+ if (real_value && override == FALSE) {
+ return real_value;
+ } else if (fake_value) {
+ return fake_value;
}
+ return NULL;
}
#else
static void
@@ -4214,7 +4222,7 @@ dissect_http2_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
get_http2_session(pinfo, conversation);
dissect_http2(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
static gboolean
@@ -4864,6 +4872,7 @@ proto_register_http2(void)
"This rule applies to the message sent to (IN) or from (OUT) server."),
UAT_FLD_CSTRING(http2_fake_headers, header_name, "Header name", "HTTP2 header name"),
UAT_FLD_CSTRING(http2_fake_headers, header_value, "Header value", "HTTP2 header value"),
+ UAT_FLD_BOOL(http2_fake_headers, override, "Override", "Override existing header"),
UAT_FLD_BOOL(http2_fake_headers, enable, "Enable", "Enable this rule"),
UAT_END_FIELDS
};
diff --git a/epan/dissectors/packet-http2.h b/epan/dissectors/packet-http2.h
index d4ebd0c4a8..e7d188ba72 100644
--- a/epan/dissectors/packet-http2.h
+++ b/epan/dissectors/packet-http2.h
@@ -45,6 +45,10 @@ int dissect_http2_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
* that range, i.e. obs-text, are replaced with UTF-8 REPLACEMENT CHARACTERS.
* Dissectors may need to perform additional decoding (e.g., percent decoding or
* the more robust decoding per RFC 8187.)
+ * @warning Don't call this if HTTP but not HTTP/2 is present in the packet
+ * (e.g. test with proto_is_frame_protocol() first). This ultimately calls
+ * get_http2_session, creating a HTTP/2 session on the current conversation,
+ * which can confuse the HTTP dissector. (This should be fixed.)
*/
const gchar* http2_get_header_value(packet_info *pinfo, const gchar* name, gboolean the_other_direction);
diff --git a/epan/dissectors/packet-http3.c b/epan/dissectors/packet-http3.c
index 052ca7e427..53c8502b48 100644
--- a/epan/dissectors/packet-http3.c
+++ b/epan/dissectors/packet-http3.c
@@ -496,7 +496,7 @@ static http3_file_local_ctx *http3_get_file_local_ctx(void);
* It is allocated with file scoped memory, and then either placed in the
* cache map or, if it matches something already in the cache map, the
* memory is reallocated for the next header encountered. */
-static char *http3_header_pstr = NULL;
+static char *http3_header_pstr;
#endif
/**
@@ -653,7 +653,7 @@ http3_initialize_qpack_decoders(http3_session_info_t *http3_session)
}
}
-static GHashTable *header_fields_hash = NULL;
+static GHashTable *header_fields_hash;
static const char *
cid_to_string(const quic_cid_t *cid, wmem_allocator_t *scope)
@@ -2693,7 +2693,7 @@ proto_reg_handoff_http3(void)
/**
* Implementation of helper functions.
*/
-static http3_file_local_ctx *g_http3_file_local_ctx = NULL;
+static http3_file_local_ctx *g_http3_file_local_ctx;
static guint
http3_conn_info_hash(gconstpointer key)
diff --git a/epan/dissectors/packet-i2c.c b/epan/dissectors/packet-i2c.c
index ec71deeea9..1578d64035 100644
--- a/epan/dissectors/packet-i2c.c
+++ b/epan/dissectors/packet-i2c.c
@@ -74,7 +74,7 @@ static void i2c_prompt(packet_info *pinfo _U_, gchar* result)
snprintf(result, MAX_DECODE_AS_PROMPT_LEN, "Interpret I2C messages as");
}
-static gboolean
+static bool
capture_i2c_linux(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
if (pseudo_header->i2c.is_event) {
diff --git a/epan/dissectors/packet-iax2.c b/epan/dissectors/packet-iax2.c
index adba842c6c..dd2141cb9e 100644
--- a/epan/dissectors/packet-iax2.c
+++ b/epan/dissectors/packet-iax2.c
@@ -624,11 +624,11 @@ typedef struct {
} iax_circuit_key;
/* tables */
-static GHashTable *iax_fid_table = NULL;
+static GHashTable *iax_fid_table;
static reassembly_table iax_reassembly_table;
-static GHashTable *iax_circuit_hashtab = NULL;
-static guint circuitcount = 0;
+static GHashTable *iax_circuit_hashtab;
+static guint circuitcount;
/* the number of keys and values to reserve space for in each memory chunk.
We assume we won't be tracking many calls at once so this is quite low.
diff --git a/epan/dissectors/packet-icmp.c b/epan/dissectors/packet-icmp.c
index 580ca9b926..4f9087c92c 100644
--- a/epan/dissectors/packet-icmp.c
+++ b/epan/dissectors/packet-icmp.c
@@ -68,7 +68,7 @@ static icmp_transaction_t *transaction_end(packet_info * pinfo,
/* Decode the end of the ICMP payload as ICMP MPLS extensions
if the packet in the payload has more than 128 bytes */
-static gboolean favor_icmp_mpls_ext = FALSE;
+static bool favor_icmp_mpls_ext;
static int proto_icmp;
@@ -1466,7 +1466,7 @@ get_best_guess_mstimeofday(tvbuff_t * tvb, gint offset, guint32 comp_ts)
return le_ts;
} /* get_best_guess_mstimeofday() */
-static gboolean
+static bool
capture_icmp(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_icmp);
diff --git a/epan/dissectors/packet-icmpv6.c b/epan/dissectors/packet-icmpv6.c
index 3efa4c7266..d4f534c0b4 100644
--- a/epan/dissectors/packet-icmpv6.c
+++ b/epan/dissectors/packet-icmpv6.c
@@ -1372,20 +1372,22 @@ static const value_string mpl_seed_id_lengths[] = {
};
static const guint8 mpl_seed_id_code_to_length[] = { 0, 2, 8, 16 }; /* bytes */
+#define LIFETIME_INFINITY 0xFFFFFFFF
+
static const value_string unique_infinity[] = {
- { 0xffffffff, "Infinity" },
+ { LIFETIME_INFINITY, "Infinity" },
{ 0, NULL}
};
static const value_string dnssl_infinity[] = {
{ 0, "DNSSL domain name MUST no longer be used" },
- { 0xffffffff, "Infinity" },
+ { LIFETIME_INFINITY, "Infinity" },
{ 0, NULL}
};
static const value_string rdnss_infinity[] = {
{ 0, "RDNSS address MUST no longer be used" },
- { 0xffffffff, "Infinity" },
+ { LIFETIME_INFINITY, "Infinity" },
{ 0, NULL}
};
@@ -1843,12 +1845,16 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* Prefix Valid Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_prefix_valid_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
/* Prefix Preferred Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_prefix_preferred_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_reserved, tvb, opt_offset, 4, ENC_NA);
@@ -2309,7 +2315,9 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* Route Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
/* Prefix */
@@ -2348,7 +2356,9 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* RDNSS Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_rdnss_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
while(opt_offset < (offset + opt_len) ) {
@@ -2496,7 +2506,9 @@ static int dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* DNSSL Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_dnssl_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
while(opt_offset < (offset + opt_len) ) {
@@ -2985,6 +2997,8 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
guint8 prefix_len;
ws_in6_addr prefix;
address prefix_addr;
+ uint32_t lifetime;
+
static int * const rpl_flags[] = {
&hf_icmpv6_rpl_opt_route_pref,
&hf_icmpv6_rpl_opt_route_reserved,
@@ -3002,7 +3016,10 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
opt_offset +=1;
/* Prefix lifetime. */
- proto_tree_add_item(icmp6opt_tree, hf_icmpv6_rpl_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
+ ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
switch(opt_len){
@@ -3210,12 +3227,16 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
/* Valid Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_vlifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
/* Preferred Lifetime */
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_plifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
opt_offset += 4;
/* 4 reserved bytes. */
@@ -3934,12 +3955,16 @@ dissect_rrenum(tvbuff_t *tvb, int rr_offset, packet_info *pinfo, proto_tree *tre
/* Valid Lifetime */
ti = proto_tree_add_item_ret_uint(up_tree, hf_icmpv6_rr_pco_up_validlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
rr_offset += 4;
/* Preferred Lifetime */
ti = proto_tree_add_item_ret_uint(up_tree, hf_icmpv6_rr_pco_up_preferredlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN, &lifetime);
- proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ if (lifetime != LIFETIME_INFINITY) {
+ proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(pinfo->pool, lifetime));
+ }
rr_offset += 4;
/* Flags */
@@ -4171,7 +4196,7 @@ dissect_mpl_control(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
return body_offset;
}
-static gboolean
+static bool
capture_icmpv6(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_icmpv6);
diff --git a/epan/dissectors/packet-icq.c b/epan/dissectors/packet-icq.c
index c8771640a3..0acb90bce3 100644
--- a/epan/dissectors/packet-icq.c
+++ b/epan/dissectors/packet-icq.c
@@ -489,7 +489,7 @@ icqv5_decode_msgType(proto_tree *tree, tvbuff_t *tvb, int offset, int size,
&hf_icq_description,
&hf_icq_url,
};
-#define N_URL_FIELDS (sizeof url_field_descr / sizeof url_field_descr[0])
+#define N_URL_FIELDS array_length(url_field_descr)
static int * const email_field_descr[] = {
&hf_icq_nickname,
&hf_icq_first_name,
@@ -498,7 +498,7 @@ icqv5_decode_msgType(proto_tree *tree, tvbuff_t *tvb, int offset, int size,
&hf_icq_unknown,
&hf_icq_text,
};
-#define N_EMAIL_FIELDS (sizeof email_field_descr / sizeof email_field_descr[0])
+#define N_EMAIL_FIELDS array_length(email_field_descr)
static int * const auth_req_field_descr[] = {
&hf_icq_nickname,
&hf_icq_first_name,
@@ -507,14 +507,14 @@ icqv5_decode_msgType(proto_tree *tree, tvbuff_t *tvb, int offset, int size,
&hf_icq_unknown,
&hf_icq_reason,
};
-#define N_AUTH_REQ_FIELDS (sizeof auth_req_field_descr / sizeof auth_req_field_descr[0])
+#define N_AUTH_REQ_FIELDS array_length(auth_req_field_descr)
static int * const user_added_field_descr[] = {
&hf_icq_nickname,
&hf_icq_first_name,
&hf_icq_last_name,
&hf_icq_email,
};
-#define N_USER_ADDED_FIELDS (sizeof user_added_field_descr / sizeof user_added_field_descr[0])
+#define N_USER_ADDED_FIELDS array_length(user_added_field_descr)
msgType = tvb_get_letohs(tvb, offset);
subtree = proto_tree_add_subtree_format(tree, tvb, offset, size, ett_icq_body_parts, NULL,
diff --git a/epan/dissectors/packet-idmp.c b/epan/dissectors/packet-idmp.c
index 98f9704583..a050a9003b 100644
--- a/epan/dissectors/packet-idmp.c
+++ b/epan/dissectors/packet-idmp.c
@@ -42,14 +42,14 @@ void proto_register_idmp(void);
void proto_reg_handoff_idm(void);
void register_idmp_protocol_info(const char *oid, const ros_info_t *rinfo, int proto _U_, const char *name);
-static gboolean idmp_desegment = TRUE;
+static bool idmp_desegment = true;
#define IDMP_TCP_PORT 1102 /* made up for now - not IANA registered */
-static gboolean idmp_reassemble = TRUE;
-static dissector_handle_t idmp_handle = NULL;
+static bool idmp_reassemble = true;
+static dissector_handle_t idmp_handle;
-static proto_tree *top_tree = NULL;
-static const char *protocolID = NULL;
-static const char *saved_protocolID = NULL;
+static proto_tree *top_tree;
+static const char *protocolID;
+static const char *saved_protocolID;
static guint32 opcode = -1;
/* Initialize the protocol and registered fields */
@@ -154,16 +154,16 @@ static int hf_idmp_absent; /* NULL */
/* Initialize the subtree pointers */
static gint ett_idmp;
-static gint ett_idmp_IDM_PDU;
-static gint ett_idmp_IdmBind;
-static gint ett_idmp_IdmBindResult;
-static gint ett_idmp_IdmBindError;
-static gint ett_idmp_Request;
-static gint ett_idmp_IdmResult;
-static gint ett_idmp_Error;
-static gint ett_idmp_IdmReject;
-static gint ett_idmp_Code;
-static gint ett_idmp_InvokeId;
+static int ett_idmp_IDM_PDU;
+static int ett_idmp_IdmBind;
+static int ett_idmp_IdmBindResult;
+static int ett_idmp_IdmBindError;
+static int ett_idmp_Request;
+static int ett_idmp_IdmResult;
+static int ett_idmp_Error;
+static int ett_idmp_IdmReject;
+static int ett_idmp_Code;
+static int ett_idmp_InvokeId;
diff --git a/epan/dissectors/packet-iec104.c b/epan/dissectors/packet-iec104.c
index d506862d63..6eb9b5ff7f 100644
--- a/epan/dissectors/packet-iec104.c
+++ b/epan/dissectors/packet-iec104.c
@@ -22,6 +22,9 @@
#include <epan/packet.h>
#include <epan/prefs.h>
#include <epan/expert.h>
+#include <epan/exceptions.h>
+#include <epan/reassemble.h>
+#include <wsutil/str_util.h>
#include "packet-tcp.h"
void proto_register_iec60870_104(void);
@@ -35,11 +38,14 @@ void proto_reg_handoff_iec60870_5_103(void);
void proto_register_iec60870_asdu(void);
+static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
+
static dissector_handle_t iec60870_asdu_handle;
static dissector_handle_t iec60870_104_handle;
static dissector_handle_t iec60870_101_handle;
static dissector_handle_t iec60870_5_103_handle;
+static reassembly_table iec60870_reassemble_table;
/* the asdu header structure */
struct asduheader {
@@ -404,7 +410,7 @@ static const td_asdu_length asdu_length [] = {
{ M_EP_TD_1, 10 },
{ M_EP_TE_1, 11 },
{ M_EP_TF_1, 11 },
- { S_IT_TC_1, 0 },
+ { S_IT_TC_1, 14 },
{ C_SC_NA_1, 1 },
{ C_DC_NA_1, 1 },
{ C_RC_NA_1, 1 },
@@ -649,6 +655,73 @@ static const value_string qrp_r_types[] = {
{ 0, NULL }
};
+static const range_string usr_types[] = {
+ { 0, 0, "(Unknown)" },
+ { 1, 1, "Default" },
+ { 2, 65535, "Chosen by the controlling station" },
+ { 0, 0, NULL }
+};
+
+static const range_string mal_types[] = {
+ { 0, 0, "(not used)" },
+ { 1, 1, "HMAC SHA-1 truncated to 4 octets (serial)" },
+ { 2, 2, "HMAC SHA-1 truncated to 10 octets (networked)" },
+ { 3, 3, "HMAC-SHA-256 truncated to 8 octets (serial)" },
+ { 4, 4, "HMAC-SHA-256 truncated to 16 octets (networked)" },
+ { 128, 255, "(vendor-specific choice)" },
+ { 0, 0, NULL }
+};
+
+static const value_string rsc_types[] = {
+ { 0, "(not used)" },
+ { 1, "CRITICAL" },
+ { 0, NULL }
+};
+
+static const range_string kwa_types[] = {
+ { 0, 0, "(not used)" },
+ { 1, 1, "AES-128 Key Wrap Algorithm" },
+ { 2, 2, "AES-256 Key Wrap Algorithm" },
+ { 128, 255, "(vendor-specific choice)" },
+ { 0, 0, NULL }
+};
+
+static const value_string kst_types[] = {
+ { 0, "(not used)" },
+ { 1, "OK" },
+ { 2, "NOT INIT" },
+ { 3, "COMM FAIL" },
+ { 4, "AUTH FAIL" },
+ { 0, NULL }
+};
+
+static const range_string hal_types[] = {
+ { 0, 0, "No MAC value in this message" },
+ { 1, 1, "HMAC SHA-1 truncated to 4 octets (serial)" },
+ { 2, 2, "HMAC SHA-1 truncated to 10 octets (networked)" },
+ { 3, 3, "HMAC-SHA-256 truncated to 8 octets (serial)" },
+ { 4, 4, "HMAC-SHA-256 truncated to 16 octets (networked)" },
+ { 128, 255, "(vendor-specific choice)" },
+ { 0, 0, NULL }
+};
+
+static const range_string error_codes[] = {
+ { 0, 0, "(not used)" },
+ { 1, 1, "Authentication failed" },
+ { 2, 2, "Unexpected reply" },
+ { 3, 3, "No reply" },
+ { 4, 4, "Aggressive Mode not permitted" },
+ { 5, 5, "MAC algorithm not permitted" },
+ { 6, 6, "Key Wrap algorithm not permitted" },
+ { 7, 7, "Authorization failed" },
+ { 8, 8, "Update Key Change Method not permitted" },
+ { 9, 9, "Invalid Signature" },
+ { 10, 10, "Invalid Certification Data" },
+ { 11, 11, "Unknown User" },
+ { 128, 255, "(vendor-specific choice)"},
+ { 0, 0, NULL }
+};
+
static const true_false_string tfs_blocked_not_blocked = { "Blocked", "Not blocked" };
static const true_false_string tfs_substituted_not_substituted = { "Substituted", "Not Substituted" };
static const true_false_string tfs_not_topical_topical = { "Not Topical", "Topical" };
@@ -737,6 +810,38 @@ static int hf_qpm;
static int hf_qpm_kpa;
static int hf_qpm_lpc;
static int hf_qpm_pop;
+static int hf_asn;
+static int hf_usr;
+static int hf_iec60870_segment_data;
+static int hf_mal;
+static int hf_rsc;
+static int hf_asn_fin;
+static int hf_asn_fir;
+static int hf_csq;
+static int hf_ksq;
+static int hf_kwa;
+static int hf_kst;
+static int hf_hln;
+static int hf_hal;
+static int hf_cln;
+static int hf_wkl;
+static int hf_prcd_raw_data;
+static int hf_hmac_raw_data;
+static int hf_wkd_raw_data;
+static int hf_aid;
+static int hf_err;
+static int hf_etm;
+static int hf_etm_ms;
+static int hf_etm_min;
+static int hf_etm_iv;
+static int hf_etm_hour;
+static int hf_etm_su;
+static int hf_etm_day;
+static int hf_etm_dow;
+static int hf_etm_month;
+static int hf_etm_year;
+static int hf_eln;
+static int hf_error_text;
static int hf_coi;
static int hf_coi_r;
static int hf_coi_i;
@@ -757,6 +862,7 @@ static int hf_asdu_bitstring;
static int hf_asdu_float;
static int hf_asdu_normval;
static int hf_asdu_scalval;
+static int hf_asdu_tsc;
static int hf_asdu_raw_data;
static gint ett_apci;
@@ -775,6 +881,10 @@ static gint ett_coi;
static gint ett_qcc;
static gint ett_cp24time;
static gint ett_cp56time;
+static gint ett_etm;
+
+static gint ett_iec60870_segment;
+static gint ett_iec60870_segments;
static expert_field ei_iec104_short_asdu;
static expert_field ei_iec104_apdu_min_len;
@@ -796,6 +906,35 @@ static int hf_iec60870_101_linkaddr;
static int hf_iec60870_101_checksum;
static int hf_iec60870_101_stopchar;
+static int hf_iec60870_segments = -1;
+static int hf_iec60870_segment = -1;
+static int hf_iec60870_segment_overlap = -1;
+static int hf_iec60870_segment_overlap_conflict = -1;
+static int hf_iec60870_segment_multiple_tails = -1;
+static int hf_iec60870_segment_too_long_segment = -1;
+static int hf_iec60870_segment_error = -1;
+static int hf_iec60870_segment_count = -1;
+static int hf_iec60870_reassembled_in = -1;
+static int hf_iec60870_reassembled_length = -1;
+
+static const fragment_items iec60870_frag_items = {
+ &ett_iec60870_segment,
+ &ett_iec60870_segments,
+ &hf_iec60870_segments,
+ &hf_iec60870_segment,
+ &hf_iec60870_segment_overlap,
+ &hf_iec60870_segment_overlap_conflict,
+ &hf_iec60870_segment_multiple_tails,
+ &hf_iec60870_segment_too_long_segment,
+ &hf_iec60870_segment_error,
+ &hf_iec60870_segment_count,
+ &hf_iec60870_reassembled_in,
+ &hf_iec60870_reassembled_length,
+ /* Reassembled data field */
+ NULL,
+ "segments"
+};
+
/* Initialize the subtree pointers */
static gint ett_iec60870_101;
static gint ett_iec60870_101_ctrlfield;
@@ -1094,22 +1233,22 @@ static void get_CP24Time(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_heade
{
guint16 ms;
guint8 min;
- nstime_t datetime;
+ nstime_t nstime;
proto_item* ti;
proto_tree* cp24time_tree;
ms = tvb_get_letohs(tvb, *offset);
- datetime.nsecs = (ms % 1000) * 1000000;
- datetime.secs = ms / 1000;
+ nstime.nsecs = (ms % 1000) * 1000000;
+ nstime.secs = ms / 1000;
(*offset) += 2;
min = tvb_get_guint8(tvb, *offset);
- datetime.secs += (min & 0x3F) * 60;
+ nstime.secs += (min & 0x3F) * 60;
(*offset)++;
(*offset) -= 3;
- ti = proto_tree_add_time(iec104_header_tree, hf_cp24time, tvb, *offset, 3, &datetime);
+ ti = proto_tree_add_time(iec104_header_tree, hf_cp24time, tvb, *offset, 3, &nstime);
cp24time_tree = proto_item_add_subtree(ti, ett_cp24time);
proto_tree_add_item(cp24time_tree, hf_cp24time_ms, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
@@ -1420,6 +1559,16 @@ static void get_SVAspt(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_
}
/* ====================================================================
+ TSC: Test sequence counter
+ ==================================================================== */
+static void get_TSC(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_asdu_tsc, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 2;
+}
+
+/* ====================================================================
"FLT": Short floating point number
==================================================================== */
static void get_FLT(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
@@ -1577,6 +1726,287 @@ static void get_QPM(tvbuff_t* tvb, guint8* offset, proto_tree* iec104_header_tre
}
/* ====================================================================
+ USR: User Number
+ ==================================================================== */
+static void get_USR(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_usr, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 2;
+}
+
+/* ====================================================================
+ MAL: MAC algorithm
+ ==================================================================== */
+static void get_MAL(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_mal, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+
+ (*offset)++;
+}
+
+/* ====================================================================
+ RSC: Reason for challenge
+ ==================================================================== */
+static void get_RSC(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_rsc, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+
+ (*offset)++;
+}
+
+/* ====================================================================
+ CSQ: Challenge sequence number
+ ==================================================================== */
+static void get_CSQ(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_csq, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 4;
+}
+
+/* ====================================================================
+ KSQ: Key change sequence number
+ ==================================================================== */
+static void get_KSQ(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_ksq, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 4;
+}
+
+/* ====================================================================
+ KWA: Key wrap algorithm
+ ==================================================================== */
+static void get_KWA(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_kwa, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+
+ (*offset)++;
+}
+
+/* ====================================================================
+ KST: Key status
+ ==================================================================== */
+static void get_KST(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_kst, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+
+ (*offset)++;
+}
+
+/* ====================================================================
+ HLN: MAC length
+ ==================================================================== */
+static guint16 get_HLN(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ guint16 value = tvb_get_letohs(tvb, *offset);
+
+ proto_tree_add_item(iec104_header_tree, hf_hln, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 2;
+ return value;
+}
+
+/* ====================================================================
+ HAL: MAC algorithm
+ ==================================================================== */
+static guint8 get_HAL(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ guint8 hal = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_item(iec104_header_tree, hf_hal, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+
+ (*offset)++;
+ switch (hal)
+ {
+ case 3: /* HMAC-SHA-256 truncated to 8 octets (serial) */
+ return 8;
+ case 4: /* HMAC-SHA-256 truncated to 16 octets (networked) */
+ return 16;
+ case 6: /* AES-GMAC (output is 12 octets) */
+ return 12;
+ }
+ return 0;
+}
+
+/* ====================================================================
+ CLN: Challenge data length
+ ==================================================================== */
+static guint16 get_CLN(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ guint16 value = tvb_get_letohs(tvb, *offset);
+
+ proto_tree_add_item(iec104_header_tree, hf_cln, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 2;
+ return value;
+}
+
+/* ====================================================================
+ WKL: Wrapped key data length
+ ==================================================================== */
+static guint16 get_WKL(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ guint16 value = tvb_get_letohs(tvb, *offset);
+
+ proto_tree_add_item(iec104_header_tree, hf_wkl, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 2;
+ return value;
+}
+
+/* ====================================================================
+ Pseudo-random challenge data
+ ==================================================================== */
+static void get_PRCD(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree, gint length)
+{
+ proto_tree_add_item(iec104_header_tree, hf_prcd_raw_data, tvb, *offset, length, ENC_NA);
+ (*offset) += length;
+}
+
+/* ====================================================================
+ MAC value
+ ==================================================================== */
+static void get_HMAC(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree, gint length)
+{
+ if (length)
+ {
+ proto_tree_add_item(iec104_header_tree, hf_hmac_raw_data, tvb, *offset, length, ENC_NA);
+ (*offset) += length;
+ }
+}
+
+/* ====================================================================
+ Wrapped key data
+ ==================================================================== */
+static void get_WKD(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree, gint length)
+{
+ proto_tree_add_item(iec104_header_tree, hf_wkd_raw_data, tvb, *offset, length, ENC_NA);
+ (*offset) += length;
+}
+
+/* ====================================================================
+ AID: Association ID
+ ==================================================================== */
+static void get_AID(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_aid, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 2;
+}
+
+/* ====================================================================
+ ERR: Error code
+ ==================================================================== */
+static void get_ERR(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ proto_tree_add_item(iec104_header_tree, hf_err, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+
+ (*offset)++;
+}
+
+/* ====================================================================
+ ETM: Error time stamp (7-octet binary time)
+ ==================================================================== */
+static void get_ETM(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ guint16 ms;
+ guint8 value;
+ guint8 su;
+ struct tm tm;
+ nstime_t datetime;
+ proto_item* ti;
+ proto_tree* etm_tree;
+
+ ms = tvb_get_letohs(tvb, *offset);
+ tm.tm_sec = ms / 1000;
+ datetime.nsecs = (ms % 1000) * 1000000;
+ (*offset) += 2;
+
+ value = tvb_get_guint8(tvb, *offset);
+ tm.tm_min = value & 0x3F;
+ (*offset)++;
+
+ value = tvb_get_guint8(tvb, *offset);
+ tm.tm_hour = value & 0x1F;
+ su = value & 0x80;
+ (*offset)++;
+
+ value = tvb_get_guint8(tvb, *offset);
+ tm.tm_mday = value & 0x1F;
+ (*offset)++;
+
+ value = tvb_get_guint8(tvb, *offset);
+ tm.tm_mon = (value & 0x0F) - 1;
+ (*offset)++;
+
+ value = tvb_get_guint8(tvb, *offset);
+ tm.tm_year = value & 0x7F;
+ if (tm.tm_year < 70)
+ tm.tm_year += 100;
+
+ (*offset)++;
+
+ if (su)
+ tm.tm_isdst = 1;
+ else
+ tm.tm_isdst = -1; /* there's no info on whether DST was in force; assume it's
+ * the same as currently */
+
+ datetime.secs = mktime(&tm);
+
+ (*offset) -= 7;
+
+ ti = proto_tree_add_time(iec104_header_tree, hf_etm, tvb, *offset, 7, &datetime);
+ etm_tree = proto_item_add_subtree(ti, ett_etm);
+
+ proto_tree_add_item(etm_tree, hf_etm_ms, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+ (*offset) += 2;
+
+ proto_tree_add_item(etm_tree, hf_etm_min, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(etm_tree, hf_etm_iv, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ (*offset)++;
+
+ proto_tree_add_item(etm_tree, hf_etm_hour, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(etm_tree, hf_etm_su, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ (*offset)++;
+
+ proto_tree_add_item(etm_tree, hf_etm_day, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(etm_tree, hf_etm_dow, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ (*offset)++;
+
+ proto_tree_add_item(etm_tree, hf_etm_month, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ (*offset)++;
+
+ proto_tree_add_item(etm_tree, hf_etm_year, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ (*offset)++;
+}
+
+/* ====================================================================
+ ELN: Error length
+ ==================================================================== */
+static guint16 get_ELN(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
+{
+ guint16 value = tvb_get_letohs(tvb, *offset);
+ proto_tree_add_item(iec104_header_tree, hf_eln, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+
+ (*offset) += 2;
+ return value;
+}
+
+/* ====================================================================
+ Error text
+ ==================================================================== */
+static void get_ErrorText(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree, gint length)
+{
+ if (length)
+ {
+ proto_tree_add_item(iec104_header_tree, hf_error_text, tvb, *offset, length, ENC_UTF_8 | ENC_NA);
+ (*offset) += length;
+ }
+}
+
+/* ====================================================================
COI: Cause of initialisation
==================================================================== */
static void get_COI(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
@@ -1650,9 +2080,139 @@ static guint get_iec104apdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
return (guint)(tvb_reported_length(tvb));
}
+/* Dissect reassembled extended IEC60870-5-7 secure authentication ASDUs */
+// NOLINTNEXTLINE(misc-no-recursion)
+static int dissect_iec60870_asdu_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *it_segment_tree, guint8 type_id, struct asdu_parms* parms)
+{
+ guint Len = tvb_reported_length(tvb);
+ guint8 offset = 0;
+ guint8 i, encapsulated_type, encapsulated_length;
+ guint16 j;
+ tvbuff_t *encapsulated_tvb = NULL;
+
+ switch (type_id) {
+ case S_CH_NA_1: /* 81 authentication challenge */
+ get_CSQ(tvb, &offset, it_segment_tree);
+ get_USR(tvb, &offset, it_segment_tree);
+ get_MAL(tvb, &offset, it_segment_tree);
+ get_RSC(tvb, &offset, it_segment_tree);
+ j = get_CLN(tvb, &offset, it_segment_tree);
+ get_PRCD(tvb, &offset, it_segment_tree, j);
+ break;
+ case S_RP_NA_1: /* 82 authentication reply */
+ get_CSQ(tvb, &offset, it_segment_tree);
+ get_USR(tvb, &offset, it_segment_tree);
+ j = get_HLN(tvb, &offset, it_segment_tree);
+ get_HMAC(tvb, &offset, it_segment_tree, j);
+ break;
+ case S_AR_NA_1: /* 83 Aggressive mode authentication request */
+ encapsulated_type = tvb_get_guint8(tvb, offset);
+ encapsulated_length = 1 + 1 + parms->cot_len + parms->asdu_addr_len + parms->ioa_len + get_TypeIdLength(encapsulated_type);
+ encapsulated_tvb = tvb_new_subset_length_caplen(tvb, offset, -1, encapsulated_length);
+ dissect_iec60870_asdu(encapsulated_tvb, pinfo, it_segment_tree, parms);
+ offset = tvb_reported_length(encapsulated_tvb);
+ get_CSQ(tvb, &offset, it_segment_tree);
+ get_USR(tvb, &offset, it_segment_tree);
+ get_HMAC(tvb, &offset, it_segment_tree, tvb_reported_length_remaining(tvb, offset));
+ break;
+ case S_KS_NA_1: /* 85 session key status */
+ get_KSQ(tvb, &offset, it_segment_tree);
+ get_USR(tvb, &offset, it_segment_tree);
+ get_KWA(tvb, &offset, it_segment_tree);
+ get_KST(tvb, &offset, it_segment_tree);
+ i = get_HAL(tvb, &offset, it_segment_tree);
+ j = get_CLN(tvb, &offset, it_segment_tree);
+ get_PRCD(tvb, &offset, it_segment_tree, j);
+ get_HMAC(tvb, &offset, it_segment_tree, i);
+ break;
+ case S_KC_NA_1: /* 86 session key change */
+ get_KSQ(tvb, &offset, it_segment_tree);
+ get_USR(tvb, &offset, it_segment_tree);
+ j = get_WKL(tvb, &offset, it_segment_tree);
+ get_WKD(tvb, &offset, it_segment_tree, j);
+ break;
+ case S_ER_NA_1: /* 87 Authentication error */
+ get_CSQ(tvb, &offset, it_segment_tree);
+ get_USR(tvb, &offset, it_segment_tree);
+ get_AID(tvb, &offset, it_segment_tree);
+ get_ERR(tvb, &offset, it_segment_tree);
+ get_ETM(tvb, &offset, it_segment_tree);
+ j = get_ELN(tvb, &offset, it_segment_tree);
+ get_ErrorText(tvb, &offset, it_segment_tree, j);
+ break;
+ default:
+ proto_tree_add_item(it_segment_tree, hf_ioa, tvb, offset, 3, ENC_LITTLE_ENDIAN);
+ offset += 3;
+
+ if (Len - offset > 0)
+ proto_tree_add_item(it_segment_tree, hf_asdu_raw_data, tvb, offset, Len - offset, ENC_NA);
+ offset = Len;
+
+ break;
+ }
+ /* check correct apdu length */
+ if (Len != offset) {
+ expert_add_info(pinfo, it_segment_tree, &ei_iec104_apdu_invalid_len);
+ return offset;
+ }
+
+ return Len;
+}
+
+/* Handle segmentation of IEC60870-5-7 secure authentication APDUs */
+// NOLINTNEXTLINE(misc-no-recursion)
+static void dissect_iec60870_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 *offset, guint8 typeId, struct asdu_parms* parms)
+{
+ guint32 msg_seqid = 0;
+
+ gboolean final_segment = tvb_get_bits(tvb, (*offset << 3) + 0, 1, ENC_LITTLE_ENDIAN) == 1;
+
+ proto_tree_add_item(tree, hf_asn_fin, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_asn_fir, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_asn, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+
+ (*offset)++;
+
+ tvbuff_t *next_tvb = tvb_new_subset_remaining(tvb, *offset);
+ guint32 fragment_length = tvb_captured_length(next_tvb);
+ if (!final_segment) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " [ASDU fragment, %u byte%s]",
+ fragment_length, plurality(fragment_length, "", "s"));
+ } else {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " EOA");
+ }
+
+ fragment_head *fd_head = fragment_add_seq_next(&iec60870_reassemble_table, next_tvb, 0, pinfo,msg_seqid, NULL,
+ fragment_length, !final_segment);
+
+ if (fd_head && fd_head->next) {
+ /* don't use -1 if fragment length is zero (throws Exception) */
+ proto_tree_add_bytes_format(tree, hf_iec60870_segment_data, tvb, *offset, (fragment_length) ? -1 : 0,
+ NULL, "ASDU segment data (%u byte%s)", fragment_length,
+ plurality(fragment_length, "", "s"));
+
+ if (final_segment) {
+ next_tvb = process_reassembled_data(next_tvb, *offset, pinfo,
+ "Reassembled ASDU", fd_head,
+ &iec60870_frag_items, NULL, tree);
+ } else if (pinfo->num != fd_head->reassembled_in) {
+ /* Add a "Reassembled in" link if not reassembled in this frame */
+ proto_tree_add_uint(tree, *(iec60870_frag_items.hf_reassembled_in),
+ next_tvb, 0, 0, fd_head->reassembled_in);
+ }
+ pinfo->fragmented = !final_segment;
+ }
+
+ if (final_segment) {
+ dissect_iec60870_asdu_segment(next_tvb, pinfo, tree, typeId, parms);
+ }
+
+ *offset += tvb_captured_length_remaining(tvb, *offset);
+}
/* Is is called twice: For 'Packet List' and for 'Packet Details' */
/* This dissection is shared by the IEC '101 and '104 dissectors */
+// NOLINTNEXTLINE(misc-no-recursion)
static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
guint Len = tvb_reported_length(tvb);
@@ -1714,11 +2274,13 @@ static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
/* Information object address */
/* Support both 16 and 24-bit IOA addresses */
/* Don't increment offset, as we'll want to be at this position later */
- if (parms->ioa_len == 3) {
- asduh.IOA = tvb_get_letoh24(tvb, offset);
- }
- else if (parms->ioa_len == 2) {
- asduh.IOA = tvb_get_letohs(tvb, offset);
+ if (asduh.TypeId < S_CH_NA_1 || asduh.TypeId > S_UC_NA_1) {
+ if (parms->ioa_len == 3) {
+ asduh.IOA = tvb_get_letoh24(tvb, offset);
+ }
+ else if (parms->ioa_len == 2) {
+ asduh.IOA = tvb_get_letohs(tvb, offset);
+ }
}
cause_str = val_to_str(asduh.TNCause & F_CAUSE, causetx_types, " <CauseTx=%u>");
@@ -1781,6 +2343,7 @@ static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
case M_IT_NA_1:
case M_IT_TA_1:
case M_IT_TB_1:
+ case S_IT_TC_1:
case C_SC_NA_1:
case C_DC_NA_1:
case C_RC_NA_1:
@@ -1800,6 +2363,7 @@ static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
case C_CI_NA_1:
case C_CS_NA_1:
case C_RP_NA_1:
+ case C_TS_TA_1:
case P_ME_NA_1:
case P_ME_NB_1:
case P_ME_NC_1:
@@ -1959,6 +2523,11 @@ static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
get_BCR(tvb, &offset, trSignal);
get_CP56Time(tvb, &offset, trSignal);
break;
+ case S_IT_TC_1: /* 41 Integrated totals containing time tagged security statistics */
+ get_AID(tvb, &offset, trSignal);
+ get_BCR(tvb, &offset, trSignal);
+ get_CP56Time(tvb, &offset, trSignal);
+ break;
case C_SC_NA_1: /* 45 Single command */
get_SCO(tvb, &offset, trSignal);
break;
@@ -2029,6 +2598,10 @@ static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
case C_RP_NA_1: /* 105 reset process command */
get_QRP(tvb, &offset, trSignal);
break;
+ case C_TS_TA_1: /* 107 test command with time tag CP56Time2a */
+ get_TSC(tvb, &offset, trSignal);
+ get_CP56Time(tvb, &offset, trSignal);
+ break;
case P_ME_NA_1: /* 110 Parameter of measured value, normalized value */
get_NVA(tvb, &offset, trSignal);
get_QPM(tvb, &offset, trSignal);
@@ -2046,6 +2619,18 @@ static int dissect_iec60870_asdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
} /* end 'switch (asduh.TypeId)' */
} /* end 'for(i = 0; i < dui.asdu_vsq_no_of_obj; i++)' */
break;
+ case S_CH_NA_1: /* 81 authentication challenge */
+ case S_RP_NA_1: /* 82 authentication reply */
+ case S_AR_NA_1: /* 83 Aggressive mode authentication request */
+ case S_KS_NA_1: /* 85 session key status */
+ case S_KC_NA_1: /* 86 session key change */
+ case S_ER_NA_1: /* 87 Authentication error */
+ dissect_iec60870_segment(tvb, pinfo, it104tree, &offset, asduh.TypeId, parms);
+ break;
+ case S_KR_NA_1: /* 84 Session key status request */
+ proto_tree_add_item(it104tree, hf_usr, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ break;
default:
proto_tree_add_item(it104tree, hf_ioa, tvb, offset, 3, ENC_LITTLE_ENDIAN);
offset += 3;
@@ -2584,6 +3169,134 @@ proto_register_iec60870_asdu(void)
{ "POP", "iec60870_asdu.qpm.pop", FT_UINT8, BASE_DEC, VALS(qpm_pop_types), 0x80,
"QPM POP", HFILL } },
+ { &hf_asn,
+ { "ASDU Segment Sequence Number (ASN)", "iec60870_asdu.asn", FT_UINT8, BASE_DEC, NULL, 0x3F,
+ "ASDU Segment Sequence Number", HFILL }},
+
+ { &hf_asn_fin,
+ { "Final segment (FIN)", "iec60870_asdu.asn.fin", FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80,
+ "Final segment", HFILL }},
+
+ { &hf_asn_fir,
+ { "First segment (FIR)", "iec60870_asdu.asn.fir", FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40,
+ "First segment", HFILL }},
+
+ { &hf_iec60870_segment_data,
+ { "ASDU segment data", "iec60870_asdu.segment_data", FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_usr,
+ { "User number (USR)", "iec60870_asdu.usr", FT_UINT16, BASE_DEC | BASE_RANGE_STRING, RVALS(usr_types), 0,
+ "User number", HFILL }},
+
+ { &hf_mal,
+ { "MAC algorithm (MAL)", "iec60870_asdu.mal", FT_UINT8, BASE_DEC | BASE_RANGE_STRING, RVALS(mal_types), 0,
+ "MAC algorithm", HFILL }},
+
+ { &hf_rsc,
+ { "Reason for challenge (RSC)", "iec60870_asdu.rsc", FT_UINT8, BASE_DEC, VALS(rsc_types), 0,
+ "Reason for challenge", HFILL }},
+
+ { &hf_csq,
+ { "Challenge sequence number (CSQ)", "iec60870_asdu.csq", FT_UINT32, BASE_DEC, NULL, 0,
+ "Challenge sequence number", HFILL }},
+
+ { &hf_ksq,
+ { "Key change sequence number (KSQ)", "iec60870_asdu.ksq", FT_UINT32, BASE_DEC, NULL, 0,
+ "Key change sequence number", HFILL }},
+
+ { &hf_kwa,
+ { "Key wrap algorithm (KWA)", "iec60870_asdu.kwa", FT_UINT8, BASE_DEC | BASE_RANGE_STRING, RVALS(kwa_types), 0,
+ "Key wrap algorithm", HFILL }},
+
+ { &hf_kst,
+ { "Key status (KST)", "iec60870_asdu.kst", FT_UINT8, BASE_DEC, VALS(kst_types), 0,
+ "Key status", HFILL }},
+
+ { &hf_hln,
+ { "MAC length (HLN)", "iec60870_asdu.hln", FT_UINT16, BASE_DEC, NULL, 0,
+ "MAC length", HFILL }},
+
+ { &hf_hal,
+ { "MAC algorithm (HAL)", "iec60870_asdu.hal", FT_UINT8, BASE_DEC | BASE_RANGE_STRING, RVALS(hal_types), 0,
+ "MAC algorithm", HFILL }},
+
+ { &hf_cln,
+ { "Challenge data length (CLN)", "iec60870_asdu.cln", FT_UINT16, BASE_DEC, NULL, 0,
+ "Challenge data length", HFILL }},
+
+ { &hf_wkl,
+ { "Wrapped key data length (CLN)", "iec60870_asdu.wkl", FT_UINT16, BASE_DEC, NULL, 0,
+ "Wrapped key data length", HFILL }},
+
+ { &hf_prcd_raw_data,
+ { "Pseudo-random challenge data", "iec60870_asdu.challenge_data", FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_hmac_raw_data,
+ { "HMAC value", "iec60870_asdu.hmac", FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_wkd_raw_data,
+ { "Wrapped key data", "iec60870_asdu.wkd", FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_aid,
+ { "Association ID (AID)", "iec60870_asdu.aid", FT_UINT16, BASE_DEC, NULL, 0,
+ "Association ID", HFILL }},
+
+ { &hf_err,
+ { "Error code (ERR)", "iec60870_asdu.err", FT_UINT8, BASE_DEC | BASE_RANGE_STRING, RVALS(error_codes), 0,
+ "Error code", HFILL }},
+
+ { &hf_etm,
+ { "Error time stamp (ETM)", "iec60870_asdu.etm", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ "Error time stamp", HFILL }},
+
+ { &hf_etm_ms,
+ { "MS", "iec60870_asdu.etm.ms", FT_UINT16, BASE_DEC, NULL, 0,
+ "Error time stamp milliseconds", HFILL }},
+
+ { &hf_etm_min,
+ { "Min", "iec60870_asdu.etm.min", FT_UINT8, BASE_DEC, NULL, 0x3F,
+ "Error time stamp minutes", HFILL }},
+
+ { &hf_etm_iv,
+ { "IV", "iec60870_asdu.etm.iv", FT_BOOLEAN, 8, TFS(&tfs_invalid_valid), 0x80,
+ "Error time stamp invalid", HFILL }},
+
+ { &hf_etm_hour,
+ { "Hour", "iec60870_asdu.etm.hour", FT_UINT8, BASE_DEC, NULL, 0x1F,
+ "Error time stamp hours", HFILL }},
+
+ { &hf_etm_su,
+ { "SU", "iec60870_asdu.etm.su", FT_BOOLEAN, 8, TFS(&tfs_local_dst), 0x80,
+ "Error time stamp summer time", HFILL }},
+
+ { &hf_etm_day,
+ { "Day", "iec60870_asdu.etm.day", FT_UINT8, BASE_DEC, NULL, 0x1F,
+ "Error time stamp day", HFILL }},
+
+ { &hf_etm_dow,
+ { "DOW", "iec60870_asdu.etm.dow", FT_UINT8, BASE_DEC, NULL, 0xE0,
+ "Error time stamp day of week", HFILL }},
+
+ { &hf_etm_month,
+ { "Month", "iec60870_asdu.etm.month", FT_UINT8, BASE_DEC, NULL, 0x0F,
+ "Error time stamp month", HFILL }},
+
+ { &hf_etm_year,
+ { "Year", "iec60870_asdu.etm.year", FT_UINT8, BASE_DEC, NULL, 0x7F,
+ "Error time stamp year", HFILL }},
+
+ { &hf_eln,
+ { "Error length (ELN)", "iec60870_asdu.eln", FT_UINT16, BASE_DEC, NULL, 0,
+ "Error length", HFILL }},
+
+ { &hf_error_text,
+ { "Error text", "iec60870_asdu.error_text", FT_STRING, BASE_NONE, NULL, 0x0,
+ "Error txt", HFILL }},
+
{ &hf_coi,
{ "COI", "iec60870_asdu.coi", FT_UINT8, BASE_HEX, NULL, 0,
NULL, HFILL }},
@@ -2660,9 +3373,54 @@ proto_register_iec60870_asdu(void)
{ "Value", "iec60870_asdu.scalval", FT_INT16, BASE_DEC, NULL, 0x0,
"Scaled value", HFILL }},
+ { &hf_asdu_tsc,
+ { "TSC", "iec60870_asdu.tsc", FT_UINT16, BASE_DEC, NULL, 0x0,
+ "Test sequence counter", HFILL }},
+
{ &hf_asdu_raw_data,
{ "Raw Data", "iec60870_asdu.rawdata", FT_BYTES, BASE_NONE, NULL, 0x0,
"Information object raw data", HFILL }},
+
+ { &hf_iec60870_segments,
+ { "ASDU Segments", "iec60870_asdu.segments", FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_iec60870_segment,
+ { "ASDU Segment", "iec60870_asdu.segment", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_iec60870_segment_overlap,
+ { "Segment overlap", "iec60870_asdu.segment.overlap", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+ "Segment overlaps with other segments", HFILL }},
+
+ { &hf_iec60870_segment_overlap_conflict,
+ { "Conflicting data in segment overlap", "iec60870_asdu.segment.overlap.conflict", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+ "Overlapping segments contained conflicting data", HFILL }},
+
+ { &hf_iec60870_segment_multiple_tails,
+ { "Multiple tail segments found", "iec60870_asdu.segment.multipletails", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+ "Several tails were found when reassembling the packet", HFILL }},
+
+ { &hf_iec60870_segment_too_long_segment,
+ { "Segment too long", "iec60870_asdu.segment.toolongsegment", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
+ "Segment contained data past end of packet", HFILL }},
+
+ { &hf_iec60870_segment_error,
+ { "Reassembly error", "iec60870_asdu.segment.error", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "Reassembly error due to illegal segments", HFILL }},
+
+ { &hf_iec60870_segment_count,
+ { "Segment count", "iec60870_asdu.segment.count", FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+
+ { &hf_iec60870_reassembled_in,
+ { "Reassembled ASDU in frame", "iec60870_asdu.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL, 0x0,
+ "This ASDU packet is reassembled in this frame", HFILL }},
+
+ { &hf_iec60870_reassembled_length,
+ { "Reassembled ASDU length", "iec60870_asdu.reassembled.length", FT_UINT32, BASE_DEC, NULL, 0x0,
+ "The total length of the reassembled payload", HFILL }},
+
};
static gint *ett_as[] = {
@@ -2680,7 +3438,10 @@ proto_register_iec60870_asdu(void)
&ett_coi,
&ett_qcc,
&ett_cp24time,
- &ett_cp56time
+ &ett_cp56time,
+ &ett_etm,
+ &ett_iec60870_segment,
+ &ett_iec60870_segments
};
static ei_register_info ei[] = {
@@ -2702,6 +3463,7 @@ proto_register_iec60870_asdu(void)
expert_iec60870 = expert_register_protocol(proto_iec60870_asdu);
expert_register_field_array(expert_iec60870, ei, array_length(ei));
+ reassembly_table_register(&iec60870_reassemble_table, &addresses_ports_reassembly_table_functions);
}
/* The registration hand-off routine */
diff --git a/epan/dissectors/packet-ieee1609dot2.c b/epan/dissectors/packet-ieee1609dot2.c
index 12377d065e..edf6b9037e 100644
--- a/epan/dissectors/packet-ieee1609dot2.c
+++ b/epan/dissectors/packet-ieee1609dot2.c
@@ -41,7 +41,7 @@ void proto_reg_handoff_ieee1609dot2(void);
/* Initialize the protocol and registered fields */
int proto_ieee1609dot2;
-dissector_handle_t proto_ieee1609dot2_handle = NULL;
+dissector_handle_t proto_ieee1609dot2_handle;
static int hf_ieee1609dot2_SecuredCrl_PDU; /* SecuredCrl */
static int hf_ieee1609dot2_Ieee1609Dot2Data_PDU; /* Ieee1609Dot2Data */
static int hf_ieee1609dot2_SequenceOfUint8_item; /* Uint8 */
@@ -296,116 +296,116 @@ static int hf_ieee1609dot2_EndEntityType_enrol;
/* Initialize the subtree pointers */
static int ett_ieee1609dot2_ssp;
-static gint ett_ieee1609dot2_SequenceOfUint8;
-static gint ett_ieee1609dot2_SequenceOfUint16;
-static gint ett_ieee1609dot2_SequenceOfHashedId3;
-static gint ett_ieee1609dot2_ValidityPeriod;
-static gint ett_ieee1609dot2_Duration;
-static gint ett_ieee1609dot2_GeographicRegion;
-static gint ett_ieee1609dot2_CircularRegion;
-static gint ett_ieee1609dot2_RectangularRegion;
-static gint ett_ieee1609dot2_SequenceOfRectangularRegion;
-static gint ett_ieee1609dot2_PolygonalRegion;
-static gint ett_ieee1609dot2_TwoDLocation;
-static gint ett_ieee1609dot2_IdentifiedRegion;
-static gint ett_ieee1609dot2_SequenceOfIdentifiedRegion;
-static gint ett_ieee1609dot2_CountryAndRegions;
-static gint ett_ieee1609dot2_CountryAndSubregions;
-static gint ett_ieee1609dot2_RegionAndSubregions;
-static gint ett_ieee1609dot2_SequenceOfRegionAndSubregions;
-static gint ett_ieee1609dot2_ThreeDLocation;
-static gint ett_ieee1609dot2_Signature;
-static gint ett_ieee1609dot2_EcdsaP256Signature;
-static gint ett_ieee1609dot2_EcdsaP384Signature;
-static gint ett_ieee1609dot2_EcsigP256Signature;
-static gint ett_ieee1609dot2_EccP256CurvePoint;
-static gint ett_ieee1609dot2_T_uncompressedP256;
-static gint ett_ieee1609dot2_EccP384CurvePoint;
-static gint ett_ieee1609dot2_T_uncompressedP384;
-static gint ett_ieee1609dot2_EciesP256EncryptedKey;
-static gint ett_ieee1609dot2_EcencP256EncryptedKey;
-static gint ett_ieee1609dot2_EncryptionKey;
-static gint ett_ieee1609dot2_PublicEncryptionKey;
-static gint ett_ieee1609dot2_BasePublicEncryptionKey;
-static gint ett_ieee1609dot2_PublicVerificationKey;
-static gint ett_ieee1609dot2_SymmetricEncryptionKey;
-static gint ett_ieee1609dot2_PsidSsp;
-static gint ett_ieee1609dot2_SequenceOfPsidSsp;
-static gint ett_ieee1609dot2_ServiceSpecificPermissions;
-static gint ett_ieee1609dot2_PsidSspRange;
-static gint ett_ieee1609dot2_SequenceOfPsidSspRange;
-static gint ett_ieee1609dot2_SspRange;
-static gint ett_ieee1609dot2_BitmapSspRange;
-static gint ett_ieee1609dot2_SequenceOfOctetString;
-static gint ett_ieee1609dot2_GroupLinkageValue;
-static gint ett_ieee1609dot2_SequenceOfLinkageSeed;
-static gint ett_ieee1609dot2_CrlContents;
-static gint ett_ieee1609dot2_CrlPriorityInfo;
-static gint ett_ieee1609dot2_TypeSpecificCrlContents;
-static gint ett_ieee1609dot2_ToBeSignedHashIdCrl;
-static gint ett_ieee1609dot2_SequenceOfHashBasedRevocationInfo;
-static gint ett_ieee1609dot2_HashBasedRevocationInfo;
-static gint ett_ieee1609dot2_ToBeSignedLinkageValueCrl;
-static gint ett_ieee1609dot2_SequenceOfJMaxGroup;
-static gint ett_ieee1609dot2_JMaxGroup;
-static gint ett_ieee1609dot2_SequenceOfLAGroup;
-static gint ett_ieee1609dot2_LAGroup;
-static gint ett_ieee1609dot2_SequenceOfIMaxGroup;
-static gint ett_ieee1609dot2_IMaxGroup;
-static gint ett_ieee1609dot2_SequenceOfIndividualRevocation;
-static gint ett_ieee1609dot2_IndividualRevocation;
-static gint ett_ieee1609dot2_SequenceOfGroupCrlEntry;
-static gint ett_ieee1609dot2_GroupCrlEntry;
-static gint ett_ieee1609dot2_ToBeSignedLinkageValueCrlWithAlgIdentifier;
-static gint ett_ieee1609dot2_SequenceOfGroupSingleSeedCrlEntry;
-static gint ett_ieee1609dot2_GroupSingleSeedCrlEntry;
-static gint ett_ieee1609dot2_SecuredCrl;
-static gint ett_ieee1609dot2_SecuredCrlContent;
-static gint ett_ieee1609dot2_CrlSignedData;
-static gint ett_ieee1609dot2_CrlToBeSignedData;
-static gint ett_ieee1609dot2_CrlSignedDataPayload;
-static gint ett_ieee1609dot2_Ieee1609Dot2CrlData;
-static gint ett_ieee1609dot2_Ieee1609Dot2CrlContent;
-static gint ett_ieee1609dot2_Ieee1609Dot2Data;
-static gint ett_ieee1609dot2_Ieee1609Dot2Content;
-static gint ett_ieee1609dot2_SignedData;
-static gint ett_ieee1609dot2_ToBeSignedData;
-static gint ett_ieee1609dot2_SignedDataPayload;
-static gint ett_ieee1609dot2_HashedData;
-static gint ett_ieee1609dot2_HeaderInfo;
-static gint ett_ieee1609dot2_MissingCrlIdentifier;
-static gint ett_ieee1609dot2_ContributedExtensionBlocks;
-static gint ett_ieee1609dot2_ContributedExtensionBlock;
-static gint ett_ieee1609dot2_T_extns;
-static gint ett_ieee1609dot2_SignerIdentifier;
-static gint ett_ieee1609dot2_EncryptedData;
-static gint ett_ieee1609dot2_RecipientInfo;
-static gint ett_ieee1609dot2_SequenceOfRecipientInfo;
-static gint ett_ieee1609dot2_SymmRecipientInfo;
-static gint ett_ieee1609dot2_PKRecipientInfo;
-static gint ett_ieee1609dot2_EncryptedDataEncryptionKey;
-static gint ett_ieee1609dot2_SymmetricCiphertext;
-static gint ett_ieee1609dot2_One28BitCcmCiphertext;
-static gint ett_ieee1609dot2_SequenceOfCertificate;
-static gint ett_ieee1609dot2_CertificateBase;
-static gint ett_ieee1609dot2_IssuerIdentifier;
-static gint ett_ieee1609dot2_ToBeSignedCertificate;
-static gint ett_ieee1609dot2_T_flags;
-static gint ett_ieee1609dot2_CertificateId;
-static gint ett_ieee1609dot2_LinkageData;
-static gint ett_ieee1609dot2_EndEntityType;
-static gint ett_ieee1609dot2_PsidGroupPermissions;
-static gint ett_ieee1609dot2_SequenceOfPsidGroupPermissions;
-static gint ett_ieee1609dot2_SubjectPermissions;
-static gint ett_ieee1609dot2_VerificationKeyIndicator;
-static gint ett_ieee1609dot2_SequenceOfAppExtensions;
-static gint ett_ieee1609dot2_AppExtension;
-static gint ett_ieee1609dot2_SequenceOfCertIssueExtensions;
-static gint ett_ieee1609dot2_CertIssueExtension;
-static gint ett_ieee1609dot2_T_permissions;
-static gint ett_ieee1609dot2_SequenceOfCertRequestExtensions;
-static gint ett_ieee1609dot2_CertRequestExtension;
-static gint ett_ieee1609dot2_T_permissions_01;
+static int ett_ieee1609dot2_SequenceOfUint8;
+static int ett_ieee1609dot2_SequenceOfUint16;
+static int ett_ieee1609dot2_SequenceOfHashedId3;
+static int ett_ieee1609dot2_ValidityPeriod;
+static int ett_ieee1609dot2_Duration;
+static int ett_ieee1609dot2_GeographicRegion;
+static int ett_ieee1609dot2_CircularRegion;
+static int ett_ieee1609dot2_RectangularRegion;
+static int ett_ieee1609dot2_SequenceOfRectangularRegion;
+static int ett_ieee1609dot2_PolygonalRegion;
+static int ett_ieee1609dot2_TwoDLocation;
+static int ett_ieee1609dot2_IdentifiedRegion;
+static int ett_ieee1609dot2_SequenceOfIdentifiedRegion;
+static int ett_ieee1609dot2_CountryAndRegions;
+static int ett_ieee1609dot2_CountryAndSubregions;
+static int ett_ieee1609dot2_RegionAndSubregions;
+static int ett_ieee1609dot2_SequenceOfRegionAndSubregions;
+static int ett_ieee1609dot2_ThreeDLocation;
+static int ett_ieee1609dot2_Signature;
+static int ett_ieee1609dot2_EcdsaP256Signature;
+static int ett_ieee1609dot2_EcdsaP384Signature;
+static int ett_ieee1609dot2_EcsigP256Signature;
+static int ett_ieee1609dot2_EccP256CurvePoint;
+static int ett_ieee1609dot2_T_uncompressedP256;
+static int ett_ieee1609dot2_EccP384CurvePoint;
+static int ett_ieee1609dot2_T_uncompressedP384;
+static int ett_ieee1609dot2_EciesP256EncryptedKey;
+static int ett_ieee1609dot2_EcencP256EncryptedKey;
+static int ett_ieee1609dot2_EncryptionKey;
+static int ett_ieee1609dot2_PublicEncryptionKey;
+static int ett_ieee1609dot2_BasePublicEncryptionKey;
+static int ett_ieee1609dot2_PublicVerificationKey;
+static int ett_ieee1609dot2_SymmetricEncryptionKey;
+static int ett_ieee1609dot2_PsidSsp;
+static int ett_ieee1609dot2_SequenceOfPsidSsp;
+static int ett_ieee1609dot2_ServiceSpecificPermissions;
+static int ett_ieee1609dot2_PsidSspRange;
+static int ett_ieee1609dot2_SequenceOfPsidSspRange;
+static int ett_ieee1609dot2_SspRange;
+static int ett_ieee1609dot2_BitmapSspRange;
+static int ett_ieee1609dot2_SequenceOfOctetString;
+static int ett_ieee1609dot2_GroupLinkageValue;
+static int ett_ieee1609dot2_SequenceOfLinkageSeed;
+static int ett_ieee1609dot2_CrlContents;
+static int ett_ieee1609dot2_CrlPriorityInfo;
+static int ett_ieee1609dot2_TypeSpecificCrlContents;
+static int ett_ieee1609dot2_ToBeSignedHashIdCrl;
+static int ett_ieee1609dot2_SequenceOfHashBasedRevocationInfo;
+static int ett_ieee1609dot2_HashBasedRevocationInfo;
+static int ett_ieee1609dot2_ToBeSignedLinkageValueCrl;
+static int ett_ieee1609dot2_SequenceOfJMaxGroup;
+static int ett_ieee1609dot2_JMaxGroup;
+static int ett_ieee1609dot2_SequenceOfLAGroup;
+static int ett_ieee1609dot2_LAGroup;
+static int ett_ieee1609dot2_SequenceOfIMaxGroup;
+static int ett_ieee1609dot2_IMaxGroup;
+static int ett_ieee1609dot2_SequenceOfIndividualRevocation;
+static int ett_ieee1609dot2_IndividualRevocation;
+static int ett_ieee1609dot2_SequenceOfGroupCrlEntry;
+static int ett_ieee1609dot2_GroupCrlEntry;
+static int ett_ieee1609dot2_ToBeSignedLinkageValueCrlWithAlgIdentifier;
+static int ett_ieee1609dot2_SequenceOfGroupSingleSeedCrlEntry;
+static int ett_ieee1609dot2_GroupSingleSeedCrlEntry;
+static int ett_ieee1609dot2_SecuredCrl;
+static int ett_ieee1609dot2_SecuredCrlContent;
+static int ett_ieee1609dot2_CrlSignedData;
+static int ett_ieee1609dot2_CrlToBeSignedData;
+static int ett_ieee1609dot2_CrlSignedDataPayload;
+static int ett_ieee1609dot2_Ieee1609Dot2CrlData;
+static int ett_ieee1609dot2_Ieee1609Dot2CrlContent;
+static int ett_ieee1609dot2_Ieee1609Dot2Data;
+static int ett_ieee1609dot2_Ieee1609Dot2Content;
+static int ett_ieee1609dot2_SignedData;
+static int ett_ieee1609dot2_ToBeSignedData;
+static int ett_ieee1609dot2_SignedDataPayload;
+static int ett_ieee1609dot2_HashedData;
+static int ett_ieee1609dot2_HeaderInfo;
+static int ett_ieee1609dot2_MissingCrlIdentifier;
+static int ett_ieee1609dot2_ContributedExtensionBlocks;
+static int ett_ieee1609dot2_ContributedExtensionBlock;
+static int ett_ieee1609dot2_T_extns;
+static int ett_ieee1609dot2_SignerIdentifier;
+static int ett_ieee1609dot2_EncryptedData;
+static int ett_ieee1609dot2_RecipientInfo;
+static int ett_ieee1609dot2_SequenceOfRecipientInfo;
+static int ett_ieee1609dot2_SymmRecipientInfo;
+static int ett_ieee1609dot2_PKRecipientInfo;
+static int ett_ieee1609dot2_EncryptedDataEncryptionKey;
+static int ett_ieee1609dot2_SymmetricCiphertext;
+static int ett_ieee1609dot2_One28BitCcmCiphertext;
+static int ett_ieee1609dot2_SequenceOfCertificate;
+static int ett_ieee1609dot2_CertificateBase;
+static int ett_ieee1609dot2_IssuerIdentifier;
+static int ett_ieee1609dot2_ToBeSignedCertificate;
+static int ett_ieee1609dot2_T_flags;
+static int ett_ieee1609dot2_CertificateId;
+static int ett_ieee1609dot2_LinkageData;
+static int ett_ieee1609dot2_EndEntityType;
+static int ett_ieee1609dot2_PsidGroupPermissions;
+static int ett_ieee1609dot2_SequenceOfPsidGroupPermissions;
+static int ett_ieee1609dot2_SubjectPermissions;
+static int ett_ieee1609dot2_VerificationKeyIndicator;
+static int ett_ieee1609dot2_SequenceOfAppExtensions;
+static int ett_ieee1609dot2_AppExtension;
+static int ett_ieee1609dot2_SequenceOfCertIssueExtensions;
+static int ett_ieee1609dot2_CertIssueExtension;
+static int ett_ieee1609dot2_T_permissions;
+static int ett_ieee1609dot2_SequenceOfCertRequestExtensions;
+static int ett_ieee1609dot2_CertRequestExtension;
+static int ett_ieee1609dot2_T_permissions_01;
static dissector_table_t unsecured_data_subdissector_table;
static dissector_table_t ssp_subdissector_table;
@@ -462,7 +462,7 @@ dissect_ieee1609dot2_Uint32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ieee1609dot2_Uint64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_oer_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(18446744073709551615), NULL, FALSE);
+ 0U, UINT64_C(18446744073709551615), NULL, FALSE);
return offset;
}
@@ -3023,7 +3023,7 @@ static const oer_sequence_t Ieee1609Dot2Data_sequence[] = {
static int
dissect_ieee1609dot2_Ieee1609Dot2Data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Ieee1609Dot2Data → Ieee1609Dot2Content → SignedData → ToBeSignedData → SignedDataPayload → Ieee1609Dot2Data
+ // Ieee1609Dot2Data -> Ieee1609Dot2Content -> SignedData -> ToBeSignedData -> SignedDataPayload -> Ieee1609Dot2Data
actx->pinfo->dissection_depth += 5;
increment_dissection_depth(actx->pinfo);
actx->private_data = (void*)wmem_new0(actx->pinfo->pool, ieee1609_private_data_t);
diff --git a/epan/dissectors/packet-ieee1722.c b/epan/dissectors/packet-ieee1722.c
index b97970541b..cb39146c51 100644
--- a/epan/dissectors/packet-ieee1722.c
+++ b/epan/dissectors/packet-ieee1722.c
@@ -800,7 +800,7 @@ static dissector_handle_t avb1722_can_handle;
static int proto_can;
static int proto_canfd;
-static gboolean can_heuristic_first = FALSE;
+static bool can_heuristic_first;
/**************************************************************************************************/
/* ACF LIN Message */
@@ -868,7 +868,7 @@ static int dissect_1722_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
guint subtype = 0;
gint offset = 0;
int dissected_size;
- int * const fields[] = {
+ static int * const fields[] = {
&hf_1722_svfield,
&hf_1722_verfield,
NULL
@@ -1014,7 +1014,7 @@ static int dissect_1722_61883(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
guint numSourcePackets = 0;
guint i = 0;
guint j = 0;
- int * const fields[] = {
+ static int * const fields[] = {
&hf_1722_61883_mrfield,
&hf_1722_61883_gvfield,
&hf_1722_61883_tvfield,
@@ -1469,12 +1469,12 @@ static int dissect_1722_aaf (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
guint format = 0;
guint i = 0;
guint j = 0;
- int * const fields[] = {
+ static int * const fields[] = {
&hf_1722_aaf_mrfield,
&hf_1722_aaf_tvfield,
NULL
};
- int * const fields_pcm[] = {
+ static int * const fields_pcm[] = {
&hf_1722_aaf_sparse_timestamp,
&hf_1722_aaf_evtfield,
NULL
@@ -1701,13 +1701,13 @@ static int dissect_1722_cvf (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
guint32 datalen, format, format_subtype = 0;
proto_tree *ti_format, *ti_datalen;
- int * const fields[] = {
+ static int * const fields[] = {
&hf_1722_cvf_mrfield,
&hf_1722_cvf_tvfield,
NULL
};
- int * const fields_cvf[] = {
+ static int * const fields_cvf[] = {
&hf_1722_cvf_marker_bit,
&hf_1722_cvf_evtfield,
NULL
@@ -1716,7 +1716,7 @@ static int dissect_1722_cvf (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/* The PTV field is only defined for the H264 subtype,
* reserved for others.
*/
- int * const fields_h264[] = {
+ static int * const fields_h264[] = {
&hf_1722_cvf_h264_ptvfield,
&hf_1722_cvf_marker_bit,
&hf_1722_cvf_evtfield,
@@ -1895,13 +1895,13 @@ static int dissect_1722_crf (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
gint offset = 1;
guint datalen = 0;
guint j = 0;
- int * const fields[] = {
+ static int * const fields[] = {
&hf_1722_crf_mrfield,
&hf_1722_crf_fsfield,
&hf_1722_crf_tufield,
NULL
};
- int * const pull_frequency[] = {
+ static int * const pull_frequency[] = {
&hf_1722_crf_pull,
&hf_1722_crf_base_frequency,
NULL
@@ -2044,7 +2044,7 @@ static int dissect_1722_ntscf (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
guint captured_length = tvb_captured_length(tvb);
gint captured_payload_length;
- int * const fields[] = {
+ static int * const fields[] = {
&hf_1722_ntscf_rfield,
NULL,
};
@@ -2525,19 +2525,19 @@ static int dissect_1722_acf_can_common(tvbuff_t *tvb, packet_info *pinfo, proto_
: IEEE_1722_ACF_CAN_HEADER_SIZE;
- int * const fields[] = {
+ static int * const fields[] = {
&hf_1722_can_mtvfield,
&hf_1722_can_fdffield,
NULL,
};
- int * const can_std_flags[] = {
+ static int * const can_std_flags[] = {
&hf_1722_can_rtrfield,
&hf_1722_can_efffield,
NULL
};
- int * const can_fd_flags[] = {
+ static int * const can_fd_flags[] = {
&hf_1722_can_efffield,
&hf_1722_can_brsfield,
&hf_1722_can_esifield,
@@ -2827,7 +2827,7 @@ static int dissect_1722_acf_lin(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
guint offset = 0;
guint captured_length = tvb_captured_length(tvb);
guint32 pad_length;
- gboolean mtv;
+ bool mtv;
guint32 bus_id;
guint32 lin_id;
gint payload_length;
diff --git a/epan/dissectors/packet-ieee1905.c b/epan/dissectors/packet-ieee1905.c
index c521b7c72a..05906bc166 100644
--- a/epan/dissectors/packet-ieee1905.c
+++ b/epan/dissectors/packet-ieee1905.c
@@ -237,6 +237,22 @@ static int hf_ieee1905_bss_client_mac;
static int hf_ieee1905_bss_client_last_assoc;
static int hf_ieee1905_ap_vht_supported_vht_tx_mcs;
static int hf_ieee1905_ap_vht_supported_vht_rx_mcs;
+static int hf_ieee1905_ap_vht_tx_mcs_map_1ss;
+static int hf_ieee1905_ap_vht_tx_mcs_map_2ss;
+static int hf_ieee1905_ap_vht_tx_mcs_map_3ss;
+static int hf_ieee1905_ap_vht_tx_mcs_map_4ss;
+static int hf_ieee1905_ap_vht_tx_mcs_map_5ss;
+static int hf_ieee1905_ap_vht_tx_mcs_map_6ss;
+static int hf_ieee1905_ap_vht_tx_mcs_map_7ss;
+static int hf_ieee1905_ap_vht_tx_mcs_map_8ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_1ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_2ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_3ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_4ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_5ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_6ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_7ss;
+static int hf_ieee1905_ap_vht_rx_mcs_map_8ss;
static int hf_ieee1905_channel_pref_preference;
static int hf_ieee1905_channel_pref_reason;
static int hf_ieee1905_channel_preference_radio_id;
@@ -781,6 +797,8 @@ static gint ett_ap_radio_basic_cap_class_tree;
static gint ett_radio_basic_non_op_list;
static gint ett_ht_cap_flags;
static gint ett_vht_cap_flags;
+static gint ett_ieee1905_ap_vht_tx_mcs_set;
+static gint ett_ieee1905_ap_vht_rx_mcs_set;
static gint ett_assoc_clients_bss_list;
static gint ett_assoc_client_bss_tree;
static gint ett_assoc_client_list;
@@ -3161,6 +3179,39 @@ dissect_ap_ht_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_,
/*
* Dissect an AP VHT Capabilities TLV
*/
+
+static const value_string vht_supported_mcs_vals[] = {
+ { 0, "Support for VHT-MCS 0-7" },
+ { 1, "Support for VHT-MCS 0-8" },
+ { 2, "Support for VHT-MCS 0-9" },
+ { 3, "Not supported" },
+ { 0, NULL }
+};
+
+static int * const tx_vht_mcs_map_headers[] = {
+ &hf_ieee1905_ap_vht_tx_mcs_map_8ss,
+ &hf_ieee1905_ap_vht_tx_mcs_map_7ss,
+ &hf_ieee1905_ap_vht_tx_mcs_map_6ss,
+ &hf_ieee1905_ap_vht_tx_mcs_map_5ss,
+ &hf_ieee1905_ap_vht_tx_mcs_map_4ss,
+ &hf_ieee1905_ap_vht_tx_mcs_map_3ss,
+ &hf_ieee1905_ap_vht_tx_mcs_map_2ss,
+ &hf_ieee1905_ap_vht_tx_mcs_map_1ss,
+ NULL
+};
+
+static int * const rx_vht_mcs_map_headers[] = {
+ &hf_ieee1905_ap_vht_rx_mcs_map_8ss,
+ &hf_ieee1905_ap_vht_rx_mcs_map_7ss,
+ &hf_ieee1905_ap_vht_rx_mcs_map_6ss,
+ &hf_ieee1905_ap_vht_rx_mcs_map_5ss,
+ &hf_ieee1905_ap_vht_rx_mcs_map_4ss,
+ &hf_ieee1905_ap_vht_rx_mcs_map_3ss,
+ &hf_ieee1905_ap_vht_rx_mcs_map_2ss,
+ &hf_ieee1905_ap_vht_rx_mcs_map_1ss,
+ NULL
+};
+
static int
dissect_ap_vht_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_,
proto_tree *tree, guint offset)
@@ -3181,12 +3232,16 @@ dissect_ap_vht_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_,
tvb, offset, 6, ENC_NA);
offset += 6;
- proto_tree_add_item(tree, hf_ieee1905_ap_vht_supported_vht_tx_mcs,
- tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_bitmask_with_flags(tree, tvb, offset,
+ hf_ieee1905_ap_vht_supported_vht_tx_mcs,
+ ett_ieee1905_ap_vht_tx_mcs_set,
+ tx_vht_mcs_map_headers, ENC_BIG_ENDIAN, BMT_NO_APPEND);
offset += 2;
- proto_tree_add_item(tree, hf_ieee1905_ap_vht_supported_vht_rx_mcs,
- tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_bitmask_with_flags(tree, tvb, offset,
+ hf_ieee1905_ap_vht_supported_vht_rx_mcs,
+ ett_ieee1905_ap_vht_rx_mcs_set,
+ rx_vht_mcs_map_headers, ENC_BIG_ENDIAN, BMT_NO_APPEND);
offset += 2;
proto_tree_add_bitmask(tree, tvb, offset, hf_ieee1905_vht_cap_flags,
@@ -3279,26 +3334,26 @@ static const value_string max_he_mcs_8_ss_vals[] = {
};
static int * const rx_he_mcs_map_headers[] = {
- &hf_ieee1905_ap_he_rx_mcs_map_1ss,
- &hf_ieee1905_ap_he_rx_mcs_map_2ss,
- &hf_ieee1905_ap_he_rx_mcs_map_3ss,
- &hf_ieee1905_ap_he_rx_mcs_map_4ss,
- &hf_ieee1905_ap_he_rx_mcs_map_5ss,
- &hf_ieee1905_ap_he_rx_mcs_map_6ss,
- &hf_ieee1905_ap_he_rx_mcs_map_7ss,
&hf_ieee1905_ap_he_rx_mcs_map_8ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_7ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_6ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_5ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_4ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_3ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_2ss,
+ &hf_ieee1905_ap_he_rx_mcs_map_1ss,
NULL
};
static int * const tx_he_mcs_map_headers[] = {
- &hf_ieee1905_ap_he_tx_mcs_map_1ss,
- &hf_ieee1905_ap_he_tx_mcs_map_2ss,
- &hf_ieee1905_ap_he_tx_mcs_map_3ss,
- &hf_ieee1905_ap_he_tx_mcs_map_4ss,
- &hf_ieee1905_ap_he_tx_mcs_map_5ss,
- &hf_ieee1905_ap_he_tx_mcs_map_6ss,
- &hf_ieee1905_ap_he_tx_mcs_map_7ss,
&hf_ieee1905_ap_he_tx_mcs_map_8ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_7ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_6ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_5ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_4ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_3ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_2ss,
+ &hf_ieee1905_ap_he_tx_mcs_map_1ss,
NULL
};
@@ -3331,7 +3386,7 @@ dissect_ap_he_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_,
proto_tree_add_bitmask_with_flags(mcs_set, tvb, offset,
hf_ieee1905_ap_he_cap_tx_mcs_le_80_mhz,
- ett_ieee1905_ap_he_rx_mcs_set,
+ ett_ieee1905_ap_he_tx_mcs_set,
tx_he_mcs_map_headers, ENC_BIG_ENDIAN, BMT_NO_APPEND);
offset += 2;
@@ -3348,7 +3403,7 @@ dissect_ap_he_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_,
proto_tree_add_bitmask_with_flags(mcs_set, tvb, offset,
hf_ieee1905_ap_he_cap_tx_mcs_160_mhz,
- ett_ieee1905_ap_he_rx_mcs_set,
+ ett_ieee1905_ap_he_tx_mcs_set,
tx_he_mcs_map_headers, ENC_BIG_ENDIAN, BMT_NO_APPEND);
offset += 2;
@@ -3366,7 +3421,7 @@ dissect_ap_he_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_,
proto_tree_add_bitmask_with_flags(mcs_set, tvb, offset,
hf_ieee1905_ap_he_cap_tx_mcs_80p80_mhz,
- ett_ieee1905_ap_he_rx_mcs_set,
+ ett_ieee1905_ap_he_tx_mcs_set,
tx_he_mcs_map_headers, ENC_BIG_ENDIAN, BMT_NO_APPEND);
offset += 2;
@@ -9479,12 +9534,108 @@ proto_register_ieee1905(void)
FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_ieee1905_ap_vht_supported_vht_tx_mcs,
- { "Supported VHY Tx MCS", "ieee1905.vht.supported_tx_mcs",
- FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { "Supported VHT Tx MCS", "ieee1905.ap_vht.supported_tx_mcs",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_ieee1905_ap_vht_supported_vht_rx_mcs,
- { "Supported VHY Rx MCS", "ieee1905.vht.supported_rx_mcs",
- FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { "Supported VHT Rx MCS", "ieee1905.ap_vht.supported_rx_mcs",
+ FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_1ss,
+ { "Max Tx VHT MCS for 1 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_1_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0003, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_2ss,
+ { "Max Tx VHT MCS for 2 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_2_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x000C, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_3ss,
+ { "Max Tx VHT MCS for 3 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_3_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0030, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_4ss,
+ { "Max Tx VHT MCS for 4 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_4_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x00C0, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_5ss,
+ { "Max Tx VHT MCS for 5 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_5_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0300, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_6ss,
+ { "Max Tx VHT MCS for 6 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_6_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0C00, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_7ss,
+ { "Max Tx VHT MCS for 7 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_7_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x3000, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_tx_mcs_map_8ss,
+ { "Max Tx VHT MCS for 8 SS",
+ "ieee1905.ap_vht.max_tx_vht_mcs_8_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0xC000, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_1ss,
+ { "Max Rx VHT MCS for 1 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_1_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0003, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_2ss,
+ { "Max Rx VHT MCS for 2 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_2_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x000C, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_3ss,
+ { "Max Rx VHT MCS for 3 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_3_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0030, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_4ss,
+ { "Max Rx VHT MCS for 4 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_4_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x00C0, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_5ss,
+ { "Max Rx VHT MCS for 5 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_5_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0300, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_6ss,
+ { "Max Rx VHT MCS for 6 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_6_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x0C00, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_7ss,
+ { "Max Rx VHT MCS for 7 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_7_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0x3000, NULL, HFILL }},
+
+ { &hf_ieee1905_ap_vht_rx_mcs_map_8ss,
+ { "Max Rx VHT MCS for 8 SS",
+ "ieee1905.ap_vht.max_rx_vht_mcs_8_ss",
+ FT_UINT16, BASE_DEC, VALS(vht_supported_mcs_vals),
+ 0xC000, NULL, HFILL }},
{ &hf_ieee1905_assoc_clients_bss_count,
{ "Included BSS count", "ieee1905.assoc_client.bss_count",
@@ -9594,49 +9745,49 @@ proto_register_ieee1905(void)
{ "Max Tx HE-MCS for 1 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_1_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_1_ss_vals),
- 0xC000, NULL, HFILL }},
+ 0x0003, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_2ss,
{ "Max Tx HE-MCS for 2 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_2_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_2_ss_vals),
- 0x3000, NULL, HFILL }},
+ 0x000C, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_3ss,
{ "Max Tx HE-MCS for 3 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_3_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_3_ss_vals),
- 0x0C00, NULL, HFILL }},
+ 0x0030, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_4ss,
{ "Max Tx HE-MCS for 4 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_4_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_4_ss_vals),
- 0x0300, NULL, HFILL }},
+ 0x00C0, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_5ss,
{ "Max Tx HE-MCS for 5 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_5_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_5_ss_vals),
- 0x00C0, NULL, HFILL }},
+ 0x0300, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_6ss,
{ "Max Tx HE-MCS for 6 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_6_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_6_ss_vals),
- 0x0030, NULL, HFILL }},
+ 0x0C00, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_7ss,
{ "Max Tx HE-MCS for 7 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_7_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_7_ss_vals),
- 0x000C, NULL, HFILL }},
+ 0x3000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_tx_mcs_map_8ss,
{ "Max Tx HE-MCS for 8 SS",
"ieee1905.ap_he_capability.max_tx_he_mcs_8_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_8_ss_vals),
- 0x0003, NULL, HFILL }},
+ 0xC000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_cap_rx_mcs_le_80_mhz,
{ "Supported Rx HE-MCS <= 80 MHz",
@@ -9647,49 +9798,49 @@ proto_register_ieee1905(void)
{ "Max Rx HE-MCS for 1 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_1_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_1_ss_vals),
- 0xC000, NULL, HFILL }},
+ 0x0003, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_2ss,
{ "Max Rx HE-MCS for 2 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_2_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_2_ss_vals),
- 0x3000, NULL, HFILL }},
+ 0x000C, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_3ss,
{ "Max Rx HE-MCS for 3 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_3_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_3_ss_vals),
- 0x0C00, NULL, HFILL }},
+ 0x0030, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_4ss,
{ "Max Rx HE-MCS for 4 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_4_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_4_ss_vals),
- 0x0300, NULL, HFILL }},
+ 0x00C0, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_5ss,
{ "Max Rx HE-MCS for 5 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_5_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_5_ss_vals),
- 0x00C0, NULL, HFILL }},
+ 0x0300, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_6ss,
{ "Max Rx HE-MCS for 6 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_6_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_6_ss_vals),
- 0x0030, NULL, HFILL }},
+ 0x0C00, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_7ss,
{ "Max Rx HE-MCS for 7 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_7_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_7_ss_vals),
- 0x000C, NULL, HFILL }},
+ 0x3000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_rx_mcs_map_8ss,
{ "Max Rx HE-MCS for 8 SS",
"ieee1905.ap_he_capability.max_rx_he_mcs_8_ss",
FT_UINT16, BASE_DEC, VALS(max_he_mcs_8_ss_vals),
- 0x0003, NULL, HFILL }},
+ 0xC000, NULL, HFILL }},
{ &hf_ieee1905_ap_he_cap_tx_mcs_160_mhz,
{ "Supported Tx HE-MCS 160 MHz",
@@ -11815,6 +11966,8 @@ proto_register_ieee1905(void)
&ett_radio_basic_non_op_list,
&ett_ht_cap_flags,
&ett_vht_cap_flags,
+ &ett_ieee1905_ap_vht_tx_mcs_set,
+ &ett_ieee1905_ap_vht_rx_mcs_set,
&ett_assoc_clients_bss_list,
&ett_assoc_client_bss_tree,
&ett_assoc_client_list,
diff --git a/epan/dissectors/packet-ieee80211-prism.c b/epan/dissectors/packet-ieee80211-prism.c
index edf1d493d6..bf04cc7e8e 100644
--- a/epan/dissectors/packet-ieee80211-prism.c
+++ b/epan/dissectors/packet-ieee80211-prism.c
@@ -605,7 +605,7 @@ prism_rate_return_sig(wmem_allocator_t *scope, guint32 rate_phy1, guint32 rate_p
return result;
}
-static gboolean
+static bool
capture_prism(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint32 cookie;
diff --git a/epan/dissectors/packet-ieee80211-radio.c b/epan/dissectors/packet-ieee80211-radio.c
index 47028d5849..bc05e27833 100644
--- a/epan/dissectors/packet-ieee80211-radio.c
+++ b/epan/dissectors/packet-ieee80211-radio.c
@@ -102,9 +102,9 @@ static int wlan_radio_tap;
static int wlan_radio_timeline_tap;
/* Settings */
-static gboolean wlan_radio_always_short_preamble = FALSE;
-static gboolean wlan_radio_tsf_at_end = TRUE;
-static gboolean wlan_radio_timeline_enabled = FALSE;
+static bool wlan_radio_always_short_preamble;
+static bool wlan_radio_tsf_at_end = true;
+static bool wlan_radio_timeline_enabled;
static const value_string phy_vals[] = {
{ PHDR_802_11_PHY_11_FHSS, "802.11 FHSS" },
@@ -118,6 +118,7 @@ static const value_string phy_vals[] = {
{ PHDR_802_11_PHY_11AD, "802.11ad (DMG)" },
{ PHDR_802_11_PHY_11AH, "802.11ah (S1G)" },
{ PHDR_802_11_PHY_11AX, "802.11ax (HE)" },
+ { PHDR_802_11_PHY_11BE, "802.11be (EHT)" },
{ 0, NULL }
};
@@ -876,9 +877,9 @@ dissect_wlan_radio_phdr(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
struct ieee_802_11b *info_b = &phy_info->info_11b;
has_short_preamble = info_b->has_short_preamble;
- short_preamble = info_b->short_preamble;
if (has_short_preamble) {
+ short_preamble = info_b->short_preamble;
proto_tree_add_boolean(radio_tree, hf_wlan_radio_short_preamble, tvb, 0, 0,
short_preamble);
}
diff --git a/epan/dissectors/packet-ieee80211-radiotap-defs.h b/epan/dissectors/packet-ieee80211-radiotap-defs.h
index 66398ee957..8e979fe4f7 100644
--- a/epan/dissectors/packet-ieee80211-radiotap-defs.h
+++ b/epan/dissectors/packet-ieee80211-radiotap-defs.h
@@ -452,6 +452,10 @@ struct ieee80211_radiotap_tlv {
#define IEEE80211_RADIOTAP_HE_RESERVED_D4_B15 0x8000
#define IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_ALLOC_MASK 0x000F
+#define IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_20 0
+#define IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_40 1
+#define IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_80 2
+#define IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_160 3
#define IEEE80211_RADIOTAP_HE_GI_MASK 0x0030
#define IEEE80211_RADIOTAP_HE_GI_0_POINT_8_MICRO 0
#define IEEE80211_RADIOTAP_HE_GI_1_POINT_6_MICRO 1
diff --git a/epan/dissectors/packet-ieee80211-radiotap-iter.c b/epan/dissectors/packet-ieee80211-radiotap-iter.c
index e7a401c852..0245a57054 100644
--- a/epan/dissectors/packet-ieee80211-radiotap-iter.c
+++ b/epan/dissectors/packet-ieee80211-radiotap-iter.c
@@ -61,7 +61,7 @@ static const struct radiotap_align_size rtap_namespace_sizes[] = {
static const struct ieee80211_radiotap_namespace radiotap_ns = {
rtap_namespace_sizes,
- (int)(sizeof(rtap_namespace_sizes) / sizeof(rtap_namespace_sizes[0])),
+ (int)array_length(rtap_namespace_sizes),
0,
0
};
diff --git a/epan/dissectors/packet-ieee80211-radiotap.c b/epan/dissectors/packet-ieee80211-radiotap.c
index 13a0853bc5..82338f74f8 100644
--- a/epan/dissectors/packet-ieee80211-radiotap.c
+++ b/epan/dissectors/packet-ieee80211-radiotap.c
@@ -667,8 +667,8 @@ static capture_dissector_handle_t ieee80211_datapad_cap_handle;
static dissector_table_t vendor_dissector_table;
/* Settings */
-static gboolean radiotap_bit14_fcs = FALSE;
-static gboolean radiotap_interpret_high_rates_as_mcs = FALSE;
+static bool radiotap_bit14_fcs;
+static bool radiotap_interpret_high_rates_as_mcs;
#define USE_FCS_BIT 0
#define ASSUME_FCS_PRESENT 1
@@ -1079,7 +1079,7 @@ static const range_string tlv_type_rvals[] = {
* dissectors, such as tcpdump(8), expect the padding.
*/
-static gboolean
+static bool
capture_radiotap(const guchar * pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint16 it_len;
@@ -4114,7 +4114,7 @@ dissect_radiotap(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* u
bw = tvb_get_guint8(tvb, offset + 3) & IEEE80211_RADIOTAP_VHT_BW_MASK;
phdr.phy_info.info_11ac.has_bandwidth = TRUE;
phdr.phy_info.info_11ac.bandwidth = bw;
- if (bw < sizeof(ieee80211_vht_bw2rate_index)/sizeof(ieee80211_vht_bw2rate_index[0]))
+ if (bw < array_length(ieee80211_vht_bw2rate_index))
bandwidth = ieee80211_vht_bw2rate_index[bw];
else
can_calculate_rate = FALSE; /* unknown bandwidth */
diff --git a/epan/dissectors/packet-ieee80211-wlancap.c b/epan/dissectors/packet-ieee80211-wlancap.c
index 4421e76b10..c0027f6585 100644
--- a/epan/dissectors/packet-ieee80211-wlancap.c
+++ b/epan/dissectors/packet-ieee80211-wlancap.c
@@ -68,7 +68,7 @@ static dissector_handle_t wlancap_handle;
static capture_dissector_handle_t wlancap_cap_handle;
static capture_dissector_handle_t ieee80211_cap_handle;
-static gboolean
+static bool
capture_wlancap(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint32 length;
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index cf4ff8b152..c2a973b957 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -115,7 +115,7 @@ static const unit_name_string units_10_ms = { " times 10 milliseconds", NULL };
* This is based on looking at BEACONs, or perhaps from the radiotap header
* if we get one.
*/
-static wmem_map_t *sta_prop_hash = NULL;
+static wmem_map_t *sta_prop_hash;
/*
* Not sure that they can be both, so are bit values wanted?
@@ -148,19 +148,19 @@ sta_prop_equal_fn(gconstpointer v, gconstpointer w)
#define GENMASK64(h, l) (((G_GUINT64_CONSTANT(1) << ((h) - (l) + 1)) - 1) << (l))
/* Defragment fragmented 802.11 datagrams */
-static gboolean wlan_defragment = TRUE;
+static bool wlan_defragment = true;
/* call subdissector for retransmitted frames */
-static gboolean wlan_subdissector = TRUE;
+static bool wlan_subdissector = true;
/* Check for the presence of the 802.11 FCS */
-static gboolean wlan_check_fcs = FALSE;
+static bool wlan_check_fcs;
/* Check the FCS checksum */
-static gboolean wlan_check_checksum = FALSE;
+static bool wlan_check_checksum;
/* Ignore vendor-specific HT elements */
-static gboolean wlan_ignore_draft_ht = FALSE;
+static bool wlan_ignore_draft_ht;
/* Ignore the Protection bit; assume packet is decrypted */
#define WLAN_IGNORE_PROT_NO 0
@@ -169,18 +169,18 @@ static gboolean wlan_ignore_draft_ht = FALSE;
static gint wlan_ignore_prot = WLAN_IGNORE_PROT_NO;
/* The Key MIC len has been set by the user */
-static gboolean wlan_key_mic_len_enable = FALSE;
-static guint wlan_key_mic_len = 0;
+static bool wlan_key_mic_len_enable;
+static guint wlan_key_mic_len;
/* Counter incremented on each (re)association
* This value will be assiged to each packet's pinfo->srcport/pinfo->destport
* as a way to uniquely make a one to one mapping between conversations and
* associations
*/
-static guint32 association_counter = 0;
+static guint32 association_counter;
/* Treat all Wi-Fi frames as being S1G frames where it is important */
-static gboolean treat_as_s1g = FALSE;
+static bool treat_as_s1g;
/* Table for reassembly of fragments. */
static reassembly_table wlan_reassembly_table;
@@ -192,9 +192,9 @@ static struct _wlan_stats wlan_stats;
* UAT for WEP decoder
*-------------------------------------
*/
-static uat_wep_key_record_t *uat_wep_key_records = NULL;
-static uat_t *wep_uat = NULL;
-static guint num_wepkeys_uat = 0;
+static uat_wep_key_record_t *uat_wep_key_records;
+static uat_t *wep_uat;
+static guint num_wepkeys_uat;
static void *
uat_wep_key_record_copy_cb(void* n, const void* o, size_t siz _U_)
@@ -284,7 +284,7 @@ UAT_VS_DEF(uat_wep_key_records, key, uat_wep_key_record_t, guint8, 0, STRING_KEY
UAT_CSTRING_CB_DEF(uat_wep_key_records, string, uat_wep_key_record_t)
/* Stuff for the WEP/WPA/WPA2 decoder */
-static gboolean enable_decryption = TRUE;
+static bool enable_decryption = true;
static void
ieee_80211_add_tagged_parameters(tvbuff_t *tvb, int offset, packet_info *pinfo,
@@ -906,6 +906,7 @@ static const value_string ieee80211_supported_rates_vals[] = {
{ 0xE0, "48(B)" },
{ 0xEC, "54(B)" },
/* BSS membership selector */
+ { 0xFA, "HE PHY" },
{ 0xFB, "SAE Hash to Element Only" },
{ 0xFC, "EPD" }, /* 802.11ak */
{ 0xFD, "GLK" }, /* 802.11ak */
@@ -3688,7 +3689,7 @@ static const value_string fils_discovery_capability_fils_minimum_rate_he[] = {
static int proto_wlan;
static int proto_centrino;
static int proto_aggregate;
-static gboolean ieee80211_tvb_invalid = FALSE;
+static gboolean ieee80211_tvb_invalid;
/* ************************************************************************* */
/* Header field info values for FC-field */
@@ -3779,8 +3780,8 @@ typedef struct retransmit_key {
guint fnum;
} retransmit_key;
-static GHashTable *fc_analyse_retransmit_table = NULL;
-static GHashTable *fc_first_frame_table = NULL;
+static GHashTable *fc_analyse_retransmit_table;
+static GHashTable *fc_first_frame_table;
static int hf_ieee80211_fc_analysis_retransmission;
static int hf_ieee80211_fc_analysis_retransmission_frame;
@@ -5768,6 +5769,7 @@ static int hf_ieee80211_tag_power_capability_max;
static int hf_ieee80211_tag_tpc_report_trsmt_pow;
static int hf_ieee80211_tag_tpc_report_link_mrg;
+static int hf_ieee80211_tag_tpc_report_reserved;
static int hf_ieee80211_tag_supported_channels;
static int hf_ieee80211_tag_supported_channels_first;
@@ -8030,12 +8032,17 @@ static int hf_ieee80211_tag_rsnx;
static int hf_ieee80211_tag_rsnx_length;
static int hf_ieee80211_tag_rsnx_protected_twt_operations_support;
static int hf_ieee80211_tag_rsnx_sae_hash_to_element;
-static int hf_ieee80211_tag_rsnx_reserved_b6b7;
+static int hf_ieee80211_tag_rsnx_sae_pk;
+static int hf_ieee80211_tag_rsnx_protected_wur_frame_support;
/* octet 2 */
static int hf_ieee80211_tag_rsnx_secure_ltf_support;
static int hf_ieee80211_tag_rsnx_secure_rtt_supported;
-static int hf_ieee80211_tag_rsnx_range_protection_required;
-static int hf_ieee80211_tag_rsnx_reserved_b11thru15;
+static int hf_ieee80211_tag_rsnx_urnm_mfpr_x20;
+static int hf_ieee80211_tag_rsnx_protected_announce_support;
+static int hf_ieee80211_tag_rsnx_pbac;
+static int hf_ieee80211_tag_rsnx_extended_s1g_action_protection;
+static int hf_ieee80211_tag_rsnx_spp_amsdu_capable;
+static int hf_ieee80211_tag_rsnx_urnm_mfpr;
static int hf_ieee80211_tag_rsnx_reserved;
@@ -8740,7 +8747,7 @@ static int wlan_bssid_address_type = -1;
static int wlan_ra_ta_address_type = -1;
static int wlan_aid_address_type = -1;
-static int beacon_padding = 0; /* beacon padding bug */
+static int beacon_padding; /* beacon padding bug */
/*
* Check if we have an S1G STA
@@ -8852,7 +8859,7 @@ static const val64_string number_of_taps_values[] = {
{0, NULL}
};
-DOT11DECRYPT_CONTEXT dot11decrypt_ctx = { 0 };
+DOT11DECRYPT_CONTEXT dot11decrypt_ctx;
#define PSMP_STA_INFO_BROADCAST 0
#define PSMP_STA_INFO_MULTICAST 1
@@ -9052,7 +9059,7 @@ partial_tsf_custom(gchar *result, guint32 value)
/*
* We use this is displaying the ru allocation region.
*/
-static guint8 global_he_trigger_bw = 0;
+static guint8 global_he_trigger_bw;
static void
he_ru_allocation_base_custom(gchar *result, guint32 ru_allocation)
@@ -9633,7 +9640,7 @@ capture_ieee80211_common(const guchar * pd, int offset, int len,
/*
* Handle 802.11 with a variable-length link-layer header.
*/
-static gboolean
+static bool
capture_ieee80211(const guchar * pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
return capture_ieee80211_common (pd, offset, len, cpinfo, pseudo_header, FALSE);
@@ -9642,7 +9649,7 @@ capture_ieee80211(const guchar * pd, int offset, int len, capture_packet_info_t
/*
* Handle 802.11 with a variable-length link-layer header and data padding.
*/
-static gboolean
+static bool
capture_ieee80211_datapad(const guchar * pd, int offset, int len,
capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
@@ -12891,6 +12898,10 @@ add_ff_rm_tpc_report(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, in
proto_item *tpc_item;
/* 8.4.2.19 TPC Report element */
+ /* XXX - The TPC Report element is exactly the same as that dissected
+ * by ieee80211_tag_tpc_report(), so some of these fixed fields duplicate
+ * tagged fields.
+ */
tpc_item = proto_tree_add_item(tree, hf_ieee80211_ff_tpc, tvb, offset, 4, ENC_NA);
tpc_tree = proto_item_add_subtree(tpc_item, ett_tpc);
proto_tree_add_item(tpc_tree, hf_ieee80211_ff_tpc_element_id, tvb, offset, 1, ENC_NA);
@@ -23880,7 +23891,7 @@ static const value_string s1g_raw_control_raw_type[] = {
{ 0, NULL }
};
-static guint8 global_s1g_raw_type = 0;
+static guint8 global_s1g_raw_type;
static void
s1g_raw_type_options_custom(gchar *result, guint8 raw_type)
@@ -24424,7 +24435,7 @@ static const true_false_string relay_direction_tfs = {
"Sent by a non-AP STA"
};
-static guint relay_function_field = 0;
+static guint relay_function_field;
static void
enable_relay_function_custom(gchar *result, guint8 enable_relay_function)
@@ -27800,7 +27811,7 @@ dissect_multi_link_per_sta(tvbuff_t *tvb, packet_info *pinfo _U_,
gboolean seen_request = FALSE, seen_ext_request = FALSE;
while (tvb_captured_length_remaining(tvb, offset) >= 2) {
- const guint8 ids[] = { TAG_TSPEC };
+ static const guint8 ids[] = { TAG_TSPEC };
guint8 elt_type = 0;
if (tvb_captured_length_remaining(tvb, offset) < 2) {
@@ -31648,7 +31659,10 @@ ieee80211_tag_tpc_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U
return 1; /* Even with no data, we can't return 0 */
}
-/* 7.3.2.18 TPC Report element (35) */
+/* TPC Report element (35)
+ * 7.3.2.18 (Std 802.11-2007), 8.4.2.19 (Std 802.11-2012),
+ * 9.4.2.17 (Std 802.11-2016), 9.4.2.16 (Std 802.11-2020)
+ */
static int
ieee80211_tag_tpc_report(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
{
@@ -31663,11 +31677,25 @@ ieee80211_tag_tpc_report(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
}
proto_tree_add_item(tree, hf_ieee80211_tag_tpc_report_trsmt_pow, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_item_append_text(field_data->item_tag, " Transmit Power: %d", tvb_get_guint8(tvb, offset));
+ proto_item_append_text(field_data->item_tag, " Transmit Power: %d dBm", tvb_get_guint8(tvb, offset));
offset += 1;
- proto_tree_add_item(tree, hf_ieee80211_tag_tpc_report_link_mrg, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- proto_item_append_text(field_data->item_tag, ", Link Margin: %d", tvb_get_guint8(tvb, offset));
+ /*
+ * "The Link Margin field is reserved when a TPC Report element is
+ * included in a Beacon frame or Probe Response frame." - 2012 and later
+ */
+
+ uint32_t ftype = GPOINTER_TO_UINT(p_get_proto_data(wmem_file_scope(),
+ pinfo, proto_wlan,
+ FRAME_TYPE_KEY));
+
+ if (ftype == MGT_BEACON || ftype == MGT_PROBE_RESP) {
+ proto_tree_add_item(tree, hf_ieee80211_tag_tpc_report_reserved, tvb, offset, 1, ENC_NA);
+ } else {
+ proto_tree_add_item(tree, hf_ieee80211_tag_tpc_report_link_mrg, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+
+ proto_item_append_text(field_data->item_tag, ", Link Margin: %d dBm", tvb_get_guint8(tvb, offset));
+ }
return tvb_captured_length(tvb);
}
@@ -33322,7 +33350,7 @@ dissect_he_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
ENC_LITTLE_ENDIAN, BMT_NO_APPEND);
offset += 6;
- /* Get and isolate the phy channel witdth set */
+ /* Get and isolate the phy channel width set */
phy_channel_width_set = tvb_get_guint8(tvb, offset) >> 1;
/* Save this info so we can refer to it later. It might need to be global */
p_add_proto_data(wmem_file_scope(), pinfo, proto_wlan, HE_CHANNEL_WIDTH_KEY,
@@ -34166,7 +34194,7 @@ ieee80211_tag_scs_descriptor(tvbuff_t *tvb, packet_info *pinfo,
/* There can be zero or one TSPEC elements */
if (tvb_captured_length_remaining(tvb, offset) > 0) {
- const guint8 ids[] = { TAG_TSPEC };
+ static const guint8 ids[] = { TAG_TSPEC };
if(add_tagged_field(pinfo, tree, tvb, offset, 0, ids, G_N_ELEMENTS(ids), NULL) == 0){
/* Add an expert info */
}
@@ -34611,14 +34639,19 @@ ieee80211_tag_rsnx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
&hf_ieee80211_tag_rsnx_length,
&hf_ieee80211_tag_rsnx_protected_twt_operations_support,
&hf_ieee80211_tag_rsnx_sae_hash_to_element,
- &hf_ieee80211_tag_rsnx_reserved_b6b7,
+ &hf_ieee80211_tag_rsnx_sae_pk,
+ &hf_ieee80211_tag_rsnx_protected_wur_frame_support,
NULL
};
static int * const octet2[] = {
&hf_ieee80211_tag_rsnx_secure_ltf_support,
&hf_ieee80211_tag_rsnx_secure_rtt_supported,
- &hf_ieee80211_tag_rsnx_range_protection_required,
- &hf_ieee80211_tag_rsnx_reserved_b11thru15,
+ &hf_ieee80211_tag_rsnx_urnm_mfpr_x20,
+ &hf_ieee80211_tag_rsnx_protected_announce_support,
+ &hf_ieee80211_tag_rsnx_pbac,
+ &hf_ieee80211_tag_rsnx_extended_s1g_action_protection,
+ &hf_ieee80211_tag_rsnx_spp_amsdu_capable,
+ &hf_ieee80211_tag_rsnx_urnm_mfpr,
NULL
};
@@ -36327,6 +36360,8 @@ dissect_ieee80211_mgt(guint16 fcf, tvbuff_t *tvb, packet_info *pinfo, proto_tree
/*
* Add the frame type to the pinfo for those cases where it is needed
* to determine other things.
+ * XXX - Is there any reason why this is file scoped? Couldn't this
+ * be pinfo->pool?
*/
p_add_proto_data(wmem_file_scope(), pinfo, proto_wlan, FRAME_TYPE_KEY, GINT_TO_POINTER(COMPOSE_FRAME_TYPE(fcf)));
@@ -38282,6 +38317,10 @@ dissect_pv1_management(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tr
guint len_no_fcs, guint16 frame_control _U_)
{
+ /*
+ * XXX - We add COMPOSE_FRAME_TYPE(fcf) (which doesn't work for PV1) as
+ * proto_data FRAME_TYPE_KEY for PV0. Do we need to put something here?
+ */
switch (subtype) {
case PV1_MANAGEMENT_ACTION:
offset = dissect_pv1_mgmt_action(tvb, pinfo, tree, offset, phdr, len_no_fcs);
@@ -40509,7 +40548,7 @@ dissect_ieee80211_common(tvbuff_t *tvb, packet_info *pinfo,
p_add_proto_data(wmem_file_scope(), pinfo, proto_wlan, IS_S1G_KEY, GINT_TO_POINTER(isS1G));
- /* Handling for one-one mapping between assocations and conversations */
+ /* Handling for one-one mapping between associations and conversations */
if (!pinfo->fd->visited) {
p_add_proto_data(wmem_file_scope(), pinfo, proto_wlan, ASSOC_COUNTER_KEY,
GUINT_TO_POINTER(association_counter));
@@ -42756,7 +42795,7 @@ proto_register_ieee80211(void)
{&hf_ieee80211_ff_tpc_tx_power,
{"TPC Transmit Power", "wlan.rm.tpc.tx_power",
- FT_INT8, BASE_DEC, NULL, 0,
+ FT_INT8, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0,
NULL, HFILL }},
{&hf_ieee80211_ff_tpc_link_margin,
@@ -50137,11 +50176,11 @@ proto_register_ieee80211(void)
NULL, HFILL }},
{&hf_ieee80211_vht_mcsset_extended_nss_bw_capable,
- {"Extended NSS BW Capable", "wlan.vht.ncsset.ext_nss_bw_cap",
+ {"VHT Extended NSS BW Capable", "wlan.vht.mcsset.vht_ext_nss_bw_capable",
FT_BOOLEAN, 16, TFS(&tfs_capable_not_capable), 0x2000, NULL, HFILL }},
{&hf_ieee80211_vht_mcsset_reserved,
- {"Reserved", "wlan.vht.ncsset.reserved",
+ {"Reserved", "wlan.vht.mcsset.reserved",
FT_UINT16, BASE_HEX, NULL, 0xc000, NULL, HFILL }},
{&hf_ieee80211_vht_op,
@@ -50956,24 +50995,29 @@ proto_register_ieee80211(void)
{&hf_ieee80211_tag_power_capability_min,
{"Minimum Transmit Power", "wlan.powercap.min",
- FT_INT8, BASE_DEC, NULL, 0,
+ FT_INT8, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0,
"The nominal minimum transmit power with which the STA is capable of transmitting in the current channel", HFILL }},
{&hf_ieee80211_tag_power_capability_max,
{"Maximum Transmit Power", "wlan.powercap.max",
- FT_INT8, BASE_DEC, NULL, 0,
+ FT_INT8, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0,
"The nominal maximum transmit power with which the STA is capable of transmitting in the current channel", HFILL }},
{&hf_ieee80211_tag_tpc_report_trsmt_pow,
- {"Transmit Power", "wlan.tcprep.trsmt_pow",
- FT_INT8, BASE_DEC, NULL, 0,
+ {"Transmit Power", "wlan.tpcrep.trsmt_pow",
+ FT_INT8, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0,
NULL, HFILL }},
{&hf_ieee80211_tag_tpc_report_link_mrg,
- {"Link Margin", "wlan.tcprep.link_mrg",
+ {"Link Margin", "wlan.tpcrep.link_mrg",
FT_INT8, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ {&hf_ieee80211_tag_tpc_report_reserved,
+ {"Reserved", "wlan.tpcrep.reserved",
+ FT_INT8, BASE_DEC, NULL, 0,
+ "TPC Link Margin field is reserved in a Beacon or Probe Response frame", HFILL }},
+
{&hf_ieee80211_tag_supported_channels,
{"Supported Channels Set", "wlan.supchan",
FT_NONE, BASE_NONE, NULL, 0,
@@ -51237,12 +51281,12 @@ proto_register_ieee80211(void)
"(not interpreted)", HFILL }},
{&hf_ieee80211_tag_measure_report_measurement_token,
- {"Measurement Token", "wlan.measure.req.token",
+ {"Measurement Token", "wlan.measure.rep.token",
FT_UINT8, BASE_HEX, NULL, 0,
NULL, HFILL }},
{&hf_ieee80211_tag_measure_report_mode,
- {"Measurement Report Mode", "wlan.measure.req.mode",
+ {"Measurement Report Mode", "wlan.measure.rep.mode",
FT_UINT8, BASE_HEX, NULL, 0,
NULL, HFILL }},
@@ -51507,12 +51551,12 @@ proto_register_ieee80211(void)
NULL, HFILL }},
{&hf_ieee80211_tag_measure_report_subelement_length,
- {"Length", "wlan.measure.req.sub.length",
+ {"Length", "wlan.measure.rep.sub.length",
FT_UINT8, BASE_DEC, NULL, 0,
NULL, HFILL }},
{&hf_ieee80211_tag_measure_report_beacon_sub_id,
- {"SubElement ID", "wlan.measure.req.beacon.sub.id",
+ {"SubElement ID", "wlan.measure.rep.beacon.sub.id",
FT_UINT8, BASE_DEC, VALS(ieee80211_tag_measure_report_beacon_sub_id_vals), 0,
NULL, HFILL }},
@@ -57998,15 +58042,19 @@ proto_register_ieee80211(void)
{&hf_ieee80211_tag_rsnx_protected_twt_operations_support,
{"Protected TWT Operations Support", "wlan.rsnx.protected_twt_operations_support",
- FT_UINT8, BASE_DEC, NULL, 0x10, NULL, HFILL }},
+ FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }},
{&hf_ieee80211_tag_rsnx_sae_hash_to_element,
{"SAE Hash to element", "wlan.rsnx.sae_hash_to_element",
- FT_UINT8, BASE_DEC, NULL, 0x20, NULL, HFILL }},
+ FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }},
- {&hf_ieee80211_tag_rsnx_reserved_b6b7,
- {"Reserved", "wlan.rsnx.reserved",
- FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL }},
+ {&hf_ieee80211_tag_rsnx_sae_pk,
+ {"SAE-PK", "wlan.rsnx.sae_pk",
+ FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }},
+
+ {&hf_ieee80211_tag_rsnx_protected_wur_frame_support,
+ {"Protected WUR Frame Support", "wlan.rsnx.protected_wur_frame_support",
+ FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }},
{&hf_ieee80211_tag_rsnx_secure_ltf_support,
{"Secure LTF Support", "wlan.rsnx.secure_ltf_support",
@@ -58016,13 +58064,29 @@ proto_register_ieee80211(void)
{"Secure RTT Supported", "wlan.rsnx.secure_rtt_supported",
FT_BOOLEAN, 8, NULL, GENMASK(1, 1), NULL, HFILL }},
- {&hf_ieee80211_tag_rsnx_range_protection_required,
- {"Range Protection Required (RNM-MFP)", "wlan.rsnx.rnmmfp",
- FT_BOOLEAN, 8, NULL, GENMASK(2, 2), NULL, HFILL }},
+ {&hf_ieee80211_tag_rsnx_urnm_mfpr_x20,
+ {"URNM-MFPR-X20", "wlan.rsnx.urnm_mfpr_x20",
+ FT_BOOLEAN, 8, NULL, 0x04, NULL, HFILL }},
+
+ {&hf_ieee80211_tag_rsnx_protected_announce_support,
+ {"Protected Announce Support", "wlan.rsnx.protected_announce_support",
+ FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }},
- {&hf_ieee80211_tag_rsnx_reserved_b11thru15,
- {"Reserved", "wlan.rsnx.reserved.b11thru15",
- FT_UINT8, BASE_HEX, NULL, GENMASK(7, 3), NULL, HFILL }},
+ {&hf_ieee80211_tag_rsnx_pbac,
+ {"PBAC", "wlan.rsnx.pbac",
+ FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }},
+
+ {&hf_ieee80211_tag_rsnx_extended_s1g_action_protection,
+ {"Extended S1G Action Protection", "wlan.rsnx.extended_s1g_action_protection",
+ FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }},
+
+ {&hf_ieee80211_tag_rsnx_spp_amsdu_capable,
+ {"SPP AMSDU Capable", "wlan.rsnx.spp_amsdu_capable",
+ FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }},
+
+ {&hf_ieee80211_tag_rsnx_urnm_mfpr,
+ {"URNM-MFPR", "wlan.rsnx.urnm_mfpr",
+ FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }},
{&hf_ieee80211_tag_rsnx_reserved,
{"Reserved", "wlan.rsnx.reserved",
diff --git a/epan/dissectors/packet-ieee802154.c b/epan/dissectors/packet-ieee802154.c
index 1e6e0f5e08..35c33c3503 100644
--- a/epan/dissectors/packet-ieee802154.c
+++ b/epan/dissectors/packet-ieee802154.c
@@ -185,16 +185,16 @@ typedef enum {
} ieee802154_sun_type_t;
/* boolean value set if the FCS must be ok before payload is dissected */
-static gboolean ieee802154_fcs_ok = TRUE;
+static bool ieee802154_fcs_ok = true;
/* boolean value set to enable ack tracking */
-static gboolean ieee802154_ack_tracking = FALSE;
+static bool ieee802154_ack_tracking;
/* boolean value set to enable 802.15.4e dissection compatibility */
-static gboolean ieee802154e_compatibility = FALSE;
+static bool ieee802154e_compatibility;
/* TSCH ASN for nonce in decryption */
-static guint64 ieee802154_tsch_asn = 0;
+static guint64 ieee802154_tsch_asn;
static const char *ieee802154_user = "User";
@@ -223,9 +223,9 @@ typedef struct {
} static_addr_t;
/* UAT variables */
-static uat_t *static_addr_uat = NULL;
-static static_addr_t *static_addrs = NULL;
-static guint num_static_addrs = 0;
+static uat_t *static_addr_uat;
+static static_addr_t *static_addrs;
+static guint num_static_addrs;
static void*
addr_uat_copy_cb(void *dest, const void *source, size_t len _U_)
@@ -281,9 +281,9 @@ UAT_BUFFER_CB_DEF(addr_uat, eui64, static_addr_t, eui64, eui64_len)
*/
/* UAT variables */
-static uat_t *ieee802154_key_uat = NULL;
-static ieee802154_key_t *ieee802154_keys = NULL;
-static guint num_ieee802154_keys = 0;
+static uat_t *ieee802154_key_uat;
+static ieee802154_key_t *ieee802154_keys;
+static guint num_ieee802154_keys;
static void ieee802154_key_post_update_cb(void)
{
@@ -1448,7 +1448,7 @@ static const value_string ieee802154_phr_wisun_phymodeid[] = {
/* Preferences for 2003 security */
static gint ieee802154_sec_suite = SECURITY_LEVEL_ENC_MIC_64;
-static gboolean ieee802154_extend_auth = TRUE;
+static bool ieee802154_extend_auth = true;
/* Macro to check addressing, and throw a warning flag if incorrect. */
#define IEEE802154_CMD_ADDR_CHECK(_pinfo_, _item_, _cmdid_, _x_) \
@@ -6033,7 +6033,7 @@ static tap_packet_status ieee802154_endpoint_packet(void *pit, packet_info *pinf
return TAP_PACKET_REDRAW;
}
-static gboolean ieee802154_filter_valid(packet_info *pinfo, void *user_data _U_)
+static bool ieee802154_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "wpan")
&& ((pinfo->dl_src.type == ieee802_15_4_short_address_type) || (pinfo->dl_src.type == AT_EUI64))
diff --git a/epan/dissectors/packet-ieee8021ah.c b/epan/dissectors/packet-ieee8021ah.c
index 26bdb61d71..2a2e94cc7b 100644
--- a/epan/dissectors/packet-ieee8021ah.c
+++ b/epan/dissectors/packet-ieee8021ah.c
@@ -72,7 +72,7 @@ static gint ett_ieee8021ad;
/* FUNCTIONS ************************************************************/
-static gboolean
+static bool
capture_ieee8021ah(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint16 encap_proto;
diff --git a/epan/dissectors/packet-ieee8021cb.c b/epan/dissectors/packet-ieee8021cb.c
index 1e646e6105..3afd1534eb 100644
--- a/epan/dissectors/packet-ieee8021cb.c
+++ b/epan/dissectors/packet-ieee8021cb.c
@@ -48,7 +48,7 @@ static gint ett_ieee8021cb;
#define IEEE8021CB_LEN 6
-static gboolean
+static bool
capture_ieee8021cb(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint16 encap_proto;
diff --git a/epan/dissectors/packet-ieee802a.c b/epan/dissectors/packet-ieee802a.c
index 13249458f5..e839744dec 100644
--- a/epan/dissectors/packet-ieee802a.c
+++ b/epan/dissectors/packet-ieee802a.c
@@ -37,7 +37,7 @@ typedef struct {
hf_register_info *field_info;
} oui_info_t;
-static GHashTable *oui_info_table = NULL;
+static GHashTable *oui_info_table;
/*
* Add an entry for a new OUI.
diff --git a/epan/dissectors/packet-ifcp.c b/epan/dissectors/packet-ifcp.c
index 06b705fa58..85f523f383 100644
--- a/epan/dissectors/packet-ifcp.c
+++ b/epan/dissectors/packet-ifcp.c
@@ -127,10 +127,10 @@ static int ett_ifcp_protocol;
static int ett_ifcp_version;
static int ett_ifcp_frame_len;
-static gboolean ifcp_desegment = TRUE;
+static bool ifcp_desegment = true;
-static dissector_handle_t ifcp_handle = NULL;
-static dissector_handle_t fc_handle = NULL;
+static dissector_handle_t ifcp_handle;
+static dissector_handle_t fc_handle;
/* This function checks the first 16 bytes of the "header" that it looks sane
diff --git a/epan/dissectors/packet-ilp.c b/epan/dissectors/packet-ilp.c
index 4b022fd210..59f5ab1a37 100644
--- a/epan/dissectors/packet-ilp.c
+++ b/epan/dissectors/packet-ilp.c
@@ -52,7 +52,7 @@ static int proto_ilp;
#define ILP_HEADER_SIZE 2
-static gboolean ilp_desegment = TRUE;
+static bool ilp_desegment = true;
static int hf_ilp_ILP_PDU_PDU; /* ILP_PDU */
static int hf_ilp_length; /* INTEGER_0_65535 */
@@ -498,157 +498,157 @@ static int hf_ilp_mobile_directory_number;
/* Initialize the subtree pointers */
static gint ett_ilp;
static gint ett_ilp_setid;
-static gint ett_ilp_ILP_PDU;
-static gint ett_ilp_IlpMessage;
-static gint ett_ilp_PREQ;
-static gint ett_ilp_TriggerParams;
-static gint ett_ilp_PeriodicTriggerParams;
-static gint ett_ilp_PRES;
-static gint ett_ilp_PRPT;
-static gint ett_ilp_PLREQ;
-static gint ett_ilp_PLRES;
-static gint ett_ilp_PositionResults;
-static gint ett_ilp_PositionResult;
-static gint ett_ilp_PINIT;
-static gint ett_ilp_RequestedAssistData;
-static gint ett_ilp_ExtendedEphemeris;
-static gint ett_ilp_ExtendedEphCheck;
-static gint ett_ilp_GPSTime;
-static gint ett_ilp_GanssRequestedCommonAssistanceDataList;
-static gint ett_ilp_GanssRequestedGenericAssistanceDataList;
-static gint ett_ilp_GanssReqGenericData;
-static gint ett_ilp_GanssNavigationModelData;
-static gint ett_ilp_SatellitesListRelatedDataList;
-static gint ett_ilp_SatellitesListRelatedData;
-static gint ett_ilp_GanssDataBits;
-static gint ett_ilp_ReqDataBitAssistanceList;
-static gint ett_ilp_T_ganssDataBitSatList;
-static gint ett_ilp_GanssAdditionalDataChoices;
-static gint ett_ilp_GanssExtendedEphCheck;
-static gint ett_ilp_GANSSextEphTime;
-static gint ett_ilp_NavigationModel;
-static gint ett_ilp_SatelliteInfo;
-static gint ett_ilp_SatelliteInfoElement;
-static gint ett_ilp_PAUTH;
-static gint ett_ilp_PALIVE;
-static gint ett_ilp_PEND;
-static gint ett_ilp_PMESS;
-static gint ett_ilp_Version;
-static gint ett_ilp_SessionID2;
-static gint ett_ilp_SetSessionID;
-static gint ett_ilp_SETId;
-static gint ett_ilp_SlcSessionID;
-static gint ett_ilp_SpcSessionID;
-static gint ett_ilp_IPAddress;
-static gint ett_ilp_NodeAddress;
-static gint ett_ilp_LocationId;
-static gint ett_ilp_MultipleLocationIds;
-static gint ett_ilp_LocationIdData;
-static gint ett_ilp_SETCapabilities;
-static gint ett_ilp_PosTechnology;
-static gint ett_ilp_GANSSPositionMethods;
-static gint ett_ilp_GANSSPositionMethod;
-static gint ett_ilp_GANSSPositioningMethodTypes;
-static gint ett_ilp_GANSSSignals;
-static gint ett_ilp_AdditionalPositioningMethods;
-static gint ett_ilp_AddPosSupport_Element;
-static gint ett_ilp_T_addPosMode;
-static gint ett_ilp_PosProtocol;
-static gint ett_ilp_PosProtocolVersion3GPP;
-static gint ett_ilp_PosProtocolVersion3GPP2;
-static gint ett_ilp_Supported3GPP2PosProtocolVersion;
-static gint ett_ilp_PosProtocolVersionOMA;
-static gint ett_ilp_SupportedBearers;
-static gint ett_ilp_CellInfo;
-static gint ett_ilp_UTRAN_GPSReferenceTimeResult;
-static gint ett_ilp_T_set_GPSTimingOfCell;
-static gint ett_ilp_T_modeSpecificInfo;
-static gint ett_ilp_T_fdd;
-static gint ett_ilp_T_tdd;
-static gint ett_ilp_UTRAN_GANSSReferenceTimeResult;
-static gint ett_ilp_SET_GANSSReferenceTime;
-static gint ett_ilp_T_set_GANSSTimingOfCell;
-static gint ett_ilp_T_modeSpecificInfo_01;
-static gint ett_ilp_T_fdd_01;
-static gint ett_ilp_T_tdd_01;
-static gint ett_ilp_GNSSPosTechnology;
-static gint ett_ilp_Position;
-static gint ett_ilp_PositionEstimate;
-static gint ett_ilp_T_uncertainty;
-static gint ett_ilp_AltitudeInfo;
-static gint ett_ilp_CdmaCellInformation;
-static gint ett_ilp_GsmCellInformation;
-static gint ett_ilp_WcdmaCellInformation;
-static gint ett_ilp_TimingAdvance;
-static gint ett_ilp_HrpdCellInformation;
-static gint ett_ilp_UmbCellInformation;
-static gint ett_ilp_LteCellInformation;
-static gint ett_ilp_MeasResultListEUTRA;
-static gint ett_ilp_MeasResultEUTRA;
-static gint ett_ilp_T_cgi_Info;
-static gint ett_ilp_T_measResult;
-static gint ett_ilp_CellGlobalIdEUTRA;
-static gint ett_ilp_PLMN_Identity;
-static gint ett_ilp_MCC;
-static gint ett_ilp_MNC;
-static gint ett_ilp_ServingInformation5G;
-static gint ett_ilp_NeighbourInformation5G;
-static gint ett_ilp_WlanAPInformation;
-static gint ett_ilp_RTD;
-static gint ett_ilp_ReportedLocation;
-static gint ett_ilp_LocationData;
-static gint ett_ilp_RepLocation;
-static gint ett_ilp_LciLocData;
-static gint ett_ilp_LocationDataLCI;
-static gint ett_ilp_WimaxBSInformation;
-static gint ett_ilp_WimaxBsID;
-static gint ett_ilp_WimaxRTD;
-static gint ett_ilp_WimaxNMRList;
-static gint ett_ilp_WimaxNMR;
-static gint ett_ilp_NRCellInformation;
-static gint ett_ilp_ServingCellInformationNR;
-static gint ett_ilp_ServCellNR;
-static gint ett_ilp_MeasResultListNR;
-static gint ett_ilp_MeasResultNR;
-static gint ett_ilp_CellGlobalIdNR;
-static gint ett_ilp_NR_Measurements;
-static gint ett_ilp_FrequencyInfo;
-static gint ett_ilp_FrequencySpecificInfo;
-static gint ett_ilp_FrequencyInfoFDD;
-static gint ett_ilp_FrequencyInfoTDD;
-static gint ett_ilp_NMR;
-static gint ett_ilp_NMRelement;
-static gint ett_ilp_MeasuredResultsList;
-static gint ett_ilp_MeasuredResults;
-static gint ett_ilp_CellMeasuredResultsList;
-static gint ett_ilp_CellMeasuredResults;
-static gint ett_ilp_T_modeSpecificInfo_02;
-static gint ett_ilp_T_fdd_02;
-static gint ett_ilp_T_tdd_02;
-static gint ett_ilp_TimeslotISCP_List;
-static gint ett_ilp_PrimaryCPICH_Info;
-static gint ett_ilp_UTRAN_GPSReferenceTimeAssistance;
-static gint ett_ilp_UTRAN_GPSReferenceTime;
-static gint ett_ilp_T_utran_GPSTimingOfCell;
-static gint ett_ilp_T_modeSpecificInfo_03;
-static gint ett_ilp_T_fdd_03;
-static gint ett_ilp_T_tdd_03;
-static gint ett_ilp_UTRAN_GANSSReferenceTimeAssistance;
-static gint ett_ilp_UTRAN_GANSSReferenceTime;
-static gint ett_ilp_T_modeSpecificInfo_04;
-static gint ett_ilp_T_fdd_04;
-static gint ett_ilp_T_tdd_04;
-static gint ett_ilp_QoP;
-static gint ett_ilp_Velocity;
-static gint ett_ilp_Horvel;
-static gint ett_ilp_Horandvervel;
-static gint ett_ilp_Horveluncert;
-static gint ett_ilp_Horandveruncert;
-static gint ett_ilp_SPCTID;
-static gint ett_ilp_PosPayLoad;
-static gint ett_ilp_MultiPosPayLoad;
-static gint ett_ilp_T_lPPPayload;
-static gint ett_ilp_T_tia801Payload;
+static int ett_ilp_ILP_PDU;
+static int ett_ilp_IlpMessage;
+static int ett_ilp_PREQ;
+static int ett_ilp_TriggerParams;
+static int ett_ilp_PeriodicTriggerParams;
+static int ett_ilp_PRES;
+static int ett_ilp_PRPT;
+static int ett_ilp_PLREQ;
+static int ett_ilp_PLRES;
+static int ett_ilp_PositionResults;
+static int ett_ilp_PositionResult;
+static int ett_ilp_PINIT;
+static int ett_ilp_RequestedAssistData;
+static int ett_ilp_ExtendedEphemeris;
+static int ett_ilp_ExtendedEphCheck;
+static int ett_ilp_GPSTime;
+static int ett_ilp_GanssRequestedCommonAssistanceDataList;
+static int ett_ilp_GanssRequestedGenericAssistanceDataList;
+static int ett_ilp_GanssReqGenericData;
+static int ett_ilp_GanssNavigationModelData;
+static int ett_ilp_SatellitesListRelatedDataList;
+static int ett_ilp_SatellitesListRelatedData;
+static int ett_ilp_GanssDataBits;
+static int ett_ilp_ReqDataBitAssistanceList;
+static int ett_ilp_T_ganssDataBitSatList;
+static int ett_ilp_GanssAdditionalDataChoices;
+static int ett_ilp_GanssExtendedEphCheck;
+static int ett_ilp_GANSSextEphTime;
+static int ett_ilp_NavigationModel;
+static int ett_ilp_SatelliteInfo;
+static int ett_ilp_SatelliteInfoElement;
+static int ett_ilp_PAUTH;
+static int ett_ilp_PALIVE;
+static int ett_ilp_PEND;
+static int ett_ilp_PMESS;
+static int ett_ilp_Version;
+static int ett_ilp_SessionID2;
+static int ett_ilp_SetSessionID;
+static int ett_ilp_SETId;
+static int ett_ilp_SlcSessionID;
+static int ett_ilp_SpcSessionID;
+static int ett_ilp_IPAddress;
+static int ett_ilp_NodeAddress;
+static int ett_ilp_LocationId;
+static int ett_ilp_MultipleLocationIds;
+static int ett_ilp_LocationIdData;
+static int ett_ilp_SETCapabilities;
+static int ett_ilp_PosTechnology;
+static int ett_ilp_GANSSPositionMethods;
+static int ett_ilp_GANSSPositionMethod;
+static int ett_ilp_GANSSPositioningMethodTypes;
+static int ett_ilp_GANSSSignals;
+static int ett_ilp_AdditionalPositioningMethods;
+static int ett_ilp_AddPosSupport_Element;
+static int ett_ilp_T_addPosMode;
+static int ett_ilp_PosProtocol;
+static int ett_ilp_PosProtocolVersion3GPP;
+static int ett_ilp_PosProtocolVersion3GPP2;
+static int ett_ilp_Supported3GPP2PosProtocolVersion;
+static int ett_ilp_PosProtocolVersionOMA;
+static int ett_ilp_SupportedBearers;
+static int ett_ilp_CellInfo;
+static int ett_ilp_UTRAN_GPSReferenceTimeResult;
+static int ett_ilp_T_set_GPSTimingOfCell;
+static int ett_ilp_T_modeSpecificInfo;
+static int ett_ilp_T_fdd;
+static int ett_ilp_T_tdd;
+static int ett_ilp_UTRAN_GANSSReferenceTimeResult;
+static int ett_ilp_SET_GANSSReferenceTime;
+static int ett_ilp_T_set_GANSSTimingOfCell;
+static int ett_ilp_T_modeSpecificInfo_01;
+static int ett_ilp_T_fdd_01;
+static int ett_ilp_T_tdd_01;
+static int ett_ilp_GNSSPosTechnology;
+static int ett_ilp_Position;
+static int ett_ilp_PositionEstimate;
+static int ett_ilp_T_uncertainty;
+static int ett_ilp_AltitudeInfo;
+static int ett_ilp_CdmaCellInformation;
+static int ett_ilp_GsmCellInformation;
+static int ett_ilp_WcdmaCellInformation;
+static int ett_ilp_TimingAdvance;
+static int ett_ilp_HrpdCellInformation;
+static int ett_ilp_UmbCellInformation;
+static int ett_ilp_LteCellInformation;
+static int ett_ilp_MeasResultListEUTRA;
+static int ett_ilp_MeasResultEUTRA;
+static int ett_ilp_T_cgi_Info;
+static int ett_ilp_T_measResult;
+static int ett_ilp_CellGlobalIdEUTRA;
+static int ett_ilp_PLMN_Identity;
+static int ett_ilp_MCC;
+static int ett_ilp_MNC;
+static int ett_ilp_ServingInformation5G;
+static int ett_ilp_NeighbourInformation5G;
+static int ett_ilp_WlanAPInformation;
+static int ett_ilp_RTD;
+static int ett_ilp_ReportedLocation;
+static int ett_ilp_LocationData;
+static int ett_ilp_RepLocation;
+static int ett_ilp_LciLocData;
+static int ett_ilp_LocationDataLCI;
+static int ett_ilp_WimaxBSInformation;
+static int ett_ilp_WimaxBsID;
+static int ett_ilp_WimaxRTD;
+static int ett_ilp_WimaxNMRList;
+static int ett_ilp_WimaxNMR;
+static int ett_ilp_NRCellInformation;
+static int ett_ilp_ServingCellInformationNR;
+static int ett_ilp_ServCellNR;
+static int ett_ilp_MeasResultListNR;
+static int ett_ilp_MeasResultNR;
+static int ett_ilp_CellGlobalIdNR;
+static int ett_ilp_NR_Measurements;
+static int ett_ilp_FrequencyInfo;
+static int ett_ilp_FrequencySpecificInfo;
+static int ett_ilp_FrequencyInfoFDD;
+static int ett_ilp_FrequencyInfoTDD;
+static int ett_ilp_NMR;
+static int ett_ilp_NMRelement;
+static int ett_ilp_MeasuredResultsList;
+static int ett_ilp_MeasuredResults;
+static int ett_ilp_CellMeasuredResultsList;
+static int ett_ilp_CellMeasuredResults;
+static int ett_ilp_T_modeSpecificInfo_02;
+static int ett_ilp_T_fdd_02;
+static int ett_ilp_T_tdd_02;
+static int ett_ilp_TimeslotISCP_List;
+static int ett_ilp_PrimaryCPICH_Info;
+static int ett_ilp_UTRAN_GPSReferenceTimeAssistance;
+static int ett_ilp_UTRAN_GPSReferenceTime;
+static int ett_ilp_T_utran_GPSTimingOfCell;
+static int ett_ilp_T_modeSpecificInfo_03;
+static int ett_ilp_T_fdd_03;
+static int ett_ilp_T_tdd_03;
+static int ett_ilp_UTRAN_GANSSReferenceTimeAssistance;
+static int ett_ilp_UTRAN_GANSSReferenceTime;
+static int ett_ilp_T_modeSpecificInfo_04;
+static int ett_ilp_T_fdd_04;
+static int ett_ilp_T_tdd_04;
+static int ett_ilp_QoP;
+static int ett_ilp_Velocity;
+static int ett_ilp_Horvel;
+static int ett_ilp_Horandvervel;
+static int ett_ilp_Horveluncert;
+static int ett_ilp_Horandveruncert;
+static int ett_ilp_SPCTID;
+static int ett_ilp_PosPayLoad;
+static int ett_ilp_MultiPosPayLoad;
+static int ett_ilp_T_lPPPayload;
+static int ett_ilp_T_tia801Payload;
/* Include constants */
#define maxGANSS 16
diff --git a/epan/dissectors/packet-imap.c b/epan/dissectors/packet-imap.c
index 5caa62af71..f6d26a4ff8 100644
--- a/epan/dissectors/packet-imap.c
+++ b/epan/dissectors/packet-imap.c
@@ -54,7 +54,7 @@ static dissector_handle_t imap_handle;
static dissector_handle_t tls_handle;
static dissector_handle_t imf_handle;
-static gboolean imap_ssl_heuristic = TRUE;
+static bool imap_ssl_heuristic = true;
/* patterns used for tvb_ws_mempbrk_pattern_guint8 */
static ws_mempbrk_pattern pbrk_whitespace;
@@ -91,7 +91,7 @@ typedef struct {
nstime_t req_time;
} imap_request_info_t;
-static wmem_map_t *imap_requests = NULL;
+static wmem_map_t *imap_requests;
static gint
imap_request_equal(gconstpointer v, gconstpointer w)
diff --git a/epan/dissectors/packet-imf.c b/epan/dissectors/packet-imf.c
index 882370c65d..f2b8247922 100644
--- a/epan/dissectors/packet-imf.c
+++ b/epan/dissectors/packet-imf.c
@@ -284,7 +284,7 @@ static struct imf_field imf_fields[] = {
{NULL, NULL, NULL, FALSE},
};
-static wmem_map_t *imf_field_table=NULL;
+static wmem_map_t *imf_field_table;
#define FORMAT_UNSTRUCTURED 0
#define FORMAT_MAILBOX 1
@@ -671,7 +671,7 @@ dissect_imf_content_type(tvbuff_t *tvb, packet_info *pinfo, int offset, int leng
int
-imf_find_field_end(tvbuff_t *tvb, int offset, gint max_length, gboolean *last_field)
+imf_find_field_end(tvbuff_t *tvb, int offset, gint max_length, bool *last_field)
{
while(offset < max_length) {
@@ -686,7 +686,7 @@ imf_find_field_end(tvbuff_t *tvb, int offset, gint max_length, gboolean *last_fi
if (++offset >= max_length) {
/* end of buffer and also end of fields */
if (last_field) {
- *last_field = TRUE;
+ *last_field = true;
}
/* caller expects that there is CRLF after returned offset, if last_field is set */
return offset - 2;
@@ -697,7 +697,7 @@ imf_find_field_end(tvbuff_t *tvb, int offset, gint max_length, gboolean *last_fi
/* probably end of the fields */
if ((offset + 1) < max_length && tvb_get_guint8(tvb, offset + 1) == '\n') {
if(last_field) {
- *last_field = TRUE;
+ *last_field = true;
}
}
return offset;
@@ -736,7 +736,7 @@ dissect_imf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
gint end_offset = 0;
gint max_length;
guint8 *key;
- gboolean last_field = FALSE;
+ bool last_field = false;
tvbuff_t *next_tvb;
struct imf_field *f_info;
imf_eo_t *eo_info = NULL;
diff --git a/epan/dissectors/packet-imf.h b/epan/dissectors/packet-imf.h
index 4acebaa591..7e75b88c4d 100644
--- a/epan/dissectors/packet-imf.h
+++ b/epan/dissectors/packet-imf.h
@@ -20,6 +20,6 @@
*
* If we have found the last field (terminated by \r\n\r\n) we indicate this in last_field .
*/
-int imf_find_field_end(tvbuff_t *tvb, int offset, gint max_length, gboolean *last_field);
+int imf_find_field_end(tvbuff_t *tvb, int offset, gint max_length, bool *last_field);
#endif /* __PACKET_IMF_H__ */
diff --git a/epan/dissectors/packet-inap.c b/epan/dissectors/packet-inap.c
index d2c5f3b49c..441a415e1b 100644
--- a/epan/dissectors/packet-inap.c
+++ b/epan/dissectors/packet-inap.c
@@ -1009,8 +1009,8 @@ static dissector_handle_t inap_handle;
/* Global variables */
static guint32 opcode=0;
static guint32 errorCode=0;
-static const char *obj_id = NULL;
-static gboolean is_ExtensionField =FALSE;
+static const char *obj_id;
+static gboolean is_ExtensionField;
static int inap_opcode_type;
#define INAP_OPCODE_INVOKE 1
@@ -1043,242 +1043,242 @@ static gint ett_inap_prefix;
static gint ett_inap_iPAddressValue;
static gint ett_inap_digitsResponse;
-static gint ett_inap_Extensions;
-static gint ett_inap_ExtensionField;
-static gint ett_inap_AlternativeIdentities;
-static gint ett_inap_AlternativeIdentity;
-static gint ett_inap_BackwardServiceInteractionInd;
-static gint ett_inap_BasicGapCriteria;
-static gint ett_inap_T_calledAddressAndService;
-static gint ett_inap_T_callingAddressAndService;
-static gint ett_inap_BCSMEvent;
-static gint ett_inap_BearerCapability;
-static gint ett_inap_BISDNParameters;
-static gint ett_inap_ChargingEvent;
-static gint ett_inap_Component;
-static gint ett_inap_CompoundCriteria;
-static gint ett_inap_CounterAndValue;
-static gint ett_inap_CountersValue;
-static gint ett_inap_DefaultFaultHandling;
-static gint ett_inap_DestinationRoutingAddress;
-static gint ett_inap_DpSpecificCommonParameters;
-static gint ett_inap_DpSpecificCriteria;
-static gint ett_inap_T_numberOfDigitsTwo;
-static gint ett_inap_Entry;
-static gint ett_inap_EventSpecificInformationBCSM;
-static gint ett_inap_T_collectedInfoSpecificInfo;
-static gint ett_inap_T_analysedInfoSpecificInfo;
-static gint ett_inap_T_routeSelectFailureSpecificInfo;
-static gint ett_inap_T_oCalledPartyBusySpecificInfo;
-static gint ett_inap_T_oNoAnswerSpecificInfo;
-static gint ett_inap_T_oAnswerSpecificInfo;
-static gint ett_inap_T_oMidCallSpecificInfo;
-static gint ett_inap_T_oDisconnectSpecificInfo;
-static gint ett_inap_T_tBusySpecificInfo;
-static gint ett_inap_T_tNoAnswerSpecificInfo;
-static gint ett_inap_T_tAnswerSpecificInfo;
-static gint ett_inap_T_tMidCallSpecificInfo;
-static gint ett_inap_T_tDisconnectSpecificInfo;
-static gint ett_inap_T_oTermSeizedSpecificInfo;
-static gint ett_inap_T_oSuspend;
-static gint ett_inap_T_tSuspend;
-static gint ett_inap_T_origAttemptAuthorized;
-static gint ett_inap_T_oReAnswer;
-static gint ett_inap_T_tReAnswer;
-static gint ett_inap_T_facilitySelectedAndAvailable;
-static gint ett_inap_T_callAccepted;
-static gint ett_inap_T_oAbandon;
-static gint ett_inap_T_tAbandon;
-static gint ett_inap_T_authorizeRouteFailure;
-static gint ett_inap_T_terminationAttemptAuthorized;
-static gint ett_inap_T_originationAttemptDenied;
-static gint ett_inap_T_terminationAttemptDenied;
-static gint ett_inap_T_oModifyRequestSpecificInfo;
-static gint ett_inap_T_oModifyResultSpecificInfo;
-static gint ett_inap_T_tModifyRequestSpecificInfo;
-static gint ett_inap_T_tModifyResultSpecificInfo;
-static gint ett_inap_FacilityGroup;
-static gint ett_inap_FilteredCallTreatment;
-static gint ett_inap_FilteringCharacteristics;
-static gint ett_inap_FilteringCriteria;
-static gint ett_inap_T_addressAndService;
-static gint ett_inap_FilteringTimeOut;
-static gint ett_inap_ForwardServiceInteractionInd;
-static gint ett_inap_GapCriteria;
-static gint ett_inap_GapOnService;
-static gint ett_inap_GapIndicators;
-static gint ett_inap_GapTreatment;
-static gint ett_inap_T_both;
-static gint ett_inap_GenericNumbers;
-static gint ett_inap_INprofile;
-static gint ett_inap_INServiceCompatibilityIndication;
-static gint ett_inap_IPRelatedInformation;
-static gint ett_inap_LegID;
-static gint ett_inap_MidCallControlInfo;
-static gint ett_inap_MidCallControlInfo_item;
-static gint ett_inap_MidCallInfo;
-static gint ett_inap_MidCallInfoType;
-static gint ett_inap_MiscCallInfo;
-static gint ett_inap_MonitoringCriteria;
-static gint ett_inap_MonitoringTimeOut;
-static gint ett_inap_ProfileIdentifier;
-static gint ett_inap_RequestedInformationList;
-static gint ett_inap_RequestedInformationTypeList;
-static gint ett_inap_RequestedInformation;
-static gint ett_inap_RequestedInformationValue;
-static gint ett_inap_RequestedUTSI;
-static gint ett_inap_RequestedUTSIList;
-static gint ett_inap_ResourceID;
-static gint ett_inap_RouteCountersValue;
-static gint ett_inap_RouteCountersAndValue;
-static gint ett_inap_RouteList;
-static gint ett_inap_ServiceAddressInformation;
-static gint ett_inap_ServiceInteractionIndicatorsTwo;
-static gint ett_inap_T_redirectServiceTreatmentInd;
-static gint ett_inap_TDPIdentifier;
-static gint ett_inap_TriggerData;
-static gint ett_inap_TriggerDataIdentifier;
-static gint ett_inap_TriggerResults;
-static gint ett_inap_TriggerResult;
-static gint ett_inap_Triggers;
-static gint ett_inap_Trigger;
-static gint ett_inap_USIServiceIndicator;
-static gint ett_inap_ActivateServiceFilteringArg;
-static gint ett_inap_AnalysedInformationArg;
-static gint ett_inap_AnalyseInformationArg;
-static gint ett_inap_ApplyChargingArg;
-static gint ett_inap_AssistRequestInstructionsArg;
-static gint ett_inap_AuthorizeTerminationArg;
-static gint ett_inap_CallFilteringArg;
-static gint ett_inap_CallGapArg;
-static gint ett_inap_CallInformationReportArg;
-static gint ett_inap_CallInformationRequestArg;
-static gint ett_inap_CancelArg;
-static gint ett_inap_T_callSegmentToCancel;
-static gint ett_inap_CancelStatusReportRequestArg;
-static gint ett_inap_CollectedInformationArg;
-static gint ett_inap_CollectInformationArg;
-static gint ett_inap_ConnectArg;
-static gint ett_inap_ConnectToResourceArg;
-static gint ett_inap_T_resourceAddress;
-static gint ett_inap_T_ipAddressAndLegID;
-static gint ett_inap_T_ipAddressAndCallSegment;
-static gint ett_inap_ContinueWithArgumentArg;
-static gint ett_inap_T_legorCSID;
-static gint ett_inap_CreateCallSegmentAssociationArg;
-static gint ett_inap_CreateCallSegmentAssociationResultArg;
-static gint ett_inap_CreateOrRemoveTriggerDataArg;
-static gint ett_inap_CreateOrRemoveTriggerDataResultArg;
-static gint ett_inap_DisconnectForwardConnectionWithArgumentArg;
-static gint ett_inap_T_partyToDisconnect;
-static gint ett_inap_DisconnectLegArg;
-static gint ett_inap_EntityReleasedArg;
-static gint ett_inap_T_cSFailure;
-static gint ett_inap_T_bCSMFailure;
-static gint ett_inap_EstablishTemporaryConnectionArg;
-static gint ett_inap_T_partyToConnect;
-static gint ett_inap_EventNotificationChargingArg;
-static gint ett_inap_EventReportBCSMArg;
-static gint ett_inap_EventReportFacilityArg;
-static gint ett_inap_FacilitySelectedAndAvailableArg;
-static gint ett_inap_HoldCallInNetworkArg;
-static gint ett_inap_InitialDPArg;
-static gint ett_inap_InitiateCallAttemptArg;
-static gint ett_inap_ManageTriggerDataArg;
-static gint ett_inap_T_triggerDataIdentifier;
-static gint ett_inap_ManageTriggerDataResultArg;
-static gint ett_inap_T_oneTriggerResult;
-static gint ett_inap_T_severalTriggerResult;
-static gint ett_inap_MergeCallSegmentsArg;
-static gint ett_inap_MonitorRouteReportArg;
-static gint ett_inap_MonitorRouteRequestArg;
-static gint ett_inap_MoveCallSegmentsArg;
-static gint ett_inap_T_callSegments;
-static gint ett_inap_T_callSegments_item;
-static gint ett_inap_T_legs;
-static gint ett_inap_T_legs_item;
-static gint ett_inap_MoveLegArg;
-static gint ett_inap_OAbandonArg;
-static gint ett_inap_OAnswerArg;
-static gint ett_inap_OCalledPartyBusyArg;
-static gint ett_inap_ODisconnectArg;
-static gint ett_inap_MidCallArg;
-static gint ett_inap_ONoAnswerArg;
-static gint ett_inap_OriginationAttemptArg;
-static gint ett_inap_OriginationAttemptAuthorizedArg;
-static gint ett_inap_OSuspendedArg;
-static gint ett_inap_ReconnectArg;
-static gint ett_inap_ReleaseCallArg;
-static gint ett_inap_T_callSegmentToRelease;
-static gint ett_inap_T_allCallSegments;
-static gint ett_inap_ReportUTSIArg;
-static gint ett_inap_RequestCurrentStatusReportResultArg;
-static gint ett_inap_RequestEveryStatusChangeReportArg;
-static gint ett_inap_RequestFirstStatusMatchReportArg;
-static gint ett_inap_RequestNotificationChargingEventArg;
-static gint ett_inap_RequestReportBCSMEventArg;
-static gint ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent;
-static gint ett_inap_RequestReportFacilityEventArg;
-static gint ett_inap_SEQUENCE_SIZE_1_3_OF_ComponentType;
-static gint ett_inap_RequestReportUTSIArg;
-static gint ett_inap_ResetTimerArg;
-static gint ett_inap_RouteSelectFailureArg;
-static gint ett_inap_SelectFacilityArg;
-static gint ett_inap_SelectRouteArg;
-static gint ett_inap_SendChargingInformationArg;
-static gint ett_inap_SendFacilityInformationArg;
-static gint ett_inap_SendSTUIArg;
-static gint ett_inap_ServiceFilteringResponseArg;
-static gint ett_inap_SetServiceProfileArg;
-static gint ett_inap_SEQUENCE_SIZE_1_numOfINProfile_OF_INprofile;
-static gint ett_inap_SplitLegArg;
-static gint ett_inap_StatusReportArg;
-static gint ett_inap_TAnswerArg;
-static gint ett_inap_TBusyArg;
-static gint ett_inap_TDisconnectArg;
-static gint ett_inap_TermAttemptAuthorizedArg;
-static gint ett_inap_TerminationAttemptArg;
-static gint ett_inap_TNoAnswerArg;
-static gint ett_inap_TSuspendedArg;
-static gint ett_inap_CollectedDigits;
-static gint ett_inap_CollectedInfo;
-static gint ett_inap_InbandInfo;
-static gint ett_inap_InformationToRecord;
-static gint ett_inap_T_controlDigits;
-static gint ett_inap_InformationToSend;
-static gint ett_inap_MessageID;
-static gint ett_inap_T_text;
-static gint ett_inap_SEQUENCE_SIZE_1_b3__numOfMessageIDs_OF_Integer4;
-static gint ett_inap_T_variableMessage;
-static gint ett_inap_SEQUENCE_SIZE_1_b3__maxVariableParts_OF_VariablePart;
-static gint ett_inap_SRFGapCriteria;
-static gint ett_inap_T_iPAddressAndresource;
-static gint ett_inap_Tone;
-static gint ett_inap_VariablePart;
-static gint ett_inap_PlayAnnouncementArg;
-static gint ett_inap_T_connectedParty;
-static gint ett_inap_PromptAndCollectUserInformationArg;
-static gint ett_inap_ReceivedInformationArg;
-static gint ett_inap_PromptAndReceiveMessageArg;
-static gint ett_inap_MessageReceivedArg;
-static gint ett_inap_ScriptCloseArg;
-static gint ett_inap_ScriptEventArg;
-static gint ett_inap_ScriptInformationArg;
-static gint ett_inap_ScriptRunArg;
-static gint ett_inap_SRFCallGapArg;
-static gint ett_inap_PAR_cancelFailed;
-static gint ett_inap_ScfTaskRefusedParameter;
-static gint ett_inap_ReferralParameter;
-static gint ett_inap_Code;
-static gint ett_inap_ROS;
-static gint ett_inap_Invoke;
-static gint ett_inap_T_linkedId;
-static gint ett_inap_ReturnResult;
-static gint ett_inap_T_result;
-static gint ett_inap_ReturnError;
-static gint ett_inap_Reject;
-static gint ett_inap_T_problem_01;
-static gint ett_inap_InvokeId;
+static int ett_inap_Extensions;
+static int ett_inap_ExtensionField;
+static int ett_inap_AlternativeIdentities;
+static int ett_inap_AlternativeIdentity;
+static int ett_inap_BackwardServiceInteractionInd;
+static int ett_inap_BasicGapCriteria;
+static int ett_inap_T_calledAddressAndService;
+static int ett_inap_T_callingAddressAndService;
+static int ett_inap_BCSMEvent;
+static int ett_inap_BearerCapability;
+static int ett_inap_BISDNParameters;
+static int ett_inap_ChargingEvent;
+static int ett_inap_Component;
+static int ett_inap_CompoundCriteria;
+static int ett_inap_CounterAndValue;
+static int ett_inap_CountersValue;
+static int ett_inap_DefaultFaultHandling;
+static int ett_inap_DestinationRoutingAddress;
+static int ett_inap_DpSpecificCommonParameters;
+static int ett_inap_DpSpecificCriteria;
+static int ett_inap_T_numberOfDigitsTwo;
+static int ett_inap_Entry;
+static int ett_inap_EventSpecificInformationBCSM;
+static int ett_inap_T_collectedInfoSpecificInfo;
+static int ett_inap_T_analysedInfoSpecificInfo;
+static int ett_inap_T_routeSelectFailureSpecificInfo;
+static int ett_inap_T_oCalledPartyBusySpecificInfo;
+static int ett_inap_T_oNoAnswerSpecificInfo;
+static int ett_inap_T_oAnswerSpecificInfo;
+static int ett_inap_T_oMidCallSpecificInfo;
+static int ett_inap_T_oDisconnectSpecificInfo;
+static int ett_inap_T_tBusySpecificInfo;
+static int ett_inap_T_tNoAnswerSpecificInfo;
+static int ett_inap_T_tAnswerSpecificInfo;
+static int ett_inap_T_tMidCallSpecificInfo;
+static int ett_inap_T_tDisconnectSpecificInfo;
+static int ett_inap_T_oTermSeizedSpecificInfo;
+static int ett_inap_T_oSuspend;
+static int ett_inap_T_tSuspend;
+static int ett_inap_T_origAttemptAuthorized;
+static int ett_inap_T_oReAnswer;
+static int ett_inap_T_tReAnswer;
+static int ett_inap_T_facilitySelectedAndAvailable;
+static int ett_inap_T_callAccepted;
+static int ett_inap_T_oAbandon;
+static int ett_inap_T_tAbandon;
+static int ett_inap_T_authorizeRouteFailure;
+static int ett_inap_T_terminationAttemptAuthorized;
+static int ett_inap_T_originationAttemptDenied;
+static int ett_inap_T_terminationAttemptDenied;
+static int ett_inap_T_oModifyRequestSpecificInfo;
+static int ett_inap_T_oModifyResultSpecificInfo;
+static int ett_inap_T_tModifyRequestSpecificInfo;
+static int ett_inap_T_tModifyResultSpecificInfo;
+static int ett_inap_FacilityGroup;
+static int ett_inap_FilteredCallTreatment;
+static int ett_inap_FilteringCharacteristics;
+static int ett_inap_FilteringCriteria;
+static int ett_inap_T_addressAndService;
+static int ett_inap_FilteringTimeOut;
+static int ett_inap_ForwardServiceInteractionInd;
+static int ett_inap_GapCriteria;
+static int ett_inap_GapOnService;
+static int ett_inap_GapIndicators;
+static int ett_inap_GapTreatment;
+static int ett_inap_T_both;
+static int ett_inap_GenericNumbers;
+static int ett_inap_INprofile;
+static int ett_inap_INServiceCompatibilityIndication;
+static int ett_inap_IPRelatedInformation;
+static int ett_inap_LegID;
+static int ett_inap_MidCallControlInfo;
+static int ett_inap_MidCallControlInfo_item;
+static int ett_inap_MidCallInfo;
+static int ett_inap_MidCallInfoType;
+static int ett_inap_MiscCallInfo;
+static int ett_inap_MonitoringCriteria;
+static int ett_inap_MonitoringTimeOut;
+static int ett_inap_ProfileIdentifier;
+static int ett_inap_RequestedInformationList;
+static int ett_inap_RequestedInformationTypeList;
+static int ett_inap_RequestedInformation;
+static int ett_inap_RequestedInformationValue;
+static int ett_inap_RequestedUTSI;
+static int ett_inap_RequestedUTSIList;
+static int ett_inap_ResourceID;
+static int ett_inap_RouteCountersValue;
+static int ett_inap_RouteCountersAndValue;
+static int ett_inap_RouteList;
+static int ett_inap_ServiceAddressInformation;
+static int ett_inap_ServiceInteractionIndicatorsTwo;
+static int ett_inap_T_redirectServiceTreatmentInd;
+static int ett_inap_TDPIdentifier;
+static int ett_inap_TriggerData;
+static int ett_inap_TriggerDataIdentifier;
+static int ett_inap_TriggerResults;
+static int ett_inap_TriggerResult;
+static int ett_inap_Triggers;
+static int ett_inap_Trigger;
+static int ett_inap_USIServiceIndicator;
+static int ett_inap_ActivateServiceFilteringArg;
+static int ett_inap_AnalysedInformationArg;
+static int ett_inap_AnalyseInformationArg;
+static int ett_inap_ApplyChargingArg;
+static int ett_inap_AssistRequestInstructionsArg;
+static int ett_inap_AuthorizeTerminationArg;
+static int ett_inap_CallFilteringArg;
+static int ett_inap_CallGapArg;
+static int ett_inap_CallInformationReportArg;
+static int ett_inap_CallInformationRequestArg;
+static int ett_inap_CancelArg;
+static int ett_inap_T_callSegmentToCancel;
+static int ett_inap_CancelStatusReportRequestArg;
+static int ett_inap_CollectedInformationArg;
+static int ett_inap_CollectInformationArg;
+static int ett_inap_ConnectArg;
+static int ett_inap_ConnectToResourceArg;
+static int ett_inap_T_resourceAddress;
+static int ett_inap_T_ipAddressAndLegID;
+static int ett_inap_T_ipAddressAndCallSegment;
+static int ett_inap_ContinueWithArgumentArg;
+static int ett_inap_T_legorCSID;
+static int ett_inap_CreateCallSegmentAssociationArg;
+static int ett_inap_CreateCallSegmentAssociationResultArg;
+static int ett_inap_CreateOrRemoveTriggerDataArg;
+static int ett_inap_CreateOrRemoveTriggerDataResultArg;
+static int ett_inap_DisconnectForwardConnectionWithArgumentArg;
+static int ett_inap_T_partyToDisconnect;
+static int ett_inap_DisconnectLegArg;
+static int ett_inap_EntityReleasedArg;
+static int ett_inap_T_cSFailure;
+static int ett_inap_T_bCSMFailure;
+static int ett_inap_EstablishTemporaryConnectionArg;
+static int ett_inap_T_partyToConnect;
+static int ett_inap_EventNotificationChargingArg;
+static int ett_inap_EventReportBCSMArg;
+static int ett_inap_EventReportFacilityArg;
+static int ett_inap_FacilitySelectedAndAvailableArg;
+static int ett_inap_HoldCallInNetworkArg;
+static int ett_inap_InitialDPArg;
+static int ett_inap_InitiateCallAttemptArg;
+static int ett_inap_ManageTriggerDataArg;
+static int ett_inap_T_triggerDataIdentifier;
+static int ett_inap_ManageTriggerDataResultArg;
+static int ett_inap_T_oneTriggerResult;
+static int ett_inap_T_severalTriggerResult;
+static int ett_inap_MergeCallSegmentsArg;
+static int ett_inap_MonitorRouteReportArg;
+static int ett_inap_MonitorRouteRequestArg;
+static int ett_inap_MoveCallSegmentsArg;
+static int ett_inap_T_callSegments;
+static int ett_inap_T_callSegments_item;
+static int ett_inap_T_legs;
+static int ett_inap_T_legs_item;
+static int ett_inap_MoveLegArg;
+static int ett_inap_OAbandonArg;
+static int ett_inap_OAnswerArg;
+static int ett_inap_OCalledPartyBusyArg;
+static int ett_inap_ODisconnectArg;
+static int ett_inap_MidCallArg;
+static int ett_inap_ONoAnswerArg;
+static int ett_inap_OriginationAttemptArg;
+static int ett_inap_OriginationAttemptAuthorizedArg;
+static int ett_inap_OSuspendedArg;
+static int ett_inap_ReconnectArg;
+static int ett_inap_ReleaseCallArg;
+static int ett_inap_T_callSegmentToRelease;
+static int ett_inap_T_allCallSegments;
+static int ett_inap_ReportUTSIArg;
+static int ett_inap_RequestCurrentStatusReportResultArg;
+static int ett_inap_RequestEveryStatusChangeReportArg;
+static int ett_inap_RequestFirstStatusMatchReportArg;
+static int ett_inap_RequestNotificationChargingEventArg;
+static int ett_inap_RequestReportBCSMEventArg;
+static int ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent;
+static int ett_inap_RequestReportFacilityEventArg;
+static int ett_inap_SEQUENCE_SIZE_1_3_OF_ComponentType;
+static int ett_inap_RequestReportUTSIArg;
+static int ett_inap_ResetTimerArg;
+static int ett_inap_RouteSelectFailureArg;
+static int ett_inap_SelectFacilityArg;
+static int ett_inap_SelectRouteArg;
+static int ett_inap_SendChargingInformationArg;
+static int ett_inap_SendFacilityInformationArg;
+static int ett_inap_SendSTUIArg;
+static int ett_inap_ServiceFilteringResponseArg;
+static int ett_inap_SetServiceProfileArg;
+static int ett_inap_SEQUENCE_SIZE_1_numOfINProfile_OF_INprofile;
+static int ett_inap_SplitLegArg;
+static int ett_inap_StatusReportArg;
+static int ett_inap_TAnswerArg;
+static int ett_inap_TBusyArg;
+static int ett_inap_TDisconnectArg;
+static int ett_inap_TermAttemptAuthorizedArg;
+static int ett_inap_TerminationAttemptArg;
+static int ett_inap_TNoAnswerArg;
+static int ett_inap_TSuspendedArg;
+static int ett_inap_CollectedDigits;
+static int ett_inap_CollectedInfo;
+static int ett_inap_InbandInfo;
+static int ett_inap_InformationToRecord;
+static int ett_inap_T_controlDigits;
+static int ett_inap_InformationToSend;
+static int ett_inap_MessageID;
+static int ett_inap_T_text;
+static int ett_inap_SEQUENCE_SIZE_1_b3__numOfMessageIDs_OF_Integer4;
+static int ett_inap_T_variableMessage;
+static int ett_inap_SEQUENCE_SIZE_1_b3__maxVariableParts_OF_VariablePart;
+static int ett_inap_SRFGapCriteria;
+static int ett_inap_T_iPAddressAndresource;
+static int ett_inap_Tone;
+static int ett_inap_VariablePart;
+static int ett_inap_PlayAnnouncementArg;
+static int ett_inap_T_connectedParty;
+static int ett_inap_PromptAndCollectUserInformationArg;
+static int ett_inap_ReceivedInformationArg;
+static int ett_inap_PromptAndReceiveMessageArg;
+static int ett_inap_MessageReceivedArg;
+static int ett_inap_ScriptCloseArg;
+static int ett_inap_ScriptEventArg;
+static int ett_inap_ScriptInformationArg;
+static int ett_inap_ScriptRunArg;
+static int ett_inap_SRFCallGapArg;
+static int ett_inap_PAR_cancelFailed;
+static int ett_inap_ScfTaskRefusedParameter;
+static int ett_inap_ReferralParameter;
+static int ett_inap_Code;
+static int ett_inap_ROS;
+static int ett_inap_Invoke;
+static int ett_inap_T_linkedId;
+static int ett_inap_ReturnResult;
+static int ett_inap_T_result;
+static int ett_inap_ReturnError;
+static int ett_inap_Reject;
+static int ett_inap_T_problem_01;
+static int ett_inap_InvokeId;
static expert_field ei_inap_unknown_invokeData;
static expert_field ei_inap_unknown_returnResultData;
@@ -9362,8 +9362,8 @@ static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,a
-static guint8 inap_pdu_type = 0;
-static guint8 inap_pdu_size = 0;
+static guint8 inap_pdu_type;
+static guint8 inap_pdu_size;
static int
diff --git a/epan/dissectors/packet-infiniband.c b/epan/dissectors/packet-infiniband.c
index 74ce5e6711..4bdd2fc197 100644
--- a/epan/dissectors/packet-infiniband.c
+++ b/epan/dissectors/packet-infiniband.c
@@ -1689,7 +1689,7 @@ static guint32 opCode_PAYLD[] = {
/* settings to be set by the user via the preferences dialog */
static guint pref_rroce_udp_port = DEFAULT_RROCE_UDP_PORT;
-static gboolean try_heuristic_first = TRUE;
+static bool try_heuristic_first = true;
/* saves information about connections that have been/are in the process of being
negotiated via ConnectionManagement packets */
@@ -1705,7 +1705,7 @@ typedef struct {
/* holds a table of connection contexts being negotiated by CM. the key is a obtained
using add_address_to_hash64(initiator address, TransactionID) */
-static GHashTable *CM_context_table = NULL;
+static GHashTable *CM_context_table;
/* heuristics sub-dissectors list for dissecting the data payload of IB packets */
static heur_dissector_list_t heur_dissectors_payload;
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 7977672129..ee150291ca 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -49,6 +49,7 @@
#include "packet-vxlan.h"
#include "packet-mpls.h"
#include "packet-nsh.h"
+#include "packet-eth.h"
void proto_register_ip(void);
void proto_reg_handoff_ip(void);
@@ -58,25 +59,25 @@ static int ip_tap;
static int exported_pdu_tap;
/* Decode the old IPv4 TOS field as the DiffServ DS Field (RFC2474/2475) */
-static gboolean g_ip_dscp_actif = TRUE;
+static bool g_ip_dscp_actif = true;
/* Defragment fragmented IP datagrams */
-static gboolean ip_defragment = TRUE;
+static bool ip_defragment = true;
/* Place IP summary in proto tree */
-static gboolean ip_summary_in_tree = TRUE;
+static bool ip_summary_in_tree = true;
/* Perform IP checksum */
-static gboolean ip_check_checksum = FALSE;
+static bool ip_check_checksum;
/* Assume TSO and correct zero-length IP packets */
-static gboolean ip_tso_supported = TRUE;
+static bool ip_tso_supported = true;
/* Use heuristics to determine subdissector */
-static gboolean try_heuristic_first = FALSE;
+static bool try_heuristic_first;
/* Interpret the reserved flag as security flag (RFC 3514) */
-static gboolean ip_security_flag = FALSE;
+static bool ip_security_flag;
static int proto_ip;
@@ -546,7 +547,7 @@ ip_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, const
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
ip_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "ip");
@@ -565,7 +566,7 @@ ip_build_filter(packet_info *pinfo, void *user_data _U_)
*/
static reassembly_table ip_reassembly_table;
-static gboolean
+static bool
capture_ip(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_) {
if (!BYTES_ARE_IN_FRAME(offset, len, IPH_MIN_LEN))
return FALSE;
@@ -1907,7 +1908,7 @@ dissect_ip_v4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
guint16 ipsum;
fragment_head *ipfd_head = NULL;
tvbuff_t *next_tvb;
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
gboolean save_fragmented;
ws_ip4 *iph;
guint32 src32, dst32;
@@ -2351,9 +2352,12 @@ dissect_ip_v4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
}
}
- conversation_t *conv = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_IP, 0, 0, NO_PORT_X);
+ conversation_t *conv;
+
+ /* find (and extend) an existing conversation, or create a new one */
+ conv = find_conversation_strat(pinfo, CONVERSATION_IP, NO_PORT_X);
if(!conv) {
- conv = conversation_new(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_IP, 0, 0, NO_PORTS);
+ conv=conversation_new_strat(pinfo, CONVERSATION_IP, NO_PORTS);
}
else {
/*
diff --git a/epan/dissectors/packet-ipars.c b/epan/dissectors/packet-ipars.c
index dc73f3ddc8..8159c7d9a0 100644
--- a/epan/dissectors/packet-ipars.c
+++ b/epan/dissectors/packet-ipars.c
@@ -30,7 +30,7 @@ static gint ett_ipars;
#define EOMu (0x12)
#define EOMi (0x13)
-#define MAX_EOM_MSG_SIZE (16) /* max size of an EOMx indicator string */
+#define MAX_EOM_MSG_SIZE (24) /* max size of an EOMx indicator string */
static int
dissect_ipars(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
diff --git a/epan/dissectors/packet-ipdc.c b/epan/dissectors/packet-ipdc.c
index 0af54b84db..07adef12f8 100644
--- a/epan/dissectors/packet-ipdc.c
+++ b/epan/dissectors/packet-ipdc.c
@@ -37,7 +37,7 @@
void proto_register_ipdc(void);
void proto_reg_handoff_ipdc(void);
-static dissector_handle_t ipdc_tcp_handle = NULL;
+static dissector_handle_t ipdc_tcp_handle;
#define TCP_PORT_IPDC 6668 /* Not IANA registered */
#define TRANS_ID_SIZE_IPDC 4
@@ -691,7 +691,7 @@ static gint ett_ipdc_line_status;
static expert_field ei_ipdc_ipv4;
-static gboolean ipdc_desegment = TRUE;
+static bool ipdc_desegment = true;
static dissector_handle_t q931_handle;
@@ -722,15 +722,15 @@ dissect_ipdc_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
guint len;
guint i;
guint status;
- gshort tag;
+ uint8_t tag;
guint32 tmp_tag;
- gshort nr = tvb_get_guint8(tvb,0);
- gshort ns = tvb_get_guint8(tvb,1);
+ uint8_t nr = tvb_get_guint8(tvb,0);
+ uint8_t ns = tvb_get_guint8(tvb,1);
guint payload_len = get_ipdc_pdu_len(pinfo,tvb,0,NULL);
/* payload_len will be at least 4 bytes... */
- gshort trans_id_size;
+ int trans_id_size;
guint32 trans_id;
guint16 message_code;
guint16 offset;
diff --git a/epan/dissectors/packet-iperf.c b/epan/dissectors/packet-iperf.c
index 04dc342e5d..26eafdba6b 100644
--- a/epan/dissectors/packet-iperf.c
+++ b/epan/dissectors/packet-iperf.c
@@ -257,8 +257,8 @@ static gint ett_data;
static tvbparse_wanted_t *want;
static tvbparse_wanted_t *want_trailing;
-static dissector_handle_t iperf2_handle_tcp = NULL;
-static dissector_handle_t iperf2_handle_udp = NULL;
+static dissector_handle_t iperf2_handle_tcp;
+static dissector_handle_t iperf2_handle_udp;
typedef struct {
bool first_packet_processed;
diff --git a/epan/dissectors/packet-iperf3.c b/epan/dissectors/packet-iperf3.c
index 4b90d8a343..e79deaf641 100644
--- a/epan/dissectors/packet-iperf3.c
+++ b/epan/dissectors/packet-iperf3.c
@@ -75,9 +75,9 @@ static int hf_iperf3_cookie;
static int ett_iperf3;
static int ett_time;
-static dissector_handle_t iperf3_handle_tcp = NULL;
-static dissector_handle_t iperf3_handle_udp = NULL;
-static dissector_handle_t json_handle = NULL;
+static dissector_handle_t iperf3_handle_tcp;
+static dissector_handle_t iperf3_handle_udp;
+static dissector_handle_t json_handle;
static const value_string iperf3_state_vals[] = {
{ TEST_START, "TEST_START" },
@@ -127,8 +127,8 @@ static udp_conversation_data *udp_set_conversation_data(packet_info *);
/* protocol preferences */
-static gboolean iperf3_pref_64bit_seq_no = FALSE;
-static gboolean iperf3_pref_detect_udp_order = TRUE;
+static bool iperf3_pref_64bit_seq_no;
+static bool iperf3_pref_detect_udp_order = true;
/* expert info */
static expert_field ei_udp_out_of_order;
@@ -159,7 +159,7 @@ DEFINE_CONTROL_PREFACE(UDP) /* invoke as col_info_preface_UDP(pinfo) */
// Collection of cookies used to differentiate between control and data connections.
// See dissect_iperf3_tcp() for details.
-static wmem_map_t *cookiejar = NULL;
+static wmem_map_t *cookiejar;
static int
dissect_iperf3_control_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
diff --git a/epan/dissectors/packet-ipfc.c b/epan/dissectors/packet-ipfc.c
index f45fe24abd..297a95de74 100644
--- a/epan/dissectors/packet-ipfc.c
+++ b/epan/dissectors/packet-ipfc.c
@@ -36,7 +36,7 @@ static gint ett_ipfc;
static dissector_handle_t llc_handle;
static capture_dissector_handle_t llc_cap_handle;
-static gboolean
+static bool
capture_ipfc (const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
if (!BYTES_ARE_IN_FRAME(0, len, 16))
diff --git a/epan/dissectors/packet-ipmi.c b/epan/dissectors/packet-ipmi.c
index 26efb23a4e..f818ce3ea1 100644
--- a/epan/dissectors/packet-ipmi.c
+++ b/epan/dissectors/packet-ipmi.c
@@ -127,10 +127,10 @@ static gint proto_tmode;
/* WARNING: Setting this to true might result in the entire dissector being
disabled by default or removed completely. */
-static gboolean dissect_bus_commands = FALSE;
-static gboolean fru_langcode_is_english = TRUE;
+static bool dissect_bus_commands;
+static bool fru_langcode_is_english = true;
static guint response_after_req = 5000;
-static guint response_before_req = 0;
+static guint response_before_req;
static guint message_format = MSGFMT_GUESS;
static guint selected_oem = IPMI_OEM_NONE;
diff --git a/epan/dissectors/packet-ippusb.c b/epan/dissectors/packet-ippusb.c
index 9aabf74206..f7b2b2f14c 100644
--- a/epan/dissectors/packet-ippusb.c
+++ b/epan/dissectors/packet-ippusb.c
@@ -43,7 +43,7 @@
static const guint8 CHUNKED_END[] = { 0x30, 0x0d, 0x0a, 0x0d, 0x0a };
static const guint8 RETURN_NEWLINE[] = { 0x0d, 0x0a };
-static tvbuff_t *return_newline_tvb = NULL;
+static tvbuff_t *return_newline_tvb;
void proto_register_ippusb(void);
void proto_reg_handoff_ippusb(void);
@@ -75,7 +75,7 @@ static int hf_ippusb_reassembled_length;
static int hf_ippusb_reassembled_data;
/* Reassemble by default */
-static gboolean global_ippusb_reassemble = TRUE;
+static bool global_ippusb_reassemble = true;
static const fragment_items ippusb_frag_items = {
&ett_ippusb_fragment,
@@ -203,7 +203,6 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
gint next_offset;
guint8 last;
guint8 status_code;
- const guchar *last_chunk = NULL;
struct ippusb_analysis *ippusbd = NULL;
conversation_t *conv = NULL;
@@ -234,9 +233,10 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
last = tvb_get_guint8(tvb, captured_length - 1);
status_code = tvb_get_bits8(tvb, 3 * BITS_PER_BYTE, BITS_PER_BYTE);
- /* If segment has length of last chunk from chunk transfer */
- if(captured_length == CHUNK_LENGTH_MIN){
- last_chunk = tvb_get_ptr(tvb, offset, captured_length);
+ /* Is the segment the last chunk from chunk transfer? */
+ bool is_last_chunk = false;
+ if (captured_length == CHUNK_LENGTH_MIN) {
+ is_last_chunk = tvb_memeql(tvb, offset, CHUNKED_END, CHUNK_LENGTH_MIN) == 0;
}
if (is_http_header(first_linelen, first_line) && last == TAG_END_OF_ATTRIBUTES && status_code != PRINT_JOB && status_code != SEND_DOCUMENT) {
@@ -292,7 +292,7 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
new_msp->document |= MSP_HAS_DOCUMENT;
}
- if(!(last_chunk && strncmp(last_chunk, CHUNKED_END, CHUNK_LENGTH_MIN) == 0)){
+ if (!is_last_chunk) {
/* If this segment is not the last chunk in a chunked transfer */
if (captured_length < reported_length && (new_msp->document & MSP_HAS_DOCUMENT)) {
@@ -403,7 +403,7 @@ dissect_ippusb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
}
}
}
- else if (current_msp &&last_chunk && strncmp(last_chunk, CHUNKED_END, CHUNK_LENGTH_MIN) == 0) {
+ else if (current_msp && is_last_chunk) {
/* This is the last segment of the chunked transfer and reassembled packet */
proto_tree_add_item(tree, proto_ippusb, tvb, offset, -1, ENC_NA);
diff --git a/epan/dissectors/packet-ipsec.c b/epan/dissectors/packet-ipsec.c
index 1b28a919c2..8a6705c052 100644
--- a/epan/dissectors/packet-ipsec.c
+++ b/epan/dissectors/packet-ipsec.c
@@ -273,7 +273,7 @@ typedef struct {
guint32 sn_upper;
} uat_esp_sa_record_t;
-static uat_esp_sa_record_t *uat_esp_sa_records = NULL;
+static uat_esp_sa_record_t *uat_esp_sa_records;
/* Extra SA records that may be set programmatically */
/* 'records' array is now allocated on the heap */
@@ -284,8 +284,8 @@ typedef struct extra_esp_sa_records_t {
} extra_esp_sa_records_t;
static extra_esp_sa_records_t extra_esp_sa_records;
-static uat_t * esp_uat = NULL;
-static guint num_sa_uat = 0;
+static uat_t * esp_uat;
+static guint num_sa_uat;
/*
Name : static gint compute_ascii_key(gchar **ascii_key, gchar *key)
@@ -548,10 +548,10 @@ void esp_sa_record_add_from_dissector(guint8 protocol, const gchar *srcIP, const
/* Preference settings */
/* Default ESP payload decode to off */
-static gboolean g_esp_enable_encryption_decode = FALSE;
+static bool g_esp_enable_encryption_decode;
/* Default ESP payload Authentication Checking to off */
-static gboolean g_esp_enable_authentication_check = FALSE;
+static bool g_esp_enable_authentication_check;
/**************************************************/
/* Sequence number analysis */
@@ -566,12 +566,12 @@ typedef struct
/* The sequence analysis SPI hash table.
Maps SPI -> spi_status */
-static wmem_map_t *esp_sequence_analysis_hash = NULL;
+static wmem_map_t *esp_sequence_analysis_hash;
/* Results are stored here: framenum -> spi_status */
/* N.B. only store entries for out-of-order frames, if there is no entry for
a given frame, it was found to be in-order */
-static wmem_map_t *esp_sequence_analysis_report_hash = NULL;
+static wmem_map_t *esp_sequence_analysis_report_hash;
/* During the first pass, update the SPI state. If the sequence numbers
are out of order, add an entry to the report table */
@@ -658,10 +658,10 @@ static void show_esp_sequence_info(guint32 spi, guint32 sequence_number,
(only works if payload is NULL encrypted and ESP payload decode is off or payload is NULL encrypted
and the packet does not match a Security Association).
*/
-static gboolean g_esp_enable_null_encryption_decode_heuristic = FALSE;
+static bool g_esp_enable_null_encryption_decode_heuristic;
/* Default to doing ESP sequence analysis */
-static gboolean g_esp_do_sequence_analysis = TRUE;
+static bool g_esp_do_sequence_analysis = true;
@@ -1328,7 +1328,7 @@ esp_null_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *esp_tree)
return esp_icv_len;
}
-static gboolean
+static bool
capture_ah(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint8 nxt;
diff --git a/epan/dissectors/packet-ipsi-ctl.c b/epan/dissectors/packet-ipsi-ctl.c
index 7e22129e6c..1cc64801ff 100644
--- a/epan/dissectors/packet-ipsi-ctl.c
+++ b/epan/dissectors/packet-ipsi-ctl.c
@@ -19,7 +19,7 @@
void proto_register_ipsictl(void);
void proto_reg_handoff_ipsictl(void);
-static dissector_handle_t ipsictl_handle = NULL;
+static dissector_handle_t ipsictl_handle;
#define IPSICTL_PORT 5010 /* Not IANA registered */
#define IPSICTL_PDU_MAGIC 0x0300
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c
index be013021a2..5947d0c335 100644
--- a/epan/dissectors/packet-ipv6.c
+++ b/epan/dissectors/packet-ipv6.c
@@ -70,7 +70,7 @@ void proto_reg_handoff_ipv6(void);
#define IP6OPT_CALIPSO 0x07 /* 00 0 00111 = 7 */
#define IP6OPT_SMF_DPD 0x08 /* 00 0 01000 = 8 */
#define IP6OPT_PDM 0x0F /* 00 0 01111 = 15 */
-#define IP6OPT_APN6 0x13 /* 00 0 10003 = 19 */
+#define IP6OPT_APN6 0x13 /* 00 0 10011 = 19 */
#define IP6OPT_EXP_1E 0x1E /* 00 0 11110 = 30 */
#define IP6OPT_RPL 0x23 /* 00 1 00011 = 35 */
#define IP6OPT_QUICKSTART 0x26 /* 00 1 00110 = 38 */
@@ -687,7 +687,7 @@ ipv6_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, con
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
ipv6_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "ipv6");
@@ -711,9 +711,9 @@ struct nat64_prefix_data {
};
-static uat_t *nat64_prefix_uat = NULL;
-static struct nat64_prefix_data *nat64_prefix_uats = NULL;
-static guint number_of_nat64_prefix = 0;
+static uat_t *nat64_prefix_uat;
+static struct nat64_prefix_data *nat64_prefix_uats;
+static guint number_of_nat64_prefix;
UAT_CSTRING_CB_DEF(nat64_prefix_uats, ipaddr, struct nat64_prefix_data)
@@ -816,28 +816,28 @@ static dissector_table_t ip_dissector_table;
static dissector_table_t ipv6_routing_dissector_table;
/* Reassemble fragmented datagrams */
-static gboolean ipv6_reassemble = TRUE;
+static bool ipv6_reassemble = true;
/* Place IPv6 summary in proto tree */
-static gboolean ipv6_summary_in_tree = TRUE;
+static bool ipv6_summary_in_tree = true;
/* Show expanded information about IPv6 address */
-static gboolean ipv6_address_detail = TRUE;
+static bool ipv6_address_detail = true;
/* Perform strict RFC adherence checking */
-static gboolean g_ipv6_rpl_srh_strict_rfc_checking = FALSE;
+static bool g_ipv6_rpl_srh_strict_rfc_checking;
/* Use heuristics to determine subdissector */
-static gboolean try_heuristic_first = FALSE;
+static bool try_heuristic_first;
/* Display IPv6 extension headers under the root tree */
-static gboolean ipv6_exthdr_under_root = FALSE;
+static bool ipv6_exthdr_under_root;
/* Hide extension header generated field for length */
-static gboolean ipv6_exthdr_hide_len_oct_field = FALSE;
+static bool ipv6_exthdr_hide_len_oct_field;
/* Assume TSO and correct zero-length IP packets */
-static gboolean ipv6_tso_supported = FALSE;
+static bool ipv6_tso_supported;
/*
* defragmentation of IPv6
@@ -947,7 +947,7 @@ static const gint _ipv6_opt_type_hdr[][2] = {
static inline gint
ipv6_opt_type_hdr(gint type)
{
- const gint (*p)[2] = _ipv6_opt_type_hdr;
+ static const gint (*p)[2] = _ipv6_opt_type_hdr;
for (; (*p)[1] != IPv6_OPT_HDR_ANY; p++) {
if ((*p)[0] == type) {
@@ -1022,7 +1022,7 @@ static const value_string apn_id_type_strs[] = {
{ 0, NULL }
};
-static gboolean
+static bool
capture_ipv6(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint8 nxt;
@@ -1038,7 +1038,7 @@ capture_ipv6(const guchar *pd, int offset, int len, capture_packet_info_t *cpinf
return try_capture_dissector("ip.proto", nxt, pd, offset, len, cpinfo, pseudo_header);
}
-static gboolean
+static bool
capture_ipv6_exthdr(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint8 nxt;
@@ -1168,7 +1168,7 @@ ipv6_reassemble_do(tvbuff_t **tvb_ptr, gint *offset_ptr, packet_info *pinfo, pro
{
fragment_head *ipfd_head;
tvbuff_t *next_tvb;
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
pinfo->fragmented = TRUE;
*show_data_ptr = TRUE;
@@ -2281,8 +2281,8 @@ dissect_opt_ioam_trace(tvbuff_t *tvb, gint offset, packet_info *pinfo,
offset += 2;
nodelen = tvb_get_bits8(tvb, offset * 8, 5);
- ti = proto_tree_add_bits_item(opt_tree, hf_ipv6_opt_ioam_trace_nodelen, tvb,
- offset * 8, 5, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(opt_tree, hf_ipv6_opt_ioam_trace_nodelen, tvb,
+ offset * 8, 5, ENC_BIG_ENDIAN);
proto_tree_add_bitmask(opt_tree, tvb, offset, hf_ipv6_opt_ioam_trace_flags,
ett_ipv6_opt_ioam_trace_flags, ioam_trace_flags, ENC_NA);
@@ -3624,21 +3624,24 @@ dissect_ipv6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
}
/* conversation management */
- conversation_t *conv = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_IPV6, 0, 0, NO_PORT_X);
+ conversation_t *conv;
+
+ /* find (and extend) an existing conversation, or create a new one */
+ conv = find_conversation_strat(pinfo, CONVERSATION_IPV6, NO_PORT_X);
if(!conv) {
- conv = conversation_new(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_IPV6, 0, 0, NO_PORTS);
+ conv=conversation_new_strat(pinfo, CONVERSATION_IPV6, NO_PORTS);
}
else {
- /*
- * while not strictly necessary because there is only 1
- * conversation between 2 IPs, we still move the last frame
- * indicator as being a usual practice.
- */
- if (!(pinfo->fd->visited)) {
- if (pinfo->num > conv->last_frame) {
- conv->last_frame = pinfo->num;
+ /*
+ * while not strictly necessary because there is only 1
+ * conversation between 2 IPs, we still move the last frame
+ * indicator as being a usual practice.
+ */
+ if (!(pinfo->fd->visited)) {
+ if (pinfo->num > conv->last_frame) {
+ conv->last_frame = pinfo->num;
+ }
}
- }
}
ipv6d = get_ipv6_conversation_data(conv, pinfo);
diff --git a/epan/dissectors/packet-ipx.c b/epan/dissectors/packet-ipx.c
index ddbb8e3816..dd3d344f71 100644
--- a/epan/dissectors/packet-ipx.c
+++ b/epan/dissectors/packet-ipx.c
@@ -271,7 +271,7 @@ static const value_string ipxmsg_sigchar_vals[] = {
{ 0, NULL }
};
-static gboolean
+static bool
capture_ipx(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_ipx);
@@ -466,7 +466,7 @@ typedef struct {
guint32 num;
} spx_rexmit_info;
-static wmem_map_t *spx_hash = NULL;
+static wmem_map_t *spx_hash;
/* Hash Functions */
static gint
diff --git a/epan/dissectors/packet-irdma.c b/epan/dissectors/packet-irdma.c
new file mode 100644
index 0000000000..afcb04ad21
--- /dev/null
+++ b/epan/dissectors/packet-irdma.c
@@ -0,0 +1,1977 @@
+/* packet-irdma.c
+ *
+ * Routines for IBM i RDMA dissection
+ * Copyright 2018, 2024 IBM Corporation
+ * Brian Jongekryg (bej@us.ibm.com, bej@arbin.net)
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+/*
+ * Dissector for IBM i base RDMA frame traffic
+ * captured via TRCCNN TYPE(*RDMA) command
+ *
+ * Subdissectors for IBM i RDMA endoint traffic can be registered
+ * by calling
+ * dissector_add_uint("irdma.ep.port", port, handle);
+ */
+
+#include <config.h>
+
+#include <string.h>
+
+#include <epan/packet.h> /* Should be first Wireshark include (other than config.h) */
+#include <epan/conversation.h>
+#include <epan/proto_data.h>
+#include <epan/expert.h>
+#include <epan/prefs.h>
+#include <epan/addr_resolv.h>
+#include <wsutil/utf8_entities.h>
+
+#include <packet-irdma.h>
+
+/* irdmaep conversation and packet analysis data */
+typedef struct irdmaep_buffer
+{
+ /* Size of buffer */
+ uint32_t size;
+
+ /* Offset of first byte available for use */
+ uint32_t offset;
+
+ /* Last data sequence number in buffer */
+ uint32_t seq_num;
+
+ /* Contents of buffer unknown */
+ bool indeterminate;
+
+} irdmaep_buffer_t;
+
+#define IRDMAEP_MAX_DATA_BUFID 2
+typedef struct irdmaep_flow
+{
+ /* Last sent DATA sequence */
+ bool data_seq_valid;
+ uint32_t data_seq;
+
+ /* Last sent USER_RDMA data (RECVACK) ID, offset */
+ bool recvack_valid;
+ uint32_t recvack_id;
+ uint32_t recvack_offset;
+
+ /* Receive buffer status */
+ /* Number of receive buffers */
+ uint32_t recv_buffer_count;
+
+ /* Most recent buffer used by sender */
+ uint32_t recv_mrb;
+
+ /* Calculated buffer size estimate */
+ uint32_t recv_min_size;
+
+ /* Track up to two remote receive buffers */
+ irdmaep_buffer_t recv_buffer[IRDMAEP_MAX_DATA_BUFID];
+
+} irdmaep_flow_t;
+
+typedef struct irdmaep_analysis
+{
+ /* Trace status for both directions of the flow.
+ Info for sends with smaller src port is recorded in flow1,
+ larger src port in flow2. */
+ irdmaep_flow_t flow1;
+ irdmaep_flow_t flow2;
+
+ /* Forward or reverse flow info based on current packet ports */
+ irdmaep_flow_t *fwd_flow, *rev_flow;
+
+ /* Server port number from CONNREQ or CONNACK to help determine
+ which payload dissector to call. */
+ uint32_t server_port;
+
+ /* Keep track of RDMA endpoint stream numbers */
+ uint32_t stream;
+
+ /* Track whether conversation was closed, so we know to start
+ new conversation if CONNREQ/ACK seen. */
+ bool closed;
+
+ /* Current link sequence number */
+ uint32_t link;
+
+ /* Link switch timestamps */
+ nstime_t movereq_time;
+
+ /* Conversation timestamps */
+ nstime_t ts_first;
+ nstime_t ts_prev;
+
+} irdmaep_analysis_t;
+
+typedef struct irdmaep_packet_analysis
+{
+ /* Retransmitted packet? */
+ bool retransmission;
+
+ /* Out-of-order sequence (should never occur) */
+ bool out_of_order;
+
+ /* Bytes remaining available for sending/receiving */
+ uint32_t rbuf_available;
+
+ /* Bytes remaining in current/active receive buffer */
+ uint32_t rbuf_cur;
+
+ /* Max bytes available for next send */
+ uint32_t rbuf_max;
+
+ /* Is rbuf_available estimated or true value */
+ bool rbuf_estimated;
+
+ /* Does packet sequence indicate this is stale (prior link) */
+ bool seq_stale;
+
+ /* First packet on new link */
+ bool linkswt;
+
+ /* Time to move link */
+ nstime_t movelink_time;
+
+ /* Delta time from previous packet */
+ nstime_t delta_time;
+
+} irdmaep_packet_analysis_t;
+
+/* Prototypes */
+void proto_reg_handoff_irdma(void);
+void proto_register_irdma(void);
+
+static int dissect_irdma(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
+static int dissect_irdmaqp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
+static int dissect_irdmalink(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
+static int dissect_irdmaep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
+static void dissect_data_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void irdmaep_add_rbuf_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_packet_analysis_t *eppd);
+static void dissect_reuse_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_user_recv_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_user_send_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_connect_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_close_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_buffer_msg_mkeyaddr(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_buffer_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_move_link_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_move_link_ack_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_move_link_cmp_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree);
+static void dissect_irdmaep_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_pdata_t *data);
+static irdmaep_analysis_t *init_irdmaep_conversation_data(packet_info *pinfo);
+static void analyze_irdmaep_rbuffer(irdmaep_flow_t *flow,
+ irdmaep_packet_analysis_t *eppd);
+static void *add_eppd(packet_info *pinfo);
+static void *get_eppd(packet_info *pinfo);
+static void *get_or_add_eppd(packet_info *pinfo);
+
+/* Initialize the protocol and registered fields */
+static int proto_irdma;
+static int proto_irdmaqp;
+static int proto_irdmalink;
+static int proto_irdmaep;
+
+static int hf_irdma_hwdst;
+static int hf_irdma_hwsrc;
+static int hf_irdma_qpindex;
+static int hf_irdma_ip6src;
+static int hf_irdma_ip6dst;
+static int hf_irdma_ip4src;
+static int hf_irdma_ip4dst;
+static int hf_irdma_hwaddr;
+static int hf_irdma_ip6addr;
+static int hf_irdma_ip4addr;
+
+static int hf_irdmaqp_type;
+static int hf_irdmaqp_id;
+
+static int hf_irdmalink_type;
+static int hf_irdmalink_groups;
+
+static int hf_irdmaep_type;
+static int hf_irdmaep_len;
+static int hf_irdmaep_grpid;
+static int hf_irdmaep_grpid_ctr;
+static int hf_irdmaep_grpid_time;
+static int hf_irdmaep_grpid_hwaddr;
+static int hf_irdmaep_srcport;
+static int hf_irdmaep_dstport;
+static int hf_irdmaep_port;
+static int hf_irdmaep_stream;
+static int hf_irdmaep_linkseq;
+static int hf_irdmaep_sndbufsize;
+static int hf_irdmaep_usrblksize;
+static int hf_irdmaep_reason;
+static int hf_irdmaep_rbuf;
+static int hf_irdmaep_rkey;
+static int hf_irdmaep_raddr;
+static int hf_irdmaep_flags;
+static int hf_irdmaep_flag_buf0_free;
+static int hf_irdmaep_flag_buf1_free;
+static int hf_irdmaep_rcvbufsize;
+static int hf_irdmaep_sendseq;
+static int hf_irdmaep_recvseq0;
+static int hf_irdmaep_recvseq1;
+static int hf_irdmaep_usndsent;
+static int hf_irdmaep_usndid;
+static int hf_irdmaep_urcvid;
+static int hf_irdmaep_seqnum;
+static int hf_irdmaep_bufid;
+static int hf_irdmaep_offset;
+static int hf_irdmaep_datalen;
+static int hf_irdmaep_ulength;
+static int hf_irdmaep_blength;
+static int hf_irdmaep_recvid;
+static int hf_irdmaep_rbufavail;
+static int hf_irdmaep_rbufactive;
+static int hf_irdmaep_rbufmax;
+static int hf_irdmaep_move1;
+static int hf_irdmaep_move2;
+static int hf_irdmaep_ts_relative;
+static int hf_irdmaep_ts_delta;
+
+static expert_field ei_irdmaep_analysis_stale;
+static expert_field ei_irdmaep_analysis_dup;
+static expert_field ei_irdmaep_analysis_oos;
+static expert_field ei_irdmaep_connection_req;
+static expert_field ei_irdmaep_connection_ack;
+static expert_field ei_irdmaep_connection_lswt;
+
+/* Initialize the subtree pointers */
+static int ett_irdma;
+static int ett_irdmaqp;
+static int ett_irdmalink;
+static int ett_irdmaep;
+static int ett_irdmaep_grpid;
+static int ett_irdmaep_rbuf;
+static int ett_irdmaep_bufflags;
+static int ett_irdmaep_rcvbuf_analyze;
+static int ett_irdmaep_timestamps;
+
+static dissector_table_t irdmaep_dissector_table = NULL;
+
+static dissector_handle_t irdmaqp_handle;
+static dissector_handle_t irdmalink_handle;
+static dissector_handle_t irdmaep_handle;
+
+static uint32_t irdmaep_stream_count;
+
+/* Data passed from iRDMA dissector to QP, Link, Endpoint dissectors */
+typedef struct
+{
+ uint32_t qpindex;
+} irdma_data_t;
+
+/* Miscellaneous utility functions */
+static inline bool
+seq16_lt(uint16_t a, uint16_t b)
+{
+ return (int16_t) (a - b) < 0;
+}
+
+static inline bool
+seq16_gt(uint16_t a, uint16_t b)
+{
+ return (int16_t) (a - b) > 0;
+}
+
+static inline bool
+is_v4mapped(ws_in6_addr *addr)
+{
+ static uint8_t mapped[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF};
+ return memcmp(addr, mapped, 12) == 0;
+}
+
+static inline bool
+is_v4compat(ws_in6_addr *addr)
+{
+ static uint8_t zeroes[12] = {0};
+ return memcmp(addr, zeroes, 12) == 0
+ && memcmp(&addr->bytes[12], zeroes, 4) != 0;
+}
+
+static const value_string irdma_serv_names[] = {
+ {930, "mrdb-engine"},
+ {931, "mrdb-objrep"},
+ {932, "mrdb-objrepr"},
+ {940, "ifs-mfs"},
+ {946, "drda-ddm"},
+ {0, NULL}};
+
+static inline const char *
+irdma_serv_name_lookup(unsigned port)
+{
+ return try_val_to_str(port, irdma_serv_names);
+}
+
+static inline void
+irdma_col_snprint_port(char *buf, gulong buf_siz, uint16_t val)
+{
+ const char *str;
+
+ if (gbl_resolv_flags.transport_name &&
+ (str = irdma_serv_name_lookup(val)) != NULL) {
+ snprintf(buf, buf_siz, "%s(%" PRIu16 ")", str, val);
+ } else {
+ snprintf(buf, buf_siz, "%" PRIu16, val);
+ }
+}
+
+static void
+irdma_col_append_ports(column_info *cinfo, const int col, uint16_t src, uint16_t dst)
+{
+ char buf_src[32], buf_dst[32];
+
+ irdma_col_snprint_port(buf_src, 32, src);
+ irdma_col_snprint_port(buf_dst, 32, dst);
+ col_append_lstr(cinfo, col, buf_src, " " UTF8_RIGHTWARDS_ARROW " ", buf_dst, COL_ADD_LSTR_TERMINATOR);
+}
+
+static void
+irdma_custom_format_port(char *str, uint32_t port)
+{
+ irdma_col_snprint_port(str, ITEM_LABEL_LENGTH, port);
+}
+
+static void
+irdma_custom_format_rbufsize(char *str, uint32_t bufsize)
+{
+ bufsize &= 0xFFF;
+ uint32_t kb_bufsize = bufsize * 4;
+ snprintf(str, ITEM_LABEL_LENGTH, "%" PRIu32 " (%" PRIu32 " KB)", bufsize, kb_bufsize);
+}
+
+static void
+irdma_init(void)
+{
+ irdmaep_stream_count = 0;
+}
+
+/*********************************************************************/
+/*********************************************************************/
+/* RDMA pseudo-header data and functions */
+/*********************************************************************/
+/*********************************************************************/
+
+/* IBM i RDMA pseudo-header from TRCCNN offsets */
+#define IRDMA_HDR_DST 0
+#define IRDMA_HDR_SRC 6
+#define IRDMA_HDR_QPINDEX 12
+#define IRDMA_HDR_SRCIP 14
+#define IRDMA_HDR_SRCIP4 26
+#define IRDMA_HDR_DSTIP 30
+#define IRDMA_HDR_DSTIP4 42
+#define IRDMA_HDR_LENGTH 46
+
+/* Payload types for IBM i RDMA frames */
+#define IRDMA_PROTO_ENDPOINT 0 /* 0b */
+#define IRDMA_PROTO_QP 4 /* 100b */
+#define IRDMA_PROTO_LINK 5 /* 101b */
+
+/* Dissect IBM i RDMA pseudo-header */
+static int
+dissect_irdma(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ /* Set up structures needed to add the protocol subtree and manage it */
+ proto_item *ti;
+ proto_item *irdma_item;
+ proto_tree *irdma_tree;
+ /* Other misc. local variables. */
+ ws_in6_addr ipsrc;
+ bool ipv4 = false;
+ char *src_str, *dst_str;
+ irdma_data_t irdma_data = {0};
+ dissector_handle_t subdissector_handle = NULL;
+
+ /*** HEURISTICS ***/
+
+ /* First, if at all possible, do some heuristics to check if the packet
+ * cannot possibly belong to your protocol. This is especially important
+ * for protocols directly on top of TCP or UDP where port collisions are
+ * common place (e.g., even though your protocol uses a well known port,
+ * someone else may set up, for example, a web server on that port which,
+ * if someone analyzed that web server's traffic in Wireshark, would result
+ * in Wireshark handing an HTTP packet to your dissector).
+ *
+ * For example:
+ */
+
+ /* Check that the packet is long enough for it to belong to us. */
+ if (tvb_reported_length(tvb) < IRDMA_HDR_LENGTH)
+ return 0;
+
+ /* Check that the packet has a recognizable frame type. This probably
+ won't eliminate many bad packets. */
+ uint8_t ftype = tvb_get_bits8(tvb, IRDMA_HDR_LENGTH * 8, 3);
+ if (ftype > 5)
+ return 0;
+
+ /*** COLUMN DATA ***/
+
+ /* There are two normal columns to fill in: the 'Protocol' column which
+ * is narrow and generally just contains the constant string 'irdma',
+ * and the 'Info' column which can be much wider and contain misc. summary
+ * information (for example, the port number for TCP packets).
+ *
+ * If you are setting the column to a constant string, use "col_set_str()",
+ * as it's more efficient than the other "col_set_XXX()" calls.
+ *
+ * If
+ * - you may be appending to the column later OR
+ * - you have constructed the string locally OR
+ * - the string was returned from a call to val_to_str()
+ * then use "col_add_str()" instead, as that takes a copy of the string.
+ *
+ * The function "col_add_fstr()" can be used instead of "col_add_str()"; it
+ * takes "printf()"-like arguments. Don't use "col_add_fstr()" with a format
+ * string of "%s" - just use "col_add_str()" or "col_set_str()", as it's
+ * more efficient than "col_add_fstr()".
+ *
+ * For full details see section 1.4 of README.dissector.
+ */
+
+ /* Set the Protocol column to the constant string of irdma */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RDMA");
+
+ /* Use first 3 bits beyond header to determine what type of frame this is
+ (QP management, Link Management, Endpoint) */
+ if (ftype == IRDMA_PROTO_QP)
+ {
+ col_set_str(pinfo->cinfo, COL_INFO, "QP Management");
+ subdissector_handle = irdmaqp_handle;
+ }
+ else
+ if (ftype == IRDMA_PROTO_LINK)
+ {
+ col_set_str(pinfo->cinfo, COL_INFO, "Link Management");
+ subdissector_handle = irdmalink_handle;
+ }
+ else
+ {
+ col_set_str(pinfo->cinfo, COL_INFO, "RDMA Endpoint");
+ subdissector_handle = irdmaep_handle;
+ }
+
+ /*** PROTOCOL TREE ***/
+
+ /* Now we will create a sub-tree for our protocol and start adding fields
+ * to display under that sub-tree. Most of the time the only functions you
+ * will need are proto_tree_add_item() and proto_item_add_subtree().
+ *
+ * NOTE: The offset and length values in the call to proto_tree_add_item()
+ * define what data bytes to highlight in the hex display window when the
+ * line in the protocol tree display corresponding to that item is selected.
+ *
+ * Supplying a length of -1 tells Wireshark to highlight all data from the
+ * offset to the end of the packet.
+ */
+
+ /* create display subtree for the protocol */
+ irdma_item = proto_tree_add_item(tree, proto_irdma, tvb, 0, IRDMA_HDR_LENGTH, ENC_NA);
+ irdma_tree = proto_item_add_subtree(irdma_item, ett_irdma);
+
+ set_address_tvb(&pinfo->dl_dst, AT_ETHER, 6, tvb, IRDMA_HDR_DST);
+ set_address_tvb(&pinfo->dl_src, AT_ETHER, 6, tvb, IRDMA_HDR_SRC);
+
+ proto_tree_add_item(irdma_tree, hf_irdma_hwdst, tvb, IRDMA_HDR_DST, 6, ENC_NA);
+ ti = proto_tree_add_item(irdma_tree, hf_irdma_hwaddr, tvb, IRDMA_HDR_DST, 6, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(ti);
+
+ proto_tree_add_item(irdma_tree, hf_irdma_hwsrc, tvb, IRDMA_HDR_SRC, 6, ENC_NA);
+ ti = proto_tree_add_item(irdma_tree, hf_irdma_hwaddr, tvb, IRDMA_HDR_SRC, 6, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(ti);
+
+ proto_tree_add_item_ret_uint(irdma_tree, hf_irdma_qpindex, tvb,
+ IRDMA_HDR_QPINDEX, 2, ENC_BIG_ENDIAN,
+ &irdma_data.qpindex);
+
+ /* Get source IP address and determine if we've got an IPv4 or IPv6 address */
+ tvb_get_ipv6(tvb, IRDMA_HDR_SRCIP, &ipsrc);
+ ipv4 = is_v4mapped(&ipsrc) || is_v4compat(&ipsrc);
+
+ if (ipv4)
+ {
+ set_address_tvb(&pinfo->net_dst, AT_IPv4, 4, tvb, IRDMA_HDR_DSTIP4);
+ copy_address_shallow(&pinfo->dst, &pinfo->net_dst);
+
+ set_address_tvb(&pinfo->net_src, AT_IPv4, 4, tvb, IRDMA_HDR_SRCIP4);
+ copy_address_shallow(&pinfo->src, &pinfo->net_src);
+
+ src_str = tvb_address_with_resolution_to_str(wmem_packet_scope(), tvb, AT_IPv4, IRDMA_HDR_SRCIP4);
+ dst_str = tvb_address_with_resolution_to_str(wmem_packet_scope(), tvb, AT_IPv4, IRDMA_HDR_DSTIP4);
+
+ proto_tree_add_item(irdma_tree, hf_irdma_ip4src, tvb, IRDMA_HDR_SRCIP4, 4, ENC_BIG_ENDIAN);
+ ti = proto_tree_add_item(irdma_tree, hf_irdma_ip4addr, tvb, IRDMA_HDR_SRCIP4, 4, ENC_BIG_ENDIAN);
+ PROTO_ITEM_SET_HIDDEN(ti);
+
+ proto_tree_add_item(irdma_tree, hf_irdma_ip4dst, tvb, IRDMA_HDR_DSTIP4, 4, ENC_BIG_ENDIAN);
+ ti = proto_tree_add_item(irdma_tree, hf_irdma_ip4addr, tvb, IRDMA_HDR_DSTIP4, 4, ENC_BIG_ENDIAN);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ }
+ else
+ {
+ set_address_tvb(&pinfo->net_dst, AT_IPv6, 16, tvb, IRDMA_HDR_DSTIP);
+ copy_address_shallow(&pinfo->dst, &pinfo->net_dst);
+
+ set_address_tvb(&pinfo->net_src, AT_IPv6, 16, tvb, IRDMA_HDR_SRCIP);
+ copy_address_shallow(&pinfo->src, &pinfo->net_src);
+
+ src_str = tvb_address_with_resolution_to_str(wmem_packet_scope(), tvb, AT_IPv6, IRDMA_HDR_SRCIP);
+ dst_str = tvb_address_with_resolution_to_str(wmem_packet_scope(), tvb, AT_IPv6, IRDMA_HDR_DSTIP);
+
+ proto_tree_add_item(irdma_tree, hf_irdma_ip6src, tvb, IRDMA_HDR_SRCIP, 16, ENC_NA);
+ ti = proto_tree_add_item(irdma_tree, hf_irdma_ip6addr, tvb, IRDMA_HDR_SRCIP, 16, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(ti);
+
+ proto_tree_add_item(irdma_tree, hf_irdma_ip6dst, tvb, IRDMA_HDR_DSTIP, 16, ENC_NA);
+ ti = proto_tree_add_item(irdma_tree, hf_irdma_ip6addr, tvb, IRDMA_HDR_DSTIP, 16, ENC_NA);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ }
+
+ proto_item_append_text(irdma_item, ", Src: %s", src_str);
+ proto_item_append_text(irdma_item, ", Dst: %s", dst_str);
+
+ call_dissector_with_data(subdissector_handle,
+ tvb_new_subset_remaining(tvb, IRDMA_HDR_LENGTH),
+ pinfo, tree, &irdma_data);
+
+ /* Return the amount of data this dissector was able to dissect (which may
+ * or may not be the total captured packet as we return here). */
+ return tvb_captured_length(tvb);
+}
+
+/*********************************************************************/
+/*********************************************************************/
+/* RDMA QP data and functions */
+/*********************************************************************/
+/*********************************************************************/
+/* IBM i RDMA QP message types */
+#define IRDMA_QP_ECHOREQ 0x8000
+#define IRDMA_QP_ECHORSP 0x8001
+
+/* IBM i RDMA QP message offsets */
+#define IRDMA_QP_TYPE 0 /* 16-bit message type */
+#define IRDMA_QP_ECHO_ID 2 /* 16-bit Echo req/rsp ID */
+
+static const value_string irdmaqp_type_str[] = {
+ {IRDMA_QP_ECHOREQ, "Echo request"},
+ {IRDMA_QP_ECHORSP, "Echo response"},
+ {0, NULL}};
+
+/* Dissect RDMA QP packets */
+static int
+dissect_irdmaqp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ proto_item *ti;
+ proto_tree *qp_tree;
+
+ irdma_data_t *irdma_data = (irdma_data_t *) data;
+
+ if (tvb_reported_length(tvb) < 2)
+ return 0;
+
+ /* Set the Protocol column */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RDMA-QP");
+
+ uint16_t msg_type = tvb_get_ntohs(tvb, IRDMA_QP_TYPE);
+ const char *msg_type_str = val_to_str(msg_type, irdmaqp_type_str,
+ "Unknown message (0x%04X)");
+
+ col_add_fstr(pinfo->cinfo, COL_INFO,
+ "%-16s qp=%2" PRIu32, msg_type_str, irdma_data->qpindex);
+
+ /* Create display subtree for the QP message */
+ ti = proto_tree_add_item(tree, proto_irdmaqp, tvb, 0, -1, ENC_NA);
+ qp_tree = proto_item_add_subtree(ti, ett_irdmaqp);
+
+ proto_tree_add_item(qp_tree, hf_irdmaqp_type, tvb, IRDMA_QP_TYPE, 2,
+ ENC_BIG_ENDIAN);
+
+ switch (msg_type)
+ {
+ case IRDMA_QP_ECHOREQ:
+ case IRDMA_QP_ECHORSP:
+ {
+ uint32_t echo_id;
+ proto_tree_add_item_ret_uint(qp_tree, hf_irdmaqp_id, tvb,
+ IRDMA_QP_ECHO_ID, 2,
+ ENC_BIG_ENDIAN, &echo_id);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", id=%" PRIu32, echo_id);
+ break;
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+/*********************************************************************/
+/*********************************************************************/
+/* RDMA Link data and functions */
+/*********************************************************************/
+/*********************************************************************/
+/* IBM i RDMA Link message types */
+#define IRDMA_LINK_STATUS 0xA000
+
+/* IBM i RDMA Link message offsets */
+#define IRDMA_LINK_TYPE 0 /* 16-bit message type */
+#define IRDMA_LINK_STATUS_GROUPS 2 /* 16-bit count of active groups */
+
+static const value_string irdmalink_type_str[] = {
+ {IRDMA_LINK_STATUS, "Link Status"},
+ {0, NULL}};
+
+/* Dissect RDMA Link packets */
+static int
+dissect_irdmalink(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *ti;
+ proto_tree *link_tree;
+
+ if (tvb_reported_length(tvb) < 2)
+ return 0;
+
+ /* Set the Protocol column */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RDMA-Link");
+
+ uint16_t msg_type = tvb_get_ntohs(tvb, IRDMA_LINK_TYPE);
+ const char *msg_type_str = val_to_str(msg_type, irdmalink_type_str,
+ "Unknown message (0x%04X)");
+
+ col_add_str(pinfo->cinfo, COL_INFO, msg_type_str);
+
+ /* Create display subtree for the Link message */
+ ti = proto_tree_add_item(tree, proto_irdmalink, tvb, 0, -1, ENC_NA);
+ link_tree = proto_item_add_subtree(ti, ett_irdmalink);
+
+ proto_tree_add_item(link_tree, hf_irdmalink_type, tvb, IRDMA_LINK_TYPE, 2,
+ ENC_BIG_ENDIAN);
+
+ switch (msg_type)
+ {
+ case IRDMA_LINK_STATUS:
+ {
+ uint32_t groups;
+ proto_tree_add_item_ret_uint(link_tree, hf_irdmalink_groups, tvb,
+ IRDMA_LINK_STATUS_GROUPS, 2,
+ ENC_BIG_ENDIAN, &groups);
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", groups=%" PRIu32, groups);
+ break;
+ }
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+/*********************************************************************/
+/*********************************************************************/
+/* RDMA Endpoint data and functions */
+/*********************************************************************/
+/*********************************************************************/
+/* IBM i RDMA Endpoint preferences */
+static bool irdmaep_calculate_ts = TRUE;
+static bool irdmaep_no_subdissector_on_error = TRUE;
+
+/* IBM i RDMA Endpoint message types */
+#define IRDMA_EP_CONNREQ 0x01
+#define IRDMA_EP_CONNACK 0x02
+#define IRDMA_EP_CONNBUF 0x03
+#define IRDMA_EP_RNEGREQ 0x04
+#define IRDMA_EP_RNEGACK 0x05
+#define IRDMA_EP_CLOSE 0x06
+#define IRDMA_EP_RESET 0x09
+#define IRDMA_EP_MOVEREQ 0x11
+#define IRDMA_EP_MOVEACK 0x12
+#define IRDMA_EP_MOVECMP 0x13
+#define IRDMA_EP_DATA 0x21
+#define IRDMA_EP_REUSEBUF 0x22
+#define IRDMA_EP_RECVREQ 0x23
+#define IRDMA_EP_RECVACK 0x24
+#define IRDMA_EP_RECVNAK 0x25
+
+/* IBM i RDMA Endpoint message offsets */
+#define IRDMA_EP_TYPE 0 /* ( 1) Message type */
+#define IRDMA_EP_LEN 1 /* ( 1) Message length */
+#define IRDMA_EP_GRPID 2 /* (12) Group ID */
+#define IRDMA_EP_GRPID_CTR 2 /* ( 1) Uniqueness counter */
+#define IRDMA_EP_GRPID_TIME 3 /* ( 5) Bits 4-43 of TOD */
+#define IRDMA_EP_GRPID_MAC 8 /* ( 6) MAC address */
+#define IRDMA_EP_SPORT 14 /* ( 2) Source port */
+#define IRDMA_EP_DPORT 16 /* ( 2) Destination port */
+#define IRDMA_EP_LINKSEQ 18 /* ( 2) Link sequence number */
+#define IRDMA_EP_MIN_LENGTH 20
+
+#define IRDMA_EP_CONNECT_BUFSIZE 20 /* ( 2) Send buffer size (* 4KB) */
+#define IRDMA_EP_CONNECT_USRBLKSIZE 22 /* ( 2) USER_RDMA receive block size (* 4KB) */
+#define IRDMA_EP_CONNECT_MIN_LENGTH 24
+
+#define IRDMA_EP_CLOSE_REASON 20 /* ( 4) Close reason */
+#define IRDMA_EP_CLOSE_MIN_LENGTH 24
+
+#define IRDMA_EP_BUFFER_RKEY 20 /* ( 4) x2 Receive buffer MKeys */
+#define IRDMA_EP_BUFFER_RADDR 28 /* ( 8) x2 Receive buffer addresses */
+#define IRDMA_EP_BUFFER_FLAGS 44 /* ( 4 bits) Flags */
+#define IRDMA_EP_BUFFER_RBUFSIZE 44 /* (12 bits) Size of each receive buffer (* 4KB) */
+#define IRDMA_EP_MOVELINK_SENDSEQ 46 /* ( 2) Last sent sequence number */
+#define IRDMA_EP_MOVELINK_RBUFSEQ 48 /* ( 2) x2 Last received sequence number */
+#define IRDMA_EP_MOVELINK_USNDSENT 52 /* ( 4) Number of bytes sent from current USER_RDMA */
+#define IRDMA_EP_MOVELINK_USNDID 56 /* ( 2) Current USER_RDMA recv ID being sent */
+#define IRDMA_EP_MOVELINKACK_URCVID 58 /* ( 2) Last USER_RDMA recv ID complete */
+
+#define IRDMA_EP_MOVELINKCMP_URCVID 20 /* ( 2) Last USER_RDMA recv ID complete */
+
+#define IRDMA_EP_DATA_SEQNUM 20 /* ( 2) Sequence number */
+#define IRDMA_EP_DATA_BUFID 22 /* ( 2) Buffer index */
+#define IRDMA_EP_DATA_OFFSET 24 /* ( 4) Buffer offset */
+#define IRDMA_EP_DATA_DATALEN 28 /* ( 4) Data length */
+#define IRDMA_EP_DATA_MSG_LEN 32
+
+#define IRDMA_EP_REUSE_SEQNUM 20 /* ( 2) Sequence number */
+#define IRDMA_EP_REUSE_BUFID 22 /* ( 2) Buffer index */
+
+#define IRDMA_EP_USERRECV_ULENGTH 20 /* ( 4) Total user receive length */
+#define IRDMA_EP_USERRECV_OFFSET 24 /* ( 4) Offset within full buffer */
+#define IRDMA_EP_USERRECV_RLENGTH 28 /* ( 4) Buffer length */
+#define IRDMA_EP_USERRECV_RECVID 32 /* ( 2) Receive identifier */
+#define IRDMA_EP_USERRECV_RKEY 34 /* ( 4) Buffer MKey */
+#define IRDMA_EP_USERRECV_RADDR 38 /* ( 8) Buffer address */
+#define IRDMA_EP_USERRECV_MSG_LEN 46
+
+#define IRDMA_EP_USERSEND_ULENGTH 20 /* ( 4) Total user send length */
+#define IRDMA_EP_USERSEND_OFFSET 24 /* ( 4) Offset within full buffer */
+#define IRDMA_EP_USERSEND_SLENGTH 28 /* ( 4) Length sent */
+#define IRDMA_EP_USERSEND_RECVID 32 /* ( 2) Receive identifier */
+#define IRDMA_EP_USERSEND_MSG_LEN 34
+
+static const value_string irdmaep_type_str[] = {
+ {IRDMA_EP_CONNREQ, "CONNREQ"},
+ {IRDMA_EP_CONNACK, "CONNACK"},
+ {IRDMA_EP_CONNBUF, "CONNBUF"},
+ {IRDMA_EP_RNEGREQ, "RNEGREQ"},
+ {IRDMA_EP_RNEGACK, "RNEGACK"},
+ {IRDMA_EP_CLOSE, "CLOSE"},
+ {IRDMA_EP_RESET, "RESET"},
+ {IRDMA_EP_MOVEREQ, "MOVEREQ"},
+ {IRDMA_EP_MOVEACK, "MOVEACK"},
+ {IRDMA_EP_MOVECMP, "MOVECMP"},
+ {IRDMA_EP_DATA, "DATA"},
+ {IRDMA_EP_REUSEBUF, "REUSEBUF"},
+ {IRDMA_EP_RECVREQ, "RECVREQ"},
+ {IRDMA_EP_RECVACK, "RECVACK"},
+ {IRDMA_EP_RECVNAK, "RECVNAK"},
+ {0, NULL}};
+
+static const value_string vals_free_inuse[] = {
+ {0, "In-use"},
+ {1, "Free"},
+ {0, NULL}};
+
+/* Dissect RDMA Endpoint packets */
+static int
+dissect_irdmaep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *ti, *ti_seq, *ti_type;
+ proto_tree *ep_tree, *ts_tree;
+ proto_tree *grpid_tree;
+ address group_addr;
+ conversation_t *conv = NULL;
+ irdmaep_analysis_t *epd = NULL;
+ irdmaep_packet_analysis_t *eppd = NULL;
+ uint32_t linkseq;
+ nstime_t ts;
+
+ if (tvb_reported_length(tvb) < IRDMA_EP_MIN_LENGTH)
+ return 0;
+
+ /* Set the Protocol column */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RDMA-EP");
+
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ pinfo->srcport = tvb_get_ntohs(tvb, IRDMA_EP_SPORT);
+ pinfo->destport = tvb_get_ntohs(tvb, IRDMA_EP_DPORT);
+ pinfo->ptype = PT_TCP; /* Not really TCP, but nothing else better */
+ irdma_col_append_ports(pinfo->cinfo, COL_INFO,
+ pinfo->srcport, pinfo->destport);
+
+ set_address(&group_addr, AT_STRINGZ, 25,
+ tvb_bytes_to_str(wmem_packet_scope(), tvb, IRDMA_EP_GRPID, 12));
+
+ uint8_t msg_type = tvb_get_guint8(tvb, IRDMA_EP_TYPE);
+ uint8_t msg_length = tvb_get_guint8(tvb, IRDMA_EP_LEN);
+ const char *msg_type_str = val_to_str(msg_type, irdmaep_type_str,
+ "UNKNOWN (0x%02X)");
+ col_append_fstr(pinfo->cinfo, COL_INFO, " [%s]", msg_type_str);
+
+ /* Find or create conversation for this packet */
+ conv = find_conversation(pinfo->num, &group_addr, &group_addr,
+ CONVERSATION_NONE, pinfo->srcport, pinfo->destport, 0);
+
+ /* If first time through the packets and conversation exists but message
+ is a CONNREQ, check if we really should be starting a new conversation
+ instead */
+ if (!PINFO_FD_VISITED(pinfo)
+ && conv
+ && msg_type == IRDMA_EP_CONNREQ)
+ {
+ epd = (irdmaep_analysis_t *) conversation_get_proto_data(conv, proto_irdmaep);
+ if (epd && epd->closed)
+ conv = NULL;
+ }
+
+ /* If this is a new conversation, allocate conversation data */
+ if (!conv)
+ {
+ conv = conversation_new(pinfo->num, &group_addr, &group_addr,
+ CONVERSATION_NONE, pinfo->srcport, pinfo->destport, 0);
+ epd = init_irdmaep_conversation_data(pinfo);
+ conversation_add_proto_data(conv, proto_irdmaep, epd);
+ }
+ else
+ epd = (irdmaep_analysis_t *) conversation_get_proto_data(conv, proto_irdmaep);
+
+ if (pinfo->num > conv->last_frame)
+ conv->last_frame = pinfo->num;
+
+ epd->fwd_flow = &epd->flow1;
+ epd->rev_flow = &epd->flow2;
+ if (pinfo->srcport < pinfo->destport)
+ {
+ epd->fwd_flow = &epd->flow2;
+ epd->rev_flow = &epd->flow1;
+ }
+
+ /* Create display subtree for the Endpoint message */
+ ti = proto_tree_add_item(tree, proto_irdmaep, tvb, 0, msg_length, ENC_NA);
+ ep_tree = proto_item_add_subtree(ti, ett_irdmaep);
+
+ ti_type = proto_tree_add_item(ep_tree, hf_irdmaep_type, tvb,
+ IRDMA_EP_TYPE, 1, ENC_NA);
+ proto_tree_add_item(ep_tree, hf_irdmaep_len, tvb,
+ IRDMA_EP_LEN, 1, ENC_NA);
+
+ ti = proto_tree_add_item(ep_tree, hf_irdmaep_grpid, tvb,
+ IRDMA_EP_GRPID, 12, ENC_NA);
+ grpid_tree = proto_item_add_subtree(ti, ett_irdmaep_grpid);
+
+ proto_tree_add_item(grpid_tree, hf_irdmaep_grpid_ctr, tvb,
+ IRDMA_EP_GRPID_CTR, 1, ENC_NA);
+ proto_tree_add_item(grpid_tree, hf_irdmaep_grpid_time, tvb,
+ IRDMA_EP_GRPID_TIME, 5, ENC_BIG_ENDIAN);
+ proto_tree_add_item(grpid_tree, hf_irdmaep_grpid_hwaddr, tvb,
+ IRDMA_EP_GRPID_MAC, 6, ENC_NA);
+
+
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_srcport, tvb,
+ IRDMA_EP_SPORT, 2, ENC_BIG_ENDIAN,
+ &pinfo->srcport);
+ ti = proto_tree_add_item(ep_tree, hf_irdmaep_port, tvb,
+ IRDMA_EP_SPORT, 2, ENC_BIG_ENDIAN);
+ PROTO_ITEM_SET_HIDDEN(ti);
+
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_dstport, tvb,
+ IRDMA_EP_DPORT, 2, ENC_BIG_ENDIAN,
+ &pinfo->destport);
+ ti = proto_tree_add_item(ep_tree, hf_irdmaep_port, tvb,
+ IRDMA_EP_DPORT, 2, ENC_BIG_ENDIAN);
+ PROTO_ITEM_SET_HIDDEN(ti);
+ ti = proto_tree_add_uint(ep_tree, hf_irdmaep_stream, tvb, 0, 0,
+ epd->stream);
+ PROTO_ITEM_SET_GENERATED(ti);
+ ti_seq = proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_linkseq, tvb,
+ IRDMA_EP_LINKSEQ, 2, ENC_BIG_ENDIAN,
+ &linkseq);
+
+ /* Record conversation info that should only be done on first pass
+ (when packets are seen in order) */
+ if (!PINFO_FD_VISITED(pinfo))
+ {
+ if (irdmaep_calculate_ts)
+ {
+ if (!eppd)
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+ nstime_delta(&eppd->delta_time, &pinfo->abs_ts, &epd->ts_prev);
+
+ nstime_copy(&epd->ts_prev, &pinfo->abs_ts);
+ }
+
+ /* If this is a CLOSE or RESET request, remember so that if we see a
+ later CONNREQ with the same ports, we'll create a new conversation. */
+ if (msg_type == IRDMA_EP_CLOSE
+ || msg_type == IRDMA_EP_RESET)
+ epd->closed = 1;
+
+ /* If link seq not yet known, save current link seq */
+ if (epd->link == 0xFFFFFFFF)
+ epd->link = linkseq;
+
+ /* Update current link seq if it has increased */
+ if (seq16_gt(linkseq, epd->link))
+ {
+ epd->link = linkseq;
+ if (!eppd)
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+ eppd->linkswt = 1;
+ }
+
+ /* If packet is from prior link, set stale flag */
+ if (seq16_lt(linkseq, epd->link))
+ {
+ if (!eppd)
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+ eppd->seq_stale = 1;
+ }
+ }
+ else
+ eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo);
+
+ if (eppd)
+ {
+ if (eppd->linkswt)
+ expert_add_info(pinfo, ti_seq, &ei_irdmaep_connection_lswt);
+
+ if (eppd->seq_stale)
+ expert_add_info(pinfo, ti_seq, &ei_irdmaep_analysis_stale);
+ }
+
+ switch (msg_type)
+ {
+ case IRDMA_EP_DATA:
+ dissect_data_msg(tvb, pinfo, tree, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_REUSEBUF:
+ dissect_reuse_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_RECVREQ:
+ dissect_user_recv_msg(tvb, pinfo, tree, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_RECVACK:
+ case IRDMA_EP_RECVNAK:
+ dissect_user_send_msg(tvb, pinfo, tree, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_CONNREQ:
+ expert_add_info_format(pinfo, ti_type, &ei_irdmaep_connection_req,
+ "Connection request (CONNREQ): server port %u",
+ pinfo->destport);
+ dissect_connect_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_CONNACK:
+ expert_add_info_format(pinfo, ti_type, &ei_irdmaep_connection_ack,
+ "Connection acknowledgement (CONNACK): server port %u",
+ pinfo->srcport);
+ dissect_connect_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_RNEGREQ:
+ dissect_connect_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_CLOSE:
+ dissect_close_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_CONNBUF:
+ case IRDMA_EP_RNEGACK:
+ dissect_buffer_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_MOVEREQ:
+ if (!PINFO_FD_VISITED(pinfo))
+ {
+ /* Save time of MOVEREQ so we can report link switch delay */
+ epd->movereq_time = pinfo->abs_ts;
+ }
+
+ dissect_move_link_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_MOVEACK:
+ dissect_move_link_ack_msg(tvb, pinfo, epd, ep_tree);
+ break;
+
+ case IRDMA_EP_MOVECMP:
+ dissect_move_link_cmp_msg(tvb, pinfo, epd, ep_tree);
+ break;
+ }
+
+ ts_tree = proto_tree_add_subtree(ep_tree, tvb, 0, 0, ett_irdmaep_timestamps,
+ &ti, "Timestamps");
+ PROTO_ITEM_SET_GENERATED(ti);
+ nstime_delta(&ts, &pinfo->abs_ts, &epd->ts_first);
+ ti = proto_tree_add_time(ts_tree, hf_irdmaep_ts_relative, tvb, 0, 0, &ts);
+ PROTO_ITEM_SET_GENERATED(ti);
+ if (eppd && !nstime_is_unset(&eppd->delta_time))
+ {
+ ti = proto_tree_add_time(ts_tree, hf_irdmaep_ts_delta, tvb, 0, 0,
+ &eppd->delta_time);
+ PROTO_ITEM_SET_GENERATED(ti);
+ }
+
+ return tvb_captured_length(tvb);
+}
+
+static void
+dissect_data_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree)
+{
+ proto_item *ti_seq;
+ irdmaep_packet_analysis_t *eppd = NULL;
+ irdmaep_pdata_t pdata = {IRDMAEP_DATA_TYPE};
+ uint32_t bufid, seqnum, offset, datalen;
+
+ ti_seq = proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_seqnum, tvb,
+ IRDMA_EP_DATA_SEQNUM, 2, ENC_BIG_ENDIAN,
+ &seqnum);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_bufid, tvb,
+ IRDMA_EP_DATA_BUFID, 2, ENC_BIG_ENDIAN,
+ &bufid);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_offset, tvb,
+ IRDMA_EP_DATA_OFFSET, 4, ENC_BIG_ENDIAN,
+ &offset);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_datalen, tvb,
+ IRDMA_EP_DATA_DATALEN, 4, ENC_BIG_ENDIAN,
+ &datalen);
+
+ /* Update flow analysis only on first (in-order) pass */
+ if (!PINFO_FD_VISITED(pinfo)
+ && bufid < IRDMAEP_MAX_DATA_BUFID)
+ {
+ /* Only validate sequence number if we know previous seq# */
+ if (epd->fwd_flow->data_seq_valid)
+ {
+ uint16_t expected = epd->fwd_flow->data_seq + 1;
+ if (seqnum != expected)
+ {
+ /* Unexpected sequence number -- update packet data */
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+ if (seq16_lt(seqnum, expected))
+ eppd->retransmission = 1;
+ else
+ eppd->out_of_order = 1; /* Should never occur! */
+ }
+ }
+
+ epd->fwd_flow->data_seq_valid = 1;
+ epd->fwd_flow->data_seq = seqnum;
+
+ /* Update remote receive buffer status */
+ /* First, if this gives info on receive buffer we didn't yet know about,
+ bump buffer count but set those buffers to indeterminate state */
+ for (; epd->fwd_flow->recv_buffer_count <= bufid; ++epd->fwd_flow->recv_buffer_count)
+ epd->fwd_flow->recv_buffer[epd->fwd_flow->recv_buffer_count].indeterminate = 1;
+
+ epd->fwd_flow->recv_mrb = bufid;
+ epd->fwd_flow->recv_buffer[bufid].seq_num = seqnum;
+ epd->fwd_flow->recv_buffer[bufid].offset = (offset + datalen + 0xF) & ~0xF;
+ epd->fwd_flow->recv_buffer[bufid].indeterminate = 0;
+
+ /* Adjust discovered size of buffer (in case initial buffer info msg
+ wasn't captured for this flow) */
+ if (epd->fwd_flow->recv_buffer[bufid].offset > epd->fwd_flow->recv_min_size)
+ epd->fwd_flow->recv_min_size = (epd->fwd_flow->recv_buffer[bufid].offset + 0xFFF) & ~0xFFF;
+
+ if (!eppd)
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+ analyze_irdmaep_rbuffer(epd->fwd_flow, eppd);
+ }
+ else
+ eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo);
+
+ if (eppd)
+ {
+ if (eppd->retransmission)
+ {
+ col_prepend_fence_fstr(pinfo->cinfo, COL_INFO, "[Retransmission] ");
+ expert_add_info(pinfo, ti_seq, &ei_irdmaep_analysis_dup);
+ }
+
+ if (eppd->out_of_order)
+ {
+ col_prepend_fence_fstr(pinfo->cinfo, COL_INFO, "[Out-of-order] ");
+ expert_add_info(pinfo, ti_seq, &ei_irdmaep_analysis_oos);
+ }
+
+ irdmaep_add_rbuf_tree(tvb, pinfo, ep_tree, eppd);
+ }
+
+ dissect_irdmaep_data(tvb_new_subset_remaining(tvb, IRDMA_EP_DATA_MSG_LEN),
+ pinfo, tree, &pdata);
+}
+
+static void
+irdmaep_add_rbuf_tree(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
+ irdmaep_packet_analysis_t *eppd)
+{
+ proto_item *ti;
+ proto_tree *rcvbuf_tree;
+
+ ti = proto_tree_add_uint(tree, hf_irdmaep_rbufavail, tvb, 0, 0,
+ eppd->rbuf_available);
+ if (eppd->rbuf_estimated)
+ proto_item_append_text(ti, " (min)");
+ PROTO_ITEM_SET_GENERATED(ti);
+
+ rcvbuf_tree = proto_item_add_subtree(ti, ett_irdmaep_rcvbuf_analyze);
+
+ ti = proto_tree_add_uint(rcvbuf_tree, hf_irdmaep_rbufactive, tvb, 0, 0,
+ eppd->rbuf_cur);
+ if (eppd->rbuf_estimated)
+ proto_item_append_text(ti, " (min)");
+ PROTO_ITEM_SET_GENERATED(ti);
+
+ ti = proto_tree_add_uint(rcvbuf_tree, hf_irdmaep_rbufmax, tvb, 0, 0,
+ eppd->rbuf_max);
+ if (eppd->rbuf_estimated)
+ proto_item_append_text(ti, " (min)");
+ PROTO_ITEM_SET_GENERATED(ti);
+}
+
+static void
+dissect_reuse_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree)
+{
+ irdmaep_packet_analysis_t *eppd = NULL;
+ uint32_t bufid, seqnum;
+
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_seqnum, tvb,
+ IRDMA_EP_REUSE_SEQNUM, 2, ENC_BIG_ENDIAN,
+ &seqnum);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_bufid, tvb,
+ IRDMA_EP_REUSE_BUFID, 2, ENC_BIG_ENDIAN,
+ &bufid);
+
+ /* Update receive buffer analysis only on first (in-order) pass */
+ if (!PINFO_FD_VISITED(pinfo)
+ && bufid < IRDMAEP_MAX_DATA_BUFID)
+ {
+ /* Reuse msg reflects local receive buffer status, so update lcl_rbuf */
+
+ /* First, if this gives info on receive buffer we didn't yet know about,
+ bump buffer count but set those buffers to indeterminate state */
+ for (; epd->rev_flow->recv_buffer_count <= bufid; ++epd->rev_flow->recv_buffer_count)
+ epd->rev_flow->recv_buffer[epd->rev_flow->recv_buffer_count].indeterminate = 1;
+
+ if (epd->rev_flow->recv_buffer_count > 1
+ || epd->rev_flow->recv_buffer[bufid].seq_num == seqnum
+ || epd->rev_flow->recv_buffer[bufid].indeterminate)
+ {
+ epd->rev_flow->recv_buffer[bufid].offset = 0;
+ epd->rev_flow->recv_buffer[bufid].indeterminate = 0;
+ }
+
+ eppd = (irdmaep_packet_analysis_t *) add_eppd(pinfo);
+ analyze_irdmaep_rbuffer(epd->rev_flow, eppd);
+ }
+ else
+ eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo);
+
+ if (eppd)
+ irdmaep_add_rbuf_tree(tvb, pinfo, ep_tree, eppd);
+}
+
+static void
+dissect_user_recv_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_analysis_t *epd _U_, proto_tree *ep_tree)
+{
+ proto_item *ti;
+ proto_tree *rbuf_tree;
+
+ irdmaep_pdata_t pdata = {IRDMAEP_USERRDMA_TYPE, 0};
+
+ proto_tree_add_item(ep_tree, hf_irdmaep_ulength, tvb,
+ IRDMA_EP_USERRECV_ULENGTH, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_offset, tvb,
+ IRDMA_EP_USERRECV_OFFSET, 4, ENC_BIG_ENDIAN,
+ &pdata.userrdma_offset);
+ proto_tree_add_item(ep_tree, hf_irdmaep_blength, tvb,
+ IRDMA_EP_USERRECV_RLENGTH, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ep_tree, hf_irdmaep_recvid, tvb,
+ IRDMA_EP_USERRECV_RECVID, 2, ENC_BIG_ENDIAN);
+ ti = proto_tree_add_item(ep_tree, hf_irdmaep_rbuf, tvb,
+ IRDMA_EP_USERRECV_RKEY, 12, ENC_NA);
+ rbuf_tree = proto_item_add_subtree(ti, ett_irdmaep_rbuf);
+ proto_tree_add_item(rbuf_tree, hf_irdmaep_rkey, tvb,
+ IRDMA_EP_USERRECV_RKEY, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rbuf_tree, hf_irdmaep_raddr, tvb,
+ IRDMA_EP_USERRECV_RADDR, 8, ENC_BIG_ENDIAN);
+
+ dissect_irdmaep_data(tvb_new_subset_remaining(tvb, IRDMA_EP_USERRECV_MSG_LEN),
+ pinfo, tree, &pdata);
+}
+
+static void
+dissect_user_send_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree)
+{
+ proto_item *ti_ofs;
+ irdmaep_packet_analysis_t *eppd = NULL;
+ uint32_t recvid, offset, block_length, total_length;
+
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_ulength, tvb,
+ IRDMA_EP_USERSEND_ULENGTH, 4, ENC_BIG_ENDIAN,
+ &total_length);
+ ti_ofs = proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_offset, tvb,
+ IRDMA_EP_USERSEND_OFFSET, 4, ENC_BIG_ENDIAN,
+ &offset);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_blength, tvb,
+ IRDMA_EP_USERSEND_SLENGTH, 4, ENC_BIG_ENDIAN,
+ &block_length);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_recvid, tvb,
+ IRDMA_EP_USERSEND_RECVID, 2, ENC_BIG_ENDIAN,
+ &recvid);
+
+ /* Update flow analysis only on first (in-order) pass */
+ if (!PINFO_FD_VISITED(pinfo))
+ {
+ if (epd->fwd_flow->recvack_valid)
+ {
+ uint16_t nextid = epd->fwd_flow->recvack_id + 1;
+
+ if ((recvid == epd->fwd_flow->recvack_id && offset == epd->fwd_flow->recvack_offset)
+ || (recvid == nextid && offset == 0))
+ {
+ /* Expected ID, offset */
+ }
+ else
+ {
+ /* Unexpected offset */
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+ if (recvid == epd->fwd_flow->recvack_id
+ && offset < epd->fwd_flow->recvack_offset)
+ eppd->retransmission = 1;
+ else
+ eppd->out_of_order = 1; /* Should never occur! */
+ }
+ }
+
+ epd->fwd_flow->recvack_valid = 1;
+ epd->fwd_flow->recvack_id = recvid;
+ epd->fwd_flow->recvack_offset = offset + block_length;
+ }
+ else
+ eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo);
+
+ if (eppd)
+ {
+ if (eppd->retransmission)
+ {
+ col_prepend_fence_fstr(pinfo->cinfo, COL_INFO, "[Retransmission] ");
+ expert_add_info(pinfo, ti_ofs, &ei_irdmaep_analysis_dup);
+ }
+
+ if (eppd->out_of_order)
+ {
+ col_prepend_fence_fstr(pinfo->cinfo, COL_INFO, "[Out-of-order] ");
+ expert_add_info(pinfo, ti_ofs, &ei_irdmaep_analysis_oos);
+ }
+ }
+
+ irdmaep_pdata_t pdata = {IRDMAEP_USERRDMA_TYPE, offset};
+ dissect_irdmaep_data(tvb_new_subset_remaining(tvb, IRDMA_EP_USERSEND_MSG_LEN),
+ pinfo, tree, &pdata);
+}
+
+static void
+dissect_connect_msg(tvbuff_t *tvb, packet_info *pinfo _U_,
+ irdmaep_analysis_t *epd _U_, proto_tree *ep_tree)
+{
+ proto_item *ti;
+ uint32_t bufsize;
+
+ ti = proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_sndbufsize, tvb,
+ IRDMA_EP_CONNECT_BUFSIZE, 2,
+ ENC_BIG_ENDIAN, &bufsize);
+ proto_item_append_text(ti, " (%u KB)", bufsize * 4);
+
+ uint8_t msg_type = tvb_get_guint8(tvb, IRDMA_EP_TYPE);
+ if (msg_type == IRDMA_EP_CONNREQ
+ || msg_type == IRDMA_EP_CONNACK)
+ {
+ ti = proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_usrblksize, tvb,
+ IRDMA_EP_CONNECT_USRBLKSIZE, 2,
+ ENC_BIG_ENDIAN, &bufsize);
+ proto_item_append_text(ti, " (%u KB)", bufsize * 4);
+ }
+}
+
+static void
+dissect_close_msg(tvbuff_t *tvb, packet_info *pinfo _U_,
+ irdmaep_analysis_t *epd _U_, proto_tree *ep_tree)
+{
+ proto_tree_add_item(ep_tree, hf_irdmaep_reason, tvb,
+ IRDMA_EP_CLOSE_REASON, 4, ENC_BIG_ENDIAN);
+}
+
+static void
+dissect_buffer_msg_mkeyaddr(tvbuff_t *tvb, packet_info *pinfo _U_,
+ irdmaep_analysis_t *epd _U_, proto_tree *ep_tree)
+{
+ proto_item *ti;
+ proto_tree *rbuf_tree;
+
+ ti = proto_tree_add_item(ep_tree, hf_irdmaep_rbuf, tvb,
+ IRDMA_EP_BUFFER_RKEY, 24, ENC_NA);
+ rbuf_tree = proto_item_add_subtree(ti, ett_irdmaep_rbuf);
+ proto_tree_add_item(rbuf_tree, hf_irdmaep_rkey, tvb,
+ IRDMA_EP_BUFFER_RKEY, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rbuf_tree, hf_irdmaep_raddr, tvb,
+ IRDMA_EP_BUFFER_RADDR, 8, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rbuf_tree, hf_irdmaep_rkey, tvb,
+ IRDMA_EP_BUFFER_RKEY + 4, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rbuf_tree, hf_irdmaep_raddr, tvb,
+ IRDMA_EP_BUFFER_RADDR + 8, 8, ENC_BIG_ENDIAN);
+}
+
+static void
+dissect_buffer_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree)
+{
+ uint32_t rbufsize;
+
+ dissect_buffer_msg_mkeyaddr(tvb, pinfo, epd, ep_tree);
+
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_rcvbufsize, tvb,
+ IRDMA_EP_BUFFER_RBUFSIZE, 2, ENC_BIG_ENDIAN,
+ &rbufsize);
+ rbufsize *= 4096;
+
+ /* Update receive buffer analysis only on first (in-order) pass */
+ if (!PINFO_FD_VISITED(pinfo))
+ {
+ if (tvb_get_guint32(tvb, IRDMA_EP_BUFFER_RKEY, ENC_BIG_ENDIAN))
+ {
+ memset(&epd->rev_flow->recv_buffer[0], 0,
+ sizeof epd->rev_flow->recv_buffer[0]);
+ epd->rev_flow->recv_buffer[0].size = rbufsize;
+ if (epd->rev_flow->recv_buffer_count < 1)
+ epd->rev_flow->recv_buffer_count = 1;
+ }
+
+ if (tvb_get_guint32(tvb, IRDMA_EP_BUFFER_RKEY + 4, ENC_BIG_ENDIAN))
+ {
+ memset(&epd->rev_flow->recv_buffer[1], 0,
+ sizeof epd->rev_flow->recv_buffer[1]);
+ epd->rev_flow->recv_buffer[1].size = rbufsize;
+ if (epd->rev_flow->recv_buffer_count < 2)
+ epd->rev_flow->recv_buffer_count = 2;
+ }
+ }
+}
+
+static void
+dissect_move_link_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree)
+{
+ dissect_buffer_msg_mkeyaddr(tvb, pinfo, epd, ep_tree);
+
+ proto_item *ti;
+ proto_tree *flags_tree;
+ uint32_t rbufsize;
+
+ ti = proto_tree_add_item(ep_tree, hf_irdmaep_flags, tvb,
+ IRDMA_EP_BUFFER_FLAGS, 1, ENC_NA);
+ flags_tree = proto_item_add_subtree(ti, ett_irdmaep_bufflags);
+ proto_tree_add_item(flags_tree, hf_irdmaep_flag_buf0_free, tvb,
+ IRDMA_EP_BUFFER_FLAGS, 1, ENC_NA);
+ proto_tree_add_item(flags_tree, hf_irdmaep_flag_buf1_free, tvb,
+ IRDMA_EP_BUFFER_FLAGS, 1, ENC_NA);
+ proto_tree_add_item_ret_uint(ep_tree, hf_irdmaep_rcvbufsize, tvb,
+ IRDMA_EP_BUFFER_RBUFSIZE, 2, ENC_BIG_ENDIAN,
+ &rbufsize);
+
+ proto_tree_add_item(ep_tree, hf_irdmaep_sendseq, tvb,
+ IRDMA_EP_MOVELINK_SENDSEQ, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ep_tree, hf_irdmaep_recvseq0, tvb,
+ IRDMA_EP_MOVELINK_RBUFSEQ, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ep_tree, hf_irdmaep_recvseq1, tvb,
+ IRDMA_EP_MOVELINK_RBUFSEQ + 2, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ep_tree, hf_irdmaep_usndsent, tvb,
+ IRDMA_EP_MOVELINK_USNDSENT, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ep_tree, hf_irdmaep_usndid, tvb,
+ IRDMA_EP_MOVELINK_USNDID, 2, ENC_BIG_ENDIAN);
+
+ /* Update receive buffer analysis only on first (in-order) pass */
+ if (!PINFO_FD_VISITED(pinfo))
+ {
+ if (tvb_get_guint32(tvb, IRDMA_EP_BUFFER_RKEY, ENC_BIG_ENDIAN)
+ && (rbufsize & 0x8000))
+ {
+ memset(&epd->rev_flow->recv_buffer[0], 0,
+ sizeof epd->rev_flow->recv_buffer[0]);
+ epd->rev_flow->recv_buffer[0].size = (rbufsize & 0xFFF) * 4096;
+ }
+
+ if (tvb_get_guint32(tvb, IRDMA_EP_BUFFER_RKEY + 4, ENC_BIG_ENDIAN)
+ && (rbufsize & 0x4000))
+ {
+ memset(&epd->rev_flow->recv_buffer[1], 0,
+ sizeof epd->rev_flow->recv_buffer[1]);
+ epd->rev_flow->recv_buffer[1].size = (rbufsize & 0xFFF) * 4096;
+ }
+ }
+}
+
+static void
+dissect_move_link_ack_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree)
+{
+ proto_item *ti;
+ irdmaep_packet_analysis_t *eppd = NULL;
+
+ if (!PINFO_FD_VISITED(pinfo))
+ {
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+
+ nstime_delta(&eppd->movelink_time, &pinfo->abs_ts, &epd->movereq_time);
+ }
+ else
+ eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo);
+
+ dissect_move_link_msg(tvb, pinfo, epd, ep_tree);
+
+ proto_tree_add_item(ep_tree, hf_irdmaep_urcvid, tvb,
+ IRDMA_EP_MOVELINKACK_URCVID, 2, ENC_BIG_ENDIAN);
+
+ ti = proto_tree_add_time(ep_tree, hf_irdmaep_move1, tvb,
+ IRDMA_EP_TYPE, 0, &eppd->movelink_time);
+ PROTO_ITEM_SET_GENERATED(ti);
+}
+
+static void
+dissect_move_link_cmp_msg(tvbuff_t *tvb, packet_info *pinfo,
+ irdmaep_analysis_t *epd, proto_tree *ep_tree)
+{
+ proto_item *ti;
+ irdmaep_packet_analysis_t *eppd = NULL;
+
+ if (!PINFO_FD_VISITED(pinfo))
+ {
+ eppd = (irdmaep_packet_analysis_t *) get_or_add_eppd(pinfo);
+
+ nstime_delta(&eppd->movelink_time, &pinfo->abs_ts, &epd->movereq_time);
+ }
+ else
+ eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo);
+
+ proto_tree_add_item(ep_tree, hf_irdmaep_urcvid, tvb,
+ IRDMA_EP_MOVELINKCMP_URCVID, 2, ENC_BIG_ENDIAN);
+
+ ti = proto_tree_add_time(ep_tree, hf_irdmaep_move2, tvb,
+ IRDMA_EP_TYPE, 0, &eppd->movelink_time);
+ PROTO_ITEM_SET_GENERATED(ti);
+}
+
+static void
+dissect_irdmaep_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ irdmaep_pdata_t *pdata)
+{
+ irdmaep_packet_analysis_t *eppd = NULL;
+
+ /* Should we try to call subdissector based on port? */
+ if (!irdmaep_no_subdissector_on_error
+ || !(eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo))
+ || !eppd->retransmission)
+ {
+ uint32_t low_port, high_port;
+
+ if (pinfo->srcport < pinfo->destport)
+ {
+ low_port = pinfo->srcport;
+ high_port = pinfo->destport;
+ }
+ else
+ {
+ low_port = pinfo->destport;
+ high_port = pinfo->srcport;
+ }
+
+ if (dissector_try_uint_new(irdmaep_dissector_table, low_port,
+ tvb, pinfo, tree, TRUE, pdata))
+ return;
+
+ if (dissector_try_uint_new(irdmaep_dissector_table, high_port,
+ tvb, pinfo, tree, TRUE, pdata))
+ return;
+ }
+
+ /* If no subdissector (or error and skipped calling), just dissect as data */
+ call_data_dissector(tvb, pinfo, tree);
+}
+
+static irdmaep_analysis_t *
+init_irdmaep_conversation_data(packet_info *pinfo)
+{
+ irdmaep_analysis_t *epd
+ = wmem_new0(wmem_file_scope(), irdmaep_analysis_t);
+
+ epd->stream = irdmaep_stream_count++;
+ epd->link = -1;
+
+ nstime_copy(&epd->ts_first, &pinfo->abs_ts);
+ nstime_copy(&epd->ts_prev, &pinfo->abs_ts);
+
+ return epd;
+}
+
+static void *
+get_eppd(packet_info *pinfo)
+{
+ return p_get_proto_data(wmem_file_scope(), pinfo, proto_irdmaep,
+ pinfo->curr_layer_num);
+}
+
+static void *
+add_eppd(packet_info *pinfo)
+{
+ irdmaep_packet_analysis_t *eppd
+ = wmem_new0(wmem_file_scope(), irdmaep_packet_analysis_t);
+ p_add_proto_data(wmem_file_scope(), pinfo, proto_irdmaep,
+ pinfo->curr_layer_num, eppd);
+
+ nstime_set_unset(&eppd->delta_time);
+ return eppd;
+}
+
+static void *
+get_or_add_eppd(packet_info *pinfo)
+{
+ irdmaep_packet_analysis_t *eppd = (irdmaep_packet_analysis_t *) get_eppd(pinfo);
+ if (!eppd)
+ eppd = (irdmaep_packet_analysis_t *) add_eppd(pinfo);
+
+ return eppd;
+}
+
+static void
+analyze_irdmaep_rbuffer(irdmaep_flow_t *flow,
+ irdmaep_packet_analysis_t *eppd)
+{
+ uint32_t bufid = flow->recv_mrb;
+
+ /* Start by getting available space in the current receive
+ buffer */
+ if (flow->recv_buffer[bufid].size)
+ eppd->rbuf_available
+ = eppd->rbuf_cur
+ = eppd->rbuf_max
+ = flow->recv_buffer[bufid].size
+ - flow->recv_buffer[bufid].offset;
+ else
+ {
+ eppd->rbuf_available
+ = eppd->rbuf_cur
+ = eppd->rbuf_max
+ = flow->recv_min_size
+ - flow->recv_buffer[bufid].offset;
+ eppd->rbuf_estimated = 1;
+ }
+
+ /* If there's a second receive buffer and it's empty, include
+ it in receive buffer analysis */
+ if (++bufid == IRDMAEP_MAX_DATA_BUFID)
+ bufid = 0;
+ if (flow->recv_buffer_count > 1
+ && !flow->recv_buffer[bufid].indeterminate
+ && flow->recv_buffer[bufid].offset == 0)
+ {
+ uint32_t size = flow->recv_buffer[bufid].size
+ ? flow->recv_buffer[bufid].size
+ : flow->recv_min_size;
+ eppd->rbuf_available += size;
+ if (size > eppd->rbuf_max)
+ eppd->rbuf_max = size;
+ }
+}
+
+/*********************************************************************/
+/*********************************************************************/
+/* Dissector registration functions */
+/*********************************************************************/
+/*********************************************************************/
+
+/* Register the protocol with Wireshark */
+void
+proto_register_irdma(void)
+{
+ module_t *irdmaep_module;
+ expert_module_t *expert_irdmaep;
+
+ /*****************************************************************/
+ /* RDMA pseudo-header field definitions */
+ /*****************************************************************/
+ static hf_register_info hf[] = {
+ { &hf_irdma_hwdst,
+ { "Destination", "irdma.dst",
+ FT_ETHER, BASE_NONE, NULL, 0x0,
+ "Destination Hardware Address", HFILL }},
+ { &hf_irdma_hwsrc,
+ { "Source", "irdma.src",
+ FT_ETHER, BASE_NONE, NULL, 0x0,
+ "Source Hardware Address", HFILL }},
+ { &hf_irdma_qpindex,
+ { "QP#", "irdma.qpidx",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "QP Index", HFILL}},
+ { &hf_irdma_ip6src,
+ { "Source IP", "irdma.ipv6.src",
+ FT_IPv6, BASE_NONE, NULL, 0x0,
+ "Source IP Address", HFILL }},
+ { &hf_irdma_ip6dst,
+ { "Destination IP", "irdma.ipv6.dst",
+ FT_IPv6, BASE_NONE, NULL, 0x0,
+ "Destination IP Address", HFILL }},
+ { &hf_irdma_ip4src,
+ { "Source IP", "irdma.ipv4.src",
+ FT_IPv4, BASE_NONE, NULL, 0x0,
+ "Source IP Address", HFILL }},
+ { &hf_irdma_ip4dst,
+ { "Destination IP", "irdma.ipv4.dst",
+ FT_IPv4, BASE_NONE, NULL, 0x0,
+ "Destination IP Address", HFILL }},
+ { &hf_irdma_hwaddr,
+ { "Address", "irdma.addr",
+ FT_ETHER, BASE_NONE, NULL, 0x0,
+ "Source or Destination Hardware Address", HFILL}},
+ { &hf_irdma_ip6addr,
+ { "IP Address", "irdma.ipv6.addr",
+ FT_IPv6, BASE_NONE, NULL, 0x0,
+ "Source or Destination IPv6 Address", HFILL}},
+ { &hf_irdma_ip4addr,
+ { "IP Address", "irdma.ipv4.addr",
+ FT_IPv4, BASE_NONE, NULL, 0x0,
+ "Source or Destination IPv4 Address", HFILL}}
+ };
+
+ /*****************************************************************/
+ /* RDMA QP field definitions */
+ /*****************************************************************/
+ static hf_register_info hfqp[] = {
+ { &hf_irdmaqp_type,
+ { "Type", "irdma.qp.type",
+ FT_UINT16, BASE_HEX, VALS(irdmaqp_type_str), 0x0,
+ "RDMA QP Message Type", HFILL }},
+ { &hf_irdmaqp_id,
+ { "Identifier", "irdma.qp.echo.id",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "RDMA QP Echo Identifier", HFILL }}
+ };
+
+ /*****************************************************************/
+ /* RDMA Link field definitions */
+ /*****************************************************************/
+ static hf_register_info hflink[] = {
+ { &hf_irdmalink_type,
+ { "Type", "irdma.link.type",
+ FT_UINT16, BASE_HEX, VALS(irdmalink_type_str), 0x0,
+ "RDMA Link Message Type", HFILL }},
+ { &hf_irdmalink_groups,
+ { "Groups", "irdma.link.status.groups",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "RDMA Link Status Active Group Count", HFILL }}
+ };
+
+ /*****************************************************************/
+ /* RDMA Endpoint field definitions */
+ /*****************************************************************/
+ static hf_register_info hfep[] = {
+ { &hf_irdmaep_type,
+ { "Type", "irdma.ep.type",
+ FT_UINT8, BASE_DEC_HEX, VALS(irdmaep_type_str), 0x0,
+ "RDMA Endpoint Message Type", HFILL }},
+ { &hf_irdmaep_len,
+ { "Length", "irdma.ep.len",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ "RDMA Endpoint Message Length", HFILL }},
+ { &hf_irdmaep_grpid,
+ { "Group ID", "irdma.ep.grpid",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "RDMA Endpoint Group Identifier", HFILL }},
+ { &hf_irdmaep_grpid_ctr,
+ { "Counter", "irdma.ep.grpid.counter",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0x0,
+ "RDMA Endpoint Group Identifier Uniqueness Counter", HFILL }},
+ { &hf_irdmaep_grpid_time,
+ { "Time Generated", "irdma.ep.grpid.time",
+ FT_UINT48, BASE_HEX_DEC, NULL, 0x0,
+ "RDMA Endpoint Group Identifier Timestamp", HFILL }},
+ { &hf_irdmaep_grpid_hwaddr,
+ { "Hardware Address", "irdma.ep.grpid.hwaddr",
+ FT_ETHER, BASE_NONE, NULL, 0x0,
+ "RDMA Endpoint Group Identifier Hardware Address", HFILL }},
+ { &hf_irdmaep_srcport,
+ { "Source Port", "irdma.ep.srcport",
+ FT_UINT16, BASE_CUSTOM, CF_FUNC(irdma_custom_format_port), 0x0,
+ "RDMA Endpoint Source Port", HFILL }},
+ { &hf_irdmaep_dstport,
+ { "Destination Port", "irdma.ep.dstport",
+ FT_UINT16, BASE_CUSTOM, CF_FUNC(irdma_custom_format_port), 0x0,
+ "RDMA Endpoint Destination Port", HFILL }},
+ { &hf_irdmaep_port,
+ { "Source or Destination Port", "irdma.ep.port",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "RDMA Endpoint Source or Destination Port", HFILL }},
+ { &hf_irdmaep_stream,
+ { "Stream index", "irdma.ep.stream",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "RDMA Endpoint Stream Index", HFILL }},
+ { &hf_irdmaep_linkseq,
+ { "Link Sequence", "irdma.ep.linkseq",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "RDMA Endpoint Link Switch Sequence", HFILL }},
+ { &hf_irdmaep_sndbufsize,
+ { "Send Buffer Size", "irdma.ep.sndbufsize",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "RDMA Endpoint Send Buffer Size", HFILL }},
+ { &hf_irdmaep_usrblksize,
+ { "User Block Size", "irdma.ep.usrblksize",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "RDMA Endpoint USER_RDMA Block Size", HFILL }},
+ { &hf_irdmaep_reason,
+ { "Reason", "irdma.ep.reason",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0, /* TODO - Add Strings for reason? */
+ "RDMA Endpoint Close Reason", HFILL }},
+ { &hf_irdmaep_rbuf,
+ { "Remote Memory", "irdma.ep.rbuf",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "RDMA Endpoint Remote Memory Key/Address", HFILL }},
+ { &hf_irdmaep_rkey,
+ { "Remote Memory Key", "irdma.ep.rbuf.key",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ "RDMA Endpoint Remote Memory Key", HFILL }},
+ { &hf_irdmaep_raddr,
+ { "Remote Memory Address", "irdma.ep.rbuf.addr",
+ FT_UINT64, BASE_HEX, NULL, 0x0,
+ "RDMA Endpoint Remote Memory Address", HFILL }},
+ { &hf_irdmaep_flags,
+ { "Flags", "irdma.ep.buffer.flags",
+ FT_UINT8, BASE_HEX, NULL, 0xF0,
+ "RDMA Endpoint Buffer Flags", HFILL }},
+ { &hf_irdmaep_flag_buf0_free,
+ { "Buffer #0", "irdma.ep.buffer.flags.buf0",
+ FT_UINT8, 1, VALS(vals_free_inuse), 0x80,
+ "RDMA Endpoint Buffer 0 Free Flag", HFILL }},
+ { &hf_irdmaep_flag_buf1_free,
+ { "Buffer #1", "irdma.ep.buffer.flags.buf1",
+ FT_UINT8, 1, VALS(vals_free_inuse), 0x40,
+ "RDMA Endpoint Buffer 1 Free Flag", HFILL }},
+ { &hf_irdmaep_rcvbufsize,
+ { "Receive Buffer Size", "irdma.ep.rcvbufsize",
+ FT_UINT16, BASE_CUSTOM, CF_FUNC(irdma_custom_format_rbufsize), 0x0,
+ "RDMA Endpoint Receive Buffer Size", HFILL }},
+ { &hf_irdmaep_sendseq,
+ { "Last Send Sequence", "irdma.ep.sendseq",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Last Successful Data Sequence Number", HFILL }},
+ { &hf_irdmaep_recvseq0,
+ { "Last Received Sequence (Buffer #0)", "irdma.ep.recvseq0",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Last Received Data Sequence Number", HFILL }},
+ { &hf_irdmaep_recvseq1,
+ { "Last Received Sequence (Buffer #1)", "irdma.ep.recvseq1",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Last Received Data Sequence Number", HFILL }},
+ { &hf_irdmaep_usndsent,
+ { "USER_RDMA Bytes Sent", "irdma.ep.usndsent",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Bytes Sent From Current USER_RDMA Transfer", HFILL }},
+ { &hf_irdmaep_usndid,
+ { "USER_RDMA Send Identifier", "irdma.ep.usndid",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Current USER_RDMA Send Identifier", HFILL }},
+ { &hf_irdmaep_urcvid,
+ { "USER_RDMA Receive Identifier Complete", "irdma.ep.urcvid",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Last USER_RDMA Receive Identifier Completed", HFILL }},
+ { &hf_irdmaep_seqnum,
+ { "Send Sequence", "irdma.ep.seqnum",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Data Sequence Number", HFILL }},
+ { &hf_irdmaep_bufid,
+ { "Buffer Identifier", "irdma.ep.bufid",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "RDMA Endpoint Buffer Identifier", HFILL }},
+ { &hf_irdmaep_offset,
+ { "Buffer Offset", "irdma.ep.offset",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Buffer Offset", HFILL }},
+ { &hf_irdmaep_datalen,
+ { "Length", "irdma.ep.length",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint Data Length", HFILL }},
+ { &hf_irdmaep_ulength,
+ { "USER_RDMA Length", "irdma.ep.ulength",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint USER_RDMA Total Length", HFILL }},
+ { &hf_irdmaep_blength,
+ { "USER_RDMA Block Length", "irdma.ep.blength",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint USER_RDMA Block Length", HFILL }},
+ { &hf_irdmaep_recvid,
+ { "USER_RDMA Receive Identifier", "irdma.ep.recvid",
+ FT_UINT16, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Endpoint USER_RDMA Receive Identifier", HFILL }},
+ { &hf_irdmaep_rbufavail,
+ { "Receive Buffer Available", "irdma.ep.analysis.rcvbuf",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Receive Buffer Bytes Available", HFILL }},
+ { &hf_irdmaep_rbufactive,
+ { "Active Receive Buffer Available", "irdma.ep.analysis.rcvbuf.active",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Active Receive Buffer Bytes Available", HFILL }},
+ { &hf_irdmaep_rbufmax,
+ { "Maximum Receive Buffer Available", "irdma.ep.analysis.rcvbuf.max",
+ FT_UINT32, BASE_DEC_HEX, NULL, 0x0,
+ "RDMA Maximum Receive Buffer Bytes Available", HFILL }},
+ { &hf_irdmaep_move1,
+ { "Server link switch time", "irdma.ep.analysis.linkswt.server",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "RDMA server link switch time", HFILL }},
+ { &hf_irdmaep_move2,
+ { "Link switch time", "irdma.ep.analysis.linkswt",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "RDMA link switch time", HFILL }},
+ { &hf_irdmaep_ts_relative,
+ { "Time since first frame in this RDMA stream", "irdma.ep.time_relative",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "Time relative to first frame in this RDMA stream", HFILL }},
+ { &hf_irdmaep_ts_delta,
+ { "Time since previous frame in this RDMA stream", "irdma.ep.time_delta",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "Time delta from previous frame in this RDMA stream", HFILL }}
+ };
+
+ /*****************************************************************/
+ /* Protocol subtree array */
+ /*****************************************************************/
+ static int *ett[] = {
+ &ett_irdma,
+ &ett_irdmaqp,
+ &ett_irdmalink,
+ &ett_irdmaep,
+ &ett_irdmaep_grpid,
+ &ett_irdmaep_rbuf,
+ &ett_irdmaep_bufflags,
+ &ett_irdmaep_rcvbuf_analyze,
+ &ett_irdmaep_timestamps
+ };
+
+ /* Setup protocol expert items */
+ static ei_register_info ei[] = {
+ { &ei_irdmaep_analysis_stale,
+ { "irdma.ep.analysis.stale", PI_SEQUENCE, PI_NOTE,
+ "Packet received from prior link", EXPFILL }},
+ { &ei_irdmaep_analysis_dup,
+ { "irdma.ep.analysis.dup", PI_SEQUENCE, PI_CHAT,
+ "Duplicate data packet (retransmission)", EXPFILL }},
+ { &ei_irdmaep_analysis_oos,
+ { "irdma.ep.analysis.oos", PI_SEQUENCE, PI_ERROR,
+ "Out of order data packet", EXPFILL }},
+ { &ei_irdmaep_connection_req,
+ { "irdma.ep.connection.req", PI_SEQUENCE, PI_CHAT,
+ "Connection request (CONNREQ)", EXPFILL }},
+ { &ei_irdmaep_connection_ack,
+ { "irdma.ep.connection.ack", PI_SEQUENCE, PI_CHAT,
+ "Connection acknowledgement (CONNACK)", EXPFILL }},
+ { &ei_irdmaep_connection_lswt,
+ { "irdma.ep.connection.linkswt", PI_SEQUENCE, PI_NOTE,
+ "Link switch", EXPFILL }}
+ };
+
+ /*****************************************************************/
+ /* Register the protocols */
+ /*****************************************************************/
+ proto_irdma = proto_register_protocol("IBM i RDMA", "iRDMA", "irdma");
+ proto_irdmaqp = proto_register_protocol("IBM i RDMA QP", "iRDMA-QP", "irdma.qp");
+ proto_irdmalink = proto_register_protocol("IBM i RDMA Link", "iRDMA-Link", "irdma.link");
+ proto_irdmaep = proto_register_protocol("IBM i RDMA Endpoint", "iRDMA-EP", "irdma.ep");
+
+ register_init_routine(irdma_init);
+
+ /* Required function calls to register the header fields and subtrees */
+ proto_register_field_array(proto_irdma, hf, array_length(hf));
+ proto_register_field_array(proto_irdmaqp, hfqp, array_length(hfqp));
+ proto_register_field_array(proto_irdmalink, hflink, array_length(hflink));
+ proto_register_field_array(proto_irdmaep, hfep, array_length(hfep));
+
+ proto_register_subtree_array(ett, array_length(ett));
+
+ // Register a dissector table to allow sub-dissectors to register based on EP port
+ irdmaep_dissector_table
+ = register_dissector_table("irdma.ep.port", "RDMA EP Port", proto_irdmaep, FT_UINT16, BASE_DEC);
+
+ /* Required function calls to register expert items */
+ expert_irdmaep = expert_register_protocol(proto_irdmaep);
+ expert_register_field_array(expert_irdmaep, ei, array_length(ei));
+
+ /* Register a preferences module (see section 2.6 of README.dissector
+ * for more details). Registration of a prefs callback is not required
+ * if there are no preferences that affect protocol registration (an example
+ * of a preference that would affect registration is a port preference).
+ * If the prefs callback is not needed, use NULL instead of
+ * proto_reg_handoff_irdma in the following.
+ */
+ prefs_register_protocol(proto_irdma, proto_reg_handoff_irdma);
+ irdmaep_module = prefs_register_protocol(proto_irdmaep, NULL);
+ prefs_register_bool_preference(irdmaep_module, "calculate_timestamps",
+ "Calculate conversation timestamps",
+ "Calculate timestamps relative to the first frame and the previous frame in the RDMA conversation",
+ &irdmaep_calculate_ts);
+ prefs_register_bool_preference(irdmaep_module, "no_subdissector_on_error",
+ "Do not call subdissectors for error packets",
+ "Do not call any subdissectors for retransmitted segments",
+ &irdmaep_no_subdissector_on_error);
+
+ register_dissector("irdma", dissect_irdma, proto_irdma);
+}
+
+/* Simpler form of proto_reg_handoff_irdma which can be used if there are
+ * no prefs-dependent registration function calls. */
+void
+proto_reg_handoff_irdma(void)
+{
+ /* Use create_dissector_handle() to get the handles to IBM i RDMA
+ * subdissectors.
+ */
+ irdmaqp_handle = create_dissector_handle(dissect_irdmaqp, proto_irdmaqp);
+ irdmalink_handle = create_dissector_handle(dissect_irdmalink, proto_irdmalink);
+ irdmaep_handle = create_dissector_handle(dissect_irdmaep, proto_irdmaep);
+}
+
+/*
+ * Editor modelines - https://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/packet-irdma.h b/epan/dissectors/packet-irdma.h
new file mode 100644
index 0000000000..84405e86b3
--- /dev/null
+++ b/epan/dissectors/packet-irdma.h
@@ -0,0 +1,23 @@
+/* packet-irdma.h
+ *
+ * Definitions for IBM i RDMA packet dissection
+ * Copyright 2018, 2024 IBM Corporation
+ * Brian Jongekryg (bej@us.ibm.com, bej@arbin.net)
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef __PACKET_IRDMA_H__
+#define __PACKET_IRDMA_H__
+
+#define IRDMAEP_DATA_TYPE 0
+#define IRDMAEP_USERRDMA_TYPE 1
+
+typedef struct irdmaep_pdata
+{
+ unsigned pdata_type;
+ uint32_t userrdma_offset;
+
+} irdmaep_pdata_t;
+
+#endif
diff --git a/epan/dissectors/packet-isakmp.c b/epan/dissectors/packet-isakmp.c
index f1ed56af91..39f74e415e 100644
--- a/epan/dissectors/packet-isakmp.c
+++ b/epan/dissectors/packet-isakmp.c
@@ -457,7 +457,7 @@ static expert_field ei_isakmp_payload_bad_length;
static expert_field ei_isakmp_bad_fragment_number;
static expert_field ei_isakmp_notify_data_3gpp_unknown_device_identity;
-static dissector_handle_t eap_handle = NULL;
+static dissector_handle_t eap_handle;
static dissector_handle_t isakmp_handle;
@@ -1905,11 +1905,11 @@ typedef struct decrypt_data {
} decrypt_data_t;
/* IKEv1: Lookup from Initiator-SPI -> decrypt_data_t* */
-static GHashTable *isakmp_hash = NULL;
+static GHashTable *isakmp_hash;
-static ikev1_uat_data_key_t* ikev1_uat_data = NULL;
-static uat_t * ikev1_uat = NULL;
-static guint num_ikev1_uat_data = 0;
+static ikev1_uat_data_key_t* ikev1_uat_data;
+static uat_t * ikev1_uat;
+static guint num_ikev1_uat_data;
/* Specifications of encryption algorithms for IKEv2 decryption */
typedef struct _ikev2_encr_alg_spec {
@@ -2096,12 +2096,12 @@ typedef struct _ikev2_uat_data {
ikev2_auth_alg_spec_t *auth_spec;
} ikev2_uat_data_t;
-static ikev2_uat_data_t* ikev2_uat_data = NULL;
-static guint num_ikev2_uat_data = 0;
+static ikev2_uat_data_t* ikev2_uat_data;
+static guint num_ikev2_uat_data;
static uat_t* ikev2_uat;
/* IKEv2: (I-SPI, R-SPI) -> ikev2_uat_data_t* */
-static GHashTable *ikev2_key_hash = NULL;
+static GHashTable *ikev2_key_hash;
#define IKEV2_ENCR_3DES_STR "3DES [RFC2451]"
static const value_string vs_ikev2_encr_algs[] = {
@@ -2456,7 +2456,7 @@ typedef struct ikev2_fragmentation_state_t {
} ikev2_fragmentation_state_t;
/* frame_number -> next_payload. The key will be the frame that completes the original message */
-static GHashTable *defrag_next_payload_hash = NULL;
+static GHashTable *defrag_next_payload_hash;
static void dissect_ikev2_fragmentation(tvbuff_t *, int, proto_tree *, packet_info *, guint32 message_id, guint8 next_payload,
gboolean is_request, void* decr_info);
diff --git a/epan/dissectors/packet-iscsi.c b/epan/dissectors/packet-iscsi.c
index 29724eb26b..44807c358a 100644
--- a/epan/dissectors/packet-iscsi.c
+++ b/epan/dissectors/packet-iscsi.c
@@ -57,14 +57,14 @@ static const value_string ahs_type_vals[] = {
{0, NULL}
};
-static dissector_handle_t iscsi_handle=NULL;
+static dissector_handle_t iscsi_handle;
static gint iscsi_protocol_version = ISCSI_PROTOCOL_DRAFT13;
-static gboolean iscsi_desegment = TRUE;
+static bool iscsi_desegment = true;
-static int demand_good_f_bit = FALSE;
-static int enable_bogosity_filter = TRUE;
+static bool demand_good_f_bit;
+static bool enable_bogosity_filter = true;
static guint32 bogus_pdu_data_length_threshold = 256 * 1024;
#define TCP_PORT_ISCSI_RANGE "3260"
diff --git a/epan/dissectors/packet-isdn-sup.c b/epan/dissectors/packet-isdn-sup.c
index 8768076bf4..0bb847fbb8 100644
--- a/epan/dissectors/packet-isdn-sup.c
+++ b/epan/dissectors/packet-isdn-sup.c
@@ -313,73 +313,73 @@ static int hf_isdn_sup_location; /* Location */
/* Initialize the subtree pointers */
static gint ett_isdn_sup;
-static gint ett_isdn_sup_PresentedAddressScreened;
-static gint ett_isdn_sup_PresentedAddressUnscreened;
-static gint ett_isdn_sup_PresentedNumberScreened;
-static gint ett_isdn_sup_PresentedNumberUnscreened;
-static gint ett_isdn_sup_AddressScreened;
-static gint ett_isdn_sup_NumberScreened;
-static gint ett_isdn_sup_Address;
-static gint ett_isdn_sup_PartyNumber;
-static gint ett_isdn_sup_PublicPartyNumber;
-static gint ett_isdn_sup_PrivatePartyNumber;
-static gint ett_isdn_sup_PartySubaddress;
-static gint ett_isdn_sup_UserSpecifiedSubaddress;
-static gint ett_isdn_sup_ChargingRequestRes;
-static gint ett_isdn_sup_AOCSCurrencyArg;
-static gint ett_isdn_sup_AOCSSpecialArrArg;
-static gint ett_isdn_sup_AOCDCurrencyArg;
-static gint ett_isdn_sup_AOCDChargingUnitArg;
-static gint ett_isdn_sup_AOCECurrencyArg;
-static gint ett_isdn_sup_AOCEChargingUnitArg;
-static gint ett_isdn_sup_AOCSCurrencyInfoList;
-static gint ett_isdn_sup_AOCSCurrencyInfo;
-static gint ett_isdn_sup_T_chargingtype;
-static gint ett_isdn_sup_AOCSChargingTypeSpecificCurrency;
-static gint ett_isdn_sup_DurationCurrency;
-static gint ett_isdn_sup_FlatRateCurrency;
-static gint ett_isdn_sup_VolumeRateCurrency;
-static gint ett_isdn_sup_AOCDCurrencyInfo;
-static gint ett_isdn_sup_AOCDSpecificCurrency;
-static gint ett_isdn_sup_AOCDChargingUnitInfo;
-static gint ett_isdn_sup_AOCDSpecificChargingUnits;
-static gint ett_isdn_sup_RecordedCurrency;
-static gint ett_isdn_sup_RecordedUnitsList;
-static gint ett_isdn_sup_RecordedUnits;
-static gint ett_isdn_sup_RecoredUnitsCc;
-static gint ett_isdn_sup_AOCECurrencyInfo;
-static gint ett_isdn_sup_AOCECurrencyCc;
-static gint ett_isdn_sup_AOCECcSpecificCurrency;
-static gint ett_isdn_sup_AOCEChargingUnitInfo;
-static gint ett_isdn_sup_AOCEChargingUnitCc;
-static gint ett_isdn_sup_AOCECcSpecificChargingUnits;
-static gint ett_isdn_sup_Amount;
-static gint ett_isdn_sup_Time;
-static gint ett_isdn_sup_ChargingAssociation;
-static gint ett_isdn_sup_CUGcallArg;
-static gint ett_isdn_sup_BeginCONFRes;
-static gint ett_isdn_sup_SplitCONFArg;
-static gint ett_isdn_sup_ActivationDiversionArg;
-static gint ett_isdn_sup_DeactivationDiversionArg;
-static gint ett_isdn_sup_ActivationStatusNotificationDivArg;
-static gint ett_isdn_sup_DeactivationStatusNotificationDivArg;
-static gint ett_isdn_sup_InterrogationDiversionArg;
-static gint ett_isdn_sup_DiversionInformationArg;
-static gint ett_isdn_sup_CallDeflectionArg;
-static gint ett_isdn_sup_CallRerouteingArg;
-static gint ett_isdn_sup_DivertingLegInformation1Arg;
-static gint ett_isdn_sup_DivertingLegInformation2Arg;
-static gint ett_isdn_sup_IntResultList;
-static gint ett_isdn_sup_IntResult;
-static gint ett_isdn_sup_ServedUserNr;
-static gint ett_isdn_sup_ServedUserNumberList;
-static gint ett_isdn_sup_UserUserServiceArg;
-static gint ett_isdn_sup_Monitor_T_FPHArg;
-static gint ett_isdn_sup_Free_T_FPHArg;
-static gint ett_isdn_sup_Call_T_FPHArg;
-static gint ett_isdn_sup_MLPPLFBArg;
-static gint ett_isdn_sup_MLPPParams;
-static gint ett_isdn_sup_MLPPLFBResp;
+static int ett_isdn_sup_PresentedAddressScreened;
+static int ett_isdn_sup_PresentedAddressUnscreened;
+static int ett_isdn_sup_PresentedNumberScreened;
+static int ett_isdn_sup_PresentedNumberUnscreened;
+static int ett_isdn_sup_AddressScreened;
+static int ett_isdn_sup_NumberScreened;
+static int ett_isdn_sup_Address;
+static int ett_isdn_sup_PartyNumber;
+static int ett_isdn_sup_PublicPartyNumber;
+static int ett_isdn_sup_PrivatePartyNumber;
+static int ett_isdn_sup_PartySubaddress;
+static int ett_isdn_sup_UserSpecifiedSubaddress;
+static int ett_isdn_sup_ChargingRequestRes;
+static int ett_isdn_sup_AOCSCurrencyArg;
+static int ett_isdn_sup_AOCSSpecialArrArg;
+static int ett_isdn_sup_AOCDCurrencyArg;
+static int ett_isdn_sup_AOCDChargingUnitArg;
+static int ett_isdn_sup_AOCECurrencyArg;
+static int ett_isdn_sup_AOCEChargingUnitArg;
+static int ett_isdn_sup_AOCSCurrencyInfoList;
+static int ett_isdn_sup_AOCSCurrencyInfo;
+static int ett_isdn_sup_T_chargingtype;
+static int ett_isdn_sup_AOCSChargingTypeSpecificCurrency;
+static int ett_isdn_sup_DurationCurrency;
+static int ett_isdn_sup_FlatRateCurrency;
+static int ett_isdn_sup_VolumeRateCurrency;
+static int ett_isdn_sup_AOCDCurrencyInfo;
+static int ett_isdn_sup_AOCDSpecificCurrency;
+static int ett_isdn_sup_AOCDChargingUnitInfo;
+static int ett_isdn_sup_AOCDSpecificChargingUnits;
+static int ett_isdn_sup_RecordedCurrency;
+static int ett_isdn_sup_RecordedUnitsList;
+static int ett_isdn_sup_RecordedUnits;
+static int ett_isdn_sup_RecoredUnitsCc;
+static int ett_isdn_sup_AOCECurrencyInfo;
+static int ett_isdn_sup_AOCECurrencyCc;
+static int ett_isdn_sup_AOCECcSpecificCurrency;
+static int ett_isdn_sup_AOCEChargingUnitInfo;
+static int ett_isdn_sup_AOCEChargingUnitCc;
+static int ett_isdn_sup_AOCECcSpecificChargingUnits;
+static int ett_isdn_sup_Amount;
+static int ett_isdn_sup_Time;
+static int ett_isdn_sup_ChargingAssociation;
+static int ett_isdn_sup_CUGcallArg;
+static int ett_isdn_sup_BeginCONFRes;
+static int ett_isdn_sup_SplitCONFArg;
+static int ett_isdn_sup_ActivationDiversionArg;
+static int ett_isdn_sup_DeactivationDiversionArg;
+static int ett_isdn_sup_ActivationStatusNotificationDivArg;
+static int ett_isdn_sup_DeactivationStatusNotificationDivArg;
+static int ett_isdn_sup_InterrogationDiversionArg;
+static int ett_isdn_sup_DiversionInformationArg;
+static int ett_isdn_sup_CallDeflectionArg;
+static int ett_isdn_sup_CallRerouteingArg;
+static int ett_isdn_sup_DivertingLegInformation1Arg;
+static int ett_isdn_sup_DivertingLegInformation2Arg;
+static int ett_isdn_sup_IntResultList;
+static int ett_isdn_sup_IntResult;
+static int ett_isdn_sup_ServedUserNr;
+static int ett_isdn_sup_ServedUserNumberList;
+static int ett_isdn_sup_UserUserServiceArg;
+static int ett_isdn_sup_Monitor_T_FPHArg;
+static int ett_isdn_sup_Free_T_FPHArg;
+static int ett_isdn_sup_Call_T_FPHArg;
+static int ett_isdn_sup_MLPPLFBArg;
+static int ett_isdn_sup_MLPPParams;
+static int ett_isdn_sup_MLPPLFBResp;
/* static expert_field ei_isdn_sup_unsupported_arg_type; */
static expert_field ei_isdn_sup_unsupported_result_type;
diff --git a/epan/dissectors/packet-isis-lsp.c b/epan/dissectors/packet-isis-lsp.c
index 7038fdd0c8..dfefb5822e 100644
--- a/epan/dissectors/packet-isis-lsp.c
+++ b/epan/dissectors/packet-isis-lsp.c
@@ -1727,7 +1727,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
proto_tree_add_item(cap_tree, hf_isis_lsp_clv_te_node_cap_m_bit, tvb, offset, 1, ENC_NA);
proto_tree_add_item(cap_tree, hf_isis_lsp_clv_te_node_cap_g_bit, tvb, offset, 1, ENC_NA);
proto_tree_add_item(cap_tree, hf_isis_lsp_clv_te_node_cap_p_bit, tvb, offset, 1, ENC_NA);
- return(0);
+ return 0;
case SEGMENT_ROUTING_CAP:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2, ett_isis_lsp_clv_sr_cap,
@@ -1751,7 +1751,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
proto_tree_add_expert_format(rt_tree, pinfo, &ei_isis_lsp_subtlv, tvb, offset+4, tlv_len+2,
"Unknown SubTlv: Type: %d, Length: %d", tlv_type, tlv_len);
- return(0);
+ return 0;
case IPV6_TE_ROUTER_ID:
/* 12: IPv6 TE Router ID (rfc5316) */
@@ -1760,7 +1760,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
NULL, "IPv6 TE Router ID (t=%u, l=%u)",
subtype, sublen);
proto_tree_add_item(rt_tree, hf_isis_lsp_clv_ipv6_te_router_id, tvb, offset, 16, ENC_NA);
- return (0);
+ return 0;
case TRILL_VERSION:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1776,7 +1776,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trill_flags, tvb, offset, 4, ENC_NA);
}
- return(0);
+ return 0;
case TREES:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1786,7 +1786,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trees_maximum_nof_trees_to_compute, tvb, offset+2, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(rt_tree, hf_isis_lsp_rt_capable_trees_nof_trees_to_use, tvb, offset+4, 2, ENC_BIG_ENDIAN);
- return(0);
+ return 0;
case TREE_IDENTIFIER:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1807,7 +1807,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
offset += 2;
}
- return(0);
+ return 0;
case NICKNAME:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1821,7 +1821,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
offset += 5;
}
- return(0);
+ return 0;
case INTERESTED_VLANS:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1851,7 +1851,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
offset += 6;
}
- return(0);
+ return 0;
case TREES_USED_IDENTIFIER:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1872,7 +1872,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
sublen -= 2;
}
- return(0);
+ return 0;
case VLAN_GROUP:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1890,7 +1890,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
offset += 2;
}
- return(0);
+ return 0;
case SEGMENT_ROUTING_ALG:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1901,7 +1901,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
proto_tree_add_item(rt_tree, hf_isis_lsp_clv_sr_alg, tvb, offset+i, 1, ENC_NA);
i++;
}
- return(0);
+ return 0;
case SEGMENT_ROUTING_LB:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1924,7 +1924,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
}
i += (5 + tlv_len);
}
- return(0);
+ return 0;
case SRV6_CAP:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1933,7 +1933,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
subtype, sublen);
proto_tree_add_bitmask(rt_tree, tvb, offset, hf_isis_lsp_clv_srv6_cap_flags,
ett_isis_lsp_clv_srv6_cap_flags, srv6_cap_flags, ENC_NA);
- return(0);
+ return 0;
case NODE_MSD:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1946,7 +1946,7 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
sublen -= 2;
offset += 2;
}
- return(0);
+ return 0;
case FLEX_ALGO_DEF:
rt_tree = proto_tree_add_subtree_format(tree, tvb, offset-2, sublen+2,
@@ -1981,10 +1981,10 @@ dissect_isis_trill_clv(tvbuff_t *tvb, packet_info* pinfo _U_,
sublen -= tlv_len;
offset += tlv_len;
}
- return(0);
+ return 0;
default:
- return(-1);
+ return -1;
}
}
diff --git a/epan/dissectors/packet-isl.c b/epan/dissectors/packet-isl.c
index f2c422591f..a8c219ed2e 100644
--- a/epan/dissectors/packet-isl.c
+++ b/epan/dissectors/packet-isl.c
@@ -79,7 +79,7 @@ static dissector_handle_t tr_handle;
static capture_dissector_handle_t eth_cap_handle;
static capture_dissector_handle_t tr_cap_handle;
-static gboolean
+static bool
capture_isl(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint8 type;
diff --git a/epan/dissectors/packet-ismacryp.c b/epan/dissectors/packet-ismacryp.c
index a1ce8b9c8f..987b7acc9e 100644
--- a/epan/dissectors/packet-ismacryp.c
+++ b/epan/dissectors/packet-ismacryp.c
@@ -76,19 +76,19 @@ static guint pref_au_index_length = DEFAULT_AU_INDEX_LENGTH;
static guint pref_au_index_delta_length = DEFAULT_AU_INDEX_DELTA_LENGTH; /* default Au index delta length */
static guint pref_cts_delta_length = DEFAULT_CTS_DELTA_LENGTH; /* default CTS delta length */
static guint pref_dts_delta_length = DEFAULT_DTS_DELTA_LENGTH; /* default DTS delta length */
-static gboolean pref_random_access_indication = DEFAULT_RANDOM_ACCESS_INDICATION; /* default random access indication */
+static bool pref_random_access_indication = DEFAULT_RANDOM_ACCESS_INDICATION; /* default random access indication */
static guint pref_stream_state_indication = DEFAULT_STREAM_STATE_INDICATION; /* default stream state indication */
static guint version_type = V11; /* default to ISMACryp 1.1 */
static guint mode = AVC_VIDEO_MODE; /* default codec mode */
-static gboolean selective_encryption = DEFAULT_SELECTIVE_ENCRYPTION; /* default selective encryption flag */
-static gboolean slice_indication = DEFAULT_SLICE_INDICATION; /* default slice indication */
-static gboolean padding_indication = DEFAULT_PADDING_INDICATION; /* default padding indication */
+static bool selective_encryption = DEFAULT_SELECTIVE_ENCRYPTION; /* default selective encryption flag */
+static bool slice_indication = DEFAULT_SLICE_INDICATION; /* default slice indication */
+static bool padding_indication = DEFAULT_PADDING_INDICATION; /* default padding indication */
static guint key_indicator_length = DEFAULT_KEY_INDICATOR_LENGTH; /* default key indicator length */
-static gboolean key_indicator_per_au_flag = DEFAULT_KEY_INDICATOR_PER_AU; /* default key indicator per au */
+static bool key_indicator_per_au_flag = DEFAULT_KEY_INDICATOR_PER_AU; /* default key indicator per au */
static guint iv_length = DEFAULT_IV_LENGTH; /* default IV length */
static guint delta_iv_length = DEFAULT_DELTA_IV_LENGTH; /* default delta IV length */
-static gboolean pref_user_mode = FALSE; /* preference user mode instead of RFC3640 mode? */
-static gboolean override_flag = FALSE; /* override use of RTP payload type to deduce ISMACryp version */
+static bool pref_user_mode; /* preference user mode instead of RFC3640 mode? */
+static bool override_flag; /* override use of RTP payload type to deduce ISMACryp version */
/* */
@@ -99,7 +99,7 @@ static guint cts_delta_length = DEFAULT_CTS_DELTA_LENGTH;
static guint dts_delta_length = DEFAULT_DTS_DELTA_LENGTH; /* default DTS delta length */
static gboolean random_access_indication = DEFAULT_RANDOM_ACCESS_INDICATION; /* default random access indication */
static guint stream_state_indication = DEFAULT_STREAM_STATE_INDICATION; /* default stream state indication */
-static gboolean user_mode = FALSE; /* selected user mode instead of RFC3640 mode? */
+static gboolean user_mode; /* selected user mode instead of RFC3640 mode? */
/*static const value_string messagetypenames[] = {}; */
diff --git a/epan/dissectors/packet-isns.c b/epan/dissectors/packet-isns.c
index e01e65dda3..1f9735a5c1 100644
--- a/epan/dissectors/packet-isns.c
+++ b/epan/dissectors/packet-isns.c
@@ -167,7 +167,7 @@ static expert_field ei_isns_not_first_pdu;
static expert_field ei_isns_invalid_attr_len;
/* Desegment iSNS over TCP messages */
-static gboolean isns_desegment = TRUE;
+static bool isns_desegment = true;
/* Function Id's */
#define ISNS_FUNC_DEVATTRREG 0x0001
diff --git a/epan/dissectors/packet-iso10681.c b/epan/dissectors/packet-iso10681.c
index 4e5e1106da..8ca6c4131d 100644
--- a/epan/dissectors/packet-iso10681.c
+++ b/epan/dissectors/packet-iso10681.c
@@ -126,17 +126,17 @@ static gint ett_iso10681_bandwidth_control;
static expert_field ei_iso10681_message_type_bad;
static int proto_iso10681;
-static dissector_handle_t iso10681_handle_flexray = NULL;
+static dissector_handle_t iso10681_handle_flexray;
static dissector_table_t subdissector_table;
-static range_t *iso10681_flexray_ids = NULL;
-static gboolean iso10681_spread_over_multiple_cycles = TRUE;
+static range_t *iso10681_flexray_ids;
+static bool iso10681_spread_over_multiple_cycles = true;
static reassembly_table iso10681_reassembly_table;
-static wmem_map_t *iso10681_frame_table = NULL;
-static wmem_map_t *iso10681_seq_table = NULL;
-static guint32 next_seqnum = 0;
+static wmem_map_t *iso10681_frame_table;
+static wmem_map_t *iso10681_seq_table;
+static guint32 next_seqnum;
static int hf_iso10681_fragments;
diff --git a/epan/dissectors/packet-iso14443.c b/epan/dissectors/packet-iso14443.c
index 1bce26aec0..f9cc78bf22 100644
--- a/epan/dissectors/packet-iso14443.c
+++ b/epan/dissectors/packet-iso14443.c
@@ -80,7 +80,7 @@ typedef enum _iso14443_cmd_t {
CMD_TYPE_UNKNOWN
} iso14443_cmd_t;
-static wmem_tree_t *transactions = NULL;
+static wmem_tree_t *transactions;
typedef struct _iso14443_transaction_t {
guint32 rqst_frame;
diff --git a/epan/dissectors/packet-iso15765.c b/epan/dissectors/packet-iso15765.c
index 6faa4ca6be..0e22558c5a 100644
--- a/epan/dissectors/packet-iso15765.c
+++ b/epan/dissectors/packet-iso15765.c
@@ -36,8 +36,8 @@
*/
/*
- * Support for FlexRay variant, see: https://www.autosar.org/fileadmin/user_upload/standards/classic/20-11/AUTOSAR_SWS_FlexRayARTransportLayer.pdf
- */
+ * Support for FlexRay variant, see: https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_FlexRayARTransportLayer.pdf
+*/
#include "config.h"
@@ -50,6 +50,7 @@
#include <epan/uat.h>
#include <wsutil/bits_ctz.h>
#include <wsutil/bits_count_ones.h>
+#include <wiretap/wtap.h>
#include "packet-socketcan.h"
#include "packet-lin.h"
@@ -92,14 +93,39 @@ typedef struct iso15765_identifier {
typedef struct iso15765_frame {
guint32 seq;
- guint32 offset;
+ guint32 last_byte_seen;
guint32 len;
+ guint32 bytes_in_cf;
gboolean error;
- gboolean complete;
+ gboolean ff_seen;
guint16 last_frag_id;
guint8 frag_id_high[16];
} iso15765_frame_t;
+typedef struct iso15765_seq_key {
+ guint32 bus_type;
+ guint32 frame_id;
+ guint32 iface_id;
+} iso15765_seq_key_t;
+
+static guint
+iso15765_seq_hash_func(gconstpointer v)
+{
+ const iso15765_seq_key_t* key = (const iso15765_seq_key_t*)v;
+ return (key->frame_id ^ key->bus_type);
+}
+
+static gint
+iso15765_seq_equal_func(gconstpointer v1, gconstpointer v2)
+{
+ const iso15765_seq_key_t* key1 = (const iso15765_seq_key_t*)v1;
+ const iso15765_seq_key_t* key2 = (const iso15765_seq_key_t*)v2;
+
+ return (key1->bus_type == key2->bus_type &&
+ key1->frame_id == key2->frame_id &&
+ key1->iface_id == key2->iface_id);
+}
+
static const value_string iso15765_message_types[] = {
{ISO15765_MESSAGE_TYPES_SINGLE_FRAME, "Single Frame"},
{ISO15765_MESSAGE_TYPES_FIRST_FRAME, "First Frame"},
@@ -128,12 +154,12 @@ static const value_string iso15765_flow_status_types[] = {
static gint addressing = NORMAL_ADDRESSING;
static gint flexray_addressing = ONE_BYTE_ADDRESSING;
-static guint flexray_segment_size_limit = 0;
+static guint flexray_segment_size_limit;
static guint window = 8;
-static range_t *configured_can_ids= NULL;
-static range_t *configured_ext_can_ids = NULL;
-static gboolean register_lin_diag_frames = TRUE;
-static range_t *configured_ipdum_pdu_ids = NULL;
+static range_t *configured_can_ids;
+static range_t *configured_ext_can_ids;
+static bool register_lin_diag_frames = true;
+static range_t *configured_ipdum_pdu_ids;
static gint ipdum_addressing = ZERO_BYTE_ADDRESSING;
/* Encoding */
@@ -181,16 +207,17 @@ static gint ett_iso15765;
static expert_field ei_iso15765_message_type_bad;
static int proto_iso15765;
-static dissector_handle_t iso15765_handle_can = NULL;
-static dissector_handle_t iso15765_handle_lin = NULL;
-static dissector_handle_t iso15765_handle_flexray = NULL;
-static dissector_handle_t iso15765_handle_ipdum = NULL;
-static dissector_handle_t iso15765_handle_pdu_transport = NULL;
+static dissector_handle_t iso15765_handle_can;
+static dissector_handle_t iso15765_handle_lin;
+static dissector_handle_t iso15765_handle_flexray;
+static dissector_handle_t iso15765_handle_ipdum;
+static dissector_handle_t iso15765_handle_pdu_transport;
static dissector_table_t subdissector_table;
static reassembly_table iso15765_reassembly_table;
-static wmem_map_t *iso15765_frame_table = NULL;
+static wmem_map_t* iso15765_seq_table;
+static wmem_map_t *iso15765_frame_table;
static int hf_iso15765_fragments;
static int hf_iso15765_fragment;
@@ -238,8 +265,8 @@ typedef struct config_can_addr_mapping {
guint32 ecu_addr_mask;
} config_can_addr_mapping_t;
-static config_can_addr_mapping_t *config_can_addr_mappings = NULL;
-static guint config_can_addr_mappings_num = 0;
+static config_can_addr_mapping_t *config_can_addr_mappings;
+static guint config_can_addr_mappings_num;
#define DATAFILE_CAN_ADDR_MAPPING "ISO15765_can_id_mappings"
UAT_BOOL_CB_DEF(config_can_addr_mappings, extended_address, config_can_addr_mapping_t)
@@ -391,8 +418,8 @@ typedef struct config_pdu_tranport_config {
guint32 ecu_address_fixed;
} config_pdu_transport_config_t;
-static config_pdu_transport_config_t *config_pdu_transport_config_items = NULL;
-static guint config_pdu_transport_config_items_num = 0;
+static config_pdu_transport_config_t *config_pdu_transport_config_items;
+static guint config_pdu_transport_config_items_num;
#define DATAFILE_PDU_TRANSPORT_CONFIG "ISO15765_pdu_transport_config"
UAT_HEX_CB_DEF(config_pdu_transport_config_items, pdu_id, config_pdu_transport_config_t)
@@ -577,6 +604,7 @@ dissect_iso15765(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 bu
guint32 full_len;
gboolean fragmented = FALSE;
gboolean complete = FALSE;
+ guint32 iface_id = (pinfo->rec->presence_flags & WTAP_HAS_INTERFACE_ID) ? pinfo->rec->rec_header.packet_header.interface_id : 0;
iso15765_info_t iso15765data;
@@ -700,9 +728,20 @@ dissect_iso15765(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 bu
/* Save information */
if (!(pinfo->fd->visited)) {
+ iso15765_seq_key_t* key;
+ void* old_value;
+ iso15765_seq_key_t temp_key = { bus_type, frame_id, iface_id };
+ msg_seqid++;
+ if (!wmem_map_lookup_extended(iso15765_seq_table, &temp_key, (const void**)&key, &old_value)) {
+ key = wmem_new(wmem_file_scope(), iso15765_seq_key_t);
+ *key = temp_key;
+ }
+ wmem_map_insert(iso15765_seq_table, key, GUINT_TO_POINTER(msg_seqid));
+
iso15765_frame_t *iso15765_frame = wmem_new0(wmem_file_scope(), iso15765_frame_t);
- iso15765_frame->seq = iso15765_info->seq = ++msg_seqid;
+ iso15765_frame->seq = iso15765_info->seq = msg_seqid;
iso15765_frame->len = full_len;
+ iso15765_frame->bytes_in_cf = MAX(8, tvb_reported_length(tvb)) - pci_offset - 1;
wmem_map_insert(iso15765_frame_table, GUINT_TO_POINTER(iso15765_info->seq), iso15765_frame);
}
@@ -730,7 +769,9 @@ dissect_iso15765(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 bu
/* Save information */
if (!(pinfo->fd->visited)) {
- iso15765_info->seq = msg_seqid;
+ iso15765_seq_key_t temp_key = { bus_type, frame_id, iface_id };
+ void* old_value = wmem_map_lookup(iso15765_seq_table, &temp_key);
+ iso15765_info->seq = old_value ? GPOINTER_TO_UINT(old_value) : 0;
}
break;
}
@@ -805,9 +846,20 @@ dissect_iso15765(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 bu
/* Save information */
if (!(pinfo->fd->visited)) {
+ iso15765_seq_key_t* key;
+ void* old_value;
+ iso15765_seq_key_t temp_key = { bus_type, frame_id, iface_id };
+ msg_seqid++;
+ if (!wmem_map_lookup_extended(iso15765_seq_table, &temp_key, (const void **)&key, &old_value)) {
+ key = wmem_new(wmem_file_scope(), iso15765_seq_key_t);
+ *key = temp_key;
+ }
+ wmem_map_insert(iso15765_seq_table, key, GUINT_TO_POINTER(msg_seqid));
+
iso15765_frame_t *iso15765_frame = wmem_new0(wmem_file_scope(), iso15765_frame_t);
- iso15765_frame->seq = iso15765_info->seq = ++msg_seqid;
+ iso15765_frame->seq = iso15765_info->seq = msg_seqid;
iso15765_frame->len = full_len;
+ iso15765_frame->bytes_in_cf = MAX(8, tvb_reported_length(tvb)) - pci_offset - 1;
wmem_map_insert(iso15765_frame_table, GUINT_TO_POINTER(iso15765_info->seq), iso15765_frame);
}
@@ -853,25 +905,37 @@ dissect_iso15765(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 bu
if (!iso15765_frame->error) {
gboolean save_fragmented = pinfo->fragmented;
guint32 len = data_length;
+ guint32 missing_bytes = 0;
fragment_head *frag_msg;
/* Check if it's the last packet */
if (!(pinfo->fd->visited)) {
iso15765_info->bytes_used = data_length;
- /* Update the last_frag_id */
- if (frag_id > iso15765_frame->last_frag_id) {
+ if (frag_id > iso15765_frame->last_frag_id || !iso15765_frame->ff_seen) {
+ if (frag_id > iso15765_frame->last_frag_id + 1) {
+ missing_bytes = (frag_id - iso15765_frame->last_frag_id - 1) * iso15765_frame->bytes_in_cf;
+ }
+ /* Update the last_frag_id */
+ iso15765_frame->ff_seen = TRUE;
iso15765_frame->last_frag_id = frag_id;
- }
- iso15765_frame->offset += len;
- if (iso15765_frame->offset >= iso15765_frame->len) {
- iso15765_info->last = TRUE;
- iso15765_frame->complete = TRUE;
- len -= (iso15765_frame->offset - iso15765_frame->len);
- /* Determine how many bytes were needed to calculate padding latter. */
- iso15765_info->bytes_used = data_length - (iso15765_frame->offset - iso15765_frame->len);
+ /* Here we use iso15765_frame->last_byte_seen to make sure that we correctly detect
+ * the last Consecutive Frame, even if some frames were missing in the middle.
+ * Note that the last Consecutive Frame might not be the last packet,
+ * as it might arrive out of order.
+ */
+ iso15765_frame->last_byte_seen += missing_bytes;
+ iso15765_frame->last_byte_seen += len;
+ if (iso15765_frame->last_byte_seen >= iso15765_frame->len) {
+ iso15765_info->last = TRUE;
+ len -= (iso15765_frame->last_byte_seen - iso15765_frame->len);
+
+ /* Determine how many bytes were needed to calculate padding latter. */
+ iso15765_info->bytes_used = data_length - (iso15765_frame->last_byte_seen - iso15765_frame->len);
+ }
+
}
}
pinfo->fragmented = TRUE;
@@ -1223,6 +1287,7 @@ proto_register_iso15765(void) {
"A table to define the PDU Transport Config", config_pdu_transport_config_uat);
+ iso15765_seq_table = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), iso15765_seq_hash_func, iso15765_seq_equal_func);
iso15765_frame_table = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
reassembly_table_register(&iso15765_reassembly_table, &addresses_reassembly_table_functions);
diff --git a/epan/dissectors/packet-iso7816.c b/epan/dissectors/packet-iso7816.c
index f4cfc90dec..d2227fa88f 100644
--- a/epan/dissectors/packet-iso7816.c
+++ b/epan/dissectors/packet-iso7816.c
@@ -33,7 +33,7 @@ static int proto_iso7816_atr;
static dissector_handle_t iso7816_handle;
static dissector_handle_t iso7816_atr_handle;
-static wmem_tree_t *transactions = NULL;
+static wmem_tree_t *transactions;
static dissector_table_t iso7816_apdu_pld_table;
@@ -634,18 +634,20 @@ dissect_iso7816_cmd_apdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
ret = dissect_iso7816_class(tvb, offset, pinfo, tree);
- if (ret==-1) {
+ if (ret == -1) {
/* the class byte says that the remaining APDU is not
in ISO7816 format */
- iso7816_trans->handle =
- dissector_get_payload_handle(iso7816_apdu_pld_table);
- if (iso7816_trans->handle != NULL) {
- ret = call_dissector(iso7816_trans->handle, tvb, pinfo, tree);
- if (ret == 0) {
- col_append_sep_str(pinfo->cinfo, COL_INFO, NULL,
- "Command APDU using proprietary format");
- return 1; /* we only dissected the class byte */
+ if (iso7816_trans) {
+ iso7816_trans->handle =
+ dissector_get_payload_handle(iso7816_apdu_pld_table);
+ if (iso7816_trans->handle != NULL) {
+ ret = call_dissector(iso7816_trans->handle, tvb, pinfo, tree);
+ if (ret == 0) {
+ col_append_sep_str(pinfo->cinfo, COL_INFO, NULL,
+ "Command APDU using proprietary format");
+ return 1; /* we only dissected the class byte */
+ }
}
}
diff --git a/epan/dissectors/packet-iso8583.c b/epan/dissectors/packet-iso8583.c
index 059c5f164b..f8a1f4adca 100644
--- a/epan/dissectors/packet-iso8583.c
+++ b/epan/dissectors/packet-iso8583.c
@@ -348,7 +348,7 @@ static gint ett_iso8583;
static expert_field ei_iso8583_MALFORMED;
-static struct iso_type *data_array = NULL;
+static struct iso_type *data_array;
/* Types definitions */
#define ASCII_CHARSET 1
diff --git a/epan/dissectors/packet-isobus-vt.c b/epan/dissectors/packet-isobus-vt.c
index 4a33cfecba..b57d6d8d73 100644
--- a/epan/dissectors/packet-isobus-vt.c
+++ b/epan/dissectors/packet-isobus-vt.c
@@ -21,7 +21,7 @@
void proto_register_isobus_vt(void);
void proto_reg_handoff_isobus_vt(void);
-static guint8 current_vt_version = 0;
+static guint8 current_vt_version;
/* Initialize the protocol and registered fields */
static int proto_vt;
diff --git a/epan/dissectors/packet-isobus.c b/epan/dissectors/packet-isobus.c
index 42c36a53e1..3e5f0aa488 100644
--- a/epan/dissectors/packet-isobus.c
+++ b/epan/dissectors/packet-isobus.c
@@ -239,7 +239,7 @@ struct address_reassemble_table {
guint32 identifierCounter;
};
-static wmem_map_t *addressIdentifierTable = NULL;
+static wmem_map_t *addressIdentifierTable;
static struct reassemble_identifier * findIdentifierFor(wmem_list_t *reassembleIdentifierTable, guint32 frameIndex) {
wmem_list_frame_t *currentItem = wmem_list_head(reassembleIdentifierTable);
diff --git a/epan/dissectors/packet-isup.c b/epan/dissectors/packet-isup.c
index 982426f7b3..dcaf37087c 100644
--- a/epan/dissectors/packet-isup.c
+++ b/epan/dissectors/packet-isup.c
@@ -2762,7 +2762,7 @@ static const true_false_string isup_Sequence_ind_value = {
static int proto_isup;
static int proto_bicc;
-static gboolean isup_show_cic_in_info = TRUE;
+static bool isup_show_cic_in_info = true;
static int hf_isup_called;
static int hf_isup_calling;
@@ -3213,11 +3213,11 @@ static expert_field ei_isup_opt_par_length_err;
static dissector_handle_t bicc_handle;
-static dissector_handle_t sdp_handle = NULL;
-static dissector_handle_t q931_ie_handle = NULL;
+static dissector_handle_t sdp_handle;
+static dissector_handle_t q931_ie_handle;
/* Declarations to desegment APM Messages */
-static gboolean isup_apm_desegment = TRUE;
+static bool isup_apm_desegment = true;
static const fragment_items isup_apm_msg_frag_items = {
/* Fragment subtrees */
@@ -3245,9 +3245,9 @@ static const fragment_items isup_apm_msg_frag_items = {
static reassembly_table isup_apm_msg_reassembly_table;
/* Info for the tap that must be passed between procedures */
-static gchar *tap_called_number = NULL;
-static gchar *tap_calling_number = NULL;
-static guint8 tap_cause_value = 0;
+static gchar *tap_called_number;
+static gchar *tap_calling_number;
+static guint8 tap_cause_value;
/* ------------------------------------------------------------------
Mapping number to ASCII-character
@@ -12273,7 +12273,7 @@ proto_register_isup(void)
prefs_register_bool_preference(isup_module, "show_cic_in_info", "Show CIC in Info column",
"Show the CIC value (in addition to the message type) in the Info column",
- (gint *)&isup_show_cic_in_info);
+ &isup_show_cic_in_info);
prefs_register_bool_preference(isup_module, "defragment_apm",
"Reassemble APM messages",
diff --git a/epan/dissectors/packet-itdm.c b/epan/dissectors/packet-itdm.c
index c50289e21d..6b6fd651f2 100644
--- a/epan/dissectors/packet-itdm.c
+++ b/epan/dissectors/packet-itdm.c
@@ -56,7 +56,7 @@ static dissector_handle_t itdm_handle;
/* ZZZZ some magic number.. */
static guint gbl_ItdmMPLSLabel = 0x99887;
-static guint gbl_ItdmCTLFlowNo = 0;
+static guint gbl_ItdmCTLFlowNo;
/* I-TDM 125usec mode commands for data flows */
#define ITDM_CMD_NEW_CHAN 1
diff --git a/epan/dissectors/packet-its.c b/epan/dissectors/packet-its.c
index 54da75b6ff..8c38b32eaf 100644
--- a/epan/dissectors/packet-its.c
+++ b/epan/dissectors/packet-its.c
@@ -2233,448 +2233,448 @@ static gint ett_its;
/* --- Module ETSI-ITS-CDD --- --- --- */
-static gint ett_its_AccelerationControl;
-static gint ett_its_EmergencyPriority;
-static gint ett_its_EnergyStorageType;
-static gint ett_its_ExteriorLights;
-static gint ett_its_LightBarSirenInUse;
-static gint ett_its_MatrixIncludedComponents;
-static gint ett_its_PositionOfOccupants;
-static gint ett_its_SpecialTransportType;
-static gint ett_its_VruClusterProfiles;
-static gint ett_its_VruSpecificExteriorLights;
-static gint ett_its_Acceleration3dWithConfidence;
-static gint ett_its_AccelerationPolarWithZ;
-static gint ett_its_AccelerationCartesian;
-static gint ett_its_AccelerationComponent;
-static gint ett_its_AccelerationChangeIndication;
-static gint ett_its_AccelerationMagnitude;
-static gint ett_its_ActionId;
-static gint ett_its_ActionID;
-static gint ett_its_ActionIdList;
-static gint ett_its_Altitude;
-static gint ett_its_BasicContainer;
-static gint ett_its_CartesianAngle;
-static gint ett_its_CartesianAngularVelocityComponent;
-static gint ett_its_CartesianCoordinateWithConfidence;
-static gint ett_its_CartesianPosition3d;
-static gint ett_its_CartesianPosition3dWithConfidence;
-static gint ett_its_CauseCode;
-static gint ett_its_CauseCodeChoice;
-static gint ett_its_CauseCodeV2;
-static gint ett_its_CenDsrcTollingZone;
-static gint ett_its_CircularShape;
-static gint ett_its_ClosedLanes;
-static gint ett_its_ClusterBreakupInfo;
-static gint ett_its_ClusterJoinInfo;
-static gint ett_its_ClusterLeaveInfo;
-static gint ett_its_CorrelationColumn;
-static gint ett_its_Curvature;
-static gint ett_its_DangerousGoodsExtended;
-static gint ett_its_DeltaReferencePosition;
-static gint ett_its_DigitalMap;
-static gint ett_its_EllipticalShape;
-static gint ett_its_EulerAnglesWithConfidence;
-static gint ett_its_EuVehicleCategoryCode;
-static gint ett_its_EventHistory;
-static gint ett_its_EventPoint;
-static gint ett_its_GeneralizedLanePosition;
-static gint ett_its_Heading;
-static gint ett_its_HeadingChangeIndication;
-static gint ett_its_InterferenceManagementChannel;
-static gint ett_its_InterferenceManagementZone;
-static gint ett_its_InterferenceManagementZoneDefinition;
-static gint ett_its_InterferenceManagementInfo;
-static gint ett_its_InterferenceManagementInfoPerChannel;
-static gint ett_its_InterferenceManagementZones;
-static gint ett_its_IntersectionReferenceId;
-static gint ett_its_ItineraryPath;
-static gint ett_its_ItsPduHeader;
-static gint ett_its_LanePositionAndType;
-static gint ett_its_LateralAcceleration;
-static gint ett_its_LongitudinalAcceleration;
-static gint ett_its_LongitudinalLanePosition;
-static gint ett_its_LowerTriangularPositiveSemidefiniteMatrices;
-static gint ett_its_LowerTriangularPositiveSemidefiniteMatrix;
-static gint ett_its_LowerTriangularPositiveSemidefiniteMatrixColumns;
-static gint ett_its_MapPosition;
-static gint ett_its_MapReference;
-static gint ett_its_MessageRateHz;
-static gint ett_its_MessageSegmentationInfo;
-static gint ett_its_MitigationForTechnologies;
-static gint ett_its_MitigationPerTechnologyClass;
-static gint ett_its_ObjectClass;
-static gint ett_its_ObjectClassDescription;
-static gint ett_its_ObjectClassWithConfidence;
-static gint ett_its_ObjectDimension;
-static gint ett_its_Path;
-static gint ett_its_PathHistory;
-static gint ett_its_PathPredicted;
-static gint ett_its_PathPoint;
-static gint ett_its_PathPointPredicted;
-static gint ett_its_PerceivedObject;
-static gint ett_its_PolygonalShape;
-static gint ett_its_PosConfidenceEllipse;
-static gint ett_its_PositionConfidenceEllipse;
-static gint ett_its_PositionOfPillars;
-static gint ett_its_ProtectedCommunicationZone;
-static gint ett_its_ProtectedCommunicationZonesRSU;
-static gint ett_its_PtActivation;
-static gint ett_its_RadialShape;
-static gint ett_its_RadialShapes;
-static gint ett_its_RadialShapesList;
-static gint ett_its_RadialShapeDetails;
-static gint ett_its_RectangularShape;
-static gint ett_its_ReferencePosition;
-static gint ett_its_ReferencePositionWithConfidence;
-static gint ett_its_RestrictedTypes;
-static gint ett_its_RoadSegmentReferenceId;
-static gint ett_its_SafeDistanceIndication;
-static gint ett_its_SequenceOfCartesianPosition3d;
-static gint ett_its_SequenceOfIdentifier1B;
-static gint ett_its_SequenceOfSafeDistanceIndication;
-static gint ett_its_SequenceOfTrajectoryInterceptionIndication;
-static gint ett_its_Shape;
-static gint ett_its_Speed;
-static gint ett_its_StabilityChangeIndication;
-static gint ett_its_SteeringWheelAngle;
-static gint ett_its_Traces;
-static gint ett_its_TrafficIslandPosition;
-static gint ett_its_TrailerData;
-static gint ett_its_TrajectoryInterceptionIndication;
-static gint ett_its_VarLengthNumber;
-static gint ett_its_Ext1;
-static gint ett_its_Ext2;
-static gint ett_its_VerticalAcceleration;
-static gint ett_its_VehicleIdentification;
-static gint ett_its_VehicleLength;
-static gint ett_its_Velocity3dWithConfidence;
-static gint ett_its_VelocityCartesian;
-static gint ett_its_VelocityComponent;
-static gint ett_its_VelocityPolarWithZ;
-static gint ett_its_VruClusterInformation;
-static gint ett_its_VruExteriorLights;
-static gint ett_its_VruProfileAndSubprofile;
-static gint ett_its_Wgs84Angle;
-static gint ett_its_YawRate;
+static int ett_its_AccelerationControl;
+static int ett_its_EmergencyPriority;
+static int ett_its_EnergyStorageType;
+static int ett_its_ExteriorLights;
+static int ett_its_LightBarSirenInUse;
+static int ett_its_MatrixIncludedComponents;
+static int ett_its_PositionOfOccupants;
+static int ett_its_SpecialTransportType;
+static int ett_its_VruClusterProfiles;
+static int ett_its_VruSpecificExteriorLights;
+static int ett_its_Acceleration3dWithConfidence;
+static int ett_its_AccelerationPolarWithZ;
+static int ett_its_AccelerationCartesian;
+static int ett_its_AccelerationComponent;
+static int ett_its_AccelerationChangeIndication;
+static int ett_its_AccelerationMagnitude;
+static int ett_its_ActionId;
+static int ett_its_ActionID;
+static int ett_its_ActionIdList;
+static int ett_its_Altitude;
+static int ett_its_BasicContainer;
+static int ett_its_CartesianAngle;
+static int ett_its_CartesianAngularVelocityComponent;
+static int ett_its_CartesianCoordinateWithConfidence;
+static int ett_its_CartesianPosition3d;
+static int ett_its_CartesianPosition3dWithConfidence;
+static int ett_its_CauseCode;
+static int ett_its_CauseCodeChoice;
+static int ett_its_CauseCodeV2;
+static int ett_its_CenDsrcTollingZone;
+static int ett_its_CircularShape;
+static int ett_its_ClosedLanes;
+static int ett_its_ClusterBreakupInfo;
+static int ett_its_ClusterJoinInfo;
+static int ett_its_ClusterLeaveInfo;
+static int ett_its_CorrelationColumn;
+static int ett_its_Curvature;
+static int ett_its_DangerousGoodsExtended;
+static int ett_its_DeltaReferencePosition;
+static int ett_its_DigitalMap;
+static int ett_its_EllipticalShape;
+static int ett_its_EulerAnglesWithConfidence;
+static int ett_its_EuVehicleCategoryCode;
+static int ett_its_EventHistory;
+static int ett_its_EventPoint;
+static int ett_its_GeneralizedLanePosition;
+static int ett_its_Heading;
+static int ett_its_HeadingChangeIndication;
+static int ett_its_InterferenceManagementChannel;
+static int ett_its_InterferenceManagementZone;
+static int ett_its_InterferenceManagementZoneDefinition;
+static int ett_its_InterferenceManagementInfo;
+static int ett_its_InterferenceManagementInfoPerChannel;
+static int ett_its_InterferenceManagementZones;
+static int ett_its_IntersectionReferenceId;
+static int ett_its_ItineraryPath;
+static int ett_its_ItsPduHeader;
+static int ett_its_LanePositionAndType;
+static int ett_its_LateralAcceleration;
+static int ett_its_LongitudinalAcceleration;
+static int ett_its_LongitudinalLanePosition;
+static int ett_its_LowerTriangularPositiveSemidefiniteMatrices;
+static int ett_its_LowerTriangularPositiveSemidefiniteMatrix;
+static int ett_its_LowerTriangularPositiveSemidefiniteMatrixColumns;
+static int ett_its_MapPosition;
+static int ett_its_MapReference;
+static int ett_its_MessageRateHz;
+static int ett_its_MessageSegmentationInfo;
+static int ett_its_MitigationForTechnologies;
+static int ett_its_MitigationPerTechnologyClass;
+static int ett_its_ObjectClass;
+static int ett_its_ObjectClassDescription;
+static int ett_its_ObjectClassWithConfidence;
+static int ett_its_ObjectDimension;
+static int ett_its_Path;
+static int ett_its_PathHistory;
+static int ett_its_PathPredicted;
+static int ett_its_PathPoint;
+static int ett_its_PathPointPredicted;
+static int ett_its_PerceivedObject;
+static int ett_its_PolygonalShape;
+static int ett_its_PosConfidenceEllipse;
+static int ett_its_PositionConfidenceEllipse;
+static int ett_its_PositionOfPillars;
+static int ett_its_ProtectedCommunicationZone;
+static int ett_its_ProtectedCommunicationZonesRSU;
+static int ett_its_PtActivation;
+static int ett_its_RadialShape;
+static int ett_its_RadialShapes;
+static int ett_its_RadialShapesList;
+static int ett_its_RadialShapeDetails;
+static int ett_its_RectangularShape;
+static int ett_its_ReferencePosition;
+static int ett_its_ReferencePositionWithConfidence;
+static int ett_its_RestrictedTypes;
+static int ett_its_RoadSegmentReferenceId;
+static int ett_its_SafeDistanceIndication;
+static int ett_its_SequenceOfCartesianPosition3d;
+static int ett_its_SequenceOfIdentifier1B;
+static int ett_its_SequenceOfSafeDistanceIndication;
+static int ett_its_SequenceOfTrajectoryInterceptionIndication;
+static int ett_its_Shape;
+static int ett_its_Speed;
+static int ett_its_StabilityChangeIndication;
+static int ett_its_SteeringWheelAngle;
+static int ett_its_Traces;
+static int ett_its_TrafficIslandPosition;
+static int ett_its_TrailerData;
+static int ett_its_TrajectoryInterceptionIndication;
+static int ett_its_VarLengthNumber;
+static int ett_its_Ext1;
+static int ett_its_Ext2;
+static int ett_its_VerticalAcceleration;
+static int ett_its_VehicleIdentification;
+static int ett_its_VehicleLength;
+static int ett_its_Velocity3dWithConfidence;
+static int ett_its_VelocityCartesian;
+static int ett_its_VelocityComponent;
+static int ett_its_VelocityPolarWithZ;
+static int ett_its_VruClusterInformation;
+static int ett_its_VruExteriorLights;
+static int ett_its_VruProfileAndSubprofile;
+static int ett_its_Wgs84Angle;
+static int ett_its_YawRate;
/* --- Module ITS-ContainerV1 --- --- --- */
-static gint ett_itsv1_ReferencePosition;
-static gint ett_itsv1_DeltaReferencePosition;
-static gint ett_itsv1_Altitude;
-static gint ett_itsv1_PosConfidenceEllipse;
-static gint ett_itsv1_PathPoint;
-static gint ett_itsv1_PtActivation;
-static gint ett_itsv1_AccelerationControl;
-static gint ett_itsv1_CauseCode;
-static gint ett_itsv1_Curvature;
-static gint ett_itsv1_Heading;
-static gint ett_itsv1_ClosedLanes;
-static gint ett_itsv1_DrivingLaneStatus;
-static gint ett_itsv1_Speed;
-static gint ett_itsv1_LongitudinalAcceleration;
-static gint ett_itsv1_LateralAcceleration;
-static gint ett_itsv1_VerticalAcceleration;
-static gint ett_itsv1_ExteriorLights;
-static gint ett_itsv1_DangerousGoodsExtended;
-static gint ett_itsv1_SpecialTransportType;
-static gint ett_itsv1_LightBarSirenInUse;
-static gint ett_itsv1_PositionOfOccupants;
-static gint ett_itsv1_VehicleIdentification;
-static gint ett_itsv1_EnergyStorageType;
-static gint ett_itsv1_VehicleLength;
-static gint ett_itsv1_PathHistory;
-static gint ett_itsv1_EmergencyPriority;
-static gint ett_itsv1_SteeringWheelAngle;
-static gint ett_itsv1_YawRate;
-static gint ett_itsv1_ActionID;
-static gint ett_itsv1_ItineraryPath;
-static gint ett_itsv1_ProtectedCommunicationZone;
-static gint ett_itsv1_Traces;
-static gint ett_itsv1_PositionOfPillars;
-static gint ett_itsv1_RestrictedTypes;
-static gint ett_itsv1_EventHistory;
-static gint ett_itsv1_EventPoint;
-static gint ett_itsv1_ProtectedCommunicationZonesRSU;
-static gint ett_itsv1_CenDsrcTollingZone;
+static int ett_itsv1_ReferencePosition;
+static int ett_itsv1_DeltaReferencePosition;
+static int ett_itsv1_Altitude;
+static int ett_itsv1_PosConfidenceEllipse;
+static int ett_itsv1_PathPoint;
+static int ett_itsv1_PtActivation;
+static int ett_itsv1_AccelerationControl;
+static int ett_itsv1_CauseCode;
+static int ett_itsv1_Curvature;
+static int ett_itsv1_Heading;
+static int ett_itsv1_ClosedLanes;
+static int ett_itsv1_DrivingLaneStatus;
+static int ett_itsv1_Speed;
+static int ett_itsv1_LongitudinalAcceleration;
+static int ett_itsv1_LateralAcceleration;
+static int ett_itsv1_VerticalAcceleration;
+static int ett_itsv1_ExteriorLights;
+static int ett_itsv1_DangerousGoodsExtended;
+static int ett_itsv1_SpecialTransportType;
+static int ett_itsv1_LightBarSirenInUse;
+static int ett_itsv1_PositionOfOccupants;
+static int ett_itsv1_VehicleIdentification;
+static int ett_itsv1_EnergyStorageType;
+static int ett_itsv1_VehicleLength;
+static int ett_itsv1_PathHistory;
+static int ett_itsv1_EmergencyPriority;
+static int ett_itsv1_SteeringWheelAngle;
+static int ett_itsv1_YawRate;
+static int ett_itsv1_ActionID;
+static int ett_itsv1_ItineraryPath;
+static int ett_itsv1_ProtectedCommunicationZone;
+static int ett_itsv1_Traces;
+static int ett_itsv1_PositionOfPillars;
+static int ett_itsv1_RestrictedTypes;
+static int ett_itsv1_EventHistory;
+static int ett_itsv1_EventPoint;
+static int ett_itsv1_ProtectedCommunicationZonesRSU;
+static int ett_itsv1_CenDsrcTollingZone;
/* --- Module AVIAEINumberingAndDataStructures --- --- --- */
/* --- Module EfcDsrcApplication --- --- --- */
-static gint ett_dsrc_app_AxleWeightLimits;
-static gint ett_dsrc_app_DieselEmissionValues;
-static gint ett_dsrc_app_T_particulate;
-static gint ett_dsrc_app_EnvironmentalCharacteristics;
-static gint ett_dsrc_app_ExhaustEmissionValues;
-static gint ett_dsrc_app_PassengerCapacity;
-static gint ett_dsrc_app_Provider;
-static gint ett_dsrc_app_SoundLevel;
-static gint ett_dsrc_app_VehicleDimensions;
-static gint ett_dsrc_app_VehicleWeightLimits;
+static int ett_dsrc_app_AxleWeightLimits;
+static int ett_dsrc_app_DieselEmissionValues;
+static int ett_dsrc_app_T_particulate;
+static int ett_dsrc_app_EnvironmentalCharacteristics;
+static int ett_dsrc_app_ExhaustEmissionValues;
+static int ett_dsrc_app_PassengerCapacity;
+static int ett_dsrc_app_Provider;
+static int ett_dsrc_app_SoundLevel;
+static int ett_dsrc_app_VehicleDimensions;
+static int ett_dsrc_app_VehicleWeightLimits;
/* --- Module DSRC --- --- --- */
-static gint ett_dsrc_RegionalExtension;
-static gint ett_dsrc_MapData;
-static gint ett_dsrc_T_MAPRegional;
-static gint ett_dsrc_RTCMcorrections;
-static gint ett_dsrc_SEQUENCE_SIZE_1_4_OF_RegionalExtension;
-static gint ett_dsrc_SPAT;
-static gint ett_dsrc_T_SPATRegional;
-static gint ett_dsrc_SignalRequestMessage;
-static gint ett_dsrc_T_SRMRegional;
-static gint ett_dsrc_SignalStatusMessage;
-static gint ett_dsrc_T_SSMRegional;
-static gint ett_dsrc_AdvisorySpeed;
-static gint ett_dsrc_T_AdvisorySpeedRegional;
-static gint ett_dsrc_AdvisorySpeedList;
-static gint ett_dsrc_AntennaOffsetSet;
-static gint ett_dsrc_ComputedLane;
-static gint ett_dsrc_T_offsetXaxis;
-static gint ett_dsrc_T_offsetYaxis;
-static gint ett_dsrc_T_ComputedLaneRegional;
-static gint ett_dsrc_ConnectsToList;
-static gint ett_dsrc_ConnectingLane;
-static gint ett_dsrc_Connection;
-static gint ett_dsrc_ConnectionManeuverAssist;
-static gint ett_dsrc_T_ConnectionManeuverAssistRegional;
-static gint ett_dsrc_DataParameters;
-static gint ett_dsrc_DDateTime;
-static gint ett_dsrc_EnabledLaneList;
-static gint ett_dsrc_FullPositionVector;
-static gint ett_dsrc_GenericLane;
-static gint ett_dsrc_T_GenericLaneRegional;
-static gint ett_dsrc_IntersectionAccessPoint;
-static gint ett_dsrc_IntersectionGeometry;
-static gint ett_dsrc_T_IntersectionGeometryRegional;
-static gint ett_dsrc_IntersectionGeometryList;
-static gint ett_dsrc_IntersectionReferenceID;
-static gint ett_dsrc_IntersectionState;
-static gint ett_dsrc_T_IntersectionStateRegional;
-static gint ett_dsrc_IntersectionStateList;
-static gint ett_dsrc_LaneAttributes;
-static gint ett_dsrc_LaneDataAttribute;
-static gint ett_dsrc_T_LaneDataAttributeRegional;
-static gint ett_dsrc_LaneDataAttributeList;
-static gint ett_dsrc_LaneList;
-static gint ett_dsrc_LaneSharing;
-static gint ett_dsrc_LaneTypeAttributes;
-static gint ett_dsrc_ManeuverAssistList;
-static gint ett_dsrc_MovementEvent;
-static gint ett_dsrc_T_MovementEventRegional;
-static gint ett_dsrc_MovementEventList;
-static gint ett_dsrc_MovementList;
-static gint ett_dsrc_MovementState;
-static gint ett_dsrc_T_MovementStateRegional;
-static gint ett_dsrc_NodeAttributeSetXY;
-static gint ett_dsrc_T_NodeAttributeSetXYRegional;
-static gint ett_dsrc_NodeAttributeXYList;
-static gint ett_dsrc_Node_LLmD_64b;
-static gint ett_dsrc_Node_XY_20b;
-static gint ett_dsrc_Node_XY_22b;
-static gint ett_dsrc_Node_XY_24b;
-static gint ett_dsrc_Node_XY_26b;
-static gint ett_dsrc_Node_XY_28b;
-static gint ett_dsrc_Node_XY_32b;
-static gint ett_dsrc_NodeListXY;
-static gint ett_dsrc_NodeOffsetPointXY;
-static gint ett_dsrc_NodeXY;
-static gint ett_dsrc_NodeSetXY;
-static gint ett_dsrc_OverlayLaneList;
-static gint ett_dsrc_PositionalAccuracy;
-static gint ett_dsrc_PositionConfidenceSet;
-static gint ett_dsrc_Position3D;
-static gint ett_dsrc_T_Position3DRegional;
-static gint ett_dsrc_PreemptPriorityList;
-static gint ett_dsrc_RegulatorySpeedLimit;
-static gint ett_dsrc_RequestorDescription;
-static gint ett_dsrc_T_RequestorDescriptionRegional;
-static gint ett_dsrc_RequestorPositionVector;
-static gint ett_dsrc_RequestorType;
-static gint ett_dsrc_RestrictionClassAssignment;
-static gint ett_dsrc_RestrictionClassList;
-static gint ett_dsrc_RestrictionUserType;
-static gint ett_dsrc_T_RestrictionUserTypeRegional;
-static gint ett_dsrc_RestrictionUserTypeList;
-static gint ett_dsrc_RoadLaneSetList;
-static gint ett_dsrc_RoadSegmentReferenceID;
-static gint ett_dsrc_RoadSegment;
-static gint ett_dsrc_T_RoadSegmentRegional;
-static gint ett_dsrc_RoadSegmentList;
-static gint ett_dsrc_RTCMheader;
-static gint ett_dsrc_RTCMmessageList;
-static gint ett_dsrc_SegmentAttributeXYList;
-static gint ett_dsrc_SignalControlZone;
-static gint ett_dsrc_SignalRequesterInfo;
-static gint ett_dsrc_SignalRequest;
-static gint ett_dsrc_T_SignalRequestRegional;
-static gint ett_dsrc_SignalRequestList;
-static gint ett_dsrc_SignalRequestPackage;
-static gint ett_dsrc_T_SignalRequestPackageRegional;
-static gint ett_dsrc_SignalStatus;
-static gint ett_dsrc_T_SignalStatusRegional;
-static gint ett_dsrc_SignalStatusList;
-static gint ett_dsrc_SignalStatusPackageList;
-static gint ett_dsrc_SignalStatusPackage;
-static gint ett_dsrc_T_SignalStatusPackageRegional;
-static gint ett_dsrc_SpeedandHeadingandThrottleConfidence;
-static gint ett_dsrc_SpeedLimitList;
-static gint ett_dsrc_TimeChangeDetails;
-static gint ett_dsrc_TransmissionAndSpeed;
-static gint ett_dsrc_VehicleID;
-static gint ett_dsrc_AllowedManeuvers;
-static gint ett_dsrc_GNSSstatus;
-static gint ett_dsrc_IntersectionStatusObject;
-static gint ett_dsrc_LaneAttributes_Barrier;
-static gint ett_dsrc_LaneAttributes_Bike;
-static gint ett_dsrc_LaneAttributes_Crosswalk;
-static gint ett_dsrc_LaneAttributes_Parking;
-static gint ett_dsrc_LaneAttributes_Sidewalk;
-static gint ett_dsrc_LaneAttributes_Striping;
-static gint ett_dsrc_LaneAttributes_TrackedVehicle;
-static gint ett_dsrc_LaneAttributes_Vehicle;
-static gint ett_dsrc_LaneDirection;
-static gint ett_dsrc_TransitVehicleStatus;
+static int ett_dsrc_RegionalExtension;
+static int ett_dsrc_MapData;
+static int ett_dsrc_T_MAPRegional;
+static int ett_dsrc_RTCMcorrections;
+static int ett_dsrc_SEQUENCE_SIZE_1_4_OF_RegionalExtension;
+static int ett_dsrc_SPAT;
+static int ett_dsrc_T_SPATRegional;
+static int ett_dsrc_SignalRequestMessage;
+static int ett_dsrc_T_SRMRegional;
+static int ett_dsrc_SignalStatusMessage;
+static int ett_dsrc_T_SSMRegional;
+static int ett_dsrc_AdvisorySpeed;
+static int ett_dsrc_T_AdvisorySpeedRegional;
+static int ett_dsrc_AdvisorySpeedList;
+static int ett_dsrc_AntennaOffsetSet;
+static int ett_dsrc_ComputedLane;
+static int ett_dsrc_T_offsetXaxis;
+static int ett_dsrc_T_offsetYaxis;
+static int ett_dsrc_T_ComputedLaneRegional;
+static int ett_dsrc_ConnectsToList;
+static int ett_dsrc_ConnectingLane;
+static int ett_dsrc_Connection;
+static int ett_dsrc_ConnectionManeuverAssist;
+static int ett_dsrc_T_ConnectionManeuverAssistRegional;
+static int ett_dsrc_DataParameters;
+static int ett_dsrc_DDateTime;
+static int ett_dsrc_EnabledLaneList;
+static int ett_dsrc_FullPositionVector;
+static int ett_dsrc_GenericLane;
+static int ett_dsrc_T_GenericLaneRegional;
+static int ett_dsrc_IntersectionAccessPoint;
+static int ett_dsrc_IntersectionGeometry;
+static int ett_dsrc_T_IntersectionGeometryRegional;
+static int ett_dsrc_IntersectionGeometryList;
+static int ett_dsrc_IntersectionReferenceID;
+static int ett_dsrc_IntersectionState;
+static int ett_dsrc_T_IntersectionStateRegional;
+static int ett_dsrc_IntersectionStateList;
+static int ett_dsrc_LaneAttributes;
+static int ett_dsrc_LaneDataAttribute;
+static int ett_dsrc_T_LaneDataAttributeRegional;
+static int ett_dsrc_LaneDataAttributeList;
+static int ett_dsrc_LaneList;
+static int ett_dsrc_LaneSharing;
+static int ett_dsrc_LaneTypeAttributes;
+static int ett_dsrc_ManeuverAssistList;
+static int ett_dsrc_MovementEvent;
+static int ett_dsrc_T_MovementEventRegional;
+static int ett_dsrc_MovementEventList;
+static int ett_dsrc_MovementList;
+static int ett_dsrc_MovementState;
+static int ett_dsrc_T_MovementStateRegional;
+static int ett_dsrc_NodeAttributeSetXY;
+static int ett_dsrc_T_NodeAttributeSetXYRegional;
+static int ett_dsrc_NodeAttributeXYList;
+static int ett_dsrc_Node_LLmD_64b;
+static int ett_dsrc_Node_XY_20b;
+static int ett_dsrc_Node_XY_22b;
+static int ett_dsrc_Node_XY_24b;
+static int ett_dsrc_Node_XY_26b;
+static int ett_dsrc_Node_XY_28b;
+static int ett_dsrc_Node_XY_32b;
+static int ett_dsrc_NodeListXY;
+static int ett_dsrc_NodeOffsetPointXY;
+static int ett_dsrc_NodeXY;
+static int ett_dsrc_NodeSetXY;
+static int ett_dsrc_OverlayLaneList;
+static int ett_dsrc_PositionalAccuracy;
+static int ett_dsrc_PositionConfidenceSet;
+static int ett_dsrc_Position3D;
+static int ett_dsrc_T_Position3DRegional;
+static int ett_dsrc_PreemptPriorityList;
+static int ett_dsrc_RegulatorySpeedLimit;
+static int ett_dsrc_RequestorDescription;
+static int ett_dsrc_T_RequestorDescriptionRegional;
+static int ett_dsrc_RequestorPositionVector;
+static int ett_dsrc_RequestorType;
+static int ett_dsrc_RestrictionClassAssignment;
+static int ett_dsrc_RestrictionClassList;
+static int ett_dsrc_RestrictionUserType;
+static int ett_dsrc_T_RestrictionUserTypeRegional;
+static int ett_dsrc_RestrictionUserTypeList;
+static int ett_dsrc_RoadLaneSetList;
+static int ett_dsrc_RoadSegmentReferenceID;
+static int ett_dsrc_RoadSegment;
+static int ett_dsrc_T_RoadSegmentRegional;
+static int ett_dsrc_RoadSegmentList;
+static int ett_dsrc_RTCMheader;
+static int ett_dsrc_RTCMmessageList;
+static int ett_dsrc_SegmentAttributeXYList;
+static int ett_dsrc_SignalControlZone;
+static int ett_dsrc_SignalRequesterInfo;
+static int ett_dsrc_SignalRequest;
+static int ett_dsrc_T_SignalRequestRegional;
+static int ett_dsrc_SignalRequestList;
+static int ett_dsrc_SignalRequestPackage;
+static int ett_dsrc_T_SignalRequestPackageRegional;
+static int ett_dsrc_SignalStatus;
+static int ett_dsrc_T_SignalStatusRegional;
+static int ett_dsrc_SignalStatusList;
+static int ett_dsrc_SignalStatusPackageList;
+static int ett_dsrc_SignalStatusPackage;
+static int ett_dsrc_T_SignalStatusPackageRegional;
+static int ett_dsrc_SpeedandHeadingandThrottleConfidence;
+static int ett_dsrc_SpeedLimitList;
+static int ett_dsrc_TimeChangeDetails;
+static int ett_dsrc_TransmissionAndSpeed;
+static int ett_dsrc_VehicleID;
+static int ett_dsrc_AllowedManeuvers;
+static int ett_dsrc_GNSSstatus;
+static int ett_dsrc_IntersectionStatusObject;
+static int ett_dsrc_LaneAttributes_Barrier;
+static int ett_dsrc_LaneAttributes_Bike;
+static int ett_dsrc_LaneAttributes_Crosswalk;
+static int ett_dsrc_LaneAttributes_Parking;
+static int ett_dsrc_LaneAttributes_Sidewalk;
+static int ett_dsrc_LaneAttributes_Striping;
+static int ett_dsrc_LaneAttributes_TrackedVehicle;
+static int ett_dsrc_LaneAttributes_Vehicle;
+static int ett_dsrc_LaneDirection;
+static int ett_dsrc_TransitVehicleStatus;
/* --- Module AddGrpC --- --- --- */
-static gint ett_AddGrpC_ConnectionManeuverAssist_addGrpC;
-static gint ett_AddGrpC_ConnectionTrajectory_addGrpC;
-static gint ett_AddGrpC_IntersectionState_addGrpC;
-static gint ett_AddGrpC_LaneAttributes_addGrpC;
-static gint ett_AddGrpC_MapData_addGrpC;
-static gint ett_AddGrpC_MovementEvent_addGrpC;
-static gint ett_AddGrpC_NodeAttributeSet_addGrpC;
-static gint ett_AddGrpC_Position3D_addGrpC;
-static gint ett_AddGrpC_RestrictionUserType_addGrpC;
-static gint ett_AddGrpC_RequestorDescription_addGrpC;
-static gint ett_AddGrpC_SignalStatusPackage_addGrpC;
-static gint ett_AddGrpC_ItsStationPosition;
-static gint ett_AddGrpC_ItsStationPositionList;
-static gint ett_AddGrpC_Node;
-static gint ett_AddGrpC_NodeLink;
-static gint ett_AddGrpC_PrioritizationResponse;
-static gint ett_AddGrpC_PrioritizationResponseList;
-static gint ett_AddGrpC_SignalHeadLocation;
-static gint ett_AddGrpC_SignalHeadLocationList;
+static int ett_AddGrpC_ConnectionManeuverAssist_addGrpC;
+static int ett_AddGrpC_ConnectionTrajectory_addGrpC;
+static int ett_AddGrpC_IntersectionState_addGrpC;
+static int ett_AddGrpC_LaneAttributes_addGrpC;
+static int ett_AddGrpC_MapData_addGrpC;
+static int ett_AddGrpC_MovementEvent_addGrpC;
+static int ett_AddGrpC_NodeAttributeSet_addGrpC;
+static int ett_AddGrpC_Position3D_addGrpC;
+static int ett_AddGrpC_RestrictionUserType_addGrpC;
+static int ett_AddGrpC_RequestorDescription_addGrpC;
+static int ett_AddGrpC_SignalStatusPackage_addGrpC;
+static int ett_AddGrpC_ItsStationPosition;
+static int ett_AddGrpC_ItsStationPositionList;
+static int ett_AddGrpC_Node;
+static int ett_AddGrpC_NodeLink;
+static int ett_AddGrpC_PrioritizationResponse;
+static int ett_AddGrpC_PrioritizationResponseList;
+static int ett_AddGrpC_SignalHeadLocation;
+static int ett_AddGrpC_SignalHeadLocationList;
/* --- Module REGION --- --- --- */
/* --- Module GDD --- --- --- */
-static gint ett_gdd_GddStructure;
-static gint ett_gdd_Pictogram;
-static gint ett_gdd_Pictogram_serviceCategory;
-static gint ett_gdd_Pictogram_category;
-static gint ett_gdd_GddAttributes;
-static gint ett_gdd_GddAttributes_item;
-static gint ett_gdd_InternationalSign_applicablePeriod;
-static gint ett_gdd_T_year;
-static gint ett_gdd_T_month_day;
-static gint ett_gdd_T_hourMinutes;
-static gint ett_gdd_MonthDay;
-static gint ett_gdd_HoursMinutes;
-static gint ett_gdd_RPDT;
-static gint ett_gdd_DayOfWeek;
-static gint ett_gdd_InternationalSign_section;
-static gint ett_gdd_InternationalSign_applicableVehicleDimensions;
-static gint ett_gdd_Distance;
-static gint ett_gdd_Weight;
-static gint ett_gdd_InternationalSign_speedLimits;
-static gint ett_gdd_InternationalSign_destinationInformation;
-static gint ett_gdd_SEQUENCE_SIZE_1_8__OF_DestinationInformationIO;
-static gint ett_gdd_DestinationInformationIO;
-static gint ett_gdd_SEQUENCE_SIZE_1_4__OF_DestinationPlace;
-static gint ett_gdd_SEQUENCE_SIZE_1_4__OF_DestinationRoad;
-static gint ett_gdd_DestinationPlace;
-static gint ett_gdd_DestinationRoad;
-static gint ett_gdd_DistanceOrDuration;
+static int ett_gdd_GddStructure;
+static int ett_gdd_Pictogram;
+static int ett_gdd_Pictogram_serviceCategory;
+static int ett_gdd_Pictogram_category;
+static int ett_gdd_GddAttributes;
+static int ett_gdd_GddAttributes_item;
+static int ett_gdd_InternationalSign_applicablePeriod;
+static int ett_gdd_T_year;
+static int ett_gdd_T_month_day;
+static int ett_gdd_T_hourMinutes;
+static int ett_gdd_MonthDay;
+static int ett_gdd_HoursMinutes;
+static int ett_gdd_RPDT;
+static int ett_gdd_DayOfWeek;
+static int ett_gdd_InternationalSign_section;
+static int ett_gdd_InternationalSign_applicableVehicleDimensions;
+static int ett_gdd_Distance;
+static int ett_gdd_Weight;
+static int ett_gdd_InternationalSign_speedLimits;
+static int ett_gdd_InternationalSign_destinationInformation;
+static int ett_gdd_SEQUENCE_SIZE_1_8__OF_DestinationInformationIO;
+static int ett_gdd_DestinationInformationIO;
+static int ett_gdd_SEQUENCE_SIZE_1_4__OF_DestinationPlace;
+static int ett_gdd_SEQUENCE_SIZE_1_4__OF_DestinationRoad;
+static int ett_gdd_DestinationPlace;
+static int ett_gdd_DestinationRoad;
+static int ett_gdd_DistanceOrDuration;
/* --- Module IVI --- --- --- */
-static gint ett_ivi_IviStructure;
-static gint ett_ivi_IviContainers;
-static gint ett_ivi_IviContainer;
-static gint ett_ivi_IviManagementContainer;
-static gint ett_ivi_GeographicLocationContainer;
-static gint ett_ivi_GlcParts;
-static gint ett_ivi_GlcPart;
-static gint ett_ivi_GeneralIviContainer;
-static gint ett_ivi_GicPart;
-static gint ett_ivi_RoadConfigurationContainer;
-static gint ett_ivi_RccPart;
-static gint ett_ivi_RoadSurfaceContainer;
-static gint ett_ivi_RscPart;
-static gint ett_ivi_TextContainer;
-static gint ett_ivi_TcPart;
-static gint ett_ivi_LayoutContainer;
-static gint ett_ivi_AutomatedVehicleContainer;
-static gint ett_ivi_AvcPart;
-static gint ett_ivi_MapLocationContainer;
-static gint ett_ivi_MlcParts;
-static gint ett_ivi_MlcPart;
-static gint ett_ivi_AbsolutePositions;
-static gint ett_ivi_AbsolutePositionsWAltitude;
-static gint ett_ivi_AutomatedVehicleRules;
-static gint ett_ivi_ConnectedDenms;
-static gint ett_ivi_DeltaPositions;
-static gint ett_ivi_DeltaReferencePositions;
-static gint ett_ivi_ConstraintTextLines1;
-static gint ett_ivi_ConstraintTextLines2;
-static gint ett_ivi_IviIdentificationNumbers;
-static gint ett_ivi_ISO14823Attributes;
-static gint ett_ivi_LaneConfiguration;
-static gint ett_ivi_LaneIds;
-static gint ett_ivi_LanePositions;
-static gint ett_ivi_LayoutComponents;
-static gint ett_ivi_PlatooningRules;
-static gint ett_ivi_RoadSignCodes;
-static gint ett_ivi_TextLines;
-static gint ett_ivi_TrailerCharacteristicsList;
-static gint ett_ivi_TrailerCharacteristicsFixValuesList;
-static gint ett_ivi_TrailerCharacteristicsRangesList;
-static gint ett_ivi_SaeAutomationLevels;
-static gint ett_ivi_VehicleCharacteristicsFixValuesList;
-static gint ett_ivi_VehicleCharacteristicsList;
-static gint ett_ivi_VehicleCharacteristicsRangesList;
-static gint ett_ivi_ValidityPeriods;
-static gint ett_ivi_ZoneIds;
-static gint ett_ivi_AbsolutePosition;
-static gint ett_ivi_AbsolutePositionWAltitude;
-static gint ett_ivi_AnyCatalogue;
-static gint ett_ivi_AutomatedVehicleRule;
-static gint ett_ivi_CompleteVehicleCharacteristics;
-static gint ett_ivi_ComputedSegment;
-static gint ett_ivi_DeltaPosition;
-static gint ett_ivi_ISO14823Attribute;
-static gint ett_ivi_ISO14823Code;
-static gint ett_ivi_T_icPictogramCode;
-static gint ett_ivi_T_serviceCategoryCode;
-static gint ett_ivi_T_pictogramCategoryCode;
-static gint ett_ivi_LaneInformation;
-static gint ett_ivi_LaneCharacteristics;
-static gint ett_ivi_LayoutComponent;
-static gint ett_ivi_LoadType;
-static gint ett_ivi_MapReference;
-static gint ett_ivi_PlatooningRule;
-static gint ett_ivi_PolygonalLine;
-static gint ett_ivi_RoadSurfaceDynamicCharacteristics;
-static gint ett_ivi_RoadSurfaceStaticCharacteristics;
-static gint ett_ivi_RSCode;
-static gint ett_ivi_T_code;
-static gint ett_ivi_Segment;
-static gint ett_ivi_Text;
-static gint ett_ivi_TractorCharacteristics;
-static gint ett_ivi_TrailerCharacteristics;
-static gint ett_ivi_VcCode;
-static gint ett_ivi_VehicleCharacteristicsFixValues;
-static gint ett_ivi_VehicleCharacteristicsRanges;
-static gint ett_ivi_T_limits;
-static gint ett_ivi_Zone;
+static int ett_ivi_IviStructure;
+static int ett_ivi_IviContainers;
+static int ett_ivi_IviContainer;
+static int ett_ivi_IviManagementContainer;
+static int ett_ivi_GeographicLocationContainer;
+static int ett_ivi_GlcParts;
+static int ett_ivi_GlcPart;
+static int ett_ivi_GeneralIviContainer;
+static int ett_ivi_GicPart;
+static int ett_ivi_RoadConfigurationContainer;
+static int ett_ivi_RccPart;
+static int ett_ivi_RoadSurfaceContainer;
+static int ett_ivi_RscPart;
+static int ett_ivi_TextContainer;
+static int ett_ivi_TcPart;
+static int ett_ivi_LayoutContainer;
+static int ett_ivi_AutomatedVehicleContainer;
+static int ett_ivi_AvcPart;
+static int ett_ivi_MapLocationContainer;
+static int ett_ivi_MlcParts;
+static int ett_ivi_MlcPart;
+static int ett_ivi_AbsolutePositions;
+static int ett_ivi_AbsolutePositionsWAltitude;
+static int ett_ivi_AutomatedVehicleRules;
+static int ett_ivi_ConnectedDenms;
+static int ett_ivi_DeltaPositions;
+static int ett_ivi_DeltaReferencePositions;
+static int ett_ivi_ConstraintTextLines1;
+static int ett_ivi_ConstraintTextLines2;
+static int ett_ivi_IviIdentificationNumbers;
+static int ett_ivi_ISO14823Attributes;
+static int ett_ivi_LaneConfiguration;
+static int ett_ivi_LaneIds;
+static int ett_ivi_LanePositions;
+static int ett_ivi_LayoutComponents;
+static int ett_ivi_PlatooningRules;
+static int ett_ivi_RoadSignCodes;
+static int ett_ivi_TextLines;
+static int ett_ivi_TrailerCharacteristicsList;
+static int ett_ivi_TrailerCharacteristicsFixValuesList;
+static int ett_ivi_TrailerCharacteristicsRangesList;
+static int ett_ivi_SaeAutomationLevels;
+static int ett_ivi_VehicleCharacteristicsFixValuesList;
+static int ett_ivi_VehicleCharacteristicsList;
+static int ett_ivi_VehicleCharacteristicsRangesList;
+static int ett_ivi_ValidityPeriods;
+static int ett_ivi_ZoneIds;
+static int ett_ivi_AbsolutePosition;
+static int ett_ivi_AbsolutePositionWAltitude;
+static int ett_ivi_AnyCatalogue;
+static int ett_ivi_AutomatedVehicleRule;
+static int ett_ivi_CompleteVehicleCharacteristics;
+static int ett_ivi_ComputedSegment;
+static int ett_ivi_DeltaPosition;
+static int ett_ivi_ISO14823Attribute;
+static int ett_ivi_ISO14823Code;
+static int ett_ivi_T_icPictogramCode;
+static int ett_ivi_T_serviceCategoryCode;
+static int ett_ivi_T_pictogramCategoryCode;
+static int ett_ivi_LaneInformation;
+static int ett_ivi_LaneCharacteristics;
+static int ett_ivi_LayoutComponent;
+static int ett_ivi_LoadType;
+static int ett_ivi_MapReference;
+static int ett_ivi_PlatooningRule;
+static int ett_ivi_PolygonalLine;
+static int ett_ivi_RoadSurfaceDynamicCharacteristics;
+static int ett_ivi_RoadSurfaceStaticCharacteristics;
+static int ett_ivi_RSCode;
+static int ett_ivi_T_code;
+static int ett_ivi_Segment;
+static int ett_ivi_Text;
+static int ett_ivi_TractorCharacteristics;
+static int ett_ivi_TrailerCharacteristics;
+static int ett_ivi_VcCode;
+static int ett_ivi_VehicleCharacteristicsFixValues;
+static int ett_ivi_VehicleCharacteristicsRanges;
+static int ett_ivi_T_limits;
+static int ett_ivi_Zone;
/* --- Module SPATEM-PDU-Descriptions --- --- --- */
@@ -2696,180 +2696,180 @@ static gint ett_ivi_Zone;
/* --- Module CAMv1-PDU-Descriptions --- --- --- */
-static gint ett_camv1_CoopAwarenessV1;
-static gint ett_camv1_CamParameters;
-static gint ett_camv1_HighFrequencyContainer;
-static gint ett_camv1_LowFrequencyContainer;
-static gint ett_camv1_SpecialVehicleContainer;
-static gint ett_camv1_BasicContainer;
-static gint ett_camv1_BasicVehicleContainerHighFrequency;
-static gint ett_camv1_BasicVehicleContainerLowFrequency;
-static gint ett_camv1_PublicTransportContainer;
-static gint ett_camv1_SpecialTransportContainer;
-static gint ett_camv1_DangerousGoodsContainer;
-static gint ett_camv1_RoadWorksContainerBasic;
-static gint ett_camv1_RescueContainer;
-static gint ett_camv1_EmergencyContainer;
-static gint ett_camv1_SafetyCarContainer;
-static gint ett_camv1_RSUContainerHighFrequency;
+static int ett_camv1_CoopAwarenessV1;
+static int ett_camv1_CamParameters;
+static int ett_camv1_HighFrequencyContainer;
+static int ett_camv1_LowFrequencyContainer;
+static int ett_camv1_SpecialVehicleContainer;
+static int ett_camv1_BasicContainer;
+static int ett_camv1_BasicVehicleContainerHighFrequency;
+static int ett_camv1_BasicVehicleContainerLowFrequency;
+static int ett_camv1_PublicTransportContainer;
+static int ett_camv1_SpecialTransportContainer;
+static int ett_camv1_DangerousGoodsContainer;
+static int ett_camv1_RoadWorksContainerBasic;
+static int ett_camv1_RescueContainer;
+static int ett_camv1_EmergencyContainer;
+static int ett_camv1_SafetyCarContainer;
+static int ett_camv1_RSUContainerHighFrequency;
/* --- Module CAM-PDU-Descriptions --- --- --- */
-static gint ett_cam_CamPayload;
-static gint ett_cam_CamParameters;
-static gint ett_cam_HighFrequencyContainer;
-static gint ett_cam_LowFrequencyContainer;
-static gint ett_cam_SpecialVehicleContainer;
-static gint ett_cam_BasicVehicleContainerHighFrequency;
-static gint ett_cam_BasicVehicleContainerLowFrequency;
-static gint ett_cam_PublicTransportContainer;
-static gint ett_cam_SpecialTransportContainer;
-static gint ett_cam_DangerousGoodsContainer;
-static gint ett_cam_RoadWorksContainerBasic;
-static gint ett_cam_RescueContainer;
-static gint ett_cam_EmergencyContainer;
-static gint ett_cam_SafetyCarContainer;
-static gint ett_cam_RSUContainerHighFrequency;
+static int ett_cam_CamPayload;
+static int ett_cam_CamParameters;
+static int ett_cam_HighFrequencyContainer;
+static int ett_cam_LowFrequencyContainer;
+static int ett_cam_SpecialVehicleContainer;
+static int ett_cam_BasicVehicleContainerHighFrequency;
+static int ett_cam_BasicVehicleContainerLowFrequency;
+static int ett_cam_PublicTransportContainer;
+static int ett_cam_SpecialTransportContainer;
+static int ett_cam_DangerousGoodsContainer;
+static int ett_cam_RoadWorksContainerBasic;
+static int ett_cam_RescueContainer;
+static int ett_cam_EmergencyContainer;
+static int ett_cam_SafetyCarContainer;
+static int ett_cam_RSUContainerHighFrequency;
/* --- Module DENMv1-PDU-Descriptions --- --- --- */
-static gint ett_denmv1_DecentralizedEnvironmentalNotificationMessageV1;
-static gint ett_denmv1_ManagementContainer;
-static gint ett_denmv1_SituationContainer;
-static gint ett_denmv1_LocationContainer;
-static gint ett_denmv1_ImpactReductionContainer;
-static gint ett_denmv1_RoadWorksContainerExtended;
-static gint ett_denmv1_StationaryVehicleContainer;
-static gint ett_denmv1_AlacarteContainer;
-static gint ett_denmv1_ReferenceDenms;
+static int ett_denmv1_DecentralizedEnvironmentalNotificationMessageV1;
+static int ett_denmv1_ManagementContainer;
+static int ett_denmv1_SituationContainer;
+static int ett_denmv1_LocationContainer;
+static int ett_denmv1_ImpactReductionContainer;
+static int ett_denmv1_RoadWorksContainerExtended;
+static int ett_denmv1_StationaryVehicleContainer;
+static int ett_denmv1_AlacarteContainer;
+static int ett_denmv1_ReferenceDenms;
/* --- Module DENM-PDU-Description --- --- --- */
-static gint ett_denm_DenmPayload;
-static gint ett_denm_ManagementContainer;
-static gint ett_denm_SituationContainer;
-static gint ett_denm_LocationContainer;
-static gint ett_denm_ImpactReductionContainer;
-static gint ett_denm_RoadWorksContainerExtended;
-static gint ett_denm_StationaryVehicleContainer;
-static gint ett_denm_AlacarteContainer;
+static int ett_denm_DenmPayload;
+static int ett_denm_ManagementContainer;
+static int ett_denm_SituationContainer;
+static int ett_denm_LocationContainer;
+static int ett_denm_ImpactReductionContainer;
+static int ett_denm_RoadWorksContainerExtended;
+static int ett_denm_StationaryVehicleContainer;
+static int ett_denm_AlacarteContainer;
/* --- Module TIS-TPG-Transactions-Descriptions --- --- --- */
-static gint ett_tistpg_TisTpgTransaction;
-static gint ett_tistpg_TisTpgDRM;
-static gint ett_tistpg_TisTpgDRM_Management;
-static gint ett_tistpg_TisTpgDRM_Situation;
-static gint ett_tistpg_TisTpgDRM_Location;
-static gint ett_tistpg_TisTpgSNM;
-static gint ett_tistpg_TisTpgSNM_Management;
-static gint ett_tistpg_TisTpgTRM;
-static gint ett_tistpg_TisTpgTRM_Management;
-static gint ett_tistpg_TisTpgTRM_Situation;
-static gint ett_tistpg_TisTpgTRM_Location;
-static gint ett_tistpg_TisTpgTCM;
-static gint ett_tistpg_TisTpgTCM_Management;
-static gint ett_tistpg_TisTpgTCM_Situation;
-static gint ett_tistpg_TisTpgTCM_Location;
-static gint ett_tistpg_TisTpgVDRM;
-static gint ett_tistpg_TisTpgVDRM_Management;
-static gint ett_tistpg_TisTpgVDPM;
-static gint ett_tistpg_TisTpgVDPM_Management;
-static gint ett_tistpg_VehicleSpecificData;
-static gint ett_tistpg_TisTpgEOFM;
-static gint ett_tistpg_TisTpgEOFM_Management;
-static gint ett_tistpg_PlacardTable;
-static gint ett_tistpg_TyreSetVariant;
-static gint ett_tistpg_PressureVariantsList;
-static gint ett_tistpg_PressureVariant;
-static gint ett_tistpg_TyreData;
-static gint ett_tistpg_T_currentTyrePressure;
-static gint ett_tistpg_T_tyreSidewallInformation;
-static gint ett_tistpg_T_currentInsideAirTemperature;
-static gint ett_tistpg_T_recommendedTyrePressure;
-static gint ett_tistpg_T_tin;
-static gint ett_tistpg_T_sensorState;
-static gint ett_tistpg_AppliedTyrePressure;
-static gint ett_tistpg_TpgStationData;
-static gint ett_tistpg_AppliedTyrePressures;
-static gint ett_tistpg_TpgNotifContainer;
-static gint ett_tistpg_TpgAutomation;
-static gint ett_tistpg_TisProfile;
+static int ett_tistpg_TisTpgTransaction;
+static int ett_tistpg_TisTpgDRM;
+static int ett_tistpg_TisTpgDRM_Management;
+static int ett_tistpg_TisTpgDRM_Situation;
+static int ett_tistpg_TisTpgDRM_Location;
+static int ett_tistpg_TisTpgSNM;
+static int ett_tistpg_TisTpgSNM_Management;
+static int ett_tistpg_TisTpgTRM;
+static int ett_tistpg_TisTpgTRM_Management;
+static int ett_tistpg_TisTpgTRM_Situation;
+static int ett_tistpg_TisTpgTRM_Location;
+static int ett_tistpg_TisTpgTCM;
+static int ett_tistpg_TisTpgTCM_Management;
+static int ett_tistpg_TisTpgTCM_Situation;
+static int ett_tistpg_TisTpgTCM_Location;
+static int ett_tistpg_TisTpgVDRM;
+static int ett_tistpg_TisTpgVDRM_Management;
+static int ett_tistpg_TisTpgVDPM;
+static int ett_tistpg_TisTpgVDPM_Management;
+static int ett_tistpg_VehicleSpecificData;
+static int ett_tistpg_TisTpgEOFM;
+static int ett_tistpg_TisTpgEOFM_Management;
+static int ett_tistpg_PlacardTable;
+static int ett_tistpg_TyreSetVariant;
+static int ett_tistpg_PressureVariantsList;
+static int ett_tistpg_PressureVariant;
+static int ett_tistpg_TyreData;
+static int ett_tistpg_T_currentTyrePressure;
+static int ett_tistpg_T_tyreSidewallInformation;
+static int ett_tistpg_T_currentInsideAirTemperature;
+static int ett_tistpg_T_recommendedTyrePressure;
+static int ett_tistpg_T_tin;
+static int ett_tistpg_T_sensorState;
+static int ett_tistpg_AppliedTyrePressure;
+static int ett_tistpg_TpgStationData;
+static int ett_tistpg_AppliedTyrePressures;
+static int ett_tistpg_TpgNotifContainer;
+static int ett_tistpg_TpgAutomation;
+static int ett_tistpg_TisProfile;
/* --- Module EVCSN-PDU-Descriptions --- --- --- */
-static gint ett_evcsn_EVChargingSpotNotificationPOIMessage;
-static gint ett_evcsn_ItsPOIHeader;
-static gint ett_evcsn_ItsEVCSNData;
-static gint ett_evcsn_SEQUENCE_SIZE_1_256_OF_ItsChargingStationData;
-static gint ett_evcsn_ItsChargingStationData;
-static gint ett_evcsn_ItsChargingSpots;
-static gint ett_evcsn_ItsChargingSpotDataElements;
-static gint ett_evcsn_ChargingSpotType;
-static gint ett_evcsn_ParkingPlacesData;
-static gint ett_evcsn_SpotAvailability;
+static int ett_evcsn_EVChargingSpotNotificationPOIMessage;
+static int ett_evcsn_ItsPOIHeader;
+static int ett_evcsn_ItsEVCSNData;
+static int ett_evcsn_SEQUENCE_SIZE_1_256_OF_ItsChargingStationData;
+static int ett_evcsn_ItsChargingStationData;
+static int ett_evcsn_ItsChargingSpots;
+static int ett_evcsn_ItsChargingSpotDataElements;
+static int ett_evcsn_ChargingSpotType;
+static int ett_evcsn_ParkingPlacesData;
+static int ett_evcsn_SpotAvailability;
/* --- Module EV-RechargingSpotReservation-PDU-Descriptions --- --- --- */
-static gint ett_evrsr_EV_RSR_MessageBody;
-static gint ett_evrsr_PreReservationRequestMessage;
-static gint ett_evrsr_PreReservationResponseMessage;
-static gint ett_evrsr_ReservationRequestMessage;
-static gint ett_evrsr_ReservationResponseMessage;
-static gint ett_evrsr_CancellationRequestMessage;
-static gint ett_evrsr_CancellationResponseMessage;
-static gint ett_evrsr_UpdateRequestMessage;
-static gint ett_evrsr_UpdateResponseMessage;
-static gint ett_evrsr_Payment_ID;
-static gint ett_evrsr_RechargingType;
-static gint ett_evrsr_SupportedPaymentTypes;
+static int ett_evrsr_EV_RSR_MessageBody;
+static int ett_evrsr_PreReservationRequestMessage;
+static int ett_evrsr_PreReservationResponseMessage;
+static int ett_evrsr_ReservationRequestMessage;
+static int ett_evrsr_ReservationResponseMessage;
+static int ett_evrsr_CancellationRequestMessage;
+static int ett_evrsr_CancellationResponseMessage;
+static int ett_evrsr_UpdateRequestMessage;
+static int ett_evrsr_UpdateResponseMessage;
+static int ett_evrsr_Payment_ID;
+static int ett_evrsr_RechargingType;
+static int ett_evrsr_SupportedPaymentTypes;
/* --- Module CPM-OriginatingStationContainers --- --- --- */
-static gint ett_cpm_OriginatingVehicleContainer;
-static gint ett_cpm_OriginatingRsuContainer;
-static gint ett_cpm_TrailerDataSet;
+static int ett_cpm_OriginatingVehicleContainer;
+static int ett_cpm_OriginatingRsuContainer;
+static int ett_cpm_TrailerDataSet;
/* --- Module CPM-PDU-Descriptions --- --- --- */
-static gint ett_cpm_CollectivePerceptionMessage;
-static gint ett_cpm_CpmPayload;
-static gint ett_cpm_ManagementContainer;
-static gint ett_cpm_WrappedCpmContainer;
-static gint ett_cpm_WrappedCpmContainers;
-static gint ett_cpm_MessageRateRange;
+static int ett_cpm_CollectivePerceptionMessage;
+static int ett_cpm_CpmPayload;
+static int ett_cpm_ManagementContainer;
+static int ett_cpm_WrappedCpmContainer;
+static int ett_cpm_WrappedCpmContainers;
+static int ett_cpm_MessageRateRange;
/* --- Module CPM-PerceivedObjectContainer --- --- --- */
-static gint ett_cpm_PerceivedObjectContainer;
-static gint ett_cpm_PerceivedObjects;
+static int ett_cpm_PerceivedObjectContainer;
+static int ett_cpm_PerceivedObjects;
/* --- Module CPM-PerceptionRegionContainer --- --- --- */
-static gint ett_cpm_PerceptionRegionContainer;
-static gint ett_cpm_PerceptionRegion;
-static gint ett_cpm_PerceivedObjectIds;
+static int ett_cpm_PerceptionRegionContainer;
+static int ett_cpm_PerceptionRegion;
+static int ett_cpm_PerceivedObjectIds;
/* --- Module CPM-SensorInformationContainer --- --- --- */
-static gint ett_cpm_SensorInformationContainer;
-static gint ett_cpm_SensorInformation;
+static int ett_cpm_SensorInformationContainer;
+static int ett_cpm_SensorInformation;
/* --- Module VAM-PDU-Descriptions --- --- --- */
-static gint ett_vam_VruAwareness;
-static gint ett_vam_VamParameters;
-static gint ett_vam_VruHighFrequencyContainer;
-static gint ett_vam_VruLowFrequencyContainer;
-static gint ett_vam_VruClusterInformationContainer;
-static gint ett_vam_VruClusterOperationContainer;
-static gint ett_vam_VruMotionPredictionContainer;
+static int ett_vam_VruAwareness;
+static int ett_vam_VamParameters;
+static int ett_vam_VruHighFrequencyContainer;
+static int ett_vam_VruLowFrequencyContainer;
+static int ett_vam_VruClusterInformationContainer;
+static int ett_vam_VruClusterOperationContainer;
+static int ett_vam_VruMotionPredictionContainer;
/* --- Module IMZM-PDU-Descriptions --- --- --- */
-static gint ett_imzm_InterferenceManagementZoneMessage;
-static gint ett_imzm_ImzmParameters;
-static gint ett_imzm_ImzmContainer;
+static int ett_imzm_InterferenceManagementZoneMessage;
+static int ett_imzm_ImzmParameters;
+static int ett_imzm_ImzmContainer;
// Deal with cause/subcause code management
static struct { CauseCodeType_enum cause; int* hf; } cause_to_subcause[] = {
@@ -5160,7 +5160,7 @@ dissect_its_Temperature(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_its_TimestampIts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(4398046511103), NULL, FALSE);
+ 0U, UINT64_C(4398046511103), NULL, FALSE);
return offset;
}
@@ -9492,7 +9492,7 @@ dissect_itsv1_SteeringWheelAngle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_itsv1_TimestampIts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(4398046511103), NULL, FALSE);
+ 0U, UINT64_C(4398046511103), NULL, FALSE);
return offset;
}
@@ -14998,7 +14998,7 @@ static const per_sequence_t gdd_GddStructure_sequence[] = {
static int
dissect_gdd_GddStructure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // GddStructure → GddAttributes → GddAttributes/_item → InternationalSign-destinationInformation → InternationalSign-destinationInformation/ioList → DestinationInformationIO → DestinationInformationIO/destPlace → DestinationPlace → GddStructure
+ // GddStructure -> GddAttributes -> GddAttributes/_item -> InternationalSign-destinationInformation -> InternationalSign-destinationInformation/ioList -> DestinationInformationIO -> DestinationInformationIO/destPlace -> DestinationPlace -> GddStructure
actx->pinfo->dissection_depth += 8;
increment_dissection_depth(actx->pinfo);
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -29560,8 +29560,8 @@ void proto_register_its(void)
void proto_reg_handoff_its(void)
{
- const char *subdissector[BTP_SUBDISS_SZ] = { "btpa.port", "btpb.port" };
- const guint16 ports[BTP_PORTS_SZ] = { ITS_WKP_DEN, ITS_WKP_CA, ITS_WKP_EVCSN, ITS_WKP_CHARGING, ITS_WKP_IVI, ITS_WKP_TPG, ITS_WKP_TLC_SSEM, ITS_WKP_GPC, ITS_WKP_TLC_SREM, ITS_WKP_RLT, ITS_WKP_TLM, ITS_WKP_CPS };
+ static const char *subdissector[BTP_SUBDISS_SZ] = { "btpa.port", "btpb.port" };
+ static const guint16 ports[BTP_PORTS_SZ] = { ITS_WKP_DEN, ITS_WKP_CA, ITS_WKP_EVCSN, ITS_WKP_CHARGING, ITS_WKP_IVI, ITS_WKP_TPG, ITS_WKP_TLC_SSEM, ITS_WKP_GPC, ITS_WKP_TLC_SREM, ITS_WKP_RLT, ITS_WKP_TLM, ITS_WKP_CPS };
int sdIdx, pIdx;
// Register well known ports to btp subdissector table (BTP A and B)
diff --git a/epan/dissectors/packet-iua.c b/epan/dissectors/packet-iua.c
index 4ef24b3aa0..ea9ca11ed7 100644
--- a/epan/dissectors/packet-iua.c
+++ b/epan/dissectors/packet-iua.c
@@ -34,7 +34,7 @@ static module_t *iua_module;
static dissector_table_t lapd_gsm_sapi_dissector_table;
/* Whether to use GSM SAPI vals or not */
-static gboolean global_iua_gsm_sapis = TRUE;
+static bool global_iua_gsm_sapis = true;
/* Initialize the protocol and registered fields */
static int proto_iua;
@@ -78,10 +78,10 @@ static gint ett_iua_parameter;
/* stores the current SAPI value */
static guint8 sapi_val;
-static gboolean sapi_val_assigned = FALSE;
+static gboolean sapi_val_assigned;
/* option setable via preferences, default is plain RFC 3057 */
-static gboolean support_IG = FALSE;
+static bool support_IG;
static dissector_handle_t q931_handle;
static dissector_handle_t x25_handle;
diff --git a/epan/dissectors/packet-iuup.c b/epan/dissectors/packet-iuup.c
index 2648643dc8..e189d0a6fa 100644
--- a/epan/dissectors/packet-iuup.c
+++ b/epan/dissectors/packet-iuup.c
@@ -124,12 +124,12 @@ static expert_field ei_iuup_time_align;
static expert_field ei_iuup_procedure_indicator;
static expert_field ei_iuup_pdu_type;
-static wmem_map_t* circuits = NULL;
+static wmem_map_t* circuits;
static dissector_handle_t iuup_handle;
-static gboolean dissect_fields = FALSE;
-static gboolean two_byte_pseudoheader = FALSE;
+static bool dissect_fields;
+static bool two_byte_pseudoheader;
#define PDUTYPE_DATA_WITH_CRC 0
#define PDUTYPE_DATA_NO_CRC 1
diff --git a/epan/dissectors/packet-iwarp-ddp-rdmap.c b/epan/dissectors/packet-iwarp-ddp-rdmap.c
index 0fc3373d66..b8d61135df 100644
--- a/epan/dissectors/packet-iwarp-ddp-rdmap.c
+++ b/epan/dissectors/packet-iwarp-ddp-rdmap.c
@@ -320,7 +320,7 @@ static const value_string rdma_atomic_opcode_names[] = {
static heur_dissector_list_t rdmap_heur_subdissector_list;
-static gboolean iwarp_rdma_send_reassemble = TRUE;
+static bool iwarp_rdma_send_reassemble = true;
static reassembly_table iwarp_rdma_send_reassembly_table;
static void
diff --git a/epan/dissectors/packet-iwarp-mpa.c b/epan/dissectors/packet-iwarp-mpa.c
index 785f2affe5..f1e6d5f8c6 100644
--- a/epan/dissectors/packet-iwarp-mpa.c
+++ b/epan/dissectors/packet-iwarp-mpa.c
@@ -103,7 +103,7 @@ static expert_field ei_mpa_reject_bit_responder;
static expert_field ei_mpa_bad_length;
/* handles of our subdissectors */
-static dissector_handle_t ddp_rdmap_handle = NULL;
+static dissector_handle_t ddp_rdmap_handle;
static const value_string mpa_messages[] = {
{ MPA_REQUEST_FRAME, "MPA Request Frame" },
diff --git a/epan/dissectors/packet-ixiatrailer.c b/epan/dissectors/packet-ixiatrailer.c
index 41c3312542..b74e622f2e 100644
--- a/epan/dissectors/packet-ixiatrailer.c
+++ b/epan/dissectors/packet-ixiatrailer.c
@@ -46,7 +46,7 @@ static const value_string ixiatrailer_ftype_timestamp[] = {
};
/* Preference settings */
-static gboolean ixiatrailer_summary_in_tree = TRUE;
+static bool ixiatrailer_summary_in_tree = true;
static int proto_ixiatrailer;
static gint ett_ixiatrailer;
diff --git a/epan/dissectors/packet-ixveriwave.c b/epan/dissectors/packet-ixveriwave.c
index f6e000f508..cd79431c50 100644
--- a/epan/dissectors/packet-ixveriwave.c
+++ b/epan/dissectors/packet-ixveriwave.c
@@ -41,7 +41,7 @@ typedef struct ifg_info {
guint64 current_start_time;
} ifg_info;
-static frame_end_data previous_frame_data = {0,0};
+static frame_end_data previous_frame_data;
/* static int ieee80211_mhz2ieee(int freq, int flags); */
@@ -1509,7 +1509,7 @@ ethernettap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_t
int offset = 0;
tvbuff_t *next_tvb;
guint length, length_remaining;
- gboolean vwf_txf = FALSE;
+ bool vwf_txf = false;
ifg_info *p_ifg_info;
proto_item *ti;
@@ -1634,7 +1634,7 @@ decode_ht_sig(proto_tree *tree, tvbuff_t *tvb, int offset,
guint bw;
guint stbc_streams;
guint feccoding;
- gboolean short_gi;
+ bool short_gi;
guint ness;
/* HT-SIG1 */
@@ -1681,7 +1681,7 @@ decode_ht_sig(proto_tree *tree, tvbuff_t *tvb, int offset,
proto_tree_add_item_ret_boolean(tree, hf_radiotap_ht_short_gi,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
&short_gi);
- phdr->phy_info.info_11n.has_short_gi = TRUE;
+ phdr->phy_info.info_11n.has_short_gi = true;
phdr->phy_info.info_11n.short_gi = short_gi;
proto_tree_add_item_ret_uint(tree, hf_radiotap_ht_ness,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
@@ -1702,14 +1702,14 @@ decode_vht_sig(proto_tree *tree, tvbuff_t *tvb, int offset,
struct ieee_802_11_phdr *phdr)
{
guint bw;
- gboolean stbc;
+ bool stbc;
guint group_id;
guint partial_aid;
- gboolean txop_ps_not_allowed;
- gboolean short_gi;
- gboolean short_gi_nsym_disambig;
- gboolean ldpc_ofdmsymbol;
- gboolean beamformed;
+ bool txop_ps_not_allowed;
+ bool short_gi;
+ bool short_gi_nsym_disambig;
+ bool ldpc_ofdmsymbol;
+ bool beamformed;
/* VHT-SIG-A1 */
proto_tree_add_item_ret_uint(tree, hf_radiotap_vht_bw,
@@ -1739,7 +1739,7 @@ decode_vht_sig(proto_tree *tree, tvbuff_t *tvb, int offset,
proto_tree_add_item_ret_boolean(tree, hf_radiotap_vht_stbc,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
&stbc);
- phdr->phy_info.info_11ac.has_stbc = TRUE;
+ phdr->phy_info.info_11ac.has_stbc = true;
phdr->phy_info.info_11ac.stbc = stbc;
proto_tree_add_item_ret_uint(tree, hf_radiotap_vht_group_id,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
@@ -1771,7 +1771,7 @@ decode_vht_sig(proto_tree *tree, tvbuff_t *tvb, int offset,
proto_tree_add_item_ret_boolean(tree, hf_radiotap_vht_txop_ps_not_allowed,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
&txop_ps_not_allowed);
- phdr->phy_info.info_11ac.has_txop_ps_not_allowed = TRUE;
+ phdr->phy_info.info_11ac.has_txop_ps_not_allowed = true;
phdr->phy_info.info_11ac.txop_ps_not_allowed = txop_ps_not_allowed;
offset += 3;
@@ -1779,12 +1779,12 @@ decode_vht_sig(proto_tree *tree, tvbuff_t *tvb, int offset,
proto_tree_add_item_ret_boolean(tree, hf_radiotap_vht_short_gi,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
&short_gi);
- phdr->phy_info.info_11ac.has_short_gi = TRUE;
+ phdr->phy_info.info_11ac.has_short_gi = true;
phdr->phy_info.info_11ac.short_gi = short_gi;
proto_tree_add_item_ret_boolean(tree, hf_radiotap_vht_short_gi_nsym_disambig,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
&short_gi_nsym_disambig);
- phdr->phy_info.info_11ac.has_short_gi_nsym_disambig = TRUE;
+ phdr->phy_info.info_11ac.has_short_gi_nsym_disambig = true;
phdr->phy_info.info_11ac.short_gi_nsym_disambig = short_gi_nsym_disambig;
if ((group_id == 0) || (group_id == 63)) // SU VHT type
{
@@ -1810,7 +1810,7 @@ decode_vht_sig(proto_tree *tree, tvbuff_t *tvb, int offset,
proto_tree_add_item_ret_boolean(tree, hf_radiotap_vht_beamformed,
tvb, offset, 3, ENC_LITTLE_ENDIAN,
&beamformed);
- phdr->phy_info.info_11ac.has_beamformed = TRUE;
+ phdr->phy_info.info_11ac.has_beamformed = true;
phdr->phy_info.info_11ac.beamformed = beamformed;
}
else
@@ -1909,7 +1909,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
ifg_info *p_ifg_info;
proto_item *ti;
- gboolean short_preamble;
+ bool short_preamble;
guint8 nss;
struct ieee_802_11_phdr phdr;
@@ -1984,7 +1984,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if ((vw_rflags & FLAGS_CHAN_HT) || (vw_rflags & FLAGS_CHAN_VHT)) {
if (vw_rflags & FLAGS_CHAN_VHT) {
phdr.phy = PHDR_802_11_PHY_11AC;
- phdr.phy_info.info_11ac.has_short_gi = TRUE;
+ phdr.phy_info.info_11ac.has_short_gi = true;
phdr.phy_info.info_11ac.short_gi = ((vw_rflags & FLAGS_CHAN_SHORTGI) != 0);
/*
* XXX - this probably has only one user, so only one MCS index
@@ -2002,7 +2002,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
phdr.phy_info.info_11n.has_mcs_index = TRUE;
phdr.phy_info.info_11n.mcs_index = rate_mcs_index;
- phdr.phy_info.info_11n.has_short_gi = TRUE;
+ phdr.phy_info.info_11n.has_short_gi = true;
phdr.phy_info.info_11n.short_gi = ((vw_rflags & FLAGS_CHAN_SHORTGI) != 0);
phdr.phy_info.info_11n.has_greenfield = TRUE;
@@ -2026,7 +2026,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
if (vw_chanflags & CHAN_CCK) {
phdr.phy = PHDR_802_11_PHY_11B;
- phdr.phy_info.info_11b.has_short_preamble = TRUE;
+ phdr.phy_info.info_11b.has_short_preamble = true;
phdr.phy_info.info_11b.short_preamble = short_preamble;
}
phdr.has_data_rate = TRUE;
@@ -2065,7 +2065,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (dbm != 100) {
proto_tree_add_item(tap_tree, hf_radiotap_dbm_antd, tvb, offset, 1, ENC_NA);
}
- offset+=2; /* also skips paddng octet */
+ offset+=2; /* also skips padding octet */
/* VeriWave flags */
vw_flags = tvb_get_letohs(tvb, offset);
@@ -2247,7 +2247,7 @@ wlantap_dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
next_tvb = tvb_new_subset_remaining(tvb, length);
- /* dissect the 802.11 radio informaton and header next */
+ /* dissect the 802.11 radio information and header next */
call_dissector_with_data(ieee80211_radio_handle, next_tvb, pinfo, tree, &phdr);
}
@@ -2322,7 +2322,7 @@ wlantap_dissect_octo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{
/* CCK */
phdr.phy = PHDR_802_11_PHY_11B;
- phdr.phy_info.info_11b.has_short_preamble = TRUE;
+ phdr.phy_info.info_11b.has_short_preamble = true;
phdr.phy_info.info_11b.short_preamble = short_preamble;
}
break;
@@ -2515,7 +2515,7 @@ wlantap_dissect_octo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_uint(vw_infoC_tree, hf_radiotap_vht_mu_mimo_flg,
tvb, offset, 1, vht_mu_mimo_flg);
- // extract user Postiion in case of mu-mimo
+ // extract user Position in case of mu-mimo
proto_tree_add_item(vw_infoC_tree, hf_radiotap_vht_user_pos, tvb, offset, 1, ENC_NA);
} else {
@@ -2941,7 +2941,7 @@ wlantap_dissect_octo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* There's data to dissect; grab the rest of the frame. */
next_tvb = tvb_new_subset_remaining(tvb, length);
- /* dissect the 802.11 radio informaton and header next */
+ /* dissect the 802.11 radio information and header next */
call_dissector_with_data(ieee80211_radio_handle, next_tvb, pinfo, tree, &phdr);
}
}
@@ -4052,7 +4052,7 @@ framing signal deasserted. this is caused by software setting the drain all reg
{ "Layer 1 Info[1]", "ixveriwave.info.layer_1_info_1",
FT_UINT24, BASE_DEC, NULL, 0x020000, NULL, HFILL } },
{ &hf_radiotap_vw_info_rx_vht_frame_received_with_vht_sig_b_length,
- { "VHT frame received with the use of the VHT_SIG_B.LENGTH", "ixveriwave.info.vht_frame_received_with_vht_sig_b_lengt",
+ { "VHT frame received with the use of the VHT_SIG_B.LENGTH", "ixveriwave.info.vht_frame_received_with_vht_sig_b_length",
FT_BOOLEAN, 24, NULL, 0x040000, NULL, HFILL } },
{ &hf_radiotap_vw_info_rx_vht_frame_received_without_vht_sig_b_length,
{ "VHT frame received without the use of VHT_SIG_B.LENGTH", "ixveriwave.info.vht_frame_received_without_vht_sig_b_length",
diff --git a/epan/dissectors/packet-json.c b/epan/dissectors/packet-json.c
index bec1680b71..c7e9f4e841 100644
--- a/epan/dissectors/packet-json.c
+++ b/epan/dissectors/packet-json.c
@@ -81,9 +81,9 @@ static gint ett_json_object_raw;
static gint ett_json_member_raw;
/* Preferences */
-static gboolean json_compact = FALSE;
+static bool json_compact;
-static gboolean json_raw = FALSE;
+static bool json_raw;
/* Determine whether to hide the tree of original form or root item of compact or raw form
* based on the enabled status of compact_form and raw_form preferences.
@@ -92,13 +92,13 @@ static gboolean json_raw = FALSE;
* compact_form or raw_form is TRUE, then hide the root item of compact or raw form and put
* the content of compact or raw form under the tree item of JSON protocol directly.
*/
-static gboolean auto_hide = FALSE;
+static bool auto_hide;
-static gboolean ignore_leading_bytes = FALSE;
+static bool ignore_leading_bytes;
-static gboolean hide_extended_path_based_filtering = FALSE;
+static bool hide_extended_path_based_filtering;
-static gboolean unescape_strings = FALSE;
+static bool unescape_strings;
static tvbparse_wanted_t* want;
static tvbparse_wanted_t* want_ignore;
diff --git a/epan/dissectors/packet-json_3gpp.c b/epan/dissectors/packet-json_3gpp.c
index f32012922e..d825c98b51 100644
--- a/epan/dissectors/packet-json_3gpp.c
+++ b/epan/dissectors/packet-json_3gpp.c
@@ -33,11 +33,14 @@
#include "packet-gtpv2.h"
#include "packet-gsm_a_common.h"
#include "packet-json.h"
+#include "packet-http.h"
#include "packet-http2.h"
void proto_register_json_3gpp(void);
+void proto_reg_handoff_json_3gpp(void);
static int proto_json_3gpp;
+static int proto_http;
static gint ett_json_base64decoded_eps_ie;
static gint ett_json_base64decoded_nas5g_ie;
@@ -229,7 +232,7 @@ dissect_base64decoded_eps_ie(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo
add_new_data_source(pinfo, bin_tvb, "Base64 decoded");
ti = proto_tree_add_item(tree, hf_json_3gpp_binary_data, bin_tvb, 0, bin_tvb_length, ENC_NA);
sub_tree = proto_item_add_subtree(ti, ett_json_base64decoded_eps_ie);
- dissect_gtpv2_ie_common(bin_tvb, pinfo, sub_tree, 0, 0/* Message type 0, Reserved */, NULL);
+ dissect_gtpv2_ie_common(bin_tvb, pinfo, sub_tree, 0, 0/* Message type 0, Reserved */, NULL, 0);
return;
}
@@ -270,7 +273,7 @@ dissect_base64decoded_nas5g_ie(tvbuff_t* tvb, proto_tree* tree, packet_info* pin
static void
dissect_3gpp_supportfeatures(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo, int offset, int len, const char* key_str _U_, gboolean use_compact)
{
- const char *path;
+ const char *path = NULL;
/* TS 29.571 ch5.2.2
* A string used to indicate the features supported by an API that is used as defined in clause 6.6 in 3GPP TS 29.500 [25].
@@ -284,10 +287,21 @@ dissect_3gpp_supportfeatures(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo
* all features that would be represented by characters that are not present in the string are not supported.
*/
- /* Exptect to have :path from HTTP2 here, if not return */
- path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, FALSE);
- if (!path) {
- path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, TRUE);
+ /* Expect to have :path from HTTP2 here, if not return */
+ if (proto_is_frame_protocol(pinfo->layers, "http2")) {
+ path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, FALSE);
+ if (!path) {
+ path = http2_get_header_value(pinfo, HTTP2_HEADER_PATH, TRUE);
+ }
+ } else if (proto_is_frame_protocol(pinfo->layers, "http")) {
+ /* 3GPP TS 29.500 says the service based interfaces use HTTP/2,
+ * but that doesn't stop implementations like OAI from using
+ * HTTP/1.1 with a 2.0 version string.
+ */
+ http_req_res_t* curr_req_res = (http_req_res_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_http, HTTP_PROTO_DATA_REQRES);
+ if (curr_req_res) {
+ path = curr_req_res->request_uri;
+ }
}
if (!path) {
return;
@@ -1526,6 +1540,12 @@ proto_register_json_3gpp(void)
register_static_headers();
}
+void
+proto_reg_handoff_json_3gpp(void)
+{
+ proto_http = proto_get_id_by_filter_name("http");
+}
+
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*
diff --git a/epan/dissectors/packet-jxta.c b/epan/dissectors/packet-jxta.c
index ac17c1d10d..d3837aa576 100644
--- a/epan/dissectors/packet-jxta.c
+++ b/epan/dissectors/packet-jxta.c
@@ -45,7 +45,7 @@ static const gchar JXTA_WELCOME_MSG_SIG[] = { 'J', 'X', 'T', 'A', 'H', 'E', 'L',
static const gchar* JXTA_WELCOME_MSG_VERSION_1_1 = "1.1";
static const gchar* JXTA_WELCOME_MSG_VERSION_3_0 = "3.0";
-static const int JXTA_MSG_VERSION_1 = 0;
+static const int JXTA_MSG_VERSION_1;
static const int JXTA_MSG_VERSION_2 = 1;
static const int JXTAMSG1_ELMFLAG_TYPE = 1 << 0;
@@ -62,10 +62,10 @@ static int proto_jxta;
static int proto_message_jxta;
static int jxta_tap;
-static dissector_table_t media_type_dissector_table = NULL;
-static dissector_handle_t media_handle = NULL;
-static dissector_handle_t stream_jxta_handle = NULL;
-static dissector_handle_t tls_handle = NULL;
+static dissector_table_t media_type_dissector_table;
+static dissector_handle_t media_handle;
+static dissector_handle_t stream_jxta_handle;
+static dissector_handle_t tls_handle;
static int hf_uri_addr;
static int hf_uri_src;
@@ -143,8 +143,8 @@ static int uri_address_type = -1;
/**
* global preferences
**/
-static gboolean gDESEGMENT = TRUE;
-static gboolean gMSG_MEDIA = TRUE;
+static bool gDESEGMENT = true;
+static bool gMSG_MEDIA = true;
static dissector_handle_t jxta_udp_handle;
diff --git a/epan/dissectors/packet-k12.c b/epan/dissectors/packet-k12.c
index 58863a0a24..3fa521a873 100644
--- a/epan/dissectors/packet-k12.c
+++ b/epan/dissectors/packet-k12.c
@@ -61,10 +61,10 @@ static dissector_handle_t fp_handle;
extern int proto_sscop;
extern int proto_fp;
-static wmem_tree_t* port_handles = NULL;
-static uat_t* k12_uat = NULL;
-static k12_handles_t* k12_handles = NULL;
-static guint nk12_handles = 0;
+static wmem_tree_t* port_handles;
+static uat_t* k12_uat;
+static k12_handles_t* k12_handles;
+static guint nk12_handles;
static const value_string k12_port_types[] = {
{ K12_PORT_DS1, "Ds1" },
diff --git a/epan/dissectors/packet-kafka.c b/epan/dissectors/packet-kafka.c
index bfd6c4cf83..071a039578 100644
--- a/epan/dissectors/packet-kafka.c
+++ b/epan/dissectors/packet-kafka.c
@@ -47,6 +47,7 @@ static int hf_kafka_client_host;
static int hf_kafka_required_acks;
static int hf_kafka_timeout;
static int hf_kafka_topic_name;
+static int hf_kafka_topic_id;
static int hf_kafka_transactional_id;
static int hf_kafka_transaction_result;
static int hf_kafka_transaction_timeout;
@@ -132,11 +133,13 @@ static int hf_kafka_sasl_mechanism;
static int hf_kafka_num_partitions;
static int hf_kafka_zk_version;
static int hf_kafka_is_new_replica;
+static int hf_kafka_leader_recovery_state;
static int hf_kafka_config_key;
static int hf_kafka_config_value;
static int hf_kafka_commit_timestamp;
static int hf_kafka_retention_time;
static int hf_kafka_forgotten_topic_name;
+static int hf_kafka_forgotten_topic_id;
static int hf_kafka_forgotten_topic_partition;
static int hf_kafka_fetch_session_id;
static int hf_kafka_fetch_session_epoch;
@@ -159,10 +162,13 @@ static int hf_kafka_acl_permission_type;
static int hf_kafka_config_resource_type;
static int hf_kafka_config_resource_name;
static int hf_kafka_config_include_synonyms;
+static int hf_kafka_config_include_documentation;
static int hf_kafka_config_source;
static int hf_kafka_config_readonly;
static int hf_kafka_config_default;
static int hf_kafka_config_sensitive;
+static int hf_kafka_config_data_type;
+static int hf_kafka_config_documentation;
static int hf_kafka_config_operation;
static int hf_kafka_log_dir;
static int hf_kafka_segment_size;
@@ -190,6 +196,18 @@ static int hf_kafka_tagged_field_tag;
static int hf_kafka_tagged_field_data;
static int hf_kafka_client_software_name;
static int hf_kafka_client_software_version;
+static int hf_kafka_is_kraft_controller;
+static int hf_kafka_topic_inclusion_type;
+static int hf_kafka_delete_partition;
+static int hf_kafka_join_reason;
+static int hf_kafka_leave_reason;
+static int hf_kafka_skip_assignment;
+static int hf_kafka_producer_id_start;
+static int hf_kafka_producer_id_len;
+static int hf_kafka_group_id;
+static int hf_kafka_member_epoch;
+static int hf_kafka_endpoint_type;
+static int hf_kafka_last_fetched_epoch;
static int ett_kafka;
static int ett_kafka_batch;
@@ -257,6 +275,7 @@ static int ett_kafka_record_error;
static expert_field ei_kafka_request_missing;
static expert_field ei_kafka_unknown_api_key;
static expert_field ei_kafka_unsupported_api_version;
+static expert_field ei_kafka_assumed_api_version;
static expert_field ei_kafka_bad_string_length;
static expert_field ei_kafka_bad_bytes_length;
static expert_field ei_kafka_bad_array_length;
@@ -267,6 +286,7 @@ static expert_field ei_kafka_bad_decompression_length;
static expert_field ei_kafka_zero_decompression_length;
static expert_field ei_kafka_unknown_message_magic;
static expert_field ei_kafka_pdu_length_mismatch;
+static expert_field ei_kafka_zero_field_length;
typedef gint16 kafka_api_key_t;
typedef gint16 kafka_api_version_t;
@@ -286,54 +306,73 @@ typedef struct _kafka_api_info_t {
#define KAFKA_TCP_DEFAULT_RANGE "9092"
-#define KAFKA_PRODUCE 0
-#define KAFKA_FETCH 1
-#define KAFKA_OFFSETS 2
-#define KAFKA_METADATA 3
-#define KAFKA_LEADER_AND_ISR 4
-#define KAFKA_STOP_REPLICA 5
-#define KAFKA_UPDATE_METADATA 6
-#define KAFKA_CONTROLLED_SHUTDOWN 7
-#define KAFKA_OFFSET_COMMIT 8
-#define KAFKA_OFFSET_FETCH 9
-#define KAFKA_FIND_COORDINATOR 10
-#define KAFKA_JOIN_GROUP 11
-#define KAFKA_HEARTBEAT 12
-#define KAFKA_LEAVE_GROUP 13
-#define KAFKA_SYNC_GROUP 14
-#define KAFKA_DESCRIBE_GROUPS 15
-#define KAFKA_LIST_GROUPS 16
-#define KAFKA_SASL_HANDSHAKE 17
-#define KAFKA_API_VERSIONS 18
-#define KAFKA_CREATE_TOPICS 19
-#define KAFKA_DELETE_TOPICS 20
-#define KAFKA_DELETE_RECORDS 21
-#define KAFKA_INIT_PRODUCER_ID 22
-#define KAFKA_OFFSET_FOR_LEADER_EPOCH 23
-#define KAFKA_ADD_PARTITIONS_TO_TXN 24
-#define KAFKA_ADD_OFFSETS_TO_TXN 25
-#define KAFKA_END_TXN 26
-#define KAFKA_WRITE_TXN_MARKERS 27
-#define KAFKA_TXN_OFFSET_COMMIT 28
-#define KAFKA_DESCRIBE_ACLS 29
-#define KAFKA_CREATE_ACLS 30
-#define KAFKA_DELETE_ACLS 31
-#define KAFKA_DESCRIBE_CONFIGS 32
-#define KAFKA_ALTER_CONFIGS 33
-#define KAFKA_ALTER_REPLICA_LOG_DIRS 34
-#define KAFKA_DESCRIBE_LOG_DIRS 35
-#define KAFKA_SASL_AUTHENTICATE 36
-#define KAFKA_CREATE_PARTITIONS 37
-#define KAFKA_CREATE_DELEGATION_TOKEN 38
-#define KAFKA_RENEW_DELEGATION_TOKEN 39
-#define KAFKA_EXPIRE_DELEGATION_TOKEN 40
-#define KAFKA_DESCRIBE_DELEGATION_TOKEN 41
-#define KAFKA_DELETE_GROUPS 42
-#define KAFKA_ELECT_LEADERS 43
-#define KAFKA_INC_ALTER_CONFIGS 44
-#define KAFKA_ALTER_PARTITION_REASSIGNMENTS 45
-#define KAFKA_LIST_PARTITION_REASSIGNMENTS 46
-#define KAFKA_OFFSET_DELETE 47
+#define KAFKA_PRODUCE 0
+#define KAFKA_FETCH 1
+#define KAFKA_OFFSETS 2
+#define KAFKA_METADATA 3
+#define KAFKA_LEADER_AND_ISR 4
+#define KAFKA_STOP_REPLICA 5
+#define KAFKA_UPDATE_METADATA 6
+#define KAFKA_CONTROLLED_SHUTDOWN 7
+#define KAFKA_OFFSET_COMMIT 8
+#define KAFKA_OFFSET_FETCH 9
+#define KAFKA_FIND_COORDINATOR 10
+#define KAFKA_JOIN_GROUP 11
+#define KAFKA_HEARTBEAT 12
+#define KAFKA_LEAVE_GROUP 13
+#define KAFKA_SYNC_GROUP 14
+#define KAFKA_DESCRIBE_GROUPS 15
+#define KAFKA_LIST_GROUPS 16
+#define KAFKA_SASL_HANDSHAKE 17
+#define KAFKA_API_VERSIONS 18
+#define KAFKA_CREATE_TOPICS 19
+#define KAFKA_DELETE_TOPICS 20
+#define KAFKA_DELETE_RECORDS 21
+#define KAFKA_INIT_PRODUCER_ID 22
+#define KAFKA_OFFSET_FOR_LEADER_EPOCH 23
+#define KAFKA_ADD_PARTITIONS_TO_TXN 24
+#define KAFKA_ADD_OFFSETS_TO_TXN 25
+#define KAFKA_END_TXN 26
+#define KAFKA_WRITE_TXN_MARKERS 27
+#define KAFKA_TXN_OFFSET_COMMIT 28
+#define KAFKA_DESCRIBE_ACLS 29
+#define KAFKA_CREATE_ACLS 30
+#define KAFKA_DELETE_ACLS 31
+#define KAFKA_DESCRIBE_CONFIGS 32
+#define KAFKA_ALTER_CONFIGS 33
+#define KAFKA_ALTER_REPLICA_LOG_DIRS 34
+#define KAFKA_DESCRIBE_LOG_DIRS 35
+#define KAFKA_SASL_AUTHENTICATE 36
+#define KAFKA_CREATE_PARTITIONS 37
+#define KAFKA_CREATE_DELEGATION_TOKEN 38
+#define KAFKA_RENEW_DELEGATION_TOKEN 39
+#define KAFKA_EXPIRE_DELEGATION_TOKEN 40
+#define KAFKA_DESCRIBE_DELEGATION_TOKEN 41
+#define KAFKA_DELETE_GROUPS 42
+#define KAFKA_ELECT_LEADERS 43
+#define KAFKA_INC_ALTER_CONFIGS 44
+#define KAFKA_ALTER_PARTITION_REASSIGNMENTS 45
+#define KAFKA_LIST_PARTITION_REASSIGNMENTS 46
+#define KAFKA_OFFSET_DELETE 47
+#define KAFKA_DESCRIBE_CLIENT_QUOTAS 48
+#define KAFKA_ALTER_CLIENT_QUOTAS 49
+#define KAFKA_DESCRIBE_USER_SCRAM_CREDENTIALS 50
+#define KAFKA_ALTER_USER_SCRAM_CREDENTIALS 51
+#define KAFKA_DESCRIBE_QUORUM 55
+#define KAFKA_ALTER_PARTITION 56
+#define KAFKA_UPDATE_FEATURES 57
+#define KAFKA_ENVELOPE 58
+#define KAFKA_DESCRIBE_CLUSTER 60
+#define KAFKA_DESCRIBE_PRODUCERS 61
+#define KAFKA_UNREGISTER_BROKER 64
+#define KAFKA_DESCRIBE_TRANSACTIONS 65
+#define KAFKA_LIST_TRANSACTIONS 66
+#define KAFKA_ALLOCATE_PRODUCER_IDS 67
+#define KAFKA_CONSUMER_GROUP_HEARTBEAT 68
+#define KAFKA_CONSUMER_GROUP_DESCRIBE 69
+#define KAFKA_GET_TELEMETRY_SUBSCRIPTIONS 71
+#define KAFKA_PUSH_TELEMETRY 72
+#define KAFKA_LIST_CLIENT_METRICS_RESOURCES 74
/*
* Check for message changes here:
@@ -349,33 +388,33 @@ typedef struct _kafka_api_info_t {
*/
static const kafka_api_info_t kafka_apis[] = {
{ KAFKA_PRODUCE, "Produce",
- 0, 8, -1 },
+ 0, 11, 9 },
{ KAFKA_FETCH, "Fetch",
- 0, 11, -1 },
+ 0, 16, 12 },
{ KAFKA_OFFSETS, "Offsets",
- 0, 5, -1 },
+ 0, 8, 6 },
{ KAFKA_METADATA, "Metadata",
- 0, 9, 9 },
+ 0, 12, 9 },
{ KAFKA_LEADER_AND_ISR, "LeaderAndIsr",
- 0, 4, 4 },
+ 0, 7, 4 },
{ KAFKA_STOP_REPLICA, "StopReplica",
- 0, 2, 2 },
+ 0, 4, 2 },
{ KAFKA_UPDATE_METADATA, "UpdateMetadata",
- 0, 6, 6 },
+ 0, 8, 6 },
{ KAFKA_CONTROLLED_SHUTDOWN, "ControlledShutdown",
0, 3, 3 },
{ KAFKA_OFFSET_COMMIT, "OffsetCommit",
0, 8, 8 },
{ KAFKA_OFFSET_FETCH, "OffsetFetch",
- 0, 7, 6 },
+ 0, 9, 6 },
{ KAFKA_FIND_COORDINATOR, "FindCoordinator",
- 0, 3, 3 },
+ 0, 5, 3 },
{ KAFKA_JOIN_GROUP, "JoinGroup",
- 0, 7, 6 },
+ 0, 9, 6 },
{ KAFKA_HEARTBEAT, "Heartbeat",
0, 4, 4 },
{ KAFKA_LEAVE_GROUP, "LeaveGroup",
- 0, 4, 4 },
+ 0, 5, 4 },
{ KAFKA_SYNC_GROUP, "SyncGroup",
0, 5, 4 },
{ KAFKA_DESCRIBE_GROUPS, "DescribeGroups",
@@ -387,13 +426,13 @@ static const kafka_api_info_t kafka_apis[] = {
{ KAFKA_API_VERSIONS, "ApiVersions",
0, 3, 3 },
{ KAFKA_CREATE_TOPICS, "CreateTopics",
- 0, 5, 5 },
+ 0, 7, 5 },
{ KAFKA_DELETE_TOPICS, "DeleteTopics",
- 0, 4, 4 },
+ 0, 6, 4 },
{ KAFKA_DELETE_RECORDS, "DeleteRecords",
0, 1, -1 },
{ KAFKA_INIT_PRODUCER_ID, "InitProducerId",
- 0, 3, 2 },
+ 0, 5, 2 },
{ KAFKA_OFFSET_FOR_LEADER_EPOCH, "OffsetForLeaderEpoch",
0, 3, -1 },
{ KAFKA_ADD_PARTITIONS_TO_TXN, "AddPartitionsToTxn",
@@ -413,7 +452,7 @@ static const kafka_api_info_t kafka_apis[] = {
{ KAFKA_DELETE_ACLS, "DeleteAcls",
0, 2, 2 },
{ KAFKA_DESCRIBE_CONFIGS, "DescribeConfigs",
- 0, 2, -1 },
+ 0, 4, 4 },
{ KAFKA_ALTER_CONFIGS, "AlterConfigs",
0, 1, -1 },
{ KAFKA_ALTER_REPLICA_LOG_DIRS, "AlterReplicaLogDirs",
@@ -442,8 +481,12 @@ static const kafka_api_info_t kafka_apis[] = {
0, 0, 0 },
{ KAFKA_LIST_PARTITION_REASSIGNMENTS, "ListPartitionReassignments",
0, 0, 0 },
- { KAFKA_OFFSET_DELETE, "OffsetDelete",
+ { KAFKA_OFFSET_DELETE, "OffsetDelete",
0, 0, -1 },
+ { KAFKA_DESCRIBE_CLUSTER, "DescribeCluster",
+ 0, 1, 0 },
+ { KAFKA_ALLOCATE_PRODUCER_IDS, "AllocateProducerIds",
+ 0, 0, 0 },
};
/*
@@ -544,6 +587,38 @@ static const value_string kafka_errors[] = {
{ 86, "Deleting offsets of a topic is forbidden while the consumer group is actively subscribed to it" },
{ 87, "This record has failed the validation on broker and hence will be rejected" },
{ 88, "There are unstable offsets that need to be cleared" },
+ { 89, "The throttling quota has been exceeded." },
+ { 90, "There is a newer producer with the same transactionalId which fences the current one." },
+ { 91, "A request illegally referred to a resource that does not exist." },
+ { 92, "A request illegally referred to the same resource twice." },
+ { 93, "Requested credential would not meet criteria for acceptability." },
+ { 94, "Indicates that the either the sender or recipient of a voter-only request is not one of the expected voters." },
+ { 95, "The given update version was invalid." },
+ { 96, "Unable to update finalized features due to an unexpected server error." },
+ { 97, "Request principal deserialization failed during forwarding. This indicates an internal error on the broker cluster security setup." },
+ { 98, "Requested snapshot was not found." },
+ { 99, "Requested position is not greater than or equal to zero, and less than the size of the snapshot." },
+ { 100, "This server does not host this topic ID." },
+ { 101, "This broker ID is already in use." },
+ { 102, "The given broker ID was not registered." },
+ { 103, "The log's topic ID did not match the topic ID in the request." },
+ { 104, "The clusterId in the request does not match that found on the server." },
+ { 105, "The transactionalId could not be found." },
+ { 106, "The fetch session encountered inconsistent topic ID usage." },
+ { 107, "The new ISR contains at least one ineligible replica." },
+ { 108, "The AlterPartition request successfully updated the partition state but the leader has changed." },
+ { 109, "The requested offset is moved to tiered storage." },
+ { 110, "The member epoch is fenced by the group coordinator. The member must abandon all its partitions and rejoin." },
+ { 111, "The instance ID is still used by another member in the consumer group. That member must leave first." },
+ { 112, "The assignor or its version range is not supported by the consumer group." },
+ { 113, "The member epoch is stale. The member must retry after receiving its updated member epoch via the ConsumerGroupHeartbeat API." },
+ { 114, "The request was sent to an endpoint of the wrong type." },
+ { 115, "This endpoint type is not supported yet." },
+ { 116, "This controller ID is not known." },
+ { 117, "Client sent a push telemetry request with an invalid or outdated subscription ID." },
+ { 118, "Client sent a push telemetry request larger than the maximum size the broker will accept." },
+ { 119, "The controller has considered the broker registration to be invalid." },
+ { 120, "The server encountered an error with the transaction. The client can abort the transaction to continue using this transactional ID." },
{ 0, NULL }
};
@@ -701,7 +776,7 @@ static const value_string election_types[] = {
/* Whether to show the lengths of string and byte fields in the protocol tree.
* It can be useful to see these, but they do clutter up the display, so disable
* by default */
-static gboolean kafka_show_string_bytes_lengths = FALSE;
+static bool kafka_show_string_bytes_lengths;
typedef struct _kafka_query_response_t {
kafka_api_key_t api_key;
@@ -720,9 +795,9 @@ typedef struct kafka_packet_values_t {
kafka_offset_t offset;
} kafka_packet_values_t;
-/* Forward declaration (dissect_kafka_message_set() and dissect_kafka_message() call each other...) */
+/* Forward declaration (dissect_kafka_regular_message_set() and dissect_kafka_message() call each other...) */
static int
-dissect_kafka_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, guint len, guint8 codec);
+dissect_kafka_regular_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, guint len, guint8 codec);
/* HELPERS */
@@ -857,11 +932,20 @@ kafka_api_key_to_str(kafka_api_key_t api_key)
static const kafka_api_info_t *
kafka_get_api_info(kafka_api_key_t api_key)
{
- if ((api_key >= 0) && (api_key < ((kafka_api_key_t) array_length(kafka_apis)))) {
- return &kafka_apis[api_key];
- } else {
+ // short-circuit on obvious garbage - Kafka API keys are always positive
+ if (api_key < 0) {
return NULL;
}
+
+ // Kafka API keys are a sparse array (non-contiguous) so we have to walk the known API keys to see if this is
+ // one of them
+ for (uint32_t i = 0; i < array_length(kafka_apis); i++) {
+ if (kafka_apis[i].api_key == api_key) {
+ return &kafka_apis[i];
+ }
+ }
+
+ return NULL;
}
/*
@@ -902,10 +986,11 @@ kafka_check_supported_api_key(packet_info *pinfo, proto_item *ti, kafka_query_re
}
}
-static void
+static kafka_api_version_t
kafka_check_supported_api_version(packet_info *pinfo, proto_item *ti, kafka_query_response_t *matcher)
{
const kafka_api_info_t *api_info;
+ kafka_api_version_t dissect_version = matcher->api_version;
api_info = kafka_get_api_info(matcher->api_key);
if (api_info != NULL && !kafka_is_api_version_supported(api_info, matcher->api_version)) {
@@ -914,18 +999,33 @@ kafka_check_supported_api_version(packet_info *pinfo, proto_item *ti, kafka_quer
expert_add_info_format(pinfo, ti, &ei_kafka_unsupported_api_version,
"Unsupported %s version.",
kafka_api_key_to_str(matcher->api_key));
+ dissect_version = api_info->min_version;
}
else if (api_info->min_version == api_info->max_version) {
expert_add_info_format(pinfo, ti, &ei_kafka_unsupported_api_version,
"Unsupported %s version. Supports v%d.",
kafka_api_key_to_str(matcher->api_key), api_info->min_version);
+ dissect_version = api_info->min_version;
+ expert_add_info_format(pinfo, ti, &ei_kafka_assumed_api_version,
+ "Dissecting assuming v%d.",
+ dissect_version);
} else {
expert_add_info_format(pinfo, ti, &ei_kafka_unsupported_api_version,
"Unsupported %s version. Supports v%d-%d.",
kafka_api_key_to_str(matcher->api_key),
api_info->min_version, api_info->max_version);
+ if (matcher->api_version < 0 || matcher->api_version > api_info->max_version) {
+ dissect_version = api_info->max_version;
+ } else {
+ dissect_version = api_info->min_version;
+ }
+ expert_add_info_format(pinfo, ti, &ei_kafka_assumed_api_version,
+ "Dissecting assuming v%d.",
+ dissect_version);
}
}
+
+ return dissect_version;
}
static int
@@ -935,8 +1035,24 @@ dissect_kafka_array_elements(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo
int count)
{
int i;
+ int next_offset;
+
+ // sanity check - we expect at least 1 byte per array item
+ if (tvb_reported_length_remaining(tvb, offset) < count) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_kafka_bad_array_length);
+ return offset;
+ }
+
for (i=0; i<count; i++) {
- offset = func(tvb, pinfo, tree, offset, api_version);
+ next_offset = func(tvb, pinfo, tree, offset, api_version);
+
+ // sanity check - the offset should advance for each field we read
+ if (next_offset == offset) {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), &ei_kafka_zero_field_length);
+ break;
+ }
+
+ offset = next_offset;
}
return offset;
}
@@ -1180,40 +1296,39 @@ dissect_kafka_string(proto_tree *tree, int hf_item, tvbuff_t *tvb, packet_info *
}
/*
- * Pre KIP-482 coding. The string is prefixed with signed 16-bit integer containing number of octets.
+ * Pre KIP-482 coding. The string is prefixed with signed 32-bit integer containing number of octets.
*/
static int
dissect_kafka_regular_bytes(proto_tree *tree, int hf_item, tvbuff_t *tvb, packet_info *pinfo, int offset,
int *p_offset, int *p_length)
{
- gint16 length;
+ gint32 length;
proto_item *pi;
- length = (gint16) tvb_get_ntohs(tvb, offset);
+ length = (gint32) tvb_get_ntohl(tvb, offset);
if (length < -1) {
pi = proto_tree_add_item(tree, hf_item, tvb, offset, 0, ENC_NA);
expert_add_info(pinfo, pi, &ei_kafka_bad_string_length);
if (p_offset) {
- *p_offset = 2;
+ *p_offset = 4;
}
if (p_length) {
*p_length = 0;
}
- return offset + 2;
+ return offset + 4;
}
if (length == -1) {
- proto_tree_add_bytes_with_length(tree, hf_item, tvb, offset, 2, NULL, 0);
+ proto_tree_add_bytes_with_length(tree, hf_item, tvb, offset, 4, NULL, 0);
} else {
- proto_tree_add_bytes_with_length(tree, hf_item, tvb, offset, length + 2,
- tvb_get_ptr(tvb, offset + 2, length),
- length);
+ proto_tree_add_bytes_with_length(tree, hf_item, tvb, offset, length + 4,
+ tvb_get_ptr(tvb, offset + 4, length), length);
}
- if (p_offset != NULL) *p_offset = offset + 2;
+ if (p_offset != NULL) *p_offset = offset + 4;
if (p_length != NULL) *p_length = length;
- offset += 2;
+ offset += 4;
if (length != -1) offset += length;
return offset;
@@ -1360,6 +1475,20 @@ dissect_kafka_timestamp(proto_tree *tree, int hf_item, tvbuff_t *tvb, packet_inf
return offset+8;
}
+static int
+dissect_kafka_uuid(proto_tree *tree, int hf_item, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
+{
+ proto_tree_add_item(tree, hf_item, tvb, offset, 16, ENC_BIG_ENDIAN);
+ return offset + 16;
+}
+
+static int
+dissect_kafka_bool(proto_tree *tree, int hf_item, tvbuff_t *tvb, packet_info *pinfo _U_, int offset)
+{
+ proto_tree_add_item(tree, hf_item, tvb, offset, 1, ENC_BIG_ENDIAN);
+ return offset + 1;
+}
+
/*
* Function: dissect_kafka_string_new
* ---------------------------------------------------
@@ -1732,9 +1861,6 @@ decompress_lz4(tvbuff_t *tvb _U_, packet_info *pinfo, int offset _U_, guint32 le
static gboolean
decompress_snappy(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 length, tvbuff_t **decompressed_tvb, int *decompressed_offset)
{
- guint8 *data = (guint8*)tvb_memdup(pinfo->pool, tvb, offset, length);
- size_t uncompressed_size, out_size;
- snappy_status rc = SNAPPY_OK;
tvbuff_t *composite_tvb = NULL;
gboolean ret = FALSE;
@@ -1745,6 +1871,8 @@ decompress_snappy(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 length,
int count = 0;
while (pos < length && count < MAX_LOOP_ITERATIONS) {
+ tvbuff_t *decompressed_chunk_tvb;
+
if (pos > length-4) {
// XXX - this is presumably an error, as the chunk size
// doesn't fully fit in the data, so an error should be
@@ -1765,25 +1893,14 @@ decompress_snappy(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 length,
// should be reported.
goto end;
}
- rc = snappy_uncompressed_length(&data[pos], chunk_size, &uncompressed_size);
- if (rc != SNAPPY_OK) {
- goto end;
- }
- guint8 *decompressed_buffer = (guint8*)wmem_alloc(pinfo->pool, uncompressed_size);
- out_size = uncompressed_size;
- rc = snappy_uncompress(&data[pos], chunk_size, decompressed_buffer, &out_size);
- if (rc != SNAPPY_OK) {
+ decompressed_chunk_tvb = tvb_child_uncompress_snappy(tvb, tvb, offset+pos, chunk_size);
+ if (decompressed_chunk_tvb == NULL) {
goto end;
}
- if (out_size != uncompressed_size) {
- decompressed_buffer = (guint8 *)wmem_realloc(pinfo->pool, decompressed_buffer, out_size);
- }
-
if (!composite_tvb) {
composite_tvb = tvb_new_composite();
}
- tvb_composite_append(composite_tvb,
- tvb_new_child_real_data(tvb, decompressed_buffer, (guint)out_size, (gint)out_size));
+ tvb_composite_append(composite_tvb, decompressed_chunk_tvb);
pos += chunk_size;
count++;
DISSECTOR_ASSERT_HINT(count < MAX_LOOP_ITERATIONS, "MAX_LOOP_ITERATIONS exceeded");
@@ -1792,23 +1909,10 @@ decompress_snappy(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 length,
} else {
/* unframed format */
- rc = snappy_uncompressed_length(data, length, &uncompressed_size);
- if (rc != SNAPPY_OK) {
- goto end;
- }
-
- guint8 *decompressed_buffer = (guint8*)wmem_alloc(pinfo->pool, uncompressed_size);
-
- out_size = uncompressed_size;
- rc = snappy_uncompress(data, length, decompressed_buffer, &out_size);
- if (rc != SNAPPY_OK) {
+ *decompressed_tvb = tvb_child_uncompress_snappy(tvb, tvb, offset, length);
+ if (*decompressed_tvb == NULL) {
goto end;
}
- if (out_size != uncompressed_size) {
- decompressed_buffer = (guint8 *)wmem_realloc(pinfo->pool, decompressed_buffer, out_size);
- }
-
- *decompressed_tvb = tvb_new_child_real_data(tvb, decompressed_buffer, (guint)out_size, (gint)out_size);
*decompressed_offset = 0;
}
@@ -1816,12 +1920,12 @@ decompress_snappy(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 length,
end:
if (composite_tvb) {
tvb_composite_finalize(composite_tvb);
- if (ret == 1) {
+ if (ret) {
*decompressed_tvb = composite_tvb;
*decompressed_offset = 0;
}
}
- if (ret == FALSE) {
+ if (!ret) {
col_append_str(pinfo->cinfo, COL_INFO, " [snappy decompression failed]");
}
return ret;
@@ -1858,7 +1962,7 @@ decompress_zstd(tvbuff_t *tvb _U_, packet_info *pinfo, int offset _U_, guint32 l
#endif /* HAVE_ZSTD */
// Max is currently 2^22 in
-// https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/record/KafkaLZ4BlockOutputStream.java
+// https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/compress/KafkaLZ4BlockOutputStream.java
#define MAX_DECOMPRESSION_SIZE (1 << 22)
static gboolean
decompress(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 length, int codec, tvbuff_t **decompressed_tvb, int *decompressed_offset)
@@ -1933,12 +2037,13 @@ dissect_kafka_message_old(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
offset = dissect_kafka_int8(subtree, hf_kafka_message_magic, tvb, pinfo, offset, &magic_byte);
- offset = dissect_kafka_int8(subtree, hf_kafka_message_codec, tvb, pinfo, offset, &codec);
+ /* Don't advance "offset" here: The following message timestamp type field is in the same byte as the codec. */
+ (void)dissect_kafka_int8(subtree, hf_kafka_message_codec, tvb, pinfo, offset, &codec);
codec &= KAFKA_MESSAGE_CODEC_MASK;
offset = dissect_kafka_int8(subtree, hf_kafka_message_timestamp_type, tvb, pinfo, offset, NULL);
- if (magic_byte == 1) {
+ if (magic_byte > 0) {
proto_tree_add_item(subtree, hf_kafka_message_timestamp, tvb, offset, 8, ENC_TIME_MSECS|ENC_BIG_ENDIAN);
offset += 8;
}
@@ -1970,8 +2075,9 @@ dissect_kafka_message_old(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, i
if (decompress(tvb, pinfo, offset, length, codec, &decompressed_tvb, &decompressed_offset)==1) {
add_new_data_source(pinfo, decompressed_tvb, "Decompressed content");
show_compression_reduction(tvb, subtree, length, tvb_captured_length(decompressed_tvb));
- dissect_kafka_message_set(decompressed_tvb, pinfo, subtree, decompressed_offset,
- tvb_reported_length_remaining(decompressed_tvb, decompressed_offset), codec);
+ dissect_kafka_regular_message_set(decompressed_tvb, pinfo, subtree, decompressed_offset,
+ tvb_reported_length_remaining(decompressed_tvb, decompressed_offset),
+ codec);
offset += length;
} else {
proto_item_append_text(subtree, " [Cannot decompress records]");
@@ -2109,7 +2215,7 @@ dissect_kafka_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
static int
// NOLINTNEXTLINE(misc-no-recursion)
-dissect_kafka_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, guint len, guint8 codec)
+dissect_kafka_regular_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, guint len, guint8 codec)
{
proto_item *ti;
proto_tree *subtree;
@@ -2134,6 +2240,42 @@ dissect_kafka_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
return offset;
}
+static int
+dissect_kafka_message_set(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, guint flexible, guint8 codec)
+{
+ guint len;
+ guint64 length;
+ proto_item *subti;
+
+ if (flexible) {
+ len = tvb_get_varint(tvb, offset, FT_VARINT_MAX_LEN, &length, ENC_VARINT_PROTOBUF);
+
+ if (len == 0) {
+ // this message set is malformed
+ proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_message_set, &subti, "Message Set");
+ expert_add_info(pinfo, subti, &ei_kafka_bad_varint);
+ proto_item_set_end(subti, tvb, offset);
+ return tvb_captured_length(tvb);
+ }
+
+ offset = offset + len;
+
+ if (length > 0) {
+ offset = dissect_kafka_regular_message_set(tvb, pinfo, tree, offset, (gint)length - 1, codec);
+ }
+ }
+ else {
+ len = tvb_get_ntohl(tvb, offset);
+ offset += 4;
+
+ if (len > 0) {
+ offset = dissect_kafka_regular_message_set(tvb, pinfo, tree, offset, len, codec);
+ }
+ }
+
+ return offset;
+}
+
/* Tagged fields support (since Kafka 2.4) */
/*
@@ -2303,23 +2445,25 @@ static int
dissect_kafka_offset_fetch_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- proto_item *ti;
- proto_tree *subtree;
+ proto_tree *subtree, *subsubtree;
+ proto_item *subti, *subsubti;
gint32 count = 0;
int topic_start, topic_len;
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topic");
offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 6, &topic_start, &topic_len);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version, &dissect_kafka_partition_id, &count);
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_topic, &subsubti, "Partition IDs");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 6, api_version, &dissect_kafka_partition_id, &count);
+ proto_item_set_end(subsubti, tvb, offset);
if (api_version >= 6) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
- proto_item_set_end(ti, tvb, offset);
- proto_item_append_text(ti, " (Topic: %s, Partitions: %u)",
+ proto_item_set_end(subti, tvb, offset);
+ proto_item_append_text(subti, " (Topic: %s, Partitions: %u)",
tvb_get_string_enc(pinfo->pool, tvb, topic_start, topic_len, ENC_UTF_8),
count);
@@ -2349,13 +2493,65 @@ dissect_kafka_offset_fetch_request_topics(tvbuff_t *tvb, packet_info *pinfo, pro
}
static int
+dissect_kafka_offset_fetch_request_group(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version)
+{
+ proto_item *subti;
+ proto_tree *subtree;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_group_protocols, &subti, "Group");
+
+ /* group_id */
+ if (api_version >= 8) {
+ offset = dissect_kafka_string(subtree, hf_kafka_group_id, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
+ }
+
+ /* member_id */
+ if (api_version >= 9) {
+ offset = dissect_kafka_string(subtree, hf_kafka_member_id, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
+ }
+
+ /* member_epoch */
+ if (api_version >= 9) {
+ offset = dissect_kafka_int32(subtree, hf_kafka_member_epoch, tvb, pinfo, offset, NULL);
+ }
+
+ /* [topics] */
+ if (api_version >= 8) {
+ offset = dissect_kafka_offset_fetch_request_topics(tvb, pinfo, subtree, offset, api_version);
+ }
+
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
+
+ return offset;
+}
+
+static int
dissect_kafka_offset_fetch_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
+ proto_item *subti;
+ proto_tree *subtree;
- offset = dissect_kafka_string(tree, hf_kafka_consumer_group, tvb, pinfo, offset, api_version >=6, NULL, NULL);
+ /* In versions 0-7, topic information is an array attached to the root message object.
+ * In version 8, topic information is moved to a groups array attached to the root message object. Topic fields
+ * haven't changed; topics have just been moved down a level in the object tree. */
+ if (api_version >= 0 && api_version <= 7) {
+ offset = dissect_kafka_string(tree, hf_kafka_consumer_group, tvb, pinfo, offset, api_version >=6, NULL, NULL);
- offset = dissect_kafka_offset_fetch_request_topics(tvb, pinfo, tree, offset, api_version);
+ offset = dissect_kafka_offset_fetch_request_topics(tvb, pinfo, tree, offset, api_version);
+ }
+
+ if (api_version >= 8) {
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_group_protocols, &subti, "Groups");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
+ &dissect_kafka_offset_fetch_request_group, NULL);
+ proto_item_set_end(subti, tvb, offset);
+ }
if (api_version >= 7) {
proto_tree_add_item(tree, hf_kafka_require_stable_offset, tvb, offset, 1, ENC_NA);
@@ -2423,7 +2619,6 @@ dissect_kafka_offset_fetch_response_partition(tvbuff_t *tvb, packet_info *pinfo,
offset = dissect_kafka_leader_epoch(tvb, pinfo, subtree, offset, api_version);
}
-
offset = dissect_kafka_string(subtree, hf_kafka_metadata, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
offset = dissect_kafka_error(tvb, pinfo, subtree, offset);
@@ -2449,24 +2644,26 @@ static int
dissect_kafka_offset_fetch_response_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- proto_item *ti;
- proto_tree *subtree;
+ proto_item *subti, *subsubti;
+ proto_tree *subtree, *subsubtree;
int topic_start, topic_len;
int count = 0;
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topic");
offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 6, &topic_start, &topic_len);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_topic, &subsubti, "Partition IDs");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 6, api_version,
&dissect_kafka_offset_fetch_response_partition, &count);
+ proto_item_set_end(subsubti, tvb, offset);
if (api_version >= 6) {
- offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
- proto_item_set_end(ti, tvb, offset);
- proto_item_append_text(ti, " (Topic: %s, Partitions: %u)",
+ proto_item_set_end(subti, tvb, offset);
+ proto_item_append_text(subti, " (Topic: %s, Partitions: %u)",
tvb_get_string_enc(pinfo->pool, tvb, topic_start, topic_len, ENC_UTF_8),
count);
@@ -2474,10 +2671,40 @@ dissect_kafka_offset_fetch_response_topic(tvbuff_t *tvb, packet_info *pinfo, pro
}
static int
+dissect_kafka_offset_fetch_response_group(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version)
+{
+ proto_item *subti, *subsubti;
+ proto_tree *subtree, *subsubtree;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topics, &subti, "Group");
+
+ /* group_id */
+ offset = dissect_kafka_string(subtree, hf_kafka_group_id, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
+
+ /* [topics] */
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_topics, &subsubti, "Topics");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 6, api_version,
+ &dissect_kafka_offset_fetch_response_topic, NULL);
+ proto_item_set_end(subsubti, tvb, offset);
+
+ /* error_code */
+ offset = dissect_kafka_error(tvb, pinfo, subtree, offset);
+
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
+
+ return offset;
+}
+
+static int
dissect_kafka_offset_fetch_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- proto_item *ti;
+ proto_item *subti;
proto_tree *subtree;
int count = 0;
@@ -2485,16 +2712,29 @@ dissect_kafka_offset_fetch_response(tvbuff_t *tvb, packet_info *pinfo, proto_tre
offset = dissect_kafka_throttle_time(tvb, pinfo, tree, offset);
}
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topics, &ti, "Topics");
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
- &dissect_kafka_offset_fetch_response_topic, &count);
- proto_item_set_end(ti, tvb, offset);
- proto_item_append_text(ti, " (%u topics)", count);
+ /* In versions 0-7, topic information is an array attached to the root message object.
+ * In version 8, topic information is moved to a groups array attached to the root message object. Topic fields
+ * haven't changed; topics have just been moved down a level in the object tree. */
+ if (api_version >= 0 && api_version <= 7) {
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topics, &subti, "Topics");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
+ &dissect_kafka_offset_fetch_response_topic, &count);
+ proto_item_set_end(subti, tvb, offset);
+ proto_item_append_text(subti, " (%u topics)", count);
+ }
- if (api_version >= 2) {
+ if (api_version >= 2 && api_version <= 7) {
offset = dissect_kafka_error(tvb, pinfo, tree, offset);
}
+ if (api_version >= 8) {
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_group_protocols, &subti,
+ "Groups");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
+ &dissect_kafka_offset_fetch_response_group, NULL);
+ proto_item_set_end(subti, tvb, offset);
+ }
+
if (api_version >= 6) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
}
@@ -2513,6 +2753,10 @@ dissect_kafka_metadata_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tr
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
+ if (api_version >= 10) {
+ offset = dissect_kafka_uuid(tree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 9, NULL, NULL);
if (api_version >= 9) {
@@ -2522,14 +2766,12 @@ dissect_kafka_metadata_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tr
proto_item_set_end(ti, tvb, offset);
return offset;
-
}
static int
dissect_kafka_metadata_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
-
offset = dissect_kafka_array(tree, tvb, pinfo, offset, api_version >= 9, api_version,
&dissect_kafka_metadata_request_topic, NULL);
@@ -2538,10 +2780,12 @@ dissect_kafka_metadata_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
offset += 1;
}
- if (api_version >= 8) {
+ if (api_version >= 8 && api_version <= 10) {
proto_tree_add_item(tree, hf_kafka_include_cluster_authorized_ops, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
+ }
+ if (api_version >= 8) {
proto_tree_add_item(tree, hf_kafka_include_topic_authorized_ops, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
}
@@ -2681,6 +2925,10 @@ dissect_kafka_metadata_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
tvb_get_string_enc(pinfo->pool, tvb,
name_start, name_length, ENC_UTF_8));
+ if (api_version >= 10) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
if (api_version >= 1) {
proto_tree_add_item(subtree, hf_kafka_is_internal, tvb, offset, 1, ENC_NA);
offset += 1;
@@ -2729,7 +2977,7 @@ dissect_kafka_metadata_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 9, api_version, &dissect_kafka_metadata_topic, NULL);
proto_item_set_end(ti, tvb, offset);
- if (api_version >= 8) {
+ if (api_version >= 8 && api_version <= 10) {
offset = dissect_kafka_int32(tree, hf_kafka_cluster_authorized_ops, tvb, pinfo, offset, NULL);
}
@@ -2844,6 +3092,10 @@ dissect_kafka_leader_and_isr_request_partition_state(tvbuff_t *tvb, packet_info
offset += 1;
}
+ if (api_version >= 6) {
+ offset = dissect_kafka_int8(subtree, hf_kafka_leader_recovery_state, tvb, pinfo, offset, NULL);
+ }
+
if (api_version >= 4) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
@@ -2879,6 +3131,11 @@ dissect_kafka_leader_and_isr_request_topic_state(tvbuff_t *tvb, packet_info *pin
offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 4,
&topic_start, &topic_len);
+ /* topic_id */
+ if (api_version >= 5) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
/* [partition_state] */
offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 4, api_version,
&dissect_kafka_leader_and_isr_request_partition_state, NULL);
@@ -2904,8 +3161,7 @@ dissect_kafka_leader_and_isr_request_live_leader(tvbuff_t *tvb, packet_info *pin
int host_start, host_len;
gint32 broker_port;
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_broker,
- &subti, "Live Leader");
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_broker, &subti, "Live Leader");
/* id */
nodeid = tvb_get_ntohl(tvb, offset);
@@ -2944,6 +3200,11 @@ dissect_kafka_leader_and_isr_request(tvbuff_t *tvb, packet_info *pinfo, proto_tr
proto_tree_add_item(tree, hf_kafka_controller_id, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
+ /* is_kraft_controller */
+ if (api_version >= 7) {
+ offset = dissect_kafka_bool(tree, hf_kafka_is_kraft_controller, tvb, pinfo, offset);
+ }
+
/* controller_epoch */
proto_tree_add_item(tree, hf_kafka_controller_epoch, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -2954,6 +3215,11 @@ dissect_kafka_leader_and_isr_request(tvbuff_t *tvb, packet_info *pinfo, proto_tr
offset += 8;
}
+ /* type */
+ if (api_version >= 5) {
+ offset = dissect_kafka_int8(tree, hf_kafka_topic_inclusion_type, tvb, pinfo, offset, NULL);
+ }
+
if (api_version <= 1) {
/* [partition_state] */
offset = dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version,
@@ -2992,7 +3258,9 @@ dissect_kafka_leader_and_isr_response_partition(tvbuff_t *tvb, packet_info *pinf
&subti, "Partition");
/* topic */
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 4, &topic_start, &topic_len);
+ if (api_version >= 0 && api_version <= 4) {
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 4, &topic_start, &topic_len);
+ }
/* partition */
partition = (gint32) tvb_get_ntohl(tvb, offset);
@@ -3007,11 +3275,45 @@ dissect_kafka_leader_and_isr_response_partition(tvbuff_t *tvb, packet_info *pinf
}
proto_item_set_end(subti, tvb, offset);
- proto_item_append_text(subti, " (Topic=%s, Partition-ID=%u, Error=%s)",
- tvb_get_string_enc(pinfo->pool, tvb,
- topic_start, topic_len, ENC_UTF_8),
- partition,
- kafka_error_to_str(error));
+
+ if (api_version >= 0 && api_version <= 4) {
+ proto_item_append_text(subti, " (Topic=%s, Partition-ID=%u, Error=%s)",
+ tvb_get_string_enc(pinfo->pool, tvb,
+ topic_start, topic_len, ENC_UTF_8),
+ partition,
+ kafka_error_to_str(error));
+ }
+
+ return offset;
+}
+
+static int
+dissect_kafka_leader_and_isr_response_topic_state(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ int offset, kafka_api_version_t api_version)
+{
+ proto_tree *subtree;
+ proto_item *subti;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_kafka_topic,
+ &subti, "Topic");
+
+ /* topic_id */
+ if (api_version >= 5) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
+ /* [partition_state] */
+ if (api_version >= 5) {
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 4, api_version,
+ &dissect_kafka_leader_and_isr_response_partition, NULL);
+ }
+
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
return offset;
}
@@ -3024,8 +3326,15 @@ dissect_kafka_leader_and_isr_response(tvbuff_t *tvb, packet_info *pinfo, proto_t
offset = dissect_kafka_error(tvb, pinfo, tree, offset);
/* [partition] */
- offset = dissect_kafka_array(tree, tvb, pinfo, offset, api_version >= 4, api_version,
- &dissect_kafka_leader_and_isr_response_partition, NULL);
+ if (api_version >= 0 && api_version <= 4) {
+ offset = dissect_kafka_array(tree, tvb, pinfo, offset, api_version >= 4, api_version,
+ &dissect_kafka_leader_and_isr_response_partition, NULL);
+ }
+ /* [topic] */
+ else {
+ offset = dissect_kafka_array(tree, tvb, pinfo, offset, api_version >= 4, api_version,
+ &dissect_kafka_leader_and_isr_response_topic_state, NULL);
+ }
if (api_version >= 4) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
@@ -3037,8 +3346,67 @@ dissect_kafka_leader_and_isr_response(tvbuff_t *tvb, packet_info *pinfo, proto_t
/* STOP_REPLICA REQUEST/RESPONSE */
static int
+dissect_kafka_stop_replicate_request_partition_state(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ int offset, kafka_api_version_t api_version)
+{
+ if (api_version >= 3) {
+ /* partition_id */
+ offset = dissect_kafka_int32(tree, hf_kafka_partition_id, tvb, pinfo, offset, NULL);
+
+ /* leader_epoch */
+ offset = dissect_kafka_int32(tree, hf_kafka_leader_epoch, tvb, pinfo, offset, NULL);
+
+ /* delete_partition */
+ offset = dissect_kafka_bool(tree, hf_kafka_delete_partition, tvb, pinfo, offset);
+ }
+
+ return offset;
+}
+
+static int
+dissect_kafka_stop_replica_request_topic_state(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ int offset, kafka_api_version_t api_version)
+{
+ proto_item *subti, *subsubti;
+ proto_tree *subtree, *subsubtree;
+ int topic_start, topic_len;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_kafka_topic,
+ &subti, "Topic");
+
+ if (api_version >= 3) {
+ /* topic */
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 2, &topic_start, &topic_len);
+
+ /* [partition_states] */
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
+ ett_kafka_partitions,
+ &subsubti, "Partitions");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 2, api_version,
+ &dissect_kafka_stop_replicate_request_partition_state, NULL);
+
+ if (api_version >= 2) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subsubti, tvb, offset);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
+
+ if (api_version >= 3) {
+ proto_item_append_text(subti, " (Topic=%s)",
+ tvb_get_string_enc(pinfo->pool, tvb,
+ topic_start, topic_len, ENC_UTF_8));
+ }
+
+ return offset;
+}
+
+static int
dissect_kafka_stop_replica_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, kafka_api_version_t api_version)
+ int offset, kafka_api_version_t api_version)
{
proto_item *subti, *subsubti;
proto_tree *subtree, *subsubtree;
@@ -3048,24 +3416,30 @@ dissect_kafka_stop_replica_request_topic(tvbuff_t *tvb, packet_info *pinfo, prot
ett_kafka_topic,
&subti, "Topic");
- /* topic */
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 2, &topic_start, &topic_len);
+ if (api_version >= 1 && api_version <= 2) {
+ /* topic */
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 2, &topic_start, &topic_len);
- subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
- ett_kafka_partitions,
- &subsubti, "Partitions");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 2, api_version,
- &dissect_kafka_partition_id, NULL);
- proto_item_set_end(subsubti, tvb, offset);
+ /* [partitions] */
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
+ ett_kafka_partitions,
+ &subsubti, "Partitions");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 2, api_version,
+ &dissect_kafka_partition_id, NULL);
+ proto_item_set_end(subsubti, tvb, offset);
+ }
if (api_version >= 2) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
proto_item_set_end(subti, tvb, offset);
- proto_item_append_text(subti, " (Topic=%s)",
- tvb_get_string_enc(pinfo->pool, tvb,
- topic_start, topic_len, ENC_UTF_8));
+
+ if (api_version >= 1 && api_version <= 2) {
+ proto_item_append_text(subti, " (Topic=%s)",
+ tvb_get_string_enc(pinfo->pool, tvb,
+ topic_start, topic_len, ENC_UTF_8));
+ }
return offset;
}
@@ -3113,6 +3487,11 @@ dissect_kafka_stop_replica_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree_add_item(tree, hf_kafka_controller_id, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
+ /* is_kraft_controller */
+ if (api_version >= 4) {
+ offset = dissect_kafka_bool(tree, hf_kafka_is_kraft_controller, tvb, pinfo, offset);
+ }
+
/* controller_epoch */
proto_tree_add_item(tree, hf_kafka_controller_epoch, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -3124,10 +3503,13 @@ dissect_kafka_stop_replica_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree
}
/* delete_partitions */
- proto_tree_add_item(tree, hf_kafka_delete_partitions, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
+ if (api_version >= 0 && api_version <= 2) {
+ proto_tree_add_item(tree, hf_kafka_delete_partitions, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ }
/* in V1 list of topic/partition was changed to list of topics with their partitions */
+ /* in V3 this was changed again to list of topics with partition states */
if (api_version == 0) {
/* [ungrouped_partitions] */
subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
@@ -3136,7 +3518,7 @@ dissect_kafka_stop_replica_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree
offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
&dissect_kafka_stop_replica_request_ungrouped_partition, NULL);
proto_item_set_end(subti, tvb, offset);
- } else {
+ } else if (api_version >= 1 && api_version <= 2) {
/* [topics] */
subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
ett_kafka_topics,
@@ -3144,6 +3526,19 @@ dissect_kafka_stop_replica_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree
offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 2, api_version,
&dissect_kafka_stop_replica_request_topic, NULL);
proto_item_set_end(subti, tvb, offset);
+ } else {
+ /* [topics] */
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_kafka_topics,
+ &subti, "Topics");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 2, api_version,
+ &dissect_kafka_stop_replica_request_topic_state, NULL);
+
+ if (api_version >= 2) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
}
if (api_version >= 2) {
@@ -3234,6 +3629,10 @@ dissect_kafka_fetch_request_partition(tvbuff_t *tvb, packet_info *pinfo, proto_t
offset = dissect_kafka_offset_ret(tvb, pinfo, subtree, offset, &packet_values.offset);
+ if (api_version >= 12) {
+ offset = dissect_kafka_int32(subtree, hf_kafka_last_fetched_epoch, tvb, pinfo, offset, NULL);
+ }
+
if (api_version >= 5) {
proto_tree_add_item(subtree, hf_kafka_log_start_offset, tvb, offset, 8, ENC_BIG_ENDIAN);
offset += 8;
@@ -3242,6 +3641,10 @@ dissect_kafka_fetch_request_partition(tvbuff_t *tvb, packet_info *pinfo, proto_t
proto_tree_add_item(subtree, hf_kafka_max_bytes, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_append_text(ti, " (ID=%u, Offset=%" PRIi64 ")",
packet_values.partition_id, packet_values.offset);
@@ -3252,20 +3655,32 @@ static int
dissect_kafka_fetch_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- proto_item *ti;
- proto_tree *subtree;
+ proto_item *subti, *subsubti;
+ proto_tree *subtree, *subsubtree;
guint32 count = 0;
int name_start, name_length;
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, &name_start, &name_length);
- count = tvb_get_ntohl(tvb, offset);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
- &dissect_kafka_fetch_request_partition, NULL);
+ if (api_version >= 0 && api_version <= 12) {
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 12, &name_start, &name_length);
+ }
- proto_item_set_end(ti, tvb, offset);
- proto_item_append_text(ti, " (%u partitions)", count);
+ if (api_version >= 13) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_topic, &subsubti, "Partitions");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 12, api_version,
+ &dissect_kafka_fetch_request_partition, &count);
+ proto_item_set_end(subsubti, tvb, offset);
+
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
+ proto_item_append_text(subti, " (%u partitions)", count);
return offset;
}
@@ -3290,10 +3705,21 @@ dissect_kafka_fetch_request_forgotten_topics_data(tvbuff_t *tvb, packet_info *pi
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_request_forgotten_topic, &ti, "Fetch Request Forgotten Topic Data");
- offset = dissect_kafka_string(subtree, hf_kafka_forgotten_topic_name, tvb, pinfo, offset, 0, &name_start, &name_length);
- count = tvb_get_ntohl(tvb, offset);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
- &dissect_kafka_fetch_request_forgottent_topic_partition, NULL);
+ if (api_version >= 0 && api_version <= 12) {
+ offset = dissect_kafka_string(subtree, hf_kafka_forgotten_topic_name, tvb, pinfo, offset,
+ api_version >= 12, &name_start, &name_length);
+ }
+
+ if (api_version >= 13) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_forgotten_topic_id, tvb, pinfo, offset);
+ }
+
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 12, api_version,
+ &dissect_kafka_fetch_request_forgottent_topic_partition, &count);
+
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
proto_item_set_end(ti, tvb, offset);
proto_item_append_text(ti, " (%u partitions)", count);
@@ -3305,8 +3731,13 @@ static int
dissect_kafka_fetch_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- proto_tree_add_item(tree, hf_kafka_replica, tvb, offset, 4, ENC_BIG_ENDIAN);
- offset += 4;
+ proto_item *subti;
+ proto_tree *subtree;
+
+ if (api_version >= 0 && api_version <= 14) {
+ proto_tree_add_item(tree, hf_kafka_replica, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ }
proto_tree_add_item(tree, hf_kafka_max_wait_time, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -3332,14 +3763,23 @@ dissect_kafka_fetch_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 4;
}
- offset = dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_fetch_request_topic, NULL);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_request_forgotten_topic, &subti, "Topics");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 12, api_version, &dissect_kafka_fetch_request_topic, NULL);
+ proto_item_set_end(subti, tvb, offset);
if (api_version >= 7) {
- offset = dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_fetch_request_forgotten_topics_data, NULL);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_request_forgotten_topic, &subti, "Forgotten Topics");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 12, api_version,
+ &dissect_kafka_fetch_request_forgotten_topics_data, NULL);
+ proto_item_set_end(subti, tvb, offset);
}
if (api_version >= 11) {
- offset = dissect_kafka_string(tree, hf_kafka_rack, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(tree, hf_kafka_rack, tvb, pinfo, offset, api_version >= 12, NULL, NULL);
+ }
+
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
}
return offset;
@@ -3360,6 +3800,10 @@ dissect_kafka_aborted_transaction(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
proto_tree_add_item(subtree, hf_kafka_first_offset, tvb, offset, 8, ENC_BIG_ENDIAN);
offset += 8;
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(ti, tvb, offset);
return offset;
@@ -3374,7 +3818,7 @@ dissect_kafka_aborted_transactions(tvbuff_t *tvb, packet_info *pinfo, proto_tree
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_aborted_transactions, &ti, "Aborted Transactions");
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_aborted_transaction, NULL);
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 12, api_version, &dissect_kafka_aborted_transaction, NULL);
proto_item_set_end(ti, tvb, offset);
@@ -3387,7 +3831,6 @@ dissect_kafka_fetch_response_partition(tvbuff_t *tvb, packet_info *pinfo, proto_
{
proto_item *ti;
proto_tree *subtree;
- guint len;
kafka_packet_values_t packet_values;
memset(&packet_values, 0, sizeof(packet_values));
@@ -3418,11 +3861,10 @@ dissect_kafka_fetch_response_partition(tvbuff_t *tvb, packet_info *pinfo, proto_
offset += 4;
}
- len = tvb_get_ntohl(tvb, offset);
- offset += 4;
+ offset = dissect_kafka_message_set(tvb, pinfo, subtree, offset, api_version >= 12, KAFKA_MESSAGE_CODEC_NONE);
- if (len > 0) {
- offset = dissect_kafka_message_set(tvb, pinfo, subtree, offset, len, KAFKA_MESSAGE_CODEC_NONE);
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
proto_item_set_end(ti, tvb, offset);
@@ -3437,18 +3879,31 @@ static int
dissect_kafka_fetch_response_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- proto_item *ti;
- proto_tree *subtree;
+ proto_item *subti, *subsubti;
+ proto_tree *subtree, *subsubtree;
guint32 count = 0;
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, NULL, NULL);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ if (api_version >= 0 && api_version <= 12) {
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 12, NULL, NULL);
+ }
+
+ if (api_version >= 13) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_topic, &subsubti, "Partitions");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 12, api_version,
&dissect_kafka_fetch_response_partition, &count);
+ proto_item_set_end(subsubti, tvb, offset);
- proto_item_set_end(ti, tvb, offset);
- proto_item_append_text(ti, " (%u partitions)", count);
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
+ proto_item_append_text(subti, " (%u partitions)", count);
return offset;
}
@@ -3457,6 +3912,9 @@ static int
dissect_kafka_fetch_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
+ proto_item *subti;
+ proto_tree *subtree;
+
if (api_version >= 1) {
offset = dissect_kafka_throttle_time(tvb, pinfo, tree, offset);
}
@@ -3468,7 +3926,15 @@ dissect_kafka_fetch_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
offset += 4;
}
- return dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_fetch_response_topic, NULL);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topics");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 12, api_version, &dissect_kafka_fetch_response_topic, NULL);
+ proto_item_set_end(subti, tvb, offset);
+
+ if (api_version >= 12) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ }
+
+ return offset;
}
/* PRODUCE REQUEST/RESPONSE */
@@ -3479,7 +3945,6 @@ dissect_kafka_produce_request_partition(tvbuff_t *tvb, packet_info *pinfo, proto
{
proto_item *ti;
proto_tree *subtree;
- guint len;
kafka_packet_values_t packet_values;
memset(&packet_values, 0, sizeof(packet_values));
@@ -3487,11 +3952,10 @@ dissect_kafka_produce_request_partition(tvbuff_t *tvb, packet_info *pinfo, proto
offset = dissect_kafka_partition_id_ret(tvb, pinfo, subtree, offset, &packet_values.partition_id);
- len = tvb_get_ntohl(tvb, offset);
- offset += 4;
+ offset = dissect_kafka_message_set(tvb, pinfo, subtree, offset, api_version >= 9, KAFKA_MESSAGE_CODEC_NONE);
- if (len > 0) {
- offset = dissect_kafka_message_set(tvb, pinfo, subtree, offset, len, KAFKA_MESSAGE_CODEC_NONE);
+ if (api_version >= 9) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
proto_item_append_text(ti, " (ID=%u)", packet_values.partition_id);
@@ -3511,10 +3975,14 @@ dissect_kafka_produce_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tre
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, &topic_off, &topic_len);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 9, &topic_off, &topic_len);
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 9, api_version,
&dissect_kafka_produce_request_partition, NULL);
+ if (api_version >= 9) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_append_text(ti, " (Name=%s)",
tvb_get_string_enc(pinfo->pool, tvb, topic_off, topic_len, ENC_UTF_8));
proto_item_set_end(ti, tvb, offset);
@@ -3527,7 +3995,7 @@ dissect_kafka_produce_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
kafka_api_version_t api_version)
{
if (api_version >= 3) {
- offset = dissect_kafka_string(tree, hf_kafka_transactional_id, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(tree, hf_kafka_transactional_id, tvb, pinfo, offset, api_version >= 9, NULL, NULL);
}
proto_tree_add_item(tree, hf_kafka_required_acks, tvb, offset, 2, ENC_BIG_ENDIAN);
@@ -3536,9 +4004,13 @@ dissect_kafka_produce_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
proto_tree_add_item(tree, hf_kafka_timeout, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
- offset = dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(tree, tvb, pinfo, offset, api_version >= 9, api_version,
&dissect_kafka_produce_request_topic, NULL);
+ if (api_version >= 9) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ }
+
return offset;
}
@@ -3553,7 +4025,11 @@ dissect_kafka_produce_response_partition_record_error(tvbuff_t *tvb, packet_info
proto_tree_add_item(subtree, hf_kafka_batch_index, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
- offset = dissect_kafka_string(subtree, hf_kafka_batch_index_error_message, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_batch_index_error_message, tvb, pinfo, offset, api_version >= 9, NULL, NULL);
+
+ if (api_version >= 9) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
proto_item_set_end(ti, tvb, offset);
@@ -3587,13 +4063,17 @@ dissect_kafka_produce_response_partition(tvbuff_t *tvb, packet_info *pinfo, prot
if (api_version >= 8) {
subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_record_errors, &subti, "Record Errors");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 9, api_version,
&dissect_kafka_produce_response_partition_record_error, NULL);
proto_item_set_end(subti, tvb, offset);
}
if (api_version >= 8) {
- offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 9, NULL, NULL);
+ }
+
+ if (api_version >= 9) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
proto_item_set_end(ti, tvb, offset);
@@ -3608,16 +4088,25 @@ static int
dissect_kafka_produce_response_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- proto_item *ti;
- proto_tree *subtree;
+ proto_item *subti, *subsubti;
+ proto_tree *subtree, *subsubtree;
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, NULL, NULL);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ /* name */
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 9, NULL, NULL);
+
+ /* [partitions] */
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_topic, &subsubti, "Partitions");
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 9, api_version,
&dissect_kafka_produce_response_partition, NULL);
+ proto_item_set_end(subsubti, tvb, offset);
- proto_item_set_end(ti, tvb, offset);
+ if (api_version >= 9) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
return offset;
}
@@ -3626,12 +4115,16 @@ static int
dissect_kafka_produce_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
- offset = dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_produce_response_topic, NULL);
+ offset = dissect_kafka_array(tree, tvb, pinfo, offset, api_version >= 9, api_version, &dissect_kafka_produce_response_topic, NULL);
if (api_version >= 1) {
offset = dissect_kafka_throttle_time(tvb, pinfo, tree, offset);
}
+ if (api_version >= 9) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ }
+
return offset;
}
@@ -3661,6 +4154,10 @@ dissect_kafka_offsets_request_partition(tvbuff_t *tvb, packet_info *pinfo, proto
offset += 4;
}
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(ti, tvb, offset);
proto_item_append_text(ti, " (ID=%u)", partition);
@@ -3676,10 +4173,14 @@ dissect_kafka_offsets_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tre
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, NULL, NULL);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
&dissect_kafka_offsets_request_partition, NULL);
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(ti, tvb, offset);
return offset;
@@ -3689,6 +4190,9 @@ static int
dissect_kafka_offsets_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
+ proto_item *subti;
+ proto_tree *subtree;
+
proto_tree_add_item(tree, hf_kafka_replica, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -3697,7 +4201,16 @@ dissect_kafka_offsets_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
offset += 1;
}
- offset = dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_offsets_request_topic, NULL);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_broker, &subti, "Topics");
+
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
+ &dissect_kafka_offsets_request_topic, NULL);
+
+ proto_item_set_end(subti, tvb, offset);
+
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ }
return offset;
}
@@ -3717,7 +4230,7 @@ dissect_kafka_offsets_response_partition(tvbuff_t *tvb, packet_info *pinfo, prot
offset = dissect_kafka_error(tvb, pinfo, subtree, offset);
if (api_version == 0) {
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_offset, NULL);
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version, &dissect_kafka_offset, NULL);
}
else if (api_version >= 1) {
offset = dissect_kafka_offset_time(tvb, pinfo, subtree, offset, api_version);
@@ -3730,6 +4243,10 @@ dissect_kafka_offsets_response_partition(tvbuff_t *tvb, packet_info *pinfo, prot
offset += 4;
}
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(ti, tvb, offset);
proto_item_append_text(ti, " (ID=%u)", partition);
@@ -3745,10 +4262,14 @@ dissect_kafka_offsets_response_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tr
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &ti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, NULL, NULL);
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
&dissect_kafka_offsets_response_partition, NULL);
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(ti, tvb, offset);
return offset;
@@ -3758,13 +4279,26 @@ static int
dissect_kafka_offsets_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int start_offset,
kafka_api_version_t api_version)
{
+ proto_item *subti;
+ proto_tree *subtree;
int offset = start_offset;
if (api_version >= 2) {
offset = dissect_kafka_throttle_time(tvb, pinfo, tree, offset);
}
- return dissect_kafka_array(tree, tvb, pinfo, offset, 0, api_version, &dissect_kafka_offsets_response_topic, NULL);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_broker, &subti, "Topics");
+
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
+ &dissect_kafka_offsets_response_topic, NULL);
+
+ proto_item_set_end(subti, tvb, offset);
+
+ if (api_version >= 6) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ }
+
+ return offset;
}
/* API_VERSIONS REQUEST/RESPONSE */
@@ -3980,6 +4514,11 @@ dissect_kafka_update_metadata_request_topic(tvbuff_t *tvb, packet_info *pinfo, p
offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 6,
&topic_start, &topic_len);
+ /* topic_id */
+ if (api_version >= 7) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
/* partitions */
offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 6, api_version,
&dissect_kafka_update_metadata_request_partition, NULL);
@@ -4099,6 +4638,11 @@ dissect_kafka_update_metadata_request(tvbuff_t *tvb, packet_info *pinfo, proto_t
/* controller_id */
offset = dissect_kafka_int32(tree, hf_kafka_controller_id, tvb, pinfo, offset, &controller_id);
+ /* is_kraft_controller */
+ if (api_version >= 8) {
+ offset = dissect_kafka_bool(tree, hf_kafka_is_kraft_controller, tvb, pinfo, offset);
+ }
+
/* controller_epoch */
offset = dissect_kafka_int32(tree, hf_kafka_controller_epoch, tvb, pinfo, offset, NULL);
@@ -4431,9 +4975,22 @@ dissect_kafka_offset_commit_response(tvbuff_t *tvb, packet_info *pinfo, proto_tr
/* GROUP_COORDINATOR REQUEST/RESPONSE */
static int
+dissect_kafka_find_coordinator_request_coordinator_keys(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version)
+{
+ if (api_version >= 4) {
+ offset = dissect_kafka_string(tree, hf_kafka_coordinator_key, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
+ }
+
+ return offset;
+}
+
+static int
dissect_kafka_find_coordinator_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version _U_)
{
+ proto_item *subti;
+ proto_tree *subtree;
int group_start, group_len;
if (api_version == 0) {
@@ -4445,14 +5002,25 @@ dissect_kafka_find_coordinator_request(tvbuff_t *tvb, packet_info *pinfo, proto_
" (Group=%s)",
tvb_get_string_enc(pinfo->pool, tvb,
group_start, group_len, ENC_UTF_8));
- } else {
+ }
+ if (api_version >= 0 && api_version <= 3) {
offset = dissect_kafka_string(tree, hf_kafka_coordinator_key, tvb, pinfo, offset, api_version >= 3,
NULL, NULL);
+ }
+ if (api_version >= 1) {
proto_tree_add_item(tree, hf_kafka_coordinator_type, tvb, offset, 1, ENC_NA);
offset += 1;
+ }
+ if (api_version >= 4) {
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Coordinator Keys");
+
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 3, api_version,
+ &dissect_kafka_find_coordinator_request_coordinator_keys, NULL);
+
+ proto_item_set_end(subti, tvb, offset);
}
if (api_version >= 3) {
@@ -4463,8 +5031,8 @@ dissect_kafka_find_coordinator_request(tvbuff_t *tvb, packet_info *pinfo, proto_
}
static int
-dissect_kafka_find_coordinator_response_coordinator(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, kafka_api_version_t api_version _U_)
+dissect_kafka_find_coordinator_response_coordinator_v1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ int offset, kafka_api_version_t api_version)
{
proto_item *subti;
proto_tree *subtree;
@@ -4504,23 +5072,96 @@ dissect_kafka_find_coordinator_response_coordinator(tvbuff_t *tvb, packet_info *
}
static int
+dissect_kafka_find_coordinator_response_coordinator_v2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ int offset, kafka_api_version_t api_version)
+{
+ proto_item *subti;
+ proto_tree *subtree;
+ gint32 node_id;
+ int host_start, host_len;
+ gint32 port;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_broker, &subti, "Coordinator");
+
+ /* key */
+ offset = dissect_kafka_string(subtree, hf_kafka_coordinator_key, tvb, pinfo, offset, api_version >= 3, NULL, NULL);
+
+ /* node_id */
+ node_id = (gint32) tvb_get_ntohl(tvb, offset);
+ proto_tree_add_item(subtree, hf_kafka_broker_nodeid, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ /* host */
+ offset = dissect_kafka_string(subtree, hf_kafka_broker_host, tvb, pinfo, offset, api_version >= 3,
+ &host_start, &host_len);
+
+ /* port */
+ port = (gint32) tvb_get_ntohl(tvb, offset);
+ proto_tree_add_item(subtree, hf_kafka_broker_port, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ /* error_code */
+ offset = dissect_kafka_error(tvb, pinfo, subtree, offset);
+
+ /* error_message */
+ offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 3,
+ NULL, NULL);
+
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+
+ proto_item_set_end(subti, tvb, offset);
+
+ if (node_id >= 0) {
+ proto_item_append_text(subti, " (node %d: %s:%d)",
+ node_id,
+ tvb_get_string_enc(pinfo->pool, tvb,
+ host_start, host_len, ENC_UTF_8),
+ port);
+ } else {
+ proto_item_append_text(subti, " (none)");
+ }
+
+ return offset;
+}
+
+static int
dissect_kafka_find_coordinator_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
kafka_api_version_t api_version)
{
+ proto_item *subti;
+ proto_tree *subtree;
+
if (api_version >= 1) {
offset = dissect_kafka_throttle_time(tvb, pinfo, tree, offset);
}
/* error_code */
- offset = dissect_kafka_error(tvb, pinfo, tree, offset);
+ if (api_version >= 0 && api_version <= 3) {
+ offset = dissect_kafka_error(tvb, pinfo, tree, offset);
+ }
- if (api_version >= 1) {
+ /* error_message */
+ if (api_version >= 1 && api_version <= 3) {
offset = dissect_kafka_string(tree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 3,
NULL, NULL);
}
- /* coordinator */
- offset = dissect_kafka_find_coordinator_response_coordinator(tvb, pinfo, tree, offset, api_version);
+ /* In versions 0-3, coordinator fields exist once on the message (one single coordinator) in a flat layout.
+ * In version 3+, this has been changed to an array of coordinators, each with some extra fields compared to the
+ * original single coordinator. */
+ if (api_version >= 0 && api_version <= 3) {
+ /* coordinator */
+ offset = dissect_kafka_find_coordinator_response_coordinator_v1(tvb, pinfo, tree, offset, api_version);
+ }
+ else if (api_version >= 4) {
+ /* [coordinators] */
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_broker, &subti, "Coordinators");
+
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 3, api_version,
+ &dissect_kafka_find_coordinator_response_coordinator_v2, NULL);
+
+ proto_item_set_end(subti, tvb, offset);
+ }
if (api_version >= 3) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
@@ -4604,6 +5245,9 @@ dissect_kafka_join_group_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
&dissect_kafka_join_group_request_group_protocols, NULL);
proto_item_set_end(subti, tvb, offset);
+ /* join_reason */
+ offset = dissect_kafka_string(tree, hf_kafka_join_reason, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
+
col_append_fstr(pinfo->cinfo, COL_INFO,
" (Group=%s, Member=%s)",
kafka_tvb_get_string(pinfo->pool, tvb, group_start, group_len),
@@ -4681,6 +5325,9 @@ dissect_kafka_join_group_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* leader_id */
offset = dissect_kafka_string(tree, hf_kafka_group_leader_id, tvb, pinfo, offset, api_version >= 6, NULL, NULL);
+ /* skip_assignment */
+ offset = dissect_kafka_bool(tree, hf_kafka_skip_assignment, tvb, pinfo, offset);
+
/* member_id */
offset = dissect_kafka_string(tree, hf_kafka_member_id, tvb, pinfo, offset, api_version >= 6, &member_start, &member_len);
@@ -4782,6 +5429,11 @@ dissect_kafka_leave_group_request_member(tvbuff_t *tvb, packet_info *pinfo, prot
offset = dissect_kafka_string(subtree, hf_kafka_consumer_group_instance, tvb, pinfo, offset, api_version >= 4,
&instance_start, &instance_len);
+ /* leave_reason */
+ if (api_version >= 5) {
+ offset = dissect_kafka_string(subtree, hf_kafka_leave_reason, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
+ }
+
if (api_version >= 4) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
@@ -4873,7 +5525,7 @@ dissect_kafka_leave_group_response_member(tvbuff_t *tvb, packet_info *pinfo, pro
&instance_start, &instance_len);
/* error_code */
- offset = dissect_kafka_error(tvb, pinfo, tree, offset);
+ offset = dissect_kafka_error(tvb, pinfo, subtree, offset);
if (api_version >= 4) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
@@ -5527,6 +6179,11 @@ dissect_kafka_create_topics_response_topic(tvbuff_t *tvb, packet_info *pinfo, pr
/* topic */
offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 5, &topic_start, &topic_len);
+ /* topic_id */
+ if (api_version >= 7) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
/* error_code */
offset = dissect_kafka_error_ret(tvb, pinfo, subtree, offset, &error);
@@ -5595,8 +6252,33 @@ static int
dissect_kafka_delete_topics_request_topic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, kafka_api_version_t api_version)
{
+ proto_item *subti;
+ proto_tree *subtree;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_kafka_topics,
+ &subti, "Topic");
+
+ if (api_version >= 6) {
+ /* topic_name */
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
+
+ /* topic_id */
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
+
+ return offset;
+}
+
+static int
+dissect_kafka_delete_topics_request_topic_name(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ int offset, kafka_api_version_t api_version)
+{
/* topic */
offset = dissect_kafka_string(tree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
+
return offset;
}
@@ -5608,12 +6290,32 @@ dissect_kafka_delete_topics_request(tvbuff_t *tvb, packet_info *pinfo, proto_tre
proto_tree *subtree;
/* [topic] */
- subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
- ett_kafka_topics,
- &subti, "Topics");
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 4, api_version,
- &dissect_kafka_delete_topics_request_topic, NULL);
- proto_item_set_end(subti, tvb, offset);
+ if (api_version >= 6) {
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_kafka_topics,
+ &subti, "Topics");
+
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 4, api_version,
+ &dissect_kafka_delete_topics_request_topic, NULL);
+
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
+ proto_item_set_end(subti, tvb, offset);
+ }
+
+ /* [topic_names] */
+ if (api_version >= 0 && api_version <= 5) {
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_kafka_topics,
+ &subti, "Topics");
+
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 4, api_version,
+ &dissect_kafka_delete_topics_request_topic_name, NULL);
+
+ proto_item_set_end(subti, tvb, offset);
+ }
/* timeout */
proto_tree_add_item(tree, hf_kafka_timeout, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -5642,9 +6344,19 @@ dissect_kafka_delete_topics_response_topic_error_code(tvbuff_t *tvb, packet_info
/* topic */
offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 4, &topic_start, &topic_len);
+ /* topic_id */
+ if (api_version >= 6) {
+ offset = dissect_kafka_uuid(subtree, hf_kafka_topic_id, tvb, pinfo, offset);
+ }
+
/* error_code */
offset = dissect_kafka_error_ret(tvb, pinfo, subtree, offset, &error);
+ /* error_message */
+ if (api_version >= 5) {
+ offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
+ }
+
if (api_version >= 4) {
offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
}
@@ -7038,7 +7750,7 @@ static int
dissect_kafka_describe_config_request_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, kafka_api_version_t api_version _U_)
{
- offset = dissect_kafka_string(tree, hf_kafka_config_key, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(tree, hf_kafka_config_key, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
return offset;
}
@@ -7055,13 +7767,17 @@ dissect_kafka_describe_config_request_resource(tvbuff_t *tvb, packet_info *pinfo
proto_tree_add_item(subtree, hf_kafka_config_resource_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- offset = dissect_kafka_string(subtree, hf_kafka_config_resource_name, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_config_resource_name, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
- subsubtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_config_entries, &subsubti, "Entries");
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_config_entries, &subsubti, "Entries");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 4, api_version,
&dissect_kafka_describe_config_request_entry, NULL);
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(subti, tvb, offset);
return offset;
@@ -7077,15 +7793,23 @@ dissect_kafka_describe_configs_request(tvbuff_t *tvb, packet_info *pinfo, proto_
subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
ett_kafka_resources,
&subti, "Resources");
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 4, api_version,
&dissect_kafka_describe_config_request_resource, NULL);
+ proto_item_set_end(subti, tvb, offset);
+
if (api_version >= 1) {
- proto_tree_add_item(subtree, hf_kafka_config_include_synonyms, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_kafka_config_include_synonyms, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
}
- proto_item_set_end(subti, tvb, offset);
+ if (api_version >= 3) {
+ offset = dissect_kafka_bool(tree, hf_kafka_config_include_documentation, tvb, pinfo, offset);
+ }
+
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ }
return offset;
}
@@ -7106,6 +7830,10 @@ dissect_kafka_describe_configs_response_synonym(tvbuff_t *tvb, packet_info *pinf
proto_tree_add_item(subtree, hf_kafka_config_source, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(subti, tvb, offset);
proto_item_append_text(subti, " (Key=%s)",
tvb_get_string_enc(pinfo->pool, tvb,
@@ -7124,8 +7852,8 @@ dissect_kafka_describe_configs_response_entry(tvbuff_t *tvb, packet_info *pinfo,
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_config_entry, &subti, "Entry");
- offset = dissect_kafka_string(subtree, hf_kafka_config_key, tvb, pinfo, offset, 0, &key_start, &key_len);
- offset = dissect_kafka_string(subtree, hf_kafka_config_value, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_config_key, tvb, pinfo, offset, api_version >= 4, &key_start, &key_len);
+ offset = dissect_kafka_string(subtree, hf_kafka_config_value, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
proto_tree_add_item(subtree, hf_kafka_config_readonly, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -7145,12 +7873,22 @@ dissect_kafka_describe_configs_response_entry(tvbuff_t *tvb, packet_info *pinfo,
subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
ett_kafka_config_synonyms,
&subsubti, "Synonyms");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 4, api_version,
&dissect_kafka_describe_configs_response_synonym, NULL);
proto_item_set_end(subsubti, tvb, offset);
}
+ if (api_version >= 3) {
+ offset = dissect_kafka_int8(subtree, hf_kafka_config_data_type, tvb, pinfo, offset, NULL);
+
+ offset = dissect_kafka_string(subtree, hf_kafka_config_documentation, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
+ }
+
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(subti, tvb, offset);
proto_item_append_text(subti, " (Key=%s)",
tvb_get_string_enc(pinfo->pool, tvb,
@@ -7170,20 +7908,25 @@ dissect_kafka_describe_configs_response_resource(tvbuff_t *tvb, packet_info *pin
offset = dissect_kafka_error(tvb, pinfo, subtree, offset);
- offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
proto_tree_add_item(subtree, hf_kafka_config_resource_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- offset = dissect_kafka_string(subtree, hf_kafka_config_resource_name, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_config_resource_name, tvb, pinfo, offset, api_version >= 4, NULL, NULL);
subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
ett_kafka_config_entries,
&subsubti, "Entries");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 4, api_version,
&dissect_kafka_describe_configs_response_entry, NULL);
proto_item_set_end(subsubti, tvb, offset);
+
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+ }
+
proto_item_set_end(subti, tvb, offset);
return offset;
@@ -7201,11 +7944,15 @@ dissect_kafka_describe_configs_response(tvbuff_t *tvb, packet_info *pinfo, proto
subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
ett_kafka_resources,
&subti, "Resources");
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 4, api_version,
&dissect_kafka_describe_configs_response_resource, NULL);
proto_item_set_end(subti, tvb, offset);
+ if (api_version >= 4) {
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+ }
+
return offset;
}
@@ -8572,15 +9319,17 @@ dissect_kafka_list_partition_reassignments_request_topic(tvbuff_t *tvb, packet_i
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
- subsubtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_partitions, &subsubti, "Partitions");
+ subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1, ett_kafka_partitions, &subsubti, "Partitions");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 0, api_version,
&dissect_kafka_list_partition_reassignments_request_partition, NULL);
proto_item_set_end(subti, tvb, offset);
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+
return offset;
}
@@ -8597,11 +9346,13 @@ dissect_kafka_list_partition_reassignments_request(tvbuff_t *tvb, packet_info *p
subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
ett_kafka_topics,
&subti, "Topics");
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 0, api_version,
&dissect_kafka_list_partition_reassignments_request_topic, NULL);
proto_item_set_end(subti, tvb, offset);
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+
return offset;
}
@@ -8629,29 +9380,31 @@ dissect_kafka_list_partition_reassignments_response_partition(tvbuff_t *tvb, pac
offset = dissect_kafka_error(tvb, pinfo, subtree, offset);
- offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
ett_kafka_replicas,
&subsubti, "Current Replicas");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 0, api_version,
&dissect_kafka_list_partition_reassignments_response_replica, NULL);
proto_item_set_end(subsubti, tvb, offset);
subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
ett_kafka_replicas,
&subsubti, "Adding Replicas");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 0, api_version,
&dissect_kafka_list_partition_reassignments_response_replica, NULL);
proto_item_set_end(subsubti, tvb, offset);
subsubtree = proto_tree_add_subtree(subtree, tvb, offset, -1,
ett_kafka_replicas,
&subsubti, "Removing Replicas");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 0, api_version,
&dissect_kafka_list_partition_reassignments_response_replica, NULL);
proto_item_set_end(subsubti, tvb, offset);
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+
proto_item_set_end(subti, tvb, offset);
return offset;
@@ -8666,13 +9419,15 @@ dissect_kafka_list_partition_reassignments_response_topic(tvbuff_t *tvb, packet_
subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topic, &subti, "Topic");
- offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(subtree, hf_kafka_topic_name, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
subsubtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_partitions, &subsubti, "Partitions");
- offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subsubtree, tvb, pinfo, offset, api_version >= 0, api_version,
&dissect_kafka_list_partition_reassignments_response_partition, NULL);
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+
proto_item_set_end(subti, tvb, offset);
return offset;
@@ -8689,16 +9444,18 @@ dissect_kafka_list_partition_reassignments_response(tvbuff_t *tvb, packet_info *
offset = dissect_kafka_error(tvb, pinfo, tree, offset);
- offset = dissect_kafka_string(tree, hf_kafka_error_message, tvb, pinfo, offset, 0, NULL, NULL);
+ offset = dissect_kafka_string(tree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
subtree = proto_tree_add_subtree(tree, tvb, offset, -1,
ett_kafka_topics,
&subti, "Topics");
- offset = dissect_kafka_array(subtree, tvb, pinfo, offset, 0, api_version,
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 0, api_version,
&dissect_kafka_list_partition_reassignments_response_topic, NULL);
proto_item_set_end(subti, tvb, offset);
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+
return offset;
}
@@ -8822,6 +9579,131 @@ dissect_kafka_offset_delete_response(tvbuff_t *tvb, packet_info *pinfo, proto_tr
return offset;
}
+/* DESCRIBE_CLUSTER REQUEST/RESPONSE */
+static int
+dissect_kafka_describe_cluster_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version)
+{
+ /* include_cluster_authorized_operations */
+ offset = dissect_kafka_bool(tree, hf_kafka_include_cluster_authorized_ops, tvb, pinfo, offset);
+
+ /* endpoint_type */
+ if (api_version >= 1) {
+ offset = dissect_kafka_int8(tree, hf_kafka_endpoint_type, tvb, pinfo, offset, NULL);
+ }
+
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+
+ return offset;
+}
+
+static int
+dissect_kafka_describe_cluster_response_broker(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version)
+{
+ proto_item *subti;
+ proto_tree *subtree;
+
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topics, &subti, "Broker");
+
+ /* broker_id */
+ offset = dissect_kafka_int32(subtree, hf_kafka_broker_nodeid, tvb, pinfo, offset, NULL);
+
+ /* host */
+ offset = dissect_kafka_string(subtree, hf_kafka_broker_host, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
+
+ /* port */
+ offset = dissect_kafka_int32(subtree, hf_kafka_broker_port, tvb, pinfo, offset, NULL);
+
+ /* rack */
+ offset = dissect_kafka_string(subtree, hf_kafka_rack, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
+
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, subtree, offset, 0);
+
+ proto_item_set_end(subti, tvb, offset);
+
+ return offset;
+}
+
+static int
+dissect_kafka_describe_cluster_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version)
+{
+ proto_item *subti;
+ proto_tree *subtree;
+
+ /* throttle_time */
+ offset = dissect_kafka_int32(tree, hf_kafka_throttle_time, tvb, pinfo, offset, NULL);
+
+ /* error */
+ offset = dissect_kafka_error(tvb, pinfo, tree, offset);
+
+ /* error_message */
+ offset = dissect_kafka_string(tree, hf_kafka_error_message, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
+
+ /* endpoint_type */
+ if (api_version >= 1) {
+ offset = dissect_kafka_int8(tree, hf_kafka_endpoint_type, tvb, pinfo, offset, NULL);
+ }
+
+ /* cluster_id */
+ offset = dissect_kafka_string(tree, hf_kafka_cluster_id, tvb, pinfo, offset, api_version >= 0, NULL, NULL);
+
+ /* controller_id */
+ offset = dissect_kafka_int32(tree, hf_kafka_controller_id, tvb, pinfo, offset, NULL);
+
+ /* [brokers] */
+ subtree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_kafka_topics, &subti, "Brokers");
+ offset = dissect_kafka_array(subtree, tvb, pinfo, offset, api_version >= 0, api_version,
+ &dissect_kafka_describe_cluster_response_broker, NULL);
+ proto_item_set_end(subti, tvb, offset);
+
+ /* cluster_authorized_operations */
+ offset = dissect_kafka_int32(tree, hf_kafka_cluster_authorized_ops, tvb, pinfo, offset, NULL);
+
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+
+ return offset;
+}
+
+/* ALLOCATE_PRODUCER_IDS REQUEST/RESPONSE */
+
+static int
+dissect_kafka_allocate_producer_ids_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version _U_)
+{
+ /* broker_id */
+ offset = dissect_kafka_int32(tree, hf_kafka_broker_nodeid, tvb, pinfo, offset, NULL);
+
+ /* broker_epoch */
+ offset = dissect_kafka_int64(tree, hf_kafka_broker_epoch, tvb, pinfo, offset, NULL);
+
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+
+ return offset;
+}
+
+static int
+dissect_kafka_allocate_producer_ids_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset,
+ kafka_api_version_t api_version _U_)
+{
+ /* throttle_time */
+ offset = dissect_kafka_int32(tree, hf_kafka_throttle_time, tvb, pinfo, offset, NULL);
+
+ /* error */
+ offset = dissect_kafka_error(tvb, pinfo, tree, offset);
+
+ /* producer_id_start */
+ offset = dissect_kafka_int64(tree, hf_kafka_producer_id_start, tvb, pinfo, offset, NULL);
+
+ /* producer_id_len */
+ offset = dissect_kafka_int32(tree, hf_kafka_producer_id_len, tvb, pinfo, offset, NULL);
+
+ offset = dissect_kafka_tagged_fields(tvb, pinfo, tree, offset, 0);
+
+ return offset;
+}
+
/* MAIN */
static wmem_multimap_t *
@@ -8866,6 +9748,7 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
guint32 pdu_length;
guint32 pdu_correlation_id;
kafka_query_response_t *matcher;
+ kafka_api_version_t dissect_api_version;
gboolean has_response = 1;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "Kafka");
@@ -8918,7 +9801,7 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
ti = proto_tree_add_item(kafka_tree, hf_kafka_api_version, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- kafka_check_supported_api_version(pinfo, ti, matcher);
+ dissect_api_version = kafka_check_supported_api_version(pinfo, ti, matcher);
proto_tree_add_item(kafka_tree, hf_kafka_correlation_id, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -8950,148 +9833,154 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
if (tvb_get_ntohs(tvb, offset) == KAFKA_ACK_NOT_REQUIRED) {
has_response = 0;
}
- offset = dissect_kafka_produce_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_produce_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_FETCH:
- offset = dissect_kafka_fetch_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_fetch_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSETS:
- offset = dissect_kafka_offsets_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offsets_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_METADATA:
- offset = dissect_kafka_metadata_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_metadata_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LEADER_AND_ISR:
- offset = dissect_kafka_leader_and_isr_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_leader_and_isr_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_STOP_REPLICA:
- offset = dissect_kafka_stop_replica_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_stop_replica_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_UPDATE_METADATA:
- offset = dissect_kafka_update_metadata_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_update_metadata_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CONTROLLED_SHUTDOWN:
- offset = dissect_kafka_controlled_shutdown_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_controlled_shutdown_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_COMMIT:
- offset = dissect_kafka_offset_commit_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_commit_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_FETCH:
- offset = dissect_kafka_offset_fetch_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_fetch_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_FIND_COORDINATOR:
- offset = dissect_kafka_find_coordinator_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_find_coordinator_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_JOIN_GROUP:
- offset = dissect_kafka_join_group_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_join_group_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_HEARTBEAT:
- offset = dissect_kafka_heartbeat_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_heartbeat_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LEAVE_GROUP:
- offset = dissect_kafka_leave_group_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_leave_group_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_SYNC_GROUP:
- offset = dissect_kafka_sync_group_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_sync_group_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_GROUPS:
- offset = dissect_kafka_describe_groups_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_groups_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LIST_GROUPS:
- offset = dissect_kafka_list_groups_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_list_groups_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_SASL_HANDSHAKE:
- offset = dissect_kafka_sasl_handshake_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_sasl_handshake_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_API_VERSIONS:
- offset = dissect_kafka_api_versions_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_api_versions_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_TOPICS:
- offset = dissect_kafka_create_topics_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_topics_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_TOPICS:
- offset = dissect_kafka_delete_topics_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_topics_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_RECORDS:
- offset = dissect_kafka_delete_records_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_records_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_INIT_PRODUCER_ID:
- offset = dissect_kafka_init_producer_id_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_init_producer_id_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_FOR_LEADER_EPOCH:
- offset = dissect_kafka_offset_for_leader_epoch_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_for_leader_epoch_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ADD_PARTITIONS_TO_TXN:
- offset = dissect_kafka_add_partitions_to_txn_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_add_partitions_to_txn_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ADD_OFFSETS_TO_TXN:
- offset = dissect_kafka_add_offsets_to_txn_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_add_offsets_to_txn_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_END_TXN:
- offset = dissect_kafka_end_txn_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_end_txn_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_WRITE_TXN_MARKERS:
- offset = dissect_kafka_write_txn_markers_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_write_txn_markers_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_TXN_OFFSET_COMMIT:
- offset = dissect_kafka_txn_offset_commit_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_txn_offset_commit_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_ACLS:
- offset = dissect_kafka_describe_acls_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_acls_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_ACLS:
- offset = dissect_kafka_create_acls_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_acls_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_ACLS:
- offset = dissect_kafka_delete_acls_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_acls_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_CONFIGS:
- offset = dissect_kafka_describe_configs_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_configs_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ALTER_CONFIGS:
- offset = dissect_kafka_alter_configs_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_alter_configs_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ALTER_REPLICA_LOG_DIRS:
- offset = dissect_kafka_alter_replica_log_dirs_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_alter_replica_log_dirs_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_LOG_DIRS:
- offset = dissect_kafka_describe_log_dirs_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_log_dirs_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_PARTITIONS:
- offset = dissect_kafka_create_partitions_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_partitions_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_SASL_AUTHENTICATE:
- offset = dissect_kafka_sasl_authenticate_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_sasl_authenticate_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_DELEGATION_TOKEN:
- offset = dissect_kafka_create_delegation_token_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_delegation_token_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_RENEW_DELEGATION_TOKEN:
- offset = dissect_kafka_renew_delegation_token_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_renew_delegation_token_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_EXPIRE_DELEGATION_TOKEN:
- offset = dissect_kafka_expire_delegation_token_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_expire_delegation_token_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_DELEGATION_TOKEN:
- offset = dissect_kafka_describe_delegation_token_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_delegation_token_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_GROUPS:
- offset = dissect_kafka_delete_groups_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_groups_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ELECT_LEADERS:
- offset = dissect_kafka_elect_leaders_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_elect_leaders_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_INC_ALTER_CONFIGS:
- offset = dissect_kafka_inc_alter_configs_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_inc_alter_configs_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ALTER_PARTITION_REASSIGNMENTS:
- offset = dissect_kafka_alter_partition_reassignments_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_alter_partition_reassignments_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LIST_PARTITION_REASSIGNMENTS:
- offset = dissect_kafka_list_partition_reassignments_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_list_partition_reassignments_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_DELETE:
- offset = dissect_kafka_offset_delete_request(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_delete_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
+ break;
+ case KAFKA_DESCRIBE_CLUSTER:
+ offset = dissect_kafka_describe_cluster_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
+ break;
+ case KAFKA_ALLOCATE_PRODUCER_IDS:
+ offset = dissect_kafka_allocate_producer_ids_request(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
}
@@ -9144,7 +10033,7 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
ti = proto_tree_add_int(kafka_tree, hf_kafka_response_api_version, tvb,
0, 0, matcher->api_version);
proto_item_set_generated(ti);
- kafka_check_supported_api_version(pinfo, ti, matcher);
+ dissect_api_version = kafka_check_supported_api_version(pinfo, ti, matcher);
if (matcher->api_key == KAFKA_API_VERSIONS) {
/*
@@ -9160,148 +10049,154 @@ dissect_kafka(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
switch (matcher->api_key) {
case KAFKA_PRODUCE:
- offset = dissect_kafka_produce_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_produce_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_FETCH:
- offset = dissect_kafka_fetch_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_fetch_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSETS:
- offset = dissect_kafka_offsets_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offsets_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_METADATA:
- offset = dissect_kafka_metadata_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_metadata_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LEADER_AND_ISR:
- offset = dissect_kafka_leader_and_isr_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_leader_and_isr_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_STOP_REPLICA:
- offset = dissect_kafka_stop_replica_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_stop_replica_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_UPDATE_METADATA:
- offset = dissect_kafka_update_metadata_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_update_metadata_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CONTROLLED_SHUTDOWN:
- offset = dissect_kafka_controlled_shutdown_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_controlled_shutdown_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_COMMIT:
- offset = dissect_kafka_offset_commit_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_commit_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_FETCH:
- offset = dissect_kafka_offset_fetch_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_fetch_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_FIND_COORDINATOR:
- offset = dissect_kafka_find_coordinator_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_find_coordinator_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_JOIN_GROUP:
- offset = dissect_kafka_join_group_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_join_group_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_HEARTBEAT:
- offset = dissect_kafka_heartbeat_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_heartbeat_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LEAVE_GROUP:
- offset = dissect_kafka_leave_group_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_leave_group_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_SYNC_GROUP:
- offset = dissect_kafka_sync_group_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_sync_group_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_GROUPS:
- offset = dissect_kafka_describe_groups_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_groups_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LIST_GROUPS:
- offset = dissect_kafka_list_groups_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_list_groups_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_SASL_HANDSHAKE:
- offset = dissect_kafka_sasl_handshake_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_sasl_handshake_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_API_VERSIONS:
- offset = dissect_kafka_api_versions_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_api_versions_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_TOPICS:
- offset = dissect_kafka_create_topics_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_topics_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_TOPICS:
- offset = dissect_kafka_delete_topics_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_topics_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_RECORDS:
- offset = dissect_kafka_delete_records_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_records_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_INIT_PRODUCER_ID:
- offset = dissect_kafka_init_producer_id_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_init_producer_id_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_FOR_LEADER_EPOCH:
- offset = dissect_kafka_offset_for_leader_epoch_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_for_leader_epoch_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ADD_PARTITIONS_TO_TXN:
- offset = dissect_kafka_add_partitions_to_txn_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_add_partitions_to_txn_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ADD_OFFSETS_TO_TXN:
- offset = dissect_kafka_add_offsets_to_txn_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_add_offsets_to_txn_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_END_TXN:
- offset = dissect_kafka_end_txn_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_end_txn_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_WRITE_TXN_MARKERS:
- offset = dissect_kafka_write_txn_markers_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_write_txn_markers_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_TXN_OFFSET_COMMIT:
- offset = dissect_kafka_txn_offset_commit_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_txn_offset_commit_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_ACLS:
- offset = dissect_kafka_describe_acls_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_acls_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_ACLS:
- offset = dissect_kafka_create_acls_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_acls_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_ACLS:
- offset = dissect_kafka_delete_acls_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_acls_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_CONFIGS:
- offset = dissect_kafka_describe_configs_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_configs_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ALTER_CONFIGS:
- offset = dissect_kafka_alter_configs_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_alter_configs_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ALTER_REPLICA_LOG_DIRS:
- offset = dissect_kafka_alter_replica_log_dirs_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_alter_replica_log_dirs_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_LOG_DIRS:
- offset = dissect_kafka_describe_log_dirs_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_log_dirs_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_PARTITIONS:
- offset = dissect_kafka_create_partitions_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_partitions_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_SASL_AUTHENTICATE:
- offset = dissect_kafka_sasl_authenticate_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_sasl_authenticate_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_CREATE_DELEGATION_TOKEN:
- offset = dissect_kafka_create_delegation_token_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_create_delegation_token_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_RENEW_DELEGATION_TOKEN:
- offset = dissect_kafka_renew_delegation_token_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_renew_delegation_token_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_EXPIRE_DELEGATION_TOKEN:
- offset = dissect_kafka_expire_delegation_token_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_expire_delegation_token_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DESCRIBE_DELEGATION_TOKEN:
- offset = dissect_kafka_describe_delegation_token_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_describe_delegation_token_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_DELETE_GROUPS:
- offset = dissect_kafka_delete_groups_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_delete_groups_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ELECT_LEADERS:
- offset = dissect_kafka_elect_leaders_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_elect_leaders_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_INC_ALTER_CONFIGS:
- offset = dissect_kafka_inc_alter_configs_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_inc_alter_configs_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_ALTER_PARTITION_REASSIGNMENTS:
- offset = dissect_kafka_alter_partition_reassignments_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_alter_partition_reassignments_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_LIST_PARTITION_REASSIGNMENTS:
- offset = dissect_kafka_list_partition_reassignments_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_list_partition_reassignments_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
case KAFKA_OFFSET_DELETE:
- offset = dissect_kafka_offset_delete_response(tvb, pinfo, kafka_tree, offset, matcher->api_version);
+ offset = dissect_kafka_offset_delete_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
+ break;
+ case KAFKA_DESCRIBE_CLUSTER:
+ offset = dissect_kafka_describe_cluster_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
+ break;
+ case KAFKA_ALLOCATE_PRODUCER_IDS:
+ offset = dissect_kafka_allocate_producer_ids_response(tvb, pinfo, kafka_tree, offset, dissect_api_version);
break;
}
@@ -9484,6 +10379,11 @@ proto_register_kafka_protocol_fields(int protocol)
FT_INT32, BASE_DEC, 0, 0,
NULL, HFILL }
},
+ { &hf_kafka_topic_id,
+ { "Topic ID", "kafka.topic_id",
+ FT_GUID, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
{ &hf_kafka_topic_name,
{ "Topic Name", "kafka.topic_name",
FT_STRING, BASE_NONE, 0, 0,
@@ -9864,6 +10764,11 @@ proto_register_kafka_protocol_fields(int protocol)
FT_BOOLEAN, BASE_NONE, 0, 0,
NULL, HFILL }
},
+ { &hf_kafka_leader_recovery_state,
+ { "Leader Recovery State", "kafka.leader_recovery_state",
+ FT_INT8, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
{ &hf_kafka_config_key,
{ "Key", "kafka.config_key",
FT_STRING, BASE_NONE, 0, 0,
@@ -9894,6 +10799,11 @@ proto_register_kafka_protocol_fields(int protocol)
FT_STRING, BASE_NONE, 0, 0,
NULL, HFILL }
},
+ { &hf_kafka_forgotten_topic_id,
+ { "Forgotten Topic ID", "kafka.forgotten_topic_id",
+ FT_GUID, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
{ &hf_kafka_forgotten_topic_partition,
{ "Forgotten Topic Partition", "kafka.forgotten_topic_partition",
FT_INT64, BASE_DEC, 0, 0,
@@ -10004,6 +10914,11 @@ proto_register_kafka_protocol_fields(int protocol)
FT_BOOLEAN, BASE_NONE, 0, 0,
NULL, HFILL }
},
+ { &hf_kafka_config_include_documentation,
+ { "Include Documentation", "kafka.config_include_documentation",
+ FT_BOOLEAN, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
{ &hf_kafka_config_default,
{ "Default", "kafka.config_default",
FT_BOOLEAN, BASE_NONE, 0, 0,
@@ -10019,6 +10934,16 @@ proto_register_kafka_protocol_fields(int protocol)
FT_BOOLEAN, BASE_NONE, 0, 0,
NULL, HFILL }
},
+ { &hf_kafka_config_data_type,
+ { "Data Type", "kafka.config_data_type",
+ FT_INT8, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_config_documentation,
+ { "Documentation", "kafka.config_documentation",
+ FT_STRING, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
{ &hf_kafka_config_source,
{ "Source", "kafka.config_source",
FT_INT8, BASE_DEC, VALS(config_sources), 0,
@@ -10154,6 +11079,66 @@ proto_register_kafka_protocol_fields(int protocol)
FT_STRING, BASE_NONE, 0, 0,
NULL, HFILL }
},
+ { &hf_kafka_is_kraft_controller,
+ { "Is KRaft Controller", "kafka.is_kraft_controller",
+ FT_BOOLEAN, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_topic_inclusion_type,
+ { "Topic Inclusion Type", "kafka.topic_inclusion_type",
+ FT_INT8, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_delete_partition,
+ { "Delete Partition", "kafka.delete_partition",
+ FT_BOOLEAN, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_join_reason,
+ { "(Re)Join Reason", "kafka.join_reason",
+ FT_STRING, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_leave_reason,
+ { "Leave Reason", "kafka.leave_reason",
+ FT_STRING, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_skip_assignment,
+ { "Skip Assignment", "kafka.skip_assignment",
+ FT_BOOLEAN, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_producer_id_start,
+ { "First Producer ID", "kafka.producer_id_start",
+ FT_INT64, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_producer_id_len,
+ { "Number of Producers", "kafka.producer_len",
+ FT_INT32, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_group_id,
+ { "Group ID", "kafka.group_id",
+ FT_STRING, BASE_NONE, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_member_epoch,
+ { "Member Epoch", "kafka.member_epoch",
+ FT_INT32, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_endpoint_type,
+ { "Endpoint Type", "kafka.endpoint_type",
+ FT_INT8, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
+ { &hf_kafka_last_fetched_epoch,
+ { "Last Fetched Epoch", "kafka.last_fetched_epoch",
+ FT_INT32, BASE_DEC, 0, 0,
+ NULL, HFILL }
+ },
};
proto_register_field_array(protocol, hf, array_length(hf));
@@ -10239,6 +11224,8 @@ proto_register_kafka_expert_module(const int proto) {
{ "kafka.unknown_api_key", PI_UNDECODED, PI_WARN, "Unknown API key", EXPFILL }},
{ &ei_kafka_unsupported_api_version,
{ "kafka.unsupported_api_version", PI_UNDECODED, PI_WARN, "Unsupported API version", EXPFILL }},
+ { &ei_kafka_assumed_api_version,
+ { "kafka.assumed_api_version", PI_ASSUMPTION, PI_WARN, "Assumed API version", EXPFILL }},
{ &ei_kafka_bad_string_length,
{ "kafka.bad_string_length", PI_MALFORMED, PI_WARN, "Invalid string length field", EXPFILL }},
{ &ei_kafka_bad_bytes_length,
@@ -10259,6 +11246,8 @@ proto_register_kafka_expert_module(const int proto) {
{ "kafka.unknown_message_magic", PI_MALFORMED, PI_WARN, "Invalid message magic field", EXPFILL }},
{ &ei_kafka_pdu_length_mismatch,
{ "kafka.pdu_length_mismatch", PI_MALFORMED, PI_WARN, "Dissected message does not end at the pdu length offset", EXPFILL }},
+ { &ei_kafka_zero_field_length,
+ { "kafka.zero_field_length", PI_MALFORMED, PI_WARN, "Zero length field", EXPFILL }},
};
expert_kafka = expert_register_protocol(proto);
expert_register_field_array(expert_kafka, ei, array_length(ei));
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c
index ec6f4bac1b..c4f137227c 100644
--- a/epan/dissectors/packet-kerberos.c
+++ b/epan/dissectors/packet-kerberos.c
@@ -131,6 +131,7 @@ typedef struct {
#ifdef HAVE_KERBEROS
enc_key_t *last_decryption_key;
enc_key_t *last_added_key;
+ enc_key_t *current_ticket_key;
tvbuff_t *last_ticket_enc_part_tvb;
#endif
gint save_encryption_key_parent_hf_index;
@@ -191,9 +192,14 @@ static int dissect_kerberos_KrbFastReq(bool implicit_tag _U_, tvbuff_t *tvb _U_,
static int dissect_kerberos_KrbFastResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
static int dissect_kerberos_FastOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#endif
+static int dissect_kerberos_KRB5_SRP_PA_ANNOUNCE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_INIT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_SERVER_CHALLENGE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_CLIENT_RESPONSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KRB5_SRP_PA_SERVER_VERIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/* Desegment Kerberos over TCP messages */
-static gboolean krb_desegment = TRUE;
+static bool krb_desegment = true;
static gint proto_kerberos;
@@ -462,6 +468,14 @@ static int hf_kerberos_restriction_type; /* Int32 */
static int hf_kerberos_restriction; /* OCTET_STRING */
static int hf_kerberos_PA_KERB_KEY_LIST_REQ_item; /* ENCTYPE */
static int hf_kerberos_kerbKeyListRep_key; /* PA_KERB_KEY_LIST_REP_item */
+static int hf_kerberos_group; /* KRB5_SRP_GROUP */
+static int hf_kerberos_salt; /* OCTET_STRING */
+static int hf_kerberos_iterations; /* UInt32 */
+static int hf_kerberos_groups; /* SET_OF_KRB5_SRP_PA */
+static int hf_kerberos_groups_item; /* KRB5_SRP_PA */
+static int hf_kerberos_as_req_01; /* Checksum */
+static int hf_kerberos_group_01; /* UInt32 */
+static int hf_kerberos_a; /* OCTET_STRING */
static int hf_kerberos_newpasswd; /* OCTET_STRING */
static int hf_kerberos_targname; /* PrincipalName */
static int hf_kerberos_targrealm; /* Realm */
@@ -480,9 +494,9 @@ static int hf_kerberos_encryptedKrbFastResponse_cipher; /* T_encryptedKrbFastRe
static int hf_kerberos_enc_fast_rep; /* EncryptedKrbFastResponse */
static int hf_kerberos_encryptedChallenge_cipher; /* T_encryptedChallenge_cipher */
static int hf_kerberos_cipher; /* OCTET_STRING */
-static int hf_kerberos_groups; /* SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup */
-static int hf_kerberos_groups_item; /* SPAKEGroup */
-static int hf_kerberos_group; /* SPAKEGroup */
+static int hf_kerberos_groups_01; /* SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup */
+static int hf_kerberos_groups_item_01; /* SPAKEGroup */
+static int hf_kerberos_group_02; /* SPAKEGroup */
static int hf_kerberos_pubkey; /* OCTET_STRING */
static int hf_kerberos_factors; /* SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor */
static int hf_kerberos_factors_item; /* SPAKESecondFactor */
@@ -581,92 +595,96 @@ static gint ett_kerberos_KrbFastResponse;
static gint ett_kerberos_KrbFastReq;
static gint ett_kerberos_FastOptions;
#endif
-static gint ett_kerberos_Applications;
-static gint ett_kerberos_PrincipalName;
-static gint ett_kerberos_SEQUENCE_OF_KerberosString;
-static gint ett_kerberos_CName;
-static gint ett_kerberos_SEQUENCE_OF_CNameString;
-static gint ett_kerberos_SName;
-static gint ett_kerberos_SEQUENCE_OF_SNameString;
-static gint ett_kerberos_HostAddress;
-static gint ett_kerberos_HostAddresses;
-static gint ett_kerberos_AuthorizationData;
-static gint ett_kerberos_AuthorizationData_item;
-static gint ett_kerberos_PA_DATA;
-static gint ett_kerberos_EncryptionKey;
-static gint ett_kerberos_Checksum;
-static gint ett_kerberos_EncryptedTicketData;
-static gint ett_kerberos_EncryptedAuthorizationData;
-static gint ett_kerberos_EncryptedAuthenticator;
-static gint ett_kerberos_EncryptedKDCREPData;
-static gint ett_kerberos_EncryptedAPREPData;
-static gint ett_kerberos_EncryptedKrbPrivData;
-static gint ett_kerberos_EncryptedKrbCredData;
-static gint ett_kerberos_Ticket_U;
-static gint ett_kerberos_EncTicketPart_U;
-static gint ett_kerberos_TransitedEncoding;
-static gint ett_kerberos_KDC_REQ;
-static gint ett_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA;
-static gint ett_kerberos_KDC_REQ_BODY;
-static gint ett_kerberos_SEQUENCE_OF_ENCTYPE;
-static gint ett_kerberos_SEQUENCE_OF_Ticket;
-static gint ett_kerberos_KDC_REP;
-static gint ett_kerberos_T_rEP_SEQUENCE_OF_PA_DATA;
-static gint ett_kerberos_EncKDCRepPart;
-static gint ett_kerberos_LastReq;
-static gint ett_kerberos_LastReq_item;
-static gint ett_kerberos_AP_REQ_U;
-static gint ett_kerberos_Authenticator_U;
-static gint ett_kerberos_AP_REP_U;
-static gint ett_kerberos_EncAPRepPart_U;
-static gint ett_kerberos_KRB_SAFE_U;
-static gint ett_kerberos_KRB_SAFE_BODY;
-static gint ett_kerberos_KRB_PRIV_U;
-static gint ett_kerberos_EncKrbPrivPart;
-static gint ett_kerberos_KRB_CRED_U;
-static gint ett_kerberos_EncKrbCredPart_U;
-static gint ett_kerberos_SEQUENCE_OF_KrbCredInfo;
-static gint ett_kerberos_KrbCredInfo;
-static gint ett_kerberos_KRB_ERROR_U;
-static gint ett_kerberos_METHOD_DATA;
-static gint ett_kerberos_PA_ENC_TIMESTAMP;
-static gint ett_kerberos_ETYPE_INFO_ENTRY;
-static gint ett_kerberos_ETYPE_INFO;
-static gint ett_kerberos_ETYPE_INFO2_ENTRY;
-static gint ett_kerberos_ETYPE_INFO2;
-static gint ett_kerberos_TGT_REQ;
-static gint ett_kerberos_TGT_REP;
-static gint ett_kerberos_APOptions;
-static gint ett_kerberos_TicketFlags;
-static gint ett_kerberos_KDCOptions;
-static gint ett_kerberos_PA_PAC_REQUEST;
-static gint ett_kerberos_PA_S4U2Self;
-static gint ett_kerberos_PA_S4U_X509_USER;
-static gint ett_kerberos_S4UUserID;
-static gint ett_kerberos_PAC_OPTIONS_FLAGS;
-static gint ett_kerberos_PA_PAC_OPTIONS;
-static gint ett_kerberos_KERB_AD_RESTRICTION_ENTRY_U;
-static gint ett_kerberos_PA_KERB_KEY_LIST_REQ;
-static gint ett_kerberos_PA_KERB_KEY_LIST_REP;
-static gint ett_kerberos_ChangePasswdData;
-static gint ett_kerberos_PA_AUTHENTICATION_SET_ELEM;
-static gint ett_kerberos_KrbFastArmor;
-static gint ett_kerberos_PA_FX_FAST_REQUEST;
-static gint ett_kerberos_EncryptedKrbFastReq;
-static gint ett_kerberos_KrbFastArmoredReq;
-static gint ett_kerberos_PA_FX_FAST_REPLY;
-static gint ett_kerberos_EncryptedKrbFastResponse;
-static gint ett_kerberos_KrbFastArmoredRep;
-static gint ett_kerberos_EncryptedChallenge;
-static gint ett_kerberos_EncryptedSpakeData;
-static gint ett_kerberos_EncryptedSpakeResponseData;
-static gint ett_kerberos_SPAKESupport;
-static gint ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup;
-static gint ett_kerberos_SPAKEChallenge;
-static gint ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor;
-static gint ett_kerberos_SPAKESecondFactor;
-static gint ett_kerberos_SPAKEResponse;
-static gint ett_kerberos_PA_SPAKE;
+static int ett_kerberos_Applications;
+static int ett_kerberos_PrincipalName;
+static int ett_kerberos_SEQUENCE_OF_KerberosString;
+static int ett_kerberos_CName;
+static int ett_kerberos_SEQUENCE_OF_CNameString;
+static int ett_kerberos_SName;
+static int ett_kerberos_SEQUENCE_OF_SNameString;
+static int ett_kerberos_HostAddress;
+static int ett_kerberos_HostAddresses;
+static int ett_kerberos_AuthorizationData;
+static int ett_kerberos_AuthorizationData_item;
+static int ett_kerberos_PA_DATA;
+static int ett_kerberos_EncryptionKey;
+static int ett_kerberos_Checksum;
+static int ett_kerberos_EncryptedTicketData;
+static int ett_kerberos_EncryptedAuthorizationData;
+static int ett_kerberos_EncryptedAuthenticator;
+static int ett_kerberos_EncryptedKDCREPData;
+static int ett_kerberos_EncryptedAPREPData;
+static int ett_kerberos_EncryptedKrbPrivData;
+static int ett_kerberos_EncryptedKrbCredData;
+static int ett_kerberos_Ticket_U;
+static int ett_kerberos_EncTicketPart_U;
+static int ett_kerberos_TransitedEncoding;
+static int ett_kerberos_KDC_REQ;
+static int ett_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA;
+static int ett_kerberos_KDC_REQ_BODY;
+static int ett_kerberos_SEQUENCE_OF_ENCTYPE;
+static int ett_kerberos_SEQUENCE_OF_Ticket;
+static int ett_kerberos_KDC_REP;
+static int ett_kerberos_T_rEP_SEQUENCE_OF_PA_DATA;
+static int ett_kerberos_EncKDCRepPart;
+static int ett_kerberos_LastReq;
+static int ett_kerberos_LastReq_item;
+static int ett_kerberos_AP_REQ_U;
+static int ett_kerberos_Authenticator_U;
+static int ett_kerberos_AP_REP_U;
+static int ett_kerberos_EncAPRepPart_U;
+static int ett_kerberos_KRB_SAFE_U;
+static int ett_kerberos_KRB_SAFE_BODY;
+static int ett_kerberos_KRB_PRIV_U;
+static int ett_kerberos_EncKrbPrivPart;
+static int ett_kerberos_KRB_CRED_U;
+static int ett_kerberos_EncKrbCredPart_U;
+static int ett_kerberos_SEQUENCE_OF_KrbCredInfo;
+static int ett_kerberos_KrbCredInfo;
+static int ett_kerberos_KRB_ERROR_U;
+static int ett_kerberos_METHOD_DATA;
+static int ett_kerberos_PA_ENC_TIMESTAMP;
+static int ett_kerberos_ETYPE_INFO_ENTRY;
+static int ett_kerberos_ETYPE_INFO;
+static int ett_kerberos_ETYPE_INFO2_ENTRY;
+static int ett_kerberos_ETYPE_INFO2;
+static int ett_kerberos_TGT_REQ;
+static int ett_kerberos_TGT_REP;
+static int ett_kerberos_APOptions;
+static int ett_kerberos_TicketFlags;
+static int ett_kerberos_KDCOptions;
+static int ett_kerberos_PA_PAC_REQUEST;
+static int ett_kerberos_PA_S4U2Self;
+static int ett_kerberos_PA_S4U_X509_USER;
+static int ett_kerberos_S4UUserID;
+static int ett_kerberos_PAC_OPTIONS_FLAGS;
+static int ett_kerberos_PA_PAC_OPTIONS;
+static int ett_kerberos_KERB_AD_RESTRICTION_ENTRY_U;
+static int ett_kerberos_PA_KERB_KEY_LIST_REQ;
+static int ett_kerberos_PA_KERB_KEY_LIST_REP;
+static int ett_kerberos_KRB5_SRP_PA;
+static int ett_kerberos_KRB5_SRP_PA_ANNOUNCE;
+static int ett_kerberos_SET_OF_KRB5_SRP_PA;
+static int ett_kerberos_KRB5_SRP_PA_INIT_U;
+static int ett_kerberos_ChangePasswdData;
+static int ett_kerberos_PA_AUTHENTICATION_SET_ELEM;
+static int ett_kerberos_KrbFastArmor;
+static int ett_kerberos_PA_FX_FAST_REQUEST;
+static int ett_kerberos_EncryptedKrbFastReq;
+static int ett_kerberos_KrbFastArmoredReq;
+static int ett_kerberos_PA_FX_FAST_REPLY;
+static int ett_kerberos_EncryptedKrbFastResponse;
+static int ett_kerberos_KrbFastArmoredRep;
+static int ett_kerberos_EncryptedChallenge;
+static int ett_kerberos_EncryptedSpakeData;
+static int ett_kerberos_EncryptedSpakeResponseData;
+static int ett_kerberos_SPAKESupport;
+static int ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup;
+static int ett_kerberos_SPAKEChallenge;
+static int ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor;
+static int ett_kerberos_SPAKESecondFactor;
+static int ett_kerberos_SPAKEResponse;
+static int ett_kerberos_PA_SPAKE;
static expert_field ei_kerberos_missing_keytype;
static expert_field ei_kerberos_decrypted_keytype;
@@ -674,7 +692,7 @@ static expert_field ei_kerberos_learnt_keytype;
static expert_field ei_kerberos_address;
static expert_field ei_krb_gssapi_dlglen;
-static dissector_handle_t krb4_handle=NULL;
+static dissector_handle_t krb4_handle;
/* Global variables */
static guint32 gbl_keytype;
@@ -705,7 +723,8 @@ typedef enum _KERBEROS_AUTHDATA_TYPE_enum {
KERBEROS_AD_AP_OPTIONS = 143,
KERBEROS_AD_TARGET_PRINCIPAL = 144,
KERBEROS_AD_SIGNTICKET_OLDER = -17,
- KERBEROS_AD_SIGNTICKET = 512
+ KERBEROS_AD_SIGNTICKET = 512,
+ KERBEROS_AD_PFS = 513
} KERBEROS_AUTHDATA_TYPE_enum;
/* enumerated values for ADDR_TYPE */
@@ -788,6 +807,7 @@ typedef enum _KERBEROS_PADATA_TYPE_enum {
KERBEROS_PA_SUPPORTED_ETYPES = 165,
KERBEROS_PA_EXTENDED_ERROR = 166,
KERBEROS_PA_PAC_OPTIONS = 167,
+ KERBEROS_PA_SRP = 250,
KERBEROS_PA_PROV_SRV_LOCATION = -1
} KERBEROS_PADATA_TYPE_enum;
@@ -894,7 +914,7 @@ static int dissect_kerberos_defer_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbu
#ifdef HAVE_KERBEROS
/* Decrypt Kerberos blobs */
-gboolean krb_decrypt = FALSE;
+bool krb_decrypt;
/* keytab filename */
static const char *keytab_filename = "";
@@ -925,10 +945,10 @@ read_keytab_file_from_preferences(void)
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
enc_key_t *enc_key_list=NULL;
-static guint kerberos_longterm_ids = 0;
-wmem_map_t *kerberos_longterm_keys = NULL;
-static wmem_map_t *kerberos_all_keys = NULL;
-static wmem_map_t *kerberos_app_session_keys = NULL;
+static guint kerberos_longterm_ids;
+wmem_map_t *kerberos_longterm_keys;
+static wmem_map_t *kerberos_all_keys;
+static wmem_map_t *kerberos_app_session_keys;
static bool
enc_key_list_cb(wmem_allocator_t* allocator _U_, wmem_cb_event_t event _U_, void *user_data _U_)
@@ -1308,6 +1328,22 @@ save_EncAPRepPart_subkey(tvbuff_t *tvb, int offset, int length,
return;
}
+ private_data->last_added_key->is_ap_rep_key = true;
+
+ if (private_data->last_decryption_key != NULL &&
+ private_data->last_decryption_key->is_ticket_key)
+ {
+ enc_key_t *ak = private_data->last_added_key;
+ enc_key_t *tk = private_data->last_decryption_key;
+
+ /*
+ * The enc_key_t structures and their strings
+ * in pac_names are all allocated on wmem_epan_scope(),
+ * so we don't need to copy the content.
+ */
+ ak->pac_names = tk->pac_names;
+ }
+
kerberos_key_map_insert(kerberos_app_session_keys, private_data->last_added_key);
}
@@ -1326,7 +1362,20 @@ save_EncTicketPart_key(tvbuff_t *tvb, int offset, int length,
int parent_hf_index,
int hf_index)
{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+
save_encryption_key(tvb, offset, length, actx, tree, parent_hf_index, hf_index);
+
+ if (actx->pinfo->fd->visited) {
+ return;
+ }
+
+ if (private_data->last_added_key == NULL) {
+ return;
+ }
+
+ private_data->current_ticket_key = private_data->last_added_key;
+ private_data->current_ticket_key->is_ticket_key = true;
}
static void
@@ -2295,7 +2344,6 @@ encode_krb5_enc_tkt_part(const krb5_enc_tkt_part *rep, krb5_data **code);
static int
keytype_for_cksumtype(krb5_cksumtype checksum)
{
-#define _ARRAY_SIZE(X) (sizeof(X) / sizeof((X)[0]))
static const int keytypes[] = {
18,
17,
@@ -2303,7 +2351,7 @@ keytype_for_cksumtype(krb5_cksumtype checksum)
};
guint i;
- for (i = 0; i < _ARRAY_SIZE(keytypes); i++) {
+ for (i = 0; i < array_length(keytypes); i++) {
krb5_cksumtype checksumtype = 0;
krb5_error_code ret;
@@ -3185,7 +3233,7 @@ typedef struct _service_key_t {
guint8 *contents;
char origin[KRB_MAX_ORIG_LEN+1];
} service_key_t;
-GSList *service_key_list = NULL;
+GSList *service_key_list;
static void
@@ -3442,7 +3490,7 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
if (datalen) {
*datalen = data_len;
}
- return(plaintext);
+ return plaintext;
}
tvb_free(encr_tvb);
}
@@ -3774,6 +3822,64 @@ static const true_false_string tfs_gss_flags_dce_style = {
"Not using DCE-STYLE"
};
+static int dissect_kerberos_KRB5_SRP_PA_APPLICATIONS(bool implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index)
+{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ proto_item *pi1 = proto_item_get_parent(actx->created_item);
+ proto_item *pi2 = proto_item_get_parent(pi1);
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ /*
+ * dissect_ber_octet_string_wcb() always passes
+ * implicit_tag=FALSE, offset=0 and hf_index=-1
+ */
+ ws_assert(implicit_tag == FALSE);
+ ws_assert(offset == 0);
+ ws_assert(hf_index <= 0);
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class != BER_CLASS_APP) {
+ if (kerberos_private_is_kdc_req(private_data)) {
+ goto unknown;
+ }
+ if (private_data->errorcode != KRB5_ET_KRB5KDC_ERR_PREAUTH_REQUIRED) {
+ goto unknown;
+ }
+
+ proto_item_append_text(pi1, " KRB5_SRP_PA_ANNOUNCE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_ANNOUNCE");
+ return dissect_kerberos_KRB5_SRP_PA_ANNOUNCE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ }
+
+ switch (tag) {
+ case 0:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_INIT");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_INIT");
+ return dissect_kerberos_KRB5_SRP_PA_INIT(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 1:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_SERVER_CHALLENGE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_SERVER_CHALLENGE");
+ return dissect_kerberos_KRB5_SRP_PA_SERVER_CHALLENGE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 2:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_CLIENT_RESPONSE");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_CLIENT_RESPONSE");
+ return dissect_kerberos_KRB5_SRP_PA_CLIENT_RESPONSE(implicit_tag, tvb, offset, actx, tree, hf_index);
+ case 3:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_SERVER_VERIFIER");
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_SERVER_VERIFIER");
+ return dissect_kerberos_KRB5_SRP_PA_SERVER_VERIFIER(implicit_tag, tvb, offset, actx, tree, hf_index);
+ default:
+ break;
+ }
+
+unknown:
+ proto_item_append_text(pi1, " KRB5_SRP_PA_UNKNOWN: ber_class:%u ber_pc=%u ber_tag:%"PRIu32"", ber_class, pc, tag);
+ proto_item_append_text(pi2, ": KRB5_SRP_PA_UNKNOWN");
+ return tvb_reported_length_remaining(tvb, offset);
+}
+
#ifdef HAVE_KERBEROS
static guint8 *
decrypt_krb5_data_asn1(proto_tree *tree, asn1_ctx_t *actx,
@@ -3812,6 +3918,7 @@ dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, a
if(plaintext){
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
tvbuff_t *last_ticket_enc_part_tvb = private_data->last_ticket_enc_part_tvb;
+ enc_key_t *current_ticket_key = private_data->current_ticket_key;
tvbuff_t *child_tvb;
child_tvb = tvb_new_child_real_data(tvb, plaintext, length, length);
@@ -3819,7 +3926,9 @@ dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, a
add_new_data_source(actx->pinfo, child_tvb, "Krb5 Ticket");
private_data->last_ticket_enc_part_tvb = child_tvb;
+ private_data->current_ticket_key = NULL;
offset=dissect_kerberos_Applications(FALSE, child_tvb, 0, actx , tree, /* hf_index*/ -1);
+ private_data->current_ticket_key = current_ticket_key;
private_data->last_ticket_enc_part_tvb = last_ticket_enc_part_tvb;
}
return offset;
@@ -4499,8 +4608,9 @@ dissect_krb5_PAC_LOGON_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
proto_item *item;
proto_tree *tree;
guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
- static dcerpc_info di; /* fake dcerpc_info struct */
- static dcerpc_call_value call_data;
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &call_data, };
item = proto_tree_add_item(parent_tree, hf_krb_pac_logon_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_logon_info);
@@ -4511,14 +4621,11 @@ dissect_krb5_PAC_LOGON_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
/* the PAC_LOGON_INFO blob */
- /* fake whatever state the dcerpc runtime support needs */
- di.conformant_run=0;
- /* we need di->call_data->flags.NDR64 == 0 */
- di.call_data=&call_data;
init_ndr_pointer_list(&di);
offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
netlogon_dissect_PAC_LOGON_INFO, NDR_POINTER_UNIQUE,
"PAC_LOGON_INFO:", -1);
+ free_ndr_pointer_list(&di);
return offset;
}
@@ -4590,8 +4697,9 @@ dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
proto_item *item;
proto_tree *tree;
guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
- static dcerpc_info di; /* fake dcerpc_info struct */
- static dcerpc_call_value call_data;
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &call_data, };
item = proto_tree_add_item(parent_tree, hf_krb_pac_s4u_delegation_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_s4u_delegation_info);
@@ -4601,16 +4709,12 @@ dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
*/
offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
-
/* the S4U_DELEGATION_INFO blob. See [MS-PAC] */
- /* fake whatever state the dcerpc runtime support needs */
- di.conformant_run=0;
- /* we need di->call_data->flags.NDR64 == 0 */
- di.call_data=&call_data;
init_ndr_pointer_list(&di);
offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
netlogon_dissect_PAC_S4U_DELEGATION_INFO, NDR_POINTER_UNIQUE,
"PAC_S4U_DELEGATION_INFO:", -1);
+ free_ndr_pointer_list(&di);
return offset;
}
@@ -4634,12 +4738,16 @@ static int * const hf_krb_pac_upn_flags_fields[] = {
static int
dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
{
+#ifdef HAVE_KERBEROS
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+#endif /* HAVE_KERBEROS */
proto_item *item;
proto_tree *tree;
guint16 dns_offset, dns_len;
guint16 upn_offset, upn_len;
guint16 samaccountname_offset = 0, samaccountname_len = 0;
guint16 objectsid_offset = 0, objectsid_len = 0;
+ char *sid_str = NULL;
guint32 flags;
item = proto_tree_add_item(parent_tree, hf_krb_pac_upn_dns_info, tvb, offset, -1, ENC_NA);
@@ -4700,9 +4808,38 @@ dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset
if (objectsid_offset != 0 && objectsid_len != 0) {
tvbuff_t *sid_tvb;
sid_tvb=tvb_new_subset_length(tvb, objectsid_offset, objectsid_len);
- dissect_nt_sid(sid_tvb, 0, tree, "objectSid", NULL, -1);
+ dissect_nt_sid(sid_tvb, 0, tree, "objectSid", &sid_str, -1);
}
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ enc_key_t *ek = private_data->current_ticket_key;
+
+ if (samaccountname_offset != 0 && samaccountname_len != 0) {
+ ek->pac_names.account_name = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ samaccountname_offset,
+ samaccountname_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ } else {
+ ek->pac_names.account_name = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ upn_offset,
+ upn_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ }
+ ek->pac_names.account_domain = tvb_get_string_enc(wmem_epan_scope(),
+ tvb,
+ dns_offset,
+ dns_len,
+ ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ if (sid_str != NULL) {
+ ek->pac_names.account_sid = wmem_strdup(wmem_epan_scope(),
+ sid_str);
+ }
+ }
+#endif /* HAVE_KERBEROS */
+
return dns_offset;
}
@@ -4723,11 +4860,22 @@ dissect_krb5_PAC_CLIENT_CLAIMS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
static int
dissect_krb5_PAC_DEVICE_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
{
+#ifdef HAVE_KERBEROS
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ const char *device_sid = NULL;
+#endif /* HAVE_KERBEROS */
proto_item *item;
proto_tree *tree;
guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
- static dcerpc_info di; /* fake dcerpc_info struct */
- static dcerpc_call_value call_data;
+ /* fake dcerpc_info struct */
+ dcerpc_call_value call_data = { .flags = 0, };
+ dcerpc_info di = { .ptype = UINT8_MAX, .call_data = &call_data, };
+
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ call_data.private_data = &device_sid;
+ }
+#endif /* HAVE_KERBEROS */
item = proto_tree_add_item(parent_tree, hf_krb_pac_device_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_device_info);
@@ -4738,14 +4886,23 @@ dissect_krb5_PAC_DEVICE_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset,
offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &drep[0], actx);
/* the PAC_DEVICE_INFO blob */
- /* fake whatever state the dcerpc runtime support needs */
- di.conformant_run=0;
- /* we need di->call_data->flags.NDR64 == 0 */
- di.call_data=&call_data;
init_ndr_pointer_list(&di);
offset = dissect_ndr_pointer(tvb, offset, actx->pinfo, tree, &di, drep,
netlogon_dissect_PAC_DEVICE_INFO, NDR_POINTER_UNIQUE,
"PAC_DEVICE_INFO:", -1);
+ free_ndr_pointer_list(&di);
+
+#ifdef HAVE_KERBEROS
+ if (private_data->current_ticket_key != NULL) {
+ enc_key_t *ek = private_data->current_ticket_key;
+
+ /*
+ * netlogon_dissect_PAC_DEVICE_INFO allocated on
+ * wmem_epan_scope() for us
+ */
+ ek->pac_names.device_sid = device_sid;
+ }
+#endif /* HAVE_KERBEROS */
return offset;
}
@@ -5508,6 +5665,7 @@ static const value_string kerberos_AUTHDATA_TYPE_vals[] = {
{ KERBEROS_AD_TARGET_PRINCIPAL, "aD-TARGET-PRINCIPAL" },
{ KERBEROS_AD_SIGNTICKET_OLDER, "aD-SIGNTICKET-OLDER" },
{ KERBEROS_AD_SIGNTICKET, "aD-SIGNTICKET" },
+ { KERBEROS_AD_PFS, "aD-PFS" },
{ 0, NULL }
};
@@ -5955,6 +6113,7 @@ static const value_string kerberos_PADATA_TYPE_vals[] = {
{ KERBEROS_PA_SUPPORTED_ETYPES, "pA-SUPPORTED-ETYPES" },
{ KERBEROS_PA_EXTENDED_ERROR, "pA-EXTENDED-ERROR" },
{ KERBEROS_PA_PAC_OPTIONS, "pA-PAC-OPTIONS" },
+ { KERBEROS_PA_SRP, "pA-SRP" },
{ KERBEROS_PA_PROV_SRV_LOCATION, "pA-PROV-SRV-LOCATION" },
{ 0, NULL }
};
@@ -6071,6 +6230,9 @@ dissect_kerberos_T_padata_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int of
case KERBEROS_PA_SPAKE:
offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_SPAKE);
break;
+ case KERBEROS_PA_SRP:
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_KRB5_SRP_PA_APPLICATIONS);
+ break;
default:
offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, NULL);
break;
@@ -7151,6 +7313,7 @@ static const value_string kerberos_ERROR_CODE_vals[] = {
{ 74, "eRR-REVOCATION-STATUS-UNAVAILABLE" },
{ 75, "eRR-CLIENT-NAME-MISMATCH" },
{ 76, "eRR-KDC-NAME-MISMATCH" },
+ { 91, "eRR-KDC-MORE-PREAUTH-DATA-REQUIRED" },
{ 0, NULL }
};
@@ -7628,6 +7791,121 @@ dissect_kerberos_PA_KERB_KEY_LIST_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_,
}
+static const value_string kerberos_KRB5_SRP_GROUP_vals[] = {
+ { 0, "kRB5-SRP-GROUP-INVALID" },
+ { 1, "kRB5-SRP-GROUP-RFC5054-4096-PBKDF2-SHA512" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_kerberos_KRB5_SRP_GROUP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t KRB5_SRP_PA_sequence[] = {
+ { &hf_kerberos_group , BER_CLASS_CON, 0, 0, dissect_kerberos_KRB5_SRP_GROUP },
+ { &hf_kerberos_salt , BER_CLASS_CON, 1, 0, dissect_kerberos_OCTET_STRING },
+ { &hf_kerberos_iterations , BER_CLASS_CON, 2, 0, dissect_kerberos_UInt32 },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_kerberos_KRB5_SRP_PA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ KRB5_SRP_PA_sequence, hf_index, ett_kerberos_KRB5_SRP_PA);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SET_OF_KRB5_SRP_PA_set_of[1] = {
+ { &hf_kerberos_groups_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_kerberos_KRB5_SRP_PA },
+};
+
+static int
+dissect_kerberos_SET_OF_KRB5_SRP_PA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ SET_OF_KRB5_SRP_PA_set_of, hf_index, ett_kerberos_SET_OF_KRB5_SRP_PA);
+
+ return offset;
+}
+
+
+static const ber_sequence_t KRB5_SRP_PA_ANNOUNCE_sequence[] = {
+ { &hf_kerberos_groups , BER_CLASS_CON, 0, 0, dissect_kerberos_SET_OF_KRB5_SRP_PA },
+ { &hf_kerberos_as_req_01 , BER_CLASS_CON, 1, 0, dissect_kerberos_Checksum },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_kerberos_KRB5_SRP_PA_ANNOUNCE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ KRB5_SRP_PA_ANNOUNCE_sequence, hf_index, ett_kerberos_KRB5_SRP_PA_ANNOUNCE);
+
+ return offset;
+}
+
+
+static const ber_sequence_t KRB5_SRP_PA_INIT_U_sequence[] = {
+ { &hf_kerberos_group_01 , BER_CLASS_CON, 0, 0, dissect_kerberos_UInt32 },
+ { &hf_kerberos_a , BER_CLASS_CON, 1, 0, dissect_kerberos_OCTET_STRING },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_kerberos_KRB5_SRP_PA_INIT_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ KRB5_SRP_PA_INIT_U_sequence, hf_index, ett_kerberos_KRB5_SRP_PA_INIT_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_kerberos_KRB5_SRP_PA_INIT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_APP, 0, FALSE, dissect_kerberos_KRB5_SRP_PA_INIT_U);
+
+ return offset;
+}
+
+
+
+static int
+dissect_kerberos_KRB5_SRP_PA_SERVER_CHALLENGE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_APP, 1, FALSE, dissect_kerberos_OCTET_STRING);
+
+ return offset;
+}
+
+
+
+static int
+dissect_kerberos_KRB5_SRP_PA_CLIENT_RESPONSE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_APP, 2, FALSE, dissect_kerberos_OCTET_STRING);
+
+ return offset;
+}
+
+
+
+static int
+dissect_kerberos_KRB5_SRP_PA_SERVER_VERIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+ hf_index, BER_CLASS_APP, 3, FALSE, dissect_kerberos_OCTET_STRING);
+
+ return offset;
+}
+
+
static const ber_sequence_t ChangePasswdData_sequence[] = {
{ &hf_kerberos_newpasswd , BER_CLASS_CON, 0, 0, dissect_kerberos_OCTET_STRING },
{ &hf_kerberos_targname , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_kerberos_PrincipalName },
@@ -7937,7 +8215,7 @@ dissect_kerberos_SPAKESecondFactorType(bool implicit_tag _U_, tvbuff_t *tvb _U_,
static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup_sequence_of[1] = {
- { &hf_kerberos_groups_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_kerberos_SPAKEGroup },
+ { &hf_kerberos_groups_item_01, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_kerberos_SPAKEGroup },
};
static int
@@ -7950,7 +8228,7 @@ dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup(bool implicit_tag _U_, tvbuff
static const ber_sequence_t SPAKESupport_sequence[] = {
- { &hf_kerberos_groups , BER_CLASS_CON, 0, 0, dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup },
+ { &hf_kerberos_groups_01 , BER_CLASS_CON, 0, 0, dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup },
{ NULL, 0, 0, 0, NULL }
};
@@ -7992,7 +8270,7 @@ dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor(bool implicit_tag _U_,
static const ber_sequence_t SPAKEChallenge_sequence[] = {
- { &hf_kerberos_group , BER_CLASS_CON, 0, 0, dissect_kerberos_SPAKEGroup },
+ { &hf_kerberos_group_02 , BER_CLASS_CON, 0, 0, dissect_kerberos_SPAKEGroup },
{ &hf_kerberos_pubkey , BER_CLASS_CON, 1, 0, dissect_kerberos_OCTET_STRING },
{ &hf_kerberos_factors , BER_CLASS_CON, 2, 0, dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor },
{ NULL, 0, 0, 0, NULL }
@@ -9585,6 +9863,38 @@ void proto_register_kerberos(void) {
{ "key", "kerberos.kerbKeyListRep.key_element",
FT_NONE, BASE_NONE, NULL, 0,
"PA_KERB_KEY_LIST_REP_item", HFILL }},
+ { &hf_kerberos_group,
+ { "group", "kerberos.group",
+ FT_INT32, BASE_DEC, VALS(kerberos_KRB5_SRP_GROUP_vals), 0,
+ "KRB5_SRP_GROUP", HFILL }},
+ { &hf_kerberos_salt,
+ { "salt", "kerberos.salt",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING", HFILL }},
+ { &hf_kerberos_iterations,
+ { "iterations", "kerberos.iterations",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "UInt32", HFILL }},
+ { &hf_kerberos_groups,
+ { "groups", "kerberos.groups",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SET_OF_KRB5_SRP_PA", HFILL }},
+ { &hf_kerberos_groups_item,
+ { "KRB5-SRP-PA", "kerberos.KRB5_SRP_PA_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_kerberos_as_req_01,
+ { "as-req", "kerberos.as_req_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Checksum", HFILL }},
+ { &hf_kerberos_group_01,
+ { "group", "kerberos.group",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "UInt32", HFILL }},
+ { &hf_kerberos_a,
+ { "a", "kerberos.a",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING", HFILL }},
{ &hf_kerberos_newpasswd,
{ "newpasswd", "kerberos.newpasswd",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -9657,15 +9967,15 @@ void proto_register_kerberos(void) {
{ "cipher", "kerberos.cipher",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
- { &hf_kerberos_groups,
+ { &hf_kerberos_groups_01,
{ "groups", "kerberos.groups",
FT_UINT32, BASE_DEC, NULL, 0,
"SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup", HFILL }},
- { &hf_kerberos_groups_item,
+ { &hf_kerberos_groups_item_01,
{ "SPAKEGroup", "kerberos.SPAKEGroup",
FT_INT32, BASE_DEC, VALS(kerberos_SPAKEGroup_vals), 0,
NULL, HFILL }},
- { &hf_kerberos_group,
+ { &hf_kerberos_group_02,
{ "group", "kerberos.group",
FT_INT32, BASE_DEC, VALS(kerberos_SPAKEGroup_vals), 0,
"SPAKEGroup", HFILL }},
@@ -10033,6 +10343,10 @@ void proto_register_kerberos(void) {
&ett_kerberos_KERB_AD_RESTRICTION_ENTRY_U,
&ett_kerberos_PA_KERB_KEY_LIST_REQ,
&ett_kerberos_PA_KERB_KEY_LIST_REP,
+ &ett_kerberos_KRB5_SRP_PA,
+ &ett_kerberos_KRB5_SRP_PA_ANNOUNCE,
+ &ett_kerberos_SET_OF_KRB5_SRP_PA,
+ &ett_kerberos_KRB5_SRP_PA_INIT_U,
&ett_kerberos_ChangePasswdData,
&ett_kerberos_PA_AUTHENTICATION_SET_ELEM,
&ett_kerberos_KrbFastArmor,
diff --git a/epan/dissectors/packet-kerberos.h b/epan/dissectors/packet-kerberos.h
index 29b251aa1b..4ffe7f3571 100644
--- a/epan/dissectors/packet-kerberos.h
+++ b/epan/dissectors/packet-kerberos.h
@@ -99,6 +99,34 @@ typedef struct _enc_key_t {
int fd_num; /* remember where we learned a key */
guint id; /* a unique id of the key, relative to fd_num */
char id_str[KRB_MAX_ID_STR_LEN+1];
+ /* EncTicketPart_key */
+ bool is_ticket_key;
+ /* EncAPRepPart_subkey */
+ bool is_ap_rep_key;
+ /*
+ * for now taken from dissect_krb5_PAC_UPN_DNS_INFO,
+ * we could also use dissect_krb5_PAC_LOGON_INFO if needed
+ *
+ * we get device_sid from dissect_krb5_PAC_DEVICE_INFO if available.
+ *
+ * We remember these from the PAC and
+ * attach it to EncTicketPart_key so it
+ * might be valid if is_ticket_key is true.
+ *
+ * When learning a EncAPRepPart_subkey
+ * we copy the details from the EncTicketPart_key,
+ * so when is_ap_rep_key is true we may also have it.
+ *
+ * So application protocols like SMB2 could use the
+ * is_ap_rep_key=true key details in order to identify
+ * the authenticated user.
+ */
+ struct {
+ const char *account_name;
+ const char *account_domain;
+ const char *account_sid;
+ const char *device_sid;
+ } pac_names;
struct _enc_key_t *same_list;
guint num_same;
struct _enc_key_t *src1;
@@ -126,7 +154,7 @@ decrypt_krb5_krb_cfx_dce(proto_tree *tree,
#endif /* HAVE_HEIMDAL_KERBEROS || HAVE_MIT_KERBEROS */
-extern gboolean krb_decrypt;
+extern bool krb_decrypt;
#endif /* HAVE_KERBEROS */
diff --git a/epan/dissectors/packet-knxip.c b/epan/dissectors/packet-knxip.c
index 1563f7be80..664ab6c0ef 100644
--- a/epan/dissectors/packet-knxip.c
+++ b/epan/dissectors/packet-knxip.c
@@ -490,7 +490,7 @@ guint8 knxip_host_protocol;
expert_field ei_knxip_error;
expert_field ei_knxip_warning;
-static gboolean pref_desegment = TRUE;
+static bool pref_desegment = true;
static const gchar* pref_key_texts[ MAX_KNX_DECRYPTION_KEYS ];
//static const gchar* authentication_code_text;
//static const gchar* password_hash_text;
diff --git a/epan/dissectors/packet-kpasswd.c b/epan/dissectors/packet-kpasswd.c
index e7316481d1..b0603e379a 100644
--- a/epan/dissectors/packet-kpasswd.c
+++ b/epan/dissectors/packet-kpasswd.c
@@ -26,7 +26,7 @@ static dissector_handle_t kpasswd_handle_udp;
static dissector_handle_t kpasswd_handle_tcp;
/* Desegment Kerberos over TCP messages */
-static gboolean kpasswd_desegment = TRUE;
+static bool kpasswd_desegment = true;
static int proto_kpasswd;
static int hf_kpasswd_message_len;
diff --git a/epan/dissectors/packet-kpm-v2.c b/epan/dissectors/packet-kpm-v2.c
index 23016f802e..09f6e2eb8a 100644
--- a/epan/dissectors/packet-kpm-v2.c
+++ b/epan/dissectors/packet-kpm-v2.c
@@ -233,84 +233,84 @@ static int hf_kpm_v2_ng_eNB; /* GlobalNgENB_ID */
static int hf_kpm_v2_timestamp_string;
-static gint ett_kpm_v2_MeasurementType;
-static gint ett_kpm_v2_MeasurementLabel;
-static gint ett_kpm_v2_TestCondInfo;
-static gint ett_kpm_v2_TestCond_Type;
-static gint ett_kpm_v2_TestCond_Value;
-static gint ett_kpm_v2_MeasurementInfoList;
-static gint ett_kpm_v2_MeasurementInfoItem;
-static gint ett_kpm_v2_LabelInfoList;
-static gint ett_kpm_v2_LabelInfoItem;
-static gint ett_kpm_v2_MeasurementData;
-static gint ett_kpm_v2_MeasurementDataItem;
-static gint ett_kpm_v2_MeasurementRecord;
-static gint ett_kpm_v2_MeasurementRecordItem;
-static gint ett_kpm_v2_MeasurementInfo_Action_List;
-static gint ett_kpm_v2_MeasurementInfo_Action_Item;
-static gint ett_kpm_v2_MeasurementCondList;
-static gint ett_kpm_v2_MeasurementCondItem;
-static gint ett_kpm_v2_MeasurementCondUEidList;
-static gint ett_kpm_v2_MeasurementCondUEidItem;
-static gint ett_kpm_v2_MatchingCondList;
-static gint ett_kpm_v2_MatchingCondItem;
-static gint ett_kpm_v2_MatchingUEidList;
-static gint ett_kpm_v2_MatchingUEidItem;
-static gint ett_kpm_v2_MatchingUeCondPerSubList;
-static gint ett_kpm_v2_MatchingUeCondPerSubItem;
-static gint ett_kpm_v2_MatchingUEidPerSubList;
-static gint ett_kpm_v2_MatchingUEidPerSubItem;
-static gint ett_kpm_v2_UEMeasurementReportList;
-static gint ett_kpm_v2_UEMeasurementReportItem;
-static gint ett_kpm_v2_E2SM_KPM_EventTriggerDefinition;
-static gint ett_kpm_v2_T_eventDefinition_formats;
-static gint ett_kpm_v2_E2SM_KPM_EventTriggerDefinition_Format1;
-static gint ett_kpm_v2_E2SM_KPM_ActionDefinition;
-static gint ett_kpm_v2_T_actionDefinition_formats;
-static gint ett_kpm_v2_E2SM_KPM_ActionDefinition_Format1;
-static gint ett_kpm_v2_E2SM_KPM_ActionDefinition_Format2;
-static gint ett_kpm_v2_E2SM_KPM_ActionDefinition_Format3;
-static gint ett_kpm_v2_E2SM_KPM_ActionDefinition_Format4;
-static gint ett_kpm_v2_E2SM_KPM_ActionDefinition_Format5;
-static gint ett_kpm_v2_E2SM_KPM_IndicationHeader;
-static gint ett_kpm_v2_T_indicationHeader_formats;
-static gint ett_kpm_v2_E2SM_KPM_IndicationHeader_Format1;
-static gint ett_kpm_v2_E2SM_KPM_IndicationMessage;
-static gint ett_kpm_v2_T_indicationMessage_formats;
-static gint ett_kpm_v2_E2SM_KPM_IndicationMessage_Format1;
-static gint ett_kpm_v2_E2SM_KPM_IndicationMessage_Format2;
-static gint ett_kpm_v2_E2SM_KPM_IndicationMessage_Format3;
-static gint ett_kpm_v2_E2SM_KPM_RANfunction_Description;
-static gint ett_kpm_v2_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item;
-static gint ett_kpm_v2_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item;
-static gint ett_kpm_v2_RIC_EventTriggerStyle_Item;
-static gint ett_kpm_v2_RIC_ReportStyle_Item;
-static gint ett_kpm_v2_CGI;
-static gint ett_kpm_v2_RANfunction_Name;
-static gint ett_kpm_v2_UEID;
-static gint ett_kpm_v2_UEID_GNB;
-static gint ett_kpm_v2_UEID_GNB_CU_CP_E1AP_ID_List;
-static gint ett_kpm_v2_UEID_GNB_CU_CP_E1AP_ID_Item;
-static gint ett_kpm_v2_UEID_GNB_CU_F1AP_ID_List;
-static gint ett_kpm_v2_UEID_GNB_CU_CP_F1AP_ID_Item;
-static gint ett_kpm_v2_UEID_GNB_DU;
-static gint ett_kpm_v2_UEID_GNB_CU_UP;
-static gint ett_kpm_v2_UEID_NG_ENB;
-static gint ett_kpm_v2_UEID_NG_ENB_DU;
-static gint ett_kpm_v2_UEID_EN_GNB;
-static gint ett_kpm_v2_UEID_ENB;
-static gint ett_kpm_v2_ENB_ID;
-static gint ett_kpm_v2_GlobalENB_ID;
-static gint ett_kpm_v2_GUMMEI;
-static gint ett_kpm_v2_EUTRA_CGI;
-static gint ett_kpm_v2_GlobalGNB_ID;
-static gint ett_kpm_v2_GlobalNgENB_ID;
-static gint ett_kpm_v2_GNB_ID;
-static gint ett_kpm_v2_GUAMI;
-static gint ett_kpm_v2_NgENB_ID;
-static gint ett_kpm_v2_NR_CGI;
-static gint ett_kpm_v2_S_NSSAI;
-static gint ett_kpm_v2_GlobalNGRANNodeID;
+static int ett_kpm_v2_MeasurementType;
+static int ett_kpm_v2_MeasurementLabel;
+static int ett_kpm_v2_TestCondInfo;
+static int ett_kpm_v2_TestCond_Type;
+static int ett_kpm_v2_TestCond_Value;
+static int ett_kpm_v2_MeasurementInfoList;
+static int ett_kpm_v2_MeasurementInfoItem;
+static int ett_kpm_v2_LabelInfoList;
+static int ett_kpm_v2_LabelInfoItem;
+static int ett_kpm_v2_MeasurementData;
+static int ett_kpm_v2_MeasurementDataItem;
+static int ett_kpm_v2_MeasurementRecord;
+static int ett_kpm_v2_MeasurementRecordItem;
+static int ett_kpm_v2_MeasurementInfo_Action_List;
+static int ett_kpm_v2_MeasurementInfo_Action_Item;
+static int ett_kpm_v2_MeasurementCondList;
+static int ett_kpm_v2_MeasurementCondItem;
+static int ett_kpm_v2_MeasurementCondUEidList;
+static int ett_kpm_v2_MeasurementCondUEidItem;
+static int ett_kpm_v2_MatchingCondList;
+static int ett_kpm_v2_MatchingCondItem;
+static int ett_kpm_v2_MatchingUEidList;
+static int ett_kpm_v2_MatchingUEidItem;
+static int ett_kpm_v2_MatchingUeCondPerSubList;
+static int ett_kpm_v2_MatchingUeCondPerSubItem;
+static int ett_kpm_v2_MatchingUEidPerSubList;
+static int ett_kpm_v2_MatchingUEidPerSubItem;
+static int ett_kpm_v2_UEMeasurementReportList;
+static int ett_kpm_v2_UEMeasurementReportItem;
+static int ett_kpm_v2_E2SM_KPM_EventTriggerDefinition;
+static int ett_kpm_v2_T_eventDefinition_formats;
+static int ett_kpm_v2_E2SM_KPM_EventTriggerDefinition_Format1;
+static int ett_kpm_v2_E2SM_KPM_ActionDefinition;
+static int ett_kpm_v2_T_actionDefinition_formats;
+static int ett_kpm_v2_E2SM_KPM_ActionDefinition_Format1;
+static int ett_kpm_v2_E2SM_KPM_ActionDefinition_Format2;
+static int ett_kpm_v2_E2SM_KPM_ActionDefinition_Format3;
+static int ett_kpm_v2_E2SM_KPM_ActionDefinition_Format4;
+static int ett_kpm_v2_E2SM_KPM_ActionDefinition_Format5;
+static int ett_kpm_v2_E2SM_KPM_IndicationHeader;
+static int ett_kpm_v2_T_indicationHeader_formats;
+static int ett_kpm_v2_E2SM_KPM_IndicationHeader_Format1;
+static int ett_kpm_v2_E2SM_KPM_IndicationMessage;
+static int ett_kpm_v2_T_indicationMessage_formats;
+static int ett_kpm_v2_E2SM_KPM_IndicationMessage_Format1;
+static int ett_kpm_v2_E2SM_KPM_IndicationMessage_Format2;
+static int ett_kpm_v2_E2SM_KPM_IndicationMessage_Format3;
+static int ett_kpm_v2_E2SM_KPM_RANfunction_Description;
+static int ett_kpm_v2_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_EventTriggerStyle_Item;
+static int ett_kpm_v2_SEQUENCE_SIZE_1_maxnoofRICStyles_OF_RIC_ReportStyle_Item;
+static int ett_kpm_v2_RIC_EventTriggerStyle_Item;
+static int ett_kpm_v2_RIC_ReportStyle_Item;
+static int ett_kpm_v2_CGI;
+static int ett_kpm_v2_RANfunction_Name;
+static int ett_kpm_v2_UEID;
+static int ett_kpm_v2_UEID_GNB;
+static int ett_kpm_v2_UEID_GNB_CU_CP_E1AP_ID_List;
+static int ett_kpm_v2_UEID_GNB_CU_CP_E1AP_ID_Item;
+static int ett_kpm_v2_UEID_GNB_CU_F1AP_ID_List;
+static int ett_kpm_v2_UEID_GNB_CU_CP_F1AP_ID_Item;
+static int ett_kpm_v2_UEID_GNB_DU;
+static int ett_kpm_v2_UEID_GNB_CU_UP;
+static int ett_kpm_v2_UEID_NG_ENB;
+static int ett_kpm_v2_UEID_NG_ENB_DU;
+static int ett_kpm_v2_UEID_EN_GNB;
+static int ett_kpm_v2_UEID_ENB;
+static int ett_kpm_v2_ENB_ID;
+static int ett_kpm_v2_GlobalENB_ID;
+static int ett_kpm_v2_GUMMEI;
+static int ett_kpm_v2_EUTRA_CGI;
+static int ett_kpm_v2_GlobalGNB_ID;
+static int ett_kpm_v2_GlobalNgENB_ID;
+static int ett_kpm_v2_GNB_ID;
+static int ett_kpm_v2_GUAMI;
+static int ett_kpm_v2_NgENB_ID;
+static int ett_kpm_v2_NR_CGI;
+static int ett_kpm_v2_S_NSSAI;
+static int ett_kpm_v2_GlobalNGRANNodeID;
/* Forward declarations */
@@ -1205,7 +1205,7 @@ dissect_kpm_v2_MeasurementCondList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_kpm_v2_AMF_UE_NGAP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(1099511627775), NULL, FALSE);
+ 0U, UINT64_C(1099511627775), NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-kt.c b/epan/dissectors/packet-kt.c
index 56892c225f..da6639a3d6 100644
--- a/epan/dissectors/packet-kt.c
+++ b/epan/dissectors/packet-kt.c
@@ -130,7 +130,7 @@ static const value_string kt_oper_vals[] = {
* default configuration of the KT server all the same.
*/
#define DEFAULT_KT_PORT_RANGE "1978-1979"
-static gboolean kt_present_key_val_as_ascii;
+static bool kt_present_key_val_as_ascii;
/* Dissection routines */
static int
diff --git a/epan/dissectors/packet-l2tp.c b/epan/dissectors/packet-l2tp.c
index 9096b5fdd9..42ccc1a28f 100644
--- a/epan/dissectors/packet-l2tp.c
+++ b/epan/dissectors/packet-l2tp.c
@@ -1010,7 +1010,7 @@ typedef struct l2tpv3_session {
static const gchar* shared_secret = "";
-static GSList *list_heads = NULL;
+static GSList *list_heads;
static void update_shared_key(l2tpv3_tunnel_t *tunnel)
{
diff --git a/epan/dissectors/packet-lacp.c b/epan/dissectors/packet-lacp.c
index f25296562c..8d5b06e60c 100644
--- a/epan/dissectors/packet-lacp.c
+++ b/epan/dissectors/packet-lacp.c
@@ -128,7 +128,7 @@ static const char * lacp_state_flags_to_str(wmem_allocator_t *scope, guint32 val
{
wmem_strbuf_t *buf = wmem_strbuf_new(scope, "");
const unsigned int flags_count = 8;
- const char first_letters[] = "EFDCSGSA";
+ static const char first_letters[] = "EFDCSGSA";
unsigned int i;
for (i = 0; i < flags_count; i++) {
diff --git a/epan/dissectors/packet-lapd.c b/epan/dissectors/packet-lapd.c
index 40fa845d79..038fa1ec40 100644
--- a/epan/dissectors/packet-lapd.c
+++ b/epan/dissectors/packet-lapd.c
@@ -81,7 +81,7 @@ static dissector_table_t lapd_sapi_dissector_table;
static dissector_table_t lapd_gsm_sapi_dissector_table;
/* Whether to use GSM SAPI vals or not */
-static gboolean global_lapd_gsm_sapis = FALSE;
+static bool global_lapd_gsm_sapis;
/*
* Bits in the address field.
@@ -567,10 +567,10 @@ dissect_lapd_full(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 f
}
}
}
- set_address(&pinfo->dst, AT_STRINGZ, (int)strlen(dstname) + 1, dstname);
- set_address(&pinfo->src, AT_STRINGZ, (int)strlen(dstname) + 1, dstname);
- col_set_str(pinfo->cinfo, COL_RES_DL_SRC, srcname);
- col_set_str(pinfo->cinfo, COL_RES_DL_DST, dstname);
+ set_address(&pinfo->dl_dst, AT_STRINGZ, (int)strlen(dstname) + 1, dstname);
+ set_address(&pinfo->dl_src, AT_STRINGZ, (int)strlen(srcname) + 1, srcname);
+ copy_address_shallow(&pinfo->dst, &pinfo->dl_dst);
+ copy_address_shallow(&pinfo->src, &pinfo->dl_src);
if (tree) {
proto_item *direction_ti;
diff --git a/epan/dissectors/packet-lapdm.c b/epan/dissectors/packet-lapdm.c
index 3aae536e89..ce628de5ed 100644
--- a/epan/dissectors/packet-lapdm.c
+++ b/epan/dissectors/packet-lapdm.c
@@ -101,7 +101,7 @@ static wmem_map_t *lapdm_last_n_s_map;
static dissector_table_t lapdm_sapi_dissector_table;
-static gboolean reassemble_lapdm = TRUE;
+static bool reassemble_lapdm = true;
/*
* Bits in the address field.
diff --git a/epan/dissectors/packet-laplink.c b/epan/dissectors/packet-laplink.c
index 05bc63c791..acc13bbf04 100644
--- a/epan/dissectors/packet-laplink.c
+++ b/epan/dissectors/packet-laplink.c
@@ -57,7 +57,7 @@ static const value_string laplink_tcp_magic[] = {
{ 0, NULL }
};
-static gboolean laplink_desegment = TRUE;
+static bool laplink_desegment = true;
/* Code to actually dissect the packets - UDP */
static gint
diff --git a/epan/dissectors/packet-lbm.c b/epan/dissectors/packet-lbm.c
index 89ef235186..2e7861b7b3 100644
--- a/epan/dissectors/packet-lbm.c
+++ b/epan/dissectors/packet-lbm.c
@@ -123,12 +123,12 @@ gboolean lbm_channel_is_transport(guint64 channel)
case LBM_CHANNEL_TRANSPORT_LBTIPC:
case LBM_CHANNEL_TRANSPORT_LBTRDMA:
case LBM_CHANNEL_TRANSPORT_LBTSMX:
- return (TRUE);
+ return TRUE;
break;
default:
break;
}
- return (FALSE);
+ return FALSE;
}
guint8 lbm_channel_type(guint64 channel)
@@ -163,27 +163,27 @@ gboolean lbm_channel_is_unknown_transport_source_lbttcp(guint64 channel)
{
if (channel == LBM_CHANNEL_UNKNOWN_TRANSPORT_SOURCE_LBTTCP)
{
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
gboolean lbm_channel_is_unknown_transport_client_lbttcp(guint64 channel)
{
if (channel == LBM_CHANNEL_UNKNOWN_TRANSPORT_CLIENT_LBTTCP)
{
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
gboolean lbm_channel_is_unknown_stream_tcp(guint64 channel)
{
if (channel == LBM_CHANNEL_UNKNOWN_STREAM_TCP)
{
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
gboolean lbm_channel_is_known(guint64 channel)
@@ -247,7 +247,7 @@ lbm_transport_sqn_t * lbm_transport_sqn_add(wmem_tree_t * list, lbm_transport_fr
/*----------------------------------------------------------------------------*/
/* Topic interface. */
/*----------------------------------------------------------------------------*/
-static wmem_tree_t * lbm_topic_table = NULL;
+static wmem_tree_t * lbm_topic_table;
#define LBM_TOPIC_KEY_ELEMENT_COUNT 3
#define LBM_TOPIC_KEY_ELEMENT_CHANNEL_HIGH 0
diff --git a/epan/dissectors/packet-lbm.h b/epan/dissectors/packet-lbm.h
index 77d3e05fba..31b337d001 100644
--- a/epan/dissectors/packet-lbm.h
+++ b/epan/dissectors/packet-lbm.h
@@ -110,9 +110,9 @@ typedef guint64 lbm_uint64_t;
if (!ws_inet_pton4(strptr, &addr)) \
{ \
*err = g_strdup("invalid address"); \
- return (FALSE); \
+ return FALSE; \
} \
- return (TRUE); \
+ return TRUE; \
} \
static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, unsigned len, const void* u1 _U_, const void* u2 _U_) \
{ \
@@ -148,14 +148,14 @@ typedef guint64 lbm_uint64_t;
if (!ws_inet_pton4(strptr, &addr)) \
{ \
*err = g_strdup("invalid address"); \
- return (FALSE); \
+ return FALSE; \
} \
if (!IN_MULTICAST(g_ntohl(addr)) && (g_ntohl(addr) != 0)) \
{ \
*err = g_strdup("invalid multicast address"); \
- return (FALSE); \
+ return FALSE; \
} \
- return (TRUE); \
+ return TRUE; \
} \
static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, unsigned len, const void* u1 _U_, const void* u2 _U_) \
{ \
diff --git a/epan/dissectors/packet-lbmc.c b/epan/dissectors/packet-lbmc.c
index 4589857cb3..9f2420a495 100644
--- a/epan/dissectors/packet-lbmc.c
+++ b/epan/dissectors/packet-lbmc.c
@@ -114,7 +114,7 @@ struct lbm_dstream_entry_t_stct
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT 3
#define LBM_ISTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID 4
-static wmem_tree_t * instance_stream_table = NULL;
+static wmem_tree_t * instance_stream_table;
/* Domain stream variables */
#define LBM_DSTREAM_STREAM_KEY_ELEMENT_COUNT 6
@@ -132,7 +132,7 @@ static wmem_tree_t * instance_stream_table = NULL;
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_DST_PORT 3
#define LBM_DSTREAM_SUBSTREAM_KEY_ELEMENT_LBM_STREAM_ID 4
-static wmem_tree_t * domain_stream_table = NULL;
+static wmem_tree_t * domain_stream_table;
static void lbm_stream_init(void)
{
@@ -4548,9 +4548,9 @@ static const true_false_string lbmc_umq_r_flag =
/* Preferences. */
/*----------------------------------------------------------------------------*/
-static gboolean lbmc_use_heuristic_subdissectors = TRUE;
-static gboolean lbmc_reassemble_fragments = FALSE;
-static gboolean lbmc_dissect_lbmpdm = FALSE;
+static bool lbmc_use_heuristic_subdissectors = true;
+static bool lbmc_reassemble_fragments;
+static bool lbmc_dissect_lbmpdm;
static heur_dissector_list_t lbmc_heuristic_subdissector_list;
/*----------------------------------------------------------------------------*/
@@ -6200,7 +6200,7 @@ lbm_uim_seq_analysis_packet(void *ptr, packet_info *pinfo, epan_dissect_t *edt _
#define LBMC_MESSAGE_KEY_ELEMENT_PORT 3
#define LBMC_MESSAGE_KEY_ELEMENT_FIRST_SQN 4
-static wmem_tree_t * lbmc_message_table = NULL;
+static wmem_tree_t * lbmc_message_table;
typedef struct
{
@@ -10629,14 +10629,14 @@ gboolean lbmc_test_lbmc_header(tvbuff_t * tvb, int offset)
if (tvb_reported_length_remaining(tvb, offset) < (O_LBMC_HDR_T_MSGLEN + L_LBMC_HDR_T_MSGLEN))
{
- return (FALSE);
+ return FALSE;
}
ver_type = tvb_get_guint8(tvb, offset + O_LBMC_HDR_T_VER_TYPE);
version = LBMC_HDR_VER(ver_type);
type = LBMC_HDR_TYPE(ver_type);
if (version != LBMC_VERSION)
{
- return (FALSE);
+ return FALSE;
}
switch (type)
{
@@ -10647,7 +10647,7 @@ gboolean lbmc_test_lbmc_header(tvbuff_t * tvb, int offset)
case LBMC_TYPE_RETRANS:
break;
default:
- return (FALSE);
+ return FALSE;
}
next_header = tvb_get_guint8(tvb, offset + O_LBMC_HDR_T_NEXT_HDR);
switch (next_header)
@@ -10738,14 +10738,14 @@ gboolean lbmc_test_lbmc_header(tvbuff_t * tvb, int offset)
case LBMC_NHDR_EXTOPT:
break;
default:
- return (FALSE);
+ return FALSE;
}
msglen = tvb_get_ntohs(tvb, offset + O_LBMC_HDR_T_MSGLEN);
if (msglen == 0)
{
- return (FALSE);
+ return FALSE;
}
- return (TRUE);
+ return TRUE;
}
int lbmc_dissect_lbmc_packet(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree, const char * tag_name, guint64 channel)
diff --git a/epan/dissectors/packet-lbmpdm.c b/epan/dissectors/packet-lbmpdm.c
index 8df6f5c682..2cc24b15c9 100644
--- a/epan/dissectors/packet-lbmpdm.c
+++ b/epan/dissectors/packet-lbmpdm.c
@@ -293,7 +293,7 @@ typedef struct
#define LBMPDM_DEFINITION_KEY_ELEMENT_VERS_MAJOR 3
#define LBMPDM_DEFINITION_KEY_ELEMENT_VERS_MINOR 4
-static wmem_tree_t * lbmpdm_definition_table = NULL;
+static wmem_tree_t * lbmpdm_definition_table;
/*----------------------------------------------------------------------------*/
/* Handles of all types. */
@@ -1152,11 +1152,11 @@ gboolean lbmpdm_verify_payload(tvbuff_t * tvb, int offset, int * encoding, int *
if (!tvb_bytes_exist(tvb, offset, L_LBMPDM_MSG_HDR_T))
{
- return (FALSE);
+ return FALSE;
}
if (!check_lbmpdm_encoding(tvb, offset, encoding))
{
- return (FALSE);
+ return FALSE;
}
next_header = tvb_get_guint8(tvb, offset + O_LBMPDM_MSG_HDR_T_NEXT_HDR);
switch (next_header)
@@ -1167,16 +1167,16 @@ gboolean lbmpdm_verify_payload(tvbuff_t * tvb, int offset, int * encoding, int *
case PDM_HDR_TYPE_EOM:
break;
default:
- return (FALSE);
+ return FALSE;
break;
}
len = tvb_get_guint32(tvb, offset + O_LBMPDM_MSG_HDR_T_LEN, *encoding);
if (len > G_MAXINT)
{
- return (FALSE);
+ return FALSE;
}
*length = (int)len;
- return (TRUE);
+ return TRUE;
}
int lbmpdm_dissect_lbmpdm_payload(tvbuff_t * tvb, int offset, packet_info * pinfo, proto_tree * tree, guint64 channel)
@@ -1199,7 +1199,7 @@ int lbmpdm_dissect_lbmpdm_payload(tvbuff_t * tvb, int offset, packet_info * pinf
if (!lbmpdm_verify_payload(tvb, offset, &encoding, &raw_msglen))
{
- return (0);
+ return 0;
}
msglen = (int)raw_msglen;
diff --git a/epan/dissectors/packet-lbmpdmtcp.c b/epan/dissectors/packet-lbmpdmtcp.c
index 3ecf31bd80..4f5113ff6f 100644
--- a/epan/dissectors/packet-lbmpdmtcp.c
+++ b/epan/dissectors/packet-lbmpdmtcp.c
@@ -109,12 +109,12 @@ static lbmtcp_transport_t * lbmtcp_transport_add(const address * address1, guint
/* Global preferences variables (altered by the preferences dialog). */
static guint32 global_lbmpdm_tcp_port_low = LBMPDM_TCP_DEFAULT_PORT_LOW;
static guint32 global_lbmpdm_tcp_port_high = LBMPDM_TCP_DEFAULT_PORT_HIGH;
-static gboolean global_lbmpdm_tcp_use_tag = FALSE;
+static bool global_lbmpdm_tcp_use_tag;
/* Local preferences variables (used by the dissector). */
static guint32 lbmpdm_tcp_port_low = LBMPDM_TCP_DEFAULT_PORT_LOW;
static guint32 lbmpdm_tcp_port_high = LBMPDM_TCP_DEFAULT_PORT_HIGH;
-static gboolean lbmpdm_tcp_use_tag = FALSE;
+static gboolean lbmpdm_tcp_use_tag;
/* Tag definitions. */
typedef struct
@@ -124,8 +124,8 @@ typedef struct
guint32 port_high;
} lbmpdm_tcp_tag_entry_t;
-static lbmpdm_tcp_tag_entry_t * lbmpdm_tcp_tag_entry = NULL;
-static guint lbmpdm_tcp_tag_count = 0;
+static lbmpdm_tcp_tag_entry_t * lbmpdm_tcp_tag_entry;
+static guint lbmpdm_tcp_tag_count;
UAT_CSTRING_CB_DEF(lbmpdm_tcp_tag, name, lbmpdm_tcp_tag_entry_t)
UAT_DEC_CB_DEF(lbmpdm_tcp_tag, port_low, lbmpdm_tcp_tag_entry_t)
@@ -323,27 +323,27 @@ static gboolean test_lbmpdm_tcp_packet(tvbuff_t * tvb, packet_info * pinfo, prot
/* Must be a TCP packet. */
if (pinfo->ptype != PT_TCP)
{
- return (FALSE);
+ return FALSE;
}
/* Destination address must be IPV4 and 4 bytes in length. */
if ((pinfo->dst.type != AT_IPv4) || (pinfo->dst.len != 4))
{
- return (FALSE);
+ return FALSE;
}
if (!lbmpdm_verify_payload(tvb, 0, &encoding, &packet_len))
{
- return (FALSE);
+ return FALSE;
}
if (lbmpdm_tcp_use_tag)
{
if (lbmpdm_tcp_tag_find(pinfo) != NULL)
{
dissect_lbmpdm_tcp(tvb, pinfo, tree, user_data);
- return (TRUE);
+ return TRUE;
}
else
{
- return (FALSE);
+ return FALSE;
}
}
@@ -351,11 +351,11 @@ static gboolean test_lbmpdm_tcp_packet(tvbuff_t * tvb, packet_info * pinfo, prot
if (!(((pinfo->srcport >= lbmpdm_tcp_port_low) && (pinfo->srcport <= lbmpdm_tcp_port_high))
|| ((pinfo->destport >= lbmpdm_tcp_port_low) && (pinfo->destport <= lbmpdm_tcp_port_high))))
{
- return (FALSE);
+ return FALSE;
}
/* One of ours. Probably. */
dissect_lbmpdm_tcp(tvb, pinfo, tree, user_data);
- return (TRUE);
+ return TRUE;
}
/* Register all the bits needed with the filtering engine */
diff --git a/epan/dissectors/packet-lbmr.c b/epan/dissectors/packet-lbmr.c
index 5165403073..e656e027b2 100644
--- a/epan/dissectors/packet-lbmr.c
+++ b/epan/dissectors/packet-lbmr.c
@@ -44,7 +44,7 @@ typedef struct
guint64 channel;
} lbtipc_transport_t;
-static wmem_tree_t * lbtipc_transport_table = NULL;
+static wmem_tree_t * lbtipc_transport_table;
#define LBTIPC_KEY_ELEMENT_COUNT 3
#define LBTIPC_KEY_ELEMENT_HOST_ID 0
@@ -117,7 +117,7 @@ typedef struct
guint64 channel;
} lbtsmx_transport_t;
-static wmem_tree_t * lbtsmx_transport_table = NULL;
+static wmem_tree_t * lbtsmx_transport_table;
#define LBTSMX_KEY_ELEMENT_COUNT 3
#define LBTSMX_KEY_ELEMENT_HOST_ID 0
@@ -190,7 +190,7 @@ typedef struct
guint64 channel;
} lbtrdma_transport_t;
-static wmem_tree_t * lbtrdma_transport_table = NULL;
+static wmem_tree_t * lbtrdma_transport_table;
#define LBTRDMA_KEY_ELEMENT_COUNT 3
#define LBTRDMA_KEY_ELEMENT_SOURCE_ADDRESS 0
@@ -1890,18 +1890,18 @@ static guint32 global_lbmr_uc_port_high = LBMR_DEFAULT_UC_PORT_HIGH;
static guint32 global_lbmr_uc_port_low = LBMR_DEFAULT_UC_PORT_LOW;
static guint32 global_lbmr_uc_dest_port = LBMR_DEFAULT_UC_DEST_PORT;
static const char * global_lbmr_uc_address = LBMR_DEFAULT_UC_ADDRESS;
-static gboolean global_lbmr_use_tag = FALSE;
+static bool global_lbmr_use_tag;
/* Local preferences variables (used by the dissector). */
static guint32 lbmr_mc_incoming_udp_port = LBMR_DEFAULT_MC_INCOMING_UDP_PORT;
static guint32 lbmr_mc_outgoing_udp_port = LBMR_DEFAULT_MC_OUTGOING_UDP_PORT;
-static guint32 lbmr_mc_incoming_address_host = 0;
-static guint32 lbmr_mc_outgoing_address_host = 0;
+static guint32 lbmr_mc_incoming_address_host;
+static guint32 lbmr_mc_outgoing_address_host;
static guint32 lbmr_uc_port_high = LBMR_DEFAULT_UC_PORT_HIGH;
static guint32 lbmr_uc_port_low = LBMR_DEFAULT_UC_PORT_LOW;
static guint32 lbmr_uc_dest_port = LBMR_DEFAULT_UC_DEST_PORT;
-static guint32 lbmr_uc_address_host = 0;
-static gboolean lbmr_use_tag = FALSE;
+static guint32 lbmr_uc_address_host;
+static gboolean lbmr_use_tag;
typedef struct
{
@@ -1919,8 +1919,8 @@ typedef struct
guint32 uc_address_val_h;
} lbmr_tag_entry_t;
-static lbmr_tag_entry_t * lbmr_tag_entry = NULL;
-static guint lbmr_tag_count = 0;
+static lbmr_tag_entry_t * lbmr_tag_entry;
+static guint lbmr_tag_count;
UAT_CSTRING_CB_DEF(lbmr_tag, name, lbmr_tag_entry_t)
UAT_DEC_CB_DEF(lbmr_tag, mc_outgoing_udp_port, lbmr_tag_entry_t)
@@ -3903,7 +3903,7 @@ static int dissect_lbmr_tir_transport(tvbuff_t * tvb, int offset, lbm_uint8_t tr
if ((transport_len != L_LBMR_TIR_TCP_T) && (transport_len != L_LBMR_TIR_TCP_WITH_SID_T))
{
expert_add_info_format(pinfo, transport_len_item, &ei_lbmr_analysis_length_incorrect, "Wrong transport length for LBMR TIR TCP info");
- return (0);
+ return 0;
}
if (transport_len == L_LBMR_TIR_TCP_WITH_SID_T)
{
@@ -3971,7 +3971,7 @@ static int dissect_lbmr_tir_transport(tvbuff_t * tvb, int offset, lbm_uint8_t tr
if ((transport_len != L_LBMR_TIR_LBTRU_T) && (transport_len != L_LBMR_TIR_LBTRU_WITH_SID_T))
{
expert_add_info_format(pinfo, transport_len_item, &ei_lbmr_analysis_length_incorrect, "Wrong transport length for LBMR TIR LBTRU info");
- return (0);
+ return 0;
}
if (transport_len == L_LBMR_TIR_LBTRU_WITH_SID_T)
{
@@ -4009,7 +4009,7 @@ static int dissect_lbmr_tir_transport(tvbuff_t * tvb, int offset, lbm_uint8_t tr
if (transport_len != L_LBMR_TIR_LBTIPC_T)
{
expert_add_info_format(pinfo, transport_len_item, &ei_lbmr_analysis_length_incorrect, "Wrong transport length for LBMR TIR LBTIPC info");
- return (0);
+ return 0;
}
host_id = tvb_get_ntohl(tvb, offset + O_LBMR_TIR_LBTIPC_T_HOST_ID);
session_id = tvb_get_ntohl(tvb, offset + O_LBMR_TIR_LBTIPC_T_SESSION_ID);
@@ -4037,7 +4037,7 @@ static int dissect_lbmr_tir_transport(tvbuff_t * tvb, int offset, lbm_uint8_t tr
if (transport_len != L_LBMR_TIR_LBTRDMA_T)
{
expert_add_info_format(pinfo, transport_len_item, &ei_lbmr_analysis_length_incorrect, "Wrong transport length for LBMR TIR LBTRDMA info");
- return (0);
+ return 0;
}
set_address_tvb(&source_addr, AT_IPv4, L_LBMR_TIR_LBTRDMA_T_IP, tvb, offset + O_LBMR_TIR_LBTRDMA_T_IP);
session_id = tvb_get_ntohl(tvb, offset + O_LBMR_TIR_LBTRDMA_T_SESSION_ID);
@@ -5455,12 +5455,12 @@ static gboolean test_lbmr_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tree
/* Must be a UDP packet. */
if (pinfo->ptype != PT_UDP)
{
- return (FALSE);
+ return FALSE;
}
/* Destination address must be IPV4 and 4 bytes in length. */
if ((pinfo->dst.type != AT_IPv4) || (pinfo->dst.len != 4))
{
- return (FALSE);
+ return FALSE;
}
if (lbmr_use_tag)
@@ -5489,9 +5489,9 @@ static gboolean test_lbmr_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tree
if (valid_packet)
{
dissect_lbmr(tvb, pinfo, tree, NULL);
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
/* Register all the bits needed with the filtering engine */
diff --git a/epan/dissectors/packet-lbmsrs.c b/epan/dissectors/packet-lbmsrs.c
index 9a61b5926c..0202e2b211 100644
--- a/epan/dissectors/packet-lbmsrs.c
+++ b/epan/dissectors/packet-lbmsrs.c
@@ -321,7 +321,7 @@ typedef struct
} lbmsrs_tag_entry_t;
static lbmsrs_tag_entry_t* lbmsrs_tag_entry;
-static guint lbmsrs_tag_count = 0;
+static guint lbmsrs_tag_count;
UAT_CSTRING_CB_DEF(lbmsrs_tag, name, lbmsrs_tag_entry_t)
UAT_IPV4_CB_DEF(lbmsrs_tag, ip_address, lbmsrs_tag_entry_t)
@@ -562,9 +562,9 @@ static const guint rsocket_stream_id_field_size = 4;
static guint32 lbmsrs_source_ip_address;
static const char* global_lbmsrs_source_ip_address = LBMSRS_DEFAULT_SOURCE_IP;
static guint32 global_lbmsrs_source_port = LBMSRS_DEFAULT_SOURCE_PORT;
-static gboolean global_lbmsrs_use_tag = FALSE;
+static bool global_lbmsrs_use_tag;
static guint32 lbmsrs_source_port = LBMSRS_DEFAULT_SOURCE_PORT;
-static gboolean lbmsrs_use_tag = FALSE;
+static gboolean lbmsrs_use_tag;
#define RSOCKET_FRAME_RESERVED 0x00
@@ -689,7 +689,7 @@ static gboolean lbmsrs_match_packet(packet_info * pinfo, const lbmsrs_tag_entry_
{
if ((pinfo->dst.type != AT_IPv4) || (pinfo->dst.len != 4) ||
(pinfo->src.type != AT_IPv4) || (pinfo->src.len != 4))
- return (FALSE);
+ return FALSE;
guint32 dest_addr_h = pntoh32(pinfo->dst.data);
guint32 src_addr_h = pntoh32(pinfo->src.data);
@@ -705,7 +705,7 @@ static gboolean lbmsrs_match_packet(packet_info * pinfo, const lbmsrs_tag_entry_
{
if ((entry->tcp_port == pinfo->destport) || (entry->tcp_port == pinfo->srcport))
{
- return (TRUE);
+ return TRUE;
}
}
/*if only IP is specified*/
@@ -713,7 +713,7 @@ static gboolean lbmsrs_match_packet(packet_info * pinfo, const lbmsrs_tag_entry_
{
if ((ip_address_val_h == dest_addr_h) || (ip_address_val_h == src_addr_h))
{
- return (TRUE);
+ return TRUE;
}
}
/*if both IP and port is specified*/
@@ -722,11 +722,11 @@ static gboolean lbmsrs_match_packet(packet_info * pinfo, const lbmsrs_tag_entry_
if (((ip_address_val_h == dest_addr_h) && (entry->tcp_port == pinfo->destport))
|| ((ip_address_val_h == src_addr_h) && (entry->tcp_port == pinfo->srcport)))
{
- return (TRUE);
+ return TRUE;
}
}
- return (FALSE);
+ return FALSE;
}
static char * lbmsrs_tag_find(packet_info * pinfo)
@@ -1132,7 +1132,7 @@ static guint dissect_rsocket_frame(guint64 rsocket_frame_type,proto_tree* rsocke
}
-static guint dissect_lbmsrs_sir_ser(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_sir, guint *cnt_ser, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_sir_ser(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_sir, guint *cnt_ser, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -1173,7 +1173,7 @@ static guint dissect_lbmsrs_sir_ser(tvbuff_t * tvb, proto_tree * tree, guint off
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(sir_tree, hf_lbmsrs_sir_topic, tvb, offset, topic_len, ENC_ASCII | ENC_NA);
offset += topic_len;
@@ -1367,7 +1367,7 @@ static guint dissect_lbmsrs_sir_ser(tvbuff_t * tvb, proto_tree * tree, guint off
return (offset - start_offset);
}
-static guint dissect_lbmsrs_sdr(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_sdr,gboolean *can_dissect_further)
+static guint dissect_lbmsrs_sdr(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_sdr,gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -1416,7 +1416,7 @@ static guint dissect_lbmsrs_sdr(tvbuff_t * tvb, proto_tree * tree, guint offset,
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(sdr_tree, hf_lbmsrs_sdr_topic, tvb, offset, topic_len, ENC_ASCII | ENC_NA);
offset += topic_len;
@@ -1428,7 +1428,7 @@ static guint dissect_lbmsrs_sdr(tvbuff_t * tvb, proto_tree * tree, guint offset,
}
-static guint dissect_lbmsrs_rir(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_rir, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_rir(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_rir, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -1468,7 +1468,7 @@ static guint dissect_lbmsrs_rir(tvbuff_t * tvb, proto_tree * tree, guint offset,
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(rir_tree, hf_lbmsrs_rir_topic, tvb, offset, topic_len, ENC_ASCII | ENC_NA);
offset += topic_len;
@@ -1534,7 +1534,7 @@ static guint dissect_lbmsrs_rir(tvbuff_t * tvb, proto_tree * tree, guint offset,
}
-static guint dissect_lbmsrs_rer(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_rer, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_rer(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_rer, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -1574,7 +1574,7 @@ static guint dissect_lbmsrs_rer(tvbuff_t * tvb, proto_tree * tree, guint offset,
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(rer_tree, hf_lbmsrs_rer_topic, tvb, offset, topic_len, ENC_ASCII | ENC_NA);
offset += topic_len;
@@ -1641,7 +1641,7 @@ static guint dissect_lbmsrs_rer(tvbuff_t * tvb, proto_tree * tree, guint offset,
}
-static guint dissect_lbmsrs_rdr(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_rdr, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_rdr(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_rdr, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -1681,7 +1681,7 @@ static guint dissect_lbmsrs_rdr(tvbuff_t * tvb, proto_tree * tree, guint offset,
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(rdr_tree, hf_lbmsrs_rdr_topic, tvb, offset, topic_len, ENC_ASCII | ENC_NA);
offset += topic_len;
@@ -1748,7 +1748,7 @@ static guint dissect_lbmsrs_rdr(tvbuff_t * tvb, proto_tree * tree, guint offset,
}
-static guint dissect_lbmsrs_wir(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_wir, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_wir(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_wir, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -1788,7 +1788,7 @@ static guint dissect_lbmsrs_wir(tvbuff_t * tvb, proto_tree * tree, guint offset,
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(wir_tree, hf_lbmsrs_wir_pattern, tvb, offset, pattern_len, ENC_ASCII | ENC_NA);
offset += pattern_len;
@@ -1855,7 +1855,7 @@ static guint dissect_lbmsrs_wir(tvbuff_t * tvb, proto_tree * tree, guint offset,
}
-static guint dissect_lbmsrs_wdr(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_wdr, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_wdr(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_wdr, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -1895,7 +1895,7 @@ static guint dissect_lbmsrs_wdr(tvbuff_t * tvb, proto_tree * tree, guint offset,
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(wdr_tree, hf_lbmsrs_wdr_pattern, tvb, offset, pattern_len, ENC_ASCII | ENC_NA);
offset += pattern_len;
@@ -1962,7 +1962,7 @@ static guint dissect_lbmsrs_wdr(tvbuff_t * tvb, proto_tree * tree, guint offset,
}
-static guint dissect_lbmsrs_wer(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_wer, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_wer(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_wer, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
gint start_offset = offset;
@@ -2002,7 +2002,7 @@ static guint dissect_lbmsrs_wer(tvbuff_t * tvb, proto_tree * tree, guint offset,
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(wer_tree, hf_lbmsrs_wer_pattern, tvb, offset, pattern_len, ENC_ASCII | ENC_NA);
offset += pattern_len;
@@ -2068,7 +2068,7 @@ static guint dissect_lbmsrs_wer(tvbuff_t * tvb, proto_tree * tree, guint offset,
}
-static guint dissect_lbmsrs_sli(tvbuff_t * tvb, proto_tree * tree, guint offset, guint *cnt_sli, gboolean *can_dissect_further)
+static guint dissect_lbmsrs_sli(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, guint offset, guint *cnt_sli, gboolean *can_dissect_further)
{
guint total_payload_len = tvb_captured_length(tvb);
guint start_offset = offset;
@@ -2109,7 +2109,7 @@ static guint dissect_lbmsrs_sli(tvbuff_t * tvb, proto_tree * tree, guint offset
return (offset - start_offset);
}
gint len;
- char* name = tvb_get_stringz_enc(wmem_packet_scope(), tvb, offset, &len, ENC_ASCII);
+ char* name = tvb_get_stringz_enc(pinfo->pool, tvb, offset, &len, ENC_ASCII);
proto_tree_add_item(sli_tree, hf_lbmsrs_sli_topic, tvb, offset, topic_len, ENC_ASCII | ENC_NA);
offset += topic_len;
@@ -2226,49 +2226,49 @@ static guint dissect_lbmsrs_batch(tvbuff_t * tvb, packet_info * pinfo, proto_tre
{
case MSG_ID_SOURCE_INFO:
{
- len_dissected = dissect_lbmsrs_sir_ser(tvb,tree, offset, &cnt_sir, &cnt_ser,&can_dissect_further);
+ len_dissected = dissect_lbmsrs_sir_ser(tvb, pinfo, tree, offset, &cnt_sir, &cnt_ser,&can_dissect_further);
break;
}
case MSG_ID_SOURCE_DELETE:
{
- len_dissected = dissect_lbmsrs_sdr(tvb, tree, offset, &cnt_sdr, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_sdr(tvb, pinfo, tree, offset, &cnt_sdr, &can_dissect_further);
break;
}
case MSG_ID_RCV_INFO:
{
- len_dissected = dissect_lbmsrs_rir(tvb, tree, offset, &cnt_rir, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_rir(tvb, pinfo, tree, offset, &cnt_rir, &can_dissect_further);
break;
}
case MSG_ID_RCV_DELETE:
{
- len_dissected = dissect_lbmsrs_rdr(tvb, tree, offset, &cnt_rdr, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_rdr(tvb, pinfo, tree, offset, &cnt_rdr, &can_dissect_further);
break;
}
case MSG_ID_RCV_END:
{
- len_dissected = dissect_lbmsrs_rer(tvb, tree, offset, &cnt_rer, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_rer(tvb, pinfo, tree, offset, &cnt_rer, &can_dissect_further);
break;
}
case MSG_ID_WRCV_INFO:
{
- len_dissected = dissect_lbmsrs_wir(tvb, tree, offset, &cnt_wir, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_wir(tvb, pinfo, tree, offset, &cnt_wir, &can_dissect_further);
break;
}
case MSG_ID_WRCV_DELETE:
{
- len_dissected = dissect_lbmsrs_wdr(tvb, tree, offset, &cnt_wdr, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_wdr(tvb, pinfo, tree, offset, &cnt_wdr, &can_dissect_further);
break;
}
case MSG_ID_WRCV_END:
{
- len_dissected = dissect_lbmsrs_wer(tvb, tree, offset, &cnt_wer, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_wer(tvb, pinfo, tree, offset, &cnt_wer, &can_dissect_further);
break;
}
case MSG_ID_SRC_LEAVE:
{
- len_dissected = dissect_lbmsrs_sli(tvb, tree, offset, &cnt_sli, &can_dissect_further);
+ len_dissected = dissect_lbmsrs_sli(tvb, pinfo, tree, offset, &cnt_sli, &can_dissect_further);
break;
}
@@ -2617,7 +2617,7 @@ static gboolean test_lbmsrs_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tr
/* Must be a TCP packet. */
if (pinfo->ptype != PT_TCP)
{
- return (FALSE);
+ return FALSE;
}
if (lbmsrs_use_tag)
@@ -2648,10 +2648,10 @@ static gboolean test_lbmsrs_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tr
if (valid_packet)
{
dissect_lbmsrs_real(tvb, pinfo, tree, user_data);
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
diff --git a/epan/dissectors/packet-lbtrm.c b/epan/dissectors/packet-lbtrm.c
index 928dd91e67..3db6aa6ea1 100644
--- a/epan/dissectors/packet-lbtrm.c
+++ b/epan/dissectors/packet-lbtrm.c
@@ -557,26 +557,26 @@ static guint32 global_mim_incoming_dest_port = MIM_DEFAULT_INCOMING_DPORT;
static guint32 global_mim_outgoing_dest_port = MIM_DEFAULT_OUTGOING_DPORT;
static const char * global_mim_incoming_mc_address = MIM_DEFAULT_MC_INCOMING_ADDRESS;
static const char * global_mim_outgoing_mc_address = MIM_DEFAULT_MC_OUTGOING_ADDRESS;
-static gboolean global_lbtrm_expert_separate_naks = FALSE;
-static gboolean global_lbtrm_expert_separate_ncfs = FALSE;
-static gboolean global_lbtrm_use_tag = FALSE;
-static gboolean global_lbtrm_sequence_analysis = FALSE;
+static bool global_lbtrm_expert_separate_naks;
+static bool global_lbtrm_expert_separate_ncfs;
+static bool global_lbtrm_use_tag;
+static bool global_lbtrm_sequence_analysis;
/* Local preferences variables (used by the dissector). */
-static guint32 lbtrm_mc_address_low_host = 0;
-static guint32 lbtrm_mc_address_high_host = 0;
+static guint32 lbtrm_mc_address_low_host;
+static guint32 lbtrm_mc_address_high_host;
static guint32 lbtrm_dest_port_low = LBTRM_DEFAULT_DPORT_LOW;
static guint32 lbtrm_dest_port_high = LBTRM_DEFAULT_DPORT_HIGH;
static guint32 lbtrm_src_port_low = LBTRM_DEFAULT_SPORT_LOW;
static guint32 lbtrm_src_port_high = LBTRM_DEFAULT_SPORT_HIGH;
static guint32 mim_incoming_dest_port = MIM_DEFAULT_INCOMING_DPORT;
static guint32 mim_outgoing_dest_port = MIM_DEFAULT_OUTGOING_DPORT;
-static guint32 mim_incoming_mc_address_host = 0;
-static guint32 mim_outgoing_mc_address_host = 0;
-static gboolean lbtrm_expert_separate_naks = FALSE;
-static gboolean lbtrm_expert_separate_ncfs = FALSE;
-static gboolean lbtrm_use_tag = FALSE;
-static gboolean lbtrm_sequence_analysis = FALSE;
+static guint32 mim_incoming_mc_address_host;
+static guint32 mim_outgoing_mc_address_host;
+static gboolean lbtrm_expert_separate_naks;
+static gboolean lbtrm_expert_separate_ncfs;
+static gboolean lbtrm_use_tag;
+static gboolean lbtrm_sequence_analysis;
/*----------------------------------------------------------------------------*/
/* Tag management. */
@@ -600,8 +600,8 @@ typedef struct
guint32 mim_mc_outgoing_address_val_h;
} lbtrm_tag_entry_t;
-static lbtrm_tag_entry_t * lbtrm_tag_entry = NULL;
-static guint lbtrm_tag_count = 0;
+static lbtrm_tag_entry_t * lbtrm_tag_entry;
+static guint lbtrm_tag_count;
UAT_CSTRING_CB_DEF(lbtrm_tag, name, lbtrm_tag_entry_t)
UAT_IPV4_MC_CB_DEF(lbtrm_tag, mc_address_low, lbtrm_tag_entry_t)
@@ -1090,7 +1090,7 @@ static bool dissect_lbtrm_sqn_frame_list_callback(const void *key _U_, void * fr
}
proto_item_set_generated(transport_item);
}
- return (FALSE);
+ return FALSE;
}
static int dissect_lbtrm(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void * user_data _U_)
@@ -1470,16 +1470,16 @@ static gboolean test_lbtrm_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
/* Must be a UDP packet. */
if (pinfo->ptype != PT_UDP)
{
- return (FALSE);
+ return FALSE;
}
/* Destination address must be IPV4 and 4 bytes in length. */
if ((pinfo->dst.type != AT_IPv4) || (pinfo->dst.len != 4))
{
- return (FALSE);
+ return FALSE;
}
if (tvb_reported_length_remaining(tvb, 0) < L_LBTRM_HDR_T)
{
- return (FALSE);
+ return FALSE;
}
ver_type = tvb_get_guint8(tvb, O_LBTRM_HDR_T_VER_TYPE);
packet_type = LBTRM_HDR_TYPE(ver_type);
@@ -1491,17 +1491,17 @@ static gboolean test_lbtrm_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
case LBTRM_PACKET_TYPE_NCF:
break;
default:
- return (FALSE);
+ return FALSE;
}
packet_ver = LBTRM_HDR_VER(ver_type);
if (packet_ver != LBTRM_VERSION)
{
- return (FALSE);
+ return FALSE;
}
next_hdr = tvb_get_guint8(tvb, O_LBTRM_HDR_T_NEXT_HDR);
if (next_hdr != LBTRM_NHDR_DATA)
{
- return (FALSE);
+ return FALSE;
}
if (lbtrm_use_tag)
{
@@ -1550,9 +1550,9 @@ static gboolean test_lbtrm_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
if (valid_packet)
{
dissect_lbtrm(tvb, pinfo, tree, user_data);
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
/* Register all the bits needed with the filtering engine */
diff --git a/epan/dissectors/packet-lbtru.c b/epan/dissectors/packet-lbtru.c
index a22b2940ce..51c75248bf 100644
--- a/epan/dissectors/packet-lbtru.c
+++ b/epan/dissectors/packet-lbtru.c
@@ -391,18 +391,17 @@ static lbm_transport_frame_t * lbtru_client_transport_frame_add(lbtru_client_tra
return (frame_entry);
}
-static char * lbtru_transport_source_string_format(const address * source_address, guint16 source_port, guint32 session_id)
+static char * lbtru_transport_source_string_format(wmem_allocator_t *scope, const address * source_address, guint16 source_port, guint32 session_id)
{
- /* Returns a packet-scoped string. */
char * bufptr = NULL;
if (session_id == 0)
{
- bufptr = wmem_strdup_printf(wmem_packet_scope(), "LBT-RU:%s:%" PRIu16, address_to_str(wmem_packet_scope(), source_address), source_port);
+ bufptr = wmem_strdup_printf(scope, "LBT-RU:%s:%" PRIu16, address_to_str(scope, source_address), source_port);
}
else
{
- bufptr = wmem_strdup_printf(wmem_packet_scope(), "LBT-RU:%s:%" PRIu16 ":%08x", address_to_str(wmem_packet_scope(), source_address), source_port, session_id);
+ bufptr = wmem_strdup_printf(scope, "LBT-RU:%s:%" PRIu16 ":%08x", address_to_str(scope, source_address), source_port, session_id);
}
return (bufptr);
}
@@ -410,13 +409,12 @@ static char * lbtru_transport_source_string_format(const address * source_addres
char * lbtru_transport_source_string(const address * source_address, guint16 source_port, guint32 session_id)
{
/* Returns a file-scoped string. */
- return (wmem_strdup(wmem_file_scope(), lbtru_transport_source_string_format(source_address, source_port, session_id)));
+ return lbtru_transport_source_string_format(wmem_file_scope(), source_address, source_port, session_id);
}
-static char * lbtru_transport_source_string_transport(lbtru_transport_t * transport)
+static char * lbtru_transport_source_string_transport(wmem_allocator_t *scope, lbtru_transport_t * transport)
{
- /* Returns a packet-scoped string. */
- return (lbtru_transport_source_string(&(transport->source_address), transport->source_port, transport->session_id));
+ return lbtru_transport_source_string_format(scope, &(transport->source_address), transport->source_port, transport->session_id);
}
/*----------------------------------------------------------------------------*/
@@ -635,20 +633,20 @@ static guint32 global_lbtru_source_port_low = LBTRU_DEFAULT_SOURCE_PORT_LOW;
static guint32 global_lbtru_source_port_high = LBTRU_DEFAULT_SOURCE_PORT_HIGH;
static guint32 global_lbtru_receiver_port_low = LBTRU_DEFAULT_RECEIVER_PORT_LOW;
static guint32 global_lbtru_receiver_port_high = LBTRU_DEFAULT_RECEIVER_PORT_HIGH;
-static gboolean global_lbtru_expert_separate_naks = FALSE;
-static gboolean global_lbtru_expert_separate_ncfs = FALSE;
-static gboolean global_lbtru_use_tag = FALSE;
-static gboolean global_lbtru_sequence_analysis = FALSE;
+static bool global_lbtru_expert_separate_naks;
+static bool global_lbtru_expert_separate_ncfs;
+static bool global_lbtru_use_tag;
+static bool global_lbtru_sequence_analysis;
/* Local preferences variables (used by the dissector). */
static guint32 lbtru_source_port_low = LBTRU_DEFAULT_SOURCE_PORT_LOW;
static guint32 lbtru_source_port_high = LBTRU_DEFAULT_SOURCE_PORT_HIGH;
static guint32 lbtru_receiver_port_low = LBTRU_DEFAULT_RECEIVER_PORT_LOW;
static guint32 lbtru_receiver_port_high = LBTRU_DEFAULT_RECEIVER_PORT_HIGH;
-static gboolean lbtru_expert_separate_naks = FALSE;
-static gboolean lbtru_expert_separate_ncfs = FALSE;
-static gboolean lbtru_use_tag = FALSE;
-static gboolean lbtru_sequence_analysis = FALSE;
+static gboolean lbtru_expert_separate_naks;
+static gboolean lbtru_expert_separate_ncfs;
+static gboolean lbtru_use_tag;
+static gboolean lbtru_sequence_analysis;
/*----------------------------------------------------------------------------*/
/* Tag management. */
@@ -662,8 +660,8 @@ typedef struct
guint32 receiver_port_high;
} lbtru_tag_entry_t;
-static lbtru_tag_entry_t * lbtru_tag_entry = NULL;
-static guint lbtru_tag_count = 0;
+static lbtru_tag_entry_t * lbtru_tag_entry;
+static guint lbtru_tag_count;
UAT_CSTRING_CB_DEF(lbtru_tag, name, lbtru_tag_entry_t)
UAT_DEC_CB_DEF(lbtru_tag, source_port_low, lbtru_tag_entry_t)
@@ -962,7 +960,7 @@ static int dissect_lbtru_ncf(tvbuff_t * tvb, int offset, packet_info * pinfo, pr
}
tap_info->ncf_reason = LBTRU_NCF_HDR_REASON(reason_format);
tap_info->num_sqns = num_ncfs;
- tap_info->sqns = wmem_alloc_array(wmem_packet_scope(), guint32, num_ncfs);
+ tap_info->sqns = wmem_alloc_array(pinfo->pool, guint32, num_ncfs);
len_dissected += dissect_lbtru_ncf_list(tvb, offset + L_LBTRU_NCF_HDR_T, pinfo, ncf_tree, num_ncfs, LBTRU_NCF_HDR_REASON(reason_format), tap_info);
proto_item_set_len(ncf_item, len_dissected);
return (len_dissected);
@@ -1017,7 +1015,7 @@ static int dissect_lbtru_nak(tvbuff_t * tvb, int offset, packet_info * pinfo, pr
expert_add_info(pinfo, nak_item, &ei_lbtru_analysis_nak);
}
tap_info->num_sqns = num_naks;
- tap_info->sqns = wmem_alloc_array(wmem_packet_scope(), guint32, num_naks);
+ tap_info->sqns = wmem_alloc_array(pinfo->pool, guint32, num_naks);
len_dissected += dissect_lbtru_nak_list(tvb, offset + L_LBTRU_NAK_HDR_T, pinfo, nak_tree, num_naks, tap_info);
proto_item_set_len(nak_item, len_dissected);
return (len_dissected);
@@ -1093,7 +1091,7 @@ static bool dissect_lbtru_sqn_frame_list_callback(const void *key _U_, void * fr
}
proto_item_set_generated(transport_item);
}
- return (FALSE);
+ return FALSE;
}
static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void * user_data _U_)
@@ -1180,7 +1178,7 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
proto_item_set_generated(channel_item);
channel_tree = proto_item_add_subtree(channel_item, ett_lbtru_channel);
- tapinfo = wmem_new0(wmem_packet_scope(), lbm_lbtru_tap_info_t);
+ tapinfo = wmem_new0(pinfo->pool, lbm_lbtru_tap_info_t);
tapinfo->type = packet_type;
header_item = proto_tree_add_item(lbtru_tree, hf_lbtru_hdr, tvb, 0, -1, ENC_NA);
@@ -1431,7 +1429,7 @@ static int dissect_lbtru(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
{
client = lbtru_client_transport_find(transport, &receiver_address, receiver_port, pinfo->num);
}
- tapinfo->transport = lbtru_transport_source_string_transport(transport);
+ tapinfo->transport = lbtru_transport_source_string_transport(pinfo->pool, transport);
channel = transport->channel;
fld_item = proto_tree_add_uint64(channel_tree, hf_lbtru_channel_id, tvb, 0, 0, channel);
proto_item_set_generated(fld_item);
@@ -1654,12 +1652,12 @@ static gboolean test_lbtru_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
/* Must be a UDP packet. */
if (pinfo->ptype != PT_UDP)
{
- return (FALSE);
+ return FALSE;
}
/* Destination address must be IPV4 and 4 bytes in length. */
if ((pinfo->dst.type != AT_IPv4) || (pinfo->dst.len != 4))
{
- return (FALSE);
+ return FALSE;
}
if (lbtru_use_tag)
@@ -1691,10 +1689,10 @@ static gboolean test_lbtru_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tre
if (valid_packet)
{
dissect_lbtru(tvb, pinfo, tree, user_data);
- return (TRUE);
+ return TRUE;
}
/* Not one of ours. */
- return (FALSE);
+ return FALSE;
}
/* Register all the bits needed with the filtering engine */
diff --git a/epan/dissectors/packet-lbttcp.c b/epan/dissectors/packet-lbttcp.c
index c21c45a6de..be8d3b0c96 100644
--- a/epan/dissectors/packet-lbttcp.c
+++ b/epan/dissectors/packet-lbttcp.c
@@ -191,24 +191,24 @@ gboolean lbttcp_transport_sid_find(const address * source_address, guint16 sourc
conv = find_conversation(frame, source_address, &lbttcp_null_address, CONVERSATION_TCP, source_port, 0, 0);
if (conv == NULL)
{
- return (FALSE);
+ return FALSE;
}
conv_data = (lbttcp_transport_conv_data_t *) conversation_get_proto_data(conv, proto_lbttcp);
if (conv_data == NULL)
{
- return (FALSE);
+ return FALSE;
}
if (conv_data->frame_tree == NULL)
{
- return (FALSE);
+ return FALSE;
}
transport = (lbttcp_transport_t *)wmem_tree_lookup32_le(conv_data->frame_tree, frame);
if (transport == NULL)
{
- return (FALSE);
+ return FALSE;
}
*session_id = transport->session_id;
- return (TRUE);
+ return TRUE;
}
void lbttcp_transport_sid_add(const address * source_address, guint16 source_port, guint32 frame, guint32 session_id)
@@ -266,7 +266,7 @@ static guint32 global_lbttcp_request_port_low = LBTTCP_DEFAULT_REQUEST_PORT_LOW;
static guint32 global_lbttcp_request_port_high = LBTTCP_DEFAULT_REQUEST_PORT_HIGH;
static guint32 global_lbttcp_store_port_low = LBTTCP_DEFAULT_STORE_PORT_LOW;
static guint32 global_lbttcp_store_port_high = LBTTCP_DEFAULT_STORE_PORT_HIGH;
-static gboolean global_lbttcp_use_tag = FALSE;
+static bool global_lbttcp_use_tag;
/* Local preferences variables (used by the dissector). */
static guint32 lbttcp_source_port_low = LBTTCP_DEFAULT_SOURCE_PORT_LOW;
@@ -275,7 +275,7 @@ static guint32 lbttcp_request_port_low = LBTTCP_DEFAULT_REQUEST_PORT_LOW;
static guint32 lbttcp_request_port_high = LBTTCP_DEFAULT_REQUEST_PORT_HIGH;
static guint32 lbttcp_store_port_low = LBTTCP_DEFAULT_STORE_PORT_LOW;
static guint32 lbttcp_store_port_high = LBTTCP_DEFAULT_STORE_PORT_HIGH;
-static gboolean lbttcp_use_tag = FALSE;
+static gboolean lbttcp_use_tag;
/* Tag definitions. */
typedef struct
@@ -289,8 +289,8 @@ typedef struct
guint32 store_port_high;
} lbttcp_tag_entry_t;
-static lbttcp_tag_entry_t * lbttcp_tag_entry = NULL;
-static guint lbttcp_tag_count = 0;
+static lbttcp_tag_entry_t * lbttcp_tag_entry;
+static guint lbttcp_tag_count;
UAT_CSTRING_CB_DEF(lbttcp_tag, name, lbttcp_tag_entry_t)
UAT_DEC_CB_DEF(lbttcp_tag, source_port_low, lbttcp_tag_entry_t)
@@ -649,7 +649,7 @@ static gboolean test_lbttcp_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tr
/* Destination address must be IPV4 and 4 bytes in length. */
if ((pinfo->dst.type != AT_IPv4) || (pinfo->dst.len != 4))
{
- return (FALSE);
+ return FALSE;
}
if (lbttcp_use_tag)
@@ -657,11 +657,11 @@ static gboolean test_lbttcp_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tr
if (lbttcp_tag_find(pinfo) != NULL)
{
dissect_lbttcp_real(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
else
{
- return (FALSE);
+ return FALSE;
}
}
@@ -676,7 +676,7 @@ static gboolean test_lbttcp_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tr
|| ((pinfo->srcport >= lbttcp_store_port_low) && (pinfo->srcport <= lbttcp_store_port_high))
|| ((pinfo->destport >= lbttcp_store_port_low) && (pinfo->destport <= lbttcp_store_port_high))))
{
- return (FALSE);
+ return FALSE;
}
if (!lbmc_test_lbmc_header(tvb, 0))
@@ -684,7 +684,7 @@ static gboolean test_lbttcp_packet(tvbuff_t * tvb, packet_info * pinfo, proto_tr
/* One of ours. Probably. */
dissect_lbttcp_real(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
/* Register all the bits needed with the filtering engine */
diff --git a/epan/dissectors/packet-lcsap.c b/epan/dissectors/packet-lcsap.c
index bacc53870e..c31e6b8b58 100644
--- a/epan/dissectors/packet-lcsap.c
+++ b/epan/dissectors/packet-lcsap.c
@@ -273,69 +273,69 @@ static int ett_lcsap_plmnd_id;
static int ett_lcsap_imsi;
static int ett_lcsap_civic_address;
-static gint ett_lcsap_ProtocolIE_Container;
-static gint ett_lcsap_ProtocolIE_Field;
-static gint ett_lcsap_ProtocolExtensionContainer;
-static gint ett_lcsap_ProtocolExtensionField;
-static gint ett_lcsap_Additional_PositioningDataSet;
-static gint ett_lcsap_Altitude_And_Direction;
-static gint ett_lcsap_Ciphering_Data;
-static gint ett_lcsap_Ciphering_Data_Ack;
-static gint ett_lcsap_Ciphering_Data_Error_Report;
-static gint ett_lcsap_Ciphering_Data_Set;
-static gint ett_lcsap_Ciphering_Data_Error_Report_Contents;
-static gint ett_lcsap_E_CGI;
-static gint ett_lcsap_Ellipsoid_Point_With_Uncertainty_Ellipse;
-static gint ett_lcsap_Ellipsoid_Point_With_Altitude;
-static gint ett_lcsap_Ellipsoid_Point_With_Altitude_And_Uncertainty_Ellipsoid;
-static gint ett_lcsap_Ellipsoid_Arc;
-static gint ett_lcsap_ENB_ID;
-static gint ett_lcsap_Geographical_Area;
-static gint ett_lcsap_Geographical_Coordinates;
-static gint ett_lcsap_Global_eNB_ID;
-static gint ett_lcsap_GNSS_Positioning_Data_Set;
-static gint ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Uncertainty_Ellipse;
-static gint ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Scalable_Uncertainty_Ellipse;
-static gint ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Altitude_And_Uncertainty_Ellipsoid;
-static gint ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Altitude_And_Scalable_Uncertainty_Ellipsoid;
-static gint ett_lcsap_High_Accuracy_Geographical_Coordinates;
-static gint ett_lcsap_High_Accuracy_Uncertainty_Ellipse;
-static gint ett_lcsap_High_Accuracy_Extended_Uncertainty_Ellipse;
-static gint ett_lcsap_High_Accuracy_Scalable_Uncertainty_Ellipse;
-static gint ett_lcsap_High_Accuracy_Scalable_Uncertainty_Altitude;
-static gint ett_lcsap_Horizontal_Speed_And_Bearing;
-static gint ett_lcsap_Horizontal_Velocity;
-static gint ett_lcsap_Horizontal_With_Vertical_Velocity;
-static gint ett_lcsap_Horizontal_Velocity_With_Uncertainty;
-static gint ett_lcsap_Horizontal_With_Vertical_Velocity_And_Uncertainty;
-static gint ett_lcsap_LCS_Cause;
-static gint ett_lcsap_LCS_QoS;
-static gint ett_lcsap_MultipleAPDUs;
-static gint ett_lcsap_Network_Element;
-static gint ett_lcsap_Point;
-static gint ett_lcsap_Point_With_Uncertainty;
-static gint ett_lcsap_Polygon;
-static gint ett_lcsap_Polygon_Point;
-static gint ett_lcsap_Positioning_Data;
-static gint ett_lcsap_Positioning_Data_Set;
-static gint ett_lcsap_Uncertainty_Ellipse;
-static gint ett_lcsap_UE_Positioning_Capability;
-static gint ett_lcsap_UE_Area_Indication;
-static gint ett_lcsap_Velocity_Estimate;
-static gint ett_lcsap_Vertical_Velocity;
-static gint ett_lcsap_Location_Request;
-static gint ett_lcsap_Location_Response;
-static gint ett_lcsap_Location_Abort_Request;
-static gint ett_lcsap_Connection_Oriented_Information;
-static gint ett_lcsap_Connectionless_Information;
-static gint ett_lcsap_Reset_Request;
-static gint ett_lcsap_Reset_Acknowledge;
-static gint ett_lcsap_Ciphering_Key_Data;
-static gint ett_lcsap_Ciphering_Key_Data_Result;
-static gint ett_lcsap_LCS_AP_PDU;
-static gint ett_lcsap_InitiatingMessage;
-static gint ett_lcsap_SuccessfulOutcome;
-static gint ett_lcsap_UnsuccessfulOutcome;
+static int ett_lcsap_ProtocolIE_Container;
+static int ett_lcsap_ProtocolIE_Field;
+static int ett_lcsap_ProtocolExtensionContainer;
+static int ett_lcsap_ProtocolExtensionField;
+static int ett_lcsap_Additional_PositioningDataSet;
+static int ett_lcsap_Altitude_And_Direction;
+static int ett_lcsap_Ciphering_Data;
+static int ett_lcsap_Ciphering_Data_Ack;
+static int ett_lcsap_Ciphering_Data_Error_Report;
+static int ett_lcsap_Ciphering_Data_Set;
+static int ett_lcsap_Ciphering_Data_Error_Report_Contents;
+static int ett_lcsap_E_CGI;
+static int ett_lcsap_Ellipsoid_Point_With_Uncertainty_Ellipse;
+static int ett_lcsap_Ellipsoid_Point_With_Altitude;
+static int ett_lcsap_Ellipsoid_Point_With_Altitude_And_Uncertainty_Ellipsoid;
+static int ett_lcsap_Ellipsoid_Arc;
+static int ett_lcsap_ENB_ID;
+static int ett_lcsap_Geographical_Area;
+static int ett_lcsap_Geographical_Coordinates;
+static int ett_lcsap_Global_eNB_ID;
+static int ett_lcsap_GNSS_Positioning_Data_Set;
+static int ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Uncertainty_Ellipse;
+static int ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Scalable_Uncertainty_Ellipse;
+static int ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Altitude_And_Uncertainty_Ellipsoid;
+static int ett_lcsap_High_Accuracy_Ellipsoid_Point_With_Altitude_And_Scalable_Uncertainty_Ellipsoid;
+static int ett_lcsap_High_Accuracy_Geographical_Coordinates;
+static int ett_lcsap_High_Accuracy_Uncertainty_Ellipse;
+static int ett_lcsap_High_Accuracy_Extended_Uncertainty_Ellipse;
+static int ett_lcsap_High_Accuracy_Scalable_Uncertainty_Ellipse;
+static int ett_lcsap_High_Accuracy_Scalable_Uncertainty_Altitude;
+static int ett_lcsap_Horizontal_Speed_And_Bearing;
+static int ett_lcsap_Horizontal_Velocity;
+static int ett_lcsap_Horizontal_With_Vertical_Velocity;
+static int ett_lcsap_Horizontal_Velocity_With_Uncertainty;
+static int ett_lcsap_Horizontal_With_Vertical_Velocity_And_Uncertainty;
+static int ett_lcsap_LCS_Cause;
+static int ett_lcsap_LCS_QoS;
+static int ett_lcsap_MultipleAPDUs;
+static int ett_lcsap_Network_Element;
+static int ett_lcsap_Point;
+static int ett_lcsap_Point_With_Uncertainty;
+static int ett_lcsap_Polygon;
+static int ett_lcsap_Polygon_Point;
+static int ett_lcsap_Positioning_Data;
+static int ett_lcsap_Positioning_Data_Set;
+static int ett_lcsap_Uncertainty_Ellipse;
+static int ett_lcsap_UE_Positioning_Capability;
+static int ett_lcsap_UE_Area_Indication;
+static int ett_lcsap_Velocity_Estimate;
+static int ett_lcsap_Vertical_Velocity;
+static int ett_lcsap_Location_Request;
+static int ett_lcsap_Location_Response;
+static int ett_lcsap_Location_Abort_Request;
+static int ett_lcsap_Connection_Oriented_Information;
+static int ett_lcsap_Connectionless_Information;
+static int ett_lcsap_Reset_Request;
+static int ett_lcsap_Reset_Acknowledge;
+static int ett_lcsap_Ciphering_Key_Data;
+static int ett_lcsap_Ciphering_Key_Data_Result;
+static int ett_lcsap_LCS_AP_PDU;
+static int ett_lcsap_InitiatingMessage;
+static int ett_lcsap_SuccessfulOutcome;
+static int ett_lcsap_UnsuccessfulOutcome;
static expert_field ei_lcsap_civic_data_not_xml;
@@ -1411,7 +1411,7 @@ dissect_lcsap_Polygon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_lcsap_High_Accuracy_DegreesLatitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
@@ -1421,7 +1421,7 @@ dissect_lcsap_High_Accuracy_DegreesLatitude(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_lcsap_High_Accuracy_DegreesLongitude(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c
index 852ef1aa05..1ed66c536e 100644
--- a/epan/dissectors/packet-ldap.c
+++ b/epan/dissectors/packet-ldap.c
@@ -341,81 +341,81 @@ static gint ett_mscldap_ntver_flags;
static gint ett_mscldap_ipdetails;
static gint ett_ldap_DirSyncFlagsSubEntry;
-static gint ett_ldap_LDAPMessage;
-static gint ett_ldap_ProtocolOp;
-static gint ett_ldap_AttributeDescriptionList;
-static gint ett_ldap_AttributeValueAssertion;
-static gint ett_ldap_Attribute;
-static gint ett_ldap_SET_OF_AttributeValue;
-static gint ett_ldap_LDAPResult;
-static gint ett_ldap_Referral;
-static gint ett_ldap_Controls;
-static gint ett_ldap_Control;
-static gint ett_ldap_BindRequest_U;
-static gint ett_ldap_AuthenticationChoice;
-static gint ett_ldap_SaslCredentials;
-static gint ett_ldap_BindResponse_U;
-static gint ett_ldap_SearchRequest_U;
-static gint ett_ldap_Filter;
-static gint ett_ldap_T_and;
-static gint ett_ldap_T_or;
-static gint ett_ldap_SubstringFilter;
-static gint ett_ldap_T_substringFilter_substrings;
-static gint ett_ldap_T_substringFilter_substrings_item;
-static gint ett_ldap_MatchingRuleAssertion;
-static gint ett_ldap_SearchResultEntry_U;
-static gint ett_ldap_PartialAttributeList;
-static gint ett_ldap_PartialAttributeList_item;
-static gint ett_ldap_SEQUENCE_OF_LDAPURL;
-static gint ett_ldap_ModifyRequest_U;
-static gint ett_ldap_ModifyRequest_modification;
-static gint ett_ldap_T_modifyRequest_modification_item;
-static gint ett_ldap_AttributeTypeAndValues;
-static gint ett_ldap_AddRequest_U;
-static gint ett_ldap_AttributeList;
-static gint ett_ldap_AttributeList_item;
-static gint ett_ldap_ModifyDNRequest_U;
-static gint ett_ldap_CompareRequest_U;
-static gint ett_ldap_ExtendedRequest_U;
-static gint ett_ldap_ExtendedResponse_U;
-static gint ett_ldap_IntermediateResponse_U;
-static gint ett_ldap_SearchControlValue;
-static gint ett_ldap_SortKeyList;
-static gint ett_ldap_SortKeyList_item;
-static gint ett_ldap_SortResult;
-static gint ett_ldap_DirSyncControlValue;
-static gint ett_ldap_PasswdModifyRequestValue;
-static gint ett_ldap_CancelRequestValue;
-static gint ett_ldap_SyncRequestValue;
-static gint ett_ldap_SyncStateValue;
-static gint ett_ldap_SyncDoneValue;
-static gint ett_ldap_SyncInfoValue;
-static gint ett_ldap_T_refreshDelete;
-static gint ett_ldap_T_refreshPresent;
-static gint ett_ldap_T_syncIdSet;
-static gint ett_ldap_SET_OF_SyncUUID;
-static gint ett_ldap_PasswordPolicyResponseValue;
-static gint ett_ldap_T_warning;
+static int ett_ldap_LDAPMessage;
+static int ett_ldap_ProtocolOp;
+static int ett_ldap_AttributeDescriptionList;
+static int ett_ldap_AttributeValueAssertion;
+static int ett_ldap_Attribute;
+static int ett_ldap_SET_OF_AttributeValue;
+static int ett_ldap_LDAPResult;
+static int ett_ldap_Referral;
+static int ett_ldap_Controls;
+static int ett_ldap_Control;
+static int ett_ldap_BindRequest_U;
+static int ett_ldap_AuthenticationChoice;
+static int ett_ldap_SaslCredentials;
+static int ett_ldap_BindResponse_U;
+static int ett_ldap_SearchRequest_U;
+static int ett_ldap_Filter;
+static int ett_ldap_T_and;
+static int ett_ldap_T_or;
+static int ett_ldap_SubstringFilter;
+static int ett_ldap_T_substringFilter_substrings;
+static int ett_ldap_T_substringFilter_substrings_item;
+static int ett_ldap_MatchingRuleAssertion;
+static int ett_ldap_SearchResultEntry_U;
+static int ett_ldap_PartialAttributeList;
+static int ett_ldap_PartialAttributeList_item;
+static int ett_ldap_SEQUENCE_OF_LDAPURL;
+static int ett_ldap_ModifyRequest_U;
+static int ett_ldap_ModifyRequest_modification;
+static int ett_ldap_T_modifyRequest_modification_item;
+static int ett_ldap_AttributeTypeAndValues;
+static int ett_ldap_AddRequest_U;
+static int ett_ldap_AttributeList;
+static int ett_ldap_AttributeList_item;
+static int ett_ldap_ModifyDNRequest_U;
+static int ett_ldap_CompareRequest_U;
+static int ett_ldap_ExtendedRequest_U;
+static int ett_ldap_ExtendedResponse_U;
+static int ett_ldap_IntermediateResponse_U;
+static int ett_ldap_SearchControlValue;
+static int ett_ldap_SortKeyList;
+static int ett_ldap_SortKeyList_item;
+static int ett_ldap_SortResult;
+static int ett_ldap_DirSyncControlValue;
+static int ett_ldap_PasswdModifyRequestValue;
+static int ett_ldap_CancelRequestValue;
+static int ett_ldap_SyncRequestValue;
+static int ett_ldap_SyncStateValue;
+static int ett_ldap_SyncDoneValue;
+static int ett_ldap_SyncInfoValue;
+static int ett_ldap_T_refreshDelete;
+static int ett_ldap_T_refreshPresent;
+static int ett_ldap_T_syncIdSet;
+static int ett_ldap_SET_OF_SyncUUID;
+static int ett_ldap_PasswordPolicyResponseValue;
+static int ett_ldap_T_warning;
static expert_field ei_ldap_exceeded_filter_length;
static expert_field ei_ldap_too_many_filter_elements;
-static dissector_table_t ldap_name_dissector_table=NULL;
-static const char *object_identifier_id = NULL; /* LDAP OID */
+static dissector_table_t ldap_name_dissector_table;
+static const char *object_identifier_id; /* LDAP OID */
-static gboolean do_protocolop = FALSE;
-static gchar *attr_type = NULL;
-static gboolean is_binary_attr_type = FALSE;
-static gboolean ldap_found_in_frame = FALSE;
+static gboolean do_protocolop;
+static gchar *attr_type;
+static gboolean is_binary_attr_type;
+static gboolean ldap_found_in_frame;
#define TCP_PORT_RANGE_LDAP "389,3268" /* 3268 is Windows 2000 Global Catalog */
#define TCP_PORT_LDAPS 636
#define UDP_PORT_CLDAP 389
/* desegmentation of LDAP */
-static gboolean ldap_desegment = TRUE;
+static bool ldap_desegment = true;
static guint global_ldaps_tcp_port = TCP_PORT_LDAPS;
-static guint ssl_port = 0;
+static guint ssl_port;
static dissector_handle_t gssapi_handle;
static dissector_handle_t gssapi_wrap_handle;
@@ -824,10 +824,10 @@ static int dissect_mscldap_ntver_flags(proto_tree *parent_tree, tvbuff_t *tvb, i
}
/* This string contains the last LDAPString that was decoded */
-static const char *attributedesc_string=NULL;
+static const char *attributedesc_string;
/* This string contains the last AssertionValue that was decoded */
-static char *ldapvalue_string=NULL;
+static char *ldapvalue_string;
/* if the octet string contain all printable ASCII characters, then
* display it as a string, othervise just display it in hex.
@@ -933,14 +933,14 @@ finished:
}
/* This string contains the last Filter item that was decoded */
-static const char *Filter_string=NULL;
-static const char *and_filter_string=NULL;
-static const char *or_filter_string=NULL;
-static const char *substring_value=NULL;
-static const char *substring_item_init=NULL;
-static const char *substring_item_any=NULL;
-static const char *substring_item_final=NULL;
-static const char *matching_rule_string=NULL;
+static const char *Filter_string;
+static const char *and_filter_string;
+static const char *or_filter_string;
+static const char *substring_value;
+static const char *substring_item_init;
+static const char *substring_item_any;
+static const char *substring_item_final;
+static const char *matching_rule_string;
static gboolean matching_rule_dnattr=FALSE;
#define MAX_FILTER_LEN 4096
@@ -952,8 +952,8 @@ static gint Filter_elements;
/* Global variables */
static gint MessageID =-1;
static gint ProtocolOp = -1;
-static gint result = 0;
-static proto_item *ldm_tree = NULL; /* item to add text to */
+static gint result;
+static proto_item *ldm_tree; /* item to add text to */
static void ldap_do_protocolop(packet_info *pinfo)
{
@@ -1427,7 +1427,7 @@ dissect_ldap_AuthenticationChoice(bool implicit_tag _U_, tvbuff_t *tvb _U_, int
ldap_do_protocolop(actx->pinfo);
- if((branch > -1) && (branch < (gint)(sizeof AuthenticationChoice_choice/sizeof AuthenticationChoice_choice[0])))
+ if((branch > -1) && (branch < (gint)array_length(AuthenticationChoice_choice)))
auth = AuthenticationChoice_choice[branch].value;
valstr = val_to_str(auth, ldap_AuthenticationChoice_vals, "Unknown auth(%u)");
@@ -2173,7 +2173,7 @@ static const ber_choice_t Filter_choice[] = {
static int
dissect_ldap_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Filter → Filter/and → Filter/and/_item → Filter
+ // Filter -> Filter/and -> Filter/and/_item -> Filter
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
proto_tree *tr;
diff --git a/epan/dissectors/packet-ldp.c b/epan/dissectors/packet-ldp.c
index 876f81795b..b0272b0eea 100644
--- a/epan/dissectors/packet-ldp.c
+++ b/epan/dissectors/packet-ldp.c
@@ -338,7 +338,7 @@ static expert_field ei_ldp_malformed_interface_parameter;
static expert_field ei_ldp_tlv_fec;
/* desegmentation of LDP over TCP */
-static gboolean ldp_desegment = TRUE;
+static bool ldp_desegment = true;
/*
* The following define all the TLV types I know about
diff --git a/epan/dissectors/packet-lg8979.c b/epan/dissectors/packet-lg8979.c
index b988fa16f0..4ccacdb31d 100644
--- a/epan/dissectors/packet-lg8979.c
+++ b/epan/dissectors/packet-lg8979.c
@@ -142,7 +142,7 @@ static gint ett_lg8979_point;
static gint ett_lg8979_ts;
/* Globals for L&G 8979 Protocol Preferences */
-static gboolean lg8979_desegment = TRUE;
+static bool lg8979_desegment = true;
#define LG8979_HEADER 0xFF
diff --git a/epan/dissectors/packet-li5g.c b/epan/dissectors/packet-li5g.c
index b9598adbd9..a0df24c47f 100644
--- a/epan/dissectors/packet-li5g.c
+++ b/epan/dissectors/packet-li5g.c
@@ -217,7 +217,7 @@ dissect_li5g_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
return FALSE;
/* only 4 types supported*/
if(tvb_get_ntohs(tvb, 2) < 1 || tvb_get_ntohs(tvb, 2) > 4)
- return (FALSE);
+ return FALSE;
/* TLS can hold it, no need to find the disect every time */
*(tlsinfo->app_handle) = li5g_handle;
diff --git a/epan/dissectors/packet-lin.c b/epan/dissectors/packet-lin.c
index 7c805988be..14be6cb794 100644
--- a/epan/dissectors/packet-lin.c
+++ b/epan/dissectors/packet-lin.c
@@ -121,10 +121,10 @@ typedef struct _interface_config {
#define DATAFILE_LIN_INTERFACE_MAPPING "LIN_interface_mapping"
-static GHashTable *data_lin_interfaces_by_id = NULL;
-static GHashTable *data_lin_interfaces_by_name = NULL;
-static interface_config_t* interface_configs = NULL;
-static guint interface_config_num = 0;
+static GHashTable *data_lin_interfaces_by_id;
+static GHashTable *data_lin_interfaces_by_name;
+static interface_config_t* interface_configs;
+static guint interface_config_num;
UAT_HEX_CB_DEF(interface_configs, interface_id, interface_config_t)
UAT_CSTRING_CB_DEF(interface_configs, interface_name, interface_config_t)
@@ -291,9 +291,9 @@ typedef struct _sender_receiver_config {
#define DATAFILE_LIN_SENDER_RECEIVER "LIN_senders_receivers"
-static GHashTable *data_sender_receiver = NULL;
-static sender_receiver_config_t* sender_receiver_configs = NULL;
-static guint sender_receiver_config_num = 0;
+static GHashTable *data_sender_receiver;
+static sender_receiver_config_t* sender_receiver_configs;
+static guint sender_receiver_config_num;
UAT_HEX_CB_DEF(sender_receiver_configs, bus_id, sender_receiver_config_t)
UAT_HEX_CB_DEF(sender_receiver_configs, lin_id, sender_receiver_config_t)
diff --git a/epan/dissectors/packet-link16.c b/epan/dissectors/packet-link16.c
index 6815d80e35..fc07c4d779 100644
--- a/epan/dissectors/packet-link16.c
+++ b/epan/dissectors/packet-link16.c
@@ -56,6 +56,7 @@ static const value_string Link16_Label_Strings[] = {
};
/* Viasat, Inc., (2012), Link 16 Network Participant Group and Message Card, accessed from <http://www.viasat.com/files/assets/assets/Link16_NPG_Message_Card_100112a.pdf> on 15 April 2013. */
+/* SyntheSys (2021), Link 16 Messages, accessed from <https://resources.synthesys.co.uk/defence/datasheet-link-16-message-table.pdf> on 15 May 2024. */
#define MKPAIR(a, b) (((b) << 5) | (a))
static const value_string Link16_Message_Strings[] = {
{ MKPAIR(0, 0), "Initial Entry" },
@@ -73,6 +74,7 @@ static const value_string Link16_Message_Strings[] = {
{ MKPAIR(1, 4), "Communication Status" },
{ MKPAIR(1, 5), "Net Control Initialization" },
{ MKPAIR(1, 6), "Needline Participation Group Assignment" },
+ { MKPAIR(1, 7), "Fine Pulse Count Report" },
{ MKPAIR(2, 0), "Indirect Interface Unit PPLI" },
{ MKPAIR(2, 2), "Air PPLI" },
{ MKPAIR(2, 3), "Surface PPLI" },
@@ -88,7 +90,8 @@ static const value_string Link16_Message_Strings[] = {
{ MKPAIR(3, 6), "Space Track" },
{ MKPAIR(3, 7), "Electronic Warfare Product Information" },
{ MKPAIR(5, 4), "Acoustic Bearing and Range" },
- { MKPAIR(6, 0), "Amplification" },
+ { MKPAIR(6, 0), "Track/Point Amplification" },
+ { MKPAIR(6, 1), "Personnel Recovery Amplification" },
{ MKPAIR(7, 0), "Track Management" },
{ MKPAIR(7, 1), "Data Update Request" },
{ MKPAIR(7, 2), "Correlation" },
@@ -100,12 +103,14 @@ static const value_string Link16_Message_Strings[] = {
{ MKPAIR(8, 0), "Unit Designator" },
{ MKPAIR(8, 1), "Mission Correlator Change" },
{ MKPAIR(9, 0), "Command" },
+ { MKPAIR(9, 1), "Engagement Coordination" },
+ { MKPAIR(9, 2), "ECCM Coordination" },
{ MKPAIR(10, 2), "Engagement Status" },
{ MKPAIR(10, 3), "Handover" },
{ MKPAIR(10, 5), "Controlling Unit Report" },
{ MKPAIR(10, 6), "Pairing" },
- { MKPAIR(11, 0), "From the Weapon" },
- { MKPAIR(11, 1), "To the Weapon" },
+ { MKPAIR(11, 0), "Weapon Response/Status" },
+ { MKPAIR(11, 1), "Weapon Directive" },
{ MKPAIR(11, 2), "Weapon Coordination" },
{ MKPAIR(12, 0), "Mission Assignment" },
{ MKPAIR(12, 1), "Vector" },
@@ -122,8 +127,11 @@ static const value_string Link16_Message_Strings[] = {
{ MKPAIR(13, 5), "Land Platform and System Status" },
{ MKPAIR(14, 0), "Parametric Information" },
{ MKPAIR(14, 2), "Electronic Warfare Control / Coordination" },
+ { MKPAIR(14, 3), "ECM Management" },
{ MKPAIR(15, 0), "Threat Warning" },
- { MKPAIR(16, 0), "Imagery" },
+ { MKPAIR(16, 0), "Imager Transfer" },
+ { MKPAIR(16, 1), "Route Change" },
+ { MKPAIR(16, 2), "Global Area Reference System" },
{ MKPAIR(17, 0), "Weather Over target" },
{ MKPAIR(28, 0), "U.S. National 1 (Army)" },
{ MKPAIR(28, 1), "U.S. National 2 (Navy)" },
@@ -140,25 +148,32 @@ static const value_string Link16_Message_Strings[] = {
};
/* Viasat, Inc., (2012), Link 16 Network Participant Group and Message Card, accessed from <http://www.viasat.com/files/assets/assets/Link16_NPG_Message_Card_100112a.pdf> on 15 April 2013. */
+/* SyntheSys (2021), Network Participation Groups (NPGs), accessed from <https://resources.synthesys.co.uk/defence/datasheet-network-participation-groups-table.pdf> on 15 May 2024. */
const value_string Link16_NPG_Strings[] = {
{ 1, "Initial Entry" },
{ 2, "RTT-A" },
{ 3, "RTT-B" },
{ 4, "Network Management" },
- { 5, "PPLI and Status" },
- { 6, "PPLI and Status" },
+ { 5, "PPLI and Status A" },
+ { 6, "PPLI and Status B" },
{ 7, "Surveillance" },
{ 8, "Mission Management/Weapons Coordination" },
{ 9, "Control" },
+ { 10, "Electronic Warfare" },
{ 11, "Image Transfer" },
{ 12, "Voice A" },
{ 13, "Voice B" },
+ { 14, "Indirect PPLI" },
{ 18, "Network Enabled Weapons" },
{ 19, "Fighter-to-Fighter A" },
{ 20, "Fighter-to-Fighter B" },
{ 21, "Engagement Coordination" },
+ { 24, "Bomb Hit Indication" },
{ 27, "Joint Net PPLI" },
{ 28, "Distributed Network Management" },
+ { 29, "Residual Messages" },
+ { 30, "IJMS Position and Status" },
+ { 31, "Other IJMS Message" },
{ 0, NULL },
};
diff --git a/epan/dissectors/packet-linx.c b/epan/dissectors/packet-linx.c
index 3ddcce3f4a..d9fe6b9417 100644
--- a/epan/dissectors/packet-linx.c
+++ b/epan/dissectors/packet-linx.c
@@ -131,7 +131,7 @@ static int hf_linx_tcp_rlnh_msg_reserved;
static int hf_linx_tcp_payload;
-static int rlnh_version = 0;
+static int rlnh_version;
static gint ett_linx;
static gint ett_linx_multicore;
diff --git a/epan/dissectors/packet-lisp.c b/epan/dissectors/packet-lisp.c
index 9f63013daa..fccc4fe9b2 100644
--- a/epan/dissectors/packet-lisp.c
+++ b/epan/dissectors/packet-lisp.c
@@ -417,8 +417,8 @@ static dissector_handle_t lisp_handle;
static dissector_handle_t ipv4_handle;
static dissector_handle_t ipv6_handle;
-static gboolean encapsulated = FALSE;
-static gboolean ddt_originated = FALSE;
+static gboolean encapsulated;
+static gboolean ddt_originated;
static const value_string lisp_typevals[] = {
{ LISP_MAP_REQUEST, "Map-Request" },
diff --git a/epan/dissectors/packet-lix2.c b/epan/dissectors/packet-lix2.c
index cc214d05e8..60323a9590 100644
--- a/epan/dissectors/packet-lix2.c
+++ b/epan/dissectors/packet-lix2.c
@@ -32,7 +32,7 @@ void proto_register_lix2(void);
/* Initialize the protocol and registered fields */
static int proto_lix2;
-static dissector_handle_t lix2_handle = NULL;
+static dissector_handle_t lix2_handle;
static int hf_lix2_XIRIPayload_PDU; /* XIRIPayload */
@@ -1538,547 +1538,547 @@ static int hf_lix2_index; /* INTEGER */
static int hf_lix2_fullBody; /* NULL */
static int hf_lix2_bodyPart; /* MIMEPartIdentifier */
-static gint ett_lix2_XIRIPayload;
-static gint ett_lix2_XIRIEvent;
-static gint ett_lix2_IRIPayload;
-static gint ett_lix2_SEQUENCE_OF_IRITargetIdentifier;
-static gint ett_lix2_IRIEvent;
-static gint ett_lix2_IRITargetIdentifier;
-static gint ett_lix2_CCPayload;
-static gint ett_lix2_CCPDU;
-static gint ett_lix2_LINotificationPayload;
-static gint ett_lix2_LINotificationMessage;
-static gint ett_lix2_N9HRPDUSessionInfo;
-static gint ett_lix2_S8HRBearerInfo;
-static gint ett_lix2_NEFPDUSessionEstablishment;
-static gint ett_lix2_NEFPDUSessionModification;
-static gint ett_lix2_NEFPDUSessionRelease;
-static gint ett_lix2_NEFUnsuccessfulProcedure;
-static gint ett_lix2_NEFStartOfInterceptionWithEstablishedPDUSession;
-static gint ett_lix2_NEFDeviceTrigger;
-static gint ett_lix2_NEFDeviceTriggerReplace;
-static gint ett_lix2_NEFDeviceTriggerCancellation;
-static gint ett_lix2_NEFDeviceTriggerReportNotify;
-static gint ett_lix2_NEFMSISDNLessMOSMS;
-static gint ett_lix2_NEFExpectedUEBehaviourUpdate;
-static gint ett_lix2_SEQUENCE_OF_UMTLocationArea5G;
-static gint ett_lix2_NEFAFSessionWithQoSProvision;
-static gint ett_lix2_NEFAFSessionWithQoSNotification;
-static gint ett_lix2_ScheduledCommunicationTime;
-static gint ett_lix2_SEQUENCE_OF_Daytime;
-static gint ett_lix2_UMTLocationArea5G;
-static gint ett_lix2_Daytime;
-static gint ett_lix2_SCEFPDNConnectionEstablishment;
-static gint ett_lix2_SCEFPDNConnectionUpdate;
-static gint ett_lix2_SCEFPDNConnectionRelease;
-static gint ett_lix2_SCEFUnsuccessfulProcedure;
-static gint ett_lix2_SCEFStartOfInterceptionWithEstablishedPDNConnection;
-static gint ett_lix2_SCEFDeviceTrigger;
-static gint ett_lix2_SCEFDeviceTriggerReplace;
-static gint ett_lix2_SCEFDeviceTriggerCancellation;
-static gint ett_lix2_SCEFDeviceTriggerReportNotify;
-static gint ett_lix2_SCEFMSISDNLessMOSMS;
-static gint ett_lix2_SCEFCommunicationPatternUpdate;
-static gint ett_lix2_SCEFASSessionWithQoSProvision;
-static gint ett_lix2_SCEFASSessionWithQoSNotification;
-static gint ett_lix2_AAnFAnchorKeyRegister;
-static gint ett_lix2_AAnFKAKMAApplicationKeyGet;
-static gint ett_lix2_AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial;
-static gint ett_lix2_SEQUENCE_OF_AFKeyInfo;
-static gint ett_lix2_AAnFAKMAContextRemovalRecord;
-static gint ett_lix2_AKMAAFID;
-static gint ett_lix2_UAStarParams;
-static gint ett_lix2_GenericUAStarParams;
-static gint ett_lix2_TLSCipherSuite;
-static gint ett_lix2_TLS12UAStarParams;
-static gint ett_lix2_AFKeyInfo;
-static gint ett_lix2_AFAKMAApplicationKeyRefresh;
-static gint ett_lix2_AFStartOfInterceptWithEstablishedAKMAApplicationKey;
-static gint ett_lix2_SEQUENCE_OF_AFSecurityParams;
-static gint ett_lix2_AFAuxiliarySecurityParameterEstablishment;
-static gint ett_lix2_AFSecurityParams;
-static gint ett_lix2_AFApplicationKeyRemoval;
-static gint ett_lix2_AMFRegistration;
-static gint ett_lix2_AMFDeregistration;
-static gint ett_lix2_AMFLocationUpdate;
-static gint ett_lix2_AMFStartOfInterceptionWithRegisteredUE;
-static gint ett_lix2_AMFUnsuccessfulProcedure;
-static gint ett_lix2_AMFPositioningInfoTransfer;
-static gint ett_lix2_AMFRANHandoverCommand;
-static gint ett_lix2_AMFRANHandoverRequest;
-static gint ett_lix2_AMFUEConfigurationUpdate;
-static gint ett_lix2_AMFRANTraceReport;
-static gint ett_lix2_AMFUEPolicyTransfer;
-static gint ett_lix2_AMFUEServiceAccept;
-static gint ett_lix2_AMFID;
-static gint ett_lix2_AMFFailureCause;
-static gint ett_lix2_ServiceMessageIdentity;
-static gint ett_lix2_TraceActivationInfo;
-static gint ett_lix2_TraceCollectionEntityInfo;
-static gint ett_lix2_NASTransportInitialInformation;
-static gint ett_lix2_NGInformation;
-static gint ett_lix2_PLMNSupportList;
-static gint ett_lix2_PLMNSupportItem;
-static gint ett_lix2_F1Information;
-static gint ett_lix2_SEQUENCE_SIZE_1_MAX_OF_RANCGI;
-static gint ett_lix2_RRCEstablishmentCause;
-static gint ett_lix2_InitialRANUEContextSetup;
-static gint ett_lix2_SEQUENCE_SIZE_1_MAX_OF_PDUSessionSetupRequestItem;
-static gint ett_lix2_PDUSessionSetupRequestItem;
-static gint ett_lix2_UERadioCapability;
-static gint ett_lix2_UERadioCapabilityForPaging;
-static gint ett_lix2_NRV2XServicesAuthorization;
-static gint ett_lix2_LTEV2XServiceAuthorization;
-static gint ett_lix2_TargetNSSAIInfo;
-static gint ett_lix2_FiveGProSeAuthorizationIndication;
-static gint ett_lix2_SMFPDUSessionEstablishment;
-static gint ett_lix2_SEQUENCE_OF_UEEndpointAddress;
-static gint ett_lix2_SMFPDUSessionModification;
-static gint ett_lix2_SMFPDUSessionRelease;
-static gint ett_lix2_SMFStartOfInterceptionWithEstablishedPDUSession;
-static gint ett_lix2_SMFUnsuccessfulProcedure;
-static gint ett_lix2_SMFPDUtoMAPDUSessionModification;
-static gint ett_lix2_SMFMAPDUSessionEstablishment;
-static gint ett_lix2_SEQUENCE_OF_AccessInfo;
-static gint ett_lix2_SMFMAPDUSessionModification;
-static gint ett_lix2_SMFMAPDUSessionRelease;
-static gint ett_lix2_SMFStartOfInterceptionWithEstablishedMAPDUSession;
-static gint ett_lix2_SMFMAUnsuccessfulProcedure;
-static gint ett_lix2_SMFServingNetwork;
-static gint ett_lix2_AccessInfo;
-static gint ett_lix2_DLRANTunnelInformation;
-static gint ett_lix2_FiveGSGTPTunnels;
-static gint ett_lix2_NGAPCauseInt;
-static gint ett_lix2_QOSFlowTunnelInformation;
-static gint ett_lix2_QOSFlowTunnelInformationList;
-static gint ett_lix2_QOSFlowLists;
-static gint ett_lix2_QOSFlowList;
-static gint ett_lix2_QOSFlowProfile;
-static gint ett_lix2_PCCRule;
-static gint ett_lix2_UPPathChange;
-static gint ett_lix2_PCCRuleSet;
-static gint ett_lix2_PCCRuleIDSet;
-static gint ett_lix2_FlowInformationSet;
-static gint ett_lix2_RouteToLocationSet;
-static gint ett_lix2_FlowInformation;
-static gint ett_lix2_FlowDescription;
-static gint ett_lix2_IPAddressOrRangeOrAny;
-static gint ett_lix2_IPMask;
-static gint ett_lix2_NextLayerProtocolOrAny;
-static gint ett_lix2_EthFlowDescription;
-static gint ett_lix2_SET_OF_VLANTag;
-static gint ett_lix2_VLANTag;
-static gint ett_lix2_RouteToLocation;
-static gint ett_lix2_RouteInfo;
-static gint ett_lix2_EASIPReplaceInfos;
-static gint ett_lix2_EASServerAddress;
-static gint ett_lix2_EPSPDNConnectionEstablishment;
-static gint ett_lix2_SEQUENCE_OF_EPSBearerContextCreated;
-static gint ett_lix2_SEQUENCE_OF_EPSBearerContextForRemoval;
-static gint ett_lix2_EPSPDNConnectionModification;
-static gint ett_lix2_SEQUENCE_OF_EPSBearerContextModified;
-static gint ett_lix2_SEQUENCE_OF_EPSBearersDeleted;
-static gint ett_lix2_EPSPDNConnectionRelease;
-static gint ett_lix2_EPSStartOfInterceptionWithEstablishedPDNConnection;
-static gint ett_lix2_SEQUENCE_OF_EPSBearerContext;
-static gint ett_lix2_PFDDataForApps;
-static gint ett_lix2_PFDDataForApp;
-static gint ett_lix2_PFDs;
-static gint ett_lix2_PFD;
-static gint ett_lix2_PFDURLs;
-static gint ett_lix2_PFDFlowDescriptions;
-static gint ett_lix2_DomainNames;
-static gint ett_lix2_PFDFlowDescription;
-static gint ett_lix2_EPS5GSComboInfo;
-static gint ett_lix2_EPSSubscriberIDs;
-static gint ett_lix2_EPSPDNCnxInfo;
-static gint ett_lix2_EPSBearerInfo;
-static gint ett_lix2_EPSBearers;
-static gint ett_lix2_EPSBearerContext;
-static gint ett_lix2_EPSBearerContextCreated;
-static gint ett_lix2_EPSBearerContextModified;
-static gint ett_lix2_SEQUENCE_OF_EPSBearerID;
-static gint ett_lix2_EPSBearersDeleted;
-static gint ett_lix2_EPSDeleteBearerResponse;
-static gint ett_lix2_SEQUENCE_OF_EPSDeleteBearerContext;
-static gint ett_lix2_EPSDeleteBearerContext;
-static gint ett_lix2_EPSBearerContextForRemoval;
-static gint ett_lix2_EPSBearerQOS;
-static gint ett_lix2_EPSGTPTunnels;
-static gint ett_lix2_FiveGSInterworkingInfo;
-static gint ett_lix2_PDNProtocolConfigurationOptions;
-static gint ett_lix2_GTPTunnelInfo;
-static gint ett_lix2_ExtendedUPFCCPDU;
-static gint ett_lix2_UPFCCPDUPayload;
-static gint ett_lix2_UDMServingSystemMessage;
-static gint ett_lix2_UDMSubscriberRecordChangeMessage;
-static gint ett_lix2_UDMCancelLocationMessage;
-static gint ett_lix2_UDMLocationInformationResult;
-static gint ett_lix2_UDMUEInformationResponse;
-static gint ett_lix2_UDMUEAuthenticationResponse;
-static gint ett_lix2_UDMStartOfInterceptionWithRegisteredTarget;
-static gint ett_lix2_ServerAddressingInfoList;
-static gint ett_lix2_ServerAddressingInfo;
-static gint ett_lix2_FQDNList;
-static gint ett_lix2_ServiceID;
-static gint ett_lix2_SEQUENCE_OF_CAGID;
-static gint ett_lix2_UDMAuthenticationInfoRequest;
-static gint ett_lix2_SEQUENCE_SIZE_1_MAX_OF_SubscriberIdentifier;
-static gint ett_lix2_UDMLocationInfoRequest;
-static gint ett_lix2_UDMProblemDetails;
-static gint ett_lix2_UDMProblemDetailsCause;
-static gint ett_lix2_UDMProblemDetailsOtherCause;
-static gint ett_lix2_UDMInvalidParameters;
-static gint ett_lix2_UDMAMFDeregistrationInfo;
-static gint ett_lix2_UDMDeregistrationData;
-static gint ett_lix2_SMSMessage;
-static gint ett_lix2_SMSReport;
-static gint ett_lix2_SMSParty;
-static gint ett_lix2_SMSNFAddress;
-static gint ett_lix2_SMSTPDUData;
-static gint ett_lix2_MMSSend;
-static gint ett_lix2_SEQUENCE_OF_MMSParty;
-static gint ett_lix2_MMSSendByNonLocalTarget;
-static gint ett_lix2_MMSNotification;
-static gint ett_lix2_MMSSendToNonLocalTarget;
-static gint ett_lix2_MMSNotificationResponse;
-static gint ett_lix2_MMSRetrieval;
-static gint ett_lix2_MMSDeliveryAck;
-static gint ett_lix2_MMSForward;
-static gint ett_lix2_MMSDeleteFromRelay;
-static gint ett_lix2_T_contentLocationReq;
-static gint ett_lix2_T_contentLocationConf;
-static gint ett_lix2_T_deleteResponseText;
-static gint ett_lix2_MMSMBoxStore;
-static gint ett_lix2_MMSMBoxUpload;
-static gint ett_lix2_SEQUENCE_OF_MMBoxDescription;
-static gint ett_lix2_MMSMBoxDelete;
-static gint ett_lix2_T_contentLocationReq_01;
-static gint ett_lix2_T_contentLocationConf_01;
-static gint ett_lix2_MMSDeliveryReport;
-static gint ett_lix2_MMSDeliveryReportNonLocalTarget;
-static gint ett_lix2_MMSReadReport;
-static gint ett_lix2_MMSReadReportNonLocalTarget;
-static gint ett_lix2_MMSCancel;
-static gint ett_lix2_MMSMBoxViewRequest;
-static gint ett_lix2_SEQUENCE_OF_MMState;
-static gint ett_lix2_SEQUENCE_OF_MMFlags;
-static gint ett_lix2_T_attributes;
-static gint ett_lix2_MMSMBoxViewResponse;
-static gint ett_lix2_T_attributes_01;
-static gint ett_lix2_MMBoxDescription;
-static gint ett_lix2_MMSCCPDU;
-static gint ett_lix2_MMSAdaptation;
-static gint ett_lix2_MMSElementDescriptor;
-static gint ett_lix2_MMSExpiry;
-static gint ett_lix2_MMFlags;
-static gint ett_lix2_MMSParty;
-static gint ett_lix2_SEQUENCE_OF_MMSPartyID;
-static gint ett_lix2_MMSPartyID;
-static gint ett_lix2_MMSPreviouslySent;
-static gint ett_lix2_MMSPreviouslySentBy;
-static gint ett_lix2_MMSQuota;
-static gint ett_lix2_MMSVersion;
-static gint ett_lix2_PTCRegistration;
-static gint ett_lix2_PTCSessionInitiation;
-static gint ett_lix2_SEQUENCE_OF_PTCTargetInformation;
-static gint ett_lix2_PTCSessionAbandon;
-static gint ett_lix2_PTCSessionStart;
-static gint ett_lix2_PTCSessionEnd;
-static gint ett_lix2_PTCStartOfInterception;
-static gint ett_lix2_PTCPreEstablishedSession;
-static gint ett_lix2_PTCInstantPersonalAlert;
-static gint ett_lix2_PTCPartyJoin;
-static gint ett_lix2_PTCPartyDrop;
-static gint ett_lix2_PTCPartyHold;
-static gint ett_lix2_PTCMediaModification;
-static gint ett_lix2_PTCGroupAdvertisement;
-static gint ett_lix2_PTCFloorControl;
-static gint ett_lix2_SEQUENCE_OF_PTCFloorActivity;
-static gint ett_lix2_PTCTargetPresence;
-static gint ett_lix2_PTCParticipantPresence;
-static gint ett_lix2_PTCListManagement;
-static gint ett_lix2_SEQUENCE_OF_PTCIDList;
-static gint ett_lix2_PTCAccessPolicy;
-static gint ett_lix2_PTCTargetInformation;
-static gint ett_lix2_SEQUENCE_SIZE_1_MAX_OF_PTCIdentifiers;
-static gint ett_lix2_PTCIdentifiers;
-static gint ett_lix2_PTCSessionInfo;
-static gint ett_lix2_MultipleParticipantPresenceStatus;
-static gint ett_lix2_PTCParticipantPresenceStatus;
-static gint ett_lix2_RTPSetting;
-static gint ett_lix2_PTCIDList;
-static gint ett_lix2_PTCChatGroupID;
-static gint ett_lix2_IMSMessage;
-static gint ett_lix2_SEQUENCE_OF_SIPAccessNetworkInformation;
-static gint ett_lix2_SEQUENCE_OF_SIPCellularNetworkInformation;
-static gint ett_lix2_StartOfInterceptionForActiveIMSSession;
-static gint ett_lix2_SEQUENCE_OF_IMPU;
-static gint ett_lix2_T_sDPState;
-static gint ett_lix2_IMSCCUnavailable;
-static gint ett_lix2_IMSCCPDU;
-static gint ett_lix2_IMSPayload;
-static gint ett_lix2_ModifiedSIPMessage;
-static gint ett_lix2_SIPMessage;
-static gint ett_lix2_STIRSHAKENSignatureGeneration;
-static gint ett_lix2_SEQUENCE_OF_PASSporT;
-static gint ett_lix2_STIRSHAKENSignatureValidation;
-static gint ett_lix2_PASSporT;
-static gint ett_lix2_PASSporTHeader;
-static gint ett_lix2_PASSporTPayload;
-static gint ett_lix2_STIRSHAKENOriginator;
-static gint ett_lix2_STIRSHAKENDestinations;
-static gint ett_lix2_STIRSHAKENDestination;
-static gint ett_lix2_STIRSHAKENTN;
-static gint ett_lix2_ECNAMDisplayInfo;
-static gint ett_lix2_RCDDisplayInfo;
-static gint ett_lix2_RCSRegistration;
-static gint ett_lix2_SEQUENCE_SIZE_1_MAX_OF_RCSIdentity;
-static gint ett_lix2_RCSMessage;
-static gint ett_lix2_RCSSessionEstablishment;
-static gint ett_lix2_RCSSessionModification;
-static gint ett_lix2_RCSSessionRelease;
-static gint ett_lix2_RCSCapabilityDiscovery;
-static gint ett_lix2_RCSDestinations;
-static gint ett_lix2_RCSDestination;
-static gint ett_lix2_RCSIdentity;
-static gint ett_lix2_RCSSIPSessionMessage;
-static gint ett_lix2_EESEECRegistration;
-static gint ett_lix2_EESEASDiscovery;
-static gint ett_lix2_EESEASDiscoverySubscription;
-static gint ett_lix2_EESEASDiscoveryNotification;
-static gint ett_lix2_EESAppContextRelocation;
-static gint ett_lix2_EESACRDetOrInit;
-static gint ett_lix2_ACRDetermineReq;
-static gint ett_lix2_ACRInitiateReq;
-static gint ett_lix2_EESACRSubscription;
-static gint ett_lix2_EESACRNotification;
-static gint ett_lix2_EESEECContextRelocation;
-static gint ett_lix2_EESStartOfInterceptionWithRegisteredEEC;
-static gint ett_lix2_ACProfiles;
-static gint ett_lix2_ACProfile;
-static gint ett_lix2_ACRScenarios;
-static gint ett_lix2_UnfulfilledACProfiles;
-static gint ett_lix2_UnfulfilledACProfile;
-static gint ett_lix2_EASsInfo;
-static gint ett_lix2_EASInfo;
-static gint ett_lix2_ServiceKPIs;
-static gint ett_lix2_EASDiscoveryFilter;
-static gint ett_lix2_EASsCharacteristics;
-static gint ett_lix2_EASCharacteristics;
-static gint ett_lix2_DNAIs;
-static gint ett_lix2_DiscoveredEAS;
-static gint ett_lix2_EASProfile;
-static gint ett_lix2_EASEndpoint;
-static gint ett_lix2_RouteToLocations;
-static gint ett_lix2_EASServiceFeatures;
-static gint ett_lix2_ACIDs;
-static gint ett_lix2_IPv4Addresses;
-static gint ett_lix2_IPv6Addresses;
-static gint ett_lix2_EASDynamicInfoFilter;
-static gint ett_lix2_EASIDs;
-static gint ett_lix2_TargetInfo;
-static gint ett_lix2_EDNConfigurationInfo;
-static gint ett_lix2_EDNConnectionInfo;
-static gint ett_lix2_EESsInfo;
-static gint ett_lix2_EESInfo;
-static gint ett_lix2_EESEndpoint;
-static gint ett_lix2_FiveGMSAFServiceAccessInformation;
-static gint ett_lix2_FiveGMSAFConsumptionReporting;
-static gint ett_lix2_FiveGMSAFDynamicPolicyInvocation;
-static gint ett_lix2_FiveGMSAFMetricsReporting;
-static gint ett_lix2_FiveGMSAFNetworkAssistance;
-static gint ett_lix2_FiveGMSAFUnsuccessfulProcedure;
-static gint ett_lix2_FiveGMSAFStartOfInterceptionWithAlreadyConfiguredUE;
-static gint ett_lix2_LALSReport;
-static gint ett_lix2_PDHeaderReport;
-static gint ett_lix2_PDSummaryReport;
-static gint ett_lix2_AMFIdentifierAssociation;
-static gint ett_lix2_MMEIdentifierAssociation;
-static gint ett_lix2_MMEAttach;
-static gint ett_lix2_MMEDetach;
-static gint ett_lix2_MMELocationUpdate;
-static gint ett_lix2_MMEStartOfInterceptionWithEPSAttachedUE;
-static gint ett_lix2_MMEUnsuccessfulProcedure;
-static gint ett_lix2_MMEPositioningInfoTransfer;
-static gint ett_lix2_MMEFailureCause;
-static gint ett_lix2_LINotification;
-static gint ett_lix2_SEQUENCE_OF_LIAppliedDeliveryInformation;
-static gint ett_lix2_LIAppliedDeliveryInformation;
-static gint ett_lix2_MDFCellSiteReport;
-static gint ett_lix2_EMM5GMMStatus;
-static gint ett_lix2_EPS5GGUTI;
-static gint ett_lix2_SeparatedLocationReporting;
-static gint ett_lix2_HSSServingSystemMessage;
-static gint ett_lix2_HSSStartOfInterceptionWithRegisteredTarget;
-static gint ett_lix2_HSSIdentities;
-static gint ett_lix2_SubscriptionDataSets;
-static gint ett_lix2_AllowedNSSAI;
-static gint ett_lix2_AllowedTACs;
-static gint ett_lix2_AreaOfInterest;
-static gint ett_lix2_AreaOfInterestCellList;
-static gint ett_lix2_AreaOfInterestItem;
-static gint ett_lix2_AreaOfInterestRANNodeList;
-static gint ett_lix2_AreaOfInterestTAIList;
-static gint ett_lix2_BroadcastPLMNItem;
-static gint ett_lix2_CellCAGList;
-static gint ett_lix2_EquivalentPLMNs;
-static gint ett_lix2_FiveGGUTI;
-static gint ett_lix2_FiveGSSubscriberID;
-static gint ett_lix2_FiveGSSubscriberIDs;
-static gint ett_lix2_SEQUENCE_SIZE_1_MAX_OF_FiveGSSubscriberID;
-static gint ett_lix2_FiveGSRVCCInfo;
-static gint ett_lix2_FiveGSUserStateInfo;
-static gint ett_lix2_ForbiddenAreaInformation;
-static gint ett_lix2_ForbiddenTACs;
-static gint ett_lix2_FTEID;
-static gint ett_lix2_FTEIDList;
-static gint ett_lix2_GPSI;
-static gint ett_lix2_GUAMI;
-static gint ett_lix2_GUMMEI;
-static gint ett_lix2_GUTI;
-static gint ett_lix2_HandoverCause;
-static gint ett_lix2_IMPU;
-static gint ett_lix2_IMSSubscriberIDs;
-static gint ett_lix2_IPAddress;
-static gint ett_lix2_LocationAreaOfInterestList;
-static gint ett_lix2_LocationReportingRequestType;
-static gint ett_lix2_MMEID;
-static gint ett_lix2_MobilityRestrictionList;
-static gint ett_lix2_NonIMEISVPEI;
-static gint ett_lix2_NPNAccessInformation;
-static gint ett_lix2_NSSAI;
-static gint ett_lix2_PLMNID;
-static gint ett_lix2_PLMNList;
-static gint ett_lix2_PDUSessionResourceInformation;
-static gint ett_lix2_PEI;
-static gint ett_lix2_RANNodeName;
-static gint ett_lix2_RATRestrictions;
-static gint ett_lix2_RATRestrictionItem;
-static gint ett_lix2_RejectedNSSAI;
-static gint ett_lix2_RejectedSNSSAI;
-static gint ett_lix2_ServiceAreaInformation;
-static gint ett_lix2_ServiceAreaInfo;
-static gint ett_lix2_Slice;
-static gint ett_lix2_SNSSAI;
-static gint ett_lix2_SubscriberIdentifier;
-static gint ett_lix2_SUCI;
-static gint ett_lix2_SUPI;
-static gint ett_lix2_SupportedTAList;
-static gint ett_lix2_TAItem;
-static gint ett_lix2_SEQUENCE_SIZE_1_MAX_OF_BroadcastPLMNItem;
-static gint ett_lix2_TAISliceSupportList;
-static gint ett_lix2_TargetIdentifier;
-static gint ett_lix2_UEContextInfo;
-static gint ett_lix2_UEEndpointAddress;
-static gint ett_lix2_UserIdentifiers;
-static gint ett_lix2_Location;
-static gint ett_lix2_CellSiteInformation;
-static gint ett_lix2_LocationInfo;
-static gint ett_lix2_SEQUENCE_OF_CellInformation;
-static gint ett_lix2_UserLocation;
-static gint ett_lix2_EUTRALocation;
-static gint ett_lix2_NRLocation;
-static gint ett_lix2_N3GALocation;
-static gint ett_lix2_UTRALocation;
-static gint ett_lix2_GERALocation;
-static gint ett_lix2_IMSLocation;
-static gint ett_lix2_SEQUENCE_OF_PANIHeaderInfo;
-static gint ett_lix2_SEQUENCE_OF_SIPGeolocationHeaderInfo;
-static gint ett_lix2_SEQUENCE_OF_SIPCNIHeaderInfo;
-static gint ett_lix2_IPAddr;
-static gint ett_lix2_GlobalRANNodeID;
-static gint ett_lix2_ANNodeID;
-static gint ett_lix2_TAI;
-static gint ett_lix2_CGI;
-static gint ett_lix2_LAI;
-static gint ett_lix2_SAI;
-static gint ett_lix2_RAI;
-static gint ett_lix2_ECGI;
-static gint ett_lix2_TAIList;
-static gint ett_lix2_NCGI;
-static gint ett_lix2_RANCGI;
-static gint ett_lix2_CellInformation;
-static gint ett_lix2_CellRadioRelatedInformation;
-static gint ett_lix2_TNAPID;
-static gint ett_lix2_TWAPID;
-static gint ett_lix2_NGENbID;
-static gint ett_lix2_ENbID;
-static gint ett_lix2_PositioningInfo;
-static gint ett_lix2_RawMLPResponse;
-static gint ett_lix2_LocationData;
-static gint ett_lix2_SET_OF_PositioningMethodAndUsage;
-static gint ett_lix2_SET_OF_GNSSPositioningMethodAndUsage;
-static gint ett_lix2_GERANPositioningInfo;
-static gint ett_lix2_UTRANPositioningInfo;
-static gint ett_lix2_FourGPositioningInfo;
-static gint ett_lix2_FourGLocationInfo;
-static gint ett_lix2_EPSLocationInformation;
-static gint ett_lix2_MMELocationInformation;
-static gint ett_lix2_UserCSGInformation;
-static gint ett_lix2_SGSNLocationInformation;
-static gint ett_lix2_ESMLCCellInfo;
-static gint ett_lix2_LocationPresenceReport;
-static gint ett_lix2_SET_OF_AMFEventArea;
-static gint ett_lix2_SET_OF_AccessType;
-static gint ett_lix2_SET_OF_RMInfo;
-static gint ett_lix2_SET_OF_CMInfo;
-static gint ett_lix2_AMFEventArea;
-static gint ett_lix2_PresenceInfo;
-static gint ett_lix2_SET_OF_TAI;
-static gint ett_lix2_SET_OF_ECGI;
-static gint ett_lix2_SET_OF_NCGI;
-static gint ett_lix2_SET_OF_GlobalRANNodeID;
-static gint ett_lix2_LADNInfo;
-static gint ett_lix2_RMInfo;
-static gint ett_lix2_CMInfo;
-static gint ett_lix2_GeographicArea;
-static gint ett_lix2_VelocityEstimate;
-static gint ett_lix2_CivicAddress;
-static gint ett_lix2_PositioningMethodAndUsage;
-static gint ett_lix2_GNSSPositioningMethodAndUsage;
-static gint ett_lix2_Point;
-static gint ett_lix2_PointUncertaintyCircle;
-static gint ett_lix2_PointUncertaintyEllipse;
-static gint ett_lix2_Polygon;
-static gint ett_lix2_SET_SIZE_3_15_OF_GeographicalCoordinates;
-static gint ett_lix2_PointAltitude;
-static gint ett_lix2_PointAltitudeUncertainty;
-static gint ett_lix2_EllipsoidArc;
-static gint ett_lix2_GeographicalCoordinates;
-static gint ett_lix2_UncertaintyEllipse;
-static gint ett_lix2_HorizontalVelocity;
-static gint ett_lix2_HorizontalWithVerticalVelocity;
-static gint ett_lix2_HorizontalVelocityWithUncertainty;
-static gint ett_lix2_HorizontalWithVerticalVelocityAndUncertainty;
-static gint ett_lix2_PANIHeaderInfo;
-static gint ett_lix2_SEQUENCE_OF_SIPAccessInfo;
-static gint ett_lix2_SEQUENCE_OF_SIPLocationInfo;
-static gint ett_lix2_SIPGeolocationHeaderInfo;
-static gint ett_lix2_SIPCellularAccessInfo;
-static gint ett_lix2_SIPLocationInfo;
-static gint ett_lix2_SIPAccessNetworkInformation;
-static gint ett_lix2_SIPCNIHeaderInfo;
-static gint ett_lix2_SEQUENCE_OF_SIPCellularAccessInfo;
-static gint ett_lix2_SIPCellularNetworkInformation;
-static gint ett_lix2_RCSPayload;
-static gint ett_lix2_EncapsulatedRCSPayload;
-static gint ett_lix2_ModifiedRCSPayload;
-static gint ett_lix2_PayloadModifications;
-static gint ett_lix2_SEQUENCE_OF_PayloadModification;
-static gint ett_lix2_PayloadModification;
-static gint ett_lix2_PayloadModificationDescription;
-static gint ett_lix2_ModificationLocation;
-static gint ett_lix2_ModificationType;
-static gint ett_lix2_PayloadInformationRemoved;
-static gint ett_lix2_PayloadInformationReplacedWithCharacters;
-static gint ett_lix2_IndexRange;
-static gint ett_lix2_MSRPMessage;
-static gint ett_lix2_SBIType;
-static gint ett_lix2_XMLType;
-static gint ett_lix2_MIMEEntity;
-static gint ett_lix2_MIMEPartIdentifier;
-static gint ett_lix2_MIMEBody;
+static int ett_lix2_XIRIPayload;
+static int ett_lix2_XIRIEvent;
+static int ett_lix2_IRIPayload;
+static int ett_lix2_SEQUENCE_OF_IRITargetIdentifier;
+static int ett_lix2_IRIEvent;
+static int ett_lix2_IRITargetIdentifier;
+static int ett_lix2_CCPayload;
+static int ett_lix2_CCPDU;
+static int ett_lix2_LINotificationPayload;
+static int ett_lix2_LINotificationMessage;
+static int ett_lix2_N9HRPDUSessionInfo;
+static int ett_lix2_S8HRBearerInfo;
+static int ett_lix2_NEFPDUSessionEstablishment;
+static int ett_lix2_NEFPDUSessionModification;
+static int ett_lix2_NEFPDUSessionRelease;
+static int ett_lix2_NEFUnsuccessfulProcedure;
+static int ett_lix2_NEFStartOfInterceptionWithEstablishedPDUSession;
+static int ett_lix2_NEFDeviceTrigger;
+static int ett_lix2_NEFDeviceTriggerReplace;
+static int ett_lix2_NEFDeviceTriggerCancellation;
+static int ett_lix2_NEFDeviceTriggerReportNotify;
+static int ett_lix2_NEFMSISDNLessMOSMS;
+static int ett_lix2_NEFExpectedUEBehaviourUpdate;
+static int ett_lix2_SEQUENCE_OF_UMTLocationArea5G;
+static int ett_lix2_NEFAFSessionWithQoSProvision;
+static int ett_lix2_NEFAFSessionWithQoSNotification;
+static int ett_lix2_ScheduledCommunicationTime;
+static int ett_lix2_SEQUENCE_OF_Daytime;
+static int ett_lix2_UMTLocationArea5G;
+static int ett_lix2_Daytime;
+static int ett_lix2_SCEFPDNConnectionEstablishment;
+static int ett_lix2_SCEFPDNConnectionUpdate;
+static int ett_lix2_SCEFPDNConnectionRelease;
+static int ett_lix2_SCEFUnsuccessfulProcedure;
+static int ett_lix2_SCEFStartOfInterceptionWithEstablishedPDNConnection;
+static int ett_lix2_SCEFDeviceTrigger;
+static int ett_lix2_SCEFDeviceTriggerReplace;
+static int ett_lix2_SCEFDeviceTriggerCancellation;
+static int ett_lix2_SCEFDeviceTriggerReportNotify;
+static int ett_lix2_SCEFMSISDNLessMOSMS;
+static int ett_lix2_SCEFCommunicationPatternUpdate;
+static int ett_lix2_SCEFASSessionWithQoSProvision;
+static int ett_lix2_SCEFASSessionWithQoSNotification;
+static int ett_lix2_AAnFAnchorKeyRegister;
+static int ett_lix2_AAnFKAKMAApplicationKeyGet;
+static int ett_lix2_AAnFStartOfInterceptWithEstablishedAKMAKeyMaterial;
+static int ett_lix2_SEQUENCE_OF_AFKeyInfo;
+static int ett_lix2_AAnFAKMAContextRemovalRecord;
+static int ett_lix2_AKMAAFID;
+static int ett_lix2_UAStarParams;
+static int ett_lix2_GenericUAStarParams;
+static int ett_lix2_TLSCipherSuite;
+static int ett_lix2_TLS12UAStarParams;
+static int ett_lix2_AFKeyInfo;
+static int ett_lix2_AFAKMAApplicationKeyRefresh;
+static int ett_lix2_AFStartOfInterceptWithEstablishedAKMAApplicationKey;
+static int ett_lix2_SEQUENCE_OF_AFSecurityParams;
+static int ett_lix2_AFAuxiliarySecurityParameterEstablishment;
+static int ett_lix2_AFSecurityParams;
+static int ett_lix2_AFApplicationKeyRemoval;
+static int ett_lix2_AMFRegistration;
+static int ett_lix2_AMFDeregistration;
+static int ett_lix2_AMFLocationUpdate;
+static int ett_lix2_AMFStartOfInterceptionWithRegisteredUE;
+static int ett_lix2_AMFUnsuccessfulProcedure;
+static int ett_lix2_AMFPositioningInfoTransfer;
+static int ett_lix2_AMFRANHandoverCommand;
+static int ett_lix2_AMFRANHandoverRequest;
+static int ett_lix2_AMFUEConfigurationUpdate;
+static int ett_lix2_AMFRANTraceReport;
+static int ett_lix2_AMFUEPolicyTransfer;
+static int ett_lix2_AMFUEServiceAccept;
+static int ett_lix2_AMFID;
+static int ett_lix2_AMFFailureCause;
+static int ett_lix2_ServiceMessageIdentity;
+static int ett_lix2_TraceActivationInfo;
+static int ett_lix2_TraceCollectionEntityInfo;
+static int ett_lix2_NASTransportInitialInformation;
+static int ett_lix2_NGInformation;
+static int ett_lix2_PLMNSupportList;
+static int ett_lix2_PLMNSupportItem;
+static int ett_lix2_F1Information;
+static int ett_lix2_SEQUENCE_SIZE_1_MAX_OF_RANCGI;
+static int ett_lix2_RRCEstablishmentCause;
+static int ett_lix2_InitialRANUEContextSetup;
+static int ett_lix2_SEQUENCE_SIZE_1_MAX_OF_PDUSessionSetupRequestItem;
+static int ett_lix2_PDUSessionSetupRequestItem;
+static int ett_lix2_UERadioCapability;
+static int ett_lix2_UERadioCapabilityForPaging;
+static int ett_lix2_NRV2XServicesAuthorization;
+static int ett_lix2_LTEV2XServiceAuthorization;
+static int ett_lix2_TargetNSSAIInfo;
+static int ett_lix2_FiveGProSeAuthorizationIndication;
+static int ett_lix2_SMFPDUSessionEstablishment;
+static int ett_lix2_SEQUENCE_OF_UEEndpointAddress;
+static int ett_lix2_SMFPDUSessionModification;
+static int ett_lix2_SMFPDUSessionRelease;
+static int ett_lix2_SMFStartOfInterceptionWithEstablishedPDUSession;
+static int ett_lix2_SMFUnsuccessfulProcedure;
+static int ett_lix2_SMFPDUtoMAPDUSessionModification;
+static int ett_lix2_SMFMAPDUSessionEstablishment;
+static int ett_lix2_SEQUENCE_OF_AccessInfo;
+static int ett_lix2_SMFMAPDUSessionModification;
+static int ett_lix2_SMFMAPDUSessionRelease;
+static int ett_lix2_SMFStartOfInterceptionWithEstablishedMAPDUSession;
+static int ett_lix2_SMFMAUnsuccessfulProcedure;
+static int ett_lix2_SMFServingNetwork;
+static int ett_lix2_AccessInfo;
+static int ett_lix2_DLRANTunnelInformation;
+static int ett_lix2_FiveGSGTPTunnels;
+static int ett_lix2_NGAPCauseInt;
+static int ett_lix2_QOSFlowTunnelInformation;
+static int ett_lix2_QOSFlowTunnelInformationList;
+static int ett_lix2_QOSFlowLists;
+static int ett_lix2_QOSFlowList;
+static int ett_lix2_QOSFlowProfile;
+static int ett_lix2_PCCRule;
+static int ett_lix2_UPPathChange;
+static int ett_lix2_PCCRuleSet;
+static int ett_lix2_PCCRuleIDSet;
+static int ett_lix2_FlowInformationSet;
+static int ett_lix2_RouteToLocationSet;
+static int ett_lix2_FlowInformation;
+static int ett_lix2_FlowDescription;
+static int ett_lix2_IPAddressOrRangeOrAny;
+static int ett_lix2_IPMask;
+static int ett_lix2_NextLayerProtocolOrAny;
+static int ett_lix2_EthFlowDescription;
+static int ett_lix2_SET_OF_VLANTag;
+static int ett_lix2_VLANTag;
+static int ett_lix2_RouteToLocation;
+static int ett_lix2_RouteInfo;
+static int ett_lix2_EASIPReplaceInfos;
+static int ett_lix2_EASServerAddress;
+static int ett_lix2_EPSPDNConnectionEstablishment;
+static int ett_lix2_SEQUENCE_OF_EPSBearerContextCreated;
+static int ett_lix2_SEQUENCE_OF_EPSBearerContextForRemoval;
+static int ett_lix2_EPSPDNConnectionModification;
+static int ett_lix2_SEQUENCE_OF_EPSBearerContextModified;
+static int ett_lix2_SEQUENCE_OF_EPSBearersDeleted;
+static int ett_lix2_EPSPDNConnectionRelease;
+static int ett_lix2_EPSStartOfInterceptionWithEstablishedPDNConnection;
+static int ett_lix2_SEQUENCE_OF_EPSBearerContext;
+static int ett_lix2_PFDDataForApps;
+static int ett_lix2_PFDDataForApp;
+static int ett_lix2_PFDs;
+static int ett_lix2_PFD;
+static int ett_lix2_PFDURLs;
+static int ett_lix2_PFDFlowDescriptions;
+static int ett_lix2_DomainNames;
+static int ett_lix2_PFDFlowDescription;
+static int ett_lix2_EPS5GSComboInfo;
+static int ett_lix2_EPSSubscriberIDs;
+static int ett_lix2_EPSPDNCnxInfo;
+static int ett_lix2_EPSBearerInfo;
+static int ett_lix2_EPSBearers;
+static int ett_lix2_EPSBearerContext;
+static int ett_lix2_EPSBearerContextCreated;
+static int ett_lix2_EPSBearerContextModified;
+static int ett_lix2_SEQUENCE_OF_EPSBearerID;
+static int ett_lix2_EPSBearersDeleted;
+static int ett_lix2_EPSDeleteBearerResponse;
+static int ett_lix2_SEQUENCE_OF_EPSDeleteBearerContext;
+static int ett_lix2_EPSDeleteBearerContext;
+static int ett_lix2_EPSBearerContextForRemoval;
+static int ett_lix2_EPSBearerQOS;
+static int ett_lix2_EPSGTPTunnels;
+static int ett_lix2_FiveGSInterworkingInfo;
+static int ett_lix2_PDNProtocolConfigurationOptions;
+static int ett_lix2_GTPTunnelInfo;
+static int ett_lix2_ExtendedUPFCCPDU;
+static int ett_lix2_UPFCCPDUPayload;
+static int ett_lix2_UDMServingSystemMessage;
+static int ett_lix2_UDMSubscriberRecordChangeMessage;
+static int ett_lix2_UDMCancelLocationMessage;
+static int ett_lix2_UDMLocationInformationResult;
+static int ett_lix2_UDMUEInformationResponse;
+static int ett_lix2_UDMUEAuthenticationResponse;
+static int ett_lix2_UDMStartOfInterceptionWithRegisteredTarget;
+static int ett_lix2_ServerAddressingInfoList;
+static int ett_lix2_ServerAddressingInfo;
+static int ett_lix2_FQDNList;
+static int ett_lix2_ServiceID;
+static int ett_lix2_SEQUENCE_OF_CAGID;
+static int ett_lix2_UDMAuthenticationInfoRequest;
+static int ett_lix2_SEQUENCE_SIZE_1_MAX_OF_SubscriberIdentifier;
+static int ett_lix2_UDMLocationInfoRequest;
+static int ett_lix2_UDMProblemDetails;
+static int ett_lix2_UDMProblemDetailsCause;
+static int ett_lix2_UDMProblemDetailsOtherCause;
+static int ett_lix2_UDMInvalidParameters;
+static int ett_lix2_UDMAMFDeregistrationInfo;
+static int ett_lix2_UDMDeregistrationData;
+static int ett_lix2_SMSMessage;
+static int ett_lix2_SMSReport;
+static int ett_lix2_SMSParty;
+static int ett_lix2_SMSNFAddress;
+static int ett_lix2_SMSTPDUData;
+static int ett_lix2_MMSSend;
+static int ett_lix2_SEQUENCE_OF_MMSParty;
+static int ett_lix2_MMSSendByNonLocalTarget;
+static int ett_lix2_MMSNotification;
+static int ett_lix2_MMSSendToNonLocalTarget;
+static int ett_lix2_MMSNotificationResponse;
+static int ett_lix2_MMSRetrieval;
+static int ett_lix2_MMSDeliveryAck;
+static int ett_lix2_MMSForward;
+static int ett_lix2_MMSDeleteFromRelay;
+static int ett_lix2_T_contentLocationReq;
+static int ett_lix2_T_contentLocationConf;
+static int ett_lix2_T_deleteResponseText;
+static int ett_lix2_MMSMBoxStore;
+static int ett_lix2_MMSMBoxUpload;
+static int ett_lix2_SEQUENCE_OF_MMBoxDescription;
+static int ett_lix2_MMSMBoxDelete;
+static int ett_lix2_T_contentLocationReq_01;
+static int ett_lix2_T_contentLocationConf_01;
+static int ett_lix2_MMSDeliveryReport;
+static int ett_lix2_MMSDeliveryReportNonLocalTarget;
+static int ett_lix2_MMSReadReport;
+static int ett_lix2_MMSReadReportNonLocalTarget;
+static int ett_lix2_MMSCancel;
+static int ett_lix2_MMSMBoxViewRequest;
+static int ett_lix2_SEQUENCE_OF_MMState;
+static int ett_lix2_SEQUENCE_OF_MMFlags;
+static int ett_lix2_T_attributes;
+static int ett_lix2_MMSMBoxViewResponse;
+static int ett_lix2_T_attributes_01;
+static int ett_lix2_MMBoxDescription;
+static int ett_lix2_MMSCCPDU;
+static int ett_lix2_MMSAdaptation;
+static int ett_lix2_MMSElementDescriptor;
+static int ett_lix2_MMSExpiry;
+static int ett_lix2_MMFlags;
+static int ett_lix2_MMSParty;
+static int ett_lix2_SEQUENCE_OF_MMSPartyID;
+static int ett_lix2_MMSPartyID;
+static int ett_lix2_MMSPreviouslySent;
+static int ett_lix2_MMSPreviouslySentBy;
+static int ett_lix2_MMSQuota;
+static int ett_lix2_MMSVersion;
+static int ett_lix2_PTCRegistration;
+static int ett_lix2_PTCSessionInitiation;
+static int ett_lix2_SEQUENCE_OF_PTCTargetInformation;
+static int ett_lix2_PTCSessionAbandon;
+static int ett_lix2_PTCSessionStart;
+static int ett_lix2_PTCSessionEnd;
+static int ett_lix2_PTCStartOfInterception;
+static int ett_lix2_PTCPreEstablishedSession;
+static int ett_lix2_PTCInstantPersonalAlert;
+static int ett_lix2_PTCPartyJoin;
+static int ett_lix2_PTCPartyDrop;
+static int ett_lix2_PTCPartyHold;
+static int ett_lix2_PTCMediaModification;
+static int ett_lix2_PTCGroupAdvertisement;
+static int ett_lix2_PTCFloorControl;
+static int ett_lix2_SEQUENCE_OF_PTCFloorActivity;
+static int ett_lix2_PTCTargetPresence;
+static int ett_lix2_PTCParticipantPresence;
+static int ett_lix2_PTCListManagement;
+static int ett_lix2_SEQUENCE_OF_PTCIDList;
+static int ett_lix2_PTCAccessPolicy;
+static int ett_lix2_PTCTargetInformation;
+static int ett_lix2_SEQUENCE_SIZE_1_MAX_OF_PTCIdentifiers;
+static int ett_lix2_PTCIdentifiers;
+static int ett_lix2_PTCSessionInfo;
+static int ett_lix2_MultipleParticipantPresenceStatus;
+static int ett_lix2_PTCParticipantPresenceStatus;
+static int ett_lix2_RTPSetting;
+static int ett_lix2_PTCIDList;
+static int ett_lix2_PTCChatGroupID;
+static int ett_lix2_IMSMessage;
+static int ett_lix2_SEQUENCE_OF_SIPAccessNetworkInformation;
+static int ett_lix2_SEQUENCE_OF_SIPCellularNetworkInformation;
+static int ett_lix2_StartOfInterceptionForActiveIMSSession;
+static int ett_lix2_SEQUENCE_OF_IMPU;
+static int ett_lix2_T_sDPState;
+static int ett_lix2_IMSCCUnavailable;
+static int ett_lix2_IMSCCPDU;
+static int ett_lix2_IMSPayload;
+static int ett_lix2_ModifiedSIPMessage;
+static int ett_lix2_SIPMessage;
+static int ett_lix2_STIRSHAKENSignatureGeneration;
+static int ett_lix2_SEQUENCE_OF_PASSporT;
+static int ett_lix2_STIRSHAKENSignatureValidation;
+static int ett_lix2_PASSporT;
+static int ett_lix2_PASSporTHeader;
+static int ett_lix2_PASSporTPayload;
+static int ett_lix2_STIRSHAKENOriginator;
+static int ett_lix2_STIRSHAKENDestinations;
+static int ett_lix2_STIRSHAKENDestination;
+static int ett_lix2_STIRSHAKENTN;
+static int ett_lix2_ECNAMDisplayInfo;
+static int ett_lix2_RCDDisplayInfo;
+static int ett_lix2_RCSRegistration;
+static int ett_lix2_SEQUENCE_SIZE_1_MAX_OF_RCSIdentity;
+static int ett_lix2_RCSMessage;
+static int ett_lix2_RCSSessionEstablishment;
+static int ett_lix2_RCSSessionModification;
+static int ett_lix2_RCSSessionRelease;
+static int ett_lix2_RCSCapabilityDiscovery;
+static int ett_lix2_RCSDestinations;
+static int ett_lix2_RCSDestination;
+static int ett_lix2_RCSIdentity;
+static int ett_lix2_RCSSIPSessionMessage;
+static int ett_lix2_EESEECRegistration;
+static int ett_lix2_EESEASDiscovery;
+static int ett_lix2_EESEASDiscoverySubscription;
+static int ett_lix2_EESEASDiscoveryNotification;
+static int ett_lix2_EESAppContextRelocation;
+static int ett_lix2_EESACRDetOrInit;
+static int ett_lix2_ACRDetermineReq;
+static int ett_lix2_ACRInitiateReq;
+static int ett_lix2_EESACRSubscription;
+static int ett_lix2_EESACRNotification;
+static int ett_lix2_EESEECContextRelocation;
+static int ett_lix2_EESStartOfInterceptionWithRegisteredEEC;
+static int ett_lix2_ACProfiles;
+static int ett_lix2_ACProfile;
+static int ett_lix2_ACRScenarios;
+static int ett_lix2_UnfulfilledACProfiles;
+static int ett_lix2_UnfulfilledACProfile;
+static int ett_lix2_EASsInfo;
+static int ett_lix2_EASInfo;
+static int ett_lix2_ServiceKPIs;
+static int ett_lix2_EASDiscoveryFilter;
+static int ett_lix2_EASsCharacteristics;
+static int ett_lix2_EASCharacteristics;
+static int ett_lix2_DNAIs;
+static int ett_lix2_DiscoveredEAS;
+static int ett_lix2_EASProfile;
+static int ett_lix2_EASEndpoint;
+static int ett_lix2_RouteToLocations;
+static int ett_lix2_EASServiceFeatures;
+static int ett_lix2_ACIDs;
+static int ett_lix2_IPv4Addresses;
+static int ett_lix2_IPv6Addresses;
+static int ett_lix2_EASDynamicInfoFilter;
+static int ett_lix2_EASIDs;
+static int ett_lix2_TargetInfo;
+static int ett_lix2_EDNConfigurationInfo;
+static int ett_lix2_EDNConnectionInfo;
+static int ett_lix2_EESsInfo;
+static int ett_lix2_EESInfo;
+static int ett_lix2_EESEndpoint;
+static int ett_lix2_FiveGMSAFServiceAccessInformation;
+static int ett_lix2_FiveGMSAFConsumptionReporting;
+static int ett_lix2_FiveGMSAFDynamicPolicyInvocation;
+static int ett_lix2_FiveGMSAFMetricsReporting;
+static int ett_lix2_FiveGMSAFNetworkAssistance;
+static int ett_lix2_FiveGMSAFUnsuccessfulProcedure;
+static int ett_lix2_FiveGMSAFStartOfInterceptionWithAlreadyConfiguredUE;
+static int ett_lix2_LALSReport;
+static int ett_lix2_PDHeaderReport;
+static int ett_lix2_PDSummaryReport;
+static int ett_lix2_AMFIdentifierAssociation;
+static int ett_lix2_MMEIdentifierAssociation;
+static int ett_lix2_MMEAttach;
+static int ett_lix2_MMEDetach;
+static int ett_lix2_MMELocationUpdate;
+static int ett_lix2_MMEStartOfInterceptionWithEPSAttachedUE;
+static int ett_lix2_MMEUnsuccessfulProcedure;
+static int ett_lix2_MMEPositioningInfoTransfer;
+static int ett_lix2_MMEFailureCause;
+static int ett_lix2_LINotification;
+static int ett_lix2_SEQUENCE_OF_LIAppliedDeliveryInformation;
+static int ett_lix2_LIAppliedDeliveryInformation;
+static int ett_lix2_MDFCellSiteReport;
+static int ett_lix2_EMM5GMMStatus;
+static int ett_lix2_EPS5GGUTI;
+static int ett_lix2_SeparatedLocationReporting;
+static int ett_lix2_HSSServingSystemMessage;
+static int ett_lix2_HSSStartOfInterceptionWithRegisteredTarget;
+static int ett_lix2_HSSIdentities;
+static int ett_lix2_SubscriptionDataSets;
+static int ett_lix2_AllowedNSSAI;
+static int ett_lix2_AllowedTACs;
+static int ett_lix2_AreaOfInterest;
+static int ett_lix2_AreaOfInterestCellList;
+static int ett_lix2_AreaOfInterestItem;
+static int ett_lix2_AreaOfInterestRANNodeList;
+static int ett_lix2_AreaOfInterestTAIList;
+static int ett_lix2_BroadcastPLMNItem;
+static int ett_lix2_CellCAGList;
+static int ett_lix2_EquivalentPLMNs;
+static int ett_lix2_FiveGGUTI;
+static int ett_lix2_FiveGSSubscriberID;
+static int ett_lix2_FiveGSSubscriberIDs;
+static int ett_lix2_SEQUENCE_SIZE_1_MAX_OF_FiveGSSubscriberID;
+static int ett_lix2_FiveGSRVCCInfo;
+static int ett_lix2_FiveGSUserStateInfo;
+static int ett_lix2_ForbiddenAreaInformation;
+static int ett_lix2_ForbiddenTACs;
+static int ett_lix2_FTEID;
+static int ett_lix2_FTEIDList;
+static int ett_lix2_GPSI;
+static int ett_lix2_GUAMI;
+static int ett_lix2_GUMMEI;
+static int ett_lix2_GUTI;
+static int ett_lix2_HandoverCause;
+static int ett_lix2_IMPU;
+static int ett_lix2_IMSSubscriberIDs;
+static int ett_lix2_IPAddress;
+static int ett_lix2_LocationAreaOfInterestList;
+static int ett_lix2_LocationReportingRequestType;
+static int ett_lix2_MMEID;
+static int ett_lix2_MobilityRestrictionList;
+static int ett_lix2_NonIMEISVPEI;
+static int ett_lix2_NPNAccessInformation;
+static int ett_lix2_NSSAI;
+static int ett_lix2_PLMNID;
+static int ett_lix2_PLMNList;
+static int ett_lix2_PDUSessionResourceInformation;
+static int ett_lix2_PEI;
+static int ett_lix2_RANNodeName;
+static int ett_lix2_RATRestrictions;
+static int ett_lix2_RATRestrictionItem;
+static int ett_lix2_RejectedNSSAI;
+static int ett_lix2_RejectedSNSSAI;
+static int ett_lix2_ServiceAreaInformation;
+static int ett_lix2_ServiceAreaInfo;
+static int ett_lix2_Slice;
+static int ett_lix2_SNSSAI;
+static int ett_lix2_SubscriberIdentifier;
+static int ett_lix2_SUCI;
+static int ett_lix2_SUPI;
+static int ett_lix2_SupportedTAList;
+static int ett_lix2_TAItem;
+static int ett_lix2_SEQUENCE_SIZE_1_MAX_OF_BroadcastPLMNItem;
+static int ett_lix2_TAISliceSupportList;
+static int ett_lix2_TargetIdentifier;
+static int ett_lix2_UEContextInfo;
+static int ett_lix2_UEEndpointAddress;
+static int ett_lix2_UserIdentifiers;
+static int ett_lix2_Location;
+static int ett_lix2_CellSiteInformation;
+static int ett_lix2_LocationInfo;
+static int ett_lix2_SEQUENCE_OF_CellInformation;
+static int ett_lix2_UserLocation;
+static int ett_lix2_EUTRALocation;
+static int ett_lix2_NRLocation;
+static int ett_lix2_N3GALocation;
+static int ett_lix2_UTRALocation;
+static int ett_lix2_GERALocation;
+static int ett_lix2_IMSLocation;
+static int ett_lix2_SEQUENCE_OF_PANIHeaderInfo;
+static int ett_lix2_SEQUENCE_OF_SIPGeolocationHeaderInfo;
+static int ett_lix2_SEQUENCE_OF_SIPCNIHeaderInfo;
+static int ett_lix2_IPAddr;
+static int ett_lix2_GlobalRANNodeID;
+static int ett_lix2_ANNodeID;
+static int ett_lix2_TAI;
+static int ett_lix2_CGI;
+static int ett_lix2_LAI;
+static int ett_lix2_SAI;
+static int ett_lix2_RAI;
+static int ett_lix2_ECGI;
+static int ett_lix2_TAIList;
+static int ett_lix2_NCGI;
+static int ett_lix2_RANCGI;
+static int ett_lix2_CellInformation;
+static int ett_lix2_CellRadioRelatedInformation;
+static int ett_lix2_TNAPID;
+static int ett_lix2_TWAPID;
+static int ett_lix2_NGENbID;
+static int ett_lix2_ENbID;
+static int ett_lix2_PositioningInfo;
+static int ett_lix2_RawMLPResponse;
+static int ett_lix2_LocationData;
+static int ett_lix2_SET_OF_PositioningMethodAndUsage;
+static int ett_lix2_SET_OF_GNSSPositioningMethodAndUsage;
+static int ett_lix2_GERANPositioningInfo;
+static int ett_lix2_UTRANPositioningInfo;
+static int ett_lix2_FourGPositioningInfo;
+static int ett_lix2_FourGLocationInfo;
+static int ett_lix2_EPSLocationInformation;
+static int ett_lix2_MMELocationInformation;
+static int ett_lix2_UserCSGInformation;
+static int ett_lix2_SGSNLocationInformation;
+static int ett_lix2_ESMLCCellInfo;
+static int ett_lix2_LocationPresenceReport;
+static int ett_lix2_SET_OF_AMFEventArea;
+static int ett_lix2_SET_OF_AccessType;
+static int ett_lix2_SET_OF_RMInfo;
+static int ett_lix2_SET_OF_CMInfo;
+static int ett_lix2_AMFEventArea;
+static int ett_lix2_PresenceInfo;
+static int ett_lix2_SET_OF_TAI;
+static int ett_lix2_SET_OF_ECGI;
+static int ett_lix2_SET_OF_NCGI;
+static int ett_lix2_SET_OF_GlobalRANNodeID;
+static int ett_lix2_LADNInfo;
+static int ett_lix2_RMInfo;
+static int ett_lix2_CMInfo;
+static int ett_lix2_GeographicArea;
+static int ett_lix2_VelocityEstimate;
+static int ett_lix2_CivicAddress;
+static int ett_lix2_PositioningMethodAndUsage;
+static int ett_lix2_GNSSPositioningMethodAndUsage;
+static int ett_lix2_Point;
+static int ett_lix2_PointUncertaintyCircle;
+static int ett_lix2_PointUncertaintyEllipse;
+static int ett_lix2_Polygon;
+static int ett_lix2_SET_SIZE_3_15_OF_GeographicalCoordinates;
+static int ett_lix2_PointAltitude;
+static int ett_lix2_PointAltitudeUncertainty;
+static int ett_lix2_EllipsoidArc;
+static int ett_lix2_GeographicalCoordinates;
+static int ett_lix2_UncertaintyEllipse;
+static int ett_lix2_HorizontalVelocity;
+static int ett_lix2_HorizontalWithVerticalVelocity;
+static int ett_lix2_HorizontalVelocityWithUncertainty;
+static int ett_lix2_HorizontalWithVerticalVelocityAndUncertainty;
+static int ett_lix2_PANIHeaderInfo;
+static int ett_lix2_SEQUENCE_OF_SIPAccessInfo;
+static int ett_lix2_SEQUENCE_OF_SIPLocationInfo;
+static int ett_lix2_SIPGeolocationHeaderInfo;
+static int ett_lix2_SIPCellularAccessInfo;
+static int ett_lix2_SIPLocationInfo;
+static int ett_lix2_SIPAccessNetworkInformation;
+static int ett_lix2_SIPCNIHeaderInfo;
+static int ett_lix2_SEQUENCE_OF_SIPCellularAccessInfo;
+static int ett_lix2_SIPCellularNetworkInformation;
+static int ett_lix2_RCSPayload;
+static int ett_lix2_EncapsulatedRCSPayload;
+static int ett_lix2_ModifiedRCSPayload;
+static int ett_lix2_PayloadModifications;
+static int ett_lix2_SEQUENCE_OF_PayloadModification;
+static int ett_lix2_PayloadModification;
+static int ett_lix2_PayloadModificationDescription;
+static int ett_lix2_ModificationLocation;
+static int ett_lix2_ModificationType;
+static int ett_lix2_PayloadInformationRemoved;
+static int ett_lix2_PayloadInformationReplacedWithCharacters;
+static int ett_lix2_IndexRange;
+static int ett_lix2_MSRPMessage;
+static int ett_lix2_SBIType;
+static int ett_lix2_XMLType;
+static int ett_lix2_MIMEEntity;
+static int ett_lix2_MIMEPartIdentifier;
+static int ett_lix2_MIMEBody;
@@ -18721,11 +18721,11 @@ void proto_register_lix2(void) {
NULL, HFILL }},
{ &hf_lix2_timeOfFirstPacket,
{ "timeOfFirstPacket", "lix2.timeOfFirstPacket",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_timeOfLastPacket,
{ "timeOfLastPacket", "lix2.timeOfLastPacket",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_uplinkVolume,
{ "uplinkVolume", "lix2.uplinkVolume",
@@ -18833,7 +18833,7 @@ void proto_register_lix2(void) {
NULL, HFILL }},
{ &hf_lix2_validityTime,
{ "validityTime", "lix2.validityTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_aFSessionWithQoSOpType,
{ "aFSessionWithQoSOpType", "lix2.aFSessionWithQoSOpType",
@@ -18885,11 +18885,11 @@ void proto_register_lix2(void) {
"Day", HFILL }},
{ &hf_lix2_timeOfDayStart,
{ "timeOfDayStart", "lix2.timeOfDayStart",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_timeOfDayEnd,
{ "timeOfDayEnd", "lix2.timeOfDayEnd",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_mSISDN,
{ "mSISDN", "lix2.mSISDN",
@@ -19229,7 +19229,7 @@ void proto_register_lix2(void) {
NULL, HFILL }},
{ &hf_lix2_timeOfRegistration,
{ "timeOfRegistration", "lix2.timeOfRegistration",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_uEPolicy,
{ "uEPolicy", "lix2.uEPolicy",
@@ -19733,7 +19733,7 @@ void proto_register_lix2(void) {
NULL, HFILL }},
{ &hf_lix2_timeOfSessionEstablishment,
{ "timeOfSessionEstablishment", "lix2.timeOfSessionEstablishment",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_ePSStartOfInterceptionWithEstablishedPDNConnection,
{ "ePSStartOfInterceptionWithEstablishedPDNConnection", "lix2.ePSStartOfInterceptionWithEstablishedPDNConnection_element",
@@ -20801,7 +20801,7 @@ void proto_register_lix2(void) {
"MMSVersion", HFILL }},
{ &hf_lix2_dateTime,
{ "dateTime", "lix2.dateTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_originatingMMSParty,
{ "originatingMMSParty", "lix2.originatingMMSParty_element",
@@ -20849,7 +20849,7 @@ void proto_register_lix2(void) {
"MMSExpiry", HFILL }},
{ &hf_lix2_desiredDeliveryTime,
{ "desiredDeliveryTime", "lix2.desiredDeliveryTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_priority_01,
{ "priority", "lix2.priority",
@@ -20933,7 +20933,7 @@ void proto_register_lix2(void) {
"MMSPreviouslySentBy", HFILL }},
{ &hf_lix2_prevSentByDateTime,
{ "prevSentByDateTime", "lix2.prevSentByDateTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_deliveryReportRequested,
{ "deliveryReportRequested", "lix2.deliveryReportRequested",
@@ -21045,7 +21045,7 @@ void proto_register_lix2(void) {
"MMSDeleteResponseStatus", HFILL }},
{ &hf_lix2_mMSDateTime,
{ "mMSDateTime", "lix2.mMSDateTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_forwardToOriginator,
{ "forwardToOriginator", "lix2.forwardToOriginator",
@@ -21133,11 +21133,11 @@ void proto_register_lix2(void) {
"BOOLEAN", HFILL }},
{ &hf_lix2_deliveryTime,
{ "deliveryTime", "lix2.deliveryTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_previouslySentByDateTime,
{ "previouslySentByDateTime", "lix2.previouslySentByDateTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_mMSContent,
{ "mMSContent", "lix2.mMSContent",
@@ -21213,7 +21213,7 @@ void proto_register_lix2(void) {
"INTEGER", HFILL }},
{ &hf_lix2_previousSendDateTime,
{ "previousSendDateTime", "lix2.previousSendDateTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_MMSPreviouslySentBy_item,
{ "MMSPreviouslySent", "lix2.MMSPreviouslySent_element",
@@ -21841,7 +21841,7 @@ void proto_register_lix2(void) {
"ACRScenarios", HFILL }},
{ &hf_lix2_expirationTime,
{ "expirationTime", "lix2.expirationTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_eECContextID,
{ "eECContextID", "lix2.eECContextID",
@@ -22289,11 +22289,11 @@ void proto_register_lix2(void) {
NULL, HFILL }},
{ &hf_lix2_firstPacketTimestamp,
{ "firstPacketTimestamp", "lix2.firstPacketTimestamp",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_lastPacketTimestamp,
{ "lastPacketTimestamp", "lix2.lastPacketTimestamp",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_packetCount,
{ "packetCount", "lix2.packetCount",
@@ -22385,11 +22385,11 @@ void proto_register_lix2(void) {
NULL, HFILL }},
{ &hf_lix2_appliedStartTime,
{ "appliedStartTime", "lix2.appliedStartTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_appliedEndTime,
{ "appliedEndTime", "lix2.appliedEndTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_appliedTargetIsLocal,
{ "appliedTargetIsLocal", "lix2.appliedTargetIsLocal",
@@ -22793,7 +22793,7 @@ void proto_register_lix2(void) {
"BOOLEAN", HFILL }},
{ &hf_lix2_lastActiveTime,
{ "lastActiveTime", "lix2.lastActiveTime",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_fiveGSSubscriberIDs,
{ "fiveGSSubscriberIDs", "lix2.fiveGSSubscriberIDs_element",
@@ -22893,7 +22893,7 @@ void proto_register_lix2(void) {
"AgeOfLocation", HFILL }},
{ &hf_lix2_uELocationTimestamp,
{ "uELocationTimestamp", "lix2.uELocationTimestamp",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_geographicalInformation,
{ "geographicalInformation", "lix2.geographicalInformation",
@@ -23105,7 +23105,7 @@ void proto_register_lix2(void) {
NULL, HFILL }},
{ &hf_lix2_timeOfLocation,
{ "timeOfLocation", "lix2.timeOfLocation",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
"Timestamp", HFILL }},
{ &hf_lix2_cellRadioRelatedInformation,
{ "cellRadioRelatedInformation", "lix2.cellRadioRelatedInformation",
@@ -23313,7 +23313,7 @@ void proto_register_lix2(void) {
"AMFEventType", HFILL }},
{ &hf_lix2_timestamp,
{ "timestamp", "lix2.timestamp",
- FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0,
NULL, HFILL }},
{ &hf_lix2_areaList,
{ "areaList", "lix2.areaList",
diff --git a/epan/dissectors/packet-llc.c b/epan/dissectors/packet-llc.c
index 4e4f2acee1..7a80b61dde 100644
--- a/epan/dissectors/packet-llc.c
+++ b/epan/dissectors/packet-llc.c
@@ -188,7 +188,7 @@ static const value_string type_vals[] = {
/*
* Hash table for translating OUIs to an oui_info_t.
*/
-static wmem_map_t *oui_info_table = NULL;
+static wmem_map_t *oui_info_table;
/*
* Decode the SAP value as a bitfield into a string, skipping the GI/CR bit.
@@ -237,7 +237,7 @@ llc_add_oui(guint32 oui, const char *table_name, const char *table_ui_name,
wmem_map_insert(oui_info_table, GUINT_TO_POINTER(oui), new_info);
}
-static gboolean
+static bool
capture_snap(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint32 oui;
@@ -270,7 +270,7 @@ capture_snap(const guchar *pd, int offset, int len, capture_packet_info_t *cpinf
return FALSE;
}
-static gboolean
+static bool
capture_llc(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_) {
int is_snap;
diff --git a/epan/dissectors/packet-lldp.c b/epan/dissectors/packet-lldp.c
index 7667be33e1..c7e9d185bb 100644
--- a/epan/dissectors/packet-lldp.c
+++ b/epan/dissectors/packet-lldp.c
@@ -125,6 +125,7 @@ static int hf_lldp_network_address_family;
static int hf_port_id_ip4;
static int hf_port_id_ip6;
static int hf_time_to_live;
+static int hf_pdu_type;
static int hf_mgn_address_len;
static int hf_mgn_address_subtype;
static int hf_mgn_addr_ipv4;
@@ -569,6 +570,7 @@ static gint ett_org_spc_hytec_trace_reply;
static expert_field ei_lldp_bad_length;
static expert_field ei_lldp_bad_length_excess;
+static expert_field ei_lldp_shutdown_excess_tlv;
static expert_field ei_lldp_bad_type;
static expert_field ei_lldp_tlv_deprecated;
@@ -1659,7 +1661,7 @@ dissect_lldp_chassis_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
if (tlvsubType != CHASSIS_ID_TLV_TYPE)
{
proto_tree_add_expert_format(tree, pinfo, &ei_lldp_bad_type , tvb, offset, TLV_INFO_LEN(tempShort),
- "Invalid Chassis ID (0x%02X), expected (0x%02X)", tlvsubType, CHASSIS_ID_TLV_TYPE);
+ "Invalid TLV type (0x%02X), expected ChassisID type (0x%02X)", tlvsubType, CHASSIS_ID_TLV_TYPE);
return -1;
}
@@ -1985,13 +1987,14 @@ dissect_lldp_port_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint3
/* Dissect Time To Live TLV (Mandatory) */
static gint32
-dissect_lldp_time_to_live(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset)
+dissect_lldp_time_to_live(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 offset, guint16 *isShutdown)
{
guint8 tlvsubType;
guint16 tempShort;
guint32 dataLen = 0;
proto_tree *time_to_live_tree;
+ proto_item *ti;
/* Get tlv type */
tempShort = tvb_get_ntohs(tvb, offset);
@@ -2002,25 +2005,37 @@ dissect_lldp_time_to_live(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
/* Get tlv length and seconds field */
dataLen = TLV_INFO_LEN(tempShort);
tempShort = tvb_get_ntohs(tvb, (offset+2));
- if (column_info_selection == DEFAULT_COLUMN_INFO)
- {
- col_append_fstr(pinfo->cinfo, COL_INFO, "%u ", tempShort);
+ *isShutdown = !tempShort;
+
+ /* LLDPDU types: IEEE 802.1AB-2016 9.1.2 */
+ if (tempShort != 0) {
+ time_to_live_tree = proto_tree_add_subtree_format(tree, tvb, offset, dataLen + 2,
+ ett_time_to_live, NULL, "Time To Live = %u sec", tempShort);
+ ti = proto_tree_add_none_format(time_to_live_tree, hf_pdu_type, tvb, offset, dataLen + 2, "Normal LLDPDU");
+ proto_item_set_generated(ti);
+ } else {
+ time_to_live_tree = proto_tree_add_subtree_format(tree, tvb, offset, dataLen + 2,
+ ett_time_to_live, NULL, "Discard all info for this MSAP (Time To Live = 0)");
+ ti = proto_tree_add_none_format(time_to_live_tree, hf_pdu_type, tvb, offset, dataLen + 2, "Shutdown LLDPDU");
+ proto_item_set_generated(ti);
}
- /* Set port tree */
- time_to_live_tree = proto_tree_add_subtree_format(tree, tvb, offset, (dataLen + 2),
- ett_time_to_live, NULL, "Time To Live = %u sec", tempShort);
-
proto_tree_add_item(time_to_live_tree, hf_lldp_tlv_type, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(time_to_live_tree, hf_lldp_tlv_len, tvb, offset, 2, ENC_BIG_ENDIAN);
-
offset += 2;
/* Display time to live information */
proto_tree_add_item(time_to_live_tree, hf_time_to_live, tvb, offset, 2, ENC_BIG_ENDIAN);
-
offset += 2;
+ if (column_info_selection == DEFAULT_COLUMN_INFO) {
+ if (tempShort != 0) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%u ", tempShort);
+ } else {
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", "0 (Shutdown LLDPDU)");
+ }
+ }
+
return offset;
}
@@ -2193,9 +2208,9 @@ dissect_lldp_system_capabilities(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_telephone, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_docsis_cable_device, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_station_only, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(capabilities_summary_tree, hf_lldp_tlv_enable_system_cap_cvlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(capabilities_summary_tree, hf_lldp_tlv_enable_system_cap_svlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(capabilities_summary_tree, hf_lldp_tlv_enable_system_cap_tpmr_component, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_cvlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_svlan_component, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(capabilities_enabled_tree, hf_lldp_tlv_enable_system_cap_tpmr_component, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
@@ -4870,6 +4885,7 @@ dissect_lldp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
proto_tree *lldp_tree = NULL;
tvbuff_t *new_tvb = NULL;
guint32 offset = 0;
+ guint16 isShutdown;
gint32 rtnValue = 0;
guint16 tempShort;
guint8 tlvType;
@@ -4883,6 +4899,17 @@ dissect_lldp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
ti = proto_tree_add_item(tree, proto_lldp, tvb, offset, -1, ENC_NA);
lldp_tree = proto_item_add_subtree(ti, ett_lldp);
+ // Maybe add an explicit field for the type of the destination mac address?
+
+ // IEEE 802.1AB-2016, Table 7-2—Support for MAC addresses in different systems
+ // Address | C-VLAN Bridge | S-VLAN Bridge | TPMR Bridge | End station
+ // ------------------------------------------+---------------+----------------+---------------+-------------
+ // 01-80-C2-00-00-0E Nearest bridge | Mandatory | Mandatory | Mandatory | Mandatory
+ // 01-80-C2-00-00-03 Nearest non-TPMR bridge | Mandatory | Mandatory | Not permitted | Recommended
+ // 01-80-C2-00-00-00 Nearest Customer Bridge | Mandatory | Not permitted | Not permitted | Recommended
+ // Any other group MAC address | Permitted | Permitted | Permitted | Permitted
+ // Any individual MAC address | Permitted | Permitted | Permitted | Permitted
+
/* Get chassis id tlv */
tempShort = tvb_get_ntohs(tvb, offset);
new_tvb = tvb_new_subset_length(tvb, offset, TLV_INFO_LEN(tempShort)+2);
@@ -4916,7 +4943,7 @@ dissect_lldp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
tempShort = tvb_get_ntohs(tvb, offset);
new_tvb = tvb_new_subset_length(tvb, offset, TLV_INFO_LEN(tempShort)+2);
- rtnValue = dissect_lldp_time_to_live(new_tvb, pinfo, lldp_tree, 0);
+ rtnValue = dissect_lldp_time_to_live(new_tvb, pinfo, lldp_tree, 0, &isShutdown);
if (rtnValue < 0)
{
col_set_str(pinfo->cinfo, COL_INFO, "Invalid Time-to-Live TLV");
@@ -4931,7 +4958,7 @@ dissect_lldp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
{
tempShort = tvb_get_ntohs(tvb, offset);
tlvType = TLV_TYPE(tempShort);
- /* pass only TLV to dissectors, Zero offset (point to front of tlv) */
+ /* pass single TLV to dissectors, Zero offset (point to front of tlv) */
new_tvb = tvb_new_subset_length(tvb, offset, TLV_INFO_LEN(tempShort)+2);
switch (tlvType)
{
@@ -4952,7 +4979,7 @@ dissect_lldp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
}
break;
case TIME_TO_LIVE_TLV_TYPE:
- dissect_lldp_time_to_live(new_tvb, pinfo, lldp_tree, 0);
+ dissect_lldp_time_to_live(new_tvb, pinfo, lldp_tree, 0, &isShutdown);
rtnValue = -1; /* Duplicate time-to-live tlv */
if (column_info_selection == DEFAULT_COLUMN_INFO)
{
@@ -4983,6 +5010,13 @@ dissect_lldp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
break;
}
+ // Shutdown PDU: Verify that only ChassisID, PortID, TTL and optionally END TLVs are present
+ if (isShutdown && tlvType != END_OF_LLDPDU_TLV_TYPE)
+ {
+ proto_tree_add_expert_format(tree, pinfo, &ei_lldp_shutdown_excess_tlv , tvb, offset, TLV_INFO_LEN(tempShort),
+ "TLV type 0x%02X not allowed in Shutdown PDU", tlvType);
+ }
+
if (rtnValue < 0) {
set_actual_length(tvb, offset + rtnValue);
break;
@@ -5172,6 +5206,11 @@ proto_register_lldp(void)
{ "Seconds", "lldp.time_to_live", FT_UINT16, BASE_DEC,
NULL, 0, NULL, HFILL }
},
+ { &hf_pdu_type,
+ { "PDU Type", "lldp.pdu_type", FT_NONE, BASE_NONE,
+ NULL, 0, NULL, HFILL }
+ },
+
{ &hf_mgn_address_len,
{ "Address String Length", "lldp.mgn.address.len", FT_UINT8, BASE_DEC,
NULL, 0, NULL, HFILL }
@@ -6752,6 +6791,7 @@ proto_register_lldp(void)
static ei_register_info ei[] = {
{ &ei_lldp_bad_length, { "lldp.incorrect_length", PI_MALFORMED, PI_WARN, "Invalid length, too short", EXPFILL }},
{ &ei_lldp_bad_length_excess, { "lldp.excess_length", PI_MALFORMED, PI_WARN, "Invalid length, greater than expected", EXPFILL }},
+ { &ei_lldp_shutdown_excess_tlv, { "lldp.excess_tlv", PI_MALFORMED, PI_WARN, "Excess TLV in Shutdown PDU", EXPFILL }},
{ &ei_lldp_bad_type, { "lldp.bad_type", PI_MALFORMED, PI_WARN, "Incorrect type", EXPFILL }},
{ &ei_lldp_tlv_deprecated, { "lldp.tlv_deprecated", PI_PROTOCOL, PI_WARN, "TLV has been deprecated", EXPFILL }},
};
diff --git a/epan/dissectors/packet-llrp.c b/epan/dissectors/packet-llrp.c
index 92491c5cbd..17ec2ea4ff 100644
--- a/epan/dissectors/packet-llrp.c
+++ b/epan/dissectors/packet-llrp.c
@@ -1519,6 +1519,7 @@ static guint dissect_llrp_item_array(tvbuff_t * const tvb, packet_info *pinfo,
}
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_llrp_impinj_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *param_tree,
guint suboffset, const guint param_end)
{
@@ -1806,6 +1807,7 @@ dissect_llrp_impinj_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *par
}
static guint
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint offset, const guint end, const guint depth)
{
@@ -1857,6 +1859,7 @@ dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
suboffset = offset;
+ increment_dissection_depth(pinfo);
switch(type) {
case LLRP_TLV_RO_BOUND_SPEC:
case LLRP_TLV_UHF_CAPABILITIES:
@@ -2503,6 +2506,7 @@ dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
break;
}
+ decrement_dissection_depth(pinfo);
/* Have we decoded exactly the number of bytes declared in the parameter? */
if(suboffset != param_end) {
/* Report problem */
@@ -2566,7 +2570,7 @@ dissect_llrp_parameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* will already show up as 'unknown'. */
real_len = 0;
break;
- };
+ }
ti = proto_tree_add_none_format(tree, hf_llrp_param, tvb,
offset, real_len + 1, "TV Parameter : %s",
@@ -3996,8 +4000,7 @@ proto_register_llrp(void)
expert_module_t* expert_llrp;
/* Register the protocol name and description */
- proto_llrp = proto_register_protocol("Low Level Reader Protocol",
- "LLRP", "llrp");
+ proto_llrp = proto_register_protocol("Low Level Reader Protocol", "LLRP", "llrp");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_llrp, hf, array_length(hf));
diff --git a/epan/dissectors/packet-lls-slt.c b/epan/dissectors/packet-lls-slt.c
index 4852e89584..8c43e86e66 100644
--- a/epan/dissectors/packet-lls-slt.c
+++ b/epan/dissectors/packet-lls-slt.c
@@ -25,7 +25,7 @@
/* Saved SLT Table to use it from another protocols (e.g. ALC/LCT) */
-wmem_map_t *lls_slt_table = NULL;
+wmem_map_t *lls_slt_table;
/* Hash functions */
static gint
diff --git a/epan/dissectors/packet-lmp.c b/epan/dissectors/packet-lmp.c
index 820a9cd195..91be2049cb 100644
--- a/epan/dissectors/packet-lmp.c
+++ b/epan/dissectors/packet-lmp.c
@@ -47,7 +47,7 @@ static int proto_lmp;
#define UDP_PORT_LMP_DEFAULT 701
-static gboolean lmp_checksum_config = FALSE;
+static bool lmp_checksum_config;
static dissector_handle_t lmp_handle;
diff --git a/epan/dissectors/packet-lnpdqp.c b/epan/dissectors/packet-lnpdqp.c
index e2e582d684..f732f716f6 100644
--- a/epan/dissectors/packet-lnpdqp.c
+++ b/epan/dissectors/packet-lnpdqp.c
@@ -69,9 +69,9 @@ static int hf_lnpdqp_oli; /* OriginatingStationType */
static int ett_lnpdqp;
static int ett_lnpdqp_digitstype;
static int ett_lnpdqp_digits;
-static gint ett_lnpdqp_ConnectionControlArg_U;
-static gint ett_lnpdqp_ProvideInstructionArg_U;
-static gint ett_lnpdqp_ServiceKey;
+static int ett_lnpdqp_ConnectionControlArg_U;
+static int ett_lnpdqp_ProvideInstructionArg_U;
+static int ett_lnpdqp_ServiceKey;
/* Type of Digits (octet 1, bits A-H) */
diff --git a/epan/dissectors/packet-log3gpp.c b/epan/dissectors/packet-log3gpp.c
index f486c48798..a9d4544ab1 100644
--- a/epan/dissectors/packet-log3gpp.c
+++ b/epan/dissectors/packet-log3gpp.c
@@ -452,7 +452,7 @@ lte_rlc_pseudo_hdr(char* option_str, packet_info* pinfo, guint16 length, packet_
/* Store info in packet */
p_add_proto_data(wmem_file_scope(), pinfo, proto_rlc_lte, 0, p_rlc_lte_info);
- return (1);
+ return 1;
}
/* In the optional string, PDCP info should be set as follow (M = mandatory, O = optional):
@@ -526,7 +526,7 @@ lte_pdcp_pseudo_hdr(char* option_str, packet_info* pinfo, guint16 length _U_, pa
/* Store info in packet */
p_add_proto_data(wmem_file_scope(), pinfo, proto_pdcp_lte, 0, p_pdcp_lte_info);
- return (1);
+ return 1;
}
diff --git a/epan/dissectors/packet-logcat-text.c b/epan/dissectors/packet-logcat-text.c
index 4eceb7ff79..9ece2b4211 100644
--- a/epan/dissectors/packet-logcat-text.c
+++ b/epan/dissectors/packet-logcat-text.c
@@ -46,14 +46,14 @@ static dissector_handle_t logcat_text_long_handle;
static gint exported_pdu_tap = -1;
-static GRegex *special_regex = NULL;
-static GRegex *brief_regex = NULL;
-static GRegex *tag_regex = NULL;
-static GRegex *time_regex = NULL;
-static GRegex *process_regex = NULL;
-static GRegex *thread_regex = NULL;
-static GRegex *threadtime_regex = NULL;
-static GRegex *long_regex = NULL;
+static GRegex *special_regex;
+static GRegex *brief_regex;
+static GRegex *tag_regex;
+static GRegex *time_regex;
+static GRegex *process_regex;
+static GRegex *thread_regex;
+static GRegex *threadtime_regex;
+static GRegex *long_regex;
static const gchar dissector_name[] = "Logcat Text";
diff --git a/epan/dissectors/packet-logcat.c b/epan/dissectors/packet-logcat.c
index fb80a5cc0a..2042009a3c 100644
--- a/epan/dissectors/packet-logcat.c
+++ b/epan/dissectors/packet-logcat.c
@@ -46,7 +46,7 @@ static gint exported_pdu_tap = -1;
static expert_field ei_invalid_payload_length;
-static gboolean pref_one_line_info_column = TRUE;
+static bool pref_one_line_info_column = true;
const value_string priority_vals[] = {
{ 0x00, "Unknown" },
diff --git a/epan/dissectors/packet-logotypecertextn.c b/epan/dissectors/packet-logotypecertextn.c
index 13676f0854..1eb5c549f8 100644
--- a/epan/dissectors/packet-logotypecertextn.c
+++ b/epan/dissectors/packet-logotypecertextn.c
@@ -74,25 +74,25 @@ static int hf_logotypecertextn_hashAlg; /* AlgorithmIdentifier */
static int hf_logotypecertextn_hashValue; /* OCTET_STRING */
/* Initialize the subtree pointers */
-static gint ett_logotypecertextn_LogotypeExtn;
-static gint ett_logotypecertextn_SEQUENCE_OF_LogotypeInfo;
-static gint ett_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo;
-static gint ett_logotypecertextn_LogotypeInfo;
-static gint ett_logotypecertextn_LogotypeData;
-static gint ett_logotypecertextn_SEQUENCE_OF_LogotypeImage;
-static gint ett_logotypecertextn_SEQUENCE_OF_LogotypeAudio;
-static gint ett_logotypecertextn_LogotypeImage;
-static gint ett_logotypecertextn_LogotypeAudio;
-static gint ett_logotypecertextn_LogotypeDetails;
-static gint ett_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue;
-static gint ett_logotypecertextn_T_logotypeURI;
-static gint ett_logotypecertextn_LogotypeImageInfo;
-static gint ett_logotypecertextn_LogotypeImageResolution;
-static gint ett_logotypecertextn_LogotypeAudioInfo;
-static gint ett_logotypecertextn_OtherLogotypeInfo;
-static gint ett_logotypecertextn_LogotypeReference;
-static gint ett_logotypecertextn_T_refStructURI;
-static gint ett_logotypecertextn_HashAlgAndValue;
+static int ett_logotypecertextn_LogotypeExtn;
+static int ett_logotypecertextn_SEQUENCE_OF_LogotypeInfo;
+static int ett_logotypecertextn_SEQUENCE_OF_OtherLogotypeInfo;
+static int ett_logotypecertextn_LogotypeInfo;
+static int ett_logotypecertextn_LogotypeData;
+static int ett_logotypecertextn_SEQUENCE_OF_LogotypeImage;
+static int ett_logotypecertextn_SEQUENCE_OF_LogotypeAudio;
+static int ett_logotypecertextn_LogotypeImage;
+static int ett_logotypecertextn_LogotypeAudio;
+static int ett_logotypecertextn_LogotypeDetails;
+static int ett_logotypecertextn_SEQUENCE_SIZE_1_MAX_OF_HashAlgAndValue;
+static int ett_logotypecertextn_T_logotypeURI;
+static int ett_logotypecertextn_LogotypeImageInfo;
+static int ett_logotypecertextn_LogotypeImageResolution;
+static int ett_logotypecertextn_LogotypeAudioInfo;
+static int ett_logotypecertextn_OtherLogotypeInfo;
+static int ett_logotypecertextn_LogotypeReference;
+static int ett_logotypecertextn_T_refStructURI;
+static int ett_logotypecertextn_HashAlgAndValue;
diff --git a/epan/dissectors/packet-lorawan.c b/epan/dissectors/packet-lorawan.c
index fddcdfeefd..d077155432 100644
--- a/epan/dissectors/packet-lorawan.c
+++ b/epan/dissectors/packet-lorawan.c
@@ -369,10 +369,10 @@ typedef struct _session_keys_t {
GByteArray *appskey;
} session_key_t;
-static root_key_t *root_keys = NULL;
-static session_key_t *session_keys = NULL;
-static guint root_num_keys = 0;
-static guint session_num_keys = 0;
+static root_key_t *root_keys;
+static session_key_t *session_keys;
+static guint root_num_keys;
+static guint session_num_keys;
static void
byte_array_reverse(GByteArray *arr)
diff --git a/epan/dissectors/packet-lpp.c b/epan/dissectors/packet-lpp.c
index 84e85d1f2d..d883177d97 100644
--- a/epan/dissectors/packet-lpp.c
+++ b/epan/dissectors/packet-lpp.c
@@ -2875,7 +2875,7 @@ static int hf_lpp_bdsSvHealth_r12_b2i;
static int hf_lpp_bdsSvHealth_r12_nav;
static int hf_lpp_AssistanceDataSIBelement_r15_PDU;
-static dissector_handle_t lppe_handle = NULL;
+static dissector_handle_t lppe_handle;
static guint32 lpp_epdu_id = -1;
@@ -2886,911 +2886,911 @@ static gint ett_kepSV_StatusINAV;
static gint ett_kepSV_StatusFNAV;
static gint ett_lpp_bdsSvHealth_r12;
static gint ett_lpp_assistanceDataElement_r15;
-static gint ett_lpp_LPP_Message;
-static gint ett_lpp_Acknowledgement;
-static gint ett_lpp_LPP_MessageBody;
-static gint ett_lpp_T_c1;
-static gint ett_lpp_T_messageClassExtension;
-static gint ett_lpp_LPP_TransactionID;
-static gint ett_lpp_RequestCapabilities;
-static gint ett_lpp_T_criticalExtensions;
-static gint ett_lpp_T_c1_01;
-static gint ett_lpp_T_criticalExtensionsFuture;
-static gint ett_lpp_RequestCapabilities_r9_IEs;
-static gint ett_lpp_ProvideCapabilities;
-static gint ett_lpp_T_criticalExtensions_01;
-static gint ett_lpp_T_c1_02;
-static gint ett_lpp_T_criticalExtensionsFuture_01;
-static gint ett_lpp_ProvideCapabilities_r9_IEs;
-static gint ett_lpp_RequestAssistanceData;
-static gint ett_lpp_T_criticalExtensions_02;
-static gint ett_lpp_T_c1_03;
-static gint ett_lpp_T_criticalExtensionsFuture_02;
-static gint ett_lpp_RequestAssistanceData_r9_IEs;
-static gint ett_lpp_ProvideAssistanceData;
-static gint ett_lpp_T_criticalExtensions_03;
-static gint ett_lpp_T_c1_04;
-static gint ett_lpp_T_criticalExtensionsFuture_03;
-static gint ett_lpp_ProvideAssistanceData_r9_IEs;
-static gint ett_lpp_RequestLocationInformation;
-static gint ett_lpp_T_criticalExtensions_04;
-static gint ett_lpp_T_c1_05;
-static gint ett_lpp_T_criticalExtensionsFuture_04;
-static gint ett_lpp_RequestLocationInformation_r9_IEs;
-static gint ett_lpp_ProvideLocationInformation;
-static gint ett_lpp_T_criticalExtensions_05;
-static gint ett_lpp_T_c1_06;
-static gint ett_lpp_T_criticalExtensionsFuture_05;
-static gint ett_lpp_ProvideLocationInformation_r9_IEs;
-static gint ett_lpp_Abort;
-static gint ett_lpp_T_criticalExtensions_06;
-static gint ett_lpp_T_c1_07;
-static gint ett_lpp_T_criticalExtensionsFuture_06;
-static gint ett_lpp_Abort_r9_IEs;
-static gint ett_lpp_Error;
-static gint ett_lpp_T_criticalExtensionsFuture_07;
-static gint ett_lpp_Error_r9_IEs;
-static gint ett_lpp_AccessTypes;
-static gint ett_lpp_T_accessTypes;
-static gint ett_lpp_CarrierFreq_NB_r14;
-static gint ett_lpp_CellGlobalIdEUTRA_AndUTRA;
-static gint ett_lpp_T_plmn_Identity;
-static gint ett_lpp_T_mcc;
-static gint ett_lpp_T_mnc;
-static gint ett_lpp_T_cellIdentity;
-static gint ett_lpp_CellGlobalIdGERAN;
-static gint ett_lpp_T_plmn_Identity_01;
-static gint ett_lpp_T_mcc_01;
-static gint ett_lpp_T_mnc_01;
-static gint ett_lpp_ECGI;
-static gint ett_lpp_T_mcc_02;
-static gint ett_lpp_T_mnc_02;
-static gint ett_lpp_Ellipsoid_Point;
-static gint ett_lpp_Ellipsoid_PointWithUncertaintyCircle;
-static gint ett_lpp_EllipsoidPointWithUncertaintyEllipse;
-static gint ett_lpp_EllipsoidPointWithAltitude;
-static gint ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid;
-static gint ett_lpp_EllipsoidArc;
-static gint ett_lpp_EPDU_Sequence;
-static gint ett_lpp_EPDU;
-static gint ett_lpp_EPDU_Identifier;
-static gint ett_lpp_HA_EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid_r16;
-static gint ett_lpp_HA_EllipsoidPointWithScalableUncertaintyEllipse_r16;
-static gint ett_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15;
-static gint ett_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15;
-static gint ett_lpp_HorizontalVelocity;
-static gint ett_lpp_HorizontalWithVerticalVelocity;
-static gint ett_lpp_HorizontalVelocityWithUncertainty;
-static gint ett_lpp_HorizontalWithVerticalVelocityAndUncertainty;
-static gint ett_lpp_LocationCoordinateTypes;
-static gint ett_lpp_NCGI_r15;
-static gint ett_lpp_T_mcc_r15;
-static gint ett_lpp_T_mnc_r15;
-static gint ett_lpp_PeriodicAssistanceDataControlParameters_r15;
-static gint ett_lpp_PeriodicSessionID_r15;
-static gint ett_lpp_UpdateCapabilities_r15;
-static gint ett_lpp_Polygon;
-static gint ett_lpp_PolygonPoints;
-static gint ett_lpp_PositioningModes;
-static gint ett_lpp_T_posModes;
-static gint ett_lpp_ScheduledLocationTimeSupport_r17;
-static gint ett_lpp_ScheduledLocationTimeSupportPerMode_r17;
-static gint ett_lpp_T_gnssTime_r17;
-static gint ett_lpp_VelocityTypes;
-static gint ett_lpp_CommonIEsRequestCapabilities;
-static gint ett_lpp_T_lpp_message_segmentation_req_r14;
-static gint ett_lpp_CommonIEsProvideCapabilities;
-static gint ett_lpp_T_lpp_message_segmentation_r14;
-static gint ett_lpp_CommonIEsRequestAssistanceData;
-static gint ett_lpp_CommonIEsProvideAssistanceData;
-static gint ett_lpp_CommonIEsRequestLocationInformation;
-static gint ett_lpp_PeriodicalReportingCriteria;
-static gint ett_lpp_TriggeredReportingCriteria;
-static gint ett_lpp_QoS;
-static gint ett_lpp_HorizontalAccuracy;
-static gint ett_lpp_VerticalAccuracy;
-static gint ett_lpp_HorizontalAccuracyExt_r15;
-static gint ett_lpp_VerticalAccuracyExt_r15;
-static gint ett_lpp_ResponseTime;
-static gint ett_lpp_ResponseTimeNB_r14;
-static gint ett_lpp_MessageSizeLimitNB_r14;
-static gint ett_lpp_ScheduledLocationTime_r17;
-static gint ett_lpp_T_gnssTime_r17_01;
-static gint ett_lpp_T_networkTime_r17;
-static gint ett_lpp_T_e_utraTime_r17_01;
-static gint ett_lpp_T_nrTime_r17_01;
-static gint ett_lpp_T_nr_Slot_r17;
-static gint ett_lpp_CommonIEsProvideLocationInformation;
-static gint ett_lpp_LocationCoordinates;
-static gint ett_lpp_Velocity;
-static gint ett_lpp_LocationError;
-static gint ett_lpp_LocationSource_r13;
-static gint ett_lpp_IntegrityInfo_r17;
-static gint ett_lpp_CommonIEsAbort;
-static gint ett_lpp_CommonIEsError;
-static gint ett_lpp_AreaID_CellList_r17;
-static gint ett_lpp_NR_Cell_IDs_r17;
-static gint ett_lpp_DL_PRS_ID_Info_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16;
-static gint ett_lpp_LCS_GCS_TranslationParameter_r16;
-static gint ett_lpp_LOS_NLOS_Indicator_r17;
-static gint ett_lpp_T_indicator_r17;
-static gint ett_lpp_NR_AdditionalPathList_r16;
-static gint ett_lpp_NR_AdditionalPathListExt_r17;
-static gint ett_lpp_NR_AdditionalPath_r16;
-static gint ett_lpp_T_nr_RelativeTimeDifference_r16;
-static gint ett_lpp_NR_DL_PRS_AssistanceData_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16;
-static gint ett_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16;
-static gint ett_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16;
-static gint ett_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16;
-static gint ett_lpp_NR_DL_PRS_SFN0_Offset_r16;
-static gint ett_lpp_NR_DL_PRS_ExpectedAoD_or_AoA_r17;
-static gint ett_lpp_T_expectedAoD_r17;
-static gint ett_lpp_T_expectedAoA_r17;
-static gint ett_lpp_NR_DL_PRS_BeamInfo_r16;
-static gint ett_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16;
-static gint ett_lpp_NR_DL_PRS_BeamInfoPerTRP_r16;
-static gint ett_lpp_DL_PRS_BeamInfoSet_r16;
-static gint ett_lpp_DL_PRS_BeamInfoResourceSet_r16;
-static gint ett_lpp_DL_PRS_BeamInfoElement_r16;
-static gint ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_Assistance_r17;
-static gint ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerFreqLayer_r17;
-static gint ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerTRP_r17;
-static gint ett_lpp_T_nr_los_nlos_indicator_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerResource_r17;
-static gint ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerResource_r17;
-static gint ett_lpp_NR_DL_PRS_Info_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16;
-static gint ett_lpp_NR_DL_PRS_ResourceSet_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16;
-static gint ett_lpp_DL_PRS_MutingOption1_r16;
-static gint ett_lpp_DL_PRS_MutingOption2_r16;
-static gint ett_lpp_NR_MutingPattern_r16;
-static gint ett_lpp_NR_DL_PRS_Resource_r16;
-static gint ett_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16;
-static gint ett_lpp_DL_PRS_QCL_Info_r16;
-static gint ett_lpp_T_ssb_r16;
-static gint ett_lpp_T_dl_PRS_r16;
-static gint ett_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16;
-static gint ett_lpp_T_scs15_r16;
-static gint ett_lpp_T_scs30_r16;
-static gint ett_lpp_T_scs60_r16;
-static gint ett_lpp_T_scs120_r16;
-static gint ett_lpp_DL_PRS_ResourcePrioritySubset_r17;
-static gint ett_lpp_NR_DL_PRSResourcePriorityItem_r17;
-static gint ett_lpp_NR_DL_PRS_ProcessingCapability_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16;
-static gint ett_lpp_PRS_ProcessingCapabilityPerBand_r16;
-static gint ett_lpp_T_supportedBandwidthPRS_r16;
-static gint ett_lpp_T_durationOfPRS_Processing_r16;
-static gint ett_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_3_OF_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
-static gint ett_lpp_T_durationOfPRS_Processing_RRC_Inactive_r17;
-static gint ett_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_RRC_Inactive_r17;
-static gint ett_lpp_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
-static gint ett_lpp_T_ppw_durationOfPRS_Processing1_r17;
-static gint ett_lpp_T_ppw_durationOfPRS_Processing2_r17;
-static gint ett_lpp_T_ppw_maxNumOfDL_PRS_ResProcessedPerSlot_r17;
-static gint ett_lpp_T_ppw_maxNumOfDL_Bandwidth_r17;
-static gint ett_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16;
-static gint ett_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16;
-static gint ett_lpp_NR_DL_PRS_ResourcesCapability_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16;
-static gint ett_lpp_DL_PRS_ResourcesCapabilityPerBand_r16;
-static gint ett_lpp_DL_PRS_ResourcesBandCombinationList_r16;
-static gint ett_lpp_DL_PRS_ResourcesBandCombination_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16;
-static gint ett_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16;
-static gint ett_lpp_T_fr1_FR2Mix_r16;
-static gint ett_lpp_NR_DL_PRS_TRP_TEG_Info_r17;
-static gint ett_lpp_NR_DL_PRS_TRP_TEG_InfoPerFreqLayer_r17;
-static gint ett_lpp_NR_DL_PRS_TRP_TEG_InfoPerTRP_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_TEG_InfoPerResourceSet_r17;
-static gint ett_lpp_DL_PRS_TEG_InfoPerResourceSet_r17;
-static gint ett_lpp_DL_PRS_TEG_InfoElement_r17;
-static gint ett_lpp_NR_On_Demand_DL_PRS_Configurations_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxOD_DL_PRS_Configs_r17_OF_On_Demand_DL_PRS_Configuration_r17;
-static gint ett_lpp_On_Demand_DL_PRS_Configuration_r17;
-static gint ett_lpp_DL_PRS_Configuration_ID_r17;
-static gint ett_lpp_NR_On_Demand_DL_PRS_Information_r17;
-static gint ett_lpp_NR_On_Demand_DL_PRS_PerFreqLayer_r17;
-static gint ett_lpp_DL_PRS_QCL_InformationReqTRPlist_r17;
-static gint ett_lpp_DL_PRS_QCL_InformationReqPerTRP_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_QCL_InfoReq_r17;
-static gint ett_lpp_DL_PRS_QCL_InfoReq_r17;
-static gint ett_lpp_T_dl_prs_QCL_InformationReq_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_QCL_Info_r16;
-static gint ett_lpp_NR_On_Demand_DL_PRS_Request_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxOD_DL_PRS_Configs_r17_OF_DL_PRS_Configuration_ID_r17;
-static gint ett_lpp_DL_PRS_StartTime_and_Duration_r17;
-static gint ett_lpp_T_dl_prs_duration_r17;
-static gint ett_lpp_NR_On_Demand_DL_PRS_Configurations_Selected_IndexList_r17;
-static gint ett_lpp_NR_On_Demand_DL_PRS_Support_r17;
-static gint ett_lpp_NR_PositionCalculationAssistance_r16;
-static gint ett_lpp_NR_RTD_Info_r16;
-static gint ett_lpp_ReferenceTRP_RTD_Info_r16;
-static gint ett_lpp_T_refTime_r16;
-static gint ett_lpp_RTD_InfoList_r16;
-static gint ett_lpp_RTD_InfoListPerFreqLayer_r16;
-static gint ett_lpp_RTD_InfoElement_r16;
-static gint ett_lpp_NR_SelectedDL_PRS_IndexList_r16;
-static gint ett_lpp_NR_SelectedDL_PRS_PerFreq_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16;
-static gint ett_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16;
-static gint ett_lpp_DL_SelectedPRS_ResourceSetIndex_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16;
-static gint ett_lpp_DL_SelectedPRS_ResourceIndex_r16;
-static gint ett_lpp_NR_SSB_Config_r16;
-static gint ett_lpp_T_ssb_PositionsInBurst_r16;
-static gint ett_lpp_NR_TimeStamp_r16;
-static gint ett_lpp_T_nr_Slot_r16;
-static gint ett_lpp_NR_TimingQuality_r16;
-static gint ett_lpp_NR_TRP_BeamAntennaInfo_r17;
-static gint ett_lpp_NR_TRP_BeamAntennaInfoPerFreqLayer_r17;
-static gint ett_lpp_NR_TRP_BeamAntennaInfoPerTRP_r17;
-static gint ett_lpp_NR_TRP_BeamAntennaAngles_r17;
-static gint ett_lpp_NR_TRP_BeamAntennaInfoAzimuthElevation_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_1801_OF_ElevationElement_R17;
-static gint ett_lpp_ElevationElement_R17;
-static gint ett_lpp_SEQUENCE_SIZE_2_maxNumResourcesPerAngle_r17_OF_BeamPowerElement_r17;
-static gint ett_lpp_BeamPowerElement_r17;
-static gint ett_lpp_NR_TRP_LocationInfo_r16;
-static gint ett_lpp_NR_TRP_LocationInfoPerFreqLayer_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16;
-static gint ett_lpp_TRP_LocationInfoElement_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16;
-static gint ett_lpp_DL_PRS_ResourceSets_TRP_Element_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16;
-static gint ett_lpp_DL_PRS_Resource_ARP_Element_r16;
-static gint ett_lpp_NR_UE_TEG_Capability_r17;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_NR_UE_TEG_ID_CapabilityPerBand_r17;
-static gint ett_lpp_NR_UE_TEG_ID_CapabilityPerBand_r17;
-static gint ett_lpp_NR_UL_SRS_Capability_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16;
-static gint ett_lpp_SRS_CapabilityPerBand_r16;
-static gint ett_lpp_OLPC_SRS_Pos_r16;
-static gint ett_lpp_SpatialRelationsSRS_Pos_r16;
-static gint ett_lpp_SRS_PosResourcesPerBand_r16;
-static gint ett_lpp_PosSRS_RRC_Inactive_InInitialUL_BWP_r17;
-static gint ett_lpp_PosSRS_RRC_Inactive_OutsideInitialUL_BWP_r17;
-static gint ett_lpp_PosSRS_SP_RRC_Inactive_InInitialUL_BWP_r17;
-static gint ett_lpp_ReferencePoint_r16;
-static gint ett_lpp_T_referencePointGeographicLocation_r16;
-static gint ett_lpp_RelativeLocation_r16;
-static gint ett_lpp_Delta_Latitude_r16;
-static gint ett_lpp_Delta_Longitude_r16;
-static gint ett_lpp_Delta_Height_r16;
-static gint ett_lpp_LocationUncertainty_r16;
-static gint ett_lpp_OTDOA_ProvideAssistanceData;
-static gint ett_lpp_OTDOA_ReferenceCellInfo;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info;
-static gint ett_lpp_PRS_Info;
-static gint ett_lpp_T_prs_MutingInfo_r9;
-static gint ett_lpp_T_prsHoppingInfo_r14;
-static gint ett_lpp_T_nb4_r14;
-static gint ett_lpp_TDD_Config_v1520;
-static gint ett_lpp_OTDOA_NeighbourCellInfoList;
-static gint ett_lpp_OTDOA_NeighbourFreqInfo;
-static gint ett_lpp_OTDOA_NeighbourCellInfoElement;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14;
-static gint ett_lpp_Add_PRSconfigNeighbourElement_r14;
-static gint ett_lpp_OTDOA_ReferenceCellInfoNB_r14;
-static gint ett_lpp_PRS_Info_NB_r14;
-static gint ett_lpp_NPRS_Info_r14;
-static gint ett_lpp_T_partA_r14;
-static gint ett_lpp_T_nprsBitmap_r14;
-static gint ett_lpp_T_nprs_MutingInfoA_r14;
-static gint ett_lpp_T_partB_r14;
-static gint ett_lpp_T_nprs_MutingInfoB_r14;
-static gint ett_lpp_T_partA_TDD_r15;
-static gint ett_lpp_T_nprsBitmap_r15;
-static gint ett_lpp_T_nprs_MutingInfoA_r15;
-static gint ett_lpp_OTDOA_NeighbourCellInfoListNB_r14;
-static gint ett_lpp_OTDOA_NeighbourCellInfoNB_r14;
-static gint ett_lpp_OTDOA_RequestAssistanceData;
-static gint ett_lpp_T_adType_r14;
-static gint ett_lpp_OTDOA_ProvideLocationInformation;
-static gint ett_lpp_OTDOA_SignalMeasurementInformation;
-static gint ett_lpp_NeighbourMeasurementList;
-static gint ett_lpp_NeighbourMeasurementElement;
-static gint ett_lpp_AdditionalPathList_r14;
-static gint ett_lpp_MotionTimeSource_r15;
-static gint ett_lpp_OTDOA_SignalMeasurementInformation_NB_r14;
-static gint ett_lpp_NeighbourMeasurementList_NB_r14;
-static gint ett_lpp_NeighbourMeasurementElement_NB_r14;
-static gint ett_lpp_OTDOA_MeasQuality;
-static gint ett_lpp_AdditionalPath_r14;
-static gint ett_lpp_OTDOA_RequestLocationInformation;
-static gint ett_lpp_OTDOA_ProvideCapabilities;
-static gint ett_lpp_T_otdoa_Mode;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0;
-static gint ett_lpp_SupportedBandEUTRA;
-static gint ett_lpp_SupportedBandEUTRA_v9a0;
-static gint ett_lpp_OTDOA_RequestCapabilities;
-static gint ett_lpp_OTDOA_Error;
-static gint ett_lpp_OTDOA_LocationServerErrorCauses;
-static gint ett_lpp_OTDOA_TargetDeviceErrorCauses;
-static gint ett_lpp_A_GNSS_ProvideAssistanceData;
-static gint ett_lpp_GNSS_CommonAssistData;
-static gint ett_lpp_GNSS_GenericAssistData;
-static gint ett_lpp_GNSS_GenericAssistDataElement;
-static gint ett_lpp_GNSS_PeriodicAssistData_r15;
-static gint ett_lpp_GNSS_ReferenceTime;
-static gint ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell;
-static gint ett_lpp_GNSS_ReferenceTimeForOneCell;
-static gint ett_lpp_GNSS_SystemTime;
-static gint ett_lpp_GPS_TOW_Assist;
-static gint ett_lpp_GPS_TOW_AssistElement;
-static gint ett_lpp_NetworkTime;
-static gint ett_lpp_T_cellID;
-static gint ett_lpp_T_eUTRA;
-static gint ett_lpp_T_uTRA;
-static gint ett_lpp_T_mode;
-static gint ett_lpp_T_fdd;
-static gint ett_lpp_T_tdd;
-static gint ett_lpp_T_gSM;
-static gint ett_lpp_T_nBIoT_r14;
-static gint ett_lpp_T_nr_r15;
-static gint ett_lpp_GNSS_ReferenceLocation;
-static gint ett_lpp_GNSS_IonosphericModel;
-static gint ett_lpp_KlobucharModelParameter;
-static gint ett_lpp_KlobucharModel2Parameter_r16;
-static gint ett_lpp_NeQuickModelParameter;
-static gint ett_lpp_GNSS_EarthOrientationParameters;
-static gint ett_lpp_GNSS_RTK_ReferenceStationInfo_r15;
-static gint ett_lpp_AntennaDescription_r15;
-static gint ett_lpp_AntennaReferencePointUnc_r15;
-static gint ett_lpp_PhysicalReferenceStationInfo_r15;
-static gint ett_lpp_EqualIntegerAmbiguityLevel_r16;
-static gint ett_lpp_ReferenceStationList_r16;
-static gint ett_lpp_GNSS_RTK_CommonObservationInfo_r15;
-static gint ett_lpp_GNSS_RTK_AuxiliaryStationData_r15;
-static gint ett_lpp_AuxiliaryStationList_r15;
-static gint ett_lpp_AuxiliaryStationElement_r15;
-static gint ett_lpp_Aux_ARP_Unc_r15;
-static gint ett_lpp_GNSS_SSR_CorrectionPoints_r16;
-static gint ett_lpp_T_correctionPoints_r16;
-static gint ett_lpp_GNSS_SSR_ListOfCorrectionPoints_r16;
-static gint ett_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16;
-static gint ett_lpp_RelativeLocationElement_r16;
-static gint ett_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16;
-static gint ett_lpp_GNSS_Integrity_ServiceParameters_r17;
-static gint ett_lpp_GNSS_Integrity_ServiceAlert_r17;
-static gint ett_lpp_GNSS_TimeModelList;
-static gint ett_lpp_GNSS_TimeModelElement;
-static gint ett_lpp_GNSS_DifferentialCorrections;
-static gint ett_lpp_DGNSS_SgnTypeList;
-static gint ett_lpp_DGNSS_SgnTypeElement;
-static gint ett_lpp_DGNSS_SatList;
-static gint ett_lpp_DGNSS_CorrectionsElement;
-static gint ett_lpp_GNSS_NavigationModel;
-static gint ett_lpp_GNSS_NavModelSatelliteList;
-static gint ett_lpp_GNSS_NavModelSatelliteElement;
-static gint ett_lpp_GNSS_ClockModel;
-static gint ett_lpp_GNSS_OrbitModel;
-static gint ett_lpp_StandardClockModelList;
-static gint ett_lpp_StandardClockModelElement;
-static gint ett_lpp_NAV_ClockModel;
-static gint ett_lpp_CNAV_ClockModel;
-static gint ett_lpp_GLONASS_ClockModel;
-static gint ett_lpp_SBAS_ClockModel;
-static gint ett_lpp_BDS_ClockModel_r12;
-static gint ett_lpp_BDS_ClockModel2_r16;
-static gint ett_lpp_NavIC_ClockModel_r16;
-static gint ett_lpp_NavModelKeplerianSet;
-static gint ett_lpp_NavModelNAV_KeplerianSet;
-static gint ett_lpp_T_addNAVparam;
-static gint ett_lpp_T_ephemSF1Rsvd;
-static gint ett_lpp_NavModelCNAV_KeplerianSet;
-static gint ett_lpp_NavModel_GLONASS_ECEF;
-static gint ett_lpp_NavModel_SBAS_ECEF;
-static gint ett_lpp_NavModel_BDS_KeplerianSet_r12;
-static gint ett_lpp_NavModel_BDS_KeplerianSet2_r16;
-static gint ett_lpp_NavModel_NavIC_KeplerianSet_r16;
-static gint ett_lpp_GNSS_RealTimeIntegrity;
-static gint ett_lpp_GNSS_BadSignalList;
-static gint ett_lpp_BadSignalElement;
-static gint ett_lpp_GNSS_DataBitAssistance;
-static gint ett_lpp_GNSS_DataBitsSatList;
-static gint ett_lpp_GNSS_DataBitsSatElement;
-static gint ett_lpp_GNSS_DataBitsSgnList;
-static gint ett_lpp_GNSS_DataBitsSgnElement;
-static gint ett_lpp_GNSS_AcquisitionAssistance;
-static gint ett_lpp_GNSS_AcquisitionAssistList;
-static gint ett_lpp_GNSS_AcquisitionAssistElement;
-static gint ett_lpp_GNSS_Almanac;
-static gint ett_lpp_GNSS_AlmanacList;
-static gint ett_lpp_GNSS_AlmanacElement;
-static gint ett_lpp_AlmanacKeplerianSet;
-static gint ett_lpp_AlmanacNAV_KeplerianSet;
-static gint ett_lpp_AlmanacReducedKeplerianSet;
-static gint ett_lpp_AlmanacMidiAlmanacSet;
-static gint ett_lpp_AlmanacGLONASS_AlmanacSet;
-static gint ett_lpp_AlmanacECEF_SBAS_AlmanacSet;
-static gint ett_lpp_AlmanacBDS_AlmanacSet_r12;
-static gint ett_lpp_AlmanacNavIC_AlmanacSet_r16;
-static gint ett_lpp_GNSS_UTC_Model;
-static gint ett_lpp_UTC_ModelSet1;
-static gint ett_lpp_UTC_ModelSet2;
-static gint ett_lpp_UTC_ModelSet3;
-static gint ett_lpp_UTC_ModelSet4;
-static gint ett_lpp_UTC_ModelSet5_r12;
-static gint ett_lpp_GNSS_AuxiliaryInformation;
-static gint ett_lpp_GNSS_ID_GPS;
-static gint ett_lpp_GNSS_ID_GPS_SatElement;
-static gint ett_lpp_GNSS_ID_GLONASS;
-static gint ett_lpp_GNSS_ID_GLONASS_SatElement;
-static gint ett_lpp_GNSS_ID_BDS_r16;
-static gint ett_lpp_GNSS_ID_BDS_SatElement_r16;
-static gint ett_lpp_BDS_DifferentialCorrections_r12;
-static gint ett_lpp_BDS_SgnTypeList_r12;
-static gint ett_lpp_BDS_SgnTypeElement_r12;
-static gint ett_lpp_DBDS_CorrectionList_r12;
-static gint ett_lpp_DBDS_CorrectionElement_r12;
-static gint ett_lpp_BDS_GridModelParameter_r12;
-static gint ett_lpp_GridIonList_r12;
-static gint ett_lpp_GridIonElement_r12;
-static gint ett_lpp_GNSS_RTK_Observations_r15;
-static gint ett_lpp_GNSS_ObservationList_r15;
-static gint ett_lpp_GNSS_RTK_SatelliteDataElement_r15;
-static gint ett_lpp_GNSS_RTK_SatelliteSignalDataList_r15;
-static gint ett_lpp_GNSS_RTK_SatelliteSignalDataElement_r15;
-static gint ett_lpp_GLO_RTK_BiasInformation_r15;
-static gint ett_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15;
-static gint ett_lpp_RTK_CorrectionDifferencesList_r15;
-static gint ett_lpp_RTK_CorrectionDifferencesElement_r15;
-static gint ett_lpp_Geometric_Ionospheric_Corrections_Differences_r15;
-static gint ett_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15;
-static gint ett_lpp_GNSS_RTK_Residuals_r15;
-static gint ett_lpp_RTK_Residuals_List_r15;
-static gint ett_lpp_RTK_Residuals_Element_r15;
-static gint ett_lpp_GNSS_RTK_FKP_Gradients_r15;
-static gint ett_lpp_FKP_Gradients_List_r15;
-static gint ett_lpp_FKP_Gradients_Element_r15;
-static gint ett_lpp_GNSS_SSR_OrbitCorrections_r15;
-static gint ett_lpp_SSR_OrbitCorrectionList_r15;
-static gint ett_lpp_SSR_OrbitCorrectionSatelliteElement_r15;
-static gint ett_lpp_ORBIT_IntegrityParameters_r17;
-static gint ett_lpp_SSR_IntegrityOrbitBounds_r17;
-static gint ett_lpp_RAC_OrbitalErrorComponents_r17;
-static gint ett_lpp_GNSS_SSR_ClockCorrections_r15;
-static gint ett_lpp_SSR_ClockCorrectionList_r15;
-static gint ett_lpp_SSR_ClockCorrectionSatelliteElement_r15;
-static gint ett_lpp_CLOCK_IntegrityParameters_r17;
-static gint ett_lpp_SSR_IntegrityClockBounds_r17;
-static gint ett_lpp_GNSS_SSR_CodeBias_r15;
-static gint ett_lpp_SSR_CodeBiasSatList_r15;
-static gint ett_lpp_SSR_CodeBiasSatElement_r15;
-static gint ett_lpp_SSR_CodeBiasSignalList_r15;
-static gint ett_lpp_SSR_CodeBiasSignalElement_r15;
-static gint ett_lpp_SSR_IntegrityCodeBiasBounds_r17;
-static gint ett_lpp_GNSS_SSR_URA_r16;
-static gint ett_lpp_SSR_URA_SatList_r16;
-static gint ett_lpp_SSR_URA_SatElement_r16;
-static gint ett_lpp_GNSS_SSR_PhaseBias_r16;
-static gint ett_lpp_SSR_PhaseBiasSatList_r16;
-static gint ett_lpp_SSR_PhaseBiasSatElement_r16;
-static gint ett_lpp_SSR_PhaseBiasSignalList_r16;
-static gint ett_lpp_SSR_PhaseBiasSignalElement_r16;
-static gint ett_lpp_SSR_IntegrityPhaseBiasBounds_r17;
-static gint ett_lpp_GNSS_SSR_STEC_Correction_r16;
-static gint ett_lpp_STEC_SatList_r16;
-static gint ett_lpp_STEC_SatElement_r16;
-static gint ett_lpp_STEC_IntegrityParameters_r17;
-static gint ett_lpp_STEC_IntegrityErrorBounds_r17;
-static gint ett_lpp_GNSS_SSR_GriddedCorrection_r16;
-static gint ett_lpp_GridList_r16;
-static gint ett_lpp_GridElement_r16;
-static gint ett_lpp_TropospericDelayCorrection_r16;
-static gint ett_lpp_STEC_ResidualSatList_r16;
-static gint ett_lpp_STEC_ResidualSatElement_r16;
-static gint ett_lpp_T_stecResidualCorrection_r16;
-static gint ett_lpp_SSR_GriddedCorrectionIntegrityParameters_r17;
-static gint ett_lpp_TropoDelayIntegrityErrorBounds_r17;
-static gint ett_lpp_NavIC_DifferentialCorrections_r16;
-static gint ett_lpp_NavIC_CorrectionListAutoNav_r16;
-static gint ett_lpp_NavIC_CorrectionElementAutoNav_r16;
-static gint ett_lpp_NavIC_EDC_r16;
-static gint ett_lpp_NavIC_CDC_r16;
-static gint ett_lpp_NavIC_GridModelParameter_r16;
-static gint ett_lpp_RegionIgpList_r16;
-static gint ett_lpp_RegionIgpElement_r16;
-static gint ett_lpp_GNSS_SSR_OrbitCorrectionsSet2_r17;
-static gint ett_lpp_GNSS_SSR_ClockCorrectionsSet2_r17;
-static gint ett_lpp_GNSS_SSR_URA_Set2_r17;
-static gint ett_lpp_A_GNSS_RequestAssistanceData;
-static gint ett_lpp_GNSS_CommonAssistDataReq;
-static gint ett_lpp_GNSS_GenericAssistDataReq;
-static gint ett_lpp_GNSS_GenericAssistDataReqElement;
-static gint ett_lpp_GNSS_PeriodicAssistDataReq_r15;
-static gint ett_lpp_GNSS_ReferenceTimeReq;
-static gint ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID;
-static gint ett_lpp_GNSS_ReferenceLocationReq;
-static gint ett_lpp_GNSS_IonosphericModelReq;
-static gint ett_lpp_GNSS_EarthOrientationParametersReq;
-static gint ett_lpp_GNSS_RTK_ReferenceStationInfoReq_r15;
-static gint ett_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15;
-static gint ett_lpp_GNSS_SSR_CorrectionPointsReq_r16;
-static gint ett_lpp_GNSS_Integrity_ServiceParametersReq_r17;
-static gint ett_lpp_GNSS_Integrity_ServiceAlertReq_r17;
-static gint ett_lpp_GNSS_TimeModelListReq;
-static gint ett_lpp_GNSS_TimeModelElementReq;
-static gint ett_lpp_GNSS_DifferentialCorrectionsReq;
-static gint ett_lpp_GNSS_NavigationModelReq;
-static gint ett_lpp_StoredNavListInfo;
-static gint ett_lpp_SatListRelatedDataList;
-static gint ett_lpp_SatListRelatedDataElement;
-static gint ett_lpp_ReqNavListInfo;
-static gint ett_lpp_T_clockModelID_PrefList;
-static gint ett_lpp_T_orbitModelID_PrefList;
-static gint ett_lpp_GNSS_RealTimeIntegrityReq;
-static gint ett_lpp_GNSS_DataBitAssistanceReq;
-static gint ett_lpp_GNSS_DataBitsReqSatList;
-static gint ett_lpp_GNSS_DataBitsReqSatElement;
-static gint ett_lpp_GNSS_AcquisitionAssistanceReq;
-static gint ett_lpp_GNSS_AlmanacReq;
-static gint ett_lpp_GNSS_UTC_ModelReq;
-static gint ett_lpp_GNSS_AuxiliaryInformationReq;
-static gint ett_lpp_BDS_DifferentialCorrectionsReq_r12;
-static gint ett_lpp_BDS_GridModelReq_r12;
-static gint ett_lpp_GNSS_RTK_ObservationsReq_r15;
-static gint ett_lpp_GLO_RTK_BiasInformationReq_r15;
-static gint ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15;
-static gint ett_lpp_AUX_ReferenceStationList_r15;
-static gint ett_lpp_AUX_ReferenceStationID_Element_r15;
-static gint ett_lpp_GNSS_RTK_ResidualsReq_r15;
-static gint ett_lpp_GNSS_RTK_FKP_GradientsReq_r15;
-static gint ett_lpp_GNSS_SSR_OrbitCorrectionsReq_r15;
-static gint ett_lpp_T_orbit_IntegrityReq_r17;
-static gint ett_lpp_GNSS_SSR_ClockCorrectionsReq_r15;
-static gint ett_lpp_GNSS_SSR_CodeBiasReq_r15;
-static gint ett_lpp_GNSS_SSR_URA_Req_r16;
-static gint ett_lpp_GNSS_SSR_PhaseBiasReq_r16;
-static gint ett_lpp_GNSS_SSR_STEC_CorrectionReq_r16;
-static gint ett_lpp_T_stec_IntegrityReq_r17;
-static gint ett_lpp_GNSS_SSR_GriddedCorrectionReq_r16;
-static gint ett_lpp_NavIC_DifferentialCorrectionsReq_r16;
-static gint ett_lpp_NavIC_GridModelReq_r16;
-static gint ett_lpp_GNSS_SSR_OrbitCorrectionsSet2Req_r17;
-static gint ett_lpp_GNSS_SSR_ClockCorrectionsSet2Req_r17;
-static gint ett_lpp_GNSS_SSR_URA_Set2Req_r17;
-static gint ett_lpp_A_GNSS_ProvideLocationInformation;
-static gint ett_lpp_GNSS_SignalMeasurementInformation;
-static gint ett_lpp_MeasurementReferenceTime;
-static gint ett_lpp_T_networkTime;
-static gint ett_lpp_T_eUTRA_01;
-static gint ett_lpp_T_uTRA_01;
-static gint ett_lpp_T_mode_01;
-static gint ett_lpp_T_fdd_01;
-static gint ett_lpp_T_tdd_01;
-static gint ett_lpp_T_gSM_01;
-static gint ett_lpp_T_referenceFrame;
-static gint ett_lpp_T_nbIoT_r14;
-static gint ett_lpp_T_nr_r15_01;
-static gint ett_lpp_GNSS_MeasurementList;
-static gint ett_lpp_GNSS_MeasurementForOneGNSS;
-static gint ett_lpp_GNSS_SgnMeasList;
-static gint ett_lpp_GNSS_SgnMeasElement;
-static gint ett_lpp_GNSS_SatMeasList;
-static gint ett_lpp_GNSS_SatMeasElement;
-static gint ett_lpp_GNSS_LocationInformation;
-static gint ett_lpp_HA_GNSS_Metrics_r17;
-static gint ett_lpp_A_GNSS_RequestLocationInformation;
-static gint ett_lpp_GNSS_PositioningInstructions;
-static gint ett_lpp_A_GNSS_ProvideCapabilities;
-static gint ett_lpp_T_periodicAssistanceData_r15;
-static gint ett_lpp_GNSS_SupportList;
-static gint ett_lpp_GNSS_SupportElement;
-static gint ett_lpp_T_fta_MeasSupport;
-static gint ett_lpp_AssistanceDataSupportList;
-static gint ett_lpp_GNSS_CommonAssistanceDataSupport;
-static gint ett_lpp_GNSS_ReferenceTimeSupport;
-static gint ett_lpp_GNSS_ReferenceLocationSupport;
-static gint ett_lpp_GNSS_IonosphericModelSupport;
-static gint ett_lpp_T_ionoModel;
-static gint ett_lpp_GNSS_EarthOrientationParametersSupport;
-static gint ett_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15;
-static gint ett_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15;
-static gint ett_lpp_GNSS_Integrity_ServiceParametersSupport_r17;
-static gint ett_lpp_GNSS_Integrity_ServiceAlertSupport_r17;
-static gint ett_lpp_GNSS_GenericAssistanceDataSupport;
-static gint ett_lpp_GNSS_GenericAssistDataSupportElement;
-static gint ett_lpp_GNSS_TimeModelListSupport;
-static gint ett_lpp_GNSS_DifferentialCorrectionsSupport;
-static gint ett_lpp_GNSS_NavigationModelSupport;
-static gint ett_lpp_T_clockModel;
-static gint ett_lpp_T_orbitModel;
-static gint ett_lpp_GNSS_RealTimeIntegritySupport;
-static gint ett_lpp_GNSS_DataBitAssistanceSupport;
-static gint ett_lpp_GNSS_AcquisitionAssistanceSupport;
-static gint ett_lpp_GNSS_AlmanacSupport;
-static gint ett_lpp_T_almanacModel;
-static gint ett_lpp_GNSS_UTC_ModelSupport;
-static gint ett_lpp_T_utc_Model;
-static gint ett_lpp_GNSS_AuxiliaryInformationSupport;
-static gint ett_lpp_BDS_DifferentialCorrectionsSupport_r12;
-static gint ett_lpp_BDS_GridModelSupport_r12;
-static gint ett_lpp_GNSS_RTK_ObservationsSupport_r15;
-static gint ett_lpp_GLO_RTK_BiasInformationSupport_r15;
-static gint ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15;
-static gint ett_lpp_GNSS_RTK_ResidualsSupport_r15;
-static gint ett_lpp_GNSS_RTK_FKP_GradientsSupport_r15;
-static gint ett_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15;
-static gint ett_lpp_T_orbit_IntegritySup_r17;
-static gint ett_lpp_GNSS_SSR_ClockCorrectionsSupport_r15;
-static gint ett_lpp_GNSS_SSR_CodeBiasSupport_r15;
-static gint ett_lpp_GNSS_SSR_URA_Support_r16;
-static gint ett_lpp_GNSS_SSR_PhaseBiasSupport_r16;
-static gint ett_lpp_GNSS_SSR_STEC_CorrectionSupport_r16;
-static gint ett_lpp_T_stec_IntegritySup_r17;
-static gint ett_lpp_GNSS_SSR_GriddedCorrectionSupport_r16;
-static gint ett_lpp_NavIC_DifferentialCorrectionsSupport_r16;
-static gint ett_lpp_NavIC_GridModelSupport_r16;
-static gint ett_lpp_GNSS_SSR_OrbitCorrectionsSet2Support_r17;
-static gint ett_lpp_GNSS_SSR_ClockCorrectionsSet2Support_r17;
-static gint ett_lpp_GNSS_SSR_URA_Set2Support_r17;
-static gint ett_lpp_A_GNSS_RequestCapabilities;
-static gint ett_lpp_A_GNSS_Error;
-static gint ett_lpp_GNSS_LocationServerErrorCauses;
-static gint ett_lpp_GNSS_TargetDeviceErrorCauses;
-static gint ett_lpp_GNSS_FrequencyID_r15;
-static gint ett_lpp_GNSS_ID;
-static gint ett_lpp_GNSS_ID_Bitmap;
-static gint ett_lpp_T_gnss_ids;
-static gint ett_lpp_GNSS_Link_CombinationsList_r15;
-static gint ett_lpp_GNSS_Link_Combinations_r15;
-static gint ett_lpp_GNSS_NavListInfo_r15;
-static gint ett_lpp_SatListElement_r15;
-static gint ett_lpp_GNSS_NetworkID_r15;
-static gint ett_lpp_GNSS_PeriodicControlParam_r15;
-static gint ett_lpp_GNSS_ReferenceStationID_r15;
-static gint ett_lpp_GNSS_SignalID;
-static gint ett_lpp_GNSS_SignalIDs;
-static gint ett_lpp_GNSS_SubNetworkID_r15;
-static gint ett_lpp_SBAS_ID;
-static gint ett_lpp_SBAS_IDs;
-static gint ett_lpp_T_sbas_IDs;
-static gint ett_lpp_SV_ID;
-static gint ett_lpp_ECID_ProvideLocationInformation;
-static gint ett_lpp_ECID_SignalMeasurementInformation;
-static gint ett_lpp_MeasuredResultsList;
-static gint ett_lpp_MeasuredResultsElement;
-static gint ett_lpp_ECID_RequestLocationInformation;
-static gint ett_lpp_T_requestedMeasurements;
-static gint ett_lpp_ECID_ProvideCapabilities;
-static gint ett_lpp_T_ecid_MeasSupported;
-static gint ett_lpp_ECID_RequestCapabilities;
-static gint ett_lpp_ECID_Error;
-static gint ett_lpp_ECID_LocationServerErrorCauses;
-static gint ett_lpp_ECID_TargetDeviceErrorCauses;
-static gint ett_lpp_TBS_ProvideLocationInformation_r13;
-static gint ett_lpp_TBS_MeasurementInformation_r13;
-static gint ett_lpp_MBS_BeaconMeasList_r13;
-static gint ett_lpp_MBS_BeaconMeasElement_r13;
-static gint ett_lpp_TBS_RequestLocationInformation_r13;
-static gint ett_lpp_T_mbsRequestedMeasurements_r14;
-static gint ett_lpp_TBS_ProvideCapabilities_r13;
-static gint ett_lpp_T_tbs_Modes_r13;
-static gint ett_lpp_T_mbs_ConfigSupport_r14;
-static gint ett_lpp_MBS_AssistanceDataSupportList_r14;
-static gint ett_lpp_TBS_RequestCapabilities_r13;
-static gint ett_lpp_TBS_Error_r13;
-static gint ett_lpp_TBS_LocationServerErrorCauses_r13;
-static gint ett_lpp_TBS_TargetDeviceErrorCauses_r13;
-static gint ett_lpp_TBS_ProvideAssistanceData_r14;
-static gint ett_lpp_TBS_AssistanceDataList_r14;
-static gint ett_lpp_MBS_AssistanceDataList_r14;
-static gint ett_lpp_MBS_AssistanceDataElement_r14;
-static gint ett_lpp_MBS_AlmanacAssistance_r14;
-static gint ett_lpp_MBS_AcquisitionAssistance_r14;
-static gint ett_lpp_TBS_RequestAssistanceData_r14;
-static gint ett_lpp_Sensor_ProvideLocationInformation_r13;
-static gint ett_lpp_Sensor_MeasurementInformation_r13;
-static gint ett_lpp_T_uncertainty_r14;
-static gint ett_lpp_Sensor_MotionInformation_r15;
-static gint ett_lpp_DisplacementInfoList_r15;
-static gint ett_lpp_DisplacementInfoListElement_r15;
-static gint ett_lpp_DisplacementTimeStamp_r15;
-static gint ett_lpp_DeltaTime_r15;
-static gint ett_lpp_SFN_r15;
-static gint ett_lpp_Displacement_r15;
-static gint ett_lpp_UTC_Time_r15;
-static gint ett_lpp_Sensor_RequestLocationInformation_r13;
-static gint ett_lpp_Sensor_ProvideCapabilities_r13;
-static gint ett_lpp_T_sensor_Modes_r13;
-static gint ett_lpp_Sensor_AssistanceDataSupportList_r14;
-static gint ett_lpp_Sensor_RequestCapabilities_r13;
-static gint ett_lpp_Sensor_Error_r13;
-static gint ett_lpp_Sensor_LocationServerErrorCauses_r13;
-static gint ett_lpp_Sensor_TargetDeviceErrorCauses_r13;
-static gint ett_lpp_Sensor_ProvideAssistanceData_r14;
-static gint ett_lpp_Sensor_AssistanceDataList_r14;
-static gint ett_lpp_T_period_v1520;
-static gint ett_lpp_T_area_v1520;
-static gint ett_lpp_PressureValidityArea_v1520;
-static gint ett_lpp_PressureValidityPeriod_v1520;
-static gint ett_lpp_Sensor_RequestAssistanceData_r14;
-static gint ett_lpp_WLAN_ProvideLocationInformation_r13;
-static gint ett_lpp_WLAN_MeasurementInformation_r13;
-static gint ett_lpp_WLAN_MeasurementList_r13;
-static gint ett_lpp_WLAN_MeasurementElement_r13;
-static gint ett_lpp_WLAN_AP_Identifier_r13;
-static gint ett_lpp_WLAN_RTT_r13;
-static gint ett_lpp_WLAN_RequestLocationInformation_r13;
-static gint ett_lpp_T_requestedMeasurements_r13;
-static gint ett_lpp_WLAN_ProvideCapabilities_r13;
-static gint ett_lpp_T_wlan_Modes_r13;
-static gint ett_lpp_T_wlan_MeasSupported_r13;
-static gint ett_lpp_T_wlan_AP_AD_Supported_r14;
-static gint ett_lpp_WLAN_RequestCapabilities_r13;
-static gint ett_lpp_WLAN_Error_r13;
-static gint ett_lpp_WLAN_LocationServerErrorCauses_r13;
-static gint ett_lpp_WLAN_TargetDeviceErrorCauses_r13;
-static gint ett_lpp_WLAN_ProvideAssistanceData_r14;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14;
-static gint ett_lpp_WLAN_DataSet_r14;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14;
-static gint ett_lpp_SupportedChannels_11a_r14;
-static gint ett_lpp_SupportedChannels_11bg_r14;
-static gint ett_lpp_WLAN_AP_Data_r14;
-static gint ett_lpp_WLAN_AP_Location_r14;
-static gint ett_lpp_LocationDataLCI_r14;
-static gint ett_lpp_WLAN_RequestAssistanceData_r14;
-static gint ett_lpp_T_requestedAD_r14;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13;
-static gint ett_lpp_BT_ProvideLocationInformation_r13;
-static gint ett_lpp_BT_MeasurementInformation_r13;
-static gint ett_lpp_BT_MeasurementList_r13;
-static gint ett_lpp_BT_MeasurementElement_r13;
-static gint ett_lpp_BT_RequestLocationInformation_r13;
-static gint ett_lpp_T_requestedMeasurements_r13_01;
-static gint ett_lpp_BT_ProvideCapabilities_r13;
-static gint ett_lpp_T_bt_Modes_r13;
-static gint ett_lpp_T_bt_MeasSupported_r13;
-static gint ett_lpp_BT_RequestCapabilities_r13;
-static gint ett_lpp_BT_Error_r13;
-static gint ett_lpp_BT_LocationServerErrorCauses_r13;
-static gint ett_lpp_BT_TargetDeviceErrorCauses_r13;
-static gint ett_lpp_NR_UL_ProvideCapabilities_r16;
-static gint ett_lpp_NR_UL_RequestCapabilities_r16;
-static gint ett_lpp_NR_ECID_ProvideLocationInformation_r16;
-static gint ett_lpp_NR_ECID_SignalMeasurementInformation_r16;
-static gint ett_lpp_NR_MeasuredResultsList_r16;
-static gint ett_lpp_NR_MeasuredResultsElement_r16;
-static gint ett_lpp_T_nr_ARFCN_r16;
-static gint ett_lpp_MeasQuantityResults_r16;
-static gint ett_lpp_ResultsPerSSB_IndexList_r16;
-static gint ett_lpp_ResultsPerSSB_Index_r16;
-static gint ett_lpp_ResultsPerCSI_RS_IndexList_r16;
-static gint ett_lpp_ResultsPerCSI_RS_Index_r16;
-static gint ett_lpp_NR_ECID_RequestLocationInformation_r16;
-static gint ett_lpp_T_requestedMeasurements_r16;
-static gint ett_lpp_NR_ECID_ProvideCapabilities_r16;
-static gint ett_lpp_T_nr_ECID_MeasSupported_r16;
-static gint ett_lpp_NR_ECID_RequestCapabilities_r16;
-static gint ett_lpp_NR_ECID_Error_r16;
-static gint ett_lpp_NR_ECID_LocationServerErrorCauses_r16;
-static gint ett_lpp_NR_ECID_TargetDeviceErrorCauses_r16;
-static gint ett_lpp_NR_DL_TDOA_ProvideAssistanceData_r16;
-static gint ett_lpp_NR_DL_TDOA_RequestAssistanceData_r16;
-static gint ett_lpp_T_nr_AdType_r16;
-static gint ett_lpp_T_nr_PosCalcAssistanceRequest_r17;
-static gint ett_lpp_NR_DL_TDOA_ProvideLocationInformation_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_TDOA_SignalMeasurementInformation_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_TDOA_LocationInformation_r16;
-static gint ett_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16;
-static gint ett_lpp_NR_DL_TDOA_MeasList_r16;
-static gint ett_lpp_NR_DL_TDOA_MeasElement_r16;
-static gint ett_lpp_T_nr_RSTD_r16;
-static gint ett_lpp_T_nr_los_nlos_Indicator_r17;
-static gint ett_lpp_NR_DL_TDOA_AdditionalMeasurements_r16;
-static gint ett_lpp_NR_DL_TDOA_AdditionalMeasurementsExt_r17;
-static gint ett_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16;
-static gint ett_lpp_T_nr_RSTD_ResultDiff_r16;
-static gint ett_lpp_NR_DL_TDOA_LocationInformation_r16;
-static gint ett_lpp_T_measurementReferenceTime_r16;
-static gint ett_lpp_NR_DL_TDOA_RequestLocationInformation_r16;
-static gint ett_lpp_T_nr_RequestedMeasurements_r16;
-static gint ett_lpp_T_nr_los_nlos_IndicatorRequest_r17;
-static gint ett_lpp_NR_DL_TDOA_ReportConfig_r16;
-static gint ett_lpp_NR_DL_TDOA_ProvideCapabilities_r16;
-static gint ett_lpp_T_nr_PosCalcAssistanceSupport_r17;
-static gint ett_lpp_T_nr_los_nlos_AssistanceDataSupport_r17;
-static gint ett_lpp_T_nr_DL_PRS_ExpectedAoD_or_AoA_Sup_r17;
-static gint ett_lpp_T_nr_los_nlos_IndicatorSupport_r17;
-static gint ett_lpp_T_nr_dl_prs_AssistanceDataValidity_r17;
-static gint ett_lpp_NR_DL_TDOA_MeasurementCapability_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_TDOA_MeasCapabilityPerBand_r17;
-static gint ett_lpp_DL_TDOA_MeasCapabilityPerBand_r17;
-static gint ett_lpp_NR_DL_TDOA_RequestCapabilities_r16;
-static gint ett_lpp_NR_DL_TDOA_Error_r16;
-static gint ett_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16;
-static gint ett_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16;
-static gint ett_lpp_NR_DL_AoD_ProvideAssistanceData_r16;
-static gint ett_lpp_NR_DL_AoD_RequestAssistanceData_r16;
-static gint ett_lpp_T_nr_AdType_r16_01;
-static gint ett_lpp_T_nr_PosCalcAssistanceRequest_r17_01;
-static gint ett_lpp_NR_DL_AoD_ProvideLocationInformation_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_AoD_SignalMeasurementInformation_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_AoD_LocationInformation_r16;
-static gint ett_lpp_NR_DL_AoD_SignalMeasurementInformation_r16;
-static gint ett_lpp_NR_DL_AoD_MeasList_r16;
-static gint ett_lpp_NR_DL_AoD_MeasElement_r16;
-static gint ett_lpp_T_nr_los_nlos_Indicator_r17_01;
-static gint ett_lpp_NR_DL_AoD_AdditionalMeasurements_r16;
-static gint ett_lpp_NR_DL_AoD_AdditionalMeasurementsExt_r17;
-static gint ett_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16;
-static gint ett_lpp_NR_DL_AoD_AdditionalMeasurementElement_r17;
-static gint ett_lpp_NR_DL_AoD_LocationInformation_r16;
-static gint ett_lpp_T_measurementReferenceTime_r16_01;
-static gint ett_lpp_NR_DL_AoD_RequestLocationInformation_r16;
-static gint ett_lpp_NR_DL_AoD_ReportConfig_r16;
-static gint ett_lpp_T_nr_los_nlos_IndicatorRequest_r17_01;
-static gint ett_lpp_NR_DL_AoD_ProvideCapabilities_r16;
-static gint ett_lpp_T_nr_PosCalcAssistanceSupport_r17_01;
-static gint ett_lpp_T_nr_los_nlos_AssistanceDataSupport_r17_01;
-static gint ett_lpp_T_nr_DL_PRS_ExpectedAoD_or_AoA_Sup_r17_01;
-static gint ett_lpp_T_nr_los_nlos_IndicatorSupport_r17_01;
-static gint ett_lpp_T_nr_dl_prs_AssistanceDataValidity_r17_01;
-static gint ett_lpp_NR_DL_AoD_MeasurementCapability_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16;
-static gint ett_lpp_DL_AoD_MeasCapabilityPerBand_r16;
-static gint ett_lpp_NR_DL_AoD_RequestCapabilities_r16;
-static gint ett_lpp_NR_DL_AoD_Error_r16;
-static gint ett_lpp_NR_DL_AoD_LocationServerErrorCauses_r16;
-static gint ett_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16;
-static gint ett_lpp_NR_Multi_RTT_ProvideAssistanceData_r16;
-static gint ett_lpp_NR_Multi_RTT_RequestAssistanceData_r16;
-static gint ett_lpp_T_nr_AdType_r16_02;
-static gint ett_lpp_NR_Multi_RTT_ProvideLocationInformation_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_Multi_RTT_SignalMeasurementInformation_r16;
-static gint ett_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_maxTxTEG_Sets_r17_OF_NR_SRS_TxTEG_Element_r17;
-static gint ett_lpp_NR_Multi_RTT_MeasList_r16;
-static gint ett_lpp_NR_Multi_RTT_MeasElement_r16;
-static gint ett_lpp_T_nr_UE_RxTxTimeDiff_r16;
-static gint ett_lpp_T_nr_los_nlos_Indicator_r17_02;
-static gint ett_lpp_NR_Multi_RTT_AdditionalMeasurements_r16;
-static gint ett_lpp_NR_Multi_RTT_AdditionalMeasurementsExt_r17;
-static gint ett_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16;
-static gint ett_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16;
-static gint ett_lpp_NR_SRS_TxTEG_Element_r17;
-static gint ett_lpp_T_carrierFreq_r17;
-static gint ett_lpp_T_srs_PosResourceList_r17;
-static gint ett_lpp_NR_UE_RxTx_TEG_Info_r17;
-static gint ett_lpp_T_case1_r17;
-static gint ett_lpp_T_case2_r17;
-static gint ett_lpp_T_case3_r17;
-static gint ett_lpp_NR_Multi_RTT_RequestLocationInformation_r16;
-static gint ett_lpp_T_nr_RequestedMeasurements_r16_01;
-static gint ett_lpp_T_nr_los_nlos_IndicatorRequest_r17_02;
-static gint ett_lpp_NR_Multi_RTT_ReportConfig_r16;
-static gint ett_lpp_NR_Multi_RTT_ProvideCapabilities_r16;
-static gint ett_lpp_T_nr_DL_PRS_ExpectedAoD_or_AoA_Sup_r17_02;
-static gint ett_lpp_T_nr_UE_RxTx_TEG_ID_ReportingSupport_r17;
-static gint ett_lpp_T_nr_los_nlos_IndicatorSupport_r17_02;
-static gint ett_lpp_T_nr_dl_prs_AssistanceDataValidity_r17_02;
-static gint ett_lpp_NR_Multi_RTT_MeasurementCapability_r16;
-static gint ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_Multi_RTT_MeasCapabilityPerBand_r17;
-static gint ett_lpp_Multi_RTT_MeasCapabilityPerBand_r17;
-static gint ett_lpp_NR_Multi_RTT_RequestCapabilities_r16;
-static gint ett_lpp_NR_Multi_RTT_Error_r16;
-static gint ett_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16;
-static gint ett_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16;
-static gint ett_lpp_AssistanceDataSIBelement_r15;
-static gint ett_lpp_CipheringKeyData_r15;
-static gint ett_lpp_SegmentationInfo_r15;
-static gint ett_lpp_OTDOA_UE_Assisted_r15;
-static gint ett_lpp_NR_UEB_TRP_LocationData_r16;
-static gint ett_lpp_NR_UEB_TRP_RTD_Info_r16;
+static int ett_lpp_LPP_Message;
+static int ett_lpp_Acknowledgement;
+static int ett_lpp_LPP_MessageBody;
+static int ett_lpp_T_c1;
+static int ett_lpp_T_messageClassExtension;
+static int ett_lpp_LPP_TransactionID;
+static int ett_lpp_RequestCapabilities;
+static int ett_lpp_T_criticalExtensions;
+static int ett_lpp_T_c1_01;
+static int ett_lpp_T_criticalExtensionsFuture;
+static int ett_lpp_RequestCapabilities_r9_IEs;
+static int ett_lpp_ProvideCapabilities;
+static int ett_lpp_T_criticalExtensions_01;
+static int ett_lpp_T_c1_02;
+static int ett_lpp_T_criticalExtensionsFuture_01;
+static int ett_lpp_ProvideCapabilities_r9_IEs;
+static int ett_lpp_RequestAssistanceData;
+static int ett_lpp_T_criticalExtensions_02;
+static int ett_lpp_T_c1_03;
+static int ett_lpp_T_criticalExtensionsFuture_02;
+static int ett_lpp_RequestAssistanceData_r9_IEs;
+static int ett_lpp_ProvideAssistanceData;
+static int ett_lpp_T_criticalExtensions_03;
+static int ett_lpp_T_c1_04;
+static int ett_lpp_T_criticalExtensionsFuture_03;
+static int ett_lpp_ProvideAssistanceData_r9_IEs;
+static int ett_lpp_RequestLocationInformation;
+static int ett_lpp_T_criticalExtensions_04;
+static int ett_lpp_T_c1_05;
+static int ett_lpp_T_criticalExtensionsFuture_04;
+static int ett_lpp_RequestLocationInformation_r9_IEs;
+static int ett_lpp_ProvideLocationInformation;
+static int ett_lpp_T_criticalExtensions_05;
+static int ett_lpp_T_c1_06;
+static int ett_lpp_T_criticalExtensionsFuture_05;
+static int ett_lpp_ProvideLocationInformation_r9_IEs;
+static int ett_lpp_Abort;
+static int ett_lpp_T_criticalExtensions_06;
+static int ett_lpp_T_c1_07;
+static int ett_lpp_T_criticalExtensionsFuture_06;
+static int ett_lpp_Abort_r9_IEs;
+static int ett_lpp_Error;
+static int ett_lpp_T_criticalExtensionsFuture_07;
+static int ett_lpp_Error_r9_IEs;
+static int ett_lpp_AccessTypes;
+static int ett_lpp_T_accessTypes;
+static int ett_lpp_CarrierFreq_NB_r14;
+static int ett_lpp_CellGlobalIdEUTRA_AndUTRA;
+static int ett_lpp_T_plmn_Identity;
+static int ett_lpp_T_mcc;
+static int ett_lpp_T_mnc;
+static int ett_lpp_T_cellIdentity;
+static int ett_lpp_CellGlobalIdGERAN;
+static int ett_lpp_T_plmn_Identity_01;
+static int ett_lpp_T_mcc_01;
+static int ett_lpp_T_mnc_01;
+static int ett_lpp_ECGI;
+static int ett_lpp_T_mcc_02;
+static int ett_lpp_T_mnc_02;
+static int ett_lpp_Ellipsoid_Point;
+static int ett_lpp_Ellipsoid_PointWithUncertaintyCircle;
+static int ett_lpp_EllipsoidPointWithUncertaintyEllipse;
+static int ett_lpp_EllipsoidPointWithAltitude;
+static int ett_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid;
+static int ett_lpp_EllipsoidArc;
+static int ett_lpp_EPDU_Sequence;
+static int ett_lpp_EPDU;
+static int ett_lpp_EPDU_Identifier;
+static int ett_lpp_HA_EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid_r16;
+static int ett_lpp_HA_EllipsoidPointWithScalableUncertaintyEllipse_r16;
+static int ett_lpp_HighAccuracyEllipsoidPointWithUncertaintyEllipse_r15;
+static int ett_lpp_HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid_r15;
+static int ett_lpp_HorizontalVelocity;
+static int ett_lpp_HorizontalWithVerticalVelocity;
+static int ett_lpp_HorizontalVelocityWithUncertainty;
+static int ett_lpp_HorizontalWithVerticalVelocityAndUncertainty;
+static int ett_lpp_LocationCoordinateTypes;
+static int ett_lpp_NCGI_r15;
+static int ett_lpp_T_mcc_r15;
+static int ett_lpp_T_mnc_r15;
+static int ett_lpp_PeriodicAssistanceDataControlParameters_r15;
+static int ett_lpp_PeriodicSessionID_r15;
+static int ett_lpp_UpdateCapabilities_r15;
+static int ett_lpp_Polygon;
+static int ett_lpp_PolygonPoints;
+static int ett_lpp_PositioningModes;
+static int ett_lpp_T_posModes;
+static int ett_lpp_ScheduledLocationTimeSupport_r17;
+static int ett_lpp_ScheduledLocationTimeSupportPerMode_r17;
+static int ett_lpp_T_gnssTime_r17;
+static int ett_lpp_VelocityTypes;
+static int ett_lpp_CommonIEsRequestCapabilities;
+static int ett_lpp_T_lpp_message_segmentation_req_r14;
+static int ett_lpp_CommonIEsProvideCapabilities;
+static int ett_lpp_T_lpp_message_segmentation_r14;
+static int ett_lpp_CommonIEsRequestAssistanceData;
+static int ett_lpp_CommonIEsProvideAssistanceData;
+static int ett_lpp_CommonIEsRequestLocationInformation;
+static int ett_lpp_PeriodicalReportingCriteria;
+static int ett_lpp_TriggeredReportingCriteria;
+static int ett_lpp_QoS;
+static int ett_lpp_HorizontalAccuracy;
+static int ett_lpp_VerticalAccuracy;
+static int ett_lpp_HorizontalAccuracyExt_r15;
+static int ett_lpp_VerticalAccuracyExt_r15;
+static int ett_lpp_ResponseTime;
+static int ett_lpp_ResponseTimeNB_r14;
+static int ett_lpp_MessageSizeLimitNB_r14;
+static int ett_lpp_ScheduledLocationTime_r17;
+static int ett_lpp_T_gnssTime_r17_01;
+static int ett_lpp_T_networkTime_r17;
+static int ett_lpp_T_e_utraTime_r17_01;
+static int ett_lpp_T_nrTime_r17_01;
+static int ett_lpp_T_nr_Slot_r17;
+static int ett_lpp_CommonIEsProvideLocationInformation;
+static int ett_lpp_LocationCoordinates;
+static int ett_lpp_Velocity;
+static int ett_lpp_LocationError;
+static int ett_lpp_LocationSource_r13;
+static int ett_lpp_IntegrityInfo_r17;
+static int ett_lpp_CommonIEsAbort;
+static int ett_lpp_CommonIEsError;
+static int ett_lpp_AreaID_CellList_r17;
+static int ett_lpp_NR_Cell_IDs_r17;
+static int ett_lpp_DL_PRS_ID_Info_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxResourceIDs_r16_OF_NR_DL_PRS_ResourceID_r16;
+static int ett_lpp_LCS_GCS_TranslationParameter_r16;
+static int ett_lpp_LOS_NLOS_Indicator_r17;
+static int ett_lpp_T_indicator_r17;
+static int ett_lpp_NR_AdditionalPathList_r16;
+static int ett_lpp_NR_AdditionalPathListExt_r17;
+static int ett_lpp_NR_AdditionalPath_r16;
+static int ett_lpp_T_nr_RelativeTimeDifference_r16;
+static int ett_lpp_NR_DL_PRS_AssistanceData_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxFreqLayers_r16_OF_NR_DL_PRS_AssistanceDataPerFreq_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPs_r16_OF_NR_SSB_Config_r16;
+static int ett_lpp_NR_DL_PRS_AssistanceDataPerFreq_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_DL_PRS_AssistanceDataPerTRP_r16;
+static int ett_lpp_NR_DL_PRS_AssistanceDataPerTRP_r16;
+static int ett_lpp_NR_DL_PRS_PositioningFrequencyLayer_r16;
+static int ett_lpp_NR_DL_PRS_SFN0_Offset_r16;
+static int ett_lpp_NR_DL_PRS_ExpectedAoD_or_AoA_r17;
+static int ett_lpp_T_expectedAoD_r17;
+static int ett_lpp_T_expectedAoA_r17;
+static int ett_lpp_NR_DL_PRS_BeamInfo_r16;
+static int ett_lpp_NR_DL_PRS_BeamInfoPerFreqLayer_r16;
+static int ett_lpp_NR_DL_PRS_BeamInfoPerTRP_r16;
+static int ett_lpp_DL_PRS_BeamInfoSet_r16;
+static int ett_lpp_DL_PRS_BeamInfoResourceSet_r16;
+static int ett_lpp_DL_PRS_BeamInfoElement_r16;
+static int ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_Assistance_r17;
+static int ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerFreqLayer_r17;
+static int ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerTRP_r17;
+static int ett_lpp_T_nr_los_nlos_indicator_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerResource_r17;
+static int ett_lpp_NR_DL_PRS_ExpectedLOS_NLOS_AssistancePerResource_r17;
+static int ett_lpp_NR_DL_PRS_Info_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_NR_DL_PRS_ResourceSet_r16;
+static int ett_lpp_NR_DL_PRS_ResourceSet_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_NR_DL_PRS_Resource_r16;
+static int ett_lpp_DL_PRS_MutingOption1_r16;
+static int ett_lpp_DL_PRS_MutingOption2_r16;
+static int ett_lpp_NR_MutingPattern_r16;
+static int ett_lpp_NR_DL_PRS_Resource_r16;
+static int ett_lpp_T_dl_PRS_CombSizeN_AndReOffset_r16;
+static int ett_lpp_DL_PRS_QCL_Info_r16;
+static int ett_lpp_T_ssb_r16;
+static int ett_lpp_T_dl_PRS_r16;
+static int ett_lpp_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r16;
+static int ett_lpp_T_scs15_r16;
+static int ett_lpp_T_scs30_r16;
+static int ett_lpp_T_scs60_r16;
+static int ett_lpp_T_scs120_r16;
+static int ett_lpp_DL_PRS_ResourcePrioritySubset_r17;
+static int ett_lpp_NR_DL_PRSResourcePriorityItem_r17;
+static int ett_lpp_NR_DL_PRS_ProcessingCapability_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_PRS_ProcessingCapabilityPerBand_r16;
+static int ett_lpp_PRS_ProcessingCapabilityPerBand_r16;
+static int ett_lpp_T_supportedBandwidthPRS_r16;
+static int ett_lpp_T_durationOfPRS_Processing_r16;
+static int ett_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_3_OF_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
+static int ett_lpp_T_durationOfPRS_Processing_RRC_Inactive_r17;
+static int ett_lpp_T_maxNumOfDL_PRS_ResProcessedPerSlot_RRC_Inactive_r17;
+static int ett_lpp_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
+static int ett_lpp_T_ppw_durationOfPRS_Processing1_r17;
+static int ett_lpp_T_ppw_durationOfPRS_Processing2_r17;
+static int ett_lpp_T_ppw_maxNumOfDL_PRS_ResProcessedPerSlot_r17;
+static int ett_lpp_T_ppw_maxNumOfDL_Bandwidth_r17;
+static int ett_lpp_NR_DL_PRS_QCL_ProcessingCapability_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_QCL_ProcessingCapabilityPerBand_r16;
+static int ett_lpp_DL_PRS_QCL_ProcessingCapabilityPerBand_r16;
+static int ett_lpp_NR_DL_PRS_ResourcesCapability_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_PRS_ResourcesCapabilityPerBand_r16;
+static int ett_lpp_DL_PRS_ResourcesCapabilityPerBand_r16;
+static int ett_lpp_DL_PRS_ResourcesBandCombinationList_r16;
+static int ett_lpp_DL_PRS_ResourcesBandCombination_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_maxSimultaneousBands_r16_OF_FreqBandIndicatorNR_r16;
+static int ett_lpp_T_maxNrOfDL_PRS_ResourcesAcrossAllFL_TRP_ResourceSet_r16;
+static int ett_lpp_T_fr1_FR2Mix_r16;
+static int ett_lpp_NR_DL_PRS_TRP_TEG_Info_r17;
+static int ett_lpp_NR_DL_PRS_TRP_TEG_InfoPerFreqLayer_r17;
+static int ett_lpp_NR_DL_PRS_TRP_TEG_InfoPerTRP_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_TEG_InfoPerResourceSet_r17;
+static int ett_lpp_DL_PRS_TEG_InfoPerResourceSet_r17;
+static int ett_lpp_DL_PRS_TEG_InfoElement_r17;
+static int ett_lpp_NR_On_Demand_DL_PRS_Configurations_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_maxOD_DL_PRS_Configs_r17_OF_On_Demand_DL_PRS_Configuration_r17;
+static int ett_lpp_On_Demand_DL_PRS_Configuration_r17;
+static int ett_lpp_DL_PRS_Configuration_ID_r17;
+static int ett_lpp_NR_On_Demand_DL_PRS_Information_r17;
+static int ett_lpp_NR_On_Demand_DL_PRS_PerFreqLayer_r17;
+static int ett_lpp_DL_PRS_QCL_InformationReqTRPlist_r17;
+static int ett_lpp_DL_PRS_QCL_InformationReqPerTRP_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_QCL_InfoReq_r17;
+static int ett_lpp_DL_PRS_QCL_InfoReq_r17;
+static int ett_lpp_T_dl_prs_QCL_InformationReq_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_QCL_Info_r16;
+static int ett_lpp_NR_On_Demand_DL_PRS_Request_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_maxOD_DL_PRS_Configs_r17_OF_DL_PRS_Configuration_ID_r17;
+static int ett_lpp_DL_PRS_StartTime_and_Duration_r17;
+static int ett_lpp_T_dl_prs_duration_r17;
+static int ett_lpp_NR_On_Demand_DL_PRS_Configurations_Selected_IndexList_r17;
+static int ett_lpp_NR_On_Demand_DL_PRS_Support_r17;
+static int ett_lpp_NR_PositionCalculationAssistance_r16;
+static int ett_lpp_NR_RTD_Info_r16;
+static int ett_lpp_ReferenceTRP_RTD_Info_r16;
+static int ett_lpp_T_refTime_r16;
+static int ett_lpp_RTD_InfoList_r16;
+static int ett_lpp_RTD_InfoListPerFreqLayer_r16;
+static int ett_lpp_RTD_InfoElement_r16;
+static int ett_lpp_NR_SelectedDL_PRS_IndexList_r16;
+static int ett_lpp_NR_SelectedDL_PRS_PerFreq_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_NR_SelectedDL_PRS_IndexPerTRP_r16;
+static int ett_lpp_NR_SelectedDL_PRS_IndexPerTRP_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_SelectedPRS_ResourceSetIndex_r16;
+static int ett_lpp_DL_SelectedPRS_ResourceSetIndex_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_SelectedPRS_ResourceIndex_r16;
+static int ett_lpp_DL_SelectedPRS_ResourceIndex_r16;
+static int ett_lpp_NR_SSB_Config_r16;
+static int ett_lpp_T_ssb_PositionsInBurst_r16;
+static int ett_lpp_NR_TimeStamp_r16;
+static int ett_lpp_T_nr_Slot_r16;
+static int ett_lpp_NR_TimingQuality_r16;
+static int ett_lpp_NR_TRP_BeamAntennaInfo_r17;
+static int ett_lpp_NR_TRP_BeamAntennaInfoPerFreqLayer_r17;
+static int ett_lpp_NR_TRP_BeamAntennaInfoPerTRP_r17;
+static int ett_lpp_NR_TRP_BeamAntennaAngles_r17;
+static int ett_lpp_NR_TRP_BeamAntennaInfoAzimuthElevation_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_1801_OF_ElevationElement_R17;
+static int ett_lpp_ElevationElement_R17;
+static int ett_lpp_SEQUENCE_SIZE_2_maxNumResourcesPerAngle_r17_OF_BeamPowerElement_r17;
+static int ett_lpp_BeamPowerElement_r17;
+static int ett_lpp_NR_TRP_LocationInfo_r16;
+static int ett_lpp_NR_TRP_LocationInfoPerFreqLayer_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxTRPsPerFreq_r16_OF_TRP_LocationInfoElement_r16;
+static int ett_lpp_TRP_LocationInfoElement_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxSetsPerTrpPerFreqLayer_r16_OF_DL_PRS_ResourceSets_TRP_Element_r16;
+static int ett_lpp_DL_PRS_ResourceSets_TRP_Element_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxResourcesPerSet_r16_OF_DL_PRS_Resource_ARP_Element_r16;
+static int ett_lpp_DL_PRS_Resource_ARP_Element_r16;
+static int ett_lpp_NR_UE_TEG_Capability_r17;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_NR_UE_TEG_ID_CapabilityPerBand_r17;
+static int ett_lpp_NR_UE_TEG_ID_CapabilityPerBand_r17;
+static int ett_lpp_NR_UL_SRS_Capability_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_SRS_CapabilityPerBand_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxConfiguredBands_r16_OF_SRS_PosResourcesPerBand_r16;
+static int ett_lpp_SRS_CapabilityPerBand_r16;
+static int ett_lpp_OLPC_SRS_Pos_r16;
+static int ett_lpp_SpatialRelationsSRS_Pos_r16;
+static int ett_lpp_SRS_PosResourcesPerBand_r16;
+static int ett_lpp_PosSRS_RRC_Inactive_InInitialUL_BWP_r17;
+static int ett_lpp_PosSRS_RRC_Inactive_OutsideInitialUL_BWP_r17;
+static int ett_lpp_PosSRS_SP_RRC_Inactive_InInitialUL_BWP_r17;
+static int ett_lpp_ReferencePoint_r16;
+static int ett_lpp_T_referencePointGeographicLocation_r16;
+static int ett_lpp_RelativeLocation_r16;
+static int ett_lpp_Delta_Latitude_r16;
+static int ett_lpp_Delta_Longitude_r16;
+static int ett_lpp_Delta_Height_r16;
+static int ett_lpp_LocationUncertainty_r16;
+static int ett_lpp_OTDOA_ProvideAssistanceData;
+static int ett_lpp_OTDOA_ReferenceCellInfo;
+static int ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info;
+static int ett_lpp_PRS_Info;
+static int ett_lpp_T_prs_MutingInfo_r9;
+static int ett_lpp_T_prsHoppingInfo_r14;
+static int ett_lpp_T_nb4_r14;
+static int ett_lpp_TDD_Config_v1520;
+static int ett_lpp_OTDOA_NeighbourCellInfoList;
+static int ett_lpp_OTDOA_NeighbourFreqInfo;
+static int ett_lpp_OTDOA_NeighbourCellInfoElement;
+static int ett_lpp_SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_Add_PRSconfigNeighbourElement_r14;
+static int ett_lpp_Add_PRSconfigNeighbourElement_r14;
+static int ett_lpp_OTDOA_ReferenceCellInfoNB_r14;
+static int ett_lpp_PRS_Info_NB_r14;
+static int ett_lpp_NPRS_Info_r14;
+static int ett_lpp_T_partA_r14;
+static int ett_lpp_T_nprsBitmap_r14;
+static int ett_lpp_T_nprs_MutingInfoA_r14;
+static int ett_lpp_T_partB_r14;
+static int ett_lpp_T_nprs_MutingInfoB_r14;
+static int ett_lpp_T_partA_TDD_r15;
+static int ett_lpp_T_nprsBitmap_r15;
+static int ett_lpp_T_nprs_MutingInfoA_r15;
+static int ett_lpp_OTDOA_NeighbourCellInfoListNB_r14;
+static int ett_lpp_OTDOA_NeighbourCellInfoNB_r14;
+static int ett_lpp_OTDOA_RequestAssistanceData;
+static int ett_lpp_T_adType_r14;
+static int ett_lpp_OTDOA_ProvideLocationInformation;
+static int ett_lpp_OTDOA_SignalMeasurementInformation;
+static int ett_lpp_NeighbourMeasurementList;
+static int ett_lpp_NeighbourMeasurementElement;
+static int ett_lpp_AdditionalPathList_r14;
+static int ett_lpp_MotionTimeSource_r15;
+static int ett_lpp_OTDOA_SignalMeasurementInformation_NB_r14;
+static int ett_lpp_NeighbourMeasurementList_NB_r14;
+static int ett_lpp_NeighbourMeasurementElement_NB_r14;
+static int ett_lpp_OTDOA_MeasQuality;
+static int ett_lpp_AdditionalPath_r14;
+static int ett_lpp_OTDOA_RequestLocationInformation;
+static int ett_lpp_OTDOA_ProvideCapabilities;
+static int ett_lpp_T_otdoa_Mode;
+static int ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA;
+static int ett_lpp_SEQUENCE_SIZE_1_maxBands_OF_SupportedBandEUTRA_v9a0;
+static int ett_lpp_SupportedBandEUTRA;
+static int ett_lpp_SupportedBandEUTRA_v9a0;
+static int ett_lpp_OTDOA_RequestCapabilities;
+static int ett_lpp_OTDOA_Error;
+static int ett_lpp_OTDOA_LocationServerErrorCauses;
+static int ett_lpp_OTDOA_TargetDeviceErrorCauses;
+static int ett_lpp_A_GNSS_ProvideAssistanceData;
+static int ett_lpp_GNSS_CommonAssistData;
+static int ett_lpp_GNSS_GenericAssistData;
+static int ett_lpp_GNSS_GenericAssistDataElement;
+static int ett_lpp_GNSS_PeriodicAssistData_r15;
+static int ett_lpp_GNSS_ReferenceTime;
+static int ett_lpp_SEQUENCE_SIZE_1_16_OF_GNSS_ReferenceTimeForOneCell;
+static int ett_lpp_GNSS_ReferenceTimeForOneCell;
+static int ett_lpp_GNSS_SystemTime;
+static int ett_lpp_GPS_TOW_Assist;
+static int ett_lpp_GPS_TOW_AssistElement;
+static int ett_lpp_NetworkTime;
+static int ett_lpp_T_cellID;
+static int ett_lpp_T_eUTRA;
+static int ett_lpp_T_uTRA;
+static int ett_lpp_T_mode;
+static int ett_lpp_T_fdd;
+static int ett_lpp_T_tdd;
+static int ett_lpp_T_gSM;
+static int ett_lpp_T_nBIoT_r14;
+static int ett_lpp_T_nr_r15;
+static int ett_lpp_GNSS_ReferenceLocation;
+static int ett_lpp_GNSS_IonosphericModel;
+static int ett_lpp_KlobucharModelParameter;
+static int ett_lpp_KlobucharModel2Parameter_r16;
+static int ett_lpp_NeQuickModelParameter;
+static int ett_lpp_GNSS_EarthOrientationParameters;
+static int ett_lpp_GNSS_RTK_ReferenceStationInfo_r15;
+static int ett_lpp_AntennaDescription_r15;
+static int ett_lpp_AntennaReferencePointUnc_r15;
+static int ett_lpp_PhysicalReferenceStationInfo_r15;
+static int ett_lpp_EqualIntegerAmbiguityLevel_r16;
+static int ett_lpp_ReferenceStationList_r16;
+static int ett_lpp_GNSS_RTK_CommonObservationInfo_r15;
+static int ett_lpp_GNSS_RTK_AuxiliaryStationData_r15;
+static int ett_lpp_AuxiliaryStationList_r15;
+static int ett_lpp_AuxiliaryStationElement_r15;
+static int ett_lpp_Aux_ARP_Unc_r15;
+static int ett_lpp_GNSS_SSR_CorrectionPoints_r16;
+static int ett_lpp_T_correctionPoints_r16;
+static int ett_lpp_GNSS_SSR_ListOfCorrectionPoints_r16;
+static int ett_lpp_SEQUENCE_SIZE_0_63_OF_RelativeLocationElement_r16;
+static int ett_lpp_RelativeLocationElement_r16;
+static int ett_lpp_GNSS_SSR_ArrayOfCorrectionPoints_r16;
+static int ett_lpp_GNSS_Integrity_ServiceParameters_r17;
+static int ett_lpp_GNSS_Integrity_ServiceAlert_r17;
+static int ett_lpp_GNSS_TimeModelList;
+static int ett_lpp_GNSS_TimeModelElement;
+static int ett_lpp_GNSS_DifferentialCorrections;
+static int ett_lpp_DGNSS_SgnTypeList;
+static int ett_lpp_DGNSS_SgnTypeElement;
+static int ett_lpp_DGNSS_SatList;
+static int ett_lpp_DGNSS_CorrectionsElement;
+static int ett_lpp_GNSS_NavigationModel;
+static int ett_lpp_GNSS_NavModelSatelliteList;
+static int ett_lpp_GNSS_NavModelSatelliteElement;
+static int ett_lpp_GNSS_ClockModel;
+static int ett_lpp_GNSS_OrbitModel;
+static int ett_lpp_StandardClockModelList;
+static int ett_lpp_StandardClockModelElement;
+static int ett_lpp_NAV_ClockModel;
+static int ett_lpp_CNAV_ClockModel;
+static int ett_lpp_GLONASS_ClockModel;
+static int ett_lpp_SBAS_ClockModel;
+static int ett_lpp_BDS_ClockModel_r12;
+static int ett_lpp_BDS_ClockModel2_r16;
+static int ett_lpp_NavIC_ClockModel_r16;
+static int ett_lpp_NavModelKeplerianSet;
+static int ett_lpp_NavModelNAV_KeplerianSet;
+static int ett_lpp_T_addNAVparam;
+static int ett_lpp_T_ephemSF1Rsvd;
+static int ett_lpp_NavModelCNAV_KeplerianSet;
+static int ett_lpp_NavModel_GLONASS_ECEF;
+static int ett_lpp_NavModel_SBAS_ECEF;
+static int ett_lpp_NavModel_BDS_KeplerianSet_r12;
+static int ett_lpp_NavModel_BDS_KeplerianSet2_r16;
+static int ett_lpp_NavModel_NavIC_KeplerianSet_r16;
+static int ett_lpp_GNSS_RealTimeIntegrity;
+static int ett_lpp_GNSS_BadSignalList;
+static int ett_lpp_BadSignalElement;
+static int ett_lpp_GNSS_DataBitAssistance;
+static int ett_lpp_GNSS_DataBitsSatList;
+static int ett_lpp_GNSS_DataBitsSatElement;
+static int ett_lpp_GNSS_DataBitsSgnList;
+static int ett_lpp_GNSS_DataBitsSgnElement;
+static int ett_lpp_GNSS_AcquisitionAssistance;
+static int ett_lpp_GNSS_AcquisitionAssistList;
+static int ett_lpp_GNSS_AcquisitionAssistElement;
+static int ett_lpp_GNSS_Almanac;
+static int ett_lpp_GNSS_AlmanacList;
+static int ett_lpp_GNSS_AlmanacElement;
+static int ett_lpp_AlmanacKeplerianSet;
+static int ett_lpp_AlmanacNAV_KeplerianSet;
+static int ett_lpp_AlmanacReducedKeplerianSet;
+static int ett_lpp_AlmanacMidiAlmanacSet;
+static int ett_lpp_AlmanacGLONASS_AlmanacSet;
+static int ett_lpp_AlmanacECEF_SBAS_AlmanacSet;
+static int ett_lpp_AlmanacBDS_AlmanacSet_r12;
+static int ett_lpp_AlmanacNavIC_AlmanacSet_r16;
+static int ett_lpp_GNSS_UTC_Model;
+static int ett_lpp_UTC_ModelSet1;
+static int ett_lpp_UTC_ModelSet2;
+static int ett_lpp_UTC_ModelSet3;
+static int ett_lpp_UTC_ModelSet4;
+static int ett_lpp_UTC_ModelSet5_r12;
+static int ett_lpp_GNSS_AuxiliaryInformation;
+static int ett_lpp_GNSS_ID_GPS;
+static int ett_lpp_GNSS_ID_GPS_SatElement;
+static int ett_lpp_GNSS_ID_GLONASS;
+static int ett_lpp_GNSS_ID_GLONASS_SatElement;
+static int ett_lpp_GNSS_ID_BDS_r16;
+static int ett_lpp_GNSS_ID_BDS_SatElement_r16;
+static int ett_lpp_BDS_DifferentialCorrections_r12;
+static int ett_lpp_BDS_SgnTypeList_r12;
+static int ett_lpp_BDS_SgnTypeElement_r12;
+static int ett_lpp_DBDS_CorrectionList_r12;
+static int ett_lpp_DBDS_CorrectionElement_r12;
+static int ett_lpp_BDS_GridModelParameter_r12;
+static int ett_lpp_GridIonList_r12;
+static int ett_lpp_GridIonElement_r12;
+static int ett_lpp_GNSS_RTK_Observations_r15;
+static int ett_lpp_GNSS_ObservationList_r15;
+static int ett_lpp_GNSS_RTK_SatelliteDataElement_r15;
+static int ett_lpp_GNSS_RTK_SatelliteSignalDataList_r15;
+static int ett_lpp_GNSS_RTK_SatelliteSignalDataElement_r15;
+static int ett_lpp_GLO_RTK_BiasInformation_r15;
+static int ett_lpp_GNSS_RTK_MAC_CorrectionDifferences_r15;
+static int ett_lpp_RTK_CorrectionDifferencesList_r15;
+static int ett_lpp_RTK_CorrectionDifferencesElement_r15;
+static int ett_lpp_Geometric_Ionospheric_Corrections_Differences_r15;
+static int ett_lpp_Geometric_Ionospheric_Corrections_Differences_Element_r15;
+static int ett_lpp_GNSS_RTK_Residuals_r15;
+static int ett_lpp_RTK_Residuals_List_r15;
+static int ett_lpp_RTK_Residuals_Element_r15;
+static int ett_lpp_GNSS_RTK_FKP_Gradients_r15;
+static int ett_lpp_FKP_Gradients_List_r15;
+static int ett_lpp_FKP_Gradients_Element_r15;
+static int ett_lpp_GNSS_SSR_OrbitCorrections_r15;
+static int ett_lpp_SSR_OrbitCorrectionList_r15;
+static int ett_lpp_SSR_OrbitCorrectionSatelliteElement_r15;
+static int ett_lpp_ORBIT_IntegrityParameters_r17;
+static int ett_lpp_SSR_IntegrityOrbitBounds_r17;
+static int ett_lpp_RAC_OrbitalErrorComponents_r17;
+static int ett_lpp_GNSS_SSR_ClockCorrections_r15;
+static int ett_lpp_SSR_ClockCorrectionList_r15;
+static int ett_lpp_SSR_ClockCorrectionSatelliteElement_r15;
+static int ett_lpp_CLOCK_IntegrityParameters_r17;
+static int ett_lpp_SSR_IntegrityClockBounds_r17;
+static int ett_lpp_GNSS_SSR_CodeBias_r15;
+static int ett_lpp_SSR_CodeBiasSatList_r15;
+static int ett_lpp_SSR_CodeBiasSatElement_r15;
+static int ett_lpp_SSR_CodeBiasSignalList_r15;
+static int ett_lpp_SSR_CodeBiasSignalElement_r15;
+static int ett_lpp_SSR_IntegrityCodeBiasBounds_r17;
+static int ett_lpp_GNSS_SSR_URA_r16;
+static int ett_lpp_SSR_URA_SatList_r16;
+static int ett_lpp_SSR_URA_SatElement_r16;
+static int ett_lpp_GNSS_SSR_PhaseBias_r16;
+static int ett_lpp_SSR_PhaseBiasSatList_r16;
+static int ett_lpp_SSR_PhaseBiasSatElement_r16;
+static int ett_lpp_SSR_PhaseBiasSignalList_r16;
+static int ett_lpp_SSR_PhaseBiasSignalElement_r16;
+static int ett_lpp_SSR_IntegrityPhaseBiasBounds_r17;
+static int ett_lpp_GNSS_SSR_STEC_Correction_r16;
+static int ett_lpp_STEC_SatList_r16;
+static int ett_lpp_STEC_SatElement_r16;
+static int ett_lpp_STEC_IntegrityParameters_r17;
+static int ett_lpp_STEC_IntegrityErrorBounds_r17;
+static int ett_lpp_GNSS_SSR_GriddedCorrection_r16;
+static int ett_lpp_GridList_r16;
+static int ett_lpp_GridElement_r16;
+static int ett_lpp_TropospericDelayCorrection_r16;
+static int ett_lpp_STEC_ResidualSatList_r16;
+static int ett_lpp_STEC_ResidualSatElement_r16;
+static int ett_lpp_T_stecResidualCorrection_r16;
+static int ett_lpp_SSR_GriddedCorrectionIntegrityParameters_r17;
+static int ett_lpp_TropoDelayIntegrityErrorBounds_r17;
+static int ett_lpp_NavIC_DifferentialCorrections_r16;
+static int ett_lpp_NavIC_CorrectionListAutoNav_r16;
+static int ett_lpp_NavIC_CorrectionElementAutoNav_r16;
+static int ett_lpp_NavIC_EDC_r16;
+static int ett_lpp_NavIC_CDC_r16;
+static int ett_lpp_NavIC_GridModelParameter_r16;
+static int ett_lpp_RegionIgpList_r16;
+static int ett_lpp_RegionIgpElement_r16;
+static int ett_lpp_GNSS_SSR_OrbitCorrectionsSet2_r17;
+static int ett_lpp_GNSS_SSR_ClockCorrectionsSet2_r17;
+static int ett_lpp_GNSS_SSR_URA_Set2_r17;
+static int ett_lpp_A_GNSS_RequestAssistanceData;
+static int ett_lpp_GNSS_CommonAssistDataReq;
+static int ett_lpp_GNSS_GenericAssistDataReq;
+static int ett_lpp_GNSS_GenericAssistDataReqElement;
+static int ett_lpp_GNSS_PeriodicAssistDataReq_r15;
+static int ett_lpp_GNSS_ReferenceTimeReq;
+static int ett_lpp_SEQUENCE_SIZE_1_8_OF_GNSS_ID;
+static int ett_lpp_GNSS_ReferenceLocationReq;
+static int ett_lpp_GNSS_IonosphericModelReq;
+static int ett_lpp_GNSS_EarthOrientationParametersReq;
+static int ett_lpp_GNSS_RTK_ReferenceStationInfoReq_r15;
+static int ett_lpp_GNSS_RTK_AuxiliaryStationDataReq_r15;
+static int ett_lpp_GNSS_SSR_CorrectionPointsReq_r16;
+static int ett_lpp_GNSS_Integrity_ServiceParametersReq_r17;
+static int ett_lpp_GNSS_Integrity_ServiceAlertReq_r17;
+static int ett_lpp_GNSS_TimeModelListReq;
+static int ett_lpp_GNSS_TimeModelElementReq;
+static int ett_lpp_GNSS_DifferentialCorrectionsReq;
+static int ett_lpp_GNSS_NavigationModelReq;
+static int ett_lpp_StoredNavListInfo;
+static int ett_lpp_SatListRelatedDataList;
+static int ett_lpp_SatListRelatedDataElement;
+static int ett_lpp_ReqNavListInfo;
+static int ett_lpp_T_clockModelID_PrefList;
+static int ett_lpp_T_orbitModelID_PrefList;
+static int ett_lpp_GNSS_RealTimeIntegrityReq;
+static int ett_lpp_GNSS_DataBitAssistanceReq;
+static int ett_lpp_GNSS_DataBitsReqSatList;
+static int ett_lpp_GNSS_DataBitsReqSatElement;
+static int ett_lpp_GNSS_AcquisitionAssistanceReq;
+static int ett_lpp_GNSS_AlmanacReq;
+static int ett_lpp_GNSS_UTC_ModelReq;
+static int ett_lpp_GNSS_AuxiliaryInformationReq;
+static int ett_lpp_BDS_DifferentialCorrectionsReq_r12;
+static int ett_lpp_BDS_GridModelReq_r12;
+static int ett_lpp_GNSS_RTK_ObservationsReq_r15;
+static int ett_lpp_GLO_RTK_BiasInformationReq_r15;
+static int ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesReq_r15;
+static int ett_lpp_AUX_ReferenceStationList_r15;
+static int ett_lpp_AUX_ReferenceStationID_Element_r15;
+static int ett_lpp_GNSS_RTK_ResidualsReq_r15;
+static int ett_lpp_GNSS_RTK_FKP_GradientsReq_r15;
+static int ett_lpp_GNSS_SSR_OrbitCorrectionsReq_r15;
+static int ett_lpp_T_orbit_IntegrityReq_r17;
+static int ett_lpp_GNSS_SSR_ClockCorrectionsReq_r15;
+static int ett_lpp_GNSS_SSR_CodeBiasReq_r15;
+static int ett_lpp_GNSS_SSR_URA_Req_r16;
+static int ett_lpp_GNSS_SSR_PhaseBiasReq_r16;
+static int ett_lpp_GNSS_SSR_STEC_CorrectionReq_r16;
+static int ett_lpp_T_stec_IntegrityReq_r17;
+static int ett_lpp_GNSS_SSR_GriddedCorrectionReq_r16;
+static int ett_lpp_NavIC_DifferentialCorrectionsReq_r16;
+static int ett_lpp_NavIC_GridModelReq_r16;
+static int ett_lpp_GNSS_SSR_OrbitCorrectionsSet2Req_r17;
+static int ett_lpp_GNSS_SSR_ClockCorrectionsSet2Req_r17;
+static int ett_lpp_GNSS_SSR_URA_Set2Req_r17;
+static int ett_lpp_A_GNSS_ProvideLocationInformation;
+static int ett_lpp_GNSS_SignalMeasurementInformation;
+static int ett_lpp_MeasurementReferenceTime;
+static int ett_lpp_T_networkTime;
+static int ett_lpp_T_eUTRA_01;
+static int ett_lpp_T_uTRA_01;
+static int ett_lpp_T_mode_01;
+static int ett_lpp_T_fdd_01;
+static int ett_lpp_T_tdd_01;
+static int ett_lpp_T_gSM_01;
+static int ett_lpp_T_referenceFrame;
+static int ett_lpp_T_nbIoT_r14;
+static int ett_lpp_T_nr_r15_01;
+static int ett_lpp_GNSS_MeasurementList;
+static int ett_lpp_GNSS_MeasurementForOneGNSS;
+static int ett_lpp_GNSS_SgnMeasList;
+static int ett_lpp_GNSS_SgnMeasElement;
+static int ett_lpp_GNSS_SatMeasList;
+static int ett_lpp_GNSS_SatMeasElement;
+static int ett_lpp_GNSS_LocationInformation;
+static int ett_lpp_HA_GNSS_Metrics_r17;
+static int ett_lpp_A_GNSS_RequestLocationInformation;
+static int ett_lpp_GNSS_PositioningInstructions;
+static int ett_lpp_A_GNSS_ProvideCapabilities;
+static int ett_lpp_T_periodicAssistanceData_r15;
+static int ett_lpp_GNSS_SupportList;
+static int ett_lpp_GNSS_SupportElement;
+static int ett_lpp_T_fta_MeasSupport;
+static int ett_lpp_AssistanceDataSupportList;
+static int ett_lpp_GNSS_CommonAssistanceDataSupport;
+static int ett_lpp_GNSS_ReferenceTimeSupport;
+static int ett_lpp_GNSS_ReferenceLocationSupport;
+static int ett_lpp_GNSS_IonosphericModelSupport;
+static int ett_lpp_T_ionoModel;
+static int ett_lpp_GNSS_EarthOrientationParametersSupport;
+static int ett_lpp_GNSS_RTK_ReferenceStationInfoSupport_r15;
+static int ett_lpp_GNSS_RTK_AuxiliaryStationDataSupport_r15;
+static int ett_lpp_GNSS_Integrity_ServiceParametersSupport_r17;
+static int ett_lpp_GNSS_Integrity_ServiceAlertSupport_r17;
+static int ett_lpp_GNSS_GenericAssistanceDataSupport;
+static int ett_lpp_GNSS_GenericAssistDataSupportElement;
+static int ett_lpp_GNSS_TimeModelListSupport;
+static int ett_lpp_GNSS_DifferentialCorrectionsSupport;
+static int ett_lpp_GNSS_NavigationModelSupport;
+static int ett_lpp_T_clockModel;
+static int ett_lpp_T_orbitModel;
+static int ett_lpp_GNSS_RealTimeIntegritySupport;
+static int ett_lpp_GNSS_DataBitAssistanceSupport;
+static int ett_lpp_GNSS_AcquisitionAssistanceSupport;
+static int ett_lpp_GNSS_AlmanacSupport;
+static int ett_lpp_T_almanacModel;
+static int ett_lpp_GNSS_UTC_ModelSupport;
+static int ett_lpp_T_utc_Model;
+static int ett_lpp_GNSS_AuxiliaryInformationSupport;
+static int ett_lpp_BDS_DifferentialCorrectionsSupport_r12;
+static int ett_lpp_BDS_GridModelSupport_r12;
+static int ett_lpp_GNSS_RTK_ObservationsSupport_r15;
+static int ett_lpp_GLO_RTK_BiasInformationSupport_r15;
+static int ett_lpp_GNSS_RTK_MAC_CorrectionDifferencesSupport_r15;
+static int ett_lpp_GNSS_RTK_ResidualsSupport_r15;
+static int ett_lpp_GNSS_RTK_FKP_GradientsSupport_r15;
+static int ett_lpp_GNSS_SSR_OrbitCorrectionsSupport_r15;
+static int ett_lpp_T_orbit_IntegritySup_r17;
+static int ett_lpp_GNSS_SSR_ClockCorrectionsSupport_r15;
+static int ett_lpp_GNSS_SSR_CodeBiasSupport_r15;
+static int ett_lpp_GNSS_SSR_URA_Support_r16;
+static int ett_lpp_GNSS_SSR_PhaseBiasSupport_r16;
+static int ett_lpp_GNSS_SSR_STEC_CorrectionSupport_r16;
+static int ett_lpp_T_stec_IntegritySup_r17;
+static int ett_lpp_GNSS_SSR_GriddedCorrectionSupport_r16;
+static int ett_lpp_NavIC_DifferentialCorrectionsSupport_r16;
+static int ett_lpp_NavIC_GridModelSupport_r16;
+static int ett_lpp_GNSS_SSR_OrbitCorrectionsSet2Support_r17;
+static int ett_lpp_GNSS_SSR_ClockCorrectionsSet2Support_r17;
+static int ett_lpp_GNSS_SSR_URA_Set2Support_r17;
+static int ett_lpp_A_GNSS_RequestCapabilities;
+static int ett_lpp_A_GNSS_Error;
+static int ett_lpp_GNSS_LocationServerErrorCauses;
+static int ett_lpp_GNSS_TargetDeviceErrorCauses;
+static int ett_lpp_GNSS_FrequencyID_r15;
+static int ett_lpp_GNSS_ID;
+static int ett_lpp_GNSS_ID_Bitmap;
+static int ett_lpp_T_gnss_ids;
+static int ett_lpp_GNSS_Link_CombinationsList_r15;
+static int ett_lpp_GNSS_Link_Combinations_r15;
+static int ett_lpp_GNSS_NavListInfo_r15;
+static int ett_lpp_SatListElement_r15;
+static int ett_lpp_GNSS_NetworkID_r15;
+static int ett_lpp_GNSS_PeriodicControlParam_r15;
+static int ett_lpp_GNSS_ReferenceStationID_r15;
+static int ett_lpp_GNSS_SignalID;
+static int ett_lpp_GNSS_SignalIDs;
+static int ett_lpp_GNSS_SubNetworkID_r15;
+static int ett_lpp_SBAS_ID;
+static int ett_lpp_SBAS_IDs;
+static int ett_lpp_T_sbas_IDs;
+static int ett_lpp_SV_ID;
+static int ett_lpp_ECID_ProvideLocationInformation;
+static int ett_lpp_ECID_SignalMeasurementInformation;
+static int ett_lpp_MeasuredResultsList;
+static int ett_lpp_MeasuredResultsElement;
+static int ett_lpp_ECID_RequestLocationInformation;
+static int ett_lpp_T_requestedMeasurements;
+static int ett_lpp_ECID_ProvideCapabilities;
+static int ett_lpp_T_ecid_MeasSupported;
+static int ett_lpp_ECID_RequestCapabilities;
+static int ett_lpp_ECID_Error;
+static int ett_lpp_ECID_LocationServerErrorCauses;
+static int ett_lpp_ECID_TargetDeviceErrorCauses;
+static int ett_lpp_TBS_ProvideLocationInformation_r13;
+static int ett_lpp_TBS_MeasurementInformation_r13;
+static int ett_lpp_MBS_BeaconMeasList_r13;
+static int ett_lpp_MBS_BeaconMeasElement_r13;
+static int ett_lpp_TBS_RequestLocationInformation_r13;
+static int ett_lpp_T_mbsRequestedMeasurements_r14;
+static int ett_lpp_TBS_ProvideCapabilities_r13;
+static int ett_lpp_T_tbs_Modes_r13;
+static int ett_lpp_T_mbs_ConfigSupport_r14;
+static int ett_lpp_MBS_AssistanceDataSupportList_r14;
+static int ett_lpp_TBS_RequestCapabilities_r13;
+static int ett_lpp_TBS_Error_r13;
+static int ett_lpp_TBS_LocationServerErrorCauses_r13;
+static int ett_lpp_TBS_TargetDeviceErrorCauses_r13;
+static int ett_lpp_TBS_ProvideAssistanceData_r14;
+static int ett_lpp_TBS_AssistanceDataList_r14;
+static int ett_lpp_MBS_AssistanceDataList_r14;
+static int ett_lpp_MBS_AssistanceDataElement_r14;
+static int ett_lpp_MBS_AlmanacAssistance_r14;
+static int ett_lpp_MBS_AcquisitionAssistance_r14;
+static int ett_lpp_TBS_RequestAssistanceData_r14;
+static int ett_lpp_Sensor_ProvideLocationInformation_r13;
+static int ett_lpp_Sensor_MeasurementInformation_r13;
+static int ett_lpp_T_uncertainty_r14;
+static int ett_lpp_Sensor_MotionInformation_r15;
+static int ett_lpp_DisplacementInfoList_r15;
+static int ett_lpp_DisplacementInfoListElement_r15;
+static int ett_lpp_DisplacementTimeStamp_r15;
+static int ett_lpp_DeltaTime_r15;
+static int ett_lpp_SFN_r15;
+static int ett_lpp_Displacement_r15;
+static int ett_lpp_UTC_Time_r15;
+static int ett_lpp_Sensor_RequestLocationInformation_r13;
+static int ett_lpp_Sensor_ProvideCapabilities_r13;
+static int ett_lpp_T_sensor_Modes_r13;
+static int ett_lpp_Sensor_AssistanceDataSupportList_r14;
+static int ett_lpp_Sensor_RequestCapabilities_r13;
+static int ett_lpp_Sensor_Error_r13;
+static int ett_lpp_Sensor_LocationServerErrorCauses_r13;
+static int ett_lpp_Sensor_TargetDeviceErrorCauses_r13;
+static int ett_lpp_Sensor_ProvideAssistanceData_r14;
+static int ett_lpp_Sensor_AssistanceDataList_r14;
+static int ett_lpp_T_period_v1520;
+static int ett_lpp_T_area_v1520;
+static int ett_lpp_PressureValidityArea_v1520;
+static int ett_lpp_PressureValidityPeriod_v1520;
+static int ett_lpp_Sensor_RequestAssistanceData_r14;
+static int ett_lpp_WLAN_ProvideLocationInformation_r13;
+static int ett_lpp_WLAN_MeasurementInformation_r13;
+static int ett_lpp_WLAN_MeasurementList_r13;
+static int ett_lpp_WLAN_MeasurementElement_r13;
+static int ett_lpp_WLAN_AP_Identifier_r13;
+static int ett_lpp_WLAN_RTT_r13;
+static int ett_lpp_WLAN_RequestLocationInformation_r13;
+static int ett_lpp_T_requestedMeasurements_r13;
+static int ett_lpp_WLAN_ProvideCapabilities_r13;
+static int ett_lpp_T_wlan_Modes_r13;
+static int ett_lpp_T_wlan_MeasSupported_r13;
+static int ett_lpp_T_wlan_AP_AD_Supported_r14;
+static int ett_lpp_WLAN_RequestCapabilities_r13;
+static int ett_lpp_WLAN_Error_r13;
+static int ett_lpp_WLAN_LocationServerErrorCauses_r13;
+static int ett_lpp_WLAN_TargetDeviceErrorCauses_r13;
+static int ett_lpp_WLAN_ProvideAssistanceData_r14;
+static int ett_lpp_SEQUENCE_SIZE_1_maxWLAN_DataSets_r14_OF_WLAN_DataSet_r14;
+static int ett_lpp_WLAN_DataSet_r14;
+static int ett_lpp_SEQUENCE_SIZE_1_maxWLAN_AP_r14_OF_WLAN_AP_Data_r14;
+static int ett_lpp_SupportedChannels_11a_r14;
+static int ett_lpp_SupportedChannels_11bg_r14;
+static int ett_lpp_WLAN_AP_Data_r14;
+static int ett_lpp_WLAN_AP_Location_r14;
+static int ett_lpp_LocationDataLCI_r14;
+static int ett_lpp_WLAN_RequestAssistanceData_r14;
+static int ett_lpp_T_requestedAD_r14;
+static int ett_lpp_SEQUENCE_SIZE_1_maxVisibleAPs_r14_OF_WLAN_AP_Identifier_r13;
+static int ett_lpp_SEQUENCE_SIZE_1_maxKnownAPs_r14_OF_WLAN_AP_Identifier_r13;
+static int ett_lpp_BT_ProvideLocationInformation_r13;
+static int ett_lpp_BT_MeasurementInformation_r13;
+static int ett_lpp_BT_MeasurementList_r13;
+static int ett_lpp_BT_MeasurementElement_r13;
+static int ett_lpp_BT_RequestLocationInformation_r13;
+static int ett_lpp_T_requestedMeasurements_r13_01;
+static int ett_lpp_BT_ProvideCapabilities_r13;
+static int ett_lpp_T_bt_Modes_r13;
+static int ett_lpp_T_bt_MeasSupported_r13;
+static int ett_lpp_BT_RequestCapabilities_r13;
+static int ett_lpp_BT_Error_r13;
+static int ett_lpp_BT_LocationServerErrorCauses_r13;
+static int ett_lpp_BT_TargetDeviceErrorCauses_r13;
+static int ett_lpp_NR_UL_ProvideCapabilities_r16;
+static int ett_lpp_NR_UL_RequestCapabilities_r16;
+static int ett_lpp_NR_ECID_ProvideLocationInformation_r16;
+static int ett_lpp_NR_ECID_SignalMeasurementInformation_r16;
+static int ett_lpp_NR_MeasuredResultsList_r16;
+static int ett_lpp_NR_MeasuredResultsElement_r16;
+static int ett_lpp_T_nr_ARFCN_r16;
+static int ett_lpp_MeasQuantityResults_r16;
+static int ett_lpp_ResultsPerSSB_IndexList_r16;
+static int ett_lpp_ResultsPerSSB_Index_r16;
+static int ett_lpp_ResultsPerCSI_RS_IndexList_r16;
+static int ett_lpp_ResultsPerCSI_RS_Index_r16;
+static int ett_lpp_NR_ECID_RequestLocationInformation_r16;
+static int ett_lpp_T_requestedMeasurements_r16;
+static int ett_lpp_NR_ECID_ProvideCapabilities_r16;
+static int ett_lpp_T_nr_ECID_MeasSupported_r16;
+static int ett_lpp_NR_ECID_RequestCapabilities_r16;
+static int ett_lpp_NR_ECID_Error_r16;
+static int ett_lpp_NR_ECID_LocationServerErrorCauses_r16;
+static int ett_lpp_NR_ECID_TargetDeviceErrorCauses_r16;
+static int ett_lpp_NR_DL_TDOA_ProvideAssistanceData_r16;
+static int ett_lpp_NR_DL_TDOA_RequestAssistanceData_r16;
+static int ett_lpp_T_nr_AdType_r16;
+static int ett_lpp_T_nr_PosCalcAssistanceRequest_r17;
+static int ett_lpp_NR_DL_TDOA_ProvideLocationInformation_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_TDOA_SignalMeasurementInformation_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_TDOA_LocationInformation_r16;
+static int ett_lpp_NR_DL_TDOA_SignalMeasurementInformation_r16;
+static int ett_lpp_NR_DL_TDOA_MeasList_r16;
+static int ett_lpp_NR_DL_TDOA_MeasElement_r16;
+static int ett_lpp_T_nr_RSTD_r16;
+static int ett_lpp_T_nr_los_nlos_Indicator_r17;
+static int ett_lpp_NR_DL_TDOA_AdditionalMeasurements_r16;
+static int ett_lpp_NR_DL_TDOA_AdditionalMeasurementsExt_r17;
+static int ett_lpp_NR_DL_TDOA_AdditionalMeasurementElement_r16;
+static int ett_lpp_T_nr_RSTD_ResultDiff_r16;
+static int ett_lpp_NR_DL_TDOA_LocationInformation_r16;
+static int ett_lpp_T_measurementReferenceTime_r16;
+static int ett_lpp_NR_DL_TDOA_RequestLocationInformation_r16;
+static int ett_lpp_T_nr_RequestedMeasurements_r16;
+static int ett_lpp_T_nr_los_nlos_IndicatorRequest_r17;
+static int ett_lpp_NR_DL_TDOA_ReportConfig_r16;
+static int ett_lpp_NR_DL_TDOA_ProvideCapabilities_r16;
+static int ett_lpp_T_nr_PosCalcAssistanceSupport_r17;
+static int ett_lpp_T_nr_los_nlos_AssistanceDataSupport_r17;
+static int ett_lpp_T_nr_DL_PRS_ExpectedAoD_or_AoA_Sup_r17;
+static int ett_lpp_T_nr_los_nlos_IndicatorSupport_r17;
+static int ett_lpp_T_nr_dl_prs_AssistanceDataValidity_r17;
+static int ett_lpp_NR_DL_TDOA_MeasurementCapability_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_TDOA_MeasCapabilityPerBand_r17;
+static int ett_lpp_DL_TDOA_MeasCapabilityPerBand_r17;
+static int ett_lpp_NR_DL_TDOA_RequestCapabilities_r16;
+static int ett_lpp_NR_DL_TDOA_Error_r16;
+static int ett_lpp_NR_DL_TDOA_LocationServerErrorCauses_r16;
+static int ett_lpp_NR_DL_TDOA_TargetDeviceErrorCauses_r16;
+static int ett_lpp_NR_DL_AoD_ProvideAssistanceData_r16;
+static int ett_lpp_NR_DL_AoD_RequestAssistanceData_r16;
+static int ett_lpp_T_nr_AdType_r16_01;
+static int ett_lpp_T_nr_PosCalcAssistanceRequest_r17_01;
+static int ett_lpp_NR_DL_AoD_ProvideLocationInformation_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_AoD_SignalMeasurementInformation_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_DL_AoD_LocationInformation_r16;
+static int ett_lpp_NR_DL_AoD_SignalMeasurementInformation_r16;
+static int ett_lpp_NR_DL_AoD_MeasList_r16;
+static int ett_lpp_NR_DL_AoD_MeasElement_r16;
+static int ett_lpp_T_nr_los_nlos_Indicator_r17_01;
+static int ett_lpp_NR_DL_AoD_AdditionalMeasurements_r16;
+static int ett_lpp_NR_DL_AoD_AdditionalMeasurementsExt_r17;
+static int ett_lpp_NR_DL_AoD_AdditionalMeasurementElement_r16;
+static int ett_lpp_NR_DL_AoD_AdditionalMeasurementElement_r17;
+static int ett_lpp_NR_DL_AoD_LocationInformation_r16;
+static int ett_lpp_T_measurementReferenceTime_r16_01;
+static int ett_lpp_NR_DL_AoD_RequestLocationInformation_r16;
+static int ett_lpp_NR_DL_AoD_ReportConfig_r16;
+static int ett_lpp_T_nr_los_nlos_IndicatorRequest_r17_01;
+static int ett_lpp_NR_DL_AoD_ProvideCapabilities_r16;
+static int ett_lpp_T_nr_PosCalcAssistanceSupport_r17_01;
+static int ett_lpp_T_nr_los_nlos_AssistanceDataSupport_r17_01;
+static int ett_lpp_T_nr_DL_PRS_ExpectedAoD_or_AoA_Sup_r17_01;
+static int ett_lpp_T_nr_los_nlos_IndicatorSupport_r17_01;
+static int ett_lpp_T_nr_dl_prs_AssistanceDataValidity_r17_01;
+static int ett_lpp_NR_DL_AoD_MeasurementCapability_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_DL_AoD_MeasCapabilityPerBand_r16;
+static int ett_lpp_DL_AoD_MeasCapabilityPerBand_r16;
+static int ett_lpp_NR_DL_AoD_RequestCapabilities_r16;
+static int ett_lpp_NR_DL_AoD_Error_r16;
+static int ett_lpp_NR_DL_AoD_LocationServerErrorCauses_r16;
+static int ett_lpp_NR_DL_AoD_TargetDeviceErrorCauses_r16;
+static int ett_lpp_NR_Multi_RTT_ProvideAssistanceData_r16;
+static int ett_lpp_NR_Multi_RTT_RequestAssistanceData_r16;
+static int ett_lpp_T_nr_AdType_r16_02;
+static int ett_lpp_NR_Multi_RTT_ProvideLocationInformation_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_maxMeasInstances_r17_OF_NR_Multi_RTT_SignalMeasurementInformation_r16;
+static int ett_lpp_NR_Multi_RTT_SignalMeasurementInformation_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_maxTxTEG_Sets_r17_OF_NR_SRS_TxTEG_Element_r17;
+static int ett_lpp_NR_Multi_RTT_MeasList_r16;
+static int ett_lpp_NR_Multi_RTT_MeasElement_r16;
+static int ett_lpp_T_nr_UE_RxTxTimeDiff_r16;
+static int ett_lpp_T_nr_los_nlos_Indicator_r17_02;
+static int ett_lpp_NR_Multi_RTT_AdditionalMeasurements_r16;
+static int ett_lpp_NR_Multi_RTT_AdditionalMeasurementsExt_r17;
+static int ett_lpp_NR_Multi_RTT_AdditionalMeasurementElement_r16;
+static int ett_lpp_T_nr_UE_RxTxTimeDiffAdditional_r16;
+static int ett_lpp_NR_SRS_TxTEG_Element_r17;
+static int ett_lpp_T_carrierFreq_r17;
+static int ett_lpp_T_srs_PosResourceList_r17;
+static int ett_lpp_NR_UE_RxTx_TEG_Info_r17;
+static int ett_lpp_T_case1_r17;
+static int ett_lpp_T_case2_r17;
+static int ett_lpp_T_case3_r17;
+static int ett_lpp_NR_Multi_RTT_RequestLocationInformation_r16;
+static int ett_lpp_T_nr_RequestedMeasurements_r16_01;
+static int ett_lpp_T_nr_los_nlos_IndicatorRequest_r17_02;
+static int ett_lpp_NR_Multi_RTT_ReportConfig_r16;
+static int ett_lpp_NR_Multi_RTT_ProvideCapabilities_r16;
+static int ett_lpp_T_nr_DL_PRS_ExpectedAoD_or_AoA_Sup_r17_02;
+static int ett_lpp_T_nr_UE_RxTx_TEG_ID_ReportingSupport_r17;
+static int ett_lpp_T_nr_los_nlos_IndicatorSupport_r17_02;
+static int ett_lpp_T_nr_dl_prs_AssistanceDataValidity_r17_02;
+static int ett_lpp_NR_Multi_RTT_MeasurementCapability_r16;
+static int ett_lpp_SEQUENCE_SIZE_1_nrMaxBands_r16_OF_Multi_RTT_MeasCapabilityPerBand_r17;
+static int ett_lpp_Multi_RTT_MeasCapabilityPerBand_r17;
+static int ett_lpp_NR_Multi_RTT_RequestCapabilities_r16;
+static int ett_lpp_NR_Multi_RTT_Error_r16;
+static int ett_lpp_NR_Multi_RTT_LocationServerErrorCauses_r16;
+static int ett_lpp_NR_Multi_RTT_TargetDeviceErrorCauses_r16;
+static int ett_lpp_AssistanceDataSIBelement_r15;
+static int ett_lpp_CipheringKeyData_r15;
+static int ett_lpp_SegmentationInfo_r15;
+static int ett_lpp_OTDOA_UE_Assisted_r15;
+static int ett_lpp_NR_UEB_TRP_LocationData_r16;
+static int ett_lpp_NR_UEB_TRP_RTD_Info_r16;
/* Include constants */
#define maxEPDU 16
@@ -17197,7 +17197,7 @@ dissect_lpp_T_referenceStationIndicator_r15(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_lpp_INTEGER_M137438953472_137438953471(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- G_GINT64_CONSTANT(-137438953472), G_GUINT64_CONSTANT(137438953471), NULL, FALSE);
+ INT64_C(-137438953472), UINT64_C(137438953471), NULL, FALSE);
return offset;
}
@@ -18263,7 +18263,7 @@ dissect_lpp_GNSS_ClockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
@@ -18400,7 +18400,7 @@ dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
int64_t cnavMo;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavMo, FALSE);
+ INT64_C(-4294967296), 4294967295U, &cnavMo, FALSE);
@@ -18419,7 +18419,7 @@ dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
uint64_t cnavE;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(8589934591), &cnavE, FALSE);
+ 0U, UINT64_C(8589934591), &cnavE, FALSE);
@@ -18438,7 +18438,7 @@ dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
int64_t cnavOmega;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavOmega, FALSE);
+ INT64_C(-4294967296), 4294967295U, &cnavOmega, FALSE);
@@ -18457,7 +18457,7 @@ dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
int64_t cnavOMEGA0;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavOMEGA0, FALSE);
+ INT64_C(-4294967296), 4294967295U, &cnavOMEGA0, FALSE);
@@ -18476,7 +18476,7 @@ dissect_lpp_T_cnavIo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
int64_t cnavIo;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- G_GINT64_CONSTANT(-4294967296), 4294967295U, &cnavIo, FALSE);
+ INT64_C(-4294967296), 4294967295U, &cnavIo, FALSE);
@@ -18664,7 +18664,7 @@ dissect_lpp_INTEGER_M16777216_16777216(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lpp_INTEGER_M4294967296_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- G_GINT64_CONSTANT(-4294967296), 4294967295U, NULL, FALSE);
+ INT64_C(-4294967296), 4294967295U, NULL, FALSE);
return offset;
}
@@ -18674,7 +18674,7 @@ dissect_lpp_INTEGER_M4294967296_4294967295(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_lpp_INTEGER_0_8589934591(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(8589934591), NULL, FALSE);
+ 0U, UINT64_C(8589934591), NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-lppa.c b/epan/dissectors/packet-lppa.c
index 8e969b8042..4512dcb555 100644
--- a/epan/dissectors/packet-lppa.c
+++ b/epan/dissectors/packet-lppa.c
@@ -290,103 +290,103 @@ static int hf_lppa_unsuccessfulOutcome_value; /* UnsuccessfulOutcome_value *
/* Initialize the subtree pointers */
static gint ett_lppa;
-static gint ett_lppa_PrivateIE_ID;
-static gint ett_lppa_ProtocolIE_Container;
-static gint ett_lppa_ProtocolIE_Field;
-static gint ett_lppa_ProtocolExtensionContainer;
-static gint ett_lppa_ProtocolExtensionField;
-static gint ett_lppa_PrivateIE_Container;
-static gint ett_lppa_PrivateIE_Field;
-static gint ett_lppa_Add_OTDOACells;
-static gint ett_lppa_Add_OTDOACells_item;
-static gint ett_lppa_Add_OTDOACell_Information;
-static gint ett_lppa_Assistance_Information;
-static gint ett_lppa_AssistanceInformationFailureList;
-static gint ett_lppa_AssistanceInformationFailureList_item;
-static gint ett_lppa_AssistanceInformationMetaData;
-static gint ett_lppa_BitmapsforNPRS;
-static gint ett_lppa_Cause;
-static gint ett_lppa_CriticalityDiagnostics;
-static gint ett_lppa_CriticalityDiagnostics_IE_List;
-static gint ett_lppa_CriticalityDiagnostics_IE_List_item;
-static gint ett_lppa_E_CID_MeasurementResult;
-static gint ett_lppa_ECGI;
-static gint ett_lppa_E_UTRANAccessPointPosition;
-static gint ett_lppa_InterRATMeasurementQuantities;
-static gint ett_lppa_InterRATMeasurementQuantities_Item;
-static gint ett_lppa_InterRATMeasurementResult;
-static gint ett_lppa_InterRATMeasuredResultsValue;
-static gint ett_lppa_MeasurementQuantities;
-static gint ett_lppa_MeasurementQuantities_Item;
-static gint ett_lppa_MeasuredResults;
-static gint ett_lppa_MeasuredResultsValue;
-static gint ett_lppa_MBSFNsubframeConfiguration;
-static gint ett_lppa_MBSFNsubframeConfigurationValue;
-static gint ett_lppa_NR_CGI;
-static gint ett_lppa_NPRSConfiguration;
-static gint ett_lppa_NPRSMutingConfiguration;
-static gint ett_lppa_NPRSSubframePartA;
-static gint ett_lppa_NPRSSubframePartB;
-static gint ett_lppa_OTDOACells;
-static gint ett_lppa_OTDOACells_item;
-static gint ett_lppa_OTDOACell_Information;
-static gint ett_lppa_OTDOACell_Information_Item;
-static gint ett_lppa_PosSIBs;
-static gint ett_lppa_PosSIBs_item;
-static gint ett_lppa_PosSIB_Segments;
-static gint ett_lppa_PosSIB_Segments_item;
-static gint ett_lppa_PRSMutingConfiguration;
-static gint ett_lppa_PRSFrequencyHoppingConfiguration;
-static gint ett_lppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex;
-static gint ett_lppa_RequestedSRSTransmissionCharacteristics;
-static gint ett_lppa_ResultRSRP;
-static gint ett_lppa_ResultRSRP_Item;
-static gint ett_lppa_ResultRSRQ;
-static gint ett_lppa_ResultRSRQ_Item;
-static gint ett_lppa_ResultGERAN;
-static gint ett_lppa_ResultGERAN_Item;
-static gint ett_lppa_ResultUTRAN;
-static gint ett_lppa_ResultUTRAN_Item;
-static gint ett_lppa_T_physCellIDUTRAN;
-static gint ett_lppa_ResultNR;
-static gint ett_lppa_ResultNR_Item;
-static gint ett_lppa_ResultsPerSSB_Index_List;
-static gint ett_lppa_ResultsPerSSB_Index_Item;
-static gint ett_lppa_SRSConfigurationForAllCells;
-static gint ett_lppa_SRSConfigurationForOneCell;
-static gint ett_lppa_Subframeallocation;
-static gint ett_lppa_SystemInformation;
-static gint ett_lppa_SystemInformation_item;
-static gint ett_lppa_TDDConfiguration;
-static gint ett_lppa_ULConfiguration;
-static gint ett_lppa_WLANMeasurementQuantities;
-static gint ett_lppa_WLANMeasurementQuantities_Item;
-static gint ett_lppa_WLANMeasurementResult;
-static gint ett_lppa_WLANMeasurementResult_Item;
-static gint ett_lppa_WLANChannelList;
-static gint ett_lppa_E_CIDMeasurementInitiationRequest;
-static gint ett_lppa_E_CIDMeasurementInitiationResponse;
-static gint ett_lppa_E_CIDMeasurementInitiationFailure;
-static gint ett_lppa_E_CIDMeasurementFailureIndication;
-static gint ett_lppa_E_CIDMeasurementReport;
-static gint ett_lppa_E_CIDMeasurementTerminationCommand;
-static gint ett_lppa_OTDOAInformationRequest;
-static gint ett_lppa_OTDOA_Information_Type;
-static gint ett_lppa_OTDOA_Information_Type_Item;
-static gint ett_lppa_OTDOAInformationResponse;
-static gint ett_lppa_OTDOAInformationFailure;
-static gint ett_lppa_UTDOAInformationRequest;
-static gint ett_lppa_UTDOAInformationResponse;
-static gint ett_lppa_UTDOAInformationFailure;
-static gint ett_lppa_UTDOAInformationUpdate;
-static gint ett_lppa_AssistanceInformationControl;
-static gint ett_lppa_AssistanceInformationFeedback;
-static gint ett_lppa_ErrorIndication;
-static gint ett_lppa_PrivateMessage;
-static gint ett_lppa_LPPA_PDU;
-static gint ett_lppa_InitiatingMessage;
-static gint ett_lppa_SuccessfulOutcome;
-static gint ett_lppa_UnsuccessfulOutcome;
+static int ett_lppa_PrivateIE_ID;
+static int ett_lppa_ProtocolIE_Container;
+static int ett_lppa_ProtocolIE_Field;
+static int ett_lppa_ProtocolExtensionContainer;
+static int ett_lppa_ProtocolExtensionField;
+static int ett_lppa_PrivateIE_Container;
+static int ett_lppa_PrivateIE_Field;
+static int ett_lppa_Add_OTDOACells;
+static int ett_lppa_Add_OTDOACells_item;
+static int ett_lppa_Add_OTDOACell_Information;
+static int ett_lppa_Assistance_Information;
+static int ett_lppa_AssistanceInformationFailureList;
+static int ett_lppa_AssistanceInformationFailureList_item;
+static int ett_lppa_AssistanceInformationMetaData;
+static int ett_lppa_BitmapsforNPRS;
+static int ett_lppa_Cause;
+static int ett_lppa_CriticalityDiagnostics;
+static int ett_lppa_CriticalityDiagnostics_IE_List;
+static int ett_lppa_CriticalityDiagnostics_IE_List_item;
+static int ett_lppa_E_CID_MeasurementResult;
+static int ett_lppa_ECGI;
+static int ett_lppa_E_UTRANAccessPointPosition;
+static int ett_lppa_InterRATMeasurementQuantities;
+static int ett_lppa_InterRATMeasurementQuantities_Item;
+static int ett_lppa_InterRATMeasurementResult;
+static int ett_lppa_InterRATMeasuredResultsValue;
+static int ett_lppa_MeasurementQuantities;
+static int ett_lppa_MeasurementQuantities_Item;
+static int ett_lppa_MeasuredResults;
+static int ett_lppa_MeasuredResultsValue;
+static int ett_lppa_MBSFNsubframeConfiguration;
+static int ett_lppa_MBSFNsubframeConfigurationValue;
+static int ett_lppa_NR_CGI;
+static int ett_lppa_NPRSConfiguration;
+static int ett_lppa_NPRSMutingConfiguration;
+static int ett_lppa_NPRSSubframePartA;
+static int ett_lppa_NPRSSubframePartB;
+static int ett_lppa_OTDOACells;
+static int ett_lppa_OTDOACells_item;
+static int ett_lppa_OTDOACell_Information;
+static int ett_lppa_OTDOACell_Information_Item;
+static int ett_lppa_PosSIBs;
+static int ett_lppa_PosSIBs_item;
+static int ett_lppa_PosSIB_Segments;
+static int ett_lppa_PosSIB_Segments_item;
+static int ett_lppa_PRSMutingConfiguration;
+static int ett_lppa_PRSFrequencyHoppingConfiguration;
+static int ett_lppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex;
+static int ett_lppa_RequestedSRSTransmissionCharacteristics;
+static int ett_lppa_ResultRSRP;
+static int ett_lppa_ResultRSRP_Item;
+static int ett_lppa_ResultRSRQ;
+static int ett_lppa_ResultRSRQ_Item;
+static int ett_lppa_ResultGERAN;
+static int ett_lppa_ResultGERAN_Item;
+static int ett_lppa_ResultUTRAN;
+static int ett_lppa_ResultUTRAN_Item;
+static int ett_lppa_T_physCellIDUTRAN;
+static int ett_lppa_ResultNR;
+static int ett_lppa_ResultNR_Item;
+static int ett_lppa_ResultsPerSSB_Index_List;
+static int ett_lppa_ResultsPerSSB_Index_Item;
+static int ett_lppa_SRSConfigurationForAllCells;
+static int ett_lppa_SRSConfigurationForOneCell;
+static int ett_lppa_Subframeallocation;
+static int ett_lppa_SystemInformation;
+static int ett_lppa_SystemInformation_item;
+static int ett_lppa_TDDConfiguration;
+static int ett_lppa_ULConfiguration;
+static int ett_lppa_WLANMeasurementQuantities;
+static int ett_lppa_WLANMeasurementQuantities_Item;
+static int ett_lppa_WLANMeasurementResult;
+static int ett_lppa_WLANMeasurementResult_Item;
+static int ett_lppa_WLANChannelList;
+static int ett_lppa_E_CIDMeasurementInitiationRequest;
+static int ett_lppa_E_CIDMeasurementInitiationResponse;
+static int ett_lppa_E_CIDMeasurementInitiationFailure;
+static int ett_lppa_E_CIDMeasurementFailureIndication;
+static int ett_lppa_E_CIDMeasurementReport;
+static int ett_lppa_E_CIDMeasurementTerminationCommand;
+static int ett_lppa_OTDOAInformationRequest;
+static int ett_lppa_OTDOA_Information_Type;
+static int ett_lppa_OTDOA_Information_Type_Item;
+static int ett_lppa_OTDOAInformationResponse;
+static int ett_lppa_OTDOAInformationFailure;
+static int ett_lppa_UTDOAInformationRequest;
+static int ett_lppa_UTDOAInformationResponse;
+static int ett_lppa_UTDOAInformationFailure;
+static int ett_lppa_UTDOAInformationUpdate;
+static int ett_lppa_AssistanceInformationControl;
+static int ett_lppa_AssistanceInformationFeedback;
+static int ett_lppa_ErrorIndication;
+static int ett_lppa_PrivateMessage;
+static int ett_lppa_LPPA_PDU;
+static int ett_lppa_InitiatingMessage;
+static int ett_lppa_SuccessfulOutcome;
+static int ett_lppa_UnsuccessfulOutcome;
enum {
INITIATING_MESSAGE,
diff --git a/epan/dissectors/packet-lppe.c b/epan/dissectors/packet-lppe.c
index 063598f94e..49c40fabed 100644
--- a/epan/dissectors/packet-lppe.c
+++ b/epan/dissectors/packet-lppe.c
@@ -1665,643 +1665,643 @@ static int hf_lppe_T_srnMeasurements_rtd;
/* Initialize the subtree pointers */
static gint ett_lppe;
static gint ett_lppe_civicLocation;
-static gint ett_lppe_OMA_LPPe_MessageExtension;
-static gint ett_lppe_OMA_LPPe_LPPeVersion;
-static gint ett_lppe_OMA_LPPe_MessageExtensionBody;
-static gint ett_lppe_OMA_LPPe_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_ProvideCapabilities;
-static gint ett_lppe_OMA_LPPe_RequestAssistanceData;
-static gint ett_lppe_OMA_LPPe_ProvideAssistanceData;
-static gint ett_lppe_OMA_LPPe_RequestLocationInformation;
-static gint ett_lppe_OMA_LPPe_ProvideLocationInformation;
-static gint ett_lppe_OMA_LPPe_Abort;
-static gint ett_lppe_OMA_LPPe_Error;
-static gint ett_lppe_OMA_LPPe_AssistanceContainer_DataSerialNumber;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerID;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerProvideList;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerProvide;
-static gint ett_lppe_T_dataResult;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerData;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerProvideError;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerRequestList;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerRequest;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerCheckOrUpdateReq;
-static gint ett_lppe_OMA_LPPe_CellLocalIdGERAN;
-static gint ett_lppe_OMA_LPPe_CellNonUniqueIDGERAN;
-static gint ett_lppe_OMA_LPPe_CivicLocation;
-static gint ett_lppe_OMA_LPPe_CivicAddressElementList;
-static gint ett_lppe_OMA_LPPe_CivicAddressElement;
-static gint ett_lppe_OMA_LPPe_CivicLocation_pidf_lo;
-static gint ett_lppe_OMA_LPPe_Duration;
-static gint ett_lppe_OMA_LPPe_FixedAccessTypes;
-static gint ett_lppe_OMA_LPPe_HighAccuracy3Dposition;
-static gint ett_lppe_OMA_LPPe_HighAccuracy3Dvelocity;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerID;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainer;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerDataList;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerData;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerRequest;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerRequestList;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerRequestItem;
-static gint ett_lppe_OMA_LPPe_MapDataReference;
-static gint ett_lppe_OMA_LPPe_Orientation;
-static gint ett_lppe_T_eulerAngles;
-static gint ett_lppe_OMA_LPPe_ReferencePoint;
-static gint ett_lppe_T_referencePointGeographicLocation;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_ReferencePointRelationship;
-static gint ett_lppe_OMA_LPPe_MapDataInformation;
-static gint ett_lppe_OMA_LPPe_MapDataReferenceElement;
-static gint ett_lppe_T_mapDataUrl_choice;
-static gint ett_lppe_T_mapProvider;
-static gint ett_lppe_T_mapAssociation;
-static gint ett_lppe_OMA_LPPe_ReferencePointRelationship;
-static gint ett_lppe_OMA_LPPe_ReferencePointUniqueID;
-static gint ett_lppe_OMA_LPPe_RelativeLocation;
-static gint ett_lppe_OMA_LPPe_HorizontalUncertaintyAndConfidence;
-static gint ett_lppe_T_uncShape;
-static gint ett_lppe_T_ellipse;
-static gint ett_lppe_OMA_LPPe_RelativeAltitude;
-static gint ett_lppe_OMA_LPPe_GeodeticRelativeAltitude;
-static gint ett_lppe_OMA_LPPe_GeodeticUncertaintyAndConfidence;
-static gint ett_lppe_OMA_LPPe_CivicRelativeAltitude;
-static gint ett_lppe_OMA_LPPe_CivicUncertaintyAndConfidence;
-static gint ett_lppe_OMA_LPPe_Session_ID;
-static gint ett_lppe_OMA_LPPe_ValidityArea;
-static gint ett_lppe_OMA_LPPe_RleList;
-static gint ett_lppe_OMA_LPPe_ValidityPeriod;
-static gint ett_lppe_OMA_LPPe_VendorOrOperatorAssistanceDataIdentifier;
-static gint ett_lppe_OMA_LPPe_VendorOrOperatorID;
-static gint ett_lppe_OMA_LPPe_NonStandard_VendorOrOperatorID;
-static gint ett_lppe_OMA_LPPe_WirelessAccessTypes;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_ID;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_Type_List;
-static gint ett_lppe_OMA_LPPe_WLANFemtoCoverageArea;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_WLANFemtoCoverageAreaElement;
-static gint ett_lppe_OMA_LPPe_WLANFemtoCoverageAreaElement;
-static gint ett_lppe_T_refPointAndArea;
-static gint ett_lppe_OMA_LPPe_CommonIEsRequestCapabilities;
-static gint ett_lppe_OMA_LPPe_IP_Address_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerSupportReq;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerSupportReq;
-static gint ett_lppe_OMA_LPPe_VendorOrOperatorIDList;
-static gint ett_lppe_OMA_LPPe_RelativeLocationChange_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_HighAccuracyFormatCapabilitiesReq;
-static gint ett_lppe_OMA_LPPe_SegmentedAssistanceData_ReqCapabilities;
-static gint ett_lppe_OMA_LPPe_ReferencePointCapabilitiesReq;
-static gint ett_lppe_SEQUENCE_SIZE_1_128_OF_OMA_LPPe_VendorOrOperatorID;
-static gint ett_lppe_OMA_LPPe_ScheduledLocation_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_AccessCapabilitiesReq;
-static gint ett_lppe_OMA_LPPe_SegmentedLocationInformation_ReqCapabilities;
-static gint ett_lppe_OMA_LPPe_CommonIEsProvideCapabilities;
-static gint ett_lppe_OMA_LPPe_IP_Address_Capabilities;
-static gint ett_lppe_T_iP_Address_support;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerSupport;
-static gint ett_lppe_OMA_LPPe_VendorOrOperatorAssistanceContainerList;
-static gint ett_lppe_OMA_LPPe_AssistanceContainerList;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerSupport;
-static gint ett_lppe_OMA_LPPe_VendorOrOperatorLocationInformationContainerList;
-static gint ett_lppe_OMA_LPPe_LocationInformationContainerList;
-static gint ett_lppe_OMA_LPPe_RelativeLocationChange_Capabilities;
-static gint ett_lppe_OMA_LPPe_HighAccuracyFormatCapabilities;
-static gint ett_lppe_OMA_LPPe_SegmentedAssistanceData_ProvideCapabs;
-static gint ett_lppe_OMA_LPPe_ReferencePointCapabilities;
-static gint ett_lppe_T_relativeLocationReportingSupport;
-static gint ett_lppe_SEQUENCE_SIZE_1_128_OF_OMA_LPPe_ReferencePointProviderSupportElement;
-static gint ett_lppe_OMA_LPPe_ReferencePointProviderSupportElement;
-static gint ett_lppe_T_mapDataSupport;
-static gint ett_lppe_OMA_LPPe_ScheduledLocation_Capabilities;
-static gint ett_lppe_OMA_LPPe_AccessCapabilities;
-static gint ett_lppe_OMA_LPPe_SegmentedLocationInformation_ProvideCapabs;
-static gint ett_lppe_OMA_LPPe_CommonIEsRequestAssistanceData;
-static gint ett_lppe_OMA_LPPe_RequestPeriodicADwithUpdate;
-static gint ett_lppe_OMA_LPPe_SegmentedADResume;
-static gint ett_lppe_OMA_LPPe_ReferencePointAssistanceReq;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_ReferencePointAssistanceReqElement;
-static gint ett_lppe_OMA_LPPe_ReferencePointAssistanceReqElement;
-static gint ett_lppe_OMA_LPPe_CommonIEsProvideAssistanceData;
-static gint ett_lppe_OMA_LPPe_ProvidePeriodicADwithUpdate;
-static gint ett_lppe_OMA_LPPe_SegmentedADTransfer;
-static gint ett_lppe_OMA_LPPe_CommonIEsRequestLocationInformation;
-static gint ett_lppe_OMA_LPPe_IP_Address_Request;
-static gint ett_lppe_OMA_LPPe_RequestPeriodicLocInfoWithUpdate;
-static gint ett_lppe_OMA_LPPe_RelativeLocationChange_Request;
-static gint ett_lppe_OMA_LPPe_LocalPositionRequest;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_ReferencePointUniqueID;
-static gint ett_lppe_OMA_LPPe_ScheduledLocation_Request;
-static gint ett_lppe_OMA_LPPe_AccessTypeRequest;
-static gint ett_lppe_OMA_LPPe_SegmentedLIResume;
-static gint ett_lppe_OMA_LPPe_CivicLocation_Request;
-static gint ett_lppe_OMA_LPPe_CommonIEsProvideLocationInformation;
-static gint ett_lppe_OMA_LPPe_LocalPosition;
-static gint ett_lppe_OMA_LPPe_IP_Address_List;
-static gint ett_lppe_OMA_LPPe_IP_Address;
-static gint ett_lppe_T_local_IP_Address;
-static gint ett_lppe_OMA_LPPe_ProvidePeriodicLocInfowithUpdate;
-static gint ett_lppe_OMA_LPPe_RelativeLocationChangeList;
-static gint ett_lppe_OMA_LPPe_RelativeLocationChange;
-static gint ett_lppe_OMA_LPPe_ScheduledLocation;
-static gint ett_lppe_T_actualWindow;
-static gint ett_lppe_OMA_LPPe_AccessTypes;
-static gint ett_lppe_OMA_LPPe_SegmentedLITransfer;
-static gint ett_lppe_OMA_LPPe_TimeStamp;
-static gint ett_lppe_OMA_LPPe_LocationSource;
-static gint ett_lppe_OMA_LPPe_CommonIEsAbort;
-static gint ett_lppe_OMA_LPPe_CommonIEsError;
-static gint ett_lppe_OMA_LPPe_AGNSS_ProvideAssistanceData;
-static gint ett_lppe_OMA_LPPe_AGNSS_CommonAssistData;
-static gint ett_lppe_OMA_LPPe_AGNSS_GenericAssistData;
-static gint ett_lppe_OMA_LPPe_AGNSS_GenericAssistDataElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_IonosphericModel;
-static gint ett_lppe_T_staticModels;
-static gint ett_lppe_T_waIono;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalKlobucharModelList;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalKlobucharModelElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_LocalKlobucharModel;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalKlobucharModel;
-static gint ett_lppe_OMA_LPPe_AGNSS_IonoStormIndication;
-static gint ett_lppe_OMA_LPPe_AGNSS_StormList;
-static gint ett_lppe_OMA_LPPe_AGNSS_StormElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_RleListIono;
-static gint ett_lppe_OMA_LPPe_AGNSS_RleIonoElement;
-static gint ett_lppe_T_ionoIndex;
-static gint ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfaceControlParametersProvide;
-static gint ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfaceCommon;
-static gint ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfacePerSVlist;
-static gint ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfacePerSVelement;
-static gint ett_lppe_OMA_LPPe_AGNSS_TroposphereModel;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalTroposphereDelayList;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalTroposphereDelayAreaElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_LocalTroposphereDelayTimeElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalTroposphereDelayTimeElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceParametersList;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceParametersAreaElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_LocalSurfaceParametersTimeElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceParametersTimeElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_MappingFunctionParameters;
-static gint ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceList;
-static gint ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceAreaElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_AGNSS_PressureAssistanceElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_PressureAssistanceElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_SolarRadiation;
-static gint ett_lppe_OMA_LPPe_AGNSS_MechanicsForAllSVs;
-static gint ett_lppe_OMA_LPPe_AGNSS_MechanicsElement;
-static gint ett_lppe_T_svInfo;
-static gint ett_lppe_OMA_LPPe_AGNSS_PCOelement;
-static gint ett_lppe_OMA_LPPe_AGNSS_DCBsForAllSVs;
-static gint ett_lppe_OMA_LPPe_AGNSS_DCBlistElement;
-static gint ett_lppe_T_reference;
-static gint ett_lppe_OMA_LPPe_AGNSS_DCBlist;
-static gint ett_lppe_OMA_LPPe_AGNSS_DCBelement;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModelDegradationModelList;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModelDegradationModelElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_ClockModelDegradationModel;
-static gint ett_lppe_OMA_LPPe_AGNSS_OrbitModelDegradationModel;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPassistCommonProvide;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPprovideCommonParameters;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPprovideControlParameters;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPsupportArea;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_CCPsignalSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPsignalSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPreferenceStationList;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPreferenceStationElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPassistGenericProvide;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPassistGenericProvideElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_CCPperSignalElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPperSignalElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_AGNSS_CCPperSVelement;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPperSVelement;
-static gint ett_lppe_OMA_LPPe_AGNSS_CodePhaseError;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModelList;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModel_CoordinateBased;
-static gint ett_lppe_T_fixedInterval;
-static gint ett_lppe_T_bases;
-static gint ett_lppe_SEQUENCE_SIZE_1_97_OF_OMA_LPPe_AGNSS_NavModel_CoordinateBasedElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModel_CoordinateBasedElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_AGNSS_NavModel_PVTelement;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModel_PVTelement;
-static gint ett_lppe_T_rateRecord;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModel_BigNumber;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModel_STDmatrix;
-static gint ett_lppe_OMA_LPPe_AGNSS_RequestAssistanceData;
-static gint ett_lppe_OMA_LPPe_AGNSS_CommonAssistanceDataReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_GenericAssistanceDataReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_GenericAssistDataReqElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_IonosphericModelReq;
-static gint ett_lppe_T_staticModels_01;
-static gint ett_lppe_T_ionoreq;
-static gint ett_lppe_T_periodicModels;
-static gint ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfaceControlParametersRequest;
-static gint ett_lppe_OMA_LPPe_AGNSS_TroposphereModelReq;
-static gint ett_lppe_T_troposphereModelReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_SolarRadiationReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_WaIonoSurfaceRequest;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModelDegradationModelReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_DCBreq;
-static gint ett_lppe_T_reference_01;
-static gint ett_lppe_OMA_LPPe_AGNSS_MechanicsReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPrequestControlParameters;
-static gint ett_lppe_T_ccpCommonRequest;
-static gint ett_lppe_T_refStation;
-static gint ett_lppe_T_posBasedReferenceStationRequest;
-static gint ett_lppe_OMA_LPPe_AGNSS_ReferenceStationIDlist;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPassistGenericReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavigationModelReq;
-static gint ett_lppe_T_navModelID_PrefList;
-static gint ett_lppe_OMA_LPPe_AGNSS_ProvideLocationInformation;
-static gint ett_lppe_OMA_LPPe_AGNSS_HAgnssProvide;
-static gint ett_lppe_T_controlParameters;
-static gint ett_lppe_T_measurements;
-static gint ett_lppe_T_localPressure;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_AGNSS_HAgnssMeasurementElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_HAgnssMeasurementElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_HAgnssPerSignalElement;
-static gint ett_lppe_OMA_LPPe_HAgnssPerSignalElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_HAgnssPerSVelement;
-static gint ett_lppe_OMA_LPPe_HAgnssPerSVelement;
-static gint ett_lppe_OMA_LPPe_AGNSS_IonosphereMeasurements;
-static gint ett_lppe_OMA_LPPe_AGNSS_TECPerSV;
-static gint ett_lppe_OMA_LPPe_AGNSS_TECPerSVElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_TECAtZenith;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceMeasurements;
-static gint ett_lppe_T_temperatureMeasurement;
-static gint ett_lppe_OMA_LPPe_AGNSS_RequestLocationInformation;
-static gint ett_lppe_T_ionosphereMeasurementsReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_PositioningInstructions;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceMeasurementReq;
-static gint ett_lppe_OMA_LPPe_AGNSS_HAgnssRequestControlParameters;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_AGNSS_HAgnssSignalReqElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_HAgnssSignalReqElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_ProvideCapabilities;
-static gint ett_lppe_OMA_LPPe_AGNSS_AssistanceDataSupportList;
-static gint ett_lppe_OMA_LPPe_AGNSS_EnvironmentObservationSupportList;
-static gint ett_lppe_T_ionosphereMeasurementSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_CommonAssistanceDataSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_IonosphericModelSupport;
-static gint ett_lppe_T_ionoModel;
-static gint ett_lppe_OMA_LPPe_AGNSS_TroposphereModelSupport;
-static gint ett_lppe_T_tropoModel;
-static gint ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_SolarRadiationSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPsupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_GenericAssistanceDataSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_GenericAssistDataSupportElement;
-static gint ett_lppe_OMA_LPPe_AGNSS_MechanicsSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_DCBsupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModelAccuracyModelDegradationSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_NavModelSupport;
-static gint ett_lppe_T_navModelSupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_HAgnssSupport;
-static gint ett_lppe_T_modeSupport;
-static gint ett_lppe_T_haGNSSantennaInformationSupport;
-static gint ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_HAgnssPerGNSSsupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_HAgnssPerGNSSsupport;
-static gint ett_lppe_OMA_LPPe_AGNSS_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_AGNSS_Error;
-static gint ett_lppe_OMA_LPPe_AGNSS_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_AGNSS_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_AGNSS_CCPreferenceStationID;
-static gint ett_lppe_OMA_LPPe_AGNSS_AntennaDescription;
-static gint ett_lppe_T_antennaDescription;
-static gint ett_lppe_OMA_LPPe_AGNSS_Abort;
-static gint ett_lppe_T_targetDeviceAbortCauses;
-static gint ett_lppe_OMA_LPPe_OTDOA_ProvideAssistanceData;
-static gint ett_lppe_OMA_LPPe_OTDOA_ReferenceCellInfo;
-static gint ett_lppe_OMA_LPPe_OTDOA_PositionCalculationInfoRef;
-static gint ett_lppe_T_cellLocation;
-static gint ett_lppe_T_femtoCellInfo;
-static gint ett_lppe_OMA_LPPe_OTDOA_NeighbourCellInfoList;
-static gint ett_lppe_OMA_LPPe_OTDOA_NeighbourFreqCellInfoList;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTEeNBs_OF_OMA_LPPe_OTDOA_NeighbourCellInfoElement_eNB;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTEHeNBs_OF_OMA_LPPe_OTDOA_NeighbourCellInfoElement_HeNB;
-static gint ett_lppe_OMA_LPPe_OTDOA_NeighbourCellInfoElement_eNB;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTEMacroCells_OF_OMA_LPPe_OTDOA_CellData;
-static gint ett_lppe_OMA_LPPe_OTDOA_NeighbourCellInfoElement_HeNB;
-static gint ett_lppe_OMA_LPPe_OTDOA_CellData;
-static gint ett_lppe_T_rtdInfo;
-static gint ett_lppe_OMA_LPPe_OTDOA_RTDquality;
-static gint ett_lppe_OMA_LPPe_OTDOA_RequestAssistanceData;
-static gint ett_lppe_T_lteCell;
-static gint ett_lppe_T_requestedCells;
-static gint ett_lppe_OMA_LPPe_OTDOA_ProvideLocationInformation;
-static gint ett_lppe_OMA_LPPe_OTDOA_LocationInformation;
-static gint ett_lppe_OMA_LPPe_OTDOA_RequestLocationInformation;
-static gint ett_lppe_OMA_LPPe_OTDOA_ProvideCapabilities;
-static gint ett_lppe_T_eNodeB_AD_sup;
-static gint ett_lppe_T_home_eNodeB_AD_sup;
-static gint ett_lppe_OMA_LPPe_OTDOA_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_OTDOA_Error;
-static gint ett_lppe_OMA_LPPe_OTDOA_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_OTDOA_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_EOTD_ProvideAssistanceData;
-static gint ett_lppe_OMA_LPPe_EOTD_ReferenceBTSForAssistance;
-static gint ett_lppe_T_btsPosition;
-static gint ett_lppe_OMA_LPPe_EOTD_MsrAssistDataList;
-static gint ett_lppe_OMA_LPPe_EOTD_MsrAssistBTS;
-static gint ett_lppe_OMA_LPPe_EOTD_SystemInfoAssistDataList;
-static gint ett_lppe_OMA_LPPe_EOTD_SystemInfoAssistBTS;
-static gint ett_lppe_OMA_LPPe_EOTD_AssistBTSData;
-static gint ett_lppe_OMA_LPPe_EOTD_CalcAssistanceBTS;
-static gint ett_lppe_OMA_LPPe_EOTD_relativePos;
-static gint ett_lppe_OMA_LPPe_EOTD_RequestAssistanceData;
-static gint ett_lppe_T_eotdAssistanceReq;
-static gint ett_lppe_OMA_LPPe_EOTD_ProvideLocationInformation;
-static gint ett_lppe_OMA_LPPe_EOTD_MsrElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_15_OF_OMA_LPPe_EOTD_MeasurementWithID;
-static gint ett_lppe_OMA_LPPe_EOTD_TOA_MeasurementsOfRef;
-static gint ett_lppe_OMA_LPPe_EOTD_MeasurementWithID;
-static gint ett_lppe_OMA_LPPe_EOTD_NeighborIdentity;
-static gint ett_lppe_OMA_LPPe_EOTD_EOTDQuality;
-static gint ett_lppe_OMA_LPPe_EOTD_MultiFrameCarrier;
-static gint ett_lppe_OMA_LPPe_EOTD_RequestLocationInformation;
-static gint ett_lppe_OMA_LPPe_EOTD_ProvideCapabilities;
-static gint ett_lppe_T_eotdSupport;
-static gint ett_lppe_OMA_LPPe_EOTD_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_EOTD_Error;
-static gint ett_lppe_OMA_LPPe_EOTD_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_EOTD_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_EOTD_ExpectedOTD;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_ProvideAssistanceData;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_ReferenceCellInfo;
-static gint ett_lppe_T_modeSpecificInfo;
-static gint ett_lppe_T_fdd;
-static gint ett_lppe_T_tdd;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_RefPosAssist;
-static gint ett_lppe_T_cellPosition;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborCellList;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborCellInfo;
-static gint ett_lppe_T_modeSpecificInfo_01;
-static gint ett_lppe_T_fdd_01;
-static gint ett_lppe_T_tdd_01;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_SFN_SFN_RelTimeDifference1;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_PositioningAssistance;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_IPDL_Parameters;
-static gint ett_lppe_T_modeSpecificInfo_02;
-static gint ett_lppe_T_fdd_02;
-static gint ett_lppe_T_tdd_02;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_BurstModeParameters;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_RequestAssistanceData;
-static gint ett_lppe_T_otdoaUtraAssistanceReq;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_ProvideLocationInformation;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_Measurement;
-static gint ett_lppe_T_modeSpecificInfoMeas;
-static gint ett_lppe_T_fdd_03;
-static gint ett_lppe_T_tdd_03;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_UE_RX_TX_TimeDifferenceType2Info;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborList;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_Neighbor;
-static gint ett_lppe_T_modeSpecificInfo_03;
-static gint ett_lppe_T_fdd_04;
-static gint ett_lppe_T_tdd_04;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborQuality;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_Quality;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_TimeStampData;
-static gint ett_lppe_T_nonUniqueCellID;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_RequestLocationInformation;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_ProvideCapabilities;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_Error;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_PrimaryCPICH_Info;
-static gint ett_lppe_OMA_LPPe_OTDOA_UTRA_CellAndChannelIdentity;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_ProvideAssistanceData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTENetworks_OF_OMA_LPPe_ECID_LTE_NetworkData;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_NetworkData;
-static gint ett_lppe_T_plmn_Identity;
-static gint ett_lppe_T_mcc;
-static gint ett_lppe_T_mnc;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTEeNBs_OF_OMA_LPPe_ECID_LTE_eNodeBData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTEHeNBs_OF_OMA_LPPe_ECID_LTE_HeNBData;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_eNodeBData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTEMacroCells_OF_OMA_LPPe_ECID_LTE_CellData;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_HeNBData;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_CellData;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_RequestAssistanceData;
-static gint ett_lppe_T_eNBrequestedAD;
-static gint ett_lppe_T_heNBrequestedAD;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_ProvideLocationInformation;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxLTEECIDSize_OF_OMA_LPPe_ECID_LTE_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_LocationInformation;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_RequestLocationInformation;
-static gint ett_lppe_T_requestedMeasurements;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_ProvideCapabilities;
-static gint ett_lppe_T_ecid_lte_MeasSupported;
-static gint ett_lppe_T_ecid_lte_eNodeB_ADSupported;
-static gint ett_lppe_T_ecid_utra_HeNB_ADSupported;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_Error;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_ECID_LTE_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_ProvideAssistanceData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxGSMNetworks_OF_OMA_LPPe_ECID_GSM_NetworkData;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_NetworkData;
-static gint ett_lppe_T_plmn_Identity_01;
-static gint ett_lppe_T_mcc_01;
-static gint ett_lppe_T_mnc_01;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxGSMBaseStations_OF_OMA_LPPe_ECID_GSM_BaseStationData;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_BaseStationData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxGSMCells_OF_OMA_LPPe_ECID_GSM_CellData;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_CellData;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_RequestAssistanceData;
-static gint ett_lppe_T_requestedAD;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_ProvideLocationInformation;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxGSMECIDSize_OF_OMA_LPPe_ECID_GSM_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_LocationInformation;
-static gint ett_lppe_OMA_LPPe_NMR_GERAN;
-static gint ett_lppe_OMA_LPPe_NMR_GERAN_item;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_RequestLocationInformation;
-static gint ett_lppe_T_requestedMeasurements_01;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_ProvideCapabilities;
-static gint ett_lppe_T_ecid_gsm_MeasSupported;
-static gint ett_lppe_T_ecid_gsm_ADSupported;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_Error;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_ECID_GSM_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_ProvideAssistanceData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxUTRANetworks_OF_OMA_LPPe_ECID_UTRA_NetworkData;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_NetworkData;
-static gint ett_lppe_T_plmn_Identity_02;
-static gint ett_lppe_T_mcc_02;
-static gint ett_lppe_T_mnc_02;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxUTRAnodeBs_OF_OMA_LPPe_ECID_UTRA_NodeBData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxUTRAHNBs_OF_OMA_LPPe_ECID_UTRA_HNBData;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_NodeBData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxUTRAMacroCells_OF_OMA_LPPe_ECID_UTRA_CellData;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_HNBData;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_CellData;
-static gint ett_lppe_T_modeSpecificInfo_04;
-static gint ett_lppe_T_fdd_05;
-static gint ett_lppe_T_tdd_05;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_RequestAssistanceData;
-static gint ett_lppe_T_nBrequestedAD;
-static gint ett_lppe_T_hNBrequestedAD;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_ProvideLocationInformation;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxECIDUTRASize_OF_OMA_LPPe_ECID_UTRA_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_LocationInformation;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_UTRATimingAdvance;
-static gint ett_lppe_OMA_LPPe_UTRA_FrequencyInfo;
-static gint ett_lppe_OMA_LPPe_UTRA_ModeSpecificInfo;
-static gint ett_lppe_OMA_LPPe_UTRA_FrequencyInfoFDD;
-static gint ett_lppe_OMA_LPPe_UTRA_FrequencyInfoTDD;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_MeasuredResultsList;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_MeasuredResults;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_CellMeasuredResultsList;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_CellMeasuredResults;
-static gint ett_lppe_T_modeSpecificInfo_05;
-static gint ett_lppe_T_fdd_06;
-static gint ett_lppe_T_tdd_06;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_RequestLocationInformation;
-static gint ett_lppe_T_requestedMeasurements_02;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_ProvideCapabilities;
-static gint ett_lppe_T_ecid_utra_MeasSupported;
-static gint ett_lppe_T_ecid_utra_nodeB_ADSupported;
-static gint ett_lppe_T_ecid_utra_HNB_ADSupported;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_Error;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_ECID_UTRA_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_ProvideAssistanceData;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxWLANDataSets_OF_OMA_LPPe_WLAN_DataSet;
-static gint ett_lppe_OMA_LPPe_WLAN_DataSet;
-static gint ett_lppe_T_plmn_Identity_03;
-static gint ett_lppe_T_mcc_03;
-static gint ett_lppe_T_mnc_03;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxWLANAPs_OF_OMA_LPPe_WLAN_AP_Data;
-static gint ett_lppe_Supported_Channels_11a;
-static gint ett_lppe_Supported_Channels_11bg;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_Data;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxWLANTypes_OF_OMA_LPPe_WLAN_AP_Type_Data;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_Type_Data;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_RequestAssistanceData;
-static gint ett_lppe_T_requestedAD_01;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_ProvideLocationInformation;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxWLANAPSize_OF_OMA_LPPe_WLAN_AP_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_LocationInformation;
-static gint ett_lppe_OMA_LPPe_WLAN_RTD;
-static gint ett_lppe_OMA_LPPe_WLAN_ReportedLocation;
-static gint ett_lppe_OMA_LPPe_WLAN_LocationDataLCI;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_RequestLocationInformation;
-static gint ett_lppe_T_requestedMeasurements_03;
-static gint ett_lppe_T_additionalRequestedMeasurements;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_ProvideCapabilities;
-static gint ett_lppe_T_wlan_ecid_MeasSupported;
-static gint ett_lppe_T_wlan_ap_ADSupported;
-static gint ett_lppe_T_additional_wlan_ecid_MeasSupported;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_Capability;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_Error;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_WLAN_AP_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_ProvideLocationInformation;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxWiMaxECIDSize_OF_OMA_LPPe_ECID_WiMax_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_LocationInformationList;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_LocationInformation;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_WimaxBsID;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_WimaxRTD;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_WimaxNMRList;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_WimaxNMR;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_RequestLocationInformation;
-static gint ett_lppe_T_requestedMeasurements_04;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_ProvideCapabilities;
-static gint ett_lppe_T_ecid_wimax_MeasSupported;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_Error;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_ECID_WiMax_TargetDeviceErrorCauses;
-static gint ett_lppe_OMA_LPPe_Sensor_ProvideAssistanceData;
-static gint ett_lppe_OMA_LPPe_AtmosphericPressureAD;
-static gint ett_lppe_T_period;
-static gint ett_lppe_T_area;
-static gint ett_lppe_OMA_LPPe_PressureValidityArea;
-static gint ett_lppe_OMA_LPPe_Sensor_RequestAssistanceData;
-static gint ett_lppe_OMA_LPPe_PressureSensorAD;
-static gint ett_lppe_OMA_LPPe_Sensor_ProvideLocationInformation;
-static gint ett_lppe_OMA_LPPe_Sensor_MotionStateList;
-static gint ett_lppe_OMA_LPPe_Sensor_MotionStateElement;
-static gint ett_lppe_T_secondaryMotionState;
-static gint ett_lppe_OMA_LPPe_AtmosphericPressure;
-static gint ett_lppe_PressureStats;
-static gint ett_lppe_CalibrationPoints;
-static gint ett_lppe_CalibrationPoints_item;
-static gint ett_lppe_OMA_LPPe_PressureMeasurement;
-static gint ett_lppe_T_uncertainty;
-static gint ett_lppe_OMA_LPPe_Sensor_RequestLocationInformation;
-static gint ett_lppe_OMA_LPPe_Sensor_MotionStateRequest;
-static gint ett_lppe_OMA_LPPe_AtmosphericPressureRequest;
-static gint ett_lppe_OMA_LPPe_Sensor_ProvideCapabilities;
-static gint ett_lppe_OMA_LPPe_Sensor_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_Sensor_Error;
-static gint ett_lppe_OMA_LPPe_Sensor_TargetError;
-static gint ett_lppe_OMA_LPPe_SRN_ProvideAssistanceData;
-static gint ett_lppe_T_srnGroup;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroupList;
-static gint ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_SRN_SRNgroup;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroup;
-static gint ett_lppe_SEQUENCE_SIZE_1_1024_OF_OMA_LPPe_SRN_SRNinfo;
-static gint ett_lppe_OMA_LPPe_SRN_SRNinfo;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateResponse;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateResponseElement;
-static gint ett_lppe_OMA_LPPe_SRN_AntennaPattern;
-static gint ett_lppe_OMA_LPPe_SRN_AntennaPatternElement;
-static gint ett_lppe_T_identification;
-static gint ett_lppe_T_antennaData;
-static gint ett_lppe_OMA_LPPe_SRN_AntennaPatternForChannels;
-static gint ett_lppe_T_evenGrid;
-static gint ett_lppe_SEQUENCE_SIZE_1_maxChannels_OF_OMA_LPPe_SRN_ChannelResponse;
-static gint ett_lppe_OMA_LPPe_SRN_ChannelResponse;
-static gint ett_lppe_SEQUENCE_SIZE_7_901_OF_OMA_LPPe_SRN_ResponseInElevation;
-static gint ett_lppe_OMA_LPPe_SRN_ResponseInElevation;
-static gint ett_lppe_SEQUENCE_SIZE_18_3601_OF_OMA_LPPe_SRN_ResponseInAzimuth;
-static gint ett_lppe_OMA_LPPe_SRN_ResponseInAzimuth;
-static gint ett_lppe_OMA_LPPe_ComplexNumber;
-static gint ett_lppe_OMA_LPPe_SRN_RequestAssistanceData;
-static gint ett_lppe_T_srnGroup_01;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroupRequest;
-static gint ett_lppe_OMA_LPPe_SRN_SRNProvideList;
-static gint ett_lppe_SEQUENCE_SIZE_1_256_OF_OMA_LPPe_SRN_SRNgroupUniqueID;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_Category;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateRequest;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateRequestElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_1024_OF_OMA_LPPe_SRN_SRNid;
-static gint ett_lppe_OMA_LPPe_SRN_AntennaPatternRequest;
-static gint ett_lppe_OMA_LPPe_SRN_AntennaPatternRequestElement;
-static gint ett_lppe_T_antennaPatternID;
-static gint ett_lppe_OMA_LPPe_SRN_ProvideLocationInformation;
-static gint ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_SRN_MeasurementElement;
-static gint ett_lppe_OMA_LPPe_SRN_MeasurementElement;
-static gint ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_SRN_srnMeasurementElement;
-static gint ett_lppe_OMA_LPPe_SRN_srnMeasurementElement;
-static gint ett_lppe_OMA_LPPe_SRN_RequestLocationInformation;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_ReqLocInfo_Category;
-static gint ett_lppe_OMA_LPPe_SRN_ReqLocInfo_Category;
-static gint ett_lppe_OMA_LPPe_SRN_ProvideCapabilities;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_ProvideCapabilitiesElement;
-static gint ett_lppe_OMA_LPPe_SRN_ProvideCapabilitiesElement;
-static gint ett_lppe_T_supportedAssistanceData;
-static gint ett_lppe_OMA_LPPe_SRN_RequestCapabilities;
-static gint ett_lppe_OMA_LPPe_SRN_Error;
-static gint ett_lppe_OMA_LPPe_SRN_LocationServerErrorCauses;
-static gint ett_lppe_OMA_LPPe_SRN_TargetDeviceErrorCauses;
-static gint ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_TargetDeviceError;
-static gint ett_lppe_OMA_LPPe_SRN_TargetDeviceError;
-static gint ett_lppe_OMA_LPPe_SRN_SRNgroupUniqueID;
-static gint ett_lppe_OMA_LPPe_SRN_SRNtype;
-static gint ett_lppe_T_srnAntennaInfo;
-static gint ett_lppe_OMA_LPPe_SRN_Category;
-static gint ett_lppe_T_srnVendorInformation;
-static gint ett_lppe_OMA_LPPe_SRN_SRNid;
-static gint ett_lppe_T_srn_id;
-static gint ett_lppe_T_nfc;
-static gint ett_lppe_T_mobileCode;
-static gint ett_lppe_OMA_LPPe_SRN_Technologies;
-static gint ett_lppe_OMA_LPPe_SRN_MeasurementMask;
-static gint ett_lppe_T_srnMeasurements;
+static int ett_lppe_OMA_LPPe_MessageExtension;
+static int ett_lppe_OMA_LPPe_LPPeVersion;
+static int ett_lppe_OMA_LPPe_MessageExtensionBody;
+static int ett_lppe_OMA_LPPe_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_ProvideCapabilities;
+static int ett_lppe_OMA_LPPe_RequestAssistanceData;
+static int ett_lppe_OMA_LPPe_ProvideAssistanceData;
+static int ett_lppe_OMA_LPPe_RequestLocationInformation;
+static int ett_lppe_OMA_LPPe_ProvideLocationInformation;
+static int ett_lppe_OMA_LPPe_Abort;
+static int ett_lppe_OMA_LPPe_Error;
+static int ett_lppe_OMA_LPPe_AssistanceContainer_DataSerialNumber;
+static int ett_lppe_OMA_LPPe_AssistanceContainerID;
+static int ett_lppe_OMA_LPPe_AssistanceContainerProvideList;
+static int ett_lppe_OMA_LPPe_AssistanceContainerProvide;
+static int ett_lppe_T_dataResult;
+static int ett_lppe_OMA_LPPe_AssistanceContainerData;
+static int ett_lppe_OMA_LPPe_AssistanceContainerProvideError;
+static int ett_lppe_OMA_LPPe_AssistanceContainerRequestList;
+static int ett_lppe_OMA_LPPe_AssistanceContainerRequest;
+static int ett_lppe_OMA_LPPe_AssistanceContainerCheckOrUpdateReq;
+static int ett_lppe_OMA_LPPe_CellLocalIdGERAN;
+static int ett_lppe_OMA_LPPe_CellNonUniqueIDGERAN;
+static int ett_lppe_OMA_LPPe_CivicLocation;
+static int ett_lppe_OMA_LPPe_CivicAddressElementList;
+static int ett_lppe_OMA_LPPe_CivicAddressElement;
+static int ett_lppe_OMA_LPPe_CivicLocation_pidf_lo;
+static int ett_lppe_OMA_LPPe_Duration;
+static int ett_lppe_OMA_LPPe_FixedAccessTypes;
+static int ett_lppe_OMA_LPPe_HighAccuracy3Dposition;
+static int ett_lppe_OMA_LPPe_HighAccuracy3Dvelocity;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerID;
+static int ett_lppe_OMA_LPPe_LocationInformationContainer;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerDataList;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerData;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerRequest;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerRequestList;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerRequestItem;
+static int ett_lppe_OMA_LPPe_MapDataReference;
+static int ett_lppe_OMA_LPPe_Orientation;
+static int ett_lppe_T_eulerAngles;
+static int ett_lppe_OMA_LPPe_ReferencePoint;
+static int ett_lppe_T_referencePointGeographicLocation;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_ReferencePointRelationship;
+static int ett_lppe_OMA_LPPe_MapDataInformation;
+static int ett_lppe_OMA_LPPe_MapDataReferenceElement;
+static int ett_lppe_T_mapDataUrl_choice;
+static int ett_lppe_T_mapProvider;
+static int ett_lppe_T_mapAssociation;
+static int ett_lppe_OMA_LPPe_ReferencePointRelationship;
+static int ett_lppe_OMA_LPPe_ReferencePointUniqueID;
+static int ett_lppe_OMA_LPPe_RelativeLocation;
+static int ett_lppe_OMA_LPPe_HorizontalUncertaintyAndConfidence;
+static int ett_lppe_T_uncShape;
+static int ett_lppe_T_ellipse;
+static int ett_lppe_OMA_LPPe_RelativeAltitude;
+static int ett_lppe_OMA_LPPe_GeodeticRelativeAltitude;
+static int ett_lppe_OMA_LPPe_GeodeticUncertaintyAndConfidence;
+static int ett_lppe_OMA_LPPe_CivicRelativeAltitude;
+static int ett_lppe_OMA_LPPe_CivicUncertaintyAndConfidence;
+static int ett_lppe_OMA_LPPe_Session_ID;
+static int ett_lppe_OMA_LPPe_ValidityArea;
+static int ett_lppe_OMA_LPPe_RleList;
+static int ett_lppe_OMA_LPPe_ValidityPeriod;
+static int ett_lppe_OMA_LPPe_VendorOrOperatorAssistanceDataIdentifier;
+static int ett_lppe_OMA_LPPe_VendorOrOperatorID;
+static int ett_lppe_OMA_LPPe_NonStandard_VendorOrOperatorID;
+static int ett_lppe_OMA_LPPe_WirelessAccessTypes;
+static int ett_lppe_OMA_LPPe_WLAN_AP_ID;
+static int ett_lppe_OMA_LPPe_WLAN_AP_Type_List;
+static int ett_lppe_OMA_LPPe_WLANFemtoCoverageArea;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_WLANFemtoCoverageAreaElement;
+static int ett_lppe_OMA_LPPe_WLANFemtoCoverageAreaElement;
+static int ett_lppe_T_refPointAndArea;
+static int ett_lppe_OMA_LPPe_CommonIEsRequestCapabilities;
+static int ett_lppe_OMA_LPPe_IP_Address_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_AssistanceContainerSupportReq;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerSupportReq;
+static int ett_lppe_OMA_LPPe_VendorOrOperatorIDList;
+static int ett_lppe_OMA_LPPe_RelativeLocationChange_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_HighAccuracyFormatCapabilitiesReq;
+static int ett_lppe_OMA_LPPe_SegmentedAssistanceData_ReqCapabilities;
+static int ett_lppe_OMA_LPPe_ReferencePointCapabilitiesReq;
+static int ett_lppe_SEQUENCE_SIZE_1_128_OF_OMA_LPPe_VendorOrOperatorID;
+static int ett_lppe_OMA_LPPe_ScheduledLocation_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_AccessCapabilitiesReq;
+static int ett_lppe_OMA_LPPe_SegmentedLocationInformation_ReqCapabilities;
+static int ett_lppe_OMA_LPPe_CommonIEsProvideCapabilities;
+static int ett_lppe_OMA_LPPe_IP_Address_Capabilities;
+static int ett_lppe_T_iP_Address_support;
+static int ett_lppe_OMA_LPPe_AssistanceContainerSupport;
+static int ett_lppe_OMA_LPPe_VendorOrOperatorAssistanceContainerList;
+static int ett_lppe_OMA_LPPe_AssistanceContainerList;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerSupport;
+static int ett_lppe_OMA_LPPe_VendorOrOperatorLocationInformationContainerList;
+static int ett_lppe_OMA_LPPe_LocationInformationContainerList;
+static int ett_lppe_OMA_LPPe_RelativeLocationChange_Capabilities;
+static int ett_lppe_OMA_LPPe_HighAccuracyFormatCapabilities;
+static int ett_lppe_OMA_LPPe_SegmentedAssistanceData_ProvideCapabs;
+static int ett_lppe_OMA_LPPe_ReferencePointCapabilities;
+static int ett_lppe_T_relativeLocationReportingSupport;
+static int ett_lppe_SEQUENCE_SIZE_1_128_OF_OMA_LPPe_ReferencePointProviderSupportElement;
+static int ett_lppe_OMA_LPPe_ReferencePointProviderSupportElement;
+static int ett_lppe_T_mapDataSupport;
+static int ett_lppe_OMA_LPPe_ScheduledLocation_Capabilities;
+static int ett_lppe_OMA_LPPe_AccessCapabilities;
+static int ett_lppe_OMA_LPPe_SegmentedLocationInformation_ProvideCapabs;
+static int ett_lppe_OMA_LPPe_CommonIEsRequestAssistanceData;
+static int ett_lppe_OMA_LPPe_RequestPeriodicADwithUpdate;
+static int ett_lppe_OMA_LPPe_SegmentedADResume;
+static int ett_lppe_OMA_LPPe_ReferencePointAssistanceReq;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_ReferencePointAssistanceReqElement;
+static int ett_lppe_OMA_LPPe_ReferencePointAssistanceReqElement;
+static int ett_lppe_OMA_LPPe_CommonIEsProvideAssistanceData;
+static int ett_lppe_OMA_LPPe_ProvidePeriodicADwithUpdate;
+static int ett_lppe_OMA_LPPe_SegmentedADTransfer;
+static int ett_lppe_OMA_LPPe_CommonIEsRequestLocationInformation;
+static int ett_lppe_OMA_LPPe_IP_Address_Request;
+static int ett_lppe_OMA_LPPe_RequestPeriodicLocInfoWithUpdate;
+static int ett_lppe_OMA_LPPe_RelativeLocationChange_Request;
+static int ett_lppe_OMA_LPPe_LocalPositionRequest;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_ReferencePointUniqueID;
+static int ett_lppe_OMA_LPPe_ScheduledLocation_Request;
+static int ett_lppe_OMA_LPPe_AccessTypeRequest;
+static int ett_lppe_OMA_LPPe_SegmentedLIResume;
+static int ett_lppe_OMA_LPPe_CivicLocation_Request;
+static int ett_lppe_OMA_LPPe_CommonIEsProvideLocationInformation;
+static int ett_lppe_OMA_LPPe_LocalPosition;
+static int ett_lppe_OMA_LPPe_IP_Address_List;
+static int ett_lppe_OMA_LPPe_IP_Address;
+static int ett_lppe_T_local_IP_Address;
+static int ett_lppe_OMA_LPPe_ProvidePeriodicLocInfowithUpdate;
+static int ett_lppe_OMA_LPPe_RelativeLocationChangeList;
+static int ett_lppe_OMA_LPPe_RelativeLocationChange;
+static int ett_lppe_OMA_LPPe_ScheduledLocation;
+static int ett_lppe_T_actualWindow;
+static int ett_lppe_OMA_LPPe_AccessTypes;
+static int ett_lppe_OMA_LPPe_SegmentedLITransfer;
+static int ett_lppe_OMA_LPPe_TimeStamp;
+static int ett_lppe_OMA_LPPe_LocationSource;
+static int ett_lppe_OMA_LPPe_CommonIEsAbort;
+static int ett_lppe_OMA_LPPe_CommonIEsError;
+static int ett_lppe_OMA_LPPe_AGNSS_ProvideAssistanceData;
+static int ett_lppe_OMA_LPPe_AGNSS_CommonAssistData;
+static int ett_lppe_OMA_LPPe_AGNSS_GenericAssistData;
+static int ett_lppe_OMA_LPPe_AGNSS_GenericAssistDataElement;
+static int ett_lppe_OMA_LPPe_AGNSS_IonosphericModel;
+static int ett_lppe_T_staticModels;
+static int ett_lppe_T_waIono;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalKlobucharModelList;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalKlobucharModelElement;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_LocalKlobucharModel;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalKlobucharModel;
+static int ett_lppe_OMA_LPPe_AGNSS_IonoStormIndication;
+static int ett_lppe_OMA_LPPe_AGNSS_StormList;
+static int ett_lppe_OMA_LPPe_AGNSS_StormElement;
+static int ett_lppe_OMA_LPPe_AGNSS_RleListIono;
+static int ett_lppe_OMA_LPPe_AGNSS_RleIonoElement;
+static int ett_lppe_T_ionoIndex;
+static int ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfaceControlParametersProvide;
+static int ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfaceCommon;
+static int ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfacePerSVlist;
+static int ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfacePerSVelement;
+static int ett_lppe_OMA_LPPe_AGNSS_TroposphereModel;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalTroposphereDelayList;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalTroposphereDelayAreaElement;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_LocalTroposphereDelayTimeElement;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalTroposphereDelayTimeElement;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceParametersList;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceParametersAreaElement;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_LocalSurfaceParametersTimeElement;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceParametersTimeElement;
+static int ett_lppe_OMA_LPPe_AGNSS_MappingFunctionParameters;
+static int ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceList;
+static int ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceAreaElement;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_AGNSS_PressureAssistanceElement;
+static int ett_lppe_OMA_LPPe_AGNSS_PressureAssistanceElement;
+static int ett_lppe_OMA_LPPe_AGNSS_SolarRadiation;
+static int ett_lppe_OMA_LPPe_AGNSS_MechanicsForAllSVs;
+static int ett_lppe_OMA_LPPe_AGNSS_MechanicsElement;
+static int ett_lppe_T_svInfo;
+static int ett_lppe_OMA_LPPe_AGNSS_PCOelement;
+static int ett_lppe_OMA_LPPe_AGNSS_DCBsForAllSVs;
+static int ett_lppe_OMA_LPPe_AGNSS_DCBlistElement;
+static int ett_lppe_T_reference;
+static int ett_lppe_OMA_LPPe_AGNSS_DCBlist;
+static int ett_lppe_OMA_LPPe_AGNSS_DCBelement;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModelDegradationModelList;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModelDegradationModelElement;
+static int ett_lppe_OMA_LPPe_AGNSS_ClockModelDegradationModel;
+static int ett_lppe_OMA_LPPe_AGNSS_OrbitModelDegradationModel;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPassistCommonProvide;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPprovideCommonParameters;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPprovideControlParameters;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPsupportArea;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_CCPsignalSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPsignalSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPreferenceStationList;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPreferenceStationElement;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPassistGenericProvide;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPassistGenericProvideElement;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_CCPperSignalElement;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPperSignalElement;
+static int ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_AGNSS_CCPperSVelement;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPperSVelement;
+static int ett_lppe_OMA_LPPe_AGNSS_CodePhaseError;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModelList;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModel_CoordinateBased;
+static int ett_lppe_T_fixedInterval;
+static int ett_lppe_T_bases;
+static int ett_lppe_SEQUENCE_SIZE_1_97_OF_OMA_LPPe_AGNSS_NavModel_CoordinateBasedElement;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModel_CoordinateBasedElement;
+static int ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_AGNSS_NavModel_PVTelement;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModel_PVTelement;
+static int ett_lppe_T_rateRecord;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModel_BigNumber;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModel_STDmatrix;
+static int ett_lppe_OMA_LPPe_AGNSS_RequestAssistanceData;
+static int ett_lppe_OMA_LPPe_AGNSS_CommonAssistanceDataReq;
+static int ett_lppe_OMA_LPPe_AGNSS_GenericAssistanceDataReq;
+static int ett_lppe_OMA_LPPe_AGNSS_GenericAssistDataReqElement;
+static int ett_lppe_OMA_LPPe_AGNSS_IonosphericModelReq;
+static int ett_lppe_T_staticModels_01;
+static int ett_lppe_T_ionoreq;
+static int ett_lppe_T_periodicModels;
+static int ett_lppe_OMA_LPPe_AGNSS_WideAreaIonoSurfaceControlParametersRequest;
+static int ett_lppe_OMA_LPPe_AGNSS_TroposphereModelReq;
+static int ett_lppe_T_troposphereModelReq;
+static int ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceReq;
+static int ett_lppe_OMA_LPPe_AGNSS_SolarRadiationReq;
+static int ett_lppe_OMA_LPPe_AGNSS_WaIonoSurfaceRequest;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModelDegradationModelReq;
+static int ett_lppe_OMA_LPPe_AGNSS_DCBreq;
+static int ett_lppe_T_reference_01;
+static int ett_lppe_OMA_LPPe_AGNSS_MechanicsReq;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPrequestControlParameters;
+static int ett_lppe_T_ccpCommonRequest;
+static int ett_lppe_T_refStation;
+static int ett_lppe_T_posBasedReferenceStationRequest;
+static int ett_lppe_OMA_LPPe_AGNSS_ReferenceStationIDlist;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPassistGenericReq;
+static int ett_lppe_OMA_LPPe_AGNSS_NavigationModelReq;
+static int ett_lppe_T_navModelID_PrefList;
+static int ett_lppe_OMA_LPPe_AGNSS_ProvideLocationInformation;
+static int ett_lppe_OMA_LPPe_AGNSS_HAgnssProvide;
+static int ett_lppe_T_controlParameters;
+static int ett_lppe_T_measurements;
+static int ett_lppe_T_localPressure;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_AGNSS_HAgnssMeasurementElement;
+static int ett_lppe_OMA_LPPe_AGNSS_HAgnssMeasurementElement;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_HAgnssPerSignalElement;
+static int ett_lppe_OMA_LPPe_HAgnssPerSignalElement;
+static int ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_HAgnssPerSVelement;
+static int ett_lppe_OMA_LPPe_HAgnssPerSVelement;
+static int ett_lppe_OMA_LPPe_AGNSS_IonosphereMeasurements;
+static int ett_lppe_OMA_LPPe_AGNSS_TECPerSV;
+static int ett_lppe_OMA_LPPe_AGNSS_TECPerSVElement;
+static int ett_lppe_OMA_LPPe_AGNSS_TECAtZenith;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceMeasurements;
+static int ett_lppe_T_temperatureMeasurement;
+static int ett_lppe_OMA_LPPe_AGNSS_RequestLocationInformation;
+static int ett_lppe_T_ionosphereMeasurementsReq;
+static int ett_lppe_OMA_LPPe_AGNSS_PositioningInstructions;
+static int ett_lppe_OMA_LPPe_AGNSS_LocalSurfaceMeasurementReq;
+static int ett_lppe_OMA_LPPe_AGNSS_HAgnssRequestControlParameters;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_AGNSS_HAgnssSignalReqElement;
+static int ett_lppe_OMA_LPPe_AGNSS_HAgnssSignalReqElement;
+static int ett_lppe_OMA_LPPe_AGNSS_ProvideCapabilities;
+static int ett_lppe_OMA_LPPe_AGNSS_AssistanceDataSupportList;
+static int ett_lppe_OMA_LPPe_AGNSS_EnvironmentObservationSupportList;
+static int ett_lppe_T_ionosphereMeasurementSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_CommonAssistanceDataSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_IonosphericModelSupport;
+static int ett_lppe_T_ionoModel;
+static int ett_lppe_OMA_LPPe_AGNSS_TroposphereModelSupport;
+static int ett_lppe_T_tropoModel;
+static int ett_lppe_OMA_LPPe_AGNSS_AltitudeAssistanceSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_SolarRadiationSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPsupport;
+static int ett_lppe_OMA_LPPe_AGNSS_GenericAssistanceDataSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_GenericAssistDataSupportElement;
+static int ett_lppe_OMA_LPPe_AGNSS_MechanicsSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_DCBsupport;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModelAccuracyModelDegradationSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_NavModelSupport;
+static int ett_lppe_T_navModelSupport;
+static int ett_lppe_OMA_LPPe_AGNSS_HAgnssSupport;
+static int ett_lppe_T_modeSupport;
+static int ett_lppe_T_haGNSSantennaInformationSupport;
+static int ett_lppe_SEQUENCE_SIZE_1_8_OF_OMA_LPPe_AGNSS_HAgnssPerGNSSsupport;
+static int ett_lppe_OMA_LPPe_AGNSS_HAgnssPerGNSSsupport;
+static int ett_lppe_OMA_LPPe_AGNSS_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_AGNSS_Error;
+static int ett_lppe_OMA_LPPe_AGNSS_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_AGNSS_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_AGNSS_CCPreferenceStationID;
+static int ett_lppe_OMA_LPPe_AGNSS_AntennaDescription;
+static int ett_lppe_T_antennaDescription;
+static int ett_lppe_OMA_LPPe_AGNSS_Abort;
+static int ett_lppe_T_targetDeviceAbortCauses;
+static int ett_lppe_OMA_LPPe_OTDOA_ProvideAssistanceData;
+static int ett_lppe_OMA_LPPe_OTDOA_ReferenceCellInfo;
+static int ett_lppe_OMA_LPPe_OTDOA_PositionCalculationInfoRef;
+static int ett_lppe_T_cellLocation;
+static int ett_lppe_T_femtoCellInfo;
+static int ett_lppe_OMA_LPPe_OTDOA_NeighbourCellInfoList;
+static int ett_lppe_OMA_LPPe_OTDOA_NeighbourFreqCellInfoList;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTEeNBs_OF_OMA_LPPe_OTDOA_NeighbourCellInfoElement_eNB;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTEHeNBs_OF_OMA_LPPe_OTDOA_NeighbourCellInfoElement_HeNB;
+static int ett_lppe_OMA_LPPe_OTDOA_NeighbourCellInfoElement_eNB;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTEMacroCells_OF_OMA_LPPe_OTDOA_CellData;
+static int ett_lppe_OMA_LPPe_OTDOA_NeighbourCellInfoElement_HeNB;
+static int ett_lppe_OMA_LPPe_OTDOA_CellData;
+static int ett_lppe_T_rtdInfo;
+static int ett_lppe_OMA_LPPe_OTDOA_RTDquality;
+static int ett_lppe_OMA_LPPe_OTDOA_RequestAssistanceData;
+static int ett_lppe_T_lteCell;
+static int ett_lppe_T_requestedCells;
+static int ett_lppe_OMA_LPPe_OTDOA_ProvideLocationInformation;
+static int ett_lppe_OMA_LPPe_OTDOA_LocationInformation;
+static int ett_lppe_OMA_LPPe_OTDOA_RequestLocationInformation;
+static int ett_lppe_OMA_LPPe_OTDOA_ProvideCapabilities;
+static int ett_lppe_T_eNodeB_AD_sup;
+static int ett_lppe_T_home_eNodeB_AD_sup;
+static int ett_lppe_OMA_LPPe_OTDOA_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_OTDOA_Error;
+static int ett_lppe_OMA_LPPe_OTDOA_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_OTDOA_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_EOTD_ProvideAssistanceData;
+static int ett_lppe_OMA_LPPe_EOTD_ReferenceBTSForAssistance;
+static int ett_lppe_T_btsPosition;
+static int ett_lppe_OMA_LPPe_EOTD_MsrAssistDataList;
+static int ett_lppe_OMA_LPPe_EOTD_MsrAssistBTS;
+static int ett_lppe_OMA_LPPe_EOTD_SystemInfoAssistDataList;
+static int ett_lppe_OMA_LPPe_EOTD_SystemInfoAssistBTS;
+static int ett_lppe_OMA_LPPe_EOTD_AssistBTSData;
+static int ett_lppe_OMA_LPPe_EOTD_CalcAssistanceBTS;
+static int ett_lppe_OMA_LPPe_EOTD_relativePos;
+static int ett_lppe_OMA_LPPe_EOTD_RequestAssistanceData;
+static int ett_lppe_T_eotdAssistanceReq;
+static int ett_lppe_OMA_LPPe_EOTD_ProvideLocationInformation;
+static int ett_lppe_OMA_LPPe_EOTD_MsrElement;
+static int ett_lppe_SEQUENCE_SIZE_1_15_OF_OMA_LPPe_EOTD_MeasurementWithID;
+static int ett_lppe_OMA_LPPe_EOTD_TOA_MeasurementsOfRef;
+static int ett_lppe_OMA_LPPe_EOTD_MeasurementWithID;
+static int ett_lppe_OMA_LPPe_EOTD_NeighborIdentity;
+static int ett_lppe_OMA_LPPe_EOTD_EOTDQuality;
+static int ett_lppe_OMA_LPPe_EOTD_MultiFrameCarrier;
+static int ett_lppe_OMA_LPPe_EOTD_RequestLocationInformation;
+static int ett_lppe_OMA_LPPe_EOTD_ProvideCapabilities;
+static int ett_lppe_T_eotdSupport;
+static int ett_lppe_OMA_LPPe_EOTD_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_EOTD_Error;
+static int ett_lppe_OMA_LPPe_EOTD_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_EOTD_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_EOTD_ExpectedOTD;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_ProvideAssistanceData;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_ReferenceCellInfo;
+static int ett_lppe_T_modeSpecificInfo;
+static int ett_lppe_T_fdd;
+static int ett_lppe_T_tdd;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_RefPosAssist;
+static int ett_lppe_T_cellPosition;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborCellList;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborCellInfo;
+static int ett_lppe_T_modeSpecificInfo_01;
+static int ett_lppe_T_fdd_01;
+static int ett_lppe_T_tdd_01;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_SFN_SFN_RelTimeDifference1;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_PositioningAssistance;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_IPDL_Parameters;
+static int ett_lppe_T_modeSpecificInfo_02;
+static int ett_lppe_T_fdd_02;
+static int ett_lppe_T_tdd_02;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_BurstModeParameters;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_RequestAssistanceData;
+static int ett_lppe_T_otdoaUtraAssistanceReq;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_ProvideLocationInformation;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_Measurement;
+static int ett_lppe_T_modeSpecificInfoMeas;
+static int ett_lppe_T_fdd_03;
+static int ett_lppe_T_tdd_03;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_UE_RX_TX_TimeDifferenceType2Info;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborList;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_Neighbor;
+static int ett_lppe_T_modeSpecificInfo_03;
+static int ett_lppe_T_fdd_04;
+static int ett_lppe_T_tdd_04;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_NeighborQuality;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_Quality;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_TimeStampData;
+static int ett_lppe_T_nonUniqueCellID;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_RequestLocationInformation;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_ProvideCapabilities;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_Error;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_PrimaryCPICH_Info;
+static int ett_lppe_OMA_LPPe_OTDOA_UTRA_CellAndChannelIdentity;
+static int ett_lppe_OMA_LPPe_ECID_LTE_ProvideAssistanceData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTENetworks_OF_OMA_LPPe_ECID_LTE_NetworkData;
+static int ett_lppe_OMA_LPPe_ECID_LTE_NetworkData;
+static int ett_lppe_T_plmn_Identity;
+static int ett_lppe_T_mcc;
+static int ett_lppe_T_mnc;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTEeNBs_OF_OMA_LPPe_ECID_LTE_eNodeBData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTEHeNBs_OF_OMA_LPPe_ECID_LTE_HeNBData;
+static int ett_lppe_OMA_LPPe_ECID_LTE_eNodeBData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTEMacroCells_OF_OMA_LPPe_ECID_LTE_CellData;
+static int ett_lppe_OMA_LPPe_ECID_LTE_HeNBData;
+static int ett_lppe_OMA_LPPe_ECID_LTE_CellData;
+static int ett_lppe_OMA_LPPe_ECID_LTE_RequestAssistanceData;
+static int ett_lppe_T_eNBrequestedAD;
+static int ett_lppe_T_heNBrequestedAD;
+static int ett_lppe_OMA_LPPe_ECID_LTE_ProvideLocationInformation;
+static int ett_lppe_SEQUENCE_SIZE_1_maxLTEECIDSize_OF_OMA_LPPe_ECID_LTE_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_LTE_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_LTE_LocationInformation;
+static int ett_lppe_OMA_LPPe_ECID_LTE_RequestLocationInformation;
+static int ett_lppe_T_requestedMeasurements;
+static int ett_lppe_OMA_LPPe_ECID_LTE_ProvideCapabilities;
+static int ett_lppe_T_ecid_lte_MeasSupported;
+static int ett_lppe_T_ecid_lte_eNodeB_ADSupported;
+static int ett_lppe_T_ecid_utra_HeNB_ADSupported;
+static int ett_lppe_OMA_LPPe_ECID_LTE_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_ECID_LTE_Error;
+static int ett_lppe_OMA_LPPe_ECID_LTE_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_ECID_LTE_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_ECID_GSM_ProvideAssistanceData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxGSMNetworks_OF_OMA_LPPe_ECID_GSM_NetworkData;
+static int ett_lppe_OMA_LPPe_ECID_GSM_NetworkData;
+static int ett_lppe_T_plmn_Identity_01;
+static int ett_lppe_T_mcc_01;
+static int ett_lppe_T_mnc_01;
+static int ett_lppe_SEQUENCE_SIZE_1_maxGSMBaseStations_OF_OMA_LPPe_ECID_GSM_BaseStationData;
+static int ett_lppe_OMA_LPPe_ECID_GSM_BaseStationData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxGSMCells_OF_OMA_LPPe_ECID_GSM_CellData;
+static int ett_lppe_OMA_LPPe_ECID_GSM_CellData;
+static int ett_lppe_OMA_LPPe_ECID_GSM_RequestAssistanceData;
+static int ett_lppe_T_requestedAD;
+static int ett_lppe_OMA_LPPe_ECID_GSM_ProvideLocationInformation;
+static int ett_lppe_SEQUENCE_SIZE_1_maxGSMECIDSize_OF_OMA_LPPe_ECID_GSM_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_GSM_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_GSM_LocationInformation;
+static int ett_lppe_OMA_LPPe_NMR_GERAN;
+static int ett_lppe_OMA_LPPe_NMR_GERAN_item;
+static int ett_lppe_OMA_LPPe_ECID_GSM_RequestLocationInformation;
+static int ett_lppe_T_requestedMeasurements_01;
+static int ett_lppe_OMA_LPPe_ECID_GSM_ProvideCapabilities;
+static int ett_lppe_T_ecid_gsm_MeasSupported;
+static int ett_lppe_T_ecid_gsm_ADSupported;
+static int ett_lppe_OMA_LPPe_ECID_GSM_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_ECID_GSM_Error;
+static int ett_lppe_OMA_LPPe_ECID_GSM_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_ECID_GSM_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_ProvideAssistanceData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxUTRANetworks_OF_OMA_LPPe_ECID_UTRA_NetworkData;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_NetworkData;
+static int ett_lppe_T_plmn_Identity_02;
+static int ett_lppe_T_mcc_02;
+static int ett_lppe_T_mnc_02;
+static int ett_lppe_SEQUENCE_SIZE_1_maxUTRAnodeBs_OF_OMA_LPPe_ECID_UTRA_NodeBData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxUTRAHNBs_OF_OMA_LPPe_ECID_UTRA_HNBData;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_NodeBData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxUTRAMacroCells_OF_OMA_LPPe_ECID_UTRA_CellData;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_HNBData;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_CellData;
+static int ett_lppe_T_modeSpecificInfo_04;
+static int ett_lppe_T_fdd_05;
+static int ett_lppe_T_tdd_05;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_RequestAssistanceData;
+static int ett_lppe_T_nBrequestedAD;
+static int ett_lppe_T_hNBrequestedAD;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_ProvideLocationInformation;
+static int ett_lppe_SEQUENCE_SIZE_1_maxECIDUTRASize_OF_OMA_LPPe_ECID_UTRA_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_LocationInformation;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_UTRATimingAdvance;
+static int ett_lppe_OMA_LPPe_UTRA_FrequencyInfo;
+static int ett_lppe_OMA_LPPe_UTRA_ModeSpecificInfo;
+static int ett_lppe_OMA_LPPe_UTRA_FrequencyInfoFDD;
+static int ett_lppe_OMA_LPPe_UTRA_FrequencyInfoTDD;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_MeasuredResultsList;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_MeasuredResults;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_CellMeasuredResultsList;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_CellMeasuredResults;
+static int ett_lppe_T_modeSpecificInfo_05;
+static int ett_lppe_T_fdd_06;
+static int ett_lppe_T_tdd_06;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_RequestLocationInformation;
+static int ett_lppe_T_requestedMeasurements_02;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_ProvideCapabilities;
+static int ett_lppe_T_ecid_utra_MeasSupported;
+static int ett_lppe_T_ecid_utra_nodeB_ADSupported;
+static int ett_lppe_T_ecid_utra_HNB_ADSupported;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_Error;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_ECID_UTRA_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_WLAN_AP_ProvideAssistanceData;
+static int ett_lppe_SEQUENCE_SIZE_1_maxWLANDataSets_OF_OMA_LPPe_WLAN_DataSet;
+static int ett_lppe_OMA_LPPe_WLAN_DataSet;
+static int ett_lppe_T_plmn_Identity_03;
+static int ett_lppe_T_mcc_03;
+static int ett_lppe_T_mnc_03;
+static int ett_lppe_SEQUENCE_SIZE_1_maxWLANAPs_OF_OMA_LPPe_WLAN_AP_Data;
+static int ett_lppe_Supported_Channels_11a;
+static int ett_lppe_Supported_Channels_11bg;
+static int ett_lppe_OMA_LPPe_WLAN_AP_Data;
+static int ett_lppe_SEQUENCE_SIZE_1_maxWLANTypes_OF_OMA_LPPe_WLAN_AP_Type_Data;
+static int ett_lppe_OMA_LPPe_WLAN_AP_Type_Data;
+static int ett_lppe_OMA_LPPe_WLAN_AP_RequestAssistanceData;
+static int ett_lppe_T_requestedAD_01;
+static int ett_lppe_OMA_LPPe_WLAN_AP_ProvideLocationInformation;
+static int ett_lppe_SEQUENCE_SIZE_1_maxWLANAPSize_OF_OMA_LPPe_WLAN_AP_LocationInformationList;
+static int ett_lppe_OMA_LPPe_WLAN_AP_LocationInformationList;
+static int ett_lppe_OMA_LPPe_WLAN_AP_LocationInformation;
+static int ett_lppe_OMA_LPPe_WLAN_RTD;
+static int ett_lppe_OMA_LPPe_WLAN_ReportedLocation;
+static int ett_lppe_OMA_LPPe_WLAN_LocationDataLCI;
+static int ett_lppe_OMA_LPPe_WLAN_AP_RequestLocationInformation;
+static int ett_lppe_T_requestedMeasurements_03;
+static int ett_lppe_T_additionalRequestedMeasurements;
+static int ett_lppe_OMA_LPPe_WLAN_AP_ProvideCapabilities;
+static int ett_lppe_T_wlan_ecid_MeasSupported;
+static int ett_lppe_T_wlan_ap_ADSupported;
+static int ett_lppe_T_additional_wlan_ecid_MeasSupported;
+static int ett_lppe_OMA_LPPe_WLAN_AP_Capability;
+static int ett_lppe_OMA_LPPe_WLAN_AP_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_WLAN_AP_Error;
+static int ett_lppe_OMA_LPPe_WLAN_AP_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_WLAN_AP_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_ProvideLocationInformation;
+static int ett_lppe_SEQUENCE_SIZE_1_maxWiMaxECIDSize_OF_OMA_LPPe_ECID_WiMax_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_LocationInformationList;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_LocationInformation;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_WimaxBsID;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_WimaxRTD;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_WimaxNMRList;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_WimaxNMR;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_RequestLocationInformation;
+static int ett_lppe_T_requestedMeasurements_04;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_ProvideCapabilities;
+static int ett_lppe_T_ecid_wimax_MeasSupported;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_Error;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_ECID_WiMax_TargetDeviceErrorCauses;
+static int ett_lppe_OMA_LPPe_Sensor_ProvideAssistanceData;
+static int ett_lppe_OMA_LPPe_AtmosphericPressureAD;
+static int ett_lppe_T_period;
+static int ett_lppe_T_area;
+static int ett_lppe_OMA_LPPe_PressureValidityArea;
+static int ett_lppe_OMA_LPPe_Sensor_RequestAssistanceData;
+static int ett_lppe_OMA_LPPe_PressureSensorAD;
+static int ett_lppe_OMA_LPPe_Sensor_ProvideLocationInformation;
+static int ett_lppe_OMA_LPPe_Sensor_MotionStateList;
+static int ett_lppe_OMA_LPPe_Sensor_MotionStateElement;
+static int ett_lppe_T_secondaryMotionState;
+static int ett_lppe_OMA_LPPe_AtmosphericPressure;
+static int ett_lppe_PressureStats;
+static int ett_lppe_CalibrationPoints;
+static int ett_lppe_CalibrationPoints_item;
+static int ett_lppe_OMA_LPPe_PressureMeasurement;
+static int ett_lppe_T_uncertainty;
+static int ett_lppe_OMA_LPPe_Sensor_RequestLocationInformation;
+static int ett_lppe_OMA_LPPe_Sensor_MotionStateRequest;
+static int ett_lppe_OMA_LPPe_AtmosphericPressureRequest;
+static int ett_lppe_OMA_LPPe_Sensor_ProvideCapabilities;
+static int ett_lppe_OMA_LPPe_Sensor_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_Sensor_Error;
+static int ett_lppe_OMA_LPPe_Sensor_TargetError;
+static int ett_lppe_OMA_LPPe_SRN_ProvideAssistanceData;
+static int ett_lppe_T_srnGroup;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroupList;
+static int ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_SRN_SRNgroup;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroup;
+static int ett_lppe_SEQUENCE_SIZE_1_1024_OF_OMA_LPPe_SRN_SRNinfo;
+static int ett_lppe_OMA_LPPe_SRN_SRNinfo;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateResponse;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateResponseElement;
+static int ett_lppe_OMA_LPPe_SRN_AntennaPattern;
+static int ett_lppe_OMA_LPPe_SRN_AntennaPatternElement;
+static int ett_lppe_T_identification;
+static int ett_lppe_T_antennaData;
+static int ett_lppe_OMA_LPPe_SRN_AntennaPatternForChannels;
+static int ett_lppe_T_evenGrid;
+static int ett_lppe_SEQUENCE_SIZE_1_maxChannels_OF_OMA_LPPe_SRN_ChannelResponse;
+static int ett_lppe_OMA_LPPe_SRN_ChannelResponse;
+static int ett_lppe_SEQUENCE_SIZE_7_901_OF_OMA_LPPe_SRN_ResponseInElevation;
+static int ett_lppe_OMA_LPPe_SRN_ResponseInElevation;
+static int ett_lppe_SEQUENCE_SIZE_18_3601_OF_OMA_LPPe_SRN_ResponseInAzimuth;
+static int ett_lppe_OMA_LPPe_SRN_ResponseInAzimuth;
+static int ett_lppe_OMA_LPPe_ComplexNumber;
+static int ett_lppe_OMA_LPPe_SRN_RequestAssistanceData;
+static int ett_lppe_T_srnGroup_01;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroupRequest;
+static int ett_lppe_OMA_LPPe_SRN_SRNProvideList;
+static int ett_lppe_SEQUENCE_SIZE_1_256_OF_OMA_LPPe_SRN_SRNgroupUniqueID;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_Category;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateRequest;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroupUpdateRequestElement;
+static int ett_lppe_SEQUENCE_SIZE_1_1024_OF_OMA_LPPe_SRN_SRNid;
+static int ett_lppe_OMA_LPPe_SRN_AntennaPatternRequest;
+static int ett_lppe_OMA_LPPe_SRN_AntennaPatternRequestElement;
+static int ett_lppe_T_antennaPatternID;
+static int ett_lppe_OMA_LPPe_SRN_ProvideLocationInformation;
+static int ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_SRN_MeasurementElement;
+static int ett_lppe_OMA_LPPe_SRN_MeasurementElement;
+static int ett_lppe_SEQUENCE_SIZE_1_64_OF_OMA_LPPe_SRN_srnMeasurementElement;
+static int ett_lppe_OMA_LPPe_SRN_srnMeasurementElement;
+static int ett_lppe_OMA_LPPe_SRN_RequestLocationInformation;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_ReqLocInfo_Category;
+static int ett_lppe_OMA_LPPe_SRN_ReqLocInfo_Category;
+static int ett_lppe_OMA_LPPe_SRN_ProvideCapabilities;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_ProvideCapabilitiesElement;
+static int ett_lppe_OMA_LPPe_SRN_ProvideCapabilitiesElement;
+static int ett_lppe_T_supportedAssistanceData;
+static int ett_lppe_OMA_LPPe_SRN_RequestCapabilities;
+static int ett_lppe_OMA_LPPe_SRN_Error;
+static int ett_lppe_OMA_LPPe_SRN_LocationServerErrorCauses;
+static int ett_lppe_OMA_LPPe_SRN_TargetDeviceErrorCauses;
+static int ett_lppe_SEQUENCE_SIZE_1_16_OF_OMA_LPPe_SRN_TargetDeviceError;
+static int ett_lppe_OMA_LPPe_SRN_TargetDeviceError;
+static int ett_lppe_OMA_LPPe_SRN_SRNgroupUniqueID;
+static int ett_lppe_OMA_LPPe_SRN_SRNtype;
+static int ett_lppe_T_srnAntennaInfo;
+static int ett_lppe_OMA_LPPe_SRN_Category;
+static int ett_lppe_T_srnVendorInformation;
+static int ett_lppe_OMA_LPPe_SRN_SRNid;
+static int ett_lppe_T_srn_id;
+static int ett_lppe_T_nfc;
+static int ett_lppe_T_mobileCode;
+static int ett_lppe_OMA_LPPe_SRN_Technologies;
+static int ett_lppe_OMA_LPPe_SRN_MeasurementMask;
+static int ett_lppe_T_srnMeasurements;
/* Include constants */
#define maxAssistanceContainerList 16
@@ -4804,7 +4804,7 @@ dissect_lppe_OMA_LPPe_AGNSS_SolarRadiationReq(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lppe_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c
index 8c65eaa7bc..4ba52917f4 100644
--- a/epan/dissectors/packet-lte-rrc.c
+++ b/epan/dissectors/packet-lte-rrc.c
@@ -6,7 +6,7 @@
/* packet-lte-rrc-template.c
* Routines for Evolved Universal Terrestrial Radio Access (E-UTRA);
* Radio Resource Control (RRC) protocol specification
- * (3GPP TS 36.331 V17.7.0 Release 17) packet dissection
+ * (3GPP TS 36.331 V17.8.0 Release 17) packet dissection
* Copyright 2008, Vincent Helfre
* Copyright 2009-2024, Pascal Quantin
*
@@ -53,24 +53,24 @@
void proto_register_lte_rrc(void);
void proto_reg_handoff_lte_rrc(void);
-static dissector_handle_t nas_eps_handle = NULL;
-static dissector_handle_t nas_5gs_handle = NULL;
-static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
-static dissector_handle_t rrc_sys_info_cont_handle = NULL;
-static dissector_handle_t gsm_a_dtap_handle = NULL;
-static dissector_handle_t gsm_rlcmac_dl_handle = NULL;
-static dissector_handle_t nr_rrc_reconf_handle = NULL;
+static dissector_handle_t nas_eps_handle;
+static dissector_handle_t nas_5gs_handle;
+static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle;
+static dissector_handle_t rrc_sys_info_cont_handle;
+static dissector_handle_t gsm_a_dtap_handle;
+static dissector_handle_t gsm_rlcmac_dl_handle;
+static dissector_handle_t nr_rrc_reconf_handle;
static dissector_handle_t lte_rrc_conn_reconf_handle;
static dissector_handle_t lte_rrc_dl_ccch_handle;
-static wmem_map_t *lte_rrc_etws_cmas_dcs_hash = NULL;
+static wmem_map_t *lte_rrc_etws_cmas_dcs_hash;
/* Keep track of where/how the System Info value has changed */
-static wmem_map_t *lte_rrc_system_info_value_changed_hash = NULL;
+static wmem_map_t *lte_rrc_system_info_value_changed_hash;
static guint8 system_info_value_current;
static gboolean system_info_value_current_set;
-static gboolean lte_rrc_nas_in_root_tree;
+static bool lte_rrc_nas_in_root_tree;
extern int proto_mac_lte;
extern int proto_rlc_lte;
@@ -413,6 +413,7 @@ static int hf_lte_rrc_UE_Capability_NB_Ext_r14_IEs_PDU; /* UE_Capability_NB_Ext
static int hf_lte_rrc_UE_Capability_NB_r13_PDU; /* UE_Capability_NB_r13 */
static int hf_lte_rrc_UECapabilityInformation_NB_PDU; /* UECapabilityInformation_NB */
static int hf_lte_rrc_UE_RadioPagingInfo_NB_r13_PDU; /* UE_RadioPagingInfo_NB_r13 */
+static int hf_lte_rrc_UE_EUTRA_Capability_v16f0_IEs_PDU; /* UE_EUTRA_Capability_v16f0_IEs */
static int hf_lte_rrc_criticalExtensions; /* T_criticalExtensions */
static int hf_lte_rrc_c1; /* T_c1 */
static int hf_lte_rrc_handoverCommand_r8; /* HandoverCommand_r8_IEs */
@@ -8155,28 +8156,30 @@ static int hf_lte_rrc_dedicatedInfoNASList_r13; /* SEQUENCE_SIZE_1_maxDRB_NB_r
static int hf_lte_rrc_dedicatedInfoNASList_r13_item; /* DedicatedInfoNAS */
static int hf_lte_rrc_radioResourceConfigDedicated_r13_01; /* RadioResourceConfigDedicated_NB_r13 */
static int hf_lte_rrc_fullConfig_r13; /* T_fullConfig_r13 */
-static int hf_lte_rrc_nonCriticalExtension_371; /* T_nonCriticalExtension_92 */
+static int hf_lte_rrc_nonCriticalExtension_371; /* RRCConnectionReconfiguration_NB_v16f0_IEs */
+static int hf_lte_rrc_obtainLocationNB_r16; /* T_obtainLocationNB_r16 */
+static int hf_lte_rrc_nonCriticalExtension_372; /* T_nonCriticalExtension_92 */
static int hf_lte_rrc_criticalExtensions_69; /* T_criticalExtensions_69 */
static int hf_lte_rrc_rrcConnectionReconfigurationComplete_r13_01; /* RRCConnectionReconfigurationComplete_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_67; /* T_criticalExtensionsFuture_67 */
-static int hf_lte_rrc_nonCriticalExtension_372; /* T_nonCriticalExtension_93 */
+static int hf_lte_rrc_nonCriticalExtension_373; /* T_nonCriticalExtension_93 */
static int hf_lte_rrc_criticalExtensions_70; /* T_criticalExtensions_70 */
static int hf_lte_rrc_c1_64; /* T_c1_64 */
static int hf_lte_rrc_rrcConnectionReestablishment_r13_01; /* RRCConnectionReestablishment_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_68; /* T_criticalExtensionsFuture_68 */
-static int hf_lte_rrc_nonCriticalExtension_373; /* RRCConnectionReestablishment_NB_v1430_IEs */
+static int hf_lte_rrc_nonCriticalExtension_374; /* RRCConnectionReestablishment_NB_v1430_IEs */
static int hf_lte_rrc_dl_NAS_MAC; /* BIT_STRING_SIZE_16 */
-static int hf_lte_rrc_nonCriticalExtension_374; /* T_nonCriticalExtension_94 */
+static int hf_lte_rrc_nonCriticalExtension_375; /* T_nonCriticalExtension_94 */
static int hf_lte_rrc_criticalExtensions_71; /* T_criticalExtensions_71 */
static int hf_lte_rrc_rrcConnectionReestablishmentComplete_r13_01; /* RRCConnectionReestablishmentComplete_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_69; /* T_criticalExtensionsFuture_69 */
-static int hf_lte_rrc_nonCriticalExtension_375; /* RRCConnectionReestablishmentComplete_NB_v1470_IEs */
+static int hf_lte_rrc_nonCriticalExtension_376; /* RRCConnectionReestablishmentComplete_NB_v1470_IEs */
static int hf_lte_rrc_measResultServCell_r14; /* MeasResultServCell_NB_r14 */
-static int hf_lte_rrc_nonCriticalExtension_376; /* RRCConnectionReestablishmentComplete_NB_v1610_IEs */
+static int hf_lte_rrc_nonCriticalExtension_377; /* RRCConnectionReestablishmentComplete_NB_v1610_IEs */
static int hf_lte_rrc_rlf_InfoAvailable_r16; /* T_rlf_InfoAvailable_r16 */
static int hf_lte_rrc_rRCConnectionReestablishmentComplete_NB_v1610_IEs_anr_InfoAvailable_r16; /* T_rRCConnectionReestablishmentComplete_NB_v1610_IEs_anr_InfoAvailable_r16 */
-static int hf_lte_rrc_nonCriticalExtension_377; /* RRCConnectionReestablishmentComplete_NB_v1710_IEs */
-static int hf_lte_rrc_nonCriticalExtension_378; /* T_nonCriticalExtension_95 */
+static int hf_lte_rrc_nonCriticalExtension_378; /* RRCConnectionReestablishmentComplete_NB_v1710_IEs */
+static int hf_lte_rrc_nonCriticalExtension_379; /* T_nonCriticalExtension_95 */
static int hf_lte_rrc_criticalExtensions_72; /* T_criticalExtensions_72 */
static int hf_lte_rrc_rrcConnectionReestablishmentRequest_r13_01; /* RRCConnectionReestablishmentRequest_NB_r13_IEs */
static int hf_lte_rrc_later_01; /* T_later_01 */
@@ -8207,29 +8210,29 @@ static int hf_lte_rrc_rrcConnectionReject_r13_01; /* RRCConnectionReject_NB_r13
static int hf_lte_rrc_criticalExtensionsFuture_71; /* T_criticalExtensionsFuture_71 */
static int hf_lte_rrc_extendedWaitTime_r13; /* INTEGER_1_1800 */
static int hf_lte_rrc_rrc_SuspendIndication_r13_01; /* T_rrc_SuspendIndication_r13_01 */
-static int hf_lte_rrc_nonCriticalExtension_379; /* T_nonCriticalExtension_96 */
+static int hf_lte_rrc_nonCriticalExtension_380; /* T_nonCriticalExtension_96 */
static int hf_lte_rrc_criticalExtensions_74; /* T_criticalExtensions_74 */
static int hf_lte_rrc_c1_66; /* T_c1_66 */
static int hf_lte_rrc_rrcConnectionRelease_r13_01; /* RRCConnectionRelease_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_72; /* T_criticalExtensionsFuture_72 */
static int hf_lte_rrc_releaseCause_r13; /* ReleaseCause_NB_r13 */
static int hf_lte_rrc_redirectedCarrierInfo_r13; /* RedirectedCarrierInfo_NB_r13 */
-static int hf_lte_rrc_nonCriticalExtension_380; /* RRCConnectionRelease_NB_v1430_IEs */
+static int hf_lte_rrc_nonCriticalExtension_381; /* RRCConnectionRelease_NB_v1430_IEs */
static int hf_lte_rrc_redirectedCarrierInfo_v1430; /* RedirectedCarrierInfo_NB_v1430 */
static int hf_lte_rrc_extendedWaitTime_CPdata_r14; /* INTEGER_1_1800 */
-static int hf_lte_rrc_nonCriticalExtension_381; /* RRCConnectionRelease_NB_v1530_IEs */
+static int hf_lte_rrc_nonCriticalExtension_382; /* RRCConnectionRelease_NB_v1530_IEs */
static int hf_lte_rrc_drb_ContinueROHC_r15_01; /* T_drb_ContinueROHC_r15_01 */
-static int hf_lte_rrc_nonCriticalExtension_382; /* RRCConnectionRelease_NB_v1550_IEs */
+static int hf_lte_rrc_nonCriticalExtension_383; /* RRCConnectionRelease_NB_v1550_IEs */
static int hf_lte_rrc_redirectedCarrierInfo_v1550; /* RedirectedCarrierInfo_NB_v1550 */
-static int hf_lte_rrc_nonCriticalExtension_383; /* RRCConnectionRelease_NB_v15b0_IEs */
+static int hf_lte_rrc_nonCriticalExtension_384; /* RRCConnectionRelease_NB_v15b0_IEs */
static int hf_lte_rrc_noLastCellUpdate_r15_01; /* T_noLastCellUpdate_r15_01 */
-static int hf_lte_rrc_nonCriticalExtension_384; /* RRCConnectionRelease_NB_v1610_IEs */
+static int hf_lte_rrc_nonCriticalExtension_385; /* RRCConnectionRelease_NB_v1610_IEs */
static int hf_lte_rrc_resumeIdentity_r16; /* I_RNTI_r15 */
static int hf_lte_rrc_anr_MeasConfig_r16; /* ANR_MeasConfig_NB_r16 */
static int hf_lte_rrc_pur_Config_r16_01; /* T_pur_Config_r16_01 */
static int hf_lte_rrc_rRCConnectionRelease_NB_v1610_IEs_pur_Config_r16_setup; /* PUR_Config_NB_r16 */
-static int hf_lte_rrc_nonCriticalExtension_385; /* RRCConnectionRelease_NB_v1700_IEs */
-static int hf_lte_rrc_nonCriticalExtension_386; /* T_nonCriticalExtension_97 */
+static int hf_lte_rrc_nonCriticalExtension_386; /* RRCConnectionRelease_NB_v1700_IEs */
+static int hf_lte_rrc_nonCriticalExtension_387; /* T_nonCriticalExtension_97 */
static int hf_lte_rrc_redirectedCarrierOffsetDedicated_r14; /* T_redirectedCarrierOffsetDedicated_r14 */
static int hf_lte_rrc_t322_r14; /* T_t322_r14 */
static int hf_lte_rrc_criticalExtensions_75; /* T_criticalExtensions_75 */
@@ -8251,18 +8254,20 @@ static int hf_lte_rrc_c1_67; /* T_c1_67 */
static int hf_lte_rrc_rrcConnectionResume_r13_03; /* RRCConnectionResume_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_74; /* T_criticalExtensionsFuture_74 */
static int hf_lte_rrc_drb_ContinueROHC_r13_01; /* T_drb_ContinueROHC_r13_01 */
-static int hf_lte_rrc_nonCriticalExtension_387; /* RRCConnectionResume_NB_v1610_IEs */
+static int hf_lte_rrc_nonCriticalExtension_388; /* RRCConnectionResume_NB_v1610_IEs */
static int hf_lte_rrc_fullConfig_r16; /* T_fullConfig_r16 */
-static int hf_lte_rrc_nonCriticalExtension_388; /* T_nonCriticalExtension_98 */
+static int hf_lte_rrc_nonCriticalExtension_389; /* RRCConnectionResume_NB_v16f0_IEs */
+static int hf_lte_rrc_obtainLocationNB_r16_01; /* T_obtainLocationNB_r16_01 */
+static int hf_lte_rrc_nonCriticalExtension_390; /* T_nonCriticalExtension_98 */
static int hf_lte_rrc_criticalExtensions_77; /* T_criticalExtensions_77 */
static int hf_lte_rrc_rrcConnectionResumeComplete_r13_03; /* RRCConnectionResumeComplete_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_75; /* T_criticalExtensionsFuture_75 */
-static int hf_lte_rrc_nonCriticalExtension_389; /* RRCConnectionResumeComplete_NB_v1470_IEs */
-static int hf_lte_rrc_nonCriticalExtension_390; /* RRCConnectionResumeComplete_NB_v1610_IEs */
+static int hf_lte_rrc_nonCriticalExtension_391; /* RRCConnectionResumeComplete_NB_v1470_IEs */
+static int hf_lte_rrc_nonCriticalExtension_392; /* RRCConnectionResumeComplete_NB_v1610_IEs */
static int hf_lte_rrc_rlf_InfoAvailable_r16_01; /* T_rlf_InfoAvailable_r16_01 */
static int hf_lte_rrc_rRCConnectionResumeComplete_NB_v1610_IEs_anr_InfoAvailable_r16; /* T_rRCConnectionResumeComplete_NB_v1610_IEs_anr_InfoAvailable_r16 */
-static int hf_lte_rrc_nonCriticalExtension_391; /* RRCConnectionResumeComplete_NB_v1710_IEs */
-static int hf_lte_rrc_nonCriticalExtension_392; /* T_nonCriticalExtension_99 */
+static int hf_lte_rrc_nonCriticalExtension_393; /* RRCConnectionResumeComplete_NB_v1710_IEs */
+static int hf_lte_rrc_nonCriticalExtension_394; /* T_nonCriticalExtension_99 */
static int hf_lte_rrc_criticalExtensions_78; /* T_criticalExtensions_78 */
static int hf_lte_rrc_rrcConnectionResumeRequest_r13_03; /* RRCConnectionResumeRequest_NB_r13_IEs */
static int hf_lte_rrc_later_04; /* T_later_04 */
@@ -8279,18 +8284,18 @@ static int hf_lte_rrc_criticalExtensions_79; /* T_criticalExtensions_79 */
static int hf_lte_rrc_c1_68; /* T_c1_68 */
static int hf_lte_rrc_rrcConnectionSetup_r13_01; /* RRCConnectionSetup_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_77; /* T_criticalExtensionsFuture_77 */
-static int hf_lte_rrc_nonCriticalExtension_393; /* RRCConnectionSetup_NB_v1610_IEs */
-static int hf_lte_rrc_nonCriticalExtension_394; /* T_nonCriticalExtension_100 */
+static int hf_lte_rrc_nonCriticalExtension_395; /* RRCConnectionSetup_NB_v1610_IEs */
+static int hf_lte_rrc_nonCriticalExtension_396; /* T_nonCriticalExtension_100 */
static int hf_lte_rrc_criticalExtensions_80; /* T_criticalExtensions_80 */
static int hf_lte_rrc_rrcConnectionSetupComplete_r13_01; /* RRCConnectionSetupComplete_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_78; /* T_criticalExtensionsFuture_78 */
static int hf_lte_rrc_registeredMME_r13; /* RegisteredMME */
static int hf_lte_rrc_attachWithoutPDN_Connectivity_r13_02; /* T_attachWithoutPDN_Connectivity_r13_02 */
static int hf_lte_rrc_up_CIoT_EPS_Optimisation_r13_02; /* T_up_CIoT_EPS_Optimisation_r13_02 */
-static int hf_lte_rrc_nonCriticalExtension_395; /* RRCConnectionSetupComplete_NB_v1430_IEs */
+static int hf_lte_rrc_nonCriticalExtension_397; /* RRCConnectionSetupComplete_NB_v1430_IEs */
static int hf_lte_rrc_gummei_Type_r14; /* T_gummei_Type_r14 */
-static int hf_lte_rrc_nonCriticalExtension_396; /* RRCConnectionSetupComplete_NB_v1470_IEs */
-static int hf_lte_rrc_nonCriticalExtension_397; /* RRCConnectionSetupComplete_NB_v1610_IEs */
+static int hf_lte_rrc_nonCriticalExtension_398; /* RRCConnectionSetupComplete_NB_v1470_IEs */
+static int hf_lte_rrc_nonCriticalExtension_399; /* RRCConnectionSetupComplete_NB_v1610_IEs */
static int hf_lte_rrc_registeredAMF_r16; /* RegisteredAMF_r15 */
static int hf_lte_rrc_gummei_Type_v1610; /* T_gummei_Type_v1610 */
static int hf_lte_rrc_guami_Type_r16; /* T_guami_Type_r16 */
@@ -8301,16 +8306,16 @@ static int hf_lte_rrc_up_CIoT_5GS_Optimisation_r16_02; /* T_up_CIoT_5GS_Optimis
static int hf_lte_rrc_rlf_InfoAvailable_r16_02; /* T_rlf_InfoAvailable_r16_02 */
static int hf_lte_rrc_anr_InfoAvailable_r16; /* T_anr_InfoAvailable_r16 */
static int hf_lte_rrc_pur_ConfigID_r16_01; /* PUR_ConfigID_NB_r16 */
-static int hf_lte_rrc_nonCriticalExtension_398; /* RRCConnectionSetupComplete_NB_v1710_IEs */
-static int hf_lte_rrc_nonCriticalExtension_399; /* T_nonCriticalExtension_101 */
+static int hf_lte_rrc_nonCriticalExtension_400; /* RRCConnectionSetupComplete_NB_v1710_IEs */
+static int hf_lte_rrc_nonCriticalExtension_401; /* T_nonCriticalExtension_101 */
static int hf_lte_rrc_criticalExtensions_81; /* T_criticalExtensions_81 */
static int hf_lte_rrc_rrcEarlyDataComplete_r15_03; /* RRCEarlyDataComplete_NB_r15_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_79; /* T_criticalExtensionsFuture_79 */
static int hf_lte_rrc_redirectedCarrierInfo_r15_01; /* RedirectedCarrierInfo_NB_r13 */
static int hf_lte_rrc_redirectedCarrierInfoExt_r15; /* RedirectedCarrierInfo_NB_v1430 */
-static int hf_lte_rrc_nonCriticalExtension_400; /* RRCEarlyDataComplete_NB_v1590_IEs */
-static int hf_lte_rrc_nonCriticalExtension_401; /* RRCEarlyDataComplete_NB_v1700_IEs */
-static int hf_lte_rrc_nonCriticalExtension_402; /* T_nonCriticalExtension_102 */
+static int hf_lte_rrc_nonCriticalExtension_402; /* RRCEarlyDataComplete_NB_v1590_IEs */
+static int hf_lte_rrc_nonCriticalExtension_403; /* RRCEarlyDataComplete_NB_v1700_IEs */
+static int hf_lte_rrc_nonCriticalExtension_404; /* T_nonCriticalExtension_102 */
static int hf_lte_rrc_criticalExtensions_82; /* T_criticalExtensions_82 */
static int hf_lte_rrc_rrcEarlyDataRequest_r15_03; /* RRCEarlyDataRequest_NB_r15_IEs */
static int hf_lte_rrc_later_05; /* T_later_05 */
@@ -8318,16 +8323,16 @@ static int hf_lte_rrc_rrcEarlyDataRequest_r16; /* RRCEarlyDataRequest_5GC_NB_
static int hf_lte_rrc_criticalExtensionsFuture_80; /* T_criticalExtensionsFuture_80 */
static int hf_lte_rrc_establishmentCause_r15_02; /* T_establishmentCause_r15_01 */
static int hf_lte_rrc_cqi_NPDCCH_r15; /* CQI_NPDCCH_NB_r14 */
-static int hf_lte_rrc_nonCriticalExtension_403; /* RRCEarlyDataRequest_NB_v1590_IEs */
-static int hf_lte_rrc_nonCriticalExtension_404; /* T_nonCriticalExtension_103 */
+static int hf_lte_rrc_nonCriticalExtension_405; /* RRCEarlyDataRequest_NB_v1590_IEs */
+static int hf_lte_rrc_nonCriticalExtension_406; /* T_nonCriticalExtension_103 */
static int hf_lte_rrc_establishmentCause_r16_02; /* T_establishmentCause_r16_02 */
-static int hf_lte_rrc_nonCriticalExtension_405; /* T_nonCriticalExtension_104 */
+static int hf_lte_rrc_nonCriticalExtension_407; /* T_nonCriticalExtension_104 */
static int hf_lte_rrc_sc_mtch_InfoList_r14_01; /* SC_MTCH_InfoList_NB_r14 */
static int hf_lte_rrc_scptm_NeighbourCellList_r14_01; /* SCPTM_NeighbourCellList_NB_r14 */
-static int hf_lte_rrc_nonCriticalExtension_406; /* SCPTMConfiguration_NB_v1610 */
+static int hf_lte_rrc_nonCriticalExtension_408; /* SCPTMConfiguration_NB_v1610 */
static int hf_lte_rrc_sc_mtch_InfoListMultiTB_r16; /* SC_MTCH_InfoList_NB_r14 */
static int hf_lte_rrc_multiTB_Gap_r16_01; /* T_multiTB_Gap_r16_01 */
-static int hf_lte_rrc_nonCriticalExtension_407; /* T_nonCriticalExtension_105 */
+static int hf_lte_rrc_nonCriticalExtension_409; /* T_nonCriticalExtension_105 */
static int hf_lte_rrc_criticalExtensions_83; /* T_criticalExtensions_83 */
static int hf_lte_rrc_systemInformation_r13_01; /* SystemInformation_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_81; /* T_criticalExtensionsFuture_81 */
@@ -8346,7 +8351,7 @@ static int hf_lte_rrc_sib23_v1530; /* SystemInformationBlockType2
static int hf_lte_rrc_sib27_v1610_01; /* SystemInformationBlockType27_NB_r16 */
static int hf_lte_rrc_sib31_v1700_01; /* SystemInformationBlockType31_NB_r17 */
static int hf_lte_rrc_sib32_v1700_01; /* SystemInformationBlockType32_NB_r17 */
-static int hf_lte_rrc_nonCriticalExtension_408; /* T_nonCriticalExtension_106 */
+static int hf_lte_rrc_nonCriticalExtension_410; /* T_nonCriticalExtension_106 */
static int hf_lte_rrc_hyperSFN_MSB_r13; /* BIT_STRING_SIZE_8 */
static int hf_lte_rrc_cellAccessRelatedInfo_r13; /* T_cellAccessRelatedInfo_r13 */
static int hf_lte_rrc_plmn_IdentityList_r13_01; /* PLMN_IdentityList_NB_r13 */
@@ -8366,28 +8371,28 @@ static int hf_lte_rrc_schedulingInfoList_r13; /* SchedulingInfoList_NB_r13 *
static int hf_lte_rrc_si_WindowLength_r13; /* T_si_WindowLength_r13 */
static int hf_lte_rrc_si_RadioFrameOffset_r13; /* INTEGER_1_15 */
static int hf_lte_rrc_systemInfoValueTagList_r13_01; /* SystemInfoValueTagList_NB_r13 */
-static int hf_lte_rrc_nonCriticalExtension_409; /* SystemInformationBlockType1_NB_v1350 */
+static int hf_lte_rrc_nonCriticalExtension_411; /* SystemInformationBlockType1_NB_v1350 */
static int hf_lte_rrc_cellSelectionInfo_v1350; /* CellSelectionInfo_NB_v1350 */
-static int hf_lte_rrc_nonCriticalExtension_410; /* SystemInformationBlockType1_NB_v1430 */
+static int hf_lte_rrc_nonCriticalExtension_412; /* SystemInformationBlockType1_NB_v1430 */
static int hf_lte_rrc_cellSelectionInfo_v1430; /* CellSelectionInfo_NB_v1430 */
-static int hf_lte_rrc_nonCriticalExtension_411; /* SystemInformationBlockType1_NB_v1450 */
+static int hf_lte_rrc_nonCriticalExtension_413; /* SystemInformationBlockType1_NB_v1450 */
static int hf_lte_rrc_nrs_CRS_PowerOffset_v1450; /* T_nrs_CRS_PowerOffset_v1450 */
-static int hf_lte_rrc_nonCriticalExtension_412; /* SystemInformationBlockType1_NB_v1530 */
+static int hf_lte_rrc_nonCriticalExtension_414; /* SystemInformationBlockType1_NB_v1530 */
static int hf_lte_rrc_tdd_Parameters_r15; /* T_tdd_Parameters_r15 */
static int hf_lte_rrc_tdd_Config_r15; /* TDD_Config_NB_r15 */
static int hf_lte_rrc_tdd_SI_CarrierInfo_r15; /* T_tdd_SI_CarrierInfo_r15 */
static int hf_lte_rrc_tdd_SI_SubframesBitmap_r15; /* DL_Bitmap_NB_r13 */
static int hf_lte_rrc_schedulingInfoList_v1530; /* SchedulingInfoList_NB_v1530 */
-static int hf_lte_rrc_nonCriticalExtension_413; /* SystemInformationBlockType1_NB_v1610 */
+static int hf_lte_rrc_nonCriticalExtension_415; /* SystemInformationBlockType1_NB_v1610 */
static int hf_lte_rrc_cellAccessRelatedInfo_5GC_r16; /* T_cellAccessRelatedInfo_5GC_r16 */
static int hf_lte_rrc_plmn_IdentityList_r16; /* PLMN_IdentityList_5GC_NB_r16 */
static int hf_lte_rrc_cellIdentity_r16_01; /* CellIdentity */
static int hf_lte_rrc_cellBarred_5GC_r16; /* T_cellBarred_5GC_r16 */
-static int hf_lte_rrc_nonCriticalExtension_414; /* SystemInformationBlockType1_NB_v1700 */
+static int hf_lte_rrc_nonCriticalExtension_416; /* SystemInformationBlockType1_NB_v1700 */
static int hf_lte_rrc_cellAccessRelatedInfo_NTN_r17_01; /* T_cellAccessRelatedInfo_NTN_r17_01 */
static int hf_lte_rrc_cellBarred_NTN_r17_01; /* T_cellBarred_NTN_r17_01 */
static int hf_lte_rrc_plmn_IdentityList_v1700_01; /* PLMN_IdentityList_NB_v1700 */
-static int hf_lte_rrc_nonCriticalExtension_415; /* T_nonCriticalExtension_107 */
+static int hf_lte_rrc_nonCriticalExtension_417; /* T_nonCriticalExtension_107 */
static int hf_lte_rrc_PLMN_IdentityList_NB_r13_item; /* PLMN_IdentityInfo_NB_r13 */
static int hf_lte_rrc_PLMN_IdentityList_5GC_NB_r16_item; /* PLMN_IdentityInfo_5GC_NB_r16 */
static int hf_lte_rrc_PLMN_IdentityList_NB_v1700_item; /* PLMN_IdentityInfo_NB_v1700 */
@@ -8418,29 +8423,29 @@ static int hf_lte_rrc_criticalExtensions_84; /* T_criticalExtensions_84 */
static int hf_lte_rrc_c1_69; /* T_c1_69 */
static int hf_lte_rrc_ueCapabilityEnquiry_r13_01; /* UECapabilityEnquiry_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_82; /* T_criticalExtensionsFuture_82 */
-static int hf_lte_rrc_nonCriticalExtension_416; /* T_nonCriticalExtension_108 */
+static int hf_lte_rrc_nonCriticalExtension_418; /* T_nonCriticalExtension_108 */
static int hf_lte_rrc_criticalExtensions_85; /* T_criticalExtensions_85 */
static int hf_lte_rrc_ueCapabilityInformation_r13_01; /* UECapabilityInformation_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_83; /* T_criticalExtensionsFuture_83 */
static int hf_lte_rrc_ue_Capability_r13; /* UE_Capability_NB_r13 */
static int hf_lte_rrc_ue_RadioPagingInfo_r13_01; /* UE_RadioPagingInfo_NB_r13 */
-static int hf_lte_rrc_nonCriticalExtension_417; /* UECapabilityInformation_NB_Ext_r14_IEs */
+static int hf_lte_rrc_nonCriticalExtension_419; /* UECapabilityInformation_NB_Ext_r14_IEs */
static int hf_lte_rrc_ue_Capability_ContainerExt_r14; /* T_ue_Capability_ContainerExt_r14 */
-static int hf_lte_rrc_nonCriticalExtension_418; /* T_nonCriticalExtension_109 */
+static int hf_lte_rrc_nonCriticalExtension_420; /* T_nonCriticalExtension_109 */
static int hf_lte_rrc_criticalExtensions_86; /* T_criticalExtensions_86 */
static int hf_lte_rrc_ueInformationRequest_r16_01; /* UEInformationRequest_NB_r16_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_84; /* T_criticalExtensionsFuture_84 */
static int hf_lte_rrc_rach_ReportReq_r16; /* BOOLEAN */
static int hf_lte_rrc_rlf_ReportReq_r16; /* BOOLEAN */
static int hf_lte_rrc_anr_ReportReq_r16; /* BOOLEAN */
-static int hf_lte_rrc_nonCriticalExtension_419; /* T_nonCriticalExtension_110 */
+static int hf_lte_rrc_nonCriticalExtension_421; /* T_nonCriticalExtension_110 */
static int hf_lte_rrc_criticalExtensions_87; /* T_criticalExtensions_87 */
static int hf_lte_rrc_ueInformationResponse_r16_01; /* UEInformationResponse_NB_r16_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_85; /* T_criticalExtensionsFuture_85 */
static int hf_lte_rrc_rach_Report_r16; /* RACH_Report_NB_r16 */
static int hf_lte_rrc_rlf_Report_r16; /* RLF_Report_NB_r16 */
static int hf_lte_rrc_anr_MeasReport_r16; /* ANR_MeasReport_NB_r16 */
-static int hf_lte_rrc_nonCriticalExtension_420; /* T_nonCriticalExtension_111 */
+static int hf_lte_rrc_nonCriticalExtension_422; /* T_nonCriticalExtension_111 */
static int hf_lte_rrc_numberOfPreamblesSent_r16_01; /* INTEGER_1_64 */
static int hf_lte_rrc_initialNRSRP_Level_r16; /* INTEGER_0_2 */
static int hf_lte_rrc_failedPCellId_r16; /* CellGlobalIdEUTRA */
@@ -8452,7 +8457,7 @@ static int hf_lte_rrc_timeSinceFailure_r16; /* TimeSinceFailure_r11 */
static int hf_lte_rrc_criticalExtensions_88; /* T_criticalExtensions_88 */
static int hf_lte_rrc_ulInformationTransfer_r13_01; /* ULInformationTransfer_NB_r13_IEs */
static int hf_lte_rrc_criticalExtensionsFuture_86; /* T_criticalExtensionsFuture_86 */
-static int hf_lte_rrc_nonCriticalExtension_421; /* T_nonCriticalExtension_112 */
+static int hf_lte_rrc_nonCriticalExtension_423; /* T_nonCriticalExtension_112 */
static int hf_lte_rrc_radioResourceConfigCommon_r13; /* RadioResourceConfigCommonSIB_NB_r13 */
static int hf_lte_rrc_ue_TimersAndConstants_r13; /* UE_TimersAndConstants_NB_r13 */
static int hf_lte_rrc_freqInfo_r13_01; /* T_freqInfo_r13_01 */
@@ -9011,17 +9016,17 @@ static int hf_lte_rrc_ue_Category_NB_r14; /* T_ue_Category_NB_r14 */
static int hf_lte_rrc_mac_Parameters_r14; /* MAC_Parameters_NB_r14 */
static int hf_lte_rrc_phyLayerParameters_v1430_01; /* PhyLayerParameters_NB_v1430 */
static int hf_lte_rrc_rf_Parameters_v1430_01; /* RF_Parameters_NB_v1430 */
-static int hf_lte_rrc_nonCriticalExtension_422; /* UE_Capability_NB_v1440_IEs */
+static int hf_lte_rrc_nonCriticalExtension_424; /* UE_Capability_NB_v1440_IEs */
static int hf_lte_rrc_phyLayerParameters_v1440; /* PhyLayerParameters_NB_v1440 */
-static int hf_lte_rrc_nonCriticalExtension_423; /* UE_Capability_NB_v14x0_IEs */
-static int hf_lte_rrc_nonCriticalExtension_424; /* UE_Capability_NB_v1530_IEs */
+static int hf_lte_rrc_nonCriticalExtension_425; /* UE_Capability_NB_v14x0_IEs */
+static int hf_lte_rrc_nonCriticalExtension_426; /* UE_Capability_NB_v1530_IEs */
static int hf_lte_rrc_earlyData_UP_r15_01; /* T_earlyData_UP_r15_01 */
static int hf_lte_rrc_rlc_Parameters_r15; /* RLC_Parameters_NB_r15 */
static int hf_lte_rrc_mac_Parameters_v1530_01; /* MAC_Parameters_NB_v1530 */
static int hf_lte_rrc_phyLayerParameters_v1530_01; /* PhyLayerParameters_NB_v1530 */
static int hf_lte_rrc_tdd_UE_Capability_r15; /* TDD_UE_Capability_NB_r15 */
-static int hf_lte_rrc_nonCriticalExtension_425; /* UE_Capability_NB_v15x0_IEs */
-static int hf_lte_rrc_nonCriticalExtension_426; /* UE_Capability_NB_v1610_IEs */
+static int hf_lte_rrc_nonCriticalExtension_427; /* UE_Capability_NB_v15x0_IEs */
+static int hf_lte_rrc_nonCriticalExtension_428; /* UE_Capability_NB_v1610_IEs */
static int hf_lte_rrc_earlySecurityReactivation_r16_03; /* T_earlySecurityReactivation_r16_03 */
static int hf_lte_rrc_earlyData_UP_5GC_r16_01; /* T_earlyData_UP_5GC_r16_01 */
static int hf_lte_rrc_pur_Parameters_r16_01; /* PUR_Parameters_NB_r16 */
@@ -9030,18 +9035,21 @@ static int hf_lte_rrc_phyLayerParameters_v1610_01; /* PhyLayerParameters_NB_v16
static int hf_lte_rrc_son_Parameters_r16; /* SON_Parameters_NB_r16 */
static int hf_lte_rrc_measParameters_r16; /* MeasParameters_NB_r16 */
static int hf_lte_rrc_tdd_UE_Capability_v1610; /* TDD_UE_Capability_NB_v1610 */
-static int hf_lte_rrc_nonCriticalExtension_427; /* UE_Capability_NB_v16x0_IEs */
-static int hf_lte_rrc_nonCriticalExtension_428; /* UE_Capability_NB_v1700_IEs */
+static int hf_lte_rrc_nonCriticalExtension_429; /* UE_Capability_NB_v16x0_IEs */
+static int hf_lte_rrc_lateNonCriticalExtension_15; /* T_lateNonCriticalExtension_14 */
+static int hf_lte_rrc_nonCriticalExtension_430; /* UE_Capability_NB_v1700_IEs */
+static int hf_lte_rrc_son_Parameters_v16f0; /* SON_Parameters_NB_v16f0 */
+static int hf_lte_rrc_nonCriticalExtension_431; /* T_nonCriticalExtension_113 */
static int hf_lte_rrc_coverageBasedPaging_r17; /* T_coverageBasedPaging_r17 */
static int hf_lte_rrc_phyLayerParameters_v1700_01; /* PhyLayerParameters_NB_v1700 */
static int hf_lte_rrc_ntn_Parameters_r17_01; /* NTN_Parameters_NB_r17 */
-static int hf_lte_rrc_nonCriticalExtension_429; /* UE_Capability_NB_v1710_IEs */
+static int hf_lte_rrc_nonCriticalExtension_432; /* UE_Capability_NB_v1710_IEs */
static int hf_lte_rrc_measParameters_v1710; /* MeasParameters_NB_v1710 */
static int hf_lte_rrc_rf_Parameters_v1710; /* RF_Parameters_NB_v1710 */
static int hf_lte_rrc_tdd_UE_Capability_v1710; /* TDD_UE_Capability_NB_v1710 */
-static int hf_lte_rrc_nonCriticalExtension_430; /* UE_Capability_NB_v1720_IEs */
+static int hf_lte_rrc_nonCriticalExtension_433; /* UE_Capability_NB_v1720_IEs */
static int hf_lte_rrc_ntn_Parameters_v1720_01; /* NTN_Parameters_NB_v1720 */
-static int hf_lte_rrc_nonCriticalExtension_431; /* T_nonCriticalExtension_113 */
+static int hf_lte_rrc_nonCriticalExtension_434; /* T_nonCriticalExtension_114 */
static int hf_lte_rrc_ue_Category_NB_r15; /* T_ue_Category_NB_r15 */
static int hf_lte_rrc_phyLayerParametersRel13_r15; /* PhyLayerParameters_NB_r13 */
static int hf_lte_rrc_phyLayerParametersRel14_r15; /* PhyLayerParameters_NB_v1430 */
@@ -9104,6 +9112,7 @@ static int hf_lte_rrc_powerClassNB_20dBm_r13; /* T_powerClassNB_20dBm_r13 */
static int hf_lte_rrc_npusch_16QAM_r17; /* T_npusch_16QAM_r17 */
static int hf_lte_rrc_anr_Report_r16; /* T_anr_Report_r16 */
static int hf_lte_rrc_rach_Report_r16_01; /* T_rach_Report_r16 */
+static int hf_lte_rrc_locationInfo_r16_01; /* T_locationInfo_r16 */
static int hf_lte_rrc_ue_Category_NB_r13_01; /* T_ue_Category_NB_r13_01 */
static int hf_lte_rrc_multiCarrierPaging_r14; /* T_multiCarrierPaging_r14 */
static int hf_lte_rrc_mixedOperationMode_r15_01; /* T_mixedOperationMode_r15_01 */
@@ -9332,3895 +9341,3900 @@ static int hf_lte_rrc_measGapPatterns_r15_bit8;
/* Initialize the subtree pointers */
static int ett_lte_rrc;
-static gint ett_lte_rrc_HandoverCommand;
-static gint ett_lte_rrc_T_criticalExtensions;
-static gint ett_lte_rrc_T_c1;
-static gint ett_lte_rrc_T_criticalExtensionsFuture;
-static gint ett_lte_rrc_HandoverCommand_r8_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension;
-static gint ett_lte_rrc_HandoverPreparationInformation;
-static gint ett_lte_rrc_T_criticalExtensions_01;
-static gint ett_lte_rrc_T_c1_01;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_01;
-static gint ett_lte_rrc_HandoverPreparationInformation_r8_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v920_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v9d0_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v9j0_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v10j0_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v10x0_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v13c0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_01;
-static gint ett_lte_rrc_HandoverPreparationInformation_v9e0_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1130_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1250_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1320_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1430_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1530_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1540_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1610_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1620_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1630_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_02;
-static gint ett_lte_rrc_SCG_Config_r12;
-static gint ett_lte_rrc_T_criticalExtensions_02;
-static gint ett_lte_rrc_T_c1_02;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_02;
-static gint ett_lte_rrc_SCG_Config_r12_IEs;
-static gint ett_lte_rrc_SCG_Config_v12i0a_IEs;
-static gint ett_lte_rrc_SCG_Config_v12i0b_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_03;
-static gint ett_lte_rrc_SCG_Config_v13c0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_04;
-static gint ett_lte_rrc_SCG_ConfigInfo_r12;
-static gint ett_lte_rrc_T_criticalExtensions_03;
-static gint ett_lte_rrc_T_c1_03;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_03;
-static gint ett_lte_rrc_SCG_ConfigInfo_r12_IEs;
-static gint ett_lte_rrc_SCG_ConfigInfo_v1310_IEs;
-static gint ett_lte_rrc_SCG_ConfigInfo_v1330_IEs;
-static gint ett_lte_rrc_SCG_ConfigInfo_v1430_IEs;
-static gint ett_lte_rrc_SCG_ConfigInfo_v1530_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_05;
-static gint ett_lte_rrc_DRB_InfoListSCG_r12;
-static gint ett_lte_rrc_DRB_InfoListSCG_r15;
-static gint ett_lte_rrc_DRB_InfoSCG_r12;
-static gint ett_lte_rrc_SCellToAddModListSCG_r12;
-static gint ett_lte_rrc_SCellToAddModListSCG_Ext_r13;
-static gint ett_lte_rrc_Cell_ToAddMod_r12;
-static gint ett_lte_rrc_T_cellIdentification_r12;
-static gint ett_lte_rrc_T_measResultCellToAdd_r12;
-static gint ett_lte_rrc_T_measResultCellToAdd_v1310;
-static gint ett_lte_rrc_MeasResultServCellListSCG_r12;
-static gint ett_lte_rrc_MeasResultServCellListSCG_Ext_r13;
-static gint ett_lte_rrc_MeasResultServCellSCG_r12;
-static gint ett_lte_rrc_T_measResultSCell_r12;
-static gint ett_lte_rrc_T_measResultSCell_v1310;
-static gint ett_lte_rrc_MeasResultListRSSI_SCG_r13;
-static gint ett_lte_rrc_MeasResultRSSI_SCG_r13;
-static gint ett_lte_rrc_SCG_ConfigRestrictInfo_r12;
-static gint ett_lte_rrc_UEPagingCoverageInformation;
-static gint ett_lte_rrc_T_criticalExtensions_04;
-static gint ett_lte_rrc_T_c1_04;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_04;
-static gint ett_lte_rrc_UEPagingCoverageInformation_r13_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_06;
-static gint ett_lte_rrc_UERadioAccessCapabilityInformation;
-static gint ett_lte_rrc_T_criticalExtensions_05;
-static gint ett_lte_rrc_T_c1_05;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_05;
-static gint ett_lte_rrc_UERadioAccessCapabilityInformation_r8_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_07;
-static gint ett_lte_rrc_UERadioPagingInformation;
-static gint ett_lte_rrc_T_criticalExtensions_06;
-static gint ett_lte_rrc_T_c1_06;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_06;
-static gint ett_lte_rrc_UERadioPagingInformation_r12_IEs;
-static gint ett_lte_rrc_UERadioPagingInformation_v1310_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicator_r11;
-static gint ett_lte_rrc_UERadioPagingInformation_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_08;
-static gint ett_lte_rrc_AS_Config;
-static gint ett_lte_rrc_AS_Config_v9e0;
-static gint ett_lte_rrc_AS_Config_v10j0;
-static gint ett_lte_rrc_AS_Config_v1250;
-static gint ett_lte_rrc_AS_Config_v1320;
-static gint ett_lte_rrc_AS_Config_v13c0;
-static gint ett_lte_rrc_AS_Config_v1430;
-static gint ett_lte_rrc_AS_ConfigNR_r15;
-static gint ett_lte_rrc_AS_ConfigNR_v1570;
-static gint ett_lte_rrc_AS_Config_v1550;
-static gint ett_lte_rrc_T_tdm_PatternConfig_r15;
-static gint ett_lte_rrc_AS_ConfigNR_v1620;
-static gint ett_lte_rrc_AS_Config_v1700;
-static gint ett_lte_rrc_AS_Context;
-static gint ett_lte_rrc_AS_Context_v1130;
-static gint ett_lte_rrc_AS_Context_v1320;
-static gint ett_lte_rrc_AS_Context_v1610;
-static gint ett_lte_rrc_AS_Context_v1620;
-static gint ett_lte_rrc_AS_Context_v1630;
-static gint ett_lte_rrc_ConfigRestrictInfoDAPS_r16;
-static gint ett_lte_rrc_ConfigRestrictInfoDAPS_v1630;
-static gint ett_lte_rrc_ReestablishmentInfo;
-static gint ett_lte_rrc_AdditionalReestabInfoList;
-static gint ett_lte_rrc_AdditionalReestabInfo;
-static gint ett_lte_rrc_RRM_Config;
-static gint ett_lte_rrc_CandidateCellInfoList_r10;
-static gint ett_lte_rrc_CandidateCellInfo_r10;
-static gint ett_lte_rrc_BCCH_BCH_Message;
-static gint ett_lte_rrc_BCCH_BCH_Message_MBMS;
-static gint ett_lte_rrc_BCCH_DL_SCH_Message;
-static gint ett_lte_rrc_BCCH_DL_SCH_MessageType;
-static gint ett_lte_rrc_T_c1_07;
-static gint ett_lte_rrc_T_messageClassExtension;
-static gint ett_lte_rrc_BCCH_DL_SCH_Message_BR;
-static gint ett_lte_rrc_BCCH_DL_SCH_MessageType_BR_r13;
-static gint ett_lte_rrc_T_c1_08;
-static gint ett_lte_rrc_T_messageClassExtension_01;
-static gint ett_lte_rrc_BCCH_DL_SCH_Message_MBMS;
-static gint ett_lte_rrc_BCCH_DL_SCH_MessageType_MBMS_r14;
-static gint ett_lte_rrc_T_c1_09;
-static gint ett_lte_rrc_T_messageClassExtension_02;
-static gint ett_lte_rrc_MCCH_Message;
-static gint ett_lte_rrc_MCCH_MessageType;
-static gint ett_lte_rrc_T_c1_10;
-static gint ett_lte_rrc_T_later;
-static gint ett_lte_rrc_T_c2;
-static gint ett_lte_rrc_T_messageClassExtension_03;
-static gint ett_lte_rrc_PCCH_Message;
-static gint ett_lte_rrc_PCCH_MessageType;
-static gint ett_lte_rrc_T_c1_11;
-static gint ett_lte_rrc_T_messageClassExtension_04;
-static gint ett_lte_rrc_DL_CCCH_Message;
-static gint ett_lte_rrc_DL_CCCH_MessageType;
-static gint ett_lte_rrc_T_c1_12;
-static gint ett_lte_rrc_T_messageClassExtension_05;
-static gint ett_lte_rrc_T_c2_01;
-static gint ett_lte_rrc_T_messageClassExtensionFuture_r15;
-static gint ett_lte_rrc_DL_DCCH_Message;
-static gint ett_lte_rrc_DL_DCCH_MessageType;
-static gint ett_lte_rrc_T_c1_13;
-static gint ett_lte_rrc_T_messageClassExtension_06;
-static gint ett_lte_rrc_UL_CCCH_Message;
-static gint ett_lte_rrc_UL_CCCH_MessageType;
-static gint ett_lte_rrc_T_c1_14;
-static gint ett_lte_rrc_T_messageClassExtension_07;
-static gint ett_lte_rrc_T_c2_02;
-static gint ett_lte_rrc_T_messageClassExtensionFuture_r13;
-static gint ett_lte_rrc_T_c3;
-static gint ett_lte_rrc_T_messageClassExtensionFuture_r15_01;
-static gint ett_lte_rrc_UL_DCCH_Message;
-static gint ett_lte_rrc_UL_DCCH_MessageType;
-static gint ett_lte_rrc_T_c1_15;
-static gint ett_lte_rrc_T_messageClassExtension_08;
-static gint ett_lte_rrc_T_c2_03;
-static gint ett_lte_rrc_T_messageClassExtensionFuture_r11;
-static gint ett_lte_rrc_SC_MCCH_Message_r13;
-static gint ett_lte_rrc_SC_MCCH_MessageType_r13;
-static gint ett_lte_rrc_T_c1_16;
-static gint ett_lte_rrc_T_messageClassExtension_09;
-static gint ett_lte_rrc_T_c2_04;
-static gint ett_lte_rrc_T_messageClassExtensionFuture_r14;
-static gint ett_lte_rrc_CounterCheck;
-static gint ett_lte_rrc_T_criticalExtensions_07;
-static gint ett_lte_rrc_T_c1_17;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_07;
-static gint ett_lte_rrc_CounterCheck_r8_IEs;
-static gint ett_lte_rrc_CounterCheck_v8a0_IEs;
-static gint ett_lte_rrc_CounterCheck_v1530_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_09;
-static gint ett_lte_rrc_DRB_CountMSB_InfoList;
-static gint ett_lte_rrc_DRB_CountMSB_InfoListExt_r15;
-static gint ett_lte_rrc_DRB_CountMSB_Info;
-static gint ett_lte_rrc_CounterCheckResponse;
-static gint ett_lte_rrc_T_criticalExtensions_08;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_08;
-static gint ett_lte_rrc_CounterCheckResponse_r8_IEs;
-static gint ett_lte_rrc_CounterCheckResponse_v8a0_IEs;
-static gint ett_lte_rrc_CounterCheckResponse_v1530_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_10;
-static gint ett_lte_rrc_DRB_CountInfoList;
-static gint ett_lte_rrc_DRB_CountInfoListExt_r15;
-static gint ett_lte_rrc_DRB_CountInfo;
-static gint ett_lte_rrc_CSFBParametersRequestCDMA2000;
-static gint ett_lte_rrc_T_criticalExtensions_09;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_09;
-static gint ett_lte_rrc_CSFBParametersRequestCDMA2000_r8_IEs;
-static gint ett_lte_rrc_CSFBParametersRequestCDMA2000_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_11;
-static gint ett_lte_rrc_CSFBParametersResponseCDMA2000;
-static gint ett_lte_rrc_T_criticalExtensions_10;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_10;
-static gint ett_lte_rrc_CSFBParametersResponseCDMA2000_r8_IEs;
-static gint ett_lte_rrc_CSFBParametersResponseCDMA2000_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_12;
-static gint ett_lte_rrc_DLDedicatedMessageSegment_r16;
-static gint ett_lte_rrc_T_criticalExtensions_11;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_11;
-static gint ett_lte_rrc_DLDedicatedMessageSegment_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_13;
-static gint ett_lte_rrc_DLInformationTransfer;
-static gint ett_lte_rrc_T_criticalExtensions_12;
-static gint ett_lte_rrc_T_c1_18;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_12;
-static gint ett_lte_rrc_DLInformationTransfer_r8_IEs;
-static gint ett_lte_rrc_T_dedicatedInfoType;
-static gint ett_lte_rrc_DLInformationTransfer_v8a0_IEs;
-static gint ett_lte_rrc_DLInformationTransfer_r15_IEs;
-static gint ett_lte_rrc_T_dedicatedInfoType_r15;
-static gint ett_lte_rrc_DLInformationTransfer_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_14;
-static gint ett_lte_rrc_FailureInformation_r15;
-static gint ett_lte_rrc_FailureInformation_r16;
-static gint ett_lte_rrc_T_criticalExtensions_13;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_13;
-static gint ett_lte_rrc_FailedLogicalChannelInfo_r15;
-static gint ett_lte_rrc_T_failedLogicalChannelIdentity_r15;
-static gint ett_lte_rrc_FailureInformation_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_15;
-static gint ett_lte_rrc_FailedLogicalChannelIdentity_r16;
-static gint ett_lte_rrc_HandoverFromEUTRAPreparationRequest;
-static gint ett_lte_rrc_T_criticalExtensions_14;
-static gint ett_lte_rrc_T_c1_19;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_14;
-static gint ett_lte_rrc_HandoverFromEUTRAPreparationRequest_r8_IEs;
-static gint ett_lte_rrc_HandoverFromEUTRAPreparationRequest_v890_IEs;
-static gint ett_lte_rrc_HandoverFromEUTRAPreparationRequest_v920_IEs;
-static gint ett_lte_rrc_HandoverFromEUTRAPreparationRequest_v1020_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_16;
-static gint ett_lte_rrc_InDeviceCoexIndication_r11;
-static gint ett_lte_rrc_T_criticalExtensions_15;
-static gint ett_lte_rrc_T_c1_20;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_15;
-static gint ett_lte_rrc_InDeviceCoexIndication_r11_IEs;
-static gint ett_lte_rrc_InDeviceCoexIndication_v11d0_IEs;
-static gint ett_lte_rrc_T_ul_CA_AssistanceInfo_r11;
-static gint ett_lte_rrc_InDeviceCoexIndication_v1310_IEs;
-static gint ett_lte_rrc_InDeviceCoexIndication_v1360_IEs;
-static gint ett_lte_rrc_InDeviceCoexIndication_v1530_IEs;
-static gint ett_lte_rrc_InDeviceCoexIndication_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_17;
-static gint ett_lte_rrc_AffectedCarrierFreqList_r11;
-static gint ett_lte_rrc_AffectedCarrierFreqList_v1310;
-static gint ett_lte_rrc_AffectedCarrierFreq_r11;
-static gint ett_lte_rrc_AffectedCarrierFreq_v1310;
-static gint ett_lte_rrc_AffectedCarrierFreqCombList_r11;
-static gint ett_lte_rrc_AffectedCarrierFreqCombList_r13;
-static gint ett_lte_rrc_AffectedCarrierFreqComb_r11;
-static gint ett_lte_rrc_AffectedCarrierFreqComb_r13;
-static gint ett_lte_rrc_TDM_AssistanceInfo_r11;
-static gint ett_lte_rrc_T_drx_AssistanceInfo_r11;
-static gint ett_lte_rrc_IDC_SubframePatternList_r11;
-static gint ett_lte_rrc_IDC_SubframePattern_r11;
-static gint ett_lte_rrc_T_subframePatternTDD_r11;
-static gint ett_lte_rrc_VictimSystemType_r11;
-static gint ett_lte_rrc_VictimSystemType_v1610;
-static gint ett_lte_rrc_MRDC_AssistanceInfo_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCombIDC_r11_OF_AffectedCarrierFreqCombInfoMRDC_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCombIDC_r11_OF_VictimSystemType_v1610;
-static gint ett_lte_rrc_AffectedCarrierFreqCombInfoMRDC_r15;
-static gint ett_lte_rrc_T_affectedCarrierFreqCombMRDC_r15;
-static gint ett_lte_rrc_AffectedCarrierFreqComb_r15;
-static gint ett_lte_rrc_AffectedCarrierFreqCombNR_r15;
-static gint ett_lte_rrc_InterFreqRSTDMeasurementIndication_r10;
-static gint ett_lte_rrc_T_criticalExtensions_16;
-static gint ett_lte_rrc_T_c1_21;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_16;
-static gint ett_lte_rrc_InterFreqRSTDMeasurementIndication_r10_IEs;
-static gint ett_lte_rrc_T_rstd_InterFreqIndication_r10;
-static gint ett_lte_rrc_T_start;
-static gint ett_lte_rrc_T_nonCriticalExtension_18;
-static gint ett_lte_rrc_RSTD_InterFreqInfoList_r10;
-static gint ett_lte_rrc_RSTD_InterFreqInfo_r10;
-static gint ett_lte_rrc_T_measPRS_Offset_r15;
-static gint ett_lte_rrc_LoggedMeasurementConfiguration_r10;
-static gint ett_lte_rrc_T_criticalExtensions_17;
-static gint ett_lte_rrc_T_c1_22;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_17;
-static gint ett_lte_rrc_LoggedMeasurementConfiguration_r10_IEs;
-static gint ett_lte_rrc_LoggedMeasurementConfiguration_v1080_IEs;
-static gint ett_lte_rrc_LoggedMeasurementConfiguration_v1130_IEs;
-static gint ett_lte_rrc_LoggedMeasurementConfiguration_v1250_IEs;
-static gint ett_lte_rrc_LoggedMeasurementConfiguration_v1530_IEs;
-static gint ett_lte_rrc_LoggedMeasurementConfiguration_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_19;
-static gint ett_lte_rrc_TargetMBSFN_AreaList_r12;
-static gint ett_lte_rrc_TargetMBSFN_Area_r12;
-static gint ett_lte_rrc_LoggedEventTriggerConfig_r17;
-static gint ett_lte_rrc_EventType_r17;
-static gint ett_lte_rrc_T_eventL1;
-static gint ett_lte_rrc_MasterInformationBlock;
-static gint ett_lte_rrc_T_partEARFCN_r17;
-static gint ett_lte_rrc_MasterInformationBlock_MBMS_r14;
-static gint ett_lte_rrc_MBMSCountingRequest_r10;
-static gint ett_lte_rrc_T_nonCriticalExtension_20;
-static gint ett_lte_rrc_CountingRequestList_r10;
-static gint ett_lte_rrc_CountingRequestInfo_r10;
-static gint ett_lte_rrc_MBMSCountingResponse_r10;
-static gint ett_lte_rrc_T_criticalExtensions_18;
-static gint ett_lte_rrc_T_c1_23;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_18;
-static gint ett_lte_rrc_MBMSCountingResponse_r10_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_21;
-static gint ett_lte_rrc_CountingResponseList_r10;
-static gint ett_lte_rrc_CountingResponseInfo_r10;
-static gint ett_lte_rrc_MBMSInterestIndication_r11;
-static gint ett_lte_rrc_T_criticalExtensions_19;
-static gint ett_lte_rrc_T_c1_24;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_19;
-static gint ett_lte_rrc_MBMSInterestIndication_r11_IEs;
-static gint ett_lte_rrc_MBMSInterestIndication_v1310_IEs;
-static gint ett_lte_rrc_MBMSInterestIndication_v1540_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxMBMS_ServiceListPerUE_r13_OF_MBMS_ROM_Info_r15;
-static gint ett_lte_rrc_MBMSInterestIndication_v1610_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxMBMS_ServiceListPerUE_r13_OF_MBMS_ROM_Info_r16;
-static gint ett_lte_rrc_T_nonCriticalExtension_22;
-static gint ett_lte_rrc_MBMS_ROM_Info_r15;
-static gint ett_lte_rrc_MBMS_ROM_Info_r16;
-static gint ett_lte_rrc_MBSFNAreaConfiguration_r9;
-static gint ett_lte_rrc_MBSFNAreaConfiguration_v930_IEs;
-static gint ett_lte_rrc_MBSFNAreaConfiguration_v1250_IEs;
-static gint ett_lte_rrc_MBSFNAreaConfiguration_v1430_IEs;
-static gint ett_lte_rrc_MBSFNAreaConfiguration_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_23;
-static gint ett_lte_rrc_CommonSF_AllocPatternList_r9;
-static gint ett_lte_rrc_CommonSF_AllocPatternList_v1430;
-static gint ett_lte_rrc_CommonSF_AllocPatternList_v1610;
-static gint ett_lte_rrc_MCGFailureInformation_r16;
-static gint ett_lte_rrc_T_criticalExtensions_20;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_20;
-static gint ett_lte_rrc_MCGFailureInformation_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_24;
-static gint ett_lte_rrc_FailureReportMCG_r16;
-static gint ett_lte_rrc_MeasReportAppLayer_r15;
-static gint ett_lte_rrc_T_criticalExtensions_21;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_21;
-static gint ett_lte_rrc_MeasReportAppLayer_r15_IEs;
-static gint ett_lte_rrc_MeasReportAppLayer_v1590_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_25;
-static gint ett_lte_rrc_MeasurementReport;
-static gint ett_lte_rrc_T_criticalExtensions_22;
-static gint ett_lte_rrc_T_c1_25;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_22;
-static gint ett_lte_rrc_MeasurementReport_r8_IEs;
-static gint ett_lte_rrc_MeasurementReport_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_26;
-static gint ett_lte_rrc_MobilityFromEUTRACommand;
-static gint ett_lte_rrc_T_criticalExtensions_23;
-static gint ett_lte_rrc_T_c1_26;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_23;
-static gint ett_lte_rrc_MobilityFromEUTRACommand_r8_IEs;
-static gint ett_lte_rrc_T_purpose;
-static gint ett_lte_rrc_MobilityFromEUTRACommand_v8a0_IEs;
-static gint ett_lte_rrc_MobilityFromEUTRACommand_v8d0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_27;
-static gint ett_lte_rrc_MobilityFromEUTRACommand_r9_IEs;
-static gint ett_lte_rrc_T_purpose_01;
-static gint ett_lte_rrc_MobilityFromEUTRACommand_v930_IEs;
-static gint ett_lte_rrc_MobilityFromEUTRACommand_v960_IEs;
-static gint ett_lte_rrc_MobilityFromEUTRACommand_v1530_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_28;
-static gint ett_lte_rrc_Handover;
-static gint ett_lte_rrc_CellChangeOrder;
-static gint ett_lte_rrc_T_targetRAT_Type_01;
-static gint ett_lte_rrc_T_geran;
-static gint ett_lte_rrc_SI_OrPSI_GERAN;
-static gint ett_lte_rrc_E_CSFB_r9;
-static gint ett_lte_rrc_Paging;
-static gint ett_lte_rrc_Paging_v890_IEs;
-static gint ett_lte_rrc_Paging_v920_IEs;
-static gint ett_lte_rrc_Paging_v1130_IEs;
-static gint ett_lte_rrc_Paging_v1310_IEs;
-static gint ett_lte_rrc_Paging_v1530_IEs;
-static gint ett_lte_rrc_Paging_v1610_IEs;
-static gint ett_lte_rrc_Paging_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_29;
-static gint ett_lte_rrc_PagingRecordList;
-static gint ett_lte_rrc_PagingRecordList_v1610;
-static gint ett_lte_rrc_PagingRecordList_v1700;
-static gint ett_lte_rrc_PagingRecord;
-static gint ett_lte_rrc_PagingRecord_v1610;
-static gint ett_lte_rrc_PagingRecord_v1700;
-static gint ett_lte_rrc_PagingUE_Identity;
-static gint ett_lte_rrc_IMSI;
-static gint ett_lte_rrc_ProximityIndication_r9;
-static gint ett_lte_rrc_T_criticalExtensions_24;
-static gint ett_lte_rrc_T_c1_27;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_24;
-static gint ett_lte_rrc_ProximityIndication_r9_IEs;
-static gint ett_lte_rrc_T_carrierFreq_r9;
-static gint ett_lte_rrc_ProximityIndication_v930_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_30;
-static gint ett_lte_rrc_PURConfigurationRequest_r16;
-static gint ett_lte_rrc_T_criticalExtensions_25;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_25;
-static gint ett_lte_rrc_PURConfigurationRequest_r16_IEs;
-static gint ett_lte_rrc_T_pur_ConfigRequest_r16;
-static gint ett_lte_rrc_T_pur_SetupRequest;
-static gint ett_lte_rrc_T_nonCriticalExtension_31;
-static gint ett_lte_rrc_RNReconfiguration_r10;
-static gint ett_lte_rrc_T_criticalExtensions_26;
-static gint ett_lte_rrc_T_c1_28;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_26;
-static gint ett_lte_rrc_RNReconfiguration_r10_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_32;
-static gint ett_lte_rrc_RN_SystemInfo_r10;
-static gint ett_lte_rrc_RNReconfigurationComplete_r10;
-static gint ett_lte_rrc_T_criticalExtensions_27;
-static gint ett_lte_rrc_T_c1_29;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_27;
-static gint ett_lte_rrc_RNReconfigurationComplete_r10_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_33;
-static gint ett_lte_rrc_RRCConnectionReconfiguration;
-static gint ett_lte_rrc_T_criticalExtensions_28;
-static gint ett_lte_rrc_T_c1_30;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_28;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_r8_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedInfoNAS;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v890_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v8m0_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v10i0_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v10l0_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v12f0_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1370_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v13c0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_34;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v920_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1020_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1130_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1250_IEs;
-static gint ett_lte_rrc_T_wlan_OffloadInfo_r12;
-static gint ett_lte_rrc_T_rRCConnectionReconfiguration_v1250_IEs_wlan_OffloadInfo_r12_setup;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1310_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1430_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1510_IEs;
-static gint ett_lte_rrc_T_nr_Config_r15;
-static gint ett_lte_rrc_T_rRCConnectionReconfiguration_v1510_IEs_nr_Config_r15_setup;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1530_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_r15_OF_DedicatedInfoNAS;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1610_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_35;
-static gint ett_lte_rrc_SL_SyncTxControl_r12;
-static gint ett_lte_rrc_PSCellToAddMod_r12;
-static gint ett_lte_rrc_T_cellIdentification_r12_01;
-static gint ett_lte_rrc_PSCellToAddMod_v12f0;
-static gint ett_lte_rrc_PSCellToAddMod_v1440;
-static gint ett_lte_rrc_PowerCoordinationInfo_r12;
-static gint ett_lte_rrc_SCellToAddModList_r10;
-static gint ett_lte_rrc_SCellToAddModList_v10l0;
-static gint ett_lte_rrc_SCellToAddModList_v13c0;
-static gint ett_lte_rrc_SCellToAddModList_r16;
-static gint ett_lte_rrc_SCellToAddModListExt_r13;
-static gint ett_lte_rrc_SCellToAddModListExt_v1370;
-static gint ett_lte_rrc_SCellToAddModListExt_v13c0;
-static gint ett_lte_rrc_SCellToAddModListExt_v1430;
-static gint ett_lte_rrc_SCellGroupToAddModList_r15;
-static gint ett_lte_rrc_SCellToAddMod_r10;
-static gint ett_lte_rrc_T_cellIdentification_r10;
-static gint ett_lte_rrc_SCellToAddMod_v10l0;
-static gint ett_lte_rrc_SCellToAddMod_v13c0;
-static gint ett_lte_rrc_SCellToAddMod_r16;
-static gint ett_lte_rrc_T_cellIdentification_r16;
-static gint ett_lte_rrc_SCellToAddModExt_r13;
-static gint ett_lte_rrc_T_cellIdentification_r13;
-static gint ett_lte_rrc_SCellToAddModExt_v1370;
-static gint ett_lte_rrc_SCellToAddModExt_v1430;
-static gint ett_lte_rrc_SCellGroupToAddMod_r15;
-static gint ett_lte_rrc_SCellToReleaseList_r10;
-static gint ett_lte_rrc_SCellToReleaseListExt_r13;
-static gint ett_lte_rrc_SCellGroupToReleaseList_r15;
-static gint ett_lte_rrc_SCellConfigCommon_r15;
-static gint ett_lte_rrc_SCG_Configuration_r12;
-static gint ett_lte_rrc_T_sCG_Configuration_r12_setup;
-static gint ett_lte_rrc_T_scg_ConfigPartMCG_r12;
-static gint ett_lte_rrc_SCG_Configuration_v12f0;
-static gint ett_lte_rrc_T_sCG_Configuration_v12f0_setup;
-static gint ett_lte_rrc_SCG_Configuration_v13c0;
-static gint ett_lte_rrc_T_sCG_Configuration_v13c0_setup;
-static gint ett_lte_rrc_SCG_ConfigPartSCG_r12;
-static gint ett_lte_rrc_SCG_ConfigPartSCG_v12f0;
-static gint ett_lte_rrc_SCG_ConfigPartSCG_v13c0;
-static gint ett_lte_rrc_SecurityConfigHO;
-static gint ett_lte_rrc_T_handoverType;
-static gint ett_lte_rrc_T_intraLTE;
-static gint ett_lte_rrc_T_interRAT;
-static gint ett_lte_rrc_SecurityConfigHO_v1530;
-static gint ett_lte_rrc_T_handoverType_v1530;
-static gint ett_lte_rrc_T_intra5GC;
-static gint ett_lte_rrc_T_fivegc_ToEPC;
-static gint ett_lte_rrc_T_epc_To5GC;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete;
-static gint ett_lte_rrc_T_criticalExtensions_29;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_29;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v8a0_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1020_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1130_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1250_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1430_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1510_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1530_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1700_IEs;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_36;
-static gint ett_lte_rrc_RRCConnectionReestablishment;
-static gint ett_lte_rrc_T_criticalExtensions_30;
-static gint ett_lte_rrc_T_c1_31;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_30;
-static gint ett_lte_rrc_RRCConnectionReestablishment_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishment_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_37;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete;
-static gint ett_lte_rrc_T_criticalExtensions_31;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_31;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_v920_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_v8a0_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_v1020_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_v1130_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_v1250_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_v1530_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_38;
-static gint ett_lte_rrc_RRCConnectionReestablishmentReject;
-static gint ett_lte_rrc_T_criticalExtensions_32;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_32;
-static gint ett_lte_rrc_RRCConnectionReestablishmentReject_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentReject_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_39;
-static gint ett_lte_rrc_RRCConnectionReestablishmentRequest;
-static gint ett_lte_rrc_T_criticalExtensions_33;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_33;
-static gint ett_lte_rrc_RRCConnectionReestablishmentRequest_r8_IEs;
-static gint ett_lte_rrc_ReestabUE_Identity;
-static gint ett_lte_rrc_RRCConnectionReject;
-static gint ett_lte_rrc_T_criticalExtensions_34;
-static gint ett_lte_rrc_T_c1_32;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_34;
-static gint ett_lte_rrc_RRCConnectionReject_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionReject_v8a0_IEs;
-static gint ett_lte_rrc_RRCConnectionReject_v1020_IEs;
-static gint ett_lte_rrc_RRCConnectionReject_v1130_IEs;
-static gint ett_lte_rrc_T_deprioritisationReq_r11;
-static gint ett_lte_rrc_RRCConnectionReject_v1320_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_40;
-static gint ett_lte_rrc_RRCConnectionRelease;
-static gint ett_lte_rrc_T_criticalExtensions_35;
-static gint ett_lte_rrc_T_c1_33;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_35;
-static gint ett_lte_rrc_RRCConnectionRelease_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_v890_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_v9e0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_41;
-static gint ett_lte_rrc_RRCConnectionRelease_v920_IEs;
-static gint ett_lte_rrc_T_cellInfoList_r9;
-static gint ett_lte_rrc_RRCConnectionRelease_v1020_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_v1320_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_v1530_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_v1540_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_v15b0_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_v1610_IEs;
-static gint ett_lte_rrc_T_pur_Config_r16;
-static gint ett_lte_rrc_RRCConnectionRelease_v1650_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_42;
-static gint ett_lte_rrc_RedirectedCarrierInfo;
-static gint ett_lte_rrc_RedirectedCarrierInfo_v9e0;
-static gint ett_lte_rrc_RRC_InactiveConfig_r15;
-static gint ett_lte_rrc_T_rRC_InactiveConfig_r15_dummy;
-static gint ett_lte_rrc_RRC_InactiveConfig_v1610;
-static gint ett_lte_rrc_RAN_NotificationAreaInfo_r15;
-static gint ett_lte_rrc_PLMN_RAN_AreaCellList_r15;
-static gint ett_lte_rrc_PLMN_RAN_AreaCell_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity;
-static gint ett_lte_rrc_PLMN_RAN_AreaConfigList_r15;
-static gint ett_lte_rrc_PLMN_RAN_AreaConfig_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig_r15;
-static gint ett_lte_rrc_RAN_AreaConfig_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode_r15;
-static gint ett_lte_rrc_CarrierFreqListUTRA_TDD_r10;
-static gint ett_lte_rrc_IdleModeMobilityControlInfo;
-static gint ett_lte_rrc_IdleModeMobilityControlInfo_v9e0;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_FreqPriorityEUTRA_v9e0;
-static gint ett_lte_rrc_FreqPriorityListEUTRA;
-static gint ett_lte_rrc_FreqPriorityListExtEUTRA_r12;
-static gint ett_lte_rrc_FreqPriorityListEUTRA_v1310;
-static gint ett_lte_rrc_FreqPriorityListExtEUTRA_v1310;
-static gint ett_lte_rrc_FreqPriorityEUTRA;
-static gint ett_lte_rrc_FreqPriorityEUTRA_v9e0;
-static gint ett_lte_rrc_FreqPriorityEUTRA_r12;
-static gint ett_lte_rrc_FreqPriorityEUTRA_v1310;
-static gint ett_lte_rrc_FreqPriorityListNR_r15;
-static gint ett_lte_rrc_FreqPriorityNR_r15;
-static gint ett_lte_rrc_FreqsPriorityListGERAN;
-static gint ett_lte_rrc_FreqsPriorityGERAN;
-static gint ett_lte_rrc_FreqPriorityListUTRA_FDD;
-static gint ett_lte_rrc_FreqPriorityUTRA_FDD;
-static gint ett_lte_rrc_FreqPriorityListUTRA_TDD;
-static gint ett_lte_rrc_FreqPriorityUTRA_TDD;
-static gint ett_lte_rrc_BandClassPriorityListHRPD;
-static gint ett_lte_rrc_BandClassPriorityHRPD;
-static gint ett_lte_rrc_BandClassPriorityList1XRTT;
-static gint ett_lte_rrc_BandClassPriority1XRTT;
-static gint ett_lte_rrc_CellInfoListGERAN_r9;
-static gint ett_lte_rrc_CellInfoGERAN_r9;
-static gint ett_lte_rrc_CarrierInfoNR_r15;
-static gint ett_lte_rrc_CarrierInfoNR_r17;
-static gint ett_lte_rrc_CellInfoListUTRA_FDD_r9;
-static gint ett_lte_rrc_CellInfoUTRA_FDD_r9;
-static gint ett_lte_rrc_CellInfoListUTRA_TDD_r9;
-static gint ett_lte_rrc_CellInfoUTRA_TDD_r9;
-static gint ett_lte_rrc_CellInfoListUTRA_TDD_r10;
-static gint ett_lte_rrc_CellInfoUTRA_TDD_r10;
-static gint ett_lte_rrc_RRCConnectionRequest;
-static gint ett_lte_rrc_T_criticalExtensions_36;
-static gint ett_lte_rrc_RRCConnectionRequest_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionRequest_5GC_r15_IEs;
-static gint ett_lte_rrc_InitialUE_Identity;
-static gint ett_lte_rrc_InitialUE_Identity_5GC_r15;
-static gint ett_lte_rrc_RRCConnectionResume_r13;
-static gint ett_lte_rrc_T_criticalExtensions_37;
-static gint ett_lte_rrc_T_c1_34;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_36;
-static gint ett_lte_rrc_RRCConnectionResume_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionResume_v1430_IEs;
-static gint ett_lte_rrc_RRCConnectionResume_v1510_IEs;
-static gint ett_lte_rrc_RRCConnectionResume_v1530_IEs;
-static gint ett_lte_rrc_RRCConnectionResume_v1610_IEs;
-static gint ett_lte_rrc_RRCConnectionResume_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_43;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_r13;
-static gint ett_lte_rrc_T_criticalExtensions_38;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_37;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_v1530_IEs;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_v1610_IEs;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_44;
-static gint ett_lte_rrc_RRCConnectionResumeRequest_r13;
-static gint ett_lte_rrc_T_criticalExtensions_39;
-static gint ett_lte_rrc_RRCConnectionResumeRequest_r13_IEs;
-static gint ett_lte_rrc_T_rRCConnectionResumeRequest_r13_IEs_resumeIdentity_r13;
-static gint ett_lte_rrc_RRCConnectionResumeRequest_5GC_r15_IEs;
-static gint ett_lte_rrc_T_resumeIdentity_r15;
-static gint ett_lte_rrc_RRCConnectionSetup;
-static gint ett_lte_rrc_T_criticalExtensions_40;
-static gint ett_lte_rrc_T_c1_35;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_38;
-static gint ett_lte_rrc_RRCConnectionSetup_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionSetup_v8a0_IEs;
-static gint ett_lte_rrc_RRCConnectionSetup_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_45;
-static gint ett_lte_rrc_RRCConnectionSetupComplete;
-static gint ett_lte_rrc_T_criticalExtensions_41;
-static gint ett_lte_rrc_T_c1_36;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_39;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_r8_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v8a0_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1020_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1130_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1250_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1320_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1330_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1430_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1530_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_r15_OF_S_NSSAI_r15;
-static gint ett_lte_rrc_T_ng_5G_S_TMSI_Bits_r15;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1540_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1610_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1690_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_46;
-static gint ett_lte_rrc_RegisteredMME;
-static gint ett_lte_rrc_RegisteredAMF_r15;
-static gint ett_lte_rrc_RRCEarlyDataComplete_r15;
-static gint ett_lte_rrc_T_criticalExtensions_42;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_40;
-static gint ett_lte_rrc_RRCEarlyDataComplete_r15_IEs;
-static gint ett_lte_rrc_RRCEarlyDataComplete_v1590_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_47;
-static gint ett_lte_rrc_RedirectedCarrierInfo_r15_IEs;
-static gint ett_lte_rrc_RRCEarlyDataRequest_r15;
-static gint ett_lte_rrc_T_criticalExtensions_43;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_41;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_r16;
-static gint ett_lte_rrc_RRCEarlyDataRequest_r15_IEs;
-static gint ett_lte_rrc_RRCEarlyDataRequest_v1590_IEs;
-static gint ett_lte_rrc_RRCEarlyDataRequest_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_48;
-static gint ett_lte_rrc_RRCEarlyDataRequest_5GC_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_49;
-static gint ett_lte_rrc_SCGFailureInformation_r12;
-static gint ett_lte_rrc_T_criticalExtensions_44;
-static gint ett_lte_rrc_T_c1_37;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_42;
-static gint ett_lte_rrc_SCGFailureInformation_r12_IEs;
-static gint ett_lte_rrc_SCGFailureInformation_v12d0a_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_50;
-static gint ett_lte_rrc_SCGFailureInformation_v12d0b_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_51;
-static gint ett_lte_rrc_FailureReportSCG_r12;
-static gint ett_lte_rrc_FailureReportSCG_v12d0;
-static gint ett_lte_rrc_SCGFailureInformationNR_r15;
-static gint ett_lte_rrc_T_criticalExtensions_45;
-static gint ett_lte_rrc_T_c1_38;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_43;
-static gint ett_lte_rrc_SCGFailureInformationNR_r15_IEs;
-static gint ett_lte_rrc_SCGFailureInformationNR_v1590_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_52;
-static gint ett_lte_rrc_FailureReportSCG_NR_r15;
-static gint ett_lte_rrc_MeasResultFreqListFailNR_r15;
-static gint ett_lte_rrc_MeasResultFreqFailNR_r15;
-static gint ett_lte_rrc_SCPTMConfiguration_r13;
-static gint ett_lte_rrc_SCPTMConfiguration_v1340;
-static gint ett_lte_rrc_T_nonCriticalExtension_53;
-static gint ett_lte_rrc_SCPTMConfiguration_BR_r14;
-static gint ett_lte_rrc_SCPTMConfiguration_BR_v1610;
-static gint ett_lte_rrc_T_nonCriticalExtension_54;
-static gint ett_lte_rrc_SecurityModeCommand;
-static gint ett_lte_rrc_T_criticalExtensions_46;
-static gint ett_lte_rrc_T_c1_39;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_44;
-static gint ett_lte_rrc_SecurityModeCommand_r8_IEs;
-static gint ett_lte_rrc_SecurityModeCommand_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_55;
-static gint ett_lte_rrc_SecurityConfigSMC;
-static gint ett_lte_rrc_SecurityModeComplete;
-static gint ett_lte_rrc_T_criticalExtensions_47;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_45;
-static gint ett_lte_rrc_SecurityModeComplete_r8_IEs;
-static gint ett_lte_rrc_SecurityModeComplete_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_56;
-static gint ett_lte_rrc_SecurityModeFailure;
-static gint ett_lte_rrc_T_criticalExtensions_48;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_46;
-static gint ett_lte_rrc_SecurityModeFailure_r8_IEs;
-static gint ett_lte_rrc_SecurityModeFailure_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_57;
-static gint ett_lte_rrc_SidelinkUEInformation_r12;
-static gint ett_lte_rrc_T_criticalExtensions_49;
-static gint ett_lte_rrc_T_c1_40;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_47;
-static gint ett_lte_rrc_SidelinkUEInformation_r12_IEs;
-static gint ett_lte_rrc_SidelinkUEInformation_v1310_IEs;
-static gint ett_lte_rrc_T_commTxResourceInfoReqRelay_r13;
-static gint ett_lte_rrc_T_discTxResourceReq_v1310;
-static gint ett_lte_rrc_SidelinkUEInformation_v1430_IEs;
-static gint ett_lte_rrc_SidelinkUEInformation_v1530_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_58;
-static gint ett_lte_rrc_SL_CommTxResourceReq_r12;
-static gint ett_lte_rrc_SL_DiscTxResourceReqPerFreqList_r13;
-static gint ett_lte_rrc_SL_DiscTxResourceReq_r13;
-static gint ett_lte_rrc_SL_DestinationInfoList_r12;
-static gint ett_lte_rrc_SL_DiscSysInfoReportFreqList_r13;
-static gint ett_lte_rrc_SL_V2X_CommFreqList_r14;
-static gint ett_lte_rrc_SL_V2X_CommTxFreqList_r14;
-static gint ett_lte_rrc_SL_V2X_CommTxResourceReq_r14;
-static gint ett_lte_rrc_SystemInformation;
-static gint ett_lte_rrc_T_criticalExtensions_50;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_r15;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_48;
-static gint ett_lte_rrc_SystemInformation_r8_IEs;
-static gint ett_lte_rrc_T_sib_TypeAndInfo;
-static gint ett_lte_rrc_T_sib_TypeAndInfo_item;
-static gint ett_lte_rrc_SystemInformation_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_59;
-static gint ett_lte_rrc_PosSystemInformation_r15_IEs;
-static gint ett_lte_rrc_T_posSIB_TypeAndInfo_r15;
-static gint ett_lte_rrc_T_posSIB_TypeAndInfo_r15_item;
-static gint ett_lte_rrc_T_nonCriticalExtension_60;
-static gint ett_lte_rrc_SystemInformationBlockType1;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo;
-static gint ett_lte_rrc_T_cellSelectionInfo;
-static gint ett_lte_rrc_SystemInformationBlockType1_v890_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v8h0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v9e0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v10j0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v10l0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v10x0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v12j0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v15g0_IEs;
-static gint ett_lte_rrc_T_bandwidthReducedAccessRelatedInfo_v15g0;
-static gint ett_lte_rrc_T_nonCriticalExtension_61;
-static gint ett_lte_rrc_SystemInformationBlockType1_v920_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1130_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1250_IEs;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo_v1250;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1310_IEs;
-static gint ett_lte_rrc_T_bandwidthReducedAccessRelatedInfo_r13;
-static gint ett_lte_rrc_T_fdd_DownlinkOrTddSubframeBitmapBR_r13;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1320_IEs;
-static gint ett_lte_rrc_T_freqHoppingParametersDL_r13;
-static gint ett_lte_rrc_T_interval_DLHoppingConfigCommonModeA_r13;
-static gint ett_lte_rrc_T_interval_DLHoppingConfigCommonModeB_r13;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1350_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1360_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1430_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_1_r14_OF_CellAccessRelatedInfo_r14;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1450_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1530_IEs;
-static gint ett_lte_rrc_T_crs_IntfMitigConfig_r15;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo_5GC_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_CellAccessRelatedInfo_5GC_r15;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1540_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1610_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType1_v1700_IEs;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo_NTN_r17;
-static gint ett_lte_rrc_T_nonCriticalExtension_62;
-static gint ett_lte_rrc_PLMN_IdentityList;
-static gint ett_lte_rrc_PLMN_IdentityInfo;
-static gint ett_lte_rrc_PLMN_IdentityList_v1530;
-static gint ett_lte_rrc_PLMN_IdentityInfo_v1530;
-static gint ett_lte_rrc_PLMN_IdentityList_r15;
-static gint ett_lte_rrc_PLMN_IdentityList_v1610;
-static gint ett_lte_rrc_PLMN_IdentityList_v1700;
-static gint ett_lte_rrc_PLMN_IdentityInfo_r15;
-static gint ett_lte_rrc_T_plmn_Identity_5GC_r15;
-static gint ett_lte_rrc_PLMN_IdentityInfo_v1610;
-static gint ett_lte_rrc_PLMN_IdentityInfo_v1700;
-static gint ett_lte_rrc_SchedulingInfoList;
-static gint ett_lte_rrc_SchedulingInfoList_v12j0;
-static gint ett_lte_rrc_SchedulingInfoListExt_r12;
-static gint ett_lte_rrc_SchedulingInfo;
-static gint ett_lte_rrc_SchedulingInfo_v12j0;
-static gint ett_lte_rrc_SchedulingInfoExt_r12;
-static gint ett_lte_rrc_SchedulingInfoList_BR_r13;
-static gint ett_lte_rrc_SchedulingInfo_BR_r13;
-static gint ett_lte_rrc_SIB_MappingInfo;
-static gint ett_lte_rrc_SIB_MappingInfo_v12j0;
-static gint ett_lte_rrc_SystemInfoValueTagList_r13;
-static gint ett_lte_rrc_CellSelectionInfo_v920;
-static gint ett_lte_rrc_CellSelectionInfo_v1130;
-static gint ett_lte_rrc_CellSelectionInfo_v1250;
-static gint ett_lte_rrc_CellAccessRelatedInfo_r14;
-static gint ett_lte_rrc_CellAccessRelatedInfo_5GC_r15;
-static gint ett_lte_rrc_CellIdentity_5GC_r15;
-static gint ett_lte_rrc_TrackingAreaList_r17;
-static gint ett_lte_rrc_PosSchedulingInfoList_r15;
-static gint ett_lte_rrc_PosSchedulingInfo_r15;
-static gint ett_lte_rrc_PosSIB_MappingInfo_r15;
-static gint ett_lte_rrc_PosSIB_Type_r15;
-static gint ett_lte_rrc_SystemInformationBlockType1_MBMS_r14;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo_r14;
-static gint ett_lte_rrc_T_nonCriticalExtension_63;
-static gint ett_lte_rrc_PLMN_IdentityList_MBMS_r14;
-static gint ett_lte_rrc_SchedulingInfoList_MBMS_r14;
-static gint ett_lte_rrc_SchedulingInfo_MBMS_r14;
-static gint ett_lte_rrc_SIB_MappingInfo_MBMS_r14;
-static gint ett_lte_rrc_NonMBSFN_SubframeConfig_r14;
-static gint ett_lte_rrc_UEAssistanceInformation_r11;
-static gint ett_lte_rrc_T_criticalExtensions_51;
-static gint ett_lte_rrc_T_c1_41;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_49;
-static gint ett_lte_rrc_UEAssistanceInformation_r11_IEs;
-static gint ett_lte_rrc_UEAssistanceInformation_v1430_IEs;
-static gint ett_lte_rrc_T_sps_AssistanceInformation_r14;
-static gint ett_lte_rrc_T_rlm_Report_r14;
-static gint ett_lte_rrc_UEAssistanceInformation_v1450_IEs;
-static gint ett_lte_rrc_UEAssistanceInformation_v1530_IEs;
-static gint ett_lte_rrc_T_sps_AssistanceInformation_v1530;
-static gint ett_lte_rrc_UEAssistanceInformation_v1610_IEs;
-static gint ett_lte_rrc_UEAssistanceInformation_v1700_IEs;
-static gint ett_lte_rrc_UEAssistanceInformation_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_64;
-static gint ett_lte_rrc_BW_Preference_r14;
-static gint ett_lte_rrc_TrafficPatternInfoList_r14;
-static gint ett_lte_rrc_TrafficPatternInfo_r14;
-static gint ett_lte_rrc_TrafficPatternInfoList_v1530;
-static gint ett_lte_rrc_TrafficPatternInfo_v1530;
-static gint ett_lte_rrc_DelayBudgetReport_r14;
-static gint ett_lte_rrc_OverheatingAssistance_r14;
-static gint ett_lte_rrc_T_reducedUE_Category;
-static gint ett_lte_rrc_T_reducedMaxCCs;
-static gint ett_lte_rrc_OverheatingAssistance_v1610;
-static gint ett_lte_rrc_OverheatingAssistance_v1710;
-static gint ett_lte_rrc_UECapabilityEnquiry;
-static gint ett_lte_rrc_T_criticalExtensions_52;
-static gint ett_lte_rrc_T_c1_42;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_50;
-static gint ett_lte_rrc_UECapabilityEnquiry_r8_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v8a0_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1180_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_FreqBandIndicator_r11;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1310_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1430_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1510_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1530_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1550_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1560_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1610_IEs;
-static gint ett_lte_rrc_UECapabilityEnquiry_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_65;
-static gint ett_lte_rrc_UE_CapabilityRequest;
-static gint ett_lte_rrc_UECapabilityInformation;
-static gint ett_lte_rrc_T_criticalExtensions_53;
-static gint ett_lte_rrc_T_c1_43;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_51;
-static gint ett_lte_rrc_UECapabilityInformation_r8_IEs;
-static gint ett_lte_rrc_UECapabilityInformation_v8a0_IEs;
-static gint ett_lte_rrc_UECapabilityInformation_v1250_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_66;
-static gint ett_lte_rrc_ULDedicatedMessageSegment_r16;
-static gint ett_lte_rrc_T_criticalExtensions_54;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_52;
-static gint ett_lte_rrc_ULDedicatedMessageSegment_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_67;
-static gint ett_lte_rrc_UEInformationRequest_r9;
-static gint ett_lte_rrc_T_criticalExtensions_55;
-static gint ett_lte_rrc_T_c1_44;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_53;
-static gint ett_lte_rrc_UEInformationRequest_r9_IEs;
-static gint ett_lte_rrc_UEInformationRequest_v930_IEs;
-static gint ett_lte_rrc_UEInformationRequest_v1020_IEs;
-static gint ett_lte_rrc_UEInformationRequest_v1130_IEs;
-static gint ett_lte_rrc_UEInformationRequest_v1250_IEs;
-static gint ett_lte_rrc_UEInformationRequest_v1530_IEs;
-static gint ett_lte_rrc_UEInformationRequest_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_68;
-static gint ett_lte_rrc_UEInformationResponse_r9;
-static gint ett_lte_rrc_T_criticalExtensions_56;
-static gint ett_lte_rrc_T_c1_45;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_54;
-static gint ett_lte_rrc_UEInformationResponse_r9_IEs;
-static gint ett_lte_rrc_UEInformationResponse_v9e0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_69;
-static gint ett_lte_rrc_UEInformationResponse_v930_IEs;
-static gint ett_lte_rrc_UEInformationResponse_v1020_IEs;
-static gint ett_lte_rrc_UEInformationResponse_v1130_IEs;
-static gint ett_lte_rrc_UEInformationResponse_v1250_IEs;
-static gint ett_lte_rrc_UEInformationResponse_v1530_IEs;
-static gint ett_lte_rrc_UEInformationResponse_v1610_IEs;
-static gint ett_lte_rrc_UEInformationResponse_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_70;
-static gint ett_lte_rrc_RACH_Report_r16;
-static gint ett_lte_rrc_RACH_Report_v1610;
-static gint ett_lte_rrc_RLF_Report_r9;
-static gint ett_lte_rrc_T_measResultLastServCell_r9;
-static gint ett_lte_rrc_T_measResultNeighCells_r9;
-static gint ett_lte_rrc_T_failedPCellId_r10;
-static gint ett_lte_rrc_T_pci_arfcn_r10;
-static gint ett_lte_rrc_T_failedPCellId_v1090;
-static gint ett_lte_rrc_T_basicFields_r11;
-static gint ett_lte_rrc_T_previousUTRA_CellId_r11;
-static gint ett_lte_rrc_T_physCellId_r11;
-static gint ett_lte_rrc_T_selectedUTRA_CellId_r11;
-static gint ett_lte_rrc_T_physCellId_r11_01;
-static gint ett_lte_rrc_T_failedPCellId_v1250;
-static gint ett_lte_rrc_T_failedNR_PCellId_r16;
-static gint ett_lte_rrc_T_pci_arfcn;
-static gint ett_lte_rrc_T_reconnectCellId_r16;
-static gint ett_lte_rrc_T_eutraReconnectCellId;
-static gint ett_lte_rrc_T_measResultListNR_v1640;
-static gint ett_lte_rrc_RLF_Report_v9e0;
-static gint ett_lte_rrc_MeasResultList2EUTRA_r9;
-static gint ett_lte_rrc_MeasResultList2EUTRA_v9e0;
-static gint ett_lte_rrc_MeasResultList2EUTRA_v1250;
-static gint ett_lte_rrc_MeasResult2EUTRA_r9;
-static gint ett_lte_rrc_MeasResult2EUTRA_v9e0;
-static gint ett_lte_rrc_MeasResult2EUTRA_v1250;
-static gint ett_lte_rrc_MeasResultList2UTRA_r9;
-static gint ett_lte_rrc_MeasResult2UTRA_r9;
-static gint ett_lte_rrc_MeasResultList2CDMA2000_r9;
-static gint ett_lte_rrc_MeasResult2CDMA2000_r9;
-static gint ett_lte_rrc_LogMeasReport_r10;
-static gint ett_lte_rrc_LogMeasInfoList_r10;
-static gint ett_lte_rrc_LogMeasInfo_r10;
-static gint ett_lte_rrc_T_measResultServCell_r10;
-static gint ett_lte_rrc_T_measResultNeighCells_r10;
-static gint ett_lte_rrc_T_measResultListNR_v1640_01;
-static gint ett_lte_rrc_MeasResultListMBSFN_r12;
-static gint ett_lte_rrc_MeasResultMBSFN_r12;
-static gint ett_lte_rrc_T_mbsfn_Area_r12;
-static gint ett_lte_rrc_DataBLER_MCH_ResultList_r12;
-static gint ett_lte_rrc_DataBLER_MCH_Result_r12;
-static gint ett_lte_rrc_BLER_Result_r12;
-static gint ett_lte_rrc_T_blocksReceived_r12;
-static gint ett_lte_rrc_MeasResultList2GERAN_r10;
-static gint ett_lte_rrc_MeasResultFreqListNR_r16;
-static gint ett_lte_rrc_ConnEstFailReport_r11;
-static gint ett_lte_rrc_T_measResultFailedCell_r11;
-static gint ett_lte_rrc_T_measResultNeighCells_r11;
-static gint ett_lte_rrc_T_measResultListNR_v1640_02;
-static gint ett_lte_rrc_FlightPathInfoReport_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxWayPoint_r15_OF_WayPointLocation_r15;
-static gint ett_lte_rrc_T_dummy;
-static gint ett_lte_rrc_WayPointLocation_r15;
-static gint ett_lte_rrc_ULHandoverPreparationTransfer;
-static gint ett_lte_rrc_T_criticalExtensions_57;
-static gint ett_lte_rrc_T_c1_46;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_55;
-static gint ett_lte_rrc_ULHandoverPreparationTransfer_r8_IEs;
-static gint ett_lte_rrc_ULHandoverPreparationTransfer_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_71;
-static gint ett_lte_rrc_ULInformationTransfer;
-static gint ett_lte_rrc_T_criticalExtensions_58;
-static gint ett_lte_rrc_T_c1_47;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_56;
-static gint ett_lte_rrc_ULInformationTransfer_r8_IEs;
-static gint ett_lte_rrc_T_dedicatedInfoType_01;
-static gint ett_lte_rrc_ULInformationTransfer_v8a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_72;
-static gint ett_lte_rrc_ULInformationTransfer_r16_IEs;
-static gint ett_lte_rrc_T_dedicatedInfoType_r16;
-static gint ett_lte_rrc_ULInformationTransferIRAT_r16;
-static gint ett_lte_rrc_T_criticalExtensions_59;
-static gint ett_lte_rrc_T_c1_48;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_57;
-static gint ett_lte_rrc_ULInformationTransferIRAT_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_73;
-static gint ett_lte_rrc_ULInformationTransferMRDC_r15;
-static gint ett_lte_rrc_T_criticalExtensions_60;
-static gint ett_lte_rrc_T_c1_49;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_58;
-static gint ett_lte_rrc_ULInformationTransferMRDC_r15_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_74;
-static gint ett_lte_rrc_WLANConnectionStatusReport_r13;
-static gint ett_lte_rrc_T_criticalExtensions_61;
-static gint ett_lte_rrc_T_c1_50;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_59;
-static gint ett_lte_rrc_WLANConnectionStatusReport_r13_IEs;
-static gint ett_lte_rrc_WLANConnectionStatusReport_v1430_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_75;
-static gint ett_lte_rrc_SystemInformationBlockPos_r15;
-static gint ett_lte_rrc_SystemInformationBlockType2;
-static gint ett_lte_rrc_T_ac_BarringInfo;
-static gint ett_lte_rrc_T_freqInfo;
-static gint ett_lte_rrc_SystemInformationBlockType2_v8h0_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_AdditionalSpectrumEmission;
-static gint ett_lte_rrc_SystemInformationBlockType2_v9e0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType2_v9i0_IEs;
-static gint ett_lte_rrc_T_systemInformationBlockType2_v9i0_IEs_dummy;
-static gint ett_lte_rrc_SystemInformationBlockType2_v10m0_IEs;
-static gint ett_lte_rrc_T_freqInfo_v10l0;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_AdditionalSpectrumEmission_v10l0;
-static gint ett_lte_rrc_SystemInformationBlockType2_v10n0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType2_v13c0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_77;
-static gint ett_lte_rrc_AC_BarringConfig;
-static gint ett_lte_rrc_MBSFN_SubframeConfigList;
-static gint ett_lte_rrc_MBSFN_SubframeConfigList_v1430;
-static gint ett_lte_rrc_AC_BarringPerPLMN_List_r12;
-static gint ett_lte_rrc_AC_BarringPerPLMN_r12;
-static gint ett_lte_rrc_T_ac_BarringInfo_r12;
-static gint ett_lte_rrc_ACDC_BarringForCommon_r13;
-static gint ett_lte_rrc_ACDC_BarringPerPLMN_List_r13;
-static gint ett_lte_rrc_ACDC_BarringPerPLMN_r13;
-static gint ett_lte_rrc_BarringPerACDC_CategoryList_r13;
-static gint ett_lte_rrc_BarringPerACDC_Category_r13;
-static gint ett_lte_rrc_T_acdc_BarringConfig_r13;
-static gint ett_lte_rrc_UDT_Restricting_r13;
-static gint ett_lte_rrc_UDT_RestrictingPerPLMN_List_r13;
-static gint ett_lte_rrc_UDT_RestrictingPerPLMN_r13;
-static gint ett_lte_rrc_CIOT_EPS_OptimisationInfo_r13;
-static gint ett_lte_rrc_CIOT_OptimisationPLMN_r13;
-static gint ett_lte_rrc_PLMN_InfoList_r15;
-static gint ett_lte_rrc_PLMN_Info_r15;
-static gint ett_lte_rrc_SystemInformationBlockType3;
-static gint ett_lte_rrc_T_cellReselectionInfoCommon;
-static gint ett_lte_rrc_T_speedStateReselectionPars;
-static gint ett_lte_rrc_T_q_HystSF;
-static gint ett_lte_rrc_T_cellReselectionServingFreqInfo;
-static gint ett_lte_rrc_T_intraFreqCellReselectionInfo;
-static gint ett_lte_rrc_T_s_IntraSearch_v920;
-static gint ett_lte_rrc_T_s_NonIntraSearch_v920;
-static gint ett_lte_rrc_RedistributionServingInfo_r13;
-static gint ett_lte_rrc_CellReselectionServingFreqInfo_v1310;
-static gint ett_lte_rrc_CellReselectionServingFreqInfo_v1610;
-static gint ett_lte_rrc_SystemInformationBlockType3_v10j0_IEs;
-static gint ett_lte_rrc_SystemInformationBlockType3_v10l0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_78;
-static gint ett_lte_rrc_CellReselectionInfoCommon_v1460;
-static gint ett_lte_rrc_CellReselectionInfoHSDN_r15;
-static gint ett_lte_rrc_SystemInformationBlockType4;
-static gint ett_lte_rrc_IntraFreqNeighCellList;
-static gint ett_lte_rrc_IntraFreqNeighCellList_v1610;
-static gint ett_lte_rrc_IntraFreqNeighHSDN_CellList_r15;
-static gint ett_lte_rrc_IntraFreqNeighCellInfo;
-static gint ett_lte_rrc_IntraFreqNeighCellInfo_v1610;
-static gint ett_lte_rrc_IntraFreqExcludedCellList;
-static gint ett_lte_rrc_SystemInformationBlockType5;
-static gint ett_lte_rrc_SystemInformationBlockType5_v8h0_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v8h0;
-static gint ett_lte_rrc_SystemInformationBlockType5_v9e0_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v9e0;
-static gint ett_lte_rrc_SystemInformationBlockType5_v10j0_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v10j0;
-static gint ett_lte_rrc_SystemInformationBlockType5_v10l0_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v10l0;
-static gint ett_lte_rrc_SystemInformationBlockType5_v13a0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_79;
-static gint ett_lte_rrc_InterFreqCarrierFreqList;
-static gint ett_lte_rrc_InterFreqCarrierFreqList_v1250;
-static gint ett_lte_rrc_InterFreqCarrierFreqList_v1310;
-static gint ett_lte_rrc_InterFreqCarrierFreqList_v1350;
-static gint ett_lte_rrc_InterFreqCarrierFreqList_v13a0;
-static gint ett_lte_rrc_InterFreqCarrierFreqList_v1530;
-static gint ett_lte_rrc_InterFreqCarrierFreqList_v1610;
-static gint ett_lte_rrc_InterFreqCarrierFreqListExt_r12;
-static gint ett_lte_rrc_InterFreqCarrierFreqListExt_v1280;
-static gint ett_lte_rrc_InterFreqCarrierFreqListExt_v1310;
-static gint ett_lte_rrc_InterFreqCarrierFreqListExt_v1350;
-static gint ett_lte_rrc_InterFreqCarrierFreqListExt_v1360;
-static gint ett_lte_rrc_InterFreqCarrierFreqListExt_v1530;
-static gint ett_lte_rrc_InterFreqCarrierFreqListExt_v1610;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo;
-static gint ett_lte_rrc_T_threshX_Q_r9;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v8h0;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v9e0;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v10j0;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v10l0;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v1250;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_r12;
-static gint ett_lte_rrc_T_threshX_Q_r12;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v1310;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v1350;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v1360;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v1530;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_v1610;
-static gint ett_lte_rrc_InterFreqNeighCellList;
-static gint ett_lte_rrc_InterFreqNeighCellList_v1610;
-static gint ett_lte_rrc_InterFreqNeighHSDN_CellList_r15;
-static gint ett_lte_rrc_InterFreqNeighCellInfo;
-static gint ett_lte_rrc_InterFreqNeighCellInfo_v1610;
-static gint ett_lte_rrc_InterFreqExcludedCellList;
-static gint ett_lte_rrc_RedistributionInterFreqInfo_r13;
-static gint ett_lte_rrc_RedistributionNeighCellList_r13;
-static gint ett_lte_rrc_RedistributionNeighCell_r13;
-static gint ett_lte_rrc_SystemInformationBlockType6;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxUTRA_FDD_Carrier_OF_CarrierFreqInfoUTRA_v1250;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxUTRA_TDD_Carrier_OF_CarrierFreqInfoUTRA_v1250;
-static gint ett_lte_rrc_SystemInformationBlockType6_v8h0_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxUTRA_FDD_Carrier_OF_CarrierFreqInfoUTRA_FDD_v8h0;
-static gint ett_lte_rrc_T_nonCriticalExtension_80;
-static gint ett_lte_rrc_CarrierFreqInfoUTRA_v1250;
-static gint ett_lte_rrc_CarrierFreqListUTRA_FDD;
-static gint ett_lte_rrc_CarrierFreqUTRA_FDD;
-static gint ett_lte_rrc_T_threshX_Q_r9_01;
-static gint ett_lte_rrc_CarrierFreqInfoUTRA_FDD_v8h0;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_FreqBandIndicator_UTRA_FDD;
-static gint ett_lte_rrc_CarrierFreqListUTRA_FDD_Ext_r12;
-static gint ett_lte_rrc_CarrierFreqUTRA_FDD_Ext_r12;
-static gint ett_lte_rrc_T_threshX_Q_r12_01;
-static gint ett_lte_rrc_FreqBandIndicator_UTRA_FDD_r12;
-static gint ett_lte_rrc_CarrierFreqListUTRA_TDD;
-static gint ett_lte_rrc_CarrierFreqUTRA_TDD;
-static gint ett_lte_rrc_CarrierFreqListUTRA_TDD_Ext_r12;
-static gint ett_lte_rrc_CarrierFreqUTRA_TDD_r12;
-static gint ett_lte_rrc_SystemInformationBlockType7;
-static gint ett_lte_rrc_CarrierFreqsInfoListGERAN;
-static gint ett_lte_rrc_CarrierFreqsInfoGERAN;
-static gint ett_lte_rrc_T_commonInfo;
-static gint ett_lte_rrc_SystemInformationBlockType8;
-static gint ett_lte_rrc_T_parametersHRPD;
-static gint ett_lte_rrc_T_parameters1XRTT;
-static gint ett_lte_rrc_CellReselectionParametersCDMA2000;
-static gint ett_lte_rrc_CellReselectionParametersCDMA2000_r11;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_NeighCellCDMA2000_r11;
-static gint ett_lte_rrc_CellReselectionParametersCDMA2000_v920;
-static gint ett_lte_rrc_NeighCellListCDMA2000;
-static gint ett_lte_rrc_NeighCellCDMA2000;
-static gint ett_lte_rrc_NeighCellCDMA2000_r11;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_NeighCellsPerBandclassCDMA2000_r11;
-static gint ett_lte_rrc_NeighCellsPerBandclassListCDMA2000;
-static gint ett_lte_rrc_NeighCellsPerBandclassCDMA2000;
-static gint ett_lte_rrc_NeighCellsPerBandclassCDMA2000_r11;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_40_OF_PhysCellIdCDMA2000;
-static gint ett_lte_rrc_NeighCellListCDMA2000_v920;
-static gint ett_lte_rrc_NeighCellCDMA2000_v920;
-static gint ett_lte_rrc_NeighCellsPerBandclassListCDMA2000_v920;
-static gint ett_lte_rrc_NeighCellsPerBandclassCDMA2000_v920;
-static gint ett_lte_rrc_PhysCellIdListCDMA2000;
-static gint ett_lte_rrc_PhysCellIdListCDMA2000_v920;
-static gint ett_lte_rrc_BandClassListCDMA2000;
-static gint ett_lte_rrc_BandClassInfoCDMA2000;
-static gint ett_lte_rrc_AC_BarringConfig1XRTT_r9;
-static gint ett_lte_rrc_SIB8_PerPLMN_List_r11;
-static gint ett_lte_rrc_SIB8_PerPLMN_r11;
-static gint ett_lte_rrc_T_parametersCDMA2000_r11;
-static gint ett_lte_rrc_ParametersCDMA2000_r11;
-static gint ett_lte_rrc_T_systemTimeInfo_r11;
-static gint ett_lte_rrc_T_parametersHRPD_r11;
-static gint ett_lte_rrc_T_parameters1XRTT_r11;
-static gint ett_lte_rrc_SystemInformationBlockType9;
-static gint ett_lte_rrc_SystemInformationBlockType10;
-static gint ett_lte_rrc_SystemInformationBlockType11;
-static gint ett_lte_rrc_SystemInformationBlockType12_r9;
-static gint ett_lte_rrc_SystemInformationBlockType13_r9;
-static gint ett_lte_rrc_SystemInformationBlockType14_r11;
-static gint ett_lte_rrc_T_eab_Param_r11;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_EAB_ConfigPLMN_r11;
-static gint ett_lte_rrc_EAB_ConfigPLMN_r11;
-static gint ett_lte_rrc_EAB_Config_r11;
-static gint ett_lte_rrc_SystemInformationBlockType15_r11;
-static gint ett_lte_rrc_MBMS_SAI_List_r11;
-static gint ett_lte_rrc_MBMS_SAI_InterFreqList_r11;
-static gint ett_lte_rrc_MBMS_SAI_InterFreqList_v1140;
-static gint ett_lte_rrc_MBMS_SAI_InterFreq_r11;
-static gint ett_lte_rrc_MBMS_SAI_InterFreq_v1140;
-static gint ett_lte_rrc_MBMS_InterFreqCarrierTypeList_r14;
-static gint ett_lte_rrc_MBMS_CarrierType_r14;
-static gint ett_lte_rrc_SystemInformationBlockType16_r11;
-static gint ett_lte_rrc_T_timeInfo_r11;
-static gint ett_lte_rrc_SystemInformationBlockType17_r12;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_WLAN_OffloadInfoPerPLMN_r12;
-static gint ett_lte_rrc_WLAN_OffloadInfoPerPLMN_r12;
-static gint ett_lte_rrc_WLAN_Id_List_r12;
-static gint ett_lte_rrc_WLAN_Identifiers_r12;
-static gint ett_lte_rrc_SystemInformationBlockType18_r12;
-static gint ett_lte_rrc_T_commConfig_r12;
-static gint ett_lte_rrc_SystemInformationBlockType19_r12;
-static gint ett_lte_rrc_T_discConfig_r12;
-static gint ett_lte_rrc_T_discConfig_v1310;
-static gint ett_lte_rrc_T_discConfigRelay_r13;
-static gint ett_lte_rrc_T_discConfigPS_13;
-static gint ett_lte_rrc_SL_CarrierFreqInfoList_r12;
-static gint ett_lte_rrc_SL_CarrierFreqInfoList_v1310;
-static gint ett_lte_rrc_SL_CarrierFreqInfo_r12;
-static gint ett_lte_rrc_SL_DiscConfigRelayUE_r13;
-static gint ett_lte_rrc_SL_DiscConfigRemoteUE_r13;
-static gint ett_lte_rrc_ReselectionInfoRelay_r13;
-static gint ett_lte_rrc_SL_CarrierFreqInfo_v1310;
-static gint ett_lte_rrc_PLMN_IdentityList4_r12;
-static gint ett_lte_rrc_PLMN_IdentityInfo2_r12;
-static gint ett_lte_rrc_SL_DiscTxResourcesInterFreq_r13;
-static gint ett_lte_rrc_SL_DiscConfigOtherInterFreq_r13;
-static gint ett_lte_rrc_SL_ResourcesInterFreq_r13;
-static gint ett_lte_rrc_SystemInformationBlockType20_r13;
-static gint ett_lte_rrc_T_br_BCCH_Config_r14;
-static gint ett_lte_rrc_T_mpdcch_StartSF_SC_MCCH_r14;
-static gint ett_lte_rrc_SC_MCCH_SchedulingInfo_r14;
-static gint ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14;
-static gint ett_lte_rrc_SystemInformationBlockType21_r14;
-static gint ett_lte_rrc_SL_V2X_ConfigCommon_r14;
-static gint ett_lte_rrc_SystemInformationBlockType24_r15;
-static gint ett_lte_rrc_CarrierFreqListNR_r15;
-static gint ett_lte_rrc_CarrierFreqListNR_v1610;
-static gint ett_lte_rrc_CarrierFreqListNR_v1700;
-static gint ett_lte_rrc_CarrierFreqListNR_v1720;
-static gint ett_lte_rrc_CarrierFreqNR_r15;
-static gint ett_lte_rrc_T_threshX_Q_r15;
-static gint ett_lte_rrc_CarrierFreqNR_v1610;
-static gint ett_lte_rrc_CarrierFreqNR_v1700;
-static gint ett_lte_rrc_CarrierFreqNR_v1720;
-static gint ett_lte_rrc_MultiBandNsPmaxListNR_1_v1550;
-static gint ett_lte_rrc_MultiBandNsPmaxListNR_v1550;
-static gint ett_lte_rrc_MultiBandNsPmaxListNR_1_v1760;
-static gint ett_lte_rrc_MultiBandNsPmaxListNR_v1760;
-static gint ett_lte_rrc_AllowedCellListNR_r16;
-static gint ett_lte_rrc_NR_FreqNeighHSDN_CellList_r17;
-static gint ett_lte_rrc_SystemInformationBlockType25_r15;
-static gint ett_lte_rrc_T_uac_AC1_SelectAssistInfo_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_2_maxPLMN_r11_OF_UAC_AC1_SelectAssistInfo_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_2_maxPLMN_r11_OF_UAC_AC1_SelectAssistInfo_r16;
-static gint ett_lte_rrc_UAC_BarringPerPLMN_List_r15;
-static gint ett_lte_rrc_UAC_BarringPerPLMN_r15;
-static gint ett_lte_rrc_T_uac_AC_BarringListType_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_maxAccessCat_1_r15_OF_UAC_BarringInfoSetIndex_r15;
-static gint ett_lte_rrc_UAC_BarringPerCatList_r15;
-static gint ett_lte_rrc_UAC_BarringPerCat_r15;
-static gint ett_lte_rrc_UAC_BarringInfoSetList_r15;
-static gint ett_lte_rrc_UAC_BarringInfoSetList_v1700;
-static gint ett_lte_rrc_UAC_BarringInfoSet_r15;
-static gint ett_lte_rrc_UAC_BarringInfoSet_v1700;
-static gint ett_lte_rrc_SystemInformationBlockType26_r15;
-static gint ett_lte_rrc_SystemInformationBlockType26a_r16;
-static gint ett_lte_rrc_BandListENDC_r16;
-static gint ett_lte_rrc_PLMN_InfoList_r16;
-static gint ett_lte_rrc_PLMN_Info_r16;
-static gint ett_lte_rrc_SystemInformationBlockType27_r16;
-static gint ett_lte_rrc_CarrierFreqListNBIOT_r16;
-static gint ett_lte_rrc_CarrierFreqNBIOT_r16;
-static gint ett_lte_rrc_SystemInformationBlockType28_r16;
-static gint ett_lte_rrc_SystemInformationBlockType29_r16;
-static gint ett_lte_rrc_SystemInformationBlockType30_r17;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_PLMN_Identity;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_ApplicableDisasterInfo_r17;
-static gint ett_lte_rrc_ApplicableDisasterInfo_r17;
-static gint ett_lte_rrc_SystemInformationBlockType31_r17;
-static gint ett_lte_rrc_ServingSatelliteInfo_r17;
-static gint ett_lte_rrc_T_ephemerisInfo_r17;
-static gint ett_lte_rrc_T_nta_CommonParameters_r17;
-static gint ett_lte_rrc_T_epochTime_r17;
-static gint ett_lte_rrc_SystemInformationBlockType32_r17;
-static gint ett_lte_rrc_SatelliteInfoList_r17;
-static gint ett_lte_rrc_SatelliteInfo_r17;
-static gint ett_lte_rrc_T_serviceInfo_r17;
-static gint ett_lte_rrc_T_footprintInfo_r17;
-static gint ett_lte_rrc_T_referencePoint_r17;
-static gint ett_lte_rrc_T_elevationAngles_r17;
-static gint ett_lte_rrc_AntennaInfoCommon;
-static gint ett_lte_rrc_AntennaInfoDedicated;
-static gint ett_lte_rrc_T_codebookSubsetRestriction;
-static gint ett_lte_rrc_T_ue_TransmitAntennaSelection;
-static gint ett_lte_rrc_AntennaInfoDedicated_v920;
-static gint ett_lte_rrc_T_codebookSubsetRestriction_v920;
-static gint ett_lte_rrc_AntennaInfoDedicated_r10;
-static gint ett_lte_rrc_T_ue_TransmitAntennaSelection_01;
-static gint ett_lte_rrc_AntennaInfoDedicated_v10i0;
-static gint ett_lte_rrc_AntennaInfoDedicated_v1250;
-static gint ett_lte_rrc_AntennaInfoDedicated_v1430;
-static gint ett_lte_rrc_AntennaInfoDedicatedSTTI_r15;
-static gint ett_lte_rrc_T_antennaInfoDedicatedSTTI_r15_setup;
-static gint ett_lte_rrc_T_codebookSubsetRestriction_01;
-static gint ett_lte_rrc_AntennaInfoDedicated_v1530;
-static gint ett_lte_rrc_T_antennaInfoDedicated_v1530_setup;
-static gint ett_lte_rrc_AntennaInfoUL_r10;
-static gint ett_lte_rrc_AntennaInfoUL_STTI_r15;
-static gint ett_lte_rrc_AUL_Config_r15;
-static gint ett_lte_rrc_T_aUL_Config_r15_setup;
-static gint ett_lte_rrc_CQI_ReportAperiodic_r10;
-static gint ett_lte_rrc_T_cQI_ReportAperiodic_r10_setup;
-static gint ett_lte_rrc_T_aperiodicCSI_Trigger_r10;
-static gint ett_lte_rrc_CQI_ReportAperiodic_v1250;
-static gint ett_lte_rrc_T_cQI_ReportAperiodic_v1250_setup;
-static gint ett_lte_rrc_T_aperiodicCSI_Trigger_v1250;
-static gint ett_lte_rrc_CQI_ReportAperiodic_v1310;
-static gint ett_lte_rrc_T_cQI_ReportAperiodic_v1310_setup;
-static gint ett_lte_rrc_T_aperiodicCSI_Trigger_v1310;
-static gint ett_lte_rrc_T_aperiodicCSI_Trigger2_r13;
-static gint ett_lte_rrc_T_cQI_ReportAperiodic_v1310_setup_aperiodicCSI_Trigger2_r13_setup;
-static gint ett_lte_rrc_CQI_ReportAperiodicProc_r11;
-static gint ett_lte_rrc_CQI_ReportAperiodicProc_v1310;
-static gint ett_lte_rrc_CQI_ReportAperiodicHybrid_r14;
-static gint ett_lte_rrc_T_triggers_r14;
-static gint ett_lte_rrc_T_oneBit_r14;
-static gint ett_lte_rrc_T_twoBit_r14;
-static gint ett_lte_rrc_T_threeBit_r14;
-static gint ett_lte_rrc_CQI_ReportBoth_r11;
-static gint ett_lte_rrc_CQI_ReportBoth_v1250;
-static gint ett_lte_rrc_CQI_ReportBoth_v1310;
-static gint ett_lte_rrc_CSI_IM_ConfigToAddModList_r11;
-static gint ett_lte_rrc_CSI_IM_ConfigToAddModListExt_r13;
-static gint ett_lte_rrc_CSI_IM_ConfigToReleaseList_r11;
-static gint ett_lte_rrc_CSI_IM_ConfigToReleaseListExt_r13;
-static gint ett_lte_rrc_CSI_ProcessToAddModList_r11;
-static gint ett_lte_rrc_CSI_ProcessToReleaseList_r11;
-static gint ett_lte_rrc_CQI_ReportBothProc_r11;
-static gint ett_lte_rrc_CQI_ReportConfig;
-static gint ett_lte_rrc_CQI_ReportConfig_v920;
-static gint ett_lte_rrc_CQI_ReportConfig_r10;
-static gint ett_lte_rrc_T_csi_SubframePatternConfig_r10;
-static gint ett_lte_rrc_T_cQI_ReportConfig_r10_csi_SubframePatternConfig_r10_setup;
-static gint ett_lte_rrc_CQI_ReportConfig_v1130;
-static gint ett_lte_rrc_CQI_ReportConfig_v1250;
-static gint ett_lte_rrc_T_csi_SubframePatternConfig_r12;
-static gint ett_lte_rrc_T_cQI_ReportConfig_v1250_csi_SubframePatternConfig_r12_setup;
-static gint ett_lte_rrc_CQI_ReportConfig_v1310;
-static gint ett_lte_rrc_CQI_ReportConfig_v1320;
-static gint ett_lte_rrc_CQI_ReportConfig_v1430;
-static gint ett_lte_rrc_CQI_ReportConfig_v1530;
-static gint ett_lte_rrc_CQI_ReportConfig_r15;
-static gint ett_lte_rrc_T_cQI_ReportConfig_r15_setup;
-static gint ett_lte_rrc_CQI_ReportConfigSCell_r10;
-static gint ett_lte_rrc_CQI_ReportConfigSCell_r15;
-static gint ett_lte_rrc_CQI_ReportPeriodic;
-static gint ett_lte_rrc_T_cQI_ReportPeriodic_setup;
-static gint ett_lte_rrc_T_cqi_FormatIndicatorPeriodic;
-static gint ett_lte_rrc_T_subbandCQI;
-static gint ett_lte_rrc_CQI_ReportPeriodic_r10;
-static gint ett_lte_rrc_T_cQI_ReportPeriodic_r10_setup;
-static gint ett_lte_rrc_T_cqi_FormatIndicatorPeriodic_r10;
-static gint ett_lte_rrc_T_widebandCQI_r10;
-static gint ett_lte_rrc_T_subbandCQI_r10;
-static gint ett_lte_rrc_T_csi_ConfigIndex_r10;
-static gint ett_lte_rrc_T_cQI_ReportPeriodic_r10_setup_csi_ConfigIndex_r10_setup;
-static gint ett_lte_rrc_CQI_ReportPeriodic_v1130;
-static gint ett_lte_rrc_CQI_ReportPeriodic_v1310;
-static gint ett_lte_rrc_CQI_ReportPeriodic_v1320;
-static gint ett_lte_rrc_CQI_ReportPeriodicSCell_r15;
-static gint ett_lte_rrc_T_cQI_ReportPeriodicSCell_r15_setup;
-static gint ett_lte_rrc_T_csi_SubframePatternDormant_r15;
-static gint ett_lte_rrc_T_cQI_ReportPeriodicSCell_r15_setup_csi_SubframePatternDormant_r15_setup;
-static gint ett_lte_rrc_T_cqi_FormatIndicatorDormant_r15;
-static gint ett_lte_rrc_T_widebandCQI_r15;
-static gint ett_lte_rrc_T_subbandCQI_r15;
-static gint ett_lte_rrc_CQI_ReportPeriodicProcExtToAddModList_r11;
-static gint ett_lte_rrc_CQI_ReportPeriodicProcExtToReleaseList_r11;
-static gint ett_lte_rrc_CQI_ReportPeriodicProcExt_r11;
-static gint ett_lte_rrc_T_cqi_FormatIndicatorPeriodic_r11;
-static gint ett_lte_rrc_T_widebandCQI_r11;
-static gint ett_lte_rrc_T_subbandCQI_r11;
-static gint ett_lte_rrc_T_csi_ConfigIndex_r11;
-static gint ett_lte_rrc_T_cQI_ReportPeriodicProcExt_r11_csi_ConfigIndex_r11_setup;
-static gint ett_lte_rrc_CQI_ShortConfigSCell_r15;
-static gint ett_lte_rrc_T_cQI_ShortConfigSCell_r15_setup;
-static gint ett_lte_rrc_T_cqi_FormatIndicatorShort_r15;
-static gint ett_lte_rrc_T_widebandCQI_Short_r15;
-static gint ett_lte_rrc_T_subbandCQI_Short_r15;
-static gint ett_lte_rrc_CQI_ReportPeriodicSCell_v1730;
-static gint ett_lte_rrc_CRI_ReportConfig_r13;
-static gint ett_lte_rrc_T_cRI_ReportConfig_r13_setup;
-static gint ett_lte_rrc_CrossCarrierSchedulingConfig_r10;
-static gint ett_lte_rrc_T_schedulingCellInfo_r10;
-static gint ett_lte_rrc_T_own_r10;
-static gint ett_lte_rrc_T_other_r10;
-static gint ett_lte_rrc_CrossCarrierSchedulingConfig_r13;
-static gint ett_lte_rrc_T_schedulingCellInfo_r13;
-static gint ett_lte_rrc_T_own_r13;
-static gint ett_lte_rrc_T_other_r13;
-static gint ett_lte_rrc_CrossCarrierSchedulingConfigLAA_UL_r14;
-static gint ett_lte_rrc_CRS_ChEstMPDCCH_ConfigCommon_r16;
-static gint ett_lte_rrc_CRS_ChEstMPDCCH_ConfigDedicated_r16;
-static gint ett_lte_rrc_CSI_IM_Config_r11;
-static gint ett_lte_rrc_CSI_IM_ConfigExt_r12;
-static gint ett_lte_rrc_CSI_Process_r11;
-static gint ett_lte_rrc_T_csi_IM_ConfigIdList_r12;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_CSI_IM_ConfigId_r12;
-static gint ett_lte_rrc_T_cqi_ReportAperiodicProc2_r12;
-static gint ett_lte_rrc_T_cqi_ReportAperiodicProc_v1310;
-static gint ett_lte_rrc_T_cqi_ReportAperiodicProc2_v1310;
-static gint ett_lte_rrc_CSI_RS_Config_r10;
-static gint ett_lte_rrc_T_csi_RS_r10;
-static gint ett_lte_rrc_T_cSI_RS_Config_r10_csi_RS_r10_setup;
-static gint ett_lte_rrc_CSI_RS_Config_v1250;
-static gint ett_lte_rrc_T_ds_ZeroTxPowerCSI_RS_r12;
-static gint ett_lte_rrc_T_cSI_RS_Config_v1250_ds_ZeroTxPowerCSI_RS_r12_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxDS_ZTP_CSI_RS_r12_OF_ZeroTxPowerCSI_RS_r12;
-static gint ett_lte_rrc_CSI_RS_Config_v1310;
-static gint ett_lte_rrc_CSI_RS_Config_v1430;
-static gint ett_lte_rrc_CSI_RS_Config_v1480;
-static gint ett_lte_rrc_CSI_RS_Config_v1530;
-static gint ett_lte_rrc_CSI_RS_Config_r15;
-static gint ett_lte_rrc_T_cSI_RS_Config_r15_setup;
-static gint ett_lte_rrc_ZeroTxPowerCSI_RS_Conf_r12;
-static gint ett_lte_rrc_ZeroTxPowerCSI_RS_r12;
-static gint ett_lte_rrc_CSI_RS_ConfigBeamformed_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_7_OF_CSI_RS_ConfigNZPId_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_CSI_IM_ConfigId_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_P_C_AndCBSR_Pair_r13;
-static gint ett_lte_rrc_T_ace_For4Tx_PerResourceConfigList_r13;
-static gint ett_lte_rrc_CSI_RS_ConfigBeamformed_r14;
-static gint ett_lte_rrc_T_ace_For4Tx_PerResourceConfigList_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_CSI_RS_ConfigNZP_r11;
-static gint ett_lte_rrc_CSI_RS_ConfigBeamformed_v1430;
-static gint ett_lte_rrc_CSI_RS_Config_NZP_v1430;
-static gint ett_lte_rrc_CSI_RS_ConfigNZP_Activation_r14;
-static gint ett_lte_rrc_CSI_RS_ConfigEMIMO_r13;
-static gint ett_lte_rrc_T_cSI_RS_ConfigEMIMO_r13_setup;
-static gint ett_lte_rrc_CSI_RS_ConfigEMIMO_v1430;
-static gint ett_lte_rrc_T_cSI_RS_ConfigEMIMO_v1430_setup;
-static gint ett_lte_rrc_CSI_RS_ConfigEMIMO_v1480;
-static gint ett_lte_rrc_T_cSI_RS_ConfigEMIMO_v1480_setup;
-static gint ett_lte_rrc_CSI_RS_ConfigEMIMO_v1530;
-static gint ett_lte_rrc_T_cSI_RS_ConfigEMIMO_v1530_setup;
-static gint ett_lte_rrc_CSI_RS_ConfigEMIMO2_r14;
-static gint ett_lte_rrc_CSI_RS_ConfigEMIMO_Hybrid_r14;
-static gint ett_lte_rrc_T_cSI_RS_ConfigEMIMO_Hybrid_r14_setup;
-static gint ett_lte_rrc_CSI_RS_ConfigNonPrecoded_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_CSI_IM_ConfigId_r13;
-static gint ett_lte_rrc_CSI_RS_ConfigNonPrecoded_v1430;
-static gint ett_lte_rrc_CSI_RS_ConfigNonPrecoded_v1480;
-static gint ett_lte_rrc_CSI_RS_ConfigNonPrecoded_v1530;
-static gint ett_lte_rrc_CSI_RS_ConfigNZP_r11;
-static gint ett_lte_rrc_T_qcl_CRS_Info_r11;
-static gint ett_lte_rrc_T_mbsfn_SubframeConfigList_r11;
-static gint ett_lte_rrc_T_cSI_RS_ConfigNZP_r11_qcl_CRS_Info_r11_mbsfn_SubframeConfigList_r11_setup;
-static gint ett_lte_rrc_T_mbsfn_SubframeConfigList_v1430;
-static gint ett_lte_rrc_T_cSI_RS_ConfigNZP_r11_eag_3_mbsfn_SubframeConfigList_v1430_setup;
-static gint ett_lte_rrc_CSI_RS_ConfigNZP_EMIMO_r13;
-static gint ett_lte_rrc_T_cSI_RS_ConfigNZP_EMIMO_r13_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_NZP_ResourceConfig_r13;
-static gint ett_lte_rrc_CSI_RS_ConfigNZP_EMIMO_v1430;
-static gint ett_lte_rrc_SEQUENCE_SIZE_0_4_OF_NZP_ResourceConfig_r13;
-static gint ett_lte_rrc_NZP_ResourceConfig_r13;
-static gint ett_lte_rrc_CSI_RS_ConfigZP_r11;
-static gint ett_lte_rrc_CSI_RS_ConfigZP_ApList_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCSI_RS_ZP_r11_OF_CSI_RS_ConfigZP_r11;
-static gint ett_lte_rrc_DMRS_Config_r11;
-static gint ett_lte_rrc_T_dMRS_Config_r11_setup;
-static gint ett_lte_rrc_DMRS_Config_v1310;
-static gint ett_lte_rrc_EPDCCH_Config_r11;
-static gint ett_lte_rrc_T_config_r11;
-static gint ett_lte_rrc_T_ePDCCH_Config_r11_config_r11_setup;
-static gint ett_lte_rrc_T_subframePatternConfig_r11;
-static gint ett_lte_rrc_T_ePDCCH_Config_r11_config_r11_setup_subframePatternConfig_r11_setup;
-static gint ett_lte_rrc_EPDCCH_SetConfigToAddModList_r11;
-static gint ett_lte_rrc_EPDCCH_SetConfigToReleaseList_r11;
-static gint ett_lte_rrc_EPDCCH_SetConfig_r11;
-static gint ett_lte_rrc_T_resourceBlockAssignment_r11;
-static gint ett_lte_rrc_T_csi_RS_ConfigZPId2_r12;
-static gint ett_lte_rrc_T_numberPRB_Pairs_v1310;
-static gint ett_lte_rrc_T_mpdcch_config_r13;
-static gint ett_lte_rrc_T_ePDCCH_SetConfig_r11_eag_2_mpdcch_config_r13_setup;
-static gint ett_lte_rrc_T_mpdcch_StartSF_UESS_r13;
-static gint ett_lte_rrc_EIMTA_MainConfig_r12;
-static gint ett_lte_rrc_T_eIMTA_MainConfig_r12_setup;
-static gint ett_lte_rrc_EIMTA_MainConfigServCell_r12;
-static gint ett_lte_rrc_T_eIMTA_MainConfigServCell_r12_setup;
-static gint ett_lte_rrc_T_mbsfn_SubframeConfigList_v1250;
-static gint ett_lte_rrc_T_eIMTA_MainConfigServCell_r12_setup_mbsfn_SubframeConfigList_v1250_setup;
-static gint ett_lte_rrc_GWUS_Config_r16;
-static gint ett_lte_rrc_GWUS_TimeParameters_r16;
-static gint ett_lte_rrc_GWUS_ResourceConfig_r16;
-static gint ett_lte_rrc_T_resourceMappingPattern_r16;
-static gint ett_lte_rrc_GWUS_GroupsForServiceList_r16;
-static gint ett_lte_rrc_GWUS_GroupNarrowBandList_r16;
-static gint ett_lte_rrc_GWUS_NumGroupsList_r16;
-static gint ett_lte_rrc_GWUS_ProbThreshList_r16;
-static gint ett_lte_rrc_LogicalChannelConfig;
-static gint ett_lte_rrc_T_ul_SpecificParameters;
-static gint ett_lte_rrc_T_allowedTTI_Lengths_r15;
-static gint ett_lte_rrc_T_logicalChannelConfig_eag_4_allowedTTI_Lengths_r15_setup;
-static gint ett_lte_rrc_T_logicalChannelSR_Restriction_r15;
-static gint ett_lte_rrc_T_channelAccessPriority_r15;
-static gint ett_lte_rrc_LWA_Configuration_r13;
-static gint ett_lte_rrc_T_lWA_Configuration_r13_setup;
-static gint ett_lte_rrc_LWA_Config_r13;
-static gint ett_lte_rrc_LWIP_Configuration_r13;
-static gint ett_lte_rrc_T_lWIP_Configuration_r13_setup;
-static gint ett_lte_rrc_LWIP_Config_r13;
-static gint ett_lte_rrc_MAC_MainConfig;
-static gint ett_lte_rrc_T_ul_SCH_Config;
-static gint ett_lte_rrc_T_phr_Config;
-static gint ett_lte_rrc_T_mAC_MainConfig_phr_Config_setup;
-static gint ett_lte_rrc_T_mac_MainConfig_v1020;
-static gint ett_lte_rrc_T_dualConnectivityPHR;
-static gint ett_lte_rrc_T_mAC_MainConfig_eag_4_dualConnectivityPHR_setup;
-static gint ett_lte_rrc_T_logicalChannelSR_Config_r12;
-static gint ett_lte_rrc_T_mAC_MainConfig_eag_4_logicalChannelSR_Config_r12_setup;
-static gint ett_lte_rrc_T_eDRX_Config_CycleStartOffset_r13;
-static gint ett_lte_rrc_T_mAC_MainConfig_eag_5_eDRX_Config_CycleStartOffset_r13_setup;
-static gint ett_lte_rrc_T_drx_Config_r13;
-static gint ett_lte_rrc_T_skipUplinkTx_r14;
-static gint ett_lte_rrc_T_mAC_MainConfig_eag_7_skipUplinkTx_r14_setup;
-static gint ett_lte_rrc_T_dataInactivityTimerConfig_r14;
-static gint ett_lte_rrc_T_mAC_MainConfig_eag_7_dataInactivityTimerConfig_r14_setup;
-static gint ett_lte_rrc_T_shortTTI_AndSPT_r15;
-static gint ett_lte_rrc_T_mAC_MainConfig_eag_9_shortTTI_AndSPT_r15_setup;
-static gint ett_lte_rrc_T_dormantStateTimers_r15;
-static gint ett_lte_rrc_T_mAC_MainConfig_eag_9_dormantStateTimers_r15_setup;
-static gint ett_lte_rrc_T_offsetThresholdTA_r17;
-static gint ett_lte_rrc_T_sr_ProhibitTimerOffset_r17;
-static gint ett_lte_rrc_MAC_MainConfigSCell_r11;
-static gint ett_lte_rrc_DRX_Config;
-static gint ett_lte_rrc_T_dRX_Config_setup;
-static gint ett_lte_rrc_T_longDRX_CycleStartOffset;
-static gint ett_lte_rrc_T_shortDRX;
-static gint ett_lte_rrc_DRX_Config_v1130;
-static gint ett_lte_rrc_T_longDRX_CycleStartOffset_v1130;
-static gint ett_lte_rrc_DRX_Config_v1310;
-static gint ett_lte_rrc_T_longDRX_CycleStartOffset_v1310;
-static gint ett_lte_rrc_DRX_Config_r13;
-static gint ett_lte_rrc_DRX_Config_r15;
-static gint ett_lte_rrc_STAG_ToReleaseList_r11;
-static gint ett_lte_rrc_STAG_ToAddModList_r11;
-static gint ett_lte_rrc_STAG_ToAddMod_r11;
-static gint ett_lte_rrc_P_C_AndCBSR_r11;
-static gint ett_lte_rrc_P_C_AndCBSR_r13;
-static gint ett_lte_rrc_T_cbsr_Selection_r13;
-static gint ett_lte_rrc_T_nonPrecoded_r13;
-static gint ett_lte_rrc_T_beamformedK1a_r13;
-static gint ett_lte_rrc_T_beamformedKN_r13;
-static gint ett_lte_rrc_P_C_AndCBSR_r15;
-static gint ett_lte_rrc_P_C_AndCBSR_Pair_r13a;
-static gint ett_lte_rrc_P_C_AndCBSR_Pair_r13;
-static gint ett_lte_rrc_P_C_AndCBSR_Pair_r15;
-static gint ett_lte_rrc_PDCCH_ConfigSCell_r13;
-static gint ett_lte_rrc_PDCCH_ConfigLAA_r14;
-static gint ett_lte_rrc_PDCCH_CandidateReductions_r13;
-static gint ett_lte_rrc_T_pDCCH_CandidateReductions_r13_setup;
-static gint ett_lte_rrc_PDCCH_CandidateReductionsLAA_UL_r14;
-static gint ett_lte_rrc_T_pDCCH_CandidateReductionsLAA_UL_r14_setup;
-static gint ett_lte_rrc_PDCP_Config;
-static gint ett_lte_rrc_T_rlc_AM;
-static gint ett_lte_rrc_T_rlc_UM;
-static gint ett_lte_rrc_T_headerCompression;
-static gint ett_lte_rrc_T_rohc;
-static gint ett_lte_rrc_T_profiles;
-static gint ett_lte_rrc_T_ul_DataSplitThreshold_r13;
-static gint ett_lte_rrc_T_statusFeedback_r13;
-static gint ett_lte_rrc_T_pDCP_Config_eag_4_statusFeedback_r13_setup;
-static gint ett_lte_rrc_T_ul_LWA_Config_r14;
-static gint ett_lte_rrc_T_pDCP_Config_eag_5_ul_LWA_Config_r14_setup;
-static gint ett_lte_rrc_T_uplinkOnlyHeaderCompression_r14;
-static gint ett_lte_rrc_T_rohc_r14;
-static gint ett_lte_rrc_T_profiles_r14;
-static gint ett_lte_rrc_T_uplinkDataCompression_r15;
-static gint ett_lte_rrc_T_pdcp_DuplicationConfig_r15;
-static gint ett_lte_rrc_T_pDCP_Config_eag_6_pdcp_DuplicationConfig_r15_setup;
-static gint ett_lte_rrc_T_ethernetHeaderCompression_r16;
-static gint ett_lte_rrc_T_discardTimerExt_r17;
-static gint ett_lte_rrc_EthernetHeaderCompression_r16;
-static gint ett_lte_rrc_T_ehc_Common_r16;
-static gint ett_lte_rrc_T_ehc_Downlink_r16;
-static gint ett_lte_rrc_T_ehc_Uplink_r16;
-static gint ett_lte_rrc_PDSCH_ConfigCommon;
-static gint ett_lte_rrc_PDSCH_ConfigCommon_v1310;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated_v1130;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated_v1280;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated_v1310;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated_v1430;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated_v1530;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated_v1610;
-static gint ett_lte_rrc_T_ce_PDSCH_MultiTB_Config_r16;
-static gint ett_lte_rrc_PDSCH_ConfigDedicated_v1700;
-static gint ett_lte_rrc_T_ce_PDSCH_14HARQ_Config_r17;
-static gint ett_lte_rrc_PDSCH_ConfigDedicatedSCell_v1430;
-static gint ett_lte_rrc_CE_PDSCH_MultiTB_Config_r16;
-static gint ett_lte_rrc_CE_PDSCH_14HARQ_Config_r17;
-static gint ett_lte_rrc_RE_MappingQCLConfigToAddModList_r11;
-static gint ett_lte_rrc_RE_MappingQCLConfigToReleaseList_r11;
-static gint ett_lte_rrc_PDSCH_RE_MappingQCL_Config_r11;
-static gint ett_lte_rrc_T_optionalSetOfFields_r11;
-static gint ett_lte_rrc_T_mbsfn_SubframeConfigList_r11_01;
-static gint ett_lte_rrc_T_pDSCH_RE_MappingQCL_Config_r11_optionalSetOfFields_r11_mbsfn_SubframeConfigList_r11_setup;
-static gint ett_lte_rrc_T_mbsfn_SubframeConfigList_v1430_01;
-static gint ett_lte_rrc_T_pDSCH_RE_MappingQCL_Config_r11_eag_1_mbsfn_SubframeConfigList_v1430_setup;
-static gint ett_lte_rrc_T_codewordOneConfig_v1530;
-static gint ett_lte_rrc_T_pDSCH_RE_MappingQCL_Config_r11_eag_2_codewordOneConfig_v1530_setup;
-static gint ett_lte_rrc_PerCC_GapIndicationList_r14;
-static gint ett_lte_rrc_PerCC_GapIndication_r14;
-static gint ett_lte_rrc_PHICH_Config;
-static gint ett_lte_rrc_PhysicalConfigDedicated;
-static gint ett_lte_rrc_T_antennaInfo;
-static gint ett_lte_rrc_T_antennaInfo_r10;
-static gint ett_lte_rrc_T_additionalSpectrumEmissionCA_r10;
-static gint ett_lte_rrc_T_physicalConfigDedicated_eag_3_additionalSpectrumEmissionCA_r10_setup;
-static gint ett_lte_rrc_T_ce_Mode_r13;
-static gint ett_lte_rrc_T_typeA_SRS_TPC_PDCCH_Group_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config_r14;
-static gint ett_lte_rrc_T_must_Config_r14;
-static gint ett_lte_rrc_T_physicalConfigDedicated_eag_9_must_Config_r14_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_SoundingRS_UL_ConfigDedicated;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SoundingRS_UL_ConfigDedicatedUpPTsExt_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_SoundingRS_UL_ConfigDedicatedAperiodic_r10;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13;
-static gint ett_lte_rrc_T_semiStaticCFI_Config_r15;
-static gint ett_lte_rrc_T_physicalConfigDedicated_eag_11_semiStaticCFI_Config_r15_setup;
-static gint ett_lte_rrc_T_blindPDSCH_Repetition_Config_r15;
-static gint ett_lte_rrc_T_physicalConfigDedicated_eag_11_blindPDSCH_Repetition_Config_r15_setup;
-static gint ett_lte_rrc_T_resourceReservationConfigDedicatedDL_r16;
-static gint ett_lte_rrc_T_resourceReservationConfigDedicatedUL_r16;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAdd_r16;
-static gint ett_lte_rrc_T_uplinkPowerControlAddSRS_r16;
-static gint ett_lte_rrc_T_soundingRS_VirtualCellID_r16;
-static gint ett_lte_rrc_T_widebandPRG_r16;
-static gint ett_lte_rrc_T_ntn_ConfigDedicated_r17;
-static gint ett_lte_rrc_T_pucch_TxDuration_r17;
-static gint ett_lte_rrc_T_pusch_TxDuration_r17;
-static gint ett_lte_rrc_PhysicalConfigDedicated_v1370;
-static gint ett_lte_rrc_PhysicalConfigDedicated_v13c0;
-static gint ett_lte_rrc_PhysicalConfigDedicatedSCell_r10;
-static gint ett_lte_rrc_T_nonUL_Configuration_r10;
-static gint ett_lte_rrc_T_ul_Configuration_r10;
-static gint ett_lte_rrc_T_pucch_SCell;
-static gint ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_4_pucch_SCell_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_SoundingRS_AperiodicSet_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SoundingRS_AperiodicSetUpPTsExt_r14;
-static gint ett_lte_rrc_T_must_Config_r14_01;
-static gint ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_6_must_Config_r14_setup;
-static gint ett_lte_rrc_T_semiStaticCFI_Config_r15_01;
-static gint ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_8_semiStaticCFI_Config_r15_setup;
-static gint ett_lte_rrc_T_blindPDSCH_Repetition_Config_r15_01;
-static gint ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_8_blindPDSCH_Repetition_Config_r15_setup;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAdd_r16_01;
-static gint ett_lte_rrc_T_uplinkPowerControlAddSRS_r16_01;
-static gint ett_lte_rrc_T_soundingRS_VirtualCellID_r16_01;
-static gint ett_lte_rrc_T_widebandPRG_r16_01;
-static gint ett_lte_rrc_PhysicalConfigDedicatedSCell_v1370;
-static gint ett_lte_rrc_T_pucch_SCell_v1370;
-static gint ett_lte_rrc_T_physicalConfigDedicatedSCell_v1370_pucch_SCell_v1370_setup;
-static gint ett_lte_rrc_PhysicalConfigDedicatedSCell_v13c0;
-static gint ett_lte_rrc_T_pucch_SCell_v13c0;
-static gint ett_lte_rrc_T_physicalConfigDedicatedSCell_v13c0_pucch_SCell_v13c0_setup;
-static gint ett_lte_rrc_PhysicalConfigDedicatedSCell_v1730;
-static gint ett_lte_rrc_T_cqi_ReportPeriodicSCell_v1730;
-static gint ett_lte_rrc_CFI_Config_r15;
-static gint ett_lte_rrc_CFI_PatternConfig_r15;
-static gint ett_lte_rrc_T_cfi_PatternSubframe_r15;
-static gint ett_lte_rrc_T_cfi_PatternSlotSubslot_r15;
-static gint ett_lte_rrc_LAA_SCellConfiguration_r13;
-static gint ett_lte_rrc_LAA_SCellConfiguration_v1430;
-static gint ett_lte_rrc_T_crossCarrierSchedulingConfig_UL_r14;
-static gint ett_lte_rrc_T_lAA_SCellConfiguration_v1430_crossCarrierSchedulingConfig_UL_r14_setup;
-static gint ett_lte_rrc_LAA_SCellConfiguration_v1530;
-static gint ett_lte_rrc_PUSCH_ModeConfigLAA_r15;
-static gint ett_lte_rrc_LBT_Config_r14;
-static gint ett_lte_rrc_CSI_RS_ConfigNZPToAddModList_r11;
-static gint ett_lte_rrc_CSI_RS_ConfigNZPToAddModListExt_r13;
-static gint ett_lte_rrc_CSI_RS_ConfigNZPToAddModList_r15;
-static gint ett_lte_rrc_CSI_RS_ConfigNZPToReleaseList_r11;
-static gint ett_lte_rrc_CSI_RS_ConfigNZPToReleaseListExt_r13;
-static gint ett_lte_rrc_CSI_RS_ConfigNZPToReleaseList_r15;
-static gint ett_lte_rrc_CSI_RS_ConfigZPToAddModList_r11;
-static gint ett_lte_rrc_CSI_RS_ConfigZPToReleaseList_r11;
-static gint ett_lte_rrc_PhysicalConfigDedicatedSTTI_r15;
-static gint ett_lte_rrc_T_physicalConfigDedicatedSTTI_r15_setup;
-static gint ett_lte_rrc_SoundingRS_AperiodicSet_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex_r14;
-static gint ett_lte_rrc_SoundingRS_AperiodicSetUpPTsExt_r14;
-static gint ett_lte_rrc_ShortTTI_r15;
-static gint ett_lte_rrc_SoundingRS_VirtualCellID_r16;
-static gint ett_lte_rrc_WidebandPRG_r16;
-static gint ett_lte_rrc_ResourceReservationConfigDedicatedDL_r16;
-static gint ett_lte_rrc_ResourceReservationConfigDedicatedUL_r16;
-static gint ett_lte_rrc_PRACH_ConfigSIB;
-static gint ett_lte_rrc_PRACH_ConfigSIB_v1310;
-static gint ett_lte_rrc_T_mpdcch_startSF_CSS_RA_r13;
-static gint ett_lte_rrc_PRACH_ConfigSIB_v1530;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCE_Level_r13_OF_EDT_PRACH_ParametersCE_r15;
-static gint ett_lte_rrc_PRACH_Config;
-static gint ett_lte_rrc_PRACH_Config_v1310;
-static gint ett_lte_rrc_T_mpdcch_startSF_CSS_RA_r13_01;
-static gint ett_lte_rrc_PRACH_Config_v1430;
-static gint ett_lte_rrc_PRACH_ConfigSCell_r10;
-static gint ett_lte_rrc_PRACH_ConfigInfo;
-static gint ett_lte_rrc_PRACH_ParametersListCE_r13;
-static gint ett_lte_rrc_PRACH_ParametersCE_r13;
-static gint ett_lte_rrc_T_mpdcch_NarrowbandsToMonitor_r13;
-static gint ett_lte_rrc_EDT_PRACH_ParametersCE_r15;
-static gint ett_lte_rrc_T_edt_PRACH_ParametersCE_r15;
-static gint ett_lte_rrc_T_mpdcch_NarrowbandsToMonitor_r15;
-static gint ett_lte_rrc_RSRP_ThresholdsPrachInfoList_r13;
-static gint ett_lte_rrc_PRACH_TxDuration_r17;
-static gint ett_lte_rrc_PUCCH_ConfigCommon;
-static gint ett_lte_rrc_PUCCH_ConfigCommon_v1310;
-static gint ett_lte_rrc_PUCCH_ConfigCommon_v1430;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated;
-static gint ett_lte_rrc_T_ackNackRepetition;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_ackNackRepetition_setup;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_v1020;
-static gint ett_lte_rrc_T_pucch_Format_r10;
-static gint ett_lte_rrc_T_channelSelection_r10;
-static gint ett_lte_rrc_T_n1PUCCH_AN_CS_r10;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_v1020_pucch_Format_r10_channelSelection_r10_n1PUCCH_AN_CS_r10_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_N1PUCCH_AN_CS_r10;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_v1130;
-static gint ett_lte_rrc_T_n1PUCCH_AN_CS_v1130;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_v1130_n1PUCCH_AN_CS_v1130_setup;
-static gint ett_lte_rrc_T_n1PUCCH_AN_CS_ListP1_r11;
-static gint ett_lte_rrc_T_nPUCCH_Param_r11;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_v1130_nPUCCH_Param_r11_setup;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_v1250;
-static gint ett_lte_rrc_T_nkaPUCCH_Param_r12;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_v1250_nkaPUCCH_Param_r12_setup;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_r13;
-static gint ett_lte_rrc_T_ackNackRepetition_r13;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_ackNackRepetition_r13_setup;
-static gint ett_lte_rrc_T_pucch_Format_r13;
-static gint ett_lte_rrc_T_format3_r13;
-static gint ett_lte_rrc_T_n3PUCCH_AN_List_r13;
-static gint ett_lte_rrc_T_twoAntennaPortActivatedPUCCH_Format3_r13;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_pucch_Format_r13_format3_r13_twoAntennaPortActivatedPUCCH_Format3_r13_setup;
-static gint ett_lte_rrc_T_n3PUCCH_AN_ListP1_r13;
-static gint ett_lte_rrc_T_channelSelection_r13;
-static gint ett_lte_rrc_T_n1PUCCH_AN_CS_r13;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_pucch_Format_r13_channelSelection_r13_n1PUCCH_AN_CS_r13_setup;
-static gint ett_lte_rrc_N1PUCCH_AN_CS_List_r13;
-static gint ett_lte_rrc_T_dummy1;
-static gint ett_lte_rrc_T_format4_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_4_OF_Format4_resource_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_Format4_resource_r13;
-static gint ett_lte_rrc_T_format5_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_4_OF_Format5_resource_r13;
-static gint ett_lte_rrc_T_nPUCCH_Param_r13;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_nPUCCH_Param_r13_setup;
-static gint ett_lte_rrc_T_nkaPUCCH_Param_r13;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_nkaPUCCH_Param_r13_setup;
-static gint ett_lte_rrc_T_pucch_NumRepetitionCE_r13;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_pucch_NumRepetitionCE_r13_setup;
-static gint ett_lte_rrc_T_modeA;
-static gint ett_lte_rrc_T_modeB;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_v1370;
-static gint ett_lte_rrc_T_pucch_Format_v1370;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_v13c0;
-static gint ett_lte_rrc_T_channelSelection_v13c0;
-static gint ett_lte_rrc_T_n1PUCCH_AN_CS_v13c0;
-static gint ett_lte_rrc_T_pUCCH_ConfigDedicated_v13c0_channelSelection_v13c0_n1PUCCH_AN_CS_v13c0_setup;
-static gint ett_lte_rrc_T_n1PUCCH_AN_CS_ListP1_v13c0;
-static gint ett_lte_rrc_PUCCH_Format3_Conf_r13;
-static gint ett_lte_rrc_T_n3PUCCH_AN_List_r13_01;
-static gint ett_lte_rrc_T_twoAntennaPortActivatedPUCCH_Format3_r13_01;
-static gint ett_lte_rrc_T_pUCCH_Format3_Conf_r13_twoAntennaPortActivatedPUCCH_Format3_r13_setup;
-static gint ett_lte_rrc_T_n3PUCCH_AN_ListP1_r13_01;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_v1430;
-static gint ett_lte_rrc_PUCCH_ConfigDedicated_v1530;
-static gint ett_lte_rrc_Format4_resource_r13;
-static gint ett_lte_rrc_Format5_resource_r13;
-static gint ett_lte_rrc_N1PUCCH_AN_CS_r10;
-static gint ett_lte_rrc_N1PUCCH_AN_InfoList_r13;
-static gint ett_lte_rrc_PUCCH_TxDuration_r17;
-static gint ett_lte_rrc_PUR_Config_r16;
-static gint ett_lte_rrc_T_pur_StartTimeParameters_r16;
-static gint ett_lte_rrc_T_pur_RSRP_ChangeThreshold_r16;
-static gint ett_lte_rrc_PUR_MPDCCH_Config_r16;
-static gint ett_lte_rrc_T_mpdcch_PRB_PairsConfig_r16;
-static gint ett_lte_rrc_T_mpdcch_StartSF_UESS_r16;
-static gint ett_lte_rrc_PUR_PUCCH_Config_r16;
-static gint ett_lte_rrc_PUR_PUSCH_Config_r16;
-static gint ett_lte_rrc_T_pur_GrantInfo_r16;
-static gint ett_lte_rrc_T_ce_ModeA;
-static gint ett_lte_rrc_T_ce_ModeB;
-static gint ett_lte_rrc_PUR_RSRP_ChangeThreshold_r16;
-static gint ett_lte_rrc_PUR_PeriodicityAndOffset_r16;
-static gint ett_lte_rrc_PUSCH_ConfigCommon;
-static gint ett_lte_rrc_T_pusch_ConfigBasic;
-static gint ett_lte_rrc_PUSCH_ConfigCommon_v1270;
-static gint ett_lte_rrc_PUSCH_ConfigCommon_v1310;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated_v1020;
-static gint ett_lte_rrc_T_betaOffsetMC_r10;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated_v1130;
-static gint ett_lte_rrc_T_pusch_DMRS_r11;
-static gint ett_lte_rrc_T_pUSCH_ConfigDedicated_v1130_pusch_DMRS_r11_setup;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated_v1250;
-static gint ett_lte_rrc_T_uciOnPUSCH;
-static gint ett_lte_rrc_T_pUSCH_ConfigDedicated_v1250_uciOnPUSCH_setup;
-static gint ett_lte_rrc_T_betaOffsetMC_r12;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated_r13;
-static gint ett_lte_rrc_T_betaOffsetMC_r13;
-static gint ett_lte_rrc_T_pusch_DMRS_r11_01;
-static gint ett_lte_rrc_T_pUSCH_ConfigDedicated_r13_pusch_DMRS_r11_setup;
-static gint ett_lte_rrc_T_uciOnPUSCH_01;
-static gint ett_lte_rrc_T_pUSCH_ConfigDedicated_r13_uciOnPUSCH_setup;
-static gint ett_lte_rrc_T_betaOffsetMC_r12_01;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated_v1430;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated_v1530;
-static gint ett_lte_rrc_T_ce_PUSCH_FlexibleStartPRB_AllocConfig_r15;
-static gint ett_lte_rrc_T_pUSCH_ConfigDedicated_v1530_ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_setup;
-static gint ett_lte_rrc_T_ce_PUSCH_SubPRB_Config_r15;
-static gint ett_lte_rrc_T_pUSCH_ConfigDedicated_v1530_ce_PUSCH_SubPRB_Config_r15_setup;
-static gint ett_lte_rrc_PUSCH_ConfigDedicated_v1610;
-static gint ett_lte_rrc_T_ce_PUSCH_MultiTB_Config_r16;
-static gint ett_lte_rrc_PUSCH_ConfigDedicatedSCell_r10;
-static gint ett_lte_rrc_PUSCH_ConfigDedicatedSCell_v1430;
-static gint ett_lte_rrc_PUSCH_ConfigDedicatedScell_v1530;
-static gint ett_lte_rrc_T_uci_OnPUSCH_r15;
-static gint ett_lte_rrc_T_pUSCH_ConfigDedicatedScell_v1530_uci_OnPUSCH_r15_setup;
-static gint ett_lte_rrc_TDD_PUSCH_UpPTS_r14;
-static gint ett_lte_rrc_T_tDD_PUSCH_UpPTS_r14_setup;
-static gint ett_lte_rrc_CE_PUSCH_MultiTB_Config_r16;
-static gint ett_lte_rrc_PUSCH_TxDuration_r17;
-static gint ett_lte_rrc_Enable256QAM_r14;
-static gint ett_lte_rrc_T_enable256QAM_r14_setup;
-static gint ett_lte_rrc_T_tpc_SubframeSet_Configured_r14;
-static gint ett_lte_rrc_T_tpc_SubframeSet_NotConfigured_r14;
-static gint ett_lte_rrc_PUSCH_EnhancementsConfig_r14;
-static gint ett_lte_rrc_T_pUSCH_EnhancementsConfig_r14_setup;
-static gint ett_lte_rrc_T_interval_ULHoppingPUSCH_Enh_r14;
-static gint ett_lte_rrc_UL_ReferenceSignalsPUSCH;
-static gint ett_lte_rrc_RACH_ConfigCommon;
-static gint ett_lte_rrc_T_preambleInfo;
-static gint ett_lte_rrc_T_preamblesGroupAConfig;
-static gint ett_lte_rrc_T_ra_SupervisionInfo;
-static gint ett_lte_rrc_RACH_ConfigCommon_v1250;
-static gint ett_lte_rrc_T_txFailParams_r12;
-static gint ett_lte_rrc_RACH_ConfigCommonSCell_r11;
-static gint ett_lte_rrc_T_ra_SupervisionInfo_r11;
-static gint ett_lte_rrc_RACH_CE_LevelInfoList_r13;
-static gint ett_lte_rrc_RACH_CE_LevelInfo_r13;
-static gint ett_lte_rrc_T_preambleMappingInfo_r13;
-static gint ett_lte_rrc_T_edt_Parameters_r15;
-static gint ett_lte_rrc_PowerRampingParameters;
-static gint ett_lte_rrc_RACH_ConfigDedicated;
-static gint ett_lte_rrc_RadioResourceConfigCommonSIB;
-static gint ett_lte_rrc_T_ntn_ConfigCommon_r17;
-static gint ett_lte_rrc_RadioResourceConfigCommon;
-static gint ett_lte_rrc_T_ntn_ConfigCommon_r17_01;
-static gint ett_lte_rrc_RadioResourceConfigCommonPSCell_r12;
-static gint ett_lte_rrc_RadioResourceConfigCommonPSCell_v12f0;
-static gint ett_lte_rrc_RadioResourceConfigCommonPSCell_v1440;
-static gint ett_lte_rrc_RadioResourceConfigCommonSCell_r10;
-static gint ett_lte_rrc_T_nonUL_Configuration_r10_01;
-static gint ett_lte_rrc_T_ul_Configuration_r10_01;
-static gint ett_lte_rrc_T_ul_FreqInfo_r10;
-static gint ett_lte_rrc_T_ul_Configuration_r14;
-static gint ett_lte_rrc_T_ul_FreqInfo_r14;
-static gint ett_lte_rrc_RadioResourceConfigCommonSCell_v10l0;
-static gint ett_lte_rrc_T_ul_Configuration_v10l0;
-static gint ett_lte_rrc_RadioResourceConfigCommonSCell_v1440;
-static gint ett_lte_rrc_T_ul_Configuration_v1440;
-static gint ett_lte_rrc_T_ul_FreqInfo_v1440;
-static gint ett_lte_rrc_BCCH_Config;
-static gint ett_lte_rrc_BCCH_Config_v1310;
-static gint ett_lte_rrc_FreqHoppingParameters_r13;
-static gint ett_lte_rrc_T_dummy2_01;
-static gint ett_lte_rrc_T_dummy3;
-static gint ett_lte_rrc_T_interval_ULHoppingConfigCommonModeA_r13;
-static gint ett_lte_rrc_T_interval_ULHoppingConfigCommonModeB_r13;
-static gint ett_lte_rrc_PCCH_Config;
-static gint ett_lte_rrc_PCCH_Config_v1310;
-static gint ett_lte_rrc_PCCH_Config_v1700;
-static gint ett_lte_rrc_HighSpeedConfig_r14;
-static gint ett_lte_rrc_HighSpeedConfig_v1530;
-static gint ett_lte_rrc_HighSpeedConfigSCell_r14;
-static gint ett_lte_rrc_HighSpeedConfig_v1610;
-static gint ett_lte_rrc_RadioResourceConfigDedicated;
-static gint ett_lte_rrc_T_mac_MainConfig;
-static gint ett_lte_rrc_T_crs_IntfMitigConfig_r15_01;
-static gint ett_lte_rrc_T_radioResourceConfigDedicated_eag_7_crs_IntfMitigConfig_r15_setup;
-static gint ett_lte_rrc_T_radioResourceConfigDedicated_eag_7_dummy;
-static gint ett_lte_rrc_T_crs_ChEstMPDCCH_ConfigDedicated_r16;
-static gint ett_lte_rrc_RadioResourceConfigDedicated_v1370;
-static gint ett_lte_rrc_RadioResourceConfigDedicated_v13c0;
-static gint ett_lte_rrc_RadioResourceConfigDedicatedPSCell_r12;
-static gint ett_lte_rrc_RadioResourceConfigDedicatedPSCell_v1370;
-static gint ett_lte_rrc_RadioResourceConfigDedicatedPSCell_v13c0;
-static gint ett_lte_rrc_RadioResourceConfigDedicatedSCG_r12;
-static gint ett_lte_rrc_RadioResourceConfigDedicatedSCell_r10;
-static gint ett_lte_rrc_RadioResourceConfigDedicatedSCell_v13c0;
-static gint ett_lte_rrc_SRB_ToAddModList;
-static gint ett_lte_rrc_SRB_ToAddModListExt_r15;
-static gint ett_lte_rrc_SRB_ToAddMod;
-static gint ett_lte_rrc_T_rlc_Config;
-static gint ett_lte_rrc_T_logicalChannelConfig;
-static gint ett_lte_rrc_DRB_ToAddModList;
-static gint ett_lte_rrc_DRB_ToAddModList_r15;
-static gint ett_lte_rrc_DRB_ToAddModListSCG_r12;
-static gint ett_lte_rrc_DRB_ToAddModListSCG_r15;
-static gint ett_lte_rrc_DRB_ToAddMod;
-static gint ett_lte_rrc_DRB_ToAddModSCG_r12;
-static gint ett_lte_rrc_T_drb_Type_r12_01;
-static gint ett_lte_rrc_T_scg_r12;
-static gint ett_lte_rrc_DRB_ToReleaseList;
-static gint ett_lte_rrc_DRB_ToReleaseList_r15;
-static gint ett_lte_rrc_SRB_ToReleaseList_r15;
-static gint ett_lte_rrc_MeasSubframePatternPCell_r10;
-static gint ett_lte_rrc_NeighCellsCRS_Info_r11;
-static gint ett_lte_rrc_CRS_AssistanceInfoList_r11;
-static gint ett_lte_rrc_CRS_AssistanceInfo_r11;
-static gint ett_lte_rrc_NeighCellsCRS_Info_r13;
-static gint ett_lte_rrc_CRS_AssistanceInfoList_r13;
-static gint ett_lte_rrc_CRS_AssistanceInfo_r13;
-static gint ett_lte_rrc_NeighCellsCRS_Info_r15;
-static gint ett_lte_rrc_CRS_AssistanceInfoList_r15;
-static gint ett_lte_rrc_CRS_AssistanceInfo_r15;
-static gint ett_lte_rrc_NAICS_AssistanceInfo_r12;
-static gint ett_lte_rrc_T_nAICS_AssistanceInfo_r12_setup;
-static gint ett_lte_rrc_NeighCellsToReleaseList_r12;
-static gint ett_lte_rrc_NeighCellsToAddModList_r12;
-static gint ett_lte_rrc_NeighCellsInfo_r12;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxP_a_PerNeighCell_r12_OF_P_a;
-static gint ett_lte_rrc_RLC_BearerConfig_r15;
-static gint ett_lte_rrc_T_rLC_BearerConfig_r15_setup;
-static gint ett_lte_rrc_T_logicalChannelIdentityConfig_r15;
-static gint ett_lte_rrc_RCLWI_Configuration_r13;
-static gint ett_lte_rrc_T_rCLWI_Configuration_r13_setup;
-static gint ett_lte_rrc_RCLWI_Config_r13;
-static gint ett_lte_rrc_T_command;
-static gint ett_lte_rrc_T_steerToWLAN_r13;
-static gint ett_lte_rrc_ResourceReservationConfigDL_r16;
-static gint ett_lte_rrc_T_resourceReservationFreq_r16;
-static gint ett_lte_rrc_T_slotBitmap_r16;
-static gint ett_lte_rrc_ResourceReservationConfigUL_r16;
-static gint ett_lte_rrc_T_slotBitmap_r16_01;
-static gint ett_lte_rrc_PeriodicityStartPos_r16;
-static gint ett_lte_rrc_RLC_Config;
-static gint ett_lte_rrc_T_am;
-static gint ett_lte_rrc_T_um_Bi_Directional;
-static gint ett_lte_rrc_T_um_Uni_Directional_UL;
-static gint ett_lte_rrc_T_um_Uni_Directional_DL;
-static gint ett_lte_rrc_RLC_Config_v1250;
-static gint ett_lte_rrc_RLC_Config_v1310;
-static gint ett_lte_rrc_RLC_Config_v1430;
-static gint ett_lte_rrc_T_rLC_Config_v1430_setup;
-static gint ett_lte_rrc_RLC_Config_v1510;
-static gint ett_lte_rrc_RLC_Config_v1530;
-static gint ett_lte_rrc_T_rLC_Config_v1530_setup;
-static gint ett_lte_rrc_RLC_Config_v1700;
-static gint ett_lte_rrc_T_t_ReorderingExt_r17;
-static gint ett_lte_rrc_RLC_Config_r15;
-static gint ett_lte_rrc_T_mode_r15;
-static gint ett_lte_rrc_T_am_r15;
-static gint ett_lte_rrc_T_um_Bi_Directional_r15;
-static gint ett_lte_rrc_T_um_Uni_Directional_UL_r15;
-static gint ett_lte_rrc_T_um_Uni_Directional_DL_r15;
-static gint ett_lte_rrc_UL_AM_RLC;
-static gint ett_lte_rrc_UL_AM_RLC_r15;
-static gint ett_lte_rrc_DL_AM_RLC;
-static gint ett_lte_rrc_DL_AM_RLC_r15;
-static gint ett_lte_rrc_UL_UM_RLC;
-static gint ett_lte_rrc_DL_UM_RLC;
-static gint ett_lte_rrc_DL_UM_RLC_r15;
-static gint ett_lte_rrc_RLF_TimersAndConstants_r9;
-static gint ett_lte_rrc_T_rLF_TimersAndConstants_r9_setup;
-static gint ett_lte_rrc_RLF_TimersAndConstants_r13;
-static gint ett_lte_rrc_T_rLF_TimersAndConstants_r13_setup;
-static gint ett_lte_rrc_RLF_TimersAndConstantsSCG_r12;
-static gint ett_lte_rrc_T_rLF_TimersAndConstantsSCG_r12_setup;
-static gint ett_lte_rrc_RLF_TimersAndConstantsMCG_Failure_r16;
-static gint ett_lte_rrc_T_rLF_TimersAndConstantsMCG_Failure_r16_setup;
-static gint ett_lte_rrc_RN_SubframeConfig_r10;
-static gint ett_lte_rrc_T_subframeConfigPattern_r10;
-static gint ett_lte_rrc_T_rpdcch_Config_r10;
-static gint ett_lte_rrc_T_resourceBlockAssignment_r10;
-static gint ett_lte_rrc_T_type01_r10;
-static gint ett_lte_rrc_T_type2_r10;
-static gint ett_lte_rrc_T_demodulationRS_r10;
-static gint ett_lte_rrc_T_pucch_Config_r10;
-static gint ett_lte_rrc_T_tdd_01;
-static gint ett_lte_rrc_T_channelSelectionMultiplexingBundling;
-static gint ett_lte_rrc_T_n1PUCCH_AN_List_r10;
-static gint ett_lte_rrc_T_fallbackForFormat3;
-static gint ett_lte_rrc_T_fdd_01;
-static gint ett_lte_rrc_RSS_Config_r15;
-static gint ett_lte_rrc_SchedulingRequestConfig;
-static gint ett_lte_rrc_T_schedulingRequestConfig_setup;
-static gint ett_lte_rrc_SchedulingRequestConfig_v1020;
-static gint ett_lte_rrc_SchedulingRequestConfigSCell_r13;
-static gint ett_lte_rrc_T_schedulingRequestConfigSCell_r13_setup;
-static gint ett_lte_rrc_SchedulingRequestConfig_v1530;
-static gint ett_lte_rrc_T_schedulingRequestConfig_v1530_setup;
-static gint ett_lte_rrc_SR_SubslotSPUCCH_ResourceList_r15;
-static gint ett_lte_rrc_SlotOrSubslotPDSCH_Config_r15;
-static gint ett_lte_rrc_T_slotOrSubslotPDSCH_Config_r15_setup;
-static gint ett_lte_rrc_SlotOrSubslotPUSCH_Config_r15;
-static gint ett_lte_rrc_T_slotOrSubslotPUSCH_Config_r15_setup;
-static gint ett_lte_rrc_T_betaOffsetSubslot_ACK_Index_r15;
-static gint ett_lte_rrc_T_betaOffset2Subslot_ACK_Index_r15;
-static gint ett_lte_rrc_T_betaOffsetSubslot_RI_Index_r15;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigCommon;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigCommon_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicated;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicated_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicated_v1020;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicated_v1310;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicated_v1310_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicatedUpPTsExt_r13;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedUpPTsExt_r13_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodic_r10;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_r10_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAp_r10;
-static gint ett_lte_rrc_T_srs_ActivateAp_r10;
-static gint ett_lte_rrc_T_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodic_v1310;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_v1310_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAp_v1310;
-static gint ett_lte_rrc_T_srs_ActivateAp_v1310;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_v1310_setup_srs_ActivateAp_v1310_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAp_r13;
-static gint ett_lte_rrc_T_srs_ActivateAp_r13;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setup_srs_ActivateAp_r13_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodic_v1430;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_v1430_setup;
-static gint ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAdd_r16;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAdd_r16;
-static gint ett_lte_rrc_T_srs_ActivateAp_r13_01;
-static gint ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAdd_r16_srs_ActivateAp_r13_setup;
-static gint ett_lte_rrc_SRS_ConfigAp_r10;
-static gint ett_lte_rrc_SRS_ConfigAp_v1310;
-static gint ett_lte_rrc_SRS_ConfigAp_r13;
-static gint ett_lte_rrc_SRS_ConfigAdd_r16;
-static gint ett_lte_rrc_SPDCCH_Config_r15;
-static gint ett_lte_rrc_T_sPDCCH_Config_r15_setup;
-static gint ett_lte_rrc_SPDCCH_Set_r15;
-static gint ett_lte_rrc_SPDCCH_Elements_r15;
-static gint ett_lte_rrc_T_sPDCCH_Elements_r15_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_DCI7_Candidates_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_DCI7_CandidatesPerAL_SPDCCH_r15;
-static gint ett_lte_rrc_T_resourceBlockAssignment_r15;
-static gint ett_lte_rrc_T_al_StartingPointSPDCCH_r15;
-static gint ett_lte_rrc_DCI7_CandidatesPerAL_SPDCCH_r15;
-static gint ett_lte_rrc_SPS_Config;
-static gint ett_lte_rrc_SPS_Config_v1430;
-static gint ett_lte_rrc_SPS_ConfigUL_ToAddModList_r14;
-static gint ett_lte_rrc_SPS_ConfigUL_ToReleaseList_r14;
-static gint ett_lte_rrc_SPS_ConfigSL_ToAddModList_r14;
-static gint ett_lte_rrc_SPS_ConfigSL_ToReleaseList_r14;
-static gint ett_lte_rrc_SPS_Config_v1530;
-static gint ett_lte_rrc_SPS_Config_v1540;
-static gint ett_lte_rrc_SPS_ConfigUL_STTI_ToAddModList_r15;
-static gint ett_lte_rrc_SPS_ConfigUL_STTI_ToReleaseList_r15;
-static gint ett_lte_rrc_SPS_ConfigUL_ToAddModList_r15;
-static gint ett_lte_rrc_SPS_ConfigUL_ToReleaseList_r15;
-static gint ett_lte_rrc_SPS_ConfigDL;
-static gint ett_lte_rrc_T_sPS_ConfigDL_setup;
-static gint ett_lte_rrc_T_twoAntennaPortActivated_r10;
-static gint ett_lte_rrc_T_sPS_ConfigDL_setup_eag_1_twoAntennaPortActivated_r10_setup;
-static gint ett_lte_rrc_SPS_ConfigUL;
-static gint ett_lte_rrc_T_sPS_ConfigUL_setup;
-static gint ett_lte_rrc_T_p0_Persistent;
-static gint ett_lte_rrc_T_p0_PersistentSubframeSet2_r12;
-static gint ett_lte_rrc_T_sPS_ConfigUL_setup_eag_1_p0_PersistentSubframeSet2_r12_setup;
-static gint ett_lte_rrc_SPS_ConfigSL_r14;
-static gint ett_lte_rrc_N1PUCCH_AN_PersistentList;
-static gint ett_lte_rrc_N1SPUCCH_AN_PersistentList_r15;
-static gint ett_lte_rrc_SPS_ConfigDL_STTI_r15;
-static gint ett_lte_rrc_T_sPS_ConfigDL_STTI_r15_setup;
-static gint ett_lte_rrc_T_twoAntennaPortActivated_r15;
-static gint ett_lte_rrc_T_sPS_ConfigDL_STTI_r15_setup_twoAntennaPortActivated_r15_setup;
-static gint ett_lte_rrc_SPS_ConfigUL_STTI_r15;
-static gint ett_lte_rrc_T_sPS_ConfigUL_STTI_r15_setup;
-static gint ett_lte_rrc_T_p0_Persistent_r15;
-static gint ett_lte_rrc_T_p0_PersistentSubframeSet2_r15;
-static gint ett_lte_rrc_T_sPS_ConfigUL_STTI_r15_setup_p0_PersistentSubframeSet2_r15_setup;
-static gint ett_lte_rrc_SPUCCH_Config_r15;
-static gint ett_lte_rrc_T_sPUCCH_Config_r15_setup;
-static gint ett_lte_rrc_T_sPUCCH_Config_r15_setup_dummy;
-static gint ett_lte_rrc_T_n3SPUCCH_AN_List_r15;
-static gint ett_lte_rrc_SPUCCH_Config_v1550;
-static gint ett_lte_rrc_T_sPUCCH_Config_v1550_setup;
-static gint ett_lte_rrc_T_twoAntennaPortActivatedSPUCCH_Format3_v1550;
-static gint ett_lte_rrc_T_n3SPUCCH_AN_List_v1550;
-static gint ett_lte_rrc_SPUCCH_Set_r15;
-static gint ett_lte_rrc_SPUCCH_Elements_r15;
-static gint ett_lte_rrc_T_sPUCCH_Elements_r15_setup;
-static gint ett_lte_rrc_T_n1SubslotSPUCCH_AN_List_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_N4SPUCCH_Resource_r15;
-static gint ett_lte_rrc_N4SPUCCH_Resource_r15;
-static gint ett_lte_rrc_SRS_TPC_PDCCH_Config_r14;
-static gint ett_lte_rrc_T_sRS_TPC_PDCCH_Config_r14_setup;
-static gint ett_lte_rrc_SRS_CC_SetIndex_r14;
-static gint ett_lte_rrc_TDD_Config;
-static gint ett_lte_rrc_TDD_Config_v1130;
-static gint ett_lte_rrc_TDD_Config_v1430;
-static gint ett_lte_rrc_TDD_Config_v1450;
-static gint ett_lte_rrc_TDD_ConfigSL_r12;
-static gint ett_lte_rrc_TDM_PatternConfig_r15;
-static gint ett_lte_rrc_T_tDM_PatternConfig_r15_setup;
-static gint ett_lte_rrc_TimeReferenceInfo_r15;
-static gint ett_lte_rrc_ReferenceTime_r15;
-static gint ett_lte_rrc_TPC_PDCCH_Config;
-static gint ett_lte_rrc_T_tPC_PDCCH_Config_setup;
-static gint ett_lte_rrc_TPC_PDCCH_ConfigSCell_r13;
-static gint ett_lte_rrc_T_tPC_PDCCH_ConfigSCell_r13_setup;
-static gint ett_lte_rrc_TPC_Index;
-static gint ett_lte_rrc_TunnelConfigLWIP_r13;
-static gint ett_lte_rrc_IKE_Identity_r13;
-static gint ett_lte_rrc_IP_Address_r13;
-static gint ett_lte_rrc_UplinkPowerControlCommon;
-static gint ett_lte_rrc_UplinkPowerControlCommon_v1020;
-static gint ett_lte_rrc_UplinkPowerControlCommon_v1310;
-static gint ett_lte_rrc_UplinkPowerControlCommon_v1530;
-static gint ett_lte_rrc_UplinkPowerControlCommon_v1610;
-static gint ett_lte_rrc_UplinkPowerControlCommonPSCell_r12;
-static gint ett_lte_rrc_UplinkPowerControlCommonSCell_r10;
-static gint ett_lte_rrc_UplinkPowerControlCommonSCell_v1130;
-static gint ett_lte_rrc_UplinkPowerControlCommonSCell_v1310;
-static gint ett_lte_rrc_UplinkPowerControlCommonPUSCH_LessCell_v1430;
-static gint ett_lte_rrc_UplinkPowerControlDedicated;
-static gint ett_lte_rrc_UplinkPowerControlDedicated_v1020;
-static gint ett_lte_rrc_UplinkPowerControlDedicated_v1130;
-static gint ett_lte_rrc_UplinkPowerControlDedicated_v1250;
-static gint ett_lte_rrc_T_set2PowerControlParameter;
-static gint ett_lte_rrc_T_uplinkPowerControlDedicated_v1250_set2PowerControlParameter_setup;
-static gint ett_lte_rrc_UplinkPowerControlDedicated_v1530;
-static gint ett_lte_rrc_UplinkPowerControlDedicatedSTTI_r15;
-static gint ett_lte_rrc_UplinkPUSCH_LessPowerControlDedicated_v1430;
-static gint ett_lte_rrc_UplinkPowerControlAddSRS_r16;
-static gint ett_lte_rrc_UplinkPowerControlDedicatedSCell_r10;
-static gint ett_lte_rrc_UplinkPowerControlDedicatedSCell_v1310;
-static gint ett_lte_rrc_DeltaFList_PUCCH;
-static gint ett_lte_rrc_DeltaFList_SPUCCH_r15;
-static gint ett_lte_rrc_T_deltaFList_SPUCCH_r15_setup;
-static gint ett_lte_rrc_DeltaTxD_OffsetListPUCCH_r10;
-static gint ett_lte_rrc_DeltaTxD_OffsetListPUCCH_v1130;
-static gint ett_lte_rrc_DeltaTxD_OffsetListSPUCCH_r15;
-static gint ett_lte_rrc_WLAN_Id_List_r13;
-static gint ett_lte_rrc_WLAN_MobilityConfig_r13;
-static gint ett_lte_rrc_WUS_Config_r15;
-static gint ett_lte_rrc_WUS_Config_v1560;
-static gint ett_lte_rrc_WUS_Config_v1610;
-static gint ett_lte_rrc_SecurityAlgorithmConfig;
-static gint ett_lte_rrc_CarrierFreqCDMA2000;
-static gint ett_lte_rrc_CarrierFreqGERAN;
-static gint ett_lte_rrc_CarrierFreqsGERAN;
-static gint ett_lte_rrc_T_followingARFCNs;
-static gint ett_lte_rrc_T_equallySpacedARFCNs;
-static gint ett_lte_rrc_ExplicitListOfARFCNs;
-static gint ett_lte_rrc_CarrierFreqListMBMS_r11;
-static gint ett_lte_rrc_CellGlobalIdNR_r16;
-static gint ett_lte_rrc_CellIndexList;
-static gint ett_lte_rrc_CellSelectionInfoCE_r13;
-static gint ett_lte_rrc_CellSelectionInfoCE_v1530;
-static gint ett_lte_rrc_CellSelectionInfoCE1_r13;
-static gint ett_lte_rrc_CellSelectionInfoCE1_v1360;
-static gint ett_lte_rrc_CSFB_RegistrationParam1XRTT;
-static gint ett_lte_rrc_CSFB_RegistrationParam1XRTT_v920;
-static gint ett_lte_rrc_CellGlobalIdEUTRA;
-static gint ett_lte_rrc_CellGlobalIdUTRA;
-static gint ett_lte_rrc_CellGlobalIdGERAN;
-static gint ett_lte_rrc_CellGlobalIdCDMA2000;
-static gint ett_lte_rrc_CellSelectionInfoNFreq_r13;
-static gint ett_lte_rrc_ConditionalReconfiguration_r16;
-static gint ett_lte_rrc_CondReconfigurationToRemoveList_r16;
-static gint ett_lte_rrc_CondReconfigurationToAddModList_r16;
-static gint ett_lte_rrc_CondReconfigurationAddMod_r16;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_MeasId;
-static gint ett_lte_rrc_EphemerisOrbitalParameters_r17;
-static gint ett_lte_rrc_EphemerisStateVectors_r17;
-static gint ett_lte_rrc_MobilityControlInfo;
-static gint ett_lte_rrc_MobilityControlInfo_v10l0;
-static gint ett_lte_rrc_MobilityControlInfoSCG_r12;
-static gint ett_lte_rrc_MobilityControlInfoV2X_r14;
-static gint ett_lte_rrc_CarrierBandwidthEUTRA;
-static gint ett_lte_rrc_CarrierFreqEUTRA;
-static gint ett_lte_rrc_CarrierFreqEUTRA_v9e0;
-static gint ett_lte_rrc_DAPS_Config_r16;
-static gint ett_lte_rrc_DAPS_PowerCoordinationInfo_r16;
-static gint ett_lte_rrc_RACH_Skip_r14;
-static gint ett_lte_rrc_T_targetTA_r14;
-static gint ett_lte_rrc_T_ul_ConfigInfo_r14;
-static gint ett_lte_rrc_MobilityStateParameters;
-static gint ett_lte_rrc_MultiBandInfoList;
-static gint ett_lte_rrc_MultiBandInfoList_v9e0;
-static gint ett_lte_rrc_MultiBandInfoList_v10j0;
-static gint ett_lte_rrc_MultiBandInfoList_v10l0;
-static gint ett_lte_rrc_MultiBandInfoList_r11;
-static gint ett_lte_rrc_MultiBandInfo_v9e0;
-static gint ett_lte_rrc_MultiFrequencyBandListNR_r15;
-static gint ett_lte_rrc_NS_PmaxList_r10;
-static gint ett_lte_rrc_NS_PmaxList_v10l0;
-static gint ett_lte_rrc_NS_PmaxValue_r10;
-static gint ett_lte_rrc_NS_PmaxValue_v10l0;
-static gint ett_lte_rrc_NS_PmaxListNR_r15;
-static gint ett_lte_rrc_NS_PmaxValueNR_r15;
-static gint ett_lte_rrc_NS_PmaxListNR_v1760;
-static gint ett_lte_rrc_NS_PmaxValueNR_v1760;
-static gint ett_lte_rrc_PhysCellIdGERAN;
-static gint ett_lte_rrc_PhysCellIdRange;
-static gint ett_lte_rrc_PhysCellIdRangeNR_r16;
-static gint ett_lte_rrc_PhysCellIdRangeUTRA_FDDList_r9;
-static gint ett_lte_rrc_PhysCellIdRangeUTRA_FDD_r9;
-static gint ett_lte_rrc_PLMN_Identity;
-static gint ett_lte_rrc_MCC;
-static gint ett_lte_rrc_MNC;
-static gint ett_lte_rrc_PLMN_IdentityList3_r11;
-static gint ett_lte_rrc_PreRegistrationInfoHRPD;
-static gint ett_lte_rrc_SecondaryPreRegistrationZoneIdListHRPD;
-static gint ett_lte_rrc_RSS_ConfigCarrierInfo_r16;
-static gint ett_lte_rrc_SpeedStateScaleFactors;
-static gint ett_lte_rrc_SystemInfoListGERAN;
-static gint ett_lte_rrc_SystemTimeInfoCDMA2000;
-static gint ett_lte_rrc_T_cdma_SystemTime;
-static gint ett_lte_rrc_ThresholdNR_r15;
-static gint ett_lte_rrc_ThresholdListNR_r15;
-static gint ett_lte_rrc_TLE_EphemerisParameters_r17;
-static gint ett_lte_rrc_BT_NameListConfig_r15;
-static gint ett_lte_rrc_BT_NameList_r15;
-static gint ett_lte_rrc_LocationInfo_r10;
-static gint ett_lte_rrc_T_locationCoordinates_r10;
-static gint ett_lte_rrc_T_verticalVelocityInfo_r15;
-static gint ett_lte_rrc_LogMeasResultListBT_r15;
-static gint ett_lte_rrc_LogMeasResultBT_r15;
-static gint ett_lte_rrc_LogMeasResultListWLAN_r15;
-static gint ett_lte_rrc_LogMeasResultWLAN_r15;
-static gint ett_lte_rrc_MeasConfig;
-static gint ett_lte_rrc_T_speedStatePars;
-static gint ett_lte_rrc_T_measConfig_speedStatePars_setup;
-static gint ett_lte_rrc_T_measScaleFactor_r12;
-static gint ett_lte_rrc_T_heightThreshRef_r15;
-static gint ett_lte_rrc_MeasIdToRemoveList;
-static gint ett_lte_rrc_MeasIdToRemoveListExt_r12;
-static gint ett_lte_rrc_MeasObjectToRemoveList;
-static gint ett_lte_rrc_MeasObjectToRemoveListExt_r13;
-static gint ett_lte_rrc_ReportConfigToRemoveList;
-static gint ett_lte_rrc_MeasDS_Config_r12;
-static gint ett_lte_rrc_T_measDS_Config_r12_setup;
-static gint ett_lte_rrc_T_dmtc_PeriodOffset_r12;
-static gint ett_lte_rrc_T_ds_OccasionDuration_r12;
-static gint ett_lte_rrc_MeasCSI_RS_ToRemoveList_r12;
-static gint ett_lte_rrc_MeasCSI_RS_ToAddModList_r12;
-static gint ett_lte_rrc_MeasCSI_RS_Config_r12;
-static gint ett_lte_rrc_MeasGapConfig;
-static gint ett_lte_rrc_T_measGapConfig_setup;
-static gint ett_lte_rrc_T_gapOffset;
-static gint ett_lte_rrc_MeasGapConfigDensePRS_r15;
-static gint ett_lte_rrc_T_measGapConfigDensePRS_r15_setup;
-static gint ett_lte_rrc_T_gapOffsetDensePRS_r15;
-static gint ett_lte_rrc_MeasGapConfigPerCC_List_r14;
-static gint ett_lte_rrc_T_measGapConfigPerCC_List_r14_setup;
-static gint ett_lte_rrc_MeasGapConfigToRemoveList_r14;
-static gint ett_lte_rrc_MeasGapConfigToAddModList_r14;
-static gint ett_lte_rrc_MeasGapConfigPerCC_r14;
-static gint ett_lte_rrc_MeasGapSharingConfig_r14;
-static gint ett_lte_rrc_T_measGapSharingConfig_r14_setup;
-static gint ett_lte_rrc_MeasIdleConfigSIB_r15;
-static gint ett_lte_rrc_MeasIdleConfigSIB_NR_r16;
-static gint ett_lte_rrc_MeasIdleConfigDedicated_r15;
-static gint ett_lte_rrc_EUTRA_CarrierList_r15;
-static gint ett_lte_rrc_NR_CarrierList_r16;
-static gint ett_lte_rrc_MeasIdleCarrierEUTRA_r15;
-static gint ett_lte_rrc_T_qualityThreshold_r15;
-static gint ett_lte_rrc_ValidityAreaList_r16;
-static gint ett_lte_rrc_ValidityArea_r16;
-static gint ett_lte_rrc_ValidityCellList_r16;
-static gint ett_lte_rrc_MeasIdleCarrierNR_r16;
-static gint ett_lte_rrc_T_qualityThresholdNR_r16;
-static gint ett_lte_rrc_T_ssb_MeasConfig_r16;
-static gint ett_lte_rrc_CellList_r15;
-static gint ett_lte_rrc_CellListNR_r16;
-static gint ett_lte_rrc_BeamMeasConfigIdleNR_r16;
-static gint ett_lte_rrc_MeasIdToAddModList;
-static gint ett_lte_rrc_MeasIdToAddModList_v1310;
-static gint ett_lte_rrc_MeasIdToAddModListExt_r12;
-static gint ett_lte_rrc_MeasIdToAddModListExt_v1310;
-static gint ett_lte_rrc_MeasIdToAddMod;
-static gint ett_lte_rrc_MeasIdToAddModExt_r12;
-static gint ett_lte_rrc_MeasIdToAddMod_v1310;
-static gint ett_lte_rrc_MeasObjectCDMA2000;
-static gint ett_lte_rrc_CellsToAddModListCDMA2000;
-static gint ett_lte_rrc_CellsToAddModCDMA2000;
-static gint ett_lte_rrc_MeasObjectEUTRA;
-static gint ett_lte_rrc_T_t312_r12;
-static gint ett_lte_rrc_T_measRSS_DedicatedConfig_r16;
-static gint ett_lte_rrc_MeasObjectEUTRA_v9e0;
-static gint ett_lte_rrc_MeasRSS_DedicatedConfig_r16;
-static gint ett_lte_rrc_CellsToAddModList;
-static gint ett_lte_rrc_CellsToAddModList_v1610;
-static gint ett_lte_rrc_CellsToAddMod;
-static gint ett_lte_rrc_CellsToAddMod_v1610;
-static gint ett_lte_rrc_ExcludedCellsToAddModList;
-static gint ett_lte_rrc_ExcludedCellsToAddMod;
-static gint ett_lte_rrc_MeasSubframePatternConfigNeigh_r10;
-static gint ett_lte_rrc_T_measSubframePatternConfigNeigh_r10_setup;
-static gint ett_lte_rrc_MeasSubframeCellList_r10;
-static gint ett_lte_rrc_AltTTT_CellsToAddModList_r12;
-static gint ett_lte_rrc_AltTTT_CellsToAddMod_r12;
-static gint ett_lte_rrc_AllowedCellsToAddModList_r13;
-static gint ett_lte_rrc_AllowedCellsToAddMod_r13;
-static gint ett_lte_rrc_RMTC_Config_r13;
-static gint ett_lte_rrc_T_rMTC_Config_r13_setup;
-static gint ett_lte_rrc_Tx_ResourcePoolMeasList_r14;
-static gint ett_lte_rrc_MeasObjectGERAN;
-static gint ett_lte_rrc_MeasObjectNR_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCellSFTD_OF_PhysCellIdNR_r15;
-static gint ett_lte_rrc_T_bandNR_r15;
-static gint ett_lte_rrc_T_rmtc_ConfigNR_r16;
-static gint ett_lte_rrc_RS_ConfigSSB_NR_r15;
-static gint ett_lte_rrc_T_ssb_ToMeasure_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_PhysCellIdNR_r15;
-static gint ett_lte_rrc_CellsToAddModListNR_r15;
-static gint ett_lte_rrc_CellsToAddModListNR_r16;
-static gint ett_lte_rrc_CellsToAddModNR_r15;
-static gint ett_lte_rrc_CellsToAddModNR_r16;
-static gint ett_lte_rrc_SSB_PositionQCL_CellsToAddModListNR_r16;
-static gint ett_lte_rrc_SSB_PositionQCL_CellsToAddNR_r16;
-static gint ett_lte_rrc_RMTC_ConfigNR_r16;
-static gint ett_lte_rrc_SSB_PositionQCL_CellsToAddModListNR_r17;
-static gint ett_lte_rrc_SSB_PositionQCL_CellsToAddNR_r17;
-static gint ett_lte_rrc_MeasObjectToAddModList;
-static gint ett_lte_rrc_MeasObjectToAddModListExt_r13;
-static gint ett_lte_rrc_MeasObjectToAddModList_v9e0;
-static gint ett_lte_rrc_MeasObjectToAddMod;
-static gint ett_lte_rrc_T_measObject;
-static gint ett_lte_rrc_MeasObjectToAddModExt_r13;
-static gint ett_lte_rrc_T_measObject_r13;
-static gint ett_lte_rrc_MeasObjectToAddMod_v9e0;
-static gint ett_lte_rrc_MeasObjectUTRA;
-static gint ett_lte_rrc_T_cellsToAddModList;
-static gint ett_lte_rrc_T_cellForWhichToReportCGI;
-static gint ett_lte_rrc_CellsToAddModListUTRA_FDD;
-static gint ett_lte_rrc_CellsToAddModUTRA_FDD;
-static gint ett_lte_rrc_CellsToAddModListUTRA_TDD;
-static gint ett_lte_rrc_CellsToAddModUTRA_TDD;
-static gint ett_lte_rrc_CSG_AllowedReportingCells_r9;
-static gint ett_lte_rrc_MeasObjectWLAN_r13;
-static gint ett_lte_rrc_T_carrierFreq_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxWLAN_Bands_r13_OF_WLAN_BandIndicator_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxWLAN_CarrierInfo_r13_OF_WLAN_CarrierInfo_r13;
-static gint ett_lte_rrc_MeasResults;
-static gint ett_lte_rrc_T_measResultPCell;
-static gint ett_lte_rrc_T_measResultNeighCells;
-static gint ett_lte_rrc_T_measResultPCell_v1310;
-static gint ett_lte_rrc_MeasResultListEUTRA;
-static gint ett_lte_rrc_MeasResultEUTRA;
-static gint ett_lte_rrc_T_cgi_Info;
-static gint ett_lte_rrc_T_measResult;
-static gint ett_lte_rrc_T_cgi_Info_v1310;
-static gint ett_lte_rrc_MeasResultListIdle_r15;
-static gint ett_lte_rrc_MeasResultIdle_r15;
-static gint ett_lte_rrc_T_measResultServingCell_r15;
-static gint ett_lte_rrc_T_measResultNeighCells_r15;
-static gint ett_lte_rrc_MeasResultIdleListEUTRA_r15;
-static gint ett_lte_rrc_MeasResultIdleEUTRA_r15;
-static gint ett_lte_rrc_T_measResult_r15;
-static gint ett_lte_rrc_MeasResultListExtIdle_r16;
-static gint ett_lte_rrc_MeasResultListIdleNR_r16;
-static gint ett_lte_rrc_MeasResultIdleNR_r16;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCellMeasIdle_r15_OF_MeasResultsPerCellIdleNR_r16;
-static gint ett_lte_rrc_MeasResultsPerCellIdleNR_r16;
-static gint ett_lte_rrc_T_measIdleResultNR_r16;
-static gint ett_lte_rrc_ResultsPerSSB_IndexList_r16;
-static gint ett_lte_rrc_ResultsPerSSB_IndexIdle_r16;
-static gint ett_lte_rrc_T_ssb_Results_r16;
-static gint ett_lte_rrc_MeasResultServFreqListNR_r15;
-static gint ett_lte_rrc_MeasResultServFreqNR_r15;
-static gint ett_lte_rrc_MeasResultCellListNR_r15;
-static gint ett_lte_rrc_MeasResultCellNR_r15;
-static gint ett_lte_rrc_MeasResultNR_r15;
-static gint ett_lte_rrc_MeasResultSSB_IndexList_r15;
-static gint ett_lte_rrc_MeasResultSSB_Index_r15;
-static gint ett_lte_rrc_MeasResultServFreqList_r10;
-static gint ett_lte_rrc_MeasResultServFreqListExt_r13;
-static gint ett_lte_rrc_MeasResultServFreq_r10;
-static gint ett_lte_rrc_T_measResultSCell_r10;
-static gint ett_lte_rrc_T_measResultBestNeighCell_r10;
-static gint ett_lte_rrc_T_measResultSCell_v1310_01;
-static gint ett_lte_rrc_T_measResultBestNeighCell_v1310;
-static gint ett_lte_rrc_MeasResultServFreq_r13;
-static gint ett_lte_rrc_T_measResultSCell_r13;
-static gint ett_lte_rrc_T_measResultBestNeighCell_r13;
-static gint ett_lte_rrc_T_measResultBestNeighCell_v1360;
-static gint ett_lte_rrc_MeasResultCSI_RS_List_r12;
-static gint ett_lte_rrc_MeasResultCSI_RS_r12;
-static gint ett_lte_rrc_MeasResultListUTRA;
-static gint ett_lte_rrc_MeasResultUTRA;
-static gint ett_lte_rrc_T_physCellId;
-static gint ett_lte_rrc_T_cgi_Info_01;
-static gint ett_lte_rrc_T_measResult_01;
-static gint ett_lte_rrc_MeasResultListGERAN;
-static gint ett_lte_rrc_MeasResultGERAN;
-static gint ett_lte_rrc_T_cgi_Info_02;
-static gint ett_lte_rrc_T_measResult_02;
-static gint ett_lte_rrc_MeasResultsCDMA2000;
-static gint ett_lte_rrc_MeasResultListCDMA2000;
-static gint ett_lte_rrc_MeasResultCDMA2000;
-static gint ett_lte_rrc_T_measResult_03;
-static gint ett_lte_rrc_MeasResultListWLAN_r13;
-static gint ett_lte_rrc_MeasResultListWLAN_r14;
-static gint ett_lte_rrc_MeasResultWLAN_r13;
-static gint ett_lte_rrc_MeasResultListCBR_r14;
-static gint ett_lte_rrc_MeasResultCBR_r14;
-static gint ett_lte_rrc_MeasResultSensing_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_0_400_OF_SensingResult_r15;
-static gint ett_lte_rrc_SensingResult_r15;
-static gint ett_lte_rrc_MeasResultForECID_r9;
-static gint ett_lte_rrc_PLMN_IdentityList2;
-static gint ett_lte_rrc_AdditionalSI_Info_r9;
-static gint ett_lte_rrc_MeasResultForRSSI_r13;
-static gint ett_lte_rrc_MeasResultForRSSI_NR_r16;
-static gint ett_lte_rrc_UL_PDCP_DelayResultList_r13;
-static gint ett_lte_rrc_UL_PDCP_DelayResult_r13;
-static gint ett_lte_rrc_UL_PDCP_DelayValueResultList_r16;
-static gint ett_lte_rrc_UL_PDCP_DelayValueResult_r16;
-static gint ett_lte_rrc_CGI_InfoNR_r15;
-static gint ett_lte_rrc_T_noSIB1_r15;
-static gint ett_lte_rrc_PLMN_IdentityListNR_r15;
-static gint ett_lte_rrc_PLMN_IdentityInfoListNR_r15;
-static gint ett_lte_rrc_PLMN_IdentityInfoListNR_v1710;
-static gint ett_lte_rrc_PLMN_IdentityInfoNR_r15;
-static gint ett_lte_rrc_PLMN_IdentityInfoNR_v1710;
-static gint ett_lte_rrc_MeasResultCellListSFTD_r15;
-static gint ett_lte_rrc_MeasResultCellSFTD_r15;
-static gint ett_lte_rrc_MeasResultSCG_FailureMRDC_r15;
-static gint ett_lte_rrc_MeasResultList3EUTRA_r15;
-static gint ett_lte_rrc_MeasResult3EUTRA_r15;
-static gint ett_lte_rrc_MeasResultSSTD_r13;
-static gint ett_lte_rrc_MeasSensing_Config_r15;
-static gint ett_lte_rrc_MTC_SSB_NR_r15;
-static gint ett_lte_rrc_T_periodicityAndOffset_r15;
-static gint ett_lte_rrc_MTC_SSB2_LP_NR_r16;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxNrofPCI_PerSMTC_r16_OF_PhysCellIdNR_r15;
-static gint ett_lte_rrc_QuantityConfig;
-static gint ett_lte_rrc_QuantityConfigEUTRA;
-static gint ett_lte_rrc_QuantityConfigEUTRA_v1250;
-static gint ett_lte_rrc_QuantityConfigEUTRA_v1310;
-static gint ett_lte_rrc_QuantityConfigUTRA;
-static gint ett_lte_rrc_QuantityConfigUTRA_v1020;
-static gint ett_lte_rrc_QuantityConfigGERAN;
-static gint ett_lte_rrc_QuantityConfigCDMA2000;
-static gint ett_lte_rrc_QuantityConfigNRList_r15;
-static gint ett_lte_rrc_QuantityConfigNR_r15;
-static gint ett_lte_rrc_QuantityConfigRS_NR_r15;
-static gint ett_lte_rrc_QuantityConfigWLAN_r13;
-static gint ett_lte_rrc_ReportConfigEUTRA;
-static gint ett_lte_rrc_T_triggerType;
-static gint ett_lte_rrc_T_event;
-static gint ett_lte_rrc_T_eventId;
-static gint ett_lte_rrc_T_eventA1;
-static gint ett_lte_rrc_T_eventA2;
-static gint ett_lte_rrc_T_eventA3;
-static gint ett_lte_rrc_T_eventA4;
-static gint ett_lte_rrc_T_eventA5;
-static gint ett_lte_rrc_T_eventA6_r10;
-static gint ett_lte_rrc_T_eventC1_r12;
-static gint ett_lte_rrc_T_eventC2_r12;
-static gint ett_lte_rrc_T_eventV1_r14;
-static gint ett_lte_rrc_T_eventV2_r14;
-static gint ett_lte_rrc_T_eventH1_r15;
-static gint ett_lte_rrc_T_eventH2_r15;
-static gint ett_lte_rrc_T_periodical;
-static gint ett_lte_rrc_T_alternativeTimeToTrigger_r12;
-static gint ett_lte_rrc_T_rs_sinr_Config_r13;
-static gint ett_lte_rrc_T_reportConfigEUTRA_eag_4_rs_sinr_Config_r13_setup;
-static gint ett_lte_rrc_CondReconfigurationTriggerEUTRA_r16;
-static gint ett_lte_rrc_T_condEventId_r16;
-static gint ett_lte_rrc_T_condEventA3_r16;
-static gint ett_lte_rrc_T_condEventA5_r16;
-static gint ett_lte_rrc_RSRQ_RangeConfig_r12;
-static gint ett_lte_rrc_ThresholdEUTRA;
-static gint ett_lte_rrc_MeasRSSI_ReportConfig_r13;
-static gint ett_lte_rrc_ReportConfigInterRAT;
-static gint ett_lte_rrc_T_triggerType_01;
-static gint ett_lte_rrc_T_event_01;
-static gint ett_lte_rrc_T_eventId_01;
-static gint ett_lte_rrc_T_eventB1;
-static gint ett_lte_rrc_T_b1_Threshold;
-static gint ett_lte_rrc_T_eventB2;
-static gint ett_lte_rrc_T_b2_Threshold2;
-static gint ett_lte_rrc_T_eventW1_r13;
-static gint ett_lte_rrc_T_eventW2_r13;
-static gint ett_lte_rrc_T_eventW3_r13;
-static gint ett_lte_rrc_T_eventB1_NR_r15;
-static gint ett_lte_rrc_T_eventB2_NR_r15;
-static gint ett_lte_rrc_T_periodical_01;
-static gint ett_lte_rrc_T_b2_Threshold1_v1250;
-static gint ett_lte_rrc_CondReconfigurationTriggerNR_r17;
-static gint ett_lte_rrc_T_condEventId_r17;
-static gint ett_lte_rrc_T_condEventB1_NR_r17;
-static gint ett_lte_rrc_ThresholdUTRA;
-static gint ett_lte_rrc_ReportQuantityNR_r15;
-static gint ett_lte_rrc_ReportQuantityWLAN_r13;
-static gint ett_lte_rrc_ReportConfigToAddModList;
-static gint ett_lte_rrc_ReportConfigToAddMod;
-static gint ett_lte_rrc_T_reportConfig;
-static gint ett_lte_rrc_RSRQ_Type_r12;
-static gint ett_lte_rrc_SS_RSSI_Measurement_r15;
-static gint ett_lte_rrc_SSB_ToMeasure_r15;
-static gint ett_lte_rrc_UL_DelayConfig_r13;
-static gint ett_lte_rrc_T_uL_DelayConfig_r13_setup;
-static gint ett_lte_rrc_UL_DelayValueConfig_r16;
-static gint ett_lte_rrc_T_uL_DelayValueConfig_r16_setup;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DRB_Identity;
-static gint ett_lte_rrc_WLAN_CarrierInfo_r13;
-static gint ett_lte_rrc_WLAN_ChannelList_r13;
-static gint ett_lte_rrc_WLAN_NameListConfig_r15;
-static gint ett_lte_rrc_WLAN_NameList_r15;
-static gint ett_lte_rrc_WLAN_RTT_r15;
-static gint ett_lte_rrc_WLAN_SuspendConfig_r14;
-static gint ett_lte_rrc_AreaConfiguration_r10;
-static gint ett_lte_rrc_AreaConfiguration_v1130;
-static gint ett_lte_rrc_CellGlobalIdList_r10;
-static gint ett_lte_rrc_TrackingAreaCodeList_r10;
-static gint ett_lte_rrc_TrackingAreaCodeList_v1130;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_PLMN_Identity;
-static gint ett_lte_rrc_BandCombinationList_r14;
-static gint ett_lte_rrc_BandCombination_r14;
-static gint ett_lte_rrc_BandIndication_r14;
-static gint ett_lte_rrc_FlightPathInfoReportConfig_r15;
-static gint ett_lte_rrc_GNSS_ID_r15;
-static gint ett_lte_rrc_MeasSubframePattern_r10;
-static gint ett_lte_rrc_T_subframePatternTDD_r10;
-static gint ett_lte_rrc_OtherConfig_r9;
-static gint ett_lte_rrc_T_delayBudgetReportingConfig_r14;
-static gint ett_lte_rrc_T_otherConfig_r9_eag_2_delayBudgetReportingConfig_r14_setup;
-static gint ett_lte_rrc_T_rlm_ReportConfig_r14;
-static gint ett_lte_rrc_T_otherConfig_r9_eag_2_rlm_ReportConfig_r14_setup;
-static gint ett_lte_rrc_T_overheatingAssistanceConfig_r14;
-static gint ett_lte_rrc_T_otherConfig_r9_eag_3_overheatingAssistanceConfig_r14_setup;
-static gint ett_lte_rrc_T_measConfigAppLayer_r15;
-static gint ett_lte_rrc_T_otherConfig_r9_eag_4_measConfigAppLayer_r15_setup;
-static gint ett_lte_rrc_T_scg_DeactivationPreferenceConfig_r17;
-static gint ett_lte_rrc_IDC_Config_r11;
-static gint ett_lte_rrc_T_autonomousDenialParameters_r11;
-static gint ett_lte_rrc_T_idc_Indication_MRDC_r15;
-static gint ett_lte_rrc_ObtainLocationConfig_r11;
-static gint ett_lte_rrc_PowerPrefIndicationConfig_r11;
-static gint ett_lte_rrc_T_powerPrefIndicationConfig_r11_setup;
-static gint ett_lte_rrc_ReportProximityConfig_r9;
-static gint ett_lte_rrc_CandidateServingFreqListNR_r15;
-static gint ett_lte_rrc_SCG_DeactivationPreferenceConfig_r17;
-static gint ett_lte_rrc_SBAS_ID_r15;
-static gint ett_lte_rrc_S_NSSAI_r15;
-static gint ett_lte_rrc_S_TMSI;
-static gint ett_lte_rrc_TraceReference_r10;
-static gint ett_lte_rrc_UE_CapabilityRAT_ContainerList;
-static gint ett_lte_rrc_UE_CapabilityRAT_Container;
-static gint ett_lte_rrc_UE_EUTRA_Capability;
-static gint ett_lte_rrc_T_interRAT_Parameters;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v9a0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v9c0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v9d0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v9e0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v9h0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v10c0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v10f0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v10i0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v10j0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_81;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v11d0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v11x0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v12b0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v12x0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1370_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1380_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1390_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v13e0a_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v13e0b_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_82;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1470_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v14a0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v14b0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v14x0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v15x0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v16c0_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_83;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v920_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v940_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1020_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1060_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1090_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1130_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1170_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1180_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v11a0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1250_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1260_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1270_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1280_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1310_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1320_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1330_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1340_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1350_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1360_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1430_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1440_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1450_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1460_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1510_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1520_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1530_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1540_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1550_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1560_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1570_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v15a0_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1610_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1630_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1650_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1660_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1690_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1700_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1710_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1720_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1730_IEs;
-static gint ett_lte_rrc_UE_EUTRA_Capability_v1770_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_84;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_r9;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1060;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1130;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1180;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1250;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1310;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1320;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1370;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1380;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1430;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1510;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1530;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1540;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1550;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1560;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v15a0;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1610;
-static gint ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1630;
-static gint ett_lte_rrc_FeatureSetsEUTRA_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFeatureSets_r15_OF_FeatureSetDL_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_r15_OF_FeatureSetDL_PerCC_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFeatureSets_r15_OF_FeatureSetUL_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_r15_OF_FeatureSetUL_PerCC_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFeatureSets_r15_OF_FeatureSetDL_v1550;
-static gint ett_lte_rrc_MobilityParameters_r14;
-static gint ett_lte_rrc_MobilityParameters_v1610;
-static gint ett_lte_rrc_DC_Parameters_r12;
-static gint ett_lte_rrc_DC_Parameters_v1310;
-static gint ett_lte_rrc_MAC_Parameters_r12;
-static gint ett_lte_rrc_MAC_Parameters_v1310;
-static gint ett_lte_rrc_MAC_Parameters_v1430;
-static gint ett_lte_rrc_MAC_Parameters_v1440;
-static gint ett_lte_rrc_MAC_Parameters_v1530;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_ProcessingTimelineSet_r15;
-static gint ett_lte_rrc_MAC_Parameters_v1550;
-static gint ett_lte_rrc_MAC_Parameters_v1610;
-static gint ett_lte_rrc_MAC_Parameters_v1630;
-static gint ett_lte_rrc_NTN_Parameters_r17;
-static gint ett_lte_rrc_NTN_Parameters_v1720;
-static gint ett_lte_rrc_RLC_Parameters_r12;
-static gint ett_lte_rrc_RLC_Parameters_v1310;
-static gint ett_lte_rrc_RLC_Parameters_v1430;
-static gint ett_lte_rrc_RLC_Parameters_v1530;
-static gint ett_lte_rrc_PDCP_Parameters;
-static gint ett_lte_rrc_PDCP_Parameters_v1130;
-static gint ett_lte_rrc_PDCP_Parameters_v1310;
-static gint ett_lte_rrc_PDCP_Parameters_v1430;
-static gint ett_lte_rrc_T_supportedUplinkOnlyROHC_Profiles_r14;
-static gint ett_lte_rrc_PDCP_Parameters_v1530;
-static gint ett_lte_rrc_PDCP_Parameters_v1610;
-static gint ett_lte_rrc_SupportedUDC_r15;
-static gint ett_lte_rrc_SupportedOperatorDic_r15;
-static gint ett_lte_rrc_PhyLayerParameters;
-static gint ett_lte_rrc_PhyLayerParameters_v920;
-static gint ett_lte_rrc_PhyLayerParameters_v9d0;
-static gint ett_lte_rrc_PhyLayerParameters_v1020;
-static gint ett_lte_rrc_PhyLayerParameters_v1130;
-static gint ett_lte_rrc_PhyLayerParameters_v1170;
-static gint ett_lte_rrc_PhyLayerParameters_v1250;
-static gint ett_lte_rrc_PhyLayerParameters_v1280;
-static gint ett_lte_rrc_PhyLayerParameters_v1310;
-static gint ett_lte_rrc_T_supportedBlindDecoding_r13;
-static gint ett_lte_rrc_PhyLayerParameters_v1320;
-static gint ett_lte_rrc_PhyLayerParameters_v1330;
-static gint ett_lte_rrc_PhyLayerParameters_v13e0;
-static gint ett_lte_rrc_PhyLayerParameters_v1430;
-static gint ett_lte_rrc_PhyLayerParameters_v1450;
-static gint ett_lte_rrc_PhyLayerParameters_v1470;
-static gint ett_lte_rrc_PhyLayerParameters_v14a0;
-static gint ett_lte_rrc_PhyLayerParameters_v1530;
-static gint ett_lte_rrc_T_stti_SPT_Capabilities_r15;
-static gint ett_lte_rrc_T_ce_Capabilities_r15;
-static gint ett_lte_rrc_T_urllc_Capabilities_r15;
-static gint ett_lte_rrc_PhyLayerParameters_v1540;
-static gint ett_lte_rrc_T_stti_SPT_Capabilities_v1540;
-static gint ett_lte_rrc_PhyLayerParameters_v1550;
-static gint ett_lte_rrc_PhyLayerParameters_v1610;
-static gint ett_lte_rrc_T_ce_Capabilities_v1610;
-static gint ett_lte_rrc_T_addSRS_r16;
-static gint ett_lte_rrc_PhyLayerParameters_v1700;
-static gint ett_lte_rrc_T_ce_Capabilities_v1700;
-static gint ett_lte_rrc_PhyLayerParameters_v1730;
-static gint ett_lte_rrc_MIMO_UE_Parameters_r13;
-static gint ett_lte_rrc_MIMO_UE_Parameters_v13e0;
-static gint ett_lte_rrc_MIMO_UE_Parameters_v1430;
-static gint ett_lte_rrc_MIMO_UE_Parameters_v1470;
-static gint ett_lte_rrc_MIMO_UE_ParametersPerTM_r13;
-static gint ett_lte_rrc_MIMO_UE_ParametersPerTM_v1430;
-static gint ett_lte_rrc_T_nzp_CSI_RS_AperiodicInfo_r14;
-static gint ett_lte_rrc_T_nzp_CSI_RS_PeriodicInfo_r14;
-static gint ett_lte_rrc_MIMO_UE_ParametersPerTM_v1470;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBC_r13;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBC_r15;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBC_v1430;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBC_v1470;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_r13;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_v1430;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_v1470;
-static gint ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_r15;
-static gint ett_lte_rrc_MIMO_NonPrecodedCapabilities_r13;
-static gint ett_lte_rrc_MIMO_UE_BeamformedCapabilities_r13;
-static gint ett_lte_rrc_MIMO_BeamformedCapabilityList_r13;
-static gint ett_lte_rrc_MIMO_BeamformedCapabilities_r13;
-static gint ett_lte_rrc_MIMO_WeightedLayersCapabilities_r13;
-static gint ett_lte_rrc_NonContiguousUL_RA_WithinCC_List_r10;
-static gint ett_lte_rrc_NonContiguousUL_RA_WithinCC_r10;
-static gint ett_lte_rrc_RF_Parameters;
-static gint ett_lte_rrc_RF_Parameters_v9e0;
-static gint ett_lte_rrc_RF_Parameters_v1020;
-static gint ett_lte_rrc_RF_Parameters_v1060;
-static gint ett_lte_rrc_RF_Parameters_v1090;
-static gint ett_lte_rrc_RF_Parameters_v10f0;
-static gint ett_lte_rrc_RF_Parameters_v10i0;
-static gint ett_lte_rrc_RF_Parameters_v10j0;
-static gint ett_lte_rrc_RF_Parameters_v1130;
-static gint ett_lte_rrc_RF_Parameters_v1180;
-static gint ett_lte_rrc_RF_Parameters_v11d0;
-static gint ett_lte_rrc_RF_Parameters_v1250;
-static gint ett_lte_rrc_RF_Parameters_v1270;
-static gint ett_lte_rrc_RF_Parameters_v1310;
-static gint ett_lte_rrc_T_eNB_RequestedParameters_r13;
-static gint ett_lte_rrc_RF_Parameters_v1320;
-static gint ett_lte_rrc_RF_Parameters_v1380;
-static gint ett_lte_rrc_RF_Parameters_v1390;
-static gint ett_lte_rrc_RF_Parameters_v12b0;
-static gint ett_lte_rrc_RF_Parameters_v1430;
-static gint ett_lte_rrc_T_eNB_RequestedParameters_v1430;
-static gint ett_lte_rrc_RF_Parameters_v1450;
-static gint ett_lte_rrc_RF_Parameters_v1470;
-static gint ett_lte_rrc_RF_Parameters_v14b0;
-static gint ett_lte_rrc_RF_Parameters_v1530;
-static gint ett_lte_rrc_RF_Parameters_v1570;
-static gint ett_lte_rrc_RF_Parameters_v1610;
-static gint ett_lte_rrc_RF_Parameters_v1630;
-static gint ett_lte_rrc_SkipSubframeProcessing_r15;
-static gint ett_lte_rrc_SPT_Parameters_r15;
-static gint ett_lte_rrc_STTI_SPT_BandParameters_r15;
-static gint ett_lte_rrc_STTI_SupportedCombinations_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_DL_UL_CCs_r15;
-static gint ett_lte_rrc_DL_UL_CCs_r15;
-static gint ett_lte_rrc_SupportedBandCombination_r10;
-static gint ett_lte_rrc_SupportedBandCombinationExt_r10;
-static gint ett_lte_rrc_SupportedBandCombination_v1090;
-static gint ett_lte_rrc_SupportedBandCombination_v10i0;
-static gint ett_lte_rrc_SupportedBandCombination_v1130;
-static gint ett_lte_rrc_SupportedBandCombination_v1250;
-static gint ett_lte_rrc_SupportedBandCombination_v1270;
-static gint ett_lte_rrc_SupportedBandCombination_v1320;
-static gint ett_lte_rrc_SupportedBandCombination_v1380;
-static gint ett_lte_rrc_SupportedBandCombination_v1390;
-static gint ett_lte_rrc_SupportedBandCombination_v1430;
-static gint ett_lte_rrc_SupportedBandCombination_v1450;
-static gint ett_lte_rrc_SupportedBandCombination_v1470;
-static gint ett_lte_rrc_SupportedBandCombination_v14b0;
-static gint ett_lte_rrc_SupportedBandCombination_v1530;
-static gint ett_lte_rrc_SupportedBandCombination_v1610;
-static gint ett_lte_rrc_SupportedBandCombination_v1630;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_r11;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v11d0;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1250;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1270;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1320;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1380;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1390;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1430;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1450;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1470;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v14b0;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1530;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1610;
-static gint ett_lte_rrc_SupportedBandCombinationAdd_v1630;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_r13;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1320;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1380;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1390;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1430;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1450;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1470;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v14b0;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1530;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1610;
-static gint ett_lte_rrc_SupportedBandCombinationReduced_v1630;
-static gint ett_lte_rrc_BandCombinationParameters_r10;
-static gint ett_lte_rrc_BandCombinationParametersExt_r10;
-static gint ett_lte_rrc_BandCombinationParameters_v1090;
-static gint ett_lte_rrc_BandCombinationParameters_v10i0;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v10i0;
-static gint ett_lte_rrc_BandCombinationParameters_v1130;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1130;
-static gint ett_lte_rrc_BandCombinationParameters_r11;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_r11;
-static gint ett_lte_rrc_BandCombinationParameters_v1250;
-static gint ett_lte_rrc_T_dc_Support_r12;
-static gint ett_lte_rrc_T_supportedCellGrouping_r12;
-static gint ett_lte_rrc_BandCombinationParameters_v1270;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1270;
-static gint ett_lte_rrc_BandCombinationParameters_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_r13;
-static gint ett_lte_rrc_T_dc_Support_r13;
-static gint ett_lte_rrc_T_supportedCellGrouping_r13;
-static gint ett_lte_rrc_BandCombinationParameters_v1320;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1320;
-static gint ett_lte_rrc_BandCombinationParameters_v1380;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1380;
-static gint ett_lte_rrc_BandCombinationParameters_v1390;
-static gint ett_lte_rrc_BandCombinationParameters_v1430;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1430;
-static gint ett_lte_rrc_BandCombinationParameters_v1450;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1450;
-static gint ett_lte_rrc_BandCombinationParameters_v1470;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1470;
-static gint ett_lte_rrc_BandCombinationParameters_v14b0;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v14b0;
-static gint ett_lte_rrc_BandCombinationParameters_v1530;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1530;
-static gint ett_lte_rrc_BandCombinationParameters_v1610;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1610;
-static gint ett_lte_rrc_T_interFreqDAPS_r16;
-static gint ett_lte_rrc_BandCombinationParameters_v1630;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBandCombSidelinkNR_r16_OF_ScalingFactorSidelink_r16;
-static gint ett_lte_rrc_BandParameters_r10;
-static gint ett_lte_rrc_BandParameters_v1090;
-static gint ett_lte_rrc_BandParameters_v10i0;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBandwidthClass_r10_OF_CA_MIMO_ParametersDL_v10i0;
-static gint ett_lte_rrc_BandParameters_v1130;
-static gint ett_lte_rrc_BandParameters_r11;
-static gint ett_lte_rrc_BandParameters_v1270;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBandwidthClass_r10_OF_CA_MIMO_ParametersDL_v1270;
-static gint ett_lte_rrc_BandParameters_r13;
-static gint ett_lte_rrc_BandParameters_v1320;
-static gint ett_lte_rrc_BandParameters_v1380;
-static gint ett_lte_rrc_BandParameters_v1430;
-static gint ett_lte_rrc_SEQUENCE_SIZE_2_maxServCell_r13_OF_UL_256QAM_perCC_Info_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_SRS_CapabilityPerBandPair_r14;
-static gint ett_lte_rrc_BandParameters_v1450;
-static gint ett_lte_rrc_BandParameters_v1470;
-static gint ett_lte_rrc_BandParameters_v14b0;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_SRS_CapabilityPerBandPair_v14b0;
-static gint ett_lte_rrc_BandParameters_v1530;
-static gint ett_lte_rrc_BandParameters_v1610;
-static gint ett_lte_rrc_T_intraFreqDAPS_r16;
-static gint ett_lte_rrc_T_addSRS_AntennaSwitching_r16_01;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_SRS_CapabilityPerBandPair_v1610;
-static gint ett_lte_rrc_V2X_BandParameters_r14;
-static gint ett_lte_rrc_V2X_BandParameters_v1530;
-static gint ett_lte_rrc_BandParametersTxSL_r14;
-static gint ett_lte_rrc_BandParametersRxSL_r14;
-static gint ett_lte_rrc_V2X_BandwidthClassSL_r14;
-static gint ett_lte_rrc_UL_256QAM_perCC_Info_r14;
-static gint ett_lte_rrc_FeatureSetDL_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r13_OF_FeatureSetDL_PerCC_Id_r15;
-static gint ett_lte_rrc_FeatureSetDL_v1550;
-static gint ett_lte_rrc_FeatureSetDL_PerCC_r15;
-static gint ett_lte_rrc_FeatureSetUL_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r13_OF_FeatureSetUL_PerCC_Id_r15;
-static gint ett_lte_rrc_FeatureSetUL_PerCC_r15;
-static gint ett_lte_rrc_BandParametersUL_r10;
-static gint ett_lte_rrc_CA_MIMO_ParametersUL_r10;
-static gint ett_lte_rrc_CA_MIMO_ParametersUL_r15;
-static gint ett_lte_rrc_BandParametersDL_r10;
-static gint ett_lte_rrc_CA_MIMO_ParametersDL_r10;
-static gint ett_lte_rrc_CA_MIMO_ParametersDL_v10i0;
-static gint ett_lte_rrc_CA_MIMO_ParametersDL_v1270;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r10_OF_IntraBandContiguousCC_Info_r12;
-static gint ett_lte_rrc_CA_MIMO_ParametersDL_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r13_OF_IntraBandContiguousCC_Info_r12;
-static gint ett_lte_rrc_CA_MIMO_ParametersDL_r15;
-static gint ett_lte_rrc_IntraBandContiguousCC_Info_r12;
-static gint ett_lte_rrc_MUST_Parameters_r14;
-static gint ett_lte_rrc_SupportedBandListEUTRA;
-static gint ett_lte_rrc_SupportedBandListEUTRA_v9e0;
-static gint ett_lte_rrc_SupportedBandListEUTRA_v1250;
-static gint ett_lte_rrc_SupportedBandListEUTRA_v1310;
-static gint ett_lte_rrc_SupportedBandListEUTRA_v1320;
-static gint ett_lte_rrc_SupportedBandEUTRA;
-static gint ett_lte_rrc_SupportedBandEUTRA_v9e0;
-static gint ett_lte_rrc_SupportedBandEUTRA_v1250;
-static gint ett_lte_rrc_SupportedBandEUTRA_v1310;
-static gint ett_lte_rrc_SupportedBandEUTRA_v1320;
-static gint ett_lte_rrc_MeasParameters;
-static gint ett_lte_rrc_MeasParameters_v1020;
-static gint ett_lte_rrc_MeasParameters_v1130;
-static gint ett_lte_rrc_MeasParameters_v11a0;
-static gint ett_lte_rrc_MeasParameters_v1250;
-static gint ett_lte_rrc_MeasParameters_v1310;
-static gint ett_lte_rrc_MeasParameters_v1430;
-static gint ett_lte_rrc_MeasParameters_v1520;
-static gint ett_lte_rrc_MeasParameters_v1530;
-static gint ett_lte_rrc_MeasParameters_v1610;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_MeasGapInfoNR_r16;
-static gint ett_lte_rrc_MeasParameters_v1630;
-static gint ett_lte_rrc_MeasParameters_v16c0;
-static gint ett_lte_rrc_MeasParameters_v1700;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBandsNR_r15_OF_SharedSpectrumMeasNR_r17;
-static gint ett_lte_rrc_MeasParameters_v1770;
-static gint ett_lte_rrc_SharedSpectrumMeasNR_r17;
-static gint ett_lte_rrc_MeasGapInfoNR_r16;
-static gint ett_lte_rrc_BandListEUTRA;
-static gint ett_lte_rrc_BandCombinationListEUTRA_r10;
-static gint ett_lte_rrc_BandInfoEUTRA;
-static gint ett_lte_rrc_InterFreqBandList;
-static gint ett_lte_rrc_InterFreqBandInfo;
-static gint ett_lte_rrc_InterRAT_BandList;
-static gint ett_lte_rrc_InterRAT_BandListNR_r16;
-static gint ett_lte_rrc_InterRAT_BandInfo;
-static gint ett_lte_rrc_InterRAT_BandInfoNR_r16;
-static gint ett_lte_rrc_IRAT_ParametersNR_r15;
-static gint ett_lte_rrc_IRAT_ParametersNR_v1540;
-static gint ett_lte_rrc_IRAT_ParametersNR_v1560;
-static gint ett_lte_rrc_IRAT_ParametersNR_v1570;
-static gint ett_lte_rrc_IRAT_ParametersNR_v1610;
-static gint ett_lte_rrc_IRAT_ParametersNR_v1660;
-static gint ett_lte_rrc_IRAT_ParametersNR_v1700;
-static gint ett_lte_rrc_IRAT_ParametersNR_v1710;
-static gint ett_lte_rrc_EUTRA_5GC_Parameters_r15;
-static gint ett_lte_rrc_EUTRA_5GC_Parameters_v1610;
-static gint ett_lte_rrc_PDCP_ParametersNR_r15;
-static gint ett_lte_rrc_T_rohc_ProfilesUL_Only_r15;
-static gint ett_lte_rrc_PDCP_ParametersNR_v1560;
-static gint ett_lte_rrc_ROHC_ProfileSupportList_r15;
-static gint ett_lte_rrc_SupportedBandListNR_r15;
-static gint ett_lte_rrc_SupportedBandNR_r15;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_FDD;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_v920;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_v9c0;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_v9h0;
-static gint ett_lte_rrc_SupportedBandListUTRA_FDD;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_TDD128;
-static gint ett_lte_rrc_SupportedBandListUTRA_TDD128;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_TDD384;
-static gint ett_lte_rrc_SupportedBandListUTRA_TDD384;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_TDD768;
-static gint ett_lte_rrc_SupportedBandListUTRA_TDD768;
-static gint ett_lte_rrc_IRAT_ParametersUTRA_TDD_v1020;
-static gint ett_lte_rrc_IRAT_ParametersGERAN;
-static gint ett_lte_rrc_IRAT_ParametersGERAN_v920;
-static gint ett_lte_rrc_SupportedBandListGERAN;
-static gint ett_lte_rrc_IRAT_ParametersCDMA2000_HRPD;
-static gint ett_lte_rrc_SupportedBandListHRPD;
-static gint ett_lte_rrc_IRAT_ParametersCDMA2000_1XRTT;
-static gint ett_lte_rrc_IRAT_ParametersCDMA2000_1XRTT_v920;
-static gint ett_lte_rrc_IRAT_ParametersCDMA2000_1XRTT_v1020;
-static gint ett_lte_rrc_IRAT_ParametersCDMA2000_v1130;
-static gint ett_lte_rrc_SupportedBandList1XRTT;
-static gint ett_lte_rrc_IRAT_ParametersWLAN_r13;
-static gint ett_lte_rrc_SupportedBandListWLAN_r13;
-static gint ett_lte_rrc_CSG_ProximityIndicationParameters_r9;
-static gint ett_lte_rrc_NeighCellSI_AcquisitionParameters_r9;
-static gint ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1530;
-static gint ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1550;
-static gint ett_lte_rrc_NeighCellSI_AcquisitionParameters_v15a0;
-static gint ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1610;
-static gint ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1710;
-static gint ett_lte_rrc_SON_Parameters_r9;
-static gint ett_lte_rrc_PUR_Parameters_r16;
-static gint ett_lte_rrc_UE_BasedNetwPerfMeasParameters_r10;
-static gint ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1250;
-static gint ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1430;
-static gint ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1530;
-static gint ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1610;
-static gint ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1700;
-static gint ett_lte_rrc_OTDOA_PositioningCapabilities_r10;
-static gint ett_lte_rrc_Other_Parameters_r11;
-static gint ett_lte_rrc_Other_Parameters_v11d0;
-static gint ett_lte_rrc_Other_Parameters_v1360;
-static gint ett_lte_rrc_Other_Parameters_v1430;
-static gint ett_lte_rrc_OtherParameters_v1450;
-static gint ett_lte_rrc_Other_Parameters_v1460;
-static gint ett_lte_rrc_Other_Parameters_v1530;
-static gint ett_lte_rrc_Other_Parameters_v1540;
-static gint ett_lte_rrc_Other_Parameters_v1610;
-static gint ett_lte_rrc_Other_Parameters_v1650;
-static gint ett_lte_rrc_Other_Parameters_v1690;
-static gint ett_lte_rrc_MBMS_Parameters_r11;
-static gint ett_lte_rrc_MBMS_Parameters_v1250;
-static gint ett_lte_rrc_MBMS_Parameters_v1430;
-static gint ett_lte_rrc_MBMS_Parameters_v1470;
-static gint ett_lte_rrc_T_mbms_MaxBW_r14;
-static gint ett_lte_rrc_MBMS_Parameters_v1610;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_MBMS_SupportedBandInfo_r16;
-static gint ett_lte_rrc_MBMS_Parameters_v1700;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_MBMS_SupportedBandInfo_v1700;
-static gint ett_lte_rrc_MBMS_SupportedBandInfo_r16;
-static gint ett_lte_rrc_T_subcarrierSpacingMBMS_khz0dot37_r16;
-static gint ett_lte_rrc_MBMS_SupportedBandInfo_v1700;
-static gint ett_lte_rrc_FeMBMS_Unicast_Parameters_r14;
-static gint ett_lte_rrc_SCPTM_Parameters_r13;
-static gint ett_lte_rrc_CE_Parameters_r13;
-static gint ett_lte_rrc_CE_Parameters_v1320;
-static gint ett_lte_rrc_CE_Parameters_v1350;
-static gint ett_lte_rrc_CE_Parameters_v1370;
-static gint ett_lte_rrc_CE_Parameters_v1380;
-static gint ett_lte_rrc_CE_Parameters_v1430;
-static gint ett_lte_rrc_CE_MultiTB_Parameters_r16;
-static gint ett_lte_rrc_CE_ResourceResvParameters_r16;
-static gint ett_lte_rrc_LAA_Parameters_r13;
-static gint ett_lte_rrc_LAA_Parameters_v1430;
-static gint ett_lte_rrc_LAA_Parameters_v1530;
-static gint ett_lte_rrc_WLAN_IW_Parameters_r12;
-static gint ett_lte_rrc_LWA_Parameters_r13;
-static gint ett_lte_rrc_LWA_Parameters_v1430;
-static gint ett_lte_rrc_LWA_Parameters_v1440;
-static gint ett_lte_rrc_WLAN_IW_Parameters_v1310;
-static gint ett_lte_rrc_LWIP_Parameters_r13;
-static gint ett_lte_rrc_LWIP_Parameters_v1430;
-static gint ett_lte_rrc_NAICS_Capability_List_r12;
-static gint ett_lte_rrc_NAICS_Capability_Entry_r12;
-static gint ett_lte_rrc_SL_Parameters_r12;
-static gint ett_lte_rrc_SL_Parameters_v1310;
-static gint ett_lte_rrc_SL_Parameters_v1430;
-static gint ett_lte_rrc_SL_Parameters_v1530;
-static gint ett_lte_rrc_SL_Parameters_v1540;
-static gint ett_lte_rrc_SL_Parameters_v1610;
-static gint ett_lte_rrc_SL_Parameters_v1630;
-static gint ett_lte_rrc_SL_Parameters_v1710;
-static gint ett_lte_rrc_UE_CategorySL_r15;
-static gint ett_lte_rrc_V2X_SupportedBandCombination_r14;
-static gint ett_lte_rrc_V2X_SupportedBandCombination_v1530;
-static gint ett_lte_rrc_V2X_BandCombinationParameters_r14;
-static gint ett_lte_rrc_V2X_BandCombinationParameters_v1530;
-static gint ett_lte_rrc_V2X_SupportedBandCombinationEUTRA_NR_r16;
-static gint ett_lte_rrc_V2X_SupportedBandCombinationEUTRA_NR_v1630;
-static gint ett_lte_rrc_V2X_SupportedBandCombinationEUTRA_NR_v1710;
-static gint ett_lte_rrc_V2X_BandCombinationParametersEUTRA_NR_v1630;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_V2X_BandParametersEUTRA_NR_r16;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_V2X_BandParametersEUTRA_NR_v1630;
-static gint ett_lte_rrc_V2X_BandCombinationParametersEUTRA_NR_v1710;
-static gint ett_lte_rrc_V2X_BandParametersEUTRA_NR_r16;
-static gint ett_lte_rrc_T_eutra;
-static gint ett_lte_rrc_T_nr;
-static gint ett_lte_rrc_V2X_BandParametersEUTRA_NR_v1630;
-static gint ett_lte_rrc_T_nr_01;
-static gint ett_lte_rrc_V2X_BandParametersEUTRA_NR_v1710;
-static gint ett_lte_rrc_SupportedBandInfoList_r12;
-static gint ett_lte_rrc_SupportedBandInfo_r12;
-static gint ett_lte_rrc_FreqBandIndicatorListEUTRA_r12;
-static gint ett_lte_rrc_MMTEL_Parameters_r14;
-static gint ett_lte_rrc_MMTEL_Parameters_v1610;
-static gint ett_lte_rrc_SRS_CapabilityPerBandPair_r14;
-static gint ett_lte_rrc_T_retuningInfo;
-static gint ett_lte_rrc_SRS_CapabilityPerBandPair_v14b0;
-static gint ett_lte_rrc_SRS_CapabilityPerBandPair_v1610;
-static gint ett_lte_rrc_HighSpeedEnhParameters_r14;
-static gint ett_lte_rrc_HighSpeedEnhParameters_v1610;
-static gint ett_lte_rrc_UE_RadioPagingInfo_r12;
-static gint ett_lte_rrc_UE_TimersAndConstants;
-static gint ett_lte_rrc_VisitedCellInfoList_r12;
-static gint ett_lte_rrc_VisitedCellInfo_r12;
-static gint ett_lte_rrc_T_visitedCellId_r12;
-static gint ett_lte_rrc_T_pci_arfcn_r12;
-static gint ett_lte_rrc_WLAN_OffloadConfig_r12;
-static gint ett_lte_rrc_T_thresholdRSRP_r12;
-static gint ett_lte_rrc_T_thresholdRSRQ_r12;
-static gint ett_lte_rrc_T_thresholdRSRQ_OnAllSymbolsWithWB_r12;
-static gint ett_lte_rrc_T_thresholdRSRQ_OnAllSymbols_r12;
-static gint ett_lte_rrc_T_thresholdRSRQ_WB_r12;
-static gint ett_lte_rrc_T_thresholdChannelUtilization_r12;
-static gint ett_lte_rrc_T_thresholdBackhaul_Bandwidth_r12;
-static gint ett_lte_rrc_T_thresholdWLAN_RSSI_r12;
-static gint ett_lte_rrc_MBMS_NotificationConfig_r9;
-static gint ett_lte_rrc_MBMS_NotificationConfig_v1430;
-static gint ett_lte_rrc_MBMS_ServiceList_r13;
-static gint ett_lte_rrc_MBMS_ServiceInfo_r13;
-static gint ett_lte_rrc_MBSFN_AreaInfoList_r9;
-static gint ett_lte_rrc_MBSFN_AreaInfo_r9;
-static gint ett_lte_rrc_T_mcch_Config_r9;
-static gint ett_lte_rrc_T_mcch_Config_r14;
-static gint ett_lte_rrc_MBSFN_AreaInfoList_r16;
-static gint ett_lte_rrc_MBSFN_AreaInfo_r16;
-static gint ett_lte_rrc_T_mcch_Config_r16;
-static gint ett_lte_rrc_MBSFN_AreaInfoList_r17;
-static gint ett_lte_rrc_MBSFN_AreaInfo_r17;
-static gint ett_lte_rrc_MBSFN_SubframeConfig;
-static gint ett_lte_rrc_T_subframeAllocation;
-static gint ett_lte_rrc_MBSFN_SubframeConfig_v1430;
-static gint ett_lte_rrc_T_subframeAllocation_v1430;
-static gint ett_lte_rrc_MBSFN_SubframeConfig_v1610;
-static gint ett_lte_rrc_T_subframeAllocation_v1610;
-static gint ett_lte_rrc_PMCH_InfoList_r9;
-static gint ett_lte_rrc_PMCH_InfoListExt_r12;
-static gint ett_lte_rrc_PMCH_Info_r9;
-static gint ett_lte_rrc_PMCH_InfoExt_r12;
-static gint ett_lte_rrc_MBMS_SessionInfoList_r9;
-static gint ett_lte_rrc_MBMS_SessionInfo_r9;
-static gint ett_lte_rrc_PMCH_Config_r9;
-static gint ett_lte_rrc_PMCH_Config_r12;
-static gint ett_lte_rrc_T_dataMCS_r12;
-static gint ett_lte_rrc_TMGI_r9;
-static gint ett_lte_rrc_T_plmn_Id_r9;
-static gint ett_lte_rrc_SC_MTCH_InfoList_r13;
-static gint ett_lte_rrc_SC_MTCH_Info_r13;
-static gint ett_lte_rrc_MBMSSessionInfo_r13;
-static gint ett_lte_rrc_SC_MTCH_SchedulingInfo_r13;
-static gint ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r13;
-static gint ett_lte_rrc_SC_MTCH_InfoList_BR_r14;
-static gint ett_lte_rrc_SC_MTCH_Info_BR_r14;
-static gint ett_lte_rrc_T_mpdcch_StartSF_SC_MTCH_r14;
-static gint ett_lte_rrc_SC_MTCH_SchedulingInfo_BR_r14;
-static gint ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14_01;
-static gint ett_lte_rrc_SCPTM_NeighbourCellList_r13;
-static gint ett_lte_rrc_PCI_ARFCN_r13;
-static gint ett_lte_rrc_SL_AnchorCarrierFreqList_V2X_r14;
-static gint ett_lte_rrc_SL_CBR_CommonTxConfigList_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSL_V2X_CBRConfig_r14_OF_SL_CBR_Levels_Config_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxSL_V2X_TxConfig_r14_OF_SL_CBR_PSSCH_TxConfig_r14;
-static gint ett_lte_rrc_SL_CBR_Levels_Config_r14;
-static gint ett_lte_rrc_SL_CBR_PSSCH_TxConfig_r14;
-static gint ett_lte_rrc_SL_CBR_PPPP_TxConfigList_r14;
-static gint ett_lte_rrc_SL_PPPP_TxConfigIndex_r14;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r14_OF_Tx_ConfigIndex_r14;
-static gint ett_lte_rrc_SL_CBR_PPPP_TxConfigList_v1530;
-static gint ett_lte_rrc_SL_PPPP_TxConfigIndex_v1530;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r14_OF_MCS_PSSCH_Range_r15;
-static gint ett_lte_rrc_MCS_PSSCH_Range_r15;
-static gint ett_lte_rrc_SL_CBR_PPPP_TxConfigList_r15;
-static gint ett_lte_rrc_SL_PPPP_TxConfigIndex_r15;
-static gint ett_lte_rrc_SL_CommConfig_r12;
-static gint ett_lte_rrc_T_commTxResources_r12;
-static gint ett_lte_rrc_T_sL_CommConfig_r12_commTxResources_r12_setup;
-static gint ett_lte_rrc_T_scheduled_r12;
-static gint ett_lte_rrc_T_ue_Selected_r12;
-static gint ett_lte_rrc_T_commTxPoolNormalDedicated_r12;
-static gint ett_lte_rrc_T_commTxResources_v1310;
-static gint ett_lte_rrc_T_sL_CommConfig_r12_eag_1_commTxResources_v1310_setup;
-static gint ett_lte_rrc_T_scheduled_v1310;
-static gint ett_lte_rrc_T_ue_Selected_v1310;
-static gint ett_lte_rrc_T_commTxPoolNormalDedicatedExt_r13;
-static gint ett_lte_rrc_LogicalChGroupInfoList_r13;
-static gint ett_lte_rrc_SL_CommTxPoolToAddModList_r12;
-static gint ett_lte_rrc_SL_CommTxPoolToAddModListExt_r13;
-static gint ett_lte_rrc_SL_CommTxPoolToAddMod_r12;
-static gint ett_lte_rrc_SL_CommTxPoolToAddModExt_r13;
-static gint ett_lte_rrc_MAC_MainConfigSL_r12;
-static gint ett_lte_rrc_SL_CommTxPoolList_r12;
-static gint ett_lte_rrc_SL_CommTxPoolListExt_r13;
-static gint ett_lte_rrc_SL_CommTxPoolListV2X_r14;
-static gint ett_lte_rrc_SL_CommRxPoolList_r12;
-static gint ett_lte_rrc_SL_CommRxPoolListV2X_r14;
-static gint ett_lte_rrc_SL_CommResourcePool_r12;
-static gint ett_lte_rrc_T_ue_SelectedResourceConfig_r12;
-static gint ett_lte_rrc_T_rxParametersNCell_r12;
-static gint ett_lte_rrc_T_txParameters_r12;
-static gint ett_lte_rrc_SL_CommResourcePoolV2X_r14;
-static gint ett_lte_rrc_T_rxParametersNCell_r14;
-static gint ett_lte_rrc_SL_MinT2ValueList_r15;
-static gint ett_lte_rrc_SL_MinT2Value_r15;
-static gint ett_lte_rrc_SL_CommTxPoolSensingConfig_r14;
-static gint ett_lte_rrc_T_p2x_SensingConfig_r14;
-static gint ett_lte_rrc_SL_DiscConfig_r12;
-static gint ett_lte_rrc_T_discTxResources_r12;
-static gint ett_lte_rrc_T_sL_DiscConfig_r12_discTxResources_r12_setup;
-static gint ett_lte_rrc_T_scheduled_r12_01;
-static gint ett_lte_rrc_T_ue_Selected_r12_01;
-static gint ett_lte_rrc_T_discTxPoolDedicated_r12;
-static gint ett_lte_rrc_T_discTF_IndexList_v1260;
-static gint ett_lte_rrc_T_sL_DiscConfig_r12_eag_1_discTF_IndexList_v1260_setup;
-static gint ett_lte_rrc_T_discTxResourcesPS_r13;
-static gint ett_lte_rrc_T_sL_DiscConfig_r12_eag_2_discTxResourcesPS_r13_setup;
-static gint ett_lte_rrc_T_ue_Selected_r13;
-static gint ett_lte_rrc_T_discTxInterFreqInfo_r13;
-static gint ett_lte_rrc_T_sL_DiscConfig_r12_eag_2_discTxInterFreqInfo_r13_setup;
-static gint ett_lte_rrc_T_discRxGapConfig_r13;
-static gint ett_lte_rrc_T_discTxGapConfig_r13;
-static gint ett_lte_rrc_T_discSysInfoToReportConfig_r13;
-static gint ett_lte_rrc_SL_DiscSysInfoToReportFreqList_r13;
-static gint ett_lte_rrc_SL_DiscTxInfoInterFreqListAdd_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_SL_DiscTxResourceInfoPerFreq_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_ARFCN_ValueEUTRA_r9;
-static gint ett_lte_rrc_SL_DiscTxResourceInfoPerFreq_r13;
-static gint ett_lte_rrc_SL_DiscTxResource_r13;
-static gint ett_lte_rrc_T_sL_DiscTxResource_r13_setup;
-static gint ett_lte_rrc_SL_DiscTxPoolToAddModList_r12;
-static gint ett_lte_rrc_SL_DiscTxPoolToAddMod_r12;
-static gint ett_lte_rrc_SL_DiscTxConfigScheduled_r13;
-static gint ett_lte_rrc_SL_DiscTxPoolDedicated_r13;
-static gint ett_lte_rrc_SL_TF_IndexPairList_r12;
-static gint ett_lte_rrc_SL_TF_IndexPair_r12;
-static gint ett_lte_rrc_SL_TF_IndexPairList_r12b;
-static gint ett_lte_rrc_SL_TF_IndexPair_r12b;
-static gint ett_lte_rrc_SL_DiscTxRefCarrierDedicated_r13;
-static gint ett_lte_rrc_SL_DiscTxPoolList_r12;
-static gint ett_lte_rrc_SL_DiscRxPoolList_r12;
-static gint ett_lte_rrc_SL_DiscResourcePool_r12;
-static gint ett_lte_rrc_T_txParameters_r12_01;
-static gint ett_lte_rrc_T_ue_SelectedResourceConfig_r12_01;
-static gint ett_lte_rrc_T_poolSelection_r12;
-static gint ett_lte_rrc_T_rxParameters_r12;
-static gint ett_lte_rrc_T_discPeriod_v1310;
-static gint ett_lte_rrc_T_rxParamsAddNeighFreq_r13;
-static gint ett_lte_rrc_T_sL_DiscResourcePool_r12_eag_1_rxParamsAddNeighFreq_r13_setup;
-static gint ett_lte_rrc_T_txParamsAddNeighFreq_r13;
-static gint ett_lte_rrc_T_sL_DiscResourcePool_r12_eag_1_txParamsAddNeighFreq_r13_setup;
-static gint ett_lte_rrc_T_freqInfo_01;
-static gint ett_lte_rrc_T_txParamsAddNeighFreq_v1370;
-static gint ett_lte_rrc_T_sL_DiscResourcePool_r12_eag_2_txParamsAddNeighFreq_v1370_setup;
-static gint ett_lte_rrc_T_freqInfo_v1370;
-static gint ett_lte_rrc_PhysCellIdList_r13;
-static gint ett_lte_rrc_SL_PoolSelectionConfig_r12;
-static gint ett_lte_rrc_SL_DiscSysInfoReport_r13;
-static gint ett_lte_rrc_T_discCellSelectionInfo_r13;
-static gint ett_lte_rrc_T_cellReselectionInfo_r13;
-static gint ett_lte_rrc_T_freqInfo_r13;
-static gint ett_lte_rrc_T_freqInfo_v1370_01;
-static gint ett_lte_rrc_SL_DiscTxPowerInfoList_r12;
-static gint ett_lte_rrc_SL_DiscTxPowerInfo_r12;
-static gint ett_lte_rrc_SL_GapConfig_r13;
-static gint ett_lte_rrc_SL_GapPatternList_r13;
-static gint ett_lte_rrc_SL_GapPattern_r13;
-static gint ett_lte_rrc_SL_GapRequest_r13;
-static gint ett_lte_rrc_SL_GapFreqInfo_r13;
-static gint ett_lte_rrc_SL_HoppingConfigComm_r12;
-static gint ett_lte_rrc_SL_HoppingConfigDisc_r12;
-static gint ett_lte_rrc_SL_InterFreqInfoListV2X_r14;
-static gint ett_lte_rrc_SL_InterFreqInfoV2X_r14;
-static gint ett_lte_rrc_T_additionalSpectrumEmissionV2X_r14;
-static gint ett_lte_rrc_SL_NR_AnchorCarrierFreqList_r16;
-static gint ett_lte_rrc_SL_V2X_UE_ConfigList_r14;
-static gint ett_lte_rrc_SL_V2X_InterFreqUE_Config_r14;
-static gint ett_lte_rrc_SL_OffsetIndicator_r12;
-static gint ett_lte_rrc_SL_P2X_ResourceSelectionConfig_r14;
-static gint ett_lte_rrc_SL_PriorityList_r13;
-static gint ett_lte_rrc_SL_PSSCH_TxConfigList_r14;
-static gint ett_lte_rrc_SL_PSSCH_TxConfig_r14;
-static gint ett_lte_rrc_SL_PSSCH_TxParameters_r14;
-static gint ett_lte_rrc_SL_PSSCH_TxParameters_v1530;
-static gint ett_lte_rrc_SL_ReliabilityList_r15;
-static gint ett_lte_rrc_SL_RestrictResourceReservationPeriodList_r14;
-static gint ett_lte_rrc_SL_SyncAllowed_r14;
-static gint ett_lte_rrc_SL_SyncConfigList_r12;
-static gint ett_lte_rrc_SL_SyncConfigListV2X_r14;
-static gint ett_lte_rrc_SL_SyncConfig_r12;
-static gint ett_lte_rrc_T_txParameters_r12_02;
-static gint ett_lte_rrc_T_rxParamsNCell_r12;
-static gint ett_lte_rrc_SL_SyncConfigListNFreq_r13;
-static gint ett_lte_rrc_SL_SyncConfigListNFreqV2X_r14;
-static gint ett_lte_rrc_SL_SyncConfigNFreq_r13;
-static gint ett_lte_rrc_T_asyncParameters_r13;
-static gint ett_lte_rrc_T_txParameters_r13;
-static gint ett_lte_rrc_T_rxParameters_r13;
-static gint ett_lte_rrc_SL_TF_ResourceConfig_r12;
-static gint ett_lte_rrc_SubframeBitmapSL_r12;
-static gint ett_lte_rrc_SubframeBitmapSL_r14;
-static gint ett_lte_rrc_SL_TxPower_r14;
-static gint ett_lte_rrc_SL_ThresPSSCH_RSRP_List_r14;
-static gint ett_lte_rrc_SL_TxParameters_r12;
-static gint ett_lte_rrc_SL_TxPoolToReleaseList_r12;
-static gint ett_lte_rrc_SL_TxPoolToReleaseListExt_r13;
-static gint ett_lte_rrc_SL_V2X_ConfigDedicated_r14;
-static gint ett_lte_rrc_T_commTxResources_r14;
-static gint ett_lte_rrc_T_sL_V2X_ConfigDedicated_r14_commTxResources_r14_setup;
-static gint ett_lte_rrc_T_scheduled_r14;
-static gint ett_lte_rrc_T_ue_Selected_r14;
-static gint ett_lte_rrc_T_v2x_CommTxPoolNormalDedicated_r14;
-static gint ett_lte_rrc_T_commTxResources_v1530;
-static gint ett_lte_rrc_T_sL_V2X_ConfigDedicated_r14_eag_1_commTxResources_v1530_setup;
-static gint ett_lte_rrc_T_scheduled_v1530;
-static gint ett_lte_rrc_T_ue_Selected_v1530;
-static gint ett_lte_rrc_LogicalChGroupInfoList_v1530;
-static gint ett_lte_rrc_SL_TxPoolToAddModListV2X_r14;
-static gint ett_lte_rrc_SL_TxPoolToAddMod_r14;
-static gint ett_lte_rrc_SL_TxPoolToReleaseListV2X_r14;
-static gint ett_lte_rrc_SL_V2X_FreqSelectionConfigList_r15;
-static gint ett_lte_rrc_SL_V2X_FreqSelectionConfig_r15;
-static gint ett_lte_rrc_SL_V2X_PacketDuplicationConfig_r15;
-static gint ett_lte_rrc_SL_PPPR_Dest_CarrierFreqList_r15;
-static gint ett_lte_rrc_SL_PPPR_Dest_CarrierFreq;
-static gint ett_lte_rrc_SL_AllowedCarrierFreqList_r15;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreqV2X_r14_OF_ARFCN_ValueEUTRA_r9;
-static gint ett_lte_rrc_SL_V2X_SyncFreqList_r15;
-static gint ett_lte_rrc_SL_ZoneConfig_r14;
-static gint ett_lte_rrc_SBCCH_SL_BCH_Message;
-static gint ett_lte_rrc_SBCCH_SL_BCH_Message_V2X_r14;
-static gint ett_lte_rrc_MasterInformationBlock_SL;
-static gint ett_lte_rrc_MasterInformationBlock_SL_V2X_r14;
-static gint ett_lte_rrc_HandoverPreparationInformation_NB;
-static gint ett_lte_rrc_T_criticalExtensions_62;
-static gint ett_lte_rrc_T_c1_51;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_60;
-static gint ett_lte_rrc_HandoverPreparationInformation_NB_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_NB_v1380_IEs;
-static gint ett_lte_rrc_HandoverPreparationInformation_NB_Ext_r14_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_85;
-static gint ett_lte_rrc_UEPagingCoverageInformation_NB;
-static gint ett_lte_rrc_T_criticalExtensions_63;
-static gint ett_lte_rrc_T_c1_52;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_61;
-static gint ett_lte_rrc_UEPagingCoverageInformation_NB_IEs;
-static gint ett_lte_rrc_UEPagingCoverageInformation_NB_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_86;
-static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB;
-static gint ett_lte_rrc_T_criticalExtensions_64;
-static gint ett_lte_rrc_T_c1_53;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_62;
-static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs;
-static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB_v1380_IEs;
-static gint ett_lte_rrc_UERadioAccessCapabilityInformation_NB_r14_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_87;
-static gint ett_lte_rrc_UERadioPagingInformation_NB;
-static gint ett_lte_rrc_T_criticalExtensions_65;
-static gint ett_lte_rrc_T_c1_54;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_63;
-static gint ett_lte_rrc_UERadioPagingInformation_NB_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_88;
-static gint ett_lte_rrc_AS_Config_NB;
-static gint ett_lte_rrc_AS_Context_NB;
-static gint ett_lte_rrc_ReestablishmentInfo_NB;
-static gint ett_lte_rrc_RRM_Config_NB;
-static gint ett_lte_rrc_BCCH_BCH_Message_NB;
-static gint ett_lte_rrc_BCCH_BCH_Message_TDD_NB;
-static gint ett_lte_rrc_BCCH_DL_SCH_Message_NB;
-static gint ett_lte_rrc_BCCH_DL_SCH_MessageType_NB;
-static gint ett_lte_rrc_T_c1_55;
-static gint ett_lte_rrc_T_messageClassExtension_10;
-static gint ett_lte_rrc_PCCH_Message_NB;
-static gint ett_lte_rrc_PCCH_MessageType_NB;
-static gint ett_lte_rrc_T_c1_56;
-static gint ett_lte_rrc_T_messageClassExtension_11;
-static gint ett_lte_rrc_DL_CCCH_Message_NB;
-static gint ett_lte_rrc_DL_CCCH_MessageType_NB;
-static gint ett_lte_rrc_T_c1_57;
-static gint ett_lte_rrc_T_messageClassExtension_12;
-static gint ett_lte_rrc_DL_DCCH_Message_NB;
-static gint ett_lte_rrc_DL_DCCH_MessageType_NB;
-static gint ett_lte_rrc_T_c1_58;
-static gint ett_lte_rrc_T_messageClassExtension_13;
-static gint ett_lte_rrc_UL_CCCH_Message_NB;
-static gint ett_lte_rrc_UL_CCCH_MessageType_NB;
-static gint ett_lte_rrc_T_c1_59;
-static gint ett_lte_rrc_T_messageClassExtension_14;
-static gint ett_lte_rrc_SC_MCCH_Message_NB;
-static gint ett_lte_rrc_SC_MCCH_MessageType_NB;
-static gint ett_lte_rrc_T_c1_60;
-static gint ett_lte_rrc_T_messageClassExtension_15;
-static gint ett_lte_rrc_UL_DCCH_Message_NB;
-static gint ett_lte_rrc_UL_DCCH_MessageType_NB;
-static gint ett_lte_rrc_T_c1_61;
-static gint ett_lte_rrc_T_messageClassExtension_16;
-static gint ett_lte_rrc_DLInformationTransfer_NB;
-static gint ett_lte_rrc_T_criticalExtensions_66;
-static gint ett_lte_rrc_T_c1_62;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_64;
-static gint ett_lte_rrc_DLInformationTransfer_NB_r13_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_89;
-static gint ett_lte_rrc_MasterInformationBlock_NB;
-static gint ett_lte_rrc_T_operationModeInfo_r13;
-static gint ett_lte_rrc_T_partEARFCN_r17_01;
-static gint ett_lte_rrc_Guardband_NB_r13;
-static gint ett_lte_rrc_Inband_SamePCI_NB_r13;
-static gint ett_lte_rrc_Inband_DifferentPCI_NB_r13;
-static gint ett_lte_rrc_Standalone_NB_r13;
-static gint ett_lte_rrc_MasterInformationBlock_TDD_NB_r15;
-static gint ett_lte_rrc_T_operationModeInfo_r15;
-static gint ett_lte_rrc_GuardbandTDD_NB_r15;
-static gint ett_lte_rrc_T_sib_GuardbandInfo_r15;
-static gint ett_lte_rrc_Inband_SamePCI_TDD_NB_r15;
-static gint ett_lte_rrc_Inband_DifferentPCI_TDD_NB_r15;
-static gint ett_lte_rrc_StandaloneTDD_NB_r15;
-static gint ett_lte_rrc_SIB_GuardbandAnchorTDD_NB_r15;
-static gint ett_lte_rrc_SIB_GuardbandGuardbandTDD_NB_r15;
-static gint ett_lte_rrc_SIB_GuardbandInbandSamePCI_TDD_NB_r15;
-static gint ett_lte_rrc_SIB_GuardbandInbandDiffPCI_TDD_NB_r15;
-static gint ett_lte_rrc_Paging_NB;
-static gint ett_lte_rrc_Paging_NB_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_90;
-static gint ett_lte_rrc_PagingRecordList_NB_r13;
-static gint ett_lte_rrc_PagingRecordList_NB_v1610;
-static gint ett_lte_rrc_PagingRecord_NB_r13;
-static gint ett_lte_rrc_PagingRecord_NB_v1610;
-static gint ett_lte_rrc_PURConfigurationRequest_NB_r16;
-static gint ett_lte_rrc_T_criticalExtensions_67;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_65;
-static gint ett_lte_rrc_PURConfigurationRequest_NB_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_91;
-static gint ett_lte_rrc_PUR_ConfigRequest_NB_r16;
-static gint ett_lte_rrc_T_pur_SetupRequest_01;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_NB;
-static gint ett_lte_rrc_T_criticalExtensions_68;
-static gint ett_lte_rrc_T_c1_63;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_66;
-static gint ett_lte_rrc_RRCConnectionReconfiguration_NB_r13_IEs;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_NB_r13_OF_DedicatedInfoNAS;
-static gint ett_lte_rrc_T_nonCriticalExtension_92;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_NB;
-static gint ett_lte_rrc_T_criticalExtensions_69;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_67;
-static gint ett_lte_rrc_RRCConnectionReconfigurationComplete_NB_r13_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_93;
-static gint ett_lte_rrc_RRCConnectionReestablishment_NB;
-static gint ett_lte_rrc_T_criticalExtensions_70;
-static gint ett_lte_rrc_T_c1_64;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_68;
-static gint ett_lte_rrc_RRCConnectionReestablishment_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishment_NB_v1430_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_94;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_NB;
-static gint ett_lte_rrc_T_criticalExtensions_71;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_69;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1470_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1610_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_95;
-static gint ett_lte_rrc_RRCConnectionReestablishmentRequest_NB;
-static gint ett_lte_rrc_T_criticalExtensions_72;
-static gint ett_lte_rrc_T_later_01;
-static gint ett_lte_rrc_T_later_02;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_70;
-static gint ett_lte_rrc_RRCConnectionReestablishmentRequest_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentRequest_NB_r14_IEs;
-static gint ett_lte_rrc_RRCConnectionReestablishmentRequest_5GC_NB_r16_IEs;
-static gint ett_lte_rrc_ReestabUE_Identity_CP_NB_r14;
-static gint ett_lte_rrc_ReestabUE_Identity_CP_5GC_NB_r16;
-static gint ett_lte_rrc_RRCConnectionReject_NB;
-static gint ett_lte_rrc_T_criticalExtensions_73;
-static gint ett_lte_rrc_T_c1_65;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_71;
-static gint ett_lte_rrc_RRCConnectionReject_NB_r13_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_96;
-static gint ett_lte_rrc_RRCConnectionRelease_NB;
-static gint ett_lte_rrc_T_criticalExtensions_74;
-static gint ett_lte_rrc_T_c1_66;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_72;
-static gint ett_lte_rrc_RRCConnectionRelease_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_NB_v1430_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_NB_v1530_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_NB_v1550_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_NB_v15b0_IEs;
-static gint ett_lte_rrc_RRCConnectionRelease_NB_v1610_IEs;
-static gint ett_lte_rrc_T_pur_Config_r16_01;
-static gint ett_lte_rrc_RRCConnectionRelease_NB_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_97;
-static gint ett_lte_rrc_RedirectedCarrierInfo_NB_v1430;
-static gint ett_lte_rrc_RRCConnectionRequest_NB;
-static gint ett_lte_rrc_T_criticalExtensions_75;
-static gint ett_lte_rrc_T_later_03;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_73;
-static gint ett_lte_rrc_RRCConnectionRequest_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionRequest_5GC_NB_r16_IEs;
-static gint ett_lte_rrc_InitialUE_Identity_5GC_NB_r16;
-static gint ett_lte_rrc_RRCConnectionResume_NB;
-static gint ett_lte_rrc_T_criticalExtensions_76;
-static gint ett_lte_rrc_T_c1_67;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_74;
-static gint ett_lte_rrc_RRCConnectionResume_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionResume_NB_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_98;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_NB;
-static gint ett_lte_rrc_T_criticalExtensions_77;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_75;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_NB_v1470_IEs;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_NB_v1610_IEs;
-static gint ett_lte_rrc_RRCConnectionResumeComplete_NB_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_99;
-static gint ett_lte_rrc_RRCConnectionResumeRequest_NB;
-static gint ett_lte_rrc_T_criticalExtensions_78;
-static gint ett_lte_rrc_T_later_04;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_76;
-static gint ett_lte_rrc_RRCConnectionResumeRequest_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionResumeRequest_5GC_NB_r16_IEs;
-static gint ett_lte_rrc_RRCConnectionSetup_NB;
-static gint ett_lte_rrc_T_criticalExtensions_79;
-static gint ett_lte_rrc_T_c1_68;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_77;
-static gint ett_lte_rrc_RRCConnectionSetup_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionSetup_NB_v1610_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_100;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_NB;
-static gint ett_lte_rrc_T_criticalExtensions_80;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_78;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_NB_r13_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_NB_v1430_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_NB_v1470_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_NB_v1610_IEs;
-static gint ett_lte_rrc_RRCConnectionSetupComplete_NB_v1710_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_101;
-static gint ett_lte_rrc_RRCEarlyDataComplete_NB_r15;
-static gint ett_lte_rrc_T_criticalExtensions_81;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_79;
-static gint ett_lte_rrc_RRCEarlyDataComplete_NB_r15_IEs;
-static gint ett_lte_rrc_RRCEarlyDataComplete_NB_v1590_IEs;
-static gint ett_lte_rrc_RRCEarlyDataComplete_NB_v1700_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_102;
-static gint ett_lte_rrc_RRCEarlyDataRequest_NB_r15;
-static gint ett_lte_rrc_T_criticalExtensions_82;
-static gint ett_lte_rrc_T_later_05;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_80;
-static gint ett_lte_rrc_RRCEarlyDataRequest_NB_r15_IEs;
-static gint ett_lte_rrc_RRCEarlyDataRequest_NB_v1590_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_103;
-static gint ett_lte_rrc_RRCEarlyDataRequest_5GC_NB_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_104;
-static gint ett_lte_rrc_SCPTMConfiguration_NB_r14;
-static gint ett_lte_rrc_SCPTMConfiguration_NB_v1610;
-static gint ett_lte_rrc_T_nonCriticalExtension_105;
-static gint ett_lte_rrc_SystemInformation_NB;
-static gint ett_lte_rrc_T_criticalExtensions_83;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_81;
-static gint ett_lte_rrc_SystemInformation_NB_r13_IEs;
-static gint ett_lte_rrc_T_sib_TypeAndInfo_r13;
-static gint ett_lte_rrc_T_sib_TypeAndInfo_r13_item;
-static gint ett_lte_rrc_T_nonCriticalExtension_106;
-static gint ett_lte_rrc_SystemInformationBlockType1_NB;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo_r13;
-static gint ett_lte_rrc_T_cellSelectionInfo_r13;
-static gint ett_lte_rrc_SystemInformationBlockType1_NB_v1350;
-static gint ett_lte_rrc_SystemInformationBlockType1_NB_v1430;
-static gint ett_lte_rrc_SystemInformationBlockType1_NB_v1450;
-static gint ett_lte_rrc_SystemInformationBlockType1_NB_v1530;
-static gint ett_lte_rrc_T_tdd_Parameters_r15;
-static gint ett_lte_rrc_SystemInformationBlockType1_NB_v1610;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo_5GC_r16;
-static gint ett_lte_rrc_SystemInformationBlockType1_NB_v1700;
-static gint ett_lte_rrc_T_cellAccessRelatedInfo_NTN_r17_01;
-static gint ett_lte_rrc_T_nonCriticalExtension_107;
-static gint ett_lte_rrc_PLMN_IdentityList_NB_r13;
-static gint ett_lte_rrc_PLMN_IdentityList_5GC_NB_r16;
-static gint ett_lte_rrc_PLMN_IdentityList_NB_v1700;
-static gint ett_lte_rrc_PLMN_IdentityInfo_NB_r13;
-static gint ett_lte_rrc_PLMN_IdentityInfo_5GC_NB_r16;
-static gint ett_lte_rrc_T_plmn_Identity_5GC_r16;
-static gint ett_lte_rrc_PLMN_IdentityInfo_NB_v1700;
-static gint ett_lte_rrc_TrackingAreaList_NB_r17;
-static gint ett_lte_rrc_SchedulingInfoList_NB_r13;
-static gint ett_lte_rrc_SchedulingInfoList_NB_v1530;
-static gint ett_lte_rrc_SchedulingInfo_NB_r13;
-static gint ett_lte_rrc_SchedulingInfo_NB_v1530;
-static gint ett_lte_rrc_SystemInfoValueTagList_NB_r13;
-static gint ett_lte_rrc_SIB_MappingInfo_NB_r13;
-static gint ett_lte_rrc_SIB_MappingInfo_NB_v1530;
-static gint ett_lte_rrc_CellSelectionInfo_NB_v1350;
-static gint ett_lte_rrc_CellSelectionInfo_NB_v1430;
-static gint ett_lte_rrc_UECapabilityEnquiry_NB;
-static gint ett_lte_rrc_T_criticalExtensions_84;
-static gint ett_lte_rrc_T_c1_69;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_82;
-static gint ett_lte_rrc_UECapabilityEnquiry_NB_r13_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_108;
-static gint ett_lte_rrc_UECapabilityInformation_NB;
-static gint ett_lte_rrc_T_criticalExtensions_85;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_83;
-static gint ett_lte_rrc_UECapabilityInformation_NB_r13_IEs;
-static gint ett_lte_rrc_UECapabilityInformation_NB_Ext_r14_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_109;
-static gint ett_lte_rrc_UEInformationRequest_NB_r16;
-static gint ett_lte_rrc_T_criticalExtensions_86;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_84;
-static gint ett_lte_rrc_UEInformationRequest_NB_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_110;
-static gint ett_lte_rrc_UEInformationResponse_NB_r16;
-static gint ett_lte_rrc_T_criticalExtensions_87;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_85;
-static gint ett_lte_rrc_UEInformationResponse_NB_r16_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_111;
-static gint ett_lte_rrc_RACH_Report_NB_r16;
-static gint ett_lte_rrc_RLF_Report_NB_r16;
-static gint ett_lte_rrc_T_measResultLastServCell_r16;
-static gint ett_lte_rrc_ULInformationTransfer_NB;
-static gint ett_lte_rrc_T_criticalExtensions_88;
-static gint ett_lte_rrc_T_criticalExtensionsFuture_86;
-static gint ett_lte_rrc_ULInformationTransfer_NB_r13_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_112;
-static gint ett_lte_rrc_SystemInformationBlockType2_NB_r13;
-static gint ett_lte_rrc_T_freqInfo_r13_01;
-static gint ett_lte_rrc_AdditionalSpectrumEmission_r13;
-static gint ett_lte_rrc_T_freqInfo_v1530;
-static gint ett_lte_rrc_SystemInformationBlockType3_NB_r13;
-static gint ett_lte_rrc_T_cellReselectionInfoCommon_r13;
-static gint ett_lte_rrc_T_cellReselectionServingFreqInfo_r13;
-static gint ett_lte_rrc_T_intraFreqCellReselectionInfo_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_NS_PmaxList_NB_r13;
-static gint ett_lte_rrc_IntraFreqCellReselectionInfo_NB_v1350;
-static gint ett_lte_rrc_IntraFreqCellReselectionInfo_NB_v1360;
-static gint ett_lte_rrc_IntraFreqCellReselectionInfo_NB_v1430;
-static gint ett_lte_rrc_CellReselectionInfoCommon_NB_v1450;
-static gint ett_lte_rrc_ConnMeasConfig_NB_r17;
-static gint ett_lte_rrc_T_neighCellMeasCriteria_r17;
-static gint ett_lte_rrc_SystemInformationBlockType4_NB_r13;
-static gint ett_lte_rrc_IntraFreqNeighCellList_NB_v1530;
-static gint ett_lte_rrc_IntraFreqNeighCellInfo_NB_v1530;
-static gint ett_lte_rrc_SystemInformationBlockType5_NB_r13;
-static gint ett_lte_rrc_InterFreqCarrierFreqList_NB_r13;
-static gint ett_lte_rrc_InterFreqCarrierFreqInfo_NB_r13;
-static gint ett_lte_rrc_InterFreqNeighCellList_NB_r13;
-static gint ett_lte_rrc_InterFreqNeighCellList_NB_v1530;
-static gint ett_lte_rrc_InterFreqNeighCellInfo_NB_v1530;
-static gint ett_lte_rrc_InterFreqExcludedCellList_NB_r13;
-static gint ett_lte_rrc_SystemInformationBlockType14_NB_r13;
-static gint ett_lte_rrc_T_ab_Param_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_AB_ConfigPLMN_NB_r13;
-static gint ett_lte_rrc_AB_ConfigPLMN_NB_r13;
-static gint ett_lte_rrc_AB_Config_NB_r13;
-static gint ett_lte_rrc_UAC_Param_NB_r16;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_UAC_Barring_NB_r16;
-static gint ett_lte_rrc_UAC_Barring_NB_r16;
-static gint ett_lte_rrc_UAC_BarringPerCatList_NB_r16;
-static gint ett_lte_rrc_UAC_BarringPerCat_NB_r16;
-static gint ett_lte_rrc_SystemInformationBlockType15_NB_r14;
-static gint ett_lte_rrc_MBMS_SAI_InterFreqList_NB_r14;
-static gint ett_lte_rrc_MBMS_SAI_InterFreq_NB_r14;
-static gint ett_lte_rrc_SystemInformationBlockType20_NB_r14;
-static gint ett_lte_rrc_T_sc_mcch_CarrierConfig_r14;
-static gint ett_lte_rrc_NPDCCH_SC_MCCH_Config_NB_r14;
-static gint ett_lte_rrc_SC_MCCH_SchedulingInfo_NB_r14;
-static gint ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14_02;
-static gint ett_lte_rrc_SystemInformationBlockType22_NB_r14;
-static gint ett_lte_rrc_T_mixedOperationModeConfig_r15;
-static gint ett_lte_rrc_DL_ConfigCommonList_NB_r14;
-static gint ett_lte_rrc_UL_ConfigCommonList_NB_r14;
-static gint ett_lte_rrc_UL_ConfigCommonListTDD_NB_r15;
-static gint ett_lte_rrc_CoverageBasedPagingConfig_NB_r17;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_CBP_Config_NB_r17;
-static gint ett_lte_rrc_CBP_Config_NB_r17;
-static gint ett_lte_rrc_DL_ConfigCommon_NB_r14;
-static gint ett_lte_rrc_PCCH_Config_NB_r14;
-static gint ett_lte_rrc_PCCH_Config_NB_r17;
-static gint ett_lte_rrc_UL_ConfigCommon_NB_r14;
-static gint ett_lte_rrc_UL_ConfigCommonTDD_NB_r15;
-static gint ett_lte_rrc_NPRACH_ProbabilityAnchorList_NB_r14;
-static gint ett_lte_rrc_NPRACH_ProbabilityAnchor_NB_r14;
-static gint ett_lte_rrc_SystemInformationBlockType23_NB_r15;
-static gint ett_lte_rrc_UL_ConfigCommonList_NB_v1530;
-static gint ett_lte_rrc_UL_ConfigCommon_NB_v1530;
-static gint ett_lte_rrc_SystemInformationBlockType27_NB_r16;
-static gint ett_lte_rrc_CarrierFreqListEUTRA_NB_r16;
-static gint ett_lte_rrc_CarrierFreqsListGERAN_NB_r16;
-static gint ett_lte_rrc_CarrierFreqEUTRA_NB_r16;
-static gint ett_lte_rrc_CarrierFreqsGERAN_NB_r16;
-static gint ett_lte_rrc_SystemInformationBlockType31_NB_r17;
-static gint ett_lte_rrc_SystemInformationBlockType32_NB_r17;
-static gint ett_lte_rrc_CarrierConfigDedicated_NB_r13;
-static gint ett_lte_rrc_DL_CarrierConfigDedicated_NB_r13;
-static gint ett_lte_rrc_T_downlinkBitmapNonAnchor_r13;
-static gint ett_lte_rrc_T_dl_GapNonAnchor_r13;
-static gint ett_lte_rrc_T_inbandCarrierInfo_r13;
-static gint ett_lte_rrc_T_samePCI_Indicator_r13;
-static gint ett_lte_rrc_T_samePCI_r13;
-static gint ett_lte_rrc_T_differentPCI_r13;
-static gint ett_lte_rrc_UL_CarrierConfigDedicated_NB_r13;
-static gint ett_lte_rrc_CarrierFreq_NB_r13;
-static gint ett_lte_rrc_CarrierFreq_NB_v1550;
-static gint ett_lte_rrc_DL_Bitmap_NB_r13;
-static gint ett_lte_rrc_DL_CarrierConfigCommon_NB_r14;
-static gint ett_lte_rrc_T_downlinkBitmapNonAnchor_r14;
-static gint ett_lte_rrc_T_dl_GapNonAnchor_r14;
-static gint ett_lte_rrc_T_inbandCarrierInfo_r14;
-static gint ett_lte_rrc_T_samePCI_Indicator_r14;
-static gint ett_lte_rrc_T_samePCI_r14;
-static gint ett_lte_rrc_T_differentPCI_r14;
-static gint ett_lte_rrc_DL_GapConfig_NB_r13;
-static gint ett_lte_rrc_DL_GapConfig_NB_v1530;
-static gint ett_lte_rrc_GWUS_Config_NB_r16;
-static gint ett_lte_rrc_GWUS_ResourceConfig_NB_r16;
-static gint ett_lte_rrc_GWUS_ProbThreshList_NB_r16;
-static gint ett_lte_rrc_GWUS_NumGroupsList_NB_r16;
-static gint ett_lte_rrc_GWUS_GroupsForServiceList_NB_r16;
-static gint ett_lte_rrc_LogicalChannelConfig_NB_r13;
-static gint ett_lte_rrc_MAC_MainConfig_NB_r13;
-static gint ett_lte_rrc_T_ul_SCH_Config_r13;
-static gint ett_lte_rrc_T_logicalChannelSR_Config_r13;
-static gint ett_lte_rrc_T_mAC_MainConfig_NB_r13_logicalChannelSR_Config_r13_setup;
-static gint ett_lte_rrc_T_dataInactivityTimerConfig_r14_01;
-static gint ett_lte_rrc_T_mAC_MainConfig_NB_r13_eag_1_dataInactivityTimerConfig_r14_setup;
-static gint ett_lte_rrc_T_offsetThresholdTA_r17_01;
-static gint ett_lte_rrc_DRX_Config_NB_r13;
-static gint ett_lte_rrc_T_dRX_Config_NB_r13_setup;
-static gint ett_lte_rrc_NPDCCH_ConfigDedicated_NB_r13;
-static gint ett_lte_rrc_NPDCCH_ConfigDedicated_NB_v1530;
-static gint ett_lte_rrc_NPDSCH_ConfigCommon_NB_r13;
-static gint ett_lte_rrc_NPDSCH_ConfigDedicated_NB_r16;
-static gint ett_lte_rrc_NPDSCH_MultiTB_Config_NB_r16;
-static gint ett_lte_rrc_NPDSCH_ConfigDedicated_NB_v1710;
-static gint ett_lte_rrc_T_npdsch_16QAM_Config_r17;
-static gint ett_lte_rrc_NPDSCH_16QAM_Config_NB_r17;
-static gint ett_lte_rrc_NPRACH_ConfigSIB_NB_r13;
-static gint ett_lte_rrc_NPRACH_ConfigSIB_NB_v1330;
-static gint ett_lte_rrc_NPRACH_ConfigSIB_NB_v1450;
-static gint ett_lte_rrc_NPRACH_ConfigSIB_NB_v1530;
-static gint ett_lte_rrc_T_tdd_Parameters_r15_01;
-static gint ett_lte_rrc_T_fmt2_Parameters_r15;
-static gint ett_lte_rrc_T_edt_Parameters_r15_01;
-static gint ett_lte_rrc_NPRACH_ConfigSIB_NB_v1550;
-static gint ett_lte_rrc_T_tdd_Parameters_v1550;
-static gint ett_lte_rrc_NPRACH_ParametersList_NB_r13;
-static gint ett_lte_rrc_NPRACH_ParametersList_NB_v1330;
-static gint ett_lte_rrc_NPRACH_Parameters_NB_r13;
-static gint ett_lte_rrc_NPRACH_Parameters_NB_v1330;
-static gint ett_lte_rrc_NPRACH_ParametersList_NB_r14;
-static gint ett_lte_rrc_NPRACH_Parameters_NB_r14;
-static gint ett_lte_rrc_T_nprach_Parameters_r14;
-static gint ett_lte_rrc_NPRACH_ParametersListTDD_NB_r15;
-static gint ett_lte_rrc_NPRACH_ParametersTDD_NB_r15;
-static gint ett_lte_rrc_T_nprach_Parameters_r15;
-static gint ett_lte_rrc_NPRACH_ParametersListTDD_NB_v1550;
-static gint ett_lte_rrc_NPRACH_ParametersTDD_NB_v1550;
-static gint ett_lte_rrc_NPRACH_ParametersListFmt2_NB_r15;
-static gint ett_lte_rrc_NPRACH_ParametersFmt2_NB_r15;
-static gint ett_lte_rrc_T_nprach_Parameters_r15_01;
-static gint ett_lte_rrc_NPRACH_TxDurationFmt01_NB_r17;
-static gint ett_lte_rrc_NPRACH_TxDurationFmt2_NB_r17;
-static gint ett_lte_rrc_RSRP_ThresholdsNPRACH_InfoList_NB_r13;
-static gint ett_lte_rrc_EDT_TBS_InfoList_NB_r15;
-static gint ett_lte_rrc_EDT_TBS_NB_r15;
-static gint ett_lte_rrc_NPUSCH_ConfigCommon_NB_r13;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxNPRACH_Resources_NB_r13_OF_ACK_NACK_NumRepetitions_NB_r13;
-static gint ett_lte_rrc_T_dmrs_Config_r13;
-static gint ett_lte_rrc_UL_ReferenceSignalsNPUSCH_NB_r13;
-static gint ett_lte_rrc_NPUSCH_ConfigDedicated_NB_r13;
-static gint ett_lte_rrc_NPUSCH_ConfigDedicated_NB_v1610;
-static gint ett_lte_rrc_NPUSCH_ConfigDedicated_NB_v1700;
-static gint ett_lte_rrc_NPUSCH_TxDuration_NB_r17;
-static gint ett_lte_rrc_PDCP_Config_NB_r13;
-static gint ett_lte_rrc_T_headerCompression_r13;
-static gint ett_lte_rrc_T_rohc_01;
-static gint ett_lte_rrc_T_profiles_r13;
-static gint ett_lte_rrc_PhysicalConfigDedicated_NB_r13;
-static gint ett_lte_rrc_T_resourceReservationConfigDL_r16;
-static gint ett_lte_rrc_T_resourceReservationConfigUL_r16;
-static gint ett_lte_rrc_T_ntn_ConfigDedicated_r17_01;
-static gint ett_lte_rrc_T_npusch_TxDuration_r17_01;
-static gint ett_lte_rrc_PUR_Config_NB_r16;
-static gint ett_lte_rrc_T_pur_NRSRP_ChangeThreshold_r16;
-static gint ett_lte_rrc_T_pur_StartTimeParameters_r16_01;
-static gint ett_lte_rrc_T_pur_PhysicalConfig_r16;
-static gint ett_lte_rrc_T_npusch_SubCarrierSetIndex_r16;
-static gint ett_lte_rrc_T_npusch_MCS_r16;
-static gint ett_lte_rrc_T_pur_PhysicalConfig_v1650;
-static gint ett_lte_rrc_T_pur_PhysicalConfig_v1700;
-static gint ett_lte_rrc_T_pur_UL_16QAM_Config_r17;
-static gint ett_lte_rrc_T_pur_DL_16QAM_Config_r17;
-static gint ett_lte_rrc_PUR_NRSRP_ChangeThreshold_NB_r16;
-static gint ett_lte_rrc_PUR_UL_16QAM_Config_NB_r17;
-static gint ett_lte_rrc_PUR_PeriodicityAndOffset_NB_r16;
-static gint ett_lte_rrc_RACH_ConfigCommon_NB_r13;
-static gint ett_lte_rrc_RACH_InfoList_NB_r13;
-static gint ett_lte_rrc_RACH_InfoList_NB_v1530;
-static gint ett_lte_rrc_RACH_Info_NB_r13;
-static gint ett_lte_rrc_RACH_Info_NB_v1530;
-static gint ett_lte_rrc_PowerRampingParameters_NB_v1450;
-static gint ett_lte_rrc_T_powerRampingParametersCE1_r14;
-static gint ett_lte_rrc_RadioResourceConfigCommonSIB_NB_r13;
-static gint ett_lte_rrc_T_ntn_ConfigCommon_r17_02;
-static gint ett_lte_rrc_BCCH_Config_NB_r13;
-static gint ett_lte_rrc_PCCH_Config_NB_r13;
-static gint ett_lte_rrc_RadioResourceConfigDedicated_NB_r13;
-static gint ett_lte_rrc_T_mac_MainConfig_r13;
-static gint ett_lte_rrc_SRB_ToAddModList_NB_r13;
-static gint ett_lte_rrc_SRB_ToAddMod_NB_r13;
-static gint ett_lte_rrc_T_rlc_Config_r13;
-static gint ett_lte_rrc_T_logicalChannelConfig_r13;
-static gint ett_lte_rrc_DRB_ToAddModList_NB_r13;
-static gint ett_lte_rrc_DRB_ToAddMod_NB_r13;
-static gint ett_lte_rrc_DRB_ToReleaseList_NB_r13;
-static gint ett_lte_rrc_ResourceReservationConfig_NB_r16;
-static gint ett_lte_rrc_T_resourceReservation_r16;
-static gint ett_lte_rrc_T_subframeBitmap_r16;
-static gint ett_lte_rrc_T_slotConfig_r16;
-static gint ett_lte_rrc_T_slotBitmap_r16_02;
-static gint ett_lte_rrc_T_symbolBitmap_r16;
-static gint ett_lte_rrc_T_symbolBitmapFddDl;
-static gint ett_lte_rrc_T_symbolBitmapFddUlOrTdd;
-static gint ett_lte_rrc_RLC_Config_NB_r13;
-static gint ett_lte_rrc_T_am_01;
-static gint ett_lte_rrc_RLC_Config_NB_v1430;
-static gint ett_lte_rrc_RLC_Config_NB_v1700;
-static gint ett_lte_rrc_T_t_ReorderingExt_r17_01;
-static gint ett_lte_rrc_UL_AM_RLC_NB_r13;
-static gint ett_lte_rrc_DL_AM_RLC_NB_r13;
-static gint ett_lte_rrc_RLF_TimersAndConstants_NB_r13;
-static gint ett_lte_rrc_T_rLF_TimersAndConstants_NB_r13_setup;
-static gint ett_lte_rrc_SchedulingRequestConfig_NB_r15;
-static gint ett_lte_rrc_SR_WithoutHARQ_ACK_Config_NB_r15;
-static gint ett_lte_rrc_T_sR_WithoutHARQ_ACK_Config_NB_r15_setup;
-static gint ett_lte_rrc_SR_WithoutHARQ_ACK_Config_NB_v1700;
-static gint ett_lte_rrc_T_sr_ProhibitTimerOffset_r17_01;
-static gint ett_lte_rrc_SR_NPRACH_Resource_NB_r15;
-static gint ett_lte_rrc_T_nprach_SubCarrierIndex_r15;
-static gint ett_lte_rrc_SR_SPS_BSR_Config_NB_r15;
-static gint ett_lte_rrc_T_sR_SPS_BSR_Config_NB_r15_setup;
-static gint ett_lte_rrc_TDD_Config_NB_r15;
-static gint ett_lte_rrc_UplinkPowerControlCommon_NB_r13;
-static gint ett_lte_rrc_UplinkPowerControlDedicated_NB_r13;
-static gint ett_lte_rrc_UplinkPowerControlDedicated_NB_v1700;
-static gint ett_lte_rrc_WUS_Config_NB_r15;
-static gint ett_lte_rrc_WUS_ConfigPerCarrier_NB_r15;
-static gint ett_lte_rrc_AdditionalBandInfoList_NB_r14;
-static gint ett_lte_rrc_MultiBandInfoList_NB_r13;
-static gint ett_lte_rrc_MultiBandInfo_NB_r13;
-static gint ett_lte_rrc_NS_PmaxList_NB_r13;
-static gint ett_lte_rrc_NS_PmaxValue_NB_r13;
-static gint ett_lte_rrc_ANR_MeasConfig_NB_r16;
-static gint ett_lte_rrc_ANR_CarrierList_NB_r16;
-static gint ett_lte_rrc_ANR_Carrier_NB_r16;
-static gint ett_lte_rrc_ANR_ExcludedCellList_NB_r16;
-static gint ett_lte_rrc_ANR_MeasReport_NB_r16;
-static gint ett_lte_rrc_SEQUENCE_SIZE_1_maxFreqANR_NB_r16_OF_ANR_MeasResult_NB_r16;
-static gint ett_lte_rrc_ANR_MeasResult_NB_r16;
-static gint ett_lte_rrc_T_cgi_Info_r16;
-static gint ett_lte_rrc_MeasResultServCell_NB_r14;
-static gint ett_lte_rrc_NSSS_RRM_Config_NB_r15;
-static gint ett_lte_rrc_UE_Capability_NB_r13;
-static gint ett_lte_rrc_T_uE_Capability_NB_r13_dummy;
-static gint ett_lte_rrc_UE_Capability_NB_Ext_r14_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v1440_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v14x0_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v1530_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v15x0_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v1610_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v16x0_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v1700_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v1710_IEs;
-static gint ett_lte_rrc_UE_Capability_NB_v1720_IEs;
-static gint ett_lte_rrc_T_nonCriticalExtension_113;
-static gint ett_lte_rrc_TDD_UE_Capability_NB_r15;
-static gint ett_lte_rrc_TDD_UE_Capability_NB_v1610;
-static gint ett_lte_rrc_TDD_UE_Capability_NB_v1710;
-static gint ett_lte_rrc_PDCP_Parameters_NB_r13;
-static gint ett_lte_rrc_T_supportedROHC_Profiles_r13;
-static gint ett_lte_rrc_RLC_Parameters_NB_r15;
-static gint ett_lte_rrc_MAC_Parameters_NB_r14;
-static gint ett_lte_rrc_MAC_Parameters_NB_v1530;
-static gint ett_lte_rrc_MAC_Parameters_NB_v1610;
-static gint ett_lte_rrc_NTN_Parameters_NB_r17;
-static gint ett_lte_rrc_NTN_Parameters_NB_v1720;
-static gint ett_lte_rrc_MeasParameters_NB_r16;
-static gint ett_lte_rrc_MeasParameters_NB_v1710;
-static gint ett_lte_rrc_PhyLayerParameters_NB_r13;
-static gint ett_lte_rrc_PhyLayerParameters_NB_v1430;
-static gint ett_lte_rrc_PhyLayerParameters_NB_v1440;
-static gint ett_lte_rrc_PhyLayerParameters_NB_v1530;
-static gint ett_lte_rrc_PhyLayerParameters_NB_v1610;
-static gint ett_lte_rrc_PUR_Parameters_NB_r16;
-static gint ett_lte_rrc_PhyLayerParameters_NB_v1700;
-static gint ett_lte_rrc_RF_Parameters_NB_r13;
-static gint ett_lte_rrc_RF_Parameters_NB_v1430;
-static gint ett_lte_rrc_RF_Parameters_NB_v1710;
-static gint ett_lte_rrc_SupportedBandList_NB_r13;
-static gint ett_lte_rrc_SupportedBandList_NB_v1710;
-static gint ett_lte_rrc_SupportedBand_NB_r13;
-static gint ett_lte_rrc_SupportedBand_NB_v1710;
-static gint ett_lte_rrc_SON_Parameters_NB_r16;
-static gint ett_lte_rrc_UE_RadioPagingInfo_NB_r13;
-static gint ett_lte_rrc_UE_TimersAndConstants_NB_r13;
-static gint ett_lte_rrc_SC_MTCH_InfoList_NB_r14;
-static gint ett_lte_rrc_SC_MTCH_Info_NB_r14;
-static gint ett_lte_rrc_T_sc_mtch_CarrierConfig_r14;
-static gint ett_lte_rrc_SC_MTCH_SchedulingInfo_NB_r14;
-static gint ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14_03;
-static gint ett_lte_rrc_SCPTM_NeighbourCellList_NB_r14;
-static gint ett_lte_rrc_PCI_ARFCN_NB_r14;
+static int ett_lte_rrc_HandoverCommand;
+static int ett_lte_rrc_T_criticalExtensions;
+static int ett_lte_rrc_T_c1;
+static int ett_lte_rrc_T_criticalExtensionsFuture;
+static int ett_lte_rrc_HandoverCommand_r8_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension;
+static int ett_lte_rrc_HandoverPreparationInformation;
+static int ett_lte_rrc_T_criticalExtensions_01;
+static int ett_lte_rrc_T_c1_01;
+static int ett_lte_rrc_T_criticalExtensionsFuture_01;
+static int ett_lte_rrc_HandoverPreparationInformation_r8_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v920_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v9d0_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v9j0_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v10j0_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v10x0_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v13c0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_01;
+static int ett_lte_rrc_HandoverPreparationInformation_v9e0_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1130_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1250_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1320_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1430_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1530_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1540_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1610_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1620_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1630_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_02;
+static int ett_lte_rrc_SCG_Config_r12;
+static int ett_lte_rrc_T_criticalExtensions_02;
+static int ett_lte_rrc_T_c1_02;
+static int ett_lte_rrc_T_criticalExtensionsFuture_02;
+static int ett_lte_rrc_SCG_Config_r12_IEs;
+static int ett_lte_rrc_SCG_Config_v12i0a_IEs;
+static int ett_lte_rrc_SCG_Config_v12i0b_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_03;
+static int ett_lte_rrc_SCG_Config_v13c0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_04;
+static int ett_lte_rrc_SCG_ConfigInfo_r12;
+static int ett_lte_rrc_T_criticalExtensions_03;
+static int ett_lte_rrc_T_c1_03;
+static int ett_lte_rrc_T_criticalExtensionsFuture_03;
+static int ett_lte_rrc_SCG_ConfigInfo_r12_IEs;
+static int ett_lte_rrc_SCG_ConfigInfo_v1310_IEs;
+static int ett_lte_rrc_SCG_ConfigInfo_v1330_IEs;
+static int ett_lte_rrc_SCG_ConfigInfo_v1430_IEs;
+static int ett_lte_rrc_SCG_ConfigInfo_v1530_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_05;
+static int ett_lte_rrc_DRB_InfoListSCG_r12;
+static int ett_lte_rrc_DRB_InfoListSCG_r15;
+static int ett_lte_rrc_DRB_InfoSCG_r12;
+static int ett_lte_rrc_SCellToAddModListSCG_r12;
+static int ett_lte_rrc_SCellToAddModListSCG_Ext_r13;
+static int ett_lte_rrc_Cell_ToAddMod_r12;
+static int ett_lte_rrc_T_cellIdentification_r12;
+static int ett_lte_rrc_T_measResultCellToAdd_r12;
+static int ett_lte_rrc_T_measResultCellToAdd_v1310;
+static int ett_lte_rrc_MeasResultServCellListSCG_r12;
+static int ett_lte_rrc_MeasResultServCellListSCG_Ext_r13;
+static int ett_lte_rrc_MeasResultServCellSCG_r12;
+static int ett_lte_rrc_T_measResultSCell_r12;
+static int ett_lte_rrc_T_measResultSCell_v1310;
+static int ett_lte_rrc_MeasResultListRSSI_SCG_r13;
+static int ett_lte_rrc_MeasResultRSSI_SCG_r13;
+static int ett_lte_rrc_SCG_ConfigRestrictInfo_r12;
+static int ett_lte_rrc_UEPagingCoverageInformation;
+static int ett_lte_rrc_T_criticalExtensions_04;
+static int ett_lte_rrc_T_c1_04;
+static int ett_lte_rrc_T_criticalExtensionsFuture_04;
+static int ett_lte_rrc_UEPagingCoverageInformation_r13_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_06;
+static int ett_lte_rrc_UERadioAccessCapabilityInformation;
+static int ett_lte_rrc_T_criticalExtensions_05;
+static int ett_lte_rrc_T_c1_05;
+static int ett_lte_rrc_T_criticalExtensionsFuture_05;
+static int ett_lte_rrc_UERadioAccessCapabilityInformation_r8_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_07;
+static int ett_lte_rrc_UERadioPagingInformation;
+static int ett_lte_rrc_T_criticalExtensions_06;
+static int ett_lte_rrc_T_c1_06;
+static int ett_lte_rrc_T_criticalExtensionsFuture_06;
+static int ett_lte_rrc_UERadioPagingInformation_r12_IEs;
+static int ett_lte_rrc_UERadioPagingInformation_v1310_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicator_r11;
+static int ett_lte_rrc_UERadioPagingInformation_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_08;
+static int ett_lte_rrc_AS_Config;
+static int ett_lte_rrc_AS_Config_v9e0;
+static int ett_lte_rrc_AS_Config_v10j0;
+static int ett_lte_rrc_AS_Config_v1250;
+static int ett_lte_rrc_AS_Config_v1320;
+static int ett_lte_rrc_AS_Config_v13c0;
+static int ett_lte_rrc_AS_Config_v1430;
+static int ett_lte_rrc_AS_ConfigNR_r15;
+static int ett_lte_rrc_AS_ConfigNR_v1570;
+static int ett_lte_rrc_AS_Config_v1550;
+static int ett_lte_rrc_T_tdm_PatternConfig_r15;
+static int ett_lte_rrc_AS_ConfigNR_v1620;
+static int ett_lte_rrc_AS_Config_v1700;
+static int ett_lte_rrc_AS_Context;
+static int ett_lte_rrc_AS_Context_v1130;
+static int ett_lte_rrc_AS_Context_v1320;
+static int ett_lte_rrc_AS_Context_v1610;
+static int ett_lte_rrc_AS_Context_v1620;
+static int ett_lte_rrc_AS_Context_v1630;
+static int ett_lte_rrc_ConfigRestrictInfoDAPS_r16;
+static int ett_lte_rrc_ConfigRestrictInfoDAPS_v1630;
+static int ett_lte_rrc_ReestablishmentInfo;
+static int ett_lte_rrc_AdditionalReestabInfoList;
+static int ett_lte_rrc_AdditionalReestabInfo;
+static int ett_lte_rrc_RRM_Config;
+static int ett_lte_rrc_CandidateCellInfoList_r10;
+static int ett_lte_rrc_CandidateCellInfo_r10;
+static int ett_lte_rrc_BCCH_BCH_Message;
+static int ett_lte_rrc_BCCH_BCH_Message_MBMS;
+static int ett_lte_rrc_BCCH_DL_SCH_Message;
+static int ett_lte_rrc_BCCH_DL_SCH_MessageType;
+static int ett_lte_rrc_T_c1_07;
+static int ett_lte_rrc_T_messageClassExtension;
+static int ett_lte_rrc_BCCH_DL_SCH_Message_BR;
+static int ett_lte_rrc_BCCH_DL_SCH_MessageType_BR_r13;
+static int ett_lte_rrc_T_c1_08;
+static int ett_lte_rrc_T_messageClassExtension_01;
+static int ett_lte_rrc_BCCH_DL_SCH_Message_MBMS;
+static int ett_lte_rrc_BCCH_DL_SCH_MessageType_MBMS_r14;
+static int ett_lte_rrc_T_c1_09;
+static int ett_lte_rrc_T_messageClassExtension_02;
+static int ett_lte_rrc_MCCH_Message;
+static int ett_lte_rrc_MCCH_MessageType;
+static int ett_lte_rrc_T_c1_10;
+static int ett_lte_rrc_T_later;
+static int ett_lte_rrc_T_c2;
+static int ett_lte_rrc_T_messageClassExtension_03;
+static int ett_lte_rrc_PCCH_Message;
+static int ett_lte_rrc_PCCH_MessageType;
+static int ett_lte_rrc_T_c1_11;
+static int ett_lte_rrc_T_messageClassExtension_04;
+static int ett_lte_rrc_DL_CCCH_Message;
+static int ett_lte_rrc_DL_CCCH_MessageType;
+static int ett_lte_rrc_T_c1_12;
+static int ett_lte_rrc_T_messageClassExtension_05;
+static int ett_lte_rrc_T_c2_01;
+static int ett_lte_rrc_T_messageClassExtensionFuture_r15;
+static int ett_lte_rrc_DL_DCCH_Message;
+static int ett_lte_rrc_DL_DCCH_MessageType;
+static int ett_lte_rrc_T_c1_13;
+static int ett_lte_rrc_T_messageClassExtension_06;
+static int ett_lte_rrc_UL_CCCH_Message;
+static int ett_lte_rrc_UL_CCCH_MessageType;
+static int ett_lte_rrc_T_c1_14;
+static int ett_lte_rrc_T_messageClassExtension_07;
+static int ett_lte_rrc_T_c2_02;
+static int ett_lte_rrc_T_messageClassExtensionFuture_r13;
+static int ett_lte_rrc_T_c3;
+static int ett_lte_rrc_T_messageClassExtensionFuture_r15_01;
+static int ett_lte_rrc_UL_DCCH_Message;
+static int ett_lte_rrc_UL_DCCH_MessageType;
+static int ett_lte_rrc_T_c1_15;
+static int ett_lte_rrc_T_messageClassExtension_08;
+static int ett_lte_rrc_T_c2_03;
+static int ett_lte_rrc_T_messageClassExtensionFuture_r11;
+static int ett_lte_rrc_SC_MCCH_Message_r13;
+static int ett_lte_rrc_SC_MCCH_MessageType_r13;
+static int ett_lte_rrc_T_c1_16;
+static int ett_lte_rrc_T_messageClassExtension_09;
+static int ett_lte_rrc_T_c2_04;
+static int ett_lte_rrc_T_messageClassExtensionFuture_r14;
+static int ett_lte_rrc_CounterCheck;
+static int ett_lte_rrc_T_criticalExtensions_07;
+static int ett_lte_rrc_T_c1_17;
+static int ett_lte_rrc_T_criticalExtensionsFuture_07;
+static int ett_lte_rrc_CounterCheck_r8_IEs;
+static int ett_lte_rrc_CounterCheck_v8a0_IEs;
+static int ett_lte_rrc_CounterCheck_v1530_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_09;
+static int ett_lte_rrc_DRB_CountMSB_InfoList;
+static int ett_lte_rrc_DRB_CountMSB_InfoListExt_r15;
+static int ett_lte_rrc_DRB_CountMSB_Info;
+static int ett_lte_rrc_CounterCheckResponse;
+static int ett_lte_rrc_T_criticalExtensions_08;
+static int ett_lte_rrc_T_criticalExtensionsFuture_08;
+static int ett_lte_rrc_CounterCheckResponse_r8_IEs;
+static int ett_lte_rrc_CounterCheckResponse_v8a0_IEs;
+static int ett_lte_rrc_CounterCheckResponse_v1530_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_10;
+static int ett_lte_rrc_DRB_CountInfoList;
+static int ett_lte_rrc_DRB_CountInfoListExt_r15;
+static int ett_lte_rrc_DRB_CountInfo;
+static int ett_lte_rrc_CSFBParametersRequestCDMA2000;
+static int ett_lte_rrc_T_criticalExtensions_09;
+static int ett_lte_rrc_T_criticalExtensionsFuture_09;
+static int ett_lte_rrc_CSFBParametersRequestCDMA2000_r8_IEs;
+static int ett_lte_rrc_CSFBParametersRequestCDMA2000_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_11;
+static int ett_lte_rrc_CSFBParametersResponseCDMA2000;
+static int ett_lte_rrc_T_criticalExtensions_10;
+static int ett_lte_rrc_T_criticalExtensionsFuture_10;
+static int ett_lte_rrc_CSFBParametersResponseCDMA2000_r8_IEs;
+static int ett_lte_rrc_CSFBParametersResponseCDMA2000_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_12;
+static int ett_lte_rrc_DLDedicatedMessageSegment_r16;
+static int ett_lte_rrc_T_criticalExtensions_11;
+static int ett_lte_rrc_T_criticalExtensionsFuture_11;
+static int ett_lte_rrc_DLDedicatedMessageSegment_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_13;
+static int ett_lte_rrc_DLInformationTransfer;
+static int ett_lte_rrc_T_criticalExtensions_12;
+static int ett_lte_rrc_T_c1_18;
+static int ett_lte_rrc_T_criticalExtensionsFuture_12;
+static int ett_lte_rrc_DLInformationTransfer_r8_IEs;
+static int ett_lte_rrc_T_dedicatedInfoType;
+static int ett_lte_rrc_DLInformationTransfer_v8a0_IEs;
+static int ett_lte_rrc_DLInformationTransfer_r15_IEs;
+static int ett_lte_rrc_T_dedicatedInfoType_r15;
+static int ett_lte_rrc_DLInformationTransfer_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_14;
+static int ett_lte_rrc_FailureInformation_r15;
+static int ett_lte_rrc_FailureInformation_r16;
+static int ett_lte_rrc_T_criticalExtensions_13;
+static int ett_lte_rrc_T_criticalExtensionsFuture_13;
+static int ett_lte_rrc_FailedLogicalChannelInfo_r15;
+static int ett_lte_rrc_T_failedLogicalChannelIdentity_r15;
+static int ett_lte_rrc_FailureInformation_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_15;
+static int ett_lte_rrc_FailedLogicalChannelIdentity_r16;
+static int ett_lte_rrc_HandoverFromEUTRAPreparationRequest;
+static int ett_lte_rrc_T_criticalExtensions_14;
+static int ett_lte_rrc_T_c1_19;
+static int ett_lte_rrc_T_criticalExtensionsFuture_14;
+static int ett_lte_rrc_HandoverFromEUTRAPreparationRequest_r8_IEs;
+static int ett_lte_rrc_HandoverFromEUTRAPreparationRequest_v890_IEs;
+static int ett_lte_rrc_HandoverFromEUTRAPreparationRequest_v920_IEs;
+static int ett_lte_rrc_HandoverFromEUTRAPreparationRequest_v1020_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_16;
+static int ett_lte_rrc_InDeviceCoexIndication_r11;
+static int ett_lte_rrc_T_criticalExtensions_15;
+static int ett_lte_rrc_T_c1_20;
+static int ett_lte_rrc_T_criticalExtensionsFuture_15;
+static int ett_lte_rrc_InDeviceCoexIndication_r11_IEs;
+static int ett_lte_rrc_InDeviceCoexIndication_v11d0_IEs;
+static int ett_lte_rrc_T_ul_CA_AssistanceInfo_r11;
+static int ett_lte_rrc_InDeviceCoexIndication_v1310_IEs;
+static int ett_lte_rrc_InDeviceCoexIndication_v1360_IEs;
+static int ett_lte_rrc_InDeviceCoexIndication_v1530_IEs;
+static int ett_lte_rrc_InDeviceCoexIndication_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_17;
+static int ett_lte_rrc_AffectedCarrierFreqList_r11;
+static int ett_lte_rrc_AffectedCarrierFreqList_v1310;
+static int ett_lte_rrc_AffectedCarrierFreq_r11;
+static int ett_lte_rrc_AffectedCarrierFreq_v1310;
+static int ett_lte_rrc_AffectedCarrierFreqCombList_r11;
+static int ett_lte_rrc_AffectedCarrierFreqCombList_r13;
+static int ett_lte_rrc_AffectedCarrierFreqComb_r11;
+static int ett_lte_rrc_AffectedCarrierFreqComb_r13;
+static int ett_lte_rrc_TDM_AssistanceInfo_r11;
+static int ett_lte_rrc_T_drx_AssistanceInfo_r11;
+static int ett_lte_rrc_IDC_SubframePatternList_r11;
+static int ett_lte_rrc_IDC_SubframePattern_r11;
+static int ett_lte_rrc_T_subframePatternTDD_r11;
+static int ett_lte_rrc_VictimSystemType_r11;
+static int ett_lte_rrc_VictimSystemType_v1610;
+static int ett_lte_rrc_MRDC_AssistanceInfo_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCombIDC_r11_OF_AffectedCarrierFreqCombInfoMRDC_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCombIDC_r11_OF_VictimSystemType_v1610;
+static int ett_lte_rrc_AffectedCarrierFreqCombInfoMRDC_r15;
+static int ett_lte_rrc_T_affectedCarrierFreqCombMRDC_r15;
+static int ett_lte_rrc_AffectedCarrierFreqComb_r15;
+static int ett_lte_rrc_AffectedCarrierFreqCombNR_r15;
+static int ett_lte_rrc_InterFreqRSTDMeasurementIndication_r10;
+static int ett_lte_rrc_T_criticalExtensions_16;
+static int ett_lte_rrc_T_c1_21;
+static int ett_lte_rrc_T_criticalExtensionsFuture_16;
+static int ett_lte_rrc_InterFreqRSTDMeasurementIndication_r10_IEs;
+static int ett_lte_rrc_T_rstd_InterFreqIndication_r10;
+static int ett_lte_rrc_T_start;
+static int ett_lte_rrc_T_nonCriticalExtension_18;
+static int ett_lte_rrc_RSTD_InterFreqInfoList_r10;
+static int ett_lte_rrc_RSTD_InterFreqInfo_r10;
+static int ett_lte_rrc_T_measPRS_Offset_r15;
+static int ett_lte_rrc_LoggedMeasurementConfiguration_r10;
+static int ett_lte_rrc_T_criticalExtensions_17;
+static int ett_lte_rrc_T_c1_22;
+static int ett_lte_rrc_T_criticalExtensionsFuture_17;
+static int ett_lte_rrc_LoggedMeasurementConfiguration_r10_IEs;
+static int ett_lte_rrc_LoggedMeasurementConfiguration_v1080_IEs;
+static int ett_lte_rrc_LoggedMeasurementConfiguration_v1130_IEs;
+static int ett_lte_rrc_LoggedMeasurementConfiguration_v1250_IEs;
+static int ett_lte_rrc_LoggedMeasurementConfiguration_v1530_IEs;
+static int ett_lte_rrc_LoggedMeasurementConfiguration_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_19;
+static int ett_lte_rrc_TargetMBSFN_AreaList_r12;
+static int ett_lte_rrc_TargetMBSFN_Area_r12;
+static int ett_lte_rrc_LoggedEventTriggerConfig_r17;
+static int ett_lte_rrc_EventType_r17;
+static int ett_lte_rrc_T_eventL1;
+static int ett_lte_rrc_MasterInformationBlock;
+static int ett_lte_rrc_T_partEARFCN_r17;
+static int ett_lte_rrc_MasterInformationBlock_MBMS_r14;
+static int ett_lte_rrc_MBMSCountingRequest_r10;
+static int ett_lte_rrc_T_nonCriticalExtension_20;
+static int ett_lte_rrc_CountingRequestList_r10;
+static int ett_lte_rrc_CountingRequestInfo_r10;
+static int ett_lte_rrc_MBMSCountingResponse_r10;
+static int ett_lte_rrc_T_criticalExtensions_18;
+static int ett_lte_rrc_T_c1_23;
+static int ett_lte_rrc_T_criticalExtensionsFuture_18;
+static int ett_lte_rrc_MBMSCountingResponse_r10_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_21;
+static int ett_lte_rrc_CountingResponseList_r10;
+static int ett_lte_rrc_CountingResponseInfo_r10;
+static int ett_lte_rrc_MBMSInterestIndication_r11;
+static int ett_lte_rrc_T_criticalExtensions_19;
+static int ett_lte_rrc_T_c1_24;
+static int ett_lte_rrc_T_criticalExtensionsFuture_19;
+static int ett_lte_rrc_MBMSInterestIndication_r11_IEs;
+static int ett_lte_rrc_MBMSInterestIndication_v1310_IEs;
+static int ett_lte_rrc_MBMSInterestIndication_v1540_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxMBMS_ServiceListPerUE_r13_OF_MBMS_ROM_Info_r15;
+static int ett_lte_rrc_MBMSInterestIndication_v1610_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxMBMS_ServiceListPerUE_r13_OF_MBMS_ROM_Info_r16;
+static int ett_lte_rrc_T_nonCriticalExtension_22;
+static int ett_lte_rrc_MBMS_ROM_Info_r15;
+static int ett_lte_rrc_MBMS_ROM_Info_r16;
+static int ett_lte_rrc_MBSFNAreaConfiguration_r9;
+static int ett_lte_rrc_MBSFNAreaConfiguration_v930_IEs;
+static int ett_lte_rrc_MBSFNAreaConfiguration_v1250_IEs;
+static int ett_lte_rrc_MBSFNAreaConfiguration_v1430_IEs;
+static int ett_lte_rrc_MBSFNAreaConfiguration_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_23;
+static int ett_lte_rrc_CommonSF_AllocPatternList_r9;
+static int ett_lte_rrc_CommonSF_AllocPatternList_v1430;
+static int ett_lte_rrc_CommonSF_AllocPatternList_v1610;
+static int ett_lte_rrc_MCGFailureInformation_r16;
+static int ett_lte_rrc_T_criticalExtensions_20;
+static int ett_lte_rrc_T_criticalExtensionsFuture_20;
+static int ett_lte_rrc_MCGFailureInformation_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_24;
+static int ett_lte_rrc_FailureReportMCG_r16;
+static int ett_lte_rrc_MeasReportAppLayer_r15;
+static int ett_lte_rrc_T_criticalExtensions_21;
+static int ett_lte_rrc_T_criticalExtensionsFuture_21;
+static int ett_lte_rrc_MeasReportAppLayer_r15_IEs;
+static int ett_lte_rrc_MeasReportAppLayer_v1590_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_25;
+static int ett_lte_rrc_MeasurementReport;
+static int ett_lte_rrc_T_criticalExtensions_22;
+static int ett_lte_rrc_T_c1_25;
+static int ett_lte_rrc_T_criticalExtensionsFuture_22;
+static int ett_lte_rrc_MeasurementReport_r8_IEs;
+static int ett_lte_rrc_MeasurementReport_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_26;
+static int ett_lte_rrc_MobilityFromEUTRACommand;
+static int ett_lte_rrc_T_criticalExtensions_23;
+static int ett_lte_rrc_T_c1_26;
+static int ett_lte_rrc_T_criticalExtensionsFuture_23;
+static int ett_lte_rrc_MobilityFromEUTRACommand_r8_IEs;
+static int ett_lte_rrc_T_purpose;
+static int ett_lte_rrc_MobilityFromEUTRACommand_v8a0_IEs;
+static int ett_lte_rrc_MobilityFromEUTRACommand_v8d0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_27;
+static int ett_lte_rrc_MobilityFromEUTRACommand_r9_IEs;
+static int ett_lte_rrc_T_purpose_01;
+static int ett_lte_rrc_MobilityFromEUTRACommand_v930_IEs;
+static int ett_lte_rrc_MobilityFromEUTRACommand_v960_IEs;
+static int ett_lte_rrc_MobilityFromEUTRACommand_v1530_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_28;
+static int ett_lte_rrc_Handover;
+static int ett_lte_rrc_CellChangeOrder;
+static int ett_lte_rrc_T_targetRAT_Type_01;
+static int ett_lte_rrc_T_geran;
+static int ett_lte_rrc_SI_OrPSI_GERAN;
+static int ett_lte_rrc_E_CSFB_r9;
+static int ett_lte_rrc_Paging;
+static int ett_lte_rrc_Paging_v890_IEs;
+static int ett_lte_rrc_Paging_v920_IEs;
+static int ett_lte_rrc_Paging_v1130_IEs;
+static int ett_lte_rrc_Paging_v1310_IEs;
+static int ett_lte_rrc_Paging_v1530_IEs;
+static int ett_lte_rrc_Paging_v1610_IEs;
+static int ett_lte_rrc_Paging_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_29;
+static int ett_lte_rrc_PagingRecordList;
+static int ett_lte_rrc_PagingRecordList_v1610;
+static int ett_lte_rrc_PagingRecordList_v1700;
+static int ett_lte_rrc_PagingRecord;
+static int ett_lte_rrc_PagingRecord_v1610;
+static int ett_lte_rrc_PagingRecord_v1700;
+static int ett_lte_rrc_PagingUE_Identity;
+static int ett_lte_rrc_IMSI;
+static int ett_lte_rrc_ProximityIndication_r9;
+static int ett_lte_rrc_T_criticalExtensions_24;
+static int ett_lte_rrc_T_c1_27;
+static int ett_lte_rrc_T_criticalExtensionsFuture_24;
+static int ett_lte_rrc_ProximityIndication_r9_IEs;
+static int ett_lte_rrc_T_carrierFreq_r9;
+static int ett_lte_rrc_ProximityIndication_v930_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_30;
+static int ett_lte_rrc_PURConfigurationRequest_r16;
+static int ett_lte_rrc_T_criticalExtensions_25;
+static int ett_lte_rrc_T_criticalExtensionsFuture_25;
+static int ett_lte_rrc_PURConfigurationRequest_r16_IEs;
+static int ett_lte_rrc_T_pur_ConfigRequest_r16;
+static int ett_lte_rrc_T_pur_SetupRequest;
+static int ett_lte_rrc_T_nonCriticalExtension_31;
+static int ett_lte_rrc_RNReconfiguration_r10;
+static int ett_lte_rrc_T_criticalExtensions_26;
+static int ett_lte_rrc_T_c1_28;
+static int ett_lte_rrc_T_criticalExtensionsFuture_26;
+static int ett_lte_rrc_RNReconfiguration_r10_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_32;
+static int ett_lte_rrc_RN_SystemInfo_r10;
+static int ett_lte_rrc_RNReconfigurationComplete_r10;
+static int ett_lte_rrc_T_criticalExtensions_27;
+static int ett_lte_rrc_T_c1_29;
+static int ett_lte_rrc_T_criticalExtensionsFuture_27;
+static int ett_lte_rrc_RNReconfigurationComplete_r10_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_33;
+static int ett_lte_rrc_RRCConnectionReconfiguration;
+static int ett_lte_rrc_T_criticalExtensions_28;
+static int ett_lte_rrc_T_c1_30;
+static int ett_lte_rrc_T_criticalExtensionsFuture_28;
+static int ett_lte_rrc_RRCConnectionReconfiguration_r8_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedInfoNAS;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v890_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v8m0_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v10i0_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v10l0_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v12f0_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1370_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v13c0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_34;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v920_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1020_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1130_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1250_IEs;
+static int ett_lte_rrc_T_wlan_OffloadInfo_r12;
+static int ett_lte_rrc_T_rRCConnectionReconfiguration_v1250_IEs_wlan_OffloadInfo_r12_setup;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1310_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1430_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1510_IEs;
+static int ett_lte_rrc_T_nr_Config_r15;
+static int ett_lte_rrc_T_rRCConnectionReconfiguration_v1510_IEs_nr_Config_r15_setup;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1530_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_r15_OF_DedicatedInfoNAS;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionReconfiguration_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_35;
+static int ett_lte_rrc_SL_SyncTxControl_r12;
+static int ett_lte_rrc_PSCellToAddMod_r12;
+static int ett_lte_rrc_T_cellIdentification_r12_01;
+static int ett_lte_rrc_PSCellToAddMod_v12f0;
+static int ett_lte_rrc_PSCellToAddMod_v1440;
+static int ett_lte_rrc_PowerCoordinationInfo_r12;
+static int ett_lte_rrc_SCellToAddModList_r10;
+static int ett_lte_rrc_SCellToAddModList_v10l0;
+static int ett_lte_rrc_SCellToAddModList_v13c0;
+static int ett_lte_rrc_SCellToAddModList_r16;
+static int ett_lte_rrc_SCellToAddModListExt_r13;
+static int ett_lte_rrc_SCellToAddModListExt_v1370;
+static int ett_lte_rrc_SCellToAddModListExt_v13c0;
+static int ett_lte_rrc_SCellToAddModListExt_v1430;
+static int ett_lte_rrc_SCellGroupToAddModList_r15;
+static int ett_lte_rrc_SCellToAddMod_r10;
+static int ett_lte_rrc_T_cellIdentification_r10;
+static int ett_lte_rrc_SCellToAddMod_v10l0;
+static int ett_lte_rrc_SCellToAddMod_v13c0;
+static int ett_lte_rrc_SCellToAddMod_r16;
+static int ett_lte_rrc_T_cellIdentification_r16;
+static int ett_lte_rrc_SCellToAddModExt_r13;
+static int ett_lte_rrc_T_cellIdentification_r13;
+static int ett_lte_rrc_SCellToAddModExt_v1370;
+static int ett_lte_rrc_SCellToAddModExt_v1430;
+static int ett_lte_rrc_SCellGroupToAddMod_r15;
+static int ett_lte_rrc_SCellToReleaseList_r10;
+static int ett_lte_rrc_SCellToReleaseListExt_r13;
+static int ett_lte_rrc_SCellGroupToReleaseList_r15;
+static int ett_lte_rrc_SCellConfigCommon_r15;
+static int ett_lte_rrc_SCG_Configuration_r12;
+static int ett_lte_rrc_T_sCG_Configuration_r12_setup;
+static int ett_lte_rrc_T_scg_ConfigPartMCG_r12;
+static int ett_lte_rrc_SCG_Configuration_v12f0;
+static int ett_lte_rrc_T_sCG_Configuration_v12f0_setup;
+static int ett_lte_rrc_SCG_Configuration_v13c0;
+static int ett_lte_rrc_T_sCG_Configuration_v13c0_setup;
+static int ett_lte_rrc_SCG_ConfigPartSCG_r12;
+static int ett_lte_rrc_SCG_ConfigPartSCG_v12f0;
+static int ett_lte_rrc_SCG_ConfigPartSCG_v13c0;
+static int ett_lte_rrc_SecurityConfigHO;
+static int ett_lte_rrc_T_handoverType;
+static int ett_lte_rrc_T_intraLTE;
+static int ett_lte_rrc_T_interRAT;
+static int ett_lte_rrc_SecurityConfigHO_v1530;
+static int ett_lte_rrc_T_handoverType_v1530;
+static int ett_lte_rrc_T_intra5GC;
+static int ett_lte_rrc_T_fivegc_ToEPC;
+static int ett_lte_rrc_T_epc_To5GC;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete;
+static int ett_lte_rrc_T_criticalExtensions_29;
+static int ett_lte_rrc_T_criticalExtensionsFuture_29;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_r8_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v8a0_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1020_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1130_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1250_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1430_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1510_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1530_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1700_IEs;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_36;
+static int ett_lte_rrc_RRCConnectionReestablishment;
+static int ett_lte_rrc_T_criticalExtensions_30;
+static int ett_lte_rrc_T_c1_31;
+static int ett_lte_rrc_T_criticalExtensionsFuture_30;
+static int ett_lte_rrc_RRCConnectionReestablishment_r8_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishment_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_37;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete;
+static int ett_lte_rrc_T_criticalExtensions_31;
+static int ett_lte_rrc_T_criticalExtensionsFuture_31;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_r8_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_v920_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_v8a0_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_v1020_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_v1130_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_v1250_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_v1530_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_38;
+static int ett_lte_rrc_RRCConnectionReestablishmentReject;
+static int ett_lte_rrc_T_criticalExtensions_32;
+static int ett_lte_rrc_T_criticalExtensionsFuture_32;
+static int ett_lte_rrc_RRCConnectionReestablishmentReject_r8_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentReject_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_39;
+static int ett_lte_rrc_RRCConnectionReestablishmentRequest;
+static int ett_lte_rrc_T_criticalExtensions_33;
+static int ett_lte_rrc_T_criticalExtensionsFuture_33;
+static int ett_lte_rrc_RRCConnectionReestablishmentRequest_r8_IEs;
+static int ett_lte_rrc_ReestabUE_Identity;
+static int ett_lte_rrc_RRCConnectionReject;
+static int ett_lte_rrc_T_criticalExtensions_34;
+static int ett_lte_rrc_T_c1_32;
+static int ett_lte_rrc_T_criticalExtensionsFuture_34;
+static int ett_lte_rrc_RRCConnectionReject_r8_IEs;
+static int ett_lte_rrc_RRCConnectionReject_v8a0_IEs;
+static int ett_lte_rrc_RRCConnectionReject_v1020_IEs;
+static int ett_lte_rrc_RRCConnectionReject_v1130_IEs;
+static int ett_lte_rrc_T_deprioritisationReq_r11;
+static int ett_lte_rrc_RRCConnectionReject_v1320_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_40;
+static int ett_lte_rrc_RRCConnectionRelease;
+static int ett_lte_rrc_T_criticalExtensions_35;
+static int ett_lte_rrc_T_c1_33;
+static int ett_lte_rrc_T_criticalExtensionsFuture_35;
+static int ett_lte_rrc_RRCConnectionRelease_r8_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_v890_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_v9e0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_41;
+static int ett_lte_rrc_RRCConnectionRelease_v920_IEs;
+static int ett_lte_rrc_T_cellInfoList_r9;
+static int ett_lte_rrc_RRCConnectionRelease_v1020_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_v1320_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_v1530_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_v1540_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_v15b0_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_v1610_IEs;
+static int ett_lte_rrc_T_pur_Config_r16;
+static int ett_lte_rrc_RRCConnectionRelease_v1650_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_42;
+static int ett_lte_rrc_RedirectedCarrierInfo;
+static int ett_lte_rrc_RedirectedCarrierInfo_v9e0;
+static int ett_lte_rrc_RRC_InactiveConfig_r15;
+static int ett_lte_rrc_T_rRC_InactiveConfig_r15_dummy;
+static int ett_lte_rrc_RRC_InactiveConfig_v1610;
+static int ett_lte_rrc_RAN_NotificationAreaInfo_r15;
+static int ett_lte_rrc_PLMN_RAN_AreaCellList_r15;
+static int ett_lte_rrc_PLMN_RAN_AreaCell_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity;
+static int ett_lte_rrc_PLMN_RAN_AreaConfigList_r15;
+static int ett_lte_rrc_PLMN_RAN_AreaConfig_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig_r15;
+static int ett_lte_rrc_RAN_AreaConfig_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode_r15;
+static int ett_lte_rrc_CarrierFreqListUTRA_TDD_r10;
+static int ett_lte_rrc_IdleModeMobilityControlInfo;
+static int ett_lte_rrc_IdleModeMobilityControlInfo_v9e0;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_FreqPriorityEUTRA_v9e0;
+static int ett_lte_rrc_FreqPriorityListEUTRA;
+static int ett_lte_rrc_FreqPriorityListExtEUTRA_r12;
+static int ett_lte_rrc_FreqPriorityListEUTRA_v1310;
+static int ett_lte_rrc_FreqPriorityListExtEUTRA_v1310;
+static int ett_lte_rrc_FreqPriorityEUTRA;
+static int ett_lte_rrc_FreqPriorityEUTRA_v9e0;
+static int ett_lte_rrc_FreqPriorityEUTRA_r12;
+static int ett_lte_rrc_FreqPriorityEUTRA_v1310;
+static int ett_lte_rrc_FreqPriorityListNR_r15;
+static int ett_lte_rrc_FreqPriorityNR_r15;
+static int ett_lte_rrc_FreqsPriorityListGERAN;
+static int ett_lte_rrc_FreqsPriorityGERAN;
+static int ett_lte_rrc_FreqPriorityListUTRA_FDD;
+static int ett_lte_rrc_FreqPriorityUTRA_FDD;
+static int ett_lte_rrc_FreqPriorityListUTRA_TDD;
+static int ett_lte_rrc_FreqPriorityUTRA_TDD;
+static int ett_lte_rrc_BandClassPriorityListHRPD;
+static int ett_lte_rrc_BandClassPriorityHRPD;
+static int ett_lte_rrc_BandClassPriorityList1XRTT;
+static int ett_lte_rrc_BandClassPriority1XRTT;
+static int ett_lte_rrc_CellInfoListGERAN_r9;
+static int ett_lte_rrc_CellInfoGERAN_r9;
+static int ett_lte_rrc_CarrierInfoNR_r15;
+static int ett_lte_rrc_CarrierInfoNR_r17;
+static int ett_lte_rrc_CellInfoListUTRA_FDD_r9;
+static int ett_lte_rrc_CellInfoUTRA_FDD_r9;
+static int ett_lte_rrc_CellInfoListUTRA_TDD_r9;
+static int ett_lte_rrc_CellInfoUTRA_TDD_r9;
+static int ett_lte_rrc_CellInfoListUTRA_TDD_r10;
+static int ett_lte_rrc_CellInfoUTRA_TDD_r10;
+static int ett_lte_rrc_RRCConnectionRequest;
+static int ett_lte_rrc_T_criticalExtensions_36;
+static int ett_lte_rrc_RRCConnectionRequest_r8_IEs;
+static int ett_lte_rrc_RRCConnectionRequest_5GC_r15_IEs;
+static int ett_lte_rrc_InitialUE_Identity;
+static int ett_lte_rrc_InitialUE_Identity_5GC_r15;
+static int ett_lte_rrc_RRCConnectionResume_r13;
+static int ett_lte_rrc_T_criticalExtensions_37;
+static int ett_lte_rrc_T_c1_34;
+static int ett_lte_rrc_T_criticalExtensionsFuture_36;
+static int ett_lte_rrc_RRCConnectionResume_r13_IEs;
+static int ett_lte_rrc_RRCConnectionResume_v1430_IEs;
+static int ett_lte_rrc_RRCConnectionResume_v1510_IEs;
+static int ett_lte_rrc_RRCConnectionResume_v1530_IEs;
+static int ett_lte_rrc_RRCConnectionResume_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionResume_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_43;
+static int ett_lte_rrc_RRCConnectionResumeComplete_r13;
+static int ett_lte_rrc_T_criticalExtensions_38;
+static int ett_lte_rrc_T_criticalExtensionsFuture_37;
+static int ett_lte_rrc_RRCConnectionResumeComplete_r13_IEs;
+static int ett_lte_rrc_RRCConnectionResumeComplete_v1530_IEs;
+static int ett_lte_rrc_RRCConnectionResumeComplete_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionResumeComplete_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_44;
+static int ett_lte_rrc_RRCConnectionResumeRequest_r13;
+static int ett_lte_rrc_T_criticalExtensions_39;
+static int ett_lte_rrc_RRCConnectionResumeRequest_r13_IEs;
+static int ett_lte_rrc_T_rRCConnectionResumeRequest_r13_IEs_resumeIdentity_r13;
+static int ett_lte_rrc_RRCConnectionResumeRequest_5GC_r15_IEs;
+static int ett_lte_rrc_T_resumeIdentity_r15;
+static int ett_lte_rrc_RRCConnectionSetup;
+static int ett_lte_rrc_T_criticalExtensions_40;
+static int ett_lte_rrc_T_c1_35;
+static int ett_lte_rrc_T_criticalExtensionsFuture_38;
+static int ett_lte_rrc_RRCConnectionSetup_r8_IEs;
+static int ett_lte_rrc_RRCConnectionSetup_v8a0_IEs;
+static int ett_lte_rrc_RRCConnectionSetup_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_45;
+static int ett_lte_rrc_RRCConnectionSetupComplete;
+static int ett_lte_rrc_T_criticalExtensions_41;
+static int ett_lte_rrc_T_c1_36;
+static int ett_lte_rrc_T_criticalExtensionsFuture_39;
+static int ett_lte_rrc_RRCConnectionSetupComplete_r8_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v8a0_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1020_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1130_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1250_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1320_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1330_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1430_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1530_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_r15_OF_S_NSSAI_r15;
+static int ett_lte_rrc_T_ng_5G_S_TMSI_Bits_r15;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1540_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1690_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_46;
+static int ett_lte_rrc_RegisteredMME;
+static int ett_lte_rrc_RegisteredAMF_r15;
+static int ett_lte_rrc_RRCEarlyDataComplete_r15;
+static int ett_lte_rrc_T_criticalExtensions_42;
+static int ett_lte_rrc_T_criticalExtensionsFuture_40;
+static int ett_lte_rrc_RRCEarlyDataComplete_r15_IEs;
+static int ett_lte_rrc_RRCEarlyDataComplete_v1590_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_47;
+static int ett_lte_rrc_RedirectedCarrierInfo_r15_IEs;
+static int ett_lte_rrc_RRCEarlyDataRequest_r15;
+static int ett_lte_rrc_T_criticalExtensions_43;
+static int ett_lte_rrc_T_criticalExtensionsFuture_41;
+static int ett_lte_rrc_T_criticalExtensionsFuture_r16;
+static int ett_lte_rrc_RRCEarlyDataRequest_r15_IEs;
+static int ett_lte_rrc_RRCEarlyDataRequest_v1590_IEs;
+static int ett_lte_rrc_RRCEarlyDataRequest_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_48;
+static int ett_lte_rrc_RRCEarlyDataRequest_5GC_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_49;
+static int ett_lte_rrc_SCGFailureInformation_r12;
+static int ett_lte_rrc_T_criticalExtensions_44;
+static int ett_lte_rrc_T_c1_37;
+static int ett_lte_rrc_T_criticalExtensionsFuture_42;
+static int ett_lte_rrc_SCGFailureInformation_r12_IEs;
+static int ett_lte_rrc_SCGFailureInformation_v12d0a_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_50;
+static int ett_lte_rrc_SCGFailureInformation_v12d0b_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_51;
+static int ett_lte_rrc_FailureReportSCG_r12;
+static int ett_lte_rrc_FailureReportSCG_v12d0;
+static int ett_lte_rrc_SCGFailureInformationNR_r15;
+static int ett_lte_rrc_T_criticalExtensions_45;
+static int ett_lte_rrc_T_c1_38;
+static int ett_lte_rrc_T_criticalExtensionsFuture_43;
+static int ett_lte_rrc_SCGFailureInformationNR_r15_IEs;
+static int ett_lte_rrc_SCGFailureInformationNR_v1590_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_52;
+static int ett_lte_rrc_FailureReportSCG_NR_r15;
+static int ett_lte_rrc_MeasResultFreqListFailNR_r15;
+static int ett_lte_rrc_MeasResultFreqFailNR_r15;
+static int ett_lte_rrc_SCPTMConfiguration_r13;
+static int ett_lte_rrc_SCPTMConfiguration_v1340;
+static int ett_lte_rrc_T_nonCriticalExtension_53;
+static int ett_lte_rrc_SCPTMConfiguration_BR_r14;
+static int ett_lte_rrc_SCPTMConfiguration_BR_v1610;
+static int ett_lte_rrc_T_nonCriticalExtension_54;
+static int ett_lte_rrc_SecurityModeCommand;
+static int ett_lte_rrc_T_criticalExtensions_46;
+static int ett_lte_rrc_T_c1_39;
+static int ett_lte_rrc_T_criticalExtensionsFuture_44;
+static int ett_lte_rrc_SecurityModeCommand_r8_IEs;
+static int ett_lte_rrc_SecurityModeCommand_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_55;
+static int ett_lte_rrc_SecurityConfigSMC;
+static int ett_lte_rrc_SecurityModeComplete;
+static int ett_lte_rrc_T_criticalExtensions_47;
+static int ett_lte_rrc_T_criticalExtensionsFuture_45;
+static int ett_lte_rrc_SecurityModeComplete_r8_IEs;
+static int ett_lte_rrc_SecurityModeComplete_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_56;
+static int ett_lte_rrc_SecurityModeFailure;
+static int ett_lte_rrc_T_criticalExtensions_48;
+static int ett_lte_rrc_T_criticalExtensionsFuture_46;
+static int ett_lte_rrc_SecurityModeFailure_r8_IEs;
+static int ett_lte_rrc_SecurityModeFailure_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_57;
+static int ett_lte_rrc_SidelinkUEInformation_r12;
+static int ett_lte_rrc_T_criticalExtensions_49;
+static int ett_lte_rrc_T_c1_40;
+static int ett_lte_rrc_T_criticalExtensionsFuture_47;
+static int ett_lte_rrc_SidelinkUEInformation_r12_IEs;
+static int ett_lte_rrc_SidelinkUEInformation_v1310_IEs;
+static int ett_lte_rrc_T_commTxResourceInfoReqRelay_r13;
+static int ett_lte_rrc_T_discTxResourceReq_v1310;
+static int ett_lte_rrc_SidelinkUEInformation_v1430_IEs;
+static int ett_lte_rrc_SidelinkUEInformation_v1530_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_58;
+static int ett_lte_rrc_SL_CommTxResourceReq_r12;
+static int ett_lte_rrc_SL_DiscTxResourceReqPerFreqList_r13;
+static int ett_lte_rrc_SL_DiscTxResourceReq_r13;
+static int ett_lte_rrc_SL_DestinationInfoList_r12;
+static int ett_lte_rrc_SL_DiscSysInfoReportFreqList_r13;
+static int ett_lte_rrc_SL_V2X_CommFreqList_r14;
+static int ett_lte_rrc_SL_V2X_CommTxFreqList_r14;
+static int ett_lte_rrc_SL_V2X_CommTxResourceReq_r14;
+static int ett_lte_rrc_SystemInformation;
+static int ett_lte_rrc_T_criticalExtensions_50;
+static int ett_lte_rrc_T_criticalExtensionsFuture_r15;
+static int ett_lte_rrc_T_criticalExtensionsFuture_48;
+static int ett_lte_rrc_SystemInformation_r8_IEs;
+static int ett_lte_rrc_T_sib_TypeAndInfo;
+static int ett_lte_rrc_T_sib_TypeAndInfo_item;
+static int ett_lte_rrc_SystemInformation_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_59;
+static int ett_lte_rrc_PosSystemInformation_r15_IEs;
+static int ett_lte_rrc_T_posSIB_TypeAndInfo_r15;
+static int ett_lte_rrc_T_posSIB_TypeAndInfo_r15_item;
+static int ett_lte_rrc_T_nonCriticalExtension_60;
+static int ett_lte_rrc_SystemInformationBlockType1;
+static int ett_lte_rrc_T_cellAccessRelatedInfo;
+static int ett_lte_rrc_T_cellSelectionInfo;
+static int ett_lte_rrc_SystemInformationBlockType1_v890_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v8h0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v9e0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v10j0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v10l0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v10x0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v12j0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v15g0_IEs;
+static int ett_lte_rrc_T_bandwidthReducedAccessRelatedInfo_v15g0;
+static int ett_lte_rrc_T_nonCriticalExtension_61;
+static int ett_lte_rrc_SystemInformationBlockType1_v920_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v1130_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v1250_IEs;
+static int ett_lte_rrc_T_cellAccessRelatedInfo_v1250;
+static int ett_lte_rrc_SystemInformationBlockType1_v1310_IEs;
+static int ett_lte_rrc_T_bandwidthReducedAccessRelatedInfo_r13;
+static int ett_lte_rrc_T_fdd_DownlinkOrTddSubframeBitmapBR_r13;
+static int ett_lte_rrc_SystemInformationBlockType1_v1320_IEs;
+static int ett_lte_rrc_T_freqHoppingParametersDL_r13;
+static int ett_lte_rrc_T_interval_DLHoppingConfigCommonModeA_r13;
+static int ett_lte_rrc_T_interval_DLHoppingConfigCommonModeB_r13;
+static int ett_lte_rrc_SystemInformationBlockType1_v1350_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v1360_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v1430_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_1_r14_OF_CellAccessRelatedInfo_r14;
+static int ett_lte_rrc_SystemInformationBlockType1_v1450_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v1530_IEs;
+static int ett_lte_rrc_T_crs_IntfMitigConfig_r15;
+static int ett_lte_rrc_T_cellAccessRelatedInfo_5GC_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_CellAccessRelatedInfo_5GC_r15;
+static int ett_lte_rrc_SystemInformationBlockType1_v1540_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v1610_IEs;
+static int ett_lte_rrc_SystemInformationBlockType1_v1700_IEs;
+static int ett_lte_rrc_T_cellAccessRelatedInfo_NTN_r17;
+static int ett_lte_rrc_T_nonCriticalExtension_62;
+static int ett_lte_rrc_PLMN_IdentityList;
+static int ett_lte_rrc_PLMN_IdentityInfo;
+static int ett_lte_rrc_PLMN_IdentityList_v1530;
+static int ett_lte_rrc_PLMN_IdentityInfo_v1530;
+static int ett_lte_rrc_PLMN_IdentityList_r15;
+static int ett_lte_rrc_PLMN_IdentityList_v1610;
+static int ett_lte_rrc_PLMN_IdentityList_v1700;
+static int ett_lte_rrc_PLMN_IdentityInfo_r15;
+static int ett_lte_rrc_T_plmn_Identity_5GC_r15;
+static int ett_lte_rrc_PLMN_IdentityInfo_v1610;
+static int ett_lte_rrc_PLMN_IdentityInfo_v1700;
+static int ett_lte_rrc_SchedulingInfoList;
+static int ett_lte_rrc_SchedulingInfoList_v12j0;
+static int ett_lte_rrc_SchedulingInfoListExt_r12;
+static int ett_lte_rrc_SchedulingInfo;
+static int ett_lte_rrc_SchedulingInfo_v12j0;
+static int ett_lte_rrc_SchedulingInfoExt_r12;
+static int ett_lte_rrc_SchedulingInfoList_BR_r13;
+static int ett_lte_rrc_SchedulingInfo_BR_r13;
+static int ett_lte_rrc_SIB_MappingInfo;
+static int ett_lte_rrc_SIB_MappingInfo_v12j0;
+static int ett_lte_rrc_SystemInfoValueTagList_r13;
+static int ett_lte_rrc_CellSelectionInfo_v920;
+static int ett_lte_rrc_CellSelectionInfo_v1130;
+static int ett_lte_rrc_CellSelectionInfo_v1250;
+static int ett_lte_rrc_CellAccessRelatedInfo_r14;
+static int ett_lte_rrc_CellAccessRelatedInfo_5GC_r15;
+static int ett_lte_rrc_CellIdentity_5GC_r15;
+static int ett_lte_rrc_TrackingAreaList_r17;
+static int ett_lte_rrc_PosSchedulingInfoList_r15;
+static int ett_lte_rrc_PosSchedulingInfo_r15;
+static int ett_lte_rrc_PosSIB_MappingInfo_r15;
+static int ett_lte_rrc_PosSIB_Type_r15;
+static int ett_lte_rrc_SystemInformationBlockType1_MBMS_r14;
+static int ett_lte_rrc_T_cellAccessRelatedInfo_r14;
+static int ett_lte_rrc_T_nonCriticalExtension_63;
+static int ett_lte_rrc_PLMN_IdentityList_MBMS_r14;
+static int ett_lte_rrc_SchedulingInfoList_MBMS_r14;
+static int ett_lte_rrc_SchedulingInfo_MBMS_r14;
+static int ett_lte_rrc_SIB_MappingInfo_MBMS_r14;
+static int ett_lte_rrc_NonMBSFN_SubframeConfig_r14;
+static int ett_lte_rrc_UEAssistanceInformation_r11;
+static int ett_lte_rrc_T_criticalExtensions_51;
+static int ett_lte_rrc_T_c1_41;
+static int ett_lte_rrc_T_criticalExtensionsFuture_49;
+static int ett_lte_rrc_UEAssistanceInformation_r11_IEs;
+static int ett_lte_rrc_UEAssistanceInformation_v1430_IEs;
+static int ett_lte_rrc_T_sps_AssistanceInformation_r14;
+static int ett_lte_rrc_T_rlm_Report_r14;
+static int ett_lte_rrc_UEAssistanceInformation_v1450_IEs;
+static int ett_lte_rrc_UEAssistanceInformation_v1530_IEs;
+static int ett_lte_rrc_T_sps_AssistanceInformation_v1530;
+static int ett_lte_rrc_UEAssistanceInformation_v1610_IEs;
+static int ett_lte_rrc_UEAssistanceInformation_v1700_IEs;
+static int ett_lte_rrc_UEAssistanceInformation_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_64;
+static int ett_lte_rrc_BW_Preference_r14;
+static int ett_lte_rrc_TrafficPatternInfoList_r14;
+static int ett_lte_rrc_TrafficPatternInfo_r14;
+static int ett_lte_rrc_TrafficPatternInfoList_v1530;
+static int ett_lte_rrc_TrafficPatternInfo_v1530;
+static int ett_lte_rrc_DelayBudgetReport_r14;
+static int ett_lte_rrc_OverheatingAssistance_r14;
+static int ett_lte_rrc_T_reducedUE_Category;
+static int ett_lte_rrc_T_reducedMaxCCs;
+static int ett_lte_rrc_OverheatingAssistance_v1610;
+static int ett_lte_rrc_OverheatingAssistance_v1710;
+static int ett_lte_rrc_UECapabilityEnquiry;
+static int ett_lte_rrc_T_criticalExtensions_52;
+static int ett_lte_rrc_T_c1_42;
+static int ett_lte_rrc_T_criticalExtensionsFuture_50;
+static int ett_lte_rrc_UECapabilityEnquiry_r8_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v8a0_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1180_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_FreqBandIndicator_r11;
+static int ett_lte_rrc_UECapabilityEnquiry_v1310_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1430_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1510_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1530_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1550_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1560_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1610_IEs;
+static int ett_lte_rrc_UECapabilityEnquiry_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_65;
+static int ett_lte_rrc_UE_CapabilityRequest;
+static int ett_lte_rrc_UECapabilityInformation;
+static int ett_lte_rrc_T_criticalExtensions_53;
+static int ett_lte_rrc_T_c1_43;
+static int ett_lte_rrc_T_criticalExtensionsFuture_51;
+static int ett_lte_rrc_UECapabilityInformation_r8_IEs;
+static int ett_lte_rrc_UECapabilityInformation_v8a0_IEs;
+static int ett_lte_rrc_UECapabilityInformation_v1250_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_66;
+static int ett_lte_rrc_ULDedicatedMessageSegment_r16;
+static int ett_lte_rrc_T_criticalExtensions_54;
+static int ett_lte_rrc_T_criticalExtensionsFuture_52;
+static int ett_lte_rrc_ULDedicatedMessageSegment_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_67;
+static int ett_lte_rrc_UEInformationRequest_r9;
+static int ett_lte_rrc_T_criticalExtensions_55;
+static int ett_lte_rrc_T_c1_44;
+static int ett_lte_rrc_T_criticalExtensionsFuture_53;
+static int ett_lte_rrc_UEInformationRequest_r9_IEs;
+static int ett_lte_rrc_UEInformationRequest_v930_IEs;
+static int ett_lte_rrc_UEInformationRequest_v1020_IEs;
+static int ett_lte_rrc_UEInformationRequest_v1130_IEs;
+static int ett_lte_rrc_UEInformationRequest_v1250_IEs;
+static int ett_lte_rrc_UEInformationRequest_v1530_IEs;
+static int ett_lte_rrc_UEInformationRequest_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_68;
+static int ett_lte_rrc_UEInformationResponse_r9;
+static int ett_lte_rrc_T_criticalExtensions_56;
+static int ett_lte_rrc_T_c1_45;
+static int ett_lte_rrc_T_criticalExtensionsFuture_54;
+static int ett_lte_rrc_UEInformationResponse_r9_IEs;
+static int ett_lte_rrc_UEInformationResponse_v9e0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_69;
+static int ett_lte_rrc_UEInformationResponse_v930_IEs;
+static int ett_lte_rrc_UEInformationResponse_v1020_IEs;
+static int ett_lte_rrc_UEInformationResponse_v1130_IEs;
+static int ett_lte_rrc_UEInformationResponse_v1250_IEs;
+static int ett_lte_rrc_UEInformationResponse_v1530_IEs;
+static int ett_lte_rrc_UEInformationResponse_v1610_IEs;
+static int ett_lte_rrc_UEInformationResponse_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_70;
+static int ett_lte_rrc_RACH_Report_r16;
+static int ett_lte_rrc_RACH_Report_v1610;
+static int ett_lte_rrc_RLF_Report_r9;
+static int ett_lte_rrc_T_measResultLastServCell_r9;
+static int ett_lte_rrc_T_measResultNeighCells_r9;
+static int ett_lte_rrc_T_failedPCellId_r10;
+static int ett_lte_rrc_T_pci_arfcn_r10;
+static int ett_lte_rrc_T_failedPCellId_v1090;
+static int ett_lte_rrc_T_basicFields_r11;
+static int ett_lte_rrc_T_previousUTRA_CellId_r11;
+static int ett_lte_rrc_T_physCellId_r11;
+static int ett_lte_rrc_T_selectedUTRA_CellId_r11;
+static int ett_lte_rrc_T_physCellId_r11_01;
+static int ett_lte_rrc_T_failedPCellId_v1250;
+static int ett_lte_rrc_T_failedNR_PCellId_r16;
+static int ett_lte_rrc_T_pci_arfcn;
+static int ett_lte_rrc_T_reconnectCellId_r16;
+static int ett_lte_rrc_T_eutraReconnectCellId;
+static int ett_lte_rrc_T_measResultListNR_v1640;
+static int ett_lte_rrc_RLF_Report_v9e0;
+static int ett_lte_rrc_MeasResultList2EUTRA_r9;
+static int ett_lte_rrc_MeasResultList2EUTRA_v9e0;
+static int ett_lte_rrc_MeasResultList2EUTRA_v1250;
+static int ett_lte_rrc_MeasResult2EUTRA_r9;
+static int ett_lte_rrc_MeasResult2EUTRA_v9e0;
+static int ett_lte_rrc_MeasResult2EUTRA_v1250;
+static int ett_lte_rrc_MeasResultList2UTRA_r9;
+static int ett_lte_rrc_MeasResult2UTRA_r9;
+static int ett_lte_rrc_MeasResultList2CDMA2000_r9;
+static int ett_lte_rrc_MeasResult2CDMA2000_r9;
+static int ett_lte_rrc_LogMeasReport_r10;
+static int ett_lte_rrc_LogMeasInfoList_r10;
+static int ett_lte_rrc_LogMeasInfo_r10;
+static int ett_lte_rrc_T_measResultServCell_r10;
+static int ett_lte_rrc_T_measResultNeighCells_r10;
+static int ett_lte_rrc_T_measResultListNR_v1640_01;
+static int ett_lte_rrc_MeasResultListMBSFN_r12;
+static int ett_lte_rrc_MeasResultMBSFN_r12;
+static int ett_lte_rrc_T_mbsfn_Area_r12;
+static int ett_lte_rrc_DataBLER_MCH_ResultList_r12;
+static int ett_lte_rrc_DataBLER_MCH_Result_r12;
+static int ett_lte_rrc_BLER_Result_r12;
+static int ett_lte_rrc_T_blocksReceived_r12;
+static int ett_lte_rrc_MeasResultList2GERAN_r10;
+static int ett_lte_rrc_MeasResultFreqListNR_r16;
+static int ett_lte_rrc_ConnEstFailReport_r11;
+static int ett_lte_rrc_T_measResultFailedCell_r11;
+static int ett_lte_rrc_T_measResultNeighCells_r11;
+static int ett_lte_rrc_T_measResultListNR_v1640_02;
+static int ett_lte_rrc_FlightPathInfoReport_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxWayPoint_r15_OF_WayPointLocation_r15;
+static int ett_lte_rrc_T_dummy;
+static int ett_lte_rrc_WayPointLocation_r15;
+static int ett_lte_rrc_ULHandoverPreparationTransfer;
+static int ett_lte_rrc_T_criticalExtensions_57;
+static int ett_lte_rrc_T_c1_46;
+static int ett_lte_rrc_T_criticalExtensionsFuture_55;
+static int ett_lte_rrc_ULHandoverPreparationTransfer_r8_IEs;
+static int ett_lte_rrc_ULHandoverPreparationTransfer_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_71;
+static int ett_lte_rrc_ULInformationTransfer;
+static int ett_lte_rrc_T_criticalExtensions_58;
+static int ett_lte_rrc_T_c1_47;
+static int ett_lte_rrc_T_criticalExtensionsFuture_56;
+static int ett_lte_rrc_ULInformationTransfer_r8_IEs;
+static int ett_lte_rrc_T_dedicatedInfoType_01;
+static int ett_lte_rrc_ULInformationTransfer_v8a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_72;
+static int ett_lte_rrc_ULInformationTransfer_r16_IEs;
+static int ett_lte_rrc_T_dedicatedInfoType_r16;
+static int ett_lte_rrc_ULInformationTransferIRAT_r16;
+static int ett_lte_rrc_T_criticalExtensions_59;
+static int ett_lte_rrc_T_c1_48;
+static int ett_lte_rrc_T_criticalExtensionsFuture_57;
+static int ett_lte_rrc_ULInformationTransferIRAT_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_73;
+static int ett_lte_rrc_ULInformationTransferMRDC_r15;
+static int ett_lte_rrc_T_criticalExtensions_60;
+static int ett_lte_rrc_T_c1_49;
+static int ett_lte_rrc_T_criticalExtensionsFuture_58;
+static int ett_lte_rrc_ULInformationTransferMRDC_r15_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_74;
+static int ett_lte_rrc_WLANConnectionStatusReport_r13;
+static int ett_lte_rrc_T_criticalExtensions_61;
+static int ett_lte_rrc_T_c1_50;
+static int ett_lte_rrc_T_criticalExtensionsFuture_59;
+static int ett_lte_rrc_WLANConnectionStatusReport_r13_IEs;
+static int ett_lte_rrc_WLANConnectionStatusReport_v1430_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_75;
+static int ett_lte_rrc_SystemInformationBlockPos_r15;
+static int ett_lte_rrc_SystemInformationBlockType2;
+static int ett_lte_rrc_T_ac_BarringInfo;
+static int ett_lte_rrc_T_freqInfo;
+static int ett_lte_rrc_SystemInformationBlockType2_v8h0_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_AdditionalSpectrumEmission;
+static int ett_lte_rrc_SystemInformationBlockType2_v9e0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType2_v9i0_IEs;
+static int ett_lte_rrc_T_systemInformationBlockType2_v9i0_IEs_dummy;
+static int ett_lte_rrc_SystemInformationBlockType2_v10m0_IEs;
+static int ett_lte_rrc_T_freqInfo_v10l0;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_AdditionalSpectrumEmission_v10l0;
+static int ett_lte_rrc_SystemInformationBlockType2_v10n0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType2_v13c0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_77;
+static int ett_lte_rrc_AC_BarringConfig;
+static int ett_lte_rrc_MBSFN_SubframeConfigList;
+static int ett_lte_rrc_MBSFN_SubframeConfigList_v1430;
+static int ett_lte_rrc_AC_BarringPerPLMN_List_r12;
+static int ett_lte_rrc_AC_BarringPerPLMN_r12;
+static int ett_lte_rrc_T_ac_BarringInfo_r12;
+static int ett_lte_rrc_ACDC_BarringForCommon_r13;
+static int ett_lte_rrc_ACDC_BarringPerPLMN_List_r13;
+static int ett_lte_rrc_ACDC_BarringPerPLMN_r13;
+static int ett_lte_rrc_BarringPerACDC_CategoryList_r13;
+static int ett_lte_rrc_BarringPerACDC_Category_r13;
+static int ett_lte_rrc_T_acdc_BarringConfig_r13;
+static int ett_lte_rrc_UDT_Restricting_r13;
+static int ett_lte_rrc_UDT_RestrictingPerPLMN_List_r13;
+static int ett_lte_rrc_UDT_RestrictingPerPLMN_r13;
+static int ett_lte_rrc_CIOT_EPS_OptimisationInfo_r13;
+static int ett_lte_rrc_CIOT_OptimisationPLMN_r13;
+static int ett_lte_rrc_PLMN_InfoList_r15;
+static int ett_lte_rrc_PLMN_Info_r15;
+static int ett_lte_rrc_SystemInformationBlockType3;
+static int ett_lte_rrc_T_cellReselectionInfoCommon;
+static int ett_lte_rrc_T_speedStateReselectionPars;
+static int ett_lte_rrc_T_q_HystSF;
+static int ett_lte_rrc_T_cellReselectionServingFreqInfo;
+static int ett_lte_rrc_T_intraFreqCellReselectionInfo;
+static int ett_lte_rrc_T_s_IntraSearch_v920;
+static int ett_lte_rrc_T_s_NonIntraSearch_v920;
+static int ett_lte_rrc_RedistributionServingInfo_r13;
+static int ett_lte_rrc_CellReselectionServingFreqInfo_v1310;
+static int ett_lte_rrc_CellReselectionServingFreqInfo_v1610;
+static int ett_lte_rrc_SystemInformationBlockType3_v10j0_IEs;
+static int ett_lte_rrc_SystemInformationBlockType3_v10l0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_78;
+static int ett_lte_rrc_CellReselectionInfoCommon_v1460;
+static int ett_lte_rrc_CellReselectionInfoHSDN_r15;
+static int ett_lte_rrc_SystemInformationBlockType4;
+static int ett_lte_rrc_IntraFreqNeighCellList;
+static int ett_lte_rrc_IntraFreqNeighCellList_v1610;
+static int ett_lte_rrc_IntraFreqNeighHSDN_CellList_r15;
+static int ett_lte_rrc_IntraFreqNeighCellInfo;
+static int ett_lte_rrc_IntraFreqNeighCellInfo_v1610;
+static int ett_lte_rrc_IntraFreqExcludedCellList;
+static int ett_lte_rrc_SystemInformationBlockType5;
+static int ett_lte_rrc_SystemInformationBlockType5_v8h0_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v8h0;
+static int ett_lte_rrc_SystemInformationBlockType5_v9e0_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v9e0;
+static int ett_lte_rrc_SystemInformationBlockType5_v10j0_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v10j0;
+static int ett_lte_rrc_SystemInformationBlockType5_v10l0_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqCarrierFreqInfo_v10l0;
+static int ett_lte_rrc_SystemInformationBlockType5_v13a0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_79;
+static int ett_lte_rrc_InterFreqCarrierFreqList;
+static int ett_lte_rrc_InterFreqCarrierFreqList_v1250;
+static int ett_lte_rrc_InterFreqCarrierFreqList_v1310;
+static int ett_lte_rrc_InterFreqCarrierFreqList_v1350;
+static int ett_lte_rrc_InterFreqCarrierFreqList_v13a0;
+static int ett_lte_rrc_InterFreqCarrierFreqList_v1530;
+static int ett_lte_rrc_InterFreqCarrierFreqList_v1610;
+static int ett_lte_rrc_InterFreqCarrierFreqListExt_r12;
+static int ett_lte_rrc_InterFreqCarrierFreqListExt_v1280;
+static int ett_lte_rrc_InterFreqCarrierFreqListExt_v1310;
+static int ett_lte_rrc_InterFreqCarrierFreqListExt_v1350;
+static int ett_lte_rrc_InterFreqCarrierFreqListExt_v1360;
+static int ett_lte_rrc_InterFreqCarrierFreqListExt_v1530;
+static int ett_lte_rrc_InterFreqCarrierFreqListExt_v1610;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo;
+static int ett_lte_rrc_T_threshX_Q_r9;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v8h0;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v9e0;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v10j0;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v10l0;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v1250;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_r12;
+static int ett_lte_rrc_T_threshX_Q_r12;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v1310;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v1350;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v1360;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v1530;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_v1610;
+static int ett_lte_rrc_InterFreqNeighCellList;
+static int ett_lte_rrc_InterFreqNeighCellList_v1610;
+static int ett_lte_rrc_InterFreqNeighHSDN_CellList_r15;
+static int ett_lte_rrc_InterFreqNeighCellInfo;
+static int ett_lte_rrc_InterFreqNeighCellInfo_v1610;
+static int ett_lte_rrc_InterFreqExcludedCellList;
+static int ett_lte_rrc_RedistributionInterFreqInfo_r13;
+static int ett_lte_rrc_RedistributionNeighCellList_r13;
+static int ett_lte_rrc_RedistributionNeighCell_r13;
+static int ett_lte_rrc_SystemInformationBlockType6;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxUTRA_FDD_Carrier_OF_CarrierFreqInfoUTRA_v1250;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxUTRA_TDD_Carrier_OF_CarrierFreqInfoUTRA_v1250;
+static int ett_lte_rrc_SystemInformationBlockType6_v8h0_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxUTRA_FDD_Carrier_OF_CarrierFreqInfoUTRA_FDD_v8h0;
+static int ett_lte_rrc_T_nonCriticalExtension_80;
+static int ett_lte_rrc_CarrierFreqInfoUTRA_v1250;
+static int ett_lte_rrc_CarrierFreqListUTRA_FDD;
+static int ett_lte_rrc_CarrierFreqUTRA_FDD;
+static int ett_lte_rrc_T_threshX_Q_r9_01;
+static int ett_lte_rrc_CarrierFreqInfoUTRA_FDD_v8h0;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_FreqBandIndicator_UTRA_FDD;
+static int ett_lte_rrc_CarrierFreqListUTRA_FDD_Ext_r12;
+static int ett_lte_rrc_CarrierFreqUTRA_FDD_Ext_r12;
+static int ett_lte_rrc_T_threshX_Q_r12_01;
+static int ett_lte_rrc_FreqBandIndicator_UTRA_FDD_r12;
+static int ett_lte_rrc_CarrierFreqListUTRA_TDD;
+static int ett_lte_rrc_CarrierFreqUTRA_TDD;
+static int ett_lte_rrc_CarrierFreqListUTRA_TDD_Ext_r12;
+static int ett_lte_rrc_CarrierFreqUTRA_TDD_r12;
+static int ett_lte_rrc_SystemInformationBlockType7;
+static int ett_lte_rrc_CarrierFreqsInfoListGERAN;
+static int ett_lte_rrc_CarrierFreqsInfoGERAN;
+static int ett_lte_rrc_T_commonInfo;
+static int ett_lte_rrc_SystemInformationBlockType8;
+static int ett_lte_rrc_T_parametersHRPD;
+static int ett_lte_rrc_T_parameters1XRTT;
+static int ett_lte_rrc_CellReselectionParametersCDMA2000;
+static int ett_lte_rrc_CellReselectionParametersCDMA2000_r11;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_NeighCellCDMA2000_r11;
+static int ett_lte_rrc_CellReselectionParametersCDMA2000_v920;
+static int ett_lte_rrc_NeighCellListCDMA2000;
+static int ett_lte_rrc_NeighCellCDMA2000;
+static int ett_lte_rrc_NeighCellCDMA2000_r11;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_16_OF_NeighCellsPerBandclassCDMA2000_r11;
+static int ett_lte_rrc_NeighCellsPerBandclassListCDMA2000;
+static int ett_lte_rrc_NeighCellsPerBandclassCDMA2000;
+static int ett_lte_rrc_NeighCellsPerBandclassCDMA2000_r11;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_40_OF_PhysCellIdCDMA2000;
+static int ett_lte_rrc_NeighCellListCDMA2000_v920;
+static int ett_lte_rrc_NeighCellCDMA2000_v920;
+static int ett_lte_rrc_NeighCellsPerBandclassListCDMA2000_v920;
+static int ett_lte_rrc_NeighCellsPerBandclassCDMA2000_v920;
+static int ett_lte_rrc_PhysCellIdListCDMA2000;
+static int ett_lte_rrc_PhysCellIdListCDMA2000_v920;
+static int ett_lte_rrc_BandClassListCDMA2000;
+static int ett_lte_rrc_BandClassInfoCDMA2000;
+static int ett_lte_rrc_AC_BarringConfig1XRTT_r9;
+static int ett_lte_rrc_SIB8_PerPLMN_List_r11;
+static int ett_lte_rrc_SIB8_PerPLMN_r11;
+static int ett_lte_rrc_T_parametersCDMA2000_r11;
+static int ett_lte_rrc_ParametersCDMA2000_r11;
+static int ett_lte_rrc_T_systemTimeInfo_r11;
+static int ett_lte_rrc_T_parametersHRPD_r11;
+static int ett_lte_rrc_T_parameters1XRTT_r11;
+static int ett_lte_rrc_SystemInformationBlockType9;
+static int ett_lte_rrc_SystemInformationBlockType10;
+static int ett_lte_rrc_SystemInformationBlockType11;
+static int ett_lte_rrc_SystemInformationBlockType12_r9;
+static int ett_lte_rrc_SystemInformationBlockType13_r9;
+static int ett_lte_rrc_SystemInformationBlockType14_r11;
+static int ett_lte_rrc_T_eab_Param_r11;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_EAB_ConfigPLMN_r11;
+static int ett_lte_rrc_EAB_ConfigPLMN_r11;
+static int ett_lte_rrc_EAB_Config_r11;
+static int ett_lte_rrc_SystemInformationBlockType15_r11;
+static int ett_lte_rrc_MBMS_SAI_List_r11;
+static int ett_lte_rrc_MBMS_SAI_InterFreqList_r11;
+static int ett_lte_rrc_MBMS_SAI_InterFreqList_v1140;
+static int ett_lte_rrc_MBMS_SAI_InterFreq_r11;
+static int ett_lte_rrc_MBMS_SAI_InterFreq_v1140;
+static int ett_lte_rrc_MBMS_InterFreqCarrierTypeList_r14;
+static int ett_lte_rrc_MBMS_CarrierType_r14;
+static int ett_lte_rrc_SystemInformationBlockType16_r11;
+static int ett_lte_rrc_T_timeInfo_r11;
+static int ett_lte_rrc_SystemInformationBlockType17_r12;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_WLAN_OffloadInfoPerPLMN_r12;
+static int ett_lte_rrc_WLAN_OffloadInfoPerPLMN_r12;
+static int ett_lte_rrc_WLAN_Id_List_r12;
+static int ett_lte_rrc_WLAN_Identifiers_r12;
+static int ett_lte_rrc_SystemInformationBlockType18_r12;
+static int ett_lte_rrc_T_commConfig_r12;
+static int ett_lte_rrc_SystemInformationBlockType19_r12;
+static int ett_lte_rrc_T_discConfig_r12;
+static int ett_lte_rrc_T_discConfig_v1310;
+static int ett_lte_rrc_T_discConfigRelay_r13;
+static int ett_lte_rrc_T_discConfigPS_13;
+static int ett_lte_rrc_SL_CarrierFreqInfoList_r12;
+static int ett_lte_rrc_SL_CarrierFreqInfoList_v1310;
+static int ett_lte_rrc_SL_CarrierFreqInfo_r12;
+static int ett_lte_rrc_SL_DiscConfigRelayUE_r13;
+static int ett_lte_rrc_SL_DiscConfigRemoteUE_r13;
+static int ett_lte_rrc_ReselectionInfoRelay_r13;
+static int ett_lte_rrc_SL_CarrierFreqInfo_v1310;
+static int ett_lte_rrc_PLMN_IdentityList4_r12;
+static int ett_lte_rrc_PLMN_IdentityInfo2_r12;
+static int ett_lte_rrc_SL_DiscTxResourcesInterFreq_r13;
+static int ett_lte_rrc_SL_DiscConfigOtherInterFreq_r13;
+static int ett_lte_rrc_SL_ResourcesInterFreq_r13;
+static int ett_lte_rrc_SystemInformationBlockType20_r13;
+static int ett_lte_rrc_T_br_BCCH_Config_r14;
+static int ett_lte_rrc_T_mpdcch_StartSF_SC_MCCH_r14;
+static int ett_lte_rrc_SC_MCCH_SchedulingInfo_r14;
+static int ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14;
+static int ett_lte_rrc_SystemInformationBlockType21_r14;
+static int ett_lte_rrc_SL_V2X_ConfigCommon_r14;
+static int ett_lte_rrc_SystemInformationBlockType24_r15;
+static int ett_lte_rrc_CarrierFreqListNR_r15;
+static int ett_lte_rrc_CarrierFreqListNR_v1610;
+static int ett_lte_rrc_CarrierFreqListNR_v1700;
+static int ett_lte_rrc_CarrierFreqListNR_v1720;
+static int ett_lte_rrc_CarrierFreqNR_r15;
+static int ett_lte_rrc_T_threshX_Q_r15;
+static int ett_lte_rrc_CarrierFreqNR_v1610;
+static int ett_lte_rrc_CarrierFreqNR_v1700;
+static int ett_lte_rrc_CarrierFreqNR_v1720;
+static int ett_lte_rrc_MultiBandNsPmaxListNR_1_v1550;
+static int ett_lte_rrc_MultiBandNsPmaxListNR_v1550;
+static int ett_lte_rrc_MultiBandNsPmaxListNR_1_v1760;
+static int ett_lte_rrc_MultiBandNsPmaxListNR_v1760;
+static int ett_lte_rrc_AllowedCellListNR_r16;
+static int ett_lte_rrc_NR_FreqNeighHSDN_CellList_r17;
+static int ett_lte_rrc_SystemInformationBlockType25_r15;
+static int ett_lte_rrc_T_uac_AC1_SelectAssistInfo_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_2_maxPLMN_r11_OF_UAC_AC1_SelectAssistInfo_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_2_maxPLMN_r11_OF_UAC_AC1_SelectAssistInfo_r16;
+static int ett_lte_rrc_UAC_BarringPerPLMN_List_r15;
+static int ett_lte_rrc_UAC_BarringPerPLMN_r15;
+static int ett_lte_rrc_T_uac_AC_BarringListType_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_maxAccessCat_1_r15_OF_UAC_BarringInfoSetIndex_r15;
+static int ett_lte_rrc_UAC_BarringPerCatList_r15;
+static int ett_lte_rrc_UAC_BarringPerCat_r15;
+static int ett_lte_rrc_UAC_BarringInfoSetList_r15;
+static int ett_lte_rrc_UAC_BarringInfoSetList_v1700;
+static int ett_lte_rrc_UAC_BarringInfoSet_r15;
+static int ett_lte_rrc_UAC_BarringInfoSet_v1700;
+static int ett_lte_rrc_SystemInformationBlockType26_r15;
+static int ett_lte_rrc_SystemInformationBlockType26a_r16;
+static int ett_lte_rrc_BandListENDC_r16;
+static int ett_lte_rrc_PLMN_InfoList_r16;
+static int ett_lte_rrc_PLMN_Info_r16;
+static int ett_lte_rrc_SystemInformationBlockType27_r16;
+static int ett_lte_rrc_CarrierFreqListNBIOT_r16;
+static int ett_lte_rrc_CarrierFreqNBIOT_r16;
+static int ett_lte_rrc_SystemInformationBlockType28_r16;
+static int ett_lte_rrc_SystemInformationBlockType29_r16;
+static int ett_lte_rrc_SystemInformationBlockType30_r17;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_PLMN_Identity;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_ApplicableDisasterInfo_r17;
+static int ett_lte_rrc_ApplicableDisasterInfo_r17;
+static int ett_lte_rrc_SystemInformationBlockType31_r17;
+static int ett_lte_rrc_ServingSatelliteInfo_r17;
+static int ett_lte_rrc_T_ephemerisInfo_r17;
+static int ett_lte_rrc_T_nta_CommonParameters_r17;
+static int ett_lte_rrc_T_epochTime_r17;
+static int ett_lte_rrc_SystemInformationBlockType32_r17;
+static int ett_lte_rrc_SatelliteInfoList_r17;
+static int ett_lte_rrc_SatelliteInfo_r17;
+static int ett_lte_rrc_T_serviceInfo_r17;
+static int ett_lte_rrc_T_footprintInfo_r17;
+static int ett_lte_rrc_T_referencePoint_r17;
+static int ett_lte_rrc_T_elevationAngles_r17;
+static int ett_lte_rrc_AntennaInfoCommon;
+static int ett_lte_rrc_AntennaInfoDedicated;
+static int ett_lte_rrc_T_codebookSubsetRestriction;
+static int ett_lte_rrc_T_ue_TransmitAntennaSelection;
+static int ett_lte_rrc_AntennaInfoDedicated_v920;
+static int ett_lte_rrc_T_codebookSubsetRestriction_v920;
+static int ett_lte_rrc_AntennaInfoDedicated_r10;
+static int ett_lte_rrc_T_ue_TransmitAntennaSelection_01;
+static int ett_lte_rrc_AntennaInfoDedicated_v10i0;
+static int ett_lte_rrc_AntennaInfoDedicated_v1250;
+static int ett_lte_rrc_AntennaInfoDedicated_v1430;
+static int ett_lte_rrc_AntennaInfoDedicatedSTTI_r15;
+static int ett_lte_rrc_T_antennaInfoDedicatedSTTI_r15_setup;
+static int ett_lte_rrc_T_codebookSubsetRestriction_01;
+static int ett_lte_rrc_AntennaInfoDedicated_v1530;
+static int ett_lte_rrc_T_antennaInfoDedicated_v1530_setup;
+static int ett_lte_rrc_AntennaInfoUL_r10;
+static int ett_lte_rrc_AntennaInfoUL_STTI_r15;
+static int ett_lte_rrc_AUL_Config_r15;
+static int ett_lte_rrc_T_aUL_Config_r15_setup;
+static int ett_lte_rrc_CQI_ReportAperiodic_r10;
+static int ett_lte_rrc_T_cQI_ReportAperiodic_r10_setup;
+static int ett_lte_rrc_T_aperiodicCSI_Trigger_r10;
+static int ett_lte_rrc_CQI_ReportAperiodic_v1250;
+static int ett_lte_rrc_T_cQI_ReportAperiodic_v1250_setup;
+static int ett_lte_rrc_T_aperiodicCSI_Trigger_v1250;
+static int ett_lte_rrc_CQI_ReportAperiodic_v1310;
+static int ett_lte_rrc_T_cQI_ReportAperiodic_v1310_setup;
+static int ett_lte_rrc_T_aperiodicCSI_Trigger_v1310;
+static int ett_lte_rrc_T_aperiodicCSI_Trigger2_r13;
+static int ett_lte_rrc_T_cQI_ReportAperiodic_v1310_setup_aperiodicCSI_Trigger2_r13_setup;
+static int ett_lte_rrc_CQI_ReportAperiodicProc_r11;
+static int ett_lte_rrc_CQI_ReportAperiodicProc_v1310;
+static int ett_lte_rrc_CQI_ReportAperiodicHybrid_r14;
+static int ett_lte_rrc_T_triggers_r14;
+static int ett_lte_rrc_T_oneBit_r14;
+static int ett_lte_rrc_T_twoBit_r14;
+static int ett_lte_rrc_T_threeBit_r14;
+static int ett_lte_rrc_CQI_ReportBoth_r11;
+static int ett_lte_rrc_CQI_ReportBoth_v1250;
+static int ett_lte_rrc_CQI_ReportBoth_v1310;
+static int ett_lte_rrc_CSI_IM_ConfigToAddModList_r11;
+static int ett_lte_rrc_CSI_IM_ConfigToAddModListExt_r13;
+static int ett_lte_rrc_CSI_IM_ConfigToReleaseList_r11;
+static int ett_lte_rrc_CSI_IM_ConfigToReleaseListExt_r13;
+static int ett_lte_rrc_CSI_ProcessToAddModList_r11;
+static int ett_lte_rrc_CSI_ProcessToReleaseList_r11;
+static int ett_lte_rrc_CQI_ReportBothProc_r11;
+static int ett_lte_rrc_CQI_ReportConfig;
+static int ett_lte_rrc_CQI_ReportConfig_v920;
+static int ett_lte_rrc_CQI_ReportConfig_r10;
+static int ett_lte_rrc_T_csi_SubframePatternConfig_r10;
+static int ett_lte_rrc_T_cQI_ReportConfig_r10_csi_SubframePatternConfig_r10_setup;
+static int ett_lte_rrc_CQI_ReportConfig_v1130;
+static int ett_lte_rrc_CQI_ReportConfig_v1250;
+static int ett_lte_rrc_T_csi_SubframePatternConfig_r12;
+static int ett_lte_rrc_T_cQI_ReportConfig_v1250_csi_SubframePatternConfig_r12_setup;
+static int ett_lte_rrc_CQI_ReportConfig_v1310;
+static int ett_lte_rrc_CQI_ReportConfig_v1320;
+static int ett_lte_rrc_CQI_ReportConfig_v1430;
+static int ett_lte_rrc_CQI_ReportConfig_v1530;
+static int ett_lte_rrc_CQI_ReportConfig_r15;
+static int ett_lte_rrc_T_cQI_ReportConfig_r15_setup;
+static int ett_lte_rrc_CQI_ReportConfigSCell_r10;
+static int ett_lte_rrc_CQI_ReportConfigSCell_r15;
+static int ett_lte_rrc_CQI_ReportPeriodic;
+static int ett_lte_rrc_T_cQI_ReportPeriodic_setup;
+static int ett_lte_rrc_T_cqi_FormatIndicatorPeriodic;
+static int ett_lte_rrc_T_subbandCQI;
+static int ett_lte_rrc_CQI_ReportPeriodic_r10;
+static int ett_lte_rrc_T_cQI_ReportPeriodic_r10_setup;
+static int ett_lte_rrc_T_cqi_FormatIndicatorPeriodic_r10;
+static int ett_lte_rrc_T_widebandCQI_r10;
+static int ett_lte_rrc_T_subbandCQI_r10;
+static int ett_lte_rrc_T_csi_ConfigIndex_r10;
+static int ett_lte_rrc_T_cQI_ReportPeriodic_r10_setup_csi_ConfigIndex_r10_setup;
+static int ett_lte_rrc_CQI_ReportPeriodic_v1130;
+static int ett_lte_rrc_CQI_ReportPeriodic_v1310;
+static int ett_lte_rrc_CQI_ReportPeriodic_v1320;
+static int ett_lte_rrc_CQI_ReportPeriodicSCell_r15;
+static int ett_lte_rrc_T_cQI_ReportPeriodicSCell_r15_setup;
+static int ett_lte_rrc_T_csi_SubframePatternDormant_r15;
+static int ett_lte_rrc_T_cQI_ReportPeriodicSCell_r15_setup_csi_SubframePatternDormant_r15_setup;
+static int ett_lte_rrc_T_cqi_FormatIndicatorDormant_r15;
+static int ett_lte_rrc_T_widebandCQI_r15;
+static int ett_lte_rrc_T_subbandCQI_r15;
+static int ett_lte_rrc_CQI_ReportPeriodicProcExtToAddModList_r11;
+static int ett_lte_rrc_CQI_ReportPeriodicProcExtToReleaseList_r11;
+static int ett_lte_rrc_CQI_ReportPeriodicProcExt_r11;
+static int ett_lte_rrc_T_cqi_FormatIndicatorPeriodic_r11;
+static int ett_lte_rrc_T_widebandCQI_r11;
+static int ett_lte_rrc_T_subbandCQI_r11;
+static int ett_lte_rrc_T_csi_ConfigIndex_r11;
+static int ett_lte_rrc_T_cQI_ReportPeriodicProcExt_r11_csi_ConfigIndex_r11_setup;
+static int ett_lte_rrc_CQI_ShortConfigSCell_r15;
+static int ett_lte_rrc_T_cQI_ShortConfigSCell_r15_setup;
+static int ett_lte_rrc_T_cqi_FormatIndicatorShort_r15;
+static int ett_lte_rrc_T_widebandCQI_Short_r15;
+static int ett_lte_rrc_T_subbandCQI_Short_r15;
+static int ett_lte_rrc_CQI_ReportPeriodicSCell_v1730;
+static int ett_lte_rrc_CRI_ReportConfig_r13;
+static int ett_lte_rrc_T_cRI_ReportConfig_r13_setup;
+static int ett_lte_rrc_CrossCarrierSchedulingConfig_r10;
+static int ett_lte_rrc_T_schedulingCellInfo_r10;
+static int ett_lte_rrc_T_own_r10;
+static int ett_lte_rrc_T_other_r10;
+static int ett_lte_rrc_CrossCarrierSchedulingConfig_r13;
+static int ett_lte_rrc_T_schedulingCellInfo_r13;
+static int ett_lte_rrc_T_own_r13;
+static int ett_lte_rrc_T_other_r13;
+static int ett_lte_rrc_CrossCarrierSchedulingConfigLAA_UL_r14;
+static int ett_lte_rrc_CRS_ChEstMPDCCH_ConfigCommon_r16;
+static int ett_lte_rrc_CRS_ChEstMPDCCH_ConfigDedicated_r16;
+static int ett_lte_rrc_CSI_IM_Config_r11;
+static int ett_lte_rrc_CSI_IM_ConfigExt_r12;
+static int ett_lte_rrc_CSI_Process_r11;
+static int ett_lte_rrc_T_csi_IM_ConfigIdList_r12;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_CSI_IM_ConfigId_r12;
+static int ett_lte_rrc_T_cqi_ReportAperiodicProc2_r12;
+static int ett_lte_rrc_T_cqi_ReportAperiodicProc_v1310;
+static int ett_lte_rrc_T_cqi_ReportAperiodicProc2_v1310;
+static int ett_lte_rrc_CSI_RS_Config_r10;
+static int ett_lte_rrc_T_csi_RS_r10;
+static int ett_lte_rrc_T_cSI_RS_Config_r10_csi_RS_r10_setup;
+static int ett_lte_rrc_CSI_RS_Config_v1250;
+static int ett_lte_rrc_T_ds_ZeroTxPowerCSI_RS_r12;
+static int ett_lte_rrc_T_cSI_RS_Config_v1250_ds_ZeroTxPowerCSI_RS_r12_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxDS_ZTP_CSI_RS_r12_OF_ZeroTxPowerCSI_RS_r12;
+static int ett_lte_rrc_CSI_RS_Config_v1310;
+static int ett_lte_rrc_CSI_RS_Config_v1430;
+static int ett_lte_rrc_CSI_RS_Config_v1480;
+static int ett_lte_rrc_CSI_RS_Config_v1530;
+static int ett_lte_rrc_CSI_RS_Config_r15;
+static int ett_lte_rrc_T_cSI_RS_Config_r15_setup;
+static int ett_lte_rrc_ZeroTxPowerCSI_RS_Conf_r12;
+static int ett_lte_rrc_ZeroTxPowerCSI_RS_r12;
+static int ett_lte_rrc_CSI_RS_ConfigBeamformed_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_7_OF_CSI_RS_ConfigNZPId_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_CSI_IM_ConfigId_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_P_C_AndCBSR_Pair_r13;
+static int ett_lte_rrc_T_ace_For4Tx_PerResourceConfigList_r13;
+static int ett_lte_rrc_CSI_RS_ConfigBeamformed_r14;
+static int ett_lte_rrc_T_ace_For4Tx_PerResourceConfigList_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_CSI_RS_ConfigNZP_r11;
+static int ett_lte_rrc_CSI_RS_ConfigBeamformed_v1430;
+static int ett_lte_rrc_CSI_RS_Config_NZP_v1430;
+static int ett_lte_rrc_CSI_RS_ConfigNZP_Activation_r14;
+static int ett_lte_rrc_CSI_RS_ConfigEMIMO_r13;
+static int ett_lte_rrc_T_cSI_RS_ConfigEMIMO_r13_setup;
+static int ett_lte_rrc_CSI_RS_ConfigEMIMO_v1430;
+static int ett_lte_rrc_T_cSI_RS_ConfigEMIMO_v1430_setup;
+static int ett_lte_rrc_CSI_RS_ConfigEMIMO_v1480;
+static int ett_lte_rrc_T_cSI_RS_ConfigEMIMO_v1480_setup;
+static int ett_lte_rrc_CSI_RS_ConfigEMIMO_v1530;
+static int ett_lte_rrc_T_cSI_RS_ConfigEMIMO_v1530_setup;
+static int ett_lte_rrc_CSI_RS_ConfigEMIMO2_r14;
+static int ett_lte_rrc_CSI_RS_ConfigEMIMO_Hybrid_r14;
+static int ett_lte_rrc_T_cSI_RS_ConfigEMIMO_Hybrid_r14_setup;
+static int ett_lte_rrc_CSI_RS_ConfigNonPrecoded_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_CSI_IM_ConfigId_r13;
+static int ett_lte_rrc_CSI_RS_ConfigNonPrecoded_v1430;
+static int ett_lte_rrc_CSI_RS_ConfigNonPrecoded_v1480;
+static int ett_lte_rrc_CSI_RS_ConfigNonPrecoded_v1530;
+static int ett_lte_rrc_CSI_RS_ConfigNZP_r11;
+static int ett_lte_rrc_T_qcl_CRS_Info_r11;
+static int ett_lte_rrc_T_mbsfn_SubframeConfigList_r11;
+static int ett_lte_rrc_T_cSI_RS_ConfigNZP_r11_qcl_CRS_Info_r11_mbsfn_SubframeConfigList_r11_setup;
+static int ett_lte_rrc_T_mbsfn_SubframeConfigList_v1430;
+static int ett_lte_rrc_T_cSI_RS_ConfigNZP_r11_eag_3_mbsfn_SubframeConfigList_v1430_setup;
+static int ett_lte_rrc_CSI_RS_ConfigNZP_EMIMO_r13;
+static int ett_lte_rrc_T_cSI_RS_ConfigNZP_EMIMO_r13_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_NZP_ResourceConfig_r13;
+static int ett_lte_rrc_CSI_RS_ConfigNZP_EMIMO_v1430;
+static int ett_lte_rrc_SEQUENCE_SIZE_0_4_OF_NZP_ResourceConfig_r13;
+static int ett_lte_rrc_NZP_ResourceConfig_r13;
+static int ett_lte_rrc_CSI_RS_ConfigZP_r11;
+static int ett_lte_rrc_CSI_RS_ConfigZP_ApList_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCSI_RS_ZP_r11_OF_CSI_RS_ConfigZP_r11;
+static int ett_lte_rrc_DMRS_Config_r11;
+static int ett_lte_rrc_T_dMRS_Config_r11_setup;
+static int ett_lte_rrc_DMRS_Config_v1310;
+static int ett_lte_rrc_EPDCCH_Config_r11;
+static int ett_lte_rrc_T_config_r11;
+static int ett_lte_rrc_T_ePDCCH_Config_r11_config_r11_setup;
+static int ett_lte_rrc_T_subframePatternConfig_r11;
+static int ett_lte_rrc_T_ePDCCH_Config_r11_config_r11_setup_subframePatternConfig_r11_setup;
+static int ett_lte_rrc_EPDCCH_SetConfigToAddModList_r11;
+static int ett_lte_rrc_EPDCCH_SetConfigToReleaseList_r11;
+static int ett_lte_rrc_EPDCCH_SetConfig_r11;
+static int ett_lte_rrc_T_resourceBlockAssignment_r11;
+static int ett_lte_rrc_T_csi_RS_ConfigZPId2_r12;
+static int ett_lte_rrc_T_numberPRB_Pairs_v1310;
+static int ett_lte_rrc_T_mpdcch_config_r13;
+static int ett_lte_rrc_T_ePDCCH_SetConfig_r11_eag_2_mpdcch_config_r13_setup;
+static int ett_lte_rrc_T_mpdcch_StartSF_UESS_r13;
+static int ett_lte_rrc_EIMTA_MainConfig_r12;
+static int ett_lte_rrc_T_eIMTA_MainConfig_r12_setup;
+static int ett_lte_rrc_EIMTA_MainConfigServCell_r12;
+static int ett_lte_rrc_T_eIMTA_MainConfigServCell_r12_setup;
+static int ett_lte_rrc_T_mbsfn_SubframeConfigList_v1250;
+static int ett_lte_rrc_T_eIMTA_MainConfigServCell_r12_setup_mbsfn_SubframeConfigList_v1250_setup;
+static int ett_lte_rrc_GWUS_Config_r16;
+static int ett_lte_rrc_GWUS_TimeParameters_r16;
+static int ett_lte_rrc_GWUS_ResourceConfig_r16;
+static int ett_lte_rrc_T_resourceMappingPattern_r16;
+static int ett_lte_rrc_GWUS_GroupsForServiceList_r16;
+static int ett_lte_rrc_GWUS_GroupNarrowBandList_r16;
+static int ett_lte_rrc_GWUS_NumGroupsList_r16;
+static int ett_lte_rrc_GWUS_ProbThreshList_r16;
+static int ett_lte_rrc_LogicalChannelConfig;
+static int ett_lte_rrc_T_ul_SpecificParameters;
+static int ett_lte_rrc_T_allowedTTI_Lengths_r15;
+static int ett_lte_rrc_T_logicalChannelConfig_eag_4_allowedTTI_Lengths_r15_setup;
+static int ett_lte_rrc_T_logicalChannelSR_Restriction_r15;
+static int ett_lte_rrc_T_channelAccessPriority_r15;
+static int ett_lte_rrc_LWA_Configuration_r13;
+static int ett_lte_rrc_T_lWA_Configuration_r13_setup;
+static int ett_lte_rrc_LWA_Config_r13;
+static int ett_lte_rrc_LWIP_Configuration_r13;
+static int ett_lte_rrc_T_lWIP_Configuration_r13_setup;
+static int ett_lte_rrc_LWIP_Config_r13;
+static int ett_lte_rrc_MAC_MainConfig;
+static int ett_lte_rrc_T_ul_SCH_Config;
+static int ett_lte_rrc_T_phr_Config;
+static int ett_lte_rrc_T_mAC_MainConfig_phr_Config_setup;
+static int ett_lte_rrc_T_mac_MainConfig_v1020;
+static int ett_lte_rrc_T_dualConnectivityPHR;
+static int ett_lte_rrc_T_mAC_MainConfig_eag_4_dualConnectivityPHR_setup;
+static int ett_lte_rrc_T_logicalChannelSR_Config_r12;
+static int ett_lte_rrc_T_mAC_MainConfig_eag_4_logicalChannelSR_Config_r12_setup;
+static int ett_lte_rrc_T_eDRX_Config_CycleStartOffset_r13;
+static int ett_lte_rrc_T_mAC_MainConfig_eag_5_eDRX_Config_CycleStartOffset_r13_setup;
+static int ett_lte_rrc_T_drx_Config_r13;
+static int ett_lte_rrc_T_skipUplinkTx_r14;
+static int ett_lte_rrc_T_mAC_MainConfig_eag_7_skipUplinkTx_r14_setup;
+static int ett_lte_rrc_T_dataInactivityTimerConfig_r14;
+static int ett_lte_rrc_T_mAC_MainConfig_eag_7_dataInactivityTimerConfig_r14_setup;
+static int ett_lte_rrc_T_shortTTI_AndSPT_r15;
+static int ett_lte_rrc_T_mAC_MainConfig_eag_9_shortTTI_AndSPT_r15_setup;
+static int ett_lte_rrc_T_dormantStateTimers_r15;
+static int ett_lte_rrc_T_mAC_MainConfig_eag_9_dormantStateTimers_r15_setup;
+static int ett_lte_rrc_T_offsetThresholdTA_r17;
+static int ett_lte_rrc_T_sr_ProhibitTimerOffset_r17;
+static int ett_lte_rrc_MAC_MainConfigSCell_r11;
+static int ett_lte_rrc_DRX_Config;
+static int ett_lte_rrc_T_dRX_Config_setup;
+static int ett_lte_rrc_T_longDRX_CycleStartOffset;
+static int ett_lte_rrc_T_shortDRX;
+static int ett_lte_rrc_DRX_Config_v1130;
+static int ett_lte_rrc_T_longDRX_CycleStartOffset_v1130;
+static int ett_lte_rrc_DRX_Config_v1310;
+static int ett_lte_rrc_T_longDRX_CycleStartOffset_v1310;
+static int ett_lte_rrc_DRX_Config_r13;
+static int ett_lte_rrc_DRX_Config_r15;
+static int ett_lte_rrc_STAG_ToReleaseList_r11;
+static int ett_lte_rrc_STAG_ToAddModList_r11;
+static int ett_lte_rrc_STAG_ToAddMod_r11;
+static int ett_lte_rrc_P_C_AndCBSR_r11;
+static int ett_lte_rrc_P_C_AndCBSR_r13;
+static int ett_lte_rrc_T_cbsr_Selection_r13;
+static int ett_lte_rrc_T_nonPrecoded_r13;
+static int ett_lte_rrc_T_beamformedK1a_r13;
+static int ett_lte_rrc_T_beamformedKN_r13;
+static int ett_lte_rrc_P_C_AndCBSR_r15;
+static int ett_lte_rrc_P_C_AndCBSR_Pair_r13a;
+static int ett_lte_rrc_P_C_AndCBSR_Pair_r13;
+static int ett_lte_rrc_P_C_AndCBSR_Pair_r15;
+static int ett_lte_rrc_PDCCH_ConfigSCell_r13;
+static int ett_lte_rrc_PDCCH_ConfigLAA_r14;
+static int ett_lte_rrc_PDCCH_CandidateReductions_r13;
+static int ett_lte_rrc_T_pDCCH_CandidateReductions_r13_setup;
+static int ett_lte_rrc_PDCCH_CandidateReductionsLAA_UL_r14;
+static int ett_lte_rrc_T_pDCCH_CandidateReductionsLAA_UL_r14_setup;
+static int ett_lte_rrc_PDCP_Config;
+static int ett_lte_rrc_T_rlc_AM;
+static int ett_lte_rrc_T_rlc_UM;
+static int ett_lte_rrc_T_headerCompression;
+static int ett_lte_rrc_T_rohc;
+static int ett_lte_rrc_T_profiles;
+static int ett_lte_rrc_T_ul_DataSplitThreshold_r13;
+static int ett_lte_rrc_T_statusFeedback_r13;
+static int ett_lte_rrc_T_pDCP_Config_eag_4_statusFeedback_r13_setup;
+static int ett_lte_rrc_T_ul_LWA_Config_r14;
+static int ett_lte_rrc_T_pDCP_Config_eag_5_ul_LWA_Config_r14_setup;
+static int ett_lte_rrc_T_uplinkOnlyHeaderCompression_r14;
+static int ett_lte_rrc_T_rohc_r14;
+static int ett_lte_rrc_T_profiles_r14;
+static int ett_lte_rrc_T_uplinkDataCompression_r15;
+static int ett_lte_rrc_T_pdcp_DuplicationConfig_r15;
+static int ett_lte_rrc_T_pDCP_Config_eag_6_pdcp_DuplicationConfig_r15_setup;
+static int ett_lte_rrc_T_ethernetHeaderCompression_r16;
+static int ett_lte_rrc_T_discardTimerExt_r17;
+static int ett_lte_rrc_EthernetHeaderCompression_r16;
+static int ett_lte_rrc_T_ehc_Common_r16;
+static int ett_lte_rrc_T_ehc_Downlink_r16;
+static int ett_lte_rrc_T_ehc_Uplink_r16;
+static int ett_lte_rrc_PDSCH_ConfigCommon;
+static int ett_lte_rrc_PDSCH_ConfigCommon_v1310;
+static int ett_lte_rrc_PDSCH_ConfigDedicated;
+static int ett_lte_rrc_PDSCH_ConfigDedicated_v1130;
+static int ett_lte_rrc_PDSCH_ConfigDedicated_v1280;
+static int ett_lte_rrc_PDSCH_ConfigDedicated_v1310;
+static int ett_lte_rrc_PDSCH_ConfigDedicated_v1430;
+static int ett_lte_rrc_PDSCH_ConfigDedicated_v1530;
+static int ett_lte_rrc_PDSCH_ConfigDedicated_v1610;
+static int ett_lte_rrc_T_ce_PDSCH_MultiTB_Config_r16;
+static int ett_lte_rrc_PDSCH_ConfigDedicated_v1700;
+static int ett_lte_rrc_T_ce_PDSCH_14HARQ_Config_r17;
+static int ett_lte_rrc_PDSCH_ConfigDedicatedSCell_v1430;
+static int ett_lte_rrc_CE_PDSCH_MultiTB_Config_r16;
+static int ett_lte_rrc_CE_PDSCH_14HARQ_Config_r17;
+static int ett_lte_rrc_RE_MappingQCLConfigToAddModList_r11;
+static int ett_lte_rrc_RE_MappingQCLConfigToReleaseList_r11;
+static int ett_lte_rrc_PDSCH_RE_MappingQCL_Config_r11;
+static int ett_lte_rrc_T_optionalSetOfFields_r11;
+static int ett_lte_rrc_T_mbsfn_SubframeConfigList_r11_01;
+static int ett_lte_rrc_T_pDSCH_RE_MappingQCL_Config_r11_optionalSetOfFields_r11_mbsfn_SubframeConfigList_r11_setup;
+static int ett_lte_rrc_T_mbsfn_SubframeConfigList_v1430_01;
+static int ett_lte_rrc_T_pDSCH_RE_MappingQCL_Config_r11_eag_1_mbsfn_SubframeConfigList_v1430_setup;
+static int ett_lte_rrc_T_codewordOneConfig_v1530;
+static int ett_lte_rrc_T_pDSCH_RE_MappingQCL_Config_r11_eag_2_codewordOneConfig_v1530_setup;
+static int ett_lte_rrc_PerCC_GapIndicationList_r14;
+static int ett_lte_rrc_PerCC_GapIndication_r14;
+static int ett_lte_rrc_PHICH_Config;
+static int ett_lte_rrc_PhysicalConfigDedicated;
+static int ett_lte_rrc_T_antennaInfo;
+static int ett_lte_rrc_T_antennaInfo_r10;
+static int ett_lte_rrc_T_additionalSpectrumEmissionCA_r10;
+static int ett_lte_rrc_T_physicalConfigDedicated_eag_3_additionalSpectrumEmissionCA_r10_setup;
+static int ett_lte_rrc_T_ce_Mode_r13;
+static int ett_lte_rrc_T_typeA_SRS_TPC_PDCCH_Group_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config_r14;
+static int ett_lte_rrc_T_must_Config_r14;
+static int ett_lte_rrc_T_physicalConfigDedicated_eag_9_must_Config_r14_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_SoundingRS_UL_ConfigDedicated;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SoundingRS_UL_ConfigDedicatedUpPTsExt_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_SoundingRS_UL_ConfigDedicatedAperiodic_r10;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13;
+static int ett_lte_rrc_T_semiStaticCFI_Config_r15;
+static int ett_lte_rrc_T_physicalConfigDedicated_eag_11_semiStaticCFI_Config_r15_setup;
+static int ett_lte_rrc_T_blindPDSCH_Repetition_Config_r15;
+static int ett_lte_rrc_T_physicalConfigDedicated_eag_11_blindPDSCH_Repetition_Config_r15_setup;
+static int ett_lte_rrc_T_resourceReservationConfigDedicatedDL_r16;
+static int ett_lte_rrc_T_resourceReservationConfigDedicatedUL_r16;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAdd_r16;
+static int ett_lte_rrc_T_uplinkPowerControlAddSRS_r16;
+static int ett_lte_rrc_T_soundingRS_VirtualCellID_r16;
+static int ett_lte_rrc_T_widebandPRG_r16;
+static int ett_lte_rrc_T_ntn_ConfigDedicated_r17;
+static int ett_lte_rrc_T_pucch_TxDuration_r17;
+static int ett_lte_rrc_T_pusch_TxDuration_r17;
+static int ett_lte_rrc_PhysicalConfigDedicated_v1370;
+static int ett_lte_rrc_PhysicalConfigDedicated_v13c0;
+static int ett_lte_rrc_PhysicalConfigDedicatedSCell_r10;
+static int ett_lte_rrc_T_nonUL_Configuration_r10;
+static int ett_lte_rrc_T_ul_Configuration_r10;
+static int ett_lte_rrc_T_pucch_SCell;
+static int ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_4_pucch_SCell_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_SoundingRS_AperiodicSet_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SoundingRS_AperiodicSetUpPTsExt_r14;
+static int ett_lte_rrc_T_must_Config_r14_01;
+static int ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_6_must_Config_r14_setup;
+static int ett_lte_rrc_T_semiStaticCFI_Config_r15_01;
+static int ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_8_semiStaticCFI_Config_r15_setup;
+static int ett_lte_rrc_T_blindPDSCH_Repetition_Config_r15_01;
+static int ett_lte_rrc_T_physicalConfigDedicatedSCell_r10_eag_8_blindPDSCH_Repetition_Config_r15_setup;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAdd_r16_01;
+static int ett_lte_rrc_T_uplinkPowerControlAddSRS_r16_01;
+static int ett_lte_rrc_T_soundingRS_VirtualCellID_r16_01;
+static int ett_lte_rrc_T_widebandPRG_r16_01;
+static int ett_lte_rrc_PhysicalConfigDedicatedSCell_v1370;
+static int ett_lte_rrc_T_pucch_SCell_v1370;
+static int ett_lte_rrc_T_physicalConfigDedicatedSCell_v1370_pucch_SCell_v1370_setup;
+static int ett_lte_rrc_PhysicalConfigDedicatedSCell_v13c0;
+static int ett_lte_rrc_T_pucch_SCell_v13c0;
+static int ett_lte_rrc_T_physicalConfigDedicatedSCell_v13c0_pucch_SCell_v13c0_setup;
+static int ett_lte_rrc_PhysicalConfigDedicatedSCell_v1730;
+static int ett_lte_rrc_T_cqi_ReportPeriodicSCell_v1730;
+static int ett_lte_rrc_CFI_Config_r15;
+static int ett_lte_rrc_CFI_PatternConfig_r15;
+static int ett_lte_rrc_T_cfi_PatternSubframe_r15;
+static int ett_lte_rrc_T_cfi_PatternSlotSubslot_r15;
+static int ett_lte_rrc_LAA_SCellConfiguration_r13;
+static int ett_lte_rrc_LAA_SCellConfiguration_v1430;
+static int ett_lte_rrc_T_crossCarrierSchedulingConfig_UL_r14;
+static int ett_lte_rrc_T_lAA_SCellConfiguration_v1430_crossCarrierSchedulingConfig_UL_r14_setup;
+static int ett_lte_rrc_LAA_SCellConfiguration_v1530;
+static int ett_lte_rrc_PUSCH_ModeConfigLAA_r15;
+static int ett_lte_rrc_LBT_Config_r14;
+static int ett_lte_rrc_CSI_RS_ConfigNZPToAddModList_r11;
+static int ett_lte_rrc_CSI_RS_ConfigNZPToAddModListExt_r13;
+static int ett_lte_rrc_CSI_RS_ConfigNZPToAddModList_r15;
+static int ett_lte_rrc_CSI_RS_ConfigNZPToReleaseList_r11;
+static int ett_lte_rrc_CSI_RS_ConfigNZPToReleaseListExt_r13;
+static int ett_lte_rrc_CSI_RS_ConfigNZPToReleaseList_r15;
+static int ett_lte_rrc_CSI_RS_ConfigZPToAddModList_r11;
+static int ett_lte_rrc_CSI_RS_ConfigZPToReleaseList_r11;
+static int ett_lte_rrc_PhysicalConfigDedicatedSTTI_r15;
+static int ett_lte_rrc_T_physicalConfigDedicatedSTTI_r15_setup;
+static int ett_lte_rrc_SoundingRS_AperiodicSet_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex_r14;
+static int ett_lte_rrc_SoundingRS_AperiodicSetUpPTsExt_r14;
+static int ett_lte_rrc_ShortTTI_r15;
+static int ett_lte_rrc_SoundingRS_VirtualCellID_r16;
+static int ett_lte_rrc_WidebandPRG_r16;
+static int ett_lte_rrc_ResourceReservationConfigDedicatedDL_r16;
+static int ett_lte_rrc_ResourceReservationConfigDedicatedUL_r16;
+static int ett_lte_rrc_PRACH_ConfigSIB;
+static int ett_lte_rrc_PRACH_ConfigSIB_v1310;
+static int ett_lte_rrc_T_mpdcch_startSF_CSS_RA_r13;
+static int ett_lte_rrc_PRACH_ConfigSIB_v1530;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCE_Level_r13_OF_EDT_PRACH_ParametersCE_r15;
+static int ett_lte_rrc_PRACH_Config;
+static int ett_lte_rrc_PRACH_Config_v1310;
+static int ett_lte_rrc_T_mpdcch_startSF_CSS_RA_r13_01;
+static int ett_lte_rrc_PRACH_Config_v1430;
+static int ett_lte_rrc_PRACH_ConfigSCell_r10;
+static int ett_lte_rrc_PRACH_ConfigInfo;
+static int ett_lte_rrc_PRACH_ParametersListCE_r13;
+static int ett_lte_rrc_PRACH_ParametersCE_r13;
+static int ett_lte_rrc_T_mpdcch_NarrowbandsToMonitor_r13;
+static int ett_lte_rrc_EDT_PRACH_ParametersCE_r15;
+static int ett_lte_rrc_T_edt_PRACH_ParametersCE_r15;
+static int ett_lte_rrc_T_mpdcch_NarrowbandsToMonitor_r15;
+static int ett_lte_rrc_RSRP_ThresholdsPrachInfoList_r13;
+static int ett_lte_rrc_PRACH_TxDuration_r17;
+static int ett_lte_rrc_PUCCH_ConfigCommon;
+static int ett_lte_rrc_PUCCH_ConfigCommon_v1310;
+static int ett_lte_rrc_PUCCH_ConfigCommon_v1430;
+static int ett_lte_rrc_PUCCH_ConfigDedicated;
+static int ett_lte_rrc_T_ackNackRepetition;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_ackNackRepetition_setup;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_v1020;
+static int ett_lte_rrc_T_pucch_Format_r10;
+static int ett_lte_rrc_T_channelSelection_r10;
+static int ett_lte_rrc_T_n1PUCCH_AN_CS_r10;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_v1020_pucch_Format_r10_channelSelection_r10_n1PUCCH_AN_CS_r10_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_N1PUCCH_AN_CS_r10;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_v1130;
+static int ett_lte_rrc_T_n1PUCCH_AN_CS_v1130;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_v1130_n1PUCCH_AN_CS_v1130_setup;
+static int ett_lte_rrc_T_n1PUCCH_AN_CS_ListP1_r11;
+static int ett_lte_rrc_T_nPUCCH_Param_r11;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_v1130_nPUCCH_Param_r11_setup;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_v1250;
+static int ett_lte_rrc_T_nkaPUCCH_Param_r12;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_v1250_nkaPUCCH_Param_r12_setup;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_r13;
+static int ett_lte_rrc_T_ackNackRepetition_r13;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_ackNackRepetition_r13_setup;
+static int ett_lte_rrc_T_pucch_Format_r13;
+static int ett_lte_rrc_T_format3_r13;
+static int ett_lte_rrc_T_n3PUCCH_AN_List_r13;
+static int ett_lte_rrc_T_twoAntennaPortActivatedPUCCH_Format3_r13;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_pucch_Format_r13_format3_r13_twoAntennaPortActivatedPUCCH_Format3_r13_setup;
+static int ett_lte_rrc_T_n3PUCCH_AN_ListP1_r13;
+static int ett_lte_rrc_T_channelSelection_r13;
+static int ett_lte_rrc_T_n1PUCCH_AN_CS_r13;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_pucch_Format_r13_channelSelection_r13_n1PUCCH_AN_CS_r13_setup;
+static int ett_lte_rrc_N1PUCCH_AN_CS_List_r13;
+static int ett_lte_rrc_T_dummy1;
+static int ett_lte_rrc_T_format4_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_4_OF_Format4_resource_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_Format4_resource_r13;
+static int ett_lte_rrc_T_format5_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_4_OF_Format5_resource_r13;
+static int ett_lte_rrc_T_nPUCCH_Param_r13;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_nPUCCH_Param_r13_setup;
+static int ett_lte_rrc_T_nkaPUCCH_Param_r13;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_nkaPUCCH_Param_r13_setup;
+static int ett_lte_rrc_T_pucch_NumRepetitionCE_r13;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_r13_pucch_NumRepetitionCE_r13_setup;
+static int ett_lte_rrc_T_modeA;
+static int ett_lte_rrc_T_modeB;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_v1370;
+static int ett_lte_rrc_T_pucch_Format_v1370;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_v13c0;
+static int ett_lte_rrc_T_channelSelection_v13c0;
+static int ett_lte_rrc_T_n1PUCCH_AN_CS_v13c0;
+static int ett_lte_rrc_T_pUCCH_ConfigDedicated_v13c0_channelSelection_v13c0_n1PUCCH_AN_CS_v13c0_setup;
+static int ett_lte_rrc_T_n1PUCCH_AN_CS_ListP1_v13c0;
+static int ett_lte_rrc_PUCCH_Format3_Conf_r13;
+static int ett_lte_rrc_T_n3PUCCH_AN_List_r13_01;
+static int ett_lte_rrc_T_twoAntennaPortActivatedPUCCH_Format3_r13_01;
+static int ett_lte_rrc_T_pUCCH_Format3_Conf_r13_twoAntennaPortActivatedPUCCH_Format3_r13_setup;
+static int ett_lte_rrc_T_n3PUCCH_AN_ListP1_r13_01;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_v1430;
+static int ett_lte_rrc_PUCCH_ConfigDedicated_v1530;
+static int ett_lte_rrc_Format4_resource_r13;
+static int ett_lte_rrc_Format5_resource_r13;
+static int ett_lte_rrc_N1PUCCH_AN_CS_r10;
+static int ett_lte_rrc_N1PUCCH_AN_InfoList_r13;
+static int ett_lte_rrc_PUCCH_TxDuration_r17;
+static int ett_lte_rrc_PUR_Config_r16;
+static int ett_lte_rrc_T_pur_StartTimeParameters_r16;
+static int ett_lte_rrc_T_pur_RSRP_ChangeThreshold_r16;
+static int ett_lte_rrc_PUR_MPDCCH_Config_r16;
+static int ett_lte_rrc_T_mpdcch_PRB_PairsConfig_r16;
+static int ett_lte_rrc_T_mpdcch_StartSF_UESS_r16;
+static int ett_lte_rrc_PUR_PUCCH_Config_r16;
+static int ett_lte_rrc_PUR_PUSCH_Config_r16;
+static int ett_lte_rrc_T_pur_GrantInfo_r16;
+static int ett_lte_rrc_T_ce_ModeA;
+static int ett_lte_rrc_T_ce_ModeB;
+static int ett_lte_rrc_PUR_RSRP_ChangeThreshold_r16;
+static int ett_lte_rrc_PUR_PeriodicityAndOffset_r16;
+static int ett_lte_rrc_PUSCH_ConfigCommon;
+static int ett_lte_rrc_T_pusch_ConfigBasic;
+static int ett_lte_rrc_PUSCH_ConfigCommon_v1270;
+static int ett_lte_rrc_PUSCH_ConfigCommon_v1310;
+static int ett_lte_rrc_PUSCH_ConfigDedicated;
+static int ett_lte_rrc_PUSCH_ConfigDedicated_v1020;
+static int ett_lte_rrc_T_betaOffsetMC_r10;
+static int ett_lte_rrc_PUSCH_ConfigDedicated_v1130;
+static int ett_lte_rrc_T_pusch_DMRS_r11;
+static int ett_lte_rrc_T_pUSCH_ConfigDedicated_v1130_pusch_DMRS_r11_setup;
+static int ett_lte_rrc_PUSCH_ConfigDedicated_v1250;
+static int ett_lte_rrc_T_uciOnPUSCH;
+static int ett_lte_rrc_T_pUSCH_ConfigDedicated_v1250_uciOnPUSCH_setup;
+static int ett_lte_rrc_T_betaOffsetMC_r12;
+static int ett_lte_rrc_PUSCH_ConfigDedicated_r13;
+static int ett_lte_rrc_T_betaOffsetMC_r13;
+static int ett_lte_rrc_T_pusch_DMRS_r11_01;
+static int ett_lte_rrc_T_pUSCH_ConfigDedicated_r13_pusch_DMRS_r11_setup;
+static int ett_lte_rrc_T_uciOnPUSCH_01;
+static int ett_lte_rrc_T_pUSCH_ConfigDedicated_r13_uciOnPUSCH_setup;
+static int ett_lte_rrc_T_betaOffsetMC_r12_01;
+static int ett_lte_rrc_PUSCH_ConfigDedicated_v1430;
+static int ett_lte_rrc_PUSCH_ConfigDedicated_v1530;
+static int ett_lte_rrc_T_ce_PUSCH_FlexibleStartPRB_AllocConfig_r15;
+static int ett_lte_rrc_T_pUSCH_ConfigDedicated_v1530_ce_PUSCH_FlexibleStartPRB_AllocConfig_r15_setup;
+static int ett_lte_rrc_T_ce_PUSCH_SubPRB_Config_r15;
+static int ett_lte_rrc_T_pUSCH_ConfigDedicated_v1530_ce_PUSCH_SubPRB_Config_r15_setup;
+static int ett_lte_rrc_PUSCH_ConfigDedicated_v1610;
+static int ett_lte_rrc_T_ce_PUSCH_MultiTB_Config_r16;
+static int ett_lte_rrc_PUSCH_ConfigDedicatedSCell_r10;
+static int ett_lte_rrc_PUSCH_ConfigDedicatedSCell_v1430;
+static int ett_lte_rrc_PUSCH_ConfigDedicatedScell_v1530;
+static int ett_lte_rrc_T_uci_OnPUSCH_r15;
+static int ett_lte_rrc_T_pUSCH_ConfigDedicatedScell_v1530_uci_OnPUSCH_r15_setup;
+static int ett_lte_rrc_TDD_PUSCH_UpPTS_r14;
+static int ett_lte_rrc_T_tDD_PUSCH_UpPTS_r14_setup;
+static int ett_lte_rrc_CE_PUSCH_MultiTB_Config_r16;
+static int ett_lte_rrc_PUSCH_TxDuration_r17;
+static int ett_lte_rrc_Enable256QAM_r14;
+static int ett_lte_rrc_T_enable256QAM_r14_setup;
+static int ett_lte_rrc_T_tpc_SubframeSet_Configured_r14;
+static int ett_lte_rrc_T_tpc_SubframeSet_NotConfigured_r14;
+static int ett_lte_rrc_PUSCH_EnhancementsConfig_r14;
+static int ett_lte_rrc_T_pUSCH_EnhancementsConfig_r14_setup;
+static int ett_lte_rrc_T_interval_ULHoppingPUSCH_Enh_r14;
+static int ett_lte_rrc_UL_ReferenceSignalsPUSCH;
+static int ett_lte_rrc_RACH_ConfigCommon;
+static int ett_lte_rrc_T_preambleInfo;
+static int ett_lte_rrc_T_preamblesGroupAConfig;
+static int ett_lte_rrc_T_ra_SupervisionInfo;
+static int ett_lte_rrc_RACH_ConfigCommon_v1250;
+static int ett_lte_rrc_T_txFailParams_r12;
+static int ett_lte_rrc_RACH_ConfigCommonSCell_r11;
+static int ett_lte_rrc_T_ra_SupervisionInfo_r11;
+static int ett_lte_rrc_RACH_CE_LevelInfoList_r13;
+static int ett_lte_rrc_RACH_CE_LevelInfo_r13;
+static int ett_lte_rrc_T_preambleMappingInfo_r13;
+static int ett_lte_rrc_T_edt_Parameters_r15;
+static int ett_lte_rrc_PowerRampingParameters;
+static int ett_lte_rrc_RACH_ConfigDedicated;
+static int ett_lte_rrc_RadioResourceConfigCommonSIB;
+static int ett_lte_rrc_T_ntn_ConfigCommon_r17;
+static int ett_lte_rrc_RadioResourceConfigCommon;
+static int ett_lte_rrc_T_ntn_ConfigCommon_r17_01;
+static int ett_lte_rrc_RadioResourceConfigCommonPSCell_r12;
+static int ett_lte_rrc_RadioResourceConfigCommonPSCell_v12f0;
+static int ett_lte_rrc_RadioResourceConfigCommonPSCell_v1440;
+static int ett_lte_rrc_RadioResourceConfigCommonSCell_r10;
+static int ett_lte_rrc_T_nonUL_Configuration_r10_01;
+static int ett_lte_rrc_T_ul_Configuration_r10_01;
+static int ett_lte_rrc_T_ul_FreqInfo_r10;
+static int ett_lte_rrc_T_ul_Configuration_r14;
+static int ett_lte_rrc_T_ul_FreqInfo_r14;
+static int ett_lte_rrc_RadioResourceConfigCommonSCell_v10l0;
+static int ett_lte_rrc_T_ul_Configuration_v10l0;
+static int ett_lte_rrc_RadioResourceConfigCommonSCell_v1440;
+static int ett_lte_rrc_T_ul_Configuration_v1440;
+static int ett_lte_rrc_T_ul_FreqInfo_v1440;
+static int ett_lte_rrc_BCCH_Config;
+static int ett_lte_rrc_BCCH_Config_v1310;
+static int ett_lte_rrc_FreqHoppingParameters_r13;
+static int ett_lte_rrc_T_dummy2_01;
+static int ett_lte_rrc_T_dummy3;
+static int ett_lte_rrc_T_interval_ULHoppingConfigCommonModeA_r13;
+static int ett_lte_rrc_T_interval_ULHoppingConfigCommonModeB_r13;
+static int ett_lte_rrc_PCCH_Config;
+static int ett_lte_rrc_PCCH_Config_v1310;
+static int ett_lte_rrc_PCCH_Config_v1700;
+static int ett_lte_rrc_HighSpeedConfig_r14;
+static int ett_lte_rrc_HighSpeedConfig_v1530;
+static int ett_lte_rrc_HighSpeedConfigSCell_r14;
+static int ett_lte_rrc_HighSpeedConfig_v1610;
+static int ett_lte_rrc_RadioResourceConfigDedicated;
+static int ett_lte_rrc_T_mac_MainConfig;
+static int ett_lte_rrc_T_crs_IntfMitigConfig_r15_01;
+static int ett_lte_rrc_T_radioResourceConfigDedicated_eag_7_crs_IntfMitigConfig_r15_setup;
+static int ett_lte_rrc_T_radioResourceConfigDedicated_eag_7_dummy;
+static int ett_lte_rrc_T_crs_ChEstMPDCCH_ConfigDedicated_r16;
+static int ett_lte_rrc_RadioResourceConfigDedicated_v1370;
+static int ett_lte_rrc_RadioResourceConfigDedicated_v13c0;
+static int ett_lte_rrc_RadioResourceConfigDedicatedPSCell_r12;
+static int ett_lte_rrc_RadioResourceConfigDedicatedPSCell_v1370;
+static int ett_lte_rrc_RadioResourceConfigDedicatedPSCell_v13c0;
+static int ett_lte_rrc_RadioResourceConfigDedicatedSCG_r12;
+static int ett_lte_rrc_RadioResourceConfigDedicatedSCell_r10;
+static int ett_lte_rrc_RadioResourceConfigDedicatedSCell_v13c0;
+static int ett_lte_rrc_SRB_ToAddModList;
+static int ett_lte_rrc_SRB_ToAddModListExt_r15;
+static int ett_lte_rrc_SRB_ToAddMod;
+static int ett_lte_rrc_T_rlc_Config;
+static int ett_lte_rrc_T_logicalChannelConfig;
+static int ett_lte_rrc_DRB_ToAddModList;
+static int ett_lte_rrc_DRB_ToAddModList_r15;
+static int ett_lte_rrc_DRB_ToAddModListSCG_r12;
+static int ett_lte_rrc_DRB_ToAddModListSCG_r15;
+static int ett_lte_rrc_DRB_ToAddMod;
+static int ett_lte_rrc_DRB_ToAddModSCG_r12;
+static int ett_lte_rrc_T_drb_Type_r12_01;
+static int ett_lte_rrc_T_scg_r12;
+static int ett_lte_rrc_DRB_ToReleaseList;
+static int ett_lte_rrc_DRB_ToReleaseList_r15;
+static int ett_lte_rrc_SRB_ToReleaseList_r15;
+static int ett_lte_rrc_MeasSubframePatternPCell_r10;
+static int ett_lte_rrc_NeighCellsCRS_Info_r11;
+static int ett_lte_rrc_CRS_AssistanceInfoList_r11;
+static int ett_lte_rrc_CRS_AssistanceInfo_r11;
+static int ett_lte_rrc_NeighCellsCRS_Info_r13;
+static int ett_lte_rrc_CRS_AssistanceInfoList_r13;
+static int ett_lte_rrc_CRS_AssistanceInfo_r13;
+static int ett_lte_rrc_NeighCellsCRS_Info_r15;
+static int ett_lte_rrc_CRS_AssistanceInfoList_r15;
+static int ett_lte_rrc_CRS_AssistanceInfo_r15;
+static int ett_lte_rrc_NAICS_AssistanceInfo_r12;
+static int ett_lte_rrc_T_nAICS_AssistanceInfo_r12_setup;
+static int ett_lte_rrc_NeighCellsToReleaseList_r12;
+static int ett_lte_rrc_NeighCellsToAddModList_r12;
+static int ett_lte_rrc_NeighCellsInfo_r12;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxP_a_PerNeighCell_r12_OF_P_a;
+static int ett_lte_rrc_RLC_BearerConfig_r15;
+static int ett_lte_rrc_T_rLC_BearerConfig_r15_setup;
+static int ett_lte_rrc_T_logicalChannelIdentityConfig_r15;
+static int ett_lte_rrc_RCLWI_Configuration_r13;
+static int ett_lte_rrc_T_rCLWI_Configuration_r13_setup;
+static int ett_lte_rrc_RCLWI_Config_r13;
+static int ett_lte_rrc_T_command;
+static int ett_lte_rrc_T_steerToWLAN_r13;
+static int ett_lte_rrc_ResourceReservationConfigDL_r16;
+static int ett_lte_rrc_T_resourceReservationFreq_r16;
+static int ett_lte_rrc_T_slotBitmap_r16;
+static int ett_lte_rrc_ResourceReservationConfigUL_r16;
+static int ett_lte_rrc_T_slotBitmap_r16_01;
+static int ett_lte_rrc_PeriodicityStartPos_r16;
+static int ett_lte_rrc_RLC_Config;
+static int ett_lte_rrc_T_am;
+static int ett_lte_rrc_T_um_Bi_Directional;
+static int ett_lte_rrc_T_um_Uni_Directional_UL;
+static int ett_lte_rrc_T_um_Uni_Directional_DL;
+static int ett_lte_rrc_RLC_Config_v1250;
+static int ett_lte_rrc_RLC_Config_v1310;
+static int ett_lte_rrc_RLC_Config_v1430;
+static int ett_lte_rrc_T_rLC_Config_v1430_setup;
+static int ett_lte_rrc_RLC_Config_v1510;
+static int ett_lte_rrc_RLC_Config_v1530;
+static int ett_lte_rrc_T_rLC_Config_v1530_setup;
+static int ett_lte_rrc_RLC_Config_v1700;
+static int ett_lte_rrc_T_t_ReorderingExt_r17;
+static int ett_lte_rrc_RLC_Config_r15;
+static int ett_lte_rrc_T_mode_r15;
+static int ett_lte_rrc_T_am_r15;
+static int ett_lte_rrc_T_um_Bi_Directional_r15;
+static int ett_lte_rrc_T_um_Uni_Directional_UL_r15;
+static int ett_lte_rrc_T_um_Uni_Directional_DL_r15;
+static int ett_lte_rrc_UL_AM_RLC;
+static int ett_lte_rrc_UL_AM_RLC_r15;
+static int ett_lte_rrc_DL_AM_RLC;
+static int ett_lte_rrc_DL_AM_RLC_r15;
+static int ett_lte_rrc_UL_UM_RLC;
+static int ett_lte_rrc_DL_UM_RLC;
+static int ett_lte_rrc_DL_UM_RLC_r15;
+static int ett_lte_rrc_RLF_TimersAndConstants_r9;
+static int ett_lte_rrc_T_rLF_TimersAndConstants_r9_setup;
+static int ett_lte_rrc_RLF_TimersAndConstants_r13;
+static int ett_lte_rrc_T_rLF_TimersAndConstants_r13_setup;
+static int ett_lte_rrc_RLF_TimersAndConstantsSCG_r12;
+static int ett_lte_rrc_T_rLF_TimersAndConstantsSCG_r12_setup;
+static int ett_lte_rrc_RLF_TimersAndConstantsMCG_Failure_r16;
+static int ett_lte_rrc_T_rLF_TimersAndConstantsMCG_Failure_r16_setup;
+static int ett_lte_rrc_RN_SubframeConfig_r10;
+static int ett_lte_rrc_T_subframeConfigPattern_r10;
+static int ett_lte_rrc_T_rpdcch_Config_r10;
+static int ett_lte_rrc_T_resourceBlockAssignment_r10;
+static int ett_lte_rrc_T_type01_r10;
+static int ett_lte_rrc_T_type2_r10;
+static int ett_lte_rrc_T_demodulationRS_r10;
+static int ett_lte_rrc_T_pucch_Config_r10;
+static int ett_lte_rrc_T_tdd_01;
+static int ett_lte_rrc_T_channelSelectionMultiplexingBundling;
+static int ett_lte_rrc_T_n1PUCCH_AN_List_r10;
+static int ett_lte_rrc_T_fallbackForFormat3;
+static int ett_lte_rrc_T_fdd_01;
+static int ett_lte_rrc_RSS_Config_r15;
+static int ett_lte_rrc_SchedulingRequestConfig;
+static int ett_lte_rrc_T_schedulingRequestConfig_setup;
+static int ett_lte_rrc_SchedulingRequestConfig_v1020;
+static int ett_lte_rrc_SchedulingRequestConfigSCell_r13;
+static int ett_lte_rrc_T_schedulingRequestConfigSCell_r13_setup;
+static int ett_lte_rrc_SchedulingRequestConfig_v1530;
+static int ett_lte_rrc_T_schedulingRequestConfig_v1530_setup;
+static int ett_lte_rrc_SR_SubslotSPUCCH_ResourceList_r15;
+static int ett_lte_rrc_SlotOrSubslotPDSCH_Config_r15;
+static int ett_lte_rrc_T_slotOrSubslotPDSCH_Config_r15_setup;
+static int ett_lte_rrc_SlotOrSubslotPUSCH_Config_r15;
+static int ett_lte_rrc_T_slotOrSubslotPUSCH_Config_r15_setup;
+static int ett_lte_rrc_T_betaOffsetSubslot_ACK_Index_r15;
+static int ett_lte_rrc_T_betaOffset2Subslot_ACK_Index_r15;
+static int ett_lte_rrc_T_betaOffsetSubslot_RI_Index_r15;
+static int ett_lte_rrc_SoundingRS_UL_ConfigCommon;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigCommon_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicated;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicated_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicated_v1020;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicated_v1310;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicated_v1310_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicatedUpPTsExt_r13;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedUpPTsExt_r13_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodic_r10;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_r10_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAp_r10;
+static int ett_lte_rrc_T_srs_ActivateAp_r10;
+static int ett_lte_rrc_T_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodic_v1310;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_v1310_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAp_v1310;
+static int ett_lte_rrc_T_srs_ActivateAp_v1310;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_v1310_setup_srs_ActivateAp_v1310_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAp_r13;
+static int ett_lte_rrc_T_srs_ActivateAp_r13;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13_setup_srs_ActivateAp_r13_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAperiodic_v1430;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAperiodic_v1430_setup;
+static int ett_lte_rrc_SoundingRS_UL_ConfigDedicatedAdd_r16;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_SRS_ConfigAdd_r16;
+static int ett_lte_rrc_T_srs_ActivateAp_r13_01;
+static int ett_lte_rrc_T_soundingRS_UL_ConfigDedicatedAdd_r16_srs_ActivateAp_r13_setup;
+static int ett_lte_rrc_SRS_ConfigAp_r10;
+static int ett_lte_rrc_SRS_ConfigAp_v1310;
+static int ett_lte_rrc_SRS_ConfigAp_r13;
+static int ett_lte_rrc_SRS_ConfigAdd_r16;
+static int ett_lte_rrc_SPDCCH_Config_r15;
+static int ett_lte_rrc_T_sPDCCH_Config_r15_setup;
+static int ett_lte_rrc_SPDCCH_Set_r15;
+static int ett_lte_rrc_SPDCCH_Elements_r15;
+static int ett_lte_rrc_T_sPDCCH_Elements_r15_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_4_OF_DCI7_Candidates_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_DCI7_CandidatesPerAL_SPDCCH_r15;
+static int ett_lte_rrc_T_resourceBlockAssignment_r15;
+static int ett_lte_rrc_T_al_StartingPointSPDCCH_r15;
+static int ett_lte_rrc_DCI7_CandidatesPerAL_SPDCCH_r15;
+static int ett_lte_rrc_SPS_Config;
+static int ett_lte_rrc_SPS_Config_v1430;
+static int ett_lte_rrc_SPS_ConfigUL_ToAddModList_r14;
+static int ett_lte_rrc_SPS_ConfigUL_ToReleaseList_r14;
+static int ett_lte_rrc_SPS_ConfigSL_ToAddModList_r14;
+static int ett_lte_rrc_SPS_ConfigSL_ToReleaseList_r14;
+static int ett_lte_rrc_SPS_Config_v1530;
+static int ett_lte_rrc_SPS_Config_v1540;
+static int ett_lte_rrc_SPS_ConfigUL_STTI_ToAddModList_r15;
+static int ett_lte_rrc_SPS_ConfigUL_STTI_ToReleaseList_r15;
+static int ett_lte_rrc_SPS_ConfigUL_ToAddModList_r15;
+static int ett_lte_rrc_SPS_ConfigUL_ToReleaseList_r15;
+static int ett_lte_rrc_SPS_ConfigDL;
+static int ett_lte_rrc_T_sPS_ConfigDL_setup;
+static int ett_lte_rrc_T_twoAntennaPortActivated_r10;
+static int ett_lte_rrc_T_sPS_ConfigDL_setup_eag_1_twoAntennaPortActivated_r10_setup;
+static int ett_lte_rrc_SPS_ConfigUL;
+static int ett_lte_rrc_T_sPS_ConfigUL_setup;
+static int ett_lte_rrc_T_p0_Persistent;
+static int ett_lte_rrc_T_p0_PersistentSubframeSet2_r12;
+static int ett_lte_rrc_T_sPS_ConfigUL_setup_eag_1_p0_PersistentSubframeSet2_r12_setup;
+static int ett_lte_rrc_SPS_ConfigSL_r14;
+static int ett_lte_rrc_N1PUCCH_AN_PersistentList;
+static int ett_lte_rrc_N1SPUCCH_AN_PersistentList_r15;
+static int ett_lte_rrc_SPS_ConfigDL_STTI_r15;
+static int ett_lte_rrc_T_sPS_ConfigDL_STTI_r15_setup;
+static int ett_lte_rrc_T_twoAntennaPortActivated_r15;
+static int ett_lte_rrc_T_sPS_ConfigDL_STTI_r15_setup_twoAntennaPortActivated_r15_setup;
+static int ett_lte_rrc_SPS_ConfigUL_STTI_r15;
+static int ett_lte_rrc_T_sPS_ConfigUL_STTI_r15_setup;
+static int ett_lte_rrc_T_p0_Persistent_r15;
+static int ett_lte_rrc_T_p0_PersistentSubframeSet2_r15;
+static int ett_lte_rrc_T_sPS_ConfigUL_STTI_r15_setup_p0_PersistentSubframeSet2_r15_setup;
+static int ett_lte_rrc_SPUCCH_Config_r15;
+static int ett_lte_rrc_T_sPUCCH_Config_r15_setup;
+static int ett_lte_rrc_T_sPUCCH_Config_r15_setup_dummy;
+static int ett_lte_rrc_T_n3SPUCCH_AN_List_r15;
+static int ett_lte_rrc_SPUCCH_Config_v1550;
+static int ett_lte_rrc_T_sPUCCH_Config_v1550_setup;
+static int ett_lte_rrc_T_twoAntennaPortActivatedSPUCCH_Format3_v1550;
+static int ett_lte_rrc_T_n3SPUCCH_AN_List_v1550;
+static int ett_lte_rrc_SPUCCH_Set_r15;
+static int ett_lte_rrc_SPUCCH_Elements_r15;
+static int ett_lte_rrc_T_sPUCCH_Elements_r15_setup;
+static int ett_lte_rrc_T_n1SubslotSPUCCH_AN_List_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_N4SPUCCH_Resource_r15;
+static int ett_lte_rrc_N4SPUCCH_Resource_r15;
+static int ett_lte_rrc_SRS_TPC_PDCCH_Config_r14;
+static int ett_lte_rrc_T_sRS_TPC_PDCCH_Config_r14_setup;
+static int ett_lte_rrc_SRS_CC_SetIndex_r14;
+static int ett_lte_rrc_TDD_Config;
+static int ett_lte_rrc_TDD_Config_v1130;
+static int ett_lte_rrc_TDD_Config_v1430;
+static int ett_lte_rrc_TDD_Config_v1450;
+static int ett_lte_rrc_TDD_ConfigSL_r12;
+static int ett_lte_rrc_TDM_PatternConfig_r15;
+static int ett_lte_rrc_T_tDM_PatternConfig_r15_setup;
+static int ett_lte_rrc_TimeReferenceInfo_r15;
+static int ett_lte_rrc_ReferenceTime_r15;
+static int ett_lte_rrc_TPC_PDCCH_Config;
+static int ett_lte_rrc_T_tPC_PDCCH_Config_setup;
+static int ett_lte_rrc_TPC_PDCCH_ConfigSCell_r13;
+static int ett_lte_rrc_T_tPC_PDCCH_ConfigSCell_r13_setup;
+static int ett_lte_rrc_TPC_Index;
+static int ett_lte_rrc_TunnelConfigLWIP_r13;
+static int ett_lte_rrc_IKE_Identity_r13;
+static int ett_lte_rrc_IP_Address_r13;
+static int ett_lte_rrc_UplinkPowerControlCommon;
+static int ett_lte_rrc_UplinkPowerControlCommon_v1020;
+static int ett_lte_rrc_UplinkPowerControlCommon_v1310;
+static int ett_lte_rrc_UplinkPowerControlCommon_v1530;
+static int ett_lte_rrc_UplinkPowerControlCommon_v1610;
+static int ett_lte_rrc_UplinkPowerControlCommonPSCell_r12;
+static int ett_lte_rrc_UplinkPowerControlCommonSCell_r10;
+static int ett_lte_rrc_UplinkPowerControlCommonSCell_v1130;
+static int ett_lte_rrc_UplinkPowerControlCommonSCell_v1310;
+static int ett_lte_rrc_UplinkPowerControlCommonPUSCH_LessCell_v1430;
+static int ett_lte_rrc_UplinkPowerControlDedicated;
+static int ett_lte_rrc_UplinkPowerControlDedicated_v1020;
+static int ett_lte_rrc_UplinkPowerControlDedicated_v1130;
+static int ett_lte_rrc_UplinkPowerControlDedicated_v1250;
+static int ett_lte_rrc_T_set2PowerControlParameter;
+static int ett_lte_rrc_T_uplinkPowerControlDedicated_v1250_set2PowerControlParameter_setup;
+static int ett_lte_rrc_UplinkPowerControlDedicated_v1530;
+static int ett_lte_rrc_UplinkPowerControlDedicatedSTTI_r15;
+static int ett_lte_rrc_UplinkPUSCH_LessPowerControlDedicated_v1430;
+static int ett_lte_rrc_UplinkPowerControlAddSRS_r16;
+static int ett_lte_rrc_UplinkPowerControlDedicatedSCell_r10;
+static int ett_lte_rrc_UplinkPowerControlDedicatedSCell_v1310;
+static int ett_lte_rrc_DeltaFList_PUCCH;
+static int ett_lte_rrc_DeltaFList_SPUCCH_r15;
+static int ett_lte_rrc_T_deltaFList_SPUCCH_r15_setup;
+static int ett_lte_rrc_DeltaTxD_OffsetListPUCCH_r10;
+static int ett_lte_rrc_DeltaTxD_OffsetListPUCCH_v1130;
+static int ett_lte_rrc_DeltaTxD_OffsetListSPUCCH_r15;
+static int ett_lte_rrc_WLAN_Id_List_r13;
+static int ett_lte_rrc_WLAN_MobilityConfig_r13;
+static int ett_lte_rrc_WUS_Config_r15;
+static int ett_lte_rrc_WUS_Config_v1560;
+static int ett_lte_rrc_WUS_Config_v1610;
+static int ett_lte_rrc_SecurityAlgorithmConfig;
+static int ett_lte_rrc_CarrierFreqCDMA2000;
+static int ett_lte_rrc_CarrierFreqGERAN;
+static int ett_lte_rrc_CarrierFreqsGERAN;
+static int ett_lte_rrc_T_followingARFCNs;
+static int ett_lte_rrc_T_equallySpacedARFCNs;
+static int ett_lte_rrc_ExplicitListOfARFCNs;
+static int ett_lte_rrc_CarrierFreqListMBMS_r11;
+static int ett_lte_rrc_CellGlobalIdNR_r16;
+static int ett_lte_rrc_CellIndexList;
+static int ett_lte_rrc_CellSelectionInfoCE_r13;
+static int ett_lte_rrc_CellSelectionInfoCE_v1530;
+static int ett_lte_rrc_CellSelectionInfoCE1_r13;
+static int ett_lte_rrc_CellSelectionInfoCE1_v1360;
+static int ett_lte_rrc_CSFB_RegistrationParam1XRTT;
+static int ett_lte_rrc_CSFB_RegistrationParam1XRTT_v920;
+static int ett_lte_rrc_CellGlobalIdEUTRA;
+static int ett_lte_rrc_CellGlobalIdUTRA;
+static int ett_lte_rrc_CellGlobalIdGERAN;
+static int ett_lte_rrc_CellGlobalIdCDMA2000;
+static int ett_lte_rrc_CellSelectionInfoNFreq_r13;
+static int ett_lte_rrc_ConditionalReconfiguration_r16;
+static int ett_lte_rrc_CondReconfigurationToRemoveList_r16;
+static int ett_lte_rrc_CondReconfigurationToAddModList_r16;
+static int ett_lte_rrc_CondReconfigurationAddMod_r16;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_MeasId;
+static int ett_lte_rrc_EphemerisOrbitalParameters_r17;
+static int ett_lte_rrc_EphemerisStateVectors_r17;
+static int ett_lte_rrc_MobilityControlInfo;
+static int ett_lte_rrc_MobilityControlInfo_v10l0;
+static int ett_lte_rrc_MobilityControlInfoSCG_r12;
+static int ett_lte_rrc_MobilityControlInfoV2X_r14;
+static int ett_lte_rrc_CarrierBandwidthEUTRA;
+static int ett_lte_rrc_CarrierFreqEUTRA;
+static int ett_lte_rrc_CarrierFreqEUTRA_v9e0;
+static int ett_lte_rrc_DAPS_Config_r16;
+static int ett_lte_rrc_DAPS_PowerCoordinationInfo_r16;
+static int ett_lte_rrc_RACH_Skip_r14;
+static int ett_lte_rrc_T_targetTA_r14;
+static int ett_lte_rrc_T_ul_ConfigInfo_r14;
+static int ett_lte_rrc_MobilityStateParameters;
+static int ett_lte_rrc_MultiBandInfoList;
+static int ett_lte_rrc_MultiBandInfoList_v9e0;
+static int ett_lte_rrc_MultiBandInfoList_v10j0;
+static int ett_lte_rrc_MultiBandInfoList_v10l0;
+static int ett_lte_rrc_MultiBandInfoList_r11;
+static int ett_lte_rrc_MultiBandInfo_v9e0;
+static int ett_lte_rrc_MultiFrequencyBandListNR_r15;
+static int ett_lte_rrc_NS_PmaxList_r10;
+static int ett_lte_rrc_NS_PmaxList_v10l0;
+static int ett_lte_rrc_NS_PmaxValue_r10;
+static int ett_lte_rrc_NS_PmaxValue_v10l0;
+static int ett_lte_rrc_NS_PmaxListNR_r15;
+static int ett_lte_rrc_NS_PmaxValueNR_r15;
+static int ett_lte_rrc_NS_PmaxListNR_v1760;
+static int ett_lte_rrc_NS_PmaxValueNR_v1760;
+static int ett_lte_rrc_PhysCellIdGERAN;
+static int ett_lte_rrc_PhysCellIdRange;
+static int ett_lte_rrc_PhysCellIdRangeNR_r16;
+static int ett_lte_rrc_PhysCellIdRangeUTRA_FDDList_r9;
+static int ett_lte_rrc_PhysCellIdRangeUTRA_FDD_r9;
+static int ett_lte_rrc_PLMN_Identity;
+static int ett_lte_rrc_MCC;
+static int ett_lte_rrc_MNC;
+static int ett_lte_rrc_PLMN_IdentityList3_r11;
+static int ett_lte_rrc_PreRegistrationInfoHRPD;
+static int ett_lte_rrc_SecondaryPreRegistrationZoneIdListHRPD;
+static int ett_lte_rrc_RSS_ConfigCarrierInfo_r16;
+static int ett_lte_rrc_SpeedStateScaleFactors;
+static int ett_lte_rrc_SystemInfoListGERAN;
+static int ett_lte_rrc_SystemTimeInfoCDMA2000;
+static int ett_lte_rrc_T_cdma_SystemTime;
+static int ett_lte_rrc_ThresholdNR_r15;
+static int ett_lte_rrc_ThresholdListNR_r15;
+static int ett_lte_rrc_TLE_EphemerisParameters_r17;
+static int ett_lte_rrc_BT_NameListConfig_r15;
+static int ett_lte_rrc_BT_NameList_r15;
+static int ett_lte_rrc_LocationInfo_r10;
+static int ett_lte_rrc_T_locationCoordinates_r10;
+static int ett_lte_rrc_T_verticalVelocityInfo_r15;
+static int ett_lte_rrc_LogMeasResultListBT_r15;
+static int ett_lte_rrc_LogMeasResultBT_r15;
+static int ett_lte_rrc_LogMeasResultListWLAN_r15;
+static int ett_lte_rrc_LogMeasResultWLAN_r15;
+static int ett_lte_rrc_MeasConfig;
+static int ett_lte_rrc_T_speedStatePars;
+static int ett_lte_rrc_T_measConfig_speedStatePars_setup;
+static int ett_lte_rrc_T_measScaleFactor_r12;
+static int ett_lte_rrc_T_heightThreshRef_r15;
+static int ett_lte_rrc_MeasIdToRemoveList;
+static int ett_lte_rrc_MeasIdToRemoveListExt_r12;
+static int ett_lte_rrc_MeasObjectToRemoveList;
+static int ett_lte_rrc_MeasObjectToRemoveListExt_r13;
+static int ett_lte_rrc_ReportConfigToRemoveList;
+static int ett_lte_rrc_MeasDS_Config_r12;
+static int ett_lte_rrc_T_measDS_Config_r12_setup;
+static int ett_lte_rrc_T_dmtc_PeriodOffset_r12;
+static int ett_lte_rrc_T_ds_OccasionDuration_r12;
+static int ett_lte_rrc_MeasCSI_RS_ToRemoveList_r12;
+static int ett_lte_rrc_MeasCSI_RS_ToAddModList_r12;
+static int ett_lte_rrc_MeasCSI_RS_Config_r12;
+static int ett_lte_rrc_MeasGapConfig;
+static int ett_lte_rrc_T_measGapConfig_setup;
+static int ett_lte_rrc_T_gapOffset;
+static int ett_lte_rrc_MeasGapConfigDensePRS_r15;
+static int ett_lte_rrc_T_measGapConfigDensePRS_r15_setup;
+static int ett_lte_rrc_T_gapOffsetDensePRS_r15;
+static int ett_lte_rrc_MeasGapConfigPerCC_List_r14;
+static int ett_lte_rrc_T_measGapConfigPerCC_List_r14_setup;
+static int ett_lte_rrc_MeasGapConfigToRemoveList_r14;
+static int ett_lte_rrc_MeasGapConfigToAddModList_r14;
+static int ett_lte_rrc_MeasGapConfigPerCC_r14;
+static int ett_lte_rrc_MeasGapSharingConfig_r14;
+static int ett_lte_rrc_T_measGapSharingConfig_r14_setup;
+static int ett_lte_rrc_MeasIdleConfigSIB_r15;
+static int ett_lte_rrc_MeasIdleConfigSIB_NR_r16;
+static int ett_lte_rrc_MeasIdleConfigDedicated_r15;
+static int ett_lte_rrc_EUTRA_CarrierList_r15;
+static int ett_lte_rrc_NR_CarrierList_r16;
+static int ett_lte_rrc_MeasIdleCarrierEUTRA_r15;
+static int ett_lte_rrc_T_qualityThreshold_r15;
+static int ett_lte_rrc_ValidityAreaList_r16;
+static int ett_lte_rrc_ValidityArea_r16;
+static int ett_lte_rrc_ValidityCellList_r16;
+static int ett_lte_rrc_MeasIdleCarrierNR_r16;
+static int ett_lte_rrc_T_qualityThresholdNR_r16;
+static int ett_lte_rrc_T_ssb_MeasConfig_r16;
+static int ett_lte_rrc_CellList_r15;
+static int ett_lte_rrc_CellListNR_r16;
+static int ett_lte_rrc_BeamMeasConfigIdleNR_r16;
+static int ett_lte_rrc_MeasIdToAddModList;
+static int ett_lte_rrc_MeasIdToAddModList_v1310;
+static int ett_lte_rrc_MeasIdToAddModListExt_r12;
+static int ett_lte_rrc_MeasIdToAddModListExt_v1310;
+static int ett_lte_rrc_MeasIdToAddMod;
+static int ett_lte_rrc_MeasIdToAddModExt_r12;
+static int ett_lte_rrc_MeasIdToAddMod_v1310;
+static int ett_lte_rrc_MeasObjectCDMA2000;
+static int ett_lte_rrc_CellsToAddModListCDMA2000;
+static int ett_lte_rrc_CellsToAddModCDMA2000;
+static int ett_lte_rrc_MeasObjectEUTRA;
+static int ett_lte_rrc_T_t312_r12;
+static int ett_lte_rrc_T_measRSS_DedicatedConfig_r16;
+static int ett_lte_rrc_MeasObjectEUTRA_v9e0;
+static int ett_lte_rrc_MeasRSS_DedicatedConfig_r16;
+static int ett_lte_rrc_CellsToAddModList;
+static int ett_lte_rrc_CellsToAddModList_v1610;
+static int ett_lte_rrc_CellsToAddMod;
+static int ett_lte_rrc_CellsToAddMod_v1610;
+static int ett_lte_rrc_ExcludedCellsToAddModList;
+static int ett_lte_rrc_ExcludedCellsToAddMod;
+static int ett_lte_rrc_MeasSubframePatternConfigNeigh_r10;
+static int ett_lte_rrc_T_measSubframePatternConfigNeigh_r10_setup;
+static int ett_lte_rrc_MeasSubframeCellList_r10;
+static int ett_lte_rrc_AltTTT_CellsToAddModList_r12;
+static int ett_lte_rrc_AltTTT_CellsToAddMod_r12;
+static int ett_lte_rrc_AllowedCellsToAddModList_r13;
+static int ett_lte_rrc_AllowedCellsToAddMod_r13;
+static int ett_lte_rrc_RMTC_Config_r13;
+static int ett_lte_rrc_T_rMTC_Config_r13_setup;
+static int ett_lte_rrc_Tx_ResourcePoolMeasList_r14;
+static int ett_lte_rrc_MeasObjectGERAN;
+static int ett_lte_rrc_MeasObjectNR_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCellSFTD_OF_PhysCellIdNR_r15;
+static int ett_lte_rrc_T_bandNR_r15;
+static int ett_lte_rrc_T_rmtc_ConfigNR_r16;
+static int ett_lte_rrc_RS_ConfigSSB_NR_r15;
+static int ett_lte_rrc_T_ssb_ToMeasure_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_PhysCellIdNR_r15;
+static int ett_lte_rrc_CellsToAddModListNR_r15;
+static int ett_lte_rrc_CellsToAddModListNR_r16;
+static int ett_lte_rrc_CellsToAddModNR_r15;
+static int ett_lte_rrc_CellsToAddModNR_r16;
+static int ett_lte_rrc_SSB_PositionQCL_CellsToAddModListNR_r16;
+static int ett_lte_rrc_SSB_PositionQCL_CellsToAddNR_r16;
+static int ett_lte_rrc_RMTC_ConfigNR_r16;
+static int ett_lte_rrc_SSB_PositionQCL_CellsToAddModListNR_r17;
+static int ett_lte_rrc_SSB_PositionQCL_CellsToAddNR_r17;
+static int ett_lte_rrc_MeasObjectToAddModList;
+static int ett_lte_rrc_MeasObjectToAddModListExt_r13;
+static int ett_lte_rrc_MeasObjectToAddModList_v9e0;
+static int ett_lte_rrc_MeasObjectToAddMod;
+static int ett_lte_rrc_T_measObject;
+static int ett_lte_rrc_MeasObjectToAddModExt_r13;
+static int ett_lte_rrc_T_measObject_r13;
+static int ett_lte_rrc_MeasObjectToAddMod_v9e0;
+static int ett_lte_rrc_MeasObjectUTRA;
+static int ett_lte_rrc_T_cellsToAddModList;
+static int ett_lte_rrc_T_cellForWhichToReportCGI;
+static int ett_lte_rrc_CellsToAddModListUTRA_FDD;
+static int ett_lte_rrc_CellsToAddModUTRA_FDD;
+static int ett_lte_rrc_CellsToAddModListUTRA_TDD;
+static int ett_lte_rrc_CellsToAddModUTRA_TDD;
+static int ett_lte_rrc_CSG_AllowedReportingCells_r9;
+static int ett_lte_rrc_MeasObjectWLAN_r13;
+static int ett_lte_rrc_T_carrierFreq_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxWLAN_Bands_r13_OF_WLAN_BandIndicator_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxWLAN_CarrierInfo_r13_OF_WLAN_CarrierInfo_r13;
+static int ett_lte_rrc_MeasResults;
+static int ett_lte_rrc_T_measResultPCell;
+static int ett_lte_rrc_T_measResultNeighCells;
+static int ett_lte_rrc_T_measResultPCell_v1310;
+static int ett_lte_rrc_MeasResultListEUTRA;
+static int ett_lte_rrc_MeasResultEUTRA;
+static int ett_lte_rrc_T_cgi_Info;
+static int ett_lte_rrc_T_measResult;
+static int ett_lte_rrc_T_cgi_Info_v1310;
+static int ett_lte_rrc_MeasResultListIdle_r15;
+static int ett_lte_rrc_MeasResultIdle_r15;
+static int ett_lte_rrc_T_measResultServingCell_r15;
+static int ett_lte_rrc_T_measResultNeighCells_r15;
+static int ett_lte_rrc_MeasResultIdleListEUTRA_r15;
+static int ett_lte_rrc_MeasResultIdleEUTRA_r15;
+static int ett_lte_rrc_T_measResult_r15;
+static int ett_lte_rrc_MeasResultListExtIdle_r16;
+static int ett_lte_rrc_MeasResultListIdleNR_r16;
+static int ett_lte_rrc_MeasResultIdleNR_r16;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCellMeasIdle_r15_OF_MeasResultsPerCellIdleNR_r16;
+static int ett_lte_rrc_MeasResultsPerCellIdleNR_r16;
+static int ett_lte_rrc_T_measIdleResultNR_r16;
+static int ett_lte_rrc_ResultsPerSSB_IndexList_r16;
+static int ett_lte_rrc_ResultsPerSSB_IndexIdle_r16;
+static int ett_lte_rrc_T_ssb_Results_r16;
+static int ett_lte_rrc_MeasResultServFreqListNR_r15;
+static int ett_lte_rrc_MeasResultServFreqNR_r15;
+static int ett_lte_rrc_MeasResultCellListNR_r15;
+static int ett_lte_rrc_MeasResultCellNR_r15;
+static int ett_lte_rrc_MeasResultNR_r15;
+static int ett_lte_rrc_MeasResultSSB_IndexList_r15;
+static int ett_lte_rrc_MeasResultSSB_Index_r15;
+static int ett_lte_rrc_MeasResultServFreqList_r10;
+static int ett_lte_rrc_MeasResultServFreqListExt_r13;
+static int ett_lte_rrc_MeasResultServFreq_r10;
+static int ett_lte_rrc_T_measResultSCell_r10;
+static int ett_lte_rrc_T_measResultBestNeighCell_r10;
+static int ett_lte_rrc_T_measResultSCell_v1310_01;
+static int ett_lte_rrc_T_measResultBestNeighCell_v1310;
+static int ett_lte_rrc_MeasResultServFreq_r13;
+static int ett_lte_rrc_T_measResultSCell_r13;
+static int ett_lte_rrc_T_measResultBestNeighCell_r13;
+static int ett_lte_rrc_T_measResultBestNeighCell_v1360;
+static int ett_lte_rrc_MeasResultCSI_RS_List_r12;
+static int ett_lte_rrc_MeasResultCSI_RS_r12;
+static int ett_lte_rrc_MeasResultListUTRA;
+static int ett_lte_rrc_MeasResultUTRA;
+static int ett_lte_rrc_T_physCellId;
+static int ett_lte_rrc_T_cgi_Info_01;
+static int ett_lte_rrc_T_measResult_01;
+static int ett_lte_rrc_MeasResultListGERAN;
+static int ett_lte_rrc_MeasResultGERAN;
+static int ett_lte_rrc_T_cgi_Info_02;
+static int ett_lte_rrc_T_measResult_02;
+static int ett_lte_rrc_MeasResultsCDMA2000;
+static int ett_lte_rrc_MeasResultListCDMA2000;
+static int ett_lte_rrc_MeasResultCDMA2000;
+static int ett_lte_rrc_T_measResult_03;
+static int ett_lte_rrc_MeasResultListWLAN_r13;
+static int ett_lte_rrc_MeasResultListWLAN_r14;
+static int ett_lte_rrc_MeasResultWLAN_r13;
+static int ett_lte_rrc_MeasResultListCBR_r14;
+static int ett_lte_rrc_MeasResultCBR_r14;
+static int ett_lte_rrc_MeasResultSensing_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_0_400_OF_SensingResult_r15;
+static int ett_lte_rrc_SensingResult_r15;
+static int ett_lte_rrc_MeasResultForECID_r9;
+static int ett_lte_rrc_PLMN_IdentityList2;
+static int ett_lte_rrc_AdditionalSI_Info_r9;
+static int ett_lte_rrc_MeasResultForRSSI_r13;
+static int ett_lte_rrc_MeasResultForRSSI_NR_r16;
+static int ett_lte_rrc_UL_PDCP_DelayResultList_r13;
+static int ett_lte_rrc_UL_PDCP_DelayResult_r13;
+static int ett_lte_rrc_UL_PDCP_DelayValueResultList_r16;
+static int ett_lte_rrc_UL_PDCP_DelayValueResult_r16;
+static int ett_lte_rrc_CGI_InfoNR_r15;
+static int ett_lte_rrc_T_noSIB1_r15;
+static int ett_lte_rrc_PLMN_IdentityListNR_r15;
+static int ett_lte_rrc_PLMN_IdentityInfoListNR_r15;
+static int ett_lte_rrc_PLMN_IdentityInfoListNR_v1710;
+static int ett_lte_rrc_PLMN_IdentityInfoNR_r15;
+static int ett_lte_rrc_PLMN_IdentityInfoNR_v1710;
+static int ett_lte_rrc_MeasResultCellListSFTD_r15;
+static int ett_lte_rrc_MeasResultCellSFTD_r15;
+static int ett_lte_rrc_MeasResultSCG_FailureMRDC_r15;
+static int ett_lte_rrc_MeasResultList3EUTRA_r15;
+static int ett_lte_rrc_MeasResult3EUTRA_r15;
+static int ett_lte_rrc_MeasResultSSTD_r13;
+static int ett_lte_rrc_MeasSensing_Config_r15;
+static int ett_lte_rrc_MTC_SSB_NR_r15;
+static int ett_lte_rrc_T_periodicityAndOffset_r15;
+static int ett_lte_rrc_MTC_SSB2_LP_NR_r16;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxNrofPCI_PerSMTC_r16_OF_PhysCellIdNR_r15;
+static int ett_lte_rrc_QuantityConfig;
+static int ett_lte_rrc_QuantityConfigEUTRA;
+static int ett_lte_rrc_QuantityConfigEUTRA_v1250;
+static int ett_lte_rrc_QuantityConfigEUTRA_v1310;
+static int ett_lte_rrc_QuantityConfigUTRA;
+static int ett_lte_rrc_QuantityConfigUTRA_v1020;
+static int ett_lte_rrc_QuantityConfigGERAN;
+static int ett_lte_rrc_QuantityConfigCDMA2000;
+static int ett_lte_rrc_QuantityConfigNRList_r15;
+static int ett_lte_rrc_QuantityConfigNR_r15;
+static int ett_lte_rrc_QuantityConfigRS_NR_r15;
+static int ett_lte_rrc_QuantityConfigWLAN_r13;
+static int ett_lte_rrc_ReportConfigEUTRA;
+static int ett_lte_rrc_T_triggerType;
+static int ett_lte_rrc_T_event;
+static int ett_lte_rrc_T_eventId;
+static int ett_lte_rrc_T_eventA1;
+static int ett_lte_rrc_T_eventA2;
+static int ett_lte_rrc_T_eventA3;
+static int ett_lte_rrc_T_eventA4;
+static int ett_lte_rrc_T_eventA5;
+static int ett_lte_rrc_T_eventA6_r10;
+static int ett_lte_rrc_T_eventC1_r12;
+static int ett_lte_rrc_T_eventC2_r12;
+static int ett_lte_rrc_T_eventV1_r14;
+static int ett_lte_rrc_T_eventV2_r14;
+static int ett_lte_rrc_T_eventH1_r15;
+static int ett_lte_rrc_T_eventH2_r15;
+static int ett_lte_rrc_T_periodical;
+static int ett_lte_rrc_T_alternativeTimeToTrigger_r12;
+static int ett_lte_rrc_T_rs_sinr_Config_r13;
+static int ett_lte_rrc_T_reportConfigEUTRA_eag_4_rs_sinr_Config_r13_setup;
+static int ett_lte_rrc_CondReconfigurationTriggerEUTRA_r16;
+static int ett_lte_rrc_T_condEventId_r16;
+static int ett_lte_rrc_T_condEventA3_r16;
+static int ett_lte_rrc_T_condEventA5_r16;
+static int ett_lte_rrc_RSRQ_RangeConfig_r12;
+static int ett_lte_rrc_ThresholdEUTRA;
+static int ett_lte_rrc_MeasRSSI_ReportConfig_r13;
+static int ett_lte_rrc_ReportConfigInterRAT;
+static int ett_lte_rrc_T_triggerType_01;
+static int ett_lte_rrc_T_event_01;
+static int ett_lte_rrc_T_eventId_01;
+static int ett_lte_rrc_T_eventB1;
+static int ett_lte_rrc_T_b1_Threshold;
+static int ett_lte_rrc_T_eventB2;
+static int ett_lte_rrc_T_b2_Threshold2;
+static int ett_lte_rrc_T_eventW1_r13;
+static int ett_lte_rrc_T_eventW2_r13;
+static int ett_lte_rrc_T_eventW3_r13;
+static int ett_lte_rrc_T_eventB1_NR_r15;
+static int ett_lte_rrc_T_eventB2_NR_r15;
+static int ett_lte_rrc_T_periodical_01;
+static int ett_lte_rrc_T_b2_Threshold1_v1250;
+static int ett_lte_rrc_CondReconfigurationTriggerNR_r17;
+static int ett_lte_rrc_T_condEventId_r17;
+static int ett_lte_rrc_T_condEventB1_NR_r17;
+static int ett_lte_rrc_ThresholdUTRA;
+static int ett_lte_rrc_ReportQuantityNR_r15;
+static int ett_lte_rrc_ReportQuantityWLAN_r13;
+static int ett_lte_rrc_ReportConfigToAddModList;
+static int ett_lte_rrc_ReportConfigToAddMod;
+static int ett_lte_rrc_T_reportConfig;
+static int ett_lte_rrc_RSRQ_Type_r12;
+static int ett_lte_rrc_SS_RSSI_Measurement_r15;
+static int ett_lte_rrc_SSB_ToMeasure_r15;
+static int ett_lte_rrc_UL_DelayConfig_r13;
+static int ett_lte_rrc_T_uL_DelayConfig_r13_setup;
+static int ett_lte_rrc_UL_DelayValueConfig_r16;
+static int ett_lte_rrc_T_uL_DelayValueConfig_r16_setup;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DRB_Identity;
+static int ett_lte_rrc_WLAN_CarrierInfo_r13;
+static int ett_lte_rrc_WLAN_ChannelList_r13;
+static int ett_lte_rrc_WLAN_NameListConfig_r15;
+static int ett_lte_rrc_WLAN_NameList_r15;
+static int ett_lte_rrc_WLAN_RTT_r15;
+static int ett_lte_rrc_WLAN_SuspendConfig_r14;
+static int ett_lte_rrc_AreaConfiguration_r10;
+static int ett_lte_rrc_AreaConfiguration_v1130;
+static int ett_lte_rrc_CellGlobalIdList_r10;
+static int ett_lte_rrc_TrackingAreaCodeList_r10;
+static int ett_lte_rrc_TrackingAreaCodeList_v1130;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_8_OF_PLMN_Identity;
+static int ett_lte_rrc_BandCombinationList_r14;
+static int ett_lte_rrc_BandCombination_r14;
+static int ett_lte_rrc_BandIndication_r14;
+static int ett_lte_rrc_FlightPathInfoReportConfig_r15;
+static int ett_lte_rrc_GNSS_ID_r15;
+static int ett_lte_rrc_MeasSubframePattern_r10;
+static int ett_lte_rrc_T_subframePatternTDD_r10;
+static int ett_lte_rrc_OtherConfig_r9;
+static int ett_lte_rrc_T_delayBudgetReportingConfig_r14;
+static int ett_lte_rrc_T_otherConfig_r9_eag_2_delayBudgetReportingConfig_r14_setup;
+static int ett_lte_rrc_T_rlm_ReportConfig_r14;
+static int ett_lte_rrc_T_otherConfig_r9_eag_2_rlm_ReportConfig_r14_setup;
+static int ett_lte_rrc_T_overheatingAssistanceConfig_r14;
+static int ett_lte_rrc_T_otherConfig_r9_eag_3_overheatingAssistanceConfig_r14_setup;
+static int ett_lte_rrc_T_measConfigAppLayer_r15;
+static int ett_lte_rrc_T_otherConfig_r9_eag_4_measConfigAppLayer_r15_setup;
+static int ett_lte_rrc_T_scg_DeactivationPreferenceConfig_r17;
+static int ett_lte_rrc_IDC_Config_r11;
+static int ett_lte_rrc_T_autonomousDenialParameters_r11;
+static int ett_lte_rrc_T_idc_Indication_MRDC_r15;
+static int ett_lte_rrc_ObtainLocationConfig_r11;
+static int ett_lte_rrc_PowerPrefIndicationConfig_r11;
+static int ett_lte_rrc_T_powerPrefIndicationConfig_r11_setup;
+static int ett_lte_rrc_ReportProximityConfig_r9;
+static int ett_lte_rrc_CandidateServingFreqListNR_r15;
+static int ett_lte_rrc_SCG_DeactivationPreferenceConfig_r17;
+static int ett_lte_rrc_SBAS_ID_r15;
+static int ett_lte_rrc_S_NSSAI_r15;
+static int ett_lte_rrc_S_TMSI;
+static int ett_lte_rrc_TraceReference_r10;
+static int ett_lte_rrc_UE_CapabilityRAT_ContainerList;
+static int ett_lte_rrc_UE_CapabilityRAT_Container;
+static int ett_lte_rrc_UE_EUTRA_Capability;
+static int ett_lte_rrc_T_interRAT_Parameters;
+static int ett_lte_rrc_UE_EUTRA_Capability_v9a0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v9c0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v9d0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v9e0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v9h0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v10c0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v10f0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v10i0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v10j0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_81;
+static int ett_lte_rrc_UE_EUTRA_Capability_v11d0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v11x0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v12b0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v12x0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1370_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1380_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1390_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v13e0a_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v13e0b_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_82;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1470_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v14a0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v14b0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v14x0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v15x0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v16c0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_83;
+static int ett_lte_rrc_UE_EUTRA_Capability_v920_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v940_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1020_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1060_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1090_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1130_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1170_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1180_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v11a0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1250_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1260_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1270_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1280_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1310_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1320_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1330_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1340_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1350_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1360_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1430_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1440_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1450_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1460_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1510_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1520_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1530_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1540_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1550_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1560_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1570_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v15a0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1610_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1630_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1650_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1660_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1690_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1700_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1710_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1720_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1730_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v1770_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_84;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_r9;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1060;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1130;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1180;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1250;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1310;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1320;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1370;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1380;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1430;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1510;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1530;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1540;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1550;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1560;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v15a0;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1610;
+static int ett_lte_rrc_UE_EUTRA_CapabilityAddXDD_Mode_v1630;
+static int ett_lte_rrc_FeatureSetsEUTRA_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFeatureSets_r15_OF_FeatureSetDL_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_r15_OF_FeatureSetDL_PerCC_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFeatureSets_r15_OF_FeatureSetUL_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_r15_OF_FeatureSetUL_PerCC_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFeatureSets_r15_OF_FeatureSetDL_v1550;
+static int ett_lte_rrc_MobilityParameters_r14;
+static int ett_lte_rrc_MobilityParameters_v1610;
+static int ett_lte_rrc_DC_Parameters_r12;
+static int ett_lte_rrc_DC_Parameters_v1310;
+static int ett_lte_rrc_MAC_Parameters_r12;
+static int ett_lte_rrc_MAC_Parameters_v1310;
+static int ett_lte_rrc_MAC_Parameters_v1430;
+static int ett_lte_rrc_MAC_Parameters_v1440;
+static int ett_lte_rrc_MAC_Parameters_v1530;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_3_OF_ProcessingTimelineSet_r15;
+static int ett_lte_rrc_MAC_Parameters_v1550;
+static int ett_lte_rrc_MAC_Parameters_v1610;
+static int ett_lte_rrc_MAC_Parameters_v1630;
+static int ett_lte_rrc_NTN_Parameters_r17;
+static int ett_lte_rrc_NTN_Parameters_v1720;
+static int ett_lte_rrc_RLC_Parameters_r12;
+static int ett_lte_rrc_RLC_Parameters_v1310;
+static int ett_lte_rrc_RLC_Parameters_v1430;
+static int ett_lte_rrc_RLC_Parameters_v1530;
+static int ett_lte_rrc_PDCP_Parameters;
+static int ett_lte_rrc_PDCP_Parameters_v1130;
+static int ett_lte_rrc_PDCP_Parameters_v1310;
+static int ett_lte_rrc_PDCP_Parameters_v1430;
+static int ett_lte_rrc_T_supportedUplinkOnlyROHC_Profiles_r14;
+static int ett_lte_rrc_PDCP_Parameters_v1530;
+static int ett_lte_rrc_PDCP_Parameters_v1610;
+static int ett_lte_rrc_SupportedUDC_r15;
+static int ett_lte_rrc_SupportedOperatorDic_r15;
+static int ett_lte_rrc_PhyLayerParameters;
+static int ett_lte_rrc_PhyLayerParameters_v920;
+static int ett_lte_rrc_PhyLayerParameters_v9d0;
+static int ett_lte_rrc_PhyLayerParameters_v1020;
+static int ett_lte_rrc_PhyLayerParameters_v1130;
+static int ett_lte_rrc_PhyLayerParameters_v1170;
+static int ett_lte_rrc_PhyLayerParameters_v1250;
+static int ett_lte_rrc_PhyLayerParameters_v1280;
+static int ett_lte_rrc_PhyLayerParameters_v1310;
+static int ett_lte_rrc_T_supportedBlindDecoding_r13;
+static int ett_lte_rrc_PhyLayerParameters_v1320;
+static int ett_lte_rrc_PhyLayerParameters_v1330;
+static int ett_lte_rrc_PhyLayerParameters_v13e0;
+static int ett_lte_rrc_PhyLayerParameters_v1430;
+static int ett_lte_rrc_PhyLayerParameters_v1450;
+static int ett_lte_rrc_PhyLayerParameters_v1470;
+static int ett_lte_rrc_PhyLayerParameters_v14a0;
+static int ett_lte_rrc_PhyLayerParameters_v1530;
+static int ett_lte_rrc_T_stti_SPT_Capabilities_r15;
+static int ett_lte_rrc_T_ce_Capabilities_r15;
+static int ett_lte_rrc_T_urllc_Capabilities_r15;
+static int ett_lte_rrc_PhyLayerParameters_v1540;
+static int ett_lte_rrc_T_stti_SPT_Capabilities_v1540;
+static int ett_lte_rrc_PhyLayerParameters_v1550;
+static int ett_lte_rrc_PhyLayerParameters_v1610;
+static int ett_lte_rrc_T_ce_Capabilities_v1610;
+static int ett_lte_rrc_T_addSRS_r16;
+static int ett_lte_rrc_PhyLayerParameters_v1700;
+static int ett_lte_rrc_T_ce_Capabilities_v1700;
+static int ett_lte_rrc_PhyLayerParameters_v1730;
+static int ett_lte_rrc_MIMO_UE_Parameters_r13;
+static int ett_lte_rrc_MIMO_UE_Parameters_v13e0;
+static int ett_lte_rrc_MIMO_UE_Parameters_v1430;
+static int ett_lte_rrc_MIMO_UE_Parameters_v1470;
+static int ett_lte_rrc_MIMO_UE_ParametersPerTM_r13;
+static int ett_lte_rrc_MIMO_UE_ParametersPerTM_v1430;
+static int ett_lte_rrc_T_nzp_CSI_RS_AperiodicInfo_r14;
+static int ett_lte_rrc_T_nzp_CSI_RS_PeriodicInfo_r14;
+static int ett_lte_rrc_MIMO_UE_ParametersPerTM_v1470;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBC_r13;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBC_r15;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBC_v1430;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBC_v1470;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_r13;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_v1430;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_v1470;
+static int ett_lte_rrc_MIMO_CA_ParametersPerBoBCPerTM_r15;
+static int ett_lte_rrc_MIMO_NonPrecodedCapabilities_r13;
+static int ett_lte_rrc_MIMO_UE_BeamformedCapabilities_r13;
+static int ett_lte_rrc_MIMO_BeamformedCapabilityList_r13;
+static int ett_lte_rrc_MIMO_BeamformedCapabilities_r13;
+static int ett_lte_rrc_MIMO_WeightedLayersCapabilities_r13;
+static int ett_lte_rrc_NonContiguousUL_RA_WithinCC_List_r10;
+static int ett_lte_rrc_NonContiguousUL_RA_WithinCC_r10;
+static int ett_lte_rrc_RF_Parameters;
+static int ett_lte_rrc_RF_Parameters_v9e0;
+static int ett_lte_rrc_RF_Parameters_v1020;
+static int ett_lte_rrc_RF_Parameters_v1060;
+static int ett_lte_rrc_RF_Parameters_v1090;
+static int ett_lte_rrc_RF_Parameters_v10f0;
+static int ett_lte_rrc_RF_Parameters_v10i0;
+static int ett_lte_rrc_RF_Parameters_v10j0;
+static int ett_lte_rrc_RF_Parameters_v1130;
+static int ett_lte_rrc_RF_Parameters_v1180;
+static int ett_lte_rrc_RF_Parameters_v11d0;
+static int ett_lte_rrc_RF_Parameters_v1250;
+static int ett_lte_rrc_RF_Parameters_v1270;
+static int ett_lte_rrc_RF_Parameters_v1310;
+static int ett_lte_rrc_T_eNB_RequestedParameters_r13;
+static int ett_lte_rrc_RF_Parameters_v1320;
+static int ett_lte_rrc_RF_Parameters_v1380;
+static int ett_lte_rrc_RF_Parameters_v1390;
+static int ett_lte_rrc_RF_Parameters_v12b0;
+static int ett_lte_rrc_RF_Parameters_v1430;
+static int ett_lte_rrc_T_eNB_RequestedParameters_v1430;
+static int ett_lte_rrc_RF_Parameters_v1450;
+static int ett_lte_rrc_RF_Parameters_v1470;
+static int ett_lte_rrc_RF_Parameters_v14b0;
+static int ett_lte_rrc_RF_Parameters_v1530;
+static int ett_lte_rrc_RF_Parameters_v1570;
+static int ett_lte_rrc_RF_Parameters_v1610;
+static int ett_lte_rrc_RF_Parameters_v1630;
+static int ett_lte_rrc_SkipSubframeProcessing_r15;
+static int ett_lte_rrc_SPT_Parameters_r15;
+static int ett_lte_rrc_STTI_SPT_BandParameters_r15;
+static int ett_lte_rrc_STTI_SupportedCombinations_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_DL_UL_CCs_r15;
+static int ett_lte_rrc_DL_UL_CCs_r15;
+static int ett_lte_rrc_SupportedBandCombination_r10;
+static int ett_lte_rrc_SupportedBandCombinationExt_r10;
+static int ett_lte_rrc_SupportedBandCombination_v1090;
+static int ett_lte_rrc_SupportedBandCombination_v10i0;
+static int ett_lte_rrc_SupportedBandCombination_v1130;
+static int ett_lte_rrc_SupportedBandCombination_v1250;
+static int ett_lte_rrc_SupportedBandCombination_v1270;
+static int ett_lte_rrc_SupportedBandCombination_v1320;
+static int ett_lte_rrc_SupportedBandCombination_v1380;
+static int ett_lte_rrc_SupportedBandCombination_v1390;
+static int ett_lte_rrc_SupportedBandCombination_v1430;
+static int ett_lte_rrc_SupportedBandCombination_v1450;
+static int ett_lte_rrc_SupportedBandCombination_v1470;
+static int ett_lte_rrc_SupportedBandCombination_v14b0;
+static int ett_lte_rrc_SupportedBandCombination_v1530;
+static int ett_lte_rrc_SupportedBandCombination_v1610;
+static int ett_lte_rrc_SupportedBandCombination_v1630;
+static int ett_lte_rrc_SupportedBandCombinationAdd_r11;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v11d0;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1250;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1270;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1320;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1380;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1390;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1430;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1450;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1470;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v14b0;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1530;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1610;
+static int ett_lte_rrc_SupportedBandCombinationAdd_v1630;
+static int ett_lte_rrc_SupportedBandCombinationReduced_r13;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1320;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1380;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1390;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1430;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1450;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1470;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v14b0;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1530;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1610;
+static int ett_lte_rrc_SupportedBandCombinationReduced_v1630;
+static int ett_lte_rrc_BandCombinationParameters_r10;
+static int ett_lte_rrc_BandCombinationParametersExt_r10;
+static int ett_lte_rrc_BandCombinationParameters_v1090;
+static int ett_lte_rrc_BandCombinationParameters_v10i0;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v10i0;
+static int ett_lte_rrc_BandCombinationParameters_v1130;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1130;
+static int ett_lte_rrc_BandCombinationParameters_r11;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_r11;
+static int ett_lte_rrc_BandCombinationParameters_v1250;
+static int ett_lte_rrc_T_dc_Support_r12;
+static int ett_lte_rrc_T_supportedCellGrouping_r12;
+static int ett_lte_rrc_BandCombinationParameters_v1270;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1270;
+static int ett_lte_rrc_BandCombinationParameters_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_r13;
+static int ett_lte_rrc_T_dc_Support_r13;
+static int ett_lte_rrc_T_supportedCellGrouping_r13;
+static int ett_lte_rrc_BandCombinationParameters_v1320;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1320;
+static int ett_lte_rrc_BandCombinationParameters_v1380;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1380;
+static int ett_lte_rrc_BandCombinationParameters_v1390;
+static int ett_lte_rrc_BandCombinationParameters_v1430;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1430;
+static int ett_lte_rrc_BandCombinationParameters_v1450;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1450;
+static int ett_lte_rrc_BandCombinationParameters_v1470;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1470;
+static int ett_lte_rrc_BandCombinationParameters_v14b0;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v14b0;
+static int ett_lte_rrc_BandCombinationParameters_v1530;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1530;
+static int ett_lte_rrc_BandCombinationParameters_v1610;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_BandParameters_v1610;
+static int ett_lte_rrc_T_interFreqDAPS_r16;
+static int ett_lte_rrc_BandCombinationParameters_v1630;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBandCombSidelinkNR_r16_OF_ScalingFactorSidelink_r16;
+static int ett_lte_rrc_BandParameters_r10;
+static int ett_lte_rrc_BandParameters_v1090;
+static int ett_lte_rrc_BandParameters_v10i0;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBandwidthClass_r10_OF_CA_MIMO_ParametersDL_v10i0;
+static int ett_lte_rrc_BandParameters_v1130;
+static int ett_lte_rrc_BandParameters_r11;
+static int ett_lte_rrc_BandParameters_v1270;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBandwidthClass_r10_OF_CA_MIMO_ParametersDL_v1270;
+static int ett_lte_rrc_BandParameters_r13;
+static int ett_lte_rrc_BandParameters_v1320;
+static int ett_lte_rrc_BandParameters_v1380;
+static int ett_lte_rrc_BandParameters_v1430;
+static int ett_lte_rrc_SEQUENCE_SIZE_2_maxServCell_r13_OF_UL_256QAM_perCC_Info_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_SRS_CapabilityPerBandPair_r14;
+static int ett_lte_rrc_BandParameters_v1450;
+static int ett_lte_rrc_BandParameters_v1470;
+static int ett_lte_rrc_BandParameters_v14b0;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_SRS_CapabilityPerBandPair_v14b0;
+static int ett_lte_rrc_BandParameters_v1530;
+static int ett_lte_rrc_BandParameters_v1610;
+static int ett_lte_rrc_T_intraFreqDAPS_r16;
+static int ett_lte_rrc_T_addSRS_AntennaSwitching_r16_01;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_SRS_CapabilityPerBandPair_v1610;
+static int ett_lte_rrc_V2X_BandParameters_r14;
+static int ett_lte_rrc_V2X_BandParameters_v1530;
+static int ett_lte_rrc_BandParametersTxSL_r14;
+static int ett_lte_rrc_BandParametersRxSL_r14;
+static int ett_lte_rrc_V2X_BandwidthClassSL_r14;
+static int ett_lte_rrc_UL_256QAM_perCC_Info_r14;
+static int ett_lte_rrc_FeatureSetDL_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r13_OF_FeatureSetDL_PerCC_Id_r15;
+static int ett_lte_rrc_FeatureSetDL_v1550;
+static int ett_lte_rrc_FeatureSetDL_PerCC_r15;
+static int ett_lte_rrc_FeatureSetUL_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r13_OF_FeatureSetUL_PerCC_Id_r15;
+static int ett_lte_rrc_FeatureSetUL_PerCC_r15;
+static int ett_lte_rrc_BandParametersUL_r10;
+static int ett_lte_rrc_CA_MIMO_ParametersUL_r10;
+static int ett_lte_rrc_CA_MIMO_ParametersUL_r15;
+static int ett_lte_rrc_BandParametersDL_r10;
+static int ett_lte_rrc_CA_MIMO_ParametersDL_r10;
+static int ett_lte_rrc_CA_MIMO_ParametersDL_v10i0;
+static int ett_lte_rrc_CA_MIMO_ParametersDL_v1270;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r10_OF_IntraBandContiguousCC_Info_r12;
+static int ett_lte_rrc_CA_MIMO_ParametersDL_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxServCell_r13_OF_IntraBandContiguousCC_Info_r12;
+static int ett_lte_rrc_CA_MIMO_ParametersDL_r15;
+static int ett_lte_rrc_IntraBandContiguousCC_Info_r12;
+static int ett_lte_rrc_MUST_Parameters_r14;
+static int ett_lte_rrc_SupportedBandListEUTRA;
+static int ett_lte_rrc_SupportedBandListEUTRA_v9e0;
+static int ett_lte_rrc_SupportedBandListEUTRA_v1250;
+static int ett_lte_rrc_SupportedBandListEUTRA_v1310;
+static int ett_lte_rrc_SupportedBandListEUTRA_v1320;
+static int ett_lte_rrc_SupportedBandEUTRA;
+static int ett_lte_rrc_SupportedBandEUTRA_v9e0;
+static int ett_lte_rrc_SupportedBandEUTRA_v1250;
+static int ett_lte_rrc_SupportedBandEUTRA_v1310;
+static int ett_lte_rrc_SupportedBandEUTRA_v1320;
+static int ett_lte_rrc_MeasParameters;
+static int ett_lte_rrc_MeasParameters_v1020;
+static int ett_lte_rrc_MeasParameters_v1130;
+static int ett_lte_rrc_MeasParameters_v11a0;
+static int ett_lte_rrc_MeasParameters_v1250;
+static int ett_lte_rrc_MeasParameters_v1310;
+static int ett_lte_rrc_MeasParameters_v1430;
+static int ett_lte_rrc_MeasParameters_v1520;
+static int ett_lte_rrc_MeasParameters_v1530;
+static int ett_lte_rrc_MeasParameters_v1610;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_MeasGapInfoNR_r16;
+static int ett_lte_rrc_MeasParameters_v1630;
+static int ett_lte_rrc_MeasParameters_v16c0;
+static int ett_lte_rrc_MeasParameters_v1700;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBandsNR_r15_OF_SharedSpectrumMeasNR_r17;
+static int ett_lte_rrc_MeasParameters_v1770;
+static int ett_lte_rrc_SharedSpectrumMeasNR_r17;
+static int ett_lte_rrc_MeasGapInfoNR_r16;
+static int ett_lte_rrc_BandListEUTRA;
+static int ett_lte_rrc_BandCombinationListEUTRA_r10;
+static int ett_lte_rrc_BandInfoEUTRA;
+static int ett_lte_rrc_InterFreqBandList;
+static int ett_lte_rrc_InterFreqBandInfo;
+static int ett_lte_rrc_InterRAT_BandList;
+static int ett_lte_rrc_InterRAT_BandListNR_r16;
+static int ett_lte_rrc_InterRAT_BandInfo;
+static int ett_lte_rrc_InterRAT_BandInfoNR_r16;
+static int ett_lte_rrc_IRAT_ParametersNR_r15;
+static int ett_lte_rrc_IRAT_ParametersNR_v1540;
+static int ett_lte_rrc_IRAT_ParametersNR_v1560;
+static int ett_lte_rrc_IRAT_ParametersNR_v1570;
+static int ett_lte_rrc_IRAT_ParametersNR_v1610;
+static int ett_lte_rrc_IRAT_ParametersNR_v1660;
+static int ett_lte_rrc_IRAT_ParametersNR_v1700;
+static int ett_lte_rrc_IRAT_ParametersNR_v1710;
+static int ett_lte_rrc_EUTRA_5GC_Parameters_r15;
+static int ett_lte_rrc_EUTRA_5GC_Parameters_v1610;
+static int ett_lte_rrc_PDCP_ParametersNR_r15;
+static int ett_lte_rrc_T_rohc_ProfilesUL_Only_r15;
+static int ett_lte_rrc_PDCP_ParametersNR_v1560;
+static int ett_lte_rrc_ROHC_ProfileSupportList_r15;
+static int ett_lte_rrc_SupportedBandListNR_r15;
+static int ett_lte_rrc_SupportedBandNR_r15;
+static int ett_lte_rrc_IRAT_ParametersUTRA_FDD;
+static int ett_lte_rrc_IRAT_ParametersUTRA_v920;
+static int ett_lte_rrc_IRAT_ParametersUTRA_v9c0;
+static int ett_lte_rrc_IRAT_ParametersUTRA_v9h0;
+static int ett_lte_rrc_SupportedBandListUTRA_FDD;
+static int ett_lte_rrc_IRAT_ParametersUTRA_TDD128;
+static int ett_lte_rrc_SupportedBandListUTRA_TDD128;
+static int ett_lte_rrc_IRAT_ParametersUTRA_TDD384;
+static int ett_lte_rrc_SupportedBandListUTRA_TDD384;
+static int ett_lte_rrc_IRAT_ParametersUTRA_TDD768;
+static int ett_lte_rrc_SupportedBandListUTRA_TDD768;
+static int ett_lte_rrc_IRAT_ParametersUTRA_TDD_v1020;
+static int ett_lte_rrc_IRAT_ParametersGERAN;
+static int ett_lte_rrc_IRAT_ParametersGERAN_v920;
+static int ett_lte_rrc_SupportedBandListGERAN;
+static int ett_lte_rrc_IRAT_ParametersCDMA2000_HRPD;
+static int ett_lte_rrc_SupportedBandListHRPD;
+static int ett_lte_rrc_IRAT_ParametersCDMA2000_1XRTT;
+static int ett_lte_rrc_IRAT_ParametersCDMA2000_1XRTT_v920;
+static int ett_lte_rrc_IRAT_ParametersCDMA2000_1XRTT_v1020;
+static int ett_lte_rrc_IRAT_ParametersCDMA2000_v1130;
+static int ett_lte_rrc_SupportedBandList1XRTT;
+static int ett_lte_rrc_IRAT_ParametersWLAN_r13;
+static int ett_lte_rrc_SupportedBandListWLAN_r13;
+static int ett_lte_rrc_CSG_ProximityIndicationParameters_r9;
+static int ett_lte_rrc_NeighCellSI_AcquisitionParameters_r9;
+static int ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1530;
+static int ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1550;
+static int ett_lte_rrc_NeighCellSI_AcquisitionParameters_v15a0;
+static int ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1610;
+static int ett_lte_rrc_NeighCellSI_AcquisitionParameters_v1710;
+static int ett_lte_rrc_SON_Parameters_r9;
+static int ett_lte_rrc_PUR_Parameters_r16;
+static int ett_lte_rrc_UE_BasedNetwPerfMeasParameters_r10;
+static int ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1250;
+static int ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1430;
+static int ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1530;
+static int ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1610;
+static int ett_lte_rrc_UE_BasedNetwPerfMeasParameters_v1700;
+static int ett_lte_rrc_OTDOA_PositioningCapabilities_r10;
+static int ett_lte_rrc_Other_Parameters_r11;
+static int ett_lte_rrc_Other_Parameters_v11d0;
+static int ett_lte_rrc_Other_Parameters_v1360;
+static int ett_lte_rrc_Other_Parameters_v1430;
+static int ett_lte_rrc_OtherParameters_v1450;
+static int ett_lte_rrc_Other_Parameters_v1460;
+static int ett_lte_rrc_Other_Parameters_v1530;
+static int ett_lte_rrc_Other_Parameters_v1540;
+static int ett_lte_rrc_Other_Parameters_v1610;
+static int ett_lte_rrc_Other_Parameters_v1650;
+static int ett_lte_rrc_Other_Parameters_v1690;
+static int ett_lte_rrc_MBMS_Parameters_r11;
+static int ett_lte_rrc_MBMS_Parameters_v1250;
+static int ett_lte_rrc_MBMS_Parameters_v1430;
+static int ett_lte_rrc_MBMS_Parameters_v1470;
+static int ett_lte_rrc_T_mbms_MaxBW_r14;
+static int ett_lte_rrc_MBMS_Parameters_v1610;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_MBMS_SupportedBandInfo_r16;
+static int ett_lte_rrc_MBMS_Parameters_v1700;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxBands_OF_MBMS_SupportedBandInfo_v1700;
+static int ett_lte_rrc_MBMS_SupportedBandInfo_r16;
+static int ett_lte_rrc_T_subcarrierSpacingMBMS_khz0dot37_r16;
+static int ett_lte_rrc_MBMS_SupportedBandInfo_v1700;
+static int ett_lte_rrc_FeMBMS_Unicast_Parameters_r14;
+static int ett_lte_rrc_SCPTM_Parameters_r13;
+static int ett_lte_rrc_CE_Parameters_r13;
+static int ett_lte_rrc_CE_Parameters_v1320;
+static int ett_lte_rrc_CE_Parameters_v1350;
+static int ett_lte_rrc_CE_Parameters_v1370;
+static int ett_lte_rrc_CE_Parameters_v1380;
+static int ett_lte_rrc_CE_Parameters_v1430;
+static int ett_lte_rrc_CE_MultiTB_Parameters_r16;
+static int ett_lte_rrc_CE_ResourceResvParameters_r16;
+static int ett_lte_rrc_LAA_Parameters_r13;
+static int ett_lte_rrc_LAA_Parameters_v1430;
+static int ett_lte_rrc_LAA_Parameters_v1530;
+static int ett_lte_rrc_WLAN_IW_Parameters_r12;
+static int ett_lte_rrc_LWA_Parameters_r13;
+static int ett_lte_rrc_LWA_Parameters_v1430;
+static int ett_lte_rrc_LWA_Parameters_v1440;
+static int ett_lte_rrc_WLAN_IW_Parameters_v1310;
+static int ett_lte_rrc_LWIP_Parameters_r13;
+static int ett_lte_rrc_LWIP_Parameters_v1430;
+static int ett_lte_rrc_NAICS_Capability_List_r12;
+static int ett_lte_rrc_NAICS_Capability_Entry_r12;
+static int ett_lte_rrc_SL_Parameters_r12;
+static int ett_lte_rrc_SL_Parameters_v1310;
+static int ett_lte_rrc_SL_Parameters_v1430;
+static int ett_lte_rrc_SL_Parameters_v1530;
+static int ett_lte_rrc_SL_Parameters_v1540;
+static int ett_lte_rrc_SL_Parameters_v1610;
+static int ett_lte_rrc_SL_Parameters_v1630;
+static int ett_lte_rrc_SL_Parameters_v1710;
+static int ett_lte_rrc_UE_CategorySL_r15;
+static int ett_lte_rrc_V2X_SupportedBandCombination_r14;
+static int ett_lte_rrc_V2X_SupportedBandCombination_v1530;
+static int ett_lte_rrc_V2X_BandCombinationParameters_r14;
+static int ett_lte_rrc_V2X_BandCombinationParameters_v1530;
+static int ett_lte_rrc_V2X_SupportedBandCombinationEUTRA_NR_r16;
+static int ett_lte_rrc_V2X_SupportedBandCombinationEUTRA_NR_v1630;
+static int ett_lte_rrc_V2X_SupportedBandCombinationEUTRA_NR_v1710;
+static int ett_lte_rrc_V2X_BandCombinationParametersEUTRA_NR_v1630;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_V2X_BandParametersEUTRA_NR_r16;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_r10_OF_V2X_BandParametersEUTRA_NR_v1630;
+static int ett_lte_rrc_V2X_BandCombinationParametersEUTRA_NR_v1710;
+static int ett_lte_rrc_V2X_BandParametersEUTRA_NR_r16;
+static int ett_lte_rrc_T_eutra;
+static int ett_lte_rrc_T_nr;
+static int ett_lte_rrc_V2X_BandParametersEUTRA_NR_v1630;
+static int ett_lte_rrc_T_nr_01;
+static int ett_lte_rrc_V2X_BandParametersEUTRA_NR_v1710;
+static int ett_lte_rrc_SupportedBandInfoList_r12;
+static int ett_lte_rrc_SupportedBandInfo_r12;
+static int ett_lte_rrc_FreqBandIndicatorListEUTRA_r12;
+static int ett_lte_rrc_MMTEL_Parameters_r14;
+static int ett_lte_rrc_MMTEL_Parameters_v1610;
+static int ett_lte_rrc_SRS_CapabilityPerBandPair_r14;
+static int ett_lte_rrc_T_retuningInfo;
+static int ett_lte_rrc_SRS_CapabilityPerBandPair_v14b0;
+static int ett_lte_rrc_SRS_CapabilityPerBandPair_v1610;
+static int ett_lte_rrc_HighSpeedEnhParameters_r14;
+static int ett_lte_rrc_HighSpeedEnhParameters_v1610;
+static int ett_lte_rrc_UE_RadioPagingInfo_r12;
+static int ett_lte_rrc_UE_TimersAndConstants;
+static int ett_lte_rrc_VisitedCellInfoList_r12;
+static int ett_lte_rrc_VisitedCellInfo_r12;
+static int ett_lte_rrc_T_visitedCellId_r12;
+static int ett_lte_rrc_T_pci_arfcn_r12;
+static int ett_lte_rrc_WLAN_OffloadConfig_r12;
+static int ett_lte_rrc_T_thresholdRSRP_r12;
+static int ett_lte_rrc_T_thresholdRSRQ_r12;
+static int ett_lte_rrc_T_thresholdRSRQ_OnAllSymbolsWithWB_r12;
+static int ett_lte_rrc_T_thresholdRSRQ_OnAllSymbols_r12;
+static int ett_lte_rrc_T_thresholdRSRQ_WB_r12;
+static int ett_lte_rrc_T_thresholdChannelUtilization_r12;
+static int ett_lte_rrc_T_thresholdBackhaul_Bandwidth_r12;
+static int ett_lte_rrc_T_thresholdWLAN_RSSI_r12;
+static int ett_lte_rrc_MBMS_NotificationConfig_r9;
+static int ett_lte_rrc_MBMS_NotificationConfig_v1430;
+static int ett_lte_rrc_MBMS_ServiceList_r13;
+static int ett_lte_rrc_MBMS_ServiceInfo_r13;
+static int ett_lte_rrc_MBSFN_AreaInfoList_r9;
+static int ett_lte_rrc_MBSFN_AreaInfo_r9;
+static int ett_lte_rrc_T_mcch_Config_r9;
+static int ett_lte_rrc_T_mcch_Config_r14;
+static int ett_lte_rrc_MBSFN_AreaInfoList_r16;
+static int ett_lte_rrc_MBSFN_AreaInfo_r16;
+static int ett_lte_rrc_T_mcch_Config_r16;
+static int ett_lte_rrc_MBSFN_AreaInfoList_r17;
+static int ett_lte_rrc_MBSFN_AreaInfo_r17;
+static int ett_lte_rrc_MBSFN_SubframeConfig;
+static int ett_lte_rrc_T_subframeAllocation;
+static int ett_lte_rrc_MBSFN_SubframeConfig_v1430;
+static int ett_lte_rrc_T_subframeAllocation_v1430;
+static int ett_lte_rrc_MBSFN_SubframeConfig_v1610;
+static int ett_lte_rrc_T_subframeAllocation_v1610;
+static int ett_lte_rrc_PMCH_InfoList_r9;
+static int ett_lte_rrc_PMCH_InfoListExt_r12;
+static int ett_lte_rrc_PMCH_Info_r9;
+static int ett_lte_rrc_PMCH_InfoExt_r12;
+static int ett_lte_rrc_MBMS_SessionInfoList_r9;
+static int ett_lte_rrc_MBMS_SessionInfo_r9;
+static int ett_lte_rrc_PMCH_Config_r9;
+static int ett_lte_rrc_PMCH_Config_r12;
+static int ett_lte_rrc_T_dataMCS_r12;
+static int ett_lte_rrc_TMGI_r9;
+static int ett_lte_rrc_T_plmn_Id_r9;
+static int ett_lte_rrc_SC_MTCH_InfoList_r13;
+static int ett_lte_rrc_SC_MTCH_Info_r13;
+static int ett_lte_rrc_MBMSSessionInfo_r13;
+static int ett_lte_rrc_SC_MTCH_SchedulingInfo_r13;
+static int ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r13;
+static int ett_lte_rrc_SC_MTCH_InfoList_BR_r14;
+static int ett_lte_rrc_SC_MTCH_Info_BR_r14;
+static int ett_lte_rrc_T_mpdcch_StartSF_SC_MTCH_r14;
+static int ett_lte_rrc_SC_MTCH_SchedulingInfo_BR_r14;
+static int ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14_01;
+static int ett_lte_rrc_SCPTM_NeighbourCellList_r13;
+static int ett_lte_rrc_PCI_ARFCN_r13;
+static int ett_lte_rrc_SL_AnchorCarrierFreqList_V2X_r14;
+static int ett_lte_rrc_SL_CBR_CommonTxConfigList_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSL_V2X_CBRConfig_r14_OF_SL_CBR_Levels_Config_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxSL_V2X_TxConfig_r14_OF_SL_CBR_PSSCH_TxConfig_r14;
+static int ett_lte_rrc_SL_CBR_Levels_Config_r14;
+static int ett_lte_rrc_SL_CBR_PSSCH_TxConfig_r14;
+static int ett_lte_rrc_SL_CBR_PPPP_TxConfigList_r14;
+static int ett_lte_rrc_SL_PPPP_TxConfigIndex_r14;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r14_OF_Tx_ConfigIndex_r14;
+static int ett_lte_rrc_SL_CBR_PPPP_TxConfigList_v1530;
+static int ett_lte_rrc_SL_PPPP_TxConfigIndex_v1530;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r14_OF_MCS_PSSCH_Range_r15;
+static int ett_lte_rrc_MCS_PSSCH_Range_r15;
+static int ett_lte_rrc_SL_CBR_PPPP_TxConfigList_r15;
+static int ett_lte_rrc_SL_PPPP_TxConfigIndex_r15;
+static int ett_lte_rrc_SL_CommConfig_r12;
+static int ett_lte_rrc_T_commTxResources_r12;
+static int ett_lte_rrc_T_sL_CommConfig_r12_commTxResources_r12_setup;
+static int ett_lte_rrc_T_scheduled_r12;
+static int ett_lte_rrc_T_ue_Selected_r12;
+static int ett_lte_rrc_T_commTxPoolNormalDedicated_r12;
+static int ett_lte_rrc_T_commTxResources_v1310;
+static int ett_lte_rrc_T_sL_CommConfig_r12_eag_1_commTxResources_v1310_setup;
+static int ett_lte_rrc_T_scheduled_v1310;
+static int ett_lte_rrc_T_ue_Selected_v1310;
+static int ett_lte_rrc_T_commTxPoolNormalDedicatedExt_r13;
+static int ett_lte_rrc_LogicalChGroupInfoList_r13;
+static int ett_lte_rrc_SL_CommTxPoolToAddModList_r12;
+static int ett_lte_rrc_SL_CommTxPoolToAddModListExt_r13;
+static int ett_lte_rrc_SL_CommTxPoolToAddMod_r12;
+static int ett_lte_rrc_SL_CommTxPoolToAddModExt_r13;
+static int ett_lte_rrc_MAC_MainConfigSL_r12;
+static int ett_lte_rrc_SL_CommTxPoolList_r12;
+static int ett_lte_rrc_SL_CommTxPoolListExt_r13;
+static int ett_lte_rrc_SL_CommTxPoolListV2X_r14;
+static int ett_lte_rrc_SL_CommRxPoolList_r12;
+static int ett_lte_rrc_SL_CommRxPoolListV2X_r14;
+static int ett_lte_rrc_SL_CommResourcePool_r12;
+static int ett_lte_rrc_T_ue_SelectedResourceConfig_r12;
+static int ett_lte_rrc_T_rxParametersNCell_r12;
+static int ett_lte_rrc_T_txParameters_r12;
+static int ett_lte_rrc_SL_CommResourcePoolV2X_r14;
+static int ett_lte_rrc_T_rxParametersNCell_r14;
+static int ett_lte_rrc_SL_MinT2ValueList_r15;
+static int ett_lte_rrc_SL_MinT2Value_r15;
+static int ett_lte_rrc_SL_CommTxPoolSensingConfig_r14;
+static int ett_lte_rrc_T_p2x_SensingConfig_r14;
+static int ett_lte_rrc_SL_DiscConfig_r12;
+static int ett_lte_rrc_T_discTxResources_r12;
+static int ett_lte_rrc_T_sL_DiscConfig_r12_discTxResources_r12_setup;
+static int ett_lte_rrc_T_scheduled_r12_01;
+static int ett_lte_rrc_T_ue_Selected_r12_01;
+static int ett_lte_rrc_T_discTxPoolDedicated_r12;
+static int ett_lte_rrc_T_discTF_IndexList_v1260;
+static int ett_lte_rrc_T_sL_DiscConfig_r12_eag_1_discTF_IndexList_v1260_setup;
+static int ett_lte_rrc_T_discTxResourcesPS_r13;
+static int ett_lte_rrc_T_sL_DiscConfig_r12_eag_2_discTxResourcesPS_r13_setup;
+static int ett_lte_rrc_T_ue_Selected_r13;
+static int ett_lte_rrc_T_discTxInterFreqInfo_r13;
+static int ett_lte_rrc_T_sL_DiscConfig_r12_eag_2_discTxInterFreqInfo_r13_setup;
+static int ett_lte_rrc_T_discRxGapConfig_r13;
+static int ett_lte_rrc_T_discTxGapConfig_r13;
+static int ett_lte_rrc_T_discSysInfoToReportConfig_r13;
+static int ett_lte_rrc_SL_DiscSysInfoToReportFreqList_r13;
+static int ett_lte_rrc_SL_DiscTxInfoInterFreqListAdd_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_SL_DiscTxResourceInfoPerFreq_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreq_OF_ARFCN_ValueEUTRA_r9;
+static int ett_lte_rrc_SL_DiscTxResourceInfoPerFreq_r13;
+static int ett_lte_rrc_SL_DiscTxResource_r13;
+static int ett_lte_rrc_T_sL_DiscTxResource_r13_setup;
+static int ett_lte_rrc_SL_DiscTxPoolToAddModList_r12;
+static int ett_lte_rrc_SL_DiscTxPoolToAddMod_r12;
+static int ett_lte_rrc_SL_DiscTxConfigScheduled_r13;
+static int ett_lte_rrc_SL_DiscTxPoolDedicated_r13;
+static int ett_lte_rrc_SL_TF_IndexPairList_r12;
+static int ett_lte_rrc_SL_TF_IndexPair_r12;
+static int ett_lte_rrc_SL_TF_IndexPairList_r12b;
+static int ett_lte_rrc_SL_TF_IndexPair_r12b;
+static int ett_lte_rrc_SL_DiscTxRefCarrierDedicated_r13;
+static int ett_lte_rrc_SL_DiscTxPoolList_r12;
+static int ett_lte_rrc_SL_DiscRxPoolList_r12;
+static int ett_lte_rrc_SL_DiscResourcePool_r12;
+static int ett_lte_rrc_T_txParameters_r12_01;
+static int ett_lte_rrc_T_ue_SelectedResourceConfig_r12_01;
+static int ett_lte_rrc_T_poolSelection_r12;
+static int ett_lte_rrc_T_rxParameters_r12;
+static int ett_lte_rrc_T_discPeriod_v1310;
+static int ett_lte_rrc_T_rxParamsAddNeighFreq_r13;
+static int ett_lte_rrc_T_sL_DiscResourcePool_r12_eag_1_rxParamsAddNeighFreq_r13_setup;
+static int ett_lte_rrc_T_txParamsAddNeighFreq_r13;
+static int ett_lte_rrc_T_sL_DiscResourcePool_r12_eag_1_txParamsAddNeighFreq_r13_setup;
+static int ett_lte_rrc_T_freqInfo_01;
+static int ett_lte_rrc_T_txParamsAddNeighFreq_v1370;
+static int ett_lte_rrc_T_sL_DiscResourcePool_r12_eag_2_txParamsAddNeighFreq_v1370_setup;
+static int ett_lte_rrc_T_freqInfo_v1370;
+static int ett_lte_rrc_PhysCellIdList_r13;
+static int ett_lte_rrc_SL_PoolSelectionConfig_r12;
+static int ett_lte_rrc_SL_DiscSysInfoReport_r13;
+static int ett_lte_rrc_T_discCellSelectionInfo_r13;
+static int ett_lte_rrc_T_cellReselectionInfo_r13;
+static int ett_lte_rrc_T_freqInfo_r13;
+static int ett_lte_rrc_T_freqInfo_v1370_01;
+static int ett_lte_rrc_SL_DiscTxPowerInfoList_r12;
+static int ett_lte_rrc_SL_DiscTxPowerInfo_r12;
+static int ett_lte_rrc_SL_GapConfig_r13;
+static int ett_lte_rrc_SL_GapPatternList_r13;
+static int ett_lte_rrc_SL_GapPattern_r13;
+static int ett_lte_rrc_SL_GapRequest_r13;
+static int ett_lte_rrc_SL_GapFreqInfo_r13;
+static int ett_lte_rrc_SL_HoppingConfigComm_r12;
+static int ett_lte_rrc_SL_HoppingConfigDisc_r12;
+static int ett_lte_rrc_SL_InterFreqInfoListV2X_r14;
+static int ett_lte_rrc_SL_InterFreqInfoV2X_r14;
+static int ett_lte_rrc_T_additionalSpectrumEmissionV2X_r14;
+static int ett_lte_rrc_SL_NR_AnchorCarrierFreqList_r16;
+static int ett_lte_rrc_SL_V2X_UE_ConfigList_r14;
+static int ett_lte_rrc_SL_V2X_InterFreqUE_Config_r14;
+static int ett_lte_rrc_SL_OffsetIndicator_r12;
+static int ett_lte_rrc_SL_P2X_ResourceSelectionConfig_r14;
+static int ett_lte_rrc_SL_PriorityList_r13;
+static int ett_lte_rrc_SL_PSSCH_TxConfigList_r14;
+static int ett_lte_rrc_SL_PSSCH_TxConfig_r14;
+static int ett_lte_rrc_SL_PSSCH_TxParameters_r14;
+static int ett_lte_rrc_SL_PSSCH_TxParameters_v1530;
+static int ett_lte_rrc_SL_ReliabilityList_r15;
+static int ett_lte_rrc_SL_RestrictResourceReservationPeriodList_r14;
+static int ett_lte_rrc_SL_SyncAllowed_r14;
+static int ett_lte_rrc_SL_SyncConfigList_r12;
+static int ett_lte_rrc_SL_SyncConfigListV2X_r14;
+static int ett_lte_rrc_SL_SyncConfig_r12;
+static int ett_lte_rrc_T_txParameters_r12_02;
+static int ett_lte_rrc_T_rxParamsNCell_r12;
+static int ett_lte_rrc_SL_SyncConfigListNFreq_r13;
+static int ett_lte_rrc_SL_SyncConfigListNFreqV2X_r14;
+static int ett_lte_rrc_SL_SyncConfigNFreq_r13;
+static int ett_lte_rrc_T_asyncParameters_r13;
+static int ett_lte_rrc_T_txParameters_r13;
+static int ett_lte_rrc_T_rxParameters_r13;
+static int ett_lte_rrc_SL_TF_ResourceConfig_r12;
+static int ett_lte_rrc_SubframeBitmapSL_r12;
+static int ett_lte_rrc_SubframeBitmapSL_r14;
+static int ett_lte_rrc_SL_TxPower_r14;
+static int ett_lte_rrc_SL_ThresPSSCH_RSRP_List_r14;
+static int ett_lte_rrc_SL_TxParameters_r12;
+static int ett_lte_rrc_SL_TxPoolToReleaseList_r12;
+static int ett_lte_rrc_SL_TxPoolToReleaseListExt_r13;
+static int ett_lte_rrc_SL_V2X_ConfigDedicated_r14;
+static int ett_lte_rrc_T_commTxResources_r14;
+static int ett_lte_rrc_T_sL_V2X_ConfigDedicated_r14_commTxResources_r14_setup;
+static int ett_lte_rrc_T_scheduled_r14;
+static int ett_lte_rrc_T_ue_Selected_r14;
+static int ett_lte_rrc_T_v2x_CommTxPoolNormalDedicated_r14;
+static int ett_lte_rrc_T_commTxResources_v1530;
+static int ett_lte_rrc_T_sL_V2X_ConfigDedicated_r14_eag_1_commTxResources_v1530_setup;
+static int ett_lte_rrc_T_scheduled_v1530;
+static int ett_lte_rrc_T_ue_Selected_v1530;
+static int ett_lte_rrc_LogicalChGroupInfoList_v1530;
+static int ett_lte_rrc_SL_TxPoolToAddModListV2X_r14;
+static int ett_lte_rrc_SL_TxPoolToAddMod_r14;
+static int ett_lte_rrc_SL_TxPoolToReleaseListV2X_r14;
+static int ett_lte_rrc_SL_V2X_FreqSelectionConfigList_r15;
+static int ett_lte_rrc_SL_V2X_FreqSelectionConfig_r15;
+static int ett_lte_rrc_SL_V2X_PacketDuplicationConfig_r15;
+static int ett_lte_rrc_SL_PPPR_Dest_CarrierFreqList_r15;
+static int ett_lte_rrc_SL_PPPR_Dest_CarrierFreq;
+static int ett_lte_rrc_SL_AllowedCarrierFreqList_r15;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreqV2X_r14_OF_ARFCN_ValueEUTRA_r9;
+static int ett_lte_rrc_SL_V2X_SyncFreqList_r15;
+static int ett_lte_rrc_SL_ZoneConfig_r14;
+static int ett_lte_rrc_SBCCH_SL_BCH_Message;
+static int ett_lte_rrc_SBCCH_SL_BCH_Message_V2X_r14;
+static int ett_lte_rrc_MasterInformationBlock_SL;
+static int ett_lte_rrc_MasterInformationBlock_SL_V2X_r14;
+static int ett_lte_rrc_HandoverPreparationInformation_NB;
+static int ett_lte_rrc_T_criticalExtensions_62;
+static int ett_lte_rrc_T_c1_51;
+static int ett_lte_rrc_T_criticalExtensionsFuture_60;
+static int ett_lte_rrc_HandoverPreparationInformation_NB_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_NB_v1380_IEs;
+static int ett_lte_rrc_HandoverPreparationInformation_NB_Ext_r14_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_85;
+static int ett_lte_rrc_UEPagingCoverageInformation_NB;
+static int ett_lte_rrc_T_criticalExtensions_63;
+static int ett_lte_rrc_T_c1_52;
+static int ett_lte_rrc_T_criticalExtensionsFuture_61;
+static int ett_lte_rrc_UEPagingCoverageInformation_NB_IEs;
+static int ett_lte_rrc_UEPagingCoverageInformation_NB_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_86;
+static int ett_lte_rrc_UERadioAccessCapabilityInformation_NB;
+static int ett_lte_rrc_T_criticalExtensions_64;
+static int ett_lte_rrc_T_c1_53;
+static int ett_lte_rrc_T_criticalExtensionsFuture_62;
+static int ett_lte_rrc_UERadioAccessCapabilityInformation_NB_IEs;
+static int ett_lte_rrc_UERadioAccessCapabilityInformation_NB_v1380_IEs;
+static int ett_lte_rrc_UERadioAccessCapabilityInformation_NB_r14_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_87;
+static int ett_lte_rrc_UERadioPagingInformation_NB;
+static int ett_lte_rrc_T_criticalExtensions_65;
+static int ett_lte_rrc_T_c1_54;
+static int ett_lte_rrc_T_criticalExtensionsFuture_63;
+static int ett_lte_rrc_UERadioPagingInformation_NB_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_88;
+static int ett_lte_rrc_AS_Config_NB;
+static int ett_lte_rrc_AS_Context_NB;
+static int ett_lte_rrc_ReestablishmentInfo_NB;
+static int ett_lte_rrc_RRM_Config_NB;
+static int ett_lte_rrc_BCCH_BCH_Message_NB;
+static int ett_lte_rrc_BCCH_BCH_Message_TDD_NB;
+static int ett_lte_rrc_BCCH_DL_SCH_Message_NB;
+static int ett_lte_rrc_BCCH_DL_SCH_MessageType_NB;
+static int ett_lte_rrc_T_c1_55;
+static int ett_lte_rrc_T_messageClassExtension_10;
+static int ett_lte_rrc_PCCH_Message_NB;
+static int ett_lte_rrc_PCCH_MessageType_NB;
+static int ett_lte_rrc_T_c1_56;
+static int ett_lte_rrc_T_messageClassExtension_11;
+static int ett_lte_rrc_DL_CCCH_Message_NB;
+static int ett_lte_rrc_DL_CCCH_MessageType_NB;
+static int ett_lte_rrc_T_c1_57;
+static int ett_lte_rrc_T_messageClassExtension_12;
+static int ett_lte_rrc_DL_DCCH_Message_NB;
+static int ett_lte_rrc_DL_DCCH_MessageType_NB;
+static int ett_lte_rrc_T_c1_58;
+static int ett_lte_rrc_T_messageClassExtension_13;
+static int ett_lte_rrc_UL_CCCH_Message_NB;
+static int ett_lte_rrc_UL_CCCH_MessageType_NB;
+static int ett_lte_rrc_T_c1_59;
+static int ett_lte_rrc_T_messageClassExtension_14;
+static int ett_lte_rrc_SC_MCCH_Message_NB;
+static int ett_lte_rrc_SC_MCCH_MessageType_NB;
+static int ett_lte_rrc_T_c1_60;
+static int ett_lte_rrc_T_messageClassExtension_15;
+static int ett_lte_rrc_UL_DCCH_Message_NB;
+static int ett_lte_rrc_UL_DCCH_MessageType_NB;
+static int ett_lte_rrc_T_c1_61;
+static int ett_lte_rrc_T_messageClassExtension_16;
+static int ett_lte_rrc_DLInformationTransfer_NB;
+static int ett_lte_rrc_T_criticalExtensions_66;
+static int ett_lte_rrc_T_c1_62;
+static int ett_lte_rrc_T_criticalExtensionsFuture_64;
+static int ett_lte_rrc_DLInformationTransfer_NB_r13_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_89;
+static int ett_lte_rrc_MasterInformationBlock_NB;
+static int ett_lte_rrc_T_operationModeInfo_r13;
+static int ett_lte_rrc_T_partEARFCN_r17_01;
+static int ett_lte_rrc_Guardband_NB_r13;
+static int ett_lte_rrc_Inband_SamePCI_NB_r13;
+static int ett_lte_rrc_Inband_DifferentPCI_NB_r13;
+static int ett_lte_rrc_Standalone_NB_r13;
+static int ett_lte_rrc_MasterInformationBlock_TDD_NB_r15;
+static int ett_lte_rrc_T_operationModeInfo_r15;
+static int ett_lte_rrc_GuardbandTDD_NB_r15;
+static int ett_lte_rrc_T_sib_GuardbandInfo_r15;
+static int ett_lte_rrc_Inband_SamePCI_TDD_NB_r15;
+static int ett_lte_rrc_Inband_DifferentPCI_TDD_NB_r15;
+static int ett_lte_rrc_StandaloneTDD_NB_r15;
+static int ett_lte_rrc_SIB_GuardbandAnchorTDD_NB_r15;
+static int ett_lte_rrc_SIB_GuardbandGuardbandTDD_NB_r15;
+static int ett_lte_rrc_SIB_GuardbandInbandSamePCI_TDD_NB_r15;
+static int ett_lte_rrc_SIB_GuardbandInbandDiffPCI_TDD_NB_r15;
+static int ett_lte_rrc_Paging_NB;
+static int ett_lte_rrc_Paging_NB_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_90;
+static int ett_lte_rrc_PagingRecordList_NB_r13;
+static int ett_lte_rrc_PagingRecordList_NB_v1610;
+static int ett_lte_rrc_PagingRecord_NB_r13;
+static int ett_lte_rrc_PagingRecord_NB_v1610;
+static int ett_lte_rrc_PURConfigurationRequest_NB_r16;
+static int ett_lte_rrc_T_criticalExtensions_67;
+static int ett_lte_rrc_T_criticalExtensionsFuture_65;
+static int ett_lte_rrc_PURConfigurationRequest_NB_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_91;
+static int ett_lte_rrc_PUR_ConfigRequest_NB_r16;
+static int ett_lte_rrc_T_pur_SetupRequest_01;
+static int ett_lte_rrc_RRCConnectionReconfiguration_NB;
+static int ett_lte_rrc_T_criticalExtensions_68;
+static int ett_lte_rrc_T_c1_63;
+static int ett_lte_rrc_T_criticalExtensionsFuture_66;
+static int ett_lte_rrc_RRCConnectionReconfiguration_NB_r13_IEs;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_NB_r13_OF_DedicatedInfoNAS;
+static int ett_lte_rrc_RRCConnectionReconfiguration_NB_v16f0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_92;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_NB;
+static int ett_lte_rrc_T_criticalExtensions_69;
+static int ett_lte_rrc_T_criticalExtensionsFuture_67;
+static int ett_lte_rrc_RRCConnectionReconfigurationComplete_NB_r13_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_93;
+static int ett_lte_rrc_RRCConnectionReestablishment_NB;
+static int ett_lte_rrc_T_criticalExtensions_70;
+static int ett_lte_rrc_T_c1_64;
+static int ett_lte_rrc_T_criticalExtensionsFuture_68;
+static int ett_lte_rrc_RRCConnectionReestablishment_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishment_NB_v1430_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_94;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_NB;
+static int ett_lte_rrc_T_criticalExtensions_71;
+static int ett_lte_rrc_T_criticalExtensionsFuture_69;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1470_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_95;
+static int ett_lte_rrc_RRCConnectionReestablishmentRequest_NB;
+static int ett_lte_rrc_T_criticalExtensions_72;
+static int ett_lte_rrc_T_later_01;
+static int ett_lte_rrc_T_later_02;
+static int ett_lte_rrc_T_criticalExtensionsFuture_70;
+static int ett_lte_rrc_RRCConnectionReestablishmentRequest_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentRequest_NB_r14_IEs;
+static int ett_lte_rrc_RRCConnectionReestablishmentRequest_5GC_NB_r16_IEs;
+static int ett_lte_rrc_ReestabUE_Identity_CP_NB_r14;
+static int ett_lte_rrc_ReestabUE_Identity_CP_5GC_NB_r16;
+static int ett_lte_rrc_RRCConnectionReject_NB;
+static int ett_lte_rrc_T_criticalExtensions_73;
+static int ett_lte_rrc_T_c1_65;
+static int ett_lte_rrc_T_criticalExtensionsFuture_71;
+static int ett_lte_rrc_RRCConnectionReject_NB_r13_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_96;
+static int ett_lte_rrc_RRCConnectionRelease_NB;
+static int ett_lte_rrc_T_criticalExtensions_74;
+static int ett_lte_rrc_T_c1_66;
+static int ett_lte_rrc_T_criticalExtensionsFuture_72;
+static int ett_lte_rrc_RRCConnectionRelease_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_NB_v1430_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_NB_v1530_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_NB_v1550_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_NB_v15b0_IEs;
+static int ett_lte_rrc_RRCConnectionRelease_NB_v1610_IEs;
+static int ett_lte_rrc_T_pur_Config_r16_01;
+static int ett_lte_rrc_RRCConnectionRelease_NB_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_97;
+static int ett_lte_rrc_RedirectedCarrierInfo_NB_v1430;
+static int ett_lte_rrc_RRCConnectionRequest_NB;
+static int ett_lte_rrc_T_criticalExtensions_75;
+static int ett_lte_rrc_T_later_03;
+static int ett_lte_rrc_T_criticalExtensionsFuture_73;
+static int ett_lte_rrc_RRCConnectionRequest_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionRequest_5GC_NB_r16_IEs;
+static int ett_lte_rrc_InitialUE_Identity_5GC_NB_r16;
+static int ett_lte_rrc_RRCConnectionResume_NB;
+static int ett_lte_rrc_T_criticalExtensions_76;
+static int ett_lte_rrc_T_c1_67;
+static int ett_lte_rrc_T_criticalExtensionsFuture_74;
+static int ett_lte_rrc_RRCConnectionResume_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionResume_NB_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionResume_NB_v16f0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_98;
+static int ett_lte_rrc_RRCConnectionResumeComplete_NB;
+static int ett_lte_rrc_T_criticalExtensions_77;
+static int ett_lte_rrc_T_criticalExtensionsFuture_75;
+static int ett_lte_rrc_RRCConnectionResumeComplete_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionResumeComplete_NB_v1470_IEs;
+static int ett_lte_rrc_RRCConnectionResumeComplete_NB_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionResumeComplete_NB_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_99;
+static int ett_lte_rrc_RRCConnectionResumeRequest_NB;
+static int ett_lte_rrc_T_criticalExtensions_78;
+static int ett_lte_rrc_T_later_04;
+static int ett_lte_rrc_T_criticalExtensionsFuture_76;
+static int ett_lte_rrc_RRCConnectionResumeRequest_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionResumeRequest_5GC_NB_r16_IEs;
+static int ett_lte_rrc_RRCConnectionSetup_NB;
+static int ett_lte_rrc_T_criticalExtensions_79;
+static int ett_lte_rrc_T_c1_68;
+static int ett_lte_rrc_T_criticalExtensionsFuture_77;
+static int ett_lte_rrc_RRCConnectionSetup_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionSetup_NB_v1610_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_100;
+static int ett_lte_rrc_RRCConnectionSetupComplete_NB;
+static int ett_lte_rrc_T_criticalExtensions_80;
+static int ett_lte_rrc_T_criticalExtensionsFuture_78;
+static int ett_lte_rrc_RRCConnectionSetupComplete_NB_r13_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_NB_v1430_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_NB_v1470_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_NB_v1610_IEs;
+static int ett_lte_rrc_RRCConnectionSetupComplete_NB_v1710_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_101;
+static int ett_lte_rrc_RRCEarlyDataComplete_NB_r15;
+static int ett_lte_rrc_T_criticalExtensions_81;
+static int ett_lte_rrc_T_criticalExtensionsFuture_79;
+static int ett_lte_rrc_RRCEarlyDataComplete_NB_r15_IEs;
+static int ett_lte_rrc_RRCEarlyDataComplete_NB_v1590_IEs;
+static int ett_lte_rrc_RRCEarlyDataComplete_NB_v1700_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_102;
+static int ett_lte_rrc_RRCEarlyDataRequest_NB_r15;
+static int ett_lte_rrc_T_criticalExtensions_82;
+static int ett_lte_rrc_T_later_05;
+static int ett_lte_rrc_T_criticalExtensionsFuture_80;
+static int ett_lte_rrc_RRCEarlyDataRequest_NB_r15_IEs;
+static int ett_lte_rrc_RRCEarlyDataRequest_NB_v1590_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_103;
+static int ett_lte_rrc_RRCEarlyDataRequest_5GC_NB_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_104;
+static int ett_lte_rrc_SCPTMConfiguration_NB_r14;
+static int ett_lte_rrc_SCPTMConfiguration_NB_v1610;
+static int ett_lte_rrc_T_nonCriticalExtension_105;
+static int ett_lte_rrc_SystemInformation_NB;
+static int ett_lte_rrc_T_criticalExtensions_83;
+static int ett_lte_rrc_T_criticalExtensionsFuture_81;
+static int ett_lte_rrc_SystemInformation_NB_r13_IEs;
+static int ett_lte_rrc_T_sib_TypeAndInfo_r13;
+static int ett_lte_rrc_T_sib_TypeAndInfo_r13_item;
+static int ett_lte_rrc_T_nonCriticalExtension_106;
+static int ett_lte_rrc_SystemInformationBlockType1_NB;
+static int ett_lte_rrc_T_cellAccessRelatedInfo_r13;
+static int ett_lte_rrc_T_cellSelectionInfo_r13;
+static int ett_lte_rrc_SystemInformationBlockType1_NB_v1350;
+static int ett_lte_rrc_SystemInformationBlockType1_NB_v1430;
+static int ett_lte_rrc_SystemInformationBlockType1_NB_v1450;
+static int ett_lte_rrc_SystemInformationBlockType1_NB_v1530;
+static int ett_lte_rrc_T_tdd_Parameters_r15;
+static int ett_lte_rrc_SystemInformationBlockType1_NB_v1610;
+static int ett_lte_rrc_T_cellAccessRelatedInfo_5GC_r16;
+static int ett_lte_rrc_SystemInformationBlockType1_NB_v1700;
+static int ett_lte_rrc_T_cellAccessRelatedInfo_NTN_r17_01;
+static int ett_lte_rrc_T_nonCriticalExtension_107;
+static int ett_lte_rrc_PLMN_IdentityList_NB_r13;
+static int ett_lte_rrc_PLMN_IdentityList_5GC_NB_r16;
+static int ett_lte_rrc_PLMN_IdentityList_NB_v1700;
+static int ett_lte_rrc_PLMN_IdentityInfo_NB_r13;
+static int ett_lte_rrc_PLMN_IdentityInfo_5GC_NB_r16;
+static int ett_lte_rrc_T_plmn_Identity_5GC_r16;
+static int ett_lte_rrc_PLMN_IdentityInfo_NB_v1700;
+static int ett_lte_rrc_TrackingAreaList_NB_r17;
+static int ett_lte_rrc_SchedulingInfoList_NB_r13;
+static int ett_lte_rrc_SchedulingInfoList_NB_v1530;
+static int ett_lte_rrc_SchedulingInfo_NB_r13;
+static int ett_lte_rrc_SchedulingInfo_NB_v1530;
+static int ett_lte_rrc_SystemInfoValueTagList_NB_r13;
+static int ett_lte_rrc_SIB_MappingInfo_NB_r13;
+static int ett_lte_rrc_SIB_MappingInfo_NB_v1530;
+static int ett_lte_rrc_CellSelectionInfo_NB_v1350;
+static int ett_lte_rrc_CellSelectionInfo_NB_v1430;
+static int ett_lte_rrc_UECapabilityEnquiry_NB;
+static int ett_lte_rrc_T_criticalExtensions_84;
+static int ett_lte_rrc_T_c1_69;
+static int ett_lte_rrc_T_criticalExtensionsFuture_82;
+static int ett_lte_rrc_UECapabilityEnquiry_NB_r13_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_108;
+static int ett_lte_rrc_UECapabilityInformation_NB;
+static int ett_lte_rrc_T_criticalExtensions_85;
+static int ett_lte_rrc_T_criticalExtensionsFuture_83;
+static int ett_lte_rrc_UECapabilityInformation_NB_r13_IEs;
+static int ett_lte_rrc_UECapabilityInformation_NB_Ext_r14_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_109;
+static int ett_lte_rrc_UEInformationRequest_NB_r16;
+static int ett_lte_rrc_T_criticalExtensions_86;
+static int ett_lte_rrc_T_criticalExtensionsFuture_84;
+static int ett_lte_rrc_UEInformationRequest_NB_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_110;
+static int ett_lte_rrc_UEInformationResponse_NB_r16;
+static int ett_lte_rrc_T_criticalExtensions_87;
+static int ett_lte_rrc_T_criticalExtensionsFuture_85;
+static int ett_lte_rrc_UEInformationResponse_NB_r16_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_111;
+static int ett_lte_rrc_RACH_Report_NB_r16;
+static int ett_lte_rrc_RLF_Report_NB_r16;
+static int ett_lte_rrc_T_measResultLastServCell_r16;
+static int ett_lte_rrc_ULInformationTransfer_NB;
+static int ett_lte_rrc_T_criticalExtensions_88;
+static int ett_lte_rrc_T_criticalExtensionsFuture_86;
+static int ett_lte_rrc_ULInformationTransfer_NB_r13_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_112;
+static int ett_lte_rrc_SystemInformationBlockType2_NB_r13;
+static int ett_lte_rrc_T_freqInfo_r13_01;
+static int ett_lte_rrc_AdditionalSpectrumEmission_r13;
+static int ett_lte_rrc_T_freqInfo_v1530;
+static int ett_lte_rrc_SystemInformationBlockType3_NB_r13;
+static int ett_lte_rrc_T_cellReselectionInfoCommon_r13;
+static int ett_lte_rrc_T_cellReselectionServingFreqInfo_r13;
+static int ett_lte_rrc_T_intraFreqCellReselectionInfo_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxMultiBands_OF_NS_PmaxList_NB_r13;
+static int ett_lte_rrc_IntraFreqCellReselectionInfo_NB_v1350;
+static int ett_lte_rrc_IntraFreqCellReselectionInfo_NB_v1360;
+static int ett_lte_rrc_IntraFreqCellReselectionInfo_NB_v1430;
+static int ett_lte_rrc_CellReselectionInfoCommon_NB_v1450;
+static int ett_lte_rrc_ConnMeasConfig_NB_r17;
+static int ett_lte_rrc_T_neighCellMeasCriteria_r17;
+static int ett_lte_rrc_SystemInformationBlockType4_NB_r13;
+static int ett_lte_rrc_IntraFreqNeighCellList_NB_v1530;
+static int ett_lte_rrc_IntraFreqNeighCellInfo_NB_v1530;
+static int ett_lte_rrc_SystemInformationBlockType5_NB_r13;
+static int ett_lte_rrc_InterFreqCarrierFreqList_NB_r13;
+static int ett_lte_rrc_InterFreqCarrierFreqInfo_NB_r13;
+static int ett_lte_rrc_InterFreqNeighCellList_NB_r13;
+static int ett_lte_rrc_InterFreqNeighCellList_NB_v1530;
+static int ett_lte_rrc_InterFreqNeighCellInfo_NB_v1530;
+static int ett_lte_rrc_InterFreqExcludedCellList_NB_r13;
+static int ett_lte_rrc_SystemInformationBlockType14_NB_r13;
+static int ett_lte_rrc_T_ab_Param_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_AB_ConfigPLMN_NB_r13;
+static int ett_lte_rrc_AB_ConfigPLMN_NB_r13;
+static int ett_lte_rrc_AB_Config_NB_r13;
+static int ett_lte_rrc_UAC_Param_NB_r16;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxPLMN_r11_OF_UAC_Barring_NB_r16;
+static int ett_lte_rrc_UAC_Barring_NB_r16;
+static int ett_lte_rrc_UAC_BarringPerCatList_NB_r16;
+static int ett_lte_rrc_UAC_BarringPerCat_NB_r16;
+static int ett_lte_rrc_SystemInformationBlockType15_NB_r14;
+static int ett_lte_rrc_MBMS_SAI_InterFreqList_NB_r14;
+static int ett_lte_rrc_MBMS_SAI_InterFreq_NB_r14;
+static int ett_lte_rrc_SystemInformationBlockType20_NB_r14;
+static int ett_lte_rrc_T_sc_mcch_CarrierConfig_r14;
+static int ett_lte_rrc_NPDCCH_SC_MCCH_Config_NB_r14;
+static int ett_lte_rrc_SC_MCCH_SchedulingInfo_NB_r14;
+static int ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14_02;
+static int ett_lte_rrc_SystemInformationBlockType22_NB_r14;
+static int ett_lte_rrc_T_mixedOperationModeConfig_r15;
+static int ett_lte_rrc_DL_ConfigCommonList_NB_r14;
+static int ett_lte_rrc_UL_ConfigCommonList_NB_r14;
+static int ett_lte_rrc_UL_ConfigCommonListTDD_NB_r15;
+static int ett_lte_rrc_CoverageBasedPagingConfig_NB_r17;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_2_OF_CBP_Config_NB_r17;
+static int ett_lte_rrc_CBP_Config_NB_r17;
+static int ett_lte_rrc_DL_ConfigCommon_NB_r14;
+static int ett_lte_rrc_PCCH_Config_NB_r14;
+static int ett_lte_rrc_PCCH_Config_NB_r17;
+static int ett_lte_rrc_UL_ConfigCommon_NB_r14;
+static int ett_lte_rrc_UL_ConfigCommonTDD_NB_r15;
+static int ett_lte_rrc_NPRACH_ProbabilityAnchorList_NB_r14;
+static int ett_lte_rrc_NPRACH_ProbabilityAnchor_NB_r14;
+static int ett_lte_rrc_SystemInformationBlockType23_NB_r15;
+static int ett_lte_rrc_UL_ConfigCommonList_NB_v1530;
+static int ett_lte_rrc_UL_ConfigCommon_NB_v1530;
+static int ett_lte_rrc_SystemInformationBlockType27_NB_r16;
+static int ett_lte_rrc_CarrierFreqListEUTRA_NB_r16;
+static int ett_lte_rrc_CarrierFreqsListGERAN_NB_r16;
+static int ett_lte_rrc_CarrierFreqEUTRA_NB_r16;
+static int ett_lte_rrc_CarrierFreqsGERAN_NB_r16;
+static int ett_lte_rrc_SystemInformationBlockType31_NB_r17;
+static int ett_lte_rrc_SystemInformationBlockType32_NB_r17;
+static int ett_lte_rrc_CarrierConfigDedicated_NB_r13;
+static int ett_lte_rrc_DL_CarrierConfigDedicated_NB_r13;
+static int ett_lte_rrc_T_downlinkBitmapNonAnchor_r13;
+static int ett_lte_rrc_T_dl_GapNonAnchor_r13;
+static int ett_lte_rrc_T_inbandCarrierInfo_r13;
+static int ett_lte_rrc_T_samePCI_Indicator_r13;
+static int ett_lte_rrc_T_samePCI_r13;
+static int ett_lte_rrc_T_differentPCI_r13;
+static int ett_lte_rrc_UL_CarrierConfigDedicated_NB_r13;
+static int ett_lte_rrc_CarrierFreq_NB_r13;
+static int ett_lte_rrc_CarrierFreq_NB_v1550;
+static int ett_lte_rrc_DL_Bitmap_NB_r13;
+static int ett_lte_rrc_DL_CarrierConfigCommon_NB_r14;
+static int ett_lte_rrc_T_downlinkBitmapNonAnchor_r14;
+static int ett_lte_rrc_T_dl_GapNonAnchor_r14;
+static int ett_lte_rrc_T_inbandCarrierInfo_r14;
+static int ett_lte_rrc_T_samePCI_Indicator_r14;
+static int ett_lte_rrc_T_samePCI_r14;
+static int ett_lte_rrc_T_differentPCI_r14;
+static int ett_lte_rrc_DL_GapConfig_NB_r13;
+static int ett_lte_rrc_DL_GapConfig_NB_v1530;
+static int ett_lte_rrc_GWUS_Config_NB_r16;
+static int ett_lte_rrc_GWUS_ResourceConfig_NB_r16;
+static int ett_lte_rrc_GWUS_ProbThreshList_NB_r16;
+static int ett_lte_rrc_GWUS_NumGroupsList_NB_r16;
+static int ett_lte_rrc_GWUS_GroupsForServiceList_NB_r16;
+static int ett_lte_rrc_LogicalChannelConfig_NB_r13;
+static int ett_lte_rrc_MAC_MainConfig_NB_r13;
+static int ett_lte_rrc_T_ul_SCH_Config_r13;
+static int ett_lte_rrc_T_logicalChannelSR_Config_r13;
+static int ett_lte_rrc_T_mAC_MainConfig_NB_r13_logicalChannelSR_Config_r13_setup;
+static int ett_lte_rrc_T_dataInactivityTimerConfig_r14_01;
+static int ett_lte_rrc_T_mAC_MainConfig_NB_r13_eag_1_dataInactivityTimerConfig_r14_setup;
+static int ett_lte_rrc_T_offsetThresholdTA_r17_01;
+static int ett_lte_rrc_DRX_Config_NB_r13;
+static int ett_lte_rrc_T_dRX_Config_NB_r13_setup;
+static int ett_lte_rrc_NPDCCH_ConfigDedicated_NB_r13;
+static int ett_lte_rrc_NPDCCH_ConfigDedicated_NB_v1530;
+static int ett_lte_rrc_NPDSCH_ConfigCommon_NB_r13;
+static int ett_lte_rrc_NPDSCH_ConfigDedicated_NB_r16;
+static int ett_lte_rrc_NPDSCH_MultiTB_Config_NB_r16;
+static int ett_lte_rrc_NPDSCH_ConfigDedicated_NB_v1710;
+static int ett_lte_rrc_T_npdsch_16QAM_Config_r17;
+static int ett_lte_rrc_NPDSCH_16QAM_Config_NB_r17;
+static int ett_lte_rrc_NPRACH_ConfigSIB_NB_r13;
+static int ett_lte_rrc_NPRACH_ConfigSIB_NB_v1330;
+static int ett_lte_rrc_NPRACH_ConfigSIB_NB_v1450;
+static int ett_lte_rrc_NPRACH_ConfigSIB_NB_v1530;
+static int ett_lte_rrc_T_tdd_Parameters_r15_01;
+static int ett_lte_rrc_T_fmt2_Parameters_r15;
+static int ett_lte_rrc_T_edt_Parameters_r15_01;
+static int ett_lte_rrc_NPRACH_ConfigSIB_NB_v1550;
+static int ett_lte_rrc_T_tdd_Parameters_v1550;
+static int ett_lte_rrc_NPRACH_ParametersList_NB_r13;
+static int ett_lte_rrc_NPRACH_ParametersList_NB_v1330;
+static int ett_lte_rrc_NPRACH_Parameters_NB_r13;
+static int ett_lte_rrc_NPRACH_Parameters_NB_v1330;
+static int ett_lte_rrc_NPRACH_ParametersList_NB_r14;
+static int ett_lte_rrc_NPRACH_Parameters_NB_r14;
+static int ett_lte_rrc_T_nprach_Parameters_r14;
+static int ett_lte_rrc_NPRACH_ParametersListTDD_NB_r15;
+static int ett_lte_rrc_NPRACH_ParametersTDD_NB_r15;
+static int ett_lte_rrc_T_nprach_Parameters_r15;
+static int ett_lte_rrc_NPRACH_ParametersListTDD_NB_v1550;
+static int ett_lte_rrc_NPRACH_ParametersTDD_NB_v1550;
+static int ett_lte_rrc_NPRACH_ParametersListFmt2_NB_r15;
+static int ett_lte_rrc_NPRACH_ParametersFmt2_NB_r15;
+static int ett_lte_rrc_T_nprach_Parameters_r15_01;
+static int ett_lte_rrc_NPRACH_TxDurationFmt01_NB_r17;
+static int ett_lte_rrc_NPRACH_TxDurationFmt2_NB_r17;
+static int ett_lte_rrc_RSRP_ThresholdsNPRACH_InfoList_NB_r13;
+static int ett_lte_rrc_EDT_TBS_InfoList_NB_r15;
+static int ett_lte_rrc_EDT_TBS_NB_r15;
+static int ett_lte_rrc_NPUSCH_ConfigCommon_NB_r13;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxNPRACH_Resources_NB_r13_OF_ACK_NACK_NumRepetitions_NB_r13;
+static int ett_lte_rrc_T_dmrs_Config_r13;
+static int ett_lte_rrc_UL_ReferenceSignalsNPUSCH_NB_r13;
+static int ett_lte_rrc_NPUSCH_ConfigDedicated_NB_r13;
+static int ett_lte_rrc_NPUSCH_ConfigDedicated_NB_v1610;
+static int ett_lte_rrc_NPUSCH_ConfigDedicated_NB_v1700;
+static int ett_lte_rrc_NPUSCH_TxDuration_NB_r17;
+static int ett_lte_rrc_PDCP_Config_NB_r13;
+static int ett_lte_rrc_T_headerCompression_r13;
+static int ett_lte_rrc_T_rohc_01;
+static int ett_lte_rrc_T_profiles_r13;
+static int ett_lte_rrc_PhysicalConfigDedicated_NB_r13;
+static int ett_lte_rrc_T_resourceReservationConfigDL_r16;
+static int ett_lte_rrc_T_resourceReservationConfigUL_r16;
+static int ett_lte_rrc_T_ntn_ConfigDedicated_r17_01;
+static int ett_lte_rrc_T_npusch_TxDuration_r17_01;
+static int ett_lte_rrc_PUR_Config_NB_r16;
+static int ett_lte_rrc_T_pur_NRSRP_ChangeThreshold_r16;
+static int ett_lte_rrc_T_pur_StartTimeParameters_r16_01;
+static int ett_lte_rrc_T_pur_PhysicalConfig_r16;
+static int ett_lte_rrc_T_npusch_SubCarrierSetIndex_r16;
+static int ett_lte_rrc_T_npusch_MCS_r16;
+static int ett_lte_rrc_T_pur_PhysicalConfig_v1650;
+static int ett_lte_rrc_T_pur_PhysicalConfig_v1700;
+static int ett_lte_rrc_T_pur_UL_16QAM_Config_r17;
+static int ett_lte_rrc_T_pur_DL_16QAM_Config_r17;
+static int ett_lte_rrc_PUR_NRSRP_ChangeThreshold_NB_r16;
+static int ett_lte_rrc_PUR_UL_16QAM_Config_NB_r17;
+static int ett_lte_rrc_PUR_PeriodicityAndOffset_NB_r16;
+static int ett_lte_rrc_RACH_ConfigCommon_NB_r13;
+static int ett_lte_rrc_RACH_InfoList_NB_r13;
+static int ett_lte_rrc_RACH_InfoList_NB_v1530;
+static int ett_lte_rrc_RACH_Info_NB_r13;
+static int ett_lte_rrc_RACH_Info_NB_v1530;
+static int ett_lte_rrc_PowerRampingParameters_NB_v1450;
+static int ett_lte_rrc_T_powerRampingParametersCE1_r14;
+static int ett_lte_rrc_RadioResourceConfigCommonSIB_NB_r13;
+static int ett_lte_rrc_T_ntn_ConfigCommon_r17_02;
+static int ett_lte_rrc_BCCH_Config_NB_r13;
+static int ett_lte_rrc_PCCH_Config_NB_r13;
+static int ett_lte_rrc_RadioResourceConfigDedicated_NB_r13;
+static int ett_lte_rrc_T_mac_MainConfig_r13;
+static int ett_lte_rrc_SRB_ToAddModList_NB_r13;
+static int ett_lte_rrc_SRB_ToAddMod_NB_r13;
+static int ett_lte_rrc_T_rlc_Config_r13;
+static int ett_lte_rrc_T_logicalChannelConfig_r13;
+static int ett_lte_rrc_DRB_ToAddModList_NB_r13;
+static int ett_lte_rrc_DRB_ToAddMod_NB_r13;
+static int ett_lte_rrc_DRB_ToReleaseList_NB_r13;
+static int ett_lte_rrc_ResourceReservationConfig_NB_r16;
+static int ett_lte_rrc_T_resourceReservation_r16;
+static int ett_lte_rrc_T_subframeBitmap_r16;
+static int ett_lte_rrc_T_slotConfig_r16;
+static int ett_lte_rrc_T_slotBitmap_r16_02;
+static int ett_lte_rrc_T_symbolBitmap_r16;
+static int ett_lte_rrc_T_symbolBitmapFddDl;
+static int ett_lte_rrc_T_symbolBitmapFddUlOrTdd;
+static int ett_lte_rrc_RLC_Config_NB_r13;
+static int ett_lte_rrc_T_am_01;
+static int ett_lte_rrc_RLC_Config_NB_v1430;
+static int ett_lte_rrc_RLC_Config_NB_v1700;
+static int ett_lte_rrc_T_t_ReorderingExt_r17_01;
+static int ett_lte_rrc_UL_AM_RLC_NB_r13;
+static int ett_lte_rrc_DL_AM_RLC_NB_r13;
+static int ett_lte_rrc_RLF_TimersAndConstants_NB_r13;
+static int ett_lte_rrc_T_rLF_TimersAndConstants_NB_r13_setup;
+static int ett_lte_rrc_SchedulingRequestConfig_NB_r15;
+static int ett_lte_rrc_SR_WithoutHARQ_ACK_Config_NB_r15;
+static int ett_lte_rrc_T_sR_WithoutHARQ_ACK_Config_NB_r15_setup;
+static int ett_lte_rrc_SR_WithoutHARQ_ACK_Config_NB_v1700;
+static int ett_lte_rrc_T_sr_ProhibitTimerOffset_r17_01;
+static int ett_lte_rrc_SR_NPRACH_Resource_NB_r15;
+static int ett_lte_rrc_T_nprach_SubCarrierIndex_r15;
+static int ett_lte_rrc_SR_SPS_BSR_Config_NB_r15;
+static int ett_lte_rrc_T_sR_SPS_BSR_Config_NB_r15_setup;
+static int ett_lte_rrc_TDD_Config_NB_r15;
+static int ett_lte_rrc_UplinkPowerControlCommon_NB_r13;
+static int ett_lte_rrc_UplinkPowerControlDedicated_NB_r13;
+static int ett_lte_rrc_UplinkPowerControlDedicated_NB_v1700;
+static int ett_lte_rrc_WUS_Config_NB_r15;
+static int ett_lte_rrc_WUS_ConfigPerCarrier_NB_r15;
+static int ett_lte_rrc_AdditionalBandInfoList_NB_r14;
+static int ett_lte_rrc_MultiBandInfoList_NB_r13;
+static int ett_lte_rrc_MultiBandInfo_NB_r13;
+static int ett_lte_rrc_NS_PmaxList_NB_r13;
+static int ett_lte_rrc_NS_PmaxValue_NB_r13;
+static int ett_lte_rrc_ANR_MeasConfig_NB_r16;
+static int ett_lte_rrc_ANR_CarrierList_NB_r16;
+static int ett_lte_rrc_ANR_Carrier_NB_r16;
+static int ett_lte_rrc_ANR_ExcludedCellList_NB_r16;
+static int ett_lte_rrc_ANR_MeasReport_NB_r16;
+static int ett_lte_rrc_SEQUENCE_SIZE_1_maxFreqANR_NB_r16_OF_ANR_MeasResult_NB_r16;
+static int ett_lte_rrc_ANR_MeasResult_NB_r16;
+static int ett_lte_rrc_T_cgi_Info_r16;
+static int ett_lte_rrc_MeasResultServCell_NB_r14;
+static int ett_lte_rrc_NSSS_RRM_Config_NB_r15;
+static int ett_lte_rrc_UE_Capability_NB_r13;
+static int ett_lte_rrc_T_uE_Capability_NB_r13_dummy;
+static int ett_lte_rrc_UE_Capability_NB_Ext_r14_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v1440_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v14x0_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v1530_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v15x0_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v1610_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v16x0_IEs;
+static int ett_lte_rrc_UE_EUTRA_Capability_v16f0_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_113;
+static int ett_lte_rrc_UE_Capability_NB_v1700_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v1710_IEs;
+static int ett_lte_rrc_UE_Capability_NB_v1720_IEs;
+static int ett_lte_rrc_T_nonCriticalExtension_114;
+static int ett_lte_rrc_TDD_UE_Capability_NB_r15;
+static int ett_lte_rrc_TDD_UE_Capability_NB_v1610;
+static int ett_lte_rrc_TDD_UE_Capability_NB_v1710;
+static int ett_lte_rrc_PDCP_Parameters_NB_r13;
+static int ett_lte_rrc_T_supportedROHC_Profiles_r13;
+static int ett_lte_rrc_RLC_Parameters_NB_r15;
+static int ett_lte_rrc_MAC_Parameters_NB_r14;
+static int ett_lte_rrc_MAC_Parameters_NB_v1530;
+static int ett_lte_rrc_MAC_Parameters_NB_v1610;
+static int ett_lte_rrc_NTN_Parameters_NB_r17;
+static int ett_lte_rrc_NTN_Parameters_NB_v1720;
+static int ett_lte_rrc_MeasParameters_NB_r16;
+static int ett_lte_rrc_MeasParameters_NB_v1710;
+static int ett_lte_rrc_PhyLayerParameters_NB_r13;
+static int ett_lte_rrc_PhyLayerParameters_NB_v1430;
+static int ett_lte_rrc_PhyLayerParameters_NB_v1440;
+static int ett_lte_rrc_PhyLayerParameters_NB_v1530;
+static int ett_lte_rrc_PhyLayerParameters_NB_v1610;
+static int ett_lte_rrc_PUR_Parameters_NB_r16;
+static int ett_lte_rrc_PhyLayerParameters_NB_v1700;
+static int ett_lte_rrc_RF_Parameters_NB_r13;
+static int ett_lte_rrc_RF_Parameters_NB_v1430;
+static int ett_lte_rrc_RF_Parameters_NB_v1710;
+static int ett_lte_rrc_SupportedBandList_NB_r13;
+static int ett_lte_rrc_SupportedBandList_NB_v1710;
+static int ett_lte_rrc_SupportedBand_NB_r13;
+static int ett_lte_rrc_SupportedBand_NB_v1710;
+static int ett_lte_rrc_SON_Parameters_NB_r16;
+static int ett_lte_rrc_SON_Parameters_NB_v16f0;
+static int ett_lte_rrc_UE_RadioPagingInfo_NB_r13;
+static int ett_lte_rrc_UE_TimersAndConstants_NB_r13;
+static int ett_lte_rrc_SC_MTCH_InfoList_NB_r14;
+static int ett_lte_rrc_SC_MTCH_Info_NB_r14;
+static int ett_lte_rrc_T_sc_mtch_CarrierConfig_r14;
+static int ett_lte_rrc_SC_MTCH_SchedulingInfo_NB_r14;
+static int ett_lte_rrc_T_schedulingPeriodStartOffsetSCPTM_r14_03;
+static int ett_lte_rrc_SCPTM_NeighbourCellList_NB_r14;
+static int ett_lte_rrc_PCI_ARFCN_NB_r14;
static gint ett_lte_rrc_featureGroupIndicators;
static gint ett_lte_rrc_featureGroupIndRel9Add;
@@ -16064,32 +16078,23 @@ static guint32 drx_lookup_onDurationTimer(guint32 idx)
{
static const guint32 vals[] = {1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_inactivityTimer(guint32 idx)
{
static const guint32 vals[] = {
- 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300, 500,750,1280,1920,2560,0
+ 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300,500,750,1280,1920,2560,0
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_retransmissionTimer(guint32 idx)
{
static const guint32 vals[] = {1,2,4,6,8,16,24,33};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_longCycle(guint32 idx)
@@ -16098,10 +16103,7 @@ static guint32 drx_lookup_longCycle(guint32 idx)
10,20,32,40,64,80,128,160,256,320,512,640,1024,1280,2048,2560
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static guint32 drx_lookup_longCycle_v1130(guint32 idx)
@@ -16110,10 +16112,7 @@ static guint32 drx_lookup_longCycle_v1130(guint32 idx)
60,70
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
@@ -16123,10 +16122,7 @@ static guint32 drx_lookup_shortCycle(guint32 idx)
2,5,8,10,16,20,32,40,64,80,128,160,256,320,512,640
};
- if (idx < (sizeof(vals)/sizeof(guint32))) {
- return vals[idx];
- }
- return (sizeof(vals)/(sizeof(guint32)) - 1);
+ return vals[MIN(idx, array_length(vals) - 1)];
}
static void drx_check_config_sane(drx_config_t *config, asn1_ctx_t *actx)
@@ -16223,6 +16219,7 @@ static int dissect_UE_Capability_NB_Ext_r14_IEs_PDU(tvbuff_t *tvb _U_, packet_in
static int dissect_UE_Capability_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_UECapabilityInformation_NB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_UE_RadioPagingInfo_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
+static int dissect_UE_EUTRA_Capability_v16f0_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
@@ -25424,7 +25421,7 @@ dissect_lte_rrc_T_drb_TypeChange_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lte_rrc_T_ul_extended_RLC_LI_Field_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- gboolean ext_li_field;
+ bool ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &ext_li_field);
@@ -25440,7 +25437,7 @@ dissect_lte_rrc_T_ul_extended_RLC_LI_Field_r12(tvbuff_t *tvb _U_, int offset _U_
static int
dissect_lte_rrc_T_dl_extended_RLC_LI_Field_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- gboolean ext_li_field;
+ bool ext_li_field;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &ext_li_field);
@@ -25485,7 +25482,7 @@ dissect_lte_rrc_DRB_ToAddMod_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_lte_rrc_T_ul_extended_RLC_AM_SN_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- gboolean ext_am_sn;
+ bool ext_am_sn;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &ext_am_sn);
@@ -25501,7 +25498,7 @@ dissect_lte_rrc_T_ul_extended_RLC_AM_SN_r13(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_lte_rrc_T_dl_extended_RLC_AM_SN_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- gboolean ext_am_sn;
+ bool ext_am_sn;
drb_mapping_t *mapping = private_data_get_drb_mapping(actx);
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &ext_am_sn);
@@ -66919,7 +66916,7 @@ dissect_lte_rrc_T_timeInfoUTC_r11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
nstime_t ts;
guint32 old_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(549755813887), &timeInfo, FALSE);
+ 0U, UINT64_C(549755813887), &timeInfo, FALSE);
@@ -69944,7 +69941,7 @@ dissect_lte_rrc_EphemerisStateVectors_r17(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_lte_rrc_INTEGER_0_8589934591(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(8589934591), NULL, FALSE);
+ 0U, UINT64_C(8589934591), NULL, FALSE);
return offset;
}
@@ -70193,7 +70190,7 @@ dissect_lte_rrc_INTEGER_0_16777215(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_lte_rrc_INTEGER_0_17179869183(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(17179869183), NULL, FALSE);
+ 0U, UINT64_C(17179869183), NULL, FALSE);
return offset;
}
@@ -125585,7 +125582,7 @@ dissect_lte_rrc_T_nonCriticalExtension_106(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t SystemInformation_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_sib_TypeAndInfo_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_sib_TypeAndInfo_r13 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_408, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_106 },
+ { &hf_lte_rrc_nonCriticalExtension_410, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_106 },
{ NULL, 0, 0, NULL }
};
@@ -126466,7 +126463,7 @@ dissect_lte_rrc_T_nonCriticalExtension_107(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t SystemInformationBlockType1_NB_v1700_sequence[] = {
{ &hf_lte_rrc_cellAccessRelatedInfo_NTN_r17_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_cellAccessRelatedInfo_NTN_r17_01 },
- { &hf_lte_rrc_nonCriticalExtension_415, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_107 },
+ { &hf_lte_rrc_nonCriticalExtension_417, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_107 },
{ NULL, 0, 0, NULL }
};
@@ -126481,7 +126478,7 @@ dissect_lte_rrc_SystemInformationBlockType1_NB_v1700(tvbuff_t *tvb _U_, int offs
static const per_sequence_t SystemInformationBlockType1_NB_v1610_sequence[] = {
{ &hf_lte_rrc_cellAccessRelatedInfo_5GC_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_cellAccessRelatedInfo_5GC_r16 },
- { &hf_lte_rrc_nonCriticalExtension_414, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1700 },
+ { &hf_lte_rrc_nonCriticalExtension_416, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1700 },
{ NULL, 0, 0, NULL }
};
@@ -126497,7 +126494,7 @@ dissect_lte_rrc_SystemInformationBlockType1_NB_v1610(tvbuff_t *tvb _U_, int offs
static const per_sequence_t SystemInformationBlockType1_NB_v1530_sequence[] = {
{ &hf_lte_rrc_tdd_Parameters_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_tdd_Parameters_r15 },
{ &hf_lte_rrc_schedulingInfoList_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SchedulingInfoList_NB_v1530 },
- { &hf_lte_rrc_nonCriticalExtension_413, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1610 },
+ { &hf_lte_rrc_nonCriticalExtension_415, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1610 },
{ NULL, 0, 0, NULL }
};
@@ -126512,7 +126509,7 @@ dissect_lte_rrc_SystemInformationBlockType1_NB_v1530(tvbuff_t *tvb _U_, int offs
static const per_sequence_t SystemInformationBlockType1_NB_v1450_sequence[] = {
{ &hf_lte_rrc_nrs_CRS_PowerOffset_v1450, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nrs_CRS_PowerOffset_v1450 },
- { &hf_lte_rrc_nonCriticalExtension_412, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1530 },
+ { &hf_lte_rrc_nonCriticalExtension_414, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1530 },
{ NULL, 0, 0, NULL }
};
@@ -126527,7 +126524,7 @@ dissect_lte_rrc_SystemInformationBlockType1_NB_v1450(tvbuff_t *tvb _U_, int offs
static const per_sequence_t SystemInformationBlockType1_NB_v1430_sequence[] = {
{ &hf_lte_rrc_cellSelectionInfo_v1430, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CellSelectionInfo_NB_v1430 },
- { &hf_lte_rrc_nonCriticalExtension_411, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1450 },
+ { &hf_lte_rrc_nonCriticalExtension_413, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1450 },
{ NULL, 0, 0, NULL }
};
@@ -126542,7 +126539,7 @@ dissect_lte_rrc_SystemInformationBlockType1_NB_v1430(tvbuff_t *tvb _U_, int offs
static const per_sequence_t SystemInformationBlockType1_NB_v1350_sequence[] = {
{ &hf_lte_rrc_cellSelectionInfo_v1350, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CellSelectionInfo_NB_v1350 },
- { &hf_lte_rrc_nonCriticalExtension_410, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1430 },
+ { &hf_lte_rrc_nonCriticalExtension_412, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1430 },
{ NULL, 0, 0, NULL }
};
@@ -126571,7 +126568,7 @@ static const per_sequence_t SystemInformationBlockType1_NB_sequence[] = {
{ &hf_lte_rrc_si_RadioFrameOffset_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_15 },
{ &hf_lte_rrc_systemInfoValueTagList_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInfoValueTagList_NB_r13 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_409, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1350 },
+ { &hf_lte_rrc_nonCriticalExtension_411, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SystemInformationBlockType1_NB_v1350 },
{ NULL, 0, 0, NULL }
};
@@ -126889,7 +126886,7 @@ dissect_lte_rrc_T_nonCriticalExtension_94(tvbuff_t *tvb _U_, int offset _U_, asn
static const per_sequence_t RRCConnectionReestablishment_NB_v1430_IEs_sequence[] = {
{ &hf_lte_rrc_dl_NAS_MAC , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_BIT_STRING_SIZE_16 },
- { &hf_lte_rrc_nonCriticalExtension_374, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_94 },
+ { &hf_lte_rrc_nonCriticalExtension_375, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_94 },
{ NULL, 0, 0, NULL }
};
@@ -126906,7 +126903,7 @@ static const per_sequence_t RRCConnectionReestablishment_NB_r13_IEs_sequence[] =
{ &hf_lte_rrc_radioResourceConfigDedicated_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RadioResourceConfigDedicated_NB_r13 },
{ &hf_lte_rrc_nextHopChainingCount_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_NextHopChainingCount },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_373, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishment_NB_v1430_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_374, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishment_NB_v1430_IEs },
{ NULL, 0, 0, NULL }
};
@@ -127025,7 +127022,7 @@ static const per_sequence_t RRCConnectionReject_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_extendedWaitTime_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_INTEGER_1_1800 },
{ &hf_lte_rrc_rrc_SuspendIndication_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_rrc_SuspendIndication_r13_01 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_379, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_96 },
+ { &hf_lte_rrc_nonCriticalExtension_380, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_96 },
{ NULL, 0, 0, NULL }
};
@@ -127126,7 +127123,7 @@ dissect_lte_rrc_T_nonCriticalExtension_100(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t RRCConnectionSetup_NB_v1610_IEs_sequence[] = {
{ &hf_lte_rrc_dedicatedInfoNAS_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_DedicatedInfoNAS },
- { &hf_lte_rrc_nonCriticalExtension_394, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_100 },
+ { &hf_lte_rrc_nonCriticalExtension_396, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_100 },
{ NULL, 0, 0, NULL }
};
@@ -127142,7 +127139,7 @@ dissect_lte_rrc_RRCConnectionSetup_NB_v1610_IEs(tvbuff_t *tvb _U_, int offset _U
static const per_sequence_t RRCConnectionSetup_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_radioResourceConfigDedicated_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RadioResourceConfigDedicated_NB_r13 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_393, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetup_NB_v1610_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_395, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetup_NB_v1610_IEs },
{ NULL, 0, 0, NULL }
};
@@ -127320,7 +127317,7 @@ dissect_lte_rrc_T_nonCriticalExtension_102(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t RRCEarlyDataComplete_NB_v1700_IEs_sequence[] = {
{ &hf_lte_rrc_cbp_Index_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_2 },
- { &hf_lte_rrc_nonCriticalExtension_402, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_102 },
+ { &hf_lte_rrc_nonCriticalExtension_404, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_102 },
{ NULL, 0, 0, NULL }
};
@@ -127335,7 +127332,7 @@ dissect_lte_rrc_RRCEarlyDataComplete_NB_v1700_IEs(tvbuff_t *tvb _U_, int offset
static const per_sequence_t RRCEarlyDataComplete_NB_v1590_IEs_sequence[] = {
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_401, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCEarlyDataComplete_NB_v1700_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_403, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCEarlyDataComplete_NB_v1700_IEs },
{ NULL, 0, 0, NULL }
};
@@ -127353,7 +127350,7 @@ static const per_sequence_t RRCEarlyDataComplete_NB_r15_IEs_sequence[] = {
{ &hf_lte_rrc_extendedWaitTime_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_1800 },
{ &hf_lte_rrc_redirectedCarrierInfo_r15_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RedirectedCarrierInfo_NB_r13 },
{ &hf_lte_rrc_redirectedCarrierInfoExt_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RedirectedCarrierInfo_NB_v1430 },
- { &hf_lte_rrc_nonCriticalExtension_400, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCEarlyDataComplete_NB_v1590_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_402, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCEarlyDataComplete_NB_v1590_IEs },
{ NULL, 0, 0, NULL }
};
@@ -127634,6 +127631,21 @@ dissect_lte_rrc_T_fullConfig_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
}
+static const value_string lte_rrc_T_obtainLocationNB_r16_vals[] = {
+ { 0, "setup" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lte_rrc_T_obtainLocationNB_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
static const per_sequence_t T_nonCriticalExtension_92_sequence[] = {
{ NULL, 0, 0, NULL }
};
@@ -127647,12 +127659,27 @@ dissect_lte_rrc_T_nonCriticalExtension_92(tvbuff_t *tvb _U_, int offset _U_, asn
}
+static const per_sequence_t RRCConnectionReconfiguration_NB_v16f0_IEs_sequence[] = {
+ { &hf_lte_rrc_obtainLocationNB_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_obtainLocationNB_r16 },
+ { &hf_lte_rrc_nonCriticalExtension_372, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_92 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_RRCConnectionReconfiguration_NB_v16f0_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lte_rrc_RRCConnectionReconfiguration_NB_v16f0_IEs, RRCConnectionReconfiguration_NB_v16f0_IEs_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t RRCConnectionReconfiguration_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_dedicatedInfoNASList_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SEQUENCE_SIZE_1_maxDRB_NB_r13_OF_DedicatedInfoNAS },
{ &hf_lte_rrc_radioResourceConfigDedicated_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RadioResourceConfigDedicated_NB_r13 },
{ &hf_lte_rrc_fullConfig_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_fullConfig_r13 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_371, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_92 },
+ { &hf_lte_rrc_nonCriticalExtension_371, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReconfiguration_NB_v16f0_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128342,7 +128369,7 @@ dissect_lte_rrc_T_nonCriticalExtension_97(tvbuff_t *tvb _U_, int offset _U_, asn
static const per_sequence_t RRCConnectionRelease_NB_v1700_IEs_sequence[] = {
{ &hf_lte_rrc_cbp_Index_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_2 },
- { &hf_lte_rrc_nonCriticalExtension_386, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_97 },
+ { &hf_lte_rrc_nonCriticalExtension_387, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_97 },
{ NULL, 0, 0, NULL }
};
@@ -128359,7 +128386,7 @@ static const per_sequence_t RRCConnectionRelease_NB_v1610_IEs_sequence[] = {
{ &hf_lte_rrc_resumeIdentity_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_I_RNTI_r15 },
{ &hf_lte_rrc_anr_MeasConfig_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_ANR_MeasConfig_NB_r16 },
{ &hf_lte_rrc_pur_Config_r16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_pur_Config_r16_01 },
- { &hf_lte_rrc_nonCriticalExtension_385, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1700_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_386, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1700_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128374,7 +128401,7 @@ dissect_lte_rrc_RRCConnectionRelease_NB_v1610_IEs(tvbuff_t *tvb _U_, int offset
static const per_sequence_t RRCConnectionRelease_NB_v15b0_IEs_sequence[] = {
{ &hf_lte_rrc_noLastCellUpdate_r15_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_noLastCellUpdate_r15_01 },
- { &hf_lte_rrc_nonCriticalExtension_384, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1610_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_385, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1610_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128389,7 +128416,7 @@ dissect_lte_rrc_RRCConnectionRelease_NB_v15b0_IEs(tvbuff_t *tvb _U_, int offset
static const per_sequence_t RRCConnectionRelease_NB_v1550_IEs_sequence[] = {
{ &hf_lte_rrc_redirectedCarrierInfo_v1550, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RedirectedCarrierInfo_NB_v1550 },
- { &hf_lte_rrc_nonCriticalExtension_383, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v15b0_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_384, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v15b0_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128405,7 +128432,7 @@ dissect_lte_rrc_RRCConnectionRelease_NB_v1550_IEs(tvbuff_t *tvb _U_, int offset
static const per_sequence_t RRCConnectionRelease_NB_v1530_IEs_sequence[] = {
{ &hf_lte_rrc_drb_ContinueROHC_r15_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_drb_ContinueROHC_r15_01 },
{ &hf_lte_rrc_nextHopChainingCount_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_NextHopChainingCount },
- { &hf_lte_rrc_nonCriticalExtension_382, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1550_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_383, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1550_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128421,7 +128448,7 @@ dissect_lte_rrc_RRCConnectionRelease_NB_v1530_IEs(tvbuff_t *tvb _U_, int offset
static const per_sequence_t RRCConnectionRelease_NB_v1430_IEs_sequence[] = {
{ &hf_lte_rrc_redirectedCarrierInfo_v1430, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RedirectedCarrierInfo_NB_v1430 },
{ &hf_lte_rrc_extendedWaitTime_CPdata_r14, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_1800 },
- { &hf_lte_rrc_nonCriticalExtension_381, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1530_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_382, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1530_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128440,7 +128467,7 @@ static const per_sequence_t RRCConnectionRelease_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_extendedWaitTime_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_1800 },
{ &hf_lte_rrc_redirectedCarrierInfo_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RedirectedCarrierInfo_NB_r13 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_380, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1430_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_381, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionRelease_NB_v1430_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128542,7 +128569,7 @@ dissect_lte_rrc_T_nonCriticalExtension_108(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t UECapabilityEnquiry_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_416, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_108 },
+ { &hf_lte_rrc_nonCriticalExtension_418, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_108 },
{ NULL, 0, 0, NULL }
};
@@ -128659,6 +128686,21 @@ dissect_lte_rrc_T_fullConfig_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
}
+static const value_string lte_rrc_T_obtainLocationNB_r16_01_vals[] = {
+ { 0, "setup" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lte_rrc_T_obtainLocationNB_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
static const per_sequence_t T_nonCriticalExtension_98_sequence[] = {
{ NULL, 0, 0, NULL }
};
@@ -128672,9 +128714,24 @@ dissect_lte_rrc_T_nonCriticalExtension_98(tvbuff_t *tvb _U_, int offset _U_, asn
}
+static const per_sequence_t RRCConnectionResume_NB_v16f0_IEs_sequence[] = {
+ { &hf_lte_rrc_obtainLocationNB_r16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_obtainLocationNB_r16_01 },
+ { &hf_lte_rrc_nonCriticalExtension_390, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_98 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_RRCConnectionResume_NB_v16f0_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lte_rrc_RRCConnectionResume_NB_v16f0_IEs, RRCConnectionResume_NB_v16f0_IEs_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t RRCConnectionResume_NB_v1610_IEs_sequence[] = {
{ &hf_lte_rrc_fullConfig_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_fullConfig_r16 },
- { &hf_lte_rrc_nonCriticalExtension_388, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_98 },
+ { &hf_lte_rrc_nonCriticalExtension_389, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResume_NB_v16f0_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128692,7 +128749,7 @@ static const per_sequence_t RRCConnectionResume_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_nextHopChainingCount_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_NextHopChainingCount },
{ &hf_lte_rrc_drb_ContinueROHC_r13_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_drb_ContinueROHC_r13_01 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_387, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResume_NB_v1610_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_388, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResume_NB_v1610_IEs },
{ NULL, 0, 0, NULL }
};
@@ -128797,7 +128854,7 @@ static const per_sequence_t UEInformationRequest_NB_r16_IEs_sequence[] = {
{ &hf_lte_rrc_rlf_ReportReq_r16, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_BOOLEAN },
{ &hf_lte_rrc_anr_ReportReq_r16, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_BOOLEAN },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_419, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_110 },
+ { &hf_lte_rrc_nonCriticalExtension_421, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_110 },
{ NULL, 0, 0, NULL }
};
@@ -129550,7 +129607,7 @@ dissect_lte_rrc_T_nonCriticalExtension_103(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t RRCEarlyDataRequest_NB_v1590_IEs_sequence[] = {
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_404, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_103 },
+ { &hf_lte_rrc_nonCriticalExtension_406, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_103 },
{ NULL, 0, 0, NULL }
};
@@ -129568,7 +129625,7 @@ static const per_sequence_t RRCEarlyDataRequest_NB_r15_IEs_sequence[] = {
{ &hf_lte_rrc_establishmentCause_r15_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_establishmentCause_r15_01 },
{ &hf_lte_rrc_cqi_NPDCCH_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CQI_NPDCCH_NB_r14 },
{ &hf_lte_rrc_dedicatedInfoNAS_r15, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_DedicatedInfoNAS },
- { &hf_lte_rrc_nonCriticalExtension_403, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCEarlyDataRequest_NB_v1590_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_405, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCEarlyDataRequest_NB_v1590_IEs },
{ NULL, 0, 0, NULL }
};
@@ -129618,7 +129675,7 @@ static const per_sequence_t RRCEarlyDataRequest_5GC_NB_r16_IEs_sequence[] = {
{ &hf_lte_rrc_cqi_NPDCCH_r16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_CQI_NPDCCH_NB_r14 },
{ &hf_lte_rrc_dedicatedInfoNAS_r16, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_DedicatedInfoNAS },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_405, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_104 },
+ { &hf_lte_rrc_nonCriticalExtension_407, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_104 },
{ NULL, 0, 0, NULL }
};
@@ -130112,7 +130169,7 @@ dissect_lte_rrc_T_nonCriticalExtension_105(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t SCPTMConfiguration_NB_v1610_sequence[] = {
{ &hf_lte_rrc_sc_mtch_InfoListMultiTB_r16, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_SC_MTCH_InfoList_NB_r14 },
{ &hf_lte_rrc_multiTB_Gap_r16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_multiTB_Gap_r16_01 },
- { &hf_lte_rrc_nonCriticalExtension_407, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_105 },
+ { &hf_lte_rrc_nonCriticalExtension_409, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_105 },
{ NULL, 0, 0, NULL }
};
@@ -130129,7 +130186,7 @@ static const per_sequence_t SCPTMConfiguration_NB_r14_sequence[] = {
{ &hf_lte_rrc_sc_mtch_InfoList_r14_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_SC_MTCH_InfoList_NB_r14 },
{ &hf_lte_rrc_scptm_NeighbourCellList_r14_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SCPTM_NeighbourCellList_NB_r14 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_406, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SCPTMConfiguration_NB_v1610 },
+ { &hf_lte_rrc_nonCriticalExtension_408, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SCPTMConfiguration_NB_v1610 },
{ NULL, 0, 0, NULL }
};
@@ -130228,7 +130285,7 @@ dissect_lte_rrc_T_nonCriticalExtension_93(tvbuff_t *tvb _U_, int offset _U_, asn
static const per_sequence_t RRCConnectionReconfigurationComplete_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_372, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_93 },
+ { &hf_lte_rrc_nonCriticalExtension_373, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_93 },
{ NULL, 0, 0, NULL }
};
@@ -130363,7 +130420,7 @@ dissect_lte_rrc_T_nonCriticalExtension_95(tvbuff_t *tvb _U_, int offset _U_, asn
static const per_sequence_t RRCConnectionReestablishmentComplete_NB_v1710_IEs_sequence[] = {
{ &hf_lte_rrc_gnss_ValidityDuration_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_GNSS_ValidityDuration_r17 },
- { &hf_lte_rrc_nonCriticalExtension_378, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_95 },
+ { &hf_lte_rrc_nonCriticalExtension_379, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_95 },
{ NULL, 0, 0, NULL }
};
@@ -130379,7 +130436,7 @@ dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1710_IEs(tvbuff_t *tvb
static const per_sequence_t RRCConnectionReestablishmentComplete_NB_v1610_IEs_sequence[] = {
{ &hf_lte_rrc_rlf_InfoAvailable_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_rlf_InfoAvailable_r16 },
{ &hf_lte_rrc_rRCConnectionReestablishmentComplete_NB_v1610_IEs_anr_InfoAvailable_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_rRCConnectionReestablishmentComplete_NB_v1610_IEs_anr_InfoAvailable_r16 },
- { &hf_lte_rrc_nonCriticalExtension_377, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1710_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_378, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1710_IEs },
{ NULL, 0, 0, NULL }
};
@@ -130394,7 +130451,7 @@ dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1610_IEs(tvbuff_t *tvb
static const per_sequence_t RRCConnectionReestablishmentComplete_NB_v1470_IEs_sequence[] = {
{ &hf_lte_rrc_measResultServCell_r14, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_MeasResultServCell_NB_r14 },
- { &hf_lte_rrc_nonCriticalExtension_376, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1610_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_377, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1610_IEs },
{ NULL, 0, 0, NULL }
};
@@ -130409,7 +130466,7 @@ dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1470_IEs(tvbuff_t *tvb
static const per_sequence_t RRCConnectionReestablishmentComplete_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_375, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1470_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_376, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionReestablishmentComplete_NB_v1470_IEs },
{ NULL, 0, 0, NULL }
};
@@ -130625,7 +130682,7 @@ dissect_lte_rrc_T_nonCriticalExtension_101(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t RRCConnectionSetupComplete_NB_v1710_IEs_sequence[] = {
{ &hf_lte_rrc_gnss_ValidityDuration_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_GNSS_ValidityDuration_r17 },
- { &hf_lte_rrc_nonCriticalExtension_399, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_101 },
+ { &hf_lte_rrc_nonCriticalExtension_401, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_101 },
{ NULL, 0, 0, NULL }
};
@@ -130649,7 +130706,7 @@ static const per_sequence_t RRCConnectionSetupComplete_NB_v1610_IEs_sequence[] =
{ &hf_lte_rrc_rlf_InfoAvailable_r16_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_rlf_InfoAvailable_r16_02 },
{ &hf_lte_rrc_anr_InfoAvailable_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_anr_InfoAvailable_r16 },
{ &hf_lte_rrc_pur_ConfigID_r16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_PUR_ConfigID_NB_r16 },
- { &hf_lte_rrc_nonCriticalExtension_398, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1710_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_400, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1710_IEs },
{ NULL, 0, 0, NULL }
};
@@ -130664,7 +130721,7 @@ dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1610_IEs(tvbuff_t *tvb _U_, int o
static const per_sequence_t RRCConnectionSetupComplete_NB_v1470_IEs_sequence[] = {
{ &hf_lte_rrc_measResultServCell_r14, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_MeasResultServCell_NB_r14 },
- { &hf_lte_rrc_nonCriticalExtension_397, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1610_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_399, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1610_IEs },
{ NULL, 0, 0, NULL }
};
@@ -130680,7 +130737,7 @@ dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1470_IEs(tvbuff_t *tvb _U_, int o
static const per_sequence_t RRCConnectionSetupComplete_NB_v1430_IEs_sequence[] = {
{ &hf_lte_rrc_gummei_Type_r14, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_gummei_Type_r14 },
{ &hf_lte_rrc_dcn_ID_r14 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_0_65535 },
- { &hf_lte_rrc_nonCriticalExtension_396, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1470_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_398, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1470_IEs },
{ NULL, 0, 0, NULL }
};
@@ -130701,7 +130758,7 @@ static const per_sequence_t RRCConnectionSetupComplete_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_attachWithoutPDN_Connectivity_r13_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_attachWithoutPDN_Connectivity_r13_02 },
{ &hf_lte_rrc_up_CIoT_EPS_Optimisation_r13_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_up_CIoT_EPS_Optimisation_r13_02 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_395, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1430_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_397, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionSetupComplete_NB_v1430_IEs },
{ NULL, 0, 0, NULL }
};
@@ -130990,7 +131047,7 @@ dissect_lte_rrc_T_nonCriticalExtension_109(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t UECapabilityInformation_NB_Ext_r14_IEs_sequence[] = {
{ &hf_lte_rrc_ue_Capability_ContainerExt_r14, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_T_ue_Capability_ContainerExt_r14 },
- { &hf_lte_rrc_nonCriticalExtension_418, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_109 },
+ { &hf_lte_rrc_nonCriticalExtension_420, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_109 },
{ NULL, 0, 0, NULL }
};
@@ -131007,7 +131064,7 @@ static const per_sequence_t UECapabilityInformation_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_ue_Capability_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_UE_Capability_NB_r13 },
{ &hf_lte_rrc_ue_RadioPagingInfo_r13_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_UE_RadioPagingInfo_NB_r13 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_417, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UECapabilityInformation_NB_Ext_r14_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_419, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UECapabilityInformation_NB_Ext_r14_IEs },
{ NULL, 0, 0, NULL }
};
@@ -131088,7 +131145,7 @@ dissect_lte_rrc_T_nonCriticalExtension_112(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t ULInformationTransfer_NB_r13_IEs_sequence[] = {
{ &hf_lte_rrc_dedicatedInfoNAS_r13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_DedicatedInfoNAS },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_421, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_112 },
+ { &hf_lte_rrc_nonCriticalExtension_423, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_112 },
{ NULL, 0, 0, NULL }
};
@@ -131197,7 +131254,7 @@ dissect_lte_rrc_T_nonCriticalExtension_99(tvbuff_t *tvb _U_, int offset _U_, asn
static const per_sequence_t RRCConnectionResumeComplete_NB_v1710_IEs_sequence[] = {
{ &hf_lte_rrc_gnss_ValidityDuration_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_GNSS_ValidityDuration_r17 },
- { &hf_lte_rrc_nonCriticalExtension_392, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_99 },
+ { &hf_lte_rrc_nonCriticalExtension_394, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_99 },
{ NULL, 0, 0, NULL }
};
@@ -131213,7 +131270,7 @@ dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1710_IEs(tvbuff_t *tvb _U_, int
static const per_sequence_t RRCConnectionResumeComplete_NB_v1610_IEs_sequence[] = {
{ &hf_lte_rrc_rlf_InfoAvailable_r16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_rlf_InfoAvailable_r16_01 },
{ &hf_lte_rrc_rRCConnectionResumeComplete_NB_v1610_IEs_anr_InfoAvailable_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_rRCConnectionResumeComplete_NB_v1610_IEs_anr_InfoAvailable_r16 },
- { &hf_lte_rrc_nonCriticalExtension_391, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1710_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_393, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1710_IEs },
{ NULL, 0, 0, NULL }
};
@@ -131228,7 +131285,7 @@ dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1610_IEs(tvbuff_t *tvb _U_, int
static const per_sequence_t RRCConnectionResumeComplete_NB_v1470_IEs_sequence[] = {
{ &hf_lte_rrc_measResultServCell_r14, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_MeasResultServCell_NB_r14 },
- { &hf_lte_rrc_nonCriticalExtension_390, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1610_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_392, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1610_IEs },
{ NULL, 0, 0, NULL }
};
@@ -131245,7 +131302,7 @@ static const per_sequence_t RRCConnectionResumeComplete_NB_r13_IEs_sequence[] =
{ &hf_lte_rrc_selectedPLMN_Identity_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_INTEGER_1_maxPLMN_r11 },
{ &hf_lte_rrc_dedicatedInfoNAS_r13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_DedicatedInfoNAS },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_389, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1470_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_391, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RRCConnectionResumeComplete_NB_v1470_IEs },
{ NULL, 0, 0, NULL }
};
@@ -131463,7 +131520,7 @@ static const per_sequence_t UEInformationResponse_NB_r16_IEs_sequence[] = {
{ &hf_lte_rrc_rlf_Report_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_RLF_Report_NB_r16 },
{ &hf_lte_rrc_anr_MeasReport_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_ANR_MeasReport_NB_r16 },
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_420, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_111 },
+ { &hf_lte_rrc_nonCriticalExtension_422, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_111 },
{ NULL, 0, 0, NULL }
};
@@ -132680,6 +132737,16 @@ dissect_lte_rrc_TDD_UE_Capability_NB_v1610(tvbuff_t *tvb _U_, int offset _U_, as
}
+
+static int
+dissect_lte_rrc_T_lateNonCriticalExtension_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string_containing_pdu_new(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, dissect_UE_EUTRA_Capability_v16f0_IEs_PDU);
+
+ return offset;
+}
+
+
static const value_string lte_rrc_T_coverageBasedPaging_r17_vals[] = {
{ 0, "supported" },
{ 0, NULL }
@@ -132965,14 +133032,14 @@ dissect_lte_rrc_NTN_Parameters_NB_v1720(tvbuff_t *tvb _U_, int offset _U_, asn1_
}
-static const per_sequence_t T_nonCriticalExtension_113_sequence[] = {
+static const per_sequence_t T_nonCriticalExtension_114_sequence[] = {
{ NULL, 0, 0, NULL }
};
static int
-dissect_lte_rrc_T_nonCriticalExtension_113(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_lte_rrc_T_nonCriticalExtension_114(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_lte_rrc_T_nonCriticalExtension_113, T_nonCriticalExtension_113_sequence);
+ ett_lte_rrc_T_nonCriticalExtension_114, T_nonCriticalExtension_114_sequence);
return offset;
}
@@ -132980,7 +133047,7 @@ dissect_lte_rrc_T_nonCriticalExtension_113(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t UE_Capability_NB_v1720_IEs_sequence[] = {
{ &hf_lte_rrc_ntn_Parameters_v1720_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_NTN_Parameters_NB_v1720 },
- { &hf_lte_rrc_nonCriticalExtension_431, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_113 },
+ { &hf_lte_rrc_nonCriticalExtension_434, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_114 },
{ NULL, 0, 0, NULL }
};
@@ -132997,7 +133064,7 @@ static const per_sequence_t UE_Capability_NB_v1710_IEs_sequence[] = {
{ &hf_lte_rrc_measParameters_v1710, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_MeasParameters_NB_v1710 },
{ &hf_lte_rrc_rf_Parameters_v1710, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RF_Parameters_NB_v1710 },
{ &hf_lte_rrc_tdd_UE_Capability_v1710, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_TDD_UE_Capability_NB_v1710 },
- { &hf_lte_rrc_nonCriticalExtension_430, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1720_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_433, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1720_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133014,7 +133081,7 @@ static const per_sequence_t UE_Capability_NB_v1700_IEs_sequence[] = {
{ &hf_lte_rrc_coverageBasedPaging_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_coverageBasedPaging_r17 },
{ &hf_lte_rrc_phyLayerParameters_v1700_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_PhyLayerParameters_NB_v1700 },
{ &hf_lte_rrc_ntn_Parameters_r17_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_NTN_Parameters_NB_r17 },
- { &hf_lte_rrc_nonCriticalExtension_429, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1710_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_432, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1710_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133028,8 +133095,8 @@ dissect_lte_rrc_UE_Capability_NB_v1700_IEs(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t UE_Capability_NB_v16x0_IEs_sequence[] = {
- { &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_428, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1700_IEs },
+ { &hf_lte_rrc_lateNonCriticalExtension_15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_lateNonCriticalExtension_14 },
+ { &hf_lte_rrc_nonCriticalExtension_430, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1700_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133051,7 +133118,7 @@ static const per_sequence_t UE_Capability_NB_v1610_IEs_sequence[] = {
{ &hf_lte_rrc_son_Parameters_r16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_SON_Parameters_NB_r16 },
{ &hf_lte_rrc_measParameters_r16, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_MeasParameters_NB_r16 },
{ &hf_lte_rrc_tdd_UE_Capability_v1610, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_TDD_UE_Capability_NB_v1610 },
- { &hf_lte_rrc_nonCriticalExtension_427, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v16x0_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_429, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v16x0_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133066,7 +133133,7 @@ dissect_lte_rrc_UE_Capability_NB_v1610_IEs(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t UE_Capability_NB_v15x0_IEs_sequence[] = {
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_426, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1610_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_428, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1610_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133085,7 +133152,7 @@ static const per_sequence_t UE_Capability_NB_v1530_IEs_sequence[] = {
{ &hf_lte_rrc_mac_Parameters_v1530_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_MAC_Parameters_NB_v1530 },
{ &hf_lte_rrc_phyLayerParameters_v1530_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_PhyLayerParameters_NB_v1530 },
{ &hf_lte_rrc_tdd_UE_Capability_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_TDD_UE_Capability_NB_r15 },
- { &hf_lte_rrc_nonCriticalExtension_425, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v15x0_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_427, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v15x0_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133100,7 +133167,7 @@ dissect_lte_rrc_UE_Capability_NB_v1530_IEs(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t UE_Capability_NB_v14x0_IEs_sequence[] = {
{ &hf_lte_rrc_lateNonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING },
- { &hf_lte_rrc_nonCriticalExtension_424, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1530_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_426, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1530_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133115,7 +133182,7 @@ dissect_lte_rrc_UE_Capability_NB_v14x0_IEs(tvbuff_t *tvb _U_, int offset _U_, as
static const per_sequence_t UE_Capability_NB_v1440_IEs_sequence[] = {
{ &hf_lte_rrc_phyLayerParameters_v1440, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_PhyLayerParameters_NB_v1440 },
- { &hf_lte_rrc_nonCriticalExtension_423, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v14x0_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_425, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v14x0_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133133,7 +133200,7 @@ static const per_sequence_t UE_Capability_NB_Ext_r14_IEs_sequence[] = {
{ &hf_lte_rrc_mac_Parameters_r14, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_MAC_Parameters_NB_r14 },
{ &hf_lte_rrc_phyLayerParameters_v1430_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_PhyLayerParameters_NB_v1430 },
{ &hf_lte_rrc_rf_Parameters_v1430_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_RF_Parameters_NB_v1430 },
- { &hf_lte_rrc_nonCriticalExtension_422, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1440_IEs },
+ { &hf_lte_rrc_nonCriticalExtension_424, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_UE_Capability_NB_v1440_IEs },
{ NULL, 0, 0, NULL }
};
@@ -133145,6 +133212,63 @@ dissect_lte_rrc_UE_Capability_NB_Ext_r14_IEs(tvbuff_t *tvb _U_, int offset _U_,
return offset;
}
+
+static const value_string lte_rrc_T_locationInfo_r16_vals[] = {
+ { 0, "supported" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lte_rrc_T_locationInfo_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t SON_Parameters_NB_v16f0_sequence[] = {
+ { &hf_lte_rrc_locationInfo_r16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_locationInfo_r16 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_SON_Parameters_NB_v16f0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lte_rrc_SON_Parameters_NB_v16f0, SON_Parameters_NB_v16f0_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t T_nonCriticalExtension_113_sequence[] = {
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_T_nonCriticalExtension_113(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lte_rrc_T_nonCriticalExtension_113, T_nonCriticalExtension_113_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t UE_EUTRA_Capability_v16f0_IEs_sequence[] = {
+ { &hf_lte_rrc_son_Parameters_v16f0, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lte_rrc_SON_Parameters_NB_v16f0 },
+ { &hf_lte_rrc_nonCriticalExtension_431, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_113 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lte_rrc_UE_EUTRA_Capability_v16f0_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lte_rrc_UE_EUTRA_Capability_v16f0_IEs, UE_EUTRA_Capability_v16f0_IEs_sequence);
+
+ return offset;
+}
+
/*--- PDUs ---*/
int dissect_lte_rrc_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
@@ -134117,6 +134241,16 @@ static int dissect_UE_RadioPagingInfo_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_UE_EUTRA_Capability_v16f0_IEs_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ proto_item *prot_ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA);
+ proto_item_set_hidden(prot_ti);
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
+ offset = dissect_lte_rrc_UE_EUTRA_Capability_v16f0_IEs(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UE_EUTRA_Capability_v16f0_IEs_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int
@@ -134927,6 +135061,10 @@ void proto_register_lte_rrc(void) {
{ "UE-RadioPagingInfo-NB-r13", "lte-rrc.UE_RadioPagingInfo_NB_r13_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_lte_rrc_UE_EUTRA_Capability_v16f0_IEs_PDU,
+ { "UE-EUTRA-Capability-v16f0-IEs", "lte-rrc.UE_EUTRA_Capability_v16f0_IEs_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_lte_rrc_criticalExtensions,
{ "criticalExtensions", "lte-rrc.criticalExtensions",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_criticalExtensions_vals), 0,
@@ -165898,6 +166036,14 @@ void proto_register_lte_rrc(void) {
{ &hf_lte_rrc_nonCriticalExtension_371,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
+ "RRCConnectionReconfiguration_NB_v16f0_IEs", HFILL }},
+ { &hf_lte_rrc_obtainLocationNB_r16,
+ { "obtainLocationNB-r16", "lte-rrc.obtainLocationNB_r16",
+ FT_UINT32, BASE_DEC, VALS(lte_rrc_T_obtainLocationNB_r16_vals), 0,
+ NULL, HFILL }},
+ { &hf_lte_rrc_nonCriticalExtension_372,
+ { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
+ FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_92", HFILL }},
{ &hf_lte_rrc_criticalExtensions_69,
{ "criticalExtensions", "lte-rrc.criticalExtensions",
@@ -165911,7 +166057,7 @@ void proto_register_lte_rrc(void) {
{ "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_criticalExtensionsFuture_67", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_372,
+ { &hf_lte_rrc_nonCriticalExtension_373,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_93", HFILL }},
@@ -165931,7 +166077,7 @@ void proto_register_lte_rrc(void) {
{ "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_criticalExtensionsFuture_68", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_373,
+ { &hf_lte_rrc_nonCriticalExtension_374,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionReestablishment_NB_v1430_IEs", HFILL }},
@@ -165939,7 +166085,7 @@ void proto_register_lte_rrc(void) {
{ "dl-NAS-MAC", "lte-rrc.dl_NAS_MAC",
FT_BYTES, BASE_NONE, NULL, 0,
"BIT_STRING_SIZE_16", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_374,
+ { &hf_lte_rrc_nonCriticalExtension_375,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_94", HFILL }},
@@ -165955,7 +166101,7 @@ void proto_register_lte_rrc(void) {
{ "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_criticalExtensionsFuture_69", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_375,
+ { &hf_lte_rrc_nonCriticalExtension_376,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionReestablishmentComplete_NB_v1470_IEs", HFILL }},
@@ -165963,7 +166109,7 @@ void proto_register_lte_rrc(void) {
{ "measResultServCell-r14", "lte-rrc.measResultServCell_r14_element",
FT_NONE, BASE_NONE, NULL, 0,
"MeasResultServCell_NB_r14", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_376,
+ { &hf_lte_rrc_nonCriticalExtension_377,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionReestablishmentComplete_NB_v1610_IEs", HFILL }},
@@ -165975,11 +166121,11 @@ void proto_register_lte_rrc(void) {
{ "anr-InfoAvailable-r16", "lte-rrc.rRCConnectionReestablishmentComplete_NB_v1610_IEs.anr_InfoAvailable_r16",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_rRCConnectionReestablishmentComplete_NB_v1610_IEs_anr_InfoAvailable_r16_vals), 0,
"T_rRCConnectionReestablishmentComplete_NB_v1610_IEs_anr_InfoAvailable_r16", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_377,
+ { &hf_lte_rrc_nonCriticalExtension_378,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionReestablishmentComplete_NB_v1710_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_378,
+ { &hf_lte_rrc_nonCriticalExtension_379,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_95", HFILL }},
@@ -166103,7 +166249,7 @@ void proto_register_lte_rrc(void) {
{ "rrc-SuspendIndication-r13", "lte-rrc.rrc_SuspendIndication_r13",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_rrc_SuspendIndication_r13_01_vals), 0,
"T_rrc_SuspendIndication_r13_01", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_379,
+ { &hf_lte_rrc_nonCriticalExtension_380,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_96", HFILL }},
@@ -166131,7 +166277,7 @@ void proto_register_lte_rrc(void) {
{ "redirectedCarrierInfo-r13", "lte-rrc.redirectedCarrierInfo_r13_element",
FT_NONE, BASE_NONE, NULL, 0,
"RedirectedCarrierInfo_NB_r13", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_380,
+ { &hf_lte_rrc_nonCriticalExtension_381,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionRelease_NB_v1430_IEs", HFILL }},
@@ -166143,7 +166289,7 @@ void proto_register_lte_rrc(void) {
{ "extendedWaitTime-CPdata-r14", "lte-rrc.extendedWaitTime_CPdata_r14",
FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0,
"INTEGER_1_1800", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_381,
+ { &hf_lte_rrc_nonCriticalExtension_382,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionRelease_NB_v1530_IEs", HFILL }},
@@ -166151,7 +166297,7 @@ void proto_register_lte_rrc(void) {
{ "drb-ContinueROHC-r15", "lte-rrc.drb_ContinueROHC_r15",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_drb_ContinueROHC_r15_01_vals), 0,
"T_drb_ContinueROHC_r15_01", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_382,
+ { &hf_lte_rrc_nonCriticalExtension_383,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionRelease_NB_v1550_IEs", HFILL }},
@@ -166159,7 +166305,7 @@ void proto_register_lte_rrc(void) {
{ "redirectedCarrierInfo-v1550", "lte-rrc.redirectedCarrierInfo_v1550_element",
FT_NONE, BASE_NONE, NULL, 0,
"RedirectedCarrierInfo_NB_v1550", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_383,
+ { &hf_lte_rrc_nonCriticalExtension_384,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionRelease_NB_v15b0_IEs", HFILL }},
@@ -166167,7 +166313,7 @@ void proto_register_lte_rrc(void) {
{ "noLastCellUpdate-r15", "lte-rrc.noLastCellUpdate_r15",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_noLastCellUpdate_r15_01_vals), 0,
"T_noLastCellUpdate_r15_01", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_384,
+ { &hf_lte_rrc_nonCriticalExtension_385,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionRelease_NB_v1610_IEs", HFILL }},
@@ -166187,11 +166333,11 @@ void proto_register_lte_rrc(void) {
{ "setup", "lte-rrc.rRCConnectionRelease_NB_v1610_IEs.pur_Config_r16.setup_element",
FT_NONE, BASE_NONE, NULL, 0,
"PUR_Config_NB_r16", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_385,
+ { &hf_lte_rrc_nonCriticalExtension_386,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionRelease_NB_v1700_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_386,
+ { &hf_lte_rrc_nonCriticalExtension_387,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_97", HFILL }},
@@ -166279,7 +166425,7 @@ void proto_register_lte_rrc(void) {
{ "drb-ContinueROHC-r13", "lte-rrc.drb_ContinueROHC_r13",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_drb_ContinueROHC_r13_01_vals), 0,
"T_drb_ContinueROHC_r13_01", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_387,
+ { &hf_lte_rrc_nonCriticalExtension_388,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionResume_NB_v1610_IEs", HFILL }},
@@ -166287,7 +166433,15 @@ void proto_register_lte_rrc(void) {
{ "fullConfig-r16", "lte-rrc.fullConfig_r16",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_fullConfig_r16_vals), 0,
NULL, HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_388,
+ { &hf_lte_rrc_nonCriticalExtension_389,
+ { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RRCConnectionResume_NB_v16f0_IEs", HFILL }},
+ { &hf_lte_rrc_obtainLocationNB_r16_01,
+ { "obtainLocationNB-r16", "lte-rrc.obtainLocationNB_r16",
+ FT_UINT32, BASE_DEC, VALS(lte_rrc_T_obtainLocationNB_r16_01_vals), 0,
+ "T_obtainLocationNB_r16_01", HFILL }},
+ { &hf_lte_rrc_nonCriticalExtension_390,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_98", HFILL }},
@@ -166303,11 +166457,11 @@ void proto_register_lte_rrc(void) {
{ "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_criticalExtensionsFuture_75", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_389,
+ { &hf_lte_rrc_nonCriticalExtension_391,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionResumeComplete_NB_v1470_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_390,
+ { &hf_lte_rrc_nonCriticalExtension_392,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionResumeComplete_NB_v1610_IEs", HFILL }},
@@ -166319,11 +166473,11 @@ void proto_register_lte_rrc(void) {
{ "anr-InfoAvailable-r16", "lte-rrc.rRCConnectionResumeComplete_NB_v1610_IEs.anr_InfoAvailable_r16",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_rRCConnectionResumeComplete_NB_v1610_IEs_anr_InfoAvailable_r16_vals), 0,
"T_rRCConnectionResumeComplete_NB_v1610_IEs_anr_InfoAvailable_r16", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_391,
+ { &hf_lte_rrc_nonCriticalExtension_393,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionResumeComplete_NB_v1710_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_392,
+ { &hf_lte_rrc_nonCriticalExtension_394,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_99", HFILL }},
@@ -166391,11 +166545,11 @@ void proto_register_lte_rrc(void) {
{ "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_criticalExtensionsFuture_77", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_393,
+ { &hf_lte_rrc_nonCriticalExtension_395,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionSetup_NB_v1610_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_394,
+ { &hf_lte_rrc_nonCriticalExtension_396,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_100", HFILL }},
@@ -166423,7 +166577,7 @@ void proto_register_lte_rrc(void) {
{ "up-CIoT-EPS-Optimisation-r13", "lte-rrc.up_CIoT_EPS_Optimisation_r13",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_up_CIoT_EPS_Optimisation_r13_02_vals), 0,
"T_up_CIoT_EPS_Optimisation_r13_02", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_395,
+ { &hf_lte_rrc_nonCriticalExtension_397,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionSetupComplete_NB_v1430_IEs", HFILL }},
@@ -166431,11 +166585,11 @@ void proto_register_lte_rrc(void) {
{ "gummei-Type-r14", "lte-rrc.gummei_Type_r14",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_gummei_Type_r14_vals), 0,
NULL, HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_396,
+ { &hf_lte_rrc_nonCriticalExtension_398,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionSetupComplete_NB_v1470_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_397,
+ { &hf_lte_rrc_nonCriticalExtension_399,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionSetupComplete_NB_v1610_IEs", HFILL }},
@@ -166479,11 +166633,11 @@ void proto_register_lte_rrc(void) {
{ "pur-ConfigID-r16", "lte-rrc.pur_ConfigID_r16",
FT_BYTES, BASE_NONE, NULL, 0,
"PUR_ConfigID_NB_r16", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_398,
+ { &hf_lte_rrc_nonCriticalExtension_400,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCConnectionSetupComplete_NB_v1710_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_399,
+ { &hf_lte_rrc_nonCriticalExtension_401,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_101", HFILL }},
@@ -166507,15 +166661,15 @@ void proto_register_lte_rrc(void) {
{ "redirectedCarrierInfoExt-r15", "lte-rrc.redirectedCarrierInfoExt_r15_element",
FT_NONE, BASE_NONE, NULL, 0,
"RedirectedCarrierInfo_NB_v1430", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_400,
+ { &hf_lte_rrc_nonCriticalExtension_402,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCEarlyDataComplete_NB_v1590_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_401,
+ { &hf_lte_rrc_nonCriticalExtension_403,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCEarlyDataComplete_NB_v1700_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_402,
+ { &hf_lte_rrc_nonCriticalExtension_404,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_102", HFILL }},
@@ -166547,11 +166701,11 @@ void proto_register_lte_rrc(void) {
{ "cqi-NPDCCH-r15", "lte-rrc.cqi_NPDCCH_r15",
FT_UINT32, BASE_DEC, VALS(lte_rrc_CQI_NPDCCH_NB_r14_vals), 0,
"CQI_NPDCCH_NB_r14", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_403,
+ { &hf_lte_rrc_nonCriticalExtension_405,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"RRCEarlyDataRequest_NB_v1590_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_404,
+ { &hf_lte_rrc_nonCriticalExtension_406,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_103", HFILL }},
@@ -166559,7 +166713,7 @@ void proto_register_lte_rrc(void) {
{ "establishmentCause-r16", "lte-rrc.establishmentCause_r16",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_establishmentCause_r16_02_vals), 0,
"T_establishmentCause_r16_02", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_405,
+ { &hf_lte_rrc_nonCriticalExtension_407,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_104", HFILL }},
@@ -166571,7 +166725,7 @@ void proto_register_lte_rrc(void) {
{ "scptm-NeighbourCellList-r14", "lte-rrc.scptm_NeighbourCellList_r14",
FT_UINT32, BASE_DEC, NULL, 0,
"SCPTM_NeighbourCellList_NB_r14", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_406,
+ { &hf_lte_rrc_nonCriticalExtension_408,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"SCPTMConfiguration_NB_v1610", HFILL }},
@@ -166583,7 +166737,7 @@ void proto_register_lte_rrc(void) {
{ "multiTB-Gap-r16", "lte-rrc.multiTB_Gap_r16",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_multiTB_Gap_r16_01_vals), 0,
"T_multiTB_Gap_r16_01", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_407,
+ { &hf_lte_rrc_nonCriticalExtension_409,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_105", HFILL }},
@@ -166659,7 +166813,7 @@ void proto_register_lte_rrc(void) {
{ "sib32-v1700", "lte-rrc.sib32_v1700_element",
FT_NONE, BASE_NONE, NULL, 0,
"SystemInformationBlockType32_NB_r17", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_408,
+ { &hf_lte_rrc_nonCriticalExtension_410,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_106", HFILL }},
@@ -166739,7 +166893,7 @@ void proto_register_lte_rrc(void) {
{ "systemInfoValueTagList-r13", "lte-rrc.systemInfoValueTagList_r13",
FT_UINT32, BASE_DEC, NULL, 0,
"SystemInfoValueTagList_NB_r13", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_409,
+ { &hf_lte_rrc_nonCriticalExtension_411,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"SystemInformationBlockType1_NB_v1350", HFILL }},
@@ -166747,7 +166901,7 @@ void proto_register_lte_rrc(void) {
{ "cellSelectionInfo-v1350", "lte-rrc.cellSelectionInfo_v1350_element",
FT_NONE, BASE_NONE, NULL, 0,
"CellSelectionInfo_NB_v1350", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_410,
+ { &hf_lte_rrc_nonCriticalExtension_412,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"SystemInformationBlockType1_NB_v1430", HFILL }},
@@ -166755,7 +166909,7 @@ void proto_register_lte_rrc(void) {
{ "cellSelectionInfo-v1430", "lte-rrc.cellSelectionInfo_v1430_element",
FT_NONE, BASE_NONE, NULL, 0,
"CellSelectionInfo_NB_v1430", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_411,
+ { &hf_lte_rrc_nonCriticalExtension_413,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"SystemInformationBlockType1_NB_v1450", HFILL }},
@@ -166763,7 +166917,7 @@ void proto_register_lte_rrc(void) {
{ "nrs-CRS-PowerOffset-v1450", "lte-rrc.nrs_CRS_PowerOffset_v1450",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_nrs_CRS_PowerOffset_v1450_vals), 0,
"T_nrs_CRS_PowerOffset_v1450", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_412,
+ { &hf_lte_rrc_nonCriticalExtension_414,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"SystemInformationBlockType1_NB_v1530", HFILL }},
@@ -166787,7 +166941,7 @@ void proto_register_lte_rrc(void) {
{ "schedulingInfoList-v1530", "lte-rrc.schedulingInfoList_v1530",
FT_UINT32, BASE_DEC, NULL, 0,
"SchedulingInfoList_NB_v1530", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_413,
+ { &hf_lte_rrc_nonCriticalExtension_415,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"SystemInformationBlockType1_NB_v1610", HFILL }},
@@ -166807,7 +166961,7 @@ void proto_register_lte_rrc(void) {
{ "cellBarred-5GC-r16", "lte-rrc.cellBarred_5GC_r16",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_cellBarred_5GC_r16_vals), 0,
NULL, HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_414,
+ { &hf_lte_rrc_nonCriticalExtension_416,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"SystemInformationBlockType1_NB_v1700", HFILL }},
@@ -166823,7 +166977,7 @@ void proto_register_lte_rrc(void) {
{ "plmn-IdentityList-v1700", "lte-rrc.plmn_IdentityList_v1700",
FT_UINT32, BASE_DEC, NULL, 0,
"PLMN_IdentityList_NB_v1700", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_415,
+ { &hf_lte_rrc_nonCriticalExtension_417,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_107", HFILL }},
@@ -166947,7 +167101,7 @@ void proto_register_lte_rrc(void) {
{ "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_criticalExtensionsFuture_82", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_416,
+ { &hf_lte_rrc_nonCriticalExtension_418,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_108", HFILL }},
@@ -166971,7 +167125,7 @@ void proto_register_lte_rrc(void) {
{ "ue-RadioPagingInfo-r13", "lte-rrc.ue_RadioPagingInfo_r13_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_RadioPagingInfo_NB_r13", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_417,
+ { &hf_lte_rrc_nonCriticalExtension_419,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UECapabilityInformation_NB_Ext_r14_IEs", HFILL }},
@@ -166979,7 +167133,7 @@ void proto_register_lte_rrc(void) {
{ "ue-Capability-ContainerExt-r14", "lte-rrc.ue_Capability_ContainerExt_r14",
FT_BYTES, BASE_NONE, NULL, 0,
"T_ue_Capability_ContainerExt_r14", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_418,
+ { &hf_lte_rrc_nonCriticalExtension_420,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_109", HFILL }},
@@ -167007,7 +167161,7 @@ void proto_register_lte_rrc(void) {
{ "anr-ReportReq-r16", "lte-rrc.anr_ReportReq_r16",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"BOOLEAN", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_419,
+ { &hf_lte_rrc_nonCriticalExtension_421,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_110", HFILL }},
@@ -167035,7 +167189,7 @@ void proto_register_lte_rrc(void) {
{ "anr-MeasReport-r16", "lte-rrc.anr_MeasReport_r16_element",
FT_NONE, BASE_NONE, NULL, 0,
"ANR_MeasReport_NB_r16", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_420,
+ { &hf_lte_rrc_nonCriticalExtension_422,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_111", HFILL }},
@@ -167083,7 +167237,7 @@ void proto_register_lte_rrc(void) {
{ "criticalExtensionsFuture", "lte-rrc.criticalExtensionsFuture_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_criticalExtensionsFuture_86", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_421,
+ { &hf_lte_rrc_nonCriticalExtension_423,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"T_nonCriticalExtension_112", HFILL }},
@@ -169319,7 +169473,7 @@ void proto_register_lte_rrc(void) {
{ "rf-Parameters-v1430", "lte-rrc.rf_Parameters_v1430_element",
FT_NONE, BASE_NONE, NULL, 0,
"RF_Parameters_NB_v1430", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_422,
+ { &hf_lte_rrc_nonCriticalExtension_424,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v1440_IEs", HFILL }},
@@ -169327,11 +169481,11 @@ void proto_register_lte_rrc(void) {
{ "phyLayerParameters-v1440", "lte-rrc.phyLayerParameters_v1440_element",
FT_NONE, BASE_NONE, NULL, 0,
"PhyLayerParameters_NB_v1440", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_423,
+ { &hf_lte_rrc_nonCriticalExtension_425,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v14x0_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_424,
+ { &hf_lte_rrc_nonCriticalExtension_426,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v1530_IEs", HFILL }},
@@ -169355,11 +169509,11 @@ void proto_register_lte_rrc(void) {
{ "tdd-UE-Capability-r15", "lte-rrc.tdd_UE_Capability_r15_element",
FT_NONE, BASE_NONE, NULL, 0,
"TDD_UE_Capability_NB_r15", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_425,
+ { &hf_lte_rrc_nonCriticalExtension_427,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v15x0_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_426,
+ { &hf_lte_rrc_nonCriticalExtension_428,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v1610_IEs", HFILL }},
@@ -169395,14 +169549,26 @@ void proto_register_lte_rrc(void) {
{ "tdd-UE-Capability-v1610", "lte-rrc.tdd_UE_Capability_v1610_element",
FT_NONE, BASE_NONE, NULL, 0,
"TDD_UE_Capability_NB_v1610", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_427,
+ { &hf_lte_rrc_nonCriticalExtension_429,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v16x0_IEs", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_428,
+ { &hf_lte_rrc_lateNonCriticalExtension_15,
+ { "lateNonCriticalExtension", "lte-rrc.lateNonCriticalExtension",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "T_lateNonCriticalExtension_14", HFILL }},
+ { &hf_lte_rrc_nonCriticalExtension_430,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v1700_IEs", HFILL }},
+ { &hf_lte_rrc_son_Parameters_v16f0,
+ { "son-Parameters-v16f0", "lte-rrc.son_Parameters_v16f0_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SON_Parameters_NB_v16f0", HFILL }},
+ { &hf_lte_rrc_nonCriticalExtension_431,
+ { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "T_nonCriticalExtension_113", HFILL }},
{ &hf_lte_rrc_coverageBasedPaging_r17,
{ "coverageBasedPaging-r17", "lte-rrc.coverageBasedPaging_r17",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_coverageBasedPaging_r17_vals), 0,
@@ -169415,7 +169581,7 @@ void proto_register_lte_rrc(void) {
{ "ntn-Parameters-r17", "lte-rrc.ntn_Parameters_r17_element",
FT_NONE, BASE_NONE, NULL, 0,
"NTN_Parameters_NB_r17", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_429,
+ { &hf_lte_rrc_nonCriticalExtension_432,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v1710_IEs", HFILL }},
@@ -169431,7 +169597,7 @@ void proto_register_lte_rrc(void) {
{ "tdd-UE-Capability-v1710", "lte-rrc.tdd_UE_Capability_v1710_element",
FT_NONE, BASE_NONE, NULL, 0,
"TDD_UE_Capability_NB_v1710", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_430,
+ { &hf_lte_rrc_nonCriticalExtension_433,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
"UE_Capability_NB_v1720_IEs", HFILL }},
@@ -169439,10 +169605,10 @@ void proto_register_lte_rrc(void) {
{ "ntn-Parameters-v1720", "lte-rrc.ntn_Parameters_v1720_element",
FT_NONE, BASE_NONE, NULL, 0,
"NTN_Parameters_NB_v1720", HFILL }},
- { &hf_lte_rrc_nonCriticalExtension_431,
+ { &hf_lte_rrc_nonCriticalExtension_434,
{ "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element",
FT_NONE, BASE_NONE, NULL, 0,
- "T_nonCriticalExtension_113", HFILL }},
+ "T_nonCriticalExtension_114", HFILL }},
{ &hf_lte_rrc_ue_Category_NB_r15,
{ "ue-Category-NB-r15", "lte-rrc.ue_Category_NB_r15",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_ue_Category_NB_r15_vals), 0,
@@ -169691,6 +169857,10 @@ void proto_register_lte_rrc(void) {
{ "rach-Report-r16", "lte-rrc.rach_Report_r16",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_rach_Report_r16_vals), 0,
"T_rach_Report_r16", HFILL }},
+ { &hf_lte_rrc_locationInfo_r16_01,
+ { "locationInfo-r16", "lte-rrc.locationInfo_r16",
+ FT_UINT32, BASE_DEC, VALS(lte_rrc_T_locationInfo_r16_vals), 0,
+ NULL, HFILL }},
{ &hf_lte_rrc_ue_Category_NB_r13_01,
{ "ue-Category-NB-r13", "lte-rrc.ue_Category_NB_r13",
FT_UINT32, BASE_DEC, VALS(lte_rrc_T_ue_Category_NB_r13_01_vals), 0,
@@ -174005,6 +174175,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_T_criticalExtensionsFuture_66,
&ett_lte_rrc_RRCConnectionReconfiguration_NB_r13_IEs,
&ett_lte_rrc_SEQUENCE_SIZE_1_maxDRB_NB_r13_OF_DedicatedInfoNAS,
+ &ett_lte_rrc_RRCConnectionReconfiguration_NB_v16f0_IEs,
&ett_lte_rrc_T_nonCriticalExtension_92,
&ett_lte_rrc_RRCConnectionReconfigurationComplete_NB,
&ett_lte_rrc_T_criticalExtensions_69,
@@ -174069,6 +174240,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_T_criticalExtensionsFuture_74,
&ett_lte_rrc_RRCConnectionResume_NB_r13_IEs,
&ett_lte_rrc_RRCConnectionResume_NB_v1610_IEs,
+ &ett_lte_rrc_RRCConnectionResume_NB_v16f0_IEs,
&ett_lte_rrc_T_nonCriticalExtension_98,
&ett_lte_rrc_RRCConnectionResumeComplete_NB,
&ett_lte_rrc_T_criticalExtensions_77,
@@ -174433,10 +174605,12 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_UE_Capability_NB_v15x0_IEs,
&ett_lte_rrc_UE_Capability_NB_v1610_IEs,
&ett_lte_rrc_UE_Capability_NB_v16x0_IEs,
+ &ett_lte_rrc_UE_EUTRA_Capability_v16f0_IEs,
+ &ett_lte_rrc_T_nonCriticalExtension_113,
&ett_lte_rrc_UE_Capability_NB_v1700_IEs,
&ett_lte_rrc_UE_Capability_NB_v1710_IEs,
&ett_lte_rrc_UE_Capability_NB_v1720_IEs,
- &ett_lte_rrc_T_nonCriticalExtension_113,
+ &ett_lte_rrc_T_nonCriticalExtension_114,
&ett_lte_rrc_TDD_UE_Capability_NB_r15,
&ett_lte_rrc_TDD_UE_Capability_NB_v1610,
&ett_lte_rrc_TDD_UE_Capability_NB_v1710,
@@ -174465,6 +174639,7 @@ void proto_register_lte_rrc(void) {
&ett_lte_rrc_SupportedBand_NB_r13,
&ett_lte_rrc_SupportedBand_NB_v1710,
&ett_lte_rrc_SON_Parameters_NB_r16,
+ &ett_lte_rrc_SON_Parameters_NB_v16f0,
&ett_lte_rrc_UE_RadioPagingInfo_NB_r13,
&ett_lte_rrc_UE_TimersAndConstants_NB_r13,
&ett_lte_rrc_SC_MTCH_InfoList_NB_r14,
diff --git a/epan/dissectors/packet-ltp.c b/epan/dissectors/packet-ltp.c
index df798b6028..62cfafed67 100644
--- a/epan/dissectors/packet-ltp.c
+++ b/epan/dissectors/packet-ltp.c
@@ -34,6 +34,7 @@
#include <epan/packet.h>
#include <epan/expert.h>
+#include <epan/exceptions.h>
#include <epan/conversation.h>
#include <epan/conversation_table.h>
#include <epan/conversation_filter.h>
@@ -154,73 +155,12 @@ typedef struct {
wmem_map_t *rpt_acks;
/** Map from report ID (guint64) to wmem_list_t of frame info (ltp_frame_info_t*) */
wmem_map_t *rpt_datas;
+ /** Map from cancel segment type (guint64) to wmem_list_t of frame info (ltp_frame_info_t*) */
+ wmem_map_t *cancels;
+ /** Map from cancel segment type (guint64) to wmem_list_t of frame info (ltp_frame_info_t*) */
+ wmem_map_t *cancel_acks;
} ltp_session_data_t;
-/** Add a cross-reference value source.
- * @param map The map to add to.
- * @param ref_num The cross-reference value.
- * @param pinfo The source frame of the value.
- */
-static void
-ltp_ref_src(wmem_map_t *map, guint64 ref_num, const packet_info *pinfo)
-{
- wmem_list_t *found = wmem_map_lookup(map, &ref_num);
- if (!found)
- {
- guint64 *key = wmem_new(wmem_file_scope(), guint64);
- *key = ref_num;
- found = wmem_list_new(wmem_file_scope());
- wmem_map_insert(map, key, found);
- }
-
- if (wmem_list_find_custom(found, pinfo, ltp_frame_info_find_pinfo))
- {
- return;
- }
- ltp_frame_info_t *val = ltp_frame_info_new(pinfo);
- wmem_list_append(found, val);
-}
-
-/** Show cross-reference value sources as tree items.
- * @param map The map to search in.
- * @param ref_num The cross-reference value.
- * @param pinfo The frame using the reference (to avoid duplicates).
- * @param tree The tree to show references under.
- * @param hf_ref The field index to add source frame numbers.
- * @param hf_time The field index to report time differences.
- */
-static void
-ltp_ref_use(wmem_map_t *map, guint64 ref_num, const packet_info *pinfo, proto_tree *tree, int hf_ref, int hf_time)
-{
- const wmem_list_t *found = wmem_map_lookup(map, &ref_num);
- if (!found)
- {
- return;
- }
-
- for (wmem_list_frame_t *it = wmem_list_head(found); it != NULL;
- it = wmem_list_frame_next(it))
- {
- const ltp_frame_info_t *frame_refd = wmem_list_frame_data(it);
- if (frame_refd->frame_num == pinfo->num)
- {
- continue;
- }
- PROTO_ITEM_SET_GENERATED(
- proto_tree_add_uint(tree, hf_ref, NULL, 0, 0, frame_refd->frame_num)
- );
-
- if (hf_time > 0)
- {
- nstime_t td;
- nstime_delta(&td, &(pinfo->abs_ts), &(frame_refd->abs_ts));
- PROTO_ITEM_SET_GENERATED(
- proto_tree_add_time(tree, hf_time, NULL, 0, 0, &td)
- );
- }
- }
-}
-
/// Tap info for single segment
typedef struct {
/// Associated session context (optional)
@@ -247,8 +187,8 @@ static int proto_ltp;
static int ltp_tap;
-static gboolean ltp_reassemble_block = TRUE;
-static gboolean ltp_analyze_sequence = TRUE;
+static bool ltp_reassemble_block = true;
+static bool ltp_analyze_sequence = true;
/* LTP Header variables */
static int hf_ltp_version;
@@ -264,12 +204,12 @@ static int hf_ltp_data_clid;
static int hf_ltp_data_offset;
static int hf_ltp_data_length;
static int hf_ltp_data_chkp;
-static int hf_ltp_data_chkp_rpt;
+static int hf_ltp_data_chkp_rpt_ref;
+static int hf_ltp_data_chkp_rpt_time;
static int hf_ltp_data_rpt;
static int hf_ltp_data_rpt_ref;
static int hf_ltp_data_rpt_time;
static int hf_ltp_data_sda_clid;
-static int hf_ltp_partial_packet;
static int hf_ltp_data_clidata;
static int hf_ltp_data_retrans;
static int hf_ltp_data_clm_rpt;
@@ -280,8 +220,10 @@ static int hf_ltp_block_bundle_cnt;
/* LTP Report Segment variable */
static int hf_ltp_rpt_sno;
-static int hf_ltp_rpt_sno_ack;
-static int hf_ltp_rpt_sno_data;
+static int hf_ltp_rpt_sno_ack_ref;
+static int hf_ltp_rpt_sno_ack_time;
+static int hf_ltp_rpt_sno_data_ref;
+static int hf_ltp_rpt_sno_data_time;
static int hf_ltp_rpt_chkp;
static int hf_ltp_rpt_chkp_ref;
static int hf_ltp_rpt_chkp_time;
@@ -296,18 +238,27 @@ static int hf_ltp_rpt_clm_fst;
static int hf_ltp_rpt_clm_lst;
static int hf_ltp_rpt_clm_ref;
static int hf_ltp_rpt_gap;
+static int hf_ltp_rpt_gap_fst;
+static int hf_ltp_rpt_gap_lst;
static int hf_ltp_rpt_gap_ref;
static int hf_ltp_rpt_gap_total;
/* LTP Report Ack Segment Variable */
static int hf_ltp_rpt_ack_sno;
-static int hf_ltp_rpt_ack_dupe;
+static int hf_ltp_rpt_ack_dupe_ref;
static int hf_ltp_rpt_ack_ref;
static int hf_ltp_rpt_ack_time;
-static int hf_ltp_cancel_ack;
/* LTP Session Management Segment Variable */
static int hf_ltp_cancel_code;
+static int hf_ltp_cancel_dupe_ref;
+static int hf_ltp_cancel_ref;
+static int hf_ltp_cancel_time;
+
+static int hf_ltp_cancel_ack;
+static int hf_ltp_cancel_ack_dupe_ref;
+static int hf_ltp_cancel_ack_ref;
+static int hf_ltp_cancel_ack_time;
/* LTP Header Extension Segment */
static int hf_ltp_hdr_extn_tag;
@@ -335,6 +286,13 @@ static expert_field ei_ltp_mal_reception_claim;
static expert_field ei_ltp_sdnv_length;
static expert_field ei_ltp_sno_larger_than_ccsds;
static expert_field ei_ltp_report_async;
+static expert_field ei_ltp_data_chkp_norpt;
+static expert_field ei_ltp_data_rptno_norpt;
+static expert_field ei_ltp_rpt_noack;
+static expert_field ei_ltp_rpt_nochkp;
+static expert_field ei_ltp_rpt_ack_norpt;
+static expert_field ei_ltp_cancel_noack;
+static expert_field ei_ltp_cancel_ack_nocancel;
static dissector_handle_t bundle_handle;
@@ -442,6 +400,90 @@ static const fragment_items ltp_frag_items = {
"LTP fragments"
};
+/** Add a cross-reference value source.
+ * @param map The map to add to.
+ * @param ref_num The cross-reference value.
+ * @param pinfo The source frame of the value.
+ */
+static void
+ltp_ref_src(wmem_map_t *map, guint64 ref_num, const packet_info *pinfo)
+{
+ wmem_list_t *found = wmem_map_lookup(map, &ref_num);
+ if (!found)
+ {
+ guint64 *key = wmem_new(wmem_file_scope(), guint64);
+ *key = ref_num;
+ found = wmem_list_new(wmem_file_scope());
+ wmem_map_insert(map, key, found);
+ }
+
+ if (wmem_list_find_custom(found, pinfo, ltp_frame_info_find_pinfo))
+ {
+ return;
+ }
+ ltp_frame_info_t *val = ltp_frame_info_new(pinfo);
+ wmem_list_append(found, val);
+}
+
+/** Show cross-reference value sources as tree items.
+ * @param map The map to search in.
+ * @param ref_num The cross-reference value.
+ * @param pinfo The frame using the reference (to avoid duplicates).
+ * @param tree The tree to show references under.
+ * @param hf_ref The field index to add source frame numbers.
+ * @param hf_time The field index to report time differences.
+ * @param tap Non-null if this use is an acknowledgement of an earlier segment and should
+ * be later in time than the referenced segment.
+ */
+static void
+ltp_ref_use(wmem_map_t *map, guint64 ref_num, packet_info *pinfo, proto_tree *tree, int hf_ref, expert_field *ei_notfound, int hf_time, ltp_tap_info_t *tap)
+{
+ const wmem_list_t *found = wmem_map_lookup(map, &ref_num);
+ if (!found)
+ {
+ if (ei_notfound)
+ {
+ expert_add_info(pinfo, proto_tree_get_parent(tree), ei_notfound);
+ }
+ return;
+ }
+
+ for (wmem_list_frame_t *it = wmem_list_head(found); it != NULL;
+ it = wmem_list_frame_next(it))
+ {
+ const ltp_frame_info_t *frame_refd = wmem_list_frame_data(it);
+ if (frame_refd->frame_num == pinfo->num)
+ {
+ continue;
+ }
+ PROTO_ITEM_SET_GENERATED(
+ proto_tree_add_uint(tree, hf_ref, NULL, 0, 0, frame_refd->frame_num)
+ );
+
+ // tap is present for responses, where the other frame is earlier
+ const nstime_t *ta, *tb;
+ if (tap)
+ {
+ tb = &(pinfo->abs_ts);
+ ta = &(frame_refd->abs_ts);
+ }
+ else
+ {
+ tb = &(frame_refd->abs_ts);
+ ta = &(pinfo->abs_ts);
+ }
+ nstime_t td;
+ nstime_delta(&td, tb, ta);
+
+ if (hf_time >= 0)
+ {
+ PROTO_ITEM_SET_GENERATED(
+ proto_tree_add_time(tree, hf_time, NULL, 0, 0, &td)
+ );
+ }
+ }
+}
+
static proto_item *
add_sdnv64_to_tree(proto_tree *tree, tvbuff_t *tvb, packet_info* pinfo, int offset, int hf_sdnv, guint64 *retval, gint *lenretval)
{
@@ -476,7 +518,7 @@ ltp_data_seg_find_report(gpointer key _U_, gpointer value, gpointer user_data)
return;
}
- wmem_list_t *found = wmem_itree_find_intervals(rpt_clms, wmem_packet_scope(), data_seg->data_fst, data_seg->data_lst);
+ wmem_list_t *found = wmem_itree_find_intervals(rpt_clms, data_seg->pinfo->pool, data_seg->data_fst, data_seg->data_lst);
for (wmem_list_frame_t *it = wmem_list_head(found); it != NULL;
it = wmem_list_frame_next(it))
{
@@ -494,10 +536,11 @@ ltp_data_seg_find_report(gpointer key _U_, gpointer value, gpointer user_data)
}
static int
-dissect_data_segment(proto_tree *ltp_tree, tvbuff_t *tvb,packet_info *pinfo,int frame_offset,int ltp_type,
- int *data_len, ltp_tap_info_t *tap)
+dissect_data_segment(proto_tree *ltp_tree, tvbuff_t *tvb,packet_info *pinfo,int frame_offset,
+ int *data_len, ltp_tap_info_t *tap)
{
ltp_session_data_t *session = tap->session;
+ int ltp_type = tap->seg_type;
guint64 client_id;
guint64 data_offset;
guint64 data_length;
@@ -553,7 +596,7 @@ dissect_data_segment(proto_tree *ltp_tree, tvbuff_t *tvb,packet_info *pinfo,int
{
if (data_fst <= data_lst)
{
- wmem_list_t *found = wmem_itree_find_intervals(session->data_segs, wmem_packet_scope(), data_fst, data_lst);
+ wmem_list_t *found = wmem_itree_find_intervals(session->data_segs, pinfo->pool, data_fst, data_lst);
for (wmem_list_frame_t *it = wmem_list_head(found); it != NULL;
it = wmem_list_frame_next(it))
{
@@ -604,7 +647,7 @@ dissect_data_segment(proto_tree *ltp_tree, tvbuff_t *tvb,packet_info *pinfo,int
{
proto_tree *tree_chkp_sno = proto_item_add_subtree(ti, ett_frame_ref);
ltp_ref_src(session->checkpoints, chkp_sno, pinfo);
- ltp_ref_use(session->chkp_acks, chkp_sno, pinfo, tree_chkp_sno, hf_ltp_data_chkp_rpt, -1);
+ ltp_ref_use(session->chkp_acks, chkp_sno, pinfo, tree_chkp_sno, hf_ltp_data_chkp_rpt_ref, &ei_ltp_data_chkp_norpt, hf_ltp_data_chkp_rpt_time, NULL);
}
/* report serial number - 32 bits per CCSDS */
@@ -620,10 +663,10 @@ dissect_data_segment(proto_tree *ltp_tree, tvbuff_t *tvb,packet_info *pinfo,int
} else {
return 0;
}
- if (ltp_analyze_sequence && session)
+ if (ltp_analyze_sequence && session && (rpt_sno != 0))
{
ltp_ref_src(session->rpt_datas, rpt_sno, pinfo);
- ltp_ref_use(session->reports, rpt_sno, pinfo, proto_item_add_subtree(ti, ett_frame_ref), hf_ltp_data_rpt_ref, hf_ltp_data_rpt_time);
+ ltp_ref_use(session->reports, rpt_sno, pinfo, proto_item_add_subtree(ti, ett_frame_ref), hf_ltp_data_rpt_ref, &ei_ltp_data_rptno_norpt, hf_ltp_data_rpt_time, tap);
}
}
const gboolean is_green = (ltp_type >= 4) && (ltp_type <= 7);
@@ -648,20 +691,7 @@ dissect_data_segment(proto_tree *ltp_tree, tvbuff_t *tvb,packet_info *pinfo,int
}
}
- proto_tree_add_item(ltp_data_tree, hf_ltp_data_clidata, tvb, frame_offset, -1, ENC_NA);
-
- if (segment_size >= tvb_captured_length(tvb)) {
- /* did not capture the entire packet */
- /* XXX: expert info instead? Distinguish between segment_size
- * >= reported_length (i.e., bogus reported data_length) and
- * too short capture? */
- proto_tree_add_string(ltp_data_tree, hf_ltp_partial_packet, tvb, 0, 0, "<increase capture size?>");
- /* data_len is subtracted from the return value to set the
- * header length, so report the number of data bytes available.
- */
- *data_len = tvb_captured_length_remaining(tvb, frame_offset);
- return tvb_captured_length(tvb);
- }
+ proto_tree_add_item(ltp_data_tree, hf_ltp_data_clidata, tvb, frame_offset, (int) data_length, ENC_NA);
col_append_sep_fstr(pinfo->cinfo, COL_INFO, NULL,
"range %" G_GINT64_MODIFIER "u-%" G_GINT64_MODIFIER "u",
@@ -789,7 +819,14 @@ ltp_check_reception_gap(proto_tree *ltp_rpt_tree, packet_info *pinfo,
const guint64 gap_fst = prec_lst + 1;
const guint64 gap_lst = next_fst - 1;
- wmem_list_t *found = wmem_itree_find_intervals(session->data_segs, wmem_packet_scope(), gap_fst, gap_lst);
+ PROTO_ITEM_SET_GENERATED(
+ proto_tree_add_uint64(gap_tree, hf_ltp_rpt_gap_fst, NULL, 0, 0, gap_fst)
+ );
+ PROTO_ITEM_SET_GENERATED(
+ proto_tree_add_uint64(gap_tree, hf_ltp_rpt_gap_lst, NULL, 0, 0, gap_lst)
+ );
+
+ wmem_list_t *found = wmem_itree_find_intervals(session->data_segs, pinfo->pool, gap_fst, gap_lst);
for (wmem_list_frame_t *it = wmem_list_head(found); it != NULL;
it = wmem_list_frame_next(it))
{
@@ -848,22 +885,24 @@ dissect_report_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ltp_tree,
{
proto_tree *tree_rpt_sno = proto_item_add_subtree(item_rpt_sno, ett_frame_ref);
ltp_ref_src(session->reports, rpt_sno, pinfo);
- ltp_ref_use(session->rpt_acks, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_sno_ack, -1);
- ltp_ref_use(session->rpt_datas, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_sno_data, -1);
+ ltp_ref_use(session->rpt_acks, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_sno_ack_ref, &ei_ltp_rpt_noack, hf_ltp_rpt_sno_ack_time, NULL);
+ ltp_ref_use(session->rpt_datas, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_sno_data_ref, NULL, hf_ltp_rpt_sno_data_time, NULL);
}
item_chkp_sno = add_sdnv64_to_tree(ltp_rpt_tree, tvb, pinfo, frame_offset + segment_offset, hf_ltp_rpt_chkp, &chkp_sno, &chkp_sno_size);
segment_offset += chkp_sno_size;
if (ltp_analyze_sequence && session)
{
- proto_tree *tree_chkp_sno = proto_item_add_subtree(item_chkp_sno, ett_frame_ref);
- ltp_ref_src(session->chkp_acks, chkp_sno, pinfo);
- ltp_ref_use(session->checkpoints, chkp_sno, pinfo, tree_chkp_sno, hf_ltp_rpt_chkp_ref, hf_ltp_rpt_chkp_time);
-
if (chkp_sno == 0)
{
expert_add_info(pinfo, item_chkp_sno, &ei_ltp_report_async);
}
+ else
+ {
+ proto_tree *tree_chkp_sno = proto_item_add_subtree(item_chkp_sno, ett_frame_ref);
+ ltp_ref_src(session->chkp_acks, chkp_sno, pinfo);
+ ltp_ref_use(session->checkpoints, chkp_sno, pinfo, tree_chkp_sno, hf_ltp_rpt_chkp_ref, &ei_ltp_rpt_nochkp, hf_ltp_rpt_chkp_time, tap);
+ }
}
add_sdnv64_to_tree(ltp_rpt_tree, tvb, pinfo, frame_offset + segment_offset, hf_ltp_rpt_ub, &upper_bound, &upper_bound_size);
@@ -896,7 +935,7 @@ dissect_report_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ltp_tree,
}
if (data_fst <= data_lst) {
- wmem_list_t *found = wmem_itree_find_intervals(rpt, wmem_packet_scope(), data_fst, data_lst);
+ wmem_list_t *found = wmem_itree_find_intervals(rpt, pinfo->pool, data_fst, data_lst);
for (wmem_list_frame_t *it = wmem_list_head(found); it != NULL;
it = wmem_list_frame_next(it))
{
@@ -966,7 +1005,7 @@ dissect_report_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ltp_tree,
if (ltp_analyze_sequence && session && (clm_fst <= clm_lst))
{
- wmem_list_t *found = wmem_itree_find_intervals(session->data_segs, wmem_packet_scope(), clm_fst, clm_lst);
+ wmem_list_t *found = wmem_itree_find_intervals(session->data_segs, pinfo->pool, clm_fst, clm_lst);
for (wmem_list_frame_t *it = wmem_list_head(found); it != NULL;
it = wmem_list_frame_next(it))
{
@@ -1017,8 +1056,8 @@ dissect_report_ack_segment(proto_tree *ltp_tree, tvbuff_t *tvb, packet_info *pin
{
proto_tree *tree_rpt_sno = proto_item_add_subtree(item_rpt_sno, ett_frame_ref);
ltp_ref_src(session->rpt_acks, rpt_sno, pinfo);
- ltp_ref_use(session->rpt_acks, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_ack_dupe, -1);
- ltp_ref_use(session->reports, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_ack_ref, hf_ltp_rpt_ack_time);
+ ltp_ref_use(session->rpt_acks, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_ack_dupe_ref, NULL, -1, NULL);
+ ltp_ref_use(session->reports, rpt_sno, pinfo, tree_rpt_sno, hf_ltp_rpt_ack_ref, &ei_ltp_rpt_ack_norpt, hf_ltp_rpt_ack_time, tap);
}
return segment_offset;
@@ -1026,24 +1065,47 @@ dissect_report_ack_segment(proto_tree *ltp_tree, tvbuff_t *tvb, packet_info *pin
static int
-dissect_cancel_segment(proto_tree * ltp_tree, tvbuff_t *tvb, int frame_offset, ltp_tap_info_t *tap _U_){
- guint8 reason_code;
-
- proto_tree *ltp_cancel_tree;
+dissect_cancel_segment(proto_tree *ltp_tree, tvbuff_t *tvb, packet_info *pinfo, int frame_offset, ltp_tap_info_t *tap){
+ ltp_session_data_t *session = tap->session;
/* The cancel segment has only one byte, which contains the reason code. */
- reason_code = tvb_get_guint8(tvb,frame_offset);
+ guint8 reason_code = tvb_get_guint8(tvb,frame_offset);
/* Creating tree for the cancel segment */
- ltp_cancel_tree = proto_tree_add_subtree(ltp_tree, tvb,frame_offset, 1, ett_session_mgmt, NULL, "Cancel Segment");
+ proto_tree *tree_cancel = proto_tree_add_subtree(ltp_tree, tvb,frame_offset, 1, ett_session_mgmt, NULL, "Cancel Segment");
+
+ proto_tree_add_uint(tree_cancel, hf_ltp_cancel_code, tvb, frame_offset, 1, reason_code);
+
+ if (ltp_analyze_sequence && session)
+ {
+ const guint64 cancel_type = tap->seg_type;
+ ltp_ref_src(session->cancels, cancel_type, pinfo);
+ ltp_ref_use(session->cancels, cancel_type, pinfo, tree_cancel, hf_ltp_cancel_dupe_ref, NULL, -1, NULL);
+ ltp_ref_use(session->cancel_acks, cancel_type, pinfo, tree_cancel, hf_ltp_cancel_ref, &ei_ltp_cancel_noack, hf_ltp_cancel_time, NULL);
+ }
- proto_tree_add_uint_format_value(ltp_cancel_tree, hf_ltp_cancel_code, tvb, frame_offset, 1, reason_code,
- "%x (%s)", reason_code, val_to_str_const(reason_code,ltp_cancel_codes,"Reserved"));
return 1;
}
static int
+dissect_cancel_ack_segment(proto_tree *ltp_tree, tvbuff_t *tvb, packet_info *pinfo, int frame_offset _U_, ltp_tap_info_t *tap){
+ ltp_session_data_t *session = tap->session;
+ proto_item *item_ack = proto_tree_add_item(ltp_tree, hf_ltp_cancel_ack, tvb, 0, 0, ENC_NA);
+ proto_tree *tree_ack = proto_item_add_subtree(item_ack, ett_session_mgmt);
+
+ if (ltp_analyze_sequence && session)
+ {
+ const guint64 cancel_type = tap->seg_type - 1;
+ ltp_ref_src(session->cancel_acks, cancel_type, pinfo);
+ ltp_ref_use(session->cancel_acks, cancel_type, pinfo, tree_ack, hf_ltp_cancel_ack_dupe_ref, NULL, -1, NULL);
+ ltp_ref_use(session->cancels, cancel_type, pinfo, tree_ack, hf_ltp_cancel_ack_ref, &ei_ltp_cancel_ack_nocancel, hf_ltp_cancel_ack_time, tap);
+ }
+
+ return 0;
+}
+
+static int
dissect_header_extn(proto_tree *ltp_tree, tvbuff_t *tvb, packet_info *pinfo, int frame_offset,int hdr_extn_cnt){
gint64 length;
int length_size;
@@ -1116,7 +1178,6 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
gint hdr_extn_cnt;
gint trl_extn_cnt;
- ltp_session_id_t sess_id;
int engine_id_size;
int session_num_size;
const char *sess_name;
@@ -1128,7 +1189,7 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
proto_item *ltp_session_item = NULL;
/* Check that there's enough data */
- if(tvb_captured_length(tvb) < LTP_MIN_DATA_BUFFER){
+ if(tvb_reported_length(tvb) < LTP_MIN_DATA_BUFFER){
return 0;
}
@@ -1136,7 +1197,7 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
ti = proto_tree_add_item(tree, proto_ltp, tvb, offset, -1, ENC_NA);
ltp_tree = proto_item_add_subtree(ti, ett_ltp);
- ltp_tap_info_t *tap = wmem_new0(wmem_packet_scope(), ltp_tap_info_t);
+ ltp_tap_info_t *tap = wmem_new0(pinfo->pool, ltp_tap_info_t);
/* Adding Header Subtree */
ltp_header_tree = proto_tree_add_subtree(ltp_tree, tvb, frame_offset, 0, ett_ltp_hdr, NULL, "LTP Header");
@@ -1152,19 +1213,18 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
ltp_session_tree = proto_tree_add_subtree(ltp_header_tree, tvb, frame_offset, 0, ett_hdr_session, NULL, "Session ID");
ltp_session_item = proto_tree_get_parent(ltp_session_tree);
- add_sdnv64_to_tree(ltp_session_tree, tvb, pinfo, frame_offset, hf_ltp_session_orig, &sess_id.orig_eng_id, &engine_id_size);
+ add_sdnv64_to_tree(ltp_session_tree, tvb, pinfo, frame_offset, hf_ltp_session_orig, &(tap->sess_id.orig_eng_id), &engine_id_size);
frame_offset += engine_id_size;
- add_sdnv64_to_tree(ltp_session_tree, tvb, pinfo, frame_offset, hf_ltp_session_no, &sess_id.sess_num, &session_num_size);
+ add_sdnv64_to_tree(ltp_session_tree, tvb, pinfo, frame_offset, hf_ltp_session_no, &(tap->sess_id.sess_num), &session_num_size);
frame_offset += session_num_size;
proto_item_set_end(ltp_session_item, tvb, frame_offset);
- tap->sess_id = sess_id;
sess_name = wmem_strdup_printf(
wmem_file_scope(),
"%" PRId64 "/%" PRIu64,
- sess_id.orig_eng_id, sess_id.sess_num
+ tap->sess_id.orig_eng_id, tap->sess_id.sess_num
);
tap->sess_name = sess_name;
PROTO_ITEM_SET_GENERATED(
@@ -1176,14 +1236,14 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
proto_item_append_text(ti,", Session: %s", sess_name);
p_add_proto_data(pinfo->pool, pinfo, proto_ltp, pinfo->curr_layer_num, (void *)sess_name);
- if (ltp_analyze_sequence)
+ if (tree && ltp_analyze_sequence)
{
// LTP sessions exist independently of network addresses and transport ports
conversation_element_t *conv_key = wmem_alloc_array(pinfo->pool, conversation_element_t, 3);
conv_key[0].type = CE_UINT64;
- conv_key[0].uint64_val = sess_id.orig_eng_id;
+ conv_key[0].uint64_val = tap->sess_id.orig_eng_id;
conv_key[1].type = CE_UINT64;
- conv_key[1].uint64_val = sess_id.sess_num;
+ conv_key[1].uint64_val = tap->sess_id.sess_num;
conv_key[2].type = CE_CONVERSATION_TYPE;
conv_key[2].conversation_type_val = CONVERSATION_LTP;
@@ -1203,6 +1263,8 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
session->reports = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
session->rpt_acks = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
session->rpt_datas = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
+ session->cancels = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
+ session->cancel_acks = wmem_map_new(wmem_file_scope(), g_int64_hash, g_int64_equal);
conversation_add_proto_data(convo, proto_ltp, session);
}
@@ -1229,35 +1291,35 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
/* Call sub routines to handle the segment content*/
if((ltp_type >= 0) && (ltp_type < 8)){
- segment_offset = dissect_data_segment(ltp_tree,tvb,pinfo,frame_offset,ltp_type, &data_len, tap);
+ segment_offset = dissect_data_segment(ltp_tree, tvb, pinfo, frame_offset, &data_len, tap);
if(segment_offset == 0){
col_set_str(pinfo->cinfo, COL_INFO, "Protocol Error");
return 0;
}
}
else if(ltp_type == 8){
- segment_offset = dissect_report_segment(tvb, pinfo, ltp_tree,frame_offset, tap);
+ segment_offset = dissect_report_segment(tvb, pinfo, ltp_tree, frame_offset, tap);
if(segment_offset == 0){
col_set_str(pinfo->cinfo, COL_INFO, "Protocol Error");
return 0;
}
}
else if(ltp_type == 9){
- segment_offset = dissect_report_ack_segment(ltp_tree,tvb, pinfo, frame_offset, tap);
+ segment_offset = dissect_report_ack_segment(ltp_tree, tvb, pinfo, frame_offset, tap);
if(segment_offset == 0){
col_set_str(pinfo->cinfo, COL_INFO, "Protocol Error");
return 0;
}
}
else if(ltp_type == 12 || ltp_type == 14){
- segment_offset = dissect_cancel_segment(ltp_tree,tvb,frame_offset, tap);
+ segment_offset = dissect_cancel_segment(ltp_tree, tvb, pinfo, frame_offset, tap);
if(segment_offset == 0){
col_set_str(pinfo->cinfo, COL_INFO, "Protocol Error");
return 0;
}
}
else if(ltp_type == 13 || ltp_type == 15){
- proto_tree_add_string(ltp_tree, hf_ltp_cancel_ack, tvb, 0, 0, "(No Data)");
+ segment_offset = dissect_cancel_ack_segment(ltp_tree, tvb, pinfo, frame_offset, tap);
}
frame_offset += segment_offset;
@@ -1273,7 +1335,10 @@ dissect_ltp_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
proto_item_set_len(ti, trl_start - data_len);
proto_tree_set_appendix(ltp_tree, tvb, trl_start, frame_offset - trl_start);
tap->seg_size = frame_len;
- tap_queue_packet(ltp_tap, pinfo, tap);
+ if (tree)
+ {
+ tap_queue_packet(ltp_tap, pinfo, tap);
+ }
/* Return the amount of data this dissector was able to dissect */
return frame_len;
@@ -1299,6 +1364,42 @@ dissect_ltp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
return offset;
}
+static gboolean
+dissect_ltp_heur_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+{
+ const int packet_len = tvb_reported_length(tvb);
+ if (packet_len <= LTP_MIN_DATA_BUFFER)
+ {
+ return FALSE;
+ }
+
+ int offset = 0;
+ TRY {
+ // unlike dissect_ltp() this requires the entire datagram to be dissected
+ while (offset < packet_len)
+ {
+ const int sublen = dissect_ltp_segment(tvb, offset, pinfo, NULL);
+ if (sublen == 0)
+ {
+ offset = 0;
+ break;
+ }
+ offset += sublen;
+ }
+ }
+ CATCH_BOUNDS_ERRORS {
+ offset = 0;
+ }
+ ENDTRY;
+ if (offset != packet_len)
+ {
+ return FALSE;
+ }
+
+ dissect_ltp(tvb, pinfo, tree, data);
+ return TRUE;
+}
+
/// Conversation address for the session receiver
static const char *const ltp_conv_receiver = "receiver";
/// Assigned during proto_register_ltp()
@@ -1357,7 +1458,7 @@ ltp_conv_packet(void *tapdata, packet_info *pinfo, epan_dissect_t *edt _U_, cons
copy_address_shallow(othaddr, &ltp_addr_receiver);
add_conversation_table_data(hash, src, dst, 0, 0, 1, pinfo->fd->pkt_len, &pinfo->rel_ts, &pinfo->abs_ts,
- &ltp_ct_dissector_info, ENDPOINT_NONE);
+ &ltp_ct_dissector_info, CONVERSATION_NONE);
return TAP_PACKET_REDRAW;
}
@@ -1413,7 +1514,7 @@ ltp_endp_packet(void *tapdata _U_, packet_info *pinfo _U_, epan_dissect_t *edt _
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
ltp_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "ltp");
@@ -1610,7 +1711,7 @@ proto_register_ltp(void)
},
{&hf_ltp_data_offset,
{"Offset","ltp.data.offset",
- FT_UINT64,BASE_DEC,NULL, 0x0, NULL, HFILL}
+ FT_UINT64,BASE_DEC|BASE_UNIT_STRING, &units_byte_bytes, 0x0, NULL, HFILL}
},
{&hf_ltp_data_length,
{"Length","ltp.data.length",
@@ -1620,9 +1721,13 @@ proto_register_ltp(void)
{"Checkpoint serial number","ltp.data.chkp",
FT_UINT64,BASE_DEC,NULL, 0x0, NULL, HFILL}
},
- {&hf_ltp_data_chkp_rpt,
+ {&hf_ltp_data_chkp_rpt_ref,
{"Checkpoint report segment in frame","ltp.data.chkp.rpt",
- FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL}
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_NONE), 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_data_chkp_rpt_time,
+ {"Time to checkpoint report segment","ltp.data.chkp.rpt.time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{&hf_ltp_data_rpt,
{"Report serial number","ltp.data.rpt",
@@ -1630,7 +1735,7 @@ proto_register_ltp(void)
},
{&hf_ltp_data_rpt_ref,
{"Response to report segment in frame","ltp.data.rpt.ref",
- FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL}
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_NONE), 0x0, NULL, HFILL}
},
{&hf_ltp_data_rpt_time,
{"Time since report","ltp.data.rpt.time",
@@ -1669,13 +1774,21 @@ proto_register_ltp(void)
{"Report serial number","ltp.rpt.sno",
FT_UINT64,BASE_DEC,NULL, 0x0, NULL, HFILL}
},
- {&hf_ltp_rpt_sno_ack,
+ {&hf_ltp_rpt_sno_ack_ref,
{"Report ack segment in frame","ltp.rpt.sno.ack",
- FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL}
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_NONE), 0x0, NULL, HFILL}
},
- {&hf_ltp_rpt_sno_data,
+ {&hf_ltp_rpt_sno_ack_time,
+ {"Time to report ack segment","ltp.rpt.sno.ack.time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_rpt_sno_data_ref,
{"Responding data segment in frame","ltp.rpt.sno.data",
- FT_FRAMENUM, BASE_NONE, NULL, 0x0, NULL, HFILL}
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_NONE), 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_rpt_sno_data_time,
+ {"Time to checkpoint data segment","ltp.rpt.sno.data.time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{&hf_ltp_rpt_chkp,
{"Checkpoint serial number","ltp.rpt.chkp",
@@ -1734,6 +1847,14 @@ proto_register_ltp(void)
{"Reception gap","ltp.rpt.gap",
FT_UINT64,BASE_DEC|BASE_UNIT_STRING, &units_byte_bytes, 0x0, NULL, HFILL}
},
+ {&hf_ltp_rpt_gap_fst,
+ {"First block index","ltp.rpt.gap.first",
+ FT_UINT64,BASE_DEC,NULL, 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_rpt_gap_lst,
+ {"Last block index","ltp.rpt.gap.last",
+ FT_UINT64,BASE_DEC,NULL, 0x0, NULL, HFILL}
+ },
{&hf_ltp_rpt_gap_ref,
{"Data segment in frame","ltp.rpt.gap.ref",
FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_NONE), 0x0,
@@ -1747,12 +1868,12 @@ proto_register_ltp(void)
{"Report serial number","ltp.rpt.ack.sno",
FT_UINT64,BASE_DEC,NULL, 0x0, NULL, HFILL}
},
- {&hf_ltp_rpt_ack_dupe,
+ {&hf_ltp_rpt_ack_dupe_ref,
{"Same ack report number in frame","ltp.rpt.ack.sno.dupe",
- FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_NONE), 0x0, NULL, HFILL}
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RETRANS_PREV), 0x0, NULL, HFILL}
},
{&hf_ltp_rpt_ack_ref,
- {"Report segment in frame","ltp.rpt.ack.sno.ref",
+ {"Response to report segment in frame","ltp.rpt.ack.sno.ref",
FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_ACK), 0x0, NULL, HFILL}
},
{&hf_ltp_rpt_ack_time,
@@ -1761,7 +1882,35 @@ proto_register_ltp(void)
},
{&hf_ltp_cancel_code,
{"Cancel code","ltp.cancel.code",
- FT_UINT8,BASE_HEX,NULL, 0x0, NULL, HFILL}
+ FT_UINT8,BASE_HEX, VALS(ltp_cancel_codes), 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_cancel_dupe_ref,
+ {"Same session cancel in frame","ltp.cancel.dupe.ref",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RETRANS_PREV), 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_cancel_ref,
+ {"Acknowledgement segment in frame", "ltp.cancel.ack.ref",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_NONE), 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_cancel_time,
+ {"Time to cancel ack","ltp.cancel.ack.time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_cancel_ack,
+ {"Cancel Ack", "ltp.cancel_ack",
+ FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_cancel_ack_dupe_ref,
+ {"Same acknowledgement in frame","ltp.cancel_ack.dupe.ref",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RETRANS_PREV), 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_cancel_ack_ref,
+ {"Response to cancel segment in frame", "ltp.cancel_ack.cancel.ref",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_ACK), 0x0, NULL, HFILL}
+ },
+ {&hf_ltp_cancel_ack_time,
+ {"Time since cancel","ltp.cancel_ack.cancel.time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0, NULL, HFILL}
},
{&hf_ltp_hdr_extn_tag,
{"Extension tag","ltp.hdr.extn.tag",
@@ -1831,14 +1980,6 @@ proto_register_ltp(void)
{&hf_ltp_data_sda_clid,
{"Client service ID", "ltp.data.sda.client.id",
FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL}
- },
- {&hf_ltp_partial_packet,
- {"<partial packet>", "ltp.partial_packet",
- FT_STRINGZPAD, BASE_NONE, NULL, 0x0, NULL, HFILL}
- },
- {&hf_ltp_cancel_ack,
- {"<Cancel Ack>", "ltp.cancel_ack",
- FT_STRINGZPAD, BASE_NONE, NULL, 0x0, NULL, HFILL}
}
};
@@ -1865,7 +2006,14 @@ proto_register_ltp(void)
{ &ei_ltp_mal_reception_claim, { "ltp.mal_reception_claim", PI_MALFORMED, PI_ERROR, "Reception claim count impossibly large", EXPFILL }},
{ &ei_ltp_sdnv_length, { "ltp.sdnv_length_invalid", PI_PROTOCOL, PI_ERROR, "SDNV length error", EXPFILL }},
{ &ei_ltp_sno_larger_than_ccsds, { "ltp.serial_number_too_large", PI_PROTOCOL, PI_WARN, "Serial number larger than CCSDS specification", EXPFILL }},
- { &ei_ltp_report_async, { "ltp.report_async", PI_SEQUENCE, PI_CHAT, "Report segment not sent in response to a data checkpoint", EXPFILL }}
+ { &ei_ltp_report_async, { "ltp.report_async", PI_SEQUENCE, PI_CHAT, "Report segment not sent in response to a data checkpoint", EXPFILL }},
+ { &ei_ltp_data_chkp_norpt, { "ltp.data_chkp_norpt", PI_SEQUENCE, PI_CHAT, "Data with checkpoint has no corresponding report segment", EXPFILL }},
+ { &ei_ltp_data_rptno_norpt, { "ltp.data_rptno_norpt", PI_SEQUENCE, PI_CHAT, "Data with report serial has no corresponding report segment", EXPFILL }},
+ { &ei_ltp_rpt_noack, { "ltp.rpt_noack", PI_SEQUENCE, PI_CHAT, "Report segment has no corresponding acknowledgement", EXPFILL }},
+ { &ei_ltp_rpt_nochkp, { "ltp.rpt_nochkp", PI_SEQUENCE, PI_CHAT, "Report segment has no corresponding checkpoint data segment", EXPFILL }},
+ { &ei_ltp_rpt_ack_norpt, { "ltp.rpt_ack_norpt", PI_SEQUENCE, PI_CHAT, "Report has no report acknowledgement segment", EXPFILL }},
+ { &ei_ltp_cancel_noack, { "ltp.cancel_noack", PI_SEQUENCE, PI_CHAT, "Cancel segment has no cancel acknowledgement segment", EXPFILL }},
+ { &ei_ltp_cancel_ack_nocancel, { "ltp.cancel_ack_nocancel", PI_SEQUENCE, PI_CHAT, "Cancel acknowledgement has no corresponding cancel segment", EXPFILL }}
};
expert_module_t* expert_ltp;
@@ -1922,6 +2070,7 @@ proto_reg_handoff_ltp(void)
dissector_add_uint_with_preference("udp.port", LTP_PORT, ltp_handle);
dissector_add_uint_with_preference("dccp.port", LTP_PORT, ltp_handle);
+ heur_dissector_add("udp", dissect_ltp_heur_udp, "LTP over UDP", "ltp_udp", proto_ltp, HEURISTIC_DISABLE);
stats_tree_register("ltp", "ltp", "LTP", ST_SORT_COL_COUNT, ltp_stats_tree_packet, ltp_stats_tree_init, NULL);
}
diff --git a/epan/dissectors/packet-lustre.c b/epan/dissectors/packet-lustre.c
index e727251cca..c4129bff12 100644
--- a/epan/dissectors/packet-lustre.c
+++ b/epan/dissectors/packet-lustre.c
@@ -6494,7 +6494,7 @@ process_opcode_ldlm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *
offset = dissect_struct_barrier_lvb(tvb, offset, tree, LUSTRE_REC_OFF);
break;
case LDLM_SET_INFO:
- /* no data - c.f. Request reasoning, this prossesed as RFQ_OBD_SET_INFO */
+ /* no data - c.f. Request reasoning, this processed as RFQ_OBD_SET_INFO */
break;
default:
expert_add_info_format(pinfo, tree, &ei_lustre_badopc, "UNKNOWN LDLM OPCODE: %d (type: %d)", trans->opcode, pb_type);
diff --git a/epan/dissectors/packet-lwapp.c b/epan/dissectors/packet-lwapp.c
index 2b1774b7d3..abc4e7ee55 100644
--- a/epan/dissectors/packet-lwapp.c
+++ b/epan/dissectors/packet-lwapp.c
@@ -65,7 +65,7 @@ static dissector_handle_t wlan_handle;
static dissector_handle_t wlan_bsfc_handle;
/* Set by preferences */
-static gboolean swap_frame_control;
+static bool swap_frame_control;
typedef struct {
guint8 flags;
diff --git a/epan/dissectors/packet-lwm.c b/epan/dissectors/packet-lwm.c
index 8fa9d7e04c..c42a518236 100644
--- a/epan/dissectors/packet-lwm.c
+++ b/epan/dissectors/packet-lwm.c
@@ -84,7 +84,7 @@ void proto_register_lwm(void);
void proto_reg_handoff_lwm(void);
/* User string with the decryption key. */
-static const gchar *lwmes_key_str = NULL;
+static const gchar *lwmes_key_str;
static gboolean lwmes_key_valid;
static guint8 lwmes_key[16];
@@ -173,23 +173,23 @@ dissect_lwm_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
/* 1) first byte must have bits 0000xxxx */
if(tvb_get_guint8(tvb, 0) & LWM_FCF_RESERVED)
- return (FALSE);
+ return FALSE;
/* The header should be at least long enough for the base header. */
if (tvb_reported_length(tvb) < LWM_HEADER_BASE_LEN)
- return (FALSE);
+ return FALSE;
/* The endpoints should either both be zero, or both non-zero. */
endpt = tvb_get_guint8(tvb, 6);
srcep = (endpt & LWM_SRC_ENDP_MASK) >> LWM_SRC_ENDP_OFFSET;
dstep = (endpt & LWM_DST_ENDP_MASK) >> LWM_DST_ENDP_OFFSET;
if ((srcep == 0) && (dstep != 0))
- return (FALSE);
+ return FALSE;
if ((srcep != 0) && (dstep == 0))
- return (FALSE);
+ return FALSE;
dissect_lwm(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
} /* dissect_lwm_heur */
/*FUNCTION:------------------------------------------------------
diff --git a/epan/dissectors/packet-lwm2mtlv.c b/epan/dissectors/packet-lwm2mtlv.c
index 7839155a58..7d20f0bbe6 100644
--- a/epan/dissectors/packet-lwm2mtlv.c
+++ b/epan/dissectors/packet-lwm2mtlv.c
@@ -745,7 +745,7 @@ addValueInterpretations(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tlv_tree,
break;
case DATA_TYPE_BOOLEAN:
{
- gboolean boolval;
+ bool boolval;
proto_tree_add_item_ret_boolean(tlv_tree, *resource->hf_id, tvb, valueOffset, element->length_of_value, ENC_BIG_ENDIAN, &boolval);
proto_item_append_text(tlv_tree, ": %s", boolval ? "True" : "False");
break;
diff --git a/epan/dissectors/packet-lwres.c b/epan/dissectors/packet-lwres.c
index ad700a57eb..e7bc947d0c 100644
--- a/epan/dissectors/packet-lwres.c
+++ b/epan/dissectors/packet-lwres.c
@@ -185,7 +185,7 @@ static const value_string message_types_values[] = {
{ 0, NULL },
};
-static void dissect_getnamebyaddr_request(tvbuff_t* tvb, proto_tree* lwres_tree)
+static void dissect_getnamebyaddr_request(tvbuff_t* tvb, packet_info *pinfo, proto_tree* lwres_tree)
{
guint32 flags,family;
guint addrlen, slen;
@@ -196,7 +196,7 @@ static void dissect_getnamebyaddr_request(tvbuff_t* tvb, proto_tree* lwres_tree)
flags = tvb_get_ntohl(tvb, LWRES_LWPACKET_LENGTH);
family = tvb_get_ntohl(tvb, LWRES_LWPACKET_LENGTH + 4);
addrlen = tvb_get_ntohs(tvb, LWRES_LWPACKET_LENGTH + 8);
- addrs = tvb_ip_to_str(wmem_packet_scope(), tvb, LWRES_LWPACKET_LENGTH + 10);
+ addrs = tvb_ip_to_str(pinfo->pool, tvb, LWRES_LWPACKET_LENGTH + 10);
slen = (int)strlen(addrs);
if (lwres_tree == NULL)
@@ -430,7 +430,7 @@ static void dissect_getaddrsbyname_response(tvbuff_t* tvb, packet_info *pinfo, p
}
-static void dissect_a_records(tvbuff_t* tvb, proto_tree* tree,guint32 nrec,int offset)
+static void dissect_a_records(tvbuff_t* tvb, packet_info *pinfo, proto_tree* tree,guint32 nrec,int offset)
{
guint32 i, curr;
const gchar* addrs;
@@ -449,7 +449,7 @@ static void dissect_a_records(tvbuff_t* tvb, proto_tree* tree,guint32 nrec,int o
curr = offset + (int)((sizeof(guint32)+sizeof(guint16)) * i);
- addrs = tvb_ip_to_str(wmem_packet_scope(), tvb, curr+2);
+ addrs = tvb_ip_to_str(pinfo->pool, tvb, curr+2);
addr_tree = proto_tree_add_subtree_format(a_rec_tree, tvb, curr,
6, ett_a_rec_addr, NULL, "Address %s", addrs);
@@ -748,7 +748,7 @@ static void dissect_rdata_response(tvbuff_t* tvb, packet_info *pinfo, proto_tree
switch(rdtype)
{
case T_A:
- dissect_a_records(tvb,rdata_resp_tree,nrdatas,offset);
+ dissect_a_records(tvb,pinfo,rdata_resp_tree,nrdatas,offset);
break;
case T_SRV:
@@ -797,7 +797,7 @@ static void dissect_getaddrsbyname(tvbuff_t* tvb, packet_info *pinfo, proto_tree
static void dissect_getnamebyaddr(tvbuff_t* tvb, packet_info *pinfo, proto_tree* lwres_tree, int type)
{
if(type == 1)
- dissect_getnamebyaddr_request(tvb, lwres_tree);
+ dissect_getnamebyaddr_request(tvb, pinfo, lwres_tree);
else
dissect_getnamebyaddr_response(tvb, pinfo, lwres_tree);
}
diff --git a/epan/dissectors/packet-m2ap.c b/epan/dissectors/packet-m2ap.c
index cee1211773..9dccb185ee 100644
--- a/epan/dissectors/packet-m2ap.c
+++ b/epan/dissectors/packet-m2ap.c
@@ -331,97 +331,97 @@ static int hf_m2ap_unsuccessfulOutcome_value; /* UnsuccessfulOutcome_value *
static int ett_m2ap;
static int ett_m2ap_PLMN_Identity;
static int ett_m2ap_IPAddress;
-static gint ett_m2ap_PrivateIE_ID;
-static gint ett_m2ap_ProtocolIE_Container;
-static gint ett_m2ap_ProtocolIE_Field;
-static gint ett_m2ap_ProtocolExtensionContainer;
-static gint ett_m2ap_ProtocolExtensionField;
-static gint ett_m2ap_PrivateIE_Container;
-static gint ett_m2ap_PrivateIE_Field;
-static gint ett_m2ap_AdditionalConfigParameters;
-static gint ett_m2ap_AllocationAndRetentionPriority;
-static gint ett_m2ap_Cause;
-static gint ett_m2ap_Cell_Information;
-static gint ett_m2ap_Cell_Information_List;
-static gint ett_m2ap_CriticalityDiagnostics;
-static gint ett_m2ap_CriticalityDiagnostics_IE_List;
-static gint ett_m2ap_CriticalityDiagnostics_IE_List_item;
-static gint ett_m2ap_ECGI;
-static gint ett_m2ap_ENB_ID;
-static gint ett_m2ap_ENB_MBMS_Configuration_data_Item;
-static gint ett_m2ap_ENB_MBMS_Configuration_data_ConfigUpdate_Item;
-static gint ett_m2ap_GBR_QosInformation;
-static gint ett_m2ap_GlobalENB_ID;
-static gint ett_m2ap_GlobalMCE_ID;
-static gint ett_m2ap_MBMS_Cell_List;
-static gint ett_m2ap_MBMS_E_RAB_QoS_Parameters;
-static gint ett_m2ap_MBMS_Service_associatedLogicalM2_ConnectionItem;
-static gint ett_m2ap_MBMS_Service_Area_ID_List;
-static gint ett_m2ap_MBMSsessionListPerPMCH_Item;
-static gint ett_m2ap_MBMSsessionListPerPMCH_Item_item;
-static gint ett_m2ap_MBMSsessionsToBeSuspendedListPerPMCH_Item;
-static gint ett_m2ap_MBMSsessionsToBeSuspendedListPerPMCH_Item_item;
-static gint ett_m2ap_MBSFN_Subframe_Configuration;
-static gint ett_m2ap_T_subframeAllocation;
-static gint ett_m2ap_MCCHrelatedBCCH_ConfigPerMBSFNArea_Item;
-static gint ett_m2ap_MCCHrelatedBCCH_ExtConfigPerMBSFNArea_Item;
-static gint ett_m2ap_PMCH_Configuration;
-static gint ett_m2ap_SC_PTM_Information;
-static gint ett_m2ap_SubframeAllocationExtended;
-static gint ett_m2ap_SubframeAllocationFurtherExtension;
-static gint ett_m2ap_TMGI;
-static gint ett_m2ap_TNL_Information;
-static gint ett_m2ap_SessionStartRequest;
-static gint ett_m2ap_SessionStartResponse;
-static gint ett_m2ap_SessionStartFailure;
-static gint ett_m2ap_SessionStopRequest;
-static gint ett_m2ap_SessionStopResponse;
-static gint ett_m2ap_SessionUpdateRequest;
-static gint ett_m2ap_SessionUpdateResponse;
-static gint ett_m2ap_SessionUpdateFailure;
-static gint ett_m2ap_MbmsSchedulingInformation;
-static gint ett_m2ap_MBSFN_Area_Configuration_List;
-static gint ett_m2ap_PMCH_Configuration_List;
-static gint ett_m2ap_PMCH_Configuration_Item;
-static gint ett_m2ap_MBSFN_Subframe_ConfigurationList;
-static gint ett_m2ap_MBMS_Suspension_Notification_List;
-static gint ett_m2ap_MBMS_Suspension_Notification_Item;
-static gint ett_m2ap_MbmsSchedulingInformationResponse;
-static gint ett_m2ap_M2SetupRequest;
-static gint ett_m2ap_ENB_MBMS_Configuration_data_List;
-static gint ett_m2ap_M2SetupResponse;
-static gint ett_m2ap_MCCHrelatedBCCH_ConfigPerMBSFNArea;
-static gint ett_m2ap_MCCHrelatedBCCH_ExtConfigPerMBSFNArea;
-static gint ett_m2ap_M2SetupFailure;
-static gint ett_m2ap_ENBConfigurationUpdate;
-static gint ett_m2ap_ENB_MBMS_Configuration_data_List_ConfigUpdate;
-static gint ett_m2ap_ENBConfigurationUpdateAcknowledge;
-static gint ett_m2ap_ENBConfigurationUpdateFailure;
-static gint ett_m2ap_MCEConfigurationUpdate;
-static gint ett_m2ap_MCEConfigurationUpdateAcknowledge;
-static gint ett_m2ap_MCEConfigurationUpdateFailure;
-static gint ett_m2ap_ErrorIndication;
-static gint ett_m2ap_Reset;
-static gint ett_m2ap_ResetType;
-static gint ett_m2ap_MBMS_Service_associatedLogicalM2_ConnectionListRes;
-static gint ett_m2ap_ResetAcknowledge;
-static gint ett_m2ap_MBMS_Service_associatedLogicalM2_ConnectionListResAck;
-static gint ett_m2ap_PrivateMessage;
-static gint ett_m2ap_MbmsServiceCountingRequest;
-static gint ett_m2ap_MBMS_Counting_Request_Session;
-static gint ett_m2ap_MBMS_Counting_Request_SessionIE;
-static gint ett_m2ap_MbmsServiceCountingResponse;
-static gint ett_m2ap_MbmsServiceCountingFailure;
-static gint ett_m2ap_MbmsServiceCountingResultsReport;
-static gint ett_m2ap_MBMS_Counting_Result_List;
-static gint ett_m2ap_MBMS_Counting_Result;
-static gint ett_m2ap_MbmsOverloadNotification;
-static gint ett_m2ap_Overload_Status_Per_PMCH_List;
-static gint ett_m2ap_Active_MBMS_Session_List;
-static gint ett_m2ap_M2AP_PDU;
-static gint ett_m2ap_InitiatingMessage;
-static gint ett_m2ap_SuccessfulOutcome;
-static gint ett_m2ap_UnsuccessfulOutcome;
+static int ett_m2ap_PrivateIE_ID;
+static int ett_m2ap_ProtocolIE_Container;
+static int ett_m2ap_ProtocolIE_Field;
+static int ett_m2ap_ProtocolExtensionContainer;
+static int ett_m2ap_ProtocolExtensionField;
+static int ett_m2ap_PrivateIE_Container;
+static int ett_m2ap_PrivateIE_Field;
+static int ett_m2ap_AdditionalConfigParameters;
+static int ett_m2ap_AllocationAndRetentionPriority;
+static int ett_m2ap_Cause;
+static int ett_m2ap_Cell_Information;
+static int ett_m2ap_Cell_Information_List;
+static int ett_m2ap_CriticalityDiagnostics;
+static int ett_m2ap_CriticalityDiagnostics_IE_List;
+static int ett_m2ap_CriticalityDiagnostics_IE_List_item;
+static int ett_m2ap_ECGI;
+static int ett_m2ap_ENB_ID;
+static int ett_m2ap_ENB_MBMS_Configuration_data_Item;
+static int ett_m2ap_ENB_MBMS_Configuration_data_ConfigUpdate_Item;
+static int ett_m2ap_GBR_QosInformation;
+static int ett_m2ap_GlobalENB_ID;
+static int ett_m2ap_GlobalMCE_ID;
+static int ett_m2ap_MBMS_Cell_List;
+static int ett_m2ap_MBMS_E_RAB_QoS_Parameters;
+static int ett_m2ap_MBMS_Service_associatedLogicalM2_ConnectionItem;
+static int ett_m2ap_MBMS_Service_Area_ID_List;
+static int ett_m2ap_MBMSsessionListPerPMCH_Item;
+static int ett_m2ap_MBMSsessionListPerPMCH_Item_item;
+static int ett_m2ap_MBMSsessionsToBeSuspendedListPerPMCH_Item;
+static int ett_m2ap_MBMSsessionsToBeSuspendedListPerPMCH_Item_item;
+static int ett_m2ap_MBSFN_Subframe_Configuration;
+static int ett_m2ap_T_subframeAllocation;
+static int ett_m2ap_MCCHrelatedBCCH_ConfigPerMBSFNArea_Item;
+static int ett_m2ap_MCCHrelatedBCCH_ExtConfigPerMBSFNArea_Item;
+static int ett_m2ap_PMCH_Configuration;
+static int ett_m2ap_SC_PTM_Information;
+static int ett_m2ap_SubframeAllocationExtended;
+static int ett_m2ap_SubframeAllocationFurtherExtension;
+static int ett_m2ap_TMGI;
+static int ett_m2ap_TNL_Information;
+static int ett_m2ap_SessionStartRequest;
+static int ett_m2ap_SessionStartResponse;
+static int ett_m2ap_SessionStartFailure;
+static int ett_m2ap_SessionStopRequest;
+static int ett_m2ap_SessionStopResponse;
+static int ett_m2ap_SessionUpdateRequest;
+static int ett_m2ap_SessionUpdateResponse;
+static int ett_m2ap_SessionUpdateFailure;
+static int ett_m2ap_MbmsSchedulingInformation;
+static int ett_m2ap_MBSFN_Area_Configuration_List;
+static int ett_m2ap_PMCH_Configuration_List;
+static int ett_m2ap_PMCH_Configuration_Item;
+static int ett_m2ap_MBSFN_Subframe_ConfigurationList;
+static int ett_m2ap_MBMS_Suspension_Notification_List;
+static int ett_m2ap_MBMS_Suspension_Notification_Item;
+static int ett_m2ap_MbmsSchedulingInformationResponse;
+static int ett_m2ap_M2SetupRequest;
+static int ett_m2ap_ENB_MBMS_Configuration_data_List;
+static int ett_m2ap_M2SetupResponse;
+static int ett_m2ap_MCCHrelatedBCCH_ConfigPerMBSFNArea;
+static int ett_m2ap_MCCHrelatedBCCH_ExtConfigPerMBSFNArea;
+static int ett_m2ap_M2SetupFailure;
+static int ett_m2ap_ENBConfigurationUpdate;
+static int ett_m2ap_ENB_MBMS_Configuration_data_List_ConfigUpdate;
+static int ett_m2ap_ENBConfigurationUpdateAcknowledge;
+static int ett_m2ap_ENBConfigurationUpdateFailure;
+static int ett_m2ap_MCEConfigurationUpdate;
+static int ett_m2ap_MCEConfigurationUpdateAcknowledge;
+static int ett_m2ap_MCEConfigurationUpdateFailure;
+static int ett_m2ap_ErrorIndication;
+static int ett_m2ap_Reset;
+static int ett_m2ap_ResetType;
+static int ett_m2ap_MBMS_Service_associatedLogicalM2_ConnectionListRes;
+static int ett_m2ap_ResetAcknowledge;
+static int ett_m2ap_MBMS_Service_associatedLogicalM2_ConnectionListResAck;
+static int ett_m2ap_PrivateMessage;
+static int ett_m2ap_MbmsServiceCountingRequest;
+static int ett_m2ap_MBMS_Counting_Request_Session;
+static int ett_m2ap_MBMS_Counting_Request_SessionIE;
+static int ett_m2ap_MbmsServiceCountingResponse;
+static int ett_m2ap_MbmsServiceCountingFailure;
+static int ett_m2ap_MbmsServiceCountingResultsReport;
+static int ett_m2ap_MBMS_Counting_Result_List;
+static int ett_m2ap_MBMS_Counting_Result;
+static int ett_m2ap_MbmsOverloadNotification;
+static int ett_m2ap_Overload_Status_Per_PMCH_List;
+static int ett_m2ap_Active_MBMS_Session_List;
+static int ett_m2ap_M2AP_PDU;
+static int ett_m2ap_InitiatingMessage;
+static int ett_m2ap_SuccessfulOutcome;
+static int ett_m2ap_UnsuccessfulOutcome;
static expert_field ei_m2ap_invalid_ip_address_len;
@@ -880,7 +880,7 @@ dissect_m2ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_m2ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(10000000000), NULL, FALSE);
+ 0U, UINT64_C(10000000000), NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-m2ua.c b/epan/dissectors/packet-m2ua.c
index 16a64f45aa..46f59b7286 100644
--- a/epan/dissectors/packet-m2ua.c
+++ b/epan/dissectors/packet-m2ua.c
@@ -268,7 +268,7 @@ dissect_interface_identifier_int_parameter(tvbuff_t *parameter_tvb, proto_tree *
#define TEXT_INTERFACE_ID_OFFSET PARAMETER_VALUE_OFFSET
static void
-dissect_interface_identifier_text_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item)
+dissect_interface_identifier_text_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, proto_item *parameter_item)
{
guint16 interface_id_length;
@@ -276,20 +276,20 @@ dissect_interface_identifier_text_parameter(tvbuff_t *parameter_tvb, proto_tree
proto_tree_add_item(parameter_tree, hf_interface_id_text, parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length, ENC_ASCII);
proto_item_append_text(parameter_item, " (%s)",
- tvb_format_text(wmem_packet_scope(), parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length));
+ tvb_format_text(pinfo->pool, parameter_tvb, TEXT_INTERFACE_ID_OFFSET, interface_id_length));
}
#define INFO_STRING_OFFSET PARAMETER_VALUE_OFFSET
static void
-dissect_info_string_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item)
+dissect_info_string_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, proto_item *parameter_item)
{
guint16 info_string_length;
info_string_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
proto_tree_add_item(parameter_tree, hf_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII);
proto_item_append_text(parameter_item, " (%s)",
- tvb_format_text(wmem_packet_scope(), parameter_tvb, INFO_STRING_OFFSET, info_string_length));
+ tvb_format_text(pinfo->pool, parameter_tvb, INFO_STRING_OFFSET, info_string_length));
}
#define DIAGNOSTIC_INFO_OFFSET PARAMETER_VALUE_OFFSET
@@ -907,10 +907,10 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree,
dissect_interface_identifier_int_parameter(parameter_tvb, parameter_tree, parameter_item);
break;
case INTERFACE_IDENTIFIER_TEXT_PARAMETER_TAG:
- dissect_interface_identifier_text_parameter(parameter_tvb, parameter_tree, parameter_item);
+ dissect_interface_identifier_text_parameter(parameter_tvb, pinfo, parameter_tree, parameter_item);
break;
case INFO_STRING_PARAMETER_TAG:
- dissect_info_string_parameter(parameter_tvb, parameter_tree, parameter_item);
+ dissect_info_string_parameter(parameter_tvb, pinfo, parameter_tree, parameter_item);
break;
case DIAGNOSTIC_INFORMATION_PARAMETER_TAG:
dissect_diagnostic_information_parameter(parameter_tvb, parameter_tree, parameter_item);
diff --git a/epan/dissectors/packet-m3ap.c b/epan/dissectors/packet-m3ap.c
index ee7ce32753..f0cb246083 100644
--- a/epan/dissectors/packet-m3ap.c
+++ b/epan/dissectors/packet-m3ap.c
@@ -39,7 +39,7 @@ void proto_reg_handoff_m3ap(void);
/* M3AP uses port 36444 as recommended by IANA. */
#define M3AP_PORT 36444
-static dissector_handle_t m3ap_handle=NULL;
+static dissector_handle_t m3ap_handle;
#define maxPrivateIEs 65535
#define maxProtocolExtensions 65535
@@ -199,52 +199,52 @@ static int hf_m3ap_unsuccessfulOutcome_value; /* UnsuccessfulOutcome_value *
/* Initialize the subtree pointers */
static int ett_m3ap;
static int ett_m3ap_IPAddress;
-static gint ett_m3ap_PrivateIE_ID;
-static gint ett_m3ap_ProtocolIE_Container;
-static gint ett_m3ap_ProtocolIE_Field;
-static gint ett_m3ap_ProtocolExtensionContainer;
-static gint ett_m3ap_ProtocolExtensionField;
-static gint ett_m3ap_PrivateIE_Container;
-static gint ett_m3ap_PrivateIE_Field;
-static gint ett_m3ap_AllocationAndRetentionPriority;
-static gint ett_m3ap_Cause;
-static gint ett_m3ap_CriticalityDiagnostics;
-static gint ett_m3ap_CriticalityDiagnostics_IE_List;
-static gint ett_m3ap_CriticalityDiagnostics_IE_List_item;
-static gint ett_m3ap_ECGI;
-static gint ett_m3ap_Global_MCE_ID;
-static gint ett_m3ap_GBR_QosInformation;
-static gint ett_m3ap_MBMS_Cell_List;
-static gint ett_m3ap_MBMS_E_RAB_QoS_Parameters;
-static gint ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem;
-static gint ett_m3ap_TMGI;
-static gint ett_m3ap_TNL_Information;
-static gint ett_m3ap_MBMSSessionStartRequest;
-static gint ett_m3ap_MBMSSessionStartResponse;
-static gint ett_m3ap_MBMSSessionStartFailure;
-static gint ett_m3ap_MBMSSessionStopRequest;
-static gint ett_m3ap_MBMSSessionStopResponse;
-static gint ett_m3ap_MBMSSessionUpdateRequest;
-static gint ett_m3ap_MBMSSessionUpdateResponse;
-static gint ett_m3ap_MBMSSessionUpdateFailure;
-static gint ett_m3ap_ErrorIndication;
-static gint ett_m3ap_Reset;
-static gint ett_m3ap_ResetType;
-static gint ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes;
-static gint ett_m3ap_ResetAcknowledge;
-static gint ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck;
-static gint ett_m3ap_PrivateMessage;
-static gint ett_m3ap_M3SetupRequest;
-static gint ett_m3ap_MBMSServiceAreaListItem;
-static gint ett_m3ap_M3SetupResponse;
-static gint ett_m3ap_M3SetupFailure;
-static gint ett_m3ap_MCEConfigurationUpdate;
-static gint ett_m3ap_MCEConfigurationUpdateAcknowledge;
-static gint ett_m3ap_MCEConfigurationUpdateFailure;
-static gint ett_m3ap_M3AP_PDU;
-static gint ett_m3ap_InitiatingMessage;
-static gint ett_m3ap_SuccessfulOutcome;
-static gint ett_m3ap_UnsuccessfulOutcome;
+static int ett_m3ap_PrivateIE_ID;
+static int ett_m3ap_ProtocolIE_Container;
+static int ett_m3ap_ProtocolIE_Field;
+static int ett_m3ap_ProtocolExtensionContainer;
+static int ett_m3ap_ProtocolExtensionField;
+static int ett_m3ap_PrivateIE_Container;
+static int ett_m3ap_PrivateIE_Field;
+static int ett_m3ap_AllocationAndRetentionPriority;
+static int ett_m3ap_Cause;
+static int ett_m3ap_CriticalityDiagnostics;
+static int ett_m3ap_CriticalityDiagnostics_IE_List;
+static int ett_m3ap_CriticalityDiagnostics_IE_List_item;
+static int ett_m3ap_ECGI;
+static int ett_m3ap_Global_MCE_ID;
+static int ett_m3ap_GBR_QosInformation;
+static int ett_m3ap_MBMS_Cell_List;
+static int ett_m3ap_MBMS_E_RAB_QoS_Parameters;
+static int ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem;
+static int ett_m3ap_TMGI;
+static int ett_m3ap_TNL_Information;
+static int ett_m3ap_MBMSSessionStartRequest;
+static int ett_m3ap_MBMSSessionStartResponse;
+static int ett_m3ap_MBMSSessionStartFailure;
+static int ett_m3ap_MBMSSessionStopRequest;
+static int ett_m3ap_MBMSSessionStopResponse;
+static int ett_m3ap_MBMSSessionUpdateRequest;
+static int ett_m3ap_MBMSSessionUpdateResponse;
+static int ett_m3ap_MBMSSessionUpdateFailure;
+static int ett_m3ap_ErrorIndication;
+static int ett_m3ap_Reset;
+static int ett_m3ap_ResetType;
+static int ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListRes;
+static int ett_m3ap_ResetAcknowledge;
+static int ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionListResAck;
+static int ett_m3ap_PrivateMessage;
+static int ett_m3ap_M3SetupRequest;
+static int ett_m3ap_MBMSServiceAreaListItem;
+static int ett_m3ap_M3SetupResponse;
+static int ett_m3ap_M3SetupFailure;
+static int ett_m3ap_MCEConfigurationUpdate;
+static int ett_m3ap_MCEConfigurationUpdateAcknowledge;
+static int ett_m3ap_MCEConfigurationUpdateFailure;
+static int ett_m3ap_M3AP_PDU;
+static int ett_m3ap_InitiatingMessage;
+static int ett_m3ap_SuccessfulOutcome;
+static int ett_m3ap_UnsuccessfulOutcome;
static expert_field ei_m3ap_invalid_ip_address_len;
@@ -649,7 +649,7 @@ dissect_m3ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_m3ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(10000000000), NULL, FALSE);
+ 0U, UINT64_C(10000000000), NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-m3ua.c b/epan/dissectors/packet-m3ua.c
index 8deaddfdce..17a20de718 100644
--- a/epan/dissectors/packet-m3ua.c
+++ b/epan/dissectors/packet-m3ua.c
@@ -306,7 +306,7 @@ static dissector_handle_t m3ua_sctp_handle;
static dissector_handle_t m3ua_tcp_handle;
static dissector_table_t si_dissector_table;
-static gboolean m3ua_tcp_desegment = TRUE;
+static bool m3ua_tcp_desegment = true;
static int ss7pc_address_type = -1;
@@ -398,14 +398,14 @@ dissect_v5_protocol_data_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo,
#define INFO_STRING_OFFSET PARAMETER_VALUE_OFFSET
static void
-dissect_info_string_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item)
+dissect_info_string_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *parameter_tree, proto_item *parameter_item)
{
guint16 info_string_length;
info_string_length = tvb_get_ntohs(parameter_tvb, PARAMETER_LENGTH_OFFSET) - PARAMETER_HEADER_LENGTH;
proto_tree_add_item(parameter_tree, hf_info_string, parameter_tvb, INFO_STRING_OFFSET, info_string_length, ENC_ASCII);
proto_item_append_text(parameter_item, " (%s)",
- tvb_format_text(wmem_packet_scope(), parameter_tvb, INFO_STRING_OFFSET, info_string_length));
+ tvb_format_text(pinfo->pool, parameter_tvb, INFO_STRING_OFFSET, info_string_length));
}
#define AFFECTED_MASK_LENGTH 1
@@ -1411,7 +1411,7 @@ dissect_v5_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
dissect_v5_protocol_data_parameter(parameter_tvb, pinfo, tree, parameter_item);
break;
case V5_INFO_PARAMETER_TAG:
- dissect_info_string_parameter(parameter_tvb, parameter_tree, parameter_item);
+ dissect_info_string_parameter(parameter_tvb, pinfo, parameter_tree, parameter_item);
break;
case V5_AFFECTED_DESTINATIONS_PARAMETER_TAG:
dissect_affected_destinations_parameter(parameter_tvb, parameter_tree, parameter_item);
@@ -1542,7 +1542,7 @@ dissect_v6_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
dissect_protocol_data_2_parameter(parameter_tvb, pinfo, tree, parameter_tree, parameter_item);
break;
case V6_INFO_PARAMETER_TAG:
- dissect_info_string_parameter(parameter_tvb, parameter_tree, parameter_item);
+ dissect_info_string_parameter(parameter_tvb, pinfo, parameter_tree, parameter_item);
break;
case V6_AFFECTED_DESTINATIONS_PARAMETER_TAG:
dissect_affected_destinations_parameter(parameter_tvb, parameter_tree, parameter_item);
@@ -1710,7 +1710,7 @@ dissect_v7_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
dissect_protocol_data_2_parameter(parameter_tvb, pinfo, tree, parameter_tree, parameter_item);
break;
case V7_INFO_PARAMETER_TAG:
- dissect_info_string_parameter(parameter_tvb, parameter_tree, parameter_item);
+ dissect_info_string_parameter(parameter_tvb, pinfo, parameter_tree, parameter_item);
break;
case V7_AFFECTED_DESTINATIONS_PARAMETER_TAG:
dissect_affected_destinations_parameter(parameter_tvb, parameter_tree, parameter_item);
@@ -1869,7 +1869,7 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree,
switch(tag) {
case INFO_STRING_PARAMETER_TAG:
- dissect_info_string_parameter(parameter_tvb, parameter_tree, parameter_item);
+ dissect_info_string_parameter(parameter_tvb, pinfo, parameter_tree, parameter_item);
break;
case ROUTING_CONTEXT_PARAMETER_TAG:
dissect_routing_context_parameter(parameter_tvb, parameter_tree, parameter_item);
diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c
index 5883747f7a..960bb696fa 100644
--- a/epan/dissectors/packet-mac-lte.c
+++ b/epan/dissectors/packet-mac-lte.c
@@ -1588,19 +1588,19 @@ static const value_string ul_retx_grant_vals[] =
static gint global_mac_lte_retx_counter_trigger = 3;
/* By default try to decode transparent data (BCH, PCH and CCCH) data using LTE RRC dissector */
-static gboolean global_mac_lte_attempt_rrc_decode = TRUE;
+static bool global_mac_lte_attempt_rrc_decode = true;
/* Whether should attempt to dissect frames failing CRC check */
-static gboolean global_mac_lte_dissect_crc_failures = FALSE;
+static bool global_mac_lte_dissect_crc_failures;
/* Whether should attempt to decode lcid 1&2 SDUs as srb1/2 (i.e. AM RLC) */
-static gboolean global_mac_lte_attempt_srb_decode = TRUE;
+static bool global_mac_lte_attempt_srb_decode = true;
/* Whether should attempt to decode MCH LCID 0 as MCCH */
-static gboolean global_mac_lte_attempt_mcch_decode = FALSE;
+static bool global_mac_lte_attempt_mcch_decode;
/* Whether should call RLC dissector to decode MTCH LCIDs */
-static gboolean global_mac_lte_call_rlc_for_mtch = FALSE;
+static bool global_mac_lte_call_rlc_for_mtch;
/* Where to take LCID -> DRB mappings from */
enum lcid_drb_source {
@@ -1612,7 +1612,7 @@ static gint global_mac_lte_lcid_drb_source = (gint)FromStaticTable;
static gint global_mac_lte_bsr_warn_threshold = 50; /* default is 19325 -> 22624 */
/* Whether or not to track SRs and related frames */
-static gboolean global_mac_lte_track_sr = TRUE;
+static bool global_mac_lte_track_sr = true;
/* Which layer info to show in the info column */
enum layer_to_show {
@@ -1623,17 +1623,17 @@ enum layer_to_show {
static gint global_mac_lte_layer_to_show = (gint)ShowRLCLayer;
/* Whether to decode Contention Resolution body as UL CCCH */
-static gboolean global_mac_lte_decode_cr_body = FALSE;
+static bool global_mac_lte_decode_cr_body;
/* Whether to record config and try to show DRX state for each configured UE */
-static gboolean global_mac_lte_show_drx = FALSE;
+static bool global_mac_lte_show_drx;
/* Whether to record config and try to show DRX state for each configured UE */
-static gboolean global_mac_lte_show_BSR_median = FALSE;
+static bool global_mac_lte_show_BSR_median;
/* When showing RLC info, count PDUs so can append info column properly */
-static guint8 s_number_of_rlc_pdus_shown = 0;
+static guint8 s_number_of_rlc_pdus_shown;
/***********************************************************************/
/* How to dissect lcid 3-10 (presume drb logical channels) */
@@ -1705,8 +1705,8 @@ typedef struct lcid_drb_mapping_t {
} lcid_drb_mapping_t;
/* Mapping entity */
-static lcid_drb_mapping_t *lcid_drb_mappings = NULL;
-static guint num_lcid_drb_mappings = 0;
+static lcid_drb_mapping_t *lcid_drb_mappings;
+static guint num_lcid_drb_mappings;
UAT_VS_DEF(lcid_drb_mappings, lcid, lcid_drb_mapping_t, guint16, 3, "LCID 3")
UAT_SIGNED_DEC_CB_DEF(lcid_drb_mappings, drbid, lcid_drb_mapping_t)
@@ -1729,7 +1729,7 @@ typedef struct ue_dynamic_drb_mappings_t {
guint8 drb_to_lcid_mappings[32]; /* Also map drbid -> lcid */
} ue_dynamic_drb_mappings_t;
-static GHashTable *mac_lte_ue_channels_hash = NULL;
+static GHashTable *mac_lte_ue_channels_hash;
extern int proto_rlc_lte;
@@ -1751,7 +1751,7 @@ typedef struct Msg3Data {
/* This table stores (RNTI -> Msg3Data*). Will be populated when
Msg3 frames are first read. */
-static GHashTable *mac_lte_msg3_hash = NULL;
+static GHashTable *mac_lte_msg3_hash;
typedef enum ContentionResolutionStatus {
NoMsg3,
@@ -1768,11 +1768,11 @@ typedef struct ContentionResolutionResult {
/* This table stores (CRFrameNum -> CRResult). It is assigned during the first
pass and used thereafter */
-static GHashTable *mac_lte_cr_result_hash = NULL;
+static GHashTable *mac_lte_cr_result_hash;
/* This table stores msg3 frame -> CR frame. It is assigned during the first pass
* and shown in later passes */
-static GHashTable *mac_lte_msg3_cr_hash = NULL;
+static GHashTable *mac_lte_msg3_cr_hash;
/**************************************************************************/
@@ -1803,7 +1803,7 @@ typedef struct DLHarqBuffers {
/* This table stores (RNTI -> DLHARQBuffers*). Will be populated when
DL frames are first read. */
-static GHashTable *mac_lte_dl_harq_hash = NULL;
+static GHashTable *mac_lte_dl_harq_hash;
typedef struct DLHARQResult {
gboolean previousSet, nextSet;
@@ -1816,7 +1816,7 @@ typedef struct DLHARQResult {
/* This table stores (FrameNumber -> *DLHARQResult). It is assigned during the first
pass and used thereafter */
-static GHashTable *mac_lte_dl_harq_result_hash = NULL;
+static GHashTable *mac_lte_dl_harq_result_hash;
/**************************************************************************/
@@ -1832,7 +1832,7 @@ typedef struct ULHarqBuffers {
/* This table stores (RNTI -> ULHarqBuffers*). Will be populated when
UL frames are first read. */
-static GHashTable *mac_lte_ul_harq_hash = NULL;
+static GHashTable *mac_lte_ul_harq_hash;
typedef struct ULHARQResult {
gboolean previousSet, nextSet;
@@ -1846,7 +1846,7 @@ typedef struct ULHARQResult {
/* This table stores (FrameNum -> ULHARQResult). It is assigned during the first
pass and used thereafter */
/* TODO: add ueid/rnti to key... */
-static GHashTable *mac_lte_ul_harq_result_hash = NULL;
+static GHashTable *mac_lte_ul_harq_result_hash;
/**************************************************************************/
@@ -1897,7 +1897,7 @@ typedef struct SRState {
/* This table keeps track of the SR state for each UE.
(RNTI -> SRState) */
-static GHashTable *mac_lte_ue_sr_state = NULL;
+static GHashTable *mac_lte_ue_sr_state;
typedef enum SRResultType {
@@ -1921,7 +1921,7 @@ typedef struct SRResult {
/* Entries in this table are created during the first pass
It maps (SRFrameNum -> SRResult) */
-static GHashTable *mac_lte_sr_request_hash = NULL;
+static GHashTable *mac_lte_sr_request_hash;
/**************************************************************************/
@@ -1969,7 +1969,7 @@ typedef struct ue_parameters_t
/* Entries in this table are maintained during the first pass
It maps (UEId -> ue_parameters_t). */
-static GHashTable *mac_lte_ue_parameters = NULL;
+static GHashTable *mac_lte_ue_parameters;
/**************************************************************************/
@@ -1984,7 +1984,7 @@ typedef struct drx_state_key_t {
/* Entries in this table are written during the first pass
It maps (drx_state_key_t -> drx_state_t), so state at that point may be shown. */
-static GHashTable *mac_lte_drx_frame_result = NULL;
+static GHashTable *mac_lte_drx_frame_result;
static gint mac_lte_framenum_instance_hash_equal(gconstpointer v, gconstpointer v2)
{
@@ -2535,7 +2535,7 @@ static void show_drx_info(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb,
/* Info we might learn from SIB2 to label RAPIDs seen in PRACH and RARs */
-static gboolean s_rapid_ranges_configured = FALSE;
+static gboolean s_rapid_ranges_configured;
static guint s_rapid_ranges_groupA;
static guint s_rapid_ranges_RA;
@@ -4301,7 +4301,7 @@ typedef struct TTIInfoResult_t {
/* This table stores (FrameNumber -> *TTIInfoResult_t). It is assigned during the first
pass and used thereafter */
-static GHashTable *mac_lte_tti_info_result_hash = NULL;
+static GHashTable *mac_lte_tti_info_result_hash;
/* Work out which UE this is within TTI (within direction). Return answer */
@@ -4904,7 +4904,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
offset += 2;
} else {
- gboolean format;
+ bool format;
/* F(ormat) bit tells us how long the length field is */
proto_tree_add_item_ret_boolean(pdu_subheader_tree, hf_mac_lte_sch_format,
@@ -6914,7 +6914,7 @@ static void dissect_mch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pro
offset += 2;
} else {
- gboolean format;
+ bool format;
/* F(ormat) bit tells us how long the length field is */
proto_tree_add_item_ret_boolean(pdu_subheader_tree, hf_mac_lte_mch_format,
@@ -7344,7 +7344,7 @@ static void dissect_slsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
} else {
/* Not the last one */
if (lcids[number_of_headers] != PADDING_LCID) {
- guint32 format;
+ bool format;
/* F(ormat) bit tells us how long the length field is */
proto_tree_add_item_ret_boolean(pdu_subheader_tree, hf_mac_lte_slsch_format,
diff --git a/epan/dissectors/packet-mac-nr.c b/epan/dissectors/packet-mac-nr.c
index 914cfeef69..2a177cb3fd 100644
--- a/epan/dissectors/packet-mac-nr.c
+++ b/epan/dissectors/packet-mac-nr.c
@@ -319,6 +319,21 @@ static int hf_mac_nr_rar_grant_csi;
static int hf_mac_nr_rar_temp_crnti;
+static int hf_mac_nr_msgb;
+static int hf_mac_nr_msgb_subheader;
+static int hf_mac_nr_msgb_e;
+static int hf_mac_nr_msgb_t1;
+static int hf_mac_nr_msgb_t2;
+static int hf_mac_nr_msgb_s;
+static int hf_mac_nr_msgb_reserved;
+static int hf_mac_nr_msgb_reserved2;
+static int hf_mac_nr_msgb_reserved3;
+static int hf_mac_nr_msgb_ta_command;
+static int hf_mac_nr_msgb_channelaccess_cpext;
+static int hf_mac_nr_msgb_tpc;
+static int hf_mac_nr_msgb_harq_feedback_timing_indicator;
+static int hf_mac_nr_msgb_pucch_resource_indicator;
+
static int hf_mac_nr_padding;
static int hf_mac_nr_differential_koffset;
@@ -351,10 +366,10 @@ static dissector_handle_t nr_rrc_ul_ccch1_handle;
/**************************************************************************/
/* By default try to decode transparent data (BCCH, PCCH and CCCH) data using NR RRC dissector */
-static gboolean global_mac_nr_attempt_rrc_decode = TRUE;
+static bool global_mac_nr_attempt_rrc_decode = true;
/* Whether should attempt to decode lcid 1-3 SDUs as srb1-3 (i.e. AM RLC) */
-static gboolean global_mac_nr_attempt_srb_decode = TRUE;
+static bool global_mac_nr_attempt_srb_decode = true;
/* Which layer info to show in the info column */
enum layer_to_show {
@@ -376,6 +391,7 @@ static gint global_mac_nr_lcid_drb_source = (gint)FromStaticTable;
static const value_string drb_lcid_vals[] = {
+ { 3, "LCID 3"},
{ 4, "LCID 4"},
{ 5, "LCID 5"},
{ 6, "LCID 6"},
@@ -437,8 +453,8 @@ typedef struct lcid_drb_mapping_t {
} lcid_drb_mapping_t;
/* Mapping entity */
-static lcid_drb_mapping_t *lcid_drb_mappings = NULL;
-static guint num_lcid_drb_mappings = 0;
+static lcid_drb_mapping_t *lcid_drb_mappings;
+static guint num_lcid_drb_mappings;
UAT_VS_DEF(lcid_drb_mappings, lcid, lcid_drb_mapping_t, guint8, 3, "LCID 3")
UAT_DEC_CB_DEF(lcid_drb_mappings, drbid, lcid_drb_mapping_t)
@@ -459,17 +475,20 @@ typedef struct dynamic_lcid_drb_mapping_t {
} dynamic_lcid_drb_mapping_t;
typedef struct ue_dynamic_drb_mappings_t {
- dynamic_lcid_drb_mapping_t mapping[33]; /* Index is LCID (2-32) */
- guint8 drb_to_lcid_mappings[33]; /* Also map drbid (1-32) -> lcid */
+ gboolean srb3_set;
+ gboolean srb4_set;
+ dynamic_lcid_drb_mapping_t mapping[33]; /* Index is LCID (3-32) */
+ guint8 drb_to_lcid_mappings[33]; /* Also map drbid -> lcid (1-32) */
} ue_dynamic_drb_mappings_t;
-static GHashTable *mac_nr_ue_bearers_hash = NULL;
+/* ueId -> ue_dynamic_drb_mappings_t* */
+static GHashTable *mac_nr_ue_bearers_hash;
/* When showing RLC info, count PDUs so can append info column properly */
-static guint8 s_number_of_rlc_pdus_shown = 0;
+static guint8 s_number_of_rlc_pdus_shown;
extern int proto_rlc_nr;
@@ -499,6 +518,7 @@ static const value_string rnti_type_vals[] =
{ C_RNTI, "C-RNTI"},
{ SI_RNTI, "SI-RNTI"},
{ CS_RNTI, "CS-RNTI"},
+ { MSGB_RNTI, "MSGB-RNTI"},
{ 0, NULL }
};
@@ -1278,9 +1298,32 @@ static const value_string bit_rate_vals[] =
};
static value_string_ext bit_rate_vals_ext = VALUE_STRING_EXT_INIT(bit_rate_vals);
+
+static const true_false_string msgb_t1_vals = {
+ "Random Access Preamble ID present",
+ "T2 is valid"
+};
+
+static const true_false_string msgb_t2_vals = {
+ "S is valid",
+ "Backoff Indicator",
+};
+
+static const true_false_string msgb_s_vals = {
+ "MAC subPDU(s) for MAC SDU present",
+ "MAC subPDU(s) for MAC SDU *NOT* present"
+};
+
+
/* Forward declarations */
static int dissect_mac_nr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*);
+static int dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ proto_item *pdu_ti, guint32 offset,
+ mac_nr_info *p_mac_nr_info,
+ mac_3gpp_tap_info *tap_info);
+
+
/* Write the given formatted text to:
- the info column (if pinfo != NULL)
- 1 or 2 other labels (optional)
@@ -1424,6 +1467,44 @@ static void dissect_pcch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
+/* Common to RAR and MSGB */
+static int dissect_fallbackrar(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, int offset,
+ proto_item *ti, proto_item *pdu_ti, guint32 rapid)
+{
+ /* 1 reserved bit */
+ proto_tree_add_item(tree, hf_mac_nr_rar_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ /* TA (12 bits) */
+ guint32 ta;
+ proto_tree_add_item_ret_uint(tree, hf_mac_nr_rar_ta, tvb, offset, 2, ENC_BIG_ENDIAN, &ta);
+ offset++;
+
+ /* Break down the 27-bits of the grant field, according to 38.213, section 8.2 */
+ static int * const rar_grant_fields[] = {
+ &hf_mac_nr_rar_grant_hopping,
+ &hf_mac_nr_rar_grant_fra,
+ &hf_mac_nr_rar_grant_tsa,
+ &hf_mac_nr_rar_grant_mcs,
+ &hf_mac_nr_rar_grant_tcsp,
+ &hf_mac_nr_rar_grant_csi,
+ NULL
+ };
+ proto_tree_add_bitmask(tree, tvb, offset, hf_mac_nr_rar_grant,
+ ett_mac_nr_rar_grant, rar_grant_fields, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ /* C-RNTI (2 bytes) */
+ guint32 c_rnti;
+ proto_tree_add_item_ret_uint(tree, hf_mac_nr_rar_temp_crnti, tvb, offset, 2, ENC_BIG_ENDIAN, &c_rnti);
+ offset += 2;
+
+ write_pdu_label_and_info(pdu_ti, ti, pinfo,
+ "(RAPID=%u TA=%u Temp C-RNTI=%u) ", rapid, ta, c_rnti);
+
+ return offset;
+}
+
+
static void dissect_rar(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
proto_item *pdu_ti _U_, guint32 offset,
mac_nr_info *p_mac_nr_info, mac_3gpp_tap_info *tap_info)
@@ -1436,7 +1517,7 @@ static void dissect_rar(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
proto_item *ti = proto_tree_add_item(tree, hf_mac_nr_rar, tvb, offset, -1, ENC_NA);
proto_item_set_hidden(ti);
- gboolean E, T;
+ bool E, T;
do {
/* Subheader */
@@ -1472,37 +1553,128 @@ static void dissect_rar(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
if (TRUE) {
/* SubPDU. Not for SI request - TODO: define RAPID range for SI request in mac_nr_info */
- /* 1 reserved bit */
- proto_tree_add_item(rar_subheader_tree, hf_mac_nr_rar_reserved1, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset = dissect_fallbackrar(rar_subheader_tree, pinfo, tvb, offset, subheader_ti, pdu_ti, rapid);
+ }
+ tap_info->number_of_rars++;
+ }
+ /* Set subheader (+subpdu..) length */
+ proto_item_set_end(subheader_ti, tvb, offset);
- /* TA (12 bits) */
- guint32 ta;
- proto_tree_add_item_ret_uint(rar_subheader_tree, hf_mac_nr_rar_ta, tvb, offset, 2, ENC_BIG_ENDIAN, &ta);
- offset++;
+ } while (E);
- /* Break down the 27-bits of the grant field, according to 38.213, section 8.2 */
- static int * const rar_grant_fields[] = {
- &hf_mac_nr_rar_grant_hopping,
- &hf_mac_nr_rar_grant_fra,
- &hf_mac_nr_rar_grant_tsa,
- &hf_mac_nr_rar_grant_mcs,
- &hf_mac_nr_rar_grant_tcsp,
- &hf_mac_nr_rar_grant_csi,
- NULL
- };
- proto_tree_add_bitmask(rar_subheader_tree, tvb, offset, hf_mac_nr_rar_grant,
- ett_mac_nr_rar_grant, rar_grant_fields, ENC_BIG_ENDIAN);
- offset += 4;
+ /* Any remaining length is padding */
+ if (tvb_reported_length_remaining(tvb, offset)) {
+ proto_tree_add_item(tree, hf_mac_nr_padding, tvb, offset, -1, ENC_NA);
+ }
- /* C-RNTI (2 bytes) */
- guint32 c_rnti;
- proto_tree_add_item_ret_uint(rar_subheader_tree, hf_mac_nr_rar_temp_crnti, tvb, offset, 2, ENC_BIG_ENDIAN, &c_rnti);
- offset += 2;
+ /* Update padding bytes in stats */
+ tap_info->padding_bytes += (p_mac_nr_info->length - offset);
+}
+
+static void dissect_msgb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
+ proto_item *pdu_ti _U_, guint32 offset,
+ mac_nr_info *p_mac_nr_info, mac_3gpp_tap_info *tap_info)
+{
+ write_pdu_label_and_info(pdu_ti, NULL, pinfo,
+ "MSGB (MSGB-RNTI=%u) ",
+ p_mac_nr_info->rnti);
+
+ /* Create hidden 'virtual root' so can filter on mac-nr.msgb */
+ proto_item *ti = proto_tree_add_item(tree, hf_mac_nr_msgb, tvb, offset, -1, ENC_NA);
+ proto_item_set_hidden(ti);
+
+ bool E, T1, T2, S;
+
+ /* N.B. T2 only present if T1 is 0 */
+ /* N.B. T2 indicates BI (can only appear in first subheader */
+
+ do {
+ /* Subheader */
+ proto_item *subheader_ti = proto_tree_add_item(tree,
+ hf_mac_nr_msgb_subheader,
+ tvb, offset, 0, ENC_ASCII);
+ proto_tree *msgb_subheader_tree = proto_item_add_subtree(subheader_ti, ett_mac_nr_rar_subheader);
+
+ /* Note extension & T1, T2 bits */
+ proto_tree_add_item_ret_boolean(msgb_subheader_tree, hf_mac_nr_msgb_e, tvb, offset, 1, ENC_BIG_ENDIAN, &E);
+ proto_tree_add_item_ret_boolean(msgb_subheader_tree, hf_mac_nr_msgb_t1, tvb, offset, 1, ENC_BIG_ENDIAN, &T1);
+ if (!T1) {
+ /* T2 */
+ proto_tree_add_item_ret_boolean(msgb_subheader_tree, hf_mac_nr_msgb_t2, tvb, offset, 1, ENC_BIG_ENDIAN, &T2);
+ }
- write_pdu_label_and_info(pdu_ti, subheader_ti, pinfo,
- "(RAPID=%u TA=%u Temp C-RNTI=%u) ", rapid, ta, c_rnti);
+ if (T1) {
+ /* RAPID (FallbackRAR MAC subheader) */
+ guint32 rapid;
+ proto_tree_add_item_ret_uint(msgb_subheader_tree, hf_mac_nr_rar_rapid, tvb, offset, 1, ENC_BIG_ENDIAN, &rapid);
+ offset++;
+
+ /* FallbackRAR (see 6.2.3a) */
+ write_pdu_label_and_info(pdu_ti, subheader_ti, pinfo, "FallbackRAR ");
+ offset = dissect_fallbackrar(msgb_subheader_tree, pinfo, tvb, offset,
+ subheader_ti, pdu_ti, rapid);
+ }
+ else if (!T2) {
+ /* BI */
+ guint32 BI;
+
+ /* 1 reserved bit */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_msgb_reserved, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* BI (4 bits) */
+ /* N.B., should define & use own BI field? */
+ proto_tree_add_item_ret_uint(msgb_subheader_tree, hf_mac_nr_rar_bi, tvb, offset, 1, ENC_BIG_ENDIAN, &BI);
+ offset++;
+
+ write_pdu_label_and_info(pdu_ti, subheader_ti, pinfo,
+ "(BI=%u) ", BI);
+ }
+ else {
+ /* Read S (MAC SDU Indicator) */
+ proto_tree_add_item_ret_boolean(msgb_subheader_tree, hf_mac_nr_msgb_s, tvb, offset, 1, ENC_BIG_ENDIAN, &S);
+
+ /* 4 reserved bits */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_msgb_reserved2, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+
+ /* successRAR is in 6.2.3a-2 */
+ write_pdu_label_and_info(pdu_ti, subheader_ti, pinfo, "SuccessRAR ");
+
+ /* UE Contention Resolution Identity */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_control_ue_contention_resolution_identity,
+ tvb, offset, 6, ENC_NA);
+ offset += 6;
+
+ /* R (1 bit) */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_msgb_reserved3, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* ChannelAccess-CPext */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_msgb_channelaccess_cpext, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* TPC */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_msgb_tpc, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* HARQ Feedback Timing Indicator */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_msgb_harq_feedback_timing_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+
+ /* PUCCH Resource Indicator */
+ proto_tree_add_item(msgb_subheader_tree, hf_mac_nr_msgb_pucch_resource_indicator, tvb, offset, 1, ENC_BIG_ENDIAN);
+ /* Timing Advance Command */
+ guint32 ta_command;
+ proto_tree_add_item_ret_uint(msgb_subheader_tree, hf_mac_nr_msgb_ta_command, tvb, offset, 2, ENC_BIG_ENDIAN, &ta_command);
+ offset += 2;
+
+ /* C-RNTI */
+ guint32 c_rnti;
+ proto_tree_add_item_ret_uint(msgb_subheader_tree, hf_mac_nr_rar_temp_crnti, tvb, offset, 2, ENC_BIG_ENDIAN, &c_rnti);
+ offset += 2;
+
+ write_pdu_label_and_info(pdu_ti, subheader_ti, pinfo,
+ "(C-RNTI=%u, TA=%u) ", c_rnti, ta_command);
+
+ if (S) {
+ /* subPDU(s) for MAC SDU present */
+ offset = dissect_ulsch_or_dlsch(tvb, pinfo, tree, pdu_ti, offset,
+ p_mac_nr_info,
+ tap_info);
}
- tap_info->number_of_rars++;
}
/* Set subheader (+subpdu..) length */
proto_item_set_end(subheader_ti, tvb, offset);
@@ -1516,9 +1688,9 @@ static void dissect_rar(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
/* Update padding bytes in stats */
tap_info->padding_bytes += (p_mac_nr_info->length - offset);
-
}
+
static gboolean is_fixed_sized_lcid(guint8 lcid, guint8 direction)
{
if (direction == DIRECTION_UPLINK) {
@@ -1675,7 +1847,7 @@ static proto_item* dissect_me_phr_ph(tvbuff_t *tvb, packet_info *pinfo _U_, prot
/* P */
proto_tree_add_item(entry_tree, hf_mac_nr_control_me_phr_p, tvb, *offset, 1, ENC_BIG_ENDIAN);
/* V */
- gboolean V;
+ bool V;
proto_tree_add_item_ret_boolean(entry_tree, hf_mac_nr_control_me_phr_v, tvb, *offset, 1, ENC_BIG_ENDIAN, &V);
/* PH. TODO: infer whether value relates to Type1 (PUSCH), Type2 (PUCCH) or Type3 (SRS).
And decide whether:
@@ -1725,13 +1897,16 @@ static gboolean lookup_rlc_bearer_from_lcid(guint16 ueid,
guint8 direction,
rlc_bearer_type_t *rlc_bearer_type, /* out */
guint8 *seqnum_length, /* out */
- gint *drb_id) /* out */
+ gint *drb_id, /* out */
+ gboolean *is_srb) /* out */
{
/* Zero params (in case no match is found) */
*rlc_bearer_type = rlcRaw;
*seqnum_length = 0;
*drb_id = 0;
+ *is_srb = FALSE;
+
if (global_mac_nr_lcid_drb_source == (int)FromStaticTable) {
/* Look up in static (UAT) table */
@@ -1751,15 +1926,30 @@ static gboolean lookup_rlc_bearer_from_lcid(guint16 ueid,
return TRUE;
}
}
+ if (lcid==3 || lcid==4) {
+ /* Wasn't found as DRB, so lets assume SRB-3 (or SRB-4) */
+ *is_srb = TRUE;
+ }
return FALSE;
}
else {
/* Look up the dynamic mappings for this UE */
ue_dynamic_drb_mappings_t *ue_mappings = (ue_dynamic_drb_mappings_t *)g_hash_table_lookup(mac_nr_ue_bearers_hash, GUINT_TO_POINTER((guint)ueid));
if (!ue_mappings) {
+ /* No entry for this UE.. */
+ if (lcid==3 || lcid==4) {
+ *is_srb = TRUE;
+ }
return FALSE;
}
+ if (lcid==3) {
+ *is_srb = ue_mappings->srb3_set;
+ }
+ if (lcid==4) {
+ *is_srb = ue_mappings->srb4_set;
+ }
+
/* Look up setting gleaned from configuration protocol */
if (!ue_mappings->mapping[lcid].valid) {
return FALSE;
@@ -1866,11 +2056,10 @@ mac_nr_pcmax_f_c_fmt(gchar *s, guint32 v)
/* UL-SCH and DL-SCH formats have much in common, so handle them in a common
function */
-static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- proto_item *pdu_ti, guint32 offset,
- mac_nr_info *p_mac_nr_info,
- proto_tree *context_tree _U_,
- mac_3gpp_tap_info *tap_info)
+static int dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ proto_item *pdu_ti, guint32 offset,
+ mac_nr_info *p_mac_nr_info,
+ mac_3gpp_tap_info *tap_info)
{
gboolean ces_seen = FALSE;
gboolean data_seen = FALSE;
@@ -1891,7 +2080,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
proto_tree *subheader_tree = proto_item_add_subtree(subheader_ti, ett_mac_nr_subheader);
- gboolean F, fixed_len;
+ bool F, fixed_len;
guint32 SDU_length=0;
/* 1st bit is always reserved */
@@ -1899,15 +2088,15 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
guint8 lcid = tvb_get_guint8(tvb, offset) & 0x3f;
gint32 elcid= -1;
switch (lcid) {
- case TWO_OCTET_ELCID_FIELD:
- elcid = tvb_get_guint16(tvb, offset+1, ENC_BIG_ENDIAN);
- fixed_len = TRUE;
- break;
- case ONE_OCTET_ELCID_FIELD:
- elcid = tvb_get_guint8(tvb, offset+1);
- fixed_len = is_fixed_sized_elcid(elcid, p_mac_nr_info->direction);
- default:
- break;
+ case TWO_OCTET_ELCID_FIELD:
+ elcid = tvb_get_guint16(tvb, offset+1, ENC_BIG_ENDIAN);
+ fixed_len = TRUE;
+ break;
+ case ONE_OCTET_ELCID_FIELD:
+ elcid = tvb_get_guint8(tvb, offset+1);
+ fixed_len = is_fixed_sized_elcid(elcid, p_mac_nr_info->direction);
+ default:
+ break;
}
if (elcid == -1) {
/* No elcid present */
@@ -1927,33 +2116,35 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
(p_mac_nr_info->direction == DIRECTION_UPLINK) ?
hf_mac_nr_ulsch_lcid : hf_mac_nr_dlsch_lcid,
tvb, offset, 1, lcid);
- /* Also add as a hidden, direction-less field */
+ /* Also add LCID as a hidden, direction-less field */
proto_item *bi_di_lcid = proto_tree_add_uint(subheader_tree, hf_mac_nr_lcid, tvb, offset, 1, lcid);
proto_item_set_hidden(bi_di_lcid);
offset++;
+ /* Show eLCID, if present */
switch (lcid) {
- case TWO_OCTET_ELCID_FIELD:
- elcid = tvb_get_guint16(tvb, offset, ENC_BIG_ENDIAN);
- proto_tree_add_uint(subheader_tree,
- (p_mac_nr_info->direction == DIRECTION_UPLINK) ?
- hf_mac_nr_ulsch_elcid_2oct : hf_mac_nr_dlsch_elcid_2oct,
- tvb, offset, 2, elcid);
- offset += 2;
- break;
- case ONE_OCTET_ELCID_FIELD:
- elcid = tvb_get_guint8(tvb, offset);
- proto_tree_add_uint(subheader_tree,
- (p_mac_nr_info->direction == DIRECTION_UPLINK) ?
- hf_mac_nr_ulsch_elcid_1oct : hf_mac_nr_dlsch_elcid_1oct,
- tvb, offset, 1, elcid);
- offset += 1;
- break;
+ case TWO_OCTET_ELCID_FIELD:
+ elcid = tvb_get_guint16(tvb, offset, ENC_BIG_ENDIAN);
+ proto_tree_add_uint(subheader_tree,
+ (p_mac_nr_info->direction == DIRECTION_UPLINK) ?
+ hf_mac_nr_ulsch_elcid_2oct : hf_mac_nr_dlsch_elcid_2oct,
+ tvb, offset, 2, elcid);
+ offset += 2;
+ break;
+ case ONE_OCTET_ELCID_FIELD:
+ elcid = tvb_get_guint8(tvb, offset);
+ proto_tree_add_uint(subheader_tree,
+ (p_mac_nr_info->direction == DIRECTION_UPLINK) ?
+ hf_mac_nr_ulsch_elcid_1oct : hf_mac_nr_dlsch_elcid_1oct,
+ tvb, offset, 1, elcid);
+ offset += 1;
+ break;
- default:
- break;
+ default:
+ break;
}
+ /* Show length */
if (!fixed_len) {
if (F) {
/* Long length */
@@ -1976,6 +2167,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* Add SDU, for now just as hex data */
if (p_mac_nr_info->direction == DIRECTION_UPLINK) {
+ /* UL. Check various CCCH LCIDs */
if ((lcid == CCCH_LCID) || (lcid == 36)) {
SDU_length = 8;
} else if ((lcid == CCCH_48_BITS_LCID) || (lcid == 35)) {
@@ -1985,13 +2177,30 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
tvb, offset, SDU_length, ENC_NA);
}
else {
+ /* DL */
sch_pdu_ti = proto_tree_add_item(subheader_tree, hf_mac_nr_dlsch_sdu,
tvb, offset, SDU_length, ENC_NA);
}
- /* Call RLC if configured to do so for this SDU */
- if ((lcid >= 4) && (lcid <= 32)) {
- /* Look for mapping for this LCID to drb channel set by UAT table */
+ gboolean is_srb = FALSE;
+ if (lcid == 3 || lcid == 4) {
+ /* Work out whether we are to assume that we are dealing with SRB-3 or SRB-4 */
+ rlc_bearer_type_t rlc_bearer_type;
+ guint8 seqnum_length;
+ gint drb_id;
+
+ lookup_rlc_bearer_from_lcid(p_mac_nr_info->ueid,
+ lcid,
+ p_mac_nr_info->direction,
+ &rlc_bearer_type,
+ &seqnum_length,
+ &drb_id,
+ &is_srb);
+ }
+
+ /* Might also call RLC if configured to do so for this SDU */
+ if ((lcid >= 3) && (lcid <= 32) && !is_srb) {
+ /* Look for DRB mapping for this LCID to drb channel set by UAT table */
rlc_bearer_type_t rlc_bearer_type;
guint8 seqnum_length;
gint drb_id;
@@ -2006,7 +2215,8 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
p_mac_nr_info->direction,
&rlc_bearer_type,
&seqnum_length,
- &drb_id);
+ &drb_id,
+ &is_srb);
/* Dissect according to channel type */
switch (rlc_bearer_type) {
@@ -2037,8 +2247,8 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* Nothing to do! */
break;
}
- } else if (lcid >= 1 && lcid <= 3) {
-
+ } else if ((lcid >= 1 && lcid <= 2) || ((lcid==3 || lcid==4) && is_srb)) {
+ /* SRB */
tap_info->sdus_for_lcid[lcid]++;
tap_info->bytes_for_lcid[lcid] += SDU_length;
@@ -2097,7 +2307,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
if (p_mac_nr_info->direction == DIRECTION_UPLINK) {
guint32 phr_ph, phr_pcmax_f_c, c_rnti, lcg_id, bs, br_lcid, bit_rate;
- gboolean dir;
+ bool dir;
switch (lcid) {
case TWO_OCTET_ELCID_FIELD:
@@ -2525,7 +2735,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
else {
/* Downlink control elements */
guint32 ta_tag_id, ta_ta, br_lcid, bit_rate;
- gboolean dir;
+ bool dir;
if (lcid != PADDING_LCID) {
if (data_seen) {
@@ -2675,7 +2885,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
break;
case SP_SRS_ACT_DEACT_LCID:
{
- gboolean ad, c;
+ bool ad, c;
guint32 start_offset = offset;
guint resources = 0;
@@ -2702,7 +2912,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* Activating - show info for resources */
guint length = c ? (SDU_length-2) / 2 + 2: SDU_length;
while (offset - start_offset < length) {
- gboolean f;
+ bool f;
proto_tree_add_item_ret_boolean(subheader_tree, hf_mac_nr_control_sp_srs_act_deact_f,
tvb, offset, 1, ENC_NA, &f);
guint32 resource_id = tvb_get_guint8(tvb, offset) & 0x7f;
@@ -2848,7 +3058,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
break;
case SP_CSI_RS_CSI_IM_RES_SET_ACT_DEACT_LCID:
{
- gboolean ad;
+ bool ad;
guint32 start_offset = offset;
static int * const sp_csi_rs_csi_im_res_set_act_deact_flags[] = {
&hf_mac_nr_control_sp_csi_rs_csi_im_res_set_act_deact_reserved3,
@@ -3027,6 +3237,7 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
} while (tvb_reported_length_remaining(tvb, offset));
+ return offset;
}
@@ -3156,13 +3367,16 @@ static int dissect_mac_nr(tvbuff_t *tvb, packet_info *pinfo,
dissect_rar(tvb, pinfo, mac_nr_tree, pdu_ti, offset, p_mac_nr_info, tap_info);
break;
+ case MSGB_RNTI:
+ /* MSGB PDU */
+ dissect_msgb(tvb, pinfo, mac_nr_tree, pdu_ti, offset, p_mac_nr_info, tap_info);
+ break;
+
case C_RNTI:
case CS_RNTI:
/* Can be UL-SCH or DL-SCH */
dissect_ulsch_or_dlsch(tvb, pinfo, mac_nr_tree, pdu_ti, offset,
- p_mac_nr_info,
- context_tree,
- tap_info);
+ p_mac_nr_info, tap_info);
break;
case SI_RNTI:
@@ -3374,8 +3588,8 @@ void set_mac_nr_bearer_mapping(nr_drb_mac_rlc_mapping_t *drb_mapping)
if (drb_mapping->lcid_present) {
lcid = drb_mapping->lcid;
- /* Ignore if LCID is out of range */
- if ((lcid < 4) || (lcid > 32)) {
+ /* Ignore if LCID is out of range. */
+ if ((lcid < 3) || (lcid > 32)) {
return;
}
}
@@ -3392,8 +3606,8 @@ void set_mac_nr_bearer_mapping(nr_drb_mac_rlc_mapping_t *drb_mapping)
}
/* If lcid wasn't supplied, need to try to look up from drbid */
- if ((lcid == 0) && (drb_mapping->drbid <= 32)) {
- lcid = ue_mappings->drb_to_lcid_mappings[drb_mapping->drbid];
+ if ((lcid == 0) && (drb_mapping->rbid <= 32)) {
+ lcid = ue_mappings->drb_to_lcid_mappings[drb_mapping->rbid];
}
if (lcid == 0) {
/* Still no lcid - give up */
@@ -3402,8 +3616,8 @@ void set_mac_nr_bearer_mapping(nr_drb_mac_rlc_mapping_t *drb_mapping)
/* Set array entry */
ue_mappings->mapping[lcid].valid = TRUE;
- ue_mappings->mapping[lcid].drbid = drb_mapping->drbid;
- ue_mappings->drb_to_lcid_mappings[drb_mapping->drbid] = lcid;
+ ue_mappings->mapping[lcid].drbid = drb_mapping->rbid;
+ ue_mappings->drb_to_lcid_mappings[drb_mapping->rbid] = lcid;
/* Fill in available RLC info */
if (drb_mapping->rlcMode_present) {
@@ -3416,6 +3630,41 @@ void set_mac_nr_bearer_mapping(nr_drb_mac_rlc_mapping_t *drb_mapping)
}
}
+void set_mac_nr_srb3_in_use(guint16 ueid)
+{
+ ue_dynamic_drb_mappings_t *ue_mappings;
+
+ /* Look for existing UE entry */
+ ue_mappings = (ue_dynamic_drb_mappings_t *)g_hash_table_lookup(mac_nr_ue_bearers_hash,
+ GUINT_TO_POINTER(ueid));
+ if (!ue_mappings) {
+ /* If not found, create & add to table */
+ ue_mappings = wmem_new0(wmem_file_scope(), ue_dynamic_drb_mappings_t);
+ g_hash_table_insert(mac_nr_ue_bearers_hash,
+ GUINT_TO_POINTER(ueid),
+ ue_mappings);
+ }
+ ue_mappings->srb3_set = TRUE;
+}
+
+void set_mac_nr_srb4_in_use(guint16 ueid)
+{
+ ue_dynamic_drb_mappings_t *ue_mappings;
+
+ /* Look for existing UE entry */
+ ue_mappings = (ue_dynamic_drb_mappings_t *)g_hash_table_lookup(mac_nr_ue_bearers_hash,
+ GUINT_TO_POINTER(ueid));
+ if (!ue_mappings) {
+ /* If not found, create & add to table */
+ ue_mappings = wmem_new0(wmem_file_scope(), ue_dynamic_drb_mappings_t);
+ g_hash_table_insert(mac_nr_ue_bearers_hash,
+ GUINT_TO_POINTER(ueid),
+ ue_mappings);
+ }
+ ue_mappings->srb4_set = TRUE;
+}
+
+
/* Function to be called from outside this module (e.g. in a plugin) to get per-packet data */
mac_nr_info *get_mac_nr_proto_data(packet_info *pinfo)
@@ -3715,7 +3964,6 @@ void proto_register_mac_nr(void)
NULL, HFILL
}
},
-
{ &hf_mac_nr_rar_temp_crnti,
{ "Temporary C-RNTI",
"mac-nr.rar.temp_crnti", FT_UINT16, BASE_HEX_DEC, NULL, 0x0,
@@ -3723,6 +3971,95 @@ void proto_register_mac_nr(void)
}
},
+ /* MSGB */
+ { &hf_mac_nr_msgb,
+ { "MSGB",
+ "mac-nr.msgb", FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_subheader,
+ { "Subheader",
+ "mac-nr.msgb.subheader", FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_e,
+ { "Extension",
+ "mac-nr.msgb.e", FT_BOOLEAN, 8, TFS(&rar_ext_vals), 0x80,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_t1,
+ { "t1",
+ "mac-nr.msgb.t1", FT_BOOLEAN, 8, TFS(&msgb_t1_vals), 0x40,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_t2,
+ { "t2",
+ "mac-nr.msgb.t2", FT_BOOLEAN, 8, TFS(&msgb_t2_vals), 0x20,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_s,
+ { "s",
+ "mac-nr.msgb.s", FT_BOOLEAN, 8, TFS(&msgb_s_vals), 0x10,
+ "MAC SDU indicator", HFILL
+ }
+ },
+
+ { &hf_mac_nr_msgb_reserved,
+ { "Reserved",
+ "mac-nr.msgb.reserved", FT_UINT8, BASE_DEC, NULL, 0x10,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_reserved2,
+ { "Reserved",
+ "mac-nr.msgb.reserved", FT_UINT8, BASE_DEC, NULL, 0x0f,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_reserved3,
+ { "Reserved",
+ "mac-nr.msgb.reserved", FT_UINT8, BASE_DEC, NULL, 0x80,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_ta_command,
+ { "Timing Advance Command",
+ "mac-nr.msgb.ta-command", FT_UINT16, BASE_DEC, NULL, 0x0fff,
+ NULL, HFILL
+ }
+ },
+ /* TODO: vals from 38.213 [6] */
+ { &hf_mac_nr_msgb_channelaccess_cpext,
+ { "ChannelAccess-CPext",
+ "mac-nr.msgb.channelaccess-cpext", FT_UINT8, BASE_DEC, NULL, 0x60,
+ NULL, HFILL
+ }
+ },
+ /* TODO: vals from 38.213 [6] */
+ { &hf_mac_nr_msgb_tpc,
+ { "TPC",
+ "mac-nr.msgb.tpc", FT_UINT8, BASE_DEC, NULL, 0x18,
+ "TPC command for the PUCCH resource containing HARQ feedback for MSGB", HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_harq_feedback_timing_indicator,
+ { "HARQ Feedback Timing Indicator",
+ "mac-nr.msgb.harq-feedback-timing-indicator", FT_UINT8, BASE_DEC, NULL, 0x07,
+ NULL, HFILL
+ }
+ },
+ { &hf_mac_nr_msgb_pucch_resource_indicator,
+ { "PUCCH Resource Indicator",
+ "mac-nr.msgb.pucch-resource-indicator", FT_UINT8, BASE_DEC, NULL, 0xf0,
+ NULL, HFILL
+ }
+ },
+
{ &hf_mac_nr_padding,
{ "Padding",
"mac-nr.padding", FT_BYTES, BASE_NONE, NULL, 0x0,
@@ -5157,7 +5494,9 @@ void proto_register_mac_nr(void)
};
static uat_field_t lcid_drb_mapping_flds[] = {
- UAT_FLD_VS(lcid_drb_mappings, lcid, "LCID (4-32)", drb_lcid_vals, "The MAC LCID"),
+ UAT_FLD_VS(lcid_drb_mappings, lcid, "LCID (3-32)", drb_lcid_vals,
+ "The MAC LCID. Note that under NR-DC, LCID 3 may be SRB-3. "
+ "LCID 4 may also be LCID4"),
UAT_FLD_DEC(lcid_drb_mappings, drbid,"DRBID id (1-32)", "Identifier of logical data channel"),
UAT_FLD_VS(lcid_drb_mappings, bearer_type_ul, "UL RLC Bearer Type", rlc_bearer_type_vals, "UL Bearer Mode"),
UAT_FLD_VS(lcid_drb_mappings, bearer_type_dl, "DL RLC Bearer Type", rlc_bearer_type_vals, "DL Bearer Mode"),
@@ -5186,8 +5525,9 @@ void proto_register_mac_nr(void)
&global_mac_nr_attempt_rrc_decode);
prefs_register_bool_preference(mac_nr_module, "attempt_to_dissect_srb_sdus",
- "Attempt to dissect LCID 1-3 as srb1-3",
- "Will call NR RLC dissector with standard settings as per RRC spec",
+ "Attempt to dissect LCID 1-4 as srb1-4",
+ "Will call NR RLC dissector with standard settings as per RRC spec, unless "
+ "LCID 3,4 are being used for user-plane",
&global_mac_nr_attempt_srb_decode);
prefs_register_enum_preference(mac_nr_module, "lcid_to_drb_mapping_source",
diff --git a/epan/dissectors/packet-mac-nr.h b/epan/dissectors/packet-mac-nr.h
index 30f127c0cf..b7eb1f8eac 100644
--- a/epan/dissectors/packet-mac-nr.h
+++ b/epan/dissectors/packet-mac-nr.h
@@ -24,6 +24,7 @@
#define C_RNTI 3
#define SI_RNTI 4
#define CS_RNTI 5
+#define MSGB_RNTI 6
/* Context info attached to each NR MAC frame */
typedef struct mac_nr_info
@@ -116,9 +117,10 @@ void set_mac_nr_proto_data(packet_info *pinfo, mac_nr_info *p_mac_nr_info);
/* Some are optional, and may not be seen (e.g. on reestablishment) */
typedef struct nr_drb_mac_rlc_mapping_t
{
- gboolean active;
+ gboolean active; /* Is set while inside RLC-BearerConfig or DRB-ToAddMod */
guint16 ueid; /* Mandatory */
- guint8 drbid; /* Mandatory */
+ gboolean is_drb; /* Mandatory */
+ guint8 rbid; /* Mandatory */
gboolean lcid_present;
guint8 lcid; /* Part of LogicalChannelConfig - optional */
@@ -138,6 +140,9 @@ typedef struct nr_drb_mac_rlc_mapping_t
configuration protocol (i.e. RRC) */
void set_mac_nr_bearer_mapping(nr_drb_mac_rlc_mapping_t *drb_mapping);
+void set_mac_nr_srb3_in_use(guint16 ueid);
+void set_mac_nr_srb4_in_use(guint16 ueid);
+
/* Function to attempt to populate p_mac_lte_info using framing definition above */
gboolean dissect_mac_nr_context_fields(struct mac_nr_info *p_mac_nr_info, tvbuff_t *tvb,
diff --git a/epan/dissectors/packet-macsec.c b/epan/dissectors/packet-macsec.c
index 2a039fc8d0..0892679f8c 100644
--- a/epan/dissectors/packet-macsec.c
+++ b/epan/dissectors/packet-macsec.c
@@ -13,6 +13,7 @@
#include <epan/packet.h>
#include <epan/etypes.h>
+#include <wsutil/wsgcrypt.h>
void proto_register_macsec(void);
void proto_reg_handoff_macsec(void);
@@ -30,6 +31,21 @@ static dissector_handle_t ethertype_handle;
#define TCI_C_MASK 0x04
#define AN_MASK 0x03
+#define AES_KEY_LEN (16)
+#define ICV_LEN (16)
+#define IV_LEN (12)
+
+#define HWADDR_LEN (6)
+#define ETHERTYPE_LEN (2)
+#define ETHHDR_LEN ((HWADDR_LEN * 2) + ETHERTYPE_LEN)
+
+#define SECTAG_LEN_WITH_SC (14)
+#define SECTAG_LEN_WITHOUT_SC (6)
+
+#define AAD_ENCRYPTED_LEN (28)
+
+#define MAX_PAYLOAD_LEN (1500)
+
static int proto_macsec;
static int hf_macsec_TCI;
@@ -47,11 +63,60 @@ static int hf_macsec_SCI_port_identifier;
static int hf_macsec_etype;
static int hf_macsec_eth_padding;
static int hf_macsec_ICV;
+static int hf_macsec_ICV_check_success;
+static int hf_macsec_decrypted_data;
/* Initialize the subtree pointers */
static gint ett_macsec;
static gint ett_macsec_tci;
+/* Decrypting payload buffer */
+static uint8_t macsec_payload[MAX_PAYLOAD_LEN];
+
+/* AAD buffer */
+static uint8_t aad[MAX_PAYLOAD_LEN];
+
+static const gchar *psk = NULL;
+static unsigned char *psk_bin = NULL;
+
+/* convert a 0-terminated preference key_string that contains a hex number
+ * into its binary representation
+ * e.g. key_string "abcd" will be converted into two bytes 0xab, 0xcd
+ * return the number of binary bytes or -1 for error */
+static gint
+pref_key_string_to_bin(const gchar *key_string, unsigned char **key_bin)
+{
+ int key_string_len;
+ int i, j;
+ char input[3];
+
+ ws_return_val_if(key_bin == NULL, -1);
+
+ if (NULL == key_string) {
+ *key_bin = NULL;
+ return -1;
+ }
+
+ key_string_len = (int)strlen(key_string);
+ if (key_string_len != 2 * AES_KEY_LEN) {
+ *key_bin = NULL;
+ return (key_string_len / 2);
+ }
+
+ *key_bin = (unsigned char *)g_malloc(key_string_len / 2);
+
+ input[2] = '\0';
+ for (i = 0, j = 0; i < (key_string_len - 1); i += 2, j++) {
+ input[0] = key_string[0 + i];
+ input[1] = key_string[1 + i];
+
+ /* attention, brackets are required */
+ (*key_bin)[j] = (unsigned char)strtoul((const char *)&input, NULL, 16);
+ }
+
+ return (key_string_len / 2);
+}
+
/* Code to actually dissect the packets */
static int dissect_macsec(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
unsigned sectag_length, data_length, short_length, icv_length;
@@ -59,23 +124,55 @@ static int dissect_macsec(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
unsigned data_offset, icv_offset;
guint8 tci_an_field;
+ int icv_check_success = PROTO_CHECKSUM_E_BAD;
+ bool key_provided = false;
+ bool encrypted = false;
+ guint payload_len;
+ guint offset;
+
+ gcry_cipher_hd_t handle = 0;
+
proto_item *macsec_item;
proto_tree *macsec_tree = NULL;
tvbuff_t *next_tvb;
+ /* Construct the 14-byte ethernet header (6-byte dst MAC, 6-byte src MAC, 2-byte ethernet type)(part of aad) */
+ uint8_t header[ETHHDR_LEN] = {0};
+ if (pinfo->dl_dst.data != NULL)
+ {
+ memcpy(header, pinfo->dl_dst.data, HWADDR_LEN);
+ }
+ if (pinfo->dl_src.data != NULL)
+ {
+ memcpy((header + HWADDR_LEN), pinfo->dl_src.data, HWADDR_LEN);
+ }
+
+ uint8_t e_type[ETHERTYPE_LEN] = {(uint8_t)(ETHERTYPE_MACSEC >> 8), (uint8_t)(ETHERTYPE_MACSEC & 0xff)};
+ memcpy(header + (ETHHDR_LEN - ETHERTYPE_LEN), &e_type, ETHERTYPE_LEN);
+
+ /* Parse the encryption key, and set the flag to indicate if the key is provided*/
+ if (pref_key_string_to_bin(psk, &psk_bin) == AES_KEY_LEN) {
+ key_provided = true;
+ }
+
tci_an_field = tvb_get_guint8(tvb, 0);
+ /* if the frame is an encrypted MACsec frame, remember that */
+ if (((tci_an_field & TCI_E_MASK) == TCI_E_MASK) || ((tci_an_field & TCI_C_MASK) == TCI_C_MASK)) {
+ encrypted = true;
+ }
+
if ((tci_an_field & TCI_V_MASK) != 0) { /* version must be zero */
return 0;
}
- icv_length = 16; /* Fixed size for version 0 */
+ icv_length = ICV_LEN; /* Fixed size for version 0 */
if (tci_an_field & TCI_SC_MASK) {
- sectag_length = 14; /* optional SCI present */
+ sectag_length = SECTAG_LEN_WITH_SC; /* optional SCI present */
} else {
- sectag_length = 6;
+ sectag_length = SECTAG_LEN_WITHOUT_SC;
}
/* Check for length too short */
@@ -114,13 +211,11 @@ static int dissect_macsec(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
col_set_str(pinfo->cinfo, COL_INFO, "MACsec frame");
if (tree) {
- if (((tci_an_field & TCI_E_MASK) == TCI_E_MASK) || ((tci_an_field & TCI_C_MASK) == TCI_C_MASK)) {
- macsec_item = proto_tree_add_item(tree,
- proto_macsec, tvb, 0, sectag_length, ENC_NA);
+ if (encrypted) {
+ macsec_item = proto_tree_add_item(tree, proto_macsec, tvb, 0, sectag_length, ENC_NA);
} else {
/* Add the EtherType too since this is authentication only. */
- macsec_item = proto_tree_add_item(tree,
- proto_macsec, tvb, 0, sectag_length + 2, ENC_NA);
+ macsec_item = proto_tree_add_item(tree, proto_macsec, tvb, 0, sectag_length + ETHERTYPE_LEN, ENC_NA);
}
macsec_tree = proto_item_add_subtree(macsec_item, ett_macsec);
@@ -137,54 +232,197 @@ static int dissect_macsec(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
proto_tree_add_bitmask_with_flags(macsec_tree, tvb, 0,
hf_macsec_TCI, ett_macsec_tci, flags, ENC_NA, BMT_NO_TFS);
- proto_tree_add_item(macsec_tree, hf_macsec_AN, tvb, 0, 1, ENC_NA);
- proto_tree_add_item(macsec_tree, hf_macsec_SL, tvb, 1, 1, ENC_NA);
- proto_tree_add_item(macsec_tree, hf_macsec_PN, tvb, 2, 4, ENC_BIG_ENDIAN);
+ offset = 0;
+ proto_tree_add_item(macsec_tree, hf_macsec_AN, tvb, offset, 1, ENC_NA);
+ offset += 1;
+
+ proto_tree_add_item(macsec_tree, hf_macsec_SL, tvb, offset, 1, ENC_NA);
+ offset += 1;
+
+ proto_tree_add_item(macsec_tree, hf_macsec_PN, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ if (sectag_length == SECTAG_LEN_WITH_SC) {
+ proto_tree_add_item(macsec_tree, hf_macsec_SCI_system_identifier, tvb, offset, HWADDR_LEN, ENC_NA);
+ offset += HWADDR_LEN;
- if (sectag_length == 14) {
- proto_tree_add_item(macsec_tree, hf_macsec_SCI_system_identifier,
- tvb, 6, 6, ENC_NA);
- proto_tree_add_item(macsec_tree, hf_macsec_SCI_port_identifier, tvb,
- 12, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(macsec_tree, hf_macsec_SCI_port_identifier, tvb, offset, 2, ENC_BIG_ENDIAN);
}
+ }
+
+ next_tvb = tvb_new_subset_length(tvb, data_offset, data_length);
+
+ /* Try to decrypt/authenticate the data if a key is provided */
+ if (key_provided) {
+ /* Build the IV */
+ uint8_t iv[IV_LEN] = {0};
+ tvb_memcpy(tvb, iv, 6, HWADDR_LEN); // SI System identifier (source MAC)
+ tvb_memcpy(tvb, iv + 6, 12, 2); // PI Port identifier
+ tvb_memcpy(tvb, iv + 8, 2, 4); // PN Packet number
+
+ if (gcry_cipher_open(&handle, GCRY_CIPHER_AES, GCRY_CIPHER_MODE_GCM, 0))
+ {
+ ws_warning("gcry_cipher_open fail");
+ goto out;
+ }
+
+ if (gcry_cipher_setkey(handle, psk_bin, AES_KEY_LEN))
+ {
+ ws_warning("gcry_cipher_setkey fail");
+ goto out;
+ }
+
+ if (gcry_cipher_setiv(handle, iv, sizeof(iv)))
+ {
+ ws_warning("gcry_cipher_setiv fail");
+ goto out;
+ }
+
+ if (encrypted) {
+ payload_len = tvb_captured_length(next_tvb);
+
+ /* For authenticated and encrypted data, the AAD is always 28 bytes and consists of the
+ header data and security tag. */
+ const guint8 *buf = tvb_get_ptr(tvb, 0, SECTAG_LEN_WITH_SC);
+
+ memcpy(aad, header, ETHHDR_LEN);
+ memcpy(aad + ETHHDR_LEN, buf, SECTAG_LEN_WITH_SC);
+
+ /* Authenticate with the AAD. */
+ if (gcry_cipher_authenticate(handle, aad, AAD_ENCRYPTED_LEN))
+ {
+ ws_warning("gcry_cipher_authenticate fail");
+ goto out;
+ }
+
+ tvb_memcpy(next_tvb, macsec_payload, 0, payload_len);
+
+ /* Attempt to decrypt into the local buffer. */
+ if (gcry_cipher_decrypt(handle, macsec_payload, payload_len, NULL, 0))
+ {
+ ws_warning("gcry_cipher_decrypt fail");
+ goto out;
+ }
- if (((tci_an_field & TCI_E_MASK) == TCI_E_MASK) || ((tci_an_field & TCI_C_MASK) == TCI_C_MASK)) {
- proto_tree_add_item(macsec_tree, hf_macsec_ICV, tvb, icv_offset, icv_length, ENC_NA);
} else {
- proto_tree_add_item(macsec_tree, hf_macsec_etype, tvb, data_offset, 2, ENC_BIG_ENDIAN);
+ /* the frame length for the AAD is the complete frame including ethernet header but without the ICV */
+ guint frame_len = (ETHHDR_LEN + tvb_captured_length(tvb)) - ICV_LEN;
+
+ // For authenticated-only data, the aad is the frame minus the ICV
+ // We have to build the AAD since the incoming TVB payload does not have the Ethernet header.
+ payload_len = frame_len - ETHHDR_LEN;
+
+ // Copy the header we built previously, then the frame data up to the ICV.
+ memcpy(aad, header, ETHHDR_LEN);
+ memcpy((aad + ETHHDR_LEN), tvb_get_ptr(tvb, 0, payload_len), payload_len);
+
+ /* Authenticate with the AAD. */
+ if (gcry_cipher_authenticate(handle, aad, frame_len))
+ {
+ ws_warning("gcry_cipher_authenticate fail");
+ goto out;
+ }
+ }
+
+ /* Fetch the ICV and use it to verify the decrypted data. */
+ uint8_t icv[ICV_LEN] = {0};
+ tvb_memcpy(tvb, icv, icv_offset, icv_length);
+ if (gcry_cipher_checktag(handle, icv, sizeof(icv)))
+ {
+ ws_info("gcry_cipher_checktag fail");
+ goto out;
}
+
+ /* Everything checks out! */
+ icv_check_success = PROTO_CHECKSUM_E_GOOD;
}
- /* if encrypted or changed, we can only display data */
- if (((tci_an_field & TCI_E_MASK) == TCI_E_MASK) || ((tci_an_field & TCI_C_MASK) == TCI_C_MASK)) {
- next_tvb = tvb_new_subset_length(tvb, data_offset, data_length);
- call_data_dissector(next_tvb, pinfo, tree);
- } else {
- ethertype_data_t ethertype_data;
+out:
+ if (0 != handle) {
+ gcry_cipher_close(handle);
+ }
+ // Show the original data.
+ call_data_dissector(next_tvb, pinfo, tree);
- ethertype_data.etype = tvb_get_ntohs(tvb, data_offset);
- ethertype_data.payload_offset = 0;
- ethertype_data.fh_tree = macsec_tree;
- /* XXX: This could be another trailer, a FCS, or the Ethernet dissector
- * incorrectly detecting padding if we don't have short_length. */
- ethertype_data.trailer_id = hf_macsec_eth_padding;
- ethertype_data.fcs_len = 0;
+ ethertype_data_t ethertype_data;
+
+ /* default the next tv_buff to remove ICV */
+ /* lets hand over a buffer without ICV to limit effect of wrong padding calculation */
+ next_tvb = tvb_new_subset_length(tvb, data_offset + 2, data_length - 2);
+ ethertype_data.etype = tvb_get_ntohs(tvb, data_offset);
+
+ // If the data are ok, attempt to continue dissection.
+ if (PROTO_CHECKSUM_E_GOOD == icv_check_success)
+ {
+ if (encrypted) {
+ tvbuff_t *plain_tvb;
+
+ plain_tvb = tvb_new_child_real_data(next_tvb, (guint8 *)wmem_memdup(pinfo->pool, macsec_payload, payload_len),
+ payload_len, payload_len);
+ ethertype_data.etype = tvb_get_ntohs(plain_tvb, 0);
- /* lets hand over a buffer without ICV to limit effect of wrong padding calculation */
- next_tvb = tvb_new_subset_length(tvb, data_offset + 2, data_length - 2);
+ /* lets hand over a buffer without ICV to limit effect of wrong padding calculation */
+ next_tvb = tvb_new_subset_length(plain_tvb, 2, payload_len - 2);
+
+ /* show the decrypted data and original ethertype */
+ proto_tree_add_item(tree, hf_macsec_decrypted_data, plain_tvb, 0, payload_len, ENC_NA);
+
+ /* add the decrypted data as a data source for the next dissectors */
+ add_new_data_source(pinfo, plain_tvb, "Decrypted Data");
+
+ /* The ethertype is the one from the start of the decrypted data. */
+ proto_tree_add_item(tree, hf_macsec_etype, plain_tvb, 0, 2, ENC_BIG_ENDIAN);
+
+ } else {
+ /* lets hand over a buffer without ICV to limit effect of wrong padding calculation */
+ next_tvb = tvb_new_subset_length(tvb, data_offset + 2, data_length - 2);
+ /* The ethertype is the original from the unencrypted data. */
+ proto_tree_add_item(tree, hf_macsec_etype, tvb, data_offset, 2, ENC_BIG_ENDIAN);
+ }
+ }
+
+ /* add the ICV to the sectag subtree */
+ proto_tree_add_item(macsec_tree, hf_macsec_ICV, tvb, icv_offset, icv_length, ENC_NA);
+ proto_tree_set_appendix(macsec_tree, tvb, icv_offset, icv_length);
+
+ /* If the frame decoded, or was not encrypted, continue dissection */
+ if ((PROTO_CHECKSUM_E_GOOD == icv_check_success) || (false == encrypted)) {
/* help eth padding calculation by subtracting length of the sectag, ethertype, icv, and fcs */
gint pkt_len_saved = pinfo->fd->pkt_len;
+
pinfo->fd->pkt_len -= (sectag_length + 2 + icv_length + fcs_length);
+ /* continue dissection */
+ ethertype_data.payload_offset = 0;
+ ethertype_data.fh_tree = macsec_tree;
+ /* XXX: This could be another trailer, a FCS, or the Ethernet dissector
+ * incorrectly detecting padding if we don't have short_length. */
+ ethertype_data.trailer_id = hf_macsec_eth_padding;
+ ethertype_data.fcs_len = 0;
+
call_dissector_with_data(ethertype_handle, next_tvb, pinfo, tree, &ethertype_data);
/* restore original value */
pinfo->fd->pkt_len = pkt_len_saved;
+ }
+
+ /* Set icv_check_success to the correct status */
+ if (!key_provided) {
+ icv_check_success = PROTO_CHECKSUM_E_UNVERIFIED;
+ }
- proto_tree_add_item(macsec_tree, hf_macsec_ICV, tvb, icv_offset, icv_length, ENC_NA);
- proto_tree_set_appendix(macsec_tree, tvb, icv_offset, icv_length);
+ /* If the frame was not verified correctly, append this string to the info line
+ * after dissection completes.
+ */
+ if (PROTO_CHECKSUM_E_BAD == icv_check_success) {
+ col_append_str(pinfo->cinfo, COL_INFO, " [Authentication fail]");
}
+
+ /* add a flag indicating the frame is or is not verified. */
+ macsec_item = proto_tree_add_uint(macsec_tree, hf_macsec_ICV_check_success, tvb, 0, 0, icv_check_success);
+ proto_item_set_generated(macsec_item);
+
/* We called set_actual length if fcs_length !=0, so length is adjusted. */
return tvb_captured_length(tvb);
}
@@ -192,6 +430,7 @@ static int dissect_macsec(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
void
proto_register_macsec(void)
{
+ module_t *module;
static hf_register_info hf[] = {
{ &hf_macsec_TCI,
{ "TCI", "macsec.TCI", FT_UINT8, BASE_HEX,
@@ -252,7 +491,15 @@ proto_register_macsec(void)
{ &hf_macsec_ICV,
{ "ICV", "macsec.ICV", FT_BYTES, BASE_NONE,
NULL, 0, NULL, HFILL }
- }
+ },
+ { &hf_macsec_ICV_check_success,
+ { "Frame authentication status", "macsec.auth_status", FT_UINT8, BASE_DEC,
+ NULL, 0, NULL, HFILL }
+ },
+ { &hf_macsec_decrypted_data,
+ { "Decrypted Data", "macsec.decrypted_data", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }
+ },
};
/* Setup protocol subtree array */
@@ -270,6 +517,12 @@ proto_register_macsec(void)
/* Register the dissector */
macsec_handle = register_dissector("macsec", dissect_macsec, proto_macsec);
+
+ /* Register the text box to enter the pre-shared key */
+ module = prefs_register_protocol(proto_macsec, NULL);
+ prefs_register_string_preference(module, "psk", "MACsec Pre-Shared Key",
+ "Pre-Shared AES-GCM-128 Key as a HEX string (16 bytes).",
+ &psk);
}
void
diff --git a/epan/dissectors/packet-matter.c b/epan/dissectors/packet-matter.c
index a134b67605..2fff4ad63e 100644
--- a/epan/dissectors/packet-matter.c
+++ b/epan/dissectors/packet-matter.c
@@ -15,6 +15,8 @@
*
* The specification can be freely requested at:
* https://csa-iot.org/developer-resource/specifications-download-request/
+ *
+ * Comments below reference section numbers of the Matter Core Specification R1.0 (22-27349-001).
*/
#include <config.h>
@@ -61,26 +63,29 @@ static int hf_payload_secured_ext_length;
static int hf_payload_secured_ext;
static int hf_payload_application;
-static gint ett_matter;
-static gint ett_message_flags;
-static gint ett_security_flags;
-static gint ett_payload;
-static gint ett_exchange_flags;
+static int ett_matter;
+static int ett_message_flags;
+static int ett_security_flags;
+static int ett_payload;
+static int ett_exchange_flags;
/* message flags + session ID + security flags + counter */
#define MATTER_MIN_LENGTH 8
+// Section 4.4.1.2
#define MESSAGE_FLAG_VERSION_MASK 0xF0
#define MESSAGE_FLAG_HAS_SOURCE 0x04
#define MESSAGE_FLAG_HAS_DEST_NODE 0x01
#define MESSAGE_FLAG_HAS_DEST_GROUP 0x02
#define MESSAGE_FLAG_DSIZ_MASK 0x03
+// Section 4.4.1.4
#define SECURITY_FLAG_HAS_PRIVACY 0x80
#define SECURITY_FLAG_IS_CONTROL 0x40
#define SECURITY_FLAG_HAS_EXTENSIONS 0x20
#define SECURITY_FLAG_SESSION_TYPE_MASK 0x03
+// Section 4.4.3.1
#define EXCHANGE_FLAG_IS_INITIATOR 0x01
#define EXCHANGE_FLAG_ACK_MSG 0x02
#define EXCHANGE_FLAG_RELIABILITY 0x04
@@ -108,14 +113,14 @@ dissect_matter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
{
proto_item *ti;
proto_tree *matter_tree;
- guint offset = 0;
+ uint32_t offset = 0;
/* info extracted from the packet */
- guint8 message_flags = 0;
- guint8 security_flags = 0;
- guint8 message_dsiz = 0;
- guint8 message_session_type = 0;
- guint session_id = 0;
+ uint8_t message_flags = 0;
+ uint8_t security_flags = 0;
+ uint8_t message_dsiz = 0;
+ uint8_t message_session_type = 0;
+ uint32_t session_id = 0;
/* Check that the packet is long enough for it to belong to us. */
if (tvb_reported_length(tvb) < MATTER_MIN_LENGTH)
@@ -142,14 +147,17 @@ dissect_matter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
NULL
};
+ // Section 4.4.1.2
proto_tree_add_bitmask(matter_tree, tvb, offset, hf_message_flags, ett_message_flags, message_flag_fields, ENC_LITTLE_ENDIAN);
message_flags = tvb_get_guint8(tvb, offset);
message_dsiz = (message_flags & MESSAGE_FLAG_DSIZ_MASK);
offset += 1;
+ // Section 4.4.1.3
proto_tree_add_item_ret_uint(matter_tree, hf_message_session_id, tvb, offset, 2, ENC_LITTLE_ENDIAN, &session_id);
offset += 2;
+ // Section 4.4.1.4
proto_tree_add_bitmask(matter_tree, tvb, offset, hf_message_security_flags, ett_security_flags, message_secflag_fields, ENC_LITTLE_ENDIAN);
security_flags = tvb_get_guint8(tvb, offset);
message_session_type = (security_flags & SECURITY_FLAG_SESSION_TYPE_MASK);
@@ -157,9 +165,10 @@ dissect_matter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
// decryption of message privacy is not yet supported,
// but add an opaque field with the encrypted blob
+ // Section 4.8.3
if (security_flags & SECURITY_FLAG_HAS_PRIVACY) {
- guint privacy_header_length = 4;
+ uint32_t privacy_header_length = 4;
if (message_flags & MESSAGE_FLAG_HAS_SOURCE) {
privacy_header_length += 8;
}
@@ -173,13 +182,16 @@ dissect_matter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
} else {
+ // Section 4.4.1.5
proto_tree_add_item(matter_tree, hf_message_counter, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
+
+ // Section 4.4.1.6
if (message_flags & MESSAGE_FLAG_HAS_SOURCE) {
proto_tree_add_item(matter_tree, hf_message_src_id, tvb, offset, 8, ENC_LITTLE_ENDIAN);
offset += 8;
}
-
+ // Section 4.4.1.7
if (message_dsiz == MESSAGE_FLAG_HAS_DEST_NODE) {
proto_tree_add_item(matter_tree, hf_message_dest_id, tvb, offset, 8, ENC_LITTLE_ENDIAN);
offset += 8;
@@ -190,8 +202,9 @@ dissect_matter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
}
- // "The Unsecured Session SHALL be indicated when both Session Type and Session ID are set to 0."
- // Secured sessions not yet supported.
+ // Section 4.4.1.4: "The Unsecured Session SHALL be indicated
+ // when both Session Type and Session ID are set to 0."
+ // Secured sessions not yet supported in the dissector.
if (message_session_type == 0 && session_id == 0) {
proto_item *payload_item = proto_tree_add_none_format(matter_tree, hf_payload, tvb, offset, -1, "Protocol Payload");
proto_tree *payload_tree = proto_item_add_subtree(payload_item, ett_payload);
@@ -199,7 +212,7 @@ dissect_matter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
offset += dissect_matter_payload(next_tvb, pinfo, payload_tree);
} else {
- guint payload_length = tvb_reported_length_remaining(tvb, offset);
+ uint32_t payload_length = tvb_reported_length_remaining(tvb, offset);
proto_tree_add_none_format(matter_tree, hf_payload, tvb, offset, payload_length, "Encrypted Payload (%u bytes)", payload_length);
}
@@ -209,9 +222,9 @@ dissect_matter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
static int
dissect_matter_payload(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *pl_tree)
{
- guint offset = 0;
+ uint32_t offset = 0;
- guint8 exchange_flags = 0;
+ uint8_t exchange_flags = 0;
static int* const exchange_flag_fields[] = {
&hf_payload_flag_initiator,
@@ -221,13 +234,16 @@ dissect_matter_payload(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *pl_tre
&hf_payload_flag_vendor,
NULL
};
+ // Section 4.4.3.1
proto_tree_add_bitmask(pl_tree, tvb, offset, hf_payload_exchange_flags, ett_exchange_flags, exchange_flag_fields, ENC_LITTLE_ENDIAN);
exchange_flags = tvb_get_guint8(tvb, offset);
offset += 1;
+ // Section 4.4.3.2
proto_tree_add_item(pl_tree, hf_payload_protocol_opcode, tvb, offset, 1, ENC_LITTLE_ENDIAN);
offset += 1;
+ // Section 4.4.3.3
proto_tree_add_item(pl_tree, hf_payload_exchange_id, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
@@ -244,22 +260,25 @@ dissect_matter_payload(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *pl_tre
offset += 2;
}
+ // Section 4.4.3.4
proto_tree_add_item(pl_tree, hf_payload_protocol_id, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
+ // Section 4.4.3.6
if (exchange_flags & EXCHANGE_FLAG_ACK_MSG) {
proto_tree_add_item(pl_tree, hf_payload_ack_counter, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
+ // Section 4.4.3.7
if (exchange_flags & EXCHANGE_FLAG_HAS_SECURED_EXT) {
- guint secured_ext_len = 0;
+ uint32_t secured_ext_len = 0;
proto_tree_add_item_ret_uint(pl_tree, hf_payload_secured_ext_length, tvb, offset, 2, ENC_LITTLE_ENDIAN, &secured_ext_len);
offset += 2;
proto_tree_add_item(pl_tree, hf_payload_secured_ext, tvb, offset, secured_ext_len, ENC_NA);
offset += secured_ext_len;
}
- guint application_length = tvb_reported_length_remaining(tvb, offset);
+ uint32_t application_length = tvb_reported_length_remaining(tvb, offset);
proto_tree_add_bytes_format(pl_tree, hf_payload_application, tvb, offset, application_length, NULL, "Application payload (%u bytes)", application_length);
offset += application_length;
return offset;
@@ -417,7 +436,7 @@ proto_register_matter(void)
};
/* Setup protocol subtree array */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_matter,
&ett_message_flags,
&ett_security_flags,
diff --git a/epan/dissectors/packet-mausb.c b/epan/dissectors/packet-mausb.c
index 05fea0adb3..2b31e720a0 100644
--- a/epan/dissectors/packet-mausb.c
+++ b/epan/dissectors/packet-mausb.c
@@ -1395,7 +1395,7 @@ void mausb_set_usb_conv_info(usb_conv_info_t *usb_conv_info,
/* Used to detect multiple MA Packets in a single TCP packet */
/* Not used for MA Packets in SNAP Packets */
-static gint mausb_num_pdus = 0;
+static gint mausb_num_pdus;
/* dissect fields common to all MAUSB packet types */
diff --git a/epan/dissectors/packet-mbim.c b/epan/dissectors/packet-mbim.c
index 40fd941679..5496b492a1 100644
--- a/epan/dissectors/packet-mbim.c
+++ b/epan/dissectors/packet-mbim.c
@@ -1120,7 +1120,7 @@ static dissector_handle_t bulk_ndp_ctrl_handle;
static dissector_handle_t mbim_control_handle;
static dissector_handle_t iso7816_atr_handle;
-static gboolean mbim_control_decode_unknown_itf = FALSE;
+static bool mbim_control_decode_unknown_itf;
enum {
SMS_PDU_AUTOMATIC,
@@ -1178,7 +1178,7 @@ static gint preferred_mbim_extended_version = MBIM_Extended_Version_1;
static reassembly_table mbim_reassembly_table;
-static wmem_map_t *mbim_uuid_ext_hash = NULL;
+static wmem_map_t *mbim_uuid_ext_hash;
static const fragment_items mbim_frag_items = {
&ett_mbim_fragment,
@@ -3882,9 +3882,9 @@ mbim_dissect_set_pin(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gi
static void
mbim_dissect_pin_list_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset)
{
- const char *pin_list[10] = { "PIN 1", "PIN 2", "Device SIM PIN", "Device First SIM PIN", "Network PIN",
- "Network Subset PIN", "Service Provider PIN", "Corporate PIN", "Subsidy Lock",
- "Custom"};
+ static const char *pin_list[10] = { "PIN 1", "PIN 2", "Device SIM PIN", "Device First SIM PIN", "Network PIN",
+ "Network Subset PIN", "Service Provider PIN", "Corporate PIN", "Subsidy Lock",
+ "Custom"};
guint i;
guint32 length;
proto_tree *subtree;
diff --git a/epan/dissectors/packet-mbtcp.c b/epan/dissectors/packet-mbtcp.c
index c13daa4e3b..7a4dae393c 100644
--- a/epan/dissectors/packet-mbtcp.c
+++ b/epan/dissectors/packet-mbtcp.c
@@ -173,16 +173,16 @@ static dissector_table_t modbus_dissector_table;
/* Globals for Modbus/TCP Preferences */
-static gboolean mbtcp_desegment = TRUE;
-static range_t *global_mbus_tcp_ports = NULL; /* Port 502, by default */
-static range_t *global_mbus_udp_ports = NULL; /* Port 502, by default */
-static range_t *global_mbus_tls_ports = NULL; /* Port 802, by default */
+static bool mbtcp_desegment = true;
+static range_t *global_mbus_tcp_ports; /* Port 502, by default */
+static range_t *global_mbus_udp_ports; /* Port 502, by default */
+static range_t *global_mbus_tls_ports; /* Port 802, by default */
/* Globals for Modbus RTU over TCP Preferences */
-static gboolean mbrtu_desegment = TRUE;
+static bool mbrtu_desegment = true;
static range_t *global_mbus_tcp_rtu_ports = PORT_MBRTU; /* 0, by default */
static range_t *global_mbus_udp_rtu_ports = PORT_MBRTU; /* 0, by default */
-static gboolean mbrtu_crc = FALSE;
+static bool mbrtu_crc;
/* Globals for Modbus Preferences */
static gint global_mbus_register_format = MODBUS_PREF_REGISTER_FORMAT_UINT16;
diff --git a/epan/dissectors/packet-mcpe.c b/epan/dissectors/packet-mcpe.c
index 78a956e890..ff2b1fba7a 100644
--- a/epan/dissectors/packet-mcpe.c
+++ b/epan/dissectors/packet-mcpe.c
@@ -43,8 +43,8 @@ static gint ett_mcpe_string;
/*
* Dissectors
*/
-static dissector_handle_t mcpe_handle = NULL;
-static dissector_table_t mcpe_packet_dissectors = NULL;
+static dissector_handle_t mcpe_handle;
+static dissector_table_t mcpe_packet_dissectors;
/*
* Expert fields
diff --git a/epan/dissectors/packet-mctp-control.c b/epan/dissectors/packet-mctp-control.c
index 98841738a2..c4e981826c 100644
--- a/epan/dissectors/packet-mctp-control.c
+++ b/epan/dissectors/packet-mctp-control.c
@@ -72,7 +72,7 @@ dissect_mctp_ctrl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree *mctp_ctrl_tree, *mctp_ctrl_hdr_tree;
guint len, payload_start, cmd;
proto_item *ti, *hti;
- gboolean rq;
+ bool rq;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MCTP Control");
col_clear(pinfo->cinfo, COL_INFO);
diff --git a/epan/dissectors/packet-mdshdr.c b/epan/dissectors/packet-mdshdr.c
index 7bd9dd31d9..1abfcd97a7 100644
--- a/epan/dissectors/packet-mdshdr.c
+++ b/epan/dissectors/packet-mdshdr.c
@@ -88,7 +88,7 @@ static gint ett_mdshdr_trlr;
static dissector_handle_t mdshdr_handle;
static dissector_handle_t fc_dissector_handle;
-static gboolean decode_if_zero_etype = FALSE;
+static bool decode_if_zero_etype;
static const value_string sof_vals[] = {
{MDSHDR_SOFc1, "SOFc1"},
diff --git a/epan/dissectors/packet-megaco.c b/epan/dissectors/packet-megaco.c
index 2901d83e55..5babe36f04 100644
--- a/epan/dissectors/packet-megaco.c
+++ b/epan/dissectors/packet-megaco.c
@@ -194,8 +194,8 @@ typedef enum
* a detailed tree that expresses a somewhat more semantically meaningful
* decode.
*/
-static gboolean global_megaco_raw_text = TRUE;
-static gboolean global_megaco_dissect_tree = TRUE;
+static bool global_megaco_raw_text = true;
+static bool global_megaco_dissect_tree = true;
static const value_string megaco_context_vals[] = {
{ CHOOSE_CONTEXT, "Choose one" },
@@ -440,7 +440,7 @@ export_megaco_pdu(packet_info *pinfo, tvbuff_t *tvb)
static void
dissect_megaco_descriptors(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint tvb_descriptors_start_offset, gint tvb_descriptors_end_offset, proto_tree *top_tree, guint32 context);
static void
-dissect_megaco_digitmapdescriptor(tvbuff_t *tvb, proto_tree *tree, gint tvb_RBRKT, gint tvb_previous_offset);
+dissect_megaco_digitmapdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint tvb_RBRKT, gint tvb_previous_offset);
static void
dissect_megaco_topologydescriptor(tvbuff_t *tvb, proto_tree *tree, gint tvb_RBRKT, gint tvb_previous_offset);
static void
@@ -448,13 +448,13 @@ dissect_megaco_errordescriptor(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tr
static void
dissect_megaco_statisticsdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset);
static void
-dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, proto_tree *tree, gint tvb_next_offset, gint tvb_current_offset);
+dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint tvb_next_offset, gint tvb_current_offset);
static void
dissect_megaco_LocalRemotedescriptor(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint tvb_next_offset, gint tvb_current_offset, guint32 context, gboolean is_local);
static void
dissect_megaco_LocalControldescriptor(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gint tvb_next_offset, gint tvb_current_offset, proto_tree *top_tree);
static void
-dissect_megaco_Packagesdescriptor(tvbuff_t *tvb, proto_tree *tree, gint tvb_next_offset, gint tvb_current_offset);
+dissect_megaco_Packagesdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint tvb_next_offset, gint tvb_current_offset);
static void
tvb_raw_text_add(tvbuff_t *tvb, proto_tree *tree);
static int
@@ -467,7 +467,7 @@ static dissector_handle_t h245_handle;
static dissector_handle_t h248_handle;
static dissector_handle_t h248_otp_handle;
-static gboolean keep_persistent_data = FALSE;
+static bool keep_persistent_data;
/*
* dissect_megaco_text over TCP, there will be a TPKT header there
@@ -547,7 +547,7 @@ megaco_tree_add_string(proto_tree *tree, int hfindex, tvbuff_t *tvb,
proto_item_set_hidden(pi);
}
- return(pi);
+ return pi;
}
static proto_item *
@@ -564,7 +564,7 @@ my_proto_tree_add_uint(proto_tree *tree, int hfindex, tvbuff_t *tvb,
proto_item_set_hidden(pi);
}
- return(pi);
+ return pi;
}
/*
@@ -705,7 +705,7 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
}
megaco_tree_add_string(megaco_tree, hf_megaco_start, tvb, 0, tvb_previous_offset+1,
- tvb_get_string_enc(wmem_packet_scope(), tvb, 0, tvb_previous_offset, ENC_UTF_8|ENC_NA));
+ tvb_get_string_enc(pinfo->pool, tvb, 0, tvb_previous_offset, ENC_UTF_8|ENC_NA));
/* skip / */
tvb_previous_offset++;
@@ -719,7 +719,7 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
}
megaco_tree_add_string(megaco_tree, hf_megaco_version, tvb, tvb_previous_offset, tvb_current_offset - tvb_previous_offset,
- tvb_get_string_enc(wmem_packet_scope(), tvb, tvb_previous_offset, tvb_current_offset - tvb_previous_offset, ENC_UTF_8|ENC_NA));
+ tvb_get_string_enc(pinfo->pool, tvb, tvb_previous_offset, tvb_current_offset - tvb_previous_offset, ENC_UTF_8|ENC_NA));
tvb_previous_offset = tvb_current_offset;
tvb_current_offset = megaco_tvb_skip_wsp(tvb, tvb_previous_offset);
@@ -755,7 +755,7 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
* or to the next character after white space SEP
*/
megaco_tree_add_string(megaco_tree, hf_megaco_mId, tvb, tvb_previous_offset, tvb_current_offset - tvb_previous_offset,
- tvb_get_string_enc(wmem_packet_scope(), tvb, tvb_previous_offset, tvb_current_offset - tvb_previous_offset, ENC_UTF_8|ENC_NA));
+ tvb_get_string_enc(pinfo->pool, tvb, tvb_previous_offset, tvb_current_offset - tvb_previous_offset, ENC_UTF_8|ENC_NA));
col_clear(pinfo->cinfo, COL_INFO);
do{
@@ -1465,7 +1465,7 @@ nextcontext:
if ( (tempchar >= 'a')&& (tempchar <= 'z'))
tempchar = tempchar - 0x20;
- term = wmem_new0(wmem_packet_scope(), gcp_term_t);
+ term = wmem_new0(pinfo->pool, gcp_term_t);
wild_term = GCP_WILDCARD_NONE;
term->type = GCP_TERM_TYPE_UNKNOWN;
int bytelen;
@@ -1480,7 +1480,7 @@ nextcontext:
bytelen = tvb_get_raw_bytes_as_stringz(tvb,tvb_offset,tokenlen+1,TermID);
TermID[0] = 'e';
- term->buffer = get_utf_8_string(wmem_packet_scope(), TermID, bytelen);
+ term->buffer = get_utf_8_string(pinfo->pool, TermID, bytelen);
term->len = (int)strlen(term->buffer);
term->str = (const char *)term->buffer;
@@ -1653,7 +1653,7 @@ static gint find_megaco_descriptors_names(tvbuff_t *tvb, int offset, guint heade
}
static void
-dissect_megaco_modemdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
+dissect_megaco_modemdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
{
gint tokenlen;
@@ -1661,12 +1661,12 @@ dissect_megaco_modemdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_li
tokenlen = (tvb_RBRKT+1) - tvb_previous_offset;
proto_tree_add_string(megaco_tree_command_line, hf_megaco_modem_descriptor, tvb,
tvb_previous_offset, tokenlen,
- tvb_format_text(wmem_packet_scope(), tvb, tvb_previous_offset,
+ tvb_format_text(pinfo->pool, tvb, tvb_previous_offset,
tokenlen));
}
static void
-dissect_megaco_multiplexdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
+dissect_megaco_multiplexdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
{
gint tokenlen;
@@ -1674,7 +1674,7 @@ dissect_megaco_multiplexdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_comman
tokenlen = (tvb_RBRKT+1) - tvb_previous_offset;
proto_tree_add_string(megaco_tree_command_line, hf_megaco_multiplex_descriptor, tvb,
tvb_previous_offset, tokenlen,
- tvb_format_text(wmem_packet_scope(), tvb, tvb_previous_offset,
+ tvb_format_text(pinfo->pool, tvb, tvb_previous_offset,
tokenlen));
}
@@ -1807,7 +1807,7 @@ dissect_megaco_mediadescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_li
continue;
case MEGACO_TERMINATION_STATE_DESC:
tvb_current_offset = megaco_tvb_skip_wsp(tvb, tvb_LBRKT+1);
- dissect_megaco_TerminationStatedescriptor(tvb, megaco_mediadescriptor_tree,
+ dissect_megaco_TerminationStatedescriptor(tvb, pinfo, megaco_mediadescriptor_tree,
tvb_RBRKT, tvb_current_offset);
tvb_current_offset = tvb_RBRKT;
break;
@@ -2103,7 +2103,7 @@ dissect_megaco_eventsdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *m
requested_event_end_offset = megaco_tvb_skip_wsp_return(tvb, requested_event_end_offset-1);
if (!tvb_strncaseeql(tvb, requested_event_start_offset, "dm", 2)) {
- dissect_megaco_digitmapdescriptor(tvb, megaco_requestedevent_tree, requested_event_end_offset, requested_event_start_offset);
+ dissect_megaco_digitmapdescriptor(tvb, pinfo, megaco_requestedevent_tree, requested_event_end_offset, requested_event_start_offset);
}
else{
tokenlen = requested_event_end_offset - requested_event_start_offset;
@@ -2375,10 +2375,10 @@ dissect_megaco_auditdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree, packet_in
dissect_megaco_eventsdescriptor(tvb, pinfo, megaco_auditdescriptor_tree, tvb_end, tvb_offset, top_tree);
break;
case MEGACO_DIGITMAP_TOKEN:
- dissect_megaco_digitmapdescriptor(tvb, megaco_auditdescriptor_tree, tvb_end, tvb_offset);
+ dissect_megaco_digitmapdescriptor(tvb, pinfo, megaco_auditdescriptor_tree, tvb_end, tvb_offset);
break;
case MEGACO_PACKAGES_TOKEN:
- dissect_megaco_Packagesdescriptor(tvb, megaco_auditdescriptor_tree, tvb_end, tvb_offset);
+ dissect_megaco_Packagesdescriptor(tvb, pinfo, megaco_auditdescriptor_tree, tvb_end, tvb_offset);
break;
default:
tokenlen = tvb_end - tvb_offset;
@@ -2573,7 +2573,7 @@ dissect_megaco_servicechangedescriptor(tvbuff_t *tvb, packet_info* pinfo, proto_
}
static void
-dissect_megaco_digitmapdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
+dissect_megaco_digitmapdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
{
gint tokenlen;
@@ -2581,7 +2581,7 @@ dissect_megaco_digitmapdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command
tokenlen = tvb_RBRKT - tvb_previous_offset;
proto_tree_add_string(megaco_tree_command_line, hf_megaco_digitmap_descriptor, tvb,
tvb_previous_offset, tokenlen,
- tvb_format_text(wmem_packet_scope(), tvb, tvb_previous_offset,
+ tvb_format_text(pinfo->pool, tvb, tvb_previous_offset,
tokenlen));
}
@@ -2785,7 +2785,7 @@ dissect_megaco_topologydescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command
}
static void
-dissect_megaco_Packagesdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
+dissect_megaco_Packagesdescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *megaco_tree_command_line, gint tvb_RBRKT, gint tvb_previous_offset)
{
gint tokenlen, tvb_current_offset, tvb_next_offset, tvb_help_offset;
@@ -2810,7 +2810,7 @@ dissect_megaco_Packagesdescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command
ti = proto_tree_add_uint(megaco_packagesdescriptor_tree, hf_megaco_requestid, tvb,
tvb_current_offset, 1,
- (guint32) strtoul(tvb_format_text(wmem_packet_scope(), tvb, tvb_current_offset, tokenlen), NULL, 10));
+ (guint32) strtoul(tvb_format_text(pinfo->pool, tvb, tvb_current_offset, tokenlen), NULL, 10));
proto_item_set_len(ti, tokenlen);
tvb_packages_end_offset = tvb_RBRKT;
@@ -3005,7 +3005,7 @@ dissect_megaco_errordescriptor(tvbuff_t *tvb, packet_info* pinfo, proto_tree *me
proto_tree_add_item(error_tree, hf_megaco_error_string, tvb, tvb_previous_offset+1, tokenlen, ENC_UTF_8);
}
static void
-dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, proto_tree *megaco_mediadescriptor_tree, gint tvb_next_offset, gint tvb_current_offset)
+dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *megaco_mediadescriptor_tree, gint tvb_next_offset, gint tvb_current_offset)
{
gint tokenlen;
gint tvb_offset;
@@ -3038,7 +3038,7 @@ dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, proto_tree *megaco_medi
proto_tree_add_string(megaco_TerminationState_tree, hf_megaco_Service_State, tvb,
tvb_current_offset, tokenlen,
- tvb_format_text(wmem_packet_scope(), tvb, tvb_current_offset,
+ tvb_format_text(pinfo->pool, tvb, tvb_current_offset,
tokenlen));
break;
@@ -3054,7 +3054,7 @@ dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, proto_tree *megaco_medi
proto_tree_add_string(megaco_TerminationState_tree, hf_megaco_Event_Buffer_Control, tvb,
tvb_current_offset, tokenlen,
- tvb_format_text(wmem_packet_scope(), tvb, tvb_current_offset,
+ tvb_format_text(pinfo->pool, tvb, tvb_current_offset,
tokenlen));
break;
@@ -3069,7 +3069,7 @@ dissect_megaco_TerminationStatedescriptor(tvbuff_t *tvb, proto_tree *megaco_medi
proto_tree_add_string(megaco_TerminationState_tree, hf_megaco_Event_Buffer_Control, tvb,
tvb_current_offset, tokenlen,
- tvb_format_text(wmem_packet_scope(), tvb, tvb_current_offset,
+ tvb_format_text(pinfo->pool, tvb, tvb_current_offset,
tokenlen));
break;
@@ -3515,10 +3515,10 @@ dissect_megaco_descriptors(tvbuff_t *tvb, proto_tree *megaco_command_tree, packe
tvb_RBRKT = tvb_descriptors_end_offset;
switch ( token_index ){
case MEGACO_MODEM_TOKEN:
- dissect_megaco_modemdescriptor(tvb, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
+ dissect_megaco_modemdescriptor(tvb, pinfo, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
break;
case MEGACO_MUX_TOKEN:
- dissect_megaco_multiplexdescriptor(tvb, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
+ dissect_megaco_multiplexdescriptor(tvb, pinfo, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
break;
case MEGACO_MEDIA_TOKEN:
/*TODO: Move this to the top when all branches fixed !!!*/
@@ -3547,7 +3547,7 @@ dissect_megaco_descriptors(tvbuff_t *tvb, proto_tree *megaco_command_tree, packe
dissect_megaco_auditdescriptor(tvb, descriptor_tree, pinfo, tvb_RBRKT, tvb_previous_offset, top_tree, context);
break;
case MEGACO_DIGITMAP_TOKEN:
- dissect_megaco_digitmapdescriptor(tvb, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
+ dissect_megaco_digitmapdescriptor(tvb, pinfo, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
break;
case MEGACO_OE_TOKEN:
/* ObservedEventsToken */
@@ -3557,7 +3557,7 @@ dissect_megaco_descriptors(tvbuff_t *tvb, proto_tree *megaco_command_tree, packe
dissect_megaco_topologydescriptor(tvb, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
break;
case MEGACO_PACKAGES_TOKEN:
- dissect_megaco_Packagesdescriptor(tvb, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
+ dissect_megaco_Packagesdescriptor(tvb, pinfo, descriptor_tree, tvb_RBRKT, tvb_previous_offset);
break;
default:
tokenlen = (tvb_RBRKT+1) - tvb_previous_offset;
diff --git a/epan/dissectors/packet-memcache.c b/epan/dissectors/packet-memcache.c
index 61418c62db..d550ed88d5 100644
--- a/epan/dissectors/packet-memcache.c
+++ b/epan/dissectors/packet-memcache.c
@@ -207,10 +207,10 @@ typedef enum _memcache_type {
} memcache_type_t;
/* desegmentation of MEMCACHE header */
-static gboolean memcache_desegment_headers = TRUE;
+static bool memcache_desegment_headers = true;
/* desegmentation of MEMCACHE payload */
-static gboolean memcache_desegment_body = TRUE;
+static bool memcache_desegment_body = true;
/* should refer to either the request or the response dissector.
*/
diff --git a/epan/dissectors/packet-metamako.c b/epan/dissectors/packet-metamako.c
index 4910dba743..89da135f16 100644
--- a/epan/dissectors/packet-metamako.c
+++ b/epan/dissectors/packet-metamako.c
@@ -35,11 +35,11 @@ void proto_register_metamako(void);
void proto_reg_handoff_metamako(void);
/* FCS Options */
-static gboolean metamako_check_fcs = TRUE;
+static bool metamako_check_fcs = true;
static gint metamako_fcs_len = -1; /* By default, try to autodetect the FCS. */
/* Heuristic Options */
static gint metamako_trailer_present = -1; /* By default, try to autodetect the trailer. */
-static range_t* metamako_trailer_secs_bounds = NULL;
+static range_t* metamako_trailer_secs_bounds;
static guint metamako_trailer_days_diff_limit = TRAILER_DAYS_DIFF_LIMIT_DFLT;
/* Protocols and Header Fields */
diff --git a/epan/dissectors/packet-mgcp.c b/epan/dissectors/packet-mgcp.c
index 59c1e1d25f..26516f6389 100644
--- a/epan/dissectors/packet-mgcp.c
+++ b/epan/dissectors/packet-mgcp.c
@@ -277,8 +277,8 @@ static guint global_mgcp_gateway_tcp_port = TCP_PORT_MGCP_GATEWAY;
static guint global_mgcp_gateway_udp_port = UDP_PORT_MGCP_GATEWAY;
static guint global_mgcp_callagent_tcp_port = TCP_PORT_MGCP_CALLAGENT;
static guint global_mgcp_callagent_udp_port = UDP_PORT_MGCP_CALLAGENT;
-static gboolean global_mgcp_raw_text = FALSE;
-static gboolean global_mgcp_message_count = FALSE;
+static bool global_mgcp_raw_text;
+static bool global_mgcp_message_count;
/* Some basic utility functions that are specific to this dissector */
static gboolean is_mgcp_verb(tvbuff_t *tvb, gint offset, gint maxlength, const gchar **verb_name);
@@ -1224,7 +1224,7 @@ static void dissect_mgcp_firstline(tvbuff_t *tvb, packet_info *pinfo, proto_tree
if (mgcp_type == MGCP_REQUEST)
{
endpointId = tvb_format_text(pinfo->pool, tvb, tvb_previous_offset, tokenlen);
- mi->endpointId = wmem_strdup(wmem_packet_scope(), endpointId);
+ mi->endpointId = wmem_strdup(pinfo->pool, endpointId);
proto_tree_add_string(tree, hf_mgcp_req_endpoint, tvb,
tvb_previous_offset, tokenlen, endpointId);
}
diff --git a/epan/dissectors/packet-mka.c b/epan/dissectors/packet-mka.c
index 24866d035b..e7ab83cb55 100644
--- a/epan/dissectors/packet-mka.c
+++ b/epan/dissectors/packet-mka.c
@@ -192,9 +192,9 @@ typedef struct _mka_ckn_info {
gchar *name;
} mka_ckn_info_t;
-static mka_ckn_info_t *mka_ckn_uat_data = NULL;
-static guint num_mka_ckn_uat_data = 0;
-static GHashTable *ht_mka_ckn = NULL;
+static mka_ckn_info_t *mka_ckn_uat_data;
+static guint num_mka_ckn_uat_data;
+static GHashTable *ht_mka_ckn;
UAT_BUFFER_CB_DEF(mka_ckn_uat_data, ckn, mka_ckn_info_t, key.ckn, key.ckn_len)
UAT_CSTRING_CB_DEF(mka_ckn_uat_data, name, mka_ckn_info_t)
diff --git a/epan/dissectors/packet-mle.c b/epan/dissectors/packet-mle.c
index 38940c3093..9d2f9ae2d0 100644
--- a/epan/dissectors/packet-mle.c
+++ b/epan/dissectors/packet-mle.c
@@ -189,7 +189,7 @@ static dissector_handle_t thread_mc_handle;
#define UDP_PORT_MLE_RANGE "19788" /* IANA registered */
/* boolean value set if the MIC must be ok before payload is dissected */
-static gboolean mle_mic_ok = FALSE;
+static bool mle_mic_ok;
static wmem_tree_t* mle_key_hash_handlers;
diff --git a/epan/dissectors/packet-mms.c b/epan/dissectors/packet-mms.c
index 1eb93e14fd..9231c1341a 100644
--- a/epan/dissectors/packet-mms.c
+++ b/epan/dissectors/packet-mms.c
@@ -21,6 +21,7 @@
#include <epan/asn1.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
+#include <epan/conversation.h>
#include "packet-ber.h"
#include "packet-acse.h"
@@ -33,9 +34,59 @@
void proto_register_mms(void);
void proto_reg_handoff_mms(void);
+static bool use_iec61850_mapping = TRUE;
+
/* Initialize the protocol and registered fields */
static int proto_mms;
+/* Conversation */
+static int hf_mms_response_in;
+static int hf_mms_response_to;
+static int hf_mms_response_time;
+
+/* IEC 61850-8-1 filters */
+static int hf_mms_iec61850_rptid;
+static int hf_mms_iec61850_reported_optflds;
+static int hf_mms_iec61850_seqnum;
+static int hf_mms_iec61850_timeofentry;
+static int hf_mms_iec61850_datset;
+static int hf_mms_iec61850_bufovfl;
+static int hf_mms_iec61850_confrev;
+static int hf_mms_iec61850_inclusion_bitstring;
+static int hf_mms_iec61850_ctlModel;
+
+static int hf_mms_iec61850_QualityC0;
+static int hf_mms_iec61850_Quality20;
+static int hf_mms_iec61850_Quality10;
+static int hf_mms_iec61850_Quality8;
+static int hf_mms_iec61850_Quality4;
+static int hf_mms_iec61850_Quality2;
+static int hf_mms_iec61850_Quality1;
+static int hf_mms_iec61850_Quality0080;
+static int hf_mms_iec61850_Quality0040;
+static int hf_mms_iec61850_Quality0020;
+static int hf_mms_iec61850_Quality0010;
+static int hf_mms_iec61850_Quality0008;
+static int hf_mms_iec61850_quality_bitstring;
+static int hf_mms_iec61850_timequality80;
+static int hf_mms_iec61850_timequality40;
+static int hf_mms_iec61850_timequality20;
+static int hf_mms_iec61850_timequality1F;
+static int hf_mms_iec61850_check_bitstring;
+static int hf_mms_iec61850_check_b1;
+static int hf_mms_iec61850_check_b0;
+static int hf_mms_iec61850_orcategory;
+static int hf_mms_iec61850_beh$stval;
+static int hf_mms_iec61850_mod$stval;
+static int hf_mms_iec61850_health$stval;
+static int hf_mms_iec61850_ctlval;
+static int hf_mms_iec61850_origin;
+static int hf_mms_iec61850_origin_orcat;
+static int hf_mms_iec61850_origin_orident;
+static int hf_mms_iec61850_ctlNum;
+static int hf_mms_iec61850_T;
+static int hf_mms_iec61850_test;
+
static int hf_mms_confirmed_RequestPDU; /* Confirmed_RequestPDU */
static int hf_mms_confirmed_ResponsePDU; /* Confirmed_ResponsePDU */
static int hf_mms_confirmed_ErrorPDU; /* Confirmed_ErrorPDU */
@@ -198,7 +249,7 @@ static int hf_mms_reportEventConditionStatus_01; /* ReportEventConditionStatus_
static int hf_mms_alterEventConditionMonitoring_01; /* AlterEventConditionMonitoring_Response */
static int hf_mms_triggerEvent_01; /* TriggerEvent_Response */
static int hf_mms_defineEventAction_01; /* DefineEventAction_Response */
-static int hf_mms_deleteEventAction; /* DeleteEventAction_Response */
+static int hf_mms_confirmedServiceRequest_deleteEventAction_01; /* DeleteEventAction_Response */
static int hf_mms_getEventActionAttributes_01; /* GetEventActionAttributes_Response */
static int hf_mms_reportActionStatus; /* ReportEventActionStatus_Response */
static int hf_mms_defineEventEnrollment_01; /* DefineEventEnrollment_Response */
@@ -225,7 +276,7 @@ static int hf_mms_FileName_item; /* GraphicString */
static int hf_mms_vmd_specific; /* Identifier */
static int hf_mms_domain_specific; /* T_domain_specific */
static int hf_mms_domainId; /* Identifier */
-static int hf_mms_itemId; /* Identifier */
+static int hf_mms_objectName_domain_specific_itemId; /* ObjectName_domain_specific_itemid */
static int hf_mms_aa_specific; /* Identifier */
static int hf_mms_ap_title; /* T_ap_title */
static int hf_mms_ap_invocation_id; /* T_ap_invocation_id */
@@ -307,12 +358,12 @@ static int hf_mms_conclude_errorPDU; /* T_conclude_errorPDU */
static int hf_mms_vmdLogicalStatus; /* T_vmdLogicalStatus */
static int hf_mms_vmdPhysicalStatus; /* T_vmdPhysicalStatus */
static int hf_mms_localDetail; /* BIT_STRING_SIZE_0_128 */
-static int hf_mms_extendedObjectClass; /* T_extendedObjectClass */
-static int hf_mms_objectClass; /* T_objectClass */
-static int hf_mms_objectScope; /* T_objectScope */
static int hf_mms_vmdSpecific; /* NULL */
static int hf_mms_domainSpecific; /* Identifier */
static int hf_mms_aaSpecific; /* NULL */
+static int hf_mms_extendedObjectClass; /* T_extendedObjectClass */
+static int hf_mms_objectClass; /* ObjectClass */
+static int hf_mms_objectScope; /* ObjectScope */
static int hf_mms_getNameList_Request_continueAfter; /* Identifier */
static int hf_mms_listOfIdentifier; /* SEQUENCE_OF_Identifier */
static int hf_mms_listOfIdentifier_item; /* Identifier */
@@ -323,7 +374,7 @@ static int hf_mms_revision; /* VisibleString */
static int hf_mms_listOfAbstractSyntaxes; /* T_listOfAbstractSyntaxes */
static int hf_mms_listOfAbstractSyntaxes_item; /* OBJECT_IDENTIFIER */
static int hf_mms_extendedObjectClass_01; /* T_extendedObjectClass_01 */
-static int hf_mms_objectClass_01; /* T_objectClass_01 */
+static int hf_mms_objectClass_01; /* T_objectClass */
static int hf_mms_currentName; /* ObjectName */
static int hf_mms_newIdentifier; /* Identifier */
static int hf_mms_getCapabilityList_Request_continueAfter; /* VisibleString */
@@ -403,12 +454,13 @@ static int hf_mms_specificationWithResult; /* BOOLEAN */
static int hf_mms_variableAccessSpecificatn; /* VariableAccessSpecification */
static int hf_mms_listOfAccessResult; /* SEQUENCE_OF_AccessResult */
static int hf_mms_listOfAccessResult_item; /* AccessResult */
-static int hf_mms_listOfData; /* SEQUENCE_OF_Data */
+static int hf_mms_listOfData; /* T_listOfData */
static int hf_mms_listOfData_item; /* Data */
static int hf_mms_Write_Response_item; /* Write_Response_item */
static int hf_mms_failure; /* DataAccessError */
static int hf_mms_success; /* NULL */
static int hf_mms_variableAccessSpecification; /* VariableAccessSpecification */
+static int hf_mms_listOfAccessResult_01; /* T_listOfAccessResult */
static int hf_mms_name; /* ObjectName */
static int hf_mms_address; /* Address */
static int hf_mms_typeSpecification; /* TypeSpecification */
@@ -435,16 +487,16 @@ static int hf_mms_listOfTypeName_item; /* ObjectName */
static int hf_mms_success_01; /* Data */
static int hf_mms_array_01; /* SEQUENCE_OF_Data */
static int hf_mms_array_item; /* Data */
-static int hf_mms_structure_01; /* SEQUENCE_OF_Data */
+static int hf_mms_structure_01; /* T_structure_01 */
static int hf_mms_structure_item; /* Data */
-static int hf_mms_boolean_01; /* BOOLEAN */
-static int hf_mms_data_bit_string; /* BIT_STRING */
-static int hf_mms_integer_01; /* INTEGER */
-static int hf_mms_unsigned_01; /* INTEGER */
+static int hf_mms_boolean_01; /* T_boolean */
+static int hf_mms_data_bit_string; /* T_data_bit_string */
+static int hf_mms_integer_01; /* T_integer */
+static int hf_mms_unsigned_01; /* T_unsigned */
static int hf_mms_floating_point; /* FloatingPoint */
-static int hf_mms_data_octet_string; /* OCTET_STRING */
-static int hf_mms_data_visible_string; /* VisibleString */
-static int hf_mms_data_binary_time; /* TimeOfDay */
+static int hf_mms_data_octet_string; /* T_data_octet_string */
+static int hf_mms_data_visible_string; /* T_data_visible_string */
+static int hf_mms_data_binary_time; /* T_data_binary_time */
static int hf_mms_bcd_01; /* INTEGER */
static int hf_mms_booleanArray; /* BIT_STRING */
static int hf_mms_objId_01; /* OBJECT_IDENTIFIER */
@@ -617,6 +669,16 @@ static int hf_mms_filename; /* FileName */
static int hf_mms_sizeOfFile; /* Unsigned32 */
static int hf_mms_lastModified; /* GeneralizedTime */
/* named bits */
+static int hf_mms_ReportedOptFlds_reserved;
+static int hf_mms_ReportedOptFlds_sequence_number;
+static int hf_mms_ReportedOptFlds_report_time_stamp;
+static int hf_mms_ReportedOptFlds_reason_for_inclusion;
+static int hf_mms_ReportedOptFlds_data_set_name;
+static int hf_mms_ReportedOptFlds_data_reference;
+static int hf_mms_ReportedOptFlds_buffer_overflow;
+static int hf_mms_ReportedOptFlds_entryID;
+static int hf_mms_ReportedOptFlds_conf_revision;
+static int hf_mms_ReportedOptFlds_segmentation;
static int hf_mms_ParameterSupportOptions_str1;
static int hf_mms_ParameterSupportOptions_str2;
static int hf_mms_ParameterSupportOptions_vnam;
@@ -722,222 +784,228 @@ static int hf_mms_Transitions_idle_to_active;
static int hf_mms_Transitions_any_to_deleted;
/* Initialize the subtree pointers */
-static gint ett_mms;
-static gint ett_mms_MMSpdu;
-static gint ett_mms_Confirmed_RequestPDU;
-static gint ett_mms_SEQUENCE_OF_Modifier;
-static gint ett_mms_Unconfirmed_PDU;
-static gint ett_mms_Confirmed_ResponsePDU;
-static gint ett_mms_Confirmed_ErrorPDU;
-static gint ett_mms_UnconfirmedService;
-static gint ett_mms_Modifier;
-static gint ett_mms_ConfirmedServiceRequest;
-static gint ett_mms_CS_Request_Detail;
-static gint ett_mms_ConfirmedServiceResponse;
-static gint ett_mms_FileName;
-static gint ett_mms_ObjectName;
-static gint ett_mms_T_domain_specific;
-static gint ett_mms_ApplicationReference;
-static gint ett_mms_Initiate_RequestPDU;
-static gint ett_mms_InitRequestDetail;
-static gint ett_mms_Initiate_ResponsePDU;
-static gint ett_mms_InitResponseDetail;
-static gint ett_mms_ParameterSupportOptions;
-static gint ett_mms_ServiceSupportOptions;
-static gint ett_mms_Cancel_ErrorPDU;
-static gint ett_mms_ServiceError;
-static gint ett_mms_T_errorClass;
-static gint ett_mms_T_serviceSpecificInformation;
-static gint ett_mms_AdditionalService_Error;
-static gint ett_mms_RemoveEventConditionListReference_Error;
-static gint ett_mms_InitiateUnitControl_Error;
-static gint ett_mms_StartUnitControl_Error;
-static gint ett_mms_StopUnitControl_Error;
-static gint ett_mms_DeleteUnitControl_Error;
-static gint ett_mms_LoadUnitControlFromFile_Error;
-static gint ett_mms_RejectPDU;
-static gint ett_mms_T_rejectReason;
-static gint ett_mms_Status_Response;
-static gint ett_mms_GetNameList_Request;
-static gint ett_mms_T_extendedObjectClass;
-static gint ett_mms_T_objectScope;
-static gint ett_mms_GetNameList_Response;
-static gint ett_mms_SEQUENCE_OF_Identifier;
-static gint ett_mms_Identify_Response;
-static gint ett_mms_T_listOfAbstractSyntaxes;
-static gint ett_mms_Rename_Request;
-static gint ett_mms_T_extendedObjectClass_01;
-static gint ett_mms_GetCapabilityList_Request;
-static gint ett_mms_GetCapabilityList_Response;
-static gint ett_mms_T_listOfCapabilities;
-static gint ett_mms_InitiateDownloadSequence_Request;
-static gint ett_mms_T_listOfCapabilities_01;
-static gint ett_mms_DownloadSegment_Response;
-static gint ett_mms_T_loadData;
-static gint ett_mms_TerminateDownloadSequence_Request;
-static gint ett_mms_InitiateUploadSequence_Response;
-static gint ett_mms_T_listOfCapabilities_02;
-static gint ett_mms_UploadSegment_Response;
-static gint ett_mms_T_loadData_01;
-static gint ett_mms_RequestDomainDownload_Request;
-static gint ett_mms_T_listOfCapabilities_03;
-static gint ett_mms_RequestDomainUpload_Request;
-static gint ett_mms_LoadDomainContent_Request;
-static gint ett_mms_T_listOfCapabilities_04;
-static gint ett_mms_StoreDomainContent_Request;
-static gint ett_mms_GetDomainAttributes_Response;
-static gint ett_mms_T_listOfCapabilities_05;
-static gint ett_mms_CreateProgramInvocation_Request;
-static gint ett_mms_Start_Request;
-static gint ett_mms_T_executionArgument;
-static gint ett_mms_Stop_Request;
-static gint ett_mms_Resume_Request;
-static gint ett_mms_T_executionArgument_01;
-static gint ett_mms_Reset_Request;
-static gint ett_mms_Kill_Request;
-static gint ett_mms_GetProgramInvocationAttributes_Response;
-static gint ett_mms_T_executionArgument_02;
-static gint ett_mms_TypeSpecification;
-static gint ett_mms_T_array;
-static gint ett_mms_T_structure;
-static gint ett_mms_T_components;
-static gint ett_mms_T_components_item;
-static gint ett_mms_AlternateAccess;
-static gint ett_mms_AlternateAccess_item;
-static gint ett_mms_T_named;
-static gint ett_mms_AlternateAccessSelection;
-static gint ett_mms_T_selectAlternateAccess;
-static gint ett_mms_T_accessSelection;
-static gint ett_mms_T_indexRange;
-static gint ett_mms_T_selectAccess;
-static gint ett_mms_T_indexRange_01;
-static gint ett_mms_Read_Request;
-static gint ett_mms_Read_Response;
-static gint ett_mms_SEQUENCE_OF_AccessResult;
-static gint ett_mms_Write_Request;
-static gint ett_mms_SEQUENCE_OF_Data;
-static gint ett_mms_Write_Response;
-static gint ett_mms_Write_Response_item;
-static gint ett_mms_InformationReport;
-static gint ett_mms_GetVariableAccessAttributes_Request;
-static gint ett_mms_GetVariableAccessAttributes_Response;
-static gint ett_mms_DefineNamedVariable_Request;
-static gint ett_mms_DefineScatteredAccess_Request;
-static gint ett_mms_GetScatteredAccessAttributes_Response;
-static gint ett_mms_DeleteVariableAccess_Request;
-static gint ett_mms_SEQUENCE_OF_ObjectName;
-static gint ett_mms_DeleteVariableAccess_Response;
-static gint ett_mms_DefineNamedVariableList_Request;
-static gint ett_mms_T_listOfVariable;
-static gint ett_mms_T_listOfVariable_item;
-static gint ett_mms_GetNamedVariableListAttributes_Response;
-static gint ett_mms_T_listOfVariable_01;
-static gint ett_mms_T_listOfVariable_item_01;
-static gint ett_mms_DeleteNamedVariableList_Request;
-static gint ett_mms_DeleteNamedVariableList_Response;
-static gint ett_mms_DefineNamedType_Request;
-static gint ett_mms_GetNamedTypeAttributes_Response;
-static gint ett_mms_DeleteNamedType_Request;
-static gint ett_mms_DeleteNamedType_Response;
-static gint ett_mms_AccessResult;
-static gint ett_mms_Data;
-static gint ett_mms_VariableAccessSpecification;
-static gint ett_mms_T_listOfVariable_02;
-static gint ett_mms_T_listOfVariable_item_02;
-static gint ett_mms_ScatteredAccessDescription;
-static gint ett_mms_ScatteredAccessDescription_item;
-static gint ett_mms_VariableSpecification;
-static gint ett_mms_T_variableDescription;
-static gint ett_mms_Address;
-static gint ett_mms_TakeControl_Request;
-static gint ett_mms_TakeControl_Response;
-static gint ett_mms_RelinquishControl_Request;
-static gint ett_mms_DefineSemaphore_Request;
-static gint ett_mms_ReportSemaphoreStatus_Response;
-static gint ett_mms_ReportPoolSemaphoreStatus_Request;
-static gint ett_mms_ReportPoolSemaphoreStatus_Response;
-static gint ett_mms_T_listOfNamedTokens;
-static gint ett_mms_T_listOfNamedTokens_item;
-static gint ett_mms_ReportSemaphoreEntryStatus_Request;
-static gint ett_mms_ReportSemaphoreEntryStatus_Response;
-static gint ett_mms_SEQUENCE_OF_SemaphoreEntry;
-static gint ett_mms_AttachToSemaphore;
-static gint ett_mms_SemaphoreEntry;
-static gint ett_mms_Input_Request;
-static gint ett_mms_T_listOfPromptData;
-static gint ett_mms_Output_Request;
-static gint ett_mms_T_listOfOutputData;
-static gint ett_mms_DefineEventCondition_Request;
-static gint ett_mms_DeleteEventCondition_Request;
-static gint ett_mms_GetEventConditionAttributes_Response;
-static gint ett_mms_T_monitoredVariable;
-static gint ett_mms_ReportEventConditionStatus_Response;
-static gint ett_mms_AlterEventConditionMonitoring_Request;
-static gint ett_mms_TriggerEvent_Request;
-static gint ett_mms_DefineEventAction_Request;
-static gint ett_mms_DeleteEventAction_Request;
-static gint ett_mms_GetEventActionAttributes_Response;
-static gint ett_mms_DefineEventEnrollment_Request;
-static gint ett_mms_DeleteEventEnrollment_Request;
-static gint ett_mms_GetEventEnrollmentAttributes_Request;
-static gint ett_mms_EventEnrollment;
-static gint ett_mms_T_eventConditionName;
-static gint ett_mms_T_eventActionName;
-static gint ett_mms_GetEventEnrollmentAttributes_Response;
-static gint ett_mms_SEQUENCE_OF_EventEnrollment;
-static gint ett_mms_ReportEventEnrollmentStatus_Response;
-static gint ett_mms_AlterEventEnrollment_Request;
-static gint ett_mms_AlterEventEnrollment_Response;
-static gint ett_mms_T_currentState;
-static gint ett_mms_AcknowledgeEventNotification_Request;
-static gint ett_mms_GetAlarmSummary_Request;
-static gint ett_mms_T_severityFilter;
-static gint ett_mms_GetAlarmSummary_Response;
-static gint ett_mms_SEQUENCE_OF_AlarmSummary;
-static gint ett_mms_AlarmSummary;
-static gint ett_mms_GetAlarmEnrollmentSummary_Request;
-static gint ett_mms_T_severityFilter_01;
-static gint ett_mms_GetAlarmEnrollmentSummary_Response;
-static gint ett_mms_SEQUENCE_OF_AlarmEnrollmentSummary;
-static gint ett_mms_AlarmEnrollmentSummary;
-static gint ett_mms_EventNotification;
-static gint ett_mms_T_eventConditionName_01;
-static gint ett_mms_T_actionResult;
-static gint ett_mms_T_eventActionResult;
-static gint ett_mms_AttachToEventCondition;
-static gint ett_mms_EventTime;
-static gint ett_mms_Transitions;
-static gint ett_mms_ReadJournal_Request;
-static gint ett_mms_T_rangeStartSpecification;
-static gint ett_mms_T_rangeStopSpecification;
-static gint ett_mms_T_listOfVariables;
-static gint ett_mms_T_entryToStartAfter;
-static gint ett_mms_ReadJournal_Response;
-static gint ett_mms_SEQUENCE_OF_JournalEntry;
-static gint ett_mms_JournalEntry;
-static gint ett_mms_WriteJournal_Request;
-static gint ett_mms_SEQUENCE_OF_EntryContent;
-static gint ett_mms_InitializeJournal_Request;
-static gint ett_mms_T_limitSpecification;
-static gint ett_mms_ReportJournalStatus_Response;
-static gint ett_mms_CreateJournal_Request;
-static gint ett_mms_DeleteJournal_Request;
-static gint ett_mms_EntryContent;
-static gint ett_mms_T_entryForm;
-static gint ett_mms_T_data;
-static gint ett_mms_T_event;
-static gint ett_mms_T_listOfVariables_01;
-static gint ett_mms_T_listOfVariables_item;
-static gint ett_mms_ObtainFile_Request;
-static gint ett_mms_FileOpen_Request;
-static gint ett_mms_FileOpen_Response;
-static gint ett_mms_FileRead_Response;
-static gint ett_mms_FileRename_Request;
-static gint ett_mms_FileDirectory_Request;
-static gint ett_mms_FileDirectory_Response;
-static gint ett_mms_SEQUENCE_OF_DirectoryEntry;
-static gint ett_mms_DirectoryEntry;
-static gint ett_mms_FileAttributes;
+static int ett_mms;
+static int ett_mms_iec61850_quality_bitstring;
+static int ett_mms_iec61850_check_bitstring;
+static int ett_mms_ReportedOptFlds;
+static int ett_mms_MMSpdu;
+static int ett_mms_Confirmed_RequestPDU;
+static int ett_mms_SEQUENCE_OF_Modifier;
+static int ett_mms_Unconfirmed_PDU;
+static int ett_mms_Confirmed_ResponsePDU;
+static int ett_mms_Confirmed_ErrorPDU;
+static int ett_mms_UnconfirmedService;
+static int ett_mms_Modifier;
+static int ett_mms_ConfirmedServiceRequest;
+static int ett_mms_CS_Request_Detail;
+static int ett_mms_ConfirmedServiceResponse;
+static int ett_mms_FileName;
+static int ett_mms_ObjectName;
+static int ett_mms_T_domain_specific;
+static int ett_mms_ApplicationReference;
+static int ett_mms_Initiate_RequestPDU;
+static int ett_mms_InitRequestDetail;
+static int ett_mms_Initiate_ResponsePDU;
+static int ett_mms_InitResponseDetail;
+static int ett_mms_ParameterSupportOptions;
+static int ett_mms_ServiceSupportOptions;
+static int ett_mms_Cancel_ErrorPDU;
+static int ett_mms_ServiceError;
+static int ett_mms_T_errorClass;
+static int ett_mms_T_serviceSpecificInformation;
+static int ett_mms_AdditionalService_Error;
+static int ett_mms_RemoveEventConditionListReference_Error;
+static int ett_mms_InitiateUnitControl_Error;
+static int ett_mms_StartUnitControl_Error;
+static int ett_mms_StopUnitControl_Error;
+static int ett_mms_DeleteUnitControl_Error;
+static int ett_mms_LoadUnitControlFromFile_Error;
+static int ett_mms_RejectPDU;
+static int ett_mms_T_rejectReason;
+static int ett_mms_Status_Response;
+static int ett_mms_ObjectScope;
+static int ett_mms_GetNameList_Request;
+static int ett_mms_T_extendedObjectClass;
+static int ett_mms_GetNameList_Response;
+static int ett_mms_SEQUENCE_OF_Identifier;
+static int ett_mms_Identify_Response;
+static int ett_mms_T_listOfAbstractSyntaxes;
+static int ett_mms_Rename_Request;
+static int ett_mms_T_extendedObjectClass_01;
+static int ett_mms_GetCapabilityList_Request;
+static int ett_mms_GetCapabilityList_Response;
+static int ett_mms_T_listOfCapabilities;
+static int ett_mms_InitiateDownloadSequence_Request;
+static int ett_mms_T_listOfCapabilities_01;
+static int ett_mms_DownloadSegment_Response;
+static int ett_mms_T_loadData;
+static int ett_mms_TerminateDownloadSequence_Request;
+static int ett_mms_InitiateUploadSequence_Response;
+static int ett_mms_T_listOfCapabilities_02;
+static int ett_mms_UploadSegment_Response;
+static int ett_mms_T_loadData_01;
+static int ett_mms_RequestDomainDownload_Request;
+static int ett_mms_T_listOfCapabilities_03;
+static int ett_mms_RequestDomainUpload_Request;
+static int ett_mms_LoadDomainContent_Request;
+static int ett_mms_T_listOfCapabilities_04;
+static int ett_mms_StoreDomainContent_Request;
+static int ett_mms_GetDomainAttributes_Response;
+static int ett_mms_T_listOfCapabilities_05;
+static int ett_mms_CreateProgramInvocation_Request;
+static int ett_mms_Start_Request;
+static int ett_mms_T_executionArgument;
+static int ett_mms_Stop_Request;
+static int ett_mms_Resume_Request;
+static int ett_mms_T_executionArgument_01;
+static int ett_mms_Reset_Request;
+static int ett_mms_Kill_Request;
+static int ett_mms_GetProgramInvocationAttributes_Response;
+static int ett_mms_T_executionArgument_02;
+static int ett_mms_TypeSpecification;
+static int ett_mms_T_array;
+static int ett_mms_T_structure;
+static int ett_mms_T_components;
+static int ett_mms_T_components_item;
+static int ett_mms_AlternateAccess;
+static int ett_mms_AlternateAccess_item;
+static int ett_mms_T_named;
+static int ett_mms_AlternateAccessSelection;
+static int ett_mms_T_selectAlternateAccess;
+static int ett_mms_T_accessSelection;
+static int ett_mms_T_indexRange;
+static int ett_mms_T_selectAccess;
+static int ett_mms_T_indexRange_01;
+static int ett_mms_Read_Request;
+static int ett_mms_Read_Response;
+static int ett_mms_SEQUENCE_OF_AccessResult;
+static int ett_mms_Write_Request;
+static int ett_mms_T_listOfData;
+static int ett_mms_Write_Response;
+static int ett_mms_Write_Response_item;
+static int ett_mms_InformationReport;
+static int ett_mms_T_listOfAccessResult;
+static int ett_mms_GetVariableAccessAttributes_Request;
+static int ett_mms_GetVariableAccessAttributes_Response;
+static int ett_mms_DefineNamedVariable_Request;
+static int ett_mms_DefineScatteredAccess_Request;
+static int ett_mms_GetScatteredAccessAttributes_Response;
+static int ett_mms_DeleteVariableAccess_Request;
+static int ett_mms_SEQUENCE_OF_ObjectName;
+static int ett_mms_DeleteVariableAccess_Response;
+static int ett_mms_DefineNamedVariableList_Request;
+static int ett_mms_T_listOfVariable;
+static int ett_mms_T_listOfVariable_item;
+static int ett_mms_GetNamedVariableListAttributes_Response;
+static int ett_mms_T_listOfVariable_01;
+static int ett_mms_T_listOfVariable_item_01;
+static int ett_mms_DeleteNamedVariableList_Request;
+static int ett_mms_DeleteNamedVariableList_Response;
+static int ett_mms_DefineNamedType_Request;
+static int ett_mms_GetNamedTypeAttributes_Response;
+static int ett_mms_DeleteNamedType_Request;
+static int ett_mms_DeleteNamedType_Response;
+static int ett_mms_AccessResult;
+static int ett_mms_Data;
+static int ett_mms_SEQUENCE_OF_Data;
+static int ett_mms_T_structure_01;
+static int ett_mms_VariableAccessSpecification;
+static int ett_mms_T_listOfVariable_02;
+static int ett_mms_T_listOfVariable_item_02;
+static int ett_mms_ScatteredAccessDescription;
+static int ett_mms_ScatteredAccessDescription_item;
+static int ett_mms_VariableSpecification;
+static int ett_mms_T_variableDescription;
+static int ett_mms_Address;
+static int ett_mms_TakeControl_Request;
+static int ett_mms_TakeControl_Response;
+static int ett_mms_RelinquishControl_Request;
+static int ett_mms_DefineSemaphore_Request;
+static int ett_mms_ReportSemaphoreStatus_Response;
+static int ett_mms_ReportPoolSemaphoreStatus_Request;
+static int ett_mms_ReportPoolSemaphoreStatus_Response;
+static int ett_mms_T_listOfNamedTokens;
+static int ett_mms_T_listOfNamedTokens_item;
+static int ett_mms_ReportSemaphoreEntryStatus_Request;
+static int ett_mms_ReportSemaphoreEntryStatus_Response;
+static int ett_mms_SEQUENCE_OF_SemaphoreEntry;
+static int ett_mms_AttachToSemaphore;
+static int ett_mms_SemaphoreEntry;
+static int ett_mms_Input_Request;
+static int ett_mms_T_listOfPromptData;
+static int ett_mms_Output_Request;
+static int ett_mms_T_listOfOutputData;
+static int ett_mms_DefineEventCondition_Request;
+static int ett_mms_DeleteEventCondition_Request;
+static int ett_mms_GetEventConditionAttributes_Response;
+static int ett_mms_T_monitoredVariable;
+static int ett_mms_ReportEventConditionStatus_Response;
+static int ett_mms_AlterEventConditionMonitoring_Request;
+static int ett_mms_TriggerEvent_Request;
+static int ett_mms_DefineEventAction_Request;
+static int ett_mms_DeleteEventAction_Request;
+static int ett_mms_GetEventActionAttributes_Response;
+static int ett_mms_DefineEventEnrollment_Request;
+static int ett_mms_DeleteEventEnrollment_Request;
+static int ett_mms_GetEventEnrollmentAttributes_Request;
+static int ett_mms_EventEnrollment;
+static int ett_mms_T_eventConditionName;
+static int ett_mms_T_eventActionName;
+static int ett_mms_GetEventEnrollmentAttributes_Response;
+static int ett_mms_SEQUENCE_OF_EventEnrollment;
+static int ett_mms_ReportEventEnrollmentStatus_Response;
+static int ett_mms_AlterEventEnrollment_Request;
+static int ett_mms_AlterEventEnrollment_Response;
+static int ett_mms_T_currentState;
+static int ett_mms_AcknowledgeEventNotification_Request;
+static int ett_mms_GetAlarmSummary_Request;
+static int ett_mms_T_severityFilter;
+static int ett_mms_GetAlarmSummary_Response;
+static int ett_mms_SEQUENCE_OF_AlarmSummary;
+static int ett_mms_AlarmSummary;
+static int ett_mms_GetAlarmEnrollmentSummary_Request;
+static int ett_mms_T_severityFilter_01;
+static int ett_mms_GetAlarmEnrollmentSummary_Response;
+static int ett_mms_SEQUENCE_OF_AlarmEnrollmentSummary;
+static int ett_mms_AlarmEnrollmentSummary;
+static int ett_mms_EventNotification;
+static int ett_mms_T_eventConditionName_01;
+static int ett_mms_T_actionResult;
+static int ett_mms_T_eventActionResult;
+static int ett_mms_AttachToEventCondition;
+static int ett_mms_EventTime;
+static int ett_mms_Transitions;
+static int ett_mms_ReadJournal_Request;
+static int ett_mms_T_rangeStartSpecification;
+static int ett_mms_T_rangeStopSpecification;
+static int ett_mms_T_listOfVariables;
+static int ett_mms_T_entryToStartAfter;
+static int ett_mms_ReadJournal_Response;
+static int ett_mms_SEQUENCE_OF_JournalEntry;
+static int ett_mms_JournalEntry;
+static int ett_mms_WriteJournal_Request;
+static int ett_mms_SEQUENCE_OF_EntryContent;
+static int ett_mms_InitializeJournal_Request;
+static int ett_mms_T_limitSpecification;
+static int ett_mms_ReportJournalStatus_Response;
+static int ett_mms_CreateJournal_Request;
+static int ett_mms_DeleteJournal_Request;
+static int ett_mms_EntryContent;
+static int ett_mms_T_entryForm;
+static int ett_mms_T_data;
+static int ett_mms_T_event;
+static int ett_mms_T_listOfVariables_01;
+static int ett_mms_T_listOfVariables_item;
+static int ett_mms_ObtainFile_Request;
+static int ett_mms_FileOpen_Request;
+static int ett_mms_FileOpen_Response;
+static int ett_mms_FileRead_Response;
+static int ett_mms_FileRename_Request;
+static int ett_mms_FileDirectory_Request;
+static int ett_mms_FileDirectory_Response;
+static int ett_mms_SEQUENCE_OF_DirectoryEntry;
+static int ett_mms_DirectoryEntry;
+static int ett_mms_FileAttributes;
static expert_field ei_mms_mal_timeofday_encoding;
static expert_field ei_mms_mal_utctime_encoding;
@@ -952,72 +1020,321 @@ static expert_field ei_mms_zero_pdu;
#define BUFFER_SIZE_PRE 10
#define BUFFER_SIZE_MORE 1024
+typedef enum _iec61850_8_1_vmd_specific {
+ IEC61850_8_1_NOT_SET = 0,
+ IEC61850_8_1_RPT
+} iec61850_8_1_vmd_specific;
+
+typedef enum _itemid_type {
+ IEC61850_ITEM_ID_NOT_SET = 0,
+ IEC61850_ITEM_ID_CTLMODEL,
+ IEC61850_ITEM_ID_Q,
+ IEC61850_ITEM_ID_OPER,
+ IEC61850_ITEM_ID_CHECK,
+ IEC61850_ITEM_ID_OR_CAT,
+ IEC61850_ITEM_ID_BEH$STVAL,
+ IEC61850_ITEM_ID_MOD$STVAL,
+ IEC61850_ITEM_ID_HEALTH$STVAL,
+ IEC61850_ITEM_ID_$BR$_OR_$RP$,
+ IEC61850_ITEM_ID_$SBOW
+} itemid_type;
+
+typedef struct _mms_transaction_t {
+ uint32_t req_frame;
+ uint32_t rep_frame;
+ nstime_t req_time;
+ /* Request info*/
+ itemid_type itemid; /* Numeric representation of ItemId substring */
+ int conf_serv_pdu_type_req;
+} mms_transaction_t;
+
+typedef struct _mms_conv_info_t {
+ wmem_map_t* pdus;
+} mms_conv_info_t;
+
typedef struct mms_private_data_t
{
- char preCinfo[BUFFER_SIZE_PRE];
- char moreCinfo[BUFFER_SIZE_MORE];
+ char preCinfo[BUFFER_SIZE_PRE];
+ char moreCinfo[BUFFER_SIZE_MORE];
} mms_private_data_t;
+#define MMS_CONFIRMED_REQUEST_PDU 0
+#define MMS_CONFIRMED_RESPONSE_PDU 1
+#define MMS_CONFIRMED_ERROR_PDU 2
+#define MMS_UNCONFIRMED_PDU 3
+#define MMS_REJECT_PDU 4
+#define MMS_CANCEL_REQUEST_PDU 5
+#define MMS_CANCEL_RESPONSE_PDU 6
+#define MMS_CANCEL_ERROR_PDU 7
+#define MMS_INITIATE_REQUEST_PDU 8
+#define MMS_INITIATE_RESPONSE_PDU 9
+#define MMS_INITIATE_ERROR_PDU 10
+#define MMS_CONCLUDE_REQUEST_PDU 11
+#define MMS_CONCLUDE_RESPONSE_PDU 12
+#define MMS_CONCLUDE_ERROR_PDU 13
+
+#define MMS_CONFIRMEDSERVICE_STATUS 0
+#define MMS_CONFIRMEDSERVICE_GETNAMELIST 1
+#define MMS_CONFIRMEDSERVICE_IDENTIFY 2
+#define MMS_CONFIRMEDSERVICE_RENAME 3
+#define MMS_CONFIRMEDSERVICE_READ 4
+#define MMS_CONFIRMEDSERVICE_WRITE 5
+#define MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES 6
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLE 7
+#define MMS_CONFIRMEDSERVICE_DEFINESCATTEREDACCESS 8
+#define MMS_CONFIRMEDSERVICE_GETSCATTEREDACCESSATTRIBUTES 9
+#define MMS_CONFIRMEDSERVICE_DELETEVARIABLEACCESS 10
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDVARIABLELIST 11
+#define MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES 12
+#define MMS_CONFIRMEDSERVICE_DELETENAMEDVARIABLELIST 13
+#define MMS_CONFIRMEDSERVICE_DEFINENAMEDTYPE 14
+#define MMS_CONFIRMEDSERVICE_GETNAMEDTYPEATTRIBUTES 15
+#define MMS_CONFIRMEDSERVICE_DELETENAMEDTYPE 16
+#define MMS_CONFIRMEDSERVICE_INPUT 17
+#define MMS_CONFIRMEDSERVICE_OUTPUT 18
+#define MMS_CONFIRMEDSERVICE_TAKECONTROL 19
+#define MMS_CONFIRMEDSERVICE_RELINQUISHCONTROL 20
+#define MMS_CONFIRMEDSERVICE_DEFINESEMAPHORE 21
+#define MMS_CONFIRMEDSERVICE_DELETESEMAPHORE 22
+#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHORESTATUS 23
+#define MMS_CONFIRMEDSERVICE_REPORTPOOLSEMAPHORESTATUS 24
+#define MMS_CONFIRMEDSERVICE_REPORTSEMAPHOREENTRYSTATUS 25
+#define MMS_CONFIRMEDSERVICE_INITIATEDOWNLOADSEQUENCE 26
+#define MMS_CONFIRMEDSERVICE_DOWNLOADSEGMENT 27
+#define MMS_CONFIRMEDSERVICE_TERMINATEDOWNLOADSEQUENCE 28
+#define MMS_CONFIRMEDSERVICE_INITIATEUPLOADSEQUENCE 29
+#define MMS_CONFIRMEDSERVICE_UPLOADSEGMENT 30
+#define MMS_CONFIRMEDSERVICE_TERMINATEUPLOADSEQUENCE 31
+#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINDOWNLOAD 32
+#define MMS_CONFIRMEDSERVICE_REQUESTDOMAINUPLOAD 33
+#define MMS_CONFIRMEDSERVICE_LOADDOMAINCONTENT 34
+#define MMS_CONFIRMEDSERVICE_STOREDOMAINCONTENT 35
+#define MMS_CONFIRMEDSERVICE_DELETEDOMAIN 36
+#define MMS_CONFIRMEDSERVICE_GETDOMAINATTRIBUTES 37
+#define MMS_CONFIRMEDSERVICE_CREATEPROGRAMINVOCATION 38
+#define MMS_CONFIRMEDSERVICE_DELETEPROGRAMINVOCATION 39
+#define MMS_CONFIRMEDSERVICE_START 40
+#define MMS_CONFIRMEDSERVICE_STOP 41
+#define MMS_CONFIRMEDSERVICE_RESUME 42
+#define MMS_CONFIRMEDSERVICE_RESET 43
+#define MMS_CONFIRMEDSERVICE_KILL 44
+#define MMS_CONFIRMEDSERVICE_GETPROGRAMINVOCATIONATTRIBUTES 45
+#define MMS_CONFIRMEDSERVICE_OBTAINFILE 46
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTCONDITION 47
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTCONDITION 48
+#define MMS_CONFIRMEDSERVICE_GETEVENTCONDITIONATTRIBUTES 49
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTCONDITIONSTATUS 50
+#define MMS_CONFIRMEDSERVICE_ALTEREVENTCONDITIONMONITORING 51
+#define MMS_CONFIRMEDSERVICE_TRIGGEREVENT 52
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTACTION 53
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTACTION 54
+#define MMS_CONFIRMEDSERVICE_GETEVENTACTIONATTRIBUTES 55
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTACTIONSTATUS 56
+#define MMS_CONFIRMEDSERVICE_DEFINEEVENTENROLLMENT 57
+#define MMS_CONFIRMEDSERVICE_DELETEEVENTENROLLMENT 58
+#define MMS_CONFIRMEDSERVICE_ALTEREVENTENROLLMENT 59
+#define MMS_CONFIRMEDSERVICE_REPORTEVENTENROLLMENTSTATUS 60
+#define MMS_CONFIRMEDSERVICE_GETEVENTENROLLMENTATTRIBUTES 61
+#define MMS_CONFIRMEDSERVICE_ACKNOWLEDGEEVENTNOTIFICATION 62
+#define MMS_CONFIRMEDSERVICE_GETALARMSUMMARY 63
+#define MMS_CONFIRMEDSERVICE_GETALARMENROLLMENTSUMMARY 64
+#define MMS_CONFIRMEDSERVICE_READJOURNAL 65
+#define MMS_CONFIRMEDSERVICE_WRITEJOURNAL 66
+#define MMS_CONFIRMEDSERVICE_INITIALIZEJOURNAL 67
+#define MMS_CONFIRMEDSERVICE_REPORTJOURNALSTATUS 68
+#define MMS_CONFIRMEDSERVICE_CREATEJOURNAL 69
+#define MMS_CONFIRMEDSERVICE_DELETEJOURNAL 70
+#define MMS_CONFIRMEDSERVICE_GETCAPABILITYLIST 71
+#define MMS_CONFIRMEDSERVICE_FILEOPEN 72
+#define MMS_FILEREAD 73
+#define MMS_FILECLOSE 74
+#define MMS_FILERENAME 75
+#define MMS_FILEDELETE 76
+#define MMS_FILEDIRECTORY 77
+
+#define MMS_OBJECTCLASS_NAMMEDVARIABLE 0
+#define MMS_OBJECTCLASS_NAMEDVARIABLELIST 2
+#define MMS_OBJECTCLASS_DOMAIN 9
+
+#define MMS_OBJECTSCOPE_VMDSPECIFIC 0
+#define MMS_OBJECTSCOPE_DOMAINSPECIFIC 1
+
+#define MMS_IEC_61850_CONF_SERV_PDU_NOT_SET 0
+#define MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR 1
+#define MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY 2
+#define MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY 3
+#define MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY 4
+#define MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE 5
+#define MMS_IEC_61850_CONF_SERV_PDU_READ 6
+#define MMS_IEC_61850_CONF_SERV_PDU_WRITE 7
+
+typedef struct mms_actx_private_data_t
+{
+ int mms_pdu_type; /* MMSpdu type taken from MMSpdu CHOICE branch_taken */
+ int invokeid;
+ iec61850_8_1_vmd_specific vmd_specific; /* Numeric representation of decode vmd_specific strings */
+ int listOfAccessResult_cnt; /* Position in the list, 1 count */
+ int data_cnt; /* Number of times data occurred(depth)*/
+ guint16 reported_optflds; /* Bitmap over included fields */
+ proto_item* pdu_item; /* The item to append PDU info to */
+ int confirmedservice_type; /* Requested service */
+ int objectclass;
+ int objectscope;
+ mms_transaction_t* mms_trans_p; /* Pointer to the transaction record */
+ char* itemid_str;
+ int success; /* If variable access succeeded or not */
+} mms_actx_private_data_t;
+
+
+static const value_string mms_iec6150_cntmodel_vals[] = {
+ {0, "status-only"},
+ {1, "direct-with-normal-security"},
+ {2, "sbo-with-normal-security"},
+ {3, "direct-with-enhanced-security"},
+ {4, "sbo-with-enhanced-security"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_validity_vals[] = {
+ {0, "Good"},
+ {1, "Invalid"},
+ {2, "Reserved"},
+ {3, "Questionable"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_source_vals[] = {
+ {0, "Process"},
+ {1, "Substituted"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_timeaccuracy_vals[] = {
+ {0, "0 bits accuracy"},
+ {1, "1 bits accuracy"},
+ {2, "2 bits accuracy"},
+ {3, "3 bits accuracy"},
+ {4, "4 bits accuracy"},
+ {5, "5 bits accuracy"},
+ {6, "6 bits accuracy"},
+ {7, "7 bits accuracy"},
+ {8, "8 bits accuracy"},
+ {9, "9 bits accuracy"},
+ {10, "10 bits accuracy"},
+ {11, "11 bits accuracy"},
+ {12, "12 bits accuracy"},
+ {13, "13 bits accuracy"},
+ {14, "14 bits accuracy"},
+ {15, "15 bits accuracy"},
+ {16, "16 bits accuracy"},
+ {17, "17 bits accuracy"},
+ {18, "18 bits accuracy"},
+ {19, "19 bits accuracy"},
+ {20, "20 bits accuracy"},
+ {21, "21 bits accuracy"},
+ {22, "22 bits accuracy"},
+ {23, "23 bits accuracy"},
+ {24, "24 bits accuracy"},
+ {25, "25 bits accuracy"},
+ {26, "26 bits accuracy"},
+ {27, "27 bits accuracy"},
+ {28, "28 bits accuracy"},
+ {29, "29 bits accuracy"},
+ {30, "Invalid"},
+ {31, "Unspecified"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_orcategory_vals[] = {
+ {0, "not-supported"},
+ {1, "bay-control"},
+ {2, "station-control"},
+ {3, "remote-control"},
+ {4, "automatic-bay"},
+ {5, "automatic-station"},
+ {6, "automatic-station"},
+ {7, "maintenance"},
+ {8, "process"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_beh_vals[] = {
+ {0,"Uninitialised"},
+ {1, "on"},
+ {2, "blocked"},
+ {3, "test"},
+ {4, "test/blocked"},
+ {5, "off"},
+ {0, NULL}
+};
+
+static const value_string mms_iec6150_health_vals[] = {
+ {0,"Uninitialised"},
+ {1,"Ok"},
+ {2,"Warning"},
+ {3,"Alarm"},
+ {0, NULL}
+};
/* Helper function to get or create the private data struct */
static
-mms_private_data_t* mms_get_private_data(asn1_ctx_t *actx)
+mms_private_data_t* mms_get_private_data(asn1_ctx_t* actx)
{
- packet_info *pinfo = actx->pinfo;
- mms_private_data_t *private_data = (mms_private_data_t *)p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num);
- if(private_data != NULL )
- return private_data;
- else {
- private_data = wmem_new0(pinfo->pool, mms_private_data_t);
- p_add_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num, private_data);
- return private_data;
- }
+ packet_info* pinfo = actx->pinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num);
+ if (private_data != NULL) {
+ return private_data;
+ } else {
+ private_data = wmem_new0(pinfo->pool, mms_private_data_t);
+ p_add_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num, private_data);
+ return private_data;
+ }
}
/* Helper function to test presence of private data struct */
static gboolean
-mms_has_private_data(asn1_ctx_t *actx)
+mms_has_private_data(asn1_ctx_t* actx)
{
- packet_info *pinfo = actx->pinfo;
- return (p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num) != NULL);
+ packet_info* pinfo = actx->pinfo;
+ return (p_get_proto_data(pinfo->pool, pinfo, proto_mms, pinfo->curr_layer_num) != NULL);
}
static void
-private_data_add_preCinfo(asn1_ctx_t *actx, guint32 val)
+private_data_add_preCinfo(asn1_ctx_t* actx, guint32 val)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- snprintf(private_data->preCinfo, BUFFER_SIZE_PRE, "%02d ", val);
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ snprintf(private_data->preCinfo, BUFFER_SIZE_PRE, "%02d ", val);
}
static char*
-private_data_get_preCinfo(asn1_ctx_t *actx)
+private_data_get_preCinfo(asn1_ctx_t* actx)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- return private_data->preCinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ return private_data->preCinfo;
}
static void
-private_data_add_moreCinfo_id(asn1_ctx_t *actx, tvbuff_t *tvb)
+private_data_add_moreCinfo_id(asn1_ctx_t* actx, tvbuff_t* tvb)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- (void) g_strlcat(private_data->moreCinfo, " ", BUFFER_SIZE_MORE);
- (void) g_strlcat(private_data->moreCinfo, tvb_get_string_enc(actx->pinfo->pool,
- tvb, 2, tvb_get_guint8(tvb, 1), ENC_STRING), BUFFER_SIZE_MORE);
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ (void)g_strlcat(private_data->moreCinfo, " ", BUFFER_SIZE_MORE);
+ (void)g_strlcat(private_data->moreCinfo, tvb_get_string_enc(actx->pinfo->pool, tvb,
+ 0, tvb_reported_length(tvb), ENC_ASCII | ENC_NA), BUFFER_SIZE_MORE);
}
static void
-private_data_add_moreCinfo_float(asn1_ctx_t *actx, tvbuff_t *tvb)
+private_data_add_moreCinfo_float(asn1_ctx_t* actx, tvbuff_t* tvb)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- snprintf(private_data->moreCinfo, BUFFER_SIZE_MORE,
- " %f", tvb_get_ieee_float(tvb, 1, ENC_BIG_ENDIAN));
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ snprintf(private_data->moreCinfo, BUFFER_SIZE_MORE,
+ " %f", tvb_get_ieee_float(tvb, 1, ENC_BIG_ENDIAN));
}
static char*
-private_data_get_moreCinfo(asn1_ctx_t *actx)
+private_data_get_moreCinfo(asn1_ctx_t* actx)
{
- mms_private_data_t *private_data = (mms_private_data_t*)mms_get_private_data(actx);
- return private_data->moreCinfo;
+ mms_private_data_t* private_data = (mms_private_data_t*)mms_get_private_data(actx);
+ return private_data->moreCinfo;
}
/*****************************************************************************/
@@ -1036,19 +1353,142 @@ static int dissect_mms_VariableSpecification(bool implicit_tag _U_, tvbuff_t *tv
static int dissect_mms_AlternateAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
/* Data -> Data/array -> Data */
+/* Data -> Data/structure -> Data */
static int dissect_mms_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int * const ReportedOptFlds_bits[] = {
+ &hf_mms_ReportedOptFlds_reserved,
+ &hf_mms_ReportedOptFlds_sequence_number,
+ &hf_mms_ReportedOptFlds_report_time_stamp,
+ &hf_mms_ReportedOptFlds_reason_for_inclusion,
+ &hf_mms_ReportedOptFlds_data_set_name,
+ &hf_mms_ReportedOptFlds_data_reference,
+ &hf_mms_ReportedOptFlds_buffer_overflow,
+ &hf_mms_ReportedOptFlds_entryID,
+ &hf_mms_ReportedOptFlds_conf_revision,
+ &hf_mms_ReportedOptFlds_segmentation,
+ NULL
+};
+
+static int
+dissect_mms_ReportedOptFlds(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ tvbuff_t *parameter_tvb;
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ ReportedOptFlds_bits, 10, hf_index, ett_mms_ReportedOptFlds,
+ &parameter_tvb);
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->reported_optflds = tvb_get_ntohs(parameter_tvb,0);
+ }
+
+
+ return offset;
+}
+
+
static int
dissect_mms_Unsigned32(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- guint32 val;
+ uint32_t val;
+ conversation_t *conversation;
+ mms_conv_info_t *mms_info;
+ mms_transaction_t *mms_trans;
+
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&val);
- if (hf_index == hf_mms_invokeID)
- private_data_add_preCinfo(actx, val);
+ if (hf_index == hf_mms_invokeID){
+ mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
+ if(mms_priv){
+ mms_priv->invokeid=val;
+ private_data_add_preCinfo(actx, val);
+ conversation = find_or_create_conversation(actx->pinfo);
+
+ mms_info = (mms_conv_info_t *)conversation_get_proto_data(conversation, proto_mms);
+ if (!mms_info) {
+ /*
+ * No. Attach that information to the conversation, and add
+ * it to the list of information structures.
+ */
+ mms_info = wmem_new(wmem_file_scope(), mms_conv_info_t);
+ mms_info->pdus=wmem_map_new(wmem_file_scope(), g_direct_hash, g_direct_equal);
+
+ conversation_add_proto_data(conversation, proto_mms, mms_info);
+ }
+ /* Request or response? */
+ bool is_request;
+
+ switch(mms_priv->mms_pdu_type){
+ case 0:
+ /* Confirmed-RequestPDU */
+ is_request = true;
+ break;
+ case 1:
+ /* confirmed-ResponsePDU */
+ is_request = false;
+ break;
+ case 2:
+ /* Confirmed-ErrorPDU */
+ is_request = false;
+ break;
+ default:
+ is_request = false;
+ break;
+ }
+
+ if (!PINFO_FD_VISITED(actx->pinfo)) {
+ if (is_request==true) {
+ /* This is a request */
+ mms_trans=wmem_new0(wmem_file_scope(), mms_transaction_t);
+ mms_trans->req_frame = actx->pinfo->num;
+ mms_trans->req_time = actx->pinfo->fd->abs_ts;
+ wmem_map_insert(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid), (void *)mms_trans);
+ } else {
+ mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
+ if (mms_trans) {
+ mms_trans->rep_frame = actx->pinfo->num;
+ }
+ }
+ } else {
+ mms_trans=(mms_transaction_t *)wmem_map_lookup(mms_info->pdus, GUINT_TO_POINTER(mms_priv->invokeid));
+ }
+ if (!mms_trans) {
+ /* create a "fake" mms_trans structure */
+ mms_trans=wmem_new0(actx->pinfo->pool, mms_transaction_t);
+ mms_trans->req_frame = 0;
+ mms_trans->rep_frame = 0;
+ mms_trans->req_time = actx->pinfo->fd->abs_ts;
+ }
+ mms_priv->mms_trans_p = mms_trans;
+
+ /* print state tracking in the tree */
+ if (is_request) {
+ /* This is a request */
+ if (mms_trans->rep_frame) {
+ proto_item *it;
+
+ it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_in, tvb, 0, 0, mms_trans->rep_frame);
+ proto_item_set_generated(it);
+ }
+ } else {
+ /* This is a reply */
+ if (mms_trans->req_frame) {
+ proto_item *it;
+ nstime_t ns;
+
+ it = proto_tree_add_uint(actx->subtree.top_tree, hf_mms_response_to, tvb, 0, 0, mms_trans->req_frame);
+ proto_item_set_generated(it);
+
+ nstime_delta(&ns, &actx->pinfo->fd->abs_ts, &mms_trans->req_time);
+ it = proto_tree_add_time(actx->subtree.top_tree, hf_mms_response_time, tvb, 0, 0, &ns);
+ proto_item_set_generated(it);
+ }
+ }
+ }
+ }
return offset;
@@ -1058,15 +1498,62 @@ dissect_mms_Unsigned32(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_mms_Identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- int offset_id = offset;
+ tvbuff_t *parameter_tvb;
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
actx, tree, tvb, offset, hf_index,
- NULL);
-
- if ((hf_index == hf_mms_domainId) || (hf_index == hf_mms_itemId)) {
- if (tvb_get_guint8(tvb, offset_id) == 0x1a)
- private_data_add_moreCinfo_id(actx,tvb);
- }
+ &parameter_tvb);
+
+ if (hf_index == hf_mms_domainId) {
+ private_data_add_moreCinfo_id(actx,parameter_tvb);
+ }
+ if ((mms_priv) && ((hf_index == hf_mms_objectName_domain_specific_itemId)||
+ (hf_index ==hf_mms_listOfIdentifier_item))) {
+ private_data_add_moreCinfo_id(actx,parameter_tvb);
+ if((mms_priv->mms_trans_p)&&(parameter_tvb)){
+ mms_priv->itemid_str = tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
+ if(g_str_has_suffix(mms_priv->itemid_str,"$ctlModel")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CTLMODEL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$q")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_Q;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$Oper")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OPER;
+ }else if((g_str_has_suffix(mms_priv->itemid_str,"$Oper$Check")) || (g_str_has_suffix(mms_priv->itemid_str,"$SBOw$Check"))){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_CHECK;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$orCat")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_OR_CAT;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Beh$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_BEH$STVAL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Mod$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_MOD$STVAL;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"Health$stVal")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_HEALTH$STVAL;
+ }else if((g_strrstr(mms_priv->itemid_str,"$BR$") || g_strrstr(mms_priv->itemid_str,"$RP$"))){ //GetBRCBValues,GetURCBValues,)
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$BR$_OR_$RP$;
+ }else if(g_str_has_suffix(mms_priv->itemid_str,"$SBOw")){
+ mms_priv->mms_trans_p->itemid = IEC61850_ITEM_ID_$SBOW;
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE;
+ }
+ }
+ }
+
+ if ((mms_priv) && (hf_index == hf_mms_vmd_specific)){
+ const char *vmd_specific_str = tvb_get_string_enc(actx->pinfo->pool, parameter_tvb, 0, tvb_reported_length(parameter_tvb), ENC_ASCII|ENC_NA);
+ if (strcmp(vmd_specific_str, "RPT") == 0) {
+ mms_priv->vmd_specific = IEC61850_8_1_RPT;
+ }
+ }
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_mms_ObjectName_domain_specific_itemid(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_mms_Identifier(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
}
@@ -1074,7 +1561,7 @@ dissect_mms_Identifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static const ber_sequence_t T_domain_specific_sequence[] = {
{ &hf_mms_domainId , BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_Identifier },
- { &hf_mms_itemId , BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_Identifier },
+ { &hf_mms_objectName_domain_specific_itemId, BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_mms_ObjectName_domain_specific_itemid },
{ NULL, 0, 0, 0, NULL }
};
@@ -1241,7 +1728,7 @@ dissect_mms_Status_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
-static const value_string mms_T_objectClass_vals[] = {
+static const value_string mms_ObjectClass_vals[] = {
{ 0, "nammedVariable" },
{ 1, "scatteredAccess" },
{ 2, "namedVariableList" },
@@ -1259,9 +1746,17 @@ static const value_string mms_T_objectClass_vals[] = {
static int
-dissect_mms_T_objectClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_mms_ObjectClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ uint32_t val;
+
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ &val);
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->objectclass = val;
+ }
+
return offset;
}
@@ -1273,7 +1768,7 @@ static const value_string mms_T_extendedObjectClass_vals[] = {
};
static const ber_choice_t T_extendedObjectClass_choice[] = {
- { 0, &hf_mms_objectClass , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_objectClass },
+ { 0, &hf_mms_objectClass , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_ObjectClass },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1296,14 +1791,14 @@ dissect_mms_NULL(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_
}
-static const value_string mms_T_objectScope_vals[] = {
+static const value_string mms_ObjectScope_vals[] = {
{ 0, "vmdSpecific" },
{ 1, "domainSpecific" },
{ 2, "aaSpecific" },
{ 0, NULL }
};
-static const ber_choice_t T_objectScope_choice[] = {
+static const ber_choice_t ObjectScope_choice[] = {
{ 0, &hf_mms_vmdSpecific , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
{ 1, &hf_mms_domainSpecific , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
{ 2, &hf_mms_aaSpecific , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_NULL },
@@ -1311,10 +1806,18 @@ static const ber_choice_t T_objectScope_choice[] = {
};
static int
-dissect_mms_T_objectScope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_mms_ObjectScope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ int val;
+
offset = dissect_ber_choice(actx, tree, tvb, offset,
- T_objectScope_choice, hf_index, ett_mms_T_objectScope,
- NULL);
+ ObjectScope_choice, hf_index, ett_mms_ObjectScope,
+ &val);
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->objectscope = val;
+ }
+
return offset;
}
@@ -1322,7 +1825,7 @@ dissect_mms_T_objectScope(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static const ber_sequence_t GetNameList_Request_sequence[] = {
{ &hf_mms_extendedObjectClass, BER_CLASS_CON, 0, 0, dissect_mms_T_extendedObjectClass },
- { &hf_mms_objectScope , BER_CLASS_CON, 1, 0, dissect_mms_T_objectScope },
+ { &hf_mms_objectScope , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mms_ObjectScope },
{ &hf_mms_getNameList_Request_continueAfter, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mms_Identifier },
{ NULL, 0, 0, 0, NULL }
};
@@ -1345,7 +1848,7 @@ dissect_mms_Identify_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
-static const value_string mms_T_objectClass_01_vals[] = {
+static const value_string mms_T_objectClass_vals[] = {
{ 0, "namedVariable" },
{ 1, "scatteredAccess" },
{ 2, "namedVariableList" },
@@ -1363,7 +1866,7 @@ static const value_string mms_T_objectClass_01_vals[] = {
static int
-dissect_mms_T_objectClass_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_mms_T_objectClass(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -1377,7 +1880,7 @@ static const value_string mms_T_extendedObjectClass_01_vals[] = {
};
static const ber_choice_t T_extendedObjectClass_01_choice[] = {
- { 0, &hf_mms_objectClass_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_objectClass_01 },
+ { 0, &hf_mms_objectClass_01 , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_objectClass },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1557,7 +2060,7 @@ static const ber_choice_t TypeSpecification_choice[] = {
static int
dissect_mms_TypeSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // TypeSpecification → TypeSpecification/array → TypeSpecification
+ // TypeSpecification -> TypeSpecification/array -> TypeSpecification
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1747,7 +2250,7 @@ static const ber_sequence_t AlternateAccess_sequence_of[1] = {
static int
dissect_mms_AlternateAccess(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // AlternateAccess → AlternateAccess/_item → AlternateAccessSelection → AlternateAccessSelection/selectAlternateAccess → AlternateAccess
+ // AlternateAccess -> AlternateAccess/_item -> AlternateAccessSelection -> AlternateAccessSelection/selectAlternateAccess -> AlternateAccess
actx->pinfo->dissection_depth += 4;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
@@ -1808,7 +2311,7 @@ static const ber_choice_t VariableSpecification_choice[] = {
static int
dissect_mms_VariableSpecification(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // VariableSpecification → ScatteredAccessDescription → ScatteredAccessDescription/_item → VariableSpecification
+ // VariableSpecification -> ScatteredAccessDescription -> ScatteredAccessDescription/_item -> VariableSpecification
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1887,7 +2390,7 @@ dissect_mms_Read_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U
static const ber_sequence_t SEQUENCE_OF_Data_sequence_of[1] = {
- { &hf_mms_listOfData_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
+ { &hf_mms_array_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
};
static int
@@ -1899,12 +2402,137 @@ dissect_mms_SEQUENCE_OF_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
+static const ber_sequence_t T_structure_01_sequence_of[1] = {
+ { &hf_mms_structure_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
+};
static int
-dissect_mms_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_mms_T_structure_01(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 3){
+ /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
+ hf_index = hf_mms_iec61850_origin;
+ mms_priv->data_cnt++;
+ }else if(mms_priv->data_cnt == 4){
+ /* IEC 61850-8-1 origin, if we hgave a struct here Tm was not there */
+ hf_index = hf_mms_iec61850_origin;
+ }
+ }
+ }
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_structure_01_sequence_of, hf_index, ett_mms_T_structure_01);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_mms_T_boolean(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 6){
+ /* IEC 61850-8-1 BufOvfl */
+ hf_index = hf_mms_iec61850_bufovfl;
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 2){
+ /* IEC 61850-8-1 ctlVal */
+ hf_index = hf_mms_iec61850_ctlval;
+ }else if(mms_priv->data_cnt == 9){
+ /* IEC 61850-8-1 Test */
+ hf_index = hf_mms_iec61850_test;
+ }
+ }
+ }
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_mms_T_data_bit_string(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+static int* const quality_field_bits_oct1[] = {
+ &hf_mms_iec61850_QualityC0,
+ &hf_mms_iec61850_Quality20,
+ &hf_mms_iec61850_Quality10,
+ &hf_mms_iec61850_Quality8,
+ &hf_mms_iec61850_Quality4,
+ &hf_mms_iec61850_Quality2,
+ &hf_mms_iec61850_Quality1,
+ NULL
+};
+
+static int* const quality_field_bits_oct2[] = {
+ &hf_mms_iec61850_Quality0080,
+ &hf_mms_iec61850_Quality0040,
+ &hf_mms_iec61850_Quality0020,
+ &hf_mms_iec61850_Quality0010,
+ &hf_mms_iec61850_Quality0008,
+ NULL
+};
+
+static int * const mms_iec61850_chec_bits[] = {
+ &hf_mms_iec61850_check_b1,
+ &hf_mms_iec61850_check_b0,
+ NULL
+};
+ tvbuff_t *parameter_tvb;
+ proto_tree *sub_tree;
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&&(mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 2){
+ /* IEC 61850-8-1 Reported OptFlds */
+ return dissect_mms_ReportedOptFlds(implicit_tag, tvb, offset, actx, tree, hf_mms_iec61850_reported_optflds);
+ }else{
+ if(mms_priv->listOfAccessResult_cnt == 11){
+ hf_index = hf_mms_iec61850_inclusion_bitstring;
+ }
+ }
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
+ hf_index = hf_mms_iec61850_quality_bitstring;
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
+ hf_index = hf_mms_iec61850_check_bitstring;
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 10){
+ hf_index = hf_mms_iec61850_check_bitstring;
+ }
+ }
+ }
+
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
NULL, 0, hf_index, -1,
- NULL);
+ &parameter_tvb);
+
+
+ if((mms_priv)&&(parameter_tvb) && (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_Q){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_quality_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, quality_field_bits_oct1, ENC_NA);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 1, 1, quality_field_bits_oct2, ENC_NA);
+ }else if (mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CHECK){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 10){
+ sub_tree = proto_item_add_subtree(actx->created_item, ett_mms_iec61850_check_bitstring);
+ proto_tree_add_bitmask_list(sub_tree, parameter_tvb, 0, 1, mms_iec61850_chec_bits, ENC_NA);
+ }
+ }
+ }
+
return offset;
}
@@ -1912,10 +2540,61 @@ dissect_mms_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
-dissect_mms_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_mms_T_integer(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_CTLMODEL){
+ hf_index = hf_mms_iec61850_ctlModel;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_OR_CAT){
+ hf_index = hf_mms_iec61850_orcategory;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_BEH$STVAL){
+ hf_index = hf_mms_iec61850_beh$stval;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_MOD$STVAL){
+ hf_index = hf_mms_iec61850_beh$stval;
+ }else if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_HEALTH$STVAL){
+ hf_index = hf_mms_iec61850_health$stval;
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 5){
+ /* IEC 61850-8-1 Origin Catagory */
+ hf_index = hf_mms_iec61850_origin_orcat;
+ }
+ }
+ }
+
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_mms_T_unsigned(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv) && (mms_priv->mms_trans_p)){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 3){
+ /* IEC 61850-8-1 SeqNum */
+ hf_index = hf_mms_iec61850_seqnum;
+ }else if(mms_priv->listOfAccessResult_cnt == 8){
+ /* IEC 61850-8-1 ConfRev */
+ hf_index = hf_mms_iec61850_confrev;
+ }
+ }
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 7){
+ hf_index = hf_mms_iec61850_ctlNum;
+ }
+ }
+ }
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+
+
return offset;
}
@@ -1926,7 +2605,53 @@ dissect_mms_FloatingPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
- private_data_add_moreCinfo_float(actx, tvb);
+ private_data_add_moreCinfo_float(actx, tvb);
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_mms_T_data_octet_string(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 6){
+ hf_index = hf_mms_iec61850_origin_orident;
+ }
+ }
+ }
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_mms_T_data_visible_string(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 1){
+ /* IEC 61850-8-1 RptID */
+ hf_index = hf_mms_iec61850_rptid;
+ }else if(mms_priv->listOfAccessResult_cnt == 5){
+ /* IEC 61850-8-1 DatSet */
+ hf_index = hf_mms_iec61850_datset;
+ }
+ }
+ }
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+
return offset;
@@ -1937,53 +2662,94 @@ dissect_mms_FloatingPoint(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _
static int
dissect_mms_TimeOfDay(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- guint32 len;
- guint32 milliseconds;
- guint16 days;
- gchar * ptime;
- nstime_t ts;
+ uint32_t len;
+ uint32_t milliseconds;
+ uint16_t days;
+ gchar * ptime;
+ nstime_t ts;
+
+ len = tvb_reported_length_remaining(tvb, offset);
+
+ if(len == 4)
+ {
+ milliseconds = tvb_get_ntohl(tvb, offset);
+ ptime = signed_time_msecs_to_str(actx->pinfo->pool, milliseconds);
+
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
+ return offset;
+ }
+
+ if(len == 6)
+ {
+ milliseconds = tvb_get_ntohl(tvb, offset);
+ days = tvb_get_ntohs(tvb, offset+4);
+
+ /* 5113 days between 01-01-1970 and 01-01-1984 */
+ /* 86400 seconds in one day */
- len = tvb_reported_length_remaining(tvb, offset);
+ ts.secs = (days + 5113) * 86400 + milliseconds / 1000;
+ ts.nsecs = (milliseconds % 1000) * 1000000U;
- if(len == 4)
- {
- milliseconds = tvb_get_ntohl(tvb, offset);
- ptime = signed_time_msecs_to_str(actx->pinfo->pool, milliseconds);
+ ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ }
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
- }
- return offset;
- }
+ return offset;
+ }
- if(len == 6)
- {
- milliseconds = tvb_get_ntohl(tvb, offset);
- days = tvb_get_ntohs(tvb, offset+4);
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_timeofday_encoding,
+ tvb, offset, len, "BER Error: malformed TimeOfDay encoding, length must be 4 or 6 bytes");
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
- /* 5113 days between 01-01-1970 and 01-01-1984 */
- /* 86400 seconds in one day */
- ts.secs = (days + 5113) * 86400 + milliseconds / 1000;
- ts.nsecs = (milliseconds % 1000) * 1000000U;
+ return offset;
+}
+
+
+
+static int
+dissect_mms_T_data_binary_time(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ if(mms_priv->vmd_specific == IEC61850_8_1_RPT ){
+ if(mms_priv->listOfAccessResult_cnt == 4){
+ /* IEC 61850-8-1 TimeOfEntry */
+ hf_index = hf_mms_iec61850_timeofentry;
+ }
+ }
+ }
+ offset = dissect_mms_TimeOfDay(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_mms_INTEGER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
- ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
- }
+ return offset;
+}
- return offset;
- }
- proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_timeofday_encoding,
- tvb, offset, len, "BER Error: malformed TimeOfDay encoding, length must be 4 or 6 bytes");
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
- }
+static int
+dissect_mms_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ NULL, 0, hf_index, -1,
+ NULL);
return offset;
}
@@ -2013,39 +2779,60 @@ dissect_mms_MMSString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_mms_UtcTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- guint32 len;
- guint32 seconds;
- guint32 fraction;
- guint32 nanoseconds;
- nstime_t ts;
- gchar * ptime;
+ uint32_t len;
+ uint32_t seconds;
+ uint32_t fraction;
+ uint32_t nanoseconds;
+ nstime_t ts;
+ gchar * ptime;
- len = tvb_reported_length_remaining(tvb, offset);
+ static int * const TimeQuality_bits[] = {
+ &hf_mms_iec61850_timequality80,
+ &hf_mms_iec61850_timequality40,
+ &hf_mms_iec61850_timequality20,
+ &hf_mms_iec61850_timequality1F,
+ NULL
+ };
+ len = tvb_reported_length_remaining(tvb, offset);
- if(len != 8)
- {
- proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_utctime_encoding,
- tvb, offset, len, "BER Error: malformed IEC61850 UTCTime encoding, length must be 8 bytes");
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
- }
- return offset;
- }
+ if(len != 8)
+ {
+ /* The octet format shall be (using ASN.1 bstring notation):
+ * ‘ssssssssssssssssssssssssssssssssffffffffffffffffffffffffqqqqqqqq’B
+ * q stands for TimeQuality, i.e. reserved to represent TimeQuality based upon the referencing standard.
+ */
+ proto_tree_add_expert_format(tree, actx->pinfo, &ei_mms_mal_utctime_encoding,
+ tvb, offset, len, "BER Error: malformed IEC61850 UTCTime encoding, length must be 8 bytes");
+ if(hf_index > 0)
+ {
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, "????");
+ }
+ return offset;
+ }
- seconds = tvb_get_ntohl(tvb, offset);
- fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
- nanoseconds = (guint32)( ((guint64)fraction * G_GUINT64_CONSTANT(1000000000)) / G_GUINT64_CONSTANT(0x100000000) ) ;
+ seconds = tvb_get_ntohl(tvb, offset);
+ fraction = tvb_get_ntoh24(tvb, offset+4) * 0x100; /* Only 3 bytes are recommended */
+ nanoseconds = (uint32_t )( ((guint64)fraction * G_GUINT64_CONSTANT(1000000000)) / G_GUINT64_CONSTANT(0x100000000) ) ;
- ts.secs = seconds;
- ts.nsecs = nanoseconds;
+ ts.secs = seconds;
+ ts.nsecs = nanoseconds;
- ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+ ptime = abs_time_to_str(actx->pinfo->pool, &ts, ABSOLUTE_TIME_UTC, TRUE);
+
+ if(hf_index > 0)
+ {
+ mms_actx_private_data_t* mms_priv = (mms_actx_private_data_t*)actx->private_data;
+ if((mms_priv)&& (mms_priv->mms_trans_p)){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ if(mms_priv->data_cnt == 8){
+ hf_index = hf_mms_iec61850_T;
+ }
+ }
+ }
+ proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
+ proto_tree_add_bitmask_list(tree, tvb, offset+7, 1, TimeQuality_bits, ENC_BIG_ENDIAN);
+ }
- if(hf_index > 0)
- {
- proto_tree_add_string(tree, hf_index, tvb, offset, len, ptime);
- }
@@ -2074,15 +2861,15 @@ static const value_string mms_Data_vals[] = {
static const ber_choice_t Data_choice[] = {
{ 1, &hf_mms_array_01 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Data },
- { 2, &hf_mms_structure_01 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Data },
- { 3, &hf_mms_boolean_01 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_BOOLEAN },
- { 4, &hf_mms_data_bit_string , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_BIT_STRING },
- { 5, &hf_mms_integer_01 , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
- { 6, &hf_mms_unsigned_01 , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
+ { 2, &hf_mms_structure_01 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mms_T_structure_01 },
+ { 3, &hf_mms_boolean_01 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_mms_T_boolean },
+ { 4, &hf_mms_data_bit_string , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mms_T_data_bit_string },
+ { 5, &hf_mms_integer_01 , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mms_T_integer },
+ { 6, &hf_mms_unsigned_01 , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_mms_T_unsigned },
{ 7, &hf_mms_floating_point , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_mms_FloatingPoint },
- { 9, &hf_mms_data_octet_string, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_OCTET_STRING },
- { 10, &hf_mms_data_visible_string, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_VisibleString },
- { 12, &hf_mms_data_binary_time, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_TimeOfDay },
+ { 9, &hf_mms_data_octet_string, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_mms_T_data_octet_string },
+ { 10, &hf_mms_data_visible_string, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_mms_T_data_visible_string },
+ { 12, &hf_mms_data_binary_time, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_mms_T_data_binary_time },
{ 13, &hf_mms_bcd_01 , BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_mms_INTEGER },
{ 14, &hf_mms_booleanArray , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_mms_BIT_STRING },
{ 15, &hf_mms_objId_01 , BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_mms_OBJECT_IDENTIFIER },
@@ -2093,22 +2880,51 @@ static const ber_choice_t Data_choice[] = {
static int
dissect_mms_Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Data → Data/array → Data
+ // Data -> Data/array -> Data
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->data_cnt += 1;
+ }
+
offset = dissect_ber_choice(actx, tree, tvb, offset,
Data_choice, hf_index, ett_mms_Data,
NULL);
+
+
actx->pinfo->dissection_depth -= 2;
decrement_dissection_depth(actx->pinfo);
return offset;
}
+static const ber_sequence_t T_listOfData_sequence_of[1] = {
+ { &hf_mms_listOfData_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_Data },
+};
+
+static int
+dissect_mms_T_listOfData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->data_cnt = 0;
+ }
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_listOfData_sequence_of, hf_index, ett_mms_T_listOfData);
+
+ if(mms_priv){
+ mms_priv->data_cnt = 0;
+ }
+
+
+ return offset;
+}
+
+
static const ber_sequence_t Write_Request_sequence[] = {
{ &hf_mms_variableAccessSpecificatn, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
- { &hf_mms_listOfData , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_Data },
+ { &hf_mms_listOfData , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfData },
{ NULL, 0, 0, 0, NULL }
};
@@ -2435,7 +3251,7 @@ dissect_mms_Output_Request(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_mms_T_ap_title(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_ap_title);
+ offset=dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_mms_ap_title);
return offset;
@@ -2445,7 +3261,7 @@ dissect_mms_T_ap_title(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_mms_T_ap_invocation_id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset=dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
+ offset=dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ap_invocation_id);
return offset;
@@ -2455,7 +3271,7 @@ dissect_mms_T_ap_invocation_id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_mms_T_ae_qualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset=dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_qualifier);
+ offset=dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_qualifier);
return offset;
@@ -2465,7 +3281,7 @@ dissect_mms_T_ae_qualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_mms_T_ae_invocation_id(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset=dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
+ offset=dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_mms_ae_invocation_id);
return offset;
@@ -4644,10 +5460,45 @@ static const ber_choice_t ConfirmedServiceRequest_choice[] = {
static int
dissect_mms_ConfirmedServiceRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->confirmedservice_type = tag;
+ }
+
offset = dissect_ber_choice(actx, tree, tvb, offset,
ConfirmedServiceRequest_choice, hf_index, ett_mms_ConfirmedServiceRequest,
NULL);
+
+ if(mms_priv && mms_priv->mms_trans_p){
+ if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMELIST){
+ if(mms_priv->objectclass == MMS_OBJECTCLASS_DOMAIN){
+ if(mms_priv->objectscope == MMS_OBJECTSCOPE_VMDSPECIFIC){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR;
+ }
+ }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMMEDVARIABLE){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY;
+ }else if(mms_priv->objectclass == MMS_OBJECTCLASS_NAMEDVARIABLELIST){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
+ }
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETNAMEDVARIABLELISTATTRIBUTES){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_READ){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_READ;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_WRITE){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_WRITE;
+ }else if(mms_priv->confirmedservice_type == MMS_CONFIRMEDSERVICE_GETVARIABLEACCESSATTRIBUTES){
+ mms_priv->mms_trans_p->conf_serv_pdu_type_req = MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY;
+ }
+ }
+
+
+
return offset;
}
@@ -4682,9 +5533,16 @@ static const ber_sequence_t Confirmed_RequestPDU_sequence[] = {
static int
dissect_mms_Confirmed_RequestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Confirmed_RequestPDU_sequence, hf_index, ett_mms_Confirmed_RequestPDU);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
+
return offset;
}
@@ -4846,9 +5704,89 @@ static const ber_choice_t AccessResult_choice[] = {
static int
dissect_mms_AccessResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ int branch_taken;
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ /* If listOfAccessResult_cnt > 2 we are into the optional data.
+ * if data is not present increase count.
+ */
+ bool present;
+ do {
+ mms_priv->listOfAccessResult_cnt+=1;
+ present = TRUE;
+ switch(mms_priv->listOfAccessResult_cnt){
+ case 1: /*RptID*/
+ break;
+ case 2: /* Reported OptFlds */
+ break;
+ case 3: /* SeqNum Shall be present if OptFlds.sequence-number is TRUE */
+ if((mms_priv->reported_optflds & 0x4000) != 0x4000){
+ present = false;
+ }
+ break;
+ case 4: /*TimeOfEntry Shall be present if OptFlds.report-time-stamp is TRUE */
+ if((mms_priv->reported_optflds & 0x2000) != 0x2000){
+ present = false;
+ }
+ break;
+ case 5: /*DatSet Shall be present if OptFlds.data-set-name is TRUE */
+ if((mms_priv->reported_optflds & 0x0800) !=0x0800){
+ present = false;
+ }
+ break;
+ case 6: /*BufOvfl Shall be present if OptFlds.buffer-overflow is TRUE */
+ if((mms_priv->reported_optflds & 0x0200) !=0x0200){
+ present = false;
+ }
+ break;
+ case 7: /*EntryID Shall be present if OptFlds.entryID is TRUE */
+ if((mms_priv->reported_optflds & 0x0100) !=0x0100){
+ present = false;
+ }
+ break;
+ case 8: /*ConfRev Shall be present if OptFlds.conf-rev is TRUE */
+ if((mms_priv->reported_optflds & 0x0080) !=0x0080){
+ present = false;
+ }
+ break;
+ case 9: /*SubSeqNum Shall be present if OptFlds.segmentation is TRUE */
+ if((mms_priv->reported_optflds & 0x0040) !=0x0040){
+ present = false;
+ }
+ break;
+ case 10: /*MoreSegmentsFollow Shall be present if OptFlds.segmentation is TRUE */
+ if((mms_priv->reported_optflds & 0x0040) !=0x0040){
+ present = false;
+ }
+ break;
+ case 11: /*Inclusion-bitstring Shall be present */
+ break;
+ case 12: /*data-reference(s) Shall be present if OptFlds.data-reference is TRUE */
+ if((mms_priv->reported_optflds & 0x0400) !=0x0400){
+ present = false;
+ }
+ break;
+ case 13: /*value(s) See AccessResult for value(s) */
+ break;
+ case 14: /*ReasonCode(s) Shall be present if OptFlds OptFlds.reason-for-inclusion is TRUE */
+ if((mms_priv->reported_optflds & 0x1000) !=0x1000){
+ present = false;
+ }
+ break;
+ default:
+ break;
+ }
+ } while(!present);
+ }
+
offset = dissect_ber_choice(actx, tree, tvb, offset,
AccessResult_choice, hf_index, ett_mms_AccessResult,
- NULL);
+ &branch_taken);
+
+ if(mms_priv){
+ mms_priv->success = branch_taken;
+ }
+
return offset;
}
@@ -6536,7 +7474,7 @@ static const ber_choice_t ConfirmedServiceResponse_choice[] = {
{ 51, &hf_mms_alterEventConditionMonitoring_01, BER_CLASS_CON, 51, BER_FLAGS_IMPLTAG, dissect_mms_AlterEventConditionMonitoring_Response },
{ 52, &hf_mms_triggerEvent_01 , BER_CLASS_CON, 52, BER_FLAGS_IMPLTAG, dissect_mms_TriggerEvent_Response },
{ 53, &hf_mms_defineEventAction_01, BER_CLASS_CON, 53, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventAction_Response },
- { 54, &hf_mms_deleteEventAction, BER_CLASS_CON, 54, BER_FLAGS_IMPLTAG, dissect_mms_DeleteEventAction_Response },
+ { 54, &hf_mms_confirmedServiceRequest_deleteEventAction_01, BER_CLASS_CON, 54, BER_FLAGS_IMPLTAG, dissect_mms_DeleteEventAction_Response },
{ 55, &hf_mms_getEventActionAttributes_01, BER_CLASS_CON, 55, BER_FLAGS_IMPLTAG, dissect_mms_GetEventActionAttributes_Response },
{ 56, &hf_mms_reportActionStatus, BER_CLASS_CON, 56, BER_FLAGS_IMPLTAG, dissect_mms_ReportEventActionStatus_Response },
{ 57, &hf_mms_defineEventEnrollment_01, BER_CLASS_CON, 57, BER_FLAGS_IMPLTAG, dissect_mms_DefineEventEnrollment_Response },
@@ -6564,10 +7502,22 @@ static const ber_choice_t ConfirmedServiceResponse_choice[] = {
static int
dissect_mms_ConfirmedServiceResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->confirmedservice_type = tag;
+ }
+
offset = dissect_ber_choice(actx, tree, tvb, offset,
ConfirmedServiceResponse_choice, hf_index, ett_mms_ConfirmedServiceResponse,
NULL);
+
+
return offset;
}
@@ -6581,9 +7531,16 @@ static const ber_sequence_t Confirmed_ResponsePDU_sequence[] = {
static int
dissect_mms_Confirmed_ResponsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Confirmed_ResponsePDU_sequence, hf_index, ett_mms_Confirmed_ResponsePDU);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
+
return offset;
}
@@ -6604,9 +7561,30 @@ dissect_mms_Confirmed_ErrorPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int off
}
+static const ber_sequence_t T_listOfAccessResult_sequence_of[1] = {
+ { &hf_mms_listOfAccessResult_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_AccessResult },
+};
+
+static int
+dissect_mms_T_listOfAccessResult(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->listOfAccessResult_cnt = 0;
+ }
+
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_listOfAccessResult_sequence_of, hf_index, ett_mms_T_listOfAccessResult);
+
+
+
+ return offset;
+}
+
+
static const ber_sequence_t InformationReport_sequence[] = {
{ &hf_mms_variableAccessSpecification, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_mms_VariableAccessSpecification },
- { &hf_mms_listOfAccessResult, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_SEQUENCE_OF_AccessResult },
+ { &hf_mms_listOfAccessResult_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mms_T_listOfAccessResult },
{ NULL, 0, 0, 0, NULL }
};
@@ -6740,9 +7718,21 @@ static const ber_sequence_t Unconfirmed_PDU_sequence[] = {
static int
dissect_mms_Unconfirmed_PDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if (!mms_priv->mms_trans_p) {
+ /* create a "fake" mms_trans structure */
+ mms_priv->mms_trans_p=wmem_new0(actx->pinfo->pool, mms_transaction_t);
+ mms_priv->mms_trans_p->req_time = actx->pinfo->fd->abs_ts;
+
+ }
+
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Unconfirmed_PDU_sequence, hf_index, ett_mms_Unconfirmed_PDU);
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
return offset;
}
@@ -7193,9 +8183,17 @@ static const ber_sequence_t Initiate_RequestPDU_sequence[] = {
static int
dissect_mms_Initiate_RequestPDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Initiate_RequestPDU_sequence, hf_index, ett_mms_Initiate_RequestPDU);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
+
+
return offset;
}
@@ -7227,9 +8225,15 @@ static const ber_sequence_t Initiate_ResponsePDU_sequence[] = {
static int
dissect_mms_Initiate_ResponsePDU(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Initiate_ResponsePDU_sequence, hf_index, ett_mms_Initiate_ResponsePDU);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(tree){
+ mms_priv->pdu_item = (proto_item*)tree->last_child;
+ }
+
return offset;
}
@@ -7308,21 +8312,139 @@ static const ber_choice_t MMSpdu_choice[] = {
int
dissect_mms_MMSpdu(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- gint branch_taken;
+ int branch_taken;
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ mms_actx_private_data_t *mms_priv = (mms_actx_private_data_t *)actx->private_data;
+ if(mms_priv){
+ mms_priv->mms_pdu_type = tag;
+ }
+
offset = dissect_ber_choice(actx, tree, tvb, offset,
MMSpdu_choice, hf_index, ett_mms_MMSpdu,
&branch_taken);
- if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
- if (mms_has_private_data(actx))
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
- private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
- else
- col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
- mms_MMSpdu_vals[branch_taken].strptr);
- }
+ if( (branch_taken!=-1) && mms_MMSpdu_vals[branch_taken].strptr ){
+ if(mms_priv){
+ switch(mms_priv->mms_pdu_type){
+ case MMS_UNCONFIRMED_PDU:
+ if(mms_priv->vmd_specific==IEC61850_8_1_RPT){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed <RPT>");
+ proto_item_append_text(mms_priv->pdu_item, " [RPT]");
+ }else if((mms_priv->mms_trans_p)&&(mms_priv->mms_trans_p->itemid==IEC61850_ITEM_ID_OPER)){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Unconfirmed-CommandTermination");
+ proto_item_append_text(mms_priv->pdu_item, " [Unconfirmed-CommandTermination]");
+ }
+ break;
+ case MMS_INITIATE_REQUEST_PDU:
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Request");
+ proto_item_append_text(mms_priv->pdu_item, " [Associate Request]");
+ break;
+ case MMS_INITIATE_RESPONSE_PDU:
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Associate Response");
+ proto_item_append_text(mms_priv->pdu_item, " [Associate Response]");
+ break;
+ case MMS_CONFIRMED_REQUEST_PDU:
+ if(mms_priv->mms_trans_p){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryRequest");
+ proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryRequest]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryRequest %s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryRequest ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryRequest %s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryRequest]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryRequest%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryRequest]");
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesRequest %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesRequest]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataValueRequest %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataValueRequest]");
+ }
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesRequest %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesRequest]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueRequest %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetDataValueRequest]");
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueRequest %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueRequest]");
+ }
+ }else if (mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }
+ break;
+ case MMS_CONFIRMED_RESPONSE_PDU:
+ if(mms_priv->mms_trans_p){
+ if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GET_SERV_DIR){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetServerDirectoryResponse %s", mms_priv->itemid_str);
+ proto_item_append_text(mms_priv->pdu_item, " [GetServerDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETLOGICALDEVICEDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetLogicalDeviceDirectoryResponse%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetLogicalDeviceDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATASETDIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataSetDirectoryResponse%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataSetDirectoryResponse ]");
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_GETDATADIRECTORY){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataDirectoryResponse%s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataDirectoryResponse ]");
+ }else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_READ){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetRCBValuesResponse");
+ proto_item_append_text(mms_priv->pdu_item, " [GetRCBValuesResponse]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "GetDataValueResponse");
+ proto_item_append_text(mms_priv->pdu_item, " [GetDataValueResponse ]");
+ }
+ if(mms_priv->success == 1){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " success");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " failure");
+ }
+ } else if (mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_WRITE){
+ if(mms_priv->mms_trans_p->itemid == IEC61850_ITEM_ID_$BR$_OR_$RP$){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetRCBValuesResponse %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetRCBValuesResponse]");
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SetDataValueResponse %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SetDataValueResponse]");
+ }
+ }else if(mms_priv->mms_trans_p->conf_serv_pdu_type_req == MMS_IEC_61850_CONF_SERV_PDU_SELECTWITHVALUE){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "SelectWithValueResponse %s", private_data_get_moreCinfo(actx));
+ proto_item_append_text(mms_priv->pdu_item, " [SelectWithValueResponse]");
+ }
+ }else if(mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }
+ break;
+ default:
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ break;
+ }
+ }else if (mms_has_private_data(actx)){
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s%s%s",
+ private_data_get_preCinfo(actx), mms_MMSpdu_vals[branch_taken].strptr, private_data_get_moreCinfo(actx));
+ }else{
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%s",
+ mms_MMSpdu_vals[branch_taken].strptr);
+ }
+ }
return offset;
@@ -7333,40 +8455,227 @@ dissect_mms_MMSpdu(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn
* Dissect MMS PDUs inside a PPDU.
*/
static int
-dissect_mms(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
+dissect_mms(tvbuff_t* tvb, packet_info* pinfo, proto_tree* parent_tree, void* data _U_)
{
- int offset = 0;
- int old_offset;
- proto_item *item=NULL;
- proto_tree *tree=NULL;
- asn1_ctx_t asn1_ctx;
- asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
-
- if(parent_tree){
- item = proto_tree_add_item(parent_tree, proto_mms, tvb, 0, -1, ENC_NA);
- tree = proto_item_add_subtree(item, ett_mms);
- }
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS");
- col_clear(pinfo->cinfo, COL_INFO);
-
- while (tvb_reported_length_remaining(tvb, offset) > 0){
- old_offset=offset;
- offset=dissect_mms_MMSpdu(FALSE, tvb, offset, &asn1_ctx , tree, -1);
- if(offset == old_offset){
- proto_tree_add_expert(tree, pinfo, &ei_mms_zero_pdu, tvb, offset, -1);
- break;
- }
- }
- return tvb_captured_length(tvb);
+ int offset = 0;
+ int old_offset;
+ proto_item* item = NULL;
+ proto_tree* tree = NULL;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, proto_mms, tvb, 0, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_mms);
+ asn1_ctx.subtree.top_tree = parent_tree;
+ }
+ if (use_iec61850_mapping) {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS/IEC61850");
+ }
+ else {
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MMS");
+ }
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ while (tvb_reported_length_remaining(tvb, offset) > 0) {
+ old_offset = offset;
+ if (use_iec61850_mapping) {
+ asn1_ctx.private_data = (void*)wmem_new0(pinfo->pool, mms_actx_private_data_t);
+ }
+ offset = dissect_mms_MMSpdu(FALSE, tvb, offset, &asn1_ctx, tree, -1);
+ if (asn1_ctx.private_data) {
+ wmem_free(pinfo->pool, asn1_ctx.private_data);
+ }
+ if (offset == old_offset) {
+ proto_tree_add_expert(tree, pinfo, &ei_mms_zero_pdu, tvb, offset, -1);
+ break;
+ }
+ }
+ return tvb_captured_length(tvb);
}
/*--- proto_register_mms -------------------------------------------*/
void proto_register_mms(void) {
- /* List of fields */
- static hf_register_info hf[] =
- {
+ /* List of fields */
+ static hf_register_info hf[] =
+ {
+ { &hf_mms_response_in,
+ { "Response In", "mms.response_in",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE), 0x0,
+ "The response to this mms request is in this frame", HFILL }
+ },
+ { &hf_mms_response_to,
+ { "Request In", "mms.response_to",
+ FT_FRAMENUM, BASE_NONE, FRAMENUM_TYPE(FT_FRAMENUM_REQUEST), 0x0,
+ "This is a response to the mms request in this frame", HFILL }
+ },
+ { &hf_mms_response_time,
+ { "Response Time", "mms.response_time",
+ FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
+ "The time between the Call and the Reply", HFILL }
+ },
+ { &hf_mms_iec61850_rptid,
+ { "RptID", "mms.iec61850.rptid",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_reported_optflds,
+ { "Reported OptFlds", "mms.iec61850.reported_optfld",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_seqnum,
+ { "SeqNum", "mms.iec61850.seqnum",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_timeofentry,
+ { "TimeOfEntry", "mms.iec61850.timeofentry",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_datset,
+ { "DatSet", "mms.iec61850.datset",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_bufovfl,
+ { "BufOvfl", "mms.iec61850.bufovfl",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_confrev,
+ { "ConfRev", "mms.iec61850.confrev",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_inclusion_bitstring,
+ { "Inclusion-bitstring", "mms.iec61850.inclusion_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_ctlModel,
+ { "ctlModel", "mms.iec61850.ctlmodel",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_cntmodel_vals), 0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_QualityC0,
+ { "Validity", "mms.iec61850.validity",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_validity_vals), 0xC0,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality20,
+ { "Overflow", "mms.iec61850.overflow",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality10,
+ { "OutofRange", "mms.iec61850.outofrange",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality8,
+ { "BadReference", "mms.iec61850.badreference",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality4,
+ { "Oscillatory", "mms.iec61850.oscillatory",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality2,
+ { "Failure", "mms.iec61850.failure",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality1,
+ { "OldData", "mms.iec61850.oldData",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0080,
+ { "Inconsistent", "mms.iec61850.inconsistent",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0040,
+ { "Inaccurate", "mms.iec61850.inaccurate",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0020,
+ { "Source", "mms.iec61850.source",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_source_vals), 0x20,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0010,
+ { "Test", "mms.iec61850.test",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_Quality0008,
+ { "OperatorBlocked", "mms.iec61850.operatorblocked",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_mms_iec61850_quality_bitstring,
+ { "Quality", "mms.iec61850.quality_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality80,
+ { "Leap Second Known", "mms.iec61850.leapsecondknown",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality40,
+ { "ClockFailure", "mms.iec61850.clockfailure",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality20,
+ { "Clock not synchronized", "mms.iec61850.clocknotsynchronized",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_timequality1F,
+ { "Time Accuracy", "mms.iec61850.timeaccuracy",
+ FT_UINT8, BASE_HEX, VALS(mms_iec6150_timeaccuracy_vals), 0x1F,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_bitstring,
+ { "Check", "mms.iec61850.check_bitstring",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_b1,
+ { "Synchrocheck", "mms.iec61850.synchrocheck",
+ FT_BOOLEAN, 2, NULL, 0x2,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_check_b0,
+ { "Interlock-check", "mms.iec61850.interlockcheck",
+ FT_BOOLEAN, 2, NULL, 0x1,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_orcategory,
+ { "orCategory", "mms.iec61850.orcategory",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_orcategory_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_beh$stval,
+ { "beh", "mms.iec61850.beh",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_mod$stval,
+ { "mod", "mms.iec61850.mod",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_beh_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_health$stval,
+ { "health", "mms.iec61850.health",
+ FT_UINT8, BASE_DEC, VALS(mms_iec6150_health_vals), 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_ctlval,
+ { "ctlVal", "mms.iec61850.ctlval",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin,
+ { "Origin", "mms.iec61850.origin",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin_orcat,
+ { "Origin Category", "mms.iec61850.orcat",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_origin_orident,
+ { "Origin Identifier", "mms.iec61850.orident",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_ctlNum,
+ { "ctlNum", "mms.iec61850.ctlnum",
+ FT_INT8, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_T,
+ { "T(Timestamp)", "mms.iec61850.timestamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL } },
+ { &hf_mms_iec61850_test,
+ { "Test", "mms.iec61850.test",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_mms_confirmed_RequestPDU,
{ "confirmed-RequestPDU", "mms.confirmed_RequestPDU_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -8015,8 +9324,8 @@ void proto_register_mms(void) {
{ "defineEventAction", "mms.defineEventAction_element",
FT_NONE, BASE_NONE, NULL, 0,
"DefineEventAction_Response", HFILL }},
- { &hf_mms_deleteEventAction,
- { "deleteEventAction", "mms.deleteEventAction",
+ { &hf_mms_confirmedServiceRequest_deleteEventAction_01,
+ { "deleteEventAction", "mms.confirmedServiceRequest.deleteEventAction",
FT_INT32, BASE_DEC, NULL, 0,
"DeleteEventAction_Response", HFILL }},
{ &hf_mms_getEventActionAttributes_01,
@@ -8123,10 +9432,10 @@ void proto_register_mms(void) {
{ "domainId", "mms.domainId",
FT_STRING, BASE_NONE, NULL, 0,
"Identifier", HFILL }},
- { &hf_mms_itemId,
+ { &hf_mms_objectName_domain_specific_itemId,
{ "itemId", "mms.itemId",
FT_STRING, BASE_NONE, NULL, 0,
- "Identifier", HFILL }},
+ "ObjectName_domain_specific_itemid", HFILL }},
{ &hf_mms_aa_specific,
{ "aa-specific", "mms.aa_specific",
FT_STRING, BASE_NONE, NULL, 0,
@@ -8451,18 +9760,6 @@ void proto_register_mms(void) {
{ "localDetail", "mms.localDetail",
FT_BYTES, BASE_NONE, NULL, 0,
"BIT_STRING_SIZE_0_128", HFILL }},
- { &hf_mms_extendedObjectClass,
- { "extendedObjectClass", "mms.extendedObjectClass",
- FT_UINT32, BASE_DEC, VALS(mms_T_extendedObjectClass_vals), 0,
- NULL, HFILL }},
- { &hf_mms_objectClass,
- { "objectClass", "mms.objectClass",
- FT_INT32, BASE_DEC, VALS(mms_T_objectClass_vals), 0,
- NULL, HFILL }},
- { &hf_mms_objectScope,
- { "objectScope", "mms.objectScope",
- FT_UINT32, BASE_DEC, VALS(mms_T_objectScope_vals), 0,
- NULL, HFILL }},
{ &hf_mms_vmdSpecific,
{ "vmdSpecific", "mms.vmdSpecific_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -8475,6 +9772,18 @@ void proto_register_mms(void) {
{ "aaSpecific", "mms.aaSpecific_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_mms_extendedObjectClass,
+ { "extendedObjectClass", "mms.extendedObjectClass",
+ FT_UINT32, BASE_DEC, VALS(mms_T_extendedObjectClass_vals), 0,
+ NULL, HFILL }},
+ { &hf_mms_objectClass,
+ { "objectClass", "mms.objectClass",
+ FT_INT32, BASE_DEC, VALS(mms_ObjectClass_vals), 0,
+ NULL, HFILL }},
+ { &hf_mms_objectScope,
+ { "objectScope", "mms.objectScope",
+ FT_UINT32, BASE_DEC, VALS(mms_ObjectScope_vals), 0,
+ NULL, HFILL }},
{ &hf_mms_getNameList_Request_continueAfter,
{ "continueAfter", "mms.getNameList-Request_continueAfter",
FT_STRING, BASE_NONE, NULL, 0,
@@ -8517,8 +9826,8 @@ void proto_register_mms(void) {
"T_extendedObjectClass_01", HFILL }},
{ &hf_mms_objectClass_01,
{ "objectClass", "mms.objectClass",
- FT_INT32, BASE_DEC, VALS(mms_T_objectClass_01_vals), 0,
- "T_objectClass_01", HFILL }},
+ FT_INT32, BASE_DEC, VALS(mms_T_objectClass_vals), 0,
+ NULL, HFILL }},
{ &hf_mms_currentName,
{ "currentName", "mms.currentName",
FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
@@ -8838,7 +10147,7 @@ void proto_register_mms(void) {
{ &hf_mms_listOfData,
{ "listOfData", "mms.listOfData",
FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_Data", HFILL }},
+ NULL, HFILL }},
{ &hf_mms_listOfData_item,
{ "Data", "mms.Data",
FT_UINT32, BASE_DEC, VALS(mms_Data_vals), 0,
@@ -8859,6 +10168,10 @@ void proto_register_mms(void) {
{ "variableAccessSpecification", "mms.variableAccessSpecification",
FT_UINT32, BASE_DEC, VALS(mms_VariableAccessSpecification_vals), 0,
NULL, HFILL }},
+ { &hf_mms_listOfAccessResult_01,
+ { "listOfAccessResult", "mms.listOfAccessResult",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
{ &hf_mms_name,
{ "name", "mms.name",
FT_UINT32, BASE_DEC, VALS(mms_ObjectName_vals), 0,
@@ -8966,7 +10279,7 @@ void proto_register_mms(void) {
{ &hf_mms_structure_01,
{ "structure", "mms.structure",
FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_Data", HFILL }},
+ "T_structure_01", HFILL }},
{ &hf_mms_structure_item,
{ "Data", "mms.Data",
FT_UINT32, BASE_DEC, VALS(mms_Data_vals), 0,
@@ -8978,7 +10291,7 @@ void proto_register_mms(void) {
{ &hf_mms_data_bit_string,
{ "bit-string", "mms.data_bit-string",
FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
+ "T_data_bit_string", HFILL }},
{ &hf_mms_integer_01,
{ "integer", "mms.integer",
FT_INT32, BASE_DEC, NULL, 0,
@@ -8986,7 +10299,7 @@ void proto_register_mms(void) {
{ &hf_mms_unsigned_01,
{ "unsigned", "mms.unsigned",
FT_INT32, BASE_DEC, NULL, 0,
- "INTEGER", HFILL }},
+ NULL, HFILL }},
{ &hf_mms_floating_point,
{ "floating-point", "mms.floating_point",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -8994,15 +10307,15 @@ void proto_register_mms(void) {
{ &hf_mms_data_octet_string,
{ "octet-string", "mms.data.octet-string",
FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
+ "T_data_octet_string", HFILL }},
{ &hf_mms_data_visible_string,
{ "visible-string", "mms.data.visible-string",
FT_STRING, BASE_NONE, NULL, 0,
- "VisibleString", HFILL }},
+ "T_data_visible_string", HFILL }},
{ &hf_mms_data_binary_time,
{ "binary-time", "mms.data.binary-time",
FT_STRING, BASE_NONE, NULL, 0,
- "TimeOfDay", HFILL }},
+ "T_data_binary_time", HFILL }},
{ &hf_mms_bcd_01,
{ "bcd", "mms.bcd",
FT_INT32, BASE_DEC, NULL, 0,
@@ -9687,6 +11000,46 @@ void proto_register_mms(void) {
{ "lastModified", "mms.lastModified",
FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"GeneralizedTime", HFILL }},
+ { &hf_mms_ReportedOptFlds_reserved,
+ { "reserved", "mms.ReportedOptFlds.reserved",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_sequence_number,
+ { "sequence-number", "mms.ReportedOptFlds.sequence.number",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_report_time_stamp,
+ { "report-time-stamp", "mms.ReportedOptFlds.report.time.stamp",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_reason_for_inclusion,
+ { "reason-for-inclusion", "mms.ReportedOptFlds.reason.for.inclusion",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_data_set_name,
+ { "data-set-name", "mms.ReportedOptFlds.data.set.name",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_data_reference,
+ { "data-reference", "mms.ReportedOptFlds.data.reference",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_buffer_overflow,
+ { "buffer-overflow", "mms.ReportedOptFlds.buffer.overflow",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_entryID,
+ { "entryID", "mms.ReportedOptFlds.entryID",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_conf_revision,
+ { "conf-revision", "mms.ReportedOptFlds.conf.revision",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_mms_ReportedOptFlds_segmentation,
+ { "segmentation", "mms.ReportedOptFlds.segmentation",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
{ &hf_mms_ParameterSupportOptions_str1,
{ "str1", "mms.ParameterSupportOptions.str1",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -10099,11 +11452,14 @@ void proto_register_mms(void) {
{ "any-to-deleted", "mms.Transitions.any.to.deleted",
FT_BOOLEAN, 8, NULL, 0x02,
NULL, HFILL }},
- };
+ };
- /* List of subtrees */
- static gint *ett[] = {
- &ett_mms,
+ /* List of subtrees */
+ static gint* ett[] = {
+ &ett_mms,
+ &ett_mms_iec61850_quality_bitstring,
+ &ett_mms_iec61850_check_bitstring,
+ &ett_mms_ReportedOptFlds,
&ett_mms_MMSpdu,
&ett_mms_Confirmed_RequestPDU,
&ett_mms_SEQUENCE_OF_Modifier,
@@ -10139,9 +11495,9 @@ void proto_register_mms(void) {
&ett_mms_RejectPDU,
&ett_mms_T_rejectReason,
&ett_mms_Status_Response,
+ &ett_mms_ObjectScope,
&ett_mms_GetNameList_Request,
&ett_mms_T_extendedObjectClass,
- &ett_mms_T_objectScope,
&ett_mms_GetNameList_Response,
&ett_mms_SEQUENCE_OF_Identifier,
&ett_mms_Identify_Response,
@@ -10196,10 +11552,11 @@ void proto_register_mms(void) {
&ett_mms_Read_Response,
&ett_mms_SEQUENCE_OF_AccessResult,
&ett_mms_Write_Request,
- &ett_mms_SEQUENCE_OF_Data,
+ &ett_mms_T_listOfData,
&ett_mms_Write_Response,
&ett_mms_Write_Response_item,
&ett_mms_InformationReport,
+ &ett_mms_T_listOfAccessResult,
&ett_mms_GetVariableAccessAttributes_Request,
&ett_mms_GetVariableAccessAttributes_Response,
&ett_mms_DefineNamedVariable_Request,
@@ -10222,6 +11579,8 @@ void proto_register_mms(void) {
&ett_mms_DeleteNamedType_Response,
&ett_mms_AccessResult,
&ett_mms_Data,
+ &ett_mms_SEQUENCE_OF_Data,
+ &ett_mms_T_structure_01,
&ett_mms_VariableAccessSpecification,
&ett_mms_T_listOfVariable_02,
&ett_mms_T_listOfVariable_item_02,
@@ -10319,81 +11678,88 @@ void proto_register_mms(void) {
&ett_mms_SEQUENCE_OF_DirectoryEntry,
&ett_mms_DirectoryEntry,
&ett_mms_FileAttributes,
- };
+ };
+
+ static ei_register_info ei[] = {
+ { &ei_mms_mal_timeofday_encoding, { "mms.malformed.timeofday_encoding", PI_MALFORMED, PI_WARN, "BER Error: malformed TimeOfDay encoding", EXPFILL }},
+ { &ei_mms_mal_utctime_encoding, { "mms.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed IEC61850 UTCTime encoding", EXPFILL }},
+ { &ei_mms_zero_pdu, { "mms.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte MMS PDU", EXPFILL }},
+ };
- static ei_register_info ei[] = {
- { &ei_mms_mal_timeofday_encoding, { "mms.malformed.timeofday_encoding", PI_MALFORMED, PI_WARN, "BER Error: malformed TimeOfDay encoding", EXPFILL }},
- { &ei_mms_mal_utctime_encoding, { "mms.malformed.utctime", PI_MALFORMED, PI_WARN, "BER Error: malformed IEC61850 UTCTime encoding", EXPFILL }},
- { &ei_mms_zero_pdu, { "mms.zero_pdu", PI_PROTOCOL, PI_ERROR, "Internal error, zero-byte MMS PDU", EXPFILL }},
- };
+ expert_module_t* expert_mms;
- expert_module_t* expert_mms;
+ /* Register protocol */
+ proto_mms = proto_register_protocol(PNAME, PSNAME, PFNAME);
+ register_dissector("mms", dissect_mms, proto_mms);
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_mms, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+ expert_mms = expert_register_protocol(proto_mms);
+ expert_register_field_array(expert_mms, ei, array_length(ei));
- /* Register protocol */
- proto_mms = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("mms", dissect_mms, proto_mms);
- /* Register fields and subtrees */
- proto_register_field_array(proto_mms, hf, array_length(hf));
- proto_register_subtree_array(ett, array_length(ett));
- expert_mms = expert_register_protocol(proto_mms);
- expert_register_field_array(expert_mms, ei, array_length(ei));
+ /* Setting to enable/disable the IEC-61850 mapping on MMS */
+ module_t* mms_module = prefs_register_protocol(proto_mms, proto_reg_handoff_mms);
+ prefs_register_bool_preference(mms_module, "use_iec61850_mapping",
+ "Dissect MMS as IEC-61850",
+ "Enables or disables dissection as IEC-61850 on top of MMS",
+ &use_iec61850_mapping);
}
static gboolean
-dissect_mms_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data _U_)
+dissect_mms_heur(tvbuff_t* tvb, packet_info* pinfo, proto_tree* parent_tree, void* data _U_)
{
- /* must check that this really is an mms packet */
- int offset = 0;
- guint32 length = 0 ;
- guint32 oct;
- gint idx = 0 ;
+ /* must check that this really is an mms packet */
+ int offset = 0;
+ guint32 length = 0;
+ guint32 oct;
+ gint idx = 0;
- gint8 tmp_class;
- bool tmp_pc;
- gint32 tmp_tag;
+ gint8 tmp_class;
+ bool tmp_pc;
+ gint32 tmp_tag;
- /* first, check do we have at least 2 bytes (pdu) */
- if (!tvb_bytes_exist(tvb, 0, 2))
- return FALSE; /* no */
+ /* first, check do we have at least 2 bytes (pdu) */
+ if (!tvb_bytes_exist(tvb, 0, 2))
+ return FALSE; /* no */
- /* can we recognize MMS PDU ? Return FALSE if not */
- /* get MMS PDU type */
- offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
+ /* can we recognize MMS PDU ? Return FALSE if not */
+ /* get MMS PDU type */
+ offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
- /* check MMS type */
+ /* check MMS type */
- /* Class should be constructed */
- if (tmp_class!=BER_CLASS_CON)
- return FALSE;
+ /* Class should be constructed */
+ if (tmp_class != BER_CLASS_CON)
+ return FALSE;
- /* see if the tag is a valid MMS PDU */
- try_val_to_str_idx(tmp_tag, mms_MMSpdu_vals, &idx);
- if (idx == -1) {
- return FALSE; /* no, it isn't an MMS PDU */
- }
+ /* see if the tag is a valid MMS PDU */
+ try_val_to_str_idx(tmp_tag, mms_MMSpdu_vals, &idx);
+ if (idx == -1) {
+ return FALSE; /* no, it isn't an MMS PDU */
+ }
- /* check MMS length */
- oct = tvb_get_guint8(tvb, offset)& 0x7F;
- if (oct==0)
- /* MMS requires length after tag so not MMS if indefinite length*/
- return FALSE;
+ /* check MMS length */
+ oct = tvb_get_guint8(tvb, offset) & 0x7F;
+ if (oct == 0)
+ /* MMS requires length after tag so not MMS if indefinite length*/
+ return FALSE;
- offset = get_ber_length(tvb, offset, &length, NULL);
- /* do we have enough bytes? */
- if (!tvb_bytes_exist(tvb, offset, length))
- return FALSE;
+ offset = get_ber_length(tvb, offset, &length, NULL);
+ /* do we have enough bytes? */
+ if (!tvb_bytes_exist(tvb, offset, length))
+ return FALSE;
- dissect_mms(tvb, pinfo, parent_tree, data);
- return TRUE;
+ dissect_mms(tvb, pinfo, parent_tree, data);
+ return TRUE;
}
/*--- proto_reg_handoff_mms --- */
void proto_reg_handoff_mms(void) {
- register_ber_oid_dissector("1.0.9506.2.3", dissect_mms, proto_mms,"MMS");
- register_ber_oid_dissector("1.0.9506.2.1", dissect_mms, proto_mms,"mms-abstract-syntax-version1(1)");
- heur_dissector_add("cotp", dissect_mms_heur, "MMS over COTP", "mms_cotp", proto_mms, HEURISTIC_ENABLE);
- heur_dissector_add("cotp_is", dissect_mms_heur, "MMS over COTP (inactive subset)", "mms_cotp_is", proto_mms, HEURISTIC_ENABLE);
+ register_ber_oid_dissector("1.0.9506.2.3", dissect_mms, proto_mms, "MMS");
+ register_ber_oid_dissector("1.0.9506.2.1", dissect_mms, proto_mms, "mms-abstract-syntax-version1(1)");
+ heur_dissector_add("cotp", dissect_mms_heur, "MMS over COTP", "mms_cotp", proto_mms, HEURISTIC_ENABLE);
+ heur_dissector_add("cotp_is", dissect_mms_heur, "MMS over COTP (inactive subset)", "mms_cotp_is", proto_mms, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-mndp.c b/epan/dissectors/packet-mndp.c
index 578048603b..7845c421b1 100644
--- a/epan/dissectors/packet-mndp.c
+++ b/epan/dissectors/packet-mndp.c
@@ -79,7 +79,7 @@ match_strextval_idx(guint32 val, const ext_value_string *vs, gint *idx) {
if (vs[i].value == val) {
if (idx)
*idx = i;
- return(vs[i].strptr);
+ return vs[i].strptr;
}
i++;
}
diff --git a/epan/dissectors/packet-monero.c b/epan/dissectors/packet-monero.c
index f3ef30146a..4df22527b7 100644
--- a/epan/dissectors/packet-monero.c
+++ b/epan/dissectors/packet-monero.c
@@ -82,7 +82,7 @@ static int * const flags_hf_flags[] = {
static gint ett_monero;
static gint ett_flags;
-static gboolean monero_desegment = TRUE;
+static bool monero_desegment = true;
static guint
get_monero_pdu_length(packet_info *pinfo _U_, tvbuff_t *tvb,
diff --git a/epan/dissectors/packet-mongo.c b/epan/dissectors/packet-mongo.c
index 16d854d102..0af038ce9b 100644
--- a/epan/dissectors/packet-mongo.c
+++ b/epan/dissectors/packet-mongo.c
@@ -834,7 +834,10 @@ dissect_op_msg_section(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tr
switch (e_type) {
case KIND_BODY:
- dissect_bson_document(tvb, pinfo, offset, section_tree, hf_mongo_msg_sections_section_body);
+ section_len = dissect_bson_document(tvb, pinfo, offset, section_tree, hf_mongo_msg_sections_section_body);
+ /* If section_len is bogus (e.g., negative), dissect_bson_document sets
+ * an expert info and can return a different value than read above.
+ */
break;
case KIND_DOCUMENT_SEQUENCE: {
gint32 dsi_length;
@@ -843,6 +846,9 @@ dissect_op_msg_section(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tr
proto_tree *documents_tree;
proto_tree_add_item(section_tree, hf_mongo_msg_sections_section_size, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ /* This is redundant with the lengths in the documents, we don't use this
+ * size at all. We could still report an expert info if it's bogus.
+ */
offset += 4;
to_read -= 4;
@@ -1018,6 +1024,10 @@ get_mongo_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data
* Get the length of the MONGO packet.
*/
plen = tvb_get_letohl(tvb, offset);
+ /* XXX - This is signed, but we can only return an unsigned to
+ * tcp_dissect_pdus. If negative, should we return something like
+ * 1 (less than the fixed len 4) so that it causes a ReportedBoundsError?
+ */
return plen;
}
@@ -1038,6 +1048,13 @@ test_mongo(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
return FALSE;
}
+ if (tvb_get_letohil(tvb, offset) < 4) {
+ /* Message sizes are signed in the MongoDB Wire Protocol and
+ * include the header.
+ */
+ return FALSE;
+ }
+
opcode = tvb_get_letohl(tvb, offset + 12);
/* As 5.1 and later uses only 2 opcodes, we might be able to use that
* (plus some other information) to do heuristics on other ports.
@@ -1067,7 +1084,7 @@ proto_register_mongo(void)
{ &hf_mongo_message_length,
{ "Message Length", "mongo.message_length",
FT_INT32, BASE_DEC, NULL, 0x0,
- "Total message size (include this)", HFILL }
+ "Total message size (including header)", HFILL }
},
{ &hf_mongo_request_id,
{ "Request ID", "mongo.request_id",
diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c
index d9d76f5327..932e7108ce 100644
--- a/epan/dissectors/packet-mp2t.c
+++ b/epan/dissectors/packet-mp2t.c
@@ -282,7 +282,7 @@ static const fragment_items mp2t_msg_frag_items = {
* +-> ts_analysis_data
*/
-static wmem_map_t *mp2t_stream_hashtable = NULL;
+static wmem_map_t *mp2t_stream_hashtable;
typedef struct {
const conversation_t* conv;
diff --git a/epan/dissectors/packet-mpeg-audio.c b/epan/dissectors/packet-mpeg-audio.c
index f886a37d5d..6458375c48 100644
--- a/epan/dissectors/packet-mpeg-audio.c
+++ b/epan/dissectors/packet-mpeg-audio.c
@@ -44,8 +44,8 @@ static int hf_mpeg_audio_comment; /* OCTET_STRING_SIZE_28 */
static int hf_mpeg_audio_must_be_zero; /* INTEGER_0_255 */
static int hf_mpeg_audio_track; /* INTEGER_0_255 */
static int hf_mpeg_audio_genre; /* T_genre */
-static gint ett_mpeg_audio_Audio;
-static gint ett_mpeg_audio_ID3v1;
+static int ett_mpeg_audio_Audio;
+static int ett_mpeg_audio_ID3v1;
static int
diff --git a/epan/dissectors/packet-mpeg-dsmcc.c b/epan/dissectors/packet-mpeg-dsmcc.c
index c677f5976c..4a5f05c886 100644
--- a/epan/dissectors/packet-mpeg-dsmcc.c
+++ b/epan/dissectors/packet-mpeg-dsmcc.c
@@ -62,7 +62,7 @@ static dissector_handle_t dsmcc_ts_handle, dsmcc_tcp_handle, dsmcc_udp_handle;
static int proto_dsmcc;
-static gboolean dsmcc_sect_check_crc = FALSE;
+static bool dsmcc_sect_check_crc;
/* NOTE: Please add values numerically according to 13818-6 so it is easier to
* keep track of what parameters/tables are associated with each other.
diff --git a/epan/dissectors/packet-mpeg-pes.c b/epan/dissectors/packet-mpeg-pes.c
index 77241de6da..d1ace44430 100644
--- a/epan/dissectors/packet-mpeg-pes.c
+++ b/epan/dissectors/packet-mpeg-pes.c
@@ -73,12 +73,12 @@ static int hf_mpeg_pes_must_be_zero; /* BIT_STRING_SIZE_5 */
static int hf_mpeg_pes_temporal_sequence_number; /* BIT_STRING_SIZE_10 */
static int hf_mpeg_pes_frame_type; /* T_frame_type */
static int hf_mpeg_pes_vbv_delay; /* BIT_STRING_SIZE_16 */
-static gint ett_mpeg_pes_PES;
-static gint ett_mpeg_pes_Stream;
-static gint ett_mpeg_pes_Sequence_header;
-static gint ett_mpeg_pes_Sequence_extension;
-static gint ett_mpeg_pes_Group_of_pictures;
-static gint ett_mpeg_pes_Picture;
+static int ett_mpeg_pes_PES;
+static int ett_mpeg_pes_Stream;
+static int ett_mpeg_pes_Sequence_header;
+static int ett_mpeg_pes_Sequence_extension;
+static int ett_mpeg_pes_Group_of_pictures;
+static int ett_mpeg_pes_Picture;
static int
diff --git a/epan/dissectors/packet-mpeg-pmt.c b/epan/dissectors/packet-mpeg-pmt.c
index 5ab474370a..321074f425 100644
--- a/epan/dissectors/packet-mpeg-pmt.c
+++ b/epan/dissectors/packet-mpeg-pmt.c
@@ -106,7 +106,7 @@ dissect_mpeg_pmt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
guint prog_info_len, es_info_len;
guint32 stream_type;
guint16 pid;
- gboolean current;
+ bool current;
proto_item *ti;
proto_tree *mpeg_pmt_tree;
diff --git a/epan/dissectors/packet-mpeg-sect.c b/epan/dissectors/packet-mpeg-sect.c
index 3069a62dcc..56af0c7c7c 100644
--- a/epan/dissectors/packet-mpeg-sect.c
+++ b/epan/dissectors/packet-mpeg-sect.c
@@ -35,7 +35,7 @@ static expert_field ei_mpeg_sect_crc;
static dissector_table_t mpeg_sect_tid_dissector_table;
-static gboolean mpeg_sect_check_crc = FALSE;
+static bool mpeg_sect_check_crc;
/* minimum length of the entire section ==
bytes from table_id to section_length == 3 bytes */
@@ -246,7 +246,7 @@ packet_mpeg_sect_mjd_to_utc_time(tvbuff_t *tvb, gint offset, nstime_t *utc_time)
guint
packet_mpeg_sect_header(tvbuff_t *tvb, guint offset,
- proto_tree *tree, guint *sect_len, gboolean *ssi)
+ proto_tree *tree, guint *sect_len, bool *ssi)
{
return packet_mpeg_sect_header_extra(tvb, offset, tree, sect_len,
NULL, ssi, NULL);
@@ -254,7 +254,7 @@ packet_mpeg_sect_header(tvbuff_t *tvb, guint offset,
guint
packet_mpeg_sect_header_extra(tvbuff_t *tvb, guint offset, proto_tree *tree,
- guint *sect_len, guint *reserved, gboolean *ssi,
+ guint *sect_len, guint *reserved, bool *ssi,
proto_item **items)
{
guint tmp;
@@ -334,7 +334,7 @@ dissect_mpeg_sect(tvbuff_t *tvb, packet_info *pinfo,
gint tvb_len;
gint offset = 0;
guint section_length = 0;
- gboolean syntax_indicator = FALSE;
+ bool syntax_indicator = false;
guint8 table_id;
proto_item *ti;
diff --git a/epan/dissectors/packet-mpeg-sect.h b/epan/dissectors/packet-mpeg-sect.h
index 22cc2534d0..dbf4a1bbf2 100644
--- a/epan/dissectors/packet-mpeg-sect.h
+++ b/epan/dissectors/packet-mpeg-sect.h
@@ -72,7 +72,7 @@ packet_mpeg_sect_mjd_to_utc_time(tvbuff_t *tvb, gint offset, nstime_t *utc_time)
*/
extern guint
packet_mpeg_sect_header(tvbuff_t *tvb, guint offset,
- proto_tree *tree, guint *sect_len, gboolean *ssi);
+ proto_tree *tree, guint *sect_len, bool *ssi);
/*
* Used to return all the values & items for 'strict' processing of the
@@ -80,7 +80,7 @@ packet_mpeg_sect_header(tvbuff_t *tvb, guint offset,
*/
extern guint
packet_mpeg_sect_header_extra(tvbuff_t *tvb, guint offset, proto_tree *tree,
- guint *sect_len, guint *reserved, gboolean *ssi,
+ guint *sect_len, guint *reserved, bool *ssi,
proto_item **items);
/*
diff --git a/epan/dissectors/packet-mpls-echo.c b/epan/dissectors/packet-mpls-echo.c
index 0db9a69afa..c7e10db711 100644
--- a/epan/dissectors/packet-mpls-echo.c
+++ b/epan/dissectors/packet-mpls-echo.c
@@ -234,7 +234,7 @@ static int hf_mpls_echo_tlv_echo_jitter;
static int hf_mpls_echo_tlv_responder_indent_type;
static int hf_mpls_echo_tlv_responder_indent_len;
static int hf_mpls_echo_tlv_responder_indent_ipv4;
-/* static int hf_mpls_echo_tlv_responder_indent_ipv6; */
+static int hf_mpls_echo_tlv_responder_indent_ipv6;
static int hf_mpls_echo_tlv_bfd;
static gint ett_mpls_echo;
@@ -1743,8 +1743,8 @@ dissect_mpls_echo_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tre
hidden_item = proto_tree_add_item(mpls_echo_tlv_tree, hf_mpls_echo_tlv_responder_indent_len,
tvb, offset + 6, 2, ENC_BIG_ENDIAN);
proto_item_set_hidden(hidden_item);
- proto_tree_add_item(mpls_echo_tlv_tree, hf_mpls_echo_tlv_responder_indent_ipv4,
- tvb, offset + 8, 16, ENC_BIG_ENDIAN);
+ proto_tree_add_item(mpls_echo_tlv_tree, hf_mpls_echo_tlv_responder_indent_ipv6,
+ tvb, offset + 8, 16, ENC_NA);
break;
}
break;
@@ -2755,12 +2755,10 @@ proto_register_mpls_echo(void)
{ "Target IPv4 Address", "mpls_echo.tlv.resp_id.ipv4",
FT_IPv4, BASE_NONE, NULL, 0x0, "P2MP Responder ID TLV IPv4 Address", HFILL}
},
-#if 0
{ &hf_mpls_echo_tlv_responder_indent_ipv6,
{ "Target IPv6 Address", "mpls_echo.tlv.resp_id.ipv6",
FT_IPv6, BASE_NONE, NULL, 0x0, "P2MP Responder ID TLV IPv6 Address", HFILL}
},
-#endif
{ &hf_mpls_echo_tlv_echo_jitter,
{ "Echo Jitter time", "mpls_echo.tlv.echo_jitter",
FT_UINT32, BASE_DEC, NULL, 0x0, "MPLS ECHO Jitter time", HFILL}
diff --git a/epan/dissectors/packet-mpls.c b/epan/dissectors/packet-mpls.c
index 462442c74f..5e0cdd951d 100644
--- a/epan/dissectors/packet-mpls.c
+++ b/epan/dissectors/packet-mpls.c
@@ -95,7 +95,7 @@ static dissector_handle_t mpls_pwcw_handle;
static dissector_handle_t mpls_mcc_handle;
/* For RFC6391 - Flow aware transport of pseudowire over a mpls PSN*/
-static gboolean mpls_bos_flowlabel = FALSE;
+static bool mpls_bos_flowlabel;
static int hf_mpls_label;
static int hf_mpls_label_special;
diff --git a/epan/dissectors/packet-mq-pcf.c b/epan/dissectors/packet-mq-pcf.c
index 1d598a3c4a..9c01149a45 100644
--- a/epan/dissectors/packet-mq-pcf.c
+++ b/epan/dissectors/packet-mq-pcf.c
@@ -149,6 +149,8 @@ static void dissect_mqpcf_parm_int(tvbuff_t *tvb, proto_tree *tree, guint offset
}
}
}
+
+// NOLINTNEXTLINE(misc-no-recursion)
int dissect_mqpcf_parm_grp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* mq_tree,
guint offset, guint bLittleEndian, gboolean bParse)
{
@@ -169,6 +171,7 @@ int dissect_mqpcf_parm_grp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* mq_tre
return offset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
guint32 dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq_tree,
guint offset, guint32 uCount, guint bLittleEndian, gboolean bParse)
{
@@ -188,11 +191,11 @@ guint32 dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq_tre
guint32 uDig;
guint32 _offset = offset;
- const char sMaxLst[] = " Max # of List reached. DECODE interrupted (actual %u of %u)";
- const char sPrmLn0[] = " MQPrm[%3u] has a zero length. DECODE Failed (MQPrm Count: %u)";
- const char sHdrLne[] = " MQPrm[%3u] PCF Header not enough remaining bytes in pdu. DECODE Failed (MQPrm Count: %u)";
- const char sMaxPrm[] = " Max # of Parm reached. DECODE interrupted (actual %u of %u)";
- const char sPrmCnt[] = " Cnt=-1 and Length(%u) < 16. DECODE interrupted for elem %u";
+ static const char *sMaxLst = " Max # of List reached. DECODE interrupted (actual %u of %u)";
+ static const char *sPrmLn0 = " MQPrm[%3u] has a zero length. DECODE Failed (MQPrm Count: %u)";
+ static const char *sHdrLne = " MQPrm[%3u] PCF Header not enough remaining bytes in pdu. DECODE Failed (MQPrm Count: %u)";
+ static const char *sMaxPrm = " Max # of Parm reached. DECODE interrupted (actual %u of %u)";
+ static const char *sPrmCnt = " Cnt=-1 and Length(%u) < 16. DECODE interrupted for elem %u";
proto_item *ti = NULL;
proto_tree *tree = NULL;
@@ -252,6 +255,7 @@ guint32 dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq_tre
uTyp, val_to_str_ext_const(uTyp, GET_VALS_EXTP(PrmTyp2), " Unkn") + 6,
uPrm, uPrm);
+ increment_dissection_depth(pinfo);
switch (uTyp)
{
case MQ_MQCFT_NONE:
@@ -571,6 +575,7 @@ guint32 dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq_tre
}
break;
}
+ decrement_dissection_depth(pinfo);
offset = tOfs + uLen;
}
if (u != uCount)
diff --git a/epan/dissectors/packet-mq.c b/epan/dissectors/packet-mq.c
index ee39e7819a..757ab9e00b 100644
--- a/epan/dissectors/packet-mq.c
+++ b/epan/dissectors/packet-mq.c
@@ -1013,10 +1013,10 @@ static dissector_handle_t mqpcf_handle;
static heur_dissector_list_t mq_heur_subdissector_list;
-static gboolean mq_desegment = TRUE;
-static gboolean mq_reassembly = TRUE;
+static bool mq_desegment = true;
+static bool mq_reassembly = true;
-static gboolean mq_in_reassembly = FALSE;
+static gboolean mq_in_reassembly;
static reassembly_table mq_reassembly_table;
diff --git a/epan/dissectors/packet-mqtt.c b/epan/dissectors/packet-mqtt.c
index e57d4e67b0..f704078383 100644
--- a/epan/dissectors/packet-mqtt.c
+++ b/epan/dissectors/packet-mqtt.c
@@ -611,7 +611,7 @@ static expert_field ei_unknown_topic_alias;
static gboolean reassemble_mqtt_over_tcp = TRUE;
/* Show Publish Message as text */
-static gboolean show_msg_as_text;
+static bool show_msg_as_text;
static guint get_mqtt_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
@@ -791,7 +791,7 @@ static void dissect_mqtt_reason_code(proto_tree *mqtt_tree, tvbuff_t *tvb, guint
&hf_mqtt_reason_code_auth
};
- if (mqtt_msg_type < (sizeof hf_rcode / sizeof hf_rcode[0]))
+ if (mqtt_msg_type < array_length(hf_rcode))
{
const int *hfindex = hf_rcode[mqtt_msg_type];
if (hfindex)
@@ -802,7 +802,7 @@ static void dissect_mqtt_reason_code(proto_tree *mqtt_tree, tvbuff_t *tvb, guint
}
/* MQTT v5.0: dissect the MQTT properties */
-static guint dissect_mqtt_properties(tvbuff_t *tvb, proto_tree *mqtt_tree, guint offset, int hf_property, mqtt_properties_t *mqtt_properties)
+static guint dissect_mqtt_properties(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mqtt_tree, guint offset, int hf_property, mqtt_properties_t *mqtt_properties)
{
proto_tree *mqtt_prop_tree;
proto_item *ti;
@@ -877,7 +877,7 @@ static guint dissect_mqtt_properties(tvbuff_t *tvb, proto_tree *mqtt_tree, guint
case PROP_CONTENT_TYPE:
{
gint length;
- proto_tree_add_item_ret_string_and_length(mqtt_prop_tree, hf_mqtt_prop_content_type, tvb, offset, 2, ENC_UTF_8, wmem_packet_scope(), &mqtt_properties->content_type, &length);
+ proto_tree_add_item_ret_string_and_length(mqtt_prop_tree, hf_mqtt_prop_content_type, tvb, offset, 2, ENC_UTF_8, pinfo->pool, &mqtt_properties->content_type, &length);
offset += length;
break;
}
@@ -1058,7 +1058,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
}
proto_tree_add_item_ret_uint(mqtt_tree, hf_mqtt_client_id_len, tvb, offset, 2, ENC_BIG_ENDIAN, &mqtt_str_len);
@@ -1071,7 +1071,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
{
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_will_property, &mqtt_will_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_will_property, &mqtt_will_properties);
}
ti = proto_tree_add_item_ret_uint(mqtt_tree, hf_mqtt_will_topic_len, tvb, offset, 2, ENC_BIG_ENDIAN, &mqtt_str_len);
@@ -1146,7 +1146,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
}
break;
@@ -1159,7 +1159,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
{
/* 'topic_regex' requires topic_str to be valid UTF-8. */
proto_tree_add_item_ret_string(mqtt_tree, hf_mqtt_topic, tvb, offset, mqtt_str_len, ENC_UTF_8|ENC_NA,
- wmem_packet_scope(), &topic_str);
+ pinfo->pool, &topic_str);
offset += mqtt_str_len;
}
@@ -1173,7 +1173,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
if (mqtt_properties.topic_alias != 0)
{
@@ -1237,7 +1237,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (!msg_handled) {
heur_dtbl_entry_t *hdtbl_entry;
tvbuff_t *msg_tvb = tvb_new_subset_length(tvb, offset, mqtt_payload_len);
- gchar *sub_data = wmem_strdup(wmem_packet_scope(), (const gchar*)topic_str);
+ gchar *sub_data = wmem_strdup(pinfo->pool, (const gchar*)topic_str);
dissector_try_heuristic(mqtt_topic_subdissector, msg_tvb, pinfo, tree, &hdtbl_entry, sub_data);
}
break;
@@ -1253,7 +1253,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
}
while (offset < tvb_reported_length(tvb))
@@ -1298,7 +1298,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
}
while (offset < tvb_reported_length(tvb))
@@ -1328,7 +1328,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
}
while (offset < tvb_reported_length(tvb))
@@ -1368,7 +1368,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
*/
if (mqtt_msg_len > 3)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
}
}
break;
@@ -1380,7 +1380,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
while (offset < tvb_reported_length(tvb))
{
@@ -1418,7 +1418,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
*/
if (mqtt_msg_len >= 2)
{
- offset += dissect_mqtt_properties(tvb, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
+ offset += dissect_mqtt_properties(tvb, pinfo, mqtt_tree, offset, hf_mqtt_property, &mqtt_properties);
}
}
break;
diff --git a/epan/dissectors/packet-mrp-mmrp.c b/epan/dissectors/packet-mrp-mmrp.c
index df387d3718..ee15d0e076 100644
--- a/epan/dissectors/packet-mrp-mmrp.c
+++ b/epan/dissectors/packet-mrp-mmrp.c
@@ -201,7 +201,7 @@ dissect_mmrp_three_packed_event(proto_tree *vect_attr_tree, tvbuff_t *tvb, guint
offset++;
}
- return( offset );
+ return offset;
}
/* dissect_main
diff --git a/epan/dissectors/packet-mrp-msrp.c b/epan/dissectors/packet-mrp-msrp.c
index bb666b2523..80fed8ee77 100644
--- a/epan/dissectors/packet-mrp-msrp.c
+++ b/epan/dissectors/packet-mrp-msrp.c
@@ -385,7 +385,7 @@ dissect_msrp_three_packed_event(proto_tree *vect_attr_tree, tvbuff_t *tvb, guint
offset++;
}
- return( offset );
+ return offset ;
}
@@ -429,7 +429,7 @@ dissect_msrp_four_packed_event(proto_tree *vect_attr_tree, tvbuff_t *tvb, guint
offset++;
}
- return( offset );
+ return offset;
}
diff --git a/epan/dissectors/packet-mrp-mvrp.c b/epan/dissectors/packet-mrp-mvrp.c
index c17ba03645..96f9745947 100644
--- a/epan/dissectors/packet-mrp-mvrp.c
+++ b/epan/dissectors/packet-mrp-mvrp.c
@@ -195,7 +195,7 @@ dissect_mvrp_three_packed_event(proto_tree *vect_attr_tree, tvbuff_t *tvb, guint
offset++;
}
- return( offset );
+ return offset;
}
/* dissect_main
diff --git a/epan/dissectors/packet-ms-do.c b/epan/dissectors/packet-ms-do.c
index a0e172ed7f..8cf64f9f1b 100644
--- a/epan/dissectors/packet-ms-do.c
+++ b/epan/dissectors/packet-ms-do.c
@@ -73,7 +73,7 @@ static gint ett_do_bitfield_single;
static expert_field ei_do_invalid_message_id;
static expert_field ei_do_invalid_message_length;
-static dissector_handle_t do_handle = NULL;
+static dissector_handle_t do_handle;
#define DO_PORT (7680)
diff --git a/epan/dissectors/packet-msrp.c b/epan/dissectors/packet-msrp.c
index b3099c8036..ab9114fd6d 100644
--- a/epan/dissectors/packet-msrp.c
+++ b/epan/dissectors/packet-msrp.c
@@ -108,7 +108,7 @@ static gint hf_header_array[array_length(msrp_headers)];
#define MSRP_AUTHENTICATION_INFO 15
static dissector_handle_t msrp_handle;
-static gboolean global_msrp_raw_text = TRUE;
+static bool global_msrp_raw_text = true;
/* MSRP content type and internet media type used by other dissectors
* are the same. List of media types from IANA at:
@@ -119,7 +119,7 @@ static int dissect_msrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
/* Displaying conversation setup info */
-static gboolean global_msrp_show_setup_info = TRUE;
+static bool global_msrp_show_setup_info = true;
static void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
/* Set up an MSRP conversation using the info given */
diff --git a/epan/dissectors/packet-mswsp.c b/epan/dissectors/packet-mswsp.c
index 205b3572d1..7cd8de6464 100644
--- a/epan/dissectors/packet-mswsp.c
+++ b/epan/dissectors/packet-mswsp.c
@@ -646,7 +646,7 @@ static gint ett_mswsp_msg_creusewhere;
static struct vtype_data *vType_get_type(guint16 t);
-/* converstation related data */
+/* conversation related data */
struct rows_data {
guint32 ulclientbase;
guint32 cbreserved;
@@ -662,7 +662,7 @@ struct message_data {
union {
struct CPMSetBindingsIn bindingsin;/* CPMBindingIn request */
struct rows_data rowsin; /*CPMGetRowsIn request*/
- guint32 version; /*CPMConnectIn requst/respose */
+ guint32 version; /*CPMConnectIn request/respose */
} content;
};
@@ -2110,7 +2110,7 @@ static const value_string PropSet195_IDS[] = {
{0,NULL}
};
-static struct GuidPropertySet GuidPropertySet[] = {
+static const struct GuidPropertySet GuidPropertySet[] = {
{ {0xa9bd1526, 0x6a80, 0x11d0, {0x8c, 0x9d, 0x00, 0x20, 0xaf, 0x1d, 0x74, 0x0e}},
"DBPROPSET_FSCIFRMWRK_EXT", "File system content index framework",
DBPROPSET_FSCIFRMWRK_EXT_IDS
@@ -2939,7 +2939,7 @@ static const value_string version_vals[] = {
{0, NULL}
};
-static struct GuidPropertySet *GuidPropertySet_find_guid(const e_guid_t *guid)
+static const struct GuidPropertySet *GuidPropertySet_find_guid(const e_guid_t *guid)
{
unsigned i;
for (i=0; i<array_length(GuidPropertySet); i++) {
@@ -2952,7 +2952,7 @@ static struct GuidPropertySet *GuidPropertySet_find_guid(const e_guid_t *guid)
static void get_name_from_fullpropspec(struct CFullPropSpec *v, char *out, int bufsize)
{
- struct GuidPropertySet *pset = GuidPropertySet_find_guid(&v->guid);
+ const struct GuidPropertySet *pset = GuidPropertySet_find_guid(&v->guid);
const char *id_str, *guid_str;
char *dest = out;
id_str = pset ? try_val_to_str(v->u.propid, pset->id_map) : NULL;
@@ -3144,7 +3144,7 @@ static int parse_CInGroupSortAggregSet(tvbuff_t *tvb, packet_info *pinfo, int of
static int parse_CDbColId(tvbuff_t *tvb, int offset, proto_tree *parent_tree, proto_tree *pad_tree, const char *text);
/* 2.2.1.31 CDbProp */
-static int parse_CDbProp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, struct GuidPropertySet *propset, const char *fmt, ...);
+static int parse_CDbProp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, const struct GuidPropertySet *propset, const char *fmt, ...);
/* 2.2.1.32 CDbPropSet */
static int parse_CDbPropSet(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, const char *fmt, ...);
@@ -3363,7 +3363,7 @@ static int parse_PRSPEC_Kind(tvbuff_t *tvb, int offset, proto_tree *tree, enum P
static int parse_CFullPropSpec(tvbuff_t *tvb, int offset, proto_tree *parent_tree, proto_tree *pad_tree, struct CFullPropSpec *v, const char *fmt, ...)
{
- struct GuidPropertySet *pset;
+ const struct GuidPropertySet *pset;
const char *id_str, *guid_str, *txt;
proto_item *item;
@@ -4368,7 +4368,7 @@ static int parse_CDbColId(tvbuff_t *tvb, int offset, proto_tree *parent_tree, pr
return offset;
}
-static int parse_CDbProp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, struct GuidPropertySet *propset, const char *fmt, ...)
+static int parse_CDbProp(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *parent_tree, proto_tree *pad_tree, const struct GuidPropertySet *propset, const char *fmt, ...)
{
static const value_string EMPTY_VS[] = {{0, NULL}};
const value_string *vs = (propset && propset->id_map) ? propset->id_map : EMPTY_VS;
@@ -4414,7 +4414,7 @@ static int parse_CDbPropSet(tvbuff_t *tvb, packet_info *pinfo, int offset, proto
{
int i, num;
e_guid_t guid;
- struct GuidPropertySet *pset;
+ const struct GuidPropertySet *pset;
proto_item *item;
proto_tree *tree;
const char *txt;
diff --git a/epan/dissectors/packet-mtp2.c b/epan/dissectors/packet-mtp2.c
index 389b79a09f..2f3da4f332 100644
--- a/epan/dissectors/packet-mtp2.c
+++ b/epan/dissectors/packet-mtp2.c
@@ -162,7 +162,7 @@ static const fragment_items mtp2_frag_items = {
static reassembly_table mtp2_reassembly_table;
/* variables needed for property registration to wireshark menu */
-static gboolean reverse_bit_order_mtp2 = FALSE;
+static bool reverse_bit_order_mtp2;
static expert_field ei_mtp2_checksum_error;
static expert_field ei_mtp2_li_bad;
@@ -170,15 +170,15 @@ static expert_field ei_mtp2_li_bad;
/* Initialize the subtree pointers */
static gint ett_mtp2;
-static gboolean use_extended_sequence_numbers_default = FALSE;
-static gboolean capture_contains_fcs_crc_default = FALSE;
+static bool use_extended_sequence_numbers_default;
+static bool capture_contains_fcs_crc_default;
/* sequence number of the actual packet to be reassembled
* this is needed because the reassemble handler uses a key based on the
* source and destination IP addresses
* therefore if there are multiple streams between 2 IP end-points
* the reassemble sequence numbers can conflict if they are based on conversations */
-static guint32 mtp2_absolute_reass_seq_num = 0;
+static guint32 mtp2_absolute_reass_seq_num;
#define BSN_BIB_LENGTH 1
#define FSN_FIB_LENGTH 1
@@ -537,8 +537,8 @@ mtp2_init_routine(void)
/* get one bit of a guint8 byte
* based on the order set in the preferences
-* reverse_bit_order_mtp2 = FALSE: as the Q.703 states
-* reverse_bit_order_mtp2 = TRUE: just the opposite
+* reverse_bit_order_mtp2 = false: as the Q.703 states
+* reverse_bit_order_mtp2 = true: just the opposite
*/
static gboolean
get_bit(guint8 byte, guint8 bit)
diff --git a/epan/dissectors/packet-mtp3.c b/epan/dissectors/packet-mtp3.c
index 0e1b71dfb6..b1af33b689 100644
--- a/epan/dissectors/packet-mtp3.c
+++ b/epan/dissectors/packet-mtp3.c
@@ -112,7 +112,7 @@ static gint japan_pc_structure = JAPAN_PC_STRUCTURE_NONE;
#include "packet-mtp3.h"
gint mtp3_standard = ITU_STANDARD;
-gboolean mtp3_heuristic_standard = FALSE;
+bool mtp3_heuristic_standard;
static gint pref_mtp3_standard;
@@ -124,9 +124,9 @@ const value_string mtp3_standard_vals[] = {
{ 0, NULL }
};
-static gboolean mtp3_use_ansi_5_bit_sls = FALSE;
-static gboolean mtp3_use_japan_5_bit_sls = FALSE;
-static gboolean mtp3_show_itu_priority = FALSE;
+static bool mtp3_use_ansi_5_bit_sls;
+static bool mtp3_use_japan_5_bit_sls;
+static bool mtp3_show_itu_priority;
static gint mtp3_addr_fmt = MTP3_ADDR_FMT_DASHED;
#define SIO_LENGTH 1
@@ -734,7 +734,7 @@ reset_mtp3_standard(void)
static int
dissect_mtp3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- mtp3_tap_rec_t* tap_rec = wmem_new0(wmem_packet_scope(), mtp3_tap_rec_t);
+ mtp3_tap_rec_t* tap_rec = wmem_new0(pinfo->pool, mtp3_tap_rec_t);
gint heuristic_standard;
guint8 si;
mtp3_addr_pc_t* mtp3_addr_dpc;
diff --git a/epan/dissectors/packet-mtp3.h b/epan/dissectors/packet-mtp3.h
index ea8494d696..106e8a670b 100644
--- a/epan/dissectors/packet-mtp3.h
+++ b/epan/dissectors/packet-mtp3.h
@@ -20,7 +20,7 @@ typedef enum {
#define HEURISTIC_FAILED_STANDARD 0xffff
extern gint mtp3_standard;
-extern gboolean mtp3_heuristic_standard;
+extern bool mtp3_heuristic_standard;
WS_DLL_PUBLIC const value_string mtp3_standard_vals[];
diff --git a/epan/dissectors/packet-multipart.c b/epan/dissectors/packet-multipart.c
index 10da428be7..54f50242aa 100644
--- a/epan/dissectors/packet-multipart.c
+++ b/epan/dissectors/packet-multipart.c
@@ -130,10 +130,10 @@ static dissector_handle_t gssapi_handle;
* as raw text, may cause problems with images sound etc
* TODO improve to check for different content types ?
*/
-static gboolean display_unknown_body_as_text = FALSE;
-static gboolean remove_base64_encoding = FALSE;
+static bool display_unknown_body_as_text;
+static bool remove_base64_encoding;
#ifdef HAVE_ZLIB
-static gboolean uncompress_data = TRUE;
+static bool uncompress_data = true;
#endif
typedef struct {
@@ -540,7 +540,7 @@ process_body_part(proto_tree *tree, tvbuff_t *tvb,
#endif
char *filename = NULL;
char *mimetypename = NULL;
- gboolean last_field = FALSE;
+ bool last_field = false;
gboolean is_raw_data = FALSE;
const guint8 *boundary = (guint8 *)m_info->boundary;
diff --git a/epan/dissectors/packet-mysql.c b/epan/dissectors/packet-mysql.c
index 7e5bd6515c..9e5c188f77 100644
--- a/epan/dissectors/packet-mysql.c
+++ b/epan/dissectors/packet-mysql.c
@@ -95,7 +95,7 @@ void proto_reg_handoff_mysql(void);
* in the protocol:
* CLIENT_REMEMBER_OPTIONS (1UL << 31)
*/
-#define MYSQL_CAPS_MS 0x0001 /* CLIENT_MULTI_STATMENTS */
+#define MYSQL_CAPS_MS 0x0001 /* CLIENT_MULTI_STATEMENTS */
#define MYSQL_CAPS_MR 0x0002 /* CLIENT_MULTI_RESULTS */
#define MYSQL_CAPS_PM 0x0004 /* CLIENT_PS_MULTI_RESULTS */
#define MYSQL_CAPS_PA 0x0008 /* CLIENT_PLUGIN_AUTH */
@@ -352,55 +352,19 @@ static const value_string mysql_exec_time_sign_vals[] = {
{0, NULL}
};
-#if 0
-/* charset: pre-4.1 used the term 'charset', later changed to 'collation' */
-static const value_string mysql_charset_vals[] = {
- {1, "big5"},
- {2, "czech"},
- {3, "dec8"},
- {4, "dos" },
- {5, "german1"},
- {6, "hp8"},
- {7, "koi8_ru"},
- {8, "latin1"},
- {9, "latin2"},
- {9, "swe7 "},
- {10, "usa7"},
- {11, "ujis"},
- {12, "sjis"},
- {13, "cp1251"},
- {14, "danish"},
- {15, "hebrew"},
- {16, "win1251"},
- {17, "tis620"},
- {18, "euc_kr"},
- {19, "estonia"},
- {20, "hungarian"},
- {21, "koi8_ukr"},
- {22, "win1251ukr"},
- {23, "gb2312"},
- {24, "greek"},
- {25, "win1250"},
- {26, "croat"},
- {27, "gbk"},
- {28, "cp1257"},
- {29, "latin5"},
- {0, NULL}
-};
-#endif
-
-
/* collation codes may change over time, recreate with the following SQL
SELECT CONCAT(' {', ID, ',"', CHARACTER_SET_NAME, ' COLLATE ', COLLATION_NAME, '"},')
FROM INFORMATION_SCHEMA.COLLATIONS
ORDER BY ID
-INTO OUTFILE '/tmp/mysql-collations';
+INTO OUTFILE '/var/lib/mysql-files/mysql-collations';
-Last Update from MySQL 8.0.20
+Last Update from MySQL 8.0.36
*/
static const value_string mysql_collation_vals[] = {
+ {1, "big5 COLLATE big5_chinese_ci"},
+ {2, "latin2 COLLATE latin2_czech_cs"},
{3, "dec8 COLLATE dec8_swedish_ci"},
{4, "cp850 COLLATE cp850_general_ci"},
{5, "latin1 COLLATE latin1_german1_ci"},
@@ -410,21 +374,29 @@ static const value_string mysql_collation_vals[] = {
{9, "latin2 COLLATE latin2_general_ci"},
{10, "swe7 COLLATE swe7_swedish_ci"},
{11, "ascii COLLATE ascii_general_ci"},
+ {12, "ujis COLLATE ujis_japanese_ci"},
+ {13, "sjis COLLATE sjis_japanese_ci"},
{14, "cp1251 COLLATE cp1251_bulgarian_ci"},
{15, "latin1 COLLATE latin1_danish_ci"},
{16, "hebrew COLLATE hebrew_general_ci"},
+ {18, "tis620 COLLATE tis620_thai_ci"},
+ {19, "euckr COLLATE euckr_korean_ci"},
{20, "latin7 COLLATE latin7_estonian_cs"},
{21, "latin2 COLLATE latin2_hungarian_ci"},
{22, "koi8u COLLATE koi8u_general_ci"},
{23, "cp1251 COLLATE cp1251_ukrainian_ci"},
+ {24, "gb2312 COLLATE gb2312_chinese_ci"},
{25, "greek COLLATE greek_general_ci"},
{26, "cp1250 COLLATE cp1250_general_ci"},
{27, "latin2 COLLATE latin2_croatian_ci"},
+ {28, "gbk COLLATE gbk_chinese_ci"},
{29, "cp1257 COLLATE cp1257_lithuanian_ci"},
{30, "latin5 COLLATE latin5_turkish_ci"},
{31, "latin1 COLLATE latin1_german2_ci"},
{32, "armscii8 COLLATE armscii8_general_ci"},
- {33, "utf8 COLLATE utf8_general_ci"},
+ {33, "utf8mb3 COLLATE utf8mb3_general_ci"},
+ {34, "cp1250 COLLATE cp1250_czech_cs"},
+ {35, "ucs2 COLLATE ucs2_general_ci"},
{36, "cp866 COLLATE cp866_general_ci"},
{37, "keybcs2 COLLATE keybcs2_general_ci"},
{38, "macce COLLATE macce_general_ci"},
@@ -443,9 +415,15 @@ static const value_string mysql_collation_vals[] = {
{51, "cp1251 COLLATE cp1251_general_ci"},
{52, "cp1251 COLLATE cp1251_general_cs"},
{53, "macroman COLLATE macroman_bin"},
+ {54, "utf16 COLLATE utf16_general_ci"},
+ {55, "utf16 COLLATE utf16_bin"},
+ {56, "utf16le COLLATE utf16le_general_ci"},
{57, "cp1256 COLLATE cp1256_general_ci"},
{58, "cp1257 COLLATE cp1257_bin"},
{59, "cp1257 COLLATE cp1257_general_ci"},
+ {60, "utf32 COLLATE utf32_general_ci"},
+ {61, "utf32 COLLATE utf32_bin"},
+ {62, "utf16le COLLATE utf16le_bin"},
{63, "binary COLLATE binary"},
{64, "armscii8 COLLATE armscii8_bin"},
{65, "ascii COLLATE ascii_bin"},
@@ -459,42 +437,128 @@ static const value_string mysql_collation_vals[] = {
{73, "keybcs2 COLLATE keybcs2_bin"},
{74, "koi8r COLLATE koi8r_bin"},
{75, "koi8u COLLATE koi8u_bin"},
+ {76, "utf8mb3 COLLATE utf8mb3_tolower_ci"},
{77, "latin2 COLLATE latin2_bin"},
{78, "latin5 COLLATE latin5_bin"},
{79, "latin7 COLLATE latin7_bin"},
{80, "cp850 COLLATE cp850_bin"},
{81, "cp852 COLLATE cp852_bin"},
{82, "swe7 COLLATE swe7_bin"},
- {83, "utf8 COLLATE utf8_bin"},
+ {83, "utf8mb3 COLLATE utf8mb3_bin"},
+ {84, "big5 COLLATE big5_bin"},
+ {85, "euckr COLLATE euckr_bin"},
+ {86, "gb2312 COLLATE gb2312_bin"},
+ {87, "gbk COLLATE gbk_bin"},
+ {88, "sjis COLLATE sjis_bin"},
+ {89, "tis620 COLLATE tis620_bin"},
+ {90, "ucs2 COLLATE ucs2_bin"},
+ {91, "ujis COLLATE ujis_bin"},
{92, "geostd8 COLLATE geostd8_general_ci"},
{93, "geostd8 COLLATE geostd8_bin"},
{94, "latin1 COLLATE latin1_spanish_ci"},
+ {95, "cp932 COLLATE cp932_japanese_ci"},
+ {96, "cp932 COLLATE cp932_bin"},
+ {97, "eucjpms COLLATE eucjpms_japanese_ci"},
+ {98, "eucjpms COLLATE eucjpms_bin"},
{99, "cp1250 COLLATE cp1250_polish_ci"},
- {192, "utf8 COLLATE utf8_unicode_ci"},
- {193, "utf8 COLLATE utf8_icelandic_ci"},
- {194, "utf8 COLLATE utf8_latvian_ci"},
- {195, "utf8 COLLATE utf8_romanian_ci"},
- {196, "utf8 COLLATE utf8_slovenian_ci"},
- {197, "utf8 COLLATE utf8_polish_ci"},
- {198, "utf8 COLLATE utf8_estonian_ci"},
- {199, "utf8 COLLATE utf8_spanish_ci"},
- {200, "utf8 COLLATE utf8_swedish_ci"},
- {201, "utf8 COLLATE utf8_turkish_ci"},
- {202, "utf8 COLLATE utf8_czech_ci"},
- {203, "utf8 COLLATE utf8_danish_ci"},
- {204, "utf8 COLLATE utf8_lithuanian_ci"},
- {205, "utf8 COLLATE utf8_slovak_ci"},
- {206, "utf8 COLLATE utf8_spanish2_ci"},
- {207, "utf8 COLLATE utf8_roman_ci"},
- {208, "utf8 COLLATE utf8_persian_ci"},
- {209, "utf8 COLLATE utf8_esperanto_ci"},
- {210, "utf8 COLLATE utf8_hungarian_ci"},
- {211, "utf8 COLLATE utf8_sinhala_ci"},
- {212, "utf8 COLLATE utf8_german2_ci"},
- {213, "utf8 COLLATE utf8_croatian_ci"},
- {214, "utf8 COLLATE utf8_unicode_520_ci"},
- {215, "utf8 COLLATE utf8_vietnamese_ci"},
- {223, "utf8 COLLATE utf8_general_mysql500_ci"},
+ {101, "utf16 COLLATE utf16_unicode_ci"},
+ {102, "utf16 COLLATE utf16_icelandic_ci"},
+ {103, "utf16 COLLATE utf16_latvian_ci"},
+ {104, "utf16 COLLATE utf16_romanian_ci"},
+ {105, "utf16 COLLATE utf16_slovenian_ci"},
+ {106, "utf16 COLLATE utf16_polish_ci"},
+ {107, "utf16 COLLATE utf16_estonian_ci"},
+ {108, "utf16 COLLATE utf16_spanish_ci"},
+ {109, "utf16 COLLATE utf16_swedish_ci"},
+ {110, "utf16 COLLATE utf16_turkish_ci"},
+ {111, "utf16 COLLATE utf16_czech_ci"},
+ {112, "utf16 COLLATE utf16_danish_ci"},
+ {113, "utf16 COLLATE utf16_lithuanian_ci"},
+ {114, "utf16 COLLATE utf16_slovak_ci"},
+ {115, "utf16 COLLATE utf16_spanish2_ci"},
+ {116, "utf16 COLLATE utf16_roman_ci"},
+ {117, "utf16 COLLATE utf16_persian_ci"},
+ {118, "utf16 COLLATE utf16_esperanto_ci"},
+ {119, "utf16 COLLATE utf16_hungarian_ci"},
+ {120, "utf16 COLLATE utf16_sinhala_ci"},
+ {121, "utf16 COLLATE utf16_german2_ci"},
+ {122, "utf16 COLLATE utf16_croatian_ci"},
+ {123, "utf16 COLLATE utf16_unicode_520_ci"},
+ {124, "utf16 COLLATE utf16_vietnamese_ci"},
+ {128, "ucs2 COLLATE ucs2_unicode_ci"},
+ {129, "ucs2 COLLATE ucs2_icelandic_ci"},
+ {130, "ucs2 COLLATE ucs2_latvian_ci"},
+ {131, "ucs2 COLLATE ucs2_romanian_ci"},
+ {132, "ucs2 COLLATE ucs2_slovenian_ci"},
+ {133, "ucs2 COLLATE ucs2_polish_ci"},
+ {134, "ucs2 COLLATE ucs2_estonian_ci"},
+ {135, "ucs2 COLLATE ucs2_spanish_ci"},
+ {136, "ucs2 COLLATE ucs2_swedish_ci"},
+ {137, "ucs2 COLLATE ucs2_turkish_ci"},
+ {138, "ucs2 COLLATE ucs2_czech_ci"},
+ {139, "ucs2 COLLATE ucs2_danish_ci"},
+ {140, "ucs2 COLLATE ucs2_lithuanian_ci"},
+ {141, "ucs2 COLLATE ucs2_slovak_ci"},
+ {142, "ucs2 COLLATE ucs2_spanish2_ci"},
+ {143, "ucs2 COLLATE ucs2_roman_ci"},
+ {144, "ucs2 COLLATE ucs2_persian_ci"},
+ {145, "ucs2 COLLATE ucs2_esperanto_ci"},
+ {146, "ucs2 COLLATE ucs2_hungarian_ci"},
+ {147, "ucs2 COLLATE ucs2_sinhala_ci"},
+ {148, "ucs2 COLLATE ucs2_german2_ci"},
+ {149, "ucs2 COLLATE ucs2_croatian_ci"},
+ {150, "ucs2 COLLATE ucs2_unicode_520_ci"},
+ {151, "ucs2 COLLATE ucs2_vietnamese_ci"},
+ {159, "ucs2 COLLATE ucs2_general_mysql500_ci"},
+ {160, "utf32 COLLATE utf32_unicode_ci"},
+ {161, "utf32 COLLATE utf32_icelandic_ci"},
+ {162, "utf32 COLLATE utf32_latvian_ci"},
+ {163, "utf32 COLLATE utf32_romanian_ci"},
+ {164, "utf32 COLLATE utf32_slovenian_ci"},
+ {165, "utf32 COLLATE utf32_polish_ci"},
+ {166, "utf32 COLLATE utf32_estonian_ci"},
+ {167, "utf32 COLLATE utf32_spanish_ci"},
+ {168, "utf32 COLLATE utf32_swedish_ci"},
+ {169, "utf32 COLLATE utf32_turkish_ci"},
+ {170, "utf32 COLLATE utf32_czech_ci"},
+ {171, "utf32 COLLATE utf32_danish_ci"},
+ {172, "utf32 COLLATE utf32_lithuanian_ci"},
+ {173, "utf32 COLLATE utf32_slovak_ci"},
+ {174, "utf32 COLLATE utf32_spanish2_ci"},
+ {175, "utf32 COLLATE utf32_roman_ci"},
+ {176, "utf32 COLLATE utf32_persian_ci"},
+ {177, "utf32 COLLATE utf32_esperanto_ci"},
+ {178, "utf32 COLLATE utf32_hungarian_ci"},
+ {179, "utf32 COLLATE utf32_sinhala_ci"},
+ {180, "utf32 COLLATE utf32_german2_ci"},
+ {181, "utf32 COLLATE utf32_croatian_ci"},
+ {182, "utf32 COLLATE utf32_unicode_520_ci"},
+ {183, "utf32 COLLATE utf32_vietnamese_ci"},
+ {192, "utf8mb3 COLLATE utf8mb3_unicode_ci"},
+ {193, "utf8mb3 COLLATE utf8mb3_icelandic_ci"},
+ {194, "utf8mb3 COLLATE utf8mb3_latvian_ci"},
+ {195, "utf8mb3 COLLATE utf8mb3_romanian_ci"},
+ {196, "utf8mb3 COLLATE utf8mb3_slovenian_ci"},
+ {197, "utf8mb3 COLLATE utf8mb3_polish_ci"},
+ {198, "utf8mb3 COLLATE utf8mb3_estonian_ci"},
+ {199, "utf8mb3 COLLATE utf8mb3_spanish_ci"},
+ {200, "utf8mb3 COLLATE utf8mb3_swedish_ci"},
+ {201, "utf8mb3 COLLATE utf8mb3_turkish_ci"},
+ {202, "utf8mb3 COLLATE utf8mb3_czech_ci"},
+ {203, "utf8mb3 COLLATE utf8mb3_danish_ci"},
+ {204, "utf8mb3 COLLATE utf8mb3_lithuanian_ci"},
+ {205, "utf8mb3 COLLATE utf8mb3_slovak_ci"},
+ {206, "utf8mb3 COLLATE utf8mb3_spanish2_ci"},
+ {207, "utf8mb3 COLLATE utf8mb3_roman_ci"},
+ {208, "utf8mb3 COLLATE utf8mb3_persian_ci"},
+ {209, "utf8mb3 COLLATE utf8mb3_esperanto_ci"},
+ {210, "utf8mb3 COLLATE utf8mb3_hungarian_ci"},
+ {211, "utf8mb3 COLLATE utf8mb3_sinhala_ci"},
+ {212, "utf8mb3 COLLATE utf8mb3_german2_ci"},
+ {213, "utf8mb3 COLLATE utf8mb3_croatian_ci"},
+ {214, "utf8mb3 COLLATE utf8mb3_unicode_520_ci"},
+ {215, "utf8mb3 COLLATE utf8mb3_vietnamese_ci"},
+ {223, "utf8mb3 COLLATE utf8mb3_general_mysql500_ci"},
{224, "utf8mb4 COLLATE utf8mb4_unicode_ci"},
{225, "utf8mb4 COLLATE utf8mb4_icelandic_ci"},
{226, "utf8mb4 COLLATE utf8mb4_latvian_ci"},
@@ -571,6 +635,20 @@ static const value_string mysql_collation_vals[] = {
{307,"utf8mb4 COLLATE utf8mb4_ru_0900_as_cs"},
{308,"utf8mb4 COLLATE utf8mb4_zh_0900_as_cs"},
{309,"utf8mb4 COLLATE utf8mb4_0900_bin"},
+ {310,"utf8mb4 COLLATE utf8mb4_nb_0900_ai_ci"},
+ {311,"utf8mb4 COLLATE utf8mb4_nb_0900_as_cs"},
+ {312,"utf8mb4 COLLATE utf8mb4_nn_0900_ai_ci"},
+ {313,"utf8mb4 COLLATE utf8mb4_nn_0900_as_cs"},
+ {314,"utf8mb4 COLLATE utf8mb4_sr_latn_0900_ai_ci"},
+ {315,"utf8mb4 COLLATE utf8mb4_sr_latn_0900_as_cs"},
+ {316,"utf8mb4 COLLATE utf8mb4_bs_0900_ai_ci"},
+ {317,"utf8mb4 COLLATE utf8mb4_bs_0900_as_cs"},
+ {318,"utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci"},
+ {319,"utf8mb4 COLLATE utf8mb4_bg_0900_as_cs"},
+ {320,"utf8mb4 COLLATE utf8mb4_gl_0900_ai_ci"},
+ {321,"utf8mb4 COLLATE utf8mb4_gl_0900_as_cs"},
+ {322,"utf8mb4 COLLATE utf8mb4_mn_cyrl_0900_ai_ci"},
+ {323,"utf8mb4 COLLATE utf8mb4_mn_cyrl_0900_as_cs"},
{0, NULL}
};
@@ -910,6 +988,92 @@ static const value_string mariadb_collation_vals[] = {
static value_string_ext mariadb_collation_vals_ext = VALUE_STRING_EXT_INIT(mariadb_collation_vals);
+typedef struct {
+ const char *charset;
+ unsigned encoding;
+} charset_encoding_t;
+
+static charset_encoding_t charset_encoding_array[] =
+{
+ /* When character_set_results is set to NULL or "binary", that
+ * tells the server to perform no conversion. The field charset
+ * should still be indicated in the column description. Error
+ * messages use presumably the server default.
+ */
+ { "utf8mb4", ENC_UTF_8 },
+ { "utf8", ENC_UTF_8 }, // We don't care about the distinction
+ { "utf8mb3", ENC_UTF_8 },
+ { "latin1", ENC_WINDOWS_1252 }, // Not ENC_ISO_8859_1
+ { "ascii", ENC_ASCII },
+ // armscii8
+ // big5
+ // binary ENC_UTF_8 or ENC_WINDOWS_1252?
+ { "cp1250", ENC_WINDOWS_1250 },
+ { "cp1251", ENC_WINDOWS_1251 },
+ // cp1256
+ // cp1257
+ // cp850
+ // cp852
+ { "cp866", ENC_CP866 },
+ // cp932 - https://dev.mysql.com/doc/refman/8.0/en/charset-cp932.html
+ // dec8
+ // eucjpms
+ { "euckr", ENC_EUC_KR },
+ { "gb18030", ENC_GB18030 },
+ { "gb2312", ENC_GB18030 }, // Backwards compatible
+ { "gbk", ENC_GB18030 }, // Backwards compatible
+ // geostd8 - https://datatracker.ietf.org/doc/html/draft-giasher-geostd8-00
+ { "greek", ENC_ISO_8859_7 },
+ { "hebrew", ENC_ISO_8859_8 },
+ // hp8
+ // keybcs2
+ // koi8r
+ // koi8u
+ { "latin2", ENC_ISO_8859_2 },
+ { "latin5", ENC_ISO_8859_9 },
+ { "latin7", ENC_ISO_8859_13 },
+ // macce
+ { "macroman", ENC_MAC_ROMAN },
+ // sjis
+ // swe7
+ // tis620
+ { "ucs2", ENC_UCS_2 },
+ // ujis
+ { "utf16", ENC_UTF_16 | ENC_BIG_ENDIAN },
+ { "utf16le", ENC_UTF_16 | ENC_LITTLE_ENDIAN },
+ { "utf32", ENC_UCS_4 }
+};
+
+static unsigned charset_to_encoding(const char *charset)
+{
+ if (charset == NULL) {
+ return ENC_UTF_8;
+ }
+ // Allows passing in a collation string
+ size_t token_len = strcspn(charset, " ");
+ for (size_t i = 0; i < array_length(charset_encoding_array); i++) {
+ if (strncmp(charset, charset_encoding_array[i].charset, token_len) == 0) {
+ return charset_encoding_array[i].encoding;
+ }
+ }
+ return ENC_UTF_8;
+}
+
+static unsigned collation_to_encoding(const unsigned collation, bool is_mariadb)
+{
+ // We are concerned with the character_set_client and character_set_results
+ // system variables.
+ // latin1 means ENC_WINDOWS_1252, not ISO-8859-1
+ // MariaDB defaulted to latin1 before 10.6.15-10:
+ // https://mariadb.com/docs/server/ref/mdb/system-variables/character_set_client/
+ // https://mariadb.com/docs/server/ref/mdb/system-variables/character_set_results/
+ // MySQL uses utf8m4 in 8.0 and utf8 (meaning utf8m3) in 5.7
+ // https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_character_set_client
+ // https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_character_set_client
+ const char* collation_str;
+ collation_str = try_val_to_str_ext(collation, is_mariadb ? &mariadb_collation_vals_ext : &mysql_collation_vals_ext);
+ return charset_to_encoding(collation_str);
+}
/* allowed MYSQL_SHUTDOWN levels */
static const value_string mysql_shutdown_vals[] = {
@@ -954,8 +1118,8 @@ static const value_string mysql_response_code_vals[] = {
static int proto_mysql;
/* dissector configuration */
-static gboolean mysql_desegment = TRUE;
-static gboolean mysql_showquery = FALSE;
+static bool mysql_desegment = true;
+static bool mysql_showquery;
/* expand-the-tree flags */
static gint ett_mysql;
@@ -1094,7 +1258,7 @@ static int hf_mysql_salt;
static int hf_mysql_salt2;
static int hf_mysql_auth_plugin_length;
static int hf_mysql_auth_plugin;
-static int hf_mysql_charset;
+static int hf_mysql_collation;
static int hf_mysql_passwd;
static int hf_mysql_unused;
static int hf_mysql_affected_rows;
@@ -1181,6 +1345,7 @@ static int hf_mysql_exec_param;
static int hf_mysql_exec_unsigned;
static int hf_mysql_exec_field_longlong;
static int hf_mysql_exec_field_unsigned_longlong;
+static int hf_mysql_exec_field_string_length;
static int hf_mysql_exec_field_string;
static int hf_mysql_exec_field_double;
static int hf_mysql_exec_field_datetime_length;
@@ -1216,7 +1381,7 @@ static int hf_mysql_loaddata_payload;
//static int hf_mariadb_fld_charsetnr;
static int hf_mariadb_server_language;
-static int hf_mariadb_charset;
+static int hf_mariadb_collation;
static int hf_mariadb_cap_progress;
static int hf_mariadb_cap_commulti;
static int hf_mariadb_cap_bulk;
@@ -1391,6 +1556,7 @@ typedef struct {
guint16 count;
guint16* flags;
guint8* types;
+ unsigned* encodings;
} my_metadata_list_t;
/* Data for the entire conversation. Most data is fixed once known.
@@ -1428,6 +1594,8 @@ typedef struct mysql_conn_data {
guint32 stmt_id;
guint64 remaining_field_packet_count;
my_metadata_list_t field_metas;
+ unsigned encoding_client;
+ unsigned encoding_results;
} mysql_conn_data_t;
/* Data stored for a particular PDU. Use this on random access after
@@ -1439,6 +1607,8 @@ typedef struct mysql_frame_data {
guint32 stmt_id; /* The last prepared stmt ID before this PDU */
guint64 remaining_field_packet_count;
my_metadata_list_t field_metas;
+ unsigned encoding_client;
+ unsigned encoding_results;
} mysql_frame_data_t;
typedef struct my_stmt_data {
@@ -1450,18 +1620,18 @@ typedef struct my_stmt_data {
typedef struct mysql_exec_dissector {
guint8 type;
guint8 unsigned_flag;
- void (*dissector)(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
+ void (*dissector)(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned charset);
} mysql_exec_dissector_t;
/* function prototypes */
-static int mysql_dissect_error_packet(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree);
+static int mysql_dissect_error_packet(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, const mysql_frame_data_t *my_frame_data);
static int mysql_dissect_ok_packet(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, mysql_conn_data_t *conn_data);
static int mysql_dissect_server_status(tvbuff_t *tvb, int offset, proto_tree *tree, guint16 *server_status);
static int mysql_dissect_caps(tvbuff_t *tvb, int offset, proto_tree *tree, int mysql_caps, guint16 *caps);
static int mysql_dissect_extcaps(tvbuff_t *tvb, int offset, proto_tree *tree, int mysql_extcaps, guint16 *caps);
static int mysql_dissect_result_header(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, mysql_conn_data_t *conn_data, const mysql_frame_data_t *my_frame_data);
static int mysql_dissect_field_packet(tvbuff_t *tvb, proto_item *pi, int offset, proto_tree *tree, packet_info *pinfo, mysql_conn_data_t *conn_data, const mysql_frame_data_t *my_frame_data);
-static int mysql_dissect_text_row_packet(tvbuff_t *tvb, int offset, proto_tree *tree);
+static int mysql_dissect_text_row_packet(tvbuff_t *tvb, int offset, proto_tree *tree, const mysql_frame_data_t *my_frame_data);
static int mysql_dissect_binary_row_packet(tvbuff_t *tvb, packet_info *pinfo, proto_item *pi, int offset, proto_tree *tree, mysql_conn_data_t *conn_data, const mysql_frame_data_t *my_frame_data);
static int mysql_dissect_binlog_event_packet(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, proto_item *pi);
static int mysql_dissect_response_prepare(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, mysql_conn_data_t *conn_data);
@@ -1470,34 +1640,34 @@ static int mysql_dissect_eof(tvbuff_t *tvb, packet_info *pinfo, proto_item *pi,
static int mysql_dissect_auth_switch_response(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, mysql_conn_data_t *conn_data);
static int mysql_dissect_auth_sha2(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, mysql_conn_data_t *conn_data);
static int mysql_dissect_loaddata(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, mysql_conn_data_t *conn_data);
-static void mysql_dissect_exec_string(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_datetime(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_unsigned_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_unsigned_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_unsigned_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_float(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_double(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_unsigned_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
-static void mysql_dissect_exec_null(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
+static void mysql_dissect_exec_string(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_datetime(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_unsigned_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_unsigned_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_unsigned_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_float(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_double(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_unsigned_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
+static void mysql_dissect_exec_null(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
static char mysql_dissect_exec_param(proto_item *req_tree, tvbuff_t *tvb, int *offset,
- int *param_offset, guint8 param_flags, packet_info *pinfo);
+ int *param_offset, guint8 param_flags, packet_info *pinfo, unsigned encoding);
static char mysql_dissect_binary_row_value(tvbuff_t *tvb, packet_info *pinfo, proto_item *pi, int *offset,
- proto_item *tree, guint8 field_type, guint16 field_flag);
+ proto_item *tree, guint8 field_type, guint16 field_flag, unsigned field_encoding);
static void mysql_dissect_exec_primitive(tvbuff_t *tvb, int *param_offset,
proto_item *field_tree, const int hfindex, const int offset);
-static void mysql_dissect_exec_time(tvbuff_t *tvb, int *param_offset, proto_item *field_tree);
+static void mysql_dissect_exec_time(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding);
static int mariadb_dissect_caps_or_flags(tvbuff_t *tvb, int offset, enum ftenum type, proto_tree *tree,
int mariadb_caps, int * const *fields, void *value);
static gint my_tvb_strsize(tvbuff_t *tvb, int offset);
static int tvb_get_fle(tvbuff_t *tvb, proto_tree* tree, int offset, guint64 *res, guint8 *is_null);
-static int mysql_field_add_lestring(tvbuff_t *tvb, int offset, proto_tree *tree, int field);
+static int mysql_field_add_lestring(tvbuff_t *tvb, int offset, proto_tree *tree, int field, unsigned encoding);
static int dissect_mysql_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_);
static guint get_mysql_pdu_len(packet_info *pinfo, tvbuff_t *tvb, int offset, void *data _U_);
@@ -1679,9 +1849,26 @@ static void mysql_set_field_metas(packet_info *pinfo, mysql_conn_data_t *conn_da
}
}
+static void mysql_set_encoding_client(packet_info *pinfo, mysql_conn_data_t *conn_data, unsigned encoding)
+{
+ if (!pinfo->fd->visited)
+ {
+ conn_data->encoding_client = encoding;
+ }
+}
+
+static void mysql_set_encoding_results(packet_info *pinfo, mysql_conn_data_t *conn_data, unsigned encoding)
+{
+ if (!pinfo->fd->visited)
+ {
+ conn_data->encoding_results = encoding;
+ }
+}
+
static int
mysql_dissect_greeting(tvbuff_t *tvb, packet_info *pinfo, int offset,
- proto_tree *tree, mysql_conn_data_t *conn_data)
+ proto_tree *tree, mysql_conn_data_t *conn_data,
+ const mysql_frame_data_t *my_frame_data)
{
gint protocol;
gint lenstr;
@@ -1694,7 +1881,7 @@ mysql_dissect_greeting(tvbuff_t *tvb, packet_info *pinfo, int offset,
protocol= tvb_get_guint8(tvb, offset);
if (protocol == 0xff) {
- return mysql_dissect_error_packet(tvb, pinfo, offset+1, tree);
+ return mysql_dissect_error_packet(tvb, pinfo, offset+1, tree, my_frame_data);
}
mysql_set_conn_state(pinfo, conn_data, LOGIN);
@@ -1879,7 +2066,11 @@ mysql_dissect_login(tvbuff_t *tvb, packet_info *pinfo, int offset,
proto_tree_add_item(login_tree, hf_mysql_max_packet, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
- proto_tree_add_item(login_tree, conn_data->is_mariadb_server ? hf_mariadb_charset : hf_mysql_charset, tvb, offset, 1, ENC_NA);
+ uint32_t collation;
+ proto_tree_add_item_ret_uint(login_tree, conn_data->is_mariadb_server ? hf_mariadb_collation : hf_mysql_collation, tvb, offset, 1, ENC_NA, &collation);
+ unsigned encoding = collation_to_encoding(collation, conn_data->is_mariadb_server);
+ mysql_set_encoding_client(pinfo, conn_data, encoding);
+ mysql_set_encoding_results(pinfo, conn_data, encoding);
offset += 1; /* for charset */
if (conn_data->is_mariadb_client){
@@ -1980,38 +2171,38 @@ mysql_dissect_login(tvbuff_t *tvb, packet_info *pinfo, int offset,
static void
-mysql_dissect_exec_string(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_string(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding)
{
- guint32 param_len32;
- guint8 param_len;
+ guint32 param_len;
param_len = tvb_get_guint8(tvb, *param_offset);
switch (param_len) {
case 0xfc: /* 252 - 64k chars */
*param_offset += 1;
- param_len32 = tvb_get_letohs(tvb, *param_offset);
- proto_tree_add_item(field_tree, hf_mysql_exec_field_string,
- tvb, *param_offset, 2, ENC_ASCII | ENC_LITTLE_ENDIAN);
- *param_offset += param_len32 + 2;
+ proto_tree_add_item_ret_uint(field_tree, hf_mysql_exec_field_string_length,
+ tvb, *param_offset, 2, ENC_LITTLE_ENDIAN, &param_len);
+ *param_offset += 2;
break;
case 0xfd: /* 64k - 16M chars */
*param_offset += 1;
- param_len32 = tvb_get_letoh24(tvb, *param_offset);
- proto_tree_add_item(field_tree, hf_mysql_exec_field_string,
- tvb, *param_offset, 3, ENC_ASCII | ENC_LITTLE_ENDIAN);
- *param_offset += param_len32 + 3;
+ proto_tree_add_item_ret_uint(field_tree, hf_mysql_exec_field_string_length,
+ tvb, *param_offset, 3, ENC_LITTLE_ENDIAN, &param_len);
+ *param_offset += 3;
break;
default: /* < 252 chars */
- proto_tree_add_item(field_tree, hf_mysql_exec_field_string,
- tvb, *param_offset, 1, ENC_ASCII | ENC_NA);
- *param_offset += param_len + 1;
+ proto_tree_add_item(field_tree, hf_mysql_exec_field_string_length,
+ tvb, *param_offset, 1, ENC_NA);
+ *param_offset += 1;
break;
}
+ proto_tree_add_item(field_tree, hf_mysql_exec_field_string,
+ tvb, *param_offset, param_len, encoding);
+ *param_offset += param_len;
}
static void
-mysql_dissect_exec_time(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_time(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
guint8 param_len;
@@ -2036,7 +2227,7 @@ mysql_dissect_exec_time(tvbuff_t *tvb, int *param_offset, proto_item *field_tree
}
static void
-mysql_dissect_exec_datetime(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_datetime(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
guint8 param_len;
@@ -2069,73 +2260,73 @@ mysql_dissect_exec_primitive(tvbuff_t *tvb, int *param_offset, proto_item *field
}
static void
-mysql_dissect_exec_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_tiny, 1);
}
static void
-mysql_dissect_exec_unsigned_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_unsigned_tiny(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_unsigned_tiny, 1);
}
static void
-mysql_dissect_exec_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_short, 2);
}
static void
-mysql_dissect_exec_unsigned_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_unsigned_short(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_unsigned_short, 2);
}
static void
-mysql_dissect_exec_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_long, 4);
}
static void
-mysql_dissect_exec_unsigned_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_unsigned_long(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_unsigned_long, 4);
}
static void
-mysql_dissect_exec_float(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_float(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_float, 4);
}
static void
-mysql_dissect_exec_double(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_double(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_double, 8);
}
static void
-mysql_dissect_exec_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_longlong, 8);
}
static void
-mysql_dissect_exec_unsigned_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree)
+mysql_dissect_exec_unsigned_longlong(tvbuff_t *tvb, int *param_offset, proto_item *field_tree, unsigned encoding _U_)
{
mysql_dissect_exec_primitive(tvb, param_offset, field_tree, hf_mysql_exec_field_unsigned_longlong, 8);
}
static void
-mysql_dissect_exec_null(tvbuff_t *tvb _U_, int *param_offset _U_, proto_item *field_tree _U_)
+mysql_dissect_exec_null(tvbuff_t *tvb _U_, int *param_offset _U_, proto_item *field_tree _U_, unsigned encoding _U_)
{}
static char
mysql_dissect_exec_param(proto_item *req_tree, tvbuff_t *tvb, int *offset,
int *param_offset, guint8 param_flags,
- packet_info *pinfo)
+ packet_info *pinfo, unsigned encoding)
{
guint8 param_type, param_unsigned;
proto_item *tf;
@@ -2161,7 +2352,7 @@ mysql_dissect_exec_param(proto_item *req_tree, tvbuff_t *tvb, int *offset,
while (mysql_exec_dissectors[dissector_index].dissector != NULL) {
if (mysql_exec_dissectors[dissector_index].type == param_type &&
mysql_exec_dissectors[dissector_index].unsigned_flag == param_unsigned) {
- mysql_exec_dissectors[dissector_index].dissector(tvb, param_offset, field_tree);
+ mysql_exec_dissectors[dissector_index].dissector(tvb, param_offset, field_tree, encoding);
return 1;
}
dissector_index++;
@@ -2254,13 +2445,15 @@ mysql_dissect_request(tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *
proto_tree_add_item(query_attrs_tree, hf_mysql_query_attributes_send_types_to_server, tvb, offset, 1, ENC_ASCII);
offset += 1;
+ unsigned encoding = my_frame_data->encoding_client;
+
for (int i = 0; i < n_params; ++i) {
proto_tree_add_item(query_attrs_tree, hf_mysql_query_attribute_name_type, tvb, offset, 2, ENC_ASCII);
offset += 2;
- offset = mysql_field_add_lestring(tvb, offset, query_attrs_tree, hf_mysql_query_attribute_name);
+ offset = mysql_field_add_lestring(tvb, offset, query_attrs_tree, hf_mysql_query_attribute_name, encoding);
}
for (int i = 0; i < n_params; ++i) {
- offset = mysql_field_add_lestring(tvb, offset, query_attrs_tree, hf_mysql_query_attribute_value);
+ offset = mysql_field_add_lestring(tvb, offset, query_attrs_tree, hf_mysql_query_attribute_value, encoding);
}
}
} else if ((conn_data->clnt_caps_ext == 0) && (conn_data->srv_caps_ext == 0)){
@@ -2271,7 +2464,7 @@ mysql_dissect_request(tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *
offset += 2;
}
lenstr = my_tvb_strsize(tvb, offset);
- proto_tree_add_item(req_tree, hf_mysql_query, tvb, offset, lenstr, ENC_ASCII);
+ proto_tree_add_item(req_tree, hf_mysql_query, tvb, offset, lenstr, my_frame_data->encoding_client);
if (mysql_showquery) {
col_append_fstr(pinfo->cinfo, COL_INFO, " { %s } ",
tvb_format_text(pinfo->pool, tvb, offset, lenstr));
@@ -2333,7 +2526,11 @@ mysql_dissect_request(tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *
offset += lenstr;
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- proto_tree_add_item(req_tree, conn_data->is_mariadb_server ? hf_mariadb_charset : hf_mysql_charset, tvb, offset, 1, ENC_NA);
+ uint32_t collation;
+ proto_tree_add_item_ret_uint(req_tree, conn_data->is_mariadb_server ? hf_mariadb_collation : hf_mysql_collation, tvb, offset, 2, ENC_LITTLE_ENDIAN, &collation);
+ unsigned encoding = collation_to_encoding(collation, conn_data->is_mariadb_server);
+ mysql_set_encoding_client(pinfo, conn_data, encoding);
+ mysql_set_encoding_results(pinfo, conn_data, encoding);
offset += 2; /* for charset */
}
mysql_set_conn_state(pinfo, conn_data, RESPONSE_OK);
@@ -2348,7 +2545,7 @@ mysql_dissect_request(tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *
}
/* optional: connection attributes */
- if (conn_data->clnt_caps_ext & MYSQL_CAPS_CA)
+ if ((conn_data->clnt_caps_ext & MYSQL_CAPS_CA) && (tvb_reported_length_remaining(tvb, offset) > 0))
{
proto_tree *connattrs_tree;
int lenfle;
@@ -2477,7 +2674,7 @@ mysql_dissect_request(tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *
/* &&
mysql_exec_dissectors[dissector_index].unsigned_flag == stmt_data->param_flags[stmt_pos]) */
{
- mysql_exec_dissectors[dissector_index].dissector(tvb, &offset, param_tree);
+ mysql_exec_dissectors[dissector_index].dissector(tvb, &offset, param_tree, stmt_data->param_metas.encodings[stmt_pos]);
break;
}
dissector_index++;
@@ -2524,10 +2721,13 @@ mysql_dissect_request(tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *
if (stmt_bound == 1) {
param_offset = offset + stmt_data->param_metas.count * 2;
guint8 flags;
+ /* The character set for a parameter
+ * is character_set_client. */
+ unsigned encoding = my_frame_data->encoding_client;
for (stmt_pos = 0; stmt_pos < stmt_data->param_metas.count; stmt_pos++) {
flags = (guint8)stmt_data->param_metas.flags[stmt_pos];
if (!mysql_dissect_exec_param(req_tree, tvb, &offset, &param_offset,
- flags, pinfo))
+ flags, pinfo, encoding))
break;
}
offset = param_offset;
@@ -2683,7 +2883,7 @@ mysql_dissect_response(tvbuff_t *tvb, packet_info *pinfo, int offset,
case 0xff:
proto_tree_add_item(tree, hf_mysql_response_code, tvb, offset, 1, ENC_NA);
proto_item_append_text(pi, " - %s", val_to_str(RESPONSE_ERROR, state_vals, "Unknown (%u)"));
- offset = mysql_dissect_error_packet(tvb, pinfo, offset+1, tree);
+ offset = mysql_dissect_error_packet(tvb, pinfo, offset+1, tree, my_frame_data);
mysql_set_conn_state(pinfo, conn_data, REQUEST);
break;
case 0xfe:
@@ -2727,7 +2927,7 @@ mysql_dissect_response(tvbuff_t *tvb, packet_info *pinfo, int offset,
// text row packet
proto_item_append_text(pi, " - %s", val_to_str(ROW_PACKET, state_vals, "Unknown (%u)"));
mysql_set_conn_state(pinfo, conn_data, ROW_PACKET);
- offset = mysql_dissect_text_row_packet(tvb, offset, tree);
+ offset = mysql_dissect_text_row_packet(tvb, offset, tree, my_frame_data);
}
break;
@@ -2746,7 +2946,7 @@ mysql_dissect_response(tvbuff_t *tvb, packet_info *pinfo, int offset,
offset+=1;
offset = mysql_dissect_binary_row_packet(tvb, pinfo, pi, offset, tree, conn_data, my_frame_data);
} else {
- offset = mysql_dissect_text_row_packet(tvb, offset, tree);
+ offset = mysql_dissect_text_row_packet(tvb, offset, tree, my_frame_data);
}
break;
case BINLOG_DUMP:
@@ -2822,7 +3022,7 @@ mysql_dissect_response(tvbuff_t *tvb, packet_info *pinfo, int offset,
case ROW_PACKET:
proto_item_append_text(pi, " - %s", val_to_str(current_state, state_vals, "Unknown (%u)"));
- offset = mysql_dissect_text_row_packet(tvb, offset, tree);
+ offset = mysql_dissect_text_row_packet(tvb, offset, tree, my_frame_data);
break;
case PREPARED_FIELDS:
@@ -2862,7 +3062,8 @@ mysql_dissect_response(tvbuff_t *tvb, packet_info *pinfo, int offset,
static int
mysql_dissect_error_packet(tvbuff_t *tvb, packet_info *pinfo,
- int offset, proto_tree *tree)
+ int offset, proto_tree *tree,
+ const mysql_frame_data_t *my_frame_data)
{
col_append_fstr(pinfo->cinfo, COL_INFO, " Error %d ", tvb_get_letohs(tvb, offset));
col_set_fence(pinfo->cinfo, COL_INFO);
@@ -2877,7 +3078,7 @@ mysql_dissect_error_packet(tvbuff_t *tvb, packet_info *pinfo,
offset += 5;
}
- proto_tree_add_item(tree, hf_mysql_error_string, tvb, offset, -1, ENC_ASCII);
+ proto_tree_add_item(tree, hf_mysql_error_string, tvb, offset, -1, my_frame_data->encoding_results);
offset += tvb_reported_length_remaining(tvb, offset);
return offset;
@@ -2889,13 +3090,15 @@ mysql_dissect_error_packet(tvbuff_t *tvb, packet_info *pinfo,
return bytes read
*/
static int
-add_session_tracker_entry_to_tree(tvbuff_t *tvb, packet_info *pinfo, proto_item *tree, int offset) {
+add_session_tracker_entry_to_tree(tvbuff_t *tvb, packet_info *pinfo, proto_item *tree, int offset, mysql_conn_data_t *conn_data) {
guint8 data_type; /* session tracker type */
guint64 length; /* complete length of session tracking entry */
guint64 lenstr;
int orig_offset = offset, lenfle;
proto_item *item, *ti;
proto_tree *session_track_tree;
+ const uint8_t *sysvar_value;
+ bool charset_client = false, charset_results = false;
ti = proto_tree_add_item(tree, hf_mysql_session_track, tvb, offset, 1, ENC_NA);
session_track_tree = proto_item_add_subtree(ti, ett_session_track);
@@ -2915,13 +3118,23 @@ add_session_tracker_entry_to_tree(tvbuff_t *tvb, packet_info *pinfo, proto_item
offset += lenfle;
proto_tree_add_item(session_track_tree, hf_mysql_session_track_sysvar_name, tvb, offset, (gint)lenstr, ENC_ASCII);
+ if (tvb_strneql(tvb, offset, "character_set_client", lenstr) == 0) {
+ charset_client = true;
+ } else if (tvb_strneql(tvb, offset, "character_set_results", lenstr) == 0) {
+ charset_results = true;
+ }
offset += (int)lenstr;
lenfle = tvb_get_fle(tvb, session_track_tree, offset, &lenstr, NULL);
proto_tree_add_uint64(session_track_tree, hf_mysql_session_track_sysvar_length, tvb, offset, lenfle, lenstr);
offset += lenfle;
- proto_tree_add_item(session_track_tree, hf_mysql_session_track_sysvar_value, tvb, offset, (gint)lenstr, ENC_ASCII);
+ proto_tree_add_item_ret_string(session_track_tree, hf_mysql_session_track_sysvar_value, tvb, offset, (gint)lenstr, ENC_ASCII, pinfo->pool, &sysvar_value);
+ if (charset_client) {
+ mysql_set_encoding_client(pinfo, conn_data, charset_to_encoding(sysvar_value));
+ } else if (charset_results) {
+ mysql_set_encoding_results(pinfo, conn_data, charset_to_encoding(sysvar_value));
+ }
offset += (int)lenstr;
break;
case 1: /* CURRENT_SCHEMA_TRACKER */
@@ -3074,7 +3287,7 @@ mysql_dissect_ok_packet(tvbuff_t *tvb, packet_info *pinfo, int offset,
offset += fle;
while (session_track_length > 0) {
- length = add_session_tracker_entry_to_tree(tvb, pinfo, session_track_tree, offset);
+ length = add_session_tracker_entry_to_tree(tvb, pinfo, session_track_tree, offset, conn_data);
offset += length;
session_track_length -= length;
}
@@ -3204,6 +3417,7 @@ mysql_dissect_result_header(tvbuff_t *tvb, packet_info *pinfo, int offset,
field_metas->count = (guint16)num_fields;
field_metas->flags = (guint16 *)wmem_alloc0_array(wmem_file_scope(), guint16, (size_t)num_fields);
field_metas->types = (guint8 *)wmem_alloc0_array(wmem_file_scope(), guint8, (size_t)num_fields);
+ field_metas->encodings = (unsigned *)wmem_alloc0_array(wmem_file_scope(), unsigned, (size_t)num_fields);
mysql_set_field_metas(pinfo, conn_data, field_metas);
} else {
if (my_frame_data->stmt_id) {
@@ -3247,7 +3461,7 @@ mysql_dissect_result_header(tvbuff_t *tvb, packet_info *pinfo, int offset,
* Add length encoded string to tree
*/
static int
-mysql_field_add_lestring(tvbuff_t *tvb, int offset, proto_tree *tree, int field)
+mysql_field_add_lestring(tvbuff_t *tvb, int offset, proto_tree *tree, int field, unsigned encoding)
{
guint64 lelen;
guint8 is_null;
@@ -3266,7 +3480,7 @@ mysql_field_add_lestring(tvbuff_t *tvb, int offset, proto_tree *tree, int field)
proto_tree_add_string(sub_tree, field, tvb, offset, 0, "NULL");
else
{
- proto_tree_add_item(sub_tree, field, tvb, offset, (int)lelen, ENC_NA);
+ proto_tree_add_item(sub_tree, field, tvb, offset, (int)lelen, encoding);
/* Prevent infinite loop due to overflow */
if (offset + (int)lelen < offset) {
offset = tvb_reported_length(tvb);
@@ -3285,19 +3499,22 @@ mysql_dissect_field_packet(tvbuff_t *tvb, proto_item *pi _U_, int offset, proto_
{
guint8 fld_type;
guint16 fld_flag;
+ unsigned fld_encoding;
int length = tvb_reported_length(tvb);
mysql_state_t current_state = my_frame_data->state;
+ unsigned encoding = my_frame_data->encoding_results;
+
/* Are these fields optional? a trace suggests they are...*/
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_catalog);
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_catalog, encoding);
if (offset >= length) {
return offset;
}
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_db);
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_table);
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_org_table);
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_name);
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_org_name);
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_db, encoding);
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_table, encoding);
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_org_table, encoding);
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_name, encoding);
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_org_name, encoding);
// mariadb extended metadata infos
if (conn_data->mariadb_client_ext_caps & MARIADB_CAPS_EM
@@ -3322,7 +3539,9 @@ mysql_dissect_field_packet(tvbuff_t *tvb, proto_item *pi _U_, int offset, proto_
offset +=1; /* filler */
- proto_tree_add_item(tree, hf_mysql_fld_charsetnr, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ uint32_t charsetnr;
+ proto_tree_add_item_ret_uint(tree, hf_mysql_fld_charsetnr, tvb, offset, 2, ENC_LITTLE_ENDIAN, &charsetnr);
+ fld_encoding = collation_to_encoding(charsetnr, conn_data->is_mariadb_server);
offset += 2; /* charset */
proto_tree_add_item(tree, hf_mysql_fld_length, tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -3350,22 +3569,31 @@ mysql_dissect_field_packet(tvbuff_t *tvb, proto_item *pi _U_, int offset, proto_
}
my_frame_data->field_metas.types[fieldpos] = fld_type;
my_frame_data->field_metas.flags[fieldpos] = fld_flag;
+ my_frame_data->field_metas.encodings[fieldpos] = fld_encoding;
}
}
/* default (Only use for show fields) */
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_default);
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_fld_default, encoding);
}
return offset;
}
static int
-mysql_dissect_text_row_packet(tvbuff_t *tvb, int offset, proto_tree *tree)
+mysql_dissect_text_row_packet(tvbuff_t *tvb, int offset, proto_tree *tree, const mysql_frame_data_t *my_frame_data)
{
+ int fieldpos = 0;
+ unsigned encoding;
while (tvb_reported_length_remaining(tvb, offset) > 0) {
- offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_row_text);
+ if (fieldpos < my_frame_data->field_metas.count) {
+ encoding = my_frame_data->field_metas.encodings[fieldpos];
+ } else {
+ encoding = my_frame_data->encoding_results;
+ }
+ offset = mysql_field_add_lestring(tvb, offset, tree, hf_mysql_row_text, encoding);
+ fieldpos++;
}
return offset;
@@ -3382,7 +3610,7 @@ mysql_dissect_binary_row_packet(tvbuff_t *tvb, packet_info *pinfo, proto_item *p
int null_len = (nfields + 9) / 8;
char *null_buffer;
- null_buffer = (guint8 *)wmem_alloc(wmem_packet_scope(), (size_t)null_len + 1);
+ null_buffer = (guint8 *)wmem_alloc(pinfo->pool, (size_t)null_len + 1);
tvb_get_raw_bytes_as_string(tvb, offset, null_buffer, (size_t)null_len + 1);
proto_tree_add_bytes_with_length(tree, hf_mysql_null_buffer, tvb, offset, null_len, null_buffer, null_len);
offset += null_len;
@@ -3391,7 +3619,7 @@ mysql_dissect_binary_row_packet(tvbuff_t *tvb, packet_info *pinfo, proto_item *p
if ((null_buffer[(fieldpos + 2) / 8] & (1 << ((fieldpos + 2) % 8))) == 0) {
// data is not null
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- if (!mysql_dissect_binary_row_value(tvb, pinfo, pi, &offset, tree, my_frame_data->field_metas.types[fieldpos], my_frame_data->field_metas.flags[fieldpos]))
+ if (!mysql_dissect_binary_row_value(tvb, pinfo, pi, &offset, tree, my_frame_data->field_metas.types[fieldpos], my_frame_data->field_metas.flags[fieldpos], my_frame_data->field_metas.encodings[fieldpos]))
break;
}
} else {
@@ -3405,7 +3633,7 @@ mysql_dissect_binary_row_packet(tvbuff_t *tvb, packet_info *pinfo, proto_item *p
}
static char
-mysql_dissect_binary_row_value(tvbuff_t *tvb, packet_info *pinfo _U_, proto_item *pi _U_, int *offset, proto_item *tree, guint8 field_type, guint16 field_flag)
+mysql_dissect_binary_row_value(tvbuff_t *tvb, packet_info *pinfo _U_, proto_item *pi _U_, int *offset, proto_item *tree, guint8 field_type, guint16 field_flag, unsigned field_encoding)
{
int dissector_index = 0;
guint8 param_unsigned = 0;
@@ -3416,7 +3644,7 @@ mysql_dissect_binary_row_value(tvbuff_t *tvb, packet_info *pinfo _U_, proto_item
while (mysql_exec_dissectors[dissector_index].dissector != NULL) {
if (mysql_exec_dissectors[dissector_index].type == field_type &&
mysql_exec_dissectors[dissector_index].unsigned_flag == param_unsigned) {
- mysql_exec_dissectors[dissector_index].dissector(tvb, offset, tree);
+ mysql_exec_dissectors[dissector_index].dissector(tvb, offset, tree, field_encoding);
return 1;
}
dissector_index++;
@@ -3460,12 +3688,14 @@ mysql_dissect_response_prepare(tvbuff_t *tvb, packet_info *pinfo, int offset, pr
param_metas->count = stmt_num_params;
param_metas->flags = (guint16 *)wmem_alloc0_array(wmem_file_scope(), guint16, param_metas->count);
param_metas->types = (guint8 *)wmem_alloc0_array(wmem_file_scope(), guint8, param_metas->count);
+ //param_metas->encodings = (unsigned *)wmem_alloc0_array(wmem_file_scope(), unsigned, param_metas->count);
stmt_data->param_metas = *param_metas;
field_metas = wmem_new(wmem_file_scope(), my_metadata_list_t);
field_metas->count = stmt_num_fields;
field_metas->flags = (guint16 *)wmem_alloc0_array(wmem_file_scope(), guint16, field_metas->count);
field_metas->types = (guint8 *)wmem_alloc0_array(wmem_file_scope(), guint8, field_metas->count);
+ field_metas->encodings = (unsigned *)wmem_alloc0_array(wmem_file_scope(), unsigned, field_metas->count);
stmt_data->field_metas = *field_metas;
wmem_tree_insert32(conn_data->stmts, stmt_id, stmt_data);
@@ -4103,6 +4333,8 @@ dissect_mysql_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat
if (!conn_data) {
conn_data = wmem_new0(wmem_file_scope(), mysql_conn_data_t);
conn_data->stmts = wmem_tree_new(wmem_file_scope());
+ conn_data->encoding_client = ENC_UTF_8;
+ conn_data->encoding_results = ENC_UTF_8;
conversation_add_proto_data(conversation, proto_mysql, conn_data);
}
@@ -4120,6 +4352,8 @@ dissect_mysql_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat
mysql_frame_data_p->stmt_id = conn_data->stmt_id;
mysql_frame_data_p->remaining_field_packet_count = conn_data->remaining_field_packet_count;
mysql_frame_data_p->field_metas = conn_data->field_metas;
+ mysql_frame_data_p->encoding_client = conn_data->encoding_client;
+ mysql_frame_data_p->encoding_results = conn_data->encoding_results;
p_add_proto_data(wmem_file_scope(), pinfo, proto_mysql, tvb_raw_offset(tvb), mysql_frame_data_p);
}
@@ -4165,7 +4399,7 @@ dissect_mysql_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat
if (is_response) {
if (packet_number == 0 && mysql_frame_data_p->state == UNDEFINED) {
col_set_str(pinfo->cinfo, COL_INFO, "Server Greeting ");
- offset = mysql_dissect_greeting(tvb, pinfo, offset, mysql_tree, conn_data);
+ offset = mysql_dissect_greeting(tvb, pinfo, offset, mysql_tree, conn_data, mysql_frame_data_p);
} else if ((mysql_frame_data_p->state == CLONE_ACTIVE) || (mysql_frame_data_p->state == CLONE_EXIT)) {
col_set_str(pinfo->cinfo, COL_INFO, "Clone Response");
offset = mysql_dissect_clone_response(tvb, pinfo, offset, mysql_tree, conn_data, ti, mysql_frame_data_p->state);
@@ -4308,6 +4542,8 @@ dissect_mysql_compressed_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
conn_data = wmem_new0(wmem_file_scope(), mysql_conn_data_t);
conn_data->stmts = wmem_tree_new(wmem_file_scope());
conn_data->compressed_state = MYSQL_COMPRESS_ACTIVE;
+ conn_data->encoding_client = ENC_UTF_8;
+ conn_data->encoding_results = ENC_UTF_8;
conversation_add_proto_data(conversation, proto_mysql, conn_data);
}
if (!conn_data->reassembly_info) {
@@ -4735,15 +4971,15 @@ void proto_register_mysql(void)
FT_UINT32, BASE_DEC, NULL, 0x0,
"MySQL Max packet", HFILL }},
- { &hf_mysql_charset,
- { "Charset", "mysql.charset",
- FT_UINT8, BASE_DEC|BASE_EXT_STRING, &mysql_collation_vals_ext, 0x0,
- "MySQL Charset", HFILL }},
+ { &hf_mysql_collation,
+ { "Collation", "mysql.collation",
+ FT_UINT16, BASE_DEC|BASE_EXT_STRING, &mysql_collation_vals_ext, 0x0,
+ "MySQL Collation", HFILL }},
- { &hf_mariadb_charset,
- { "Charset", "mariadb.charset",
- FT_UINT8, BASE_DEC|BASE_EXT_STRING, &mariadb_collation_vals_ext, 0x0,
- "MySQL Charset", HFILL }},
+ { &hf_mariadb_collation,
+ { "Collation", "mariadb.collation",
+ FT_UINT16, BASE_DEC|BASE_EXT_STRING, &mariadb_collation_vals_ext, 0x0,
+ "MariaDB Collation", HFILL }},
{ &hf_mysql_table_name,
{ "Table Name", "mysql.table_name",
@@ -5436,9 +5672,14 @@ void proto_register_mysql(void)
FT_UINT64, BASE_DEC, NULL, 0x0,
NULL, HFILL }},
+ { &hf_mysql_exec_field_string_length,
+ { "Length (String)", "mysql.exec.field.string.length",
+ FT_UINT24, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+
{ &hf_mysql_exec_field_string,
{ "Value (String)", "mysql.exec.field.string",
- FT_UINT_STRING, BASE_NONE, NULL, 0x0,
+ FT_STRING, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{ &hf_mysql_exec_field_double,
diff --git a/epan/dissectors/packet-nas_5gs.c b/epan/dissectors/packet-nas_5gs.c
index 53a76a4bf3..46189bda5d 100644
--- a/epan/dissectors/packet-nas_5gs.c
+++ b/epan/dissectors/packet-nas_5gs.c
@@ -34,7 +34,7 @@
void proto_register_nas_5gs(void);
void proto_reg_handoff_nas_5gs(void);
-static gboolean g_nas_5gs_null_decipher = FALSE;
+static bool g_nas_5gs_null_decipher;
enum {
DECODE_USER_DATA_AS_NONE,
DECODE_USER_DATA_AS_IP,
@@ -857,6 +857,7 @@ static const value_string nas_5gs_epd_vals[] = {
};
struct nas5gs_private_data {
+ guint8 sec_hdr_type;
guint32 payload_container_type;
};
@@ -1562,7 +1563,7 @@ de_nas_5gs_mm_5gs_ta_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
proto_tree_add_item(tree, hf_nas_5gs_tac, tvb, curr_offset, 3, ENC_BIG_ENDIAN);
curr_offset += 3;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -2603,8 +2604,13 @@ de_nas_5gs_mm_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
{
/* The purpose of the NAS message container IE is to encapsulate a plain 5GS NAS message. */
/* a NAS message without NAS security header */
+ struct nas5gs_private_data *nas5gs_data = nas5gs_get_private_data(pinfo);
- dissect_nas_5gs(tvb_new_subset_length(tvb, offset, len), pinfo, tree, NULL);
+ if (nas5gs_data->sec_hdr_type == NAS_5GS_PLAIN_NAS_MSG || g_nas_5gs_null_decipher) {
+ dissect_nas_5gs(tvb_new_subset_length(tvb, offset, len), pinfo, tree, NULL);
+ } else {
+ proto_tree_add_subtree(tree, tvb, offset, len, ett_nas_5gs_enc, NULL, "Encrypted data");
+ }
return len;
}
@@ -2783,7 +2789,7 @@ de_nas_5gs_mm_op_def_acc_cat_def(tvbuff_t *tvb, proto_tree *tree, packet_info *p
guint32 i = 1, j, k;
guint32 length, criteria_length, criteria_type, criteria_count;
guint32 curr_offset, saved_offset, saved_offset2, saved_offset3, criteria_offset;
- gboolean psac;
+ bool psac;
curr_offset = offset;
@@ -4967,7 +4973,7 @@ de_nas_5gs_sm_pdu_address(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
gchar *add_string _U_, int string_len _U_)
{
proto_item *ti;
- gboolean si6lla;
+ bool si6lla;
guint32 pdu_addr;
guint8 interface_id[8];
@@ -6271,7 +6277,7 @@ static const value_string nas_5gs_common_elem_strings[] = {
};
value_string_ext nas_5gs_common_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_common_elem_strings);
-#define NUM_NAS_5GS_COMMON_ELEM (sizeof(nas_5gs_common_elem_strings)/sizeof(value_string))
+#define NUM_NAS_5GS_COMMON_ELEM array_length(nas_5gs_common_elem_strings)
gint ett_nas_5gs_common_elem[NUM_NAS_5GS_COMMON_ELEM];
@@ -6515,7 +6521,7 @@ static const value_string nas_5gs_mm_elem_strings[] = {
};
value_string_ext nas_5gs_mm_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_mm_elem_strings);
-#define NUM_NAS_5GS_MM_ELEM (sizeof(nas_5gs_mm_elem_strings)/sizeof(value_string))
+#define NUM_NAS_5GS_MM_ELEM array_length(nas_5gs_mm_elem_strings)
gint ett_nas_5gs_mm_elem[NUM_NAS_5GS_MM_ELEM];
guint16(*nas_5gs_mm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -6714,7 +6720,7 @@ static const value_string nas_5gs_sm_elem_strings[] = {
};
value_string_ext nas_5gs_sm_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_sm_elem_strings);
-#define NUM_NAS_5GS_SM_ELEM (sizeof(nas_5gs_sm_elem_strings)/sizeof(value_string))
+#define NUM_NAS_5GS_SM_ELEM array_length(nas_5gs_sm_elem_strings)
gint ett_nas_5gs_sm_elem[NUM_NAS_5GS_SM_ELEM];
guint16(*nas_5gs_sm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -9597,7 +9603,7 @@ static const value_string nas_5gs_updp_elem_strings[] = {
};
value_string_ext nas_5gs_updp_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_updp_elem_strings);
-#define NUM_NAS_5GS_UPDP_ELEM (sizeof(nas_5gs_updp_elem_strings)/sizeof(value_string))
+#define NUM_NAS_5GS_UPDP_ELEM array_length(nas_5gs_updp_elem_strings)
gint ett_nas_5gs_updp_elem[NUM_NAS_5GS_UPDP_ELEM];
guint16(*nas_5gs_updp_elem_fcn[])(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo,
@@ -9801,7 +9807,7 @@ static const value_string nas_5gs_mm_message_type_vals[] = {
static value_string_ext nas_5gs_mm_msg_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_mm_message_type_vals);
-#define NUM_NAS_5GS_MM_MSG (sizeof(nas_5gs_mm_message_type_vals)/sizeof(value_string))
+#define NUM_NAS_5GS_MM_MSG array_length(nas_5gs_mm_message_type_vals)
static gint ett_nas_5gs_mm_msg[NUM_NAS_5GS_MM_MSG];
static void(*nas_5gs_mm_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len) = {
nas_5gs_mm_registration_req, /* 0x41 Registration request */
@@ -9905,7 +9911,7 @@ static void(*nas_5gs_mm_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info
};
static value_string_ext nas_5gs_sm_msg_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_sm_message_type_vals);
-#define NUM_NAS_5GS_SM_MSG (sizeof(nas_5gs_sm_message_type_vals)/sizeof(value_string))
+#define NUM_NAS_5GS_SM_MSG array_length(nas_5gs_sm_message_type_vals)
static gint ett_nas_5gs_sm_msg[NUM_NAS_5GS_SM_MSG];
static void(*nas_5gs_sm_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len) = {
@@ -9965,7 +9971,7 @@ static const value_string nas_5gs_updp_msg_strings[] = {
};
static value_string_ext nas_5gs_updp_msg_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_updp_msg_strings);
-#define NUM_NAS_5GS_UPDP_MSG (sizeof(nas_5gs_updp_msg_strings)/sizeof(value_string))
+#define NUM_NAS_5GS_UPDP_MSG array_length(nas_5gs_updp_msg_strings)
static gint ett_nas_5gs_updp_msg[NUM_NAS_5GS_UPDP_MSG];
static void(*nas_5gs_updp_msg_fcn[])(tvbuff_t* tvb, proto_tree* tree, packet_info* pinfo, guint32 offset, guint len) = {
@@ -10318,7 +10324,8 @@ dissect_nas_5gs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
proto_item *item;
proto_tree *nas_5gs_tree, *sub_tree;
int offset = 0;
- guint8 seq_hdr_type, ext_pd;
+ guint8 sec_hdr_type, ext_pd;
+ struct nas5gs_private_data *nas5gs_data = nas5gs_get_private_data(pinfo);
/* make entry in the Protocol column on summary display */
col_append_sep_str(pinfo->cinfo, COL_PROTOCOL, "/", "NAS-5GS");
@@ -10334,8 +10341,9 @@ dissect_nas_5gs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
/* Security header type associated with a spare half octet; or
* PDU session identity octet 2 */
/* Determine if it's a plain 5GS NAS Message or not */
- seq_hdr_type = tvb_get_guint8(tvb, offset + 1);
- if (seq_hdr_type == NAS_5GS_PLAIN_NAS_MSG) {
+ sec_hdr_type = tvb_get_guint8(tvb, offset + 1);
+ nas5gs_data->sec_hdr_type = sec_hdr_type;
+ if (sec_hdr_type == NAS_5GS_PLAIN_NAS_MSG) {
return dissect_nas_5gs_common(tvb, pinfo, nas_5gs_tree, offset, data);
}
/* Security protected NAS 5GS message*/
@@ -10355,7 +10363,7 @@ dissect_nas_5gs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
proto_tree_add_item(sub_tree, hf_nas_5gs_seq_no, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- if ((seq_hdr_type != NAS_5GS_INTEG_CIPH_NAS_MSG && seq_hdr_type != NAS_5GS_INTEG_CIPH_NEW_NAS_MSG) ||
+ if ((sec_hdr_type != NAS_5GS_INTEG_CIPH_NAS_MSG && sec_hdr_type != NAS_5GS_INTEG_CIPH_NEW_NAS_MSG) ||
g_nas_5gs_null_decipher) {
return dissect_nas_5gs_common(tvb, pinfo, nas_5gs_tree, offset, data);
} else {
diff --git a/epan/dissectors/packet-nas_eps.c b/epan/dissectors/packet-nas_eps.c
index 63012d7d52..efb6b159c2 100644
--- a/epan/dissectors/packet-nas_eps.c
+++ b/epan/dissectors/packet-nas_eps.c
@@ -450,8 +450,8 @@ static expert_field ei_nas_eps_sec_hdr_wrong_pd;
static expert_field ei_nas_eps_missing_mandatory_elemen;
/* Global variables */
-static gboolean g_nas_eps_dissect_plain = FALSE;
-static gboolean g_nas_eps_null_decipher = TRUE;
+static bool g_nas_eps_dissect_plain;
+static bool g_nas_eps_null_decipher = true;
enum {
DECODE_USER_DATA_AS_NONE,
DECODE_USER_DATA_AS_IP,
@@ -693,7 +693,7 @@ de_eps_cmn_add_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
break;
}
- return(len);
+ return len;
}
/*
@@ -1201,7 +1201,7 @@ de_emm_csfb_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_nas_eps_emm_csfb_resp, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.9.3.6 Daylight saving time
@@ -1422,7 +1422,7 @@ de_emm_eps_mid(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
break;
}
- return(len);
+ return len;
}
/*
@@ -1574,7 +1574,7 @@ de_emm_esm_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
dissect_nas_eps_esm_msg(new_tvb, pinfo, sub_tree, 0/* offset */);
}
- return(len);
+ return len;
}
/*
* 9.9.3.16 GPRS timer
@@ -1635,7 +1635,7 @@ de_emm_nas_imeisv_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_nas_eps_esm_imeisv_req, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 9.9.3.19 KSI and sequence number
@@ -1656,7 +1656,7 @@ de_emm_nas_ksi_and_seq_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_bits_item(tree, hf_nas_eps_seq_no_short, tvb, bit_offset, 5, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1734,7 +1734,7 @@ de_emm_nas_key_set_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
/*bit_offset+=3;*/
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
@@ -1783,7 +1783,7 @@ de_emm_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
}
- return(len);
+ return len;
}
/*
* 9.9.3.23 NAS security algorithms
@@ -1837,7 +1837,7 @@ de_emm_nas_sec_alsgs(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.9.3.24 Network name
@@ -1858,7 +1858,7 @@ de_emm_nonce(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_nas_eps_emm_nonce, tvb, curr_offset, 4, ENC_BIG_ENDIAN);
curr_offset+=4;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.9.3.25A Paging identity
@@ -1881,7 +1881,7 @@ de_emm_paging_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_bits_item(tree, hf_nas_eps_emm_paging_id, tvb, (curr_offset<<3)+7, 1, ENC_BIG_ENDIAN);
/*curr_offset+=1;*/
- return(1);
+ return 1;
}
/*
* 9.9.3.26 P-TMSI signature
@@ -1946,7 +1946,7 @@ de_emm_nas_short_mac(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_nas_eps_emm_short_mac, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.9.3.29 Time zone
@@ -1977,7 +1977,7 @@ de_emm_trac_area_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
proto_tree_add_item(tree, hf_nas_eps_emm_tai_tac, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset+=2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.9.3.33 Tracking area identity list
@@ -2086,7 +2086,7 @@ de_emm_trac_area_id_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.9.3.34 UE network capability
@@ -2287,7 +2287,7 @@ de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
}
- return(len);
+ return len;
}
/* UE radio capability information update needed flag (URC upd) (octet 1) */
static const true_false_string nas_eps_emm_ue_ra_cap_inf_upd_need_flg = {
@@ -2311,7 +2311,7 @@ de_emm_ue_ra_cap_inf_upd_need(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, (curr_offset<<3)+4, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_nas_eps_emm_ue_ra_cap_inf_upd_need_flg, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 9.9.3.36 UE security capability
@@ -2399,7 +2399,7 @@ de_emm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
* then also octet 6 shall be included and octet 7 may be included.
*/
if (len == 2)
- return(len);
+ return len;
/* UMTS encryption algorithms supported (octet 5)
* UEA0 UEA1 UEA2 UEA3 UEA4 UEA5 UEA6 UEA7
@@ -2413,14 +2413,14 @@ de_emm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
if (len == 4)
- return(len);
+ return len;
/* GPRS encryption algorithms supported (octet 7) */
/* 0 spare GEA1 GEA2 GEA3 GEA4 GEA5 GEA6 GEA7*/
proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, oct7_flags, ENC_NA);
curr_offset++;
- return(len);
+ return len;
}
/*
* 9.9.3.37 Emergency Number List
@@ -2502,7 +2502,7 @@ de_emm_ss_code(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
*/
proto_tree_add_item(tree, hf_nas_eps_emm_ss_code, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
@@ -2528,7 +2528,7 @@ de_emm_lcs_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_nas_eps_emm_lcs_ind, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
* 9.9.3.41 LCS client identity
@@ -2550,7 +2550,7 @@ de_emm_lcs_client_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
new_tvb = tvb_new_subset_length(tvb, curr_offset, len);
dissect_gsm_map_lcs_LCS_ClientID_PDU( new_tvb, pinfo, tree, NULL );
- return(len);
+ return len;
}
/*
@@ -2578,7 +2578,7 @@ de_emm_gen_msg_cont_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
p_add_proto_data(pinfo->pool, pinfo, proto_nas_eps, 0, GUINT_TO_POINTER(msg_cont_type));
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 9.9.3.43 Generic message container
@@ -2614,7 +2614,7 @@ de_emm_gen_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
break;
}
- return(len);
+ return len;
}
/*
* 9.9.3.44 Voice domain preference and UE's usage setting
@@ -3209,7 +3209,7 @@ de_esm_apn_aggr_max_br(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* APN-AMBR for downlink (extended) octet 5 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3231,7 +3231,7 @@ de_esm_apn_aggr_max_br(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* APN-AMBR for uplink (extended) octet 6 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3253,7 +3253,7 @@ de_esm_apn_aggr_max_br(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* APN-AMBR for downlink (extended-2) octet 7 */
octet = tvb_get_guint8(tvb,curr_offset);
if ((octet == 0)||(octet == 0xff)) {
@@ -3267,7 +3267,7 @@ de_esm_apn_aggr_max_br(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_uint_format_value(tree, hf_nas_eps_esm_apn_ambr_dl_total, tvb, curr_offset, 1, dl_total, "%.3f Mbps", (gfloat)dl_total / 1000);
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* APN-AMBR for uplink (extended-2) octet 8 */
octet = tvb_get_guint8(tvb,curr_offset);
if ((octet == 0)||(octet == 0xff)) {
@@ -3281,7 +3281,7 @@ de_esm_apn_aggr_max_br(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_uint_format_value(tree, hf_nas_eps_esm_apn_ambr_ul_total, tvb, curr_offset, 1, ul_total, "%.3f Mbps", (gfloat)ul_total / 1000);
curr_offset++;
- return(len);
+ return len;
}
/*
* 9.9.4.2A Connectivity type
@@ -3343,7 +3343,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_nas_eps_esm_qci, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Maximum bit rate for uplink octet 4 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3355,7 +3355,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Maximum bit rate for downlink octet 5 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3367,7 +3367,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Guaranteed bit rate for uplink octet 6 */
octet = tvb_get_guint8(tvb,curr_offset);
proto_tree_add_uint_format_value(tree, hf_nas_eps_esm_gbr_ul, tvb, curr_offset, 1, octet,
@@ -3375,7 +3375,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Guaranteed bit rate for downlink octet 7 */
octet = tvb_get_guint8(tvb,curr_offset);
proto_tree_add_uint_format_value(tree, hf_nas_eps_esm_gbr_dl, tvb, curr_offset, 1, octet,
@@ -3383,7 +3383,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Maximum bit rate for uplink (extended) octet 8 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3397,7 +3397,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Maximum bit rate for downlink (extended) octet 9 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3411,7 +3411,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Guaranteed bit rate for uplink (extended) octet 10 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3425,7 +3425,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Guaranteed bit rate for downlink (extended) octet 11 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3439,7 +3439,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
curr_offset++;
if ((curr_offset - offset) >= len)
- return(len);
+ return len;
/* Maximum bit rate for uplink (extended-2) octet 12 */
octet = tvb_get_guint8(tvb,curr_offset);
if (octet == 0) {
@@ -3484,7 +3484,7 @@ de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
calc_bitrate_ext2(octet));
}
- return(len);
+ return len;
}
/*
* 9.9.4.4 ESM cause
@@ -3560,7 +3560,7 @@ de_esm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 9.9.4.5 ESM information transfer flag
@@ -3579,11 +3579,10 @@ de_esm_inf_trf_flg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
-
proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, (curr_offset<<3)+4, 3, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_nas_eps_esm_eit, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset++;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.9.4.6 Linked EPS bearer identity
@@ -3637,7 +3636,7 @@ de_esm_notif_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_nas_eps_esm_notif_ind, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
/*
@@ -3705,7 +3704,7 @@ de_esm_pdn_addr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
break;
}
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
diff --git a/epan/dissectors/packet-nasdaq-itch.c b/epan/dissectors/packet-nasdaq-itch.c
index d16f2d9931..a2906b49a2 100644
--- a/epan/dissectors/packet-nasdaq-itch.c
+++ b/epan/dissectors/packet-nasdaq-itch.c
@@ -33,7 +33,7 @@ void proto_reg_handoff_nasdaq_itch(void);
static dissector_handle_t nasdaq_itch_handle;
/* Chi-X version */
-static gboolean nasdaq_itch_chi_x = TRUE;
+static bool nasdaq_itch_chi_x = true;
static const value_string message_types_val[] = {
{ 'A', "Add Order " },
@@ -139,7 +139,7 @@ static int hf_nasdaq_itch_cross;
static int
order_ref_number(tvbuff_t *tvb, packet_info *pinfo, proto_tree *nasdaq_itch_tree, int offset)
{
- const char *str_value = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 9, ENC_ASCII);
+ const char *str_value = tvb_get_string_enc(pinfo->pool, tvb, offset, 9, ENC_ASCII);
guint32 value = (guint32)strtoul(str_value, NULL, 10);
proto_tree_add_uint(nasdaq_itch_tree, hf_nasdaq_itch_order_reference, tvb, offset, 9, value);
@@ -150,24 +150,24 @@ order_ref_number(tvbuff_t *tvb, packet_info *pinfo, proto_tree *nasdaq_itch_tree
/* -------------------------- */
static int
-time_stamp(tvbuff_t *tvb, proto_tree *nasdaq_itch_tree, int id, int offset, int size)
+time_stamp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *nasdaq_itch_tree, int id, int offset, int size)
{
if (nasdaq_itch_tree) {
guint32 ms, val;
const char *display = "";
- const char *str_value = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, size, ENC_ASCII);
+ const char *str_value = tvb_get_string_enc(pinfo->pool, tvb, offset, size, ENC_ASCII);
ms = val = (guint32)strtoul(str_value, NULL, 10);
switch (size) {
case 3:
- display = wmem_strdup_printf(wmem_packet_scope(), " %03u" , val);
+ display = wmem_strdup_printf(pinfo->pool, " %03u" , val);
break;
case 5:
ms = val *1000;
/* Fall Through */
case 8: /* 0 86 400 000 */
- display = wmem_strdup_printf(wmem_packet_scope(), " %u (%02u:%02u:%02u.%03u)", val,
+ display = wmem_strdup_printf(pinfo->pool, " %u (%02u:%02u:%02u.%03u)", val,
ms/3600000, (ms % 3600000)/60000, (ms % 60000)/1000, ms %1000);
break;
}
@@ -181,7 +181,7 @@ static int
number_of_shares(tvbuff_t *tvb, packet_info *pinfo, proto_tree *nasdaq_itch_tree, int id, int offset, int big)
{
gint size = (big) ? 10 : 6;
- const char *str_value = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, size, ENC_ASCII);
+ const char *str_value = tvb_get_string_enc(pinfo->pool, tvb, offset, size, ENC_ASCII);
guint32 value = (guint32)strtoul(str_value, NULL, 10);
@@ -197,7 +197,7 @@ price(tvbuff_t *tvb, packet_info *pinfo, proto_tree *nasdaq_itch_tree, int id, i
{
gint size = (big) ? 19 : 10;
- const char *str_value = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, size, ENC_ASCII);
+ const char *str_value = tvb_get_string_enc(pinfo->pool, tvb, offset, size, ENC_ASCII);
gdouble value = guint64_to_gdouble(g_ascii_strtoull(str_value, NULL, 10))/((big)?1000000.0:10000.0);
proto_tree_add_double(nasdaq_itch_tree, id, tvb, offset, size, value);
@@ -210,7 +210,7 @@ price(tvbuff_t *tvb, packet_info *pinfo, proto_tree *nasdaq_itch_tree, int id, i
static int
stock(tvbuff_t *tvb, packet_info *pinfo, proto_tree *nasdaq_itch_tree, int offset)
{
- char *stock_p = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 6, ENC_ASCII);
+ char *stock_p = tvb_get_string_enc(pinfo->pool, tvb, offset, 6, ENC_ASCII);
proto_tree_add_item(nasdaq_itch_tree, hf_nasdaq_itch_stock, tvb, offset, 6, ENC_ASCII);
col_append_fstr(pinfo->cinfo, COL_INFO, "<%s> ", stock_p);
@@ -293,7 +293,7 @@ dissect_nasdaq_itch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
}
if (version == 2) {
- offset = time_stamp (tvb, nasdaq_itch_tree, hf_nasdaq_itch_millisecond, offset, 8);
+ offset = time_stamp (tvb, pinfo, nasdaq_itch_tree, hf_nasdaq_itch_millisecond, offset, 8);
}
proto_tree_add_item(nasdaq_itch_tree, hf_nasdaq_itch_message_type, tvb, offset, 1, ENC_ASCII|ENC_NA);
@@ -302,11 +302,11 @@ dissect_nasdaq_itch(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
if (version == 3) {
switch (nasdaq_itch_type) {
case 'T': /* seconds */
- /*offset =*/ time_stamp (tvb, nasdaq_itch_tree, hf_nasdaq_itch_second, offset, 5);
+ /*offset =*/ time_stamp (tvb, pinfo, nasdaq_itch_tree, hf_nasdaq_itch_second, offset, 5);
return tvb_captured_length(tvb);
case 'M': /* milliseconds */
- /*offset =*/ time_stamp (tvb, nasdaq_itch_tree, hf_nasdaq_itch_millisecond, offset, 3);
+ /*offset =*/ time_stamp (tvb, pinfo, nasdaq_itch_tree, hf_nasdaq_itch_millisecond, offset, 3);
return tvb_captured_length(tvb);
}
}
diff --git a/epan/dissectors/packet-nasdaq-soup.c b/epan/dissectors/packet-nasdaq-soup.c
index afb584aee0..900308811e 100644
--- a/epan/dissectors/packet-nasdaq-soup.c
+++ b/epan/dissectors/packet-nasdaq-soup.c
@@ -47,7 +47,7 @@ static dissector_handle_t nasdaq_soup_handle;
static dissector_handle_t nasdaq_itch_handle;
/* desegmentation of Nasdaq Soup */
-static gboolean nasdaq_soup_desegment = TRUE;
+static bool nasdaq_soup_desegment = true;
/* Initialize the subtree pointers */
static gint ett_nasdaq_soup;
diff --git a/epan/dissectors/packet-nbap.c b/epan/dissectors/packet-nbap.c
index a8140d0560..e461656eb7 100644
--- a/epan/dissectors/packet-nbap.c
+++ b/epan/dissectors/packet-nbap.c
@@ -4821,1632 +4821,1632 @@ static int ett_nbap_TransportLayerAddress;
static int ett_nbap_TransportLayerAddress_nsap;
static int ett_nbap_ib_sg_data;
-static gint ett_nbap_PrivateIE_ID;
-static gint ett_nbap_ProcedureID;
-static gint ett_nbap_TransactionID;
-static gint ett_nbap_ProtocolIE_Container;
-static gint ett_nbap_ProtocolIE_Field;
-static gint ett_nbap_ProtocolExtensionContainer;
-static gint ett_nbap_ProtocolExtensionField;
-static gint ett_nbap_PrivateIE_Container;
-static gint ett_nbap_PrivateIE_Field;
-static gint ett_nbap_ActivationInformation;
-static gint ett_nbap_ActivationInformationItem;
-static gint ett_nbap_Additional_EDCH_Setup_Info;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Setup;
-static gint ett_nbap_Additional_EDCH_FDD_Setup_Cell_Information;
-static gint ett_nbap_Additional_EDCH_UL_DPCH_Information_Setup;
-static gint ett_nbap_Additional_EDCH_F_DPCH_Information;
-static gint ett_nbap_Additional_EDCH_RL_Specific_Information_To_Setup_List;
-static gint ett_nbap_Additional_EDCH_RL_Specific_Information_To_Setup_ItemIEs;
-static gint ett_nbap_Additional_EDCH_Cell_Information_To_Add_List;
-static gint ett_nbap_Additional_EDCH_Cell_Information_To_Add_ItemIEs;
-static gint ett_nbap_Additional_EDCH_RL_Specific_Information_To_Add_ItemIEs;
-static gint ett_nbap_EDCH_Additional_RL_Specific_Information_To_Add_List;
-static gint ett_nbap_Additional_EDCH_RL_Specific_Information_To_Modify_List;
-static gint ett_nbap_Additional_EDCH_RL_Specific_Information_To_Modify_ItemIEs;
-static gint ett_nbap_Additional_EDCH_FDD_Information;
-static gint ett_nbap_Additional_EDCH_MAC_d_Flows_Specific_Info_List;
-static gint ett_nbap_Additional_EDCH_MAC_d_Flows_Specific_Info;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Response_List;
-static gint ett_nbap_Additional_EDCH_FDD_Information_Response_ItemIEs;
-static gint ett_nbap_EDCH_Additional_RL_Specific_Information_Response_List;
-static gint ett_nbap_EDCH_Additional_RL_Specific_Information_Response_ItemIEs;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Response_RLReconf_List;
-static gint ett_nbap_Additional_EDCH_FDD_Information_Response_RLReconf_Items;
-static gint ett_nbap_Additional_Modififed_EDCH_FDD_Information_Response_ItemIEs;
-static gint ett_nbap_EDCH_Additional_Modified_RL_Specific_Information_Response_List;
-static gint ett_nbap_EDCH_Additional_Modified_RL_Specific_Information_Response_List_Items;
-static gint ett_nbap_Additional_EDCH_MAC_d_Flow_Specific_Information_Response_List;
-static gint ett_nbap_Additional_EDCH_MAC_d_Flows_Specific_Info_Response;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Response_RL_Add_List;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Response_RL_Add_ItemIEs;
-static gint ett_nbap_Additional_EDCH_Cell_Information_ConfigurationChange_List;
-static gint ett_nbap_Additional_EDCH_ConfigurationChange_Info_ItemIEs;
-static gint ett_nbap_Additional_EDCH_UL_DPCH_Information_Modify;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Removal_List;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Removal_Info_ItemIEs;
-static gint ett_nbap_Additional_EDCH_FDD_Update_Information;
-static gint ett_nbap_Additional_EDCH_DL_Control_Channel_Change_Information_List;
-static gint ett_nbap_Additional_EDCH_DL_Control_Channel_Change_Info_ItemIEs;
-static gint ett_nbap_AdditionalMeasurementValueList;
-static gint ett_nbap_AdditionalMeasurementValue;
-static gint ett_nbap_AdditionalTimeSlotListLCR;
-static gint ett_nbap_AdditionalTimeSlotLCR;
-static gint ett_nbap_Active_Pattern_Sequence_Information;
-static gint ett_nbap_Transmission_Gap_Pattern_Sequence_Status_List;
-static gint ett_nbap_Transmission_Gap_Pattern_Sequence_Status_List_item;
-static gint ett_nbap_AllocationRetentionPriority;
-static gint ett_nbap_Angle_Of_Arrival_Value_LCR;
-static gint ett_nbap_BCCH_Specific_HSDSCH_RNTI_Information;
-static gint ett_nbap_BCCH_Specific_HSDSCH_RNTI_InformationLCR;
-static gint ett_nbap_Best_Cell_Portions_Value;
-static gint ett_nbap_Best_Cell_Portions_Item;
-static gint ett_nbap_Best_Cell_Portions_ValueLCR;
-static gint ett_nbap_Best_Cell_Portions_ItemLCR;
-static gint ett_nbap_BroadcastCommonTransportBearerIndication;
-static gint ett_nbap_Cause;
-static gint ett_nbap_Cell_ERNTI_Status_Information;
-static gint ett_nbap_Cell_ERNTI_Status_Information_Item;
-static gint ett_nbap_Vacant_ERNTI;
-static gint ett_nbap_CellSyncBurstTiming;
-static gint ett_nbap_CellSyncBurstTimingLCR;
-static gint ett_nbap_CommonChannelsCapacityConsumptionLaw;
-static gint ett_nbap_CommonChannelsCapacityConsumptionLaw_item;
-static gint ett_nbap_Common_EDCH_System_InformationFDD;
-static gint ett_nbap_Common_E_DCH_UL_DPCH_InfoItem;
-static gint ett_nbap_Common_E_DCH_EDPCH_InfoItem;
-static gint ett_nbap_Common_E_DCH_InfoItem;
-static gint ett_nbap_Common_E_DCH_HSDPCCH_InfoItem;
-static gint ett_nbap_Common_E_DCH_CQI_Info;
-static gint ett_nbap_Common_E_DCH_Preamble_Control_InfoItem;
-static gint ett_nbap_Common_E_DCH_AICH_Information;
-static gint ett_nbap_Common_E_DCH_FDPCH_InfoItem;
-static gint ett_nbap_Common_E_DCH_Resource_Combination_InfoList;
-static gint ett_nbap_Common_E_DCH_Resource_Combination_InfoList_Item;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoList;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoList_Item;
-static gint ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoList;
-static gint ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoList_Item;
-static gint ett_nbap_Common_E_DCH_LogicalChannel_InfoList;
-static gint ett_nbap_Common_E_DCH_LogicalChannel_InfoList_Item;
-static gint ett_nbap_Common_EDCH_System_Information_ResponseFDD;
-static gint ett_nbap_E_RNTI_List;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseList;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseList_Item;
-static gint ett_nbap_Common_MACFlows_to_DeleteFDD;
-static gint ett_nbap_Common_MACFlows_to_DeleteFDD_Item;
-static gint ett_nbap_CommonMACFlow_Specific_InfoList;
-static gint ett_nbap_CommonMACFlow_Specific_InfoItem;
-static gint ett_nbap_CommonMACFlow_Specific_InfoList_Response;
-static gint ett_nbap_CommonMACFlow_Specific_InfoItem_Response;
-static gint ett_nbap_Common_MACFlow_PriorityQueue_Information;
-static gint ett_nbap_Common_MACFlow_PriorityQueue_Item;
-static gint ett_nbap_CommonMeasurementAccuracy;
-static gint ett_nbap_CommonMeasurementValue;
-static gint ett_nbap_CommonMeasurementValueInformation;
-static gint ett_nbap_CommonMeasurementAvailable;
-static gint ett_nbap_Common_PhysicalChannel_Status_Information;
-static gint ett_nbap_Common_PhysicalChannel_Status_Information768;
-static gint ett_nbap_CommonTransportChannel_InformationResponse;
-static gint ett_nbap_Common_TransportChannel_Status_Information;
-static gint ett_nbap_ContinuousPacketConnectivityDTX_DRX_Information;
-static gint ett_nbap_ContinuousPacketConnectivityDTX_DRX_Information_to_Modify;
-static gint ett_nbap_ContinuousPacketConnectivityHS_SCCH_less_Information;
-static gint ett_nbap_ContinuousPacketConnectivityHS_SCCH_less_InformationItem;
-static gint ett_nbap_ContinuousPacketConnectivityHS_SCCH_less_Information_Response;
-static gint ett_nbap_CPC_Information;
-static gint ett_nbap_CriticalityDiagnostics;
-static gint ett_nbap_CriticalityDiagnostics_IE_List;
-static gint ett_nbap_CriticalityDiagnostics_IE_List_item;
-static gint ett_nbap_Common_EDCH_System_InformationLCR;
-static gint ett_nbap_Common_E_PUCH_InformationLCR;
-static gint ett_nbap_PRXdes_base_perURAFCN;
-static gint ett_nbap_PRXdes_base_Item;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoListLCR;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoList_ItemLCR;
-static gint ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoListLCR;
-static gint ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoList_ItemLCR;
-static gint ett_nbap_Common_EDCH_System_Information_ResponseLCR;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseListLCR;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseListLCR_Ext;
-static gint ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseList_ItemLCR;
-static gint ett_nbap_Common_E_AGCH_ListLCR;
-static gint ett_nbap_Common_E_AGCH_ItemLCR;
-static gint ett_nbap_Common_E_HICH_ListLCR;
-static gint ett_nbap_Common_E_HICH_ItemLCR;
-static gint ett_nbap_Common_E_RNTI_Info_LCR;
-static gint ett_nbap_Common_E_RNTI_Info_ItemLCR;
-static gint ett_nbap_Common_MACFlows_to_DeleteLCR;
-static gint ett_nbap_Common_MACFlows_to_DeleteLCR_Item;
-static gint ett_nbap_CommonMACFlow_Specific_InfoListLCR;
-static gint ett_nbap_CommonMACFlow_Specific_InfoItemLCR;
-static gint ett_nbap_Common_H_RNTI_InformationLCR;
-static gint ett_nbap_Common_H_RNTI_InfoItemLCR;
-static gint ett_nbap_Sync_InformationLCR;
-static gint ett_nbap_CommonMACFlow_Specific_InfoList_ResponseLCR;
-static gint ett_nbap_CommonMACFlow_Specific_InfoItem_ResponseLCR;
-static gint ett_nbap_CPC_InformationLCR;
-static gint ett_nbap_ContinuousPacketConnectivity_DRX_InformationLCR;
-static gint ett_nbap_HS_SCCH_DRX_Information_LCR;
-static gint ett_nbap_E_AGCH_DRX_Information_LCR;
-static gint ett_nbap_E_AGCH_DRX_Parameters;
-static gint ett_nbap_ContinuousPacketConnectivity_DRX_Information_to_Modify_LCR;
-static gint ett_nbap_DRX_Information_to_Modify_LCR;
-static gint ett_nbap_DRX_Information_to_Modify_Items_LCR;
-static gint ett_nbap_ContinuousPacketConnectivity_DRX_Information_ResponseLCR;
-static gint ett_nbap_HS_SCCH_DRX_Information_ResponseLCR;
-static gint ett_nbap_E_AGCH_DRX_Information_ResponseLCR;
-static gint ett_nbap_E_AGCH_DRX_Parameters_Response;
-static gint ett_nbap_DCH_FDD_Information;
-static gint ett_nbap_DCH_FDD_InformationItem;
-static gint ett_nbap_DCH_Specific_FDD_InformationList;
-static gint ett_nbap_DCH_Specific_FDD_Item;
-static gint ett_nbap_DCH_InformationResponse;
-static gint ett_nbap_DCH_InformationResponseItem;
-static gint ett_nbap_DCH_MeasurementOccasion_Information;
-static gint ett_nbap_DchMeasurementOccasionInformation_Item;
-static gint ett_nbap_Measurement_Occasion_Pattern_Sequence_parameters;
-static gint ett_nbap_DCH_TDD_Information;
-static gint ett_nbap_DCH_TDD_InformationItem;
-static gint ett_nbap_DCH_Specific_TDD_InformationList;
-static gint ett_nbap_DCH_Specific_TDD_Item;
-static gint ett_nbap_FDD_DCHs_to_Modify;
-static gint ett_nbap_FDD_DCHs_to_ModifyItem;
-static gint ett_nbap_DCH_ModifySpecificInformation_FDD;
-static gint ett_nbap_DCH_ModifySpecificItem_FDD;
-static gint ett_nbap_TDD_DCHs_to_Modify;
-static gint ett_nbap_DCH_ModifyItem_TDD;
-static gint ett_nbap_DCH_ModifySpecificInformation_TDD;
-static gint ett_nbap_DCH_ModifySpecificItem_TDD;
-static gint ett_nbap_DedicatedChannelsCapacityConsumptionLaw;
-static gint ett_nbap_DedicatedChannelsCapacityConsumptionLaw_item;
-static gint ett_nbap_DedicatedMeasurementValue;
-static gint ett_nbap_DedicatedMeasurementValueInformation;
-static gint ett_nbap_DedicatedMeasurementAvailable;
-static gint ett_nbap_DelayedActivation;
-static gint ett_nbap_DelayedActivationUpdate;
-static gint ett_nbap_Activate_Info;
-static gint ett_nbap_Deactivate_Info;
-static gint ett_nbap_Execution_Type;
-static gint ett_nbap_DGANSSCorrections;
-static gint ett_nbap_DGANSS_Corrections_Req;
-static gint ett_nbap_DGANSS_Information;
-static gint ett_nbap_DGANSS_InformationItem;
-static gint ett_nbap_DGANSS_SignalInformation;
-static gint ett_nbap_DGANSS_SignalInformationItem;
-static gint ett_nbap_DGANSSThreshold;
-static gint ett_nbap_DGNSS_ValidityPeriod;
-static gint ett_nbap_DGPSCorrections;
-static gint ett_nbap_DGPSThresholds;
-static gint ett_nbap_DL_Timeslot_Information;
-static gint ett_nbap_DL_Timeslot_InformationItem;
-static gint ett_nbap_DL_TimeslotLCR_Information;
-static gint ett_nbap_DL_TimeslotLCR_InformationItem;
-static gint ett_nbap_DL_Timeslot768_Information;
-static gint ett_nbap_DL_Timeslot768_InformationItem;
-static gint ett_nbap_DL_PowerBalancing_Information;
-static gint ett_nbap_DL_ReferencePowerInformationList;
-static gint ett_nbap_DL_ReferencePowerInformationItem;
-static gint ett_nbap_DL_TimeslotISCPInfo;
-static gint ett_nbap_DL_TimeslotISCPInfoItem;
-static gint ett_nbap_DL_TimeslotISCPInfoLCR;
-static gint ett_nbap_DL_TimeslotISCPInfoItemLCR;
-static gint ett_nbap_DL_HS_PDSCH_Timeslot_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_DL_HS_PDSCH_Timeslot_InformationItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_MaxHSDSCH_HSSCCH_Power_per_CELLPORTION;
-static gint ett_nbap_MaxHSDSCH_HSSCCH_Power_per_CELLPORTION_Item;
-static gint ett_nbap_DL_HS_PDSCH_Codelist_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_DRX_Information;
-static gint ett_nbap_DRX_Information_to_Modify;
-static gint ett_nbap_DRX_Information_to_Modify_Items;
-static gint ett_nbap_DSCH_InformationResponse;
-static gint ett_nbap_DSCH_InformationResponseItem;
-static gint ett_nbap_DSCH_TDD_Information;
-static gint ett_nbap_DSCH_TDD_InformationItem;
-static gint ett_nbap_DTX_Cycle_2ms_Items;
-static gint ett_nbap_DTX_Cycle_2ms_to_Modify_Items;
-static gint ett_nbap_DTX_Cycle_10ms_Items;
-static gint ett_nbap_DTX_Cycle_10ms_to_Modify_Items;
-static gint ett_nbap_DTX_Information;
-static gint ett_nbap_DTX_Information_to_Modify;
-static gint ett_nbap_DTX_Information_to_Modify_Items;
-static gint ett_nbap_Dual_Band_Capability_Info;
-static gint ett_nbap_E_AGCH_FDD_Code_Information;
-static gint ett_nbap_E_AGCH_FDD_Code_List;
-static gint ett_nbap_E_DCHCapacityConsumptionLaw;
-static gint ett_nbap_E_DCH_TDD_CapacityConsumptionLaw;
-static gint ett_nbap_E_DCH_SF_allocation;
-static gint ett_nbap_E_DCH_SF_allocation_item;
-static gint ett_nbap_E_DCH_FDD_DL_Control_Channel_Information;
-static gint ett_nbap_E_DCH_FDD_Information;
-static gint ett_nbap_E_DCH_FDD_Information_Response;
-static gint ett_nbap_E_DCH_FDD_Information_to_Modify;
-static gint ett_nbap_E_DCH_FDD_Update_Information;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_UpdateInformation;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_UpdateInformation_Item;
-static gint ett_nbap_E_DCH_DL_Control_Channel_Change_Information;
-static gint ett_nbap_E_DCH_DL_Control_Channel_Change_Information_Item;
-static gint ett_nbap_E_DCH_DL_Control_Channel_Grant_Information;
-static gint ett_nbap_E_DCH_DL_Control_Channel_Grant_Information_Item;
-static gint ett_nbap_E_DCH_Grant_Type_Information;
-static gint ett_nbap_E_DCH_LogicalChannelInformation;
-static gint ett_nbap_E_DCH_LogicalChannelInformationItem;
-static gint ett_nbap_E_DCH_MACdPDU_SizeList;
-static gint ett_nbap_E_DCH_MACdPDU_SizeListItem;
-static gint ett_nbap_E_DCH_LogicalChannelToModify;
-static gint ett_nbap_E_DCH_LogicalChannelToModifyItem;
-static gint ett_nbap_E_DCH_MACdPDU_SizeToModifyList;
-static gint ett_nbap_E_DCH_LogicalChannelToDelete;
-static gint ett_nbap_E_DCH_LogicalChannelToDeleteItem;
-static gint ett_nbap_E_DCH_MACdFlows_Information;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_InfoList;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_InfoItem;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_InformationResp;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_InformationResp_Item;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_InfoList_to_Modify;
-static gint ett_nbap_E_DCH_MACdFlow_Specific_InfoItem_to_Modify;
-static gint ett_nbap_E_DCH_MACdFlows_to_Delete;
-static gint ett_nbap_E_DCH_MACdFlow_to_Delete_Item;
-static gint ett_nbap_E_DCH_Non_Scheduled_Transmission_Grant_Items;
-static gint ett_nbap_E_DCH_Serving_Cell_Change_Info_Response;
-static gint ett_nbap_E_DCH_serving_cell_choice;
-static gint ett_nbap_E_DCH_serving_cell_change_successful;
-static gint ett_nbap_E_DCH_RL_InformationList_Rsp;
-static gint ett_nbap_E_DCH_RL_InformationList_Rsp_Item;
-static gint ett_nbap_E_DCH_serving_cell_change_unsuccessful;
-static gint ett_nbap_EDCH_RACH_Report_Value;
-static gint ett_nbap_EDCH_RACH_Report_Value_item;
-static gint ett_nbap_E_DCH_TTI_Length;
-static gint ett_nbap_E_DCH_TTI_Length_to_Modify;
-static gint ett_nbap_E_DCH_MACdFlows_to_DeleteLCR;
-static gint ett_nbap_E_DCH_MACdFlow_to_Delete_ItemLCR;
-static gint ett_nbap_Enhanced_UE_DRX_InformationLCR;
-static gint ett_nbap_E_RGCH_E_HICH_FDD_Code_Information;
-static gint ett_nbap_E_RGCH_E_HICH_FDD_Code_List;
-static gint ett_nbap_E_TFCI_Boost_Information;
-static gint ett_nbap_E_TFCS_Information;
-static gint ett_nbap_E_DCHProvidedBitRate;
-static gint ett_nbap_E_DCHProvidedBitRate_Item;
-static gint ett_nbap_E_DCHProvidedBitRateValueInformation_For_CellPortion;
-static gint ett_nbap_E_DCHProvidedBitRateValueInformation_For_CellPortion_Item;
-static gint ett_nbap_E_DCH_Information;
-static gint ett_nbap_E_PUCH_Information;
-static gint ett_nbap_E_TFCS_Information_TDD;
-static gint ett_nbap_E_DCH_QPSK_RefBetaInfo;
-static gint ett_nbap_E_DCH_sixteenQAM_RefBetaInfo;
-static gint ett_nbap_E_DCH_RefBeta_Item;
-static gint ett_nbap_E_DCH_MACdFlows_Information_TDD;
-static gint ett_nbap_E_DCH_MACdFlow_InfoTDDItem;
-static gint ett_nbap_E_DCH_Non_Scheduled_Grant_Info;
-static gint ett_nbap_E_DCH_TDD_Information;
-static gint ett_nbap_E_DCH_Information_Response;
-static gint ett_nbap_Scheduled_E_HICH_Specific_Information_ResponseLCRTDD;
-static gint ett_nbap_Scheduled_E_HICH_Specific_InformationItem_ResponseLCRTDD;
-static gint ett_nbap_E_DCH_TDD_MACdFlow_Specific_InformationResp;
-static gint ett_nbap_E_DCH_TDD_MACdFlow_Specific_InformationResp_Item;
-static gint ett_nbap_E_AGCH_Specific_InformationRespListTDD;
-static gint ett_nbap_E_AGCH_Specific_InformationResp_ItemTDD;
-static gint ett_nbap_E_DCH_Information_Reconfig;
-static gint ett_nbap_E_DCH_TDD_Information_to_Modify;
-static gint ett_nbap_E_DCH_TDD_Information_to_Modify_List;
-static gint ett_nbap_E_DCH_MACdFlow_ModifyTDDItem;
-static gint ett_nbap_E_DCH_768_Information;
-static gint ett_nbap_E_DCH_Non_Scheduled_Grant_Info768;
-static gint ett_nbap_E_DCH_TDD_Information768;
-static gint ett_nbap_E_DCH_768_Information_Reconfig;
-static gint ett_nbap_E_DCH_LCR_Information;
-static gint ett_nbap_E_PUCH_LCR_Information;
-static gint ett_nbap_E_DCH_Non_Scheduled_Grant_LCR_Info;
-static gint ett_nbap_E_HICH_LCR_Information;
-static gint ett_nbap_E_DCH_LCRTDD_Information;
-static gint ett_nbap_E_DCH_LCR_Information_Reconfig;
-static gint ett_nbap_Enhanced_UE_DRX_InformationFDD;
-static gint ett_nbap_E_DCH_Semi_PersistentScheduling_Information_LCR;
-static gint ett_nbap_E_DCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
-static gint ett_nbap_E_DCH_Semi_PersistentScheduling_Information_ResponseLCR;
-static gint ett_nbap_FDD_DL_CodeInformation;
-static gint ett_nbap_FDD_DL_CodeInformationItem;
-static gint ett_nbap_GANSS_AddClockModels;
-static gint ett_nbap_GANSS_AddOrbitModels;
-static gint ett_nbap_GANSS_Additional_Ionospheric_Model;
-static gint ett_nbap_GANSS_Additional_Navigation_Models;
-static gint ett_nbap_GANSS_Additional_Time_Models;
-static gint ett_nbap_GANSS_Additional_UTC_Models;
-static gint ett_nbap_GANSS_Almanac;
-static gint ett_nbap_GANSS_AlmanacModel;
-static gint ett_nbap_GANSS_ALM_ECEFsbasAlmanacSet;
-static gint ett_nbap_GANSS_ALM_GlonassAlmanacSet;
-static gint ett_nbap_GANSS_ALM_MidiAlmanacSet;
-static gint ett_nbap_GANSS_ALM_NAVKeplerianSet;
-static gint ett_nbap_GANSS_ALM_ReducedKeplerianSet;
-static gint ett_nbap_GANSS_Auxiliary_Information;
-static gint ett_nbap_GANSS_AuxInfoGANSS_ID1;
-static gint ett_nbap_GANSS_AuxInfoGANSS_ID1_element;
-static gint ett_nbap_GANSS_AuxInfoGANSS_ID3;
-static gint ett_nbap_GANSS_AuxInfoGANSS_ID3_element;
-static gint ett_nbap_GANSS_Clock_Model;
-static gint ett_nbap_GANSS_CNAVclockModel;
-static gint ett_nbap_GANSS_Common_Data;
-static gint ett_nbap_GANSS_CommonDataInfoReq;
-static gint ett_nbap_GANSS_Data_Bit_Assistance;
-static gint ett_nbap_GANSS_DataBitAssistanceList;
-static gint ett_nbap_GANSS_DataBitAssistanceItem;
-static gint ett_nbap_GANSS_DataBitAssistanceSgnList;
-static gint ett_nbap_GANSS_DataBitAssistanceSgnItem;
-static gint ett_nbap_GANSS_Data_Bit_Assistance_ReqItem;
-static gint ett_nbap_GANSS_Data_Bit_Assistance_ReqList;
-static gint ett_nbap_T_ganss_SatelliteInfo;
-static gint ett_nbap_GANSS_DeltaUT1;
-static gint ett_nbap_GANSS_Earth_Orientation_Parameters;
-static gint ett_nbap_GANSS_GenericDataInfoReqList;
-static gint ett_nbap_GANSS_GenericDataInfoReqItem;
-static gint ett_nbap_GANSS_Generic_Data;
-static gint ett_nbap_GANSS_Generic_DataItem;
-static gint ett_nbap_GANSS_GLONASSclockModel;
-static gint ett_nbap_GANSS_Information;
-static gint ett_nbap_GANSS_Ionospheric_Model;
-static gint ett_nbap_GANSS_IonosphereRegionalStormFlags;
-static gint ett_nbap_GANSS_KeplerianParametersAlm;
-static gint ett_nbap_GANSS_KeplerianParametersOrb;
-static gint ett_nbap_GANSS_NAVclockModel;
-static gint ett_nbap_GANSS_Navigation_Model_And_Time_Recovery;
-static gint ett_nbap_GANSS_NavModel_CNAVKeplerianSet;
-static gint ett_nbap_GANSS_NavModel_GLONASSecef;
-static gint ett_nbap_GANSS_NavModel_NAVKeplerianSet;
-static gint ett_nbap_GANSS_NavModel_SBASecef;
-static gint ett_nbap_GANSS_Orbit_Model;
-static gint ett_nbap_GANSS_Real_Time_Integrity;
-static gint ett_nbap_GANSS_RealTimeInformationItem;
-static gint ett_nbap_GANSS_RX_Pos;
-static gint ett_nbap_GANSS_SatelliteClockModelItem;
-static gint ett_nbap_GANSS_SatelliteInformationKP;
-static gint ett_nbap_GANSS_SatelliteInformationKPItem;
-static gint ett_nbap_Ganss_Sat_Info_AddNavList;
-static gint ett_nbap_Ganss_Sat_Info_AddNavList_item;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_GLOkpList;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_GLOkp;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_MIDIkpList;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_MIDIkp;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_NAVkpList;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_NAVkp;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_REDkpList;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_REDkp;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_SBASecefList;
-static gint ett_nbap_GANSS_SAT_Info_Almanac_SBASecef;
-static gint ett_nbap_GANSS_Sat_Info_Nav;
-static gint ett_nbap_GANSS_Sat_Info_Nav_item;
-static gint ett_nbap_GANSS_SBASclockModel;
-static gint ett_nbap_GANSS_Time_Model;
-static gint ett_nbap_GANSS_Transmission_Time;
-static gint ett_nbap_GANSS_UTC_Model;
-static gint ett_nbap_GANSS_UTCmodelSet1;
-static gint ett_nbap_GANSS_UTCmodelSet2;
-static gint ett_nbap_GANSS_UTCmodelSet3;
-static gint ett_nbap_GPS_Almanac;
-static gint ett_nbap_GPS_Ionospheric_Model;
-static gint ett_nbap_GPS_Information;
-static gint ett_nbap_GPS_RealTime_Integrity;
-static gint ett_nbap_GPSBadSat_Info_RealTime_Integrity;
-static gint ett_nbap_GPS_NavigationModel_and_TimeRecovery;
-static gint ett_nbap_GPS_NavandRecovery_Item;
-static gint ett_nbap_GPS_RX_POS;
-static gint ett_nbap_GPS_UTC_Model;
-static gint ett_nbap_HARQ_MemoryPartitioning;
-static gint ett_nbap_HARQ_MemoryPartitioning_Implicit;
-static gint ett_nbap_HARQ_MemoryPartitioning_Explicit;
-static gint ett_nbap_HARQ_MemoryPartitioningList;
-static gint ett_nbap_HARQ_MemoryPartitioningInfoExtForMIMO;
-static gint ett_nbap_HARQ_MemoryPartitioningItem;
-static gint ett_nbap_HS_DSCHProvidedBitRate;
-static gint ett_nbap_HS_DSCHProvidedBitRate_Item;
-static gint ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortion;
-static gint ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortion_Item;
-static gint ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortionLCR;
-static gint ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortionLCR_Item;
-static gint ett_nbap_HS_DSCHRequiredPower;
-static gint ett_nbap_HS_DSCHRequiredPower_Item;
-static gint ett_nbap_HS_DSCHRequiredPowerPerUEInformation;
-static gint ett_nbap_HS_DSCHRequiredPowerPerUEInformation_Item;
-static gint ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortion;
-static gint ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortion_Item;
-static gint ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortionLCR;
-static gint ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortionLCR_Item;
-static gint ett_nbap_HSDPA_Associated_PICH_Information;
-static gint ett_nbap_HSDPA_PICH_Shared_with_PCH;
-static gint ett_nbap_HSDPA_PICH_notShared_with_PCH;
-static gint ett_nbap_HSDSCH_Common_System_InformationFDD;
-static gint ett_nbap_HSDSCH_Common_System_Information_ResponseFDD;
-static gint ett_nbap_HSDSCH_Common_Information;
-static gint ett_nbap_HSDSCH_FDD_Information;
-static gint ett_nbap_HSDSCH_TDD_Information;
-static gint ett_nbap_HSDSCH_Information_to_Modify;
-static gint ett_nbap_HSDSCH_MACdFlow_Specific_InfoList_to_Modify;
-static gint ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify;
-static gint ett_nbap_HSDSCH_Information_to_Modify_Unsynchronised;
-static gint ett_nbap_HSDSCH_FDD_Information_Response;
-static gint ett_nbap_HS_DSCH_FDD_Secondary_Serving_Information;
-static gint ett_nbap_HS_DSCH_FDD_Secondary_Serving_Information_Response;
-static gint ett_nbap_HS_DSCH_Secondary_Serving_Information_To_Modify;
-static gint ett_nbap_HS_DSCH_FDD_Secondary_Serving_Information_To_Modify_Unsynchronised;
-static gint ett_nbap_HS_DSCH_FDD_Secondary_Serving_Update_Information;
-static gint ett_nbap_HS_DSCH_Secondary_Serving_Cell_Change_Information_Response;
-static gint ett_nbap_HS_DSCH_Secondary_Serving_cell_change_choice;
-static gint ett_nbap_HS_Secondary_Serving_cell_change_successful;
-static gint ett_nbap_HS_Secondary_Serving_cell_change_unsuccessful;
-static gint ett_nbap_HSDSCH_Paging_System_InformationFDD;
-static gint ett_nbap_HSDSCH_Paging_System_Information_ResponseFDD;
-static gint ett_nbap_HSDSCH_Paging_System_Information_ResponseList;
-static gint ett_nbap_HSDSCH_TDD_Information_Response;
-static gint ett_nbap_HSDSCH_MACdFlow_Specific_InformationResp;
-static gint ett_nbap_HSDSCH_MACdFlow_Specific_InformationResp_Item;
-static gint ett_nbap_HSDSCH_MACdFlows_Information;
-static gint ett_nbap_HSDSCH_MACdFlow_Specific_InfoList;
-static gint ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem;
-static gint ett_nbap_HSDSCH_MACdFlows_to_Delete;
-static gint ett_nbap_HSDSCH_MACdFlows_to_Delete_Item;
-static gint ett_nbap_HSDSCH_Initial_Capacity_Allocation;
-static gint ett_nbap_HSDSCH_Initial_Capacity_AllocationItem;
-static gint ett_nbap_HSDSCH_PreconfigurationInfo;
-static gint ett_nbap_Additional_EDCH_Preconfiguration_Information;
-static gint ett_nbap_Additional_EDCH_Preconfiguration_Information_ItemIEs;
-static gint ett_nbap_HSDSCH_PreconfigurationSetup;
-static gint ett_nbap_HS_SCCH_PreconfiguredCodes;
-static gint ett_nbap_HS_SCCH_PreconfiguredCodesItem;
-static gint ett_nbap_HSSCCH_Specific_InformationRespListFDD;
-static gint ett_nbap_HSSCCH_Codes;
-static gint ett_nbap_HSSCCH_Specific_InformationRespListTDD;
-static gint ett_nbap_HSSCCH_Specific_InformationRespItemTDD;
-static gint ett_nbap_HSSCCH_Specific_InformationRespListTDDLCR;
-static gint ett_nbap_HSSCCH_Specific_InformationRespItemTDDLCR;
-static gint ett_nbap_HSSCCH_Specific_InformationRespListTDD768;
-static gint ett_nbap_HSSCCH_Specific_InformationRespItemTDD768;
-static gint ett_nbap_HSSICH_Info;
-static gint ett_nbap_HSSICH_InfoLCR;
-static gint ett_nbap_HSSICH_Info768;
-static gint ett_nbap_HS_SICH_Reception_Quality_Value;
-static gint ett_nbap_HS_PDSCH_FDD_Code_Information;
-static gint ett_nbap_HS_SCCH_FDD_Code_Information;
-static gint ett_nbap_HS_SCCH_FDD_Code_List;
-static gint ett_nbap_HS_DSCH_Serving_Cell_Change_Info;
-static gint ett_nbap_HS_DSCH_Serving_Cell_Change_Info_Response;
-static gint ett_nbap_HS_DSCH_serving_cell_choice;
-static gint ett_nbap_HS_serving_cell_change_successful;
-static gint ett_nbap_HS_serving_cell_change_unsuccessful;
-static gint ett_nbap_HSDSCH_FDD_Update_Information;
-static gint ett_nbap_HSDSCH_TDD_Update_Information;
-static gint ett_nbap_HSDPA_Associated_PICH_InformationLCR;
-static gint ett_nbap_HSDPA_PICH_notShared_with_PCHLCR;
-static gint ett_nbap_HSDSCH_Common_System_InformationLCR;
-static gint ett_nbap_HSDSCH_Common_System_Information_ResponseLCR;
-static gint ett_nbap_HSDSCH_Common_InformationLCR;
-static gint ett_nbap_HSDSCH_Paging_System_InformationLCR;
-static gint ett_nbap_HSDSCH_Paging_System_Information_ResponseLCR;
-static gint ett_nbap_HSDSCH_Paging_System_Information_ResponseListLCR;
-static gint ett_nbap_HSSCCH_Specific_InformationRespListLCR;
-static gint ett_nbap_HSSCCH_Specific_InformationRespItemLCR;
-static gint ett_nbap_HS_DSCH_Semi_PersistentScheduling_Information_LCR;
-static gint ett_nbap_Transport_Block_Size_List_LCR;
-static gint ett_nbap_Transport_Block_Size_Item_LCR;
-static gint ett_nbap_Repetition_Period_List_LCR;
-static gint ett_nbap_Repetition_Period_Item_LCR;
-static gint ett_nbap_HS_DSCH_SPS_Operation_Indicator;
-static gint ett_nbap_HS_DSCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
-static gint ett_nbap_HS_DSCH_Semi_PersistentScheduling_Information_ResponseLCR;
-static gint ett_nbap_HS_SICH_InformationList_for_HS_DSCH_SPS;
-static gint ett_nbap_HS_SICH_InformationItem_for_HS_DSCH_SPS;
-static gint ett_nbap_HS_SICH_Type;
-static gint ett_nbap_HS_SCCH_Associated_HS_SICH;
-static gint ett_nbap_Non_HS_SCCH_Associated_HS_SICH;
-static gint ett_nbap_Initial_HS_PDSCH_SPS_Resource;
-static gint ett_nbap_Add_To_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Non_HS_SCCH_Associated_HS_SICH_InformationList;
-static gint ett_nbap_Non_HS_SCCH_Associated_HS_SICH_InformationList_Ext;
-static gint ett_nbap_Non_HS_SCCH_Associated_HS_SICH_InformationItem;
-static gint ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_InformationList;
-static gint ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_InformationList_Ext;
-static gint ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_InformationItem;
-static gint ett_nbap_Delete_From_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Delete_From_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst_Ext;
-static gint ett_nbap_Delete_From_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqstItem;
-static gint ett_nbap_MIMO_ReferenceSignal_InformationListLCR;
-static gint ett_nbap_HSSICH_ReferenceSignal_InformationLCR;
-static gint ett_nbap_HSSICH_ReferenceSignal_InformationModifyLCR;
-static gint ett_nbap_IMB_Parameters;
-static gint ett_nbap_InformationReportCharacteristics;
-static gint ett_nbap_InformationReportCharacteristicsType_ReportPeriodicity;
-static gint ett_nbap_InformationReportCharacteristicsType_OnModification;
-static gint ett_nbap_InformationThresholds;
-static gint ett_nbap_InformationType;
-static gint ett_nbap_IPDL_FDD_Parameters;
-static gint ett_nbap_IPDL_TDD_Parameters;
-static gint ett_nbap_IPDL_TDD_Parameters_LCR;
-static gint ett_nbap_IPMulticastIndication;
-static gint ett_nbap_BurstModeParams;
-static gint ett_nbap_IdleIntervalInformation;
-static gint ett_nbap_LCRTDD_Uplink_Physical_Channel_Capability;
-static gint ett_nbap_MACdPDU_Size_Indexlist;
-static gint ett_nbap_MACdPDU_Size_IndexItem;
-static gint ett_nbap_MACdPDU_Size_Indexlist_to_Modify;
-static gint ett_nbap_MACdPDU_Size_IndexItem_to_Modify;
-static gint ett_nbap_Max_TB_Sizes;
-static gint ett_nbap_MessageStructure;
-static gint ett_nbap_MessageStructure_item;
-static gint ett_nbap_MidambleShiftAndBurstType;
-static gint ett_nbap_Type1;
-static gint ett_nbap_MidambleAllocationMode1;
-static gint ett_nbap_Type2;
-static gint ett_nbap_MidambleAllocationMode2;
-static gint ett_nbap_Type3;
-static gint ett_nbap_MidambleAllocationMode3;
-static gint ett_nbap_MidambleShiftLCR;
-static gint ett_nbap_MidambleShiftAndBurstType768;
-static gint ett_nbap_Type7681;
-static gint ett_nbap_MidambleAllocationMode7681;
-static gint ett_nbap_Type7682;
-static gint ett_nbap_MidambleAllocationMode7682;
-static gint ett_nbap_Type7683;
-static gint ett_nbap_MidambleAllocationMode7683;
-static gint ett_nbap_MIMO_PilotConfiguration;
-static gint ett_nbap_MIMO_PilotConfigurationExtension;
-static gint ett_nbap_ModifyPriorityQueue;
-static gint ett_nbap_ModulationPO_MBSFN;
-static gint ett_nbap_MultipleFreq_HARQ_MemoryPartitioning_InformationList;
-static gint ett_nbap_MultipleFreq_HARQ_MemoryPartitioning_InformationItem;
-static gint ett_nbap_MultipleFreq_HSPDSCH_InformationList_ResponseTDDLCR;
-static gint ett_nbap_MultipleFreq_HSPDSCH_InformationItem_ResponseTDDLCR;
-static gint ett_nbap_Multi_Cell_Capability_Info;
-static gint ett_nbap_Multicell_EDCH_InformationItemIEs;
-static gint ett_nbap_Multicell_EDCH_RL_Specific_InformationItemIEs;
-static gint ett_nbap_NeighbouringCellMeasurementInformation;
-static gint ett_nbap_NeighbouringCellMeasurementInformation_item;
-static gint ett_nbap_NeighbouringFDDCellMeasurementInformation;
-static gint ett_nbap_NeighbouringTDDCellMeasurementInformation;
-static gint ett_nbap_NeighbouringTDDCellMeasurementInformationLCR;
-static gint ett_nbap_NeighbouringTDDCellMeasurementInformation768;
-static gint ett_nbap_NI_Information;
-static gint ett_nbap_NormalAndDiversityPrimaryCPICHContainer;
-static gint ett_nbap_Paging_MACFlows_to_DeleteFDD;
-static gint ett_nbap_Paging_MACFlows_to_DeleteFDD_Item;
-static gint ett_nbap_Paging_MACFlow_Specific_Information;
-static gint ett_nbap_Paging_MAC_Flow_Specific_Information_Item;
-static gint ett_nbap_Paging_MACFlow_PriorityQueue_Information;
-static gint ett_nbap_Paging_MACFlow_PriorityQueue_Item;
-static gint ett_nbap_PLCCHinformation;
-static gint ett_nbap_Possible_Secondary_Serving_Cell_List;
-static gint ett_nbap_Possible_Secondary_Serving_Cell;
-static gint ett_nbap_PreambleSignatures;
-static gint ett_nbap_PrimaryAndSecondaryCPICHContainer;
-static gint ett_nbap_Priority_Queue_Information_for_Enhanced_FACH_PCH;
-static gint ett_nbap_PriorityQueue_InfoList;
-static gint ett_nbap_PriorityQueue_InfoItem;
-static gint ett_nbap_PriorityQueue_InfoList_to_Modify;
-static gint ett_nbap_PriorityQueue_InfoItem_to_Add;
-static gint ett_nbap_PriorityQueue_InfoItem_to_Modify;
-static gint ett_nbap_PriorityQueue_InfoList_to_Modify_Unsynchronised;
-static gint ett_nbap_PriorityQueue_InfoItem_to_Modify_Unsynchronised;
-static gint ett_nbap_UE_Selected_MBMS_Service_Information;
-static gint ett_nbap_Selected_MBMS_Service;
-static gint ett_nbap_Selected_MBMS_Service_List;
-static gint ett_nbap_Selected_MBMS_Service_Item;
-static gint ett_nbap_Selected_MBMS_Service_TimeSlot_Information_LCR;
-static gint ett_nbap_MBMS_Service_TDM_Information;
-static gint ett_nbap_Paging_MACFlow_Specific_InformationLCR;
-static gint ett_nbap_Paging_MAC_Flow_Specific_Information_ItemLCR;
-static gint ett_nbap_Paging_MACFlows_to_DeleteLCR;
-static gint ett_nbap_Paging_MACFlows_to_DeleteLCR_Item;
-static gint ett_nbap_RACH_SubChannelNumbers;
-static gint ett_nbap_RL_Specific_DCH_Info;
-static gint ett_nbap_RL_Specific_DCH_Info_Item;
-static gint ett_nbap_RL_Specific_E_DCH_Info;
-static gint ett_nbap_RL_Specific_E_DCH_Information;
-static gint ett_nbap_RL_Specific_E_DCH_Information_Item;
-static gint ett_nbap_Reference_E_TFCI_Information;
-static gint ett_nbap_Reference_E_TFCI_Information_Item;
-static gint ett_nbap_ReportCharacteristics;
-static gint ett_nbap_ReportCharacteristicsType_EventA;
-static gint ett_nbap_ReportCharacteristicsType_EventB;
-static gint ett_nbap_ReportCharacteristicsType_EventC;
-static gint ett_nbap_ReportCharacteristicsType_EventD;
-static gint ett_nbap_ReportCharacteristicsType_EventE;
-static gint ett_nbap_ReportCharacteristicsType_EventF;
-static gint ett_nbap_ReportCharacteristicsType_OnModification;
-static gint ett_nbap_ReportCharacteristicsType_MeasurementIncreaseDecreaseThreshold;
-static gint ett_nbap_EDCH_RACH_Report_IncrDecrThres;
-static gint ett_nbap_ReportCharacteristicsType_MeasurementThreshold;
-static gint ett_nbap_EDCH_RACH_Report_ThresholdInformation;
-static gint ett_nbap_ReportCharacteristicsType_ScaledMeasurementChangeTime;
-static gint ett_nbap_ReportCharacteristicsType_ScaledMeasurementHysteresisTime;
-static gint ett_nbap_ReportCharacteristicsType_ReportPeriodicity;
-static gint ett_nbap_Received_total_wide_band_power_For_CellPortion_Value;
-static gint ett_nbap_Received_total_wide_band_power_For_CellPortion_Value_Item;
-static gint ett_nbap_Received_total_wide_band_power_For_CellPortion_ValueLCR;
-static gint ett_nbap_Received_total_wide_band_power_For_CellPortion_ValueLCR_Item;
-static gint ett_nbap_Received_Scheduled_EDCH_Power_Share_For_CellPortion_Value;
-static gint ett_nbap_Received_Scheduled_EDCH_Power_Share_For_CellPortion_Value_Item;
-static gint ett_nbap_Received_Scheduled_EDCH_Power_Share_Value;
-static gint ett_nbap_RequestedDataValueInformation;
-static gint ett_nbap_InformationAvailable;
-static gint ett_nbap_RequestedDataValue;
-static gint ett_nbap_SAT_Info_Almanac;
-static gint ett_nbap_SAT_Info_Almanac_Item;
-static gint ett_nbap_SAT_Info_Almanac_ExtList;
-static gint ett_nbap_SAT_Info_Almanac_ExtItem;
-static gint ett_nbap_SAT_Info_DGPSCorrections;
-static gint ett_nbap_SAT_Info_DGPSCorrections_Item;
-static gint ett_nbap_SATInfo_RealTime_Integrity;
-static gint ett_nbap_SAT_Info_RealTime_Integrity_Item;
-static gint ett_nbap_SecondaryServingCells;
-static gint ett_nbap_SecondaryServingCellsItem;
-static gint ett_nbap_Secondary_CPICH_Information_Change;
-static gint ett_nbap_Serving_E_DCH_RL_ID;
-static gint ett_nbap_Serving_E_DCH_RL_in_this_NodeB;
-static gint ett_nbap_SetsOfHS_SCCH_Codes;
-static gint ett_nbap_SetsOfHS_SCCH_CodesItem;
-static gint ett_nbap_Setup_Or_ConfigurationChange_Or_Removal_Of_EDCH_On_secondary_UL_Frequency;
-static gint ett_nbap_SFNSFNMeasurementThresholdInformation;
-static gint ett_nbap_SFNSFNMeasurementValueInformation;
-static gint ett_nbap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
-static gint ett_nbap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
-static gint ett_nbap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
-static gint ett_nbap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
-static gint ett_nbap_SFNSFNTimeStampInformation;
-static gint ett_nbap_SFNSFNTimeStamp_TDD;
-static gint ett_nbap_SFNSFNValue;
-static gint ett_nbap_SynchronisationReportCharacteristics;
-static gint ett_nbap_SynchronisationReportCharactThreExc;
-static gint ett_nbap_SynchronisationReportCharactThreInfoItem;
-static gint ett_nbap_SEQUENCE_SIZE_1_maxNrOfReceptsPerSyncFrame_OF_SynchronisationReportCharactCellSyncBurstInfoItem;
-static gint ett_nbap_SynchronisationReportCharactCellSyncBurstInfoItem;
-static gint ett_nbap_SyncDLCodeIdThreInfoLCR;
-static gint ett_nbap_SyncDLCodeIdThreInfoList;
-static gint ett_nbap_SyncDLCodeInfoListLCR;
-static gint ett_nbap_SyncDLCodeInfoItemLCR;
-static gint ett_nbap_TDD_ChannelisationCodeLCR;
-static gint ett_nbap_TDD_DL_Code_Information;
-static gint ett_nbap_TDD_DL_Code_InformationItem;
-static gint ett_nbap_TDD_DL_Code_LCR_Information;
-static gint ett_nbap_TDD_DL_Code_LCR_InformationItem;
-static gint ett_nbap_TDD_DL_Code_768_Information;
-static gint ett_nbap_TDD_DL_Code_768_InformationItem;
-static gint ett_nbap_TDD_DL_DPCH_TimeSlotFormat_LCR;
-static gint ett_nbap_TDD_DPCHOffset;
-static gint ett_nbap_TransportFormatCombination_Beta;
-static gint ett_nbap_T_signalledGainFactors;
-static gint ett_nbap_T_gainFactor;
-static gint ett_nbap_T_fdd;
-static gint ett_nbap_TDD_UL_Code_Information;
-static gint ett_nbap_TDD_UL_Code_InformationItem;
-static gint ett_nbap_TDD_UL_Code_LCR_Information;
-static gint ett_nbap_TDD_UL_Code_LCR_InformationItem;
-static gint ett_nbap_TDD_UL_Code_768_Information;
-static gint ett_nbap_TDD_UL_Code_768_InformationItem;
-static gint ett_nbap_TDD_UL_DPCH_TimeSlotFormat_LCR;
-static gint ett_nbap_TFCI_SignallingMode;
-static gint ett_nbap_TimeSlot_InitiatedListLCR;
-static gint ett_nbap_TimeSlotMeasurementValueListLCR;
-static gint ett_nbap_TimeSlotMeasurementValueLCR;
-static gint ett_nbap_TimingAdjustmentValue;
-static gint ett_nbap_TimingAdjustmentValueLCR;
-static gint ett_nbap_TnlQos;
-static gint ett_nbap_Transmission_Gap_Pattern_Sequence_Information;
-static gint ett_nbap_Transmission_Gap_Pattern_Sequence_Information_item;
-static gint ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCH_E_RGCHOrE_HICHTransmissionCellPortionValue;
-static gint ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCH_E_RGCHOrE_HICHTransmissionCellPortionValue_Item;
-static gint ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCHOrE_HICHTransmissionCellPortionValue;
-static gint ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCHOrE_HICHTransmissionCellPortionValue_Item;
-static gint ett_nbap_Transmitted_Carrier_Power_For_CellPortion_Value;
-static gint ett_nbap_Transmitted_Carrier_Power_For_CellPortion_Value_Item;
-static gint ett_nbap_Transmitted_Carrier_Power_For_CellPortion_ValueLCR;
-static gint ett_nbap_Transmitted_Carrier_Power_For_CellPortion_ValueLCR_Item;
-static gint ett_nbap_TFCS;
-static gint ett_nbap_T_tFCSvalues;
-static gint ett_nbap_TFCS_TFCSList;
-static gint ett_nbap_TFCS_TFCSList_item;
-static gint ett_nbap_TFCS_CTFC;
-static gint ett_nbap_Transport_Block_Size_List;
-static gint ett_nbap_Transport_Block_Size_List_item;
-static gint ett_nbap_TransportFormatSet;
-static gint ett_nbap_TransportFormatSet_DynamicPartList;
-static gint ett_nbap_TransportFormatSet_DynamicPartList_item;
-static gint ett_nbap_TDD_TransportFormatSet_ModeDP;
-static gint ett_nbap_TransmissionTimeIntervalInformation;
-static gint ett_nbap_TransmissionTimeIntervalInformation_item;
-static gint ett_nbap_TransportFormatSet_Semi_staticPart;
-static gint ett_nbap_TransportFormatSet_ModeDP;
-static gint ett_nbap_TransportFormatSet_ModeSSP;
-static gint ett_nbap_TUTRANGANSS;
-static gint ett_nbap_TUTRANGANSSMeasurementThresholdInformation;
-static gint ett_nbap_TUTRANGANSSMeasurementValueInformation;
-static gint ett_nbap_TUTRANGPS;
-static gint ett_nbap_TUTRANGPSMeasurementThresholdInformation;
-static gint ett_nbap_TUTRANGPSMeasurementValueInformation;
-static gint ett_nbap_UC_Id;
-static gint ett_nbap_UE_AggregateMaximumBitRate;
-static gint ett_nbap_UE_Capability_Information;
-static gint ett_nbap_UL_Timeslot_Information;
-static gint ett_nbap_UL_Timeslot_InformationItem;
-static gint ett_nbap_UL_TimeslotLCR_Information;
-static gint ett_nbap_UL_TimeslotLCR_InformationItem;
-static gint ett_nbap_UL_Timeslot768_Information;
-static gint ett_nbap_UL_Timeslot768_InformationItem;
-static gint ett_nbap_UL_ScramblingCode;
-static gint ett_nbap_UL_Synchronisation_Parameters_LCR;
-static gint ett_nbap_UL_TimeSlot_ISCP_Info;
-static gint ett_nbap_UL_TimeSlot_ISCP_InfoItem;
-static gint ett_nbap_UL_TimeSlot_ISCP_LCR_Info;
-static gint ett_nbap_UL_TimeSlot_ISCP_LCR_InfoItem;
-static gint ett_nbap_UpPTSInterference_For_CellPortion_Value;
-static gint ett_nbap_UpPTSInterference_For_CellPortion_Value_Item;
-static gint ett_nbap_USCH_Information;
-static gint ett_nbap_USCH_InformationItem;
-static gint ett_nbap_USCH_InformationResponse;
-static gint ett_nbap_USCH_InformationResponseItem;
-static gint ett_nbap_UL_TimeslotISCP_For_CellPortion_Value;
-static gint ett_nbap_UL_TimeslotISCP_For_CellPortion_Value_Item;
-static gint ett_nbap_CommonTransportChannelSetupRequestFDD;
-static gint ett_nbap_CommonPhysicalChannelType_CTCH_SetupRqstFDD;
-static gint ett_nbap_Secondary_CCPCH_CTCH_SetupRqstFDD;
-static gint ett_nbap_PowerOffsetInformation_CTCH_SetupRqstFDD;
-static gint ett_nbap_FACH_ParametersListIE_CTCH_SetupRqstFDD;
-static gint ett_nbap_FACH_ParametersItem_CTCH_SetupRqstFDD;
-static gint ett_nbap_PCH_ParametersItem_CTCH_SetupRqstFDD;
-static gint ett_nbap_PICH_Parameters_CTCH_SetupRqstFDD;
-static gint ett_nbap_MICH_Parameters_CTCH_SetupRqstFDD;
-static gint ett_nbap_PRACH_CTCH_SetupRqstFDD;
-static gint ett_nbap_AllowedSlotFormatInformationList_CTCH_SetupRqstFDD;
-static gint ett_nbap_AllowedSlotFormatInformationItem_CTCH_SetupRqstFDD;
-static gint ett_nbap_RACH_ParametersItem_CTCH_SetupRqstFDD;
-static gint ett_nbap_AICH_Parameters_CTCH_SetupRqstFDD;
-static gint ett_nbap_CommonTransportChannelSetupRequestTDD;
-static gint ett_nbap_CommonPhysicalChannelType_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_parameterListIE_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_parameterItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_LCR_parameterList_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_LCR_parameterItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_768_parameterList_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_768_parameterItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_FACH_ParametersListIE_CTCH_SetupRqstTDD;
-static gint ett_nbap_FACH_ParametersItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_PCH_ParametersItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_PICH_ParametersItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_PICH_LCR_Parameters_CTCH_SetupRqstTDD;
-static gint ett_nbap_PICH_768_ParametersItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_MICH_Parameters_CTCH_SetupRqstTDD;
-static gint ett_nbap_MICH_TDDOption_Specific_Parameters_CTCH_SetupRqstTDD;
-static gint ett_nbap_MICH_HCR_Parameters_CTCH_SetupRqstTDD;
-static gint ett_nbap_MICH_LCR_Parameters_CTCH_SetupRqstTDD;
-static gint ett_nbap_MICH_768_Parameters_CTCH_SetupRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationList_LCR_CTCH_SetupRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationItem_LCR_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_parameterExtendedList_CTCH_SetupRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_LCR_parameterExtendedList_CTCH_SetupRqstTDD;
-static gint ett_nbap_PRACH_CTCH_SetupRqstTDD;
-static gint ett_nbap_PRACH_ParametersItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_RACH_ParameterItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_PRACH_LCR_ParametersList_CTCH_SetupRqstTDD;
-static gint ett_nbap_PRACH_LCR_ParametersItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_PRACH_768_ParametersItem_CTCH_SetupRqstTDD;
-static gint ett_nbap_FPACH_LCR_Parameters_CTCH_SetupRqstTDD;
-static gint ett_nbap_PLCCH_parameters;
-static gint ett_nbap_E_RUCCH_parameters;
-static gint ett_nbap_E_RUCCH_768_parameters;
-static gint ett_nbap_CommonTransportChannelSetupResponse;
-static gint ett_nbap_FACH_CommonTransportChannel_InformationResponse;
-static gint ett_nbap_CommonTransportChannelSetupFailure;
-static gint ett_nbap_CommonTransportChannelReconfigurationRequestFDD;
-static gint ett_nbap_CommonPhysicalChannelType_CTCH_ReconfRqstFDD;
-static gint ett_nbap_Secondary_CCPCHList_CTCH_ReconfRqstFDD;
-static gint ett_nbap_FACH_ParametersListIE_CTCH_ReconfRqstFDD;
-static gint ett_nbap_FACH_ParametersItem_CTCH_ReconfRqstFDD;
-static gint ett_nbap_PCH_ParametersItem_CTCH_ReconfRqstFDD;
-static gint ett_nbap_PICH_ParametersItem_CTCH_ReconfRqstFDD;
-static gint ett_nbap_MICH_Parameters_CTCH_ReconfRqstFDD;
-static gint ett_nbap_PRACHList_CTCH_ReconfRqstFDD;
-static gint ett_nbap_PRACH_ParametersListIE_CTCH_ReconfRqstFDD;
-static gint ett_nbap_PRACH_ParametersItem_CTCH_ReconfRqstFDD;
-static gint ett_nbap_AllowedSlotFormatInformationList_CTCH_ReconfRqstFDD;
-static gint ett_nbap_AllowedSlotFormatInformationItem_CTCH_ReconfRqstFDD;
-static gint ett_nbap_AICH_ParametersListIE_CTCH_ReconfRqstFDD;
-static gint ett_nbap_AICH_ParametersItem_CTCH_ReconfRqstFDD;
-static gint ett_nbap_CommonTransportChannelReconfigurationRequestTDD;
-static gint ett_nbap_Secondary_CCPCH_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_Secondary_CCPCHListIE_CTCH_ReconfRqstTDD;
-static gint ett_nbap_Secondary_CCPCHItem_CTCH_ReconfRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_parameterExtendedList_CTCH_ReconfRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_LCR_parameterExtendedList_CTCH_ReconfRqstTDD;
-static gint ett_nbap_PICH_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_FACH_ParametersList_CTCH_ReconfRqstTDD;
-static gint ett_nbap_FACH_ParametersItem_CTCH_ReconfRqstTDD;
-static gint ett_nbap_PCH_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_FPACH_LCR_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_MICH_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_PLCCH_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_768_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_768_List_CTCH_ReconfRqstTDD;
-static gint ett_nbap_Secondary_CCPCH_768_Item_CTCH_ReconfRqstTDD;
-static gint ett_nbap_PICH_768_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_MICH_768_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_UPPCH_LCR_Parameters_CTCH_ReconfRqstTDD;
-static gint ett_nbap_CommonTransportChannelReconfigurationResponse;
-static gint ett_nbap_CommonTransportChannelReconfigurationFailure;
-static gint ett_nbap_CommonTransportChannelDeletionRequest;
-static gint ett_nbap_CommonTransportChannelDeletionResponse;
-static gint ett_nbap_BlockResourceRequest;
-static gint ett_nbap_BlockResourceResponse;
-static gint ett_nbap_BlockResourceFailure;
-static gint ett_nbap_UnblockResourceIndication;
-static gint ett_nbap_AuditRequiredIndication;
-static gint ett_nbap_AuditRequest;
-static gint ett_nbap_AuditResponse;
-static gint ett_nbap_Cell_InformationList_AuditRsp;
-static gint ett_nbap_Cell_InformationItem_AuditRsp;
-static gint ett_nbap_S_CPICH_InformationList_AuditRsp;
-static gint ett_nbap_S_CCPCH_InformationList_AuditRsp;
-static gint ett_nbap_FACH_InformationList_AuditRsp;
-static gint ett_nbap_PRACH_InformationList_AuditRsp;
-static gint ett_nbap_RACH_InformationList_AuditRsp;
-static gint ett_nbap_AICH_InformationList_AuditRsp;
-static gint ett_nbap_FPACH_LCR_InformationList_AuditRsp;
-static gint ett_nbap_HS_DSCH_Resources_Information_AuditRsp;
-static gint ett_nbap_S_CCPCH_InformationListExt_AuditRsp;
-static gint ett_nbap_S_CCPCH_LCR_InformationListExt_AuditRsp;
-static gint ett_nbap_E_DCH_Resources_Information_AuditRsp;
-static gint ett_nbap_PLCCH_InformationList_AuditRsp;
-static gint ett_nbap_S_CCPCH_768_InformationList_AuditRsp;
-static gint ett_nbap_PRACH_768_InformationList_AuditRsp;
-static gint ett_nbap_E_RUCCH_InformationList_AuditRsp;
-static gint ett_nbap_E_RUCCH_768_InformationList_AuditRsp;
-static gint ett_nbap_Cell_Frequency_List_Information_LCR_MulFreq_AuditRsp;
-static gint ett_nbap_Cell_Frequency_List_InformationItem_LCR_MulFreq_AuditRsp;
-static gint ett_nbap_UPPCH_LCR_InformationList_AuditRsp;
-static gint ett_nbap_UPPCH_LCR_InformationItem_AuditRsp;
-static gint ett_nbap_MultipleFreq_HS_DSCH_Resources_InformationList_AuditRsp;
-static gint ett_nbap_MultipleFreq_E_DCH_Resources_InformationList_AuditRsp;
-static gint ett_nbap_CCP_InformationList_AuditRsp;
-static gint ett_nbap_CCP_InformationItem_AuditRsp;
-static gint ett_nbap_Local_Cell_InformationList_AuditRsp;
-static gint ett_nbap_Local_Cell_InformationItem_AuditRsp;
-static gint ett_nbap_Local_Cell_Group_InformationList_AuditRsp;
-static gint ett_nbap_Local_Cell_Group_InformationItem_AuditRsp;
-static gint ett_nbap_Power_Local_Cell_Group_InformationList_AuditRsp;
-static gint ett_nbap_Power_Local_Cell_Group_InformationItem_AuditRsp;
-static gint ett_nbap_AuditFailure;
-static gint ett_nbap_CommonMeasurementInitiationRequest;
-static gint ett_nbap_CommonMeasurementObjectType_CM_Rqst;
-static gint ett_nbap_ERACH_CM_Rqst;
-static gint ett_nbap_Cell_CM_Rqst;
-static gint ett_nbap_RACH_CM_Rqst;
-static gint ett_nbap_PowerLocalCellGroup_CM_Rqst;
-static gint ett_nbap_CommonMeasurementInitiationResponse;
-static gint ett_nbap_CommonMeasurementObjectType_CM_Rsp;
-static gint ett_nbap_ERACH_CM_Rsp;
-static gint ett_nbap_Cell_CM_Rsp;
-static gint ett_nbap_RACH_CM_Rsp;
-static gint ett_nbap_PowerLocalCellGroup_CM_Rsp;
-static gint ett_nbap_CommonMeasurementInitiationFailure;
-static gint ett_nbap_CommonMeasurementReport;
-static gint ett_nbap_CommonMeasurementObjectType_CM_Rprt;
-static gint ett_nbap_ERACH_CM_Rprt;
-static gint ett_nbap_Cell_CM_Rprt;
-static gint ett_nbap_RACH_CM_Rprt;
-static gint ett_nbap_PowerLocalCellGroup_CM_Rprt;
-static gint ett_nbap_CommonMeasurementTerminationRequest;
-static gint ett_nbap_CommonMeasurementFailureIndication;
-static gint ett_nbap_CellSetupRequestFDD;
-static gint ett_nbap_Synchronisation_Configuration_Cell_SetupRqst;
-static gint ett_nbap_PrimarySCH_Information_Cell_SetupRqstFDD;
-static gint ett_nbap_SecondarySCH_Information_Cell_SetupRqstFDD;
-static gint ett_nbap_PrimaryCPICH_Information_Cell_SetupRqstFDD;
-static gint ett_nbap_SecondaryCPICH_InformationList_Cell_SetupRqstFDD;
-static gint ett_nbap_SecondaryCPICH_InformationItem_Cell_SetupRqstFDD;
-static gint ett_nbap_PrimaryCCPCH_Information_Cell_SetupRqstFDD;
-static gint ett_nbap_BCH_Information_Cell_SetupRqstFDD;
-static gint ett_nbap_Limited_power_increase_information_Cell_SetupRqstFDD;
-static gint ett_nbap_IPDLParameter_Information_Cell_SetupRqstFDD;
-static gint ett_nbap_CellPortion_InformationList_Cell_SetupRqstFDD;
-static gint ett_nbap_CellPortion_InformationItem_Cell_SetupRqstFDD;
-static gint ett_nbap_CellSetupRequestTDD;
-static gint ett_nbap_SCH_Information_Cell_SetupRqstTDD;
-static gint ett_nbap_SyncCaseIndicatorItem_Cell_SetupRqstTDD_PSCH;
-static gint ett_nbap_Case1_Cell_SetupRqstTDD;
-static gint ett_nbap_Case2_Cell_SetupRqstTDD;
-static gint ett_nbap_PCCPCH_Information_Cell_SetupRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationList_Cell_SetupRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationItem_Cell_SetupRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationList_LCR_Cell_SetupRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationItem_LCR_Cell_SetupRqstTDD;
-static gint ett_nbap_PCCPCH_LCR_Information_Cell_SetupRqstTDD;
-static gint ett_nbap_DwPCH_LCR_Information_Cell_SetupRqstTDD;
-static gint ett_nbap_IPDLParameter_Information_Cell_SetupRqstTDD;
-static gint ett_nbap_IPDLParameter_Information_LCR_Cell_SetupRqstTDD;
-static gint ett_nbap_PCCPCH_768_Information_Cell_SetupRqstTDD;
-static gint ett_nbap_SCH_768_Information_Cell_SetupRqstTDD;
-static gint ett_nbap_Cell_Frequency_List_LCR_MulFreq_Cell_SetupRqstTDD;
-static gint ett_nbap_Cell_Frequency_Item_LCR_MulFreq_Cell_SetupRqstTDD;
-static gint ett_nbap_CellSetupResponse;
-static gint ett_nbap_CellSetupFailure;
-static gint ett_nbap_CellReconfigurationRequestFDD;
-static gint ett_nbap_Synchronisation_Configuration_Cell_ReconfRqst;
-static gint ett_nbap_PrimarySCH_Information_Cell_ReconfRqstFDD;
-static gint ett_nbap_SecondarySCH_Information_Cell_ReconfRqstFDD;
-static gint ett_nbap_PrimaryCPICH_Information_Cell_ReconfRqstFDD;
-static gint ett_nbap_SecondaryCPICH_InformationList_Cell_ReconfRqstFDD;
-static gint ett_nbap_SecondaryCPICH_InformationItem_Cell_ReconfRqstFDD;
-static gint ett_nbap_PrimaryCCPCH_Information_Cell_ReconfRqstFDD;
-static gint ett_nbap_BCH_information_Cell_ReconfRqstFDD;
-static gint ett_nbap_IPDLParameter_Information_Cell_ReconfRqstFDD;
-static gint ett_nbap_CellPortion_InformationList_Cell_ReconfRqstFDD;
-static gint ett_nbap_CellPortion_InformationItem_Cell_ReconfRqstFDD;
-static gint ett_nbap_CellReconfigurationRequestTDD;
-static gint ett_nbap_SCH_Information_Cell_ReconfRqstTDD;
-static gint ett_nbap_PCCPCH_Information_Cell_ReconfRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationList_Cell_ReconfRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationItem_Cell_ReconfRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationList_LCR_Cell_ReconfRqstTDD;
-static gint ett_nbap_TimeSlotConfigurationItem_LCR_Cell_ReconfRqstTDD;
-static gint ett_nbap_DwPCH_LCR_Information_Cell_ReconfRqstTDD;
-static gint ett_nbap_IPDLParameter_Information_Cell_ReconfRqstTDD;
-static gint ett_nbap_IPDLParameter_Information_LCR_Cell_ReconfRqstTDD;
-static gint ett_nbap_SCH_768_Information_Cell_ReconfRqstTDD;
-static gint ett_nbap_PCCPCH_768_Information_Cell_ReconfRqstTDD;
-static gint ett_nbap_UARFCN_Adjustment;
-static gint ett_nbap_Cell_Frequency_Add_LCR_MulFreq_Cell_ReconfRqstTDD;
-static gint ett_nbap_Cell_Frequency_ModifyList_LCR_MulFreq_Cell_ReconfRqstTDD;
-static gint ett_nbap_Cell_Frequency_ModifyItem_LCR_MulFreq_Cell_ReconfRqstTDD;
-static gint ett_nbap_Cell_Frequency_Delete_LCR_MulFreq_Cell_ReconfRqstTDD;
-static gint ett_nbap_CellReconfigurationResponse;
-static gint ett_nbap_CellReconfigurationFailure;
-static gint ett_nbap_CellDeletionRequest;
-static gint ett_nbap_CellDeletionResponse;
-static gint ett_nbap_ResourceStatusIndication;
-static gint ett_nbap_IndicationType_ResourceStatusInd;
-static gint ett_nbap_No_Failure_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_InformationList_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_InformationItem_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_Group_InformationList_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_Group_InformationItem_ResourceStatusInd;
-static gint ett_nbap_Power_Local_Cell_Group_InformationList_ResourceStatusInd;
-static gint ett_nbap_Power_Local_Cell_Group_InformationItem_ResourceStatusInd;
-static gint ett_nbap_ServiceImpacting_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_InformationList2_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_InformationItem2_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_Group_InformationList2_ResourceStatusInd;
-static gint ett_nbap_Local_Cell_Group_InformationItem2_ResourceStatusInd;
-static gint ett_nbap_CCP_InformationList_ResourceStatusInd;
-static gint ett_nbap_CCP_InformationItem_ResourceStatusInd;
-static gint ett_nbap_Cell_InformationList_ResourceStatusInd;
-static gint ett_nbap_Cell_InformationItem_ResourceStatusInd;
-static gint ett_nbap_S_CPICH_InformationList_ResourceStatusInd;
-static gint ett_nbap_S_CCPCH_InformationList_ResourceStatusInd;
-static gint ett_nbap_FACH_InformationList_ResourceStatusInd;
-static gint ett_nbap_PRACH_InformationList_ResourceStatusInd;
-static gint ett_nbap_RACH_InformationList_ResourceStatusInd;
-static gint ett_nbap_AICH_InformationList_ResourceStatusInd;
-static gint ett_nbap_FPACH_LCR_InformationList_ResourceStatusInd;
-static gint ett_nbap_HS_DSCH_Resources_Information_ResourceStatusInd;
-static gint ett_nbap_S_CCPCH_InformationListExt_ResourceStatusInd;
-static gint ett_nbap_S_CCPCH_LCR_InformationListExt_ResourceStatusInd;
-static gint ett_nbap_E_DCH_Resources_Information_ResourceStatusInd;
-static gint ett_nbap_PLCCH_InformationList_ResourceStatusInd;
-static gint ett_nbap_S_CCPCH_768_InformationList_ResourceStatusInd;
-static gint ett_nbap_PRACH_768_InformationList_ResourceStatusInd;
-static gint ett_nbap_E_RUCCH_InformationList_ResourceStatusInd;
-static gint ett_nbap_E_RUCCH_768_InformationList_ResourceStatusInd;
-static gint ett_nbap_Cell_Frequency_List_Information_LCR_MulFreq_ResourceStatusInd;
-static gint ett_nbap_Cell_Frequency_List_InformationItem_LCR_MulFreq_ResourceStatusInd;
-static gint ett_nbap_UPPCH_LCR_InformationList_ResourceStatusInd;
-static gint ett_nbap_UPPCH_LCR_InformationItem_ResourceStatusInd;
-static gint ett_nbap_MultipleFreq_HS_DSCH_Resources_InformationList_ResourceStatusInd;
-static gint ett_nbap_Power_Local_Cell_Group_InformationList2_ResourceStatusInd;
-static gint ett_nbap_Power_Local_Cell_Group_InformationItem2_ResourceStatusInd;
-static gint ett_nbap_MultipleFreq_E_DCH_Resources_InformationList_ResourceStatusInd;
-static gint ett_nbap_SystemInformationUpdateRequest;
-static gint ett_nbap_MIB_SB_SIB_InformationList_SystemInfoUpdateRqst;
-static gint ett_nbap_MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst;
-static gint ett_nbap_DeletionIndicator_SystemInfoUpdate;
-static gint ett_nbap_No_Deletion_SystemInfoUpdate;
-static gint ett_nbap_SegmentInformationListIE_SystemInfoUpdate;
-static gint ett_nbap_SegmentInformationItem_SystemInfoUpdate;
-static gint ett_nbap_SystemInformationUpdateResponse;
-static gint ett_nbap_SystemInformationUpdateFailure;
-static gint ett_nbap_RadioLinkSetupRequestFDD;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Setup_List;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Setup_ItemIEs;
-static gint ett_nbap_UL_DPCH_Information_RL_SetupRqstFDD;
-static gint ett_nbap_DL_DPCH_Information_RL_SetupRqstFDD;
-static gint ett_nbap_PowerOffsetInformation_RL_SetupRqstFDD;
-static gint ett_nbap_RL_InformationList_RL_SetupRqstFDD;
-static gint ett_nbap_RL_InformationItem_RL_SetupRqstFDD;
-static gint ett_nbap_E_DPCH_Information_RL_SetupRqstFDD;
-static gint ett_nbap_F_DPCH_Information_RL_SetupRqstFDD;
-static gint ett_nbap_PowerOffsetInformation_F_DPCH_RL_SetupRqstFDD;
-static gint ett_nbap_RadioLinkSetupRequestTDD;
-static gint ett_nbap_UL_CCTrCH_InformationList_RL_SetupRqstTDD;
-static gint ett_nbap_UL_CCTrCH_InformationItem_RL_SetupRqstTDD;
-static gint ett_nbap_UL_DPCH_InformationItem_RL_SetupRqstTDD;
-static gint ett_nbap_UL_DPCH_LCR_Information_RL_SetupRqstTDD;
-static gint ett_nbap_UL_DPCH_768_Information_RL_SetupRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationList_RL_SetupRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationItem_RL_SetupRqstTDD;
-static gint ett_nbap_CCTrCH_TPCList_RL_SetupRqstTDD;
-static gint ett_nbap_CCTrCH_TPCItem_RL_SetupRqstTDD;
-static gint ett_nbap_DL_DPCH_InformationItem_RL_SetupRqstTDD;
-static gint ett_nbap_DL_DPCH_LCR_Information_RL_SetupRqstTDD;
-static gint ett_nbap_DL_DPCH_768_Information_RL_SetupRqstTDD;
-static gint ett_nbap_RL_Information_RL_SetupRqstTDD;
-static gint ett_nbap_RadioLinkSetupResponseFDD;
-static gint ett_nbap_Additional_HS_Cell_Information_Response_List;
-static gint ett_nbap_Additional_HS_Cell_Information_Response_ItemIEs;
-static gint ett_nbap_RL_InformationResponseList_RL_SetupRspFDD;
-static gint ett_nbap_RL_InformationResponseItem_RL_SetupRspFDD;
-static gint ett_nbap_DiversityIndication_RL_SetupRspFDD;
-static gint ett_nbap_Combining_RL_SetupRspFDD;
-static gint ett_nbap_NonCombiningOrFirstRL_RL_SetupRspFDD;
-static gint ett_nbap_RadioLinkSetupResponseTDD;
-static gint ett_nbap_RL_InformationResponse_RL_SetupRspTDD;
-static gint ett_nbap_RL_InformationResponse_LCR_RL_SetupRspTDD;
-static gint ett_nbap_RadioLinkSetupFailureFDD;
-static gint ett_nbap_CauseLevel_RL_SetupFailureFDD;
-static gint ett_nbap_GeneralCauseList_RL_SetupFailureFDD;
-static gint ett_nbap_RLSpecificCauseList_RL_SetupFailureFDD;
-static gint ett_nbap_Unsuccessful_RL_InformationRespList_RL_SetupFailureFDD;
-static gint ett_nbap_Unsuccessful_RL_InformationRespItem_RL_SetupFailureFDD;
-static gint ett_nbap_Successful_RL_InformationRespList_RL_SetupFailureFDD;
-static gint ett_nbap_Successful_RL_InformationRespItem_RL_SetupFailureFDD;
-static gint ett_nbap_DiversityIndication_RL_SetupFailureFDD;
-static gint ett_nbap_Combining_RL_SetupFailureFDD;
-static gint ett_nbap_NonCombiningOrFirstRL_RL_SetupFailureFDD;
-static gint ett_nbap_RadioLinkSetupFailureTDD;
-static gint ett_nbap_CauseLevel_RL_SetupFailureTDD;
-static gint ett_nbap_GeneralCauseList_RL_SetupFailureTDD;
-static gint ett_nbap_RLSpecificCauseList_RL_SetupFailureTDD;
-static gint ett_nbap_Unsuccessful_RL_InformationResp_RL_SetupFailureTDD;
-static gint ett_nbap_RadioLinkAdditionRequestFDD;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Addition_List;
-static gint ett_nbap_Additional_EDCH_Cell_Information_RL_Add_Req;
-static gint ett_nbap_Setup_Or_Addition_Of_EDCH_On_secondary_UL_Frequency;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Addition_ItemIEs;
-static gint ett_nbap_RL_InformationList_RL_AdditionRqstFDD;
-static gint ett_nbap_RL_InformationItem_RL_AdditionRqstFDD;
-static gint ett_nbap_E_DPCH_Information_RL_AdditionReqFDD;
-static gint ett_nbap_RadioLinkAdditionRequestTDD;
-static gint ett_nbap_UL_CCTrCH_InformationList_RL_AdditionRqstTDD;
-static gint ett_nbap_UL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
-static gint ett_nbap_UL_DPCH_InformationItem_RL_AdditionRqstTDD;
-static gint ett_nbap_UL_DPCH_InformationItem_LCR_RL_AdditionRqstTDD;
-static gint ett_nbap_UL_DPCH_InformationItem_768_RL_AdditionRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationList_RL_AdditionRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
-static gint ett_nbap_DL_DPCH_InformationItem_RL_AdditionRqstTDD;
-static gint ett_nbap_DL_DPCH_InformationItem_LCR_RL_AdditionRqstTDD;
-static gint ett_nbap_DL_DPCH_InformationItem_768_RL_AdditionRqstTDD;
-static gint ett_nbap_RL_Information_RL_AdditionRqstTDD;
-static gint ett_nbap_RadioLinkAdditionResponseFDD;
-static gint ett_nbap_Additional_HS_Cell_Change_Information_Response_List;
-static gint ett_nbap_Additional_HS_Cell_Change_Information_Response_ItemIEs;
-static gint ett_nbap_RL_InformationResponseList_RL_AdditionRspFDD;
-static gint ett_nbap_RL_InformationResponseItem_RL_AdditionRspFDD;
-static gint ett_nbap_DiversityIndication_RL_AdditionRspFDD;
-static gint ett_nbap_Combining_RL_AdditionRspFDD;
-static gint ett_nbap_Non_Combining_RL_AdditionRspFDD;
-static gint ett_nbap_RadioLinkAdditionResponseTDD;
-static gint ett_nbap_RL_InformationResponse_RL_AdditionRspTDD;
-static gint ett_nbap_DCH_Information_RL_AdditionRspTDD;
-static gint ett_nbap_DiversityIndication_RL_AdditionRspTDD;
-static gint ett_nbap_Combining_RL_AdditionRspTDD;
-static gint ett_nbap_Non_Combining_RL_AdditionRspTDD;
-static gint ett_nbap_RL_InformationResponse_LCR_RL_AdditionRspTDD;
-static gint ett_nbap_RadioLinkAdditionFailureFDD;
-static gint ett_nbap_CauseLevel_RL_AdditionFailureFDD;
-static gint ett_nbap_GeneralCauseList_RL_AdditionFailureFDD;
-static gint ett_nbap_RLSpecificCauseList_RL_AdditionFailureFDD;
-static gint ett_nbap_Unsuccessful_RL_InformationRespList_RL_AdditionFailureFDD;
-static gint ett_nbap_Unsuccessful_RL_InformationRespItem_RL_AdditionFailureFDD;
-static gint ett_nbap_Successful_RL_InformationRespList_RL_AdditionFailureFDD;
-static gint ett_nbap_Successful_RL_InformationRespItem_RL_AdditionFailureFDD;
-static gint ett_nbap_DiversityIndication_RL_AdditionFailureFDD;
-static gint ett_nbap_Combining_RL_AdditionFailureFDD;
-static gint ett_nbap_Non_Combining_RL_AdditionFailureFDD;
-static gint ett_nbap_RadioLinkAdditionFailureTDD;
-static gint ett_nbap_CauseLevel_RL_AdditionFailureTDD;
-static gint ett_nbap_GeneralCauseList_RL_AdditionFailureTDD;
-static gint ett_nbap_RLSpecificCauseList_RL_AdditionFailureTDD;
-static gint ett_nbap_Unsuccessful_RL_InformationResp_RL_AdditionFailureTDD;
-static gint ett_nbap_RadioLinkReconfigurationPrepareFDD;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Prep;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Prep_ItemIEs;
-static gint ett_nbap_Additional_EDCH_Cell_Information_RL_Reconf_Prep;
-static gint ett_nbap_UL_DPCH_Information_RL_ReconfPrepFDD;
-static gint ett_nbap_DL_DPCH_Information_RL_ReconfPrepFDD;
-static gint ett_nbap_DL_DPCH_Power_Information_RL_ReconfPrepFDD;
-static gint ett_nbap_PowerOffsetInformation_RL_ReconfPrepFDD;
-static gint ett_nbap_DCH_DeleteList_RL_ReconfPrepFDD;
-static gint ett_nbap_DCH_DeleteItem_RL_ReconfPrepFDD;
-static gint ett_nbap_RL_InformationList_RL_ReconfPrepFDD;
-static gint ett_nbap_RL_InformationItem_RL_ReconfPrepFDD;
-static gint ett_nbap_E_DPCH_Information_RL_ReconfPrepFDD;
-static gint ett_nbap_F_DPCH_Information_RL_ReconfPrepFDD;
-static gint ett_nbap_PowerOffsetInformation_F_DPCH_RL_ReconfPrepFDD;
-static gint ett_nbap_RadioLinkReconfigurationPrepareTDD;
-static gint ett_nbap_UL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_CCTrCH_InformationAddItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_InformationAddItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_LCR_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_UL_DPCH_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_UL_DPCH_InformationAddListIE_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_768_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_CCTrCH_InformationModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_InformationModify_AddItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Timeslot_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Timeslot_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Code_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_TimeslotLCR_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Timeslot_LCR_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Code_InformationModify_ModifyList_RL_ReconfPrepTDDLCR;
-static gint ett_nbap_UL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDDLCR;
-static gint ett_nbap_UL_Timeslot768_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Timeslot_768_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_Code_InformationModify_ModifyList_RL_ReconfPrepTDD768;
-static gint ett_nbap_UL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDD768;
-static gint ett_nbap_UL_DPCH_InformationModify_DeleteListIE_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_InformationModify_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_LCR_InformationModify_AddList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_UL_DPCH_InformationModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_UL_DPCH_InformationModifyListIE_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_DPCH_768_InformationModify_AddList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
-static gint ett_nbap_UL_CCTrCH_InformationDeleteItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_CCTrCH_InformationAddItem_RL_ReconfPrepTDD;
-static gint ett_nbap_CCTrCH_TPCAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_CCTrCH_TPCAddItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_InformationAddItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_LCR_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_DL_DPCH_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_DL_DPCH_InformationAddListIE_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_768_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_CCTrCH_InformationModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_CCTrCH_TPCModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_CCTrCH_TPCModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_InformationModify_AddItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Timeslot_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Timeslot_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Code_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Code_LCR_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Code_LCR_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Timeslot_768_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Timeslot_768_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Code_768_InformationModify_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_Code_768_InformationModify_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_InformationModify_DeleteListIE_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_InformationModify_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_LCR_InformationModify_AddList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_DL_DPCH_InformationModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_DL_DPCH_InformationModifyListIE_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_DPCH_768_InformationModify_AddList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
-static gint ett_nbap_DL_CCTrCH_InformationDeleteItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DCH_DeleteList_RL_ReconfPrepTDD;
-static gint ett_nbap_DCH_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DSCH_Information_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_DSCH_Information_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_DSCH_Information_DeleteList_RL_ReconfPrepTDD;
-static gint ett_nbap_DSCH_Information_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_nbap_USCH_Information_ModifyList_RL_ReconfPrepTDD;
-static gint ett_nbap_USCH_Information_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_nbap_USCH_Information_DeleteList_RL_ReconfPrepTDD;
-static gint ett_nbap_USCH_Information_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_nbap_MultipleRL_Information_RL_ReconfPrepTDD;
-static gint ett_nbap_RL_Information_RL_ReconfPrepTDD;
-static gint ett_nbap_RadioLinkReconfigurationReady;
-static gint ett_nbap_RL_InformationResponseList_RL_ReconfReady;
-static gint ett_nbap_RL_InformationResponseItem_RL_ReconfReady;
-static gint ett_nbap_RadioLinkReconfigurationFailure;
-static gint ett_nbap_CauseLevel_RL_ReconfFailure;
-static gint ett_nbap_GeneralCauseList_RL_ReconfFailure;
-static gint ett_nbap_RLSpecificCauseList_RL_ReconfFailure;
-static gint ett_nbap_RL_ReconfigurationFailureList_RL_ReconfFailure;
-static gint ett_nbap_RL_ReconfigurationFailureItem_RL_ReconfFailure;
-static gint ett_nbap_RadioLinkReconfigurationCommit;
-static gint ett_nbap_RadioLinkReconfigurationCancel;
-static gint ett_nbap_RadioLinkReconfigurationRequestFDD;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Req;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Req_ItemIEs;
-static gint ett_nbap_Additional_EDCH_Cell_Information_RL_Reconf_Req;
-static gint ett_nbap_UL_DPCH_Information_RL_ReconfRqstFDD;
-static gint ett_nbap_DL_DPCH_Information_RL_ReconfRqstFDD;
-static gint ett_nbap_DCH_DeleteList_RL_ReconfRqstFDD;
-static gint ett_nbap_DCH_DeleteItem_RL_ReconfRqstFDD;
-static gint ett_nbap_RL_InformationList_RL_ReconfRqstFDD;
-static gint ett_nbap_RL_InformationItem_RL_ReconfRqstFDD;
-static gint ett_nbap_E_DPCH_Information_RL_ReconfRqstFDD;
-static gint ett_nbap_RadioLinkReconfigurationRequestTDD;
-static gint ett_nbap_UL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
-static gint ett_nbap_UL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
-static gint ett_nbap_UL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
-static gint ett_nbap_UL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
-static gint ett_nbap_MultipleRL_DL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
-static gint ett_nbap_MultipleRL_DL_CCTrCH_InformationModifyListIE_RL_ReconfRqstTDD;
-static gint ett_nbap_DL_DPCH_LCR_InformationModify_ModifyList_RL_ReconfRqstTDD;
-static gint ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyList_RL_ReconfRqstTDD;
-static gint ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyItem_RL_ReconfRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
-static gint ett_nbap_DL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
-static gint ett_nbap_DCH_DeleteList_RL_ReconfRqstTDD;
-static gint ett_nbap_DCH_DeleteItem_RL_ReconfRqstTDD;
-static gint ett_nbap_Multiple_RL_Information_RL_ReconfRqstTDD;
-static gint ett_nbap_RL_Information_RL_ReconfRqstTDD;
-static gint ett_nbap_RadioLinkReconfigurationResponse;
-static gint ett_nbap_RL_InformationResponseList_RL_ReconfRsp;
-static gint ett_nbap_RL_InformationResponseItem_RL_ReconfRsp;
-static gint ett_nbap_RadioLinkDeletionRequest;
-static gint ett_nbap_RL_informationList_RL_DeletionRqst;
-static gint ett_nbap_RL_informationItem_RL_DeletionRqst;
-static gint ett_nbap_RadioLinkDeletionResponse;
-static gint ett_nbap_DL_PowerControlRequest;
-static gint ett_nbap_DL_ReferencePowerInformationList_DL_PC_Rqst;
-static gint ett_nbap_DL_ReferencePowerInformationItem_DL_PC_Rqst;
-static gint ett_nbap_DL_PowerTimeslotControlRequest;
-static gint ett_nbap_DedicatedMeasurementInitiationRequest;
-static gint ett_nbap_DedicatedMeasurementObjectType_DM_Rqst;
-static gint ett_nbap_RL_DM_Rqst;
-static gint ett_nbap_RL_InformationList_DM_Rqst;
-static gint ett_nbap_RL_InformationItem_DM_Rqst;
-static gint ett_nbap_PUSCH_Info_DM_Rqst;
-static gint ett_nbap_HSSICH_Info_DM_Rqst;
-static gint ett_nbap_HSSICH_InfoExt_DM_Rqst;
-static gint ett_nbap_RL_Set_DM_Rqst;
-static gint ett_nbap_RL_Set_InformationList_DM_Rqst;
-static gint ett_nbap_RL_Set_InformationItem_DM_Rqst;
-static gint ett_nbap_DedicatedMeasurementInitiationResponse;
-static gint ett_nbap_DedicatedMeasurementObjectType_DM_Rsp;
-static gint ett_nbap_RL_DM_Rsp;
-static gint ett_nbap_RL_InformationList_DM_Rsp;
-static gint ett_nbap_RL_InformationItem_DM_Rsp;
-static gint ett_nbap_PUSCH_Info_DM_Rsp;
-static gint ett_nbap_Multiple_PUSCH_InfoList_DM_Rsp;
-static gint ett_nbap_Multiple_PUSCH_InfoListIE_DM_Rsp;
-static gint ett_nbap_Multiple_DedicatedMeasurementValueList_TDD_DM_Rsp;
-static gint ett_nbap_Multiple_DedicatedMeasurementValueItem_TDD_DM_Rsp;
-static gint ett_nbap_Multiple_DedicatedMeasurementValueList_LCR_TDD_DM_Rsp;
-static gint ett_nbap_Multiple_DedicatedMeasurementValueItem_LCR_TDD_DM_Rsp;
-static gint ett_nbap_Multiple_HSSICHMeasurementValueList_TDD_DM_Rsp;
-static gint ett_nbap_Multiple_HSSICHMeasurementValueItem_TDD_DM_Rsp;
-static gint ett_nbap_Multiple_DedicatedMeasurementValueList_768_TDD_DM_Rsp;
-static gint ett_nbap_Multiple_DedicatedMeasurementValueItem_768_TDD_DM_Rsp;
-static gint ett_nbap_RL_Set_DM_Rsp;
-static gint ett_nbap_RL_Set_InformationList_DM_Rsp;
-static gint ett_nbap_RL_Set_InformationItem_DM_Rsp;
-static gint ett_nbap_DedicatedMeasurementInitiationFailure;
-static gint ett_nbap_DedicatedMeasurementReport;
-static gint ett_nbap_DedicatedMeasurementObjectType_DM_Rprt;
-static gint ett_nbap_RL_DM_Rprt;
-static gint ett_nbap_RL_InformationList_DM_Rprt;
-static gint ett_nbap_RL_InformationItem_DM_Rprt;
-static gint ett_nbap_PUSCH_Info_DM_Rprt;
-static gint ett_nbap_Multiple_PUSCH_InfoList_DM_Rprt;
-static gint ett_nbap_Multiple_PUSCH_InfoListIE_DM_Rprt;
-static gint ett_nbap_RL_Set_DM_Rprt;
-static gint ett_nbap_RL_Set_InformationList_DM_Rprt;
-static gint ett_nbap_RL_Set_InformationItem_DM_Rprt;
-static gint ett_nbap_DedicatedMeasurementTerminationRequest;
-static gint ett_nbap_DedicatedMeasurementFailureIndication;
-static gint ett_nbap_RadioLinkFailureIndication;
-static gint ett_nbap_Reporting_Object_RL_FailureInd;
-static gint ett_nbap_RL_RL_FailureInd;
-static gint ett_nbap_RL_InformationList_RL_FailureInd;
-static gint ett_nbap_RL_InformationItem_RL_FailureInd;
-static gint ett_nbap_RL_Set_RL_FailureInd;
-static gint ett_nbap_RL_Set_InformationList_RL_FailureInd;
-static gint ett_nbap_RL_Set_InformationItem_RL_FailureInd;
-static gint ett_nbap_CCTrCH_RL_FailureInd;
-static gint ett_nbap_CCTrCH_InformationList_RL_FailureInd;
-static gint ett_nbap_CCTrCH_InformationItem_RL_FailureInd;
-static gint ett_nbap_RadioLinkPreemptionRequiredIndication;
-static gint ett_nbap_RL_InformationList_RL_PreemptRequiredInd;
-static gint ett_nbap_RL_InformationItem_RL_PreemptRequiredInd;
-static gint ett_nbap_RadioLinkRestoreIndication;
-static gint ett_nbap_Reporting_Object_RL_RestoreInd;
-static gint ett_nbap_RL_RL_RestoreInd;
-static gint ett_nbap_RL_InformationList_RL_RestoreInd;
-static gint ett_nbap_RL_InformationItem_RL_RestoreInd;
-static gint ett_nbap_RL_Set_RL_RestoreInd;
-static gint ett_nbap_RL_Set_InformationList_RL_RestoreInd;
-static gint ett_nbap_RL_Set_InformationItem_RL_RestoreInd;
-static gint ett_nbap_CCTrCH_RL_RestoreInd;
-static gint ett_nbap_CCTrCH_InformationList_RL_RestoreInd;
-static gint ett_nbap_CCTrCH_InformationItem_RL_RestoreInd;
-static gint ett_nbap_CompressedModeCommand;
-static gint ett_nbap_ErrorIndication;
-static gint ett_nbap_PrivateMessage;
-static gint ett_nbap_PhysicalSharedChannelReconfigurationRequestFDD;
-static gint ett_nbap_HSDPA_And_EDCH_CellPortion_InformationList_PSCH_ReconfRqst;
-static gint ett_nbap_HSDPA_And_EDCH_CellPortion_InformationItem_PSCH_ReconfRqst;
-static gint ett_nbap_PhysicalSharedChannelReconfigurationRequestTDD;
-static gint ett_nbap_PDSCHSets_AddList_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCHSets_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCH_Information_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationAddList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationAddItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationAddList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationAddItem_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCH_AddInformation_LCR_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationAddList_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationAddItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationAddList_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationAddItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCH_AddInformation_768_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationAddList_768_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationAddItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationAddList_768_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationAddItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCHSets_ModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCHSets_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCH_Information_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCH_ModifyInformation_LCR_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_LCR_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_LCR_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_LCR_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_LCR_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCH_ModifyInformation_768_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_768_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Timeslot_768_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_768_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_DL_Code_768_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCHSets_DeleteList_PSCH_ReconfRqst;
-static gint ett_nbap_PDSCHSets_DeleteItem_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCHSets_AddList_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCHSets_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCH_Information_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationAddList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationAddItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationAddList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationAddItem_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCH_AddInformation_LCR_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationAddList_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationAddItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationAddList_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationAddItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCH_AddInformation_768_AddItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationAddList_768_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationAddItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationAddList_768_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationAddItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCHSets_ModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCHSets_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCH_Information_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCH_ModifyInformation_LCR_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_LCR_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_LCR_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_LCR_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_LCR_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCH_ModifyInformation_768_ModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_768_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Timeslot_768_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_768_InformationModifyList_PSCH_ReconfRqst;
-static gint ett_nbap_UL_Code_768_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCHSets_DeleteList_PSCH_ReconfRqst;
-static gint ett_nbap_PUSCHSets_DeleteItem_PSCH_ReconfRqst;
-static gint ett_nbap_HS_PDSCH_TDD_Information_PSCH_ReconfRqst;
-static gint ett_nbap_DL_HS_PDSCH_Timeslot_Information_PSCH_ReconfRqst;
-static gint ett_nbap_DL_HS_PDSCH_Timeslot_InformationItem_PSCH_ReconfRqst;
-static gint ett_nbap_DL_HS_PDSCH_Codelist_PSCH_ReconfRqst;
-static gint ett_nbap_DL_HS_PDSCH_Timeslot_Information_768_PSCH_ReconfRqst;
-static gint ett_nbap_DL_HS_PDSCH_Timeslot_InformationItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_DL_HS_PDSCH_Codelist_768_PSCH_ReconfRqst;
-static gint ett_nbap_MultipleFreq_DL_HS_PDSCH_Timeslot_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_MultipleFreq_DL_HS_PDSCH_Timeslot_Information_LCRItem_PSCH_ReconfRqst;
-static gint ett_nbap_Add_To_HS_SCCH_Resource_Pool_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_Information_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationItem_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SICH_Information_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SICH_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_Information_768_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SICH_Information_768_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationExt_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Modify_HS_SCCH_Resource_Pool_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SICH_InformationModify_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationModify_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationModifyItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationModifyExt_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SICH_InformationModify_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationModify_768_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationModifyItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SICH_InformationModify_768_PSCH_ReconfRqst;
-static gint ett_nbap_HS_SCCH_InformationModify_PSCH_ReconfRqst;
-static gint ett_nbap_Delete_From_HS_SCCH_Resource_Pool_PSCH_ReconfRqst;
-static gint ett_nbap_Delete_From_HS_SCCH_Resource_PoolItem_PSCH_ReconfRqst;
-static gint ett_nbap_E_PUCH_Information_PSCH_ReconfRqst;
-static gint ett_nbap_E_PUCH_Timeslot_Info;
-static gint ett_nbap_Add_To_E_AGCH_Resource_Pool_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_Information_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationItem_PSCH_ReconfRqst;
-static gint ett_nbap_Modify_E_AGCH_Resource_Pool_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationModify_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationModifyItem_PSCH_ReconfRqst;
-static gint ett_nbap_Delete_From_E_AGCH_Resource_Pool_PSCH_ReconfRqst;
-static gint ett_nbap_Delete_From_E_AGCH_Resource_PoolItem_PSCH_ReconfRqst;
-static gint ett_nbap_E_HICH_Information_PSCH_ReconfRqst;
-static gint ett_nbap_E_PUCH_Information_768_PSCH_ReconfRqst;
-static gint ett_nbap_Add_To_E_AGCH_Resource_Pool_768_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_Information_768_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_Modify_E_AGCH_Resource_Pool_768_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationModify_768_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationModifyItem_768_PSCH_ReconfRqst;
-static gint ett_nbap_E_HICH_Information_768_PSCH_ReconfRqst;
-static gint ett_nbap_E_PUCH_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_PUCH_Timeslot_InfoLCR;
-static gint ett_nbap_E_PUCH_Timeslot_Item_InfoLCR;
-static gint ett_nbap_E_PUCH_Codelist_LCR;
-static gint ett_nbap_Add_To_E_AGCH_Resource_Pool_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Modify_E_AGCH_Resource_Pool_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationModify_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_AGCH_InformationModifyItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Add_To_E_HICH_Resource_Pool_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_HICH_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_HICH_InformationItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Modify_E_HICH_Resource_Pool_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_HICH_InformationModify_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_E_HICH_InformationModifyItem_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Delete_From_E_HICH_Resource_Pool_PSCH_ReconfRqst;
-static gint ett_nbap_Delete_From_E_HICH_Resource_PoolItem_PSCH_ReconfRqst;
-static gint ett_nbap_SYNC_UL_Partition_LCR;
-static gint ett_nbap_Delete_From_HS_SCCH_Resource_PoolExt_PSCH_ReconfRqst;
-static gint ett_nbap_MultipleFreq_E_PUCH_Timeslot_InformationList_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_MultipleFreq_E_PUCH_Timeslot_Information_LCRItem_PSCH_ReconfRqst;
-static gint ett_nbap_Max_RTWP_perUARFCN_Information_LCR_PSCH_ReconfRqst;
-static gint ett_nbap_Max_RTWP_perUARFCN_Information_LCR_PSCH_ReconfRqst_Item;
-static gint ett_nbap_PhysicalSharedChannelReconfigurationResponse;
-static gint ett_nbap_E_HICH_TimeOffset_ExtensionLCR;
-static gint ett_nbap_MultipleFreq_E_HICH_TimeOffsetLCR;
-static gint ett_nbap_PhysicalSharedChannelReconfigurationFailure;
-static gint ett_nbap_CauseLevel_PSCH_ReconfFailure;
-static gint ett_nbap_GeneralCauseList_PSCH_ReconfFailure;
-static gint ett_nbap_SetSpecificCauseList_PSCH_ReconfFailureTDD;
-static gint ett_nbap_Unsuccessful_PDSCHSetList_PSCH_ReconfFailureTDD;
-static gint ett_nbap_Unsuccessful_PDSCHSetItem_PSCH_ReconfFailureTDD;
-static gint ett_nbap_Unsuccessful_PUSCHSetList_PSCH_ReconfFailureTDD;
-static gint ett_nbap_Unsuccessful_PUSCHSetItem_PSCH_ReconfFailureTDD;
-static gint ett_nbap_UARFCNSpecificCauseList_PSCH_ReconfFailureTDD;
-static gint ett_nbap_Unsuccessful_UARFCNItem_PSCH_ReconfFailureTDD;
-static gint ett_nbap_E_HICH_TimeOffset_ReconfFailureTDD;
-static gint ett_nbap_Common_System_Information_ResponseLCR;
-static gint ett_nbap_ResetRequest;
-static gint ett_nbap_ResetIndicator;
-static gint ett_nbap_CommunicationContextList_Reset;
-static gint ett_nbap_CommunicationContextInfoList_Reset;
-static gint ett_nbap_CommunicationContextInfoItem_Reset;
-static gint ett_nbap_CommunicationContextType_Reset;
-static gint ett_nbap_CommunicationControlPortList_Reset;
-static gint ett_nbap_CommunicationControlPortInfoList_Reset;
-static gint ett_nbap_CommunicationControlPortInfoItem_Reset;
-static gint ett_nbap_ResetResponse;
-static gint ett_nbap_InformationExchangeInitiationRequest;
-static gint ett_nbap_InformationExchangeObjectType_InfEx_Rqst;
-static gint ett_nbap_Cell_InfEx_Rqst;
-static gint ett_nbap_InformationExchangeInitiationResponse;
-static gint ett_nbap_InformationExchangeObjectType_InfEx_Rsp;
-static gint ett_nbap_Cell_InfEx_Rsp;
-static gint ett_nbap_InformationExchangeInitiationFailure;
-static gint ett_nbap_InformationReport;
-static gint ett_nbap_InformationExchangeObjectType_InfEx_Rprt;
-static gint ett_nbap_Cell_Inf_Rprt;
-static gint ett_nbap_InformationExchangeTerminationRequest;
-static gint ett_nbap_InformationExchangeFailureIndication;
-static gint ett_nbap_CellSynchronisationInitiationRequestTDD;
-static gint ett_nbap_TimeslotInfo_CellSyncInitiationRqstTDD;
-static gint ett_nbap_CellSyncBurstTransInit_CellSyncInitiationRqstTDD;
-static gint ett_nbap_CellSyncBurstMeasureInit_CellSyncInitiationRqstTDD;
-static gint ett_nbap_SYNCDlCodeId_TransInitLCR_CellSyncInitiationRqstTDD;
-static gint ett_nbap_SYNCDlCodeId_MeasureInitLCR_CellSyncInitiationRqstTDD;
-static gint ett_nbap_CellSynchronisationInitiationResponseTDD;
-static gint ett_nbap_CellSynchronisationInitiationFailureTDD;
-static gint ett_nbap_CellSynchronisationReconfigurationRequestTDD;
-static gint ett_nbap_CellSyncBurstTransReconfInfo_CellSyncReconfRqstTDD;
-static gint ett_nbap_CellSyncBurstTransInfoItem_CellSyncReconfRqstTDD;
-static gint ett_nbap_CellSyncBurstMeasInfo_CellSyncReconfRqstTDD;
-static gint ett_nbap_CellSyncBurstMeasInfoListIE_CellSyncReconfRqstTDD;
-static gint ett_nbap_CellSyncBurstMeasInfoItem_CellSyncReconfRqstTDD;
-static gint ett_nbap_CellSyncBurstInfoList_CellSyncReconfRqstTDD;
-static gint ett_nbap_CellSyncBurstInfoItem_CellSyncReconfRqstTDD;
-static gint ett_nbap_SYNCDlCodeIdTransReconfInfoLCR_CellSyncReconfRqstTDD;
-static gint ett_nbap_SYNCDlCodeIdTransReconfItemLCR_CellSyncReconfRqstTDD;
-static gint ett_nbap_SYNCDlCodeIdMeasInfoLCR_CellSyncReconfRqstTDD;
-static gint ett_nbap_SYNCDlCodeIdMeasInfoList_CellSyncReconfRqstTDD;
-static gint ett_nbap_SYNCDlCodeIdMeasInfoItem_CellSyncReconfRqstTDD;
-static gint ett_nbap_SYNCDlCodeIdInfoListLCR_CellSyncReconfRqstTDD;
-static gint ett_nbap_SYNCDlCodeIdInfoItemLCR_CellSyncReconfRqstTDD;
-static gint ett_nbap_CellSynchronisationReconfigurationResponseTDD;
-static gint ett_nbap_CellSynchronisationReconfigurationFailureTDD;
-static gint ett_nbap_CellSynchronisationAdjustmentRequestTDD;
-static gint ett_nbap_CellAdjustmentInfo_SyncAdjustmentRqstTDD;
-static gint ett_nbap_CellAdjustmentInfoItem_SyncAdjustmentRqstTDD;
-static gint ett_nbap_CellSynchronisationAdjustmentResponseTDD;
-static gint ett_nbap_CellSynchronisationAdjustmentFailureTDD;
-static gint ett_nbap_CauseLevel_SyncAdjustmntFailureTDD;
-static gint ett_nbap_GeneralCauseList_SyncAdjustmntFailureTDD;
-static gint ett_nbap_CellSpecificCauseList_SyncAdjustmntFailureTDD;
-static gint ett_nbap_Unsuccessful_cell_InformationRespList_SyncAdjustmntFailureTDD;
-static gint ett_nbap_Unsuccessful_cell_InformationRespItem_SyncAdjustmntFailureTDD;
-static gint ett_nbap_CellSynchronisationTerminationRequestTDD;
-static gint ett_nbap_CellSynchronisationFailureIndicationTDD;
-static gint ett_nbap_CellSynchronisationReportTDD;
-static gint ett_nbap_CellSyncInfo_CellSyncReprtTDD;
-static gint ett_nbap_CellSyncInfoItemIE_CellSyncReprtTDD;
-static gint ett_nbap_SyncReportType_CellSyncReprtTDD;
-static gint ett_nbap_IntStdPhCellSyncInfo_CellSyncReprtTDD;
-static gint ett_nbap_CellSyncBurstMeasInfoList_CellSyncReprtTDD;
-static gint ett_nbap_CellSyncBurstMeasInfoItem_CellSyncReprtTDD;
-static gint ett_nbap_SEQUENCE_SIZE_1_maxNrOfReceptsPerSyncFrame_OF_CellSyncBurstInfo_CellSyncReprtTDD;
-static gint ett_nbap_CellSyncBurstInfo_CellSyncReprtTDD;
-static gint ett_nbap_CellSyncBurstAvailable_CellSyncReprtTDD;
-static gint ett_nbap_SyncDLCodeIdsMeasInfoList_CellSyncReprtTDD;
-static gint ett_nbap_SyncDLCodeIdsMeasInfoItem_CellSyncReprtTDD;
-static gint ett_nbap_SyncDLCodeIdInfo_CellSyncReprtTDD;
-static gint ett_nbap_SyncDLCodeIdItem_CellSyncReprtTDD;
-static gint ett_nbap_SyncDLCodeIdAvailable_CellSyncReprtTDD;
-static gint ett_nbap_BearerRearrangementIndication;
-static gint ett_nbap_DCH_RearrangeList_Bearer_RearrangeInd;
-static gint ett_nbap_DCH_RearrangeItem_Bearer_RearrangeInd;
-static gint ett_nbap_DSCH_RearrangeList_Bearer_RearrangeInd;
-static gint ett_nbap_DSCH_RearrangeItem_Bearer_RearrangeInd;
-static gint ett_nbap_USCH_RearrangeList_Bearer_RearrangeInd;
-static gint ett_nbap_USCH_RearrangeItem_Bearer_RearrangeInd;
-static gint ett_nbap_HSDSCH_RearrangeList_Bearer_RearrangeInd;
-static gint ett_nbap_HSDSCH_RearrangeItem_Bearer_RearrangeInd;
-static gint ett_nbap_E_DCH_RearrangeList_Bearer_RearrangeInd;
-static gint ett_nbap_E_DCH_RearrangeItem_Bearer_RearrangeInd;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Bearer_Rearrangement_List;
-static gint ett_nbap_Additional_EDCH_Cell_Information_Bearer_Rearrangement_ItemIEs;
-static gint ett_nbap_RadioLinkActivationCommandFDD;
-static gint ett_nbap_DelayedActivationInformationList_RL_ActivationCmdFDD;
-static gint ett_nbap_DelayedActivationInformation_RL_ActivationCmdFDD;
-static gint ett_nbap_RadioLinkActivationCommandTDD;
-static gint ett_nbap_DelayedActivationInformationList_RL_ActivationCmdTDD;
-static gint ett_nbap_DelayedActivationInformation_RL_ActivationCmdTDD;
-static gint ett_nbap_RadioLinkParameterUpdateIndicationFDD;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Param_Upd;
-static gint ett_nbap_Additional_HS_Cell_Information_RL_Param_Upd_ItemIEs;
-static gint ett_nbap_Additional_EDCH_Cell_Information_RL_Param_Upd;
-static gint ett_nbap_Additional_EDCH_Cell_Information_RL_Param_Upd_ItemIEs;
-static gint ett_nbap_RadioLinkParameterUpdateIndicationTDD;
-static gint ett_nbap_MBMSNotificationUpdateCommand;
-static gint ett_nbap_UEStatusUpdateCommand;
-static gint ett_nbap_SecondaryULFrequencyReport;
-static gint ett_nbap_SecondaryULFrequencyUpdateIndication;
-static gint ett_nbap_NBAP_PDU;
-static gint ett_nbap_InitiatingMessage;
-static gint ett_nbap_SuccessfulOutcome;
-static gint ett_nbap_UnsuccessfulOutcome;
-static gint ett_nbap_Outcome;
+static int ett_nbap_PrivateIE_ID;
+static int ett_nbap_ProcedureID;
+static int ett_nbap_TransactionID;
+static int ett_nbap_ProtocolIE_Container;
+static int ett_nbap_ProtocolIE_Field;
+static int ett_nbap_ProtocolExtensionContainer;
+static int ett_nbap_ProtocolExtensionField;
+static int ett_nbap_PrivateIE_Container;
+static int ett_nbap_PrivateIE_Field;
+static int ett_nbap_ActivationInformation;
+static int ett_nbap_ActivationInformationItem;
+static int ett_nbap_Additional_EDCH_Setup_Info;
+static int ett_nbap_Additional_EDCH_Cell_Information_Setup;
+static int ett_nbap_Additional_EDCH_FDD_Setup_Cell_Information;
+static int ett_nbap_Additional_EDCH_UL_DPCH_Information_Setup;
+static int ett_nbap_Additional_EDCH_F_DPCH_Information;
+static int ett_nbap_Additional_EDCH_RL_Specific_Information_To_Setup_List;
+static int ett_nbap_Additional_EDCH_RL_Specific_Information_To_Setup_ItemIEs;
+static int ett_nbap_Additional_EDCH_Cell_Information_To_Add_List;
+static int ett_nbap_Additional_EDCH_Cell_Information_To_Add_ItemIEs;
+static int ett_nbap_Additional_EDCH_RL_Specific_Information_To_Add_ItemIEs;
+static int ett_nbap_EDCH_Additional_RL_Specific_Information_To_Add_List;
+static int ett_nbap_Additional_EDCH_RL_Specific_Information_To_Modify_List;
+static int ett_nbap_Additional_EDCH_RL_Specific_Information_To_Modify_ItemIEs;
+static int ett_nbap_Additional_EDCH_FDD_Information;
+static int ett_nbap_Additional_EDCH_MAC_d_Flows_Specific_Info_List;
+static int ett_nbap_Additional_EDCH_MAC_d_Flows_Specific_Info;
+static int ett_nbap_Additional_EDCH_Cell_Information_Response_List;
+static int ett_nbap_Additional_EDCH_FDD_Information_Response_ItemIEs;
+static int ett_nbap_EDCH_Additional_RL_Specific_Information_Response_List;
+static int ett_nbap_EDCH_Additional_RL_Specific_Information_Response_ItemIEs;
+static int ett_nbap_Additional_EDCH_Cell_Information_Response_RLReconf_List;
+static int ett_nbap_Additional_EDCH_FDD_Information_Response_RLReconf_Items;
+static int ett_nbap_Additional_Modififed_EDCH_FDD_Information_Response_ItemIEs;
+static int ett_nbap_EDCH_Additional_Modified_RL_Specific_Information_Response_List;
+static int ett_nbap_EDCH_Additional_Modified_RL_Specific_Information_Response_List_Items;
+static int ett_nbap_Additional_EDCH_MAC_d_Flow_Specific_Information_Response_List;
+static int ett_nbap_Additional_EDCH_MAC_d_Flows_Specific_Info_Response;
+static int ett_nbap_Additional_EDCH_Cell_Information_Response_RL_Add_List;
+static int ett_nbap_Additional_EDCH_Cell_Information_Response_RL_Add_ItemIEs;
+static int ett_nbap_Additional_EDCH_Cell_Information_ConfigurationChange_List;
+static int ett_nbap_Additional_EDCH_ConfigurationChange_Info_ItemIEs;
+static int ett_nbap_Additional_EDCH_UL_DPCH_Information_Modify;
+static int ett_nbap_Additional_EDCH_Cell_Information_Removal_List;
+static int ett_nbap_Additional_EDCH_Cell_Information_Removal_Info_ItemIEs;
+static int ett_nbap_Additional_EDCH_FDD_Update_Information;
+static int ett_nbap_Additional_EDCH_DL_Control_Channel_Change_Information_List;
+static int ett_nbap_Additional_EDCH_DL_Control_Channel_Change_Info_ItemIEs;
+static int ett_nbap_AdditionalMeasurementValueList;
+static int ett_nbap_AdditionalMeasurementValue;
+static int ett_nbap_AdditionalTimeSlotListLCR;
+static int ett_nbap_AdditionalTimeSlotLCR;
+static int ett_nbap_Active_Pattern_Sequence_Information;
+static int ett_nbap_Transmission_Gap_Pattern_Sequence_Status_List;
+static int ett_nbap_Transmission_Gap_Pattern_Sequence_Status_List_item;
+static int ett_nbap_AllocationRetentionPriority;
+static int ett_nbap_Angle_Of_Arrival_Value_LCR;
+static int ett_nbap_BCCH_Specific_HSDSCH_RNTI_Information;
+static int ett_nbap_BCCH_Specific_HSDSCH_RNTI_InformationLCR;
+static int ett_nbap_Best_Cell_Portions_Value;
+static int ett_nbap_Best_Cell_Portions_Item;
+static int ett_nbap_Best_Cell_Portions_ValueLCR;
+static int ett_nbap_Best_Cell_Portions_ItemLCR;
+static int ett_nbap_BroadcastCommonTransportBearerIndication;
+static int ett_nbap_Cause;
+static int ett_nbap_Cell_ERNTI_Status_Information;
+static int ett_nbap_Cell_ERNTI_Status_Information_Item;
+static int ett_nbap_Vacant_ERNTI;
+static int ett_nbap_CellSyncBurstTiming;
+static int ett_nbap_CellSyncBurstTimingLCR;
+static int ett_nbap_CommonChannelsCapacityConsumptionLaw;
+static int ett_nbap_CommonChannelsCapacityConsumptionLaw_item;
+static int ett_nbap_Common_EDCH_System_InformationFDD;
+static int ett_nbap_Common_E_DCH_UL_DPCH_InfoItem;
+static int ett_nbap_Common_E_DCH_EDPCH_InfoItem;
+static int ett_nbap_Common_E_DCH_InfoItem;
+static int ett_nbap_Common_E_DCH_HSDPCCH_InfoItem;
+static int ett_nbap_Common_E_DCH_CQI_Info;
+static int ett_nbap_Common_E_DCH_Preamble_Control_InfoItem;
+static int ett_nbap_Common_E_DCH_AICH_Information;
+static int ett_nbap_Common_E_DCH_FDPCH_InfoItem;
+static int ett_nbap_Common_E_DCH_Resource_Combination_InfoList;
+static int ett_nbap_Common_E_DCH_Resource_Combination_InfoList_Item;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoList;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoList_Item;
+static int ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoList;
+static int ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoList_Item;
+static int ett_nbap_Common_E_DCH_LogicalChannel_InfoList;
+static int ett_nbap_Common_E_DCH_LogicalChannel_InfoList_Item;
+static int ett_nbap_Common_EDCH_System_Information_ResponseFDD;
+static int ett_nbap_E_RNTI_List;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseList;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseList_Item;
+static int ett_nbap_Common_MACFlows_to_DeleteFDD;
+static int ett_nbap_Common_MACFlows_to_DeleteFDD_Item;
+static int ett_nbap_CommonMACFlow_Specific_InfoList;
+static int ett_nbap_CommonMACFlow_Specific_InfoItem;
+static int ett_nbap_CommonMACFlow_Specific_InfoList_Response;
+static int ett_nbap_CommonMACFlow_Specific_InfoItem_Response;
+static int ett_nbap_Common_MACFlow_PriorityQueue_Information;
+static int ett_nbap_Common_MACFlow_PriorityQueue_Item;
+static int ett_nbap_CommonMeasurementAccuracy;
+static int ett_nbap_CommonMeasurementValue;
+static int ett_nbap_CommonMeasurementValueInformation;
+static int ett_nbap_CommonMeasurementAvailable;
+static int ett_nbap_Common_PhysicalChannel_Status_Information;
+static int ett_nbap_Common_PhysicalChannel_Status_Information768;
+static int ett_nbap_CommonTransportChannel_InformationResponse;
+static int ett_nbap_Common_TransportChannel_Status_Information;
+static int ett_nbap_ContinuousPacketConnectivityDTX_DRX_Information;
+static int ett_nbap_ContinuousPacketConnectivityDTX_DRX_Information_to_Modify;
+static int ett_nbap_ContinuousPacketConnectivityHS_SCCH_less_Information;
+static int ett_nbap_ContinuousPacketConnectivityHS_SCCH_less_InformationItem;
+static int ett_nbap_ContinuousPacketConnectivityHS_SCCH_less_Information_Response;
+static int ett_nbap_CPC_Information;
+static int ett_nbap_CriticalityDiagnostics;
+static int ett_nbap_CriticalityDiagnostics_IE_List;
+static int ett_nbap_CriticalityDiagnostics_IE_List_item;
+static int ett_nbap_Common_EDCH_System_InformationLCR;
+static int ett_nbap_Common_E_PUCH_InformationLCR;
+static int ett_nbap_PRXdes_base_perURAFCN;
+static int ett_nbap_PRXdes_base_Item;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoListLCR;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoList_ItemLCR;
+static int ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoListLCR;
+static int ett_nbap_Common_E_DCH_MACdFlow_Specific_InfoList_ItemLCR;
+static int ett_nbap_Common_EDCH_System_Information_ResponseLCR;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseListLCR;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseListLCR_Ext;
+static int ett_nbap_Ul_common_E_DCH_MACflow_Specific_InfoResponseList_ItemLCR;
+static int ett_nbap_Common_E_AGCH_ListLCR;
+static int ett_nbap_Common_E_AGCH_ItemLCR;
+static int ett_nbap_Common_E_HICH_ListLCR;
+static int ett_nbap_Common_E_HICH_ItemLCR;
+static int ett_nbap_Common_E_RNTI_Info_LCR;
+static int ett_nbap_Common_E_RNTI_Info_ItemLCR;
+static int ett_nbap_Common_MACFlows_to_DeleteLCR;
+static int ett_nbap_Common_MACFlows_to_DeleteLCR_Item;
+static int ett_nbap_CommonMACFlow_Specific_InfoListLCR;
+static int ett_nbap_CommonMACFlow_Specific_InfoItemLCR;
+static int ett_nbap_Common_H_RNTI_InformationLCR;
+static int ett_nbap_Common_H_RNTI_InfoItemLCR;
+static int ett_nbap_Sync_InformationLCR;
+static int ett_nbap_CommonMACFlow_Specific_InfoList_ResponseLCR;
+static int ett_nbap_CommonMACFlow_Specific_InfoItem_ResponseLCR;
+static int ett_nbap_CPC_InformationLCR;
+static int ett_nbap_ContinuousPacketConnectivity_DRX_InformationLCR;
+static int ett_nbap_HS_SCCH_DRX_Information_LCR;
+static int ett_nbap_E_AGCH_DRX_Information_LCR;
+static int ett_nbap_E_AGCH_DRX_Parameters;
+static int ett_nbap_ContinuousPacketConnectivity_DRX_Information_to_Modify_LCR;
+static int ett_nbap_DRX_Information_to_Modify_LCR;
+static int ett_nbap_DRX_Information_to_Modify_Items_LCR;
+static int ett_nbap_ContinuousPacketConnectivity_DRX_Information_ResponseLCR;
+static int ett_nbap_HS_SCCH_DRX_Information_ResponseLCR;
+static int ett_nbap_E_AGCH_DRX_Information_ResponseLCR;
+static int ett_nbap_E_AGCH_DRX_Parameters_Response;
+static int ett_nbap_DCH_FDD_Information;
+static int ett_nbap_DCH_FDD_InformationItem;
+static int ett_nbap_DCH_Specific_FDD_InformationList;
+static int ett_nbap_DCH_Specific_FDD_Item;
+static int ett_nbap_DCH_InformationResponse;
+static int ett_nbap_DCH_InformationResponseItem;
+static int ett_nbap_DCH_MeasurementOccasion_Information;
+static int ett_nbap_DchMeasurementOccasionInformation_Item;
+static int ett_nbap_Measurement_Occasion_Pattern_Sequence_parameters;
+static int ett_nbap_DCH_TDD_Information;
+static int ett_nbap_DCH_TDD_InformationItem;
+static int ett_nbap_DCH_Specific_TDD_InformationList;
+static int ett_nbap_DCH_Specific_TDD_Item;
+static int ett_nbap_FDD_DCHs_to_Modify;
+static int ett_nbap_FDD_DCHs_to_ModifyItem;
+static int ett_nbap_DCH_ModifySpecificInformation_FDD;
+static int ett_nbap_DCH_ModifySpecificItem_FDD;
+static int ett_nbap_TDD_DCHs_to_Modify;
+static int ett_nbap_DCH_ModifyItem_TDD;
+static int ett_nbap_DCH_ModifySpecificInformation_TDD;
+static int ett_nbap_DCH_ModifySpecificItem_TDD;
+static int ett_nbap_DedicatedChannelsCapacityConsumptionLaw;
+static int ett_nbap_DedicatedChannelsCapacityConsumptionLaw_item;
+static int ett_nbap_DedicatedMeasurementValue;
+static int ett_nbap_DedicatedMeasurementValueInformation;
+static int ett_nbap_DedicatedMeasurementAvailable;
+static int ett_nbap_DelayedActivation;
+static int ett_nbap_DelayedActivationUpdate;
+static int ett_nbap_Activate_Info;
+static int ett_nbap_Deactivate_Info;
+static int ett_nbap_Execution_Type;
+static int ett_nbap_DGANSSCorrections;
+static int ett_nbap_DGANSS_Corrections_Req;
+static int ett_nbap_DGANSS_Information;
+static int ett_nbap_DGANSS_InformationItem;
+static int ett_nbap_DGANSS_SignalInformation;
+static int ett_nbap_DGANSS_SignalInformationItem;
+static int ett_nbap_DGANSSThreshold;
+static int ett_nbap_DGNSS_ValidityPeriod;
+static int ett_nbap_DGPSCorrections;
+static int ett_nbap_DGPSThresholds;
+static int ett_nbap_DL_Timeslot_Information;
+static int ett_nbap_DL_Timeslot_InformationItem;
+static int ett_nbap_DL_TimeslotLCR_Information;
+static int ett_nbap_DL_TimeslotLCR_InformationItem;
+static int ett_nbap_DL_Timeslot768_Information;
+static int ett_nbap_DL_Timeslot768_InformationItem;
+static int ett_nbap_DL_PowerBalancing_Information;
+static int ett_nbap_DL_ReferencePowerInformationList;
+static int ett_nbap_DL_ReferencePowerInformationItem;
+static int ett_nbap_DL_TimeslotISCPInfo;
+static int ett_nbap_DL_TimeslotISCPInfoItem;
+static int ett_nbap_DL_TimeslotISCPInfoLCR;
+static int ett_nbap_DL_TimeslotISCPInfoItemLCR;
+static int ett_nbap_DL_HS_PDSCH_Timeslot_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_DL_HS_PDSCH_Timeslot_InformationItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_MaxHSDSCH_HSSCCH_Power_per_CELLPORTION;
+static int ett_nbap_MaxHSDSCH_HSSCCH_Power_per_CELLPORTION_Item;
+static int ett_nbap_DL_HS_PDSCH_Codelist_LCR_PSCH_ReconfRqst;
+static int ett_nbap_DRX_Information;
+static int ett_nbap_DRX_Information_to_Modify;
+static int ett_nbap_DRX_Information_to_Modify_Items;
+static int ett_nbap_DSCH_InformationResponse;
+static int ett_nbap_DSCH_InformationResponseItem;
+static int ett_nbap_DSCH_TDD_Information;
+static int ett_nbap_DSCH_TDD_InformationItem;
+static int ett_nbap_DTX_Cycle_2ms_Items;
+static int ett_nbap_DTX_Cycle_2ms_to_Modify_Items;
+static int ett_nbap_DTX_Cycle_10ms_Items;
+static int ett_nbap_DTX_Cycle_10ms_to_Modify_Items;
+static int ett_nbap_DTX_Information;
+static int ett_nbap_DTX_Information_to_Modify;
+static int ett_nbap_DTX_Information_to_Modify_Items;
+static int ett_nbap_Dual_Band_Capability_Info;
+static int ett_nbap_E_AGCH_FDD_Code_Information;
+static int ett_nbap_E_AGCH_FDD_Code_List;
+static int ett_nbap_E_DCHCapacityConsumptionLaw;
+static int ett_nbap_E_DCH_TDD_CapacityConsumptionLaw;
+static int ett_nbap_E_DCH_SF_allocation;
+static int ett_nbap_E_DCH_SF_allocation_item;
+static int ett_nbap_E_DCH_FDD_DL_Control_Channel_Information;
+static int ett_nbap_E_DCH_FDD_Information;
+static int ett_nbap_E_DCH_FDD_Information_Response;
+static int ett_nbap_E_DCH_FDD_Information_to_Modify;
+static int ett_nbap_E_DCH_FDD_Update_Information;
+static int ett_nbap_E_DCH_MACdFlow_Specific_UpdateInformation;
+static int ett_nbap_E_DCH_MACdFlow_Specific_UpdateInformation_Item;
+static int ett_nbap_E_DCH_DL_Control_Channel_Change_Information;
+static int ett_nbap_E_DCH_DL_Control_Channel_Change_Information_Item;
+static int ett_nbap_E_DCH_DL_Control_Channel_Grant_Information;
+static int ett_nbap_E_DCH_DL_Control_Channel_Grant_Information_Item;
+static int ett_nbap_E_DCH_Grant_Type_Information;
+static int ett_nbap_E_DCH_LogicalChannelInformation;
+static int ett_nbap_E_DCH_LogicalChannelInformationItem;
+static int ett_nbap_E_DCH_MACdPDU_SizeList;
+static int ett_nbap_E_DCH_MACdPDU_SizeListItem;
+static int ett_nbap_E_DCH_LogicalChannelToModify;
+static int ett_nbap_E_DCH_LogicalChannelToModifyItem;
+static int ett_nbap_E_DCH_MACdPDU_SizeToModifyList;
+static int ett_nbap_E_DCH_LogicalChannelToDelete;
+static int ett_nbap_E_DCH_LogicalChannelToDeleteItem;
+static int ett_nbap_E_DCH_MACdFlows_Information;
+static int ett_nbap_E_DCH_MACdFlow_Specific_InfoList;
+static int ett_nbap_E_DCH_MACdFlow_Specific_InfoItem;
+static int ett_nbap_E_DCH_MACdFlow_Specific_InformationResp;
+static int ett_nbap_E_DCH_MACdFlow_Specific_InformationResp_Item;
+static int ett_nbap_E_DCH_MACdFlow_Specific_InfoList_to_Modify;
+static int ett_nbap_E_DCH_MACdFlow_Specific_InfoItem_to_Modify;
+static int ett_nbap_E_DCH_MACdFlows_to_Delete;
+static int ett_nbap_E_DCH_MACdFlow_to_Delete_Item;
+static int ett_nbap_E_DCH_Non_Scheduled_Transmission_Grant_Items;
+static int ett_nbap_E_DCH_Serving_Cell_Change_Info_Response;
+static int ett_nbap_E_DCH_serving_cell_choice;
+static int ett_nbap_E_DCH_serving_cell_change_successful;
+static int ett_nbap_E_DCH_RL_InformationList_Rsp;
+static int ett_nbap_E_DCH_RL_InformationList_Rsp_Item;
+static int ett_nbap_E_DCH_serving_cell_change_unsuccessful;
+static int ett_nbap_EDCH_RACH_Report_Value;
+static int ett_nbap_EDCH_RACH_Report_Value_item;
+static int ett_nbap_E_DCH_TTI_Length;
+static int ett_nbap_E_DCH_TTI_Length_to_Modify;
+static int ett_nbap_E_DCH_MACdFlows_to_DeleteLCR;
+static int ett_nbap_E_DCH_MACdFlow_to_Delete_ItemLCR;
+static int ett_nbap_Enhanced_UE_DRX_InformationLCR;
+static int ett_nbap_E_RGCH_E_HICH_FDD_Code_Information;
+static int ett_nbap_E_RGCH_E_HICH_FDD_Code_List;
+static int ett_nbap_E_TFCI_Boost_Information;
+static int ett_nbap_E_TFCS_Information;
+static int ett_nbap_E_DCHProvidedBitRate;
+static int ett_nbap_E_DCHProvidedBitRate_Item;
+static int ett_nbap_E_DCHProvidedBitRateValueInformation_For_CellPortion;
+static int ett_nbap_E_DCHProvidedBitRateValueInformation_For_CellPortion_Item;
+static int ett_nbap_E_DCH_Information;
+static int ett_nbap_E_PUCH_Information;
+static int ett_nbap_E_TFCS_Information_TDD;
+static int ett_nbap_E_DCH_QPSK_RefBetaInfo;
+static int ett_nbap_E_DCH_sixteenQAM_RefBetaInfo;
+static int ett_nbap_E_DCH_RefBeta_Item;
+static int ett_nbap_E_DCH_MACdFlows_Information_TDD;
+static int ett_nbap_E_DCH_MACdFlow_InfoTDDItem;
+static int ett_nbap_E_DCH_Non_Scheduled_Grant_Info;
+static int ett_nbap_E_DCH_TDD_Information;
+static int ett_nbap_E_DCH_Information_Response;
+static int ett_nbap_Scheduled_E_HICH_Specific_Information_ResponseLCRTDD;
+static int ett_nbap_Scheduled_E_HICH_Specific_InformationItem_ResponseLCRTDD;
+static int ett_nbap_E_DCH_TDD_MACdFlow_Specific_InformationResp;
+static int ett_nbap_E_DCH_TDD_MACdFlow_Specific_InformationResp_Item;
+static int ett_nbap_E_AGCH_Specific_InformationRespListTDD;
+static int ett_nbap_E_AGCH_Specific_InformationResp_ItemTDD;
+static int ett_nbap_E_DCH_Information_Reconfig;
+static int ett_nbap_E_DCH_TDD_Information_to_Modify;
+static int ett_nbap_E_DCH_TDD_Information_to_Modify_List;
+static int ett_nbap_E_DCH_MACdFlow_ModifyTDDItem;
+static int ett_nbap_E_DCH_768_Information;
+static int ett_nbap_E_DCH_Non_Scheduled_Grant_Info768;
+static int ett_nbap_E_DCH_TDD_Information768;
+static int ett_nbap_E_DCH_768_Information_Reconfig;
+static int ett_nbap_E_DCH_LCR_Information;
+static int ett_nbap_E_PUCH_LCR_Information;
+static int ett_nbap_E_DCH_Non_Scheduled_Grant_LCR_Info;
+static int ett_nbap_E_HICH_LCR_Information;
+static int ett_nbap_E_DCH_LCRTDD_Information;
+static int ett_nbap_E_DCH_LCR_Information_Reconfig;
+static int ett_nbap_Enhanced_UE_DRX_InformationFDD;
+static int ett_nbap_E_DCH_Semi_PersistentScheduling_Information_LCR;
+static int ett_nbap_E_DCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
+static int ett_nbap_E_DCH_Semi_PersistentScheduling_Information_ResponseLCR;
+static int ett_nbap_FDD_DL_CodeInformation;
+static int ett_nbap_FDD_DL_CodeInformationItem;
+static int ett_nbap_GANSS_AddClockModels;
+static int ett_nbap_GANSS_AddOrbitModels;
+static int ett_nbap_GANSS_Additional_Ionospheric_Model;
+static int ett_nbap_GANSS_Additional_Navigation_Models;
+static int ett_nbap_GANSS_Additional_Time_Models;
+static int ett_nbap_GANSS_Additional_UTC_Models;
+static int ett_nbap_GANSS_Almanac;
+static int ett_nbap_GANSS_AlmanacModel;
+static int ett_nbap_GANSS_ALM_ECEFsbasAlmanacSet;
+static int ett_nbap_GANSS_ALM_GlonassAlmanacSet;
+static int ett_nbap_GANSS_ALM_MidiAlmanacSet;
+static int ett_nbap_GANSS_ALM_NAVKeplerianSet;
+static int ett_nbap_GANSS_ALM_ReducedKeplerianSet;
+static int ett_nbap_GANSS_Auxiliary_Information;
+static int ett_nbap_GANSS_AuxInfoGANSS_ID1;
+static int ett_nbap_GANSS_AuxInfoGANSS_ID1_element;
+static int ett_nbap_GANSS_AuxInfoGANSS_ID3;
+static int ett_nbap_GANSS_AuxInfoGANSS_ID3_element;
+static int ett_nbap_GANSS_Clock_Model;
+static int ett_nbap_GANSS_CNAVclockModel;
+static int ett_nbap_GANSS_Common_Data;
+static int ett_nbap_GANSS_CommonDataInfoReq;
+static int ett_nbap_GANSS_Data_Bit_Assistance;
+static int ett_nbap_GANSS_DataBitAssistanceList;
+static int ett_nbap_GANSS_DataBitAssistanceItem;
+static int ett_nbap_GANSS_DataBitAssistanceSgnList;
+static int ett_nbap_GANSS_DataBitAssistanceSgnItem;
+static int ett_nbap_GANSS_Data_Bit_Assistance_ReqItem;
+static int ett_nbap_GANSS_Data_Bit_Assistance_ReqList;
+static int ett_nbap_T_ganss_SatelliteInfo;
+static int ett_nbap_GANSS_DeltaUT1;
+static int ett_nbap_GANSS_Earth_Orientation_Parameters;
+static int ett_nbap_GANSS_GenericDataInfoReqList;
+static int ett_nbap_GANSS_GenericDataInfoReqItem;
+static int ett_nbap_GANSS_Generic_Data;
+static int ett_nbap_GANSS_Generic_DataItem;
+static int ett_nbap_GANSS_GLONASSclockModel;
+static int ett_nbap_GANSS_Information;
+static int ett_nbap_GANSS_Ionospheric_Model;
+static int ett_nbap_GANSS_IonosphereRegionalStormFlags;
+static int ett_nbap_GANSS_KeplerianParametersAlm;
+static int ett_nbap_GANSS_KeplerianParametersOrb;
+static int ett_nbap_GANSS_NAVclockModel;
+static int ett_nbap_GANSS_Navigation_Model_And_Time_Recovery;
+static int ett_nbap_GANSS_NavModel_CNAVKeplerianSet;
+static int ett_nbap_GANSS_NavModel_GLONASSecef;
+static int ett_nbap_GANSS_NavModel_NAVKeplerianSet;
+static int ett_nbap_GANSS_NavModel_SBASecef;
+static int ett_nbap_GANSS_Orbit_Model;
+static int ett_nbap_GANSS_Real_Time_Integrity;
+static int ett_nbap_GANSS_RealTimeInformationItem;
+static int ett_nbap_GANSS_RX_Pos;
+static int ett_nbap_GANSS_SatelliteClockModelItem;
+static int ett_nbap_GANSS_SatelliteInformationKP;
+static int ett_nbap_GANSS_SatelliteInformationKPItem;
+static int ett_nbap_Ganss_Sat_Info_AddNavList;
+static int ett_nbap_Ganss_Sat_Info_AddNavList_item;
+static int ett_nbap_GANSS_SAT_Info_Almanac_GLOkpList;
+static int ett_nbap_GANSS_SAT_Info_Almanac_GLOkp;
+static int ett_nbap_GANSS_SAT_Info_Almanac_MIDIkpList;
+static int ett_nbap_GANSS_SAT_Info_Almanac_MIDIkp;
+static int ett_nbap_GANSS_SAT_Info_Almanac_NAVkpList;
+static int ett_nbap_GANSS_SAT_Info_Almanac_NAVkp;
+static int ett_nbap_GANSS_SAT_Info_Almanac_REDkpList;
+static int ett_nbap_GANSS_SAT_Info_Almanac_REDkp;
+static int ett_nbap_GANSS_SAT_Info_Almanac_SBASecefList;
+static int ett_nbap_GANSS_SAT_Info_Almanac_SBASecef;
+static int ett_nbap_GANSS_Sat_Info_Nav;
+static int ett_nbap_GANSS_Sat_Info_Nav_item;
+static int ett_nbap_GANSS_SBASclockModel;
+static int ett_nbap_GANSS_Time_Model;
+static int ett_nbap_GANSS_Transmission_Time;
+static int ett_nbap_GANSS_UTC_Model;
+static int ett_nbap_GANSS_UTCmodelSet1;
+static int ett_nbap_GANSS_UTCmodelSet2;
+static int ett_nbap_GANSS_UTCmodelSet3;
+static int ett_nbap_GPS_Almanac;
+static int ett_nbap_GPS_Ionospheric_Model;
+static int ett_nbap_GPS_Information;
+static int ett_nbap_GPS_RealTime_Integrity;
+static int ett_nbap_GPSBadSat_Info_RealTime_Integrity;
+static int ett_nbap_GPS_NavigationModel_and_TimeRecovery;
+static int ett_nbap_GPS_NavandRecovery_Item;
+static int ett_nbap_GPS_RX_POS;
+static int ett_nbap_GPS_UTC_Model;
+static int ett_nbap_HARQ_MemoryPartitioning;
+static int ett_nbap_HARQ_MemoryPartitioning_Implicit;
+static int ett_nbap_HARQ_MemoryPartitioning_Explicit;
+static int ett_nbap_HARQ_MemoryPartitioningList;
+static int ett_nbap_HARQ_MemoryPartitioningInfoExtForMIMO;
+static int ett_nbap_HARQ_MemoryPartitioningItem;
+static int ett_nbap_HS_DSCHProvidedBitRate;
+static int ett_nbap_HS_DSCHProvidedBitRate_Item;
+static int ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortion;
+static int ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortion_Item;
+static int ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortionLCR;
+static int ett_nbap_HS_DSCHProvidedBitRateValueInformation_For_CellPortionLCR_Item;
+static int ett_nbap_HS_DSCHRequiredPower;
+static int ett_nbap_HS_DSCHRequiredPower_Item;
+static int ett_nbap_HS_DSCHRequiredPowerPerUEInformation;
+static int ett_nbap_HS_DSCHRequiredPowerPerUEInformation_Item;
+static int ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortion;
+static int ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortion_Item;
+static int ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortionLCR;
+static int ett_nbap_HS_DSCHRequiredPowerValueInformation_For_CellPortionLCR_Item;
+static int ett_nbap_HSDPA_Associated_PICH_Information;
+static int ett_nbap_HSDPA_PICH_Shared_with_PCH;
+static int ett_nbap_HSDPA_PICH_notShared_with_PCH;
+static int ett_nbap_HSDSCH_Common_System_InformationFDD;
+static int ett_nbap_HSDSCH_Common_System_Information_ResponseFDD;
+static int ett_nbap_HSDSCH_Common_Information;
+static int ett_nbap_HSDSCH_FDD_Information;
+static int ett_nbap_HSDSCH_TDD_Information;
+static int ett_nbap_HSDSCH_Information_to_Modify;
+static int ett_nbap_HSDSCH_MACdFlow_Specific_InfoList_to_Modify;
+static int ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify;
+static int ett_nbap_HSDSCH_Information_to_Modify_Unsynchronised;
+static int ett_nbap_HSDSCH_FDD_Information_Response;
+static int ett_nbap_HS_DSCH_FDD_Secondary_Serving_Information;
+static int ett_nbap_HS_DSCH_FDD_Secondary_Serving_Information_Response;
+static int ett_nbap_HS_DSCH_Secondary_Serving_Information_To_Modify;
+static int ett_nbap_HS_DSCH_FDD_Secondary_Serving_Information_To_Modify_Unsynchronised;
+static int ett_nbap_HS_DSCH_FDD_Secondary_Serving_Update_Information;
+static int ett_nbap_HS_DSCH_Secondary_Serving_Cell_Change_Information_Response;
+static int ett_nbap_HS_DSCH_Secondary_Serving_cell_change_choice;
+static int ett_nbap_HS_Secondary_Serving_cell_change_successful;
+static int ett_nbap_HS_Secondary_Serving_cell_change_unsuccessful;
+static int ett_nbap_HSDSCH_Paging_System_InformationFDD;
+static int ett_nbap_HSDSCH_Paging_System_Information_ResponseFDD;
+static int ett_nbap_HSDSCH_Paging_System_Information_ResponseList;
+static int ett_nbap_HSDSCH_TDD_Information_Response;
+static int ett_nbap_HSDSCH_MACdFlow_Specific_InformationResp;
+static int ett_nbap_HSDSCH_MACdFlow_Specific_InformationResp_Item;
+static int ett_nbap_HSDSCH_MACdFlows_Information;
+static int ett_nbap_HSDSCH_MACdFlow_Specific_InfoList;
+static int ett_nbap_HSDSCH_MACdFlow_Specific_InfoItem;
+static int ett_nbap_HSDSCH_MACdFlows_to_Delete;
+static int ett_nbap_HSDSCH_MACdFlows_to_Delete_Item;
+static int ett_nbap_HSDSCH_Initial_Capacity_Allocation;
+static int ett_nbap_HSDSCH_Initial_Capacity_AllocationItem;
+static int ett_nbap_HSDSCH_PreconfigurationInfo;
+static int ett_nbap_Additional_EDCH_Preconfiguration_Information;
+static int ett_nbap_Additional_EDCH_Preconfiguration_Information_ItemIEs;
+static int ett_nbap_HSDSCH_PreconfigurationSetup;
+static int ett_nbap_HS_SCCH_PreconfiguredCodes;
+static int ett_nbap_HS_SCCH_PreconfiguredCodesItem;
+static int ett_nbap_HSSCCH_Specific_InformationRespListFDD;
+static int ett_nbap_HSSCCH_Codes;
+static int ett_nbap_HSSCCH_Specific_InformationRespListTDD;
+static int ett_nbap_HSSCCH_Specific_InformationRespItemTDD;
+static int ett_nbap_HSSCCH_Specific_InformationRespListTDDLCR;
+static int ett_nbap_HSSCCH_Specific_InformationRespItemTDDLCR;
+static int ett_nbap_HSSCCH_Specific_InformationRespListTDD768;
+static int ett_nbap_HSSCCH_Specific_InformationRespItemTDD768;
+static int ett_nbap_HSSICH_Info;
+static int ett_nbap_HSSICH_InfoLCR;
+static int ett_nbap_HSSICH_Info768;
+static int ett_nbap_HS_SICH_Reception_Quality_Value;
+static int ett_nbap_HS_PDSCH_FDD_Code_Information;
+static int ett_nbap_HS_SCCH_FDD_Code_Information;
+static int ett_nbap_HS_SCCH_FDD_Code_List;
+static int ett_nbap_HS_DSCH_Serving_Cell_Change_Info;
+static int ett_nbap_HS_DSCH_Serving_Cell_Change_Info_Response;
+static int ett_nbap_HS_DSCH_serving_cell_choice;
+static int ett_nbap_HS_serving_cell_change_successful;
+static int ett_nbap_HS_serving_cell_change_unsuccessful;
+static int ett_nbap_HSDSCH_FDD_Update_Information;
+static int ett_nbap_HSDSCH_TDD_Update_Information;
+static int ett_nbap_HSDPA_Associated_PICH_InformationLCR;
+static int ett_nbap_HSDPA_PICH_notShared_with_PCHLCR;
+static int ett_nbap_HSDSCH_Common_System_InformationLCR;
+static int ett_nbap_HSDSCH_Common_System_Information_ResponseLCR;
+static int ett_nbap_HSDSCH_Common_InformationLCR;
+static int ett_nbap_HSDSCH_Paging_System_InformationLCR;
+static int ett_nbap_HSDSCH_Paging_System_Information_ResponseLCR;
+static int ett_nbap_HSDSCH_Paging_System_Information_ResponseListLCR;
+static int ett_nbap_HSSCCH_Specific_InformationRespListLCR;
+static int ett_nbap_HSSCCH_Specific_InformationRespItemLCR;
+static int ett_nbap_HS_DSCH_Semi_PersistentScheduling_Information_LCR;
+static int ett_nbap_Transport_Block_Size_List_LCR;
+static int ett_nbap_Transport_Block_Size_Item_LCR;
+static int ett_nbap_Repetition_Period_List_LCR;
+static int ett_nbap_Repetition_Period_Item_LCR;
+static int ett_nbap_HS_DSCH_SPS_Operation_Indicator;
+static int ett_nbap_HS_DSCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
+static int ett_nbap_HS_DSCH_Semi_PersistentScheduling_Information_ResponseLCR;
+static int ett_nbap_HS_SICH_InformationList_for_HS_DSCH_SPS;
+static int ett_nbap_HS_SICH_InformationItem_for_HS_DSCH_SPS;
+static int ett_nbap_HS_SICH_Type;
+static int ett_nbap_HS_SCCH_Associated_HS_SICH;
+static int ett_nbap_Non_HS_SCCH_Associated_HS_SICH;
+static int ett_nbap_Initial_HS_PDSCH_SPS_Resource;
+static int ett_nbap_Add_To_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Non_HS_SCCH_Associated_HS_SICH_InformationList;
+static int ett_nbap_Non_HS_SCCH_Associated_HS_SICH_InformationList_Ext;
+static int ett_nbap_Non_HS_SCCH_Associated_HS_SICH_InformationItem;
+static int ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_InformationList;
+static int ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_InformationList_Ext;
+static int ett_nbap_Modify_Non_HS_SCCH_Associated_HS_SICH_InformationItem;
+static int ett_nbap_Delete_From_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Delete_From_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqst_Ext;
+static int ett_nbap_Delete_From_Non_HS_SCCH_Associated_HS_SICH_Resource_Pool_LCR_PSCH_ReconfRqstItem;
+static int ett_nbap_MIMO_ReferenceSignal_InformationListLCR;
+static int ett_nbap_HSSICH_ReferenceSignal_InformationLCR;
+static int ett_nbap_HSSICH_ReferenceSignal_InformationModifyLCR;
+static int ett_nbap_IMB_Parameters;
+static int ett_nbap_InformationReportCharacteristics;
+static int ett_nbap_InformationReportCharacteristicsType_ReportPeriodicity;
+static int ett_nbap_InformationReportCharacteristicsType_OnModification;
+static int ett_nbap_InformationThresholds;
+static int ett_nbap_InformationType;
+static int ett_nbap_IPDL_FDD_Parameters;
+static int ett_nbap_IPDL_TDD_Parameters;
+static int ett_nbap_IPDL_TDD_Parameters_LCR;
+static int ett_nbap_IPMulticastIndication;
+static int ett_nbap_BurstModeParams;
+static int ett_nbap_IdleIntervalInformation;
+static int ett_nbap_LCRTDD_Uplink_Physical_Channel_Capability;
+static int ett_nbap_MACdPDU_Size_Indexlist;
+static int ett_nbap_MACdPDU_Size_IndexItem;
+static int ett_nbap_MACdPDU_Size_Indexlist_to_Modify;
+static int ett_nbap_MACdPDU_Size_IndexItem_to_Modify;
+static int ett_nbap_Max_TB_Sizes;
+static int ett_nbap_MessageStructure;
+static int ett_nbap_MessageStructure_item;
+static int ett_nbap_MidambleShiftAndBurstType;
+static int ett_nbap_Type1;
+static int ett_nbap_MidambleAllocationMode1;
+static int ett_nbap_Type2;
+static int ett_nbap_MidambleAllocationMode2;
+static int ett_nbap_Type3;
+static int ett_nbap_MidambleAllocationMode3;
+static int ett_nbap_MidambleShiftLCR;
+static int ett_nbap_MidambleShiftAndBurstType768;
+static int ett_nbap_Type7681;
+static int ett_nbap_MidambleAllocationMode7681;
+static int ett_nbap_Type7682;
+static int ett_nbap_MidambleAllocationMode7682;
+static int ett_nbap_Type7683;
+static int ett_nbap_MidambleAllocationMode7683;
+static int ett_nbap_MIMO_PilotConfiguration;
+static int ett_nbap_MIMO_PilotConfigurationExtension;
+static int ett_nbap_ModifyPriorityQueue;
+static int ett_nbap_ModulationPO_MBSFN;
+static int ett_nbap_MultipleFreq_HARQ_MemoryPartitioning_InformationList;
+static int ett_nbap_MultipleFreq_HARQ_MemoryPartitioning_InformationItem;
+static int ett_nbap_MultipleFreq_HSPDSCH_InformationList_ResponseTDDLCR;
+static int ett_nbap_MultipleFreq_HSPDSCH_InformationItem_ResponseTDDLCR;
+static int ett_nbap_Multi_Cell_Capability_Info;
+static int ett_nbap_Multicell_EDCH_InformationItemIEs;
+static int ett_nbap_Multicell_EDCH_RL_Specific_InformationItemIEs;
+static int ett_nbap_NeighbouringCellMeasurementInformation;
+static int ett_nbap_NeighbouringCellMeasurementInformation_item;
+static int ett_nbap_NeighbouringFDDCellMeasurementInformation;
+static int ett_nbap_NeighbouringTDDCellMeasurementInformation;
+static int ett_nbap_NeighbouringTDDCellMeasurementInformationLCR;
+static int ett_nbap_NeighbouringTDDCellMeasurementInformation768;
+static int ett_nbap_NI_Information;
+static int ett_nbap_NormalAndDiversityPrimaryCPICHContainer;
+static int ett_nbap_Paging_MACFlows_to_DeleteFDD;
+static int ett_nbap_Paging_MACFlows_to_DeleteFDD_Item;
+static int ett_nbap_Paging_MACFlow_Specific_Information;
+static int ett_nbap_Paging_MAC_Flow_Specific_Information_Item;
+static int ett_nbap_Paging_MACFlow_PriorityQueue_Information;
+static int ett_nbap_Paging_MACFlow_PriorityQueue_Item;
+static int ett_nbap_PLCCHinformation;
+static int ett_nbap_Possible_Secondary_Serving_Cell_List;
+static int ett_nbap_Possible_Secondary_Serving_Cell;
+static int ett_nbap_PreambleSignatures;
+static int ett_nbap_PrimaryAndSecondaryCPICHContainer;
+static int ett_nbap_Priority_Queue_Information_for_Enhanced_FACH_PCH;
+static int ett_nbap_PriorityQueue_InfoList;
+static int ett_nbap_PriorityQueue_InfoItem;
+static int ett_nbap_PriorityQueue_InfoList_to_Modify;
+static int ett_nbap_PriorityQueue_InfoItem_to_Add;
+static int ett_nbap_PriorityQueue_InfoItem_to_Modify;
+static int ett_nbap_PriorityQueue_InfoList_to_Modify_Unsynchronised;
+static int ett_nbap_PriorityQueue_InfoItem_to_Modify_Unsynchronised;
+static int ett_nbap_UE_Selected_MBMS_Service_Information;
+static int ett_nbap_Selected_MBMS_Service;
+static int ett_nbap_Selected_MBMS_Service_List;
+static int ett_nbap_Selected_MBMS_Service_Item;
+static int ett_nbap_Selected_MBMS_Service_TimeSlot_Information_LCR;
+static int ett_nbap_MBMS_Service_TDM_Information;
+static int ett_nbap_Paging_MACFlow_Specific_InformationLCR;
+static int ett_nbap_Paging_MAC_Flow_Specific_Information_ItemLCR;
+static int ett_nbap_Paging_MACFlows_to_DeleteLCR;
+static int ett_nbap_Paging_MACFlows_to_DeleteLCR_Item;
+static int ett_nbap_RACH_SubChannelNumbers;
+static int ett_nbap_RL_Specific_DCH_Info;
+static int ett_nbap_RL_Specific_DCH_Info_Item;
+static int ett_nbap_RL_Specific_E_DCH_Info;
+static int ett_nbap_RL_Specific_E_DCH_Information;
+static int ett_nbap_RL_Specific_E_DCH_Information_Item;
+static int ett_nbap_Reference_E_TFCI_Information;
+static int ett_nbap_Reference_E_TFCI_Information_Item;
+static int ett_nbap_ReportCharacteristics;
+static int ett_nbap_ReportCharacteristicsType_EventA;
+static int ett_nbap_ReportCharacteristicsType_EventB;
+static int ett_nbap_ReportCharacteristicsType_EventC;
+static int ett_nbap_ReportCharacteristicsType_EventD;
+static int ett_nbap_ReportCharacteristicsType_EventE;
+static int ett_nbap_ReportCharacteristicsType_EventF;
+static int ett_nbap_ReportCharacteristicsType_OnModification;
+static int ett_nbap_ReportCharacteristicsType_MeasurementIncreaseDecreaseThreshold;
+static int ett_nbap_EDCH_RACH_Report_IncrDecrThres;
+static int ett_nbap_ReportCharacteristicsType_MeasurementThreshold;
+static int ett_nbap_EDCH_RACH_Report_ThresholdInformation;
+static int ett_nbap_ReportCharacteristicsType_ScaledMeasurementChangeTime;
+static int ett_nbap_ReportCharacteristicsType_ScaledMeasurementHysteresisTime;
+static int ett_nbap_ReportCharacteristicsType_ReportPeriodicity;
+static int ett_nbap_Received_total_wide_band_power_For_CellPortion_Value;
+static int ett_nbap_Received_total_wide_band_power_For_CellPortion_Value_Item;
+static int ett_nbap_Received_total_wide_band_power_For_CellPortion_ValueLCR;
+static int ett_nbap_Received_total_wide_band_power_For_CellPortion_ValueLCR_Item;
+static int ett_nbap_Received_Scheduled_EDCH_Power_Share_For_CellPortion_Value;
+static int ett_nbap_Received_Scheduled_EDCH_Power_Share_For_CellPortion_Value_Item;
+static int ett_nbap_Received_Scheduled_EDCH_Power_Share_Value;
+static int ett_nbap_RequestedDataValueInformation;
+static int ett_nbap_InformationAvailable;
+static int ett_nbap_RequestedDataValue;
+static int ett_nbap_SAT_Info_Almanac;
+static int ett_nbap_SAT_Info_Almanac_Item;
+static int ett_nbap_SAT_Info_Almanac_ExtList;
+static int ett_nbap_SAT_Info_Almanac_ExtItem;
+static int ett_nbap_SAT_Info_DGPSCorrections;
+static int ett_nbap_SAT_Info_DGPSCorrections_Item;
+static int ett_nbap_SATInfo_RealTime_Integrity;
+static int ett_nbap_SAT_Info_RealTime_Integrity_Item;
+static int ett_nbap_SecondaryServingCells;
+static int ett_nbap_SecondaryServingCellsItem;
+static int ett_nbap_Secondary_CPICH_Information_Change;
+static int ett_nbap_Serving_E_DCH_RL_ID;
+static int ett_nbap_Serving_E_DCH_RL_in_this_NodeB;
+static int ett_nbap_SetsOfHS_SCCH_Codes;
+static int ett_nbap_SetsOfHS_SCCH_CodesItem;
+static int ett_nbap_Setup_Or_ConfigurationChange_Or_Removal_Of_EDCH_On_secondary_UL_Frequency;
+static int ett_nbap_SFNSFNMeasurementThresholdInformation;
+static int ett_nbap_SFNSFNMeasurementValueInformation;
+static int ett_nbap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
+static int ett_nbap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
+static int ett_nbap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
+static int ett_nbap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
+static int ett_nbap_SFNSFNTimeStampInformation;
+static int ett_nbap_SFNSFNTimeStamp_TDD;
+static int ett_nbap_SFNSFNValue;
+static int ett_nbap_SynchronisationReportCharacteristics;
+static int ett_nbap_SynchronisationReportCharactThreExc;
+static int ett_nbap_SynchronisationReportCharactThreInfoItem;
+static int ett_nbap_SEQUENCE_SIZE_1_maxNrOfReceptsPerSyncFrame_OF_SynchronisationReportCharactCellSyncBurstInfoItem;
+static int ett_nbap_SynchronisationReportCharactCellSyncBurstInfoItem;
+static int ett_nbap_SyncDLCodeIdThreInfoLCR;
+static int ett_nbap_SyncDLCodeIdThreInfoList;
+static int ett_nbap_SyncDLCodeInfoListLCR;
+static int ett_nbap_SyncDLCodeInfoItemLCR;
+static int ett_nbap_TDD_ChannelisationCodeLCR;
+static int ett_nbap_TDD_DL_Code_Information;
+static int ett_nbap_TDD_DL_Code_InformationItem;
+static int ett_nbap_TDD_DL_Code_LCR_Information;
+static int ett_nbap_TDD_DL_Code_LCR_InformationItem;
+static int ett_nbap_TDD_DL_Code_768_Information;
+static int ett_nbap_TDD_DL_Code_768_InformationItem;
+static int ett_nbap_TDD_DL_DPCH_TimeSlotFormat_LCR;
+static int ett_nbap_TDD_DPCHOffset;
+static int ett_nbap_TransportFormatCombination_Beta;
+static int ett_nbap_T_signalledGainFactors;
+static int ett_nbap_T_gainFactor;
+static int ett_nbap_T_fdd;
+static int ett_nbap_TDD_UL_Code_Information;
+static int ett_nbap_TDD_UL_Code_InformationItem;
+static int ett_nbap_TDD_UL_Code_LCR_Information;
+static int ett_nbap_TDD_UL_Code_LCR_InformationItem;
+static int ett_nbap_TDD_UL_Code_768_Information;
+static int ett_nbap_TDD_UL_Code_768_InformationItem;
+static int ett_nbap_TDD_UL_DPCH_TimeSlotFormat_LCR;
+static int ett_nbap_TFCI_SignallingMode;
+static int ett_nbap_TimeSlot_InitiatedListLCR;
+static int ett_nbap_TimeSlotMeasurementValueListLCR;
+static int ett_nbap_TimeSlotMeasurementValueLCR;
+static int ett_nbap_TimingAdjustmentValue;
+static int ett_nbap_TimingAdjustmentValueLCR;
+static int ett_nbap_TnlQos;
+static int ett_nbap_Transmission_Gap_Pattern_Sequence_Information;
+static int ett_nbap_Transmission_Gap_Pattern_Sequence_Information_item;
+static int ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCH_E_RGCHOrE_HICHTransmissionCellPortionValue;
+static int ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCH_E_RGCHOrE_HICHTransmissionCellPortionValue_Item;
+static int ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCHOrE_HICHTransmissionCellPortionValue;
+static int ett_nbap_TransmittedCarrierPowerOfAllCodesNotUsedForHS_PDSCH_HS_SCCH_E_AGCHOrE_HICHTransmissionCellPortionValue_Item;
+static int ett_nbap_Transmitted_Carrier_Power_For_CellPortion_Value;
+static int ett_nbap_Transmitted_Carrier_Power_For_CellPortion_Value_Item;
+static int ett_nbap_Transmitted_Carrier_Power_For_CellPortion_ValueLCR;
+static int ett_nbap_Transmitted_Carrier_Power_For_CellPortion_ValueLCR_Item;
+static int ett_nbap_TFCS;
+static int ett_nbap_T_tFCSvalues;
+static int ett_nbap_TFCS_TFCSList;
+static int ett_nbap_TFCS_TFCSList_item;
+static int ett_nbap_TFCS_CTFC;
+static int ett_nbap_Transport_Block_Size_List;
+static int ett_nbap_Transport_Block_Size_List_item;
+static int ett_nbap_TransportFormatSet;
+static int ett_nbap_TransportFormatSet_DynamicPartList;
+static int ett_nbap_TransportFormatSet_DynamicPartList_item;
+static int ett_nbap_TDD_TransportFormatSet_ModeDP;
+static int ett_nbap_TransmissionTimeIntervalInformation;
+static int ett_nbap_TransmissionTimeIntervalInformation_item;
+static int ett_nbap_TransportFormatSet_Semi_staticPart;
+static int ett_nbap_TransportFormatSet_ModeDP;
+static int ett_nbap_TransportFormatSet_ModeSSP;
+static int ett_nbap_TUTRANGANSS;
+static int ett_nbap_TUTRANGANSSMeasurementThresholdInformation;
+static int ett_nbap_TUTRANGANSSMeasurementValueInformation;
+static int ett_nbap_TUTRANGPS;
+static int ett_nbap_TUTRANGPSMeasurementThresholdInformation;
+static int ett_nbap_TUTRANGPSMeasurementValueInformation;
+static int ett_nbap_UC_Id;
+static int ett_nbap_UE_AggregateMaximumBitRate;
+static int ett_nbap_UE_Capability_Information;
+static int ett_nbap_UL_Timeslot_Information;
+static int ett_nbap_UL_Timeslot_InformationItem;
+static int ett_nbap_UL_TimeslotLCR_Information;
+static int ett_nbap_UL_TimeslotLCR_InformationItem;
+static int ett_nbap_UL_Timeslot768_Information;
+static int ett_nbap_UL_Timeslot768_InformationItem;
+static int ett_nbap_UL_ScramblingCode;
+static int ett_nbap_UL_Synchronisation_Parameters_LCR;
+static int ett_nbap_UL_TimeSlot_ISCP_Info;
+static int ett_nbap_UL_TimeSlot_ISCP_InfoItem;
+static int ett_nbap_UL_TimeSlot_ISCP_LCR_Info;
+static int ett_nbap_UL_TimeSlot_ISCP_LCR_InfoItem;
+static int ett_nbap_UpPTSInterference_For_CellPortion_Value;
+static int ett_nbap_UpPTSInterference_For_CellPortion_Value_Item;
+static int ett_nbap_USCH_Information;
+static int ett_nbap_USCH_InformationItem;
+static int ett_nbap_USCH_InformationResponse;
+static int ett_nbap_USCH_InformationResponseItem;
+static int ett_nbap_UL_TimeslotISCP_For_CellPortion_Value;
+static int ett_nbap_UL_TimeslotISCP_For_CellPortion_Value_Item;
+static int ett_nbap_CommonTransportChannelSetupRequestFDD;
+static int ett_nbap_CommonPhysicalChannelType_CTCH_SetupRqstFDD;
+static int ett_nbap_Secondary_CCPCH_CTCH_SetupRqstFDD;
+static int ett_nbap_PowerOffsetInformation_CTCH_SetupRqstFDD;
+static int ett_nbap_FACH_ParametersListIE_CTCH_SetupRqstFDD;
+static int ett_nbap_FACH_ParametersItem_CTCH_SetupRqstFDD;
+static int ett_nbap_PCH_ParametersItem_CTCH_SetupRqstFDD;
+static int ett_nbap_PICH_Parameters_CTCH_SetupRqstFDD;
+static int ett_nbap_MICH_Parameters_CTCH_SetupRqstFDD;
+static int ett_nbap_PRACH_CTCH_SetupRqstFDD;
+static int ett_nbap_AllowedSlotFormatInformationList_CTCH_SetupRqstFDD;
+static int ett_nbap_AllowedSlotFormatInformationItem_CTCH_SetupRqstFDD;
+static int ett_nbap_RACH_ParametersItem_CTCH_SetupRqstFDD;
+static int ett_nbap_AICH_Parameters_CTCH_SetupRqstFDD;
+static int ett_nbap_CommonTransportChannelSetupRequestTDD;
+static int ett_nbap_CommonPhysicalChannelType_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_parameterListIE_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_parameterItem_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_LCR_parameterList_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_LCR_parameterItem_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_768_parameterList_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_768_parameterItem_CTCH_SetupRqstTDD;
+static int ett_nbap_FACH_ParametersListIE_CTCH_SetupRqstTDD;
+static int ett_nbap_FACH_ParametersItem_CTCH_SetupRqstTDD;
+static int ett_nbap_PCH_ParametersItem_CTCH_SetupRqstTDD;
+static int ett_nbap_PICH_ParametersItem_CTCH_SetupRqstTDD;
+static int ett_nbap_PICH_LCR_Parameters_CTCH_SetupRqstTDD;
+static int ett_nbap_PICH_768_ParametersItem_CTCH_SetupRqstTDD;
+static int ett_nbap_MICH_Parameters_CTCH_SetupRqstTDD;
+static int ett_nbap_MICH_TDDOption_Specific_Parameters_CTCH_SetupRqstTDD;
+static int ett_nbap_MICH_HCR_Parameters_CTCH_SetupRqstTDD;
+static int ett_nbap_MICH_LCR_Parameters_CTCH_SetupRqstTDD;
+static int ett_nbap_MICH_768_Parameters_CTCH_SetupRqstTDD;
+static int ett_nbap_TimeSlotConfigurationList_LCR_CTCH_SetupRqstTDD;
+static int ett_nbap_TimeSlotConfigurationItem_LCR_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_parameterExtendedList_CTCH_SetupRqstTDD;
+static int ett_nbap_Secondary_CCPCH_LCR_parameterExtendedList_CTCH_SetupRqstTDD;
+static int ett_nbap_PRACH_CTCH_SetupRqstTDD;
+static int ett_nbap_PRACH_ParametersItem_CTCH_SetupRqstTDD;
+static int ett_nbap_RACH_ParameterItem_CTCH_SetupRqstTDD;
+static int ett_nbap_PRACH_LCR_ParametersList_CTCH_SetupRqstTDD;
+static int ett_nbap_PRACH_LCR_ParametersItem_CTCH_SetupRqstTDD;
+static int ett_nbap_PRACH_768_ParametersItem_CTCH_SetupRqstTDD;
+static int ett_nbap_FPACH_LCR_Parameters_CTCH_SetupRqstTDD;
+static int ett_nbap_PLCCH_parameters;
+static int ett_nbap_E_RUCCH_parameters;
+static int ett_nbap_E_RUCCH_768_parameters;
+static int ett_nbap_CommonTransportChannelSetupResponse;
+static int ett_nbap_FACH_CommonTransportChannel_InformationResponse;
+static int ett_nbap_CommonTransportChannelSetupFailure;
+static int ett_nbap_CommonTransportChannelReconfigurationRequestFDD;
+static int ett_nbap_CommonPhysicalChannelType_CTCH_ReconfRqstFDD;
+static int ett_nbap_Secondary_CCPCHList_CTCH_ReconfRqstFDD;
+static int ett_nbap_FACH_ParametersListIE_CTCH_ReconfRqstFDD;
+static int ett_nbap_FACH_ParametersItem_CTCH_ReconfRqstFDD;
+static int ett_nbap_PCH_ParametersItem_CTCH_ReconfRqstFDD;
+static int ett_nbap_PICH_ParametersItem_CTCH_ReconfRqstFDD;
+static int ett_nbap_MICH_Parameters_CTCH_ReconfRqstFDD;
+static int ett_nbap_PRACHList_CTCH_ReconfRqstFDD;
+static int ett_nbap_PRACH_ParametersListIE_CTCH_ReconfRqstFDD;
+static int ett_nbap_PRACH_ParametersItem_CTCH_ReconfRqstFDD;
+static int ett_nbap_AllowedSlotFormatInformationList_CTCH_ReconfRqstFDD;
+static int ett_nbap_AllowedSlotFormatInformationItem_CTCH_ReconfRqstFDD;
+static int ett_nbap_AICH_ParametersListIE_CTCH_ReconfRqstFDD;
+static int ett_nbap_AICH_ParametersItem_CTCH_ReconfRqstFDD;
+static int ett_nbap_CommonTransportChannelReconfigurationRequestTDD;
+static int ett_nbap_Secondary_CCPCH_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_Secondary_CCPCHListIE_CTCH_ReconfRqstTDD;
+static int ett_nbap_Secondary_CCPCHItem_CTCH_ReconfRqstTDD;
+static int ett_nbap_Secondary_CCPCH_parameterExtendedList_CTCH_ReconfRqstTDD;
+static int ett_nbap_Secondary_CCPCH_LCR_parameterExtendedList_CTCH_ReconfRqstTDD;
+static int ett_nbap_PICH_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_FACH_ParametersList_CTCH_ReconfRqstTDD;
+static int ett_nbap_FACH_ParametersItem_CTCH_ReconfRqstTDD;
+static int ett_nbap_PCH_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_FPACH_LCR_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_MICH_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_PLCCH_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_Secondary_CCPCH_768_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_Secondary_CCPCH_768_List_CTCH_ReconfRqstTDD;
+static int ett_nbap_Secondary_CCPCH_768_Item_CTCH_ReconfRqstTDD;
+static int ett_nbap_PICH_768_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_MICH_768_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_UPPCH_LCR_Parameters_CTCH_ReconfRqstTDD;
+static int ett_nbap_CommonTransportChannelReconfigurationResponse;
+static int ett_nbap_CommonTransportChannelReconfigurationFailure;
+static int ett_nbap_CommonTransportChannelDeletionRequest;
+static int ett_nbap_CommonTransportChannelDeletionResponse;
+static int ett_nbap_BlockResourceRequest;
+static int ett_nbap_BlockResourceResponse;
+static int ett_nbap_BlockResourceFailure;
+static int ett_nbap_UnblockResourceIndication;
+static int ett_nbap_AuditRequiredIndication;
+static int ett_nbap_AuditRequest;
+static int ett_nbap_AuditResponse;
+static int ett_nbap_Cell_InformationList_AuditRsp;
+static int ett_nbap_Cell_InformationItem_AuditRsp;
+static int ett_nbap_S_CPICH_InformationList_AuditRsp;
+static int ett_nbap_S_CCPCH_InformationList_AuditRsp;
+static int ett_nbap_FACH_InformationList_AuditRsp;
+static int ett_nbap_PRACH_InformationList_AuditRsp;
+static int ett_nbap_RACH_InformationList_AuditRsp;
+static int ett_nbap_AICH_InformationList_AuditRsp;
+static int ett_nbap_FPACH_LCR_InformationList_AuditRsp;
+static int ett_nbap_HS_DSCH_Resources_Information_AuditRsp;
+static int ett_nbap_S_CCPCH_InformationListExt_AuditRsp;
+static int ett_nbap_S_CCPCH_LCR_InformationListExt_AuditRsp;
+static int ett_nbap_E_DCH_Resources_Information_AuditRsp;
+static int ett_nbap_PLCCH_InformationList_AuditRsp;
+static int ett_nbap_S_CCPCH_768_InformationList_AuditRsp;
+static int ett_nbap_PRACH_768_InformationList_AuditRsp;
+static int ett_nbap_E_RUCCH_InformationList_AuditRsp;
+static int ett_nbap_E_RUCCH_768_InformationList_AuditRsp;
+static int ett_nbap_Cell_Frequency_List_Information_LCR_MulFreq_AuditRsp;
+static int ett_nbap_Cell_Frequency_List_InformationItem_LCR_MulFreq_AuditRsp;
+static int ett_nbap_UPPCH_LCR_InformationList_AuditRsp;
+static int ett_nbap_UPPCH_LCR_InformationItem_AuditRsp;
+static int ett_nbap_MultipleFreq_HS_DSCH_Resources_InformationList_AuditRsp;
+static int ett_nbap_MultipleFreq_E_DCH_Resources_InformationList_AuditRsp;
+static int ett_nbap_CCP_InformationList_AuditRsp;
+static int ett_nbap_CCP_InformationItem_AuditRsp;
+static int ett_nbap_Local_Cell_InformationList_AuditRsp;
+static int ett_nbap_Local_Cell_InformationItem_AuditRsp;
+static int ett_nbap_Local_Cell_Group_InformationList_AuditRsp;
+static int ett_nbap_Local_Cell_Group_InformationItem_AuditRsp;
+static int ett_nbap_Power_Local_Cell_Group_InformationList_AuditRsp;
+static int ett_nbap_Power_Local_Cell_Group_InformationItem_AuditRsp;
+static int ett_nbap_AuditFailure;
+static int ett_nbap_CommonMeasurementInitiationRequest;
+static int ett_nbap_CommonMeasurementObjectType_CM_Rqst;
+static int ett_nbap_ERACH_CM_Rqst;
+static int ett_nbap_Cell_CM_Rqst;
+static int ett_nbap_RACH_CM_Rqst;
+static int ett_nbap_PowerLocalCellGroup_CM_Rqst;
+static int ett_nbap_CommonMeasurementInitiationResponse;
+static int ett_nbap_CommonMeasurementObjectType_CM_Rsp;
+static int ett_nbap_ERACH_CM_Rsp;
+static int ett_nbap_Cell_CM_Rsp;
+static int ett_nbap_RACH_CM_Rsp;
+static int ett_nbap_PowerLocalCellGroup_CM_Rsp;
+static int ett_nbap_CommonMeasurementInitiationFailure;
+static int ett_nbap_CommonMeasurementReport;
+static int ett_nbap_CommonMeasurementObjectType_CM_Rprt;
+static int ett_nbap_ERACH_CM_Rprt;
+static int ett_nbap_Cell_CM_Rprt;
+static int ett_nbap_RACH_CM_Rprt;
+static int ett_nbap_PowerLocalCellGroup_CM_Rprt;
+static int ett_nbap_CommonMeasurementTerminationRequest;
+static int ett_nbap_CommonMeasurementFailureIndication;
+static int ett_nbap_CellSetupRequestFDD;
+static int ett_nbap_Synchronisation_Configuration_Cell_SetupRqst;
+static int ett_nbap_PrimarySCH_Information_Cell_SetupRqstFDD;
+static int ett_nbap_SecondarySCH_Information_Cell_SetupRqstFDD;
+static int ett_nbap_PrimaryCPICH_Information_Cell_SetupRqstFDD;
+static int ett_nbap_SecondaryCPICH_InformationList_Cell_SetupRqstFDD;
+static int ett_nbap_SecondaryCPICH_InformationItem_Cell_SetupRqstFDD;
+static int ett_nbap_PrimaryCCPCH_Information_Cell_SetupRqstFDD;
+static int ett_nbap_BCH_Information_Cell_SetupRqstFDD;
+static int ett_nbap_Limited_power_increase_information_Cell_SetupRqstFDD;
+static int ett_nbap_IPDLParameter_Information_Cell_SetupRqstFDD;
+static int ett_nbap_CellPortion_InformationList_Cell_SetupRqstFDD;
+static int ett_nbap_CellPortion_InformationItem_Cell_SetupRqstFDD;
+static int ett_nbap_CellSetupRequestTDD;
+static int ett_nbap_SCH_Information_Cell_SetupRqstTDD;
+static int ett_nbap_SyncCaseIndicatorItem_Cell_SetupRqstTDD_PSCH;
+static int ett_nbap_Case1_Cell_SetupRqstTDD;
+static int ett_nbap_Case2_Cell_SetupRqstTDD;
+static int ett_nbap_PCCPCH_Information_Cell_SetupRqstTDD;
+static int ett_nbap_TimeSlotConfigurationList_Cell_SetupRqstTDD;
+static int ett_nbap_TimeSlotConfigurationItem_Cell_SetupRqstTDD;
+static int ett_nbap_TimeSlotConfigurationList_LCR_Cell_SetupRqstTDD;
+static int ett_nbap_TimeSlotConfigurationItem_LCR_Cell_SetupRqstTDD;
+static int ett_nbap_PCCPCH_LCR_Information_Cell_SetupRqstTDD;
+static int ett_nbap_DwPCH_LCR_Information_Cell_SetupRqstTDD;
+static int ett_nbap_IPDLParameter_Information_Cell_SetupRqstTDD;
+static int ett_nbap_IPDLParameter_Information_LCR_Cell_SetupRqstTDD;
+static int ett_nbap_PCCPCH_768_Information_Cell_SetupRqstTDD;
+static int ett_nbap_SCH_768_Information_Cell_SetupRqstTDD;
+static int ett_nbap_Cell_Frequency_List_LCR_MulFreq_Cell_SetupRqstTDD;
+static int ett_nbap_Cell_Frequency_Item_LCR_MulFreq_Cell_SetupRqstTDD;
+static int ett_nbap_CellSetupResponse;
+static int ett_nbap_CellSetupFailure;
+static int ett_nbap_CellReconfigurationRequestFDD;
+static int ett_nbap_Synchronisation_Configuration_Cell_ReconfRqst;
+static int ett_nbap_PrimarySCH_Information_Cell_ReconfRqstFDD;
+static int ett_nbap_SecondarySCH_Information_Cell_ReconfRqstFDD;
+static int ett_nbap_PrimaryCPICH_Information_Cell_ReconfRqstFDD;
+static int ett_nbap_SecondaryCPICH_InformationList_Cell_ReconfRqstFDD;
+static int ett_nbap_SecondaryCPICH_InformationItem_Cell_ReconfRqstFDD;
+static int ett_nbap_PrimaryCCPCH_Information_Cell_ReconfRqstFDD;
+static int ett_nbap_BCH_information_Cell_ReconfRqstFDD;
+static int ett_nbap_IPDLParameter_Information_Cell_ReconfRqstFDD;
+static int ett_nbap_CellPortion_InformationList_Cell_ReconfRqstFDD;
+static int ett_nbap_CellPortion_InformationItem_Cell_ReconfRqstFDD;
+static int ett_nbap_CellReconfigurationRequestTDD;
+static int ett_nbap_SCH_Information_Cell_ReconfRqstTDD;
+static int ett_nbap_PCCPCH_Information_Cell_ReconfRqstTDD;
+static int ett_nbap_TimeSlotConfigurationList_Cell_ReconfRqstTDD;
+static int ett_nbap_TimeSlotConfigurationItem_Cell_ReconfRqstTDD;
+static int ett_nbap_TimeSlotConfigurationList_LCR_Cell_ReconfRqstTDD;
+static int ett_nbap_TimeSlotConfigurationItem_LCR_Cell_ReconfRqstTDD;
+static int ett_nbap_DwPCH_LCR_Information_Cell_ReconfRqstTDD;
+static int ett_nbap_IPDLParameter_Information_Cell_ReconfRqstTDD;
+static int ett_nbap_IPDLParameter_Information_LCR_Cell_ReconfRqstTDD;
+static int ett_nbap_SCH_768_Information_Cell_ReconfRqstTDD;
+static int ett_nbap_PCCPCH_768_Information_Cell_ReconfRqstTDD;
+static int ett_nbap_UARFCN_Adjustment;
+static int ett_nbap_Cell_Frequency_Add_LCR_MulFreq_Cell_ReconfRqstTDD;
+static int ett_nbap_Cell_Frequency_ModifyList_LCR_MulFreq_Cell_ReconfRqstTDD;
+static int ett_nbap_Cell_Frequency_ModifyItem_LCR_MulFreq_Cell_ReconfRqstTDD;
+static int ett_nbap_Cell_Frequency_Delete_LCR_MulFreq_Cell_ReconfRqstTDD;
+static int ett_nbap_CellReconfigurationResponse;
+static int ett_nbap_CellReconfigurationFailure;
+static int ett_nbap_CellDeletionRequest;
+static int ett_nbap_CellDeletionResponse;
+static int ett_nbap_ResourceStatusIndication;
+static int ett_nbap_IndicationType_ResourceStatusInd;
+static int ett_nbap_No_Failure_ResourceStatusInd;
+static int ett_nbap_Local_Cell_InformationList_ResourceStatusInd;
+static int ett_nbap_Local_Cell_InformationItem_ResourceStatusInd;
+static int ett_nbap_Local_Cell_Group_InformationList_ResourceStatusInd;
+static int ett_nbap_Local_Cell_Group_InformationItem_ResourceStatusInd;
+static int ett_nbap_Power_Local_Cell_Group_InformationList_ResourceStatusInd;
+static int ett_nbap_Power_Local_Cell_Group_InformationItem_ResourceStatusInd;
+static int ett_nbap_ServiceImpacting_ResourceStatusInd;
+static int ett_nbap_Local_Cell_InformationList2_ResourceStatusInd;
+static int ett_nbap_Local_Cell_InformationItem2_ResourceStatusInd;
+static int ett_nbap_Local_Cell_Group_InformationList2_ResourceStatusInd;
+static int ett_nbap_Local_Cell_Group_InformationItem2_ResourceStatusInd;
+static int ett_nbap_CCP_InformationList_ResourceStatusInd;
+static int ett_nbap_CCP_InformationItem_ResourceStatusInd;
+static int ett_nbap_Cell_InformationList_ResourceStatusInd;
+static int ett_nbap_Cell_InformationItem_ResourceStatusInd;
+static int ett_nbap_S_CPICH_InformationList_ResourceStatusInd;
+static int ett_nbap_S_CCPCH_InformationList_ResourceStatusInd;
+static int ett_nbap_FACH_InformationList_ResourceStatusInd;
+static int ett_nbap_PRACH_InformationList_ResourceStatusInd;
+static int ett_nbap_RACH_InformationList_ResourceStatusInd;
+static int ett_nbap_AICH_InformationList_ResourceStatusInd;
+static int ett_nbap_FPACH_LCR_InformationList_ResourceStatusInd;
+static int ett_nbap_HS_DSCH_Resources_Information_ResourceStatusInd;
+static int ett_nbap_S_CCPCH_InformationListExt_ResourceStatusInd;
+static int ett_nbap_S_CCPCH_LCR_InformationListExt_ResourceStatusInd;
+static int ett_nbap_E_DCH_Resources_Information_ResourceStatusInd;
+static int ett_nbap_PLCCH_InformationList_ResourceStatusInd;
+static int ett_nbap_S_CCPCH_768_InformationList_ResourceStatusInd;
+static int ett_nbap_PRACH_768_InformationList_ResourceStatusInd;
+static int ett_nbap_E_RUCCH_InformationList_ResourceStatusInd;
+static int ett_nbap_E_RUCCH_768_InformationList_ResourceStatusInd;
+static int ett_nbap_Cell_Frequency_List_Information_LCR_MulFreq_ResourceStatusInd;
+static int ett_nbap_Cell_Frequency_List_InformationItem_LCR_MulFreq_ResourceStatusInd;
+static int ett_nbap_UPPCH_LCR_InformationList_ResourceStatusInd;
+static int ett_nbap_UPPCH_LCR_InformationItem_ResourceStatusInd;
+static int ett_nbap_MultipleFreq_HS_DSCH_Resources_InformationList_ResourceStatusInd;
+static int ett_nbap_Power_Local_Cell_Group_InformationList2_ResourceStatusInd;
+static int ett_nbap_Power_Local_Cell_Group_InformationItem2_ResourceStatusInd;
+static int ett_nbap_MultipleFreq_E_DCH_Resources_InformationList_ResourceStatusInd;
+static int ett_nbap_SystemInformationUpdateRequest;
+static int ett_nbap_MIB_SB_SIB_InformationList_SystemInfoUpdateRqst;
+static int ett_nbap_MIB_SB_SIB_InformationItem_SystemInfoUpdateRqst;
+static int ett_nbap_DeletionIndicator_SystemInfoUpdate;
+static int ett_nbap_No_Deletion_SystemInfoUpdate;
+static int ett_nbap_SegmentInformationListIE_SystemInfoUpdate;
+static int ett_nbap_SegmentInformationItem_SystemInfoUpdate;
+static int ett_nbap_SystemInformationUpdateResponse;
+static int ett_nbap_SystemInformationUpdateFailure;
+static int ett_nbap_RadioLinkSetupRequestFDD;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Setup_List;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Setup_ItemIEs;
+static int ett_nbap_UL_DPCH_Information_RL_SetupRqstFDD;
+static int ett_nbap_DL_DPCH_Information_RL_SetupRqstFDD;
+static int ett_nbap_PowerOffsetInformation_RL_SetupRqstFDD;
+static int ett_nbap_RL_InformationList_RL_SetupRqstFDD;
+static int ett_nbap_RL_InformationItem_RL_SetupRqstFDD;
+static int ett_nbap_E_DPCH_Information_RL_SetupRqstFDD;
+static int ett_nbap_F_DPCH_Information_RL_SetupRqstFDD;
+static int ett_nbap_PowerOffsetInformation_F_DPCH_RL_SetupRqstFDD;
+static int ett_nbap_RadioLinkSetupRequestTDD;
+static int ett_nbap_UL_CCTrCH_InformationList_RL_SetupRqstTDD;
+static int ett_nbap_UL_CCTrCH_InformationItem_RL_SetupRqstTDD;
+static int ett_nbap_UL_DPCH_InformationItem_RL_SetupRqstTDD;
+static int ett_nbap_UL_DPCH_LCR_Information_RL_SetupRqstTDD;
+static int ett_nbap_UL_DPCH_768_Information_RL_SetupRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationList_RL_SetupRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationItem_RL_SetupRqstTDD;
+static int ett_nbap_CCTrCH_TPCList_RL_SetupRqstTDD;
+static int ett_nbap_CCTrCH_TPCItem_RL_SetupRqstTDD;
+static int ett_nbap_DL_DPCH_InformationItem_RL_SetupRqstTDD;
+static int ett_nbap_DL_DPCH_LCR_Information_RL_SetupRqstTDD;
+static int ett_nbap_DL_DPCH_768_Information_RL_SetupRqstTDD;
+static int ett_nbap_RL_Information_RL_SetupRqstTDD;
+static int ett_nbap_RadioLinkSetupResponseFDD;
+static int ett_nbap_Additional_HS_Cell_Information_Response_List;
+static int ett_nbap_Additional_HS_Cell_Information_Response_ItemIEs;
+static int ett_nbap_RL_InformationResponseList_RL_SetupRspFDD;
+static int ett_nbap_RL_InformationResponseItem_RL_SetupRspFDD;
+static int ett_nbap_DiversityIndication_RL_SetupRspFDD;
+static int ett_nbap_Combining_RL_SetupRspFDD;
+static int ett_nbap_NonCombiningOrFirstRL_RL_SetupRspFDD;
+static int ett_nbap_RadioLinkSetupResponseTDD;
+static int ett_nbap_RL_InformationResponse_RL_SetupRspTDD;
+static int ett_nbap_RL_InformationResponse_LCR_RL_SetupRspTDD;
+static int ett_nbap_RadioLinkSetupFailureFDD;
+static int ett_nbap_CauseLevel_RL_SetupFailureFDD;
+static int ett_nbap_GeneralCauseList_RL_SetupFailureFDD;
+static int ett_nbap_RLSpecificCauseList_RL_SetupFailureFDD;
+static int ett_nbap_Unsuccessful_RL_InformationRespList_RL_SetupFailureFDD;
+static int ett_nbap_Unsuccessful_RL_InformationRespItem_RL_SetupFailureFDD;
+static int ett_nbap_Successful_RL_InformationRespList_RL_SetupFailureFDD;
+static int ett_nbap_Successful_RL_InformationRespItem_RL_SetupFailureFDD;
+static int ett_nbap_DiversityIndication_RL_SetupFailureFDD;
+static int ett_nbap_Combining_RL_SetupFailureFDD;
+static int ett_nbap_NonCombiningOrFirstRL_RL_SetupFailureFDD;
+static int ett_nbap_RadioLinkSetupFailureTDD;
+static int ett_nbap_CauseLevel_RL_SetupFailureTDD;
+static int ett_nbap_GeneralCauseList_RL_SetupFailureTDD;
+static int ett_nbap_RLSpecificCauseList_RL_SetupFailureTDD;
+static int ett_nbap_Unsuccessful_RL_InformationResp_RL_SetupFailureTDD;
+static int ett_nbap_RadioLinkAdditionRequestFDD;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Addition_List;
+static int ett_nbap_Additional_EDCH_Cell_Information_RL_Add_Req;
+static int ett_nbap_Setup_Or_Addition_Of_EDCH_On_secondary_UL_Frequency;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Addition_ItemIEs;
+static int ett_nbap_RL_InformationList_RL_AdditionRqstFDD;
+static int ett_nbap_RL_InformationItem_RL_AdditionRqstFDD;
+static int ett_nbap_E_DPCH_Information_RL_AdditionReqFDD;
+static int ett_nbap_RadioLinkAdditionRequestTDD;
+static int ett_nbap_UL_CCTrCH_InformationList_RL_AdditionRqstTDD;
+static int ett_nbap_UL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
+static int ett_nbap_UL_DPCH_InformationItem_RL_AdditionRqstTDD;
+static int ett_nbap_UL_DPCH_InformationItem_LCR_RL_AdditionRqstTDD;
+static int ett_nbap_UL_DPCH_InformationItem_768_RL_AdditionRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationList_RL_AdditionRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
+static int ett_nbap_DL_DPCH_InformationItem_RL_AdditionRqstTDD;
+static int ett_nbap_DL_DPCH_InformationItem_LCR_RL_AdditionRqstTDD;
+static int ett_nbap_DL_DPCH_InformationItem_768_RL_AdditionRqstTDD;
+static int ett_nbap_RL_Information_RL_AdditionRqstTDD;
+static int ett_nbap_RadioLinkAdditionResponseFDD;
+static int ett_nbap_Additional_HS_Cell_Change_Information_Response_List;
+static int ett_nbap_Additional_HS_Cell_Change_Information_Response_ItemIEs;
+static int ett_nbap_RL_InformationResponseList_RL_AdditionRspFDD;
+static int ett_nbap_RL_InformationResponseItem_RL_AdditionRspFDD;
+static int ett_nbap_DiversityIndication_RL_AdditionRspFDD;
+static int ett_nbap_Combining_RL_AdditionRspFDD;
+static int ett_nbap_Non_Combining_RL_AdditionRspFDD;
+static int ett_nbap_RadioLinkAdditionResponseTDD;
+static int ett_nbap_RL_InformationResponse_RL_AdditionRspTDD;
+static int ett_nbap_DCH_Information_RL_AdditionRspTDD;
+static int ett_nbap_DiversityIndication_RL_AdditionRspTDD;
+static int ett_nbap_Combining_RL_AdditionRspTDD;
+static int ett_nbap_Non_Combining_RL_AdditionRspTDD;
+static int ett_nbap_RL_InformationResponse_LCR_RL_AdditionRspTDD;
+static int ett_nbap_RadioLinkAdditionFailureFDD;
+static int ett_nbap_CauseLevel_RL_AdditionFailureFDD;
+static int ett_nbap_GeneralCauseList_RL_AdditionFailureFDD;
+static int ett_nbap_RLSpecificCauseList_RL_AdditionFailureFDD;
+static int ett_nbap_Unsuccessful_RL_InformationRespList_RL_AdditionFailureFDD;
+static int ett_nbap_Unsuccessful_RL_InformationRespItem_RL_AdditionFailureFDD;
+static int ett_nbap_Successful_RL_InformationRespList_RL_AdditionFailureFDD;
+static int ett_nbap_Successful_RL_InformationRespItem_RL_AdditionFailureFDD;
+static int ett_nbap_DiversityIndication_RL_AdditionFailureFDD;
+static int ett_nbap_Combining_RL_AdditionFailureFDD;
+static int ett_nbap_Non_Combining_RL_AdditionFailureFDD;
+static int ett_nbap_RadioLinkAdditionFailureTDD;
+static int ett_nbap_CauseLevel_RL_AdditionFailureTDD;
+static int ett_nbap_GeneralCauseList_RL_AdditionFailureTDD;
+static int ett_nbap_RLSpecificCauseList_RL_AdditionFailureTDD;
+static int ett_nbap_Unsuccessful_RL_InformationResp_RL_AdditionFailureTDD;
+static int ett_nbap_RadioLinkReconfigurationPrepareFDD;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Prep;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Prep_ItemIEs;
+static int ett_nbap_Additional_EDCH_Cell_Information_RL_Reconf_Prep;
+static int ett_nbap_UL_DPCH_Information_RL_ReconfPrepFDD;
+static int ett_nbap_DL_DPCH_Information_RL_ReconfPrepFDD;
+static int ett_nbap_DL_DPCH_Power_Information_RL_ReconfPrepFDD;
+static int ett_nbap_PowerOffsetInformation_RL_ReconfPrepFDD;
+static int ett_nbap_DCH_DeleteList_RL_ReconfPrepFDD;
+static int ett_nbap_DCH_DeleteItem_RL_ReconfPrepFDD;
+static int ett_nbap_RL_InformationList_RL_ReconfPrepFDD;
+static int ett_nbap_RL_InformationItem_RL_ReconfPrepFDD;
+static int ett_nbap_E_DPCH_Information_RL_ReconfPrepFDD;
+static int ett_nbap_F_DPCH_Information_RL_ReconfPrepFDD;
+static int ett_nbap_PowerOffsetInformation_F_DPCH_RL_ReconfPrepFDD;
+static int ett_nbap_RadioLinkReconfigurationPrepareTDD;
+static int ett_nbap_UL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_CCTrCH_InformationAddItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_InformationAddItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_LCR_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_UL_DPCH_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_UL_DPCH_InformationAddListIE_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_768_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_CCTrCH_InformationModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_InformationModify_AddItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Timeslot_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Timeslot_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Code_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_TimeslotLCR_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Timeslot_LCR_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Code_InformationModify_ModifyList_RL_ReconfPrepTDDLCR;
+static int ett_nbap_UL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDDLCR;
+static int ett_nbap_UL_Timeslot768_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Timeslot_768_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_Code_InformationModify_ModifyList_RL_ReconfPrepTDD768;
+static int ett_nbap_UL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDD768;
+static int ett_nbap_UL_DPCH_InformationModify_DeleteListIE_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_InformationModify_DeleteItem_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_LCR_InformationModify_AddList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_UL_DPCH_InformationModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_UL_DPCH_InformationModifyListIE_RL_ReconfPrepTDD;
+static int ett_nbap_UL_DPCH_768_InformationModify_AddList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
+static int ett_nbap_UL_CCTrCH_InformationDeleteItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_CCTrCH_InformationAddItem_RL_ReconfPrepTDD;
+static int ett_nbap_CCTrCH_TPCAddList_RL_ReconfPrepTDD;
+static int ett_nbap_CCTrCH_TPCAddItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_InformationAddItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_LCR_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_DL_DPCH_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_DL_DPCH_InformationAddListIE_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_768_InformationAddList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_CCTrCH_InformationModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_CCTrCH_TPCModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_CCTrCH_TPCModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_InformationModify_AddItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Timeslot_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Timeslot_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Code_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Code_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Code_LCR_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Code_LCR_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Timeslot_768_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Timeslot_768_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Code_768_InformationModify_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_Code_768_InformationModify_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_InformationModify_DeleteListIE_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_InformationModify_DeleteItem_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_LCR_InformationModify_AddList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_DL_DPCH_InformationModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_DL_DPCH_InformationModifyListIE_RL_ReconfPrepTDD;
+static int ett_nbap_DL_DPCH_768_InformationModify_AddList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
+static int ett_nbap_DL_CCTrCH_InformationDeleteItem_RL_ReconfPrepTDD;
+static int ett_nbap_DCH_DeleteList_RL_ReconfPrepTDD;
+static int ett_nbap_DCH_DeleteItem_RL_ReconfPrepTDD;
+static int ett_nbap_DSCH_Information_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_DSCH_Information_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_DSCH_Information_DeleteList_RL_ReconfPrepTDD;
+static int ett_nbap_DSCH_Information_DeleteItem_RL_ReconfPrepTDD;
+static int ett_nbap_USCH_Information_ModifyList_RL_ReconfPrepTDD;
+static int ett_nbap_USCH_Information_ModifyItem_RL_ReconfPrepTDD;
+static int ett_nbap_USCH_Information_DeleteList_RL_ReconfPrepTDD;
+static int ett_nbap_USCH_Information_DeleteItem_RL_ReconfPrepTDD;
+static int ett_nbap_MultipleRL_Information_RL_ReconfPrepTDD;
+static int ett_nbap_RL_Information_RL_ReconfPrepTDD;
+static int ett_nbap_RadioLinkReconfigurationReady;
+static int ett_nbap_RL_InformationResponseList_RL_ReconfReady;
+static int ett_nbap_RL_InformationResponseItem_RL_ReconfReady;
+static int ett_nbap_RadioLinkReconfigurationFailure;
+static int ett_nbap_CauseLevel_RL_ReconfFailure;
+static int ett_nbap_GeneralCauseList_RL_ReconfFailure;
+static int ett_nbap_RLSpecificCauseList_RL_ReconfFailure;
+static int ett_nbap_RL_ReconfigurationFailureList_RL_ReconfFailure;
+static int ett_nbap_RL_ReconfigurationFailureItem_RL_ReconfFailure;
+static int ett_nbap_RadioLinkReconfigurationCommit;
+static int ett_nbap_RadioLinkReconfigurationCancel;
+static int ett_nbap_RadioLinkReconfigurationRequestFDD;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Req;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Reconf_Req_ItemIEs;
+static int ett_nbap_Additional_EDCH_Cell_Information_RL_Reconf_Req;
+static int ett_nbap_UL_DPCH_Information_RL_ReconfRqstFDD;
+static int ett_nbap_DL_DPCH_Information_RL_ReconfRqstFDD;
+static int ett_nbap_DCH_DeleteList_RL_ReconfRqstFDD;
+static int ett_nbap_DCH_DeleteItem_RL_ReconfRqstFDD;
+static int ett_nbap_RL_InformationList_RL_ReconfRqstFDD;
+static int ett_nbap_RL_InformationItem_RL_ReconfRqstFDD;
+static int ett_nbap_E_DPCH_Information_RL_ReconfRqstFDD;
+static int ett_nbap_RadioLinkReconfigurationRequestTDD;
+static int ett_nbap_UL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
+static int ett_nbap_UL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
+static int ett_nbap_UL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
+static int ett_nbap_UL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
+static int ett_nbap_MultipleRL_DL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
+static int ett_nbap_MultipleRL_DL_CCTrCH_InformationModifyListIE_RL_ReconfRqstTDD;
+static int ett_nbap_DL_DPCH_LCR_InformationModify_ModifyList_RL_ReconfRqstTDD;
+static int ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyList_RL_ReconfRqstTDD;
+static int ett_nbap_DL_Timeslot_LCR_InformationModify_ModifyItem_RL_ReconfRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
+static int ett_nbap_DL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
+static int ett_nbap_DCH_DeleteList_RL_ReconfRqstTDD;
+static int ett_nbap_DCH_DeleteItem_RL_ReconfRqstTDD;
+static int ett_nbap_Multiple_RL_Information_RL_ReconfRqstTDD;
+static int ett_nbap_RL_Information_RL_ReconfRqstTDD;
+static int ett_nbap_RadioLinkReconfigurationResponse;
+static int ett_nbap_RL_InformationResponseList_RL_ReconfRsp;
+static int ett_nbap_RL_InformationResponseItem_RL_ReconfRsp;
+static int ett_nbap_RadioLinkDeletionRequest;
+static int ett_nbap_RL_informationList_RL_DeletionRqst;
+static int ett_nbap_RL_informationItem_RL_DeletionRqst;
+static int ett_nbap_RadioLinkDeletionResponse;
+static int ett_nbap_DL_PowerControlRequest;
+static int ett_nbap_DL_ReferencePowerInformationList_DL_PC_Rqst;
+static int ett_nbap_DL_ReferencePowerInformationItem_DL_PC_Rqst;
+static int ett_nbap_DL_PowerTimeslotControlRequest;
+static int ett_nbap_DedicatedMeasurementInitiationRequest;
+static int ett_nbap_DedicatedMeasurementObjectType_DM_Rqst;
+static int ett_nbap_RL_DM_Rqst;
+static int ett_nbap_RL_InformationList_DM_Rqst;
+static int ett_nbap_RL_InformationItem_DM_Rqst;
+static int ett_nbap_PUSCH_Info_DM_Rqst;
+static int ett_nbap_HSSICH_Info_DM_Rqst;
+static int ett_nbap_HSSICH_InfoExt_DM_Rqst;
+static int ett_nbap_RL_Set_DM_Rqst;
+static int ett_nbap_RL_Set_InformationList_DM_Rqst;
+static int ett_nbap_RL_Set_InformationItem_DM_Rqst;
+static int ett_nbap_DedicatedMeasurementInitiationResponse;
+static int ett_nbap_DedicatedMeasurementObjectType_DM_Rsp;
+static int ett_nbap_RL_DM_Rsp;
+static int ett_nbap_RL_InformationList_DM_Rsp;
+static int ett_nbap_RL_InformationItem_DM_Rsp;
+static int ett_nbap_PUSCH_Info_DM_Rsp;
+static int ett_nbap_Multiple_PUSCH_InfoList_DM_Rsp;
+static int ett_nbap_Multiple_PUSCH_InfoListIE_DM_Rsp;
+static int ett_nbap_Multiple_DedicatedMeasurementValueList_TDD_DM_Rsp;
+static int ett_nbap_Multiple_DedicatedMeasurementValueItem_TDD_DM_Rsp;
+static int ett_nbap_Multiple_DedicatedMeasurementValueList_LCR_TDD_DM_Rsp;
+static int ett_nbap_Multiple_DedicatedMeasurementValueItem_LCR_TDD_DM_Rsp;
+static int ett_nbap_Multiple_HSSICHMeasurementValueList_TDD_DM_Rsp;
+static int ett_nbap_Multiple_HSSICHMeasurementValueItem_TDD_DM_Rsp;
+static int ett_nbap_Multiple_DedicatedMeasurementValueList_768_TDD_DM_Rsp;
+static int ett_nbap_Multiple_DedicatedMeasurementValueItem_768_TDD_DM_Rsp;
+static int ett_nbap_RL_Set_DM_Rsp;
+static int ett_nbap_RL_Set_InformationList_DM_Rsp;
+static int ett_nbap_RL_Set_InformationItem_DM_Rsp;
+static int ett_nbap_DedicatedMeasurementInitiationFailure;
+static int ett_nbap_DedicatedMeasurementReport;
+static int ett_nbap_DedicatedMeasurementObjectType_DM_Rprt;
+static int ett_nbap_RL_DM_Rprt;
+static int ett_nbap_RL_InformationList_DM_Rprt;
+static int ett_nbap_RL_InformationItem_DM_Rprt;
+static int ett_nbap_PUSCH_Info_DM_Rprt;
+static int ett_nbap_Multiple_PUSCH_InfoList_DM_Rprt;
+static int ett_nbap_Multiple_PUSCH_InfoListIE_DM_Rprt;
+static int ett_nbap_RL_Set_DM_Rprt;
+static int ett_nbap_RL_Set_InformationList_DM_Rprt;
+static int ett_nbap_RL_Set_InformationItem_DM_Rprt;
+static int ett_nbap_DedicatedMeasurementTerminationRequest;
+static int ett_nbap_DedicatedMeasurementFailureIndication;
+static int ett_nbap_RadioLinkFailureIndication;
+static int ett_nbap_Reporting_Object_RL_FailureInd;
+static int ett_nbap_RL_RL_FailureInd;
+static int ett_nbap_RL_InformationList_RL_FailureInd;
+static int ett_nbap_RL_InformationItem_RL_FailureInd;
+static int ett_nbap_RL_Set_RL_FailureInd;
+static int ett_nbap_RL_Set_InformationList_RL_FailureInd;
+static int ett_nbap_RL_Set_InformationItem_RL_FailureInd;
+static int ett_nbap_CCTrCH_RL_FailureInd;
+static int ett_nbap_CCTrCH_InformationList_RL_FailureInd;
+static int ett_nbap_CCTrCH_InformationItem_RL_FailureInd;
+static int ett_nbap_RadioLinkPreemptionRequiredIndication;
+static int ett_nbap_RL_InformationList_RL_PreemptRequiredInd;
+static int ett_nbap_RL_InformationItem_RL_PreemptRequiredInd;
+static int ett_nbap_RadioLinkRestoreIndication;
+static int ett_nbap_Reporting_Object_RL_RestoreInd;
+static int ett_nbap_RL_RL_RestoreInd;
+static int ett_nbap_RL_InformationList_RL_RestoreInd;
+static int ett_nbap_RL_InformationItem_RL_RestoreInd;
+static int ett_nbap_RL_Set_RL_RestoreInd;
+static int ett_nbap_RL_Set_InformationList_RL_RestoreInd;
+static int ett_nbap_RL_Set_InformationItem_RL_RestoreInd;
+static int ett_nbap_CCTrCH_RL_RestoreInd;
+static int ett_nbap_CCTrCH_InformationList_RL_RestoreInd;
+static int ett_nbap_CCTrCH_InformationItem_RL_RestoreInd;
+static int ett_nbap_CompressedModeCommand;
+static int ett_nbap_ErrorIndication;
+static int ett_nbap_PrivateMessage;
+static int ett_nbap_PhysicalSharedChannelReconfigurationRequestFDD;
+static int ett_nbap_HSDPA_And_EDCH_CellPortion_InformationList_PSCH_ReconfRqst;
+static int ett_nbap_HSDPA_And_EDCH_CellPortion_InformationItem_PSCH_ReconfRqst;
+static int ett_nbap_PhysicalSharedChannelReconfigurationRequestTDD;
+static int ett_nbap_PDSCHSets_AddList_PSCH_ReconfRqst;
+static int ett_nbap_PDSCHSets_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_PDSCH_Information_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationAddList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationAddItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationAddList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationAddItem_PSCH_ReconfRqst;
+static int ett_nbap_PDSCH_AddInformation_LCR_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationAddList_LCR_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationAddItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationAddList_LCR_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationAddItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_PDSCH_AddInformation_768_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationAddList_768_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationAddItem_768_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationAddList_768_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationAddItem_768_PSCH_ReconfRqst;
+static int ett_nbap_PDSCHSets_ModifyList_PSCH_ReconfRqst;
+static int ett_nbap_PDSCHSets_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PDSCH_Information_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PDSCH_ModifyInformation_LCR_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_LCR_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_LCR_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_LCR_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_LCR_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PDSCH_ModifyInformation_768_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_768_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Timeslot_768_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_768_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_DL_Code_768_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PDSCHSets_DeleteList_PSCH_ReconfRqst;
+static int ett_nbap_PDSCHSets_DeleteItem_PSCH_ReconfRqst;
+static int ett_nbap_PUSCHSets_AddList_PSCH_ReconfRqst;
+static int ett_nbap_PUSCHSets_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_PUSCH_Information_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationAddList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationAddItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationAddList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationAddItem_PSCH_ReconfRqst;
+static int ett_nbap_PUSCH_AddInformation_LCR_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationAddList_LCR_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationAddItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationAddList_LCR_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationAddItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_PUSCH_AddInformation_768_AddItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationAddList_768_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationAddItem_768_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationAddList_768_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationAddItem_768_PSCH_ReconfRqst;
+static int ett_nbap_PUSCHSets_ModifyList_PSCH_ReconfRqst;
+static int ett_nbap_PUSCHSets_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PUSCH_Information_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PUSCH_ModifyInformation_LCR_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_LCR_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_LCR_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_LCR_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_LCR_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PUSCH_ModifyInformation_768_ModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_768_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Timeslot_768_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_768_InformationModifyList_PSCH_ReconfRqst;
+static int ett_nbap_UL_Code_768_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_PUSCHSets_DeleteList_PSCH_ReconfRqst;
+static int ett_nbap_PUSCHSets_DeleteItem_PSCH_ReconfRqst;
+static int ett_nbap_HS_PDSCH_TDD_Information_PSCH_ReconfRqst;
+static int ett_nbap_DL_HS_PDSCH_Timeslot_Information_PSCH_ReconfRqst;
+static int ett_nbap_DL_HS_PDSCH_Timeslot_InformationItem_PSCH_ReconfRqst;
+static int ett_nbap_DL_HS_PDSCH_Codelist_PSCH_ReconfRqst;
+static int ett_nbap_DL_HS_PDSCH_Timeslot_Information_768_PSCH_ReconfRqst;
+static int ett_nbap_DL_HS_PDSCH_Timeslot_InformationItem_768_PSCH_ReconfRqst;
+static int ett_nbap_DL_HS_PDSCH_Codelist_768_PSCH_ReconfRqst;
+static int ett_nbap_MultipleFreq_DL_HS_PDSCH_Timeslot_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_MultipleFreq_DL_HS_PDSCH_Timeslot_Information_LCRItem_PSCH_ReconfRqst;
+static int ett_nbap_Add_To_HS_SCCH_Resource_Pool_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_Information_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationItem_PSCH_ReconfRqst;
+static int ett_nbap_HS_SICH_Information_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_HS_SICH_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_Information_768_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationItem_768_PSCH_ReconfRqst;
+static int ett_nbap_HS_SICH_Information_768_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationExt_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Modify_HS_SCCH_Resource_Pool_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_HS_SICH_InformationModify_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationModify_LCR_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationModifyItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationModifyExt_LCR_PSCH_ReconfRqst;
+static int ett_nbap_HS_SICH_InformationModify_LCR_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationModify_768_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationModifyItem_768_PSCH_ReconfRqst;
+static int ett_nbap_HS_SICH_InformationModify_768_PSCH_ReconfRqst;
+static int ett_nbap_HS_SCCH_InformationModify_PSCH_ReconfRqst;
+static int ett_nbap_Delete_From_HS_SCCH_Resource_Pool_PSCH_ReconfRqst;
+static int ett_nbap_Delete_From_HS_SCCH_Resource_PoolItem_PSCH_ReconfRqst;
+static int ett_nbap_E_PUCH_Information_PSCH_ReconfRqst;
+static int ett_nbap_E_PUCH_Timeslot_Info;
+static int ett_nbap_Add_To_E_AGCH_Resource_Pool_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_Information_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationItem_PSCH_ReconfRqst;
+static int ett_nbap_Modify_E_AGCH_Resource_Pool_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationModify_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationModifyItem_PSCH_ReconfRqst;
+static int ett_nbap_Delete_From_E_AGCH_Resource_Pool_PSCH_ReconfRqst;
+static int ett_nbap_Delete_From_E_AGCH_Resource_PoolItem_PSCH_ReconfRqst;
+static int ett_nbap_E_HICH_Information_PSCH_ReconfRqst;
+static int ett_nbap_E_PUCH_Information_768_PSCH_ReconfRqst;
+static int ett_nbap_Add_To_E_AGCH_Resource_Pool_768_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_Information_768_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationItem_768_PSCH_ReconfRqst;
+static int ett_nbap_Modify_E_AGCH_Resource_Pool_768_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationModify_768_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationModifyItem_768_PSCH_ReconfRqst;
+static int ett_nbap_E_HICH_Information_768_PSCH_ReconfRqst;
+static int ett_nbap_E_PUCH_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_PUCH_Timeslot_InfoLCR;
+static int ett_nbap_E_PUCH_Timeslot_Item_InfoLCR;
+static int ett_nbap_E_PUCH_Codelist_LCR;
+static int ett_nbap_Add_To_E_AGCH_Resource_Pool_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Modify_E_AGCH_Resource_Pool_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationModify_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_AGCH_InformationModifyItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Add_To_E_HICH_Resource_Pool_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_HICH_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_HICH_InformationItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Modify_E_HICH_Resource_Pool_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_HICH_InformationModify_LCR_PSCH_ReconfRqst;
+static int ett_nbap_E_HICH_InformationModifyItem_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Delete_From_E_HICH_Resource_Pool_PSCH_ReconfRqst;
+static int ett_nbap_Delete_From_E_HICH_Resource_PoolItem_PSCH_ReconfRqst;
+static int ett_nbap_SYNC_UL_Partition_LCR;
+static int ett_nbap_Delete_From_HS_SCCH_Resource_PoolExt_PSCH_ReconfRqst;
+static int ett_nbap_MultipleFreq_E_PUCH_Timeslot_InformationList_LCR_PSCH_ReconfRqst;
+static int ett_nbap_MultipleFreq_E_PUCH_Timeslot_Information_LCRItem_PSCH_ReconfRqst;
+static int ett_nbap_Max_RTWP_perUARFCN_Information_LCR_PSCH_ReconfRqst;
+static int ett_nbap_Max_RTWP_perUARFCN_Information_LCR_PSCH_ReconfRqst_Item;
+static int ett_nbap_PhysicalSharedChannelReconfigurationResponse;
+static int ett_nbap_E_HICH_TimeOffset_ExtensionLCR;
+static int ett_nbap_MultipleFreq_E_HICH_TimeOffsetLCR;
+static int ett_nbap_PhysicalSharedChannelReconfigurationFailure;
+static int ett_nbap_CauseLevel_PSCH_ReconfFailure;
+static int ett_nbap_GeneralCauseList_PSCH_ReconfFailure;
+static int ett_nbap_SetSpecificCauseList_PSCH_ReconfFailureTDD;
+static int ett_nbap_Unsuccessful_PDSCHSetList_PSCH_ReconfFailureTDD;
+static int ett_nbap_Unsuccessful_PDSCHSetItem_PSCH_ReconfFailureTDD;
+static int ett_nbap_Unsuccessful_PUSCHSetList_PSCH_ReconfFailureTDD;
+static int ett_nbap_Unsuccessful_PUSCHSetItem_PSCH_ReconfFailureTDD;
+static int ett_nbap_UARFCNSpecificCauseList_PSCH_ReconfFailureTDD;
+static int ett_nbap_Unsuccessful_UARFCNItem_PSCH_ReconfFailureTDD;
+static int ett_nbap_E_HICH_TimeOffset_ReconfFailureTDD;
+static int ett_nbap_Common_System_Information_ResponseLCR;
+static int ett_nbap_ResetRequest;
+static int ett_nbap_ResetIndicator;
+static int ett_nbap_CommunicationContextList_Reset;
+static int ett_nbap_CommunicationContextInfoList_Reset;
+static int ett_nbap_CommunicationContextInfoItem_Reset;
+static int ett_nbap_CommunicationContextType_Reset;
+static int ett_nbap_CommunicationControlPortList_Reset;
+static int ett_nbap_CommunicationControlPortInfoList_Reset;
+static int ett_nbap_CommunicationControlPortInfoItem_Reset;
+static int ett_nbap_ResetResponse;
+static int ett_nbap_InformationExchangeInitiationRequest;
+static int ett_nbap_InformationExchangeObjectType_InfEx_Rqst;
+static int ett_nbap_Cell_InfEx_Rqst;
+static int ett_nbap_InformationExchangeInitiationResponse;
+static int ett_nbap_InformationExchangeObjectType_InfEx_Rsp;
+static int ett_nbap_Cell_InfEx_Rsp;
+static int ett_nbap_InformationExchangeInitiationFailure;
+static int ett_nbap_InformationReport;
+static int ett_nbap_InformationExchangeObjectType_InfEx_Rprt;
+static int ett_nbap_Cell_Inf_Rprt;
+static int ett_nbap_InformationExchangeTerminationRequest;
+static int ett_nbap_InformationExchangeFailureIndication;
+static int ett_nbap_CellSynchronisationInitiationRequestTDD;
+static int ett_nbap_TimeslotInfo_CellSyncInitiationRqstTDD;
+static int ett_nbap_CellSyncBurstTransInit_CellSyncInitiationRqstTDD;
+static int ett_nbap_CellSyncBurstMeasureInit_CellSyncInitiationRqstTDD;
+static int ett_nbap_SYNCDlCodeId_TransInitLCR_CellSyncInitiationRqstTDD;
+static int ett_nbap_SYNCDlCodeId_MeasureInitLCR_CellSyncInitiationRqstTDD;
+static int ett_nbap_CellSynchronisationInitiationResponseTDD;
+static int ett_nbap_CellSynchronisationInitiationFailureTDD;
+static int ett_nbap_CellSynchronisationReconfigurationRequestTDD;
+static int ett_nbap_CellSyncBurstTransReconfInfo_CellSyncReconfRqstTDD;
+static int ett_nbap_CellSyncBurstTransInfoItem_CellSyncReconfRqstTDD;
+static int ett_nbap_CellSyncBurstMeasInfo_CellSyncReconfRqstTDD;
+static int ett_nbap_CellSyncBurstMeasInfoListIE_CellSyncReconfRqstTDD;
+static int ett_nbap_CellSyncBurstMeasInfoItem_CellSyncReconfRqstTDD;
+static int ett_nbap_CellSyncBurstInfoList_CellSyncReconfRqstTDD;
+static int ett_nbap_CellSyncBurstInfoItem_CellSyncReconfRqstTDD;
+static int ett_nbap_SYNCDlCodeIdTransReconfInfoLCR_CellSyncReconfRqstTDD;
+static int ett_nbap_SYNCDlCodeIdTransReconfItemLCR_CellSyncReconfRqstTDD;
+static int ett_nbap_SYNCDlCodeIdMeasInfoLCR_CellSyncReconfRqstTDD;
+static int ett_nbap_SYNCDlCodeIdMeasInfoList_CellSyncReconfRqstTDD;
+static int ett_nbap_SYNCDlCodeIdMeasInfoItem_CellSyncReconfRqstTDD;
+static int ett_nbap_SYNCDlCodeIdInfoListLCR_CellSyncReconfRqstTDD;
+static int ett_nbap_SYNCDlCodeIdInfoItemLCR_CellSyncReconfRqstTDD;
+static int ett_nbap_CellSynchronisationReconfigurationResponseTDD;
+static int ett_nbap_CellSynchronisationReconfigurationFailureTDD;
+static int ett_nbap_CellSynchronisationAdjustmentRequestTDD;
+static int ett_nbap_CellAdjustmentInfo_SyncAdjustmentRqstTDD;
+static int ett_nbap_CellAdjustmentInfoItem_SyncAdjustmentRqstTDD;
+static int ett_nbap_CellSynchronisationAdjustmentResponseTDD;
+static int ett_nbap_CellSynchronisationAdjustmentFailureTDD;
+static int ett_nbap_CauseLevel_SyncAdjustmntFailureTDD;
+static int ett_nbap_GeneralCauseList_SyncAdjustmntFailureTDD;
+static int ett_nbap_CellSpecificCauseList_SyncAdjustmntFailureTDD;
+static int ett_nbap_Unsuccessful_cell_InformationRespList_SyncAdjustmntFailureTDD;
+static int ett_nbap_Unsuccessful_cell_InformationRespItem_SyncAdjustmntFailureTDD;
+static int ett_nbap_CellSynchronisationTerminationRequestTDD;
+static int ett_nbap_CellSynchronisationFailureIndicationTDD;
+static int ett_nbap_CellSynchronisationReportTDD;
+static int ett_nbap_CellSyncInfo_CellSyncReprtTDD;
+static int ett_nbap_CellSyncInfoItemIE_CellSyncReprtTDD;
+static int ett_nbap_SyncReportType_CellSyncReprtTDD;
+static int ett_nbap_IntStdPhCellSyncInfo_CellSyncReprtTDD;
+static int ett_nbap_CellSyncBurstMeasInfoList_CellSyncReprtTDD;
+static int ett_nbap_CellSyncBurstMeasInfoItem_CellSyncReprtTDD;
+static int ett_nbap_SEQUENCE_SIZE_1_maxNrOfReceptsPerSyncFrame_OF_CellSyncBurstInfo_CellSyncReprtTDD;
+static int ett_nbap_CellSyncBurstInfo_CellSyncReprtTDD;
+static int ett_nbap_CellSyncBurstAvailable_CellSyncReprtTDD;
+static int ett_nbap_SyncDLCodeIdsMeasInfoList_CellSyncReprtTDD;
+static int ett_nbap_SyncDLCodeIdsMeasInfoItem_CellSyncReprtTDD;
+static int ett_nbap_SyncDLCodeIdInfo_CellSyncReprtTDD;
+static int ett_nbap_SyncDLCodeIdItem_CellSyncReprtTDD;
+static int ett_nbap_SyncDLCodeIdAvailable_CellSyncReprtTDD;
+static int ett_nbap_BearerRearrangementIndication;
+static int ett_nbap_DCH_RearrangeList_Bearer_RearrangeInd;
+static int ett_nbap_DCH_RearrangeItem_Bearer_RearrangeInd;
+static int ett_nbap_DSCH_RearrangeList_Bearer_RearrangeInd;
+static int ett_nbap_DSCH_RearrangeItem_Bearer_RearrangeInd;
+static int ett_nbap_USCH_RearrangeList_Bearer_RearrangeInd;
+static int ett_nbap_USCH_RearrangeItem_Bearer_RearrangeInd;
+static int ett_nbap_HSDSCH_RearrangeList_Bearer_RearrangeInd;
+static int ett_nbap_HSDSCH_RearrangeItem_Bearer_RearrangeInd;
+static int ett_nbap_E_DCH_RearrangeList_Bearer_RearrangeInd;
+static int ett_nbap_E_DCH_RearrangeItem_Bearer_RearrangeInd;
+static int ett_nbap_Additional_EDCH_Cell_Information_Bearer_Rearrangement_List;
+static int ett_nbap_Additional_EDCH_Cell_Information_Bearer_Rearrangement_ItemIEs;
+static int ett_nbap_RadioLinkActivationCommandFDD;
+static int ett_nbap_DelayedActivationInformationList_RL_ActivationCmdFDD;
+static int ett_nbap_DelayedActivationInformation_RL_ActivationCmdFDD;
+static int ett_nbap_RadioLinkActivationCommandTDD;
+static int ett_nbap_DelayedActivationInformationList_RL_ActivationCmdTDD;
+static int ett_nbap_DelayedActivationInformation_RL_ActivationCmdTDD;
+static int ett_nbap_RadioLinkParameterUpdateIndicationFDD;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Param_Upd;
+static int ett_nbap_Additional_HS_Cell_Information_RL_Param_Upd_ItemIEs;
+static int ett_nbap_Additional_EDCH_Cell_Information_RL_Param_Upd;
+static int ett_nbap_Additional_EDCH_Cell_Information_RL_Param_Upd_ItemIEs;
+static int ett_nbap_RadioLinkParameterUpdateIndicationTDD;
+static int ett_nbap_MBMSNotificationUpdateCommand;
+static int ett_nbap_UEStatusUpdateCommand;
+static int ett_nbap_SecondaryULFrequencyReport;
+static int ett_nbap_SecondaryULFrequencyUpdateIndication;
+static int ett_nbap_NBAP_PDU;
+static int ett_nbap_InitiatingMessage;
+static int ett_nbap_SuccessfulOutcome;
+static int ett_nbap_UnsuccessfulOutcome;
+static int ett_nbap_Outcome;
static expert_field ei_nbap_no_find_port_info;
static expert_field ei_nbap_no_set_comm_context_id;
@@ -6666,9 +6666,9 @@ static void nbap_reset_private_data(packet_info *pinfo)
/* Variables for sub elements dissection */
static const gchar *ProcedureID;
/* Trees */
-static wmem_tree_t* edch_flow_port_map = NULL;
-wmem_tree_t *nbap_scrambling_code_crncc_map = NULL;
-wmem_tree_t *nbap_crncc_urnti_map = NULL;
+static wmem_tree_t* edch_flow_port_map;
+wmem_tree_t *nbap_scrambling_code_crncc_map;
+wmem_tree_t *nbap_crncc_urnti_map;
static wmem_tree_t* com_context_map;
/* This table is used externally from FP, MAC and such, TODO: merge this with
@@ -21179,7 +21179,7 @@ dissect_nbap_INTEGER_0_37799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_nbap_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-nbd.c b/epan/dissectors/packet-nbd.c
index e823b6beda..d22cac7481 100644
--- a/epan/dissectors/packet-nbd.c
+++ b/epan/dissectors/packet-nbd.c
@@ -34,7 +34,7 @@ static int hf_nbd_data;
static gint ett_nbd;
-static gboolean nbd_desegment = TRUE;
+static bool nbd_desegment = true;
typedef struct _nbd_transaction_t {
guint32 req_frame;
diff --git a/epan/dissectors/packet-nbt.c b/epan/dissectors/packet-nbt.c
index 771d34aa36..3d26927cf0 100644
--- a/epan/dissectors/packet-nbt.c
+++ b/epan/dissectors/packet-nbt.c
@@ -130,7 +130,7 @@ static gint ett_nbss;
static gint ett_nbss_flags;
/* desegmentation of NBSS over TCP */
-static gboolean nbss_desegment = TRUE;
+static bool nbss_desegment = true;
/* See RFC 1001 and 1002 for information on the first three, and see
@@ -309,7 +309,7 @@ static const value_string nb_type_name_vals[] = {
#define NBNAME_BUF_LEN 128
static void
-add_rr_to_tree(proto_tree *rr_tree, tvbuff_t *tvb, int offset,
+add_rr_to_tree(proto_tree *rr_tree, packet_info *pinfo, tvbuff_t *tvb, int offset,
const char *name, int namelen,
int type, int class_val,
guint ttl, gushort data_len)
@@ -321,7 +321,7 @@ add_rr_to_tree(proto_tree *rr_tree, tvbuff_t *tvb, int offset,
proto_tree_add_uint(rr_tree, hf_nbns_class, tvb, offset, 2, class_val);
offset += 2;
proto_tree_add_uint_format_value(rr_tree, hf_nbns_ttl, tvb, offset, 4, ttl, "%s",
- signed_time_secs_to_str(wmem_packet_scope(), ttl));
+ signed_time_secs_to_str(pinfo->pool, ttl));
offset += 4;
proto_tree_add_uint(rr_tree, hf_nbns_data_length, tvb, offset, 2, data_len);
}
@@ -632,9 +632,9 @@ dissect_nbns_answer(tvbuff_t *tvb, packet_info *pinfo, int offset, int nbns_data
cur_offset = offset;
- name = (char *)wmem_alloc(wmem_packet_scope(), MAX_NAME_LEN);
- name_str = (char *)wmem_alloc(wmem_packet_scope(), MAX_NAME_LEN);
- nbname = (char *)wmem_alloc(wmem_packet_scope(), 16+4+1); /* 4 for [<last char>] */
+ name = (char *)wmem_alloc(pinfo->pool, MAX_NAME_LEN);
+ name_str = (char *)wmem_alloc(pinfo->pool, MAX_NAME_LEN);
+ nbname = (char *)wmem_alloc(pinfo->pool, 16+4+1); /* 4 for [<last char>] */
name_len = MAX_NAME_LEN;
len = get_nbns_name_type_class(tvb, offset, nbns_data_offset, name,
@@ -669,7 +669,7 @@ dissect_nbns_answer(tvbuff_t *tvb, packet_info *pinfo, int offset, int nbns_data
(void) g_strlcat(name, " (", MAX_NAME_LEN);
(void) g_strlcat(name, netbios_name_type_descr(name_type), MAX_NAME_LEN);
(void) g_strlcat(name, ")", MAX_NAME_LEN);
- add_rr_to_tree(rr_tree, tvb, offset, name,
+ add_rr_to_tree(rr_tree, pinfo, tvb, offset, name,
name_len, type, dns_class, ttl, data_len);
}
while (data_len > 0) {
@@ -713,7 +713,7 @@ dissect_nbns_answer(tvbuff_t *tvb, packet_info *pinfo, int offset, int nbns_data
(cur_offset - offset) + data_len,
ett_nbns_rr, NULL, "%s: type %s, class %s",
name, type_name, class_name);
- add_rr_to_tree(rr_tree, tvb, offset, name,
+ add_rr_to_tree(rr_tree, pinfo, tvb, offset, name,
name_len, type, dns_class, ttl, data_len);
}
@@ -930,7 +930,7 @@ dissect_nbns_answer(tvbuff_t *tvb, packet_info *pinfo, int offset, int nbns_data
(cur_offset - offset) + data_len,
ett_nbns_rr, NULL, "%s: type %s, class %s",
name, type_name, class_name);
- add_rr_to_tree(rr_tree, tvb, offset, name,
+ add_rr_to_tree(rr_tree, pinfo, tvb, offset, name,
name_len, type, dns_class, ttl, data_len);
proto_tree_add_item(rr_tree, hf_nbns_data, tvb, cur_offset, data_len, ENC_NA);
}
@@ -1173,7 +1173,7 @@ dissect_nbdgm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
- name = (char *)wmem_alloc(wmem_packet_scope(), MAX_NAME_LEN);
+ name = (char *)wmem_alloc(pinfo->pool, MAX_NAME_LEN);
/* Source name */
len = get_nbns_name(tvb, offset, offset, name, MAX_NAME_LEN, &name_type);
@@ -1210,7 +1210,7 @@ dissect_nbdgm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
case NBDS_QUERY_REQUEST:
case NBDS_POS_QUERY_RESPONSE:
case NBDS_NEG_QUERY_RESPONSE:
- name = (char *)wmem_alloc(wmem_packet_scope(), MAX_NAME_LEN);
+ name = (char *)wmem_alloc(pinfo->pool, MAX_NAME_LEN);
/* Destination name */
len = get_nbns_name(tvb, offset, offset, name, MAX_NAME_LEN, &name_type);
@@ -1293,7 +1293,7 @@ dissect_nbss_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
NULL
};
- name = (char *)wmem_alloc(wmem_packet_scope(), MAX_NAME_LEN);
+ name = (char *)wmem_alloc(pinfo->pool, MAX_NAME_LEN);
msg_type = tvb_get_guint8(tvb, offset);
diff --git a/epan/dissectors/packet-ncp-int.h b/epan/dissectors/packet-ncp-int.h
index 80206410d0..3259b7be9d 100644
--- a/epan/dissectors/packet-ncp-int.h
+++ b/epan/dissectors/packet-ncp-int.h
@@ -50,13 +50,13 @@ struct ncp_common_header {
uint8_t conn_high; /* type=0x5555 doesn't have this */
};
-extern gboolean nds_defragment;
-extern gboolean nds_echo_eid;
-extern gboolean ncp_echo_err;
-extern gboolean ncp_echo_conn;
-extern gboolean ncp_echo_server;
-extern gboolean ncp_echo_file;
-extern gboolean ncp_newstyle;
+extern bool nds_defragment;
+extern bool nds_echo_eid;
+extern bool ncp_echo_err;
+extern bool ncp_echo_conn;
+extern bool ncp_echo_server;
+extern bool ncp_echo_file;
+extern bool ncp_newstyle;
struct _sub_ptvc_record {
int *ett;
diff --git a/epan/dissectors/packet-ncp.c b/epan/dissectors/packet-ncp.c
index a19b581542..d4df35948c 100644
--- a/epan/dissectors/packet-ncp.c
+++ b/epan/dissectors/packet-ncp.c
@@ -135,7 +135,7 @@ static struct ncp_common_header *ncp_hdr;
dissector_handle_t nds_data_handle;
/* desegmentation of NCP over TCP */
-static gboolean ncp_desegment = TRUE;
+static bool ncp_desegment = true;
#define TCP_PORT_NCP 524
#define UDP_PORT_NCP 524
@@ -673,7 +673,7 @@ typedef struct {
guint32 session_start_packet_num;
} mncp_rhash_value;
-static GHashTable *mncp_rhash = NULL;
+static GHashTable *mncp_rhash;
/* Hash Functions */
static gint
diff --git a/epan/dissectors/packet-ncp2222.inc b/epan/dissectors/packet-ncp2222.inc
index b6f790ffa3..d2aa9d6ef6 100644
--- a/epan/dissectors/packet-ncp2222.inc
+++ b/epan/dissectors/packet-ncp2222.inc
@@ -26,13 +26,13 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
-gboolean nds_defragment = true;
-gboolean nds_echo_eid = true;
-gboolean ncp_echo_err = true;
-gboolean ncp_echo_conn = false;
-gboolean ncp_echo_server = true;
-gboolean ncp_echo_file = false;
-gboolean ncp_newstyle = true;
+bool nds_defragment = true;
+bool nds_echo_eid = true;
+bool ncp_echo_err = true;
+bool ncp_echo_conn;
+bool ncp_echo_server = true;
+bool ncp_echo_file;
+bool ncp_newstyle = true;
extern dissector_handle_t nds_data_handle;
typedef struct {
@@ -2039,8 +2039,8 @@ typedef struct {
char object_name[256];
} ncp_req_eid_hash_value;
-static wmem_map_t *ncp_req_hash = NULL;
-static wmem_map_t *ncp_req_eid_hash = NULL;
+static wmem_map_t *ncp_req_hash;
+static wmem_map_t *ncp_req_eid_hash;
static uint32_t check_offset_addition(uint32_t offset, uint32_t value, proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb)
{
@@ -2388,13 +2388,13 @@ add_ptvc_field(packet_info* pinfo, ptvcursor_t *ptvc, const ptvc_record *rec, bo
if (hinfo->type == FT_STRING) {
col_append_fstr(pinfo->cinfo, COL_INFO,
(const char*)(repeat ? rec->req_info_str->repeat_string : rec->req_info_str->first_string),
- tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), rec->length, ENC_ASCII));
} else if (hinfo->type == FT_STRINGZ) {
int length;
col_append_fstr(pinfo->cinfo, COL_INFO,
(const char*)(repeat ? rec->req_info_str->repeat_string : rec->req_info_str->first_string),
- tvb_get_stringz_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ tvb_get_stringz_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), &length, ENC_ASCII));
} else if (hinfo->type == FT_UINT_STRING) {
uint32_t length = 0;
@@ -2420,12 +2420,12 @@ add_ptvc_field(packet_info* pinfo, ptvcursor_t *ptvc, const ptvc_record *rec, bo
col_append_fstr(pinfo->cinfo, COL_INFO,
(const char*)(repeat ? rec->req_info_str->repeat_string : rec->req_info_str->first_string),
- tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc)+rec->length, length, ENC_ASCII));
} else if (hinfo->type == FT_BYTES) {
col_append_fstr(pinfo->cinfo, COL_INFO,
(const char*)(repeat ? rec->req_info_str->repeat_string : rec->req_info_str->first_string),
- tvb_bytes_to_str(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ tvb_bytes_to_str(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), rec->length));
}
}
@@ -2823,7 +2823,7 @@ static void ncp1633_reply_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, con
ptvcursor_advance(ptvc, 134);
volume_name_len = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
ptvcursor_advance(ptvc, 1);
- volume_name = tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ volume_name = tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), volume_name_len, ENC_ASCII);
expert_add_info_format(pinfo, NULL, &ei_ncp_eid,
@@ -2839,7 +2839,7 @@ static void ncp1711_reply_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, con
uint8_t maj_ver, min_ver, os_lang, serv_type, kernel;
uint16_t prod_rev;
- fsname = tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ fsname = tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), 48, ENC_ASCII);
ptvcursor_advance(ptvc, 48);
maj_ver = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
@@ -2865,7 +2865,7 @@ static void ncp1711_reply_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, con
static void ncp42_request_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const ncp_record *ncp_rec _U_, bool request)
{
if (ncp_echo_file && request) {
- char* filehandle = tvb_bytes_to_str(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ char* filehandle = tvb_bytes_to_str(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc)+1, 6);
expert_add_info_format(pinfo, NULL, &ei_ncp_file_handle, "Close file handle %s", filehandle);
@@ -2892,7 +2892,7 @@ static void file_rights_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const
ptvcursor_advance(ptvc, 8);
path_count = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
ptvcursor_advance(ptvc, 1);
- filename = tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ filename = tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), path_count, ENC_ASCII);
break;
case 33:
@@ -2903,7 +2903,7 @@ static void file_rights_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const
ptvcursor_advance(ptvc, 8);
path_count = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
ptvcursor_advance(ptvc, 1);
- filename = tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ filename = tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), path_count, ENC_ASCII);
break;
}
@@ -2918,7 +2918,7 @@ static void file_rights_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const
ptvcursor_advance(ptvc, 14);
path_count = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
ptvcursor_advance(ptvc, 1);
- filename = tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ filename = tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), path_count, ENC_ASCII);
break;
case 33:
@@ -2929,7 +2929,7 @@ static void file_rights_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const
ptvcursor_advance(ptvc, 14);
path_count = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
ptvcursor_advance(ptvc, 1);
- filename = tvb_get_string_enc(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ filename = tvb_get_string_enc(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), path_count, ENC_ASCII);
break;
}
@@ -2945,7 +2945,7 @@ static void file_rights_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const
uint8_t oaction, oplockflg;
char* filehandle;
- filehandle = tvb_bytes_to_str(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ filehandle = tvb_bytes_to_str(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), 4);
ptvcursor_advance(ptvc, 4);
oaction = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
@@ -2998,7 +2998,7 @@ static void ncp572c_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const ncp
ptvcursor_advance(ptvc, 10);
new_rights = tvb_get_ntohs(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
ptvcursor_advance(ptvc, 2);
- filehandle = tvb_bytes_to_str(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ filehandle = tvb_bytes_to_str(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), 4);
expert_add_info_format(pinfo, NULL, &ei_ncp_file_rights_change, "Change handle %s rights from:(%s) to:(%s)",
@@ -3009,7 +3009,7 @@ static void ncp572c_expert_func(ptvcursor_t *ptvc, packet_info *pinfo, const ncp
} else {
uint32_t rights;
- filehandle = tvb_bytes_to_str(wmem_packet_scope(), ptvcursor_tvbuff(ptvc),
+ filehandle = tvb_bytes_to_str(pinfo->pool, ptvcursor_tvbuff(ptvc),
ptvcursor_current_offset(ptvc), 4);
ptvcursor_advance(ptvc, 4);
rights = tvb_get_ntohl(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc)+8);
@@ -3410,7 +3410,7 @@ print_nds_values(proto_tree *vtree, packet_info* pinfo, tvbuff_t *tvb, uint32_t
ns.secs = tvb_get_letohl(tvb, voffset);
ns.nsecs = 0;
proto_tree_add_time_format(nvtree, hf_nds_ds_time, tvb, voffset, 4,
- &ns, "Timestamp: %s", abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ &ns, "Timestamp: %s", abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
voffset = voffset + 4;
proto_tree_add_item(nvtree, hf_nds_rnum, tvb, voffset, 2, ENC_LITTLE_ENDIAN);
voffset = voffset+2;
@@ -3441,7 +3441,7 @@ print_nds_values(proto_tree *vtree, packet_info* pinfo, tvbuff_t *tvb, uint32_t
ns.secs = tvb_get_letohl(tvb, voffset);
ns.nsecs = 0;
proto_tree_add_time_format(nvtree, hf_nds_ds_time, tvb, voffset, 4,
- &ns, "Time: %s", abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ &ns, "Time: %s", abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
voffset = voffset + 4;
break;
case 0x00000019: /* Typed Name */
@@ -4907,7 +4907,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(atree, hf_es_seconds, tvb, ioffset,
4, &ns, "Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
proto_tree_add_item(atree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -4953,7 +4953,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(ntree, hf_es_seconds, tvb, ioffset,
4, &ns, "Creation Time: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
proto_tree_add_item(ntree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -5051,7 +5051,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(ntree, hf_es_seconds, tvb, ioffset,
4, &ns, "Modification Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
proto_tree_add_item(ntree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -5379,7 +5379,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(ntree, hf_es_seconds, tvb, ioffset,
4, &ns, "Modification Time: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
break;
case DSI_MODIFICATION_TIMESTAMP: /* Modification Timestamp */
@@ -5387,7 +5387,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(ntree, hf_es_seconds, tvb, ioffset,
4, &ns, "Modification Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
proto_tree_add_item(ntree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -5401,7 +5401,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(ntree, hf_es_seconds, tvb, ioffset,
4, &ns, "Creation Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
proto_tree_add_item(ntree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -5477,7 +5477,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(ntree, hf_es_seconds, tvb, ioffset,
4, &ns, "Purge Time: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
break;
case DSI_DEREFERENCED_BASE_CLASS: /* Dereference Base Class */
@@ -5752,7 +5752,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(sub1tree, hf_es_seconds, tvb, ioffset,
4, &ns, "Creation Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
proto_tree_add_item(sub1tree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -5764,7 +5764,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(sub1tree, hf_es_seconds, tvb, ioffset,
4, &ns, "Modification Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset = ioffset + 4;
proto_tree_add_item(sub1tree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -5972,7 +5972,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(ntree, hf_es_seconds, tvb, ioffset,
4, &ns, "Creation Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset += 4;
proto_tree_add_item(ntree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -6002,7 +6002,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ns.nsecs = 0;
proto_tree_add_time_format(sub2tree, hf_es_seconds, tvb, ioffset,
4, &ns, "Timestamp: %s",
- abs_time_secs_to_str(wmem_packet_scope(), ns.secs, ABSOLUTE_TIME_LOCAL, true));
+ abs_time_secs_to_str(pinfo->pool, ns.secs, ABSOLUTE_TIME_LOCAL, true));
ioffset += 4;
proto_tree_add_item(sub2tree, hf_nds_replica_num, tvb, ioffset,
2, ENC_LITTLE_ENDIAN);
@@ -6079,7 +6079,7 @@ process_multivalues(proto_tree *ncp_tree, tvbuff_t *tvb, packet_info *pinfo, nds
ioffset += 4;
dissect_nds_iterator(ntree, tvb, pinfo, value4, value5, ioffset, true);
- values->vstring = wmem_strdup_printf(wmem_packet_scope(), "(%s)", values->vstring);
+ values->vstring = wmem_strdup_printf(pinfo->pool, "(%s)", values->vstring);
break;
default:
@@ -7080,7 +7080,7 @@ nds_defrag(tvbuff_t *tvb, packet_info *pinfo, uint32_t nw_connection, uint8_t se
}
}
-static bool ncp2222_dfilters_compiled = false;
+static bool ncp2222_dfilters_compiled;
static void
ncp2222_compile_dfilters(void)
@@ -7678,7 +7678,7 @@ dissect_nds_reply(tvbuff_t *tvb, packet_info *pinfo,
if (temp_value.vvalue == 0x00)
break;
- temp_value.vstring =(const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, nds_offset+4, temp_value.vvalue, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring =(const char*)tvb_get_string_enc(pinfo->pool, tvb, nds_offset+4, temp_value.vvalue, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_name, tvb, nds_offset, 4+temp_value.vvalue, temp_value.vstring, "Alias Name: %s", temp_value.vstring);
break;
case NDS_TAG_REFERRAL_INFORMATION:
@@ -7828,7 +7828,7 @@ dissect_nds_reply(tvbuff_t *tvb, packet_info *pinfo,
if (temp_value.vvalue == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, nds_offset+4, temp_value.vvalue, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, nds_offset+4, temp_value.vvalue, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_name, tvb, nds_offset, 4+temp_value.vvalue, temp_value.vstring, "Server Distinguished Name: %s", temp_value.vstring);
nds_offset += 4+temp_value.vvalue;
nds_offset += align_4(tvb, nds_offset);
@@ -8519,7 +8519,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_name, tvb, foffset, 4+value1, global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -8573,7 +8573,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
foffset += 4;
value1 = tvb_get_letohl(tvb, foffset);
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_output_delimiter, tvb, foffset, 4+value1, global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -8729,7 +8729,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_name, tvb, foffset, 4+value1, global_object_name, "Attribute Name Being Compared: %s", global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -8742,7 +8742,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
foffset += 4; /* Attribute Count = 1 */
value1 = tvb_get_letohl(tvb, foffset);
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_value_string, tvb, foffset, 4+value1, temp_value.vstring, "Attribute Value: %s", temp_value.vstring);
col_append_fstr(pinfo->cinfo, COL_INFO, " %s", temp_value.vstring);
break;
@@ -8802,7 +8802,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
foffset += 2;
value1 = tvb_get_letohl(tvb, foffset);
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_name_filter, tvb, foffset, 4+value1, temp_value.vstring);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", temp_value.vstring);
foffset += 4+value1;
@@ -8812,7 +8812,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
foffset += align_4(tvb, foffset);
value1 = tvb_get_letohl(tvb, foffset);
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_class_filter, tvb, foffset, 4+value1, temp_value.vstring);
col_append_fstr(pinfo->cinfo, COL_INFO, " %s", temp_value.vstring);
foffset += 4+value1;
@@ -8873,7 +8873,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
value1 = tvb_get_letohl(tvb, foffset);
if (value1 == 0)
break;
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_relative_dn, tvb, foffset, 4+value1, global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -8939,7 +8939,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
foffset += align_4(tvb, foffset);
value1 = tvb_get_letohl(tvb, foffset);
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_new_rdn, tvb, foffset, 4+value1, temp_value.vstring);
break;
@@ -8952,7 +8952,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
value1 = tvb_get_letohl(tvb, foffset);
if (value1 == 0)
break;
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_relative_dn, tvb, foffset, 4+value1, global_object_name, "Attribute Name: %s", global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -8982,7 +8982,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_attribute_dn, tvb, foffset, 4+value1, global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -9028,7 +9028,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_base_class, tvb, foffset, 4+value1, global_object_name, "Class Name: %s", global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -9054,7 +9054,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- global_object_name = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ global_object_name = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_base, tvb, foffset, 4+value1, global_object_name, "Class Name: %s", global_object_name);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", global_object_name);
if (!pinfo->fd->visited) {
@@ -9081,7 +9081,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_name, tvb, foffset, 4+value1, temp_value.vstring, "Trustee Name: %s", temp_value.vstring);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", temp_value.vstring);
foffset += 4+value1;
@@ -9091,7 +9091,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_name, tvb, foffset, 4+value1, temp_value.vstring, "Attribute to be Checked: %s", temp_value.vstring);
foffset += 4+value1;
foffset += align_4(tvb, foffset);
@@ -9102,7 +9102,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string_format(ncp_tree, hf_nds_name, tvb, foffset, 4+value1, temp_value.vstring, "Security Equivalence: %s", temp_value.vstring);
col_append_fstr(pinfo->cinfo, COL_INFO, " %s", temp_value.vstring);
}
@@ -9174,7 +9174,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_target_name, tvb, foffset, 4+value1, temp_value.vstring);
break;
case 0x1a: /* Not Defined */
@@ -9192,7 +9192,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_stream_name, tvb, foffset, 4+value1, temp_value.vstring);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", temp_value.vstring);
break;
@@ -9222,7 +9222,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_root_name, tvb, foffset, 4+value1, temp_value.vstring);
col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", temp_value.vstring);
}
@@ -9249,7 +9249,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
foffset += 4;
value1 = tvb_get_letohl(tvb, foffset);
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_new_rdn, tvb, foffset, 4+value1, temp_value.vstring);
foffset += (4+value1);
foffset += align_4(tvb, foffset);
@@ -9257,7 +9257,7 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
value1 = tvb_get_letohl(tvb, foffset);
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_target_name, tvb, foffset, 4+value1, temp_value.vstring);
break;
case 0x2b:
@@ -9273,14 +9273,14 @@ dissect_nds_request(tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_uint_format(ncp_tree, hf_nds_ver, tvb, foffset, 4, value1, "Destination Parent Entry ID: 0x%08x", value1);
foffset += 4;
value1 = tvb_get_letohl(tvb, foffset);
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_new_rdn, tvb, foffset, 4+value1, temp_value.vstring);
foffset += (4+value1);
foffset += align_4(tvb, foffset);
value1 = tvb_get_letohl(tvb, foffset);
if (value1 == 0)
break;
- temp_value.vstring = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ temp_value.vstring = (const char*)tvb_get_string_enc(pinfo->pool, tvb, foffset+4, value1, ENC_UTF_16|ENC_LITTLE_ENDIAN);
proto_tree_add_string(ncp_tree, hf_nds_target_name, tvb, foffset, 4+value1, temp_value.vstring);
break;
case 0x2c: /* Not Defined */
diff --git a/epan/dissectors/packet-ndmp.c b/epan/dissectors/packet-ndmp.c
index 575b2be8ad..aa82072e73 100644
--- a/epan/dissectors/packet-ndmp.c
+++ b/epan/dissectors/packet-ndmp.c
@@ -318,7 +318,7 @@ typedef struct _ndmp_conv_data_t {
ndmp_task_data_t *task;
conversation_t *conversation;
} ndmp_conv_data_t;
-static ndmp_conv_data_t *ndmp_conv_data=NULL;
+static ndmp_conv_data_t *ndmp_conv_data;
static proto_tree *top_tree;
static itl_nexus_t *
@@ -354,10 +354,10 @@ struct ndmp_header {
};
/* desegmentation of NDMP packets */
-static gboolean ndmp_desegment = TRUE;
+static bool ndmp_desegment = true;
/* defragmentation of fragmented NDMP records */
-static gboolean ndmp_defragment = TRUE;
+static bool ndmp_defragment = true;
#define NDMP_MESSAGE_REQUEST 0x00
#define NDMP_MESSAGE_REPLY 0x01
@@ -3768,31 +3768,31 @@ proto_register_ndmp(void)
{ &hf_ndmp_tape_invalid_file_num, {
"Invalid file num", "ndmp.tape.invalid.file_num", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_invalid_file_num), 0x00000001, "invalid_file_num", HFILL }},
+ TFS(&tfs_ndmp_tape_invalid_file_num), 0x00000001, NULL, HFILL }},
{ &hf_ndmp_tape_invalid_soft_errors, {
"Soft errors", "ndmp.tape.invalid.soft_errors", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_invalid_soft_errors), 0x00000002, "soft_errors", HFILL }},
+ TFS(&tfs_ndmp_tape_invalid_soft_errors), 0x00000002, NULL, HFILL }},
{ &hf_ndmp_tape_invalid_block_size, {
"Block size", "ndmp.tape.invalid.block_size", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_invalid_block_size), 0x00000004, "block_size", HFILL }},
+ TFS(&tfs_ndmp_tape_invalid_block_size), 0x00000004, NULL, HFILL }},
{ &hf_ndmp_tape_invalid_block_no, {
"Block no", "ndmp.tape.invalid.block_no", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_invalid_block_no), 0x00000008, "block_no", HFILL }},
+ TFS(&tfs_ndmp_tape_invalid_block_no), 0x00000008, NULL, HFILL }},
{ &hf_ndmp_tape_invalid_total_space, {
"Total space", "ndmp.tape.invalid.total_space", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_invalid_total_space), 0x00000010, "total_space", HFILL }},
+ TFS(&tfs_ndmp_tape_invalid_total_space), 0x00000010, NULL, HFILL }},
{ &hf_ndmp_tape_invalid_space_remain, {
"Space remain", "ndmp.tape.invalid.space_remain", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_invalid_space_remain), 0x00000020, "space_remain", HFILL }},
+ TFS(&tfs_ndmp_tape_invalid_space_remain), 0x00000020, NULL, HFILL }},
{ &hf_ndmp_tape_invalid_partition, {
"Invalid partition", "ndmp.tape.invalid.partition", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_invalid_partition), 0x00000040, "partition", HFILL }},
+ TFS(&tfs_ndmp_tape_invalid_partition), 0x00000040, NULL, HFILL }},
{ &hf_ndmp_tape_flags, {
"Flags", "ndmp.tape.flags", FT_UINT32, BASE_HEX,
@@ -3800,11 +3800,11 @@ proto_register_ndmp(void)
{ &hf_ndmp_tape_flags_no_rewind, {
"No rewind", "ndmp.tape.flags.no_rewind", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_flags_no_rewind), 0x00000008, "no_rewind", HFILL, }},
+ TFS(&tfs_ndmp_tape_flags_no_rewind), 0x00000008, NULL, HFILL, }},
{ &hf_ndmp_tape_flags_write_protect, {
"Write protect", "ndmp.tape.flags.write_protect", FT_BOOLEAN, 32,
- TFS(&tfs_ndmp_tape_flags_write_protect), 0x00000010, "write_protect", HFILL, }},
+ TFS(&tfs_ndmp_tape_flags_write_protect), 0x00000010, NULL, HFILL, }},
{ &hf_ndmp_tape_flags_error, {
"Error", "ndmp.tape.flags.error", FT_BOOLEAN, 32,
diff --git a/epan/dissectors/packet-ndps.c b/epan/dissectors/packet-ndps.c
index cd0b128a28..105fcb644a 100644
--- a/epan/dissectors/packet-ndps.c
+++ b/epan/dissectors/packet-ndps.c
@@ -37,15 +37,15 @@ static dissector_handle_t ndps_handle, ndps_tcp_handle;
static reassembly_table ndps_reassembly_table;
/* desegmentation of ndps */
-static gboolean ndps_defragment = TRUE;
+static bool ndps_defragment = true;
static guint32 tid = 1;
/* Show ID's value */
-static gboolean ndps_show_oids=FALSE;
+static bool ndps_show_oids=FALSE;
/* Global Attribute for evaluation of Values */
-static const char *global_attribute_name=NULL;
+static const char *global_attribute_name;
static int dissect_ndps_request(tvbuff_t*, packet_info*, proto_tree*, guint32, guint32, int);
@@ -353,7 +353,7 @@ static expert_field ei_ndps_truncated;
/* desegmentation of NDPS over TCP */
-static gboolean ndps_desegment = TRUE;
+static bool ndps_desegment = true;
static const value_string true_false[] = {
{ 0x00000000, "Accept" },
@@ -2620,7 +2620,7 @@ server_entry(tvbuff_t* tvb, packet_info* pinfo, proto_tree *ndps_tree, int foffs
atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Server Info");
foffset = ndps_string(tvb, hf_ndps_server_name, ndps_tree, foffset, &server_name);
- proto_item_append_text(aitem, ": %s", format_text(wmem_packet_scope(), server_name, strlen(server_name)));
+ proto_item_append_text(aitem, ": %s", format_text(pinfo->pool, server_name, strlen(server_name)));
proto_tree_add_item(atree, hf_ndps_server_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
foffset = print_address(tvb, atree, foffset);
@@ -4025,7 +4025,7 @@ typedef struct {
guint32 ndps_end_frag;
} ndps_req_hash_value;
-static wmem_map_t *ndps_req_hash = NULL;
+static wmem_map_t *ndps_req_hash;
/* Hash Functions */
static gint
@@ -4433,9 +4433,9 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
guint32 scope;
guint32 job_type;
gboolean supplier_flag;
- gboolean language_flag;
- gboolean method_flag;
- gboolean delivery_address_flag;
+ bool language_flag;
+ bool method_flag;
+ bool delivery_address_flag;
guint32 profiles_type;
guint32 profiles_choice_type;
guint32 integer_type_flag;
diff --git a/epan/dissectors/packet-netbios.c b/epan/dissectors/packet-netbios.c
index 727c7ddf3c..bd0fa35dec 100644
--- a/epan/dissectors/packet-netbios.c
+++ b/epan/dissectors/packet-netbios.c
@@ -192,7 +192,7 @@ static value_string_ext nb_name_type_vals_ext = VALUE_STRING_EXT_INIT(nb_name_ty
static reassembly_table netbios_reassembly_table;
/* defragmentation of NetBIOS Frame */
-static gboolean netbios_defragment = TRUE;
+static bool netbios_defragment = true;
/* See
@@ -271,7 +271,7 @@ static const value_string max_frame_size_vals[] = {
};
-static gboolean
+static bool
capture_netbios(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_netbios);
diff --git a/epan/dissectors/packet-netflow.c b/epan/dissectors/packet-netflow.c
index 329f632997..88a17f314c 100644
--- a/epan/dissectors/packet-netflow.c
+++ b/epan/dissectors/packet-netflow.c
@@ -170,15 +170,15 @@ static dissector_handle_t eth_handle;
/*
* global_netflow_ports : holds the configured range of ports for netflow
*/
-static range_t *global_netflow_ports = NULL;
+static range_t *global_netflow_ports;
/*
* global_ipfix_ports : holds the configured range of ports for IPFIX
*/
-static range_t *global_ipfix_ports = NULL;
+static range_t *global_ipfix_ports;
-static gboolean netflow_preference_desegment = TRUE;
+static bool netflow_preference_desegment = true;
-static gboolean netflow_preference_tcpflags_1byte_cwr = FALSE;
+static bool netflow_preference_tcpflags_1byte_cwr;
/*
* Flowset (template) ID's
@@ -332,7 +332,7 @@ typedef struct _v9_v10_tmplt {
/* Map from (converstion+obs-domain-id+flowset-id) -> v9_v10_tmplt_entry_t* */
/* Confusingly, for key, fill in only relevant parts of v9_v10_tmplt_entry_t... */
-wmem_map_t *v9_v10_tmplt_table = NULL;
+wmem_map_t *v9_v10_tmplt_table;
static const value_string v9_v10_template_types[] = {
@@ -3604,6 +3604,50 @@ static int hf_pie_ixia_sip_call_id;
static int hf_pie_ixia_sip_content_type;
static int hf_pie_ixia_sip_route;
static int hf_pie_ixia_sip_geolocation;
+static int hf_pie_ixia_diameter_message;
+static int hf_pie_ixia_diameter_command_code;
+static int hf_pie_ixia_diameter_request;
+static int hf_pie_ixia_diameter_response;
+static int hf_pie_ixia_diameter_application_id;
+static int hf_pie_ixia_diameter_origin_host;
+static int hf_pie_ixia_diameter_origin_realm;
+static int hf_pie_ixia_diameter_dest_host;
+static int hf_pie_ixia_diameter_dest_realm;
+static int hf_pie_ixia_diameter_user_name;
+static int hf_pie_ixia_diameter_sc_address;
+static int hf_pie_ixia_diameter_auth_vector_rand;
+static int hf_pie_ixia_diameter_auth_vector_xres;
+static int hf_pie_ixia_diameter_auth_vector_autn;
+static int hf_pie_ixia_diameter_auth_vector_kasme;
+static int hf_pie_ixia_diameter_sub_data_ambr_max_req_bw_ul;
+static int hf_pie_ixia_diameter_sub_data_ambr_max_req_bw_dl;
+static int hf_pie_ixia_diameter_apn_configuration_profile;
+static int hf_pie_ixia_diameter_access_restriction_data_flags;
+static int hf_pie_ixia_diameter_route_record;
+static int hf_pie_ixia_diameter_framed_ip_address;
+static int hf_pie_ixia_diameter_3gpp_user_location_info;
+static int hf_pie_ixia_diameter_called_station_id;
+static int hf_pie_ixia_diameter_qos_class_identifier;
+static int hf_pie_ixia_diameter_qos_max_req_bw_dl;
+static int hf_pie_ixia_diameter_qos_max_req_bw_ul;
+static int hf_pie_ixia_diameter_qos_guaranteed_br_ul;
+static int hf_pie_ixia_diameter_qos_guaranteed_br_dl;
+static int hf_pie_ixia_diameter_qos_apn_agg_max_br_ul;
+static int hf_pie_ixia_diameter_qos_apn_agg_max_br_dl;
+static int hf_pie_ixia_diameter_integrity_key;
+static int hf_pie_ixia_diameter_confidentiality_key;
+static int hf_pie_ixia_diameter_result_code;
+static int hf_pie_ixia_diameter_subscription_id_data;
+static int hf_pie_ixia_session_fingerprint;
+static int hf_pie_ixia_session_parse_errors;
+static int hf_pie_ixia_http_headers;
+static int hf_pie_ixia_http_header_field;
+static int hf_pie_ixia_http_header_value;
+static int hf_pie_ixia_sip_packets;
+static int hf_pie_ixia_sip_headers;
+static int hf_pie_ixia_sip_type;
+static int hf_pie_ixia_sip_header_field;
+static int hf_pie_ixia_sip_header_value;
static int hf_pie_netscaler;
static int hf_pie_netscaler_roundtriptime;
@@ -4923,7 +4967,7 @@ dissect_v9_v10_flowset(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree, i
ver = hdrinfo_p->vspec;
if ((ver != 9) && (ver != 10))
- return (0);
+ return 0;
flowset_id = tvb_get_ntohs(tvb, offset);
length = tvb_get_ntohs(tvb, offset + 2);
@@ -5012,7 +5056,7 @@ dissect_v9_v10_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree, int
length, plurality(length, "", "s"));
}
- return (0);
+ return 0;
}
#define GOT_LOCAL_ADDR (1 << 0)
@@ -11123,6 +11167,186 @@ dissect_v9_v10_pdu_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree,
ti = proto_tree_add_item(pdutree, hf_pie_ixia_sip_geolocation,
tvb, offset, length, ENC_ASCII);
break;
+ case ((VENDOR_IXIA << 16) | 330):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_message,
+ tvb, offset, length, ENC_NA);
+ dissect_v10_pdu_subtemplate_list(tvb, pinfo, ti, offset, length, hdrinfo_p);
+ break;
+ case ((VENDOR_IXIA << 16) | 331):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_command_code,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 332):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_request,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 333):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_response,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 334):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_application_id,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 335):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_origin_host,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 336):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_origin_realm,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 337):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_dest_host,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 338):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_dest_realm,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 339):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_user_name,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 340):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_sc_address,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 341):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_auth_vector_rand,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 342):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_auth_vector_xres,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 343):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_auth_vector_autn,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 344):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_auth_vector_kasme,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 345):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_sub_data_ambr_max_req_bw_ul,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 346):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_sub_data_ambr_max_req_bw_dl,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 347):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_apn_configuration_profile,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 348):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_access_restriction_data_flags,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 349):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_route_record,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 350):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_framed_ip_address,
+ tvb, offset, length, ENC_NA);
+ break;
+ case ((VENDOR_IXIA << 16) | 351):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_3gpp_user_location_info,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 352):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_called_station_id,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 353):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_qos_class_identifier,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 354):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_qos_max_req_bw_dl,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 355):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_qos_max_req_bw_ul,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 356):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_qos_guaranteed_br_ul,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 357):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_qos_guaranteed_br_dl,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 358):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_qos_apn_agg_max_br_ul,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 359):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_qos_apn_agg_max_br_dl,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 360):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_integrity_key,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 361):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_confidentiality_key,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 362):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_result_code,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 363):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_diameter_subscription_id_data,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 364):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_session_fingerprint,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 365):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_session_parse_errors,
+ tvb, offset, length, ENC_BIG_ENDIAN);
+ break;
+ case ((VENDOR_IXIA << 16) | 366):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_http_headers,
+ tvb, offset, length, ENC_NA);
+ dissect_v10_pdu_subtemplate_list(tvb, pinfo, ti, offset, length, hdrinfo_p);
+ break;
+ case ((VENDOR_IXIA << 16) | 367):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_http_header_field,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 368):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_http_header_value,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 369):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_sip_packets,
+ tvb, offset, length, ENC_ASCII);
+ dissect_v10_pdu_subtemplate_list(tvb, pinfo, ti, offset, length, hdrinfo_p);
+ break;
+ case ((VENDOR_IXIA << 16) | 370):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_sip_headers,
+ tvb, offset, length, ENC_ASCII);
+ dissect_v10_pdu_subtemplate_list(tvb, pinfo, ti, offset, length, hdrinfo_p);
+ break;
+ case ((VENDOR_IXIA << 16) | 371):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_sip_type,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 372):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_sip_header_field,
+ tvb, offset, length, ENC_ASCII);
+ break;
+ case ((VENDOR_IXIA << 16) | 373):
+ ti = proto_tree_add_item(pdutree, hf_pie_ixia_sip_header_value,
+ tvb, offset, length, ENC_ASCII);
+ break;
/* END Ixia Communications */
/* START Netscaler Communications */
@@ -19325,7 +19549,7 @@ proto_register_netflow(void)
{&hf_pie_ixia_udpAppResponseTime,
{"UDP Average Application Response Time (us)", "cflow.pie.ixia.udpAppResponseTime",
FT_UINT32, BASE_DEC, NULL, 0x0,
- "Average UDP Application Response Time (us)", HFILL}
+ NULL, HFILL}
},
/* ixia, 3054 / 285 */
@@ -19643,6 +19867,324 @@ proto_register_netflow(void)
"SIP Header Geolocation", HFILL}
},
+ /* ixia, 3054 / 330 */
+ {&hf_pie_ixia_diameter_message,
+ {"Diameter Message", "cflow.pie.ixia.diameter-message",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ "List of Diameter Messages", HFILL}
+ },
+
+ /* ixia, 3054 / 331 */
+ {&hf_pie_ixia_diameter_command_code,
+ {"Command Code", "cflow.pie.ixia.diameter-command-code",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter Command Code", HFILL}
+ },
+
+ /* ixia, 3054 / 332 */
+ {&hf_pie_ixia_diameter_request,
+ {"Request", "cflow.pie.ixia.diameter-request",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ "Diameter Request", HFILL}
+ },
+
+ /* ixia, 3054 / 333 */
+ {&hf_pie_ixia_diameter_response,
+ {"Response", "cflow.pie.ixia.diameter-response",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ "Diameter Response", HFILL}
+ },
+
+ /* ixia, 3054 / 334 */
+ {&hf_pie_ixia_diameter_application_id,
+ {"Application ID", "cflow.pie.ixia.diameter-application-id",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter Application ID", HFILL}
+ },
+
+ /* ixia, 3054 / 335 */
+ {&hf_pie_ixia_diameter_origin_host,
+ {"Origin Host", "cflow.pie.ixia.diameter-origin-host",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter Origin Host", HFILL}
+ },
+
+ /* ixia, 3054 / 336 */
+ {&hf_pie_ixia_diameter_origin_realm,
+ {"Origin Realm", "cflow.pie.ixia.diameter-origin-realm",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter Origin Realm", HFILL}
+ },
+
+ /* ixia, 3054 / 337 */
+ {&hf_pie_ixia_diameter_dest_host,
+ {"Destination Host", "cflow.pie.ixia.diameter-dest-host",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter Destination Host", HFILL}
+ },
+
+ /* ixia, 3054 / 338 */
+ {&hf_pie_ixia_diameter_dest_realm,
+ {"Destination Realm", "cflow.pie.ixia.diameter-dest-realm",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter Destination Realm", HFILL}
+ },
+
+ /* ixia, 3054 / 339 */
+ {&hf_pie_ixia_diameter_user_name,
+ {"User Name", "cflow.pie.ixia.diameter-user-name",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter User Name", HFILL}
+ },
+
+ /* ixia, 3054 / 340 */
+ {&hf_pie_ixia_diameter_sc_address,
+ {"SC Address", "cflow.pie.ixia.diameter-sc-address",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter SC Address", HFILL}
+ },
+
+ /* ixia, 3054 / 341 */
+ {&hf_pie_ixia_diameter_auth_vector_rand,
+ {"Auth Vector RAND", "cflow.pie.ixia.diameter-auth-vector-rand",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter Authentication Vector RAND", HFILL}
+ },
+
+ /* ixia, 3054 / 342 */
+ {&hf_pie_ixia_diameter_auth_vector_xres,
+ {"Auth Vector XRES", "cflow.pie.ixia.diameter-auth-vector-xres",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter Authentication Vector XRES", HFILL}
+ },
+
+ /* ixia, 3054 / 343 */
+ {&hf_pie_ixia_diameter_auth_vector_autn,
+ {"Auth Vector AUTN", "cflow.pie.ixia.diameter-auth-vector-autn",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter Authentication Vector AUTN", HFILL}
+ },
+
+ /* ixia, 3054 / 344 */
+ {&hf_pie_ixia_diameter_auth_vector_kasme,
+ {"Auth Vector KASME", "cflow.pie.ixia.diameter-auth-vector-kasme",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter Authentication Vector KASME", HFILL}
+ },
+
+ /* ixia, 3054 / 345 */
+ {&hf_pie_ixia_diameter_sub_data_ambr_max_req_bw_ul,
+ {"Subscription Data AMBR Max Requested Bandwidth Upload",
+ "cflow.pie.ixia.diameter-sub-data-ambr-max-req-bw-ul",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter Subscription Data AMBR Max Requested Bandwidth Upload",
+ HFILL}
+ },
+
+ /* ixia, 3054 / 346 */
+ {&hf_pie_ixia_diameter_sub_data_ambr_max_req_bw_dl,
+ {"Subscription Data AMBR Max Requested Bandwidth Download",
+ "cflow.pie.ixia.diameter-sub-data-ambr-max-req-bw-dl",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter Subscription Data AMBR Max Requested Bandwidth Download",
+ HFILL}
+ },
+
+ /* ixia, 3054 / 347 */
+ {&hf_pie_ixia_diameter_apn_configuration_profile,
+ {"APN Configuration Profile",
+ "cflow.pie.ixia.diameter-apn-configuration-profile",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter APN Configuration Profile", HFILL}
+ },
+
+ /* ixia, 3054 / 348 */
+ {&hf_pie_ixia_diameter_access_restriction_data_flags,
+ {"Access Restriction Data Flags",
+ "cflow.pie.ixia.diameter-access-restriction-data-flags",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ "Diameter Access Restriction Data Flags", HFILL}
+ },
+
+ /* ixia, 3054 / 349 */
+ {&hf_pie_ixia_diameter_route_record,
+ {"Route Record", "cflow.pie.ixia.diameter-route-record",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter Route Record", HFILL}
+ },
+
+ /* ixia, 3054 / 350 */
+ {&hf_pie_ixia_diameter_framed_ip_address,
+ {"Framed IP Address", "cflow.pie.ixia.diameter-framed-ip-address",
+ FT_IPv4, BASE_NONE, NULL, 0x0,
+ "Diameter Framed IP Address", HFILL}
+ },
+
+ /* ixia, 3054 / 351 */
+ {&hf_pie_ixia_diameter_3gpp_user_location_info,
+ {"3GPP ULI", "cflow.pie.ixia.diameter-3gpp-user-location-info",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter 3GPP User Location Info", HFILL}
+ },
+
+ /* ixia, 3054 / 352 */
+ {&hf_pie_ixia_diameter_called_station_id,
+ {"Called Station ID", "cflow.pie.ixia.diameter-called-station-id",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter Called Station ID", HFILL}
+ },
+
+ /* ixia, 3054 / 353 */
+ {&hf_pie_ixia_diameter_qos_class_identifier,
+ {"QoS Class Identifier", "cflow.pie.ixia.diameter-qos-class-identifier",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ "Diameter QoS Class Identifier", HFILL}
+ },
+
+ /* ixia, 3054 / 354 */
+ {&hf_pie_ixia_diameter_qos_max_req_bw_dl,
+ {"QoS Maximum Requested Bandwidth Download",
+ "cflow.pie.ixia.diameter-qos-max-req-bw-dl",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter QoS Maximum Requested Bandwidth Download", HFILL}
+ },
+
+ /* ixia, 3054 / 355 */
+ {&hf_pie_ixia_diameter_qos_max_req_bw_ul,
+ {"QoS Maximum Requested Bandwidth Upload",
+ "cflow.pie.ixia.diameter-qos-max-req-bw-ul",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter QoS Maximum Requested Bandwidth Upload", HFILL}
+ },
+
+ /* ixia, 3054 / 356 */
+ {&hf_pie_ixia_diameter_qos_guaranteed_br_ul,
+ {"QoS Guaranteed Bitrate Upload",
+ "cflow.pie.ixia.diameter-qos-guaranteed-br-ul",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter Guaranteed Bitrate Upload", HFILL}
+ },
+
+ /* ixia, 3054 / 357 */
+ {&hf_pie_ixia_diameter_qos_guaranteed_br_dl,
+ {"QoS Guaranteed Bitrate Download",
+ "cflow.pie.ixia.diameter-qos-guaranteed-br-dl",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter QoS Guaranteed Bitrate Upload", HFILL}
+ },
+
+ /* ixia, 3054 / 358 */
+ {&hf_pie_ixia_diameter_qos_apn_agg_max_br_ul,
+ {"QoS APN AMBR Upload", "cflow.pie.ixia.diameter-qos-apn-agg-max-br-ul",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter QoS APN Aggregated Maximum Bitrate Upload", HFILL}
+ },
+
+ /* ixia, 3054 / 359 */
+ {&hf_pie_ixia_diameter_qos_apn_agg_max_br_dl,
+ {"QoS APN AMBR Download", "cflow.pie.ixia.diameter-qos-apn-agg-max-br-dl",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Diameter QoS APN Aggregated Maximum Bitrate Download", HFILL}
+ },
+
+ /* ixia, 3054 / 360 */
+ {&hf_pie_ixia_diameter_integrity_key,
+ {"Integrity Key", "cflow.pie.ixia.diameter-integrity-key",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter Integrity Key", HFILL}
+ },
+
+ /* ixia, 3054 / 361 */
+ {&hf_pie_ixia_diameter_confidentiality_key,
+ {"Confidentiality Key", "cflow.pie.ixia.diameter-confidentiality-key",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Diameter Confidentiality Key", HFILL}
+ },
+
+ /* ixia, 3054 / 362 */
+ {&hf_pie_ixia_diameter_result_code,
+ {"Result Code", "cflow.pie.ixia.diameter-result-code",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ "Diameter Result Code", HFILL}
+ },
+
+ /* ixia, 3054 / 363 */
+ {&hf_pie_ixia_diameter_subscription_id_data,
+ {"Subscription ID Data", "cflow.pie.ixia.diameter-subscription-id-data",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Diameter Subscription ID Data", HFILL}
+ },
+
+ /* ixia, 3054 / 364 */
+ {&hf_pie_ixia_session_fingerprint,
+ {"Fingerprint", "cflow.pie.ixia.session-fingerprint",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "Session Fingerprint", HFILL}
+ },
+
+ /* ixia, 3054 / 365 */
+ {&hf_pie_ixia_session_parse_errors,
+ {"Parse Errors", "cflow.pie.ixia.session-parse-errors",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Session Parse Errors Count", HFILL}
+ },
+
+ /* ixia, 3054 / 366 */
+ {&hf_pie_ixia_http_headers,
+ {"HTTP Headers", "cflow.pie.ixia.http-headers",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ "List of HTTP Headers", HFILL}
+ },
+
+ /* ixia, 3054 / 367 */
+ {&hf_pie_ixia_http_header_field,
+ {"HTTP Header Field", "cflow.pie.ixia.http-header-field",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Field name of HTTP header", HFILL}
+ },
+
+ /* ixia, 3054 / 368 */
+ {&hf_pie_ixia_http_header_value,
+ {"HTTP Header Value", "cflow.pie.ixia.http-header-value",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Value for HTTP header", HFILL}
+ },
+
+ /* ixia, 3054 / 369 */
+ {&hf_pie_ixia_sip_packets,
+ {"SIP Packets", "cflow.pie.ixia.sip-packets",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "List of SIP packets", HFILL}
+ },
+
+ /* ixia, 3054 / 370 */
+ {&hf_pie_ixia_sip_headers,
+ {"SIP Headers", "cflow.pie.ixia.sip-headers",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ "List of SIP headers", HFILL}
+ },
+
+ /* ixia, 3054 / 371 */
+ {&hf_pie_ixia_sip_type,
+ {"SIP Type", "cflow.pie.ixia.sip-type",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Type of SIP packet", HFILL}
+ },
+
+ /* ixia, 3054 / 372 */
+ {&hf_pie_ixia_sip_header_field,
+ {"SIP Header Field", "cflow.pie.ixia.sip-header-field",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Name of SIP header", HFILL}
+ },
+
+ /* ixia, 3054 / 373 */
+ {&hf_pie_ixia_sip_header_value,
+ {"SIP Header Value", "cflow.pie.ixia.sip-header-value",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ "Value of SIP header", HFILL}
+ },
+
/* Netscaler root (a hidden item to allow filtering) */
{&hf_pie_netscaler,
{"Netscaler", "cflow.pie.netscaler",
diff --git a/epan/dissectors/packet-netlink-route.c b/epan/dissectors/packet-netlink-route.c
index 138e6a7eed..6cadf4dcf4 100644
--- a/epan/dissectors/packet-netlink-route.c
+++ b/epan/dissectors/packet-netlink-route.c
@@ -735,7 +735,7 @@ dissect_netlink_route_ifla_attrs(tvbuff_t *tvb, void *data, struct packet_netlin
enum ws_ifla_attr_type type = (enum ws_ifla_attr_type) rta_type;
const guint8* str;
guint32 value;
- gboolean flag;
+ bool flag;
proto_tree* subtree;
switch (type) {
case WS_IFLA_IFNAME:
diff --git a/epan/dissectors/packet-netlink-sock_diag.c b/epan/dissectors/packet-netlink-sock_diag.c
index bb46f97e8c..7ba4d82186 100644
--- a/epan/dissectors/packet-netlink-sock_diag.c
+++ b/epan/dissectors/packet-netlink-sock_diag.c
@@ -246,7 +246,7 @@ static const value_string socket_state_vals[] = {
{ 0, NULL }
};
-/* Geneirc */
+/* Generic */
static int
_tvb_check_if_zeros(tvbuff_t *tvb, int offset, int len)
diff --git a/epan/dissectors/packet-netperfmeter.c b/epan/dissectors/packet-netperfmeter.c
index 6e76f8478c..38af0747cd 100644
--- a/epan/dissectors/packet-netperfmeter.c
+++ b/epan/dissectors/packet-netperfmeter.c
@@ -35,8 +35,8 @@ static int ett_data_flags;
static int ett_results_flags;
static int ett_onoffarray;
-static guint64 npm_total_msgs = 0;
-static guint64 npm_total_bytes = 0;
+static guint64 npm_total_msgs;
+static guint64 npm_total_bytes;
#define PPID_NETPERFMETER_CONTROL_LEGACY 0x29097605
diff --git a/epan/dissectors/packet-netrom.c b/epan/dissectors/packet-netrom.c
index 8f415417b3..eba116eb3f 100644
--- a/epan/dissectors/packet-netrom.c
+++ b/epan/dissectors/packet-netrom.c
@@ -474,7 +474,7 @@ dissect_netrom(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _
return tvb_captured_length(tvb);
}
-static gboolean
+static bool
capture_netrom( const guchar *pd _U_, int offset, int len, capture_packet_info_t *cpinfo _U_, const union wtap_pseudo_header *pseudo_header _U_)
{
if ( ! BYTES_ARE_IN_FRAME( offset, len, NETROM_MIN_SIZE ) )
diff --git a/epan/dissectors/packet-netsync.c b/epan/dissectors/packet-netsync.c
index fe874a2fa8..1938bf9a11 100644
--- a/epan/dissectors/packet-netsync.c
+++ b/epan/dissectors/packet-netsync.c
@@ -141,7 +141,7 @@ static int ett_netsync;
* for monotone netsync
*/
-static gboolean netsync_desegment = TRUE;
+static bool netsync_desegment = true;
static gint dissect_netsync_cmd_error( tvbuff_t *tvb, gint offset, proto_tree *tree, guint size _U_)
{
diff --git a/epan/dissectors/packet-nfapi.c b/epan/dissectors/packet-nfapi.c
index cfbf88ebd5..56a8f3c4b6 100644
--- a/epan/dissectors/packet-nfapi.c
+++ b/epan/dissectors/packet-nfapi.c
@@ -1539,7 +1539,7 @@ static void dissect_array_value(ptvcursor_t * ptvc, packet_info* pinfo, const ch
static void dissect_pnf_param_general_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
proto_item* item;
- gint32 test_value;
+ uint32_t test_value;
// nFAPI Sync Mode
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_sync_mode, 1, ENC_BIG_ENDIAN, &test_value);
@@ -1566,18 +1566,10 @@ static void dissect_pnf_param_general_value(ptvcursor_t * ptvc, packet_info* pin
ptvcursor_add(ptvc, hf_nfapi_maximum_total_number_ul_layers, 1, ENC_BIG_ENDIAN);
// Shared Bands
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_shared_bands, 1, ENC_BIG_ENDIAN, &test_value);
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid shared bands value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_shared_bands, 1, ENC_BIG_ENDIAN);
// Shared PA
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_shared_pa, 1, ENC_BIG_ENDIAN, &test_value);
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid shared pa value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_shared_pa, 1, ENC_BIG_ENDIAN);
ptvcursor_add(ptvc, hf_nfapi_maximum_total_power, 2, ENC_BIG_ENDIAN);
ptvcursor_add(ptvc, hf_nfapi_oui, 3, ENC_HOST_ENDIAN);
@@ -2049,25 +2041,14 @@ static void dissect_pb_value(ptvcursor_t * ptvc, packet_info* pinfo)
}
}
-static void dissect_dl_cyclic_prefix_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_dl_cyclic_prefix_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_dl_cyclic_prefix_type, 2, ENC_BIG_ENDIAN, &test_value);
+ ptvcursor_add(ptvc, hf_nfapi_dl_cyclic_prefix_type, 2, ENC_BIG_ENDIAN);
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid dl cyclic prefix type [0..1]");
- }
}
-static void dissect_ul_cyclic_prefix_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_ul_cyclic_prefix_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_ul_cyclic_prefix_type, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid ul cyclic prefix type [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_ul_cyclic_prefix_type, 2, ENC_BIG_ENDIAN);
}
static void dissect_dl_channel_bandwidth_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2130,15 +2111,9 @@ static void dissect_phich_resource_value(ptvcursor_t * ptvc, packet_info* pinfo)
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid phich resource value [0..3]");
}
}
-static void dissect_phich_duration_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_phich_duration_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_phich_duration, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid phich duration value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_phich_duration, 2, ENC_BIG_ENDIAN);
}
static void dissect_phich_power_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2211,15 +2186,9 @@ static void dissect_prach_zero_correlation_zone_configuration_value(ptvcursor_t
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid zero correlation zone configuration [0..15]");
}
}
-static void dissect_prach_high_speed_flag_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_prach_high_speed_flag_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_high_speed_flag, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid high speed flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_high_speed_flag, 2, ENC_BIG_ENDIAN);
}
static void dissect_prach_frequency_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2232,15 +2201,9 @@ static void dissect_prach_frequency_offset_value(ptvcursor_t * ptvc, packet_info
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach frequency offset value [0..94]");
}
}
-static void dissect_pusch_hopping_mode_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_pusch_hopping_mode_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_hopping_mode, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid pusch hopping mode value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_hopping_mode, 2, ENC_BIG_ENDIAN);
}
static void dissect_pusch_hopping_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2312,15 +2275,9 @@ static void dissect_srs_bandwidth_configuration_value(ptvcursor_t * ptvc, packet
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs bandwidth configuration value [0..7]");
}
}
-static void dissect_srs_max_uppts_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_srs_max_uppts_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_max_up_pts, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid max up pts value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_max_up_pts, 2, ENC_BIG_ENDIAN);
}
static void dissect_srs_subframe_configuration_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2332,15 +2289,9 @@ static void dissect_srs_subframe_configuration_value(ptvcursor_t * ptvc, packet_
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs subframe configuration value [0..15]");
}
}
-static void dissect_srs_acknack_srs_sim_tx_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_srs_acknack_srs_sim_tx_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_srs_acknack_srs_simultaneous_transmission, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs ack nack srs simultaneous transmission value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_srs_acknack_srs_simultaneous_transmission, 2, ENC_BIG_ENDIAN);
}
static void dissect_uplink_rs_hopping_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2432,25 +2383,13 @@ static void dissect_laa_multi_carrier_type_value(ptvcursor_t * ptvc, packet_info
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid multi carrier type [0..4]");
}
}
-static void dissect_laa_multi_carrier_tx_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_laa_multi_carrier_tx_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_multi_carrier_tx, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid multi carrier tx value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_multi_carrier_tx, 2, ENC_BIG_ENDIAN);
}
-static void dissect_laa_multi_carrier_freeze_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_laa_multi_carrier_freeze_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_multi_carrier_freeze, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid multi carrier freeze value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_multi_carrier_freeze, 2, ENC_BIG_ENDIAN);
}
static void dissect_laa_tx_antenna_port_for_drs_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2472,15 +2411,9 @@ static void dissect_laa_transmission_power_for_drs_value(ptvcursor_t * ptvc, pac
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid transmission power for drs [0..10000]");
}
}
-static void dissect_emtc_pbch_repeitions_enabled_r13_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_pbch_repeitions_enabled_r13_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_pbch_repetitions_enabled_r13, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid pbch repetitions enabled r13 value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_pbch_repetitions_enabled_r13, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_prach_cat_m_root_sequence_index_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2502,25 +2435,13 @@ static void dissect_emtc_prach_cat_m_zero_correlation_zone_configuration_value(p
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach cat-m zero correlation zone configuration value [0..15]");
}
}
-static void dissect_emtc_prach_cat_m_high_speed_flag_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_prach_cat_m_high_speed_flag_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_cat_m_high_speed_flag, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach cat-m high speed flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_cat_m_high_speed_flag, 2, ENC_BIG_ENDIAN);
}
-static void dissect_emtc_prach_ce_level_0_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_prach_ce_level_0_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_0_enable, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #0 enable value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_0_enable, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_prach_ce_level_0_configuration_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2564,15 +2485,9 @@ static void dissect_emtc_ce_level_0_starting_subframe_periodicity_value(ptvcurso
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #0 starting subframe periodicity value [2, 4, 8, 16, 32, 64, 128, 256, 0xFFFF]");
}
}
-static void dissect_emtc_preach_ce_level_0_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_preach_ce_level_0_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_0_hopping_enabled, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #0 hopping enabled value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_0_hopping_enabled, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_preach_ce_level_0_hopping_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2584,15 +2499,9 @@ static void dissect_emtc_preach_ce_level_0_hopping_offset_value(ptvcursor_t * pt
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #0 hopping offset value [0..94]");
}
}
-static void dissect_emtc_prach_ce_level_1_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_prach_ce_level_1_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_1_enable, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #1 enable value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_1_enable, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_prach_ce_level_1_configuration_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2636,15 +2545,9 @@ static void dissect_emtc_ce_level_1_starting_subframe_periodicity_value(ptvcurso
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #1 starting subframe periodicity value [2, 4, 8, 16, 32, 64, 128, 256, 0xFFFF]");
}
}
-static void dissect_emtc_preach_ce_level_1_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_preach_ce_level_1_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_1_hopping_enabled, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #1 hopping enabled value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_1_hopping_enabled, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_preach_ce_level_1_hopping_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2656,15 +2559,9 @@ static void dissect_emtc_preach_ce_level_1_hopping_offset_value(ptvcursor_t * pt
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #1 hopping offset value [0..94]");
}
}
-static void dissect_emtc_prach_ce_level_2_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_prach_ce_level_2_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_2_enable, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #2 enable value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_2_enable, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_prach_ce_level_2_configuration_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2708,15 +2605,9 @@ static void dissect_emtc_ce_level_2_starting_subframe_periodicity_value(ptvcurso
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #2 starting subframe periodicity value [2, 4, 8, 16, 32, 64, 128, 256, 0xFFFF]");
}
}
-static void dissect_emtc_preach_ce_level_2_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_preach_ce_level_2_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_2_hopping_enabled, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #2 hopping enabled value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_2_hopping_enabled, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_preach_ce_level_2_hopping_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2728,15 +2619,9 @@ static void dissect_emtc_preach_ce_level_2_hopping_offset_value(ptvcursor_t * pt
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #2 hopping offset value [0..94]");
}
}
-static void dissect_emtc_prach_ce_level_3_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_prach_ce_level_3_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_3_enable, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #3 enable value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_3_enable, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_prach_ce_level_3_configuration_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2780,15 +2665,9 @@ static void dissect_emtc_ce_level_3_starting_subframe_periodicity_value(ptvcurso
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #3 starting subframe periodicity value [2, 4, 8, 16, 32, 64, 128, 256, 0xFFFF]");
}
}
-static void dissect_emtc_preach_ce_level_3_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_emtc_preach_ce_level_3_hopping_enabled_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_prach_ce_level_3_hopping_enabled, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prach ce level #3 hopping enabled value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_prach_ce_level_3_hopping_enabled, 2, ENC_BIG_ENDIAN);
}
static void dissect_emtc_preach_ce_level_3_hopping_offset_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2908,35 +2787,18 @@ static void dissect_release_capability_value(ptvcursor_t * ptvc, packet_info* pi
ptvcursor_advance(ptvc, 2);
}
-static void dissect_mbsfn_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_mbsfn_value(ptvcursor_t * ptvc, packet_info *pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_mbsfn_capability, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid mbsfn capability bit [0..0x1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_mbsfn_capability, 2, ENC_BIG_ENDIAN);
}
-static void dissect_laa_support_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_laa_support_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_laa_capability, 2, ENC_BIG_ENDIAN, &test_value);
+ ptvcursor_add(ptvc, hf_nfapi_laa_capability, 2, ENC_BIG_ENDIAN);
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid laa support bit [0..0x1]");
- }
}
-static void dissect_laa_pd_sensing_lbt_support_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_laa_pd_sensing_lbt_support_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_pd_sensing_lbt_support, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid pd sensing lbt support bit [0..0x1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_pd_sensing_lbt_support, 2, ENC_BIG_ENDIAN);
}
static void dissect_laa_multi_carrier_lbt_support_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -2948,25 +2810,13 @@ static void dissect_laa_multi_carrier_lbt_support_value(ptvcursor_t * ptvc, pack
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid multi carrier LBT support bit [0..0xF]");
}
}
-static void dissect_laa_partial_sf_support_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_laa_partial_sf_support_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gint32 test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_partial_sf_support, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 0x1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid partial SF support bit [0..0x1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_partial_sf_support, 2, ENC_BIG_ENDIAN);
}
-static void dissect_data_report_mode_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_data_report_mode_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gboolean test_value;
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_data_report_mode, 2, ENC_BIG_ENDIAN, &test_value);
-
- if (test_value > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid data report mode value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_data_report_mode, 2, ENC_BIG_ENDIAN);
}
static void dissect_sfn_sf_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -3369,14 +3219,9 @@ static void dissect_dl_config_request_dl_dci_pdu_rel9_value(ptvcursor_t * ptvc,
{
proto_item* item;
guint32 test_value;
- gboolean test_boolean;
// MCCH flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_mcch_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid mcch flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_mcch_flag, 1, ENC_BIG_ENDIAN);
// MCCH change notification
ptvcursor_add(ptvc, hf_nfapi_mcch_change_notification, 1, ENC_BIG_ENDIAN);
@@ -3393,14 +3238,9 @@ static void dissect_dl_config_request_dl_dci_pdu_rel10_value(ptvcursor_t * ptvc,
{
proto_item* item;
guint32 test_value;
- gboolean test_boolean;
// Cross carrier scheduling flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_cross_carrier_scheduling_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid cross carrier scheduling flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_cross_carrier_scheduling_flag, 1, ENC_BIG_ENDIAN);
// Carrier indicator
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_carrier_indicator, 1, ENC_BIG_ENDIAN, &test_value);
@@ -3410,18 +3250,10 @@ static void dissect_dl_config_request_dl_dci_pdu_rel10_value(ptvcursor_t * ptvc,
}
// SRS flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_srs_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_srs_flag, 1, ENC_BIG_ENDIAN);
// SRS request
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_srs_request, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs request value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_srs_request, 1, ENC_BIG_ENDIAN);
// Antenna ports, scrambling and layers
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_antenna_ports_scrambling_and_layers, 1, ENC_BIG_ENDIAN, &test_value);
@@ -3472,7 +3304,6 @@ static void dissect_dl_config_request_dl_dci_pdu_rel12_value(ptvcursor_t * ptvc,
{
proto_item* item;
guint32 test_value, count;
- gboolean test_boolean;
// Primary cell type
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_primary_cell_type, 1, ENC_BIG_ENDIAN, &test_value);
@@ -3482,11 +3313,7 @@ static void dissect_dl_config_request_dl_dci_pdu_rel12_value(ptvcursor_t * ptvc,
}
// UL/DL configuration flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_ul_dl_configuration_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid ul/dl configuration flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_ul_dl_configuration_flag, 1, ENC_BIG_ENDIAN);
// Number of UL / DL configurations
ptvcursor_add_ret_uint(ptvc, hf_nfapi_number_of_ul_dl_configurations, 1, ENC_BIG_ENDIAN, &count);
@@ -3694,14 +3521,9 @@ static void dissect_dl_config_request_dlsch_pdu_rel10_value(ptvcursor_t * ptvc,
{
proto_item* item;
guint32 test_value, count;
- gboolean test_boolean;
// CSI-RS flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_csi_rs_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid csi-rs flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_csi_rs_flag, 1, ENC_BIG_ENDIAN);
// CSI-RS resource config R10
ptvcursor_add(ptvc, hf_nfapi_csi_rs_resource_config_r10, 1, ENC_BIG_ENDIAN);
@@ -3986,7 +3808,6 @@ static void dissect_dl_config_request_prs_pdu_rel9_value(ptvcursor_t * ptvc, pac
{
proto_item* item;
guint32 test_value;
- gboolean test_boolean;
// Transmission power
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_transmission_power, 2, ENC_BIG_ENDIAN, &test_value);
@@ -4004,18 +3825,10 @@ static void dissect_dl_config_request_prs_pdu_rel9_value(ptvcursor_t * ptvc, pac
}
// PRS cyclic prefix type
- item = ptvcursor_add_ret_boolean(ptvc, hf_prs_cyclic_prefix_type, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prs cyclic prefix value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_prs_cyclic_prefix_type, 1, ENC_BIG_ENDIAN);
// PRS muting
- item = ptvcursor_add_ret_boolean(ptvc, hf_prs_muting, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid prs muting value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_prs_muting, 1, ENC_BIG_ENDIAN);
}
static void dissect_dl_config_request_csi_rs_pdu_rel10_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -4171,7 +3984,6 @@ static void dissect_dl_config_request_mpdpcch_pdu_rel13_value(ptvcursor_t * ptvc
{
proto_item* item;
guint32 test_value, count;
- gboolean test_boolean;
// MPDCCH Narrowband
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_mpdcch_narrowband, 1, ENC_BIG_ENDIAN, &test_value);
@@ -4325,11 +4137,7 @@ static void dissect_dl_config_request_mpdpcch_pdu_rel13_value(ptvcursor_t * ptvc
}
// PMI flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_pmi_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid pmi flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_pmi_flag, 1, ENC_BIG_ENDIAN);
// PMI
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_pmi, 1, ENC_BIG_ENDIAN, &test_value);
@@ -4402,18 +4210,10 @@ static void dissect_dl_config_request_mpdpcch_pdu_rel13_value(ptvcursor_t * ptvc
}
// SRS request
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_srs_request, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs request value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_srs_request, 1, ENC_BIG_ENDIAN);
// Antenna ports and scrambling identity flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_antenna_ports_and_scrambling_identity_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid antenna ports and scrambling identity flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_antenna_ports_and_scrambling_identity_flag, 1, ENC_BIG_ENDIAN);
// Antenna ports and scrambling identity
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_antenna_ports_and_scrambling_identity, 1, ENC_BIG_ENDIAN, &test_value);
@@ -4468,7 +4268,6 @@ static void dissect_ul_config_request_body_value(ptvcursor_t * ptvc, packet_info
{
proto_item* item;
guint32 test_value, num_pdu;
- gboolean test_boolean;
// Number of PDUs
ptvcursor_add_ret_uint(ptvc, hf_nfapi_number_pdus, 1, ENC_BIG_ENDIAN, &num_pdu);
@@ -4481,11 +4280,7 @@ static void dissect_ul_config_request_body_value(ptvcursor_t * ptvc, packet_info
}
// SRS present
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_srs_present, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs present value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_srs_present, 1, ENC_BIG_ENDIAN);
dissect_array_value(ptvc, pinfo, "UL Config PDU List", ett_nfapi_ul_config_request_pdu_list, num_pdu, dissect_ul_config_pdu);
}
@@ -4765,14 +4560,10 @@ static void dissect_ul_config_cqi_ri_info_rel9_later_value(ptvcursor_t * ptvc, p
{
proto_item* item;
guint32 test_value;
- gboolean type, test_boolean;
+ bool type;
// Report type
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_report_type, 1, ENC_BIG_ENDIAN, &type);
- if (type > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid report type value [0..1]");
- }
+ ptvcursor_add_ret_boolean(ptvc, hf_nfapi_report_type, 1, ENC_BIG_ENDIAN, &type);
// Delta offset CQI
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_delta_offset_cqi, 1, ENC_BIG_ENDIAN, &test_value);
@@ -4788,60 +4579,48 @@ static void dissect_ul_config_cqi_ri_info_rel9_later_value(ptvcursor_t * ptvc, p
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid delta offset ri value [0..15]");
}
- switch (type)
+ if (type)
{
- case 0:
- {
- // DL CQI/PMI/RI size
- ptvcursor_add(ptvc, hf_nfapi_dl_cqi_ri_pmi_size, 1, ENC_BIG_ENDIAN);
+ // todo : encoder not right for this case.
+ ptvcursor_add_ret_uint(ptvc, hf_nfapi_number_of_cc, 1, ENC_BIG_ENDIAN, &test_value);
- // Control Type
- ptvcursor_add_ret_boolean(ptvc, hf_nfapi_control_type, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid control type value [0..1]");
- }
- break;
- }
- case 1:
+ if (!(test_value >= 1 && test_value <= 32))
{
- // todo : encoder not right for this case.
- ptvcursor_add_ret_uint(ptvc, hf_nfapi_number_of_cc, 1, ENC_BIG_ENDIAN, &test_value);
-
- if (!(test_value >= 1 && test_value <= 32))
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid number of cc value [1..32]");
- }
-
- /*
- ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "CCs");
+ expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid number of cc value [1..32]");
+ }
- for (int i = 0; i < num_cc; ++i)
- {
- ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "[%d]", i);
+ /*
+ ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "CCs");
- guint8 ri_size = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
- ptvcursor_add(ptvc, hf_nfapi_ri_size, 1, ENC_BIG_ENDIAN);
+ for (int i = 0; i < num_cc; ++i)
+ {
+ ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "[%d]", i);
- ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "Rank");
+ guint8 ri_size = tvb_get_guint8(ptvcursor_tvbuff(ptvc), ptvcursor_current_offset(ptvc));
+ ptvcursor_add(ptvc, hf_nfapi_ri_size, 1, ENC_BIG_ENDIAN);
- for (int j = 0; j < ri_size; ++j)
- {
- ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "[%d]", j);
- ptvcursor_add(ptvc, hf_nfapi_dl_cqi_pmi_size, 1, ENC_BIG_ENDIAN);
- ptvcursor_pop_subtree(ptvc);
- }
-
- ptvcursor_pop_subtree(ptvc);
+ ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "Rank");
+ for (int j = 0; j < ri_size; ++j)
+ {
+ ptvcursor_add_text_with_subtree(ptvc, SUBTREE_UNDEFINED_LENGTH, ett_nfapi_tlv_tree, "[%d]", j);
+ ptvcursor_add(ptvc, hf_nfapi_dl_cqi_pmi_size, 1, ENC_BIG_ENDIAN);
ptvcursor_pop_subtree(ptvc);
}
ptvcursor_pop_subtree(ptvc);
- */
- break;
+ ptvcursor_pop_subtree(ptvc);
}
+
+ ptvcursor_pop_subtree(ptvc);
+ */
+ } else {
+ // DL CQI/PMI/RI size
+ ptvcursor_add(ptvc, hf_nfapi_dl_cqi_ri_pmi_size, 1, ENC_BIG_ENDIAN);
+
+ // Control Type
+ ptvcursor_add(ptvc, hf_nfapi_control_type, 1, ENC_BIG_ENDIAN);
}
}
static void dissect_ul_config_cqi_ri_info_rel13_value(ptvcursor_t * ptvc, packet_info* pinfo)
@@ -5450,7 +5229,6 @@ static void dissect_hi_dci0_hi_rel8_value(ptvcursor_t * ptvc, packet_info* pinfo
{
proto_item* item;
guint32 test_value;
- gboolean test_boolean;
// Resource block start
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_resource_block_start, 1, ENC_BIG_ENDIAN, &test_value);
@@ -5467,11 +5245,7 @@ static void dissect_hi_dci0_hi_rel8_value(ptvcursor_t * ptvc, packet_info* pinfo
}
// HI value
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_hi_value, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid hi value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_hi_value, 1, ENC_BIG_ENDIAN);
// I_PHICH
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_i_phich, 1, ENC_BIG_ENDIAN, &test_value);
@@ -5488,25 +5262,13 @@ static void dissect_hi_dci0_hi_rel8_value(ptvcursor_t * ptvc, packet_info* pinfo
}
}
-static void dissect_hi_dci0_hi_rel10_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_hi_dci0_hi_rel10_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- proto_item* item;
- gboolean test_boolean;
-
// Flag TB2
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_flag_tb2, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid flag tb2 value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_flag_tb2, 1, ENC_BIG_ENDIAN);
// HI Value 2
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_hi_value_2, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid hi2 value [0..1]");
- }
-
+ ptvcursor_add(ptvc, hf_nfapi_hi_value_2, 1, ENC_BIG_ENDIAN);
}
static void dissect_hi_dci0_dci_ul_rel8_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -5641,14 +5403,9 @@ static void dissect_hi_dci0_dci_ul_rel10_value(ptvcursor_t * ptvc, packet_info*
{
proto_item* item;
guint32 test_value, number_of_antenna_ports_value;
- gboolean test_boolean;
// Cross carrier scheduling flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_cross_carrier_scheduling_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid cross carrier scheduling flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_cross_carrier_scheduling_flag, 1, ENC_BIG_ENDIAN);
// Carrier indicator
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_carrier_indicator, 1, ENC_BIG_ENDIAN, &test_value);
@@ -5665,11 +5422,7 @@ static void dissect_hi_dci0_dci_ul_rel10_value(ptvcursor_t * ptvc, packet_info*
}
// SRS flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_srs_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs field value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_srs_flag, 1, ENC_BIG_ENDIAN);
// SRS request
ptvcursor_add(ptvc, hf_nfapi_srs_request, 1, ENC_BIG_ENDIAN);
@@ -5764,7 +5517,6 @@ static void dissect_hi_dci0_mdpcch_dci_ul_rel13_value(ptvcursor_t * ptvc, packet
{
proto_item* item;
guint32 test_value, dci_format_value, count;
- gboolean test_boolean;
// MPDCCH Narrowband
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_mpdcch_narrowband, 1, ENC_BIG_ENDIAN, &test_value);
@@ -5953,11 +5705,7 @@ static void dissect_hi_dci0_mdpcch_dci_ul_rel13_value(ptvcursor_t * ptvc, packet
}
// DAI presence flag
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_dai_presence_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid dai presence value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_dai_presence_flag, 1, ENC_BIG_ENDIAN);
// DL assignment index
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_dl_assignment_index, 1, ENC_BIG_ENDIAN, &test_value);
@@ -5967,11 +5715,7 @@ static void dissect_hi_dci0_mdpcch_dci_ul_rel13_value(ptvcursor_t * ptvc, packet
}
// SRS request
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_srs_request, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid srs request value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_srs_request, 1, ENC_BIG_ENDIAN);
// DCI subframe repetition number
item = ptvcursor_add_ret_uint(ptvc, hf_nfapi_dci_subframe_repetition_number, 1, ENC_BIG_ENDIAN, &test_value);
@@ -6491,16 +6235,9 @@ static void dissect_ul_cqi_information_value(ptvcursor_t * ptvc, packet_info* pi
expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid channel value [0..1]");
}
}
-static void dissect_crc_indication_rel8_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_crc_indication_rel8_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- gboolean test_boolean;
-
- // CRC Flag
- proto_item* item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_crc_flag, 1, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid crc flag value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_crc_flag, 1, ENC_BIG_ENDIAN);
}
static void dissect_rx_cqi_indication_rel8_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
@@ -6735,7 +6472,6 @@ static void dissect_lbt_dl_config_request_pdsch_req_rel13_value(ptvcursor_t * pt
{
proto_item* item;
guint32 test_value;
- gint32 test_boolean;
// Handle
ptvcursor_add(ptvc, hf_nfapi_handle, 4, ENC_BIG_ENDIAN);
@@ -6760,17 +6496,12 @@ static void dissect_lbt_dl_config_request_pdsch_req_rel13_value(ptvcursor_t * pt
ptvcursor_add(ptvc, hf_nfapi_txop_sfn_sf_end, 2, ENC_BIG_ENDIAN);
// LBT mode
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_lbt_mode, 4, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid offset value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_lbt_mode, 4, ENC_BIG_ENDIAN);
}
static void dissect_lbt_dl_config_request_drs_req_rel13_value(ptvcursor_t * ptvc, packet_info* pinfo)
{
proto_item* item;
guint32 test_value;
- gint32 test_boolean;
// Handle
ptvcursor_add(ptvc, hf_nfapi_handle, 4, ENC_BIG_ENDIAN);
@@ -6786,51 +6517,29 @@ static void dissect_lbt_dl_config_request_drs_req_rel13_value(ptvcursor_t * ptvc
ptvcursor_add(ptvc, hf_nfapi_sfn_sf_end, 2, ENC_BIG_ENDIAN);
// LBT mode
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_lbt_mode, 4, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid offset value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_lbt_mode, 4, ENC_BIG_ENDIAN);
}
-static void dissect_lbt_dl_config_request_pdsch_resp_rel13_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_lbt_dl_config_request_pdsch_resp_rel13_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- proto_item* item;
- gint32 test_boolean;
-
// Handle
ptvcursor_add(ptvc, hf_nfapi_handle, 4, ENC_BIG_ENDIAN);
// result
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_result, 4, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid result value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_result, 4, ENC_BIG_ENDIAN);
// LTE TXOP symbols
ptvcursor_add(ptvc, hf_nfapi_txop_symbols, 4, ENC_BIG_ENDIAN);
// Initial Partial SF
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_initial_partial_sf, 4, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid initial partial sf value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_initial_partial_sf, 4, ENC_BIG_ENDIAN);
}
-static void dissect_lbt_dl_config_request_drs_resp_rel13_value(ptvcursor_t * ptvc, packet_info* pinfo)
+static void dissect_lbt_dl_config_request_drs_resp_rel13_value(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
- proto_item* item;
- gint32 test_boolean;
-
// Handle
ptvcursor_add(ptvc, hf_nfapi_handle, 4, ENC_BIG_ENDIAN);
// result
- item = ptvcursor_add_ret_boolean(ptvc, hf_nfapi_result, 4, ENC_BIG_ENDIAN, &test_boolean);
- if (test_boolean > 1)
- {
- expert_add_info_format(pinfo, item, &ei_invalid_range, "Invalid result value [0..1]");
- }
+ ptvcursor_add(ptvc, hf_nfapi_result, 4, ENC_BIG_ENDIAN);
}
static void dissect_tx_pdu(ptvcursor_t * ptvc, packet_info* pinfo _U_)
{
@@ -9047,7 +8756,7 @@ void proto_register_nfapi(void)
{ &hf_nfapi_n1_pucch_an,
{ "N1 PUCCH AN", "nfapi.n1.pucch.an",
FT_UINT16, BASE_DEC, NULL, 0x0,
- "N1 PUCCH", HFILL }
+ NULL, HFILL }
},
{ &hf_nfapi_bandwidth_configuration,
{ "Bandwidth configuration", "nfapi.bw.configuration",
@@ -9132,7 +8841,7 @@ void proto_register_nfapi(void)
{ &hf_nfapi_prach_cat_m_root_sequence_index,
{ "PRACH CAT-M Root sequence Index", "nfapi.prach.cat_m.root.sequence.index",
FT_UINT16, BASE_DEC, NULL, 0x0,
- "PRACH Root sequence Index", HFILL }
+ NULL, HFILL }
},
{ &hf_nfapi_prach_cat_m_zero_correlation_zone_configuration,
{ "PRACH CAT-M Zero correlation zone configuration", "nfapi.prach.cat_m.zero.correlation.zone.configuration",
@@ -10091,7 +9800,7 @@ void proto_register_nfapi(void)
{ &hf_nfapi_epdcch_prb_index,
{ "EPDCCH PRB Index", "nfapi.epdcch.prb.index",
FT_UINT8, BASE_DEC, NULL, 0x0,
- "PRB Index", HFILL }
+ NULL, HFILL }
},
{ &hf_nfapi_epdcch_resource_assignment_flag,
{ "EPDCCH Resource assignment flag", "nfapi.epdcch.resource.assignment.flag",
diff --git a/epan/dissectors/packet-nfs.c b/epan/dissectors/packet-nfs.c
index bee75644d5..7cd252e227 100644
--- a/epan/dissectors/packet-nfs.c
+++ b/epan/dissectors/packet-nfs.c
@@ -1016,13 +1016,13 @@ typedef struct nfs_fhandle_data {
/* fhandle displayfilters to match also corresponding request/response
packet in addition to the one containing the actual filehandle */
-gboolean nfs_fhandle_reqrep_matching = FALSE;
-static wmem_tree_t *nfs_fhandle_frame_table = NULL;
+bool nfs_fhandle_reqrep_matching;
+static wmem_tree_t *nfs_fhandle_frame_table;
/* file name snooping */
-gboolean nfs_file_name_snooping = FALSE;
-static gboolean nfs_file_name_full_snooping = FALSE;
+bool nfs_file_name_snooping;
+static bool nfs_file_name_full_snooping;
typedef struct nfs_name_snoop {
int fh_length;
unsigned char *fh;
@@ -1041,15 +1041,15 @@ typedef struct nfs_name_snoop_key {
const unsigned char *fh;
} nfs_name_snoop_key_t;
-static GHashTable *nfs_name_snoop_unmatched = NULL;
+static GHashTable *nfs_name_snoop_unmatched;
-static GHashTable *nfs_name_snoop_matched = NULL;
+static GHashTable *nfs_name_snoop_matched;
-static wmem_tree_t *nfs_name_snoop_known = NULL;
-static wmem_tree_t *nfs_file_handles = NULL;
+static wmem_tree_t *nfs_name_snoop_known;
+static wmem_tree_t *nfs_file_handles;
-static gboolean nfs_display_v4_tag = TRUE;
-static gboolean display_major_nfs4_ops = TRUE;
+static bool nfs_display_v4_tag = true;
+static bool display_major_nfs4_ops = true;
/* Types of RDMA reduced opaque data */
typedef enum {
@@ -1403,7 +1403,7 @@ nfs_name_snoop_fh(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int fh_of
fhlen = fh_length;
/* align it */
- fhdata = (guint32 *)tvb_memdup(wmem_packet_scope(), tvb, fh_offset, fh_length);
+ fhdata = (guint32 *)tvb_memdup(pinfo->pool, tvb, fh_offset, fh_length);
fhkey[0].length = 1;
fhkey[0].key = &fhlen;
fhkey[1].length = fhlen/4;
@@ -1685,7 +1685,7 @@ dissect_fhandle_data_LINUX_KNFSD_LE(tvbuff_t* tvb, packet_info *pinfo _U_, proto
/* Checked with RedHat Linux 5.2 (nfs-server 2.2beta47 user-land nfsd) */
static int
-dissect_fhandle_data_LINUX_NFSD_LE(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_fhandle_data_LINUX_NFSD_LE(tvbuff_t* tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int offset = 0;
@@ -1701,7 +1701,7 @@ dissect_fhandle_data_LINUX_NFSD_LE(tvbuff_t* tvb, packet_info *pinfo _U_, proto_
proto_tree *hash_tree;
hash_tree = proto_tree_add_subtree_format(tree, tvb, offset+4, hashlen + 1, ett_nfs_fh_hp, NULL,
- "hash path: %s", tvb_bytes_to_str(wmem_packet_scope(), tvb, offset+5, hashlen));
+ "hash path: %s", tvb_bytes_to_str(pinfo->pool, tvb, offset+5, hashlen));
proto_tree_add_uint(hash_tree,
hf_nfs_fh_hp_len, tvb, offset+4, 1,
hashlen);
@@ -2105,7 +2105,7 @@ dissect_fhandle_data_LINUX_KNFSD_NEW(tvbuff_t* tvb, packet_info *pinfo _U_, prot
* The filehandle is always 32 bytes and first 4 bytes of ident ":OGL"
*/
static int
-dissect_fhandle_data_GLUSTER(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
+dissect_fhandle_data_GLUSTER(tvbuff_t* tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint16 offset=0;
guint16 fhlen;
@@ -2118,7 +2118,7 @@ dissect_fhandle_data_GLUSTER(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree *
if (fhlen != 36)
return tvb_captured_length(tvb);
- ident = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 4, ENC_ASCII);
+ ident = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
if (strncmp(":OGL", ident, 4))
return 4;
offset += 4;
@@ -8154,7 +8154,7 @@ dissect_nfs4_dirlist(tvbuff_t *tvb, int offset, packet_info *pinfo,
/*
* Get the entry name and create subtree of field nfs.name
*/
- name = tvb_get_string_enc(wmem_packet_scope(), tvb, offset + 16, name_len, ENC_UTF_8);
+ name = tvb_get_string_enc(pinfo->pool, tvb, offset + 16, name_len, ENC_UTF_8);
eitem = proto_tree_add_string_format(
dirlist_tree, hf_nfs_name, tvb, offset, -1, name, "Entry: %s", name);
@@ -10003,7 +10003,7 @@ dissect_nfs4_request_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
for (ops_counter=0; ops_counter<ops; ops_counter++)
{
- op_summary[ops_counter].optext = wmem_strbuf_new(wmem_packet_scope(), "");
+ op_summary[ops_counter].optext = wmem_strbuf_new(pinfo->pool, "");
opcode = tvb_get_ntohl(tvb, offset);
op_summary[ops_counter].opcode = opcode;
@@ -10851,7 +10851,7 @@ dissect_nfs4_response_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
for (ops_counter = 0; ops_counter < ops; ops_counter++)
{
- op_summary[ops_counter].optext = wmem_strbuf_new(wmem_packet_scope(), "");
+ op_summary[ops_counter].optext = wmem_strbuf_new(pinfo->pool, "");
opcode = tvb_get_ntohl(tvb, offset);
op_summary[ops_counter].iserror = FALSE;
op_summary[ops_counter].opcode = opcode;
diff --git a/epan/dissectors/packet-nfs.h b/epan/dissectors/packet-nfs.h
index 05c4485219..31f5016228 100644
--- a/epan/dissectors/packet-nfs.h
+++ b/epan/dissectors/packet-nfs.h
@@ -203,10 +203,10 @@
#define NL4_URL 2
#define NL4_NETADDR 3
-extern gboolean nfs_file_name_snooping;
+extern bool nfs_file_name_snooping;
extern void nfs_name_snoop_add_name(int xid, tvbuff_t *tvb, int name_offset, int name_len,
int parent_offset, int parent_len, const char *name);
-extern gboolean nfs_fhandle_reqrep_matching;
+extern bool nfs_fhandle_reqrep_matching;
extern int dissect_fhandle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
const char *name, guint32 *hash, rpc_call_info_value *civ);
extern void dissect_fhandle_hidden(packet_info *pinfo, proto_tree *tree, int frame);
diff --git a/epan/dissectors/packet-ngap.c b/epan/dissectors/packet-ngap.c
index b28bada0a9..4bb9ce5c69 100644
--- a/epan/dissectors/packet-ngap.c
+++ b/epan/dissectors/packet-ngap.c
@@ -14,7 +14,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 38.413 v17.7.0 (2023-12)
+ * References: 3GPP TS 38.413 v17.8.0 (2024-03)
*/
#include "config.h"
@@ -661,6 +661,10 @@ static int hf_ngap_primaryRATRestriction_nR_LEO;
static int hf_ngap_primaryRATRestriction_nR_MEO;
static int hf_ngap_primaryRATRestriction_nR_GEO;
static int hf_ngap_primaryRATRestriction_nR_OTHERSAT;
+static int hf_ngap_primaryRATRestriction_e_UTRA_LEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_MEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_GEO;
+static int hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT;
static int hf_ngap_primaryRATRestriction_reserved;
static int hf_ngap_secondaryRATRestriction_e_UTRA;
static int hf_ngap_secondaryRATRestriction_nR;
@@ -2155,778 +2159,778 @@ static gint ett_ngap_UERadioCapabilityForPagingOfNB_IoT;
static gint ett_ngap_GlobalCable_ID;
static gint ett_ngap_UpdateFeedback;
static gint ett_ngap_successfulHOReportContainer;
-static gint ett_ngap_PrivateIE_ID;
-static gint ett_ngap_ProtocolIE_Container;
-static gint ett_ngap_ProtocolIE_Field;
-static gint ett_ngap_ProtocolExtensionContainer;
-static gint ett_ngap_ProtocolExtensionField;
-static gint ett_ngap_PrivateIE_Container;
-static gint ett_ngap_PrivateIE_Field;
-static gint ett_ngap_AdditionalDLUPTNLInformationForHOList;
-static gint ett_ngap_AdditionalDLUPTNLInformationForHOItem;
-static gint ett_ngap_AllocationAndRetentionPriority;
-static gint ett_ngap_Allowed_CAG_List_per_PLMN;
-static gint ett_ngap_AllowedNSSAI;
-static gint ett_ngap_AllowedNSSAI_Item;
-static gint ett_ngap_Allowed_PNI_NPN_List;
-static gint ett_ngap_Allowed_PNI_NPN_Item;
-static gint ett_ngap_AllowedTACs;
-static gint ett_ngap_AlternativeQoSParaSetList;
-static gint ett_ngap_AlternativeQoSParaSetItem;
-static gint ett_ngap_AMFPagingTarget;
-static gint ett_ngap_AMF_TNLAssociationSetupList;
-static gint ett_ngap_AMF_TNLAssociationSetupItem;
-static gint ett_ngap_AMF_TNLAssociationToAddList;
-static gint ett_ngap_AMF_TNLAssociationToAddItem;
-static gint ett_ngap_AMF_TNLAssociationToRemoveList;
-static gint ett_ngap_AMF_TNLAssociationToRemoveItem;
-static gint ett_ngap_AMF_TNLAssociationToUpdateList;
-static gint ett_ngap_AMF_TNLAssociationToUpdateItem;
-static gint ett_ngap_AreaOfInterest;
-static gint ett_ngap_AreaOfInterestCellList;
-static gint ett_ngap_AreaOfInterestCellItem;
-static gint ett_ngap_AreaOfInterestList;
-static gint ett_ngap_AreaOfInterestItem;
-static gint ett_ngap_AreaOfInterestRANNodeList;
-static gint ett_ngap_AreaOfInterestRANNodeItem;
-static gint ett_ngap_AreaOfInterestTAIList;
-static gint ett_ngap_AreaOfInterestTAIItem;
-static gint ett_ngap_AssistanceDataForPaging;
-static gint ett_ngap_AssistanceDataForRecommendedCells;
-static gint ett_ngap_AssociatedMBSQosFlowSetupRequestList;
-static gint ett_ngap_AssociatedMBSQosFlowSetupRequestItem;
-static gint ett_ngap_AssociatedMBSQosFlowSetuporModifyRequestList;
-static gint ett_ngap_AssociatedMBSQosFlowSetuporModifyRequestItem;
-static gint ett_ngap_AssociatedQosFlowList;
-static gint ett_ngap_AssociatedQosFlowItem;
-static gint ett_ngap_AreaScopeOfMDT_NR;
-static gint ett_ngap_AreaScopeOfMDT_EUTRA;
-static gint ett_ngap_AreaScopeOfNeighCellsList;
-static gint ett_ngap_AreaScopeOfNeighCellsItem;
-static gint ett_ngap_AreaScopeOfQMC;
-static gint ett_ngap_AvailableRANVisibleQoEMetrics;
-static gint ett_ngap_BeamMeasurementsReportConfiguration;
-static gint ett_ngap_BeamMeasurementsReportQuantity;
-static gint ett_ngap_BroadcastCancelledAreaList;
-static gint ett_ngap_BroadcastCompletedAreaList;
-static gint ett_ngap_BroadcastPLMNList;
-static gint ett_ngap_BroadcastPLMNItem;
-static gint ett_ngap_BluetoothMeasurementConfiguration;
-static gint ett_ngap_BluetoothMeasConfigNameList;
-static gint ett_ngap_BluetoothMeasConfigNameItem;
-static gint ett_ngap_CancelledCellsInEAI_EUTRA;
-static gint ett_ngap_CancelledCellsInEAI_EUTRA_Item;
-static gint ett_ngap_CancelledCellsInEAI_NR;
-static gint ett_ngap_CancelledCellsInEAI_NR_Item;
-static gint ett_ngap_CancelledCellsInTAI_EUTRA;
-static gint ett_ngap_CancelledCellsInTAI_EUTRA_Item;
-static gint ett_ngap_CancelledCellsInTAI_NR;
-static gint ett_ngap_CancelledCellsInTAI_NR_Item;
-static gint ett_ngap_CandidateCellList;
-static gint ett_ngap_CandidateCellItem;
-static gint ett_ngap_CandidateCell;
-static gint ett_ngap_CandidateCellID;
-static gint ett_ngap_CandidatePCI;
-static gint ett_ngap_Cause;
-static gint ett_ngap_Cell_CAGInformation;
-static gint ett_ngap_CellCAGList;
-static gint ett_ngap_CellIDBroadcastEUTRA;
-static gint ett_ngap_CellIDBroadcastEUTRA_Item;
-static gint ett_ngap_CellIDBroadcastNR;
-static gint ett_ngap_CellIDBroadcastNR_Item;
-static gint ett_ngap_CellIDCancelledEUTRA;
-static gint ett_ngap_CellIDCancelledEUTRA_Item;
-static gint ett_ngap_CellIDCancelledNR;
-static gint ett_ngap_CellIDCancelledNR_Item;
-static gint ett_ngap_CellIDListForRestart;
-static gint ett_ngap_CellType;
-static gint ett_ngap_CNAssistedRANTuning;
-static gint ett_ngap_CNTypeRestrictionsForEquivalent;
-static gint ett_ngap_CNTypeRestrictionsForEquivalentItem;
-static gint ett_ngap_CompletedCellsInEAI_EUTRA;
-static gint ett_ngap_CompletedCellsInEAI_EUTRA_Item;
-static gint ett_ngap_CompletedCellsInEAI_NR;
-static gint ett_ngap_CompletedCellsInEAI_NR_Item;
-static gint ett_ngap_CompletedCellsInTAI_EUTRA;
-static gint ett_ngap_CompletedCellsInTAI_EUTRA_Item;
-static gint ett_ngap_CompletedCellsInTAI_NR;
-static gint ett_ngap_CompletedCellsInTAI_NR_Item;
-static gint ett_ngap_CoreNetworkAssistanceInformationForInactive;
-static gint ett_ngap_COUNTValueForPDCP_SN12;
-static gint ett_ngap_COUNTValueForPDCP_SN18;
-static gint ett_ngap_CPTransportLayerInformation;
-static gint ett_ngap_CriticalityDiagnostics;
-static gint ett_ngap_CriticalityDiagnostics_IE_List;
-static gint ett_ngap_CriticalityDiagnostics_IE_Item;
-static gint ett_ngap_CellBasedMDT_NR;
-static gint ett_ngap_CellIdListforMDT_NR;
-static gint ett_ngap_CellBasedMDT_EUTRA;
-static gint ett_ngap_CellBasedQMC;
-static gint ett_ngap_CellIdListforQMC;
-static gint ett_ngap_CellIdListforMDT_EUTRA;
-static gint ett_ngap_DataForwardingResponseDRBList;
-static gint ett_ngap_DataForwardingResponseDRBItem;
-static gint ett_ngap_DAPSRequestInfo;
-static gint ett_ngap_DAPSResponseInfoList;
-static gint ett_ngap_DAPSResponseInfoItem;
-static gint ett_ngap_DAPSResponseInfo;
-static gint ett_ngap_DataForwardingResponseERABList;
-static gint ett_ngap_DataForwardingResponseERABListItem;
-static gint ett_ngap_DL_CP_SecurityInformation;
-static gint ett_ngap_DRBsSubjectToStatusTransferList;
-static gint ett_ngap_DRBsSubjectToStatusTransferItem;
-static gint ett_ngap_DRBStatusDL;
-static gint ett_ngap_DRBStatusDL12;
-static gint ett_ngap_DRBStatusDL18;
-static gint ett_ngap_DRBStatusUL;
-static gint ett_ngap_DRBStatusUL12;
-static gint ett_ngap_DRBStatusUL18;
-static gint ett_ngap_DRBsToQosFlowsMappingList;
-static gint ett_ngap_DRBsToQosFlowsMappingItem;
-static gint ett_ngap_Dynamic5QIDescriptor;
-static gint ett_ngap_EarlyStatusTransfer_TransparentContainer;
-static gint ett_ngap_ProcedureStageChoice;
-static gint ett_ngap_FirstDLCount;
-static gint ett_ngap_DRBsSubjectToEarlyStatusTransfer_List;
-static gint ett_ngap_DRBsSubjectToEarlyStatusTransfer_Item;
-static gint ett_ngap_EmergencyAreaIDBroadcastEUTRA;
-static gint ett_ngap_EmergencyAreaIDBroadcastEUTRA_Item;
-static gint ett_ngap_EmergencyAreaIDBroadcastNR;
-static gint ett_ngap_EmergencyAreaIDBroadcastNR_Item;
-static gint ett_ngap_EmergencyAreaIDCancelledEUTRA;
-static gint ett_ngap_EmergencyAreaIDCancelledEUTRA_Item;
-static gint ett_ngap_EmergencyAreaIDCancelledNR;
-static gint ett_ngap_EmergencyAreaIDCancelledNR_Item;
-static gint ett_ngap_EmergencyAreaIDList;
-static gint ett_ngap_EmergencyAreaIDListForRestart;
-static gint ett_ngap_EmergencyFallbackIndicator;
-static gint ett_ngap_ENB_ID;
-static gint ett_ngap_EndpointIPAddressAndPort;
-static gint ett_ngap_EquivalentPLMNs;
-static gint ett_ngap_EPS_TAI;
-static gint ett_ngap_E_RABInformationList;
-static gint ett_ngap_E_RABInformationItem;
-static gint ett_ngap_EUTRA_CGI;
-static gint ett_ngap_EUTRA_CGIList;
-static gint ett_ngap_EUTRA_CGIListForWarning;
-static gint ett_ngap_EUTRA_PagingeDRXInformation;
-static gint ett_ngap_ExcessPacketDelayThresholdConfiguration;
-static gint ett_ngap_ExcessPacketDelayThresholdItem;
-static gint ett_ngap_ExpectedUEActivityBehaviour;
-static gint ett_ngap_ExpectedUEBehaviour;
-static gint ett_ngap_ExpectedUEMovingTrajectory;
-static gint ett_ngap_ExpectedUEMovingTrajectoryItem;
-static gint ett_ngap_Extended_AMFName;
-static gint ett_ngap_Extended_RANNodeName;
-static gint ett_ngap_ExtendedRATRestrictionInformation;
-static gint ett_ngap_ExtendedSliceSupportList;
-static gint ett_ngap_EventTrigger;
-static gint ett_ngap_EventL1LoggedMDTConfig;
-static gint ett_ngap_MeasurementThresholdL1LoggedMDT;
-static gint ett_ngap_FailureIndication;
-static gint ett_ngap_FiveG_ProSeAuthorized;
-static gint ett_ngap_FiveG_ProSePC5QoSParameters;
-static gint ett_ngap_FiveGProSePC5QoSFlowList;
-static gint ett_ngap_FiveGProSePC5QoSFlowItem;
-static gint ett_ngap_FiveGProSePC5FlowBitRates;
-static gint ett_ngap_FiveG_S_TMSI;
-static gint ett_ngap_ForbiddenAreaInformation;
-static gint ett_ngap_ForbiddenAreaInformation_Item;
-static gint ett_ngap_ForbiddenTACs;
-static gint ett_ngap_FromEUTRANtoNGRAN;
-static gint ett_ngap_FromNGRANtoEUTRAN;
-static gint ett_ngap_GBR_QosInformation;
-static gint ett_ngap_GlobalCable_ID_new;
-static gint ett_ngap_GlobalENB_ID;
-static gint ett_ngap_GlobalGNB_ID;
-static gint ett_ngap_GlobalN3IWF_ID;
-static gint ett_ngap_GlobalLine_ID;
-static gint ett_ngap_GlobalNgENB_ID;
-static gint ett_ngap_GlobalRANNodeID;
-static gint ett_ngap_GlobalTNGF_ID;
-static gint ett_ngap_GlobalTWIF_ID;
-static gint ett_ngap_GlobalW_AGF_ID;
-static gint ett_ngap_GNB_ID;
-static gint ett_ngap_GTPTunnel;
-static gint ett_ngap_GUAMI;
-static gint ett_ngap_HandoverCommandTransfer;
-static gint ett_ngap_HandoverPreparationUnsuccessfulTransfer;
-static gint ett_ngap_HandoverRequestAcknowledgeTransfer;
-static gint ett_ngap_HandoverRequiredTransfer;
-static gint ett_ngap_HandoverResourceAllocationUnsuccessfulTransfer;
-static gint ett_ngap_HFCNode_ID_new;
-static gint ett_ngap_HOReport;
-static gint ett_ngap_InfoOnRecommendedCellsAndRANNodesForPaging;
-static gint ett_ngap_ImmediateMDTNr;
-static gint ett_ngap_InterSystemFailureIndication;
-static gint ett_ngap_IntersystemSONConfigurationTransfer;
-static gint ett_ngap_IntersystemSONTransferType;
-static gint ett_ngap_IntersystemSONeNBID;
-static gint ett_ngap_IntersystemSONNGRANnodeID;
-static gint ett_ngap_IntersystemSONInformation;
-static gint ett_ngap_IntersystemSONInformationRequest;
-static gint ett_ngap_IntersystemCellActivationRequest;
-static gint ett_ngap_CellsToActivateList;
-static gint ett_ngap_IntersystemResourceStatusRequest;
-static gint ett_ngap_ReportingSystem;
-static gint ett_ngap_EUTRAN_ReportingSystemIEs;
-static gint ett_ngap_NGRAN_ReportingSystemIEs;
-static gint ett_ngap_EUTRAN_CellToReportList;
-static gint ett_ngap_EUTRAN_CellToReportItem;
-static gint ett_ngap_NGRAN_CellToReportList;
-static gint ett_ngap_NGRAN_CellToReportItem;
-static gint ett_ngap_ReportType;
-static gint ett_ngap_EventBasedReportingIEs;
-static gint ett_ngap_PeriodicReportingIEs;
-static gint ett_ngap_IntersystemSONInformationReply;
-static gint ett_ngap_IntersystemCellActivationReply;
-static gint ett_ngap_ActivatedCellList;
-static gint ett_ngap_IntersystemResourceStatusReply;
-static gint ett_ngap_IntersystemSONInformationReport;
-static gint ett_ngap_IntersystemCellStateIndication;
-static gint ett_ngap_NotificationCellList;
-static gint ett_ngap_NotificationCell_Item;
-static gint ett_ngap_IntersystemResourceStatusReport;
-static gint ett_ngap_ResourceStatusReportingSystem;
-static gint ett_ngap_EUTRAN_ReportingStatusIEs;
-static gint ett_ngap_EUTRAN_CellReportList;
-static gint ett_ngap_EUTRAN_CellReportItem;
-static gint ett_ngap_EUTRAN_CompositeAvailableCapacityGroup;
-static gint ett_ngap_CompositeAvailableCapacity;
-static gint ett_ngap_EUTRAN_RadioResourceStatus;
-static gint ett_ngap_NGRAN_ReportingStatusIEs;
-static gint ett_ngap_NGRAN_CellReportList;
-static gint ett_ngap_NGRAN_CellReportItem;
-static gint ett_ngap_NGRAN_RadioResourceStatus;
-static gint ett_ngap_InterSystemHOReport;
-static gint ett_ngap_InterSystemHandoverReportType;
-static gint ett_ngap_IntersystemUnnecessaryHO;
-static gint ett_ngap_LAI;
-static gint ett_ngap_LastVisitedCellInformation;
-static gint ett_ngap_LastVisitedCellItem;
-static gint ett_ngap_LastVisitedNGRANCellInformation;
-static gint ett_ngap_LastVisitedPSCellList;
-static gint ett_ngap_LastVisitedPSCellInformation;
-static gint ett_ngap_LocationReportingRequestType;
-static gint ett_ngap_LoggedMDTNr;
-static gint ett_ngap_LoggedMDTTrigger;
-static gint ett_ngap_LTEV2XServicesAuthorized;
-static gint ett_ngap_LTEUESidelinkAggregateMaximumBitrate;
-static gint ett_ngap_MBS_DataForwardingResponseMRBList;
-static gint ett_ngap_MBS_DataForwardingResponseMRBItem;
-static gint ett_ngap_MBS_MappingandDataForwardingRequestList;
-static gint ett_ngap_MBS_MappingandDataForwardingRequestItem;
-static gint ett_ngap_MBS_QoSFlowList;
-static gint ett_ngap_MRB_ProgressInformation;
-static gint ett_ngap_MBS_QoSFlowsToBeSetupList;
-static gint ett_ngap_MBS_QoSFlowsToBeSetupItem;
-static gint ett_ngap_MBS_ServiceArea;
-static gint ett_ngap_MBS_ServiceAreaInformationList;
-static gint ett_ngap_MBS_ServiceAreaInformationItem;
-static gint ett_ngap_MBS_ServiceAreaInformation;
-static gint ett_ngap_MBS_ServiceAreaCellList;
-static gint ett_ngap_MBS_ServiceAreaTAIList;
-static gint ett_ngap_MBS_SessionID;
-static gint ett_ngap_MBSSessionFailedtoSetupList;
-static gint ett_ngap_MBSSessionFailedtoSetupItem;
-static gint ett_ngap_MBS_ActiveSessionInformation_SourcetoTargetList;
-static gint ett_ngap_MBS_ActiveSessionInformation_SourcetoTargetItem;
-static gint ett_ngap_MBS_ActiveSessionInformation_TargettoSourceList;
-static gint ett_ngap_MBS_ActiveSessionInformation_TargettoSourceItem;
-static gint ett_ngap_MBSSessionSetupOrModFailureTransfer;
-static gint ett_ngap_MBSSessionSetupResponseList;
-static gint ett_ngap_MBSSessionSetupResponseItem;
-static gint ett_ngap_MBSSessionSetupOrModRequestTransfer;
-static gint ett_ngap_MBS_SessionFSAIDList;
-static gint ett_ngap_MBSSessionReleaseResponseTransfer;
-static gint ett_ngap_MBSSessionSetupOrModResponseTransfer;
-static gint ett_ngap_MBS_SessionTNLInfo5GC;
-static gint ett_ngap_MBS_SessionTNLInfo5GCList;
-static gint ett_ngap_MBS_SessionTNLInfo5GCItem;
-static gint ett_ngap_MBS_SessionTNLInfoNGRAN;
-static gint ett_ngap_MBS_SessionTNLInfoNGRANList;
-static gint ett_ngap_MBS_SessionTNLInfoNGRANItem;
-static gint ett_ngap_MBS_DistributionReleaseRequestTransfer;
-static gint ett_ngap_MBS_DistributionSetupRequestTransfer;
-static gint ett_ngap_MBS_DistributionSetupResponseTransfer;
-static gint ett_ngap_MBS_DistributionSetupUnsuccessfulTransfer;
-static gint ett_ngap_MBSSessionSetupRequestList;
-static gint ett_ngap_MBSSessionSetupRequestItem;
-static gint ett_ngap_MBSSessionSetuporModifyRequestList;
-static gint ett_ngap_MBSSessionSetuporModifyRequestItem;
-static gint ett_ngap_MBSSessionToReleaseList;
-static gint ett_ngap_MBSSessionToReleaseItem;
-static gint ett_ngap_MobilityRestrictionList;
-static gint ett_ngap_MDT_AlignmentInfo;
-static gint ett_ngap_MDTPLMNList;
-static gint ett_ngap_MDTPLMNModificationList;
-static gint ett_ngap_MDT_Configuration;
-static gint ett_ngap_MDT_Configuration_NR;
-static gint ett_ngap_MDT_Configuration_EUTRA;
-static gint ett_ngap_MDTModeNr;
-static gint ett_ngap_MulticastSessionActivationRequestTransfer;
-static gint ett_ngap_MulticastSessionDeactivationRequestTransfer;
-static gint ett_ngap_MulticastSessionUpdateRequestTransfer;
-static gint ett_ngap_MulticastGroupPagingAreaList;
-static gint ett_ngap_MulticastGroupPagingAreaItem;
-static gint ett_ngap_MBS_AreaTAIList;
-static gint ett_ngap_MulticastGroupPagingArea;
-static gint ett_ngap_UE_PagingList;
-static gint ett_ngap_UE_PagingItem;
-static gint ett_ngap_M1Configuration;
-static gint ett_ngap_M1ThresholdEventA2;
-static gint ett_ngap_M1ThresholdType;
-static gint ett_ngap_M1PeriodicReporting;
-static gint ett_ngap_M4Configuration;
-static gint ett_ngap_M5Configuration;
-static gint ett_ngap_M6Configuration;
-static gint ett_ngap_M7Configuration;
-static gint ett_ngap_MDT_Location_Info;
-static gint ett_ngap_N3IWF_ID;
-static gint ett_ngap_NB_IoT_Paging_eDRXInfo;
-static gint ett_ngap_NGAPIESupportInformationRequestList;
-static gint ett_ngap_NGAPIESupportInformationRequestItem;
-static gint ett_ngap_NGAPIESupportInformationResponseList;
-static gint ett_ngap_NGAPIESupportInformationResponseItem;
-static gint ett_ngap_NgENB_ID;
-static gint ett_ngap_NGRAN_CGI;
-static gint ett_ngap_NGRAN_TNLAssociationToRemoveList;
-static gint ett_ngap_NGRAN_TNLAssociationToRemoveItem;
-static gint ett_ngap_NonDynamic5QIDescriptor;
-static gint ett_ngap_NotAllowedTACs;
-static gint ett_ngap_NPN_AccessInformation;
-static gint ett_ngap_NPN_MobilityInformation;
-static gint ett_ngap_NPN_PagingAssistanceInformation;
-static gint ett_ngap_NPN_Support;
-static gint ett_ngap_NR_CGI;
-static gint ett_ngap_NR_CGIList;
-static gint ett_ngap_NR_CGIListForWarning;
-static gint ett_ngap_NR_PagingeDRXInformation;
-static gint ett_ngap_NRNTNTAIInformation;
-static gint ett_ngap_NRFrequencyBand_List;
-static gint ett_ngap_NRFrequencyBandItem;
-static gint ett_ngap_NRFrequencyInfo;
-static gint ett_ngap_NRV2XServicesAuthorized;
-static gint ett_ngap_NRUESidelinkAggregateMaximumBitrate;
-static gint ett_ngap_OverloadResponse;
-static gint ett_ngap_OverloadStartNSSAIList;
-static gint ett_ngap_OverloadStartNSSAIItem;
-static gint ett_ngap_PacketErrorRate;
-static gint ett_ngap_PagingAssisDataforCEcapabUE;
-static gint ett_ngap_PagingAttemptInformation;
-static gint ett_ngap_PathSwitchRequestAcknowledgeTransfer;
-static gint ett_ngap_PathSwitchRequestSetupFailedTransfer;
-static gint ett_ngap_PathSwitchRequestTransfer;
-static gint ett_ngap_PathSwitchRequestUnsuccessfulTransfer;
-static gint ett_ngap_PC5QoSParameters;
-static gint ett_ngap_PC5QoSFlowList;
-static gint ett_ngap_PC5QoSFlowItem;
-static gint ett_ngap_PC5FlowBitRates;
-static gint ett_ngap_PCIListForMDT;
-static gint ett_ngap_PDUSessionAggregateMaximumBitRate;
-static gint ett_ngap_PDUSessionResourceAdmittedList;
-static gint ett_ngap_PDUSessionResourceAdmittedItem;
-static gint ett_ngap_PDUSessionResourceFailedToModifyListModCfm;
-static gint ett_ngap_PDUSessionResourceFailedToModifyItemModCfm;
-static gint ett_ngap_PDUSessionResourceFailedToModifyListModRes;
-static gint ett_ngap_PDUSessionResourceFailedToModifyItemModRes;
-static gint ett_ngap_PDUSessionResourceFailedToResumeListRESReq;
-static gint ett_ngap_PDUSessionResourceFailedToResumeItemRESReq;
-static gint ett_ngap_PDUSessionResourceFailedToResumeListRESRes;
-static gint ett_ngap_PDUSessionResourceFailedToResumeItemRESRes;
-static gint ett_ngap_PDUSessionResourceFailedToSetupListCxtFail;
-static gint ett_ngap_PDUSessionResourceFailedToSetupItemCxtFail;
-static gint ett_ngap_PDUSessionResourceFailedToSetupListCxtRes;
-static gint ett_ngap_PDUSessionResourceFailedToSetupItemCxtRes;
-static gint ett_ngap_PDUSessionResourceFailedToSetupListHOAck;
-static gint ett_ngap_PDUSessionResourceFailedToSetupItemHOAck;
-static gint ett_ngap_PDUSessionResourceFailedToSetupListPSReq;
-static gint ett_ngap_PDUSessionResourceFailedToSetupItemPSReq;
-static gint ett_ngap_PDUSessionResourceFailedToSetupListSURes;
-static gint ett_ngap_PDUSessionResourceFailedToSetupItemSURes;
-static gint ett_ngap_PDUSessionResourceHandoverList;
-static gint ett_ngap_PDUSessionResourceHandoverItem;
-static gint ett_ngap_PDUSessionResourceInformationList;
-static gint ett_ngap_PDUSessionResourceInformationItem;
-static gint ett_ngap_PDUSessionResourceListCxtRelCpl;
-static gint ett_ngap_PDUSessionResourceItemCxtRelCpl;
-static gint ett_ngap_PDUSessionResourceListCxtRelReq;
-static gint ett_ngap_PDUSessionResourceItemCxtRelReq;
-static gint ett_ngap_PDUSessionResourceListHORqd;
-static gint ett_ngap_PDUSessionResourceItemHORqd;
-static gint ett_ngap_PDUSessionResourceModifyConfirmTransfer;
-static gint ett_ngap_PDUSessionResourceModifyIndicationUnsuccessfulTransfer;
-static gint ett_ngap_PDUSessionResourceModifyRequestTransfer;
-static gint ett_ngap_PDUSessionResourceModifyResponseTransfer;
-static gint ett_ngap_PDUSessionResourceModifyIndicationTransfer;
-static gint ett_ngap_PDUSessionResourceModifyListModCfm;
-static gint ett_ngap_PDUSessionResourceModifyItemModCfm;
-static gint ett_ngap_PDUSessionResourceModifyListModInd;
-static gint ett_ngap_PDUSessionResourceModifyItemModInd;
-static gint ett_ngap_PDUSessionResourceModifyListModReq;
-static gint ett_ngap_PDUSessionResourceModifyItemModReq;
-static gint ett_ngap_PDUSessionResourceModifyListModRes;
-static gint ett_ngap_PDUSessionResourceModifyItemModRes;
-static gint ett_ngap_PDUSessionResourceModifyUnsuccessfulTransfer;
-static gint ett_ngap_PDUSessionResourceNotifyList;
-static gint ett_ngap_PDUSessionResourceNotifyItem;
-static gint ett_ngap_PDUSessionResourceNotifyReleasedTransfer;
-static gint ett_ngap_PDUSessionResourceNotifyTransfer;
-static gint ett_ngap_PDUSessionResourceReleaseCommandTransfer;
-static gint ett_ngap_PDUSessionResourceReleasedListNot;
-static gint ett_ngap_PDUSessionResourceReleasedItemNot;
-static gint ett_ngap_PDUSessionResourceReleasedListPSAck;
-static gint ett_ngap_PDUSessionResourceReleasedItemPSAck;
-static gint ett_ngap_PDUSessionResourceReleasedListPSFail;
-static gint ett_ngap_PDUSessionResourceReleasedItemPSFail;
-static gint ett_ngap_PDUSessionResourceReleasedListRelRes;
-static gint ett_ngap_PDUSessionResourceReleasedItemRelRes;
-static gint ett_ngap_PDUSessionResourceReleaseResponseTransfer;
-static gint ett_ngap_PDUSessionResourceResumeListRESReq;
-static gint ett_ngap_PDUSessionResourceResumeItemRESReq;
-static gint ett_ngap_PDUSessionResourceResumeListRESRes;
-static gint ett_ngap_PDUSessionResourceResumeItemRESRes;
-static gint ett_ngap_PDUSessionResourceSecondaryRATUsageList;
-static gint ett_ngap_PDUSessionResourceSecondaryRATUsageItem;
-static gint ett_ngap_PDUSessionResourceSetupListCxtReq;
-static gint ett_ngap_PDUSessionResourceSetupItemCxtReq;
-static gint ett_ngap_PDUSessionResourceSetupListCxtRes;
-static gint ett_ngap_PDUSessionResourceSetupItemCxtRes;
-static gint ett_ngap_PDUSessionResourceSetupListHOReq;
-static gint ett_ngap_PDUSessionResourceSetupItemHOReq;
-static gint ett_ngap_PDUSessionResourceSetupListSUReq;
-static gint ett_ngap_PDUSessionResourceSetupItemSUReq;
-static gint ett_ngap_PDUSessionResourceSetupListSURes;
-static gint ett_ngap_PDUSessionResourceSetupItemSURes;
-static gint ett_ngap_PDUSessionResourceSetupRequestTransfer;
-static gint ett_ngap_PDUSessionResourceSetupResponseTransfer;
-static gint ett_ngap_PDUSessionResourceSetupUnsuccessfulTransfer;
-static gint ett_ngap_PDUSessionResourceSuspendListSUSReq;
-static gint ett_ngap_PDUSessionResourceSuspendItemSUSReq;
-static gint ett_ngap_PDUSessionResourceSwitchedList;
-static gint ett_ngap_PDUSessionResourceSwitchedItem;
-static gint ett_ngap_PDUSessionResourceToBeSwitchedDLList;
-static gint ett_ngap_PDUSessionResourceToBeSwitchedDLItem;
-static gint ett_ngap_PDUSessionResourceToReleaseListHOCmd;
-static gint ett_ngap_PDUSessionResourceToReleaseItemHOCmd;
-static gint ett_ngap_PDUSessionResourceToReleaseListRelCmd;
-static gint ett_ngap_PDUSessionResourceToReleaseItemRelCmd;
-static gint ett_ngap_PDUSessionUsageReport;
-static gint ett_ngap_PEIPSassistanceInformation;
-static gint ett_ngap_PLMNAreaBasedQMC;
-static gint ett_ngap_PLMNListforQMC;
-static gint ett_ngap_PLMNSupportList;
-static gint ett_ngap_PLMNSupportItem;
-static gint ett_ngap_PNI_NPN_MobilityInformation;
-static gint ett_ngap_PWSFailedCellIDList;
-static gint ett_ngap_QMCConfigInfo;
-static gint ett_ngap_QMCDeactivation;
-static gint ett_ngap_QoEReferenceList;
-static gint ett_ngap_QosCharacteristics;
-static gint ett_ngap_QosFlowAcceptedList;
-static gint ett_ngap_QosFlowAcceptedItem;
-static gint ett_ngap_QosFlowAddOrModifyRequestList;
-static gint ett_ngap_QosFlowAddOrModifyRequestItem;
-static gint ett_ngap_QosFlowAddOrModifyResponseList;
-static gint ett_ngap_QosFlowAddOrModifyResponseItem;
-static gint ett_ngap_QosFlowFeedbackList;
-static gint ett_ngap_QosFlowFeedbackItem;
-static gint ett_ngap_QosFlowInformationList;
-static gint ett_ngap_QosFlowInformationItem;
-static gint ett_ngap_QosFlowLevelQosParameters;
-static gint ett_ngap_QosFlowListWithCause;
-static gint ett_ngap_QosFlowWithCauseItem;
-static gint ett_ngap_QosFlowModifyConfirmList;
-static gint ett_ngap_QosFlowModifyConfirmItem;
-static gint ett_ngap_QosFlowNotifyList;
-static gint ett_ngap_QosFlowNotifyItem;
-static gint ett_ngap_QosFlowParametersList;
-static gint ett_ngap_QosFlowParametersItem;
-static gint ett_ngap_QosFlowPerTNLInformation;
-static gint ett_ngap_QosFlowPerTNLInformationList;
-static gint ett_ngap_QosFlowPerTNLInformationItem;
-static gint ett_ngap_QosFlowSetupRequestList;
-static gint ett_ngap_QosFlowSetupRequestItem;
-static gint ett_ngap_QosFlowListWithDataForwarding;
-static gint ett_ngap_QosFlowItemWithDataForwarding;
-static gint ett_ngap_QosFlowToBeForwardedList;
-static gint ett_ngap_QosFlowToBeForwardedItem;
-static gint ett_ngap_QoSFlowsUsageReportList;
-static gint ett_ngap_QoSFlowsUsageReport_Item;
-static gint ett_ngap_RANStatusTransfer_TransparentContainer;
-static gint ett_ngap_RATRestrictions;
-static gint ett_ngap_RATRestrictions_Item;
-static gint ett_ngap_RecommendedCellsForPaging;
-static gint ett_ngap_RecommendedCellList;
-static gint ett_ngap_RecommendedCellItem;
-static gint ett_ngap_RecommendedRANNodesForPaging;
-static gint ett_ngap_RecommendedRANNodeList;
-static gint ett_ngap_RecommendedRANNodeItem;
-static gint ett_ngap_RedundantPDUSessionInformation;
-static gint ett_ngap_ResetType;
-static gint ett_ngap_RIMInformationTransfer;
-static gint ett_ngap_RIMInformation;
-static gint ett_ngap_ScheduledCommunicationTime;
-static gint ett_ngap_SCTP_TLAs;
-static gint ett_ngap_SecondaryRATUsageInformation;
-static gint ett_ngap_SecondaryRATDataUsageReportTransfer;
-static gint ett_ngap_SecurityContext;
-static gint ett_ngap_SecurityIndication;
-static gint ett_ngap_SecurityResult;
-static gint ett_ngap_SensorMeasurementConfiguration;
-static gint ett_ngap_SensorMeasConfigNameList;
-static gint ett_ngap_SensorMeasConfigNameItem;
-static gint ett_ngap_SensorNameConfig;
-static gint ett_ngap_ServedGUAMIList;
-static gint ett_ngap_ServedGUAMIItem;
-static gint ett_ngap_ServiceAreaInformation;
-static gint ett_ngap_ServiceAreaInformation_Item;
-static gint ett_ngap_SharedNGU_MulticastTNLInformation;
-static gint ett_ngap_SliceOverloadList;
-static gint ett_ngap_SliceOverloadItem;
-static gint ett_ngap_SliceSupportList;
-static gint ett_ngap_SliceSupportItem;
-static gint ett_ngap_SliceSupportListQMC;
-static gint ett_ngap_SliceSupportQMC_Item;
-static gint ett_ngap_SNPN_MobilityInformation;
-static gint ett_ngap_S_NSSAI;
-static gint ett_ngap_SONConfigurationTransfer;
-static gint ett_ngap_SONInformation;
-static gint ett_ngap_SONInformationReply;
-static gint ett_ngap_SONInformationReport;
-static gint ett_ngap_SuccessfulHandoverReportList;
-static gint ett_ngap_SuccessfulHandoverReport_Item;
-static gint ett_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer;
-static gint ett_ngap_SourceNodeID;
-static gint ett_ngap_SourceRANNodeID;
-static gint ett_ngap_SourceToTarget_AMFInformationReroute;
-static gint ett_ngap_SupportedTAList;
-static gint ett_ngap_SupportedTAItem;
-static gint ett_ngap_TACListInNRNTN;
-static gint ett_ngap_TAI;
-static gint ett_ngap_TAIBroadcastEUTRA;
-static gint ett_ngap_TAIBroadcastEUTRA_Item;
-static gint ett_ngap_TAIBroadcastNR;
-static gint ett_ngap_TAIBroadcastNR_Item;
-static gint ett_ngap_TAICancelledEUTRA;
-static gint ett_ngap_TAICancelledEUTRA_Item;
-static gint ett_ngap_TAICancelledNR;
-static gint ett_ngap_TAICancelledNR_Item;
-static gint ett_ngap_TAIListForInactive;
-static gint ett_ngap_TAIListForInactiveItem;
-static gint ett_ngap_TAIListForPaging;
-static gint ett_ngap_TAIListForPagingItem;
-static gint ett_ngap_TAIListForRestart;
-static gint ett_ngap_TAIListForWarning;
-static gint ett_ngap_TAINSAGSupportList;
-static gint ett_ngap_TAINSAGSupportItem;
-static gint ett_ngap_TargeteNB_ID;
-static gint ett_ngap_TargetHomeENB_ID;
-static gint ett_ngap_TargetID;
-static gint ett_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer;
-static gint ett_ngap_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer;
-static gint ett_ngap_TargetNSSAI;
-static gint ett_ngap_TargetNSSAI_Item;
-static gint ett_ngap_TargetNSSAIInformation;
-static gint ett_ngap_TargetRANNodeID;
-static gint ett_ngap_TargetRANNodeID_RIM;
-static gint ett_ngap_TargetRANNodeID_SON;
-static gint ett_ngap_TargetRNC_ID;
-static gint ett_ngap_TimeSyncAssistanceInfo;
-static gint ett_ngap_TNGF_ID;
-static gint ett_ngap_TNLAssociationList;
-static gint ett_ngap_TNLAssociationItem;
-static gint ett_ngap_TooearlyIntersystemHO;
-static gint ett_ngap_TraceActivation;
-static gint ett_ngap_TAIBasedMDT;
-static gint ett_ngap_TAIListforMDT;
-static gint ett_ngap_TAIBasedQMC;
-static gint ett_ngap_TAIListforQMC;
-static gint ett_ngap_TABasedQMC;
-static gint ett_ngap_TAListforQMC;
-static gint ett_ngap_TABasedMDT;
-static gint ett_ngap_TAListforMDT;
-static gint ett_ngap_TWIF_ID;
-static gint ett_ngap_TSCAssistanceInformation;
-static gint ett_ngap_TSCTrafficCharacteristics;
-static gint ett_ngap_UEAggregateMaximumBitRate;
-static gint ett_ngap_UEAppLayerMeasInfoList;
-static gint ett_ngap_UEAppLayerMeasInfoItem;
-static gint ett_ngap_UEAppLayerMeasConfigInfo;
-static gint ett_ngap_UE_associatedLogicalNG_connectionList;
-static gint ett_ngap_UE_associatedLogicalNG_connectionItem;
-static gint ett_ngap_UEContextResumeRequestTransfer;
-static gint ett_ngap_UEContextResumeResponseTransfer;
-static gint ett_ngap_UEContextSuspendRequestTransfer;
-static gint ett_ngap_UE_DifferentiationInfo;
-static gint ett_ngap_UEHistoryInformation;
-static gint ett_ngap_UEHistoryInformationFromTheUE;
-static gint ett_ngap_UEIdentityIndexValue;
-static gint ett_ngap_UE_NGAP_IDs;
-static gint ett_ngap_UE_NGAP_ID_pair;
-static gint ett_ngap_UEPagingIdentity;
-static gint ett_ngap_UEPresenceInAreaOfInterestList;
-static gint ett_ngap_UEPresenceInAreaOfInterestItem;
-static gint ett_ngap_UERadioCapabilityForPaging;
-static gint ett_ngap_UERLFReportContainer;
-static gint ett_ngap_UESecurityCapabilities;
-static gint ett_ngap_UESliceMaximumBitRateList;
-static gint ett_ngap_UESliceMaximumBitRateItem;
-static gint ett_ngap_UL_CP_SecurityInformation;
-static gint ett_ngap_UL_NGU_UP_TNLModifyList;
-static gint ett_ngap_UL_NGU_UP_TNLModifyItem;
-static gint ett_ngap_UnavailableGUAMIList;
-static gint ett_ngap_UnavailableGUAMIItem;
-static gint ett_ngap_UPTransportLayerInformation;
-static gint ett_ngap_UPTransportLayerInformationList;
-static gint ett_ngap_UPTransportLayerInformationItem;
-static gint ett_ngap_UPTransportLayerInformationPairList;
-static gint ett_ngap_UPTransportLayerInformationPairItem;
-static gint ett_ngap_UserLocationInformation;
-static gint ett_ngap_UserLocationInformationEUTRA;
-static gint ett_ngap_UserLocationInformationN3IWF;
-static gint ett_ngap_UserLocationInformationTNGF;
-static gint ett_ngap_UserLocationInformationTWIF;
-static gint ett_ngap_UserLocationInformationW_AGF;
-static gint ett_ngap_UserLocationInformationNR;
-static gint ett_ngap_UserPlaneSecurityInformation;
-static gint ett_ngap_VolumeTimedReportList;
-static gint ett_ngap_VolumeTimedReport_Item;
-static gint ett_ngap_W_AGF_ID;
-static gint ett_ngap_WarningAreaList;
-static gint ett_ngap_WLANMeasurementConfiguration;
-static gint ett_ngap_WLANMeasConfigNameList;
-static gint ett_ngap_WLANMeasConfigNameItem;
-static gint ett_ngap_WUS_Assistance_Information;
-static gint ett_ngap_XnExtTLAs;
-static gint ett_ngap_XnExtTLA_Item;
-static gint ett_ngap_XnGTP_TLAs;
-static gint ett_ngap_XnTLAs;
-static gint ett_ngap_XnTNLConfigurationInfo;
-static gint ett_ngap_PDUSessionResourceSetupRequest;
-static gint ett_ngap_PDUSessionResourceSetupResponse;
-static gint ett_ngap_PDUSessionResourceReleaseCommand;
-static gint ett_ngap_PDUSessionResourceReleaseResponse;
-static gint ett_ngap_PDUSessionResourceModifyRequest;
-static gint ett_ngap_PDUSessionResourceModifyResponse;
-static gint ett_ngap_PDUSessionResourceNotify;
-static gint ett_ngap_PDUSessionResourceModifyIndication;
-static gint ett_ngap_PDUSessionResourceModifyConfirm;
-static gint ett_ngap_InitialContextSetupRequest;
-static gint ett_ngap_InitialContextSetupResponse;
-static gint ett_ngap_InitialContextSetupFailure;
-static gint ett_ngap_UEContextReleaseRequest;
-static gint ett_ngap_UEContextReleaseCommand;
-static gint ett_ngap_UEContextReleaseComplete;
-static gint ett_ngap_UEContextResumeRequest;
-static gint ett_ngap_UEContextResumeResponse;
-static gint ett_ngap_UEContextResumeFailure;
-static gint ett_ngap_UEContextSuspendRequest;
-static gint ett_ngap_UEContextSuspendResponse;
-static gint ett_ngap_UEContextSuspendFailure;
-static gint ett_ngap_UEContextModificationRequest;
-static gint ett_ngap_UEContextModificationResponse;
-static gint ett_ngap_UEContextModificationFailure;
-static gint ett_ngap_RRCInactiveTransitionReport;
-static gint ett_ngap_RetrieveUEInformation;
-static gint ett_ngap_UEInformationTransfer;
-static gint ett_ngap_RANCPRelocationIndication;
-static gint ett_ngap_HandoverRequired;
-static gint ett_ngap_HandoverCommand;
-static gint ett_ngap_HandoverPreparationFailure;
-static gint ett_ngap_HandoverRequest;
-static gint ett_ngap_HandoverRequestAcknowledge;
-static gint ett_ngap_HandoverFailure;
-static gint ett_ngap_HandoverNotify;
-static gint ett_ngap_PathSwitchRequest;
-static gint ett_ngap_PathSwitchRequestAcknowledge;
-static gint ett_ngap_PathSwitchRequestFailure;
-static gint ett_ngap_HandoverCancel;
-static gint ett_ngap_HandoverCancelAcknowledge;
-static gint ett_ngap_HandoverSuccess;
-static gint ett_ngap_UplinkRANEarlyStatusTransfer;
-static gint ett_ngap_DownlinkRANEarlyStatusTransfer;
-static gint ett_ngap_UplinkRANStatusTransfer;
-static gint ett_ngap_DownlinkRANStatusTransfer;
-static gint ett_ngap_Paging;
-static gint ett_ngap_InitialUEMessage;
-static gint ett_ngap_DownlinkNASTransport;
-static gint ett_ngap_UplinkNASTransport;
-static gint ett_ngap_NASNonDeliveryIndication;
-static gint ett_ngap_RerouteNASRequest;
-static gint ett_ngap_NGSetupRequest;
-static gint ett_ngap_NGSetupResponse;
-static gint ett_ngap_NGSetupFailure;
-static gint ett_ngap_RANConfigurationUpdate;
-static gint ett_ngap_RANConfigurationUpdateAcknowledge;
-static gint ett_ngap_RANConfigurationUpdateFailure;
-static gint ett_ngap_AMFConfigurationUpdate;
-static gint ett_ngap_AMFConfigurationUpdateAcknowledge;
-static gint ett_ngap_AMFConfigurationUpdateFailure;
-static gint ett_ngap_AMFStatusIndication;
-static gint ett_ngap_NGReset;
-static gint ett_ngap_NGResetAcknowledge;
-static gint ett_ngap_ErrorIndication;
-static gint ett_ngap_OverloadStart;
-static gint ett_ngap_OverloadStop;
-static gint ett_ngap_UplinkRANConfigurationTransfer;
-static gint ett_ngap_DownlinkRANConfigurationTransfer;
-static gint ett_ngap_WriteReplaceWarningRequest;
-static gint ett_ngap_WriteReplaceWarningResponse;
-static gint ett_ngap_PWSCancelRequest;
-static gint ett_ngap_PWSCancelResponse;
-static gint ett_ngap_PWSRestartIndication;
-static gint ett_ngap_PWSFailureIndication;
-static gint ett_ngap_DownlinkUEAssociatedNRPPaTransport;
-static gint ett_ngap_UplinkUEAssociatedNRPPaTransport;
-static gint ett_ngap_DownlinkNonUEAssociatedNRPPaTransport;
-static gint ett_ngap_UplinkNonUEAssociatedNRPPaTransport;
-static gint ett_ngap_TraceStart;
-static gint ett_ngap_TraceFailureIndication;
-static gint ett_ngap_DeactivateTrace;
-static gint ett_ngap_CellTrafficTrace;
-static gint ett_ngap_LocationReportingControl;
-static gint ett_ngap_LocationReportingFailureIndication;
-static gint ett_ngap_LocationReport;
-static gint ett_ngap_UETNLABindingReleaseRequest;
-static gint ett_ngap_UERadioCapabilityInfoIndication;
-static gint ett_ngap_UERadioCapabilityCheckRequest;
-static gint ett_ngap_UERadioCapabilityCheckResponse;
-static gint ett_ngap_PrivateMessage;
-static gint ett_ngap_SecondaryRATDataUsageReport;
-static gint ett_ngap_UplinkRIMInformationTransfer;
-static gint ett_ngap_DownlinkRIMInformationTransfer;
-static gint ett_ngap_ConnectionEstablishmentIndication;
-static gint ett_ngap_UERadioCapabilityIDMappingRequest;
-static gint ett_ngap_UERadioCapabilityIDMappingResponse;
-static gint ett_ngap_AMFCPRelocationIndication;
-static gint ett_ngap_BroadcastSessionSetupRequest;
-static gint ett_ngap_BroadcastSessionSetupResponse;
-static gint ett_ngap_BroadcastSessionSetupFailure;
-static gint ett_ngap_BroadcastSessionModificationRequest;
-static gint ett_ngap_BroadcastSessionModificationResponse;
-static gint ett_ngap_BroadcastSessionModificationFailure;
-static gint ett_ngap_BroadcastSessionReleaseRequest;
-static gint ett_ngap_BroadcastSessionReleaseRequired;
-static gint ett_ngap_BroadcastSessionReleaseResponse;
-static gint ett_ngap_DistributionSetupRequest;
-static gint ett_ngap_DistributionSetupResponse;
-static gint ett_ngap_DistributionSetupFailure;
-static gint ett_ngap_DistributionReleaseRequest;
-static gint ett_ngap_DistributionReleaseResponse;
-static gint ett_ngap_MulticastSessionActivationRequest;
-static gint ett_ngap_MulticastSessionActivationResponse;
-static gint ett_ngap_MulticastSessionActivationFailure;
-static gint ett_ngap_MulticastSessionDeactivationRequest;
-static gint ett_ngap_MulticastSessionDeactivationResponse;
-static gint ett_ngap_MulticastSessionUpdateRequest;
-static gint ett_ngap_MulticastSessionUpdateResponse;
-static gint ett_ngap_MulticastSessionUpdateFailure;
-static gint ett_ngap_MulticastGroupPaging;
-static gint ett_ngap_NGAP_PDU;
-static gint ett_ngap_InitiatingMessage;
-static gint ett_ngap_SuccessfulOutcome;
-static gint ett_ngap_UnsuccessfulOutcome;
+static int ett_ngap_PrivateIE_ID;
+static int ett_ngap_ProtocolIE_Container;
+static int ett_ngap_ProtocolIE_Field;
+static int ett_ngap_ProtocolExtensionContainer;
+static int ett_ngap_ProtocolExtensionField;
+static int ett_ngap_PrivateIE_Container;
+static int ett_ngap_PrivateIE_Field;
+static int ett_ngap_AdditionalDLUPTNLInformationForHOList;
+static int ett_ngap_AdditionalDLUPTNLInformationForHOItem;
+static int ett_ngap_AllocationAndRetentionPriority;
+static int ett_ngap_Allowed_CAG_List_per_PLMN;
+static int ett_ngap_AllowedNSSAI;
+static int ett_ngap_AllowedNSSAI_Item;
+static int ett_ngap_Allowed_PNI_NPN_List;
+static int ett_ngap_Allowed_PNI_NPN_Item;
+static int ett_ngap_AllowedTACs;
+static int ett_ngap_AlternativeQoSParaSetList;
+static int ett_ngap_AlternativeQoSParaSetItem;
+static int ett_ngap_AMFPagingTarget;
+static int ett_ngap_AMF_TNLAssociationSetupList;
+static int ett_ngap_AMF_TNLAssociationSetupItem;
+static int ett_ngap_AMF_TNLAssociationToAddList;
+static int ett_ngap_AMF_TNLAssociationToAddItem;
+static int ett_ngap_AMF_TNLAssociationToRemoveList;
+static int ett_ngap_AMF_TNLAssociationToRemoveItem;
+static int ett_ngap_AMF_TNLAssociationToUpdateList;
+static int ett_ngap_AMF_TNLAssociationToUpdateItem;
+static int ett_ngap_AreaOfInterest;
+static int ett_ngap_AreaOfInterestCellList;
+static int ett_ngap_AreaOfInterestCellItem;
+static int ett_ngap_AreaOfInterestList;
+static int ett_ngap_AreaOfInterestItem;
+static int ett_ngap_AreaOfInterestRANNodeList;
+static int ett_ngap_AreaOfInterestRANNodeItem;
+static int ett_ngap_AreaOfInterestTAIList;
+static int ett_ngap_AreaOfInterestTAIItem;
+static int ett_ngap_AssistanceDataForPaging;
+static int ett_ngap_AssistanceDataForRecommendedCells;
+static int ett_ngap_AssociatedMBSQosFlowSetupRequestList;
+static int ett_ngap_AssociatedMBSQosFlowSetupRequestItem;
+static int ett_ngap_AssociatedMBSQosFlowSetuporModifyRequestList;
+static int ett_ngap_AssociatedMBSQosFlowSetuporModifyRequestItem;
+static int ett_ngap_AssociatedQosFlowList;
+static int ett_ngap_AssociatedQosFlowItem;
+static int ett_ngap_AreaScopeOfMDT_NR;
+static int ett_ngap_AreaScopeOfMDT_EUTRA;
+static int ett_ngap_AreaScopeOfNeighCellsList;
+static int ett_ngap_AreaScopeOfNeighCellsItem;
+static int ett_ngap_AreaScopeOfQMC;
+static int ett_ngap_AvailableRANVisibleQoEMetrics;
+static int ett_ngap_BeamMeasurementsReportConfiguration;
+static int ett_ngap_BeamMeasurementsReportQuantity;
+static int ett_ngap_BroadcastCancelledAreaList;
+static int ett_ngap_BroadcastCompletedAreaList;
+static int ett_ngap_BroadcastPLMNList;
+static int ett_ngap_BroadcastPLMNItem;
+static int ett_ngap_BluetoothMeasurementConfiguration;
+static int ett_ngap_BluetoothMeasConfigNameList;
+static int ett_ngap_BluetoothMeasConfigNameItem;
+static int ett_ngap_CancelledCellsInEAI_EUTRA;
+static int ett_ngap_CancelledCellsInEAI_EUTRA_Item;
+static int ett_ngap_CancelledCellsInEAI_NR;
+static int ett_ngap_CancelledCellsInEAI_NR_Item;
+static int ett_ngap_CancelledCellsInTAI_EUTRA;
+static int ett_ngap_CancelledCellsInTAI_EUTRA_Item;
+static int ett_ngap_CancelledCellsInTAI_NR;
+static int ett_ngap_CancelledCellsInTAI_NR_Item;
+static int ett_ngap_CandidateCellList;
+static int ett_ngap_CandidateCellItem;
+static int ett_ngap_CandidateCell;
+static int ett_ngap_CandidateCellID;
+static int ett_ngap_CandidatePCI;
+static int ett_ngap_Cause;
+static int ett_ngap_Cell_CAGInformation;
+static int ett_ngap_CellCAGList;
+static int ett_ngap_CellIDBroadcastEUTRA;
+static int ett_ngap_CellIDBroadcastEUTRA_Item;
+static int ett_ngap_CellIDBroadcastNR;
+static int ett_ngap_CellIDBroadcastNR_Item;
+static int ett_ngap_CellIDCancelledEUTRA;
+static int ett_ngap_CellIDCancelledEUTRA_Item;
+static int ett_ngap_CellIDCancelledNR;
+static int ett_ngap_CellIDCancelledNR_Item;
+static int ett_ngap_CellIDListForRestart;
+static int ett_ngap_CellType;
+static int ett_ngap_CNAssistedRANTuning;
+static int ett_ngap_CNTypeRestrictionsForEquivalent;
+static int ett_ngap_CNTypeRestrictionsForEquivalentItem;
+static int ett_ngap_CompletedCellsInEAI_EUTRA;
+static int ett_ngap_CompletedCellsInEAI_EUTRA_Item;
+static int ett_ngap_CompletedCellsInEAI_NR;
+static int ett_ngap_CompletedCellsInEAI_NR_Item;
+static int ett_ngap_CompletedCellsInTAI_EUTRA;
+static int ett_ngap_CompletedCellsInTAI_EUTRA_Item;
+static int ett_ngap_CompletedCellsInTAI_NR;
+static int ett_ngap_CompletedCellsInTAI_NR_Item;
+static int ett_ngap_CoreNetworkAssistanceInformationForInactive;
+static int ett_ngap_COUNTValueForPDCP_SN12;
+static int ett_ngap_COUNTValueForPDCP_SN18;
+static int ett_ngap_CPTransportLayerInformation;
+static int ett_ngap_CriticalityDiagnostics;
+static int ett_ngap_CriticalityDiagnostics_IE_List;
+static int ett_ngap_CriticalityDiagnostics_IE_Item;
+static int ett_ngap_CellBasedMDT_NR;
+static int ett_ngap_CellIdListforMDT_NR;
+static int ett_ngap_CellBasedMDT_EUTRA;
+static int ett_ngap_CellBasedQMC;
+static int ett_ngap_CellIdListforQMC;
+static int ett_ngap_CellIdListforMDT_EUTRA;
+static int ett_ngap_DataForwardingResponseDRBList;
+static int ett_ngap_DataForwardingResponseDRBItem;
+static int ett_ngap_DAPSRequestInfo;
+static int ett_ngap_DAPSResponseInfoList;
+static int ett_ngap_DAPSResponseInfoItem;
+static int ett_ngap_DAPSResponseInfo;
+static int ett_ngap_DataForwardingResponseERABList;
+static int ett_ngap_DataForwardingResponseERABListItem;
+static int ett_ngap_DL_CP_SecurityInformation;
+static int ett_ngap_DRBsSubjectToStatusTransferList;
+static int ett_ngap_DRBsSubjectToStatusTransferItem;
+static int ett_ngap_DRBStatusDL;
+static int ett_ngap_DRBStatusDL12;
+static int ett_ngap_DRBStatusDL18;
+static int ett_ngap_DRBStatusUL;
+static int ett_ngap_DRBStatusUL12;
+static int ett_ngap_DRBStatusUL18;
+static int ett_ngap_DRBsToQosFlowsMappingList;
+static int ett_ngap_DRBsToQosFlowsMappingItem;
+static int ett_ngap_Dynamic5QIDescriptor;
+static int ett_ngap_EarlyStatusTransfer_TransparentContainer;
+static int ett_ngap_ProcedureStageChoice;
+static int ett_ngap_FirstDLCount;
+static int ett_ngap_DRBsSubjectToEarlyStatusTransfer_List;
+static int ett_ngap_DRBsSubjectToEarlyStatusTransfer_Item;
+static int ett_ngap_EmergencyAreaIDBroadcastEUTRA;
+static int ett_ngap_EmergencyAreaIDBroadcastEUTRA_Item;
+static int ett_ngap_EmergencyAreaIDBroadcastNR;
+static int ett_ngap_EmergencyAreaIDBroadcastNR_Item;
+static int ett_ngap_EmergencyAreaIDCancelledEUTRA;
+static int ett_ngap_EmergencyAreaIDCancelledEUTRA_Item;
+static int ett_ngap_EmergencyAreaIDCancelledNR;
+static int ett_ngap_EmergencyAreaIDCancelledNR_Item;
+static int ett_ngap_EmergencyAreaIDList;
+static int ett_ngap_EmergencyAreaIDListForRestart;
+static int ett_ngap_EmergencyFallbackIndicator;
+static int ett_ngap_ENB_ID;
+static int ett_ngap_EndpointIPAddressAndPort;
+static int ett_ngap_EquivalentPLMNs;
+static int ett_ngap_EPS_TAI;
+static int ett_ngap_E_RABInformationList;
+static int ett_ngap_E_RABInformationItem;
+static int ett_ngap_EUTRA_CGI;
+static int ett_ngap_EUTRA_CGIList;
+static int ett_ngap_EUTRA_CGIListForWarning;
+static int ett_ngap_EUTRA_PagingeDRXInformation;
+static int ett_ngap_ExcessPacketDelayThresholdConfiguration;
+static int ett_ngap_ExcessPacketDelayThresholdItem;
+static int ett_ngap_ExpectedUEActivityBehaviour;
+static int ett_ngap_ExpectedUEBehaviour;
+static int ett_ngap_ExpectedUEMovingTrajectory;
+static int ett_ngap_ExpectedUEMovingTrajectoryItem;
+static int ett_ngap_Extended_AMFName;
+static int ett_ngap_Extended_RANNodeName;
+static int ett_ngap_ExtendedRATRestrictionInformation;
+static int ett_ngap_ExtendedSliceSupportList;
+static int ett_ngap_EventTrigger;
+static int ett_ngap_EventL1LoggedMDTConfig;
+static int ett_ngap_MeasurementThresholdL1LoggedMDT;
+static int ett_ngap_FailureIndication;
+static int ett_ngap_FiveG_ProSeAuthorized;
+static int ett_ngap_FiveG_ProSePC5QoSParameters;
+static int ett_ngap_FiveGProSePC5QoSFlowList;
+static int ett_ngap_FiveGProSePC5QoSFlowItem;
+static int ett_ngap_FiveGProSePC5FlowBitRates;
+static int ett_ngap_FiveG_S_TMSI;
+static int ett_ngap_ForbiddenAreaInformation;
+static int ett_ngap_ForbiddenAreaInformation_Item;
+static int ett_ngap_ForbiddenTACs;
+static int ett_ngap_FromEUTRANtoNGRAN;
+static int ett_ngap_FromNGRANtoEUTRAN;
+static int ett_ngap_GBR_QosInformation;
+static int ett_ngap_GlobalCable_ID_new;
+static int ett_ngap_GlobalENB_ID;
+static int ett_ngap_GlobalGNB_ID;
+static int ett_ngap_GlobalN3IWF_ID;
+static int ett_ngap_GlobalLine_ID;
+static int ett_ngap_GlobalNgENB_ID;
+static int ett_ngap_GlobalRANNodeID;
+static int ett_ngap_GlobalTNGF_ID;
+static int ett_ngap_GlobalTWIF_ID;
+static int ett_ngap_GlobalW_AGF_ID;
+static int ett_ngap_GNB_ID;
+static int ett_ngap_GTPTunnel;
+static int ett_ngap_GUAMI;
+static int ett_ngap_HandoverCommandTransfer;
+static int ett_ngap_HandoverPreparationUnsuccessfulTransfer;
+static int ett_ngap_HandoverRequestAcknowledgeTransfer;
+static int ett_ngap_HandoverRequiredTransfer;
+static int ett_ngap_HandoverResourceAllocationUnsuccessfulTransfer;
+static int ett_ngap_HFCNode_ID_new;
+static int ett_ngap_HOReport;
+static int ett_ngap_InfoOnRecommendedCellsAndRANNodesForPaging;
+static int ett_ngap_ImmediateMDTNr;
+static int ett_ngap_InterSystemFailureIndication;
+static int ett_ngap_IntersystemSONConfigurationTransfer;
+static int ett_ngap_IntersystemSONTransferType;
+static int ett_ngap_IntersystemSONeNBID;
+static int ett_ngap_IntersystemSONNGRANnodeID;
+static int ett_ngap_IntersystemSONInformation;
+static int ett_ngap_IntersystemSONInformationRequest;
+static int ett_ngap_IntersystemCellActivationRequest;
+static int ett_ngap_CellsToActivateList;
+static int ett_ngap_IntersystemResourceStatusRequest;
+static int ett_ngap_ReportingSystem;
+static int ett_ngap_EUTRAN_ReportingSystemIEs;
+static int ett_ngap_NGRAN_ReportingSystemIEs;
+static int ett_ngap_EUTRAN_CellToReportList;
+static int ett_ngap_EUTRAN_CellToReportItem;
+static int ett_ngap_NGRAN_CellToReportList;
+static int ett_ngap_NGRAN_CellToReportItem;
+static int ett_ngap_ReportType;
+static int ett_ngap_EventBasedReportingIEs;
+static int ett_ngap_PeriodicReportingIEs;
+static int ett_ngap_IntersystemSONInformationReply;
+static int ett_ngap_IntersystemCellActivationReply;
+static int ett_ngap_ActivatedCellList;
+static int ett_ngap_IntersystemResourceStatusReply;
+static int ett_ngap_IntersystemSONInformationReport;
+static int ett_ngap_IntersystemCellStateIndication;
+static int ett_ngap_NotificationCellList;
+static int ett_ngap_NotificationCell_Item;
+static int ett_ngap_IntersystemResourceStatusReport;
+static int ett_ngap_ResourceStatusReportingSystem;
+static int ett_ngap_EUTRAN_ReportingStatusIEs;
+static int ett_ngap_EUTRAN_CellReportList;
+static int ett_ngap_EUTRAN_CellReportItem;
+static int ett_ngap_EUTRAN_CompositeAvailableCapacityGroup;
+static int ett_ngap_CompositeAvailableCapacity;
+static int ett_ngap_EUTRAN_RadioResourceStatus;
+static int ett_ngap_NGRAN_ReportingStatusIEs;
+static int ett_ngap_NGRAN_CellReportList;
+static int ett_ngap_NGRAN_CellReportItem;
+static int ett_ngap_NGRAN_RadioResourceStatus;
+static int ett_ngap_InterSystemHOReport;
+static int ett_ngap_InterSystemHandoverReportType;
+static int ett_ngap_IntersystemUnnecessaryHO;
+static int ett_ngap_LAI;
+static int ett_ngap_LastVisitedCellInformation;
+static int ett_ngap_LastVisitedCellItem;
+static int ett_ngap_LastVisitedNGRANCellInformation;
+static int ett_ngap_LastVisitedPSCellList;
+static int ett_ngap_LastVisitedPSCellInformation;
+static int ett_ngap_LocationReportingRequestType;
+static int ett_ngap_LoggedMDTNr;
+static int ett_ngap_LoggedMDTTrigger;
+static int ett_ngap_LTEV2XServicesAuthorized;
+static int ett_ngap_LTEUESidelinkAggregateMaximumBitrate;
+static int ett_ngap_MBS_DataForwardingResponseMRBList;
+static int ett_ngap_MBS_DataForwardingResponseMRBItem;
+static int ett_ngap_MBS_MappingandDataForwardingRequestList;
+static int ett_ngap_MBS_MappingandDataForwardingRequestItem;
+static int ett_ngap_MBS_QoSFlowList;
+static int ett_ngap_MRB_ProgressInformation;
+static int ett_ngap_MBS_QoSFlowsToBeSetupList;
+static int ett_ngap_MBS_QoSFlowsToBeSetupItem;
+static int ett_ngap_MBS_ServiceArea;
+static int ett_ngap_MBS_ServiceAreaInformationList;
+static int ett_ngap_MBS_ServiceAreaInformationItem;
+static int ett_ngap_MBS_ServiceAreaInformation;
+static int ett_ngap_MBS_ServiceAreaCellList;
+static int ett_ngap_MBS_ServiceAreaTAIList;
+static int ett_ngap_MBS_SessionID;
+static int ett_ngap_MBSSessionFailedtoSetupList;
+static int ett_ngap_MBSSessionFailedtoSetupItem;
+static int ett_ngap_MBS_ActiveSessionInformation_SourcetoTargetList;
+static int ett_ngap_MBS_ActiveSessionInformation_SourcetoTargetItem;
+static int ett_ngap_MBS_ActiveSessionInformation_TargettoSourceList;
+static int ett_ngap_MBS_ActiveSessionInformation_TargettoSourceItem;
+static int ett_ngap_MBSSessionSetupOrModFailureTransfer;
+static int ett_ngap_MBSSessionSetupResponseList;
+static int ett_ngap_MBSSessionSetupResponseItem;
+static int ett_ngap_MBSSessionSetupOrModRequestTransfer;
+static int ett_ngap_MBS_SessionFSAIDList;
+static int ett_ngap_MBSSessionReleaseResponseTransfer;
+static int ett_ngap_MBSSessionSetupOrModResponseTransfer;
+static int ett_ngap_MBS_SessionTNLInfo5GC;
+static int ett_ngap_MBS_SessionTNLInfo5GCList;
+static int ett_ngap_MBS_SessionTNLInfo5GCItem;
+static int ett_ngap_MBS_SessionTNLInfoNGRAN;
+static int ett_ngap_MBS_SessionTNLInfoNGRANList;
+static int ett_ngap_MBS_SessionTNLInfoNGRANItem;
+static int ett_ngap_MBS_DistributionReleaseRequestTransfer;
+static int ett_ngap_MBS_DistributionSetupRequestTransfer;
+static int ett_ngap_MBS_DistributionSetupResponseTransfer;
+static int ett_ngap_MBS_DistributionSetupUnsuccessfulTransfer;
+static int ett_ngap_MBSSessionSetupRequestList;
+static int ett_ngap_MBSSessionSetupRequestItem;
+static int ett_ngap_MBSSessionSetuporModifyRequestList;
+static int ett_ngap_MBSSessionSetuporModifyRequestItem;
+static int ett_ngap_MBSSessionToReleaseList;
+static int ett_ngap_MBSSessionToReleaseItem;
+static int ett_ngap_MobilityRestrictionList;
+static int ett_ngap_MDT_AlignmentInfo;
+static int ett_ngap_MDTPLMNList;
+static int ett_ngap_MDTPLMNModificationList;
+static int ett_ngap_MDT_Configuration;
+static int ett_ngap_MDT_Configuration_NR;
+static int ett_ngap_MDT_Configuration_EUTRA;
+static int ett_ngap_MDTModeNr;
+static int ett_ngap_MulticastSessionActivationRequestTransfer;
+static int ett_ngap_MulticastSessionDeactivationRequestTransfer;
+static int ett_ngap_MulticastSessionUpdateRequestTransfer;
+static int ett_ngap_MulticastGroupPagingAreaList;
+static int ett_ngap_MulticastGroupPagingAreaItem;
+static int ett_ngap_MBS_AreaTAIList;
+static int ett_ngap_MulticastGroupPagingArea;
+static int ett_ngap_UE_PagingList;
+static int ett_ngap_UE_PagingItem;
+static int ett_ngap_M1Configuration;
+static int ett_ngap_M1ThresholdEventA2;
+static int ett_ngap_M1ThresholdType;
+static int ett_ngap_M1PeriodicReporting;
+static int ett_ngap_M4Configuration;
+static int ett_ngap_M5Configuration;
+static int ett_ngap_M6Configuration;
+static int ett_ngap_M7Configuration;
+static int ett_ngap_MDT_Location_Info;
+static int ett_ngap_N3IWF_ID;
+static int ett_ngap_NB_IoT_Paging_eDRXInfo;
+static int ett_ngap_NGAPIESupportInformationRequestList;
+static int ett_ngap_NGAPIESupportInformationRequestItem;
+static int ett_ngap_NGAPIESupportInformationResponseList;
+static int ett_ngap_NGAPIESupportInformationResponseItem;
+static int ett_ngap_NgENB_ID;
+static int ett_ngap_NGRAN_CGI;
+static int ett_ngap_NGRAN_TNLAssociationToRemoveList;
+static int ett_ngap_NGRAN_TNLAssociationToRemoveItem;
+static int ett_ngap_NonDynamic5QIDescriptor;
+static int ett_ngap_NotAllowedTACs;
+static int ett_ngap_NPN_AccessInformation;
+static int ett_ngap_NPN_MobilityInformation;
+static int ett_ngap_NPN_PagingAssistanceInformation;
+static int ett_ngap_NPN_Support;
+static int ett_ngap_NR_CGI;
+static int ett_ngap_NR_CGIList;
+static int ett_ngap_NR_CGIListForWarning;
+static int ett_ngap_NR_PagingeDRXInformation;
+static int ett_ngap_NRNTNTAIInformation;
+static int ett_ngap_NRFrequencyBand_List;
+static int ett_ngap_NRFrequencyBandItem;
+static int ett_ngap_NRFrequencyInfo;
+static int ett_ngap_NRV2XServicesAuthorized;
+static int ett_ngap_NRUESidelinkAggregateMaximumBitrate;
+static int ett_ngap_OverloadResponse;
+static int ett_ngap_OverloadStartNSSAIList;
+static int ett_ngap_OverloadStartNSSAIItem;
+static int ett_ngap_PacketErrorRate;
+static int ett_ngap_PagingAssisDataforCEcapabUE;
+static int ett_ngap_PagingAttemptInformation;
+static int ett_ngap_PathSwitchRequestAcknowledgeTransfer;
+static int ett_ngap_PathSwitchRequestSetupFailedTransfer;
+static int ett_ngap_PathSwitchRequestTransfer;
+static int ett_ngap_PathSwitchRequestUnsuccessfulTransfer;
+static int ett_ngap_PC5QoSParameters;
+static int ett_ngap_PC5QoSFlowList;
+static int ett_ngap_PC5QoSFlowItem;
+static int ett_ngap_PC5FlowBitRates;
+static int ett_ngap_PCIListForMDT;
+static int ett_ngap_PDUSessionAggregateMaximumBitRate;
+static int ett_ngap_PDUSessionResourceAdmittedList;
+static int ett_ngap_PDUSessionResourceAdmittedItem;
+static int ett_ngap_PDUSessionResourceFailedToModifyListModCfm;
+static int ett_ngap_PDUSessionResourceFailedToModifyItemModCfm;
+static int ett_ngap_PDUSessionResourceFailedToModifyListModRes;
+static int ett_ngap_PDUSessionResourceFailedToModifyItemModRes;
+static int ett_ngap_PDUSessionResourceFailedToResumeListRESReq;
+static int ett_ngap_PDUSessionResourceFailedToResumeItemRESReq;
+static int ett_ngap_PDUSessionResourceFailedToResumeListRESRes;
+static int ett_ngap_PDUSessionResourceFailedToResumeItemRESRes;
+static int ett_ngap_PDUSessionResourceFailedToSetupListCxtFail;
+static int ett_ngap_PDUSessionResourceFailedToSetupItemCxtFail;
+static int ett_ngap_PDUSessionResourceFailedToSetupListCxtRes;
+static int ett_ngap_PDUSessionResourceFailedToSetupItemCxtRes;
+static int ett_ngap_PDUSessionResourceFailedToSetupListHOAck;
+static int ett_ngap_PDUSessionResourceFailedToSetupItemHOAck;
+static int ett_ngap_PDUSessionResourceFailedToSetupListPSReq;
+static int ett_ngap_PDUSessionResourceFailedToSetupItemPSReq;
+static int ett_ngap_PDUSessionResourceFailedToSetupListSURes;
+static int ett_ngap_PDUSessionResourceFailedToSetupItemSURes;
+static int ett_ngap_PDUSessionResourceHandoverList;
+static int ett_ngap_PDUSessionResourceHandoverItem;
+static int ett_ngap_PDUSessionResourceInformationList;
+static int ett_ngap_PDUSessionResourceInformationItem;
+static int ett_ngap_PDUSessionResourceListCxtRelCpl;
+static int ett_ngap_PDUSessionResourceItemCxtRelCpl;
+static int ett_ngap_PDUSessionResourceListCxtRelReq;
+static int ett_ngap_PDUSessionResourceItemCxtRelReq;
+static int ett_ngap_PDUSessionResourceListHORqd;
+static int ett_ngap_PDUSessionResourceItemHORqd;
+static int ett_ngap_PDUSessionResourceModifyConfirmTransfer;
+static int ett_ngap_PDUSessionResourceModifyIndicationUnsuccessfulTransfer;
+static int ett_ngap_PDUSessionResourceModifyRequestTransfer;
+static int ett_ngap_PDUSessionResourceModifyResponseTransfer;
+static int ett_ngap_PDUSessionResourceModifyIndicationTransfer;
+static int ett_ngap_PDUSessionResourceModifyListModCfm;
+static int ett_ngap_PDUSessionResourceModifyItemModCfm;
+static int ett_ngap_PDUSessionResourceModifyListModInd;
+static int ett_ngap_PDUSessionResourceModifyItemModInd;
+static int ett_ngap_PDUSessionResourceModifyListModReq;
+static int ett_ngap_PDUSessionResourceModifyItemModReq;
+static int ett_ngap_PDUSessionResourceModifyListModRes;
+static int ett_ngap_PDUSessionResourceModifyItemModRes;
+static int ett_ngap_PDUSessionResourceModifyUnsuccessfulTransfer;
+static int ett_ngap_PDUSessionResourceNotifyList;
+static int ett_ngap_PDUSessionResourceNotifyItem;
+static int ett_ngap_PDUSessionResourceNotifyReleasedTransfer;
+static int ett_ngap_PDUSessionResourceNotifyTransfer;
+static int ett_ngap_PDUSessionResourceReleaseCommandTransfer;
+static int ett_ngap_PDUSessionResourceReleasedListNot;
+static int ett_ngap_PDUSessionResourceReleasedItemNot;
+static int ett_ngap_PDUSessionResourceReleasedListPSAck;
+static int ett_ngap_PDUSessionResourceReleasedItemPSAck;
+static int ett_ngap_PDUSessionResourceReleasedListPSFail;
+static int ett_ngap_PDUSessionResourceReleasedItemPSFail;
+static int ett_ngap_PDUSessionResourceReleasedListRelRes;
+static int ett_ngap_PDUSessionResourceReleasedItemRelRes;
+static int ett_ngap_PDUSessionResourceReleaseResponseTransfer;
+static int ett_ngap_PDUSessionResourceResumeListRESReq;
+static int ett_ngap_PDUSessionResourceResumeItemRESReq;
+static int ett_ngap_PDUSessionResourceResumeListRESRes;
+static int ett_ngap_PDUSessionResourceResumeItemRESRes;
+static int ett_ngap_PDUSessionResourceSecondaryRATUsageList;
+static int ett_ngap_PDUSessionResourceSecondaryRATUsageItem;
+static int ett_ngap_PDUSessionResourceSetupListCxtReq;
+static int ett_ngap_PDUSessionResourceSetupItemCxtReq;
+static int ett_ngap_PDUSessionResourceSetupListCxtRes;
+static int ett_ngap_PDUSessionResourceSetupItemCxtRes;
+static int ett_ngap_PDUSessionResourceSetupListHOReq;
+static int ett_ngap_PDUSessionResourceSetupItemHOReq;
+static int ett_ngap_PDUSessionResourceSetupListSUReq;
+static int ett_ngap_PDUSessionResourceSetupItemSUReq;
+static int ett_ngap_PDUSessionResourceSetupListSURes;
+static int ett_ngap_PDUSessionResourceSetupItemSURes;
+static int ett_ngap_PDUSessionResourceSetupRequestTransfer;
+static int ett_ngap_PDUSessionResourceSetupResponseTransfer;
+static int ett_ngap_PDUSessionResourceSetupUnsuccessfulTransfer;
+static int ett_ngap_PDUSessionResourceSuspendListSUSReq;
+static int ett_ngap_PDUSessionResourceSuspendItemSUSReq;
+static int ett_ngap_PDUSessionResourceSwitchedList;
+static int ett_ngap_PDUSessionResourceSwitchedItem;
+static int ett_ngap_PDUSessionResourceToBeSwitchedDLList;
+static int ett_ngap_PDUSessionResourceToBeSwitchedDLItem;
+static int ett_ngap_PDUSessionResourceToReleaseListHOCmd;
+static int ett_ngap_PDUSessionResourceToReleaseItemHOCmd;
+static int ett_ngap_PDUSessionResourceToReleaseListRelCmd;
+static int ett_ngap_PDUSessionResourceToReleaseItemRelCmd;
+static int ett_ngap_PDUSessionUsageReport;
+static int ett_ngap_PEIPSassistanceInformation;
+static int ett_ngap_PLMNAreaBasedQMC;
+static int ett_ngap_PLMNListforQMC;
+static int ett_ngap_PLMNSupportList;
+static int ett_ngap_PLMNSupportItem;
+static int ett_ngap_PNI_NPN_MobilityInformation;
+static int ett_ngap_PWSFailedCellIDList;
+static int ett_ngap_QMCConfigInfo;
+static int ett_ngap_QMCDeactivation;
+static int ett_ngap_QoEReferenceList;
+static int ett_ngap_QosCharacteristics;
+static int ett_ngap_QosFlowAcceptedList;
+static int ett_ngap_QosFlowAcceptedItem;
+static int ett_ngap_QosFlowAddOrModifyRequestList;
+static int ett_ngap_QosFlowAddOrModifyRequestItem;
+static int ett_ngap_QosFlowAddOrModifyResponseList;
+static int ett_ngap_QosFlowAddOrModifyResponseItem;
+static int ett_ngap_QosFlowFeedbackList;
+static int ett_ngap_QosFlowFeedbackItem;
+static int ett_ngap_QosFlowInformationList;
+static int ett_ngap_QosFlowInformationItem;
+static int ett_ngap_QosFlowLevelQosParameters;
+static int ett_ngap_QosFlowListWithCause;
+static int ett_ngap_QosFlowWithCauseItem;
+static int ett_ngap_QosFlowModifyConfirmList;
+static int ett_ngap_QosFlowModifyConfirmItem;
+static int ett_ngap_QosFlowNotifyList;
+static int ett_ngap_QosFlowNotifyItem;
+static int ett_ngap_QosFlowParametersList;
+static int ett_ngap_QosFlowParametersItem;
+static int ett_ngap_QosFlowPerTNLInformation;
+static int ett_ngap_QosFlowPerTNLInformationList;
+static int ett_ngap_QosFlowPerTNLInformationItem;
+static int ett_ngap_QosFlowSetupRequestList;
+static int ett_ngap_QosFlowSetupRequestItem;
+static int ett_ngap_QosFlowListWithDataForwarding;
+static int ett_ngap_QosFlowItemWithDataForwarding;
+static int ett_ngap_QosFlowToBeForwardedList;
+static int ett_ngap_QosFlowToBeForwardedItem;
+static int ett_ngap_QoSFlowsUsageReportList;
+static int ett_ngap_QoSFlowsUsageReport_Item;
+static int ett_ngap_RANStatusTransfer_TransparentContainer;
+static int ett_ngap_RATRestrictions;
+static int ett_ngap_RATRestrictions_Item;
+static int ett_ngap_RecommendedCellsForPaging;
+static int ett_ngap_RecommendedCellList;
+static int ett_ngap_RecommendedCellItem;
+static int ett_ngap_RecommendedRANNodesForPaging;
+static int ett_ngap_RecommendedRANNodeList;
+static int ett_ngap_RecommendedRANNodeItem;
+static int ett_ngap_RedundantPDUSessionInformation;
+static int ett_ngap_ResetType;
+static int ett_ngap_RIMInformationTransfer;
+static int ett_ngap_RIMInformation;
+static int ett_ngap_ScheduledCommunicationTime;
+static int ett_ngap_SCTP_TLAs;
+static int ett_ngap_SecondaryRATUsageInformation;
+static int ett_ngap_SecondaryRATDataUsageReportTransfer;
+static int ett_ngap_SecurityContext;
+static int ett_ngap_SecurityIndication;
+static int ett_ngap_SecurityResult;
+static int ett_ngap_SensorMeasurementConfiguration;
+static int ett_ngap_SensorMeasConfigNameList;
+static int ett_ngap_SensorMeasConfigNameItem;
+static int ett_ngap_SensorNameConfig;
+static int ett_ngap_ServedGUAMIList;
+static int ett_ngap_ServedGUAMIItem;
+static int ett_ngap_ServiceAreaInformation;
+static int ett_ngap_ServiceAreaInformation_Item;
+static int ett_ngap_SharedNGU_MulticastTNLInformation;
+static int ett_ngap_SliceOverloadList;
+static int ett_ngap_SliceOverloadItem;
+static int ett_ngap_SliceSupportList;
+static int ett_ngap_SliceSupportItem;
+static int ett_ngap_SliceSupportListQMC;
+static int ett_ngap_SliceSupportQMC_Item;
+static int ett_ngap_SNPN_MobilityInformation;
+static int ett_ngap_S_NSSAI;
+static int ett_ngap_SONConfigurationTransfer;
+static int ett_ngap_SONInformation;
+static int ett_ngap_SONInformationReply;
+static int ett_ngap_SONInformationReport;
+static int ett_ngap_SuccessfulHandoverReportList;
+static int ett_ngap_SuccessfulHandoverReport_Item;
+static int ett_ngap_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer;
+static int ett_ngap_SourceNodeID;
+static int ett_ngap_SourceRANNodeID;
+static int ett_ngap_SourceToTarget_AMFInformationReroute;
+static int ett_ngap_SupportedTAList;
+static int ett_ngap_SupportedTAItem;
+static int ett_ngap_TACListInNRNTN;
+static int ett_ngap_TAI;
+static int ett_ngap_TAIBroadcastEUTRA;
+static int ett_ngap_TAIBroadcastEUTRA_Item;
+static int ett_ngap_TAIBroadcastNR;
+static int ett_ngap_TAIBroadcastNR_Item;
+static int ett_ngap_TAICancelledEUTRA;
+static int ett_ngap_TAICancelledEUTRA_Item;
+static int ett_ngap_TAICancelledNR;
+static int ett_ngap_TAICancelledNR_Item;
+static int ett_ngap_TAIListForInactive;
+static int ett_ngap_TAIListForInactiveItem;
+static int ett_ngap_TAIListForPaging;
+static int ett_ngap_TAIListForPagingItem;
+static int ett_ngap_TAIListForRestart;
+static int ett_ngap_TAIListForWarning;
+static int ett_ngap_TAINSAGSupportList;
+static int ett_ngap_TAINSAGSupportItem;
+static int ett_ngap_TargeteNB_ID;
+static int ett_ngap_TargetHomeENB_ID;
+static int ett_ngap_TargetID;
+static int ett_ngap_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer;
+static int ett_ngap_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer;
+static int ett_ngap_TargetNSSAI;
+static int ett_ngap_TargetNSSAI_Item;
+static int ett_ngap_TargetNSSAIInformation;
+static int ett_ngap_TargetRANNodeID;
+static int ett_ngap_TargetRANNodeID_RIM;
+static int ett_ngap_TargetRANNodeID_SON;
+static int ett_ngap_TargetRNC_ID;
+static int ett_ngap_TimeSyncAssistanceInfo;
+static int ett_ngap_TNGF_ID;
+static int ett_ngap_TNLAssociationList;
+static int ett_ngap_TNLAssociationItem;
+static int ett_ngap_TooearlyIntersystemHO;
+static int ett_ngap_TraceActivation;
+static int ett_ngap_TAIBasedMDT;
+static int ett_ngap_TAIListforMDT;
+static int ett_ngap_TAIBasedQMC;
+static int ett_ngap_TAIListforQMC;
+static int ett_ngap_TABasedQMC;
+static int ett_ngap_TAListforQMC;
+static int ett_ngap_TABasedMDT;
+static int ett_ngap_TAListforMDT;
+static int ett_ngap_TWIF_ID;
+static int ett_ngap_TSCAssistanceInformation;
+static int ett_ngap_TSCTrafficCharacteristics;
+static int ett_ngap_UEAggregateMaximumBitRate;
+static int ett_ngap_UEAppLayerMeasInfoList;
+static int ett_ngap_UEAppLayerMeasInfoItem;
+static int ett_ngap_UEAppLayerMeasConfigInfo;
+static int ett_ngap_UE_associatedLogicalNG_connectionList;
+static int ett_ngap_UE_associatedLogicalNG_connectionItem;
+static int ett_ngap_UEContextResumeRequestTransfer;
+static int ett_ngap_UEContextResumeResponseTransfer;
+static int ett_ngap_UEContextSuspendRequestTransfer;
+static int ett_ngap_UE_DifferentiationInfo;
+static int ett_ngap_UEHistoryInformation;
+static int ett_ngap_UEHistoryInformationFromTheUE;
+static int ett_ngap_UEIdentityIndexValue;
+static int ett_ngap_UE_NGAP_IDs;
+static int ett_ngap_UE_NGAP_ID_pair;
+static int ett_ngap_UEPagingIdentity;
+static int ett_ngap_UEPresenceInAreaOfInterestList;
+static int ett_ngap_UEPresenceInAreaOfInterestItem;
+static int ett_ngap_UERadioCapabilityForPaging;
+static int ett_ngap_UERLFReportContainer;
+static int ett_ngap_UESecurityCapabilities;
+static int ett_ngap_UESliceMaximumBitRateList;
+static int ett_ngap_UESliceMaximumBitRateItem;
+static int ett_ngap_UL_CP_SecurityInformation;
+static int ett_ngap_UL_NGU_UP_TNLModifyList;
+static int ett_ngap_UL_NGU_UP_TNLModifyItem;
+static int ett_ngap_UnavailableGUAMIList;
+static int ett_ngap_UnavailableGUAMIItem;
+static int ett_ngap_UPTransportLayerInformation;
+static int ett_ngap_UPTransportLayerInformationList;
+static int ett_ngap_UPTransportLayerInformationItem;
+static int ett_ngap_UPTransportLayerInformationPairList;
+static int ett_ngap_UPTransportLayerInformationPairItem;
+static int ett_ngap_UserLocationInformation;
+static int ett_ngap_UserLocationInformationEUTRA;
+static int ett_ngap_UserLocationInformationN3IWF;
+static int ett_ngap_UserLocationInformationTNGF;
+static int ett_ngap_UserLocationInformationTWIF;
+static int ett_ngap_UserLocationInformationW_AGF;
+static int ett_ngap_UserLocationInformationNR;
+static int ett_ngap_UserPlaneSecurityInformation;
+static int ett_ngap_VolumeTimedReportList;
+static int ett_ngap_VolumeTimedReport_Item;
+static int ett_ngap_W_AGF_ID;
+static int ett_ngap_WarningAreaList;
+static int ett_ngap_WLANMeasurementConfiguration;
+static int ett_ngap_WLANMeasConfigNameList;
+static int ett_ngap_WLANMeasConfigNameItem;
+static int ett_ngap_WUS_Assistance_Information;
+static int ett_ngap_XnExtTLAs;
+static int ett_ngap_XnExtTLA_Item;
+static int ett_ngap_XnGTP_TLAs;
+static int ett_ngap_XnTLAs;
+static int ett_ngap_XnTNLConfigurationInfo;
+static int ett_ngap_PDUSessionResourceSetupRequest;
+static int ett_ngap_PDUSessionResourceSetupResponse;
+static int ett_ngap_PDUSessionResourceReleaseCommand;
+static int ett_ngap_PDUSessionResourceReleaseResponse;
+static int ett_ngap_PDUSessionResourceModifyRequest;
+static int ett_ngap_PDUSessionResourceModifyResponse;
+static int ett_ngap_PDUSessionResourceNotify;
+static int ett_ngap_PDUSessionResourceModifyIndication;
+static int ett_ngap_PDUSessionResourceModifyConfirm;
+static int ett_ngap_InitialContextSetupRequest;
+static int ett_ngap_InitialContextSetupResponse;
+static int ett_ngap_InitialContextSetupFailure;
+static int ett_ngap_UEContextReleaseRequest;
+static int ett_ngap_UEContextReleaseCommand;
+static int ett_ngap_UEContextReleaseComplete;
+static int ett_ngap_UEContextResumeRequest;
+static int ett_ngap_UEContextResumeResponse;
+static int ett_ngap_UEContextResumeFailure;
+static int ett_ngap_UEContextSuspendRequest;
+static int ett_ngap_UEContextSuspendResponse;
+static int ett_ngap_UEContextSuspendFailure;
+static int ett_ngap_UEContextModificationRequest;
+static int ett_ngap_UEContextModificationResponse;
+static int ett_ngap_UEContextModificationFailure;
+static int ett_ngap_RRCInactiveTransitionReport;
+static int ett_ngap_RetrieveUEInformation;
+static int ett_ngap_UEInformationTransfer;
+static int ett_ngap_RANCPRelocationIndication;
+static int ett_ngap_HandoverRequired;
+static int ett_ngap_HandoverCommand;
+static int ett_ngap_HandoverPreparationFailure;
+static int ett_ngap_HandoverRequest;
+static int ett_ngap_HandoverRequestAcknowledge;
+static int ett_ngap_HandoverFailure;
+static int ett_ngap_HandoverNotify;
+static int ett_ngap_PathSwitchRequest;
+static int ett_ngap_PathSwitchRequestAcknowledge;
+static int ett_ngap_PathSwitchRequestFailure;
+static int ett_ngap_HandoverCancel;
+static int ett_ngap_HandoverCancelAcknowledge;
+static int ett_ngap_HandoverSuccess;
+static int ett_ngap_UplinkRANEarlyStatusTransfer;
+static int ett_ngap_DownlinkRANEarlyStatusTransfer;
+static int ett_ngap_UplinkRANStatusTransfer;
+static int ett_ngap_DownlinkRANStatusTransfer;
+static int ett_ngap_Paging;
+static int ett_ngap_InitialUEMessage;
+static int ett_ngap_DownlinkNASTransport;
+static int ett_ngap_UplinkNASTransport;
+static int ett_ngap_NASNonDeliveryIndication;
+static int ett_ngap_RerouteNASRequest;
+static int ett_ngap_NGSetupRequest;
+static int ett_ngap_NGSetupResponse;
+static int ett_ngap_NGSetupFailure;
+static int ett_ngap_RANConfigurationUpdate;
+static int ett_ngap_RANConfigurationUpdateAcknowledge;
+static int ett_ngap_RANConfigurationUpdateFailure;
+static int ett_ngap_AMFConfigurationUpdate;
+static int ett_ngap_AMFConfigurationUpdateAcknowledge;
+static int ett_ngap_AMFConfigurationUpdateFailure;
+static int ett_ngap_AMFStatusIndication;
+static int ett_ngap_NGReset;
+static int ett_ngap_NGResetAcknowledge;
+static int ett_ngap_ErrorIndication;
+static int ett_ngap_OverloadStart;
+static int ett_ngap_OverloadStop;
+static int ett_ngap_UplinkRANConfigurationTransfer;
+static int ett_ngap_DownlinkRANConfigurationTransfer;
+static int ett_ngap_WriteReplaceWarningRequest;
+static int ett_ngap_WriteReplaceWarningResponse;
+static int ett_ngap_PWSCancelRequest;
+static int ett_ngap_PWSCancelResponse;
+static int ett_ngap_PWSRestartIndication;
+static int ett_ngap_PWSFailureIndication;
+static int ett_ngap_DownlinkUEAssociatedNRPPaTransport;
+static int ett_ngap_UplinkUEAssociatedNRPPaTransport;
+static int ett_ngap_DownlinkNonUEAssociatedNRPPaTransport;
+static int ett_ngap_UplinkNonUEAssociatedNRPPaTransport;
+static int ett_ngap_TraceStart;
+static int ett_ngap_TraceFailureIndication;
+static int ett_ngap_DeactivateTrace;
+static int ett_ngap_CellTrafficTrace;
+static int ett_ngap_LocationReportingControl;
+static int ett_ngap_LocationReportingFailureIndication;
+static int ett_ngap_LocationReport;
+static int ett_ngap_UETNLABindingReleaseRequest;
+static int ett_ngap_UERadioCapabilityInfoIndication;
+static int ett_ngap_UERadioCapabilityCheckRequest;
+static int ett_ngap_UERadioCapabilityCheckResponse;
+static int ett_ngap_PrivateMessage;
+static int ett_ngap_SecondaryRATDataUsageReport;
+static int ett_ngap_UplinkRIMInformationTransfer;
+static int ett_ngap_DownlinkRIMInformationTransfer;
+static int ett_ngap_ConnectionEstablishmentIndication;
+static int ett_ngap_UERadioCapabilityIDMappingRequest;
+static int ett_ngap_UERadioCapabilityIDMappingResponse;
+static int ett_ngap_AMFCPRelocationIndication;
+static int ett_ngap_BroadcastSessionSetupRequest;
+static int ett_ngap_BroadcastSessionSetupResponse;
+static int ett_ngap_BroadcastSessionSetupFailure;
+static int ett_ngap_BroadcastSessionModificationRequest;
+static int ett_ngap_BroadcastSessionModificationResponse;
+static int ett_ngap_BroadcastSessionModificationFailure;
+static int ett_ngap_BroadcastSessionReleaseRequest;
+static int ett_ngap_BroadcastSessionReleaseRequired;
+static int ett_ngap_BroadcastSessionReleaseResponse;
+static int ett_ngap_DistributionSetupRequest;
+static int ett_ngap_DistributionSetupResponse;
+static int ett_ngap_DistributionSetupFailure;
+static int ett_ngap_DistributionReleaseRequest;
+static int ett_ngap_DistributionReleaseResponse;
+static int ett_ngap_MulticastSessionActivationRequest;
+static int ett_ngap_MulticastSessionActivationResponse;
+static int ett_ngap_MulticastSessionActivationFailure;
+static int ett_ngap_MulticastSessionDeactivationRequest;
+static int ett_ngap_MulticastSessionDeactivationResponse;
+static int ett_ngap_MulticastSessionUpdateRequest;
+static int ett_ngap_MulticastSessionUpdateResponse;
+static int ett_ngap_MulticastSessionUpdateFailure;
+static int ett_ngap_MulticastGroupPaging;
+static int ett_ngap_NGAP_PDU;
+static int ett_ngap_InitiatingMessage;
+static int ett_ngap_SuccessfulOutcome;
+static int ett_ngap_UnsuccessfulOutcome;
static expert_field ei_ngap_number_pages_le15;
@@ -3276,8 +3280,8 @@ static const enum_val_t ngap_lte_container_vals[] = {
};
/* Global variables */
-static range_t *gbl_ngapSctpRange = NULL;
-static gboolean ngap_dissect_container = TRUE;
+static range_t *gbl_ngapSctpRange;
+static bool ngap_dissect_container = true;
static gint ngap_dissect_target_ng_ran_container_as = NGAP_NG_RAN_CONTAINER_AUTOMATIC;
static gint ngap_dissect_lte_container_as = NGAP_LTE_CONTAINER_AUTOMATIC;
@@ -3291,7 +3295,7 @@ static dissector_table_t ngap_proc_sout_dissector_table;
static dissector_table_t ngap_proc_uout_dissector_table;
static dissector_table_t ngap_n2_ie_type_dissector_table;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static void set_message_label(asn1_ctx_t *actx, int type)
{
@@ -4697,7 +4701,7 @@ dissect_ngap_AlternativeQoSParaSetNotifyIndex(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ngap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+ 0U, UINT64_C(4000000000000), NULL, TRUE);
return offset;
}
@@ -5279,7 +5283,7 @@ dissect_ngap_AMF_TNLAssociationToUpdateList(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_ngap_AMF_UE_NGAP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(1099511627775), NULL, FALSE);
+ 0U, UINT64_C(1099511627775), NULL, FALSE);
return offset;
}
@@ -9502,11 +9506,20 @@ dissect_ngap_T_primaryRATRestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
&hf_ngap_primaryRATRestriction_nR_MEO,
&hf_ngap_primaryRATRestriction_nR_GEO,
&hf_ngap_primaryRATRestriction_nR_OTHERSAT,
+ &hf_ngap_primaryRATRestriction_e_UTRA_LEO,
+ NULL
+ };
+ static int * const fields2[] = {
+ &hf_ngap_primaryRATRestriction_e_UTRA_MEO,
+ &hf_ngap_primaryRATRestriction_e_UTRA_GEO,
+ &hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT,
&hf_ngap_primaryRATRestriction_reserved,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ngap_primaryRATRestriction);
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ if (tvb_reported_length(parameter_tvb) >= 2)
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN);
}
@@ -17650,7 +17663,7 @@ dissect_ngap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_ngap_INTEGER_0_18446744073709551615(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(18446744073709551615), NULL, FALSE);
+ 0U, UINT64_C(18446744073709551615), NULL, FALSE);
return offset;
}
@@ -28010,9 +28023,25 @@ void proto_register_ngap(void) {
{ "nR-OTHERSAT", "ngap.primaryRATRestriction.nR_OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_LEO,
+ { "e-UTRA-LEO", "ngap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_MEO,
+ { "e-UTRA-MEO", "ngap.primaryRATRestriction.e_UTRA_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_GEO,
+ { "e-UTRA-GEO", "ngap.primaryRATRestriction.e_UTRA_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40,
+ NULL, HFILL }},
+ { &hf_ngap_primaryRATRestriction_e_UTRA_OTHERSAT,
+ { "e-UTRA-OTHERSAT", "ngap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20,
+ NULL, HFILL }},
{ &hf_ngap_primaryRATRestriction_reserved,
{ "reserved", "ngap.primaryRATRestriction.reserved",
- FT_UINT8, BASE_HEX, NULL, 0x01,
+ FT_UINT8, BASE_HEX, NULL, 0x1f,
NULL, HFILL }},
{ &hf_ngap_secondaryRATRestriction_e_UTRA,
{ "e-UTRA", "ngap.secondaryRATRestriction.e_UTRA",
diff --git a/epan/dissectors/packet-nhrp.c b/epan/dissectors/packet-nhrp.c
index 8223d6a63c..7c5110488c 100644
--- a/epan/dissectors/packet-nhrp.c
+++ b/epan/dissectors/packet-nhrp.c
@@ -148,7 +148,7 @@ static expert_field ei_nhrp_ext_not_allowed;
static expert_field ei_nhrp_ext_malformed;
static expert_field ei_nhrp_ext_extra;
-static gboolean pref_auth_ext_has_addr = TRUE;
+static bool pref_auth_ext_has_addr = true;
/* NHRP Packet Types */
#define NHRP_RESOLUTION_REQ 1
diff --git a/epan/dissectors/packet-nist-csor.c b/epan/dissectors/packet-nist-csor.c
index 9d02eb9c34..3c17ef5249 100644
--- a/epan/dissectors/packet-nist-csor.c
+++ b/epan/dissectors/packet-nist-csor.c
@@ -39,7 +39,7 @@ static int hf_nist_csor_aes_IV; /* AES_IV */
static int hf_nist_csor_numberOfBits; /* NumberOfBits */
/* Initialize the subtree pointers */
-static gint ett_nist_csor_CFBParameters;
+static int ett_nist_csor_CFBParameters;
int
diff --git a/epan/dissectors/packet-nlm.c b/epan/dissectors/packet-nlm.c
index 43b4197ae2..def211879c 100644
--- a/epan/dissectors/packet-nlm.c
+++ b/epan/dissectors/packet-nlm.c
@@ -79,9 +79,9 @@ static gint ett_nlm_lock;
* stuff to match MSG and RES packets for async NLM
*/
-static gboolean nlm_match_msgres = FALSE;
-static wmem_map_t *nlm_msg_res_unmatched = NULL;
-static wmem_map_t *nlm_msg_res_matched = NULL;
+static bool nlm_match_msgres;
+static wmem_map_t *nlm_msg_res_unmatched;
+static wmem_map_t *nlm_msg_res_matched;
/* XXX when matching the packets we should really check the conversation (only address
NOT ports) and command type as well. I am lazy and thinks the cookie itself is
@@ -131,7 +131,7 @@ nlm_msg_res_unmatched_equal(gconstpointer k1, gconstpointer k2)
return 0;
}
- return( memcmp(umd1->cookie, umd2->cookie, umd1->cookie_len) == 0);
+ return (memcmp(umd1->cookie, umd2->cookie, umd1->cookie_len) == 0);
}
static gint
nlm_msg_res_matched_equal(gconstpointer k1, gconstpointer k2)
@@ -139,7 +139,7 @@ nlm_msg_res_matched_equal(gconstpointer k1, gconstpointer k2)
guint mk1 = GPOINTER_TO_UINT(k1);
guint mk2 = GPOINTER_TO_UINT(k2);
- return( mk1==mk2 );
+ return mk1==mk2;
}
static void
diff --git a/epan/dissectors/packet-nmea0183.c b/epan/dissectors/packet-nmea0183.c
index b08efd67ae..eae71ea6ef 100644
--- a/epan/dissectors/packet-nmea0183.c
+++ b/epan/dissectors/packet-nmea0183.c
@@ -19,15 +19,61 @@ static int hf_nmea0183_unknown_field;
static int hf_nmea0183_checksum;
static int hf_nmea0183_checksum_calculated;
+static int hf_nmea0183_dpt_depth;
+static int hf_nmea0183_dpt_offset;
+static int hf_nmea0183_dpt_max_range;
+
+static int hf_nmea0183_gga_time;
+static int hf_nmea0183_gga_time_hour;
+static int hf_nmea0183_gga_time_minute;
+static int hf_nmea0183_gga_time_second;
+static int hf_nmea0183_gga_latitude;
+static int hf_nmea0183_gga_latitude_degree;
+static int hf_nmea0183_gga_latitude_minute;
+static int hf_nmea0183_gga_latitude_direction;
+static int hf_nmea0183_gga_longitude;
+static int hf_nmea0183_gga_longitude_degree;
+static int hf_nmea0183_gga_longitude_minute;
+static int hf_nmea0183_gga_longitude_direction;
+static int hf_nmea0183_gga_quality;
+static int hf_nmea0183_gga_number_satellites;
+static int hf_nmea0183_gga_horizontal_dilution;
+static int hf_nmea0183_gga_altitude;
+static int hf_nmea0183_gga_altitude_unit;
+static int hf_nmea0183_gga_geoidal_separation;
+static int hf_nmea0183_gga_geoidal_separation_unit;
+static int hf_nmea0183_gga_age_dgps;
+static int hf_nmea0183_gga_dgps_station;
+
+static int hf_nmea0183_zda_time;
+static int hf_nmea0183_zda_time_hour;
+static int hf_nmea0183_zda_time_minute;
+static int hf_nmea0183_zda_time_second;
+static int hf_nmea0183_zda_date_day;
+static int hf_nmea0183_zda_date_month;
+static int hf_nmea0183_zda_date_year;
+static int hf_nmea0183_zda_local_zone_hour;
+static int hf_nmea0183_zda_local_zone_minute;
+
static int ett_nmea0183;
static int ett_nmea0183_checksum;
static int ett_nmea0183_sentence;
+static int ett_nmea0183_zda_time;
+static int ett_nmea0183_gga_time;
+static int ett_nmea0183_gga_latitude;
+static int ett_nmea0183_gga_longitude;
static expert_field ei_nmea0183_invalid_first_character;
static expert_field ei_nmea0183_missing_checksum_character;
static expert_field ei_nmea0183_invalid_end_of_line;
static expert_field ei_nmea0183_checksum_incorrect;
static expert_field ei_nmea0183_sentence_too_long;
+static expert_field ei_nmea0183_field_time_too_short;
+static expert_field ei_nmea0183_field_latitude_too_short;
+static expert_field ei_nmea0183_field_longitude_too_short;
+static expert_field ei_nmea0183_field_missing;
+static expert_field ei_nmea0183_gga_altitude_unit_incorrect;
+static expert_field ei_nmea0183_gga_geoidal_separation_unit_incorrect;
static int proto_nmea0183;
@@ -305,6 +351,19 @@ static const string_string known_sentence_ids[] = {
{"ZZU", "Time, UTC"},
{NULL, NULL}};
+// List of GPS Quality Indicator (Source: NMEA Revealed by Eric S. Raymond, https://gpsd.gitlab.io/gpsd/NMEA.html, retrieved 2023-01-26)
+static const string_string known_gps_quality_indicators[] = {
+ {"0", "Fix not available"},
+ {"1", "GPS fix"},
+ {"2", "Differential GPS fix"},
+ {"3", "PPS fix"},
+ {"4", "Real Time Kinematic"},
+ {"5", "Float Real Time Kinematic"},
+ {"6", "Estimated (dead reckoning)"},
+ {"7", "Manual input mode"},
+ {"8", "Simulation mode"},
+ {NULL, NULL}};
+
static uint8_t calculate_checksum(tvbuff_t *tvb, const gint start, const gint length)
{
uint8_t checksum = 0;
@@ -317,10 +376,18 @@ static uint8_t calculate_checksum(tvbuff_t *tvb, const gint start, const gint le
/* Find first occurrence of a field separator in tvbuff, starting at offset. Searches
* to end of tvbuff.
- * Returns the offset of the found separator, or offset of end of tvbuff if not found. */
+ * Returns the offset of the found separator.
+ * If separator is not found, return the offset of end of tvbuff.
+ * If offset is out of bounds, return the offset of end of tvbuff.
+ **/
static gint
tvb_find_end_of_nmea0183_field(tvbuff_t *tvb, const gint offset)
{
+ if (tvb_captured_length_remaining(tvb, offset) == 0)
+ {
+ return tvb_captured_length(tvb);
+ }
+
gint end_of_field_offset = tvb_find_guint8(tvb, offset, -1, ',');
if (end_of_field_offset == -1)
{
@@ -329,9 +396,373 @@ tvb_find_end_of_nmea0183_field(tvbuff_t *tvb, const gint offset)
return end_of_field_offset;
}
+/* Add a zero length item which indicates an expected but missing field */
+static proto_item *
+proto_tree_add_missing_field(proto_tree *tree, packet_info *pinfo, int hf, tvbuff_t *tvb,
+ const gint offset)
+{
+ proto_item *ti = NULL;
+ ti = proto_tree_add_item(tree, hf, tvb, offset, 0, ENC_ASCII);
+ proto_item_append_text(ti, "[missing]");
+ expert_add_info(pinfo, ti, &ei_nmea0183_field_missing);
+ return ti;
+}
+
+/* Dissect a time field. The field is split into a tree with hour, minute and second elements.
+ * Returns length including separator
+ **/
+static int
+dissect_nmea0183_field_time(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset,
+ int hf_time, int hf_hour, int hf_minute, int hf_second, int ett_time)
+{
+ if (offset > (gint)tvb_captured_length(tvb))
+ {
+ proto_tree_add_missing_field(tree, pinfo, hf_time, tvb, tvb_captured_length(tvb));
+ return 0;
+ }
+
+ proto_item *ti = NULL;
+ gint end_of_field_offset = tvb_find_end_of_nmea0183_field(tvb, offset);
+ ti = proto_tree_add_item(tree, hf_time, tvb, offset, end_of_field_offset - offset, ENC_ASCII);
+ if (end_of_field_offset - offset == 0)
+ {
+ proto_item_append_text(ti, ": [empty]");
+ }
+ else if (end_of_field_offset - offset >= 6)
+ {
+ const guint8 *hour = NULL;
+ const guint8 *minute = NULL;
+ const guint8 *second = NULL;
+ proto_tree *time_subtree = proto_item_add_subtree(ti, ett_time);
+
+ proto_tree_add_item_ret_string(time_subtree, hf_hour,
+ tvb, offset, 2, ENC_ASCII,
+ pinfo->pool, &hour);
+
+ proto_tree_add_item_ret_string(time_subtree, hf_minute,
+ tvb, offset + 2, 2, ENC_ASCII,
+ pinfo->pool, &minute);
+
+ proto_tree_add_item_ret_string(time_subtree, hf_second,
+ tvb, offset + 4, end_of_field_offset - offset - 4,
+ ENC_ASCII, pinfo->pool, &second);
+
+ proto_item_append_text(ti, ": %s:%s:%s", hour, minute, second);
+ }
+ else
+ {
+ expert_add_info(pinfo, ti, &ei_nmea0183_field_time_too_short);
+ }
+ return end_of_field_offset - offset + 1;
+}
+
+/* Dissect a single field containing a dimensionless value. Returns length including separator */
+static int
+dissect_nmea0183_field(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, int hf, const char *suffix)
+{
+ if (offset > (gint)tvb_captured_length(tvb))
+ {
+ proto_tree_add_missing_field(tree, pinfo, hf, tvb, tvb_captured_length(tvb));
+ return 0;
+ }
+
+ proto_item *ti = NULL;
+ gint end_of_field_offset = tvb_find_end_of_nmea0183_field(tvb, offset);
+ ti = proto_tree_add_item(tree, hf, tvb, offset, end_of_field_offset - offset, ENC_ASCII);
+ if (end_of_field_offset - offset == 0)
+ {
+ proto_item_append_text(ti, "[empty]");
+ }
+ else if (suffix != NULL)
+ {
+ proto_item_append_text(ti, " %s", suffix);
+ }
+ return end_of_field_offset - offset + 1;
+}
+
+/* Dissect a latitude/longitude direction field.
+ * Returns length including separator
+ **/
+static int
+dissect_nmea0183_field_latlong_direction(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ gint offset, int hf,
+ wmem_allocator_t *scope, const guint8 **retval)
+{
+ if (offset > (gint)tvb_captured_length(tvb))
+ {
+ proto_tree_add_missing_field(tree, pinfo, hf, tvb, tvb_captured_length(tvb));
+ return 0;
+ }
+
+ gint end_of_field_offset = tvb_find_end_of_nmea0183_field(tvb, offset);
+ proto_item *ti = proto_tree_add_item_ret_string(tree, hf,
+ tvb, offset, end_of_field_offset - offset, ENC_ASCII,
+ scope, retval);
+ if (end_of_field_offset - offset == 0)
+ {
+ if (retval == NULL)
+ {
+ proto_item_append_text(ti, "[empty]");
+ }
+ else
+ {
+ proto_item_append_text(ti, "[missing]");
+ expert_add_info(pinfo, ti, &ei_nmea0183_field_missing);
+ }
+ }
+ return end_of_field_offset - offset + 1;
+}
+
+/* Dissect a latitude field + direction field. The fields are split into a tree with degree, minute and direction elements.
+ * Returns length including separator
+ **/
+static int
+dissect_nmea0183_field_latitude(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset,
+ int hf_latitude, int hf_degree, int hf_minute, int hf_direction, int ett_latitude)
+{
+ if (offset > (gint)tvb_captured_length(tvb))
+ {
+ proto_tree_add_missing_field(tree, pinfo, hf_latitude, tvb, tvb_captured_length(tvb));
+ return 0;
+ }
+
+ proto_item *ti = NULL;
+ gint end_of_field_offset = tvb_find_end_of_nmea0183_field(tvb, offset);
+ ti = proto_tree_add_item(tree, hf_latitude, tvb, offset, end_of_field_offset - offset, ENC_ASCII);
+ if (end_of_field_offset - offset == 0)
+ {
+ proto_item_append_text(ti, "[empty]");
+
+ end_of_field_offset += dissect_nmea0183_field_latlong_direction(tvb, pinfo, tree, end_of_field_offset + 1, hf_direction, NULL, NULL);
+ }
+ else if (end_of_field_offset - offset >= 4)
+ {
+ const guint8 *degree = NULL;
+ const guint8 *minute = NULL;
+ const guint8 *direction = NULL;
+ proto_tree *latitude_subtree = proto_item_add_subtree(ti, ett_latitude);
+
+ proto_tree_add_item_ret_string(latitude_subtree, hf_degree,
+ tvb, offset, 2,
+ ENC_ASCII, pinfo->pool, &degree);
+
+ proto_tree_add_item_ret_string(latitude_subtree, hf_minute,
+ tvb, offset + 2, end_of_field_offset - offset - 2,
+ ENC_ASCII, pinfo->pool, &minute);
+
+ end_of_field_offset += dissect_nmea0183_field_latlong_direction(tvb, pinfo, latitude_subtree, end_of_field_offset + 1, hf_direction, pinfo->pool, &direction);
+
+ proto_item_append_text(ti, ": %s° %s' %s", degree, minute, direction);
+ }
+ else
+ {
+ expert_add_info(pinfo, ti, &ei_nmea0183_field_latitude_too_short);
+
+ end_of_field_offset += dissect_nmea0183_field_latlong_direction(tvb, pinfo, tree, end_of_field_offset + 1, hf_direction, NULL, NULL);
+ }
+ return end_of_field_offset - offset + 1;
+}
+
+/* Dissect a longitude field + direction field. The fields are split into a tree with degree, minute and direction elements.
+ * Returns length including separator
+ **/
+static int
+dissect_nmea0183_field_longitude(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset,
+ int hf_longitude, int hf_degree, int hf_minute, int hf_direction, int ett_latitude)
+{
+ if (offset > (gint)tvb_captured_length(tvb))
+ {
+ proto_tree_add_missing_field(tree, pinfo, hf_longitude, tvb, tvb_captured_length(tvb));
+ return 0;
+ }
+
+ proto_item *ti = NULL;
+ gint end_of_field_offset = tvb_find_end_of_nmea0183_field(tvb, offset);
+ ti = proto_tree_add_item(tree, hf_longitude, tvb, offset, end_of_field_offset - offset, ENC_ASCII);
+ if (end_of_field_offset - offset == 0)
+ {
+ proto_item_append_text(ti, "[empty]");
+
+ end_of_field_offset += dissect_nmea0183_field_latlong_direction(tvb, pinfo, tree, end_of_field_offset + 1, hf_direction, NULL, NULL);
+ }
+ else if (end_of_field_offset - offset >= 5)
+ {
+ const guint8 *degree = NULL;
+ const guint8 *minute = NULL;
+ const guint8 *direction = NULL;
+ proto_tree *longitude_subtree = proto_item_add_subtree(ti, ett_latitude);
+
+ proto_tree_add_item_ret_string(longitude_subtree, hf_degree,
+ tvb, offset, 3,
+ ENC_ASCII, pinfo->pool, &degree);
+
+ proto_tree_add_item_ret_string(longitude_subtree, hf_minute,
+ tvb, offset + 3, end_of_field_offset - offset - 3,
+ ENC_ASCII, pinfo->pool, &minute);
+
+ end_of_field_offset += dissect_nmea0183_field_latlong_direction(tvb, pinfo, longitude_subtree, end_of_field_offset + 1, hf_direction, pinfo->pool, &direction);
+
+ proto_item_append_text(ti, ": %s° %s' %s", degree, minute, direction);
+ }
+ else
+ {
+ expert_add_info(pinfo, ti, &ei_nmea0183_field_longitude_too_short);
+
+ end_of_field_offset += dissect_nmea0183_field_latlong_direction(tvb, pinfo, tree, end_of_field_offset + 1, hf_direction, NULL, NULL);
+ }
+ return end_of_field_offset - offset + 1;
+}
+
+/* Dissect a required gps quality field. Returns length including separator */
+static int
+dissect_nmea0183_field_gps_quality(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, int hf)
+{
+ if (offset > (gint)tvb_captured_length(tvb))
+ {
+ proto_tree_add_missing_field(tree, pinfo, hf, tvb, tvb_captured_length(tvb));
+ return 0;
+ }
+
+ proto_item *ti = NULL;
+ gint end_of_field_offset = tvb_find_end_of_nmea0183_field(tvb, offset);
+ const guint8 *quality = NULL;
+ ti = proto_tree_add_item_ret_string(tree, hf,
+ tvb, offset, end_of_field_offset - offset, ENC_ASCII,
+ pinfo->pool, &quality);
+ if (end_of_field_offset - offset == 0)
+ {
+ proto_item_append_text(ti, "[missing]");
+ expert_add_info(pinfo, ti, &ei_nmea0183_field_missing);
+ }
+ else
+ {
+ proto_item_append_text(ti, " (%s)", str_to_str(quality, known_gps_quality_indicators, "Unknown quality"));
+ }
+ return end_of_field_offset - offset + 1;
+}
+
+/* Dissect a single field containing a fixed text.
+ The text of the field must match the `expected_text` or expert info `invalid_ei` is
+ added to the field. An empty field is allowed. Returns length including separator */
+static int
+dissect_nmea0183_field_fixed_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset, int hf,
+ const guint8 *expected_text, expert_field *invalid_ei)
+{
+ if (offset > (gint)tvb_captured_length(tvb))
+ {
+ proto_tree_add_missing_field(tree, pinfo, hf, tvb, tvb_captured_length(tvb));
+ return 0;
+ }
+
+ proto_item *ti = NULL;
+ const guint8 *text = NULL;
+ gint end_of_field_offset = tvb_find_end_of_nmea0183_field(tvb, offset);
+ ti = proto_tree_add_item_ret_string(tree, hf,
+ tvb, offset, end_of_field_offset - offset, ENC_ASCII,
+ pinfo->pool, &text);
+ if (end_of_field_offset - offset == 0)
+ {
+ proto_item_append_text(ti, "[empty]");
+ }
+ else if (g_ascii_strcasecmp(text, expected_text) != 0)
+ {
+ expert_add_info(pinfo, ti, invalid_ei);
+ }
+ return end_of_field_offset - offset + 1;
+}
+
+/* Dissect a DPT sentence. */
+static int
+dissect_nmea0183_sentence_dpt(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
+{
+ gint offset = 0;
+
+ proto_tree *subtree = proto_tree_add_subtree(tree, tvb, offset,
+ tvb_captured_length(tvb), ett_nmea0183_sentence, NULL, "DPT sentence - Depth of Water");
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_dpt_depth, "meter");
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_dpt_offset, "meter");
+
+ dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_dpt_max_range, "meter");
+
+ return tvb_captured_length(tvb);
+}
+
+/* Dissect a GGA sentence. The time, latitude and longitude fields is split into individual parts. */
+static int
+dissect_nmea0183_sentence_gga(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
+{
+ gint offset = 0;
+
+ proto_tree *subtree = proto_tree_add_subtree(tree, tvb, offset,
+ tvb_captured_length(tvb), ett_nmea0183_sentence,
+ NULL, "GGA sentence - Global Positioning System Fix");
+
+ offset += dissect_nmea0183_field_time(tvb, pinfo, subtree, offset, hf_nmea0183_gga_time,
+ hf_nmea0183_gga_time_hour, hf_nmea0183_gga_time_minute,
+ hf_nmea0183_gga_time_second, ett_nmea0183_gga_time);
+
+ offset += dissect_nmea0183_field_latitude(tvb, pinfo, subtree, offset, hf_nmea0183_gga_latitude,
+ hf_nmea0183_gga_latitude_degree, hf_nmea0183_gga_latitude_minute,
+ hf_nmea0183_gga_latitude_direction, ett_nmea0183_gga_latitude);
+
+ offset += dissect_nmea0183_field_longitude(tvb, pinfo, subtree, offset, hf_nmea0183_gga_longitude,
+ hf_nmea0183_gga_longitude_degree, hf_nmea0183_gga_longitude_minute,
+ hf_nmea0183_gga_longitude_direction, ett_nmea0183_gga_longitude);
+
+ offset += dissect_nmea0183_field_gps_quality(tvb, pinfo, subtree, offset, hf_nmea0183_gga_quality);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_gga_number_satellites, NULL);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_gga_horizontal_dilution, "meter");
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_gga_altitude, "meter");
+
+ offset += dissect_nmea0183_field_fixed_text(tvb, pinfo, subtree, offset, hf_nmea0183_gga_altitude_unit,
+ "M", &ei_nmea0183_gga_altitude_unit_incorrect);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_gga_geoidal_separation, "meter");
+
+ offset += dissect_nmea0183_field_fixed_text(tvb, pinfo, subtree, offset, hf_nmea0183_gga_geoidal_separation_unit,
+ "M", &ei_nmea0183_gga_geoidal_separation_unit_incorrect);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_gga_age_dgps, "second");
+
+ dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_gga_dgps_station, NULL);
+
+ return tvb_captured_length(tvb);
+}
+
+/* Dissect a ZDA (Time & Date) sentence. The time field is split into individual parts. */
+static int
+dissect_nmea0183_sentence_zda(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
+{
+ gint offset = 0;
+ proto_tree *subtree = proto_tree_add_subtree(tree, tvb, offset,
+ tvb_captured_length(tvb), ett_nmea0183_sentence,
+ NULL, "ZDA sentence - Time & Date");
+
+ offset += dissect_nmea0183_field_time(tvb, pinfo, subtree, offset, hf_nmea0183_zda_time,
+ hf_nmea0183_zda_time_hour, hf_nmea0183_zda_time_minute,
+ hf_nmea0183_zda_time_second, ett_nmea0183_zda_time);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_zda_date_day, NULL);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_zda_date_month, NULL);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_zda_date_year, NULL);
+
+ offset += dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_zda_local_zone_hour, NULL);
+
+ dissect_nmea0183_field(tvb, pinfo, subtree, offset, hf_nmea0183_zda_local_zone_minute, NULL);
+
+ return tvb_captured_length(tvb);
+}
+
/* Dissect a sentence where the sentence id is unknown. Each field is shown as an generic field. */
static int
-dissect_nmea0183_sentence(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
+dissect_nmea0183_sentence_unknown(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
{
gint offset = 0;
@@ -410,7 +841,22 @@ dissect_nmea0183(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
/* Data */
offset += 1;
tvbuff_t *data_tvb = tvb_new_subset_length(tvb, offset, start_checksum_offset - offset);
- offset += dissect_nmea0183_sentence(data_tvb, pinfo, nmea0183_tree);
+ if (g_ascii_strcasecmp(sentence_id, "DPT") == 0)
+ {
+ offset += dissect_nmea0183_sentence_dpt(data_tvb, pinfo, nmea0183_tree);
+ }
+ else if (g_ascii_strcasecmp(sentence_id, "GGA") == 0)
+ {
+ offset += dissect_nmea0183_sentence_gga(data_tvb, pinfo, nmea0183_tree);
+ }
+ else if (g_ascii_strcasecmp(sentence_id, "ZDA") == 0)
+ {
+ offset += dissect_nmea0183_sentence_zda(data_tvb, pinfo, nmea0183_tree);
+ }
+ else
+ {
+ offset += dissect_nmea0183_sentence_unknown(data_tvb, pinfo, nmea0183_tree);
+ }
/* Checksum */
offset += 1;
@@ -430,6 +876,7 @@ dissect_nmea0183(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
expert_add_info(pinfo, ti, &ei_nmea0183_checksum_incorrect);
}
+ // Calculated checksum highlights 2 bytes, which is the ascii hex value of a 1 byte checksum
proto_item *checksum_tree = proto_item_add_subtree(ti, ett_nmea0183_checksum);
ti = proto_tree_add_uint(checksum_tree, hf_nmea0183_checksum_calculated,
tvb, offset, 2, calculated_checksum);
@@ -438,7 +885,9 @@ dissect_nmea0183(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
offset += 2;
/* End of line */
- if (tvb_get_guint8(tvb, offset) != '\r' || tvb_get_guint8(tvb, offset + 1) != '\n')
+ if (tvb_captured_length_remaining(tvb, offset) < 2 ||
+ tvb_get_guint8(tvb, offset) != '\r' ||
+ tvb_get_guint8(tvb, offset + 1) != '\n')
{
expert_add_info(pinfo, nmea0183_tree, &ei_nmea0183_invalid_end_of_line);
}
@@ -482,13 +931,182 @@ void proto_register_nmea0183(void)
{"Calculated checksum", "nmea0183.checksum_calculated",
FT_UINT8, BASE_HEX,
NULL, 0x0,
- "NMEA 0183 Calculated checksum", HFILL}}};
+ "NMEA 0183 Calculated checksum", HFILL}},
+ {&hf_nmea0183_dpt_depth,
+ {"Water depth", "nmea0183.dpt_depth",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 DPT Water depth relative to transducer", HFILL}},
+ {&hf_nmea0183_dpt_offset,
+ {"Offset", "nmea0183.dpt_offset",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 DPT Offset from transducer, positive means distance from transducer to water line, negative means distance from transducer to keel", HFILL}},
+ {&hf_nmea0183_dpt_max_range,
+ {"Maximum range", "nmea0183.dpt_max_range",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 DPT Maximum range scale in use (NMEA 3.0 and above)", HFILL}},
+ {&hf_nmea0183_gga_time,
+ {"UTC Time of position", "nmea0183.gga_time",
+ FT_NONE, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA UTC Time field", HFILL}},
+ {&hf_nmea0183_gga_time_hour,
+ {"Hour", "nmea0183.gga_time_hour",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA UTC hour", HFILL}},
+ {&hf_nmea0183_gga_time_minute,
+ {"Minute", "nmea0183.gga_time_minute",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA UTC minute", HFILL}},
+ {&hf_nmea0183_gga_time_second,
+ {"Second", "nmea0183.gga_time_second",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA UTC second", HFILL}},
+ {&hf_nmea0183_gga_latitude,
+ {"Latitude", "nmea0183.gga_latitude",
+ FT_NONE, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Latitude field", HFILL}},
+ {&hf_nmea0183_gga_latitude_degree,
+ {"Degree", "nmea0183.gga_latitude_degree",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Latitude Degree", HFILL}},
+ {&hf_nmea0183_gga_latitude_minute,
+ {"Minute", "nmea0183.gga_latitude_minute",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Latitude Minute", HFILL}},
+ {&hf_nmea0183_gga_latitude_direction,
+ {"Direction", "nmea0183.gga_latitude_direction",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Latitude Direction", HFILL}},
+ {&hf_nmea0183_gga_longitude,
+ {"Longitude", "nmea0183.gga_longitude",
+ FT_NONE, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Longitude field", HFILL}},
+ {&hf_nmea0183_gga_longitude_degree,
+ {"Degree", "nmea0183.gga_longitude_degree",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Longitude Degree", HFILL}},
+ {&hf_nmea0183_gga_longitude_minute,
+ {"Minute", "nmea0183.gga_longitude_minute",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Longitude Minute", HFILL}},
+ {&hf_nmea0183_gga_longitude_direction,
+ {"Direction", "nmea0183.gga_longitude_direction",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Longitude Direction", HFILL}},
+ {&hf_nmea0183_gga_quality,
+ {"Quality indicator", "nmea0183.gga_quality",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Quality indicator", HFILL}},
+ {&hf_nmea0183_gga_number_satellites,
+ {"Number of satellites", "nmea0183.gga_number_satellites",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Number of satellites in use", HFILL}},
+ {&hf_nmea0183_gga_horizontal_dilution,
+ {"Horizontal Dilution", "nmea0183.gga_horizontal_dilution",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Horizontal Dilution of precision", HFILL}},
+ {&hf_nmea0183_gga_altitude,
+ {"Altitude", "nmea0183.gga_altitude",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Antenna Altitude above mean-sea-level", HFILL}},
+ {&hf_nmea0183_gga_altitude_unit,
+ {"Altitude unit", "nmea0183.gga_altitude_unit",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Units of antenna altitude", HFILL}},
+ {&hf_nmea0183_gga_geoidal_separation,
+ {"Geoidal separation", "nmea0183.gga_geoidal_separation",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Geoidal separation, the difference between the WGS-84 earth ellipsoid and mean-sea-level", HFILL}},
+ {&hf_nmea0183_gga_geoidal_separation_unit,
+ {"Geoidal separation unit", "nmea0183.gga_geoidal_separation_unit",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Units of geoidal separation, meters", HFILL}},
+ {&hf_nmea0183_gga_age_dgps,
+ {"Age of differential GPS", "nmea0183.gga_age_dgps",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Age of differential GPS data in seconds", HFILL}},
+ {&hf_nmea0183_gga_dgps_station,
+ {"Differential GPS station id", "nmea0183.gga_dgps_station",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 GGA Differential reference station ID", HFILL}},
+ {&hf_nmea0183_zda_time,
+ {"UTC Time", "nmea0183.zda_time",
+ FT_NONE, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA UTC Time field", HFILL}},
+ {&hf_nmea0183_zda_time_hour,
+ {"Hour", "nmea0183.zda_time_hour",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA UTC hour", HFILL}},
+ {&hf_nmea0183_zda_time_minute,
+ {"Minute", "nmea0183.zda_time_minute",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA UTC minute", HFILL}},
+ {&hf_nmea0183_zda_time_second,
+ {"Second", "nmea0183.zda_time_second",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA UTC second", HFILL}},
+ {&hf_nmea0183_zda_date_day,
+ {"Day", "nmea0183.zda_date_day",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA Day field", HFILL}},
+ {&hf_nmea0183_zda_date_month,
+ {"Month", "nmea0183.zda_date_month",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA Month field", HFILL}},
+ {&hf_nmea0183_zda_date_year,
+ {"Year", "nmea0183.zda_date_year",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA Year field", HFILL}},
+ {&hf_nmea0183_zda_local_zone_hour,
+ {"Local zone hour", "nmea0183.zda_local_zone_hour",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA Local zone hour field", HFILL}},
+ {&hf_nmea0183_zda_local_zone_minute,
+ {"Local zone minute", "nmea0183.zda_local_zone_minute",
+ FT_STRING, BASE_NONE,
+ NULL, 0x0,
+ "NMEA 0183 ZDA Local zone minute field", HFILL}}};
/* Setup protocol subtree array */
static int *ett[] = {
&ett_nmea0183,
&ett_nmea0183_checksum,
- &ett_nmea0183_sentence};
+ &ett_nmea0183_sentence,
+ &ett_nmea0183_zda_time,
+ &ett_nmea0183_gga_time,
+ &ett_nmea0183_gga_latitude,
+ &ett_nmea0183_gga_longitude};
static ei_register_info ei[] = {
{&ei_nmea0183_invalid_first_character,
@@ -505,7 +1123,25 @@ void proto_register_nmea0183(void)
"Incorrect checksum", EXPFILL}},
{&ei_nmea0183_sentence_too_long,
{"nmea0183.sentence_too_long", PI_PROTOCOL, PI_WARN,
- "Sentence is too long. Maximum is 82 bytes including $ and <CR><LF>", EXPFILL}}};
+ "Sentence is too long. Maximum is 82 bytes including $ and <CR><LF>", EXPFILL}},
+ {&ei_nmea0183_field_time_too_short,
+ {"nmea0183.field_time_too_short", PI_PROTOCOL, PI_WARN,
+ "Field containing time is too short. Field should be at least 6 characters", EXPFILL}},
+ {&ei_nmea0183_field_latitude_too_short,
+ {"nmea0183.field_latitude_too_short", PI_PROTOCOL, PI_WARN,
+ "Field containing latitude is too short. Field should be at least 4 characters", EXPFILL}},
+ {&ei_nmea0183_field_longitude_too_short,
+ {"nmea0183.field_longitude_too_short", PI_PROTOCOL, PI_WARN,
+ "Field containing longitude is too short. Field should be at least 5 characters", EXPFILL}},
+ {&ei_nmea0183_field_missing,
+ {"nmea0183.field_missing", PI_PROTOCOL, PI_WARN,
+ "Field expected, but not found", EXPFILL}},
+ {&ei_nmea0183_gga_altitude_unit_incorrect,
+ {"nmea0183.gga_altitude_unit_incorrect", PI_PROTOCOL, PI_WARN,
+ "Incorrect altitude unit (should be 'M')", EXPFILL}},
+ {&ei_nmea0183_gga_geoidal_separation_unit_incorrect,
+ {"nmea0183.gga_geoidal_separation_unit_incorrect", PI_PROTOCOL, PI_WARN,
+ "Incorrect geoidal separation unit (should be 'M')", EXPFILL}}};
proto_nmea0183 = proto_register_protocol(
"NMEA 0183 protocol", /* name */
diff --git a/epan/dissectors/packet-noe.c b/epan/dissectors/packet-noe.c
index 363d0f7982..ab38972402 100644
--- a/epan/dissectors/packet-noe.c
+++ b/epan/dissectors/packet-noe.c
@@ -609,7 +609,7 @@ static guint utf8_properties[] = {
((OPCODE_C_ime_context << 8) | OPCODE_P_A_name )
};
-#define N_UTF8_PROPERTIES (sizeof utf8_properties / sizeof utf8_properties[0])
+#define N_UTF8_PROPERTIES array_length(utf8_properties)
#define UTF8_PROPERTY_SIZE (sizeof utf8_properties[0])
static guint bool_properties[] = {
@@ -676,7 +676,7 @@ static guint bool_properties[] = {
((OPCODE_C_ime_context << 8) | OPCODE_P_A_enable )
};
-#define N_BOOL_PROPERTIES (sizeof bool_properties / sizeof bool_properties[0])
+#define N_BOOL_PROPERTIES array_length(bool_properties)
#define BOOL_PROPERTY_SIZE (sizeof bool_properties[0])
/*-----------------------------------------------------------------------------
@@ -981,7 +981,7 @@ static guint64 decode_utf8(guint64 utf8)
This function translates an UNICODE to the name associated.
Need to have at least 48 bits value.
---------------------------------------------------------------------------*/
-static const char *decode_key_name(int unicode)
+static const char *decode_key_name(wmem_allocator_t *scope, int unicode)
{
const char *key_name;
@@ -997,7 +997,7 @@ static const char *decode_key_name(int unicode)
}
else if (unicode <= 0xFF)
{
- key_name = format_char(wmem_packet_scope(), unicode);
+ key_name = format_char(scope, unicode);
}
else
{
@@ -1252,7 +1252,7 @@ static void decode_evt(proto_tree *tree,
pt_length -= 1;
}
unicode_value = decode_utf8(utf8_value);
- key_name = decode_key_name((int)unicode_value);
+ key_name = decode_key_name(pinfo->pool, (int)unicode_value);
/* add text to the frame "INFO" column */
col_append_fstr(pinfo->cinfo, COL_INFO, ": \"%s\"", key_name);
@@ -1265,7 +1265,7 @@ static void decode_evt(proto_tree *tree,
length, key_name,
"%s (UTF-8 Value: \"%s\", Unicode Value: 0x%" PRIx64 ")",
key_name,
- tvb_bytes_to_str(wmem_packet_scope(), tvb, offset, length),
+ tvb_bytes_to_str(pinfo->pool, tvb, offset, length),
unicode_value);
break;
}
diff --git a/epan/dissectors/packet-nordic_ble.c b/epan/dissectors/packet-nordic_ble.c
index 1c0a9028c7..639f8eb00b 100644
--- a/epan/dissectors/packet-nordic_ble.c
+++ b/epan/dissectors/packet-nordic_ble.c
@@ -294,8 +294,8 @@ typedef struct {
} nordic_ble_context_t;
/* next dissector */
-static dissector_handle_t btle_dissector_handle = NULL;
-static dissector_handle_t debug_handle = NULL;
+static dissector_handle_t btle_dissector_handle;
+static dissector_handle_t debug_handle;
static gint
dissect_lengths(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, nordic_ble_context_t *nordic_ble_context)
diff --git a/epan/dissectors/packet-novell_pkis.c b/epan/dissectors/packet-novell_pkis.c
index b4c4b509b7..d22ecb1c8f 100644
--- a/epan/dissectors/packet-novell_pkis.c
+++ b/epan/dissectors/packet-novell_pkis.c
@@ -69,22 +69,22 @@ static int hf_novell_pkis_perCertificateLimit; /* MonetaryValue */
static int hf_novell_pkis_currency; /* Currency */
static int hf_novell_pkis_amount; /* INTEGER */
static int hf_novell_pkis_amtExp10; /* INTEGER */
-static gint ett_novell_pkis_SecurityAttributes;
-static gint ett_novell_pkis_GLBExtensions;
-static gint ett_novell_pkis_Quality;
-static gint ett_novell_pkis_CompusecQuality;
-static gint ett_novell_pkis_CompusecQualityPair;
-static gint ett_novell_pkis_CryptoQuality;
-static gint ett_novell_pkis_CryptoQualityPair;
-static gint ett_novell_pkis_CertificateClass;
-static gint ett_novell_pkis_EnterpriseId;
-static gint ett_novell_pkis_SEQUENCE_SIZE_1_1_OF_SecurityLabelType1;
-static gint ett_novell_pkis_SecurityLabelType1;
-static gint ett_novell_pkis_Singletons;
-static gint ett_novell_pkis_SingletonChoice;
-static gint ett_novell_pkis_SingletonRange;
-static gint ett_novell_pkis_RelianceLimits;
-static gint ett_novell_pkis_MonetaryValue;
+static int ett_novell_pkis_SecurityAttributes;
+static int ett_novell_pkis_GLBExtensions;
+static int ett_novell_pkis_Quality;
+static int ett_novell_pkis_CompusecQuality;
+static int ett_novell_pkis_CompusecQualityPair;
+static int ett_novell_pkis_CryptoQuality;
+static int ett_novell_pkis_CryptoQualityPair;
+static int ett_novell_pkis_CertificateClass;
+static int ett_novell_pkis_EnterpriseId;
+static int ett_novell_pkis_SEQUENCE_SIZE_1_1_OF_SecurityLabelType1;
+static int ett_novell_pkis_SecurityLabelType1;
+static int ett_novell_pkis_Singletons;
+static int ett_novell_pkis_SingletonChoice;
+static int ett_novell_pkis_SingletonRange;
+static int ett_novell_pkis_RelianceLimits;
+static int ett_novell_pkis_MonetaryValue;
static int
diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c
index bd53ce76ed..ebf92694d4 100644
--- a/epan/dissectors/packet-nr-rrc.c
+++ b/epan/dissectors/packet-nr-rrc.c
@@ -6,7 +6,7 @@
/* packet-nr-rrc-template.c
* NR;
* Radio Resource Control (RRC) protocol specification
- * (3GPP TS 38.331 V17.7.0 Release 17) packet dissection
+ * (3GPP TS 38.331 V17.8.0 Release 17) packet dissection
* Copyright 2018-2024, Pascal Quantin
*
* Wireshark - Network traffic analyzer
@@ -51,18 +51,18 @@
void proto_register_nr_rrc(void);
void proto_reg_handoff_nr_rrc(void);
-static dissector_handle_t nas_5gs_handle = NULL;
-static dissector_handle_t lte_rrc_conn_reconf_handle = NULL;
-static dissector_handle_t lte_rrc_conn_reconf_compl_handle = NULL;
-static dissector_handle_t lte_rrc_ul_dcch_handle = NULL;
-static dissector_handle_t lte_rrc_dl_dcch_handle = NULL;
+static dissector_handle_t nas_5gs_handle;
+static dissector_handle_t lte_rrc_conn_reconf_handle;
+static dissector_handle_t lte_rrc_conn_reconf_compl_handle;
+static dissector_handle_t lte_rrc_ul_dcch_handle;
+static dissector_handle_t lte_rrc_dl_dcch_handle;
-static wmem_map_t *nr_rrc_etws_cmas_dcs_hash = NULL;
+static wmem_map_t *nr_rrc_etws_cmas_dcs_hash;
static reassembly_table nr_rrc_sib7_reassembly_table;
static reassembly_table nr_rrc_sib8_reassembly_table;
-static gboolean nr_rrc_nas_in_root_tree;
+static bool nr_rrc_nas_in_root_tree;
extern int proto_mac_nr;
extern int proto_rlc_nr;
@@ -1582,7 +1582,7 @@ static int hf_nr_rrc_securityModeCommand_01; /* SecurityModeCommand_IEs */
static int hf_nr_rrc_criticalExtensionsFuture_36; /* T_criticalExtensionsFuture_36 */
static int hf_nr_rrc_securityConfigSMC; /* SecurityConfigSMC */
static int hf_nr_rrc_nonCriticalExtension_94; /* T_nonCriticalExtension_36 */
-static int hf_nr_rrc_securityAlgorithmConfig; /* SecurityAlgorithmConfig */
+static int hf_nr_rrc_securityAlgorithmConfig; /* T_securityAlgorithmConfig */
static int hf_nr_rrc_criticalExtensions_37; /* T_criticalExtensions_37 */
static int hf_nr_rrc_securityModeComplete_01; /* SecurityModeComplete_IEs */
static int hf_nr_rrc_criticalExtensionsFuture_37; /* T_criticalExtensionsFuture_37 */
@@ -3842,7 +3842,7 @@ static int hf_nr_rrc_choConfig_r17; /* SEQUENCE_SIZE_1_2_OF_CondTr
static int hf_nr_rrc_choConfig_r17_item; /* CondTriggerConfig_r16 */
static int hf_nr_rrc_triggeredEvent_r17; /* T_triggeredEvent_r17 */
static int hf_nr_rrc_timeBetweenEvents_r17; /* TimeBetweenEvent_r17 */
-static int hf_nr_rrc_firstTriggeredEvent; /* T_firstTriggeredEvent */
+static int hf_nr_rrc_firstTriggeredEvent_r17; /* T_firstTriggeredEvent_r17 */
static int hf_nr_rrc_MeasResultListEUTRA_item; /* MeasResultEUTRA */
static int hf_nr_rrc_eutra_PhysCellId_01; /* PhysCellId */
static int hf_nr_rrc_measResult_01; /* MeasQuantityResultsEUTRA */
@@ -5087,6 +5087,7 @@ static int hf_nr_rrc_reestablishPDCP_01; /* T_reestablishPDCP_01 */
static int hf_nr_rrc_recoverPDCP; /* T_recoverPDCP */
static int hf_nr_rrc_daps_Config_r16; /* T_daps_Config_r16 */
static int hf_nr_rrc_DRB_ToReleaseList_item; /* DRB_Identity */
+static int hf_nr_rrc_securityAlgorithmConfig_01; /* SecurityAlgorithmConfig */
static int hf_nr_rrc_keyToUse; /* T_keyToUse */
static int hf_nr_rrc_MRB_ToAddModList_r17_item; /* MRB_ToAddMod_r17 */
static int hf_nr_rrc_mbs_SessionId_r17; /* TMGI_r17 */
@@ -6155,6 +6156,7 @@ static int hf_nr_rrc_BandCombinationList_v1730_item; /* BandCombination_v1730 *
static int hf_nr_rrc_BandCombinationList_v1740_item; /* BandCombination_v1740 */
static int hf_nr_rrc_BandCombinationList_v1760_item; /* BandCombination_v1760 */
static int hf_nr_rrc_BandCombinationList_v1770_item; /* BandCombination_v1770 */
+static int hf_nr_rrc_BandCombinationList_v1780_item; /* BandCombination_v1780 */
static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_r16_item; /* BandCombination_UplinkTxSwitch_r16 */
static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1630_item; /* BandCombination_UplinkTxSwitch_v1630 */
static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1640_item; /* BandCombination_UplinkTxSwitch_v1640 */
@@ -6169,6 +6171,7 @@ static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1730_item; /* BandComb
static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1740_item; /* BandCombination_UplinkTxSwitch_v1740 */
static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1760_item; /* BandCombination_UplinkTxSwitch_v1760 */
static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770_item; /* BandCombination_UplinkTxSwitch_v1770 */
+static int hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780_item; /* BandCombination_UplinkTxSwitch_v1780 */
static int hf_nr_rrc_bandList; /* SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters */
static int hf_nr_rrc_bandList_item; /* BandParameters */
static int hf_nr_rrc_featureSetCombination; /* FeatureSetCombinationId */
@@ -6238,6 +6241,11 @@ static int hf_nr_rrc_bandList_v1770; /* SEQUENCE_SIZE_1_maxSimultan
static int hf_nr_rrc_bandList_v1770_item; /* BandParameters_v1770 */
static int hf_nr_rrc_mrdc_Parameters_v1770; /* MRDC_Parameters_v1770 */
static int hf_nr_rrc_ca_ParametersNR_v1770; /* CA_ParametersNR_v1770 */
+static int hf_nr_rrc_ca_ParametersNR_v1780; /* CA_ParametersNR_v1780 */
+static int hf_nr_rrc_ca_ParametersNRDC_v1780; /* CA_ParametersNRDC_v1780 */
+static int hf_nr_rrc_bandList_v1780; /* SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780 */
+static int hf_nr_rrc_bandList_v1780_item; /* BandParameters_v1780 */
+static int hf_nr_rrc_mrdc_Parameters_v1780; /* MRDC_Parameters_v1770 */
static int hf_nr_rrc_bandCombination_r16; /* BandCombination */
static int hf_nr_rrc_bandCombination_v1540; /* BandCombination_v1540 */
static int hf_nr_rrc_bandCombination_v1560; /* BandCombination_v1560 */
@@ -6268,6 +6276,7 @@ static int hf_nr_rrc_bandCombination_v1730; /* BandCombination_v1730 */
static int hf_nr_rrc_bandCombination_v1740; /* BandCombination_v1740 */
static int hf_nr_rrc_bandCombination_v1760; /* BandCombination_v1760 */
static int hf_nr_rrc_bandCombination_v1770; /* BandCombination_v1770 */
+static int hf_nr_rrc_bandCombination_v1780; /* BandCombination_v1780 */
static int hf_nr_rrc_bandIndexUL1_r16; /* INTEGER_1_maxSimultaneousBands */
static int hf_nr_rrc_bandIndexUL2_r16; /* INTEGER_1_maxSimultaneousBands */
static int hf_nr_rrc_uplinkTxSwitchingPeriod_r16; /* T_uplinkTxSwitchingPeriod_r16 */
@@ -6304,6 +6313,9 @@ static int hf_nr_rrc_srs_SwitchingAffectedBandsListNR_r17; /* SEQUENCE_SIZE_1_m
static int hf_nr_rrc_srs_SwitchingAffectedBandsListNR_r17_item; /* SRS_SwitchingAffectedBandsNR_r17 */
static int hf_nr_rrc_ca_BandwidthClassDL_NR_r17; /* CA_BandwidthClassNR_r17 */
static int hf_nr_rrc_ca_BandwidthClassUL_NR_r17; /* CA_BandwidthClassNR_r17 */
+static int hf_nr_rrc_supportedAggBW_FR2_r17; /* T_supportedAggBW_FR2_r17 */
+static int hf_nr_rrc_supportedAggBW_DL_r17; /* SupportedAggBandwidth_r17 */
+static int hf_nr_rrc_supportedAggBW_UL_r17; /* SupportedAggBandwidth_r17 */
static int hf_nr_rrc_BandCombinationListSidelinkEUTRA_NR_r16_item; /* BandCombinationParametersSidelinkEUTRA_NR_r16 */
static int hf_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1630_item; /* BandCombinationParametersSidelinkEUTRA_NR_v1630 */
static int hf_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1710_item; /* BandCombinationParametersSidelinkEUTRA_NR_v1710 */
@@ -6517,6 +6529,15 @@ static int hf_nr_rrc_nack_OnlyFeedbackForSPS_Multicast_r17; /* T_nack_OnlyFeedb
static int hf_nr_rrc_singlePUCCH_ConfigForMulticast_r17; /* T_singlePUCCH_ConfigForMulticast_r17 */
static int hf_nr_rrc_prioSCellPRACH_OverSP_PeriodicSRS_Support_r17; /* T_prioSCellPRACH_OverSP_PeriodicSRS_Support_r17 */
static int hf_nr_rrc_parallelTxPUCCH_PUSCH_SamePriority_r17; /* T_parallelTxPUCCH_PUSCH_SamePriority_r17 */
+static int hf_nr_rrc_parallelTxPUCCH_PUSCH_SamePriority_r17_01; /* T_parallelTxPUCCH_PUSCH_SamePriority_r17_01 */
+static int hf_nr_rrc_supportedAggBW_FR1_r17; /* T_supportedAggBW_FR1_r17 */
+static int hf_nr_rrc_scalingFactorSCS_r17; /* T_scalingFactorSCS_r17 */
+static int hf_nr_rrc_supportedAggBW_FDD_DL_r17; /* SupportedAggBandwidth_r17 */
+static int hf_nr_rrc_supportedAggBW_FDD_UL_r17; /* SupportedAggBandwidth_r17 */
+static int hf_nr_rrc_supportedAggBW_TDD_DL_r17; /* SupportedAggBandwidth_r17 */
+static int hf_nr_rrc_supportedAggBW_TDD_UL_r17; /* SupportedAggBandwidth_r17 */
+static int hf_nr_rrc_supportedAggBW_TotalDL_r17; /* SupportedAggBandwidth_r17 */
+static int hf_nr_rrc_supportedAggBW_TotalUL_r17; /* SupportedAggBandwidth_r17 */
static int hf_nr_rrc_supportedSCS_Combinations_r17; /* T_supportedSCS_Combinations_r17 */
static int hf_nr_rrc_scs15kHz_15kHz_r17_01; /* T_scs15kHz_15kHz_r17 */
static int hf_nr_rrc_scs15kHz_30kHz_r17_01; /* T_scs15kHz_30kHz_r17 */
@@ -6585,6 +6606,7 @@ static int hf_nr_rrc_ca_ParametersNR_ForDC_v1700; /* CA_ParametersNR_v1700 */
static int hf_nr_rrc_ca_ParametersNR_ForDC_v1720; /* CA_ParametersNR_v1720 */
static int hf_nr_rrc_ca_ParametersNR_ForDC_v1730; /* CA_ParametersNR_v1730 */
static int hf_nr_rrc_ca_ParametersNR_ForDC_v1760; /* CA_ParametersNR_v1760 */
+static int hf_nr_rrc_ca_ParametersNR_ForDC_v1780; /* CA_ParametersNR_v1780 */
static int hf_nr_rrc_fr1fdd_FR1TDD_CA_SpCellOnFR1FDD; /* T_fr1fdd_FR1TDD_CA_SpCellOnFR1FDD */
static int hf_nr_rrc_fr1fdd_FR1TDD_CA_SpCellOnFR1TDD; /* T_fr1fdd_FR1TDD_CA_SpCellOnFR1TDD */
static int hf_nr_rrc_fr1fdd_FR2TDD_CA_SpCellOnFR1FDD; /* T_fr1fdd_FR2TDD_CA_SpCellOnFR1FDD */
@@ -7006,6 +7028,7 @@ static int hf_nr_rrc_intraSlotTDM_UnicastGroupCommonPDSCH_r17; /* T_intraSlotTD
static int hf_nr_rrc_sps_MulticastSCell_r17; /* T_sps_MulticastSCell_r17 */
static int hf_nr_rrc_sps_MulticastSCellMultiConfig_r17; /* INTEGER_1_8 */
static int hf_nr_rrc_dci_BroadcastWith16Repetitions_r17; /* T_dci_BroadcastWith16Repetitions_r17 */
+static int hf_nr_rrc_supportedBandwidthDL_v1780; /* SupportedBandwidth_v1700 */
static int hf_nr_rrc_maxNumberCORESET_r16; /* T_maxNumberCORESET_r16 */
static int hf_nr_rrc_maxNumberCORESETPerPoolIndex_r16; /* INTEGER_1_3 */
static int hf_nr_rrc_maxNumberUnicastPDSCH_PerPool_r16; /* T_maxNumberUnicastPDSCH_PerPool_r16 */
@@ -7058,6 +7081,10 @@ static int hf_nr_rrc_featureSetsDownlink_v1730; /* SEQUENCE_SIZE_1_maxDownlink
static int hf_nr_rrc_featureSetsDownlink_v1730_item; /* FeatureSetDownlink_v1730 */
static int hf_nr_rrc_featureSetsDownlinkPerCC_v1730; /* SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1730 */
static int hf_nr_rrc_featureSetsDownlinkPerCC_v1730_item; /* FeatureSetDownlinkPerCC_v1730 */
+static int hf_nr_rrc_featureSetsDownlinkPerCC_v1780; /* SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780 */
+static int hf_nr_rrc_featureSetsDownlinkPerCC_v1780_item; /* FeatureSetDownlinkPerCC_v1780 */
+static int hf_nr_rrc_featureSetsUplinkPerCC_v1780; /* SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780 */
+static int hf_nr_rrc_featureSetsUplinkPerCC_v1780_item; /* FeatureSetUplinkPerCC_v1780 */
static int hf_nr_rrc_featureSetsUplink_v16d0; /* SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v16d0 */
static int hf_nr_rrc_featureSetsUplink_v16d0_item; /* FeatureSetUplink_v16d0 */
static int hf_nr_rrc_featureSetListPerUplinkCC; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetUplinkPerCC_Id */
@@ -7217,6 +7244,7 @@ static int hf_nr_rrc_supportedMinBandwidthUL_r17; /* SupportedBandwidth_v1700 *
static int hf_nr_rrc_mTRP_PUSCH_RepetitionTypeB_r17; /* T_mTRP_PUSCH_RepetitionTypeB_r17 */
static int hf_nr_rrc_mTRP_PUSCH_TypeB_CB_r17; /* T_mTRP_PUSCH_TypeB_CB_r17 */
static int hf_nr_rrc_supportedBandwidthUL_v1710; /* SupportedBandwidth_v1700 */
+static int hf_nr_rrc_supportedBandwidthUL_v1780; /* SupportedBandwidth_v1700 */
static int hf_nr_rrc_FreqBandList_item; /* FreqBandInformation */
static int hf_nr_rrc_bandInformationEUTRA; /* FreqBandInformationEUTRA */
static int hf_nr_rrc_bandInformationNR; /* FreqBandInformationNR */
@@ -8194,8 +8222,10 @@ static int hf_nr_rrc_supportedBandCombinationList_v1740; /* BandCombinationList
static int hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1740; /* BandCombinationList_UplinkTxSwitch_v1740 */
static int hf_nr_rrc_supportedBandCombinationList_v1760; /* BandCombinationList_v1760 */
static int hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1760; /* BandCombinationList_UplinkTxSwitch_v1760 */
-static int hf_nr_rrc_supportedBandCombinationList_v1770; /* BandCombinationList_v1770 */
-static int hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1770; /* BandCombinationList_UplinkTxSwitch_v1770 */
+static int hf_nr_rrc_dummy1_05; /* BandCombinationList_v1770 */
+static int hf_nr_rrc_dummy2_03; /* BandCombinationList_UplinkTxSwitch_v1770 */
+static int hf_nr_rrc_supportedBandCombinationList_v1780; /* BandCombinationList_v1780 */
+static int hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1780; /* BandCombinationList_UplinkTxSwitch_v1780 */
static int hf_nr_rrc_supportedBandCombinationList_v15g0; /* BandCombinationList_v15g0 */
static int hf_nr_rrc_supportedBandCombinationList_v16a0; /* BandCombinationList_v16a0 */
static int hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v16a0; /* BandCombinationList_UplinkTxSwitch_v16a0 */
@@ -8431,6 +8461,7 @@ static int hf_nr_rrc_supportedBandCombinationListNEDC_Only_v1640; /* BandCombin
static int hf_nr_rrc_supportedBandCombinationListNEDC_Only_v1720; /* T_supportedBandCombinationListNEDC_Only_v1720 */
static int hf_nr_rrc_supportedBandCombinationListNEDC_Only_v1730; /* BandCombinationList_v1730 */
static int hf_nr_rrc_supportedBandCombinationListNEDC_Only_v1740; /* BandCombinationList_v1740 */
+static int hf_nr_rrc_supportedBandCombinationListNEDC_Only_v1780; /* BandCombinationList_v1780 */
static int hf_nr_rrc_supportedBandCombinationListNEDC_Only_v15g0; /* BandCombinationList_v15g0 */
static int hf_nr_rrc_supportedBandCombinationList_v15n0; /* BandCombinationList_v15n0 */
static int hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v16e0; /* BandCombinationList_UplinkTxSwitch_v16e0 */
@@ -8556,16 +8587,18 @@ static int hf_nr_rrc_maxNumberSRS_PosResourcesPerBWP_r17; /* T_maxNumberSRS_Pos
static int hf_nr_rrc_maxNumberSRS_ResourcesPerBWP_PerSlot_r17; /* T_maxNumberSRS_ResourcesPerBWP_PerSlot_r17 */
static int hf_nr_rrc_maxNumberPeriodicSRS_PosResourcesPerBWP_r17; /* T_maxNumberPeriodicSRS_PosResourcesPerBWP_r17 */
static int hf_nr_rrc_maxNumberPeriodicSRS_PosResourcesPerBWP_PerSlot_r17; /* T_maxNumberPeriodicSRS_PosResourcesPerBWP_PerSlot_r17 */
-static int hf_nr_rrc_dummy1_05; /* T_dummy1_05 */
-static int hf_nr_rrc_dummy2_03; /* T_dummy2_03 */
+static int hf_nr_rrc_dummy1_06; /* T_dummy1_05 */
+static int hf_nr_rrc_dummy2_04; /* T_dummy2_03 */
static int hf_nr_rrc_switchingTimeDL; /* T_switchingTimeDL */
static int hf_nr_rrc_switchingTimeUL; /* T_switchingTimeUL */
static int hf_nr_rrc_switchingTimeDL_01; /* T_switchingTimeDL_01 */
static int hf_nr_rrc_switchingTimeUL_01; /* T_switchingTimeUL_01 */
-static int hf_nr_rrc_fr1_04; /* T_fr1_04 */
-static int hf_nr_rrc_fr2_04; /* T_fr2_04 */
static int hf_nr_rrc_fr1_r17_05; /* T_fr1_r17_05 */
static int hf_nr_rrc_fr2_r17_05; /* T_fr2_r17_05 */
+static int hf_nr_rrc_fr1_04; /* T_fr1_04 */
+static int hf_nr_rrc_fr2_04; /* T_fr2_04 */
+static int hf_nr_rrc_fr1_r17_06; /* T_fr1_r17_06 */
+static int hf_nr_rrc_fr2_r17_06; /* T_fr2_r17_06 */
static int hf_nr_rrc_barometerMeasReport_r16; /* T_barometerMeasReport_r16 */
static int hf_nr_rrc_immMeasBT_r16; /* T_immMeasBT_r16 */
static int hf_nr_rrc_immMeasWLAN_r16; /* T_immMeasWLAN_r16 */
@@ -9413,7 +9446,6 @@ static int hf_nr_rrc_drb_Identity_r17; /* DRB_Identity */
static int hf_nr_rrc_SL_SyncConfigList_r16_item; /* SL_SyncConfig_r16 */
static int hf_nr_rrc_sl_SyncRefMinHyst_r16; /* T_sl_SyncRefMinHyst_r16 */
static int hf_nr_rrc_sl_SyncRefDiffHyst_r16; /* T_sl_SyncRefDiffHyst_r16 */
-static int hf_nr_rrc_sl_filterCoefficient_r16; /* FilterCoefficient */
static int hf_nr_rrc_sl_SSB_TimeAllocation1_r16; /* SL_SSB_TimeAllocation_r16 */
static int hf_nr_rrc_sl_SSB_TimeAllocation2_r16; /* SL_SSB_TimeAllocation_r16 */
static int hf_nr_rrc_sl_SSB_TimeAllocation3_r16; /* SL_SSB_TimeAllocation_r16 */
@@ -9697,3566 +9729,3581 @@ static int hf_nr_rrc_absolute_time;
/* Initialize the subtree pointers */
static gint ett_nr_rrc;
-static gint ett_nr_rrc_HandoverCommand;
-static gint ett_nr_rrc_T_criticalExtensions;
-static gint ett_nr_rrc_T_c1;
-static gint ett_nr_rrc_T_criticalExtensionsFuture;
-static gint ett_nr_rrc_HandoverCommand_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension;
-static gint ett_nr_rrc_HandoverPreparationInformation;
-static gint ett_nr_rrc_T_criticalExtensions_01;
-static gint ett_nr_rrc_T_c1_01;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_01;
-static gint ett_nr_rrc_HandoverPreparationInformation_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_01;
-static gint ett_nr_rrc_AS_Config;
-static gint ett_nr_rrc_AS_Context;
-static gint ett_nr_rrc_ConfigRestrictInfoDAPS_r16;
-static gint ett_nr_rrc_T_powerCoordination_r16;
-static gint ett_nr_rrc_ConfigRestrictInfoDAPS_v1640;
-static gint ett_nr_rrc_ReestablishmentInfo;
-static gint ett_nr_rrc_ReestabNCellInfoList;
-static gint ett_nr_rrc_ReestabNCellInfo;
-static gint ett_nr_rrc_RRM_Config;
-static gint ett_nr_rrc_CG_Config;
-static gint ett_nr_rrc_T_criticalExtensions_02;
-static gint ett_nr_rrc_T_c1_02;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_02;
-static gint ett_nr_rrc_CG_Config_IEs;
-static gint ett_nr_rrc_CG_Config_v1540_IEs;
-static gint ett_nr_rrc_T_reportCGI_RequestNR;
-static gint ett_nr_rrc_T_requestedCellInfo;
-static gint ett_nr_rrc_CG_Config_v1560_IEs;
-static gint ett_nr_rrc_T_reportCGI_RequestEUTRA;
-static gint ett_nr_rrc_T_requestedCellInfoEUTRA;
-static gint ett_nr_rrc_CG_Config_v1590_IEs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ARFCN_ValueNR;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ARFCN_ValueEUTRA;
-static gint ett_nr_rrc_CG_Config_v1610_IEs;
-static gint ett_nr_rrc_CG_Config_v1620_IEs;
-static gint ett_nr_rrc_CG_Config_v1630_IEs;
-static gint ett_nr_rrc_CG_Config_v1640_IEs;
-static gint ett_nr_rrc_CG_Config_v1700_IEs;
-static gint ett_nr_rrc_CG_Config_v1730_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_02;
-static gint ett_nr_rrc_ServCellInfoListSCG_NR_r16;
-static gint ett_nr_rrc_ServCellInfoXCG_NR_r16;
-static gint ett_nr_rrc_FrequencyConfig_NR_r16;
-static gint ett_nr_rrc_ServCellInfoListSCG_EUTRA_r16;
-static gint ett_nr_rrc_ServCellInfoXCG_EUTRA_r16;
-static gint ett_nr_rrc_PH_TypeListSCG;
-static gint ett_nr_rrc_PH_InfoSCG;
-static gint ett_nr_rrc_PH_UplinkCarrierSCG;
-static gint ett_nr_rrc_MeasConfigSN;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsSN_OF_NR_FreqInfo;
-static gint ett_nr_rrc_NR_FreqInfo;
-static gint ett_nr_rrc_ConfigRestrictModReqSCG;
-static gint ett_nr_rrc_BandCombinationInfoSN;
-static gint ett_nr_rrc_FR_InfoList;
-static gint ett_nr_rrc_FR_Info;
-static gint ett_nr_rrc_CandidateServingFreqListNR;
-static gint ett_nr_rrc_CandidateServingFreqListEUTRA;
-static gint ett_nr_rrc_CandidateCellInfoListCPC_r17;
-static gint ett_nr_rrc_CandidateCellInfo_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCondCells_r16_OF_CandidateCell_r17;
-static gint ett_nr_rrc_CandidateCell_r17;
-static gint ett_nr_rrc_CG_ConfigInfo;
-static gint ett_nr_rrc_T_criticalExtensions_03;
-static gint ett_nr_rrc_T_c1_03;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_03;
-static gint ett_nr_rrc_CG_ConfigInfo_IEs;
-static gint ett_nr_rrc_T_scgFailureInfo;
-static gint ett_nr_rrc_CG_ConfigInfo_v1540_IEs;
-static gint ett_nr_rrc_T_measResultReportCGI;
-static gint ett_nr_rrc_CG_ConfigInfo_v1560_IEs;
-static gint ett_nr_rrc_T_scgFailureInfoEUTRA;
-static gint ett_nr_rrc_T_measResultReportCGI_EUTRA;
-static gint ett_nr_rrc_CG_ConfigInfo_v1570_IEs;
-static gint ett_nr_rrc_CG_ConfigInfo_v1590_IEs;
-static gint ett_nr_rrc_CG_ConfigInfo_v1610_IEs;
-static gint ett_nr_rrc_T_scgFailureInfo_r16;
-static gint ett_nr_rrc_T_dummy1;
-static gint ett_nr_rrc_CG_ConfigInfo_v1620_IEs;
-static gint ett_nr_rrc_CG_ConfigInfo_v1640_IEs;
-static gint ett_nr_rrc_CG_ConfigInfo_v1700_IEs;
-static gint ett_nr_rrc_CG_ConfigInfo_v1730_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_03;
-static gint ett_nr_rrc_ServCellInfoListMCG_NR_r16;
-static gint ett_nr_rrc_ServCellInfoListMCG_EUTRA_r16;
-static gint ett_nr_rrc_SFTD_FrequencyList_NR;
-static gint ett_nr_rrc_SFTD_FrequencyList_EUTRA;
-static gint ett_nr_rrc_ConfigRestrictInfoSCG;
-static gint ett_nr_rrc_T_powerCoordination_FR1;
-static gint ett_nr_rrc_T_servCellIndexRangeSCG;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_SelectedBandEntriesMN;
-static gint ett_nr_rrc_T_powerCoordination_FR2_r16;
-static gint ett_nr_rrc_SelectedBandEntriesMN;
-static gint ett_nr_rrc_PH_TypeListMCG;
-static gint ett_nr_rrc_PH_InfoMCG;
-static gint ett_nr_rrc_PH_UplinkCarrierMCG;
-static gint ett_nr_rrc_BandCombinationInfoList;
-static gint ett_nr_rrc_BandCombinationInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex;
-static gint ett_nr_rrc_DRX_Info;
-static gint ett_nr_rrc_T_drx_LongCycleStartOffset;
-static gint ett_nr_rrc_T_shortDRX;
-static gint ett_nr_rrc_DRX_Info2;
-static gint ett_nr_rrc_T_drx_onDurationTimer;
-static gint ett_nr_rrc_MeasConfigMN;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo;
-static gint ett_nr_rrc_T_measGapConfig;
-static gint ett_nr_rrc_T_measGapConfigFR2;
-static gint ett_nr_rrc_MRDC_AssistanceInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC;
-static gint ett_nr_rrc_AffectedCarrierFreqCombInfoMRDC;
-static gint ett_nr_rrc_T_affectedCarrierFreqCombMRDC;
-static gint ett_nr_rrc_VictimSystemType;
-static gint ett_nr_rrc_AffectedCarrierFreqCombEUTRA;
-static gint ett_nr_rrc_AffectedCarrierFreqCombNR;
-static gint ett_nr_rrc_CandidateCellListCPC_r17;
-static gint ett_nr_rrc_CandidateCellCPC_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCondCells_r16_OF_PhysCellId;
-static gint ett_nr_rrc_MeasurementTimingConfiguration;
-static gint ett_nr_rrc_T_criticalExtensions_04;
-static gint ett_nr_rrc_T_c1_04;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_04;
-static gint ett_nr_rrc_MeasurementTimingConfiguration_IEs;
-static gint ett_nr_rrc_MeasurementTimingConfiguration_v1550_IEs;
-static gint ett_nr_rrc_MeasurementTimingConfiguration_v1610_IEs;
-static gint ett_nr_rrc_T_csi_RS_Config_r16;
-static gint ett_nr_rrc_T_nonCriticalExtension_04;
-static gint ett_nr_rrc_MeasTimingList;
-static gint ett_nr_rrc_MeasTiming;
-static gint ett_nr_rrc_T_frequencyAndTiming;
-static gint ett_nr_rrc_UERadioPagingInformation;
-static gint ett_nr_rrc_T_criticalExtensions_05;
-static gint ett_nr_rrc_T_c1_05;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_05;
-static gint ett_nr_rrc_UERadioPagingInformation_IEs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR;
-static gint ett_nr_rrc_UERadioPagingInformation_v15e0_IEs;
-static gint ett_nr_rrc_UERadioPagingInformation_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_05;
-static gint ett_nr_rrc_UERadioAccessCapabilityInformation;
-static gint ett_nr_rrc_T_criticalExtensions_06;
-static gint ett_nr_rrc_T_c1_06;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_06;
-static gint ett_nr_rrc_UERadioAccessCapabilityInformation_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_06;
-static gint ett_nr_rrc_ResourceConfigNRDC_r17;
-static gint ett_nr_rrc_ResourceConfigPerFR_r17;
-static gint ett_nr_rrc_BCCH_BCH_Message;
-static gint ett_nr_rrc_BCCH_BCH_MessageType;
-static gint ett_nr_rrc_T_messageClassExtension;
-static gint ett_nr_rrc_BCCH_DL_SCH_Message;
-static gint ett_nr_rrc_BCCH_DL_SCH_MessageType;
-static gint ett_nr_rrc_T_c1_07;
-static gint ett_nr_rrc_T_messageClassExtension_01;
-static gint ett_nr_rrc_DL_CCCH_Message;
-static gint ett_nr_rrc_DL_CCCH_MessageType;
-static gint ett_nr_rrc_T_c1_08;
-static gint ett_nr_rrc_T_messageClassExtension_02;
-static gint ett_nr_rrc_DL_DCCH_Message;
-static gint ett_nr_rrc_DL_DCCH_MessageType;
-static gint ett_nr_rrc_T_c1_09;
-static gint ett_nr_rrc_T_messageClassExtension_03;
-static gint ett_nr_rrc_MCCH_Message_r17;
-static gint ett_nr_rrc_MCCH_MessageType_r17;
-static gint ett_nr_rrc_T_c1_10;
-static gint ett_nr_rrc_T_messageClassExtension_04;
-static gint ett_nr_rrc_PCCH_Message;
-static gint ett_nr_rrc_PCCH_MessageType;
-static gint ett_nr_rrc_T_c1_11;
-static gint ett_nr_rrc_T_messageClassExtension_05;
-static gint ett_nr_rrc_UL_CCCH_Message;
-static gint ett_nr_rrc_UL_CCCH_MessageType;
-static gint ett_nr_rrc_T_c1_12;
-static gint ett_nr_rrc_T_messageClassExtension_06;
-static gint ett_nr_rrc_UL_CCCH1_Message;
-static gint ett_nr_rrc_UL_CCCH1_MessageType;
-static gint ett_nr_rrc_T_c1_13;
-static gint ett_nr_rrc_T_messageClassExtension_07;
-static gint ett_nr_rrc_UL_DCCH_Message;
-static gint ett_nr_rrc_UL_DCCH_MessageType;
-static gint ett_nr_rrc_T_c1_14;
-static gint ett_nr_rrc_T_messageClassExtension_08;
-static gint ett_nr_rrc_T_c2;
-static gint ett_nr_rrc_T_messageClassExtensionFuture_r16;
-static gint ett_nr_rrc_CounterCheck;
-static gint ett_nr_rrc_T_criticalExtensions_07;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_07;
-static gint ett_nr_rrc_CounterCheck_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_07;
-static gint ett_nr_rrc_DRB_CountMSB_InfoList;
-static gint ett_nr_rrc_DRB_CountMSB_Info;
-static gint ett_nr_rrc_CounterCheckResponse;
-static gint ett_nr_rrc_T_criticalExtensions_08;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_08;
-static gint ett_nr_rrc_CounterCheckResponse_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_08;
-static gint ett_nr_rrc_DRB_CountInfoList;
-static gint ett_nr_rrc_DRB_CountInfo;
-static gint ett_nr_rrc_DedicatedSIBRequest_r16;
-static gint ett_nr_rrc_T_criticalExtensions_09;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_09;
-static gint ett_nr_rrc_DedicatedSIBRequest_r16_IEs;
-static gint ett_nr_rrc_T_onDemandSIB_RequestList_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxOnDemandSIB_r16_OF_SIB_ReqInfo_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxOnDemandPosSIB_r16_OF_PosSIB_ReqInfo_r16;
-static gint ett_nr_rrc_T_nonCriticalExtension_09;
-static gint ett_nr_rrc_PosSIB_ReqInfo_r16;
-static gint ett_nr_rrc_DLDedicatedMessageSegment_r16;
-static gint ett_nr_rrc_T_criticalExtensions_10;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_10;
-static gint ett_nr_rrc_DLDedicatedMessageSegment_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_10;
-static gint ett_nr_rrc_DLInformationTransfer;
-static gint ett_nr_rrc_T_criticalExtensions_11;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_11;
-static gint ett_nr_rrc_DLInformationTransfer_IEs;
-static gint ett_nr_rrc_DLInformationTransfer_v1610_IEs;
-static gint ett_nr_rrc_DLInformationTransfer_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_11;
-static gint ett_nr_rrc_DLInformationTransferMRDC_r16;
-static gint ett_nr_rrc_T_criticalExtensions_12;
-static gint ett_nr_rrc_T_c1_15;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_12;
-static gint ett_nr_rrc_DLInformationTransferMRDC_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_12;
-static gint ett_nr_rrc_FailureInformation;
-static gint ett_nr_rrc_T_criticalExtensions_13;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_13;
-static gint ett_nr_rrc_FailureInformation_IEs;
-static gint ett_nr_rrc_FailureInfoRLC_Bearer;
-static gint ett_nr_rrc_FailureInformation_v1610_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_13;
-static gint ett_nr_rrc_FailureInfoDAPS_r16;
-static gint ett_nr_rrc_IABOtherInformation_r16;
-static gint ett_nr_rrc_T_criticalExtensions_14;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_14;
-static gint ett_nr_rrc_IABOtherInformation_r16_IEs;
-static gint ett_nr_rrc_T_ip_InfoType_r16;
-static gint ett_nr_rrc_T_iab_IP_Request_r16;
-static gint ett_nr_rrc_T_iab_IPv6_AddressReq_r16;
-static gint ett_nr_rrc_T_iab_IP_Report_r16;
-static gint ett_nr_rrc_T_iab_IPv6_Report_r16;
-static gint ett_nr_rrc_T_nonCriticalExtension_14;
-static gint ett_nr_rrc_IAB_IP_AddressNumReq_r16;
-static gint ett_nr_rrc_IAB_IP_AddressPrefixReq_r16;
-static gint ett_nr_rrc_IAB_IP_AddressAndTraffic_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_IAB_IP_Address_r16;
-static gint ett_nr_rrc_IAB_IP_PrefixAndTraffic_r16;
-static gint ett_nr_rrc_LocationMeasurementIndication;
-static gint ett_nr_rrc_T_criticalExtensions_15;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_15;
-static gint ett_nr_rrc_LocationMeasurementIndication_IEs;
-static gint ett_nr_rrc_T_measurementIndication;
-static gint ett_nr_rrc_T_nonCriticalExtension_15;
-static gint ett_nr_rrc_LoggedMeasurementConfiguration_r16;
-static gint ett_nr_rrc_T_criticalExtensions_16;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_16;
-static gint ett_nr_rrc_LoggedMeasurementConfiguration_r16_IEs;
-static gint ett_nr_rrc_T_bt_NameList_r16;
-static gint ett_nr_rrc_T_wlan_NameList_r16;
-static gint ett_nr_rrc_T_sensor_NameList_r16;
-static gint ett_nr_rrc_T_reportType;
-static gint ett_nr_rrc_LoggedMeasurementConfiguration_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_16;
-static gint ett_nr_rrc_LoggedPeriodicalReportConfig_r16;
-static gint ett_nr_rrc_LoggedEventTriggerConfig_r16;
-static gint ett_nr_rrc_EventType_r16;
-static gint ett_nr_rrc_T_eventL1;
-static gint ett_nr_rrc_MBSBroadcastConfiguration_r17;
-static gint ett_nr_rrc_T_criticalExtensions_17;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_17;
-static gint ett_nr_rrc_MBSBroadcastConfiguration_r17_IEs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDRX_ConfigPTM_r17_OF_DRX_ConfigPTM_r17;
-static gint ett_nr_rrc_T_nonCriticalExtension_17;
-static gint ett_nr_rrc_MBSInterestIndication_r17;
-static gint ett_nr_rrc_T_criticalExtensions_18;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_18;
-static gint ett_nr_rrc_MBSInterestIndication_r17_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_18;
-static gint ett_nr_rrc_MCGFailureInformation_r16;
-static gint ett_nr_rrc_T_criticalExtensions_19;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_19;
-static gint ett_nr_rrc_MCGFailureInformation_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_19;
-static gint ett_nr_rrc_FailureReportMCG_r16;
-static gint ett_nr_rrc_MeasResultList2UTRA;
-static gint ett_nr_rrc_MeasResult2UTRA_FDD_r16;
-static gint ett_nr_rrc_MeasResultList2EUTRA;
-static gint ett_nr_rrc_MeasurementReport;
-static gint ett_nr_rrc_T_criticalExtensions_20;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_20;
-static gint ett_nr_rrc_MeasurementReport_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_20;
-static gint ett_nr_rrc_MeasurementReportAppLayer_r17;
-static gint ett_nr_rrc_T_criticalExtensions_21;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_21;
-static gint ett_nr_rrc_MeasurementReportAppLayer_r17_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_21;
-static gint ett_nr_rrc_MeasurementReportAppLayerList_r17;
-static gint ett_nr_rrc_MeasReportAppLayer_r17;
-static gint ett_nr_rrc_RAN_VisibleMeasurements_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_AppLayerBufferLevel_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPDU_Sessions_r17_OF_PDU_SessionID;
-static gint ett_nr_rrc_MIB;
-static gint ett_nr_rrc_MobilityFromNRCommand;
-static gint ett_nr_rrc_T_criticalExtensions_22;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_22;
-static gint ett_nr_rrc_MobilityFromNRCommand_IEs;
-static gint ett_nr_rrc_MobilityFromNRCommand_v1610_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_22;
-static gint ett_nr_rrc_Paging;
-static gint ett_nr_rrc_Paging_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_23;
-static gint ett_nr_rrc_PagingRecordList;
-static gint ett_nr_rrc_PagingRecordList_v1700;
-static gint ett_nr_rrc_PagingGroupList_r17;
-static gint ett_nr_rrc_PagingRecord;
-static gint ett_nr_rrc_PagingRecord_v1700;
-static gint ett_nr_rrc_PagingUE_Identity;
-static gint ett_nr_rrc_RRCReestablishment;
-static gint ett_nr_rrc_T_criticalExtensions_23;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_23;
-static gint ett_nr_rrc_RRCReestablishment_IEs;
-static gint ett_nr_rrc_RRCReestablishment_v1700_IEs;
-static gint ett_nr_rrc_T_sl_L2RemoteUE_Config_r17;
-static gint ett_nr_rrc_T_nonCriticalExtension_24;
-static gint ett_nr_rrc_RRCReestablishmentComplete;
-static gint ett_nr_rrc_T_criticalExtensions_24;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_24;
-static gint ett_nr_rrc_RRCReestablishmentComplete_IEs;
-static gint ett_nr_rrc_RRCReestablishmentComplete_v1610_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_25;
-static gint ett_nr_rrc_RRCReestablishmentRequest;
-static gint ett_nr_rrc_RRCReestablishmentRequest_IEs;
-static gint ett_nr_rrc_ReestabUE_Identity;
-static gint ett_nr_rrc_RRCReconfiguration;
-static gint ett_nr_rrc_T_criticalExtensions_25;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_25;
-static gint ett_nr_rrc_RRCReconfiguration_IEs;
-static gint ett_nr_rrc_RRCReconfiguration_v1530_IEs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message;
-static gint ett_nr_rrc_RRCReconfiguration_v1540_IEs;
-static gint ett_nr_rrc_RRCReconfiguration_v1560_IEs;
-static gint ett_nr_rrc_T_mrdc_SecondaryCellGroupConfig;
-static gint ett_nr_rrc_RRCReconfiguration_v1610_IEs;
-static gint ett_nr_rrc_T_bap_Config_r16;
-static gint ett_nr_rrc_T_t316_r16;
-static gint ett_nr_rrc_T_needForGapsConfigNR_r16;
-static gint ett_nr_rrc_T_onDemandSIB_Request_r16;
-static gint ett_nr_rrc_T_sl_ConfigDedicatedNR_r16;
-static gint ett_nr_rrc_T_sl_ConfigDedicatedEUTRA_Info_r16;
-static gint ett_nr_rrc_RRCReconfiguration_v1700_IEs;
-static gint ett_nr_rrc_T_sl_L2RelayUE_Config_r17;
-static gint ett_nr_rrc_T_sl_L2RemoteUE_Config_r17_01;
-static gint ett_nr_rrc_T_needForGapNCSG_ConfigNR_r17;
-static gint ett_nr_rrc_T_needForGapNCSG_ConfigEUTRA_r17;
-static gint ett_nr_rrc_T_musim_GapConfig_r17;
-static gint ett_nr_rrc_T_ul_GapFR2_Config_r17;
-static gint ett_nr_rrc_T_ue_TxTEG_RequestUL_TDOA_Config_r17;
-static gint ett_nr_rrc_T_nonCriticalExtension_26;
-static gint ett_nr_rrc_MRDC_SecondaryCellGroupConfig;
-static gint ett_nr_rrc_T_mrdc_SecondaryCellGroup;
-static gint ett_nr_rrc_BAP_Config_r16;
-static gint ett_nr_rrc_MasterKeyUpdate;
-static gint ett_nr_rrc_OnDemandSIB_Request_r16;
-static gint ett_nr_rrc_IAB_IP_AddressConfigurationList_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxIAB_IP_Address_r16_OF_IAB_IP_AddressConfiguration_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxIAB_IP_Address_r16_OF_IAB_IP_AddressIndex_r16;
-static gint ett_nr_rrc_IAB_IP_AddressConfiguration_r16;
-static gint ett_nr_rrc_SL_ConfigDedicatedEUTRA_Info_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_8_OF_SL_TimeOffsetEUTRA_r16;
-static gint ett_nr_rrc_UE_TxTEG_RequestUL_TDOA_Config_r17;
-static gint ett_nr_rrc_RRCReconfigurationComplete;
-static gint ett_nr_rrc_T_criticalExtensions_26;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_26;
-static gint ett_nr_rrc_RRCReconfigurationComplete_IEs;
-static gint ett_nr_rrc_RRCReconfigurationComplete_v1530_IEs;
-static gint ett_nr_rrc_RRCReconfigurationComplete_v1560_IEs;
-static gint ett_nr_rrc_T_scg_Response;
-static gint ett_nr_rrc_RRCReconfigurationComplete_v1610_IEs;
-static gint ett_nr_rrc_RRCReconfigurationComplete_v1640_IEs;
-static gint ett_nr_rrc_RRCReconfigurationComplete_v1700_IEs;
-static gint ett_nr_rrc_RRCReconfigurationComplete_v1720_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_27;
-static gint ett_nr_rrc_RRCReject;
-static gint ett_nr_rrc_T_criticalExtensions_27;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_27;
-static gint ett_nr_rrc_RRCReject_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_28;
-static gint ett_nr_rrc_RRCRelease;
-static gint ett_nr_rrc_T_criticalExtensions_28;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_28;
-static gint ett_nr_rrc_RRCRelease_IEs;
-static gint ett_nr_rrc_T_deprioritisationReq;
-static gint ett_nr_rrc_RRCRelease_v1540_IEs;
-static gint ett_nr_rrc_RRCRelease_v1610_IEs;
-static gint ett_nr_rrc_T_measIdleConfig_r16;
-static gint ett_nr_rrc_RRCRelease_v1650_IEs;
-static gint ett_nr_rrc_RRCRelease_v1710_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_29;
-static gint ett_nr_rrc_RedirectedCarrierInfo;
-static gint ett_nr_rrc_RedirectedCarrierInfo_EUTRA;
-static gint ett_nr_rrc_CarrierInfoNR;
-static gint ett_nr_rrc_SuspendConfig;
-static gint ett_nr_rrc_T_sdt_Config_r17;
-static gint ett_nr_rrc_T_srs_PosRRC_Inactive_r17;
-static gint ett_nr_rrc_T_ncd_SSB_RedCapInitialBWP_SDT_r17;
-static gint ett_nr_rrc_CellReselectionPriorities;
-static gint ett_nr_rrc_FreqPriorityListEUTRA;
-static gint ett_nr_rrc_FreqPriorityListNR;
-static gint ett_nr_rrc_FreqPriorityEUTRA;
-static gint ett_nr_rrc_FreqPriorityNR;
-static gint ett_nr_rrc_RAN_NotificationAreaInfo;
-static gint ett_nr_rrc_PLMN_RAN_AreaCellList;
-static gint ett_nr_rrc_PLMN_RAN_AreaCell;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity;
-static gint ett_nr_rrc_PLMN_RAN_AreaConfigList;
-static gint ett_nr_rrc_PLMN_RAN_AreaConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig;
-static gint ett_nr_rrc_RAN_AreaConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode;
-static gint ett_nr_rrc_SDT_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_0_maxDRB_OF_DRB_Identity;
-static gint ett_nr_rrc_T_sdt_MAC_PHY_CG_Config_r17;
-static gint ett_nr_rrc_SDT_MAC_PHY_CG_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_CG_SDT_ConfigLCH_Restriction_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity;
-static gint ett_nr_rrc_T_cg_SDT_ConfigInitialBWP_NUL_r17;
-static gint ett_nr_rrc_T_cg_SDT_ConfigInitialBWP_SUL_r17;
-static gint ett_nr_rrc_T_cg_SDT_TA_ValidationConfig_r17;
-static gint ett_nr_rrc_CG_SDT_TA_ValidationConfig_r17;
-static gint ett_nr_rrc_BWP_DownlinkDedicatedSDT_r17;
-static gint ett_nr_rrc_T_pdcch_Config_r17;
-static gint ett_nr_rrc_T_pdsch_Config_r17;
-static gint ett_nr_rrc_BWP_UplinkDedicatedSDT_r17;
-static gint ett_nr_rrc_T_pusch_Config_r17;
-static gint ett_nr_rrc_CG_SDT_ConfigLCH_Restriction_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofConfiguredGrantConfigMAC_1_r16_OF_ConfiguredGrantConfigIndexMAC_r16;
-static gint ett_nr_rrc_SRS_PosRRC_InactiveConfig_r17;
-static gint ett_nr_rrc_SRS_PosConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResourceSets_r16_OF_SRS_PosResourceSetId_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResourceSets_r16_OF_SRS_PosResourceSet_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResources_r16_OF_SRS_PosResourceId_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResources_r16_OF_SRS_PosResource_r16;
-static gint ett_nr_rrc_RRCResume;
-static gint ett_nr_rrc_T_criticalExtensions_29;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_29;
-static gint ett_nr_rrc_RRCResume_IEs;
-static gint ett_nr_rrc_RRCResume_v1560_IEs;
-static gint ett_nr_rrc_RRCResume_v1610_IEs;
-static gint ett_nr_rrc_T_mrdc_SecondaryCellGroup_r16;
-static gint ett_nr_rrc_T_needForGapsConfigNR_r16_01;
-static gint ett_nr_rrc_RRCResume_v1700_IEs;
-static gint ett_nr_rrc_T_sl_ConfigDedicatedNR_r17;
-static gint ett_nr_rrc_T_sl_L2RemoteUE_Config_r17_02;
-static gint ett_nr_rrc_T_needForGapNCSG_ConfigNR_r17_01;
-static gint ett_nr_rrc_T_needForGapNCSG_ConfigEUTRA_r17_01;
-static gint ett_nr_rrc_T_nonCriticalExtension_30;
-static gint ett_nr_rrc_RRCResumeComplete;
-static gint ett_nr_rrc_T_criticalExtensions_30;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_30;
-static gint ett_nr_rrc_RRCResumeComplete_IEs;
-static gint ett_nr_rrc_RRCResumeComplete_v1610_IEs;
-static gint ett_nr_rrc_T_scg_Response_r16;
-static gint ett_nr_rrc_RRCResumeComplete_v1640_IEs;
-static gint ett_nr_rrc_RRCResumeComplete_v1700_IEs;
-static gint ett_nr_rrc_RRCResumeComplete_v1720_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_31;
-static gint ett_nr_rrc_RRCResumeRequest;
-static gint ett_nr_rrc_RRCResumeRequest_IEs;
-static gint ett_nr_rrc_RRCResumeRequest1;
-static gint ett_nr_rrc_RRCResumeRequest1_IEs;
-static gint ett_nr_rrc_RRCSetup;
-static gint ett_nr_rrc_T_criticalExtensions_31;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_31;
-static gint ett_nr_rrc_RRCSetup_IEs;
-static gint ett_nr_rrc_RRCSetup_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_32;
-static gint ett_nr_rrc_RRCSetupComplete;
-static gint ett_nr_rrc_T_criticalExtensions_32;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_32;
-static gint ett_nr_rrc_RRCSetupComplete_IEs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI;
-static gint ett_nr_rrc_T_ng_5G_S_TMSI_Value;
-static gint ett_nr_rrc_RRCSetupComplete_v1610_IEs;
-static gint ett_nr_rrc_RRCSetupComplete_v1690_IEs;
-static gint ett_nr_rrc_RRCSetupComplete_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_33;
-static gint ett_nr_rrc_RegisteredAMF;
-static gint ett_nr_rrc_RRCSetupRequest;
-static gint ett_nr_rrc_RRCSetupRequest_IEs;
-static gint ett_nr_rrc_InitialUE_Identity;
-static gint ett_nr_rrc_RRCSystemInfoRequest;
-static gint ett_nr_rrc_T_criticalExtensions_33;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_r16;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_33;
-static gint ett_nr_rrc_RRCSystemInfoRequest_IEs;
-static gint ett_nr_rrc_RRC_PosSystemInfoRequest_r16_IEs;
-static gint ett_nr_rrc_SCGFailureInformation;
-static gint ett_nr_rrc_T_criticalExtensions_34;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_34;
-static gint ett_nr_rrc_SCGFailureInformation_IEs;
-static gint ett_nr_rrc_SCGFailureInformation_v1590_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_34;
-static gint ett_nr_rrc_FailureReportSCG;
-static gint ett_nr_rrc_T_previousPSCellId_r17;
-static gint ett_nr_rrc_T_failedPSCellId_r17;
-static gint ett_nr_rrc_MeasResultFreqList;
-static gint ett_nr_rrc_SCGFailureInformationEUTRA;
-static gint ett_nr_rrc_T_criticalExtensions_35;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_35;
-static gint ett_nr_rrc_SCGFailureInformationEUTRA_IEs;
-static gint ett_nr_rrc_SCGFailureInformationEUTRA_v1590_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_35;
-static gint ett_nr_rrc_FailureReportSCG_EUTRA;
-static gint ett_nr_rrc_MeasResultFreqListFailMRDC;
-static gint ett_nr_rrc_SecurityModeCommand;
-static gint ett_nr_rrc_T_criticalExtensions_36;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_36;
-static gint ett_nr_rrc_SecurityModeCommand_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_36;
-static gint ett_nr_rrc_SecurityConfigSMC;
-static gint ett_nr_rrc_SecurityModeComplete;
-static gint ett_nr_rrc_T_criticalExtensions_37;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_37;
-static gint ett_nr_rrc_SecurityModeComplete_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_37;
-static gint ett_nr_rrc_SecurityModeFailure;
-static gint ett_nr_rrc_T_criticalExtensions_38;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_38;
-static gint ett_nr_rrc_SecurityModeFailure_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_38;
-static gint ett_nr_rrc_SIB1;
-static gint ett_nr_rrc_T_cellSelectionInfo;
-static gint ett_nr_rrc_T_uac_BarringInfo;
-static gint ett_nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo;
-static gint ett_nr_rrc_SIB1_v1610_IEs;
-static gint ett_nr_rrc_SIB1_v1630_IEs;
-static gint ett_nr_rrc_T_uac_BarringInfo_v1630;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AC1_SelectAssistInfo_r16;
-static gint ett_nr_rrc_SIB1_v1700_IEs;
-static gint ett_nr_rrc_T_uac_BarringInfo_v1700;
-static gint ett_nr_rrc_T_featurePriorities_r17;
-static gint ett_nr_rrc_SIB1_v1740_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_39;
-static gint ett_nr_rrc_SDT_ConfigCommonSIB_r17;
-static gint ett_nr_rrc_RedCap_ConfigCommonSIB_r17;
-static gint ett_nr_rrc_T_cellBarredRedCap_r17;
-static gint ett_nr_rrc_SidelinkUEInformationNR_r16;
-static gint ett_nr_rrc_T_criticalExtensions_39;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_39;
-static gint ett_nr_rrc_SidelinkUEInformationNR_r16_IEs;
-static gint ett_nr_rrc_SidelinkUEInformationNR_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_40;
-static gint ett_nr_rrc_SL_InterestedFreqList_r16;
-static gint ett_nr_rrc_SL_TxResourceReqList_r16;
-static gint ett_nr_rrc_SL_TxResourceReq_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SL_RLC_ModeIndication_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIsPerDest_r16_OF_SL_QoS_Info_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFreqSL_r16_OF_SL_TypeTxSync_r16;
-static gint ett_nr_rrc_SL_TxResourceReqList_v1700;
-static gint ett_nr_rrc_SL_RxDRX_ReportList_v1700;
-static gint ett_nr_rrc_SL_TxResourceReq_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_RxInfoSet_r17_OF_SL_DRX_ConfigUC_SemiStatic_r17;
-static gint ett_nr_rrc_SL_RxDRX_Report_v1700;
-static gint ett_nr_rrc_SL_RxInterestedGC_BC_DestList_r17;
-static gint ett_nr_rrc_SL_RxInterestedGC_BC_Dest_r17;
-static gint ett_nr_rrc_SL_TxResourceReqListDisc_r17;
-static gint ett_nr_rrc_SL_TxResourceReqDisc_r17;
-static gint ett_nr_rrc_SL_TxResourceReqListCommRelay_r17;
-static gint ett_nr_rrc_SL_TxResourceReqCommRelayInfo_r17;
-static gint ett_nr_rrc_SL_TxResourceReqCommRelay_r17;
-static gint ett_nr_rrc_SL_TxResourceReqL2U2N_Relay_r17;
-static gint ett_nr_rrc_SL_TxInterestedFreqList_r16;
-static gint ett_nr_rrc_SL_QoS_Info_r16;
-static gint ett_nr_rrc_SL_RLC_ModeIndication_r16;
-static gint ett_nr_rrc_T_sl_Mode_r16;
-static gint ett_nr_rrc_SL_FailureList_r16;
-static gint ett_nr_rrc_SL_Failure_r16;
-static gint ett_nr_rrc_SystemInformation;
-static gint ett_nr_rrc_T_criticalExtensions_40;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_r16_01;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_40;
-static gint ett_nr_rrc_SystemInformation_IEs;
-static gint ett_nr_rrc_T_sib_TypeAndInfo;
-static gint ett_nr_rrc_T_sib_TypeAndInfo_item;
-static gint ett_nr_rrc_T_nonCriticalExtension_41;
-static gint ett_nr_rrc_UEAssistanceInformation;
-static gint ett_nr_rrc_T_criticalExtensions_41;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_41;
-static gint ett_nr_rrc_UEAssistanceInformation_IEs;
-static gint ett_nr_rrc_DelayBudgetReport;
-static gint ett_nr_rrc_UEAssistanceInformation_v1540_IEs;
-static gint ett_nr_rrc_OverheatingAssistance;
-static gint ett_nr_rrc_T_reducedMaxMIMO_LayersFR1;
-static gint ett_nr_rrc_T_reducedMaxMIMO_LayersFR2;
-static gint ett_nr_rrc_OverheatingAssistance_r17;
-static gint ett_nr_rrc_T_reducedMaxBW_FR2_2_r17;
-static gint ett_nr_rrc_T_reducedMaxMIMO_LayersFR2_2;
-static gint ett_nr_rrc_UEAssistanceInformation_v1610_IEs;
-static gint ett_nr_rrc_UEAssistanceInformation_v1700_IEs;
-static gint ett_nr_rrc_T_nonSDT_DataIndication_r17;
-static gint ett_nr_rrc_T_nonCriticalExtension_42;
-static gint ett_nr_rrc_IDC_Assistance_r16;
-static gint ett_nr_rrc_AffectedCarrierFreqList_r16;
-static gint ett_nr_rrc_AffectedCarrierFreq_r16;
-static gint ett_nr_rrc_AffectedCarrierFreqCombList_r16;
-static gint ett_nr_rrc_AffectedCarrierFreqComb_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_maxNrofServingCells_OF_ARFCN_ValueNR;
-static gint ett_nr_rrc_VictimSystemType_r16;
-static gint ett_nr_rrc_DRX_Preference_r16;
-static gint ett_nr_rrc_MaxBW_Preference_r16;
-static gint ett_nr_rrc_MaxBW_PreferenceFR2_2_r17;
-static gint ett_nr_rrc_T_reducedMaxBW_FR2_2_r17_01;
-static gint ett_nr_rrc_MaxCC_Preference_r16;
-static gint ett_nr_rrc_MaxMIMO_LayerPreference_r16;
-static gint ett_nr_rrc_T_reducedMaxMIMO_LayersFR1_r16;
-static gint ett_nr_rrc_T_reducedMaxMIMO_LayersFR2_r16;
-static gint ett_nr_rrc_MaxMIMO_LayerPreferenceFR2_2_r17;
-static gint ett_nr_rrc_T_reducedMaxMIMO_LayersFR2_2_r17;
-static gint ett_nr_rrc_MinSchedulingOffsetPreference_r16;
-static gint ett_nr_rrc_T_preferredK0_r16;
-static gint ett_nr_rrc_T_preferredK2_r16;
-static gint ett_nr_rrc_MinSchedulingOffsetPreferenceExt_r17;
-static gint ett_nr_rrc_T_preferredK0_r17;
-static gint ett_nr_rrc_T_preferredK2_r17;
-static gint ett_nr_rrc_MUSIM_Assistance_r17;
-static gint ett_nr_rrc_MUSIM_GapPreferenceList_r17;
-static gint ett_nr_rrc_ReleasePreference_r16;
-static gint ett_nr_rrc_ReducedMaxBW_FRx_r16;
-static gint ett_nr_rrc_ReducedMaxCCs_r16;
-static gint ett_nr_rrc_SL_UE_AssistanceInformationNR_r16;
-static gint ett_nr_rrc_SL_TrafficPatternInfo_r16;
-static gint ett_nr_rrc_UL_GapFR2_Preference_r17;
-static gint ett_nr_rrc_PropagationDelayDifference_r17;
-static gint ett_nr_rrc_UECapabilityEnquiry;
-static gint ett_nr_rrc_T_criticalExtensions_42;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_42;
-static gint ett_nr_rrc_UECapabilityEnquiry_IEs;
-static gint ett_nr_rrc_UECapabilityEnquiry_v1560_IEs;
-static gint ett_nr_rrc_UECapabilityEnquiry_v1610_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_43;
-static gint ett_nr_rrc_UECapabilityInformation;
-static gint ett_nr_rrc_T_criticalExtensions_43;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_43;
-static gint ett_nr_rrc_UECapabilityInformation_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_44;
-static gint ett_nr_rrc_UEInformationRequest_r16;
-static gint ett_nr_rrc_T_criticalExtensions_44;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_44;
-static gint ett_nr_rrc_UEInformationRequest_r16_IEs;
-static gint ett_nr_rrc_UEInformationRequest_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_45;
-static gint ett_nr_rrc_UEInformationResponse_r16;
-static gint ett_nr_rrc_T_criticalExtensions_45;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_45;
-static gint ett_nr_rrc_UEInformationResponse_r16_IEs;
-static gint ett_nr_rrc_UEInformationResponse_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_46;
-static gint ett_nr_rrc_LogMeasReport_r16;
-static gint ett_nr_rrc_LogMeasInfoList_r16;
-static gint ett_nr_rrc_LogMeasInfo_r16;
-static gint ett_nr_rrc_T_measResultNeighCells_r16;
-static gint ett_nr_rrc_ConnEstFailReport_r16;
-static gint ett_nr_rrc_T_measResultNeighCells_r16_01;
-static gint ett_nr_rrc_ConnEstFailReportList_r17;
-static gint ett_nr_rrc_MeasResultServingCell_r16;
-static gint ett_nr_rrc_T_resultsSSB;
-static gint ett_nr_rrc_MeasResultFailedCell_r16;
-static gint ett_nr_rrc_T_measResult_r16;
-static gint ett_nr_rrc_T_cellResults_r16;
-static gint ett_nr_rrc_T_rsIndexResults_r16;
-static gint ett_nr_rrc_RA_ReportList_r16;
-static gint ett_nr_rrc_RA_Report_r16;
-static gint ett_nr_rrc_T_cellId_r16;
-static gint ett_nr_rrc_RA_InformationCommon_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSIB_OF_SIB_Type_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSSBs_r16_OF_SSB_Index;
-static gint ett_nr_rrc_PerRAInfoList_r16;
-static gint ett_nr_rrc_PerRAInfoList_v1660;
-static gint ett_nr_rrc_PerRAInfo_r16;
-static gint ett_nr_rrc_PerRASSBInfo_r16;
-static gint ett_nr_rrc_PerRACSI_RSInfo_r16;
-static gint ett_nr_rrc_PerRACSI_RSInfo_v1660;
-static gint ett_nr_rrc_PerRAAttemptInfoList_r16;
-static gint ett_nr_rrc_PerRAAttemptInfo_r16;
-static gint ett_nr_rrc_RLF_Report_r16;
-static gint ett_nr_rrc_T_nr_RLF_Report_r16;
-static gint ett_nr_rrc_T_measResultNeighCells_r16_02;
-static gint ett_nr_rrc_T_previousPCellId_r16;
-static gint ett_nr_rrc_T_failedPCellId_r16;
-static gint ett_nr_rrc_T_nrFailedPCellId_r16;
-static gint ett_nr_rrc_T_eutraFailedPCellId_r16;
-static gint ett_nr_rrc_T_reconnectCellId_r16;
-static gint ett_nr_rrc_T_choCellId_r17;
-static gint ett_nr_rrc_T_eutra_RLF_Report_r16;
-static gint ett_nr_rrc_SuccessHO_Report_r17;
-static gint ett_nr_rrc_T_sourceCellInfo_r17;
-static gint ett_nr_rrc_T_targetCellInfo_r17;
-static gint ett_nr_rrc_T_measResultNeighCells_r17;
-static gint ett_nr_rrc_MeasResultList2NR_r16;
-static gint ett_nr_rrc_MeasResultList2EUTRA_r16;
-static gint ett_nr_rrc_MeasResult2NR_r16;
-static gint ett_nr_rrc_MeasResultListLogging2NR_r16;
-static gint ett_nr_rrc_MeasResultLogging2NR_r16;
-static gint ett_nr_rrc_MeasResultListLoggingNR_r16;
-static gint ett_nr_rrc_MeasResultLoggingNR_r16;
-static gint ett_nr_rrc_MeasResult2EUTRA_r16;
-static gint ett_nr_rrc_MeasResultRLFNR_r16;
-static gint ett_nr_rrc_T_measResult_r16_01;
-static gint ett_nr_rrc_T_cellResults_r16_01;
-static gint ett_nr_rrc_T_rsIndexResults_r16_01;
-static gint ett_nr_rrc_MeasResultSuccessHONR_r17;
-static gint ett_nr_rrc_T_measResult_r17;
-static gint ett_nr_rrc_T_cellResults_r17;
-static gint ett_nr_rrc_T_rsIndexResults_r17;
-static gint ett_nr_rrc_ChoCandidateCellList_r17;
-static gint ett_nr_rrc_ChoCandidateCell_r17;
-static gint ett_nr_rrc_SHR_Cause_r17;
-static gint ett_nr_rrc_UEPositioningAssistanceInfo_r17;
-static gint ett_nr_rrc_T_criticalExtensions_46;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_46;
-static gint ett_nr_rrc_UEPositioningAssistanceInfo_r17_IEs;
-static gint ett_nr_rrc_UEPositioningAssistanceInfo_v1720_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_47;
-static gint ett_nr_rrc_UE_TxTEG_AssociationList_r17;
-static gint ett_nr_rrc_UE_TxTEG_Association_r17;
-static gint ett_nr_rrc_NR_TimeStamp_r17;
-static gint ett_nr_rrc_T_nr_Slot_r17;
-static gint ett_nr_rrc_ULDedicatedMessageSegment_r16;
-static gint ett_nr_rrc_T_criticalExtensions_47;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_47;
-static gint ett_nr_rrc_ULDedicatedMessageSegment_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_48;
-static gint ett_nr_rrc_ULInformationTransfer;
-static gint ett_nr_rrc_T_criticalExtensions_48;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_48;
-static gint ett_nr_rrc_ULInformationTransfer_IEs;
-static gint ett_nr_rrc_ULInformationTransfer_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_49;
-static gint ett_nr_rrc_ULInformationTransferIRAT_r16;
-static gint ett_nr_rrc_T_criticalExtensions_49;
-static gint ett_nr_rrc_T_c1_16;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_49;
-static gint ett_nr_rrc_ULInformationTransferIRAT_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_50;
-static gint ett_nr_rrc_ULInformationTransferMRDC;
-static gint ett_nr_rrc_T_criticalExtensions_50;
-static gint ett_nr_rrc_T_c1_17;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_50;
-static gint ett_nr_rrc_ULInformationTransferMRDC_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_51;
-static gint ett_nr_rrc_SIB2;
-static gint ett_nr_rrc_T_cellReselectionInfoCommon;
-static gint ett_nr_rrc_T_speedStateReselectionPars;
-static gint ett_nr_rrc_T_q_HystSF;
-static gint ett_nr_rrc_T_cellReselectionServingFreqInfo;
-static gint ett_nr_rrc_T_intraFreqCellReselectionInfo;
-static gint ett_nr_rrc_T_relaxedMeasurement_r16;
-static gint ett_nr_rrc_T_lowMobilityEvaluation_r16;
-static gint ett_nr_rrc_T_cellEdgeEvaluation_r16;
-static gint ett_nr_rrc_T_relaxedMeasurement_r17;
-static gint ett_nr_rrc_T_stationaryMobilityEvaluation_r17;
-static gint ett_nr_rrc_T_cellEdgeEvaluationWhileStationary_r17;
-static gint ett_nr_rrc_SIB3;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_IntraFreqCAG_CellListPerPLMN_r16;
-static gint ett_nr_rrc_IntraFreqNeighCellList;
-static gint ett_nr_rrc_IntraFreqNeighCellList_v1610;
-static gint ett_nr_rrc_IntraFreqNeighCellList_v1710;
-static gint ett_nr_rrc_IntraFreqNeighCellInfo;
-static gint ett_nr_rrc_IntraFreqNeighCellInfo_v1610;
-static gint ett_nr_rrc_IntraFreqNeighCellInfo_v1710;
-static gint ett_nr_rrc_IntraFreqExcludedCellList;
-static gint ett_nr_rrc_IntraFreqAllowedCellList_r16;
-static gint ett_nr_rrc_IntraFreqCAG_CellListPerPLMN_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCAG_Cell_r16_OF_PCI_Range;
-static gint ett_nr_rrc_IntraFreqNeighHSDN_CellList_r17;
-static gint ett_nr_rrc_SIB4;
-static gint ett_nr_rrc_InterFreqCarrierFreqList;
-static gint ett_nr_rrc_InterFreqCarrierFreqList_v1610;
-static gint ett_nr_rrc_InterFreqCarrierFreqList_v1700;
-static gint ett_nr_rrc_InterFreqCarrierFreqList_v1720;
-static gint ett_nr_rrc_InterFreqCarrierFreqList_v1730;
-static gint ett_nr_rrc_InterFreqCarrierFreqList_v1760;
-static gint ett_nr_rrc_InterFreqCarrierFreqInfo;
-static gint ett_nr_rrc_T_threshX_Q;
-static gint ett_nr_rrc_InterFreqCarrierFreqInfo_v1610;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_InterFreqCAG_CellListPerPLMN_r16;
-static gint ett_nr_rrc_InterFreqCarrierFreqInfo_v1700;
-static gint ett_nr_rrc_InterFreqCarrierFreqInfo_v1720;
-static gint ett_nr_rrc_InterFreqCarrierFreqInfo_v1730;
-static gint ett_nr_rrc_InterFreqCarrierFreqInfo_v1760;
-static gint ett_nr_rrc_InterFreqNeighHSDN_CellList_r17;
-static gint ett_nr_rrc_InterFreqNeighCellList;
-static gint ett_nr_rrc_InterFreqNeighCellList_v1610;
-static gint ett_nr_rrc_InterFreqNeighCellList_v1710;
-static gint ett_nr_rrc_InterFreqNeighCellInfo;
-static gint ett_nr_rrc_InterFreqNeighCellInfo_v1610;
-static gint ett_nr_rrc_InterFreqNeighCellInfo_v1710;
-static gint ett_nr_rrc_InterFreqExcludedCellList;
-static gint ett_nr_rrc_InterFreqAllowedCellList_r16;
-static gint ett_nr_rrc_InterFreqCAG_CellListPerPLMN_r16;
-static gint ett_nr_rrc_SIB5;
-static gint ett_nr_rrc_CarrierFreqListEUTRA;
-static gint ett_nr_rrc_CarrierFreqListEUTRA_v1610;
-static gint ett_nr_rrc_CarrierFreqListEUTRA_v1700;
-static gint ett_nr_rrc_CarrierFreqEUTRA;
-static gint ett_nr_rrc_T_threshX_Q_01;
-static gint ett_nr_rrc_CarrierFreqEUTRA_v1610;
-static gint ett_nr_rrc_CarrierFreqEUTRA_v1700;
-static gint ett_nr_rrc_EUTRA_FreqNeighHSDN_CellList_r17;
-static gint ett_nr_rrc_EUTRA_FreqExcludedCellList;
-static gint ett_nr_rrc_EUTRA_FreqNeighCellList;
-static gint ett_nr_rrc_EUTRA_FreqNeighCellInfo;
-static gint ett_nr_rrc_SIB6;
-static gint ett_nr_rrc_SIB7;
-static gint ett_nr_rrc_SIB8;
-static gint ett_nr_rrc_SIB9;
-static gint ett_nr_rrc_T_timeInfo;
-static gint ett_nr_rrc_SIB10_r16;
-static gint ett_nr_rrc_HRNN_List_r16;
-static gint ett_nr_rrc_HRNN_r16;
-static gint ett_nr_rrc_SIB11_r16;
-static gint ett_nr_rrc_SIB12_r16;
-static gint ett_nr_rrc_SIB13_r16;
-static gint ett_nr_rrc_SIB14_r16;
-static gint ett_nr_rrc_SIB15_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_ApplicableDisasterInfo_r17;
-static gint ett_nr_rrc_ApplicableDisasterInfo_r17;
-static gint ett_nr_rrc_SIB16_r17;
-static gint ett_nr_rrc_SIB17_r17;
-static gint ett_nr_rrc_SIB18_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxGIN_r17_OF_GIN_Element_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_GINs_PerSNPN_r17;
-static gint ett_nr_rrc_GIN_Element_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxGIN_r17_OF_NID_r16;
-static gint ett_nr_rrc_GINs_PerSNPN_r17;
-static gint ett_nr_rrc_SIB19_r17;
-static gint ett_nr_rrc_NTN_NeighCellConfigList_r17;
-static gint ett_nr_rrc_NTN_NeighCellConfig_r17;
-static gint ett_nr_rrc_SIB20_r17;
-static gint ett_nr_rrc_MCCH_Config_r17;
-static gint ett_nr_rrc_MCCH_RepetitionPeriodAndOffset_r17;
-static gint ett_nr_rrc_SIB21_r17;
-static gint ett_nr_rrc_MBS_FSAI_List_r17;
-static gint ett_nr_rrc_MBS_FSAI_InterFreqList_r17;
-static gint ett_nr_rrc_MBS_FSAI_InterFreq_r17;
-static gint ett_nr_rrc_PosSystemInformation_r16_IEs;
-static gint ett_nr_rrc_T_posSIB_TypeAndInfo_r16;
-static gint ett_nr_rrc_T_posSIB_TypeAndInfo_r16_item;
-static gint ett_nr_rrc_T_nonCriticalExtension_52;
-static gint ett_nr_rrc_PosSI_SchedulingInfo_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_PosSchedulingInfo_r16;
-static gint ett_nr_rrc_PosSchedulingInfo_r16;
-static gint ett_nr_rrc_PosSIB_MappingInfo_r16;
-static gint ett_nr_rrc_PosSIB_Type_r16;
-static gint ett_nr_rrc_GNSS_ID_r16;
-static gint ett_nr_rrc_SBAS_ID_r16;
-static gint ett_nr_rrc_SIBpos_r16;
-static gint ett_nr_rrc_AvailabilityCombinationsPerCell_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAvailabilityCombinationsPerSet_r16_OF_AvailabilityCombination_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAvailabilityCombinationsPerSet_r16_OF_AvailabilityCombinationRB_Groups_r17;
-static gint ett_nr_rrc_AvailabilityCombination_r16;
-static gint ett_nr_rrc_T_resourceAvailability_r16;
-static gint ett_nr_rrc_AvailabilityCombinationRB_Groups_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRB_SetGroups_r17_OF_RB_SetGroup_r17;
-static gint ett_nr_rrc_T_resourceAvailability_r17;
-static gint ett_nr_rrc_RB_SetGroup_r17;
-static gint ett_nr_rrc_T_resourceAvailability_r17_01;
-static gint ett_nr_rrc_T_rb_Sets_r17;
-static gint ett_nr_rrc_AvailabilityIndicator_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDUCells_r16_OF_AvailabilityCombinationsPerCell_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDUCells_r16_OF_AvailabilityCombinationsPerCellIndex_r16;
-static gint ett_nr_rrc_BAP_RoutingID_r16;
-static gint ett_nr_rrc_BeamFailureRecoveryConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR;
-static gint ett_nr_rrc_T_candidateBeamRSListExt_v1610;
-static gint ett_nr_rrc_PRACH_ResourceDedicatedBFR;
-static gint ett_nr_rrc_BFR_SSB_Resource;
-static gint ett_nr_rrc_BFR_CSIRS_Resource;
-static gint ett_nr_rrc_T_ra_OccasionList;
-static gint ett_nr_rrc_CandidateBeamRSListExt_r16;
-static gint ett_nr_rrc_BeamFailureRecoveryRSConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_r16_OF_CandidateBeamRS_r16;
-static gint ett_nr_rrc_BetaOffsets;
-static gint ett_nr_rrc_BetaOffsetsCrossPri_r17;
-static gint ett_nr_rrc_BH_LogicalChannelIdentity_r16;
-static gint ett_nr_rrc_BH_RLC_ChannelConfig_r16;
-static gint ett_nr_rrc_BSR_Config;
-static gint ett_nr_rrc_BWP;
-static gint ett_nr_rrc_BWP_Downlink;
-static gint ett_nr_rrc_BWP_DownlinkCommon;
-static gint ett_nr_rrc_T_pdcch_ConfigCommon;
-static gint ett_nr_rrc_T_pdsch_ConfigCommon;
-static gint ett_nr_rrc_BWP_DownlinkDedicated;
-static gint ett_nr_rrc_T_pdcch_Config;
-static gint ett_nr_rrc_T_pdsch_Config;
-static gint ett_nr_rrc_T_sps_Config;
-static gint ett_nr_rrc_T_radioLinkMonitoringConfig;
-static gint ett_nr_rrc_T_beamFailureRecoverySCellConfig_r16;
-static gint ett_nr_rrc_T_sl_PDCCH_Config_r16;
-static gint ett_nr_rrc_T_sl_V2X_PDCCH_Config_r16;
-static gint ett_nr_rrc_T_beamFailureRecoverySpCellConfig_r17;
-static gint ett_nr_rrc_T_cfr_ConfigMulticast_r17;
-static gint ett_nr_rrc_SPS_ConfigToAddModList_r16;
-static gint ett_nr_rrc_SPS_ConfigToReleaseList_r16;
-static gint ett_nr_rrc_SPS_ConfigDeactivationState_r16;
-static gint ett_nr_rrc_SPS_ConfigDeactivationStateList_r16;
-static gint ett_nr_rrc_DL_PPW_PreConfigToAddModList_r17;
-static gint ett_nr_rrc_DL_PPW_PreConfigToReleaseList_r17;
-static gint ett_nr_rrc_BWP_Uplink;
-static gint ett_nr_rrc_BWP_UplinkCommon;
-static gint ett_nr_rrc_T_rach_ConfigCommon;
-static gint ett_nr_rrc_T_pusch_ConfigCommon;
-static gint ett_nr_rrc_T_pucch_ConfigCommon;
-static gint ett_nr_rrc_T_rach_ConfigCommonIAB_r16;
-static gint ett_nr_rrc_T_msgA_ConfigCommon_r16;
-static gint ett_nr_rrc_T_additionalRACH_ConfigList_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_4_OF_NumberOfMsg3_Repetitions_r17;
-static gint ett_nr_rrc_T_mcs_Msg3_Repetitions_r17;
-static gint ett_nr_rrc_AdditionalRACH_ConfigList_r17;
-static gint ett_nr_rrc_AdditionalRACH_Config_r17;
-static gint ett_nr_rrc_BWP_UplinkDedicated;
-static gint ett_nr_rrc_T_pucch_Config;
-static gint ett_nr_rrc_T_pusch_Config;
-static gint ett_nr_rrc_T_configuredGrantConfig;
-static gint ett_nr_rrc_T_srs_Config;
-static gint ett_nr_rrc_T_beamFailureRecoveryConfig;
-static gint ett_nr_rrc_T_sl_PUCCH_Config_r16;
-static gint ett_nr_rrc_T_pucch_ConfigurationList_r16;
-static gint ett_nr_rrc_T_lbt_FailureRecoveryConfig_r16;
-static gint ett_nr_rrc_T_ul_TCI_StateList_r17;
-static gint ett_nr_rrc_T_explicitlist;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_TCI_UL_State_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_TCI_UL_StateId_r17;
-static gint ett_nr_rrc_T_pucch_ConfigurationListMulticast1_r17;
-static gint ett_nr_rrc_T_pucch_ConfigurationListMulticast2_r17;
-static gint ett_nr_rrc_T_pucch_ConfigMulticast1_r17;
-static gint ett_nr_rrc_T_pucch_ConfigMulticast2_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPathlossReferenceRSs_r17_OF_PathlossReferenceRS_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPathlossReferenceRSs_r17_OF_PathlossReferenceRS_Id_r17;
-static gint ett_nr_rrc_ConfiguredGrantConfigToAddModList_r16;
-static gint ett_nr_rrc_ConfiguredGrantConfigToReleaseList_r16;
-static gint ett_nr_rrc_ConfiguredGrantConfigType2DeactivationState_r16;
-static gint ett_nr_rrc_ConfiguredGrantConfigType2DeactivationStateList_r16;
-static gint ett_nr_rrc_CandidateBeamRS_r16;
-static gint ett_nr_rrc_T_candidateBeamConfig_r16;
-static gint ett_nr_rrc_CellAccessRelatedInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_SNPN_AccessInfo_r17;
-static gint ett_nr_rrc_SNPN_AccessInfo_r17;
-static gint ett_nr_rrc_CellAccessRelatedInfo_EUTRA_5GC;
-static gint ett_nr_rrc_PLMN_IdentityList_EUTRA_5GC;
-static gint ett_nr_rrc_PLMN_Identity_EUTRA_5GC;
-static gint ett_nr_rrc_CellIdentity_EUTRA_5GC;
-static gint ett_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC;
-static gint ett_nr_rrc_PLMN_IdentityList_EUTRA_EPC;
-static gint ett_nr_rrc_CellGroupConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_BearerConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBH_RLC_ChannelID_r16_OF_BH_RLC_ChannelConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBH_RLC_ChannelID_r16_OF_BH_RLC_ChannelID_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsTCI_r16_OF_ServCellIndex;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUu_RelayRLC_ChannelID_r17_OF_Uu_RelayRLC_ChannelConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUu_RelayRLC_ChannelID_r17_OF_Uu_RelayRLC_ChannelID_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentityExt_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofIABResourceConfig_r17_OF_IAB_ResourceConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofIABResourceConfig_r17_OF_IAB_ResourceConfigID_r17;
-static gint ett_nr_rrc_SpCellConfig;
-static gint ett_nr_rrc_T_rlf_TimersAndConstants;
-static gint ett_nr_rrc_T_lowMobilityEvaluationConnected_r17;
-static gint ett_nr_rrc_T_deactivatedSCG_Config_r17;
-static gint ett_nr_rrc_ReconfigurationWithSync;
-static gint ett_nr_rrc_T_rach_ConfigDedicated;
-static gint ett_nr_rrc_DAPS_UplinkPowerConfig_r16;
-static gint ett_nr_rrc_SCellConfig;
-static gint ett_nr_rrc_T_sCellSIB20_r17;
-static gint ett_nr_rrc_T_plmn_IdentityInfoList_r17;
-static gint ett_nr_rrc_T_npn_IdentityInfoList_r17;
-static gint ett_nr_rrc_DeactivatedSCG_Config_r17;
-static gint ett_nr_rrc_GoodServingCellEvaluation_r17;
-static gint ett_nr_rrc_SL_PathSwitchConfig_r17;
-static gint ett_nr_rrc_IAB_ResourceConfig_r17;
-static gint ett_nr_rrc_T_slotList_r17;
-static gint ett_nr_rrc_ReportUplinkTxDirectCurrentMoreCarrier_r17;
-static gint ett_nr_rrc_IntraBandCC_CombinationReqList_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReqComDC_Location_r17_OF_IntraBandCC_Combination_r17;
-static gint ett_nr_rrc_IntraBandCC_Combination_r17;
-static gint ett_nr_rrc_CC_State_r17;
-static gint ett_nr_rrc_CarrierState_r17;
-static gint ett_nr_rrc_CFR_ConfigMulticast_r17;
-static gint ett_nr_rrc_SPS_ConfigMulticastToAddModList_r17;
-static gint ett_nr_rrc_SPS_ConfigMulticastToReleaseList_r17;
-static gint ett_nr_rrc_CGI_InfoEUTRA;
-static gint ett_nr_rrc_T_cgi_info_EPC;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC;
-static gint ett_nr_rrc_CGI_InfoEUTRALogging;
-static gint ett_nr_rrc_CGI_InfoNR;
-static gint ett_nr_rrc_T_noSIB1;
-static gint ett_nr_rrc_CGI_Info_Logging_r16;
-static gint ett_nr_rrc_CodebookConfig;
-static gint ett_nr_rrc_T_codebookType;
-static gint ett_nr_rrc_T_type1_01;
-static gint ett_nr_rrc_T_subType;
-static gint ett_nr_rrc_T_typeI_SinglePanel;
-static gint ett_nr_rrc_T_nrOfAntennaPorts;
-static gint ett_nr_rrc_T_two;
-static gint ett_nr_rrc_T_moreThanTwo;
-static gint ett_nr_rrc_T_n1_n2;
-static gint ett_nr_rrc_T_typeI_MultiPanel;
-static gint ett_nr_rrc_T_ng_n1_n2;
-static gint ett_nr_rrc_T_type2;
-static gint ett_nr_rrc_T_subType_01;
-static gint ett_nr_rrc_T_typeII;
-static gint ett_nr_rrc_T_n1_n2_codebookSubsetRestriction;
-static gint ett_nr_rrc_T_typeII_PortSelection;
-static gint ett_nr_rrc_CodebookConfig_r16;
-static gint ett_nr_rrc_T_codebookType_01;
-static gint ett_nr_rrc_T_type2_01;
-static gint ett_nr_rrc_T_subType_02;
-static gint ett_nr_rrc_T_typeII_r16;
-static gint ett_nr_rrc_T_n1_n2_codebookSubsetRestriction_r16;
-static gint ett_nr_rrc_T_typeII_PortSelection_r16;
-static gint ett_nr_rrc_CodebookConfig_r17;
-static gint ett_nr_rrc_T_codebookType_02;
-static gint ett_nr_rrc_T_type1_02;
-static gint ett_nr_rrc_T_typeI_SinglePanel_Group1_r17;
-static gint ett_nr_rrc_T_nrOfAntennaPorts_01;
-static gint ett_nr_rrc_T_two_01;
-static gint ett_nr_rrc_T_moreThanTwo_01;
-static gint ett_nr_rrc_T_n1_n2_01;
-static gint ett_nr_rrc_T_typeI_SinglePanel_Group2_r17;
-static gint ett_nr_rrc_T_nrOfAntennaPorts_02;
-static gint ett_nr_rrc_T_two_02;
-static gint ett_nr_rrc_T_moreThanTwo_02;
-static gint ett_nr_rrc_T_n1_n2_02;
-static gint ett_nr_rrc_T_type2_02;
-static gint ett_nr_rrc_T_typeII_PortSelection_r17;
-static gint ett_nr_rrc_CodebookConfig_v1730;
-static gint ett_nr_rrc_T_codebookType_03;
-static gint ett_nr_rrc_T_type1_03;
-static gint ett_nr_rrc_CommonLocationInfo_r16;
-static gint ett_nr_rrc_CondReconfigToAddModList_r16;
-static gint ett_nr_rrc_CondReconfigToAddMod_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_MeasId;
-static gint ett_nr_rrc_CondReconfigExecCondSCG_r17;
-static gint ett_nr_rrc_ConditionalReconfiguration_r16;
-static gint ett_nr_rrc_CondReconfigToRemoveList_r16;
-static gint ett_nr_rrc_ConfiguredGrantConfig;
-static gint ett_nr_rrc_T_uci_OnPUSCH;
-static gint ett_nr_rrc_T_rrc_ConfiguredUplinkGrant;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_1709_OF_CG_COT_Sharing_r16;
-static gint ett_nr_rrc_T_cg_betaOffsetsCrossPri0_r17;
-static gint ett_nr_rrc_T_cg_betaOffsetsCrossPri1_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_50722_OF_CG_COT_Sharing_r17;
-static gint ett_nr_rrc_CG_UCI_OnPUSCH;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets;
-static gint ett_nr_rrc_CG_COT_Sharing_r16;
-static gint ett_nr_rrc_T_cot_Sharing_r16;
-static gint ett_nr_rrc_CG_COT_Sharing_r17;
-static gint ett_nr_rrc_T_cot_Sharing_r17;
-static gint ett_nr_rrc_CG_StartingOffsets_r16;
-static gint ett_nr_rrc_T_cg_StartingFullBW_InsideCOT_r16;
-static gint ett_nr_rrc_T_cg_StartingFullBW_OutsideCOT_r16;
-static gint ett_nr_rrc_BetaOffsetsCrossPriSelCG_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsetsCrossPri_r17;
-static gint ett_nr_rrc_CG_SDT_Configuration_r17;
-static gint ett_nr_rrc_T_sdt_SSB_Subset_r17;
-static gint ett_nr_rrc_T_sdt_DMRS_Ports_r17;
-static gint ett_nr_rrc_ConnEstFailureControl;
-static gint ett_nr_rrc_ControlResourceSet;
-static gint ett_nr_rrc_T_cce_REG_MappingType;
-static gint ett_nr_rrc_T_interleaved;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId;
-static gint ett_nr_rrc_CrossCarrierSchedulingConfig;
-static gint ett_nr_rrc_T_schedulingCellInfo;
-static gint ett_nr_rrc_T_own;
-static gint ett_nr_rrc_T_other;
-static gint ett_nr_rrc_T_carrierIndicatorSize_r16;
-static gint ett_nr_rrc_CSI_AperiodicTriggerStateList;
-static gint ett_nr_rrc_CSI_AperiodicTriggerState;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo;
-static gint ett_nr_rrc_CSI_AssociatedReportConfigInfo;
-static gint ett_nr_rrc_T_resourcesForChannel;
-static gint ett_nr_rrc_T_nzp_CSI_RS;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId;
-static gint ett_nr_rrc_T_resourcesForChannel2_r17;
-static gint ett_nr_rrc_T_nzp_CSI_RS2_r17;
-static gint ett_nr_rrc_CSI_FrequencyOccupation;
-static gint ett_nr_rrc_CSI_IM_Resource;
-static gint ett_nr_rrc_T_csi_IM_ResourceElementPattern;
-static gint ett_nr_rrc_T_pattern0;
-static gint ett_nr_rrc_T_pattern1;
-static gint ett_nr_rrc_CSI_IM_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId;
-static gint ett_nr_rrc_CSI_MeasConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId;
-static gint ett_nr_rrc_T_aperiodicTriggerStateList;
-static gint ett_nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCellActRS_r17_OF_SCellActivationRS_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCellActRS_r17_OF_SCellActivationRS_ConfigId_r17;
-static gint ett_nr_rrc_CSI_ReportConfig;
-static gint ett_nr_rrc_T_reportConfigType;
-static gint ett_nr_rrc_T_periodic;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource;
-static gint ett_nr_rrc_T_semiPersistentOnPUCCH;
-static gint ett_nr_rrc_T_semiPersistentOnPUSCH;
-static gint ett_nr_rrc_T_reportSlotOffsetList;
-static gint ett_nr_rrc_T_aperiodic;
-static gint ett_nr_rrc_T_reportSlotOffsetList_01;
-static gint ett_nr_rrc_T_reportQuantity;
-static gint ett_nr_rrc_T_cri_RI_i1_CQI;
-static gint ett_nr_rrc_T_reportFreqConfiguration;
-static gint ett_nr_rrc_T_csi_ReportingBand;
-static gint ett_nr_rrc_T_groupBasedBeamReporting;
-static gint ett_nr_rrc_T_disabled;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks;
-static gint ett_nr_rrc_T_semiPersistentOnPUSCH_v1530;
-static gint ett_nr_rrc_T_semiPersistentOnPUSCH_v1610;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r16;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r16;
-static gint ett_nr_rrc_T_aperiodic_v1610;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r16_01;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r16_01;
-static gint ett_nr_rrc_T_reportQuantity_r16;
-static gint ett_nr_rrc_T_groupBasedBeamReporting_v1710;
-static gint ett_nr_rrc_T_reportQuantity_r17;
-static gint ett_nr_rrc_T_semiPersistentOnPUSCH_v1720;
-static gint ett_nr_rrc_T_reportSlotOffsetList_r17;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r17;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r17;
-static gint ett_nr_rrc_T_aperiodic_v1720;
-static gint ett_nr_rrc_T_reportSlotOffsetList_r17_01;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r17_01;
-static gint ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r17_01;
-static gint ett_nr_rrc_CSI_ReportPeriodicityAndOffset;
-static gint ett_nr_rrc_PUCCH_CSI_Resource;
-static gint ett_nr_rrc_PortIndexFor8Ranks;
-static gint ett_nr_rrc_T_portIndex8;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_OF_PortIndex8;
-static gint ett_nr_rrc_SEQUENCE_SIZE_3_OF_PortIndex8;
-static gint ett_nr_rrc_SEQUENCE_SIZE_4_OF_PortIndex8;
-static gint ett_nr_rrc_SEQUENCE_SIZE_5_OF_PortIndex8;
-static gint ett_nr_rrc_SEQUENCE_SIZE_6_OF_PortIndex8;
-static gint ett_nr_rrc_SEQUENCE_SIZE_7_OF_PortIndex8;
-static gint ett_nr_rrc_SEQUENCE_SIZE_8_OF_PortIndex8;
-static gint ett_nr_rrc_T_portIndex4;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_OF_PortIndex4;
-static gint ett_nr_rrc_SEQUENCE_SIZE_3_OF_PortIndex4;
-static gint ett_nr_rrc_SEQUENCE_SIZE_4_OF_PortIndex4;
-static gint ett_nr_rrc_T_portIndex2;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_OF_PortIndex2;
-static gint ett_nr_rrc_CSI_ResourceConfig;
-static gint ett_nr_rrc_T_csi_RS_ResourceSetList;
-static gint ett_nr_rrc_T_nzp_CSI_RS_SSB;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId;
-static gint ett_nr_rrc_CSI_ResourcePeriodicityAndOffset;
-static gint ett_nr_rrc_CSI_RS_ResourceConfigMobility;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility;
-static gint ett_nr_rrc_CSI_RS_CellMobility;
-static gint ett_nr_rrc_T_csi_rs_MeasurementBW;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility;
-static gint ett_nr_rrc_CSI_RS_Resource_Mobility;
-static gint ett_nr_rrc_T_slotConfig;
-static gint ett_nr_rrc_T_associatedSSB;
-static gint ett_nr_rrc_T_frequencyDomainAllocation;
-static gint ett_nr_rrc_T_slotConfig_r17;
-static gint ett_nr_rrc_CSI_RS_ResourceMapping;
-static gint ett_nr_rrc_T_frequencyDomainAllocation_01;
-static gint ett_nr_rrc_T_density_01;
-static gint ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList;
-static gint ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerState;
-static gint ett_nr_rrc_CSI_SSB_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_ServingAdditionalPCIIndex_r17;
-static gint ett_nr_rrc_DL_PPW_PreConfig_r17;
-static gint ett_nr_rrc_DL_PPW_PeriodicityAndStartSlot_r17;
-static gint ett_nr_rrc_T_scs15;
-static gint ett_nr_rrc_T_scs30;
-static gint ett_nr_rrc_T_scs60;
-static gint ett_nr_rrc_T_scs120;
-static gint ett_nr_rrc_DMRS_BundlingPUCCH_Config_r17;
-static gint ett_nr_rrc_DMRS_BundlingPUSCH_Config_r17;
-static gint ett_nr_rrc_DMRS_DownlinkConfig;
-static gint ett_nr_rrc_T_phaseTrackingRS;
-static gint ett_nr_rrc_DMRS_UplinkConfig;
-static gint ett_nr_rrc_T_phaseTrackingRS_01;
-static gint ett_nr_rrc_T_transformPrecodingDisabled;
-static gint ett_nr_rrc_T_transformPrecodingEnabled;
-static gint ett_nr_rrc_T_dmrs_UplinkTransformPrecoding_r16;
-static gint ett_nr_rrc_DMRS_UplinkTransformPrecoding_r16;
-static gint ett_nr_rrc_DownlinkConfigCommon;
-static gint ett_nr_rrc_DownlinkConfigCommonSIB;
-static gint ett_nr_rrc_DownlinkConfigCommonSIB_v1760;
-static gint ett_nr_rrc_BCCH_Config;
-static gint ett_nr_rrc_PCCH_Config;
-static gint ett_nr_rrc_T_nAndPagingFrameOffset;
-static gint ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO;
-static gint ett_nr_rrc_T_sCS15KHZoneT;
-static gint ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT;
-static gint ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT;
-static gint ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT;
-static gint ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT;
-static gint ett_nr_rrc_T_sCS480KHZoneT_SCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT;
-static gint ett_nr_rrc_T_sCS480KHZhalfT_SCS120KHZoneEighthT_SCS60KHZoneSixteenthT;
-static gint ett_nr_rrc_T_sCS480KHZquarterT_SCS120KHZoneSixteenthT;
-static gint ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_v1710;
-static gint ett_nr_rrc_T_sCS480KHZoneEighthT;
-static gint ett_nr_rrc_T_sCS480KHZoneSixteenthT;
-static gint ett_nr_rrc_PEI_Config_r17;
-static gint ett_nr_rrc_SubgroupConfig_r17;
-static gint ett_nr_rrc_DownlinkPreemption;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell;
-static gint ett_nr_rrc_INT_ConfigurationPerServingCell;
-static gint ett_nr_rrc_DRX_Config;
-static gint ett_nr_rrc_T_drx_onDurationTimer_01;
-static gint ett_nr_rrc_T_drx_LongCycleStartOffset_01;
-static gint ett_nr_rrc_T_shortDRX_01;
-static gint ett_nr_rrc_DRX_ConfigExt_v1700;
-static gint ett_nr_rrc_DRX_ConfigSecondaryGroup_r16;
-static gint ett_nr_rrc_T_drx_onDurationTimer_r16;
-static gint ett_nr_rrc_DRX_ConfigSL_r17;
-static gint ett_nr_rrc_EphemerisInfo_r17;
-static gint ett_nr_rrc_PositionVelocity_r17;
-static gint ett_nr_rrc_Orbital_r17;
-static gint ett_nr_rrc_FeatureCombination_r17;
-static gint ett_nr_rrc_NSAG_List_r17;
-static gint ett_nr_rrc_FeatureCombinationPreambles_r17;
-static gint ett_nr_rrc_T_groupBconfigured_r17;
-static gint ett_nr_rrc_FreqPriorityListDedicatedSlicing_r17;
-static gint ett_nr_rrc_FreqPriorityDedicatedSlicing_r17;
-static gint ett_nr_rrc_SliceInfoListDedicated_r17;
-static gint ett_nr_rrc_SliceInfoDedicated_r17;
-static gint ett_nr_rrc_FreqPriorityListSlicing_r17;
-static gint ett_nr_rrc_FreqPrioritySlicing_r17;
-static gint ett_nr_rrc_SliceInfoList_r17;
-static gint ett_nr_rrc_SliceInfo_r17;
-static gint ett_nr_rrc_T_sliceCellListNR_r17;
-static gint ett_nr_rrc_SliceCellListNR_r17;
-static gint ett_nr_rrc_FrequencyInfoDL;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier;
-static gint ett_nr_rrc_FrequencyInfoDL_SIB;
-static gint ett_nr_rrc_FrequencyInfoDL_SIB_v1760;
-static gint ett_nr_rrc_FrequencyInfoUL;
-static gint ett_nr_rrc_FrequencyInfoUL_SIB;
-static gint ett_nr_rrc_FrequencyInfoUL_SIB_v1760;
-static gint ett_nr_rrc_HighSpeedConfig_r16;
-static gint ett_nr_rrc_HighSpeedConfig_v1700;
-static gint ett_nr_rrc_HighSpeedConfigFR2_r17;
-static gint ett_nr_rrc_InvalidSymbolPattern_r16;
-static gint ett_nr_rrc_T_symbols_r16;
-static gint ett_nr_rrc_T_periodicityAndPattern_r16;
-static gint ett_nr_rrc_LBT_FailureRecoveryConfig_r16;
-static gint ett_nr_rrc_LocationInfo_r16;
-static gint ett_nr_rrc_LocationMeasurementInfo;
-static gint ett_nr_rrc_EUTRA_RSTD_InfoList;
-static gint ett_nr_rrc_EUTRA_RSTD_Info;
-static gint ett_nr_rrc_NR_PRS_MeasurementInfoList_r16;
-static gint ett_nr_rrc_NR_PRS_MeasurementInfo_r16;
-static gint ett_nr_rrc_T_nr_MeasPRS_RepetitionAndOffset_r16;
-static gint ett_nr_rrc_LogicalChannelConfig;
-static gint ett_nr_rrc_T_ul_SpecificParameters;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing;
-static gint ett_nr_rrc_LTE_NeighCellsCRS_AssistInfoList_r17;
-static gint ett_nr_rrc_LTE_NeighCellsCRS_AssistInfo_r17;
-static gint ett_nr_rrc_MAC_CellGroupConfig;
-static gint ett_nr_rrc_T_drx_Config;
-static gint ett_nr_rrc_T_phr_Config;
-static gint ett_nr_rrc_T_dataInactivityTimer;
-static gint ett_nr_rrc_T_drx_ConfigSecondaryGroup_r16;
-static gint ett_nr_rrc_T_drx_ConfigSL_r17;
-static gint ett_nr_rrc_T_drx_ConfigExt_v1700;
-static gint ett_nr_rrc_T_tar_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxG_RNTI_r17_OF_MBS_RNTI_SpecificConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxG_RNTI_r17_OF_MBS_RNTI_SpecificConfigId_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxG_CS_RNTI_r17_OF_MBS_RNTI_SpecificConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxG_CS_RNTI_r17_OF_MBS_RNTI_SpecificConfigId_r17;
-static gint ett_nr_rrc_MBS_RNTI_SpecificConfig_r17;
-static gint ett_nr_rrc_T_groupCommon_RNTI_r17;
-static gint ett_nr_rrc_T_drx_ConfigPTM_r17;
-static gint ett_nr_rrc_MeasConfig;
-static gint ett_nr_rrc_T_s_MeasureConfig;
-static gint ett_nr_rrc_MeasObjectToRemoveList;
-static gint ett_nr_rrc_MeasIdToRemoveList;
-static gint ett_nr_rrc_ReportConfigToRemoveList;
-static gint ett_nr_rrc_MeasGapConfig;
-static gint ett_nr_rrc_T_gapFR2;
-static gint ett_nr_rrc_T_gapFR1;
-static gint ett_nr_rrc_T_gapUE;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofGapId_r17_OF_GapConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofGapId_r17_OF_MeasGapId_r17;
-static gint ett_nr_rrc_GapConfig;
-static gint ett_nr_rrc_GapConfig_r17;
-static gint ett_nr_rrc_PosMeasGapPreConfigToAddModList_r17;
-static gint ett_nr_rrc_PosMeasGapPreConfigToReleaseList_r17;
-static gint ett_nr_rrc_PosGapConfig_r17;
-static gint ett_nr_rrc_MeasGapSharingConfig;
-static gint ett_nr_rrc_T_gapSharingFR2;
-static gint ett_nr_rrc_T_gapSharingFR1;
-static gint ett_nr_rrc_T_gapSharingUE;
-static gint ett_nr_rrc_MeasIdleConfigSIB_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasIdleCarrierNR_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasIdleCarrierEUTRA_r16;
-static gint ett_nr_rrc_MeasIdleConfigDedicated_r16;
-static gint ett_nr_rrc_ValidityAreaList_r16;
-static gint ett_nr_rrc_ValidityArea_r16;
-static gint ett_nr_rrc_ValidityCellList;
-static gint ett_nr_rrc_MeasIdleCarrierNR_r16;
-static gint ett_nr_rrc_T_qualityThreshold_r16;
-static gint ett_nr_rrc_T_ssb_MeasConfig_r16;
-static gint ett_nr_rrc_MeasIdleCarrierEUTRA_r16;
-static gint ett_nr_rrc_T_qualityThresholdEUTRA_r16;
-static gint ett_nr_rrc_CellListNR_r16;
-static gint ett_nr_rrc_CellListEUTRA_r16;
-static gint ett_nr_rrc_BeamMeasConfigIdle_NR_r16;
-static gint ett_nr_rrc_MeasIdToAddModList;
-static gint ett_nr_rrc_MeasIdToAddMod;
-static gint ett_nr_rrc_MeasObjectCLI_r16;
-static gint ett_nr_rrc_CLI_ResourceConfig_r16;
-static gint ett_nr_rrc_T_srs_ResourceConfig_r16;
-static gint ett_nr_rrc_T_rssi_ResourceConfig_r16;
-static gint ett_nr_rrc_SRS_ResourceListConfigCLI_r16;
-static gint ett_nr_rrc_RSSI_ResourceListConfigCLI_r16;
-static gint ett_nr_rrc_SRS_ResourceConfigCLI_r16;
-static gint ett_nr_rrc_RSSI_ResourceConfigCLI_r16;
-static gint ett_nr_rrc_RSSI_PeriodicityAndOffset_r16;
-static gint ett_nr_rrc_MeasObjectEUTRA;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_ExcludedCell;
-static gint ett_nr_rrc_EUTRA_CellIndexList;
-static gint ett_nr_rrc_EUTRA_Cell;
-static gint ett_nr_rrc_EUTRA_ExcludedCell;
-static gint ett_nr_rrc_MeasObjectNR;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement;
-static gint ett_nr_rrc_T_rmtc_Config_r16;
-static gint ett_nr_rrc_T_t312_r16;
-static gint ett_nr_rrc_SSB_MTC3List_r16;
-static gint ett_nr_rrc_SSB_MTC4List_r17;
-static gint ett_nr_rrc_ReferenceSignalConfig;
-static gint ett_nr_rrc_T_csi_rs_ResourceConfigMobility;
-static gint ett_nr_rrc_SSB_ConfigMobility;
-static gint ett_nr_rrc_T_ssb_ToMeasure;
-static gint ett_nr_rrc_T_ssb_PositionQCL_Cells_r17;
-static gint ett_nr_rrc_Q_OffsetRangeList;
-static gint ett_nr_rrc_ThresholdNR;
-static gint ett_nr_rrc_CellsToAddModList;
-static gint ett_nr_rrc_CellsToAddModListExt_v1710;
-static gint ett_nr_rrc_CellsToAddMod;
-static gint ett_nr_rrc_CellsToAddModExt_v1710;
-static gint ett_nr_rrc_RMTC_Config_r16;
-static gint ett_nr_rrc_T_tci_StateInfo_r17;
-static gint ett_nr_rrc_SSB_PositionQCL_CellsToAddModList_r16;
-static gint ett_nr_rrc_SSB_PositionQCL_CellsToAddMod_r16;
-static gint ett_nr_rrc_SSB_PositionQCL_CellList_r17;
-static gint ett_nr_rrc_SSB_PositionQCL_Cell_r17;
-static gint ett_nr_rrc_MeasObjectNR_SL_r16;
-static gint ett_nr_rrc_Tx_PoolMeasList_r16;
-static gint ett_nr_rrc_MeasObjectRxTxDiff_r17;
-static gint ett_nr_rrc_T_dl_Ref_r17;
-static gint ett_nr_rrc_MeasObjectToAddModList;
-static gint ett_nr_rrc_MeasObjectToAddMod;
-static gint ett_nr_rrc_T_measObject;
-static gint ett_nr_rrc_MeasObjectUTRA_FDD_r16;
-static gint ett_nr_rrc_CellsToAddModListUTRA_FDD_r16;
-static gint ett_nr_rrc_CellsToAddModUTRA_FDD_r16;
-static gint ett_nr_rrc_UTRA_FDD_CellIndexList_r16;
-static gint ett_nr_rrc_MeasResultCellListSFTD_NR;
-static gint ett_nr_rrc_MeasResultCellSFTD_NR;
-static gint ett_nr_rrc_MeasResultCellListSFTD_EUTRA;
-static gint ett_nr_rrc_MeasResultSFTD_EUTRA;
-static gint ett_nr_rrc_MeasResults;
-static gint ett_nr_rrc_T_measResultNeighCells;
-static gint ett_nr_rrc_MeasResultServMOList;
-static gint ett_nr_rrc_MeasResultServMO;
-static gint ett_nr_rrc_MeasResultListNR;
-static gint ett_nr_rrc_MeasResultNR;
-static gint ett_nr_rrc_T_measResult;
-static gint ett_nr_rrc_T_cellResults;
-static gint ett_nr_rrc_T_rsIndexResults;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_CondTriggerConfig_r16;
-static gint ett_nr_rrc_T_triggeredEvent_r17;
-static gint ett_nr_rrc_MeasResultListEUTRA;
-static gint ett_nr_rrc_MeasResultEUTRA;
-static gint ett_nr_rrc_MultiBandInfoListEUTRA;
-static gint ett_nr_rrc_MeasQuantityResults;
-static gint ett_nr_rrc_MeasQuantityResultsEUTRA;
-static gint ett_nr_rrc_ResultsPerSSB_IndexList;
-static gint ett_nr_rrc_ResultsPerSSB_Index;
-static gint ett_nr_rrc_ResultsPerCSI_RS_IndexList;
-static gint ett_nr_rrc_ResultsPerCSI_RS_Index;
-static gint ett_nr_rrc_MeasResultServFreqListEUTRA_SCG;
-static gint ett_nr_rrc_MeasResultServFreqListNR_SCG;
-static gint ett_nr_rrc_MeasResultListUTRA_FDD_r16;
-static gint ett_nr_rrc_MeasResultUTRA_FDD_r16;
-static gint ett_nr_rrc_T_measResult_r16_02;
-static gint ett_nr_rrc_MeasResultForRSSI_r16;
-static gint ett_nr_rrc_MeasResultCLI_r16;
-static gint ett_nr_rrc_MeasResultListSRS_RSRP_r16;
-static gint ett_nr_rrc_MeasResultSRS_RSRP_r16;
-static gint ett_nr_rrc_MeasResultListCLI_RSSI_r16;
-static gint ett_nr_rrc_MeasResultCLI_RSSI_r16;
-static gint ett_nr_rrc_UL_PDCP_DelayValueResultList_r16;
-static gint ett_nr_rrc_UL_PDCP_DelayValueResult_r16;
-static gint ett_nr_rrc_UL_PDCP_ExcessDelayResultList_r17;
-static gint ett_nr_rrc_UL_PDCP_ExcessDelayResult_r17;
-static gint ett_nr_rrc_MeasResult2EUTRA;
-static gint ett_nr_rrc_MeasResult2NR;
-static gint ett_nr_rrc_MeasResultIdleEUTRA_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasResultsPerCarrierIdleEUTRA_r16;
-static gint ett_nr_rrc_MeasResultsPerCarrierIdleEUTRA_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasIdle_r16_OF_MeasResultsPerCellIdleEUTRA_r16;
-static gint ett_nr_rrc_MeasResultsPerCellIdleEUTRA_r16;
-static gint ett_nr_rrc_T_measIdleResultEUTRA_r16;
-static gint ett_nr_rrc_MeasResultIdleNR_r16;
-static gint ett_nr_rrc_T_measResultServingCell_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasResultsPerCarrierIdleNR_r16;
-static gint ett_nr_rrc_MeasResultsPerCarrierIdleNR_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasIdle_r16_OF_MeasResultsPerCellIdleNR_r16;
-static gint ett_nr_rrc_MeasResultsPerCellIdleNR_r16;
-static gint ett_nr_rrc_T_measIdleResultNR_r16;
-static gint ett_nr_rrc_ResultsPerSSB_IndexList_r16;
-static gint ett_nr_rrc_ResultsPerSSB_IndexIdle_r16;
-static gint ett_nr_rrc_T_ssb_Results_r16;
-static gint ett_nr_rrc_MeasResultRxTxTimeDiff_r17;
-static gint ett_nr_rrc_MeasResultSCG_Failure;
-static gint ett_nr_rrc_MeasResultList2NR;
-static gint ett_nr_rrc_MeasResultsSL_r16;
-static gint ett_nr_rrc_T_measResultsListSL_r16;
-static gint ett_nr_rrc_MeasResultNR_SL_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_PoolToMeasureNR_r16_OF_MeasResultCBR_NR_r16;
-static gint ett_nr_rrc_MeasResultCBR_NR_r16;
-static gint ett_nr_rrc_MeasTriggerQuantityEUTRA;
-static gint ett_nr_rrc_MobilityStateParameters;
-static gint ett_nr_rrc_MsgA_ConfigCommon_r16;
-static gint ett_nr_rrc_MsgA_PUSCH_Config_r16;
-static gint ett_nr_rrc_MsgA_PUSCH_Resource_r16;
-static gint ett_nr_rrc_MsgA_DMRS_Config_r16;
-static gint ett_nr_rrc_MultiFrequencyBandListNR;
-static gint ett_nr_rrc_MultiFrequencyBandListNR_SIB;
-static gint ett_nr_rrc_NR_MultiBandInfo;
-static gint ett_nr_rrc_MultiFrequencyBandListNR_SIB_v1760;
-static gint ett_nr_rrc_NR_MultiBandInfo_v1760;
-static gint ett_nr_rrc_MUSIM_GapConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_MUSIM_GapId_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_MUSIM_Gap_r17;
-static gint ett_nr_rrc_MUSIM_Gap_r17;
-static gint ett_nr_rrc_MUSIM_GapInfo_r17;
-static gint ett_nr_rrc_T_musim_GapRepetitionAndOffset_r17;
-static gint ett_nr_rrc_MUSIM_Starting_SFN_AndSubframe_r17;
-static gint ett_nr_rrc_NeedForGapsConfigNR_r16;
-static gint ett_nr_rrc_NeedForGapsInfoNR_r16;
-static gint ett_nr_rrc_NeedForGapsIntraFreqList_r16;
-static gint ett_nr_rrc_NeedForGapsBandListNR_r16;
-static gint ett_nr_rrc_NeedForGapsIntraFreq_r16;
-static gint ett_nr_rrc_NeedForGapsNR_r16;
-static gint ett_nr_rrc_NeedForGapNCSG_ConfigEUTRA_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA;
-static gint ett_nr_rrc_NeedForGapNCSG_ConfigNR_r17;
-static gint ett_nr_rrc_NeedForGapNCSG_InfoEUTRA_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_NeedForNCSG_EUTRA_r17;
-static gint ett_nr_rrc_NeedForNCSG_EUTRA_r17;
-static gint ett_nr_rrc_NeedForGapNCSG_InfoNR_r17;
-static gint ett_nr_rrc_NeedForNCSG_IntraFreqList_r17;
-static gint ett_nr_rrc_NeedForNCSG_BandListNR_r17;
-static gint ett_nr_rrc_NeedForNCSG_IntraFreq_r17;
-static gint ett_nr_rrc_NeedForNCSG_NR_r17;
-static gint ett_nr_rrc_NonCellDefiningSSB_r17;
-static gint ett_nr_rrc_NPN_Identity_r16;
-static gint ett_nr_rrc_T_pni_npn_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_CAG_IdentityInfo_r16;
-static gint ett_nr_rrc_T_snpn_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_NID_r16;
-static gint ett_nr_rrc_CAG_IdentityInfo_r16;
-static gint ett_nr_rrc_NPN_IdentityInfoList_r16;
-static gint ett_nr_rrc_NPN_IdentityInfo_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_NPN_Identity_r16;
-static gint ett_nr_rrc_NR_DL_PRS_PDC_Info_r17;
-static gint ett_nr_rrc_NR_DL_PRS_PDC_ResourceSet_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPRS_ResourcesPerSet_r17_OF_NR_DL_PRS_Resource_r17;
-static gint ett_nr_rrc_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r17;
-static gint ett_nr_rrc_T_scs15_r17;
-static gint ett_nr_rrc_T_scs30_r17;
-static gint ett_nr_rrc_T_scs60_r17;
-static gint ett_nr_rrc_T_scs120_r17;
-static gint ett_nr_rrc_NR_DL_PRS_Resource_r17;
-static gint ett_nr_rrc_T_dl_PRS_CombSizeN_AndReOffset_r17;
-static gint ett_nr_rrc_DL_PRS_QCL_Info_r17;
-static gint ett_nr_rrc_T_ssb_r17;
-static gint ett_nr_rrc_T_dl_PRS_r17;
-static gint ett_nr_rrc_RepFactorAndTimeGap_r17;
-static gint ett_nr_rrc_NR_NS_PmaxList;
-static gint ett_nr_rrc_NR_NS_PmaxValue;
-static gint ett_nr_rrc_NR_NS_PmaxList_v1760;
-static gint ett_nr_rrc_NR_NS_PmaxValue_v1760;
-static gint ett_nr_rrc_NSAG_IdentityInfo_r17;
-static gint ett_nr_rrc_NTN_Config_r17;
-static gint ett_nr_rrc_EpochTime_r17;
-static gint ett_nr_rrc_TA_Info_r17;
-static gint ett_nr_rrc_NZP_CSI_RS_Resource;
-static gint ett_nr_rrc_NZP_CSI_RS_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId;
-static gint ett_nr_rrc_CMRGroupingAndPairing_r17;
-static gint ett_nr_rrc_NZP_CSI_RS_Pairing_r17;
-static gint ett_nr_rrc_PathlossReferenceRS_r17;
-static gint ett_nr_rrc_T_referenceSignal_r17;
-static gint ett_nr_rrc_PCI_ARFCN_EUTRA_r16;
-static gint ett_nr_rrc_PCI_ARFCN_NR_r16;
-static gint ett_nr_rrc_PCI_List;
-static gint ett_nr_rrc_PCI_Range;
-static gint ett_nr_rrc_PCI_RangeElement;
-static gint ett_nr_rrc_PCI_RangeIndexList;
-static gint ett_nr_rrc_PDCCH_Config;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpace;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceId;
-static gint ett_nr_rrc_T_downlinkPreemption;
-static gint ett_nr_rrc_T_tpc_PUSCH;
-static gint ett_nr_rrc_T_tpc_PUCCH;
-static gint ett_nr_rrc_T_tpc_SRS;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_ControlResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_5_OF_ControlResourceSetId_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceExt_r16;
-static gint ett_nr_rrc_T_uplinkCancellation_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceExt_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_SCS_SpecificDuration_r17;
-static gint ett_nr_rrc_SearchSpaceSwitchConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_CellGroupForSwitch_r16;
-static gint ett_nr_rrc_SearchSpaceSwitchConfig_r17;
-static gint ett_nr_rrc_CellGroupForSwitch_r16;
-static gint ett_nr_rrc_PDCCH_ConfigCommon;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace;
-static gint ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_01;
-static gint ett_nr_rrc_T_sCS15KHZoneT_01;
-static gint ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT_01;
-static gint ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_01;
-static gint ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_01;
-static gint ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_01;
-static gint ett_nr_rrc_T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT;
-static gint ett_nr_rrc_T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT;
-static gint ett_nr_rrc_T_sCS120KHZoneSixteenthT;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpaceExt_r16;
-static gint ett_nr_rrc_T_sdt_SearchSpace_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpaceExt_v1700;
-static gint ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_v1710_01;
-static gint ett_nr_rrc_T_sCS480KHZoneEighthT_01;
-static gint ett_nr_rrc_T_sCS480KHZoneSixteenthT_01;
-static gint ett_nr_rrc_T_pei_ConfigBWP_r17;
-static gint ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPEI_O_r17;
-static gint ett_nr_rrc_T_sCS15KHZoneT_02;
-static gint ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT_02;
-static gint ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_02;
-static gint ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_02;
-static gint ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_02;
-static gint ett_nr_rrc_T_sCS480KHZoneT_SCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_01;
-static gint ett_nr_rrc_T_sCS480KHZhalfT_SCS120KHZoneEighthT_SCS60KHZoneSixteenthT_01;
-static gint ett_nr_rrc_T_sCS480KHZquarterT_SCS120KHZoneSixteenthT_01;
-static gint ett_nr_rrc_T_sCS480KHZoneEighthT_02;
-static gint ett_nr_rrc_T_sCS480KHZoneSixteenthT_02;
-static gint ett_nr_rrc_PDCCH_ConfigSIB1;
-static gint ett_nr_rrc_PDCCH_ServingCellConfig;
-static gint ett_nr_rrc_T_slotFormatIndicator;
-static gint ett_nr_rrc_T_availabilityIndicator_r16;
-static gint ett_nr_rrc_PDCP_Config;
-static gint ett_nr_rrc_T_drb;
-static gint ett_nr_rrc_T_headerCompression;
-static gint ett_nr_rrc_T_rohc;
-static gint ett_nr_rrc_T_profiles;
-static gint ett_nr_rrc_T_uplinkOnlyROHC;
-static gint ett_nr_rrc_T_profiles_01;
-static gint ett_nr_rrc_T_moreThanOneRLC;
-static gint ett_nr_rrc_T_primaryPath;
-static gint ett_nr_rrc_T_discardTimerExt_r16;
-static gint ett_nr_rrc_T_moreThanTwoRLC_DRB_r16;
-static gint ett_nr_rrc_T_duplicationState_r16;
-static gint ett_nr_rrc_T_ethernetHeaderCompression_r16;
-static gint ett_nr_rrc_T_uplinkDataCompression_r17;
-static gint ett_nr_rrc_T_discardTimerExt2_r17;
-static gint ett_nr_rrc_EthernetHeaderCompression_r16;
-static gint ett_nr_rrc_T_ehc_Common_r16;
-static gint ett_nr_rrc_T_ehc_Downlink_r16;
-static gint ett_nr_rrc_T_ehc_Uplink_r16;
-static gint ett_nr_rrc_UplinkDataCompression_r17;
-static gint ett_nr_rrc_T_newSetup;
-static gint ett_nr_rrc_PDSCH_Config;
-static gint ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA;
-static gint ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId;
-static gint ett_nr_rrc_T_pdsch_TimeDomainAllocationList;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId;
-static gint ett_nr_rrc_T_prb_BundlingType;
-static gint ett_nr_rrc_T_staticBundling;
-static gint ett_nr_rrc_T_dynamicBundling;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourceSets_OF_ZP_CSI_RS_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourceSets_OF_ZP_CSI_RS_ResourceSetId;
-static gint ett_nr_rrc_T_p_ZP_CSI_RS_ResourceSet;
-static gint ett_nr_rrc_T_maxMIMO_Layers_r16;
-static gint ett_nr_rrc_T_minimumSchedulingOffsetK0_r16;
-static gint ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA_DCI_1_2_r16;
-static gint ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB_DCI_1_2_r16;
-static gint ett_nr_rrc_T_pdsch_TimeDomainAllocationListDCI_1_2_r16;
-static gint ett_nr_rrc_T_prb_BundlingTypeDCI_1_2_r16;
-static gint ett_nr_rrc_T_staticBundling_r16;
-static gint ett_nr_rrc_T_dynamicBundling_r16;
-static gint ett_nr_rrc_T_pdsch_TimeDomainAllocationList_r16;
-static gint ett_nr_rrc_T_repetitionSchemeConfig_r16;
-static gint ett_nr_rrc_T_repetitionSchemeConfig_v1630;
-static gint ett_nr_rrc_T_dl_OrJointTCI_StateList_r17;
-static gint ett_nr_rrc_T_explicitlist_01;
-static gint ett_nr_rrc_T_dummy;
-static gint ett_nr_rrc_T_minimumSchedulingOffsetK0_r17;
-static gint ett_nr_rrc_T_pdsch_TimeDomainAllocationListForMultiPDSCH_r17;
-static gint ett_nr_rrc_RateMatchPatternGroup;
-static gint ett_nr_rrc_RateMatchPatternGroup_item;
-static gint ett_nr_rrc_MinSchedulingOffsetK0_Values_r16;
-static gint ett_nr_rrc_MinSchedulingOffsetK0_Values_r17;
-static gint ett_nr_rrc_PDSCH_ConfigCommon;
-static gint ett_nr_rrc_PDSCH_ServingCellConfig;
-static gint ett_nr_rrc_T_codeBlockGroupTransmission;
-static gint ett_nr_rrc_T_pdsch_CodeBlockGroupTransmissionList_r16;
-static gint ett_nr_rrc_T_downlinkHARQ_FeedbackDisabled_r17;
-static gint ett_nr_rrc_PDSCH_CodeBlockGroupTransmission;
-static gint ett_nr_rrc_PDSCH_CodeBlockGroupTransmissionList_r16;
-static gint ett_nr_rrc_PDSCH_TimeDomainResourceAllocationList;
-static gint ett_nr_rrc_PDSCH_TimeDomainResourceAllocation;
-static gint ett_nr_rrc_PDSCH_TimeDomainResourceAllocationList_r16;
-static gint ett_nr_rrc_PDSCH_TimeDomainResourceAllocation_r16;
-static gint ett_nr_rrc_Dummy_TDRA_List;
-static gint ett_nr_rrc_MultiPDSCH_TDRA_List_r17;
-static gint ett_nr_rrc_MultiPDSCH_TDRA_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofMultiplePDSCHs_r17_OF_PDSCH_TimeDomainResourceAllocation_r16;
-static gint ett_nr_rrc_PHR_Config;
-static gint ett_nr_rrc_T_mpe_Reporting_FR2_r16;
-static gint ett_nr_rrc_T_mpe_Reporting_FR2_r17;
-static gint ett_nr_rrc_MPE_Config_FR2_r16;
-static gint ett_nr_rrc_MPE_Config_FR2_r17;
-static gint ett_nr_rrc_PhysicalCellGroupConfig;
-static gint ett_nr_rrc_T_cs_RNTI;
-static gint ett_nr_rrc_T_pdcch_BlindDetection;
-static gint ett_nr_rrc_T_dcp_Config_r16;
-static gint ett_nr_rrc_T_pdsch_HARQ_ACK_CodebookList_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCA_CombIndicator_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetection2_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetection3_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofEnhType3HARQ_ACK_r17_OF_PDSCH_HARQ_ACK_EnhType3_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofEnhType3HARQ_ACK_r17_OF_PDSCH_HARQ_ACK_EnhType3Index_r17;
-static gint ett_nr_rrc_T_pucch_sSCellPattern_r17;
-static gint ett_nr_rrc_T_pucch_sSCellPatternSecondaryPUCCHgroup_r17;
-static gint ett_nr_rrc_T_multicastConfig_r17;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCA_CombIndicator_r17;
-static gint ett_nr_rrc_T_pdcch_BlindDetection4_r17;
-static gint ett_nr_rrc_PDSCH_HARQ_ACK_EnhType3_r17;
-static gint ett_nr_rrc_T_applicable_r17;
-static gint ett_nr_rrc_T_perCC;
-static gint ett_nr_rrc_T_perHARQ;
-static gint ett_nr_rrc_T_perHARQ_Ext_r17;
-static gint ett_nr_rrc_DCP_Config_r16;
-static gint ett_nr_rrc_PDSCH_HARQ_ACK_CodebookList_r16;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCA_CombIndicator_r16;
-static gint ett_nr_rrc_MulticastConfig_r17;
-static gint ett_nr_rrc_T_pdsch_HARQ_ACK_CodebookListMulticast_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCA_CombIndicator_r17;
-static gint ett_nr_rrc_PLMN_Identity;
-static gint ett_nr_rrc_MCC;
-static gint ett_nr_rrc_MNC;
-static gint ett_nr_rrc_PLMN_IdentityInfoList;
-static gint ett_nr_rrc_PLMN_IdentityInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxTAC_r17_OF_TrackingAreaCode;
-static gint ett_nr_rrc_PLMN_IdentityList2_r16;
-static gint ett_nr_rrc_PTRS_DownlinkConfig;
-static gint ett_nr_rrc_T_frequencyDensity;
-static gint ett_nr_rrc_T_timeDensity;
-static gint ett_nr_rrc_PTRS_UplinkConfig;
-static gint ett_nr_rrc_T_transformPrecoderDisabled;
-static gint ett_nr_rrc_T_frequencyDensity_01;
-static gint ett_nr_rrc_T_timeDensity_01;
-static gint ett_nr_rrc_T_transformPrecoderEnabled;
-static gint ett_nr_rrc_T_sampleDensity;
-static gint ett_nr_rrc_PUCCH_Config;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId;
-static gint ett_nr_rrc_T_format1;
-static gint ett_nr_rrc_T_format2;
-static gint ett_nr_rrc_T_format3;
-static gint ett_nr_rrc_T_format4;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId;
-static gint ett_nr_rrc_T_dl_DataToUL_ACK;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceExt_v1610;
-static gint ett_nr_rrc_T_dl_DataToUL_ACK_r16;
-static gint ett_nr_rrc_T_ul_AccessConfigListDCI_1_1_r16;
-static gint ett_nr_rrc_T_subslotLengthForPUCCH_r16;
-static gint ett_nr_rrc_T_dl_DataToUL_ACK_DCI_1_2_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfosDiff_r16_OF_PUCCH_SpatialRelationInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfosDiff_r16_OF_PUCCH_SpatialRelationInfoId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_r16_OF_PUCCH_SpatialRelationInfoExt_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_r16_OF_PUCCH_SpatialRelationInfoId_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceGroups_r16_OF_PUCCH_ResourceGroup_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceGroups_r16_OF_PUCCH_ResourceGroupId_r16;
-static gint ett_nr_rrc_T_sps_PUCCH_AN_List_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfigExt_v1610;
-static gint ett_nr_rrc_T_format0_r17;
-static gint ett_nr_rrc_T_format2Ext_r17;
-static gint ett_nr_rrc_T_format3Ext_r17;
-static gint ett_nr_rrc_T_format4Ext_r17;
-static gint ett_nr_rrc_T_ul_AccessConfigListDCI_1_2_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPowerControlSetInfos_r17_OF_PUCCH_PowerControlSetInfo_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPowerControlSetInfos_r17_OF_PUCCH_PowerControlSetInfoId_r17;
-static gint ett_nr_rrc_T_dl_DataToUL_ACK_r17;
-static gint ett_nr_rrc_T_dl_DataToUL_ACK_DCI_1_2_r17;
-static gint ett_nr_rrc_T_ul_AccessConfigListDCI_1_1_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfigExt_v1700;
-static gint ett_nr_rrc_T_dmrs_BundlingPUCCH_Config_r17;
-static gint ett_nr_rrc_T_dl_DataToUL_ACK_v1700;
-static gint ett_nr_rrc_T_dl_DataToUL_ACK_MulticastDCI_Format4_1_r17;
-static gint ett_nr_rrc_T_sps_PUCCH_AN_ListMulticast_r17;
-static gint ett_nr_rrc_PUCCH_FormatConfig;
-static gint ett_nr_rrc_PUCCH_FormatConfigExt_r17;
-static gint ett_nr_rrc_PUCCH_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId;
-static gint ett_nr_rrc_PUCCH_Resource;
-static gint ett_nr_rrc_T_format;
-static gint ett_nr_rrc_PUCCH_ResourceExt_v1610;
-static gint ett_nr_rrc_T_interlaceAllocation_r16;
-static gint ett_nr_rrc_T_interlace0_r16;
-static gint ett_nr_rrc_T_format_v1610;
-static gint ett_nr_rrc_T_occ_v1610;
-static gint ett_nr_rrc_T_format_v1700;
-static gint ett_nr_rrc_PUCCH_format0;
-static gint ett_nr_rrc_PUCCH_format1;
-static gint ett_nr_rrc_PUCCH_format2;
-static gint ett_nr_rrc_PUCCH_format3;
-static gint ett_nr_rrc_PUCCH_format4;
-static gint ett_nr_rrc_PUCCH_ResourceGroup_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerGroup_r16_OF_PUCCH_ResourceId;
-static gint ett_nr_rrc_DL_DataToUL_ACK_r16;
-static gint ett_nr_rrc_DL_DataToUL_ACK_r17;
-static gint ett_nr_rrc_DL_DataToUL_ACK_v1700;
-static gint ett_nr_rrc_DL_DataToUL_ACK_DCI_1_2_r16;
-static gint ett_nr_rrc_DL_DataToUL_ACK_DCI_1_2_r17;
-static gint ett_nr_rrc_UL_AccessConfigListDCI_1_1_r16;
-static gint ett_nr_rrc_UL_AccessConfigListDCI_1_2_r17;
-static gint ett_nr_rrc_UL_AccessConfigListDCI_1_1_r17;
-static gint ett_nr_rrc_DL_DataToUL_ACK_MulticastDCI_Format4_1_r17;
-static gint ett_nr_rrc_PUCCH_ConfigCommon;
-static gint ett_nr_rrc_PUCCH_ConfigurationList_r16;
-static gint ett_nr_rrc_PUCCH_PowerControl;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS;
-static gint ett_nr_rrc_T_pathlossReferenceRSs_v1610;
-static gint ett_nr_rrc_P0_PUCCH;
-static gint ett_nr_rrc_PathlossReferenceRSs_v1610;
-static gint ett_nr_rrc_PUCCH_PathlossReferenceRS;
-static gint ett_nr_rrc_T_referenceSignal;
-static gint ett_nr_rrc_PUCCH_PathlossReferenceRS_r16;
-static gint ett_nr_rrc_T_referenceSignal_r16;
-static gint ett_nr_rrc_PUCCH_PowerControlSetInfo_r17;
-static gint ett_nr_rrc_PUCCH_SpatialRelationInfo;
-static gint ett_nr_rrc_T_referenceSignal_01;
-static gint ett_nr_rrc_PUCCH_SpatialRelationInfoExt_r16;
-static gint ett_nr_rrc_PUCCH_SRS;
-static gint ett_nr_rrc_PUCCH_TPC_CommandConfig;
-static gint ett_nr_rrc_PUSCH_Config;
-static gint ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA;
-static gint ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB;
-static gint ett_nr_rrc_T_frequencyHoppingOffsetLists;
-static gint ett_nr_rrc_T_pusch_TimeDomainAllocationList;
-static gint ett_nr_rrc_T_uci_OnPUSCH_01;
-static gint ett_nr_rrc_T_minimumSchedulingOffsetK2_r16;
-static gint ett_nr_rrc_T_ul_AccessConfigListDCI_0_1_r16;
-static gint ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA_DCI_0_2_r16;
-static gint ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB_DCI_0_2_r16;
-static gint ett_nr_rrc_T_frequencyHoppingDCI_0_2_r16;
-static gint ett_nr_rrc_T_frequencyHoppingOffsetListsDCI_0_2_r16;
-static gint ett_nr_rrc_T_uci_OnPUSCH_ListDCI_0_2_r16;
-static gint ett_nr_rrc_T_pusch_TimeDomainAllocationListDCI_0_2_r16;
-static gint ett_nr_rrc_T_pusch_TimeDomainAllocationListDCI_0_1_r16;
-static gint ett_nr_rrc_T_uci_OnPUSCH_ListDCI_0_1_r16;
-static gint ett_nr_rrc_T_pusch_PowerControl_v1610;
-static gint ett_nr_rrc_T_pusch_TimeDomainAllocationListForMultiPUSCH_r16;
-static gint ett_nr_rrc_T_ul_AccessConfigListDCI_0_2_r17;
-static gint ett_nr_rrc_T_betaOffsetsCrossPri0_r17;
-static gint ett_nr_rrc_T_betaOffsetsCrossPri1_r17;
-static gint ett_nr_rrc_T_betaOffsetsCrossPri0DCI_0_2_r17;
-static gint ett_nr_rrc_T_betaOffsetsCrossPri1DCI_0_2_r17;
-static gint ett_nr_rrc_T_ul_AccessConfigListDCI_0_1_r17;
-static gint ett_nr_rrc_T_minimumSchedulingOffsetK2_r17;
-static gint ett_nr_rrc_T_dmrs_BundlingPUSCH_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxMPE_Resources_r17_OF_MPE_Resource_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxMPE_Resources_r17_OF_MPE_ResourceId_r17;
-static gint ett_nr_rrc_UCI_OnPUSCH;
-static gint ett_nr_rrc_T_betaOffsets;
-static gint ett_nr_rrc_SEQUENCE_SIZE_4_OF_BetaOffsets;
-static gint ett_nr_rrc_MinSchedulingOffsetK2_Values_r16;
-static gint ett_nr_rrc_MinSchedulingOffsetK2_Values_r17;
-static gint ett_nr_rrc_UCI_OnPUSCH_DCI_0_2_r16;
-static gint ett_nr_rrc_T_betaOffsetsDCI_0_2_r16;
-static gint ett_nr_rrc_T_dynamicDCI_0_2_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_OF_BetaOffsets;
-static gint ett_nr_rrc_FrequencyHoppingOffsetListsDCI_0_2_r16;
-static gint ett_nr_rrc_UCI_OnPUSCH_ListDCI_0_2_r16;
-static gint ett_nr_rrc_UCI_OnPUSCH_ListDCI_0_1_r16;
-static gint ett_nr_rrc_UL_AccessConfigListDCI_0_1_r16;
-static gint ett_nr_rrc_UL_AccessConfigListDCI_0_1_r17;
-static gint ett_nr_rrc_UL_AccessConfigListDCI_0_2_r17;
-static gint ett_nr_rrc_BetaOffsetsCrossPriSel_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_4_OF_BetaOffsetsCrossPri_r17;
-static gint ett_nr_rrc_BetaOffsetsCrossPriSelDCI_0_2_r17;
-static gint ett_nr_rrc_T_dynamicDCI_0_2_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_2_OF_BetaOffsetsCrossPri_r17;
-static gint ett_nr_rrc_MPE_Resource_r17;
-static gint ett_nr_rrc_T_mpe_ReferenceSignal_r17;
-static gint ett_nr_rrc_PUSCH_ConfigCommon;
-static gint ett_nr_rrc_PUSCH_PowerControl;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId;
-static gint ett_nr_rrc_P0_PUSCH_AlphaSet;
-static gint ett_nr_rrc_PUSCH_PathlossReferenceRS;
-static gint ett_nr_rrc_T_referenceSignal_02;
-static gint ett_nr_rrc_PUSCH_PathlossReferenceRS_r16;
-static gint ett_nr_rrc_T_referenceSignal_r16_01;
-static gint ett_nr_rrc_DummyPathlossReferenceRS_v1710;
-static gint ett_nr_rrc_SRI_PUSCH_PowerControl;
-static gint ett_nr_rrc_PUSCH_PowerControl_v1610;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSsDiff_r16_OF_PUSCH_PathlossReferenceRS_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSsDiff_r16_OF_PUSCH_PathlossReferenceRS_Id_v1610;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_P0_PUSCH_Set_r16;
-static gint ett_nr_rrc_T_olpc_ParameterSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_r16_OF_DummyPathlossReferenceRS_v1710;
-static gint ett_nr_rrc_P0_PUSCH_Set_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_Set_r16_OF_P0_PUSCH_r16;
-static gint ett_nr_rrc_PUSCH_ServingCellConfig;
-static gint ett_nr_rrc_T_codeBlockGroupTransmission_01;
-static gint ett_nr_rrc_T_maxMIMO_LayersDCI_0_2_r16;
-static gint ett_nr_rrc_T_uplinkHARQ_mode_r17;
-static gint ett_nr_rrc_PUSCH_CodeBlockGroupTransmission;
-static gint ett_nr_rrc_PUSCH_TimeDomainResourceAllocationList;
-static gint ett_nr_rrc_PUSCH_TimeDomainResourceAllocation;
-static gint ett_nr_rrc_PUSCH_TimeDomainResourceAllocationList_r16;
-static gint ett_nr_rrc_PUSCH_TimeDomainResourceAllocation_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofMultiplePUSCHs_r16_OF_PUSCH_Allocation_r16;
-static gint ett_nr_rrc_PUSCH_Allocation_r16;
-static gint ett_nr_rrc_PUSCH_TPC_CommandConfig;
-static gint ett_nr_rrc_QuantityConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR;
-static gint ett_nr_rrc_QuantityConfigNR;
-static gint ett_nr_rrc_QuantityConfigRS;
-static gint ett_nr_rrc_FilterConfig;
-static gint ett_nr_rrc_FilterConfigCLI_r16;
-static gint ett_nr_rrc_QuantityConfigUTRA_FDD_r16;
-static gint ett_nr_rrc_RACH_ConfigCommon;
-static gint ett_nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB;
-static gint ett_nr_rrc_T_groupBconfigured;
-static gint ett_nr_rrc_T_prach_RootSequenceIndex;
-static gint ett_nr_rrc_T_ra_PrioritizationForAccessIdentity_r16;
-static gint ett_nr_rrc_T_prach_RootSequenceIndex_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureCombPreamblesPerRACHResource_r17_OF_FeatureCombinationPreambles_r17;
-static gint ett_nr_rrc_RACH_ConfigCommonTwoStepRA_r16;
-static gint ett_nr_rrc_T_msgA_SSB_PerRACH_OccasionAndCB_PreamblesPerSSB_r16;
-static gint ett_nr_rrc_T_msgA_PRACH_RootSequenceIndex_r16;
-static gint ett_nr_rrc_T_ra_PrioritizationForAccessIdentityTwoStep_r16;
-static gint ett_nr_rrc_GroupB_ConfiguredTwoStepRA_r16;
-static gint ett_nr_rrc_RACH_ConfigDedicated;
-static gint ett_nr_rrc_CFRA;
-static gint ett_nr_rrc_T_occasions;
-static gint ett_nr_rrc_T_resources;
-static gint ett_nr_rrc_T_ssb;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource;
-static gint ett_nr_rrc_T_csirs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource;
-static gint ett_nr_rrc_CFRA_TwoStep_r16;
-static gint ett_nr_rrc_T_occasionsTwoStepRA_r16;
-static gint ett_nr_rrc_T_resourcesTwoStep_r16;
-static gint ett_nr_rrc_CFRA_SSB_Resource;
-static gint ett_nr_rrc_CFRA_CSIRS_Resource;
-static gint ett_nr_rrc_T_ra_OccasionList_01;
-static gint ett_nr_rrc_RACH_ConfigGeneric;
-static gint ett_nr_rrc_RACH_ConfigGenericTwoStepRA_r16;
-static gint ett_nr_rrc_RA_Prioritization;
-static gint ett_nr_rrc_RA_PrioritizationForSlicing_r17;
-static gint ett_nr_rrc_RA_PrioritizationSliceInfoList_r17;
-static gint ett_nr_rrc_RA_PrioritizationSliceInfo_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSliceInfo_r17_OF_NSAG_ID_r17;
-static gint ett_nr_rrc_RadioBearerConfig;
-static gint ett_nr_rrc_SRB_ToAddModList;
-static gint ett_nr_rrc_SRB_ToAddMod;
-static gint ett_nr_rrc_DRB_ToAddModList;
-static gint ett_nr_rrc_DRB_ToAddMod;
-static gint ett_nr_rrc_T_cnAssociation;
-static gint ett_nr_rrc_DRB_ToReleaseList;
-static gint ett_nr_rrc_SecurityConfig;
-static gint ett_nr_rrc_MRB_ToAddModList_r17;
-static gint ett_nr_rrc_MRB_ToAddMod_r17;
-static gint ett_nr_rrc_MRB_ToReleaseList_r17;
-static gint ett_nr_rrc_RadioLinkMonitoringConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS_Id;
-static gint ett_nr_rrc_BeamFailureDetection_r17;
-static gint ett_nr_rrc_RadioLinkMonitoringRS;
-static gint ett_nr_rrc_T_detectionResource;
-static gint ett_nr_rrc_BeamFailureDetectionSet_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBFDResourcePerSet_r17_OF_BeamLinkMonitoringRS_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBFDResourcePerSet_r17_OF_BeamLinkMonitoringRS_Id_r17;
-static gint ett_nr_rrc_BeamLinkMonitoringRS_r17;
-static gint ett_nr_rrc_T_detectionResource_r17;
-static gint ett_nr_rrc_RateMatchPattern;
-static gint ett_nr_rrc_T_patternType;
-static gint ett_nr_rrc_T_bitmaps;
-static gint ett_nr_rrc_T_symbolsInResourceBlock;
-static gint ett_nr_rrc_T_periodicityAndPattern;
-static gint ett_nr_rrc_RateMatchPatternLTE_CRS;
-static gint ett_nr_rrc_LTE_CRS_PatternList_r16;
-static gint ett_nr_rrc_ReferenceTimeInfo_r16;
-static gint ett_nr_rrc_ReferenceTime_r16;
-static gint ett_nr_rrc_RepetitionSchemeConfig_r16;
-static gint ett_nr_rrc_T_fdm_TDM_r16;
-static gint ett_nr_rrc_T_slotBased_r16;
-static gint ett_nr_rrc_RepetitionSchemeConfig_v1630;
-static gint ett_nr_rrc_T_slotBased_v1630;
-static gint ett_nr_rrc_FDM_TDM_r16;
-static gint ett_nr_rrc_SlotBased_r16;
-static gint ett_nr_rrc_SlotBased_v1630;
-static gint ett_nr_rrc_ReportConfigInterRAT;
-static gint ett_nr_rrc_T_reportType_01;
-static gint ett_nr_rrc_ReportCGI_EUTRA;
-static gint ett_nr_rrc_ReportSFTD_EUTRA;
-static gint ett_nr_rrc_EventTriggerConfigInterRAT;
-static gint ett_nr_rrc_T_eventId;
-static gint ett_nr_rrc_T_eventB1;
-static gint ett_nr_rrc_T_eventB2;
-static gint ett_nr_rrc_T_eventB1_UTRA_FDD_r16;
-static gint ett_nr_rrc_T_eventB2_UTRA_FDD_r16;
-static gint ett_nr_rrc_T_eventY1_Relay_r17;
-static gint ett_nr_rrc_T_eventY2_Relay_r17;
-static gint ett_nr_rrc_T_includeBT_Meas_r16;
-static gint ett_nr_rrc_T_includeWLAN_Meas_r16;
-static gint ett_nr_rrc_T_includeSensor_Meas_r16;
-static gint ett_nr_rrc_PeriodicalReportConfigInterRAT;
-static gint ett_nr_rrc_T_includeBT_Meas_r16_01;
-static gint ett_nr_rrc_T_includeWLAN_Meas_r16_01;
-static gint ett_nr_rrc_T_includeSensor_Meas_r16_01;
-static gint ett_nr_rrc_MeasTriggerQuantityUTRA_FDD_r16;
-static gint ett_nr_rrc_MeasReportQuantityUTRA_FDD_r16;
-static gint ett_nr_rrc_ReportConfigNR;
-static gint ett_nr_rrc_T_reportType_02;
-static gint ett_nr_rrc_ReportCGI;
-static gint ett_nr_rrc_ReportSFTD_NR;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellSFTD_OF_PhysCellId;
-static gint ett_nr_rrc_CondTriggerConfig_r16;
-static gint ett_nr_rrc_T_condEventId;
-static gint ett_nr_rrc_T_condEventA3;
-static gint ett_nr_rrc_T_condEventA5;
-static gint ett_nr_rrc_T_condEventA4_r17;
-static gint ett_nr_rrc_T_condEventD1_r17;
-static gint ett_nr_rrc_T_condEventT1_r17;
-static gint ett_nr_rrc_EventTriggerConfig;
-static gint ett_nr_rrc_T_eventId_01;
-static gint ett_nr_rrc_T_eventA1;
-static gint ett_nr_rrc_T_eventA2;
-static gint ett_nr_rrc_T_eventA3;
-static gint ett_nr_rrc_T_eventA4;
-static gint ett_nr_rrc_T_eventA5;
-static gint ett_nr_rrc_T_eventA6;
-static gint ett_nr_rrc_T_eventX1_r17;
-static gint ett_nr_rrc_T_eventX2_r17;
-static gint ett_nr_rrc_T_eventD1_r17;
-static gint ett_nr_rrc_T_includeBT_Meas_r16_02;
-static gint ett_nr_rrc_T_includeWLAN_Meas_r16_02;
-static gint ett_nr_rrc_T_includeSensor_Meas_r16_02;
-static gint ett_nr_rrc_PeriodicalReportConfig;
-static gint ett_nr_rrc_T_includeBT_Meas_r16_03;
-static gint ett_nr_rrc_T_includeWLAN_Meas_r16_03;
-static gint ett_nr_rrc_T_includeSensor_Meas_r16_03;
-static gint ett_nr_rrc_T_ul_DelayValueConfig_r16;
-static gint ett_nr_rrc_T_ul_ExcessDelayConfig_r17;
-static gint ett_nr_rrc_MeasTriggerQuantity;
-static gint ett_nr_rrc_MeasTriggerQuantityOffset;
-static gint ett_nr_rrc_MeasReportQuantity;
-static gint ett_nr_rrc_MeasRSSI_ReportConfig_r16;
-static gint ett_nr_rrc_CLI_EventTriggerConfig_r16;
-static gint ett_nr_rrc_T_eventId_r16;
-static gint ett_nr_rrc_T_eventI1_r16;
-static gint ett_nr_rrc_CLI_PeriodicalReportConfig_r16;
-static gint ett_nr_rrc_RxTxPeriodical_r17;
-static gint ett_nr_rrc_MeasTriggerQuantityCLI_r16;
-static gint ett_nr_rrc_ReportConfigNR_SL_r16;
-static gint ett_nr_rrc_T_reportType_r16;
-static gint ett_nr_rrc_EventTriggerConfigNR_SL_r16;
-static gint ett_nr_rrc_T_eventId_r16_01;
-static gint ett_nr_rrc_T_eventC1;
-static gint ett_nr_rrc_T_eventC2_r16;
-static gint ett_nr_rrc_PeriodicalReportConfigNR_SL_r16;
-static gint ett_nr_rrc_MeasReportQuantity_r16;
-static gint ett_nr_rrc_ReportConfigToAddModList;
-static gint ett_nr_rrc_ReportConfigToAddMod;
-static gint ett_nr_rrc_T_reportConfig;
-static gint ett_nr_rrc_RLC_BearerConfig;
-static gint ett_nr_rrc_T_servedRadioBearer;
-static gint ett_nr_rrc_MulticastRLC_BearerConfig_r17;
-static gint ett_nr_rrc_RLC_Config;
-static gint ett_nr_rrc_T_am;
-static gint ett_nr_rrc_T_um_Bi_Directional;
-static gint ett_nr_rrc_T_um_Uni_Directional_UL;
-static gint ett_nr_rrc_T_um_Uni_Directional_DL;
-static gint ett_nr_rrc_UL_AM_RLC;
-static gint ett_nr_rrc_DL_AM_RLC;
-static gint ett_nr_rrc_UL_UM_RLC;
-static gint ett_nr_rrc_DL_UM_RLC;
-static gint ett_nr_rrc_RLC_Config_v1610;
-static gint ett_nr_rrc_RLC_Config_v1700;
-static gint ett_nr_rrc_DL_AM_RLC_v1610;
-static gint ett_nr_rrc_DL_AM_RLC_v1700;
-static gint ett_nr_rrc_DL_UM_RLC_v1700;
-static gint ett_nr_rrc_RLF_TimersAndConstants;
-static gint ett_nr_rrc_RxTxTimeDiff_r17;
-static gint ett_nr_rrc_SCellActivationRS_Config_r17;
-static gint ett_nr_rrc_SchedulingRequestConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId;
-static gint ett_nr_rrc_SchedulingRequestToAddMod;
-static gint ett_nr_rrc_SchedulingRequestConfig_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddModExt_v1700;
-static gint ett_nr_rrc_SchedulingRequestToAddModExt_v1700;
-static gint ett_nr_rrc_SchedulingRequestResourceConfig;
-static gint ett_nr_rrc_T_periodicityAndOffset;
-static gint ett_nr_rrc_SchedulingRequestResourceConfigExt_v1610;
-static gint ett_nr_rrc_SchedulingRequestResourceConfigExt_v1700;
-static gint ett_nr_rrc_T_periodicityAndOffset_r17;
-static gint ett_nr_rrc_SCS_SpecificCarrier;
-static gint ett_nr_rrc_SDAP_Config;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI;
-static gint ett_nr_rrc_SearchSpace;
-static gint ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset;
-static gint ett_nr_rrc_T_nrofCandidates;
-static gint ett_nr_rrc_T_searchSpaceType;
-static gint ett_nr_rrc_T_common;
-static gint ett_nr_rrc_T_dci_Format0_0_AndFormat1_0;
-static gint ett_nr_rrc_T_dci_Format2_0;
-static gint ett_nr_rrc_T_nrofCandidates_SFI;
-static gint ett_nr_rrc_T_dci_Format2_1;
-static gint ett_nr_rrc_T_dci_Format2_2;
-static gint ett_nr_rrc_T_dci_Format2_3;
-static gint ett_nr_rrc_T_ue_Specific;
-static gint ett_nr_rrc_SearchSpaceExt_r16;
-static gint ett_nr_rrc_T_searchSpaceType_r16;
-static gint ett_nr_rrc_T_common_r16;
-static gint ett_nr_rrc_T_dci_Format2_4_r16;
-static gint ett_nr_rrc_T_nrofCandidates_CI_r16;
-static gint ett_nr_rrc_T_dci_Format2_5_r16;
-static gint ett_nr_rrc_T_nrofCandidates_IAB_r16;
-static gint ett_nr_rrc_T_dci_Format2_6_r16;
-static gint ett_nr_rrc_T_searchSpaceGroupIdList_r16;
-static gint ett_nr_rrc_SearchSpaceExt_v1700;
-static gint ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset_v1710;
-static gint ett_nr_rrc_T_monitoringSlotsWithinSlotGroup_r17;
-static gint ett_nr_rrc_T_searchSpaceType_r17;
-static gint ett_nr_rrc_T_common_r17;
-static gint ett_nr_rrc_T_dci_Format4_0_r17;
-static gint ett_nr_rrc_T_dci_Format4_1_r17;
-static gint ett_nr_rrc_T_dci_Format4_2_r17;
-static gint ett_nr_rrc_T_dci_Format4_1_AndFormat4_2_r17;
-static gint ett_nr_rrc_T_dci_Format2_7_r17;
-static gint ett_nr_rrc_T_nrofCandidates_PEI_r17;
-static gint ett_nr_rrc_T_searchSpaceGroupIdList_r17;
-static gint ett_nr_rrc_SecurityAlgorithmConfig;
-static gint ett_nr_rrc_SemiStaticChannelAccessConfig_r16;
-static gint ett_nr_rrc_SemiStaticChannelAccessConfigUE_r17;
-static gint ett_nr_rrc_Sensor_LocationInfo_r16;
-static gint ett_nr_rrc_ServingCellAndBWP_Id_r17;
-static gint ett_nr_rrc_ServingCellConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink;
-static gint ett_nr_rrc_T_pdcch_ServingCellConfig;
-static gint ett_nr_rrc_T_pdsch_ServingCellConfig;
-static gint ett_nr_rrc_T_csi_MeasConfig;
-static gint ett_nr_rrc_T_lte_CRS_ToMatchAround;
-static gint ett_nr_rrc_T_dormantBWP_Config_r16;
-static gint ett_nr_rrc_T_ca_SlotOffset_r16;
-static gint ett_nr_rrc_T_servingCellConfig_eag_2_dummy2;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_IntraCellGuardBandsPerSCS_r16;
-static gint ett_nr_rrc_T_lte_CRS_PatternList1_r16;
-static gint ett_nr_rrc_T_lte_CRS_PatternList2_r16;
-static gint ett_nr_rrc_T_channelAccessConfig_r16;
-static gint ett_nr_rrc_T_nr_dl_PRS_PDC_Info_r17;
-static gint ett_nr_rrc_T_semiStaticChannelAccessConfigUE_r17;
-static gint ett_nr_rrc_T_mimoParam_r17;
-static gint ett_nr_rrc_T_lte_NeighCellsCRS_AssistInfoList_r17;
-static gint ett_nr_rrc_UplinkConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink;
-static gint ett_nr_rrc_T_pusch_ServingCellConfig;
-static gint ett_nr_rrc_T_carrierSwitching;
-static gint ett_nr_rrc_T_uplinkTxSwitching_r16;
-static gint ett_nr_rrc_DummyJ;
-static gint ett_nr_rrc_ChannelAccessConfig_r16;
-static gint ett_nr_rrc_T_energyDetectionConfig_r16;
-static gint ett_nr_rrc_IntraCellGuardBandsPerSCS_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_GuardBand_r16;
-static gint ett_nr_rrc_GuardBand_r16;
-static gint ett_nr_rrc_DormantBWP_Config_r16;
-static gint ett_nr_rrc_T_withinActiveTimeConfig_r16;
-static gint ett_nr_rrc_T_outsideActiveTimeConfig_r16;
-static gint ett_nr_rrc_WithinActiveTimeConfig_r16;
-static gint ett_nr_rrc_OutsideActiveTimeConfig_r16;
-static gint ett_nr_rrc_UplinkTxSwitching_r16;
-static gint ett_nr_rrc_MIMOParam_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAdditionalPCI_r17_OF_SSB_MTC_AdditionalPCI_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAdditionalPCI_r17_OF_AdditionalPCIIndex_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_Uplink_powerControl_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_Uplink_powerControlId_r17;
-static gint ett_nr_rrc_ServingCellConfigCommon;
-static gint ett_nr_rrc_T_ssb_PositionsInBurst;
-static gint ett_nr_rrc_T_lte_CRS_ToMatchAround_01;
-static gint ett_nr_rrc_T_channelAccessMode_r16;
-static gint ett_nr_rrc_T_featurePriorities_r17_01;
-static gint ett_nr_rrc_ServingCellConfigCommonSIB;
-static gint ett_nr_rrc_T_ssb_PositionsInBurst_01;
-static gint ett_nr_rrc_T_channelAccessMode_r16_01;
-static gint ett_nr_rrc_SI_RequestConfig;
-static gint ett_nr_rrc_T_rach_OccasionsSI;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources;
-static gint ett_nr_rrc_SI_RequestResources;
-static gint ett_nr_rrc_SI_SchedulingInfo;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo;
-static gint ett_nr_rrc_SchedulingInfo;
-static gint ett_nr_rrc_SI_SchedulingInfo_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo2_r17;
-static gint ett_nr_rrc_SI_SchedulingInfo_v1740;
-static gint ett_nr_rrc_SchedulingInfo2_r17;
-static gint ett_nr_rrc_SIB_Mapping;
-static gint ett_nr_rrc_SIB_Mapping_v1700;
-static gint ett_nr_rrc_SIB_TypeInfo;
-static gint ett_nr_rrc_SIB_TypeInfo_v1700;
-static gint ett_nr_rrc_T_sibType_r17;
-static gint ett_nr_rrc_T_type2_r17;
-static gint ett_nr_rrc_SlotFormatCombinationsPerCell;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination;
-static gint ett_nr_rrc_SlotFormatCombination;
-static gint ett_nr_rrc_T_slotFormats;
-static gint ett_nr_rrc_SlotFormatIndicator;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_AvailableRB_SetsPerCell_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpaceSwitchTrigger_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_ServCellIndex;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CO_DurationsPerCell_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroupMinus4_r16_OF_SearchSpaceSwitchTrigger_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroupMinus4_r16_OF_ServCellIndex;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CO_DurationsPerCell_r17;
-static gint ett_nr_rrc_CO_DurationsPerCell_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_64_OF_CO_Duration_r16;
-static gint ett_nr_rrc_CO_DurationsPerCell_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_64_OF_CO_Duration_r17;
-static gint ett_nr_rrc_AvailableRB_SetsPerCell_r16;
-static gint ett_nr_rrc_SearchSpaceSwitchTrigger_r16;
-static gint ett_nr_rrc_S_NSSAI;
-static gint ett_nr_rrc_SpeedStateScaleFactors;
-static gint ett_nr_rrc_SPS_Config;
-static gint ett_nr_rrc_SPS_PUCCH_AN_r16;
-static gint ett_nr_rrc_SPS_PUCCH_AN_List_r16;
-static gint ett_nr_rrc_SRS_CarrierSwitching;
-static gint ett_nr_rrc_T_srs_TPC_PDCCH_Group;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config;
-static gint ett_nr_rrc_SRS_TPC_PDCCH_Config;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex;
-static gint ett_nr_rrc_SRS_CC_SetIndex;
-static gint ett_nr_rrc_SRS_Config;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource;
-static gint ett_nr_rrc_SRS_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId;
-static gint ett_nr_rrc_T_resourceType_01;
-static gint ett_nr_rrc_T_aperiodic_01;
-static gint ett_nr_rrc_T_aperiodicSRS_ResourceTriggerList;
-static gint ett_nr_rrc_T_semi_persistent;
-static gint ett_nr_rrc_T_periodic_01;
-static gint ett_nr_rrc_T_pathlossReferenceRSList_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_AvailableSlotOffset_r17;
-static gint ett_nr_rrc_PathlossReferenceRS_Config;
-static gint ett_nr_rrc_PathlossReferenceRSList_r16;
-static gint ett_nr_rrc_PathlossReferenceRS_r16;
-static gint ett_nr_rrc_SRS_PosResourceSet_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_PosResourceId_r16;
-static gint ett_nr_rrc_T_resourceType_r16;
-static gint ett_nr_rrc_T_aperiodic_r16;
-static gint ett_nr_rrc_T_aperiodicSRS_ResourceTriggerList_r16;
-static gint ett_nr_rrc_T_semi_persistent_r16;
-static gint ett_nr_rrc_T_periodic_r16;
-static gint ett_nr_rrc_T_pathlossReferenceRS_Pos_r16;
-static gint ett_nr_rrc_SRS_Resource;
-static gint ett_nr_rrc_T_transmissionComb;
-static gint ett_nr_rrc_T_n2;
-static gint ett_nr_rrc_T_n4;
-static gint ett_nr_rrc_T_resourceMapping;
-static gint ett_nr_rrc_T_freqHopping;
-static gint ett_nr_rrc_T_resourceType_02;
-static gint ett_nr_rrc_T_aperiodic_02;
-static gint ett_nr_rrc_T_semi_persistent_01;
-static gint ett_nr_rrc_T_periodic_02;
-static gint ett_nr_rrc_T_resourceMapping_r16;
-static gint ett_nr_rrc_T_spatialRelationInfo_PDC_r17;
-static gint ett_nr_rrc_T_resourceMapping_r17;
-static gint ett_nr_rrc_T_partialFreqSounding_r17;
-static gint ett_nr_rrc_T_startRBIndexFScaling_r17;
-static gint ett_nr_rrc_T_transmissionComb_n8_r17;
-static gint ett_nr_rrc_T_srs_TCI_State_r17;
-static gint ett_nr_rrc_T_srs_DLorJointTCI_State_v1730;
-static gint ett_nr_rrc_SRS_PosResource_r16;
-static gint ett_nr_rrc_T_transmissionComb_r16;
-static gint ett_nr_rrc_T_n2_r16;
-static gint ett_nr_rrc_T_n4_r16;
-static gint ett_nr_rrc_T_n8_r16;
-static gint ett_nr_rrc_T_resourceMapping_r16_01;
-static gint ett_nr_rrc_T_freqHopping_r16;
-static gint ett_nr_rrc_T_resourceType_r16_01;
-static gint ett_nr_rrc_T_aperiodic_r16_01;
-static gint ett_nr_rrc_T_semi_persistent_r16_01;
-static gint ett_nr_rrc_T_periodic_r16_01;
-static gint ett_nr_rrc_SRS_SpatialRelationInfo;
-static gint ett_nr_rrc_T_referenceSignal_03;
-static gint ett_nr_rrc_T_srs;
-static gint ett_nr_rrc_SRS_SpatialRelationInfoPos_r16;
-static gint ett_nr_rrc_T_servingRS_r16;
-static gint ett_nr_rrc_T_referenceSignal_r16_02;
-static gint ett_nr_rrc_T_srs_SpatialRelation_r16;
-static gint ett_nr_rrc_T_resourceSelection_r16;
-static gint ett_nr_rrc_SSB_Configuration_r16;
-static gint ett_nr_rrc_T_sfn0_Offset_r16;
-static gint ett_nr_rrc_SSB_InfoNcell_r16;
-static gint ett_nr_rrc_DL_PRS_Info_r16;
-static gint ett_nr_rrc_SRS_PeriodicityAndOffset;
-static gint ett_nr_rrc_SRS_PeriodicityAndOffset_r16;
-static gint ett_nr_rrc_SRS_PeriodicityAndOffsetExt_r16;
-static gint ett_nr_rrc_SpatialRelationInfo_PDC_r17;
-static gint ett_nr_rrc_T_referenceSignal_04;
-static gint ett_nr_rrc_T_srs_01;
-static gint ett_nr_rrc_SRS_TPC_CommandConfig;
-static gint ett_nr_rrc_SSB_MTC;
-static gint ett_nr_rrc_T_periodicityAndOffset_01;
-static gint ett_nr_rrc_SSB_MTC2;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId;
-static gint ett_nr_rrc_SSB_MTC2_LP_r16;
-static gint ett_nr_rrc_SSB_MTC3_r16;
-static gint ett_nr_rrc_T_periodicityAndOffset_r16;
-static gint ett_nr_rrc_T_ssb_ToMeasure_r16;
-static gint ett_nr_rrc_SSB_MTC4_r17;
-static gint ett_nr_rrc_SSB_MTC_AdditionalPCI_r17;
-static gint ett_nr_rrc_T_ssb_PositionsInBurst_r17;
-static gint ett_nr_rrc_SSB_ToMeasure;
-static gint ett_nr_rrc_SS_RSSI_Measurement;
-static gint ett_nr_rrc_TAG_Config;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG;
-static gint ett_nr_rrc_TAG;
-static gint ett_nr_rrc_TAR_Config_r17;
-static gint ett_nr_rrc_TCI_ActivatedConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_5_OF_TCI_StateId;
-static gint ett_nr_rrc_TCI_State;
-static gint ett_nr_rrc_QCL_Info;
-static gint ett_nr_rrc_T_referenceSignal_05;
-static gint ett_nr_rrc_TCI_UL_State_r17;
-static gint ett_nr_rrc_T_referenceSignal_r17_01;
-static gint ett_nr_rrc_TDD_UL_DL_ConfigCommon;
-static gint ett_nr_rrc_TDD_UL_DL_Pattern;
-static gint ett_nr_rrc_TDD_UL_DL_ConfigDedicated;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex;
-static gint ett_nr_rrc_TDD_UL_DL_ConfigDedicated_IAB_MT_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig_IAB_MT_r16;
-static gint ett_nr_rrc_TDD_UL_DL_SlotConfig;
-static gint ett_nr_rrc_T_symbols;
-static gint ett_nr_rrc_T_explicit;
-static gint ett_nr_rrc_TDD_UL_DL_SlotConfig_IAB_MT_r16;
-static gint ett_nr_rrc_T_symbols_IAB_MT_r16;
-static gint ett_nr_rrc_T_explicit_r16;
-static gint ett_nr_rrc_T_explicit_IAB_MT_r16;
-static gint ett_nr_rrc_UAC_BarringInfoSetList;
-static gint ett_nr_rrc_UAC_BarringInfoSetList_v1700;
-static gint ett_nr_rrc_UAC_BarringInfoSet;
-static gint ett_nr_rrc_UAC_BarringInfoSet_v1700;
-static gint ett_nr_rrc_UAC_BarringPerCatList;
-static gint ett_nr_rrc_UAC_BarringPerCat;
-static gint ett_nr_rrc_UAC_BarringPerPLMN_List;
-static gint ett_nr_rrc_UAC_BarringPerPLMN;
-static gint ett_nr_rrc_T_uac_ACBarringListType;
-static gint ett_nr_rrc_SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex;
-static gint ett_nr_rrc_UE_TimersAndConstants;
-static gint ett_nr_rrc_UL_DelayValueConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DRB_Identity;
-static gint ett_nr_rrc_UL_ExcessDelayConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_ExcessDelay_DRB_IdentityInfo_r17;
-static gint ett_nr_rrc_ExcessDelay_DRB_IdentityInfo_r17;
-static gint ett_nr_rrc_UL_GapFR2_Config_r17;
-static gint ett_nr_rrc_UplinkCancellation_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_CI_ConfigurationPerServingCell_r16;
-static gint ett_nr_rrc_CI_ConfigurationPerServingCell_r16;
-static gint ett_nr_rrc_T_timeFrequencyRegion_r16;
-static gint ett_nr_rrc_UplinkConfigCommon;
-static gint ett_nr_rrc_UplinkConfigCommon_v1700;
-static gint ett_nr_rrc_UplinkConfigCommonSIB;
-static gint ett_nr_rrc_UplinkConfigCommonSIB_v1700;
-static gint ett_nr_rrc_UplinkConfigCommonSIB_v1760;
-static gint ett_nr_rrc_Uplink_powerControl_r17;
-static gint ett_nr_rrc_P0AlphaSet_r17;
-static gint ett_nr_rrc_Uu_RelayRLC_ChannelConfig_r17;
-static gint ett_nr_rrc_UplinkTxDirectCurrentList;
-static gint ett_nr_rrc_UplinkTxDirectCurrentCell;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP;
-static gint ett_nr_rrc_UplinkTxDirectCurrentBWP;
-static gint ett_nr_rrc_UplinkTxDirectCurrentMoreCarrierList_r17;
-static gint ett_nr_rrc_CC_Group_r17;
-static gint ett_nr_rrc_T_offsetToDefault_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReqComDC_Location_r17_OF_OffsetValue_r17;
-static gint ett_nr_rrc_OffsetValue_r17;
-static gint ett_nr_rrc_DefaultDC_Location_r17;
-static gint ett_nr_rrc_UplinkTxDirectCurrentTwoCarrierList_r16;
-static gint ett_nr_rrc_UplinkTxDirectCurrentTwoCarrier_r16;
-static gint ett_nr_rrc_UplinkTxDirectCurrentCarrierInfo_r16;
-static gint ett_nr_rrc_T_servCellInfo_r16;
-static gint ett_nr_rrc_UplinkTxDirectCurrentTwoCarrierInfo_r16;
-static gint ett_nr_rrc_ZP_CSI_RS_Resource;
-static gint ett_nr_rrc_ZP_CSI_RS_ResourceSet;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId;
-static gint ett_nr_rrc_AppLayerMeasParameters_r17;
-static gint ett_nr_rrc_BandCombinationList;
-static gint ett_nr_rrc_BandCombinationList_v1540;
-static gint ett_nr_rrc_BandCombinationList_v1550;
-static gint ett_nr_rrc_BandCombinationList_v1560;
-static gint ett_nr_rrc_BandCombinationList_v1570;
-static gint ett_nr_rrc_BandCombinationList_v1580;
-static gint ett_nr_rrc_BandCombinationList_v1590;
-static gint ett_nr_rrc_BandCombinationList_v15g0;
-static gint ett_nr_rrc_BandCombinationList_v15n0;
-static gint ett_nr_rrc_BandCombinationList_v1610;
-static gint ett_nr_rrc_BandCombinationList_v1630;
-static gint ett_nr_rrc_BandCombinationList_v1640;
-static gint ett_nr_rrc_BandCombinationList_v1650;
-static gint ett_nr_rrc_BandCombinationList_v1680;
-static gint ett_nr_rrc_BandCombinationList_v1690;
-static gint ett_nr_rrc_BandCombinationList_v16a0;
-static gint ett_nr_rrc_BandCombinationList_v1700;
-static gint ett_nr_rrc_BandCombinationList_v1720;
-static gint ett_nr_rrc_BandCombinationList_v1730;
-static gint ett_nr_rrc_BandCombinationList_v1740;
-static gint ett_nr_rrc_BandCombinationList_v1760;
-static gint ett_nr_rrc_BandCombinationList_v1770;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_r16;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1630;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1640;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1650;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1670;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1690;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v16a0;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v16e0;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1700;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1720;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1730;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1740;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1760;
-static gint ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770;
-static gint ett_nr_rrc_BandCombination;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters;
-static gint ett_nr_rrc_BandCombination_v1540;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1540;
-static gint ett_nr_rrc_BandCombination_v1550;
-static gint ett_nr_rrc_BandCombination_v1560;
-static gint ett_nr_rrc_BandCombination_v1570;
-static gint ett_nr_rrc_BandCombination_v1580;
-static gint ett_nr_rrc_BandCombination_v1590;
-static gint ett_nr_rrc_BandCombination_v15g0;
-static gint ett_nr_rrc_BandCombination_v15n0;
-static gint ett_nr_rrc_BandCombination_v1610;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1610;
-static gint ett_nr_rrc_BandCombination_v1630;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_ScalingFactorSidelink_r16;
-static gint ett_nr_rrc_BandCombination_v1640;
-static gint ett_nr_rrc_BandCombination_v1650;
-static gint ett_nr_rrc_BandCombination_v1680;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_IntraBandPowerClass_r16;
-static gint ett_nr_rrc_BandCombination_v1690;
-static gint ett_nr_rrc_BandCombination_v16a0;
-static gint ett_nr_rrc_BandCombination_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1710;
-static gint ett_nr_rrc_BandCombination_v1720;
-static gint ett_nr_rrc_BandCombination_v1730;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1730;
-static gint ett_nr_rrc_BandCombination_v1740;
-static gint ett_nr_rrc_BandCombination_v1760;
-static gint ett_nr_rrc_BandCombination_v1770;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1770;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxULTxSwitchingBandPairs_OF_ULTxSwitchingBandPair_r16;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1630;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1640;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1650;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1670;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1690;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v16a0;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v16e0;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxULTxSwitchingBandPairs_OF_ULTxSwitchingBandPair_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_UplinkTxSwitchingBandParameters_v1700;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1720;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1730;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1740;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1760;
-static gint ett_nr_rrc_BandCombination_UplinkTxSwitch_v1770;
-static gint ett_nr_rrc_ULTxSwitchingBandPair_r16;
-static gint ett_nr_rrc_ULTxSwitchingBandPair_v1700;
-static gint ett_nr_rrc_UplinkTxSwitchingBandParameters_v1700;
-static gint ett_nr_rrc_BandParameters;
-static gint ett_nr_rrc_T_eutra;
-static gint ett_nr_rrc_T_nr;
-static gint ett_nr_rrc_BandParameters_v1540;
-static gint ett_nr_rrc_T_srs_CarrierSwitch;
-static gint ett_nr_rrc_T_nr_01;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_SRS_SwitchingTimeNR;
-static gint ett_nr_rrc_T_eutra_01;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_SRS_SwitchingTimeEUTRA;
-static gint ett_nr_rrc_T_srs_TxSwitch;
-static gint ett_nr_rrc_BandParameters_v1610;
-static gint ett_nr_rrc_T_srs_TxSwitch_v1610;
-static gint ett_nr_rrc_BandParameters_v1710;
-static gint ett_nr_rrc_T_srs_AntennaSwitchingBeyond4RX_r17;
-static gint ett_nr_rrc_BandParameters_v1730;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_SRS_SwitchingAffectedBandsNR_r17;
-static gint ett_nr_rrc_BandParameters_v1770;
-static gint ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_r16;
-static gint ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1630;
-static gint ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1710;
-static gint ett_nr_rrc_BandCombinationParametersSidelinkEUTRA_NR_r16;
-static gint ett_nr_rrc_BandCombinationParametersSidelinkEUTRA_NR_v1630;
-static gint ett_nr_rrc_BandCombinationParametersSidelinkEUTRA_NR_v1710;
-static gint ett_nr_rrc_BandParametersSidelinkEUTRA_NR_r16;
-static gint ett_nr_rrc_T_eutra_02;
-static gint ett_nr_rrc_T_nr_02;
-static gint ett_nr_rrc_BandParametersSidelinkEUTRA_NR_v1630;
-static gint ett_nr_rrc_T_nr_03;
-static gint ett_nr_rrc_BandParametersSidelinkEUTRA_NR_v1710;
-static gint ett_nr_rrc_T_nr_04;
-static gint ett_nr_rrc_T_sl_TransmissionMode2_PartialSensing_r17;
-static gint ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeTwo_r17;
-static gint ett_nr_rrc_T_fr1_r17;
-static gint ett_nr_rrc_T_fr2_r17;
-static gint ett_nr_rrc_BandParametersSidelink_r16;
-static gint ett_nr_rrc_BandCombinationListSL_Discovery_r17;
-static gint ett_nr_rrc_BandParametersSidelinkDiscovery_r17;
-static gint ett_nr_rrc_T_sl_TransmissionMode2_PartialSensing_r17_01;
-static gint ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeTwo_r17_01;
-static gint ett_nr_rrc_T_fr1_r17_01;
-static gint ett_nr_rrc_T_fr2_r17_01;
-static gint ett_nr_rrc_CA_ParametersEUTRA;
-static gint ett_nr_rrc_CA_ParametersEUTRA_v1560;
-static gint ett_nr_rrc_CA_ParametersEUTRA_v1570;
-static gint ett_nr_rrc_CA_ParametersNR;
-static gint ett_nr_rrc_CA_ParametersNR_v1540;
-static gint ett_nr_rrc_T_csi_RS_IM_ReceptionForFeedbackPerBandComb;
-static gint ett_nr_rrc_CA_ParametersNR_v1550;
-static gint ett_nr_rrc_CA_ParametersNR_v1560;
-static gint ett_nr_rrc_CA_ParametersNR_v15g0;
-static gint ett_nr_rrc_CA_ParametersNR_v1610;
-static gint ett_nr_rrc_T_interFreqDAPS_r16;
-static gint ett_nr_rrc_T_pdcch_MonitoringCA_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCA_Mixed_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionMCG_UE_Mixed_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionSCG_UE_Mixed_r16;
-static gint ett_nr_rrc_CA_ParametersNR_v1630;
-static gint ett_nr_rrc_CA_ParametersNR_v1640;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxTwoPUCCH_Grp_ConfigList_r16_OF_TwoPUCCH_Grp_Configurations_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCA_Mixed_NonAlignedSpan_r16;
-static gint ett_nr_rrc_CA_ParametersNR_v1690;
-static gint ett_nr_rrc_T_csi_ReportingCrossPUCCH_Grp_r16;
-static gint ett_nr_rrc_T_additionalSymbols_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCarrierTypePairList_r16_OF_CarrierTypePair_r16;
-static gint ett_nr_rrc_CA_ParametersNR_v16a0;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetectionMixed_1_r16_OF_PDCCH_BlindDetectionMixedList_r16;
-static gint ett_nr_rrc_CA_ParametersNR_v1700;
-static gint ett_nr_rrc_T_mTRP_CSI_EnhancementPerBC_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_CSI_MultiTRP_SupportedCombinations_r17;
-static gint ett_nr_rrc_T_non_AlignedFrameBoundaries_r17;
-static gint ett_nr_rrc_CA_ParametersNR_v1720;
-static gint ett_nr_rrc_T_semiStaticPUCCH_CellSwitchSingleGroup_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxTwoPUCCH_Grp_ConfigList_r17_OF_TwoPUCCH_Grp_Configurations_r17;
-static gint ett_nr_rrc_T_dynamicPUCCH_CellSwitchSameLengthSingleGroup_r17;
-static gint ett_nr_rrc_T_dynamicPUCCH_CellSwitchDiffLengthSingleGroup_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetection_r17_OF_PDCCH_BlindDetectionMCG_SCG_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetection_r17_OF_PDCCH_BlindDetectionMixed_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetection_r17_OF_PDCCH_BlindDetectionMixed1_r17;
-static gint ett_nr_rrc_CA_ParametersNR_v1730;
-static gint ett_nr_rrc_CA_ParametersNR_v1740;
-static gint ett_nr_rrc_CA_ParametersNR_v1760;
-static gint ett_nr_rrc_CA_ParametersNR_v1770;
-static gint ett_nr_rrc_CrossCarrierSchedulingSCell_SpCell_r17;
-static gint ett_nr_rrc_T_supportedSCS_Combinations_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionMixedList_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCA_MixedExt_r16;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCG_UE_MixedExt_r16;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCA_MixedExt_r16;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCG_UE_MixedExt_r16;
-static gint ett_nr_rrc_PDCCH_BlindDetectionMCG_SCG_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionMixed_r17;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCG_UE_Mixed_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCG_UE_Mixed_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCA_Mixed_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionMixed1_r17;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionCG_UE_Mixed1_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCG_UE_Mixed1_r17;
-static gint ett_nr_rrc_PDCCH_BlindDetectionCA_Mixed1_r17;
-static gint ett_nr_rrc_SimulSRS_ForAntennaSwitching_r16;
-static gint ett_nr_rrc_TwoPUCCH_Grp_Configurations_r16;
-static gint ett_nr_rrc_TwoPUCCH_Grp_Configurations_r17;
-static gint ett_nr_rrc_TwoPUCCH_Grp_ConfigParams_r16;
-static gint ett_nr_rrc_CarrierTypePair_r16;
-static gint ett_nr_rrc_PUCCH_Grp_CarrierTypes_r16;
-static gint ett_nr_rrc_PUCCH_Group_Config_r17;
-static gint ett_nr_rrc_CA_ParametersNRDC;
-static gint ett_nr_rrc_CA_ParametersNRDC_v15g0;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1610;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1630;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1640;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1650;
-static gint ett_nr_rrc_CA_ParametersNRDC_v16a0;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1700;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1720;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1730;
-static gint ett_nr_rrc_CA_ParametersNRDC_v1760;
-static gint ett_nr_rrc_CarrierAggregationVariant;
-static gint ett_nr_rrc_CodebookParameters;
-static gint ett_nr_rrc_T_type1_04;
-static gint ett_nr_rrc_T_singlePanel;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_Resources_OF_SupportedCSI_RS_Resource;
-static gint ett_nr_rrc_T_multiPanel;
-static gint ett_nr_rrc_T_type2_03;
-static gint ett_nr_rrc_T_type2_PortSelection;
-static gint ett_nr_rrc_CodebookParameters_v1610;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAlt_r16;
-static gint ett_nr_rrc_T_type1_SinglePanel_r16;
-static gint ett_nr_rrc_T_type1_MultiPanel_r16;
-static gint ett_nr_rrc_T_type2_r16;
-static gint ett_nr_rrc_T_type2_PortSelection_r16;
-static gint ett_nr_rrc_CodebookParametersAddition_r16;
-static gint ett_nr_rrc_T_etype2_r16;
-static gint ett_nr_rrc_T_etype2R1_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16;
-static gint ett_nr_rrc_T_etype2R2_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_01;
-static gint ett_nr_rrc_T_etype2_PS_r16;
-static gint ett_nr_rrc_T_etype2R1_PortSelection_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_02;
-static gint ett_nr_rrc_T_etype2R2_PortSelection_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_03;
-static gint ett_nr_rrc_CodebookComboParametersAddition_r16;
-static gint ett_nr_rrc_T_type1SP_Type2_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_04;
-static gint ett_nr_rrc_T_type1SP_Type2PS_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_05;
-static gint ett_nr_rrc_T_type1SP_eType2R1_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_06;
-static gint ett_nr_rrc_T_type1SP_eType2R2_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_07;
-static gint ett_nr_rrc_T_type1SP_eType2R1PS_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_08;
-static gint ett_nr_rrc_T_type1SP_eType2R2PS_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_09;
-static gint ett_nr_rrc_T_type1SP_Type2_Type2PS_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_10;
-static gint ett_nr_rrc_T_type1MP_Type2_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_11;
-static gint ett_nr_rrc_T_type1MP_Type2PS_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_12;
-static gint ett_nr_rrc_T_type1MP_eType2R1_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_13;
-static gint ett_nr_rrc_T_type1MP_eType2R2_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_14;
-static gint ett_nr_rrc_T_type1MP_eType2R1PS_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_15;
-static gint ett_nr_rrc_T_type1MP_eType2R2PS_null_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_16;
-static gint ett_nr_rrc_T_type1MP_Type2_Type2PS_r16;
-static gint ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_17;
-static gint ett_nr_rrc_CodebookParametersfetype2_r17;
-static gint ett_nr_rrc_T_fetype2basic_r17;
-static gint ett_nr_rrc_T_fetype2R1_r17;
-static gint ett_nr_rrc_T_fetype2R2_r17;
-static gint ett_nr_rrc_CodebookComboParameterMixedType_r17;
-static gint ett_nr_rrc_T_type1SP_feType2PS_null_r17;
-static gint ett_nr_rrc_T_type1SP_feType2PS_M2R1_null_r17;
-static gint ett_nr_rrc_T_type1SP_feType2PS_M2R2_null_r1;
-static gint ett_nr_rrc_T_type1SP_Type2_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_type1SP_Type2_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_T_type1MP_feType2PS_null_r17;
-static gint ett_nr_rrc_T_type1MP_feType2PS_M2R1_null_r17;
-static gint ett_nr_rrc_T_type1MP_feType2PS_M2R2_null_r17;
-static gint ett_nr_rrc_T_type1MP_Type2_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_type1MP_Type2_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_CodebookComboParameterMultiTRP_r17;
-static gint ett_nr_rrc_T_nCJT_null_null;
-static gint ett_nr_rrc_T_nCJT1SP_null_null;
-static gint ett_nr_rrc_T_nCJT_Type2_null_r16;
-static gint ett_nr_rrc_T_nCJT_Type2PS_null_r16;
-static gint ett_nr_rrc_T_nCJT_eType2R1_null_r16;
-static gint ett_nr_rrc_T_nCJT_eType2R2_null_r16;
-static gint ett_nr_rrc_T_nCJT_eType2R1PS_null_r16;
-static gint ett_nr_rrc_T_nCJT_eType2R2PS_null_r16;
-static gint ett_nr_rrc_T_nCJT_Type2_Type2PS_r16;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_null_r16;
-static gint ett_nr_rrc_T_nCJT1SP_Type2PS_null_r16;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1_null_r16;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R2_null_r16;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1PS_null_r16;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R2PS_null_r16;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_Type2PS_r16;
-static gint ett_nr_rrc_T_nCJT_feType2PS_null_r17;
-static gint ett_nr_rrc_T_nCJT_feType2PS_M2R1_null_r17;
-static gint ett_nr_rrc_T_nCJT_feType2PS_M2R2_null_r17;
-static gint ett_nr_rrc_T_nCJT_Type2_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_nCJT_Type2_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_T_nCJT1SP_feType2PS_null_r17;
-static gint ett_nr_rrc_T_nCJT1SP_feType2PS_M2R1_null_r17;
-static gint ett_nr_rrc_T_nCJT1SP_feType2PS_M2R2_null_r1;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M1_r17;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M2R1_r17;
-static gint ett_nr_rrc_CodebookParametersAdditionPerBC_r16;
-static gint ett_nr_rrc_T_etype2R1_r16_01;
-static gint ett_nr_rrc_T_etype2R2_r16_01;
-static gint ett_nr_rrc_T_etype2R1_PortSelection_r16_01;
-static gint ett_nr_rrc_T_etype2R2_PortSelection_r16_01;
-static gint ett_nr_rrc_CodebookComboParametersAdditionPerBC_r16;
-static gint ett_nr_rrc_T_type1SP_Type2_null_r16_01;
-static gint ett_nr_rrc_T_type1SP_Type2PS_null_r16_01;
-static gint ett_nr_rrc_T_type1SP_eType2R1_null_r16_01;
-static gint ett_nr_rrc_T_type1SP_eType2R2_null_r16_01;
-static gint ett_nr_rrc_T_type1SP_eType2R1PS_null_r16_01;
-static gint ett_nr_rrc_T_type1SP_eType2R2PS_null_r16_01;
-static gint ett_nr_rrc_T_type1SP_Type2_Type2PS_r16_01;
-static gint ett_nr_rrc_T_type1MP_Type2_null_r16_01;
-static gint ett_nr_rrc_T_type1MP_Type2PS_null_r16_01;
-static gint ett_nr_rrc_T_type1MP_eType2R1_null_r16_01;
-static gint ett_nr_rrc_T_type1MP_eType2R2_null_r16_01;
-static gint ett_nr_rrc_T_type1MP_eType2R1PS_null_r16_01;
-static gint ett_nr_rrc_T_type1MP_eType2R2PS_null_r16_01;
-static gint ett_nr_rrc_T_type1MP_Type2_Type2PS_r16_01;
-static gint ett_nr_rrc_CodebookParametersfetype2PerBC_r17;
-static gint ett_nr_rrc_T_fetype2basic_r17_01;
-static gint ett_nr_rrc_T_fetype2R1_r17_01;
-static gint ett_nr_rrc_T_fetype2R2_r17_01;
-static gint ett_nr_rrc_CodebookComboParameterMixedTypePerBC_r17;
-static gint ett_nr_rrc_T_type1SP_feType2PS_null_r17_01;
-static gint ett_nr_rrc_T_type1SP_feType2PS_M2R1_null_r17_01;
-static gint ett_nr_rrc_T_type1SP_feType2PS_M2R2_null_r17;
-static gint ett_nr_rrc_T_type1SP_Type2_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_type1SP_Type2_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_T_type1MP_feType2PS_null_r17_01;
-static gint ett_nr_rrc_T_type1MP_feType2PS_M2R1_null_r17_01;
-static gint ett_nr_rrc_T_type1MP_feType2PS_M2R2_null_r17_01;
-static gint ett_nr_rrc_T_type1MP_Type2_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_type1MP_Type2_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_CodebookComboParameterMultiTRP_PerBC_r17;
-static gint ett_nr_rrc_T_nCJT_null_null_01;
-static gint ett_nr_rrc_T_nCJT1SP_null_null_01;
-static gint ett_nr_rrc_T_nCJT_Type2_null_r16_01;
-static gint ett_nr_rrc_T_nCJT_Type2PS_null_r16_01;
-static gint ett_nr_rrc_T_nCJT_eType2R1_null_r16_01;
-static gint ett_nr_rrc_T_nCJT_eType2R2_null_r16_01;
-static gint ett_nr_rrc_T_nCJT_eType2R1PS_null_r16_01;
-static gint ett_nr_rrc_T_nCJT_eType2R2PS_null_r16_01;
-static gint ett_nr_rrc_T_nCJT_Type2_Type2PS_r16_01;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_null_r16_01;
-static gint ett_nr_rrc_T_nCJT1SP_Type2PS_null_r16_01;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1_null_r16_01;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R2_null_r16_01;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1PS_null_r16_01;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R2PS_null_r16_01;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_Type2PS_r16_01;
-static gint ett_nr_rrc_T_nCJT_feType2PS_null_r17_01;
-static gint ett_nr_rrc_T_nCJT_feType2PS_M2R1_null_r17_01;
-static gint ett_nr_rrc_T_nCJT_feType2PS_M2R2_null_r17_01;
-static gint ett_nr_rrc_T_nCJT_Type2_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_nCJT_Type2_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_T_nCJT1SP_feType2PS_null_r17_01;
-static gint ett_nr_rrc_T_nCJT1SP_feType2PS_M2R1_null_r17_01;
-static gint ett_nr_rrc_T_nCJT1SP_feType2PS_M2R2_null_r1_01;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M1_r17_01;
-static gint ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M2R1_r17_01;
-static gint ett_nr_rrc_CodebookVariantsList_r16;
-static gint ett_nr_rrc_SupportedCSI_RS_Resource;
-static gint ett_nr_rrc_FeatureSetCombination;
-static gint ett_nr_rrc_FeatureSetsPerBand;
-static gint ett_nr_rrc_FeatureSet;
-static gint ett_nr_rrc_T_eutra_03;
-static gint ett_nr_rrc_T_nr_05;
-static gint ett_nr_rrc_FeatureSetDownlink;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetDownlinkPerCC_Id;
-static gint ett_nr_rrc_T_timeDurationForQCL;
-static gint ett_nr_rrc_T_pdsch_ProcessingType1_DifferentTB_PerSlot;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyB;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyC;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyD;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyE;
-static gint ett_nr_rrc_FeatureSetDownlink_v1540;
-static gint ett_nr_rrc_T_pdcch_MonitoringAnyOccasionsWithSpanGap;
-static gint ett_nr_rrc_T_pdsch_ProcessingType2;
-static gint ett_nr_rrc_T_pdsch_ProcessingType2_Limited;
-static gint ett_nr_rrc_FeatureSetDownlink_v15a0;
-static gint ett_nr_rrc_FeatureSetDownlink_v1610;
-static gint ett_nr_rrc_T_cbgPDSCH_ProcessingType1_DifferentTB_PerSlot_r16;
-static gint ett_nr_rrc_T_cbgPDSCH_ProcessingType2_DifferentTB_PerSlot_r16;
-static gint ett_nr_rrc_T_intraFreqDAPS_r16;
-static gint ett_nr_rrc_T_pdcch_Monitoring_r16;
-static gint ett_nr_rrc_T_pdsch_ProcessingType1_r16;
-static gint ett_nr_rrc_T_pdsch_ProcessingType2_r16;
-static gint ett_nr_rrc_T_crossCarrierSchedulingProcessing_DiffSCS_r16;
-static gint ett_nr_rrc_FeatureSetDownlink_v1700;
-static gint ett_nr_rrc_T_timeDurationForQCL_v1710;
-static gint ett_nr_rrc_T_mTRP_PDCCH_Case2_1SpanGap_r17;
-static gint ett_nr_rrc_T_mTRP_PDCCH_legacyMonitoring_r17;
-static gint ett_nr_rrc_T_mTRP_PDCCH_Repetition_r17;
-static gint ett_nr_rrc_FeatureSetDownlink_v1720;
-static gint ett_nr_rrc_T_rtt_BasedPDC_PRS_r17;
-static gint ett_nr_rrc_T_maxNumberPRS_ResourceProcessedPerSlot_r17;
-static gint ett_nr_rrc_FeatureSetDownlink_v1730;
-static gint ett_nr_rrc_PDCCH_MonitoringOccasions_r16;
-static gint ett_nr_rrc_PDCCH_RepetitionParameters_r17;
-static gint ett_nr_rrc_DummyA;
-static gint ett_nr_rrc_DummyB;
-static gint ett_nr_rrc_DummyC;
-static gint ett_nr_rrc_DummyD;
-static gint ett_nr_rrc_DummyE;
-static gint ett_nr_rrc_FeatureSetDownlinkPerCC;
-static gint ett_nr_rrc_FeatureSetDownlinkPerCC_v1620;
-static gint ett_nr_rrc_FeatureSetDownlinkPerCC_v1700;
-static gint ett_nr_rrc_FeatureSetDownlinkPerCC_v1720;
-static gint ett_nr_rrc_FeatureSetDownlinkPerCC_v1730;
-static gint ett_nr_rrc_MultiDCI_MultiTRP_r16;
-static gint ett_nr_rrc_CRS_InterfMitigation_r17;
-static gint ett_nr_rrc_FeatureSets;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1540;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1540;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1540;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v15a0;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1610;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1610;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1620;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1630;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1640;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1710;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1720;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1720;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1720;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1730;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1730;
-static gint ett_nr_rrc_FeatureSets_v16d0;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v16d0;
-static gint ett_nr_rrc_FeatureSetUplink;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetUplinkPerCC_Id;
-static gint ett_nr_rrc_T_pusch_ProcessingType1_DifferentTB_PerSlot;
-static gint ett_nr_rrc_FeatureSetUplink_v1540;
-static gint ett_nr_rrc_T_pusch_ProcessingType2;
-static gint ett_nr_rrc_FeatureSetUplink_v1610;
-static gint ett_nr_rrc_T_pusch_RepetitionTypeB_r16;
-static gint ett_nr_rrc_T_cbgPUSCH_ProcessingType1_DifferentTB_PerSlot_r16;
-static gint ett_nr_rrc_T_cbgPUSCH_ProcessingType2_DifferentTB_PerSlot_r16;
-static gint ett_nr_rrc_T_intraFreqDAPS_UL_r16;
-static gint ett_nr_rrc_T_multiPUCCH_r16;
-static gint ett_nr_rrc_T_ul_IntraUE_Mux_r16;
-static gint ett_nr_rrc_T_crossCarrierSchedulingProcessing_DiffSCS_r16_01;
-static gint ett_nr_rrc_T_ul_FullPwrMode2_TPMIGroup_r16;
-static gint ett_nr_rrc_FeatureSetUplink_v1630;
-static gint ett_nr_rrc_FeatureSetUplink_v1640;
-static gint ett_nr_rrc_T_offsetSRS_CB_PUSCH_PDCCH_MonitorAnyOccWithSpanGap_fr1_r16;
-static gint ett_nr_rrc_FeatureSetUplink_v16d0;
-static gint ett_nr_rrc_T_pusch_RepetitionTypeB_v16d0;
-static gint ett_nr_rrc_FeatureSetUplink_v1710;
-static gint ett_nr_rrc_FeatureSetUplink_v1720;
-static gint ett_nr_rrc_T_phy_PrioritizationHighPriorityDG_LowPriorityCG_r17;
-static gint ett_nr_rrc_T_additionalCancellationTime_r17;
-static gint ett_nr_rrc_SubSlot_Config_r16;
-static gint ett_nr_rrc_SRS_AllPosResources_r16;
-static gint ett_nr_rrc_SRS_PosResources_r16;
-static gint ett_nr_rrc_SRS_PosResourceAP_r16;
-static gint ett_nr_rrc_SRS_PosResourceSP_r16;
-static gint ett_nr_rrc_SRS_Resources;
-static gint ett_nr_rrc_DummyF;
-static gint ett_nr_rrc_FeatureSetUplinkPerCC;
-static gint ett_nr_rrc_T_mimo_CB_PUSCH;
-static gint ett_nr_rrc_FeatureSetUplinkPerCC_v1540;
-static gint ett_nr_rrc_T_mimo_NonCB_PUSCH;
-static gint ett_nr_rrc_FeatureSetUplinkPerCC_v1700;
-static gint ett_nr_rrc_FreqBandList;
-static gint ett_nr_rrc_FreqBandInformation;
-static gint ett_nr_rrc_FreqBandInformationEUTRA;
-static gint ett_nr_rrc_FreqBandInformationNR;
-static gint ett_nr_rrc_FR2_2_AccessParamsPerBand_r17;
-static gint ett_nr_rrc_T_enhancedPDCCH_monitoringSCS_960kHz_r17;
-static gint ett_nr_rrc_T_support32_DL_HARQ_ProcessPerSCS_r17;
-static gint ett_nr_rrc_T_support32_UL_HARQ_ProcessPerSCS_r17;
-static gint ett_nr_rrc_HighSpeedParameters_r16;
-static gint ett_nr_rrc_HighSpeedParameters_v1650;
-static gint ett_nr_rrc_HighSpeedParameters_v1700;
-static gint ett_nr_rrc_IMS_Parameters;
-static gint ett_nr_rrc_IMS_Parameters_v1700;
-static gint ett_nr_rrc_IMS_ParametersCommon;
-static gint ett_nr_rrc_IMS_ParametersFRX_Diff;
-static gint ett_nr_rrc_IMS_ParametersFR2_2_r17;
-static gint ett_nr_rrc_InterRAT_Parameters;
-static gint ett_nr_rrc_EUTRA_Parameters;
-static gint ett_nr_rrc_EUTRA_ParametersCommon;
-static gint ett_nr_rrc_EUTRA_ParametersXDD_Diff;
-static gint ett_nr_rrc_UTRA_FDD_Parameters_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsUTRA_FDD_r16_OF_SupportedBandUTRA_FDD_r16;
-static gint ett_nr_rrc_MAC_Parameters;
-static gint ett_nr_rrc_MAC_Parameters_v1610;
-static gint ett_nr_rrc_MAC_Parameters_v1700;
-static gint ett_nr_rrc_MAC_ParametersCommon;
-static gint ett_nr_rrc_MAC_ParametersFRX_Diff_r16;
-static gint ett_nr_rrc_T_drx_Adaptation_r16;
-static gint ett_nr_rrc_MAC_ParametersFR2_2_r17;
-static gint ett_nr_rrc_T_drx_Adaptation_r17;
-static gint ett_nr_rrc_MAC_ParametersXDD_Diff;
-static gint ett_nr_rrc_MinTimeGap_r16;
-static gint ett_nr_rrc_MinTimeGapFR2_2_r17;
-static gint ett_nr_rrc_MeasAndMobParameters;
-static gint ett_nr_rrc_MeasAndMobParameters_v1700;
-static gint ett_nr_rrc_MeasAndMobParametersCommon;
-static gint ett_nr_rrc_T_condHandoverParametersCommon_r16;
-static gint ett_nr_rrc_T_concurrentMeasGap_r17;
-static gint ett_nr_rrc_T_independentGapConfig_maxCC_r17;
-static gint ett_nr_rrc_MeasAndMobParametersXDD_Diff;
-static gint ett_nr_rrc_MeasAndMobParametersFRX_Diff;
-static gint ett_nr_rrc_MeasAndMobParametersFR2_2_r17;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_v1560;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_v1610;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_v1700;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_v1730;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_Common;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_Common_v1610;
-static gint ett_nr_rrc_T_condPSCellChangeParametersCommon_r16;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_Common_v1700;
-static gint ett_nr_rrc_T_condPSCellChangeParameters_r17;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_Common_v1730;
-static gint ett_nr_rrc_T_independentGapConfig_maxCC_r17_01;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff_v1560;
-static gint ett_nr_rrc_MeasAndMobParametersMRDC_FRX_Diff;
-static gint ett_nr_rrc_MIMO_ParametersPerBand;
-static gint ett_nr_rrc_T_tci_StatePDSCH;
-static gint ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL;
-static gint ett_nr_rrc_T_uplinkBeamManagement;
-static gint ett_nr_rrc_T_beamReportTiming;
-static gint ett_nr_rrc_T_ptrs_DensityRecommendationSetDL;
-static gint ett_nr_rrc_T_ptrs_DensityRecommendationSetUL;
-static gint ett_nr_rrc_T_beamSwitchTiming;
-static gint ett_nr_rrc_T_ssb_csirs_SINR_measurement_r16;
-static gint ett_nr_rrc_T_multiDCI_multiTRP_Parameters_r16;
-static gint ett_nr_rrc_T_outOfOrderOperationDL_r16;
-static gint ett_nr_rrc_T_maxNumberActivatedTCI_States_r16;
-static gint ett_nr_rrc_T_singleDCI_SDM_scheme_Parameters_r16;
-static gint ett_nr_rrc_T_supportInter_slotTDM_r16;
-static gint ett_nr_rrc_T_beamSwitchTiming_r16;
-static gint ett_nr_rrc_T_semi_PersistentL1_SINR_Report_PUCCH_r16;
-static gint ett_nr_rrc_T_spatialRelations_v1640;
-static gint ett_nr_rrc_T_mTRP_BFR_twoBFD_RS_Set_r17;
-static gint ett_nr_rrc_T_unifiedJointTCI_r17;
-static gint ett_nr_rrc_T_unifiedJointTCI_multiMAC_CE_r17;
-static gint ett_nr_rrc_T_unifiedJointTCI_InterCell_r17;
-static gint ett_nr_rrc_T_unifiedSeparateTCI_r17;
-static gint ett_nr_rrc_T_unifiedSeparateTCI_multiMAC_CE_r17;
-static gint ett_nr_rrc_T_unifiedSeparateTCI_ListSharingCA_r17;
-static gint ett_nr_rrc_T_unifiedSeparateTCI_InterCell_r17;
-static gint ett_nr_rrc_T_unifiedJointTCI_mTRP_InterCell_BM_r17;
-static gint ett_nr_rrc_T_mpe_Mitigation_r17;
-static gint ett_nr_rrc_T_srs_PortReport_r17;
-static gint ett_nr_rrc_T_mTRP_PUSCH_CSI_RS_r17;
-static gint ett_nr_rrc_T_mTRP_inter_Cell_r17;
-static gint ett_nr_rrc_T_mTRP_GroupBasedL1_RSRP_r17;
-static gint ett_nr_rrc_T_mTRP_CSI_EnhancementPerBand_r17;
-static gint ett_nr_rrc_T_beamSwitchTiming_v1710;
-static gint ett_nr_rrc_T_beamSwitchTiming_r17;
-static gint ett_nr_rrc_T_beamReportTiming_v1710;
-static gint ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL_v1710;
-static gint ett_nr_rrc_DummyG;
-static gint ett_nr_rrc_BeamManagementSSB_CSI_RS;
-static gint ett_nr_rrc_DummyH;
-static gint ett_nr_rrc_CSI_RS_ForTracking;
-static gint ett_nr_rrc_CSI_RS_IM_ReceptionForFeedback;
-static gint ett_nr_rrc_CSI_RS_ProcFrameworkForSRS;
-static gint ett_nr_rrc_CSI_ReportFramework;
-static gint ett_nr_rrc_CSI_ReportFrameworkExt_r16;
-static gint ett_nr_rrc_PTRS_DensityRecommendationDL;
-static gint ett_nr_rrc_PTRS_DensityRecommendationUL;
-static gint ett_nr_rrc_SpatialRelations;
-static gint ett_nr_rrc_DummyI;
-static gint ett_nr_rrc_CSI_MultiTRP_SupportedCombinations_r17;
-static gint ett_nr_rrc_MRDC_Parameters;
-static gint ett_nr_rrc_MRDC_Parameters_v1580;
-static gint ett_nr_rrc_MRDC_Parameters_v1590;
-static gint ett_nr_rrc_MRDC_Parameters_v15g0;
-static gint ett_nr_rrc_MRDC_Parameters_v15n0;
-static gint ett_nr_rrc_MRDC_Parameters_v1620;
-static gint ett_nr_rrc_T_maxUplinkDutyCycle_interBandENDC_TDD_PC2_r16;
-static gint ett_nr_rrc_MRDC_Parameters_v1630;
-static gint ett_nr_rrc_T_maxUplinkDutyCycle_interBandENDC_FDD_TDD_PC2_r16;
-static gint ett_nr_rrc_MRDC_Parameters_v1700;
-static gint ett_nr_rrc_MRDC_Parameters_v1770;
-static gint ett_nr_rrc_NRDC_Parameters;
-static gint ett_nr_rrc_T_nRDC_Parameters_dummy;
-static gint ett_nr_rrc_NRDC_Parameters_v1570;
-static gint ett_nr_rrc_NRDC_Parameters_v15c0;
-static gint ett_nr_rrc_NRDC_Parameters_v1610;
-static gint ett_nr_rrc_NRDC_Parameters_v1700;
-static gint ett_nr_rrc_NTN_Parameters_r17;
-static gint ett_nr_rrc_OLPC_SRS_Pos_r16;
-static gint ett_nr_rrc_PDCP_Parameters;
-static gint ett_nr_rrc_T_supportedROHC_Profiles;
-static gint ett_nr_rrc_T_udc_r17;
-static gint ett_nr_rrc_T_operatorDictionary_r17;
-static gint ett_nr_rrc_PDCP_ParametersMRDC;
-static gint ett_nr_rrc_PDCP_ParametersMRDC_v1610;
-static gint ett_nr_rrc_Phy_Parameters;
-static gint ett_nr_rrc_Phy_Parameters_v16a0;
-static gint ett_nr_rrc_Phy_ParametersCommon;
-static gint ett_nr_rrc_T_crossSlotScheduling_r16;
-static gint ett_nr_rrc_T_pusch_RepetitionTypeA_r16;
-static gint ett_nr_rrc_T_maxTotalResourcesForAcrossFreqRanges_r16;
-static gint ett_nr_rrc_T_harqACK_separateMultiDCI_MultiTRP_r16;
-static gint ett_nr_rrc_T_bwp_SwitchingMultiCCs_r16;
-static gint ett_nr_rrc_T_bwp_SwitchingMultiDormancyCCs_r16;
-static gint ett_nr_rrc_T_sps_HARQ_ACK_Deferral_r17;
-static gint ett_nr_rrc_Phy_ParametersCommon_v16a0;
-static gint ett_nr_rrc_Phy_ParametersXDD_Diff;
-static gint ett_nr_rrc_Phy_ParametersFRX_Diff;
-static gint ett_nr_rrc_T_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot;
-static gint ett_nr_rrc_T_pdcch_BlindDetectionNRDC;
-static gint ett_nr_rrc_T_maxTotalResourcesForOneFreqRange_r16;
-static gint ett_nr_rrc_Phy_ParametersFR1;
-static gint ett_nr_rrc_Phy_ParametersFR2;
-static gint ett_nr_rrc_Phy_ParametersMRDC;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry;
-static gint ett_nr_rrc_NAICS_Capability_Entry;
-static gint ett_nr_rrc_Phy_ParametersSharedSpectrumChAccess_r16;
-static gint ett_nr_rrc_T_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_r16;
-static gint ett_nr_rrc_PosSRS_RRC_Inactive_OutsideInitialUL_BWP_r17;
-static gint ett_nr_rrc_PowSav_Parameters_r16;
-static gint ett_nr_rrc_PowSav_Parameters_v1700;
-static gint ett_nr_rrc_PowSav_ParametersCommon_r16;
-static gint ett_nr_rrc_PowSav_ParametersFRX_Diff_r16;
-static gint ett_nr_rrc_PowSav_ParametersFR2_2_r17;
-static gint ett_nr_rrc_ProcessingParameters;
-static gint ett_nr_rrc_T_differentTB_PerSlot;
-static gint ett_nr_rrc_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
-static gint ett_nr_rrc_T_ppw_durationOfPRS_Processing_r17;
-static gint ett_nr_rrc_T_ppw_durationOfPRS_Processing1_r17;
-static gint ett_nr_rrc_T_ppw_durationOfPRS_Processing2_r17;
-static gint ett_nr_rrc_T_ppw_maxNumOfDL_PRS_ResProcessedPerSlot_r17;
-static gint ett_nr_rrc_T_ppw_maxNumOfDL_Bandwidth_r17;
-static gint ett_nr_rrc_RedCapParameters_r17;
-static gint ett_nr_rrc_RedCapParameters_v1740;
-static gint ett_nr_rrc_RF_Parameters;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR;
-static gint ett_nr_rrc_RF_Parameters_v15g0;
-static gint ett_nr_rrc_RF_Parameters_v16a0;
-static gint ett_nr_rrc_RF_Parameters_v16c0;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR_v16c0;
-static gint ett_nr_rrc_BandNR;
-static gint ett_nr_rrc_T_channelBWs_DL;
-static gint ett_nr_rrc_T_fr1;
-static gint ett_nr_rrc_T_fr2;
-static gint ett_nr_rrc_T_channelBWs_UL;
-static gint ett_nr_rrc_T_fr1_01;
-static gint ett_nr_rrc_T_fr2_01;
-static gint ett_nr_rrc_T_channelBWs_DL_v1590;
-static gint ett_nr_rrc_T_fr1_02;
-static gint ett_nr_rrc_T_fr2_02;
-static gint ett_nr_rrc_T_channelBWs_UL_v1590;
-static gint ett_nr_rrc_T_fr1_03;
-static gint ett_nr_rrc_T_fr2_03;
-static gint ett_nr_rrc_T_multipleRateMatchingEUTRA_CRS_r16;
-static gint ett_nr_rrc_T_channelBW_DL_IAB_r16;
-static gint ett_nr_rrc_T_fr1_100mhz;
-static gint ett_nr_rrc_T_fr2_200mhz;
-static gint ett_nr_rrc_T_channelBW_UL_IAB_r16;
-static gint ett_nr_rrc_T_fr1_100mhz_01;
-static gint ett_nr_rrc_T_fr2_200mhz_01;
-static gint ett_nr_rrc_T_activeConfiguredGrant_r16;
-static gint ett_nr_rrc_T_sps_r16;
-static gint ett_nr_rrc_T_maxDurationDMRS_Bundling_r17;
-static gint ett_nr_rrc_T_aperiodicCSI_RS_FastScellActivation_r17;
-static gint ett_nr_rrc_T_enhancedType3_HARQ_CodebookFeedback_r17;
-static gint ett_nr_rrc_T_triggeredHARQ_CodebookRetx_r17;
-static gint ett_nr_rrc_T_maxModulationOrderForMulticast_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
-static gint ett_nr_rrc_T_srs_SemiPersistent_PosResourcesRRC_Inactive_r17;
-static gint ett_nr_rrc_BandNR_v16c0;
-static gint ett_nr_rrc_RF_ParametersMRDC;
-static gint ett_nr_rrc_T_supportedBandCombinationListNEDC_Only_v15a0;
-static gint ett_nr_rrc_T_supportedBandCombinationListNEDC_Only_v1720;
-static gint ett_nr_rrc_RF_ParametersMRDC_v15g0;
-static gint ett_nr_rrc_RF_ParametersMRDC_v15n0;
-static gint ett_nr_rrc_RF_ParametersMRDC_v16e0;
-static gint ett_nr_rrc_RLC_Parameters;
-static gint ett_nr_rrc_SDAP_Parameters;
-static gint ett_nr_rrc_SidelinkParameters_r16;
-static gint ett_nr_rrc_SidelinkParametersNR_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandSidelink_r16;
-static gint ett_nr_rrc_SidelinkParametersEUTRA_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_BandSidelinkEUTRA_r16;
-static gint ett_nr_rrc_RLC_ParametersSidelink_r16;
-static gint ett_nr_rrc_MAC_ParametersSidelink_r16;
-static gint ett_nr_rrc_UE_SidelinkCapabilityAddXDD_Mode_r16;
-static gint ett_nr_rrc_MAC_ParametersSidelinkCommon_r16;
-static gint ett_nr_rrc_MAC_ParametersSidelinkXDD_Diff_r16;
-static gint ett_nr_rrc_BandSidelinkEUTRA_r16;
-static gint ett_nr_rrc_T_gnb_ScheduledMode3SidelinkEUTRA_r16;
-static gint ett_nr_rrc_BandSidelink_r16;
-static gint ett_nr_rrc_T_sl_Reception_r16;
-static gint ett_nr_rrc_T_scs_CP_PatternRxSidelink_r16;
-static gint ett_nr_rrc_T_fr1_r16;
-static gint ett_nr_rrc_T_fr2_r16_01;
-static gint ett_nr_rrc_T_sl_TransmissionMode1_r16;
-static gint ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeOne_r16;
-static gint ett_nr_rrc_T_fr1_r16_01;
-static gint ett_nr_rrc_T_fr2_r16_02;
-static gint ett_nr_rrc_T_sync_Sidelink_r16;
-static gint ett_nr_rrc_T_psfch_FormatZeroSidelink_r16;
-static gint ett_nr_rrc_T_sl_TransmissionMode2_r16;
-static gint ett_nr_rrc_T_congestionControlSidelink_r16;
-static gint ett_nr_rrc_T_sl_TransmissionMode2_RandomResourceSelection_r17;
-static gint ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeTwo_r17_02;
-static gint ett_nr_rrc_T_fr1_r17_04;
-static gint ett_nr_rrc_T_fr2_r17_04;
-static gint ett_nr_rrc_T_sync_Sidelink_v1710;
-static gint ett_nr_rrc_RelayParameters_r17;
-static gint ett_nr_rrc_SON_Parameters_r16;
-static gint ett_nr_rrc_SpatialRelationsSRS_Pos_r16;
-static gint ett_nr_rrc_SRS_AllPosResourcesRRC_Inactive_r17;
-static gint ett_nr_rrc_T_srs_PosResourcesRRC_Inactive_r17;
-static gint ett_nr_rrc_SRS_SwitchingTimeNR;
-static gint ett_nr_rrc_SRS_SwitchingTimeEUTRA;
-static gint ett_nr_rrc_SupportedBandwidth;
-static gint ett_nr_rrc_SupportedBandwidth_v1700;
-static gint ett_nr_rrc_UE_BasedPerfMeas_Parameters_r16;
-static gint ett_nr_rrc_UE_CapabilityRAT_ContainerList;
-static gint ett_nr_rrc_UE_CapabilityRAT_Container;
-static gint ett_nr_rrc_UE_CapabilityRAT_RequestList;
-static gint ett_nr_rrc_UE_CapabilityRAT_Request;
-static gint ett_nr_rrc_UE_CapabilityRequestFilterCommon;
-static gint ett_nr_rrc_T_mrdc_Request;
-static gint ett_nr_rrc_T_codebookTypeRequest_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellGroupings_r16_OF_CellGrouping_r16;
-static gint ett_nr_rrc_CellGrouping_r16;
-static gint ett_nr_rrc_UE_CapabilityRequestFilterNR;
-static gint ett_nr_rrc_UE_CapabilityRequestFilterNR_v1540;
-static gint ett_nr_rrc_UE_CapabilityRequestFilterNR_v1710;
-static gint ett_nr_rrc_T_nonCriticalExtension_53;
-static gint ett_nr_rrc_UE_MRDC_Capability;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination;
-static gint ett_nr_rrc_UE_MRDC_Capability_v1560;
-static gint ett_nr_rrc_UE_MRDC_Capability_v1610;
-static gint ett_nr_rrc_UE_MRDC_Capability_v1700;
-static gint ett_nr_rrc_UE_MRDC_Capability_v1730;
-static gint ett_nr_rrc_T_nonCriticalExtension_54;
-static gint ett_nr_rrc_UE_MRDC_Capability_v15g0;
-static gint ett_nr_rrc_UE_MRDC_Capability_v15n0;
-static gint ett_nr_rrc_UE_MRDC_Capability_v16e0;
-static gint ett_nr_rrc_T_nonCriticalExtension_55;
-static gint ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode;
-static gint ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode_v1560;
-static gint ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode;
-static gint ett_nr_rrc_GeneralParametersMRDC_XDD_Diff;
-static gint ett_nr_rrc_GeneralParametersMRDC_v1610;
-static gint ett_nr_rrc_UE_NR_Capability;
-static gint ett_nr_rrc_UE_NR_Capability_v1530;
-static gint ett_nr_rrc_UE_NR_Capability_v1540;
-static gint ett_nr_rrc_UE_NR_Capability_v1550;
-static gint ett_nr_rrc_UE_NR_Capability_v1560;
-static gint ett_nr_rrc_UE_NR_Capability_v1570;
-static gint ett_nr_rrc_UE_NR_Capability_v15c0;
-static gint ett_nr_rrc_UE_NR_Capability_v15g0;
-static gint ett_nr_rrc_UE_NR_Capability_v15j0;
-static gint ett_nr_rrc_UE_NR_Capability_v1610;
-static gint ett_nr_rrc_UE_NR_Capability_v1640;
-static gint ett_nr_rrc_UE_NR_Capability_v1650;
-static gint ett_nr_rrc_UE_NR_Capability_v1690;
-static gint ett_nr_rrc_UE_NR_Capability_v16a0;
-static gint ett_nr_rrc_UE_NR_Capability_v16c0;
-static gint ett_nr_rrc_UE_NR_Capability_v16d0;
-static gint ett_nr_rrc_T_nonCriticalExtension_56;
-static gint ett_nr_rrc_UE_NR_Capability_v1700;
-static gint ett_nr_rrc_UE_NR_Capability_v1740;
-static gint ett_nr_rrc_UE_NR_Capability_v1750;
-static gint ett_nr_rrc_T_nonCriticalExtension_57;
-static gint ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode;
-static gint ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode_v1530;
-static gint ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode;
-static gint ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode_v1540;
-static gint ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode_v1610;
-static gint ett_nr_rrc_BAP_Parameters_r16;
-static gint ett_nr_rrc_BAP_Parameters_v1700;
-static gint ett_nr_rrc_MBS_Parameters_r17;
-static gint ett_nr_rrc_UE_RadioPagingInfo_r17;
-static gint ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_r16;
-static gint ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1630;
-static gint ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1640;
-static gint ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1650;
-static gint ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1710;
-static gint ett_nr_rrc_AppLayerMeasConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAppLayerMeas_r17_OF_MeasConfigAppLayer_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAppLayerMeas_r17_OF_MeasConfigAppLayerId_r17;
-static gint ett_nr_rrc_MeasConfigAppLayer_r17;
-static gint ett_nr_rrc_T_ran_VisibleParameters_r17;
-static gint ett_nr_rrc_RAN_VisibleParameters_r17;
-static gint ett_nr_rrc_AreaConfiguration_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqTargetInfo_r16;
-static gint ett_nr_rrc_AreaConfiguration_r17;
-static gint ett_nr_rrc_AreaConfig_r16;
-static gint ett_nr_rrc_InterFreqTargetInfo_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_PhysCellId;
-static gint ett_nr_rrc_CellGlobalIdList_r16;
-static gint ett_nr_rrc_TrackingAreaCodeList_r16;
-static gint ett_nr_rrc_TrackingAreaIdentityList_r16;
-static gint ett_nr_rrc_TrackingAreaIdentity_r16;
-static gint ett_nr_rrc_BT_NameList_r16;
-static gint ett_nr_rrc_EUTRA_MBSFN_SubframeConfigList;
-static gint ett_nr_rrc_EUTRA_MBSFN_SubframeConfig;
-static gint ett_nr_rrc_T_subframeAllocation1;
-static gint ett_nr_rrc_T_subframeAllocation2;
-static gint ett_nr_rrc_EUTRA_MultiBandInfoList;
-static gint ett_nr_rrc_EUTRA_MultiBandInfo;
-static gint ett_nr_rrc_EUTRA_NS_PmaxList;
-static gint ett_nr_rrc_EUTRA_NS_PmaxValue;
-static gint ett_nr_rrc_EUTRA_PhysCellIdRange;
-static gint ett_nr_rrc_IAB_IP_Address_r16;
-static gint ett_nr_rrc_LogMeasResultListBT_r16;
-static gint ett_nr_rrc_LogMeasResultBT_r16;
-static gint ett_nr_rrc_LogMeasResultListWLAN_r16;
-static gint ett_nr_rrc_LogMeasResultWLAN_r16;
-static gint ett_nr_rrc_WLAN_Identifiers_r16;
-static gint ett_nr_rrc_WLAN_RTT_r16;
-static gint ett_nr_rrc_OtherConfig;
-static gint ett_nr_rrc_T_delayBudgetReportingConfig;
-static gint ett_nr_rrc_T_setup;
-static gint ett_nr_rrc_OtherConfig_v1540;
-static gint ett_nr_rrc_T_overheatingAssistanceConfig;
-static gint ett_nr_rrc_OtherConfig_v1610;
-static gint ett_nr_rrc_T_idc_AssistanceConfig_r16;
-static gint ett_nr_rrc_T_drx_PreferenceConfig_r16;
-static gint ett_nr_rrc_T_maxBW_PreferenceConfig_r16;
-static gint ett_nr_rrc_T_maxCC_PreferenceConfig_r16;
-static gint ett_nr_rrc_T_maxMIMO_LayerPreferenceConfig_r16;
-static gint ett_nr_rrc_T_minSchedulingOffsetPreferenceConfig_r16;
-static gint ett_nr_rrc_T_releasePreferenceConfig_r16;
-static gint ett_nr_rrc_T_btNameList_r16;
-static gint ett_nr_rrc_T_wlanNameList_r16;
-static gint ett_nr_rrc_T_sensorNameList_r16;
-static gint ett_nr_rrc_OtherConfig_v1700;
-static gint ett_nr_rrc_T_musim_GapAssistanceConfig_r17;
-static gint ett_nr_rrc_T_musim_LeaveAssistanceConfig_r17;
-static gint ett_nr_rrc_T_successHO_Config_r17;
-static gint ett_nr_rrc_T_rlm_RelaxationReportingConfig_r17;
-static gint ett_nr_rrc_T_bfd_RelaxationReportingConfig_r17;
-static gint ett_nr_rrc_T_scg_DeactivationPreferenceConfig_r17;
-static gint ett_nr_rrc_T_rrm_MeasRelaxationReportingConfig_r17;
-static gint ett_nr_rrc_T_propDelayDiffReportConfig_r17;
-static gint ett_nr_rrc_CandidateServingFreqListNR_r16;
-static gint ett_nr_rrc_MUSIM_GapAssistanceConfig_r17;
-static gint ett_nr_rrc_MUSIM_LeaveAssistanceConfig_r17;
-static gint ett_nr_rrc_SuccessHO_Config_r17;
-static gint ett_nr_rrc_OverheatingAssistanceConfig;
-static gint ett_nr_rrc_IDC_AssistanceConfig_r16;
-static gint ett_nr_rrc_DRX_PreferenceConfig_r16;
-static gint ett_nr_rrc_MaxBW_PreferenceConfig_r16;
-static gint ett_nr_rrc_MaxCC_PreferenceConfig_r16;
-static gint ett_nr_rrc_MaxMIMO_LayerPreferenceConfig_r16;
-static gint ett_nr_rrc_MinSchedulingOffsetPreferenceConfig_r16;
-static gint ett_nr_rrc_ReleasePreferenceConfig_r16;
-static gint ett_nr_rrc_RLM_RelaxationReportingConfig_r17;
-static gint ett_nr_rrc_BFD_RelaxationReportingConfig_r17;
-static gint ett_nr_rrc_SCG_DeactivationPreferenceConfig_r17;
-static gint ett_nr_rrc_RRM_MeasRelaxationReportingConfig_r17;
-static gint ett_nr_rrc_PropDelayDiffReportConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellNTN_r17_OF_NeighbourCellInfo_r17;
-static gint ett_nr_rrc_NeighbourCellInfo_r17;
-static gint ett_nr_rrc_Sensor_NameList_r16;
-static gint ett_nr_rrc_TraceReference_r16;
-static gint ett_nr_rrc_UE_MeasurementsAvailable_r16;
-static gint ett_nr_rrc_VisitedCellInfoList_r16;
-static gint ett_nr_rrc_VisitedCellInfo_r16;
-static gint ett_nr_rrc_T_visitedCellId_r16;
-static gint ett_nr_rrc_T_nr_CellId_r16;
-static gint ett_nr_rrc_T_eutra_CellId_r16;
-static gint ett_nr_rrc_VisitedPSCellInfoList_r17;
-static gint ett_nr_rrc_VisitedPSCellInfo_r17;
-static gint ett_nr_rrc_T_visitedCellId_r17;
-static gint ett_nr_rrc_T_nr_CellId_r17;
-static gint ett_nr_rrc_T_eutra_CellId_r17;
-static gint ett_nr_rrc_WLAN_NameList_r16;
-static gint ett_nr_rrc_SL_BWP_Config_r16;
-static gint ett_nr_rrc_T_sl_BWP_PoolConfigPS_r17;
-static gint ett_nr_rrc_T_sl_BWP_DiscPoolConfig_r17;
-static gint ett_nr_rrc_SL_BWP_Generic_r16;
-static gint ett_nr_rrc_T_sl_PSBCH_Config_r16;
-static gint ett_nr_rrc_SL_BWP_DiscPoolConfig_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRXPool_r16_OF_SL_ResourcePool_r16;
-static gint ett_nr_rrc_SL_BWP_PoolConfig_r16;
-static gint ett_nr_rrc_SL_TxPoolDedicated_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTXPool_r16_OF_SL_ResourcePoolID_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTXPool_r16_OF_SL_ResourcePoolConfig_r16;
-static gint ett_nr_rrc_SL_ResourcePoolConfig_r16;
-static gint ett_nr_rrc_SL_CBR_PriorityTxConfigList_r16;
-static gint ett_nr_rrc_SL_CBR_PriorityTxConfigList_v1650;
-static gint ett_nr_rrc_SL_PriorityTxConfigIndex_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r16_OF_SL_TxConfigIndex_r16;
-static gint ett_nr_rrc_SL_PriorityTxConfigIndex_v1650;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r16_OF_SL_MinMaxMCS_List_r16;
-static gint ett_nr_rrc_SL_CBR_CommonTxConfigList_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCBR_Config_r16_OF_SL_CBR_LevelsConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxTxConfig_r16_OF_SL_CBR_PSSCH_TxConfig_r16;
-static gint ett_nr_rrc_SL_CBR_LevelsConfig_r16;
-static gint ett_nr_rrc_SL_CBR_PSSCH_TxConfig_r16;
-static gint ett_nr_rrc_SL_ConfigDedicatedNR_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SLRB_Uu_ConfigIndex_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SL_RadioBearerConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_Dest_r16_OF_SL_DestinationIndex_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_Dest_r16_OF_SL_MeasConfigInfo_r16;
-static gint ett_nr_rrc_T_sl_PHY_MAC_RLC_Config_v1700;
-static gint ett_nr_rrc_T_sl_DiscConfig_r17;
-static gint ett_nr_rrc_SL_PHY_MAC_RLC_Config_r16;
-static gint ett_nr_rrc_T_sl_ScheduledConfig_r16;
-static gint ett_nr_rrc_T_sl_UE_SelectedConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFreqSL_r16_OF_SL_Freq_Id_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFreqSL_r16_OF_SL_FreqConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_BearerConfigIndex_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_BearerConfig_r16;
-static gint ett_nr_rrc_T_sl_CSI_SchedulingRequestId_r16;
-static gint ett_nr_rrc_SL_RLC_ChannelToAddModList_r17;
-static gint ett_nr_rrc_SL_PHY_MAC_RLC_Config_v1700;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_ChannelID_r17;
-static gint ett_nr_rrc_SL_DiscConfig_r17;
-static gint ett_nr_rrc_T_sl_RelayUE_Config_r17;
-static gint ett_nr_rrc_T_sl_RemoteUE_Config_r17;
-static gint ett_nr_rrc_SL_ConfiguredGrantConfig_r16;
-static gint ett_nr_rrc_T_rrc_ConfiguredSidelinkGrant_r16;
-static gint ett_nr_rrc_SL_CG_MaxTransNumList_r16;
-static gint ett_nr_rrc_SL_CG_MaxTransNum_r16;
-static gint ett_nr_rrc_SL_PeriodCG_r16;
-static gint ett_nr_rrc_SL_DRX_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_Dest_r16_OF_SL_DRX_ConfigUC_Info_r17;
-static gint ett_nr_rrc_SL_DRX_ConfigUC_Info_r17;
-static gint ett_nr_rrc_SL_DRX_ConfigGC_BC_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_GC_BC_DRX_QoS_r17_OF_SL_DRX_GC_BC_QoS_r17;
-static gint ett_nr_rrc_SL_DRX_GC_BC_QoS_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIs_r16_OF_SL_QoS_Profile_r16;
-static gint ett_nr_rrc_T_sl_DRX_GC_BC_OnDurationTimer_r17;
-static gint ett_nr_rrc_SL_DRX_GC_Generic_r17;
-static gint ett_nr_rrc_SL_DRX_ConfigUC_r17;
-static gint ett_nr_rrc_T_sl_drx_onDurationTimer_r17;
-static gint ett_nr_rrc_T_sl_drx_CycleStartOffset_r17;
-static gint ett_nr_rrc_SL_DRX_ConfigUC_SemiStatic_r17;
-static gint ett_nr_rrc_T_sl_drx_onDurationTimer_r17_01;
-static gint ett_nr_rrc_T_sl_drx_CycleStartOffset_r17_01;
-static gint ett_nr_rrc_SL_FreqConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_BWPs_r16_OF_BWP_Id;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_BWPs_r16_OF_SL_BWP_Config_r16;
-static gint ett_nr_rrc_SL_InterUE_CoordinationConfig_r17;
-static gint ett_nr_rrc_SL_InterUE_CoordinationScheme1_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_SL_ThresholdRSRP_Condition1_B_1_r17;
-static gint ett_nr_rrc_SL_InterUE_CoordinationScheme2_r17;
-static gint ett_nr_rrc_SL_ThresholdRSRP_Condition1_B_1_r17;
-static gint ett_nr_rrc_SL_LogicalChannelConfig_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofCG_SL_1_r16_OF_SL_ConfigIndexCG_r16;
-static gint ett_nr_rrc_SL_L2RelayUE_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRemoteUE_r17_OF_SL_RemoteUE_ToAddMod_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRemoteUE_r17_OF_SL_DestinationIdentity_r16;
-static gint ett_nr_rrc_SL_RemoteUE_ToAddMod_r17;
-static gint ett_nr_rrc_SL_L2RemoteUE_Config_r17;
-static gint ett_nr_rrc_SL_MeasConfigInfo_r16;
-static gint ett_nr_rrc_SL_MeasConfig_r16;
-static gint ett_nr_rrc_SL_MeasObjectToRemoveList_r16;
-static gint ett_nr_rrc_SL_ReportConfigToRemoveList_r16;
-static gint ett_nr_rrc_SL_MeasIdToRemoveList_r16;
-static gint ett_nr_rrc_SL_MeasIdList_r16;
-static gint ett_nr_rrc_SL_MeasIdInfo_r16;
-static gint ett_nr_rrc_SL_MeasObjectList_r16;
-static gint ett_nr_rrc_SL_MeasObjectInfo_r16;
-static gint ett_nr_rrc_SL_MeasObject_r16;
-static gint ett_nr_rrc_SL_PagingIdentityRemoteUE_r17;
-static gint ett_nr_rrc_SL_PBPS_CPS_Config_r17;
-static gint ett_nr_rrc_T_sl_PBPS_OccasionReservePeriodList_r17;
-static gint ett_nr_rrc_SL_PDCP_Config_r16;
-static gint ett_nr_rrc_SL_PSBCH_Config_r16;
-static gint ett_nr_rrc_SL_PSSCH_TxConfigList_r16;
-static gint ett_nr_rrc_SL_PSSCH_TxConfig_r16;
-static gint ett_nr_rrc_SL_PSSCH_TxParameters_r16;
-static gint ett_nr_rrc_SL_QoS_Profile_r16;
-static gint ett_nr_rrc_SL_PQI_r16;
-static gint ett_nr_rrc_T_sl_Non_StandardizedPQI_r16;
-static gint ett_nr_rrc_SL_QuantityConfig_r16;
-static gint ett_nr_rrc_SL_RadioBearerConfig_r16;
-static gint ett_nr_rrc_SL_RelayUE_Config_r17;
-static gint ett_nr_rrc_SL_RemoteUE_Config_r17;
-static gint ett_nr_rrc_SL_ReselectionConfig_r17;
-static gint ett_nr_rrc_SL_ReportConfigList_r16;
-static gint ett_nr_rrc_SL_ReportConfigInfo_r16;
-static gint ett_nr_rrc_SL_ReportConfig_r16;
-static gint ett_nr_rrc_T_sl_ReportType_r16;
-static gint ett_nr_rrc_SL_PeriodicalReportConfig_r16;
-static gint ett_nr_rrc_SL_EventTriggerConfig_r16;
-static gint ett_nr_rrc_T_sl_EventId_r16;
-static gint ett_nr_rrc_T_eventS1_r16;
-static gint ett_nr_rrc_T_eventS2_r16;
-static gint ett_nr_rrc_SL_MeasReportQuantity_r16;
-static gint ett_nr_rrc_SL_MeasTriggerQuantity_r16;
-static gint ett_nr_rrc_SL_ResourcePool_r16;
-static gint ett_nr_rrc_T_sl_PSCCH_Config_r16;
-static gint ett_nr_rrc_T_sl_PSSCH_Config_r16;
-static gint ett_nr_rrc_T_sl_PSFCH_Config_r16;
-static gint ett_nr_rrc_T_sl_RxParametersNcell_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_16_OF_SL_ZoneConfigMCR_r16;
-static gint ett_nr_rrc_T_sl_PBPS_CPS_Config_r17;
-static gint ett_nr_rrc_T_sl_InterUE_CoordinationConfig_r17;
-static gint ett_nr_rrc_SL_ZoneConfigMCR_r16;
-static gint ett_nr_rrc_SL_SyncAllowed_r16;
-static gint ett_nr_rrc_SL_PSCCH_Config_r16;
-static gint ett_nr_rrc_SL_PSSCH_Config_r16;
-static gint ett_nr_rrc_T_sl_PSSCH_DMRS_TimePatternList_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_4_OF_SL_BetaOffsets_r16;
-static gint ett_nr_rrc_SL_PSFCH_Config_r16;
-static gint ett_nr_rrc_SL_PTRS_Config_r16;
-static gint ett_nr_rrc_T_sl_PTRS_FreqDensity_r16;
-static gint ett_nr_rrc_T_sl_PTRS_TimeDensity_r16;
-static gint ett_nr_rrc_SL_UE_SelectedConfigRP_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_SL_ResourceReservePeriod_r16;
-static gint ett_nr_rrc_SL_ResourceReservePeriod_r16;
-static gint ett_nr_rrc_SL_SelectionWindowList_r16;
-static gint ett_nr_rrc_SL_SelectionWindowConfig_r16;
-static gint ett_nr_rrc_SL_TxPercentageList_r16;
-static gint ett_nr_rrc_SL_TxPercentageConfig_r16;
-static gint ett_nr_rrc_SL_MinMaxMCS_List_r16;
-static gint ett_nr_rrc_SL_MinMaxMCS_Config_r16;
-static gint ett_nr_rrc_SL_PowerControl_r16;
-static gint ett_nr_rrc_SL_RLC_BearerConfig_r16;
-static gint ett_nr_rrc_SL_RLC_ChannelConfig_r17;
-static gint ett_nr_rrc_SL_RLC_Config_r16;
-static gint ett_nr_rrc_T_sl_AM_RLC_r16;
-static gint ett_nr_rrc_T_sl_UM_RLC_r16;
-static gint ett_nr_rrc_SL_ScheduledConfig_r16;
-static gint ett_nr_rrc_T_sl_PSFCH_ToPUCCH_r16;
-static gint ett_nr_rrc_T_sl_DCI_ToSL_Trans_r16;
-static gint ett_nr_rrc_MAC_MainConfigSL_r16;
-static gint ett_nr_rrc_SL_ConfiguredGrantConfigList_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCG_SL_r16_OF_SL_ConfigIndexCG_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCG_SL_r16_OF_SL_ConfiguredGrantConfig_r16;
-static gint ett_nr_rrc_SL_SDAP_Config_r16;
-static gint ett_nr_rrc_T_sl_MappedQoS_Flows_r16;
-static gint ett_nr_rrc_SL_MappedQoS_FlowsListDedicated_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIs_r16_OF_SL_QoS_FlowIdentity_r16;
-static gint ett_nr_rrc_SL_SRAP_Config_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_SL_MappingToAddMod_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_SL_RemoteUE_RB_Identity_r17;
-static gint ett_nr_rrc_SL_MappingToAddMod_r17;
-static gint ett_nr_rrc_SL_RemoteUE_RB_Identity_r17;
-static gint ett_nr_rrc_SL_SyncConfigList_r16;
-static gint ett_nr_rrc_SL_SyncConfig_r16;
-static gint ett_nr_rrc_T_txParameters_r16;
-static gint ett_nr_rrc_SL_SSB_TimeAllocation_r16;
-static gint ett_nr_rrc_SL_Thres_RSRP_List_r16;
-static gint ett_nr_rrc_SL_TxPower_r16;
-static gint ett_nr_rrc_SL_UE_SelectedConfig_r16;
-static gint ett_nr_rrc_SL_ZoneConfig_r16;
-static gint ett_nr_rrc_CarrierFreqListMBS_r17;
-static gint ett_nr_rrc_CFR_ConfigMCCH_MTCH_r17;
-static gint ett_nr_rrc_LocationAndBandwidthBroadcast_r17;
-static gint ett_nr_rrc_DRX_ConfigPTM_r17;
-static gint ett_nr_rrc_T_drx_onDurationTimerPTM_r17;
-static gint ett_nr_rrc_T_drx_LongCycleStartOffsetPTM_r17;
-static gint ett_nr_rrc_MBS_NeighbourCellList_r17;
-static gint ett_nr_rrc_MBS_NeighbourCell_r17;
-static gint ett_nr_rrc_MBS_ServiceList_r17;
-static gint ett_nr_rrc_MBS_ServiceInfo_r17;
-static gint ett_nr_rrc_MBS_SessionInfoList_r17;
-static gint ett_nr_rrc_MBS_SessionInfo_r17;
-static gint ett_nr_rrc_MRB_ListBroadcast_r17;
-static gint ett_nr_rrc_MRB_InfoBroadcast_r17;
-static gint ett_nr_rrc_MRB_PDCP_ConfigBroadcast_r17;
-static gint ett_nr_rrc_T_headerCompression_r17;
-static gint ett_nr_rrc_T_rohc_01;
-static gint ett_nr_rrc_T_profiles_r17;
-static gint ett_nr_rrc_MRB_RLC_ConfigBroadcast_r17;
-static gint ett_nr_rrc_MTCH_SSB_MappingWindowList_r17;
-static gint ett_nr_rrc_MTCH_SSB_MappingWindowCycleOffset_r17;
-static gint ett_nr_rrc_PDSCH_ConfigBroadcast_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPDSCH_ConfigPTM_r17_OF_PDSCH_ConfigPTM_r17;
-static gint ett_nr_rrc_PDSCH_ConfigPTM_r17;
-static gint ett_nr_rrc_TMGI_r17;
-static gint ett_nr_rrc_T_plmn_Id_r17;
-static gint ett_nr_rrc_SBCCH_SL_BCH_Message;
-static gint ett_nr_rrc_SBCCH_SL_BCH_MessageType;
-static gint ett_nr_rrc_T_c1_18;
-static gint ett_nr_rrc_T_messageClassExtension_09;
-static gint ett_nr_rrc_SCCH_Message;
-static gint ett_nr_rrc_SCCH_MessageType;
-static gint ett_nr_rrc_T_c1_19;
-static gint ett_nr_rrc_T_messageClassExtension_10;
-static gint ett_nr_rrc_T_c2_01;
-static gint ett_nr_rrc_T_messageClassExtensionFuture_r17;
-static gint ett_nr_rrc_MasterInformationBlockSidelink;
-static gint ett_nr_rrc_MeasurementReportSidelink;
-static gint ett_nr_rrc_T_criticalExtensions_51;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_51;
-static gint ett_nr_rrc_MeasurementReportSidelink_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_58;
-static gint ett_nr_rrc_SL_MeasResults_r16;
-static gint ett_nr_rrc_SL_MeasResult_r16;
-static gint ett_nr_rrc_SL_MeasQuantityResult_r16;
-static gint ett_nr_rrc_SL_MeasResultListRelay_r17;
-static gint ett_nr_rrc_SL_MeasResultRelay_r17;
-static gint ett_nr_rrc_NotificationMessageSidelink_r17;
-static gint ett_nr_rrc_T_criticalExtensions_52;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_52;
-static gint ett_nr_rrc_NotificationMessageSidelink_r17_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_59;
-static gint ett_nr_rrc_RemoteUEInformationSidelink_r17;
-static gint ett_nr_rrc_T_criticalExtensions_53;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_53;
-static gint ett_nr_rrc_RemoteUEInformationSidelink_r17_IEs;
-static gint ett_nr_rrc_T_sl_RequestedSIB_List_r17;
-static gint ett_nr_rrc_T_sl_PagingInfo_RemoteUE_r17;
-static gint ett_nr_rrc_T_nonCriticalExtension_60;
-static gint ett_nr_rrc_SL_RequestedSIB_List_r17;
-static gint ett_nr_rrc_SL_PagingInfo_RemoteUE_r17;
-static gint ett_nr_rrc_RRCReconfigurationSidelink;
-static gint ett_nr_rrc_T_criticalExtensions_54;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_54;
-static gint ett_nr_rrc_RRCReconfigurationSidelink_r16_IEs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SLRB_Config_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SLRB_PC5_ConfigIndex_r16;
-static gint ett_nr_rrc_T_sl_MeasConfig_r16;
-static gint ett_nr_rrc_T_sl_CSI_RS_Config_r16;
-static gint ett_nr_rrc_RRCReconfigurationSidelink_v1700_IEs;
-static gint ett_nr_rrc_T_sl_DRX_ConfigUC_PC5_r17;
-static gint ett_nr_rrc_T_sl_LatencyBoundIUC_Report_r17;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_ChannelConfigPC5_r17;
-static gint ett_nr_rrc_T_nonCriticalExtension_61;
-static gint ett_nr_rrc_SLRB_Config_r16;
-static gint ett_nr_rrc_SL_SDAP_ConfigPC5_r16;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIsPerDest_r16_OF_SL_PQFI_r16;
-static gint ett_nr_rrc_SL_PDCP_ConfigPC5_r16;
-static gint ett_nr_rrc_SL_RLC_ConfigPC5_r16;
-static gint ett_nr_rrc_T_sl_AM_RLC_r16_01;
-static gint ett_nr_rrc_T_sl_UM_Bi_Directional_RLC_r16;
-static gint ett_nr_rrc_T_sl_UM_Uni_Directional_RLC_r16;
-static gint ett_nr_rrc_SL_LogicalChannelConfigPC5_r16;
-static gint ett_nr_rrc_SL_CSI_RS_Config_r16;
-static gint ett_nr_rrc_T_sl_CSI_RS_FreqAllocation_r16;
-static gint ett_nr_rrc_SL_RLC_ChannelConfigPC5_r17;
-static gint ett_nr_rrc_RRCReconfigurationCompleteSidelink;
-static gint ett_nr_rrc_T_criticalExtensions_55;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_55;
-static gint ett_nr_rrc_RRCReconfigurationCompleteSidelink_r16_IEs;
-static gint ett_nr_rrc_RRCReconfigurationCompleteSidelink_v1710_IEs;
-static gint ett_nr_rrc_RRCReconfigurationCompleteSidelink_v1720_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_62;
-static gint ett_nr_rrc_RRCReconfigurationFailureSidelink;
-static gint ett_nr_rrc_T_criticalExtensions_56;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_56;
-static gint ett_nr_rrc_RRCReconfigurationFailureSidelink_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_63;
-static gint ett_nr_rrc_UEAssistanceInformationSidelink_r17;
-static gint ett_nr_rrc_T_criticalExtensions_57;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_57;
-static gint ett_nr_rrc_UEAssistanceInformationSidelink_r17_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_64;
-static gint ett_nr_rrc_UECapabilityEnquirySidelink;
-static gint ett_nr_rrc_T_criticalExtensions_58;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_58;
-static gint ett_nr_rrc_UECapabilityEnquirySidelink_r16_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_65;
-static gint ett_nr_rrc_UECapabilityInformationSidelink;
-static gint ett_nr_rrc_T_criticalExtensions_59;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_59;
-static gint ett_nr_rrc_UECapabilityInformationSidelink_r16_IEs;
-static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandSidelinkPC5_r16;
-static gint ett_nr_rrc_UECapabilityInformationSidelink_v1700_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_66;
-static gint ett_nr_rrc_MAC_ParametersSidelink_r17;
-static gint ett_nr_rrc_PDCP_ParametersSidelink_r16;
-static gint ett_nr_rrc_BandCombinationListSidelinkNR_r16;
-static gint ett_nr_rrc_BandCombinationListSidelinkNR_v1710;
-static gint ett_nr_rrc_BandCombinationParametersSidelinkNR_r16;
-static gint ett_nr_rrc_BandCombinationParametersSidelinkNR_v1710;
-static gint ett_nr_rrc_BandParametersSidelink_v1710;
-static gint ett_nr_rrc_BandSidelinkPC5_r16;
-static gint ett_nr_rrc_T_sl_Reception_r16_01;
-static gint ett_nr_rrc_T_scs_CP_PatternRxSidelink_r16_01;
-static gint ett_nr_rrc_T_fr1_r16_02;
-static gint ett_nr_rrc_T_fr2_r16_03;
-static gint ett_nr_rrc_T_csi_ReportSidelink_r16;
-static gint ett_nr_rrc_UuMessageTransferSidelink_r17;
-static gint ett_nr_rrc_T_criticalExtensions_60;
-static gint ett_nr_rrc_T_criticalExtensionsFuture_60;
-static gint ett_nr_rrc_UuMessageTransferSidelink_r17_IEs;
-static gint ett_nr_rrc_T_nonCriticalExtension_67;
+static int ett_nr_rrc_HandoverCommand;
+static int ett_nr_rrc_T_criticalExtensions;
+static int ett_nr_rrc_T_c1;
+static int ett_nr_rrc_T_criticalExtensionsFuture;
+static int ett_nr_rrc_HandoverCommand_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension;
+static int ett_nr_rrc_HandoverPreparationInformation;
+static int ett_nr_rrc_T_criticalExtensions_01;
+static int ett_nr_rrc_T_c1_01;
+static int ett_nr_rrc_T_criticalExtensionsFuture_01;
+static int ett_nr_rrc_HandoverPreparationInformation_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_01;
+static int ett_nr_rrc_AS_Config;
+static int ett_nr_rrc_AS_Context;
+static int ett_nr_rrc_ConfigRestrictInfoDAPS_r16;
+static int ett_nr_rrc_T_powerCoordination_r16;
+static int ett_nr_rrc_ConfigRestrictInfoDAPS_v1640;
+static int ett_nr_rrc_ReestablishmentInfo;
+static int ett_nr_rrc_ReestabNCellInfoList;
+static int ett_nr_rrc_ReestabNCellInfo;
+static int ett_nr_rrc_RRM_Config;
+static int ett_nr_rrc_CG_Config;
+static int ett_nr_rrc_T_criticalExtensions_02;
+static int ett_nr_rrc_T_c1_02;
+static int ett_nr_rrc_T_criticalExtensionsFuture_02;
+static int ett_nr_rrc_CG_Config_IEs;
+static int ett_nr_rrc_CG_Config_v1540_IEs;
+static int ett_nr_rrc_T_reportCGI_RequestNR;
+static int ett_nr_rrc_T_requestedCellInfo;
+static int ett_nr_rrc_CG_Config_v1560_IEs;
+static int ett_nr_rrc_T_reportCGI_RequestEUTRA;
+static int ett_nr_rrc_T_requestedCellInfoEUTRA;
+static int ett_nr_rrc_CG_Config_v1590_IEs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ARFCN_ValueNR;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ARFCN_ValueEUTRA;
+static int ett_nr_rrc_CG_Config_v1610_IEs;
+static int ett_nr_rrc_CG_Config_v1620_IEs;
+static int ett_nr_rrc_CG_Config_v1630_IEs;
+static int ett_nr_rrc_CG_Config_v1640_IEs;
+static int ett_nr_rrc_CG_Config_v1700_IEs;
+static int ett_nr_rrc_CG_Config_v1730_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_02;
+static int ett_nr_rrc_ServCellInfoListSCG_NR_r16;
+static int ett_nr_rrc_ServCellInfoXCG_NR_r16;
+static int ett_nr_rrc_FrequencyConfig_NR_r16;
+static int ett_nr_rrc_ServCellInfoListSCG_EUTRA_r16;
+static int ett_nr_rrc_ServCellInfoXCG_EUTRA_r16;
+static int ett_nr_rrc_PH_TypeListSCG;
+static int ett_nr_rrc_PH_InfoSCG;
+static int ett_nr_rrc_PH_UplinkCarrierSCG;
+static int ett_nr_rrc_MeasConfigSN;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsSN_OF_NR_FreqInfo;
+static int ett_nr_rrc_NR_FreqInfo;
+static int ett_nr_rrc_ConfigRestrictModReqSCG;
+static int ett_nr_rrc_BandCombinationInfoSN;
+static int ett_nr_rrc_FR_InfoList;
+static int ett_nr_rrc_FR_Info;
+static int ett_nr_rrc_CandidateServingFreqListNR;
+static int ett_nr_rrc_CandidateServingFreqListEUTRA;
+static int ett_nr_rrc_CandidateCellInfoListCPC_r17;
+static int ett_nr_rrc_CandidateCellInfo_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCondCells_r16_OF_CandidateCell_r17;
+static int ett_nr_rrc_CandidateCell_r17;
+static int ett_nr_rrc_CG_ConfigInfo;
+static int ett_nr_rrc_T_criticalExtensions_03;
+static int ett_nr_rrc_T_c1_03;
+static int ett_nr_rrc_T_criticalExtensionsFuture_03;
+static int ett_nr_rrc_CG_ConfigInfo_IEs;
+static int ett_nr_rrc_T_scgFailureInfo;
+static int ett_nr_rrc_CG_ConfigInfo_v1540_IEs;
+static int ett_nr_rrc_T_measResultReportCGI;
+static int ett_nr_rrc_CG_ConfigInfo_v1560_IEs;
+static int ett_nr_rrc_T_scgFailureInfoEUTRA;
+static int ett_nr_rrc_T_measResultReportCGI_EUTRA;
+static int ett_nr_rrc_CG_ConfigInfo_v1570_IEs;
+static int ett_nr_rrc_CG_ConfigInfo_v1590_IEs;
+static int ett_nr_rrc_CG_ConfigInfo_v1610_IEs;
+static int ett_nr_rrc_T_scgFailureInfo_r16;
+static int ett_nr_rrc_T_dummy1;
+static int ett_nr_rrc_CG_ConfigInfo_v1620_IEs;
+static int ett_nr_rrc_CG_ConfigInfo_v1640_IEs;
+static int ett_nr_rrc_CG_ConfigInfo_v1700_IEs;
+static int ett_nr_rrc_CG_ConfigInfo_v1730_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_03;
+static int ett_nr_rrc_ServCellInfoListMCG_NR_r16;
+static int ett_nr_rrc_ServCellInfoListMCG_EUTRA_r16;
+static int ett_nr_rrc_SFTD_FrequencyList_NR;
+static int ett_nr_rrc_SFTD_FrequencyList_EUTRA;
+static int ett_nr_rrc_ConfigRestrictInfoSCG;
+static int ett_nr_rrc_T_powerCoordination_FR1;
+static int ett_nr_rrc_T_servCellIndexRangeSCG;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_SelectedBandEntriesMN;
+static int ett_nr_rrc_T_powerCoordination_FR2_r16;
+static int ett_nr_rrc_SelectedBandEntriesMN;
+static int ett_nr_rrc_PH_TypeListMCG;
+static int ett_nr_rrc_PH_InfoMCG;
+static int ett_nr_rrc_PH_UplinkCarrierMCG;
+static int ett_nr_rrc_BandCombinationInfoList;
+static int ett_nr_rrc_BandCombinationInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex;
+static int ett_nr_rrc_DRX_Info;
+static int ett_nr_rrc_T_drx_LongCycleStartOffset;
+static int ett_nr_rrc_T_shortDRX;
+static int ett_nr_rrc_DRX_Info2;
+static int ett_nr_rrc_T_drx_onDurationTimer;
+static int ett_nr_rrc_MeasConfigMN;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo;
+static int ett_nr_rrc_T_measGapConfig;
+static int ett_nr_rrc_T_measGapConfigFR2;
+static int ett_nr_rrc_MRDC_AssistanceInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC;
+static int ett_nr_rrc_AffectedCarrierFreqCombInfoMRDC;
+static int ett_nr_rrc_T_affectedCarrierFreqCombMRDC;
+static int ett_nr_rrc_VictimSystemType;
+static int ett_nr_rrc_AffectedCarrierFreqCombEUTRA;
+static int ett_nr_rrc_AffectedCarrierFreqCombNR;
+static int ett_nr_rrc_CandidateCellListCPC_r17;
+static int ett_nr_rrc_CandidateCellCPC_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCondCells_r16_OF_PhysCellId;
+static int ett_nr_rrc_MeasurementTimingConfiguration;
+static int ett_nr_rrc_T_criticalExtensions_04;
+static int ett_nr_rrc_T_c1_04;
+static int ett_nr_rrc_T_criticalExtensionsFuture_04;
+static int ett_nr_rrc_MeasurementTimingConfiguration_IEs;
+static int ett_nr_rrc_MeasurementTimingConfiguration_v1550_IEs;
+static int ett_nr_rrc_MeasurementTimingConfiguration_v1610_IEs;
+static int ett_nr_rrc_T_csi_RS_Config_r16;
+static int ett_nr_rrc_T_nonCriticalExtension_04;
+static int ett_nr_rrc_MeasTimingList;
+static int ett_nr_rrc_MeasTiming;
+static int ett_nr_rrc_T_frequencyAndTiming;
+static int ett_nr_rrc_UERadioPagingInformation;
+static int ett_nr_rrc_T_criticalExtensions_05;
+static int ett_nr_rrc_T_c1_05;
+static int ett_nr_rrc_T_criticalExtensionsFuture_05;
+static int ett_nr_rrc_UERadioPagingInformation_IEs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR;
+static int ett_nr_rrc_UERadioPagingInformation_v15e0_IEs;
+static int ett_nr_rrc_UERadioPagingInformation_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_05;
+static int ett_nr_rrc_UERadioAccessCapabilityInformation;
+static int ett_nr_rrc_T_criticalExtensions_06;
+static int ett_nr_rrc_T_c1_06;
+static int ett_nr_rrc_T_criticalExtensionsFuture_06;
+static int ett_nr_rrc_UERadioAccessCapabilityInformation_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_06;
+static int ett_nr_rrc_ResourceConfigNRDC_r17;
+static int ett_nr_rrc_ResourceConfigPerFR_r17;
+static int ett_nr_rrc_BCCH_BCH_Message;
+static int ett_nr_rrc_BCCH_BCH_MessageType;
+static int ett_nr_rrc_T_messageClassExtension;
+static int ett_nr_rrc_BCCH_DL_SCH_Message;
+static int ett_nr_rrc_BCCH_DL_SCH_MessageType;
+static int ett_nr_rrc_T_c1_07;
+static int ett_nr_rrc_T_messageClassExtension_01;
+static int ett_nr_rrc_DL_CCCH_Message;
+static int ett_nr_rrc_DL_CCCH_MessageType;
+static int ett_nr_rrc_T_c1_08;
+static int ett_nr_rrc_T_messageClassExtension_02;
+static int ett_nr_rrc_DL_DCCH_Message;
+static int ett_nr_rrc_DL_DCCH_MessageType;
+static int ett_nr_rrc_T_c1_09;
+static int ett_nr_rrc_T_messageClassExtension_03;
+static int ett_nr_rrc_MCCH_Message_r17;
+static int ett_nr_rrc_MCCH_MessageType_r17;
+static int ett_nr_rrc_T_c1_10;
+static int ett_nr_rrc_T_messageClassExtension_04;
+static int ett_nr_rrc_PCCH_Message;
+static int ett_nr_rrc_PCCH_MessageType;
+static int ett_nr_rrc_T_c1_11;
+static int ett_nr_rrc_T_messageClassExtension_05;
+static int ett_nr_rrc_UL_CCCH_Message;
+static int ett_nr_rrc_UL_CCCH_MessageType;
+static int ett_nr_rrc_T_c1_12;
+static int ett_nr_rrc_T_messageClassExtension_06;
+static int ett_nr_rrc_UL_CCCH1_Message;
+static int ett_nr_rrc_UL_CCCH1_MessageType;
+static int ett_nr_rrc_T_c1_13;
+static int ett_nr_rrc_T_messageClassExtension_07;
+static int ett_nr_rrc_UL_DCCH_Message;
+static int ett_nr_rrc_UL_DCCH_MessageType;
+static int ett_nr_rrc_T_c1_14;
+static int ett_nr_rrc_T_messageClassExtension_08;
+static int ett_nr_rrc_T_c2;
+static int ett_nr_rrc_T_messageClassExtensionFuture_r16;
+static int ett_nr_rrc_CounterCheck;
+static int ett_nr_rrc_T_criticalExtensions_07;
+static int ett_nr_rrc_T_criticalExtensionsFuture_07;
+static int ett_nr_rrc_CounterCheck_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_07;
+static int ett_nr_rrc_DRB_CountMSB_InfoList;
+static int ett_nr_rrc_DRB_CountMSB_Info;
+static int ett_nr_rrc_CounterCheckResponse;
+static int ett_nr_rrc_T_criticalExtensions_08;
+static int ett_nr_rrc_T_criticalExtensionsFuture_08;
+static int ett_nr_rrc_CounterCheckResponse_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_08;
+static int ett_nr_rrc_DRB_CountInfoList;
+static int ett_nr_rrc_DRB_CountInfo;
+static int ett_nr_rrc_DedicatedSIBRequest_r16;
+static int ett_nr_rrc_T_criticalExtensions_09;
+static int ett_nr_rrc_T_criticalExtensionsFuture_09;
+static int ett_nr_rrc_DedicatedSIBRequest_r16_IEs;
+static int ett_nr_rrc_T_onDemandSIB_RequestList_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxOnDemandSIB_r16_OF_SIB_ReqInfo_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxOnDemandPosSIB_r16_OF_PosSIB_ReqInfo_r16;
+static int ett_nr_rrc_T_nonCriticalExtension_09;
+static int ett_nr_rrc_PosSIB_ReqInfo_r16;
+static int ett_nr_rrc_DLDedicatedMessageSegment_r16;
+static int ett_nr_rrc_T_criticalExtensions_10;
+static int ett_nr_rrc_T_criticalExtensionsFuture_10;
+static int ett_nr_rrc_DLDedicatedMessageSegment_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_10;
+static int ett_nr_rrc_DLInformationTransfer;
+static int ett_nr_rrc_T_criticalExtensions_11;
+static int ett_nr_rrc_T_criticalExtensionsFuture_11;
+static int ett_nr_rrc_DLInformationTransfer_IEs;
+static int ett_nr_rrc_DLInformationTransfer_v1610_IEs;
+static int ett_nr_rrc_DLInformationTransfer_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_11;
+static int ett_nr_rrc_DLInformationTransferMRDC_r16;
+static int ett_nr_rrc_T_criticalExtensions_12;
+static int ett_nr_rrc_T_c1_15;
+static int ett_nr_rrc_T_criticalExtensionsFuture_12;
+static int ett_nr_rrc_DLInformationTransferMRDC_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_12;
+static int ett_nr_rrc_FailureInformation;
+static int ett_nr_rrc_T_criticalExtensions_13;
+static int ett_nr_rrc_T_criticalExtensionsFuture_13;
+static int ett_nr_rrc_FailureInformation_IEs;
+static int ett_nr_rrc_FailureInfoRLC_Bearer;
+static int ett_nr_rrc_FailureInformation_v1610_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_13;
+static int ett_nr_rrc_FailureInfoDAPS_r16;
+static int ett_nr_rrc_IABOtherInformation_r16;
+static int ett_nr_rrc_T_criticalExtensions_14;
+static int ett_nr_rrc_T_criticalExtensionsFuture_14;
+static int ett_nr_rrc_IABOtherInformation_r16_IEs;
+static int ett_nr_rrc_T_ip_InfoType_r16;
+static int ett_nr_rrc_T_iab_IP_Request_r16;
+static int ett_nr_rrc_T_iab_IPv6_AddressReq_r16;
+static int ett_nr_rrc_T_iab_IP_Report_r16;
+static int ett_nr_rrc_T_iab_IPv6_Report_r16;
+static int ett_nr_rrc_T_nonCriticalExtension_14;
+static int ett_nr_rrc_IAB_IP_AddressNumReq_r16;
+static int ett_nr_rrc_IAB_IP_AddressPrefixReq_r16;
+static int ett_nr_rrc_IAB_IP_AddressAndTraffic_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_IAB_IP_Address_r16;
+static int ett_nr_rrc_IAB_IP_PrefixAndTraffic_r16;
+static int ett_nr_rrc_LocationMeasurementIndication;
+static int ett_nr_rrc_T_criticalExtensions_15;
+static int ett_nr_rrc_T_criticalExtensionsFuture_15;
+static int ett_nr_rrc_LocationMeasurementIndication_IEs;
+static int ett_nr_rrc_T_measurementIndication;
+static int ett_nr_rrc_T_nonCriticalExtension_15;
+static int ett_nr_rrc_LoggedMeasurementConfiguration_r16;
+static int ett_nr_rrc_T_criticalExtensions_16;
+static int ett_nr_rrc_T_criticalExtensionsFuture_16;
+static int ett_nr_rrc_LoggedMeasurementConfiguration_r16_IEs;
+static int ett_nr_rrc_T_bt_NameList_r16;
+static int ett_nr_rrc_T_wlan_NameList_r16;
+static int ett_nr_rrc_T_sensor_NameList_r16;
+static int ett_nr_rrc_T_reportType;
+static int ett_nr_rrc_LoggedMeasurementConfiguration_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_16;
+static int ett_nr_rrc_LoggedPeriodicalReportConfig_r16;
+static int ett_nr_rrc_LoggedEventTriggerConfig_r16;
+static int ett_nr_rrc_EventType_r16;
+static int ett_nr_rrc_T_eventL1;
+static int ett_nr_rrc_MBSBroadcastConfiguration_r17;
+static int ett_nr_rrc_T_criticalExtensions_17;
+static int ett_nr_rrc_T_criticalExtensionsFuture_17;
+static int ett_nr_rrc_MBSBroadcastConfiguration_r17_IEs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDRX_ConfigPTM_r17_OF_DRX_ConfigPTM_r17;
+static int ett_nr_rrc_T_nonCriticalExtension_17;
+static int ett_nr_rrc_MBSInterestIndication_r17;
+static int ett_nr_rrc_T_criticalExtensions_18;
+static int ett_nr_rrc_T_criticalExtensionsFuture_18;
+static int ett_nr_rrc_MBSInterestIndication_r17_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_18;
+static int ett_nr_rrc_MCGFailureInformation_r16;
+static int ett_nr_rrc_T_criticalExtensions_19;
+static int ett_nr_rrc_T_criticalExtensionsFuture_19;
+static int ett_nr_rrc_MCGFailureInformation_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_19;
+static int ett_nr_rrc_FailureReportMCG_r16;
+static int ett_nr_rrc_MeasResultList2UTRA;
+static int ett_nr_rrc_MeasResult2UTRA_FDD_r16;
+static int ett_nr_rrc_MeasResultList2EUTRA;
+static int ett_nr_rrc_MeasurementReport;
+static int ett_nr_rrc_T_criticalExtensions_20;
+static int ett_nr_rrc_T_criticalExtensionsFuture_20;
+static int ett_nr_rrc_MeasurementReport_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_20;
+static int ett_nr_rrc_MeasurementReportAppLayer_r17;
+static int ett_nr_rrc_T_criticalExtensions_21;
+static int ett_nr_rrc_T_criticalExtensionsFuture_21;
+static int ett_nr_rrc_MeasurementReportAppLayer_r17_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_21;
+static int ett_nr_rrc_MeasurementReportAppLayerList_r17;
+static int ett_nr_rrc_MeasReportAppLayer_r17;
+static int ett_nr_rrc_RAN_VisibleMeasurements_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_AppLayerBufferLevel_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPDU_Sessions_r17_OF_PDU_SessionID;
+static int ett_nr_rrc_MIB;
+static int ett_nr_rrc_MobilityFromNRCommand;
+static int ett_nr_rrc_T_criticalExtensions_22;
+static int ett_nr_rrc_T_criticalExtensionsFuture_22;
+static int ett_nr_rrc_MobilityFromNRCommand_IEs;
+static int ett_nr_rrc_MobilityFromNRCommand_v1610_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_22;
+static int ett_nr_rrc_Paging;
+static int ett_nr_rrc_Paging_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_23;
+static int ett_nr_rrc_PagingRecordList;
+static int ett_nr_rrc_PagingRecordList_v1700;
+static int ett_nr_rrc_PagingGroupList_r17;
+static int ett_nr_rrc_PagingRecord;
+static int ett_nr_rrc_PagingRecord_v1700;
+static int ett_nr_rrc_PagingUE_Identity;
+static int ett_nr_rrc_RRCReestablishment;
+static int ett_nr_rrc_T_criticalExtensions_23;
+static int ett_nr_rrc_T_criticalExtensionsFuture_23;
+static int ett_nr_rrc_RRCReestablishment_IEs;
+static int ett_nr_rrc_RRCReestablishment_v1700_IEs;
+static int ett_nr_rrc_T_sl_L2RemoteUE_Config_r17;
+static int ett_nr_rrc_T_nonCriticalExtension_24;
+static int ett_nr_rrc_RRCReestablishmentComplete;
+static int ett_nr_rrc_T_criticalExtensions_24;
+static int ett_nr_rrc_T_criticalExtensionsFuture_24;
+static int ett_nr_rrc_RRCReestablishmentComplete_IEs;
+static int ett_nr_rrc_RRCReestablishmentComplete_v1610_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_25;
+static int ett_nr_rrc_RRCReestablishmentRequest;
+static int ett_nr_rrc_RRCReestablishmentRequest_IEs;
+static int ett_nr_rrc_ReestabUE_Identity;
+static int ett_nr_rrc_RRCReconfiguration;
+static int ett_nr_rrc_T_criticalExtensions_25;
+static int ett_nr_rrc_T_criticalExtensionsFuture_25;
+static int ett_nr_rrc_RRCReconfiguration_IEs;
+static int ett_nr_rrc_RRCReconfiguration_v1530_IEs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message;
+static int ett_nr_rrc_RRCReconfiguration_v1540_IEs;
+static int ett_nr_rrc_RRCReconfiguration_v1560_IEs;
+static int ett_nr_rrc_T_mrdc_SecondaryCellGroupConfig;
+static int ett_nr_rrc_RRCReconfiguration_v1610_IEs;
+static int ett_nr_rrc_T_bap_Config_r16;
+static int ett_nr_rrc_T_t316_r16;
+static int ett_nr_rrc_T_needForGapsConfigNR_r16;
+static int ett_nr_rrc_T_onDemandSIB_Request_r16;
+static int ett_nr_rrc_T_sl_ConfigDedicatedNR_r16;
+static int ett_nr_rrc_T_sl_ConfigDedicatedEUTRA_Info_r16;
+static int ett_nr_rrc_RRCReconfiguration_v1700_IEs;
+static int ett_nr_rrc_T_sl_L2RelayUE_Config_r17;
+static int ett_nr_rrc_T_sl_L2RemoteUE_Config_r17_01;
+static int ett_nr_rrc_T_needForGapNCSG_ConfigNR_r17;
+static int ett_nr_rrc_T_needForGapNCSG_ConfigEUTRA_r17;
+static int ett_nr_rrc_T_musim_GapConfig_r17;
+static int ett_nr_rrc_T_ul_GapFR2_Config_r17;
+static int ett_nr_rrc_T_ue_TxTEG_RequestUL_TDOA_Config_r17;
+static int ett_nr_rrc_T_nonCriticalExtension_26;
+static int ett_nr_rrc_MRDC_SecondaryCellGroupConfig;
+static int ett_nr_rrc_T_mrdc_SecondaryCellGroup;
+static int ett_nr_rrc_BAP_Config_r16;
+static int ett_nr_rrc_MasterKeyUpdate;
+static int ett_nr_rrc_OnDemandSIB_Request_r16;
+static int ett_nr_rrc_IAB_IP_AddressConfigurationList_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxIAB_IP_Address_r16_OF_IAB_IP_AddressConfiguration_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxIAB_IP_Address_r16_OF_IAB_IP_AddressIndex_r16;
+static int ett_nr_rrc_IAB_IP_AddressConfiguration_r16;
+static int ett_nr_rrc_SL_ConfigDedicatedEUTRA_Info_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_8_OF_SL_TimeOffsetEUTRA_r16;
+static int ett_nr_rrc_UE_TxTEG_RequestUL_TDOA_Config_r17;
+static int ett_nr_rrc_RRCReconfigurationComplete;
+static int ett_nr_rrc_T_criticalExtensions_26;
+static int ett_nr_rrc_T_criticalExtensionsFuture_26;
+static int ett_nr_rrc_RRCReconfigurationComplete_IEs;
+static int ett_nr_rrc_RRCReconfigurationComplete_v1530_IEs;
+static int ett_nr_rrc_RRCReconfigurationComplete_v1560_IEs;
+static int ett_nr_rrc_T_scg_Response;
+static int ett_nr_rrc_RRCReconfigurationComplete_v1610_IEs;
+static int ett_nr_rrc_RRCReconfigurationComplete_v1640_IEs;
+static int ett_nr_rrc_RRCReconfigurationComplete_v1700_IEs;
+static int ett_nr_rrc_RRCReconfigurationComplete_v1720_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_27;
+static int ett_nr_rrc_RRCReject;
+static int ett_nr_rrc_T_criticalExtensions_27;
+static int ett_nr_rrc_T_criticalExtensionsFuture_27;
+static int ett_nr_rrc_RRCReject_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_28;
+static int ett_nr_rrc_RRCRelease;
+static int ett_nr_rrc_T_criticalExtensions_28;
+static int ett_nr_rrc_T_criticalExtensionsFuture_28;
+static int ett_nr_rrc_RRCRelease_IEs;
+static int ett_nr_rrc_T_deprioritisationReq;
+static int ett_nr_rrc_RRCRelease_v1540_IEs;
+static int ett_nr_rrc_RRCRelease_v1610_IEs;
+static int ett_nr_rrc_T_measIdleConfig_r16;
+static int ett_nr_rrc_RRCRelease_v1650_IEs;
+static int ett_nr_rrc_RRCRelease_v1710_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_29;
+static int ett_nr_rrc_RedirectedCarrierInfo;
+static int ett_nr_rrc_RedirectedCarrierInfo_EUTRA;
+static int ett_nr_rrc_CarrierInfoNR;
+static int ett_nr_rrc_SuspendConfig;
+static int ett_nr_rrc_T_sdt_Config_r17;
+static int ett_nr_rrc_T_srs_PosRRC_Inactive_r17;
+static int ett_nr_rrc_T_ncd_SSB_RedCapInitialBWP_SDT_r17;
+static int ett_nr_rrc_CellReselectionPriorities;
+static int ett_nr_rrc_FreqPriorityListEUTRA;
+static int ett_nr_rrc_FreqPriorityListNR;
+static int ett_nr_rrc_FreqPriorityEUTRA;
+static int ett_nr_rrc_FreqPriorityNR;
+static int ett_nr_rrc_RAN_NotificationAreaInfo;
+static int ett_nr_rrc_PLMN_RAN_AreaCellList;
+static int ett_nr_rrc_PLMN_RAN_AreaCell;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity;
+static int ett_nr_rrc_PLMN_RAN_AreaConfigList;
+static int ett_nr_rrc_PLMN_RAN_AreaConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig;
+static int ett_nr_rrc_RAN_AreaConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode;
+static int ett_nr_rrc_SDT_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_0_maxDRB_OF_DRB_Identity;
+static int ett_nr_rrc_T_sdt_MAC_PHY_CG_Config_r17;
+static int ett_nr_rrc_SDT_MAC_PHY_CG_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_CG_SDT_ConfigLCH_Restriction_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity;
+static int ett_nr_rrc_T_cg_SDT_ConfigInitialBWP_NUL_r17;
+static int ett_nr_rrc_T_cg_SDT_ConfigInitialBWP_SUL_r17;
+static int ett_nr_rrc_T_cg_SDT_TA_ValidationConfig_r17;
+static int ett_nr_rrc_CG_SDT_TA_ValidationConfig_r17;
+static int ett_nr_rrc_BWP_DownlinkDedicatedSDT_r17;
+static int ett_nr_rrc_T_pdcch_Config_r17;
+static int ett_nr_rrc_T_pdsch_Config_r17;
+static int ett_nr_rrc_BWP_UplinkDedicatedSDT_r17;
+static int ett_nr_rrc_T_pusch_Config_r17;
+static int ett_nr_rrc_CG_SDT_ConfigLCH_Restriction_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofConfiguredGrantConfigMAC_1_r16_OF_ConfiguredGrantConfigIndexMAC_r16;
+static int ett_nr_rrc_SRS_PosRRC_InactiveConfig_r17;
+static int ett_nr_rrc_SRS_PosConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResourceSets_r16_OF_SRS_PosResourceSetId_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResourceSets_r16_OF_SRS_PosResourceSet_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResources_r16_OF_SRS_PosResourceId_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_PosResources_r16_OF_SRS_PosResource_r16;
+static int ett_nr_rrc_RRCResume;
+static int ett_nr_rrc_T_criticalExtensions_29;
+static int ett_nr_rrc_T_criticalExtensionsFuture_29;
+static int ett_nr_rrc_RRCResume_IEs;
+static int ett_nr_rrc_RRCResume_v1560_IEs;
+static int ett_nr_rrc_RRCResume_v1610_IEs;
+static int ett_nr_rrc_T_mrdc_SecondaryCellGroup_r16;
+static int ett_nr_rrc_T_needForGapsConfigNR_r16_01;
+static int ett_nr_rrc_RRCResume_v1700_IEs;
+static int ett_nr_rrc_T_sl_ConfigDedicatedNR_r17;
+static int ett_nr_rrc_T_sl_L2RemoteUE_Config_r17_02;
+static int ett_nr_rrc_T_needForGapNCSG_ConfigNR_r17_01;
+static int ett_nr_rrc_T_needForGapNCSG_ConfigEUTRA_r17_01;
+static int ett_nr_rrc_T_nonCriticalExtension_30;
+static int ett_nr_rrc_RRCResumeComplete;
+static int ett_nr_rrc_T_criticalExtensions_30;
+static int ett_nr_rrc_T_criticalExtensionsFuture_30;
+static int ett_nr_rrc_RRCResumeComplete_IEs;
+static int ett_nr_rrc_RRCResumeComplete_v1610_IEs;
+static int ett_nr_rrc_T_scg_Response_r16;
+static int ett_nr_rrc_RRCResumeComplete_v1640_IEs;
+static int ett_nr_rrc_RRCResumeComplete_v1700_IEs;
+static int ett_nr_rrc_RRCResumeComplete_v1720_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_31;
+static int ett_nr_rrc_RRCResumeRequest;
+static int ett_nr_rrc_RRCResumeRequest_IEs;
+static int ett_nr_rrc_RRCResumeRequest1;
+static int ett_nr_rrc_RRCResumeRequest1_IEs;
+static int ett_nr_rrc_RRCSetup;
+static int ett_nr_rrc_T_criticalExtensions_31;
+static int ett_nr_rrc_T_criticalExtensionsFuture_31;
+static int ett_nr_rrc_RRCSetup_IEs;
+static int ett_nr_rrc_RRCSetup_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_32;
+static int ett_nr_rrc_RRCSetupComplete;
+static int ett_nr_rrc_T_criticalExtensions_32;
+static int ett_nr_rrc_T_criticalExtensionsFuture_32;
+static int ett_nr_rrc_RRCSetupComplete_IEs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI;
+static int ett_nr_rrc_T_ng_5G_S_TMSI_Value;
+static int ett_nr_rrc_RRCSetupComplete_v1610_IEs;
+static int ett_nr_rrc_RRCSetupComplete_v1690_IEs;
+static int ett_nr_rrc_RRCSetupComplete_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_33;
+static int ett_nr_rrc_RegisteredAMF;
+static int ett_nr_rrc_RRCSetupRequest;
+static int ett_nr_rrc_RRCSetupRequest_IEs;
+static int ett_nr_rrc_InitialUE_Identity;
+static int ett_nr_rrc_RRCSystemInfoRequest;
+static int ett_nr_rrc_T_criticalExtensions_33;
+static int ett_nr_rrc_T_criticalExtensionsFuture_r16;
+static int ett_nr_rrc_T_criticalExtensionsFuture_33;
+static int ett_nr_rrc_RRCSystemInfoRequest_IEs;
+static int ett_nr_rrc_RRC_PosSystemInfoRequest_r16_IEs;
+static int ett_nr_rrc_SCGFailureInformation;
+static int ett_nr_rrc_T_criticalExtensions_34;
+static int ett_nr_rrc_T_criticalExtensionsFuture_34;
+static int ett_nr_rrc_SCGFailureInformation_IEs;
+static int ett_nr_rrc_SCGFailureInformation_v1590_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_34;
+static int ett_nr_rrc_FailureReportSCG;
+static int ett_nr_rrc_T_previousPSCellId_r17;
+static int ett_nr_rrc_T_failedPSCellId_r17;
+static int ett_nr_rrc_MeasResultFreqList;
+static int ett_nr_rrc_SCGFailureInformationEUTRA;
+static int ett_nr_rrc_T_criticalExtensions_35;
+static int ett_nr_rrc_T_criticalExtensionsFuture_35;
+static int ett_nr_rrc_SCGFailureInformationEUTRA_IEs;
+static int ett_nr_rrc_SCGFailureInformationEUTRA_v1590_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_35;
+static int ett_nr_rrc_FailureReportSCG_EUTRA;
+static int ett_nr_rrc_MeasResultFreqListFailMRDC;
+static int ett_nr_rrc_SecurityModeCommand;
+static int ett_nr_rrc_T_criticalExtensions_36;
+static int ett_nr_rrc_T_criticalExtensionsFuture_36;
+static int ett_nr_rrc_SecurityModeCommand_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_36;
+static int ett_nr_rrc_SecurityConfigSMC;
+static int ett_nr_rrc_SecurityModeComplete;
+static int ett_nr_rrc_T_criticalExtensions_37;
+static int ett_nr_rrc_T_criticalExtensionsFuture_37;
+static int ett_nr_rrc_SecurityModeComplete_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_37;
+static int ett_nr_rrc_SecurityModeFailure;
+static int ett_nr_rrc_T_criticalExtensions_38;
+static int ett_nr_rrc_T_criticalExtensionsFuture_38;
+static int ett_nr_rrc_SecurityModeFailure_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_38;
+static int ett_nr_rrc_SIB1;
+static int ett_nr_rrc_T_cellSelectionInfo;
+static int ett_nr_rrc_T_uac_BarringInfo;
+static int ett_nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo;
+static int ett_nr_rrc_SIB1_v1610_IEs;
+static int ett_nr_rrc_SIB1_v1630_IEs;
+static int ett_nr_rrc_T_uac_BarringInfo_v1630;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AC1_SelectAssistInfo_r16;
+static int ett_nr_rrc_SIB1_v1700_IEs;
+static int ett_nr_rrc_T_uac_BarringInfo_v1700;
+static int ett_nr_rrc_T_featurePriorities_r17;
+static int ett_nr_rrc_SIB1_v1740_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_39;
+static int ett_nr_rrc_SDT_ConfigCommonSIB_r17;
+static int ett_nr_rrc_RedCap_ConfigCommonSIB_r17;
+static int ett_nr_rrc_T_cellBarredRedCap_r17;
+static int ett_nr_rrc_SidelinkUEInformationNR_r16;
+static int ett_nr_rrc_T_criticalExtensions_39;
+static int ett_nr_rrc_T_criticalExtensionsFuture_39;
+static int ett_nr_rrc_SidelinkUEInformationNR_r16_IEs;
+static int ett_nr_rrc_SidelinkUEInformationNR_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_40;
+static int ett_nr_rrc_SL_InterestedFreqList_r16;
+static int ett_nr_rrc_SL_TxResourceReqList_r16;
+static int ett_nr_rrc_SL_TxResourceReq_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SL_RLC_ModeIndication_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIsPerDest_r16_OF_SL_QoS_Info_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFreqSL_r16_OF_SL_TypeTxSync_r16;
+static int ett_nr_rrc_SL_TxResourceReqList_v1700;
+static int ett_nr_rrc_SL_RxDRX_ReportList_v1700;
+static int ett_nr_rrc_SL_TxResourceReq_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_RxInfoSet_r17_OF_SL_DRX_ConfigUC_SemiStatic_r17;
+static int ett_nr_rrc_SL_RxDRX_Report_v1700;
+static int ett_nr_rrc_SL_RxInterestedGC_BC_DestList_r17;
+static int ett_nr_rrc_SL_RxInterestedGC_BC_Dest_r17;
+static int ett_nr_rrc_SL_TxResourceReqListDisc_r17;
+static int ett_nr_rrc_SL_TxResourceReqDisc_r17;
+static int ett_nr_rrc_SL_TxResourceReqListCommRelay_r17;
+static int ett_nr_rrc_SL_TxResourceReqCommRelayInfo_r17;
+static int ett_nr_rrc_SL_TxResourceReqCommRelay_r17;
+static int ett_nr_rrc_SL_TxResourceReqL2U2N_Relay_r17;
+static int ett_nr_rrc_SL_TxInterestedFreqList_r16;
+static int ett_nr_rrc_SL_QoS_Info_r16;
+static int ett_nr_rrc_SL_RLC_ModeIndication_r16;
+static int ett_nr_rrc_T_sl_Mode_r16;
+static int ett_nr_rrc_SL_FailureList_r16;
+static int ett_nr_rrc_SL_Failure_r16;
+static int ett_nr_rrc_SystemInformation;
+static int ett_nr_rrc_T_criticalExtensions_40;
+static int ett_nr_rrc_T_criticalExtensionsFuture_r16_01;
+static int ett_nr_rrc_T_criticalExtensionsFuture_40;
+static int ett_nr_rrc_SystemInformation_IEs;
+static int ett_nr_rrc_T_sib_TypeAndInfo;
+static int ett_nr_rrc_T_sib_TypeAndInfo_item;
+static int ett_nr_rrc_T_nonCriticalExtension_41;
+static int ett_nr_rrc_UEAssistanceInformation;
+static int ett_nr_rrc_T_criticalExtensions_41;
+static int ett_nr_rrc_T_criticalExtensionsFuture_41;
+static int ett_nr_rrc_UEAssistanceInformation_IEs;
+static int ett_nr_rrc_DelayBudgetReport;
+static int ett_nr_rrc_UEAssistanceInformation_v1540_IEs;
+static int ett_nr_rrc_OverheatingAssistance;
+static int ett_nr_rrc_T_reducedMaxMIMO_LayersFR1;
+static int ett_nr_rrc_T_reducedMaxMIMO_LayersFR2;
+static int ett_nr_rrc_OverheatingAssistance_r17;
+static int ett_nr_rrc_T_reducedMaxBW_FR2_2_r17;
+static int ett_nr_rrc_T_reducedMaxMIMO_LayersFR2_2;
+static int ett_nr_rrc_UEAssistanceInformation_v1610_IEs;
+static int ett_nr_rrc_UEAssistanceInformation_v1700_IEs;
+static int ett_nr_rrc_T_nonSDT_DataIndication_r17;
+static int ett_nr_rrc_T_nonCriticalExtension_42;
+static int ett_nr_rrc_IDC_Assistance_r16;
+static int ett_nr_rrc_AffectedCarrierFreqList_r16;
+static int ett_nr_rrc_AffectedCarrierFreq_r16;
+static int ett_nr_rrc_AffectedCarrierFreqCombList_r16;
+static int ett_nr_rrc_AffectedCarrierFreqComb_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_maxNrofServingCells_OF_ARFCN_ValueNR;
+static int ett_nr_rrc_VictimSystemType_r16;
+static int ett_nr_rrc_DRX_Preference_r16;
+static int ett_nr_rrc_MaxBW_Preference_r16;
+static int ett_nr_rrc_MaxBW_PreferenceFR2_2_r17;
+static int ett_nr_rrc_T_reducedMaxBW_FR2_2_r17_01;
+static int ett_nr_rrc_MaxCC_Preference_r16;
+static int ett_nr_rrc_MaxMIMO_LayerPreference_r16;
+static int ett_nr_rrc_T_reducedMaxMIMO_LayersFR1_r16;
+static int ett_nr_rrc_T_reducedMaxMIMO_LayersFR2_r16;
+static int ett_nr_rrc_MaxMIMO_LayerPreferenceFR2_2_r17;
+static int ett_nr_rrc_T_reducedMaxMIMO_LayersFR2_2_r17;
+static int ett_nr_rrc_MinSchedulingOffsetPreference_r16;
+static int ett_nr_rrc_T_preferredK0_r16;
+static int ett_nr_rrc_T_preferredK2_r16;
+static int ett_nr_rrc_MinSchedulingOffsetPreferenceExt_r17;
+static int ett_nr_rrc_T_preferredK0_r17;
+static int ett_nr_rrc_T_preferredK2_r17;
+static int ett_nr_rrc_MUSIM_Assistance_r17;
+static int ett_nr_rrc_MUSIM_GapPreferenceList_r17;
+static int ett_nr_rrc_ReleasePreference_r16;
+static int ett_nr_rrc_ReducedMaxBW_FRx_r16;
+static int ett_nr_rrc_ReducedMaxCCs_r16;
+static int ett_nr_rrc_SL_UE_AssistanceInformationNR_r16;
+static int ett_nr_rrc_SL_TrafficPatternInfo_r16;
+static int ett_nr_rrc_UL_GapFR2_Preference_r17;
+static int ett_nr_rrc_PropagationDelayDifference_r17;
+static int ett_nr_rrc_UECapabilityEnquiry;
+static int ett_nr_rrc_T_criticalExtensions_42;
+static int ett_nr_rrc_T_criticalExtensionsFuture_42;
+static int ett_nr_rrc_UECapabilityEnquiry_IEs;
+static int ett_nr_rrc_UECapabilityEnquiry_v1560_IEs;
+static int ett_nr_rrc_UECapabilityEnquiry_v1610_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_43;
+static int ett_nr_rrc_UECapabilityInformation;
+static int ett_nr_rrc_T_criticalExtensions_43;
+static int ett_nr_rrc_T_criticalExtensionsFuture_43;
+static int ett_nr_rrc_UECapabilityInformation_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_44;
+static int ett_nr_rrc_UEInformationRequest_r16;
+static int ett_nr_rrc_T_criticalExtensions_44;
+static int ett_nr_rrc_T_criticalExtensionsFuture_44;
+static int ett_nr_rrc_UEInformationRequest_r16_IEs;
+static int ett_nr_rrc_UEInformationRequest_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_45;
+static int ett_nr_rrc_UEInformationResponse_r16;
+static int ett_nr_rrc_T_criticalExtensions_45;
+static int ett_nr_rrc_T_criticalExtensionsFuture_45;
+static int ett_nr_rrc_UEInformationResponse_r16_IEs;
+static int ett_nr_rrc_UEInformationResponse_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_46;
+static int ett_nr_rrc_LogMeasReport_r16;
+static int ett_nr_rrc_LogMeasInfoList_r16;
+static int ett_nr_rrc_LogMeasInfo_r16;
+static int ett_nr_rrc_T_measResultNeighCells_r16;
+static int ett_nr_rrc_ConnEstFailReport_r16;
+static int ett_nr_rrc_T_measResultNeighCells_r16_01;
+static int ett_nr_rrc_ConnEstFailReportList_r17;
+static int ett_nr_rrc_MeasResultServingCell_r16;
+static int ett_nr_rrc_T_resultsSSB;
+static int ett_nr_rrc_MeasResultFailedCell_r16;
+static int ett_nr_rrc_T_measResult_r16;
+static int ett_nr_rrc_T_cellResults_r16;
+static int ett_nr_rrc_T_rsIndexResults_r16;
+static int ett_nr_rrc_RA_ReportList_r16;
+static int ett_nr_rrc_RA_Report_r16;
+static int ett_nr_rrc_T_cellId_r16;
+static int ett_nr_rrc_RA_InformationCommon_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSIB_OF_SIB_Type_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSSBs_r16_OF_SSB_Index;
+static int ett_nr_rrc_PerRAInfoList_r16;
+static int ett_nr_rrc_PerRAInfoList_v1660;
+static int ett_nr_rrc_PerRAInfo_r16;
+static int ett_nr_rrc_PerRASSBInfo_r16;
+static int ett_nr_rrc_PerRACSI_RSInfo_r16;
+static int ett_nr_rrc_PerRACSI_RSInfo_v1660;
+static int ett_nr_rrc_PerRAAttemptInfoList_r16;
+static int ett_nr_rrc_PerRAAttemptInfo_r16;
+static int ett_nr_rrc_RLF_Report_r16;
+static int ett_nr_rrc_T_nr_RLF_Report_r16;
+static int ett_nr_rrc_T_measResultNeighCells_r16_02;
+static int ett_nr_rrc_T_previousPCellId_r16;
+static int ett_nr_rrc_T_failedPCellId_r16;
+static int ett_nr_rrc_T_nrFailedPCellId_r16;
+static int ett_nr_rrc_T_eutraFailedPCellId_r16;
+static int ett_nr_rrc_T_reconnectCellId_r16;
+static int ett_nr_rrc_T_choCellId_r17;
+static int ett_nr_rrc_T_eutra_RLF_Report_r16;
+static int ett_nr_rrc_SuccessHO_Report_r17;
+static int ett_nr_rrc_T_sourceCellInfo_r17;
+static int ett_nr_rrc_T_targetCellInfo_r17;
+static int ett_nr_rrc_T_measResultNeighCells_r17;
+static int ett_nr_rrc_MeasResultList2NR_r16;
+static int ett_nr_rrc_MeasResultList2EUTRA_r16;
+static int ett_nr_rrc_MeasResult2NR_r16;
+static int ett_nr_rrc_MeasResultListLogging2NR_r16;
+static int ett_nr_rrc_MeasResultLogging2NR_r16;
+static int ett_nr_rrc_MeasResultListLoggingNR_r16;
+static int ett_nr_rrc_MeasResultLoggingNR_r16;
+static int ett_nr_rrc_MeasResult2EUTRA_r16;
+static int ett_nr_rrc_MeasResultRLFNR_r16;
+static int ett_nr_rrc_T_measResult_r16_01;
+static int ett_nr_rrc_T_cellResults_r16_01;
+static int ett_nr_rrc_T_rsIndexResults_r16_01;
+static int ett_nr_rrc_MeasResultSuccessHONR_r17;
+static int ett_nr_rrc_T_measResult_r17;
+static int ett_nr_rrc_T_cellResults_r17;
+static int ett_nr_rrc_T_rsIndexResults_r17;
+static int ett_nr_rrc_ChoCandidateCellList_r17;
+static int ett_nr_rrc_ChoCandidateCell_r17;
+static int ett_nr_rrc_SHR_Cause_r17;
+static int ett_nr_rrc_UEPositioningAssistanceInfo_r17;
+static int ett_nr_rrc_T_criticalExtensions_46;
+static int ett_nr_rrc_T_criticalExtensionsFuture_46;
+static int ett_nr_rrc_UEPositioningAssistanceInfo_r17_IEs;
+static int ett_nr_rrc_UEPositioningAssistanceInfo_v1720_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_47;
+static int ett_nr_rrc_UE_TxTEG_AssociationList_r17;
+static int ett_nr_rrc_UE_TxTEG_Association_r17;
+static int ett_nr_rrc_NR_TimeStamp_r17;
+static int ett_nr_rrc_T_nr_Slot_r17;
+static int ett_nr_rrc_ULDedicatedMessageSegment_r16;
+static int ett_nr_rrc_T_criticalExtensions_47;
+static int ett_nr_rrc_T_criticalExtensionsFuture_47;
+static int ett_nr_rrc_ULDedicatedMessageSegment_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_48;
+static int ett_nr_rrc_ULInformationTransfer;
+static int ett_nr_rrc_T_criticalExtensions_48;
+static int ett_nr_rrc_T_criticalExtensionsFuture_48;
+static int ett_nr_rrc_ULInformationTransfer_IEs;
+static int ett_nr_rrc_ULInformationTransfer_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_49;
+static int ett_nr_rrc_ULInformationTransferIRAT_r16;
+static int ett_nr_rrc_T_criticalExtensions_49;
+static int ett_nr_rrc_T_c1_16;
+static int ett_nr_rrc_T_criticalExtensionsFuture_49;
+static int ett_nr_rrc_ULInformationTransferIRAT_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_50;
+static int ett_nr_rrc_ULInformationTransferMRDC;
+static int ett_nr_rrc_T_criticalExtensions_50;
+static int ett_nr_rrc_T_c1_17;
+static int ett_nr_rrc_T_criticalExtensionsFuture_50;
+static int ett_nr_rrc_ULInformationTransferMRDC_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_51;
+static int ett_nr_rrc_SIB2;
+static int ett_nr_rrc_T_cellReselectionInfoCommon;
+static int ett_nr_rrc_T_speedStateReselectionPars;
+static int ett_nr_rrc_T_q_HystSF;
+static int ett_nr_rrc_T_cellReselectionServingFreqInfo;
+static int ett_nr_rrc_T_intraFreqCellReselectionInfo;
+static int ett_nr_rrc_T_relaxedMeasurement_r16;
+static int ett_nr_rrc_T_lowMobilityEvaluation_r16;
+static int ett_nr_rrc_T_cellEdgeEvaluation_r16;
+static int ett_nr_rrc_T_relaxedMeasurement_r17;
+static int ett_nr_rrc_T_stationaryMobilityEvaluation_r17;
+static int ett_nr_rrc_T_cellEdgeEvaluationWhileStationary_r17;
+static int ett_nr_rrc_SIB3;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_IntraFreqCAG_CellListPerPLMN_r16;
+static int ett_nr_rrc_IntraFreqNeighCellList;
+static int ett_nr_rrc_IntraFreqNeighCellList_v1610;
+static int ett_nr_rrc_IntraFreqNeighCellList_v1710;
+static int ett_nr_rrc_IntraFreqNeighCellInfo;
+static int ett_nr_rrc_IntraFreqNeighCellInfo_v1610;
+static int ett_nr_rrc_IntraFreqNeighCellInfo_v1710;
+static int ett_nr_rrc_IntraFreqExcludedCellList;
+static int ett_nr_rrc_IntraFreqAllowedCellList_r16;
+static int ett_nr_rrc_IntraFreqCAG_CellListPerPLMN_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCAG_Cell_r16_OF_PCI_Range;
+static int ett_nr_rrc_IntraFreqNeighHSDN_CellList_r17;
+static int ett_nr_rrc_SIB4;
+static int ett_nr_rrc_InterFreqCarrierFreqList;
+static int ett_nr_rrc_InterFreqCarrierFreqList_v1610;
+static int ett_nr_rrc_InterFreqCarrierFreqList_v1700;
+static int ett_nr_rrc_InterFreqCarrierFreqList_v1720;
+static int ett_nr_rrc_InterFreqCarrierFreqList_v1730;
+static int ett_nr_rrc_InterFreqCarrierFreqList_v1760;
+static int ett_nr_rrc_InterFreqCarrierFreqInfo;
+static int ett_nr_rrc_T_threshX_Q;
+static int ett_nr_rrc_InterFreqCarrierFreqInfo_v1610;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_InterFreqCAG_CellListPerPLMN_r16;
+static int ett_nr_rrc_InterFreqCarrierFreqInfo_v1700;
+static int ett_nr_rrc_InterFreqCarrierFreqInfo_v1720;
+static int ett_nr_rrc_InterFreqCarrierFreqInfo_v1730;
+static int ett_nr_rrc_InterFreqCarrierFreqInfo_v1760;
+static int ett_nr_rrc_InterFreqNeighHSDN_CellList_r17;
+static int ett_nr_rrc_InterFreqNeighCellList;
+static int ett_nr_rrc_InterFreqNeighCellList_v1610;
+static int ett_nr_rrc_InterFreqNeighCellList_v1710;
+static int ett_nr_rrc_InterFreqNeighCellInfo;
+static int ett_nr_rrc_InterFreqNeighCellInfo_v1610;
+static int ett_nr_rrc_InterFreqNeighCellInfo_v1710;
+static int ett_nr_rrc_InterFreqExcludedCellList;
+static int ett_nr_rrc_InterFreqAllowedCellList_r16;
+static int ett_nr_rrc_InterFreqCAG_CellListPerPLMN_r16;
+static int ett_nr_rrc_SIB5;
+static int ett_nr_rrc_CarrierFreqListEUTRA;
+static int ett_nr_rrc_CarrierFreqListEUTRA_v1610;
+static int ett_nr_rrc_CarrierFreqListEUTRA_v1700;
+static int ett_nr_rrc_CarrierFreqEUTRA;
+static int ett_nr_rrc_T_threshX_Q_01;
+static int ett_nr_rrc_CarrierFreqEUTRA_v1610;
+static int ett_nr_rrc_CarrierFreqEUTRA_v1700;
+static int ett_nr_rrc_EUTRA_FreqNeighHSDN_CellList_r17;
+static int ett_nr_rrc_EUTRA_FreqExcludedCellList;
+static int ett_nr_rrc_EUTRA_FreqNeighCellList;
+static int ett_nr_rrc_EUTRA_FreqNeighCellInfo;
+static int ett_nr_rrc_SIB6;
+static int ett_nr_rrc_SIB7;
+static int ett_nr_rrc_SIB8;
+static int ett_nr_rrc_SIB9;
+static int ett_nr_rrc_T_timeInfo;
+static int ett_nr_rrc_SIB10_r16;
+static int ett_nr_rrc_HRNN_List_r16;
+static int ett_nr_rrc_HRNN_r16;
+static int ett_nr_rrc_SIB11_r16;
+static int ett_nr_rrc_SIB12_r16;
+static int ett_nr_rrc_SIB13_r16;
+static int ett_nr_rrc_SIB14_r16;
+static int ett_nr_rrc_SIB15_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_ApplicableDisasterInfo_r17;
+static int ett_nr_rrc_ApplicableDisasterInfo_r17;
+static int ett_nr_rrc_SIB16_r17;
+static int ett_nr_rrc_SIB17_r17;
+static int ett_nr_rrc_SIB18_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxGIN_r17_OF_GIN_Element_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_GINs_PerSNPN_r17;
+static int ett_nr_rrc_GIN_Element_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxGIN_r17_OF_NID_r16;
+static int ett_nr_rrc_GINs_PerSNPN_r17;
+static int ett_nr_rrc_SIB19_r17;
+static int ett_nr_rrc_NTN_NeighCellConfigList_r17;
+static int ett_nr_rrc_NTN_NeighCellConfig_r17;
+static int ett_nr_rrc_SIB20_r17;
+static int ett_nr_rrc_MCCH_Config_r17;
+static int ett_nr_rrc_MCCH_RepetitionPeriodAndOffset_r17;
+static int ett_nr_rrc_SIB21_r17;
+static int ett_nr_rrc_MBS_FSAI_List_r17;
+static int ett_nr_rrc_MBS_FSAI_InterFreqList_r17;
+static int ett_nr_rrc_MBS_FSAI_InterFreq_r17;
+static int ett_nr_rrc_PosSystemInformation_r16_IEs;
+static int ett_nr_rrc_T_posSIB_TypeAndInfo_r16;
+static int ett_nr_rrc_T_posSIB_TypeAndInfo_r16_item;
+static int ett_nr_rrc_T_nonCriticalExtension_52;
+static int ett_nr_rrc_PosSI_SchedulingInfo_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_PosSchedulingInfo_r16;
+static int ett_nr_rrc_PosSchedulingInfo_r16;
+static int ett_nr_rrc_PosSIB_MappingInfo_r16;
+static int ett_nr_rrc_PosSIB_Type_r16;
+static int ett_nr_rrc_GNSS_ID_r16;
+static int ett_nr_rrc_SBAS_ID_r16;
+static int ett_nr_rrc_SIBpos_r16;
+static int ett_nr_rrc_AvailabilityCombinationsPerCell_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAvailabilityCombinationsPerSet_r16_OF_AvailabilityCombination_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAvailabilityCombinationsPerSet_r16_OF_AvailabilityCombinationRB_Groups_r17;
+static int ett_nr_rrc_AvailabilityCombination_r16;
+static int ett_nr_rrc_T_resourceAvailability_r16;
+static int ett_nr_rrc_AvailabilityCombinationRB_Groups_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRB_SetGroups_r17_OF_RB_SetGroup_r17;
+static int ett_nr_rrc_T_resourceAvailability_r17;
+static int ett_nr_rrc_RB_SetGroup_r17;
+static int ett_nr_rrc_T_resourceAvailability_r17_01;
+static int ett_nr_rrc_T_rb_Sets_r17;
+static int ett_nr_rrc_AvailabilityIndicator_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDUCells_r16_OF_AvailabilityCombinationsPerCell_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDUCells_r16_OF_AvailabilityCombinationsPerCellIndex_r16;
+static int ett_nr_rrc_BAP_RoutingID_r16;
+static int ett_nr_rrc_BeamFailureRecoveryConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR;
+static int ett_nr_rrc_T_candidateBeamRSListExt_v1610;
+static int ett_nr_rrc_PRACH_ResourceDedicatedBFR;
+static int ett_nr_rrc_BFR_SSB_Resource;
+static int ett_nr_rrc_BFR_CSIRS_Resource;
+static int ett_nr_rrc_T_ra_OccasionList;
+static int ett_nr_rrc_CandidateBeamRSListExt_r16;
+static int ett_nr_rrc_BeamFailureRecoveryRSConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_r16_OF_CandidateBeamRS_r16;
+static int ett_nr_rrc_BetaOffsets;
+static int ett_nr_rrc_BetaOffsetsCrossPri_r17;
+static int ett_nr_rrc_BH_LogicalChannelIdentity_r16;
+static int ett_nr_rrc_BH_RLC_ChannelConfig_r16;
+static int ett_nr_rrc_BSR_Config;
+static int ett_nr_rrc_BWP;
+static int ett_nr_rrc_BWP_Downlink;
+static int ett_nr_rrc_BWP_DownlinkCommon;
+static int ett_nr_rrc_T_pdcch_ConfigCommon;
+static int ett_nr_rrc_T_pdsch_ConfigCommon;
+static int ett_nr_rrc_BWP_DownlinkDedicated;
+static int ett_nr_rrc_T_pdcch_Config;
+static int ett_nr_rrc_T_pdsch_Config;
+static int ett_nr_rrc_T_sps_Config;
+static int ett_nr_rrc_T_radioLinkMonitoringConfig;
+static int ett_nr_rrc_T_beamFailureRecoverySCellConfig_r16;
+static int ett_nr_rrc_T_sl_PDCCH_Config_r16;
+static int ett_nr_rrc_T_sl_V2X_PDCCH_Config_r16;
+static int ett_nr_rrc_T_beamFailureRecoverySpCellConfig_r17;
+static int ett_nr_rrc_T_cfr_ConfigMulticast_r17;
+static int ett_nr_rrc_SPS_ConfigToAddModList_r16;
+static int ett_nr_rrc_SPS_ConfigToReleaseList_r16;
+static int ett_nr_rrc_SPS_ConfigDeactivationState_r16;
+static int ett_nr_rrc_SPS_ConfigDeactivationStateList_r16;
+static int ett_nr_rrc_DL_PPW_PreConfigToAddModList_r17;
+static int ett_nr_rrc_DL_PPW_PreConfigToReleaseList_r17;
+static int ett_nr_rrc_BWP_Uplink;
+static int ett_nr_rrc_BWP_UplinkCommon;
+static int ett_nr_rrc_T_rach_ConfigCommon;
+static int ett_nr_rrc_T_pusch_ConfigCommon;
+static int ett_nr_rrc_T_pucch_ConfigCommon;
+static int ett_nr_rrc_T_rach_ConfigCommonIAB_r16;
+static int ett_nr_rrc_T_msgA_ConfigCommon_r16;
+static int ett_nr_rrc_T_additionalRACH_ConfigList_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_4_OF_NumberOfMsg3_Repetitions_r17;
+static int ett_nr_rrc_T_mcs_Msg3_Repetitions_r17;
+static int ett_nr_rrc_AdditionalRACH_ConfigList_r17;
+static int ett_nr_rrc_AdditionalRACH_Config_r17;
+static int ett_nr_rrc_BWP_UplinkDedicated;
+static int ett_nr_rrc_T_pucch_Config;
+static int ett_nr_rrc_T_pusch_Config;
+static int ett_nr_rrc_T_configuredGrantConfig;
+static int ett_nr_rrc_T_srs_Config;
+static int ett_nr_rrc_T_beamFailureRecoveryConfig;
+static int ett_nr_rrc_T_sl_PUCCH_Config_r16;
+static int ett_nr_rrc_T_pucch_ConfigurationList_r16;
+static int ett_nr_rrc_T_lbt_FailureRecoveryConfig_r16;
+static int ett_nr_rrc_T_ul_TCI_StateList_r17;
+static int ett_nr_rrc_T_explicitlist;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_TCI_UL_State_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_TCI_UL_StateId_r17;
+static int ett_nr_rrc_T_pucch_ConfigurationListMulticast1_r17;
+static int ett_nr_rrc_T_pucch_ConfigurationListMulticast2_r17;
+static int ett_nr_rrc_T_pucch_ConfigMulticast1_r17;
+static int ett_nr_rrc_T_pucch_ConfigMulticast2_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPathlossReferenceRSs_r17_OF_PathlossReferenceRS_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPathlossReferenceRSs_r17_OF_PathlossReferenceRS_Id_r17;
+static int ett_nr_rrc_ConfiguredGrantConfigToAddModList_r16;
+static int ett_nr_rrc_ConfiguredGrantConfigToReleaseList_r16;
+static int ett_nr_rrc_ConfiguredGrantConfigType2DeactivationState_r16;
+static int ett_nr_rrc_ConfiguredGrantConfigType2DeactivationStateList_r16;
+static int ett_nr_rrc_CandidateBeamRS_r16;
+static int ett_nr_rrc_T_candidateBeamConfig_r16;
+static int ett_nr_rrc_CellAccessRelatedInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_SNPN_AccessInfo_r17;
+static int ett_nr_rrc_SNPN_AccessInfo_r17;
+static int ett_nr_rrc_CellAccessRelatedInfo_EUTRA_5GC;
+static int ett_nr_rrc_PLMN_IdentityList_EUTRA_5GC;
+static int ett_nr_rrc_PLMN_Identity_EUTRA_5GC;
+static int ett_nr_rrc_CellIdentity_EUTRA_5GC;
+static int ett_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC;
+static int ett_nr_rrc_PLMN_IdentityList_EUTRA_EPC;
+static int ett_nr_rrc_CellGroupConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_BearerConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBH_RLC_ChannelID_r16_OF_BH_RLC_ChannelConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBH_RLC_ChannelID_r16_OF_BH_RLC_ChannelID_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsTCI_r16_OF_ServCellIndex;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUu_RelayRLC_ChannelID_r17_OF_Uu_RelayRLC_ChannelConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUu_RelayRLC_ChannelID_r17_OF_Uu_RelayRLC_ChannelID_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentityExt_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofIABResourceConfig_r17_OF_IAB_ResourceConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofIABResourceConfig_r17_OF_IAB_ResourceConfigID_r17;
+static int ett_nr_rrc_SpCellConfig;
+static int ett_nr_rrc_T_rlf_TimersAndConstants;
+static int ett_nr_rrc_T_lowMobilityEvaluationConnected_r17;
+static int ett_nr_rrc_T_deactivatedSCG_Config_r17;
+static int ett_nr_rrc_ReconfigurationWithSync;
+static int ett_nr_rrc_T_rach_ConfigDedicated;
+static int ett_nr_rrc_DAPS_UplinkPowerConfig_r16;
+static int ett_nr_rrc_SCellConfig;
+static int ett_nr_rrc_T_sCellSIB20_r17;
+static int ett_nr_rrc_T_plmn_IdentityInfoList_r17;
+static int ett_nr_rrc_T_npn_IdentityInfoList_r17;
+static int ett_nr_rrc_DeactivatedSCG_Config_r17;
+static int ett_nr_rrc_GoodServingCellEvaluation_r17;
+static int ett_nr_rrc_SL_PathSwitchConfig_r17;
+static int ett_nr_rrc_IAB_ResourceConfig_r17;
+static int ett_nr_rrc_T_slotList_r17;
+static int ett_nr_rrc_ReportUplinkTxDirectCurrentMoreCarrier_r17;
+static int ett_nr_rrc_IntraBandCC_CombinationReqList_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReqComDC_Location_r17_OF_IntraBandCC_Combination_r17;
+static int ett_nr_rrc_IntraBandCC_Combination_r17;
+static int ett_nr_rrc_CC_State_r17;
+static int ett_nr_rrc_CarrierState_r17;
+static int ett_nr_rrc_CFR_ConfigMulticast_r17;
+static int ett_nr_rrc_SPS_ConfigMulticastToAddModList_r17;
+static int ett_nr_rrc_SPS_ConfigMulticastToReleaseList_r17;
+static int ett_nr_rrc_CGI_InfoEUTRA;
+static int ett_nr_rrc_T_cgi_info_EPC;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC;
+static int ett_nr_rrc_CGI_InfoEUTRALogging;
+static int ett_nr_rrc_CGI_InfoNR;
+static int ett_nr_rrc_T_noSIB1;
+static int ett_nr_rrc_CGI_Info_Logging_r16;
+static int ett_nr_rrc_CodebookConfig;
+static int ett_nr_rrc_T_codebookType;
+static int ett_nr_rrc_T_type1_01;
+static int ett_nr_rrc_T_subType;
+static int ett_nr_rrc_T_typeI_SinglePanel;
+static int ett_nr_rrc_T_nrOfAntennaPorts;
+static int ett_nr_rrc_T_two;
+static int ett_nr_rrc_T_moreThanTwo;
+static int ett_nr_rrc_T_n1_n2;
+static int ett_nr_rrc_T_typeI_MultiPanel;
+static int ett_nr_rrc_T_ng_n1_n2;
+static int ett_nr_rrc_T_type2;
+static int ett_nr_rrc_T_subType_01;
+static int ett_nr_rrc_T_typeII;
+static int ett_nr_rrc_T_n1_n2_codebookSubsetRestriction;
+static int ett_nr_rrc_T_typeII_PortSelection;
+static int ett_nr_rrc_CodebookConfig_r16;
+static int ett_nr_rrc_T_codebookType_01;
+static int ett_nr_rrc_T_type2_01;
+static int ett_nr_rrc_T_subType_02;
+static int ett_nr_rrc_T_typeII_r16;
+static int ett_nr_rrc_T_n1_n2_codebookSubsetRestriction_r16;
+static int ett_nr_rrc_T_typeII_PortSelection_r16;
+static int ett_nr_rrc_CodebookConfig_r17;
+static int ett_nr_rrc_T_codebookType_02;
+static int ett_nr_rrc_T_type1_02;
+static int ett_nr_rrc_T_typeI_SinglePanel_Group1_r17;
+static int ett_nr_rrc_T_nrOfAntennaPorts_01;
+static int ett_nr_rrc_T_two_01;
+static int ett_nr_rrc_T_moreThanTwo_01;
+static int ett_nr_rrc_T_n1_n2_01;
+static int ett_nr_rrc_T_typeI_SinglePanel_Group2_r17;
+static int ett_nr_rrc_T_nrOfAntennaPorts_02;
+static int ett_nr_rrc_T_two_02;
+static int ett_nr_rrc_T_moreThanTwo_02;
+static int ett_nr_rrc_T_n1_n2_02;
+static int ett_nr_rrc_T_type2_02;
+static int ett_nr_rrc_T_typeII_PortSelection_r17;
+static int ett_nr_rrc_CodebookConfig_v1730;
+static int ett_nr_rrc_T_codebookType_03;
+static int ett_nr_rrc_T_type1_03;
+static int ett_nr_rrc_CommonLocationInfo_r16;
+static int ett_nr_rrc_CondReconfigToAddModList_r16;
+static int ett_nr_rrc_CondReconfigToAddMod_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_MeasId;
+static int ett_nr_rrc_CondReconfigExecCondSCG_r17;
+static int ett_nr_rrc_ConditionalReconfiguration_r16;
+static int ett_nr_rrc_CondReconfigToRemoveList_r16;
+static int ett_nr_rrc_ConfiguredGrantConfig;
+static int ett_nr_rrc_T_uci_OnPUSCH;
+static int ett_nr_rrc_T_rrc_ConfiguredUplinkGrant;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_1709_OF_CG_COT_Sharing_r16;
+static int ett_nr_rrc_T_cg_betaOffsetsCrossPri0_r17;
+static int ett_nr_rrc_T_cg_betaOffsetsCrossPri1_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_50722_OF_CG_COT_Sharing_r17;
+static int ett_nr_rrc_CG_UCI_OnPUSCH;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets;
+static int ett_nr_rrc_CG_COT_Sharing_r16;
+static int ett_nr_rrc_T_cot_Sharing_r16;
+static int ett_nr_rrc_CG_COT_Sharing_r17;
+static int ett_nr_rrc_T_cot_Sharing_r17;
+static int ett_nr_rrc_CG_StartingOffsets_r16;
+static int ett_nr_rrc_T_cg_StartingFullBW_InsideCOT_r16;
+static int ett_nr_rrc_T_cg_StartingFullBW_OutsideCOT_r16;
+static int ett_nr_rrc_BetaOffsetsCrossPriSelCG_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsetsCrossPri_r17;
+static int ett_nr_rrc_CG_SDT_Configuration_r17;
+static int ett_nr_rrc_T_sdt_SSB_Subset_r17;
+static int ett_nr_rrc_T_sdt_DMRS_Ports_r17;
+static int ett_nr_rrc_ConnEstFailureControl;
+static int ett_nr_rrc_ControlResourceSet;
+static int ett_nr_rrc_T_cce_REG_MappingType;
+static int ett_nr_rrc_T_interleaved;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId;
+static int ett_nr_rrc_CrossCarrierSchedulingConfig;
+static int ett_nr_rrc_T_schedulingCellInfo;
+static int ett_nr_rrc_T_own;
+static int ett_nr_rrc_T_other;
+static int ett_nr_rrc_T_carrierIndicatorSize_r16;
+static int ett_nr_rrc_CSI_AperiodicTriggerStateList;
+static int ett_nr_rrc_CSI_AperiodicTriggerState;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo;
+static int ett_nr_rrc_CSI_AssociatedReportConfigInfo;
+static int ett_nr_rrc_T_resourcesForChannel;
+static int ett_nr_rrc_T_nzp_CSI_RS;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId;
+static int ett_nr_rrc_T_resourcesForChannel2_r17;
+static int ett_nr_rrc_T_nzp_CSI_RS2_r17;
+static int ett_nr_rrc_CSI_FrequencyOccupation;
+static int ett_nr_rrc_CSI_IM_Resource;
+static int ett_nr_rrc_T_csi_IM_ResourceElementPattern;
+static int ett_nr_rrc_T_pattern0;
+static int ett_nr_rrc_T_pattern1;
+static int ett_nr_rrc_CSI_IM_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId;
+static int ett_nr_rrc_CSI_MeasConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId;
+static int ett_nr_rrc_T_aperiodicTriggerStateList;
+static int ett_nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCellActRS_r17_OF_SCellActivationRS_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCellActRS_r17_OF_SCellActivationRS_ConfigId_r17;
+static int ett_nr_rrc_CSI_ReportConfig;
+static int ett_nr_rrc_T_reportConfigType;
+static int ett_nr_rrc_T_periodic;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource;
+static int ett_nr_rrc_T_semiPersistentOnPUCCH;
+static int ett_nr_rrc_T_semiPersistentOnPUSCH;
+static int ett_nr_rrc_T_reportSlotOffsetList;
+static int ett_nr_rrc_T_aperiodic;
+static int ett_nr_rrc_T_reportSlotOffsetList_01;
+static int ett_nr_rrc_T_reportQuantity;
+static int ett_nr_rrc_T_cri_RI_i1_CQI;
+static int ett_nr_rrc_T_reportFreqConfiguration;
+static int ett_nr_rrc_T_csi_ReportingBand;
+static int ett_nr_rrc_T_groupBasedBeamReporting;
+static int ett_nr_rrc_T_disabled;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks;
+static int ett_nr_rrc_T_semiPersistentOnPUSCH_v1530;
+static int ett_nr_rrc_T_semiPersistentOnPUSCH_v1610;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r16;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r16;
+static int ett_nr_rrc_T_aperiodic_v1610;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r16_01;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r16_01;
+static int ett_nr_rrc_T_reportQuantity_r16;
+static int ett_nr_rrc_T_groupBasedBeamReporting_v1710;
+static int ett_nr_rrc_T_reportQuantity_r17;
+static int ett_nr_rrc_T_semiPersistentOnPUSCH_v1720;
+static int ett_nr_rrc_T_reportSlotOffsetList_r17;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r17;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r17;
+static int ett_nr_rrc_T_aperiodic_v1720;
+static int ett_nr_rrc_T_reportSlotOffsetList_r17_01;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_2_r17_01;
+static int ett_nr_rrc_T_reportSlotOffsetListDCI_0_1_r17_01;
+static int ett_nr_rrc_CSI_ReportPeriodicityAndOffset;
+static int ett_nr_rrc_PUCCH_CSI_Resource;
+static int ett_nr_rrc_PortIndexFor8Ranks;
+static int ett_nr_rrc_T_portIndex8;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_OF_PortIndex8;
+static int ett_nr_rrc_SEQUENCE_SIZE_3_OF_PortIndex8;
+static int ett_nr_rrc_SEQUENCE_SIZE_4_OF_PortIndex8;
+static int ett_nr_rrc_SEQUENCE_SIZE_5_OF_PortIndex8;
+static int ett_nr_rrc_SEQUENCE_SIZE_6_OF_PortIndex8;
+static int ett_nr_rrc_SEQUENCE_SIZE_7_OF_PortIndex8;
+static int ett_nr_rrc_SEQUENCE_SIZE_8_OF_PortIndex8;
+static int ett_nr_rrc_T_portIndex4;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_OF_PortIndex4;
+static int ett_nr_rrc_SEQUENCE_SIZE_3_OF_PortIndex4;
+static int ett_nr_rrc_SEQUENCE_SIZE_4_OF_PortIndex4;
+static int ett_nr_rrc_T_portIndex2;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_OF_PortIndex2;
+static int ett_nr_rrc_CSI_ResourceConfig;
+static int ett_nr_rrc_T_csi_RS_ResourceSetList;
+static int ett_nr_rrc_T_nzp_CSI_RS_SSB;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId;
+static int ett_nr_rrc_CSI_ResourcePeriodicityAndOffset;
+static int ett_nr_rrc_CSI_RS_ResourceConfigMobility;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility;
+static int ett_nr_rrc_CSI_RS_CellMobility;
+static int ett_nr_rrc_T_csi_rs_MeasurementBW;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility;
+static int ett_nr_rrc_CSI_RS_Resource_Mobility;
+static int ett_nr_rrc_T_slotConfig;
+static int ett_nr_rrc_T_associatedSSB;
+static int ett_nr_rrc_T_frequencyDomainAllocation;
+static int ett_nr_rrc_T_slotConfig_r17;
+static int ett_nr_rrc_CSI_RS_ResourceMapping;
+static int ett_nr_rrc_T_frequencyDomainAllocation_01;
+static int ett_nr_rrc_T_density_01;
+static int ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList;
+static int ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerState;
+static int ett_nr_rrc_CSI_SSB_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_ServingAdditionalPCIIndex_r17;
+static int ett_nr_rrc_DL_PPW_PreConfig_r17;
+static int ett_nr_rrc_DL_PPW_PeriodicityAndStartSlot_r17;
+static int ett_nr_rrc_T_scs15;
+static int ett_nr_rrc_T_scs30;
+static int ett_nr_rrc_T_scs60;
+static int ett_nr_rrc_T_scs120;
+static int ett_nr_rrc_DMRS_BundlingPUCCH_Config_r17;
+static int ett_nr_rrc_DMRS_BundlingPUSCH_Config_r17;
+static int ett_nr_rrc_DMRS_DownlinkConfig;
+static int ett_nr_rrc_T_phaseTrackingRS;
+static int ett_nr_rrc_DMRS_UplinkConfig;
+static int ett_nr_rrc_T_phaseTrackingRS_01;
+static int ett_nr_rrc_T_transformPrecodingDisabled;
+static int ett_nr_rrc_T_transformPrecodingEnabled;
+static int ett_nr_rrc_T_dmrs_UplinkTransformPrecoding_r16;
+static int ett_nr_rrc_DMRS_UplinkTransformPrecoding_r16;
+static int ett_nr_rrc_DownlinkConfigCommon;
+static int ett_nr_rrc_DownlinkConfigCommonSIB;
+static int ett_nr_rrc_DownlinkConfigCommonSIB_v1760;
+static int ett_nr_rrc_BCCH_Config;
+static int ett_nr_rrc_PCCH_Config;
+static int ett_nr_rrc_T_nAndPagingFrameOffset;
+static int ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO;
+static int ett_nr_rrc_T_sCS15KHZoneT;
+static int ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT;
+static int ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT;
+static int ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT;
+static int ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT;
+static int ett_nr_rrc_T_sCS480KHZoneT_SCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT;
+static int ett_nr_rrc_T_sCS480KHZhalfT_SCS120KHZoneEighthT_SCS60KHZoneSixteenthT;
+static int ett_nr_rrc_T_sCS480KHZquarterT_SCS120KHZoneSixteenthT;
+static int ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_v1710;
+static int ett_nr_rrc_T_sCS480KHZoneEighthT;
+static int ett_nr_rrc_T_sCS480KHZoneSixteenthT;
+static int ett_nr_rrc_PEI_Config_r17;
+static int ett_nr_rrc_SubgroupConfig_r17;
+static int ett_nr_rrc_DownlinkPreemption;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell;
+static int ett_nr_rrc_INT_ConfigurationPerServingCell;
+static int ett_nr_rrc_DRX_Config;
+static int ett_nr_rrc_T_drx_onDurationTimer_01;
+static int ett_nr_rrc_T_drx_LongCycleStartOffset_01;
+static int ett_nr_rrc_T_shortDRX_01;
+static int ett_nr_rrc_DRX_ConfigExt_v1700;
+static int ett_nr_rrc_DRX_ConfigSecondaryGroup_r16;
+static int ett_nr_rrc_T_drx_onDurationTimer_r16;
+static int ett_nr_rrc_DRX_ConfigSL_r17;
+static int ett_nr_rrc_EphemerisInfo_r17;
+static int ett_nr_rrc_PositionVelocity_r17;
+static int ett_nr_rrc_Orbital_r17;
+static int ett_nr_rrc_FeatureCombination_r17;
+static int ett_nr_rrc_NSAG_List_r17;
+static int ett_nr_rrc_FeatureCombinationPreambles_r17;
+static int ett_nr_rrc_T_groupBconfigured_r17;
+static int ett_nr_rrc_FreqPriorityListDedicatedSlicing_r17;
+static int ett_nr_rrc_FreqPriorityDedicatedSlicing_r17;
+static int ett_nr_rrc_SliceInfoListDedicated_r17;
+static int ett_nr_rrc_SliceInfoDedicated_r17;
+static int ett_nr_rrc_FreqPriorityListSlicing_r17;
+static int ett_nr_rrc_FreqPrioritySlicing_r17;
+static int ett_nr_rrc_SliceInfoList_r17;
+static int ett_nr_rrc_SliceInfo_r17;
+static int ett_nr_rrc_T_sliceCellListNR_r17;
+static int ett_nr_rrc_SliceCellListNR_r17;
+static int ett_nr_rrc_FrequencyInfoDL;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier;
+static int ett_nr_rrc_FrequencyInfoDL_SIB;
+static int ett_nr_rrc_FrequencyInfoDL_SIB_v1760;
+static int ett_nr_rrc_FrequencyInfoUL;
+static int ett_nr_rrc_FrequencyInfoUL_SIB;
+static int ett_nr_rrc_FrequencyInfoUL_SIB_v1760;
+static int ett_nr_rrc_HighSpeedConfig_r16;
+static int ett_nr_rrc_HighSpeedConfig_v1700;
+static int ett_nr_rrc_HighSpeedConfigFR2_r17;
+static int ett_nr_rrc_InvalidSymbolPattern_r16;
+static int ett_nr_rrc_T_symbols_r16;
+static int ett_nr_rrc_T_periodicityAndPattern_r16;
+static int ett_nr_rrc_LBT_FailureRecoveryConfig_r16;
+static int ett_nr_rrc_LocationInfo_r16;
+static int ett_nr_rrc_LocationMeasurementInfo;
+static int ett_nr_rrc_EUTRA_RSTD_InfoList;
+static int ett_nr_rrc_EUTRA_RSTD_Info;
+static int ett_nr_rrc_NR_PRS_MeasurementInfoList_r16;
+static int ett_nr_rrc_NR_PRS_MeasurementInfo_r16;
+static int ett_nr_rrc_T_nr_MeasPRS_RepetitionAndOffset_r16;
+static int ett_nr_rrc_LogicalChannelConfig;
+static int ett_nr_rrc_T_ul_SpecificParameters;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing;
+static int ett_nr_rrc_LTE_NeighCellsCRS_AssistInfoList_r17;
+static int ett_nr_rrc_LTE_NeighCellsCRS_AssistInfo_r17;
+static int ett_nr_rrc_MAC_CellGroupConfig;
+static int ett_nr_rrc_T_drx_Config;
+static int ett_nr_rrc_T_phr_Config;
+static int ett_nr_rrc_T_dataInactivityTimer;
+static int ett_nr_rrc_T_drx_ConfigSecondaryGroup_r16;
+static int ett_nr_rrc_T_drx_ConfigSL_r17;
+static int ett_nr_rrc_T_drx_ConfigExt_v1700;
+static int ett_nr_rrc_T_tar_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxG_RNTI_r17_OF_MBS_RNTI_SpecificConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxG_RNTI_r17_OF_MBS_RNTI_SpecificConfigId_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxG_CS_RNTI_r17_OF_MBS_RNTI_SpecificConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxG_CS_RNTI_r17_OF_MBS_RNTI_SpecificConfigId_r17;
+static int ett_nr_rrc_MBS_RNTI_SpecificConfig_r17;
+static int ett_nr_rrc_T_groupCommon_RNTI_r17;
+static int ett_nr_rrc_T_drx_ConfigPTM_r17;
+static int ett_nr_rrc_MeasConfig;
+static int ett_nr_rrc_T_s_MeasureConfig;
+static int ett_nr_rrc_MeasObjectToRemoveList;
+static int ett_nr_rrc_MeasIdToRemoveList;
+static int ett_nr_rrc_ReportConfigToRemoveList;
+static int ett_nr_rrc_MeasGapConfig;
+static int ett_nr_rrc_T_gapFR2;
+static int ett_nr_rrc_T_gapFR1;
+static int ett_nr_rrc_T_gapUE;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofGapId_r17_OF_GapConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofGapId_r17_OF_MeasGapId_r17;
+static int ett_nr_rrc_GapConfig;
+static int ett_nr_rrc_GapConfig_r17;
+static int ett_nr_rrc_PosMeasGapPreConfigToAddModList_r17;
+static int ett_nr_rrc_PosMeasGapPreConfigToReleaseList_r17;
+static int ett_nr_rrc_PosGapConfig_r17;
+static int ett_nr_rrc_MeasGapSharingConfig;
+static int ett_nr_rrc_T_gapSharingFR2;
+static int ett_nr_rrc_T_gapSharingFR1;
+static int ett_nr_rrc_T_gapSharingUE;
+static int ett_nr_rrc_MeasIdleConfigSIB_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasIdleCarrierNR_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasIdleCarrierEUTRA_r16;
+static int ett_nr_rrc_MeasIdleConfigDedicated_r16;
+static int ett_nr_rrc_ValidityAreaList_r16;
+static int ett_nr_rrc_ValidityArea_r16;
+static int ett_nr_rrc_ValidityCellList;
+static int ett_nr_rrc_MeasIdleCarrierNR_r16;
+static int ett_nr_rrc_T_qualityThreshold_r16;
+static int ett_nr_rrc_T_ssb_MeasConfig_r16;
+static int ett_nr_rrc_MeasIdleCarrierEUTRA_r16;
+static int ett_nr_rrc_T_qualityThresholdEUTRA_r16;
+static int ett_nr_rrc_CellListNR_r16;
+static int ett_nr_rrc_CellListEUTRA_r16;
+static int ett_nr_rrc_BeamMeasConfigIdle_NR_r16;
+static int ett_nr_rrc_MeasIdToAddModList;
+static int ett_nr_rrc_MeasIdToAddMod;
+static int ett_nr_rrc_MeasObjectCLI_r16;
+static int ett_nr_rrc_CLI_ResourceConfig_r16;
+static int ett_nr_rrc_T_srs_ResourceConfig_r16;
+static int ett_nr_rrc_T_rssi_ResourceConfig_r16;
+static int ett_nr_rrc_SRS_ResourceListConfigCLI_r16;
+static int ett_nr_rrc_RSSI_ResourceListConfigCLI_r16;
+static int ett_nr_rrc_SRS_ResourceConfigCLI_r16;
+static int ett_nr_rrc_RSSI_ResourceConfigCLI_r16;
+static int ett_nr_rrc_RSSI_PeriodicityAndOffset_r16;
+static int ett_nr_rrc_MeasObjectEUTRA;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_ExcludedCell;
+static int ett_nr_rrc_EUTRA_CellIndexList;
+static int ett_nr_rrc_EUTRA_Cell;
+static int ett_nr_rrc_EUTRA_ExcludedCell;
+static int ett_nr_rrc_MeasObjectNR;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement;
+static int ett_nr_rrc_T_rmtc_Config_r16;
+static int ett_nr_rrc_T_t312_r16;
+static int ett_nr_rrc_SSB_MTC3List_r16;
+static int ett_nr_rrc_SSB_MTC4List_r17;
+static int ett_nr_rrc_ReferenceSignalConfig;
+static int ett_nr_rrc_T_csi_rs_ResourceConfigMobility;
+static int ett_nr_rrc_SSB_ConfigMobility;
+static int ett_nr_rrc_T_ssb_ToMeasure;
+static int ett_nr_rrc_T_ssb_PositionQCL_Cells_r17;
+static int ett_nr_rrc_Q_OffsetRangeList;
+static int ett_nr_rrc_ThresholdNR;
+static int ett_nr_rrc_CellsToAddModList;
+static int ett_nr_rrc_CellsToAddModListExt_v1710;
+static int ett_nr_rrc_CellsToAddMod;
+static int ett_nr_rrc_CellsToAddModExt_v1710;
+static int ett_nr_rrc_RMTC_Config_r16;
+static int ett_nr_rrc_T_tci_StateInfo_r17;
+static int ett_nr_rrc_SSB_PositionQCL_CellsToAddModList_r16;
+static int ett_nr_rrc_SSB_PositionQCL_CellsToAddMod_r16;
+static int ett_nr_rrc_SSB_PositionQCL_CellList_r17;
+static int ett_nr_rrc_SSB_PositionQCL_Cell_r17;
+static int ett_nr_rrc_MeasObjectNR_SL_r16;
+static int ett_nr_rrc_Tx_PoolMeasList_r16;
+static int ett_nr_rrc_MeasObjectRxTxDiff_r17;
+static int ett_nr_rrc_T_dl_Ref_r17;
+static int ett_nr_rrc_MeasObjectToAddModList;
+static int ett_nr_rrc_MeasObjectToAddMod;
+static int ett_nr_rrc_T_measObject;
+static int ett_nr_rrc_MeasObjectUTRA_FDD_r16;
+static int ett_nr_rrc_CellsToAddModListUTRA_FDD_r16;
+static int ett_nr_rrc_CellsToAddModUTRA_FDD_r16;
+static int ett_nr_rrc_UTRA_FDD_CellIndexList_r16;
+static int ett_nr_rrc_MeasResultCellListSFTD_NR;
+static int ett_nr_rrc_MeasResultCellSFTD_NR;
+static int ett_nr_rrc_MeasResultCellListSFTD_EUTRA;
+static int ett_nr_rrc_MeasResultSFTD_EUTRA;
+static int ett_nr_rrc_MeasResults;
+static int ett_nr_rrc_T_measResultNeighCells;
+static int ett_nr_rrc_MeasResultServMOList;
+static int ett_nr_rrc_MeasResultServMO;
+static int ett_nr_rrc_MeasResultListNR;
+static int ett_nr_rrc_MeasResultNR;
+static int ett_nr_rrc_T_measResult;
+static int ett_nr_rrc_T_cellResults;
+static int ett_nr_rrc_T_rsIndexResults;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_CondTriggerConfig_r16;
+static int ett_nr_rrc_T_triggeredEvent_r17;
+static int ett_nr_rrc_MeasResultListEUTRA;
+static int ett_nr_rrc_MeasResultEUTRA;
+static int ett_nr_rrc_MultiBandInfoListEUTRA;
+static int ett_nr_rrc_MeasQuantityResults;
+static int ett_nr_rrc_MeasQuantityResultsEUTRA;
+static int ett_nr_rrc_ResultsPerSSB_IndexList;
+static int ett_nr_rrc_ResultsPerSSB_Index;
+static int ett_nr_rrc_ResultsPerCSI_RS_IndexList;
+static int ett_nr_rrc_ResultsPerCSI_RS_Index;
+static int ett_nr_rrc_MeasResultServFreqListEUTRA_SCG;
+static int ett_nr_rrc_MeasResultServFreqListNR_SCG;
+static int ett_nr_rrc_MeasResultListUTRA_FDD_r16;
+static int ett_nr_rrc_MeasResultUTRA_FDD_r16;
+static int ett_nr_rrc_T_measResult_r16_02;
+static int ett_nr_rrc_MeasResultForRSSI_r16;
+static int ett_nr_rrc_MeasResultCLI_r16;
+static int ett_nr_rrc_MeasResultListSRS_RSRP_r16;
+static int ett_nr_rrc_MeasResultSRS_RSRP_r16;
+static int ett_nr_rrc_MeasResultListCLI_RSSI_r16;
+static int ett_nr_rrc_MeasResultCLI_RSSI_r16;
+static int ett_nr_rrc_UL_PDCP_DelayValueResultList_r16;
+static int ett_nr_rrc_UL_PDCP_DelayValueResult_r16;
+static int ett_nr_rrc_UL_PDCP_ExcessDelayResultList_r17;
+static int ett_nr_rrc_UL_PDCP_ExcessDelayResult_r17;
+static int ett_nr_rrc_MeasResult2EUTRA;
+static int ett_nr_rrc_MeasResult2NR;
+static int ett_nr_rrc_MeasResultIdleEUTRA_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasResultsPerCarrierIdleEUTRA_r16;
+static int ett_nr_rrc_MeasResultsPerCarrierIdleEUTRA_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasIdle_r16_OF_MeasResultsPerCellIdleEUTRA_r16;
+static int ett_nr_rrc_MeasResultsPerCellIdleEUTRA_r16;
+static int ett_nr_rrc_T_measIdleResultEUTRA_r16;
+static int ett_nr_rrc_MeasResultIdleNR_r16;
+static int ett_nr_rrc_T_measResultServingCell_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFreqIdle_r16_OF_MeasResultsPerCarrierIdleNR_r16;
+static int ett_nr_rrc_MeasResultsPerCarrierIdleNR_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasIdle_r16_OF_MeasResultsPerCellIdleNR_r16;
+static int ett_nr_rrc_MeasResultsPerCellIdleNR_r16;
+static int ett_nr_rrc_T_measIdleResultNR_r16;
+static int ett_nr_rrc_ResultsPerSSB_IndexList_r16;
+static int ett_nr_rrc_ResultsPerSSB_IndexIdle_r16;
+static int ett_nr_rrc_T_ssb_Results_r16;
+static int ett_nr_rrc_MeasResultRxTxTimeDiff_r17;
+static int ett_nr_rrc_MeasResultSCG_Failure;
+static int ett_nr_rrc_MeasResultList2NR;
+static int ett_nr_rrc_MeasResultsSL_r16;
+static int ett_nr_rrc_T_measResultsListSL_r16;
+static int ett_nr_rrc_MeasResultNR_SL_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_PoolToMeasureNR_r16_OF_MeasResultCBR_NR_r16;
+static int ett_nr_rrc_MeasResultCBR_NR_r16;
+static int ett_nr_rrc_MeasTriggerQuantityEUTRA;
+static int ett_nr_rrc_MobilityStateParameters;
+static int ett_nr_rrc_MsgA_ConfigCommon_r16;
+static int ett_nr_rrc_MsgA_PUSCH_Config_r16;
+static int ett_nr_rrc_MsgA_PUSCH_Resource_r16;
+static int ett_nr_rrc_MsgA_DMRS_Config_r16;
+static int ett_nr_rrc_MultiFrequencyBandListNR;
+static int ett_nr_rrc_MultiFrequencyBandListNR_SIB;
+static int ett_nr_rrc_NR_MultiBandInfo;
+static int ett_nr_rrc_MultiFrequencyBandListNR_SIB_v1760;
+static int ett_nr_rrc_NR_MultiBandInfo_v1760;
+static int ett_nr_rrc_MUSIM_GapConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_MUSIM_GapId_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_MUSIM_Gap_r17;
+static int ett_nr_rrc_MUSIM_Gap_r17;
+static int ett_nr_rrc_MUSIM_GapInfo_r17;
+static int ett_nr_rrc_T_musim_GapRepetitionAndOffset_r17;
+static int ett_nr_rrc_MUSIM_Starting_SFN_AndSubframe_r17;
+static int ett_nr_rrc_NeedForGapsConfigNR_r16;
+static int ett_nr_rrc_NeedForGapsInfoNR_r16;
+static int ett_nr_rrc_NeedForGapsIntraFreqList_r16;
+static int ett_nr_rrc_NeedForGapsBandListNR_r16;
+static int ett_nr_rrc_NeedForGapsIntraFreq_r16;
+static int ett_nr_rrc_NeedForGapsNR_r16;
+static int ett_nr_rrc_NeedForGapNCSG_ConfigEUTRA_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA;
+static int ett_nr_rrc_NeedForGapNCSG_ConfigNR_r17;
+static int ett_nr_rrc_NeedForGapNCSG_InfoEUTRA_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_NeedForNCSG_EUTRA_r17;
+static int ett_nr_rrc_NeedForNCSG_EUTRA_r17;
+static int ett_nr_rrc_NeedForGapNCSG_InfoNR_r17;
+static int ett_nr_rrc_NeedForNCSG_IntraFreqList_r17;
+static int ett_nr_rrc_NeedForNCSG_BandListNR_r17;
+static int ett_nr_rrc_NeedForNCSG_IntraFreq_r17;
+static int ett_nr_rrc_NeedForNCSG_NR_r17;
+static int ett_nr_rrc_NonCellDefiningSSB_r17;
+static int ett_nr_rrc_NPN_Identity_r16;
+static int ett_nr_rrc_T_pni_npn_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_CAG_IdentityInfo_r16;
+static int ett_nr_rrc_T_snpn_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_NID_r16;
+static int ett_nr_rrc_CAG_IdentityInfo_r16;
+static int ett_nr_rrc_NPN_IdentityInfoList_r16;
+static int ett_nr_rrc_NPN_IdentityInfo_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNPN_r16_OF_NPN_Identity_r16;
+static int ett_nr_rrc_NR_DL_PRS_PDC_Info_r17;
+static int ett_nr_rrc_NR_DL_PRS_PDC_ResourceSet_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPRS_ResourcesPerSet_r17_OF_NR_DL_PRS_Resource_r17;
+static int ett_nr_rrc_NR_DL_PRS_Periodicity_and_ResourceSetSlotOffset_r17;
+static int ett_nr_rrc_T_scs15_r17;
+static int ett_nr_rrc_T_scs30_r17;
+static int ett_nr_rrc_T_scs60_r17;
+static int ett_nr_rrc_T_scs120_r17;
+static int ett_nr_rrc_NR_DL_PRS_Resource_r17;
+static int ett_nr_rrc_T_dl_PRS_CombSizeN_AndReOffset_r17;
+static int ett_nr_rrc_DL_PRS_QCL_Info_r17;
+static int ett_nr_rrc_T_ssb_r17;
+static int ett_nr_rrc_T_dl_PRS_r17;
+static int ett_nr_rrc_RepFactorAndTimeGap_r17;
+static int ett_nr_rrc_NR_NS_PmaxList;
+static int ett_nr_rrc_NR_NS_PmaxValue;
+static int ett_nr_rrc_NR_NS_PmaxList_v1760;
+static int ett_nr_rrc_NR_NS_PmaxValue_v1760;
+static int ett_nr_rrc_NSAG_IdentityInfo_r17;
+static int ett_nr_rrc_NTN_Config_r17;
+static int ett_nr_rrc_EpochTime_r17;
+static int ett_nr_rrc_TA_Info_r17;
+static int ett_nr_rrc_NZP_CSI_RS_Resource;
+static int ett_nr_rrc_NZP_CSI_RS_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId;
+static int ett_nr_rrc_CMRGroupingAndPairing_r17;
+static int ett_nr_rrc_NZP_CSI_RS_Pairing_r17;
+static int ett_nr_rrc_PathlossReferenceRS_r17;
+static int ett_nr_rrc_T_referenceSignal_r17;
+static int ett_nr_rrc_PCI_ARFCN_EUTRA_r16;
+static int ett_nr_rrc_PCI_ARFCN_NR_r16;
+static int ett_nr_rrc_PCI_List;
+static int ett_nr_rrc_PCI_Range;
+static int ett_nr_rrc_PCI_RangeElement;
+static int ett_nr_rrc_PCI_RangeIndexList;
+static int ett_nr_rrc_PDCCH_Config;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpace;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceId;
+static int ett_nr_rrc_T_downlinkPreemption;
+static int ett_nr_rrc_T_tpc_PUSCH;
+static int ett_nr_rrc_T_tpc_PUCCH;
+static int ett_nr_rrc_T_tpc_SRS;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_ControlResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_5_OF_ControlResourceSetId_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceExt_r16;
+static int ett_nr_rrc_T_uplinkCancellation_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceExt_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_SCS_SpecificDuration_r17;
+static int ett_nr_rrc_SearchSpaceSwitchConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_CellGroupForSwitch_r16;
+static int ett_nr_rrc_SearchSpaceSwitchConfig_r17;
+static int ett_nr_rrc_CellGroupForSwitch_r16;
+static int ett_nr_rrc_PDCCH_ConfigCommon;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace;
+static int ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_01;
+static int ett_nr_rrc_T_sCS15KHZoneT_01;
+static int ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT_01;
+static int ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_01;
+static int ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_01;
+static int ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_01;
+static int ett_nr_rrc_T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT;
+static int ett_nr_rrc_T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT;
+static int ett_nr_rrc_T_sCS120KHZoneSixteenthT;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpaceExt_r16;
+static int ett_nr_rrc_T_sdt_SearchSpace_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpaceExt_v1700;
+static int ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_v1710_01;
+static int ett_nr_rrc_T_sCS480KHZoneEighthT_01;
+static int ett_nr_rrc_T_sCS480KHZoneSixteenthT_01;
+static int ett_nr_rrc_T_pei_ConfigBWP_r17;
+static int ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPEI_O_r17;
+static int ett_nr_rrc_T_sCS15KHZoneT_02;
+static int ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT_02;
+static int ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_02;
+static int ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_02;
+static int ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_02;
+static int ett_nr_rrc_T_sCS480KHZoneT_SCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_01;
+static int ett_nr_rrc_T_sCS480KHZhalfT_SCS120KHZoneEighthT_SCS60KHZoneSixteenthT_01;
+static int ett_nr_rrc_T_sCS480KHZquarterT_SCS120KHZoneSixteenthT_01;
+static int ett_nr_rrc_T_sCS480KHZoneEighthT_02;
+static int ett_nr_rrc_T_sCS480KHZoneSixteenthT_02;
+static int ett_nr_rrc_PDCCH_ConfigSIB1;
+static int ett_nr_rrc_PDCCH_ServingCellConfig;
+static int ett_nr_rrc_T_slotFormatIndicator;
+static int ett_nr_rrc_T_availabilityIndicator_r16;
+static int ett_nr_rrc_PDCP_Config;
+static int ett_nr_rrc_T_drb;
+static int ett_nr_rrc_T_headerCompression;
+static int ett_nr_rrc_T_rohc;
+static int ett_nr_rrc_T_profiles;
+static int ett_nr_rrc_T_uplinkOnlyROHC;
+static int ett_nr_rrc_T_profiles_01;
+static int ett_nr_rrc_T_moreThanOneRLC;
+static int ett_nr_rrc_T_primaryPath;
+static int ett_nr_rrc_T_discardTimerExt_r16;
+static int ett_nr_rrc_T_moreThanTwoRLC_DRB_r16;
+static int ett_nr_rrc_T_duplicationState_r16;
+static int ett_nr_rrc_T_ethernetHeaderCompression_r16;
+static int ett_nr_rrc_T_uplinkDataCompression_r17;
+static int ett_nr_rrc_T_discardTimerExt2_r17;
+static int ett_nr_rrc_EthernetHeaderCompression_r16;
+static int ett_nr_rrc_T_ehc_Common_r16;
+static int ett_nr_rrc_T_ehc_Downlink_r16;
+static int ett_nr_rrc_T_ehc_Uplink_r16;
+static int ett_nr_rrc_UplinkDataCompression_r17;
+static int ett_nr_rrc_T_newSetup;
+static int ett_nr_rrc_PDSCH_Config;
+static int ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA;
+static int ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId;
+static int ett_nr_rrc_T_pdsch_TimeDomainAllocationList;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId;
+static int ett_nr_rrc_T_prb_BundlingType;
+static int ett_nr_rrc_T_staticBundling;
+static int ett_nr_rrc_T_dynamicBundling;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourceSets_OF_ZP_CSI_RS_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourceSets_OF_ZP_CSI_RS_ResourceSetId;
+static int ett_nr_rrc_T_p_ZP_CSI_RS_ResourceSet;
+static int ett_nr_rrc_T_maxMIMO_Layers_r16;
+static int ett_nr_rrc_T_minimumSchedulingOffsetK0_r16;
+static int ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA_DCI_1_2_r16;
+static int ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB_DCI_1_2_r16;
+static int ett_nr_rrc_T_pdsch_TimeDomainAllocationListDCI_1_2_r16;
+static int ett_nr_rrc_T_prb_BundlingTypeDCI_1_2_r16;
+static int ett_nr_rrc_T_staticBundling_r16;
+static int ett_nr_rrc_T_dynamicBundling_r16;
+static int ett_nr_rrc_T_pdsch_TimeDomainAllocationList_r16;
+static int ett_nr_rrc_T_repetitionSchemeConfig_r16;
+static int ett_nr_rrc_T_repetitionSchemeConfig_v1630;
+static int ett_nr_rrc_T_dl_OrJointTCI_StateList_r17;
+static int ett_nr_rrc_T_explicitlist_01;
+static int ett_nr_rrc_T_dummy;
+static int ett_nr_rrc_T_minimumSchedulingOffsetK0_r17;
+static int ett_nr_rrc_T_pdsch_TimeDomainAllocationListForMultiPDSCH_r17;
+static int ett_nr_rrc_RateMatchPatternGroup;
+static int ett_nr_rrc_RateMatchPatternGroup_item;
+static int ett_nr_rrc_MinSchedulingOffsetK0_Values_r16;
+static int ett_nr_rrc_MinSchedulingOffsetK0_Values_r17;
+static int ett_nr_rrc_PDSCH_ConfigCommon;
+static int ett_nr_rrc_PDSCH_ServingCellConfig;
+static int ett_nr_rrc_T_codeBlockGroupTransmission;
+static int ett_nr_rrc_T_pdsch_CodeBlockGroupTransmissionList_r16;
+static int ett_nr_rrc_T_downlinkHARQ_FeedbackDisabled_r17;
+static int ett_nr_rrc_PDSCH_CodeBlockGroupTransmission;
+static int ett_nr_rrc_PDSCH_CodeBlockGroupTransmissionList_r16;
+static int ett_nr_rrc_PDSCH_TimeDomainResourceAllocationList;
+static int ett_nr_rrc_PDSCH_TimeDomainResourceAllocation;
+static int ett_nr_rrc_PDSCH_TimeDomainResourceAllocationList_r16;
+static int ett_nr_rrc_PDSCH_TimeDomainResourceAllocation_r16;
+static int ett_nr_rrc_Dummy_TDRA_List;
+static int ett_nr_rrc_MultiPDSCH_TDRA_List_r17;
+static int ett_nr_rrc_MultiPDSCH_TDRA_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofMultiplePDSCHs_r17_OF_PDSCH_TimeDomainResourceAllocation_r16;
+static int ett_nr_rrc_PHR_Config;
+static int ett_nr_rrc_T_mpe_Reporting_FR2_r16;
+static int ett_nr_rrc_T_mpe_Reporting_FR2_r17;
+static int ett_nr_rrc_MPE_Config_FR2_r16;
+static int ett_nr_rrc_MPE_Config_FR2_r17;
+static int ett_nr_rrc_PhysicalCellGroupConfig;
+static int ett_nr_rrc_T_cs_RNTI;
+static int ett_nr_rrc_T_pdcch_BlindDetection;
+static int ett_nr_rrc_T_dcp_Config_r16;
+static int ett_nr_rrc_T_pdsch_HARQ_ACK_CodebookList_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCA_CombIndicator_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetection2_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetection3_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofEnhType3HARQ_ACK_r17_OF_PDSCH_HARQ_ACK_EnhType3_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofEnhType3HARQ_ACK_r17_OF_PDSCH_HARQ_ACK_EnhType3Index_r17;
+static int ett_nr_rrc_T_pucch_sSCellPattern_r17;
+static int ett_nr_rrc_T_pucch_sSCellPatternSecondaryPUCCHgroup_r17;
+static int ett_nr_rrc_T_multicastConfig_r17;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCA_CombIndicator_r17;
+static int ett_nr_rrc_T_pdcch_BlindDetection4_r17;
+static int ett_nr_rrc_PDSCH_HARQ_ACK_EnhType3_r17;
+static int ett_nr_rrc_T_applicable_r17;
+static int ett_nr_rrc_T_perCC;
+static int ett_nr_rrc_T_perHARQ;
+static int ett_nr_rrc_T_perHARQ_Ext_r17;
+static int ett_nr_rrc_DCP_Config_r16;
+static int ett_nr_rrc_PDSCH_HARQ_ACK_CodebookList_r16;
+static int ett_nr_rrc_PDCCH_BlindDetectionCA_CombIndicator_r16;
+static int ett_nr_rrc_MulticastConfig_r17;
+static int ett_nr_rrc_T_pdsch_HARQ_ACK_CodebookListMulticast_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionCA_CombIndicator_r17;
+static int ett_nr_rrc_PLMN_Identity;
+static int ett_nr_rrc_MCC;
+static int ett_nr_rrc_MNC;
+static int ett_nr_rrc_PLMN_IdentityInfoList;
+static int ett_nr_rrc_PLMN_IdentityInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxTAC_r17_OF_TrackingAreaCode;
+static int ett_nr_rrc_PLMN_IdentityList2_r16;
+static int ett_nr_rrc_PTRS_DownlinkConfig;
+static int ett_nr_rrc_T_frequencyDensity;
+static int ett_nr_rrc_T_timeDensity;
+static int ett_nr_rrc_PTRS_UplinkConfig;
+static int ett_nr_rrc_T_transformPrecoderDisabled;
+static int ett_nr_rrc_T_frequencyDensity_01;
+static int ett_nr_rrc_T_timeDensity_01;
+static int ett_nr_rrc_T_transformPrecoderEnabled;
+static int ett_nr_rrc_T_sampleDensity;
+static int ett_nr_rrc_PUCCH_Config;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId;
+static int ett_nr_rrc_T_format1;
+static int ett_nr_rrc_T_format2;
+static int ett_nr_rrc_T_format3;
+static int ett_nr_rrc_T_format4;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId;
+static int ett_nr_rrc_T_dl_DataToUL_ACK;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceExt_v1610;
+static int ett_nr_rrc_T_dl_DataToUL_ACK_r16;
+static int ett_nr_rrc_T_ul_AccessConfigListDCI_1_1_r16;
+static int ett_nr_rrc_T_subslotLengthForPUCCH_r16;
+static int ett_nr_rrc_T_dl_DataToUL_ACK_DCI_1_2_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfosDiff_r16_OF_PUCCH_SpatialRelationInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfosDiff_r16_OF_PUCCH_SpatialRelationInfoId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_r16_OF_PUCCH_SpatialRelationInfoExt_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_r16_OF_PUCCH_SpatialRelationInfoId_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceGroups_r16_OF_PUCCH_ResourceGroup_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceGroups_r16_OF_PUCCH_ResourceGroupId_r16;
+static int ett_nr_rrc_T_sps_PUCCH_AN_List_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfigExt_v1610;
+static int ett_nr_rrc_T_format0_r17;
+static int ett_nr_rrc_T_format2Ext_r17;
+static int ett_nr_rrc_T_format3Ext_r17;
+static int ett_nr_rrc_T_format4Ext_r17;
+static int ett_nr_rrc_T_ul_AccessConfigListDCI_1_2_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPowerControlSetInfos_r17_OF_PUCCH_PowerControlSetInfo_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPowerControlSetInfos_r17_OF_PUCCH_PowerControlSetInfoId_r17;
+static int ett_nr_rrc_T_dl_DataToUL_ACK_r17;
+static int ett_nr_rrc_T_dl_DataToUL_ACK_DCI_1_2_r17;
+static int ett_nr_rrc_T_ul_AccessConfigListDCI_1_1_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfigExt_v1700;
+static int ett_nr_rrc_T_dmrs_BundlingPUCCH_Config_r17;
+static int ett_nr_rrc_T_dl_DataToUL_ACK_v1700;
+static int ett_nr_rrc_T_dl_DataToUL_ACK_MulticastDCI_Format4_1_r17;
+static int ett_nr_rrc_T_sps_PUCCH_AN_ListMulticast_r17;
+static int ett_nr_rrc_PUCCH_FormatConfig;
+static int ett_nr_rrc_PUCCH_FormatConfigExt_r17;
+static int ett_nr_rrc_PUCCH_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId;
+static int ett_nr_rrc_PUCCH_Resource;
+static int ett_nr_rrc_T_format;
+static int ett_nr_rrc_PUCCH_ResourceExt_v1610;
+static int ett_nr_rrc_T_interlaceAllocation_r16;
+static int ett_nr_rrc_T_interlace0_r16;
+static int ett_nr_rrc_T_format_v1610;
+static int ett_nr_rrc_T_occ_v1610;
+static int ett_nr_rrc_T_format_v1700;
+static int ett_nr_rrc_PUCCH_format0;
+static int ett_nr_rrc_PUCCH_format1;
+static int ett_nr_rrc_PUCCH_format2;
+static int ett_nr_rrc_PUCCH_format3;
+static int ett_nr_rrc_PUCCH_format4;
+static int ett_nr_rrc_PUCCH_ResourceGroup_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerGroup_r16_OF_PUCCH_ResourceId;
+static int ett_nr_rrc_DL_DataToUL_ACK_r16;
+static int ett_nr_rrc_DL_DataToUL_ACK_r17;
+static int ett_nr_rrc_DL_DataToUL_ACK_v1700;
+static int ett_nr_rrc_DL_DataToUL_ACK_DCI_1_2_r16;
+static int ett_nr_rrc_DL_DataToUL_ACK_DCI_1_2_r17;
+static int ett_nr_rrc_UL_AccessConfigListDCI_1_1_r16;
+static int ett_nr_rrc_UL_AccessConfigListDCI_1_2_r17;
+static int ett_nr_rrc_UL_AccessConfigListDCI_1_1_r17;
+static int ett_nr_rrc_DL_DataToUL_ACK_MulticastDCI_Format4_1_r17;
+static int ett_nr_rrc_PUCCH_ConfigCommon;
+static int ett_nr_rrc_PUCCH_ConfigurationList_r16;
+static int ett_nr_rrc_PUCCH_PowerControl;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS;
+static int ett_nr_rrc_T_pathlossReferenceRSs_v1610;
+static int ett_nr_rrc_P0_PUCCH;
+static int ett_nr_rrc_PathlossReferenceRSs_v1610;
+static int ett_nr_rrc_PUCCH_PathlossReferenceRS;
+static int ett_nr_rrc_T_referenceSignal;
+static int ett_nr_rrc_PUCCH_PathlossReferenceRS_r16;
+static int ett_nr_rrc_T_referenceSignal_r16;
+static int ett_nr_rrc_PUCCH_PowerControlSetInfo_r17;
+static int ett_nr_rrc_PUCCH_SpatialRelationInfo;
+static int ett_nr_rrc_T_referenceSignal_01;
+static int ett_nr_rrc_PUCCH_SpatialRelationInfoExt_r16;
+static int ett_nr_rrc_PUCCH_SRS;
+static int ett_nr_rrc_PUCCH_TPC_CommandConfig;
+static int ett_nr_rrc_PUSCH_Config;
+static int ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA;
+static int ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB;
+static int ett_nr_rrc_T_frequencyHoppingOffsetLists;
+static int ett_nr_rrc_T_pusch_TimeDomainAllocationList;
+static int ett_nr_rrc_T_uci_OnPUSCH_01;
+static int ett_nr_rrc_T_minimumSchedulingOffsetK2_r16;
+static int ett_nr_rrc_T_ul_AccessConfigListDCI_0_1_r16;
+static int ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA_DCI_0_2_r16;
+static int ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB_DCI_0_2_r16;
+static int ett_nr_rrc_T_frequencyHoppingDCI_0_2_r16;
+static int ett_nr_rrc_T_frequencyHoppingOffsetListsDCI_0_2_r16;
+static int ett_nr_rrc_T_uci_OnPUSCH_ListDCI_0_2_r16;
+static int ett_nr_rrc_T_pusch_TimeDomainAllocationListDCI_0_2_r16;
+static int ett_nr_rrc_T_pusch_TimeDomainAllocationListDCI_0_1_r16;
+static int ett_nr_rrc_T_uci_OnPUSCH_ListDCI_0_1_r16;
+static int ett_nr_rrc_T_pusch_PowerControl_v1610;
+static int ett_nr_rrc_T_pusch_TimeDomainAllocationListForMultiPUSCH_r16;
+static int ett_nr_rrc_T_ul_AccessConfigListDCI_0_2_r17;
+static int ett_nr_rrc_T_betaOffsetsCrossPri0_r17;
+static int ett_nr_rrc_T_betaOffsetsCrossPri1_r17;
+static int ett_nr_rrc_T_betaOffsetsCrossPri0DCI_0_2_r17;
+static int ett_nr_rrc_T_betaOffsetsCrossPri1DCI_0_2_r17;
+static int ett_nr_rrc_T_ul_AccessConfigListDCI_0_1_r17;
+static int ett_nr_rrc_T_minimumSchedulingOffsetK2_r17;
+static int ett_nr_rrc_T_dmrs_BundlingPUSCH_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxMPE_Resources_r17_OF_MPE_Resource_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxMPE_Resources_r17_OF_MPE_ResourceId_r17;
+static int ett_nr_rrc_UCI_OnPUSCH;
+static int ett_nr_rrc_T_betaOffsets;
+static int ett_nr_rrc_SEQUENCE_SIZE_4_OF_BetaOffsets;
+static int ett_nr_rrc_MinSchedulingOffsetK2_Values_r16;
+static int ett_nr_rrc_MinSchedulingOffsetK2_Values_r17;
+static int ett_nr_rrc_UCI_OnPUSCH_DCI_0_2_r16;
+static int ett_nr_rrc_T_betaOffsetsDCI_0_2_r16;
+static int ett_nr_rrc_T_dynamicDCI_0_2_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_OF_BetaOffsets;
+static int ett_nr_rrc_FrequencyHoppingOffsetListsDCI_0_2_r16;
+static int ett_nr_rrc_UCI_OnPUSCH_ListDCI_0_2_r16;
+static int ett_nr_rrc_UCI_OnPUSCH_ListDCI_0_1_r16;
+static int ett_nr_rrc_UL_AccessConfigListDCI_0_1_r16;
+static int ett_nr_rrc_UL_AccessConfigListDCI_0_1_r17;
+static int ett_nr_rrc_UL_AccessConfigListDCI_0_2_r17;
+static int ett_nr_rrc_BetaOffsetsCrossPriSel_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_4_OF_BetaOffsetsCrossPri_r17;
+static int ett_nr_rrc_BetaOffsetsCrossPriSelDCI_0_2_r17;
+static int ett_nr_rrc_T_dynamicDCI_0_2_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_2_OF_BetaOffsetsCrossPri_r17;
+static int ett_nr_rrc_MPE_Resource_r17;
+static int ett_nr_rrc_T_mpe_ReferenceSignal_r17;
+static int ett_nr_rrc_PUSCH_ConfigCommon;
+static int ett_nr_rrc_PUSCH_PowerControl;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId;
+static int ett_nr_rrc_P0_PUSCH_AlphaSet;
+static int ett_nr_rrc_PUSCH_PathlossReferenceRS;
+static int ett_nr_rrc_T_referenceSignal_02;
+static int ett_nr_rrc_PUSCH_PathlossReferenceRS_r16;
+static int ett_nr_rrc_T_referenceSignal_r16_01;
+static int ett_nr_rrc_DummyPathlossReferenceRS_v1710;
+static int ett_nr_rrc_SRI_PUSCH_PowerControl;
+static int ett_nr_rrc_PUSCH_PowerControl_v1610;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSsDiff_r16_OF_PUSCH_PathlossReferenceRS_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSsDiff_r16_OF_PUSCH_PathlossReferenceRS_Id_v1610;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_P0_PUSCH_Set_r16;
+static int ett_nr_rrc_T_olpc_ParameterSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_r16_OF_DummyPathlossReferenceRS_v1710;
+static int ett_nr_rrc_P0_PUSCH_Set_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_Set_r16_OF_P0_PUSCH_r16;
+static int ett_nr_rrc_PUSCH_ServingCellConfig;
+static int ett_nr_rrc_T_codeBlockGroupTransmission_01;
+static int ett_nr_rrc_T_maxMIMO_LayersDCI_0_2_r16;
+static int ett_nr_rrc_T_uplinkHARQ_mode_r17;
+static int ett_nr_rrc_PUSCH_CodeBlockGroupTransmission;
+static int ett_nr_rrc_PUSCH_TimeDomainResourceAllocationList;
+static int ett_nr_rrc_PUSCH_TimeDomainResourceAllocation;
+static int ett_nr_rrc_PUSCH_TimeDomainResourceAllocationList_r16;
+static int ett_nr_rrc_PUSCH_TimeDomainResourceAllocation_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofMultiplePUSCHs_r16_OF_PUSCH_Allocation_r16;
+static int ett_nr_rrc_PUSCH_Allocation_r16;
+static int ett_nr_rrc_PUSCH_TPC_CommandConfig;
+static int ett_nr_rrc_QuantityConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR;
+static int ett_nr_rrc_QuantityConfigNR;
+static int ett_nr_rrc_QuantityConfigRS;
+static int ett_nr_rrc_FilterConfig;
+static int ett_nr_rrc_FilterConfigCLI_r16;
+static int ett_nr_rrc_QuantityConfigUTRA_FDD_r16;
+static int ett_nr_rrc_RACH_ConfigCommon;
+static int ett_nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB;
+static int ett_nr_rrc_T_groupBconfigured;
+static int ett_nr_rrc_T_prach_RootSequenceIndex;
+static int ett_nr_rrc_T_ra_PrioritizationForAccessIdentity_r16;
+static int ett_nr_rrc_T_prach_RootSequenceIndex_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureCombPreamblesPerRACHResource_r17_OF_FeatureCombinationPreambles_r17;
+static int ett_nr_rrc_RACH_ConfigCommonTwoStepRA_r16;
+static int ett_nr_rrc_T_msgA_SSB_PerRACH_OccasionAndCB_PreamblesPerSSB_r16;
+static int ett_nr_rrc_T_msgA_PRACH_RootSequenceIndex_r16;
+static int ett_nr_rrc_T_ra_PrioritizationForAccessIdentityTwoStep_r16;
+static int ett_nr_rrc_GroupB_ConfiguredTwoStepRA_r16;
+static int ett_nr_rrc_RACH_ConfigDedicated;
+static int ett_nr_rrc_CFRA;
+static int ett_nr_rrc_T_occasions;
+static int ett_nr_rrc_T_resources;
+static int ett_nr_rrc_T_ssb;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource;
+static int ett_nr_rrc_T_csirs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource;
+static int ett_nr_rrc_CFRA_TwoStep_r16;
+static int ett_nr_rrc_T_occasionsTwoStepRA_r16;
+static int ett_nr_rrc_T_resourcesTwoStep_r16;
+static int ett_nr_rrc_CFRA_SSB_Resource;
+static int ett_nr_rrc_CFRA_CSIRS_Resource;
+static int ett_nr_rrc_T_ra_OccasionList_01;
+static int ett_nr_rrc_RACH_ConfigGeneric;
+static int ett_nr_rrc_RACH_ConfigGenericTwoStepRA_r16;
+static int ett_nr_rrc_RA_Prioritization;
+static int ett_nr_rrc_RA_PrioritizationForSlicing_r17;
+static int ett_nr_rrc_RA_PrioritizationSliceInfoList_r17;
+static int ett_nr_rrc_RA_PrioritizationSliceInfo_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSliceInfo_r17_OF_NSAG_ID_r17;
+static int ett_nr_rrc_RadioBearerConfig;
+static int ett_nr_rrc_SRB_ToAddModList;
+static int ett_nr_rrc_SRB_ToAddMod;
+static int ett_nr_rrc_DRB_ToAddModList;
+static int ett_nr_rrc_DRB_ToAddMod;
+static int ett_nr_rrc_T_cnAssociation;
+static int ett_nr_rrc_DRB_ToReleaseList;
+static int ett_nr_rrc_SecurityConfig;
+static int ett_nr_rrc_MRB_ToAddModList_r17;
+static int ett_nr_rrc_MRB_ToAddMod_r17;
+static int ett_nr_rrc_MRB_ToReleaseList_r17;
+static int ett_nr_rrc_RadioLinkMonitoringConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS_Id;
+static int ett_nr_rrc_BeamFailureDetection_r17;
+static int ett_nr_rrc_RadioLinkMonitoringRS;
+static int ett_nr_rrc_T_detectionResource;
+static int ett_nr_rrc_BeamFailureDetectionSet_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBFDResourcePerSet_r17_OF_BeamLinkMonitoringRS_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBFDResourcePerSet_r17_OF_BeamLinkMonitoringRS_Id_r17;
+static int ett_nr_rrc_BeamLinkMonitoringRS_r17;
+static int ett_nr_rrc_T_detectionResource_r17;
+static int ett_nr_rrc_RateMatchPattern;
+static int ett_nr_rrc_T_patternType;
+static int ett_nr_rrc_T_bitmaps;
+static int ett_nr_rrc_T_symbolsInResourceBlock;
+static int ett_nr_rrc_T_periodicityAndPattern;
+static int ett_nr_rrc_RateMatchPatternLTE_CRS;
+static int ett_nr_rrc_LTE_CRS_PatternList_r16;
+static int ett_nr_rrc_ReferenceTimeInfo_r16;
+static int ett_nr_rrc_ReferenceTime_r16;
+static int ett_nr_rrc_RepetitionSchemeConfig_r16;
+static int ett_nr_rrc_T_fdm_TDM_r16;
+static int ett_nr_rrc_T_slotBased_r16;
+static int ett_nr_rrc_RepetitionSchemeConfig_v1630;
+static int ett_nr_rrc_T_slotBased_v1630;
+static int ett_nr_rrc_FDM_TDM_r16;
+static int ett_nr_rrc_SlotBased_r16;
+static int ett_nr_rrc_SlotBased_v1630;
+static int ett_nr_rrc_ReportConfigInterRAT;
+static int ett_nr_rrc_T_reportType_01;
+static int ett_nr_rrc_ReportCGI_EUTRA;
+static int ett_nr_rrc_ReportSFTD_EUTRA;
+static int ett_nr_rrc_EventTriggerConfigInterRAT;
+static int ett_nr_rrc_T_eventId;
+static int ett_nr_rrc_T_eventB1;
+static int ett_nr_rrc_T_eventB2;
+static int ett_nr_rrc_T_eventB1_UTRA_FDD_r16;
+static int ett_nr_rrc_T_eventB2_UTRA_FDD_r16;
+static int ett_nr_rrc_T_eventY1_Relay_r17;
+static int ett_nr_rrc_T_eventY2_Relay_r17;
+static int ett_nr_rrc_T_includeBT_Meas_r16;
+static int ett_nr_rrc_T_includeWLAN_Meas_r16;
+static int ett_nr_rrc_T_includeSensor_Meas_r16;
+static int ett_nr_rrc_PeriodicalReportConfigInterRAT;
+static int ett_nr_rrc_T_includeBT_Meas_r16_01;
+static int ett_nr_rrc_T_includeWLAN_Meas_r16_01;
+static int ett_nr_rrc_T_includeSensor_Meas_r16_01;
+static int ett_nr_rrc_MeasTriggerQuantityUTRA_FDD_r16;
+static int ett_nr_rrc_MeasReportQuantityUTRA_FDD_r16;
+static int ett_nr_rrc_ReportConfigNR;
+static int ett_nr_rrc_T_reportType_02;
+static int ett_nr_rrc_ReportCGI;
+static int ett_nr_rrc_ReportSFTD_NR;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCellSFTD_OF_PhysCellId;
+static int ett_nr_rrc_CondTriggerConfig_r16;
+static int ett_nr_rrc_T_condEventId;
+static int ett_nr_rrc_T_condEventA3;
+static int ett_nr_rrc_T_condEventA5;
+static int ett_nr_rrc_T_condEventA4_r17;
+static int ett_nr_rrc_T_condEventD1_r17;
+static int ett_nr_rrc_T_condEventT1_r17;
+static int ett_nr_rrc_EventTriggerConfig;
+static int ett_nr_rrc_T_eventId_01;
+static int ett_nr_rrc_T_eventA1;
+static int ett_nr_rrc_T_eventA2;
+static int ett_nr_rrc_T_eventA3;
+static int ett_nr_rrc_T_eventA4;
+static int ett_nr_rrc_T_eventA5;
+static int ett_nr_rrc_T_eventA6;
+static int ett_nr_rrc_T_eventX1_r17;
+static int ett_nr_rrc_T_eventX2_r17;
+static int ett_nr_rrc_T_eventD1_r17;
+static int ett_nr_rrc_T_includeBT_Meas_r16_02;
+static int ett_nr_rrc_T_includeWLAN_Meas_r16_02;
+static int ett_nr_rrc_T_includeSensor_Meas_r16_02;
+static int ett_nr_rrc_PeriodicalReportConfig;
+static int ett_nr_rrc_T_includeBT_Meas_r16_03;
+static int ett_nr_rrc_T_includeWLAN_Meas_r16_03;
+static int ett_nr_rrc_T_includeSensor_Meas_r16_03;
+static int ett_nr_rrc_T_ul_DelayValueConfig_r16;
+static int ett_nr_rrc_T_ul_ExcessDelayConfig_r17;
+static int ett_nr_rrc_MeasTriggerQuantity;
+static int ett_nr_rrc_MeasTriggerQuantityOffset;
+static int ett_nr_rrc_MeasReportQuantity;
+static int ett_nr_rrc_MeasRSSI_ReportConfig_r16;
+static int ett_nr_rrc_CLI_EventTriggerConfig_r16;
+static int ett_nr_rrc_T_eventId_r16;
+static int ett_nr_rrc_T_eventI1_r16;
+static int ett_nr_rrc_CLI_PeriodicalReportConfig_r16;
+static int ett_nr_rrc_RxTxPeriodical_r17;
+static int ett_nr_rrc_MeasTriggerQuantityCLI_r16;
+static int ett_nr_rrc_ReportConfigNR_SL_r16;
+static int ett_nr_rrc_T_reportType_r16;
+static int ett_nr_rrc_EventTriggerConfigNR_SL_r16;
+static int ett_nr_rrc_T_eventId_r16_01;
+static int ett_nr_rrc_T_eventC1;
+static int ett_nr_rrc_T_eventC2_r16;
+static int ett_nr_rrc_PeriodicalReportConfigNR_SL_r16;
+static int ett_nr_rrc_MeasReportQuantity_r16;
+static int ett_nr_rrc_ReportConfigToAddModList;
+static int ett_nr_rrc_ReportConfigToAddMod;
+static int ett_nr_rrc_T_reportConfig;
+static int ett_nr_rrc_RLC_BearerConfig;
+static int ett_nr_rrc_T_servedRadioBearer;
+static int ett_nr_rrc_MulticastRLC_BearerConfig_r17;
+static int ett_nr_rrc_RLC_Config;
+static int ett_nr_rrc_T_am;
+static int ett_nr_rrc_T_um_Bi_Directional;
+static int ett_nr_rrc_T_um_Uni_Directional_UL;
+static int ett_nr_rrc_T_um_Uni_Directional_DL;
+static int ett_nr_rrc_UL_AM_RLC;
+static int ett_nr_rrc_DL_AM_RLC;
+static int ett_nr_rrc_UL_UM_RLC;
+static int ett_nr_rrc_DL_UM_RLC;
+static int ett_nr_rrc_RLC_Config_v1610;
+static int ett_nr_rrc_RLC_Config_v1700;
+static int ett_nr_rrc_DL_AM_RLC_v1610;
+static int ett_nr_rrc_DL_AM_RLC_v1700;
+static int ett_nr_rrc_DL_UM_RLC_v1700;
+static int ett_nr_rrc_RLF_TimersAndConstants;
+static int ett_nr_rrc_RxTxTimeDiff_r17;
+static int ett_nr_rrc_SCellActivationRS_Config_r17;
+static int ett_nr_rrc_SchedulingRequestConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId;
+static int ett_nr_rrc_SchedulingRequestToAddMod;
+static int ett_nr_rrc_SchedulingRequestConfig_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddModExt_v1700;
+static int ett_nr_rrc_SchedulingRequestToAddModExt_v1700;
+static int ett_nr_rrc_SchedulingRequestResourceConfig;
+static int ett_nr_rrc_T_periodicityAndOffset;
+static int ett_nr_rrc_SchedulingRequestResourceConfigExt_v1610;
+static int ett_nr_rrc_SchedulingRequestResourceConfigExt_v1700;
+static int ett_nr_rrc_T_periodicityAndOffset_r17;
+static int ett_nr_rrc_SCS_SpecificCarrier;
+static int ett_nr_rrc_SDAP_Config;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI;
+static int ett_nr_rrc_SearchSpace;
+static int ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset;
+static int ett_nr_rrc_T_nrofCandidates;
+static int ett_nr_rrc_T_searchSpaceType;
+static int ett_nr_rrc_T_common;
+static int ett_nr_rrc_T_dci_Format0_0_AndFormat1_0;
+static int ett_nr_rrc_T_dci_Format2_0;
+static int ett_nr_rrc_T_nrofCandidates_SFI;
+static int ett_nr_rrc_T_dci_Format2_1;
+static int ett_nr_rrc_T_dci_Format2_2;
+static int ett_nr_rrc_T_dci_Format2_3;
+static int ett_nr_rrc_T_ue_Specific;
+static int ett_nr_rrc_SearchSpaceExt_r16;
+static int ett_nr_rrc_T_searchSpaceType_r16;
+static int ett_nr_rrc_T_common_r16;
+static int ett_nr_rrc_T_dci_Format2_4_r16;
+static int ett_nr_rrc_T_nrofCandidates_CI_r16;
+static int ett_nr_rrc_T_dci_Format2_5_r16;
+static int ett_nr_rrc_T_nrofCandidates_IAB_r16;
+static int ett_nr_rrc_T_dci_Format2_6_r16;
+static int ett_nr_rrc_T_searchSpaceGroupIdList_r16;
+static int ett_nr_rrc_SearchSpaceExt_v1700;
+static int ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset_v1710;
+static int ett_nr_rrc_T_monitoringSlotsWithinSlotGroup_r17;
+static int ett_nr_rrc_T_searchSpaceType_r17;
+static int ett_nr_rrc_T_common_r17;
+static int ett_nr_rrc_T_dci_Format4_0_r17;
+static int ett_nr_rrc_T_dci_Format4_1_r17;
+static int ett_nr_rrc_T_dci_Format4_2_r17;
+static int ett_nr_rrc_T_dci_Format4_1_AndFormat4_2_r17;
+static int ett_nr_rrc_T_dci_Format2_7_r17;
+static int ett_nr_rrc_T_nrofCandidates_PEI_r17;
+static int ett_nr_rrc_T_searchSpaceGroupIdList_r17;
+static int ett_nr_rrc_SecurityAlgorithmConfig;
+static int ett_nr_rrc_SemiStaticChannelAccessConfig_r16;
+static int ett_nr_rrc_SemiStaticChannelAccessConfigUE_r17;
+static int ett_nr_rrc_Sensor_LocationInfo_r16;
+static int ett_nr_rrc_ServingCellAndBWP_Id_r17;
+static int ett_nr_rrc_ServingCellConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink;
+static int ett_nr_rrc_T_pdcch_ServingCellConfig;
+static int ett_nr_rrc_T_pdsch_ServingCellConfig;
+static int ett_nr_rrc_T_csi_MeasConfig;
+static int ett_nr_rrc_T_lte_CRS_ToMatchAround;
+static int ett_nr_rrc_T_dormantBWP_Config_r16;
+static int ett_nr_rrc_T_ca_SlotOffset_r16;
+static int ett_nr_rrc_T_servingCellConfig_eag_2_dummy2;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_IntraCellGuardBandsPerSCS_r16;
+static int ett_nr_rrc_T_lte_CRS_PatternList1_r16;
+static int ett_nr_rrc_T_lte_CRS_PatternList2_r16;
+static int ett_nr_rrc_T_channelAccessConfig_r16;
+static int ett_nr_rrc_T_nr_dl_PRS_PDC_Info_r17;
+static int ett_nr_rrc_T_semiStaticChannelAccessConfigUE_r17;
+static int ett_nr_rrc_T_mimoParam_r17;
+static int ett_nr_rrc_T_lte_NeighCellsCRS_AssistInfoList_r17;
+static int ett_nr_rrc_UplinkConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink;
+static int ett_nr_rrc_T_pusch_ServingCellConfig;
+static int ett_nr_rrc_T_carrierSwitching;
+static int ett_nr_rrc_T_uplinkTxSwitching_r16;
+static int ett_nr_rrc_DummyJ;
+static int ett_nr_rrc_ChannelAccessConfig_r16;
+static int ett_nr_rrc_T_energyDetectionConfig_r16;
+static int ett_nr_rrc_IntraCellGuardBandsPerSCS_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_GuardBand_r16;
+static int ett_nr_rrc_GuardBand_r16;
+static int ett_nr_rrc_DormantBWP_Config_r16;
+static int ett_nr_rrc_T_withinActiveTimeConfig_r16;
+static int ett_nr_rrc_T_outsideActiveTimeConfig_r16;
+static int ett_nr_rrc_WithinActiveTimeConfig_r16;
+static int ett_nr_rrc_OutsideActiveTimeConfig_r16;
+static int ett_nr_rrc_UplinkTxSwitching_r16;
+static int ett_nr_rrc_MIMOParam_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAdditionalPCI_r17_OF_SSB_MTC_AdditionalPCI_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAdditionalPCI_r17_OF_AdditionalPCIIndex_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_Uplink_powerControl_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUL_TCI_r17_OF_Uplink_powerControlId_r17;
+static int ett_nr_rrc_ServingCellConfigCommon;
+static int ett_nr_rrc_T_ssb_PositionsInBurst;
+static int ett_nr_rrc_T_lte_CRS_ToMatchAround_01;
+static int ett_nr_rrc_T_channelAccessMode_r16;
+static int ett_nr_rrc_T_featurePriorities_r17_01;
+static int ett_nr_rrc_ServingCellConfigCommonSIB;
+static int ett_nr_rrc_T_ssb_PositionsInBurst_01;
+static int ett_nr_rrc_T_channelAccessMode_r16_01;
+static int ett_nr_rrc_SI_RequestConfig;
+static int ett_nr_rrc_T_rach_OccasionsSI;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources;
+static int ett_nr_rrc_SI_RequestResources;
+static int ett_nr_rrc_SI_SchedulingInfo;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo;
+static int ett_nr_rrc_SchedulingInfo;
+static int ett_nr_rrc_SI_SchedulingInfo_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo2_r17;
+static int ett_nr_rrc_SI_SchedulingInfo_v1740;
+static int ett_nr_rrc_SchedulingInfo2_r17;
+static int ett_nr_rrc_SIB_Mapping;
+static int ett_nr_rrc_SIB_Mapping_v1700;
+static int ett_nr_rrc_SIB_TypeInfo;
+static int ett_nr_rrc_SIB_TypeInfo_v1700;
+static int ett_nr_rrc_T_sibType_r17;
+static int ett_nr_rrc_T_type2_r17;
+static int ett_nr_rrc_SlotFormatCombinationsPerCell;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination;
+static int ett_nr_rrc_SlotFormatCombination;
+static int ett_nr_rrc_T_slotFormats;
+static int ett_nr_rrc_SlotFormatIndicator;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_AvailableRB_SetsPerCell_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpaceSwitchTrigger_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_ServCellIndex;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CO_DurationsPerCell_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroupMinus4_r16_OF_SearchSpaceSwitchTrigger_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroupMinus4_r16_OF_ServCellIndex;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CO_DurationsPerCell_r17;
+static int ett_nr_rrc_CO_DurationsPerCell_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_64_OF_CO_Duration_r16;
+static int ett_nr_rrc_CO_DurationsPerCell_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_64_OF_CO_Duration_r17;
+static int ett_nr_rrc_AvailableRB_SetsPerCell_r16;
+static int ett_nr_rrc_SearchSpaceSwitchTrigger_r16;
+static int ett_nr_rrc_S_NSSAI;
+static int ett_nr_rrc_SpeedStateScaleFactors;
+static int ett_nr_rrc_SPS_Config;
+static int ett_nr_rrc_SPS_PUCCH_AN_r16;
+static int ett_nr_rrc_SPS_PUCCH_AN_List_r16;
+static int ett_nr_rrc_SRS_CarrierSwitching;
+static int ett_nr_rrc_T_srs_TPC_PDCCH_Group;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config;
+static int ett_nr_rrc_SRS_TPC_PDCCH_Config;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex;
+static int ett_nr_rrc_SRS_CC_SetIndex;
+static int ett_nr_rrc_SRS_Config;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource;
+static int ett_nr_rrc_SRS_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId;
+static int ett_nr_rrc_T_resourceType_01;
+static int ett_nr_rrc_T_aperiodic_01;
+static int ett_nr_rrc_T_aperiodicSRS_ResourceTriggerList;
+static int ett_nr_rrc_T_semi_persistent;
+static int ett_nr_rrc_T_periodic_01;
+static int ett_nr_rrc_T_pathlossReferenceRSList_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_AvailableSlotOffset_r17;
+static int ett_nr_rrc_PathlossReferenceRS_Config;
+static int ett_nr_rrc_PathlossReferenceRSList_r16;
+static int ett_nr_rrc_PathlossReferenceRS_r16;
+static int ett_nr_rrc_SRS_PosResourceSet_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_PosResourceId_r16;
+static int ett_nr_rrc_T_resourceType_r16;
+static int ett_nr_rrc_T_aperiodic_r16;
+static int ett_nr_rrc_T_aperiodicSRS_ResourceTriggerList_r16;
+static int ett_nr_rrc_T_semi_persistent_r16;
+static int ett_nr_rrc_T_periodic_r16;
+static int ett_nr_rrc_T_pathlossReferenceRS_Pos_r16;
+static int ett_nr_rrc_SRS_Resource;
+static int ett_nr_rrc_T_transmissionComb;
+static int ett_nr_rrc_T_n2;
+static int ett_nr_rrc_T_n4;
+static int ett_nr_rrc_T_resourceMapping;
+static int ett_nr_rrc_T_freqHopping;
+static int ett_nr_rrc_T_resourceType_02;
+static int ett_nr_rrc_T_aperiodic_02;
+static int ett_nr_rrc_T_semi_persistent_01;
+static int ett_nr_rrc_T_periodic_02;
+static int ett_nr_rrc_T_resourceMapping_r16;
+static int ett_nr_rrc_T_spatialRelationInfo_PDC_r17;
+static int ett_nr_rrc_T_resourceMapping_r17;
+static int ett_nr_rrc_T_partialFreqSounding_r17;
+static int ett_nr_rrc_T_startRBIndexFScaling_r17;
+static int ett_nr_rrc_T_transmissionComb_n8_r17;
+static int ett_nr_rrc_T_srs_TCI_State_r17;
+static int ett_nr_rrc_T_srs_DLorJointTCI_State_v1730;
+static int ett_nr_rrc_SRS_PosResource_r16;
+static int ett_nr_rrc_T_transmissionComb_r16;
+static int ett_nr_rrc_T_n2_r16;
+static int ett_nr_rrc_T_n4_r16;
+static int ett_nr_rrc_T_n8_r16;
+static int ett_nr_rrc_T_resourceMapping_r16_01;
+static int ett_nr_rrc_T_freqHopping_r16;
+static int ett_nr_rrc_T_resourceType_r16_01;
+static int ett_nr_rrc_T_aperiodic_r16_01;
+static int ett_nr_rrc_T_semi_persistent_r16_01;
+static int ett_nr_rrc_T_periodic_r16_01;
+static int ett_nr_rrc_SRS_SpatialRelationInfo;
+static int ett_nr_rrc_T_referenceSignal_03;
+static int ett_nr_rrc_T_srs;
+static int ett_nr_rrc_SRS_SpatialRelationInfoPos_r16;
+static int ett_nr_rrc_T_servingRS_r16;
+static int ett_nr_rrc_T_referenceSignal_r16_02;
+static int ett_nr_rrc_T_srs_SpatialRelation_r16;
+static int ett_nr_rrc_T_resourceSelection_r16;
+static int ett_nr_rrc_SSB_Configuration_r16;
+static int ett_nr_rrc_T_sfn0_Offset_r16;
+static int ett_nr_rrc_SSB_InfoNcell_r16;
+static int ett_nr_rrc_DL_PRS_Info_r16;
+static int ett_nr_rrc_SRS_PeriodicityAndOffset;
+static int ett_nr_rrc_SRS_PeriodicityAndOffset_r16;
+static int ett_nr_rrc_SRS_PeriodicityAndOffsetExt_r16;
+static int ett_nr_rrc_SpatialRelationInfo_PDC_r17;
+static int ett_nr_rrc_T_referenceSignal_04;
+static int ett_nr_rrc_T_srs_01;
+static int ett_nr_rrc_SRS_TPC_CommandConfig;
+static int ett_nr_rrc_SSB_MTC;
+static int ett_nr_rrc_T_periodicityAndOffset_01;
+static int ett_nr_rrc_SSB_MTC2;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId;
+static int ett_nr_rrc_SSB_MTC2_LP_r16;
+static int ett_nr_rrc_SSB_MTC3_r16;
+static int ett_nr_rrc_T_periodicityAndOffset_r16;
+static int ett_nr_rrc_T_ssb_ToMeasure_r16;
+static int ett_nr_rrc_SSB_MTC4_r17;
+static int ett_nr_rrc_SSB_MTC_AdditionalPCI_r17;
+static int ett_nr_rrc_T_ssb_PositionsInBurst_r17;
+static int ett_nr_rrc_SSB_ToMeasure;
+static int ett_nr_rrc_SS_RSSI_Measurement;
+static int ett_nr_rrc_TAG_Config;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG;
+static int ett_nr_rrc_TAG;
+static int ett_nr_rrc_TAR_Config_r17;
+static int ett_nr_rrc_TCI_ActivatedConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_5_OF_TCI_StateId;
+static int ett_nr_rrc_TCI_State;
+static int ett_nr_rrc_QCL_Info;
+static int ett_nr_rrc_T_referenceSignal_05;
+static int ett_nr_rrc_TCI_UL_State_r17;
+static int ett_nr_rrc_T_referenceSignal_r17_01;
+static int ett_nr_rrc_TDD_UL_DL_ConfigCommon;
+static int ett_nr_rrc_TDD_UL_DL_Pattern;
+static int ett_nr_rrc_TDD_UL_DL_ConfigDedicated;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex;
+static int ett_nr_rrc_TDD_UL_DL_ConfigDedicated_IAB_MT_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig_IAB_MT_r16;
+static int ett_nr_rrc_TDD_UL_DL_SlotConfig;
+static int ett_nr_rrc_T_symbols;
+static int ett_nr_rrc_T_explicit;
+static int ett_nr_rrc_TDD_UL_DL_SlotConfig_IAB_MT_r16;
+static int ett_nr_rrc_T_symbols_IAB_MT_r16;
+static int ett_nr_rrc_T_explicit_r16;
+static int ett_nr_rrc_T_explicit_IAB_MT_r16;
+static int ett_nr_rrc_UAC_BarringInfoSetList;
+static int ett_nr_rrc_UAC_BarringInfoSetList_v1700;
+static int ett_nr_rrc_UAC_BarringInfoSet;
+static int ett_nr_rrc_UAC_BarringInfoSet_v1700;
+static int ett_nr_rrc_UAC_BarringPerCatList;
+static int ett_nr_rrc_UAC_BarringPerCat;
+static int ett_nr_rrc_UAC_BarringPerPLMN_List;
+static int ett_nr_rrc_UAC_BarringPerPLMN;
+static int ett_nr_rrc_T_uac_ACBarringListType;
+static int ett_nr_rrc_SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex;
+static int ett_nr_rrc_UE_TimersAndConstants;
+static int ett_nr_rrc_UL_DelayValueConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DRB_Identity;
+static int ett_nr_rrc_UL_ExcessDelayConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_ExcessDelay_DRB_IdentityInfo_r17;
+static int ett_nr_rrc_ExcessDelay_DRB_IdentityInfo_r17;
+static int ett_nr_rrc_UL_GapFR2_Config_r17;
+static int ett_nr_rrc_UplinkCancellation_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_CI_ConfigurationPerServingCell_r16;
+static int ett_nr_rrc_CI_ConfigurationPerServingCell_r16;
+static int ett_nr_rrc_T_timeFrequencyRegion_r16;
+static int ett_nr_rrc_UplinkConfigCommon;
+static int ett_nr_rrc_UplinkConfigCommon_v1700;
+static int ett_nr_rrc_UplinkConfigCommonSIB;
+static int ett_nr_rrc_UplinkConfigCommonSIB_v1700;
+static int ett_nr_rrc_UplinkConfigCommonSIB_v1760;
+static int ett_nr_rrc_Uplink_powerControl_r17;
+static int ett_nr_rrc_P0AlphaSet_r17;
+static int ett_nr_rrc_Uu_RelayRLC_ChannelConfig_r17;
+static int ett_nr_rrc_UplinkTxDirectCurrentList;
+static int ett_nr_rrc_UplinkTxDirectCurrentCell;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP;
+static int ett_nr_rrc_UplinkTxDirectCurrentBWP;
+static int ett_nr_rrc_UplinkTxDirectCurrentMoreCarrierList_r17;
+static int ett_nr_rrc_CC_Group_r17;
+static int ett_nr_rrc_T_offsetToDefault_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReqComDC_Location_r17_OF_OffsetValue_r17;
+static int ett_nr_rrc_OffsetValue_r17;
+static int ett_nr_rrc_DefaultDC_Location_r17;
+static int ett_nr_rrc_UplinkTxDirectCurrentTwoCarrierList_r16;
+static int ett_nr_rrc_UplinkTxDirectCurrentTwoCarrier_r16;
+static int ett_nr_rrc_UplinkTxDirectCurrentCarrierInfo_r16;
+static int ett_nr_rrc_T_servCellInfo_r16;
+static int ett_nr_rrc_UplinkTxDirectCurrentTwoCarrierInfo_r16;
+static int ett_nr_rrc_ZP_CSI_RS_Resource;
+static int ett_nr_rrc_ZP_CSI_RS_ResourceSet;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId;
+static int ett_nr_rrc_AppLayerMeasParameters_r17;
+static int ett_nr_rrc_BandCombinationList;
+static int ett_nr_rrc_BandCombinationList_v1540;
+static int ett_nr_rrc_BandCombinationList_v1550;
+static int ett_nr_rrc_BandCombinationList_v1560;
+static int ett_nr_rrc_BandCombinationList_v1570;
+static int ett_nr_rrc_BandCombinationList_v1580;
+static int ett_nr_rrc_BandCombinationList_v1590;
+static int ett_nr_rrc_BandCombinationList_v15g0;
+static int ett_nr_rrc_BandCombinationList_v15n0;
+static int ett_nr_rrc_BandCombinationList_v1610;
+static int ett_nr_rrc_BandCombinationList_v1630;
+static int ett_nr_rrc_BandCombinationList_v1640;
+static int ett_nr_rrc_BandCombinationList_v1650;
+static int ett_nr_rrc_BandCombinationList_v1680;
+static int ett_nr_rrc_BandCombinationList_v1690;
+static int ett_nr_rrc_BandCombinationList_v16a0;
+static int ett_nr_rrc_BandCombinationList_v1700;
+static int ett_nr_rrc_BandCombinationList_v1720;
+static int ett_nr_rrc_BandCombinationList_v1730;
+static int ett_nr_rrc_BandCombinationList_v1740;
+static int ett_nr_rrc_BandCombinationList_v1760;
+static int ett_nr_rrc_BandCombinationList_v1770;
+static int ett_nr_rrc_BandCombinationList_v1780;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_r16;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1630;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1640;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1650;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1670;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1690;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v16a0;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v16e0;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1700;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1720;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1730;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1740;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1760;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770;
+static int ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780;
+static int ett_nr_rrc_BandCombination;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters;
+static int ett_nr_rrc_BandCombination_v1540;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1540;
+static int ett_nr_rrc_BandCombination_v1550;
+static int ett_nr_rrc_BandCombination_v1560;
+static int ett_nr_rrc_BandCombination_v1570;
+static int ett_nr_rrc_BandCombination_v1580;
+static int ett_nr_rrc_BandCombination_v1590;
+static int ett_nr_rrc_BandCombination_v15g0;
+static int ett_nr_rrc_BandCombination_v15n0;
+static int ett_nr_rrc_BandCombination_v1610;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1610;
+static int ett_nr_rrc_BandCombination_v1630;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_ScalingFactorSidelink_r16;
+static int ett_nr_rrc_BandCombination_v1640;
+static int ett_nr_rrc_BandCombination_v1650;
+static int ett_nr_rrc_BandCombination_v1680;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_IntraBandPowerClass_r16;
+static int ett_nr_rrc_BandCombination_v1690;
+static int ett_nr_rrc_BandCombination_v16a0;
+static int ett_nr_rrc_BandCombination_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1710;
+static int ett_nr_rrc_BandCombination_v1720;
+static int ett_nr_rrc_BandCombination_v1730;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1730;
+static int ett_nr_rrc_BandCombination_v1740;
+static int ett_nr_rrc_BandCombination_v1760;
+static int ett_nr_rrc_BandCombination_v1770;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1770;
+static int ett_nr_rrc_BandCombination_v1780;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxULTxSwitchingBandPairs_OF_ULTxSwitchingBandPair_r16;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1630;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1640;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1650;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1670;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1690;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v16a0;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v16e0;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxULTxSwitchingBandPairs_OF_ULTxSwitchingBandPair_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_UplinkTxSwitchingBandParameters_v1700;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1720;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1730;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1740;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1760;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1770;
+static int ett_nr_rrc_BandCombination_UplinkTxSwitch_v1780;
+static int ett_nr_rrc_ULTxSwitchingBandPair_r16;
+static int ett_nr_rrc_ULTxSwitchingBandPair_v1700;
+static int ett_nr_rrc_UplinkTxSwitchingBandParameters_v1700;
+static int ett_nr_rrc_BandParameters;
+static int ett_nr_rrc_T_eutra;
+static int ett_nr_rrc_T_nr;
+static int ett_nr_rrc_BandParameters_v1540;
+static int ett_nr_rrc_T_srs_CarrierSwitch;
+static int ett_nr_rrc_T_nr_01;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_SRS_SwitchingTimeNR;
+static int ett_nr_rrc_T_eutra_01;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_SRS_SwitchingTimeEUTRA;
+static int ett_nr_rrc_T_srs_TxSwitch;
+static int ett_nr_rrc_BandParameters_v1610;
+static int ett_nr_rrc_T_srs_TxSwitch_v1610;
+static int ett_nr_rrc_BandParameters_v1710;
+static int ett_nr_rrc_T_srs_AntennaSwitchingBeyond4RX_r17;
+static int ett_nr_rrc_BandParameters_v1730;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_SRS_SwitchingAffectedBandsNR_r17;
+static int ett_nr_rrc_BandParameters_v1770;
+static int ett_nr_rrc_BandParameters_v1780;
+static int ett_nr_rrc_T_supportedAggBW_FR2_r17;
+static int ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_r16;
+static int ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1630;
+static int ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1710;
+static int ett_nr_rrc_BandCombinationParametersSidelinkEUTRA_NR_r16;
+static int ett_nr_rrc_BandCombinationParametersSidelinkEUTRA_NR_v1630;
+static int ett_nr_rrc_BandCombinationParametersSidelinkEUTRA_NR_v1710;
+static int ett_nr_rrc_BandParametersSidelinkEUTRA_NR_r16;
+static int ett_nr_rrc_T_eutra_02;
+static int ett_nr_rrc_T_nr_02;
+static int ett_nr_rrc_BandParametersSidelinkEUTRA_NR_v1630;
+static int ett_nr_rrc_T_nr_03;
+static int ett_nr_rrc_BandParametersSidelinkEUTRA_NR_v1710;
+static int ett_nr_rrc_T_nr_04;
+static int ett_nr_rrc_T_sl_TransmissionMode2_PartialSensing_r17;
+static int ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeTwo_r17;
+static int ett_nr_rrc_T_fr1_r17;
+static int ett_nr_rrc_T_fr2_r17;
+static int ett_nr_rrc_BandParametersSidelink_r16;
+static int ett_nr_rrc_BandCombinationListSL_Discovery_r17;
+static int ett_nr_rrc_BandParametersSidelinkDiscovery_r17;
+static int ett_nr_rrc_T_sl_TransmissionMode2_PartialSensing_r17_01;
+static int ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeTwo_r17_01;
+static int ett_nr_rrc_T_fr1_r17_01;
+static int ett_nr_rrc_T_fr2_r17_01;
+static int ett_nr_rrc_CA_ParametersEUTRA;
+static int ett_nr_rrc_CA_ParametersEUTRA_v1560;
+static int ett_nr_rrc_CA_ParametersEUTRA_v1570;
+static int ett_nr_rrc_CA_ParametersNR;
+static int ett_nr_rrc_CA_ParametersNR_v1540;
+static int ett_nr_rrc_T_csi_RS_IM_ReceptionForFeedbackPerBandComb;
+static int ett_nr_rrc_CA_ParametersNR_v1550;
+static int ett_nr_rrc_CA_ParametersNR_v1560;
+static int ett_nr_rrc_CA_ParametersNR_v15g0;
+static int ett_nr_rrc_CA_ParametersNR_v1610;
+static int ett_nr_rrc_T_interFreqDAPS_r16;
+static int ett_nr_rrc_T_pdcch_MonitoringCA_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCA_Mixed_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetectionMCG_UE_Mixed_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetectionSCG_UE_Mixed_r16;
+static int ett_nr_rrc_CA_ParametersNR_v1630;
+static int ett_nr_rrc_CA_ParametersNR_v1640;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxTwoPUCCH_Grp_ConfigList_r16_OF_TwoPUCCH_Grp_Configurations_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCA_Mixed_NonAlignedSpan_r16;
+static int ett_nr_rrc_CA_ParametersNR_v1690;
+static int ett_nr_rrc_T_csi_ReportingCrossPUCCH_Grp_r16;
+static int ett_nr_rrc_T_additionalSymbols_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCarrierTypePairList_r16_OF_CarrierTypePair_r16;
+static int ett_nr_rrc_CA_ParametersNR_v16a0;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetectionMixed_1_r16_OF_PDCCH_BlindDetectionMixedList_r16;
+static int ett_nr_rrc_CA_ParametersNR_v1700;
+static int ett_nr_rrc_T_mTRP_CSI_EnhancementPerBC_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_CSI_MultiTRP_SupportedCombinations_r17;
+static int ett_nr_rrc_T_non_AlignedFrameBoundaries_r17;
+static int ett_nr_rrc_CA_ParametersNR_v1720;
+static int ett_nr_rrc_T_semiStaticPUCCH_CellSwitchSingleGroup_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxTwoPUCCH_Grp_ConfigList_r17_OF_TwoPUCCH_Grp_Configurations_r17;
+static int ett_nr_rrc_T_dynamicPUCCH_CellSwitchSameLengthSingleGroup_r17;
+static int ett_nr_rrc_T_dynamicPUCCH_CellSwitchDiffLengthSingleGroup_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetection_r17_OF_PDCCH_BlindDetectionMCG_SCG_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetection_r17_OF_PDCCH_BlindDetectionMixed_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPdcch_BlindDetection_r17_OF_PDCCH_BlindDetectionMixed1_r17;
+static int ett_nr_rrc_CA_ParametersNR_v1730;
+static int ett_nr_rrc_CA_ParametersNR_v1740;
+static int ett_nr_rrc_CA_ParametersNR_v1760;
+static int ett_nr_rrc_CA_ParametersNR_v1770;
+static int ett_nr_rrc_CA_ParametersNR_v1780;
+static int ett_nr_rrc_T_supportedAggBW_FR1_r17;
+static int ett_nr_rrc_CrossCarrierSchedulingSCell_SpCell_r17;
+static int ett_nr_rrc_T_supportedSCS_Combinations_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionMixedList_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCA_MixedExt_r16;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCG_UE_MixedExt_r16;
+static int ett_nr_rrc_PDCCH_BlindDetectionCA_MixedExt_r16;
+static int ett_nr_rrc_PDCCH_BlindDetectionCG_UE_MixedExt_r16;
+static int ett_nr_rrc_PDCCH_BlindDetectionMCG_SCG_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionMixed_r17;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCG_UE_Mixed_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionCG_UE_Mixed_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionCA_Mixed_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionMixed1_r17;
+static int ett_nr_rrc_T_pdcch_BlindDetectionCG_UE_Mixed1_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionCG_UE_Mixed1_r17;
+static int ett_nr_rrc_PDCCH_BlindDetectionCA_Mixed1_r17;
+static int ett_nr_rrc_SimulSRS_ForAntennaSwitching_r16;
+static int ett_nr_rrc_TwoPUCCH_Grp_Configurations_r16;
+static int ett_nr_rrc_TwoPUCCH_Grp_Configurations_r17;
+static int ett_nr_rrc_TwoPUCCH_Grp_ConfigParams_r16;
+static int ett_nr_rrc_CarrierTypePair_r16;
+static int ett_nr_rrc_PUCCH_Grp_CarrierTypes_r16;
+static int ett_nr_rrc_PUCCH_Group_Config_r17;
+static int ett_nr_rrc_CA_ParametersNRDC;
+static int ett_nr_rrc_CA_ParametersNRDC_v15g0;
+static int ett_nr_rrc_CA_ParametersNRDC_v1610;
+static int ett_nr_rrc_CA_ParametersNRDC_v1630;
+static int ett_nr_rrc_CA_ParametersNRDC_v1640;
+static int ett_nr_rrc_CA_ParametersNRDC_v1650;
+static int ett_nr_rrc_CA_ParametersNRDC_v16a0;
+static int ett_nr_rrc_CA_ParametersNRDC_v1700;
+static int ett_nr_rrc_CA_ParametersNRDC_v1720;
+static int ett_nr_rrc_CA_ParametersNRDC_v1730;
+static int ett_nr_rrc_CA_ParametersNRDC_v1760;
+static int ett_nr_rrc_CA_ParametersNRDC_v1780;
+static int ett_nr_rrc_CarrierAggregationVariant;
+static int ett_nr_rrc_CodebookParameters;
+static int ett_nr_rrc_T_type1_04;
+static int ett_nr_rrc_T_singlePanel;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_Resources_OF_SupportedCSI_RS_Resource;
+static int ett_nr_rrc_T_multiPanel;
+static int ett_nr_rrc_T_type2_03;
+static int ett_nr_rrc_T_type2_PortSelection;
+static int ett_nr_rrc_CodebookParameters_v1610;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAlt_r16;
+static int ett_nr_rrc_T_type1_SinglePanel_r16;
+static int ett_nr_rrc_T_type1_MultiPanel_r16;
+static int ett_nr_rrc_T_type2_r16;
+static int ett_nr_rrc_T_type2_PortSelection_r16;
+static int ett_nr_rrc_CodebookParametersAddition_r16;
+static int ett_nr_rrc_T_etype2_r16;
+static int ett_nr_rrc_T_etype2R1_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16;
+static int ett_nr_rrc_T_etype2R2_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_01;
+static int ett_nr_rrc_T_etype2_PS_r16;
+static int ett_nr_rrc_T_etype2R1_PortSelection_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_02;
+static int ett_nr_rrc_T_etype2R2_PortSelection_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_03;
+static int ett_nr_rrc_CodebookComboParametersAddition_r16;
+static int ett_nr_rrc_T_type1SP_Type2_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_04;
+static int ett_nr_rrc_T_type1SP_Type2PS_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_05;
+static int ett_nr_rrc_T_type1SP_eType2R1_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_06;
+static int ett_nr_rrc_T_type1SP_eType2R2_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_07;
+static int ett_nr_rrc_T_type1SP_eType2R1PS_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_08;
+static int ett_nr_rrc_T_type1SP_eType2R2PS_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_09;
+static int ett_nr_rrc_T_type1SP_Type2_Type2PS_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_10;
+static int ett_nr_rrc_T_type1MP_Type2_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_11;
+static int ett_nr_rrc_T_type1MP_Type2PS_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_12;
+static int ett_nr_rrc_T_type1MP_eType2R1_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_13;
+static int ett_nr_rrc_T_type1MP_eType2R2_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_14;
+static int ett_nr_rrc_T_type1MP_eType2R1PS_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_15;
+static int ett_nr_rrc_T_type1MP_eType2R2PS_null_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_16;
+static int ett_nr_rrc_T_type1MP_Type2_Type2PS_r16;
+static int ett_nr_rrc_T_supportedCSI_RS_ResourceListAdd_r16_17;
+static int ett_nr_rrc_CodebookParametersfetype2_r17;
+static int ett_nr_rrc_T_fetype2basic_r17;
+static int ett_nr_rrc_T_fetype2R1_r17;
+static int ett_nr_rrc_T_fetype2R2_r17;
+static int ett_nr_rrc_CodebookComboParameterMixedType_r17;
+static int ett_nr_rrc_T_type1SP_feType2PS_null_r17;
+static int ett_nr_rrc_T_type1SP_feType2PS_M2R1_null_r17;
+static int ett_nr_rrc_T_type1SP_feType2PS_M2R2_null_r1;
+static int ett_nr_rrc_T_type1SP_Type2_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_type1SP_Type2_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_T_type1MP_feType2PS_null_r17;
+static int ett_nr_rrc_T_type1MP_feType2PS_M2R1_null_r17;
+static int ett_nr_rrc_T_type1MP_feType2PS_M2R2_null_r17;
+static int ett_nr_rrc_T_type1MP_Type2_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_type1MP_Type2_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_CodebookComboParameterMultiTRP_r17;
+static int ett_nr_rrc_T_nCJT_null_null;
+static int ett_nr_rrc_T_nCJT1SP_null_null;
+static int ett_nr_rrc_T_nCJT_Type2_null_r16;
+static int ett_nr_rrc_T_nCJT_Type2PS_null_r16;
+static int ett_nr_rrc_T_nCJT_eType2R1_null_r16;
+static int ett_nr_rrc_T_nCJT_eType2R2_null_r16;
+static int ett_nr_rrc_T_nCJT_eType2R1PS_null_r16;
+static int ett_nr_rrc_T_nCJT_eType2R2PS_null_r16;
+static int ett_nr_rrc_T_nCJT_Type2_Type2PS_r16;
+static int ett_nr_rrc_T_nCJT1SP_Type2_null_r16;
+static int ett_nr_rrc_T_nCJT1SP_Type2PS_null_r16;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1_null_r16;
+static int ett_nr_rrc_T_nCJT1SP_eType2R2_null_r16;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1PS_null_r16;
+static int ett_nr_rrc_T_nCJT1SP_eType2R2PS_null_r16;
+static int ett_nr_rrc_T_nCJT1SP_Type2_Type2PS_r16;
+static int ett_nr_rrc_T_nCJT_feType2PS_null_r17;
+static int ett_nr_rrc_T_nCJT_feType2PS_M2R1_null_r17;
+static int ett_nr_rrc_T_nCJT_feType2PS_M2R2_null_r17;
+static int ett_nr_rrc_T_nCJT_Type2_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_nCJT_Type2_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_T_nCJT1SP_feType2PS_null_r17;
+static int ett_nr_rrc_T_nCJT1SP_feType2PS_M2R1_null_r17;
+static int ett_nr_rrc_T_nCJT1SP_feType2PS_M2R2_null_r1;
+static int ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M1_r17;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M2R1_r17;
+static int ett_nr_rrc_CodebookParametersAdditionPerBC_r16;
+static int ett_nr_rrc_T_etype2R1_r16_01;
+static int ett_nr_rrc_T_etype2R2_r16_01;
+static int ett_nr_rrc_T_etype2R1_PortSelection_r16_01;
+static int ett_nr_rrc_T_etype2R2_PortSelection_r16_01;
+static int ett_nr_rrc_CodebookComboParametersAdditionPerBC_r16;
+static int ett_nr_rrc_T_type1SP_Type2_null_r16_01;
+static int ett_nr_rrc_T_type1SP_Type2PS_null_r16_01;
+static int ett_nr_rrc_T_type1SP_eType2R1_null_r16_01;
+static int ett_nr_rrc_T_type1SP_eType2R2_null_r16_01;
+static int ett_nr_rrc_T_type1SP_eType2R1PS_null_r16_01;
+static int ett_nr_rrc_T_type1SP_eType2R2PS_null_r16_01;
+static int ett_nr_rrc_T_type1SP_Type2_Type2PS_r16_01;
+static int ett_nr_rrc_T_type1MP_Type2_null_r16_01;
+static int ett_nr_rrc_T_type1MP_Type2PS_null_r16_01;
+static int ett_nr_rrc_T_type1MP_eType2R1_null_r16_01;
+static int ett_nr_rrc_T_type1MP_eType2R2_null_r16_01;
+static int ett_nr_rrc_T_type1MP_eType2R1PS_null_r16_01;
+static int ett_nr_rrc_T_type1MP_eType2R2PS_null_r16_01;
+static int ett_nr_rrc_T_type1MP_Type2_Type2PS_r16_01;
+static int ett_nr_rrc_CodebookParametersfetype2PerBC_r17;
+static int ett_nr_rrc_T_fetype2basic_r17_01;
+static int ett_nr_rrc_T_fetype2R1_r17_01;
+static int ett_nr_rrc_T_fetype2R2_r17_01;
+static int ett_nr_rrc_CodebookComboParameterMixedTypePerBC_r17;
+static int ett_nr_rrc_T_type1SP_feType2PS_null_r17_01;
+static int ett_nr_rrc_T_type1SP_feType2PS_M2R1_null_r17_01;
+static int ett_nr_rrc_T_type1SP_feType2PS_M2R2_null_r17;
+static int ett_nr_rrc_T_type1SP_Type2_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_type1SP_Type2_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_type1SP_eType2R1_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_T_type1MP_feType2PS_null_r17_01;
+static int ett_nr_rrc_T_type1MP_feType2PS_M2R1_null_r17_01;
+static int ett_nr_rrc_T_type1MP_feType2PS_M2R2_null_r17_01;
+static int ett_nr_rrc_T_type1MP_Type2_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_type1MP_Type2_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_type1MP_eType2R1_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_CodebookComboParameterMultiTRP_PerBC_r17;
+static int ett_nr_rrc_T_nCJT_null_null_01;
+static int ett_nr_rrc_T_nCJT1SP_null_null_01;
+static int ett_nr_rrc_T_nCJT_Type2_null_r16_01;
+static int ett_nr_rrc_T_nCJT_Type2PS_null_r16_01;
+static int ett_nr_rrc_T_nCJT_eType2R1_null_r16_01;
+static int ett_nr_rrc_T_nCJT_eType2R2_null_r16_01;
+static int ett_nr_rrc_T_nCJT_eType2R1PS_null_r16_01;
+static int ett_nr_rrc_T_nCJT_eType2R2PS_null_r16_01;
+static int ett_nr_rrc_T_nCJT_Type2_Type2PS_r16_01;
+static int ett_nr_rrc_T_nCJT1SP_Type2_null_r16_01;
+static int ett_nr_rrc_T_nCJT1SP_Type2PS_null_r16_01;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1_null_r16_01;
+static int ett_nr_rrc_T_nCJT1SP_eType2R2_null_r16_01;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1PS_null_r16_01;
+static int ett_nr_rrc_T_nCJT1SP_eType2R2PS_null_r16_01;
+static int ett_nr_rrc_T_nCJT1SP_Type2_Type2PS_r16_01;
+static int ett_nr_rrc_T_nCJT_feType2PS_null_r17_01;
+static int ett_nr_rrc_T_nCJT_feType2PS_M2R1_null_r17_01;
+static int ett_nr_rrc_T_nCJT_feType2PS_M2R2_null_r17_01;
+static int ett_nr_rrc_T_nCJT_Type2_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_nCJT_Type2_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_nCJT_eType2R1_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_T_nCJT1SP_feType2PS_null_r17_01;
+static int ett_nr_rrc_T_nCJT1SP_feType2PS_M2R1_null_r17_01;
+static int ett_nr_rrc_T_nCJT1SP_feType2PS_M2R2_null_r1_01;
+static int ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_nCJT1SP_Type2_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M1_r17_01;
+static int ett_nr_rrc_T_nCJT1SP_eType2R1_feType2_PS_M2R1_r17_01;
+static int ett_nr_rrc_CodebookVariantsList_r16;
+static int ett_nr_rrc_SupportedCSI_RS_Resource;
+static int ett_nr_rrc_FeatureSetCombination;
+static int ett_nr_rrc_FeatureSetsPerBand;
+static int ett_nr_rrc_FeatureSet;
+static int ett_nr_rrc_T_eutra_03;
+static int ett_nr_rrc_T_nr_05;
+static int ett_nr_rrc_FeatureSetDownlink;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetDownlinkPerCC_Id;
+static int ett_nr_rrc_T_timeDurationForQCL;
+static int ett_nr_rrc_T_pdsch_ProcessingType1_DifferentTB_PerSlot;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyB;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyC;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyD;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCodebooks_OF_DummyE;
+static int ett_nr_rrc_FeatureSetDownlink_v1540;
+static int ett_nr_rrc_T_pdcch_MonitoringAnyOccasionsWithSpanGap;
+static int ett_nr_rrc_T_pdsch_ProcessingType2;
+static int ett_nr_rrc_T_pdsch_ProcessingType2_Limited;
+static int ett_nr_rrc_FeatureSetDownlink_v15a0;
+static int ett_nr_rrc_FeatureSetDownlink_v1610;
+static int ett_nr_rrc_T_cbgPDSCH_ProcessingType1_DifferentTB_PerSlot_r16;
+static int ett_nr_rrc_T_cbgPDSCH_ProcessingType2_DifferentTB_PerSlot_r16;
+static int ett_nr_rrc_T_intraFreqDAPS_r16;
+static int ett_nr_rrc_T_pdcch_Monitoring_r16;
+static int ett_nr_rrc_T_pdsch_ProcessingType1_r16;
+static int ett_nr_rrc_T_pdsch_ProcessingType2_r16;
+static int ett_nr_rrc_T_crossCarrierSchedulingProcessing_DiffSCS_r16;
+static int ett_nr_rrc_FeatureSetDownlink_v1700;
+static int ett_nr_rrc_T_timeDurationForQCL_v1710;
+static int ett_nr_rrc_T_mTRP_PDCCH_Case2_1SpanGap_r17;
+static int ett_nr_rrc_T_mTRP_PDCCH_legacyMonitoring_r17;
+static int ett_nr_rrc_T_mTRP_PDCCH_Repetition_r17;
+static int ett_nr_rrc_FeatureSetDownlink_v1720;
+static int ett_nr_rrc_T_rtt_BasedPDC_PRS_r17;
+static int ett_nr_rrc_T_maxNumberPRS_ResourceProcessedPerSlot_r17;
+static int ett_nr_rrc_FeatureSetDownlink_v1730;
+static int ett_nr_rrc_PDCCH_MonitoringOccasions_r16;
+static int ett_nr_rrc_PDCCH_RepetitionParameters_r17;
+static int ett_nr_rrc_DummyA;
+static int ett_nr_rrc_DummyB;
+static int ett_nr_rrc_DummyC;
+static int ett_nr_rrc_DummyD;
+static int ett_nr_rrc_DummyE;
+static int ett_nr_rrc_FeatureSetDownlinkPerCC;
+static int ett_nr_rrc_FeatureSetDownlinkPerCC_v1620;
+static int ett_nr_rrc_FeatureSetDownlinkPerCC_v1700;
+static int ett_nr_rrc_FeatureSetDownlinkPerCC_v1720;
+static int ett_nr_rrc_FeatureSetDownlinkPerCC_v1730;
+static int ett_nr_rrc_FeatureSetDownlinkPerCC_v1780;
+static int ett_nr_rrc_MultiDCI_MultiTRP_r16;
+static int ett_nr_rrc_CRS_InterfMitigation_r17;
+static int ett_nr_rrc_FeatureSets;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1540;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1540;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1540;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v15a0;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1610;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1610;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1620;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1630;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1640;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1710;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1720;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1720;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1720;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1730;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1730;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780;
+static int ett_nr_rrc_FeatureSets_v16d0;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v16d0;
+static int ett_nr_rrc_FeatureSetUplink;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetUplinkPerCC_Id;
+static int ett_nr_rrc_T_pusch_ProcessingType1_DifferentTB_PerSlot;
+static int ett_nr_rrc_FeatureSetUplink_v1540;
+static int ett_nr_rrc_T_pusch_ProcessingType2;
+static int ett_nr_rrc_FeatureSetUplink_v1610;
+static int ett_nr_rrc_T_pusch_RepetitionTypeB_r16;
+static int ett_nr_rrc_T_cbgPUSCH_ProcessingType1_DifferentTB_PerSlot_r16;
+static int ett_nr_rrc_T_cbgPUSCH_ProcessingType2_DifferentTB_PerSlot_r16;
+static int ett_nr_rrc_T_intraFreqDAPS_UL_r16;
+static int ett_nr_rrc_T_multiPUCCH_r16;
+static int ett_nr_rrc_T_ul_IntraUE_Mux_r16;
+static int ett_nr_rrc_T_crossCarrierSchedulingProcessing_DiffSCS_r16_01;
+static int ett_nr_rrc_T_ul_FullPwrMode2_TPMIGroup_r16;
+static int ett_nr_rrc_FeatureSetUplink_v1630;
+static int ett_nr_rrc_FeatureSetUplink_v1640;
+static int ett_nr_rrc_T_offsetSRS_CB_PUSCH_PDCCH_MonitorAnyOccWithSpanGap_fr1_r16;
+static int ett_nr_rrc_FeatureSetUplink_v16d0;
+static int ett_nr_rrc_T_pusch_RepetitionTypeB_v16d0;
+static int ett_nr_rrc_FeatureSetUplink_v1710;
+static int ett_nr_rrc_FeatureSetUplink_v1720;
+static int ett_nr_rrc_T_phy_PrioritizationHighPriorityDG_LowPriorityCG_r17;
+static int ett_nr_rrc_T_additionalCancellationTime_r17;
+static int ett_nr_rrc_SubSlot_Config_r16;
+static int ett_nr_rrc_SRS_AllPosResources_r16;
+static int ett_nr_rrc_SRS_PosResources_r16;
+static int ett_nr_rrc_SRS_PosResourceAP_r16;
+static int ett_nr_rrc_SRS_PosResourceSP_r16;
+static int ett_nr_rrc_SRS_Resources;
+static int ett_nr_rrc_DummyF;
+static int ett_nr_rrc_FeatureSetUplinkPerCC;
+static int ett_nr_rrc_T_mimo_CB_PUSCH;
+static int ett_nr_rrc_FeatureSetUplinkPerCC_v1540;
+static int ett_nr_rrc_T_mimo_NonCB_PUSCH;
+static int ett_nr_rrc_FeatureSetUplinkPerCC_v1700;
+static int ett_nr_rrc_FeatureSetUplinkPerCC_v1780;
+static int ett_nr_rrc_FreqBandList;
+static int ett_nr_rrc_FreqBandInformation;
+static int ett_nr_rrc_FreqBandInformationEUTRA;
+static int ett_nr_rrc_FreqBandInformationNR;
+static int ett_nr_rrc_FR2_2_AccessParamsPerBand_r17;
+static int ett_nr_rrc_T_enhancedPDCCH_monitoringSCS_960kHz_r17;
+static int ett_nr_rrc_T_support32_DL_HARQ_ProcessPerSCS_r17;
+static int ett_nr_rrc_T_support32_UL_HARQ_ProcessPerSCS_r17;
+static int ett_nr_rrc_HighSpeedParameters_r16;
+static int ett_nr_rrc_HighSpeedParameters_v1650;
+static int ett_nr_rrc_HighSpeedParameters_v1700;
+static int ett_nr_rrc_IMS_Parameters;
+static int ett_nr_rrc_IMS_Parameters_v1700;
+static int ett_nr_rrc_IMS_ParametersCommon;
+static int ett_nr_rrc_IMS_ParametersFRX_Diff;
+static int ett_nr_rrc_IMS_ParametersFR2_2_r17;
+static int ett_nr_rrc_InterRAT_Parameters;
+static int ett_nr_rrc_EUTRA_Parameters;
+static int ett_nr_rrc_EUTRA_ParametersCommon;
+static int ett_nr_rrc_EUTRA_ParametersXDD_Diff;
+static int ett_nr_rrc_UTRA_FDD_Parameters_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsUTRA_FDD_r16_OF_SupportedBandUTRA_FDD_r16;
+static int ett_nr_rrc_MAC_Parameters;
+static int ett_nr_rrc_MAC_Parameters_v1610;
+static int ett_nr_rrc_MAC_Parameters_v1700;
+static int ett_nr_rrc_MAC_ParametersCommon;
+static int ett_nr_rrc_MAC_ParametersFRX_Diff_r16;
+static int ett_nr_rrc_T_drx_Adaptation_r16;
+static int ett_nr_rrc_MAC_ParametersFR2_2_r17;
+static int ett_nr_rrc_T_drx_Adaptation_r17;
+static int ett_nr_rrc_MAC_ParametersXDD_Diff;
+static int ett_nr_rrc_MinTimeGap_r16;
+static int ett_nr_rrc_MinTimeGapFR2_2_r17;
+static int ett_nr_rrc_MeasAndMobParameters;
+static int ett_nr_rrc_MeasAndMobParameters_v1700;
+static int ett_nr_rrc_MeasAndMobParametersCommon;
+static int ett_nr_rrc_T_condHandoverParametersCommon_r16;
+static int ett_nr_rrc_T_concurrentMeasGap_r17;
+static int ett_nr_rrc_T_independentGapConfig_maxCC_r17;
+static int ett_nr_rrc_MeasAndMobParametersXDD_Diff;
+static int ett_nr_rrc_MeasAndMobParametersFRX_Diff;
+static int ett_nr_rrc_MeasAndMobParametersFR2_2_r17;
+static int ett_nr_rrc_MeasAndMobParametersMRDC;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_v1560;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_v1610;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_v1700;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_v1730;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_Common;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_Common_v1610;
+static int ett_nr_rrc_T_condPSCellChangeParametersCommon_r16;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_Common_v1700;
+static int ett_nr_rrc_T_condPSCellChangeParameters_r17;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_Common_v1730;
+static int ett_nr_rrc_T_independentGapConfig_maxCC_r17_01;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff_v1560;
+static int ett_nr_rrc_MeasAndMobParametersMRDC_FRX_Diff;
+static int ett_nr_rrc_MIMO_ParametersPerBand;
+static int ett_nr_rrc_T_tci_StatePDSCH;
+static int ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL;
+static int ett_nr_rrc_T_uplinkBeamManagement;
+static int ett_nr_rrc_T_beamReportTiming;
+static int ett_nr_rrc_T_ptrs_DensityRecommendationSetDL;
+static int ett_nr_rrc_T_ptrs_DensityRecommendationSetUL;
+static int ett_nr_rrc_T_beamSwitchTiming;
+static int ett_nr_rrc_T_ssb_csirs_SINR_measurement_r16;
+static int ett_nr_rrc_T_multiDCI_multiTRP_Parameters_r16;
+static int ett_nr_rrc_T_outOfOrderOperationDL_r16;
+static int ett_nr_rrc_T_maxNumberActivatedTCI_States_r16;
+static int ett_nr_rrc_T_singleDCI_SDM_scheme_Parameters_r16;
+static int ett_nr_rrc_T_supportInter_slotTDM_r16;
+static int ett_nr_rrc_T_beamSwitchTiming_r16;
+static int ett_nr_rrc_T_semi_PersistentL1_SINR_Report_PUCCH_r16;
+static int ett_nr_rrc_T_spatialRelations_v1640;
+static int ett_nr_rrc_T_mTRP_BFR_twoBFD_RS_Set_r17;
+static int ett_nr_rrc_T_unifiedJointTCI_r17;
+static int ett_nr_rrc_T_unifiedJointTCI_multiMAC_CE_r17;
+static int ett_nr_rrc_T_unifiedJointTCI_InterCell_r17;
+static int ett_nr_rrc_T_unifiedSeparateTCI_r17;
+static int ett_nr_rrc_T_unifiedSeparateTCI_multiMAC_CE_r17;
+static int ett_nr_rrc_T_unifiedSeparateTCI_ListSharingCA_r17;
+static int ett_nr_rrc_T_unifiedSeparateTCI_InterCell_r17;
+static int ett_nr_rrc_T_unifiedJointTCI_mTRP_InterCell_BM_r17;
+static int ett_nr_rrc_T_mpe_Mitigation_r17;
+static int ett_nr_rrc_T_srs_PortReport_r17;
+static int ett_nr_rrc_T_mTRP_PUSCH_CSI_RS_r17;
+static int ett_nr_rrc_T_mTRP_inter_Cell_r17;
+static int ett_nr_rrc_T_mTRP_GroupBasedL1_RSRP_r17;
+static int ett_nr_rrc_T_mTRP_CSI_EnhancementPerBand_r17;
+static int ett_nr_rrc_T_beamSwitchTiming_v1710;
+static int ett_nr_rrc_T_beamSwitchTiming_r17;
+static int ett_nr_rrc_T_beamReportTiming_v1710;
+static int ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL_v1710;
+static int ett_nr_rrc_DummyG;
+static int ett_nr_rrc_BeamManagementSSB_CSI_RS;
+static int ett_nr_rrc_DummyH;
+static int ett_nr_rrc_CSI_RS_ForTracking;
+static int ett_nr_rrc_CSI_RS_IM_ReceptionForFeedback;
+static int ett_nr_rrc_CSI_RS_ProcFrameworkForSRS;
+static int ett_nr_rrc_CSI_ReportFramework;
+static int ett_nr_rrc_CSI_ReportFrameworkExt_r16;
+static int ett_nr_rrc_PTRS_DensityRecommendationDL;
+static int ett_nr_rrc_PTRS_DensityRecommendationUL;
+static int ett_nr_rrc_SpatialRelations;
+static int ett_nr_rrc_DummyI;
+static int ett_nr_rrc_CSI_MultiTRP_SupportedCombinations_r17;
+static int ett_nr_rrc_MRDC_Parameters;
+static int ett_nr_rrc_MRDC_Parameters_v1580;
+static int ett_nr_rrc_MRDC_Parameters_v1590;
+static int ett_nr_rrc_MRDC_Parameters_v15g0;
+static int ett_nr_rrc_MRDC_Parameters_v15n0;
+static int ett_nr_rrc_MRDC_Parameters_v1620;
+static int ett_nr_rrc_T_maxUplinkDutyCycle_interBandENDC_TDD_PC2_r16;
+static int ett_nr_rrc_MRDC_Parameters_v1630;
+static int ett_nr_rrc_T_maxUplinkDutyCycle_interBandENDC_FDD_TDD_PC2_r16;
+static int ett_nr_rrc_MRDC_Parameters_v1700;
+static int ett_nr_rrc_MRDC_Parameters_v1770;
+static int ett_nr_rrc_NRDC_Parameters;
+static int ett_nr_rrc_T_nRDC_Parameters_dummy;
+static int ett_nr_rrc_NRDC_Parameters_v1570;
+static int ett_nr_rrc_NRDC_Parameters_v15c0;
+static int ett_nr_rrc_NRDC_Parameters_v1610;
+static int ett_nr_rrc_NRDC_Parameters_v1700;
+static int ett_nr_rrc_NTN_Parameters_r17;
+static int ett_nr_rrc_OLPC_SRS_Pos_r16;
+static int ett_nr_rrc_PDCP_Parameters;
+static int ett_nr_rrc_T_supportedROHC_Profiles;
+static int ett_nr_rrc_T_udc_r17;
+static int ett_nr_rrc_T_operatorDictionary_r17;
+static int ett_nr_rrc_PDCP_ParametersMRDC;
+static int ett_nr_rrc_PDCP_ParametersMRDC_v1610;
+static int ett_nr_rrc_Phy_Parameters;
+static int ett_nr_rrc_Phy_Parameters_v16a0;
+static int ett_nr_rrc_Phy_ParametersCommon;
+static int ett_nr_rrc_T_crossSlotScheduling_r16;
+static int ett_nr_rrc_T_pusch_RepetitionTypeA_r16;
+static int ett_nr_rrc_T_maxTotalResourcesForAcrossFreqRanges_r16;
+static int ett_nr_rrc_T_harqACK_separateMultiDCI_MultiTRP_r16;
+static int ett_nr_rrc_T_bwp_SwitchingMultiCCs_r16;
+static int ett_nr_rrc_T_bwp_SwitchingMultiDormancyCCs_r16;
+static int ett_nr_rrc_T_sps_HARQ_ACK_Deferral_r17;
+static int ett_nr_rrc_Phy_ParametersCommon_v16a0;
+static int ett_nr_rrc_Phy_ParametersXDD_Diff;
+static int ett_nr_rrc_Phy_ParametersFRX_Diff;
+static int ett_nr_rrc_T_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot;
+static int ett_nr_rrc_T_pdcch_BlindDetectionNRDC;
+static int ett_nr_rrc_T_maxTotalResourcesForOneFreqRange_r16;
+static int ett_nr_rrc_Phy_ParametersFR1;
+static int ett_nr_rrc_Phy_ParametersFR2;
+static int ett_nr_rrc_Phy_ParametersMRDC;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry;
+static int ett_nr_rrc_NAICS_Capability_Entry;
+static int ett_nr_rrc_Phy_ParametersSharedSpectrumChAccess_r16;
+static int ett_nr_rrc_T_mux_SR_HARQ_ACK_CSI_PUCCH_OncePerSlot_r16;
+static int ett_nr_rrc_PosSRS_RRC_Inactive_OutsideInitialUL_BWP_r17;
+static int ett_nr_rrc_PowSav_Parameters_r16;
+static int ett_nr_rrc_PowSav_Parameters_v1700;
+static int ett_nr_rrc_PowSav_ParametersCommon_r16;
+static int ett_nr_rrc_PowSav_ParametersFRX_Diff_r16;
+static int ett_nr_rrc_PowSav_ParametersFR2_2_r17;
+static int ett_nr_rrc_ProcessingParameters;
+static int ett_nr_rrc_T_differentTB_PerSlot;
+static int ett_nr_rrc_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
+static int ett_nr_rrc_T_ppw_durationOfPRS_Processing_r17;
+static int ett_nr_rrc_T_ppw_durationOfPRS_Processing1_r17;
+static int ett_nr_rrc_T_ppw_durationOfPRS_Processing2_r17;
+static int ett_nr_rrc_T_ppw_maxNumOfDL_PRS_ResProcessedPerSlot_r17;
+static int ett_nr_rrc_T_ppw_maxNumOfDL_Bandwidth_r17;
+static int ett_nr_rrc_RedCapParameters_r17;
+static int ett_nr_rrc_RedCapParameters_v1740;
+static int ett_nr_rrc_RF_Parameters;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR;
+static int ett_nr_rrc_RF_Parameters_v15g0;
+static int ett_nr_rrc_RF_Parameters_v16a0;
+static int ett_nr_rrc_RF_Parameters_v16c0;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR_v16c0;
+static int ett_nr_rrc_BandNR;
+static int ett_nr_rrc_T_channelBWs_DL;
+static int ett_nr_rrc_T_fr1;
+static int ett_nr_rrc_T_fr2;
+static int ett_nr_rrc_T_channelBWs_UL;
+static int ett_nr_rrc_T_fr1_01;
+static int ett_nr_rrc_T_fr2_01;
+static int ett_nr_rrc_T_channelBWs_DL_v1590;
+static int ett_nr_rrc_T_fr1_02;
+static int ett_nr_rrc_T_fr2_02;
+static int ett_nr_rrc_T_channelBWs_UL_v1590;
+static int ett_nr_rrc_T_fr1_03;
+static int ett_nr_rrc_T_fr2_03;
+static int ett_nr_rrc_T_multipleRateMatchingEUTRA_CRS_r16;
+static int ett_nr_rrc_T_channelBW_DL_IAB_r16;
+static int ett_nr_rrc_T_fr1_100mhz;
+static int ett_nr_rrc_T_fr2_200mhz;
+static int ett_nr_rrc_T_channelBW_UL_IAB_r16;
+static int ett_nr_rrc_T_fr1_100mhz_01;
+static int ett_nr_rrc_T_fr2_200mhz_01;
+static int ett_nr_rrc_T_activeConfiguredGrant_r16;
+static int ett_nr_rrc_T_sps_r16;
+static int ett_nr_rrc_T_maxDurationDMRS_Bundling_r17;
+static int ett_nr_rrc_T_aperiodicCSI_RS_FastScellActivation_r17;
+static int ett_nr_rrc_T_enhancedType3_HARQ_CodebookFeedback_r17;
+static int ett_nr_rrc_T_triggeredHARQ_CodebookRetx_r17;
+static int ett_nr_rrc_T_maxModulationOrderForMulticast_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_PRS_ProcessingCapabilityOutsideMGinPPWperType_r17;
+static int ett_nr_rrc_T_srs_SemiPersistent_PosResourcesRRC_Inactive_r17;
+static int ett_nr_rrc_BandNR_v16c0;
+static int ett_nr_rrc_RF_ParametersMRDC;
+static int ett_nr_rrc_T_supportedBandCombinationListNEDC_Only_v15a0;
+static int ett_nr_rrc_T_supportedBandCombinationListNEDC_Only_v1720;
+static int ett_nr_rrc_RF_ParametersMRDC_v15g0;
+static int ett_nr_rrc_RF_ParametersMRDC_v15n0;
+static int ett_nr_rrc_RF_ParametersMRDC_v16e0;
+static int ett_nr_rrc_RLC_Parameters;
+static int ett_nr_rrc_SDAP_Parameters;
+static int ett_nr_rrc_SidelinkParameters_r16;
+static int ett_nr_rrc_SidelinkParametersNR_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandSidelink_r16;
+static int ett_nr_rrc_SidelinkParametersEUTRA_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_BandSidelinkEUTRA_r16;
+static int ett_nr_rrc_RLC_ParametersSidelink_r16;
+static int ett_nr_rrc_MAC_ParametersSidelink_r16;
+static int ett_nr_rrc_UE_SidelinkCapabilityAddXDD_Mode_r16;
+static int ett_nr_rrc_MAC_ParametersSidelinkCommon_r16;
+static int ett_nr_rrc_MAC_ParametersSidelinkXDD_Diff_r16;
+static int ett_nr_rrc_BandSidelinkEUTRA_r16;
+static int ett_nr_rrc_T_gnb_ScheduledMode3SidelinkEUTRA_r16;
+static int ett_nr_rrc_BandSidelink_r16;
+static int ett_nr_rrc_T_sl_Reception_r16;
+static int ett_nr_rrc_T_scs_CP_PatternRxSidelink_r16;
+static int ett_nr_rrc_T_fr1_r16;
+static int ett_nr_rrc_T_fr2_r16_01;
+static int ett_nr_rrc_T_sl_TransmissionMode1_r16;
+static int ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeOne_r16;
+static int ett_nr_rrc_T_fr1_r16_01;
+static int ett_nr_rrc_T_fr2_r16_02;
+static int ett_nr_rrc_T_sync_Sidelink_r16;
+static int ett_nr_rrc_T_psfch_FormatZeroSidelink_r16;
+static int ett_nr_rrc_T_sl_TransmissionMode2_r16;
+static int ett_nr_rrc_T_congestionControlSidelink_r16;
+static int ett_nr_rrc_T_sl_TransmissionMode2_RandomResourceSelection_r17;
+static int ett_nr_rrc_T_scs_CP_PatternTxSidelinkModeTwo_r17_02;
+static int ett_nr_rrc_T_fr1_r17_04;
+static int ett_nr_rrc_T_fr2_r17_04;
+static int ett_nr_rrc_T_sync_Sidelink_v1710;
+static int ett_nr_rrc_RelayParameters_r17;
+static int ett_nr_rrc_SON_Parameters_r16;
+static int ett_nr_rrc_SpatialRelationsSRS_Pos_r16;
+static int ett_nr_rrc_SRS_AllPosResourcesRRC_Inactive_r17;
+static int ett_nr_rrc_T_srs_PosResourcesRRC_Inactive_r17;
+static int ett_nr_rrc_SRS_SwitchingTimeNR;
+static int ett_nr_rrc_SRS_SwitchingTimeEUTRA;
+static int ett_nr_rrc_SupportedAggBandwidth_r17;
+static int ett_nr_rrc_SupportedBandwidth;
+static int ett_nr_rrc_SupportedBandwidth_v1700;
+static int ett_nr_rrc_UE_BasedPerfMeas_Parameters_r16;
+static int ett_nr_rrc_UE_CapabilityRAT_ContainerList;
+static int ett_nr_rrc_UE_CapabilityRAT_Container;
+static int ett_nr_rrc_UE_CapabilityRAT_RequestList;
+static int ett_nr_rrc_UE_CapabilityRAT_Request;
+static int ett_nr_rrc_UE_CapabilityRequestFilterCommon;
+static int ett_nr_rrc_T_mrdc_Request;
+static int ett_nr_rrc_T_codebookTypeRequest_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCellGroupings_r16_OF_CellGrouping_r16;
+static int ett_nr_rrc_CellGrouping_r16;
+static int ett_nr_rrc_UE_CapabilityRequestFilterNR;
+static int ett_nr_rrc_UE_CapabilityRequestFilterNR_v1540;
+static int ett_nr_rrc_UE_CapabilityRequestFilterNR_v1710;
+static int ett_nr_rrc_T_nonCriticalExtension_53;
+static int ett_nr_rrc_UE_MRDC_Capability;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination;
+static int ett_nr_rrc_UE_MRDC_Capability_v1560;
+static int ett_nr_rrc_UE_MRDC_Capability_v1610;
+static int ett_nr_rrc_UE_MRDC_Capability_v1700;
+static int ett_nr_rrc_UE_MRDC_Capability_v1730;
+static int ett_nr_rrc_T_nonCriticalExtension_54;
+static int ett_nr_rrc_UE_MRDC_Capability_v15g0;
+static int ett_nr_rrc_UE_MRDC_Capability_v15n0;
+static int ett_nr_rrc_UE_MRDC_Capability_v16e0;
+static int ett_nr_rrc_T_nonCriticalExtension_55;
+static int ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode;
+static int ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode_v1560;
+static int ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode;
+static int ett_nr_rrc_GeneralParametersMRDC_XDD_Diff;
+static int ett_nr_rrc_GeneralParametersMRDC_v1610;
+static int ett_nr_rrc_UE_NR_Capability;
+static int ett_nr_rrc_UE_NR_Capability_v1530;
+static int ett_nr_rrc_UE_NR_Capability_v1540;
+static int ett_nr_rrc_UE_NR_Capability_v1550;
+static int ett_nr_rrc_UE_NR_Capability_v1560;
+static int ett_nr_rrc_UE_NR_Capability_v1570;
+static int ett_nr_rrc_UE_NR_Capability_v15c0;
+static int ett_nr_rrc_UE_NR_Capability_v15g0;
+static int ett_nr_rrc_UE_NR_Capability_v15j0;
+static int ett_nr_rrc_UE_NR_Capability_v1610;
+static int ett_nr_rrc_UE_NR_Capability_v1640;
+static int ett_nr_rrc_UE_NR_Capability_v1650;
+static int ett_nr_rrc_UE_NR_Capability_v1690;
+static int ett_nr_rrc_UE_NR_Capability_v16a0;
+static int ett_nr_rrc_UE_NR_Capability_v16c0;
+static int ett_nr_rrc_UE_NR_Capability_v16d0;
+static int ett_nr_rrc_T_nonCriticalExtension_56;
+static int ett_nr_rrc_UE_NR_Capability_v1700;
+static int ett_nr_rrc_UE_NR_Capability_v1740;
+static int ett_nr_rrc_UE_NR_Capability_v1750;
+static int ett_nr_rrc_T_nonCriticalExtension_57;
+static int ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode;
+static int ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode_v1530;
+static int ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode;
+static int ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode_v1540;
+static int ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode_v1610;
+static int ett_nr_rrc_BAP_Parameters_r16;
+static int ett_nr_rrc_BAP_Parameters_v1700;
+static int ett_nr_rrc_MBS_Parameters_r17;
+static int ett_nr_rrc_UE_RadioPagingInfo_r17;
+static int ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_r16;
+static int ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1630;
+static int ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1640;
+static int ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1650;
+static int ett_nr_rrc_SharedSpectrumChAccessParamsPerBand_v1710;
+static int ett_nr_rrc_AppLayerMeasConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAppLayerMeas_r17_OF_MeasConfigAppLayer_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAppLayerMeas_r17_OF_MeasConfigAppLayerId_r17;
+static int ett_nr_rrc_MeasConfigAppLayer_r17;
+static int ett_nr_rrc_T_ran_VisibleParameters_r17;
+static int ett_nr_rrc_RAN_VisibleParameters_r17;
+static int ett_nr_rrc_AreaConfiguration_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxFreq_OF_InterFreqTargetInfo_r16;
+static int ett_nr_rrc_AreaConfiguration_r17;
+static int ett_nr_rrc_AreaConfig_r16;
+static int ett_nr_rrc_InterFreqTargetInfo_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_PhysCellId;
+static int ett_nr_rrc_CellGlobalIdList_r16;
+static int ett_nr_rrc_TrackingAreaCodeList_r16;
+static int ett_nr_rrc_TrackingAreaIdentityList_r16;
+static int ett_nr_rrc_TrackingAreaIdentity_r16;
+static int ett_nr_rrc_BT_NameList_r16;
+static int ett_nr_rrc_EUTRA_MBSFN_SubframeConfigList;
+static int ett_nr_rrc_EUTRA_MBSFN_SubframeConfig;
+static int ett_nr_rrc_T_subframeAllocation1;
+static int ett_nr_rrc_T_subframeAllocation2;
+static int ett_nr_rrc_EUTRA_MultiBandInfoList;
+static int ett_nr_rrc_EUTRA_MultiBandInfo;
+static int ett_nr_rrc_EUTRA_NS_PmaxList;
+static int ett_nr_rrc_EUTRA_NS_PmaxValue;
+static int ett_nr_rrc_EUTRA_PhysCellIdRange;
+static int ett_nr_rrc_IAB_IP_Address_r16;
+static int ett_nr_rrc_LogMeasResultListBT_r16;
+static int ett_nr_rrc_LogMeasResultBT_r16;
+static int ett_nr_rrc_LogMeasResultListWLAN_r16;
+static int ett_nr_rrc_LogMeasResultWLAN_r16;
+static int ett_nr_rrc_WLAN_Identifiers_r16;
+static int ett_nr_rrc_WLAN_RTT_r16;
+static int ett_nr_rrc_OtherConfig;
+static int ett_nr_rrc_T_delayBudgetReportingConfig;
+static int ett_nr_rrc_T_setup;
+static int ett_nr_rrc_OtherConfig_v1540;
+static int ett_nr_rrc_T_overheatingAssistanceConfig;
+static int ett_nr_rrc_OtherConfig_v1610;
+static int ett_nr_rrc_T_idc_AssistanceConfig_r16;
+static int ett_nr_rrc_T_drx_PreferenceConfig_r16;
+static int ett_nr_rrc_T_maxBW_PreferenceConfig_r16;
+static int ett_nr_rrc_T_maxCC_PreferenceConfig_r16;
+static int ett_nr_rrc_T_maxMIMO_LayerPreferenceConfig_r16;
+static int ett_nr_rrc_T_minSchedulingOffsetPreferenceConfig_r16;
+static int ett_nr_rrc_T_releasePreferenceConfig_r16;
+static int ett_nr_rrc_T_btNameList_r16;
+static int ett_nr_rrc_T_wlanNameList_r16;
+static int ett_nr_rrc_T_sensorNameList_r16;
+static int ett_nr_rrc_OtherConfig_v1700;
+static int ett_nr_rrc_T_musim_GapAssistanceConfig_r17;
+static int ett_nr_rrc_T_musim_LeaveAssistanceConfig_r17;
+static int ett_nr_rrc_T_successHO_Config_r17;
+static int ett_nr_rrc_T_rlm_RelaxationReportingConfig_r17;
+static int ett_nr_rrc_T_bfd_RelaxationReportingConfig_r17;
+static int ett_nr_rrc_T_scg_DeactivationPreferenceConfig_r17;
+static int ett_nr_rrc_T_rrm_MeasRelaxationReportingConfig_r17;
+static int ett_nr_rrc_T_propDelayDiffReportConfig_r17;
+static int ett_nr_rrc_CandidateServingFreqListNR_r16;
+static int ett_nr_rrc_MUSIM_GapAssistanceConfig_r17;
+static int ett_nr_rrc_MUSIM_LeaveAssistanceConfig_r17;
+static int ett_nr_rrc_SuccessHO_Config_r17;
+static int ett_nr_rrc_OverheatingAssistanceConfig;
+static int ett_nr_rrc_IDC_AssistanceConfig_r16;
+static int ett_nr_rrc_DRX_PreferenceConfig_r16;
+static int ett_nr_rrc_MaxBW_PreferenceConfig_r16;
+static int ett_nr_rrc_MaxCC_PreferenceConfig_r16;
+static int ett_nr_rrc_MaxMIMO_LayerPreferenceConfig_r16;
+static int ett_nr_rrc_MinSchedulingOffsetPreferenceConfig_r16;
+static int ett_nr_rrc_ReleasePreferenceConfig_r16;
+static int ett_nr_rrc_RLM_RelaxationReportingConfig_r17;
+static int ett_nr_rrc_BFD_RelaxationReportingConfig_r17;
+static int ett_nr_rrc_SCG_DeactivationPreferenceConfig_r17;
+static int ett_nr_rrc_RRM_MeasRelaxationReportingConfig_r17;
+static int ett_nr_rrc_PropDelayDiffReportConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCellNTN_r17_OF_NeighbourCellInfo_r17;
+static int ett_nr_rrc_NeighbourCellInfo_r17;
+static int ett_nr_rrc_Sensor_NameList_r16;
+static int ett_nr_rrc_TraceReference_r16;
+static int ett_nr_rrc_UE_MeasurementsAvailable_r16;
+static int ett_nr_rrc_VisitedCellInfoList_r16;
+static int ett_nr_rrc_VisitedCellInfo_r16;
+static int ett_nr_rrc_T_visitedCellId_r16;
+static int ett_nr_rrc_T_nr_CellId_r16;
+static int ett_nr_rrc_T_eutra_CellId_r16;
+static int ett_nr_rrc_VisitedPSCellInfoList_r17;
+static int ett_nr_rrc_VisitedPSCellInfo_r17;
+static int ett_nr_rrc_T_visitedCellId_r17;
+static int ett_nr_rrc_T_nr_CellId_r17;
+static int ett_nr_rrc_T_eutra_CellId_r17;
+static int ett_nr_rrc_WLAN_NameList_r16;
+static int ett_nr_rrc_SL_BWP_Config_r16;
+static int ett_nr_rrc_T_sl_BWP_PoolConfigPS_r17;
+static int ett_nr_rrc_T_sl_BWP_DiscPoolConfig_r17;
+static int ett_nr_rrc_SL_BWP_Generic_r16;
+static int ett_nr_rrc_T_sl_PSBCH_Config_r16;
+static int ett_nr_rrc_SL_BWP_DiscPoolConfig_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRXPool_r16_OF_SL_ResourcePool_r16;
+static int ett_nr_rrc_SL_BWP_PoolConfig_r16;
+static int ett_nr_rrc_SL_TxPoolDedicated_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTXPool_r16_OF_SL_ResourcePoolID_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTXPool_r16_OF_SL_ResourcePoolConfig_r16;
+static int ett_nr_rrc_SL_ResourcePoolConfig_r16;
+static int ett_nr_rrc_SL_CBR_PriorityTxConfigList_r16;
+static int ett_nr_rrc_SL_CBR_PriorityTxConfigList_v1650;
+static int ett_nr_rrc_SL_PriorityTxConfigIndex_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r16_OF_SL_TxConfigIndex_r16;
+static int ett_nr_rrc_SL_PriorityTxConfigIndex_v1650;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCBR_Level_r16_OF_SL_MinMaxMCS_List_r16;
+static int ett_nr_rrc_SL_CBR_CommonTxConfigList_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxCBR_Config_r16_OF_SL_CBR_LevelsConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxTxConfig_r16_OF_SL_CBR_PSSCH_TxConfig_r16;
+static int ett_nr_rrc_SL_CBR_LevelsConfig_r16;
+static int ett_nr_rrc_SL_CBR_PSSCH_TxConfig_r16;
+static int ett_nr_rrc_SL_ConfigDedicatedNR_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SLRB_Uu_ConfigIndex_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SL_RadioBearerConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_Dest_r16_OF_SL_DestinationIndex_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_Dest_r16_OF_SL_MeasConfigInfo_r16;
+static int ett_nr_rrc_T_sl_PHY_MAC_RLC_Config_v1700;
+static int ett_nr_rrc_T_sl_DiscConfig_r17;
+static int ett_nr_rrc_SL_PHY_MAC_RLC_Config_r16;
+static int ett_nr_rrc_T_sl_ScheduledConfig_r16;
+static int ett_nr_rrc_T_sl_UE_SelectedConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFreqSL_r16_OF_SL_Freq_Id_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFreqSL_r16_OF_SL_FreqConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_BearerConfigIndex_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_BearerConfig_r16;
+static int ett_nr_rrc_T_sl_CSI_SchedulingRequestId_r16;
+static int ett_nr_rrc_SL_RLC_ChannelToAddModList_r17;
+static int ett_nr_rrc_SL_PHY_MAC_RLC_Config_v1700;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_ChannelID_r17;
+static int ett_nr_rrc_SL_DiscConfig_r17;
+static int ett_nr_rrc_T_sl_RelayUE_Config_r17;
+static int ett_nr_rrc_T_sl_RemoteUE_Config_r17;
+static int ett_nr_rrc_SL_ConfiguredGrantConfig_r16;
+static int ett_nr_rrc_T_rrc_ConfiguredSidelinkGrant_r16;
+static int ett_nr_rrc_SL_CG_MaxTransNumList_r16;
+static int ett_nr_rrc_SL_CG_MaxTransNum_r16;
+static int ett_nr_rrc_SL_PeriodCG_r16;
+static int ett_nr_rrc_SL_DRX_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_Dest_r16_OF_SL_DRX_ConfigUC_Info_r17;
+static int ett_nr_rrc_SL_DRX_ConfigUC_Info_r17;
+static int ett_nr_rrc_SL_DRX_ConfigGC_BC_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_GC_BC_DRX_QoS_r17_OF_SL_DRX_GC_BC_QoS_r17;
+static int ett_nr_rrc_SL_DRX_GC_BC_QoS_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIs_r16_OF_SL_QoS_Profile_r16;
+static int ett_nr_rrc_T_sl_DRX_GC_BC_OnDurationTimer_r17;
+static int ett_nr_rrc_SL_DRX_GC_Generic_r17;
+static int ett_nr_rrc_SL_DRX_ConfigUC_r17;
+static int ett_nr_rrc_T_sl_drx_onDurationTimer_r17;
+static int ett_nr_rrc_T_sl_drx_CycleStartOffset_r17;
+static int ett_nr_rrc_SL_DRX_ConfigUC_SemiStatic_r17;
+static int ett_nr_rrc_T_sl_drx_onDurationTimer_r17_01;
+static int ett_nr_rrc_T_sl_drx_CycleStartOffset_r17_01;
+static int ett_nr_rrc_SL_FreqConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_BWPs_r16_OF_BWP_Id;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_BWPs_r16_OF_SL_BWP_Config_r16;
+static int ett_nr_rrc_SL_InterUE_CoordinationConfig_r17;
+static int ett_nr_rrc_SL_InterUE_CoordinationScheme1_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_SL_ThresholdRSRP_Condition1_B_1_r17;
+static int ett_nr_rrc_SL_InterUE_CoordinationScheme2_r17;
+static int ett_nr_rrc_SL_ThresholdRSRP_Condition1_B_1_r17;
+static int ett_nr_rrc_SL_LogicalChannelConfig_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofCG_SL_1_r16_OF_SL_ConfigIndexCG_r16;
+static int ett_nr_rrc_SL_L2RelayUE_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRemoteUE_r17_OF_SL_RemoteUE_ToAddMod_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRemoteUE_r17_OF_SL_DestinationIdentity_r16;
+static int ett_nr_rrc_SL_RemoteUE_ToAddMod_r17;
+static int ett_nr_rrc_SL_L2RemoteUE_Config_r17;
+static int ett_nr_rrc_SL_MeasConfigInfo_r16;
+static int ett_nr_rrc_SL_MeasConfig_r16;
+static int ett_nr_rrc_SL_MeasObjectToRemoveList_r16;
+static int ett_nr_rrc_SL_ReportConfigToRemoveList_r16;
+static int ett_nr_rrc_SL_MeasIdToRemoveList_r16;
+static int ett_nr_rrc_SL_MeasIdList_r16;
+static int ett_nr_rrc_SL_MeasIdInfo_r16;
+static int ett_nr_rrc_SL_MeasObjectList_r16;
+static int ett_nr_rrc_SL_MeasObjectInfo_r16;
+static int ett_nr_rrc_SL_MeasObject_r16;
+static int ett_nr_rrc_SL_PagingIdentityRemoteUE_r17;
+static int ett_nr_rrc_SL_PBPS_CPS_Config_r17;
+static int ett_nr_rrc_T_sl_PBPS_OccasionReservePeriodList_r17;
+static int ett_nr_rrc_SL_PDCP_Config_r16;
+static int ett_nr_rrc_SL_PSBCH_Config_r16;
+static int ett_nr_rrc_SL_PSSCH_TxConfigList_r16;
+static int ett_nr_rrc_SL_PSSCH_TxConfig_r16;
+static int ett_nr_rrc_SL_PSSCH_TxParameters_r16;
+static int ett_nr_rrc_SL_QoS_Profile_r16;
+static int ett_nr_rrc_SL_PQI_r16;
+static int ett_nr_rrc_T_sl_Non_StandardizedPQI_r16;
+static int ett_nr_rrc_SL_QuantityConfig_r16;
+static int ett_nr_rrc_SL_RadioBearerConfig_r16;
+static int ett_nr_rrc_SL_RelayUE_Config_r17;
+static int ett_nr_rrc_SL_RemoteUE_Config_r17;
+static int ett_nr_rrc_SL_ReselectionConfig_r17;
+static int ett_nr_rrc_SL_ReportConfigList_r16;
+static int ett_nr_rrc_SL_ReportConfigInfo_r16;
+static int ett_nr_rrc_SL_ReportConfig_r16;
+static int ett_nr_rrc_T_sl_ReportType_r16;
+static int ett_nr_rrc_SL_PeriodicalReportConfig_r16;
+static int ett_nr_rrc_SL_EventTriggerConfig_r16;
+static int ett_nr_rrc_T_sl_EventId_r16;
+static int ett_nr_rrc_T_eventS1_r16;
+static int ett_nr_rrc_T_eventS2_r16;
+static int ett_nr_rrc_SL_MeasReportQuantity_r16;
+static int ett_nr_rrc_SL_MeasTriggerQuantity_r16;
+static int ett_nr_rrc_SL_ResourcePool_r16;
+static int ett_nr_rrc_T_sl_PSCCH_Config_r16;
+static int ett_nr_rrc_T_sl_PSSCH_Config_r16;
+static int ett_nr_rrc_T_sl_PSFCH_Config_r16;
+static int ett_nr_rrc_T_sl_RxParametersNcell_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_16_OF_SL_ZoneConfigMCR_r16;
+static int ett_nr_rrc_T_sl_PBPS_CPS_Config_r17;
+static int ett_nr_rrc_T_sl_InterUE_CoordinationConfig_r17;
+static int ett_nr_rrc_SL_ZoneConfigMCR_r16;
+static int ett_nr_rrc_SL_SyncAllowed_r16;
+static int ett_nr_rrc_SL_PSCCH_Config_r16;
+static int ett_nr_rrc_SL_PSSCH_Config_r16;
+static int ett_nr_rrc_T_sl_PSSCH_DMRS_TimePatternList_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_4_OF_SL_BetaOffsets_r16;
+static int ett_nr_rrc_SL_PSFCH_Config_r16;
+static int ett_nr_rrc_SL_PTRS_Config_r16;
+static int ett_nr_rrc_T_sl_PTRS_FreqDensity_r16;
+static int ett_nr_rrc_T_sl_PTRS_TimeDensity_r16;
+static int ett_nr_rrc_SL_UE_SelectedConfigRP_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_SL_ResourceReservePeriod_r16;
+static int ett_nr_rrc_SL_ResourceReservePeriod_r16;
+static int ett_nr_rrc_SL_SelectionWindowList_r16;
+static int ett_nr_rrc_SL_SelectionWindowConfig_r16;
+static int ett_nr_rrc_SL_TxPercentageList_r16;
+static int ett_nr_rrc_SL_TxPercentageConfig_r16;
+static int ett_nr_rrc_SL_MinMaxMCS_List_r16;
+static int ett_nr_rrc_SL_MinMaxMCS_Config_r16;
+static int ett_nr_rrc_SL_PowerControl_r16;
+static int ett_nr_rrc_SL_RLC_BearerConfig_r16;
+static int ett_nr_rrc_SL_RLC_ChannelConfig_r17;
+static int ett_nr_rrc_SL_RLC_Config_r16;
+static int ett_nr_rrc_T_sl_AM_RLC_r16;
+static int ett_nr_rrc_T_sl_UM_RLC_r16;
+static int ett_nr_rrc_SL_ScheduledConfig_r16;
+static int ett_nr_rrc_T_sl_PSFCH_ToPUCCH_r16;
+static int ett_nr_rrc_T_sl_DCI_ToSL_Trans_r16;
+static int ett_nr_rrc_MAC_MainConfigSL_r16;
+static int ett_nr_rrc_SL_ConfiguredGrantConfigList_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCG_SL_r16_OF_SL_ConfigIndexCG_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCG_SL_r16_OF_SL_ConfiguredGrantConfig_r16;
+static int ett_nr_rrc_SL_SDAP_Config_r16;
+static int ett_nr_rrc_T_sl_MappedQoS_Flows_r16;
+static int ett_nr_rrc_SL_MappedQoS_FlowsListDedicated_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIs_r16_OF_SL_QoS_FlowIdentity_r16;
+static int ett_nr_rrc_SL_SRAP_Config_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_SL_MappingToAddMod_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_SL_RemoteUE_RB_Identity_r17;
+static int ett_nr_rrc_SL_MappingToAddMod_r17;
+static int ett_nr_rrc_SL_RemoteUE_RB_Identity_r17;
+static int ett_nr_rrc_SL_SyncConfigList_r16;
+static int ett_nr_rrc_SL_SyncConfig_r16;
+static int ett_nr_rrc_T_txParameters_r16;
+static int ett_nr_rrc_SL_SSB_TimeAllocation_r16;
+static int ett_nr_rrc_SL_Thres_RSRP_List_r16;
+static int ett_nr_rrc_SL_TxPower_r16;
+static int ett_nr_rrc_SL_UE_SelectedConfig_r16;
+static int ett_nr_rrc_SL_ZoneConfig_r16;
+static int ett_nr_rrc_CarrierFreqListMBS_r17;
+static int ett_nr_rrc_CFR_ConfigMCCH_MTCH_r17;
+static int ett_nr_rrc_LocationAndBandwidthBroadcast_r17;
+static int ett_nr_rrc_DRX_ConfigPTM_r17;
+static int ett_nr_rrc_T_drx_onDurationTimerPTM_r17;
+static int ett_nr_rrc_T_drx_LongCycleStartOffsetPTM_r17;
+static int ett_nr_rrc_MBS_NeighbourCellList_r17;
+static int ett_nr_rrc_MBS_NeighbourCell_r17;
+static int ett_nr_rrc_MBS_ServiceList_r17;
+static int ett_nr_rrc_MBS_ServiceInfo_r17;
+static int ett_nr_rrc_MBS_SessionInfoList_r17;
+static int ett_nr_rrc_MBS_SessionInfo_r17;
+static int ett_nr_rrc_MRB_ListBroadcast_r17;
+static int ett_nr_rrc_MRB_InfoBroadcast_r17;
+static int ett_nr_rrc_MRB_PDCP_ConfigBroadcast_r17;
+static int ett_nr_rrc_T_headerCompression_r17;
+static int ett_nr_rrc_T_rohc_01;
+static int ett_nr_rrc_T_profiles_r17;
+static int ett_nr_rrc_MRB_RLC_ConfigBroadcast_r17;
+static int ett_nr_rrc_MTCH_SSB_MappingWindowList_r17;
+static int ett_nr_rrc_MTCH_SSB_MappingWindowCycleOffset_r17;
+static int ett_nr_rrc_PDSCH_ConfigBroadcast_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPDSCH_ConfigPTM_r17_OF_PDSCH_ConfigPTM_r17;
+static int ett_nr_rrc_PDSCH_ConfigPTM_r17;
+static int ett_nr_rrc_TMGI_r17;
+static int ett_nr_rrc_T_plmn_Id_r17;
+static int ett_nr_rrc_SBCCH_SL_BCH_Message;
+static int ett_nr_rrc_SBCCH_SL_BCH_MessageType;
+static int ett_nr_rrc_T_c1_18;
+static int ett_nr_rrc_T_messageClassExtension_09;
+static int ett_nr_rrc_SCCH_Message;
+static int ett_nr_rrc_SCCH_MessageType;
+static int ett_nr_rrc_T_c1_19;
+static int ett_nr_rrc_T_messageClassExtension_10;
+static int ett_nr_rrc_T_c2_01;
+static int ett_nr_rrc_T_messageClassExtensionFuture_r17;
+static int ett_nr_rrc_MasterInformationBlockSidelink;
+static int ett_nr_rrc_MeasurementReportSidelink;
+static int ett_nr_rrc_T_criticalExtensions_51;
+static int ett_nr_rrc_T_criticalExtensionsFuture_51;
+static int ett_nr_rrc_MeasurementReportSidelink_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_58;
+static int ett_nr_rrc_SL_MeasResults_r16;
+static int ett_nr_rrc_SL_MeasResult_r16;
+static int ett_nr_rrc_SL_MeasQuantityResult_r16;
+static int ett_nr_rrc_SL_MeasResultListRelay_r17;
+static int ett_nr_rrc_SL_MeasResultRelay_r17;
+static int ett_nr_rrc_NotificationMessageSidelink_r17;
+static int ett_nr_rrc_T_criticalExtensions_52;
+static int ett_nr_rrc_T_criticalExtensionsFuture_52;
+static int ett_nr_rrc_NotificationMessageSidelink_r17_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_59;
+static int ett_nr_rrc_RemoteUEInformationSidelink_r17;
+static int ett_nr_rrc_T_criticalExtensions_53;
+static int ett_nr_rrc_T_criticalExtensionsFuture_53;
+static int ett_nr_rrc_RemoteUEInformationSidelink_r17_IEs;
+static int ett_nr_rrc_T_sl_RequestedSIB_List_r17;
+static int ett_nr_rrc_T_sl_PagingInfo_RemoteUE_r17;
+static int ett_nr_rrc_T_nonCriticalExtension_60;
+static int ett_nr_rrc_SL_RequestedSIB_List_r17;
+static int ett_nr_rrc_SL_PagingInfo_RemoteUE_r17;
+static int ett_nr_rrc_RRCReconfigurationSidelink;
+static int ett_nr_rrc_T_criticalExtensions_54;
+static int ett_nr_rrc_T_criticalExtensionsFuture_54;
+static int ett_nr_rrc_RRCReconfigurationSidelink_r16_IEs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SLRB_Config_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSLRB_r16_OF_SLRB_PC5_ConfigIndex_r16;
+static int ett_nr_rrc_T_sl_MeasConfig_r16;
+static int ett_nr_rrc_T_sl_CSI_RS_Config_r16;
+static int ett_nr_rrc_RRCReconfigurationSidelink_v1700_IEs;
+static int ett_nr_rrc_T_sl_DRX_ConfigUC_PC5_r17;
+static int ett_nr_rrc_T_sl_LatencyBoundIUC_Report_r17;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxSL_LCID_r16_OF_SL_RLC_ChannelConfigPC5_r17;
+static int ett_nr_rrc_T_nonCriticalExtension_61;
+static int ett_nr_rrc_SLRB_Config_r16;
+static int ett_nr_rrc_SL_SDAP_ConfigPC5_r16;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSL_QFIsPerDest_r16_OF_SL_PQFI_r16;
+static int ett_nr_rrc_SL_PDCP_ConfigPC5_r16;
+static int ett_nr_rrc_SL_RLC_ConfigPC5_r16;
+static int ett_nr_rrc_T_sl_AM_RLC_r16_01;
+static int ett_nr_rrc_T_sl_UM_Bi_Directional_RLC_r16;
+static int ett_nr_rrc_T_sl_UM_Uni_Directional_RLC_r16;
+static int ett_nr_rrc_SL_LogicalChannelConfigPC5_r16;
+static int ett_nr_rrc_SL_CSI_RS_Config_r16;
+static int ett_nr_rrc_T_sl_CSI_RS_FreqAllocation_r16;
+static int ett_nr_rrc_SL_RLC_ChannelConfigPC5_r17;
+static int ett_nr_rrc_RRCReconfigurationCompleteSidelink;
+static int ett_nr_rrc_T_criticalExtensions_55;
+static int ett_nr_rrc_T_criticalExtensionsFuture_55;
+static int ett_nr_rrc_RRCReconfigurationCompleteSidelink_r16_IEs;
+static int ett_nr_rrc_RRCReconfigurationCompleteSidelink_v1710_IEs;
+static int ett_nr_rrc_RRCReconfigurationCompleteSidelink_v1720_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_62;
+static int ett_nr_rrc_RRCReconfigurationFailureSidelink;
+static int ett_nr_rrc_T_criticalExtensions_56;
+static int ett_nr_rrc_T_criticalExtensionsFuture_56;
+static int ett_nr_rrc_RRCReconfigurationFailureSidelink_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_63;
+static int ett_nr_rrc_UEAssistanceInformationSidelink_r17;
+static int ett_nr_rrc_T_criticalExtensions_57;
+static int ett_nr_rrc_T_criticalExtensionsFuture_57;
+static int ett_nr_rrc_UEAssistanceInformationSidelink_r17_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_64;
+static int ett_nr_rrc_UECapabilityEnquirySidelink;
+static int ett_nr_rrc_T_criticalExtensions_58;
+static int ett_nr_rrc_T_criticalExtensionsFuture_58;
+static int ett_nr_rrc_UECapabilityEnquirySidelink_r16_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_65;
+static int ett_nr_rrc_UECapabilityInformationSidelink;
+static int ett_nr_rrc_T_criticalExtensions_59;
+static int ett_nr_rrc_T_criticalExtensionsFuture_59;
+static int ett_nr_rrc_UECapabilityInformationSidelink_r16_IEs;
+static int ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandSidelinkPC5_r16;
+static int ett_nr_rrc_UECapabilityInformationSidelink_v1700_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_66;
+static int ett_nr_rrc_MAC_ParametersSidelink_r17;
+static int ett_nr_rrc_PDCP_ParametersSidelink_r16;
+static int ett_nr_rrc_BandCombinationListSidelinkNR_r16;
+static int ett_nr_rrc_BandCombinationListSidelinkNR_v1710;
+static int ett_nr_rrc_BandCombinationParametersSidelinkNR_r16;
+static int ett_nr_rrc_BandCombinationParametersSidelinkNR_v1710;
+static int ett_nr_rrc_BandParametersSidelink_v1710;
+static int ett_nr_rrc_BandSidelinkPC5_r16;
+static int ett_nr_rrc_T_sl_Reception_r16_01;
+static int ett_nr_rrc_T_scs_CP_PatternRxSidelink_r16_01;
+static int ett_nr_rrc_T_fr1_r16_02;
+static int ett_nr_rrc_T_fr2_r16_03;
+static int ett_nr_rrc_T_csi_ReportSidelink_r16;
+static int ett_nr_rrc_UuMessageTransferSidelink_r17;
+static int ett_nr_rrc_T_criticalExtensions_60;
+static int ett_nr_rrc_T_criticalExtensionsFuture_60;
+static int ett_nr_rrc_UuMessageTransferSidelink_r17_IEs;
+static int ett_nr_rrc_T_nonCriticalExtension_67;
static gint ett_nr_rrc_DedicatedNAS_Message;
static gint ett_nr_rrc_targetRAT_MessageContainer;
static gint ett_nr_rrc_nas_Container;
@@ -14291,7 +14338,8 @@ dissect_nr_rrc_DRB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
1U, 32U, &value, FALSE);
if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
- nr_rrc_get_private_data(actx)->drb_rlc_mapping.drbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = TRUE;
}
else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (guint8)value;
@@ -15509,7 +15557,7 @@ dissect_nr_rrc_T_condEventD1_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_nr_rrc_INTEGER_0_549755813887(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(549755813887), NULL, FALSE);
+ 0U, UINT64_C(549755813887), NULL, FALSE);
return offset;
}
@@ -15623,7 +15671,7 @@ dissect_nr_rrc_TimeBetweenEvent_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
}
-static const value_string nr_rrc_T_firstTriggeredEvent_vals[] = {
+static const value_string nr_rrc_T_firstTriggeredEvent_r17_vals[] = {
{ 0, "condFirstEvent" },
{ 1, "condSecondEvent" },
{ 0, NULL }
@@ -15631,7 +15679,7 @@ static const value_string nr_rrc_T_firstTriggeredEvent_vals[] = {
static int
-dissect_nr_rrc_T_firstTriggeredEvent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_nr_rrc_T_firstTriggeredEvent_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
2, NULL, FALSE, 0, NULL);
@@ -15641,7 +15689,7 @@ dissect_nr_rrc_T_firstTriggeredEvent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static const per_sequence_t T_triggeredEvent_r17_sequence[] = {
{ &hf_nr_rrc_timeBetweenEvents_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TimeBetweenEvent_r17 },
- { &hf_nr_rrc_firstTriggeredEvent, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_firstTriggeredEvent },
+ { &hf_nr_rrc_firstTriggeredEvent_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_firstTriggeredEvent_r17 },
{ NULL, 0, 0, NULL }
};
@@ -23106,7 +23154,7 @@ static int
dissect_nr_rrc_SIB2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB2");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB2 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB2, SIB2_sequence);
@@ -23414,7 +23462,7 @@ static int
dissect_nr_rrc_SIB3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB3");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB3 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB3, SIB3_sequence);
@@ -23922,7 +23970,7 @@ static int
dissect_nr_rrc_SIB4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB4");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB4 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB4, SIB4_sequence);
@@ -24392,7 +24440,7 @@ static int
dissect_nr_rrc_SIB5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB5");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB5 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB5, SIB5_sequence);
@@ -24472,7 +24520,7 @@ static int
dissect_nr_rrc_SIB6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB6");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB6 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB6, SIB6_sequence);
@@ -24629,7 +24677,7 @@ static int
dissect_nr_rrc_SIB7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB7");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB7 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB7, SIB7_sequence);
@@ -24787,7 +24835,7 @@ static int
dissect_nr_rrc_SIB8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB8");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB8 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB8, SIB8_sequence);
@@ -24804,7 +24852,7 @@ dissect_nr_rrc_T_timeInfoUTC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
nstime_t ts;
guint32 old_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(549755813887), &timeInfo, FALSE);
+ 0U, UINT64_C(549755813887), &timeInfo, FALSE);
@@ -24996,7 +25044,7 @@ static int
dissect_nr_rrc_SIB9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB9");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB9 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB9, SIB9_sequence);
@@ -25051,7 +25099,7 @@ static const per_sequence_t SIB10_r16_sequence[] = {
static int
dissect_nr_rrc_SIB10_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB10");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB10 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB10_r16, SIB10_r16_sequence);
@@ -25314,7 +25362,7 @@ static const per_sequence_t SIB11_r16_sequence[] = {
static int
dissect_nr_rrc_SIB11_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB11");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB11");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB11_r16, SIB11_r16_sequence);
@@ -25348,7 +25396,7 @@ static const per_sequence_t SIB12_r16_sequence[] = {
static int
dissect_nr_rrc_SIB12_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB12");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB12 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB12_r16, SIB12_r16_sequence);
@@ -25403,7 +25451,7 @@ static const per_sequence_t SIB13_r16_sequence[] = {
static int
dissect_nr_rrc_SIB13_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB13");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB13 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB13_r16, SIB13_r16_sequence);
@@ -25420,7 +25468,7 @@ static const per_sequence_t SIB14_r16_sequence[] = {
static int
dissect_nr_rrc_SIB14_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB14");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB14 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB14_r16, SIB14_r16_sequence);
@@ -25478,7 +25526,7 @@ static const per_sequence_t SIB15_r17_sequence[] = {
static int
dissect_nr_rrc_SIB15_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB15");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB15 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB15_r17, SIB15_r17_sequence);
@@ -25626,7 +25674,7 @@ static const per_sequence_t SIB16_r17_sequence[] = {
static int
dissect_nr_rrc_SIB16_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB16");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB16 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB16_r17, SIB16_r17_sequence);
@@ -25660,7 +25708,7 @@ static const per_sequence_t SIB17_r17_sequence[] = {
static int
dissect_nr_rrc_SIB17_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB17");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB17 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB17_r17, SIB17_r17_sequence);
@@ -25759,7 +25807,7 @@ static const per_sequence_t SIB18_r17_sequence[] = {
static int
dissect_nr_rrc_SIB18_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB18");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB18 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB18_r17, SIB18_r17_sequence);
@@ -25956,7 +26004,7 @@ dissect_nr_rrc_PositionVelocity_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_nr_rrc_INTEGER_0_8589934591(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(8589934591), NULL, FALSE);
+ 0U, UINT64_C(8589934591), NULL, FALSE);
return offset;
}
@@ -26126,7 +26174,7 @@ static const per_sequence_t SIB19_r17_sequence[] = {
static int
dissect_nr_rrc_SIB19_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB19");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB19 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB19_r17, SIB19_r17_sequence);
@@ -27265,7 +27313,7 @@ static const per_sequence_t SIB20_r17_sequence[] = {
static int
dissect_nr_rrc_SIB20_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB20");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB20 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB20_r17, SIB20_r17_sequence);
@@ -27336,7 +27384,7 @@ static const per_sequence_t SIB21_r17_sequence[] = {
static int
dissect_nr_rrc_SIB21_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB21");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "SIB21 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB21_r17, SIB21_r17_sequence);
@@ -28218,12 +28266,12 @@ static const per_sequence_t SystemInformation_sequence[] = {
static int
dissect_nr_rrc_SystemInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information [ ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SystemInformation, SystemInformation_sequence);
- col_append_str(actx->pinfo->cinfo, COL_INFO, " ]");
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "]");
return offset;
}
@@ -35826,7 +35874,7 @@ static int
dissect_nr_rrc_SIB1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_item *prot_ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA);
proto_item_set_hidden(prot_ti);
- col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1");
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1 ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SIB1, SIB1_sequence);
@@ -36017,8 +36065,18 @@ dissect_nr_rrc_RRC_TransactionIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_nr_rrc_SRB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 1U, 3U, NULL, FALSE);
+ 1U, 3U, &value, FALSE);
+
+ if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = FALSE;
+ }
+ else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (guint8)value;
+ }
+
return offset;
}
@@ -36957,8 +37015,18 @@ dissect_nr_rrc_PDCP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_nr_rrc_SRB_Identity_v1700(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ guint32 value;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 4U, 4U, NULL, FALSE);
+ 4U, 4U, &value, FALSE);
+
+ if (nr_rrc_get_private_data(actx)->drb_rlc_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.rbid = (guint8)value;
+ nr_rrc_get_private_data(actx)->drb_rlc_mapping.is_drb = FALSE;
+ }
+ else if (nr_rrc_get_private_data(actx)->drb_pdcp_mapping.active) {
+ nr_rrc_get_private_data(actx)->drb_pdcp_mapping.drbid = (guint8)value;
+ }
+
return offset;
}
@@ -37325,25 +37393,9 @@ static const per_sequence_t SecurityAlgorithmConfig_sequence[] = {
static int
dissect_nr_rrc_SecurityAlgorithmConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- guint16 *p_ueid;
- pdcp_nr_security_info_t *p_security_algorithms;
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
ett_nr_rrc_SecurityAlgorithmConfig, SecurityAlgorithmConfig_sequence);
- p_security_algorithms = &(nr_rrc_get_private_data(actx)->pdcp_security);
- p_security_algorithms->algorithm_configuration_frame = actx->pinfo->num;
- p_security_algorithms->previous_algorithm_configuration_frame = 0;
- p_security_algorithms->previous_integrity = nia0;
- p_security_algorithms->previous_ciphering = nea0;
-
- /* Look for UE identifier */
- p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
- if (p_ueid != NULL) {
- /* Configure algorithms */
- set_pdcp_nr_security_algorithms(*p_ueid, p_security_algorithms);
- }
-
-
return offset;
}
@@ -37365,7 +37417,7 @@ dissect_nr_rrc_T_keyToUse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static const per_sequence_t SecurityConfig_sequence[] = {
- { &hf_nr_rrc_securityAlgorithmConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SecurityAlgorithmConfig },
+ { &hf_nr_rrc_securityAlgorithmConfig_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SecurityAlgorithmConfig },
{ &hf_nr_rrc_keyToUse , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_keyToUse },
{ NULL, 0, 0, NULL }
};
@@ -40754,7 +40806,7 @@ dissect_nr_rrc_T_gnss_Sync_r16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static const per_sequence_t SL_SyncConfig_r16_sequence[] = {
{ &hf_nr_rrc_sl_SyncRefMinHyst_r16, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sl_SyncRefMinHyst_r16 },
{ &hf_nr_rrc_sl_SyncRefDiffHyst_r16, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sl_SyncRefDiffHyst_r16 },
- { &hf_nr_rrc_sl_filterCoefficient_r16, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient },
+ { &hf_nr_rrc_sl_FilterCoefficient_r16, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient },
{ &hf_nr_rrc_sl_SSB_TimeAllocation1_r16, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SL_SSB_TimeAllocation_r16 },
{ &hf_nr_rrc_sl_SSB_TimeAllocation2_r16, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SL_SSB_TimeAllocation_r16 },
{ &hf_nr_rrc_sl_SSB_TimeAllocation3_r16, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SL_SSB_TimeAllocation_r16 },
@@ -53681,8 +53733,33 @@ dissect_nr_rrc_RRCReestablishment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
}
+
+static int
+dissect_nr_rrc_T_securityAlgorithmConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ guint16 *p_ueid;
+ pdcp_nr_security_info_t *p_security_algorithms;
+ offset = dissect_nr_rrc_SecurityAlgorithmConfig(tvb, offset, actx, tree, hf_index);
+
+ p_security_algorithms = &(nr_rrc_get_private_data(actx)->pdcp_security);
+ p_security_algorithms->algorithm_configuration_frame = actx->pinfo->num;
+ p_security_algorithms->previous_algorithm_configuration_frame = 0;
+ p_security_algorithms->previous_integrity = nia0;
+ p_security_algorithms->previous_ciphering = nea0;
+
+ /* Look for UE identifier */
+ p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
+ if (p_ueid != NULL) {
+ /* Configure algorithms */
+ set_pdcp_nr_security_algorithms(*p_ueid, p_security_algorithms);
+ }
+
+
+ return offset;
+}
+
+
static const per_sequence_t SecurityConfigSMC_sequence[] = {
- { &hf_nr_rrc_securityAlgorithmConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SecurityAlgorithmConfig },
+ { &hf_nr_rrc_securityAlgorithmConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_securityAlgorithmConfig },
{ NULL, 0, 0, NULL }
};
@@ -63781,11 +63858,11 @@ static const value_string nr_rrc_SIB_Type_r17_vals[] = {
{ 2, "sibType4" },
{ 3, "sibType5" },
{ 4, "sibType9" },
- { 5, "sibType10-v1610" },
- { 6, "sibType11-v1610" },
- { 7, "sibType12-v1610" },
- { 8, "sibType13-v1610" },
- { 9, "sibType14-v1610" },
+ { 5, "sibType10" },
+ { 6, "sibType11" },
+ { 7, "sibType12" },
+ { 8, "sibType13" },
+ { 9, "sibType14" },
{ 10, "spare6" },
{ 11, "spare5" },
{ 12, "spare4" },
@@ -81555,10 +81632,20 @@ dissect_nr_rrc_RLC_BearerConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
/* Need UE identifier */
p_ueid = nr_rrc_get_ueid_from_lower_layers(wmem_file_scope(), actx->pinfo);
- if (p_ueid != NULL && drb_mapping->drbid) {
+ if (p_ueid != NULL && drb_mapping->rbid) {
drb_mapping->ueid = *p_ueid;
- /* Tell MAC about this mapping */
- set_mac_nr_bearer_mapping(drb_mapping);
+ if (drb_mapping->is_drb) {
+ /* Tell MAC about this mapping */
+ set_mac_nr_bearer_mapping(drb_mapping);
+ }
+ else if (drb_mapping->lcid_present && drb_mapping->lcid==3) {
+ /* Tell MAC that LCID 3 is for SRB-3 */
+ set_mac_nr_srb3_in_use(drb_mapping->ueid);
+ }
+ else if (drb_mapping->lcid_present && drb_mapping->lcid==4) {
+ /* Tell MAC that LCID 4 is for SRB-4 */
+ set_mac_nr_srb4_in_use(drb_mapping->ueid);
+ }
}
drb_mapping->active = FALSE;
@@ -100590,6 +100677,275 @@ dissect_nr_rrc_BandCombinationList_v1770(tvbuff_t *tvb _U_, int offset _U_, asn1
}
+static const value_string nr_rrc_T_parallelTxPUCCH_PUSCH_SamePriority_r17_01_vals[] = {
+ { 0, "supported" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_nr_rrc_T_parallelTxPUCCH_PUSCH_SamePriority_r17_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string nr_rrc_T_scalingFactorSCS_r17_vals[] = {
+ { 0, "true" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_nr_rrc_T_scalingFactorSCS_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string nr_rrc_T_fr1_r17_05_vals[] = {
+ { 0, "mhz20" },
+ { 1, "mhz30" },
+ { 2, "mhz35" },
+ { 3, "mhz40" },
+ { 4, "mhz50" },
+ { 5, "mhz60" },
+ { 6, "mhz70" },
+ { 7, "mhz80" },
+ { 8, "mhz90" },
+ { 9, "mhz100" },
+ { 10, "mhz110" },
+ { 11, "mhz120" },
+ { 12, "mhz130" },
+ { 13, "mhz140" },
+ { 14, "mhz150" },
+ { 15, "mhz160" },
+ { 16, "mhz180" },
+ { 17, "mhz200" },
+ { 18, "mhz220" },
+ { 19, "mhz230" },
+ { 20, "mhz250" },
+ { 21, "mhz280" },
+ { 22, "mhz290" },
+ { 23, "mhz300" },
+ { 24, "mhz350" },
+ { 25, "mhz400" },
+ { 26, "mhz450" },
+ { 27, "mhz500" },
+ { 28, "mhz600" },
+ { 29, "mhz700" },
+ { 30, "mhz800" },
+ { 31, "spare1" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_nr_rrc_T_fr1_r17_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 32, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string nr_rrc_T_fr2_r17_05_vals[] = {
+ { 0, "mhz200" },
+ { 1, "mhz300" },
+ { 2, "mhz400" },
+ { 3, "mhz500" },
+ { 4, "mhz600" },
+ { 5, "mhz700" },
+ { 6, "mhz800" },
+ { 7, "mhz900" },
+ { 8, "mhz1000" },
+ { 9, "mhz1100" },
+ { 10, "mhz1200" },
+ { 11, "mhz1300" },
+ { 12, "mhz1400" },
+ { 13, "mhz1500" },
+ { 14, "mhz1600" },
+ { 15, "mhz1700" },
+ { 16, "mhz1800" },
+ { 17, "mhz1900" },
+ { 18, "mhz2000" },
+ { 19, "mhz2100" },
+ { 20, "mhz2200" },
+ { 21, "mhz2300" },
+ { 22, "mhz2400" },
+ { 23, "spare9" },
+ { 24, "spare8" },
+ { 25, "spare7" },
+ { 26, "spare6" },
+ { 27, "spare5" },
+ { 28, "spare4" },
+ { 29, "spare3" },
+ { 30, "spare2" },
+ { 31, "spare1" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_nr_rrc_T_fr2_r17_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 32, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string nr_rrc_SupportedAggBandwidth_r17_vals[] = {
+ { 0, "fr1-r17" },
+ { 1, "fr2-r17" },
+ { 0, NULL }
+};
+
+static const per_choice_t SupportedAggBandwidth_r17_choice[] = {
+ { 0, &hf_nr_rrc_fr1_r17_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr1_r17_05 },
+ { 1, &hf_nr_rrc_fr2_r17_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr2_r17_05 },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_SupportedAggBandwidth_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_SupportedAggBandwidth_r17, SupportedAggBandwidth_r17_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t T_supportedAggBW_FR1_r17_sequence[] = {
+ { &hf_nr_rrc_scalingFactorSCS_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scalingFactorSCS_r17 },
+ { &hf_nr_rrc_supportedAggBW_FDD_DL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { &hf_nr_rrc_supportedAggBW_FDD_UL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { &hf_nr_rrc_supportedAggBW_TDD_DL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { &hf_nr_rrc_supportedAggBW_TDD_UL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { &hf_nr_rrc_supportedAggBW_TotalDL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { &hf_nr_rrc_supportedAggBW_TotalUL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_T_supportedAggBW_FR1_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_T_supportedAggBW_FR1_r17, T_supportedAggBW_FR1_r17_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t CA_ParametersNR_v1780_sequence[] = {
+ { &hf_nr_rrc_parallelTxPUCCH_PUSCH_SamePriority_r17_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_parallelTxPUCCH_PUSCH_SamePriority_r17_01 },
+ { &hf_nr_rrc_supportedAggBW_FR1_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supportedAggBW_FR1_r17 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_CA_ParametersNR_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_CA_ParametersNR_v1780, CA_ParametersNR_v1780_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t CA_ParametersNRDC_v1780_sequence[] = {
+ { &hf_nr_rrc_ca_ParametersNR_ForDC_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_ParametersNR_v1780 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_CA_ParametersNRDC_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_CA_ParametersNRDC_v1780, CA_ParametersNRDC_v1780_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t T_supportedAggBW_FR2_r17_sequence[] = {
+ { &hf_nr_rrc_supportedAggBW_DL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { &hf_nr_rrc_supportedAggBW_UL_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedAggBandwidth_r17 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_T_supportedAggBW_FR2_r17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_T_supportedAggBW_FR2_r17, T_supportedAggBW_FR2_r17_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BandParameters_v1780_sequence[] = {
+ { &hf_nr_rrc_ca_BandwidthClassDL_NR_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_BandwidthClassNR_r17 },
+ { &hf_nr_rrc_ca_BandwidthClassUL_NR_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_BandwidthClassNR_r17 },
+ { &hf_nr_rrc_supportedAggBW_FR2_r17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supportedAggBW_FR2_r17 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_BandParameters_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_BandParameters_v1780, BandParameters_v1780_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780_sequence_of[1] = {
+ { &hf_nr_rrc_bandList_v1780_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandParameters_v1780 },
+};
+
+static int
+dissect_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780, SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780_sequence_of,
+ 1, maxSimultaneousBands, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t BandCombination_v1780_sequence[] = {
+ { &hf_nr_rrc_ca_ParametersNR_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_ParametersNR_v1780 },
+ { &hf_nr_rrc_ca_ParametersNRDC_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_ParametersNRDC_v1780 },
+ { &hf_nr_rrc_bandList_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780 },
+ { &hf_nr_rrc_mrdc_Parameters_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MRDC_Parameters_v1770 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_BandCombination_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_BandCombination_v1780, BandCombination_v1780_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BandCombinationList_v1780_sequence_of[1] = {
+ { &hf_nr_rrc_BandCombinationList_v1780_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombination_v1780 },
+};
+
+static int
+dissect_nr_rrc_BandCombinationList_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_BandCombinationList_v1780, BandCombinationList_v1780_sequence_of,
+ 1, maxBandComb, FALSE);
+
+ return offset;
+}
+
+
static int
dissect_nr_rrc_INTEGER_1_maxSimultaneousBands(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -101231,6 +101587,34 @@ dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770(tvbuff_t *tvb _U_, int o
}
+static const per_sequence_t BandCombination_UplinkTxSwitch_v1780_sequence[] = {
+ { &hf_nr_rrc_bandCombination_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombination_v1780 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_BandCombination_UplinkTxSwitch_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_BandCombination_UplinkTxSwitch_v1780, BandCombination_UplinkTxSwitch_v1780_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t BandCombinationList_UplinkTxSwitch_v1780_sequence_of[1] = {
+ { &hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombination_UplinkTxSwitch_v1780 },
+};
+
+static int
+dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780, BandCombinationList_UplinkTxSwitch_v1780_sequence_of,
+ 1, maxBandComb, FALSE);
+
+ return offset;
+}
+
+
static int
dissect_nr_rrc_T_bandParametersSidelinkEUTRA1_r16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -106431,7 +106815,7 @@ dissect_nr_rrc_FeatureSetDownlinkPerCC_v1620(tvbuff_t *tvb _U_, int offset _U_,
}
-static const value_string nr_rrc_T_fr1_r17_05_vals[] = {
+static const value_string nr_rrc_T_fr1_r17_06_vals[] = {
{ 0, "mhz5" },
{ 1, "mhz10" },
{ 2, "mhz15" },
@@ -106452,7 +106836,7 @@ static const value_string nr_rrc_T_fr1_r17_05_vals[] = {
static int
-dissect_nr_rrc_T_fr1_r17_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_nr_rrc_T_fr1_r17_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
15, NULL, FALSE, 0, NULL);
@@ -106460,7 +106844,7 @@ dissect_nr_rrc_T_fr1_r17_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
}
-static const value_string nr_rrc_T_fr2_r17_05_vals[] = {
+static const value_string nr_rrc_T_fr2_r17_06_vals[] = {
{ 0, "mhz50" },
{ 1, "mhz100" },
{ 2, "mhz200" },
@@ -106473,7 +106857,7 @@ static const value_string nr_rrc_T_fr2_r17_05_vals[] = {
static int
-dissect_nr_rrc_T_fr2_r17_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_nr_rrc_T_fr2_r17_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
7, NULL, FALSE, 0, NULL);
@@ -106488,8 +106872,8 @@ static const value_string nr_rrc_SupportedBandwidth_v1700_vals[] = {
};
static const per_choice_t SupportedBandwidth_v1700_choice[] = {
- { 0, &hf_nr_rrc_fr1_r17_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr1_r17_05 },
- { 1, &hf_nr_rrc_fr2_r17_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr2_r17_05 },
+ { 0, &hf_nr_rrc_fr1_r17_06 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr1_r17_06 },
+ { 1, &hf_nr_rrc_fr2_r17_06 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr2_r17_06 },
{ 0, NULL, 0, NULL }
};
@@ -106788,6 +107172,20 @@ dissect_nr_rrc_FeatureSetDownlinkPerCC_v1730(tvbuff_t *tvb _U_, int offset _U_,
}
+static const per_sequence_t FeatureSetDownlinkPerCC_v1780_sequence[] = {
+ { &hf_nr_rrc_supportedBandwidthDL_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedBandwidth_v1700 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_FeatureSetDownlinkPerCC_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_FeatureSetDownlinkPerCC_v1780, FeatureSetDownlinkPerCC_v1780_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_sequence_of[1] = {
{ &hf_nr_rrc_featureSetsDownlink_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetDownlink },
};
@@ -109559,6 +109957,62 @@ dissect_nr_rrc_FeatureSets_eag_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
}
+static const per_sequence_t SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780_sequence_of[1] = {
+ { &hf_nr_rrc_featureSetsDownlinkPerCC_v1780_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetDownlinkPerCC_v1780 },
+};
+
+static int
+dissect_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780, SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780_sequence_of,
+ 1, maxPerCC_FeatureSets, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t FeatureSetUplinkPerCC_v1780_sequence[] = {
+ { &hf_nr_rrc_supportedBandwidthUL_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SupportedBandwidth_v1700 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_FeatureSetUplinkPerCC_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_FeatureSetUplinkPerCC_v1780, FeatureSetUplinkPerCC_v1780_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780_sequence_of[1] = {
+ { &hf_nr_rrc_featureSetsUplinkPerCC_v1780_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetUplinkPerCC_v1780 },
+};
+
+static int
+dissect_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780, SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780_sequence_of,
+ 1, maxPerCC_FeatureSets, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t FeatureSets_eag_9_sequence[] = {
+ { &hf_nr_rrc_featureSetsDownlinkPerCC_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780 },
+ { &hf_nr_rrc_featureSetsUplinkPerCC_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_FeatureSets_eag_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, FeatureSets_eag_9_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t FeatureSets_sequence[] = {
{ &hf_nr_rrc_featureSetsDownlink, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink },
{ &hf_nr_rrc_featureSetsDownlinkPerCC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC },
@@ -109572,6 +110026,7 @@ static const per_sequence_t FeatureSets_sequence[] = {
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSets_eag_6 },
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSets_eag_7 },
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSets_eag_8 },
+ { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSets_eag_9 },
{ NULL, 0, 0, NULL }
};
@@ -127688,8 +128143,8 @@ static const per_sequence_t T_srs_PosResourcesRRC_Inactive_r17_sequence[] = {
{ &hf_nr_rrc_maxNumberSRS_ResourcesPerBWP_PerSlot_r17, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberSRS_ResourcesPerBWP_PerSlot_r17 },
{ &hf_nr_rrc_maxNumberPeriodicSRS_PosResourcesPerBWP_r17, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberPeriodicSRS_PosResourcesPerBWP_r17 },
{ &hf_nr_rrc_maxNumberPeriodicSRS_PosResourcesPerBWP_PerSlot_r17, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberPeriodicSRS_PosResourcesPerBWP_PerSlot_r17 },
- { &hf_nr_rrc_dummy1_05 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dummy1_05 },
- { &hf_nr_rrc_dummy2_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dummy2_03 },
+ { &hf_nr_rrc_dummy1_06 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dummy1_05 },
+ { &hf_nr_rrc_dummy2_04 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dummy2_03 },
{ NULL, 0, 0, NULL }
};
@@ -129282,8 +129737,8 @@ dissect_nr_rrc_RF_Parameters_eag_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static const per_sequence_t RF_Parameters_eag_17_sequence[] = {
- { &hf_nr_rrc_supportedBandCombinationList_v1770, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_v1770 },
- { &hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1770, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770 },
+ { &hf_nr_rrc_dummy1_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_v1770 },
+ { &hf_nr_rrc_dummy2_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770 },
{ NULL, 0, 0, NULL }
};
@@ -129295,6 +129750,20 @@ dissect_nr_rrc_RF_Parameters_eag_17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
}
+static const per_sequence_t RF_Parameters_eag_18_sequence[] = {
+ { &hf_nr_rrc_supportedBandCombinationList_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_v1780 },
+ { &hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_RF_Parameters_eag_18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RF_Parameters_eag_18_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t RF_Parameters_sequence[] = {
{ &hf_nr_rrc_supportedBandListNR, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR },
{ &hf_nr_rrc_supportedBandCombinationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList },
@@ -129316,6 +129785,7 @@ static const per_sequence_t RF_Parameters_sequence[] = {
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_Parameters_eag_15 },
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_Parameters_eag_16 },
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_Parameters_eag_17 },
+ { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_Parameters_eag_18 },
{ NULL, 0, 0, NULL }
};
@@ -129673,8 +130143,8 @@ dissect_nr_rrc_RF_ParametersMRDC_eag_15(tvbuff_t *tvb _U_, int offset _U_, asn1_
static const per_sequence_t RF_ParametersMRDC_eag_16_sequence[] = {
- { &hf_nr_rrc_supportedBandCombinationList_v1770, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_v1770 },
- { &hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1770, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770 },
+ { &hf_nr_rrc_dummy1_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_v1770 },
+ { &hf_nr_rrc_dummy2_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770 },
{ NULL, 0, 0, NULL }
};
@@ -129686,6 +130156,21 @@ dissect_nr_rrc_RF_ParametersMRDC_eag_16(tvbuff_t *tvb _U_, int offset _U_, asn1_
}
+static const per_sequence_t RF_ParametersMRDC_eag_17_sequence[] = {
+ { &hf_nr_rrc_supportedBandCombinationList_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_v1780 },
+ { &hf_nr_rrc_supportedBandCombinationListNEDC_Only_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_v1780 },
+ { &hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1780, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_nr_rrc_RF_ParametersMRDC_eag_17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, RF_ParametersMRDC_eag_17_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t RF_ParametersMRDC_sequence[] = {
{ &hf_nr_rrc_supportedBandCombinationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList },
{ &hf_nr_rrc_appliedFreqBandListFilter, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandList },
@@ -129705,6 +130190,7 @@ static const per_sequence_t RF_ParametersMRDC_sequence[] = {
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_ParametersMRDC_eag_14 },
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_ParametersMRDC_eag_15 },
{ &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_ParametersMRDC_eag_16 },
+ { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_ParametersMRDC_eag_17 },
{ NULL, 0, 0, NULL }
};
@@ -149908,10 +150394,10 @@ proto_register_nr_rrc(void) {
{ "timeBetweenEvents-r17", "nr-rrc.timeBetweenEvents_r17",
FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0,
"TimeBetweenEvent_r17", HFILL }},
- { &hf_nr_rrc_firstTriggeredEvent,
- { "firstTriggeredEvent", "nr-rrc.firstTriggeredEvent",
- FT_UINT32, BASE_DEC, VALS(nr_rrc_T_firstTriggeredEvent_vals), 0,
- NULL, HFILL }},
+ { &hf_nr_rrc_firstTriggeredEvent_r17,
+ { "firstTriggeredEvent-r17", "nr-rrc.firstTriggeredEvent_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_T_firstTriggeredEvent_r17_vals), 0,
+ "T_firstTriggeredEvent_r17", HFILL }},
{ &hf_nr_rrc_MeasResultListEUTRA_item,
{ "MeasResultEUTRA", "nr-rrc.MeasResultEUTRA_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -154888,6 +155374,10 @@ proto_register_nr_rrc(void) {
{ "DRB-Identity", "nr-rrc.DRB_Identity",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_securityAlgorithmConfig_01,
+ { "securityAlgorithmConfig", "nr-rrc.securityAlgorithmConfig_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_keyToUse,
{ "keyToUse", "nr-rrc.keyToUse",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_keyToUse_vals), 0,
@@ -159160,6 +159650,10 @@ proto_register_nr_rrc(void) {
{ "BandCombination-v1770", "nr-rrc.BandCombination_v1770_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_BandCombinationList_v1780_item,
+ { "BandCombination-v1780", "nr-rrc.BandCombination_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_BandCombinationList_UplinkTxSwitch_r16_item,
{ "BandCombination-UplinkTxSwitch-r16", "nr-rrc.BandCombination_UplinkTxSwitch_r16_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -159216,6 +159710,10 @@ proto_register_nr_rrc(void) {
{ "BandCombination-UplinkTxSwitch-v1770", "nr-rrc.BandCombination_UplinkTxSwitch_v1770_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780_item,
+ { "BandCombination-UplinkTxSwitch-v1780", "nr-rrc.BandCombination_UplinkTxSwitch_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_bandList,
{ "bandList", "nr-rrc.bandList",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -159492,6 +159990,26 @@ proto_register_nr_rrc(void) {
{ "ca-ParametersNR-v1770", "nr-rrc.ca_ParametersNR_v1770_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_ca_ParametersNR_v1780,
+ { "ca-ParametersNR-v1780", "nr-rrc.ca_ParametersNR_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_ca_ParametersNRDC_v1780,
+ { "ca-ParametersNRDC-v1780", "nr-rrc.ca_ParametersNRDC_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_bandList_v1780,
+ { "bandList-v1780", "nr-rrc.bandList_v1780",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780", HFILL }},
+ { &hf_nr_rrc_bandList_v1780_item,
+ { "BandParameters-v1780", "nr-rrc.BandParameters_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_mrdc_Parameters_v1780,
+ { "mrdc-Parameters-v1780", "nr-rrc.mrdc_Parameters_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "MRDC_Parameters_v1770", HFILL }},
{ &hf_nr_rrc_bandCombination_r16,
{ "bandCombination-r16", "nr-rrc.bandCombination_r16_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -159612,6 +160130,10 @@ proto_register_nr_rrc(void) {
{ "bandCombination-v1770", "nr-rrc.bandCombination_v1770_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_bandCombination_v1780,
+ { "bandCombination-v1780", "nr-rrc.bandCombination_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_bandIndexUL1_r16,
{ "bandIndexUL1-r16", "nr-rrc.bandIndexUL1_r16",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -159756,6 +160278,18 @@ proto_register_nr_rrc(void) {
{ "ca-BandwidthClassUL-NR-r17", "nr-rrc.ca_BandwidthClassUL_NR_r17",
FT_UINT32, BASE_DEC, VALS(nr_rrc_CA_BandwidthClassNR_r17_vals), 0,
"CA_BandwidthClassNR_r17", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_FR2_r17,
+ { "supportedAggBW-FR2-r17", "nr-rrc.supportedAggBW_FR2_r17_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_supportedAggBW_DL_r17,
+ { "supportedAggBW-DL-r17", "nr-rrc.supportedAggBW_DL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_UL_r17,
+ { "supportedAggBW-UL-r17", "nr-rrc.supportedAggBW_UL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
{ &hf_nr_rrc_BandCombinationListSidelinkEUTRA_NR_r16_item,
{ "BandCombinationParametersSidelinkEUTRA-NR-r16", "nr-rrc.BandCombinationParametersSidelinkEUTRA_NR_r16",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -160608,6 +161142,42 @@ proto_register_nr_rrc(void) {
{ "parallelTxPUCCH-PUSCH-SamePriority-r17", "nr-rrc.parallelTxPUCCH_PUSCH_SamePriority_r17",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_parallelTxPUCCH_PUSCH_SamePriority_r17_vals), 0,
NULL, HFILL }},
+ { &hf_nr_rrc_parallelTxPUCCH_PUSCH_SamePriority_r17_01,
+ { "parallelTxPUCCH-PUSCH-SamePriority-r17", "nr-rrc.parallelTxPUCCH_PUSCH_SamePriority_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_T_parallelTxPUCCH_PUSCH_SamePriority_r17_01_vals), 0,
+ "T_parallelTxPUCCH_PUSCH_SamePriority_r17_01", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_FR1_r17,
+ { "supportedAggBW-FR1-r17", "nr-rrc.supportedAggBW_FR1_r17_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_scalingFactorSCS_r17,
+ { "scalingFactorSCS-r17", "nr-rrc.scalingFactorSCS_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scalingFactorSCS_r17_vals), 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_supportedAggBW_FDD_DL_r17,
+ { "supportedAggBW-FDD-DL-r17", "nr-rrc.supportedAggBW_FDD_DL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_FDD_UL_r17,
+ { "supportedAggBW-FDD-UL-r17", "nr-rrc.supportedAggBW_FDD_UL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_TDD_DL_r17,
+ { "supportedAggBW-TDD-DL-r17", "nr-rrc.supportedAggBW_TDD_DL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_TDD_UL_r17,
+ { "supportedAggBW-TDD-UL-r17", "nr-rrc.supportedAggBW_TDD_UL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_TotalDL_r17,
+ { "supportedAggBW-TotalDL-r17", "nr-rrc.supportedAggBW_TotalDL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
+ { &hf_nr_rrc_supportedAggBW_TotalUL_r17,
+ { "supportedAggBW-TotalUL-r17", "nr-rrc.supportedAggBW_TotalUL_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedAggBandwidth_r17_vals), 0,
+ "SupportedAggBandwidth_r17", HFILL }},
{ &hf_nr_rrc_supportedSCS_Combinations_r17,
{ "supportedSCS-Combinations-r17", "nr-rrc.supportedSCS_Combinations_r17_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -160880,6 +161450,10 @@ proto_register_nr_rrc(void) {
{ "ca-ParametersNR-ForDC-v1760", "nr-rrc.ca_ParametersNR_ForDC_v1760_element",
FT_NONE, BASE_NONE, NULL, 0,
"CA_ParametersNR_v1760", HFILL }},
+ { &hf_nr_rrc_ca_ParametersNR_ForDC_v1780,
+ { "ca-ParametersNR-ForDC-v1780", "nr-rrc.ca_ParametersNR_ForDC_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CA_ParametersNR_v1780", HFILL }},
{ &hf_nr_rrc_fr1fdd_FR1TDD_CA_SpCellOnFR1FDD,
{ "fr1fdd-FR1TDD-CA-SpCellOnFR1FDD", "nr-rrc.fr1fdd_FR1TDD_CA_SpCellOnFR1FDD",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1fdd_FR1TDD_CA_SpCellOnFR1FDD_vals), 0,
@@ -162564,6 +163138,10 @@ proto_register_nr_rrc(void) {
{ "dci-BroadcastWith16Repetitions-r17", "nr-rrc.dci_BroadcastWith16Repetitions_r17",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dci_BroadcastWith16Repetitions_r17_vals), 0,
NULL, HFILL }},
+ { &hf_nr_rrc_supportedBandwidthDL_v1780,
+ { "supportedBandwidthDL-v1780", "nr-rrc.supportedBandwidthDL_v1780",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedBandwidth_v1700_vals), 0,
+ "SupportedBandwidth_v1700", HFILL }},
{ &hf_nr_rrc_maxNumberCORESET_r16,
{ "maxNumberCORESET-r16", "nr-rrc.maxNumberCORESET_r16",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberCORESET_r16_vals), 0,
@@ -162772,6 +163350,22 @@ proto_register_nr_rrc(void) {
{ "FeatureSetDownlinkPerCC-v1730", "nr-rrc.FeatureSetDownlinkPerCC_v1730_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_nr_rrc_featureSetsDownlinkPerCC_v1780,
+ { "featureSetsDownlinkPerCC-v1780", "nr-rrc.featureSetsDownlinkPerCC_v1780",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780", HFILL }},
+ { &hf_nr_rrc_featureSetsDownlinkPerCC_v1780_item,
+ { "FeatureSetDownlinkPerCC-v1780", "nr-rrc.FeatureSetDownlinkPerCC_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_nr_rrc_featureSetsUplinkPerCC_v1780,
+ { "featureSetsUplinkPerCC-v1780", "nr-rrc.featureSetsUplinkPerCC_v1780",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780", HFILL }},
+ { &hf_nr_rrc_featureSetsUplinkPerCC_v1780_item,
+ { "FeatureSetUplinkPerCC-v1780", "nr-rrc.FeatureSetUplinkPerCC_v1780_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_nr_rrc_featureSetsUplink_v16d0,
{ "featureSetsUplink-v16d0", "nr-rrc.featureSetsUplink_v16d0",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -163408,6 +164002,10 @@ proto_register_nr_rrc(void) {
{ "supportedBandwidthUL-v1710", "nr-rrc.supportedBandwidthUL_v1710",
FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedBandwidth_v1700_vals), 0,
"SupportedBandwidth_v1700", HFILL }},
+ { &hf_nr_rrc_supportedBandwidthUL_v1780,
+ { "supportedBandwidthUL-v1780", "nr-rrc.supportedBandwidthUL_v1780",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_SupportedBandwidth_v1700_vals), 0,
+ "SupportedBandwidth_v1700", HFILL }},
{ &hf_nr_rrc_FreqBandList_item,
{ "FreqBandInformation", "nr-rrc.FreqBandInformation",
FT_UINT32, BASE_DEC, VALS(nr_rrc_FreqBandInformation_vals), 0,
@@ -167316,14 +167914,22 @@ proto_register_nr_rrc(void) {
{ "supportedBandCombinationList-UplinkTxSwitch-v1760", "nr-rrc.supportedBandCombinationList_UplinkTxSwitch_v1760",
FT_UINT32, BASE_DEC, NULL, 0,
"BandCombinationList_UplinkTxSwitch_v1760", HFILL }},
- { &hf_nr_rrc_supportedBandCombinationList_v1770,
- { "supportedBandCombinationList-v1770", "nr-rrc.supportedBandCombinationList_v1770",
+ { &hf_nr_rrc_dummy1_05,
+ { "dummy1", "nr-rrc.dummy1",
FT_UINT32, BASE_DEC, NULL, 0,
"BandCombinationList_v1770", HFILL }},
- { &hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1770,
- { "supportedBandCombinationList-UplinkTxSwitch-v1770", "nr-rrc.supportedBandCombinationList_UplinkTxSwitch_v1770",
+ { &hf_nr_rrc_dummy2_03,
+ { "dummy2", "nr-rrc.dummy2",
FT_UINT32, BASE_DEC, NULL, 0,
"BandCombinationList_UplinkTxSwitch_v1770", HFILL }},
+ { &hf_nr_rrc_supportedBandCombinationList_v1780,
+ { "supportedBandCombinationList-v1780", "nr-rrc.supportedBandCombinationList_v1780",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "BandCombinationList_v1780", HFILL }},
+ { &hf_nr_rrc_supportedBandCombinationList_UplinkTxSwitch_v1780,
+ { "supportedBandCombinationList-UplinkTxSwitch-v1780", "nr-rrc.supportedBandCombinationList_UplinkTxSwitch_v1780",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "BandCombinationList_UplinkTxSwitch_v1780", HFILL }},
{ &hf_nr_rrc_supportedBandCombinationList_v15g0,
{ "supportedBandCombinationList-v15g0", "nr-rrc.supportedBandCombinationList_v15g0",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -168264,6 +168870,10 @@ proto_register_nr_rrc(void) {
{ "supportedBandCombinationListNEDC-Only-v1740", "nr-rrc.supportedBandCombinationListNEDC_Only_v1740",
FT_UINT32, BASE_DEC, NULL, 0,
"BandCombinationList_v1740", HFILL }},
+ { &hf_nr_rrc_supportedBandCombinationListNEDC_Only_v1780,
+ { "supportedBandCombinationListNEDC-Only-v1780", "nr-rrc.supportedBandCombinationListNEDC_Only_v1780",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "BandCombinationList_v1780", HFILL }},
{ &hf_nr_rrc_supportedBandCombinationListNEDC_Only_v15g0,
{ "supportedBandCombinationListNEDC-Only-v15g0", "nr-rrc.supportedBandCombinationListNEDC_Only_v15g0",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -168764,11 +169374,11 @@ proto_register_nr_rrc(void) {
{ "maxNumberPeriodicSRS-PosResourcesPerBWP-PerSlot-r17", "nr-rrc.maxNumberPeriodicSRS_PosResourcesPerBWP_PerSlot_r17",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberPeriodicSRS_PosResourcesPerBWP_PerSlot_r17_vals), 0,
"T_maxNumberPeriodicSRS_PosResourcesPerBWP_PerSlot_r17", HFILL }},
- { &hf_nr_rrc_dummy1_05,
+ { &hf_nr_rrc_dummy1_06,
{ "dummy1", "nr-rrc.dummy1",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dummy1_05_vals), 0,
"T_dummy1_05", HFILL }},
- { &hf_nr_rrc_dummy2_03,
+ { &hf_nr_rrc_dummy2_04,
{ "dummy2", "nr-rrc.dummy2",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dummy2_03_vals), 0,
"T_dummy2_03", HFILL }},
@@ -168788,6 +169398,14 @@ proto_register_nr_rrc(void) {
{ "switchingTimeUL", "nr-rrc.switchingTimeUL",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_switchingTimeUL_01_vals), 0,
"T_switchingTimeUL_01", HFILL }},
+ { &hf_nr_rrc_fr1_r17_05,
+ { "fr1-r17", "nr-rrc.fr1_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_r17_05_vals), 0,
+ "T_fr1_r17_05", HFILL }},
+ { &hf_nr_rrc_fr2_r17_05,
+ { "fr2-r17", "nr-rrc.fr2_r17",
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_r17_05_vals), 0,
+ "T_fr2_r17_05", HFILL }},
{ &hf_nr_rrc_fr1_04,
{ "fr1", "nr-rrc.fr1",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_04_vals), 0,
@@ -168796,14 +169414,14 @@ proto_register_nr_rrc(void) {
{ "fr2", "nr-rrc.fr2",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_04_vals), 0,
"T_fr2_04", HFILL }},
- { &hf_nr_rrc_fr1_r17_05,
+ { &hf_nr_rrc_fr1_r17_06,
{ "fr1-r17", "nr-rrc.fr1_r17",
- FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_r17_05_vals), 0,
- "T_fr1_r17_05", HFILL }},
- { &hf_nr_rrc_fr2_r17_05,
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_r17_06_vals), 0,
+ "T_fr1_r17_06", HFILL }},
+ { &hf_nr_rrc_fr2_r17_06,
{ "fr2-r17", "nr-rrc.fr2_r17",
- FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_r17_05_vals), 0,
- "T_fr2_r17_05", HFILL }},
+ FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_r17_06_vals), 0,
+ "T_fr2_r17_06", HFILL }},
{ &hf_nr_rrc_barometerMeasReport_r16,
{ "barometerMeasReport-r16", "nr-rrc.barometerMeasReport_r16",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_barometerMeasReport_r16_vals), 0,
@@ -172192,10 +172810,6 @@ proto_register_nr_rrc(void) {
{ "sl-SyncRefDiffHyst-r16", "nr-rrc.sl_SyncRefDiffHyst_r16",
FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sl_SyncRefDiffHyst_r16_vals), 0,
"T_sl_SyncRefDiffHyst_r16", HFILL }},
- { &hf_nr_rrc_sl_filterCoefficient_r16,
- { "sl-filterCoefficient-r16", "nr-rrc.sl_filterCoefficient_r16",
- FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0,
- "FilterCoefficient", HFILL }},
{ &hf_nr_rrc_sl_SSB_TimeAllocation1_r16,
{ "sl-SSB-TimeAllocation1-r16", "nr-rrc.sl_SSB_TimeAllocation1_r16_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -175697,6 +176311,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_BandCombinationList_v1740,
&ett_nr_rrc_BandCombinationList_v1760,
&ett_nr_rrc_BandCombinationList_v1770,
+ &ett_nr_rrc_BandCombinationList_v1780,
&ett_nr_rrc_BandCombinationList_UplinkTxSwitch_r16,
&ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1630,
&ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1640,
@@ -175711,6 +176326,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1740,
&ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1760,
&ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1770,
+ &ett_nr_rrc_BandCombinationList_UplinkTxSwitch_v1780,
&ett_nr_rrc_BandCombination,
&ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters,
&ett_nr_rrc_BandCombination_v1540,
@@ -175741,6 +176357,8 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_BandCombination_v1760,
&ett_nr_rrc_BandCombination_v1770,
&ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1770,
+ &ett_nr_rrc_BandCombination_v1780,
+ &ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters_v1780,
&ett_nr_rrc_BandCombination_UplinkTxSwitch_r16,
&ett_nr_rrc_SEQUENCE_SIZE_1_maxULTxSwitchingBandPairs_OF_ULTxSwitchingBandPair_r16,
&ett_nr_rrc_BandCombination_UplinkTxSwitch_v1630,
@@ -175758,6 +176376,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_BandCombination_UplinkTxSwitch_v1740,
&ett_nr_rrc_BandCombination_UplinkTxSwitch_v1760,
&ett_nr_rrc_BandCombination_UplinkTxSwitch_v1770,
+ &ett_nr_rrc_BandCombination_UplinkTxSwitch_v1780,
&ett_nr_rrc_ULTxSwitchingBandPair_r16,
&ett_nr_rrc_ULTxSwitchingBandPair_v1700,
&ett_nr_rrc_UplinkTxSwitchingBandParameters_v1700,
@@ -175778,6 +176397,8 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_BandParameters_v1730,
&ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_SRS_SwitchingAffectedBandsNR_r17,
&ett_nr_rrc_BandParameters_v1770,
+ &ett_nr_rrc_BandParameters_v1780,
+ &ett_nr_rrc_T_supportedAggBW_FR2_r17,
&ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_r16,
&ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1630,
&ett_nr_rrc_BandCombinationListSidelinkEUTRA_NR_v1710,
@@ -175843,6 +176464,8 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_CA_ParametersNR_v1740,
&ett_nr_rrc_CA_ParametersNR_v1760,
&ett_nr_rrc_CA_ParametersNR_v1770,
+ &ett_nr_rrc_CA_ParametersNR_v1780,
+ &ett_nr_rrc_T_supportedAggBW_FR1_r17,
&ett_nr_rrc_CrossCarrierSchedulingSCell_SpCell_r17,
&ett_nr_rrc_T_supportedSCS_Combinations_r17,
&ett_nr_rrc_PDCCH_BlindDetectionMixedList_r16,
@@ -175877,6 +176500,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_CA_ParametersNRDC_v1720,
&ett_nr_rrc_CA_ParametersNRDC_v1730,
&ett_nr_rrc_CA_ParametersNRDC_v1760,
+ &ett_nr_rrc_CA_ParametersNRDC_v1780,
&ett_nr_rrc_CarrierAggregationVariant,
&ett_nr_rrc_CodebookParameters,
&ett_nr_rrc_T_type1_04,
@@ -176100,6 +176724,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_FeatureSetDownlinkPerCC_v1700,
&ett_nr_rrc_FeatureSetDownlinkPerCC_v1720,
&ett_nr_rrc_FeatureSetDownlinkPerCC_v1730,
+ &ett_nr_rrc_FeatureSetDownlinkPerCC_v1780,
&ett_nr_rrc_MultiDCI_MultiTRP_r16,
&ett_nr_rrc_CRS_InterfMitigation_r17,
&ett_nr_rrc_FeatureSets,
@@ -176125,6 +176750,8 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v1720,
&ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_v1730,
&ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1730,
+ &ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_v1780,
+ &ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_v1780,
&ett_nr_rrc_FeatureSets_v16d0,
&ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_v16d0,
&ett_nr_rrc_FeatureSetUplink,
@@ -176162,6 +176789,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_FeatureSetUplinkPerCC_v1540,
&ett_nr_rrc_T_mimo_NonCB_PUSCH,
&ett_nr_rrc_FeatureSetUplinkPerCC_v1700,
+ &ett_nr_rrc_FeatureSetUplinkPerCC_v1780,
&ett_nr_rrc_FreqBandList,
&ett_nr_rrc_FreqBandInformation,
&ett_nr_rrc_FreqBandInformationEUTRA,
@@ -176413,6 +177041,7 @@ proto_register_nr_rrc(void) {
&ett_nr_rrc_T_srs_PosResourcesRRC_Inactive_r17,
&ett_nr_rrc_SRS_SwitchingTimeNR,
&ett_nr_rrc_SRS_SwitchingTimeEUTRA,
+ &ett_nr_rrc_SupportedAggBandwidth_r17,
&ett_nr_rrc_SupportedBandwidth,
&ett_nr_rrc_SupportedBandwidth_v1700,
&ett_nr_rrc_UE_BasedPerfMeas_Parameters_r16,
@@ -176967,7 +177596,7 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.measgapconfig_msg", dissect_nr_rrc_measgapconfig_msg, proto_nr_rrc);
register_dissector("nr-rrc.handoverpreparationinformation_msg", dissect_nr_rrc_handoverpreparationinformation_msg, proto_nr_rrc);
register_dissector("nr-rrc.handovercommand_msg", dissect_nr_rrc_handovercommand_msg, proto_nr_rrc);
-
+ /*#include "packet-nr-rrc-dis-reg.c" */
register_dissector("nr-rrc.ue_radio_paging_info", dissect_nr_rrc_UERadioPagingInformation_PDU, proto_nr_rrc);
register_dissector("nr-rrc.ue_radio_access_cap_info", dissect_UERadioAccessCapabilityInformation_PDU, proto_nr_rrc);
register_dissector("nr-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_nr_rrc);
@@ -176981,6 +177610,27 @@ proto_register_nr_rrc(void) {
register_dissector("nr-rrc.ul.dcch", dissect_nr_rrc_UL_DCCH_Message_PDU, proto_nr_rrc);
register_dissector("nr-rrc.rrc_reconf", dissect_nr_rrc_RRCReconfiguration_PDU, proto_nr_rrc);
register_dissector("nr-rrc.rrc_reconf_compl", dissect_nr_rrc_RRCReconfigurationComplete_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib1", dissect_nr_rrc_SIB1_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib2", dissect_nr_rrc_SIB2_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib3", dissect_nr_rrc_SIB3_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib4", dissect_nr_rrc_SIB4_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib5", dissect_nr_rrc_SIB5_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib6", dissect_nr_rrc_SIB6_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib7", dissect_nr_rrc_SIB7_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib8", dissect_nr_rrc_SIB8_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib9", dissect_nr_rrc_SIB9_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib10", dissect_nr_rrc_SIB10_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib11", dissect_nr_rrc_SIB11_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib12", dissect_nr_rrc_SIB12_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib13", dissect_nr_rrc_SIB13_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib14", dissect_nr_rrc_SIB14_r16_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib15", dissect_nr_rrc_SIB15_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib16", dissect_nr_rrc_SIB16_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib17", dissect_nr_rrc_SIB17_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib18", dissect_nr_rrc_SIB18_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib21", dissect_nr_rrc_SIB19_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib22", dissect_nr_rrc_SIB20_r17_PDU, proto_nr_rrc);
+ register_dissector("nr-rrc.sib23", dissect_nr_rrc_SIB21_r17_PDU, proto_nr_rrc);
register_dissector("nr-rrc.ue_mrdc_cap", dissect_nr_rrc_UE_MRDC_Capability_PDU, proto_nr_rrc);
register_dissector("nr-rrc.ue_nr_cap", dissect_nr_rrc_UE_NR_Capability_PDU, proto_nr_rrc);
register_dissector("nr-rrc.sbcch.sl.bch", dissect_SBCCH_SL_BCH_Message_PDU, proto_nr_rrc);
diff --git a/epan/dissectors/packet-nrppa.c b/epan/dissectors/packet-nrppa.c
index c9174849b4..a77ede9493 100644
--- a/epan/dissectors/packet-nrppa.c
+++ b/epan/dissectors/packet-nrppa.c
@@ -775,341 +775,341 @@ static int hf_nrppa_sRSResourceTrigger_01; /* SRSResourceTrigger */
/* Initialize the subtree pointers */
static gint ett_nrppa;
-static gint ett_nrppa_PrivateIE_ID;
-static gint ett_nrppa_ProtocolIE_Container;
-static gint ett_nrppa_ProtocolIE_Field;
-static gint ett_nrppa_ProtocolExtensionContainer;
-static gint ett_nrppa_ProtocolExtensionField;
-static gint ett_nrppa_PrivateIE_Container;
-static gint ett_nrppa_PrivateIE_Field;
-static gint ett_nrppa_NRPPA_PDU;
-static gint ett_nrppa_InitiatingMessage;
-static gint ett_nrppa_SuccessfulOutcome;
-static gint ett_nrppa_UnsuccessfulOutcome;
-static gint ett_nrppa_AbortTransmission;
-static gint ett_nrppa_ActiveULBWP;
-static gint ett_nrppa_AdditionalPathList;
-static gint ett_nrppa_AdditionalPathListItem;
-static gint ett_nrppa_ExtendedAdditionalPathList;
-static gint ett_nrppa_ExtendedAdditionalPathList_Item;
-static gint ett_nrppa_AoA_AssistanceInfo;
-static gint ett_nrppa_AperiodicSRSResourceTriggerList;
-static gint ett_nrppa_AngleMeasurementType;
-static gint ett_nrppa_Expected_UL_AoA;
-static gint ett_nrppa_Expected_ZoA_only;
-static gint ett_nrppa_Expected_Azimuth_AoA;
-static gint ett_nrppa_Expected_Zenith_AoA;
-static gint ett_nrppa_ARPLocationInformation;
-static gint ett_nrppa_ARPLocationInformation_Item;
-static gint ett_nrppa_ARPLocationType;
-static gint ett_nrppa_Assistance_Information;
-static gint ett_nrppa_AssistanceInformationFailureList;
-static gint ett_nrppa_AssistanceInformationFailureList_item;
-static gint ett_nrppa_AssistanceInformationMetaData;
-static gint ett_nrppa_BandwidthSRS;
-static gint ett_nrppa_PositioningBroadcastCells;
-static gint ett_nrppa_CarrierFreq;
-static gint ett_nrppa_Cause;
-static gint ett_nrppa_CGI_EUTRA;
-static gint ett_nrppa_CGI_NR;
-static gint ett_nrppa_CriticalityDiagnostics;
-static gint ett_nrppa_CriticalityDiagnostics_IE_List;
-static gint ett_nrppa_CriticalityDiagnostics_IE_List_item;
-static gint ett_nrppa_DL_PRS;
-static gint ett_nrppa_DL_PRSMutingPattern;
-static gint ett_nrppa_DLPRSResourceCoordinates;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourceSets_OF_DLPRSResourceSetARP;
-static gint ett_nrppa_DLPRSResourceSetARP;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourcesPerSet_OF_DLPRSResourceARP;
-static gint ett_nrppa_DL_PRSResourceSetARPLocation;
-static gint ett_nrppa_DLPRSResourceARP;
-static gint ett_nrppa_DL_PRSResourceARPLocation;
-static gint ett_nrppa_E_CID_MeasurementResult;
-static gint ett_nrppa_GeographicalCoordinates;
-static gint ett_nrppa_GNB_RxTxTimeDiff;
-static gint ett_nrppa_GNBRxTxTimeDiffMeas;
-static gint ett_nrppa_LCS_to_GCS_Translation;
-static gint ett_nrppa_LCS_to_GCS_TranslationItem;
-static gint ett_nrppa_LocationUncertainty;
-static gint ett_nrppa_LoS_NLoSInformation;
-static gint ett_nrppa_MeasurementBeamInfo;
-static gint ett_nrppa_MeasurementQuantities;
-static gint ett_nrppa_MeasurementQuantities_Item;
-static gint ett_nrppa_MeasuredResults;
-static gint ett_nrppa_MeasuredResultsValue;
-static gint ett_nrppa_MultipleULAoA;
-static gint ett_nrppa_MultipleULAoA_List;
-static gint ett_nrppa_MultipleULAoA_Item;
-static gint ett_nrppa_NG_RANAccessPointPosition;
-static gint ett_nrppa_NGRANHighAccuracyAccessPointPosition;
-static gint ett_nrppa_NG_RAN_CGI;
-static gint ett_nrppa_NG_RANCell;
-static gint ett_nrppa_NR_PRS_Beam_Information;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourceSets_OF_NR_PRS_Beam_InformationItem;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxnolcs_gcs_translation_OF_LCS_to_GCS_TranslationItem;
-static gint ett_nrppa_NR_PRS_Beam_InformationItem;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourcesPerSet_OF_PRSAngleItem;
-static gint ett_nrppa_OnDemandPRS_Info;
-static gint ett_nrppa_OTDOACells;
-static gint ett_nrppa_OTDOACells_item;
-static gint ett_nrppa_OTDOACell_Information;
-static gint ett_nrppa_OTDOACell_Information_Item;
-static gint ett_nrppa_OtherRATMeasurementQuantities;
-static gint ett_nrppa_OtherRATMeasurementQuantities_Item;
-static gint ett_nrppa_OtherRATMeasurementResult;
-static gint ett_nrppa_OtherRATMeasuredResultsValue;
-static gint ett_nrppa_PathlossReferenceInformation;
-static gint ett_nrppa_PathlossReferenceSignal;
-static gint ett_nrppa_PeriodicityList;
-static gint ett_nrppa_PosSIBs;
-static gint ett_nrppa_PosSIBs_item;
-static gint ett_nrppa_PosSIB_Segments;
-static gint ett_nrppa_PosSIB_Segments_item;
-static gint ett_nrppa_PosSRSResource_List;
-static gint ett_nrppa_PosSRSResource_Item;
-static gint ett_nrppa_PosSRSResourceID_List;
-static gint ett_nrppa_PosSRSResourceSet_List;
-static gint ett_nrppa_PosSRSResourceIDPerSet_List;
-static gint ett_nrppa_PosSRSResourceSet_Item;
-static gint ett_nrppa_PosResourceSetType;
-static gint ett_nrppa_PosResourceSetTypePeriodic;
-static gint ett_nrppa_PosResourceSetTypeSemi_persistent;
-static gint ett_nrppa_PosResourceSetTypeAperiodic;
-static gint ett_nrppa_PRSAngleItem;
-static gint ett_nrppa_PRSInformationPos;
-static gint ett_nrppa_PRSConfiguration;
-static gint ett_nrppa_PRSMutingConfiguration_EUTRA;
-static gint ett_nrppa_PRSFrequencyHoppingConfiguration_EUTRA;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex;
-static gint ett_nrppa_PRS_Measurements_Info_List;
-static gint ett_nrppa_PRS_Measurements_Info_List_Item;
-static gint ett_nrppa_PRSMuting;
-static gint ett_nrppa_PRSMutingOption1;
-static gint ett_nrppa_PRSMutingOption2;
-static gint ett_nrppa_PRSResource_List;
-static gint ett_nrppa_PRSResource_Item;
-static gint ett_nrppa_PRSResource_QCLInfo;
-static gint ett_nrppa_PRSResource_QCLSourceSSB;
-static gint ett_nrppa_PRSResource_QCLSourcePRS;
-static gint ett_nrppa_PRSResourceSet_List;
-static gint ett_nrppa_PRSResourceSet_Item;
-static gint ett_nrppa_PRSTransmissionOffIndication;
-static gint ett_nrppa_PRSTransmissionOffPerResource;
-static gint ett_nrppa_PRSTransmissionOffPerResource_Item;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxnoofPRSresource_OF_PRSTransmissionOffIndicationPerResource_Item;
-static gint ett_nrppa_PRSTransmissionOffIndicationPerResource_Item;
-static gint ett_nrppa_PRSTransmissionOffInformation;
-static gint ett_nrppa_PRSTransmissionOffPerResourceSet;
-static gint ett_nrppa_PRSTransmissionOffPerResourceSet_Item;
-static gint ett_nrppa_PRSTRPList;
-static gint ett_nrppa_PRSTRPItem;
-static gint ett_nrppa_PRSTransmissionTRPList;
-static gint ett_nrppa_PRSTransmissionTRPItem;
-static gint ett_nrppa_ReferenceSignal;
-static gint ett_nrppa_ReferencePoint;
-static gint ett_nrppa_RelativeGeodeticLocation;
-static gint ett_nrppa_RelativeCartesianLocation;
-static gint ett_nrppa_RelativePathDelay;
-static gint ett_nrppa_RequestedDLPRSTransmissionCharacteristics;
-static gint ett_nrppa_RequestedDLPRSResourceSet_List;
-static gint ett_nrppa_RequestedDLPRSResourceSet_Item;
-static gint ett_nrppa_RequestedDLPRSResource_List;
-static gint ett_nrppa_RequestedDLPRSResource_Item;
-static gint ett_nrppa_RequestedSRSTransmissionCharacteristics;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxnoSRS_ResourceSets_OF_SRSResourceSet_Item;
-static gint ett_nrppa_SRSResourceSet_Item;
-static gint ett_nrppa_ResourceSetType;
-static gint ett_nrppa_ResourceSetTypePeriodic;
-static gint ett_nrppa_ResourceSetTypeSemi_persistent;
-static gint ett_nrppa_ResourceSetTypeAperiodic;
-static gint ett_nrppa_ResourceType;
-static gint ett_nrppa_ResourceTypePeriodic;
-static gint ett_nrppa_ResourceTypeSemi_persistent;
-static gint ett_nrppa_ResourceTypeAperiodic;
-static gint ett_nrppa_ResourceTypePos;
-static gint ett_nrppa_ResourceTypePeriodicPos;
-static gint ett_nrppa_ResourceTypeSemi_persistentPos;
-static gint ett_nrppa_ResourceTypeAperiodicPos;
-static gint ett_nrppa_ResponseTime;
-static gint ett_nrppa_ResultCSI_RSRP;
-static gint ett_nrppa_ResultCSI_RSRP_Item;
-static gint ett_nrppa_ResultCSI_RSRP_PerCSI_RS;
-static gint ett_nrppa_ResultCSI_RSRP_PerCSI_RS_Item;
-static gint ett_nrppa_ResultCSI_RSRQ;
-static gint ett_nrppa_ResultCSI_RSRQ_Item;
-static gint ett_nrppa_ResultCSI_RSRQ_PerCSI_RS;
-static gint ett_nrppa_ResultCSI_RSRQ_PerCSI_RS_Item;
-static gint ett_nrppa_ResultEUTRA;
-static gint ett_nrppa_ResultEUTRA_Item;
-static gint ett_nrppa_ResultRSRP_EUTRA;
-static gint ett_nrppa_ResultRSRP_EUTRA_Item;
-static gint ett_nrppa_ResultRSRQ_EUTRA;
-static gint ett_nrppa_ResultRSRQ_EUTRA_Item;
-static gint ett_nrppa_ResultSS_RSRP;
-static gint ett_nrppa_ResultSS_RSRP_Item;
-static gint ett_nrppa_ResultSS_RSRP_PerSSB;
-static gint ett_nrppa_ResultSS_RSRP_PerSSB_Item;
-static gint ett_nrppa_ResultSS_RSRQ;
-static gint ett_nrppa_ResultSS_RSRQ_Item;
-static gint ett_nrppa_ResultSS_RSRQ_PerSSB;
-static gint ett_nrppa_ResultSS_RSRQ_PerSSB_Item;
-static gint ett_nrppa_ResultGERAN;
-static gint ett_nrppa_ResultGERAN_Item;
-static gint ett_nrppa_ResultNR;
-static gint ett_nrppa_ResultNR_Item;
-static gint ett_nrppa_ResultUTRAN;
-static gint ett_nrppa_ResultUTRAN_Item;
-static gint ett_nrppa_T_physCellIDUTRAN;
-static gint ett_nrppa_SCS_SpecificCarrier;
-static gint ett_nrppa_Search_window_information;
-static gint ett_nrppa_SpatialDirectionInformation;
-static gint ett_nrppa_SpatialRelationInfo;
-static gint ett_nrppa_SpatialRelationforResourceID;
-static gint ett_nrppa_SpatialRelationforResourceIDItem;
-static gint ett_nrppa_SpatialRelationPerSRSResource;
-static gint ett_nrppa_SpatialRelationPerSRSResource_List;
-static gint ett_nrppa_SpatialRelationPerSRSResourceItem;
-static gint ett_nrppa_SpatialRelationPos;
-static gint ett_nrppa_SRSConfig;
-static gint ett_nrppa_SRSCarrier_List;
-static gint ett_nrppa_SRSCarrier_List_Item;
-static gint ett_nrppa_SRSConfiguration;
-static gint ett_nrppa_SRSResource;
-static gint ett_nrppa_SRSResource_List;
-static gint ett_nrppa_SRSResourceSet_List;
-static gint ett_nrppa_SRSResourceID_List;
-static gint ett_nrppa_SRSResourceSet;
-static gint ett_nrppa_SRSResourceTrigger;
-static gint ett_nrppa_SRSResourcetype;
-static gint ett_nrppa_SRSResourceTypeChoice;
-static gint ett_nrppa_SRSInfo;
-static gint ett_nrppa_PosSRSInfo;
-static gint ett_nrppa_SSBInfo;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxNoSSBs_OF_SSBInfoItem;
-static gint ett_nrppa_SSBInfoItem;
-static gint ett_nrppa_SSB;
-static gint ett_nrppa_SSBBurstPosition;
-static gint ett_nrppa_StartRBIndex;
-static gint ett_nrppa_StartTimeAndDuration;
-static gint ett_nrppa_SystemInformation;
-static gint ett_nrppa_SystemInformation_item;
-static gint ett_nrppa_TDD_Config_EUTRA_Item;
-static gint ett_nrppa_TRPTEGInformation;
-static gint ett_nrppa_RxTxTEG;
-static gint ett_nrppa_RxTEG;
-static gint ett_nrppa_TF_Configuration;
-static gint ett_nrppa_TimeStamp;
-static gint ett_nrppa_TimeStampSlotIndex;
-static gint ett_nrppa_TransmissionComb;
-static gint ett_nrppa_T_n2;
-static gint ett_nrppa_T_n4;
-static gint ett_nrppa_TransmissionCombn8;
-static gint ett_nrppa_TransmissionCombPos;
-static gint ett_nrppa_T_n2_01;
-static gint ett_nrppa_T_n4_01;
-static gint ett_nrppa_T_n8;
-static gint ett_nrppa_TRPBeamAntennaInformation;
-static gint ett_nrppa_Choice_TRP_Beam_Antenna_Info_Item;
-static gint ett_nrppa_TRP_BeamAntennaExplicitInformation;
-static gint ett_nrppa_TRP_BeamAntennaAngles;
-static gint ett_nrppa_TRP_BeamAntennaAnglesList_Item;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxnoElevationAngles_OF_TRP_ElevationAngleList_Item;
-static gint ett_nrppa_TRP_ElevationAngleList_Item;
-static gint ett_nrppa_SEQUENCE_SIZE_2_maxNumResourcesPerAngle_OF_TRP_Beam_Power_Item;
-static gint ett_nrppa_TRP_Beam_Power_Item;
-static gint ett_nrppa_TRPMeasurementQuantities;
-static gint ett_nrppa_TRPMeasurementQuantitiesList_Item;
-static gint ett_nrppa_TrpMeasurementResult;
-static gint ett_nrppa_TrpMeasurementResultItem;
-static gint ett_nrppa_TrpMeasuredResultsValue;
-static gint ett_nrppa_TrpMeasurementQuality;
-static gint ett_nrppa_TrpMeasurementTimingQuality;
-static gint ett_nrppa_TrpMeasurementAngleQuality;
-static gint ett_nrppa_TRP_MeasurementRequestList;
-static gint ett_nrppa_TRP_MeasurementRequestItem;
-static gint ett_nrppa_TRP_MeasurementResponseList;
-static gint ett_nrppa_TRP_MeasurementResponseItem;
-static gint ett_nrppa_TRP_MeasurementUpdateList;
-static gint ett_nrppa_TRP_MeasurementUpdateItem;
-static gint ett_nrppa_TRPInformationListTRPResp;
-static gint ett_nrppa_TRPInformationListTRPResp_item;
-static gint ett_nrppa_TRPInformation;
-static gint ett_nrppa_TRPInformationTypeResponseList;
-static gint ett_nrppa_TRPInformationTypeResponseItem;
-static gint ett_nrppa_TRPInformationTypeListTRPReq;
-static gint ett_nrppa_TRPList;
-static gint ett_nrppa_TRPItem;
-static gint ett_nrppa_TRPPositionDefinitionType;
-static gint ett_nrppa_TRPPositionDirect;
-static gint ett_nrppa_TRPPositionDirectAccuracy;
-static gint ett_nrppa_TRPPositionReferenced;
-static gint ett_nrppa_TRP_PRS_Information_List;
-static gint ett_nrppa_TRP_PRS_Information_List_Item;
-static gint ett_nrppa_TRPReferencePointType;
-static gint ett_nrppa_TRP_Rx_TEGInformation;
-static gint ett_nrppa_TRP_RxTx_TEGInformation;
-static gint ett_nrppa_TRP_Tx_TEGInformation;
-static gint ett_nrppa_TRPTxTEGAssociation;
-static gint ett_nrppa_TRPTEGItem;
-static gint ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourcesPerSet_OF_DLPRSResourceID_Item;
-static gint ett_nrppa_DLPRSResourceID_Item;
-static gint ett_nrppa_UEReportingInformation;
-static gint ett_nrppa_UETxTEGAssociationList;
-static gint ett_nrppa_UETxTEGAssociationItem;
-static gint ett_nrppa_UL_AoA;
-static gint ett_nrppa_UL_RTOAMeasurement;
-static gint ett_nrppa_ULRTOAMeas;
-static gint ett_nrppa_UL_SRS_RSRPP;
-static gint ett_nrppa_UplinkChannelBW_PerSCS_List;
-static gint ett_nrppa_WLANMeasurementQuantities;
-static gint ett_nrppa_WLANMeasurementQuantities_Item;
-static gint ett_nrppa_WLANMeasurementResult;
-static gint ett_nrppa_WLANMeasurementResult_Item;
-static gint ett_nrppa_WLANChannelList;
-static gint ett_nrppa_ZoA;
-static gint ett_nrppa_E_CIDMeasurementInitiationRequest;
-static gint ett_nrppa_E_CIDMeasurementInitiationResponse;
-static gint ett_nrppa_E_CIDMeasurementInitiationFailure;
-static gint ett_nrppa_E_CIDMeasurementFailureIndication;
-static gint ett_nrppa_E_CIDMeasurementReport;
-static gint ett_nrppa_E_CIDMeasurementTerminationCommand;
-static gint ett_nrppa_OTDOAInformationRequest;
-static gint ett_nrppa_OTDOA_Information_Type;
-static gint ett_nrppa_OTDOA_Information_Type_Item;
-static gint ett_nrppa_OTDOAInformationResponse;
-static gint ett_nrppa_OTDOAInformationFailure;
-static gint ett_nrppa_AssistanceInformationControl;
-static gint ett_nrppa_AssistanceInformationFeedback;
-static gint ett_nrppa_ErrorIndication;
-static gint ett_nrppa_PrivateMessage;
-static gint ett_nrppa_PositioningInformationRequest;
-static gint ett_nrppa_PositioningInformationResponse;
-static gint ett_nrppa_PositioningInformationFailure;
-static gint ett_nrppa_PositioningInformationUpdate;
-static gint ett_nrppa_MeasurementRequest;
-static gint ett_nrppa_MeasurementResponse;
-static gint ett_nrppa_MeasurementFailure;
-static gint ett_nrppa_MeasurementReport;
-static gint ett_nrppa_MeasurementUpdate;
-static gint ett_nrppa_MeasurementAbort;
-static gint ett_nrppa_MeasurementFailureIndication;
-static gint ett_nrppa_TRPInformationRequest;
-static gint ett_nrppa_TRPInformationResponse;
-static gint ett_nrppa_TRPInformationFailure;
-static gint ett_nrppa_PositioningActivationRequest;
-static gint ett_nrppa_SRSType;
-static gint ett_nrppa_SemipersistentSRS;
-static gint ett_nrppa_AperiodicSRS;
-static gint ett_nrppa_PositioningActivationResponse;
-static gint ett_nrppa_PositioningActivationFailure;
-static gint ett_nrppa_PositioningDeactivation;
-static gint ett_nrppa_PRSConfigurationRequest;
-static gint ett_nrppa_PRSConfigurationResponse;
-static gint ett_nrppa_PRSConfigurationFailure;
-static gint ett_nrppa_MeasurementPreconfigurationRequired;
-static gint ett_nrppa_MeasurementPreconfigurationConfirm;
-static gint ett_nrppa_MeasurementPreconfigurationRefuse;
-static gint ett_nrppa_MeasurementActivation;
+static int ett_nrppa_PrivateIE_ID;
+static int ett_nrppa_ProtocolIE_Container;
+static int ett_nrppa_ProtocolIE_Field;
+static int ett_nrppa_ProtocolExtensionContainer;
+static int ett_nrppa_ProtocolExtensionField;
+static int ett_nrppa_PrivateIE_Container;
+static int ett_nrppa_PrivateIE_Field;
+static int ett_nrppa_NRPPA_PDU;
+static int ett_nrppa_InitiatingMessage;
+static int ett_nrppa_SuccessfulOutcome;
+static int ett_nrppa_UnsuccessfulOutcome;
+static int ett_nrppa_AbortTransmission;
+static int ett_nrppa_ActiveULBWP;
+static int ett_nrppa_AdditionalPathList;
+static int ett_nrppa_AdditionalPathListItem;
+static int ett_nrppa_ExtendedAdditionalPathList;
+static int ett_nrppa_ExtendedAdditionalPathList_Item;
+static int ett_nrppa_AoA_AssistanceInfo;
+static int ett_nrppa_AperiodicSRSResourceTriggerList;
+static int ett_nrppa_AngleMeasurementType;
+static int ett_nrppa_Expected_UL_AoA;
+static int ett_nrppa_Expected_ZoA_only;
+static int ett_nrppa_Expected_Azimuth_AoA;
+static int ett_nrppa_Expected_Zenith_AoA;
+static int ett_nrppa_ARPLocationInformation;
+static int ett_nrppa_ARPLocationInformation_Item;
+static int ett_nrppa_ARPLocationType;
+static int ett_nrppa_Assistance_Information;
+static int ett_nrppa_AssistanceInformationFailureList;
+static int ett_nrppa_AssistanceInformationFailureList_item;
+static int ett_nrppa_AssistanceInformationMetaData;
+static int ett_nrppa_BandwidthSRS;
+static int ett_nrppa_PositioningBroadcastCells;
+static int ett_nrppa_CarrierFreq;
+static int ett_nrppa_Cause;
+static int ett_nrppa_CGI_EUTRA;
+static int ett_nrppa_CGI_NR;
+static int ett_nrppa_CriticalityDiagnostics;
+static int ett_nrppa_CriticalityDiagnostics_IE_List;
+static int ett_nrppa_CriticalityDiagnostics_IE_List_item;
+static int ett_nrppa_DL_PRS;
+static int ett_nrppa_DL_PRSMutingPattern;
+static int ett_nrppa_DLPRSResourceCoordinates;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourceSets_OF_DLPRSResourceSetARP;
+static int ett_nrppa_DLPRSResourceSetARP;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourcesPerSet_OF_DLPRSResourceARP;
+static int ett_nrppa_DL_PRSResourceSetARPLocation;
+static int ett_nrppa_DLPRSResourceARP;
+static int ett_nrppa_DL_PRSResourceARPLocation;
+static int ett_nrppa_E_CID_MeasurementResult;
+static int ett_nrppa_GeographicalCoordinates;
+static int ett_nrppa_GNB_RxTxTimeDiff;
+static int ett_nrppa_GNBRxTxTimeDiffMeas;
+static int ett_nrppa_LCS_to_GCS_Translation;
+static int ett_nrppa_LCS_to_GCS_TranslationItem;
+static int ett_nrppa_LocationUncertainty;
+static int ett_nrppa_LoS_NLoSInformation;
+static int ett_nrppa_MeasurementBeamInfo;
+static int ett_nrppa_MeasurementQuantities;
+static int ett_nrppa_MeasurementQuantities_Item;
+static int ett_nrppa_MeasuredResults;
+static int ett_nrppa_MeasuredResultsValue;
+static int ett_nrppa_MultipleULAoA;
+static int ett_nrppa_MultipleULAoA_List;
+static int ett_nrppa_MultipleULAoA_Item;
+static int ett_nrppa_NG_RANAccessPointPosition;
+static int ett_nrppa_NGRANHighAccuracyAccessPointPosition;
+static int ett_nrppa_NG_RAN_CGI;
+static int ett_nrppa_NG_RANCell;
+static int ett_nrppa_NR_PRS_Beam_Information;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourceSets_OF_NR_PRS_Beam_InformationItem;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxnolcs_gcs_translation_OF_LCS_to_GCS_TranslationItem;
+static int ett_nrppa_NR_PRS_Beam_InformationItem;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourcesPerSet_OF_PRSAngleItem;
+static int ett_nrppa_OnDemandPRS_Info;
+static int ett_nrppa_OTDOACells;
+static int ett_nrppa_OTDOACells_item;
+static int ett_nrppa_OTDOACell_Information;
+static int ett_nrppa_OTDOACell_Information_Item;
+static int ett_nrppa_OtherRATMeasurementQuantities;
+static int ett_nrppa_OtherRATMeasurementQuantities_Item;
+static int ett_nrppa_OtherRATMeasurementResult;
+static int ett_nrppa_OtherRATMeasuredResultsValue;
+static int ett_nrppa_PathlossReferenceInformation;
+static int ett_nrppa_PathlossReferenceSignal;
+static int ett_nrppa_PeriodicityList;
+static int ett_nrppa_PosSIBs;
+static int ett_nrppa_PosSIBs_item;
+static int ett_nrppa_PosSIB_Segments;
+static int ett_nrppa_PosSIB_Segments_item;
+static int ett_nrppa_PosSRSResource_List;
+static int ett_nrppa_PosSRSResource_Item;
+static int ett_nrppa_PosSRSResourceID_List;
+static int ett_nrppa_PosSRSResourceSet_List;
+static int ett_nrppa_PosSRSResourceIDPerSet_List;
+static int ett_nrppa_PosSRSResourceSet_Item;
+static int ett_nrppa_PosResourceSetType;
+static int ett_nrppa_PosResourceSetTypePeriodic;
+static int ett_nrppa_PosResourceSetTypeSemi_persistent;
+static int ett_nrppa_PosResourceSetTypeAperiodic;
+static int ett_nrppa_PRSAngleItem;
+static int ett_nrppa_PRSInformationPos;
+static int ett_nrppa_PRSConfiguration;
+static int ett_nrppa_PRSMutingConfiguration_EUTRA;
+static int ett_nrppa_PRSFrequencyHoppingConfiguration_EUTRA;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxnoFreqHoppingBandsMinusOne_OF_NarrowBandIndex;
+static int ett_nrppa_PRS_Measurements_Info_List;
+static int ett_nrppa_PRS_Measurements_Info_List_Item;
+static int ett_nrppa_PRSMuting;
+static int ett_nrppa_PRSMutingOption1;
+static int ett_nrppa_PRSMutingOption2;
+static int ett_nrppa_PRSResource_List;
+static int ett_nrppa_PRSResource_Item;
+static int ett_nrppa_PRSResource_QCLInfo;
+static int ett_nrppa_PRSResource_QCLSourceSSB;
+static int ett_nrppa_PRSResource_QCLSourcePRS;
+static int ett_nrppa_PRSResourceSet_List;
+static int ett_nrppa_PRSResourceSet_Item;
+static int ett_nrppa_PRSTransmissionOffIndication;
+static int ett_nrppa_PRSTransmissionOffPerResource;
+static int ett_nrppa_PRSTransmissionOffPerResource_Item;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxnoofPRSresource_OF_PRSTransmissionOffIndicationPerResource_Item;
+static int ett_nrppa_PRSTransmissionOffIndicationPerResource_Item;
+static int ett_nrppa_PRSTransmissionOffInformation;
+static int ett_nrppa_PRSTransmissionOffPerResourceSet;
+static int ett_nrppa_PRSTransmissionOffPerResourceSet_Item;
+static int ett_nrppa_PRSTRPList;
+static int ett_nrppa_PRSTRPItem;
+static int ett_nrppa_PRSTransmissionTRPList;
+static int ett_nrppa_PRSTransmissionTRPItem;
+static int ett_nrppa_ReferenceSignal;
+static int ett_nrppa_ReferencePoint;
+static int ett_nrppa_RelativeGeodeticLocation;
+static int ett_nrppa_RelativeCartesianLocation;
+static int ett_nrppa_RelativePathDelay;
+static int ett_nrppa_RequestedDLPRSTransmissionCharacteristics;
+static int ett_nrppa_RequestedDLPRSResourceSet_List;
+static int ett_nrppa_RequestedDLPRSResourceSet_Item;
+static int ett_nrppa_RequestedDLPRSResource_List;
+static int ett_nrppa_RequestedDLPRSResource_Item;
+static int ett_nrppa_RequestedSRSTransmissionCharacteristics;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxnoSRS_ResourceSets_OF_SRSResourceSet_Item;
+static int ett_nrppa_SRSResourceSet_Item;
+static int ett_nrppa_ResourceSetType;
+static int ett_nrppa_ResourceSetTypePeriodic;
+static int ett_nrppa_ResourceSetTypeSemi_persistent;
+static int ett_nrppa_ResourceSetTypeAperiodic;
+static int ett_nrppa_ResourceType;
+static int ett_nrppa_ResourceTypePeriodic;
+static int ett_nrppa_ResourceTypeSemi_persistent;
+static int ett_nrppa_ResourceTypeAperiodic;
+static int ett_nrppa_ResourceTypePos;
+static int ett_nrppa_ResourceTypePeriodicPos;
+static int ett_nrppa_ResourceTypeSemi_persistentPos;
+static int ett_nrppa_ResourceTypeAperiodicPos;
+static int ett_nrppa_ResponseTime;
+static int ett_nrppa_ResultCSI_RSRP;
+static int ett_nrppa_ResultCSI_RSRP_Item;
+static int ett_nrppa_ResultCSI_RSRP_PerCSI_RS;
+static int ett_nrppa_ResultCSI_RSRP_PerCSI_RS_Item;
+static int ett_nrppa_ResultCSI_RSRQ;
+static int ett_nrppa_ResultCSI_RSRQ_Item;
+static int ett_nrppa_ResultCSI_RSRQ_PerCSI_RS;
+static int ett_nrppa_ResultCSI_RSRQ_PerCSI_RS_Item;
+static int ett_nrppa_ResultEUTRA;
+static int ett_nrppa_ResultEUTRA_Item;
+static int ett_nrppa_ResultRSRP_EUTRA;
+static int ett_nrppa_ResultRSRP_EUTRA_Item;
+static int ett_nrppa_ResultRSRQ_EUTRA;
+static int ett_nrppa_ResultRSRQ_EUTRA_Item;
+static int ett_nrppa_ResultSS_RSRP;
+static int ett_nrppa_ResultSS_RSRP_Item;
+static int ett_nrppa_ResultSS_RSRP_PerSSB;
+static int ett_nrppa_ResultSS_RSRP_PerSSB_Item;
+static int ett_nrppa_ResultSS_RSRQ;
+static int ett_nrppa_ResultSS_RSRQ_Item;
+static int ett_nrppa_ResultSS_RSRQ_PerSSB;
+static int ett_nrppa_ResultSS_RSRQ_PerSSB_Item;
+static int ett_nrppa_ResultGERAN;
+static int ett_nrppa_ResultGERAN_Item;
+static int ett_nrppa_ResultNR;
+static int ett_nrppa_ResultNR_Item;
+static int ett_nrppa_ResultUTRAN;
+static int ett_nrppa_ResultUTRAN_Item;
+static int ett_nrppa_T_physCellIDUTRAN;
+static int ett_nrppa_SCS_SpecificCarrier;
+static int ett_nrppa_Search_window_information;
+static int ett_nrppa_SpatialDirectionInformation;
+static int ett_nrppa_SpatialRelationInfo;
+static int ett_nrppa_SpatialRelationforResourceID;
+static int ett_nrppa_SpatialRelationforResourceIDItem;
+static int ett_nrppa_SpatialRelationPerSRSResource;
+static int ett_nrppa_SpatialRelationPerSRSResource_List;
+static int ett_nrppa_SpatialRelationPerSRSResourceItem;
+static int ett_nrppa_SpatialRelationPos;
+static int ett_nrppa_SRSConfig;
+static int ett_nrppa_SRSCarrier_List;
+static int ett_nrppa_SRSCarrier_List_Item;
+static int ett_nrppa_SRSConfiguration;
+static int ett_nrppa_SRSResource;
+static int ett_nrppa_SRSResource_List;
+static int ett_nrppa_SRSResourceSet_List;
+static int ett_nrppa_SRSResourceID_List;
+static int ett_nrppa_SRSResourceSet;
+static int ett_nrppa_SRSResourceTrigger;
+static int ett_nrppa_SRSResourcetype;
+static int ett_nrppa_SRSResourceTypeChoice;
+static int ett_nrppa_SRSInfo;
+static int ett_nrppa_PosSRSInfo;
+static int ett_nrppa_SSBInfo;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxNoSSBs_OF_SSBInfoItem;
+static int ett_nrppa_SSBInfoItem;
+static int ett_nrppa_SSB;
+static int ett_nrppa_SSBBurstPosition;
+static int ett_nrppa_StartRBIndex;
+static int ett_nrppa_StartTimeAndDuration;
+static int ett_nrppa_SystemInformation;
+static int ett_nrppa_SystemInformation_item;
+static int ett_nrppa_TDD_Config_EUTRA_Item;
+static int ett_nrppa_TRPTEGInformation;
+static int ett_nrppa_RxTxTEG;
+static int ett_nrppa_RxTEG;
+static int ett_nrppa_TF_Configuration;
+static int ett_nrppa_TimeStamp;
+static int ett_nrppa_TimeStampSlotIndex;
+static int ett_nrppa_TransmissionComb;
+static int ett_nrppa_T_n2;
+static int ett_nrppa_T_n4;
+static int ett_nrppa_TransmissionCombn8;
+static int ett_nrppa_TransmissionCombPos;
+static int ett_nrppa_T_n2_01;
+static int ett_nrppa_T_n4_01;
+static int ett_nrppa_T_n8;
+static int ett_nrppa_TRPBeamAntennaInformation;
+static int ett_nrppa_Choice_TRP_Beam_Antenna_Info_Item;
+static int ett_nrppa_TRP_BeamAntennaExplicitInformation;
+static int ett_nrppa_TRP_BeamAntennaAngles;
+static int ett_nrppa_TRP_BeamAntennaAnglesList_Item;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxnoElevationAngles_OF_TRP_ElevationAngleList_Item;
+static int ett_nrppa_TRP_ElevationAngleList_Item;
+static int ett_nrppa_SEQUENCE_SIZE_2_maxNumResourcesPerAngle_OF_TRP_Beam_Power_Item;
+static int ett_nrppa_TRP_Beam_Power_Item;
+static int ett_nrppa_TRPMeasurementQuantities;
+static int ett_nrppa_TRPMeasurementQuantitiesList_Item;
+static int ett_nrppa_TrpMeasurementResult;
+static int ett_nrppa_TrpMeasurementResultItem;
+static int ett_nrppa_TrpMeasuredResultsValue;
+static int ett_nrppa_TrpMeasurementQuality;
+static int ett_nrppa_TrpMeasurementTimingQuality;
+static int ett_nrppa_TrpMeasurementAngleQuality;
+static int ett_nrppa_TRP_MeasurementRequestList;
+static int ett_nrppa_TRP_MeasurementRequestItem;
+static int ett_nrppa_TRP_MeasurementResponseList;
+static int ett_nrppa_TRP_MeasurementResponseItem;
+static int ett_nrppa_TRP_MeasurementUpdateList;
+static int ett_nrppa_TRP_MeasurementUpdateItem;
+static int ett_nrppa_TRPInformationListTRPResp;
+static int ett_nrppa_TRPInformationListTRPResp_item;
+static int ett_nrppa_TRPInformation;
+static int ett_nrppa_TRPInformationTypeResponseList;
+static int ett_nrppa_TRPInformationTypeResponseItem;
+static int ett_nrppa_TRPInformationTypeListTRPReq;
+static int ett_nrppa_TRPList;
+static int ett_nrppa_TRPItem;
+static int ett_nrppa_TRPPositionDefinitionType;
+static int ett_nrppa_TRPPositionDirect;
+static int ett_nrppa_TRPPositionDirectAccuracy;
+static int ett_nrppa_TRPPositionReferenced;
+static int ett_nrppa_TRP_PRS_Information_List;
+static int ett_nrppa_TRP_PRS_Information_List_Item;
+static int ett_nrppa_TRPReferencePointType;
+static int ett_nrppa_TRP_Rx_TEGInformation;
+static int ett_nrppa_TRP_RxTx_TEGInformation;
+static int ett_nrppa_TRP_Tx_TEGInformation;
+static int ett_nrppa_TRPTxTEGAssociation;
+static int ett_nrppa_TRPTEGItem;
+static int ett_nrppa_SEQUENCE_SIZE_1_maxPRS_ResourcesPerSet_OF_DLPRSResourceID_Item;
+static int ett_nrppa_DLPRSResourceID_Item;
+static int ett_nrppa_UEReportingInformation;
+static int ett_nrppa_UETxTEGAssociationList;
+static int ett_nrppa_UETxTEGAssociationItem;
+static int ett_nrppa_UL_AoA;
+static int ett_nrppa_UL_RTOAMeasurement;
+static int ett_nrppa_ULRTOAMeas;
+static int ett_nrppa_UL_SRS_RSRPP;
+static int ett_nrppa_UplinkChannelBW_PerSCS_List;
+static int ett_nrppa_WLANMeasurementQuantities;
+static int ett_nrppa_WLANMeasurementQuantities_Item;
+static int ett_nrppa_WLANMeasurementResult;
+static int ett_nrppa_WLANMeasurementResult_Item;
+static int ett_nrppa_WLANChannelList;
+static int ett_nrppa_ZoA;
+static int ett_nrppa_E_CIDMeasurementInitiationRequest;
+static int ett_nrppa_E_CIDMeasurementInitiationResponse;
+static int ett_nrppa_E_CIDMeasurementInitiationFailure;
+static int ett_nrppa_E_CIDMeasurementFailureIndication;
+static int ett_nrppa_E_CIDMeasurementReport;
+static int ett_nrppa_E_CIDMeasurementTerminationCommand;
+static int ett_nrppa_OTDOAInformationRequest;
+static int ett_nrppa_OTDOA_Information_Type;
+static int ett_nrppa_OTDOA_Information_Type_Item;
+static int ett_nrppa_OTDOAInformationResponse;
+static int ett_nrppa_OTDOAInformationFailure;
+static int ett_nrppa_AssistanceInformationControl;
+static int ett_nrppa_AssistanceInformationFeedback;
+static int ett_nrppa_ErrorIndication;
+static int ett_nrppa_PrivateMessage;
+static int ett_nrppa_PositioningInformationRequest;
+static int ett_nrppa_PositioningInformationResponse;
+static int ett_nrppa_PositioningInformationFailure;
+static int ett_nrppa_PositioningInformationUpdate;
+static int ett_nrppa_MeasurementRequest;
+static int ett_nrppa_MeasurementResponse;
+static int ett_nrppa_MeasurementFailure;
+static int ett_nrppa_MeasurementReport;
+static int ett_nrppa_MeasurementUpdate;
+static int ett_nrppa_MeasurementAbort;
+static int ett_nrppa_MeasurementFailureIndication;
+static int ett_nrppa_TRPInformationRequest;
+static int ett_nrppa_TRPInformationResponse;
+static int ett_nrppa_TRPInformationFailure;
+static int ett_nrppa_PositioningActivationRequest;
+static int ett_nrppa_SRSType;
+static int ett_nrppa_SemipersistentSRS;
+static int ett_nrppa_AperiodicSRS;
+static int ett_nrppa_PositioningActivationResponse;
+static int ett_nrppa_PositioningActivationFailure;
+static int ett_nrppa_PositioningDeactivation;
+static int ett_nrppa_PRSConfigurationRequest;
+static int ett_nrppa_PRSConfigurationResponse;
+static int ett_nrppa_PRSConfigurationFailure;
+static int ett_nrppa_MeasurementPreconfigurationRequired;
+static int ett_nrppa_MeasurementPreconfigurationConfirm;
+static int ett_nrppa_MeasurementPreconfigurationRefuse;
+static int ett_nrppa_MeasurementActivation;
/* Global variables */
static guint32 ProcedureCode;
@@ -5242,7 +5242,7 @@ dissect_nrppa_E_CID_MeasurementResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_nrppa_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-ns_cert_exts.c b/epan/dissectors/packet-ns_cert_exts.c
index 427f19e328..33a9101373 100644
--- a/epan/dissectors/packet-ns_cert_exts.c
+++ b/epan/dissectors/packet-ns_cert_exts.c
@@ -48,7 +48,7 @@ static int hf_ns_cert_exts_CertType_smime_ca;
static int hf_ns_cert_exts_CertType_object_signing_ca;
/* Initialize the subtree pointers */
-static gint ett_ns_cert_exts_CertType;
+static int ett_ns_cert_exts_CertType;
diff --git a/epan/dissectors/packet-nsip.c b/epan/dissectors/packet-nsip.c
index 4fee1966a2..6b39f73466 100644
--- a/epan/dissectors/packet-nsip.c
+++ b/epan/dissectors/packet-nsip.c
@@ -222,7 +222,7 @@ static const value_string ip_address_type_vals[] = {
static dissector_handle_t bssgp_handle;
static dissector_handle_t nsip_handle;
-static gboolean nsip_is_recursive = FALSE;
+static gboolean nsip_is_recursive;
typedef struct {
guint8 iei;
diff --git a/epan/dissectors/packet-ntlmssp.c b/epan/dissectors/packet-ntlmssp.c
index 0c0f58851c..d7d1747b18 100644
--- a/epan/dissectors/packet-ntlmssp.c
+++ b/epan/dissectors/packet-ntlmssp.c
@@ -78,7 +78,7 @@ static const value_string ntlmssp_message_types[] = {
(ek->fd_num == -1 && ek->keytype == 23 && ek->keylength == NTLMSSP_KEY_LEN)
static const unsigned char gbl_zeros[24] = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
-static GHashTable* hash_packet = NULL;
+static GHashTable* hash_packet;
/*
* NTLMSSP negotiation flags
@@ -288,7 +288,7 @@ static expert_field ei_ntlmssp_sessionkey;
static dissector_handle_t ntlmssp_handle, ntlmssp_wrap_handle;
/* Configuration variables */
-static const char *ntlmssp_option_nt_password = NULL;
+static const char *ntlmssp_option_nt_password;
#define NTLMSSP_CONV_INFO_KEY 0
/* Used in the conversation function */
@@ -925,6 +925,80 @@ create_ntlmssp_v1_key(const guint8 *serverchallenge, const guint8 *clientchallen
sessionkey[14] & 0xFF, sessionkey[15] & 0xFF);
}
+/*
+ * Create an NTLMSSP anonymous key
+ */
+static void
+create_ntlmssp_anon_key(guint8 *sessionkey, const guint8 *encryptedsessionkey, int flags,
+ ntlmssp_header_t *ntlmssph,
+ packet_info *pinfo, proto_tree *ntlmssp_tree)
+{
+ guint8 lm_challenge_response[24] = { 0, };
+ guint8 sessionbasekey[NTLMSSP_KEY_LEN] = { 0, };
+ guint8 keyexchangekey[NTLMSSP_KEY_LEN] = { 0, };
+ gcry_cipher_hd_t rc4_handle;
+
+ memset(sessionkey, 0, NTLMSSP_KEY_LEN);
+
+ get_keyexchange_key(keyexchangekey, sessionbasekey, lm_challenge_response, flags);
+ if (flags & NTLMSSP_NEGOTIATE_KEY_EXCH)
+ {
+ if(encryptedsessionkey){
+ memcpy(sessionkey, encryptedsessionkey, NTLMSSP_KEY_LEN);
+ }
+ if (!gcry_cipher_open(&rc4_handle, GCRY_CIPHER_ARCFOUR, GCRY_CIPHER_MODE_STREAM, 0)) {
+ if (!gcry_cipher_setkey(rc4_handle, keyexchangekey, NTLMSSP_KEY_LEN)) {
+ gcry_cipher_decrypt(rc4_handle, sessionkey, NTLMSSP_KEY_LEN, NULL, 0);
+ }
+ gcry_cipher_close(rc4_handle);
+ }
+ }
+ else
+ {
+ memcpy(sessionkey, keyexchangekey, NTLMSSP_KEY_LEN);
+ }
+ memcpy(ntlmssph->session_key, sessionkey, NTLMSSP_KEY_LEN);
+
+ expert_add_info_format(pinfo, proto_tree_get_parent(ntlmssp_tree),
+ &ei_ntlmssp_auth_nthash,
+ "NTLM authenticated using ANONYMOUS ZERO NTHASH");
+ expert_add_info_format(pinfo, proto_tree_get_parent(ntlmssp_tree),
+ &ei_ntlmssp_sessionbasekey,
+ "NTLM Anonymous BaseSessionKey ("
+ "%02x%02x%02x%02x"
+ "%02x%02x%02x%02x"
+ "%02x%02x%02x%02x"
+ "%02x%02x%02x%02x"
+ ")",
+ sessionbasekey[0] & 0xFF, sessionbasekey[1] & 0xFF,
+ sessionbasekey[2] & 0xFF, sessionbasekey[3] & 0xFF,
+ sessionbasekey[4] & 0xFF, sessionbasekey[5] & 0xFF,
+ sessionbasekey[6] & 0xFF, sessionbasekey[7] & 0xFF,
+ sessionbasekey[8] & 0xFF, sessionbasekey[9] & 0xFF,
+ sessionbasekey[10] & 0xFF, sessionbasekey[11] & 0xFF,
+ sessionbasekey[12] & 0xFF, sessionbasekey[13] & 0xFF,
+ sessionbasekey[14] & 0xFF, sessionbasekey[15] & 0xFF);
+ if (memcmp(sessionbasekey, sessionkey, NTLMSSP_KEY_LEN) == 0) {
+ return;
+ }
+ expert_add_info_format(pinfo, proto_tree_get_parent(ntlmssp_tree),
+ &ei_ntlmssp_sessionkey,
+ "NTLMSSP SessionKey Anonymous ("
+ "%02x%02x%02x%02x"
+ "%02x%02x%02x%02x"
+ "%02x%02x%02x%02x"
+ "%02x%02x%02x%02x"
+ ")",
+ sessionkey[0] & 0xFF, sessionkey[1] & 0xFF,
+ sessionkey[2] & 0xFF, sessionkey[3] & 0xFF,
+ sessionkey[4] & 0xFF, sessionkey[5] & 0xFF,
+ sessionkey[6] & 0xFF, sessionkey[7] & 0xFF,
+ sessionkey[8] & 0xFF, sessionkey[9] & 0xFF,
+ sessionkey[10] & 0xFF, sessionkey[11] & 0xFF,
+ sessionkey[12] & 0xFF, sessionkey[13] & 0xFF,
+ sessionkey[14] & 0xFF, sessionkey[15] & 0xFF);
+}
+
void
ntlmssp_create_session_key(packet_info *pinfo,
proto_tree *tree,
@@ -978,6 +1052,15 @@ ntlmssp_create_session_key(packet_info *pinfo,
pinfo,
tree);
}
+ else if (ntlm_response->length == 0 && lm_response->length == 0)
+ {
+ create_ntlmssp_anon_key(sessionkey,
+ encryptedsessionkey,
+ flags,
+ ntlmssph,
+ pinfo,
+ tree);
+ }
}
static void
@@ -1455,7 +1538,7 @@ dissect_ntlmssp_target_info_list(tvbuff_t *_tvb, packet_info *pinfo, proto_tree
case NTLM_TARGET_INFO_DNS_DOMAIN_NAME:
case NTLM_TARGET_INFO_DNS_TREE_NAME:
case NTLM_TARGET_INFO_TARGET_NAME:
- proto_tree_add_item_ret_string(target_info_tree, *hf_array_p[item_type], tvb, content_offset, content_length, ENC_UTF_16|ENC_LITTLE_ENDIAN, wmem_packet_scope(), &text);
+ proto_tree_add_item_ret_string(target_info_tree, *hf_array_p[item_type], tvb, content_offset, content_length, ENC_UTF_16|ENC_LITTLE_ENDIAN, pinfo->pool, &text);
proto_item_append_text(target_info_tf, ": %s", text);
break;
@@ -1794,7 +1877,7 @@ dissect_ntlmssp_auth (tvbuff_t *tvb, packet_info *pinfo, int offset,
guint8 sspkey[NTLMSSP_KEY_LEN]; /* exported session key */
guint8 clientkey[NTLMSSP_KEY_LEN]; /* NTLMSSP cipher key for client */
guint8 serverkey[NTLMSSP_KEY_LEN]; /* NTLMSSP cipher key for server*/
- guint8 encryptedsessionkey[NTLMSSP_KEY_LEN];
+ guint8 encryptedsessionkey[NTLMSSP_KEY_LEN] = {0};
ntlmssp_blob sessionblob;
gboolean unicode_strings = FALSE;
ntlmssp_info *conv_ntlmssp_info;
@@ -2081,6 +2164,7 @@ dissect_ntlmssp_auth (tvbuff_t *tvb, packet_info *pinfo, int offset,
if (sessionblob.length > NTLMSSP_KEY_LEN) {
expert_add_info_format(pinfo, NULL, &ei_ntlmssp_blob_len_too_long, "Session blob length too long: %u", sessionblob.length);
} else if (sessionblob.length != 0) {
+ /* XXX - Is it a problem if sessionblob.length < NTLMSSP_KEY_LEN ? */
memcpy(encryptedsessionkey, sessionblob.contents, sessionblob.length);
/* Try to attach to an existing conversation if not then it's useless to try to do so
* because we are missing important information (ie. server challenge)
@@ -2367,7 +2451,7 @@ decrypt_data_payload(tvbuff_t *tvb, int offset, guint32 encrypted_block_length,
in case of KEY_EXCH we have independent key so this is not needed*/
if (!(NTLMSSP_NEGOTIATE_KEY_EXCH & conv_ntlmssp_info->flags)) {
guint8 *peer_block;
- peer_block = (guint8 *)wmem_memdup(wmem_packet_scope(), packet_ntlmssp_info->decrypted_payload, encrypted_block_length);
+ peer_block = (guint8 *)wmem_memdup(pinfo->pool, packet_ntlmssp_info->decrypted_payload, encrypted_block_length);
gcry_cipher_decrypt(rc4_handle_peer, peer_block, encrypted_block_length, NULL, 0);
}
@@ -2403,7 +2487,7 @@ dissect_ntlmssp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
return offset;
}
- ntlmssph = wmem_new(wmem_packet_scope(), ntlmssp_header_t);
+ ntlmssph = wmem_new(pinfo->pool, ntlmssp_header_t);
ntlmssph->type = 0;
ntlmssph->domain_name = NULL;
ntlmssph->acct_name = NULL;
@@ -2573,7 +2657,7 @@ decrypt_verifier(tvbuff_t *tvb, packet_info *pinfo)
* TODO Some analysis needs to be done ...
*/
if (sign_key != NULL) {
- check_buf = (guint8 *)wmem_alloc(wmem_packet_scope(), packet_ntlmssp_info->payload_len+4);
+ check_buf = (guint8 *)wmem_alloc(pinfo->pool, packet_ntlmssp_info->payload_len+4);
tvb_memcpy(tvb, &sequence, packet_ntlmssp_info->verifier_offset+8, 4);
memcpy(check_buf, &sequence, 4);
memcpy(check_buf+4, packet_ntlmssp_info->decrypted_payload, packet_ntlmssp_info->payload_len);
@@ -2600,7 +2684,7 @@ decrypt_verifier(tvbuff_t *tvb, packet_info *pinfo)
This is not needed when we just have EXTENDED SESSION SECURITY because the signature is not encrypted
and it's also not needed when we have key exchange because server and client have independent keys */
if (!(NTLMSSP_NEGOTIATE_KEY_EXCH & conv_ntlmssp_info->flags) && !(NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY & conv_ntlmssp_info->flags)) {
- peer_block = (guint8 *)wmem_memdup(wmem_packet_scope(), packet_ntlmssp_info->verifier, packet_ntlmssp_info->verifier_block_length);
+ peer_block = (guint8 *)wmem_memdup(pinfo->pool, packet_ntlmssp_info->verifier, packet_ntlmssp_info->verifier_block_length);
if (gcry_cipher_decrypt(rc4_handle_peer, peer_block, packet_ntlmssp_info->verifier_block_length, NULL, 0)) {
return;
}
diff --git a/epan/dissectors/packet-ntp.c b/epan/dissectors/packet-ntp.c
index a38d8a8c07..d9e6fb5c5a 100644
--- a/epan/dissectors/packet-ntp.c
+++ b/epan/dissectors/packet-ntp.c
@@ -210,7 +210,9 @@ static const struct {
const char *id;
const char *data;
} primary_sources[] = {
- /* IANA / RFC 5905 */
+ /* Reference Identifier Codes
+ * https://www.iana.org/assignments/ntp-parameters/ntp-parameters.xhtml#ntp-parameters-1
+ */
{ "GOES", "Geostationary Orbit Environment Satellite" },
{ "GPS\0", "Global Position System" },
{ "GAL\0", "Galileo Positioning System" },
@@ -230,8 +232,10 @@ static const struct {
{ "ACTS", "NIST telephone modem" },
{ "USNO", "USNO telephone modem" },
{ "PTB\0", "European telephone modem" },
+ { "DFM\0", "UTC(DFM)"},
/* Unofficial codes */
+ { "LCL\0", "uncalibrated local clock" },
{ "LOCL", "uncalibrated local clock" },
{ "CESM", "calibrated Cesium clock" },
{ "RBDM", "calibrated Rubidium clock" },
@@ -241,6 +245,19 @@ static const struct {
{ "DTS\0", "Digital Time Service" },
{ "ATOM", "Atomic clock (calibrated)" },
{ "VLF\0", "VLF radio (OMEGA,, etc.)" },
+ { "DCFa", "DCF77 with amplitude modulation" },
+ { "DCFp", "DCF77 with phase modulation/pseudo random phase modulation" },
+ { "PZF\0", "DCF77 correlation receiver for middle Europe" },
+ { "PZFs", "DCF77 correlation receiver (with shared memory access)" },
+ { "PZFi", "DCF77 correlation receiver (with interrupt based access)" },
+ { "GPSD", "GPSD client driver" },
+ { "GPSs", "GPS (with shared memory access)" },
+ { "GPSi", "GPS (with interrupt based access)" },
+ { "GLNs", "GPS/GLONASS (with shared memory access)" },
+ { "GLNi", "GPS/GLONASS (with interrupt based access)" },
+ { "GNSS", "Global Navigation Satellite System" },
+ { "MRS\0", "Multi Reference System" },
+ { "Nut1", "UT1(NIST)" },
{ "1PPS", "External 1 PPS input" },
{ "FREE", "(Internal clock)" },
// { "INIT", "(Initialization)" },
@@ -1271,10 +1288,10 @@ dissect_ntp_std(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ntp_tree, ntp_con
* But, all V3 and V4 servers set this to IP address of their
* higher level server. My decision was to resolve this address.
*/
- buff = (gchar *)wmem_alloc(wmem_packet_scope(), NTP_TS_SIZE);
+ buff = (gchar *)wmem_alloc(pinfo->pool, NTP_TS_SIZE);
if (stratum == 0) {
snprintf (buff, NTP_TS_SIZE, "Unidentified Kiss-o\'-Death message '%s'",
- tvb_get_string_enc(wmem_packet_scope(), tvb, 12, 4, ENC_ASCII));
+ tvb_get_string_enc(pinfo->pool, tvb, 12, 4, ENC_ASCII));
for (i = 0; kod_messages[i].id; i++) {
if (tvb_memeql(tvb, 12, kod_messages[i].id, 4) == 0) {
snprintf(buff, NTP_TS_SIZE, "%s",
@@ -1284,7 +1301,7 @@ dissect_ntp_std(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ntp_tree, ntp_con
}
} else if (stratum == 1) {
snprintf (buff, NTP_TS_SIZE, "Unidentified reference source '%s'",
- tvb_get_string_enc(wmem_packet_scope(), tvb, 12, 4, ENC_ASCII));
+ tvb_get_string_enc(pinfo->pool, tvb, 12, 4, ENC_ASCII));
for (i = 0; primary_sources[i].id; i++) {
if (tvb_memeql(tvb, 12, (const guint8*)primary_sources[i].id, 4) == 0) {
snprintf(buff, NTP_TS_SIZE, "%s",
diff --git a/epan/dissectors/packet-null.c b/epan/dissectors/packet-null.c
index 73b7960741..05462a94bc 100644
--- a/epan/dissectors/packet-null.c
+++ b/epan/dissectors/packet-null.c
@@ -54,7 +54,7 @@ static capture_dissector_handle_t null_cap_handle;
static dissector_handle_t ppp_hdlc_handle;
static capture_dissector_handle_t ppp_hdlc_cap_handle;
-static gboolean
+static bool
capture_null( const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_ )
{
guint32 null_header;
diff --git a/epan/dissectors/packet-nvme-mi.c b/epan/dissectors/packet-nvme-mi.c
index 2261ada14a..61214e87b9 100644
--- a/epan/dissectors/packet-nvme-mi.c
+++ b/epan/dissectors/packet-nvme-mi.c
@@ -277,7 +277,7 @@ dissect_nvme_mi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree *nvme_mi_tree, *nvme_mi_hdr_tree;
struct nvme_mi_conv_info *mi_conv;
guint len, payload_len, type;
- gboolean resp, mic_enabled;
+ bool resp, mic_enabled;
proto_item *ti, *it2;
conversation_t *conv;
tvbuff_t *sub_tvb;
diff --git a/epan/dissectors/packet-nvme-tcp.c b/epan/dissectors/packet-nvme-tcp.c
index 687d072950..45a6e0e7b9 100644
--- a/epan/dissectors/packet-nvme-tcp.c
+++ b/epan/dissectors/packet-nvme-tcp.c
@@ -56,8 +56,8 @@ static dissector_handle_t nvmet_tls_handle;
#define NVME_TCP_HEADER_SIZE 8
#define PDU_LEN_OFFSET_FROM_HEADER 4
static range_t *gPORT_RANGE;
-static gboolean nvme_tcp_check_hdgst = FALSE;
-static gboolean nvme_tcp_check_ddgst = FALSE;
+static bool nvme_tcp_check_hdgst;
+static bool nvme_tcp_check_ddgst;
#define NVME_TCP_DATA_PDU_SIZE 24
enum nvme_tcp_pdu_type {
diff --git a/epan/dissectors/packet-oampdu.c b/epan/dissectors/packet-oampdu.c
index 4ea27e9f21..095e129d40 100644
--- a/epan/dissectors/packet-oampdu.c
+++ b/epan/dissectors/packet-oampdu.c
@@ -1938,7 +1938,7 @@ dissect_oampdu_vendor_specific(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
guint8 pir_subtype;
guint8 rr_byte;
- const guint8 oui_cl[] = {OUI_CL_0, OUI_CL_1, OUI_CL_2};
+ static const guint8 oui_cl[] = {OUI_CL_0, OUI_CL_1, OUI_CL_2};
proto_item *oui_item;
proto_item *event_item;
diff --git a/epan/dissectors/packet-obex.c b/epan/dissectors/packet-obex.c
index 86f1dc992a..ec7a53a9b5 100644
--- a/epan/dissectors/packet-obex.c
+++ b/epan/dissectors/packet-obex.c
@@ -392,9 +392,9 @@ static gint ett_obex_session_parameters;
static gint ett_obex_application_parameters;
static gint ett_obex_authentication_parameters;
-static wmem_tree_t *obex_path = NULL;
-static wmem_tree_t *obex_profile = NULL;
-static wmem_tree_t *obex_last_opcode = NULL;
+static wmem_tree_t *obex_path;
+static wmem_tree_t *obex_profile;
+static wmem_tree_t *obex_last_opcode;
static dissector_handle_t http_handle;
static dissector_handle_t xml_handle;
@@ -1245,7 +1245,7 @@ dissect_obex_application_parameter_bt_bip(tvbuff_t *tvb, packet_info *pinfo, pro
item = proto_tree_add_item(parameter_tree, hf_application_parameter_length, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- if (parameter_id < (sizeof(required_length_map)/sizeof(gint)) &&
+ if (parameter_id < array_length(required_length_map) &&
required_length_map[parameter_id] != parameter_length) {
proto_tree_add_item(parameter_tree, hf_application_parameter_data, tvb, offset, parameter_length, ENC_NA);
expert_add_info_format(pinfo, item, &ei_application_parameter_length_bad,
@@ -1322,7 +1322,7 @@ dissect_obex_application_parameter_bt_pbap(tvbuff_t *tvb, packet_info *pinfo, pr
item = proto_tree_add_item(parameter_tree, hf_application_parameter_length, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- if (parameter_id < (sizeof(required_length_map)/sizeof(gint)) &&
+ if (parameter_id < array_length(required_length_map) &&
required_length_map[parameter_id] != -1 &&
required_length_map[parameter_id] != parameter_length) {
proto_tree_add_item(parameter_tree, hf_application_parameter_data, tvb, offset, parameter_length, ENC_NA);
@@ -1420,7 +1420,7 @@ dissect_obex_application_parameter_bt_map(tvbuff_t *tvb, packet_info *pinfo, pro
item = proto_tree_add_item(parameter_tree, hf_application_parameter_length, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- if (parameter_id < (sizeof(required_length_map)/sizeof(gint)) &&
+ if (parameter_id < array_length(required_length_map) &&
required_length_map[parameter_id] != -1 &&
required_length_map[parameter_id] != parameter_length) {
proto_tree_add_item(parameter_tree, hf_application_parameter_data, tvb, offset, parameter_length, ENC_NA);
@@ -1578,7 +1578,7 @@ dissect_obex_application_parameter_bt_gpp(tvbuff_t *tvb, packet_info *pinfo, pro
item = proto_tree_add_item(parameter_tree, hf_application_parameter_length, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- if (parameter_id >= 0x41 && (guint8)(parameter_id - 0x41) < (sizeof(required_length_map)/sizeof(gint)) &&
+ if (parameter_id >= 0x41 && (guint8)(parameter_id - 0x41) < array_length(required_length_map) &&
required_length_map[parameter_id - 0x41] != -1 &&
required_length_map[parameter_id - 0x41] != parameter_length) {
proto_tree_add_item(parameter_tree, hf_application_parameter_data, tvb, offset, parameter_length, ENC_NA);
@@ -1643,7 +1643,7 @@ dissect_obex_application_parameter_bt_ctn(tvbuff_t *tvb, packet_info *pinfo, pro
item = proto_tree_add_item(parameter_tree, hf_application_parameter_length, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- if ((parameter_id < 0x41) && (parameter_id < (sizeof(required_length_map)/sizeof(gint))) &&
+ if ((parameter_id < 0x41) && (parameter_id < array_length(required_length_map)) &&
required_length_map[parameter_id] != -1 &&
required_length_map[parameter_id] != parameter_length) {
@@ -1651,7 +1651,7 @@ dissect_obex_application_parameter_bt_ctn(tvbuff_t *tvb, packet_info *pinfo, pro
expert_add_info_format(pinfo, item, &ei_application_parameter_length_bad,
"According to the specification this parameter length should be %i, but there is %i",
required_length_map[parameter_id], parameter_length);
- } else if ((parameter_id >= 0x41) && ((guint8)(parameter_id - 0x41) < (sizeof(required_length_map_gpp)/sizeof(gint))) &&
+ } else if ((parameter_id >= 0x41) && ((guint8)(parameter_id - 0x41) < array_length(required_length_map_gpp)) &&
required_length_map[parameter_id - 0x41] != -1 &&
required_length_map[parameter_id - 0x41] != parameter_length) {
diff --git a/epan/dissectors/packet-ocp1.c b/epan/dissectors/packet-ocp1.c
index 98116746d8..d4f4b8f44c 100644
--- a/epan/dissectors/packet-ocp1.c
+++ b/epan/dissectors/packet-ocp1.c
@@ -52,7 +52,7 @@ struct oca_request_hash_val {
guint16 tree_level;
guint16 method_index;
};
-static wmem_map_t *oca_request_hash_map = NULL;
+static wmem_map_t *oca_request_hash_map;
void proto_register_ocp1(void);
void proto_reg_handoff_ocp1(void);
@@ -2770,7 +2770,7 @@ dissect_ocp1_heur_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
dissect_ocp1_tcp(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
static gboolean
@@ -2781,7 +2781,7 @@ dissect_ocp1_heur_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
dissect_ocp1(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
void
diff --git a/epan/dissectors/packet-ocsp.c b/epan/dissectors/packet-ocsp.c
index 4453e34687..fae9c165eb 100644
--- a/epan/dissectors/packet-ocsp.c
+++ b/epan/dissectors/packet-ocsp.c
@@ -95,25 +95,25 @@ static int hf_ocsp_crlTime; /* GeneralizedTime */
/* Initialize the subtree pointers */
static gint ett_ocsp;
-static gint ett_ocsp_OCSPRequest;
-static gint ett_ocsp_TBSRequest;
-static gint ett_ocsp_SEQUENCE_OF_Request;
-static gint ett_ocsp_Signature;
-static gint ett_ocsp_SEQUENCE_OF_Certificate;
-static gint ett_ocsp_Request;
-static gint ett_ocsp_CertID;
-static gint ett_ocsp_OCSPResponse;
-static gint ett_ocsp_ResponseBytes;
-static gint ett_ocsp_BasicOCSPResponse;
-static gint ett_ocsp_ResponseData;
-static gint ett_ocsp_SEQUENCE_OF_SingleResponse;
-static gint ett_ocsp_ResponderID;
-static gint ett_ocsp_SingleResponse;
-static gint ett_ocsp_CertStatus;
-static gint ett_ocsp_RevokedInfo;
-static gint ett_ocsp_AcceptableResponses;
-static gint ett_ocsp_ServiceLocator;
-static gint ett_ocsp_CrlID;
+static int ett_ocsp_OCSPRequest;
+static int ett_ocsp_TBSRequest;
+static int ett_ocsp_SEQUENCE_OF_Request;
+static int ett_ocsp_Signature;
+static int ett_ocsp_SEQUENCE_OF_Certificate;
+static int ett_ocsp_Request;
+static int ett_ocsp_CertID;
+static int ett_ocsp_OCSPResponse;
+static int ett_ocsp_ResponseBytes;
+static int ett_ocsp_BasicOCSPResponse;
+static int ett_ocsp_ResponseData;
+static int ett_ocsp_SEQUENCE_OF_SingleResponse;
+static int ett_ocsp_ResponderID;
+static int ett_ocsp_SingleResponse;
+static int ett_ocsp_CertStatus;
+static int ett_ocsp_RevokedInfo;
+static int ett_ocsp_AcceptableResponses;
+static int ett_ocsp_ServiceLocator;
+static int ett_ocsp_CrlID;
diff --git a/epan/dissectors/packet-oer.c b/epan/dissectors/packet-oer.c
index 2b348c2169..8021fd0b57 100644
--- a/epan/dissectors/packet-oer.c
+++ b/epan/dissectors/packet-oer.c
@@ -50,7 +50,7 @@ static expert_field ei_oer_undecoded;
static expert_field ei_oer_open_type;
/* whether the OER helpers should put the internal OER fields into the tree or not. */
-static gboolean display_internal_oer_fields = FALSE;
+static bool display_internal_oer_fields;
/*
#define DEBUG_ENTRY(x) \
@@ -180,7 +180,7 @@ dissect_oer_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx,
}
/* 9 Encoding of Boolean values */
-guint32 dissect_oer_boolean(tvbuff_t* tvb, guint32 offset, asn1_ctx_t* actx, proto_tree* tree, int hf_index, gboolean* bool_val)
+guint32 dissect_oer_boolean(tvbuff_t* tvb, guint32 offset, asn1_ctx_t* actx, proto_tree* tree, int hf_index, bool* bool_val)
{
guint32 val = 0;
DEBUG_ENTRY("dissect_oer_boolean");
diff --git a/epan/dissectors/packet-oer.h b/epan/dissectors/packet-oer.h
index fc502902a3..8dbf8741ef 100644
--- a/epan/dissectors/packet-oer.h
+++ b/epan/dissectors/packet-oer.h
@@ -77,7 +77,7 @@ WS_DLL_PUBLIC guint32 dissect_oer_object_identifier(tvbuff_t *tvb, guint32 offse
//WS_DLL_PUBLIC guint32 dissect_oer_relative_oid(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, tvbuff_t **value_tvb);
//WS_DLL_PUBLIC guint32 dissect_oer_relative_oid_str(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, const char **value_stringx);
-WS_DLL_PUBLIC guint32 dissect_oer_boolean(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, gboolean *bool_val);
+WS_DLL_PUBLIC guint32 dissect_oer_boolean(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, bool *bool_val);
WS_DLL_PUBLIC guint32 dissect_oer_integer(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, gint32 *value);
@@ -110,9 +110,9 @@ WS_DLL_PUBLIC guint32 dissect_oer_open_type(tvbuff_t *tvb, guint32 offset, asn1_
//WS_DLL_PUBLIC guint32 dissect_oer_external_type(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, oer_type_fn type_cb);
//extern guint32 dissect_oer_size_constrained_type(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, oer_type_fn type_cb, const gchar *name, int min_len, int max_len, gboolean has_extension);
-///extern gboolean get_size_constraint_from_stack(asn1_ctx_t *actx, const gchar *name, int *pmin_len, int *pmax_len, gboolean *phas_extension);
+///extern gboolean get_size_constraint_from_stack(asn1_ctx_t *actx, const gchar *name, int *pmin_len, int *pmax_len, bool *phas_extension);
-//extern guint32 dissect_oer_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index, guint32 *length, gboolean *is_fragmented);
+//extern guint32 dissect_oer_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index, guint32 *length, bool *is_fragmented);
//WS_DLL_PUBLIC int call_oer_oid_callback(const char *oid, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, asn1_ctx_t *actx, int hf_index);
//WS_DLL_PUBLIC void register_oer_oid_dissector(const char *oid, dissector_t dissector, int proto, const char *name);
diff --git a/epan/dissectors/packet-olsr.c b/epan/dissectors/packet-olsr.c
index d9d79ef068..6852d8b1ae 100644
--- a/epan/dissectors/packet-olsr.c
+++ b/epan/dissectors/packet-olsr.c
@@ -139,8 +139,8 @@ static const value_string nameservice_type_vals[] = {
{ 0, NULL }
};
-static gboolean global_olsr_olsrorg = TRUE;
-static gboolean global_olsr_nrlolsr = TRUE;
+static bool global_olsr_olsrorg = true;
+static bool global_olsr_nrlolsr = true;
static double getOlsrTime(guint8 timeval) {
int high_bits, low_bits;
@@ -287,7 +287,7 @@ static int dissect_olsr_hello(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ols
offset += 2;
- /*---------------------Dissect Hello Emission Invertal-------------------*/
+ /*---------------------Dissect Hello Emission Inverval-------------------*/
hTime = getOlsrTime(tvb_get_guint8(tvb, offset));
proto_tree_add_double_format_value(olsr_tree, hf_olsr_htime, tvb, offset, 1, hTime,
"%.3f (in seconds)", hTime);
diff --git a/epan/dissectors/packet-omron-fins.c b/epan/dissectors/packet-omron-fins.c
index d81979b115..7e8d21495d 100644
--- a/epan/dissectors/packet-omron-fins.c
+++ b/epan/dissectors/packet-omron-fins.c
@@ -60,7 +60,7 @@ static gint ett_omron_netw_nodes_cyclic_err_ctrs;
static gint ett_omron_data_link_status_tree;
#if 0
-static gboolean gPREF_HEX = FALSE;
+static bool gPREF_HEX;
#endif
/* TCP Header fields */
diff --git a/epan/dissectors/packet-opa-fe.c b/epan/dissectors/packet-opa-fe.c
index edd2967f3e..a1b9bd9722 100644
--- a/epan/dissectors/packet-opa-fe.c
+++ b/epan/dissectors/packet-opa-fe.c
@@ -42,9 +42,9 @@ static gint hf_opa_fe_Reserved64;
static dissector_handle_t opa_fe_handle;
static dissector_handle_t opa_mad_handle;
-static range_t *global_fe_ssl_range = NULL;
+static range_t *global_fe_ssl_range;
-static range_t *fe_ssl_range = NULL;
+static range_t *fe_ssl_range;
static guint get_opa_fe_message_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
{
diff --git a/epan/dissectors/packet-opa-mad.c b/epan/dissectors/packet-opa-mad.c
index 20015bdef0..7b07ff9644 100644
--- a/epan/dissectors/packet-opa-mad.c
+++ b/epan/dissectors/packet-opa-mad.c
@@ -2696,14 +2696,14 @@ static dissector_table_t ethertype_dissector_table;
static reassembly_table opa_mad_rmpp_reassembly_table;
-static gboolean pref_parse_on_mad_status_error = FALSE;
-static gboolean pref_attempt_rmpp_defragment = TRUE;
+static bool pref_parse_on_mad_status_error;
+static bool pref_attempt_rmpp_defragment = true;
-static range_t *global_mad_vendor_class = NULL;
-static range_t *global_mad_vendor_rmpp_class = NULL;
-static range_t *global_mad_application_class = NULL;
-static range_t *global_mad_reserved_class = NULL;
-static range_t *global_mad_opa_class = NULL;
+static range_t *global_mad_vendor_class;
+static range_t *global_mad_vendor_rmpp_class;
+static range_t *global_mad_application_class;
+static range_t *global_mad_reserved_class;
+static range_t *global_mad_opa_class;
static gint parse_MAD_AttributeModifier(proto_tree *MAD_tree, tvbuff_t *tvb, gint *offset, MAD_t *MAD)
{
@@ -10099,7 +10099,7 @@ void proto_register_opa_mad(void)
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }
},
- /* PortNeighrborNode*/
+ /* PortNeighborNode*/
{ &hf_opa_PortInfo_PortNeighborMode_reserved, {
"PortNeighborMode Reserved (4 bits)", "opa.portinfo.portneighbormode.reserved",
FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL }
@@ -12084,7 +12084,7 @@ void proto_register_opa_mad(void)
FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }
},
- /* Gerneral PA */
+ /* General PA */
{ &hf_opa_ImageID_imageNumber, {
"imageNumber", "opa.pa.imageid.imagenumber",
FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL }
diff --git a/epan/dissectors/packet-openflow.c b/epan/dissectors/packet-openflow.c
index 8ef18926dd..896a558c77 100644
--- a/epan/dissectors/packet-openflow.c
+++ b/epan/dissectors/packet-openflow.c
@@ -26,7 +26,7 @@ void proto_reg_handoff_openflow(void);
#define OFP_LEGACY_PORT 6633
#define OFP_LEGACY2_PORT 6634
#define OFP_IANA_PORT 6653
-static range_t *g_openflow_ports = NULL;
+static range_t *g_openflow_ports;
static dissector_handle_t openflow_handle;
static dissector_handle_t openflow_v1_handle;
@@ -40,7 +40,7 @@ static int hf_openflow_version;
static expert_field ei_openflow_version;
-static gboolean openflow_desegment = TRUE;
+static bool openflow_desegment = true;
#define OFP_VERSION_1_0 1
#define OFP_VERSION_1_1 2
diff --git a/epan/dissectors/packet-openflow_v6.c b/epan/dissectors/packet-openflow_v6.c
index ae1b8fa017..48b254c529 100644
--- a/epan/dissectors/packet-openflow_v6.c
+++ b/epan/dissectors/packet-openflow_v6.c
@@ -1284,7 +1284,7 @@ static const value_string openflow_v6_header_type_namespace_values[] = {
typedef struct oxm_header {
guint32 oxm_class;
- gboolean oxm_hm;
+ bool oxm_hm;
guint32 oxm_field;
guint32 oxm_length;
} oxm_header;
@@ -1292,7 +1292,7 @@ static int
dissect_openflow_oxm_header_v6(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 length _U_, oxm_header *retval)
{
guint32 oxm_class;
- gboolean oxm_hm;
+ bool oxm_hm;
guint32 oxm_field;
guint32 oxm_length;
diff --git a/epan/dissectors/packet-opensafety.c b/epan/dissectors/packet-opensafety.c
index 252aacc606..bd17b0ceb9 100644
--- a/epan/dissectors/packet-opensafety.c
+++ b/epan/dissectors/packet-opensafety.c
@@ -220,7 +220,7 @@ static gint ett_opensafety_ssdo_fragment;
static gint ett_opensafety_ssdo_fragments;
/* Definitions for the openSAFETY ov. UDP transport protocol */
-static dissector_handle_t opensafety_udptransport_handle = NULL;
+static dissector_handle_t opensafety_udptransport_handle;
static int proto_oss_udp_transport;
@@ -263,37 +263,37 @@ static const fragment_items oss_frag_items = {
static const char *global_scm_udid = "00:00:00:00:00:00";
-static dissector_handle_t data_dissector = NULL;
-static dissector_handle_t opensafety_udpdata_handle = NULL;
-static dissector_handle_t opensafety_mbtcp_handle = NULL;
-static dissector_handle_t opensafety_pnio_handle = NULL;
+static dissector_handle_t data_dissector;
+static dissector_handle_t opensafety_udpdata_handle;
+static dissector_handle_t opensafety_mbtcp_handle;
+static dissector_handle_t opensafety_pnio_handle;
-static gboolean global_display_intergap_data = FALSE;
-static gboolean global_scm_udid_autoset = TRUE;
-static gboolean global_udp_frame2_first = FALSE;
-static gboolean global_siii_udp_frame2_first = FALSE;
-static gboolean global_mbtcp_big_endian = FALSE;
+static bool global_display_intergap_data;
+static bool global_scm_udid_autoset = true;
+static bool global_udp_frame2_first;
+static bool global_siii_udp_frame2_first;
+static bool global_mbtcp_big_endian;
static guint global_network_udp_port = OPENSAFETY_UDP_PORT;
static guint global_network_udp_port_sercosiii = OPENSAFETY_UDP_PORT_SIII;
-static gboolean global_classify_transport = TRUE;
+static bool global_classify_transport = true;
-static gboolean global_enable_udp = TRUE;
-static gboolean global_enable_mbtcp = TRUE;
+static bool global_enable_udp = true;
+static bool global_enable_mbtcp = true;
-static gboolean global_opensafety_debug_verbose = FALSE;
+static bool global_opensafety_debug_verbose;
static const char * global_filter_nodes = "";
-static gboolean global_show_only_node_in_filter = TRUE;
-static wmem_list_t * global_filter_list = NULL;
+static bool global_show_only_node_in_filter = true;
+static wmem_list_t * global_filter_list;
static gboolean heuristic_siii_dissection_enabled = TRUE;
static heur_dissector_list_t heur_opensafety_spdo_subdissector_list;
-static gboolean bDissector_Called_Once_Before = FALSE;
+static gboolean bDissector_Called_Once_Before;
/* Using local_scm_udid as read variable for global_scm_udid, to
* enable automatic detection of scm udid */
-static char *local_scm_udid = NULL;
+static char *local_scm_udid;
static reassembly_table os_reassembly_table;
diff --git a/epan/dissectors/packet-openvpn.c b/epan/dissectors/packet-openvpn.c
index 7ccb38f6e4..2e3c0610ec 100644
--- a/epan/dissectors/packet-openvpn.c
+++ b/epan/dissectors/packet-openvpn.c
@@ -80,10 +80,10 @@ static dissector_handle_t openvpn_tcp_handle;
static dissector_handle_t tls_handle;
/* Preferences */
-static gboolean pref_long_format = TRUE;
-static gboolean pref_tls_auth = FALSE;
-static gboolean pref_tls_auth_override = FALSE;
-static gboolean pref_tls_crypt_override = FALSE;
+static bool pref_long_format = true;
+static bool pref_tls_auth;
+static bool pref_tls_auth_override;
+static bool pref_tls_crypt_override;
static guint tls_auth_hmac_size = 20; /* Default SHA-1 160 Bits */
static const value_string openvpn_message_types[] =
diff --git a/epan/dissectors/packet-openwire.c b/epan/dissectors/packet-openwire.c
index 76cc6b7a86..2f84844e3f 100644
--- a/epan/dissectors/packet-openwire.c
+++ b/epan/dissectors/packet-openwire.c
@@ -267,8 +267,8 @@ static expert_field ei_openwire_body_type_not_supported;
static dissector_handle_t openwire_tcp_handle;
-static gboolean openwire_desegment = TRUE;
-static gboolean openwire_verbose_type = FALSE;
+static bool openwire_desegment = true;
+static bool openwire_verbose_type;
#define OPENWIRE_PORT_TCP 61616
diff --git a/epan/dissectors/packet-opsi.c b/epan/dissectors/packet-opsi.c
index 62075da2a3..644c7fd964 100644
--- a/epan/dissectors/packet-opsi.c
+++ b/epan/dissectors/packet-opsi.c
@@ -413,7 +413,7 @@ static opsi_attribute_handle_t opsi_attributes[] = {
#define OPSI_ATTRIBUTES_COUNT (sizeof(opsi_attributes)/sizeof(opsi_attribute_handle_t))
/* Desegmentation of OPSI (over TCP) */
-static gboolean opsi_desegment = TRUE;
+static bool opsi_desegment = true;
static void
decode_string_attribute(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item, int* hfValue, int offset, int length)
@@ -484,17 +484,23 @@ get_opsi_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _
}
static int
-get_opsi_attribute_index(int min, int max, int attribute_type)
+// NOLINTNEXTLINE(misc-no-recursion)
+get_opsi_attribute_index(packet_info *pinfo, int min, int max, int attribute_type)
{
int middle, at;
middle = (min+max)/2;
at = opsi_attributes[middle].attribute_type;
if (at == attribute_type) return middle;
+ int attr_idx;
+ increment_dissection_depth(pinfo);
if (attribute_type > at) {
- return (middle == max) ? -1 : get_opsi_attribute_index(middle+1, max, attribute_type);
+ attr_idx = (middle == max) ? -1 : get_opsi_attribute_index(pinfo, middle+1, max, attribute_type);
+ } else {
+ attr_idx = (middle == min) ? -1 : get_opsi_attribute_index(pinfo, min, middle-1, attribute_type);
}
- return (middle == min) ? -1 : get_opsi_attribute_index(min, middle-1, attribute_type);
+ decrement_dissection_depth(pinfo);
+ return attr_idx;
}
@@ -512,7 +518,7 @@ dissect_attributes(tvbuff_t *tvb, packet_info *pinfo, proto_tree *opsi_tree, int
attribute_length = tvb_get_ntohs(tvb, offset+2);
if (attribute_length > length) break;
/* We perform a standard log(n) lookup */
- i = get_opsi_attribute_index(0, OPSI_ATTRIBUTES_COUNT-1, attribute_type);
+ i = get_opsi_attribute_index(pinfo, 0, OPSI_ATTRIBUTES_COUNT-1, attribute_type);
if (i == -1) {
proto_tree_add_expert_format(opsi_tree, pinfo, &ei_opsi_unknown_attribute, tvb, offset, attribute_length,
"Unknown attribute (%d)", attribute_type);
@@ -569,7 +575,7 @@ dissect_opsi_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
static int
dissect_opsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
{
- /* We should mimimally grab the header */
+ /* We should minimally grab the header */
tcp_dissect_pdus(tvb, pinfo, tree, opsi_desegment, HEADER_LENGTH, get_opsi_pdu_len,
dissect_opsi_pdu, data);
return tvb_reported_length(tvb);
@@ -845,8 +851,7 @@ proto_register_opsi(void)
expert_module_t* expert_opsi;
/* Register the protocol name and description */
- proto_opsi = proto_register_protocol("Open Policy Service Interface",
- "OPSI", "opsi");
+ proto_opsi = proto_register_protocol("Open Policy Service Interface", "OPSI", "opsi");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_opsi, hf, array_length(hf));
diff --git a/epan/dissectors/packet-oran.c b/epan/dissectors/packet-oran.c
index 63b68e5104..8f42361b6f 100644
--- a/epan/dissectors/packet-oran.c
+++ b/epan/dissectors/packet-oran.c
@@ -291,13 +291,13 @@ static guint pref_sample_bit_width_downlink = 14;
static gint pref_iqCompressionUplink = COMP_BLOCK_FP;
static gint pref_iqCompressionDownlink = COMP_BLOCK_FP;
-static gboolean pref_includeUdCompHeaderUplink = FALSE;
-static gboolean pref_includeUdCompHeaderDownlink = FALSE;
+static bool pref_includeUdCompHeaderUplink;
+static bool pref_includeUdCompHeaderDownlink;
static guint pref_data_plane_section_total_rbs = 273;
static guint pref_num_weights_per_bundle = 32;
static guint pref_num_bf_antennas = 32;
-static gboolean pref_showIQSampleValues = TRUE;
+static bool pref_showIQSampleValues = true;
static const enum_val_t compression_options[] = {
@@ -817,7 +817,7 @@ typedef struct {
} flow_state_t;
/* Table maintained on first pass from eAxC (guint16) -> flow_state_t* */
-static wmem_tree_t *flow_states_table = NULL;
+static wmem_tree_t *flow_states_table;
@@ -1194,7 +1194,7 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
ext11_settings_t ext11_settings;
memset(&ext11_settings, 0, sizeof(ext11_settings));
- gboolean extension_flag = FALSE;
+ bool extension_flag = false;
/* These sections are similar, so handle as common with per-type differences */
if (sectionType <= SEC_C_UE_SCHED) {
@@ -1910,7 +1910,7 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
case 11: /* Flexible Weights Extension Type */
{
- gboolean disableBFWs;
+ bool disableBFWs;
guint32 numBundPrb;
/* disableBFWs */
@@ -2198,7 +2198,7 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
}
/* disableBFWs */
- gboolean disableBFWs;
+ bool disableBFWs;
proto_tree_add_item_ret_boolean(extension_tree, hf_oran_disable_bfws,
tvb, offset, 1, ENC_BIG_ENDIAN, &disableBFWs);
if (disableBFWs) {
@@ -2356,7 +2356,7 @@ static int dissect_oran_c_section(tvbuff_t *tvb, proto_tree *tree, packet_info *
/* reserved (2 bits? - spec says 1) */
proto_tree_add_bits_item(pattern_tree, hf_oran_reserved, tvb, offset*8, 2, ENC_BIG_ENDIAN);
/* rbgIncl */
- gboolean rbgIncl;
+ bool rbgIncl;
proto_tree_add_item_ret_boolean(pattern_tree, hf_oran_RbgIncl, tvb, offset, 1, ENC_BIG_ENDIAN, &rbgIncl);
offset += 1;
diff --git a/epan/dissectors/packet-osc.c b/epan/dissectors/packet-osc.c
index 2e8feb1a42..7de395522c 100644
--- a/epan/dissectors/packet-osc.c
+++ b/epan/dissectors/packet-osc.c
@@ -295,8 +295,8 @@ static const char *immediate_str = "Immediate";
static const char *bundle_str = "#bundle";
/* Initialize the protocol and registered fields */
-static dissector_handle_t osc_udp_handle = NULL;
-static dissector_handle_t osc_tcp_handle = NULL;
+static dissector_handle_t osc_udp_handle;
+static dissector_handle_t osc_tcp_handle;
static int proto_osc;
@@ -385,7 +385,7 @@ is_valid_format(const char *format)
/* Dissect OSC message */
static int
-dissect_osc_message(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint offset, gint len)
+dissect_osc_message(tvbuff_t *tvb, packet_info *pinfo, proto_item *ti, proto_tree *osc_tree, gint offset, gint len)
{
proto_tree *message_tree;
proto_tree *header_tree;
@@ -402,7 +402,7 @@ dissect_osc_message(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint of
/* peek/read path */
path_offset = offset;
- path = tvb_get_stringz_enc(wmem_packet_scope(), tvb, path_offset, &path_len, ENC_ASCII);
+ path = tvb_get_stringz_enc(pinfo->pool, tvb, path_offset, &path_len, ENC_ASCII);
if( (rem = path_len%4) ) path_len += 4-rem;
if(!is_valid_path(path))
@@ -410,7 +410,7 @@ dissect_osc_message(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint of
/* peek/read fmt */
format_offset = path_offset + path_len;
- format = tvb_get_stringz_enc(wmem_packet_scope(), tvb, format_offset, &format_len, ENC_ASCII);
+ format = tvb_get_stringz_enc(pinfo->pool, tvb, format_offset, &format_len, ENC_ASCII);
if( (rem = format_len%4) ) format_len += 4-rem;
if(!is_valid_format(format))
@@ -725,7 +725,8 @@ dissect_osc_message(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint of
/* Dissect OSC bundle */
static int
-dissect_osc_bundle(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint offset, gint len)
+// NOLINTNEXTLINE(misc-no-recursion)
+dissect_osc_bundle(tvbuff_t *tvb, packet_info *pinfo, proto_item *ti, proto_tree *osc_tree, gint offset, gint len)
{
proto_tree *bundle_tree;
gint end = offset + len;
@@ -768,21 +769,23 @@ dissect_osc_bundle(tvbuff_t *tvb, proto_item *ti, proto_tree *osc_tree, gint off
continue;
/* peek first bundle element char */
+ increment_dissection_depth(pinfo);
switch(tvb_get_guint8(tvb, offset))
{
case '#': /* this is a bundle */
- if(dissect_osc_bundle(tvb, ti, bundle_tree, offset, size))
+ if(dissect_osc_bundle(tvb, pinfo, ti, bundle_tree, offset, size))
return -1;
else
break;
case '/': /* this is a message */
- if(dissect_osc_message(tvb, ti, bundle_tree, offset, size))
+ if(dissect_osc_message(tvb, pinfo, ti, bundle_tree, offset, size))
return -1;
else
break;
default:
return -1; /* neither message nor bundle */
}
+ decrement_dissection_depth(pinfo);
/* check for integer overflow */
if(size > G_MAXINT - offset)
@@ -817,12 +820,12 @@ dissect_osc_pdu_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
switch(tvb_get_guint8(tvb, offset))
{
case '#': /* this is a bundle */
- if(dissect_osc_bundle(tvb, ti, osc_tree, offset, len))
+ if(dissect_osc_bundle(tvb, pinfo, ti, osc_tree, offset, len))
return;
else
break;
case '/': /* this is a message */
- if(dissect_osc_message(tvb, ti, osc_tree, offset, len))
+ if(dissect_osc_message(tvb, pinfo, ti, osc_tree, offset, len))
return;
else
break;
diff --git a/epan/dissectors/packet-oscore.c b/epan/dissectors/packet-oscore.c
index 889b5c93b2..cdc5884a84 100644
--- a/epan/dissectors/packet-oscore.c
+++ b/epan/dissectors/packet-oscore.c
@@ -66,9 +66,9 @@ static expert_field ei_oscore_info_fetch_failed;
static gint ett_oscore;
/* UAT variables */
-static uat_t *oscore_context_uat = NULL;
-static oscore_context_t *oscore_contexts = NULL;
-static guint num_oscore_contexts = 0;
+static uat_t *oscore_context_uat;
+static oscore_context_t *oscore_contexts;
+static guint num_oscore_contexts;
/* Enumeration for COSE algorithms used by OSCORE */
static const value_string oscore_context_alg_vals[] = {
diff --git a/epan/dissectors/packet-osi-options.c b/epan/dissectors/packet-osi-options.c
index 49a24bccde..977d75cc17 100644
--- a/epan/dissectors/packet-osi-options.c
+++ b/epan/dissectors/packet-osi-options.c
@@ -18,49 +18,10 @@
#include <epan/packet.h>
#include <epan/expert.h>
+#include <epan/decode_as.h>
#include "packet-osi.h"
#include "packet-osi-options.h"
-
-/* ATN traffic types (ICAO doc 9705 Edition3 SV5 5.6.2.2.6.7.3) */
-#define ATN_TT_ATSC_NO_PREFERENCE 0x01
-#define ATN_TT_ATSC_CLASS_A 0x10
-#define ATN_TT_ATSC_CLASS_B 0x11
-#define ATN_TT_ATSC_CLASS_C 0x12
-#define ATN_TT_ATSC_CLASS_D 0x13
-#define ATN_TT_ATSC_CLASS_E 0x14
-#define ATN_TT_ATSC_CLASS_F 0x15
-#define ATN_TT_ATSC_CLASS_G 0x16
-#define ATN_TT_ATSC_CLASS_H 0x17
-#define ATN_TT_AOC_NO_PREFERENCE 0x21
-#define ATN_TT_AOC_G 0x22
-#define ATN_TT_AOC_V 0x23
-#define ATN_TT_AOC_S 0x24
-#define ATN_TT_AOC_H 0x25
-#define ATN_TT_AOC_M 0x26
-#define ATN_TT_AOC_G_V 0x27
-#define ATN_TT_AOC_G_V_S 0x28
-#define ATN_TT_AOC_G_V_H_S 0x29
-#define ATN_TT_ADM_NO_PREFERENCE 0x30
-#define ATN_TT_SYS_MGMT_NO_PREFERENCE 0x60
-
-/* ATN security classification (ICAO doc 9705 Edition3 SV5 5.6.2.2.6.8.3) */
-#define ATN_SC_UNCLASSIFIED 0x01
-#define ATN_SC_RESTRICTED 0x02
-#define ATN_SC_CONFIDENTIAL 0x03
-#define ATN_SC_SECRET 0x04
-#define ATN_SC_TOP_SECRET 0x05
-
-/* ATN security label records */
-#define OSI_OPT_SECURITY_ATN_SR 0xc0
-#define OSI_OPT_SECURITY_ATN_TT 0x0f
-#define OSI_OPT_SECURITY_ATN_SC 0x03
-#define OSI_OPT_SECURITY_ATN_SR_LEN 6
-#define OSI_OPT_SECURITY_ATN_TT_LEN 1
-#define OSI_OPT_SECURITY_ATN_SC_LEN 1
-#define OSI_OPT_SECURITY_ATN_SI_MAX_LEN 8
-
-
#define OSI_OPT_SECURITY 0xc5
#define OSI_OPT_QOS_MAINTANANCE 0xc3
#define OSI_OPT_PRIORITY 0xcd
@@ -105,10 +66,6 @@
#define OSI_OPT_RFD_MASK 0xf0
#define OSI_OPT_RFD_SUB_MASK 0x0f
-extern gboolean clnp_decode_atn_options; /* as defined in packet-clnp.c */
-extern int hf_clnp_atntt; /* as defined in packet-clnp.c */
-extern int hf_clnp_atnsc; /* as defined in packet-clnp.c */
-
/* Generated from convert_proto_tree_add_text.pl */
static int hf_osi_options_address_mask;
static int hf_osi_options_transit_delay_vs_cost;
@@ -144,54 +101,6 @@ static gint ett_osi_redirect;
static expert_field ei_osi_options_none;
static expert_field ei_osi_options_rfd_error_class;
-static const guchar atn_security_registration_val[] = {
- 0x06, 0x04, 0x2b, 0x1b, 0x00, 0x00
-}; /* =iso(1).org(3).ICAO(27).ATN(0).TrafficType(0)*/
-
-static const value_string osi_opt_sec_atn_sr_vals[] = {
- {OSI_OPT_SECURITY_ATN_SR, "ATN Security Label"},
- {0, NULL}
-};
-
-static const value_string osi_opt_sec_atn_si_vals[] = {
- {OSI_OPT_SECURITY_ATN_TT, "Traffic Type and Routing"},
- {OSI_OPT_SECURITY_ATN_SC, "Security classification"},
- {0, NULL}
-};
-
-static const value_string osi_opt_sec_atn_tt_vals[] = {
- {ATN_TT_ATSC_NO_PREFERENCE, "ATSC No preference"},
- {ATN_TT_ATSC_CLASS_A, "ATSC Class A"},
- {ATN_TT_ATSC_CLASS_B, "ATSC Class B"},
- {ATN_TT_ATSC_CLASS_C, "ATSC Class C"},
- {ATN_TT_ATSC_CLASS_D, "ATSC Class D"},
- {ATN_TT_ATSC_CLASS_E, "ATSC Class E"},
- {ATN_TT_ATSC_CLASS_F, "ATSC Class F"},
- {ATN_TT_ATSC_CLASS_G, "ATSC Class G"},
- {ATN_TT_ATSC_CLASS_H, "ATSC Class H"},
- {ATN_TT_AOC_NO_PREFERENCE, "AOC No preference"},
- {ATN_TT_AOC_G, "AOC Gatelink only"},
- {ATN_TT_AOC_V, "AOC VHF only"},
- {ATN_TT_AOC_S, "AOC Satellite only"},
- {ATN_TT_AOC_H, "AOC HF only"},
- {ATN_TT_AOC_M, "AOC Mode S only"},
- {ATN_TT_AOC_G_V, "AOC Gatelink first, then VHF"},
- {ATN_TT_AOC_G_V_S, "AOC Gatelink first, then VHF, then Satellite"},
- {ATN_TT_AOC_G_V_H_S, "AOC Gatelink first, then VHF, then HF, then Satellite"},
- {ATN_TT_ADM_NO_PREFERENCE, "ATN Administrative No preference"},
- {ATN_TT_SYS_MGMT_NO_PREFERENCE, "ATN Systems Management No preference"},
- {0, NULL}
-};
-
-static const value_string osi_opt_sec_atn_sc_vals[] = {
- {ATN_SC_UNCLASSIFIED, "unclassified"},
- {ATN_SC_RESTRICTED, "restricted"},
- {ATN_SC_CONFIDENTIAL, "confidential"},
- {ATN_SC_SECRET, "secret"},
- {ATN_SC_TOP_SECRET, "top secret"},
- {0, NULL}
-};
-
static const value_string osi_opt_sec_vals[] = {
{OSI_OPT_SEC_RESERVED, "Reserved"},
{OSI_OPT_SEC_SRC_ADR_SPEC, "Source Address Specific"},
@@ -263,6 +172,7 @@ static const value_string osi_opt_rfd_reassembly[] = {
{0x00, "Reassembly interference"},
{0, NULL} };
+static dissector_table_t subdissector_decode_as_opt_security_table;
static void
dissect_option_qos(const guint8 qos, proto_tree *tree, tvbuff_t *tvb, int offset)
@@ -273,7 +183,7 @@ dissect_option_qos(const guint8 qos, proto_tree *tree, tvbuff_t *tvb, int offset
ti = proto_tree_add_item(tree, hf_osi_options_qos_maintenance, tvb, offset, 1, ENC_BIG_ENDIAN);
osi_qos_tree = proto_item_add_subtree(ti, ett_osi_qos);
- if ( ((qos & OSI_OPT_QOS_MASK) >> 6) == OSI_OPT_QOS_GLOBAL_UNIQUE) { /* Analye BIT field to get all Values */
+ if ( ((qos & OSI_OPT_QOS_MASK) >> 6) == OSI_OPT_QOS_GLOBAL_UNIQUE) { /* Analyze BIT field to get all Values */
proto_tree_add_item(osi_qos_tree, hf_osi_options_qos_reserved, tvb, offset, 1, ENC_NA);
proto_tree_add_item(osi_qos_tree, hf_osi_options_qos_sequencing_vs_transit_delay, tvb, offset, 1, ENC_NA);
proto_tree_add_item(osi_qos_tree, hf_osi_options_congestion_experienced, tvb, offset, 1, ENC_NA);
@@ -384,91 +294,6 @@ dissect_option_rfd(const guchar error, const guchar field, int offset,
proto_tree_add_uint(tree, hf_osi_options_rfd_field, tvb, offset + field, 1, field);
}
-/* dissect ATN security label used for policy based interdomain routing.*/
-/* For details see ICAO doc 9705 Edition 3 SV5 5.6.2.2.2.2 */
-static void
-dissect_option_atn_security_label(const guchar sub_type, guchar length,
- tvbuff_t *tvb, guint offset,
- proto_tree *tree)
-{
- proto_tree *atn_sl_tree;
- guchar len = 0;
- guint8 tag_name = 0;
- guint security_info_end = 0;
-
- /* check for ATN security label */
- if ( OSI_OPT_SECURITY_ATN_SR != sub_type )
- return;
-
- /* check Security Registration Length */
- len = tvb_get_guint8(tvb, ++offset);
- if ( OSI_OPT_SECURITY_ATN_SR_LEN != len )
- return;
-
- /* check Security Registration ID */
- if ( tvb_memeql(tvb, ++offset , atn_security_registration_val, OSI_OPT_SECURITY_ATN_SR_LEN) )
- return;
-
- atn_sl_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_osi_qos, NULL,
- val_to_str(sub_type, osi_opt_sec_atn_sr_vals, "Unknown (0x%x)"));
-
- offset += OSI_OPT_SECURITY_ATN_SR_LEN;
-
- /* Security Information length */
- len = tvb_get_guint8(tvb, offset);
-
- if ( OSI_OPT_SECURITY_ATN_SI_MAX_LEN < len )
- return;
-
- offset++;
-
- security_info_end = offset + len;
- while ( offset < security_info_end ) {
- /* check tag name length*/
- len = tvb_get_guint8(tvb, offset); /* check tag name length*/
- if ( len != 1 )
- return;
-
- offset++;
-
- tag_name = tvb_get_guint8(tvb, offset);
- offset++;
-
- switch(tag_name) {
- case OSI_OPT_SECURITY_ATN_TT:
- /* check tag set length*/
- len = tvb_get_guint8(tvb, offset);
- if ( len != OSI_OPT_SECURITY_ATN_TT_LEN )
- return;
-
- offset++;
- proto_tree_add_uint_format(atn_sl_tree, hf_clnp_atntt, tvb, offset, 1,
- tvb_get_guint8(tvb, offset), "%s: %s",
- val_to_str(OSI_OPT_SECURITY_ATN_TT, osi_opt_sec_atn_si_vals, "Unknown (0x%x)"),
- val_to_str(tvb_get_guint8(tvb, offset ), osi_opt_sec_atn_tt_vals, "Unknown (0x%x)"));
- offset += len;
- break;
-
- case OSI_OPT_SECURITY_ATN_SC:
- /* check tag set length*/
- len = tvb_get_guint8(tvb, offset);
- if ( len != OSI_OPT_SECURITY_ATN_SC_LEN )
- return;
-
- offset++;
- proto_tree_add_uint_format(atn_sl_tree, hf_clnp_atnsc, tvb, offset, 1,
- tvb_get_guint8(tvb, offset), "%s: %s",
- val_to_str(OSI_OPT_SECURITY_ATN_SC, osi_opt_sec_atn_si_vals, "Unknown (0x%x)"),
- val_to_str(tvb_get_guint8(tvb, offset ), osi_opt_sec_atn_sc_vals, "Unknown (0x%x)"));
- offset += len;
- break;
-
- default:
- return;
- }
- }
-}
-
/* ############################## Dissection Functions ###################### */
/*
@@ -496,6 +321,8 @@ dissect_osi_options(guchar opt_len, tvbuff_t *tvb, int offset, proto_tree *tree,
guchar parm_len = 0;
guchar parm_type = 0;
guint8 octet;
+ uint32_t sec_type;
+ tvbuff_t *next_tvb;
osi_option_tree = proto_tree_add_subtree(tree, tvb, offset, opt_len,
ett_osi_options, &ti, "### Option Section ###");
@@ -515,13 +342,30 @@ dissect_osi_options(guchar opt_len, tvbuff_t *tvb, int offset, proto_tree *tree,
break;
case OSI_OPT_SECURITY:
- octet = tvb_get_guint8(tvb, offset);
- if ( clnp_decode_atn_options ) {
- dissect_option_atn_security_label(octet,parm_len,tvb, offset,
- osi_option_tree);
- } else {
- ti = proto_tree_add_item(osi_option_tree, hf_osi_options_security_type, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_item_set_len(ti, parm_len);
+ /*
+ * This is unspecified by ISO 8473, and the interpretation
+ * of the value of the security option appears to be
+ * specified by various profiles, such as GOSIP, TUBA, and
+ * ATN.
+ *
+ * Thus, we use a payload dissector, so the user can
+ * specify which dissector to use.
+ */
+ proto_tree_add_item_ret_uint(osi_option_tree, hf_osi_options_security_type, tvb, offset, 1, ENC_BIG_ENDIAN, &sec_type);
+ /* XXX */
+ switch ( sec_type ) {
+
+ case OSI_OPT_SEC_RESERVED:
+ case OSI_OPT_SEC_SRC_ADR_SPEC:
+ case OSI_OPT_SEC_DST_ADR_SPEC:
+ default:
+ break;
+
+ case OSI_OPT_SEC_GLOBAL_UNIQUE:
+ next_tvb = tvb_new_subset_length(tvb, offset + 1, parm_len - 1);
+ dissector_try_payload(subdissector_decode_as_opt_security_table,
+ next_tvb, pinfo, osi_option_tree);
+ break;
}
break;
@@ -640,6 +484,9 @@ proto_register_osi_options(void) {
proto_register_subtree_array(ett, array_length(ett));
expert_osi_options = expert_register_protocol(proto_osi);
expert_register_field_array(expert_osi_options, ei, array_length(ei));
+
+ subdissector_decode_as_opt_security_table = register_decode_as_next_proto(proto_osi,
+ "osi.opt_security", "OSI Security Option", NULL);
}
/*
@@ -654,4 +501,3 @@ proto_register_osi_options(void) {
* vi: set shiftwidth=2 tabstop=8 expandtab:
* :indentSize=2:tabSize=8:noTabs=true:
*/
-
diff --git a/epan/dissectors/packet-osi.c b/epan/dissectors/packet-osi.c
index 684a57dedc..5cfdd91fb3 100644
--- a/epan/dissectors/packet-osi.c
+++ b/epan/dissectors/packet-osi.c
@@ -39,7 +39,7 @@ static dissector_handle_t osi_juniper_handle;
/* Preferences for OSI over TPKT over TCP */
-static gboolean tpkt_desegment = FALSE;
+static bool tpkt_desegment;
gboolean
osi_calc_checksum( tvbuff_t *tvb, int offset, guint len, guint32* c0, guint32* c1) {
diff --git a/epan/dissectors/packet-ositp.c b/epan/dissectors/packet-ositp.c
index 426a71da9b..e05f66f5bf 100644
--- a/epan/dissectors/packet-ositp.c
+++ b/epan/dissectors/packet-ositp.c
@@ -338,18 +338,18 @@ static heur_dissector_list_t cltp_heur_subdissector_list;
* Reassembly of COTP.
*/
static reassembly_table cotp_reassembly_table;
-static guint16 cotp_dst_ref = 0;
-static gboolean cotp_frame_reset = FALSE;
-static gboolean cotp_last_fragment = FALSE;
+static guint16 cotp_dst_ref;
+static gboolean cotp_frame_reset;
+static gboolean cotp_last_fragment;
#define TSAP_DISPLAY_AUTO 0
#define TSAP_DISPLAY_STRING 1
#define TSAP_DISPLAY_BYTES 2
/* options */
-static gboolean cotp_reassemble = TRUE;
+static bool cotp_reassemble = true;
static gint32 tsap_display = TSAP_DISPLAY_AUTO;
-static gboolean cotp_decode_atn = FALSE;
+static bool cotp_decode_atn;
static const enum_val_t tsap_display_options[] = {
{"auto", "As strings if printable", TSAP_DISPLAY_AUTO},
diff --git a/epan/dissectors/packet-osmo_trx.c b/epan/dissectors/packet-osmo_trx.c
index c64b5aace2..244c28e582 100644
--- a/epan/dissectors/packet-osmo_trx.c
+++ b/epan/dissectors/packet-osmo_trx.c
@@ -254,9 +254,9 @@ struct otrxd_pdu_info {
/* PDU version */
guint32 ver;
/* BATCH.ind marker */
- gboolean batch;
+ bool batch;
/* SHADOW.ind marker */
- gboolean shadow;
+ bool shadow;
/* Number of batched PDUs */
guint32 num_pdus;
/* TRX (RF channel) number */
@@ -266,7 +266,7 @@ struct otrxd_pdu_info {
/* TDMA timeslot number */
guint32 tn;
/* NOPE.{ind,req} marker */
- gboolean nope;
+ bool nope;
/* Modulation type and string */
enum otrxd_mod_type mod;
const gchar *mod_str;
diff --git a/epan/dissectors/packet-ospf.c b/epan/dissectors/packet-ospf.c
index 77c1d3a25a..d1722c3816 100644
--- a/epan/dissectors/packet-ospf.c
+++ b/epan/dissectors/packet-ospf.c
@@ -528,7 +528,7 @@ static const value_string ext_pfx_tlv_af_vals[] = {
{0, NULL}
};
-/* OSPF Externded Prefix Sub-TLV Registry */
+/* OSPF Extended Prefix Sub-TLV Registry */
#define SR_STLV_SID_LABEL 1
#define SR_STLV_PREFIX_SID 2
@@ -1185,7 +1185,7 @@ static int * const bf_v2_options_lsa7[] = {
&hf_ospf_v2_options_mt,
NULL
};
-/* Structures for handling the bitfield of the Options field of Optional Router Capabilites LSA (RFC4970). */
+/* Structures for handling the bitfield of the Options field of Optional Router Capabilities LSA (RFC4970). */
static int * const bf_ri_options[] = {
&hf_ospf_ri_options_grc,
&hf_ospf_ri_options_grh,
@@ -1339,7 +1339,7 @@ ospf_has_at_block(tvbuff_t *tvb, int offset, guint8 packet_type, guint8 version)
return 0;
}
-static gboolean
+static bool
capture_ospf(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_ospf);
@@ -2235,7 +2235,7 @@ dissect_ospf_lsa_mpls(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree
{ 0, NULL }
};
- const guint8 allzero[] = { 0x00, 0x00, 0x00 };
+ static const guint8 allzero[] = { 0x00, 0x00, 0x00 };
guint num_bcs = 0;
mpls_tree = proto_tree_add_subtree(tree, tvb, offset, length,
@@ -2422,7 +2422,7 @@ dissect_ospf_lsa_mpls(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree
break;
}
- /* stlv_len shound range from 4 to 36 bytes */
+ /* stlv_len should range from 4 to 36 bytes */
num_bcs = (stlv_len - 4)/4;
if(num_bcs>8) {
diff --git a/epan/dissectors/packet-p1.c b/epan/dissectors/packet-p1.c
index 1dd9ede529..0732b48f6c 100644
--- a/epan/dissectors/packet-p1.c
+++ b/epan/dissectors/packet-p1.c
@@ -676,185 +676,185 @@ static gint ett_p1_additional_information;
static gint ett_p1_unknown_standard_extension;
static gint ett_p1_unknown_extension_attribute_type;
static gint ett_p1_unknown_tokendata_type;
-static gint ett_p1_MTABindArgument;
-static gint ett_p1_AuthenticatedArgument;
-static gint ett_p1_MTABindResult;
-static gint ett_p1_AuthenticatedResult;
-static gint ett_p1_MTS_APDU;
-static gint ett_p1_Message;
-static gint ett_p1_Report;
-static gint ett_p1_MessageTransferEnvelope;
-static gint ett_p1_PerMessageTransferFields;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation;
-static gint ett_p1_SET_OF_ExtensionField;
-static gint ett_p1_PerRecipientMessageTransferFields;
-static gint ett_p1_ProbeTransferEnvelope;
-static gint ett_p1_PerProbeTransferFields;
-static gint ett_p1_PerRecipientProbeTransferFields;
-static gint ett_p1_ReportTransferEnvelope;
-static gint ett_p1_ReportTransferContent;
-static gint ett_p1_PerReportTransferFields;
-static gint ett_p1_PerRecipientReportTransferFields;
-static gint ett_p1_PerDomainBilateralInformation;
-static gint ett_p1_T_bilateral_domain;
-static gint ett_p1_T_private_domain;
-static gint ett_p1_PerRecipientIndicators;
-static gint ett_p1_LastTraceInformation;
-static gint ett_p1_InternalTraceInformation;
-static gint ett_p1_InternalTraceInformationElement;
-static gint ett_p1_MTASuppliedInformation;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement;
-static gint ett_p1_TraceInformationElement;
-static gint ett_p1_DomainSuppliedInformation;
-static gint ett_p1_AdditionalActions;
-static gint ett_p1_OtherActions;
-static gint ett_p1_MTSBindArgument;
-static gint ett_p1_MTSBindResult;
-static gint ett_p1_ObjectName;
-static gint ett_p1_MessagesWaiting;
-static gint ett_p1_DeliveryQueue;
-static gint ett_p1_Credentials;
-static gint ett_p1_Password;
-static gint ett_p1_StrongCredentials;
-static gint ett_p1_ProtectedPassword;
-static gint ett_p1_Signature;
-static gint ett_p1_SecurityContext;
-static gint ett_p1_MessageSubmissionArgument;
-static gint ett_p1_MessageSubmissionResult;
-static gint ett_p1_ProbeSubmissionResult;
-static gint ett_p1_ImproperlySpecifiedRecipients;
-static gint ett_p1_Waiting;
-static gint ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType;
-static gint ett_p1_Operations;
-static gint ett_p1_WaitingMessages;
-static gint ett_p1_MessageDeliveryArgument;
-static gint ett_p1_MessageDeliveryResult;
-static gint ett_p1_ReportDeliveryArgument;
-static gint ett_p1_ReportDeliveryResult;
-static gint ett_p1_SET_SIZE_1_MAX_OF_ExtensionField;
-static gint ett_p1_DeliveryControlArgument;
-static gint ett_p1_DeliveryControlResult;
-static gint ett_p1_RefusedOperation;
-static gint ett_p1_T_refused_argument;
-static gint ett_p1_Controls;
-static gint ett_p1_RegisterArgument;
-static gint ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass;
-static gint ett_p1_RegisterResult;
-static gint ett_p1_T_non_empty_result;
-static gint ett_p1_ChangeCredentialsArgument;
-static gint ett_p1_UserAddress;
-static gint ett_p1_T_x121;
-static gint ett_p1_Redirections;
-static gint ett_p1_RecipientRedirection;
-static gint ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass;
-static gint ett_p1_MessageClass;
-static gint ett_p1_SET_OF_Priority;
-static gint ett_p1_SEQUENCE_OF_Restriction;
-static gint ett_p1_EncodedInformationTypesConstraints;
-static gint ett_p1_RestrictedDelivery;
-static gint ett_p1_Restriction;
-static gint ett_p1_T_source_type;
-static gint ett_p1_ExactOrPattern;
-static gint ett_p1_RegistrationTypes;
-static gint ett_p1_T_standard_parameters;
-static gint ett_p1_T_type_extensions;
-static gint ett_p1_MessageSubmissionEnvelope;
-static gint ett_p1_PerMessageSubmissionFields;
-static gint ett_p1_PerRecipientMessageSubmissionFields;
-static gint ett_p1_ProbeSubmissionEnvelope;
-static gint ett_p1_PerProbeSubmissionFields;
-static gint ett_p1_PerRecipientProbeSubmissionFields;
-static gint ett_p1_MessageDeliveryEnvelope;
-static gint ett_p1_OtherMessageDeliveryFields;
-static gint ett_p1_ReportDeliveryEnvelope;
-static gint ett_p1_PerReportDeliveryFields;
-static gint ett_p1_PerRecipientReportDeliveryFields;
-static gint ett_p1_ReportType;
-static gint ett_p1_DeliveryReport;
-static gint ett_p1_NonDeliveryReport;
-static gint ett_p1_ContentTypes;
-static gint ett_p1_ContentType;
-static gint ett_p1_DeliveredContentType;
-static gint ett_p1_PerMessageIndicators_U;
-static gint ett_p1_OriginatorReportRequest;
-static gint ett_p1_DeliveryFlags;
-static gint ett_p1_OtherRecipientNames;
-static gint ett_p1_ExtensionType;
-static gint ett_p1_Criticality;
-static gint ett_p1_ExtensionField;
-static gint ett_p1_RequestedDeliveryMethod;
-static gint ett_p1_PhysicalDeliveryModes;
-static gint ett_p1_ContentCorrelator;
-static gint ett_p1_RedirectionHistory;
-static gint ett_p1_Redirection;
-static gint ett_p1_IntendedRecipientName;
-static gint ett_p1_DLExpansionHistory;
-static gint ett_p1_DLExpansion;
-static gint ett_p1_OriginatorAndDLExpansionHistory;
-static gint ett_p1_OriginatorAndDLExpansion;
-static gint ett_p1_PerRecipientDeliveryReportFields;
-static gint ett_p1_PerRecipientNonDeliveryReportFields;
-static gint ett_p1_ReportingMTAName;
-static gint ett_p1_ExtendedCertificates;
-static gint ett_p1_ExtendedCertificate;
-static gint ett_p1_DLExemptedRecipients;
-static gint ett_p1_CertificateSelectors;
-static gint ett_p1_MTSIdentifier_U;
-static gint ett_p1_GlobalDomainIdentifier_U;
-static gint ett_p1_PrivateDomainIdentifier;
-static gint ett_p1_ORName_U;
-static gint ett_p1_ORAddress;
-static gint ett_p1_BuiltInStandardAttributes;
-static gint ett_p1_CountryName_U;
-static gint ett_p1_AdministrationDomainName_U;
-static gint ett_p1_PrivateDomainName;
-static gint ett_p1_PersonalName;
-static gint ett_p1_OrganizationalUnitNames;
-static gint ett_p1_BuiltInDomainDefinedAttributes;
-static gint ett_p1_BuiltInDomainDefinedAttribute;
-static gint ett_p1_ExtensionAttributes;
-static gint ett_p1_ExtensionAttribute;
-static gint ett_p1_TeletexPersonalName;
-static gint ett_p1_UniversalPersonalName;
-static gint ett_p1_TeletexOrganizationalUnitNames;
-static gint ett_p1_UniversalOrganizationalUnitNames;
-static gint ett_p1_UniversalOrBMPString;
-static gint ett_p1_T_character_encoding;
-static gint ett_p1_PhysicalDeliveryCountryName;
-static gint ett_p1_PostalCode;
-static gint ett_p1_UnformattedPostalAddress;
-static gint ett_p1_T_printable_address;
-static gint ett_p1_PDSParameter;
-static gint ett_p1_ExtendedNetworkAddress;
-static gint ett_p1_T_e163_4_address;
-static gint ett_p1_TeletexDomainDefinedAttributes;
-static gint ett_p1_TeletexDomainDefinedAttribute;
-static gint ett_p1_UniversalDomainDefinedAttributes;
-static gint ett_p1_UniversalDomainDefinedAttribute;
-static gint ett_p1_EncodedInformationTypes_U;
-static gint ett_p1_BuiltInEncodedInformationTypes;
-static gint ett_p1_ExtendedEncodedInformationTypes;
-static gint ett_p1_NonBasicParameters;
-static gint ett_p1_G3FacsimileNonBasicParameters;
-static gint ett_p1_TeletexNonBasicParameters;
-static gint ett_p1_Token;
-static gint ett_p1_AsymmetricTokenData;
-static gint ett_p1_T_name;
-static gint ett_p1_MTANameAndOptionalGDI;
-static gint ett_p1_AsymmetricToken;
-static gint ett_p1_TokenData;
-static gint ett_p1_MessageTokenSignedData;
-static gint ett_p1_MessageTokenEncryptedData;
-static gint ett_p1_SecurityLabel;
-static gint ett_p1_SecurityCategories;
-static gint ett_p1_SecurityCategory;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields;
-static gint ett_p1_T_attempted;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields;
-static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields;
+static int ett_p1_MTABindArgument;
+static int ett_p1_AuthenticatedArgument;
+static int ett_p1_MTABindResult;
+static int ett_p1_AuthenticatedResult;
+static int ett_p1_MTS_APDU;
+static int ett_p1_Message;
+static int ett_p1_Report;
+static int ett_p1_MessageTransferEnvelope;
+static int ett_p1_PerMessageTransferFields;
+static int ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation;
+static int ett_p1_SET_OF_ExtensionField;
+static int ett_p1_PerRecipientMessageTransferFields;
+static int ett_p1_ProbeTransferEnvelope;
+static int ett_p1_PerProbeTransferFields;
+static int ett_p1_PerRecipientProbeTransferFields;
+static int ett_p1_ReportTransferEnvelope;
+static int ett_p1_ReportTransferContent;
+static int ett_p1_PerReportTransferFields;
+static int ett_p1_PerRecipientReportTransferFields;
+static int ett_p1_PerDomainBilateralInformation;
+static int ett_p1_T_bilateral_domain;
+static int ett_p1_T_private_domain;
+static int ett_p1_PerRecipientIndicators;
+static int ett_p1_LastTraceInformation;
+static int ett_p1_InternalTraceInformation;
+static int ett_p1_InternalTraceInformationElement;
+static int ett_p1_MTASuppliedInformation;
+static int ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement;
+static int ett_p1_TraceInformationElement;
+static int ett_p1_DomainSuppliedInformation;
+static int ett_p1_AdditionalActions;
+static int ett_p1_OtherActions;
+static int ett_p1_MTSBindArgument;
+static int ett_p1_MTSBindResult;
+static int ett_p1_ObjectName;
+static int ett_p1_MessagesWaiting;
+static int ett_p1_DeliveryQueue;
+static int ett_p1_Credentials;
+static int ett_p1_Password;
+static int ett_p1_StrongCredentials;
+static int ett_p1_ProtectedPassword;
+static int ett_p1_Signature;
+static int ett_p1_SecurityContext;
+static int ett_p1_MessageSubmissionArgument;
+static int ett_p1_MessageSubmissionResult;
+static int ett_p1_ProbeSubmissionResult;
+static int ett_p1_ImproperlySpecifiedRecipients;
+static int ett_p1_Waiting;
+static int ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType;
+static int ett_p1_Operations;
+static int ett_p1_WaitingMessages;
+static int ett_p1_MessageDeliveryArgument;
+static int ett_p1_MessageDeliveryResult;
+static int ett_p1_ReportDeliveryArgument;
+static int ett_p1_ReportDeliveryResult;
+static int ett_p1_SET_SIZE_1_MAX_OF_ExtensionField;
+static int ett_p1_DeliveryControlArgument;
+static int ett_p1_DeliveryControlResult;
+static int ett_p1_RefusedOperation;
+static int ett_p1_T_refused_argument;
+static int ett_p1_Controls;
+static int ett_p1_RegisterArgument;
+static int ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass;
+static int ett_p1_RegisterResult;
+static int ett_p1_T_non_empty_result;
+static int ett_p1_ChangeCredentialsArgument;
+static int ett_p1_UserAddress;
+static int ett_p1_T_x121;
+static int ett_p1_Redirections;
+static int ett_p1_RecipientRedirection;
+static int ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass;
+static int ett_p1_MessageClass;
+static int ett_p1_SET_OF_Priority;
+static int ett_p1_SEQUENCE_OF_Restriction;
+static int ett_p1_EncodedInformationTypesConstraints;
+static int ett_p1_RestrictedDelivery;
+static int ett_p1_Restriction;
+static int ett_p1_T_source_type;
+static int ett_p1_ExactOrPattern;
+static int ett_p1_RegistrationTypes;
+static int ett_p1_T_standard_parameters;
+static int ett_p1_T_type_extensions;
+static int ett_p1_MessageSubmissionEnvelope;
+static int ett_p1_PerMessageSubmissionFields;
+static int ett_p1_PerRecipientMessageSubmissionFields;
+static int ett_p1_ProbeSubmissionEnvelope;
+static int ett_p1_PerProbeSubmissionFields;
+static int ett_p1_PerRecipientProbeSubmissionFields;
+static int ett_p1_MessageDeliveryEnvelope;
+static int ett_p1_OtherMessageDeliveryFields;
+static int ett_p1_ReportDeliveryEnvelope;
+static int ett_p1_PerReportDeliveryFields;
+static int ett_p1_PerRecipientReportDeliveryFields;
+static int ett_p1_ReportType;
+static int ett_p1_DeliveryReport;
+static int ett_p1_NonDeliveryReport;
+static int ett_p1_ContentTypes;
+static int ett_p1_ContentType;
+static int ett_p1_DeliveredContentType;
+static int ett_p1_PerMessageIndicators_U;
+static int ett_p1_OriginatorReportRequest;
+static int ett_p1_DeliveryFlags;
+static int ett_p1_OtherRecipientNames;
+static int ett_p1_ExtensionType;
+static int ett_p1_Criticality;
+static int ett_p1_ExtensionField;
+static int ett_p1_RequestedDeliveryMethod;
+static int ett_p1_PhysicalDeliveryModes;
+static int ett_p1_ContentCorrelator;
+static int ett_p1_RedirectionHistory;
+static int ett_p1_Redirection;
+static int ett_p1_IntendedRecipientName;
+static int ett_p1_DLExpansionHistory;
+static int ett_p1_DLExpansion;
+static int ett_p1_OriginatorAndDLExpansionHistory;
+static int ett_p1_OriginatorAndDLExpansion;
+static int ett_p1_PerRecipientDeliveryReportFields;
+static int ett_p1_PerRecipientNonDeliveryReportFields;
+static int ett_p1_ReportingMTAName;
+static int ett_p1_ExtendedCertificates;
+static int ett_p1_ExtendedCertificate;
+static int ett_p1_DLExemptedRecipients;
+static int ett_p1_CertificateSelectors;
+static int ett_p1_MTSIdentifier_U;
+static int ett_p1_GlobalDomainIdentifier_U;
+static int ett_p1_PrivateDomainIdentifier;
+static int ett_p1_ORName_U;
+static int ett_p1_ORAddress;
+static int ett_p1_BuiltInStandardAttributes;
+static int ett_p1_CountryName_U;
+static int ett_p1_AdministrationDomainName_U;
+static int ett_p1_PrivateDomainName;
+static int ett_p1_PersonalName;
+static int ett_p1_OrganizationalUnitNames;
+static int ett_p1_BuiltInDomainDefinedAttributes;
+static int ett_p1_BuiltInDomainDefinedAttribute;
+static int ett_p1_ExtensionAttributes;
+static int ett_p1_ExtensionAttribute;
+static int ett_p1_TeletexPersonalName;
+static int ett_p1_UniversalPersonalName;
+static int ett_p1_TeletexOrganizationalUnitNames;
+static int ett_p1_UniversalOrganizationalUnitNames;
+static int ett_p1_UniversalOrBMPString;
+static int ett_p1_T_character_encoding;
+static int ett_p1_PhysicalDeliveryCountryName;
+static int ett_p1_PostalCode;
+static int ett_p1_UnformattedPostalAddress;
+static int ett_p1_T_printable_address;
+static int ett_p1_PDSParameter;
+static int ett_p1_ExtendedNetworkAddress;
+static int ett_p1_T_e163_4_address;
+static int ett_p1_TeletexDomainDefinedAttributes;
+static int ett_p1_TeletexDomainDefinedAttribute;
+static int ett_p1_UniversalDomainDefinedAttributes;
+static int ett_p1_UniversalDomainDefinedAttribute;
+static int ett_p1_EncodedInformationTypes_U;
+static int ett_p1_BuiltInEncodedInformationTypes;
+static int ett_p1_ExtendedEncodedInformationTypes;
+static int ett_p1_NonBasicParameters;
+static int ett_p1_G3FacsimileNonBasicParameters;
+static int ett_p1_TeletexNonBasicParameters;
+static int ett_p1_Token;
+static int ett_p1_AsymmetricTokenData;
+static int ett_p1_T_name;
+static int ett_p1_MTANameAndOptionalGDI;
+static int ett_p1_AsymmetricToken;
+static int ett_p1_TokenData;
+static int ett_p1_MessageTokenSignedData;
+static int ett_p1_MessageTokenEncryptedData;
+static int ett_p1_SecurityLabel;
+static int ett_p1_SecurityCategories;
+static int ett_p1_SecurityCategory;
+static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields;
+static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields;
+static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields;
+static int ett_p1_T_attempted;
+static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields;
+static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields;
+static int ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields;
static expert_field ei_p1_unknown_extension_attribute_type;
static expert_field ei_p1_unknown_standard_extension;
diff --git a/epan/dissectors/packet-p22.c b/epan/dissectors/packet-p22.c
index f4f6992d57..85bd35b8bf 100644
--- a/epan/dissectors/packet-p22.c
+++ b/epan/dissectors/packet-p22.c
@@ -698,131 +698,131 @@ static int hf_p22_RecipientSecurityRequest_ipn_proof;
/* Initialize the subtree pointers */
static gint ett_p22;
-static gint ett_p22_InformationObject;
-static gint ett_p22_IPM;
-static gint ett_p22_IPMSExtension;
-static gint ett_p22_Heading;
-static gint ett_p22_IPMIdentifier_U;
-static gint ett_p22_RecipientSpecifier;
-static gint ett_p22_ORDescriptor;
-static gint ett_p22_NotificationRequests;
-static gint ett_p22_RecipientExtensionsField;
-static gint ett_p22_AuthorizingUsersField;
-static gint ett_p22_PrimaryRecipientsField;
-static gint ett_p22_CopyRecipientsField;
-static gint ett_p22_BlindCopyRecipientsField;
-static gint ett_p22_ObsoletedIPMsField;
-static gint ett_p22_RelatedIPMsField;
-static gint ett_p22_ReplyRecipientsField;
-static gint ett_p22_ExtensionsField;
-static gint ett_p22_Body;
-static gint ett_p22_BodyPart;
-static gint ett_p22_T_basic;
-static gint ett_p22_ExtendedBodyPart;
-static gint ett_p22_IA5TextBodyPart;
-static gint ett_p22_IA5TextParameters;
-static gint ett_p22_G3FacsimileBodyPart;
-static gint ett_p22_G3FacsimileParameters;
-static gint ett_p22_G3FacsimileData;
-static gint ett_p22_G4Class1BodyPart;
-static gint ett_p22_MixedModeBodyPart;
-static gint ett_p22_TeletexBodyPart;
-static gint ett_p22_TeletexParameters;
-static gint ett_p22_TeletexData;
-static gint ett_p22_VideotexBodyPart;
-static gint ett_p22_VideotexParameters;
-static gint ett_p22_EncryptedBodyPart;
-static gint ett_p22_EncryptedParameters;
-static gint ett_p22_MessageBodyPart;
-static gint ett_p22_MessageParameters;
-static gint ett_p22_IPN;
-static gint ett_p22_CommonFields;
-static gint ett_p22_NonReceiptFields;
-static gint ett_p22_ReceiptFields;
-static gint ett_p22_NotificationExtensionsField;
-static gint ett_p22_NRNExtensionsField;
-static gint ett_p22_RNExtensionsField;
-static gint ett_p22_OtherNotificationTypeFields;
-static gint ett_p22_AbsenceAdvice;
-static gint ett_p22_ChangeOfAddressAdvice;
-static gint ett_p22_IPMAssemblyInstructions;
-static gint ett_p22_BodyPartReferences;
-static gint ett_p22_BodyPartReference;
-static gint ett_p22_T_stored_body_part;
-static gint ett_p22_Languages;
-static gint ett_p22_BodyPartSignatures;
-static gint ett_p22_BodyPartSignatures_item;
-static gint ett_p22_Signature;
-static gint ett_p22_IPMSecurityLabel;
-static gint ett_p22_SEQUENCE_OF_BodyPartSecurityLabel;
-static gint ett_p22_BodyPartSecurityLabel;
-static gint ett_p22_CirculationList;
-static gint ett_p22_CirculationMember;
-static gint ett_p22_Checkmark;
-static gint ett_p22_CirculationSignatureData;
-static gint ett_p22_CirculationSignature;
-static gint ett_p22_DistributionCodes;
-static gint ett_p22_DistributionCode;
-static gint ett_p22_InformationCategories;
-static gint ett_p22_InformationCategory;
-static gint ett_p22_ManualHandlingInstructions;
-static gint ett_p22_GeneralTextParameters;
-static gint ett_p22_FileTransferParameters;
-static gint ett_p22_FileTransferData;
-static gint ett_p22_RelatedStoredFile;
-static gint ett_p22_RelatedStoredFile_item;
-static gint ett_p22_FileIdentifier;
-static gint ett_p22_PathnameandVersion;
-static gint ett_p22_CrossReference;
-static gint ett_p22_MessageReference;
-static gint ett_p22_Relationship;
-static gint ett_p22_Contents_Type_Attribute;
-static gint ett_p22_T_document_type;
-static gint ett_p22_T_constraint_set_and_abstract_syntax;
-static gint ett_p22_EnvironmentParameter;
-static gint ett_p22_T_user_visible_string;
-static gint ett_p22_GeneralIdentifier;
-static gint ett_p22_T_descriptive_identifier;
-static gint ett_p22_CompressionParameter;
-static gint ett_p22_FileAttributes;
-static gint ett_p22_Pathname_Attribute;
-static gint ett_p22_Account_Attribute;
-static gint ett_p22_User_Identity_Attribute;
-static gint ett_p22_Access_Control_Attribute;
-static gint ett_p22_SET_OF_Access_Control_Element;
-static gint ett_p22_Access_Control_Element;
-static gint ett_p22_Access_Request;
-static gint ett_p22_Access_Passwords;
-static gint ett_p22_Password;
-static gint ett_p22_Pass_Passwords;
-static gint ett_p22_Application_Entity_Title;
-static gint ett_p22_VoiceParameters;
-static gint ett_p22_ForwardedContentParameters;
-static gint ett_p22_SubmissionProof;
-static gint ett_p22_IPMSynopsis;
-static gint ett_p22_BodyPartSynopsis;
-static gint ett_p22_MessageBodyPartSynopsis;
-static gint ett_p22_NonMessageBodyPartSynopsis;
-static gint ett_p22_BodyPartDescriptor;
-static gint ett_p22_BodyPartSignatureVerification;
-static gint ett_p22_BodyPartSignatureVerification_item;
-static gint ett_p22_IPMLocation;
-static gint ett_p22_SET_OF_SequenceNumber;
-static gint ett_p22_CorrelatedDeliveredReplies;
-static gint ett_p22_SEQUENCE_OF_SequenceNumber;
-static gint ett_p22_CorrelatedDeliveredIPNs;
-static gint ett_p22_RecipientSecurityRequest;
-static gint ett_p22_IpnSecurityResponse;
-static gint ett_p22_T_content_or_arguments;
-static gint ett_p22_T_original_security_arguments;
-static gint ett_p22_BodyPartTokens;
-static gint ett_p22_BodyPartTokens_item;
-static gint ett_p22_T_body_part_choice;
-static gint ett_p22_EncryptionToken;
-static gint ett_p22_ForwardedContentToken;
-static gint ett_p22_ForwardedContentToken_item;
-static gint ett_p22_T_body_part_token_choice;
-static gint ett_p22_T_choice;
+static int ett_p22_InformationObject;
+static int ett_p22_IPM;
+static int ett_p22_IPMSExtension;
+static int ett_p22_Heading;
+static int ett_p22_IPMIdentifier_U;
+static int ett_p22_RecipientSpecifier;
+static int ett_p22_ORDescriptor;
+static int ett_p22_NotificationRequests;
+static int ett_p22_RecipientExtensionsField;
+static int ett_p22_AuthorizingUsersField;
+static int ett_p22_PrimaryRecipientsField;
+static int ett_p22_CopyRecipientsField;
+static int ett_p22_BlindCopyRecipientsField;
+static int ett_p22_ObsoletedIPMsField;
+static int ett_p22_RelatedIPMsField;
+static int ett_p22_ReplyRecipientsField;
+static int ett_p22_ExtensionsField;
+static int ett_p22_Body;
+static int ett_p22_BodyPart;
+static int ett_p22_T_basic;
+static int ett_p22_ExtendedBodyPart;
+static int ett_p22_IA5TextBodyPart;
+static int ett_p22_IA5TextParameters;
+static int ett_p22_G3FacsimileBodyPart;
+static int ett_p22_G3FacsimileParameters;
+static int ett_p22_G3FacsimileData;
+static int ett_p22_G4Class1BodyPart;
+static int ett_p22_MixedModeBodyPart;
+static int ett_p22_TeletexBodyPart;
+static int ett_p22_TeletexParameters;
+static int ett_p22_TeletexData;
+static int ett_p22_VideotexBodyPart;
+static int ett_p22_VideotexParameters;
+static int ett_p22_EncryptedBodyPart;
+static int ett_p22_EncryptedParameters;
+static int ett_p22_MessageBodyPart;
+static int ett_p22_MessageParameters;
+static int ett_p22_IPN;
+static int ett_p22_CommonFields;
+static int ett_p22_NonReceiptFields;
+static int ett_p22_ReceiptFields;
+static int ett_p22_NotificationExtensionsField;
+static int ett_p22_NRNExtensionsField;
+static int ett_p22_RNExtensionsField;
+static int ett_p22_OtherNotificationTypeFields;
+static int ett_p22_AbsenceAdvice;
+static int ett_p22_ChangeOfAddressAdvice;
+static int ett_p22_IPMAssemblyInstructions;
+static int ett_p22_BodyPartReferences;
+static int ett_p22_BodyPartReference;
+static int ett_p22_T_stored_body_part;
+static int ett_p22_Languages;
+static int ett_p22_BodyPartSignatures;
+static int ett_p22_BodyPartSignatures_item;
+static int ett_p22_Signature;
+static int ett_p22_IPMSecurityLabel;
+static int ett_p22_SEQUENCE_OF_BodyPartSecurityLabel;
+static int ett_p22_BodyPartSecurityLabel;
+static int ett_p22_CirculationList;
+static int ett_p22_CirculationMember;
+static int ett_p22_Checkmark;
+static int ett_p22_CirculationSignatureData;
+static int ett_p22_CirculationSignature;
+static int ett_p22_DistributionCodes;
+static int ett_p22_DistributionCode;
+static int ett_p22_InformationCategories;
+static int ett_p22_InformationCategory;
+static int ett_p22_ManualHandlingInstructions;
+static int ett_p22_GeneralTextParameters;
+static int ett_p22_FileTransferParameters;
+static int ett_p22_FileTransferData;
+static int ett_p22_RelatedStoredFile;
+static int ett_p22_RelatedStoredFile_item;
+static int ett_p22_FileIdentifier;
+static int ett_p22_PathnameandVersion;
+static int ett_p22_CrossReference;
+static int ett_p22_MessageReference;
+static int ett_p22_Relationship;
+static int ett_p22_Contents_Type_Attribute;
+static int ett_p22_T_document_type;
+static int ett_p22_T_constraint_set_and_abstract_syntax;
+static int ett_p22_EnvironmentParameter;
+static int ett_p22_T_user_visible_string;
+static int ett_p22_GeneralIdentifier;
+static int ett_p22_T_descriptive_identifier;
+static int ett_p22_CompressionParameter;
+static int ett_p22_FileAttributes;
+static int ett_p22_Pathname_Attribute;
+static int ett_p22_Account_Attribute;
+static int ett_p22_User_Identity_Attribute;
+static int ett_p22_Access_Control_Attribute;
+static int ett_p22_SET_OF_Access_Control_Element;
+static int ett_p22_Access_Control_Element;
+static int ett_p22_Access_Request;
+static int ett_p22_Access_Passwords;
+static int ett_p22_Password;
+static int ett_p22_Pass_Passwords;
+static int ett_p22_Application_Entity_Title;
+static int ett_p22_VoiceParameters;
+static int ett_p22_ForwardedContentParameters;
+static int ett_p22_SubmissionProof;
+static int ett_p22_IPMSynopsis;
+static int ett_p22_BodyPartSynopsis;
+static int ett_p22_MessageBodyPartSynopsis;
+static int ett_p22_NonMessageBodyPartSynopsis;
+static int ett_p22_BodyPartDescriptor;
+static int ett_p22_BodyPartSignatureVerification;
+static int ett_p22_BodyPartSignatureVerification_item;
+static int ett_p22_IPMLocation;
+static int ett_p22_SET_OF_SequenceNumber;
+static int ett_p22_CorrelatedDeliveredReplies;
+static int ett_p22_SEQUENCE_OF_SequenceNumber;
+static int ett_p22_CorrelatedDeliveredIPNs;
+static int ett_p22_RecipientSecurityRequest;
+static int ett_p22_IpnSecurityResponse;
+static int ett_p22_T_content_or_arguments;
+static int ett_p22_T_original_security_arguments;
+static int ett_p22_BodyPartTokens;
+static int ett_p22_BodyPartTokens_item;
+static int ett_p22_T_body_part_choice;
+static int ett_p22_EncryptionToken;
+static int ett_p22_ForwardedContentToken;
+static int ett_p22_ForwardedContentToken_item;
+static int ett_p22_T_body_part_token_choice;
+static int ett_p22_T_choice;
/*--- Cyclic dependencies ---*/
@@ -1801,7 +1801,7 @@ static const ber_sequence_t IPM_sequence[] = {
int
dissect_p22_IPM(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // IPM → Body → BodyPart → BodyPart/basic → MessageBodyPart → MessageData → IPM
+ // IPM -> Body -> BodyPart -> BodyPart/basic -> MessageBodyPart -> MessageData -> IPM
actx->pinfo->dissection_depth += 6;
increment_dissection_depth(actx->pinfo);
@@ -3517,7 +3517,7 @@ static const ber_sequence_t IPMSynopsis_sequence_of[1] = {
static int
dissect_p22_IPMSynopsis(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // IPMSynopsis → BodyPartSynopsis → MessageBodyPartSynopsis → IPMSynopsis
+ // IPMSynopsis -> BodyPartSynopsis -> MessageBodyPartSynopsis -> IPMSynopsis
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
@@ -3982,7 +3982,7 @@ static const ber_sequence_t BodyPartTokens_set_of[1] = {
static int
dissect_p22_BodyPartTokens(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // BodyPartTokens → BodyPartTokens/_item → BodyPartTokens/_item/body-part-choice → BodyPartTokens
+ // BodyPartTokens -> BodyPartTokens/_item -> BodyPartTokens/_item/body-part-choice -> BodyPartTokens
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
@@ -4037,7 +4037,7 @@ static const ber_sequence_t ForwardedContentToken_set_of[1] = {
static int
dissect_p22_ForwardedContentToken(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // ForwardedContentToken → ForwardedContentToken/_item → ForwardedContentToken/_item/body-part-choice → ForwardedContentToken
+ // ForwardedContentToken -> ForwardedContentToken/_item -> ForwardedContentToken/_item/body-part-choice -> ForwardedContentToken
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-p7.c b/epan/dissectors/packet-p7.c
index 8b0c3834d5..42ddf488bf 100644
--- a/epan/dissectors/packet-p7.c
+++ b/epan/dissectors/packet-p7.c
@@ -38,7 +38,7 @@
void proto_register_p7(void);
void proto_reg_handoff_p7(void);
-static int seqno = 0;
+static int seqno;
/* Initialize the protocol and registered fields */
static int proto_p7;
@@ -466,139 +466,139 @@ static int hf_p7_T_entry_class_problem_inappropriate_entry_class;
/* Initialize the subtree pointers */
static gint ett_p7;
-static gint ett_p7_Attribute;
-static gint ett_p7_AttributeValues;
-static gint ett_p7_AutoActionRegistration;
-static gint ett_p7_AutoActionError;
-static gint ett_p7_MSExtensions;
-static gint ett_p7_MessageGroupName;
-static gint ett_p7_MSBindArgument;
-static gint ett_p7_Restrictions;
-static gint ett_p7_T_allowed_content_types;
-static gint ett_p7_MS_EITs;
-static gint ett_p7_MSBindResult;
-static gint ett_p7_SET_SIZE_1_ub_auto_actions_OF_AutoActionType;
-static gint ett_p7_SET_SIZE_1_ub_attributes_supported_OF_AttributeType;
-static gint ett_p7_T_content_types_supported;
-static gint ett_p7_SET_SIZE_1_ub_entry_classes_OF_EntryClass;
-static gint ett_p7_T_matching_rules_supported;
-static gint ett_p7_T_unsupported_extensions;
-static gint ett_p7_ChangeCredentialsAlgorithms;
-static gint ett_p7_AutoActionErrorIndication;
-static gint ett_p7_PAR_ms_bind_error;
-static gint ett_p7_T_qualified_error;
-static gint ett_p7_T_bind_extension_errors;
-static gint ett_p7_Range;
-static gint ett_p7_NumberRange;
-static gint ett_p7_TimeRange;
-static gint ett_p7_Filter;
-static gint ett_p7_SET_OF_Filter;
-static gint ett_p7_FilterItem;
-static gint ett_p7_T_substrings;
-static gint ett_p7_T_strings;
-static gint ett_p7_T_strings_item;
-static gint ett_p7_MatchingRuleAssertion;
-static gint ett_p7_AttributeValueAssertion;
-static gint ett_p7_Selector;
-static gint ett_p7_OverrideRestrictions;
-static gint ett_p7_EntryInformationSelection;
-static gint ett_p7_AttributeSelection;
-static gint ett_p7_EntryInformation;
-static gint ett_p7_SET_SIZE_1_ub_per_entry_OF_Attribute;
-static gint ett_p7_SET_SIZE_1_ub_per_entry_OF_AttributeValueCount;
-static gint ett_p7_AttributeValueCount;
-static gint ett_p7_MSSubmissionOptions;
-static gint ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupName;
-static gint ett_p7_CommonSubmissionResults;
-static gint ett_p7_SummarizeArgument;
-static gint ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType;
-static gint ett_p7_SummarizeResult;
-static gint ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_Summary;
-static gint ett_p7_Span;
-static gint ett_p7_Summary;
-static gint ett_p7_T_summary_present;
-static gint ett_p7_T_summary_present_item;
-static gint ett_p7_ListArgument;
-static gint ett_p7_ListResult;
-static gint ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation;
-static gint ett_p7_FetchArgument;
-static gint ett_p7_T_item;
-static gint ett_p7_FetchResult;
-static gint ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber;
-static gint ett_p7_DeleteArgument;
-static gint ett_p7_T_items;
-static gint ett_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber;
-static gint ett_p7_DeleteResult;
-static gint ett_p7_T_delete_result_94;
-static gint ett_p7_Register_MSArgument;
-static gint ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration;
-static gint ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration;
-static gint ett_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType;
-static gint ett_p7_T_change_credentials;
-static gint ett_p7_SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel;
-static gint ett_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration;
-static gint ett_p7_AutoActionDeregistration;
-static gint ett_p7_UARegistration;
-static gint ett_p7_MessageGroupRegistrations;
-static gint ett_p7_MessageGroupRegistrations_item;
-static gint ett_p7_MessageGroupNameAndDescriptor;
-static gint ett_p7_RegistrationTypes;
-static gint ett_p7_T_registrations;
-static gint ett_p7_T_extended_registrations;
-static gint ett_p7_MessageGroupsRestriction;
-static gint ett_p7_ProtectedChangeCredentials;
-static gint ett_p7_Register_MSResult;
-static gint ett_p7_T_registered_information;
-static gint ett_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType;
-static gint ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor;
-static gint ett_p7_AlertArgument;
-static gint ett_p7_ModifyArgument;
-static gint ett_p7_T_entries;
-static gint ett_p7_SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification;
-static gint ett_p7_EntryModification;
-static gint ett_p7_T_modification;
-static gint ett_p7_OrderedAttribute;
-static gint ett_p7_OrderedAttributeValues;
-static gint ett_p7_OrderedAttributeItem;
-static gint ett_p7_ModifyResult;
-static gint ett_p7_MSMessageSubmissionArgument;
-static gint ett_p7_MSMessageSubmissionResult;
-static gint ett_p7_T_mts_result;
-static gint ett_p7_SET_OF_ExtensionField;
-static gint ett_p7_MSProbeSubmissionArgument;
-static gint ett_p7_SEQUENCE_OF_PerRecipientProbeSubmissionFields;
-static gint ett_p7_MSProbeSubmissionResult;
-static gint ett_p7_PAR_attribute_error;
-static gint ett_p7_AttributeProblems;
-static gint ett_p7_AttributeProblemItem;
-static gint ett_p7_PAR_auto_action_request_error;
-static gint ett_p7_AutoActionRequestProblems;
-static gint ett_p7_AutoActionRequestProblemItem;
-static gint ett_p7_PAR_delete_error;
-static gint ett_p7_DeleteProblems;
-static gint ett_p7_DeleteProblemItem;
-static gint ett_p7_PAR_fetch_restriction_error;
-static gint ett_p7_FetchRestrictionProblems;
-static gint ett_p7_FetchRestrictionProblemItem;
-static gint ett_p7_T_restriction;
-static gint ett_p7_PAR_range_error;
-static gint ett_p7_PAR_sequence_number_error;
-static gint ett_p7_SequenceNumberProblems;
-static gint ett_p7_SequenceNumberProblemItem;
-static gint ett_p7_ServiceErrorParameter;
-static gint ett_p7_MessageGroupErrorParameter;
-static gint ett_p7_MSExtensionErrorParameter;
-static gint ett_p7_PAR_register_ms_error;
-static gint ett_p7_ModifyErrorParameter;
-static gint ett_p7_EntryClassErrorParameter;
-static gint ett_p7_T_entry_class_problem;
-static gint ett_p7_ReportLocation;
-static gint ett_p7_SEQUENCE_OF_PerRecipientReport;
-static gint ett_p7_PerRecipientReport;
-static gint ett_p7_SubmissionError;
-static gint ett_p7_SignatureVerificationStatus;
-static gint ett_p7_RTSE_apdus;
-static gint ett_p7_RTABapdu;
+static int ett_p7_Attribute;
+static int ett_p7_AttributeValues;
+static int ett_p7_AutoActionRegistration;
+static int ett_p7_AutoActionError;
+static int ett_p7_MSExtensions;
+static int ett_p7_MessageGroupName;
+static int ett_p7_MSBindArgument;
+static int ett_p7_Restrictions;
+static int ett_p7_T_allowed_content_types;
+static int ett_p7_MS_EITs;
+static int ett_p7_MSBindResult;
+static int ett_p7_SET_SIZE_1_ub_auto_actions_OF_AutoActionType;
+static int ett_p7_SET_SIZE_1_ub_attributes_supported_OF_AttributeType;
+static int ett_p7_T_content_types_supported;
+static int ett_p7_SET_SIZE_1_ub_entry_classes_OF_EntryClass;
+static int ett_p7_T_matching_rules_supported;
+static int ett_p7_T_unsupported_extensions;
+static int ett_p7_ChangeCredentialsAlgorithms;
+static int ett_p7_AutoActionErrorIndication;
+static int ett_p7_PAR_ms_bind_error;
+static int ett_p7_T_qualified_error;
+static int ett_p7_T_bind_extension_errors;
+static int ett_p7_Range;
+static int ett_p7_NumberRange;
+static int ett_p7_TimeRange;
+static int ett_p7_Filter;
+static int ett_p7_SET_OF_Filter;
+static int ett_p7_FilterItem;
+static int ett_p7_T_substrings;
+static int ett_p7_T_strings;
+static int ett_p7_T_strings_item;
+static int ett_p7_MatchingRuleAssertion;
+static int ett_p7_AttributeValueAssertion;
+static int ett_p7_Selector;
+static int ett_p7_OverrideRestrictions;
+static int ett_p7_EntryInformationSelection;
+static int ett_p7_AttributeSelection;
+static int ett_p7_EntryInformation;
+static int ett_p7_SET_SIZE_1_ub_per_entry_OF_Attribute;
+static int ett_p7_SET_SIZE_1_ub_per_entry_OF_AttributeValueCount;
+static int ett_p7_AttributeValueCount;
+static int ett_p7_MSSubmissionOptions;
+static int ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupName;
+static int ett_p7_CommonSubmissionResults;
+static int ett_p7_SummarizeArgument;
+static int ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType;
+static int ett_p7_SummarizeResult;
+static int ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_Summary;
+static int ett_p7_Span;
+static int ett_p7_Summary;
+static int ett_p7_T_summary_present;
+static int ett_p7_T_summary_present_item;
+static int ett_p7_ListArgument;
+static int ett_p7_ListResult;
+static int ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation;
+static int ett_p7_FetchArgument;
+static int ett_p7_T_item;
+static int ett_p7_FetchResult;
+static int ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber;
+static int ett_p7_DeleteArgument;
+static int ett_p7_T_items;
+static int ett_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber;
+static int ett_p7_DeleteResult;
+static int ett_p7_T_delete_result_94;
+static int ett_p7_Register_MSArgument;
+static int ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration;
+static int ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration;
+static int ett_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType;
+static int ett_p7_T_change_credentials;
+static int ett_p7_SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel;
+static int ett_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration;
+static int ett_p7_AutoActionDeregistration;
+static int ett_p7_UARegistration;
+static int ett_p7_MessageGroupRegistrations;
+static int ett_p7_MessageGroupRegistrations_item;
+static int ett_p7_MessageGroupNameAndDescriptor;
+static int ett_p7_RegistrationTypes;
+static int ett_p7_T_registrations;
+static int ett_p7_T_extended_registrations;
+static int ett_p7_MessageGroupsRestriction;
+static int ett_p7_ProtectedChangeCredentials;
+static int ett_p7_Register_MSResult;
+static int ett_p7_T_registered_information;
+static int ett_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType;
+static int ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor;
+static int ett_p7_AlertArgument;
+static int ett_p7_ModifyArgument;
+static int ett_p7_T_entries;
+static int ett_p7_SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification;
+static int ett_p7_EntryModification;
+static int ett_p7_T_modification;
+static int ett_p7_OrderedAttribute;
+static int ett_p7_OrderedAttributeValues;
+static int ett_p7_OrderedAttributeItem;
+static int ett_p7_ModifyResult;
+static int ett_p7_MSMessageSubmissionArgument;
+static int ett_p7_MSMessageSubmissionResult;
+static int ett_p7_T_mts_result;
+static int ett_p7_SET_OF_ExtensionField;
+static int ett_p7_MSProbeSubmissionArgument;
+static int ett_p7_SEQUENCE_OF_PerRecipientProbeSubmissionFields;
+static int ett_p7_MSProbeSubmissionResult;
+static int ett_p7_PAR_attribute_error;
+static int ett_p7_AttributeProblems;
+static int ett_p7_AttributeProblemItem;
+static int ett_p7_PAR_auto_action_request_error;
+static int ett_p7_AutoActionRequestProblems;
+static int ett_p7_AutoActionRequestProblemItem;
+static int ett_p7_PAR_delete_error;
+static int ett_p7_DeleteProblems;
+static int ett_p7_DeleteProblemItem;
+static int ett_p7_PAR_fetch_restriction_error;
+static int ett_p7_FetchRestrictionProblems;
+static int ett_p7_FetchRestrictionProblemItem;
+static int ett_p7_T_restriction;
+static int ett_p7_PAR_range_error;
+static int ett_p7_PAR_sequence_number_error;
+static int ett_p7_SequenceNumberProblems;
+static int ett_p7_SequenceNumberProblemItem;
+static int ett_p7_ServiceErrorParameter;
+static int ett_p7_MessageGroupErrorParameter;
+static int ett_p7_MSExtensionErrorParameter;
+static int ett_p7_PAR_register_ms_error;
+static int ett_p7_ModifyErrorParameter;
+static int ett_p7_EntryClassErrorParameter;
+static int ett_p7_T_entry_class_problem;
+static int ett_p7_ReportLocation;
+static int ett_p7_SEQUENCE_OF_PerRecipientReport;
+static int ett_p7_PerRecipientReport;
+static int ett_p7_SubmissionError;
+static int ett_p7_SignatureVerificationStatus;
+static int ett_p7_RTSE_apdus;
+static int ett_p7_RTABapdu;
/* P7 ABSTRACT-OPERATIONS */
@@ -1558,7 +1558,7 @@ static const ber_choice_t Filter_choice[] = {
static int
dissect_p7_Filter(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Filter → Filter/and → Filter
+ // Filter -> Filter/and -> Filter
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-p772.c b/epan/dissectors/packet-p772.c
index 65d5539dcf..eff29a932d 100644
--- a/epan/dissectors/packet-p772.c
+++ b/epan/dissectors/packet-p772.c
@@ -226,33 +226,33 @@ static int hf_p772_Acp127NotificationType_acp127_tn;
/* Initialize the subtree pointers */
static gint ett_p772;
-static gint ett_p772_InformationObject;
-static gint ett_p772_Acp127NotificationResponse;
-static gint ett_p772_AddressListIndicator;
-static gint ett_p772_ExemptedAddressSeq;
-static gint ett_p772_DistributionCodes;
-static gint ett_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic;
-static gint ett_p772_SEQUENCE_OF_DistributionExtensionField;
-static gint ett_p772_DistributionExtensionField;
-static gint ett_p772_HandlingInstructions;
-static gint ett_p772_MessageInstructions;
-static gint ett_p772_MessageType;
-static gint ett_p772_AddressListDesignatorSeq;
-static gint ett_p772_AddressListDesignator;
-static gint ett_p772_OtherRecipientDesignatorSeq;
-static gint ett_p772_OtherRecipientDesignator;
-static gint ett_p772_PilotInformationSeq;
-static gint ett_p772_PilotInformation;
-static gint ett_p772_SEQUENCE_OF_ORDescriptor;
-static gint ett_p772_SEQUENCE_OF_MilitaryString;
-static gint ett_p772_SecurityInformationLabels;
-static gint ett_p772_SEQUENCE_OF_BodyPartSecurityLabel;
-static gint ett_p772_BodyPartSecurityLabel;
-static gint ett_p772_ADatP3Data;
-static gint ett_p772_T_setOriented;
-static gint ett_p772_ForwardedEncryptedParameters;
-static gint ett_p772_MMMessageParameters;
-static gint ett_p772_Acp127NotificationType;
+static int ett_p772_InformationObject;
+static int ett_p772_Acp127NotificationResponse;
+static int ett_p772_AddressListIndicator;
+static int ett_p772_ExemptedAddressSeq;
+static int ett_p772_DistributionCodes;
+static int ett_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic;
+static int ett_p772_SEQUENCE_OF_DistributionExtensionField;
+static int ett_p772_DistributionExtensionField;
+static int ett_p772_HandlingInstructions;
+static int ett_p772_MessageInstructions;
+static int ett_p772_MessageType;
+static int ett_p772_AddressListDesignatorSeq;
+static int ett_p772_AddressListDesignator;
+static int ett_p772_OtherRecipientDesignatorSeq;
+static int ett_p772_OtherRecipientDesignator;
+static int ett_p772_PilotInformationSeq;
+static int ett_p772_PilotInformation;
+static int ett_p772_SEQUENCE_OF_ORDescriptor;
+static int ett_p772_SEQUENCE_OF_MilitaryString;
+static int ett_p772_SecurityInformationLabels;
+static int ett_p772_SEQUENCE_OF_BodyPartSecurityLabel;
+static int ett_p772_BodyPartSecurityLabel;
+static int ett_p772_ADatP3Data;
+static int ett_p772_T_setOriented;
+static int ett_p772_ForwardedEncryptedParameters;
+static int ett_p772_MMMessageParameters;
+static int ett_p772_Acp127NotificationType;
static const ber_choice_t InformationObject_choice[] = {
diff --git a/epan/dissectors/packet-p_mul.c b/epan/dissectors/packet-p_mul.c
index 51b6389a89..b92cffa8f2 100644
--- a/epan/dissectors/packet-p_mul.c
+++ b/epan/dissectors/packet-p_mul.c
@@ -167,7 +167,7 @@ static expert_field ei_message_discarded;
static expert_field ei_ack_length;
static expert_field ei_analysis_retrans_no;
-static dissector_handle_t p_mul_handle = NULL;
+static dissector_handle_t p_mul_handle;
typedef struct _p_mul_id_key {
guint32 id;
@@ -197,17 +197,17 @@ typedef struct _p_mul_ack_data {
} p_mul_ack_data;
/* Hash table with current data for seq/ack analysis */
-static wmem_map_t *p_mul_id_hash_table = NULL;
+static wmem_map_t *p_mul_id_hash_table;
/* User definable values to use for dissection */
-static gboolean p_mul_reassemble = TRUE;
+static bool p_mul_reassemble = true;
static gint decode_option = DECODE_NONE;
-static gboolean use_relative_msgid = TRUE;
-static gboolean use_seq_ack_analysis = TRUE;
+static bool use_relative_msgid = true;
+static bool use_seq_ack_analysis = true;
static reassembly_table p_mul_reassembly_table;
-static guint32 message_id_offset = 0;
+static guint32 message_id_offset;
static const fragment_items p_mul_frag_items = {
/* Fragment subtrees */
diff --git a/epan/dissectors/packet-pathport.c b/epan/dissectors/packet-pathport.c
index faddb9f622..93be2a1346 100644
--- a/epan/dissectors/packet-pathport.c
+++ b/epan/dissectors/packet-pathport.c
@@ -618,7 +618,7 @@ dissect_pathport_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
return FALSE;
dissect_pathport_common(tvb, pinfo, tree);
- return (TRUE);
+ return TRUE;
}
/* Register the protocol with Wireshark.
diff --git a/epan/dissectors/packet-pcap.c b/epan/dissectors/packet-pcap.c
index 98fb32e8b1..db909197f8 100644
--- a/epan/dissectors/packet-pcap.c
+++ b/epan/dissectors/packet-pcap.c
@@ -249,7 +249,7 @@ typedef enum _ProtocolIE_ID_enum {
id_AddPosSupport = 142
} ProtocolIE_ID_enum;
-static dissector_handle_t pcap_handle = NULL;
+static dissector_handle_t pcap_handle;
/* Initialize the protocol and registered fields */
static int proto_pcap;
@@ -1513,433 +1513,433 @@ static int hf_pcap_AvailableSubChannelNumbers_subCh0;
/* Initialize the subtree pointers */
static int ett_pcap;
-static gint ett_pcap_PrivateIE_ID;
-static gint ett_pcap_TransactionID;
-static gint ett_pcap_ProtocolIE_Container;
-static gint ett_pcap_ProtocolIE_Field;
-static gint ett_pcap_ProtocolExtensionContainer;
-static gint ett_pcap_ProtocolExtensionField;
-static gint ett_pcap_PrivateIE_Container;
-static gint ett_pcap_PrivateIE_Field;
-static gint ett_pcap_AddPos_MeasuredResults;
-static gint ett_pcap_AddPos_MeasuredResults_Element;
-static gint ett_pcap_T_type;
-static gint ett_pcap_T_barometricPressure;
-static gint ett_pcap_T_wlan;
-static gint ett_pcap_T_bt;
-static gint ett_pcap_T_mbs;
-static gint ett_pcap_WLANMeasurementList;
-static gint ett_pcap_WLANMeasurementList_Element;
-static gint ett_pcap_BTMeasurementList;
-static gint ett_pcap_BTMeasurementList_Element;
-static gint ett_pcap_MBSMeasurementList;
-static gint ett_pcap_MBSMeasurementList_Element;
-static gint ett_pcap_AlmanacAndSatelliteHealthSIB;
-static gint ett_pcap_Cause;
-static gint ett_pcap_CellId_MeasuredResultsSets;
-static gint ett_pcap_CellId_MeasuredResultsInfoList;
-static gint ett_pcap_CellId_MeasuredResultsInfo;
-static gint ett_pcap_RoundTripTimeInfo;
-static gint ett_pcap_RoundTripTimeInfoWithType1;
-static gint ett_pcap_UE_PositioningMeasQuality;
-static gint ett_pcap_UTRANAccessPointPositionAltitude;
-static gint ett_pcap_RxTimingDeviationInfo;
-static gint ett_pcap_RxTimingDeviationLCRInfo;
-static gint ett_pcap_RxTimingDeviation768Info;
-static gint ett_pcap_RxTimingDeviation384extInfo;
-static gint ett_pcap_AddMeasurementInfo;
-static gint ett_pcap_AngleOfArrivalLCR;
-static gint ett_pcap_CellId_IRATMeasuredResultsSets;
-static gint ett_pcap_CellId_IRATMeasuredResultsInfoList;
-static gint ett_pcap_GERAN_MeasuredResultsInfoList;
-static gint ett_pcap_GERAN_MeasuredResultsInfo;
-static gint ett_pcap_GERANCellGlobalID;
-static gint ett_pcap_GERANPhysicalCellID;
-static gint ett_pcap_GSM_BSIC;
-static gint ett_pcap_CellIDPositioning;
-static gint ett_pcap_RequestedCellIDMeasurements;
-static gint ett_pcap_T_fdd;
-static gint ett_pcap_T_tdd;
-static gint ett_pcap_RequestedCellIDGERANMeasurements;
-static gint ett_pcap_CriticalityDiagnostics;
-static gint ett_pcap_CriticalityDiagnostics_IE_List;
-static gint ett_pcap_CriticalityDiagnostics_IE_List_item;
-static gint ett_pcap_DGPSCorrections;
-static gint ett_pcap_DGPS_CorrectionSatInfoList;
-static gint ett_pcap_DGPS_CorrectionSatInfo;
-static gint ett_pcap_DGNSS_ValidityPeriod;
-static gint ett_pcap_UE_PositionEstimate;
-static gint ett_pcap_GeographicalCoordinates;
-static gint ett_pcap_GA_AltitudeAndDirection;
-static gint ett_pcap_GA_EllipsoidArc;
-static gint ett_pcap_GA_Point;
-static gint ett_pcap_GA_PointWithAltitude;
-static gint ett_pcap_GA_PointWithAltitudeAndUncertaintyEllipsoid;
-static gint ett_pcap_GA_PointWithUnCertainty;
-static gint ett_pcap_GA_PointWithUnCertaintyEllipse;
-static gint ett_pcap_GA_Polygon;
-static gint ett_pcap_GA_Polygon_item;
-static gint ett_pcap_GA_UncertaintyEllipse;
-static gint ett_pcap_UE_PositionEstimateInfo;
-static gint ett_pcap_ReferenceTimeChoice;
-static gint ett_pcap_Cell_Timing;
-static gint ett_pcap_GANSS_Reference_Time_Only;
-static gint ett_pcap_PositionDataUEbased;
-static gint ett_pcap_PositionData;
-static gint ett_pcap_GANSS_PositioningDataSet;
-static gint ett_pcap_PositioningDataSet;
-static gint ett_pcap_Additional_PositioningDataSet;
-static gint ett_pcap_GPS_AcquisitionAssistance;
-static gint ett_pcap_AcquisitionSatInfoList;
-static gint ett_pcap_AcquisitionSatInfo;
-static gint ett_pcap_ExtraDopplerInfo;
-static gint ett_pcap_ExtraDopplerInfoExtension;
-static gint ett_pcap_AzimuthAndElevation;
-static gint ett_pcap_AzimuthAndElevationLSB;
-static gint ett_pcap_AuxInfoGANSS_ID1;
-static gint ett_pcap_AuxInfoGANSS_ID1_element;
-static gint ett_pcap_AuxInfoGANSS_ID3;
-static gint ett_pcap_AuxInfoGANSS_ID3_element;
-static gint ett_pcap_CNAVclockModel;
-static gint ett_pcap_DeltaUT1;
-static gint ett_pcap_DGANSS_Corrections;
-static gint ett_pcap_DGANSS_Information;
-static gint ett_pcap_DGANSS_InformationItem;
-static gint ett_pcap_DGANSS_SignalInformation;
-static gint ett_pcap_DGANSS_SignalInformationItem;
-static gint ett_pcap_GANSS_AddClockModels;
-static gint ett_pcap_GANSS_AddOrbitModels;
-static gint ett_pcap_GANSS_Additional_Ionospheric_Model;
-static gint ett_pcap_GANSS_Additional_Navigation_Models;
-static gint ett_pcap_GANSS_Additional_Time_Models;
-static gint ett_pcap_GANSS_Additional_UTC_Models;
-static gint ett_pcap_GANSS_ALM_BDSKeplericanset;
-static gint ett_pcap_Satellite_Information_BDS_KP_List;
-static gint ett_pcap_Satellite_Information_BDS_KP_Item;
-static gint ett_pcap_GANSS_ALM_ECEFsbasAlmanacSet;
-static gint ett_pcap_GANSS_ALM_GlonassAlmanacSet;
-static gint ett_pcap_GANSS_ALM_MidiAlmanacSet;
-static gint ett_pcap_GANSS_ALM_NAVKeplerianSet;
-static gint ett_pcap_GANSS_ALM_ReducedKeplerianSet;
-static gint ett_pcap_GANSS_AlmanacAndSatelliteHealth;
-static gint ett_pcap_GANSS_AlmanacModel;
-static gint ett_pcap_GANSS_Auxiliary_Information;
-static gint ett_pcap_GANSS_AzimuthAndElevation;
-static gint ett_pcap_GANSS_Clock_Model;
-static gint ett_pcap_GANSS_CommonAssistanceData;
-static gint ett_pcap_GANSS_Data_Bit_Assistance;
-static gint ett_pcap_GANSS_DataBitAssistanceList;
-static gint ett_pcap_GANSS_DataBitAssistanceItem;
-static gint ett_pcap_GANSS_DataBitAssistanceSgnList;
-static gint ett_pcap_GANSS_DataBitAssistanceSgnItem;
-static gint ett_pcap_GANSS_Earth_Orientation_Parameters;
-static gint ett_pcap_GANSS_ExtraDoppler;
-static gint ett_pcap_GANSS_ExtraDopplerExtension;
-static gint ett_pcap_GANSS_GenericAssistanceDataList;
-static gint ett_pcap_GANSSGenericAssistanceData;
-static gint ett_pcap_BDS_Ionospheric_Grid_Model;
-static gint ett_pcap_BDS_Ionospheric_Grid_Information;
-static gint ett_pcap_BDS_Ionospheric_Grid_Information_item;
-static gint ett_pcap_DBDS_Correction_Information;
-static gint ett_pcap_DBDS_Information;
-static gint ett_pcap_DBDS_Information_item;
-static gint ett_pcap_DGANSS_Signal_Information;
-static gint ett_pcap_DGANSS_Signal_Information_item;
-static gint ett_pcap_GANSS_GenericMeasurementInfo;
-static gint ett_pcap_GANSS_GenericMeasurementInfo_item;
-static gint ett_pcap_GANSSID;
-static gint ett_pcap_GANSSMeasurementSignalList;
-static gint ett_pcap_GANSSMeasurementSignalList_item;
-static gint ett_pcap_GanssCodePhaseAmbiguityExt;
-static gint ett_pcap_GANSS_Ionospheric_Model;
-static gint ett_pcap_GANSS_IonosphereRegionalStormFlags;
-static gint ett_pcap_GANSS_KeplerianParametersAlm;
-static gint ett_pcap_GANSS_KeplerianParametersOrb;
-static gint ett_pcap_GANSS_MeasurementParameters;
-static gint ett_pcap_GANSS_MeasurementParametersItem;
-static gint ett_pcap_GanssIntegerCodePhaseExt;
-static gint ett_pcap_GANSS_MeasuredResultsList;
-static gint ett_pcap_GANSS_MeasuredResults;
-static gint ett_pcap_T_referenceTime;
-static gint ett_pcap_GANSS_Navigation_Model;
-static gint ett_pcap_GANSS_Orbit_Model;
-static gint ett_pcap_GANSS_Real_Time_Integrity;
-static gint ett_pcap_GANSS_RealTimeInformationItem;
-static gint ett_pcap_GANSS_Reference_Location;
-static gint ett_pcap_GANSS_ReferenceMeasurementInfo;
-static gint ett_pcap_GANSS_Reference_Time;
-static gint ett_pcap_GANSS_ReferenceTimeOnly;
-static gint ett_pcap_GANSS_SatelliteClockModelItem;
-static gint ett_pcap_GANSS_SatelliteInformation;
-static gint ett_pcap_GANSS_SatelliteInformationItem;
-static gint ett_pcap_GANSS_SatelliteInformationKP;
-static gint ett_pcap_GANSS_SatelliteInformationKPItem;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_GLOkpList;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_GLOkp;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_MIDIkpList;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_MIDIkp;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_NAVkpList;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_NAVkp;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_REDkpList;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_REDkp;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_SBASecefList;
-static gint ett_pcap_GANSS_SAT_Info_Almanac_SBASecef;
-static gint ett_pcap_Ganss_Sat_Info_AddNavList;
-static gint ett_pcap_Ganss_Sat_Info_AddNavList_item;
-static gint ett_pcap_GANSS_Sat_Info_Nav;
-static gint ett_pcap_GANSS_Sat_Info_Nav_item;
-static gint ett_pcap_GANSS_SignalID;
-static gint ett_pcap_GANSS_Time_Model;
-static gint ett_pcap_GANSS_UTRAN_TRU;
-static gint ett_pcap_GANSS_UTC_Model;
-static gint ett_pcap_GLONASSclockModel;
-static gint ett_pcap_NAVclockModel;
-static gint ett_pcap_NavModel_CNAVKeplerianSet;
-static gint ett_pcap_NavModel_GLONASSecef;
-static gint ett_pcap_NavModel_NAVKeplerianSet;
-static gint ett_pcap_NavModel_SBASecef;
-static gint ett_pcap_NavModel_BDSKeplerianSet;
-static gint ett_pcap_SBASclockModel;
-static gint ett_pcap_BDSClockModel;
-static gint ett_pcap_UTCmodelSet1;
-static gint ett_pcap_UTCmodelSet2;
-static gint ett_pcap_UTCmodelSet3;
-static gint ett_pcap_UTCmodelSet4;
-static gint ett_pcap_UTRAN_GANSSReferenceTimeDL;
-static gint ett_pcap_UTRAN_GANSSReferenceTimeUL;
-static gint ett_pcap_GPS_AlmanacAndSatelliteHealth;
-static gint ett_pcap_AlmanacSatInfoList;
-static gint ett_pcap_AlmanacSatInfo;
-static gint ett_pcap_GPS_ClockAndEphemerisParameters;
-static gint ett_pcap_SubFrame1Reserved;
-static gint ett_pcap_GPS_Ionospheric_Model;
-static gint ett_pcap_MeasuredResultsList;
-static gint ett_pcap_GPS_MeasuredResults;
-static gint ett_pcap_GPS_MeasurementParamList;
-static gint ett_pcap_GPS_MeasurementParam;
-static gint ett_pcap_GPS_NavigationModel;
-static gint ett_pcap_NavigationModelSatInfo;
-static gint ett_pcap_GPS_RealTimeIntegrity;
-static gint ett_pcap_BadSatList;
-static gint ett_pcap_GPS_ReferenceLocation;
-static gint ett_pcap_GPS_ReferenceTime;
-static gint ett_pcap_GPS_TOW_AssistList;
-static gint ett_pcap_GPS_TOW_Assist;
-static gint ett_pcap_GPSReferenceTimeUncertainty;
-static gint ett_pcap_GPS_UTC_Model;
-static gint ett_pcap_AdditionalGPSAssistDataRequired;
-static gint ett_pcap_AdditionalGanssAssistDataRequired;
-static gint ett_pcap_GANSSReq_AddIonosphericModel;
-static gint ett_pcap_GanssRequestedGenericAssistanceDataList;
-static gint ett_pcap_GanssReqGenericData;
-static gint ett_pcap_DBDSCorrection;
-static gint ett_pcap_GANSS_AddADchoices;
-static gint ett_pcap_GanssDataBits;
-static gint ett_pcap_ReqDataBitAssistanceList;
-static gint ett_pcap_T_ganssSatelliteInfo;
-static gint ett_pcap_InformationReportCharacteristics;
-static gint ett_pcap_InformationReportPeriodicity;
-static gint ett_pcap_InformationType;
-static gint ett_pcap_ExplicitInformationList;
-static gint ett_pcap_ExplicitInformation;
-static gint ett_pcap_DganssCorrectionsReq;
-static gint ett_pcap_Ganss_almanacAndSatelliteHealthReq;
-static gint ett_pcap_GANSSCommonDataReq;
-static gint ett_pcap_GANSS_AddIonoModelReq;
-static gint ett_pcap_GANSS_EarthOrientParaReq;
-static gint ett_pcap_GANSSGenericDataList;
-static gint ett_pcap_GANSSGenericDataReq;
-static gint ett_pcap_AddNavigationModelsGANSS;
-static gint ett_pcap_AddSatelliteRelatedDataListGANSS;
-static gint ett_pcap_AddSatelliteRelatedDataGANSS;
-static gint ett_pcap_DBDS_Corrections;
-static gint ett_pcap_GANSS_AddUtcModelsReq;
-static gint ett_pcap_GANSS_AuxInfoReq;
-static gint ett_pcap_Ganss_utcModelReq;
-static gint ett_pcap_Ganss_realTimeIntegrityReq;
-static gint ett_pcap_Ganss_referenceMeasurementInfoReq;
-static gint ett_pcap_Ganss_TimeModel_Gnss_Gnss;
-static gint ett_pcap_UtcModel;
-static gint ett_pcap_IonosphericModel;
-static gint ett_pcap_NavigationModel;
-static gint ett_pcap_NavModelAdditionalData;
-static gint ett_pcap_SatelliteRelatedDataList;
-static gint ett_pcap_SatelliteRelatedData;
-static gint ett_pcap_NavigationModelGANSS;
-static gint ett_pcap_SatelliteRelatedDataListGANSS;
-static gint ett_pcap_SatelliteRelatedDataGANSS;
-static gint ett_pcap_AlmanacAndSatelliteHealthSIB_InfoType;
-static gint ett_pcap_MessageStructure;
-static gint ett_pcap_MessageStructure_item;
-static gint ett_pcap_MeasInstructionsUsed;
-static gint ett_pcap_MeasurementValidity;
-static gint ett_pcap_OTDOA_MeasurementGroup;
-static gint ett_pcap_OTDOA_ReferenceCellInfo;
-static gint ett_pcap_OTDOA_ReferenceCellInfoSAS_centric;
-static gint ett_pcap_OTDOA_NeighbourCellInfoList;
-static gint ett_pcap_OTDOA_NeighbourCellInfo;
-static gint ett_pcap_OTDOA_MeasuredResultsSets;
-static gint ett_pcap_OTDOA_MeasuredResultsInfoList;
-static gint ett_pcap_OTDOA_MeasuredResultsInfo;
-static gint ett_pcap_OTDOA_AddMeasuredResultsInfo;
-static gint ett_pcap_UE_SFNSFNTimeDifferenceType2Info;
-static gint ett_pcap_UC_ID;
-static gint ett_pcap_RelativeTimingDifferenceInfo;
-static gint ett_pcap_SFNSFNMeasurementValueInfo;
-static gint ett_pcap_TUTRANGPSMeasurementValueInfo;
-static gint ett_pcap_TUTRANGPS;
-static gint ett_pcap_TUTRANGANSSMeasurementValueInfo;
-static gint ett_pcap_TUTRANGANSS;
-static gint ett_pcap_AdditionalMeasurementInforLCR;
-static gint ett_pcap_PeriodicPosCalcInfo;
-static gint ett_pcap_PeriodicLocationInfo;
-static gint ett_pcap_PositioningMethod;
-static gint ett_pcap_RRCstateChange;
-static gint ett_pcap_RequestedDataValue;
-static gint ett_pcap_RequestedDataValueInformation;
-static gint ett_pcap_InformationAvailable;
-static gint ett_pcap_RequestType;
-static gint ett_pcap_UE_PositioningCapability;
-static gint ett_pcap_NetworkAssistedGANSSSupport;
-static gint ett_pcap_NetworkAssistedGANSSSupport_item;
-static gint ett_pcap_AddPosSupport;
-static gint ett_pcap_AddPosSupport_Element;
-static gint ett_pcap_GANSS_SBAS_IDs;
-static gint ett_pcap_GANSS_Signal_IDs;
-static gint ett_pcap_UTDOAPositioning;
-static gint ett_pcap_GPSPositioning;
-static gint ett_pcap_GPSPositioningInstructions;
-static gint ett_pcap_GANSSPositioning;
-static gint ett_pcap_GANSS_PositioningInstructions;
-static gint ett_pcap_OTDOAAssistanceData;
-static gint ett_pcap_UE_Positioning_OTDOA_AssistanceData;
-static gint ett_pcap_UE_Positioning_OTDOA_ReferenceCellInfo;
-static gint ett_pcap_T_modeSpecificInfo;
-static gint ett_pcap_T_fdd_01;
-static gint ett_pcap_T_tdd_01;
-static gint ett_pcap_T_positioningMode;
-static gint ett_pcap_T_ueBased;
-static gint ett_pcap_T_ueAssisted;
-static gint ett_pcap_ReferenceCellPosition;
-static gint ett_pcap_UE_Positioning_IPDL_Parameters;
-static gint ett_pcap_T_modeSpecificInfo_01;
-static gint ett_pcap_T_fdd_02;
-static gint ett_pcap_T_tdd_02;
-static gint ett_pcap_BurstModeParameters;
-static gint ett_pcap_UE_Positioning_OTDOA_NeighbourCellList;
-static gint ett_pcap_UE_Positioning_OTDOA_NeighbourCellInfo;
-static gint ett_pcap_T_modeSpecificInfo_02;
-static gint ett_pcap_T_fdd_03;
-static gint ett_pcap_T_tdd_03;
-static gint ett_pcap_T_positioningMode_01;
-static gint ett_pcap_T_ueBased_01;
-static gint ett_pcap_T_ueAssisted_01;
-static gint ett_pcap_SFN_SFN_RelTimeDifference1;
-static gint ett_pcap_UTDOA_Group;
-static gint ett_pcap_FrequencyInfo;
-static gint ett_pcap_T_modeSpecificInfo_03;
-static gint ett_pcap_FrequencyInfoFDD;
-static gint ett_pcap_FrequencyInfoTDD;
-static gint ett_pcap_UTDOA_RRCState;
-static gint ett_pcap_UTDOA_CELLDCH;
-static gint ett_pcap_UL_DPCHInfo;
-static gint ett_pcap_T_fdd_04;
-static gint ett_pcap_T_tdd_04;
-static gint ett_pcap_Compressed_Mode_Assistance_Data;
-static gint ett_pcap_DL_InformationFDD;
-static gint ett_pcap_UL_InformationFDD;
-static gint ett_pcap_Transmission_Gap_Pattern_Sequence_Information;
-static gint ett_pcap_Transmission_Gap_Pattern_Sequence_Information_item;
-static gint ett_pcap_Active_Pattern_Sequence_Information;
-static gint ett_pcap_Transmission_Gap_Pattern_Sequence_Status_List;
-static gint ett_pcap_Transmission_Gap_Pattern_Sequence_Status_List_item;
-static gint ett_pcap_DCH_Information;
-static gint ett_pcap_TrChInfoList;
-static gint ett_pcap_UL_TrCHInfo;
-static gint ett_pcap_E_DPCH_Information;
-static gint ett_pcap_E_TFCS_Information;
-static gint ett_pcap_Reference_E_TFCI_Information;
-static gint ett_pcap_Reference_E_TFCI_Information_Item;
-static gint ett_pcap_TDD_DPCHOffset;
-static gint ett_pcap_UL_Timeslot_Information;
-static gint ett_pcap_UL_Timeslot_InformationItem;
-static gint ett_pcap_MidambleShiftAndBurstType;
-static gint ett_pcap_T_type1;
-static gint ett_pcap_T_midambleAllocationMode;
-static gint ett_pcap_T_type2;
-static gint ett_pcap_T_midambleAllocationMode_01;
-static gint ett_pcap_T_type3;
-static gint ett_pcap_T_midambleAllocationMode_02;
-static gint ett_pcap_TDD_UL_Code_Information;
-static gint ett_pcap_TDD_UL_Code_InformationItem;
-static gint ett_pcap_UTDOA_CELLFACH;
-static gint ett_pcap_PRACHparameters;
-static gint ett_pcap_PRACH_ChannelInfo;
-static gint ett_pcap_PRACH_Info;
-static gint ett_pcap_T_fdd_05;
-static gint ett_pcap_T_tdd_05;
-static gint ett_pcap_AvailableSignatures;
-static gint ett_pcap_AvailableSubChannelNumbers;
-static gint ett_pcap_TransportFormatSet;
-static gint ett_pcap_TransportFormatSet_DynamicPartList;
-static gint ett_pcap_TransportFormatSet_DynamicPartList_item;
-static gint ett_pcap_SEQUENCE_SIZE_1_maxNrOfTFs_OF_TbsTTIInfo;
-static gint ett_pcap_TbsTTIInfo;
-static gint ett_pcap_TransportFormatSet_Semi_staticPart;
-static gint ett_pcap_TFCS;
-static gint ett_pcap_CTFC;
-static gint ett_pcap_T_ctfc2Bit;
-static gint ett_pcap_T_ctfc4Bit;
-static gint ett_pcap_T_ctfc6Bit;
-static gint ett_pcap_T_ctfc8Bit;
-static gint ett_pcap_T_ctfc12Bit;
-static gint ett_pcap_T_ctfc16Bit;
-static gint ett_pcap_T_ctfc24Bit;
-static gint ett_pcap_UschParameters;
-static gint ett_pcap_VelocityEstimate;
-static gint ett_pcap_HorizontalVelocity;
-static gint ett_pcap_HorizontalWithVerticalVelocity;
-static gint ett_pcap_HorizontalVelocityWithUncertainty;
-static gint ett_pcap_HorizontalWithVerticalVelocityAndUncertainty;
-static gint ett_pcap_HorizontalSpeedAndBearing;
-static gint ett_pcap_VerticalVelocity;
-static gint ett_pcap_UTRAN_GPSReferenceTime;
-static gint ett_pcap_UTRAN_GPSReferenceTimeResult;
-static gint ett_pcap_UTRAN_GANSSReferenceTimeResult;
-static gint ett_pcap_PositionCalculationRequest;
-static gint ett_pcap_PositionCalculationResponse;
-static gint ett_pcap_PositionCalculationFailure;
-static gint ett_pcap_InformationExchangeInitiationRequest;
-static gint ett_pcap_InformationExchangeObjectType_InfEx_Rqst;
-static gint ett_pcap_RefPosition_InfEx_Rqst;
-static gint ett_pcap_UC_ID_InfEx_Rqst;
-static gint ett_pcap_InformationExchangeInitiationResponse;
-static gint ett_pcap_InformationExchangeObjectType_InfEx_Rsp;
-static gint ett_pcap_RefPosition_InfEx_Rsp;
-static gint ett_pcap_InformationExchangeInitiationFailure;
-static gint ett_pcap_PositionInitiationRequest;
-static gint ett_pcap_PositionInitiationResponse;
-static gint ett_pcap_PositionInitiationFailure;
-static gint ett_pcap_PositionActivationRequest;
-static gint ett_pcap_PositionActivationResponse;
-static gint ett_pcap_PositionActivationFailure;
-static gint ett_pcap_InformationReport;
-static gint ett_pcap_InformationExchangeObjectType_InfEx_Rprt;
-static gint ett_pcap_RefPosition_InfEx_Rprt;
-static gint ett_pcap_InformationExchangeTerminationRequest;
-static gint ett_pcap_InformationExchangeFailureIndication;
-static gint ett_pcap_ErrorIndication;
-static gint ett_pcap_PositionParameterModification;
-static gint ett_pcap_PrivateMessage;
-static gint ett_pcap_Abort;
-static gint ett_pcap_PositionPeriodicReport;
-static gint ett_pcap_PositionPeriodicResult;
-static gint ett_pcap_PositionPeriodicTermination;
-static gint ett_pcap_PCAP_PDU;
-static gint ett_pcap_InitiatingMessage;
-static gint ett_pcap_SuccessfulOutcome;
-static gint ett_pcap_UnsuccessfulOutcome;
-static gint ett_pcap_Outcome;
+static int ett_pcap_PrivateIE_ID;
+static int ett_pcap_TransactionID;
+static int ett_pcap_ProtocolIE_Container;
+static int ett_pcap_ProtocolIE_Field;
+static int ett_pcap_ProtocolExtensionContainer;
+static int ett_pcap_ProtocolExtensionField;
+static int ett_pcap_PrivateIE_Container;
+static int ett_pcap_PrivateIE_Field;
+static int ett_pcap_AddPos_MeasuredResults;
+static int ett_pcap_AddPos_MeasuredResults_Element;
+static int ett_pcap_T_type;
+static int ett_pcap_T_barometricPressure;
+static int ett_pcap_T_wlan;
+static int ett_pcap_T_bt;
+static int ett_pcap_T_mbs;
+static int ett_pcap_WLANMeasurementList;
+static int ett_pcap_WLANMeasurementList_Element;
+static int ett_pcap_BTMeasurementList;
+static int ett_pcap_BTMeasurementList_Element;
+static int ett_pcap_MBSMeasurementList;
+static int ett_pcap_MBSMeasurementList_Element;
+static int ett_pcap_AlmanacAndSatelliteHealthSIB;
+static int ett_pcap_Cause;
+static int ett_pcap_CellId_MeasuredResultsSets;
+static int ett_pcap_CellId_MeasuredResultsInfoList;
+static int ett_pcap_CellId_MeasuredResultsInfo;
+static int ett_pcap_RoundTripTimeInfo;
+static int ett_pcap_RoundTripTimeInfoWithType1;
+static int ett_pcap_UE_PositioningMeasQuality;
+static int ett_pcap_UTRANAccessPointPositionAltitude;
+static int ett_pcap_RxTimingDeviationInfo;
+static int ett_pcap_RxTimingDeviationLCRInfo;
+static int ett_pcap_RxTimingDeviation768Info;
+static int ett_pcap_RxTimingDeviation384extInfo;
+static int ett_pcap_AddMeasurementInfo;
+static int ett_pcap_AngleOfArrivalLCR;
+static int ett_pcap_CellId_IRATMeasuredResultsSets;
+static int ett_pcap_CellId_IRATMeasuredResultsInfoList;
+static int ett_pcap_GERAN_MeasuredResultsInfoList;
+static int ett_pcap_GERAN_MeasuredResultsInfo;
+static int ett_pcap_GERANCellGlobalID;
+static int ett_pcap_GERANPhysicalCellID;
+static int ett_pcap_GSM_BSIC;
+static int ett_pcap_CellIDPositioning;
+static int ett_pcap_RequestedCellIDMeasurements;
+static int ett_pcap_T_fdd;
+static int ett_pcap_T_tdd;
+static int ett_pcap_RequestedCellIDGERANMeasurements;
+static int ett_pcap_CriticalityDiagnostics;
+static int ett_pcap_CriticalityDiagnostics_IE_List;
+static int ett_pcap_CriticalityDiagnostics_IE_List_item;
+static int ett_pcap_DGPSCorrections;
+static int ett_pcap_DGPS_CorrectionSatInfoList;
+static int ett_pcap_DGPS_CorrectionSatInfo;
+static int ett_pcap_DGNSS_ValidityPeriod;
+static int ett_pcap_UE_PositionEstimate;
+static int ett_pcap_GeographicalCoordinates;
+static int ett_pcap_GA_AltitudeAndDirection;
+static int ett_pcap_GA_EllipsoidArc;
+static int ett_pcap_GA_Point;
+static int ett_pcap_GA_PointWithAltitude;
+static int ett_pcap_GA_PointWithAltitudeAndUncertaintyEllipsoid;
+static int ett_pcap_GA_PointWithUnCertainty;
+static int ett_pcap_GA_PointWithUnCertaintyEllipse;
+static int ett_pcap_GA_Polygon;
+static int ett_pcap_GA_Polygon_item;
+static int ett_pcap_GA_UncertaintyEllipse;
+static int ett_pcap_UE_PositionEstimateInfo;
+static int ett_pcap_ReferenceTimeChoice;
+static int ett_pcap_Cell_Timing;
+static int ett_pcap_GANSS_Reference_Time_Only;
+static int ett_pcap_PositionDataUEbased;
+static int ett_pcap_PositionData;
+static int ett_pcap_GANSS_PositioningDataSet;
+static int ett_pcap_PositioningDataSet;
+static int ett_pcap_Additional_PositioningDataSet;
+static int ett_pcap_GPS_AcquisitionAssistance;
+static int ett_pcap_AcquisitionSatInfoList;
+static int ett_pcap_AcquisitionSatInfo;
+static int ett_pcap_ExtraDopplerInfo;
+static int ett_pcap_ExtraDopplerInfoExtension;
+static int ett_pcap_AzimuthAndElevation;
+static int ett_pcap_AzimuthAndElevationLSB;
+static int ett_pcap_AuxInfoGANSS_ID1;
+static int ett_pcap_AuxInfoGANSS_ID1_element;
+static int ett_pcap_AuxInfoGANSS_ID3;
+static int ett_pcap_AuxInfoGANSS_ID3_element;
+static int ett_pcap_CNAVclockModel;
+static int ett_pcap_DeltaUT1;
+static int ett_pcap_DGANSS_Corrections;
+static int ett_pcap_DGANSS_Information;
+static int ett_pcap_DGANSS_InformationItem;
+static int ett_pcap_DGANSS_SignalInformation;
+static int ett_pcap_DGANSS_SignalInformationItem;
+static int ett_pcap_GANSS_AddClockModels;
+static int ett_pcap_GANSS_AddOrbitModels;
+static int ett_pcap_GANSS_Additional_Ionospheric_Model;
+static int ett_pcap_GANSS_Additional_Navigation_Models;
+static int ett_pcap_GANSS_Additional_Time_Models;
+static int ett_pcap_GANSS_Additional_UTC_Models;
+static int ett_pcap_GANSS_ALM_BDSKeplericanset;
+static int ett_pcap_Satellite_Information_BDS_KP_List;
+static int ett_pcap_Satellite_Information_BDS_KP_Item;
+static int ett_pcap_GANSS_ALM_ECEFsbasAlmanacSet;
+static int ett_pcap_GANSS_ALM_GlonassAlmanacSet;
+static int ett_pcap_GANSS_ALM_MidiAlmanacSet;
+static int ett_pcap_GANSS_ALM_NAVKeplerianSet;
+static int ett_pcap_GANSS_ALM_ReducedKeplerianSet;
+static int ett_pcap_GANSS_AlmanacAndSatelliteHealth;
+static int ett_pcap_GANSS_AlmanacModel;
+static int ett_pcap_GANSS_Auxiliary_Information;
+static int ett_pcap_GANSS_AzimuthAndElevation;
+static int ett_pcap_GANSS_Clock_Model;
+static int ett_pcap_GANSS_CommonAssistanceData;
+static int ett_pcap_GANSS_Data_Bit_Assistance;
+static int ett_pcap_GANSS_DataBitAssistanceList;
+static int ett_pcap_GANSS_DataBitAssistanceItem;
+static int ett_pcap_GANSS_DataBitAssistanceSgnList;
+static int ett_pcap_GANSS_DataBitAssistanceSgnItem;
+static int ett_pcap_GANSS_Earth_Orientation_Parameters;
+static int ett_pcap_GANSS_ExtraDoppler;
+static int ett_pcap_GANSS_ExtraDopplerExtension;
+static int ett_pcap_GANSS_GenericAssistanceDataList;
+static int ett_pcap_GANSSGenericAssistanceData;
+static int ett_pcap_BDS_Ionospheric_Grid_Model;
+static int ett_pcap_BDS_Ionospheric_Grid_Information;
+static int ett_pcap_BDS_Ionospheric_Grid_Information_item;
+static int ett_pcap_DBDS_Correction_Information;
+static int ett_pcap_DBDS_Information;
+static int ett_pcap_DBDS_Information_item;
+static int ett_pcap_DGANSS_Signal_Information;
+static int ett_pcap_DGANSS_Signal_Information_item;
+static int ett_pcap_GANSS_GenericMeasurementInfo;
+static int ett_pcap_GANSS_GenericMeasurementInfo_item;
+static int ett_pcap_GANSSID;
+static int ett_pcap_GANSSMeasurementSignalList;
+static int ett_pcap_GANSSMeasurementSignalList_item;
+static int ett_pcap_GanssCodePhaseAmbiguityExt;
+static int ett_pcap_GANSS_Ionospheric_Model;
+static int ett_pcap_GANSS_IonosphereRegionalStormFlags;
+static int ett_pcap_GANSS_KeplerianParametersAlm;
+static int ett_pcap_GANSS_KeplerianParametersOrb;
+static int ett_pcap_GANSS_MeasurementParameters;
+static int ett_pcap_GANSS_MeasurementParametersItem;
+static int ett_pcap_GanssIntegerCodePhaseExt;
+static int ett_pcap_GANSS_MeasuredResultsList;
+static int ett_pcap_GANSS_MeasuredResults;
+static int ett_pcap_T_referenceTime;
+static int ett_pcap_GANSS_Navigation_Model;
+static int ett_pcap_GANSS_Orbit_Model;
+static int ett_pcap_GANSS_Real_Time_Integrity;
+static int ett_pcap_GANSS_RealTimeInformationItem;
+static int ett_pcap_GANSS_Reference_Location;
+static int ett_pcap_GANSS_ReferenceMeasurementInfo;
+static int ett_pcap_GANSS_Reference_Time;
+static int ett_pcap_GANSS_ReferenceTimeOnly;
+static int ett_pcap_GANSS_SatelliteClockModelItem;
+static int ett_pcap_GANSS_SatelliteInformation;
+static int ett_pcap_GANSS_SatelliteInformationItem;
+static int ett_pcap_GANSS_SatelliteInformationKP;
+static int ett_pcap_GANSS_SatelliteInformationKPItem;
+static int ett_pcap_GANSS_SAT_Info_Almanac_GLOkpList;
+static int ett_pcap_GANSS_SAT_Info_Almanac_GLOkp;
+static int ett_pcap_GANSS_SAT_Info_Almanac_MIDIkpList;
+static int ett_pcap_GANSS_SAT_Info_Almanac_MIDIkp;
+static int ett_pcap_GANSS_SAT_Info_Almanac_NAVkpList;
+static int ett_pcap_GANSS_SAT_Info_Almanac_NAVkp;
+static int ett_pcap_GANSS_SAT_Info_Almanac_REDkpList;
+static int ett_pcap_GANSS_SAT_Info_Almanac_REDkp;
+static int ett_pcap_GANSS_SAT_Info_Almanac_SBASecefList;
+static int ett_pcap_GANSS_SAT_Info_Almanac_SBASecef;
+static int ett_pcap_Ganss_Sat_Info_AddNavList;
+static int ett_pcap_Ganss_Sat_Info_AddNavList_item;
+static int ett_pcap_GANSS_Sat_Info_Nav;
+static int ett_pcap_GANSS_Sat_Info_Nav_item;
+static int ett_pcap_GANSS_SignalID;
+static int ett_pcap_GANSS_Time_Model;
+static int ett_pcap_GANSS_UTRAN_TRU;
+static int ett_pcap_GANSS_UTC_Model;
+static int ett_pcap_GLONASSclockModel;
+static int ett_pcap_NAVclockModel;
+static int ett_pcap_NavModel_CNAVKeplerianSet;
+static int ett_pcap_NavModel_GLONASSecef;
+static int ett_pcap_NavModel_NAVKeplerianSet;
+static int ett_pcap_NavModel_SBASecef;
+static int ett_pcap_NavModel_BDSKeplerianSet;
+static int ett_pcap_SBASclockModel;
+static int ett_pcap_BDSClockModel;
+static int ett_pcap_UTCmodelSet1;
+static int ett_pcap_UTCmodelSet2;
+static int ett_pcap_UTCmodelSet3;
+static int ett_pcap_UTCmodelSet4;
+static int ett_pcap_UTRAN_GANSSReferenceTimeDL;
+static int ett_pcap_UTRAN_GANSSReferenceTimeUL;
+static int ett_pcap_GPS_AlmanacAndSatelliteHealth;
+static int ett_pcap_AlmanacSatInfoList;
+static int ett_pcap_AlmanacSatInfo;
+static int ett_pcap_GPS_ClockAndEphemerisParameters;
+static int ett_pcap_SubFrame1Reserved;
+static int ett_pcap_GPS_Ionospheric_Model;
+static int ett_pcap_MeasuredResultsList;
+static int ett_pcap_GPS_MeasuredResults;
+static int ett_pcap_GPS_MeasurementParamList;
+static int ett_pcap_GPS_MeasurementParam;
+static int ett_pcap_GPS_NavigationModel;
+static int ett_pcap_NavigationModelSatInfo;
+static int ett_pcap_GPS_RealTimeIntegrity;
+static int ett_pcap_BadSatList;
+static int ett_pcap_GPS_ReferenceLocation;
+static int ett_pcap_GPS_ReferenceTime;
+static int ett_pcap_GPS_TOW_AssistList;
+static int ett_pcap_GPS_TOW_Assist;
+static int ett_pcap_GPSReferenceTimeUncertainty;
+static int ett_pcap_GPS_UTC_Model;
+static int ett_pcap_AdditionalGPSAssistDataRequired;
+static int ett_pcap_AdditionalGanssAssistDataRequired;
+static int ett_pcap_GANSSReq_AddIonosphericModel;
+static int ett_pcap_GanssRequestedGenericAssistanceDataList;
+static int ett_pcap_GanssReqGenericData;
+static int ett_pcap_DBDSCorrection;
+static int ett_pcap_GANSS_AddADchoices;
+static int ett_pcap_GanssDataBits;
+static int ett_pcap_ReqDataBitAssistanceList;
+static int ett_pcap_T_ganssSatelliteInfo;
+static int ett_pcap_InformationReportCharacteristics;
+static int ett_pcap_InformationReportPeriodicity;
+static int ett_pcap_InformationType;
+static int ett_pcap_ExplicitInformationList;
+static int ett_pcap_ExplicitInformation;
+static int ett_pcap_DganssCorrectionsReq;
+static int ett_pcap_Ganss_almanacAndSatelliteHealthReq;
+static int ett_pcap_GANSSCommonDataReq;
+static int ett_pcap_GANSS_AddIonoModelReq;
+static int ett_pcap_GANSS_EarthOrientParaReq;
+static int ett_pcap_GANSSGenericDataList;
+static int ett_pcap_GANSSGenericDataReq;
+static int ett_pcap_AddNavigationModelsGANSS;
+static int ett_pcap_AddSatelliteRelatedDataListGANSS;
+static int ett_pcap_AddSatelliteRelatedDataGANSS;
+static int ett_pcap_DBDS_Corrections;
+static int ett_pcap_GANSS_AddUtcModelsReq;
+static int ett_pcap_GANSS_AuxInfoReq;
+static int ett_pcap_Ganss_utcModelReq;
+static int ett_pcap_Ganss_realTimeIntegrityReq;
+static int ett_pcap_Ganss_referenceMeasurementInfoReq;
+static int ett_pcap_Ganss_TimeModel_Gnss_Gnss;
+static int ett_pcap_UtcModel;
+static int ett_pcap_IonosphericModel;
+static int ett_pcap_NavigationModel;
+static int ett_pcap_NavModelAdditionalData;
+static int ett_pcap_SatelliteRelatedDataList;
+static int ett_pcap_SatelliteRelatedData;
+static int ett_pcap_NavigationModelGANSS;
+static int ett_pcap_SatelliteRelatedDataListGANSS;
+static int ett_pcap_SatelliteRelatedDataGANSS;
+static int ett_pcap_AlmanacAndSatelliteHealthSIB_InfoType;
+static int ett_pcap_MessageStructure;
+static int ett_pcap_MessageStructure_item;
+static int ett_pcap_MeasInstructionsUsed;
+static int ett_pcap_MeasurementValidity;
+static int ett_pcap_OTDOA_MeasurementGroup;
+static int ett_pcap_OTDOA_ReferenceCellInfo;
+static int ett_pcap_OTDOA_ReferenceCellInfoSAS_centric;
+static int ett_pcap_OTDOA_NeighbourCellInfoList;
+static int ett_pcap_OTDOA_NeighbourCellInfo;
+static int ett_pcap_OTDOA_MeasuredResultsSets;
+static int ett_pcap_OTDOA_MeasuredResultsInfoList;
+static int ett_pcap_OTDOA_MeasuredResultsInfo;
+static int ett_pcap_OTDOA_AddMeasuredResultsInfo;
+static int ett_pcap_UE_SFNSFNTimeDifferenceType2Info;
+static int ett_pcap_UC_ID;
+static int ett_pcap_RelativeTimingDifferenceInfo;
+static int ett_pcap_SFNSFNMeasurementValueInfo;
+static int ett_pcap_TUTRANGPSMeasurementValueInfo;
+static int ett_pcap_TUTRANGPS;
+static int ett_pcap_TUTRANGANSSMeasurementValueInfo;
+static int ett_pcap_TUTRANGANSS;
+static int ett_pcap_AdditionalMeasurementInforLCR;
+static int ett_pcap_PeriodicPosCalcInfo;
+static int ett_pcap_PeriodicLocationInfo;
+static int ett_pcap_PositioningMethod;
+static int ett_pcap_RRCstateChange;
+static int ett_pcap_RequestedDataValue;
+static int ett_pcap_RequestedDataValueInformation;
+static int ett_pcap_InformationAvailable;
+static int ett_pcap_RequestType;
+static int ett_pcap_UE_PositioningCapability;
+static int ett_pcap_NetworkAssistedGANSSSupport;
+static int ett_pcap_NetworkAssistedGANSSSupport_item;
+static int ett_pcap_AddPosSupport;
+static int ett_pcap_AddPosSupport_Element;
+static int ett_pcap_GANSS_SBAS_IDs;
+static int ett_pcap_GANSS_Signal_IDs;
+static int ett_pcap_UTDOAPositioning;
+static int ett_pcap_GPSPositioning;
+static int ett_pcap_GPSPositioningInstructions;
+static int ett_pcap_GANSSPositioning;
+static int ett_pcap_GANSS_PositioningInstructions;
+static int ett_pcap_OTDOAAssistanceData;
+static int ett_pcap_UE_Positioning_OTDOA_AssistanceData;
+static int ett_pcap_UE_Positioning_OTDOA_ReferenceCellInfo;
+static int ett_pcap_T_modeSpecificInfo;
+static int ett_pcap_T_fdd_01;
+static int ett_pcap_T_tdd_01;
+static int ett_pcap_T_positioningMode;
+static int ett_pcap_T_ueBased;
+static int ett_pcap_T_ueAssisted;
+static int ett_pcap_ReferenceCellPosition;
+static int ett_pcap_UE_Positioning_IPDL_Parameters;
+static int ett_pcap_T_modeSpecificInfo_01;
+static int ett_pcap_T_fdd_02;
+static int ett_pcap_T_tdd_02;
+static int ett_pcap_BurstModeParameters;
+static int ett_pcap_UE_Positioning_OTDOA_NeighbourCellList;
+static int ett_pcap_UE_Positioning_OTDOA_NeighbourCellInfo;
+static int ett_pcap_T_modeSpecificInfo_02;
+static int ett_pcap_T_fdd_03;
+static int ett_pcap_T_tdd_03;
+static int ett_pcap_T_positioningMode_01;
+static int ett_pcap_T_ueBased_01;
+static int ett_pcap_T_ueAssisted_01;
+static int ett_pcap_SFN_SFN_RelTimeDifference1;
+static int ett_pcap_UTDOA_Group;
+static int ett_pcap_FrequencyInfo;
+static int ett_pcap_T_modeSpecificInfo_03;
+static int ett_pcap_FrequencyInfoFDD;
+static int ett_pcap_FrequencyInfoTDD;
+static int ett_pcap_UTDOA_RRCState;
+static int ett_pcap_UTDOA_CELLDCH;
+static int ett_pcap_UL_DPCHInfo;
+static int ett_pcap_T_fdd_04;
+static int ett_pcap_T_tdd_04;
+static int ett_pcap_Compressed_Mode_Assistance_Data;
+static int ett_pcap_DL_InformationFDD;
+static int ett_pcap_UL_InformationFDD;
+static int ett_pcap_Transmission_Gap_Pattern_Sequence_Information;
+static int ett_pcap_Transmission_Gap_Pattern_Sequence_Information_item;
+static int ett_pcap_Active_Pattern_Sequence_Information;
+static int ett_pcap_Transmission_Gap_Pattern_Sequence_Status_List;
+static int ett_pcap_Transmission_Gap_Pattern_Sequence_Status_List_item;
+static int ett_pcap_DCH_Information;
+static int ett_pcap_TrChInfoList;
+static int ett_pcap_UL_TrCHInfo;
+static int ett_pcap_E_DPCH_Information;
+static int ett_pcap_E_TFCS_Information;
+static int ett_pcap_Reference_E_TFCI_Information;
+static int ett_pcap_Reference_E_TFCI_Information_Item;
+static int ett_pcap_TDD_DPCHOffset;
+static int ett_pcap_UL_Timeslot_Information;
+static int ett_pcap_UL_Timeslot_InformationItem;
+static int ett_pcap_MidambleShiftAndBurstType;
+static int ett_pcap_T_type1;
+static int ett_pcap_T_midambleAllocationMode;
+static int ett_pcap_T_type2;
+static int ett_pcap_T_midambleAllocationMode_01;
+static int ett_pcap_T_type3;
+static int ett_pcap_T_midambleAllocationMode_02;
+static int ett_pcap_TDD_UL_Code_Information;
+static int ett_pcap_TDD_UL_Code_InformationItem;
+static int ett_pcap_UTDOA_CELLFACH;
+static int ett_pcap_PRACHparameters;
+static int ett_pcap_PRACH_ChannelInfo;
+static int ett_pcap_PRACH_Info;
+static int ett_pcap_T_fdd_05;
+static int ett_pcap_T_tdd_05;
+static int ett_pcap_AvailableSignatures;
+static int ett_pcap_AvailableSubChannelNumbers;
+static int ett_pcap_TransportFormatSet;
+static int ett_pcap_TransportFormatSet_DynamicPartList;
+static int ett_pcap_TransportFormatSet_DynamicPartList_item;
+static int ett_pcap_SEQUENCE_SIZE_1_maxNrOfTFs_OF_TbsTTIInfo;
+static int ett_pcap_TbsTTIInfo;
+static int ett_pcap_TransportFormatSet_Semi_staticPart;
+static int ett_pcap_TFCS;
+static int ett_pcap_CTFC;
+static int ett_pcap_T_ctfc2Bit;
+static int ett_pcap_T_ctfc4Bit;
+static int ett_pcap_T_ctfc6Bit;
+static int ett_pcap_T_ctfc8Bit;
+static int ett_pcap_T_ctfc12Bit;
+static int ett_pcap_T_ctfc16Bit;
+static int ett_pcap_T_ctfc24Bit;
+static int ett_pcap_UschParameters;
+static int ett_pcap_VelocityEstimate;
+static int ett_pcap_HorizontalVelocity;
+static int ett_pcap_HorizontalWithVerticalVelocity;
+static int ett_pcap_HorizontalVelocityWithUncertainty;
+static int ett_pcap_HorizontalWithVerticalVelocityAndUncertainty;
+static int ett_pcap_HorizontalSpeedAndBearing;
+static int ett_pcap_VerticalVelocity;
+static int ett_pcap_UTRAN_GPSReferenceTime;
+static int ett_pcap_UTRAN_GPSReferenceTimeResult;
+static int ett_pcap_UTRAN_GANSSReferenceTimeResult;
+static int ett_pcap_PositionCalculationRequest;
+static int ett_pcap_PositionCalculationResponse;
+static int ett_pcap_PositionCalculationFailure;
+static int ett_pcap_InformationExchangeInitiationRequest;
+static int ett_pcap_InformationExchangeObjectType_InfEx_Rqst;
+static int ett_pcap_RefPosition_InfEx_Rqst;
+static int ett_pcap_UC_ID_InfEx_Rqst;
+static int ett_pcap_InformationExchangeInitiationResponse;
+static int ett_pcap_InformationExchangeObjectType_InfEx_Rsp;
+static int ett_pcap_RefPosition_InfEx_Rsp;
+static int ett_pcap_InformationExchangeInitiationFailure;
+static int ett_pcap_PositionInitiationRequest;
+static int ett_pcap_PositionInitiationResponse;
+static int ett_pcap_PositionInitiationFailure;
+static int ett_pcap_PositionActivationRequest;
+static int ett_pcap_PositionActivationResponse;
+static int ett_pcap_PositionActivationFailure;
+static int ett_pcap_InformationReport;
+static int ett_pcap_InformationExchangeObjectType_InfEx_Rprt;
+static int ett_pcap_RefPosition_InfEx_Rprt;
+static int ett_pcap_InformationExchangeTerminationRequest;
+static int ett_pcap_InformationExchangeFailureIndication;
+static int ett_pcap_ErrorIndication;
+static int ett_pcap_PositionParameterModification;
+static int ett_pcap_PrivateMessage;
+static int ett_pcap_Abort;
+static int ett_pcap_PositionPeriodicReport;
+static int ett_pcap_PositionPeriodicResult;
+static int ett_pcap_PositionPeriodicTermination;
+static int ett_pcap_PCAP_PDU;
+static int ett_pcap_InitiatingMessage;
+static int ett_pcap_SuccessfulOutcome;
+static int ett_pcap_UnsuccessfulOutcome;
+static int ett_pcap_Outcome;
/* Global variables */
static guint32 ProcedureCode;
@@ -4367,7 +4367,7 @@ dissect_pcap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
static int
dissect_pcap_INTEGER_0_37158911999999_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(37158911999999), NULL, TRUE);
+ 0U, UINT64_C(37158911999999), NULL, TRUE);
return offset;
}
@@ -5774,7 +5774,7 @@ dissect_pcap_INTEGER_0_37799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_pcap_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
@@ -7462,7 +7462,7 @@ dissect_pcap_GanssIntegerCodePhaseExt(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_pcap_INTEGER_0_345599999999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(345599999999), NULL, FALSE);
+ 0U, UINT64_C(345599999999), NULL, FALSE);
return offset;
}
@@ -12823,7 +12823,7 @@ dissect_pcap_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_pcap_INTEGER_0_2322431999999_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(2322431999999), NULL, TRUE);
+ 0U, UINT64_C(2322431999999), NULL, TRUE);
return offset;
}
@@ -12850,7 +12850,7 @@ dissect_pcap_UTRAN_GPSReferenceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_pcap_INTEGER_0_345599999999_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(345599999999), NULL, TRUE);
+ 0U, UINT64_C(345599999999), NULL, TRUE);
return offset;
}
diff --git a/epan/dissectors/packet-pcap_pktdata.c b/epan/dissectors/packet-pcap_pktdata.c
index 4defcc5095..6d34630f7f 100644
--- a/epan/dissectors/packet-pcap_pktdata.c
+++ b/epan/dissectors/packet-pcap_pktdata.c
@@ -170,7 +170,7 @@ const value_string link_type_vals[] = {
{ 205, "C_HDLC_WITH_DIR" },
{ 206, "FRELAY_WITH_DIR" },
{ 207, "LAPB_WITH_DIR" }, /* LAPB with direction pseudo-header */
- { 209, "IPMB_LINUX" },
+ { 209, "I2C_LINUX" },
{ 210, "FLEXRAY" }, /* FlexRay automotive bus */
{ 211, "MOST" }, /* Media Oriented Systems Transport */
{ 212, "LIN" }, /* Local Interconnect Network */
diff --git a/epan/dissectors/packet-pcli.c b/epan/dissectors/packet-pcli.c
index 9897776e3f..5a1b4e8e8c 100644
--- a/epan/dissectors/packet-pcli.c
+++ b/epan/dissectors/packet-pcli.c
@@ -85,7 +85,7 @@ static int ett_pcli;
* for pcli
*/
-static gboolean pcli_summary_in_tree = TRUE;
+static bool pcli_summary_in_tree = true;
static dissector_table_t pcli_subdissector_table;
diff --git a/epan/dissectors/packet-pcomtcp.c b/epan/dissectors/packet-pcomtcp.c
index 60985259ae..b11e2e0fa1 100644
--- a/epan/dissectors/packet-pcomtcp.c
+++ b/epan/dissectors/packet-pcomtcp.c
@@ -81,7 +81,7 @@ static dissector_handle_t pcombinary_handle;
#define PCOM_ASCII 101
#define PCOM_BINARY 102
-static range_t *global_pcomtcp_tcp_ports = NULL; /* Port 20256, by default */
+static range_t *global_pcomtcp_tcp_ports; /* Port 20256, by default */
/* Translate pcomp_protocol to string */
static const value_string pcomp_protocol_vals[] = {
diff --git a/epan/dissectors/packet-pdc.c b/epan/dissectors/packet-pdc.c
index 66593b8b1e..774f7fa3b2 100644
--- a/epan/dissectors/packet-pdc.c
+++ b/epan/dissectors/packet-pdc.c
@@ -196,7 +196,7 @@ static int dissect_simpdu(tvbuff_t *tvb, proto_tree *tree, guint16 offset, guint
static int dissect_rsmpdu(void)
{
- return (0);
+ return 0;
}
static int dissect_drmpdu(tvbuff_t *tvb, proto_tree *tree, guint16 offset)
@@ -207,7 +207,7 @@ static int dissect_drmpdu(tvbuff_t *tvb, proto_tree *tree, guint16 offset)
proto_tree_add_item(tree, hf_pdc_drmpdu_init, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_pdc_drmpdu_reason, tvb, offset + 1, 1, ENC_BIG_ENDIAN);
- return (2);
+ return 2;
}
#if (PDC_VERSION == 2)
@@ -240,7 +240,7 @@ static int dissect_admpdu(tvbuff_t *tvb, proto_tree *parent_tree _U_, proto_tree
/*Add the ad*/
proto_tree_add_item(tree, hf_pdc_admpdu_admpdunr, tvb, offset, 4, ENC_BIG_ENDIAN);
- return (2);
+ return 2;
}
#endif
@@ -265,7 +265,7 @@ static int dissect_dtmpdu(tvbuff_t *tvb, proto_tree *parent_tree, proto_tree *tr
#else
static int dissect_dtmpdu(tvbuff_t *tvb _U_, proto_tree *parent_tree _U_, proto_tree *tree _U_, guint16 offset _U_, packet_info *pinfo _U_)
{
- return (2);
+ return 2;
}
#endif
diff --git a/epan/dissectors/packet-pdcp-lte.c b/epan/dissectors/packet-pdcp-lte.c
index 0a82586b1a..985eb4a2b1 100644
--- a/epan/dissectors/packet-pdcp-lte.c
+++ b/epan/dissectors/packet-pdcp-lte.c
@@ -171,11 +171,11 @@ typedef struct {
} uat_ue_keys_record_t;
/* N.B. this is an array/table of the struct above, where ueid is the key */
-static uat_ue_keys_record_t *uat_ue_keys_records = NULL;
+static uat_ue_keys_record_t *uat_ue_keys_records;
/* Entries added by UAT */
-static uat_t * ue_keys_uat = NULL;
-static guint num_ue_keys_uat = 0;
+static uat_t * ue_keys_uat;
+static guint num_ue_keys_uat;
/* Convert an ascii hex character into a digit. Should only be given valid
hex ascii characters */
@@ -312,7 +312,7 @@ UAT_CSTRING_CB_DEF(uat_ue_keys_records, rrcIntegrityKeyString, uat_ue_keys_reco
/* Also supporting a hash table with entries from these functions */
/* Table from ueid -> ue_key_entries_t* */
-static wmem_map_t *pdcp_security_key_hash = NULL;
+static wmem_map_t *pdcp_security_key_hash;
typedef enum {
rrc_cipher,
@@ -426,10 +426,10 @@ void set_pdcp_lte_up_ciphering_key(guint16 ueid, const char *key, guint32 frame_
/* Preference settings for deciphering and integrity checking. */
-static gboolean global_pdcp_decipher_signalling = TRUE;
-static gboolean global_pdcp_decipher_userplane = FALSE; /* Can be slow, so default to FALSE */
-static gboolean global_pdcp_check_integrity = TRUE;
-static gboolean global_pdcp_ignore_sec = FALSE; /* Ignore Set Security Algo calls */
+static bool global_pdcp_decipher_signalling = true;
+static bool global_pdcp_decipher_userplane; /* Can be slow, so default to FALSE */
+static bool global_pdcp_check_integrity = true;
+static bool global_pdcp_ignore_sec; /* Ignore Set Security Algo calls */
/* Use these values where we know the keys but may have missed the algorithm,
e.g. when handing over and RRCReconfigurationRequest goes to target cell only */
@@ -542,10 +542,10 @@ static dissector_handle_t lte_rrc_dl_dcch_nb;
#define SEQUENCE_ANALYSIS_PDCP_ONLY 2
/* Preference variables */
-static gboolean global_pdcp_dissect_user_plane_as_ip = TRUE;
-static gboolean global_pdcp_dissect_signalling_plane_as_rrc = TRUE;
+static bool global_pdcp_dissect_user_plane_as_ip = true;
+static bool global_pdcp_dissect_signalling_plane_as_rrc = true;
static gint global_pdcp_check_sequence_numbers = TRUE;
-static gboolean global_pdcp_dissect_rohc = FALSE;
+static bool global_pdcp_dissect_rohc;
/* Which layer info to show in the info column */
enum layer_to_show {
@@ -580,7 +580,7 @@ typedef struct
/* The sequence analysis channel hash table.
Maps key -> status */
-static wmem_map_t *pdcp_sequence_analysis_channel_hash = NULL;
+static wmem_map_t *pdcp_sequence_analysis_channel_hash;
/* Hash table types & functions for frame reports */
@@ -675,7 +675,7 @@ typedef struct
/* The sequence analysis frame report hash table.
Maps pdcp_result_hash_key* -> pdcp_sequence_report_in_frame* */
-static wmem_map_t *pdcp_lte_sequence_analysis_report_hash = NULL;
+static wmem_map_t *pdcp_lte_sequence_analysis_report_hash;
/* Gather together security settings in order to be able to do deciphering */
typedef struct pdu_security_settings_t
@@ -1147,7 +1147,7 @@ static void checkChannelSequenceInfo(packet_info *pinfo, tvbuff_t *tvb,
/* Hash table for security state for a UE
Maps UEId -> pdcp_security_info_t* */
-static wmem_map_t *pdcp_security_hash = NULL;
+static wmem_map_t *pdcp_security_hash;
/* Result is (ueid, framenum) -> pdcp_security_info_t* */
typedef struct ueid_frame_t {
@@ -1191,7 +1191,7 @@ static guint pdcp_lte_ueid_frame_hash_func(gconstpointer v)
const ueid_frame_t *ueid_frame = (const ueid_frame_t *)v;
return ueid_frame->framenum + 100*ueid_frame->ueid;
}
-static wmem_map_t *pdcp_security_result_hash = NULL;
+static wmem_map_t *pdcp_security_result_hash;
diff --git a/epan/dissectors/packet-pdcp-nr.c b/epan/dissectors/packet-pdcp-nr.c
index dc4c19cf0c..4aa1c01cb1 100644
--- a/epan/dissectors/packet-pdcp-nr.c
+++ b/epan/dissectors/packet-pdcp-nr.c
@@ -158,11 +158,11 @@ typedef struct {
} uat_ue_keys_record_t;
/* N.B. this is an array/table of the struct above, where ueid is the key */
-static uat_ue_keys_record_t *uat_ue_keys_records = NULL;
+static uat_ue_keys_record_t *uat_ue_keys_records;
/* Entries added by UAT */
-static uat_t * ue_keys_uat = NULL;
-static guint num_ue_keys_uat = 0;
+static uat_t * ue_keys_uat;
+static guint num_ue_keys_uat;
/* Convert an ascii hex character into a digit. Should only be given valid
hex ascii characters */
@@ -302,7 +302,7 @@ UAT_CSTRING_CB_DEF(uat_ue_keys_records, upIntegrityKeyString, uat_ue_keys_recor
/* Also supporting a hash table with entries from these functions */
/* Table from ueid -> ue_key_entries_t* */
-static wmem_map_t *pdcp_security_key_hash = NULL;
+static wmem_map_t *pdcp_security_key_hash;
typedef enum {
rrc_cipher,
@@ -559,16 +559,16 @@ static dissector_handle_t nr_rrc_dl_dcch;
#define SEQUENCE_ANALYSIS_PDCP_ONLY 2
/* Preference variables */
-static gboolean global_pdcp_dissect_user_plane_as_ip = TRUE;
-static gboolean global_pdcp_dissect_signalling_plane_as_rrc = TRUE;
+static bool global_pdcp_dissect_user_plane_as_ip = true;
+static bool global_pdcp_dissect_signalling_plane_as_rrc = true;
static gint global_pdcp_check_sequence_numbers = TRUE;
-static gboolean global_pdcp_dissect_rohc = FALSE;
+static bool global_pdcp_dissect_rohc;
/* Preference settings for deciphering and integrity checking. */
-static gboolean global_pdcp_decipher_signalling = TRUE;
-static gboolean global_pdcp_decipher_userplane = FALSE; /* Can be slow, so default to FALSE */
-static gboolean global_pdcp_check_integrity = TRUE;
-static gboolean global_pdcp_ignore_sec = FALSE; /* Ignore Set Security Algo calls */
+static bool global_pdcp_decipher_signalling = true;
+static bool global_pdcp_decipher_userplane; /* Can be slow, so default to FALSE */
+static bool global_pdcp_check_integrity = true;
+static bool global_pdcp_ignore_sec; /* Ignore Set Security Algo calls */
/* Use these values where we know the keys but may have missed the algorithm,
e.g. when handing over and RRCReconfigurationRequest goes to target cell only */
@@ -621,7 +621,7 @@ typedef struct
/* The sequence analysis bearer hash table.
Maps key -> status */
-static wmem_map_t *pdcp_sequence_analysis_bearer_hash = NULL;
+static wmem_map_t *pdcp_sequence_analysis_bearer_hash;
/* Hash table types & functions for frame reports */
@@ -716,7 +716,7 @@ typedef struct
/* The sequence analysis frame report hash table.
Maps pdcp_result_hash_key* -> pdcp_sequence_report_in_frame* */
-static wmem_map_t *pdcp_nr_sequence_analysis_report_hash = NULL;
+static wmem_map_t *pdcp_nr_sequence_analysis_report_hash;
/* Gather together security settings in order to be able to do deciphering */
typedef struct pdu_security_settings_t
@@ -1212,7 +1212,7 @@ static void checkBearerSequenceInfo(packet_info *pinfo, tvbuff_t *tvb,
/* Hash table for security state for a UE during first pass.
Maps UEId -> pdcp_security_info_t* */
-static wmem_map_t *pdcp_security_hash = NULL;
+static wmem_map_t *pdcp_security_hash;
typedef struct ueid_frame_t {
@@ -1258,7 +1258,7 @@ static guint pdcp_nr_ueid_frame_hash_func(gconstpointer v)
}
/* Result is ueid_frame_t -> pdcp_security_info_t* */
-static wmem_map_t *pdcp_security_result_hash = NULL;
+static wmem_map_t *pdcp_security_result_hash;
@@ -2077,31 +2077,29 @@ static int dissect_pdcp_nr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
p_pdcp_info = (struct pdcp_nr_info *)data;
}
- /* If no RLC layer in this frame, query RLC table for configured drb settings */
- if (!p_get_proto_data(wmem_file_scope(), pinfo, proto_rlc_nr, 0)) {
- /* Signalling plane is always 12 bits SN */
- if (p_pdcp_info->plane == NR_SIGNALING_PLANE && p_pdcp_info->bearerType == Bearer_DCCH) {
- p_pdcp_info->seqnum_length = PDCP_NR_SN_LENGTH_12_BITS;
- }
- /* If DRB channel, query rlc mappings (from RRC) */
- else if (p_pdcp_info->plane == NR_USER_PLANE) {
- pdcp_bearer_parameters *params = get_rlc_nr_drb_pdcp_mapping(p_pdcp_info->ueid, p_pdcp_info->bearerId);
- if (params) {
- if (p_pdcp_info->direction == DIRECTION_UPLINK) {
- p_pdcp_info->seqnum_length = params->pdcp_sn_bits_ul;
- if (params->pdcp_sdap_ul) {
- p_pdcp_info->sdap_header |= PDCP_NR_UL_SDAP_HEADER_PRESENT;
- }
+ /* Even if no RLC layer in this frame, query RLC table for configured drb settings */
+ /* Signalling plane is always 12 bits SN */
+ if (p_pdcp_info->plane == NR_SIGNALING_PLANE && p_pdcp_info->bearerType == Bearer_DCCH) {
+ p_pdcp_info->seqnum_length = PDCP_NR_SN_LENGTH_12_BITS;
+ }
+ /* If DRB channel, query rlc mappings (hopefully set from RRC) */
+ else if (p_pdcp_info->plane == NR_USER_PLANE) {
+ pdcp_bearer_parameters *params = get_rlc_nr_drb_pdcp_mapping(p_pdcp_info->ueid, p_pdcp_info->bearerId);
+ if (params) {
+ if (p_pdcp_info->direction == DIRECTION_UPLINK) {
+ p_pdcp_info->seqnum_length = params->pdcp_sn_bits_ul;
+ if (params->pdcp_sdap_ul) {
+ p_pdcp_info->sdap_header |= PDCP_NR_UL_SDAP_HEADER_PRESENT;
}
- else {
- p_pdcp_info->seqnum_length = params->pdcp_sn_bits_dl;
- if (params->pdcp_sdap_dl) {
- p_pdcp_info->sdap_header |= PDCP_NR_DL_SDAP_HEADER_PRESENT;
- }
+ }
+ else {
+ p_pdcp_info->seqnum_length = params->pdcp_sn_bits_dl;
+ if (params->pdcp_sdap_dl) {
+ p_pdcp_info->sdap_header |= PDCP_NR_DL_SDAP_HEADER_PRESENT;
}
- p_pdcp_info->maci_present = params->pdcp_integrity;
- p_pdcp_info->ciphering_disabled = params->pdcp_ciphering_disabled;
}
+ p_pdcp_info->maci_present = params->pdcp_integrity;
+ p_pdcp_info->ciphering_disabled = params->pdcp_ciphering_disabled;
}
}
@@ -2192,7 +2190,9 @@ static int dissect_pdcp_nr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_item_set_generated(security_ti);
/* Setup frame */
- if (pinfo->num > pdu_security->algorithm_configuration_frame) {
+ if (pdu_security->algorithm_configuration_frame &&
+ pinfo->num > pdu_security->algorithm_configuration_frame) {
+ /* Must be set, and be seen before this frame */
ti = proto_tree_add_uint(security_tree, hf_pdcp_nr_security_setup_frame,
tvb, 0, 0, pdu_security->algorithm_configuration_frame);
proto_item_set_generated(ti);
@@ -2257,7 +2257,7 @@ static int dissect_pdcp_nr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/**********************************/
/* User-plane messages */
- gboolean is_user_plane;
+ bool is_user_plane;
/* Data/Control flag */
proto_tree_add_item_ret_boolean(pdcp_tree, hf_pdcp_nr_data_control, tvb, offset, 1, ENC_BIG_ENDIAN, &is_user_plane);
@@ -2455,6 +2455,8 @@ static int dissect_pdcp_nr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
should_decipher = pdu_security->seen_next_ul_pdu && !pdu_security->dl_after_reest_request;
}
}
+
+ gint pdcp_offset = offset;
payload_tvb = decipher_payload(tvb, pinfo, &offset, &pdu_security_settings, p_pdcp_info, sdap_length,
should_decipher,
&payload_deciphered);
@@ -2539,31 +2541,35 @@ static int dissect_pdcp_nr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
gint payload_length = tvb_reported_length_remaining(payload_tvb, offset) - ((p_pdcp_info->maci_present) ? 4 : 0);
if (sdap_length) {
- /* SDAP */
+ /* SDAP (not to be taken from decrypted payload) */
proto_item *sdap_ti;
proto_tree *sdap_tree;
guint32 qfi;
/* Protocol subtree */
- sdap_ti = proto_tree_add_item(pdcp_tree, proto_sdap, payload_tvb, offset, 1, ENC_NA);
+ sdap_ti = proto_tree_add_item(pdcp_tree, proto_sdap, tvb, pdcp_offset, 1, ENC_NA);
sdap_tree = proto_item_add_subtree(sdap_ti, ett_sdap);
if (p_pdcp_info->direction == PDCP_NR_DIRECTION_UPLINK) {
- gboolean data_control;
- proto_tree_add_item_ret_boolean(sdap_tree, hf_sdap_data_control, payload_tvb, offset, 1, ENC_NA, &data_control);
- proto_tree_add_item(sdap_tree, hf_sdap_reserved, payload_tvb, offset, 1, ENC_NA);
+ bool data_control;
+ proto_tree_add_item_ret_boolean(sdap_tree, hf_sdap_data_control, tvb, pdcp_offset, 1, ENC_NA, &data_control);
+ proto_tree_add_item(sdap_tree, hf_sdap_reserved, tvb, pdcp_offset, 1, ENC_NA);
proto_item_append_text(sdap_ti, " (%s", tfs_get_string(data_control, &pdu_type_bit));
} else {
- gboolean rdi, rqi;
- proto_tree_add_item_ret_boolean(sdap_tree, hf_sdap_rdi, payload_tvb, offset, 1, ENC_NA, &rdi);
- proto_tree_add_item_ret_boolean(sdap_tree, hf_sdap_rqi, payload_tvb, offset, 1, ENC_NA, &rqi);
+ bool rdi, rqi;
+ proto_tree_add_item_ret_boolean(sdap_tree, hf_sdap_rdi, tvb, pdcp_offset, 1, ENC_NA, &rdi);
+ proto_tree_add_item_ret_boolean(sdap_tree, hf_sdap_rqi, tvb, pdcp_offset, 1, ENC_NA, &rqi);
proto_item_append_text(sdap_ti, " (RDI=%s, RQI=%s",
tfs_get_string(rdi, &sdap_rdi), tfs_get_string(rqi, &sdap_rqi));
}
/* QFI is common to both directions */
- proto_tree_add_item_ret_uint(sdap_tree, hf_sdap_qfi, payload_tvb, offset, 1, ENC_NA, &qfi);
- offset++;
+ proto_tree_add_item_ret_uint(sdap_tree, hf_sdap_qfi, tvb, pdcp_offset, 1, ENC_NA, &qfi);
+
+ /* Did SDAP come out of main tvb? If ciphered, was already taken off the front.. */
+ if (!payload_deciphered) {
+ offset += sdap_length;
+ payload_length -= sdap_length;
+ }
proto_item_append_text(sdap_ti, " QFI=%u)", qfi);
- payload_length--;
}
if (payload_length > 0) {
diff --git a/epan/dissectors/packet-pdu-transport.c b/epan/dissectors/packet-pdu-transport.c
index 1bb0d4c4f1..b00107a1fd 100644
--- a/epan/dissectors/packet-pdu-transport.c
+++ b/epan/dissectors/packet-pdu-transport.c
@@ -43,10 +43,10 @@ void proto_register_pdu_transport(void);
void proto_reg_handoff_pdu_transport(void);
static int proto_pdu_transport;
-static dissector_handle_t pdu_transport_handle_udp = NULL;
-static dissector_handle_t pdu_transport_handle_tcp = NULL;
+static dissector_handle_t pdu_transport_handle_udp;
+static dissector_handle_t pdu_transport_handle_tcp;
-static dissector_table_t subdissector_table = NULL;
+static dissector_table_t subdissector_table;
#define PDU_TRANSPORT_NAME "PDU Transport"
#define PDU_TRANSPORT_HDR_LEN 8
@@ -144,9 +144,9 @@ ht_lookup_name(GHashTable *ht, unsigned int identifier) {
/*** UAT pdu_transport_CM_IDs ***/
#define DATAFILE_PDU_IDS "PDU_Transport_identifiers"
-static GHashTable *data_pdu_transport_pdus = NULL;
-static generic_one_id_string_t *pdu_transport_pdus = NULL;
-static guint pdu_transport_pdus_num = 0;
+static GHashTable *data_pdu_transport_pdus;
+static generic_one_id_string_t *pdu_transport_pdus;
+static guint pdu_transport_pdus_num;
UAT_HEX_CB_DEF(pdu_transport_pdus, id, generic_one_id_string_t)
UAT_CSTRING_CB_DEF(pdu_transport_pdus, name, generic_one_id_string_t)
diff --git a/epan/dissectors/packet-peekremote.c b/epan/dissectors/packet-peekremote.c
index 80e8997fff..a5da3a413a 100644
--- a/epan/dissectors/packet-peekremote.c
+++ b/epan/dissectors/packet-peekremote.c
@@ -51,11 +51,20 @@
#include <epan/expert.h>
#include <wsutil/802_11-utils.h>
+#include <packet-ieee80211-radiotap-defs.h>
#define IS_ARUBA 0x01
#define PEEKREMOTE_PORT 5000 /* Not IANA registered */
+#define PEEKREMOTE_V3 3
+#define PEEKRMEOTE_NEW_BASE_LEN 9
+#define PEEKREMOTE_V3_HDR_LEN 13
+
+#define PEEKREMOTE_V0_6GHZ_BAND_VALID 0x08
+#define PEEKREMOTE_V0_IS_6GHZ_BAND 0x10
+
+
void proto_register_peekremote(void);
void proto_reg_handoff_peekremote(void);
@@ -163,7 +172,7 @@ static const value_string peekremote_type_vals[] = {
#define EXT_FLAGS_BANDWIDTH 0x00000007
#define EXT_FLAG_HALF_GI 0x00000008
#define EXT_FLAG_FULL_GI 0x00000010
-#define EXT_FLAGS_GI 0x00000018
+#define EXT_FLAGS_GI 0x00200018
#define EXT_FLAG_AMPDU 0x00000020
#define EXT_FLAG_AMSDU 0x00000040
#define EXT_FLAG_802_11ac 0x00000080
@@ -175,7 +184,10 @@ static const value_string peekremote_type_vals[] = {
#define EXT_FLAG_160MHZ 0x00040000
#define EXT_FLAG_EHTFLAG 0x00080000
#define EXT_FLAG_320MHZ 0x00100000
-#define EXT_FLAGS_RESERVED 0xFFE00000
+#define EXT_FLAG_QUARTER_GI 0x00200000
+#define EXT_FLAGS_RESERVED 0xFFC00000
+
+#define EXT_FLAG_SPATIALSTREAMS_SHIFT 14
static int hf_peekremote_band;
static int hf_peekremote_channel;
@@ -194,6 +206,7 @@ static int hf_peekremote_extflags_future_use;
static int hf_peekremote_extflags_half_gi;
static int hf_peekremote_extflags_heflag;
static int hf_peekremote_extflags_ehtflag;
+static int hf_peekremote_extflags_quarter_gi;
static int hf_peekremote_extflags_reserved;
static int hf_peekremote_extflags_shortpreamble;
static int hf_peekremote_extflags_spatialstreams;
@@ -201,6 +214,8 @@ static int hf_peekremote_flags;
static int hf_peekremote_flags_control_frame;
static int hf_peekremote_flags_crc_error;
static int hf_peekremote_flags_frame_error;
+static int hf_peekremote_flags_6ghz_band_valid;
+static int hf_peekremote_flags_6ghz;
static int hf_peekremote_flags_reserved;
static int hf_peekremote_frequency;
static int hf_peekremote_header_size;
@@ -240,21 +255,33 @@ static gint ett_peekremote_status;
static gint ett_peekremote_extflags;
static dissector_handle_t wlan_radio_handle;
-
+static dissector_handle_t radiotap_handle;
static int
dissect_peekremote_extflags(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset)
{
proto_tree *extflags_tree;
- proto_item *ti_extflags;
+ proto_item *ti_extflags, *item=NULL;
+
+ uint32_t extflags = tvb_get_ntohl(tvb, offset);
ti_extflags = proto_tree_add_item(tree, hf_peekremote_extflags, tvb, offset, 4, ENC_BIG_ENDIAN);
extflags_tree = proto_item_add_subtree(ti_extflags, ett_peekremote_extflags);
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_20mhz_lower, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_20mhz_upper, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_40mhz, tvb, offset, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(extflags_tree, hf_peekremote_extflags_half_gi, tvb, offset, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(extflags_tree, hf_peekremote_extflags_full_gi, tvb, offset, 4, ENC_BIG_ENDIAN);
+ item = proto_tree_add_item(extflags_tree, hf_peekremote_extflags_half_gi, tvb, offset, 4, ENC_BIG_ENDIAN);
+ if ((extflags & EXT_FLAG_HEFLAG) || (extflags & EXT_FLAG_EHTFLAG)) {
+ proto_item_append_text(item, " (1.6uS)");
+ } else {
+ proto_item_append_text(item, " (0.4uS)");
+ }
+ item = proto_tree_add_item(extflags_tree, hf_peekremote_extflags_full_gi, tvb, offset, 4, ENC_BIG_ENDIAN);
+ if ((extflags & EXT_FLAG_HEFLAG) || (extflags & EXT_FLAG_EHTFLAG)) {
+ proto_item_append_text(item, " (3.2uS)");
+ } else {
+ proto_item_append_text(item, " (0.8uS)");
+ }
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_ampdu, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_amsdu, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_11ac, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -266,6 +293,10 @@ dissect_peekremote_extflags(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_160mhz, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_ehtflag, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_320mhz, tvb, offset, 4, ENC_BIG_ENDIAN);
+ if ((extflags & EXT_FLAG_HEFLAG) || (extflags & EXT_FLAG_EHTFLAG)) {
+ item = proto_tree_add_item(extflags_tree, hf_peekremote_extflags_quarter_gi, tvb, offset, 4, ENC_BIG_ENDIAN);
+ proto_item_append_text(item, " (0.8uS)");
+ }
proto_tree_add_item(extflags_tree, hf_peekremote_extflags_reserved, tvb, offset, 4, ENC_BIG_ENDIAN);
return 4;
@@ -282,6 +313,8 @@ dissect_peekremote_flags(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
proto_tree_add_item(flags_tree, hf_peekremote_flags_control_frame, tvb, offset, 1, ENC_NA);
proto_tree_add_item(flags_tree, hf_peekremote_flags_crc_error, tvb, offset, 1, ENC_NA);
proto_tree_add_item(flags_tree, hf_peekremote_flags_frame_error, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(flags_tree, hf_peekremote_flags_6ghz_band_valid, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(flags_tree, hf_peekremote_flags_6ghz, tvb, offset, 1, ENC_NA);
proto_tree_add_item(flags_tree, hf_peekremote_flags_reserved, tvb, offset, 1, ENC_NA);
return 1;
@@ -317,6 +350,7 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
guint32 extflags;
guint16 frequency;
guint16 mcs_index;
+ guint8 nss;
tvbuff_t *next_tvb;
if (tvb_memeql(tvb, 0, magic, 4) == -1) {
@@ -356,26 +390,99 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
if (header_size > 9)
offset += (header_size - 9);
} else {
+ /* Initialize bandwidth as 20Mhz, overwrite later based on extflags, if needed*/
+ int bandwidth_vht = IEEE80211_RADIOTAP_VHT_BW_20;
+ int bandwidth_he = IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_20;
+
proto_tree_add_item(peekremote_tree, hf_peekremote_type, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
mcs_index = tvb_get_ntohs(tvb, offset);
extflags = tvb_get_ntohl(tvb, offset+12);
+ /* Encoded value is NSS - 1 */
+ nss = ((extflags & EXT_FLAG_SPATIALSTREAMS) >> EXT_FLAG_SPATIALSTREAMS_SHIFT) + 1;
+
+ if (extflags & EXT_FLAG_40_MHZ) {
+ bandwidth_vht = IEEE80211_RADIOTAP_VHT_BW_40;
+ bandwidth_he = IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_40;
+ } else if (extflags & EXT_FLAG_80MHZ) {
+ bandwidth_vht = IEEE80211_RADIOTAP_VHT_BW_80;
+ bandwidth_he = IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_80;
+ } else if (extflags & EXT_FLAG_160MHZ) {
+ bandwidth_vht = IEEE80211_RADIOTAP_VHT_BW_160;
+ bandwidth_he = IEEE80211_RADIOTAP_HE_DATA_BANDWIDTH_RU_160;
+ }
+
if (extflags & EXT_FLAG_EHTFLAG) {
proto_tree_add_item(peekremote_tree, hf_peekremote_mcs_index_ac, tvb, offset, 2, ENC_BIG_ENDIAN);
phdr.phy = PHDR_802_11_PHY_11BE;
- }
- else if (extflags & EXT_FLAG_HEFLAG) {
+
+ } else if (extflags & EXT_FLAG_HEFLAG) {
proto_tree_add_item(peekremote_tree, hf_peekremote_mcs_index_ac, tvb, offset, 2, ENC_BIG_ENDIAN);
phdr.phy = PHDR_802_11_PHY_11AX;
+ if (extflags & EXT_FLAGS_GI) {
+ /* Quarter GI : 0.8uS
+ Half GI : 1.6uS
+ Full GI : 3.2uS */
+ phdr.phy_info.info_11ax.has_gi = TRUE;
+ phdr.phy_info.info_11ax.gi = ((extflags & EXT_FLAG_FULL_GI) != 0) ? 2 :
+ ((extflags & EXT_FLAG_HALF_GI) != 0) ? 1 :
+ 0;
+ }
+ phdr.phy_info.info_11ax.has_bwru = TRUE;
+ phdr.phy_info.info_11ax.bwru = bandwidth_he;
+ phdr.phy_info.info_11ax.has_mcs_index = TRUE;
+ phdr.phy_info.info_11ax.mcs = mcs_index;
+ phdr.phy_info.info_11ax.nsts = nss;
+
} else {
if (extflags & EXT_FLAG_802_11ac) {
proto_tree_add_item(peekremote_tree, hf_peekremote_mcs_index_ac, tvb, offset, 2, ENC_BIG_ENDIAN);
phdr.phy = PHDR_802_11_PHY_11AC;
- } else {
+ if (extflags & EXT_FLAGS_GI) {
+ /* Half GI : 0.4uS
+ Full GI : 0.8uS */
+ phdr.phy_info.info_11ac.has_short_gi = TRUE;
+ phdr.phy_info.info_11ac.short_gi = ((extflags & EXT_FLAG_HALF_GI) != 0);
+ }
+
+ phdr.phy_info.info_11ac.has_bandwidth = TRUE;
+ phdr.phy_info.info_11ac.bandwidth = bandwidth_vht;
+ /* Set FEC/ STBC to defaults to suppress warnings in 80211-radio dissector */
+ phdr.phy_info.info_11ac.has_fec = TRUE;
+ phdr.phy_info.info_11ac.fec = 0;
+ phdr.phy_info.info_11ac.has_stbc = TRUE;
+ phdr.phy_info.info_11ac.stbc = 0;
+ /* Peekremote does not have per-user fields, so fill data as if it is SU and for user0 */
+ phdr.phy_info.info_11ac.mcs[0] = mcs_index;
+ phdr.phy_info.info_11ac.nss[0] = nss;
+
+ } else { /* 11n */
proto_tree_add_item(peekremote_tree, hf_peekremote_mcs_index, tvb, offset, 2, ENC_BIG_ENDIAN);
phdr.phy = PHDR_802_11_PHY_11N;
- phdr.phy_info.info_11n.has_mcs_index = TRUE;
- phdr.phy_info.info_11n.mcs_index = mcs_index;
+ if (extflags & EXT_FLAGS_GI) {
+ /* Half GI : 0.4uS
+ Full GI : 0.8uS */
+ phdr.phy_info.info_11ac.has_short_gi = TRUE;
+ phdr.phy_info.info_11ac.short_gi = ((extflags & EXT_FLAG_HALF_GI) != 0);
+ }
+ phdr.phy_info.info_11n.has_bandwidth = TRUE;
+ if (extflags & EXT_FLAG_40_MHZ) {
+ phdr.phy_info.info_11n.bandwidth = IEEE80211_RADIOTAP_MCS_BW_40;
+ } else {
+ phdr.phy_info.info_11n.bandwidth = IEEE80211_RADIOTAP_MCS_BW_20;
+ }
+ /* Set FEC/ STBC/ Greenfield to defaults to suppress warnings in 80211-radio dissector */
+ phdr.phy_info.info_11n.has_fec = TRUE;
+ phdr.phy_info.info_11n.fec = 0;
+ phdr.phy_info.info_11n.has_stbc_streams = TRUE;
+ phdr.phy_info.info_11n.stbc_streams = 0;
+ phdr.phy_info.info_11n.has_greenfield = TRUE;
+ phdr.phy_info.info_11n.greenfield = FALSE;
+ phdr.phy_info.info_11n.has_ness = TRUE;
+ phdr.phy_info.info_11n.ness = 0;
+
+ phdr.phy_info.info_11n.has_mcs_index = TRUE;
+ phdr.phy_info.info_11n.mcs_index = mcs_index;
}
}
offset += 2;
@@ -437,7 +544,24 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
offset += 8;
}
break;
-
+ /* With LiveAction's consent (via Issue #19533) new version Peekremote v3 encapsulation is defined as:
+ * [ UDP [ PEEKREMOTE v3 [ RADIOTAP [ 80211 ]]]]
+ */
+ case PEEKREMOTE_V3:
+ if (header_size != PEEKREMOTE_V3_HDR_LEN) {
+ expert_add_info(pinfo, ti_header_size, &ei_peekremote_invalid_header_size);
+ if (header_size > PEEKRMEOTE_NEW_BASE_LEN) {
+ offset += (header_size - PEEKRMEOTE_NEW_BASE_LEN);
+ }
+ } else {
+ proto_tree_add_item(peekremote_tree, hf_peekremote_type, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ proto_item_set_end(ti, tvb, offset);
+ next_tvb = tvb_new_subset_remaining(tvb, offset);
+ call_dissector(radiotap_handle, next_tvb, pinfo, tree);
+ return TRUE;
+ }
+ break;
default:
expert_add_info(pinfo, ti_header_version, &ei_peekremote_unknown_header_version);
if (header_size > 9)
@@ -459,7 +583,8 @@ dissect_peekremote_legacy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
proto_item *ti = NULL;
struct ieee_802_11_phdr phdr;
guint8 signal_percent;
-
+ uint8_t flags = 0;
+ bool is_6ghz = false;
memset(&phdr, 0, sizeof(phdr));
/*
@@ -516,6 +641,14 @@ dissect_peekremote_legacy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
phdr.has_tsf_timestamp = TRUE;
phdr.tsf_timestamp = tvb_get_ntoh64(tvb, 8);
+ flags = tvb_get_guint8(tvb, 6);
+ if (flags & PEEKREMOTE_V0_6GHZ_BAND_VALID) {
+ bool is_bg;
+ is_6ghz = flags & PEEKREMOTE_V0_IS_6GHZ_BAND;
+ is_bg = is_6ghz ? false : CHAN_IS_BG(phdr.channel);
+ phdr.has_frequency = TRUE;
+ phdr.frequency = ieee80211_chan_band_to_mhz(phdr.channel, is_bg, is_6ghz);
+ }
/*
* We don't know they PHY, but we do have the data rate;
* try to guess the PHY based on the data rate and channel.
@@ -526,7 +659,7 @@ dissect_peekremote_legacy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
phdr.phy_info.info_11b.has_short_preamble = FALSE;
} else if (RATE_IS_OFDM(phdr.data_rate)) {
/* 11a or 11g, depending on the band. */
- if (CHAN_IS_BG(phdr.channel)) {
+ if (CHAN_IS_BG(phdr.channel) && !is_6ghz) {
/* 11g */
phdr.phy = PHDR_802_11_PHY_11G;
phdr.phy_info.info_11g.has_mode = FALSE;
@@ -590,9 +723,19 @@ proto_register_peekremote(void)
FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x04,
NULL, HFILL }
},
+ { &hf_peekremote_flags_6ghz_band_valid,
+ { "Is 6GHz band flag valid", "peekremote.flags.6ghzband_valid",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x08,
+ NULL, HFILL }
+ },
+ { &hf_peekremote_flags_6ghz,
+ { "6GHz band", "peekremote.flags.6ghz",
+ FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10,
+ NULL, HFILL }
+ },
{ &hf_peekremote_flags_reserved,
{ "Reserved", "peekremote.flags.reserved",
- FT_UINT8, BASE_HEX, NULL, 0xF8,
+ FT_UINT8, BASE_HEX, NULL, 0xE0,
"Must be zero", HFILL }
},
{ &hf_peekremote_status,
@@ -765,6 +908,11 @@ proto_register_peekremote(void)
FT_BOOLEAN, 32, TFS(&tfs_yes_no), EXT_FLAG_320MHZ,
NULL, HFILL }
},
+ { &hf_peekremote_extflags_quarter_gi,
+ { "Quarter Guard Interval", "peekremote.extflags.quarter_gi",
+ FT_BOOLEAN, 32, TFS(&tfs_yes_no), EXT_FLAG_QUARTER_GI,
+ NULL, HFILL }
+ },
{ &hf_peekremote_extflags_reserved,
{ "Reserved", "peekremote.extflags.reserved",
FT_UINT32, BASE_HEX, NULL, EXT_FLAGS_RESERVED,
@@ -835,8 +983,10 @@ proto_register_peekremote(void)
void
proto_reg_handoff_peekremote(void)
{
+ /* Peekremote V0/V2 */
wlan_radio_handle = find_dissector_add_dependency("wlan_radio", proto_peekremote);
-
+ /* Peekremote V3 */
+ radiotap_handle = find_dissector_add_dependency("radiotap", proto_peekremote);
dissector_add_uint_with_preference("udp.port", PEEKREMOTE_PORT, peekremote_handle);
heur_dissector_add("udp", dissect_peekremote_new, "OmniPeek Remote over UDP", "peekremote_udp", proto_peekremote, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-per.c b/epan/dissectors/packet-per.c
index 5c9da0119b..798d8a80ae 100644
--- a/epan/dissectors/packet-per.c
+++ b/epan/dissectors/packet-per.c
@@ -61,6 +61,9 @@ static int hf_per_internal_range;
static int hf_per_internal_num_bits;
static int hf_per_internal_min;
static int hf_per_internal_value;
+static int hf_per_internal_min_int;
+static int hf_per_internal_value_int;
+
static int hf_per_encoding_boiler_plate;
static gint ett_per_open_type;
@@ -83,7 +86,7 @@ static expert_field ei_per_external_type;
static expert_field ei_per_open_type;
static expert_field ei_per_open_type_len;
-static dissector_table_t per_oid_dissector_table = NULL;
+static dissector_table_t per_oid_dissector_table;
/*
#define DEBUG_ENTRY(x) \
@@ -97,7 +100,7 @@ printf("#%u %s tvb:0x%08x\n",actx->pinfo->num,x,(int)tvb);
/* whether the PER helpers should put the internal PER fields into the tree
or not.
*/
-static gboolean display_internal_per_fields = FALSE;
+static bool display_internal_per_fields;
@@ -169,7 +172,7 @@ dissect_per_open_type_internal(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx,
tvbuff_t *val_tvb = NULL, *pdu_tvb = NULL, *fragment_tvb = NULL;
header_field_info *hfi;
proto_tree *subtree = tree;
- gboolean is_fragmented;
+ bool is_fragmented;
int captured_pdu_length;
hfi = (hf_index <= 0) ? NULL : proto_registrar_get_nth(hf_index);
@@ -298,14 +301,14 @@ dissect_per_open_type_pdu_new(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, p
*/
guint32
-dissect_per_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index, guint32 *length, gboolean *is_fragmented)
+dissect_per_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index, guint32 *length, bool *is_fragmented)
{
guint8 byte;
guint32 len;
proto_item *pi;
int num_bits;
int i, bit, str_length, str_index;
- gboolean tmp;
+ bool tmp;
if(!length){
length=&len;
@@ -465,7 +468,7 @@ dissect_per_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _
static guint32
dissect_per_normally_small_nonnegative_whole_number(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, guint32 *length)
{
- gboolean small_number, length_bit;
+ bool small_number, length_bit;
guint32 len, length_determinant;
proto_item *pi;
@@ -699,7 +702,7 @@ DEBUG_ENTRY("dissect_per_restricted_character_string");
*/
if (has_extension) {
- gboolean extension_present;
+ bool extension_present;
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_present_bit, &extension_present);
if (!display_internal_per_fields) proto_item_set_hidden(actx->created_item);
if(extension_present){
@@ -753,7 +756,7 @@ DEBUG_ENTRY("dissect_per_restricted_character_string");
for(char_pos=0;char_pos<length;char_pos++){
guchar val;
int i;
- gboolean bit;
+ bool bit;
val=0;
for(i=0;i<bits_per_char;i++){
@@ -977,7 +980,7 @@ DEBUG_ENTRY("dissect_per_constrained_sequence_of");
* a single bit shall be added to the field-list in a bit-field of length one
*/
if (has_extension) {
- gboolean extension_present;
+ bool extension_present;
offset=dissect_per_boolean(tvb, offset, actx, parent_tree, hf_per_extension_present_bit, &extension_present);
if (!display_internal_per_fields) proto_item_set_hidden(actx->created_item);
if (extension_present){
@@ -1148,7 +1151,7 @@ dissect_per_relative_oid_str(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, pr
/* this function reads a single bit */
guint32
-dissect_per_boolean(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, gboolean *bool_val)
+dissect_per_boolean(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, bool *bool_val)
{
guint8 ch, mask;
gboolean value;
@@ -1341,7 +1344,7 @@ dissect_per_constrained_integer(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx,
DEBUG_ENTRY("dissect_per_constrained_integer");
if(has_extension){
- gboolean extension_present;
+ bool extension_present;
offset=dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_present_bit, &extension_present);
if (!display_internal_per_fields) proto_item_set_hidden(actx->created_item);
if(extension_present){
@@ -1419,10 +1422,18 @@ DEBUG_ENTRY("dissect_per_constrained_integer");
if (display_internal_per_fields){
str = decode_bits_in_field(actx->pinfo->pool, (offset&0x07),num_bits,val,ENC_BIG_ENDIAN);
- proto_tree_add_uint(tree, hf_per_internal_min, tvb, val_start,val_length, min);
+ if (FT_IS_INT(hfi->type)) {
+ proto_tree_add_int(tree, hf_per_internal_min_int, tvb, val_start, val_length, min);
+ } else {
+ proto_tree_add_uint(tree, hf_per_internal_min, tvb, val_start, val_length, min);
+ }
proto_tree_add_uint64(tree, hf_per_internal_range, tvb, val_start, val_length, range);
proto_tree_add_uint(tree, hf_per_internal_num_bits, tvb, val_start, val_length, num_bits);
- proto_tree_add_uint64_format_value(tree, hf_per_internal_value, tvb, val_start, val_length, val+min, "%s decimal value: %u", str, val+min);
+ if (FT_IS_INT(hfi->type)) {
+ proto_tree_add_int64_format_value(tree, hf_per_internal_value_int, tvb, val_start, val_length, val + min, "%s decimal value: %i", str, val + min);
+ } else {
+ proto_tree_add_uint64_format_value(tree, hf_per_internal_value, tvb, val_start, val_length, val + min, "%s decimal value: %u", str, val + min);
+ }
}
/* The actual value */
val+=min;
@@ -1452,7 +1463,7 @@ DEBUG_ENTRY("dissect_per_constrained_integer");
val+=min;
} else {
int i,num_bytes;
- gboolean bit;
+ bool bit;
/* 10.5.7.4 */
/* 12.2.6 */
@@ -1502,11 +1513,11 @@ dissect_per_constrained_integer_64b(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *a
nstime_t timeval;
header_field_info *hfi;
int num_bits;
- gboolean tmp;
+ bool tmp;
DEBUG_ENTRY("dissect_per_constrained_integer_64b");
if(has_extension){
- gboolean extension_present;
+ bool extension_present;
offset=dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_present_bit, &extension_present);
if (!display_internal_per_fields) proto_item_set_hidden(actx->created_item);
if(extension_present){
@@ -1703,7 +1714,7 @@ dissect_per_enumerated(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tr
proto_item *it=NULL;
guint32 enum_index, val;
guint32 start_offset = offset;
- gboolean extension_present = FALSE;
+ bool extension_present = false;
header_field_info *hfi;
if (has_extension) {
@@ -1768,7 +1779,7 @@ dissect_per_real(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tr
guint32
dissect_per_choice(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, gint ett_index, const per_choice_t *choice, gint *value)
{
- gboolean /*extension_present,*/ extension_flag;
+ bool /*extension_present,*/ extension_flag;
int extension_root_entries;
guint32 choice_index;
int i, idx, cidx;
@@ -1784,7 +1795,7 @@ DEBUG_ENTRY("dissect_per_choice");
/* 22.5 */
if (choice[0].extension == ASN1_NO_EXTENSIONS){
/*extension_present = FALSE; ?? */
- extension_flag = FALSE;
+ extension_flag = false;
} else {
/*extension_present = TRUE; ?? */
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_bit, &extension_flag);
@@ -1927,7 +1938,7 @@ index_get_field_name(const per_sequence_t *sequence, int idx)
guint32
dissect_per_sequence(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *parent_tree, int hf_index, gint ett_index, const per_sequence_t *sequence)
{
- gboolean /*extension_present,*/ extension_flag, optional_field_flag;
+ bool /*extension_present,*/ extension_flag, optional_field_flag;
proto_item *item;
proto_tree *tree;
guint32 old_offset=offset;
@@ -2004,7 +2015,7 @@ DEBUG_ENTRY("dissect_per_sequence");
if(extension_flag){
- gboolean extension_bit;
+ bool extension_bit;
guint32 num_known_extensions;
guint32 num_extensions;
guint32 extension_mask;
@@ -2113,7 +2124,7 @@ DEBUG_ENTRY("dissect_per_sequence");
guint32
dissect_per_sequence_eag(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, const per_sequence_t *sequence)
{
- gboolean optional_field_flag;
+ bool optional_field_flag;
guint32 i, j, num_opts;
guint32 optional_mask[SEQ_MAX_COMPONENTS>>5];
@@ -2259,7 +2270,7 @@ dissect_per_bit_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tr
/*gint val_start, val_length;*/
guint32 length, fragmented_length = 0;
header_field_info *hfi;
- gboolean is_fragmented = FALSE;
+ bool is_fragmented = false;
tvbuff_t *fragmented_tvb = NULL, *out_tvb = NULL, *fragment_tvb = NULL;
hfi = (hf_index <= 0) ? NULL : proto_registrar_get_nth(hf_index);
@@ -2283,7 +2294,7 @@ DEBUG_ENTRY("dissect_per_bit_string");
* and zero otherwise.
*/
if (has_extension) {
- gboolean extension_present;
+ bool extension_present;
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_present_bit, &extension_present);
if (!display_internal_per_fields) proto_item_set_hidden(actx->created_item);
if(extension_present){
@@ -2444,7 +2455,7 @@ dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_
gint val_start = 0, val_length;
guint32 length = 0, fragmented_length = 0;
header_field_info *hfi;
- gboolean is_fragmented = FALSE;
+ bool is_fragmented = false;
tvbuff_t *out_tvb = NULL, *fragment_tvb = NULL;
hfi = (hf_index <= 0) ? NULL : proto_registrar_get_nth(hf_index);
@@ -2452,7 +2463,7 @@ dissect_per_octet_string(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_
DEBUG_ENTRY("dissect_per_octet_string");
if (has_extension) { /* 16.3 an extension marker is present */
- gboolean extension_present;
+ bool extension_present;
offset = dissect_per_boolean(tvb, offset, actx, tree, hf_per_extension_present_bit, &extension_present);
if (!display_internal_per_fields) proto_item_set_hidden(actx->created_item);
if (extension_present) max_len = NO_BOUND; /* skip to 16.8 */
@@ -2593,7 +2604,7 @@ guint32 dissect_per_size_constrained_type(tvbuff_t *tvb, guint32 offset, asn1_ct
return offset;
}
-gboolean get_size_constraint_from_stack(asn1_ctx_t *actx, const gchar *name, int *pmin_len, int *pmax_len, gboolean *phas_extension)
+gboolean get_size_constraint_from_stack(asn1_ctx_t *actx, const gchar *name, int *pmin_len, int *pmax_len, bool *phas_extension)
{
asn1_par_t *par;
@@ -2927,6 +2938,14 @@ proto_register_per(void)
{ "Bits", "per.internal.value",
FT_UINT64, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_per_internal_min_int,
+ { "Min", "per.internal.min_int",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
+ { &hf_per_internal_value_int,
+ { "Bits", "per.internal.value_int",
+ FT_INT64, BASE_DEC, NULL, 0,
+ NULL, HFILL } },
{ &hf_per_encoding_boiler_plate,
{ "PER encoded protocol, to see PER internal fields set protocol PER preferences", "per.encoding_boiler_plate",
FT_NONE, BASE_NONE, NULL, 0x0,
diff --git a/epan/dissectors/packet-per.h b/epan/dissectors/packet-per.h
index 9ea76ad7c3..96f87e1832 100644
--- a/epan/dissectors/packet-per.h
+++ b/epan/dissectors/packet-per.h
@@ -81,7 +81,7 @@ WS_DLL_PUBLIC guint32 dissect_per_object_identifier_str(tvbuff_t *tvb, guint32 o
WS_DLL_PUBLIC guint32 dissect_per_relative_oid(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, tvbuff_t **value_tvb);
WS_DLL_PUBLIC guint32 dissect_per_relative_oid_str(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, const char **value_stringx);
-WS_DLL_PUBLIC guint32 dissect_per_boolean(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, gboolean *bool_val);
+WS_DLL_PUBLIC guint32 dissect_per_boolean(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, bool *bool_val);
WS_DLL_PUBLIC guint32 dissect_per_integer(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, gint32 *value);
@@ -113,9 +113,9 @@ WS_DLL_PUBLIC guint32 dissect_per_open_type_pdu_new(tvbuff_t *tvb, guint32 offse
WS_DLL_PUBLIC guint32 dissect_per_external_type(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, per_type_fn type_cb);
extern guint32 dissect_per_size_constrained_type(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index, per_type_fn type_cb, const gchar *name, int min_len, int max_len, gboolean has_extension);
-extern gboolean get_size_constraint_from_stack(asn1_ctx_t *actx, const gchar *name, int *pmin_len, int *pmax_len, gboolean *phas_extension);
+extern gboolean get_size_constraint_from_stack(asn1_ctx_t *actx, const gchar *name, int *pmin_len, int *pmax_len, bool *phas_extension);
-extern guint32 dissect_per_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index, guint32 *length, gboolean *is_fragmented);
+extern guint32 dissect_per_length_determinant(tvbuff_t *tvb, guint32 offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index, guint32 *length, bool *is_fragmented);
WS_DLL_PUBLIC int call_per_oid_callback(const char *oid, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, asn1_ctx_t *actx, int hf_index);
WS_DLL_PUBLIC void register_per_oid_dissector(const char *oid, dissector_t dissector, int proto, const char *name);
diff --git a/epan/dissectors/packet-pfcp.c b/epan/dissectors/packet-pfcp.c
index 1179589128..d995dda481 100644
--- a/epan/dissectors/packet-pfcp.c
+++ b/epan/dissectors/packet-pfcp.c
@@ -5,7 +5,7 @@
* Copyright 2017-2018, Anders Broman <anders.broman@ericsson.com>
*
* Updates and corrections:
- * Copyright 2017-2023, Joakim Karlsson <oakimk@gmail.com>
+ * Copyright 2017-2024, Joakim Karlsson <oakimk@gmail.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -13,10 +13,12 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 29.244 V18.4.0 (2024-01-04)
+ * Ref 3GPP TS 29.244 V18.5.0 (2024-03-26)
*/
#include "config.h"
+#include <math.h>
+
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
@@ -284,6 +286,9 @@ static int hf_pfcp_report_type_b0_dldr;
static int hf_pfcp_offending_ie;
static int hf_pfcp_offending_ie_value;
+static int hf_pfcp_up_function_features_o13_b5_upsbies;
+static int hf_pfcp_up_function_features_o13_b4_mtsdt;
+static int hf_pfcp_up_function_features_o13_b3_edbnc;
static int hf_pfcp_up_function_features_o13_b2_qmdrm;
static int hf_pfcp_up_function_features_o13_b1_cntl;
static int hf_pfcp_up_function_features_o13_b0_pdusm;
@@ -432,7 +437,9 @@ static int hf_pfcp_dl_data_notification_delay;
static int hf_pfcp_packet_count;
static int hf_pfcp_dl_data_service_inf_b0_ppi;
static int hf_pfcp_dl_data_service_inf_b1_qfii;
-static int hf_pfcp_ppi;
+static int hf_pfcp_dl_data_service_inf_b2_dlpsi;
+static int hf_pfcp_paging_policy_indication;
+static int hf_pfcp_dldatapacketsize;
static int hf_pfcp_pfcpsmreq_flags_b0_drobu;
static int hf_pfcp_pfcpsmreq_flags_b1_sndem;
@@ -1013,6 +1020,25 @@ static int hf_pfcp_rtp_payload_type;
static int hf_pfcp_rtp_payload_format;
+static int hf_pfcp_extended_dl_buffering_notification_policy_flags_b0_edbn;
+
+static int hf_pfcp_mt_sdt_control_information_flags_b0_rdsi;
+
+static int hf_pfcp_reporting_thresholds_flags_b3_uldr;
+static int hf_pfcp_reporting_thresholds_flags_b2_dldr;
+static int hf_pfcp_reporting_thresholds_flags_b1_ulci;
+static int hf_pfcp_reporting_thresholds_flags_b0_dlci;
+static int hf_pfcp_reporting_thresholds_dl_congestion_information_threshold;
+static int hf_pfcp_reporting_thresholds_ul_congestion_information_threshold;
+static int hf_pfcp_reporting_thresholds_dl_data_rate_threshold;
+static int hf_pfcp_reporting_thresholds_ul_data_rate_threshold;
+
+static int hf_pfcp_rtp_header_extension_additional_information_flags_b1_pssai;
+static int hf_pfcp_rtp_header_extension_additional_information_flags_b0_fi;
+static int hf_pfcp_rtp_header_extension_additional_information_pssa;
+static int hf_pfcp_rtp_header_extension_additional_information_format;
+
+
/* Enterprise IEs */
/* BBF */
static int hf_pfcp_bbf_up_function_features_o7_b7_nat_up;
@@ -1270,7 +1296,9 @@ static expert_field ei_pfcp_ie_encoding_error;
static int pfcp_tap = -1;
-static gboolean g_pfcp_session = FALSE;
+static bool g_pfcp_session;
+static unsigned pref_pair_matching_max_interval_ms; /* Default: disable */
+
static guint32 pfcp_session_count;
typedef struct pfcp_rule_ids {
@@ -1788,7 +1816,7 @@ static const value_string pfcp_ie_type[] = {
{ 291, "Group ID"}, /* Fixed / Clause 8.2.198 */
{ 292, "CP IP Address"}, /* Extendable / Clause 8.2.199 */
{ 293, "IP Address and Port Number Replacement"}, /* Variable Length / Clause 8.2.200 */
- { 294, "DNS Query Filter"}, /* Variable Length / Clause 8.2.201 */
+ { 294, "DNS Query/Response Filter"}, /* Variable Length / Clause 8.2.201 */
{ 295, "Direct Reporting Information"}, /* Extendable / Table 7.5.2.9-4 */
{ 296, "Event Notification URI"}, /* Variable Length / Clause 8.2.202 */
{ 297, "Notification Correlation ID"}, /* Variable Length / Clause 8.2.203 */
@@ -1840,7 +1868,11 @@ static const value_string pfcp_ie_type[] = {
{ 343, "RTP Header Extension ID"}, /* Fixed Length / Clause 8.2.235 */
{ 344, "RTP Payload Type"}, /* Fixed Length / Clause 8.2.236 */
{ 345, "RTP Payload Format"}, /* Fixed Length / Clause 8.2.237 */
- //346 to 32767 Spare. For future use.
+ { 346, "Extended DL Buffering Notification Policy"}, /* Extendable / Clause 8.2.238 */
+ { 347, "MT-SDT Control Information"}, /* Extendable / Clause 8.2.239 */
+ { 348, "Reporting Thresholds"}, /* Extendable / Clause 8.2.240 */
+ { 349, "RTP Header Extension Additional Information"}, /* Extendable / Clause 8.2.241 */
+ //350 to 32767 Spare. For future use.
//32768 to 65535 Vendor-specific IEs.
{0, NULL}
};
@@ -1984,28 +2016,14 @@ pfcp_is_cause_accepted(guint8 cause) {
return cause == 1;
}
-/* Data structure attached to a conversation
-* of a session
-*/
-typedef struct pfcp_session_conv_info_t {
- struct pfcp_session_conv_info_t *next;
- GHashTable *unmatched;
- GHashTable *matched;
-} pfcp_session_conv_info_t;
-
-static pfcp_session_conv_info_t *pfcp_session_info_items = NULL;
-
/* Data structure attached to a conversation,
* to keep track of request/response-pairs
*/
typedef struct pfcp_conv_info_t {
- struct pfcp_conv_info_t *next;
wmem_map_t *unmatched;
wmem_map_t *matched;
} pfcp_conv_info_t;
-static pfcp_conv_info_t *pfcp_info_items = NULL;
-
/* structure used to track responses to requests using sequence number */
typedef struct pfcp_msg_hash_entry {
gboolean is_request; /* TRUE/FALSE */
@@ -2031,14 +2049,24 @@ pfcp_sn_equal_matched(gconstpointer k1, gconstpointer k2)
const pfcp_msg_hash_t *key2 = (const pfcp_msg_hash_t *)k2;
if (key1->req_frame && key2->req_frame && (key1->req_frame != key2->req_frame)) {
- return 0;
+ return FALSE;
}
if (key1->rep_frame && key2->rep_frame && (key1->rep_frame != key2->rep_frame)) {
- return 0;
+ return FALSE;
}
- return key1->seq_nr == key2->seq_nr;
+ if (key1->seq_nr == key2->seq_nr) {
+ if (pref_pair_matching_max_interval_ms) {
+ nstime_t delta;
+ nstime_delta(&delta, &key1->req_time, &key2->req_time);
+ double diff = fabs(nstime_to_msec(&delta));
+ return diff < pref_pair_matching_max_interval_ms;
+ }
+
+ return TRUE;
+ }
+ return FALSE;
}
static gboolean
@@ -2047,10 +2075,20 @@ pfcp_sn_equal_unmatched(gconstpointer k1, gconstpointer k2)
const pfcp_msg_hash_t *key1 = (const pfcp_msg_hash_t *)k1;
const pfcp_msg_hash_t *key2 = (const pfcp_msg_hash_t *)k2;
- return key1->seq_nr == key2->seq_nr;
+ if (key1->seq_nr == key2->seq_nr) {
+ if (pref_pair_matching_max_interval_ms) {
+ nstime_t delta;
+ nstime_delta(&delta, &key1->req_time, &key2->req_time);
+ double diff = fabs(nstime_to_msec(&delta));
+ return diff < pref_pair_matching_max_interval_ms;
+ }
+
+ return TRUE;
+ }
+ return FALSE;
}
-static GHashTable *pfcp_stat_msg_idx_hash = NULL;
+static GHashTable *pfcp_stat_msg_idx_hash;
static void
pfcp_stat_init(struct register_srt* srt _U_, GArray*srt_array)
@@ -3311,13 +3349,16 @@ dissect_pfcp_up_function_features(tvbuff_t *tvb, packet_info *pinfo, proto_tree
}
static int * const pfcp_up_function_features_o13_flags[] = {
- &hf_pfcp_spare_b7_b3,
+ &hf_pfcp_spare_b7_b6,
+ &hf_pfcp_up_function_features_o13_b5_upsbies,
+ &hf_pfcp_up_function_features_o13_b4_mtsdt,
+ &hf_pfcp_up_function_features_o13_b3_edbnc,
&hf_pfcp_up_function_features_o13_b2_qmdrm,
&hf_pfcp_up_function_features_o13_b1_cntl,
&hf_pfcp_up_function_features_o13_b0_pdusm,
NULL
};
- /* Octet 13 Spare QMDRM CN-TL PDUSM */
+ /* Octet 13 Spare UPSBIES MT-SDT EDBNC QMDRM CN-TL PDUSM */
proto_tree_add_bitmask_list(tree, tvb, offset, 1, pfcp_up_function_features_o13_flags, ENC_BIG_ENDIAN);
offset += 1;
@@ -3385,12 +3426,13 @@ dissect_pfcp_dl_data_service_inf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
guint64 flags;
static int * const pfcp_dl_data_service_inf_flags[] = {
- &hf_pfcp_spare_b7_b2,
+ &hf_pfcp_spare_b7_b3,
+ &hf_pfcp_dl_data_service_inf_b2_dlpsi,
&hf_pfcp_dl_data_service_inf_b1_qfii,
&hf_pfcp_dl_data_service_inf_b0_ppi,
NULL
};
- /* Octet 5 Spare QFII PPI */
+ /* Octet 5 Spare DLPSI QFII PPI */
proto_tree_add_bitmask_list_ret_uint64(tree, tvb, offset, 1, pfcp_dl_data_service_inf_flags, ENC_BIG_ENDIAN, &flags);
offset += 1;
@@ -3401,7 +3443,7 @@ dissect_pfcp_dl_data_service_inf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
* from the PGW (see IETF RFC 2474
*/
proto_tree_add_item(tree, hf_pfcp_spare_b7_b6, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_pfcp_ppi, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_pfcp_paging_policy_indication, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
}
@@ -3415,6 +3457,15 @@ dissect_pfcp_dl_data_service_inf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
offset++;
}
+ /* The DLPSI flag in octet 5 indicates whether the DL Data Packet Size value in octet 'q' to 'q+1' shall be present */
+ if ((flags & 0x2) == 2) {
+ /*
+ * DL Data Packet Size
+ */
+ proto_tree_add_item(tree, hf_pfcp_dldatapacketsize, tvb, offset, 2, ENC_NA);
+ offset += 2;
+ }
+
if (offset < length) {
proto_tree_add_expert(tree, pinfo, &ei_pfcp_ie_data_not_decoded, tvb, offset, -1);
}
@@ -8423,7 +8474,23 @@ static const value_string pfcp_rattype_vals[] = {
{ 8, "EUTRAN-NB-IoT" },
{ 9, "LTE-M" },
{ 10, "NR" },
- { 11, "NR-REDCAP" },
+ { 11, "WB-E-UTRAN (LEO)" },
+ { 12, "WB-E-UTRAN (MEO)" },
+ { 13, "WB-E-UTRAN (GEO)" },
+ { 14, "WB-E-UTRAN (OTHERSAT)" },
+ { 15, "EUTRAN-NB-IoT (LEO)" },
+ { 16, "EUTRAN-NB-IoT (MEO)" },
+ { 17, "EUTRAN-NB-IoT (GEO)" },
+ { 18, "EUTRAN-NB-IoT (OTHERSAT)" },
+ { 19, "LTE-M (LEO)" },
+ { 20, "LTE-M (MEO)" },
+ { 21, "LTE-M (GEO)" },
+ { 22, "LTE-M (OTHERSAT)" },
+ { 23, "NR (LEO)" },
+ { 24, "NR (MEO)" },
+ { 25, "NR (GEO)" },
+ { 26, "NR (OTHERSAT)" },
+ { 27, "NR-REDCAP" },
{ 0, NULL }
};
@@ -8799,10 +8866,10 @@ dissect_pfcp_ip_address_and_port_number_replacement(tvbuff_t *tvb, packet_info *
}
/*
- * 8.2.201 DNS Query Filter
+ * 8.2.201 DNS Query/Response Filter
*/
static void
-dissect_pfcp_dns_query_filter(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, pfcp_session_args_t *args _U_)
+dissect_pfcp_dns_query_response_filter(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, pfcp_session_args_t *args _U_)
{
int offset = 0;
guint32 dns_query_length;
@@ -9681,6 +9748,141 @@ dissect_pfcp_rtp_payload_format(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
proto_tree_add_item(tree, hf_pfcp_rtp_payload_format, tvb, 0, length, ENC_NA);
}
+/*
+ * 8.2.238 Extended DL Buffering Notification Policy
+ */
+static void
+dissect_pfcp_extended_dl_buffering_notification_policy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, pfcp_session_args_t *args _U_)
+{
+ int offset = 0;
+
+ static int * const pfcp_extended_dl_buffering_notification_policy_flags[] = {
+ &hf_pfcp_spare_b7_b1,
+ &hf_pfcp_extended_dl_buffering_notification_policy_flags_b0_edbn,
+ NULL
+ };
+ /* Octet 5 Spare EDBN */
+ proto_tree_add_bitmask_list(tree, tvb, offset, 1, pfcp_extended_dl_buffering_notification_policy_flags, ENC_BIG_ENDIAN);
+ offset += 1;
+
+ if (offset < length) {
+ proto_tree_add_expert(tree, pinfo, &ei_pfcp_ie_data_not_decoded, tvb, offset, -1);
+ }
+}
+
+/*
+ * 8.2.239 MT-SDT Control Information
+ */
+static void
+dissect_pfcp_mt_sdt_control_information(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, pfcp_session_args_t *args _U_)
+{
+ int offset = 0;
+
+ static int * const pfcp_mt_sdt_control_information_flags[] = {
+ &hf_pfcp_spare_b7_b1,
+ &hf_pfcp_mt_sdt_control_information_flags_b0_rdsi,
+ NULL
+ };
+ /* Octet 5 Spare RDSI */
+ proto_tree_add_bitmask_list(tree, tvb, offset, 1, pfcp_mt_sdt_control_information_flags, ENC_BIG_ENDIAN);
+ offset += 1;
+
+ if (offset < length) {
+ proto_tree_add_expert(tree, pinfo, &ei_pfcp_ie_data_not_decoded, tvb, offset, -1);
+ }
+}
+
+/*
+ * 8.2.340 Reporting Thresholds
+ */
+static void
+dissect_pfcp_reporting_thresholds(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, pfcp_session_args_t *args _U_)
+{
+ int offset = 0;
+ guint64 reporting_thresholds_flags;
+
+ static int * const pfcp_reporting_thresholds_flags[] = {
+ &hf_pfcp_spare_b7_b4,
+ &hf_pfcp_reporting_thresholds_flags_b3_uldr,
+ &hf_pfcp_reporting_thresholds_flags_b2_dldr,
+ &hf_pfcp_reporting_thresholds_flags_b1_ulci,
+ &hf_pfcp_reporting_thresholds_flags_b0_dlci,
+ NULL
+ };
+ /* Octet 5 Spare RP Ul DL */
+ proto_tree_add_bitmask_list_ret_uint64(tree, tvb, offset, 1, pfcp_reporting_thresholds_flags, ENC_BIG_ENDIAN, &reporting_thresholds_flags);
+ offset += 1;
+
+ /* m to (m+1) DL Congestion information threshold */
+ if ((reporting_thresholds_flags & 0x1)) {
+ proto_tree_add_item(tree, hf_pfcp_reporting_thresholds_dl_congestion_information_threshold, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ }
+
+ /* p to (p+1) UL Congestion information threshold */
+ if ((reporting_thresholds_flags & 0x2)) {
+ proto_tree_add_item(tree, hf_pfcp_reporting_thresholds_ul_congestion_information_threshold, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ }
+
+ /* q to (q+4) DL Data Rate threshold */
+ if ((reporting_thresholds_flags & 0x4)) {
+ proto_tree_add_item(tree, hf_pfcp_reporting_thresholds_dl_data_rate_threshold, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ }
+
+ /* r to (r+4) UL Data Rate threshold */
+ if ((reporting_thresholds_flags & 0x4)) {
+ proto_tree_add_item(tree, hf_pfcp_reporting_thresholds_ul_data_rate_threshold, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+ }
+
+ if (offset < length) {
+ proto_tree_add_expert(tree, pinfo, &ei_pfcp_ie_data_not_decoded, tvb, offset, length);
+ }
+}
+
+/*
+ * 8.2.241 RTP Header Extension Additional Information
+ */
+static const value_string pfcp_rtp_header_extension_additional_information_type_vals[] = {
+ { 1, "1-byte (short) format in used" },
+ { 2, "2-byte (long) format in used" },
+ { 0, NULL }
+};
+
+static void
+dissect_pfcp_rtp_header_extension_additional_information(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, pfcp_session_args_t *args _U_)
+{
+ int offset = 0;
+ guint64 rtp_header_extension_additional_information_flags;
+
+ static int * const pfcp_rtp_header_extension_additional_information_flags[] = {
+ &hf_pfcp_spare_b7_b2,
+ &hf_pfcp_rtp_header_extension_additional_information_flags_b1_pssai,
+ &hf_pfcp_rtp_header_extension_additional_information_flags_b0_fi,
+ NULL
+ };
+ /* Octet 5 Spare PSSAI FI */
+ proto_tree_add_bitmask_list_ret_uint64(tree, tvb, offset, 1, pfcp_rtp_header_extension_additional_information_flags, ENC_BIG_ENDIAN, &rtp_header_extension_additional_information_flags);
+ offset += 1;
+
+ /* Octet 6 */
+ /* PSSA */
+ if ((rtp_header_extension_additional_information_flags & 0x2)) {
+ proto_tree_add_item(tree, hf_pfcp_rtp_header_extension_additional_information_pssa, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
+ /* Format */
+ if ((rtp_header_extension_additional_information_flags & 0x1)) {
+ proto_tree_add_item(tree, hf_pfcp_rtp_header_extension_additional_information_format, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
+ offset += 1;
+
+ if (offset < length) {
+ proto_tree_add_expert(tree, pinfo, &ei_pfcp_ie_data_not_decoded, tvb, offset, -1);
+ }
+}
+
static pfcp_msg_hash_t *
pfcp_match_response(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, gint seq_nr, guint msgtype, pfcp_conv_info_t *pfcp_info, guint8 last_cause)
{
@@ -10364,7 +10566,7 @@ static const pfcp_ie_t pfcp_ies[] = {
/* 291 */ { dissect_pfcp_group_id }, /* Group ID Fixed / Clause 8.2.198 */
/* 292 */ { dissect_pfcp_cp_ip_address }, /* CP IP Address Variable Length / Clause 8.2.199 */
/* 293 */ { dissect_pfcp_ip_address_and_port_number_replacement }, /* IP Address and Port Number Replacement Variable Length / Clause 8.2.200 */
-/* 294 */ { dissect_pfcp_dns_query_filter }, /* DNS Query Filter Variable Length / Clause 8.2.201 */
+/* 294 */ { dissect_pfcp_dns_query_response_filter }, /* DNS Query/Response Filter Variable Length / Clause 8.2.201 */
/* 295 */ { dissect_pfcp_grouped_ie }, /* Direct Reporting Information Extendable / Table 7.5.2.9-4 */
/* 296 */ { dissect_pfcp_event_notification_uri }, /* Event Notification URI Variable Length / Clause 8.2.202 */
/* 297 */ { dissect_pfcp_notification_correlation_id }, /* Notification Correlation ID Fixed / Clause 8.2.203 */
@@ -10416,7 +10618,11 @@ static const pfcp_ie_t pfcp_ies[] = {
/* 343 */ { dissect_pfcp_rtp_header_extension_id }, /* RTP Header Extension ID Fixed Length / Clause 8.2.235 */
/* 344 */ { dissect_pfcp_rtp_payload_type }, /* RTP Payload Type Fixed Length / Clause 8.2.236 */
/* 345 */ { dissect_pfcp_rtp_payload_format }, /* RTP Payload Format Fixed Length / Clause 8.2.237 */
-//346 to 32767 Spare. For future use.
+/* 346 */ { dissect_pfcp_extended_dl_buffering_notification_policy }, /* Extended DL Buffering Notification Policy Extendable / Clause 8.2.238 */
+/* 347 */ { dissect_pfcp_mt_sdt_control_information }, /* MT-SDT Control Information Extendable / Clause 8.2.239 */
+/* 348 */ { dissect_pfcp_reporting_thresholds }, /* Reporting Thresholds Extendable / Clause 8.2.240 */
+/* 349 */ { dissect_pfcp_rtp_header_extension_additional_information }, /* RTP Header Extension Additional Information Extendable / Clause 8.2.241 */
+//350 to 32767 Spare. For future use.
//32768 to 65535 Vendor-specific IEs.
{ NULL }, /* End of List */
};
@@ -12204,24 +12410,7 @@ pfcp_init(void)
static void
pfcp_cleanup(void)
{
- pfcp_session_conv_info_t *pfcp_info;
-
- /* Free up state attached to the pfcp_info structures */
- for (pfcp_info = pfcp_session_info_items; pfcp_info != NULL; ) {
- pfcp_session_conv_info_t *next;
-
- g_hash_table_destroy(pfcp_info->matched);
- pfcp_info->matched=NULL;
- g_hash_table_destroy(pfcp_info->unmatched);
- pfcp_info->unmatched=NULL;
-
- next = pfcp_info->next;
- pfcp_info = next;
- }
-
/* Free up state attached to the pfcp session structures */
- pfcp_info_items = NULL;
-
if (pfcp_session_table != NULL) {
g_hash_table_destroy(pfcp_session_table);
}
@@ -13782,6 +13971,21 @@ proto_register_pfcp(void)
FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x04,
"UPF support of QoS monitoring of Data Rate Measurement", HFILL }
},
+ { &hf_pfcp_up_function_features_o13_b3_edbnc,
+ { "EDBNC", "pfcp.up_function_features.edbnc",
+ FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x08,
+ "UP function supports Extended DL Buffering Notification Control", HFILL }
+ },
+ { &hf_pfcp_up_function_features_o13_b4_mtsdt,
+ { "MT-SDT", "pfcp.up_function_features.mtsdt",
+ FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x10,
+ "UPF support of reporting the size of DL Data Packets per QoS flow", HFILL }
+ },
+ { &hf_pfcp_up_function_features_o13_b5_upsbies,
+ { "UPSBIES", "pfcp.up_function_features.upsbies",
+ FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x20,
+ "UPF support of event subscription via Service Based Interface", HFILL }
+ },
{ &hf_pfcp_sequence_number,
{ "Sequence Number", "pfcp.sequence_number",
@@ -14039,11 +14243,21 @@ proto_register_pfcp(void)
FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x02,
NULL, HFILL }
},
- { &hf_pfcp_ppi,
- { "Paging Policy Indication", "pfcp.ppi",
+ { &hf_pfcp_dl_data_service_inf_b2_dlpsi,
+ { "DLPSI(DL Packet Size Indication)", "pfcp.dl_data_service_inf.dlpsi",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x04,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_paging_policy_indication,
+ { "Paging Policy Indication", "pfcp.dl_data_service_inf.paging_policy_indication",
FT_UINT16, BASE_DEC, NULL, 0x7f,
NULL, HFILL }
},
+ { &hf_pfcp_dldatapacketsize,
+ { "DL Data Packet Size", "pfcp.dl_data_service_inf.dlpacketsize",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_pfcp_pfcpsmreq_flags_b0_drobu,
{ "DROBU (Drop Buffered Packets)", "pfcp.smreq_flags.drobu",
FT_BOOLEAN, 8, NULL, 0x01,
@@ -15682,7 +15896,7 @@ proto_register_pfcp(void)
{ &hf_pfcp_rattype,
{ "RAT Type", "pfcp.rattype",
- FT_UINT8, BASE_DEC, VALS(pfcp_rattype_vals), 0xF,
+ FT_UINT8, BASE_DEC, VALS(pfcp_rattype_vals), 0x0,
NULL, HFILL }
},
@@ -16302,6 +16516,12 @@ proto_register_pfcp(void)
NULL, HFILL }
},
+ { &hf_pfcp_measurement_indication_flags_b0_dqfi,
+ { "DQFI", "pfcp.measurement_indication.dqfi",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }
+ },
+
{ &hf_pfcp_hplmn_s_nssai_sst,
{ "SST (Slice/Service Type)", "pfcp.hplmn_s_nssai.sst",
FT_BYTES, BASE_NONE, NULL, 0x0,
@@ -16343,6 +16563,80 @@ proto_register_pfcp(void)
NULL, HFILL }
},
+ { &hf_pfcp_extended_dl_buffering_notification_policy_flags_b0_edbn,
+ { "EDBN", "pfcp.extended_dl_buffering_notification_policy.edbn",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }
+ },
+
+ { &hf_pfcp_mt_sdt_control_information_flags_b0_rdsi,
+ { "RDSI", "pfcp.mt_sdt_control_information.rdsi",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }
+ },
+
+ { &hf_pfcp_reporting_thresholds_flags_b0_dlci,
+ { "DLCI", "pfcp.reporting_thresholds.flags.dlci",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x01,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_reporting_thresholds_flags_b1_ulci,
+ { "ULCI", "pfcp.reporting_thresholds.flags.ulci",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x02,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_reporting_thresholds_flags_b2_dldr,
+ { "DLRP", "pfcp.reporting_thresholds.flags.dlrp",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x04,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_reporting_thresholds_flags_b3_uldr,
+ { "ULRP", "pfcp.reporting_thresholds.flags.ulrp",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x08,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_reporting_thresholds_dl_congestion_information_threshold,
+ { "DL Congestion Information Threshold", "pfcp.reporting_thresholds.dl_congestion",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_reporting_thresholds_ul_congestion_information_threshold,
+ { "UL Congestion Information Threshold", "pfcp.reporting_thresholds.ul_congestion",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_reporting_thresholds_dl_data_rate_threshold,
+ { "DL Data Rate threshold (kilobits)", "pfcp.reporting_thresholds.dl_data_rate",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_reporting_thresholds_ul_data_rate_threshold,
+ { "UL Data Rate threshold (kilobits)", "pfcp.reporting_thresholds.ul_data_rate",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+
+ { &hf_pfcp_rtp_header_extension_additional_information_flags_b0_fi,
+ { "FI (Format Indication)", "pfcp.rtp_header_extension_additional_information.flags.fi",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x01,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_rtp_header_extension_additional_information_flags_b1_pssai,
+ { "PSSAI (PDU Set Size Activation Indication)", "pfcp.rtp_header_extension_additional_information.flags.pssai",
+ FT_BOOLEAN, 8, TFS(&tfs_present_not_present), 0x02,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_rtp_header_extension_additional_information_pssa,
+ { "PSSA", "pfcp.rtp_header_extension_additional_information.pssa",
+ FT_UINT8, BASE_DEC, NULL, 0x4,
+ NULL, HFILL }
+ },
+ { &hf_pfcp_rtp_header_extension_additional_information_format,
+ { "Format", "pfcp.rtp_header_extension_additional_information.format",
+ FT_UINT8, BASE_DEC, VALS(pfcp_rtp_header_extension_additional_information_type_vals), 0x3,
+ NULL, HFILL }
+ },
+
/* Enterprise IEs */
/* BBF */
{ &hf_pfcp_bbf_up_function_features_o7_b0_pppoe,
@@ -17359,6 +17653,9 @@ proto_register_pfcp(void)
pfcp_register_generic_ie_dissector(VENDOR_NOKIA, "pfcp_nokia_ies", "pfcp.ie.nokia", "Nokia IE Type", pfcp_nokia_ies, G_N_ELEMENTS(pfcp_nokia_ies));
prefs_register_bool_preference(module_pfcp, "track_pfcp_session", "Track PFCP session", "Track PFCP session", &g_pfcp_session);
+
+ prefs_register_uint_preference(module_pfcp, "pair_max_interval", "Max interval allowed in pair matching", "Request/reply pair matches only if their timestamps are closer than that value, in ms (default 0, i.e. don't use timestamps)", 10, &pref_pair_matching_max_interval_ms);
+
register_init_routine(pfcp_init);
register_cleanup_routine(pfcp_cleanup);
diff --git a/epan/dissectors/packet-pgm.c b/epan/dissectors/packet-pgm.c
index 5673caf15e..b06cd2dd99 100644
--- a/epan/dissectors/packet-pgm.c
+++ b/epan/dissectors/packet-pgm.c
@@ -61,7 +61,7 @@ static dissector_handle_t pgm_handle;
/*
* Flag to control whether to check the PGM checksum.
*/
-static gboolean pgm_check_checksum = TRUE;
+static bool pgm_check_checksum = true;
/* constants for hdr types */
#define PGM_SPM_PCKT 0x00
@@ -276,7 +276,7 @@ optsstr(wmem_allocator_t *pool, guint8 opts)
const int MAX_STR_LEN = 256;
if (opts == 0)
- return("");
+ return "";
msg=(char *)wmem_alloc(pool, MAX_STR_LEN);
if (opts & PGM_OPT){
@@ -298,7 +298,7 @@ optsstr(wmem_allocator_t *pool, guint8 opts)
if (!idx) {
snprintf(&msg[idx], MAX_STR_LEN-idx, "0x%x", opts);
}
- return(msg);
+ return msg;
}
static const char *
paritystr(wmem_allocator_t *pool, guint8 parity)
@@ -308,7 +308,7 @@ paritystr(wmem_allocator_t *pool, guint8 parity)
const int MAX_STR_LEN = 256;
if (parity == 0)
- return("");
+ return "";
msg=(char *)wmem_alloc(pool, MAX_STR_LEN);
if (parity & PGM_OPT_PARITY_PRM_PRO){
@@ -322,7 +322,7 @@ paritystr(wmem_allocator_t *pool, guint8 parity)
if (!idx) {
snprintf(&msg[idx], MAX_STR_LEN-idx, "0x%x", parity);
}
- return(msg);
+ return msg;
}
static const value_string opt_vals[] = {
diff --git a/epan/dissectors/packet-pim.c b/epan/dissectors/packet-pim.c
index 6ee8a27db5..64f54c0cd2 100644
--- a/epan/dissectors/packet-pim.c
+++ b/epan/dissectors/packet-pim.c
@@ -26,7 +26,7 @@ void proto_reg_handoff_pim(void);
#define PIM_TYPE(x) ((x) & 0x0f)
#define PIM_VER(x) (((x) & 0xf0) >> 4)
#define PIM_BIDIR_SUBTYPE(x) ((x) & 0x0f)
-#define PIM_BIDIR_RSVD(x) (((x) & 0xf0) >> 4)
+#define PIM_SUBTYPE(x) (((x) & 0xf0) >> 4)
/* PIM message type */
@@ -43,6 +43,12 @@ void proto_reg_handoff_pim(void);
#define PIM_TYPE_DF_ELECT 10 /* DF Election [RFC5015] */
#define PIM_TYPE_ECMP_REDIR 11 /* ECMP Redirect [RFC6754] */
#define PIM_TYPE_PFM 12 /* PIM PFM [RFC8364] */
+#define PIM_TYPE_PACKED_REGISTER 13 /* PIM PFM [RFC9465] */
+
+/* PIM Message Subtypes */
+
+#define PIM_TYPE_PACKED_NULL_REGISTER 0 /* 13.0 */
+#define PIM_TYPE_PACKED_REGISTER_STOP 1 /* 13.1 */
/* PIM Message hello options */
@@ -126,6 +132,16 @@ static const value_string pimtypevals[] = {
{ PIM_TYPE_DF_ELECT, "DF election"},
{ PIM_TYPE_ECMP_REDIR, "ECMP redirect" },
{ PIM_TYPE_PFM, "PFM source discovery"},
+ { PIM_TYPE_PACKED_REGISTER, "Packed Register"},
+ { 0, NULL }
+};
+
+/*
+ * List of subtypes for PIM message Type 13.
+ */
+static const value_string pimtype13subtypevals[] = {
+ { PIM_TYPE_PACKED_NULL_REGISTER, "Packed Null-Register" },
+ { PIM_TYPE_PACKED_REGISTER_STOP, "Packed Register-Stop" },
{ 0, NULL }
};
@@ -208,6 +224,9 @@ static int hf_pim_df_elect_rsvd;
static int hf_pim_cksum;
static int hf_pim_cksum_status;
static int hf_pim_res_bytes;
+static int hf_pim_reg_stop_p_bit;
+static int hf_pim_type_13_subtype;
+static int hf_pim_type_13_flagbits;
/* PIM Hello options (RFC 4601, section 4.9.2 and RFC 3973, section 4.7.5) */
static int hf_pim_option;
static int hf_pim_optiontype;
@@ -328,7 +347,7 @@ static dissector_handle_t pimv1_handle;
static dissector_handle_t ip_handle;
static dissector_handle_t ipv6_handle;
-static gboolean use_main_tree = TRUE;
+static bool use_main_tree = true;
/*
* The Story About Ping^WPIM:
@@ -1069,6 +1088,7 @@ static int
dissect_pim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
int offset = 0;
guint8 pim_typever;
+ guint8 pim_subtype;
guint8 pim_bidir_subtype = 0;
guint length, pim_length;
vec_t cksum_vec[4];
@@ -1083,10 +1103,20 @@ dissect_pim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
col_clear(pinfo->cinfo, COL_INFO);
pim_typever = tvb_get_guint8(tvb, 0);
+ pim_subtype = PIM_SUBTYPE(tvb_get_guint8(tvb, 1));
switch (PIM_VER(pim_typever)) {
case 2:
- typestr = val_to_str(PIM_TYPE(pim_typever), pimtypevals, "Unknown (%u)");
+ if (PIM_TYPE(pim_typever) < 12) {
+ typestr = val_to_str(PIM_TYPE(pim_typever), pimtypevals, "Unknown (%u)");
+ } else if ((PIM_TYPE(pim_typever) == PIM_TYPE_PACKED_REGISTER)) {
+ /*
+ * Need only the first 4 bits for subtype as per the new PIM Common header.
+ */
+ typestr = val_to_str(pim_subtype, pimtype13subtypevals, "Unknown (%u)");
+ } else {
+ typestr = "Unknown";
+ }
break;
case 1: /* PIMv1 - we should never see this */
default:
@@ -1106,12 +1136,23 @@ dissect_pim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
if (PIM_TYPE(pim_typever) == PIM_TYPE_PFM) {
proto_tree_add_item(pim_tree, hf_pfm_no_forward_bit, tvb, offset+1, 1, ENC_BIG_ENDIAN);
}
+ if (PIM_TYPE(pim_typever) == PIM_TYPE_REGISTER_STOP) {
+ /*
+ * [version-4bits][type-4bits][0x01]
+ */
+ proto_tree_add_item(pim_tree, hf_pim_reg_stop_p_bit, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+ }
if (PIM_TYPE(pim_typever) == PIM_TYPE_DF_ELECT) {
proto_tree_add_item(pim_tree, hf_pim_df_elect_subtype, tvb, offset + 1, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(pim_tree, hf_pim_df_elect_rsvd, tvb, offset + 1, 1, ENC_BIG_ENDIAN);
pim_bidir_subtype = tvb_get_guint8(tvb,offset);
- }
- else {
+ } else if ((PIM_TYPE(pim_typever) == PIM_TYPE_PACKED_REGISTER)) {
+ /*
+ * [version-4bits][type-4bits][0x[SubType-4bits][Flagbits-4bits]
+ */
+ proto_tree_add_item(pim_tree, hf_pim_type_13_subtype, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(pim_tree, hf_pim_type_13_flagbits, tvb, offset+1, 1, ENC_BIG_ENDIAN);
+ } else {
proto_tree_add_item(pim_tree, hf_pim_res_bytes, tvb, offset + 1, 1, ENC_NA);
}
@@ -1696,6 +1737,46 @@ dissect_pim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
breakbreak12:
break;
}
+
+ case PIM_TYPE_PACKED_REGISTER: /* Packed Register */
+ {
+ int ngroups;
+ int advance, i;
+ proto_tree *grouptree = NULL;
+ proto_item *tigroup;
+
+ switch (pim_subtype) {
+ case PIM_TYPE_PACKED_NULL_REGISTER:
+ case PIM_TYPE_PACKED_REGISTER_STOP:
+ /*
+ * Total length minus PIM header length
+ * divided by 1 encoded record size (14 bytes).
+ */
+ ngroups = (length-4)/14;
+ for (i = 0; i < ngroups; i++) {
+ /*
+ * RFC9465 states that an (S,G) entry is called a "Record".
+ */
+ tigroup=proto_tree_add_string_format(pimopt_tree, hf_pim_group, tvb, offset, -1, "", "Record %d", i+1);
+ grouptree = proto_item_add_subtree(tigroup, ett_pim);
+ if (!dissect_pim_addr(pinfo, grouptree, tvb, offset, pimv2_group,
+ wmem_strdup_printf(pinfo->pool, "Group"), NULL,
+ hf_pim_group_ip4, hf_pim_group_ip6, &advance))
+ goto breakpackedreg;
+ offset += advance;
+ if (!dissect_pim_addr(pinfo, grouptree, tvb, offset, pimv2_unicast, NULL, NULL,
+ hf_pim_source_ip4, hf_pim_source_ip6, &advance))
+ goto breakpackedreg;
+ offset += advance;
+ }
+ break;
+ default:
+ break;
+ }
+ breakpackedreg:
+ break;
+ }
+
default:
break;
}
@@ -1753,6 +1834,17 @@ proto_register_pim(void)
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_pim_type_13_subtype,
+ { "Subtype", "pim.subtype_type13",
+ FT_UINT8, BASE_DEC, VALS(pimtype13subtypevals), 0xf0,
+ NULL, HFILL }
+ },
+ { &hf_pim_type_13_flagbits,
+ { "Flag Bits", "pim.flag_bits_type13",
+ FT_UINT8, BASE_DEC, NULL, 0x0f,
+ NULL, HFILL }
+ },
+
{ &hf_pim_option,
{ "PIM Options", "pim.option",
FT_NONE, BASE_NONE, NULL, 0x0,
@@ -2277,6 +2369,11 @@ proto_register_pim(void)
{ "Pfm no forward bit", "pim.pfmnoforwardbit",
FT_BOOLEAN, 8, NULL, 0x80,
"When set, this bit means that the PFM message is not to be forwarded.", HFILL }
+ },
+ { &hf_pim_reg_stop_p_bit,
+ { "P-bit", "pim.packedregstoppbit",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ "RP is indicating Register-Packing capability (RFC9465).", HFILL }
}
};
diff --git a/epan/dissectors/packet-pingpongprotocol.c b/epan/dissectors/packet-pingpongprotocol.c
index 3af6273feb..99af1444c8 100644
--- a/epan/dissectors/packet-pingpongprotocol.c
+++ b/epan/dissectors/packet-pingpongprotocol.c
@@ -41,8 +41,8 @@ static int hf_pong_messageno;
static int hf_pong_replyno;
static int hf_pong_data;
-static guint64 pingpongprotocol_total_msgs = 0;
-static guint64 pingpongprotocol_total_bytes = 0;
+static guint64 pingpongprotocol_total_msgs;
+static guint64 pingpongprotocol_total_bytes;
/* Dissectors for messages. This is specific to PingPongProtocol */
#define MESSAGE_TYPE_LENGTH 1
@@ -157,7 +157,7 @@ dissect_pingpongprotocol(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *
};
/* dissect the message */
dissect_pingpongprotocol_message(message_tvb, pinfo, pingpongprotocol_tree);
- return(TRUE);
+ return TRUE;
}
diff --git a/epan/dissectors/packet-pkcs1.c b/epan/dissectors/packet-pkcs1.c
index 31d999bc5f..266c593d15 100644
--- a/epan/dissectors/packet-pkcs1.c
+++ b/epan/dissectors/packet-pkcs1.c
@@ -71,18 +71,18 @@ static int hf_pkcs1_r; /* INTEGER */
static int hf_pkcs1_s; /* INTEGER */
/* Initialize the subtree pointers */
-static gint ett_pkcs1_RSAPublicKey;
-static gint ett_pkcs1_DigestInfo;
-static gint ett_pkcs1_DSA_Params;
-static gint ett_pkcs1_DomainParameters;
-static gint ett_pkcs1_ValidationParams;
-static gint ett_pkcs1_RSASSA_PSS_params;
-static gint ett_pkcs1_ECParameters;
-static gint ett_pkcs1_SpecifiedECDomain;
-static gint ett_pkcs1_FieldID;
-static gint ett_pkcs1_Curve;
-static gint ett_pkcs1_DSA_Sig_Value;
-static gint ett_pkcs1_ECDSA_Sig_Value;
+static int ett_pkcs1_RSAPublicKey;
+static int ett_pkcs1_DigestInfo;
+static int ett_pkcs1_DSA_Params;
+static int ett_pkcs1_DomainParameters;
+static int ett_pkcs1_ValidationParams;
+static int ett_pkcs1_RSASSA_PSS_params;
+static int ett_pkcs1_ECParameters;
+static int ett_pkcs1_SpecifiedECDomain;
+static int ett_pkcs1_FieldID;
+static int ett_pkcs1_Curve;
+static int ett_pkcs1_DSA_Sig_Value;
+static int ett_pkcs1_ECDSA_Sig_Value;
diff --git a/epan/dissectors/packet-pkcs10.c b/epan/dissectors/packet-pkcs10.c
index de13291c23..8a16876687 100644
--- a/epan/dissectors/packet-pkcs10.c
+++ b/epan/dissectors/packet-pkcs10.c
@@ -64,11 +64,11 @@ static int hf_pkcs10_signatureAlgorithm; /* AlgorithmIdentifier */
static int hf_pkcs10_signature; /* BIT_STRING */
/* Initialize the subtree pointers */
-static gint ett_pkcs10_CertificationRequestInfo;
-static gint ett_pkcs10_Attributes;
-static gint ett_pkcs10_Attribute;
-static gint ett_pkcs10_T_values;
-static gint ett_pkcs10_CertificationRequest;
+static int ett_pkcs10_CertificationRequestInfo;
+static int ett_pkcs10_Attributes;
+static int ett_pkcs10_Attribute;
+static int ett_pkcs10_T_values;
+static int ett_pkcs10_CertificationRequest;
static const value_string pkcs10_T_version_vals[] = {
{ 0, "v1" },
diff --git a/epan/dissectors/packet-pkcs12.c b/epan/dissectors/packet-pkcs12.c
index 6c53c0ca00..373410e9b5 100644
--- a/epan/dissectors/packet-pkcs12.c
+++ b/epan/dissectors/packet-pkcs12.c
@@ -55,11 +55,11 @@ static gint ett_decrypted_pbe;
static expert_field ei_pkcs12_octet_string_expected;
-static const char *object_identifier_id = NULL;
-static int iteration_count = 0;
-static tvbuff_t *salt = NULL;
-static const char *password = NULL;
-static gboolean try_null_password = FALSE;
+static const char *object_identifier_id;
+static int iteration_count;
+static tvbuff_t *salt;
+static const char *password;
+static bool try_null_password;
static int dissect_AuthenticatedSafe_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
static int dissect_SafeContents_OCTETSTRING_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
@@ -118,25 +118,25 @@ static int hf_pkcs12_encryptionScheme; /* AlgorithmIdentifier */
static int hf_pkcs12_messageAuthScheme; /* AlgorithmIdentifier */
/* Initialize the subtree pointers */
-static gint ett_pkcs12_PFX;
-static gint ett_pkcs12_MacData;
-static gint ett_pkcs12_AuthenticatedSafe;
-static gint ett_pkcs12_SafeContents;
-static gint ett_pkcs12_SafeBag;
-static gint ett_pkcs12_SET_OF_PKCS12Attribute;
-static gint ett_pkcs12_CertBag;
-static gint ett_pkcs12_CRLBag;
-static gint ett_pkcs12_SecretBag;
-static gint ett_pkcs12_PKCS12Attribute;
-static gint ett_pkcs12_T_attrValues;
-static gint ett_pkcs12_PrivateKeyInfo;
-static gint ett_pkcs12_Attributes;
-static gint ett_pkcs12_EncryptedPrivateKeyInfo;
-static gint ett_pkcs12_PBEParameter;
-static gint ett_pkcs12_PBKDF2Params;
-static gint ett_pkcs12_T_saltChoice;
-static gint ett_pkcs12_PBES2Params;
-static gint ett_pkcs12_PBMAC1Params;
+static int ett_pkcs12_PFX;
+static int ett_pkcs12_MacData;
+static int ett_pkcs12_AuthenticatedSafe;
+static int ett_pkcs12_SafeContents;
+static int ett_pkcs12_SafeBag;
+static int ett_pkcs12_SET_OF_PKCS12Attribute;
+static int ett_pkcs12_CertBag;
+static int ett_pkcs12_CRLBag;
+static int ett_pkcs12_SecretBag;
+static int ett_pkcs12_PKCS12Attribute;
+static int ett_pkcs12_T_attrValues;
+static int ett_pkcs12_PrivateKeyInfo;
+static int ett_pkcs12_Attributes;
+static int ett_pkcs12_EncryptedPrivateKeyInfo;
+static int ett_pkcs12_PBEParameter;
+static int ett_pkcs12_PBKDF2Params;
+static int ett_pkcs12_T_saltChoice;
+static int ett_pkcs12_PBES2Params;
+static int ett_pkcs12_PBMAC1Params;
static void append_oid(wmem_allocator_t *pool, proto_tree *tree, const char *oid)
{
diff --git a/epan/dissectors/packet-pkinit.c b/epan/dissectors/packet-pkinit.c
index 6102394386..5112447177 100644
--- a/epan/dissectors/packet-pkinit.c
+++ b/epan/dissectors/packet-pkinit.c
@@ -71,17 +71,17 @@ static int hf_pkinit_kdc_cert; /* OCTET_STRING */
static int hf_pkinit_encryption_cert; /* OCTET_STRING */
/* Initialize the subtree pointers */
-static gint ett_pkinit_PaPkAsReq;
-static gint ett_pkinit_SEQUENCE_OF_TrustedCA;
-static gint ett_pkinit_TrustedCA;
-static gint ett_pkinit_AuthPack;
-static gint ett_pkinit_SEQUENCE_OF_AlgorithmIdentifier;
-static gint ett_pkinit_PKAuthenticator;
-static gint ett_pkinit_KRB5PrincipalName;
-static gint ett_pkinit_PaPkAsRep;
-static gint ett_pkinit_KDCDHKeyInfo;
-static gint ett_pkinit_PKAuthenticator_Win2k;
-static gint ett_pkinit_PA_PK_AS_REQ_Win2k;
+static int ett_pkinit_PaPkAsReq;
+static int ett_pkinit_SEQUENCE_OF_TrustedCA;
+static int ett_pkinit_TrustedCA;
+static int ett_pkinit_AuthPack;
+static int ett_pkinit_SEQUENCE_OF_AlgorithmIdentifier;
+static int ett_pkinit_PKAuthenticator;
+static int ett_pkinit_KRB5PrincipalName;
+static int ett_pkinit_PaPkAsRep;
+static int ett_pkinit_KDCDHKeyInfo;
+static int ett_pkinit_PKAuthenticator_Win2k;
+static int ett_pkinit_PA_PK_AS_REQ_Win2k;
static int dissect_KerberosV5Spec2_KerberosTime(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
static int dissect_KerberosV5Spec2_Realm(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
diff --git a/epan/dissectors/packet-pkix1explicit.c b/epan/dissectors/packet-pkix1explicit.c
index 5265b14cc5..fbac569975 100644
--- a/epan/dissectors/packet-pkix1explicit.c
+++ b/epan/dissectors/packet-pkix1explicit.c
@@ -95,29 +95,29 @@ static int hf_pkix1explicit_min_01; /* ASId */
static int hf_pkix1explicit_max_01; /* ASId */
/* Initialize the subtree pointers */
-static gint ett_pkix1explicit_Time;
-static gint ett_pkix1explicit_Extensions;
-static gint ett_pkix1explicit_Extension;
-static gint ett_pkix1explicit_DomainParameters;
-static gint ett_pkix1explicit_ValidationParms;
-static gint ett_pkix1explicit_Attribute;
-static gint ett_pkix1explicit_T_values;
-static gint ett_pkix1explicit_AttributeTypeAndValue;
-static gint ett_pkix1explicit_RDNSequence;
-static gint ett_pkix1explicit_RelativeDistinguishedName;
-static gint ett_pkix1explicit_TeletexDomainDefinedAttribute;
-static gint ett_pkix1explicit_Features;
-static gint ett_pkix1explicit_IPAddrBlocks;
-static gint ett_pkix1explicit_IPAddressFamily;
-static gint ett_pkix1explicit_IPAddressChoice;
-static gint ett_pkix1explicit_SEQUENCE_OF_IPAddressOrRange;
-static gint ett_pkix1explicit_IPAddressOrRange;
-static gint ett_pkix1explicit_IPAddressRange;
-static gint ett_pkix1explicit_ASIdentifiers;
-static gint ett_pkix1explicit_ASIdentifierChoice;
-static gint ett_pkix1explicit_SEQUENCE_OF_ASIdOrRange;
-static gint ett_pkix1explicit_ASIdOrRange;
-static gint ett_pkix1explicit_ASRange;
+static int ett_pkix1explicit_Time;
+static int ett_pkix1explicit_Extensions;
+static int ett_pkix1explicit_Extension;
+static int ett_pkix1explicit_DomainParameters;
+static int ett_pkix1explicit_ValidationParms;
+static int ett_pkix1explicit_Attribute;
+static int ett_pkix1explicit_T_values;
+static int ett_pkix1explicit_AttributeTypeAndValue;
+static int ett_pkix1explicit_RDNSequence;
+static int ett_pkix1explicit_RelativeDistinguishedName;
+static int ett_pkix1explicit_TeletexDomainDefinedAttribute;
+static int ett_pkix1explicit_Features;
+static int ett_pkix1explicit_IPAddrBlocks;
+static int ett_pkix1explicit_IPAddressFamily;
+static int ett_pkix1explicit_IPAddressChoice;
+static int ett_pkix1explicit_SEQUENCE_OF_IPAddressOrRange;
+static int ett_pkix1explicit_IPAddressOrRange;
+static int ett_pkix1explicit_IPAddressRange;
+static int ett_pkix1explicit_ASIdentifiers;
+static int ett_pkix1explicit_ASIdentifierChoice;
+static int ett_pkix1explicit_SEQUENCE_OF_ASIdOrRange;
+static int ett_pkix1explicit_ASIdOrRange;
+static int ett_pkix1explicit_ASRange;
int
dissect_pkix1explicit_Certificate(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
diff --git a/epan/dissectors/packet-pkix1implicit.c b/epan/dissectors/packet-pkix1implicit.c
index 600c9292e1..6d71edb3a0 100644
--- a/epan/dissectors/packet-pkix1implicit.c
+++ b/epan/dissectors/packet-pkix1implicit.c
@@ -49,12 +49,12 @@ static int hf_pkix1implicit_bmpString; /* BMPString */
static int hf_pkix1implicit_utf8String; /* UTF8String */
/* Initialize the subtree pointers */
-static gint ett_pkix1implicit_AuthorityInfoAccessSyntax;
-static gint ett_pkix1implicit_AccessDescription;
-static gint ett_pkix1implicit_UserNotice;
-static gint ett_pkix1implicit_NoticeReference;
-static gint ett_pkix1implicit_T_noticeNumbers;
-static gint ett_pkix1implicit_DisplayText;
+static int ett_pkix1implicit_AuthorityInfoAccessSyntax;
+static int ett_pkix1implicit_AccessDescription;
+static int ett_pkix1implicit_UserNotice;
+static int ett_pkix1implicit_NoticeReference;
+static int ett_pkix1implicit_T_noticeNumbers;
+static int ett_pkix1implicit_DisplayText;
int
diff --git a/epan/dissectors/packet-pkixac.c b/epan/dissectors/packet-pkixac.c
index bc9bdee563..768ac9c255 100644
--- a/epan/dissectors/packet-pkixac.c
+++ b/epan/dissectors/packet-pkixac.c
@@ -90,24 +90,24 @@ static int hf_pkixac_ClassList_topSecret;
/* Initialize the subtree pointers */
static gint ett_pkixac;
-static gint ett_pkixac_ObjectDigestInfo;
-static gint ett_pkixac_IssuerSerial;
-static gint ett_pkixac_Targets;
-static gint ett_pkixac_Target;
-static gint ett_pkixac_TargetCert;
-static gint ett_pkixac_IetfAttrSyntax;
-static gint ett_pkixac_T_values;
-static gint ett_pkixac_T_values_item;
-static gint ett_pkixac_SvceAuthInfo;
-static gint ett_pkixac_RoleSyntax;
-static gint ett_pkixac_Clearance;
-static gint ett_pkixac_SET_OF_SecurityCategory;
-static gint ett_pkixac_RFC3281Clearance;
-static gint ett_pkixac_ClassList;
-static gint ett_pkixac_SecurityCategory;
-static gint ett_pkixac_AAControls;
-static gint ett_pkixac_AttrSpec;
-static gint ett_pkixac_ProxyInfo;
+static int ett_pkixac_ObjectDigestInfo;
+static int ett_pkixac_IssuerSerial;
+static int ett_pkixac_Targets;
+static int ett_pkixac_Target;
+static int ett_pkixac_TargetCert;
+static int ett_pkixac_IetfAttrSyntax;
+static int ett_pkixac_T_values;
+static int ett_pkixac_T_values_item;
+static int ett_pkixac_SvceAuthInfo;
+static int ett_pkixac_RoleSyntax;
+static int ett_pkixac_Clearance;
+static int ett_pkixac_SET_OF_SecurityCategory;
+static int ett_pkixac_RFC3281Clearance;
+static int ett_pkixac_ClassList;
+static int ett_pkixac_SecurityCategory;
+static int ett_pkixac_AAControls;
+static int ett_pkixac_AttrSpec;
+static int ett_pkixac_ProxyInfo;
static const char *object_identifier_id;
diff --git a/epan/dissectors/packet-pkixproxy.c b/epan/dissectors/packet-pkixproxy.c
index a26f535622..6d3274a84b 100644
--- a/epan/dissectors/packet-pkixproxy.c
+++ b/epan/dissectors/packet-pkixproxy.c
@@ -39,8 +39,8 @@ static int hf_pkixproxy_policyLanguage; /* OBJECT_IDENTIFIER */
static int hf_pkixproxy_policy; /* OCTET_STRING */
/* Initialize the subtree pointers */
-static gint ett_pkixproxy_ProxyCertInfoExtension;
-static gint ett_pkixproxy_ProxyPolicy;
+static int ett_pkixproxy_ProxyCertInfoExtension;
+static int ett_pkixproxy_ProxyPolicy;
diff --git a/epan/dissectors/packet-pkixqualified.c b/epan/dissectors/packet-pkixqualified.c
index 7851d2c4ae..51ee9d8e3b 100644
--- a/epan/dissectors/packet-pkixqualified.c
+++ b/epan/dissectors/packet-pkixqualified.c
@@ -58,13 +58,13 @@ static int hf_pkixqualified_nameRegistrationAuthorities; /* NameRegistrationAut
static int hf_pkixqualified_NameRegistrationAuthorities_item; /* GeneralName */
/* Initialize the subtree pointers */
-static gint ett_pkixqualified_BiometricSyntax;
-static gint ett_pkixqualified_BiometricData;
-static gint ett_pkixqualified_TypeOfBiometricData;
-static gint ett_pkixqualified_QCStatements;
-static gint ett_pkixqualified_QCStatement;
-static gint ett_pkixqualified_SemanticsInformation;
-static gint ett_pkixqualified_NameRegistrationAuthorities;
+static int ett_pkixqualified_BiometricSyntax;
+static int ett_pkixqualified_BiometricData;
+static int ett_pkixqualified_TypeOfBiometricData;
+static int ett_pkixqualified_QCStatements;
+static int ett_pkixqualified_QCStatement;
+static int ett_pkixqualified_SemanticsInformation;
+static int ett_pkixqualified_NameRegistrationAuthorities;
static const char *object_identifier_id;
diff --git a/epan/dissectors/packet-pkixtsp.c b/epan/dissectors/packet-pkixtsp.c
index 0c33764e6a..cdc9280652 100644
--- a/epan/dissectors/packet-pkixtsp.c
+++ b/epan/dissectors/packet-pkixtsp.c
@@ -93,13 +93,13 @@ static int hf_pkixtsp_PKIFailureInfo_systemFailure;
/* Initialize the subtree pointers */
static gint ett_pkixtsp;
-static gint ett_pkixtsp_TimeStampReq;
-static gint ett_pkixtsp_MessageImprint;
-static gint ett_pkixtsp_TimeStampResp;
-static gint ett_pkixtsp_PKIStatusInfo;
-static gint ett_pkixtsp_PKIFailureInfo;
-static gint ett_pkixtsp_TSTInfo;
-static gint ett_pkixtsp_Accuracy;
+static int ett_pkixtsp_TimeStampReq;
+static int ett_pkixtsp_MessageImprint;
+static int ett_pkixtsp_TimeStampResp;
+static int ett_pkixtsp_PKIStatusInfo;
+static int ett_pkixtsp_PKIFailureInfo;
+static int ett_pkixtsp_TSTInfo;
+static int ett_pkixtsp_Accuracy;
diff --git a/epan/dissectors/packet-pktap.c b/epan/dissectors/packet-pktap.c
index 8e55d2f28f..d548d95af3 100644
--- a/epan/dissectors/packet-pktap.c
+++ b/epan/dissectors/packet-pktap.c
@@ -90,7 +90,7 @@ static capture_dissector_handle_t eth_cap_handle;
* We should do that here.
*/
-static gboolean
+static bool
capture_pktap(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint32 hdrlen, rectype, dlt;
diff --git a/epan/dissectors/packet-pldm.c b/epan/dissectors/packet-pldm.c
index 553537aa22..c958bc2bc8 100644
--- a/epan/dissectors/packet-pldm.c
+++ b/epan/dissectors/packet-pldm.c
@@ -23,8 +23,8 @@
static int proto_pldm;
static int ett_pldm;
-static wmem_map_t* pldmTypeMap = NULL;
-static wmem_allocator_t *addr_resolv_scope = NULL;
+static wmem_map_t* pldmTypeMap;
+static wmem_allocator_t *addr_resolv_scope;
static int hf_pldm_msg_direction;
static int hf_pldm_instance_id;
@@ -551,7 +551,7 @@ static char* ver2str(tvbuff_t *tvb, int offset)
}
// Alpha
if (alpha != 0x00) {
- c_offset += snprintf(buf_ptr+c_offset, VER_BUF_LEN-c_offset, "%c", alpha);
+ /*c_offset += */snprintf(buf_ptr+c_offset, VER_BUF_LEN-c_offset, "%c", alpha);
} else {
c_offset += snprintf(buf_ptr+c_offset, VER_BUF_LEN-c_offset, ".");
snprintf(buf_ptr+c_offset, VER_BUF_LEN-c_offset, "-");
diff --git a/epan/dissectors/packet-pop.c b/epan/dissectors/packet-pop.c
index 2404854f3d..4b6594e76b 100644
--- a/epan/dissectors/packet-pop.c
+++ b/epan/dissectors/packet-pop.c
@@ -77,7 +77,7 @@ static dissector_handle_t tls_handle;
#define TCP_PORT_SSL_POP 995
/* desegmentation of POP command and response lines */
-static gboolean pop_data_desegment = TRUE;
+static bool pop_data_desegment = true;
static reassembly_table pop_data_reassembly_table;
diff --git a/epan/dissectors/packet-ppi.c b/epan/dissectors/packet-ppi.c
index 33c07729aa..7fa5254b52 100644
--- a/epan/dissectors/packet-ppi.c
+++ b/epan/dissectors/packet-ppi.c
@@ -353,10 +353,10 @@ static const value_string vs_ppi_field_type[] = {
static reassembly_table ampdu_reassembly_table;
/* Reassemble A-MPDUs? */
-static gboolean ppi_ampdu_reassemble = TRUE;
+static bool ppi_ampdu_reassemble = true;
-static gboolean
+static bool
capture_ppi(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint32 dlt;
diff --git a/epan/dissectors/packet-ppp.c b/epan/dissectors/packet-ppp.c
index d04d3b6d6e..0965c00ec7 100644
--- a/epan/dissectors/packet-ppp.c
+++ b/epan/dissectors/packet-ppp.c
@@ -673,7 +673,7 @@ static const value_string ppp_direction_vals[] = {
};
/* options */
-static gint ppp_fcs_decode = 0; /* 0 = No FCS, 1 = 16 bit FCS, 2 = 32 bit FCS */
+static gint ppp_fcs_decode; /* 0 = No FCS, 1 = 16 bit FCS, 2 = 32 bit FCS */
#define NO_FCS 0
#define FCS_16 1
#define FCS_32 2
@@ -691,7 +691,7 @@ const enum_val_t fcs_options[] = {
* ID, we can use it
*/
-static guint pppmux_def_prot_id = 0;
+static guint pppmux_def_prot_id;
/* PPP definitions */
@@ -1832,7 +1832,7 @@ decode_fcs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *fh_tree, int fcs_decod
return next_tvb;
}
-static gboolean
+static bool
capture_ppp_hdlc(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
if (!BYTES_ARE_IN_FRAME(offset, len, 2))
@@ -5702,7 +5702,7 @@ dissect_cdpcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
/* PPP Multilink Protcol (RFC 1990) and
* the Multiclass Extension to Multi-Link PPP (RFC 2686)
*/
-static gboolean mp_short_seqno = FALSE; /* Default to long sequence numbers */
+static bool mp_short_seqno; /* Default to long sequence numbers */
static guint mp_max_fragments = 6;
/* Maximum fragments to try to reassemble. This affects performance and
* memory use significantly. */
@@ -6102,8 +6102,8 @@ dissect_ppp_usb( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
* generated by 0x20^0x03 per section 4.2 of:
* https://tools.ietf.org/html/rfc1662.html.
*/
- const guchar buf1[3] = {0x7e, 0xff, 0x03};
- const guchar buf2[4] = {0x7e, 0xff, 0x7d, 0x23};
+ static const guchar buf1[3] = {0x7e, 0xff, 0x03};
+ static const guchar buf2[4] = {0x7e, 0xff, 0x7d, 0x23};
tvbuff_t *next_tvb;
if ((tvb_memeql(tvb, 0, buf2, sizeof(buf2)) == 0) ||
@@ -6136,8 +6136,8 @@ dissect_ppp_usb( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
next_tvb = tvb_new_subset_remaining(tvb, 1);
dissect_ppp_hdlc_common(next_tvb, pinfo, tree);
} else
- return (FALSE);
- return (TRUE);
+ return FALSE;
+ return TRUE;
}
void
diff --git a/epan/dissectors/packet-pppoe.c b/epan/dissectors/packet-pppoe.c
index 0335d27cf7..31005b2dd1 100644
--- a/epan/dissectors/packet-pppoe.c
+++ b/epan/dissectors/packet-pppoe.c
@@ -125,7 +125,7 @@ static dissector_handle_t ppp_handle;
/* Preference for showing discovery tag values and lengths */
-static gboolean global_pppoe_show_tags_and_lengths = FALSE;
+static bool global_pppoe_show_tags_and_lengths;
#define PPPOE_CODE_SESSION 0x00
diff --git a/epan/dissectors/packet-pres.c b/epan/dissectors/packet-pres.c
index dbe7c031f9..fdc77a28af 100644
--- a/epan/dissectors/packet-pres.c
+++ b/epan/dissectors/packet-pres.c
@@ -46,12 +46,12 @@ void proto_reg_handoff_pres(void);
/* Initialize the protocol and registered fields */
static int proto_pres;
-/* Initialize the connectionles protocol */
+/* Initialize the connectionless protocol */
static int proto_clpres;
/* pointers for acse dissector */
-proto_tree *global_tree = NULL;
-packet_info *global_pinfo = NULL;
+proto_tree *global_tree;
+packet_info *global_pinfo;
static const char *abstract_syntax_name_oid;
static guint32 presentation_context_identifier;
@@ -62,7 +62,7 @@ typedef struct _pres_ctx_oid_t {
char *oid;
guint32 idx;
} pres_ctx_oid_t;
-static wmem_map_t *pres_ctx_oid_table = NULL;
+static wmem_map_t *pres_ctx_oid_table;
typedef struct _pres_user_t {
guint ctx_id;
@@ -160,42 +160,42 @@ static int hf_pres_User_session_requirements_data_separation;
/* Initialize the subtree pointers */
static gint ett_pres;
-static gint ett_pres_CP_type;
-static gint ett_pres_T_normal_mode_parameters;
-static gint ett_pres_T_extensions;
-static gint ett_pres_CPA_PPDU;
-static gint ett_pres_T_CPA_PPDU_normal_mode_parameters;
-static gint ett_pres_CPR_PPDU;
-static gint ett_pres_T_CPR_PPDU_normal_mode_parameters;
-static gint ett_pres_Abort_type;
-static gint ett_pres_ARU_PPDU;
-static gint ett_pres_T_ARU_PPDU_normal_mode_parameters;
-static gint ett_pres_ARP_PPDU;
-static gint ett_pres_Typed_data_type;
-static gint ett_pres_AC_PPDU;
-static gint ett_pres_ACA_PPDU;
-static gint ett_pres_RS_PPDU;
-static gint ett_pres_RSA_PPDU;
-static gint ett_pres_Context_list;
-static gint ett_pres_Context_list_item;
-static gint ett_pres_SEQUENCE_OF_Transfer_syntax_name;
-static gint ett_pres_Default_context_name;
-static gint ett_pres_Mode_selector;
-static gint ett_pres_Presentation_context_deletion_list;
-static gint ett_pres_Presentation_context_deletion_result_list;
-static gint ett_pres_Presentation_context_identifier_list;
-static gint ett_pres_Presentation_context_identifier_list_item;
-static gint ett_pres_Presentation_requirements;
-static gint ett_pres_Protocol_options;
-static gint ett_pres_Protocol_version;
-static gint ett_pres_Result_list;
-static gint ett_pres_Result_list_item;
-static gint ett_pres_User_data;
-static gint ett_pres_Fully_encoded_data;
-static gint ett_pres_PDV_list;
-static gint ett_pres_T_presentation_data_values;
-static gint ett_pres_User_session_requirements;
-static gint ett_pres_UD_type;
+static int ett_pres_CP_type;
+static int ett_pres_T_normal_mode_parameters;
+static int ett_pres_T_extensions;
+static int ett_pres_CPA_PPDU;
+static int ett_pres_T_CPA_PPDU_normal_mode_parameters;
+static int ett_pres_CPR_PPDU;
+static int ett_pres_T_CPR_PPDU_normal_mode_parameters;
+static int ett_pres_Abort_type;
+static int ett_pres_ARU_PPDU;
+static int ett_pres_T_ARU_PPDU_normal_mode_parameters;
+static int ett_pres_ARP_PPDU;
+static int ett_pres_Typed_data_type;
+static int ett_pres_AC_PPDU;
+static int ett_pres_ACA_PPDU;
+static int ett_pres_RS_PPDU;
+static int ett_pres_RSA_PPDU;
+static int ett_pres_Context_list;
+static int ett_pres_Context_list_item;
+static int ett_pres_SEQUENCE_OF_Transfer_syntax_name;
+static int ett_pres_Default_context_name;
+static int ett_pres_Mode_selector;
+static int ett_pres_Presentation_context_deletion_list;
+static int ett_pres_Presentation_context_deletion_result_list;
+static int ett_pres_Presentation_context_identifier_list;
+static int ett_pres_Presentation_context_identifier_list_item;
+static int ett_pres_Presentation_requirements;
+static int ett_pres_Protocol_options;
+static int ett_pres_Protocol_version;
+static int ett_pres_Result_list;
+static int ett_pres_Result_list_item;
+static int ett_pres_User_data;
+static int ett_pres_Fully_encoded_data;
+static int ett_pres_PDV_list;
+static int ett_pres_T_presentation_data_values;
+static int ett_pres_User_session_requirements;
+static int ett_pres_UD_type;
static expert_field ei_pres_dissector_not_available;
static expert_field ei_pres_wrong_spdu_type;
diff --git a/epan/dissectors/packet-protobuf.c b/epan/dissectors/packet-protobuf.c
index 9e4e274f66..74442d53d4 100644
--- a/epan/dissectors/packet-protobuf.c
+++ b/epan/dissectors/packet-protobuf.c
@@ -105,7 +105,7 @@ static void protobuf_reinit(int target);
static int proto_protobuf;
static int proto_protobuf_json_mapping;
-static gboolean protobuf_dissector_called = FALSE;
+static gboolean protobuf_dissector_called;
/* information get from *.proto files */
static int hf_protobuf_message_name;
@@ -150,16 +150,16 @@ static int ett_protobuf_packed_repeated;
static int ett_protobuf_json;
/* preferences */
-static gboolean try_dissect_as_string = FALSE;
-static gboolean show_all_possible_field_types = FALSE;
-static gboolean dissect_bytes_as_string = FALSE;
-static gboolean old_dissect_bytes_as_string = FALSE;
-static gboolean show_details = FALSE;
-static gboolean pbf_as_hf = FALSE; /* dissect protobuf fields as header fields of wireshark */
-static gboolean preload_protos = FALSE;
+static bool try_dissect_as_string;
+static bool show_all_possible_field_types;
+static bool dissect_bytes_as_string;
+static gboolean old_dissect_bytes_as_string;
+static bool show_details;
+static bool pbf_as_hf; /* dissect protobuf fields as header fields of wireshark */
+static bool preload_protos;
/* Show protobuf as JSON similar to https://developers.google.com/protocol-buffers/docs/proto3#json */
-static gboolean display_json_mapping = FALSE;
-static gboolean use_utc_fmt = FALSE;
+static bool display_json_mapping;
+static bool use_utc_fmt;
static const char* default_message_type = "";
@@ -174,10 +174,10 @@ typedef ENUM_VAL_T_ENUM(add_default_value_policy_vals) add_default_value_policy_
static gint add_default_value = (gint) ADD_DEFAULT_VALUE_NONE;
/* dynamic wireshark header fields for protobuf fields */
-static hf_register_info *dynamic_hf = NULL;
-static guint dynamic_hf_size = 0;
+static hf_register_info *dynamic_hf;
+static guint dynamic_hf_size;
/* the key is full name of protobuf fields, the value is header field id */
-static GHashTable *pbf_hf_hash = NULL;
+static GHashTable *pbf_hf_hash;
/* Protobuf field value subdissector table list.
* Only valid for the value of PROTOBUF_TYPE_BYTES or PROTOBUF_TYPE_STRING fields.
@@ -193,7 +193,7 @@ typedef struct {
guint64 value;
} protobuf_varint_tvb_info_t;
-static PbwDescriptorPool* pbw_pool = NULL;
+static PbwDescriptorPool* pbw_pool;
/* protobuf source files search paths */
typedef struct {
@@ -201,8 +201,8 @@ typedef struct {
gboolean load_all; /* load all *.proto files in this directory and its sub directories */
} protobuf_search_path_t;
-static protobuf_search_path_t* protobuf_search_paths = NULL;
-static guint num_protobuf_search_paths = 0;
+static protobuf_search_path_t* protobuf_search_paths;
+static guint num_protobuf_search_paths;
int proto_http;
@@ -240,8 +240,8 @@ typedef struct {
gchar *message_type; /* protobuf message type of data on these udp ports */
} protobuf_udp_message_type_t;
-static protobuf_udp_message_type_t* protobuf_udp_message_types = NULL;
-static guint num_protobuf_udp_message_types = 0;
+static protobuf_udp_message_type_t* protobuf_udp_message_types;
+static guint num_protobuf_udp_message_types;
static void *
protobuf_udp_message_types_copy_cb(void* n, const void* o, size_t siz _U_)
@@ -289,7 +289,7 @@ protobuf_udp_message_types_free_cb(void*r)
UAT_RANGE_CB_DEF(protobuf_udp_message_types, udp_port_range, protobuf_udp_message_type_t)
UAT_CSTRING_CB_DEF(protobuf_udp_message_types, message_type, protobuf_udp_message_type_t)
-static GSList* old_udp_port_ranges = NULL;
+static GSList* old_udp_port_ranges;
@@ -299,8 +299,8 @@ typedef struct {
gchar *message_type; /* associated protobuf message type */
} protobuf_uri_mapping_t;
-static protobuf_uri_mapping_t* protobuf_uri_message_types = NULL;
-static guint num_protobuf_uri_message_types = 0;
+static protobuf_uri_mapping_t* protobuf_uri_message_types;
+static guint num_protobuf_uri_message_types;
static void *
protobuf_uri_message_type_copy_cb(void* n, const void* o, size_t siz _U_)
@@ -1579,6 +1579,64 @@ find_message_type_by_udp_port(packet_info *pinfo)
return NULL;
}
+static bool
+// NOLINTNEXTLINE(misc-no-recursion)
+uri_matches_pattern(const char *request_uri, const char *uri_pattern, int depth)
+{
+ /* Arbitrary recursion depth limit.. */
+ if (depth > 32) {
+ return false;
+ }
+
+ /* Exact match */
+ if (strcmp(request_uri, uri_pattern)==0) {
+ return true;
+ }
+
+ /* Match if both strings now empty */
+ if (strlen(uri_pattern)==0 && strlen(request_uri)==0) {
+ return true;
+ }
+
+ /* Fail if remaining, unmatched pattern but reached end of uri */
+ if (strlen(uri_pattern)>0 && strlen(request_uri)==0) {
+ return false;
+ }
+
+ /* If remainder of pattern is just '*', it matches */
+ if (strlen(uri_pattern)==1 && uri_pattern[0] == '*') {
+ return true;
+ }
+
+ /* If next uri_pattern char is not '*', needs to match exactly */
+ if (strlen(uri_pattern) && uri_pattern[0] != '*') {
+
+ /* Skip identical characters */
+ int n;
+ for (n=0; strlen(request_uri+n) && strlen(request_uri+n) && uri_pattern[n] != '*'; n++) {
+ if (request_uri[n] == uri_pattern[n]) {
+ continue;
+ }
+ else {
+ /* Fail if non-wildcarded comparison fails */
+ return false;
+ }
+ }
+
+ /* Recursively call n characters along */
+ return uri_matches_pattern(request_uri+n, uri_pattern+n, depth+1);
+ }
+
+ if (strlen(uri_pattern) && uri_pattern[0] == '*') {
+ /* We are at a '*'. Test with/without moving past it now */
+ return (uri_matches_pattern(request_uri+1, uri_pattern, depth+1) ||
+ uri_matches_pattern(request_uri+1, uri_pattern+1, depth+1));
+ }
+
+ return false;
+}
+
+
static int
dissect_protobuf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
@@ -1722,7 +1780,7 @@ dissect_protobuf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
if (curr) {
if (curr->request_uri) {
for (guint n=0; n < num_protobuf_uri_message_types; n++) {
- if (strcmp(curr->request_uri, protobuf_uri_message_types[n].uri) == 0) {
+ if (uri_matches_pattern(curr->request_uri, protobuf_uri_message_types[n].uri, 1 /* depth */)) {
if (strlen(protobuf_uri_message_types[n].message_type)) {
/* Lookup message type for matching URI */
message_desc = pbw_DescriptorPool_FindMessageTypeByName(pbw_pool,
@@ -1798,7 +1856,7 @@ load_all_files_in_dir(PbwDescriptorPool* pool, const gchar* dir_path, unsigned d
/* There might be a lot of errors to be found during parsing .proto files.
We buffer the errors first, and print them in one list finally. */
-static wmem_strbuf_t* err_msg_buf = NULL;
+static wmem_strbuf_t* err_msg_buf;
#define MIN_ERR_STR_BUF_SIZE 512
#define MAX_ERR_STR_BUF_SIZE 1024
@@ -2414,7 +2472,7 @@ proto_register_protobuf(void)
);
prefs_register_uat_preference(protobuf_module, "uri_message_types", "Protobuf URI message types",
- "Specify the Protobuf message type of data on certain URIs.",
+ "Specify the Protobuf message type of data on certain URIs. N.B., URI may contain '*'",
protobuf_uri_message_types_uat);
diff --git a/epan/dissectors/packet-ptp.c b/epan/dissectors/packet-ptp.c
index ae929f2012..d0e9f8b9db 100644
--- a/epan/dissectors/packet-ptp.c
+++ b/epan/dissectors/packet-ptp.c
@@ -1945,7 +1945,7 @@ static expert_field ei_ptp_v2_period_invalid;
*/
/* Config for Analysis features */
-static gboolean ptp_analyze_messages = TRUE;
+static bool ptp_analyze_messages = true;
/* Definitions for Analysis features */
#define PTP_ANALYSIS_MAX_ALLOWED_DELTA_SECS 60
@@ -2020,7 +2020,7 @@ typedef struct ptp_clock_info {
wmem_map_t *frames;
} ptp_clock_info_t;
-static wmem_map_t *ptp_clocks = NULL;
+static wmem_map_t *ptp_clocks;
/*
* PTP major ver 4 bit
@@ -3742,7 +3742,7 @@ dissect_ptp_v2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean ptp
for(path_seq_total_length = 0; path_seq_total_length < tlv_length; path_seq_total_length+=8)
{
proto_tree_add_item(ptp_tlv_tree, hf_ptp_v2_an_tlv_pathsequence, tvb,
- PTP_V2_AN_TLV_OFFSET + PTP_AS_AN_TLV_PATH_TRACE_OFFSET + path_seq_total_length,
+ PTP_V2_AN_TLV_OFFSET + tlv_total_length + PTP_AS_AN_TLV_PATH_TRACE_OFFSET + path_seq_total_length,
8, ENC_BIG_ENDIAN);
}
diff --git a/epan/dissectors/packet-ptpip.c b/epan/dissectors/packet-ptpip.c
index a278b9e8ee..9160e5e5b1 100644
--- a/epan/dissectors/packet-ptpip.c
+++ b/epan/dissectors/packet-ptpip.c
@@ -99,7 +99,7 @@ static const enum_val_t pref_hsp_role[] = {
};
/* Vendor preference for deciphering opcodes */
-static int pref_vendor = 0;
+static int pref_vendor;
static const value_string ptp_opcode_names[] = {
@@ -543,7 +543,7 @@ int dissect_ptpIP (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
/* Check that there's enough data */
if ( tvb_captured_length_remaining(tvb, offset) < 8 ) /* ptp-photo smallest packet size is 8 */
- return (0);
+ return 0;
col_set_str(pinfo->cinfo,COL_PROTOCOL, "PTP/IP");
diff --git a/epan/dissectors/packet-pvfs2.c b/epan/dissectors/packet-pvfs2.c
index 1ee3fd320d..38dcc66d32 100644
--- a/epan/dissectors/packet-pvfs2.c
+++ b/epan/dissectors/packet-pvfs2.c
@@ -40,7 +40,7 @@
#define BMI_HEADER_SIZE 24
/* desegmentation of PVFS over TCP */
-static gboolean pvfs_desegment = TRUE;
+static bool pvfs_desegment = true;
/* Forward declaration we need below */
void proto_register_pvfs(void);
@@ -2867,7 +2867,7 @@ dissect_pvfs2_response(tvbuff_t *tvb, proto_tree *tree, int offset,
return offset;
}
-static wmem_map_t *pvfs2_io_tracking_value_table = NULL;
+static wmem_map_t *pvfs2_io_tracking_value_table;
typedef struct pvfs2_io_tracking_key
{
diff --git a/epan/dissectors/packet-pw-atm.c b/epan/dissectors/packet-pw-atm.c
index d91043cbd2..88b455587d 100644
--- a/epan/dissectors/packet-pw-atm.c
+++ b/epan/dissectors/packet-pw-atm.c
@@ -247,10 +247,10 @@ static const char shortname_aal5_pdu[] = "MPLS PW ATM AAL5 PDU";
* Note that these options will affect PW type auto-guessing, if such heuristic
* implemented in the future.
*/
-static gboolean pref_n1_cw_allow_cw_length_nonzero = FALSE;
-static gboolean pref_n1_cw_extend_cw_length_with_rsvd = FALSE;
-static gboolean pref_aal5_sdu_allow_cw_length_nonzero = FALSE;
-static gboolean pref_aal5_sdu_extend_cw_length_with_rsvd = FALSE;
+static bool pref_n1_cw_allow_cw_length_nonzero;
+static bool pref_n1_cw_extend_cw_length_with_rsvd;
+static bool pref_aal5_sdu_allow_cw_length_nonzero;
+static bool pref_aal5_sdu_extend_cw_length_with_rsvd;
static int
diff --git a/epan/dissectors/packet-pw-satop.c b/epan/dissectors/packet-pw-satop.c
index 0d17d52761..f09e0ae8f0 100644
--- a/epan/dissectors/packet-pw-satop.c
+++ b/epan/dissectors/packet-pw-satop.c
@@ -59,8 +59,8 @@ const char pwc_longname_pw_satop[] = "SAToP";
static const char shortname[] = "SAToP";
/* Preferences */
-static gboolean pref_has_rtp_header = FALSE;
-static gboolean pref_heuristic_rtp_header = TRUE;
+static bool pref_has_rtp_header;
+static bool pref_heuristic_rtp_header = true;
static
diff --git a/epan/dissectors/packet-q931.c b/epan/dissectors/packet-q931.c
index 9dca7a25b8..b60c490c56 100644
--- a/epan/dissectors/packet-q931.c
+++ b/epan/dissectors/packet-q931.c
@@ -244,14 +244,14 @@ static const fragment_items q931_frag_items = {
static reassembly_table q931_reassembly_table;
/* Preferences */
-static gboolean q931_reassembly = TRUE;
-static gboolean g931_iso_iec_cause = FALSE;
+static bool q931_reassembly = true;
+static bool g931_iso_iec_cause;
static dissector_table_t codeset_dissector_table;
static dissector_table_t ie_dissector_table;
/* desegmentation of Q.931 over TPKT over TCP */
-static gboolean q931_desegment = TRUE;
+static bool q931_desegment = true;
/* Subdissectors */
static dissector_handle_t h225_handle;
diff --git a/epan/dissectors/packet-q932-ros.c b/epan/dissectors/packet-q932-ros.c
index 4661395699..7eac248f23 100644
--- a/epan/dissectors/packet-q932-ros.c
+++ b/epan/dissectors/packet-q932-ros.c
@@ -58,23 +58,23 @@ static int hf_q932_ros_present; /* INTEGER */
static int hf_q932_ros_InvokeId_present; /* InvokeId_present */
/* Initialize the subtree pointers */
-static gint ett_q932_ros_Code;
-static gint ett_q932_ros_ROS;
-static gint ett_q932_ros_Invoke;
-static gint ett_q932_ros_T_linkedId;
-static gint ett_q932_ros_ReturnResult;
-static gint ett_q932_ros_T_result;
-static gint ett_q932_ros_ReturnError;
-static gint ett_q932_ros_Reject;
-static gint ett_q932_ros_T_problem;
-static gint ett_q932_ros_InvokeId;
+static int ett_q932_ros_Code;
+static int ett_q932_ros_ROS;
+static int ett_q932_ros_Invoke;
+static int ett_q932_ros_T_linkedId;
+static int ett_q932_ros_ReturnResult;
+static int ett_q932_ros_T_result;
+static int ett_q932_ros_ReturnError;
+static int ett_q932_ros_Reject;
+static int ett_q932_ros_T_problem;
+static int ett_q932_ros_InvokeId;
static expert_field ei_ros_undecoded;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t data_handle = NULL;
+static dissector_handle_t data_handle;
/* Global variables */
static rose_ctx_t *rose_ctx_tmp;
diff --git a/epan/dissectors/packet-q932.c b/epan/dissectors/packet-q932.c
index c1dc050fcf..9805ddb0cc 100644
--- a/epan/dissectors/packet-q932.c
+++ b/epan/dissectors/packet-q932.c
@@ -79,19 +79,19 @@ static int hf_q932_destinationEntityAddress; /* AddressInformation */
/* Initialize the subtree pointers */
static gint ett_q932;
static gint ett_q932_ie;
-static gint ett_q932_PresentedAddressScreened;
-static gint ett_q932_PresentedAddressUnscreened;
-static gint ett_q932_PresentedNumberScreened;
-static gint ett_q932_PresentedNumberUnscreened;
-static gint ett_q932_AddressScreened;
-static gint ett_q932_NumberScreened;
-static gint ett_q932_Address;
-static gint ett_q932_PartyNumber;
-static gint ett_q932_PublicPartyNumber;
-static gint ett_q932_PrivatePartyNumber;
-static gint ett_q932_PartySubaddress;
-static gint ett_q932_UserSpecifiedSubaddress;
-static gint ett_q932_NetworkFacilityExtension_U;
+static int ett_q932_PresentedAddressScreened;
+static int ett_q932_PresentedAddressUnscreened;
+static int ett_q932_PresentedNumberScreened;
+static int ett_q932_PresentedNumberUnscreened;
+static int ett_q932_AddressScreened;
+static int ett_q932_NumberScreened;
+static int ett_q932_Address;
+static int ett_q932_PartyNumber;
+static int ett_q932_PublicPartyNumber;
+static int ett_q932_PrivatePartyNumber;
+static int ett_q932_PartySubaddress;
+static int ett_q932_UserSpecifiedSubaddress;
+static int ett_q932_NetworkFacilityExtension_U;
static expert_field ei_q932_dse_not_supported;
static expert_field ei_q932_acse_not_supported;
diff --git a/epan/dissectors/packet-qnet6.c b/epan/dissectors/packet-qnet6.c
index a81b8e27b7..b0ca392a95 100644
--- a/epan/dissectors/packet-qnet6.c
+++ b/epan/dissectors/packet-qnet6.c
@@ -1448,7 +1448,7 @@ static const value_string qnet6_kif_msgsend_msg_openfd_xtypes_vals[] = {
/*
* Perform LWL4 crc check
*/
-static gboolean qnet6_lwl4_check_crc = TRUE;
+static bool qnet6_lwl4_check_crc = true;
/*
* in sys/lsm/qnet/qos.h LR is using sockaddr as addr Family:1 means mac
diff --git a/epan/dissectors/packet-qsig.c b/epan/dissectors/packet-qsig.c
index 9d72411d0f..5ff0284fb4 100644
--- a/epan/dissectors/packet-qsig.c
+++ b/epan/dissectors/packet-qsig.c
@@ -1577,441 +1577,441 @@ static gint ett_qsig_unknown_extension;
/* --- Modules Manufacturer-specific-service-extension-class-asn1-97 PSS1-generic-parameters-definition-asn1-97 Addressing-Data-Elements-asn1-97 --- --- --- */
-static gint ett_qsig_Extension;
-static gint ett_qsig_PresentedAddressScreened;
-static gint ett_qsig_PresentedAddressUnscreened;
-static gint ett_qsig_PresentedNumberScreened;
-static gint ett_qsig_PresentedNumberUnscreened;
-static gint ett_qsig_AddressScreened;
-static gint ett_qsig_NumberScreened;
-static gint ett_qsig_Address;
-static gint ett_qsig_PartyNumber;
-static gint ett_qsig_PublicPartyNumber;
-static gint ett_qsig_PrivatePartyNumber;
-static gint ett_qsig_PartySubaddress;
-static gint ett_qsig_UserSpecifiedSubaddress;
+static int ett_qsig_Extension;
+static int ett_qsig_PresentedAddressScreened;
+static int ett_qsig_PresentedAddressUnscreened;
+static int ett_qsig_PresentedNumberScreened;
+static int ett_qsig_PresentedNumberUnscreened;
+static int ett_qsig_AddressScreened;
+static int ett_qsig_NumberScreened;
+static int ett_qsig_Address;
+static int ett_qsig_PartyNumber;
+static int ett_qsig_PublicPartyNumber;
+static int ett_qsig_PrivatePartyNumber;
+static int ett_qsig_PartySubaddress;
+static int ett_qsig_UserSpecifiedSubaddress;
/* --- Module Name-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_na_NameArg;
-static gint ett_qsig_na_T_nameSequence;
-static gint ett_qsig_na_NameExtension;
-static gint ett_qsig_na_SEQUENCE_OF_Extension;
-static gint ett_qsig_na_Name;
-static gint ett_qsig_na_NamePresentationAllowed;
-static gint ett_qsig_na_NamePresentationRestricted;
-static gint ett_qsig_na_NameSet;
+static int ett_qsig_na_NameArg;
+static int ett_qsig_na_T_nameSequence;
+static int ett_qsig_na_NameExtension;
+static int ett_qsig_na_SEQUENCE_OF_Extension;
+static int ett_qsig_na_Name;
+static int ett_qsig_na_NamePresentationAllowed;
+static int ett_qsig_na_NamePresentationRestricted;
+static int ett_qsig_na_NameSet;
/* --- Module Call-Diversion-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_cf_ARG_activateDiversionQ;
-static gint ett_qsig_cf_ADExtension;
-static gint ett_qsig_cf_SEQUENCE_OF_Extension;
-static gint ett_qsig_cf_RES_activateDiversionQ;
-static gint ett_qsig_cf_ARG_deactivateDiversionQ;
-static gint ett_qsig_cf_DDExtension;
-static gint ett_qsig_cf_RES_deactivateDiversionQ;
-static gint ett_qsig_cf_ARG_interrogateDiversionQ;
-static gint ett_qsig_cf_IDExtension;
-static gint ett_qsig_cf_ARG_checkRestriction;
-static gint ett_qsig_cf_CHRExtension;
-static gint ett_qsig_cf_RES_checkRestriction;
-static gint ett_qsig_cf_ARG_callRerouteing;
-static gint ett_qsig_cf_CRRExtension;
-static gint ett_qsig_cf_RES_callRerouteing;
-static gint ett_qsig_cf_ARG_divertingLegInformation1;
-static gint ett_qsig_cf_DLI1Extension;
-static gint ett_qsig_cf_ARG_divertingLegInformation2;
-static gint ett_qsig_cf_DLI2Extension;
-static gint ett_qsig_cf_ARG_divertingLegInformation3;
-static gint ett_qsig_cf_DLI3Extension;
-static gint ett_qsig_cf_ARG_cfnrDivertedLegFailed;
-static gint ett_qsig_cf_IntResultList;
-static gint ett_qsig_cf_IntResult;
-static gint ett_qsig_cf_IRExtension;
+static int ett_qsig_cf_ARG_activateDiversionQ;
+static int ett_qsig_cf_ADExtension;
+static int ett_qsig_cf_SEQUENCE_OF_Extension;
+static int ett_qsig_cf_RES_activateDiversionQ;
+static int ett_qsig_cf_ARG_deactivateDiversionQ;
+static int ett_qsig_cf_DDExtension;
+static int ett_qsig_cf_RES_deactivateDiversionQ;
+static int ett_qsig_cf_ARG_interrogateDiversionQ;
+static int ett_qsig_cf_IDExtension;
+static int ett_qsig_cf_ARG_checkRestriction;
+static int ett_qsig_cf_CHRExtension;
+static int ett_qsig_cf_RES_checkRestriction;
+static int ett_qsig_cf_ARG_callRerouteing;
+static int ett_qsig_cf_CRRExtension;
+static int ett_qsig_cf_RES_callRerouteing;
+static int ett_qsig_cf_ARG_divertingLegInformation1;
+static int ett_qsig_cf_DLI1Extension;
+static int ett_qsig_cf_ARG_divertingLegInformation2;
+static int ett_qsig_cf_DLI2Extension;
+static int ett_qsig_cf_ARG_divertingLegInformation3;
+static int ett_qsig_cf_DLI3Extension;
+static int ett_qsig_cf_ARG_cfnrDivertedLegFailed;
+static int ett_qsig_cf_IntResultList;
+static int ett_qsig_cf_IntResult;
+static int ett_qsig_cf_IRExtension;
/* --- Module Path-Replacement-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_pr_PRProposeArg;
-static gint ett_qsig_pr_PRPExtension;
-static gint ett_qsig_pr_SEQUENCE_OF_Extension;
-static gint ett_qsig_pr_PRSetupArg;
-static gint ett_qsig_pr_PRSExtension;
-static gint ett_qsig_pr_PRRetainArg;
-static gint ett_qsig_pr_PRRExtension;
-static gint ett_qsig_pr_DummyResult;
-static gint ett_qsig_pr_DummyArg;
+static int ett_qsig_pr_PRProposeArg;
+static int ett_qsig_pr_PRPExtension;
+static int ett_qsig_pr_SEQUENCE_OF_Extension;
+static int ett_qsig_pr_PRSetupArg;
+static int ett_qsig_pr_PRSExtension;
+static int ett_qsig_pr_PRRetainArg;
+static int ett_qsig_pr_PRRExtension;
+static int ett_qsig_pr_DummyResult;
+static int ett_qsig_pr_DummyArg;
/* --- Module Call-Transfer-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_ct_DummyArg;
-static gint ett_qsig_ct_SEQUENCE_OF_Extension;
-static gint ett_qsig_ct_DummyRes;
-static gint ett_qsig_ct_CTIdentifyRes;
-static gint ett_qsig_ct_T_resultExtension;
-static gint ett_qsig_ct_CTInitiateArg;
-static gint ett_qsig_ct_CTIargumentExtension;
-static gint ett_qsig_ct_CTSetupArg;
-static gint ett_qsig_ct_CTSargumentExtension;
-static gint ett_qsig_ct_CTActiveArg;
-static gint ett_qsig_ct_CTAargumentExtension;
-static gint ett_qsig_ct_CTCompleteArg;
-static gint ett_qsig_ct_CTCargumentExtension;
-static gint ett_qsig_ct_CTUpdateArg;
-static gint ett_qsig_ct_CTUargumentExtension;
-static gint ett_qsig_ct_SubaddressTransferArg;
-static gint ett_qsig_ct_STargumentExtension;
+static int ett_qsig_ct_DummyArg;
+static int ett_qsig_ct_SEQUENCE_OF_Extension;
+static int ett_qsig_ct_DummyRes;
+static int ett_qsig_ct_CTIdentifyRes;
+static int ett_qsig_ct_T_resultExtension;
+static int ett_qsig_ct_CTInitiateArg;
+static int ett_qsig_ct_CTIargumentExtension;
+static int ett_qsig_ct_CTSetupArg;
+static int ett_qsig_ct_CTSargumentExtension;
+static int ett_qsig_ct_CTActiveArg;
+static int ett_qsig_ct_CTAargumentExtension;
+static int ett_qsig_ct_CTCompleteArg;
+static int ett_qsig_ct_CTCargumentExtension;
+static int ett_qsig_ct_CTUpdateArg;
+static int ett_qsig_ct_CTUargumentExtension;
+static int ett_qsig_ct_SubaddressTransferArg;
+static int ett_qsig_ct_STargumentExtension;
/* --- Module SS-CC-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_cc_CcRequestArg;
-static gint ett_qsig_cc_CcRequestRes;
-static gint ett_qsig_cc_CcOptionalArg;
-static gint ett_qsig_cc_T_fullArg;
-static gint ett_qsig_cc_CcExtension;
-static gint ett_qsig_cc_SEQUENCE_OF_Extension;
+static int ett_qsig_cc_CcRequestArg;
+static int ett_qsig_cc_CcRequestRes;
+static int ett_qsig_cc_CcOptionalArg;
+static int ett_qsig_cc_T_fullArg;
+static int ett_qsig_cc_CcExtension;
+static int ett_qsig_cc_SEQUENCE_OF_Extension;
/* --- Module Call-Offer-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_co_PathRetainArg;
-static gint ett_qsig_co_T_extendedServiceList;
-static gint ett_qsig_co_ServiceAvailableArg;
-static gint ett_qsig_co_T_extendedServiceList_01;
-static gint ett_qsig_co_ServiceList;
-static gint ett_qsig_co_DummyArg;
-static gint ett_qsig_co_SEQUENCE_OF_Extension;
-static gint ett_qsig_co_DummyRes;
+static int ett_qsig_co_PathRetainArg;
+static int ett_qsig_co_T_extendedServiceList;
+static int ett_qsig_co_ServiceAvailableArg;
+static int ett_qsig_co_T_extendedServiceList_01;
+static int ett_qsig_co_ServiceList;
+static int ett_qsig_co_DummyArg;
+static int ett_qsig_co_SEQUENCE_OF_Extension;
+static int ett_qsig_co_DummyRes;
/* --- Module Do-Not-Disturb-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_dnd_DummyArg;
-static gint ett_qsig_dnd_SEQUENCE_OF_Extension;
-static gint ett_qsig_dnd_DummyRes;
-static gint ett_qsig_dnd_DNDActivateArg;
-static gint ett_qsig_dnd_DNDAargumentExtension;
-static gint ett_qsig_dnd_DNDActivateRes;
-static gint ett_qsig_dnd_T_status;
-static gint ett_qsig_dnd_T_status_item;
-static gint ett_qsig_dnd_T_resultExtension;
-static gint ett_qsig_dnd_DNDDeactivateArg;
-static gint ett_qsig_dnd_DNDDargumentExtension;
-static gint ett_qsig_dnd_DNDInterrogateArg;
-static gint ett_qsig_dnd_DNDIargumentExtension;
-static gint ett_qsig_dnd_DNDInterrogateRes;
-static gint ett_qsig_dnd_T_status_01;
-static gint ett_qsig_dnd_T_status_item_01;
-static gint ett_qsig_dnd_T_resultExtension_01;
-static gint ett_qsig_dnd_DNDOverrideArg;
-static gint ett_qsig_dnd_DNDOargumentExtension;
-static gint ett_qsig_dnd_PathRetainArg;
-static gint ett_qsig_dnd_T_extendedServiceList;
-static gint ett_qsig_dnd_ServiceAvailableArg;
-static gint ett_qsig_dnd_T_extendedServiceList_01;
-static gint ett_qsig_dnd_ServiceList;
+static int ett_qsig_dnd_DummyArg;
+static int ett_qsig_dnd_SEQUENCE_OF_Extension;
+static int ett_qsig_dnd_DummyRes;
+static int ett_qsig_dnd_DNDActivateArg;
+static int ett_qsig_dnd_DNDAargumentExtension;
+static int ett_qsig_dnd_DNDActivateRes;
+static int ett_qsig_dnd_T_status;
+static int ett_qsig_dnd_T_status_item;
+static int ett_qsig_dnd_T_resultExtension;
+static int ett_qsig_dnd_DNDDeactivateArg;
+static int ett_qsig_dnd_DNDDargumentExtension;
+static int ett_qsig_dnd_DNDInterrogateArg;
+static int ett_qsig_dnd_DNDIargumentExtension;
+static int ett_qsig_dnd_DNDInterrogateRes;
+static int ett_qsig_dnd_T_status_01;
+static int ett_qsig_dnd_T_status_item_01;
+static int ett_qsig_dnd_T_resultExtension_01;
+static int ett_qsig_dnd_DNDOverrideArg;
+static int ett_qsig_dnd_DNDOargumentExtension;
+static int ett_qsig_dnd_PathRetainArg;
+static int ett_qsig_dnd_T_extendedServiceList;
+static int ett_qsig_dnd_ServiceAvailableArg;
+static int ett_qsig_dnd_T_extendedServiceList_01;
+static int ett_qsig_dnd_ServiceList;
/* --- Module Call-Intrusion-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_ci_PathRetainArg;
-static gint ett_qsig_ci_T_extendedServiceList;
-static gint ett_qsig_ci_ServiceAvailableArg;
-static gint ett_qsig_ci_T_extendedServiceList_01;
-static gint ett_qsig_ci_ServiceList;
-static gint ett_qsig_ci_DummyArg;
-static gint ett_qsig_ci_SEQUENCE_OF_Extension;
-static gint ett_qsig_ci_DummyRes;
-static gint ett_qsig_ci_CIRequestArg;
-static gint ett_qsig_ci_T_argumentExtension;
-static gint ett_qsig_ci_CIRequestRes;
-static gint ett_qsig_ci_T_resultExtension;
-static gint ett_qsig_ci_CIGetCIPLRes;
-static gint ett_qsig_ci_T_resultExtension_01;
+static int ett_qsig_ci_PathRetainArg;
+static int ett_qsig_ci_T_extendedServiceList;
+static int ett_qsig_ci_ServiceAvailableArg;
+static int ett_qsig_ci_T_extendedServiceList_01;
+static int ett_qsig_ci_ServiceList;
+static int ett_qsig_ci_DummyArg;
+static int ett_qsig_ci_SEQUENCE_OF_Extension;
+static int ett_qsig_ci_DummyRes;
+static int ett_qsig_ci_CIRequestArg;
+static int ett_qsig_ci_T_argumentExtension;
+static int ett_qsig_ci_CIRequestRes;
+static int ett_qsig_ci_T_resultExtension;
+static int ett_qsig_ci_CIGetCIPLRes;
+static int ett_qsig_ci_T_resultExtension_01;
/* --- Module SS-AOC-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_aoc_AocRateArg;
-static gint ett_qsig_aoc_T_aocRate;
-static gint ett_qsig_aoc_T_rateArgExtension;
-static gint ett_qsig_aoc_SEQUENCE_OF_Extension;
-static gint ett_qsig_aoc_AocInterimArg;
-static gint ett_qsig_aoc_T_interimCharge;
-static gint ett_qsig_aoc_T_specificCurrency;
-static gint ett_qsig_aoc_T_interimArgExtension;
-static gint ett_qsig_aoc_AocFinalArg;
-static gint ett_qsig_aoc_T_finalCharge;
-static gint ett_qsig_aoc_T_specificCurrency_01;
-static gint ett_qsig_aoc_T_finalArgExtension;
-static gint ett_qsig_aoc_AOCSCurrencyInfoList;
-static gint ett_qsig_aoc_AOCSCurrencyInfo;
-static gint ett_qsig_aoc_T_rateType;
-static gint ett_qsig_aoc_DurationCurrency;
-static gint ett_qsig_aoc_FlatRateCurrency;
-static gint ett_qsig_aoc_VolumeRateCurrency;
-static gint ett_qsig_aoc_RecordedCurrency;
-static gint ett_qsig_aoc_Amount;
-static gint ett_qsig_aoc_Time;
-static gint ett_qsig_aoc_ChargingAssociation;
-static gint ett_qsig_aoc_ChargeRequestArg;
-static gint ett_qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination;
-static gint ett_qsig_aoc_T_chargeReqArgExtension;
-static gint ett_qsig_aoc_ChargeRequestRes;
-static gint ett_qsig_aoc_T_chargeReqResExtension;
-static gint ett_qsig_aoc_DummyArg;
-static gint ett_qsig_aoc_AocCompleteArg;
-static gint ett_qsig_aoc_T_completeArgExtension;
-static gint ett_qsig_aoc_AocCompleteRes;
-static gint ett_qsig_aoc_T_completeResExtension;
-static gint ett_qsig_aoc_AocDivChargeReqArg;
-static gint ett_qsig_aoc_T_aocDivChargeReqArgExt;
+static int ett_qsig_aoc_AocRateArg;
+static int ett_qsig_aoc_T_aocRate;
+static int ett_qsig_aoc_T_rateArgExtension;
+static int ett_qsig_aoc_SEQUENCE_OF_Extension;
+static int ett_qsig_aoc_AocInterimArg;
+static int ett_qsig_aoc_T_interimCharge;
+static int ett_qsig_aoc_T_specificCurrency;
+static int ett_qsig_aoc_T_interimArgExtension;
+static int ett_qsig_aoc_AocFinalArg;
+static int ett_qsig_aoc_T_finalCharge;
+static int ett_qsig_aoc_T_specificCurrency_01;
+static int ett_qsig_aoc_T_finalArgExtension;
+static int ett_qsig_aoc_AOCSCurrencyInfoList;
+static int ett_qsig_aoc_AOCSCurrencyInfo;
+static int ett_qsig_aoc_T_rateType;
+static int ett_qsig_aoc_DurationCurrency;
+static int ett_qsig_aoc_FlatRateCurrency;
+static int ett_qsig_aoc_VolumeRateCurrency;
+static int ett_qsig_aoc_RecordedCurrency;
+static int ett_qsig_aoc_Amount;
+static int ett_qsig_aoc_Time;
+static int ett_qsig_aoc_ChargingAssociation;
+static int ett_qsig_aoc_ChargeRequestArg;
+static int ett_qsig_aoc_SEQUENCE_SIZE_0_7_OF_AdviceModeCombination;
+static int ett_qsig_aoc_T_chargeReqArgExtension;
+static int ett_qsig_aoc_ChargeRequestRes;
+static int ett_qsig_aoc_T_chargeReqResExtension;
+static int ett_qsig_aoc_DummyArg;
+static int ett_qsig_aoc_AocCompleteArg;
+static int ett_qsig_aoc_T_completeArgExtension;
+static int ett_qsig_aoc_AocCompleteRes;
+static int ett_qsig_aoc_T_completeResExtension;
+static int ett_qsig_aoc_AocDivChargeReqArg;
+static int ett_qsig_aoc_T_aocDivChargeReqArgExt;
/* --- Module Recall-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_re_ReAlertingArg;
-static gint ett_qsig_re_T_argumentExtension;
-static gint ett_qsig_re_SEQUENCE_OF_Extension;
-static gint ett_qsig_re_ReAnswerArg;
-static gint ett_qsig_re_T_argumentExtension_01;
+static int ett_qsig_re_ReAlertingArg;
+static int ett_qsig_re_T_argumentExtension;
+static int ett_qsig_re_SEQUENCE_OF_Extension;
+static int ett_qsig_re_ReAnswerArg;
+static int ett_qsig_re_T_argumentExtension_01;
/* --- Module Synchronization-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_sync_SynchronizationReqArg;
-static gint ett_qsig_sync_SynchronizationReqRes;
-static gint ett_qsig_sync_SynchronizationInfoArg;
-static gint ett_qsig_sync_ArgExtension;
-static gint ett_qsig_sync_SEQUENCE_OF_Extension;
+static int ett_qsig_sync_SynchronizationReqArg;
+static int ett_qsig_sync_SynchronizationReqRes;
+static int ett_qsig_sync_SynchronizationInfoArg;
+static int ett_qsig_sync_ArgExtension;
+static int ett_qsig_sync_SEQUENCE_OF_Extension;
/* --- Module Call-Interception-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_cint_CintInformation1Arg;
-static gint ett_qsig_cint_CintInformation2Arg;
-static gint ett_qsig_cint_CintCondArg;
-static gint ett_qsig_cint_CintExtension;
-static gint ett_qsig_cint_SEQUENCE_OF_Extension;
+static int ett_qsig_cint_CintInformation1Arg;
+static int ett_qsig_cint_CintInformation2Arg;
+static int ett_qsig_cint_CintCondArg;
+static int ett_qsig_cint_CintExtension;
+static int ett_qsig_cint_SEQUENCE_OF_Extension;
/* --- Module Common-Information-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_cmn_CmnArg;
-static gint ett_qsig_cmn_T_extension;
-static gint ett_qsig_cmn_SEQUENCE_OF_Extension;
-static gint ett_qsig_cmn_DummyArg;
-static gint ett_qsig_cmn_FeatureIdList;
-static gint ett_qsig_cmn_EquipmentId;
+static int ett_qsig_cmn_CmnArg;
+static int ett_qsig_cmn_T_extension;
+static int ett_qsig_cmn_SEQUENCE_OF_Extension;
+static int ett_qsig_cmn_DummyArg;
+static int ett_qsig_cmn_FeatureIdList;
+static int ett_qsig_cmn_EquipmentId;
/* --- Module Call-Interruption-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_cpi_CPIRequestArg;
-static gint ett_qsig_cpi_T_argumentExtension;
-static gint ett_qsig_cpi_SEQUENCE_OF_Extension;
-static gint ett_qsig_cpi_CPIPRequestArg;
-static gint ett_qsig_cpi_T_argumentExtension_01;
+static int ett_qsig_cpi_CPIRequestArg;
+static int ett_qsig_cpi_T_argumentExtension;
+static int ett_qsig_cpi_SEQUENCE_OF_Extension;
+static int ett_qsig_cpi_CPIPRequestArg;
+static int ett_qsig_cpi_T_argumentExtension_01;
/* --- Module PUM-Registration-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_pumr_PumRegistrArg;
-static gint ett_qsig_pumr_RpumUserId;
-static gint ett_qsig_pumr_T_userPin;
-static gint ett_qsig_pumr_PumRegistrRes;
-static gint ett_qsig_pumr_DummyRes;
-static gint ett_qsig_pumr_SEQUENCE_OF_Extension;
-static gint ett_qsig_pumr_PumDelRegArg;
-static gint ett_qsig_pumr_XpumUserId;
-static gint ett_qsig_pumr_PumDe_regArg;
-static gint ett_qsig_pumr_DpumUserId;
-static gint ett_qsig_pumr_T_userPin_01;
-static gint ett_qsig_pumr_PumInterrogArg;
-static gint ett_qsig_pumr_IpumUserId;
-static gint ett_qsig_pumr_T_userPin_02;
-static gint ett_qsig_pumr_PumInterrogRes;
-static gint ett_qsig_pumr_PumInterrogRes_item;
-static gint ett_qsig_pumr_SessionParams;
-static gint ett_qsig_pumr_PumrExtension;
+static int ett_qsig_pumr_PumRegistrArg;
+static int ett_qsig_pumr_RpumUserId;
+static int ett_qsig_pumr_T_userPin;
+static int ett_qsig_pumr_PumRegistrRes;
+static int ett_qsig_pumr_DummyRes;
+static int ett_qsig_pumr_SEQUENCE_OF_Extension;
+static int ett_qsig_pumr_PumDelRegArg;
+static int ett_qsig_pumr_XpumUserId;
+static int ett_qsig_pumr_PumDe_regArg;
+static int ett_qsig_pumr_DpumUserId;
+static int ett_qsig_pumr_T_userPin_01;
+static int ett_qsig_pumr_PumInterrogArg;
+static int ett_qsig_pumr_IpumUserId;
+static int ett_qsig_pumr_T_userPin_02;
+static int ett_qsig_pumr_PumInterrogRes;
+static int ett_qsig_pumr_PumInterrogRes_item;
+static int ett_qsig_pumr_SessionParams;
+static int ett_qsig_pumr_PumrExtension;
/* --- Module Private-User-Mobility-Call-Handling-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_pumch_EnquiryArg;
-static gint ett_qsig_pumch_DivertArg;
-static gint ett_qsig_pumch_InformArg;
-static gint ett_qsig_pumch_EnquiryRes;
-static gint ett_qsig_pumch_CurrLocation;
-static gint ett_qsig_pumch_CfuActivated;
-static gint ett_qsig_pumch_DummyRes;
-static gint ett_qsig_pumch_SEQUENCE_OF_Extension;
-static gint ett_qsig_pumch_PumiExtension;
-static gint ett_qsig_pumch_PumIdentity;
-static gint ett_qsig_pumch_T_both;
-static gint ett_qsig_pumch_PumoArg;
-static gint ett_qsig_pumch_T_pumoaextension;
+static int ett_qsig_pumch_EnquiryArg;
+static int ett_qsig_pumch_DivertArg;
+static int ett_qsig_pumch_InformArg;
+static int ett_qsig_pumch_EnquiryRes;
+static int ett_qsig_pumch_CurrLocation;
+static int ett_qsig_pumch_CfuActivated;
+static int ett_qsig_pumch_DummyRes;
+static int ett_qsig_pumch_SEQUENCE_OF_Extension;
+static int ett_qsig_pumch_PumiExtension;
+static int ett_qsig_pumch_PumIdentity;
+static int ett_qsig_pumch_T_both;
+static int ett_qsig_pumch_PumoArg;
+static int ett_qsig_pumch_T_pumoaextension;
/* --- Module Single-Step-Call-Transfer-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_ssct_DummyArg;
-static gint ett_qsig_ssct_SEQUENCE_OF_Extension;
-static gint ett_qsig_ssct_DummyRes;
-static gint ett_qsig_ssct_SSCTInitiateArg;
-static gint ett_qsig_ssct_SSCTIargumentExtension;
-static gint ett_qsig_ssct_SSCTSetupArg;
-static gint ett_qsig_ssct_SSCTSargumentExtension;
-static gint ett_qsig_ssct_SSCTDigitInfoArg;
-static gint ett_qsig_ssct_SSCTDargumentExtension;
+static int ett_qsig_ssct_DummyArg;
+static int ett_qsig_ssct_SEQUENCE_OF_Extension;
+static int ett_qsig_ssct_DummyRes;
+static int ett_qsig_ssct_SSCTInitiateArg;
+static int ett_qsig_ssct_SSCTIargumentExtension;
+static int ett_qsig_ssct_SSCTSetupArg;
+static int ett_qsig_ssct_SSCTSargumentExtension;
+static int ett_qsig_ssct_SSCTDigitInfoArg;
+static int ett_qsig_ssct_SSCTDargumentExtension;
/* --- Module WTM-Location-Registration-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_wtmlr_LocUpdArg;
-static gint ett_qsig_wtmlr_DummyRes;
-static gint ett_qsig_wtmlr_SEQUENCE_OF_Extension;
-static gint ett_qsig_wtmlr_LocDelArg;
-static gint ett_qsig_wtmlr_LocDeRegArg;
-static gint ett_qsig_wtmlr_PisnEnqArg;
-static gint ett_qsig_wtmlr_PisnEnqRes;
-static gint ett_qsig_wtmlr_GetRRCInfArg;
-static gint ett_qsig_wtmlr_GetRRCInfRes;
-static gint ett_qsig_wtmlr_LocInfoCheckArg;
-static gint ett_qsig_wtmlr_LocInfoCheckRes;
-static gint ett_qsig_wtmlr_WtmUserId;
-static gint ett_qsig_wtmlr_LrExtension;
+static int ett_qsig_wtmlr_LocUpdArg;
+static int ett_qsig_wtmlr_DummyRes;
+static int ett_qsig_wtmlr_SEQUENCE_OF_Extension;
+static int ett_qsig_wtmlr_LocDelArg;
+static int ett_qsig_wtmlr_LocDeRegArg;
+static int ett_qsig_wtmlr_PisnEnqArg;
+static int ett_qsig_wtmlr_PisnEnqRes;
+static int ett_qsig_wtmlr_GetRRCInfArg;
+static int ett_qsig_wtmlr_GetRRCInfRes;
+static int ett_qsig_wtmlr_LocInfoCheckArg;
+static int ett_qsig_wtmlr_LocInfoCheckRes;
+static int ett_qsig_wtmlr_WtmUserId;
+static int ett_qsig_wtmlr_LrExtension;
/* --- Module Wireless-Terminal-Call-Handling-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_wtmch_EnquiryArg;
-static gint ett_qsig_wtmch_DivertArg;
-static gint ett_qsig_wtmch_InformArg;
-static gint ett_qsig_wtmch_EnquiryRes;
-static gint ett_qsig_wtmch_CurrLocation;
-static gint ett_qsig_wtmch_CfuActivated;
-static gint ett_qsig_wtmch_DummyRes;
-static gint ett_qsig_wtmch_SEQUENCE_OF_Extension;
-static gint ett_qsig_wtmch_WtmiExtension;
-static gint ett_qsig_wtmch_WtmIdentity;
-static gint ett_qsig_wtmch_T_both;
-static gint ett_qsig_wtmch_WtmoArg;
-static gint ett_qsig_wtmch_T_wtmoaextension;
+static int ett_qsig_wtmch_EnquiryArg;
+static int ett_qsig_wtmch_DivertArg;
+static int ett_qsig_wtmch_InformArg;
+static int ett_qsig_wtmch_EnquiryRes;
+static int ett_qsig_wtmch_CurrLocation;
+static int ett_qsig_wtmch_CfuActivated;
+static int ett_qsig_wtmch_DummyRes;
+static int ett_qsig_wtmch_SEQUENCE_OF_Extension;
+static int ett_qsig_wtmch_WtmiExtension;
+static int ett_qsig_wtmch_WtmIdentity;
+static int ett_qsig_wtmch_T_both;
+static int ett_qsig_wtmch_WtmoArg;
+static int ett_qsig_wtmch_T_wtmoaextension;
/* --- Module WTM-Authentication-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_wtmau_AuthWtmArg;
-static gint ett_qsig_wtmau_AuthWtmRes;
-static gint ett_qsig_wtmau_WtatParamArg;
-static gint ett_qsig_wtmau_WtatParamRes;
-static gint ett_qsig_wtmau_WtanParamArg;
-static gint ett_qsig_wtmau_WtmUserId;
-static gint ett_qsig_wtmau_WtanParamRes;
-static gint ett_qsig_wtmau_ARG_transferAuthParam;
-static gint ett_qsig_wtmau_WtatParamInfo;
-static gint ett_qsig_wtmau_T_wtatParamInfoChoice;
-static gint ett_qsig_wtmau_WtanParamInfo;
-static gint ett_qsig_wtmau_AuthSessionKeyInfo;
-static gint ett_qsig_wtmau_CalcWtatInfo;
-static gint ett_qsig_wtmau_CalcWtatInfoUnit;
-static gint ett_qsig_wtmau_CalcWtanInfo;
-static gint ett_qsig_wtmau_DummyExtension;
-static gint ett_qsig_wtmau_SEQUENCE_OF_Extension;
-static gint ett_qsig_wtmau_AuthAlgorithm;
+static int ett_qsig_wtmau_AuthWtmArg;
+static int ett_qsig_wtmau_AuthWtmRes;
+static int ett_qsig_wtmau_WtatParamArg;
+static int ett_qsig_wtmau_WtatParamRes;
+static int ett_qsig_wtmau_WtanParamArg;
+static int ett_qsig_wtmau_WtmUserId;
+static int ett_qsig_wtmau_WtanParamRes;
+static int ett_qsig_wtmau_ARG_transferAuthParam;
+static int ett_qsig_wtmau_WtatParamInfo;
+static int ett_qsig_wtmau_T_wtatParamInfoChoice;
+static int ett_qsig_wtmau_WtanParamInfo;
+static int ett_qsig_wtmau_AuthSessionKeyInfo;
+static int ett_qsig_wtmau_CalcWtatInfo;
+static int ett_qsig_wtmau_CalcWtatInfoUnit;
+static int ett_qsig_wtmau_CalcWtanInfo;
+static int ett_qsig_wtmau_DummyExtension;
+static int ett_qsig_wtmau_SEQUENCE_OF_Extension;
+static int ett_qsig_wtmau_AuthAlgorithm;
/* --- Module SS-SD-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_sd_DisplayArg;
-static gint ett_qsig_sd_DisplayString;
-static gint ett_qsig_sd_KeypadArg;
-static gint ett_qsig_sd_SDExtension;
-static gint ett_qsig_sd_SEQUENCE_OF_Extension;
+static int ett_qsig_sd_DisplayArg;
+static int ett_qsig_sd_DisplayString;
+static int ett_qsig_sd_KeypadArg;
+static int ett_qsig_sd_SDExtension;
+static int ett_qsig_sd_SEQUENCE_OF_Extension;
/* --- Module Call-Identification-and-Call-Linkage-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_cidl_CallIdentificationAssignArg;
-static gint ett_qsig_cidl_CallIdentificationUpdateArg;
-static gint ett_qsig_cidl_CallIdentificationData;
-static gint ett_qsig_cidl_T_linkageID;
-static gint ett_qsig_cidl_ExtensionType;
-static gint ett_qsig_cidl_SEQUENCE_OF_Extension;
+static int ett_qsig_cidl_CallIdentificationAssignArg;
+static int ett_qsig_cidl_CallIdentificationUpdateArg;
+static int ett_qsig_cidl_CallIdentificationData;
+static int ett_qsig_cidl_T_linkageID;
+static int ett_qsig_cidl_ExtensionType;
+static int ett_qsig_cidl_SEQUENCE_OF_Extension;
/* --- Module Short-Message-Service-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_sms_SmsSubmitArg;
-static gint ett_qsig_sms_SmsSubmitRes;
-static gint ett_qsig_sms_SmsDeliverArg;
-static gint ett_qsig_sms_SmsDeliverRes;
-static gint ett_qsig_sms_SmsStatusReportArg;
-static gint ett_qsig_sms_SmsStatusReportRes;
-static gint ett_qsig_sms_SmsCommandArg;
-static gint ett_qsig_sms_SmsCommandRes;
-static gint ett_qsig_sms_ScAlertArg;
-static gint ett_qsig_sms_DummyRes;
-static gint ett_qsig_sms_SmSubmitParameter;
-static gint ett_qsig_sms_SmDeliverParameter;
-static gint ett_qsig_sms_SmsDeliverResChoice;
-static gint ett_qsig_sms_ResChoiceSeq;
-static gint ett_qsig_sms_SmsStatusReportResponseChoice;
-static gint ett_qsig_sms_SmsExtension;
-static gint ett_qsig_sms_SEQUENCE_OF_Extension;
-static gint ett_qsig_sms_ValidityPeriod;
-static gint ett_qsig_sms_ValidityPeriodEnh;
-static gint ett_qsig_sms_EnhancedVP;
-static gint ett_qsig_sms_UserData;
-static gint ett_qsig_sms_ShortMessageText;
-static gint ett_qsig_sms_UserDataHeader;
-static gint ett_qsig_sms_UserDataHeaderChoice;
-static gint ett_qsig_sms_SmscControlParameterHeader;
-static gint ett_qsig_sms_Concatenated8BitSMHeader;
-static gint ett_qsig_sms_Concatenated16BitSMHeader;
-static gint ett_qsig_sms_ApplicationPort8BitHeader;
-static gint ett_qsig_sms_ApplicationPort16BitHeader;
-static gint ett_qsig_sms_GenericUserValue;
-static gint ett_qsig_sms_PAR_smsDeliverError;
-static gint ett_qsig_sms_PAR_smsSubmitError;
-static gint ett_qsig_sms_PAR_smsStatusReportError;
-static gint ett_qsig_sms_PAR_smsCommandError;
+static int ett_qsig_sms_SmsSubmitArg;
+static int ett_qsig_sms_SmsSubmitRes;
+static int ett_qsig_sms_SmsDeliverArg;
+static int ett_qsig_sms_SmsDeliverRes;
+static int ett_qsig_sms_SmsStatusReportArg;
+static int ett_qsig_sms_SmsStatusReportRes;
+static int ett_qsig_sms_SmsCommandArg;
+static int ett_qsig_sms_SmsCommandRes;
+static int ett_qsig_sms_ScAlertArg;
+static int ett_qsig_sms_DummyRes;
+static int ett_qsig_sms_SmSubmitParameter;
+static int ett_qsig_sms_SmDeliverParameter;
+static int ett_qsig_sms_SmsDeliverResChoice;
+static int ett_qsig_sms_ResChoiceSeq;
+static int ett_qsig_sms_SmsStatusReportResponseChoice;
+static int ett_qsig_sms_SmsExtension;
+static int ett_qsig_sms_SEQUENCE_OF_Extension;
+static int ett_qsig_sms_ValidityPeriod;
+static int ett_qsig_sms_ValidityPeriodEnh;
+static int ett_qsig_sms_EnhancedVP;
+static int ett_qsig_sms_UserData;
+static int ett_qsig_sms_ShortMessageText;
+static int ett_qsig_sms_UserDataHeader;
+static int ett_qsig_sms_UserDataHeaderChoice;
+static int ett_qsig_sms_SmscControlParameterHeader;
+static int ett_qsig_sms_Concatenated8BitSMHeader;
+static int ett_qsig_sms_Concatenated16BitSMHeader;
+static int ett_qsig_sms_ApplicationPort8BitHeader;
+static int ett_qsig_sms_ApplicationPort16BitHeader;
+static int ett_qsig_sms_GenericUserValue;
+static int ett_qsig_sms_PAR_smsDeliverError;
+static int ett_qsig_sms_PAR_smsSubmitError;
+static int ett_qsig_sms_PAR_smsStatusReportError;
+static int ett_qsig_sms_PAR_smsCommandError;
/* --- Module SS-MCR-Operations-asn97 --- --- --- */
-static gint ett_qsig_mcr_MCRequestArg;
-static gint ett_qsig_mcr_MCRequestResult;
-static gint ett_qsig_mcr_MCInformArg;
-static gint ett_qsig_mcr_MCAlertingArg;
-static gint ett_qsig_mcr_CallType;
-static gint ett_qsig_mcr_Correlation;
-static gint ett_qsig_mcr_MCRExtensions;
-static gint ett_qsig_mcr_SEQUENCE_OF_Extension;
+static int ett_qsig_mcr_MCRequestArg;
+static int ett_qsig_mcr_MCRequestResult;
+static int ett_qsig_mcr_MCInformArg;
+static int ett_qsig_mcr_MCAlertingArg;
+static int ett_qsig_mcr_CallType;
+static int ett_qsig_mcr_Correlation;
+static int ett_qsig_mcr_MCRExtensions;
+static int ett_qsig_mcr_SEQUENCE_OF_Extension;
/* --- Module SS-MCM-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_mcm_MCMailboxFullArg;
-static gint ett_qsig_mcm_MailboxFullFor;
-static gint ett_qsig_mcm_MailboxFullPar;
-static gint ett_qsig_mcm_MCMServiceArg;
-static gint ett_qsig_mcm_MCMChange;
-static gint ett_qsig_mcm_SEQUENCE_OF_MCMServiceInfo;
-static gint ett_qsig_mcm_SEQUENCE_OF_MessageType;
-static gint ett_qsig_mcm_MCMServiceInfo;
-static gint ett_qsig_mcm_MCMInterrogateArg;
-static gint ett_qsig_mcm_MCMInterrogateRes;
-static gint ett_qsig_mcm_MCMNewMsgArg;
-static gint ett_qsig_mcm_MCMNewArgumentExt;
-static gint ett_qsig_mcm_SEQUENCE_OF_Extension;
-static gint ett_qsig_mcm_MCMNoNewMsgArg;
-static gint ett_qsig_mcm_MCMNoNewArgumentExt;
-static gint ett_qsig_mcm_MCMUpdateArg;
-static gint ett_qsig_mcm_MCMUpdateReqArg;
-static gint ett_qsig_mcm_MCMUpdArgArgumentExt;
-static gint ett_qsig_mcm_MCMUpdateReqRes;
-static gint ett_qsig_mcm_MCMUpdateReqResElt;
-static gint ett_qsig_mcm_MCMUpdResArgumentExt;
-static gint ett_qsig_mcm_PartyInfo;
-static gint ett_qsig_mcm_UpdateInfo;
-static gint ett_qsig_mcm_AllMsgInfo;
-static gint ett_qsig_mcm_MessageInfo;
-static gint ett_qsig_mcm_CompleteInfo;
-static gint ett_qsig_mcm_AddressHeader;
-static gint ett_qsig_mcm_CompressedInfo;
-static gint ett_qsig_mcm_MsgCentreId;
-static gint ett_qsig_mcm_MCMExtensions;
+static int ett_qsig_mcm_MCMailboxFullArg;
+static int ett_qsig_mcm_MailboxFullFor;
+static int ett_qsig_mcm_MailboxFullPar;
+static int ett_qsig_mcm_MCMServiceArg;
+static int ett_qsig_mcm_MCMChange;
+static int ett_qsig_mcm_SEQUENCE_OF_MCMServiceInfo;
+static int ett_qsig_mcm_SEQUENCE_OF_MessageType;
+static int ett_qsig_mcm_MCMServiceInfo;
+static int ett_qsig_mcm_MCMInterrogateArg;
+static int ett_qsig_mcm_MCMInterrogateRes;
+static int ett_qsig_mcm_MCMNewMsgArg;
+static int ett_qsig_mcm_MCMNewArgumentExt;
+static int ett_qsig_mcm_SEQUENCE_OF_Extension;
+static int ett_qsig_mcm_MCMNoNewMsgArg;
+static int ett_qsig_mcm_MCMNoNewArgumentExt;
+static int ett_qsig_mcm_MCMUpdateArg;
+static int ett_qsig_mcm_MCMUpdateReqArg;
+static int ett_qsig_mcm_MCMUpdArgArgumentExt;
+static int ett_qsig_mcm_MCMUpdateReqRes;
+static int ett_qsig_mcm_MCMUpdateReqResElt;
+static int ett_qsig_mcm_MCMUpdResArgumentExt;
+static int ett_qsig_mcm_PartyInfo;
+static int ett_qsig_mcm_UpdateInfo;
+static int ett_qsig_mcm_AllMsgInfo;
+static int ett_qsig_mcm_MessageInfo;
+static int ett_qsig_mcm_CompleteInfo;
+static int ett_qsig_mcm_AddressHeader;
+static int ett_qsig_mcm_CompressedInfo;
+static int ett_qsig_mcm_MsgCentreId;
+static int ett_qsig_mcm_MCMExtensions;
/* --- Module SS-MID-Operations-asn1-97 --- --- --- */
-static gint ett_qsig_mid_MIDMailboxAuthArg;
-static gint ett_qsig_mid_MIDMailboxIDArg;
-static gint ett_qsig_mid_PartyInfo;
-static gint ett_qsig_mid_String;
-static gint ett_qsig_mid_MIDExtensions;
-static gint ett_qsig_mid_SEQUENCE_OF_Extension;
+static int ett_qsig_mid_MIDMailboxAuthArg;
+static int ett_qsig_mid_MIDMailboxIDArg;
+static int ett_qsig_mid_PartyInfo;
+static int ett_qsig_mid_String;
+static int ett_qsig_mid_MIDExtensions;
+static int ett_qsig_mid_SEQUENCE_OF_Extension;
static gint ett_cnq_PSS1InformationElement;
/* static expert_field ei_qsig_unsupported_arg_type; */
@@ -2021,10 +2021,10 @@ static expert_field ei_qsig_unsupported_error_type;
/* Preferences */
/* Subdissectors */
-static dissector_handle_t q931_ie_handle = NULL;
+static dissector_handle_t q931_ie_handle;
/* Global variables */
-static const char *extension_oid = NULL;
+static const char *extension_oid;
/* Dissector tables */
static dissector_table_t extension_dissector_table;
@@ -12577,7 +12577,7 @@ void proto_register_qsig(void) {
FT_UINT16, BASE_DEC, VALS(qsig_str_service), 0x0,
"Supplementary Service", HFILL }},
{ &hf_qsig_error, { "Error", "qsig.error",
- FT_UINT8, BASE_DEC, VALS(qsig_str_error), 0x0,
+ FT_UINT16, BASE_DEC, VALS(qsig_str_error), 0x0,
NULL, HFILL }},
{ &hf_qsig_ie_type, { "Type", "qsig.ie.type",
FT_UINT8, BASE_HEX, NULL, 0x0,
diff --git a/epan/dissectors/packet-quake2.c b/epan/dissectors/packet-quake2.c
index 29bd93fec0..f07e583b2a 100644
--- a/epan/dissectors/packet-quake2.c
+++ b/epan/dissectors/packet-quake2.c
@@ -71,7 +71,7 @@ static gint ett_quake2_game_clc_cmd_move_moves;
#define PORT_MASTER 27910 /* Not IANA registered */
-static range_t *gbl_quake2ServerPorts = NULL;
+static range_t *gbl_quake2ServerPorts;
static void
diff --git a/epan/dissectors/packet-quakeworld.c b/epan/dissectors/packet-quakeworld.c
index c433515f38..27bae41480 100644
--- a/epan/dissectors/packet-quakeworld.c
+++ b/epan/dissectors/packet-quakeworld.c
@@ -143,7 +143,7 @@ skipwhite:
#define MAX_ARGS 80
-static int cmd_argc = 0;
+static int cmd_argc;
static const char *cmd_argv[MAX_ARGS];
static const char *cmd_null_string = "";
static int cmd_argv_start[MAX_ARGS];
@@ -312,7 +312,7 @@ static const value_string names_direction[] = {
/* I took this name and value directly out of the QW source. */
#define PORT_MASTER 27500 /* Not IANA registered */
-static range_t *gbl_quakeworldServerPorts = NULL;
+static range_t *gbl_quakeworldServerPorts;
/* out of band message id bytes (taken out of quakeworldsource/client/protocol.h */
diff --git a/epan/dissectors/packet-quic.c b/epan/dissectors/packet-quic.c
index dc1c3ccf3a..3d7d7060a6 100644
--- a/epan/dissectors/packet-quic.c
+++ b/epan/dissectors/packet-quic.c
@@ -23,7 +23,6 @@
* https://tools.ietf.org/html/draft-ferrieuxhamchaoui-quic-lossbits-03
* https://tools.ietf.org/html/draft-huitema-quic-ts-02
* https://tools.ietf.org/html/draft-ietf-quic-ack-frequency-07 (and also draft-04/05)
- * https://tools.ietf.org/html/draft-deconinck-quic-multipath-06
* https://tools.ietf.org/html/draft-banks-quic-cibir-01
* https://tools.ietf.org/html/draft-ietf-quic-multipath-05 (and also draft-04)
@@ -188,24 +187,6 @@ static int hf_quic_crypto_fragments;
static int hf_quic_crypto_fragment;
static int hf_quic_crypto_fragment_count;
-static int hf_quic_mp_add_address_first_byte;
-static int hf_quic_mp_add_address_reserved;
-static int hf_quic_mp_add_address_port_present;
-static int hf_quic_mp_add_address_ip_version;
-static int hf_quic_mp_add_address_id;
-static int hf_quic_mp_add_address_sq_number;
-static int hf_quic_mp_add_address_interface_type;
-static int hf_quic_mp_add_address_ip_address;
-static int hf_quic_mp_add_address_ip_address_v6;
-static int hf_quic_mp_add_address_port;
-static int hf_quic_mp_uniflow_id;
-static int hf_quic_mp_receiving_uniflows;
-static int hf_quic_mp_active_sending_uniflows;
-static int hf_quic_mp_add_local_address_id;
-static int hf_quic_mp_uniflow_info_section;
-static int hf_quic_mp_receiving_uniflow_info_section;
-static int hf_quic_mp_active_sending_uniflows_info_section;
-
/* multipath*/
static int hf_quic_mp_nci_path_identifier;
static int hf_quic_mp_rc_path_identifier;
@@ -695,13 +676,6 @@ static const value_string quic_v2_long_packet_type_vals[] = {
#define FT_CONNECTION_CLOSE_APP 0x1d
#define FT_HANDSHAKE_DONE 0x1e
#define FT_DATAGRAM 0x30
-#define FT_MP_NEW_CONNECTION_ID_OLD 0x40
-#define FT_MP_RETIRE_CONNECTION_ID_OLD 0x41
-#define FT_MP_ACK 0x42
-#define FT_MP_ACK_ECN 0x43
-#define FT_ADD_ADDRESS 0x44
-#define FT_REMOVE_ADDRESS 0x45
-#define FT_UNIFLOWS 0x46
#define FT_DATAGRAM_LENGTH 0x31
#define FT_IMMEDIATE_ACK_DRAFT05 0xac /* ack-frequency-draft-05 */
#define FT_ACK_FREQUENCY 0xaf
@@ -746,12 +720,6 @@ static const range_string quic_frame_type_vals[] = {
{ 0x1e, 0x1e, "HANDSHAKE_DONE" },
{ 0x1f, 0x1f, "IMMEDIATE_ACK" },
{ 0x30, 0x31, "DATAGRAM" },
- { 0x40, 0x40, "MP_NEW_CONNECTION_ID" },
- { 0x41, 0x41, "MP_RETIRE_CONNECTION_ID" },
- { 0x42, 0x43, "MP_ACK" },
- { 0x44, 0x44, "ADD_ADDRESS" },
- { 0x45, 0x45, "REMOVE_ADDRESS" },
- { 0x46, 0x46, "UNIFLOWS" },
{ 0xac, 0xac, "IMMEDIATE_ACK (draft05)" }, /* ack-frequency-draft-05 */
{ 0xaf, 0xaf, "ACK_FREQUENCY" },
{ 0x02f5, 0x02f5, "TIME_STAMP" },
@@ -1874,7 +1842,7 @@ dissect_quic_stream_payload(tvbuff_t *tvb, int offset, int length, packet_info *
}
/* QUIC Streams tracking and reassembly. }}} */
-static gboolean quic_crypto_out_of_order = TRUE;
+static bool quic_crypto_out_of_order = true;
static reassembly_table quic_crypto_reassembly_table;
@@ -2315,9 +2283,7 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
case FT_ACK_MP:
case FT_ACK_MP_ECN:
case FT_ACK_MP_DRAFT04:
- case FT_ACK_MP_ECN_DRAFT04:
- case FT_MP_ACK:
- case FT_MP_ACK_ECN:{
+ case FT_ACK_MP_ECN_DRAFT04:{
guint64 ack_range_count;
gint32 lenvar;
@@ -2328,16 +2294,6 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
case FT_ACK_ECN:
col_append_fstr(pinfo->cinfo, COL_INFO, ", ACK_ECN");
break;
- case FT_MP_ACK:
- col_append_fstr(pinfo->cinfo, COL_INFO, ", MP_ACK");
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_uniflow_id, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &lenvar);
- offset += lenvar;
- break;
- case FT_MP_ACK_ECN:
- col_append_fstr(pinfo->cinfo, COL_INFO, ", MP_ACK_ECN");
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_uniflow_id, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &lenvar);
- offset += lenvar;
- break;
case FT_ACK_MP:
case FT_ACK_MP_DRAFT04:
col_append_fstr(pinfo->cinfo, COL_INFO, ", ACK_MP");
@@ -2378,7 +2334,7 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
}
/* ECN Counts. */
- if (frame_type == FT_ACK_ECN || frame_type == FT_MP_ACK_ECN || frame_type == FT_ACK_MP_ECN || frame_type == FT_ACK_MP_ECN_DRAFT04 ) {
+ if (frame_type == FT_ACK_ECN || frame_type == FT_ACK_MP_ECN || frame_type == FT_ACK_MP_ECN_DRAFT04 ) {
proto_tree_add_item_ret_varint(ft_tree, hf_quic_ack_ect0_count, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &lenvar);
offset += lenvar;
@@ -2606,7 +2562,6 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
}
break;
case FT_NEW_CONNECTION_ID:
- case FT_MP_NEW_CONNECTION_ID_OLD:
case FT_MP_NEW_CONNECTION_ID:{
gint32 len_sequence;
gint32 len_retire_prior_to;
@@ -2619,11 +2574,6 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
case FT_NEW_CONNECTION_ID:
col_append_fstr(pinfo->cinfo, COL_INFO, ", NCI");
break;
- case FT_MP_NEW_CONNECTION_ID_OLD:
- col_append_fstr(pinfo->cinfo, COL_INFO, ", MP_NCI");
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_uniflow_id, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &lenvar);
- offset += lenvar;
- break;
case FT_MP_NEW_CONNECTION_ID:
col_append_fstr(pinfo->cinfo, COL_INFO, ", MP_NCI");
proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_nci_path_identifier, tvb, offset, -1, ENC_VARINT_QUIC, &path_id, &lenvar);
@@ -2665,7 +2615,6 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
}
break;
case FT_RETIRE_CONNECTION_ID:
- case FT_MP_RETIRE_CONNECTION_ID_OLD:
case FT_MP_RETIRE_CONNECTION_ID:{
gint32 len_sequence;
gint32 lenvar;
@@ -2674,11 +2623,6 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
case FT_RETIRE_CONNECTION_ID:
col_append_fstr(pinfo->cinfo, COL_INFO, ", RC");
break;
- case FT_MP_RETIRE_CONNECTION_ID_OLD:
- col_append_fstr(pinfo->cinfo, COL_INFO, ", MP_RC");
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_uniflow_id, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &lenvar);
- offset += lenvar;
- break;
case FT_MP_RETIRE_CONNECTION_ID:
col_append_fstr(pinfo->cinfo, COL_INFO, ", MP_RC");
proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_rc_path_identifier, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &lenvar);
@@ -2805,125 +2749,6 @@ dissect_quic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tree
}
break;
- case FT_ADD_ADDRESS:{
- gint32 length;
- guint64 config_bits;
-
- col_append_fstr(pinfo->cinfo, COL_INFO, ", ADD_ADDRESS");
-
- static int * const config_fields[] = {
- &hf_quic_mp_add_address_reserved,
- &hf_quic_mp_add_address_port_present,
- &hf_quic_mp_add_address_ip_version,
- NULL
- };
-
- proto_tree_add_bitmask_ret_uint64(ft_tree, tvb, offset, hf_quic_mp_add_address_first_byte, ett_quic, config_fields, ENC_BIG_ENDIAN, &config_bits);
- offset += 1;
-
- proto_tree_add_item(ft_tree, hf_quic_mp_add_address_id, tvb, offset, 1, ENC_NA);
- offset += 1;
-
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_add_address_sq_number, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &length);
- offset += (guint32)length;
-
- proto_tree_add_item(ft_tree, hf_quic_mp_add_address_interface_type, tvb, offset, 1, ENC_NA);
- offset += 1;
-
- if ((config_bits & 0x06) == 0x06) {
- ws_in6_addr addr;
- tvb_get_ipv6(tvb, offset, &addr);
- proto_tree_add_ipv6(ft_tree, hf_quic_mp_add_address_ip_address_v6, tvb, offset, 16, &addr);
- offset += 16;
- } else {
- guint32 ip_config = tvb_get_ipv4(tvb, offset);
- proto_tree_add_ipv4(ft_tree, hf_quic_mp_add_address_ip_address, tvb, offset, 4, ip_config);
- offset += 4;
- }
-
- if ((config_bits & 0x10 ) == 0x10) {
- proto_tree_add_item(ft_tree, hf_quic_mp_add_address_port, tvb, offset, 2, ENC_NA);
- offset += 2;
- }
- }
- break;
- case FT_REMOVE_ADDRESS:{
- gint32 length;
-
- col_append_fstr(pinfo->cinfo, COL_INFO, ", REMOVE_ADDRESS");
-
- proto_tree_add_item(ft_tree, hf_quic_mp_add_address_id, tvb, offset, 1, ENC_NA);
- offset += 1;
-
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_add_address_sq_number, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &length);
- offset += (guint32)length;
- }
- break;
- case FT_UNIFLOWS:{
- gint32 length;
- gint32 len_receiving_uniflows;
- gint32 len_active_sending_uniflows;
- gint32 len_uniflow_id;
-
- guint64 ret_receiving_uniflows;
- guint64 ret_active_sending_uniflows;
-
- col_append_fstr(pinfo->cinfo, COL_INFO, ", UNIFLOWS");
-
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_add_address_sq_number, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &length);
- offset += (guint32)length;
-
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_receiving_uniflows, tvb, offset, -1, ENC_VARINT_QUIC, &ret_receiving_uniflows, &len_receiving_uniflows);
- offset += (guint32)len_receiving_uniflows;
-
- proto_tree_add_item_ret_varint(ft_tree, hf_quic_mp_active_sending_uniflows, tvb, offset, -1, ENC_VARINT_QUIC, &ret_active_sending_uniflows, &len_active_sending_uniflows);
- offset += (guint32)len_active_sending_uniflows;
-
- proto_item *receiving_uniflows_ft;
- proto_tree *receiving_uniflows_tree;
-
- receiving_uniflows_ft = proto_tree_add_item(ft_tree, hf_quic_mp_receiving_uniflow_info_section , tvb, offset, 1, ENC_NA);
- receiving_uniflows_tree = proto_item_add_subtree(receiving_uniflows_ft, ett_quic_ft);
-
- for (guint64 i = 0; i < ret_receiving_uniflows; i++) {
- proto_item *item_ft;
- proto_tree *item_tree;
-
- item_ft = proto_tree_add_item(receiving_uniflows_tree, hf_quic_mp_uniflow_info_section, tvb, offset, 1, ENC_NA);
- item_tree = proto_item_add_subtree(item_ft, ett_quic_ft);
-
- len_uniflow_id = 0;
-
- proto_tree_add_item_ret_varint(item_tree, hf_quic_mp_uniflow_id, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &len_uniflow_id);
- offset += (guint32)len_uniflow_id;
-
- proto_tree_add_item(item_tree, hf_quic_mp_add_local_address_id , tvb, offset, 1, ENC_NA);
- offset += 1;
- }
-
- proto_item *active_sending_uniflows_ft;
- proto_tree *active_sending_uniflows_tree;
-
- active_sending_uniflows_ft = proto_tree_add_item(ft_tree, hf_quic_mp_active_sending_uniflows_info_section, tvb, offset, 1, ENC_NA);
- active_sending_uniflows_tree = proto_item_add_subtree(active_sending_uniflows_ft, ett_quic_ft);
-
- for (guint64 i = 0; i < ret_active_sending_uniflows; i++) {
- proto_item *item_ft;
- proto_tree *item_tree;
-
- item_ft = proto_tree_add_item(active_sending_uniflows_tree, hf_quic_mp_uniflow_info_section, tvb, offset, 1, ENC_NA);
- item_tree = proto_item_add_subtree(item_ft, ett_quic_ft);
-
- len_uniflow_id = 0;
-
- proto_tree_add_item_ret_varint(item_tree, hf_quic_mp_uniflow_id, tvb, offset, -1, ENC_VARINT_QUIC, NULL, &len_uniflow_id);
- offset += (guint32)len_uniflow_id;
-
- proto_tree_add_item(item_tree, hf_quic_mp_add_local_address_id , tvb, offset, 1, ENC_NA);
- offset += 1;
- }
- }
- break;
case FT_PATH_STATUS_DRAFT04:
case FT_PATH_STATUS:
case FT_PATH_STANDBY:
@@ -3512,16 +3337,18 @@ quic_get_1rtt_hp_cipher(packet_info *pinfo, quic_info_data_t *quic_info, gboolea
/**
* Tries to construct the appropriate cipher for the current key phase.
* See also "PROTECTED PAYLOAD DECRYPTION" comment on top of this file.
+ * Returns true if the cipher was newly created (and needs to be either
+ * freed or added to the array of ciphers), false if an existing cipher
+ * was returned.
*/
-static quic_pp_cipher *
-quic_get_pp_cipher(gboolean key_phase, quic_info_data_t *quic_info, gboolean from_server)
+static bool
+quic_get_pp_cipher(quic_pp_cipher *pp_cipher, gboolean key_phase, quic_info_data_t *quic_info, gboolean from_server, uint64_t pkn)
{
const char *error = NULL;
- gboolean success = FALSE;
/* Keys were previously not available. */
if (quic_info->skip_decryption) {
- return NULL;
+ return false;
}
quic_pp_state_t *client_pp = &quic_info->client_pp;
@@ -3530,46 +3357,71 @@ quic_get_pp_cipher(gboolean key_phase, quic_info_data_t *quic_info, gboolean fro
/*
* If the key phase changed, try to decrypt the packet using the new cipher.
+ * However, if the packet number is before we changed to the current phase,
+ * try the previous cipher instead.
* If that fails, then it is either a malicious packet or out-of-order.
- * In that case, try the previous cipher (unless it is the very first KP1).
* '!!' is due to key_phase being a signed bitfield, it forces -1 into 1.
*/
- if (key_phase != !!pp_state->key_phase) {
- quic_pp_cipher new_cipher;
-
- memset(&new_cipher, 0, sizeof(new_cipher));
- if (!quic_pp_cipher_prepare(&new_cipher, quic_info->hash_algo,
+ if (key_phase != !!pp_state->key_phase && pkn > pp_state->changed_in_pkn) {
+ memset(pp_cipher, 0, sizeof(quic_pp_cipher));
+ if (!quic_pp_cipher_prepare(pp_cipher, quic_info->hash_algo,
quic_info->cipher_algo, quic_info->cipher_mode, pp_state->next_secret, &error, quic_info->version)) {
/* This should never be reached, if the parameters were wrong
* before, then it should have set "skip_decryption". */
REPORT_DISSECTOR_BUG("quic_pp_cipher_prepare unexpectedly failed: %s", error);
- return NULL;
+ return false;
}
- // TODO verify decryption before switching keys.
- success = TRUE;
-
- if (success) {
- /* Verified the cipher, use it from now on and rotate the key. */
- /* Note that HP cipher is not touched.
- https://tools.ietf.org/html/draft-ietf-quic-tls-32#section-5.4
- "The same header protection key is used for the duration of the
- connection, with the value not changing after a key update" */
- quic_pp_cipher_reset(&pp_state->pp_ciphers[key_phase]);
- pp_state->pp_ciphers[key_phase] = new_cipher;
- quic_update_key(quic_info->version, quic_info->hash_algo, pp_state);
+ return true;
+ }
- pp_state->key_phase = key_phase;
- //pp_state->changed_in_pkn = pkn;
+ *pp_cipher = pp_state->pp_ciphers[key_phase];
+ return false;
+}
- return &pp_state->pp_ciphers[key_phase];
- } else {
- // TODO fallback to previous cipher
- return NULL;
- }
+/**
+ * After success decrypting payload, replaces the previous cipher for this
+ * phase with the new one, and stores the packet number where this occurred.
+ */
+static void
+quic_set_pp_cipher(quic_pp_cipher *pp_cipher, gboolean key_phase, quic_info_data_t *quic_info, gboolean from_server, uint64_t pkn)
+{
+ /* Keys were previously not available. */
+ if (quic_info->skip_decryption) {
+ return;
}
- return &pp_state->pp_ciphers[key_phase];
+ quic_pp_state_t *client_pp = &quic_info->client_pp;
+ quic_pp_state_t *server_pp = &quic_info->server_pp;
+ quic_pp_state_t *pp_state = !from_server ? client_pp : server_pp;
+
+ /*
+ * If the key phase changed, replace the old cipher at this phase
+ * with the new one, since we succeeded.
+ *
+ * XXX - Perhaps optimally we should have a dynamic array of ciphers,
+ * and a tree storing the packet numbers at which they changed,
+ * instead of storing only two ciphers at once. We could even try
+ * more than one cipher for a given polarity when things are badly
+ * out of order and missing. (Servers and clients are not supposed
+ * to switch a second time until they have received acks for the
+ * previous changes, but there can still be old outstanding packets.
+ * See RFC 9001 6. Key Update.)
+ */
+ if (key_phase != !!pp_state->key_phase && pkn > pp_state->changed_in_pkn) {
+
+ /* Verified the cipher, use it from now on and rotate the key. */
+ /* Note that HP cipher is not touched.
+ https://tools.ietf.org/html/draft-ietf-quic-tls-32#section-5.4
+ "The same header protection key is used for the duration of the
+ connection, with the value not changing after a key update" */
+ quic_pp_cipher_reset(&pp_state->pp_ciphers[key_phase]);
+ pp_state->pp_ciphers[key_phase] = *pp_cipher;
+ quic_update_key(quic_info->version, quic_info->hash_algo, pp_state);
+
+ pp_state->key_phase = key_phase;
+ pp_state->changed_in_pkn = pkn;
+ }
}
/**
@@ -4217,7 +4069,7 @@ dissect_quic_short_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tr
guint8 first_byte = 0;
gboolean key_phase = FALSE;
proto_item *ti;
- quic_pp_cipher *pp_cipher = NULL;
+ quic_pp_cipher pp_cipher = {0};
quic_info_data_t *conn = dgram_info->conn;
const gboolean from_server = dgram_info->from_server;
gboolean loss_bits_negotiated = FALSE;
@@ -4281,10 +4133,6 @@ dissect_quic_short_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tr
proto_item_append_text(pi, " DCID=%s", dcid_str);
}
- if (!PINFO_FD_VISITED(pinfo) && conn) {
- pp_cipher = quic_get_pp_cipher(key_phase, conn, from_server);
- }
-
if (quic_packet->decryption.error) {
expert_add_info_format(pinfo, quic_tree, &ei_quic_decryption_failed,
"Failed to create decryption context: %s", quic_packet->decryption.error);
@@ -4305,11 +4153,23 @@ dissect_quic_short_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *quic_tr
ti = proto_tree_add_item(hdr_tree, hf_quic_protected_payload, tvb, offset, -1, ENC_NA);
if (conn) {
+ bool phase_change = false;
+ if (!PINFO_FD_VISITED(pinfo)) {
+ phase_change = quic_get_pp_cipher(&pp_cipher, key_phase, conn, from_server, quic_packet->packet_number);
+ }
+
quic_process_payload(tvb, pinfo, quic_tree, ti, offset,
- conn, quic_packet, from_server, pp_cipher, first_byte, quic_packet->pkn_len);
- if (!PINFO_FD_VISITED(pinfo) && !quic_packet->decryption.error) {
- // Packet number is verified to be valid, remember it.
- *quic_max_packet_number(conn, dgram_info->path_id, from_server, first_byte) = quic_packet->packet_number;
+ conn, quic_packet, from_server, &pp_cipher,
+ first_byte, quic_packet->pkn_len);
+ if (!PINFO_FD_VISITED(pinfo)) {
+ if (!quic_packet->decryption.error) {
+ // Packet number is verified to be valid, remember it.
+ *quic_max_packet_number(conn, dgram_info->path_id, from_server, first_byte) = quic_packet->packet_number;
+ // pp cipher is verified to be valid, remember if it new.
+ quic_set_pp_cipher(&pp_cipher, key_phase, conn, from_server, quic_packet->packet_number);
+ } else if (phase_change) {
+ quic_pp_cipher_reset(&pp_cipher);
+ }
}
}
offset += tvb_reported_length_remaining(tvb, offset);
@@ -4404,7 +4264,7 @@ quic_get_message_tvb(tvbuff_t *tvb, const guint offset, const quic_cid_t *dcid)
tvbuff_t *needle_tvb = tvb_new_subset_length(tvb, dcid_offset, dcid->len);
int needle_pos = tvb_find_tvb(tvb, needle_tvb, dcid_offset + dcid->len);
if (needle_pos != -1) {
- return(tvb_new_subset_length(tvb, offset, needle_pos - offset - 1));
+ return tvb_new_subset_length(tvb, offset, needle_pos - offset - 1);
}
}
}
@@ -4965,7 +4825,7 @@ quic_get_stream_id_ge(guint streamid, guint sub_stream_id, guint *sub_stream_id_
return FALSE;
}
-static gboolean
+static bool
quic_get_sub_stream_id(guint streamid, guint sub_stream_id, gboolean le, guint *sub_stream_id_out)
{
if (le) {
@@ -5189,91 +5049,6 @@ proto_register_quic(void)
FT_BOOLEAN, 8, NULL, 0x20,
"Latency Spin Bit", HFILL }
},
- { &hf_quic_mp_add_address_first_byte,
- { "Config", "quic.mp_first_byte",
- FT_UINT8, BASE_HEX, NULL, 0,
- NULL, HFILL }
- },
- { &hf_quic_mp_add_address_reserved,
- { "Reserved", "quic.mp_reserved_bit",
- FT_UINT8, BASE_DEC, NULL, 0xE0,
- NULL, HFILL }
- },
- { &hf_quic_mp_add_address_port_present,
- { "Port presence", "quic.port_presence_bit",
- FT_BOOLEAN, 8, NULL, 0x10,
- "Must be 1", HFILL }
- },
- { &hf_quic_mp_add_address_ip_version,
- { "IP Version", "quic.ip_version",
- FT_UINT8, BASE_DEC, NULL, 0x0f,
- NULL, HFILL }
- },
- { &hf_quic_mp_add_address_id,
- { "Address ID", "quic.mp_address_id",
- FT_UINT64, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_add_address_sq_number,
- { "Sequence Number", "quic.mp_sequence_number",
- FT_UINT64, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_add_address_interface_type,
- { "Interface Type", "quic.mp_interface_type",
- FT_UINT64, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_add_address_ip_address,
- { "IP Address", "quic.mp_ip_address",
- FT_IPv4, BASE_NONE,
- NULL, 0x0, NULL, HFILL }
- },
- { &hf_quic_mp_add_address_ip_address_v6,
- { "IP Address", "quic.mp_ip_address_v6",
- FT_IPv6, BASE_NONE,
- NULL, 0x0, NULL, HFILL }
- },
- { &hf_quic_mp_add_address_port,
- { "Port", "quic.mp_port",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_uniflow_id,
- { "Uniflow ID", "quic.mp_uniflow_id",
- FT_UINT64, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_receiving_uniflows,
- { "Receiving uniflows", "quic.mp_receiving_uniflows",
- FT_UINT64, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_active_sending_uniflows,
- { "Active sending uniflows", "quic.mp_act_send_uf",
- FT_UINT64, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_receiving_uniflow_info_section,
- { "Receiving uniflows", "quic.mp_receiving_uniflows_section",
- FT_NONE, BASE_NONE, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_active_sending_uniflows_info_section,
- { "Active sending uniflows", "quic.mp_act_send_uf_section",
- FT_NONE, BASE_NONE, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_uniflow_info_section,
- { "Uniflow Info Section", "quic.mp_uniflow_info_section",
- FT_NONE, BASE_NONE, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_quic_mp_add_local_address_id ,
- { "Local address id", "quic.mp_add_local_address_id",
- FT_UINT64, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
/* multipath */
{ &hf_quic_mp_nci_path_identifier,
diff --git a/epan/dissectors/packet-radius.c b/epan/dissectors/packet-radius.c
index 0a86b56548..870dc71b1b 100644
--- a/epan/dissectors/packet-radius.c
+++ b/epan/dissectors/packet-radius.c
@@ -107,7 +107,7 @@ typedef struct _radius_info_t
*/
#define DEFAULT_RADIUS_PORT_RANGE "1645,1646,1700,1812,1813,3799"
-static radius_dictionary_t *dict = NULL;
+static radius_dictionary_t *dict;
static int proto_radius;
@@ -205,9 +205,9 @@ static dissector_handle_t radius_handle;
static const gchar *shared_secret = "";
-static gboolean validate_authenticator = FALSE;
-static gboolean show_length = FALSE;
-static gboolean disable_extended_attributes = FALSE;
+static bool validate_authenticator;
+static bool show_length;
+static bool disable_extended_attributes;
static guint8 authenticator[AUTHENTICATOR_LENGTH];
diff --git a/epan/dissectors/packet-raknet.c b/epan/dissectors/packet-raknet.c
index 30fab92a57..184cda2186 100644
--- a/epan/dissectors/packet-raknet.c
+++ b/epan/dissectors/packet-raknet.c
@@ -48,11 +48,11 @@ static gint ett_raknet_system_message;
/*
* Dissectors
*/
-static dissector_handle_t raknet_handle = NULL;
-static dissector_table_t raknet_offline_message_dissectors = NULL;
-static dissector_table_t raknet_system_message_dissectors = NULL;
-static dissector_table_t raknet_port_dissectors = NULL;
-static heur_dissector_list_t raknet_heur_subdissectors = NULL;
+static dissector_handle_t raknet_handle;
+static dissector_table_t raknet_offline_message_dissectors;
+static dissector_table_t raknet_system_message_dissectors;
+static dissector_table_t raknet_port_dissectors;
+static heur_dissector_list_t raknet_heur_subdissectors;
/*
* Expert fields
@@ -452,9 +452,9 @@ raknet_dissect_open_connection_reply_2(tvbuff_t *tvb, packet_info *pinfo, proto_
{
proto_tree *sub_tree;
gint offset;
+ raknet_session_state_t* state;
sub_tree = init_raknet_offline_message(tvb, pinfo, tree, &offset);
- gboolean use_encryption;
proto_tree_add_item(sub_tree, hf_raknet_offline_message_data_id, tvb, offset,
16, ENC_NA);
@@ -471,13 +471,14 @@ raknet_dissect_open_connection_reply_2(tvbuff_t *tvb, packet_info *pinfo, proto_
2, ENC_BIG_ENDIAN);
offset += 2;
- use_encryption = tvb_get_guint8(tvb, offset) ? TRUE : FALSE;
+ state = raknet_get_session_state(pinfo);
+ state->use_encryption = tvb_get_guint8(tvb, offset) ? TRUE : FALSE;
proto_tree_add_item(sub_tree, hf_raknet_use_encryption, tvb, offset,
1, ENC_NA);
offset += 1;
- if (use_encryption) {
+ if (state->use_encryption) {
proto_tree_add_item(sub_tree, hf_raknet_server_answer, tvb, offset,
128, ENC_NA);
offset += 128;
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index 01bfc82464..6fe0ece874 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -445,10 +445,10 @@ void proto_reg_handoff_ranap(void);
static int proto_ranap;
/* initialise sub-dissector handles */
-static dissector_handle_t rrc_s_to_trnc_handle = NULL;
-static dissector_handle_t rrc_t_to_srnc_handle = NULL;
-static dissector_handle_t rrc_ho_to_utran_cmd = NULL;
-static dissector_handle_t bssgp_handle = NULL;
+static dissector_handle_t rrc_s_to_trnc_handle;
+static dissector_handle_t rrc_t_to_srnc_handle;
+static dissector_handle_t rrc_ho_to_utran_cmd;
+static dissector_handle_t bssgp_handle;
static int hf_ranap_transportLayerAddress_ipv4;
static int hf_ranap_transportLayerAddress_ipv6;
@@ -1251,357 +1251,357 @@ static int ett_ranap;
static int ett_ranap_transportLayerAddress;
static int ett_ranap_transportLayerAddress_nsap;
-static gint ett_ranap_PrivateIE_ID;
-static gint ett_ranap_ProtocolIE_Container;
-static gint ett_ranap_ProtocolIE_Field;
-static gint ett_ranap_ProtocolIE_ContainerPair;
-static gint ett_ranap_ProtocolIE_FieldPair;
-static gint ett_ranap_ProtocolIE_ContainerList;
-static gint ett_ranap_ProtocolIE_ContainerPairList;
-static gint ett_ranap_ProtocolExtensionContainer;
-static gint ett_ranap_ProtocolExtensionField;
-static gint ett_ranap_PrivateIE_Container;
-static gint ett_ranap_PrivateIE_Field;
-static gint ett_ranap_Additional_CSPS_coordination_information;
-static gint ett_ranap_Additional_PositioningDataSet;
-static gint ett_ranap_AllocationOrRetentionPriority;
-static gint ett_ranap_Alt_RAB_Parameters;
-static gint ett_ranap_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf;
-static gint ett_ranap_Alt_RAB_Parameter_ExtendedGuaranteedBitrates;
-static gint ett_ranap_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList;
-static gint ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateInf;
-static gint ett_ranap_Alt_RAB_Parameter_GuaranteedBitrates;
-static gint ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateList;
-static gint ett_ranap_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf;
-static gint ett_ranap_Alt_RAB_Parameter_SupportedGuaranteedBitrates;
-static gint ett_ranap_Alt_RAB_Parameter_ExtendedMaxBitrateInf;
-static gint ett_ranap_Alt_RAB_Parameter_ExtendedMaxBitrates;
-static gint ett_ranap_Alt_RAB_Parameter_ExtendedMaxBitrateList;
-static gint ett_ranap_Alt_RAB_Parameter_MaxBitrateInf;
-static gint ett_ranap_Alt_RAB_Parameter_MaxBitrates;
-static gint ett_ranap_Alt_RAB_Parameter_MaxBitrateList;
-static gint ett_ranap_Alt_RAB_Parameter_SupportedMaxBitrateInf;
-static gint ett_ranap_Alt_RAB_Parameter_SupportedMaxBitrates;
-static gint ett_ranap_UE_Application_Layer_Measurement_Configuration;
-static gint ett_ranap_UE_Application_Layer_Measurement_Configuration_For_Relocation;
-static gint ett_ranap_AreaScopeForUEApplicationLayerMeasurementConfiguration;
-static gint ett_ranap_AreaIdentity;
-static gint ett_ranap_Ass_RAB_Parameters;
-static gint ett_ranap_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList;
-static gint ett_ranap_Ass_RAB_Parameter_ExtendedMaxBitrateList;
-static gint ett_ranap_Ass_RAB_Parameter_GuaranteedBitrateList;
-static gint ett_ranap_Ass_RAB_Parameter_MaxBitrateList;
-static gint ett_ranap_AuthorisedPLMNs;
-static gint ett_ranap_AuthorisedPLMNs_item;
-static gint ett_ranap_AuthorisedSNAs;
-static gint ett_ranap_BroadcastAssistanceDataDecipheringKeys;
-static gint ett_ranap_Cause;
-static gint ett_ranap_CellBased;
-static gint ett_ranap_CellIdList;
-static gint ett_ranap_CellLoadInformation;
-static gint ett_ranap_CellLoadInformationGroup;
-static gint ett_ranap_CriticalityDiagnostics;
-static gint ett_ranap_CriticalityDiagnostics_IE_List;
-static gint ett_ranap_CriticalityDiagnostics_IE_List_item;
-static gint ett_ranap_MessageStructure;
-static gint ett_ranap_MessageStructure_item;
-static gint ett_ranap_CGI;
-static gint ett_ranap_CSG_Id_List;
-static gint ett_ranap_DeltaRAListofIdleModeUEs;
-static gint ett_ranap_NewRAListofIdleModeUEs;
-static gint ett_ranap_RAListwithNoIdleModeUEsAnyMore;
-static gint ett_ranap_ENB_ID;
-static gint ett_ranap_EncryptionInformation;
-static gint ett_ranap_EquipmentsToBeTraced;
-static gint ett_ranap_Event1F_Parameters;
-static gint ett_ranap_Event1I_Parameters;
-static gint ett_ranap_GANSS_PositioningDataSet;
-static gint ett_ranap_GeographicalArea;
-static gint ett_ranap_GeographicalCoordinates;
-static gint ett_ranap_GA_AltitudeAndDirection;
-static gint ett_ranap_GA_EllipsoidArc;
-static gint ett_ranap_GA_Point;
-static gint ett_ranap_GA_PointWithAltitude;
-static gint ett_ranap_GA_PointWithAltitudeAndUncertaintyEllipsoid;
-static gint ett_ranap_GA_PointWithUnCertainty;
-static gint ett_ranap_GA_PointWithUnCertaintyEllipse;
-static gint ett_ranap_GA_Polygon;
-static gint ett_ranap_GA_Polygon_item;
-static gint ett_ranap_GA_UncertaintyEllipse;
-static gint ett_ranap_GERAN_Cell_ID;
-static gint ett_ranap_GlobalCN_ID;
-static gint ett_ranap_GlobalRNC_ID;
-static gint ett_ranap_IMEIGroup;
-static gint ett_ranap_IMEIList;
-static gint ett_ranap_IMEISVGroup;
-static gint ett_ranap_IMEISVList;
-static gint ett_ranap_ImmediateMDT;
-static gint ett_ranap_InformationRequested;
-static gint ett_ranap_InformationRequestType;
-static gint ett_ranap_InformationTransferType;
-static gint ett_ranap_IntegrityProtectionInformation;
-static gint ett_ranap_InterSystemInformationTransferType;
-static gint ett_ranap_InterSystemInformation_TransparentContainer;
-static gint ett_ranap_IuTransportAssociation;
-static gint ett_ranap_LA_LIST;
-static gint ett_ranap_LA_LIST_item;
-static gint ett_ranap_LAI;
-static gint ett_ranap_LastKnownServiceArea;
-static gint ett_ranap_LastVisitedUTRANCell_Item;
-static gint ett_ranap_ListOF_SNAs;
-static gint ett_ranap_ListOfInterfacesToTrace;
-static gint ett_ranap_InterfacesToTraceItem;
-static gint ett_ranap_LocationRelatedDataRequestType;
-static gint ett_ranap_LocationReportingTransferInformation;
-static gint ett_ranap_M1Report;
-static gint ett_ranap_M2Report;
-static gint ett_ranap_M4Report;
-static gint ett_ranap_M4_Collection_Parameters;
-static gint ett_ranap_M5Report;
-static gint ett_ranap_M6Report;
-static gint ett_ranap_M7Report;
-static gint ett_ranap_MBMSIPMulticastAddressandAPNRequest;
-static gint ett_ranap_MDTAreaScope;
-static gint ett_ranap_MDT_Configuration;
-static gint ett_ranap_MDTMode;
-static gint ett_ranap_MDT_PLMN_List;
-static gint ett_ranap_MDT_Report_Parameters;
-static gint ett_ranap_Offload_RAB_Parameters;
-static gint ett_ranap_PagingAreaID;
-static gint ett_ranap_PDP_TypeInformation;
-static gint ett_ranap_PDP_TypeInformation_extension;
-static gint ett_ranap_PeriodicLocationInfo;
-static gint ett_ranap_PermanentNAS_UE_ID;
-static gint ett_ranap_PermittedEncryptionAlgorithms;
-static gint ett_ranap_PermittedIntegrityProtectionAlgorithms;
-static gint ett_ranap_LABased;
-static gint ett_ranap_LAI_List;
-static gint ett_ranap_LoggedMDT;
-static gint ett_ranap_PLMNBased;
-static gint ett_ranap_PLMNList;
-static gint ett_ranap_PLMNs_in_shared_network;
-static gint ett_ranap_PLMNs_in_shared_network_item;
-static gint ett_ranap_PositioningDataSet;
-static gint ett_ranap_PositionData;
-static gint ett_ranap_ProvidedData;
-static gint ett_ranap_RABased;
-static gint ett_ranap_RAI_List;
-static gint ett_ranap_RABDataVolumeReport;
-static gint ett_ranap_RABDataVolumeReport_item;
-static gint ett_ranap_RAB_Parameter_ExtendedGuaranteedBitrateList;
-static gint ett_ranap_RAB_Parameter_ExtendedMaxBitrateList;
-static gint ett_ranap_RAB_Parameter_GuaranteedBitrateList;
-static gint ett_ranap_RAB_Parameter_MaxBitrateList;
-static gint ett_ranap_RAB_Parameters;
-static gint ett_ranap_RABParametersList;
-static gint ett_ranap_RABParametersList_item;
-static gint ett_ranap_RAB_TrCH_Mapping;
-static gint ett_ranap_RAB_TrCH_MappingItem;
-static gint ett_ranap_RAI;
-static gint ett_ranap_RAListofIdleModeUEs;
-static gint ett_ranap_NotEmptyRAListofIdleModeUEs;
-static gint ett_ranap_RAofIdleModeUEs;
-static gint ett_ranap_LAListofIdleModeUEs;
-static gint ett_ranap_RequestedMBMSIPMulticastAddressandAPNRequest;
-static gint ett_ranap_MBMSIPMulticastAddressandAPNlist;
-static gint ett_ranap_RequestedMulticastServiceList;
-static gint ett_ranap_Requested_RAB_Parameter_Values;
-static gint ett_ranap_Requested_RAB_Parameter_ExtendedMaxBitrateList;
-static gint ett_ranap_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList;
-static gint ett_ranap_Requested_RAB_Parameter_MaxBitrateList;
-static gint ett_ranap_Requested_RAB_Parameter_GuaranteedBitrateList;
-static gint ett_ranap_RequestType;
-static gint ett_ranap_ResidualBitErrorRatio;
-static gint ett_ranap_RIM_Transfer;
-static gint ett_ranap_RIMRoutingAddress;
-static gint ett_ranap_RNCTraceInformation;
-static gint ett_ranap_RNSAPRelocationParameters;
-static gint ett_ranap_RSRVCC_Information;
-static gint ett_ranap_SAI;
-static gint ett_ranap_Shared_Network_Information;
-static gint ett_ranap_SDU_ErrorRatio;
-static gint ett_ranap_SDU_FormatInformationParameters;
-static gint ett_ranap_SDU_FormatInformationParameters_item;
-static gint ett_ranap_SDU_Parameters;
-static gint ett_ranap_SDU_Parameters_item;
-static gint ett_ranap_SGSN_Group_Identity;
-static gint ett_ranap_SNA_Access_Information;
-static gint ett_ranap_SourceCellID;
-static gint ett_ranap_SourceID;
-static gint ett_ranap_SourceRNC_ID;
-static gint ett_ranap_SourceRNC_ToTargetRNC_TransparentContainer;
-static gint ett_ranap_IRAT_Measurement_Configuration;
-static gint ett_ranap_IRATmeasurementParameters;
-static gint ett_ranap_RSRQ_Type;
-static gint ett_ranap_EUTRANFrequencies;
-static gint ett_ranap_EUTRANFrequencies_item;
-static gint ett_ranap_SupportedRAB_ParameterBitrateList;
-static gint ett_ranap_SourceUTRANCellID;
-static gint ett_ranap_SRB_TrCH_Mapping;
-static gint ett_ranap_SRB_TrCH_MappingItem;
-static gint ett_ranap_SRVCC_Information;
-static gint ett_ranap_TAI;
-static gint ett_ranap_TargetID;
-static gint ett_ranap_TargetENB_ID;
-static gint ett_ranap_TargetRNC_ID;
-static gint ett_ranap_TargetRNC_ToSourceRNC_TransparentContainer;
-static gint ett_ranap_TemporaryUE_ID;
-static gint ett_ranap_TMGI;
-static gint ett_ranap_TraceInformation;
-static gint ett_ranap_TracePropagationParameters;
-static gint ett_ranap_TraceRecordingSessionInformation;
-static gint ett_ranap_TrCH_ID;
-static gint ett_ranap_TrCH_ID_List;
-static gint ett_ranap_TunnelInformation;
-static gint ett_ranap_UE_AggregateMaximumBitRate;
-static gint ett_ranap_UE_ID;
-static gint ett_ranap_UE_IsNotServed;
-static gint ett_ranap_UE_IsServed;
-static gint ett_ranap_UERegistrationQueryResult;
-static gint ett_ranap_UESBI_Iu;
-static gint ett_ranap_UPInformation;
-static gint ett_ranap_UTRAN_CellID;
-static gint ett_ranap_VelocityEstimate;
-static gint ett_ranap_HorizontalVelocity;
-static gint ett_ranap_HorizontalWithVerticalVelocity;
-static gint ett_ranap_HorizontalVelocityWithUncertainty;
-static gint ett_ranap_HorizontalWithVerticalVelocityAndUncertainty;
-static gint ett_ranap_HorizontalSpeedAndBearing;
-static gint ett_ranap_VerticalVelocity;
-static gint ett_ranap_Iu_ReleaseCommand;
-static gint ett_ranap_Iu_ReleaseComplete;
-static gint ett_ranap_RAB_DataVolumeReportItem;
-static gint ett_ranap_RAB_ReleasedItem_IuRelComp;
-static gint ett_ranap_RelocationRequired;
-static gint ett_ranap_RelocationCommand;
-static gint ett_ranap_RAB_RelocationReleaseItem;
-static gint ett_ranap_RAB_DataForwardingItem;
-static gint ett_ranap_RelocationPreparationFailure;
-static gint ett_ranap_RelocationRequest;
-static gint ett_ranap_RAB_SetupItem_RelocReq;
-static gint ett_ranap_UserPlaneInformation;
-static gint ett_ranap_CNMBMSLinkingInformation;
-static gint ett_ranap_JoinedMBMSBearerService_IEs;
-static gint ett_ranap_JoinedMBMSBearerService_IEs_item;
-static gint ett_ranap_RelocationRequestAcknowledge;
-static gint ett_ranap_RAB_SetupItem_RelocReqAck;
-static gint ett_ranap_RAB_FailedItem;
-static gint ett_ranap_RelocationFailure;
-static gint ett_ranap_RelocationCancel;
-static gint ett_ranap_RelocationCancelAcknowledge;
-static gint ett_ranap_SRNS_ContextRequest;
-static gint ett_ranap_RAB_DataForwardingItem_SRNS_CtxReq;
-static gint ett_ranap_SRNS_ContextResponse;
-static gint ett_ranap_RAB_ContextItem;
-static gint ett_ranap_RABs_ContextFailedtoTransferItem;
-static gint ett_ranap_SecurityModeCommand;
-static gint ett_ranap_SecurityModeComplete;
-static gint ett_ranap_SecurityModeReject;
-static gint ett_ranap_DataVolumeReportRequest;
-static gint ett_ranap_RAB_DataVolumeReportRequestItem;
-static gint ett_ranap_DataVolumeReport;
-static gint ett_ranap_RABs_failed_to_reportItem;
-static gint ett_ranap_Reset;
-static gint ett_ranap_ResetAcknowledge;
-static gint ett_ranap_ResetResource;
-static gint ett_ranap_ResetResourceItem;
-static gint ett_ranap_ResetResourceAcknowledge;
-static gint ett_ranap_ResetResourceAckItem;
-static gint ett_ranap_RAB_ReleaseRequest;
-static gint ett_ranap_RAB_ReleaseItem;
-static gint ett_ranap_Iu_ReleaseRequest;
-static gint ett_ranap_RelocationDetect;
-static gint ett_ranap_RelocationComplete;
-static gint ett_ranap_EnhancedRelocationCompleteRequest;
-static gint ett_ranap_RAB_SetupItem_EnhancedRelocCompleteReq;
-static gint ett_ranap_EnhancedRelocationCompleteResponse;
-static gint ett_ranap_RAB_SetupItem_EnhancedRelocCompleteRes;
-static gint ett_ranap_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes;
-static gint ett_ranap_EnhancedRelocationCompleteFailure;
-static gint ett_ranap_EnhancedRelocationCompleteConfirm;
-static gint ett_ranap_Paging;
-static gint ett_ranap_CommonID;
-static gint ett_ranap_CN_InvokeTrace;
-static gint ett_ranap_CN_DeactivateTrace;
-static gint ett_ranap_LocationReportingControl;
-static gint ett_ranap_LocationReport;
-static gint ett_ranap_InitialUE_Message;
-static gint ett_ranap_DirectTransfer;
-static gint ett_ranap_Overload;
-static gint ett_ranap_ErrorIndication;
-static gint ett_ranap_SRNS_DataForwardCommand;
-static gint ett_ranap_ForwardSRNS_Context;
-static gint ett_ranap_RAB_AssignmentRequest;
-static gint ett_ranap_RAB_SetupOrModifyItemFirst;
-static gint ett_ranap_TransportLayerInformation;
-static gint ett_ranap_RAB_SetupOrModifyItemSecond;
-static gint ett_ranap_RAB_AssignmentResponse;
-static gint ett_ranap_RAB_SetupOrModifiedItem;
-static gint ett_ranap_RAB_ReleasedItem;
-static gint ett_ranap_DataVolumeList;
-static gint ett_ranap_DataVolumeList_item;
-static gint ett_ranap_RAB_QueuedItem;
-static gint ett_ranap_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item;
-static gint ett_ranap_PrivateMessage;
-static gint ett_ranap_RANAP_RelocationInformation;
-static gint ett_ranap_DirectTransferInformationItem_RANAP_RelocInf;
-static gint ett_ranap_RAB_ContextItem_RANAP_RelocInf;
-static gint ett_ranap_RANAP_EnhancedRelocationInformationRequest;
-static gint ett_ranap_RAB_SetupItem_EnhRelocInfoReq;
-static gint ett_ranap_TNLInformationEnhRelInfoReq;
-static gint ett_ranap_RANAP_EnhancedRelocationInformationResponse;
-static gint ett_ranap_RAB_SetupItem_EnhRelocInfoRes;
-static gint ett_ranap_RAB_FailedItem_EnhRelocInfoRes;
-static gint ett_ranap_TNLInformationEnhRelInfoRes;
-static gint ett_ranap_RAB_ModifyRequest;
-static gint ett_ranap_RAB_ModifyItem;
-static gint ett_ranap_LocationRelatedDataRequest;
-static gint ett_ranap_LocationRelatedDataResponse;
-static gint ett_ranap_LocationRelatedDataFailure;
-static gint ett_ranap_InformationTransferIndication;
-static gint ett_ranap_InformationTransferConfirmation;
-static gint ett_ranap_InformationTransferFailure;
-static gint ett_ranap_UESpecificInformationIndication;
-static gint ett_ranap_DirectInformationTransfer;
-static gint ett_ranap_UplinkInformationExchangeRequest;
-static gint ett_ranap_UplinkInformationExchangeResponse;
-static gint ett_ranap_UplinkInformationExchangeFailure;
-static gint ett_ranap_MBMSSessionStart;
-static gint ett_ranap_MBMSSynchronisationInformation;
-static gint ett_ranap_MBMSSessionStartResponse;
-static gint ett_ranap_MBMSSessionStartFailure;
-static gint ett_ranap_MBMSSessionUpdate;
-static gint ett_ranap_MBMSSessionUpdateResponse;
-static gint ett_ranap_MBMSSessionUpdateFailure;
-static gint ett_ranap_MBMSSessionStop;
-static gint ett_ranap_MBMSSessionStopResponse;
-static gint ett_ranap_MBMSUELinkingRequest;
-static gint ett_ranap_LeftMBMSBearerService_IEs;
-static gint ett_ranap_LeftMBMSBearerService_IEs_item;
-static gint ett_ranap_MBMSUELinkingResponse;
-static gint ett_ranap_UnsuccessfulLinking_IEs;
-static gint ett_ranap_UnsuccessfulLinking_IEs_item;
-static gint ett_ranap_MBMSRegistrationRequest;
-static gint ett_ranap_MBMSRegistrationResponse;
-static gint ett_ranap_MBMSRegistrationFailure;
-static gint ett_ranap_MBMSCNDe_RegistrationRequest;
-static gint ett_ranap_MBMSCNDe_RegistrationResponse;
-static gint ett_ranap_MBMSRABEstablishmentIndication;
-static gint ett_ranap_MBMSRABReleaseRequest;
-static gint ett_ranap_MBMSRABRelease;
-static gint ett_ranap_MBMSRABReleaseFailure;
-static gint ett_ranap_SRVCC_CSKeysRequest;
-static gint ett_ranap_SRVCC_CSKeysResponse;
-static gint ett_ranap_UeRadioCapabilityMatchRequest;
-static gint ett_ranap_UeRadioCapabilityMatchResponse;
-static gint ett_ranap_UeRegistrationQueryRequest;
-static gint ett_ranap_UeRegistrationQueryResponse;
-static gint ett_ranap_RerouteNASRequest;
-static gint ett_ranap_RANAP_PDU;
-static gint ett_ranap_InitiatingMessage;
-static gint ett_ranap_SuccessfulOutcome;
-static gint ett_ranap_UnsuccessfulOutcome;
-static gint ett_ranap_Outcome;
+static int ett_ranap_PrivateIE_ID;
+static int ett_ranap_ProtocolIE_Container;
+static int ett_ranap_ProtocolIE_Field;
+static int ett_ranap_ProtocolIE_ContainerPair;
+static int ett_ranap_ProtocolIE_FieldPair;
+static int ett_ranap_ProtocolIE_ContainerList;
+static int ett_ranap_ProtocolIE_ContainerPairList;
+static int ett_ranap_ProtocolExtensionContainer;
+static int ett_ranap_ProtocolExtensionField;
+static int ett_ranap_PrivateIE_Container;
+static int ett_ranap_PrivateIE_Field;
+static int ett_ranap_Additional_CSPS_coordination_information;
+static int ett_ranap_Additional_PositioningDataSet;
+static int ett_ranap_AllocationOrRetentionPriority;
+static int ett_ranap_Alt_RAB_Parameters;
+static int ett_ranap_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf;
+static int ett_ranap_Alt_RAB_Parameter_ExtendedGuaranteedBitrates;
+static int ett_ranap_Alt_RAB_Parameter_ExtendedGuaranteedBitrateList;
+static int ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateInf;
+static int ett_ranap_Alt_RAB_Parameter_GuaranteedBitrates;
+static int ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateList;
+static int ett_ranap_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf;
+static int ett_ranap_Alt_RAB_Parameter_SupportedGuaranteedBitrates;
+static int ett_ranap_Alt_RAB_Parameter_ExtendedMaxBitrateInf;
+static int ett_ranap_Alt_RAB_Parameter_ExtendedMaxBitrates;
+static int ett_ranap_Alt_RAB_Parameter_ExtendedMaxBitrateList;
+static int ett_ranap_Alt_RAB_Parameter_MaxBitrateInf;
+static int ett_ranap_Alt_RAB_Parameter_MaxBitrates;
+static int ett_ranap_Alt_RAB_Parameter_MaxBitrateList;
+static int ett_ranap_Alt_RAB_Parameter_SupportedMaxBitrateInf;
+static int ett_ranap_Alt_RAB_Parameter_SupportedMaxBitrates;
+static int ett_ranap_UE_Application_Layer_Measurement_Configuration;
+static int ett_ranap_UE_Application_Layer_Measurement_Configuration_For_Relocation;
+static int ett_ranap_AreaScopeForUEApplicationLayerMeasurementConfiguration;
+static int ett_ranap_AreaIdentity;
+static int ett_ranap_Ass_RAB_Parameters;
+static int ett_ranap_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList;
+static int ett_ranap_Ass_RAB_Parameter_ExtendedMaxBitrateList;
+static int ett_ranap_Ass_RAB_Parameter_GuaranteedBitrateList;
+static int ett_ranap_Ass_RAB_Parameter_MaxBitrateList;
+static int ett_ranap_AuthorisedPLMNs;
+static int ett_ranap_AuthorisedPLMNs_item;
+static int ett_ranap_AuthorisedSNAs;
+static int ett_ranap_BroadcastAssistanceDataDecipheringKeys;
+static int ett_ranap_Cause;
+static int ett_ranap_CellBased;
+static int ett_ranap_CellIdList;
+static int ett_ranap_CellLoadInformation;
+static int ett_ranap_CellLoadInformationGroup;
+static int ett_ranap_CriticalityDiagnostics;
+static int ett_ranap_CriticalityDiagnostics_IE_List;
+static int ett_ranap_CriticalityDiagnostics_IE_List_item;
+static int ett_ranap_MessageStructure;
+static int ett_ranap_MessageStructure_item;
+static int ett_ranap_CGI;
+static int ett_ranap_CSG_Id_List;
+static int ett_ranap_DeltaRAListofIdleModeUEs;
+static int ett_ranap_NewRAListofIdleModeUEs;
+static int ett_ranap_RAListwithNoIdleModeUEsAnyMore;
+static int ett_ranap_ENB_ID;
+static int ett_ranap_EncryptionInformation;
+static int ett_ranap_EquipmentsToBeTraced;
+static int ett_ranap_Event1F_Parameters;
+static int ett_ranap_Event1I_Parameters;
+static int ett_ranap_GANSS_PositioningDataSet;
+static int ett_ranap_GeographicalArea;
+static int ett_ranap_GeographicalCoordinates;
+static int ett_ranap_GA_AltitudeAndDirection;
+static int ett_ranap_GA_EllipsoidArc;
+static int ett_ranap_GA_Point;
+static int ett_ranap_GA_PointWithAltitude;
+static int ett_ranap_GA_PointWithAltitudeAndUncertaintyEllipsoid;
+static int ett_ranap_GA_PointWithUnCertainty;
+static int ett_ranap_GA_PointWithUnCertaintyEllipse;
+static int ett_ranap_GA_Polygon;
+static int ett_ranap_GA_Polygon_item;
+static int ett_ranap_GA_UncertaintyEllipse;
+static int ett_ranap_GERAN_Cell_ID;
+static int ett_ranap_GlobalCN_ID;
+static int ett_ranap_GlobalRNC_ID;
+static int ett_ranap_IMEIGroup;
+static int ett_ranap_IMEIList;
+static int ett_ranap_IMEISVGroup;
+static int ett_ranap_IMEISVList;
+static int ett_ranap_ImmediateMDT;
+static int ett_ranap_InformationRequested;
+static int ett_ranap_InformationRequestType;
+static int ett_ranap_InformationTransferType;
+static int ett_ranap_IntegrityProtectionInformation;
+static int ett_ranap_InterSystemInformationTransferType;
+static int ett_ranap_InterSystemInformation_TransparentContainer;
+static int ett_ranap_IuTransportAssociation;
+static int ett_ranap_LA_LIST;
+static int ett_ranap_LA_LIST_item;
+static int ett_ranap_LAI;
+static int ett_ranap_LastKnownServiceArea;
+static int ett_ranap_LastVisitedUTRANCell_Item;
+static int ett_ranap_ListOF_SNAs;
+static int ett_ranap_ListOfInterfacesToTrace;
+static int ett_ranap_InterfacesToTraceItem;
+static int ett_ranap_LocationRelatedDataRequestType;
+static int ett_ranap_LocationReportingTransferInformation;
+static int ett_ranap_M1Report;
+static int ett_ranap_M2Report;
+static int ett_ranap_M4Report;
+static int ett_ranap_M4_Collection_Parameters;
+static int ett_ranap_M5Report;
+static int ett_ranap_M6Report;
+static int ett_ranap_M7Report;
+static int ett_ranap_MBMSIPMulticastAddressandAPNRequest;
+static int ett_ranap_MDTAreaScope;
+static int ett_ranap_MDT_Configuration;
+static int ett_ranap_MDTMode;
+static int ett_ranap_MDT_PLMN_List;
+static int ett_ranap_MDT_Report_Parameters;
+static int ett_ranap_Offload_RAB_Parameters;
+static int ett_ranap_PagingAreaID;
+static int ett_ranap_PDP_TypeInformation;
+static int ett_ranap_PDP_TypeInformation_extension;
+static int ett_ranap_PeriodicLocationInfo;
+static int ett_ranap_PermanentNAS_UE_ID;
+static int ett_ranap_PermittedEncryptionAlgorithms;
+static int ett_ranap_PermittedIntegrityProtectionAlgorithms;
+static int ett_ranap_LABased;
+static int ett_ranap_LAI_List;
+static int ett_ranap_LoggedMDT;
+static int ett_ranap_PLMNBased;
+static int ett_ranap_PLMNList;
+static int ett_ranap_PLMNs_in_shared_network;
+static int ett_ranap_PLMNs_in_shared_network_item;
+static int ett_ranap_PositioningDataSet;
+static int ett_ranap_PositionData;
+static int ett_ranap_ProvidedData;
+static int ett_ranap_RABased;
+static int ett_ranap_RAI_List;
+static int ett_ranap_RABDataVolumeReport;
+static int ett_ranap_RABDataVolumeReport_item;
+static int ett_ranap_RAB_Parameter_ExtendedGuaranteedBitrateList;
+static int ett_ranap_RAB_Parameter_ExtendedMaxBitrateList;
+static int ett_ranap_RAB_Parameter_GuaranteedBitrateList;
+static int ett_ranap_RAB_Parameter_MaxBitrateList;
+static int ett_ranap_RAB_Parameters;
+static int ett_ranap_RABParametersList;
+static int ett_ranap_RABParametersList_item;
+static int ett_ranap_RAB_TrCH_Mapping;
+static int ett_ranap_RAB_TrCH_MappingItem;
+static int ett_ranap_RAI;
+static int ett_ranap_RAListofIdleModeUEs;
+static int ett_ranap_NotEmptyRAListofIdleModeUEs;
+static int ett_ranap_RAofIdleModeUEs;
+static int ett_ranap_LAListofIdleModeUEs;
+static int ett_ranap_RequestedMBMSIPMulticastAddressandAPNRequest;
+static int ett_ranap_MBMSIPMulticastAddressandAPNlist;
+static int ett_ranap_RequestedMulticastServiceList;
+static int ett_ranap_Requested_RAB_Parameter_Values;
+static int ett_ranap_Requested_RAB_Parameter_ExtendedMaxBitrateList;
+static int ett_ranap_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList;
+static int ett_ranap_Requested_RAB_Parameter_MaxBitrateList;
+static int ett_ranap_Requested_RAB_Parameter_GuaranteedBitrateList;
+static int ett_ranap_RequestType;
+static int ett_ranap_ResidualBitErrorRatio;
+static int ett_ranap_RIM_Transfer;
+static int ett_ranap_RIMRoutingAddress;
+static int ett_ranap_RNCTraceInformation;
+static int ett_ranap_RNSAPRelocationParameters;
+static int ett_ranap_RSRVCC_Information;
+static int ett_ranap_SAI;
+static int ett_ranap_Shared_Network_Information;
+static int ett_ranap_SDU_ErrorRatio;
+static int ett_ranap_SDU_FormatInformationParameters;
+static int ett_ranap_SDU_FormatInformationParameters_item;
+static int ett_ranap_SDU_Parameters;
+static int ett_ranap_SDU_Parameters_item;
+static int ett_ranap_SGSN_Group_Identity;
+static int ett_ranap_SNA_Access_Information;
+static int ett_ranap_SourceCellID;
+static int ett_ranap_SourceID;
+static int ett_ranap_SourceRNC_ID;
+static int ett_ranap_SourceRNC_ToTargetRNC_TransparentContainer;
+static int ett_ranap_IRAT_Measurement_Configuration;
+static int ett_ranap_IRATmeasurementParameters;
+static int ett_ranap_RSRQ_Type;
+static int ett_ranap_EUTRANFrequencies;
+static int ett_ranap_EUTRANFrequencies_item;
+static int ett_ranap_SupportedRAB_ParameterBitrateList;
+static int ett_ranap_SourceUTRANCellID;
+static int ett_ranap_SRB_TrCH_Mapping;
+static int ett_ranap_SRB_TrCH_MappingItem;
+static int ett_ranap_SRVCC_Information;
+static int ett_ranap_TAI;
+static int ett_ranap_TargetID;
+static int ett_ranap_TargetENB_ID;
+static int ett_ranap_TargetRNC_ID;
+static int ett_ranap_TargetRNC_ToSourceRNC_TransparentContainer;
+static int ett_ranap_TemporaryUE_ID;
+static int ett_ranap_TMGI;
+static int ett_ranap_TraceInformation;
+static int ett_ranap_TracePropagationParameters;
+static int ett_ranap_TraceRecordingSessionInformation;
+static int ett_ranap_TrCH_ID;
+static int ett_ranap_TrCH_ID_List;
+static int ett_ranap_TunnelInformation;
+static int ett_ranap_UE_AggregateMaximumBitRate;
+static int ett_ranap_UE_ID;
+static int ett_ranap_UE_IsNotServed;
+static int ett_ranap_UE_IsServed;
+static int ett_ranap_UERegistrationQueryResult;
+static int ett_ranap_UESBI_Iu;
+static int ett_ranap_UPInformation;
+static int ett_ranap_UTRAN_CellID;
+static int ett_ranap_VelocityEstimate;
+static int ett_ranap_HorizontalVelocity;
+static int ett_ranap_HorizontalWithVerticalVelocity;
+static int ett_ranap_HorizontalVelocityWithUncertainty;
+static int ett_ranap_HorizontalWithVerticalVelocityAndUncertainty;
+static int ett_ranap_HorizontalSpeedAndBearing;
+static int ett_ranap_VerticalVelocity;
+static int ett_ranap_Iu_ReleaseCommand;
+static int ett_ranap_Iu_ReleaseComplete;
+static int ett_ranap_RAB_DataVolumeReportItem;
+static int ett_ranap_RAB_ReleasedItem_IuRelComp;
+static int ett_ranap_RelocationRequired;
+static int ett_ranap_RelocationCommand;
+static int ett_ranap_RAB_RelocationReleaseItem;
+static int ett_ranap_RAB_DataForwardingItem;
+static int ett_ranap_RelocationPreparationFailure;
+static int ett_ranap_RelocationRequest;
+static int ett_ranap_RAB_SetupItem_RelocReq;
+static int ett_ranap_UserPlaneInformation;
+static int ett_ranap_CNMBMSLinkingInformation;
+static int ett_ranap_JoinedMBMSBearerService_IEs;
+static int ett_ranap_JoinedMBMSBearerService_IEs_item;
+static int ett_ranap_RelocationRequestAcknowledge;
+static int ett_ranap_RAB_SetupItem_RelocReqAck;
+static int ett_ranap_RAB_FailedItem;
+static int ett_ranap_RelocationFailure;
+static int ett_ranap_RelocationCancel;
+static int ett_ranap_RelocationCancelAcknowledge;
+static int ett_ranap_SRNS_ContextRequest;
+static int ett_ranap_RAB_DataForwardingItem_SRNS_CtxReq;
+static int ett_ranap_SRNS_ContextResponse;
+static int ett_ranap_RAB_ContextItem;
+static int ett_ranap_RABs_ContextFailedtoTransferItem;
+static int ett_ranap_SecurityModeCommand;
+static int ett_ranap_SecurityModeComplete;
+static int ett_ranap_SecurityModeReject;
+static int ett_ranap_DataVolumeReportRequest;
+static int ett_ranap_RAB_DataVolumeReportRequestItem;
+static int ett_ranap_DataVolumeReport;
+static int ett_ranap_RABs_failed_to_reportItem;
+static int ett_ranap_Reset;
+static int ett_ranap_ResetAcknowledge;
+static int ett_ranap_ResetResource;
+static int ett_ranap_ResetResourceItem;
+static int ett_ranap_ResetResourceAcknowledge;
+static int ett_ranap_ResetResourceAckItem;
+static int ett_ranap_RAB_ReleaseRequest;
+static int ett_ranap_RAB_ReleaseItem;
+static int ett_ranap_Iu_ReleaseRequest;
+static int ett_ranap_RelocationDetect;
+static int ett_ranap_RelocationComplete;
+static int ett_ranap_EnhancedRelocationCompleteRequest;
+static int ett_ranap_RAB_SetupItem_EnhancedRelocCompleteReq;
+static int ett_ranap_EnhancedRelocationCompleteResponse;
+static int ett_ranap_RAB_SetupItem_EnhancedRelocCompleteRes;
+static int ett_ranap_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes;
+static int ett_ranap_EnhancedRelocationCompleteFailure;
+static int ett_ranap_EnhancedRelocationCompleteConfirm;
+static int ett_ranap_Paging;
+static int ett_ranap_CommonID;
+static int ett_ranap_CN_InvokeTrace;
+static int ett_ranap_CN_DeactivateTrace;
+static int ett_ranap_LocationReportingControl;
+static int ett_ranap_LocationReport;
+static int ett_ranap_InitialUE_Message;
+static int ett_ranap_DirectTransfer;
+static int ett_ranap_Overload;
+static int ett_ranap_ErrorIndication;
+static int ett_ranap_SRNS_DataForwardCommand;
+static int ett_ranap_ForwardSRNS_Context;
+static int ett_ranap_RAB_AssignmentRequest;
+static int ett_ranap_RAB_SetupOrModifyItemFirst;
+static int ett_ranap_TransportLayerInformation;
+static int ett_ranap_RAB_SetupOrModifyItemSecond;
+static int ett_ranap_RAB_AssignmentResponse;
+static int ett_ranap_RAB_SetupOrModifiedItem;
+static int ett_ranap_RAB_ReleasedItem;
+static int ett_ranap_DataVolumeList;
+static int ett_ranap_DataVolumeList_item;
+static int ett_ranap_RAB_QueuedItem;
+static int ett_ranap_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item;
+static int ett_ranap_PrivateMessage;
+static int ett_ranap_RANAP_RelocationInformation;
+static int ett_ranap_DirectTransferInformationItem_RANAP_RelocInf;
+static int ett_ranap_RAB_ContextItem_RANAP_RelocInf;
+static int ett_ranap_RANAP_EnhancedRelocationInformationRequest;
+static int ett_ranap_RAB_SetupItem_EnhRelocInfoReq;
+static int ett_ranap_TNLInformationEnhRelInfoReq;
+static int ett_ranap_RANAP_EnhancedRelocationInformationResponse;
+static int ett_ranap_RAB_SetupItem_EnhRelocInfoRes;
+static int ett_ranap_RAB_FailedItem_EnhRelocInfoRes;
+static int ett_ranap_TNLInformationEnhRelInfoRes;
+static int ett_ranap_RAB_ModifyRequest;
+static int ett_ranap_RAB_ModifyItem;
+static int ett_ranap_LocationRelatedDataRequest;
+static int ett_ranap_LocationRelatedDataResponse;
+static int ett_ranap_LocationRelatedDataFailure;
+static int ett_ranap_InformationTransferIndication;
+static int ett_ranap_InformationTransferConfirmation;
+static int ett_ranap_InformationTransferFailure;
+static int ett_ranap_UESpecificInformationIndication;
+static int ett_ranap_DirectInformationTransfer;
+static int ett_ranap_UplinkInformationExchangeRequest;
+static int ett_ranap_UplinkInformationExchangeResponse;
+static int ett_ranap_UplinkInformationExchangeFailure;
+static int ett_ranap_MBMSSessionStart;
+static int ett_ranap_MBMSSynchronisationInformation;
+static int ett_ranap_MBMSSessionStartResponse;
+static int ett_ranap_MBMSSessionStartFailure;
+static int ett_ranap_MBMSSessionUpdate;
+static int ett_ranap_MBMSSessionUpdateResponse;
+static int ett_ranap_MBMSSessionUpdateFailure;
+static int ett_ranap_MBMSSessionStop;
+static int ett_ranap_MBMSSessionStopResponse;
+static int ett_ranap_MBMSUELinkingRequest;
+static int ett_ranap_LeftMBMSBearerService_IEs;
+static int ett_ranap_LeftMBMSBearerService_IEs_item;
+static int ett_ranap_MBMSUELinkingResponse;
+static int ett_ranap_UnsuccessfulLinking_IEs;
+static int ett_ranap_UnsuccessfulLinking_IEs_item;
+static int ett_ranap_MBMSRegistrationRequest;
+static int ett_ranap_MBMSRegistrationResponse;
+static int ett_ranap_MBMSRegistrationFailure;
+static int ett_ranap_MBMSCNDe_RegistrationRequest;
+static int ett_ranap_MBMSCNDe_RegistrationResponse;
+static int ett_ranap_MBMSRABEstablishmentIndication;
+static int ett_ranap_MBMSRABReleaseRequest;
+static int ett_ranap_MBMSRABRelease;
+static int ett_ranap_MBMSRABReleaseFailure;
+static int ett_ranap_SRVCC_CSKeysRequest;
+static int ett_ranap_SRVCC_CSKeysResponse;
+static int ett_ranap_UeRadioCapabilityMatchRequest;
+static int ett_ranap_UeRadioCapabilityMatchResponse;
+static int ett_ranap_UeRegistrationQueryRequest;
+static int ett_ranap_UeRegistrationQueryResponse;
+static int ett_ranap_RerouteNASRequest;
+static int ett_ranap_RANAP_PDU;
+static int ett_ranap_InitiatingMessage;
+static int ett_ranap_SuccessfulOutcome;
+static int ett_ranap_UnsuccessfulOutcome;
+static int ett_ranap_Outcome;
/*****************************************************************************/
/* Packet private data */
@@ -1667,7 +1667,7 @@ static void private_data_set_binding_id_port(asn1_ctx_t *actx, guint16 binding_i
static guint32 ProcedureCode;
static guint32 ProtocolIE_ID;
static guint32 ProtocolExtensionID;
-static gboolean glbl_dissect_container = FALSE;
+static bool glbl_dissect_container;
static dissector_handle_t ranap_handle;
@@ -1694,7 +1694,7 @@ static dissector_handle_t ranap_handle;
#define SOUT (2U<<16)
#define SPECIAL (4U<<16)
-int pdu_type = 0; /* 0 means wildcard */
+int pdu_type; /* 0 means wildcard */
/* Dissector tables */
static dissector_table_t ranap_ies_dissector_table;
diff --git a/epan/dissectors/packet-raw.c b/epan/dissectors/packet-raw.c
index 3fc3e3a406..c84bc01a7f 100644
--- a/epan/dissectors/packet-raw.c
+++ b/epan/dissectors/packet-raw.c
@@ -34,7 +34,7 @@ static capture_dissector_handle_t ip_cap_handle;
static capture_dissector_handle_t ipv6_cap_handle;
static capture_dissector_handle_t ppp_hdlc_cap_handle;
-static gboolean
+static bool
capture_raw(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
/* So far, the only time we get raw connection types are with Linux and
diff --git a/epan/dissectors/packet-rdt.c b/epan/dissectors/packet-rdt.c
index 6bd52114e3..d7b36da0f9 100644
--- a/epan/dissectors/packet-rdt.c
+++ b/epan/dissectors/packet-rdt.c
@@ -175,7 +175,7 @@ static guint dissect_rdt_unknown_control(tvbuff_t *tvb, packet_info *pinfo, prot
static void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
/* Preferences bool to control whether or not setup info should be shown */
-static gboolean global_rdt_show_setup_info = TRUE;
+static bool global_rdt_show_setup_info = true;
/* Packet types */
#define RDT_ASMACTIION_PACKET 0xff00
diff --git a/epan/dissectors/packet-realtek.c b/epan/dissectors/packet-realtek.c
index 635b4f7d59..a59fae8d42 100644
--- a/epan/dissectors/packet-realtek.c
+++ b/epan/dissectors/packet-realtek.c
@@ -155,7 +155,8 @@ dissect_rrcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
proto_tree *rrcp_tree;
guint8 proto;
int offset = 0;
- guint32 reply, opcode;
+ bool reply;
+ guint32 opcode;
if (!tvb_bytes_exist(tvb, 0, 1))
return FALSE;
diff --git a/epan/dissectors/packet-reload.c b/epan/dissectors/packet-reload.c
index c5a9be16bc..5acab5056d 100644
--- a/epan/dissectors/packet-reload.c
+++ b/epan/dissectors/packet-reload.c
@@ -514,7 +514,7 @@ typedef struct _reload_conv_info_t {
#define TOPOLOGY_PLUGIN_CHORD_RELOAD "CHORD-RELOAD"
/* reload user configuration variables */
-static gboolean reload_defragment = TRUE;
+static bool reload_defragment = true;
static guint reload_nodeid_length = 16;
static const char *reload_topology_plugin = TOPOLOGY_PLUGIN_CHORD_RELOAD;
@@ -670,7 +670,7 @@ static const gint *reload_dmflag_items[] = {
&hf_reload_dmflag_battery_status,
};
-static uat_t *reloadkindids_uat = NULL;
+static uat_t *reloadkindids_uat;
typedef struct _Kind {
gchar *name;
@@ -701,9 +701,9 @@ static kind_t predefined_kinds[] = {
};
-static kind_t * kindidlist_uats = NULL;
+static kind_t * kindidlist_uats;
-static guint nreloadkinds = 0;
+static guint nreloadkinds;
static kind_t * getKindFromId(guint32 id) {
guint i;
@@ -1463,7 +1463,7 @@ dissect_icecandidates(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
iceextensions_length = tvb_get_ntohs(tvb, offset+local_offset+icecandidates_offset+icecandidate_offset);
icecandidate_offset += iceextensions_length + 2;
- /* icecandidate_offset is now equal to the length of this icecandicate */
+ /* icecandidate_offset is now equal to the length of this icecandidate */
if (icecandidates_offset + icecandidate_offset > icecandidates_length) {
expert_add_info_format(pinfo, ti_icecandidates, &ei_reload_truncated_field, "Truncated IceCandidate");
break;
@@ -1983,7 +1983,7 @@ dissect_signature(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint16 o
ti_signature = proto_tree_add_item(tree,
hf_reload_signature, tvb, offset,
2 +/* SignatureAndHashAlgorithm */
- 1 + 2 + signeridentityvalue_length +/* SignatureIdenty length*/
+ 1 + 2 + signeridentityvalue_length +/* SignatureIdentity length */
2 + signaturevalue_length,
ENC_NA);
@@ -3877,7 +3877,7 @@ dissect_reload_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
fragment_head *reload_fd_head = NULL;
guint32 fragment = 0;
gboolean save_fragmented = FALSE;
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
offset = 0;
effective_length = tvb_captured_length(tvb);
diff --git a/epan/dissectors/packet-resp.c b/epan/dissectors/packet-resp.c
index b5d3c1caa4..2e41e1feeb 100644
--- a/epan/dissectors/packet-resp.c
+++ b/epan/dissectors/packet-resp.c
@@ -28,7 +28,7 @@
#define DESEGMENT_ENABLED(pinfo) ((pinfo)->can_desegment && resp_desegment)
static dissector_handle_t resp_handle;
-static gboolean resp_desegment = TRUE;
+static bool resp_desegment = true;
static int proto_resp;
diff --git a/epan/dissectors/packet-rf4ce-nwk.c b/epan/dissectors/packet-rf4ce-nwk.c
index a3883246ea..a657d28ce2 100644
--- a/epan/dissectors/packet-rf4ce-nwk.c
+++ b/epan/dissectors/packet-rf4ce-nwk.c
@@ -48,8 +48,8 @@ UAT_CSTRING_CB_DEF(uat_security_records, sec_str, uat_security_record_t)
UAT_VS_DEF(uat_security_records, type, uat_security_record_t, guint8, 0, "NWK Key")
UAT_CSTRING_CB_DEF(uat_security_records, label, uat_security_record_t)
-static uat_security_record_t *uat_security_records = NULL;
-static guint num_uat_security_records = 0;
+static uat_security_record_t *uat_security_records;
+static guint num_uat_security_records;
static gint ett_rf4ce_nwk;
static gint ett_rf4ce_nwk_payload;
diff --git a/epan/dissectors/packet-rf4ce-secur.c b/epan/dissectors/packet-rf4ce-secur.c
index 2105e3d7f6..b1e17dcb2e 100644
--- a/epan/dissectors/packet-rf4ce-secur.c
+++ b/epan/dissectors/packet-rf4ce-secur.c
@@ -22,11 +22,11 @@ void rf4ce_print_arr(const gchar *str, guint8 *ptr, guint16 len);
#define RF4CE_PRINT_ARR(s, p, l)
#endif /* RF4CE_DEBUG_EN */
-static keypair_context_t keypair_context = {0};
-static key_exchange_context_t key_exchange_context = {0};
-static addr_entry_t addr_table[RF4CE_ADDR_TABLE_SIZE] = {0};
-static nwk_key_entry_t nwk_key_storage[RF4CE_NWK_KEY_STORAGE_SIZE] = {0};
-static vendor_secret_entry_t vendor_secret_storage[RF4CE_VENDOR_SECRET_STORAGE_SIZE] = {0};
+static keypair_context_t keypair_context;
+static key_exchange_context_t key_exchange_context;
+static addr_entry_t addr_table[RF4CE_ADDR_TABLE_SIZE];
+static nwk_key_entry_t nwk_key_storage[RF4CE_NWK_KEY_STORAGE_SIZE];
+static vendor_secret_entry_t vendor_secret_storage[RF4CE_VENDOR_SECRET_STORAGE_SIZE];
static void keypair_context_calc_key(guint8 *nwk_key);
static nwk_key_entry_t *nwk_key_storage_get_entry_by_key(guint8 *nwk_key, gboolean key_from_gui);
diff --git a/epan/dissectors/packet-rfid-pn532.c b/epan/dissectors/packet-rfid-pn532.c
index 8e226afa3b..71002b1181 100644
--- a/epan/dissectors/packet-rfid-pn532.c
+++ b/epan/dissectors/packet-rfid-pn532.c
@@ -205,7 +205,7 @@ static int hf_pn532_andet_en;
static expert_field ei_unknown_data;
static expert_field ei_unexpected_data;
-static wmem_tree_t *command_info = NULL;
+static wmem_tree_t *command_info;
static dissector_handle_t pn532_handle;
diff --git a/epan/dissectors/packet-rip.c b/epan/dissectors/packet-rip.c
index 8cf33930a1..f0b99145fc 100644
--- a/epan/dissectors/packet-rip.c
+++ b/epan/dissectors/packet-rip.c
@@ -66,7 +66,7 @@ static const value_string rip_auth_type[] = {
#define RIP_ENTRY_LENGTH 20
#define MD5_AUTH_DATA_LEN 16
-static gboolean pref_display_routing_domain = FALSE;
+static bool pref_display_routing_domain;
static dissector_handle_t rip_handle;
diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c
index e5773cf897..d141f2f55e 100644
--- a/epan/dissectors/packet-rlc-lte.c
+++ b/epan/dissectors/packet-rlc-lte.c
@@ -51,7 +51,7 @@ static gint global_rlc_lte_am_sequence_analysis = SEQUENCE_ANALYSIS_MAC_ONLY;
static gint global_rlc_lte_um_sequence_analysis = SEQUENCE_ANALYSIS_MAC_ONLY;
/* By default do call PDCP/RRC dissectors for SDU data */
-static gboolean global_rlc_lte_call_pdcp_for_srb = TRUE;
+static bool global_rlc_lte_call_pdcp_for_srb = true;
enum pdcp_for_drb { PDCP_drb_off, PDCP_drb_SN_7, PDCP_drb_SN_12, PDCP_drb_SN_signalled, PDCP_drb_SN_15, PDCP_drb_SN_18};
static const enum_val_t pdcp_drb_col_vals[] = {
@@ -65,15 +65,15 @@ static const enum_val_t pdcp_drb_col_vals[] = {
};
static gint global_rlc_lte_call_pdcp_for_drb = (gint)PDCP_drb_SN_signalled;
-static gboolean global_rlc_lte_call_rrc_for_ccch = TRUE;
-static gboolean global_rlc_lte_call_rrc_for_mcch = FALSE;
-static gboolean global_rlc_lte_call_ip_for_mtch = FALSE;
+static bool global_rlc_lte_call_rrc_for_ccch = true;
+static bool global_rlc_lte_call_rrc_for_mcch;
+static bool global_rlc_lte_call_ip_for_mtch;
/* Preference to expect RLC headers without payloads */
-static gboolean global_rlc_lte_headers_expected = FALSE;
+static bool global_rlc_lte_headers_expected;
/* Re-assembly of segments */
-static gboolean global_rlc_lte_reassembly = TRUE;
+static bool global_rlc_lte_reassembly = true;
/* Tree storing UE related parameters */
#define NO_EXT_LI 0x0
@@ -359,7 +359,7 @@ static const value_string header_only_vals[] =
/**********************************************************************************/
/* These are for keeping track of UM/AM extension headers, and the lengths found */
/* in them */
-static guint8 s_number_of_extensions = 0;
+static guint8 s_number_of_extensions;
#define MAX_RLC_SDUS 192
static guint16 s_lengths[MAX_RLC_SDUS];
@@ -419,7 +419,7 @@ typedef struct
} channel_sequence_analysis_status;
/* The sequence analysis channel hash table */
-static wmem_map_t *sequence_analysis_channel_hash = NULL;
+static wmem_map_t *sequence_analysis_channel_hash;
/* Types for sequence analysis frame report hash table */
@@ -450,7 +450,7 @@ typedef struct
/* The sequence analysis frame report hash table instance itself */
-static wmem_map_t *sequence_analysis_report_hash = NULL;
+static wmem_map_t *sequence_analysis_report_hash;
static gpointer get_report_hash_key(guint16 SN, guint32 frameNumber,
@@ -461,7 +461,7 @@ static gpointer get_report_hash_key(guint16 SN, guint32 frameNumber,
/* The reassembly result hash table */
-static wmem_map_t *reassembly_report_hash = NULL;
+static wmem_map_t *reassembly_report_hash;
/* Create a new struct for reassembly */
@@ -625,7 +625,7 @@ typedef struct
guint32 frameNum;
} channel_repeated_nack_status;
-static wmem_map_t *repeated_nack_channel_hash = NULL;
+static wmem_map_t *repeated_nack_channel_hash;
typedef struct {
guint16 noOfNACKsRepeated;
@@ -633,7 +633,7 @@ typedef struct {
guint32 previousFrameNum;
} channel_repeated_nack_report;
-static wmem_map_t *repeated_nack_report_hash = NULL;
+static wmem_map_t *repeated_nack_report_hash;
@@ -3726,7 +3726,7 @@ void proto_reg_handoff_rlc_lte(void)
ip_handle = find_dissector_add_dependency("ip", proto_rlc_lte);
lte_rrc_mcch = find_dissector_add_dependency("lte_rrc.mcch", proto_rlc_lte);
lte_rrc_ul_ccch = find_dissector_add_dependency("lte_rrc.ul_ccch", proto_rlc_lte);
- lte_rrc_dl_ccch = find_dissector_add_dependency("lte_rrc.dl_dcch", proto_rlc_lte);
+ lte_rrc_dl_ccch = find_dissector_add_dependency("lte_rrc.dl_ccch", proto_rlc_lte);
lte_rrc_bcch_bch = find_dissector_add_dependency("lte_rrc.bcch_bch", proto_rlc_lte);
lte_rrc_bcch_dl_sch = find_dissector_add_dependency("lte_rrc.bcch_dl_sch", proto_rlc_lte);
lte_rrc_pcch = find_dissector_add_dependency("lte_rrc.pcch", proto_rlc_lte);
diff --git a/epan/dissectors/packet-rlc-nr.c b/epan/dissectors/packet-rlc-nr.c
index 3659904f9c..9656c312a1 100644
--- a/epan/dissectors/packet-rlc-nr.c
+++ b/epan/dissectors/packet-rlc-nr.c
@@ -41,7 +41,7 @@ void proto_reg_handoff_rlc_nr(void);
/* Preference settings */
/* By default do call PDCP/RRC dissectors for SDU data */
-static gboolean global_rlc_nr_call_pdcp_for_srb = TRUE;
+static bool global_rlc_nr_call_pdcp_for_srb = true;
enum pdcp_for_drb { PDCP_drb_off, PDCP_drb_SN_12, PDCP_drb_SN_18, PDCP_drb_SN_signalled};
static const enum_val_t pdcp_drb_col_vals[] = {
@@ -56,14 +56,14 @@ static gint global_rlc_nr_call_pdcp_for_ul_drb = (gint)PDCP_drb_off;
static gint global_rlc_nr_call_pdcp_for_dl_drb = (gint)PDCP_drb_off;
-static gboolean global_rlc_nr_call_rrc_for_ccch = TRUE;
+static bool global_rlc_nr_call_rrc_for_ccch = true;
/* Preference to expect RLC headers without payloads */
-static gboolean global_rlc_nr_headers_expected = FALSE;
+static bool global_rlc_nr_headers_expected;
/* Attempt reassembly. */
-static gboolean global_rlc_nr_reassemble_um_pdus = FALSE;
-static gboolean global_rlc_nr_reassemble_am_pdus = TRUE;
+static bool global_rlc_nr_reassemble_um_pdus;
+static bool global_rlc_nr_reassemble_am_pdus = true;
/* Tree storing UE related parameters (ueid, drbid) -> pdcp_bearer_parameters */
static wmem_tree_t *ue_parameters_tree;
@@ -784,7 +784,7 @@ static void dissect_rlc_nr_um(tvbuff_t *tvb, packet_info *pinfo,
more_frags /* more_frags */
);
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
next_tvb = process_reassembled_data(tvb, offset, pinfo, "Reassembled RLC SDU",
fh, &rlc_nr_frag_items,
&update_col_info, tree);
@@ -1034,7 +1034,7 @@ static void dissect_rlc_nr_am(tvbuff_t *tvb, packet_info *pinfo,
rlc_nr_info *p_rlc_nr_info, proto_item *top_ti,
rlc_3gpp_tap_info *tap_info _U_)
{
- gboolean dc, polling;
+ bool dc, polling;
guint32 seg_info, sn;
guint64 reserved;
proto_item *am_ti;
@@ -1164,7 +1164,7 @@ static void dissect_rlc_nr_am(tvbuff_t *tvb, packet_info *pinfo,
more_frags /* more_frags */
);
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
next_tvb = process_reassembled_data(tvb, offset, pinfo, "Reassembled RLC SDU",
fh, &rlc_nr_frag_items,
&update_col_info, tree);
diff --git a/epan/dissectors/packet-rmt-alc.c b/epan/dissectors/packet-rmt-alc.c
index 2429d3cf4a..a9687a9b4f 100644
--- a/epan/dissectors/packet-rmt-alc.c
+++ b/epan/dissectors/packet-rmt-alc.c
@@ -63,7 +63,7 @@ static dissector_handle_t rmt_fec_handle;
static dissector_table_t media_type_dissector_table;
-static gboolean g_codepoint_as_fec_encoding = TRUE;
+static bool g_codepoint_as_fec_encoding = true;
static gint g_ext_192 = LCT_PREFS_EXT_192_FLUTE;
static gint g_ext_193 = LCT_PREFS_EXT_193_FLUTE;
static gint g_atsc3_mode = LCT_ATSC3_MODE_AUTO;
diff --git a/epan/dissectors/packet-rnsap.c b/epan/dissectors/packet-rnsap.c
index c850830589..74cfda6200 100644
--- a/epan/dissectors/packet-rnsap.c
+++ b/epan/dissectors/packet-rnsap.c
@@ -1270,9 +1270,9 @@ typedef struct {
const char *obj_id;
} rnsap_private_data_t;
-static dissector_handle_t ranap_handle = NULL;
-static dissector_handle_t rrc_dl_ccch_handle = NULL;
-static dissector_handle_t rrc_ul_ccch_handle = NULL;
+static dissector_handle_t ranap_handle;
+static dissector_handle_t rrc_dl_ccch_handle;
+static dissector_handle_t rrc_ul_ccch_handle;
/* Initialize the protocol and registered fields */
static int proto_rnsap;
@@ -4391,1433 +4391,1433 @@ static int ett_rnsap_transportLayerAddress;
static int ett_rnsap_transportLayerAddress_nsap;
static int ett_rnsap_IMSI;
-static gint ett_rnsap_PrivateIE_ID;
-static gint ett_rnsap_ProcedureID;
-static gint ett_rnsap_TransactionID;
-static gint ett_rnsap_ProtocolIE_Container;
-static gint ett_rnsap_ProtocolIE_Field;
-static gint ett_rnsap_ProtocolExtensionContainer;
-static gint ett_rnsap_ProtocolExtensionField;
-static gint ett_rnsap_PrivateIE_Container;
-static gint ett_rnsap_PrivateIE_Field;
-static gint ett_rnsap_ActivationInformation;
-static gint ett_rnsap_ActivationInformationItem;
-static gint ett_rnsap_Active_MBMS_Bearer_Service_ListFDD;
-static gint ett_rnsap_Active_MBMS_Bearer_Service_ListFDD_PFL;
-static gint ett_rnsap_Active_MBMS_Bearer_Service_ListTDD;
-static gint ett_rnsap_Active_MBMS_Bearer_Service_ListTDD_PFL;
-static gint ett_rnsap_Active_Pattern_Sequence_Information;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_Response_RLAddList;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_Response_RLAdd_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Setup_Info;
-static gint ett_rnsap_ANRReportIndication;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_Setup;
-static gint ett_rnsap_Additional_EDCH_FDD_Setup_Cell_Information;
-static gint ett_rnsap_Additional_EDCH_UL_DPCH_Information_Setup;
-static gint ett_rnsap_Additional_EDCH_F_DPCH_Information;
-static gint ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Setup_List;
-static gint ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Setup_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_To_Add_List;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_To_Add_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_UL_DPCH_Information_Addition;
-static gint ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Add_List;
-static gint ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Add_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Modify_List;
-static gint ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Modify_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_FDD_Information;
-static gint ett_rnsap_DTX_Information2;
-static gint ett_rnsap_Additional_EDCH_MAC_d_Flows_Specific_Info_List;
-static gint ett_rnsap_Additional_EDCH_MAC_d_Flows_Specific_Info;
-static gint ett_rnsap_Additional_EDCH_MAC_d_Flow_Specific_Information_Response_List;
-static gint ett_rnsap_Additional_EDCH_MAC_d_Flows_Specific_Info_Response;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_Response_List;
-static gint ett_rnsap_Additional_EDCH_FDD_Information_Response_ItemIEs;
-static gint ett_rnsap_EDCH_Additional_RL_Specific_Information_Response_List;
-static gint ett_rnsap_EDCH_Additional_RL_Specific_Information_Response_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_Response_RLReconf_List;
-static gint ett_rnsap_Additional_EDCH_FDD_Information_Response_RLReconf_Items;
-static gint ett_rnsap_EDCH_Additional_RL_Specific_Modified_Information_Response_List;
-static gint ett_rnsap_EDCH_Additional_RL_Specific_Modified_Information_Response_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_ConfigurationChange_List;
-static gint ett_rnsap_Additional_EDCH_ConfigurationChange_Info_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_UL_DPCH_Information_Modify;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_Removal_List;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_Removal_Info_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_FDD_Update_Information;
-static gint ett_rnsap_Additional_EDCH_DL_Control_Channel_Change_Information_List;
-static gint ett_rnsap_Additional_EDCH_DL_Control_Channel_Change_Info_ItemIEs;
-static gint ett_rnsap_AdditionalPreferredFrequency;
-static gint ett_rnsap_AdditionalPreferredFrequencyItem;
-static gint ett_rnsap_AffectedUEInformationForMBMS;
-static gint ett_rnsap_AllocationRetentionPriority;
-static gint ett_rnsap_Allowed_Rate_Information;
-static gint ett_rnsap_Angle_Of_Arrival_Value_LCR;
-static gint ett_rnsap_ANR_Cell_Information;
-static gint ett_rnsap_ANR_FDD_CellInformation;
-static gint ett_rnsap_ANR_TDD_CellInformation;
-static gint ett_rnsap_ANR_LCR_TDD_CellInformation;
-static gint ett_rnsap_ANR_Multiple_PLMN_List;
-static gint ett_rnsap_BadSatellites;
-static gint ett_rnsap_T_badSatelliteInformation;
-static gint ett_rnsap_T_badSatelliteInformation_item;
-static gint ett_rnsap_BDS_IGPInfoList;
-static gint ett_rnsap_BDS_IGPInfo;
-static gint ett_rnsap_BDS_Ionospheric_Grid_Model;
-static gint ett_rnsap_BSIC;
-static gint ett_rnsap_BurstModeParameters;
-static gint ett_rnsap_Cause;
-static gint ett_rnsap_CellBased;
-static gint ett_rnsap_CellIdList;
-static gint ett_rnsap_Cell_Capacity_Class_Value;
-static gint ett_rnsap_CGI;
-static gint ett_rnsap_CommonMeasurementAccuracy;
-static gint ett_rnsap_CommonMeasurementValue;
-static gint ett_rnsap_CommonMeasurementValueInformation;
-static gint ett_rnsap_CommonMeasurementAvailable;
-static gint ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationFDD;
-static gint ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationFDDItem;
-static gint ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationLCR;
-static gint ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationItemLCR;
-static gint ett_rnsap_Common_E_DCH_LogicalChannelInformation;
-static gint ett_rnsap_Common_E_DCH_LogicalChannelInformationItem;
-static gint ett_rnsap_Common_E_RGCH_Cell_Information;
-static gint ett_rnsap_Common_E_RGCH_Cell_Info;
-static gint ett_rnsap_Continuous_Packet_Connectivity_DTX_DRX_Information;
-static gint ett_rnsap_Continuous_Packet_Connectivity_DTX_DRX_Information_to_Modify;
-static gint ett_rnsap_Continuous_Packet_Connectivity_HS_SCCH_Less_Information;
-static gint ett_rnsap_Continuous_Packet_Connectivity_HS_SCCH_Less_InformationItem;
-static gint ett_rnsap_Continuous_Packet_Connectivity_HS_SCCH_Less_Information_Response;
-static gint ett_rnsap_CorrespondingCells;
-static gint ett_rnsap_CPC_Information;
-static gint ett_rnsap_Counting_Information;
-static gint ett_rnsap_Counting_Information_List;
-static gint ett_rnsap_CriticalityDiagnostics;
-static gint ett_rnsap_CriticalityDiagnostics_IE_List;
-static gint ett_rnsap_CriticalityDiagnostics_IE_List_item;
-static gint ett_rnsap_MessageStructure;
-static gint ett_rnsap_MessageStructure_item;
-static gint ett_rnsap_CN_CS_DomainIdentifier;
-static gint ett_rnsap_CN_PS_DomainIdentifier;
-static gint ett_rnsap_CPC_InformationLCR;
-static gint ett_rnsap_ContinuousPacketConnectivity_DRX_InformationLCR;
-static gint ett_rnsap_HS_SCCH_DRX_Information_LCR;
-static gint ett_rnsap_E_AGCH_DRX_Information_LCR;
-static gint ett_rnsap_E_AGCH_DRX_Parameters;
-static gint ett_rnsap_ContinuousPacketConnectivity_DRX_Information_to_Modify_LCR;
-static gint ett_rnsap_DRX_Information_to_Modify_LCR;
-static gint ett_rnsap_DRX_Information_to_Modify_Items_LCR;
-static gint ett_rnsap_ContinuousPacketConnectivity_DRX_Information_ResponseLCR;
-static gint ett_rnsap_HS_SCCH_DRX_Information_ResponseLCR;
-static gint ett_rnsap_E_AGCH_DRX_Information_ResponseLCR;
-static gint ett_rnsap_E_AGCH_DRX_Parameters_Response;
-static gint ett_rnsap_Controlled_Object_Scope;
-static gint ett_rnsap_DBDS_CorrectionsReq;
-static gint ett_rnsap_DBDS_Corrections;
-static gint ett_rnsap_DBDS_Info;
-static gint ett_rnsap_DBDS_SignalInfoList;
-static gint ett_rnsap_DBDS_SignalInfo;
-static gint ett_rnsap_DBDS_InfoList;
-static gint ett_rnsap_DCH_ENH_Information;
-static gint ett_rnsap_DCH_ENH_Information_to_Modify;
-static gint ett_rnsap_DCH_ENH_Concat;
-static gint ett_rnsap_DCH_ENH_Information_Reconf;
-static gint ett_rnsap_DCH_FDD_Information;
-static gint ett_rnsap_DCH_FDD_InformationItem;
-static gint ett_rnsap_DCH_MeasurementOccasion_Information;
-static gint ett_rnsap_DchMeasurementOccasionInformation_Item;
-static gint ett_rnsap_Measurement_Occasion_Pattern_Sequence_parameters;
-static gint ett_rnsap_DCH_Specific_FDD_InformationList;
-static gint ett_rnsap_DCH_Specific_FDD_Item;
-static gint ett_rnsap_DCH_InformationResponse;
-static gint ett_rnsap_DCH_InformationResponseItem;
-static gint ett_rnsap_DCH_TDD_Information;
-static gint ett_rnsap_DCH_TDD_InformationItem;
-static gint ett_rnsap_DCH_Specific_TDD_InformationList;
-static gint ett_rnsap_DCH_Specific_TDD_Item;
-static gint ett_rnsap_DedicatedMeasurementValue;
-static gint ett_rnsap_DedicatedMeasurementValueInformation;
-static gint ett_rnsap_DedicatedMeasurementAvailable;
-static gint ett_rnsap_DelayedActivation;
-static gint ett_rnsap_DelayedActivationUpdate;
-static gint ett_rnsap_Activate_Info;
-static gint ett_rnsap_Deactivate_Info;
-static gint ett_rnsap_Execution_Type;
-static gint ett_rnsap_DGANSSCorrections;
-static gint ett_rnsap_T_dGANSS_Information;
-static gint ett_rnsap_T_dGANSS_Information_item;
-static gint ett_rnsap_T_dGANSS_SignalInformation;
-static gint ett_rnsap_T_dGANSS_SignalInformation_item;
-static gint ett_rnsap_DGANSS_Corrections_Req;
-static gint ett_rnsap_DGANSSThreshold;
-static gint ett_rnsap_DGNSS_ValidityPeriod;
-static gint ett_rnsap_DGPSCorrections;
-static gint ett_rnsap_T_satellite_DGPSCorrections_Information;
-static gint ett_rnsap_T_satellite_DGPSCorrections_Information_item;
-static gint ett_rnsap_DGPSThreshold;
-static gint ett_rnsap_DL_TBS;
-static gint ett_rnsap_HS_DSCH_Cell_List;
-static gint ett_rnsap_HS_DSCH_Cell;
-static gint ett_rnsap_DL_PowerBalancing_Information;
-static gint ett_rnsap_DL_ReferencePowerInformationList;
-static gint ett_rnsap_DL_ReferencePowerInformationItem;
-static gint ett_rnsap_DL_ReferencePowerInformation;
-static gint ett_rnsap_DL_Timeslot_Information;
-static gint ett_rnsap_DL_Timeslot_InformationItem;
-static gint ett_rnsap_DL_TimeslotLCR_Information;
-static gint ett_rnsap_DL_TimeslotLCR_InformationItem;
-static gint ett_rnsap_DL_Timeslot_Information768;
-static gint ett_rnsap_DL_Timeslot_InformationItem768;
-static gint ett_rnsap_DL_TimeSlot_ISCP_Info;
-static gint ett_rnsap_DL_TimeSlot_ISCP_InfoItem;
-static gint ett_rnsap_DL_TimeSlot_ISCP_LCR_Information;
-static gint ett_rnsap_DL_TimeSlot_ISCP_LCR_InfoItem;
-static gint ett_rnsap_Downlink_TPC_enhancements_Information;
-static gint ett_rnsap_Downlink_TPC_enhancements_Reconf;
-static gint ett_rnsap_DRX_Information;
-static gint ett_rnsap_DRX_Information_to_Modify;
-static gint ett_rnsap_DRX_Information_to_Modify_Items;
-static gint ett_rnsap_DSCH_FlowControlInformation;
-static gint ett_rnsap_DSCH_FlowControlItem;
-static gint ett_rnsap_DSCH_TDD_Information;
-static gint ett_rnsap_DSCH_TDD_InformationItem;
-static gint ett_rnsap_DTX_Cycle_2ms_Items;
-static gint ett_rnsap_DTX_Cycle_2ms_to_Modify_Items;
-static gint ett_rnsap_DTX_Cycle_10ms_Items;
-static gint ett_rnsap_DTX_Cycle_10ms_to_Modify_Items;
-static gint ett_rnsap_DTX_Information;
-static gint ett_rnsap_DTX_Information_to_Modify;
-static gint ett_rnsap_DTX_Information_to_Modify_Items;
-static gint ett_rnsap_EARFCN_Information;
-static gint ett_rnsap_EARFCN_FDD;
-static gint ett_rnsap_EARFCN_FDD_Extended;
-static gint ett_rnsap_ECGI;
-static gint ett_rnsap_EDCH_FDD_DL_ControlChannelInformation;
-static gint ett_rnsap_EDCH_FDD_Information;
-static gint ett_rnsap_EDCH_FDD_InformationResponse;
-static gint ett_rnsap_EDCH_MACdFlow_Specific_InformationResponse;
-static gint ett_rnsap_EDCH_MACdFlow_Specific_InformationResponseItem;
-static gint ett_rnsap_EDCH_FDD_Information_To_Modify;
-static gint ett_rnsap_E_DCH_FDD_Update_Information;
-static gint ett_rnsap_E_DCH_MACdFlow_Specific_UpdateInformation;
-static gint ett_rnsap_E_DCH_MACdFlow_Specific_UpdateInformation_Item;
-static gint ett_rnsap_E_DCH_DL_Control_Channel_Change_Information;
-static gint ett_rnsap_E_DCH_DL_Control_Channel_Change_Information_Item;
-static gint ett_rnsap_E_DCH_DL_Control_Channel_Grant_Information;
-static gint ett_rnsap_E_DCH_DL_Control_Channel_Grant_Information_Item;
-static gint ett_rnsap_E_DCH_Grant_Type_Information;
-static gint ett_rnsap_E_DCH_LogicalChannelInformation;
-static gint ett_rnsap_E_DCH_LogicalChannelInformationItem;
-static gint ett_rnsap_E_DCH_MACdPDU_SizeList;
-static gint ett_rnsap_E_DCH_MACdPDU_SizeListItem;
-static gint ett_rnsap_E_DCH_LogicalChannelToModify;
-static gint ett_rnsap_E_DCH_LogicalChannelToModifyItem;
-static gint ett_rnsap_E_DCH_MACdPDU_SizeToModifyList;
-static gint ett_rnsap_E_DCH_LogicalChannelToDelete;
-static gint ett_rnsap_E_DCH_LogicalChannelToDeleteItem;
-static gint ett_rnsap_EDCH_MACdFlows_Information;
-static gint ett_rnsap_EDCH_MACdFlow_Specific_InfoList;
-static gint ett_rnsap_EDCH_MACdFlow_Specific_InfoItem;
-static gint ett_rnsap_EDCH_MACdFlow_Specific_InfoToModifyList;
-static gint ett_rnsap_EDCH_MACdFlow_Specific_InfoToModifyItem;
-static gint ett_rnsap_EDCH_MACdFlows_To_Delete;
-static gint ett_rnsap_EDCH_MACdFlows_To_Delete_Item;
-static gint ett_rnsap_E_DCH_Non_Scheduled_Transmission_Grant_Items;
-static gint ett_rnsap_E_DCH_Serving_cell_change_informationResponse;
-static gint ett_rnsap_E_DCH_serving_cell_change_choice;
-static gint ett_rnsap_E_DCH_serving_cell_change_successful;
-static gint ett_rnsap_E_DCH_RL_InformationList_Rsp;
-static gint ett_rnsap_E_DCH_RL_InformationList_Rsp_Item;
-static gint ett_rnsap_E_DCH_serving_cell_change_unsuccessful;
-static gint ett_rnsap_E_DCH_TTI_Length;
-static gint ett_rnsap_E_DCH_TTI_Length_to_Modify;
-static gint ett_rnsap_EDPCH_Information_FDD;
-static gint ett_rnsap_EDPCH_Information_RLReconfRequest_FDD;
-static gint ett_rnsap_EDCH_Serving_RL;
-static gint ett_rnsap_EDCH_Serving_RL_in_this_DRNS;
-static gint ett_rnsap_Enhanced_FACH_Information_ResponseFDD;
-static gint ett_rnsap_Enhanced_FACH_Information_ResponseLCR;
-static gint ett_rnsap_E_TFCI_Boost_Information;
-static gint ett_rnsap_E_TFCS_Information;
-static gint ett_rnsap_EventA;
-static gint ett_rnsap_EventB;
-static gint ett_rnsap_EventC;
-static gint ett_rnsap_EventD;
-static gint ett_rnsap_EventE;
-static gint ett_rnsap_EventF;
-static gint ett_rnsap_EventH;
-static gint ett_rnsap_Event1F_Parameters;
-static gint ett_rnsap_Event1I_Parameters;
-static gint ett_rnsap_E_DCH_Information;
-static gint ett_rnsap_E_PUCH_Information;
-static gint ett_rnsap_E_TFCS_Information_TDD;
-static gint ett_rnsap_E_DCH_QPSK_RefBetaInfo;
-static gint ett_rnsap_E_DCH_sixteenQAM_RefBetaInfo;
-static gint ett_rnsap_E_DCH_RefBeta_Item;
-static gint ett_rnsap_E_DCH_MACdFlows_Information_TDD;
-static gint ett_rnsap_E_DCH_MACdFlow_InfoTDDItem;
-static gint ett_rnsap_E_DCH_TDD_Information;
-static gint ett_rnsap_E_DCH_Information_Reconfig;
-static gint ett_rnsap_E_DCH_TDD_Information_to_Modify;
-static gint ett_rnsap_E_DCH_TDD_Information_to_Modify_List;
-static gint ett_rnsap_E_DCH_MACdFlow_ModifyTDDItem;
-static gint ett_rnsap_E_DCH_Information_Response;
-static gint ett_rnsap_Fast_TTI_switching_Mode_synchronized;
-static gint ett_rnsap_Fast_TTI_switching_Mode_unsynchronized;
-static gint ett_rnsap_E_DCH_TDD_MACdFlow_Specific_InformationResp;
-static gint ett_rnsap_E_DCH_TDD_MACdFlow_Specific_InformationResp_Item;
-static gint ett_rnsap_E_AGCH_Specific_InformationRespListTDD;
-static gint ett_rnsap_E_AGCH_Specific_InformationResp_ItemTDD;
-static gint ett_rnsap_E_HICH_InformationResp;
-static gint ett_rnsap_E_DCH_Non_Scheduled_Grant_Info;
-static gint ett_rnsap_E_DCH_768_Information;
-static gint ett_rnsap_E_DCH_TDD_Information768;
-static gint ett_rnsap_E_DCH_768_Information_Reconfig;
-static gint ett_rnsap_E_DCH_768_Information_Response;
-static gint ett_rnsap_E_AGCH_Specific_InformationRespList768TDD;
-static gint ett_rnsap_E_AGCH_Specific_InformationResp_Item768TDD;
-static gint ett_rnsap_E_HICH_InformationResp768;
-static gint ett_rnsap_E_DCH_Non_Scheduled_Grant_Info768;
-static gint ett_rnsap_E_DCH_LCR_Information;
-static gint ett_rnsap_E_PUCH_LCR_Information;
-static gint ett_rnsap_E_DCH_LCR_TDD_Information;
-static gint ett_rnsap_E_DCH_LCR_Information_Reconfig;
-static gint ett_rnsap_E_DCH_LCR_Information_Response;
-static gint ett_rnsap_E_AGCH_Specific_InformationRespList_LCR_TDD;
-static gint ett_rnsap_E_AGCH_Specific_InformationResp_Item_LCR_TDD;
-static gint ett_rnsap_E_HICH_Specific_InformationResp_LCR;
-static gint ett_rnsap_E_HICH_Scheduled_InformationRespList_LCR_TDD;
-static gint ett_rnsap_E_HICH_Scheduled_InformationResp_Item_LCR_TDD;
-static gint ett_rnsap_E_HICH_InformationResp_LCR;
-static gint ett_rnsap_E_DCH_Non_Scheduled_Grant_Info_LCR;
-static gint ett_rnsap_Radio_Links_without_DPCH_FDPCH_Indication;
-static gint ett_rnsap_Radio_Links_without_DPCH_FDPCH_Information;
-static gint ett_rnsap_Extended_S_RNTI_Group;
-static gint ett_rnsap_ExtendedAffectedUEInformationForMBMS;
-static gint ett_rnsap_E_DCH_Semi_PersistentScheduling_Information_LCR;
-static gint ett_rnsap_E_DCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
-static gint ett_rnsap_E_DCH_Semi_PersistentScheduling_Information_ResponseLCR;
-static gint ett_rnsap_Initial_E_DCH_SPS_resource;
-static gint ett_rnsap_E_DCH_SPS_HICH_Information;
-static gint ett_rnsap_E_HICH_Configuration;
-static gint ett_rnsap_Same_As_Scheduled_E_HICH;
-static gint ett_rnsap_E_HICH_InformationResp_ExplicitConfiguration_LCR;
-static gint ett_rnsap_FACH_FlowControlInformation;
-static gint ett_rnsap_FACH_FlowControlInformationItem;
-static gint ett_rnsap_FACH_InformationList;
-static gint ett_rnsap_FACH_InformationItem;
-static gint ett_rnsap_FDD_DCHs_to_Modify;
-static gint ett_rnsap_FDD_DCHs_to_ModifyItem;
-static gint ett_rnsap_FDD_DCHs_to_ModifySpecificInformationList;
-static gint ett_rnsap_FDD_DCHs_to_ModifySpecificItem;
-static gint ett_rnsap_FDD_DL_CodeInformation;
-static gint ett_rnsap_FDD_DL_CodeInformationItem;
-static gint ett_rnsap_F_DPCH_Info;
-static gint ett_rnsap_F_DPCH_Info_To_Modify;
-static gint ett_rnsap_FPACH_Information;
-static gint ett_rnsap_FTPICH_Information;
-static gint ett_rnsap_FTPICH_Information_To_Modify;
-static gint ett_rnsap_FTPICH_Information_Reconf;
-static gint ett_rnsap_FTPICH_Reconfiguration_Information;
-static gint ett_rnsap_FTPICH_Information_Response;
-static gint ett_rnsap_GA_Cell;
-static gint ett_rnsap_GA_Cell_item;
-static gint ett_rnsap_GA_CellAdditionalShapes;
-static gint ett_rnsap_GA_AltitudeAndDirection;
-static gint ett_rnsap_GA_EllipsoidArc;
-static gint ett_rnsap_Gainfactors_10ms_mode;
-static gint ett_rnsap_T_signalledGainFactors10ms;
-static gint ett_rnsap_GANSS_AddClockModels;
-static gint ett_rnsap_GANSS_AddOrbitModels;
-static gint ett_rnsap_GANSS_Additional_Ionospheric_Model;
-static gint ett_rnsap_GANSS_Additional_Navigation_Models;
-static gint ett_rnsap_GANSS_Additional_Time_Models;
-static gint ett_rnsap_GANSS_Additional_UTC_Models;
-static gint ett_rnsap_GANSS_Almanac;
-static gint ett_rnsap_T_gANSS_AlmanacModel;
-static gint ett_rnsap_T_gANSS_keplerianParameters;
-static gint ett_rnsap_GANSS_alm_keplerianNAVAlmanac;
-static gint ett_rnsap_GANSS_alm_KEPLERIANBDSALMANAC;
-static gint ett_rnsap_GANSS_alm_keplerianReducedAlmanac;
-static gint ett_rnsap_GANSS_alm_keplerianMidiAlmanac;
-static gint ett_rnsap_GANSS_alm_keplerianGLONASS;
-static gint ett_rnsap_GANSS_alm_ecefSBASAlmanac;
-static gint ett_rnsap_GANSS_Auxiliary_Information;
-static gint ett_rnsap_GANSS_AuxInfoGANSS_ID1;
-static gint ett_rnsap_GANSS_AuxInfoGANSS_ID1_item;
-static gint ett_rnsap_GANSS_AuxInfoGANSS_ID3;
-static gint ett_rnsap_GANSS_AuxInfoGANSS_ID3_item;
-static gint ett_rnsap_GANSS_BDSclockModel;
-static gint ett_rnsap_GANSS_Clock_Model;
-static gint ett_rnsap_GANSS_Clock_Model_item;
-static gint ett_rnsap_GANSS_CNAVclockModel;
-static gint ett_rnsap_GANSS_Common_Data;
-static gint ett_rnsap_GANSS_CommonDataInfoReq;
-static gint ett_rnsap_GANSS_Data_Bit_Assistance;
-static gint ett_rnsap_GANSS_DataBitAssistanceList;
-static gint ett_rnsap_GANSS_DataBitAssistanceItem;
-static gint ett_rnsap_GANSS_DataBitAssistanceSgnList;
-static gint ett_rnsap_GANSS_DataBitAssistanceSgnItem;
-static gint ett_rnsap_GANSS_Data_Bit_Assistance_ReqItem;
-static gint ett_rnsap_GANSS_Data_Bit_Assistance_ReqList;
-static gint ett_rnsap_T_ganss_SatelliteInfo;
-static gint ett_rnsap_GANSS_DeltaUT1;
-static gint ett_rnsap_GANSS_Earth_Orientation_Parameters;
-static gint ett_rnsap_GANSS_GenericDataInfoReqList;
-static gint ett_rnsap_GANSS_GenericDataInfoReqItem;
-static gint ett_rnsap_GANSS_Generic_Data;
-static gint ett_rnsap_GANSS_Generic_DataItem;
-static gint ett_rnsap_GANSS_GLONASSclockModel;
-static gint ett_rnsap_GANSS_Information;
-static gint ett_rnsap_GANSS_Ionospheric_Model;
-static gint ett_rnsap_GANSS_IonosphereRegionalStormFlags;
-static gint ett_rnsap_GANSS_NAVclockModel;
-static gint ett_rnsap_GANSS_Navigation_Model_And_Time_Recovery;
-static gint ett_rnsap_GANSS_NavModel_BDSKeplerianSet;
-static gint ett_rnsap_GANSS_NavModel_CNAVKeplerianSet;
-static gint ett_rnsap_GANSS_NavModel_GLONASSecef;
-static gint ett_rnsap_GANSS_NavModel_NAVKeplerianSet;
-static gint ett_rnsap_GANSS_NavModel_SBASecef;
-static gint ett_rnsap_GANSS_Orbit_Model;
-static gint ett_rnsap_T_gANSS_keplerianParameters_01;
-static gint ett_rnsap_GANSS_Real_Time_Integrity;
-static gint ett_rnsap_GANSS_Real_Time_Integrity_item;
-static gint ett_rnsap_GANSS_RX_Pos;
-static gint ett_rnsap_GANSS_SatelliteInformationKP;
-static gint ett_rnsap_GANSS_SatelliteInformationKP_item;
-static gint ett_rnsap_Ganss_Sat_Info_AddNavList;
-static gint ett_rnsap_Ganss_Sat_Info_AddNavList_item;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_BDSkpList;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_BDS;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_GLOkpList;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_GLOkpList_item;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_MIDIkpList;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_MIDIkpList_item;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_NAVkpList;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_NAVkpList_item;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_REDkpList;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_REDkpList_item;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_SBASecefList;
-static gint ett_rnsap_GANSS_SAT_Info_Almanac_SBASecefList_item;
-static gint ett_rnsap_GANSS_Sat_Info_Nav;
-static gint ett_rnsap_GANSS_Sat_Info_Nav_item;
-static gint ett_rnsap_GANSS_SBASclockModel;
-static gint ett_rnsap_GANSS_Time_Model;
-static gint ett_rnsap_GANSS_Transmission_Time;
-static gint ett_rnsap_GANSS_UTC_Model;
-static gint ett_rnsap_GANSS_UTCmodelSet1;
-static gint ett_rnsap_GANSS_UTCmodelSet2;
-static gint ett_rnsap_GANSS_UTCmodelSet3;
-static gint ett_rnsap_GANSS_UTCmodelSet4;
-static gint ett_rnsap_GA_PointWithAltitude;
-static gint ett_rnsap_GA_PointWithAltitudeAndUncertaintyEllipsoid;
-static gint ett_rnsap_GA_PointWithUnCertaintyEllipse;
-static gint ett_rnsap_GA_UncertaintyEllipse;
-static gint ett_rnsap_GA_PointWithUnCertainty;
-static gint ett_rnsap_GA_AccessPointPosition;
-static gint ett_rnsap_GeographicalCoordinate;
-static gint ett_rnsap_GERAN_SI_Type;
-static gint ett_rnsap_GERAN_SystemInfo;
-static gint ett_rnsap_GERAN_SystemInfo_item;
-static gint ett_rnsap_GPS_Almanac;
-static gint ett_rnsap_T_satellite_Almanac_Information;
-static gint ett_rnsap_T_satellite_Almanac_Information_item;
-static gint ett_rnsap_Satellite_Almanac_Information_ExtItem;
-static gint ett_rnsap_Satellite_Almanac_Information_ExtItem_item;
-static gint ett_rnsap_GPSInformation;
-static gint ett_rnsap_GPSInformation_item;
-static gint ett_rnsap_GPS_Ionospheric_Model;
-static gint ett_rnsap_GPS_NavigationModel_and_TimeRecovery;
-static gint ett_rnsap_GPS_NavigationModel_and_TimeRecovery_item;
-static gint ett_rnsap_GPS_RealTime_Integrity;
-static gint ett_rnsap_GPS_RX_POS;
-static gint ett_rnsap_GPS_UTC_Model;
-static gint ett_rnsap_Guaranteed_Rate_Information;
-static gint ett_rnsap_HARQ_MemoryPartitioning;
-static gint ett_rnsap_HARQ_MemoryPartitioning_Implicit;
-static gint ett_rnsap_HARQ_MemoryPartitioning_Explicit;
-static gint ett_rnsap_HARQ_MemoryPartitioningList;
-static gint ett_rnsap_HARQ_MemoryPartitioningInfoExtForMIMO;
-static gint ett_rnsap_HARQ_MemoryPartitioningItem;
-static gint ett_rnsap_HSDSCH_FDD_Information;
-static gint ett_rnsap_HSDSCH_FDD_Information_Response;
-static gint ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Information;
-static gint ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Information_Response;
-static gint ett_rnsap_HS_DSCH_Secondary_Serving_Information_To_Modify;
-static gint ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Information_To_Modify_Unsynchronised;
-static gint ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Update_Information;
-static gint ett_rnsap_HS_DSCH_Secondary_Serving_Cell_Change_Information_Response;
-static gint ett_rnsap_HS_DSCH_Secondary_Serving_cell_change_choice;
-static gint ett_rnsap_HS_Secondary_Serving_cell_change_successful;
-static gint ett_rnsap_HS_Secondary_Serving_cell_change_unsuccessful;
-static gint ett_rnsap_HSDSCH_Information_to_Modify;
-static gint ett_rnsap_HSDSCH_Information_to_Modify_Unsynchronised;
-static gint ett_rnsap_HSDSCH_MACdFlow_Specific_InfoList;
-static gint ett_rnsap_HSDSCH_MACdFlow_Specific_InfoItem;
-static gint ett_rnsap_HSDSCH_MACdFlow_Specific_InfoList_Response;
-static gint ett_rnsap_HSDSCH_MACdFlow_Specific_InfoItem_Response;
-static gint ett_rnsap_HSDSCH_MACdFlow_Specific_InfoList_to_Modify;
-static gint ett_rnsap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify;
-static gint ett_rnsap_HSDSCH_MACdFlows_Information;
-static gint ett_rnsap_HSDSCH_MACdFlows_to_Delete;
-static gint ett_rnsap_HSDSCH_MACdFlows_to_Delete_Item;
-static gint ett_rnsap_HSDSCH_Initial_Capacity_Allocation;
-static gint ett_rnsap_HSDSCH_Initial_Capacity_AllocationItem;
-static gint ett_rnsap_HSDSCH_PreconfigurationInfo;
-static gint ett_rnsap_Additional_EDCH_Preconfiguration_Information;
-static gint ett_rnsap_Additional_EDCH_Preconfiguration_Information_ItemIEs;
-static gint ett_rnsap_HSDSCH_PreconfigurationSetup;
-static gint ett_rnsap_HS_SCCH_PreconfiguredCodes;
-static gint ett_rnsap_HS_SCCH_PreconfiguredCodesItem;
-static gint ett_rnsap_HS_DSCH_serving_cell_change_information;
-static gint ett_rnsap_HS_DSCH_serving_cell_change_informationResponse;
-static gint ett_rnsap_HS_DSCH_serving_cell_change_choice;
-static gint ett_rnsap_HS_serving_cell_change_successful;
-static gint ett_rnsap_HS_serving_cell_change_unsuccessful;
-static gint ett_rnsap_HSDSCH_TDD_Information;
-static gint ett_rnsap_HSDSCH_TDD_Information_Response;
-static gint ett_rnsap_HSPDSCH_TDD_Specific_InfoList_Response;
-static gint ett_rnsap_HSPDSCH_TDD_Specific_InfoItem_Response;
-static gint ett_rnsap_HSPDSCH_TDD_Specific_InfoList_Response_LCR;
-static gint ett_rnsap_HSPDSCH_TDD_Specific_InfoItem_Response_LCR;
-static gint ett_rnsap_HSPDSCH_TDD_Specific_InfoList_Response768;
-static gint ett_rnsap_HSPDSCH_TDD_Specific_InfoItem_Response768;
-static gint ett_rnsap_HSSCCH_FDD_Specific_InfoList_Response;
-static gint ett_rnsap_HSSCCH_FDD_Specific_InfoItem_Response;
-static gint ett_rnsap_HSSCCH_TDD_Specific_InfoList_Response;
-static gint ett_rnsap_HSSCCH_TDD_Specific_InfoItem_Response;
-static gint ett_rnsap_HSSCCH_TDD_Specific_InfoList_Response_LCR;
-static gint ett_rnsap_HSSCCH_TDD_Specific_InfoItem_Response_LCR;
-static gint ett_rnsap_HSSCCH_TDD_Specific_InfoList_Response768;
-static gint ett_rnsap_HSSCCH_TDD_Specific_InfoItem_Response768;
-static gint ett_rnsap_HSSICH_Info;
-static gint ett_rnsap_HSSICH_InfoLCR;
-static gint ett_rnsap_HSSICH_Info768;
-static gint ett_rnsap_HS_SICH_Reception_Quality_Value;
-static gint ett_rnsap_HSDSCH_FDD_Update_Information;
-static gint ett_rnsap_HSDSCH_TDD_Update_Information;
-static gint ett_rnsap_MIMO_ReferenceSignal_InformationListLCR;
-static gint ett_rnsap_HSSICH_ReferenceSignal_InformationLCR;
-static gint ett_rnsap_HS_DSCH_Semi_PersistentScheduling_Information_LCR;
-static gint ett_rnsap_Transport_Block_Size_List_LCR;
-static gint ett_rnsap_Transport_Block_Size_Item_LCR;
-static gint ett_rnsap_Repetition_Period_List_LCR;
-static gint ett_rnsap_Repetition_Period_Item_LCR;
-static gint ett_rnsap_HS_DSCH_SPS_Operation_Indicator;
-static gint ett_rnsap_HS_DSCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
-static gint ett_rnsap_HS_DSCH_Semi_PersistentScheduling_Information_ResponseLCR;
-static gint ett_rnsap_HS_SICH_InformationList_for_HS_DSCH_SPS;
-static gint ett_rnsap_HS_SICH_InformationItem_for_HS_DSCH_SPS;
-static gint ett_rnsap_HS_SICH_Type;
-static gint ett_rnsap_HS_SCCH_Associated_HS_SICH;
-static gint ett_rnsap_Non_HS_SCCH_Associated_HS_SICH;
-static gint ett_rnsap_Initial_HS_PDSCH_SPS_Resource;
-static gint ett_rnsap_InformationAvailable;
-static gint ett_rnsap_InformationReportCharacteristics;
-static gint ett_rnsap_InformationReportPeriodicity;
-static gint ett_rnsap_InformationThreshold;
-static gint ett_rnsap_InformationType;
-static gint ett_rnsap_IPDLParameters;
-static gint ett_rnsap_Inter_Frequency_Cell_List;
-static gint ett_rnsap_Inter_Frequency_Cell;
-static gint ett_rnsap_Inter_Frequency_Cell_Information;
-static gint ett_rnsap_Inter_Frequency_Cell_Information_SIB11;
-static gint ett_rnsap_Inter_Frequency_Cell_Information_SIB12;
-static gint ett_rnsap_Inter_Frequency_Cell_Information_SIB11ter;
-static gint ett_rnsap_Inter_Frequency_Cells_Information_SIB11_Per_Indication;
-static gint ett_rnsap_Inter_Frequency_Cells_Information_SIB12_Per_Indication;
-static gint ett_rnsap_Inter_Frequency_Cells_Information_SIB11ter_Per_Indication;
-static gint ett_rnsap_Inter_Frequency_Cell_SIB11ter_List;
-static gint ett_rnsap_Inter_Frequency_Cell_SIB11ter;
-static gint ett_rnsap_Inter_Frequency_Cell_SIB11_or_SIB12_List;
-static gint ett_rnsap_Inter_Frequency_Cell_SIB11_or_SIB12;
-static gint ett_rnsap_IPDL_FDD_Parameters;
-static gint ett_rnsap_IPDL_TDD_Parameters;
-static gint ett_rnsap_IPDL_TDD_ParametersLCR;
-static gint ett_rnsap_IdleIntervalInformation;
-static gint ett_rnsap_LABased;
-static gint ett_rnsap_LAI_List;
-static gint ett_rnsap_LAI;
-static gint ett_rnsap_List_Of_PLMNs;
-static gint ett_rnsap_LoadValue;
-static gint ett_rnsap_LCRTDD_Uplink_Physical_Channel_Capability;
-static gint ett_rnsap_M1Report;
-static gint ett_rnsap_M2Report;
-static gint ett_rnsap_MDTAreaScope;
-static gint ett_rnsap_MDT_Configuration;
-static gint ett_rnsap_MDT_Report_Parameters;
-static gint ett_rnsap_MAC_c_sh_SDU_LengthList;
-static gint ett_rnsap_MACdPDU_Size_IndexList;
-static gint ett_rnsap_MACdPDU_Size_IndexItem;
-static gint ett_rnsap_MACdPDU_Size_IndexList_to_Modify;
-static gint ett_rnsap_MACdPDU_Size_IndexItem_to_Modify;
-static gint ett_rnsap_MBMS_Bearer_Service_Full_Address;
-static gint ett_rnsap_MBMS_Bearer_Service_List;
-static gint ett_rnsap_MBMS_Bearer_ServiceItemFDD;
-static gint ett_rnsap_MBMS_Bearer_ServiceItemFDD_PFL;
-static gint ett_rnsap_MBMS_Bearer_ServiceItemTDD;
-static gint ett_rnsap_MBMS_Bearer_ServiceItemTDD_PFL;
-static gint ett_rnsap_MBMSChannelTypeInfo;
-static gint ett_rnsap_MBMSChannelTypeCellList;
-static gint ett_rnsap_MBMSPreferredFreqLayerInfo;
-static gint ett_rnsap_MBMS_Neighbouring_Cell_Information;
-static gint ett_rnsap_MBMS_ConcatenatedServiceList;
-static gint ett_rnsap_MBMS_RLC_Sequence_Number_Information;
-static gint ett_rnsap_MBMS_RLC_Sequence_Number_Information_List;
-static gint ett_rnsap_MBMS_Bearer_Service_List_RLC;
-static gint ett_rnsap_MBMS_Bearer_Service_List_RLCinfo;
-static gint ett_rnsap_MCCH_Message_List;
-static gint ett_rnsap_MCCH_Configuration_Info;
-static gint ett_rnsap_MBSFN_Scheduling_Transmission_Time_Interval_Info_List;
-static gint ett_rnsap_MBSFN_Scheduling_Transmission_Time_Interval_Item;
-static gint ett_rnsap_MeasurementIncreaseDecreaseThreshold;
-static gint ett_rnsap_MeasurementThreshold;
-static gint ett_rnsap_MidambleShiftAndBurstType;
-static gint ett_rnsap_Type1;
-static gint ett_rnsap_MidambleAllocationMode1;
-static gint ett_rnsap_Type2;
-static gint ett_rnsap_MidambleAllocationMode2;
-static gint ett_rnsap_Type3;
-static gint ett_rnsap_MidambleAllocationMode3;
-static gint ett_rnsap_MidambleShiftLCR;
-static gint ett_rnsap_MidambleShiftAndBurstType768;
-static gint ett_rnsap_Type7681;
-static gint ett_rnsap_MidambleAllocationMode7681;
-static gint ett_rnsap_Type7682;
-static gint ett_rnsap_MidambleAllocationMode7682;
-static gint ett_rnsap_Type7683;
-static gint ett_rnsap_MidambleAllocationMode7683;
-static gint ett_rnsap_MIMO_InformationResponse;
-static gint ett_rnsap_MIMO_PilotConfiguration;
-static gint ett_rnsap_Additional_Associated_Secondary_CPICH;
-static gint ett_rnsap_Additional_Secondary_CPICH;
-static gint ett_rnsap_ModifyPriorityQueue;
-static gint ett_rnsap_MulticellEDCH_InformationItemIEs;
-static gint ett_rnsap_MulticellEDCH_RL_SpecificInformationItemIEs;
-static gint ett_rnsap_Multiple_PLMN_List;
-static gint ett_rnsap_MultipleFreq_HSPDSCH_InformationList_ResponseTDDLCR;
-static gint ett_rnsap_MultipleFreq_HSPDSCH_InformationItem_ResponseTDDLCR;
-static gint ett_rnsap_Multi_Carrier_EDCH_Info;
-static gint ett_rnsap_Multi_Carrier_EDCH_Information;
-static gint ett_rnsap_Multi_Carrier_EDCH_LCR_InformationItem;
-static gint ett_rnsap_Multi_Carrier_EDCH_MACdFlows_Information_TDD;
-static gint ett_rnsap_Multi_Carrier_EDCH_MACdFlows_Specific_Info;
-static gint ett_rnsap_Multi_Carrier_EDCH_Reconfigure;
-static gint ett_rnsap_Continue_Setup_Change_Multi_Carrier_EDCH;
-static gint ett_rnsap_Multi_Carrier_EDCH_Change_Info;
-static gint ett_rnsap_Multi_Carrier_EDCH_Information_Removal_List;
-static gint ett_rnsap_Multi_Carrier_EDCH_Information_Removal_Info_ItemIEs;
-static gint ett_rnsap_Multi_Carrier_EDCH_Information_Response;
-static gint ett_rnsap_Multi_Carrier_EDCH_LCR_Information_ResponseItem;
-static gint ett_rnsap_Multiflow_Reconfiguration;
-static gint ett_rnsap_Multiflow_Information;
-static gint ett_rnsap_Multiflow_Information_To_Modify;
-static gint ett_rnsap_Multiflow_RepetitionFactors;
-static gint ett_rnsap_Multiflow_Timing;
-static gint ett_rnsap_MU_MIMO_InformationLCR;
-static gint ett_rnsap_Standalone_Midamble_Channel_Information;
-static gint ett_rnsap_MU_MIMO_Indicator;
-static gint ett_rnsap_NACC_Related_Data;
-static gint ett_rnsap_Neighbouring_UMTS_CellInformation;
-static gint ett_rnsap_Neighbouring_UMTS_CellInformation_Ext;
-static gint ett_rnsap_Neighbouring_UMTS_CellInformationExtensionItem;
-static gint ett_rnsap_Neighbouring_UMTS_CellInformationItem;
-static gint ett_rnsap_Neighbouring_FDD_CellInformation;
-static gint ett_rnsap_Neighbouring_FDD_CellInformationItem;
-static gint ett_rnsap_MultipleFrequencyBandsIndicatorList;
-static gint ett_rnsap_NeighbouringFDDCellMeasurementInformation;
-static gint ett_rnsap_Neighbouring_GSM_CellInformationIEs;
-static gint ett_rnsap_Neighbouring_GSM_CellInformationItem;
-static gint ett_rnsap_Neighbouring_TDD_CellInformation;
-static gint ett_rnsap_Neighbouring_TDD_CellInformationItem;
-static gint ett_rnsap_NeighbouringTDDCellMeasurementInformation;
-static gint ett_rnsap_NeighbouringTDDCellMeasurementInformationLCR;
-static gint ett_rnsap_NeighbouringTDDCellMeasurementInformation768;
-static gint ett_rnsap_Neighbouring_LCR_TDD_CellInformation;
-static gint ett_rnsap_Neighbouring_LCR_TDD_CellInformationItem;
-static gint ett_rnsap_Neighbouring_E_UTRA_CellInformation;
-static gint ett_rnsap_Neighbouring_E_UTRA_CellInformationItem;
-static gint ett_rnsap_MultipleFrequencyBandsIndicatorList_EUTRA;
-static gint ett_rnsap_NotProvidedCellList;
-static gint ett_rnsap_NRTLoadInformationValue;
-static gint ett_rnsap_Non_Serving_RL_Preconfig_Setup;
-static gint ett_rnsap_New_non_serving_RL_setup_selection;
-static gint ett_rnsap_Additional_E_DCH_New_non_serving_RL_E_DCH_FDD_DL_Control_Channel_InfoList;
-static gint ett_rnsap_Additional_E_DCH_New_non_serving_RL_E_DCH_FDD_DL_Control_Channel_InfoList_item;
-static gint ett_rnsap_OnModification;
-static gint ett_rnsap_OnModificationInformation;
-static gint ett_rnsap_PCH_InformationList;
-static gint ett_rnsap_PCH_InformationItem;
-static gint ett_rnsap_Periodic;
-static gint ett_rnsap_PeriodicInformation;
-static gint ett_rnsap_Permanent_NAS_UE_Identity;
-static gint ett_rnsap_PLMN_List;
-static gint ett_rnsap_PowerOffsetForSecondaryCPICHforMIMOwithfourtransmitantennas;
-static gint ett_rnsap_Associated_Secondary_CPICH;
-static gint ett_rnsap_PreferredFrequencyLayerInfo;
-static gint ett_rnsap_PriorityQueue_InfoList;
-static gint ett_rnsap_PriorityQueue_InfoItem;
-static gint ett_rnsap_PriorityQueue_InfoList_EnhancedFACH_PCH;
-static gint ett_rnsap_PriorityQueue_InfoItem_EnhancedFACH_PCH;
-static gint ett_rnsap_PriorityQueue_InfoList_to_Modify;
-static gint ett_rnsap_PriorityQueue_InfoItem_to_Add;
-static gint ett_rnsap_PriorityQueue_InfoItem_to_Modify;
-static gint ett_rnsap_PriorityQueue_InfoList_to_Modify_Unsynchronised;
-static gint ett_rnsap_PriorityQueue_InfoItem_to_Modify_Unsynchronised;
-static gint ett_rnsap_ProvidedInformation;
-static gint ett_rnsap_UpPCH_InformationList_LCRTDD;
-static gint ett_rnsap_UpPCH_InformationItem_LCRTDD;
-static gint ett_rnsap_PTMCellList;
-static gint ett_rnsap_PTPCellList;
-static gint ett_rnsap_RABased;
-static gint ett_rnsap_RAI_List;
-static gint ett_rnsap_RAI;
-static gint ett_rnsap_RB_Info;
-static gint ett_rnsap_Reference_E_TFCI_Information;
-static gint ett_rnsap_Reference_E_TFCI_Information_Item;
-static gint ett_rnsap_Released_CN_Domain;
-static gint ett_rnsap_ReportCharacteristics;
-static gint ett_rnsap_ReportPeriodicity;
-static gint ett_rnsap_RequestedDataValue;
-static gint ett_rnsap_RequestedDataValueInformation;
-static gint ett_rnsap_RL_Specific_DCH_Info;
-static gint ett_rnsap_RL_Specific_DCH_Info_Item;
-static gint ett_rnsap_RL_Specific_EDCH_Information;
-static gint ett_rnsap_RL_Specific_EDCH_Info;
-static gint ett_rnsap_RL_Specific_EDCH_InfoItem;
-static gint ett_rnsap_RTLoadValue;
-static gint ett_rnsap_SAI;
-static gint ett_rnsap_SecondaryServingCells;
-static gint ett_rnsap_SecondaryServingCellsItem;
-static gint ett_rnsap_Secondary_CCPCH_Info_TDD;
-static gint ett_rnsap_Secondary_CPICH_Information;
-static gint ett_rnsap_Secondary_CPICH_Information_Change;
-static gint ett_rnsap_Secondary_LCR_CCPCH_Info_TDD;
-static gint ett_rnsap_Secondary_CCPCH_Info_TDD768;
-static gint ett_rnsap_Secondary_CCPCH_TDD_InformationList;
-static gint ett_rnsap_Secondary_CCPCH_TDD_InformationItem;
-static gint ett_rnsap_Secondary_LCR_CCPCH_TDD_InformationList;
-static gint ett_rnsap_Secondary_LCR_CCPCH_TDD_InformationItem;
-static gint ett_rnsap_Secondary_CCPCH_TDD_InformationList768;
-static gint ett_rnsap_Secondary_CCPCH_TDD_InformationItem768;
-static gint ett_rnsap_Secondary_CCPCH_TDD_Code_Information;
-static gint ett_rnsap_Secondary_CCPCH_TDD_Code_InformationItem;
-static gint ett_rnsap_Secondary_LCR_CCPCH_TDD_Code_Information;
-static gint ett_rnsap_Secondary_LCR_CCPCH_TDD_Code_InformationItem;
-static gint ett_rnsap_Secondary_CCPCH_TDD_Code_Information768;
-static gint ett_rnsap_Secondary_CCPCH_TDD_Code_InformationItem768;
-static gint ett_rnsap_Secondary_Serving_Cell_List;
-static gint ett_rnsap_Possible_Secondary_Serving_Cell_List;
-static gint ett_rnsap_Possible_Secondary_Serving_Cell;
-static gint ett_rnsap_SetsOfHS_SCCH_Codes;
-static gint ett_rnsap_SetsOfHS_SCCH_CodesItem;
-static gint ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_EDCH_On_secondary_UL_Frequency;
-static gint ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_Downlink_TPC_enhancements;
-static gint ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_UL_CLTD;
-static gint ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_FTPICH_Information;
-static gint ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_DCH_ENH;
-static gint ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_UL_DPCCH2;
-static gint ett_rnsap_GA_AccessPointPositionwithOptionalAltitude;
-static gint ett_rnsap_SFNSFNMeasurementThresholdInformation;
-static gint ett_rnsap_SFNSFNMeasurementValueInformation;
-static gint ett_rnsap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
-static gint ett_rnsap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
-static gint ett_rnsap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
-static gint ett_rnsap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
-static gint ett_rnsap_SFNSFNTimeStampInformation;
-static gint ett_rnsap_SFNSFNTimeStamp_TDD;
-static gint ett_rnsap_SFNSFNValue;
-static gint ett_rnsap_SNA_Information;
-static gint ett_rnsap_ListOfSNAs;
-static gint ett_rnsap_S_RNTI_Group;
-static gint ett_rnsap_SynchronisationConfiguration;
-static gint ett_rnsap_SYNC_UL_ProcParameters;
-static gint ett_rnsap_TDD_ChannelisationCodeLCR;
-static gint ett_rnsap_TDD_DCHs_to_Modify;
-static gint ett_rnsap_TDD_DCHs_to_ModifyItem;
-static gint ett_rnsap_TDD_DCHs_to_ModifySpecificInformationList;
-static gint ett_rnsap_TDD_DCHs_to_ModifySpecificItem;
-static gint ett_rnsap_TDD_DL_Code_Information;
-static gint ett_rnsap_TDD_DL_Code_InformationItem;
-static gint ett_rnsap_TDD_DL_Code_LCR_Information;
-static gint ett_rnsap_TDD_DL_Code_LCR_InformationItem;
-static gint ett_rnsap_TDD_DL_Code_Information768;
-static gint ett_rnsap_TDD_DL_Code_InformationItem768;
-static gint ett_rnsap_TDD_DL_DPCH_TimeSlotFormat_LCR;
-static gint ett_rnsap_TDD_DPCHOffset;
-static gint ett_rnsap_TDD_UL_Code_Information;
-static gint ett_rnsap_TDD_UL_Code_InformationItem;
-static gint ett_rnsap_TDD_UL_Code_LCR_Information;
-static gint ett_rnsap_TDD_UL_Code_LCR_InformationItem;
-static gint ett_rnsap_TDD_UL_Code_Information768;
-static gint ett_rnsap_TDD_UL_Code_InformationItem768;
-static gint ett_rnsap_TDD_UL_DPCH_TimeSlotFormat_LCR;
-static gint ett_rnsap_TMGI;
-static gint ett_rnsap_TnlQos;
-static gint ett_rnsap_Transmission_Gap_Pattern_Sequence_Information;
-static gint ett_rnsap_Transmission_Gap_Pattern_Sequence_Information_item;
-static gint ett_rnsap_Transmission_Gap_Pattern_Sequence_Status_List;
-static gint ett_rnsap_Transmission_Gap_Pattern_Sequence_Status_List_item;
-static gint ett_rnsap_Affected_HSDSCH_Serving_Cell_List;
-static gint ett_rnsap_Transmission_Mode_Information;
-static gint ett_rnsap_Transmission_Mode_Information_List;
-static gint ett_rnsap_TUTRANGANSS;
-static gint ett_rnsap_TUTRANGANSSMeasurementThresholdInformation;
-static gint ett_rnsap_TUTRANGANSSMeasurementValueInformation;
-static gint ett_rnsap_TUTRANGPS;
-static gint ett_rnsap_TUTRANGPSMeasurementThresholdInformation;
-static gint ett_rnsap_TUTRANGPSMeasurementValueInformation;
-static gint ett_rnsap_TransportFormatCombination_Beta;
-static gint ett_rnsap_T_signalledGainFactors;
-static gint ett_rnsap_TFCS;
-static gint ett_rnsap_T_tFCSvalues;
-static gint ett_rnsap_TFCS_TFCSList;
-static gint ett_rnsap_TFCS_TFCSList_item;
-static gint ett_rnsap_TFCS_CTFC;
-static gint ett_rnsap_TPC_slot_position;
-static gint ett_rnsap_TransportFormatSet;
-static gint ett_rnsap_TransportFormatSet_DynamicPartList;
-static gint ett_rnsap_TransportFormatSet_DynamicPartList_item;
-static gint ett_rnsap_TransportFormatSet_ModeDP;
-static gint ett_rnsap_TDD_TransportFormatSet_ModeDP;
-static gint ett_rnsap_TransmissionTimeIntervalInformation;
-static gint ett_rnsap_TransmissionTimeIntervalInformation_item;
-static gint ett_rnsap_TransportFormatSet_Semi_staticPart;
-static gint ett_rnsap_TransportFormatSet_ModeSSP;
-static gint ett_rnsap_TTI_Update_Indicator;
-static gint ett_rnsap_UE_AggregateMaximumBitRate;
-static gint ett_rnsap_UE_Capabilities_Info;
-static gint ett_rnsap_UE_RF_Band_CapabilityLCR;
-static gint ett_rnsap_Radio_Frequency_BandItem;
-static gint ett_rnsap_UEIdentity;
-static gint ett_rnsap_UEMeasurementReportCharacteristics;
-static gint ett_rnsap_UEMeasurementReportCharacteristicsEvent1h;
-static gint ett_rnsap_UEMeasurementReportCharacteristicsEvent1i;
-static gint ett_rnsap_UEMeasurementReportCharacteristicsEvent6a;
-static gint ett_rnsap_UEMeasurementReportCharacteristicsEvent6b;
-static gint ett_rnsap_UEMeasurementReportCharacteristicsEvent6c;
-static gint ett_rnsap_UEMeasurementReportCharacteristicsEvent6d;
-static gint ett_rnsap_UEMeasurementReportCharacteristicsPeriodic;
-static gint ett_rnsap_UEMeasurementThreshold;
-static gint ett_rnsap_UEMeasurementTimeslotInfoHCR;
-static gint ett_rnsap_UEMeasurementTimeslotInfoHCR_IEs;
-static gint ett_rnsap_UEMeasurementTimeslotInfoLCR;
-static gint ett_rnsap_UEMeasurementTimeslotInfoLCR_IEs;
-static gint ett_rnsap_UEMeasurementTimeslotInfo768;
-static gint ett_rnsap_UEMeasurementTimeslotInfo768_IEs;
-static gint ett_rnsap_UEMeasurementValue;
-static gint ett_rnsap_UE_MeasurementValue_UE_Transmitted_Power;
-static gint ett_rnsap_UEMeasurementValueTransmittedPowerListHCR;
-static gint ett_rnsap_UEMeasurementValueTransmittedPowerListHCR_IEs;
-static gint ett_rnsap_UEMeasurementValueTransmittedPowerListLCR;
-static gint ett_rnsap_UEMeasurementValueTransmittedPowerListLCR_IEs;
-static gint ett_rnsap_UEMeasurementValueTransmittedPowerList768;
-static gint ett_rnsap_UEMeasurementValueTransmittedPowerList768_IEs;
-static gint ett_rnsap_UE_MeasurementValue_Primary_CCPCH_RSCP;
-static gint ett_rnsap_UE_MeasurementValue_DL_Timeslot_ISCP;
-static gint ett_rnsap_UEMeasurementValueTimeslotISCPListHCR;
-static gint ett_rnsap_UEMeasurementValueTimeslotISCPListHCR_IEs;
-static gint ett_rnsap_UEMeasurementValueTimeslotISCPListLCR;
-static gint ett_rnsap_UEMeasurementValueTimeslotISCPListLCR_IEs;
-static gint ett_rnsap_UEMeasurementValueTimeslotISCPList768;
-static gint ett_rnsap_UEMeasurementValueTimeslotISCPList768_IEs;
-static gint ett_rnsap_UEMeasurementValueInformation;
-static gint ett_rnsap_UEMeasurementValueInformationAvailable;
-static gint ett_rnsap_UE_Measurement_Value;
-static gint ett_rnsap_UE_State;
-static gint ett_rnsap_Cell_Fach_Pch_State;
-static gint ett_rnsap_Ura_Pch_State;
-static gint ett_rnsap_UL_Timeslot_Information;
-static gint ett_rnsap_UL_Timeslot_InformationItem;
-static gint ett_rnsap_UL_TimeslotLCR_Information;
-static gint ett_rnsap_UL_TimeslotLCR_InformationItem;
-static gint ett_rnsap_PLCCHinformation;
-static gint ett_rnsap_UL_Timeslot_Information768;
-static gint ett_rnsap_UL_Timeslot_InformationItem768;
-static gint ett_rnsap_UL_TimeSlot_ISCP_Info;
-static gint ett_rnsap_UL_TimeSlot_ISCP_InfoItem;
-static gint ett_rnsap_UL_TimeSlot_ISCP_LCR_Info;
-static gint ett_rnsap_UL_TimeSlot_ISCP_LCR_InfoItem;
-static gint ett_rnsap_UL_TimingAdvanceCtrl_LCR;
-static gint ett_rnsap_UC_ID;
-static gint ett_rnsap_UL_ScramblingCode;
-static gint ett_rnsap_UL_Synchronisation_Parameters_LCR;
-static gint ett_rnsap_URA_Information;
-static gint ett_rnsap_RNCsWithCellsInTheAccessedURA_List;
-static gint ett_rnsap_RNCsWithCellsInTheAccessedURA_Item;
-static gint ett_rnsap_USCH_Information;
-static gint ett_rnsap_USCH_InformationItem;
-static gint ett_rnsap_UMTS_Cells_Info_List;
-static gint ett_rnsap_UMTS_Cell_Info;
-static gint ett_rnsap_UL_CLTD_Information;
-static gint ett_rnsap_UL_CLTD_Information_Reconf;
-static gint ett_rnsap_UL_CLTD_Information_To_Modify;
-static gint ett_rnsap_UL_DPCCH2_Information;
-static gint ett_rnsap_UL_DPCCH2_Information_Reconf;
-static gint ett_rnsap_UL_DPCCH2_Information_To_Modify;
-static gint ett_rnsap_UL_MIMO_Information;
-static gint ett_rnsap_UL_MIMO_Information_To_Modify;
-static gint ett_rnsap_UL_MIMO_Reconfiguration;
-static gint ett_rnsap_UL_MIMO_DL_Control_Channel_Information;
-static gint ett_rnsap_RadioLinkSetupRequestFDD;
-static gint ett_rnsap_UL_DPCH_Information_RL_SetupRqstFDD;
-static gint ett_rnsap_DL_DPCH_Information_RL_SetupRqstFDD;
-static gint ett_rnsap_PowerOffsetInformation_RL_SetupRqstFDD;
-static gint ett_rnsap_RL_InformationList_RL_SetupRqstFDD;
-static gint ett_rnsap_RL_InformationItem_RL_SetupRqstFDD;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Setup_List;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Setup_ItemIEs;
-static gint ett_rnsap_F_DPCH_Information_RL_SetupRqstFDD;
-static gint ett_rnsap_PowerOffsetInformation_F_DPCH_RL_SetupRqstFDD;
-static gint ett_rnsap_RadioLinkSetupRequestTDD;
-static gint ett_rnsap_UL_Physical_Channel_Information_RL_SetupRqstTDD;
-static gint ett_rnsap_DL_Physical_Channel_Information_RL_SetupRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationList_RL_SetupRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationItem_RL_SetupRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationList_RL_SetupRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationItem_RL_SetupRqstTDD;
-static gint ett_rnsap_CCTrCH_TPCList_RL_SetupRqstTDD;
-static gint ett_rnsap_CCTrCH_TPCItem_RL_SetupRqstTDD;
-static gint ett_rnsap_RL_Information_RL_SetupRqstTDD;
-static gint ett_rnsap_RadioLinkSetupResponseFDD;
-static gint ett_rnsap_RL_InformationResponseList_RL_SetupRspFDD;
-static gint ett_rnsap_RL_InformationResponseItem_RL_SetupRspFDD;
-static gint ett_rnsap_DiversityIndication_RL_SetupRspFDD;
-static gint ett_rnsap_Combining_RL_SetupRspFDD;
-static gint ett_rnsap_NonCombiningOrFirstRL_RL_SetupRspFDD;
-static gint ett_rnsap_Additional_HS_Cell_Information_Response_List;
-static gint ett_rnsap_Additional_HS_Cell_Information_Response_ItemIEs;
-static gint ett_rnsap_RadioLinkSetupResponseTDD;
-static gint ett_rnsap_RL_InformationResponse_RL_SetupRspTDD;
-static gint ett_rnsap_UL_CCTrCHInformationListIE_RL_SetupRspTDD;
-static gint ett_rnsap_UL_CCTrCHInformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_UL_DPCH_InformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_DL_CCTrCHInformationListIE_RL_SetupRspTDD;
-static gint ett_rnsap_DL_CCTrCHInformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_DL_DPCH_InformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_DSCH_InformationListIEs_RL_SetupRspTDD;
-static gint ett_rnsap_DSCHInformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_USCH_InformationListIEs_RL_SetupRspTDD;
-static gint ett_rnsap_USCHInformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_RL_LCR_InformationResponse_RL_SetupRspTDD;
-static gint ett_rnsap_UL_LCR_CCTrCHInformationListIE_RL_SetupRspTDD;
-static gint ett_rnsap_UL_LCR_CCTrCHInformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_UL_DPCH_LCR_InformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_DL_CCTrCH_LCR_InformationListIE_RL_SetupRspTDD;
-static gint ett_rnsap_DL_CCTrCH_LCR_InformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_DL_DPCH_LCR_InformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_DSCH_LCR_InformationListIEs_RL_SetupRspTDD;
-static gint ett_rnsap_DSCH_LCR_InformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_USCH_LCR_InformationListIEs_RL_SetupRspTDD;
-static gint ett_rnsap_USCH_LCR_InformationItem_RL_SetupRspTDD;
-static gint ett_rnsap_RL_InformationResponse_RL_SetupRspTDD768;
-static gint ett_rnsap_UL_CCTrCHInformationListIE_RL_SetupRspTDD768;
-static gint ett_rnsap_UL_CCTrCHInformationItem_RL_SetupRspTDD768;
-static gint ett_rnsap_UL_DPCH_InformationItem_RL_SetupRspTDD768;
-static gint ett_rnsap_DL_CCTrCHInformationListIE_RL_SetupRspTDD768;
-static gint ett_rnsap_DL_CCTrCHInformationItem_RL_SetupRspTDD768;
-static gint ett_rnsap_DL_DPCH_InformationItem_RL_SetupRspTDD768;
-static gint ett_rnsap_RadioLinkSetupFailureFDD;
-static gint ett_rnsap_CauseLevel_RL_SetupFailureFDD;
-static gint ett_rnsap_GeneralCauseList_RL_SetupFailureFDD;
-static gint ett_rnsap_RLSpecificCauseList_RL_SetupFailureFDD;
-static gint ett_rnsap_UnsuccessfulRL_InformationResponseList_RL_SetupFailureFDD;
-static gint ett_rnsap_UnsuccessfulRL_InformationResponse_RL_SetupFailureFDD;
-static gint ett_rnsap_SuccessfulRL_InformationResponseList_RL_SetupFailureFDD;
-static gint ett_rnsap_SuccessfulRL_InformationResponse_RL_SetupFailureFDD;
-static gint ett_rnsap_DiversityIndication_RL_SetupFailureFDD;
-static gint ett_rnsap_Combining_RL_SetupFailureFDD;
-static gint ett_rnsap_NonCombiningOrFirstRL_RL_SetupFailureFDD;
-static gint ett_rnsap_RadioLinkSetupFailureTDD;
-static gint ett_rnsap_CauseLevel_RL_SetupFailureTDD;
-static gint ett_rnsap_GeneralCauseList_RL_SetupFailureTDD;
-static gint ett_rnsap_RLSpecificCauseList_RL_SetupFailureTDD;
-static gint ett_rnsap_UnsuccessfulRL_InformationResponse_RL_SetupFailureTDD;
-static gint ett_rnsap_RadioLinkAdditionRequestFDD;
-static gint ett_rnsap_RL_InformationList_RL_AdditionRqstFDD;
-static gint ett_rnsap_RL_Information_RL_AdditionRqstFDD;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Addition_List;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Addition_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_RL_Add_Req;
-static gint ett_rnsap_Setup_Or_Addition_Of_EDCH_On_secondary_UL_Frequency;
-static gint ett_rnsap_EDPCH_Information_RLAdditionReq_FDD;
-static gint ett_rnsap_RadioLinkAdditionRequestTDD;
-static gint ett_rnsap_RL_Information_RL_AdditionRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationList_RL_AdditionRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationList_RL_AdditionRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
-static gint ett_rnsap_RadioLinkAdditionResponseFDD;
-static gint ett_rnsap_RL_InformationResponseList_RL_AdditionRspFDD;
-static gint ett_rnsap_RL_InformationResponseItem_RL_AdditionRspFDD;
-static gint ett_rnsap_DiversityIndication_RL_AdditionRspFDD;
-static gint ett_rnsap_Combining_RL_AdditionRspFDD;
-static gint ett_rnsap_NonCombining_RL_AdditionRspFDD;
-static gint ett_rnsap_Additional_HS_Cell_Change_Information_Response_List;
-static gint ett_rnsap_Additional_HS_Cell_Change_Information_Response_ItemIEs;
-static gint ett_rnsap_RadioLinkAdditionResponseTDD;
-static gint ett_rnsap_RL_InformationResponse_RL_AdditionRspTDD;
-static gint ett_rnsap_UL_CCTrCHInformationListIE_RL_AdditionRspTDD;
-static gint ett_rnsap_UL_CCTrCHInformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_UL_DPCH_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_DL_CCTrCHInformationListIE_RL_AdditionRspTDD;
-static gint ett_rnsap_DL_CCTrCHInformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_DL_DPCH_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_DCH_Information_RL_AdditionRspTDD;
-static gint ett_rnsap_DiversityIndication_RL_AdditionRspTDD;
-static gint ett_rnsap_Combining_RL_AdditionRspTDD;
-static gint ett_rnsap_NonCombining_RL_AdditionRspTDD;
-static gint ett_rnsap_DSCH_InformationListIE_RL_AdditionRspTDD;
-static gint ett_rnsap_DSCHInformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_DiversityIndication_RL_AdditionRspTDD2;
-static gint ett_rnsap_USCH_InformationListIE_RL_AdditionRspTDD;
-static gint ett_rnsap_USCHInformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_RL_LCR_InformationResponse_RL_AdditionRspTDD;
-static gint ett_rnsap_UL_CCTrCH_LCR_InformationListIE_RL_AdditionRspTDD;
-static gint ett_rnsap_UL_CCTrCH_LCR_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_UL_DPCH_LCR_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_DL_CCTrCH_LCR_InformationListIE_RL_AdditionRspTDD;
-static gint ett_rnsap_DL_CCTrCH_LCR_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_DL_DPCH_LCR_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_DSCH_LCR_InformationListIEs_RL_AdditionRspTDD;
-static gint ett_rnsap_DSCH_LCR_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_USCH_LCR_InformationListIEs_RL_AdditionRspTDD;
-static gint ett_rnsap_USCH_LCR_InformationItem_RL_AdditionRspTDD;
-static gint ett_rnsap_RL_InformationResponse_RL_AdditionRspTDD768;
-static gint ett_rnsap_UL_CCTrCHInformationListIE_RL_AdditionRspTDD768;
-static gint ett_rnsap_UL_CCTrCHInformationItem_RL_AdditionRspTDD768;
-static gint ett_rnsap_UL_DPCH_InformationItem_RL_AdditionRspTDD768;
-static gint ett_rnsap_DL_CCTrCHInformationListIE_RL_AdditionRspTDD768;
-static gint ett_rnsap_DL_CCTrCHInformationItem_RL_AdditionRspTDD768;
-static gint ett_rnsap_DL_DPCH_InformationItem_RL_AdditionRspTDD768;
-static gint ett_rnsap_RadioLinkAdditionFailureFDD;
-static gint ett_rnsap_CauseLevel_RL_AdditionFailureFDD;
-static gint ett_rnsap_GeneralCauseList_RL_AdditionFailureFDD;
-static gint ett_rnsap_RLSpecificCauseList_RL_AdditionFailureFDD;
-static gint ett_rnsap_UnsuccessfulRL_InformationResponseList_RL_AdditionFailureFDD;
-static gint ett_rnsap_UnsuccessfulRL_InformationResponse_RL_AdditionFailureFDD;
-static gint ett_rnsap_SuccessfulRL_InformationResponseList_RL_AdditionFailureFDD;
-static gint ett_rnsap_SuccessfulRL_InformationResponse_RL_AdditionFailureFDD;
-static gint ett_rnsap_DiversityIndication_RL_AdditionFailureFDD;
-static gint ett_rnsap_Combining_RL_AdditionFailureFDD;
-static gint ett_rnsap_NonCombining_RL_AdditionFailureFDD;
-static gint ett_rnsap_RadioLinkAdditionFailureTDD;
-static gint ett_rnsap_CauseLevel_RL_AdditionFailureTDD;
-static gint ett_rnsap_GeneralCauseList_RL_AdditionFailureTDD;
-static gint ett_rnsap_RLSpecificCauseList_RL_AdditionFailureTDD;
-static gint ett_rnsap_UnsuccessfulRL_InformationResponse_RL_AdditionFailureTDD;
-static gint ett_rnsap_RadioLinkDeletionRequest;
-static gint ett_rnsap_RL_InformationList_RL_DeletionRqst;
-static gint ett_rnsap_RL_Information_RL_DeletionRqst;
-static gint ett_rnsap_RadioLinkDeletionResponse;
-static gint ett_rnsap_RadioLinkReconfigurationPrepareFDD;
-static gint ett_rnsap_UL_DPCH_Information_RL_ReconfPrepFDD;
-static gint ett_rnsap_DL_DPCH_Information_RL_ReconfPrepFDD;
-static gint ett_rnsap_DL_DPCH_Power_Information_RL_ReconfPrepFDD;
-static gint ett_rnsap_PowerOffsetInformation_RL_ReconfPrepFDD;
-static gint ett_rnsap_DCH_DeleteList_RL_ReconfPrepFDD;
-static gint ett_rnsap_DCH_DeleteItem_RL_ReconfPrepFDD;
-static gint ett_rnsap_RL_InformationList_RL_ReconfPrepFDD;
-static gint ett_rnsap_RL_Information_RL_ReconfPrepFDD;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Prep;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Prep_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_RL_Reconf_Prep;
-static gint ett_rnsap_F_DPCH_Information_RL_ReconfPrepFDD;
-static gint ett_rnsap_PowerOffsetInformation_F_DPCH_RL_ReconfPrepFDD;
-static gint ett_rnsap_RadioLinkReconfigurationPrepareTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_rnsap_UL_CCTrCH_AddInformation_RL_ReconfPrepTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
-static gint ett_rnsap_UL_CCTrCH_ModifyInformation_RL_ReconfPrepTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
-static gint ett_rnsap_UL_CCTrCH_DeleteInformation_RL_ReconfPrepTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationAddItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_CCTrCH_TPCAddList_RL_ReconfPrepTDD;
-static gint ett_rnsap_CCTrCH_TPCAddItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationModifyItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_CCTrCH_TPCModifyList_RL_ReconfPrepTDD;
-static gint ett_rnsap_CCTrCH_TPCModifyItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationDeleteItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_DCH_DeleteList_RL_ReconfPrepTDD;
-static gint ett_rnsap_DCH_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_DSCH_ModifyList_RL_ReconfPrepTDD;
-static gint ett_rnsap_DSCH_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_DSCH_DeleteList_RL_ReconfPrepTDD;
-static gint ett_rnsap_DSCH_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_USCH_ModifyList_RL_ReconfPrepTDD;
-static gint ett_rnsap_USCH_ModifyItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_USCH_DeleteList_RL_ReconfPrepTDD;
-static gint ett_rnsap_USCH_DeleteItem_RL_ReconfPrepTDD;
-static gint ett_rnsap_RL_Information_RL_ReconfPrepTDD;
-static gint ett_rnsap_RL_InformationIE_RL_ReconfPrepTDD;
-static gint ett_rnsap_RadioLinkReconfigurationReadyFDD;
-static gint ett_rnsap_RL_InformationResponseList_RL_ReconfReadyFDD;
-static gint ett_rnsap_RL_InformationResponseItem_RL_ReconfReadyFDD;
-static gint ett_rnsap_Additional_HS_Cell_RL_Reconf_Response;
-static gint ett_rnsap_Additional_HS_Cell_RL_Reconf_Response_ItemIEs;
-static gint ett_rnsap_RadioLinkReconfigurationReadyTDD;
-static gint ett_rnsap_RL_InformationResponse_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_CCTrCHInformationListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_DPCH_LCR_InformationAddList_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_DPCH_InformationAddListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_DPCH_InformationAddList_RL_ReconfReadyTDD768;
-static gint ett_rnsap_UL_DPCH_InformationModifyListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_TimeslotLCR_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_TimeslotLCR_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_UL_Code_LCR_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_UL_Code_LCR_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_Timeslot_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_UL_Code_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_UL_Code_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_Timeslot_InformationModifyList_RL_ReconfReadyTDD768;
-static gint ett_rnsap_UL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD768;
-static gint ett_rnsap_TDD_UL_Code_InformationModifyList_RL_ReconfReadyTDD768;
-static gint ett_rnsap_TDD_UL_Code_InformationModifyItem_RL_ReconfReadyTDD768;
-static gint ett_rnsap_UL_DPCH_InformationDeleteListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_UL_DPCH_InformationDeleteItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_CCTrCHInformationListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_DPCH_LCR_InformationAddList_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_DPCH_InformationAddListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_DPCH_InformationAddList_RL_ReconfReadyTDD768;
-static gint ett_rnsap_DL_DPCH_InformationModifyListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_TimeslotLCR_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_TimeslotLCR_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_DL_Code_LCR_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_DL_Code_LCR_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_Timeslot_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_DL_Code_InformationModifyList_RL_ReconfReadyTDD;
-static gint ett_rnsap_TDD_DL_Code_InformationModifyItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_Timeslot_InformationModifyList_RL_ReconfReadyTDD768;
-static gint ett_rnsap_DL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD768;
-static gint ett_rnsap_TDD_DL_Code_InformationModifyList_RL_ReconfReadyTDD768;
-static gint ett_rnsap_TDD_DL_Code_InformationModifyItem_RL_ReconfReadyTDD768;
-static gint ett_rnsap_DL_DPCH_InformationDeleteListIE_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_DPCH_InformationDeleteItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_DPCH_InformationDeleteList768_RL_ReconfReadyTDD;
-static gint ett_rnsap_DL_DPCH_InformationDeleteItem768_RL_ReconfReadyTDD;
-static gint ett_rnsap_DSCHToBeAddedOrModifiedList_RL_ReconfReadyTDD;
-static gint ett_rnsap_DSCHToBeAddedOrModifiedItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_USCHToBeAddedOrModifiedList_RL_ReconfReadyTDD;
-static gint ett_rnsap_USCHToBeAddedOrModifiedItem_RL_ReconfReadyTDD;
-static gint ett_rnsap_Multiple_RL_InformationResponse_RL_ReconfReadyTDD;
-static gint ett_rnsap_RadioLinkReconfigurationCommit;
-static gint ett_rnsap_RadioLinkReconfigurationFailure;
-static gint ett_rnsap_CauseLevel_RL_ReconfFailure;
-static gint ett_rnsap_GeneralCauseList_RL_ReconfFailure;
-static gint ett_rnsap_RLSpecificCauseList_RL_ReconfFailure;
-static gint ett_rnsap_RL_ReconfigurationFailureList_RL_ReconfFailure;
-static gint ett_rnsap_RL_ReconfigurationFailure_RL_ReconfFail;
-static gint ett_rnsap_RadioLinkReconfigurationCancel;
-static gint ett_rnsap_RadioLinkReconfigurationRequestFDD;
-static gint ett_rnsap_UL_DPCH_Information_RL_ReconfRqstFDD;
-static gint ett_rnsap_DL_DPCH_Information_RL_ReconfRqstFDD;
-static gint ett_rnsap_DCH_DeleteList_RL_ReconfRqstFDD;
-static gint ett_rnsap_DCH_DeleteItem_RL_ReconfRqstFDD;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Req;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Req_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_RL_Reconf_Req;
-static gint ett_rnsap_RL_ReconfigurationRequestFDD_RL_InformationList;
-static gint ett_rnsap_RL_ReconfigurationRequestFDD_RL_Information_IEs;
-static gint ett_rnsap_RadioLinkReconfigurationRequestTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
-static gint ett_rnsap_DCH_DeleteList_RL_ReconfRqstTDD;
-static gint ett_rnsap_DCH_DeleteItem_RL_ReconfRqstTDD;
-static gint ett_rnsap_Multiple_RL_ReconfigurationRequestTDD_RL_Information;
-static gint ett_rnsap_RL_ReconfigurationRequestTDD_RL_Information;
-static gint ett_rnsap_RadioLinkReconfigurationResponseFDD;
-static gint ett_rnsap_RL_InformationResponseList_RL_ReconfRspFDD;
-static gint ett_rnsap_RL_InformationResponseItem_RL_ReconfRspFDD;
-static gint ett_rnsap_RadioLinkReconfigurationResponseTDD;
-static gint ett_rnsap_RL_InformationResponse_RL_ReconfRspTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationList_RL_ReconfRspTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationItem_RL_ReconfRspTDD;
-static gint ett_rnsap_DL_DPCH_InformationModifyItem_LCR_RL_ReconfRspTDD;
-static gint ett_rnsap_DL_Timeslot_LCR_InformationModifyList_RL_ReconfRspTDD;
-static gint ett_rnsap_DL_Timeslot_LCR_InformationModifyItem_RL_ReconfRspTDD;
-static gint ett_rnsap_Multiple_RL_InformationResponse_RL_ReconfRspTDD;
-static gint ett_rnsap_RadioLinkFailureIndication;
-static gint ett_rnsap_Reporting_Object_RL_FailureInd;
-static gint ett_rnsap_RL_RL_FailureInd;
-static gint ett_rnsap_RL_InformationList_RL_FailureInd;
-static gint ett_rnsap_RL_Information_RL_FailureInd;
-static gint ett_rnsap_RL_Set_RL_FailureInd;
-static gint ett_rnsap_RL_Set_InformationList_RL_FailureInd;
-static gint ett_rnsap_RL_Set_Information_RL_FailureInd;
-static gint ett_rnsap_CCTrCH_RL_FailureInd;
-static gint ett_rnsap_CCTrCH_InformationList_RL_FailureInd;
-static gint ett_rnsap_CCTrCH_InformationItem_RL_FailureInd;
-static gint ett_rnsap_RadioLinkPreemptionRequiredIndication;
-static gint ett_rnsap_RL_InformationList_RL_PreemptRequiredInd;
-static gint ett_rnsap_RL_InformationItem_RL_PreemptRequiredInd;
-static gint ett_rnsap_HSDSCHMacdFlowSpecificInformationList_RL_PreemptRequiredInd;
-static gint ett_rnsap_HSDSCHMacdFlowSpecificInformationItem_RL_PreemptRequiredInd;
-static gint ett_rnsap_EDCH_MacdFlowSpecificInformationList_RL_PreemptRequiredInd;
-static gint ett_rnsap_EDCH_MacdFlowSpecificInformationItem_RL_PreemptRequiredInd;
-static gint ett_rnsap_RadioLinkRestoreIndication;
-static gint ett_rnsap_Reporting_Object_RL_RestoreInd;
-static gint ett_rnsap_RL_RL_RestoreInd;
-static gint ett_rnsap_RL_InformationList_RL_RestoreInd;
-static gint ett_rnsap_RL_Information_RL_RestoreInd;
-static gint ett_rnsap_RL_Set_RL_RestoreInd;
-static gint ett_rnsap_RL_Set_InformationList_RL_RestoreInd;
-static gint ett_rnsap_RL_Set_Information_RL_RestoreInd;
-static gint ett_rnsap_CCTrCH_RL_RestoreInd;
-static gint ett_rnsap_CCTrCH_InformationList_RL_RestoreInd;
-static gint ett_rnsap_CCTrCH_InformationItem_RL_RestoreInd;
-static gint ett_rnsap_DL_PowerControlRequest;
-static gint ett_rnsap_DL_ReferencePowerInformationList_DL_PC_Rqst;
-static gint ett_rnsap_DL_ReferencePowerInformation_DL_PC_Rqst;
-static gint ett_rnsap_DL_PowerTimeslotControlRequest;
-static gint ett_rnsap_PhysicalChannelReconfigurationRequestFDD;
-static gint ett_rnsap_RL_Information_PhyChReconfRqstFDD;
-static gint ett_rnsap_PhysicalChannelReconfigurationRequestTDD;
-static gint ett_rnsap_RL_Information_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationListIE_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_CCTrCH_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_DPCH_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_TimeslotLCR_InformationList_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_TimeslotLCR_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_Timeslot_InformationList_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_Timeslot_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_UL_Timeslot_InformationList_PhyChReconfRqstTDD768;
-static gint ett_rnsap_UL_Timeslot_InformationItem_PhyChReconfRqstTDD768;
-static gint ett_rnsap_DL_CCTrCH_InformationListIE_PhyChReconfRqstTDD;
-static gint ett_rnsap_DL_CCTrCH_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_DL_DPCH_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_DL_TimeslotLCR_InformationList_PhyChReconfRqstTDD;
-static gint ett_rnsap_DL_TimeslotLCR_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_DL_Timeslot_InformationList_PhyChReconfRqstTDD;
-static gint ett_rnsap_DL_Timeslot_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_DL_Timeslot_InformationList_PhyChReconfRqstTDD768;
-static gint ett_rnsap_DL_Timeslot_InformationItem_PhyChReconfRqstTDD768;
-static gint ett_rnsap_HSPDSCH_Timeslot_InformationList_PhyChReconfRqstTDD;
-static gint ett_rnsap_HSPDSCH_Timeslot_InformationItem_PhyChReconfRqstTDD;
-static gint ett_rnsap_HSPDSCH_Timeslot_InformationListLCR_PhyChReconfRqstTDD;
-static gint ett_rnsap_HSPDSCH_Timeslot_InformationItemLCR_PhyChReconfRqstTDD;
-static gint ett_rnsap_HSPDSCH_Timeslot_InformationList_PhyChReconfRqstTDD768;
-static gint ett_rnsap_HSPDSCH_Timeslot_InformationItem_PhyChReconfRqstTDD768;
-static gint ett_rnsap_PhysicalChannelReconfigurationCommand;
-static gint ett_rnsap_PhysicalChannelReconfigurationFailure;
-static gint ett_rnsap_RadioLinkCongestionIndication;
-static gint ett_rnsap_RL_InformationList_RL_CongestInd;
-static gint ett_rnsap_RL_InformationItem_RL_CongestInd;
-static gint ett_rnsap_DCH_Rate_Information_RL_CongestInd;
-static gint ett_rnsap_DCH_Rate_InformationItem_RL_CongestInd;
-static gint ett_rnsap_EDCH_MacdFlowSpecificInformationList_RL_CongestInd;
-static gint ett_rnsap_EDCH_MacdFlowSpecificInformationItem_RL_CongestInd;
-static gint ett_rnsap_UplinkSignallingTransferIndicationFDD;
-static gint ett_rnsap_UplinkSignallingTransferIndicationTDD;
-static gint ett_rnsap_DownlinkSignallingTransferRequest;
-static gint ett_rnsap_RelocationCommit;
-static gint ett_rnsap_PagingRequest;
-static gint ett_rnsap_PagingArea_PagingRqst;
-static gint ett_rnsap_URA_PagingRqst;
-static gint ett_rnsap_Cell_PagingRqst;
-static gint ett_rnsap_CNOriginatedPage_PagingRqst;
-static gint ett_rnsap_DedicatedMeasurementInitiationRequest;
-static gint ett_rnsap_DedicatedMeasurementObjectType_DM_Rqst;
-static gint ett_rnsap_RL_DM_Rqst;
-static gint ett_rnsap_RL_InformationList_DM_Rqst;
-static gint ett_rnsap_RL_InformationItem_DM_Rqst;
-static gint ett_rnsap_HSSICH_Info_DM_Rqst;
-static gint ett_rnsap_HSSICH_Info_DM_Rqst_Extension;
-static gint ett_rnsap_RL_Set_DM_Rqst;
-static gint ett_rnsap_RL_Set_InformationList_DM_Rqst;
-static gint ett_rnsap_RL_Set_InformationItem_DM_Rqst;
-static gint ett_rnsap_DedicatedMeasurementInitiationResponse;
-static gint ett_rnsap_DedicatedMeasurementObjectType_DM_Rsp;
-static gint ett_rnsap_RL_DM_Rsp;
-static gint ett_rnsap_RL_Set_DM_Rsp;
-static gint ett_rnsap_RL_InformationList_DM_Rsp;
-static gint ett_rnsap_RL_InformationItem_DM_Rsp;
-static gint ett_rnsap_RL_Set_InformationList_DM_Rsp;
-static gint ett_rnsap_RL_Set_InformationItem_DM_Rsp;
-static gint ett_rnsap_Multiple_DedicatedMeasurementValueList_TDD_DM_Rsp;
-static gint ett_rnsap_Multiple_DedicatedMeasurementValueItem_TDD_DM_Rsp;
-static gint ett_rnsap_Multiple_DedicatedMeasurementValueList_LCR_TDD_DM_Rsp;
-static gint ett_rnsap_Multiple_DedicatedMeasurementValueItem_LCR_TDD_DM_Rsp;
-static gint ett_rnsap_Multiple_HSSICHMeasurementValueList_TDD_DM_Rsp;
-static gint ett_rnsap_Multiple_HSSICHMeasurementValueItem_TDD_DM_Rsp;
-static gint ett_rnsap_Multiple_DedicatedMeasurementValueList_TDD768_DM_Rsp;
-static gint ett_rnsap_Multiple_DedicatedMeasurementValueItem_TDD768_DM_Rsp;
-static gint ett_rnsap_DedicatedMeasurementInitiationFailure;
-static gint ett_rnsap_DedicatedMeasurementObjectType_DM_Fail;
-static gint ett_rnsap_RL_DM_Fail;
-static gint ett_rnsap_RL_Set_DM_Fail;
-static gint ett_rnsap_RL_Unsuccessful_InformationRespList_DM_Fail;
-static gint ett_rnsap_RL_Unsuccessful_InformationItem_DM_Fail;
-static gint ett_rnsap_RL_Successful_InformationRespList_DM_Fail;
-static gint ett_rnsap_RL_Successful_InformationItem_DM_Fail;
-static gint ett_rnsap_RL_Set_Unsuccessful_InformationRespList_DM_Fail;
-static gint ett_rnsap_RL_Set_Unsuccessful_InformationItem_DM_Fail;
-static gint ett_rnsap_RL_Set_Successful_InformationRespList_DM_Fail;
-static gint ett_rnsap_RL_Set_Successful_InformationItem_DM_Fail;
-static gint ett_rnsap_DedicatedMeasurementReport;
-static gint ett_rnsap_DedicatedMeasurementObjectType_DM_Rprt;
-static gint ett_rnsap_RL_DM_Rprt;
-static gint ett_rnsap_RL_Set_DM_Rprt;
-static gint ett_rnsap_RL_InformationList_DM_Rprt;
-static gint ett_rnsap_RL_InformationItem_DM_Rprt;
-static gint ett_rnsap_RL_Set_InformationList_DM_Rprt;
-static gint ett_rnsap_RL_Set_InformationItem_DM_Rprt;
-static gint ett_rnsap_DedicatedMeasurementTerminationRequest;
-static gint ett_rnsap_DedicatedMeasurementFailureIndication;
-static gint ett_rnsap_DedicatedMeasurementObjectType_DM_Fail_Ind;
-static gint ett_rnsap_RL_DM_Fail_Ind;
-static gint ett_rnsap_RL_Set_DM_Fail_Ind;
-static gint ett_rnsap_RL_Unsuccessful_InformationRespList_DM_Fail_Ind;
-static gint ett_rnsap_RL_Unsuccessful_InformationItem_DM_Fail_Ind;
-static gint ett_rnsap_RL_Set_Unsuccessful_InformationRespList_DM_Fail_Ind;
-static gint ett_rnsap_RL_Set_Unsuccessful_InformationItem_DM_Fail_Ind;
-static gint ett_rnsap_CommonTransportChannelResourcesReleaseRequest;
-static gint ett_rnsap_CommonTransportChannelResourcesRequest;
-static gint ett_rnsap_CommonTransportChannelResourcesResponseFDD;
-static gint ett_rnsap_FACH_InfoForUESelectedS_CCPCH_CTCH_ResourceRspFDD;
-static gint ett_rnsap_CommonTransportChannelResourcesResponseTDD;
-static gint ett_rnsap_FACH_InfoForUESelectedS_CCPCH_CTCH_ResourceRspTDD;
-static gint ett_rnsap_CommonTransportChannelResourcesFailure;
-static gint ett_rnsap_CompressedModeCommand;
-static gint ett_rnsap_ErrorIndication;
-static gint ett_rnsap_CommonMeasurementInitiationRequest;
-static gint ett_rnsap_CommonMeasurementObjectType_CM_Rqst;
-static gint ett_rnsap_Cell_CM_Rqst;
-static gint ett_rnsap_NeighbouringCellMeasurementInfo;
-static gint ett_rnsap_NeighbouringCellMeasurementInfo_item;
-static gint ett_rnsap_GSM_Cell_CM_Rqst;
-static gint ett_rnsap_GsmCellList_CM_Rqst;
-static gint ett_rnsap_GsmCellItem_CM_Rqst;
-static gint ett_rnsap_CommonMeasurementInitiationResponse;
-static gint ett_rnsap_CommonMeasurementObjectType_CM_Rsp;
-static gint ett_rnsap_Cell_CM_Rsp;
-static gint ett_rnsap_GsmCellList_CM_Rsp;
-static gint ett_rnsap_GsmCellItem_CM_Rsp;
-static gint ett_rnsap_CommonMeasurementInitiationFailure;
-static gint ett_rnsap_Extension_FailureMeasurementList;
-static gint ett_rnsap_Extension_FailureMeasurementItem;
-static gint ett_rnsap_CommonMeasurementReport;
-static gint ett_rnsap_CommonMeasurementObjectType_CM_Rprt;
-static gint ett_rnsap_Cell_CM_Rprt;
-static gint ett_rnsap_GsmCellList_CM_Rprt;
-static gint ett_rnsap_GsmCellItem_CM_Rprt;
-static gint ett_rnsap_CommonMeasurementTerminationRequest;
-static gint ett_rnsap_Extension_TerminationMeasurementList;
-static gint ett_rnsap_Extension_TerminationMeasurementItem;
-static gint ett_rnsap_CommonMeasurementFailureIndication;
-static gint ett_rnsap_Extension_FailureIndicationMeasurementList;
-static gint ett_rnsap_Extension_FailureIndicationMeasurementItem;
-static gint ett_rnsap_InformationExchangeInitiationRequest;
-static gint ett_rnsap_InformationExchangeObjectType_InfEx_Rqst;
-static gint ett_rnsap_Cell_InfEx_Rqst;
-static gint ett_rnsap_GSM_Cell_InfEx_Rqst;
-static gint ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_InfEx_Rqst;
-static gint ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_Item_InfEx_Rqst;
-static gint ett_rnsap_MBMS_Bearer_Service_List_InfEx_Rqst;
-static gint ett_rnsap_MBMS_Cell_InfEx_Rqst;
-static gint ett_rnsap_ANR_Cell_InfEx_Rqst;
-static gint ett_rnsap_Common_E_RGCH_Cell_InfEx_Rqst;
-static gint ett_rnsap_InformationExchangeInitiationResponse;
-static gint ett_rnsap_InformationExchangeObjectType_InfEx_Rsp;
-static gint ett_rnsap_Cell_InfEx_Rsp;
-static gint ett_rnsap_MBMS_Bearer_Service_List_InfEx_Rsp;
-static gint ett_rnsap_MBMS_Bearer_ServiceItemIEs_InfEx_Rsp;
-static gint ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_InfEx_Rsp;
-static gint ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_Item_InfEx_Rsp;
-static gint ett_rnsap_MBMS_Cell_InfEx_Rsp;
-static gint ett_rnsap_MBMS_Cell_Item_InfEx_Rsp;
-static gint ett_rnsap_ANR_Cell_InfEx_Rsp;
-static gint ett_rnsap_ANR_Cell_ItemIEs_InfEx_Rsp;
-static gint ett_rnsap_Common_E_RGCH_Cell_InfEx_Rsp;
-static gint ett_rnsap_Common_E_RGCH_Cell_ItemIEs_InfEx_Rsp;
-static gint ett_rnsap_InformationExchangeInitiationFailure;
-static gint ett_rnsap_InformationReport;
-static gint ett_rnsap_InformationExchangeObjectType_InfEx_Rprt;
-static gint ett_rnsap_Cell_InfEx_Rprt;
-static gint ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_InfEx_Rprt;
-static gint ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_Item_InfEx_Rprt;
-static gint ett_rnsap_MBMS_Bearer_Service_List_InfEx_Rprt;
-static gint ett_rnsap_MBMS_Bearer_Service_List_Item_InfEx_Rprt;
-static gint ett_rnsap_MBMS_Cell_InfEx_Rprt;
-static gint ett_rnsap_MBMS_Cell_Item_InfEx_Rprt;
-static gint ett_rnsap_Common_E_RGCH_Cell_InfEx_Rprt;
-static gint ett_rnsap_Common_E_RGCH_Cell_Item_InfEx_Rprt;
-static gint ett_rnsap_InformationExchangeTerminationRequest;
-static gint ett_rnsap_InformationExchangeFailureIndication;
-static gint ett_rnsap_ResetRequest;
-static gint ett_rnsap_ResetIndicator;
-static gint ett_rnsap_ContextList_Reset;
-static gint ett_rnsap_ContextInfoList_Reset;
-static gint ett_rnsap_ContextInfoItem_Reset;
-static gint ett_rnsap_ContextType_Reset;
-static gint ett_rnsap_ContextGroupList_Reset;
-static gint ett_rnsap_ContextGroupInfoList_Reset;
-static gint ett_rnsap_ContextGroupInfoItem_Reset;
-static gint ett_rnsap_ResetResponse;
-static gint ett_rnsap_RadioLinkActivationCommandFDD;
-static gint ett_rnsap_DelayedActivationInformationList_RL_ActivationCmdFDD;
-static gint ett_rnsap_DelayedActivationInformation_RL_ActivationCmdFDD;
-static gint ett_rnsap_RadioLinkActivationCommandTDD;
-static gint ett_rnsap_DelayedActivationInformationList_RL_ActivationCmdTDD;
-static gint ett_rnsap_DelayedActivationInformation_RL_ActivationCmdTDD;
-static gint ett_rnsap_GERANUplinkSignallingTransferIndication;
-static gint ett_rnsap_RadioLinkParameterUpdateIndicationFDD;
-static gint ett_rnsap_RL_ParameterUpdateIndicationFDD_RL_InformationList;
-static gint ett_rnsap_RL_ParameterUpdateIndicationFDD_RL_Information_Item;
-static gint ett_rnsap_UE_Measurement_Forwarding;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Param_Upd;
-static gint ett_rnsap_Additional_HS_Cell_Information_RL_Param_Upd_ItemIEs;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_RL_Param_Upd;
-static gint ett_rnsap_Additional_EDCH_Cell_Information_RL_Param_Upd_ItemIEs;
-static gint ett_rnsap_RadioLinkParameterUpdateIndicationTDD;
-static gint ett_rnsap_UEMeasurementInitiationRequest;
-static gint ett_rnsap_UEMeasurementInitiationResponse;
-static gint ett_rnsap_UEMeasurementInitiationFailure;
-static gint ett_rnsap_UEMeasurementReport;
-static gint ett_rnsap_UEMeasurementTerminationRequest;
-static gint ett_rnsap_UEMeasurementFailureIndication;
-static gint ett_rnsap_IurInvokeTrace;
-static gint ett_rnsap_ListOfInterfacesToTrace;
-static gint ett_rnsap_InterfacesToTraceItem;
-static gint ett_rnsap_IurDeactivateTrace;
-static gint ett_rnsap_MBMSAttachCommand;
-static gint ett_rnsap_MBMSDetachCommand;
-static gint ett_rnsap_DirectInformationTransfer;
-static gint ett_rnsap_EnhancedRelocationRequest;
-static gint ett_rnsap_EnhancedRelocationResponse;
-static gint ett_rnsap_EnhancedRelocationFailure;
-static gint ett_rnsap_EnhancedRelocationCancel;
-static gint ett_rnsap_EnhancedRelocationSignallingTransfer;
-static gint ett_rnsap_EnhancedRelocationRelease;
-static gint ett_rnsap_MBSFNMCCHInformation;
-static gint ett_rnsap_SecondaryULFrequencyReport;
-static gint ett_rnsap_SecondaryULFrequencyUpdateIndication;
-static gint ett_rnsap_EnhancedRelocationResourceRequest;
-static gint ett_rnsap_EnhancedRelocationResourceResponse;
-static gint ett_rnsap_EnhancedRelocationResourceFailure;
-static gint ett_rnsap_EnhancedRelocationResourceReleaseCommand;
-static gint ett_rnsap_EnhancedRelocationResourceReleaseComplete;
-static gint ett_rnsap_PrivateMessage;
-static gint ett_rnsap_InformationTransferControlRequest;
-static gint ett_rnsap_Control_Type_InformationTransferControlReq;
-static gint ett_rnsap_Suspension_Control_Type;
-static gint ett_rnsap_Resume_Control_Type;
-static gint ett_rnsap_RNSAP_PDU;
-static gint ett_rnsap_InitiatingMessage;
-static gint ett_rnsap_SuccessfulOutcome;
-static gint ett_rnsap_UnsuccessfulOutcome;
-static gint ett_rnsap_Outcome;
+static int ett_rnsap_PrivateIE_ID;
+static int ett_rnsap_ProcedureID;
+static int ett_rnsap_TransactionID;
+static int ett_rnsap_ProtocolIE_Container;
+static int ett_rnsap_ProtocolIE_Field;
+static int ett_rnsap_ProtocolExtensionContainer;
+static int ett_rnsap_ProtocolExtensionField;
+static int ett_rnsap_PrivateIE_Container;
+static int ett_rnsap_PrivateIE_Field;
+static int ett_rnsap_ActivationInformation;
+static int ett_rnsap_ActivationInformationItem;
+static int ett_rnsap_Active_MBMS_Bearer_Service_ListFDD;
+static int ett_rnsap_Active_MBMS_Bearer_Service_ListFDD_PFL;
+static int ett_rnsap_Active_MBMS_Bearer_Service_ListTDD;
+static int ett_rnsap_Active_MBMS_Bearer_Service_ListTDD_PFL;
+static int ett_rnsap_Active_Pattern_Sequence_Information;
+static int ett_rnsap_Additional_EDCH_Cell_Information_Response_RLAddList;
+static int ett_rnsap_Additional_EDCH_Cell_Information_Response_RLAdd_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Setup_Info;
+static int ett_rnsap_ANRReportIndication;
+static int ett_rnsap_Additional_EDCH_Cell_Information_Setup;
+static int ett_rnsap_Additional_EDCH_FDD_Setup_Cell_Information;
+static int ett_rnsap_Additional_EDCH_UL_DPCH_Information_Setup;
+static int ett_rnsap_Additional_EDCH_F_DPCH_Information;
+static int ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Setup_List;
+static int ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Setup_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Cell_Information_To_Add_List;
+static int ett_rnsap_Additional_EDCH_Cell_Information_To_Add_ItemIEs;
+static int ett_rnsap_Additional_EDCH_UL_DPCH_Information_Addition;
+static int ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Add_List;
+static int ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Add_ItemIEs;
+static int ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Modify_List;
+static int ett_rnsap_Additional_EDCH_RL_Specific_Information_To_Modify_ItemIEs;
+static int ett_rnsap_Additional_EDCH_FDD_Information;
+static int ett_rnsap_DTX_Information2;
+static int ett_rnsap_Additional_EDCH_MAC_d_Flows_Specific_Info_List;
+static int ett_rnsap_Additional_EDCH_MAC_d_Flows_Specific_Info;
+static int ett_rnsap_Additional_EDCH_MAC_d_Flow_Specific_Information_Response_List;
+static int ett_rnsap_Additional_EDCH_MAC_d_Flows_Specific_Info_Response;
+static int ett_rnsap_Additional_EDCH_Cell_Information_Response_List;
+static int ett_rnsap_Additional_EDCH_FDD_Information_Response_ItemIEs;
+static int ett_rnsap_EDCH_Additional_RL_Specific_Information_Response_List;
+static int ett_rnsap_EDCH_Additional_RL_Specific_Information_Response_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Cell_Information_Response_RLReconf_List;
+static int ett_rnsap_Additional_EDCH_FDD_Information_Response_RLReconf_Items;
+static int ett_rnsap_EDCH_Additional_RL_Specific_Modified_Information_Response_List;
+static int ett_rnsap_EDCH_Additional_RL_Specific_Modified_Information_Response_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Cell_Information_ConfigurationChange_List;
+static int ett_rnsap_Additional_EDCH_ConfigurationChange_Info_ItemIEs;
+static int ett_rnsap_Additional_EDCH_UL_DPCH_Information_Modify;
+static int ett_rnsap_Additional_EDCH_Cell_Information_Removal_List;
+static int ett_rnsap_Additional_EDCH_Cell_Information_Removal_Info_ItemIEs;
+static int ett_rnsap_Additional_EDCH_FDD_Update_Information;
+static int ett_rnsap_Additional_EDCH_DL_Control_Channel_Change_Information_List;
+static int ett_rnsap_Additional_EDCH_DL_Control_Channel_Change_Info_ItemIEs;
+static int ett_rnsap_AdditionalPreferredFrequency;
+static int ett_rnsap_AdditionalPreferredFrequencyItem;
+static int ett_rnsap_AffectedUEInformationForMBMS;
+static int ett_rnsap_AllocationRetentionPriority;
+static int ett_rnsap_Allowed_Rate_Information;
+static int ett_rnsap_Angle_Of_Arrival_Value_LCR;
+static int ett_rnsap_ANR_Cell_Information;
+static int ett_rnsap_ANR_FDD_CellInformation;
+static int ett_rnsap_ANR_TDD_CellInformation;
+static int ett_rnsap_ANR_LCR_TDD_CellInformation;
+static int ett_rnsap_ANR_Multiple_PLMN_List;
+static int ett_rnsap_BadSatellites;
+static int ett_rnsap_T_badSatelliteInformation;
+static int ett_rnsap_T_badSatelliteInformation_item;
+static int ett_rnsap_BDS_IGPInfoList;
+static int ett_rnsap_BDS_IGPInfo;
+static int ett_rnsap_BDS_Ionospheric_Grid_Model;
+static int ett_rnsap_BSIC;
+static int ett_rnsap_BurstModeParameters;
+static int ett_rnsap_Cause;
+static int ett_rnsap_CellBased;
+static int ett_rnsap_CellIdList;
+static int ett_rnsap_Cell_Capacity_Class_Value;
+static int ett_rnsap_CGI;
+static int ett_rnsap_CommonMeasurementAccuracy;
+static int ett_rnsap_CommonMeasurementValue;
+static int ett_rnsap_CommonMeasurementValueInformation;
+static int ett_rnsap_CommonMeasurementAvailable;
+static int ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationFDD;
+static int ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationFDDItem;
+static int ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationLCR;
+static int ett_rnsap_Common_EDCH_MAC_d_Flow_Specific_InformationItemLCR;
+static int ett_rnsap_Common_E_DCH_LogicalChannelInformation;
+static int ett_rnsap_Common_E_DCH_LogicalChannelInformationItem;
+static int ett_rnsap_Common_E_RGCH_Cell_Information;
+static int ett_rnsap_Common_E_RGCH_Cell_Info;
+static int ett_rnsap_Continuous_Packet_Connectivity_DTX_DRX_Information;
+static int ett_rnsap_Continuous_Packet_Connectivity_DTX_DRX_Information_to_Modify;
+static int ett_rnsap_Continuous_Packet_Connectivity_HS_SCCH_Less_Information;
+static int ett_rnsap_Continuous_Packet_Connectivity_HS_SCCH_Less_InformationItem;
+static int ett_rnsap_Continuous_Packet_Connectivity_HS_SCCH_Less_Information_Response;
+static int ett_rnsap_CorrespondingCells;
+static int ett_rnsap_CPC_Information;
+static int ett_rnsap_Counting_Information;
+static int ett_rnsap_Counting_Information_List;
+static int ett_rnsap_CriticalityDiagnostics;
+static int ett_rnsap_CriticalityDiagnostics_IE_List;
+static int ett_rnsap_CriticalityDiagnostics_IE_List_item;
+static int ett_rnsap_MessageStructure;
+static int ett_rnsap_MessageStructure_item;
+static int ett_rnsap_CN_CS_DomainIdentifier;
+static int ett_rnsap_CN_PS_DomainIdentifier;
+static int ett_rnsap_CPC_InformationLCR;
+static int ett_rnsap_ContinuousPacketConnectivity_DRX_InformationLCR;
+static int ett_rnsap_HS_SCCH_DRX_Information_LCR;
+static int ett_rnsap_E_AGCH_DRX_Information_LCR;
+static int ett_rnsap_E_AGCH_DRX_Parameters;
+static int ett_rnsap_ContinuousPacketConnectivity_DRX_Information_to_Modify_LCR;
+static int ett_rnsap_DRX_Information_to_Modify_LCR;
+static int ett_rnsap_DRX_Information_to_Modify_Items_LCR;
+static int ett_rnsap_ContinuousPacketConnectivity_DRX_Information_ResponseLCR;
+static int ett_rnsap_HS_SCCH_DRX_Information_ResponseLCR;
+static int ett_rnsap_E_AGCH_DRX_Information_ResponseLCR;
+static int ett_rnsap_E_AGCH_DRX_Parameters_Response;
+static int ett_rnsap_Controlled_Object_Scope;
+static int ett_rnsap_DBDS_CorrectionsReq;
+static int ett_rnsap_DBDS_Corrections;
+static int ett_rnsap_DBDS_Info;
+static int ett_rnsap_DBDS_SignalInfoList;
+static int ett_rnsap_DBDS_SignalInfo;
+static int ett_rnsap_DBDS_InfoList;
+static int ett_rnsap_DCH_ENH_Information;
+static int ett_rnsap_DCH_ENH_Information_to_Modify;
+static int ett_rnsap_DCH_ENH_Concat;
+static int ett_rnsap_DCH_ENH_Information_Reconf;
+static int ett_rnsap_DCH_FDD_Information;
+static int ett_rnsap_DCH_FDD_InformationItem;
+static int ett_rnsap_DCH_MeasurementOccasion_Information;
+static int ett_rnsap_DchMeasurementOccasionInformation_Item;
+static int ett_rnsap_Measurement_Occasion_Pattern_Sequence_parameters;
+static int ett_rnsap_DCH_Specific_FDD_InformationList;
+static int ett_rnsap_DCH_Specific_FDD_Item;
+static int ett_rnsap_DCH_InformationResponse;
+static int ett_rnsap_DCH_InformationResponseItem;
+static int ett_rnsap_DCH_TDD_Information;
+static int ett_rnsap_DCH_TDD_InformationItem;
+static int ett_rnsap_DCH_Specific_TDD_InformationList;
+static int ett_rnsap_DCH_Specific_TDD_Item;
+static int ett_rnsap_DedicatedMeasurementValue;
+static int ett_rnsap_DedicatedMeasurementValueInformation;
+static int ett_rnsap_DedicatedMeasurementAvailable;
+static int ett_rnsap_DelayedActivation;
+static int ett_rnsap_DelayedActivationUpdate;
+static int ett_rnsap_Activate_Info;
+static int ett_rnsap_Deactivate_Info;
+static int ett_rnsap_Execution_Type;
+static int ett_rnsap_DGANSSCorrections;
+static int ett_rnsap_T_dGANSS_Information;
+static int ett_rnsap_T_dGANSS_Information_item;
+static int ett_rnsap_T_dGANSS_SignalInformation;
+static int ett_rnsap_T_dGANSS_SignalInformation_item;
+static int ett_rnsap_DGANSS_Corrections_Req;
+static int ett_rnsap_DGANSSThreshold;
+static int ett_rnsap_DGNSS_ValidityPeriod;
+static int ett_rnsap_DGPSCorrections;
+static int ett_rnsap_T_satellite_DGPSCorrections_Information;
+static int ett_rnsap_T_satellite_DGPSCorrections_Information_item;
+static int ett_rnsap_DGPSThreshold;
+static int ett_rnsap_DL_TBS;
+static int ett_rnsap_HS_DSCH_Cell_List;
+static int ett_rnsap_HS_DSCH_Cell;
+static int ett_rnsap_DL_PowerBalancing_Information;
+static int ett_rnsap_DL_ReferencePowerInformationList;
+static int ett_rnsap_DL_ReferencePowerInformationItem;
+static int ett_rnsap_DL_ReferencePowerInformation;
+static int ett_rnsap_DL_Timeslot_Information;
+static int ett_rnsap_DL_Timeslot_InformationItem;
+static int ett_rnsap_DL_TimeslotLCR_Information;
+static int ett_rnsap_DL_TimeslotLCR_InformationItem;
+static int ett_rnsap_DL_Timeslot_Information768;
+static int ett_rnsap_DL_Timeslot_InformationItem768;
+static int ett_rnsap_DL_TimeSlot_ISCP_Info;
+static int ett_rnsap_DL_TimeSlot_ISCP_InfoItem;
+static int ett_rnsap_DL_TimeSlot_ISCP_LCR_Information;
+static int ett_rnsap_DL_TimeSlot_ISCP_LCR_InfoItem;
+static int ett_rnsap_Downlink_TPC_enhancements_Information;
+static int ett_rnsap_Downlink_TPC_enhancements_Reconf;
+static int ett_rnsap_DRX_Information;
+static int ett_rnsap_DRX_Information_to_Modify;
+static int ett_rnsap_DRX_Information_to_Modify_Items;
+static int ett_rnsap_DSCH_FlowControlInformation;
+static int ett_rnsap_DSCH_FlowControlItem;
+static int ett_rnsap_DSCH_TDD_Information;
+static int ett_rnsap_DSCH_TDD_InformationItem;
+static int ett_rnsap_DTX_Cycle_2ms_Items;
+static int ett_rnsap_DTX_Cycle_2ms_to_Modify_Items;
+static int ett_rnsap_DTX_Cycle_10ms_Items;
+static int ett_rnsap_DTX_Cycle_10ms_to_Modify_Items;
+static int ett_rnsap_DTX_Information;
+static int ett_rnsap_DTX_Information_to_Modify;
+static int ett_rnsap_DTX_Information_to_Modify_Items;
+static int ett_rnsap_EARFCN_Information;
+static int ett_rnsap_EARFCN_FDD;
+static int ett_rnsap_EARFCN_FDD_Extended;
+static int ett_rnsap_ECGI;
+static int ett_rnsap_EDCH_FDD_DL_ControlChannelInformation;
+static int ett_rnsap_EDCH_FDD_Information;
+static int ett_rnsap_EDCH_FDD_InformationResponse;
+static int ett_rnsap_EDCH_MACdFlow_Specific_InformationResponse;
+static int ett_rnsap_EDCH_MACdFlow_Specific_InformationResponseItem;
+static int ett_rnsap_EDCH_FDD_Information_To_Modify;
+static int ett_rnsap_E_DCH_FDD_Update_Information;
+static int ett_rnsap_E_DCH_MACdFlow_Specific_UpdateInformation;
+static int ett_rnsap_E_DCH_MACdFlow_Specific_UpdateInformation_Item;
+static int ett_rnsap_E_DCH_DL_Control_Channel_Change_Information;
+static int ett_rnsap_E_DCH_DL_Control_Channel_Change_Information_Item;
+static int ett_rnsap_E_DCH_DL_Control_Channel_Grant_Information;
+static int ett_rnsap_E_DCH_DL_Control_Channel_Grant_Information_Item;
+static int ett_rnsap_E_DCH_Grant_Type_Information;
+static int ett_rnsap_E_DCH_LogicalChannelInformation;
+static int ett_rnsap_E_DCH_LogicalChannelInformationItem;
+static int ett_rnsap_E_DCH_MACdPDU_SizeList;
+static int ett_rnsap_E_DCH_MACdPDU_SizeListItem;
+static int ett_rnsap_E_DCH_LogicalChannelToModify;
+static int ett_rnsap_E_DCH_LogicalChannelToModifyItem;
+static int ett_rnsap_E_DCH_MACdPDU_SizeToModifyList;
+static int ett_rnsap_E_DCH_LogicalChannelToDelete;
+static int ett_rnsap_E_DCH_LogicalChannelToDeleteItem;
+static int ett_rnsap_EDCH_MACdFlows_Information;
+static int ett_rnsap_EDCH_MACdFlow_Specific_InfoList;
+static int ett_rnsap_EDCH_MACdFlow_Specific_InfoItem;
+static int ett_rnsap_EDCH_MACdFlow_Specific_InfoToModifyList;
+static int ett_rnsap_EDCH_MACdFlow_Specific_InfoToModifyItem;
+static int ett_rnsap_EDCH_MACdFlows_To_Delete;
+static int ett_rnsap_EDCH_MACdFlows_To_Delete_Item;
+static int ett_rnsap_E_DCH_Non_Scheduled_Transmission_Grant_Items;
+static int ett_rnsap_E_DCH_Serving_cell_change_informationResponse;
+static int ett_rnsap_E_DCH_serving_cell_change_choice;
+static int ett_rnsap_E_DCH_serving_cell_change_successful;
+static int ett_rnsap_E_DCH_RL_InformationList_Rsp;
+static int ett_rnsap_E_DCH_RL_InformationList_Rsp_Item;
+static int ett_rnsap_E_DCH_serving_cell_change_unsuccessful;
+static int ett_rnsap_E_DCH_TTI_Length;
+static int ett_rnsap_E_DCH_TTI_Length_to_Modify;
+static int ett_rnsap_EDPCH_Information_FDD;
+static int ett_rnsap_EDPCH_Information_RLReconfRequest_FDD;
+static int ett_rnsap_EDCH_Serving_RL;
+static int ett_rnsap_EDCH_Serving_RL_in_this_DRNS;
+static int ett_rnsap_Enhanced_FACH_Information_ResponseFDD;
+static int ett_rnsap_Enhanced_FACH_Information_ResponseLCR;
+static int ett_rnsap_E_TFCI_Boost_Information;
+static int ett_rnsap_E_TFCS_Information;
+static int ett_rnsap_EventA;
+static int ett_rnsap_EventB;
+static int ett_rnsap_EventC;
+static int ett_rnsap_EventD;
+static int ett_rnsap_EventE;
+static int ett_rnsap_EventF;
+static int ett_rnsap_EventH;
+static int ett_rnsap_Event1F_Parameters;
+static int ett_rnsap_Event1I_Parameters;
+static int ett_rnsap_E_DCH_Information;
+static int ett_rnsap_E_PUCH_Information;
+static int ett_rnsap_E_TFCS_Information_TDD;
+static int ett_rnsap_E_DCH_QPSK_RefBetaInfo;
+static int ett_rnsap_E_DCH_sixteenQAM_RefBetaInfo;
+static int ett_rnsap_E_DCH_RefBeta_Item;
+static int ett_rnsap_E_DCH_MACdFlows_Information_TDD;
+static int ett_rnsap_E_DCH_MACdFlow_InfoTDDItem;
+static int ett_rnsap_E_DCH_TDD_Information;
+static int ett_rnsap_E_DCH_Information_Reconfig;
+static int ett_rnsap_E_DCH_TDD_Information_to_Modify;
+static int ett_rnsap_E_DCH_TDD_Information_to_Modify_List;
+static int ett_rnsap_E_DCH_MACdFlow_ModifyTDDItem;
+static int ett_rnsap_E_DCH_Information_Response;
+static int ett_rnsap_Fast_TTI_switching_Mode_synchronized;
+static int ett_rnsap_Fast_TTI_switching_Mode_unsynchronized;
+static int ett_rnsap_E_DCH_TDD_MACdFlow_Specific_InformationResp;
+static int ett_rnsap_E_DCH_TDD_MACdFlow_Specific_InformationResp_Item;
+static int ett_rnsap_E_AGCH_Specific_InformationRespListTDD;
+static int ett_rnsap_E_AGCH_Specific_InformationResp_ItemTDD;
+static int ett_rnsap_E_HICH_InformationResp;
+static int ett_rnsap_E_DCH_Non_Scheduled_Grant_Info;
+static int ett_rnsap_E_DCH_768_Information;
+static int ett_rnsap_E_DCH_TDD_Information768;
+static int ett_rnsap_E_DCH_768_Information_Reconfig;
+static int ett_rnsap_E_DCH_768_Information_Response;
+static int ett_rnsap_E_AGCH_Specific_InformationRespList768TDD;
+static int ett_rnsap_E_AGCH_Specific_InformationResp_Item768TDD;
+static int ett_rnsap_E_HICH_InformationResp768;
+static int ett_rnsap_E_DCH_Non_Scheduled_Grant_Info768;
+static int ett_rnsap_E_DCH_LCR_Information;
+static int ett_rnsap_E_PUCH_LCR_Information;
+static int ett_rnsap_E_DCH_LCR_TDD_Information;
+static int ett_rnsap_E_DCH_LCR_Information_Reconfig;
+static int ett_rnsap_E_DCH_LCR_Information_Response;
+static int ett_rnsap_E_AGCH_Specific_InformationRespList_LCR_TDD;
+static int ett_rnsap_E_AGCH_Specific_InformationResp_Item_LCR_TDD;
+static int ett_rnsap_E_HICH_Specific_InformationResp_LCR;
+static int ett_rnsap_E_HICH_Scheduled_InformationRespList_LCR_TDD;
+static int ett_rnsap_E_HICH_Scheduled_InformationResp_Item_LCR_TDD;
+static int ett_rnsap_E_HICH_InformationResp_LCR;
+static int ett_rnsap_E_DCH_Non_Scheduled_Grant_Info_LCR;
+static int ett_rnsap_Radio_Links_without_DPCH_FDPCH_Indication;
+static int ett_rnsap_Radio_Links_without_DPCH_FDPCH_Information;
+static int ett_rnsap_Extended_S_RNTI_Group;
+static int ett_rnsap_ExtendedAffectedUEInformationForMBMS;
+static int ett_rnsap_E_DCH_Semi_PersistentScheduling_Information_LCR;
+static int ett_rnsap_E_DCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
+static int ett_rnsap_E_DCH_Semi_PersistentScheduling_Information_ResponseLCR;
+static int ett_rnsap_Initial_E_DCH_SPS_resource;
+static int ett_rnsap_E_DCH_SPS_HICH_Information;
+static int ett_rnsap_E_HICH_Configuration;
+static int ett_rnsap_Same_As_Scheduled_E_HICH;
+static int ett_rnsap_E_HICH_InformationResp_ExplicitConfiguration_LCR;
+static int ett_rnsap_FACH_FlowControlInformation;
+static int ett_rnsap_FACH_FlowControlInformationItem;
+static int ett_rnsap_FACH_InformationList;
+static int ett_rnsap_FACH_InformationItem;
+static int ett_rnsap_FDD_DCHs_to_Modify;
+static int ett_rnsap_FDD_DCHs_to_ModifyItem;
+static int ett_rnsap_FDD_DCHs_to_ModifySpecificInformationList;
+static int ett_rnsap_FDD_DCHs_to_ModifySpecificItem;
+static int ett_rnsap_FDD_DL_CodeInformation;
+static int ett_rnsap_FDD_DL_CodeInformationItem;
+static int ett_rnsap_F_DPCH_Info;
+static int ett_rnsap_F_DPCH_Info_To_Modify;
+static int ett_rnsap_FPACH_Information;
+static int ett_rnsap_FTPICH_Information;
+static int ett_rnsap_FTPICH_Information_To_Modify;
+static int ett_rnsap_FTPICH_Information_Reconf;
+static int ett_rnsap_FTPICH_Reconfiguration_Information;
+static int ett_rnsap_FTPICH_Information_Response;
+static int ett_rnsap_GA_Cell;
+static int ett_rnsap_GA_Cell_item;
+static int ett_rnsap_GA_CellAdditionalShapes;
+static int ett_rnsap_GA_AltitudeAndDirection;
+static int ett_rnsap_GA_EllipsoidArc;
+static int ett_rnsap_Gainfactors_10ms_mode;
+static int ett_rnsap_T_signalledGainFactors10ms;
+static int ett_rnsap_GANSS_AddClockModels;
+static int ett_rnsap_GANSS_AddOrbitModels;
+static int ett_rnsap_GANSS_Additional_Ionospheric_Model;
+static int ett_rnsap_GANSS_Additional_Navigation_Models;
+static int ett_rnsap_GANSS_Additional_Time_Models;
+static int ett_rnsap_GANSS_Additional_UTC_Models;
+static int ett_rnsap_GANSS_Almanac;
+static int ett_rnsap_T_gANSS_AlmanacModel;
+static int ett_rnsap_T_gANSS_keplerianParameters;
+static int ett_rnsap_GANSS_alm_keplerianNAVAlmanac;
+static int ett_rnsap_GANSS_alm_KEPLERIANBDSALMANAC;
+static int ett_rnsap_GANSS_alm_keplerianReducedAlmanac;
+static int ett_rnsap_GANSS_alm_keplerianMidiAlmanac;
+static int ett_rnsap_GANSS_alm_keplerianGLONASS;
+static int ett_rnsap_GANSS_alm_ecefSBASAlmanac;
+static int ett_rnsap_GANSS_Auxiliary_Information;
+static int ett_rnsap_GANSS_AuxInfoGANSS_ID1;
+static int ett_rnsap_GANSS_AuxInfoGANSS_ID1_item;
+static int ett_rnsap_GANSS_AuxInfoGANSS_ID3;
+static int ett_rnsap_GANSS_AuxInfoGANSS_ID3_item;
+static int ett_rnsap_GANSS_BDSclockModel;
+static int ett_rnsap_GANSS_Clock_Model;
+static int ett_rnsap_GANSS_Clock_Model_item;
+static int ett_rnsap_GANSS_CNAVclockModel;
+static int ett_rnsap_GANSS_Common_Data;
+static int ett_rnsap_GANSS_CommonDataInfoReq;
+static int ett_rnsap_GANSS_Data_Bit_Assistance;
+static int ett_rnsap_GANSS_DataBitAssistanceList;
+static int ett_rnsap_GANSS_DataBitAssistanceItem;
+static int ett_rnsap_GANSS_DataBitAssistanceSgnList;
+static int ett_rnsap_GANSS_DataBitAssistanceSgnItem;
+static int ett_rnsap_GANSS_Data_Bit_Assistance_ReqItem;
+static int ett_rnsap_GANSS_Data_Bit_Assistance_ReqList;
+static int ett_rnsap_T_ganss_SatelliteInfo;
+static int ett_rnsap_GANSS_DeltaUT1;
+static int ett_rnsap_GANSS_Earth_Orientation_Parameters;
+static int ett_rnsap_GANSS_GenericDataInfoReqList;
+static int ett_rnsap_GANSS_GenericDataInfoReqItem;
+static int ett_rnsap_GANSS_Generic_Data;
+static int ett_rnsap_GANSS_Generic_DataItem;
+static int ett_rnsap_GANSS_GLONASSclockModel;
+static int ett_rnsap_GANSS_Information;
+static int ett_rnsap_GANSS_Ionospheric_Model;
+static int ett_rnsap_GANSS_IonosphereRegionalStormFlags;
+static int ett_rnsap_GANSS_NAVclockModel;
+static int ett_rnsap_GANSS_Navigation_Model_And_Time_Recovery;
+static int ett_rnsap_GANSS_NavModel_BDSKeplerianSet;
+static int ett_rnsap_GANSS_NavModel_CNAVKeplerianSet;
+static int ett_rnsap_GANSS_NavModel_GLONASSecef;
+static int ett_rnsap_GANSS_NavModel_NAVKeplerianSet;
+static int ett_rnsap_GANSS_NavModel_SBASecef;
+static int ett_rnsap_GANSS_Orbit_Model;
+static int ett_rnsap_T_gANSS_keplerianParameters_01;
+static int ett_rnsap_GANSS_Real_Time_Integrity;
+static int ett_rnsap_GANSS_Real_Time_Integrity_item;
+static int ett_rnsap_GANSS_RX_Pos;
+static int ett_rnsap_GANSS_SatelliteInformationKP;
+static int ett_rnsap_GANSS_SatelliteInformationKP_item;
+static int ett_rnsap_Ganss_Sat_Info_AddNavList;
+static int ett_rnsap_Ganss_Sat_Info_AddNavList_item;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_BDSkpList;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_BDS;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_GLOkpList;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_GLOkpList_item;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_MIDIkpList;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_MIDIkpList_item;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_NAVkpList;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_NAVkpList_item;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_REDkpList;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_REDkpList_item;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_SBASecefList;
+static int ett_rnsap_GANSS_SAT_Info_Almanac_SBASecefList_item;
+static int ett_rnsap_GANSS_Sat_Info_Nav;
+static int ett_rnsap_GANSS_Sat_Info_Nav_item;
+static int ett_rnsap_GANSS_SBASclockModel;
+static int ett_rnsap_GANSS_Time_Model;
+static int ett_rnsap_GANSS_Transmission_Time;
+static int ett_rnsap_GANSS_UTC_Model;
+static int ett_rnsap_GANSS_UTCmodelSet1;
+static int ett_rnsap_GANSS_UTCmodelSet2;
+static int ett_rnsap_GANSS_UTCmodelSet3;
+static int ett_rnsap_GANSS_UTCmodelSet4;
+static int ett_rnsap_GA_PointWithAltitude;
+static int ett_rnsap_GA_PointWithAltitudeAndUncertaintyEllipsoid;
+static int ett_rnsap_GA_PointWithUnCertaintyEllipse;
+static int ett_rnsap_GA_UncertaintyEllipse;
+static int ett_rnsap_GA_PointWithUnCertainty;
+static int ett_rnsap_GA_AccessPointPosition;
+static int ett_rnsap_GeographicalCoordinate;
+static int ett_rnsap_GERAN_SI_Type;
+static int ett_rnsap_GERAN_SystemInfo;
+static int ett_rnsap_GERAN_SystemInfo_item;
+static int ett_rnsap_GPS_Almanac;
+static int ett_rnsap_T_satellite_Almanac_Information;
+static int ett_rnsap_T_satellite_Almanac_Information_item;
+static int ett_rnsap_Satellite_Almanac_Information_ExtItem;
+static int ett_rnsap_Satellite_Almanac_Information_ExtItem_item;
+static int ett_rnsap_GPSInformation;
+static int ett_rnsap_GPSInformation_item;
+static int ett_rnsap_GPS_Ionospheric_Model;
+static int ett_rnsap_GPS_NavigationModel_and_TimeRecovery;
+static int ett_rnsap_GPS_NavigationModel_and_TimeRecovery_item;
+static int ett_rnsap_GPS_RealTime_Integrity;
+static int ett_rnsap_GPS_RX_POS;
+static int ett_rnsap_GPS_UTC_Model;
+static int ett_rnsap_Guaranteed_Rate_Information;
+static int ett_rnsap_HARQ_MemoryPartitioning;
+static int ett_rnsap_HARQ_MemoryPartitioning_Implicit;
+static int ett_rnsap_HARQ_MemoryPartitioning_Explicit;
+static int ett_rnsap_HARQ_MemoryPartitioningList;
+static int ett_rnsap_HARQ_MemoryPartitioningInfoExtForMIMO;
+static int ett_rnsap_HARQ_MemoryPartitioningItem;
+static int ett_rnsap_HSDSCH_FDD_Information;
+static int ett_rnsap_HSDSCH_FDD_Information_Response;
+static int ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Information;
+static int ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Information_Response;
+static int ett_rnsap_HS_DSCH_Secondary_Serving_Information_To_Modify;
+static int ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Information_To_Modify_Unsynchronised;
+static int ett_rnsap_HS_DSCH_FDD_Secondary_Serving_Update_Information;
+static int ett_rnsap_HS_DSCH_Secondary_Serving_Cell_Change_Information_Response;
+static int ett_rnsap_HS_DSCH_Secondary_Serving_cell_change_choice;
+static int ett_rnsap_HS_Secondary_Serving_cell_change_successful;
+static int ett_rnsap_HS_Secondary_Serving_cell_change_unsuccessful;
+static int ett_rnsap_HSDSCH_Information_to_Modify;
+static int ett_rnsap_HSDSCH_Information_to_Modify_Unsynchronised;
+static int ett_rnsap_HSDSCH_MACdFlow_Specific_InfoList;
+static int ett_rnsap_HSDSCH_MACdFlow_Specific_InfoItem;
+static int ett_rnsap_HSDSCH_MACdFlow_Specific_InfoList_Response;
+static int ett_rnsap_HSDSCH_MACdFlow_Specific_InfoItem_Response;
+static int ett_rnsap_HSDSCH_MACdFlow_Specific_InfoList_to_Modify;
+static int ett_rnsap_HSDSCH_MACdFlow_Specific_InfoItem_to_Modify;
+static int ett_rnsap_HSDSCH_MACdFlows_Information;
+static int ett_rnsap_HSDSCH_MACdFlows_to_Delete;
+static int ett_rnsap_HSDSCH_MACdFlows_to_Delete_Item;
+static int ett_rnsap_HSDSCH_Initial_Capacity_Allocation;
+static int ett_rnsap_HSDSCH_Initial_Capacity_AllocationItem;
+static int ett_rnsap_HSDSCH_PreconfigurationInfo;
+static int ett_rnsap_Additional_EDCH_Preconfiguration_Information;
+static int ett_rnsap_Additional_EDCH_Preconfiguration_Information_ItemIEs;
+static int ett_rnsap_HSDSCH_PreconfigurationSetup;
+static int ett_rnsap_HS_SCCH_PreconfiguredCodes;
+static int ett_rnsap_HS_SCCH_PreconfiguredCodesItem;
+static int ett_rnsap_HS_DSCH_serving_cell_change_information;
+static int ett_rnsap_HS_DSCH_serving_cell_change_informationResponse;
+static int ett_rnsap_HS_DSCH_serving_cell_change_choice;
+static int ett_rnsap_HS_serving_cell_change_successful;
+static int ett_rnsap_HS_serving_cell_change_unsuccessful;
+static int ett_rnsap_HSDSCH_TDD_Information;
+static int ett_rnsap_HSDSCH_TDD_Information_Response;
+static int ett_rnsap_HSPDSCH_TDD_Specific_InfoList_Response;
+static int ett_rnsap_HSPDSCH_TDD_Specific_InfoItem_Response;
+static int ett_rnsap_HSPDSCH_TDD_Specific_InfoList_Response_LCR;
+static int ett_rnsap_HSPDSCH_TDD_Specific_InfoItem_Response_LCR;
+static int ett_rnsap_HSPDSCH_TDD_Specific_InfoList_Response768;
+static int ett_rnsap_HSPDSCH_TDD_Specific_InfoItem_Response768;
+static int ett_rnsap_HSSCCH_FDD_Specific_InfoList_Response;
+static int ett_rnsap_HSSCCH_FDD_Specific_InfoItem_Response;
+static int ett_rnsap_HSSCCH_TDD_Specific_InfoList_Response;
+static int ett_rnsap_HSSCCH_TDD_Specific_InfoItem_Response;
+static int ett_rnsap_HSSCCH_TDD_Specific_InfoList_Response_LCR;
+static int ett_rnsap_HSSCCH_TDD_Specific_InfoItem_Response_LCR;
+static int ett_rnsap_HSSCCH_TDD_Specific_InfoList_Response768;
+static int ett_rnsap_HSSCCH_TDD_Specific_InfoItem_Response768;
+static int ett_rnsap_HSSICH_Info;
+static int ett_rnsap_HSSICH_InfoLCR;
+static int ett_rnsap_HSSICH_Info768;
+static int ett_rnsap_HS_SICH_Reception_Quality_Value;
+static int ett_rnsap_HSDSCH_FDD_Update_Information;
+static int ett_rnsap_HSDSCH_TDD_Update_Information;
+static int ett_rnsap_MIMO_ReferenceSignal_InformationListLCR;
+static int ett_rnsap_HSSICH_ReferenceSignal_InformationLCR;
+static int ett_rnsap_HS_DSCH_Semi_PersistentScheduling_Information_LCR;
+static int ett_rnsap_Transport_Block_Size_List_LCR;
+static int ett_rnsap_Transport_Block_Size_Item_LCR;
+static int ett_rnsap_Repetition_Period_List_LCR;
+static int ett_rnsap_Repetition_Period_Item_LCR;
+static int ett_rnsap_HS_DSCH_SPS_Operation_Indicator;
+static int ett_rnsap_HS_DSCH_Semi_PersistentScheduling_Information_to_Modify_LCR;
+static int ett_rnsap_HS_DSCH_Semi_PersistentScheduling_Information_ResponseLCR;
+static int ett_rnsap_HS_SICH_InformationList_for_HS_DSCH_SPS;
+static int ett_rnsap_HS_SICH_InformationItem_for_HS_DSCH_SPS;
+static int ett_rnsap_HS_SICH_Type;
+static int ett_rnsap_HS_SCCH_Associated_HS_SICH;
+static int ett_rnsap_Non_HS_SCCH_Associated_HS_SICH;
+static int ett_rnsap_Initial_HS_PDSCH_SPS_Resource;
+static int ett_rnsap_InformationAvailable;
+static int ett_rnsap_InformationReportCharacteristics;
+static int ett_rnsap_InformationReportPeriodicity;
+static int ett_rnsap_InformationThreshold;
+static int ett_rnsap_InformationType;
+static int ett_rnsap_IPDLParameters;
+static int ett_rnsap_Inter_Frequency_Cell_List;
+static int ett_rnsap_Inter_Frequency_Cell;
+static int ett_rnsap_Inter_Frequency_Cell_Information;
+static int ett_rnsap_Inter_Frequency_Cell_Information_SIB11;
+static int ett_rnsap_Inter_Frequency_Cell_Information_SIB12;
+static int ett_rnsap_Inter_Frequency_Cell_Information_SIB11ter;
+static int ett_rnsap_Inter_Frequency_Cells_Information_SIB11_Per_Indication;
+static int ett_rnsap_Inter_Frequency_Cells_Information_SIB12_Per_Indication;
+static int ett_rnsap_Inter_Frequency_Cells_Information_SIB11ter_Per_Indication;
+static int ett_rnsap_Inter_Frequency_Cell_SIB11ter_List;
+static int ett_rnsap_Inter_Frequency_Cell_SIB11ter;
+static int ett_rnsap_Inter_Frequency_Cell_SIB11_or_SIB12_List;
+static int ett_rnsap_Inter_Frequency_Cell_SIB11_or_SIB12;
+static int ett_rnsap_IPDL_FDD_Parameters;
+static int ett_rnsap_IPDL_TDD_Parameters;
+static int ett_rnsap_IPDL_TDD_ParametersLCR;
+static int ett_rnsap_IdleIntervalInformation;
+static int ett_rnsap_LABased;
+static int ett_rnsap_LAI_List;
+static int ett_rnsap_LAI;
+static int ett_rnsap_List_Of_PLMNs;
+static int ett_rnsap_LoadValue;
+static int ett_rnsap_LCRTDD_Uplink_Physical_Channel_Capability;
+static int ett_rnsap_M1Report;
+static int ett_rnsap_M2Report;
+static int ett_rnsap_MDTAreaScope;
+static int ett_rnsap_MDT_Configuration;
+static int ett_rnsap_MDT_Report_Parameters;
+static int ett_rnsap_MAC_c_sh_SDU_LengthList;
+static int ett_rnsap_MACdPDU_Size_IndexList;
+static int ett_rnsap_MACdPDU_Size_IndexItem;
+static int ett_rnsap_MACdPDU_Size_IndexList_to_Modify;
+static int ett_rnsap_MACdPDU_Size_IndexItem_to_Modify;
+static int ett_rnsap_MBMS_Bearer_Service_Full_Address;
+static int ett_rnsap_MBMS_Bearer_Service_List;
+static int ett_rnsap_MBMS_Bearer_ServiceItemFDD;
+static int ett_rnsap_MBMS_Bearer_ServiceItemFDD_PFL;
+static int ett_rnsap_MBMS_Bearer_ServiceItemTDD;
+static int ett_rnsap_MBMS_Bearer_ServiceItemTDD_PFL;
+static int ett_rnsap_MBMSChannelTypeInfo;
+static int ett_rnsap_MBMSChannelTypeCellList;
+static int ett_rnsap_MBMSPreferredFreqLayerInfo;
+static int ett_rnsap_MBMS_Neighbouring_Cell_Information;
+static int ett_rnsap_MBMS_ConcatenatedServiceList;
+static int ett_rnsap_MBMS_RLC_Sequence_Number_Information;
+static int ett_rnsap_MBMS_RLC_Sequence_Number_Information_List;
+static int ett_rnsap_MBMS_Bearer_Service_List_RLC;
+static int ett_rnsap_MBMS_Bearer_Service_List_RLCinfo;
+static int ett_rnsap_MCCH_Message_List;
+static int ett_rnsap_MCCH_Configuration_Info;
+static int ett_rnsap_MBSFN_Scheduling_Transmission_Time_Interval_Info_List;
+static int ett_rnsap_MBSFN_Scheduling_Transmission_Time_Interval_Item;
+static int ett_rnsap_MeasurementIncreaseDecreaseThreshold;
+static int ett_rnsap_MeasurementThreshold;
+static int ett_rnsap_MidambleShiftAndBurstType;
+static int ett_rnsap_Type1;
+static int ett_rnsap_MidambleAllocationMode1;
+static int ett_rnsap_Type2;
+static int ett_rnsap_MidambleAllocationMode2;
+static int ett_rnsap_Type3;
+static int ett_rnsap_MidambleAllocationMode3;
+static int ett_rnsap_MidambleShiftLCR;
+static int ett_rnsap_MidambleShiftAndBurstType768;
+static int ett_rnsap_Type7681;
+static int ett_rnsap_MidambleAllocationMode7681;
+static int ett_rnsap_Type7682;
+static int ett_rnsap_MidambleAllocationMode7682;
+static int ett_rnsap_Type7683;
+static int ett_rnsap_MidambleAllocationMode7683;
+static int ett_rnsap_MIMO_InformationResponse;
+static int ett_rnsap_MIMO_PilotConfiguration;
+static int ett_rnsap_Additional_Associated_Secondary_CPICH;
+static int ett_rnsap_Additional_Secondary_CPICH;
+static int ett_rnsap_ModifyPriorityQueue;
+static int ett_rnsap_MulticellEDCH_InformationItemIEs;
+static int ett_rnsap_MulticellEDCH_RL_SpecificInformationItemIEs;
+static int ett_rnsap_Multiple_PLMN_List;
+static int ett_rnsap_MultipleFreq_HSPDSCH_InformationList_ResponseTDDLCR;
+static int ett_rnsap_MultipleFreq_HSPDSCH_InformationItem_ResponseTDDLCR;
+static int ett_rnsap_Multi_Carrier_EDCH_Info;
+static int ett_rnsap_Multi_Carrier_EDCH_Information;
+static int ett_rnsap_Multi_Carrier_EDCH_LCR_InformationItem;
+static int ett_rnsap_Multi_Carrier_EDCH_MACdFlows_Information_TDD;
+static int ett_rnsap_Multi_Carrier_EDCH_MACdFlows_Specific_Info;
+static int ett_rnsap_Multi_Carrier_EDCH_Reconfigure;
+static int ett_rnsap_Continue_Setup_Change_Multi_Carrier_EDCH;
+static int ett_rnsap_Multi_Carrier_EDCH_Change_Info;
+static int ett_rnsap_Multi_Carrier_EDCH_Information_Removal_List;
+static int ett_rnsap_Multi_Carrier_EDCH_Information_Removal_Info_ItemIEs;
+static int ett_rnsap_Multi_Carrier_EDCH_Information_Response;
+static int ett_rnsap_Multi_Carrier_EDCH_LCR_Information_ResponseItem;
+static int ett_rnsap_Multiflow_Reconfiguration;
+static int ett_rnsap_Multiflow_Information;
+static int ett_rnsap_Multiflow_Information_To_Modify;
+static int ett_rnsap_Multiflow_RepetitionFactors;
+static int ett_rnsap_Multiflow_Timing;
+static int ett_rnsap_MU_MIMO_InformationLCR;
+static int ett_rnsap_Standalone_Midamble_Channel_Information;
+static int ett_rnsap_MU_MIMO_Indicator;
+static int ett_rnsap_NACC_Related_Data;
+static int ett_rnsap_Neighbouring_UMTS_CellInformation;
+static int ett_rnsap_Neighbouring_UMTS_CellInformation_Ext;
+static int ett_rnsap_Neighbouring_UMTS_CellInformationExtensionItem;
+static int ett_rnsap_Neighbouring_UMTS_CellInformationItem;
+static int ett_rnsap_Neighbouring_FDD_CellInformation;
+static int ett_rnsap_Neighbouring_FDD_CellInformationItem;
+static int ett_rnsap_MultipleFrequencyBandsIndicatorList;
+static int ett_rnsap_NeighbouringFDDCellMeasurementInformation;
+static int ett_rnsap_Neighbouring_GSM_CellInformationIEs;
+static int ett_rnsap_Neighbouring_GSM_CellInformationItem;
+static int ett_rnsap_Neighbouring_TDD_CellInformation;
+static int ett_rnsap_Neighbouring_TDD_CellInformationItem;
+static int ett_rnsap_NeighbouringTDDCellMeasurementInformation;
+static int ett_rnsap_NeighbouringTDDCellMeasurementInformationLCR;
+static int ett_rnsap_NeighbouringTDDCellMeasurementInformation768;
+static int ett_rnsap_Neighbouring_LCR_TDD_CellInformation;
+static int ett_rnsap_Neighbouring_LCR_TDD_CellInformationItem;
+static int ett_rnsap_Neighbouring_E_UTRA_CellInformation;
+static int ett_rnsap_Neighbouring_E_UTRA_CellInformationItem;
+static int ett_rnsap_MultipleFrequencyBandsIndicatorList_EUTRA;
+static int ett_rnsap_NotProvidedCellList;
+static int ett_rnsap_NRTLoadInformationValue;
+static int ett_rnsap_Non_Serving_RL_Preconfig_Setup;
+static int ett_rnsap_New_non_serving_RL_setup_selection;
+static int ett_rnsap_Additional_E_DCH_New_non_serving_RL_E_DCH_FDD_DL_Control_Channel_InfoList;
+static int ett_rnsap_Additional_E_DCH_New_non_serving_RL_E_DCH_FDD_DL_Control_Channel_InfoList_item;
+static int ett_rnsap_OnModification;
+static int ett_rnsap_OnModificationInformation;
+static int ett_rnsap_PCH_InformationList;
+static int ett_rnsap_PCH_InformationItem;
+static int ett_rnsap_Periodic;
+static int ett_rnsap_PeriodicInformation;
+static int ett_rnsap_Permanent_NAS_UE_Identity;
+static int ett_rnsap_PLMN_List;
+static int ett_rnsap_PowerOffsetForSecondaryCPICHforMIMOwithfourtransmitantennas;
+static int ett_rnsap_Associated_Secondary_CPICH;
+static int ett_rnsap_PreferredFrequencyLayerInfo;
+static int ett_rnsap_PriorityQueue_InfoList;
+static int ett_rnsap_PriorityQueue_InfoItem;
+static int ett_rnsap_PriorityQueue_InfoList_EnhancedFACH_PCH;
+static int ett_rnsap_PriorityQueue_InfoItem_EnhancedFACH_PCH;
+static int ett_rnsap_PriorityQueue_InfoList_to_Modify;
+static int ett_rnsap_PriorityQueue_InfoItem_to_Add;
+static int ett_rnsap_PriorityQueue_InfoItem_to_Modify;
+static int ett_rnsap_PriorityQueue_InfoList_to_Modify_Unsynchronised;
+static int ett_rnsap_PriorityQueue_InfoItem_to_Modify_Unsynchronised;
+static int ett_rnsap_ProvidedInformation;
+static int ett_rnsap_UpPCH_InformationList_LCRTDD;
+static int ett_rnsap_UpPCH_InformationItem_LCRTDD;
+static int ett_rnsap_PTMCellList;
+static int ett_rnsap_PTPCellList;
+static int ett_rnsap_RABased;
+static int ett_rnsap_RAI_List;
+static int ett_rnsap_RAI;
+static int ett_rnsap_RB_Info;
+static int ett_rnsap_Reference_E_TFCI_Information;
+static int ett_rnsap_Reference_E_TFCI_Information_Item;
+static int ett_rnsap_Released_CN_Domain;
+static int ett_rnsap_ReportCharacteristics;
+static int ett_rnsap_ReportPeriodicity;
+static int ett_rnsap_RequestedDataValue;
+static int ett_rnsap_RequestedDataValueInformation;
+static int ett_rnsap_RL_Specific_DCH_Info;
+static int ett_rnsap_RL_Specific_DCH_Info_Item;
+static int ett_rnsap_RL_Specific_EDCH_Information;
+static int ett_rnsap_RL_Specific_EDCH_Info;
+static int ett_rnsap_RL_Specific_EDCH_InfoItem;
+static int ett_rnsap_RTLoadValue;
+static int ett_rnsap_SAI;
+static int ett_rnsap_SecondaryServingCells;
+static int ett_rnsap_SecondaryServingCellsItem;
+static int ett_rnsap_Secondary_CCPCH_Info_TDD;
+static int ett_rnsap_Secondary_CPICH_Information;
+static int ett_rnsap_Secondary_CPICH_Information_Change;
+static int ett_rnsap_Secondary_LCR_CCPCH_Info_TDD;
+static int ett_rnsap_Secondary_CCPCH_Info_TDD768;
+static int ett_rnsap_Secondary_CCPCH_TDD_InformationList;
+static int ett_rnsap_Secondary_CCPCH_TDD_InformationItem;
+static int ett_rnsap_Secondary_LCR_CCPCH_TDD_InformationList;
+static int ett_rnsap_Secondary_LCR_CCPCH_TDD_InformationItem;
+static int ett_rnsap_Secondary_CCPCH_TDD_InformationList768;
+static int ett_rnsap_Secondary_CCPCH_TDD_InformationItem768;
+static int ett_rnsap_Secondary_CCPCH_TDD_Code_Information;
+static int ett_rnsap_Secondary_CCPCH_TDD_Code_InformationItem;
+static int ett_rnsap_Secondary_LCR_CCPCH_TDD_Code_Information;
+static int ett_rnsap_Secondary_LCR_CCPCH_TDD_Code_InformationItem;
+static int ett_rnsap_Secondary_CCPCH_TDD_Code_Information768;
+static int ett_rnsap_Secondary_CCPCH_TDD_Code_InformationItem768;
+static int ett_rnsap_Secondary_Serving_Cell_List;
+static int ett_rnsap_Possible_Secondary_Serving_Cell_List;
+static int ett_rnsap_Possible_Secondary_Serving_Cell;
+static int ett_rnsap_SetsOfHS_SCCH_Codes;
+static int ett_rnsap_SetsOfHS_SCCH_CodesItem;
+static int ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_EDCH_On_secondary_UL_Frequency;
+static int ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_Downlink_TPC_enhancements;
+static int ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_UL_CLTD;
+static int ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_FTPICH_Information;
+static int ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_DCH_ENH;
+static int ett_rnsap_Setup_Or_ConfigurationChange_Or_Removal_Of_UL_DPCCH2;
+static int ett_rnsap_GA_AccessPointPositionwithOptionalAltitude;
+static int ett_rnsap_SFNSFNMeasurementThresholdInformation;
+static int ett_rnsap_SFNSFNMeasurementValueInformation;
+static int ett_rnsap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
+static int ett_rnsap_T_successfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
+static int ett_rnsap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation;
+static int ett_rnsap_T_unsuccessfullNeighbouringCellSFNSFNObservedTimeDifferenceMeasurementInformation_item;
+static int ett_rnsap_SFNSFNTimeStampInformation;
+static int ett_rnsap_SFNSFNTimeStamp_TDD;
+static int ett_rnsap_SFNSFNValue;
+static int ett_rnsap_SNA_Information;
+static int ett_rnsap_ListOfSNAs;
+static int ett_rnsap_S_RNTI_Group;
+static int ett_rnsap_SynchronisationConfiguration;
+static int ett_rnsap_SYNC_UL_ProcParameters;
+static int ett_rnsap_TDD_ChannelisationCodeLCR;
+static int ett_rnsap_TDD_DCHs_to_Modify;
+static int ett_rnsap_TDD_DCHs_to_ModifyItem;
+static int ett_rnsap_TDD_DCHs_to_ModifySpecificInformationList;
+static int ett_rnsap_TDD_DCHs_to_ModifySpecificItem;
+static int ett_rnsap_TDD_DL_Code_Information;
+static int ett_rnsap_TDD_DL_Code_InformationItem;
+static int ett_rnsap_TDD_DL_Code_LCR_Information;
+static int ett_rnsap_TDD_DL_Code_LCR_InformationItem;
+static int ett_rnsap_TDD_DL_Code_Information768;
+static int ett_rnsap_TDD_DL_Code_InformationItem768;
+static int ett_rnsap_TDD_DL_DPCH_TimeSlotFormat_LCR;
+static int ett_rnsap_TDD_DPCHOffset;
+static int ett_rnsap_TDD_UL_Code_Information;
+static int ett_rnsap_TDD_UL_Code_InformationItem;
+static int ett_rnsap_TDD_UL_Code_LCR_Information;
+static int ett_rnsap_TDD_UL_Code_LCR_InformationItem;
+static int ett_rnsap_TDD_UL_Code_Information768;
+static int ett_rnsap_TDD_UL_Code_InformationItem768;
+static int ett_rnsap_TDD_UL_DPCH_TimeSlotFormat_LCR;
+static int ett_rnsap_TMGI;
+static int ett_rnsap_TnlQos;
+static int ett_rnsap_Transmission_Gap_Pattern_Sequence_Information;
+static int ett_rnsap_Transmission_Gap_Pattern_Sequence_Information_item;
+static int ett_rnsap_Transmission_Gap_Pattern_Sequence_Status_List;
+static int ett_rnsap_Transmission_Gap_Pattern_Sequence_Status_List_item;
+static int ett_rnsap_Affected_HSDSCH_Serving_Cell_List;
+static int ett_rnsap_Transmission_Mode_Information;
+static int ett_rnsap_Transmission_Mode_Information_List;
+static int ett_rnsap_TUTRANGANSS;
+static int ett_rnsap_TUTRANGANSSMeasurementThresholdInformation;
+static int ett_rnsap_TUTRANGANSSMeasurementValueInformation;
+static int ett_rnsap_TUTRANGPS;
+static int ett_rnsap_TUTRANGPSMeasurementThresholdInformation;
+static int ett_rnsap_TUTRANGPSMeasurementValueInformation;
+static int ett_rnsap_TransportFormatCombination_Beta;
+static int ett_rnsap_T_signalledGainFactors;
+static int ett_rnsap_TFCS;
+static int ett_rnsap_T_tFCSvalues;
+static int ett_rnsap_TFCS_TFCSList;
+static int ett_rnsap_TFCS_TFCSList_item;
+static int ett_rnsap_TFCS_CTFC;
+static int ett_rnsap_TPC_slot_position;
+static int ett_rnsap_TransportFormatSet;
+static int ett_rnsap_TransportFormatSet_DynamicPartList;
+static int ett_rnsap_TransportFormatSet_DynamicPartList_item;
+static int ett_rnsap_TransportFormatSet_ModeDP;
+static int ett_rnsap_TDD_TransportFormatSet_ModeDP;
+static int ett_rnsap_TransmissionTimeIntervalInformation;
+static int ett_rnsap_TransmissionTimeIntervalInformation_item;
+static int ett_rnsap_TransportFormatSet_Semi_staticPart;
+static int ett_rnsap_TransportFormatSet_ModeSSP;
+static int ett_rnsap_TTI_Update_Indicator;
+static int ett_rnsap_UE_AggregateMaximumBitRate;
+static int ett_rnsap_UE_Capabilities_Info;
+static int ett_rnsap_UE_RF_Band_CapabilityLCR;
+static int ett_rnsap_Radio_Frequency_BandItem;
+static int ett_rnsap_UEIdentity;
+static int ett_rnsap_UEMeasurementReportCharacteristics;
+static int ett_rnsap_UEMeasurementReportCharacteristicsEvent1h;
+static int ett_rnsap_UEMeasurementReportCharacteristicsEvent1i;
+static int ett_rnsap_UEMeasurementReportCharacteristicsEvent6a;
+static int ett_rnsap_UEMeasurementReportCharacteristicsEvent6b;
+static int ett_rnsap_UEMeasurementReportCharacteristicsEvent6c;
+static int ett_rnsap_UEMeasurementReportCharacteristicsEvent6d;
+static int ett_rnsap_UEMeasurementReportCharacteristicsPeriodic;
+static int ett_rnsap_UEMeasurementThreshold;
+static int ett_rnsap_UEMeasurementTimeslotInfoHCR;
+static int ett_rnsap_UEMeasurementTimeslotInfoHCR_IEs;
+static int ett_rnsap_UEMeasurementTimeslotInfoLCR;
+static int ett_rnsap_UEMeasurementTimeslotInfoLCR_IEs;
+static int ett_rnsap_UEMeasurementTimeslotInfo768;
+static int ett_rnsap_UEMeasurementTimeslotInfo768_IEs;
+static int ett_rnsap_UEMeasurementValue;
+static int ett_rnsap_UE_MeasurementValue_UE_Transmitted_Power;
+static int ett_rnsap_UEMeasurementValueTransmittedPowerListHCR;
+static int ett_rnsap_UEMeasurementValueTransmittedPowerListHCR_IEs;
+static int ett_rnsap_UEMeasurementValueTransmittedPowerListLCR;
+static int ett_rnsap_UEMeasurementValueTransmittedPowerListLCR_IEs;
+static int ett_rnsap_UEMeasurementValueTransmittedPowerList768;
+static int ett_rnsap_UEMeasurementValueTransmittedPowerList768_IEs;
+static int ett_rnsap_UE_MeasurementValue_Primary_CCPCH_RSCP;
+static int ett_rnsap_UE_MeasurementValue_DL_Timeslot_ISCP;
+static int ett_rnsap_UEMeasurementValueTimeslotISCPListHCR;
+static int ett_rnsap_UEMeasurementValueTimeslotISCPListHCR_IEs;
+static int ett_rnsap_UEMeasurementValueTimeslotISCPListLCR;
+static int ett_rnsap_UEMeasurementValueTimeslotISCPListLCR_IEs;
+static int ett_rnsap_UEMeasurementValueTimeslotISCPList768;
+static int ett_rnsap_UEMeasurementValueTimeslotISCPList768_IEs;
+static int ett_rnsap_UEMeasurementValueInformation;
+static int ett_rnsap_UEMeasurementValueInformationAvailable;
+static int ett_rnsap_UE_Measurement_Value;
+static int ett_rnsap_UE_State;
+static int ett_rnsap_Cell_Fach_Pch_State;
+static int ett_rnsap_Ura_Pch_State;
+static int ett_rnsap_UL_Timeslot_Information;
+static int ett_rnsap_UL_Timeslot_InformationItem;
+static int ett_rnsap_UL_TimeslotLCR_Information;
+static int ett_rnsap_UL_TimeslotLCR_InformationItem;
+static int ett_rnsap_PLCCHinformation;
+static int ett_rnsap_UL_Timeslot_Information768;
+static int ett_rnsap_UL_Timeslot_InformationItem768;
+static int ett_rnsap_UL_TimeSlot_ISCP_Info;
+static int ett_rnsap_UL_TimeSlot_ISCP_InfoItem;
+static int ett_rnsap_UL_TimeSlot_ISCP_LCR_Info;
+static int ett_rnsap_UL_TimeSlot_ISCP_LCR_InfoItem;
+static int ett_rnsap_UL_TimingAdvanceCtrl_LCR;
+static int ett_rnsap_UC_ID;
+static int ett_rnsap_UL_ScramblingCode;
+static int ett_rnsap_UL_Synchronisation_Parameters_LCR;
+static int ett_rnsap_URA_Information;
+static int ett_rnsap_RNCsWithCellsInTheAccessedURA_List;
+static int ett_rnsap_RNCsWithCellsInTheAccessedURA_Item;
+static int ett_rnsap_USCH_Information;
+static int ett_rnsap_USCH_InformationItem;
+static int ett_rnsap_UMTS_Cells_Info_List;
+static int ett_rnsap_UMTS_Cell_Info;
+static int ett_rnsap_UL_CLTD_Information;
+static int ett_rnsap_UL_CLTD_Information_Reconf;
+static int ett_rnsap_UL_CLTD_Information_To_Modify;
+static int ett_rnsap_UL_DPCCH2_Information;
+static int ett_rnsap_UL_DPCCH2_Information_Reconf;
+static int ett_rnsap_UL_DPCCH2_Information_To_Modify;
+static int ett_rnsap_UL_MIMO_Information;
+static int ett_rnsap_UL_MIMO_Information_To_Modify;
+static int ett_rnsap_UL_MIMO_Reconfiguration;
+static int ett_rnsap_UL_MIMO_DL_Control_Channel_Information;
+static int ett_rnsap_RadioLinkSetupRequestFDD;
+static int ett_rnsap_UL_DPCH_Information_RL_SetupRqstFDD;
+static int ett_rnsap_DL_DPCH_Information_RL_SetupRqstFDD;
+static int ett_rnsap_PowerOffsetInformation_RL_SetupRqstFDD;
+static int ett_rnsap_RL_InformationList_RL_SetupRqstFDD;
+static int ett_rnsap_RL_InformationItem_RL_SetupRqstFDD;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Setup_List;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Setup_ItemIEs;
+static int ett_rnsap_F_DPCH_Information_RL_SetupRqstFDD;
+static int ett_rnsap_PowerOffsetInformation_F_DPCH_RL_SetupRqstFDD;
+static int ett_rnsap_RadioLinkSetupRequestTDD;
+static int ett_rnsap_UL_Physical_Channel_Information_RL_SetupRqstTDD;
+static int ett_rnsap_DL_Physical_Channel_Information_RL_SetupRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationList_RL_SetupRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationItem_RL_SetupRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationList_RL_SetupRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationItem_RL_SetupRqstTDD;
+static int ett_rnsap_CCTrCH_TPCList_RL_SetupRqstTDD;
+static int ett_rnsap_CCTrCH_TPCItem_RL_SetupRqstTDD;
+static int ett_rnsap_RL_Information_RL_SetupRqstTDD;
+static int ett_rnsap_RadioLinkSetupResponseFDD;
+static int ett_rnsap_RL_InformationResponseList_RL_SetupRspFDD;
+static int ett_rnsap_RL_InformationResponseItem_RL_SetupRspFDD;
+static int ett_rnsap_DiversityIndication_RL_SetupRspFDD;
+static int ett_rnsap_Combining_RL_SetupRspFDD;
+static int ett_rnsap_NonCombiningOrFirstRL_RL_SetupRspFDD;
+static int ett_rnsap_Additional_HS_Cell_Information_Response_List;
+static int ett_rnsap_Additional_HS_Cell_Information_Response_ItemIEs;
+static int ett_rnsap_RadioLinkSetupResponseTDD;
+static int ett_rnsap_RL_InformationResponse_RL_SetupRspTDD;
+static int ett_rnsap_UL_CCTrCHInformationListIE_RL_SetupRspTDD;
+static int ett_rnsap_UL_CCTrCHInformationItem_RL_SetupRspTDD;
+static int ett_rnsap_UL_DPCH_InformationItem_RL_SetupRspTDD;
+static int ett_rnsap_DL_CCTrCHInformationListIE_RL_SetupRspTDD;
+static int ett_rnsap_DL_CCTrCHInformationItem_RL_SetupRspTDD;
+static int ett_rnsap_DL_DPCH_InformationItem_RL_SetupRspTDD;
+static int ett_rnsap_DSCH_InformationListIEs_RL_SetupRspTDD;
+static int ett_rnsap_DSCHInformationItem_RL_SetupRspTDD;
+static int ett_rnsap_USCH_InformationListIEs_RL_SetupRspTDD;
+static int ett_rnsap_USCHInformationItem_RL_SetupRspTDD;
+static int ett_rnsap_RL_LCR_InformationResponse_RL_SetupRspTDD;
+static int ett_rnsap_UL_LCR_CCTrCHInformationListIE_RL_SetupRspTDD;
+static int ett_rnsap_UL_LCR_CCTrCHInformationItem_RL_SetupRspTDD;
+static int ett_rnsap_UL_DPCH_LCR_InformationItem_RL_SetupRspTDD;
+static int ett_rnsap_DL_CCTrCH_LCR_InformationListIE_RL_SetupRspTDD;
+static int ett_rnsap_DL_CCTrCH_LCR_InformationItem_RL_SetupRspTDD;
+static int ett_rnsap_DL_DPCH_LCR_InformationItem_RL_SetupRspTDD;
+static int ett_rnsap_DSCH_LCR_InformationListIEs_RL_SetupRspTDD;
+static int ett_rnsap_DSCH_LCR_InformationItem_RL_SetupRspTDD;
+static int ett_rnsap_USCH_LCR_InformationListIEs_RL_SetupRspTDD;
+static int ett_rnsap_USCH_LCR_InformationItem_RL_SetupRspTDD;
+static int ett_rnsap_RL_InformationResponse_RL_SetupRspTDD768;
+static int ett_rnsap_UL_CCTrCHInformationListIE_RL_SetupRspTDD768;
+static int ett_rnsap_UL_CCTrCHInformationItem_RL_SetupRspTDD768;
+static int ett_rnsap_UL_DPCH_InformationItem_RL_SetupRspTDD768;
+static int ett_rnsap_DL_CCTrCHInformationListIE_RL_SetupRspTDD768;
+static int ett_rnsap_DL_CCTrCHInformationItem_RL_SetupRspTDD768;
+static int ett_rnsap_DL_DPCH_InformationItem_RL_SetupRspTDD768;
+static int ett_rnsap_RadioLinkSetupFailureFDD;
+static int ett_rnsap_CauseLevel_RL_SetupFailureFDD;
+static int ett_rnsap_GeneralCauseList_RL_SetupFailureFDD;
+static int ett_rnsap_RLSpecificCauseList_RL_SetupFailureFDD;
+static int ett_rnsap_UnsuccessfulRL_InformationResponseList_RL_SetupFailureFDD;
+static int ett_rnsap_UnsuccessfulRL_InformationResponse_RL_SetupFailureFDD;
+static int ett_rnsap_SuccessfulRL_InformationResponseList_RL_SetupFailureFDD;
+static int ett_rnsap_SuccessfulRL_InformationResponse_RL_SetupFailureFDD;
+static int ett_rnsap_DiversityIndication_RL_SetupFailureFDD;
+static int ett_rnsap_Combining_RL_SetupFailureFDD;
+static int ett_rnsap_NonCombiningOrFirstRL_RL_SetupFailureFDD;
+static int ett_rnsap_RadioLinkSetupFailureTDD;
+static int ett_rnsap_CauseLevel_RL_SetupFailureTDD;
+static int ett_rnsap_GeneralCauseList_RL_SetupFailureTDD;
+static int ett_rnsap_RLSpecificCauseList_RL_SetupFailureTDD;
+static int ett_rnsap_UnsuccessfulRL_InformationResponse_RL_SetupFailureTDD;
+static int ett_rnsap_RadioLinkAdditionRequestFDD;
+static int ett_rnsap_RL_InformationList_RL_AdditionRqstFDD;
+static int ett_rnsap_RL_Information_RL_AdditionRqstFDD;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Addition_List;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Addition_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Cell_Information_RL_Add_Req;
+static int ett_rnsap_Setup_Or_Addition_Of_EDCH_On_secondary_UL_Frequency;
+static int ett_rnsap_EDPCH_Information_RLAdditionReq_FDD;
+static int ett_rnsap_RadioLinkAdditionRequestTDD;
+static int ett_rnsap_RL_Information_RL_AdditionRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationList_RL_AdditionRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationList_RL_AdditionRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationItem_RL_AdditionRqstTDD;
+static int ett_rnsap_RadioLinkAdditionResponseFDD;
+static int ett_rnsap_RL_InformationResponseList_RL_AdditionRspFDD;
+static int ett_rnsap_RL_InformationResponseItem_RL_AdditionRspFDD;
+static int ett_rnsap_DiversityIndication_RL_AdditionRspFDD;
+static int ett_rnsap_Combining_RL_AdditionRspFDD;
+static int ett_rnsap_NonCombining_RL_AdditionRspFDD;
+static int ett_rnsap_Additional_HS_Cell_Change_Information_Response_List;
+static int ett_rnsap_Additional_HS_Cell_Change_Information_Response_ItemIEs;
+static int ett_rnsap_RadioLinkAdditionResponseTDD;
+static int ett_rnsap_RL_InformationResponse_RL_AdditionRspTDD;
+static int ett_rnsap_UL_CCTrCHInformationListIE_RL_AdditionRspTDD;
+static int ett_rnsap_UL_CCTrCHInformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_UL_DPCH_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_DL_CCTrCHInformationListIE_RL_AdditionRspTDD;
+static int ett_rnsap_DL_CCTrCHInformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_DL_DPCH_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_DCH_Information_RL_AdditionRspTDD;
+static int ett_rnsap_DiversityIndication_RL_AdditionRspTDD;
+static int ett_rnsap_Combining_RL_AdditionRspTDD;
+static int ett_rnsap_NonCombining_RL_AdditionRspTDD;
+static int ett_rnsap_DSCH_InformationListIE_RL_AdditionRspTDD;
+static int ett_rnsap_DSCHInformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_DiversityIndication_RL_AdditionRspTDD2;
+static int ett_rnsap_USCH_InformationListIE_RL_AdditionRspTDD;
+static int ett_rnsap_USCHInformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_RL_LCR_InformationResponse_RL_AdditionRspTDD;
+static int ett_rnsap_UL_CCTrCH_LCR_InformationListIE_RL_AdditionRspTDD;
+static int ett_rnsap_UL_CCTrCH_LCR_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_UL_DPCH_LCR_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_DL_CCTrCH_LCR_InformationListIE_RL_AdditionRspTDD;
+static int ett_rnsap_DL_CCTrCH_LCR_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_DL_DPCH_LCR_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_DSCH_LCR_InformationListIEs_RL_AdditionRspTDD;
+static int ett_rnsap_DSCH_LCR_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_USCH_LCR_InformationListIEs_RL_AdditionRspTDD;
+static int ett_rnsap_USCH_LCR_InformationItem_RL_AdditionRspTDD;
+static int ett_rnsap_RL_InformationResponse_RL_AdditionRspTDD768;
+static int ett_rnsap_UL_CCTrCHInformationListIE_RL_AdditionRspTDD768;
+static int ett_rnsap_UL_CCTrCHInformationItem_RL_AdditionRspTDD768;
+static int ett_rnsap_UL_DPCH_InformationItem_RL_AdditionRspTDD768;
+static int ett_rnsap_DL_CCTrCHInformationListIE_RL_AdditionRspTDD768;
+static int ett_rnsap_DL_CCTrCHInformationItem_RL_AdditionRspTDD768;
+static int ett_rnsap_DL_DPCH_InformationItem_RL_AdditionRspTDD768;
+static int ett_rnsap_RadioLinkAdditionFailureFDD;
+static int ett_rnsap_CauseLevel_RL_AdditionFailureFDD;
+static int ett_rnsap_GeneralCauseList_RL_AdditionFailureFDD;
+static int ett_rnsap_RLSpecificCauseList_RL_AdditionFailureFDD;
+static int ett_rnsap_UnsuccessfulRL_InformationResponseList_RL_AdditionFailureFDD;
+static int ett_rnsap_UnsuccessfulRL_InformationResponse_RL_AdditionFailureFDD;
+static int ett_rnsap_SuccessfulRL_InformationResponseList_RL_AdditionFailureFDD;
+static int ett_rnsap_SuccessfulRL_InformationResponse_RL_AdditionFailureFDD;
+static int ett_rnsap_DiversityIndication_RL_AdditionFailureFDD;
+static int ett_rnsap_Combining_RL_AdditionFailureFDD;
+static int ett_rnsap_NonCombining_RL_AdditionFailureFDD;
+static int ett_rnsap_RadioLinkAdditionFailureTDD;
+static int ett_rnsap_CauseLevel_RL_AdditionFailureTDD;
+static int ett_rnsap_GeneralCauseList_RL_AdditionFailureTDD;
+static int ett_rnsap_RLSpecificCauseList_RL_AdditionFailureTDD;
+static int ett_rnsap_UnsuccessfulRL_InformationResponse_RL_AdditionFailureTDD;
+static int ett_rnsap_RadioLinkDeletionRequest;
+static int ett_rnsap_RL_InformationList_RL_DeletionRqst;
+static int ett_rnsap_RL_Information_RL_DeletionRqst;
+static int ett_rnsap_RadioLinkDeletionResponse;
+static int ett_rnsap_RadioLinkReconfigurationPrepareFDD;
+static int ett_rnsap_UL_DPCH_Information_RL_ReconfPrepFDD;
+static int ett_rnsap_DL_DPCH_Information_RL_ReconfPrepFDD;
+static int ett_rnsap_DL_DPCH_Power_Information_RL_ReconfPrepFDD;
+static int ett_rnsap_PowerOffsetInformation_RL_ReconfPrepFDD;
+static int ett_rnsap_DCH_DeleteList_RL_ReconfPrepFDD;
+static int ett_rnsap_DCH_DeleteItem_RL_ReconfPrepFDD;
+static int ett_rnsap_RL_InformationList_RL_ReconfPrepFDD;
+static int ett_rnsap_RL_Information_RL_ReconfPrepFDD;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Prep;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Prep_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Cell_Information_RL_Reconf_Prep;
+static int ett_rnsap_F_DPCH_Information_RL_ReconfPrepFDD;
+static int ett_rnsap_PowerOffsetInformation_F_DPCH_RL_ReconfPrepFDD;
+static int ett_rnsap_RadioLinkReconfigurationPrepareTDD;
+static int ett_rnsap_UL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
+static int ett_rnsap_UL_CCTrCH_AddInformation_RL_ReconfPrepTDD;
+static int ett_rnsap_UL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
+static int ett_rnsap_UL_CCTrCH_ModifyInformation_RL_ReconfPrepTDD;
+static int ett_rnsap_UL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
+static int ett_rnsap_UL_CCTrCH_DeleteInformation_RL_ReconfPrepTDD;
+static int ett_rnsap_DL_CCTrCH_InformationAddList_RL_ReconfPrepTDD;
+static int ett_rnsap_DL_CCTrCH_InformationAddItem_RL_ReconfPrepTDD;
+static int ett_rnsap_CCTrCH_TPCAddList_RL_ReconfPrepTDD;
+static int ett_rnsap_CCTrCH_TPCAddItem_RL_ReconfPrepTDD;
+static int ett_rnsap_DL_CCTrCH_InformationModifyList_RL_ReconfPrepTDD;
+static int ett_rnsap_DL_CCTrCH_InformationModifyItem_RL_ReconfPrepTDD;
+static int ett_rnsap_CCTrCH_TPCModifyList_RL_ReconfPrepTDD;
+static int ett_rnsap_CCTrCH_TPCModifyItem_RL_ReconfPrepTDD;
+static int ett_rnsap_DL_CCTrCH_InformationDeleteList_RL_ReconfPrepTDD;
+static int ett_rnsap_DL_CCTrCH_InformationDeleteItem_RL_ReconfPrepTDD;
+static int ett_rnsap_DCH_DeleteList_RL_ReconfPrepTDD;
+static int ett_rnsap_DCH_DeleteItem_RL_ReconfPrepTDD;
+static int ett_rnsap_DSCH_ModifyList_RL_ReconfPrepTDD;
+static int ett_rnsap_DSCH_ModifyItem_RL_ReconfPrepTDD;
+static int ett_rnsap_DSCH_DeleteList_RL_ReconfPrepTDD;
+static int ett_rnsap_DSCH_DeleteItem_RL_ReconfPrepTDD;
+static int ett_rnsap_USCH_ModifyList_RL_ReconfPrepTDD;
+static int ett_rnsap_USCH_ModifyItem_RL_ReconfPrepTDD;
+static int ett_rnsap_USCH_DeleteList_RL_ReconfPrepTDD;
+static int ett_rnsap_USCH_DeleteItem_RL_ReconfPrepTDD;
+static int ett_rnsap_RL_Information_RL_ReconfPrepTDD;
+static int ett_rnsap_RL_InformationIE_RL_ReconfPrepTDD;
+static int ett_rnsap_RadioLinkReconfigurationReadyFDD;
+static int ett_rnsap_RL_InformationResponseList_RL_ReconfReadyFDD;
+static int ett_rnsap_RL_InformationResponseItem_RL_ReconfReadyFDD;
+static int ett_rnsap_Additional_HS_Cell_RL_Reconf_Response;
+static int ett_rnsap_Additional_HS_Cell_RL_Reconf_Response_ItemIEs;
+static int ett_rnsap_RadioLinkReconfigurationReadyTDD;
+static int ett_rnsap_RL_InformationResponse_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_CCTrCHInformationListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_CCTrCH_InformationItem_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_DPCH_LCR_InformationAddList_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_DPCH_InformationAddListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_DPCH_InformationAddList_RL_ReconfReadyTDD768;
+static int ett_rnsap_UL_DPCH_InformationModifyListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_TimeslotLCR_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_TimeslotLCR_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_UL_Code_LCR_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_UL_Code_LCR_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_Timeslot_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_UL_Code_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_UL_Code_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_Timeslot_InformationModifyList_RL_ReconfReadyTDD768;
+static int ett_rnsap_UL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD768;
+static int ett_rnsap_TDD_UL_Code_InformationModifyList_RL_ReconfReadyTDD768;
+static int ett_rnsap_TDD_UL_Code_InformationModifyItem_RL_ReconfReadyTDD768;
+static int ett_rnsap_UL_DPCH_InformationDeleteListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_UL_DPCH_InformationDeleteItem_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_CCTrCHInformationListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_CCTrCH_InformationItem_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_DPCH_LCR_InformationAddList_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_DPCH_InformationAddListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_DPCH_InformationAddList_RL_ReconfReadyTDD768;
+static int ett_rnsap_DL_DPCH_InformationModifyListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_TimeslotLCR_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_TimeslotLCR_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_DL_Code_LCR_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_DL_Code_LCR_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_Timeslot_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_DL_Code_InformationModifyList_RL_ReconfReadyTDD;
+static int ett_rnsap_TDD_DL_Code_InformationModifyItem_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_Timeslot_InformationModifyList_RL_ReconfReadyTDD768;
+static int ett_rnsap_DL_Timeslot_InformationModifyItem_RL_ReconfReadyTDD768;
+static int ett_rnsap_TDD_DL_Code_InformationModifyList_RL_ReconfReadyTDD768;
+static int ett_rnsap_TDD_DL_Code_InformationModifyItem_RL_ReconfReadyTDD768;
+static int ett_rnsap_DL_DPCH_InformationDeleteListIE_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_DPCH_InformationDeleteItem_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_DPCH_InformationDeleteList768_RL_ReconfReadyTDD;
+static int ett_rnsap_DL_DPCH_InformationDeleteItem768_RL_ReconfReadyTDD;
+static int ett_rnsap_DSCHToBeAddedOrModifiedList_RL_ReconfReadyTDD;
+static int ett_rnsap_DSCHToBeAddedOrModifiedItem_RL_ReconfReadyTDD;
+static int ett_rnsap_USCHToBeAddedOrModifiedList_RL_ReconfReadyTDD;
+static int ett_rnsap_USCHToBeAddedOrModifiedItem_RL_ReconfReadyTDD;
+static int ett_rnsap_Multiple_RL_InformationResponse_RL_ReconfReadyTDD;
+static int ett_rnsap_RadioLinkReconfigurationCommit;
+static int ett_rnsap_RadioLinkReconfigurationFailure;
+static int ett_rnsap_CauseLevel_RL_ReconfFailure;
+static int ett_rnsap_GeneralCauseList_RL_ReconfFailure;
+static int ett_rnsap_RLSpecificCauseList_RL_ReconfFailure;
+static int ett_rnsap_RL_ReconfigurationFailureList_RL_ReconfFailure;
+static int ett_rnsap_RL_ReconfigurationFailure_RL_ReconfFail;
+static int ett_rnsap_RadioLinkReconfigurationCancel;
+static int ett_rnsap_RadioLinkReconfigurationRequestFDD;
+static int ett_rnsap_UL_DPCH_Information_RL_ReconfRqstFDD;
+static int ett_rnsap_DL_DPCH_Information_RL_ReconfRqstFDD;
+static int ett_rnsap_DCH_DeleteList_RL_ReconfRqstFDD;
+static int ett_rnsap_DCH_DeleteItem_RL_ReconfRqstFDD;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Req;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Reconf_Req_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Cell_Information_RL_Reconf_Req;
+static int ett_rnsap_RL_ReconfigurationRequestFDD_RL_InformationList;
+static int ett_rnsap_RL_ReconfigurationRequestFDD_RL_Information_IEs;
+static int ett_rnsap_RadioLinkReconfigurationRequestTDD;
+static int ett_rnsap_UL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationModifyList_RL_ReconfRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationModifyItem_RL_ReconfRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationDeleteList_RL_ReconfRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationDeleteItem_RL_ReconfRqstTDD;
+static int ett_rnsap_DCH_DeleteList_RL_ReconfRqstTDD;
+static int ett_rnsap_DCH_DeleteItem_RL_ReconfRqstTDD;
+static int ett_rnsap_Multiple_RL_ReconfigurationRequestTDD_RL_Information;
+static int ett_rnsap_RL_ReconfigurationRequestTDD_RL_Information;
+static int ett_rnsap_RadioLinkReconfigurationResponseFDD;
+static int ett_rnsap_RL_InformationResponseList_RL_ReconfRspFDD;
+static int ett_rnsap_RL_InformationResponseItem_RL_ReconfRspFDD;
+static int ett_rnsap_RadioLinkReconfigurationResponseTDD;
+static int ett_rnsap_RL_InformationResponse_RL_ReconfRspTDD;
+static int ett_rnsap_DL_CCTrCH_InformationList_RL_ReconfRspTDD;
+static int ett_rnsap_DL_CCTrCH_InformationItem_RL_ReconfRspTDD;
+static int ett_rnsap_DL_DPCH_InformationModifyItem_LCR_RL_ReconfRspTDD;
+static int ett_rnsap_DL_Timeslot_LCR_InformationModifyList_RL_ReconfRspTDD;
+static int ett_rnsap_DL_Timeslot_LCR_InformationModifyItem_RL_ReconfRspTDD;
+static int ett_rnsap_Multiple_RL_InformationResponse_RL_ReconfRspTDD;
+static int ett_rnsap_RadioLinkFailureIndication;
+static int ett_rnsap_Reporting_Object_RL_FailureInd;
+static int ett_rnsap_RL_RL_FailureInd;
+static int ett_rnsap_RL_InformationList_RL_FailureInd;
+static int ett_rnsap_RL_Information_RL_FailureInd;
+static int ett_rnsap_RL_Set_RL_FailureInd;
+static int ett_rnsap_RL_Set_InformationList_RL_FailureInd;
+static int ett_rnsap_RL_Set_Information_RL_FailureInd;
+static int ett_rnsap_CCTrCH_RL_FailureInd;
+static int ett_rnsap_CCTrCH_InformationList_RL_FailureInd;
+static int ett_rnsap_CCTrCH_InformationItem_RL_FailureInd;
+static int ett_rnsap_RadioLinkPreemptionRequiredIndication;
+static int ett_rnsap_RL_InformationList_RL_PreemptRequiredInd;
+static int ett_rnsap_RL_InformationItem_RL_PreemptRequiredInd;
+static int ett_rnsap_HSDSCHMacdFlowSpecificInformationList_RL_PreemptRequiredInd;
+static int ett_rnsap_HSDSCHMacdFlowSpecificInformationItem_RL_PreemptRequiredInd;
+static int ett_rnsap_EDCH_MacdFlowSpecificInformationList_RL_PreemptRequiredInd;
+static int ett_rnsap_EDCH_MacdFlowSpecificInformationItem_RL_PreemptRequiredInd;
+static int ett_rnsap_RadioLinkRestoreIndication;
+static int ett_rnsap_Reporting_Object_RL_RestoreInd;
+static int ett_rnsap_RL_RL_RestoreInd;
+static int ett_rnsap_RL_InformationList_RL_RestoreInd;
+static int ett_rnsap_RL_Information_RL_RestoreInd;
+static int ett_rnsap_RL_Set_RL_RestoreInd;
+static int ett_rnsap_RL_Set_InformationList_RL_RestoreInd;
+static int ett_rnsap_RL_Set_Information_RL_RestoreInd;
+static int ett_rnsap_CCTrCH_RL_RestoreInd;
+static int ett_rnsap_CCTrCH_InformationList_RL_RestoreInd;
+static int ett_rnsap_CCTrCH_InformationItem_RL_RestoreInd;
+static int ett_rnsap_DL_PowerControlRequest;
+static int ett_rnsap_DL_ReferencePowerInformationList_DL_PC_Rqst;
+static int ett_rnsap_DL_ReferencePowerInformation_DL_PC_Rqst;
+static int ett_rnsap_DL_PowerTimeslotControlRequest;
+static int ett_rnsap_PhysicalChannelReconfigurationRequestFDD;
+static int ett_rnsap_RL_Information_PhyChReconfRqstFDD;
+static int ett_rnsap_PhysicalChannelReconfigurationRequestTDD;
+static int ett_rnsap_RL_Information_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationListIE_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_CCTrCH_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_DPCH_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_TimeslotLCR_InformationList_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_TimeslotLCR_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_Timeslot_InformationList_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_Timeslot_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_UL_Timeslot_InformationList_PhyChReconfRqstTDD768;
+static int ett_rnsap_UL_Timeslot_InformationItem_PhyChReconfRqstTDD768;
+static int ett_rnsap_DL_CCTrCH_InformationListIE_PhyChReconfRqstTDD;
+static int ett_rnsap_DL_CCTrCH_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_DL_DPCH_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_DL_TimeslotLCR_InformationList_PhyChReconfRqstTDD;
+static int ett_rnsap_DL_TimeslotLCR_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_DL_Timeslot_InformationList_PhyChReconfRqstTDD;
+static int ett_rnsap_DL_Timeslot_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_DL_Timeslot_InformationList_PhyChReconfRqstTDD768;
+static int ett_rnsap_DL_Timeslot_InformationItem_PhyChReconfRqstTDD768;
+static int ett_rnsap_HSPDSCH_Timeslot_InformationList_PhyChReconfRqstTDD;
+static int ett_rnsap_HSPDSCH_Timeslot_InformationItem_PhyChReconfRqstTDD;
+static int ett_rnsap_HSPDSCH_Timeslot_InformationListLCR_PhyChReconfRqstTDD;
+static int ett_rnsap_HSPDSCH_Timeslot_InformationItemLCR_PhyChReconfRqstTDD;
+static int ett_rnsap_HSPDSCH_Timeslot_InformationList_PhyChReconfRqstTDD768;
+static int ett_rnsap_HSPDSCH_Timeslot_InformationItem_PhyChReconfRqstTDD768;
+static int ett_rnsap_PhysicalChannelReconfigurationCommand;
+static int ett_rnsap_PhysicalChannelReconfigurationFailure;
+static int ett_rnsap_RadioLinkCongestionIndication;
+static int ett_rnsap_RL_InformationList_RL_CongestInd;
+static int ett_rnsap_RL_InformationItem_RL_CongestInd;
+static int ett_rnsap_DCH_Rate_Information_RL_CongestInd;
+static int ett_rnsap_DCH_Rate_InformationItem_RL_CongestInd;
+static int ett_rnsap_EDCH_MacdFlowSpecificInformationList_RL_CongestInd;
+static int ett_rnsap_EDCH_MacdFlowSpecificInformationItem_RL_CongestInd;
+static int ett_rnsap_UplinkSignallingTransferIndicationFDD;
+static int ett_rnsap_UplinkSignallingTransferIndicationTDD;
+static int ett_rnsap_DownlinkSignallingTransferRequest;
+static int ett_rnsap_RelocationCommit;
+static int ett_rnsap_PagingRequest;
+static int ett_rnsap_PagingArea_PagingRqst;
+static int ett_rnsap_URA_PagingRqst;
+static int ett_rnsap_Cell_PagingRqst;
+static int ett_rnsap_CNOriginatedPage_PagingRqst;
+static int ett_rnsap_DedicatedMeasurementInitiationRequest;
+static int ett_rnsap_DedicatedMeasurementObjectType_DM_Rqst;
+static int ett_rnsap_RL_DM_Rqst;
+static int ett_rnsap_RL_InformationList_DM_Rqst;
+static int ett_rnsap_RL_InformationItem_DM_Rqst;
+static int ett_rnsap_HSSICH_Info_DM_Rqst;
+static int ett_rnsap_HSSICH_Info_DM_Rqst_Extension;
+static int ett_rnsap_RL_Set_DM_Rqst;
+static int ett_rnsap_RL_Set_InformationList_DM_Rqst;
+static int ett_rnsap_RL_Set_InformationItem_DM_Rqst;
+static int ett_rnsap_DedicatedMeasurementInitiationResponse;
+static int ett_rnsap_DedicatedMeasurementObjectType_DM_Rsp;
+static int ett_rnsap_RL_DM_Rsp;
+static int ett_rnsap_RL_Set_DM_Rsp;
+static int ett_rnsap_RL_InformationList_DM_Rsp;
+static int ett_rnsap_RL_InformationItem_DM_Rsp;
+static int ett_rnsap_RL_Set_InformationList_DM_Rsp;
+static int ett_rnsap_RL_Set_InformationItem_DM_Rsp;
+static int ett_rnsap_Multiple_DedicatedMeasurementValueList_TDD_DM_Rsp;
+static int ett_rnsap_Multiple_DedicatedMeasurementValueItem_TDD_DM_Rsp;
+static int ett_rnsap_Multiple_DedicatedMeasurementValueList_LCR_TDD_DM_Rsp;
+static int ett_rnsap_Multiple_DedicatedMeasurementValueItem_LCR_TDD_DM_Rsp;
+static int ett_rnsap_Multiple_HSSICHMeasurementValueList_TDD_DM_Rsp;
+static int ett_rnsap_Multiple_HSSICHMeasurementValueItem_TDD_DM_Rsp;
+static int ett_rnsap_Multiple_DedicatedMeasurementValueList_TDD768_DM_Rsp;
+static int ett_rnsap_Multiple_DedicatedMeasurementValueItem_TDD768_DM_Rsp;
+static int ett_rnsap_DedicatedMeasurementInitiationFailure;
+static int ett_rnsap_DedicatedMeasurementObjectType_DM_Fail;
+static int ett_rnsap_RL_DM_Fail;
+static int ett_rnsap_RL_Set_DM_Fail;
+static int ett_rnsap_RL_Unsuccessful_InformationRespList_DM_Fail;
+static int ett_rnsap_RL_Unsuccessful_InformationItem_DM_Fail;
+static int ett_rnsap_RL_Successful_InformationRespList_DM_Fail;
+static int ett_rnsap_RL_Successful_InformationItem_DM_Fail;
+static int ett_rnsap_RL_Set_Unsuccessful_InformationRespList_DM_Fail;
+static int ett_rnsap_RL_Set_Unsuccessful_InformationItem_DM_Fail;
+static int ett_rnsap_RL_Set_Successful_InformationRespList_DM_Fail;
+static int ett_rnsap_RL_Set_Successful_InformationItem_DM_Fail;
+static int ett_rnsap_DedicatedMeasurementReport;
+static int ett_rnsap_DedicatedMeasurementObjectType_DM_Rprt;
+static int ett_rnsap_RL_DM_Rprt;
+static int ett_rnsap_RL_Set_DM_Rprt;
+static int ett_rnsap_RL_InformationList_DM_Rprt;
+static int ett_rnsap_RL_InformationItem_DM_Rprt;
+static int ett_rnsap_RL_Set_InformationList_DM_Rprt;
+static int ett_rnsap_RL_Set_InformationItem_DM_Rprt;
+static int ett_rnsap_DedicatedMeasurementTerminationRequest;
+static int ett_rnsap_DedicatedMeasurementFailureIndication;
+static int ett_rnsap_DedicatedMeasurementObjectType_DM_Fail_Ind;
+static int ett_rnsap_RL_DM_Fail_Ind;
+static int ett_rnsap_RL_Set_DM_Fail_Ind;
+static int ett_rnsap_RL_Unsuccessful_InformationRespList_DM_Fail_Ind;
+static int ett_rnsap_RL_Unsuccessful_InformationItem_DM_Fail_Ind;
+static int ett_rnsap_RL_Set_Unsuccessful_InformationRespList_DM_Fail_Ind;
+static int ett_rnsap_RL_Set_Unsuccessful_InformationItem_DM_Fail_Ind;
+static int ett_rnsap_CommonTransportChannelResourcesReleaseRequest;
+static int ett_rnsap_CommonTransportChannelResourcesRequest;
+static int ett_rnsap_CommonTransportChannelResourcesResponseFDD;
+static int ett_rnsap_FACH_InfoForUESelectedS_CCPCH_CTCH_ResourceRspFDD;
+static int ett_rnsap_CommonTransportChannelResourcesResponseTDD;
+static int ett_rnsap_FACH_InfoForUESelectedS_CCPCH_CTCH_ResourceRspTDD;
+static int ett_rnsap_CommonTransportChannelResourcesFailure;
+static int ett_rnsap_CompressedModeCommand;
+static int ett_rnsap_ErrorIndication;
+static int ett_rnsap_CommonMeasurementInitiationRequest;
+static int ett_rnsap_CommonMeasurementObjectType_CM_Rqst;
+static int ett_rnsap_Cell_CM_Rqst;
+static int ett_rnsap_NeighbouringCellMeasurementInfo;
+static int ett_rnsap_NeighbouringCellMeasurementInfo_item;
+static int ett_rnsap_GSM_Cell_CM_Rqst;
+static int ett_rnsap_GsmCellList_CM_Rqst;
+static int ett_rnsap_GsmCellItem_CM_Rqst;
+static int ett_rnsap_CommonMeasurementInitiationResponse;
+static int ett_rnsap_CommonMeasurementObjectType_CM_Rsp;
+static int ett_rnsap_Cell_CM_Rsp;
+static int ett_rnsap_GsmCellList_CM_Rsp;
+static int ett_rnsap_GsmCellItem_CM_Rsp;
+static int ett_rnsap_CommonMeasurementInitiationFailure;
+static int ett_rnsap_Extension_FailureMeasurementList;
+static int ett_rnsap_Extension_FailureMeasurementItem;
+static int ett_rnsap_CommonMeasurementReport;
+static int ett_rnsap_CommonMeasurementObjectType_CM_Rprt;
+static int ett_rnsap_Cell_CM_Rprt;
+static int ett_rnsap_GsmCellList_CM_Rprt;
+static int ett_rnsap_GsmCellItem_CM_Rprt;
+static int ett_rnsap_CommonMeasurementTerminationRequest;
+static int ett_rnsap_Extension_TerminationMeasurementList;
+static int ett_rnsap_Extension_TerminationMeasurementItem;
+static int ett_rnsap_CommonMeasurementFailureIndication;
+static int ett_rnsap_Extension_FailureIndicationMeasurementList;
+static int ett_rnsap_Extension_FailureIndicationMeasurementItem;
+static int ett_rnsap_InformationExchangeInitiationRequest;
+static int ett_rnsap_InformationExchangeObjectType_InfEx_Rqst;
+static int ett_rnsap_Cell_InfEx_Rqst;
+static int ett_rnsap_GSM_Cell_InfEx_Rqst;
+static int ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_InfEx_Rqst;
+static int ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_Item_InfEx_Rqst;
+static int ett_rnsap_MBMS_Bearer_Service_List_InfEx_Rqst;
+static int ett_rnsap_MBMS_Cell_InfEx_Rqst;
+static int ett_rnsap_ANR_Cell_InfEx_Rqst;
+static int ett_rnsap_Common_E_RGCH_Cell_InfEx_Rqst;
+static int ett_rnsap_InformationExchangeInitiationResponse;
+static int ett_rnsap_InformationExchangeObjectType_InfEx_Rsp;
+static int ett_rnsap_Cell_InfEx_Rsp;
+static int ett_rnsap_MBMS_Bearer_Service_List_InfEx_Rsp;
+static int ett_rnsap_MBMS_Bearer_ServiceItemIEs_InfEx_Rsp;
+static int ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_InfEx_Rsp;
+static int ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_Item_InfEx_Rsp;
+static int ett_rnsap_MBMS_Cell_InfEx_Rsp;
+static int ett_rnsap_MBMS_Cell_Item_InfEx_Rsp;
+static int ett_rnsap_ANR_Cell_InfEx_Rsp;
+static int ett_rnsap_ANR_Cell_ItemIEs_InfEx_Rsp;
+static int ett_rnsap_Common_E_RGCH_Cell_InfEx_Rsp;
+static int ett_rnsap_Common_E_RGCH_Cell_ItemIEs_InfEx_Rsp;
+static int ett_rnsap_InformationExchangeInitiationFailure;
+static int ett_rnsap_InformationReport;
+static int ett_rnsap_InformationExchangeObjectType_InfEx_Rprt;
+static int ett_rnsap_Cell_InfEx_Rprt;
+static int ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_InfEx_Rprt;
+static int ett_rnsap_MBMS_Bearer_Service_in_MBMS_Cell_Item_InfEx_Rprt;
+static int ett_rnsap_MBMS_Bearer_Service_List_InfEx_Rprt;
+static int ett_rnsap_MBMS_Bearer_Service_List_Item_InfEx_Rprt;
+static int ett_rnsap_MBMS_Cell_InfEx_Rprt;
+static int ett_rnsap_MBMS_Cell_Item_InfEx_Rprt;
+static int ett_rnsap_Common_E_RGCH_Cell_InfEx_Rprt;
+static int ett_rnsap_Common_E_RGCH_Cell_Item_InfEx_Rprt;
+static int ett_rnsap_InformationExchangeTerminationRequest;
+static int ett_rnsap_InformationExchangeFailureIndication;
+static int ett_rnsap_ResetRequest;
+static int ett_rnsap_ResetIndicator;
+static int ett_rnsap_ContextList_Reset;
+static int ett_rnsap_ContextInfoList_Reset;
+static int ett_rnsap_ContextInfoItem_Reset;
+static int ett_rnsap_ContextType_Reset;
+static int ett_rnsap_ContextGroupList_Reset;
+static int ett_rnsap_ContextGroupInfoList_Reset;
+static int ett_rnsap_ContextGroupInfoItem_Reset;
+static int ett_rnsap_ResetResponse;
+static int ett_rnsap_RadioLinkActivationCommandFDD;
+static int ett_rnsap_DelayedActivationInformationList_RL_ActivationCmdFDD;
+static int ett_rnsap_DelayedActivationInformation_RL_ActivationCmdFDD;
+static int ett_rnsap_RadioLinkActivationCommandTDD;
+static int ett_rnsap_DelayedActivationInformationList_RL_ActivationCmdTDD;
+static int ett_rnsap_DelayedActivationInformation_RL_ActivationCmdTDD;
+static int ett_rnsap_GERANUplinkSignallingTransferIndication;
+static int ett_rnsap_RadioLinkParameterUpdateIndicationFDD;
+static int ett_rnsap_RL_ParameterUpdateIndicationFDD_RL_InformationList;
+static int ett_rnsap_RL_ParameterUpdateIndicationFDD_RL_Information_Item;
+static int ett_rnsap_UE_Measurement_Forwarding;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Param_Upd;
+static int ett_rnsap_Additional_HS_Cell_Information_RL_Param_Upd_ItemIEs;
+static int ett_rnsap_Additional_EDCH_Cell_Information_RL_Param_Upd;
+static int ett_rnsap_Additional_EDCH_Cell_Information_RL_Param_Upd_ItemIEs;
+static int ett_rnsap_RadioLinkParameterUpdateIndicationTDD;
+static int ett_rnsap_UEMeasurementInitiationRequest;
+static int ett_rnsap_UEMeasurementInitiationResponse;
+static int ett_rnsap_UEMeasurementInitiationFailure;
+static int ett_rnsap_UEMeasurementReport;
+static int ett_rnsap_UEMeasurementTerminationRequest;
+static int ett_rnsap_UEMeasurementFailureIndication;
+static int ett_rnsap_IurInvokeTrace;
+static int ett_rnsap_ListOfInterfacesToTrace;
+static int ett_rnsap_InterfacesToTraceItem;
+static int ett_rnsap_IurDeactivateTrace;
+static int ett_rnsap_MBMSAttachCommand;
+static int ett_rnsap_MBMSDetachCommand;
+static int ett_rnsap_DirectInformationTransfer;
+static int ett_rnsap_EnhancedRelocationRequest;
+static int ett_rnsap_EnhancedRelocationResponse;
+static int ett_rnsap_EnhancedRelocationFailure;
+static int ett_rnsap_EnhancedRelocationCancel;
+static int ett_rnsap_EnhancedRelocationSignallingTransfer;
+static int ett_rnsap_EnhancedRelocationRelease;
+static int ett_rnsap_MBSFNMCCHInformation;
+static int ett_rnsap_SecondaryULFrequencyReport;
+static int ett_rnsap_SecondaryULFrequencyUpdateIndication;
+static int ett_rnsap_EnhancedRelocationResourceRequest;
+static int ett_rnsap_EnhancedRelocationResourceResponse;
+static int ett_rnsap_EnhancedRelocationResourceFailure;
+static int ett_rnsap_EnhancedRelocationResourceReleaseCommand;
+static int ett_rnsap_EnhancedRelocationResourceReleaseComplete;
+static int ett_rnsap_PrivateMessage;
+static int ett_rnsap_InformationTransferControlRequest;
+static int ett_rnsap_Control_Type_InformationTransferControlReq;
+static int ett_rnsap_Suspension_Control_Type;
+static int ett_rnsap_Resume_Control_Type;
+static int ett_rnsap_RNSAP_PDU;
+static int ett_rnsap_InitiatingMessage;
+static int ett_rnsap_SuccessfulOutcome;
+static int ett_rnsap_UnsuccessfulOutcome;
+static int ett_rnsap_Outcome;
/* Dissector tables */
@@ -20902,7 +20902,7 @@ dissect_rnsap_INTEGER_0_37799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_rnsap_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-rohc.c b/epan/dissectors/packet-rohc.c
index 9b6a8ffa84..41a2a80039 100644
--- a/epan/dissectors/packet-rohc.c
+++ b/epan/dissectors/packet-rohc.c
@@ -37,7 +37,7 @@ dissect_compressed_list(int expected_encoding_type _U_, packet_info *pinfo _U_,
proto_tree *tree, tvbuff_t *tvb, int offset);
/* cid -> rohc_cid_context_t* */
-static GHashTable *rohc_cid_hash = NULL;
+static GHashTable *rohc_cid_hash;
/* Initialize the protocol and registered fields */
static int proto_rohc;
@@ -2507,8 +2507,7 @@ dissect_rohc_ir_packet(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
call_dissector(ip_handle, next_tvb, pinfo, tree);
offset += tvb_captured_length_remaining(tvb, offset);
}
- col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "ROHC <");
- col_append_str(pinfo->cinfo, COL_PROTOCOL, ">");
+ col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "ROHC/");
}
break;
case ROHC_PROFILE_RTP:
@@ -2949,8 +2948,7 @@ start_over:
call_data_dissector(next_tvb, pinfo, tree);
}
- col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "ROHC <");
- col_append_str(pinfo->cinfo, COL_PROTOCOL, ">");
+ col_prepend_fstr(pinfo->cinfo, COL_PROTOCOL, "ROHC/");
return tvb_captured_length(tvb);
}
else if (((oct&0x80)==0x00) &&
diff --git a/epan/dissectors/packet-ros.c b/epan/dissectors/packet-ros.c
index 14238598d9..cfca349bb2 100644
--- a/epan/dissectors/packet-ros.c
+++ b/epan/dissectors/packet-ros.c
@@ -35,11 +35,11 @@ void proto_reg_handoff_ros(void);
/* Initialize the protocol and registered fields */
static int proto_ros;
-static proto_tree *top_tree=NULL;
+static proto_tree *top_tree;
static guint32 opcode;
static guint32 invokeid;
-static dissector_handle_t ros_handle = NULL;
+static dissector_handle_t ros_handle;
typedef struct ros_conv_info_t {
wmem_map_t *unmatched; /* unmatched operations */
@@ -98,22 +98,22 @@ static gint ett_ros_bind_error;
static gint ett_ros_unbind_invoke;
static gint ett_ros_unbind_result;
static gint ett_ros_unbind_error;
-static gint ett_ros_ROS;
-static gint ett_ros_Invoke;
-static gint ett_ros_ReturnResult;
-static gint ett_ros_T_result;
-static gint ett_ros_ReturnError;
-static gint ett_ros_Reject;
-static gint ett_ros_T_problem;
-static gint ett_ros_InvokeId;
-static gint ett_ros_Code;
+static int ett_ros_ROS;
+static int ett_ros_Invoke;
+static int ett_ros_ReturnResult;
+static int ett_ros_T_result;
+static int ett_ros_ReturnError;
+static int ett_ros_Reject;
+static int ett_ros_T_problem;
+static int ett_ros_InvokeId;
+static int ett_ros_Code;
static expert_field ei_ros_dissector_oid_not_implemented;
static expert_field ei_ros_unknown_ros_pdu;
-static dissector_table_t ros_oid_dissector_table=NULL;
+static dissector_table_t ros_oid_dissector_table;
-static wmem_map_t *protocol_table=NULL;
+static wmem_map_t *protocol_table;
void
register_ros_oid_dissector_handle(const char *oid, dissector_handle_t dissector, int proto _U_, const char *name, gboolean uses_rtse)
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c
index d12b9e9d2f..e8060d8e7f 100644
--- a/epan/dissectors/packet-rpc.c
+++ b/epan/dissectors/packet-rpc.c
@@ -64,24 +64,24 @@ void proto_reg_handoff_rpc(void);
#define RPC_TLS 2
/* desegmentation of RPC over TCP */
-static gboolean rpc_desegment = TRUE;
+static bool rpc_desegment = true;
/* defragmentation of fragmented RPC over TCP records */
-static gboolean rpc_defragment = TRUE;
+static bool rpc_defragment = true;
/* try to dissect RPC packets for programs that are not known
* (proprietary ones) by wireshark.
*/
-static gboolean rpc_dissect_unknown_programs = FALSE;
+static bool rpc_dissect_unknown_programs;
/* try to find RPC fragment start if normal decode fails
* (good when starting decode of mid-stream capture)
*/
-static gboolean rpc_find_fragment_start = FALSE;
+static bool rpc_find_fragment_start;
static int rpc_tap;
-static dissector_handle_t spnego_krb5_wrap_handle = NULL;
+static dissector_handle_t spnego_krb5_wrap_handle;
static const value_string rpc_msg_type[] = {
{ RPC_CALL, "Call" },
@@ -177,6 +177,7 @@ static const value_string rpc_authdes_namekind[] = {
/* the protocol number */
static int proto_rpc;
+static int proto_rpc_unknown;
static int hf_rpc_reqframe;
static int hf_rpc_repframe;
static int hf_rpc_lastfrag;
@@ -310,7 +311,7 @@ static const fragment_items rpc_frag_items = {
};
/* Hash table with info on RPC program numbers */
-GHashTable *rpc_progs = NULL;
+GHashTable *rpc_progs;
typedef gboolean (*rec_dissector_t)(tvbuff_t *, packet_info *, proto_tree *,
tvbuff_t *, fragment_head *, int, guint32, gboolean, gboolean);
@@ -321,8 +322,8 @@ static char *rpc_proc_name_internal(wmem_allocator_t *allocator, guint32 prog,
guint32 vers, guint32 proc);
-static guint32 rpc_program = 0;
-static guint32 rpc_version = 0;
+static guint32 rpc_program;
+static guint32 rpc_version;
static gint32 rpc_min_proc = -1;
static gint32 rpc_max_proc = -1;
@@ -642,7 +643,7 @@ typedef struct _rpc_conv_info_t {
a global tree for all contexts should still be unlikely to have collissions
here.
*/
-wmem_tree_t *authgss_contexts = NULL;
+wmem_tree_t *authgss_contexts;
unsigned int
rpc_roundup(unsigned int a)
@@ -2592,7 +2593,7 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
rpc_prog_key = prog;
if ((rpc_prog = (rpc_prog_info_value *)g_hash_table_lookup(rpc_progs,GUINT_TO_POINTER(rpc_prog_key))) == NULL) {
proto = NULL;
- proto_id = 0;
+ proto_id = proto_rpc_unknown;
ett = 0;
progname = "Unknown";
}
@@ -3076,7 +3077,7 @@ static reassembly_table rpc_fragment_table;
* so that they don't try to combine fragments from different TCP
* connections.)
*/
-static wmem_map_t *rpc_reassembly_table = NULL;
+static wmem_map_t *rpc_reassembly_table;
typedef struct _rpc_fragment_key {
guint32 conv_id;
@@ -3790,7 +3791,7 @@ find_and_dissect_rpc_fragment(tvbuff_t *tvb, int offset, packet_info *pinfo,
offReply = find_rpc_over_tcp_reply_start(tvb, offset);
if (offReply < 0) {
/* could search for request, but not needed (or testable) thus far */
- return (0); /* claim no RPC */
+ return 0; /* claim no RPC */
}
len = dissect_rpc_fragment(tvb, offReply,
@@ -3801,7 +3802,7 @@ find_and_dissect_rpc_fragment(tvbuff_t *tvb, int offset, packet_info *pinfo,
/* misses are reported as-is */
if (len == 0)
{
- return (0);
+ return 0;
}
/* returning a non-zero length, correct it to reflect the extra offset
@@ -4402,6 +4403,7 @@ proto_register_rpc(void)
};
proto_rpc = proto_register_protocol("Remote Procedure Call", "RPC", "rpc");
+ proto_rpc_unknown = proto_register_protocol("Unknown RPC protocol", "Unknown RPC", "rpc-unknown");
subdissector_call_table = register_custom_dissector_table("rpc.call", "RPC Call Functions", proto_rpc, rpc_proc_hash, rpc_proc_equal, g_free);
subdissector_reply_table = register_custom_dissector_table("rpc.reply", "RPC Reply Functions", proto_rpc, rpc_proc_hash, rpc_proc_equal, g_free);
diff --git a/epan/dissectors/packet-rpcap.c b/epan/dissectors/packet-rpcap.c
index 64931ba230..45d393b98b 100644
--- a/epan/dissectors/packet-rpcap.c
+++ b/epan/dissectors/packet-rpcap.c
@@ -215,13 +215,13 @@ static dissector_handle_t pcap_pktdata_handle;
static dissector_handle_t rpcap_tcp_handle;
/* User definable values */
-static gboolean rpcap_desegment = TRUE;
-static gboolean decode_content = TRUE;
+static bool rpcap_desegment = true;
+static bool decode_content = true;
static int global_linktype = -1;
/* Global variables */
static int linktype = -1;
-static gboolean info_added = FALSE;
+static gboolean info_added;
static const value_string message_type[] = {
{ RPCAP_MSG_ERROR, "Error" },
diff --git a/epan/dissectors/packet-rpcrdma.c b/epan/dissectors/packet-rpcrdma.c
index 901ff4c4a1..7e5a06e9e8 100644
--- a/epan/dissectors/packet-rpcrdma.c
+++ b/epan/dissectors/packet-rpcrdma.c
@@ -242,19 +242,19 @@ enum {
* an extra argument to differentiate between InfiniBand and iWarp.
* Reassembly is only supported for InfiniBand packets.
*/
-static struct infinibandinfo *gp_infiniband_info = NULL;
+static struct infinibandinfo *gp_infiniband_info;
/* Global variable set for every iWarp packet */
-static rdmap_info_t *gp_rdmap_info = NULL;
+static rdmap_info_t *gp_rdmap_info;
/* Call process_reassembled_data just once per frame */
-static gboolean g_needs_reassembly = FALSE;
+static gboolean g_needs_reassembly;
/* Array of offsets for reduced data in write chunks */
-static wmem_array_t *gp_rdma_write_offsets = NULL;
+static wmem_array_t *gp_rdma_write_offsets;
/* Signal upper layer(s) the current frame's data has been reduced by DDP */
-static gboolean g_rpcrdma_reduced = FALSE;
+static gboolean g_rpcrdma_reduced;
/*
* Signal upper layer(s) the current frame's data has been reduced by DDP
diff --git a/epan/dissectors/packet-rrc.c b/epan/dissectors/packet-rrc.c
index f4262bca44..7e83936847 100644
--- a/epan/dissectors/packet-rrc.c
+++ b/epan/dissectors/packet-rrc.c
@@ -57,11 +57,11 @@ extern int proto_fp; /*Handler to FP*/
extern int proto_umts_mac; /*Handler to MAC*/
extern int proto_umts_rlc; /*Handler to RLC*/
-GTree * hsdsch_muxed_flows = NULL;
-GTree * rrc_ciph_info_tree = NULL;
-wmem_tree_t* rrc_global_urnti_crnti_map = NULL;
+GTree * hsdsch_muxed_flows;
+GTree * rrc_ciph_info_tree;
+wmem_tree_t* rrc_global_urnti_crnti_map;
static int msg_type _U_;
-static gboolean rrc_nas_in_root_tree;
+static bool rrc_nas_in_root_tree;
enum rrc_sib_segment_type {
RRC_SIB_SEG_NO_SEGMENT = 0,
@@ -294,16 +294,16 @@ static void private_data_set_curr_sib_type(asn1_ctx_t *actx, guint32 curr_sib_ty
/*****************************************************************************/
static dissector_handle_t gsm_a_dtap_handle;
-static dissector_handle_t rrc_ue_radio_access_cap_info_handle=NULL;
-static dissector_handle_t rrc_pcch_handle=NULL;
-static dissector_handle_t rrc_ul_ccch_handle=NULL;
-static dissector_handle_t rrc_dl_ccch_handle=NULL;
-static dissector_handle_t rrc_ul_dcch_handle=NULL;
-static dissector_handle_t rrc_dl_dcch_handle=NULL;
-static dissector_handle_t rrc_bcch_fach_handle=NULL;
-static dissector_handle_t lte_rrc_ue_eutra_cap_handle=NULL;
-static dissector_handle_t lte_rrc_dl_dcch_handle=NULL;
-static dissector_handle_t gsm_rlcmac_dl_handle=NULL;
+static dissector_handle_t rrc_ue_radio_access_cap_info_handle;
+static dissector_handle_t rrc_pcch_handle;
+static dissector_handle_t rrc_ul_ccch_handle;
+static dissector_handle_t rrc_dl_ccch_handle;
+static dissector_handle_t rrc_ul_dcch_handle;
+static dissector_handle_t rrc_dl_dcch_handle;
+static dissector_handle_t rrc_bcch_fach_handle;
+static dissector_handle_t lte_rrc_ue_eutra_cap_handle;
+static dissector_handle_t lte_rrc_dl_dcch_handle;
+static dissector_handle_t gsm_rlcmac_dl_handle;
/* Forward declarations */
void proto_register_rrc(void);
@@ -11412,6943 +11412,6943 @@ static int hf_rrc_GsmSecurityCapability_a5_1;
/* Initialize the subtree pointers */
static int ett_rrc;
-static gint ett_rrc_DL_DCCH_Message;
-static gint ett_rrc_DL_DCCH_MessageType;
-static gint ett_rrc_UL_DCCH_Message;
-static gint ett_rrc_UL_DCCH_MessageType;
-static gint ett_rrc_UL_DCCH_MessageType_ext;
-static gint ett_rrc_DL_CCCH_Message;
-static gint ett_rrc_DL_CCCH_MessageType;
-static gint ett_rrc_UL_CCCH_Message;
-static gint ett_rrc_UL_CCCH_MessageType;
-static gint ett_rrc_UL_CCCH_MessageType_r11;
-static gint ett_rrc_PCCH_Message;
-static gint ett_rrc_PCCH_MessageType;
-static gint ett_rrc_DL_SHCCH_Message;
-static gint ett_rrc_DL_SHCCH_MessageType;
-static gint ett_rrc_UL_SHCCH_Message;
-static gint ett_rrc_UL_SHCCH_MessageType;
-static gint ett_rrc_BCCH_FACH_Message;
-static gint ett_rrc_BCCH_FACH_MessageType;
-static gint ett_rrc_BCCH_BCH_Message;
-static gint ett_rrc_BCCH_BCH2_Message;
-static gint ett_rrc_MCCH_Message;
-static gint ett_rrc_MCCH_MessageType;
-static gint ett_rrc_MSCH_Message;
-static gint ett_rrc_MSCH_MessageType;
-static gint ett_rrc_ActiveSetUpdate;
-static gint ett_rrc_T_r3;
-static gint ett_rrc_T_laterNonCriticalExtensions;
-static gint ett_rrc_T_v4b0NonCriticalExtensions;
-static gint ett_rrc_T_v590NonCriticalExtensions;
-static gint ett_rrc_T_v690NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions;
-static gint ett_rrc_T_later_than_r3;
-static gint ett_rrc_T_criticalExtensions;
-static gint ett_rrc_T_r6;
-static gint ett_rrc_T_v6b0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_01;
-static gint ett_rrc_T_criticalExtensions_01;
-static gint ett_rrc_T_r7;
-static gint ett_rrc_T_v780NonCriticalExtensions;
-static gint ett_rrc_T_v7f0NonCriticalExtensions;
-static gint ett_rrc_T_v7g0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_02;
-static gint ett_rrc_T_criticalExtensions_02;
-static gint ett_rrc_T_r8;
-static gint ett_rrc_T_v890NonCriticalExtensions;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_03;
-static gint ett_rrc_T_criticalExtensions_03;
-static gint ett_rrc_T_r9;
-static gint ett_rrc_T_v950NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_04;
-static gint ett_rrc_T_criticalExtensions_04;
-static gint ett_rrc_T_r10;
-static gint ett_rrc_T_vb50NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_05;
-static gint ett_rrc_T_criticalExtensions_05;
-static gint ett_rrc_T_r11;
-static gint ett_rrc_T_nonCriticalExtensions_06;
-static gint ett_rrc_T_criticalExtensions_06;
-static gint ett_rrc_T_r12;
-static gint ett_rrc_T_nonCriticalExtensions_07;
-static gint ett_rrc_T_criticalExtensions_07;
-static gint ett_rrc_T_r13;
-static gint ett_rrc_T_nonCriticalExtensions_08;
-static gint ett_rrc_T_criticalExtensions_08;
-static gint ett_rrc_ActiveSetUpdate_r3_IEs;
-static gint ett_rrc_ActiveSetUpdate_v4b0ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_v590ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_v690ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_r6_IEs;
-static gint ett_rrc_ActiveSetUpdate_v6b0ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_r7_IEs;
-static gint ett_rrc_ActiveSetUpdate_v780ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_v7f0ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_v7g0ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_r8_IEs;
-static gint ett_rrc_ActiveSetUpdate_v890ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_r9_IEs;
-static gint ett_rrc_ActiveSetUpdate_v950ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_r10_IEs;
-static gint ett_rrc_ActiveSetUpdate_vb50ext_IEs;
-static gint ett_rrc_ActiveSetUpdate_r11_IEs;
-static gint ett_rrc_ActiveSetUpdate_r12_IEs;
-static gint ett_rrc_ActiveSetUpdate_r13_IEs;
-static gint ett_rrc_ActiveSetUpdateComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_09;
-static gint ett_rrc_ActiveSetUpdateFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_10;
-static gint ett_rrc_AssistanceDataDelivery;
-static gint ett_rrc_T_r3_01;
-static gint ett_rrc_T_v3a0NonCriticalExtensions;
-static gint ett_rrc_T_laterNonCriticalExtensions_03;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_01;
-static gint ett_rrc_T_v770NonCriticalExtension;
-static gint ett_rrc_T_v860NonCriticalExtension;
-static gint ett_rrc_T_v920NonCriticalExtension;
-static gint ett_rrc_T_va40NonCriticalExtension;
-static gint ett_rrc_T_vc50NonCriticalExtension;
-static gint ett_rrc_T_nonCriticalExtensions_11;
-static gint ett_rrc_T_later_than_r3_01;
-static gint ett_rrc_T_criticalExtensions_09;
-static gint ett_rrc_AssistanceDataDelivery_r3_IEs;
-static gint ett_rrc_AssistanceDataDelivery_v3a0ext;
-static gint ett_rrc_AssistanceDataDelivery_v4b0ext_IEs;
-static gint ett_rrc_AssistanceDataDelivery_v770ext_IEs;
-static gint ett_rrc_AssistanceDataDelivery_v860ext_IEs;
-static gint ett_rrc_AssistanceDataDelivery_v920ext_IEs;
-static gint ett_rrc_AssistanceDataDelivery_va40ext_IEs;
-static gint ett_rrc_AssistanceDataDelivery_vc50ext_IEs;
-static gint ett_rrc_CellChangeOrderFromUTRAN;
-static gint ett_rrc_T_r3_02;
-static gint ett_rrc_T_laterNonCriticalExtensions_04;
-static gint ett_rrc_T_v590NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_12;
-static gint ett_rrc_T_later_than_r3_02;
-static gint ett_rrc_T_criticalExtensions_10;
-static gint ett_rrc_CellChangeOrderFromUTRAN_r3_IEs;
-static gint ett_rrc_CellChangeOrderFromUTRAN_v590ext_IEs;
-static gint ett_rrc_T_geran_SystemInfoType;
-static gint ett_rrc_CellChangeOrderFromUTRANFailure;
-static gint ett_rrc_T_r3_03;
-static gint ett_rrc_T_laterNonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_13;
-static gint ett_rrc_T_dummy;
-static gint ett_rrc_T_criticalExtensions_11;
-static gint ett_rrc_CellChangeOrderFromUTRANFailure_r3_IEs;
-static gint ett_rrc_CellUpdate;
-static gint ett_rrc_T_laterNonCriticalExtensions_06;
-static gint ett_rrc_T_v590NonCriticalExtensions_02;
-static gint ett_rrc_T_v690NonCriticalExtensions_01;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_01;
-static gint ett_rrc_T_v770NonCriticalExtensions;
-static gint ett_rrc_T_v860NonCriticalExtensions;
-static gint ett_rrc_T_va40NonCriticalExtensions;
-static gint ett_rrc_T_vb50NonCriticalExtensions_01;
-static gint ett_rrc_T_vc50NonCriticalExtensions;
-static gint ett_rrc_CellUpdate_ve30ext_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_14;
-static gint ett_rrc_CellUpdate_r3_add_ext_IEs;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_15;
-static gint ett_rrc_CellUpdate_v590ext;
-static gint ett_rrc_CellUpdate_v690ext_IEs;
-static gint ett_rrc_CellUpdate_v6b0ext_IEs;
-static gint ett_rrc_CellUpdate_v770ext_IEs;
-static gint ett_rrc_CellUpdate_v7e0ext_IEs;
-static gint ett_rrc_CellUpdate_v7g0ext_IEs;
-static gint ett_rrc_CellUpdate_v860ext_IEs;
-static gint ett_rrc_CellUpdate_va40ext_IEs;
-static gint ett_rrc_CellUpdateFDD_r11;
-static gint ett_rrc_CellUpdate_vb50ext_IEs;
-static gint ett_rrc_CellUpdate_vc50ext_IEs;
-static gint ett_rrc_CellUpdateConfirm;
-static gint ett_rrc_T_r3_04;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_01;
-static gint ett_rrc_T_laterNonCriticalExtensions_07;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_02;
-static gint ett_rrc_T_v590NonCriticalExtenstions;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions;
-static gint ett_rrc_T_v690NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_16;
-static gint ett_rrc_T_later_than_r3_03;
-static gint ett_rrc_T_criticalExtensions_12;
-static gint ett_rrc_T_r4;
-static gint ett_rrc_T_v4d0NonCriticalExtensions;
-static gint ett_rrc_T_v590NonCriticalExtenstions_01;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_01;
-static gint ett_rrc_T_v690NonCriticalExtensions_03;
-static gint ett_rrc_T_nonCriticalExtensions_17;
-static gint ett_rrc_T_criticalExtensions_13;
-static gint ett_rrc_T_r5;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_02;
-static gint ett_rrc_T_v690NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_18;
-static gint ett_rrc_T_criticalExtensions_14;
-static gint ett_rrc_T_r6_01;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_19;
-static gint ett_rrc_T_criticalExtensions_15;
-static gint ett_rrc_T_r7_01;
-static gint ett_rrc_T_v780NonCriticalExtensions_01;
-static gint ett_rrc_T_v860NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_20;
-static gint ett_rrc_T_criticalExtensions_16;
-static gint ett_rrc_T_r8_01;
-static gint ett_rrc_T_v7d0NonCriticalExtensions;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_01;
-static gint ett_rrc_T_v890NonCriticalExtensions_01;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_03;
-static gint ett_rrc_T_v8a0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_21;
-static gint ett_rrc_T_criticalExtensions_17;
-static gint ett_rrc_T_r9_01;
-static gint ett_rrc_T_v950NonCriticalExtensions_01;
-static gint ett_rrc_T_v9c0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_22;
-static gint ett_rrc_T_criticalExtensions_18;
-static gint ett_rrc_T_r10_01;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_01;
-static gint ett_rrc_T_vb50NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_23;
-static gint ett_rrc_T_criticalExtensions_19;
-static gint ett_rrc_T_r11_01;
-static gint ett_rrc_T_nonCriticalExtensions_24;
-static gint ett_rrc_T_criticalExtensions_20;
-static gint ett_rrc_T_r12_01;
-static gint ett_rrc_T_nonCriticalExtensions_25;
-static gint ett_rrc_T_criticalExtensions_21;
-static gint ett_rrc_T_r13_01;
-static gint ett_rrc_T_nonCriticalExtensions_26;
-static gint ett_rrc_CellUpdateConfirm_CriticalExtension_r14_IEs;
-static gint ett_rrc_T_r14;
-static gint ett_rrc_T_nonCriticalExtensions_27;
-static gint ett_rrc_T_criticalExtensions_22;
-static gint ett_rrc_CellUpdateConfirm_r14_IEs;
-static gint ett_rrc_CellUpdateConfirm_r3_IEs;
-static gint ett_rrc_T_modeSpecificTransChInfo;
-static gint ett_rrc_T_fdd;
-static gint ett_rrc_T_modeSpecificPhysChInfo;
-static gint ett_rrc_T_fdd_01;
-static gint ett_rrc_CellUpdateConfirm_v3a0ext;
-static gint ett_rrc_CellUpdateConfirm_v4b0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v590ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v5d0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_r4_IEs;
-static gint ett_rrc_T_modeSpecificTransChInfo_01;
-static gint ett_rrc_T_fdd_02;
-static gint ett_rrc_T_modeSpecificPhysChInfo_01;
-static gint ett_rrc_T_fdd_03;
-static gint ett_rrc_CellUpdateConfirm_r5_IEs;
-static gint ett_rrc_T_modeSpecificTransChInfo_02;
-static gint ett_rrc_T_fdd_04;
-static gint ett_rrc_T_modeSpecificPhysChInfo_02;
-static gint ett_rrc_T_fdd_05;
-static gint ett_rrc_CellUpdateConfirm_r6_IEs;
-static gint ett_rrc_CellUpdateConfirm_v690ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v6b0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_r7_IEs;
-static gint ett_rrc_CellUpdateConfirm_r7_add_ext_IEs;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_02;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_28;
-static gint ett_rrc_CellUpdateConfirm_v780ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v7d0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v7f0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v7g0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_r8_IEs;
-static gint ett_rrc_CellUpdateConfirm_v860ext_IEs;
-static gint ett_rrc_T_rab_InformationSetup;
-static gint ett_rrc_CellUpdateConfirm_v890ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v8a0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_r9_IEs;
-static gint ett_rrc_CellUpdateConfirm_v950ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_v9c0ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_r10_IEs;
-static gint ett_rrc_CellUpdateConfirm_vb50ext_IEs;
-static gint ett_rrc_CellUpdateConfirm_r11_IEs;
-static gint ett_rrc_CellUpdateConfirm_r12_IEs;
-static gint ett_rrc_CellUpdateConfirm_r13_IEs;
-static gint ett_rrc_CellUpdateConfirm_CCCH;
-static gint ett_rrc_T_r3_05;
-static gint ett_rrc_T_laterNonCriticalExtensions_08;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_03;
-static gint ett_rrc_T_v590NonCriticalExtensions_03;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_03;
-static gint ett_rrc_T_v690NonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_29;
-static gint ett_rrc_T_later_than_r3_04;
-static gint ett_rrc_T_criticalExtensions_23;
-static gint ett_rrc_T_r4_01;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_01;
-static gint ett_rrc_T_v590NonCriticalExtensions_04;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_04;
-static gint ett_rrc_T_v690NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_30;
-static gint ett_rrc_T_criticalExtensions_24;
-static gint ett_rrc_T_r5_01;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_05;
-static gint ett_rrc_T_v690NonCriticalExtensions_07;
-static gint ett_rrc_T_nonCriticalExtensions_31;
-static gint ett_rrc_T_criticalExtensions_25;
-static gint ett_rrc_T_r6_02;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_03;
-static gint ett_rrc_T_nonCriticalExtensions_32;
-static gint ett_rrc_T_criticalExtensions_26;
-static gint ett_rrc_T_r7_02;
-static gint ett_rrc_T_v780NonCriticalExtensions_02;
-static gint ett_rrc_T_v860NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_33;
-static gint ett_rrc_T_criticalExtensions_27;
-static gint ett_rrc_T_r8_02;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_01;
-static gint ett_rrc_T_v890NonCriticalExtensions_02;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_01;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_03;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_34;
-static gint ett_rrc_T_criticalExtensions_28;
-static gint ett_rrc_T_r9_02;
-static gint ett_rrc_T_nonCriticalExtensions_35;
-static gint ett_rrc_T_criticalExtensions_29;
-static gint ett_rrc_T_r10_02;
-static gint ett_rrc_T_vb50NonCriticalExtensions_03;
-static gint ett_rrc_T_nonCriticalExtensions_36;
-static gint ett_rrc_T_criticalExtensions_30;
-static gint ett_rrc_T_r11_02;
-static gint ett_rrc_T_nonCriticalExtensions_37;
-static gint ett_rrc_T_criticalExtensions_31;
-static gint ett_rrc_T_r12_02;
-static gint ett_rrc_T_nonCriticalExtensions_38;
-static gint ett_rrc_T_criticalExtensions_32;
-static gint ett_rrc_T_r13_02;
-static gint ett_rrc_T_nonCriticalExtensions_39;
-static gint ett_rrc_T_criticalExtensions_33;
-static gint ett_rrc_CounterCheck;
-static gint ett_rrc_T_r3_06;
-static gint ett_rrc_T_laterNonCriticalExtensions_09;
-static gint ett_rrc_T_nonCriticalExtensions_40;
-static gint ett_rrc_T_later_than_r3_05;
-static gint ett_rrc_T_criticalExtensions_34;
-static gint ett_rrc_CounterCheck_r3_IEs;
-static gint ett_rrc_CounterCheckResponse;
-static gint ett_rrc_T_laterNonCriticalExtensions_10;
-static gint ett_rrc_T_nonCriticalExtensions_41;
-static gint ett_rrc_DownlinkDirectTransfer;
-static gint ett_rrc_T_r3_07;
-static gint ett_rrc_T_laterNonCriticalExtensions_11;
-static gint ett_rrc_T_nonCriticalExtensions_42;
-static gint ett_rrc_T_later_than_r3_06;
-static gint ett_rrc_T_criticalExtensions_35;
-static gint ett_rrc_DownlinkDirectTransfer_r3_IEs;
-static gint ett_rrc_ETWSPrimaryNotificationWithSecurity;
-static gint ett_rrc_T_nonCriticalExtensions_43;
-static gint ett_rrc_HandoverToUTRANCommand;
-static gint ett_rrc_T_r3_08;
-static gint ett_rrc_T_nonCriticalExtensions_44;
-static gint ett_rrc_T_criticalExtensions_36;
-static gint ett_rrc_T_r4_02;
-static gint ett_rrc_T_nonCriticalExtensions_45;
-static gint ett_rrc_T_criticalExtensions_37;
-static gint ett_rrc_T_r5_02;
-static gint ett_rrc_T_nonCriticalExtensions_46;
-static gint ett_rrc_T_criticalExtensions_38;
-static gint ett_rrc_T_r6_03;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_47;
-static gint ett_rrc_T_criticalExtensions_39;
-static gint ett_rrc_T_r7_03;
-static gint ett_rrc_T_v780NonCriticalExtensions_03;
-static gint ett_rrc_T_v820NonCriticalExtensions;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_48;
-static gint ett_rrc_T_criticalExtensions_40;
-static gint ett_rrc_T_r8_03;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_03;
-static gint ett_rrc_T_v890NonCriticalExtensions_03;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_49;
-static gint ett_rrc_T_criticalExtensions_41;
-static gint ett_rrc_T_r9_03;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_50;
-static gint ett_rrc_HandoverToUTRANCommand_r3_IEs;
-static gint ett_rrc_T_specificationMode;
-static gint ett_rrc_T_complete;
-static gint ett_rrc_T_modeSpecificInfo;
-static gint ett_rrc_T_fdd_06;
-static gint ett_rrc_T_preconfiguration;
-static gint ett_rrc_T_preConfigMode;
-static gint ett_rrc_T_defaultConfig;
-static gint ett_rrc_T_modeSpecificInfo_01;
-static gint ett_rrc_T_fdd_07;
-static gint ett_rrc_T_tdd;
-static gint ett_rrc_HandoverToUTRANCommand_r4_IEs;
-static gint ett_rrc_T_specificationMode_01;
-static gint ett_rrc_T_complete_01;
-static gint ett_rrc_T_modeSpecificInfo_02;
-static gint ett_rrc_T_fdd_08;
-static gint ett_rrc_T_preconfiguration_01;
-static gint ett_rrc_T_preConfigMode_01;
-static gint ett_rrc_T_defaultConfig_01;
-static gint ett_rrc_T_modeSpecificInfo_03;
-static gint ett_rrc_T_fdd_09;
-static gint ett_rrc_T_tdd_01;
-static gint ett_rrc_T_tdd384;
-static gint ett_rrc_T_tdd128;
-static gint ett_rrc_HandoverToUTRANCommand_r5_IEs;
-static gint ett_rrc_T_specificationMode_02;
-static gint ett_rrc_T_complete_02;
-static gint ett_rrc_T_modeSpecificInfo_04;
-static gint ett_rrc_T_fdd_10;
-static gint ett_rrc_T_preconfiguration_02;
-static gint ett_rrc_T_preConfigMode_02;
-static gint ett_rrc_T_defaultConfig_02;
-static gint ett_rrc_T_modeSpecificInfo_05;
-static gint ett_rrc_T_fdd_11;
-static gint ett_rrc_T_tdd_02;
-static gint ett_rrc_T_tdd384_01;
-static gint ett_rrc_T_tdd128_01;
-static gint ett_rrc_HandoverToUTRANCommand_r6_IEs;
-static gint ett_rrc_T_specificationMode_03;
-static gint ett_rrc_T_complete_03;
-static gint ett_rrc_T_preconfiguration_03;
-static gint ett_rrc_T_preConfigMode_03;
-static gint ett_rrc_T_defaultConfig_03;
-static gint ett_rrc_T_modeSpecificInfo_06;
-static gint ett_rrc_T_fdd_12;
-static gint ett_rrc_T_tdd_03;
-static gint ett_rrc_T_tdd384_02;
-static gint ett_rrc_T_tdd128_02;
-static gint ett_rrc_HandoverToUTRANCommand_v6b0ext_IEs;
-static gint ett_rrc_HandoverToUTRANCommand_r7_IEs;
-static gint ett_rrc_T_specificationMode_04;
-static gint ett_rrc_T_complete_04;
-static gint ett_rrc_T_preconfiguration_04;
-static gint ett_rrc_T_preConfigMode_04;
-static gint ett_rrc_T_defaultConfig_04;
-static gint ett_rrc_T_modeSpecificInfo_07;
-static gint ett_rrc_T_fdd_13;
-static gint ett_rrc_T_tdd_04;
-static gint ett_rrc_T_tdd384_03;
-static gint ett_rrc_T_tdd128_03;
-static gint ett_rrc_T_tdd768;
-static gint ett_rrc_HandoverToUTRANCommand_v780ext_IEs;
-static gint ett_rrc_HandoverToUTRANCommand_v7d0ext_IEs;
-static gint ett_rrc_HandoverToUTRANCommand_r8_IEs;
-static gint ett_rrc_T_specificationMode_05;
-static gint ett_rrc_T_complete_05;
-static gint ett_rrc_T_preconfiguration_05;
-static gint ett_rrc_T_preConfigMode_05;
-static gint ett_rrc_T_defaultConfig_05;
-static gint ett_rrc_T_modeSpecificInfo_08;
-static gint ett_rrc_T_fdd_14;
-static gint ett_rrc_T_tdd_05;
-static gint ett_rrc_T_tdd384_04;
-static gint ett_rrc_T_tdd128_04;
-static gint ett_rrc_T_tdd768_01;
-static gint ett_rrc_HandoverToUTRANCommand_v820ext_IEs;
-static gint ett_rrc_HandoverToUTRANCommand_v890ext_IEs;
-static gint ett_rrc_HandoverToUTRANCommand_v8a0ext_IEs;
-static gint ett_rrc_HandoverToUTRANCommand_r9_IEs;
-static gint ett_rrc_T_specificationMode_06;
-static gint ett_rrc_T_complete_06;
-static gint ett_rrc_T_preconfiguration_06;
-static gint ett_rrc_T_preConfigMode_06;
-static gint ett_rrc_T_defaultConfig_06;
-static gint ett_rrc_T_modeSpecificInfo_09;
-static gint ett_rrc_T_fdd_15;
-static gint ett_rrc_T_tdd_06;
-static gint ett_rrc_T_tdd384_05;
-static gint ett_rrc_T_tdd128_05;
-static gint ett_rrc_T_tdd768_02;
-static gint ett_rrc_HandoverToUTRANCommand_v9c0ext_IEs;
-static gint ett_rrc_HandoverToUTRANCommand_LaterCriticalExtensions;
-static gint ett_rrc_T_r10_03;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_03;
-static gint ett_rrc_T_nonCriticalExtensions_51;
-static gint ett_rrc_T_criticalExtensions_42;
-static gint ett_rrc_T_r11_03;
-static gint ett_rrc_T_vbc0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_52;
-static gint ett_rrc_T_criticalExtensions_43;
-static gint ett_rrc_T_r12_03;
-static gint ett_rrc_T_nonCriticalExtensions_53;
-static gint ett_rrc_T_criticalExtensions_44;
-static gint ett_rrc_HandoverToUTRANCommand_r10_IEs;
-static gint ett_rrc_T_specificationMode_07;
-static gint ett_rrc_T_complete_07;
-static gint ett_rrc_T_preconfiguration_07;
-static gint ett_rrc_T_preConfigMode_07;
-static gint ett_rrc_T_defaultConfig_07;
-static gint ett_rrc_T_modeSpecificInfo_10;
-static gint ett_rrc_T_fdd_16;
-static gint ett_rrc_T_tdd_07;
-static gint ett_rrc_T_tdd384_06;
-static gint ett_rrc_T_tdd128_06;
-static gint ett_rrc_T_tdd768_03;
-static gint ett_rrc_HandoverToUTRANCommand_r11_IEs;
-static gint ett_rrc_T_specificationMode_08;
-static gint ett_rrc_T_complete_08;
-static gint ett_rrc_T_preconfiguration_08;
-static gint ett_rrc_T_preConfigMode_08;
-static gint ett_rrc_T_defaultConfig_08;
-static gint ett_rrc_T_modeSpecificInfo_11;
-static gint ett_rrc_T_fdd_17;
-static gint ett_rrc_T_tdd_08;
-static gint ett_rrc_T_tdd384_07;
-static gint ett_rrc_T_tdd128_07;
-static gint ett_rrc_T_tdd768_04;
-static gint ett_rrc_HandoverToUTRANCommand_vbc0ext_IEs;
-static gint ett_rrc_T_specificationMode_09;
-static gint ett_rrc_T_complete_09;
-static gint ett_rrc_HandoverToUTRANCommand_r12_IEs;
-static gint ett_rrc_T_specificationMode_10;
-static gint ett_rrc_T_complete_10;
-static gint ett_rrc_T_preconfiguration_09;
-static gint ett_rrc_T_preConfigMode_09;
-static gint ett_rrc_T_defaultConfig_09;
-static gint ett_rrc_T_modeSpecificInfo_12;
-static gint ett_rrc_T_fdd_18;
-static gint ett_rrc_T_tdd_09;
-static gint ett_rrc_T_tdd384_08;
-static gint ett_rrc_T_tdd128_08;
-static gint ett_rrc_T_tdd768_05;
-static gint ett_rrc_HandoverToUTRANComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_12;
-static gint ett_rrc_T_va40NonCriticalExtensions_01;
-static gint ett_rrc_T_vb50NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_54;
-static gint ett_rrc_HandoverToUTRANComplete_va40ext;
-static gint ett_rrc_HandoverToUTRANComplete_vb50ext_IEs;
-static gint ett_rrc_InitialDirectTransfer;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_02;
-static gint ett_rrc_T_laterNonCriticalExtensions_13;
-static gint ett_rrc_T_v590NonCriticalExtensions_05;
-static gint ett_rrc_T_v690NonCriticalExtensions_08;
-static gint ett_rrc_T_v770NonCriticalExtensions_01;
-static gint ett_rrc_T_v860NonCriticalExtensions_03;
-static gint ett_rrc_T_vb50NonCriticalExtensions_05;
-static gint ett_rrc_T_vc50NonCriticalExtensions_01;
-static gint ett_rrc_InitialDirectTransfer_v3a0ext;
-static gint ett_rrc_InitialDirectTransfer_v590ext;
-static gint ett_rrc_InitialDirectTransfer_v690ext_IEs;
-static gint ett_rrc_InitialDirectTransfer_v770ext_IEs;
-static gint ett_rrc_InitialDirectTransfer_v860ext_IEs;
-static gint ett_rrc_InitialDirectTransfer_r3_add_ext_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_55;
-static gint ett_rrc_InitialDirectTransfer_v7g0ext_IEs;
-static gint ett_rrc_InitialDirectTransfer_vb50ext_IEs;
-static gint ett_rrc_InitialDirectTransfer_vc50ext_IEs;
-static gint ett_rrc_InitialDirectTransfer_ve30ext_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_56;
-static gint ett_rrc_HandoverFromUTRANCommand_GSM;
-static gint ett_rrc_T_r3_09;
-static gint ett_rrc_T_laterNonCriticalExtensions_14;
-static gint ett_rrc_T_v690NonCriticalExtensions_09;
-static gint ett_rrc_T_v860NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_57;
-static gint ett_rrc_T_later_than_r3_07;
-static gint ett_rrc_T_criticalExtensions_45;
-static gint ett_rrc_T_r6_04;
-static gint ett_rrc_T_v860NonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_58;
-static gint ett_rrc_T_criticalExtensions_46;
-static gint ett_rrc_HandoverFromUTRANCommand_GSM_r3_IEs;
-static gint ett_rrc_T_gsm_message;
-static gint ett_rrc_T_single_GSM_Message_r3;
-static gint ett_rrc_T_gsm_MessageList_r3;
-static gint ett_rrc_HandoverFromUTRANCommand_GSM_r6_IEs;
-static gint ett_rrc_T_gsm_message_01;
-static gint ett_rrc_T_single_GSM_Message_r6;
-static gint ett_rrc_T_gsm_MessageList_r6;
-static gint ett_rrc_T_geran_SystemInfoType_01;
-static gint ett_rrc_HandoverFromUTRANCommand_GSM_v690ext_IEs;
-static gint ett_rrc_T_geran_SystemInfoType_02;
-static gint ett_rrc_HandoverFromUTRANCommand_GSM_v860ext_IEs;
-static gint ett_rrc_HandoverFromUTRANCommand_GERANIu;
-static gint ett_rrc_T_handoverFromUTRANCommand_GERANIu;
-static gint ett_rrc_T_r5_03;
-static gint ett_rrc_T_nonCriticalExtensions_59;
-static gint ett_rrc_T_later_than_r5;
-static gint ett_rrc_T_criticalExtensions_47;
-static gint ett_rrc_HandoverFromUTRANCommand_GERANIu_r5_IEs;
-static gint ett_rrc_T_geranIu_Message;
-static gint ett_rrc_T_single_GERANIu_Message;
-static gint ett_rrc_T_geranIu_MessageList;
-static gint ett_rrc_HandoverFromUTRANCommand_CDMA2000;
-static gint ett_rrc_T_r3_10;
-static gint ett_rrc_T_laterNonCriticalExtensions_15;
-static gint ett_rrc_T_nonCriticalExtensions_60;
-static gint ett_rrc_T_later_than_r3_08;
-static gint ett_rrc_T_criticalExtensions_48;
-static gint ett_rrc_HandoverFromUTRANCommand_CDMA2000_r3_IEs;
-static gint ett_rrc_HandoverFromUTRANCommand_EUTRA;
-static gint ett_rrc_T_criticalExtensions_49;
-static gint ett_rrc_T_r8_04;
-static gint ett_rrc_T_nonCriticalExtensions_61;
-static gint ett_rrc_T_criticalExtensions_50;
-static gint ett_rrc_T_r11_04;
-static gint ett_rrc_T_nonCriticalExtensions_62;
-static gint ett_rrc_T_criticalExtensions_51;
-static gint ett_rrc_HandoverFromUTRANCommand_EUTRA_r8_IEs;
-static gint ett_rrc_HandoverFromUTRANCommand_EUTRA_r11_IEs;
-static gint ett_rrc_HandoverFromUTRANFailure;
-static gint ett_rrc_T_interRATMessage;
-static gint ett_rrc_T_gsm;
-static gint ett_rrc_T_cdma2000;
-static gint ett_rrc_T_laterNonCriticalExtensions_16;
-static gint ett_rrc_T_v590NonCriticalExtensions_06;
-static gint ett_rrc_T_v860NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_63;
-static gint ett_rrc_HandoverFromUtranFailure_v590ext_IEs;
-static gint ett_rrc_HandoverFromUtranFailure_v860ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo;
-static gint ett_rrc_T_predefinedConfigStatusList;
-static gint ett_rrc_T_uE_SecurityInformation;
-static gint ett_rrc_T_ue_CapabilityContainer;
-static gint ett_rrc_T_v390NonCriticalExtensions;
-static gint ett_rrc_T_present_01;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_03;
-static gint ett_rrc_T_laterNonCriticalExtensions_17;
-static gint ett_rrc_T_v3g0NonCriticalExtensions;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_04;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_02;
-static gint ett_rrc_T_v590NonCriticalExtensions_07;
-static gint ett_rrc_T_v690NonCriticalExtensions_10;
-static gint ett_rrc_InterRATHandoverInfo_v390ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v3a0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v3d0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v3g0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_r3_add_ext_IEs;
-static gint ett_rrc_T_v7e0NonCriticalExtensions;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_04;
-static gint ett_rrc_T_va40NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_64;
-static gint ett_rrc_InterRATHandoverInfo_v4b0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v4d0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v590ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v690ext1_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v690ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_NonCriticalExtension_v6b0_IEs;
-static gint ett_rrc_T_v6e0NonCriticalExtensions;
-static gint ett_rrc_T_v770NonCriticalExtensions_02;
-static gint ett_rrc_T_v790nonCriticalExtensions;
-static gint ett_rrc_T_v860NonCriticalExtensions_07;
-static gint ett_rrc_T_v880NonCriticalExtensions;
-static gint ett_rrc_T_v920NonCriticalExtensions;
-static gint ett_rrc_T_v8b0NonCriticalExtensions;
-static gint ett_rrc_T_v950NonCriticalExtensions_02;
-static gint ett_rrc_T_va40NonCriticalExtensions_03;
-static gint ett_rrc_T_va80NonCriticalExtensions;
-static gint ett_rrc_T_vb50NonCriticalExtensions_06;
-static gint ett_rrc_T_vb70NonCriticalExtensions;
-static gint ett_rrc_InterRATHandoverInfo_v6b0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v6e0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v770ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v790ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v7e0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v7f0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v860ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v880ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v920ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v8b0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_v950ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_va40ext_IEs;
-static gint ett_rrc_InterRATHandoverInfoBand_va40ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_va80ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_vb50ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_vb70ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_vbc0ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_LaterNonCriticalExtensions;
-static gint ett_rrc_T_vc50NonCriticalExtensions_02;
-static gint ett_rrc_T_vd20NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_65;
-static gint ett_rrc_InterRATHandoverInfo_vc50ext_IEs;
-static gint ett_rrc_InterRATHandoverInfo_vd20ext_IEs;
-static gint ett_rrc_MeasurementControl;
-static gint ett_rrc_T_r3_11;
-static gint ett_rrc_T_v390nonCriticalExtensions;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_04;
-static gint ett_rrc_T_laterNonCriticalExtensions_18;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_05;
-static gint ett_rrc_T_v590NonCriticalExtensions_08;
-static gint ett_rrc_T_v5b0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_66;
-static gint ett_rrc_T_later_than_r3_09;
-static gint ett_rrc_T_criticalExtensions_52;
-static gint ett_rrc_T_r4_03;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_03;
-static gint ett_rrc_T_v590NonCriticalExtensions_09;
-static gint ett_rrc_T_v5b0NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_67;
-static gint ett_rrc_T_later_than_r4;
-static gint ett_rrc_T_criticalExtensions_53;
-static gint ett_rrc_T_r6_05;
-static gint ett_rrc_T_v6a0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_68;
-static gint ett_rrc_T_criticalExtensions_54;
-static gint ett_rrc_T_r7_04;
-static gint ett_rrc_T_v7b0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_69;
-static gint ett_rrc_T_criticalExtensions_55;
-static gint ett_rrc_T_r8_05;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_03;
-static gint ett_rrc_T_vb50NonCriticalExtensions_07;
-static gint ett_rrc_T_nonCriticalExtensions_70;
-static gint ett_rrc_T_criticalExtensions_56;
-static gint ett_rrc_T_r9_04;
-static gint ett_rrc_T_v970NonCriticalExtensions;
-static gint ett_rrc_T_vb50NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_71;
-static gint ett_rrc_T_criticalExtensions_57;
-static gint ett_rrc_T_r10_04;
-static gint ett_rrc_T_vaa0NonCriticalExtensions;
-static gint ett_rrc_T_vab0NonCriticalExtensions;
-static gint ett_rrc_T_vb50NonCriticalExtensions_09;
-static gint ett_rrc_T_nonCriticalExtensions_72;
-static gint ett_rrc_T_criticalExtensions_58;
-static gint ett_rrc_T_r11_05;
-static gint ett_rrc_T_nonCriticalExtensions_73;
-static gint ett_rrc_T_criticalExtensions_59;
-static gint ett_rrc_T_r12_04;
-static gint ett_rrc_T_nonCriticalExtensions_74;
-static gint ett_rrc_T_criticalExtensions_60;
-static gint ett_rrc_T_r13_03;
-static gint ett_rrc_T_nonCriticalExtensions_75;
-static gint ett_rrc_T_criticalExtensions_61;
-static gint ett_rrc_T_r14_01;
-static gint ett_rrc_T_nonCriticalExtensions_76;
-static gint ett_rrc_MeasurementControl_r3_IEs;
-static gint ett_rrc_MeasurementControl_v390ext;
-static gint ett_rrc_MeasurementControl_v3a0ext;
-static gint ett_rrc_MeasurementControl_r4_IEs;
-static gint ett_rrc_MeasurementControl_v590ext_IEs;
-static gint ett_rrc_T_measurementCommand_v590ext;
-static gint ett_rrc_MeasurementControl_v5b0ext_IEs;
-static gint ett_rrc_MeasurementControl_r6_IEs;
-static gint ett_rrc_MeasurementControl_v6a0ext_IEs;
-static gint ett_rrc_MeasurementControl_r7_IEs;
-static gint ett_rrc_MeasurementControl_v7b0ext_IEs;
-static gint ett_rrc_MeasurementControl_r8_IEs;
-static gint ett_rrc_MeasurementControl_v8a0ext_IEs;
-static gint ett_rrc_MeasurementControl_r9_IEs;
-static gint ett_rrc_MeasurementControl_v970ext_IEs;
-static gint ett_rrc_MeasurementControl_r10_IEs;
-static gint ett_rrc_MeasurementControl_vaa0ext_IEs;
-static gint ett_rrc_MeasurementControl_r11_IEs;
-static gint ett_rrc_MeasurementControl_vb50ext_IEs;
-static gint ett_rrc_MeasurementControl_r12_IEs;
-static gint ett_rrc_MeasurementControl_r13_IEs;
-static gint ett_rrc_MeasurementControl_r14_IEs;
-static gint ett_rrc_MeasurementControl_LaterCriticalExtensions_r14_IEs;
-static gint ett_rrc_T_criticalExtensions_62;
-static gint ett_rrc_T_r14_02;
-static gint ett_rrc_T_nonCriticalExtensions_77;
-static gint ett_rrc_MeasurementControl_LaterCriticalExtensions_r15_IEs;
-static gint ett_rrc_T_criticalExtensions_63;
-static gint ett_rrc_T_r15;
-static gint ett_rrc_T_nonCriticalExtensions_78;
-static gint ett_rrc_T_criticalExtensions_64;
-static gint ett_rrc_MeasurementControl_r15_IEs;
-static gint ett_rrc_MeasurementControlFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_19;
-static gint ett_rrc_T_v590NonCriticalExtensions_10;
-static gint ett_rrc_T_vc50NonCriticalExtensions_03;
-static gint ett_rrc_T_nonCriticalExtensions_79;
-static gint ett_rrc_MeasurementControlFailure_v590ext_IEs;
-static gint ett_rrc_MeasurementControlFailure_vc50ext_IEs;
-static gint ett_rrc_MeasurementReport;
-static gint ett_rrc_T_v390nonCriticalExtensions_01;
-static gint ett_rrc_T_laterNonCriticalExtensions_20;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_06;
-static gint ett_rrc_T_v590NonCriticalExtensions_11;
-static gint ett_rrc_T_v5b0NonCriticalExtensions_02;
-static gint ett_rrc_T_v690NonCriticalExtensions_11;
-static gint ett_rrc_T_v770NonCriticalExtensions_03;
-static gint ett_rrc_T_v860NonCriticalExtensions_08;
-static gint ett_rrc_T_v920NonCriticalExtensions_01;
-static gint ett_rrc_T_v970NonCriticalExtensions_01;
-static gint ett_rrc_T_va40NonCriticalExtensions_04;
-static gint ett_rrc_T_vb50NonCriticalExtensions_10;
-static gint ett_rrc_MeasurementReport_v390ext;
-static gint ett_rrc_MeasurementReport_v4b0ext_IEs;
-static gint ett_rrc_MeasurementReport_v590ext_IEs;
-static gint ett_rrc_MeasurementReport_v5b0ext_IEs;
-static gint ett_rrc_MeasurementReport_v690ext_IEs;
-static gint ett_rrc_MeasurementReport_v770ext_IEs;
-static gint ett_rrc_MeasurementReport_v860ext_IEs;
-static gint ett_rrc_MeasurementReport_v920ext_IEs;
-static gint ett_rrc_MeasurementReport_v970ext_IEs;
-static gint ett_rrc_MeasurementReport_va40ext_IEs;
-static gint ett_rrc_MeasurementReport_vb50ext_IEs;
-static gint ett_rrc_MeasurementReport_LaterNonCriticalExtensions;
-static gint ett_rrc_T_vd20NonCriticalExtensions_01;
-static gint ett_rrc_MeasurementReport_vc50ext_IEs;
-static gint ett_rrc_MeasurementReport_vd20ext_IEs;
-static gint ett_rrc_MeasurementReport_ve30ext_IEs;
-static gint ett_rrc_MeasurementReport_vf20ext_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_80;
-static gint ett_rrc_PagingType1;
-static gint ett_rrc_T_laterNonCriticalExtensions_21;
-static gint ett_rrc_T_v590NonCriticalExtensions_12;
-static gint ett_rrc_T_v860NonCriticalExtensions_09;
-static gint ett_rrc_T_vc50NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_81;
-static gint ett_rrc_PagingType1_v590ext_IEs;
-static gint ett_rrc_PagingType1_v860ext_IEs;
-static gint ett_rrc_PagingType1_vc50ext_IEs;
-static gint ett_rrc_PagingType2;
-static gint ett_rrc_T_laterNonCriticalExtensions_22;
-static gint ett_rrc_T_nonCriticalExtensions_82;
-static gint ett_rrc_PhysicalChannelReconfiguration;
-static gint ett_rrc_T_r3_12;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_05;
-static gint ett_rrc_T_laterNonCriticalExtensions_23;
-static gint ett_rrc_T_v4b0NonCriticalExtenstions;
-static gint ett_rrc_T_v590NonCriticalExtenstions_02;
-static gint ett_rrc_T_v690NonCriticalExtensions_12;
-static gint ett_rrc_T_v770NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_83;
-static gint ett_rrc_T_later_than_r3_10;
-static gint ett_rrc_T_criticalExtensions_65;
-static gint ett_rrc_T_r4_04;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_04;
-static gint ett_rrc_T_v590NonCriticalExtenstions_03;
-static gint ett_rrc_T_v690NonCriticalExtensions_13;
-static gint ett_rrc_T_v770NonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_84;
-static gint ett_rrc_T_criticalExtensions_66;
-static gint ett_rrc_T_r5_04;
-static gint ett_rrc_T_v690NonCriticalExtensions_14;
-static gint ett_rrc_T_v770NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_85;
-static gint ett_rrc_T_criticalExtensions_67;
-static gint ett_rrc_T_r6_06;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_05;
-static gint ett_rrc_T_v770NonCriticalExtensions_07;
-static gint ett_rrc_T_nonCriticalExtensions_86;
-static gint ett_rrc_T_criticalExtensions_68;
-static gint ett_rrc_T_r7_05;
-static gint ett_rrc_T_v780NonCriticalExtensions_04;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_04;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_05;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_87;
-static gint ett_rrc_T_criticalExtensions_69;
-static gint ett_rrc_T_r8_06;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_05;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_06;
-static gint ett_rrc_T_v890NonCriticalExtensions_04;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_07;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_88;
-static gint ett_rrc_T_criticalExtensions_70;
-static gint ett_rrc_T_r9_05;
-static gint ett_rrc_T_v950NonCriticalExtensions_03;
-static gint ett_rrc_T_nonCriticalExtensions_89;
-static gint ett_rrc_T_criticalExtensions_71;
-static gint ett_rrc_T_r10_05;
-static gint ett_rrc_T_vb50NonCriticalExtensions_11;
-static gint ett_rrc_T_nonCriticalExtensions_90;
-static gint ett_rrc_T_criticalExtensions_72;
-static gint ett_rrc_T_r11_06;
-static gint ett_rrc_T_nonCriticalExtensions_91;
-static gint ett_rrc_T_criticalExtensions_73;
-static gint ett_rrc_T_r12_05;
-static gint ett_rrc_T_nonCriticalExtensions_92;
-static gint ett_rrc_T_criticalExtensions_74;
-static gint ett_rrc_T_r13_04;
-static gint ett_rrc_T_nonCriticalExtensions_93;
-static gint ett_rrc_T_criticalExtensions_75;
-static gint ett_rrc_PhysicalChannelReconfiguration_r3_IEs;
-static gint ett_rrc_T_modeSpecificInfo_13;
-static gint ett_rrc_T_fdd_19;
-static gint ett_rrc_PhysicalChannelReconfiguration_v3a0ext;
-static gint ett_rrc_PhysicalChannelReconfiguration_v4b0ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v590ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r4_IEs;
-static gint ett_rrc_T_modeSpecificInfo_14;
-static gint ett_rrc_T_fdd_20;
-static gint ett_rrc_PhysicalChannelReconfiguration_r5_IEs;
-static gint ett_rrc_T_modeSpecificInfo_15;
-static gint ett_rrc_T_fdd_21;
-static gint ett_rrc_PhysicalChannelReconfiguration_r6_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v690ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v6b0ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r7_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v770ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v780ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v7d0ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v7f0ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v7g0ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r8_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v890ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v8a0ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r9_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_v950ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r10_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_vb50ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r11_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r12_IEs;
-static gint ett_rrc_PhysicalChannelReconfiguration_r13_IEs;
-static gint ett_rrc_PhysicalChannelReconfigurationComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_24;
-static gint ett_rrc_T_v770NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_94;
-static gint ett_rrc_PhysicalChannelReconfigurationComplete_v770ext_IEs;
-static gint ett_rrc_PhysicalChannelReconfigurationFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_25;
-static gint ett_rrc_T_nonCriticalExtensions_95;
-static gint ett_rrc_PhysicalSharedChannelAllocation;
-static gint ett_rrc_T_r3_13;
-static gint ett_rrc_T_laterNonCriticalExtensions_26;
-static gint ett_rrc_T_nonCriticalExtensions_96;
-static gint ett_rrc_T_later_than_r3_11;
-static gint ett_rrc_T_criticalExtensions_76;
-static gint ett_rrc_T_r4_05;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_05;
-static gint ett_rrc_T_v690NonCriticalExtensions_15;
-static gint ett_rrc_T_v770NonCriticalExtensions_09;
-static gint ett_rrc_T_nonCriticalExtensions_97;
-static gint ett_rrc_T_criticalExtensions_77;
-static gint ett_rrc_PhysicalSharedChannelAllocation_r3_IEs;
-static gint ett_rrc_PhysicalSharedChannelAllocation_r4_IEs;
-static gint ett_rrc_PhysicalSharedChannelAllocation_v690ext_IEs;
-static gint ett_rrc_PhysicalSharedChannelAllocation_v770ext_IEs;
-static gint ett_rrc_PUSCHCapacityRequest;
-static gint ett_rrc_T_allocationConfirmation;
-static gint ett_rrc_T_laterNonCriticalExtensions_27;
-static gint ett_rrc_T_v590NonCriticalExtensions_13;
-static gint ett_rrc_T_nonCriticalExtensions_98;
-static gint ett_rrc_PUSCHCapacityRequest_v590ext;
-static gint ett_rrc_RadioBearerReconfiguration;
-static gint ett_rrc_T_r3_14;
-static gint ett_rrc_T_v3aoNonCriticalExtensions;
-static gint ett_rrc_T_laterNonCriticalExtensions_28;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_07;
-static gint ett_rrc_T_v590NonCriticalExtensions_14;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_06;
-static gint ett_rrc_T_v690NonCriticalExtensions_16;
-static gint ett_rrc_T_v770NonCriticalExtensions_10;
-static gint ett_rrc_T_nonCriticalExtensions_99;
-static gint ett_rrc_T_later_than_r3_12;
-static gint ett_rrc_T_criticalExtensions_78;
-static gint ett_rrc_T_r4_06;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_06;
-static gint ett_rrc_T_v590NonCriticalExtensions_15;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_07;
-static gint ett_rrc_T_v690NonCriticalExtensions_17;
-static gint ett_rrc_T_v770NonCriticalExtensions_11;
-static gint ett_rrc_T_nonCriticalExtensions_100;
-static gint ett_rrc_T_criticalExtensions_79;
-static gint ett_rrc_T_r5_05;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_08;
-static gint ett_rrc_T_v690NonCriticalExtensions_18;
-static gint ett_rrc_T_v770NonCriticalExtensions_12;
-static gint ett_rrc_T_nonCriticalExtensions_101;
-static gint ett_rrc_T_criticalExtensions_80;
-static gint ett_rrc_T_r6_07;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_06;
-static gint ett_rrc_T_v6f0NonCriticalExtensions;
-static gint ett_rrc_T_v770NonCriticalExtensions_13;
-static gint ett_rrc_T_nonCriticalExtensions_102;
-static gint ett_rrc_T_criticalExtensions_81;
-static gint ett_rrc_T_r7_06;
-static gint ett_rrc_T_v780NonCriticalExtensions_05;
-static gint ett_rrc_T_v790NonCriticalExtensions;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_06;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_07;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_103;
-static gint ett_rrc_T_criticalExtensions_82;
-static gint ett_rrc_T_r8_07;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_07;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_08;
-static gint ett_rrc_T_v890NonCriticalExtensions_05;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_09;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_104;
-static gint ett_rrc_T_criticalExtensions_83;
-static gint ett_rrc_T_r9_06;
-static gint ett_rrc_T_v950NonCriticalExtensions_04;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_105;
-static gint ett_rrc_T_criticalExtensions_84;
-static gint ett_rrc_T_r10_06;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_05;
-static gint ett_rrc_T_vaa0NonCriticalExtensions_01;
-static gint ett_rrc_T_vb50NonCriticalExtensions_12;
-static gint ett_rrc_T_nonCriticalExtensions_106;
-static gint ett_rrc_T_criticalExtensions_85;
-static gint ett_rrc_T_r11_07;
-static gint ett_rrc_T_nonCriticalExtensions_107;
-static gint ett_rrc_T_criticalExtensions_86;
-static gint ett_rrc_T_r12_06;
-static gint ett_rrc_T_nonCriticalExtensions_108;
-static gint ett_rrc_T_criticalExtensions_87;
-static gint ett_rrc_T_r13_05;
-static gint ett_rrc_T_nonCriticalExtensions_109;
-static gint ett_rrc_T_criticalExtensions_88;
-static gint ett_rrc_T_r14_03;
-static gint ett_rrc_T_nonCriticalExtensions_110;
-static gint ett_rrc_RadioBearerReconfiguration_vaa0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_r3_IEs;
-static gint ett_rrc_T_dummy_01;
-static gint ett_rrc_T_fdd_22;
-static gint ett_rrc_T_modeSpecificPhysChInfo_03;
-static gint ett_rrc_T_fdd_23;
-static gint ett_rrc_RadioBearerReconfiguration_v3a0ext;
-static gint ett_rrc_RadioBearerReconfiguration_v4b0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v590ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v5d0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_r4_IEs;
-static gint ett_rrc_T_dummy_02;
-static gint ett_rrc_T_fdd_24;
-static gint ett_rrc_T_modeSpecificPhysChInfo_04;
-static gint ett_rrc_T_fdd_25;
-static gint ett_rrc_RadioBearerReconfiguration_r5_IEs;
-static gint ett_rrc_T_specificationMode_11;
-static gint ett_rrc_T_complete_11;
-static gint ett_rrc_T_dummy_03;
-static gint ett_rrc_T_fdd_26;
-static gint ett_rrc_T_preconfiguration_10;
-static gint ett_rrc_T_preConfigMode_10;
-static gint ett_rrc_T_defaultConfig_10;
-static gint ett_rrc_T_modeSpecificPhysChInfo_05;
-static gint ett_rrc_T_fdd_27;
-static gint ett_rrc_RadioBearerReconfiguration_r6_IEs;
-static gint ett_rrc_T_specificationMode_12;
-static gint ett_rrc_T_complete_12;
-static gint ett_rrc_T_preconfiguration_11;
-static gint ett_rrc_T_preConfigMode_11;
-static gint ett_rrc_T_defaultConfig_11;
-static gint ett_rrc_RadioBearerReconfiguration_v690ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v6b0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v6f0ext_IEs;
-static gint ett_rrc_T_specificationMode_13;
-static gint ett_rrc_T_complete_13;
-static gint ett_rrc_RadioBearerReconfiguration_r7_IEs;
-static gint ett_rrc_T_specificationMode_14;
-static gint ett_rrc_T_complete_14;
-static gint ett_rrc_T_preconfiguration_12;
-static gint ett_rrc_T_preConfigMode_12;
-static gint ett_rrc_T_defaultConfig_12;
-static gint ett_rrc_RadioBearerReconfiguration_v770ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v780ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v790ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v7d0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v7f0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v7g0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_r8_IEs;
-static gint ett_rrc_T_specificationMode_15;
-static gint ett_rrc_T_complete_15;
-static gint ett_rrc_T_preconfiguration_13;
-static gint ett_rrc_T_preConfigMode_13;
-static gint ett_rrc_T_defaultConfig_13;
-static gint ett_rrc_RadioBearerReconfiguration_v890ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v8a0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_r9_IEs;
-static gint ett_rrc_T_specificationMode_16;
-static gint ett_rrc_T_complete_16;
-static gint ett_rrc_T_preconfiguration_14;
-static gint ett_rrc_T_preConfigMode_14;
-static gint ett_rrc_T_defaultConfig_14;
-static gint ett_rrc_RadioBearerReconfiguration_v950ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_v9c0ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_r10_IEs;
-static gint ett_rrc_T_specificationMode_17;
-static gint ett_rrc_T_complete_17;
-static gint ett_rrc_T_preconfiguration_15;
-static gint ett_rrc_T_preConfigMode_15;
-static gint ett_rrc_T_defaultConfig_15;
-static gint ett_rrc_RadioBearerReconfiguration_vb50ext_IEs;
-static gint ett_rrc_RadioBearerReconfiguration_r11_IEs;
-static gint ett_rrc_T_specificationMode_18;
-static gint ett_rrc_T_complete_18;
-static gint ett_rrc_T_preconfiguration_16;
-static gint ett_rrc_T_preConfigMode_16;
-static gint ett_rrc_T_defaultConfig_16;
-static gint ett_rrc_RadioBearerReconfiguration_r12_IEs;
-static gint ett_rrc_T_specificationMode_19;
-static gint ett_rrc_T_complete_19;
-static gint ett_rrc_T_preconfiguration_17;
-static gint ett_rrc_T_preConfigMode_17;
-static gint ett_rrc_T_defaultConfig_17;
-static gint ett_rrc_RadioBearerReconfiguration_r13_IEs;
-static gint ett_rrc_T_specificationMode_20;
-static gint ett_rrc_T_complete_20;
-static gint ett_rrc_T_preconfiguration_18;
-static gint ett_rrc_T_preConfigMode_18;
-static gint ett_rrc_T_defaultConfig_18;
-static gint ett_rrc_RadioBearerReconfiguration_r14_IEs;
-static gint ett_rrc_T_specificationMode_21;
-static gint ett_rrc_T_complete_21;
-static gint ett_rrc_T_preconfiguration_19;
-static gint ett_rrc_T_preConfigMode_19;
-static gint ett_rrc_T_defaultConfig_19;
-static gint ett_rrc_RadioBearerReconfiguration_LaterCriticalExtensions_r15_IEs;
-static gint ett_rrc_T_r15_01;
-static gint ett_rrc_T_nonCriticalExtensions_111;
-static gint ett_rrc_T_criticalExtensions_89;
-static gint ett_rrc_RadioBearerReconfiguration_r15_IEs;
-static gint ett_rrc_T_specificationMode_22;
-static gint ett_rrc_T_complete_22;
-static gint ett_rrc_T_preconfiguration_20;
-static gint ett_rrc_T_preConfigMode_20;
-static gint ett_rrc_T_defaultConfig_20;
-static gint ett_rrc_RadioBearerReconfigurationComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_29;
-static gint ett_rrc_T_v770NonCriticalExtensions_14;
-static gint ett_rrc_T_nonCriticalExtensions_112;
-static gint ett_rrc_RadioBearerReconfigurationComplete_v770ext_IEs;
-static gint ett_rrc_RadioBearerReconfigurationFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_30;
-static gint ett_rrc_T_nonCriticalExtensions_113;
-static gint ett_rrc_RadioBearerRelease;
-static gint ett_rrc_T_r3_15;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_06;
-static gint ett_rrc_T_laterNonCriticalExtensions_31;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_08;
-static gint ett_rrc_T_v590NonCriticalExtensions_16;
-static gint ett_rrc_T_v690NonCriticalExtensions_19;
-static gint ett_rrc_T_v770NonCriticalExtensions_15;
-static gint ett_rrc_T_nonCriticalExtensions_114;
-static gint ett_rrc_T_later_than_r3_13;
-static gint ett_rrc_T_criticalExtensions_90;
-static gint ett_rrc_T_r4_07;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_07;
-static gint ett_rrc_T_v590NonCriticalExtensions_17;
-static gint ett_rrc_T_v690NonCriticalExtensions_20;
-static gint ett_rrc_T_v770NonCriticalExtensions_16;
-static gint ett_rrc_T_nonCriticalExtensions_115;
-static gint ett_rrc_T_criticalExtensions_91;
-static gint ett_rrc_T_r5_06;
-static gint ett_rrc_T_v690NonCriticalExtensions_21;
-static gint ett_rrc_T_v770NonCriticalExtensions_17;
-static gint ett_rrc_T_nonCriticalExtensions_116;
-static gint ett_rrc_T_criticalExtensions_92;
-static gint ett_rrc_T_r6_08;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_07;
-static gint ett_rrc_T_v770NonCriticalExtensions_18;
-static gint ett_rrc_T_nonCriticalExtensions_117;
-static gint ett_rrc_T_criticalExtensions_93;
-static gint ett_rrc_T_r7_07;
-static gint ett_rrc_T_v780NonCriticalExtensions_06;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_08;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_09;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_10;
-static gint ett_rrc_T_nonCriticalExtensions_118;
-static gint ett_rrc_T_criticalExtensions_94;
-static gint ett_rrc_T_r8_08;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_09;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_10;
-static gint ett_rrc_T_v890NonCriticalExtensions_06;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_11;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_119;
-static gint ett_rrc_T_criticalExtensions_95;
-static gint ett_rrc_T_r9_07;
-static gint ett_rrc_T_v950NonCriticalExtensions_05;
-static gint ett_rrc_T_v970NonCriticalExtensions_02;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_120;
-static gint ett_rrc_T_criticalExtensions_96;
-static gint ett_rrc_T_r10_07;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_07;
-static gint ett_rrc_T_vb50NonCriticalExtensions_13;
-static gint ett_rrc_T_nonCriticalExtensions_121;
-static gint ett_rrc_T_criticalExtensions_97;
-static gint ett_rrc_T_r11_08;
-static gint ett_rrc_T_nonCriticalExtensions_122;
-static gint ett_rrc_T_criticalExtensions_98;
-static gint ett_rrc_T_r12_07;
-static gint ett_rrc_T_nonCriticalExtensions_123;
-static gint ett_rrc_T_criticalExtensions_99;
-static gint ett_rrc_T_r13_06;
-static gint ett_rrc_T_nonCriticalExtensions_124;
-static gint ett_rrc_RadioBearerRelease_r3_IEs;
-static gint ett_rrc_T_dummy_04;
-static gint ett_rrc_T_fdd_28;
-static gint ett_rrc_T_modeSpecificPhysChInfo_06;
-static gint ett_rrc_T_fdd_29;
-static gint ett_rrc_RadioBearerRelease_v3a0ext;
-static gint ett_rrc_RadioBearerRelease_v4b0ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v590ext_IEs;
-static gint ett_rrc_RadioBearerRelease_r4_IEs;
-static gint ett_rrc_T_dummy_05;
-static gint ett_rrc_T_fdd_30;
-static gint ett_rrc_T_modeSpecificPhysChInfo_07;
-static gint ett_rrc_T_fdd_31;
-static gint ett_rrc_RadioBearerRelease_r5_IEs;
-static gint ett_rrc_T_dummy_06;
-static gint ett_rrc_T_fdd_32;
-static gint ett_rrc_T_modeSpecificPhysChInfo_08;
-static gint ett_rrc_T_fdd_33;
-static gint ett_rrc_RadioBearerRelease_v690ext_IEs;
-static gint ett_rrc_RadioBearerRelease_r6_IEs;
-static gint ett_rrc_RadioBearerRelease_v6b0ext_IEs;
-static gint ett_rrc_RadioBearerRelease_r7_IEs;
-static gint ett_rrc_RadioBearerRelease_v770ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v780ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v7d0ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v7f0ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v7g0ext_IEs;
-static gint ett_rrc_RadioBearerRelease_r8_IEs;
-static gint ett_rrc_RadioBearerRelease_v890ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v8a0ext_IEs;
-static gint ett_rrc_RadioBearerRelease_r9_IEs;
-static gint ett_rrc_RadioBearerRelease_v950ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v970ext_IEs;
-static gint ett_rrc_RadioBearerRelease_v9c0ext_IEs;
-static gint ett_rrc_RadioBearerRelease_r10_IEs;
-static gint ett_rrc_RadioBearerRelease_vb50ext_IEs;
-static gint ett_rrc_RadioBearerRelease_r11_IEs;
-static gint ett_rrc_RadioBearerRelease_r12_IEs;
-static gint ett_rrc_RadioBearerRelease_r13_IEs;
-static gint ett_rrc_RadioBearerRelease_LaterCriticalExtensions_r15_IEs;
-static gint ett_rrc_T_r15_02;
-static gint ett_rrc_T_nonCriticalExtensions_125;
-static gint ett_rrc_T_criticalExtensions_100;
-static gint ett_rrc_RadioBearerRelease_r15_IEs;
-static gint ett_rrc_RadioBearerReleaseComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_32;
-static gint ett_rrc_T_v770NonCriticalExtensions_19;
-static gint ett_rrc_T_nonCriticalExtensions_126;
-static gint ett_rrc_RadioBearerReleaseComplete_v770ext_IEs;
-static gint ett_rrc_RadioBearerReleaseFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_33;
-static gint ett_rrc_T_nonCriticalExtensions_127;
-static gint ett_rrc_RadioBearerSetup;
-static gint ett_rrc_T_r3_16;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_07;
-static gint ett_rrc_T_laterNonCriticalExtensions_34;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_09;
-static gint ett_rrc_T_v590NonCriticalExtensions_18;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_09;
-static gint ett_rrc_T_v690NonCriticalExtensions_22;
-static gint ett_rrc_T_nonCriticalExtensions_128;
-static gint ett_rrc_T_later_than_r3_14;
-static gint ett_rrc_T_criticalExtensions_101;
-static gint ett_rrc_T_r4_08;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_08;
-static gint ett_rrc_T_v590NonCriticalExtensions_19;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_10;
-static gint ett_rrc_T_v690NonCriticalExtensions_23;
-static gint ett_rrc_T_nonCriticalExtensions_129;
-static gint ett_rrc_T_criticalExtensions_102;
-static gint ett_rrc_T_r5_07;
-static gint ett_rrc_T_v5d0NonCriticalExtenstions_11;
-static gint ett_rrc_T_v690NonCriticalExtensions_24;
-static gint ett_rrc_T_nonCriticalExtensions_130;
-static gint ett_rrc_T_criticalExtensions_103;
-static gint ett_rrc_T_r6_09;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_131;
-static gint ett_rrc_T_criticalExtensions_104;
-static gint ett_rrc_T_r7_08;
-static gint ett_rrc_T_v780NonCriticalExtensions_07;
-static gint ett_rrc_T_v820NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_132;
-static gint ett_rrc_T_criticalExtensions_105;
-static gint ett_rrc_T_r8_09;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_10;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_11;
-static gint ett_rrc_T_v890NonCriticalExtensions_07;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_12;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_07;
-static gint ett_rrc_T_nonCriticalExtensions_133;
-static gint ett_rrc_T_criticalExtensions_106;
-static gint ett_rrc_T_r9_08;
-static gint ett_rrc_T_v950NonCriticalExtensions_06;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_134;
-static gint ett_rrc_T_criticalExtensions_107;
-static gint ett_rrc_T_r10_08;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_09;
-static gint ett_rrc_T_vb50NonCriticalExtensions_14;
-static gint ett_rrc_T_nonCriticalExtensions_135;
-static gint ett_rrc_T_criticalExtensions_108;
-static gint ett_rrc_T_r11_09;
-static gint ett_rrc_T_nonCriticalExtensions_136;
-static gint ett_rrc_T_criticalExtensions_109;
-static gint ett_rrc_T_r12_08;
-static gint ett_rrc_T_nonCriticalExtensions_137;
-static gint ett_rrc_T_criticalExtensions_110;
-static gint ett_rrc_T_r13_07;
-static gint ett_rrc_T_nonCriticalExtensions_138;
-static gint ett_rrc_RadioBearerSetup_r3_IEs;
-static gint ett_rrc_T_dummy_07;
-static gint ett_rrc_T_fdd_34;
-static gint ett_rrc_T_modeSpecificPhysChInfo_09;
-static gint ett_rrc_T_fdd_35;
-static gint ett_rrc_RadioBearerSetup_v3a0ext;
-static gint ett_rrc_RadioBearerSetup_v4b0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v590ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v5d0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_r4_IEs;
-static gint ett_rrc_T_dummy_08;
-static gint ett_rrc_T_fdd_36;
-static gint ett_rrc_T_modeSpecificPhysChInfo_10;
-static gint ett_rrc_T_fdd_37;
-static gint ett_rrc_RadioBearerSetup_r5_IEs;
-static gint ett_rrc_T_dummy_09;
-static gint ett_rrc_T_fdd_38;
-static gint ett_rrc_T_modeSpecificPhysChInfo_11;
-static gint ett_rrc_T_fdd_39;
-static gint ett_rrc_RadioBearerSetup_v690ext_IEs;
-static gint ett_rrc_RadioBearerSetup_r6_IEs;
-static gint ett_rrc_T_specificationMode_23;
-static gint ett_rrc_T_complete_23;
-static gint ett_rrc_T_dummy_10;
-static gint ett_rrc_RadioBearerSetup_v6b0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_r7_IEs;
-static gint ett_rrc_T_specificationMode_24;
-static gint ett_rrc_T_complete_24;
-static gint ett_rrc_RadioBearerSetup_r7_add_ext_IEs;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_12;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_13;
-static gint ett_rrc_T_nonCriticalExtensions_139;
-static gint ett_rrc_RadioBearerSetup_v780ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v7d0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v7f0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v7g0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_r8_IEs;
-static gint ett_rrc_RadioBearerSetup_v820ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v890ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v8a0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_r9_IEs;
-static gint ett_rrc_RadioBearerSetup_v950ext_IEs;
-static gint ett_rrc_RadioBearerSetup_v9c0ext_IEs;
-static gint ett_rrc_RadioBearerSetup_r10_IEs;
-static gint ett_rrc_RadioBearerSetup_vb50ext_IEs;
-static gint ett_rrc_RadioBearerSetup_r11_IEs;
-static gint ett_rrc_RadioBearerSetup_r12_IEs;
-static gint ett_rrc_RadioBearerSetup_r13_IEs;
-static gint ett_rrc_RadioBearerSetup_LaterCriticalExtensions_r15_IEs;
-static gint ett_rrc_T_r15_03;
-static gint ett_rrc_T_nonCriticalExtensions_140;
-static gint ett_rrc_T_criticalExtensions_111;
-static gint ett_rrc_RadioBearerSetup_r15_IEs;
-static gint ett_rrc_RadioBearerSetupComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_35;
-static gint ett_rrc_T_v770NonCriticalExtensions_20;
-static gint ett_rrc_T_nonCriticalExtensions_141;
-static gint ett_rrc_RadioBearerSetupComplete_v770ext_IEs;
-static gint ett_rrc_RadioBearerSetupFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_36;
-static gint ett_rrc_T_nonCriticalExtensions_142;
-static gint ett_rrc_RRCConnectionReject;
-static gint ett_rrc_T_r3_17;
-static gint ett_rrc_T_laterNonCriticalExtensions_37;
-static gint ett_rrc_T_v690NonCriticalExtensions_25;
-static gint ett_rrc_T_v6f0NonCriticalExtensions_01;
-static gint ett_rrc_T_v860NonCriticalExtensions_10;
-static gint ett_rrc_T_va40NonCriticalExtensions_05;
-static gint ett_rrc_T_vb50NonCriticalExtensions_15;
-static gint ett_rrc_T_nonCriticalExtensions_143;
-static gint ett_rrc_T_later_than_r3_15;
-static gint ett_rrc_T_criticalExtensions_112;
-static gint ett_rrc_RRCConnectionReject_r3_IEs;
-static gint ett_rrc_RRCConnectionReject_v690ext_IEs;
-static gint ett_rrc_RRCConnectionReject_v6f0ext_IEs;
-static gint ett_rrc_RRCConnectionReject_v860ext_IEs;
-static gint ett_rrc_RRCConnectionReject_va40ext_IEs;
-static gint ett_rrc_RRCConnectionReject_vb50ext_IEs;
-static gint ett_rrc_RRCConnectionRelease;
-static gint ett_rrc_T_r3_18;
-static gint ett_rrc_T_laterNonCriticalExtensions_38;
-static gint ett_rrc_T_v690NonCriticalExtensions_26;
-static gint ett_rrc_T_v770NonCriticalExtensions_21;
-static gint ett_rrc_T_v860NonCriticalExtensions_11;
-static gint ett_rrc_T_va40NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_144;
-static gint ett_rrc_T_later_than_r3_16;
-static gint ett_rrc_T_criticalExtensions_113;
-static gint ett_rrc_T_r4_09;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_09;
-static gint ett_rrc_T_v690NonCriticalExtensions_27;
-static gint ett_rrc_T_v770NonCriticalExtensions_22;
-static gint ett_rrc_T_v860NonCriticalExtensions_12;
-static gint ett_rrc_T_va40NonCriticalExtensions_07;
-static gint ett_rrc_T_vb50NonCriticalExtensions_16;
-static gint ett_rrc_T_nonCriticalExtensions_145;
-static gint ett_rrc_T_criticalExtensions_114;
-static gint ett_rrc_RRCConnectionRelease_r3_IEs;
-static gint ett_rrc_RRCConnectionRelease_r4_IEs;
-static gint ett_rrc_RRCConnectionRelease_v690ext_IEs;
-static gint ett_rrc_RRCConnectionRelease_v770ext_IEs;
-static gint ett_rrc_RRCConnectionRelease_v860ext_IEs;
-static gint ett_rrc_RRCConnectionRelease_va40ext_IEs;
-static gint ett_rrc_RRCConnectionRelease_vb50ext_IEs;
-static gint ett_rrc_RRCConnectionRelease_CCCH;
-static gint ett_rrc_T_r3_19;
-static gint ett_rrc_T_laterNonCriticalExtensions_39;
-static gint ett_rrc_T_v690NonCriticalExtensions_28;
-static gint ett_rrc_T_v860NonCriticalExtensions_13;
-static gint ett_rrc_T_va40NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_146;
-static gint ett_rrc_T_later_than_r3_17;
-static gint ett_rrc_T_criticalExtensions_115;
-static gint ett_rrc_T_r4_10;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_10;
-static gint ett_rrc_T_v690NonCriticalExtensions_29;
-static gint ett_rrc_T_v860NonCriticalExtensions_14;
-static gint ett_rrc_T_va40NonCriticalExtensions_09;
-static gint ett_rrc_T_nonCriticalExtensions_147;
-static gint ett_rrc_T_criticalExtensions_116;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxURNTI_Group_OF_GroupReleaseInformation;
-static gint ett_rrc_T_criticalExtensions_117;
-static gint ett_rrc_T_r5_08;
-static gint ett_rrc_T_v690NonCriticalExtensions_30;
-static gint ett_rrc_T_v860NonCriticalExtensions_15;
-static gint ett_rrc_T_va40NonCriticalExtensions_10;
-static gint ett_rrc_T_vd20NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_148;
-static gint ett_rrc_T_criticalExtensions_118;
-static gint ett_rrc_RRCConnectionRelease_CCCH_r3_IEs;
-static gint ett_rrc_RRCConnectionRelease_CCCH_r4_IEs;
-static gint ett_rrc_RRCConnectionReleaseComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_40;
-static gint ett_rrc_T_nonCriticalExtensions_149;
-static gint ett_rrc_RRCConnectionRequest;
-static gint ett_rrc_T_v3d0NonCriticalExtensions;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_10;
-static gint ett_rrc_T_v590NonCriticalExtensions_20;
-static gint ett_rrc_T_v690NonCriticalExtensions_31;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_09;
-static gint ett_rrc_T_v6e0NonCriticalExtensions_01;
-static gint ett_rrc_T_v770NonCriticalExtensions_23;
-static gint ett_rrc_T_v7b0NonCriticalExtensions_01;
-static gint ett_rrc_T_v860NonCriticalExtensions_16;
-static gint ett_rrc_T_v7e0NonCriticalExtensions_01;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_14;
-static gint ett_rrc_T_v920NonCriticalExtensions_02;
-static gint ett_rrc_T_v940NonCriticalExtensions;
-static gint ett_rrc_RRCConnectionRequest_v3d0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v4b0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v590ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v690ext_IEs;
-static gint ett_rrc_T_domainIndicator;
-static gint ett_rrc_T_cs_domain;
-static gint ett_rrc_RRCConnectionRequest_v6b0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v6e0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v770ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v7b0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v7e0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v7g0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v860ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v920ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v940ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_v9b0ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_NonCriticalExts_va40_IEs;
-static gint ett_rrc_T_v9b0NonCriticalExtensions;
-static gint ett_rrc_T_vb50NonCriticalExtensions_17;
-static gint ett_rrc_T_vc50NonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_150;
-static gint ett_rrc_RRCConnectionRequest_va40ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_vb50ext_IEs;
-static gint ett_rrc_RRCConnectionRequest_vc50ext_IEs;
-static gint ett_rrc_RRCConnectionSetup;
-static gint ett_rrc_T_r3_20;
-static gint ett_rrc_T_laterNonCriticalExtensions_41;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_11;
-static gint ett_rrc_T_v590NonCriticalExtensions_21;
-static gint ett_rrc_T_v690NonCriticalExtensions_32;
-static gint ett_rrc_T_nonCriticalExtensions_151;
-static gint ett_rrc_T_later_than_r3_18;
-static gint ett_rrc_T_criticalExtensions_119;
-static gint ett_rrc_T_r4_11;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_11;
-static gint ett_rrc_T_v590NonCriticalExtensions_22;
-static gint ett_rrc_T_v690NonCriticalExtensions_33;
-static gint ett_rrc_T_nonCriticalExtensions_152;
-static gint ett_rrc_T_criticalExtensions_120;
-static gint ett_rrc_T_r5_09;
-static gint ett_rrc_T_v690NonCriticalExtensions_34;
-static gint ett_rrc_T_nonCriticalExtensions_153;
-static gint ett_rrc_T_criticalExtensions_121;
-static gint ett_rrc_T_r6_10;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_10;
-static gint ett_rrc_T_nonCriticalExtensions_154;
-static gint ett_rrc_T_criticalExtensions_122;
-static gint ett_rrc_T_r7_09;
-static gint ett_rrc_T_v780NonCriticalExtensions_08;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_11;
-static gint ett_rrc_T_nonCriticalExtensions_155;
-static gint ett_rrc_T_criticalExtensions_123;
-static gint ett_rrc_T_r8_10;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_12;
-static gint ett_rrc_T_v890NonCriticalExtensions_08;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_156;
-static gint ett_rrc_T_criticalExtensions_124;
-static gint ett_rrc_T_r9_09;
-static gint ett_rrc_T_v950NonCriticalExtensions_07;
-static gint ett_rrc_T_nonCriticalExtensions_157;
-static gint ett_rrc_T_criticalExtensions_125;
-static gint ett_rrc_T_r10_09;
-static gint ett_rrc_T_vaj0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_158;
-static gint ett_rrc_T_criticalExtensions_126;
-static gint ett_rrc_T_r11_10;
-static gint ett_rrc_T_vaj0NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_159;
-static gint ett_rrc_T_criticalExtensions_127;
-static gint ett_rrc_T_r12_09;
-static gint ett_rrc_T_nonCriticalExtensions_160;
-static gint ett_rrc_T_criticalExtensions_128;
-static gint ett_rrc_RRCConnectionSetup_r3_IEs;
-static gint ett_rrc_RRCConnectionSetup_v4b0ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_v590ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_r4_IEs;
-static gint ett_rrc_RRCConnectionSetup_r5_IEs;
-static gint ett_rrc_T_specificationMode_25;
-static gint ett_rrc_T_complete_25;
-static gint ett_rrc_T_preconfiguration_21;
-static gint ett_rrc_T_preConfigMode_21;
-static gint ett_rrc_T_defaultConfig_21;
-static gint ett_rrc_RRCConnectionSetup_v690ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_r6_IEs;
-static gint ett_rrc_T_specificationMode_26;
-static gint ett_rrc_T_complete_26;
-static gint ett_rrc_T_preconfiguration_22;
-static gint ett_rrc_T_preConfigMode_22;
-static gint ett_rrc_T_defaultConfig_22;
-static gint ett_rrc_RRCConnectionSetup_v6b0ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_r7_IEs;
-static gint ett_rrc_T_specificationMode_27;
-static gint ett_rrc_T_complete_27;
-static gint ett_rrc_T_preconfiguration_23;
-static gint ett_rrc_T_preConfigMode_23;
-static gint ett_rrc_T_defaultConfig_23;
-static gint ett_rrc_RRCConnectionSetup_v780ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_v7d0ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_r8_IEs;
-static gint ett_rrc_T_specificationMode_28;
-static gint ett_rrc_T_complete_28;
-static gint ett_rrc_T_preconfiguration_24;
-static gint ett_rrc_T_preConfigMode_24;
-static gint ett_rrc_T_defaultConfig_24;
-static gint ett_rrc_RRCConnectionSetup_v890ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_v8a0ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_r9_IEs;
-static gint ett_rrc_T_specificationMode_29;
-static gint ett_rrc_T_complete_29;
-static gint ett_rrc_T_preconfiguration_25;
-static gint ett_rrc_T_preConfigMode_25;
-static gint ett_rrc_T_defaultConfig_25;
-static gint ett_rrc_RRCConnectionSetup_v950ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_r10_IEs;
-static gint ett_rrc_T_specificationMode_30;
-static gint ett_rrc_T_complete_30;
-static gint ett_rrc_T_preconfiguration_26;
-static gint ett_rrc_T_preConfigMode_26;
-static gint ett_rrc_T_defaultConfig_26;
-static gint ett_rrc_RRCConnectionSetup_vaj0ext_IEs;
-static gint ett_rrc_RRCConnectionSetup_r11_IEs;
-static gint ett_rrc_T_specificationMode_31;
-static gint ett_rrc_T_complete_31;
-static gint ett_rrc_T_preconfiguration_27;
-static gint ett_rrc_T_preConfigMode_27;
-static gint ett_rrc_T_defaultConfig_27;
-static gint ett_rrc_RRCConnectionSetup_r12_IEs;
-static gint ett_rrc_T_specificationMode_32;
-static gint ett_rrc_T_complete_32;
-static gint ett_rrc_T_preconfiguration_28;
-static gint ett_rrc_T_preConfigMode_28;
-static gint ett_rrc_T_defaultConfig_28;
-static gint ett_rrc_RRCConnectionSetupComplete;
-static gint ett_rrc_T_v370NonCriticalExtensions;
-static gint ett_rrc_T_v380NonCriticalExtensions;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_08;
-static gint ett_rrc_T_laterNonCriticalExtensions_42;
-static gint ett_rrc_T_v3g0NonCriticalExtensions_01;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_12;
-static gint ett_rrc_T_v590NonCriticalExtensions_23;
-static gint ett_rrc_T_v5c0NonCriticalExtensions;
-static gint ett_rrc_T_v690NonCriticalExtensions_35;
-static gint ett_rrc_T_v770NonCriticalExtensions_24;
-static gint ett_rrc_T_va40NonCriticalExtensions_11;
-static gint ett_rrc_T_vb50NonCriticalExtensions_18;
-static gint ett_rrc_T_nonCriticalExtensions_161;
-static gint ett_rrc_RRCConnectionSetupComplete_v370ext;
-static gint ett_rrc_RRCConnectionSetupComplete_v380ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v3a0ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v3g0ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_r3_add_ext_IEs;
-static gint ett_rrc_T_v680NonCriticalExtensions;
-static gint ett_rrc_T_v7e0NonCriticalExtensions_02;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_13;
-static gint ett_rrc_T_va40NonCriticalExtensions_12;
-static gint ett_rrc_T_nonCriticalExtensions_162;
-static gint ett_rrc_RRCConnectionSetupComplete_v4b0ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v590ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v5c0ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v650ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v680ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v690ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v770ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v7e0ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_v7f0ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_va40ext_IEs;
-static gint ett_rrc_RRCConnectionSetupCompleteBand_va40ext_IEs;
-static gint ett_rrc_RRCConnectionSetupComplete_vb50ext_IEs;
-static gint ett_rrc_RRC_FailureInfo;
-static gint ett_rrc_T_r3_21;
-static gint ett_rrc_T_laterNonCriticalExtensions_43;
-static gint ett_rrc_T_nonCriticalExtensions_163;
-static gint ett_rrc_T_criticalExtensions_129;
-static gint ett_rrc_RRC_FailureInfo_r3_IEs;
-static gint ett_rrc_RRCStatus;
-static gint ett_rrc_T_laterNonCriticalExtensions_44;
-static gint ett_rrc_T_nonCriticalExtensions_164;
-static gint ett_rrc_SecurityModeCommand;
-static gint ett_rrc_T_r3_22;
-static gint ett_rrc_T_laterNonCriticalExtensions_45;
-static gint ett_rrc_T_nonCriticalExtensions_165;
-static gint ett_rrc_T_later_than_r3_19;
-static gint ett_rrc_T_criticalExtensions_130;
-static gint ett_rrc_T_r7_10;
-static gint ett_rrc_T_nonCriticalExtensions_166;
-static gint ett_rrc_T_criticalExtensions_131;
-static gint ett_rrc_SecurityModeCommand_r3_IEs;
-static gint ett_rrc_SecurityModeCommand_r7_IEs;
-static gint ett_rrc_SecurityModeComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_46;
-static gint ett_rrc_T_nonCriticalExtensions_167;
-static gint ett_rrc_SecurityModeFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_47;
-static gint ett_rrc_T_nonCriticalExtensions_168;
-static gint ett_rrc_SignallingConnectionRelease;
-static gint ett_rrc_T_r3_23;
-static gint ett_rrc_T_laterNonCriticalExtensions_48;
-static gint ett_rrc_T_va40NonCriticalExtensions_13;
-static gint ett_rrc_T_nonCriticalExtensions_169;
-static gint ett_rrc_T_later_than_r3_20;
-static gint ett_rrc_T_criticalExtensions_132;
-static gint ett_rrc_SignallingConnectionRelease_r3_IEs;
-static gint ett_rrc_SignallingConnectionRelease_va40ext_IEs;
-static gint ett_rrc_SignallingConnectionReleaseIndication;
-static gint ett_rrc_T_laterNonCriticalExtensions_49;
-static gint ett_rrc_T_v860nonCriticalExtentions;
-static gint ett_rrc_T_nonCriticalExtensions_170;
-static gint ett_rrc_SignallingConnectionReleaseIndication_v860ext;
-static gint ett_rrc_SystemInformation_BCH;
-static gint ett_rrc_T_payload;
-static gint ett_rrc_T_lastAndFirst;
-static gint ett_rrc_T_lastAndComplete;
-static gint ett_rrc_T_lastAndCompleteAndFirst;
-static gint ett_rrc_T_completeAndFirst;
-static gint ett_rrc_SystemInformation2_BCH;
-static gint ett_rrc_T_segmentCombination;
-static gint ett_rrc_T_combination5;
-static gint ett_rrc_T_combination6;
-static gint ett_rrc_T_combination7;
-static gint ett_rrc_T_combination9;
-static gint ett_rrc_SystemInformation_FACH;
-static gint ett_rrc_T_payload_01;
-static gint ett_rrc_T_lastAndFirst_01;
-static gint ett_rrc_T_lastAndComplete_01;
-static gint ett_rrc_T_lastAndCompleteAndFirst_01;
-static gint ett_rrc_T_completeAndFirst_01;
-static gint ett_rrc_FirstSegment;
-static gint ett_rrc_FirstSegment2;
-static gint ett_rrc_FirstSegmentShort;
-static gint ett_rrc_FirstSegmentShort2;
-static gint ett_rrc_SubsequentSegment;
-static gint ett_rrc_SubsequentSegment2;
-static gint ett_rrc_LastSegment;
-static gint ett_rrc_LastSegment2;
-static gint ett_rrc_LastSegmentShort;
-static gint ett_rrc_LastSegmentShort2;
-static gint ett_rrc_CompleteSIB_List;
-static gint ett_rrc_CompleteSIB2_List;
-static gint ett_rrc_CompleteSIB;
-static gint ett_rrc_CompleteSIB2;
-static gint ett_rrc_CompleteSIBshort;
-static gint ett_rrc_CompleteSIBshort2;
-static gint ett_rrc_SystemInformationChangeIndication;
-static gint ett_rrc_T_laterNonCriticalExtensions_50;
-static gint ett_rrc_T_v860NonCriticalExtensions_17;
-static gint ett_rrc_T_vc50NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_171;
-static gint ett_rrc_SystemInformationChangeIndication_v860ext_IEs;
-static gint ett_rrc_SystemInformationChangeIndication_vc50ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration;
-static gint ett_rrc_T_r3_24;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_09;
-static gint ett_rrc_T_laterNonCriticalExtensions_51;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_13;
-static gint ett_rrc_T_v590NonCriticalExtensions_24;
-static gint ett_rrc_T_v690NonCriticalExtensions_36;
-static gint ett_rrc_T_v770NonCriticalExtensions_25;
-static gint ett_rrc_T_nonCriticalExtensions_172;
-static gint ett_rrc_T_later_than_r3_21;
-static gint ett_rrc_T_criticalExtensions_133;
-static gint ett_rrc_T_r4_12;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_12;
-static gint ett_rrc_T_v590NonCriticalExtensions_25;
-static gint ett_rrc_T_v690NonCriticalExtensions_37;
-static gint ett_rrc_T_v770NonCriticalExtensions_26;
-static gint ett_rrc_T_nonCriticalExtensions_173;
-static gint ett_rrc_T_criticalExtensions_134;
-static gint ett_rrc_T_r5_10;
-static gint ett_rrc_T_v690NonCriticalExtensions_38;
-static gint ett_rrc_T_v770NonCriticalExtensions_27;
-static gint ett_rrc_T_nonCriticalExtensions_174;
-static gint ett_rrc_T_criticalExtensions_135;
-static gint ett_rrc_T_r6_11;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_11;
-static gint ett_rrc_T_v770NonCriticalExtensions_28;
-static gint ett_rrc_T_nonCriticalExtensions_175;
-static gint ett_rrc_T_criticalExtensions_136;
-static gint ett_rrc_T_r7_11;
-static gint ett_rrc_T_v780NonCriticalExtensions_09;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_13;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_14;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_15;
-static gint ett_rrc_T_nonCriticalExtensions_176;
-static gint ett_rrc_T_criticalExtensions_137;
-static gint ett_rrc_T_r8_11;
-static gint ett_rrc_T_v7d0NonCriticalExtensions_14;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_15;
-static gint ett_rrc_T_v890NonCriticalExtensions_09;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_16;
-static gint ett_rrc_T_v8a0NonCriticalExtensions_09;
-static gint ett_rrc_T_nonCriticalExtensions_177;
-static gint ett_rrc_T_criticalExtensions_138;
-static gint ett_rrc_T_r9_10;
-static gint ett_rrc_T_v950NonCriticalExtensions_08;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_10;
-static gint ett_rrc_T_nonCriticalExtensions_178;
-static gint ett_rrc_T_criticalExtensions_139;
-static gint ett_rrc_T_r10_10;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_11;
-static gint ett_rrc_T_vb50NonCriticalExtensions_19;
-static gint ett_rrc_T_nonCriticalExtensions_179;
-static gint ett_rrc_T_criticalExtensions_140;
-static gint ett_rrc_T_r11_11;
-static gint ett_rrc_T_nonCriticalExtensions_180;
-static gint ett_rrc_T_criticalExtensions_141;
-static gint ett_rrc_T_r12_10;
-static gint ett_rrc_T_nonCriticalExtensions_181;
-static gint ett_rrc_T_criticalExtensions_142;
-static gint ett_rrc_T_r13_08;
-static gint ett_rrc_T_nonCriticalExtensions_182;
-static gint ett_rrc_T_criticalExtensions_143;
-static gint ett_rrc_TransportChannelReconfiguration_r3_IEs;
-static gint ett_rrc_T_dummy_11;
-static gint ett_rrc_T_fdd_40;
-static gint ett_rrc_T_modeSpecificPhysChInfo_12;
-static gint ett_rrc_T_fdd_41;
-static gint ett_rrc_TransportChannelReconfiguration_v3a0ext;
-static gint ett_rrc_TransportChannelReconfiguration_v4b0ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v590ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r4_IEs;
-static gint ett_rrc_T_dummy_12;
-static gint ett_rrc_T_fdd_42;
-static gint ett_rrc_T_modeSpecificPhysChInfo_13;
-static gint ett_rrc_T_fdd_43;
-static gint ett_rrc_TransportChannelReconfiguration_r5_IEs;
-static gint ett_rrc_T_dummy_13;
-static gint ett_rrc_T_fdd_44;
-static gint ett_rrc_T_modeSpecificPhysChInfo_14;
-static gint ett_rrc_T_fdd_45;
-static gint ett_rrc_TransportChannelReconfiguration_v690ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r6_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v6b0ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r7_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v770ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v780ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v7d0ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v7f0ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v7g0ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r8_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v890ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v8a0ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r9_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v950ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_v9c0ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r10_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_vb50ext_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r11_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r12_IEs;
-static gint ett_rrc_TransportChannelReconfiguration_r13_IEs;
-static gint ett_rrc_TransportChannelReconfigurationComplete;
-static gint ett_rrc_T_laterNonCriticalExtensions_52;
-static gint ett_rrc_T_v770NonCriticalExtensions_29;
-static gint ett_rrc_T_nonCriticalExtensions_183;
-static gint ett_rrc_TransportChannelReconfigurationComplete_v770ext_IEs;
-static gint ett_rrc_TransportChannelReconfigurationFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_53;
-static gint ett_rrc_T_nonCriticalExtensions_184;
-static gint ett_rrc_TransportFormatCombinationControl;
-static gint ett_rrc_T_modeSpecificInfo_16;
-static gint ett_rrc_T_tdd_10;
-static gint ett_rrc_T_laterNonCriticalExtensions_54;
-static gint ett_rrc_T_v820NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_185;
-static gint ett_rrc_TransportFormatCombinationControl_v820ext_IEs;
-static gint ett_rrc_TransportFormatCombinationControlFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_55;
-static gint ett_rrc_T_nonCriticalExtensions_186;
-static gint ett_rrc_UECapabilityEnquiry;
-static gint ett_rrc_T_r3_25;
-static gint ett_rrc_T_laterNonCriticalExtensions_56;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_14;
-static gint ett_rrc_T_v590NonCriticalExtensions_26;
-static gint ett_rrc_T_v770NonCriticalExtensions_30;
-static gint ett_rrc_T_v860NonCriticalExtensions_18;
-static gint ett_rrc_T_vaj0NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_187;
-static gint ett_rrc_T_later_than_r3_22;
-static gint ett_rrc_T_criticalExtensions_144;
-static gint ett_rrc_UECapabilityEnquiry_r3_IEs;
-static gint ett_rrc_UECapabilityEnquiry_v4b0ext_IEs;
-static gint ett_rrc_UECapabilityEnquiry_v590ext_IEs;
-static gint ett_rrc_UECapabilityEnquiry_v770ext_IEs;
-static gint ett_rrc_UECapabilityEnquiry_v860ext_IEs;
-static gint ett_rrc_UECapabilityEnquiry_vaj0ext_IEs;
-static gint ett_rrc_UECapabilityInformation;
-static gint ett_rrc_T_v370NonCriticalExtensions_01;
-static gint ett_rrc_T_v380NonCriticalExtensions_01;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_10;
-static gint ett_rrc_T_laterNonCriticalExtensions_57;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_15;
-static gint ett_rrc_T_v590NonCriticalExtensions_27;
-static gint ett_rrc_T_v5c0NonCriticalExtensions_01;
-static gint ett_rrc_T_v690NonCriticalExtensions_39;
-static gint ett_rrc_T_nonCriticalExtensions_188;
-static gint ett_rrc_UECapabilityInformation_v370ext;
-static gint ett_rrc_UECapabilityInformation_v380ext_IEs;
-static gint ett_rrc_UECapabilityInformation_v3a0ext_IEs;
-static gint ett_rrc_UECapabilityInformation_r3_add_ext_IEs;
-static gint ett_rrc_T_v680NonCriticalExtensions_01;
-static gint ett_rrc_T_v7e0NonCriticalExtensions_03;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_16;
-static gint ett_rrc_T_va40NonCriticalExtensions_14;
-static gint ett_rrc_T_nonCriticalExtensions_189;
-static gint ett_rrc_UECapabilityInformation_v4b0ext;
-static gint ett_rrc_UECapabilityInformation_v590ext;
-static gint ett_rrc_UECapabilityInformation_v5c0ext;
-static gint ett_rrc_UECapabilityInformation_v650ext_IEs;
-static gint ett_rrc_UECapabilityInformation_v680ext_IEs;
-static gint ett_rrc_UECapabilityInformation_v690ext_IEs;
-static gint ett_rrc_UECapabilityInformation_v7e0ext_IEs;
-static gint ett_rrc_UECapabilityInformation_v7f0ext_IEs;
-static gint ett_rrc_UECapabilityInformation_va40ext_IEs;
-static gint ett_rrc_UECapabilityInformationConfirm;
-static gint ett_rrc_T_r3_26;
-static gint ett_rrc_T_laterNonCriticalExtensions_58;
-static gint ett_rrc_T_v770NonCriticalExtensions_31;
-static gint ett_rrc_T_nonCriticalExtensions_190;
-static gint ett_rrc_T_later_than_r3_23;
-static gint ett_rrc_T_criticalExtensions_145;
-static gint ett_rrc_UECapabilityInformationConfirm_r3_IEs;
-static gint ett_rrc_UECapabilityInformationConfirm_v770ext_IEs;
-static gint ett_rrc_UplinkDirectTransfer;
-static gint ett_rrc_T_laterNonCriticalExtensions_59;
-static gint ett_rrc_T_v690NonCriticalExtensions_40;
-static gint ett_rrc_T_v7g0NonCriticalExtensions_17;
-static gint ett_rrc_T_vb50NonCriticalExtensions_20;
-static gint ett_rrc_T_vc50NonCriticalExtensions_07;
-static gint ett_rrc_T_nonCriticalExtensions_191;
-static gint ett_rrc_UplinkDirectTransfer_v690ext_IEs;
-static gint ett_rrc_UplinkDirectTransfer_v7g0ext_IEs;
-static gint ett_rrc_UplinkDirectTransfer_vb50ext_IEs;
-static gint ett_rrc_UplinkDirectTransfer_vc50ext_IEs;
-static gint ett_rrc_UplinkPhysicalChannelControl;
-static gint ett_rrc_T_r3_27;
-static gint ett_rrc_T_laterNonCriticalExtensions_60;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_16;
-static gint ett_rrc_T_noncriticalExtensions;
-static gint ett_rrc_T_later_than_r3_24;
-static gint ett_rrc_T_criticalExtensions_146;
-static gint ett_rrc_T_r4_13;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_13;
-static gint ett_rrc_T_v690NonCriticalExtensions_41;
-static gint ett_rrc_T_nonCriticalExtensions_192;
-static gint ett_rrc_T_criticalExtensions_147;
-static gint ett_rrc_T_r5_11;
-static gint ett_rrc_T_v690NonCriticalExtensions_42;
-static gint ett_rrc_T_v6a0NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_193;
-static gint ett_rrc_T_criticalExtensions_148;
-static gint ett_rrc_T_r7_12;
-static gint ett_rrc_T_nonCriticalExtensions_194;
-static gint ett_rrc_T_criticalExtensions_149;
-static gint ett_rrc_UplinkPhysicalChannelControl_r3_IEs;
-static gint ett_rrc_UplinkPhysicalChannelControl_v4b0ext_IEs;
-static gint ett_rrc_UplinkPhysicalChannelControl_r4_IEs;
-static gint ett_rrc_T_tddOption;
-static gint ett_rrc_T_tdd384_09;
-static gint ett_rrc_T_tdd128_09;
-static gint ett_rrc_UplinkPhysicalChannelControl_r5_IEs;
-static gint ett_rrc_T_tddOption_01;
-static gint ett_rrc_T_tdd384_10;
-static gint ett_rrc_T_tdd128_10;
-static gint ett_rrc_UplinkPhysicalChannelControl_v690ext_IEs;
-static gint ett_rrc_UplinkPhysicalChannelControl_v6a0ext_IEs;
-static gint ett_rrc_UplinkPhysicalChannelControl_r7_IEs;
-static gint ett_rrc_T_tddOption_02;
-static gint ett_rrc_T_tdd384_11;
-static gint ett_rrc_T_tdd768_06;
-static gint ett_rrc_T_tdd128_11;
-static gint ett_rrc_URAUpdate;
-static gint ett_rrc_T_laterNonCriticalExtensions_61;
-static gint ett_rrc_T_v770NonCriticalExtensions_32;
-static gint ett_rrc_T_v860NonCriticalExtensions_19;
-static gint ett_rrc_T_va40NonCriticalExtensions_15;
-static gint ett_rrc_T_nonCriticalExtensions_195;
-static gint ett_rrc_URAUpdate_r3_add_ext_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_196;
-static gint ett_rrc_UraUpdate_v770ext_IEs;
-static gint ett_rrc_URAUpdate_v7e0ext_IEs;
-static gint ett_rrc_URAUpdate_v860ext_IEs;
-static gint ett_rrc_URAUpdate_va40ext_IEs;
-static gint ett_rrc_URAUpdateConfirm;
-static gint ett_rrc_T_r3_28;
-static gint ett_rrc_T_laterNonCriticalExtensions_62;
-static gint ett_rrc_T_v690NonCriticalExtensions_43;
-static gint ett_rrc_T_nonCriticalExtensions_197;
-static gint ett_rrc_T_later_than_r3_25;
-static gint ett_rrc_T_criticalExtensions_150;
-static gint ett_rrc_T_r5_12;
-static gint ett_rrc_T_v690NonCriticalExtensions_44;
-static gint ett_rrc_T_nonCriticalExtensions_198;
-static gint ett_rrc_T_criticalExtensions_151;
-static gint ett_rrc_T_r7_13;
-static gint ett_rrc_T_v860NonCriticalExtensions_20;
-static gint ett_rrc_T_nonCriticalExtensions_199;
-static gint ett_rrc_T_criticalExtensions_152;
-static gint ett_rrc_URAUpdateConfirm_r3_IEs;
-static gint ett_rrc_URAUpdateConfirm_r5_IEs;
-static gint ett_rrc_URAUpdateConfirm_v690ext_IEs;
-static gint ett_rrc_URAUpdateConfirm_r7_IEs;
-static gint ett_rrc_URAUpdateConfirm_v860ext_IEs;
-static gint ett_rrc_URAUpdateConfirm_CCCH;
-static gint ett_rrc_T_r3_29;
-static gint ett_rrc_T_laterNonCriticalExtensions_63;
-static gint ett_rrc_T_v690NonCriticalExtensions_45;
-static gint ett_rrc_T_v860NonCriticalExtensions_21;
-static gint ett_rrc_T_nonCriticalExtensions_200;
-static gint ett_rrc_T_later_than_r3_26;
-static gint ett_rrc_T_criticalExtensions_153;
-static gint ett_rrc_URAUpdateConfirm_CCCH_r3_IEs;
-static gint ett_rrc_UTRANMobilityInformation;
-static gint ett_rrc_T_r3_30;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_11;
-static gint ett_rrc_T_laterNonCriticalExtensions_64;
-static gint ett_rrc_T_v690NonCriticalExtensions_46;
-static gint ett_rrc_T_v860NonCriticalExtentions;
-static gint ett_rrc_T_nonCriticalExtensions_201;
-static gint ett_rrc_T_later_than_r3_27;
-static gint ett_rrc_T_criticalExtensions_154;
-static gint ett_rrc_T_r5_13;
-static gint ett_rrc_T_v690NonCriticalExtensions_47;
-static gint ett_rrc_T_v860NonCriticalExtentions_01;
-static gint ett_rrc_T_nonCriticalExtensions_202;
-static gint ett_rrc_T_criticalExtensions_155;
-static gint ett_rrc_T_r7_14;
-static gint ett_rrc_T_v860NonCriticalExtensions_22;
-static gint ett_rrc_T_vb50NonCriticalExtentions;
-static gint ett_rrc_T_nonCriticalExtensions_203;
-static gint ett_rrc_T_criticalExtensions_156;
-static gint ett_rrc_T_r11_12;
-static gint ett_rrc_T_nonCriticalExtensions_204;
-static gint ett_rrc_T_criticalExtensions_157;
-static gint ett_rrc_T_r12_11;
-static gint ett_rrc_T_nonCriticalExtensions_205;
-static gint ett_rrc_T_criticalExtensions_158;
-static gint ett_rrc_T_r13_09;
-static gint ett_rrc_T_nonCriticalExtensions_206;
-static gint ett_rrc_T_criticalExtensions_159;
-static gint ett_rrc_UTRANMobilityInformation_r3_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_207;
-static gint ett_rrc_UTRANMobilityInformation_v3a0ext_IEs;
-static gint ett_rrc_UTRANMobilityInformation_r5_IEs;
-static gint ett_rrc_UtranMobilityInformation_v690ext_IEs;
-static gint ett_rrc_UTRANMobilityInformation_r7_IEs;
-static gint ett_rrc_UTRANMobilityInformation_v860ext1_IEs;
-static gint ett_rrc_UTRANMobilityInformation_v860ext2_IEs;
-static gint ett_rrc_UTRANMobilityInformation_vb50ext_IEs;
-static gint ett_rrc_UTRANMobilityInformation_r11_IEs;
-static gint ett_rrc_UTRANMobilityInformation_r12_IEs;
-static gint ett_rrc_UTRANMobilityInformation_r13_IEs;
-static gint ett_rrc_UTRANMobilityInformationConfirm;
-static gint ett_rrc_T_laterNonCriticalExtensions_65;
-static gint ett_rrc_T_v770NonCriticalExtension_01;
-static gint ett_rrc_T_va40NonCriticalExtensions_16;
-static gint ett_rrc_T_nonCriticalExtensions_208;
-static gint ett_rrc_UTRANMobilityInformationConfirm_v770ext_IEs;
-static gint ett_rrc_UTRANMobilityInformationConfirm_va40ext_IEs;
-static gint ett_rrc_UTRANMobilityInformationFailure;
-static gint ett_rrc_T_laterNonCriticalExtensions_66;
-static gint ett_rrc_T_nonCriticalExtensions_209;
-static gint ett_rrc_MBMSAccessInformation;
-static gint ett_rrc_T_nonCriticalExtensions_210;
-static gint ett_rrc_MBMSCommonPTMRBInformation;
-static gint ett_rrc_T_v770NonCriticalExtensions_33;
-static gint ett_rrc_T_v780NonCriticalExtensions_10;
-static gint ett_rrc_T_v860NonCriticalExtensions_23;
-static gint ett_rrc_T_nonCriticalExtensions_211;
-static gint ett_rrc_MBMSCommonPTMRBInformation_v770ext_IEs;
-static gint ett_rrc_MBMSCommonPTMRBInformation_v780ext_IEs;
-static gint ett_rrc_MBMSCommonPTMRBInformation_v860ext_IEs;
-static gint ett_rrc_MBMSCurrentCellPTMRBInformation;
-static gint ett_rrc_T_v770NonCriticalExtensions_34;
-static gint ett_rrc_T_nonCriticalExtensions_212;
-static gint ett_rrc_MBMSCurrentCellPTMRBInfo_v770ext_IEs;
-static gint ett_rrc_MBMSGeneralInformation;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_12;
-static gint ett_rrc_T_v770NonCriticalExtensions_35;
-static gint ett_rrc_T_v860NonCriticalExtensions_24;
-static gint ett_rrc_T_v890NoncriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_213;
-static gint ett_rrc_MBMSGeneralInformation_v6b0ext_IEs;
-static gint ett_rrc_MBMSGeneralInformation_v770ext_IEs;
-static gint ett_rrc_MBMSGeneralInformation_v860ext_IEs;
-static gint ett_rrc_MBMSGeneralInformation_v890ext_IEs;
-static gint ett_rrc_MBMSModificationRequest;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_13;
-static gint ett_rrc_T_v6f0NonCriticalExtensions_02;
-static gint ett_rrc_T_nonCriticalExtensions_214;
-static gint ett_rrc_MBMSModificationRequest_v6b0ext_IEs;
-static gint ett_rrc_MBMSModificationRequest_v6f0ext_IEs;
-static gint ett_rrc_MBMSModifiedServicesInformation;
-static gint ett_rrc_T_v770NonCriticalExtensions_36;
-static gint ett_rrc_T_v7c0NonCriticalExtensions;
-static gint ett_rrc_T_nonCriticalExtensions_215;
-static gint ett_rrc_MBMSModifiedServicesInformation_v770ext_IEs;
-static gint ett_rrc_MBMSModifiedServicesInformation_v7c0ext_IEs;
-static gint ett_rrc_MBMSNeighbouringCellPTMRBInformation;
-static gint ett_rrc_T_v770NonCriticalExtensions_37;
-static gint ett_rrc_T_nonCriticalExtensions_216;
-static gint ett_rrc_MBMSNeighbouringCellPTMRBInformation_v770ext_IEs;
-static gint ett_rrc_MBMSSchedulingInformation;
-static gint ett_rrc_T_nonCriticalExtensions_217;
-static gint ett_rrc_MBMSUnmodifiedServicesInformation;
-static gint ett_rrc_T_v770NonCriticalExtensions_38;
-static gint ett_rrc_T_nonCriticalExtensions_218;
-static gint ett_rrc_MBMSUnmodifiedServicesInformation_v770ext_IEs;
-static gint ett_rrc_System_Information_Container;
-static gint ett_rrc_T_vb50NonCriticalExtensions_21;
-static gint ett_rrc_T_vc50NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_219;
-static gint ett_rrc_System_Information_Container_vb50ext_IEs;
-static gint ett_rrc_System_Information_Container_vc50ext_IEs;
-static gint ett_rrc_LoggingMeasurementConfiguration;
-static gint ett_rrc_T_criticalExtensions_160;
-static gint ett_rrc_T_r10_11;
-static gint ett_rrc_T_nonCriticalExtensions_220;
-static gint ett_rrc_T_criticalExtensions_161;
-static gint ett_rrc_T_r11_13;
-static gint ett_rrc_T_nonCriticalExtensions_221;
-static gint ett_rrc_T_criticalExtensions_162;
-static gint ett_rrc_LoggingMeasurementConfiguration_r10_IEs;
-static gint ett_rrc_LoggingMeasurementConfiguration_r11_IEs;
-static gint ett_rrc_UEInformationResponse;
-static gint ett_rrc_T_vb50NonCriticalExtensions_22;
-static gint ett_rrc_T_vbb0NonCriticalExtensions;
-static gint ett_rrc_T_vc50NonCriticalExtensions_09;
-static gint ett_rrc_T_nonCriticalExtensions_222;
-static gint ett_rrc_UEInformationResponse_vb50ext_IEs;
-static gint ett_rrc_UEInformationResponse_vbb0ext_IEs;
-static gint ett_rrc_UEInformationResponse_vc50ext_IEs;
-static gint ett_rrc_UEInformationRequest;
-static gint ett_rrc_T_criticalExtensions_163;
-static gint ett_rrc_T_r10_12;
-static gint ett_rrc_T_nonCriticalExtensions_223;
-static gint ett_rrc_T_criticalExtensions_164;
-static gint ett_rrc_T_r11_14;
-static gint ett_rrc_T_nonCriticalExtensions_224;
-static gint ett_rrc_T_criticalExtensions_165;
-static gint ett_rrc_UEInformationRequest_r10_IEs;
-static gint ett_rrc_UEInformationRequest_r11_IEs;
-static gint ett_rrc_CN_DomainInformation;
-static gint ett_rrc_CN_DomainInformationFull;
-static gint ett_rrc_CN_DomainInformationList;
-static gint ett_rrc_CN_DomainInformationListFull;
-static gint ett_rrc_CN_DomainSysInfo;
-static gint ett_rrc_T_cn_Type;
-static gint ett_rrc_CN_DomainSysInfoList;
-static gint ett_rrc_CN_InformationInfo;
-static gint ett_rrc_CN_InformationInfo_r6;
-static gint ett_rrc_CN_InformationInfoFull;
-static gint ett_rrc_DomainSpecificEAB_Parameters;
-static gint ett_rrc_EAB_AccessClassBarredList;
-static gint ett_rrc_EAB_Configuration;
-static gint ett_rrc_EAB_Parameters;
-static gint ett_rrc_EAB_ParametersPerPLMN;
-static gint ett_rrc_EAB_ParametersPerPLMN_List;
-static gint ett_rrc_Ec_N0forANR;
-static gint ett_rrc_Gsm_map_IDNNS;
-static gint ett_rrc_T_routingbasis;
-static gint ett_rrc_T_localPTMSI;
-static gint ett_rrc_T_tMSIofsamePLMN;
-static gint ett_rrc_T_tMSIofdifferentPLMN;
-static gint ett_rrc_T_iMSIresponsetopaging;
-static gint ett_rrc_T_iMSIcauseUEinitiatedEvent;
-static gint ett_rrc_T_iMEI;
-static gint ett_rrc_T_spare2_01;
-static gint ett_rrc_T_spare1_01;
-static gint ett_rrc_IMEI;
-static gint ett_rrc_IMSI_GSM_MAP;
-static gint ett_rrc_IntraDomainNasNodeSelector;
-static gint ett_rrc_T_version;
-static gint ett_rrc_T_release99;
-static gint ett_rrc_T_cn_Type_01;
-static gint ett_rrc_T_later;
-static gint ett_rrc_LAI;
-static gint ett_rrc_LocationRegistrationAccessClassBarredList;
-static gint ett_rrc_LocationRegistrationParameters;
-static gint ett_rrc_MCC;
-static gint ett_rrc_MNC;
-static gint ett_rrc_MultiplePLMN_List_r6;
-static gint ett_rrc_SEQUENCE_SIZE_1_5_OF_PLMN_IdentityWithOptionalMCC_r6;
-static gint ett_rrc_PagingPermissionWithAccessControlForSharedNetwork;
-static gint ett_rrc_PagingPermissionWithAccessControlList;
-static gint ett_rrc_PagingPermissionWithAccessControlParameters;
-static gint ett_rrc_PLMN_Identity;
-static gint ett_rrc_PLMN_IdentityWithOptionalMCC_r6;
-static gint ett_rrc_PLMN_Type;
-static gint ett_rrc_T_gsm_MAP;
-static gint ett_rrc_T_ansi_41;
-static gint ett_rrc_T_gsm_MAP_and_ANSI_41;
-static gint ett_rrc_RAB_Identity;
-static gint ett_rrc_RAI;
-static gint ett_rrc_AccessClassBarredList;
-static gint ett_rrc_CellAccessRestriction;
-static gint ett_rrc_CellAccessRestriction_v870ext;
-static gint ett_rrc_CellBarred;
-static gint ett_rrc_T_barred;
-static gint ett_rrc_CellIdentity_PerRL_List;
-static gint ett_rrc_CellIDListItem;
-static gint ett_rrc_CellSelectReselectInfoSIB_3_4;
-static gint ett_rrc_T_cellSelectQualityMeasure;
-static gint ett_rrc_T_cpich_Ec_N0;
-static gint ett_rrc_T_modeSpecificInfo_17;
-static gint ett_rrc_T_fdd_46;
-static gint ett_rrc_T_tdd_11;
-static gint ett_rrc_CSG_DedicatedFrequencyInfoList;
-static gint ett_rrc_CSG_PSCSplitInfo;
-static gint ett_rrc_DedicatedWLANOffloadInformation;
-static gint ett_rrc_T_configurationInfo;
-static gint ett_rrc_T_newConfiguration;
-static gint ett_rrc_DomainSpecificAccessRestrictionForSharedNetwork_v670ext;
-static gint ett_rrc_DomainSpecificAccessRestrictionList_v670ext;
-static gint ett_rrc_DomainSpecificAccessRestrictionParam_v670ext;
-static gint ett_rrc_DomainSpecificAccessRestriction_v670ext;
-static gint ett_rrc_T_restriction;
-static gint ett_rrc_Mapping;
-static gint ett_rrc_Mapping_LCR_r4;
-static gint ett_rrc_MappingFunctionParameter;
-static gint ett_rrc_MappingFunctionParameterList;
-static gint ett_rrc_MappingInfo;
-static gint ett_rrc_DedicatedPriorityInformation;
-static gint ett_rrc_T_action;
-static gint ett_rrc_T_configureDedicatedPriorities;
-static gint ett_rrc_DedicatedPriorityInformation_r11;
-static gint ett_rrc_T_action_01;
-static gint ett_rrc_T_configureDedicatedPriorities_01;
-static gint ett_rrc_DedicatedPriorityInformation_r13;
-static gint ett_rrc_T_action_02;
-static gint ett_rrc_T_configureDedicatedPriorities_02;
-static gint ett_rrc_PriorityLevel;
-static gint ett_rrc_T_radioAccessTechnology;
-static gint ett_rrc_T_utraFDD;
-static gint ett_rrc_T_utraFDD_item;
-static gint ett_rrc_T_utraTDD;
-static gint ett_rrc_T_utraTDD_item;
-static gint ett_rrc_T_eutra;
-static gint ett_rrc_T_eutra_item;
-static gint ett_rrc_T_gsm_01;
-static gint ett_rrc_PriorityLevel_r11;
-static gint ett_rrc_T_radioAccessTechnology_01;
-static gint ett_rrc_T_utraFDD_01;
-static gint ett_rrc_T_utraFDD_item_01;
-static gint ett_rrc_T_utraTDD_01;
-static gint ett_rrc_T_utraTDD_item_01;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_OF_EARFCNRange;
-static gint ett_rrc_T_gsm_02;
-static gint ett_rrc_PriorityLevel_r13;
-static gint ett_rrc_T_radioAccessTechnology_02;
-static gint ett_rrc_T_utraFDD_02;
-static gint ett_rrc_T_utraFDD_item_02;
-static gint ett_rrc_T_utraTDD_02;
-static gint ett_rrc_T_utraTDD_item_02;
-static gint ett_rrc_T_gsm_03;
-static gint ett_rrc_PriorityLevelList;
-static gint ett_rrc_PriorityLevelList_r11;
-static gint ett_rrc_PriorityLevelList_r13;
-static gint ett_rrc_RAT_FDD_Info;
-static gint ett_rrc_RAT_FDD_InfoList;
-static gint ett_rrc_RAT_TDD_Info;
-static gint ett_rrc_RAT_TDD_InfoList;
-static gint ett_rrc_URA_IdentityList;
-static gint ett_rrc_BackoffControlParams;
-static gint ett_rrc_CapabilityUpdateRequirement;
-static gint ett_rrc_CapabilityUpdateRequirement_r4_ext;
-static gint ett_rrc_CapabilityUpdateRequirement_r4;
-static gint ett_rrc_CapabilityUpdateRequirement_r5;
-static gint ett_rrc_CapabilityUpdateRequirement_v770ext;
-static gint ett_rrc_CapabilityUpdateRequirement_r7;
-static gint ett_rrc_CapabilityUpdateRequirement_v860ext;
-static gint ett_rrc_CapabilityUpdateRequirement_r8;
-static gint ett_rrc_CapabilityUpdateRequirement_vaj0ext;
-static gint ett_rrc_CapabilityUpdateRequirement_r12;
-static gint ett_rrc_CipheringModeCommand;
-static gint ett_rrc_CipheringModeCommand_r7;
-static gint ett_rrc_CipheringModeInfo;
-static gint ett_rrc_CipheringModeInfo_r7;
-static gint ett_rrc_CN_PagedUE_Identity;
-static gint ett_rrc_CompressedModeMeasCapability;
-static gint ett_rrc_CompressedModeMeasCapability_LCR_r4;
-static gint ett_rrc_CompressedModeMeasCapability_v860ext;
-static gint ett_rrc_CompressedModeMeasCapability_v920ext;
-static gint ett_rrc_CompressedModeMeasCapability_va40ext;
-static gint ett_rrc_CompressedModeMeasCapabEUTRA;
-static gint ett_rrc_CompressedModeMeasCapabEUTRAExt;
-static gint ett_rrc_CompressedModeMeasCapabEUTRAExt2;
-static gint ett_rrc_CompressedModeMeasCapabEUTRAList;
-static gint ett_rrc_CompressedModeMeasCapabEUTRAList2;
-static gint ett_rrc_CompressedModeMeasCapabEUTRAList3;
-static gint ett_rrc_CompressedModeMeasCapabFDDList;
-static gint ett_rrc_CompressedModeMeasCapabFDDList2;
-static gint ett_rrc_CompressedModeMeasCapabFDDList3;
-static gint ett_rrc_CompressedModeMeasCapabFDDList_ext;
-static gint ett_rrc_CompressedModeMeasCapabFDD;
-static gint ett_rrc_CompressedModeMeasCapabFDD2;
-static gint ett_rrc_CompressedModeMeasCapabFDD3;
-static gint ett_rrc_CompressedModeMeasCapabFDD_ext;
-static gint ett_rrc_CompressedModeMeasCapabTDDList;
-static gint ett_rrc_CompressedModeMeasCapabTDD;
-static gint ett_rrc_CompressedModeMeasCapabGSMList;
-static gint ett_rrc_CompressedModeMeasCapabGSM;
-static gint ett_rrc_CompressedModeMeasCapabMC;
-static gint ett_rrc_CPCH_Parameters;
-static gint ett_rrc_CSG_ProximityIndicationCapability;
-static gint ett_rrc_DL_InformationPerSecondaryRL_List;
-static gint ett_rrc_DL_InformationPerSecondaryRL_List_r12;
-static gint ett_rrc_DL_InformationPerSecondaryRL_List_r13;
-static gint ett_rrc_DL_InformationPerSecondaryRL;
-static gint ett_rrc_T_e_RGCH_Info;
-static gint ett_rrc_DL_InformationPerSecondaryRL_r12;
-static gint ett_rrc_T_e_RGCH_Info_01;
-static gint ett_rrc_DL_InformationPerSecondaryRL_r13;
-static gint ett_rrc_T_e_RGCH_Info_02;
-static gint ett_rrc_DL_PhysChCapabilityFDD;
-static gint ett_rrc_DL_PhysChCapabilityFDD_v380ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_v770ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_v860ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_v920ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_va40ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_vb50ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_vb80ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_vc50ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_vd20ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_ve30ext;
-static gint ett_rrc_DL_PhysChCapabilityFDD_vf10ext;
-static gint ett_rrc_DL_PhysChCapabilityTDD;
-static gint ett_rrc_DL_PhysChCapabilityTDD_LCR_r4;
-static gint ett_rrc_DL_PhysChCapabilityTDD_128_v770ext;
-static gint ett_rrc_DL_PhysChCapabilityTDD_128_v860ext;
-static gint ett_rrc_DL_PhysChCapabilityInfoTDD_128_va40ext;
-static gint ett_rrc_DL_PhysChCapabilityInfoTDD_128_vc50ext;
-static gint ett_rrc_DL_PhysChCapabilityTDD_768;
-static gint ett_rrc_T_tdd768_hspdsch;
-static gint ett_rrc_DL_PhysChCapabilityInfoTDD_768;
-static gint ett_rrc_DL_TransChCapability;
-static gint ett_rrc_DRAC_SysInfo;
-static gint ett_rrc_DRAC_SysInfoList;
-static gint ett_rrc_DynamicActivationTime;
-static gint ett_rrc_EUTRAbandSpecificCapUpdateReqList;
-static gint ett_rrc_FailureCauseWithProtErr;
-static gint ett_rrc_FailureCauseWithProtErrTrId;
-static gint ett_rrc_FrequencyBandsIndicatorSupport;
-static gint ett_rrc_T_modeSpecificInfo_18;
-static gint ett_rrc_T_fdd_47;
-static gint ett_rrc_T_tdd_12;
-static gint ett_rrc_FrequencyBandsIndicatorTDD128;
-static gint ett_rrc_FrequencyBandsIndicatorSupportTDD128;
-static gint ett_rrc_FrequencyBandsRedirectionFDD;
-static gint ett_rrc_FrequencyBandsIndicatorFDD;
-static gint ett_rrc_GroupIdentityWithReleaseInformation;
-static gint ett_rrc_GroupReleaseInformation;
-static gint ett_rrc_GSM_Measurements;
-static gint ett_rrc_MultiflowCapabBandCombination;
-static gint ett_rrc_MultiflowCapabBandCombList;
-static gint ett_rrc_MultiflowCapability;
-static gint ett_rrc_MultiflowPerBandCapability;
-static gint ett_rrc_MultiflowNonContiguousCapability;
-static gint ett_rrc_IdleIntervalMeasCapabEUTRA;
-static gint ett_rrc_IdleIntervalMeasCapabEUTRAExtension;
-static gint ett_rrc_IdleIntervalMeasCapabEUTRAList;
-static gint ett_rrc_IdleIntervalMeasCapabEUTRAExtensionList;
-static gint ett_rrc_IMSI_and_ESN_DS_41;
-static gint ett_rrc_InitialPriorityDelayList;
-static gint ett_rrc_InitialUE_Identity;
-static gint ett_rrc_IntegrityCheckInfo;
-static gint ett_rrc_IntegrityProtActivationInfo;
-static gint ett_rrc_IntegrityProtectionModeCommand;
-static gint ett_rrc_T_startIntegrityProtection;
-static gint ett_rrc_T_modify;
-static gint ett_rrc_IntegrityProtectionModeInfo;
-static gint ett_rrc_IntegrityProtectionModeInfo_r7;
-static gint ett_rrc_MeasurementCapability;
-static gint ett_rrc_MeasurementCapabilityExt;
-static gint ett_rrc_MeasurementCapabilityExt2;
-static gint ett_rrc_MeasurementCapabilityExt3;
-static gint ett_rrc_MeasurementCapabilityExt4;
-static gint ett_rrc_MeasurementCapabilityExt5;
-static gint ett_rrc_MeasurementCapabilityExt6;
-static gint ett_rrc_MeasurementCapability_r4_ext;
-static gint ett_rrc_MeasurementCapability_v860ext;
-static gint ett_rrc_MeasurementCapability_v920ext;
-static gint ett_rrc_MeasurementCapability_va40ext;
-static gint ett_rrc_MeasurementCapability_vb50ext;
-static gint ett_rrc_MeasurementCapabilityTDD;
-static gint ett_rrc_MeasurementCapabilityTDD_vb50ext;
-static gint ett_rrc_MeasurementCapability_vb70ext;
-static gint ett_rrc_MeasurementCapability_vc50ext;
-static gint ett_rrc_MeasurementCapability_ve30ext;
-static gint ett_rrc_MeasurementCapability_vf20ext;
-static gint ett_rrc_NonContiguousMultiCellCombinationList;
-static gint ett_rrc_NonContiguousMultiCell;
-static gint ett_rrc_MultiRAT_Capability;
-static gint ett_rrc_MultiModeRAT_Capability_v590ext;
-static gint ett_rrc_MultiModeRAT_Capability_v680ext;
-static gint ett_rrc_MultiModeRAT_Capability_v770ext;
-static gint ett_rrc_MultiModeRAT_Capability_v860ext;
-static gint ett_rrc_MultiModeRAT_Capability_vae0ext;
-static gint ett_rrc_MultiModeRAT_Capability_vb50ext;
-static gint ett_rrc_MultiModeRAT_Capability_vc50ext;
-static gint ett_rrc_MultiModeRAT_Capability_vd20ext;
-static gint ett_rrc_NeighCellSI_AcquisitionCapability;
-static gint ett_rrc_NetworkAssistedGANSS_Supported_List;
-static gint ett_rrc_NetworkAssistedGANSS_Supported_List_item;
-static gint ett_rrc_NetworkAssistedGANSS_Supported_List_v860ext;
-static gint ett_rrc_NetworkAssistedGANSS_Supported_List_v860ext_item;
-static gint ett_rrc_P_TMSI_and_RAI_GSM_MAP;
-static gint ett_rrc_PagingRecord;
-static gint ett_rrc_T_cn_Identity;
-static gint ett_rrc_T_utran_Identity;
-static gint ett_rrc_T_cn_OriginatedPage_connectedMode_UE;
-static gint ett_rrc_PagingRecord2_r5;
-static gint ett_rrc_T_utran_SingleUE_Identity;
-static gint ett_rrc_T_cn_OriginatedPage_connectedMode_UE_01;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxURNTI_Group_OF_GroupIdentityWithReleaseInformation;
-static gint ett_rrc_PagingRecordList;
-static gint ett_rrc_PagingRecord2List_r5;
-static gint ett_rrc_PDCP_Capability;
-static gint ett_rrc_T_supportForRfc2507;
-static gint ett_rrc_PDCP_Capability_r4_ext;
-static gint ett_rrc_T_supportForRfc3095;
-static gint ett_rrc_T_supported;
-static gint ett_rrc_PDCP_Capability_r5_ext;
-static gint ett_rrc_PDCP_Capability_r5_ext2;
-static gint ett_rrc_PDCP_Capability_v770ext;
-static gint ett_rrc_PhysicalChannelCapability;
-static gint ett_rrc_T_fddPhysChCapability;
-static gint ett_rrc_T_tddPhysChCapability;
-static gint ett_rrc_PhysicalChannelCapability_v770ext;
-static gint ett_rrc_T_fddPhysChCapability_01;
-static gint ett_rrc_T_tddPhysChCapability_384;
-static gint ett_rrc_T_tddPhysChCapability_768;
-static gint ett_rrc_T_tddPhysChCapability_128;
-static gint ett_rrc_PhysicalChannelCapability_v860ext;
-static gint ett_rrc_T_fddPhysChCapability_02;
-static gint ett_rrc_T_tddPhysChCapability_128_01;
-static gint ett_rrc_PhysicalChannelCapability_v920ext;
-static gint ett_rrc_T_fddPhysChCapability_03;
-static gint ett_rrc_PhysicalChannelCapability_va40ext;
-static gint ett_rrc_T_fddPhysChCapability_04;
-static gint ett_rrc_T_tddPhysChCapability_128_02;
-static gint ett_rrc_PhysicalChannelCapability_vb50ext;
-static gint ett_rrc_T_fddPhysChCapability_05;
-static gint ett_rrc_PhysicalChannelCapability_vb80ext;
-static gint ett_rrc_T_fddPhysChCapability_06;
-static gint ett_rrc_PhysicalChannelCapability_vc50ext;
-static gint ett_rrc_T_fddPhysChCapability_07;
-static gint ett_rrc_T_tddPhysChCapability_01;
-static gint ett_rrc_PhysicalChannelCapability_vd20ext;
-static gint ett_rrc_T_fddPhysChCapability_08;
-static gint ett_rrc_PhysicalChannelCapability_ve30ext;
-static gint ett_rrc_T_fddPhysChCapability_09;
-static gint ett_rrc_PhysicalChannelCapabilityInfo_v770ext;
-static gint ett_rrc_T_tddPhysChCapability_768_01;
-static gint ett_rrc_T_tddPhysChCapability_128_03;
-static gint ett_rrc_PhysicalChannelCapability_vf10ext;
-static gint ett_rrc_T_fddPhysChCapability_10;
-static gint ett_rrc_PhysicalChannelCapability_LCR_r4;
-static gint ett_rrc_T_tdd128_PhysChCapability;
-static gint ett_rrc_PhysicalChannelCapability_hspdsch_r5;
-static gint ett_rrc_T_fdd_hspdsch;
-static gint ett_rrc_T_supported_01;
-static gint ett_rrc_T_tdd384_hspdsch;
-static gint ett_rrc_T_tdd128_hspdsch;
-static gint ett_rrc_PNBSCH_Allocation_r4;
-static gint ett_rrc_Pre_RedirectionInfo;
-static gint ett_rrc_ProtocolErrorIndicatorWithMoreInfo;
-static gint ett_rrc_T_errorOccurred;
-static gint ett_rrc_ProtocolErrorMoreInformation;
-static gint ett_rrc_T_diagnosticsType;
-static gint ett_rrc_T_type1;
-static gint ett_rrc_RadioFrequencyBandTDDextList;
-static gint ett_rrc_Rb_timer_indicator;
-static gint ett_rrc_RedirectionInfo;
-static gint ett_rrc_RedirectionInfo_r6;
-static gint ett_rrc_RedirectionInfo_v860ext;
-static gint ett_rrc_RF_Capability;
-static gint ett_rrc_T_fddRF_Capability;
-static gint ett_rrc_T_tddRF_Capability;
-static gint ett_rrc_RF_Capability_r4_ext;
-static gint ett_rrc_T_tddRF_Capability_01;
-static gint ett_rrc_RF_Capability_v770ext;
-static gint ett_rrc_T_tdd768RF_Capability;
-static gint ett_rrc_RF_Capability_v860ext;
-static gint ett_rrc_RF_Capability_vaa0ext;
-static gint ett_rrc_RLC_Capability;
-static gint ett_rrc_RLC_Capability_r5_ext;
-static gint ett_rrc_RLC_Capability_v770ext;
-static gint ett_rrc_RLC_Capability_v920ext;
-static gint ett_rrc_RLC_Capability_va40ext;
-static gint ett_rrc_RLC_Capability_vb50ext;
-static gint ett_rrc_RRC_ConnectionReleaseInformation;
-static gint ett_rrc_T_release;
-static gint ett_rrc_RRC_MessageSequenceNumberList;
-static gint ett_rrc_RSR_VCC_Info;
-static gint ett_rrc_SecurityCapability;
-static gint ett_rrc_T_cipheringAlgorithmCap;
-static gint ett_rrc_T_integrityProtectionAlgorithmCap;
-static gint ett_rrc_SecondaryServingEDCHCell_Info;
-static gint ett_rrc_SecondaryEDCH_Info_Common;
-static gint ett_rrc_T_servingGrant;
-static gint ett_rrc_SecondaryEDCH_Info_Common_r12;
-static gint ett_rrc_T_servingGrant_01;
-static gint ett_rrc_SecondaryEDCH_Info_Common_r14;
-static gint ett_rrc_T_servingGrant_02;
-static gint ett_rrc_Serving_HSDSCH_CellInformation;
-static gint ett_rrc_Serving_HSDSCH_CellInformation_r7;
-static gint ett_rrc_Serving_HSDSCH_CellInformation_r8;
-static gint ett_rrc_Serving_HSDSCH_CellInformation_r9;
-static gint ett_rrc_Serving_HSDSCH_CellInformation_r11;
-static gint ett_rrc_Serving_HSDSCH_CellInformation_r12;
-static gint ett_rrc_SimultaneousSCCPCH_DPCH_Reception;
-static gint ett_rrc_T_supported_02;
-static gint ett_rrc_SR_VCC_Info;
-static gint ett_rrc_SR_VCC_SecurityRABInfo_v860ext;
-static gint ett_rrc_STARTList;
-static gint ett_rrc_STARTSingle;
-static gint ett_rrc_SystemSpecificCapUpdateReqList;
-static gint ett_rrc_SystemSpecificCapUpdateReqList_r5;
-static gint ett_rrc_SystemSpecificCapUpdateReqList_r8;
-static gint ett_rrc_TMSI_and_LAI_GSM_MAP;
-static gint ett_rrc_TransportChannelCapability;
-static gint ett_rrc_TurboSupport;
-static gint ett_rrc_U_RNTI;
-static gint ett_rrc_U_RNTI_Group;
-static gint ett_rrc_U_RNTI_Short;
-static gint ett_rrc_UE_AddPos_Supported_List;
-static gint ett_rrc_UE_AddPos_element;
-static gint ett_rrc_UE_BasedNetworkPerformanceMeasurementsParameters;
-static gint ett_rrc_UE_CapabilityContainer_IEs;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_14;
-static gint ett_rrc_T_v6e0NonCriticalExtensions_02;
-static gint ett_rrc_T_v770NonCriticalExtensions_39;
-static gint ett_rrc_T_v790NonCriticalExtensions_01;
-static gint ett_rrc_T_v860NonCriticalExtensions_25;
-static gint ett_rrc_T_v880NonCriticalExtensions_01;
-static gint ett_rrc_T_v890NonCriticalExtensions_10;
-static gint ett_rrc_T_v920NonCriticalExtensions_03;
-static gint ett_rrc_T_v970NonCriticalExtensions_03;
-static gint ett_rrc_T_va40NonCriticalExtensions_17;
-static gint ett_rrc_T_va60NonCriticalExtensions;
-static gint ett_rrc_T_va80NonCriticalExtensions_01;
-static gint ett_rrc_UE_RadioAccessCapability_v6b0ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v6e0ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v770ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v790ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v860ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v880ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v890ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v920ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v970ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_v9c0ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_LaterNonCriticalExtensions;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_12;
-static gint ett_rrc_T_vaa0NonCriticalExtensions_02;
-static gint ett_rrc_T_vb50NonCriticalExtensions_23;
-static gint ett_rrc_T_vb70NonCriticalExtensions_01;
-static gint ett_rrc_T_vae0NonCriticalExtensions;
-static gint ett_rrc_T_vb80NonCriticalExtensions;
-static gint ett_rrc_T_vc50NonCriticalExtensions_10;
-static gint ett_rrc_T_vd20NonCriticalExtensions_03;
-static gint ett_rrc_UE_RadioAccessCapability_va40ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_va60ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_va80ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vaa0ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vae0ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vb50ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vb70ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vb80ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vc50ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vd20ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_ve30ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vf10ext_IEs;
-static gint ett_rrc_UE_RadioAccessCapability_vf20ext_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_225;
-static gint ett_rrc_UE_ConnTimersAndConstants;
-static gint ett_rrc_UE_ConnTimersAndConstants_v3a0ext;
-static gint ett_rrc_UE_ConnTimersAndConstants_r5;
-static gint ett_rrc_UE_ConnTimersAndConstants_v860ext;
-static gint ett_rrc_UE_ConnTimersAndConstants_r11;
-static gint ett_rrc_UE_GANSSPositioning_Capability;
-static gint ett_rrc_UE_GANSSPositioning_Capability_v860ext_IEs;
-static gint ett_rrc_UE_IdleTimersAndConstants;
-static gint ett_rrc_UE_HSPA_Identities_r6;
-static gint ett_rrc_UE_IdleTimersAndConstants_v3a0ext;
-static gint ett_rrc_UE_MultiModeRAT_Capability;
-static gint ett_rrc_UE_RadioAccessCapability;
-static gint ett_rrc_UE_RadioAccessCapabilityInfo;
-static gint ett_rrc_UE_RadioAccessCapability_v370ext;
-static gint ett_rrc_UE_RadioAccessCapability_v380ext;
-static gint ett_rrc_UE_RadioAccessCapability_v3a0ext;
-static gint ett_rrc_UE_RadioAccessCapability_v3g0ext;
-static gint ett_rrc_UE_RadioAccessCapability_v650ext;
-static gint ett_rrc_UE_RadioAccessCapability_v690ext;
-static gint ett_rrc_UE_RadioAccessCapability_v7e0ext;
-static gint ett_rrc_UE_RadioAccessCapability_v7f0ext;
-static gint ett_rrc_UE_RadioAccessCapabilityInfo_v770ext;
-static gint ett_rrc_UE_RadioAccessCapabilityInfo_TDD128_v8b0ext;
-static gint ett_rrc_UE_RadioAccessCapabilityInfo_TDD128_vb50ext;
-static gint ett_rrc_UE_RadioAccessCapability_v860ext;
-static gint ett_rrc_UE_RadioAccessCapability_v880ext;
-static gint ett_rrc_UE_RadioAccessCapability_v920ext;
-static gint ett_rrc_UE_RadioAccessCapability_va40ext;
-static gint ett_rrc_UE_RadioAccessCapability_va80ext;
-static gint ett_rrc_UE_RadioAccessCapability_vb50ext;
-static gint ett_rrc_UE_RadioAccessCapability_vb70ext;
-static gint ett_rrc_UE_RadioAccessCapability_vbc0ext;
-static gint ett_rrc_UE_RadioAccessCapability_vd20ext;
-static gint ett_rrc_UE_RadioAccessCapabBand_va40ext;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList2;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList3;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList4;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList4_va60ext;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList4_va80ext;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList5;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList6;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList7;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD2;
-static gint ett_rrc_T_fddRF_Capability_01;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD3;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD4;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD4_va60ext;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD4_va80ext;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD5;
-static gint ett_rrc_T_fddRF_Capability_02;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD6;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD7;
-static gint ett_rrc_UE_PositioningCapabilityExt_v380;
-static gint ett_rrc_UE_PositioningCapabilityExt_v3a0;
-static gint ett_rrc_UE_PositioningCapabilityExt_v3g0;
-static gint ett_rrc_UE_PositioningCapability_v770ext;
-static gint ett_rrc_UE_PositioningCapability_v860ext;
-static gint ett_rrc_UE_PositioningCapability_vd20ext;
-static gint ett_rrc_UE_RadioAccessCapabBandCombList;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList_ext;
-static gint ett_rrc_UE_RadioAccessCapabBandFDDList_ext2;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD;
-static gint ett_rrc_T_fddRF_Capability_03;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD_ext;
-static gint ett_rrc_UE_RadioAccessCapabBandFDD_ext2;
-static gint ett_rrc_UE_RadioAccessCapability_v4b0ext;
-static gint ett_rrc_T_tdd_CapabilityExt;
-static gint ett_rrc_UE_RadioAccessCapabilityComp;
-static gint ett_rrc_UE_RadioAccessCapabilityComp_ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp_TDD128_v7f0ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp_v770ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2;
-static gint ett_rrc_T_fddPhysicalChannelCapab_hspdsch_edch;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_v770ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_v7f0ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_v860ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_v920ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_va40ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_vb50ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_vc50ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp2_vd20ext;
-static gint ett_rrc_UE_RadioAccessCapabilityComp_TDD128;
-static gint ett_rrc_RF_CapabilityComp;
-static gint ett_rrc_T_fdd_48;
-static gint ett_rrc_T_tdd384_RF_Capability;
-static gint ett_rrc_T_tdd128_RF_Capability;
-static gint ett_rrc_RF_CapabilityComp_v770ext;
-static gint ett_rrc_T_tdd768_RF_Capability;
-static gint ett_rrc_RF_CapabBandListFDDComp;
-static gint ett_rrc_RF_CapabBandListFDDComp_ext;
-static gint ett_rrc_RF_CapabBandListFDDComp_ext2;
-static gint ett_rrc_UE_RadioAccessCapabBandCombList_va40ext;
-static gint ett_rrc_UE_RadioAccessCapabBandCombList_vb50ext;
-static gint ett_rrc_UE_RadioAccessCapabBandCombList_vd20ext;
-static gint ett_rrc_SupportedCarrierCombination;
-static gint ett_rrc_SupportedCarrierCombination_ext;
-static gint ett_rrc_SupportDualBandDualCellEdch;
-static gint ett_rrc_UE_RadioAccessCapability_v590ext;
-static gint ett_rrc_UE_RadioAccessCapability_v5c0ext;
-static gint ett_rrc_UE_RadioAccessCapability_v680ext;
-static gint ett_rrc_UL_OLTD_InfoFDD;
-static gint ett_rrc_UL_PhysChCapabilityFDD;
-static gint ett_rrc_UL_PhysChCapabilityFDD_v770ext;
-static gint ett_rrc_UL_PhysChCapabilityFDD_v920ext;
-static gint ett_rrc_UL_PhysChCapabilityFDD_vb50ext;
-static gint ett_rrc_UL_PhysChCapabilityFDD_vc50ext;
-static gint ett_rrc_UL_PhysChCapabilityFDD_vd20ext;
-static gint ett_rrc_UL_PhysChCapabilityFDD_ve30ext;
-static gint ett_rrc_UL_PhysChCapabilityTDD;
-static gint ett_rrc_UL_PhysChCapabilityTDD_384_v770ext;
-static gint ett_rrc_T_tdd384_edch;
-static gint ett_rrc_T_supported_03;
-static gint ett_rrc_UL_PhysChCapabilityTDD_LCR_r4;
-static gint ett_rrc_UL_PhysChCapabilityTDD_128_v770ext;
-static gint ett_rrc_T_tdd128_edch;
-static gint ett_rrc_T_supported_04;
-static gint ett_rrc_UL_PhysChCapabilityInfoTDD_128_v770ext;
-static gint ett_rrc_UL_PhysChCapabilityInfoTDD_128_va40ext;
-static gint ett_rrc_UL_PhysChCapabilityTDD_768;
-static gint ett_rrc_T_tdd384_edch_01;
-static gint ett_rrc_T_supported_05;
-static gint ett_rrc_UL_OtherTTIConfiguration_Information;
-static gint ett_rrc_T_configurationInfo_01;
-static gint ett_rrc_T_newConfiguration_01;
-static gint ett_rrc_UL_OtherTTIConfigurationInfo_Sec;
-static gint ett_rrc_T_configurationInfo_02;
-static gint ett_rrc_T_newConfiguration_02;
-static gint ett_rrc_UL_SecondaryCellInfoFDD;
-static gint ett_rrc_T_newConfiguration_03;
-static gint ett_rrc_UL_SecondaryCellInfoFDD_r12;
-static gint ett_rrc_T_newConfiguration_04;
-static gint ett_rrc_UL_SecondaryCellInfoFDD_r13;
-static gint ett_rrc_T_newConfiguration_05;
-static gint ett_rrc_UL_SecondaryCellInfoFDD_r14;
-static gint ett_rrc_T_newConfiguration_06;
-static gint ett_rrc_PhysicalChannelCapability_edch_r6;
-static gint ett_rrc_T_fdd_edch;
-static gint ett_rrc_T_supported_06;
-static gint ett_rrc_UL_TransChCapability;
-static gint ett_rrc_T_modeSpecificInfo_19;
-static gint ett_rrc_T_tdd_13;
-static gint ett_rrc_UE_Positioning_Capability;
-static gint ett_rrc_UE_SecurityInformation;
-static gint ett_rrc_UE_SecurityInformation2;
-static gint ett_rrc_UTRAN_DRX_CycleLengthCoefficient_r7;
-static gint ett_rrc_AlgorithmSpecificInfo;
-static gint ett_rrc_AlgorithmSpecificInfo_r4;
-static gint ett_rrc_CommonRBMappingInfo;
-static gint ett_rrc_CS_HSPA_Information;
-static gint ett_rrc_DefaultConfigForCellFACH;
-static gint ett_rrc_DL_AM_RLC_Mode;
-static gint ett_rrc_DL_AM_RLC_Mode_r5;
-static gint ett_rrc_DL_AM_RLC_Mode_r7;
-static gint ett_rrc_T_dl_RLC_PDU_size;
-static gint ett_rrc_DL_AM_RLC_Mode_r11;
-static gint ett_rrc_T_dl_RLC_PDU_size_01;
-static gint ett_rrc_DL_CounterSynchronisationInfo;
-static gint ett_rrc_DL_CounterSynchronisationInfo_r5;
-static gint ett_rrc_DL_LogicalChannelMapping;
-static gint ett_rrc_DL_LogicalChannelMapping_r5;
-static gint ett_rrc_DL_LogicalChannelMapping_r7;
-static gint ett_rrc_DL_LogicalChannelMappingList;
-static gint ett_rrc_DL_LogicalChannelMappingList_r5;
-static gint ett_rrc_DL_LogicalChannelMappingList_r7;
-static gint ett_rrc_DL_RFC3095_r4;
-static gint ett_rrc_DL_RLC_Mode;
-static gint ett_rrc_DL_RLC_Mode_r5;
-static gint ett_rrc_DL_RLC_Mode_r6;
-static gint ett_rrc_DL_RLC_Mode_r7;
-static gint ett_rrc_DL_RLC_Mode_r11;
-static gint ett_rrc_DL_RLC_StatusInfo;
-static gint ett_rrc_DL_RLC_StatusInfo_r11;
-static gint ett_rrc_DL_TM_RLC_Mode;
-static gint ett_rrc_DL_TransportChannelType;
-static gint ett_rrc_DL_TransportChannelType_r5;
-static gint ett_rrc_DL_TransportChannelType_r7;
-static gint ett_rrc_T_hsdsch;
-static gint ett_rrc_T_dch_and_hsdsch;
-static gint ett_rrc_DL_UM_RLC_Mode_r5;
-static gint ett_rrc_DL_UM_RLC_Mode_r6;
-static gint ett_rrc_ExplicitDiscard;
-static gint ett_rrc_HeaderCompressionInfo;
-static gint ett_rrc_HeaderCompressionInfoList;
-static gint ett_rrc_HeaderCompressionInfo_r4;
-static gint ett_rrc_HeaderCompressionInfoList_r4;
-static gint ett_rrc_HS_SCCH_DrxCellfach_info;
-static gint ett_rrc_LosslessSRNS_RelocSupport;
-static gint ett_rrc_MaxDAT_Retransmissions;
-static gint ett_rrc_PDCP_Info;
-static gint ett_rrc_PDCP_Info_r4;
-static gint ett_rrc_PDCP_InfoReconfig;
-static gint ett_rrc_PDCP_InfoReconfig_r4;
-static gint ett_rrc_PollingInfo;
-static gint ett_rrc_PredefinedRB_Configuration;
-static gint ett_rrc_PreDefRadioConfiguration;
-static gint ett_rrc_PreDefRadioConfiguration_v770ext;
-static gint ett_rrc_PreDefRadioConfiguration_v920ext;
-static gint ett_rrc_PredefinedConfigStatusList;
-static gint ett_rrc_PredefinedConfigStatusInfo;
-static gint ett_rrc_T_other;
-static gint ett_rrc_PredefinedConfigStatusListComp;
-static gint ett_rrc_PredefinedConfigSetsWithDifferentValueTag;
-static gint ett_rrc_PredefinedConfigSetWithDifferentValueTag;
-static gint ett_rrc_PredefinedConfigValueTagList;
-static gint ett_rrc_PredefinedConfigStatusListVarSz;
-static gint ett_rrc_RAB_Info;
-static gint ett_rrc_RAB_Info_r6_ext;
-static gint ett_rrc_RAB_Info_v6b0ext;
-static gint ett_rrc_RAB_Info_r6;
-static gint ett_rrc_RAB_Info_r7;
-static gint ett_rrc_RAB_InfoReplace;
-static gint ett_rrc_RAB_InformationList;
-static gint ett_rrc_RAB_InformationList_r6;
-static gint ett_rrc_RAB_InformationReconfigList;
-static gint ett_rrc_RAB_InformationReconfigList_r8;
-static gint ett_rrc_RAB_InformationReconfig;
-static gint ett_rrc_RAB_InformationReconfig_r8;
-static gint ett_rrc_RAB_Info_Post;
-static gint ett_rrc_RAB_InformationMBMSPtp;
-static gint ett_rrc_RAB_InformationMBMSPtpList;
-static gint ett_rrc_RAB_InformationSetup;
-static gint ett_rrc_RAB_InformationSetup_r4;
-static gint ett_rrc_RAB_InformationSetup_r5;
-static gint ett_rrc_RAB_InformationSetup_r6_ext;
-static gint ett_rrc_RAB_InformationSetup_r6;
-static gint ett_rrc_RAB_InformationSetup_v6b0ext;
-static gint ett_rrc_RAB_InformationSetup_r7;
-static gint ett_rrc_RAB_InformationSetup_r8;
-static gint ett_rrc_RAB_InformationSetup_v820ext;
-static gint ett_rrc_RAB_InformationSetup_r11;
-static gint ett_rrc_RAB_InformationSetupList;
-static gint ett_rrc_RAB_InformationSetupList_r4;
-static gint ett_rrc_RAB_InformationSetupList_r5;
-static gint ett_rrc_RAB_InformationSetupList_r6;
-static gint ett_rrc_RAB_InformationSetupList_r6_ext;
-static gint ett_rrc_RAB_InformationSetupList_v6b0ext;
-static gint ett_rrc_RAB_InformationSetupList_r7;
-static gint ett_rrc_RAB_InformationSetupList_r8;
-static gint ett_rrc_RAB_InformationSetupList_v820ext;
-static gint ett_rrc_RAB_InformationSetupList_r11;
-static gint ett_rrc_RB_ActivationTimeInfo;
-static gint ett_rrc_RB_ActivationTimeInfoList;
-static gint ett_rrc_RB_COUNT_C_Information;
-static gint ett_rrc_RB_COUNT_C_InformationList;
-static gint ett_rrc_RB_COUNT_C_MSB_Information;
-static gint ett_rrc_RB_COUNT_C_MSB_InformationList;
-static gint ett_rrc_RB_IdentityList;
-static gint ett_rrc_RB_InformationAffected;
-static gint ett_rrc_RB_InformationAffected_r5;
-static gint ett_rrc_RB_InformationAffected_r6;
-static gint ett_rrc_RB_InformationAffected_r7;
-static gint ett_rrc_RB_InformationAffected_r8;
-static gint ett_rrc_RB_InformationAffectedList;
-static gint ett_rrc_RB_InformationAffectedList_r5;
-static gint ett_rrc_RB_InformationAffectedList_r6;
-static gint ett_rrc_RB_InformationAffectedList_r7;
-static gint ett_rrc_RB_InformationAffectedList_r8;
-static gint ett_rrc_RB_InformationChanged_r6;
-static gint ett_rrc_T_rb_Change;
-static gint ett_rrc_RB_InformationChangedList_r6;
-static gint ett_rrc_RB_InformationReconfig;
-static gint ett_rrc_RB_InformationReconfig_r4;
-static gint ett_rrc_RB_InformationReconfig_r5;
-static gint ett_rrc_RB_InformationReconfig_r6;
-static gint ett_rrc_RB_InformationReconfig_r7;
-static gint ett_rrc_RB_InformationReconfig_r8;
-static gint ett_rrc_RB_InformationReconfig_r11;
-static gint ett_rrc_RB_InformationReconfigList;
-static gint ett_rrc_RB_InformationReconfigList_r4;
-static gint ett_rrc_RB_InformationReconfigList_r5;
-static gint ett_rrc_RB_InformationReconfigList_r6;
-static gint ett_rrc_RB_InformationReconfigList_r7;
-static gint ett_rrc_RB_InformationReconfigList_r8;
-static gint ett_rrc_RB_InformationReconfigList_r11;
-static gint ett_rrc_RB_InformationReleaseList;
-static gint ett_rrc_RB_InformationSetup;
-static gint ett_rrc_RB_InformationSetup_r4;
-static gint ett_rrc_RB_InformationSetup_r5;
-static gint ett_rrc_RB_InformationSetup_r6;
-static gint ett_rrc_RB_InformationSetup_r7;
-static gint ett_rrc_RB_InformationSetup_r8;
-static gint ett_rrc_RB_InformationSetup_r11;
-static gint ett_rrc_RB_InformationSetupList;
-static gint ett_rrc_RB_InformationSetupList_r4;
-static gint ett_rrc_RB_InformationSetupList_r5;
-static gint ett_rrc_RB_InformationSetupList_r6;
-static gint ett_rrc_RB_InformationSetupList_r7;
-static gint ett_rrc_RB_InformationSetupList_r8;
-static gint ett_rrc_RB_InformationSetupList_r11;
-static gint ett_rrc_RB_MappingInfo;
-static gint ett_rrc_RB_MappingInfo_r5;
-static gint ett_rrc_RB_MappingInfo_r6;
-static gint ett_rrc_RB_MappingInfo_r7;
-static gint ett_rrc_RB_MappingInfo_r8;
-static gint ett_rrc_RB_MappingOption;
-static gint ett_rrc_RB_MappingOption_r5;
-static gint ett_rrc_RB_MappingOption_r6;
-static gint ett_rrc_RB_MappingOption_r7;
-static gint ett_rrc_RB_MappingOption_r8;
-static gint ett_rrc_RB_PDCPContextRelocation;
-static gint ett_rrc_RB_PDCPContextRelocationList;
-static gint ett_rrc_RB_WithPDCP_Info;
-static gint ett_rrc_RB_WithPDCP_InfoList;
-static gint ett_rrc_RetrievableConfig;
-static gint ett_rrc_RetrievableConfigData;
-static gint ett_rrc_RetrievableConfigInfo;
-static gint ett_rrc_RetrievableConfig_List;
-static gint ett_rrc_RetrievableConfigListToRemove;
-static gint ett_rrc_RFC2507_Info;
-static gint ett_rrc_RFC3095_Info_r4;
-static gint ett_rrc_RLC_Info;
-static gint ett_rrc_RLC_Info_r5;
-static gint ett_rrc_RLC_Info_r6;
-static gint ett_rrc_RLC_Info_r7;
-static gint ett_rrc_RLC_Info_r11;
-static gint ett_rrc_RLC_Info_MCCH_r6;
-static gint ett_rrc_RLC_Info_MSCH_r6;
-static gint ett_rrc_RLC_Info_MTCH_r6;
-static gint ett_rrc_RLC_InfoChoice;
-static gint ett_rrc_RLC_InfoChoice_r5;
-static gint ett_rrc_RLC_InfoChoice_r6;
-static gint ett_rrc_RLC_InfoChoice_r7;
-static gint ett_rrc_RLC_InfoChoice_r11;
-static gint ett_rrc_RLC_PDU_SizeConstraint;
-static gint ett_rrc_RLC_PDU_SizeList;
-static gint ett_rrc_RLC_SizeInfo;
-static gint ett_rrc_RLC_SizeExplicitList;
-static gint ett_rrc_ROHC_ProfileList_r4;
-static gint ett_rrc_ROHC_PacketSizeList_r4;
-static gint ett_rrc_SRB_InformationSetup;
-static gint ett_rrc_SRB_InformationSetup_r5;
-static gint ett_rrc_SRB_InformationSetup_r6;
-static gint ett_rrc_SRB_InformationSetup_r7;
-static gint ett_rrc_SRB_InformationSetup_r8;
-static gint ett_rrc_SRB_InformationSetup_r11;
-static gint ett_rrc_SRB_InformationSetupList;
-static gint ett_rrc_SRB_InformationSetupList_r5;
-static gint ett_rrc_SRB_InformationSetupList_r6;
-static gint ett_rrc_SRB_InformationSetupList_r7;
-static gint ett_rrc_SRB_InformationSetupList_r8;
-static gint ett_rrc_SRB_InformationSetupList_r11;
-static gint ett_rrc_SRB_InformationSetupList2;
-static gint ett_rrc_SRB_InformationSetupList2_r6;
-static gint ett_rrc_SRB_InformationSetupList2_r7;
-static gint ett_rrc_SRB_InformationSetupList2_r8;
-static gint ett_rrc_TransmissionRLC_Discard;
-static gint ett_rrc_UL_AM_RLC_Mode;
-static gint ett_rrc_UL_CounterSynchronisationInfo;
-static gint ett_rrc_UL_LogicalChannelMapping;
-static gint ett_rrc_T_rlc_SizeList;
-static gint ett_rrc_UL_LogicalChannelMapping_r6;
-static gint ett_rrc_T_ul_TrCH_Type;
-static gint ett_rrc_T_dch_rach_usch;
-static gint ett_rrc_T_rlc_SizeList_01;
-static gint ett_rrc_T_e_dch;
-static gint ett_rrc_UL_LogicalChannelMapping_r8;
-static gint ett_rrc_T_ul_TrCH_Type_01;
-static gint ett_rrc_T_dch_rach_usch_01;
-static gint ett_rrc_T_rlc_SizeList_02;
-static gint ett_rrc_T_e_dch_01;
-static gint ett_rrc_T_rlc_PDU_Size;
-static gint ett_rrc_T_fixedSize;
-static gint ett_rrc_UL_LogicalChannelMappingList;
-static gint ett_rrc_SEQUENCE_SIZE_maxLoCHperRLC_OF_UL_LogicalChannelMapping;
-static gint ett_rrc_UL_LogicalChannelMappingList_r6;
-static gint ett_rrc_SEQUENCE_SIZE_maxLoCHperRLC_OF_UL_LogicalChannelMapping_r6;
-static gint ett_rrc_UL_LogicalChannelMappingList_r8;
-static gint ett_rrc_SEQUENCE_SIZE_maxLoCHperRLC_OF_UL_LogicalChannelMapping_r8;
-static gint ett_rrc_UL_LogicalChannelMappings;
-static gint ett_rrc_UL_LogicalChannelMappings_r6;
-static gint ett_rrc_UL_LogicalChannelMappings_r8;
-static gint ett_rrc_UL_RFC3095_r4;
-static gint ett_rrc_UL_RLC_Mode;
-static gint ett_rrc_UL_TM_RLC_Mode;
-static gint ett_rrc_UL_UM_RLC_Mode;
-static gint ett_rrc_UL_TransportChannelType;
-static gint ett_rrc_UM_RLC_DuplAvoid_Reord_Info_r6;
-static gint ett_rrc_UM_RLC_OutOSeqDelivery_Info_r6;
-static gint ett_rrc_AddOrReconfMAC_dFlow;
-static gint ett_rrc_AddOrReconfMAC_ehs_ReordQ;
-static gint ett_rrc_AddOrReconfMAC_ehs_ReordQ_r9;
-static gint ett_rrc_AddOrReconfMAC_ehs_ReordQ_TDD128_v9c0ext;
-static gint ett_rrc_AddOrReconfMAC_ehs_ReordQ_r11;
-static gint ett_rrc_AllowedTFC_List;
-static gint ett_rrc_AllowedTFI_List;
-static gint ett_rrc_BitModeRLC_SizeInfo;
-static gint ett_rrc_T_sizeType2;
-static gint ett_rrc_T_sizeType3;
-static gint ett_rrc_T_sizeType4;
-static gint ett_rrc_ChannelCodingType;
-static gint ett_rrc_Common_E_DCH_MAC_d_Flow;
-static gint ett_rrc_Common_E_DCH_MAC_d_FlowList;
-static gint ett_rrc_Common_E_DCH_MAC_d_Flow_Info_ConcurrentTTI;
-static gint ett_rrc_Common_E_DCH_MAC_d_Flow_Info_List_ConcurrentTTI;
-static gint ett_rrc_CommonDynamicTF_Info;
-static gint ett_rrc_T_rlc_Size;
-static gint ett_rrc_T_fdd_49;
-static gint ett_rrc_T_tdd_14;
-static gint ett_rrc_T_commonTDD_Choice;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTF_OF_NumberOfTransportBlocks;
-static gint ett_rrc_CommonDynamicTF_Info_DynamicTTI;
-static gint ett_rrc_T_commonTDD_Choice_01;
-static gint ett_rrc_CommonDynamicTF_InfoList;
-static gint ett_rrc_CommonDynamicTF_InfoList_DynamicTTI;
-static gint ett_rrc_CommonTransChTFS;
-static gint ett_rrc_T_tti;
-static gint ett_rrc_CommonTransChTFS_LCR;
-static gint ett_rrc_T_tti_01;
-static gint ett_rrc_Common_MAC_ehs_ReorderingQueue;
-static gint ett_rrc_Common_MAC_ehs_ReorderingQueueList;
-static gint ett_rrc_Concurrent_Deployment_2ms_10ms_TTI;
-static gint ett_rrc_T_tti_selection;
-static gint ett_rrc_T_fixed;
-static gint ett_rrc_T_threshold_based;
-static gint ett_rrc_DedicatedDynamicTF_Info;
-static gint ett_rrc_T_rlc_Size_01;
-static gint ett_rrc_DedicatedDynamicTF_Info_DynamicTTI;
-static gint ett_rrc_T_rlc_Size_02;
-static gint ett_rrc_DedicatedDynamicTF_InfoList;
-static gint ett_rrc_DedicatedDynamicTF_InfoList_DynamicTTI;
-static gint ett_rrc_DedicatedTransChTFS;
-static gint ett_rrc_T_tti_02;
-static gint ett_rrc_DL_AddReconfTransChInfo2List;
-static gint ett_rrc_DL_AddReconfTransChInfoList;
-static gint ett_rrc_DL_AddReconfTransChInfoList_r4;
-static gint ett_rrc_DL_AddReconfTransChInfoList_r5;
-static gint ett_rrc_DL_AddReconfTransChInfoList_r7;
-static gint ett_rrc_DL_AddReconfTransChInfoList_r9;
-static gint ett_rrc_DL_AddReconfTransChInfoList_r11;
-static gint ett_rrc_DL_AddReconfTransChInfoList_r13;
-static gint ett_rrc_DL_AddReconfTransChInfoList_TDD128_v9c0ext;
-static gint ett_rrc_DL_AddReconfTransChInformation;
-static gint ett_rrc_T_tfs_SignallingMode;
-static gint ett_rrc_DL_AddReconfTransChInformation_r4;
-static gint ett_rrc_T_tfs_SignallingMode_01;
-static gint ett_rrc_DL_AddReconfTransChInformation_r5;
-static gint ett_rrc_T_tfs_SignallingMode_02;
-static gint ett_rrc_DL_AddReconfTransChInformation_r7;
-static gint ett_rrc_T_tfs_SignallingMode_03;
-static gint ett_rrc_DL_AddReconfTransChInformation_r9;
-static gint ett_rrc_T_tfs_SignallingMode_04;
-static gint ett_rrc_DL_AddReconfTransChInformation_r11;
-static gint ett_rrc_T_tfs_SignallingMode_05;
-static gint ett_rrc_DL_AddReconfTransChInformation_r13;
-static gint ett_rrc_T_tfs_SignallingMode_06;
-static gint ett_rrc_DL_AddReconfTransChInformation_TDD128_v9c0ext;
-static gint ett_rrc_DL_AddReconfTransChInformation2;
-static gint ett_rrc_T_tfs_SignallingMode_07;
-static gint ett_rrc_DL_CommonTransChInfo;
-static gint ett_rrc_T_modeSpecificInfo_20;
-static gint ett_rrc_T_fdd_50;
-static gint ett_rrc_T_dl_Parameters;
-static gint ett_rrc_T_tdd_15;
-static gint ett_rrc_DL_CommonTransChInfo_r4;
-static gint ett_rrc_T_modeSpecificInfo_21;
-static gint ett_rrc_T_fdd_51;
-static gint ett_rrc_T_dl_Parameters_01;
-static gint ett_rrc_T_dl_DCH_TFCS;
-static gint ett_rrc_T_tdd_16;
-static gint ett_rrc_DL_DeletedTransChInfoList;
-static gint ett_rrc_DL_DeletedTransChInfoList_r5;
-static gint ett_rrc_DL_DeletedTransChInfoList_r7;
-static gint ett_rrc_DL_TransportChannelIdentity;
-static gint ett_rrc_DL_TransportChannelIdentity_r5;
-static gint ett_rrc_DL_TransportChannelIdentity_r7;
-static gint ett_rrc_DL_TrCH_TypeId1_r5;
-static gint ett_rrc_DL_TrCH_TypeId2_r5;
-static gint ett_rrc_DL_TrCH_TypeId2_r7;
-static gint ett_rrc_T_hsdsch_01;
-static gint ett_rrc_DRAC_StaticInformation;
-static gint ett_rrc_DRAC_StaticInformationList;
-static gint ett_rrc_E_DCH_AddReconf_MAC_d_Flow;
-static gint ett_rrc_T_transmissionGrantType;
-static gint ett_rrc_T_non_ScheduledTransGrantInfo;
-static gint ett_rrc_E_DCH_AddReconf_MAC_d_Flow_r7;
-static gint ett_rrc_T_transmissionGrantType_01;
-static gint ett_rrc_T_non_ScheduledTransGrantInfo_01;
-static gint ett_rrc_T_modeSpecificInfo_22;
-static gint ett_rrc_T_fdd_52;
-static gint ett_rrc_E_DCH_AddReconf_MAC_d_FlowList;
-static gint ett_rrc_E_DCH_AddReconf_MAC_d_FlowList_r7;
-static gint ett_rrc_ExplicitTFCS_Configuration;
-static gint ett_rrc_T_replacement;
-static gint ett_rrc_ExplicitTFCS_Configuration_r12;
-static gint ett_rrc_T_replacement_01;
-static gint ett_rrc_GainFactorInformation;
-static gint ett_rrc_GainFactorInformation_10msMode;
-static gint ett_rrc_T_signalledGainFactors;
-static gint ett_rrc_HSDSCH_Info;
-static gint ett_rrc_HSDSCH_Info_r7;
-static gint ett_rrc_T_dl_MAC_HeaderType;
-static gint ett_rrc_HSDSCH_Info_r9;
-static gint ett_rrc_T_dl_MAC_HeaderType_01;
-static gint ett_rrc_HSDSCH_Info_r11;
-static gint ett_rrc_T_dl_MAC_HeaderType_02;
-static gint ett_rrc_HSDSCH_Info_r13;
-static gint ett_rrc_T_dl_MAC_HeaderType_03;
-static gint ett_rrc_HSDSCH_Info_TDD128_v9c0ext;
-static gint ett_rrc_HARQ_Info;
-static gint ett_rrc_T_memoryPartitioning;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHProcesses_OF_HARQMemorySize;
-static gint ett_rrc_HARQ_Info_r7;
-static gint ett_rrc_T_memoryPartitioning_01;
-static gint ett_rrc_T_explicit;
-static gint ett_rrc_HARQ_Info_r11;
-static gint ett_rrc_T_memoryPartitioning_02;
-static gint ett_rrc_T_explicit_01;
-static gint ett_rrc_HARQ_Info_r13;
-static gint ett_rrc_T_memoryPartitioning_03;
-static gint ett_rrc_T_explicit_02;
-static gint ett_rrc_IndividualDL_CCTrCH_Info;
-static gint ett_rrc_T_tfcs_SignallingMode;
-static gint ett_rrc_IndividualDL_CCTrCH_InfoList;
-static gint ett_rrc_IndividualUL_CCTrCH_Info;
-static gint ett_rrc_IndividualUL_CCTrCH_InfoList;
-static gint ett_rrc_LogicalChannelByRB;
-static gint ett_rrc_LogicalChannelList;
-static gint ett_rrc_SEQUENCE_SIZE_1_15_OF_LogicalChannelByRB;
-static gint ett_rrc_MAC_d_FlowIdentityDCHandHSDSCH;
-static gint ett_rrc_MAC_d_PDU_SizeInfo_List;
-static gint ett_rrc_MAC_d_PDUsizeInfo;
-static gint ett_rrc_MAC_hs_AddReconfQueue_List;
-static gint ett_rrc_MAC_hs_AddReconfQueue;
-static gint ett_rrc_MAC_hs_DelQueue_List;
-static gint ett_rrc_MAC_hs_DelQueue;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ_List;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ_List_r9;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ_List_TDD128_v9c0ext;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ_List_r11;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ_r9;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ_TDD128_v9c0ext;
-static gint ett_rrc_MAC_ehs_AddReconfReordQ_r11;
-static gint ett_rrc_MAC_ehs_DelReordQ_List;
-static gint ett_rrc_MAC_ehs_DelReordQ;
-static gint ett_rrc_MAC_ehs_QueueIdDCHandHSDSCH;
-static gint ett_rrc_NumberOfTbSizeAndTTIList;
-static gint ett_rrc_NumberOfTbSizeAndTTIList_item;
-static gint ett_rrc_Non_allowedTFC_List;
-static gint ett_rrc_NumberOfTransportBlocks;
-static gint ett_rrc_OctetModeRLC_SizeInfoType1;
-static gint ett_rrc_T_sizeType2_01;
-static gint ett_rrc_T_sizeType3_01;
-static gint ett_rrc_OctetModeRLC_SizeInfoType2;
-static gint ett_rrc_PowerOffsetInfoShort;
-static gint ett_rrc_T_modeSpecificInfo_23;
-static gint ett_rrc_T_fdd_53;
-static gint ett_rrc_PowerOffsetInformation;
-static gint ett_rrc_PowerOffsetInformation_10msMode;
-static gint ett_rrc_PreDefTransChConfiguration;
-static gint ett_rrc_QualityTarget;
-static gint ett_rrc_RestrictedTrChInfo;
-static gint ett_rrc_RestrictedTrChInfoList;
-static gint ett_rrc_SemistaticTF_Information;
-static gint ett_rrc_SignalledGainFactors;
-static gint ett_rrc_T_modeSpecificInfo_24;
-static gint ett_rrc_T_fdd_54;
-static gint ett_rrc_SplitTFCI_Signalling;
-static gint ett_rrc_TFC_Subset;
-static gint ett_rrc_TFC_SubsetList;
-static gint ett_rrc_TFC_SubsetList_item;
-static gint ett_rrc_T_modeSpecificInfo_25;
-static gint ett_rrc_T_tdd_17;
-static gint ett_rrc_TFCI_Field2_Information;
-static gint ett_rrc_TFCI_Range;
-static gint ett_rrc_TFCI_RangeList;
-static gint ett_rrc_TFCS;
-static gint ett_rrc_TFCS_r12;
-static gint ett_rrc_TFCS_Identity;
-static gint ett_rrc_TFCS_InfoForDSCH;
-static gint ett_rrc_TFCS_ReconfAdd;
-static gint ett_rrc_T_ctfcSize;
-static gint ett_rrc_T_ctfc2Bit;
-static gint ett_rrc_T_ctfc2Bit_item;
-static gint ett_rrc_T_ctfc4Bit;
-static gint ett_rrc_T_ctfc4Bit_item;
-static gint ett_rrc_T_ctfc6Bit;
-static gint ett_rrc_T_ctfc6Bit_item;
-static gint ett_rrc_T_ctfc8Bit;
-static gint ett_rrc_T_ctfc8Bit_item;
-static gint ett_rrc_T_ctfc12Bit;
-static gint ett_rrc_T_ctfc12Bit_item;
-static gint ett_rrc_T_ctfc16Bit;
-static gint ett_rrc_T_ctfc16Bit_item;
-static gint ett_rrc_T_ctfc24Bit;
-static gint ett_rrc_T_ctfc24Bit_item;
-static gint ett_rrc_TFCS_ReconfAdd_r12;
-static gint ett_rrc_T_ctfcSize_01;
-static gint ett_rrc_T_ctfc2Bit_01;
-static gint ett_rrc_T_ctfc2Bit_item_01;
-static gint ett_rrc_T_ctfc4Bit_01;
-static gint ett_rrc_T_ctfc4Bit_item_01;
-static gint ett_rrc_T_ctfc6Bit_01;
-static gint ett_rrc_T_ctfc6Bit_item_01;
-static gint ett_rrc_T_ctfc8Bit_01;
-static gint ett_rrc_T_ctfc8Bit_item_01;
-static gint ett_rrc_T_ctfc12Bit_01;
-static gint ett_rrc_T_ctfc12Bit_item_01;
-static gint ett_rrc_T_ctfc16Bit_01;
-static gint ett_rrc_T_ctfc16Bit_item_01;
-static gint ett_rrc_T_ctfc24Bit_01;
-static gint ett_rrc_T_ctfc24Bit_item_01;
-static gint ett_rrc_TFCS_Removal;
-static gint ett_rrc_TFCS_RemovalList;
-static gint ett_rrc_TM_SignallingInfo;
-static gint ett_rrc_T_tm_SignallingMode;
-static gint ett_rrc_T_mode2;
-static gint ett_rrc_TransportChannelConcatInfo;
-static gint ett_rrc_TransportChannelIdentityDCHandDSCH;
-static gint ett_rrc_TransportFormatSet;
-static gint ett_rrc_TransportFormatSet_LCR;
-static gint ett_rrc_UL_AddReconfTransChInfoList;
-static gint ett_rrc_UL_AddReconfTransChInfoList_r6;
-static gint ett_rrc_UL_AddReconfTransChInfoList_r7;
-static gint ett_rrc_UL_AddReconfTransChInfoList_r8;
-static gint ett_rrc_UL_AddReconfTransChInfoList_r14;
-static gint ett_rrc_UL_AddReconfTransChInformation;
-static gint ett_rrc_UL_AddReconfTransChInformation_r6;
-static gint ett_rrc_T_dch_usch;
-static gint ett_rrc_T_e_dch_02;
-static gint ett_rrc_UL_AddReconfTransChInformation_r7;
-static gint ett_rrc_T_dch_usch_01;
-static gint ett_rrc_T_e_dch_03;
-static gint ett_rrc_T_modeSpecific;
-static gint ett_rrc_T_fdd_55;
-static gint ett_rrc_UL_AddReconfTransChInformation_r8;
-static gint ett_rrc_T_dch_usch_02;
-static gint ett_rrc_T_e_dch_04;
-static gint ett_rrc_T_modeSpecific_01;
-static gint ett_rrc_T_fdd_56;
-static gint ett_rrc_UL_AddReconfTransChInformation_r14;
-static gint ett_rrc_T_dch_usch_03;
-static gint ett_rrc_T_e_dch_05;
-static gint ett_rrc_T_modeSpecific_02;
-static gint ett_rrc_T_fdd_57;
-static gint ett_rrc_UL_CommonTransChInfo;
-static gint ett_rrc_T_modeSpecificInfo_26;
-static gint ett_rrc_T_fdd_58;
-static gint ett_rrc_T_tdd_18;
-static gint ett_rrc_UL_CommonTransChInfo_r4;
-static gint ett_rrc_T_modeSpecificInfo_27;
-static gint ett_rrc_T_fdd_59;
-static gint ett_rrc_T_tdd_19;
-static gint ett_rrc_UL_CommonTransChInfo_r12;
-static gint ett_rrc_T_modeSpecificInfo_28;
-static gint ett_rrc_T_fdd_60;
-static gint ett_rrc_T_tdd_20;
-static gint ett_rrc_UL_ControlledTrChList;
-static gint ett_rrc_UL_DeletedTransChInfoList;
-static gint ett_rrc_UL_DeletedTransChInfoList_r6;
-static gint ett_rrc_UL_TransportChannelIdentity;
-static gint ett_rrc_UL_TransportChannelIdentity_r6;
-static gint ett_rrc_T_dch_usch_04;
-static gint ett_rrc_USCH_TransportChannelsInfo;
-static gint ett_rrc_USCH_TransportChannelsInfo_item;
-static gint ett_rrc_AC_To_ASC_MappingTable;
-static gint ett_rrc_AccessServiceClass_FDD;
-static gint ett_rrc_T_assignedSubChannelNumber;
-static gint ett_rrc_AccessServiceClass_TDD;
-static gint ett_rrc_T_channelisationCodeIndices;
-static gint ett_rrc_T_subchannelSize;
-static gint ett_rrc_T_size2;
-static gint ett_rrc_T_size4;
-static gint ett_rrc_T_subchannels_01;
-static gint ett_rrc_T_size8;
-static gint ett_rrc_T_subchannels_02;
-static gint ett_rrc_AccessServiceClass_TDD_r7;
-static gint ett_rrc_T_channelisationCodeIndices_01;
-static gint ett_rrc_T_subchannelSize_01;
-static gint ett_rrc_T_size2_01;
-static gint ett_rrc_T_size4_01;
-static gint ett_rrc_T_subchannels_04;
-static gint ett_rrc_T_size8_01;
-static gint ett_rrc_T_subchannels_05;
-static gint ett_rrc_T_size16;
-static gint ett_rrc_T_subchannels_06;
-static gint ett_rrc_AccessServiceClass_TDD_LCR_r4;
-static gint ett_rrc_T_availableSYNC_UlCodesIndics;
-static gint ett_rrc_T_subchannelSize_02;
-static gint ett_rrc_T_size2_02;
-static gint ett_rrc_T_size4_02;
-static gint ett_rrc_T_subchannels_08;
-static gint ett_rrc_T_size8_02;
-static gint ett_rrc_T_subchannels_09;
-static gint ett_rrc_AdditionalPRACH_TF_and_TFCS_CCCH_IEs;
-static gint ett_rrc_AdditionalPRACH_TF_and_TFCS_CCCH;
-static gint ett_rrc_AdditionalPRACH_TF_and_TFCS_CCCH_List;
-static gint ett_rrc_AdditionalDLSecCellInfoListFDD;
-static gint ett_rrc_AdditionalDLSecCellInfoListFDD_r11;
-static gint ett_rrc_AdditionalDLSecCellInfoListFDD2;
-static gint ett_rrc_AdditionalDLSecCellInfoHandoverToUtranListFDD;
-static gint ett_rrc_AdditionalDLSecCellInfoFDD;
-static gint ett_rrc_AdditionalDLSecCellInfoFDD_r11;
-static gint ett_rrc_AdditionalDLSecCellInfoFDD_HandoverToUtran;
-static gint ett_rrc_AdditionalSecondaryCellInfoForMixedTTIConfiguration;
-static gint ett_rrc_AICH_Info;
-static gint ett_rrc_AICH_Info_Compressed;
-static gint ett_rrc_AllocationPeriodInfo;
-static gint ett_rrc_Antenna3And4;
-static gint ett_rrc_Antenna3And4_S_CPICH;
-static gint ett_rrc_Antenna3And4_D_CPICH;
-static gint ett_rrc_Antenna3_D_CPICH;
-static gint ett_rrc_Antenna4_D_CPICH;
-static gint ett_rrc_Antenna3_S_CPICH;
-static gint ett_rrc_Antenna4_S_CPICH;
-static gint ett_rrc_AP_Signature_VCAM;
-static gint ett_rrc_ASCSetting_FDD;
-static gint ett_rrc_ASCSetting_TDD;
-static gint ett_rrc_ASCSetting_TDD_r7;
-static gint ett_rrc_ASCSetting_TDD_LCR_r4;
-static gint ett_rrc_AvailableAP_Signature_VCAMList;
-static gint ett_rrc_AvailableAP_SignatureList;
-static gint ett_rrc_AvailableAP_SubchannelList;
-static gint ett_rrc_AvailableMinimumSF_ListVCAM;
-static gint ett_rrc_AvailableMinimumSF_VCAM;
-static gint ett_rrc_AvailableSignatures;
-static gint ett_rrc_AvailableSubChannelNumbers;
-static gint ett_rrc_CCTrCH_PowerControlInfo;
-static gint ett_rrc_CCTrCH_PowerControlInfo_r4;
-static gint ett_rrc_CCTrCH_PowerControlInfo_r5;
-static gint ett_rrc_CCTrCH_PowerControlInfo_r7;
-static gint ett_rrc_CD_AccessSlotSubchannelList;
-static gint ett_rrc_CD_SignatureCodeList;
-static gint ett_rrc_CellAndChannelIdentity;
-static gint ett_rrc_ChannelAssignmentActive;
-static gint ett_rrc_ChannelReqParamsForUCSM;
-static gint ett_rrc_CodeRange;
-static gint ett_rrc_CodeResourceInformation_TDD128;
-static gint ett_rrc_Common_E_DCH_ResourceInfoList;
-static gint ett_rrc_Common_E_DCH_ResourceInfoListExt;
-static gint ett_rrc_Common_E_RNTI_Info;
-static gint ett_rrc_Common_E_RNTI_Info_item;
-static gint ett_rrc_CommonEDCHResourceConfigInfoListExt;
-static gint ett_rrc_CommonEDCHSystemInfo;
-static gint ett_rrc_T_modeSpecificInfo_29;
-static gint ett_rrc_T_dummy_14;
-static gint ett_rrc_T_tdd_21;
-static gint ett_rrc_T_tdd128_12;
-static gint ett_rrc_T_ccch_transmission_Info;
-static gint ett_rrc_CommonEDCHSystemInfoFDD;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxEDCHs_OF_Common_E_DCH_ResourceInfoList;
-static gint ett_rrc_CommonEDCHSystemInfoParamConcurrentTTI;
-static gint ett_rrc_CommonERGCHChannelConfig;
-static gint ett_rrc_CommonERGCHInfoFDD;
-static gint ett_rrc_T_configurationInfo_03;
-static gint ett_rrc_T_newConfiguration_07;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_CommonERGCHChannelConfig;
-static gint ett_rrc_CommonTimeslotInfo;
-static gint ett_rrc_CommonTimeslotInfoMBMS;
-static gint ett_rrc_CommonTimeslotInfoSCCPCH;
-static gint ett_rrc_ControlChannelDRXInfo_TDD128_r8;
-static gint ett_rrc_T_controlChannelDrxOperation;
-static gint ett_rrc_T_continue;
-static gint ett_rrc_T_newOperation;
-static gint ett_rrc_CPCH_PersistenceLevels;
-static gint ett_rrc_CPCH_PersistenceLevelsList;
-static gint ett_rrc_CPCH_SetInfo;
-static gint ett_rrc_CPCH_SetInfoList;
-static gint ett_rrc_DCH_Enhancements_Info_FDD;
-static gint ett_rrc_T_configurationInfo_04;
-static gint ett_rrc_T_newConfiguration_08;
-static gint ett_rrc_T_ulTransmissionMode;
-static gint ett_rrc_T_tenORtwentyMS;
-static gint ett_rrc_T_dlFETMode;
-static gint ett_rrc_T_full;
-static gint ett_rrc_DesignatedNonServingHS_DSCHCellInfo;
-static gint ett_rrc_DL_CCTrCh;
-static gint ett_rrc_DL_CCTrCh_r4;
-static gint ett_rrc_T_tddOption_03;
-static gint ett_rrc_T_tdd384_12;
-static gint ett_rrc_T_tdd128_13;
-static gint ett_rrc_DL_CCTrCh_r7;
-static gint ett_rrc_T_tddOption_04;
-static gint ett_rrc_T_tdd384_13;
-static gint ett_rrc_T_tdd768_07;
-static gint ett_rrc_T_tdd128_14;
-static gint ett_rrc_DL_CCTrChList;
-static gint ett_rrc_DL_CCTrChList_r7;
-static gint ett_rrc_DL_CCTrChList_r4;
-static gint ett_rrc_DL_CCTrChListToRemove;
-static gint ett_rrc_DL_ChannelisationCode;
-static gint ett_rrc_DL_ChannelisationCodeList;
-static gint ett_rrc_DL_CommonInformation;
-static gint ett_rrc_T_modeSpecificInfo_30;
-static gint ett_rrc_T_fdd_61;
-static gint ett_rrc_T_tdd_22;
-static gint ett_rrc_DL_CommonInformation_r4;
-static gint ett_rrc_T_modeSpecificInfo_31;
-static gint ett_rrc_T_fdd_62;
-static gint ett_rrc_T_tdd_23;
-static gint ett_rrc_T_tddOption_05;
-static gint ett_rrc_T_tdd128_15;
-static gint ett_rrc_DL_CommonInformation_r5;
-static gint ett_rrc_T_modeSpecificInfo_32;
-static gint ett_rrc_T_fdd_63;
-static gint ett_rrc_T_tdd_24;
-static gint ett_rrc_T_tddOption_06;
-static gint ett_rrc_T_tdd128_16;
-static gint ett_rrc_DL_CommonInformation_r6;
-static gint ett_rrc_T_dl_dpchInfoCommon;
-static gint ett_rrc_T_modeSpecificInfo_33;
-static gint ett_rrc_T_fdd_64;
-static gint ett_rrc_T_tdd_25;
-static gint ett_rrc_T_tddOption_07;
-static gint ett_rrc_T_tdd128_17;
-static gint ett_rrc_DL_CommonInformation_r7;
-static gint ett_rrc_T_dl_dpchInfoCommon_01;
-static gint ett_rrc_T_modeSpecificInfo_34;
-static gint ett_rrc_T_fdd_65;
-static gint ett_rrc_T_tdd_26;
-static gint ett_rrc_T_tddOption_08;
-static gint ett_rrc_T_tdd128_18;
-static gint ett_rrc_DL_CommonInformation_r8;
-static gint ett_rrc_T_dl_dpchInfoCommon_02;
-static gint ett_rrc_T_modeSpecificInfo_35;
-static gint ett_rrc_T_fdd_66;
-static gint ett_rrc_T_tdd_27;
-static gint ett_rrc_T_tddOption_09;
-static gint ett_rrc_T_tdd128_19;
-static gint ett_rrc_DL_CommonInformation_r10;
-static gint ett_rrc_T_dl_dpchInfoCommon_03;
-static gint ett_rrc_T_modeSpecificInfo_36;
-static gint ett_rrc_T_fdd_67;
-static gint ett_rrc_T_tdd_28;
-static gint ett_rrc_T_tddOption_10;
-static gint ett_rrc_T_tdd128_20;
-static gint ett_rrc_DL_CommonInformation_r11;
-static gint ett_rrc_T_dl_dpchInfoCommon_04;
-static gint ett_rrc_T_modeSpecificInfo_37;
-static gint ett_rrc_T_fdd_68;
-static gint ett_rrc_T_tdd_29;
-static gint ett_rrc_T_tddOption_11;
-static gint ett_rrc_T_tdd128_21;
-static gint ett_rrc_DL_CommonInformation_r12;
-static gint ett_rrc_T_dl_dpchInfoCommon_05;
-static gint ett_rrc_T_modeSpecificInfo_38;
-static gint ett_rrc_T_fdd_69;
-static gint ett_rrc_T_tdd_30;
-static gint ett_rrc_T_tddOption_12;
-static gint ett_rrc_T_tdd128_22;
-static gint ett_rrc_DL_CommonInformationPost;
-static gint ett_rrc_DL_CommonInformationPredef;
-static gint ett_rrc_DL_DPCH_InfoCommon;
-static gint ett_rrc_T_cfnHandling;
-static gint ett_rrc_T_initialise;
-static gint ett_rrc_T_modeSpecificInfo_39;
-static gint ett_rrc_T_fdd_70;
-static gint ett_rrc_T_tdd_31;
-static gint ett_rrc_DL_DPCH_InfoCommon_r4;
-static gint ett_rrc_T_cfnHandling_01;
-static gint ett_rrc_T_initialise_01;
-static gint ett_rrc_T_modeSpecificInfo_40;
-static gint ett_rrc_T_fdd_71;
-static gint ett_rrc_T_tdd_32;
-static gint ett_rrc_DL_DPCH_InfoCommon_r6;
-static gint ett_rrc_T_cfnHandling_02;
-static gint ett_rrc_T_maintain;
-static gint ett_rrc_T_modeSpecificInfo_41;
-static gint ett_rrc_T_fdd_72;
-static gint ett_rrc_T_tdd_33;
-static gint ett_rrc_DL_DPCH_InfoCommon_r12;
-static gint ett_rrc_T_cfnHandling_03;
-static gint ett_rrc_T_maintain_01;
-static gint ett_rrc_T_modeSpecificInfo_42;
-static gint ett_rrc_T_fdd_73;
-static gint ett_rrc_T_tdd_34;
-static gint ett_rrc_DL_DPCH_InfoCommonPost;
-static gint ett_rrc_DL_DPCH_InfoCommonPredef;
-static gint ett_rrc_T_modeSpecificInfo_43;
-static gint ett_rrc_T_fdd_74;
-static gint ett_rrc_T_tdd_35;
-static gint ett_rrc_DL_DPCH_InfoPerRL;
-static gint ett_rrc_T_fdd_75;
-static gint ett_rrc_T_tdd_36;
-static gint ett_rrc_DL_DPCH_InfoPerRL_r4;
-static gint ett_rrc_T_fdd_76;
-static gint ett_rrc_T_tdd_37;
-static gint ett_rrc_DL_DPCH_InfoPerRL_r5;
-static gint ett_rrc_T_fdd_77;
-static gint ett_rrc_T_tdd_38;
-static gint ett_rrc_DL_DPCH_InfoPerRL_r6;
-static gint ett_rrc_T_fdd_78;
-static gint ett_rrc_T_tdd_39;
-static gint ett_rrc_DL_DPCH_InfoPerRL_r7;
-static gint ett_rrc_T_fdd_79;
-static gint ett_rrc_T_tdd_40;
-static gint ett_rrc_DL_DPCH_InfoPerRL_r12;
-static gint ett_rrc_T_fdd_80;
-static gint ett_rrc_T_tdd_41;
-static gint ett_rrc_DL_DPCH_InfoPerRL_ASU;
-static gint ett_rrc_T_fdd_81;
-static gint ett_rrc_T_tdd_42;
-static gint ett_rrc_DL_FDPCH_InfoPerRL_r6;
-static gint ett_rrc_DL_FDPCH_InfoPerRL_r7;
-static gint ett_rrc_DL_FDPCH_InfoPerRL_r13;
-static gint ett_rrc_DL_DPCH_InfoPerRL_PostFDD;
-static gint ett_rrc_DL_DPCH_InfoPerRL_PostTDD;
-static gint ett_rrc_DL_DPCH_InfoPerRL_PostTDD_LCR_r4;
-static gint ett_rrc_DL_DPCH_PowerControlInfo;
-static gint ett_rrc_T_modeSpecificInfo_44;
-static gint ett_rrc_T_fdd_82;
-static gint ett_rrc_T_tdd_43;
-static gint ett_rrc_DL_FDPCH_InfoCommon_r6;
-static gint ett_rrc_T_cfnHandling_04;
-static gint ett_rrc_T_maintain_02;
-static gint ett_rrc_DL_HSPDSCH_Information;
-static gint ett_rrc_T_modeSpecificInfo_45;
-static gint ett_rrc_T_tdd_44;
-static gint ett_rrc_T_tdd384_14;
-static gint ett_rrc_T_tdd128_23;
-static gint ett_rrc_DL_HSPDSCH_Information_r6;
-static gint ett_rrc_T_modeSpecificInfo_46;
-static gint ett_rrc_T_tdd_45;
-static gint ett_rrc_T_tdd384_15;
-static gint ett_rrc_T_tdd128_24;
-static gint ett_rrc_DL_HSPDSCH_Information_r7;
-static gint ett_rrc_T_modeSpecificInfo_47;
-static gint ett_rrc_T_tdd_46;
-static gint ett_rrc_T_tdd384_16;
-static gint ett_rrc_T_tdd768_08;
-static gint ett_rrc_T_tdd128_25;
-static gint ett_rrc_T_fdd_83;
-static gint ett_rrc_DL_HSPDSCH_Information_r8;
-static gint ett_rrc_T_modeSpecificInfo_48;
-static gint ett_rrc_T_tdd_47;
-static gint ett_rrc_T_tdd384_17;
-static gint ett_rrc_T_tdd768_09;
-static gint ett_rrc_T_tdd128_26;
-static gint ett_rrc_T_fdd_84;
-static gint ett_rrc_DL_HSPDSCH_Information_r8_ext;
-static gint ett_rrc_T_modeSpecificInfo_49;
-static gint ett_rrc_T_tdd_48;
-static gint ett_rrc_T_tdd128_27;
-static gint ett_rrc_DL_HSPDSCH_Information_r8_ext2;
-static gint ett_rrc_DL_HSPDSCH_Information_r9;
-static gint ett_rrc_T_modeSpecificInfo_50;
-static gint ett_rrc_T_tdd_49;
-static gint ett_rrc_T_tdd384_18;
-static gint ett_rrc_T_tdd768_10;
-static gint ett_rrc_T_tdd128_28;
-static gint ett_rrc_T_fdd_85;
-static gint ett_rrc_DL_HSPDSCH_Information_r11;
-static gint ett_rrc_T_modeSpecificInfo_51;
-static gint ett_rrc_T_tdd_50;
-static gint ett_rrc_T_tdd384_19;
-static gint ett_rrc_T_tdd768_11;
-static gint ett_rrc_T_tdd128_29;
-static gint ett_rrc_T_fdd_86;
-static gint ett_rrc_DL_HSPDSCH_Information_r12;
-static gint ett_rrc_T_modeSpecificInfo_52;
-static gint ett_rrc_T_tdd_51;
-static gint ett_rrc_T_tdd384_20;
-static gint ett_rrc_T_tdd768_12;
-static gint ett_rrc_T_tdd128_30;
-static gint ett_rrc_T_fdd_87;
-static gint ett_rrc_DL_HSPDSCH_MultiCarrier_Information;
-static gint ett_rrc_DL_HSPDSCH_MultiCarrier_Information_item;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD128_MultiCarrier;
-static gint ett_rrc_DL_HSPDSCH_TS_Configuration;
-static gint ett_rrc_DL_HSPDSCH_TS_Configuration_item;
-static gint ett_rrc_DL_HSPDSCH_TS_Configuration_VHCR;
-static gint ett_rrc_DL_HSPDSCH_TS_Configuration_VHCR_item;
-static gint ett_rrc_DL_InformationPerRL;
-static gint ett_rrc_T_modeSpecificInfo_53;
-static gint ett_rrc_T_fdd_88;
-static gint ett_rrc_DL_InformationPerRL_r4;
-static gint ett_rrc_T_modeSpecificInfo_54;
-static gint ett_rrc_T_fdd_89;
-static gint ett_rrc_DL_InformationPerRL_r5;
-static gint ett_rrc_T_modeSpecificInfo_55;
-static gint ett_rrc_T_fdd_90;
-static gint ett_rrc_DL_InformationPerRL_r5bis;
-static gint ett_rrc_T_modeSpecificInfo_56;
-static gint ett_rrc_T_fdd_91;
-static gint ett_rrc_DL_InformationPerRL_r6;
-static gint ett_rrc_T_modeSpecificInfo_57;
-static gint ett_rrc_T_fdd_92;
-static gint ett_rrc_T_dl_dpchInfo;
-static gint ett_rrc_T_e_HICH_Info;
-static gint ett_rrc_T_e_RGCH_Info_03;
-static gint ett_rrc_DL_InformationPerRL_v6b0ext;
-static gint ett_rrc_DL_InformationPerRL_r7;
-static gint ett_rrc_T_modeSpecificInfo_58;
-static gint ett_rrc_T_fdd_93;
-static gint ett_rrc_T_dl_dpchInfo_01;
-static gint ett_rrc_T_modeSpecificInfo2;
-static gint ett_rrc_T_fdd_94;
-static gint ett_rrc_T_e_HICH_Info_01;
-static gint ett_rrc_T_e_RGCH_Info_04;
-static gint ett_rrc_T_tdd_52;
-static gint ett_rrc_T_tdd384_tdd768;
-static gint ett_rrc_T_tdd128_31;
-static gint ett_rrc_DL_InformationPerRL_r8;
-static gint ett_rrc_T_modeSpecificInfo_59;
-static gint ett_rrc_T_fdd_95;
-static gint ett_rrc_T_dl_dpchInfo_02;
-static gint ett_rrc_T_modeSpecificInfo2_01;
-static gint ett_rrc_T_fdd_96;
-static gint ett_rrc_T_e_HICH_Info_02;
-static gint ett_rrc_T_e_RGCH_Info_05;
-static gint ett_rrc_T_tdd_53;
-static gint ett_rrc_T_tdd384_tdd768_01;
-static gint ett_rrc_T_tdd128_32;
-static gint ett_rrc_DL_InformationPerRL_r11;
-static gint ett_rrc_T_modeSpecificInfo_60;
-static gint ett_rrc_T_fdd_97;
-static gint ett_rrc_T_dl_dpchInfo_03;
-static gint ett_rrc_T_modeSpecificInfo2_02;
-static gint ett_rrc_T_fdd_98;
-static gint ett_rrc_T_e_HICH_Info_03;
-static gint ett_rrc_T_e_RGCH_Info_06;
-static gint ett_rrc_T_f_TPICH_Info;
-static gint ett_rrc_T_tdd_54;
-static gint ett_rrc_T_tdd384_tdd768_02;
-static gint ett_rrc_T_tdd128_33;
-static gint ett_rrc_DL_InformationPerRL_r12;
-static gint ett_rrc_T_modeSpecificInfo_61;
-static gint ett_rrc_T_fdd_99;
-static gint ett_rrc_T_dl_dpchInfo_04;
-static gint ett_rrc_T_modeSpecificInfo2_03;
-static gint ett_rrc_T_fdd_100;
-static gint ett_rrc_T_e_HICH_Info_04;
-static gint ett_rrc_T_e_RGCH_Info_07;
-static gint ett_rrc_T_f_TPICH_Info_01;
-static gint ett_rrc_T_tdd_55;
-static gint ett_rrc_T_tdd384_tdd768_03;
-static gint ett_rrc_T_tdd128_34;
-static gint ett_rrc_DL_InformationPerRL_r13;
-static gint ett_rrc_T_modeSpecificInfo_62;
-static gint ett_rrc_T_fdd_101;
-static gint ett_rrc_T_dl_dpchInfo_05;
-static gint ett_rrc_T_modeSpecificInfo2_04;
-static gint ett_rrc_T_fdd_102;
-static gint ett_rrc_T_e_HICH_Info_05;
-static gint ett_rrc_T_e_RGCH_Info_08;
-static gint ett_rrc_T_f_TPICH_Info_02;
-static gint ett_rrc_T_tdd_56;
-static gint ett_rrc_T_tdd384_tdd768_04;
-static gint ett_rrc_T_tdd128_35;
-static gint ett_rrc_DL_InformationPerRL_List;
-static gint ett_rrc_DL_InformationPerRL_List_r4;
-static gint ett_rrc_DL_InformationPerRL_List_r5;
-static gint ett_rrc_DL_InformationPerRL_List_r6;
-static gint ett_rrc_DL_InformationPerRL_List_v6b0ext;
-static gint ett_rrc_DL_InformationPerRL_List_r5bis;
-static gint ett_rrc_DL_InformationPerRL_List_r7;
-static gint ett_rrc_DL_InformationPerRL_List_r8;
-static gint ett_rrc_DL_InformationPerRL_List_r11;
-static gint ett_rrc_DL_InformationPerRL_List_r12;
-static gint ett_rrc_DL_InformationPerRL_List_r13;
-static gint ett_rrc_DL_InformationPerRL_ListPostFDD;
-static gint ett_rrc_DL_InformationPerRL_PostFDD;
-static gint ett_rrc_DL_InformationPerRL_PostTDD;
-static gint ett_rrc_DL_InformationPerRL_PostTDD_LCR_r4;
-static gint ett_rrc_DL_MultiCarrier_Information;
-static gint ett_rrc_DL_PDSCH_Information;
-static gint ett_rrc_Dl_rate_matching_restriction;
-static gint ett_rrc_DL_SecondaryCellInfoFDD;
-static gint ett_rrc_T_newConfiguration_09;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_Codes;
-static gint ett_rrc_DL_SecondaryCellInfoFDD_v890ext;
-static gint ett_rrc_DL_SecondaryCellInfoFDD_r9;
-static gint ett_rrc_T_configurationInfo_05;
-static gint ett_rrc_T_newConfiguration_10;
-static gint ett_rrc_DL_SecondaryCellInfoFDD_r10;
-static gint ett_rrc_T_configurationInfo_06;
-static gint ett_rrc_T_newConfiguration_11;
-static gint ett_rrc_DL_SecondaryCellInfoFDD_r11;
-static gint ett_rrc_T_configurationInfo_07;
-static gint ett_rrc_T_newConfiguration_12;
-static gint ett_rrc_DL_SecondaryCellInfoFDD_HandoverToUtran;
-static gint ett_rrc_T_configurationInfo_08;
-static gint ett_rrc_T_newConfiguration_13;
-static gint ett_rrc_DL_TPC_PowerOffsetPerRL;
-static gint ett_rrc_DL_TPC_PowerOffsetPerRL_List;
-static gint ett_rrc_DL_TS_ChannelisationCodesShort;
-static gint ett_rrc_T_codesRepresentation;
-static gint ett_rrc_T_consecutive;
-static gint ett_rrc_T_bitmap;
-static gint ett_rrc_DL_TS_ChannelisationCodesShort_VHCR;
-static gint ett_rrc_T_codesRepresentation_01;
-static gint ett_rrc_T_consecutive_01;
-static gint ett_rrc_T_bitmap_01;
-static gint ett_rrc_DL_ChannelCodes_MBSFN_IMB384;
-static gint ett_rrc_DLUL_HSPA_Information_r8;
-static gint ett_rrc_DLUL_HSPA_Information_r9;
-static gint ett_rrc_DLUL_HSPA_Information_r10;
-static gint ett_rrc_DownlinkAdditionalTimeslots;
-static gint ett_rrc_T_parameters;
-static gint ett_rrc_T_sameAsLast;
-static gint ett_rrc_T_newParameters;
-static gint ett_rrc_DownlinkAdditionalTimeslots_VHCR;
-static gint ett_rrc_T_parameters_01;
-static gint ett_rrc_T_sameAsLast_01;
-static gint ett_rrc_T_newParameters_01;
-static gint ett_rrc_DownlinkAdditionalTimeslots_LCR_r4;
-static gint ett_rrc_T_parameters_02;
-static gint ett_rrc_T_sameAsLast_02;
-static gint ett_rrc_T_newParameters_02;
-static gint ett_rrc_DownlinkAdditionalTimeslots_r7;
-static gint ett_rrc_T_parameters_03;
-static gint ett_rrc_T_sameAsLast_03;
-static gint ett_rrc_T_newParameters_03;
-static gint ett_rrc_DownlinkTimeslotsCodes;
-static gint ett_rrc_T_moreTimeslots;
-static gint ett_rrc_T_additionalTimeslots;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_DownlinkAdditionalTimeslots;
-static gint ett_rrc_DownlinkTimeslotsCodes_VHCR;
-static gint ett_rrc_T_moreTimeslots_01;
-static gint ett_rrc_T_additionalTimeslots_01;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_DownlinkAdditionalTimeslots_VHCR;
-static gint ett_rrc_DownlinkTimeslotsCodes_LCR_r4;
-static gint ett_rrc_T_moreTimeslots_02;
-static gint ett_rrc_T_additionalTimeslots_02;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_DownlinkAdditionalTimeslots_LCR_r4;
-static gint ett_rrc_DownlinkTimeslotsCodes_r7;
-static gint ett_rrc_T_moreTimeslots_03;
-static gint ett_rrc_T_additionalTimeslots_03;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_DownlinkAdditionalTimeslots_r7;
-static gint ett_rrc_DPCCH2Info;
-static gint ett_rrc_DPCCH2InfoFDD;
-static gint ett_rrc_T_configurationInfo_09;
-static gint ett_rrc_T_newConfiguration_14;
-static gint ett_rrc_DPCH_CompressedModeInfo;
-static gint ett_rrc_DPCH_CompressedModeInfo_r8;
-static gint ett_rrc_DPCH_CompressedModeInfo_r10;
-static gint ett_rrc_DPCH_CompressedModeStatusInfo;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTGPS_OF_TGP_SequenceShort;
-static gint ett_rrc_DPCH_CompressedModeStatusInfo_r10;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTGPS_OF_TGP_SequenceShort_r10;
-static gint ett_rrc_DRX_Info;
-static gint ett_rrc_DRX_Info_r12;
-static gint ett_rrc_DSCH_Mapping;
-static gint ett_rrc_DSCH_MappingList;
-static gint ett_rrc_DSCH_TransportChannelsInfo;
-static gint ett_rrc_DSCH_TransportChannelsInfo_item;
-static gint ett_rrc_DTX_DRX_Info_r7;
-static gint ett_rrc_DTX_DRX_Info_r12;
-static gint ett_rrc_DTX_E_DCH_TTI_10ms;
-static gint ett_rrc_DTX_E_DCH_TTI_2ms;
-static gint ett_rrc_DTX_Info;
-static gint ett_rrc_T_e_dch_TTI_Length;
-static gint ett_rrc_DTX_Info_SecondaryUplinkFrequency;
-static gint ett_rrc_T_e_dch_TTI_Length_01;
-static gint ett_rrc_T_dtx_e_dch_TTI_2ms;
-static gint ett_rrc_DynamicPersistenceLevelList;
-static gint ett_rrc_DynamicPersistenceLevelTF_List;
-static gint ett_rrc_DynamicTFInformationCCCH;
-static gint ett_rrc_E_AGCH_DRX_Info_TDD128;
-static gint ett_rrc_T_e_AGCH_DRX_InfoType;
-static gint ett_rrc_T_e_AGCH_DRX_Parameters;
-static gint ett_rrc_E_AGCH_Individual;
-static gint ett_rrc_E_AGCH_Individual_VHCR;
-static gint ett_rrc_E_AGCH_Individual_LCR;
-static gint ett_rrc_T_midambleAllocationMode;
-static gint ett_rrc_E_AGCH_Information;
-static gint ett_rrc_E_AGCH_Information_r7;
-static gint ett_rrc_T_modeSpecific_03;
-static gint ett_rrc_T_fdd_103;
-static gint ett_rrc_T_tdd_57;
-static gint ett_rrc_T_tdd384_21;
-static gint ett_rrc_T_tdd768_13;
-static gint ett_rrc_T_tdd128_36;
-static gint ett_rrc_E_AGCH_Information_r8;
-static gint ett_rrc_T_modeSpecific_04;
-static gint ett_rrc_T_fdd_104;
-static gint ett_rrc_T_tdd_58;
-static gint ett_rrc_T_tdd384_22;
-static gint ett_rrc_T_tdd768_14;
-static gint ett_rrc_T_tdd128_37;
-static gint ett_rrc_E_AGCH_Information_TDD128;
-static gint ett_rrc_E_AGCH_Set_Config;
-static gint ett_rrc_E_AGCH_Set_Config_VHCR;
-static gint ett_rrc_E_AGCH_Set_Config_LCR;
-static gint ett_rrc_E_ROCH_Information;
-static gint ett_rrc_E_DCH_ReconfigurationInfo;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxEDCHRL_OF_E_DCH_RL_InfoOtherCell;
-static gint ett_rrc_E_DCH_ReconfigurationInfo_r7;
-static gint ett_rrc_E_DCH_ReconfigurationInfo_r11;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxEDCHRL_OF_E_DCH_RL_InfoOtherCell_r11;
-static gint ett_rrc_E_DCH_ReconfigurationInfo_SecULFrequency;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxEDCHRL_OF_E_DCH_RL_InfoOtherCell_SecULFreq;
-static gint ett_rrc_E_DCH_RL_InfoNewServingCell;
-static gint ett_rrc_T_servingGrant_03;
-static gint ett_rrc_T_e_RGCH_Info_09;
-static gint ett_rrc_E_DCH_RL_InfoNewServingCell_r7;
-static gint ett_rrc_T_servingGrant_04;
-static gint ett_rrc_T_e_RGCH_Info_10;
-static gint ett_rrc_E_DCH_RL_InfoNewServingCell_r11;
-static gint ett_rrc_T_servingGrant_05;
-static gint ett_rrc_T_e_RGCH_Info_11;
-static gint ett_rrc_E_DCH_RL_InfoNewSecServingCell;
-static gint ett_rrc_T_e_RGCH_Info_12;
-static gint ett_rrc_E_DCH_RL_InfoOtherCell;
-static gint ett_rrc_T_e_HICH_Info_06;
-static gint ett_rrc_T_e_RGCH_Info_13;
-static gint ett_rrc_E_DCH_RL_InfoOtherCell_r11;
-static gint ett_rrc_T_e_HICH_Info_07;
-static gint ett_rrc_T_e_RGCH_Info_14;
-static gint ett_rrc_E_DCH_RL_InfoOtherCell_SecULFreq;
-static gint ett_rrc_T_e_RGCH_Info_15;
-static gint ett_rrc_E_DCH_RL_InfoSameServingCell;
-static gint ett_rrc_E_DCH_SPS_Information_TDD128;
-static gint ett_rrc_T_e_dch_SPS_Operation;
-static gint ett_rrc_E_DCH_SPS_NewOperation_TDD128;
-static gint ett_rrc_T_initialSPSInfoForEDCH;
-static gint ett_rrc_E_DCH_TxPatternList_TDD128;
-static gint ett_rrc_E_DCH_TxPatternList_TDD128_item;
-static gint ett_rrc_E_DPCCH_Info;
-static gint ett_rrc_E_DPCCH_Info_r7;
-static gint ett_rrc_E_DPDCH_Info;
-static gint ett_rrc_E_DPDCH_Info_r7;
-static gint ett_rrc_E_DPDCH_Info_r8;
-static gint ett_rrc_E_DPDCH_Reference_E_TFCI;
-static gint ett_rrc_E_DPDCH_Reference_E_TFCI_r7;
-static gint ett_rrc_E_DPDCH_Reference_E_TFCIList;
-static gint ett_rrc_E_DPDCH_Reference_E_TFCIList_r7;
-static gint ett_rrc_E_DPDCH_SchedulingInfoConfiguration;
-static gint ett_rrc_E_DPDCH_SchedulingTransmConfiguration;
-static gint ett_rrc_T_servingGrant_06;
-static gint ett_rrc_E_HICH_Information;
-static gint ett_rrc_E_HICH_Information_r11;
-static gint ett_rrc_E_HICH_Information_CommonEdch;
-static gint ett_rrc_E_HICH_Information_TDD384_768;
-static gint ett_rrc_T_modeSpecificInfo_63;
-static gint ett_rrc_E_HICH_Information_LCR;
-static gint ett_rrc_T_midambleAllocationMode_01;
-static gint ett_rrc_E_HICH_Information_TDD128;
-static gint ett_rrc_E_HICH_Information_LCR_List;
-static gint ett_rrc_E_HICH_Information_For_SPS_TDD128;
-static gint ett_rrc_T_configurationmode;
-static gint ett_rrc_T_implicit;
-static gint ett_rrc_T_explicit_03;
-static gint ett_rrc_T_midambleAllocationMode_02;
-static gint ett_rrc_E_PUCH_Info;
-static gint ett_rrc_T_modeSpecificInfo_64;
-static gint ett_rrc_T_tdd348_tdd768;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_2_OF_E_PUCH_TS_Slots;
-static gint ett_rrc_T_tdd128_38;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_E_PUCH_TS_Slots_LCR;
-static gint ett_rrc_E_PUCH_Info_TDD128;
-static gint ett_rrc_E_PUCH_Info_MulticarrierEDCH_TDD128;
-static gint ett_rrc_E_PUCH_TS_Slots;
-static gint ett_rrc_E_PUCH_TS_Slots_LCR;
-static gint ett_rrc_T_midambleAllocationMode_03;
-static gint ett_rrc_E_RGCH_Information;
-static gint ett_rrc_E_RGCH_Information_CommonEdch;
-static gint ett_rrc_E_RUCCH_Info;
-static gint ett_rrc_T_modeSpecificInfo_65;
-static gint ett_rrc_T_tdd384_tdd768_05;
-static gint ett_rrc_T_modeSpecificInfo_66;
-static gint ett_rrc_T_tdd384_23;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_SF16Codes;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_SF8Codes;
-static gint ett_rrc_T_tdd768_15;
-static gint ett_rrc_SEQUENCE_SIZE_1_16_OF_SF32Codes;
-static gint ett_rrc_SEQUENCE_SIZE_1_16_OF_SF16Codes2;
-static gint ett_rrc_T_tdd128_39;
-static gint ett_rrc_E_RUCCH_Info_TDD128;
-static gint ett_rrc_E_TFC_Boost_Info_r7;
-static gint ett_rrc_E_TFCS_Info;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_Reference_Beta_QPSK;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_Reference_Beta_16QAM;
-static gint ett_rrc_EARFCNRange;
-static gint ett_rrc_EXT_UL_TimingAdvance;
-static gint ett_rrc_T_modeSpecificInfo_67;
-static gint ett_rrc_T_tdd384_24;
-static gint ett_rrc_T_tdd768_16;
-static gint ett_rrc_F_DPCHInfo;
-static gint ett_rrc_FACH_PCH_Information;
-static gint ett_rrc_FACH_PCH_InformationList;
-static gint ett_rrc_Fallback_R99_PRACH_info_IEs;
-static gint ett_rrc_FPACH_Info_r4;
-static gint ett_rrc_F_TPICH_InfoNewServingCell;
-static gint ett_rrc_F_TPICH_InfoOtherCell;
-static gint ett_rrc_T_f_tpich_Info;
-static gint ett_rrc_F_TPICH_Information;
-static gint ett_rrc_F_TPICH_ReconfigurationInfo;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxRL_OF_F_TPICH_InfoOtherCell;
-static gint ett_rrc_FreqIndexListForEnhancedMeas;
-static gint ett_rrc_FreqIndexListForEnhancedMeas_r12;
-static gint ett_rrc_FrequencyInfo;
-static gint ett_rrc_T_modeSpecificInfo_68;
-static gint ett_rrc_FrequencyInfoFDD;
-static gint ett_rrc_FrequencyInfoTDD;
-static gint ett_rrc_HS_ChannelisationCodeSetInfo_LCR;
-static gint ett_rrc_HS_DSCH_CommonSystemInformation;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCommonHRNTI_OF_H_RNTI;
-static gint ett_rrc_HS_DSCH_CommonSystemInformation_TDD128;
-static gint ett_rrc_HS_DSCH_DrxCellfach_info;
-static gint ett_rrc_HS_DSCH_DrxCellfach_info_TDD128;
-static gint ett_rrc_HS_DSCH_DrxCellfach_SecondDrx_info;
-static gint ett_rrc_T_drx_level;
-static gint ett_rrc_T_one_level_DRX;
-static gint ett_rrc_T_two_level_DRX;
-static gint ett_rrc_HS_DSCH_PagingSystemInformation;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxSCCPCH_OF_PICH_ForHSDPASupportedPaging;
-static gint ett_rrc_SEQUENCE_SIZE_1_2_OF_TransportBlockSizeIndex;
-static gint ett_rrc_HS_DSCH_PagingSystemInformation_TDD128;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxSCCPCH_OF_PICH_ForHSDPASupportedPaging_TDD128;
-static gint ett_rrc_HS_DSCH_RxPatternList_TDD128;
-static gint ett_rrc_HS_DSCH_RxPatternList_TDD128_item;
-static gint ett_rrc_HS_DSCH_TbsList_TDD128;
-static gint ett_rrc_HS_DSCH_TbsList_TDD128_item;
-static gint ett_rrc_HS_DSCH_SPS_Information_TDD128;
-static gint ett_rrc_T_hs_dsch_SPS_Operation;
-static gint ett_rrc_HS_DSCH_SPS_NewOperation_TDD128;
-static gint ett_rrc_T_hARQInfoForSPS;
-static gint ett_rrc_T_initialSPSInfoForHSDSCH;
-static gint ett_rrc_HS_DPCCHOverheadReduction;
-static gint ett_rrc_HS_PDSCH_Midamble_Configuration_TDD128;
-static gint ett_rrc_T_midambleAllocationMode_04;
-static gint ett_rrc_HS_SCCH_Info;
-static gint ett_rrc_T_modeSpecificInfo_69;
-static gint ett_rrc_T_fdd_105;
-static gint ett_rrc_T_tdd_59;
-static gint ett_rrc_T_tdd384_25;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD384;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD128;
-static gint ett_rrc_HS_SCCH_Info_r6;
-static gint ett_rrc_T_modeSpecificInfo_70;
-static gint ett_rrc_T_fdd_106;
-static gint ett_rrc_T_tdd_60;
-static gint ett_rrc_T_tdd384_26;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD384_r6;
-static gint ett_rrc_T_tdd128_40;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD128_r6;
-static gint ett_rrc_HS_SCCH_Info_r7;
-static gint ett_rrc_T_modeSpecificInfo_71;
-static gint ett_rrc_T_fdd_107;
-static gint ett_rrc_T_tdd_61;
-static gint ett_rrc_T_tdd384_27;
-static gint ett_rrc_T_tdd768_17;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD768;
-static gint ett_rrc_T_tdd128_41;
-static gint ett_rrc_HS_SCCH_Info_r8_ext;
-static gint ett_rrc_T_modeSpecificInfo_72;
-static gint ett_rrc_T_tdd_62;
-static gint ett_rrc_T_tdd128_42;
-static gint ett_rrc_HS_SCCH_Info_r9;
-static gint ett_rrc_T_modeSpecificInfo_73;
-static gint ett_rrc_T_fdd_108;
-static gint ett_rrc_T_tdd_63;
-static gint ett_rrc_T_tdd384_28;
-static gint ett_rrc_T_tdd768_18;
-static gint ett_rrc_T_tdd128_43;
-static gint ett_rrc_HS_SCCH_DRX_Info_TDD128;
-static gint ett_rrc_HS_SCCH_Less_NewOperation;
-static gint ett_rrc_HS_SCCH_LessInfo_r7;
-static gint ett_rrc_T_hs_scchLessOperation;
-static gint ett_rrc_HS_SCCH_LessTFSList;
-static gint ett_rrc_HS_SCCH_LessTFSList_item;
-static gint ett_rrc_HS_SCCH_SystemInfo;
-static gint ett_rrc_HS_SCCH_SystemInfo_TDD128;
-static gint ett_rrc_HS_SCCH_TDD128;
-static gint ett_rrc_T_midambleAllocationMode_05;
-static gint ett_rrc_HS_SCCH_TDD128_r6;
-static gint ett_rrc_T_midambleAllocationMode_06;
-static gint ett_rrc_HS_SCCH_TDD128_MultiCarrier;
-static gint ett_rrc_T_midambleAllocationMode_07;
-static gint ett_rrc_HS_SICH_Configuration_TDD128;
-static gint ett_rrc_T_midambleAllocationMode_08;
-static gint ett_rrc_T_ueSpecificMidamble;
-static gint ett_rrc_HS_SICH_Configuration_TDD128_r6;
-static gint ett_rrc_T_midambleAllocationMode_09;
-static gint ett_rrc_T_ueSpecificMidamble_01;
-static gint ett_rrc_HS_SICH_List_TDD128;
-static gint ett_rrc_HS_SICH_List_TDD128_item;
-static gint ett_rrc_T_implicit_01;
-static gint ett_rrc_T_explicit_04;
-static gint ett_rrc_HS_SICH_ReferenceSignalInfoList;
-static gint ett_rrc_HS_SICH_ReferenceSignalInfoList_item;
-static gint ett_rrc_HS_SCCH_TDD384;
-static gint ett_rrc_T_midambleAllocationMode_10;
-static gint ett_rrc_T_ueSpecificMidamble_02;
-static gint ett_rrc_HS_SCCH_TDD384_r6;
-static gint ett_rrc_T_midambleAllocationMode_11;
-static gint ett_rrc_T_ueSpecificMidamble_03;
-static gint ett_rrc_HS_SCCH_TDD768;
-static gint ett_rrc_T_midambleAllocationMode_12;
-static gint ett_rrc_T_ueSpecificMidamble_04;
-static gint ett_rrc_HS_SICH_Configuration_TDD384;
-static gint ett_rrc_T_midambleAllocationMode_13;
-static gint ett_rrc_T_ueSpecificMidamble_05;
-static gint ett_rrc_HS_SICH_Configuration_TDD768;
-static gint ett_rrc_T_midambleAllocationMode_14;
-static gint ett_rrc_T_ueSpecificMidamble_06;
-static gint ett_rrc_HS_SICH_Power_Control_Info_TDD384;
-static gint ett_rrc_HS_SICH_Power_Control_Info_TDD768;
-static gint ett_rrc_IndividualTimeslotInfo;
-static gint ett_rrc_IndividualTimeslotInfo_VHCR;
-static gint ett_rrc_IndividualTimeslotInfo_LCR_r4;
-static gint ett_rrc_IndividualTimeslotInfo_LCR_r4_ext;
-static gint ett_rrc_IndividualTimeslotInfo_r7;
-static gint ett_rrc_IndividualTS_Interference;
-static gint ett_rrc_IndividualTS_InterferenceList;
-static gint ett_rrc_Measurement_Feedback_Info;
-static gint ett_rrc_T_modeSpecificInfo_74;
-static gint ett_rrc_T_fdd_109;
-static gint ett_rrc_Measurement_Feedback_Info_r7;
-static gint ett_rrc_T_modeSpecificInfo_75;
-static gint ett_rrc_T_fdd_110;
-static gint ett_rrc_Measurement_Feedback_Info_r11;
-static gint ett_rrc_T_modeSpecificInfo_76;
-static gint ett_rrc_T_fdd_111;
-static gint ett_rrc_Measurement_Feedback_Info_r12;
-static gint ett_rrc_T_modeSpecificInfo_77;
-static gint ett_rrc_T_fdd_112;
-static gint ett_rrc_Measurement_Feedback_Info_ConcurrentTTI;
-static gint ett_rrc_MidambleShiftAndBurstType;
-static gint ett_rrc_T_burstType;
-static gint ett_rrc_T_type1_01;
-static gint ett_rrc_T_midambleAllocationMode_15;
-static gint ett_rrc_T_ueSpecificMidamble_07;
-static gint ett_rrc_T_type2;
-static gint ett_rrc_T_midambleAllocationMode_16;
-static gint ett_rrc_T_ueSpecificMidamble_08;
-static gint ett_rrc_T_type3;
-static gint ett_rrc_T_midambleAllocationMode_17;
-static gint ett_rrc_T_ueSpecificMidamble_09;
-static gint ett_rrc_MidambleShiftAndBurstType_VHCR;
-static gint ett_rrc_T_burstType_01;
-static gint ett_rrc_T_type1_02;
-static gint ett_rrc_T_midambleAllocationMode_18;
-static gint ett_rrc_T_ueSpecificMidamble_10;
-static gint ett_rrc_T_type2_01;
-static gint ett_rrc_T_midambleAllocationMode_19;
-static gint ett_rrc_T_ueSpecificMidamble_11;
-static gint ett_rrc_T_type3_01;
-static gint ett_rrc_T_midambleAllocationMode_20;
-static gint ett_rrc_T_ueSpecificMidamble_12;
-static gint ett_rrc_MidambleShiftAndBurstType_r7;
-static gint ett_rrc_T_burstType_02;
-static gint ett_rrc_T_type1_03;
-static gint ett_rrc_T_midambleAllocationMode_21;
-static gint ett_rrc_T_ueSpecificMidamble_13;
-static gint ett_rrc_T_type2_02;
-static gint ett_rrc_T_midambleAllocationMode_22;
-static gint ett_rrc_T_ueSpecificMidamble_14;
-static gint ett_rrc_T_type3_02;
-static gint ett_rrc_T_midambleAllocationMode_23;
-static gint ett_rrc_T_ueSpecificMidamble_15;
-static gint ett_rrc_MidambleShiftAndBurstType_DL;
-static gint ett_rrc_T_burstType_03;
-static gint ett_rrc_T_type1_04;
-static gint ett_rrc_T_midambleAllocationMode_24;
-static gint ett_rrc_T_ueSpecificMidamble_16;
-static gint ett_rrc_T_type2_03;
-static gint ett_rrc_T_midambleAllocationMode_25;
-static gint ett_rrc_T_ueSpecificMidamble_17;
-static gint ett_rrc_MidambleShiftAndBurstType_DL_VHCR;
-static gint ett_rrc_T_burstType_04;
-static gint ett_rrc_T_type1_05;
-static gint ett_rrc_T_midambleAllocationMode_26;
-static gint ett_rrc_T_ueSpecificMidamble_18;
-static gint ett_rrc_T_type2_04;
-static gint ett_rrc_T_midambleAllocationMode_27;
-static gint ett_rrc_T_ueSpecificMidamble_19;
-static gint ett_rrc_MidambleShiftAndBurstType_LCR_r4;
-static gint ett_rrc_T_midambleAllocationMode_28;
-static gint ett_rrc_T_ueSpecificMidamble_20;
-static gint ett_rrc_MidambleShiftAndBurstType_EDCH;
-static gint ett_rrc_T_burstType_05;
-static gint ett_rrc_T_type1_06;
-static gint ett_rrc_T_midambleAllocationMode_29;
-static gint ett_rrc_T_ueSpecificMidamble_21;
-static gint ett_rrc_T_type2_05;
-static gint ett_rrc_T_midambleAllocationMode_30;
-static gint ett_rrc_T_ueSpecificMidamble_22;
-static gint ett_rrc_MIMO_Parameters_r7;
-static gint ett_rrc_MIMO4x4_Parameters;
-static gint ett_rrc_T_configurationInfo_10;
-static gint ett_rrc_T_newConfiguration_15;
-static gint ett_rrc_MIMO_Parameters_v7g0ext;
-static gint ett_rrc_MIMO_Parameters_r8;
-static gint ett_rrc_T_modeSpecificInfo_78;
-static gint ett_rrc_T_fdd_113;
-static gint ett_rrc_T_tdd_64;
-static gint ett_rrc_T_tdd128_44;
-static gint ett_rrc_MIMO_Parameters_r9;
-static gint ett_rrc_T_modeSpecificInfo_79;
-static gint ett_rrc_T_fdd_114;
-static gint ett_rrc_T_tdd_65;
-static gint ett_rrc_T_tdd128_45;
-static gint ett_rrc_MIMO_PilotConfiguration;
-static gint ett_rrc_T_secondCPICH_Pattern;
-static gint ett_rrc_T_diversityPattern;
-static gint ett_rrc_MIMO_PilotConfiguration_v7f0ext;
-static gint ett_rrc_MIMO_PilotConfiguration_r9;
-static gint ett_rrc_T_secondCPICH_Pattern_01;
-static gint ett_rrc_T_diversityPattern_01;
-static gint ett_rrc_MIMO4x4_PilotConfiguration;
-static gint ett_rrc_Multi_frequencyInfo_LCR_r7;
-static gint ett_rrc_MultiflowConfigurationInfo;
-static gint ett_rrc_MU_MIMO_Info_TDD128;
-static gint ett_rrc_T_newConfiguration_16;
-static gint ett_rrc_NewTiming;
-static gint ett_rrc_NodeB_Trigger_HS_DPCCH_Transmission;
-static gint ett_rrc_Non_ScheduledTransGrantInfoTDD;
-static gint ett_rrc_T_tdd384_768;
-static gint ett_rrc_T_tdd128_46;
-static gint ett_rrc_T_e_HICH_Info_08;
-static gint ett_rrc_T_midambleAllocationMode_31;
-static gint ett_rrc_Non_ScheduledTransGrantInfoTDD_ext;
-static gint ett_rrc_T_tdd128_47;
-static gint ett_rrc_Non_ScheduledTransGrantInfoTDD_r9;
-static gint ett_rrc_T_tdd384_768_01;
-static gint ett_rrc_T_tdd128_48;
-static gint ett_rrc_T_e_HICH_Info_09;
-static gint ett_rrc_T_midambleAllocationMode_32;
-static gint ett_rrc_OpenLoopPowerControl_TDD;
-static gint ett_rrc_OpenLoopPowerControl_IPDL_TDD_r4;
-static gint ett_rrc_OtherStateConfig;
-static gint ett_rrc_OtherStateConfigList;
-static gint ett_rrc_OtherStateConfigData;
-static gint ett_rrc_T_rntis;
-static gint ett_rrc_T_new;
-static gint ett_rrc_T_configuration;
-static gint ett_rrc_OtherStateRemoveList;
-static gint ett_rrc_PCCH_InformationList;
-static gint ett_rrc_T_paging_associatedHspdschInfo;
-static gint ett_rrc_T_paging_associatedHspdschInfo_item;
-static gint ett_rrc_PCPCH_ChannelInfo;
-static gint ett_rrc_PCPCH_ChannelInfoList;
-static gint ett_rrc_PDSCH_CapacityAllocationInfo;
-static gint ett_rrc_T_configuration_01;
-static gint ett_rrc_T_old_Configuration;
-static gint ett_rrc_T_new_Configuration;
-static gint ett_rrc_PDSCH_CapacityAllocationInfo_r4;
-static gint ett_rrc_T_configuration_02;
-static gint ett_rrc_T_old_Configuration_01;
-static gint ett_rrc_T_new_Configuration_01;
-static gint ett_rrc_PDSCH_CapacityAllocationInfo_r7;
-static gint ett_rrc_T_configuration_03;
-static gint ett_rrc_T_old_Configuration_02;
-static gint ett_rrc_T_new_Configuration_02;
-static gint ett_rrc_PDSCH_CodeInfo;
-static gint ett_rrc_PDSCH_CodeInfoList;
-static gint ett_rrc_PDSCH_CodeMap;
-static gint ett_rrc_PDSCH_CodeMapList;
-static gint ett_rrc_PDSCH_CodeMapping;
-static gint ett_rrc_T_signallingMethod;
-static gint ett_rrc_PDSCH_Info;
-static gint ett_rrc_PDSCH_Info_r4;
-static gint ett_rrc_T_tddOption_13;
-static gint ett_rrc_T_tdd384_29;
-static gint ett_rrc_T_tdd128_49;
-static gint ett_rrc_PDSCH_Info_r7;
-static gint ett_rrc_T_tddOption_14;
-static gint ett_rrc_T_tdd384_30;
-static gint ett_rrc_T_tdd768_19;
-static gint ett_rrc_T_tdd128_50;
-static gint ett_rrc_PDSCH_Info_LCR_r4;
-static gint ett_rrc_PDSCH_PowerControlInfo;
-static gint ett_rrc_PDSCH_SHO_DCH_Info;
-static gint ett_rrc_PDSCH_SysInfo;
-static gint ett_rrc_PDSCH_SysInfo_VHCR_r7;
-static gint ett_rrc_PDSCH_SysInfo_HCR_r5;
-static gint ett_rrc_PDSCH_SysInfo_LCR_r4;
-static gint ett_rrc_PDSCH_SysInfoList;
-static gint ett_rrc_PDSCH_SysInfoList_VHCR_r7;
-static gint ett_rrc_PDSCH_SysInfoList_HCR_r5;
-static gint ett_rrc_PDSCH_SysInfoList_LCR_r4;
-static gint ett_rrc_PDSCH_SysInfoList_SFN;
-static gint ett_rrc_PDSCH_SysInfoList_SFN_item;
-static gint ett_rrc_PDSCH_SysInfoList_SFN_HCR_r5;
-static gint ett_rrc_PDSCH_SysInfoList_SFN_HCR_r5_item;
-static gint ett_rrc_PDSCH_SysInfoList_SFN_LCR_r4;
-static gint ett_rrc_PDSCH_SysInfoList_SFN_LCR_r4_item;
-static gint ett_rrc_PersistenceScalingFactorList;
-static gint ett_rrc_PichChannelisationCodeList_LCR_r4;
-static gint ett_rrc_PICH_ForHSDPASupportedPaging;
-static gint ett_rrc_PICH_ForHSDPASupportedPaging_TDD128;
-static gint ett_rrc_T_implicit_02;
-static gint ett_rrc_PICH_Info;
-static gint ett_rrc_T_fdd_115;
-static gint ett_rrc_T_tdd_66;
-static gint ett_rrc_PICH_Info_HCR_VHCR_r7;
-static gint ett_rrc_T_channelisationCode;
-static gint ett_rrc_PICH_Info_LCR_r4;
-static gint ett_rrc_PLCCH_Info;
-static gint ett_rrc_PowerControlAlgorithm;
-static gint ett_rrc_PowerControlAlgorithm3_Config;
-static gint ett_rrc_PRACH_ChanCodes_LCR_r4;
-static gint ett_rrc_PRACH_ChanCodes_List_LCR;
-static gint ett_rrc_PRACH_Definition_LCR_r4;
-static gint ett_rrc_PRACH_Information_LCR;
-static gint ett_rrc_PRACH_Information_LCR_List;
-static gint ett_rrc_PRACH_Partitioning;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxASC_OF_ASCSetting_FDD;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxASC_OF_ASCSetting_TDD;
-static gint ett_rrc_PRACH_Partitioning_r7;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxASC_OF_ASCSetting_TDD_r7;
-static gint ett_rrc_PRACH_Partitioning_LCR_r4;
-static gint ett_rrc_PRACH_PowerOffset;
-static gint ett_rrc_PRACH_PreambleForEnhancedUplink;
-static gint ett_rrc_PRACH_PreambleForEnhancedUplinkExt;
-static gint ett_rrc_PRACH_PreambleForEnhancedUplinkExtList;
-static gint ett_rrc_PRACH_PreambleForEnhancedUplinkExtWithWeight;
-static gint ett_rrc_PRACH_RACH_Info;
-static gint ett_rrc_T_modeSpecificInfo_80;
-static gint ett_rrc_T_fdd_116;
-static gint ett_rrc_T_tdd_67;
-static gint ett_rrc_PRACH_RACH_Info_VHCR_r7;
-static gint ett_rrc_PRACH_RACH_Info_LCR_v770ext;
-static gint ett_rrc_PRACH_RACH_Info_LCR_r4;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxPRACH_FPACH_OF_PRACH_Definition_LCR_r4;
-static gint ett_rrc_PRACH_SystemInformation;
-static gint ett_rrc_T_modeSpecificInfo_81;
-static gint ett_rrc_T_fdd_117;
-static gint ett_rrc_PRACH_SystemInformation_VHCR_r7;
-static gint ett_rrc_PRACH_SystemInformation_LCR_r4;
-static gint ett_rrc_PRACH_SystemInformation_LCR_v770ext;
-static gint ett_rrc_PRACH_SystemInformationList;
-static gint ett_rrc_PRACH_SystemInformationList_VHCR_r7;
-static gint ett_rrc_PRACH_SystemInformationList_LCR_r4;
-static gint ett_rrc_PRACH_SystemInformationList_LCR_v770ext;
-static gint ett_rrc_PreDefPhyChConfiguration;
-static gint ett_rrc_PreDefPhyChConfiguration_v770ext;
-static gint ett_rrc_PrimaryCCPCH_Info;
-static gint ett_rrc_T_fdd_118;
-static gint ett_rrc_T_tdd_68;
-static gint ett_rrc_T_syncCase;
-static gint ett_rrc_T_syncCase1;
-static gint ett_rrc_T_syncCase2;
-static gint ett_rrc_PrimaryCCPCH_Info_r4;
-static gint ett_rrc_T_fdd_119;
-static gint ett_rrc_T_tdd_69;
-static gint ett_rrc_T_tddOption_15;
-static gint ett_rrc_T_tdd384_tdd768_06;
-static gint ett_rrc_T_syncCase_01;
-static gint ett_rrc_T_syncCase1_01;
-static gint ett_rrc_T_syncCase2_01;
-static gint ett_rrc_T_tdd128_51;
-static gint ett_rrc_PrimaryCCPCH_Info_LCR_r4;
-static gint ett_rrc_PrimaryCCPCH_Info_LCR_r4_ext;
-static gint ett_rrc_PrimaryCCPCH_InfoPost;
-static gint ett_rrc_T_syncCase_02;
-static gint ett_rrc_T_syncCase1_02;
-static gint ett_rrc_T_syncCase2_02;
-static gint ett_rrc_PrimaryCCPCH_InfoPostTDD_LCR_r4;
-static gint ett_rrc_PrimaryCPICH_Info;
-static gint ett_rrc_PUSCH_CapacityAllocationInfo;
-static gint ett_rrc_T_pusch_Allocation;
-static gint ett_rrc_T_pusch_AllocationAssignment;
-static gint ett_rrc_T_configuration_04;
-static gint ett_rrc_T_old_Configuration_03;
-static gint ett_rrc_T_new_Configuration_03;
-static gint ett_rrc_PUSCH_CapacityAllocationInfo_r4;
-static gint ett_rrc_T_pusch_Allocation_01;
-static gint ett_rrc_T_pusch_AllocationAssignment_01;
-static gint ett_rrc_T_configuration_05;
-static gint ett_rrc_T_old_Configuration_04;
-static gint ett_rrc_T_new_Configuration_04;
-static gint ett_rrc_PUSCH_CapacityAllocationInfo_r7;
-static gint ett_rrc_T_pusch_Allocation_02;
-static gint ett_rrc_T_pusch_AllocationAssignment_02;
-static gint ett_rrc_T_configuration_06;
-static gint ett_rrc_T_old_Configuration_05;
-static gint ett_rrc_T_new_Configuration_05;
-static gint ett_rrc_PUSCH_Info;
-static gint ett_rrc_PUSCH_Info_r4;
-static gint ett_rrc_T_tddOption_16;
-static gint ett_rrc_T_tdd384_31;
-static gint ett_rrc_T_tdd128_52;
-static gint ett_rrc_PUSCH_Info_VHCR;
-static gint ett_rrc_PUSCH_Info_LCR_r4;
-static gint ett_rrc_PUSCH_PowerControlInfo_r4;
-static gint ett_rrc_T_tddOption_17;
-static gint ett_rrc_T_tdd128_53;
-static gint ett_rrc_PUSCH_PowerControlInfo_r7;
-static gint ett_rrc_T_tddOption_18;
-static gint ett_rrc_T_tdd128_54;
-static gint ett_rrc_PUSCH_SysInfo;
-static gint ett_rrc_PUSCH_SysInfo_VHCR;
-static gint ett_rrc_PUSCH_SysInfo_HCR_r5;
-static gint ett_rrc_PUSCH_SysInfo_LCR_r4;
-static gint ett_rrc_PUSCH_SysInfoList;
-static gint ett_rrc_PUSCH_SysInfoList_HCR_r5;
-static gint ett_rrc_PUSCH_SysInfoList_LCR_r4;
-static gint ett_rrc_PUSCH_SysInfoList_SFN;
-static gint ett_rrc_PUSCH_SysInfoList_SFN_item;
-static gint ett_rrc_PUSCH_SysInfoList_SFN_HCR_r5;
-static gint ett_rrc_PUSCH_SysInfoList_SFN_HCR_r5_item;
-static gint ett_rrc_PUSCH_SysInfoList_SFN_LCR_r4;
-static gint ett_rrc_PUSCH_SysInfoList_SFN_LCR_r4_item;
-static gint ett_rrc_PUSCH_SysInfoList_SFN_VHCR;
-static gint ett_rrc_PUSCH_SysInfoList_SFN_VHCR_item;
-static gint ett_rrc_RACH_TransmissionParameters;
-static gint ett_rrc_RadioLinkswithoutDPCHFDPCHInfo;
-static gint ett_rrc_Reference_Beta_QPSK;
-static gint ett_rrc_Reference_Beta_16QAM;
-static gint ett_rrc_RepetitionPeriodAndLength;
-static gint ett_rrc_RepetitionPeriodLengthAndOffset;
-static gint ett_rrc_T_repetitionPeriod2;
-static gint ett_rrc_T_repetitionPeriod4;
-static gint ett_rrc_T_repetitionPeriod8;
-static gint ett_rrc_T_repetitionPeriod16;
-static gint ett_rrc_T_repetitionPeriod32;
-static gint ett_rrc_T_repetitionPeriod64;
-static gint ett_rrc_RepetitionPeriodAndLengthForSPS;
-static gint ett_rrc_ReplacedPDSCH_CodeInfo;
-static gint ett_rrc_ReplacedPDSCH_CodeInfoList;
-static gint ett_rrc_RepPerLengthOffset_PICH;
-static gint ett_rrc_RepPerLengthOffset_MICH;
-static gint ett_rrc_RestrictedTrCH;
-static gint ett_rrc_RestrictedTrCH_InfoList;
-static gint ett_rrc_RL_AdditionInformation;
-static gint ett_rrc_RL_AdditionInformation_r6;
-static gint ett_rrc_T_dl_dpchInfo_06;
-static gint ett_rrc_RL_AdditionInformation_r7;
-static gint ett_rrc_T_dl_dpchInfo_07;
-static gint ett_rrc_RL_AdditionInformation_r8;
-static gint ett_rrc_T_dl_dpchInfo_08;
-static gint ett_rrc_RL_AdditionInformation_r9;
-static gint ett_rrc_T_dl_dpchInfo_09;
-static gint ett_rrc_RL_AdditionInformation_r10;
-static gint ett_rrc_T_dl_dpchInfo_10;
-static gint ett_rrc_RL_AdditionInformation_vb50ext;
-static gint ett_rrc_RL_AdditionInformation_r11;
-static gint ett_rrc_T_dl_dpchInfo_11;
-static gint ett_rrc_RL_AdditionInformation_r12;
-static gint ett_rrc_T_dl_dpchInfo_12;
-static gint ett_rrc_RL_AdditionInformation_r13;
-static gint ett_rrc_T_dl_dpchInfo_13;
-static gint ett_rrc_RL_AdditionInformation_v6b0ext;
-static gint ett_rrc_RL_AdditionInformation_v890ext;
-static gint ett_rrc_RL_AdditionInformation_v950ext;
-static gint ett_rrc_RL_AdditionInformationList;
-static gint ett_rrc_RL_AdditionInformationList_r6;
-static gint ett_rrc_RL_AdditionInformationList_r7;
-static gint ett_rrc_RL_AdditionInformation_list_v6b0ext;
-static gint ett_rrc_RL_AdditionInformationList_r8;
-static gint ett_rrc_RL_AdditionInformationList_v890ext;
-static gint ett_rrc_RL_AdditionInformationList_r9;
-static gint ett_rrc_RL_AdditionInformationList_v950ext;
-static gint ett_rrc_RL_AdditionInformationList_r10;
-static gint ett_rrc_RL_AdditionInformationList_vb50ext;
-static gint ett_rrc_RL_AdditionInformationList_r11;
-static gint ett_rrc_RL_AdditionInformationList_r12;
-static gint ett_rrc_RL_AdditionInformationList_r13;
-static gint ett_rrc_RL_AdditionInformationList_SecULFreq;
-static gint ett_rrc_RL_AdditionInformationList_SecULFreq_r12;
-static gint ett_rrc_RL_AdditionInformationList_SecULFreq_r13;
-static gint ett_rrc_RL_AdditionInformation_SecULFreq;
-static gint ett_rrc_RL_AdditionInformation_SecULFreq_r12;
-static gint ett_rrc_RL_AdditionInformation_SecULFreq_r13;
-static gint ett_rrc_RL_IdentifierList;
-static gint ett_rrc_RL_RemovalInformationList;
-static gint ett_rrc_RL_RemovalInformationList_SecULFreq;
-static gint ett_rrc_SCCPCH_ChannelisationCodeList;
-static gint ett_rrc_SCCPCH_ChannelisationCodeList_VHCR;
-static gint ett_rrc_SCCPCH_InfoForFACH;
-static gint ett_rrc_T_modeSpecificInfo_82;
-static gint ett_rrc_T_fdd_120;
-static gint ett_rrc_T_tdd_70;
-static gint ett_rrc_SCCPCH_InfoForFACH_r4;
-static gint ett_rrc_T_modeSpecificInfo_83;
-static gint ett_rrc_T_fdd_121;
-static gint ett_rrc_SCCPCH_SystemInformation;
-static gint ett_rrc_SCCPCH_SystemInformation_LCR_r4_ext;
-static gint ett_rrc_SCCPCH_SystemInformation_HCR_VHCR_r7;
-static gint ett_rrc_SCCPCH_SystemInformationList;
-static gint ett_rrc_SCCPCH_SystemInformationList_HCR_VHCR_r7;
-static gint ett_rrc_SCCPCH_SystemInformationList_LCR_r4_ext;
-static gint ett_rrc_SCCPCH_SystemInformation_MBMS_r6;
-static gint ett_rrc_T_fachCarryingMCCH;
-static gint ett_rrc_T_fachCarryingMSCH;
-static gint ett_rrc_SCCPCH_SystemInformation_MBMS_r7;
-static gint ett_rrc_T_fachCarryingMCCH_01;
-static gint ett_rrc_T_fachCarryingMSCH_01;
-static gint ett_rrc_ScheduledTransmissionConfiguration;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxEDCHs_OF_Common_E_DCH_ResourceInfoListExt;
-static gint ett_rrc_SecondaryCCPCH_Info;
-static gint ett_rrc_T_modeSpecificInfo_84;
-static gint ett_rrc_T_fdd_122;
-static gint ett_rrc_T_tdd_71;
-static gint ett_rrc_SecondaryCCPCH_Info_r4;
-static gint ett_rrc_T_modeSpecificInfo_85;
-static gint ett_rrc_T_fdd_123;
-static gint ett_rrc_T_tdd_72;
-static gint ett_rrc_T_tddOption_19;
-static gint ett_rrc_T_tdd384_32;
-static gint ett_rrc_T_tdd128_55;
-static gint ett_rrc_SecondaryCCPCH_Info_HCR_VHCR_r7;
-static gint ett_rrc_T_modeSpecificInfo_86;
-static gint ett_rrc_T_tdd384_33;
-static gint ett_rrc_T_tdd768_20;
-static gint ett_rrc_SecondaryCCPCH_Info_LCR_r4_ext;
-static gint ett_rrc_SecondaryCCPCHFrameType2Info;
-static gint ett_rrc_T_modulation_03;
-static gint ett_rrc_T_mod16QAM;
-static gint ett_rrc_SecondaryCCPCHInfo_MBMS_r6;
-static gint ett_rrc_T_modeSpecificInfo_87;
-static gint ett_rrc_T_fdd_124;
-static gint ett_rrc_T_tdd384_34;
-static gint ett_rrc_T_tdd128_56;
-static gint ett_rrc_SecondaryCCPCHInfo_MBMS_r7;
-static gint ett_rrc_T_modeSpecificInfo_88;
-static gint ett_rrc_T_fdd_125;
-static gint ett_rrc_T_modulation_04;
-static gint ett_rrc_T_tdd384_35;
-static gint ett_rrc_T_tdd768_21;
-static gint ett_rrc_T_tdd128_57;
-static gint ett_rrc_SecondaryCCPCHInfoDiff_MBMS;
-static gint ett_rrc_SecondaryCPICH_Info;
-static gint ett_rrc_SecondaryCellMIMOparametersFDD;
-static gint ett_rrc_T_newConfiguration_17;
-static gint ett_rrc_SecondaryCellMIMOparametersFDD_v950ext;
-static gint ett_rrc_SecondaryCellMIMOparametersFDD_r10;
-static gint ett_rrc_T_newConfiguration_18;
-static gint ett_rrc_SecondaryCell4x4MIMOparametersFDD;
-static gint ett_rrc_T_configurationInfo_11;
-static gint ett_rrc_T_newConfiguration_19;
-static gint ett_rrc_ServingCellChangeParameters;
-static gint ett_rrc_ServingCellChangeParameters_r12;
-static gint ett_rrc_SF256_AndCodeNumber;
-static gint ett_rrc_SF512_AndCodeNumber;
-static gint ett_rrc_SF512_AndPilot;
-static gint ett_rrc_SF512_AndPilot_r12;
-static gint ett_rrc_SFN_TimeInfo;
-static gint ett_rrc_SPS_Information_TDD128_r8;
-static gint ett_rrc_SSDT_Information;
-static gint ett_rrc_SSDT_Information_r4;
-static gint ett_rrc_StandaloneMidambleInfo_TDD128;
-static gint ett_rrc_SynchronisationParameters_r4;
-static gint ett_rrc_T_sync_UL_CodesBitmap;
-static gint ett_rrc_Sync_UL_Codes_Bitmap;
-static gint ett_rrc_SYNC_UL_Procedure_r4;
-static gint ett_rrc_SYNC_UL_Info_r4;
-static gint ett_rrc_SYNC_UL_InfoForE_RUCCH;
-static gint ett_rrc_TargetCellPreconfigInfo;
-static gint ett_rrc_TargetCellPreconfigInfo_r9;
-static gint ett_rrc_TargetCellPreconfigInfo_r10;
-static gint ett_rrc_TargetCellPreconfigInfo_vb50ext;
-static gint ett_rrc_TargetCellPreconfigInfo_r11;
-static gint ett_rrc_TargetCellPreconfigInfo_r12;
-static gint ett_rrc_TargetCellPreconfigInfo_r13;
-static gint ett_rrc_TDD_MBSFNInformation;
-static gint ett_rrc_TDD_MBSFNTSlotInfo;
-static gint ett_rrc_TDD_PRACH_CCodeList;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_TDD_PRACH_CCode8;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_TDD_PRACH_CCode16;
-static gint ett_rrc_TDD768_PRACH_CCodeList;
-static gint ett_rrc_SEQUENCE_SIZE_1_16_OF_TDD768_PRACH_CCode32;
-static gint ett_rrc_SEQUENCE_SIZE_1_16_OF_TDD768_PRACH_CCode16;
-static gint ett_rrc_TGP_Sequence;
-static gint ett_rrc_T_tgps_Status;
-static gint ett_rrc_T_activate;
-static gint ett_rrc_TGP_Sequence_r8;
-static gint ett_rrc_T_tgps_Status_01;
-static gint ett_rrc_T_activate_01;
-static gint ett_rrc_TGP_Sequence_r10;
-static gint ett_rrc_T_tgps_Status_02;
-static gint ett_rrc_T_activate_02;
-static gint ett_rrc_TGP_SequenceList;
-static gint ett_rrc_TGP_SequenceList_r8;
-static gint ett_rrc_TGP_SequenceList_r10;
-static gint ett_rrc_TGP_SequenceShort;
-static gint ett_rrc_T_tgps_Status_03;
-static gint ett_rrc_T_activate_03;
-static gint ett_rrc_TGP_SequenceShort_r10;
-static gint ett_rrc_T_tgps_Status_04;
-static gint ett_rrc_T_activate_04;
-static gint ett_rrc_TGPS_ConfigurationParams;
-static gint ett_rrc_TGPS_ConfigurationParams_r8;
-static gint ett_rrc_TGPS_ConfigurationParams_r10;
-static gint ett_rrc_TimeInfo;
-static gint ett_rrc_TimeslotList;
-static gint ett_rrc_TimeslotList_r4;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_OF_TimeslotNumber;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_OF_TimeslotNumber_LCR_r4;
-static gint ett_rrc_DTX_DRX_TimingInfo_r7;
-static gint ett_rrc_T_timing;
-static gint ett_rrc_TwoMsHarqConfiguration;
-static gint ett_rrc_UCSM_Info;
-static gint ett_rrc_UE_DPCCHPowerResetAfterDTXOnSecUplink;
-static gint ett_rrc_UL_16QAM_Config;
-static gint ett_rrc_UL_16QAM_Settings;
-static gint ett_rrc_UL_64QAM_Config;
-static gint ett_rrc_UL_64QAM_Settings;
-static gint ett_rrc_UL_CCTrCH;
-static gint ett_rrc_UL_CCTrCH_r4;
-static gint ett_rrc_T_tddOption_20;
-static gint ett_rrc_T_tdd384_36;
-static gint ett_rrc_T_tdd128_58;
-static gint ett_rrc_UL_CCTrCH_r7;
-static gint ett_rrc_T_tddOption_21;
-static gint ett_rrc_T_tdd384_37;
-static gint ett_rrc_T_tdd768_22;
-static gint ett_rrc_T_tdd128_59;
-static gint ett_rrc_UL_CCTrCHList;
-static gint ett_rrc_UL_CCTrCHList_r4;
-static gint ett_rrc_UL_CCTrCHList_r7;
-static gint ett_rrc_UL_CCTrCHListToRemove;
-static gint ett_rrc_UL_CCTrChTPCList;
-static gint ett_rrc_UL_ChannelRequirement;
-static gint ett_rrc_UL_ChannelRequirement_r4;
-static gint ett_rrc_UL_ChannelRequirement_r5;
-static gint ett_rrc_UL_ChannelRequirementWithCPCH_SetID;
-static gint ett_rrc_UL_ChannelRequirementWithCPCH_SetID_r4;
-static gint ett_rrc_UL_ChannelRequirementWithCPCH_SetID_r5;
-static gint ett_rrc_UL_CLTD_InfoFDD;
-static gint ett_rrc_T_configurationInfo_12;
-static gint ett_rrc_T_newConfiguration_20;
-static gint ett_rrc_UL_DL_Mode;
-static gint ett_rrc_T_ul_and_dl;
-static gint ett_rrc_UL_DPCH_CodeInfoForCommonEDCH;
-static gint ett_rrc_UL_DPCH_Info;
-static gint ett_rrc_T_modeSpecificInfo_89;
-static gint ett_rrc_T_fdd_126;
-static gint ett_rrc_T_tdd_73;
-static gint ett_rrc_UL_DPCH_Info_r4;
-static gint ett_rrc_T_modeSpecificInfo_90;
-static gint ett_rrc_T_fdd_127;
-static gint ett_rrc_T_tdd_74;
-static gint ett_rrc_UL_DPCH_Info_r5;
-static gint ett_rrc_T_modeSpecificInfo_91;
-static gint ett_rrc_T_fdd_128;
-static gint ett_rrc_T_tdd_75;
-static gint ett_rrc_UL_DPCH_Info_r6;
-static gint ett_rrc_T_modeSpecificInfo_92;
-static gint ett_rrc_T_fdd_129;
-static gint ett_rrc_T_dpdchPresence;
-static gint ett_rrc_T_present_02;
-static gint ett_rrc_T_notPresent;
-static gint ett_rrc_T_tdd_76;
-static gint ett_rrc_UL_DPCH_Info_r7;
-static gint ett_rrc_T_modeSpecificInfo_93;
-static gint ett_rrc_T_fdd_130;
-static gint ett_rrc_T_dpdchPresence_01;
-static gint ett_rrc_T_present_03;
-static gint ett_rrc_T_notPresent_01;
-static gint ett_rrc_T_tdd_77;
-static gint ett_rrc_UL_DPCH_Info_r11;
-static gint ett_rrc_T_modeSpecificInfo_94;
-static gint ett_rrc_T_fdd_131;
-static gint ett_rrc_T_dpdchPresence_02;
-static gint ett_rrc_T_present_04;
-static gint ett_rrc_T_notPresent_02;
-static gint ett_rrc_T_tdd_78;
-static gint ett_rrc_UL_DPCH_InfoPostFDD;
-static gint ett_rrc_UL_DPCH_InfoPostTDD;
-static gint ett_rrc_UL_DPCH_InfoPostTDD_LCR_r4;
-static gint ett_rrc_UL_DPCH_InfoPredef;
-static gint ett_rrc_T_modeSpecificInfo_95;
-static gint ett_rrc_T_fdd_132;
-static gint ett_rrc_T_tdd_79;
-static gint ett_rrc_UL_DPCH_InfoPredef_v770ext;
-static gint ett_rrc_T_modeSpecificInfo_96;
-static gint ett_rrc_T_fdd_133;
-static gint ett_rrc_UL_DPCH_PowerControlInfo;
-static gint ett_rrc_T_fdd_134;
-static gint ett_rrc_T_tdd_80;
-static gint ett_rrc_T_ul_OL_PC_Signalling;
-static gint ett_rrc_T_individuallySignalled;
-static gint ett_rrc_UL_DPCH_PowerControlInfo_r4;
-static gint ett_rrc_T_fdd_135;
-static gint ett_rrc_T_tdd_81;
-static gint ett_rrc_T_ul_OL_PC_Signalling_01;
-static gint ett_rrc_T_individuallySignalled_01;
-static gint ett_rrc_T_tddOption_22;
-static gint ett_rrc_T_tdd384_38;
-static gint ett_rrc_T_tdd128_60;
-static gint ett_rrc_UL_DPCH_PowerControlInfo_r5;
-static gint ett_rrc_T_fdd_136;
-static gint ett_rrc_T_tdd_82;
-static gint ett_rrc_T_ul_OL_PC_Signalling_02;
-static gint ett_rrc_T_individuallySignalled_02;
-static gint ett_rrc_T_tddOption_23;
-static gint ett_rrc_T_tdd384_39;
-static gint ett_rrc_T_tdd128_61;
-static gint ett_rrc_UL_DPCH_PowerControlInfo_r6;
-static gint ett_rrc_T_fdd_137;
-static gint ett_rrc_T_tdd_83;
-static gint ett_rrc_T_ul_OL_PC_Signalling_03;
-static gint ett_rrc_T_individuallySignalled_03;
-static gint ett_rrc_T_tddOption_24;
-static gint ett_rrc_T_tdd384_40;
-static gint ett_rrc_T_tdd128_62;
-static gint ett_rrc_UL_DPCH_PowerControlInfo_r7;
-static gint ett_rrc_T_fdd_138;
-static gint ett_rrc_T_tdd_84;
-static gint ett_rrc_T_ul_OL_PC_Signalling_04;
-static gint ett_rrc_T_individuallySignalled_04;
-static gint ett_rrc_T_tddOption_25;
-static gint ett_rrc_T_tdd384_41;
-static gint ett_rrc_T_tdd768_23;
-static gint ett_rrc_T_tdd128_63;
-static gint ett_rrc_UL_DPCH_PowerControlInfo_r11;
-static gint ett_rrc_T_fdd_139;
-static gint ett_rrc_T_tdd_85;
-static gint ett_rrc_T_ul_OL_PC_Signalling_05;
-static gint ett_rrc_T_individuallySignalled_05;
-static gint ett_rrc_T_tddOption_26;
-static gint ett_rrc_T_tdd384_42;
-static gint ett_rrc_T_tdd768_24;
-static gint ett_rrc_T_tdd128_64;
-static gint ett_rrc_UL_DPCHpowerControlInfoConcurrentTTI;
-static gint ett_rrc_UL_DPCHpowerControlInfoForCommonEDCH;
-static gint ett_rrc_UL_DPCH_PowerControlInfoPostFDD;
-static gint ett_rrc_UL_DPCH_PowerControlInfoPostTDD;
-static gint ett_rrc_UL_DPCH_PowerControlInfoPostTDD_LCR_r4;
-static gint ett_rrc_UL_DPCH_PowerControlInfoPredef;
-static gint ett_rrc_T_fdd_140;
-static gint ett_rrc_T_tdd_86;
-static gint ett_rrc_UL_EDCH_Information_ext;
-static gint ett_rrc_T_tdd_87;
-static gint ett_rrc_UL_EDCH_Information_r6;
-static gint ett_rrc_UL_EDCH_Information_r7;
-static gint ett_rrc_T_modeSpecificInfo_97;
-static gint ett_rrc_T_fdd_141;
-static gint ett_rrc_T_tdd_88;
-static gint ett_rrc_UL_EDCH_Information_r8;
-static gint ett_rrc_T_modeSpecificInfo_98;
-static gint ett_rrc_T_fdd_142;
-static gint ett_rrc_T_tdd_89;
-static gint ett_rrc_UL_EDCH_Information_r9;
-static gint ett_rrc_T_modeSpecificInfo_99;
-static gint ett_rrc_T_fdd_143;
-static gint ett_rrc_T_tdd_90;
-static gint ett_rrc_UL_EDCH_Information_r11;
-static gint ett_rrc_T_modeSpecificInfo_100;
-static gint ett_rrc_T_fdd_144;
-static gint ett_rrc_T_tdd_91;
-static gint ett_rrc_UL_MIMO_InfoFDD;
-static gint ett_rrc_T_configurationInfo_13;
-static gint ett_rrc_T_newConfiguration_21;
-static gint ett_rrc_UL_MulticarrierEDCH_InfolistItem_TDD128;
-static gint ett_rrc_UL_MulticarrierEDCH_Infolist_TDD128;
-static gint ett_rrc_UL_MulticarrierEDCH_Deletelist_TDD128;
-static gint ett_rrc_UL_MulticarrierEDCHInfo_TDD128;
-static gint ett_rrc_T_configuration_info;
-static gint ett_rrc_UL_MulticarrierEDCH_NewConfigurationInfo_TDD128;
-static gint ett_rrc_UL_SynchronisationParameters_r4;
-static gint ett_rrc_UL_TimingAdvanceControl;
-static gint ett_rrc_T_enabled;
-static gint ett_rrc_UL_TimingAdvanceControl_r4;
-static gint ett_rrc_T_enabled_01;
-static gint ett_rrc_T_tddOption_27;
-static gint ett_rrc_T_tdd384_43;
-static gint ett_rrc_T_tdd128_65;
-static gint ett_rrc_UL_TimingAdvanceControl_r7;
-static gint ett_rrc_T_enabled_02;
-static gint ett_rrc_T_tddOption_28;
-static gint ett_rrc_T_tdd384_44;
-static gint ett_rrc_T_tdd768_25;
-static gint ett_rrc_T_tdd128_66;
-static gint ett_rrc_UL_TimingAdvanceControl_LCR_r4;
-static gint ett_rrc_T_enabled_03;
-static gint ett_rrc_UL_TransModeSwitchingParam;
-static gint ett_rrc_UL_TS_ChannelisationCodeList;
-static gint ett_rrc_UL_TS_ChannelisationCodeList_r7;
-static gint ett_rrc_UL_TS_ChannelisationCodeList_r7_item;
-static gint ett_rrc_UL_TS_ChannelisationCodeList_VHCR;
-static gint ett_rrc_UplinkAdditionalTimeslots;
-static gint ett_rrc_T_parameters_04;
-static gint ett_rrc_T_sameAsLast_04;
-static gint ett_rrc_T_newParameters_04;
-static gint ett_rrc_UplinkAdditionalTimeslots_LCR_r4;
-static gint ett_rrc_T_parameters_05;
-static gint ett_rrc_T_sameAsLast_05;
-static gint ett_rrc_T_newParameters_05;
-static gint ett_rrc_UplinkAdditionalTimeslots_LCR_r7;
-static gint ett_rrc_T_parameters_06;
-static gint ett_rrc_T_sameAsLast_06;
-static gint ett_rrc_T_newParameters_06;
-static gint ett_rrc_UplinkAdditionalTimeslots_VHCR;
-static gint ett_rrc_T_parameters_07;
-static gint ett_rrc_T_sameAsLast_07;
-static gint ett_rrc_T_newParameters_07;
-static gint ett_rrc_UplinkTimeslotsCodes;
-static gint ett_rrc_T_moreTimeslots_04;
-static gint ett_rrc_T_additionalTimeslots_04;
-static gint ett_rrc_T_consecutive_02;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_UplinkAdditionalTimeslots;
-static gint ett_rrc_UplinkTimeslotsCodes_VHCR;
-static gint ett_rrc_T_moreTimeslots_05;
-static gint ett_rrc_T_additionalTimeslots_05;
-static gint ett_rrc_T_consecutive_03;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_UplinkAdditionalTimeslots_VHCR;
-static gint ett_rrc_UplinkTimeslotsCodes_LCR_r4;
-static gint ett_rrc_T_moreTimeslots_06;
-static gint ett_rrc_T_additionalTimeslots_06;
-static gint ett_rrc_T_consecutive_04;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_UplinkAdditionalTimeslots_LCR_r4;
-static gint ett_rrc_UplinkTimeslotsCodes_LCR_r7;
-static gint ett_rrc_T_moreTimeslots_07;
-static gint ett_rrc_T_additionalTimeslots_07;
-static gint ett_rrc_T_consecutive_05;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_UplinkAdditionalTimeslots_LCR_r7;
-static gint ett_rrc_AcquisitionSatInfo;
-static gint ett_rrc_AcquisitionSatInfo_va40ext;
-static gint ett_rrc_AcquisitionSatInfo_r10;
-static gint ett_rrc_AcquisitionSatInfo_vc50ext;
-static gint ett_rrc_AcquisitionSatInfo_r12;
-static gint ett_rrc_AcquisitionSatInfoList;
-static gint ett_rrc_AcquisitionSatInfoList_va40ext;
-static gint ett_rrc_AcquisitionSatInfoList_r10;
-static gint ett_rrc_AcquisitionSatInfoList_vc50ext;
-static gint ett_rrc_AcquisitionSatInfoList_r12;
-static gint ett_rrc_AdditionalMeasurementID_List;
-static gint ett_rrc_AdditionalMeasurementID_List_r9;
-static gint ett_rrc_AlmanacSatInfo;
-static gint ett_rrc_AlmanacSatInfoList;
-static gint ett_rrc_ALM_BDSKeplerianSet;
-static gint ett_rrc_ALM_ECEFsbasAlmanacSet;
-static gint ett_rrc_ALM_GlonassAlmanacSet;
-static gint ett_rrc_ALM_keplerianParameters;
-static gint ett_rrc_ALM_MidiAlmanacSet;
-static gint ett_rrc_ALM_NAVKeplerianSet;
-static gint ett_rrc_ALM_ReducedKeplerianSet;
-static gint ett_rrc_AuxInfoGANSS_ID1;
-static gint ett_rrc_AuxInfoGANSS_ID1_element;
-static gint ett_rrc_AuxInfoGANSS_ID3;
-static gint ett_rrc_AuxInfoGANSS_ID3_element;
-static gint ett_rrc_AzimuthAndElevation;
-static gint ett_rrc_AzimuthAndElevation_va40ext;
-static gint ett_rrc_AzimuthAndElevation_r10;
-static gint ett_rrc_BadSatList;
-static gint ett_rrc_BDSclockModel;
-static gint ett_rrc_BDS_IGPInfoList;
-static gint ett_rrc_BDS_IGPInfoList_item;
-static gint ett_rrc_DBDS_InfoList;
-static gint ett_rrc_DBDS_Info;
-static gint ett_rrc_DBDS_SignalInfoList;
-static gint ett_rrc_DBDS_SignalInfo;
-static gint ett_rrc_BLER_MeasurementResults;
-static gint ett_rrc_BLER_MeasurementResultsList;
-static gint ett_rrc_BLER_TransChIdList;
-static gint ett_rrc_BSICReported;
-static gint ett_rrc_BurstModeParameters;
-static gint ett_rrc_CellDCH_ReportCriteria;
-static gint ett_rrc_CellDCH_ReportCriteria_LCR_r4;
-static gint ett_rrc_CellDCHMeasOccasionPattern_LCR;
-static gint ett_rrc_CellDCHMeasOccasionInfo_TDD128_r9;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxMeasOccasionPattern_OF_CellDCHMeasOccasionPattern_LCR;
-static gint ett_rrc_CellInfo;
-static gint ett_rrc_T_modeSpecificInfo_101;
-static gint ett_rrc_T_fdd_145;
-static gint ett_rrc_T_tdd_92;
-static gint ett_rrc_CellInfo_r4;
-static gint ett_rrc_T_modeSpecificInfo_102;
-static gint ett_rrc_T_fdd_146;
-static gint ett_rrc_T_tdd_93;
-static gint ett_rrc_CellInfo_LCR_r8_ext;
-static gint ett_rrc_CellInfo_r9;
-static gint ett_rrc_T_modeSpecificInfo_103;
-static gint ett_rrc_T_fdd_147;
-static gint ett_rrc_T_tdd_94;
-static gint ett_rrc_CellInfoListToBeExcluded;
-static gint ett_rrc_CellInfoSI_RSCP;
-static gint ett_rrc_T_modeSpecificInfo_104;
-static gint ett_rrc_T_fdd_148;
-static gint ett_rrc_T_tdd_95;
-static gint ett_rrc_CellInfoSI_RSCP_LCR_r4;
-static gint ett_rrc_CellInfoSI_ECN0;
-static gint ett_rrc_T_modeSpecificInfo_105;
-static gint ett_rrc_T_fdd_149;
-static gint ett_rrc_T_tdd_96;
-static gint ett_rrc_CellInfoSI_ECN0_LCR_r4;
-static gint ett_rrc_CellInfoSI_HCS_RSCP;
-static gint ett_rrc_T_modeSpecificInfo_106;
-static gint ett_rrc_T_fdd_150;
-static gint ett_rrc_T_tdd_97;
-static gint ett_rrc_CellInfoSI_HCS_RSCP_LCR_r4;
-static gint ett_rrc_CellInfoSI_HCS_ECN0;
-static gint ett_rrc_T_modeSpecificInfo_107;
-static gint ett_rrc_T_fdd_151;
-static gint ett_rrc_T_tdd_98;
-static gint ett_rrc_CellInfoSI_HCS_ECN0_LCR_r4;
-static gint ett_rrc_CellMeasuredResults;
-static gint ett_rrc_T_modeSpecificInfo_108;
-static gint ett_rrc_T_fdd_152;
-static gint ett_rrc_T_tdd_99;
-static gint ett_rrc_CellMeasuredResults_r9;
-static gint ett_rrc_T_modeSpecificInfo_109;
-static gint ett_rrc_T_fdd_153;
-static gint ett_rrc_T_tdd_100;
-static gint ett_rrc_CellMeasuredResults_v920ext;
-static gint ett_rrc_CellMeasuredResults_vc50ext;
-static gint ett_rrc_CellMeasurementEventResults;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_PrimaryCPICH_Info;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_PrimaryCCPCH_Info;
-static gint ett_rrc_CellMeasurementEventResultsOnSecUlFreq;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeasOnSecULFreq_OF_PrimaryCPICH_Info;
-static gint ett_rrc_CellMeasurementEventResults_LCR_r4;
-static gint ett_rrc_CellReportingQuantities;
-static gint ett_rrc_T_modeSpecificInfo_110;
-static gint ett_rrc_T_fdd_154;
-static gint ett_rrc_T_tdd_101;
-static gint ett_rrc_CellSelectReselectInfoMC_RSCP;
-static gint ett_rrc_T_modeSpecificInfo_111;
-static gint ett_rrc_T_fdd_155;
-static gint ett_rrc_T_tdd_102;
-static gint ett_rrc_T_gsm_04;
-static gint ett_rrc_CellSelectReselectInfoSIB_11_12;
-static gint ett_rrc_T_modeSpecificInfo_112;
-static gint ett_rrc_T_fdd_156;
-static gint ett_rrc_T_tdd_103;
-static gint ett_rrc_T_gsm_05;
-static gint ett_rrc_CellSelectReselectInfoSIB_11_12_RSCP;
-static gint ett_rrc_T_modeSpecificInfo_113;
-static gint ett_rrc_T_fdd_157;
-static gint ett_rrc_T_tdd_104;
-static gint ett_rrc_T_gsm_06;
-static gint ett_rrc_CellSelectReselectInfoSIB_11_12_ECN0;
-static gint ett_rrc_T_modeSpecificInfo_114;
-static gint ett_rrc_T_fdd_158;
-static gint ett_rrc_T_tdd_105;
-static gint ett_rrc_T_gsm_07;
-static gint ett_rrc_CellSelectReselectInfoSIB_11_12_HCS_RSCP;
-static gint ett_rrc_T_modeSpecificInfo_115;
-static gint ett_rrc_T_fdd_159;
-static gint ett_rrc_T_tdd_106;
-static gint ett_rrc_T_gsm_08;
-static gint ett_rrc_CellSelectReselectInfoSIB_11_12_HCS_ECN0;
-static gint ett_rrc_T_modeSpecificInfo_116;
-static gint ett_rrc_T_fdd_160;
-static gint ett_rrc_T_tdd_107;
-static gint ett_rrc_T_gsm_09;
-static gint ett_rrc_CellSelectReselectInfo_v590ext;
-static gint ett_rrc_CellSelectReselectInfoPCHFACH_v5b0ext;
-static gint ett_rrc_CellSelectReselectInfoTreselectionScaling_v5c0ext;
-static gint ett_rrc_CellsForInterFreqMeasList;
-static gint ett_rrc_CellsForInterFreqMeasList_r12;
-static gint ett_rrc_CellsForInterRATMeasList;
-static gint ett_rrc_CellsForIntraFreqMeasList;
-static gint ett_rrc_CellsForIntraFreqMeasListOnSecULFreq;
-static gint ett_rrc_CellSynchronisationInfo;
-static gint ett_rrc_T_modeSpecificInfo_117;
-static gint ett_rrc_T_fdd_161;
-static gint ett_rrc_T_tdd_108;
-static gint ett_rrc_CellToReport;
-static gint ett_rrc_CellToReportList;
-static gint ett_rrc_CNAVclockModel;
-static gint ett_rrc_CountC_SFN_Frame_difference;
-static gint ett_rrc_CPICH_Ec_N0_RSCP;
-static gint ett_rrc_CSG_MemberPLMNList;
-static gint ett_rrc_CSGCellInfo;
-static gint ett_rrc_T_modeSpecificInfo_118;
-static gint ett_rrc_T_fdd_162;
-static gint ett_rrc_CSGCellInfoList;
-static gint ett_rrc_CSGInterFreqCellInfo;
-static gint ett_rrc_CSGInterFreqCellInfoList;
-static gint ett_rrc_CSGProximityDetection;
-static gint ett_rrc_CSGProximityIndication;
-static gint ett_rrc_T_radioAccessTechnology_03;
-static gint ett_rrc_T_uTRA;
-static gint ett_rrc_T_e_UTRA;
-static gint ett_rrc_CSGProximityIndication_vb50ext;
-static gint ett_rrc_DataBitAssistance;
-static gint ett_rrc_DataBitAssistanceList;
-static gint ett_rrc_DataBitAssistanceSat;
-static gint ett_rrc_DataBitAssistanceSgnList;
-static gint ett_rrc_DeltaRSCPPerCell;
-static gint ett_rrc_DeltaUT1;
-static gint ett_rrc_DGANSSInfo;
-static gint ett_rrc_DGANSSInfo_r9;
-static gint ett_rrc_DGANSSInfo_v920ext;
-static gint ett_rrc_DGANSSInfoList;
-static gint ett_rrc_DGANSSInfoList_r9;
-static gint ett_rrc_DGANSSInfoList_v920ext;
-static gint ett_rrc_DGANSSSignalInformation;
-static gint ett_rrc_DGANSSSignalInformation_r9;
-static gint ett_rrc_DGANSSSignalInformation_v920ext;
-static gint ett_rrc_DGANSSSignalInformationList;
-static gint ett_rrc_DGANSSSignalInformationList_r9;
-static gint ett_rrc_DGANSSSignalInformationList_v920ext;
-static gint ett_rrc_DGPS_CorrectionSatInfo;
-static gint ett_rrc_DGPS_CorrectionSatInfo_r9;
-static gint ett_rrc_DGPS_CorrectionSatInfo_v920ext;
-static gint ett_rrc_DGPS_CorrectionSatInfoList;
-static gint ett_rrc_DGPS_CorrectionSatInfoList_r9;
-static gint ett_rrc_DGPS_CorrectionSatInfoList_v920ext;
-static gint ett_rrc_EllipsoidPoint;
-static gint ett_rrc_EllipsoidPointAltitude;
-static gint ett_rrc_EllipsoidPointAltitudeEllipsoide;
-static gint ett_rrc_EllipsoidPointUncertCircle;
-static gint ett_rrc_EllipsoidPointUncertEllipse;
-static gint ett_rrc_EUTRA_CSGMemberPLMNList;
-static gint ett_rrc_Eutra_EventResult;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_PhysicalCellIdentity;
-static gint ett_rrc_EUTRA_EventResult_vb50ext;
-static gint ett_rrc_EUTRA_EventResult_vc50ext;
-static gint ett_rrc_Eutra_EventResultList;
-static gint ett_rrc_EUTRA_EventResultList_vb50ext;
-static gint ett_rrc_EUTRA_EventResultList_vc50ext;
-static gint ett_rrc_EUTRA_EventResults;
-static gint ett_rrc_EUTRA_EventResults_vb50ext;
-static gint ett_rrc_EUTRA_EventResults_vc50ext;
-static gint ett_rrc_EUTRA_EventResultsForCELLFACH;
-static gint ett_rrc_EUTRA_EventResultsForCELLFACH_vc50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfo;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfo_v920ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfo_vb50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfo_vc50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfo_vd20ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vb50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vb80ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vc50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vd20ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList_vb80ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList_vc50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList_vd20ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoList;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoList_v920ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoList_vb50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoList_vc50ext;
-static gint ett_rrc_EUTRA_FrequencyAndPriorityInfoList_vd20ext;
-static gint ett_rrc_EUTRA_FrequencyList;
-static gint ett_rrc_EUTRA_FrequencyList_r9;
-static gint ett_rrc_EUTRA_FrequencyList_r11;
-static gint ett_rrc_EUTRA_FrequencyList_r12;
-static gint ett_rrc_EUTRA_SIAcquisition;
-static gint ett_rrc_EUTRA_SIAcquisition_r11;
-static gint ett_rrc_EUTRA_MeasuredCells;
-static gint ett_rrc_Eutra_MeasuredResult;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_MeasuredCells;
-static gint ett_rrc_EUTRA_MeasuredResult_vb50ext;
-static gint ett_rrc_Eutra_MeasuredResultList;
-static gint ett_rrc_EUTRA_MeasuredResultList_vb50ext;
-static gint ett_rrc_EUTRA_MeasuredResults;
-static gint ett_rrc_EUTRA_MeasuredResults_vb50ext;
-static gint ett_rrc_EUTRA_MeasuredCells_v920ext;
-static gint ett_rrc_EUTRA_MeasuredCells_vc50ext;
-static gint ett_rrc_Eutra_MeasuredResult_v920ext;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_MeasuredCells_v920ext;
-static gint ett_rrc_Eutra_MeasuredResult_vc50ext;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_MeasuredCells_vc50ext;
-static gint ett_rrc_Eutra_MeasuredResultList_v920ext;
-static gint ett_rrc_Eutra_MeasuredResultList_vc50ext;
-static gint ett_rrc_EUTRA_MeasuredResults_v920ext;
-static gint ett_rrc_EUTRA_MeasuredResults_vc50ext;
-static gint ett_rrc_EUTRA_SIacquisitionResults;
-static gint ett_rrc_T_cgiInfo;
-static gint ett_rrc_EUTRA_SIacquisitionResults_vc50ext;
-static gint ett_rrc_CGI_Info;
-static gint ett_rrc_EUTRA_FrequencyRemoval;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_OF_EARFCN;
-static gint ett_rrc_EUTRA_FrequencyRemoval_r11;
-static gint ett_rrc_EUTRA_FrequencyInfoList;
-static gint ett_rrc_EUTRA_FrequencyInfoList_r11;
-static gint ett_rrc_EUTRA_FrequencyInfoList_r12;
-static gint ett_rrc_EUTRA_FrequencyInfo;
-static gint ett_rrc_EUTRA_FrequencyInfo_r11;
-static gint ett_rrc_EUTRA_FrequencyInfo_r12;
-static gint ett_rrc_EUTRA_FrequencyRACHReportingInfo;
-static gint ett_rrc_EUTRA_FrequencyRACHReportingInfo_vc50ext;
-static gint ett_rrc_EUTRA_MeasurementForCELLFACH;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_FACH_OF_EARFCNRange;
-static gint ett_rrc_EUTRA_MeasurementForCELLFACH_r12;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_FACH_ext_OF_EARFCNRange;
-static gint ett_rrc_FrequenciesToRemove;
-static gint ett_rrc_Event1a;
-static gint ett_rrc_Event1a_r4;
-static gint ett_rrc_Event1a_OnSecUlFreq_r9;
-static gint ett_rrc_Event1a_LCR_r4;
-static gint ett_rrc_Event1b;
-static gint ett_rrc_Event1b_r4;
-static gint ett_rrc_Event1b_r7;
-static gint ett_rrc_Event1b_OnSecUlFreq_r9;
-static gint ett_rrc_Event1b_LCR_r4;
-static gint ett_rrc_Event1c;
-static gint ett_rrc_Event1d;
-static gint ett_rrc_Event1e;
-static gint ett_rrc_Event1e_r6;
-static gint ett_rrc_Event1f;
-static gint ett_rrc_Event1f_r6;
-static gint ett_rrc_Event1j_r6;
-static gint ett_rrc_Event2a;
-static gint ett_rrc_Event2a_r6;
-static gint ett_rrc_Event2a_r10;
-static gint ett_rrc_Event2a_r11;
-static gint ett_rrc_Event2b;
-static gint ett_rrc_Event2b_r6;
-static gint ett_rrc_Event2b_r10;
-static gint ett_rrc_Event2b_r11;
-static gint ett_rrc_Event2c;
-static gint ett_rrc_Event2c_r6;
-static gint ett_rrc_Event2c_r10;
-static gint ett_rrc_Event2c_r11;
-static gint ett_rrc_Event2d;
-static gint ett_rrc_Event2d_r6;
-static gint ett_rrc_Event2d_r10;
-static gint ett_rrc_Event2e;
-static gint ett_rrc_Event2e_r6;
-static gint ett_rrc_Event2e_r10;
-static gint ett_rrc_Event2e_r11;
-static gint ett_rrc_Event2f;
-static gint ett_rrc_Event2f_r6;
-static gint ett_rrc_Event2f_r10;
-static gint ett_rrc_Event2g;
-static gint ett_rrc_Event3a;
-static gint ett_rrc_Event3b;
-static gint ett_rrc_Event3c;
-static gint ett_rrc_Event3d;
-static gint ett_rrc_Event3a_r12;
-static gint ett_rrc_Event3b_r12;
-static gint ett_rrc_Event3c_r12;
-static gint ett_rrc_EventResults;
-static gint ett_rrc_EventResults_v770ext;
-static gint ett_rrc_EventResults_v860ext;
-static gint ett_rrc_EventResults_va40ext;
-static gint ett_rrc_EventResultsOnSecUlFreq;
-static gint ett_rrc_ExtraDoppler;
-static gint ett_rrc_ExtraDopplerExtension;
-static gint ett_rrc_ExtraDopplerInfo;
-static gint ett_rrc_ExtraDopplerInfoExtension;
-static gint ett_rrc_FACH_MeasurementOccasionInfo;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxOtherRAT_OF_RAT_Type;
-static gint ett_rrc_FACH_MeasurementOccasionInfo_LCR_r4_ext;
-static gint ett_rrc_FilteredUEPowerHeadroomReportInfo;
-static gint ett_rrc_ForbiddenAffectCell;
-static gint ett_rrc_ForbiddenAffectCell_r4;
-static gint ett_rrc_ForbiddenAffectCell_LCR_r4;
-static gint ett_rrc_ForbiddenAffectCellList;
-static gint ett_rrc_ForbiddenAffectCellList_r4;
-static gint ett_rrc_ForbiddenAffectCellList_LCR_r4;
-static gint ett_rrc_ForbiddenAffectCellListOnSecULFreq;
-static gint ett_rrc_ForbiddenAffectCellOnSecULFreq;
-static gint ett_rrc_GanssDataBits;
-static gint ett_rrc_GANSSGenericData;
-static gint ett_rrc_GANSSGenericData_v860ext;
-static gint ett_rrc_GANSSGenericData_r8;
-static gint ett_rrc_GANSSGenericData_r9;
-static gint ett_rrc_GANSSGenericData_v920ext;
-static gint ett_rrc_GANSSGenericData_va40ext;
-static gint ett_rrc_GANSSGenericData_vc50ext;
-static gint ett_rrc_GANSSGenericData_r10;
-static gint ett_rrc_GANSSGenericData_r12;
-static gint ett_rrc_GANSSGenericDataList;
-static gint ett_rrc_GANSSGenericDataList_v860ext;
-static gint ett_rrc_GANSSGenericDataList_r8;
-static gint ett_rrc_GANSSGenericDataList_r9;
-static gint ett_rrc_GANSSGenericDataList_v920ext;
-static gint ett_rrc_GANSSGenericDataList_va40ext;
-static gint ett_rrc_GANSSGenericDataList_vc50ext;
-static gint ett_rrc_GANSSGenericDataList_r10;
-static gint ett_rrc_GANSSGenericDataList_r12;
-static gint ett_rrc_GANSSGenericMeasurementInfo;
-static gint ett_rrc_GANSSGenericMeasurementInfo_item;
-static gint ett_rrc_GANSSGenericMeasurementInfo_v860ext;
-static gint ett_rrc_GANSSGenericMeasurementInfo_v860ext_item;
-static gint ett_rrc_GANSSMeasurementParameters;
-static gint ett_rrc_GANSSMeasurementParameters_item;
-static gint ett_rrc_GANSSMeasurementParameters_v860ext;
-static gint ett_rrc_GANSSMeasurementParameters_v860ext_item;
-static gint ett_rrc_GANSSMeasurementSignalList;
-static gint ett_rrc_GANSSMeasurementSignalList_item;
-static gint ett_rrc_GANSSMeasurementSignalList_v860ext;
-static gint ett_rrc_GANSSMeasurementSignalList_v860ext_item;
-static gint ett_rrc_GanssNavigationModelAdditionalData;
-static gint ett_rrc_GANSSReferenceTimeOnly;
-static gint ett_rrc_GanssReqGenericData;
-static gint ett_rrc_GanssReqGenericData_v860ext;
-static gint ett_rrc_T_ganssAddADchoices;
-static gint ett_rrc_GanssReqGenericData_vc50ext;
-static gint ett_rrc_GanssRequestedGenericAssistanceDataList;
-static gint ett_rrc_GanssRequestedGenericAssistanceDataList_v860ext;
-static gint ett_rrc_GanssRequestedGenericAssistanceDataList_vc50ext;
-static gint ett_rrc_GANSSSatelliteInformation;
-static gint ett_rrc_GANSSSatelliteInformation_va40ext;
-static gint ett_rrc_GANSSSatelliteInformation_r10;
-static gint ett_rrc_GANSSSatelliteInformation_vc50ext;
-static gint ett_rrc_GANSSSatelliteInformation_r12;
-static gint ett_rrc_GANSSSatelliteInformationList;
-static gint ett_rrc_GANSSSatelliteInformationList_va40ext;
-static gint ett_rrc_GANSSSatelliteInformationList_r10;
-static gint ett_rrc_GANSSSatelliteInformationList_vc50ext;
-static gint ett_rrc_GANSSSatelliteInformationList_r12;
-static gint ett_rrc_GANSSTimeModelsList;
-static gint ett_rrc_GANSSTimeModelsList_va40ext;
-static gint ett_rrc_GANSSTimeModelsList_r10;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_BDSkp;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_GLOkp;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_Kp;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_MIDIkp;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_NAVkp;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_REDkp;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_SBASecef;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_BDSkpList;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_GLOkpList;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_KpList;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_MIDIkpList;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_NAVkpList;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_REDkpList;
-static gint ett_rrc_GANSS_SAT_Info_Almanac_SBASecefList;
-static gint ett_rrc_Ganss_Sat_Info_AddNav;
-static gint ett_rrc_Ganss_Sat_Info_AddNav_r12;
-static gint ett_rrc_Ganss_Sat_Info_AddNav_vc50ext;
-static gint ett_rrc_Ganss_Sat_Info_Nav;
-static gint ett_rrc_Ganss_Sat_Info_AddNavList;
-static gint ett_rrc_Ganss_Sat_Info_AddNavList_r12;
-static gint ett_rrc_Ganss_Sat_Info_AddNavList_vc50ext;
-static gint ett_rrc_Ganss_Sat_Info_NavList;
-static gint ett_rrc_GANSS_Storm_Flag;
-static gint ett_rrc_GLONASSclockModel;
-static gint ett_rrc_GPS_MeasurementParam;
-static gint ett_rrc_GPS_MeasurementParamList;
-static gint ett_rrc_GSM_CellGroup;
-static gint ett_rrc_T_followingARFCNs;
-static gint ett_rrc_SEQUENCE_SIZE_0_31_OF_BCCH_ARFCN;
-static gint ett_rrc_T_equallySpacedARFCNs;
-static gint ett_rrc_T_continuousRangeOfARFCNs;
-static gint ett_rrc_GSM_MeasuredResults;
-static gint ett_rrc_GSM_MeasuredResultsList;
-static gint ett_rrc_GPS_TOW_Assist;
-static gint ett_rrc_GPS_TOW_AssistList;
-static gint ett_rrc_GSM_PriorityInfo;
-static gint ett_rrc_GSM_PriorityInfoList;
-static gint ett_rrc_HCS_CellReselectInformation_RSCP;
-static gint ett_rrc_HCS_CellReselectInformation_ECN0;
-static gint ett_rrc_HCS_NeighbouringCellInformation_RSCP;
-static gint ett_rrc_HCS_NeighbouringCellInformation_ECN0;
-static gint ett_rrc_HCS_ServingCellInformation;
-static gint ett_rrc_HorizontalVelocity;
-static gint ett_rrc_HorizontalWithVerticalVelocity;
-static gint ett_rrc_HorizontalVelocityWithUncertainty;
-static gint ett_rrc_HorizontalWithVerticalVelocityAndUncertainty;
-static gint ett_rrc_IdleIntervalInfo;
-static gint ett_rrc_InterFreqCell;
-static gint ett_rrc_InterFreqCell_LCR_r4;
-static gint ett_rrc_InterFreqCellInfoList;
-static gint ett_rrc_InterFreqCellInfoList_r4;
-static gint ett_rrc_InterFreqCellInfoList_r8;
-static gint ett_rrc_InterFreqCellInfoList_r9;
-static gint ett_rrc_InterFreqCellInfoList_r10;
-static gint ett_rrc_InterFreqCellInfoList_r12;
-static gint ett_rrc_InterFreqSIAcquisition;
-static gint ett_rrc_T_modeSpecificInfo_119;
-static gint ett_rrc_T_fdd_163;
-static gint ett_rrc_InterFreqCellInfoSI_List_RSCP;
-static gint ett_rrc_InterFreqCellInfoSI_List_ECN0;
-static gint ett_rrc_InterFreqCellInfoSI_List_HCS_RSCP;
-static gint ett_rrc_InterFreqCellInfoSI_List_HCS_ECN0;
-static gint ett_rrc_InterFreqCellInfoSI_List_RSCP_LCR;
-static gint ett_rrc_InterFreqCellInfoSI_List_ECN0_LCR;
-static gint ett_rrc_InterFreqCellInfoSI_List_HCS_RSCP_LCR;
-static gint ett_rrc_InterFreqCellInfoSI_List_HCS_ECN0_LCR;
-static gint ett_rrc_InterFreqCellList;
-static gint ett_rrc_InterFreqCellList_LCR_r4_ext;
-static gint ett_rrc_InterFreqCellMeasuredResultsList;
-static gint ett_rrc_InterFreqCellMeasuredResultsList_v920ext;
-static gint ett_rrc_InterFreqCellMeasuredResultsList_vc50ext;
-static gint ett_rrc_InterFreqEvent;
-static gint ett_rrc_InterFreqEvent_r6;
-static gint ett_rrc_InterFreqEvent_r10;
-static gint ett_rrc_InterFreqEvent_r11;
-static gint ett_rrc_InterFreqEvent_r12;
-static gint ett_rrc_InterFreqEventList;
-static gint ett_rrc_InterFreqEventList_r6;
-static gint ett_rrc_InterFreqEventList_r10;
-static gint ett_rrc_InterFreqEventList_r11;
-static gint ett_rrc_InterFreqEventList_r12;
-static gint ett_rrc_InterFrequencyMeasuredResultsList_v590ext;
-static gint ett_rrc_Inter_FreqEventCriteria_v590ext;
-static gint ett_rrc_Inter_FreqEventCriteriaList_v590ext;
-static gint ett_rrc_Intra_FreqEventCriteriaList_v590ext;
-static gint ett_rrc_IntraFrequencyMeasuredResultsList_v590ext;
-static gint ett_rrc_InterFreqEventResults;
-static gint ett_rrc_InterFreqEventResults_va40ext;
-static gint ett_rrc_InterFreqEventResults_LCR_r4_ext;
-static gint ett_rrc_InterFreqMeasQuantity;
-static gint ett_rrc_T_reportingCriteria;
-static gint ett_rrc_T_intraFreqReportingCriteria;
-static gint ett_rrc_T_interFreqReportingCriteria;
-static gint ett_rrc_T_modeSpecificInfo_120;
-static gint ett_rrc_T_fdd_164;
-static gint ett_rrc_T_tdd_109;
-static gint ett_rrc_InterFreqMeasuredResults;
-static gint ett_rrc_InterFreqMeasuredResults_v920ext;
-static gint ett_rrc_InterFreqMeasuredResults_vc50ext;
-static gint ett_rrc_InterFreqMeasuredResultsList;
-static gint ett_rrc_InterFreqMeasuredResultsList_v920ext;
-static gint ett_rrc_InterFreqMeasuredResultsList_vc50ext;
-static gint ett_rrc_InterFreqMeasurementSysInfo_RSCP;
-static gint ett_rrc_InterFreqMeasurementSysInfo_ECN0;
-static gint ett_rrc_InterFreqMeasurementSysInfo_HCS_RSCP;
-static gint ett_rrc_InterFreqMeasurementSysInfo_HCS_ECN0;
-static gint ett_rrc_InterFreqMeasurementSysInfo_RSCP_LCR_r4;
-static gint ett_rrc_InterFreqMeasurementSysInfo_ECN0_LCR_r4;
-static gint ett_rrc_InterFreqMeasurementSysInfo_HCS_RSCP_LCR_r4;
-static gint ett_rrc_InterFreqMeasurementSysInfo_HCS_ECN0_LCR_r4;
-static gint ett_rrc_InterFreqRACHRepCellsList;
-static gint ett_rrc_InterFreqRACHRepCellsList_r12;
-static gint ett_rrc_Dummy_InterFreqRACHReportingInfo;
-static gint ett_rrc_T_modeSpecificInfo_121;
-static gint ett_rrc_T_fdd_165;
-static gint ett_rrc_T_tdd_110;
-static gint ett_rrc_InterFreqRACHReportingInfo;
-static gint ett_rrc_T_modeSpecificInfo_122;
-static gint ett_rrc_T_fdd_166;
-static gint ett_rrc_T_tdd_111;
-static gint ett_rrc_InterFreqExclude_listedCellsList_r12;
-static gint ett_rrc_InterFreqExclude_listedCells_r12;
-static gint ett_rrc_InterFreqReportCriteria;
-static gint ett_rrc_InterFreqReportCriteria_r4;
-static gint ett_rrc_InterFreqReportCriteria_r6;
-static gint ett_rrc_InterFreqReportCriteria_r7;
-static gint ett_rrc_InterFreqReportCriteria_r9;
-static gint ett_rrc_InterFreqReportCriteria_r10;
-static gint ett_rrc_InterFreqReportCriteria_r11;
-static gint ett_rrc_InterFreqReportCriteria_r12;
-static gint ett_rrc_InterFreqReportingCriteria;
-static gint ett_rrc_InterFreqReportingCriteria_r6;
-static gint ett_rrc_InterFreqReportingCriteria_r10;
-static gint ett_rrc_InterFreqReportingCriteria_r11;
-static gint ett_rrc_InterFreqReportingCriteria_r12;
-static gint ett_rrc_InterFreqReportingQuantity;
-static gint ett_rrc_InterFreqRepQuantityRACH_TDDList;
-static gint ett_rrc_InterFrequencyMeasurement;
-static gint ett_rrc_InterFrequencyMeasurement_r4;
-static gint ett_rrc_InterFrequencyMeasurement_r6;
-static gint ett_rrc_InterFrequencyMeasurement_r7;
-static gint ett_rrc_InterFrequencyMeasurement_r8;
-static gint ett_rrc_InterFrequencyMeasurement_r9;
-static gint ett_rrc_InterFrequencyMeasurement_r10;
-static gint ett_rrc_InterFrequencyMeasurement_r11;
-static gint ett_rrc_InterFrequencyMeasurement_r12;
-static gint ett_rrc_InterRAT_TargetCellDescription;
-static gint ett_rrc_T_technologySpecificInfo;
-static gint ett_rrc_T_gsm_10;
-static gint ett_rrc_InterRATCellInfoList;
-static gint ett_rrc_InterRATCellInfoList_B;
-static gint ett_rrc_InterRATCellInfoList_r4;
-static gint ett_rrc_InterRATCellInfoList_r6;
-static gint ett_rrc_InterRATEvent;
-static gint ett_rrc_InterRATEvent_r12;
-static gint ett_rrc_InterRATEventList;
-static gint ett_rrc_InterRATEventList_r12;
-static gint ett_rrc_InterRATEventResults;
-static gint ett_rrc_InterRATInfo_r6;
-static gint ett_rrc_InterRATInfo_v860ext;
-static gint ett_rrc_T_eutra_01;
-static gint ett_rrc_InterRATMeasQuantity;
-static gint ett_rrc_T_ratSpecificInfo;
-static gint ett_rrc_T_gsm_11;
-static gint ett_rrc_T_is_2000;
-static gint ett_rrc_InterRATMeasQuantity_r8;
-static gint ett_rrc_T_ratSpecificInfo_01;
-static gint ett_rrc_T_gsm_12;
-static gint ett_rrc_T_is_2000_01;
-static gint ett_rrc_T_e_UTRA_01;
-static gint ett_rrc_InterRATMeasuredResults;
-static gint ett_rrc_InterRATMeasuredResultsList;
-static gint ett_rrc_InterRATMeasurement;
-static gint ett_rrc_InterRATMeasurement_r4;
-static gint ett_rrc_InterRATMeasurement_r6;
-static gint ett_rrc_InterRATMeasurement_r8;
-static gint ett_rrc_T_interRATMeasurementObjects;
-static gint ett_rrc_InterRATMeasurement_r9;
-static gint ett_rrc_T_interRATMeasurementObjects_01;
-static gint ett_rrc_InterRATMeasurement_r11;
-static gint ett_rrc_T_interRATMeasurementObjects_02;
-static gint ett_rrc_InterRATMeasurement_r12;
-static gint ett_rrc_T_interRATMeasurementObjects_03;
-static gint ett_rrc_InterRATMeasurementSysInfo;
-static gint ett_rrc_InterRATMeasurementSysInfo_B;
-static gint ett_rrc_InterRATReportCriteria;
-static gint ett_rrc_InterRATReportCriteria_r12;
-static gint ett_rrc_InterRATReportingCriteria;
-static gint ett_rrc_InterRATReportingCriteria_r12;
-static gint ett_rrc_InterRATReportingQuantity;
-static gint ett_rrc_T_ratSpecificInfo_02;
-static gint ett_rrc_T_gsm_13;
-static gint ett_rrc_InterRATReportingQuantity_r8;
-static gint ett_rrc_T_ratSpecificInfo_03;
-static gint ett_rrc_T_gsm_14;
-static gint ett_rrc_T_eutra_02;
-static gint ett_rrc_IntraFreqCellInfoList;
-static gint ett_rrc_IntraFreqCellInfoList_r4;
-static gint ett_rrc_IntraFreqCellInfoListInfoOnSecULFreq;
-static gint ett_rrc_IntraFreqCellInfoListOnSecULFreq;
-static gint ett_rrc_IntraFreqCellInfoList_r9;
-static gint ett_rrc_IntraFreqCellInfoList_r10;
-static gint ett_rrc_IntraFreqSIAcquisitionInfo;
-static gint ett_rrc_IntraFreqSIAcquisition;
-static gint ett_rrc_T_modeSpecificInfo_123;
-static gint ett_rrc_T_fdd_167;
-static gint ett_rrc_IntraFreqCellInfoSI_List_RSCP;
-static gint ett_rrc_IntraFreqCellInfoSI_List_ECN0;
-static gint ett_rrc_IntraFreqCellInfoSI_List_HCS_RSCP;
-static gint ett_rrc_IntraFreqCellInfoSI_List_HCS_ECN0;
-static gint ett_rrc_IntraFreqCellInfoSI_List_RSCP_LCR_r4;
-static gint ett_rrc_IntraFreqCellInfoSI_List_ECN0_LCR_r4;
-static gint ett_rrc_IntraFreqCellInfoSI_List_HCS_RSCP_LCR_r4;
-static gint ett_rrc_IntraFreqCellInfoSI_List_HCS_ECN0_LCR_r4;
-static gint ett_rrc_IntraFreqEvent;
-static gint ett_rrc_IntraFreqEvent_r4;
-static gint ett_rrc_IntraFreqEvent_LCR_r4;
-static gint ett_rrc_IntraFreqEvent_r6;
-static gint ett_rrc_IntraFreqEvent_r7;
-static gint ett_rrc_IntraFreqEventOnSecULFreq;
-static gint ett_rrc_IntraFreqEvent_1d_r5;
-static gint ett_rrc_IntraFreqEventCriteria;
-static gint ett_rrc_IntraFreqEventCriteria_r4;
-static gint ett_rrc_IntraFreqEventCriteria_LCR_r4;
-static gint ett_rrc_IntraFreqEventCriteria_r6;
-static gint ett_rrc_IntraFreqEventCriteria_r7;
-static gint ett_rrc_IntraFreqEventCriteriaOnSecULFreq;
-static gint ett_rrc_IntraFreqEventCriteriaList;
-static gint ett_rrc_IntraFreqEventCriteriaList_r4;
-static gint ett_rrc_IntraFreqEventCriteriaList_LCR_r4;
-static gint ett_rrc_IntraFreqEventCriteriaList_r6;
-static gint ett_rrc_IntraFreqEventCriteriaList_r7;
-static gint ett_rrc_IntraFreqEventCriteriaListOnSecULFreq;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxMeasEventOnSecULFreq_OF_IntraFreqEventCriteriaOnSecULFreq;
-static gint ett_rrc_IntraFreqEventResults;
-static gint ett_rrc_IntraFreqEventResultsOnSecUlFreq;
-static gint ett_rrc_IntraFreqMeasQuantity;
-static gint ett_rrc_T_modeSpecificInfo_124;
-static gint ett_rrc_T_fdd_168;
-static gint ett_rrc_T_tdd_112;
-static gint ett_rrc_IntraFreqMeasQuantity_TDDList;
-static gint ett_rrc_IntraFreqMeasQuantity_TDD_sib3List;
-static gint ett_rrc_IntraFreqMeasuredResultsList;
-static gint ett_rrc_IntraFreqMeasuredResultsList_v920ext;
-static gint ett_rrc_IntraFreqMeasuredResultsList_vc50ext;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_RSCP;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_ECN0;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_HCS_RSCP;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_HCS_ECN0;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_RSCP_LCR_r4;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_ECN0_LCR_r4;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_HCS_RSCP_LCR_r4;
-static gint ett_rrc_IntraFreqMeasurementSysInfo_HCS_ECN0_LCR_r4;
-static gint ett_rrc_IntraFreqReportCriteria;
-static gint ett_rrc_IntraFreqReportCriteria_r4;
-static gint ett_rrc_IntraFreqReportCriteria_r6;
-static gint ett_rrc_IntraFreqReportCriteria_r7;
-static gint ett_rrc_IntraFreqReportCriteria_r9;
-static gint ett_rrc_IntraFreqReportCriteria_r11;
-static gint ett_rrc_IntraFreqReportingCriteria;
-static gint ett_rrc_IntraFreqReportingCriteria_r4;
-static gint ett_rrc_IntraFreqReportingCriteria_LCR_r4;
-static gint ett_rrc_IntraFreqReportingCriteria_r6;
-static gint ett_rrc_IntraFreqReportingCriteria_r7;
-static gint ett_rrc_IntraFreqReportingCriteria_r9;
-static gint ett_rrc_IntraFreqReportingCriteria_r11;
-static gint ett_rrc_IntraFreqReportingCriteria_1b_r5;
-static gint ett_rrc_IntraFreqReportingQuantity;
-static gint ett_rrc_IntraFreqReportingQuantityForRACH;
-static gint ett_rrc_T_modeSpecificInfo_125;
-static gint ett_rrc_T_fdd_169;
-static gint ett_rrc_T_tdd_113;
-static gint ett_rrc_IntraFreqReportingQuantityForRACH_vc50ext;
-static gint ett_rrc_IntraFreqRepQuantityRACH_TDDList;
-static gint ett_rrc_IntraFrequencyMeasurement;
-static gint ett_rrc_IntraFrequencyMeasurement_r4;
-static gint ett_rrc_IntraFrequencyMeasurement_r6;
-static gint ett_rrc_IntraFrequencyMeasurement_r7;
-static gint ett_rrc_IntraFrequencyMeasurement_r9;
-static gint ett_rrc_IntraFrequencyMeasurement_r10;
-static gint ett_rrc_IntraFrequencyMeasurement_r11;
-static gint ett_rrc_IntraFrequencyMeasuredResultsListOnSecULFreq;
-static gint ett_rrc_IntraFrequencyMeasuredResultsListOnSecULFreq_vc50ext;
-static gint ett_rrc_IntraUTRAANR;
-static gint ett_rrc_LoggedANRConfigurationInfo;
-static gint ett_rrc_LoggedANRReportInfoList;
-static gint ett_rrc_LoggedANRReportInfoList_vb50ext;
-static gint ett_rrc_LoggedANRReportInfo;
-static gint ett_rrc_LoggedANRReportInfo_vb50ext;
-static gint ett_rrc_LoggedCellInfo;
-static gint ett_rrc_LoggedCellInfo_vb50ext;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureInfo_FDD;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureInfo_FDD_vc50ext;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureInfo_FDD_r11;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureInfo_TDD128;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureInfo_TDD128_r11;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureInfo_TDD128_vc50ext;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureAccessInfo_FDD;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureAccessInfo_TDD;
-static gint ett_rrc_LoggedConnectionEstablishmentFailureLocationInfo;
-static gint ett_rrc_T_location;
-static gint ett_rrc_ConnectionEstablishmentFailureReport;
-static gint ett_rrc_T_modeSpecificInfo_126;
-static gint ett_rrc_T_fdd_170;
-static gint ett_rrc_T_tdd_114;
-static gint ett_rrc_ConnectionEstablishmentFailureReport_r11;
-static gint ett_rrc_T_modeSpecificInfo_127;
-static gint ett_rrc_T_fdd_171;
-static gint ett_rrc_T_tdd_115;
-static gint ett_rrc_ConnectionEstablishmentFailureReport_vc50ext;
-static gint ett_rrc_T_modeSpecificInfo_128;
-static gint ett_rrc_T_fdd_172;
-static gint ett_rrc_T_tdd_116;
-static gint ett_rrc_LoggedEUTRACellInfo;
-static gint ett_rrc_LoggedEUTRACellInfo_vb50ext;
-static gint ett_rrc_LoggedGSMCellInfo;
-static gint ett_rrc_LoggedMeasurementsConfigurationInfo;
-static gint ett_rrc_T_areaConfiguration;
-static gint ett_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_LAI;
-static gint ett_rrc_SEQUENCE_SIZE_1_8_OF_RAI;
-static gint ett_rrc_LoggedMeasurementsConfigurationInfo_r11;
-static gint ett_rrc_T_areaConfiguration_01;
-static gint ett_rrc_SEQUENCE_SIZE_1_32_OF_CellIDListItem;
-static gint ett_rrc_LoggedMeasInterfreqList_FDD;
-static gint ett_rrc_LoggedMeasInterfreqInfo_FDD;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxnumLoggedMeas_OF_LoggedMeasNeighbourInfo_FDD;
-static gint ett_rrc_LoggedMeasInterfreqInfo_TDD128;
-static gint ett_rrc_LoggedMeasInterRATNeighbourMeas;
-static gint ett_rrc_LoggedMeasInterRATNeighbourMeas_vb50ext;
-static gint ett_rrc_LoggedMeasInterRATNeighbourMeas_vc50ext;
-static gint ett_rrc_LoggedMeasInterRATNeighbourMeas_r11;
-static gint ett_rrc_LoggedMeasIntrafreqNeighbourList_FDD;
-static gint ett_rrc_LoggedMeasNeighbourInfo_FDD;
-static gint ett_rrc_LoggedMeasIntrafreqNeighbourMeasList_TDD128;
-static gint ett_rrc_LoggedMeasNeighbourMeas_TDD128;
-static gint ett_rrc_LoggedMeasGSMNeighbourCellsList;
-static gint ett_rrc_LoggedMeasGSMNeighbourCellsinfo;
-static gint ett_rrc_LoggedMeasEUTRAFreqList;
-static gint ett_rrc_LoggedMeasEUTRAFreqList_vb50ext;
-static gint ett_rrc_LoggedMeasEUTRAFreqList_r11;
-static gint ett_rrc_LoggedMeasEUTRAFreqList_vc50ext;
-static gint ett_rrc_LoggedMeasEUTRAFreqInfo;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxnumLoggedMeas_OF_LoggedMeasEUTRAFreqNeighbourInfo;
-static gint ett_rrc_LoggedMeasEUTRAFreqInfo_vb50ext;
-static gint ett_rrc_LoggedMeasEUTRAFreqInfo_r11;
-static gint ett_rrc_LoggedMeasEUTRAFreqInfo_vc50ext;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxnumLoggedMeas_OF_LoggedMeasEUTRAFreqNeighbourInfo_vc50ext;
-static gint ett_rrc_LoggedMeasEUTRAFreqNeighbourInfo;
-static gint ett_rrc_LoggedMeasEUTRAFreqNeighbourInfo_vc50ext;
-static gint ett_rrc_LoggedMeasInfo_FDD;
-static gint ett_rrc_LoggedMeasInfo_FDD_vb50ext;
-static gint ett_rrc_LoggedMeasInfo_FDD_vc50ext;
-static gint ett_rrc_LoggedMeasInfo_TDD128;
-static gint ett_rrc_LoggedMeasInfo_TDD128_vb50ext;
-static gint ett_rrc_LoggedMeasInfo_TDD128_vc50ext;
-static gint ett_rrc_LoggedMeasInfoList_FDD;
-static gint ett_rrc_LoggedMeasInfoList_FDD_vb50ext;
-static gint ett_rrc_LoggedMeasInfoList_FDD_vc50ext;
-static gint ett_rrc_LoggedMeasInfoList_TDD128;
-static gint ett_rrc_LoggedMeasInfoList_TDD128_vb50ext;
-static gint ett_rrc_LoggedMeasInfoList_TDD128_vc50ext;
-static gint ett_rrc_LoggedMeasInfoList;
-static gint ett_rrc_T_modeSpecificInfo_129;
-static gint ett_rrc_T_fdd_173;
-static gint ett_rrc_T_tdd_117;
-static gint ett_rrc_LoggedMeasInfoList_vb50ext;
-static gint ett_rrc_T_modeSpecificInfo_130;
-static gint ett_rrc_T_fdd_174;
-static gint ett_rrc_T_tdd_118;
-static gint ett_rrc_LoggedMeasInfoList_vc50ext;
-static gint ett_rrc_T_modeSpecificInfo_131;
-static gint ett_rrc_T_fdd_175;
-static gint ett_rrc_T_tdd_119;
-static gint ett_rrc_LoggedMeasInterfreqList_TDD128;
-static gint ett_rrc_LoggedMeasInterfreqNeighbourList_TDD128;
-static gint ett_rrc_LoggedMeasLocationInfo;
-static gint ett_rrc_LoggedMeasLocationInfo_vb50ext;
-static gint ett_rrc_LoggedMeasReport;
-static gint ett_rrc_LoggedMeasReport_vb50ext;
-static gint ett_rrc_LoggedMeasReport_vc50ext;
-static gint ett_rrc_LoggedMeasServingCellMeas_FDD;
-static gint ett_rrc_LoggedMeasServingCellMeas_FDD_vb50ext;
-static gint ett_rrc_LoggedMeasServingCellMeas_TDD128;
-static gint ett_rrc_LoggedMeasServingCellMeas_TDD128_vb50ext;
-static gint ett_rrc_LoggedUTRACellInfo;
-static gint ett_rrc_LoggingAbsoluteThreshold;
-static gint ett_rrc_KeplerianParameters;
-static gint ett_rrc_MeasuredResults;
-static gint ett_rrc_MeasuredResultsOnSecUlFreq;
-static gint ett_rrc_MeasuredResultsOnSecUlFreq_vc50ext;
-static gint ett_rrc_MeasuredResults_v390ext;
-static gint ett_rrc_MeasuredResults_v590ext;
-static gint ett_rrc_MeasuredResults_v770ext;
-static gint ett_rrc_MeasuredResults_v860ext;
-static gint ett_rrc_MeasuredResults_vd20ext;
-static gint ett_rrc_MeasuredResults_ve30ext;
-static gint ett_rrc_MeasuredResultsList_v920ext;
-static gint ett_rrc_MeasuredResultsList_vc50ext;
-static gint ett_rrc_MeasuredResultsListOnSecUlFreq;
-static gint ett_rrc_MeasuredResultsListOnSecUlFreq_vc50ext;
-static gint ett_rrc_MeasuredResults_v920ext;
-static gint ett_rrc_MeasuredResults_vc50ext;
-static gint ett_rrc_MeasuredResults_LCR_r4;
-static gint ett_rrc_MeasuredResultsList;
-static gint ett_rrc_MeasuredResultsList_LCR_r4_ext;
-static gint ett_rrc_MeasuredResultsList_v770xet;
-static gint ett_rrc_MeasuredResultsList_v770xet_item;
-static gint ett_rrc_MeasuredResultsList_v860ext;
-static gint ett_rrc_MeasuredResultsList_v860ext_item;
-static gint ett_rrc_MeasuredResultsOnRACH;
-static gint ett_rrc_T_currentCell;
-static gint ett_rrc_T_modeSpecificInfo_132;
-static gint ett_rrc_T_fdd_176;
-static gint ett_rrc_T_measurementQuantity_02;
-static gint ett_rrc_T_tdd_120;
-static gint ett_rrc_MeasuredResultsOnRACH_v7g0ext;
-static gint ett_rrc_MonitoredCellRACH_List_v7g0ext;
-static gint ett_rrc_MeasuredResultsOnRACHFDD_r11;
-static gint ett_rrc_T_currentCell_01;
-static gint ett_rrc_T_measurementQuantity_03;
-static gint ett_rrc_MeasuredResultsOnRACHinterFreq;
-static gint ett_rrc_MeasuredResultsOnRACHinterFreq_vc50ext;
-static gint ett_rrc_MeasuredResultsOnRACH_vc50ext;
-static gint ett_rrc_MeasuredResultsOnRACH_EUTRAFreq;
-static gint ett_rrc_MeasuredResultsOnRACH_EUTRAFreq_vc50ext;
-static gint ett_rrc_MeasurementCommand;
-static gint ett_rrc_T_modify_01;
-static gint ett_rrc_MeasurementCommand_r4;
-static gint ett_rrc_T_modify_02;
-static gint ett_rrc_MeasurementCommand_r6;
-static gint ett_rrc_T_modify_03;
-static gint ett_rrc_MeasurementCommand_r7;
-static gint ett_rrc_T_modify_04;
-static gint ett_rrc_MeasurementCommand_r8;
-static gint ett_rrc_T_modify_05;
-static gint ett_rrc_MeasurementCommand_r9;
-static gint ett_rrc_T_modify_06;
-static gint ett_rrc_MeasurementCommand_r10;
-static gint ett_rrc_T_modify_07;
-static gint ett_rrc_MeasurementCommand_r11;
-static gint ett_rrc_T_modify_08;
-static gint ett_rrc_MeasurementCommand_r12;
-static gint ett_rrc_T_modify_09;
-static gint ett_rrc_MeasurementCommand_r13;
-static gint ett_rrc_T_modify_10;
-static gint ett_rrc_MeasurementCommand_r14;
-static gint ett_rrc_T_modify_11;
-static gint ett_rrc_MeasurementCommand_r15;
-static gint ett_rrc_T_modify_12;
-static gint ett_rrc_MeasurementControlSysInfo;
-static gint ett_rrc_T_use_of_HCS;
-static gint ett_rrc_T_hcs_not_used;
-static gint ett_rrc_T_cellSelectQualityMeasure_01;
-static gint ett_rrc_T_cpich_RSCP;
-static gint ett_rrc_T_cpich_Ec_N0_01;
-static gint ett_rrc_T_hcs_used;
-static gint ett_rrc_T_cellSelectQualityMeasure_02;
-static gint ett_rrc_T_cpich_RSCP_01;
-static gint ett_rrc_T_cpich_Ec_N0_02;
-static gint ett_rrc_MeasurementControlSysInfo_vc50ext;
-static gint ett_rrc_MeasurementControlSysInfoExtension;
-static gint ett_rrc_T_use_of_HCS_01;
-static gint ett_rrc_T_hcs_not_used_01;
-static gint ett_rrc_T_cellSelectQualityMeasure_03;
-static gint ett_rrc_T_cpich_RSCP_02;
-static gint ett_rrc_T_cpich_Ec_N0_03;
-static gint ett_rrc_T_hcs_used_01;
-static gint ett_rrc_T_cellSelectQualityMeasure_04;
-static gint ett_rrc_T_cpich_RSCP_03;
-static gint ett_rrc_T_cpich_Ec_N0_04;
-static gint ett_rrc_MeasurementControlSysInfoExtensionAddon_r5;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_CellSelectReselectInfo_v590ext;
-static gint ett_rrc_MeasureControlSysInfoInterFreqExt;
-static gint ett_rrc_T_use_of_HCS_02;
-static gint ett_rrc_T_hcs_not_used_02;
-static gint ett_rrc_T_cellSelectQualityMeasure_05;
-static gint ett_rrc_T_cpich_RSCP_04;
-static gint ett_rrc_T_cpich_Ec_N0_05;
-static gint ett_rrc_T_hcs_used_02;
-static gint ett_rrc_T_cellSelectQualityMeasure_06;
-static gint ett_rrc_T_cpich_RSCP_05;
-static gint ett_rrc_T_cpich_Ec_N0_06;
-static gint ett_rrc_MeasurementControlSysInfoExtension_LCR_r4;
-static gint ett_rrc_T_use_of_HCS_03;
-static gint ett_rrc_T_hcs_not_used_03;
-static gint ett_rrc_T_cellSelectQualityMeasure_07;
-static gint ett_rrc_T_cpich_RSCP_06;
-static gint ett_rrc_T_cpich_Ec_N0_07;
-static gint ett_rrc_T_hcs_used_03;
-static gint ett_rrc_T_cellSelectQualityMeasure_08;
-static gint ett_rrc_T_cpich_RSCP_07;
-static gint ett_rrc_T_cpich_Ec_N0_08;
-static gint ett_rrc_MeasurementControlSysInfo_LCR_r4_ext;
-static gint ett_rrc_T_use_of_HCS_04;
-static gint ett_rrc_T_hcs_not_used_04;
-static gint ett_rrc_T_cellSelectQualityMeasure_09;
-static gint ett_rrc_T_cpich_RSCP_08;
-static gint ett_rrc_T_cpich_Ec_N0_09;
-static gint ett_rrc_T_hcs_used_04;
-static gint ett_rrc_T_cellSelectQualityMeasure_10;
-static gint ett_rrc_T_cpich_RSCP_09;
-static gint ett_rrc_T_cpich_Ec_N0_10;
-static gint ett_rrc_MeasurementOccasionPatternParameter;
-static gint ett_rrc_MeasurementReleaseEnhancement;
-static gint ett_rrc_MeasurementsToRelease;
-static gint ett_rrc_MeasurementReportingMode;
-static gint ett_rrc_MeasurementType;
-static gint ett_rrc_MeasurementType_r4;
-static gint ett_rrc_MeasurementType_r6;
-static gint ett_rrc_MeasurementType_r7;
-static gint ett_rrc_MeasurementType_r8;
-static gint ett_rrc_MeasurementType_r9;
-static gint ett_rrc_MeasurementType_r10;
-static gint ett_rrc_MeasurementType_r11;
-static gint ett_rrc_MeasurementType_r12;
-static gint ett_rrc_MeasurementType_r13;
-static gint ett_rrc_MeasurementType_r14;
-static gint ett_rrc_MeasurementType_r15;
-static gint ett_rrc_MeasurementType_Relocation_r14;
-static gint ett_rrc_MeasurementType_Relocation_r15;
-static gint ett_rrc_MeasurementValidity;
-static gint ett_rrc_MonitoredCellRACH_List;
-static gint ett_rrc_MonitoredCellRACH_Result;
-static gint ett_rrc_T_modeSpecificInfo_133;
-static gint ett_rrc_T_fdd_177;
-static gint ett_rrc_T_measurementQuantity_04;
-static gint ett_rrc_T_tdd_121;
-static gint ett_rrc_MonitoredCellRACH_ListFDD_r11;
-static gint ett_rrc_MonitoredCellRACH_ResultFDD_r11;
-static gint ett_rrc_T_measurementQuantity_05;
-static gint ett_rrc_MultipleEUTRAFrequencyBandIndicatorList;
-static gint ett_rrc_MultipleEUTRAFrequencyBandIndicatorExtensionList;
-static gint ett_rrc_MultipleEUTRAFrequencyBandInfo;
-static gint ett_rrc_MultipleEUTRAFrequencyBandExtensionInfo;
-static gint ett_rrc_MultipleEUTRAFrequencyInfoList;
-static gint ett_rrc_MultipleEUTRAFrequencyInfoExtensionList;
-static gint ett_rrc_MultipleFrequencyBandIndicatorListFDD;
-static gint ett_rrc_MultipleFrequencyBandInfo;
-static gint ett_rrc_MultipleFrequencyInfoListFDD;
-static gint ett_rrc_N_CR_T_CRMaxHyst;
-static gint ett_rrc_NAVclockModel;
-static gint ett_rrc_NavigationModelSatInfo;
-static gint ett_rrc_NavigationModelSatInfoList;
-static gint ett_rrc_NavModel_BDSKeplerianSet;
-static gint ett_rrc_NavModel_CNAVKeplerianSet;
-static gint ett_rrc_NavModel_GLONASSecef;
-static gint ett_rrc_NavModel_NAVKeplerianSet;
-static gint ett_rrc_NavModel_SBASecef;
-static gint ett_rrc_EphemerisParameter;
-static gint ett_rrc_Neighbour;
-static gint ett_rrc_T_modeSpecificInfo_134;
-static gint ett_rrc_T_fdd_178;
-static gint ett_rrc_T_tdd_122;
-static gint ett_rrc_Neighbour_v390ext;
-static gint ett_rrc_T_modeSpecificInfo_135;
-static gint ett_rrc_T_fdd_179;
-static gint ett_rrc_NeighbourList;
-static gint ett_rrc_Neighbour_TDD_r7;
-static gint ett_rrc_NeighbourList_TDD_r7;
-static gint ett_rrc_NeighbourList_v390ext;
-static gint ett_rrc_NeighbourQuality;
-static gint ett_rrc_NewInterFreqCell;
-static gint ett_rrc_NewInterFreqCell_r4;
-static gint ett_rrc_NewInterFreqCell_v7b0ext;
-static gint ett_rrc_NewInterFreqCell_LCR_v8a0ext;
-static gint ett_rrc_NewInterFreqCell_r8;
-static gint ett_rrc_T_modeSpecificInfo_136;
-static gint ett_rrc_T_tdd128_67;
-static gint ett_rrc_NewInterFreqCell_r9;
-static gint ett_rrc_T_modeSpecificInfo_137;
-static gint ett_rrc_T_tdd128_68;
-static gint ett_rrc_NewInterFreqCell_r10;
-static gint ett_rrc_T_modeSpecificInfo_138;
-static gint ett_rrc_T_tdd128_69;
-static gint ett_rrc_NewInterFreqCell_r12;
-static gint ett_rrc_T_modeSpecificInfo_139;
-static gint ett_rrc_T_tdd128_70;
-static gint ett_rrc_NewInterFreqCellList;
-static gint ett_rrc_NewInterFreqCellList_r4;
-static gint ett_rrc_NewInterFreqCellList_r12;
-static gint ett_rrc_NewInterFreqCellList_v7b0ext;
-static gint ett_rrc_NewInterFreqCellList_LCR_v8a0ext;
-static gint ett_rrc_NewInterFreqCellList_r8;
-static gint ett_rrc_NewInterFreqCellList_r9;
-static gint ett_rrc_NewInterFreqCellList_r10;
-static gint ett_rrc_NewInterFreqCellSI_RSCP;
-static gint ett_rrc_NewInterFreqCellSI_RSCP_ext;
-static gint ett_rrc_NewInterFreqCellSI_ECN0;
-static gint ett_rrc_NewInterFreqCellSI_ECN0_ext;
-static gint ett_rrc_NewInterFreqCellSI_HCS_RSCP;
-static gint ett_rrc_NewInterFreqCellSI_HCS_RSCP_ext;
-static gint ett_rrc_NewInterFreqCellSI_HCS_ECN0;
-static gint ett_rrc_NewInterFreqCellSI_HCS_ECN0_ext;
-static gint ett_rrc_NewInterFreqCellSI_RSCP_LCR_r4;
-static gint ett_rrc_NewInterFreqCellSI_ECN0_LCR_r4;
-static gint ett_rrc_NewInterFreqCellSI_HCS_RSCP_LCR_r4;
-static gint ett_rrc_NewInterFreqCellSI_HCS_ECN0_LCR_r4;
-static gint ett_rrc_NewInterFreqCellSI_List_ECN0;
-static gint ett_rrc_NewInterFreqCellSI_List_ECN0_ext;
-static gint ett_rrc_NewInterFreqCellSI_List_HCS_RSCP;
-static gint ett_rrc_NewInterFreqCellSI_List_HCS_RSCP_ext;
-static gint ett_rrc_NewInterFreqCellSI_List_HCS_ECN0;
-static gint ett_rrc_NewInterFreqCellSI_List_HCS_ECN0_ext;
-static gint ett_rrc_NewInterFreqCellSI_List_RSCP;
-static gint ett_rrc_NewInterFreqCellSI_List_RSCP_ext;
-static gint ett_rrc_NewInterFreqCellSI_List_ECN0_LCR_r4;
-static gint ett_rrc_NewInterFreqCellSI_List_HCS_RSCP_LCR_r4;
-static gint ett_rrc_NewInterFreqCellSI_List_HCS_ECN0_LCR_r4;
-static gint ett_rrc_NewInterFreqCellSI_List_RSCP_LCR_r4;
-static gint ett_rrc_NewInterRATCell;
-static gint ett_rrc_T_technologySpecificInfo_01;
-static gint ett_rrc_T_gsm_15;
-static gint ett_rrc_T_is_2000_02;
-static gint ett_rrc_NewInterRATCell_B;
-static gint ett_rrc_T_technologySpecificInfo_02;
-static gint ett_rrc_T_gsm_16;
-static gint ett_rrc_T_is_2000_03;
-static gint ett_rrc_NewInterRATCellList;
-static gint ett_rrc_NewInterRATCellList_B;
-static gint ett_rrc_NewIntraFreqCell;
-static gint ett_rrc_NewIntraFreqCell_r4;
-static gint ett_rrc_NewIntraFreqCell_r9;
-static gint ett_rrc_NewIntraFreqCell_r10;
-static gint ett_rrc_T_modeSpecificInfo_140;
-static gint ett_rrc_T_tdd128_71;
-static gint ett_rrc_NewIntraFreqCellOnSecULFreq;
-static gint ett_rrc_NewIntraFreqCellList;
-static gint ett_rrc_NewIntraFreqCellList_r4;
-static gint ett_rrc_NewIntraFreqCellList_r9;
-static gint ett_rrc_NewIntraFreqCellList_r10;
-static gint ett_rrc_NewIntraFreqCell_LCR_v8a0ext;
-static gint ett_rrc_NewIntraFreqCellList_LCR_v8a0ext;
-static gint ett_rrc_NewIntraFreqCellListOnSecULFreq;
-static gint ett_rrc_NewIntraFreqCellSI_RSCP;
-static gint ett_rrc_NewIntraFreqCellSI_ECN0;
-static gint ett_rrc_NewIntraFreqCellSI_HCS_RSCP;
-static gint ett_rrc_NewIntraFreqCellSI_HCS_ECN0;
-static gint ett_rrc_NewIntraFreqCellSI_RSCP_LCR_r4;
-static gint ett_rrc_NewIntraFreqCellSI_ECN0_LCR_r4;
-static gint ett_rrc_NewIntraFreqCellSI_HCS_RSCP_LCR_r4;
-static gint ett_rrc_NewIntraFreqCellSI_HCS_ECN0_LCR_r4;
-static gint ett_rrc_NewIntraFreqCellSI_List_RSCP;
-static gint ett_rrc_NewIntraFreqCellSI_List_ECN0;
-static gint ett_rrc_NewIntraFreqCellSI_List_HCS_RSCP;
-static gint ett_rrc_NewIntraFreqCellSI_List_HCS_ECN0;
-static gint ett_rrc_NewIntraFreqCellSI_List_RSCP_LCR_r4;
-static gint ett_rrc_NewIntraFreqCellSI_List_ECN0_LCR_r4;
-static gint ett_rrc_NewIntraFreqCellSI_List_HCS_RSCP_LCR_r4;
-static gint ett_rrc_NewIntraFreqCellSI_List_HCS_ECN0_LCR_r4;
-static gint ett_rrc_NonUsedFreqParameter;
-static gint ett_rrc_NonUsedFreqParameter_r6;
-static gint ett_rrc_NonUsedFreqParameter_r10;
-static gint ett_rrc_NonUsedFreqParameter_r11;
-static gint ett_rrc_NonUsedFreq2aParameter_r10;
-static gint ett_rrc_NonUsedFreq2aParameter_r11;
-static gint ett_rrc_NonUsedFreqParameterList;
-static gint ett_rrc_NonUsedFreqParameterList_r6;
-static gint ett_rrc_NonUsedFreqParameterList_r10;
-static gint ett_rrc_NonUsedFreqParameterList_r11;
-static gint ett_rrc_NonUsedFreq2aParameterList_r10;
-static gint ett_rrc_NonUsedFreq2aParameterList_r11;
-static gint ett_rrc_NonUsedFreqWList_r6;
-static gint ett_rrc_ApplicationLayerMeasurementConfiguration;
-static gint ett_rrc_ApplicationLayerMeasurementConfiguration_r15;
-static gint ett_rrc_ApplicationLayerMeasurementReporting;
-static gint ett_rrc_ApplicationLayerMeasurementReporting_r15;
-static gint ett_rrc_PenaltyTime_RSCP;
-static gint ett_rrc_PenaltyTime_ECN0;
-static gint ett_rrc_PeriodicalReportingCriteria;
-static gint ett_rrc_PeriodicReportingInfo_1b;
-static gint ett_rrc_PeriodicalWithReportingCellStatus;
-static gint ett_rrc_PeriodicalWithReportingCellStatus_r10;
-static gint ett_rrc_PeriodicalWithReportingCellStatusOnSecULFreq;
-static gint ett_rrc_PLMNIdentitiesOfNeighbourCells;
-static gint ett_rrc_PLMNIdentitiesOfNeighbourCells_v860ext;
-static gint ett_rrc_PLMNIdentitiesOfNeighbourCells_vc50ext;
-static gint ett_rrc_PlmnList;
-static gint ett_rrc_PLMNsOfInterFreqCellsList;
-static gint ett_rrc_PLMNsOfInterFreqCellsList_item;
-static gint ett_rrc_PLMNsOfInterFreqCellsList_vc50ext;
-static gint ett_rrc_InterFreqCellPLMN;
-static gint ett_rrc_MultiplePLMNsOfInterFreqCellsList;
-static gint ett_rrc_MultiplePLMNsOfInterFreqCellsList_item;
-static gint ett_rrc_SEQUENCE_SIZE_1_6_OF_PLMN_IdentityWithOptionalMCC_r6;
-static gint ett_rrc_MultiplePLMNsOfInterFreqCellsList_vc50ext;
-static gint ett_rrc_MultiplePLMNInfo;
-static gint ett_rrc_MultiplePLMN_List;
-static gint ett_rrc_PLMNsOfIntraFreqCellsList;
-static gint ett_rrc_PLMNsOfIntraFreqCellsList_item;
-static gint ett_rrc_MultiplePLMNsOfIntraFreqCellsList;
-static gint ett_rrc_MultiplePLMNsOfIntraFreqCellsList_item;
-static gint ett_rrc_PLMNsOfInterRATCellsList;
-static gint ett_rrc_PLMNsOfInterRATCellsList_item;
-static gint ett_rrc_PositionEstimate;
-static gint ett_rrc_QualityEventResults;
-static gint ett_rrc_QualityMeasuredResults;
-static gint ett_rrc_T_modeSpecificInfo_141;
-static gint ett_rrc_T_tdd_123;
-static gint ett_rrc_QualityMeasurement;
-static gint ett_rrc_QualityReportCriteria;
-static gint ett_rrc_QualityReportingCriteria;
-static gint ett_rrc_QualityReportingCriteriaSingle;
-static gint ett_rrc_QualityReportingQuantity;
-static gint ett_rrc_T_modeSpecificInfo_142;
-static gint ett_rrc_T_tdd_124;
-static gint ett_rrc_ReferenceCellPosition;
-static gint ett_rrc_ReferenceLocation;
-static gint ett_rrc_ReferenceLocationGANSS;
-static gint ett_rrc_ReferenceTimeDifferenceToCell;
-static gint ett_rrc_RemovedInterFreqCellList;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_InterFreqCellID;
-static gint ett_rrc_RemovedInterFreqCellList_r12;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_ext_OF_InterFreqCellID_r12;
-static gint ett_rrc_RemovedInterRATCellList;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_InterRATCellID;
-static gint ett_rrc_RemovedIntraFreqCellList;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_IntraFreqCellID;
-static gint ett_rrc_RemovedIntraFreqCellListOnSecULFreq;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxCellMeasOnSecULFreq_OF_IntraFreqCellIDOnSecULFreq;
-static gint ett_rrc_ReportingCellStatus;
-static gint ett_rrc_ReportingCellStatus_r10;
-static gint ett_rrc_ReportingCellStatusOpt;
-static gint ett_rrc_ReportingCellStatusOpt_r10;
-static gint ett_rrc_ReportingInfoForCellDCH;
-static gint ett_rrc_ReportingInfoForCellDCH_LCR_r4;
-static gint ett_rrc_ReqDataBitAssistance;
-static gint ett_rrc_T_ganssSatelliteInfo;
-static gint ett_rrc_RL_AdditionInfoList;
-static gint ett_rrc_RL_InformationLists;
-static gint ett_rrc_RMP_Frequency_List;
-static gint ett_rrc_RSCPforANR;
-static gint ett_rrc_RsrqType;
-static gint ett_rrc_SatData;
-static gint ett_rrc_SatDataList;
-static gint ett_rrc_SatellitesListRelatedData;
-static gint ett_rrc_SatellitesListRelatedDataList;
-static gint ett_rrc_Satellite_clock_model;
-static gint ett_rrc_Satellite_clock_modelList;
-static gint ett_rrc_SBASclockModel;
-static gint ett_rrc_S_DPCCH_Information;
-static gint ett_rrc_SFN_SFN_ObsTimeDifference;
-static gint ett_rrc_SFN_SFN_RelTimeDifference1;
-static gint ett_rrc_SIR_MeasurementList;
-static gint ett_rrc_SIR_MeasurementResults;
-static gint ett_rrc_SIR_TFCS_List;
-static gint ett_rrc_SIR_TimeslotList;
-static gint ett_rrc_SubFrame1Reserved;
-static gint ett_rrc_T_ADVinfo;
-static gint ett_rrc_T_ADVinfo_ext;
-static gint ett_rrc_T_CRMax;
-static gint ett_rrc_TCE_Id;
-static gint ett_rrc_TemporaryOffsetList;
-static gint ett_rrc_ThreholdNonUsedFrequency_deltaList;
-static gint ett_rrc_TimeslotInfo;
-static gint ett_rrc_TimeslotInfo_LCR_r4;
-static gint ett_rrc_TimeslotInfoList;
-static gint ett_rrc_TimeslotInfoList_LCR_r4;
-static gint ett_rrc_TimeslotInfoList_r4;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_OF_TimeslotInfo;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_OF_TimeslotInfo_LCR_r4;
-static gint ett_rrc_TimeslotISCP_List;
-static gint ett_rrc_TimeslotListWithISCP;
-static gint ett_rrc_TimeslotWithISCP;
-static gint ett_rrc_TraceReference;
-static gint ett_rrc_TraceRecordingSession;
-static gint ett_rrc_TrafficVolumeEventParam;
-static gint ett_rrc_TrafficVolumeEventResults;
-static gint ett_rrc_TrafficVolumeMeasQuantity;
-static gint ett_rrc_TrafficVolumeMeasSysInfo;
-static gint ett_rrc_TrafficVolumeMeasuredResults;
-static gint ett_rrc_TrafficVolumeMeasuredResultsList;
-static gint ett_rrc_TrafficVolumeMeasurement;
-static gint ett_rrc_TrafficVolumeMeasurementObjectList;
-static gint ett_rrc_TrafficVolumeReportCriteria;
-static gint ett_rrc_TrafficVolumeReportCriteriaSysInfo;
-static gint ett_rrc_TrafficVolumeReportingCriteria;
-static gint ett_rrc_TrafficVolumeReportingQuantity;
-static gint ett_rrc_TransChCriteria;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxMeasParEvent_OF_TrafficVolumeEventParam;
-static gint ett_rrc_TransChCriteriaList;
-static gint ett_rrc_UE_6AB_Event;
-static gint ett_rrc_UE_6FG_Event;
-static gint ett_rrc_UE_6HI_Event;
-static gint ett_rrc_UE_AutonomousUpdateMode;
-static gint ett_rrc_UE_InternalEventParam;
-static gint ett_rrc_UE_InternalEventParam_r14;
-static gint ett_rrc_UE_InternalEventParamList;
-static gint ett_rrc_UE_InternalEventParamList_r14;
-static gint ett_rrc_UE_InternalEventResults;
-static gint ett_rrc_UE_InternalEventResults_v30ext_IEs;
-static gint ett_rrc_UE_InternalMeasQuantity;
-static gint ett_rrc_UE_InternalMeasQuantity_r14;
-static gint ett_rrc_UE_InternalMeasuredResults;
-static gint ett_rrc_T_modeSpecificInfo_143;
-static gint ett_rrc_T_fdd_180;
-static gint ett_rrc_T_tdd_125;
-static gint ett_rrc_UE_InternalMeasuredResults_ve30ext;
-static gint ett_rrc_T_modeSpecificInfo_144;
-static gint ett_rrc_T_fdd_181;
-static gint ett_rrc_UE_InternalMeasuredResults_LCR_r4;
-static gint ett_rrc_UE_InternalMeasuredResults_v770ext;
-static gint ett_rrc_T_modeSpecificInfo_145;
-static gint ett_rrc_T_tdd384_768_02;
-static gint ett_rrc_T_tdd128_72;
-static gint ett_rrc_UE_InternalMeasurement;
-static gint ett_rrc_UE_InternalMeasurement_r4;
-static gint ett_rrc_UE_InternalMeasurement_r14;
-static gint ett_rrc_UE_InternalMeasurementSysInfo;
-static gint ett_rrc_UE_InternalReportCriteria;
-static gint ett_rrc_UE_InternalReportCriteria_r14;
-static gint ett_rrc_UE_InternalReportingCriteria;
-static gint ett_rrc_UE_InternalReportingCriteria_r14;
-static gint ett_rrc_UE_InternalReportingQuantity;
-static gint ett_rrc_T_modeSpecificInfo_146;
-static gint ett_rrc_T_fdd_182;
-static gint ett_rrc_T_tdd_126;
-static gint ett_rrc_UE_InternalReportingQuantity_r4;
-static gint ett_rrc_T_modeSpecificInfo_147;
-static gint ett_rrc_T_fdd_183;
-static gint ett_rrc_T_tdd_127;
-static gint ett_rrc_T_tddOption_29;
-static gint ett_rrc_T_tdd384_45;
-static gint ett_rrc_T_tdd128_73;
-static gint ett_rrc_UE_InternalReportingQuantity_r14;
-static gint ett_rrc_T_modeSpecificInfo_148;
-static gint ett_rrc_T_fdd_184;
-static gint ett_rrc_T_tdd_128;
-static gint ett_rrc_T_tddOption_30;
-static gint ett_rrc_T_tdd384_46;
-static gint ett_rrc_T_tdd128_74;
-static gint ett_rrc_UE_RX_TX_ReportEntry;
-static gint ett_rrc_UE_RX_TX_ReportEntryList;
-static gint ett_rrc_UE_RX_TX_TimeDifferenceType2Info;
-static gint ett_rrc_UE_TransmittedPowerTDD_List;
-static gint ett_rrc_UL_TrCH_Identity;
-static gint ett_rrc_UE_Positioning_DBDSCorrections;
-static gint ett_rrc_UE_Positioning_CipherParameters;
-static gint ett_rrc_UE_Positioning_DGANSSCorrections;
-static gint ett_rrc_UE_Positioning_DGANSSCorrections_r9;
-static gint ett_rrc_UE_Positioning_DGANSSCorrections_v920ext;
-static gint ett_rrc_UE_Positioning_Error;
-static gint ett_rrc_UE_Positioning_Error_r7;
-static gint ett_rrc_UE_Positioning_Error_v860ext;
-static gint ett_rrc_UE_Positioning_Error_vc50ext;
-static gint ett_rrc_UE_Positioning_EventParam;
-static gint ett_rrc_UE_Positioning_EventParam_r7;
-static gint ett_rrc_UE_Positioning_EventParamList;
-static gint ett_rrc_UE_Positioning_EventParamList_r7;
-static gint ett_rrc_UE_Positioning_EventSpecificInfo;
-static gint ett_rrc_UE_Positioning_EventSpecificInfo_r7;
-static gint ett_rrc_UE_Positioning_GANSS_AddUTCModels;
-static gint ett_rrc_UE_Positioning_GANSS_AddUTCModels_r12;
-static gint ett_rrc_UE_Positioning_GANSS_AddUTCModels_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_Almanac;
-static gint ett_rrc_UE_Positioning_GANSS_Almanac_v860ext;
-static gint ett_rrc_UE_Positioning_GANSS_Almanac_r8;
-static gint ett_rrc_UE_Positioning_GANSS_Almanac_va40ext;
-static gint ett_rrc_UE_Positioning_GANSS_Almanac_r10;
-static gint ett_rrc_UE_Positioning_GANSS_Almanac_r12;
-static gint ett_rrc_UE_Positioning_GANSS_Almanac_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_AdditionalAssistanceDataRequest;
-static gint ett_rrc_UE_Positioning_GANSS_AdditionalAssistanceDataRequest_v860ext;
-static gint ett_rrc_UE_Positioning_GANSS_AdditionalAssistanceDataRequest_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_AddIonoModel;
-static gint ett_rrc_UE_Positioning_GANSS_AddNavigationModels;
-static gint ett_rrc_UE_Positioning_GANSS_AddNavigationModels_r12;
-static gint ett_rrc_UE_Positioning_GANSS_AddNavigationModels_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_v860ext;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_r8;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_r9;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_v920ext;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_va40ext;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_r10;
-static gint ett_rrc_UE_Positioning_GANSS_AssistanceData_r12;
-static gint ett_rrc_UE_Positioning_GANSS_AuxiliaryInfo;
-static gint ett_rrc_UE_Positioning_GANSS_ClockModel;
-static gint ett_rrc_UE_Positioning_GANSS_AddClockModels;
-static gint ett_rrc_UE_Positioning_GANSS_AddClockModels_r12;
-static gint ett_rrc_UE_Positioning_GANSS_AddClockModels_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_AddOrbitModels;
-static gint ett_rrc_UE_Positioning_GANSS_AddOrbitModels_r12;
-static gint ett_rrc_UE_Positioning_GANSS_AddOrbitModels_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_Data_Bit_Assistance;
-static gint ett_rrc_UE_Positioning_GANSS_EarthOrientPara;
-static gint ett_rrc_UE_Positioning_GANSS_IonosphericModel;
-static gint ett_rrc_UE_Positioning_BDS_IonoGridModel;
-static gint ett_rrc_UE_Positioning_GANSS_MeasuredResults;
-static gint ett_rrc_T_referenceTime;
-static gint ett_rrc_UE_Positioning_GANSS_MeasuredResults_v860ext;
-static gint ett_rrc_UE_Positioning_GANSS_NavigationModel;
-static gint ett_rrc_UE_Positioning_GANSS_OrbitModel;
-static gint ett_rrc_UE_Positioning_GANSS_RealTimeIntegrity;
-static gint ett_rrc_UE_Positioning_GANSS_RealTimeIntegrity_item;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_va40ext;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_r10;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_vc50ext;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_r12;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceTime;
-static gint ett_rrc_T_utran_ganssreferenceTime;
-static gint ett_rrc_T_mode;
-static gint ett_rrc_T_fdd_185;
-static gint ett_rrc_T_tdd_129;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceTime_va40ext;
-static gint ett_rrc_UE_Positioning_GANSS_ReferenceTime_r10;
-static gint ett_rrc_T_utran_ganssreferenceTime_01;
-static gint ett_rrc_T_mode_01;
-static gint ett_rrc_T_fdd_186;
-static gint ett_rrc_T_tdd_130;
-static gint ett_rrc_UE_Positioning_GANSS_TimeModel;
-static gint ett_rrc_UE_Positioning_GANSS_TimeModel_va40ext;
-static gint ett_rrc_UE_Positioning_GANSS_TimeModel_r10;
-static gint ett_rrc_UE_Positioning_GANSS_TimeModels;
-static gint ett_rrc_UE_Positioning_GANSS_TimeModels_va40ext;
-static gint ett_rrc_UE_Positioning_GANSS_UTCModel;
-static gint ett_rrc_UE_Positioning_GPS_AcquisitionAssistance;
-static gint ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_v770ext;
-static gint ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_r7;
-static gint ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_va40ext;
-static gint ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_r10;
-static gint ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_vc50ext;
-static gint ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_r12;
-static gint ett_rrc_UE_Positioning_GPS_AdditionalAssistanceDataRequest;
-static gint ett_rrc_UE_Positioning_GPS_Almanac;
-static gint ett_rrc_UE_Positioning_GPS_Almanac_va40ext;
-static gint ett_rrc_UE_Positioning_GPS_Almanac_r10;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_v770ext;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_r7;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_r9;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_v920ext;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_va40ext;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_r10;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_vc50ext;
-static gint ett_rrc_UE_Positioning_GPS_AssistanceData_r12;
-static gint ett_rrc_UE_Positioning_GPS_DGPS_Corrections;
-static gint ett_rrc_UE_Positioning_GPS_DGPS_Corrections_r9;
-static gint ett_rrc_UE_Positioning_GPS_DGPS_Corrections_v920ext;
-static gint ett_rrc_UE_Positioning_GPS_IonosphericModel;
-static gint ett_rrc_UE_Positioning_GPS_MeasurementResults;
-static gint ett_rrc_T_referenceTime_01;
-static gint ett_rrc_UE_Positioning_GPS_MeasurementResults_v770ext;
-static gint ett_rrc_UE_Positioning_GPS_NavigationModel;
-static gint ett_rrc_UE_Positioning_GPS_NavModelAddDataReq;
-static gint ett_rrc_UE_Positioning_GPS_ReferenceCellInfo;
-static gint ett_rrc_T_modeSpecificInfo_149;
-static gint ett_rrc_T_fdd_187;
-static gint ett_rrc_T_tdd_131;
-static gint ett_rrc_UE_Positioning_GPS_ReferenceTime;
-static gint ett_rrc_UE_Positioning_GPS_ReferenceTime_v770ext;
-static gint ett_rrc_UE_Positioning_GPS_ReferenceTime_r7;
-static gint ett_rrc_UE_Positioning_GPS_ReferenceTime_va40ext;
-static gint ett_rrc_UE_Positioning_GPS_ReferenceTime_r10;
-static gint ett_rrc_UE_Positioning_GPS_UTC_Model;
-static gint ett_rrc_UE_Positioning_IPDL_Parameters;
-static gint ett_rrc_UE_Positioning_IPDL_Parameters_r4;
-static gint ett_rrc_T_modeSpecificInfo_150;
-static gint ett_rrc_T_fdd_188;
-static gint ett_rrc_T_tdd_132;
-static gint ett_rrc_UE_Positioning_IPDL_Parameters_TDD_r4_ext;
-static gint ett_rrc_UE_Positioning_MeasuredResults;
-static gint ett_rrc_UE_Positioning_MeasuredResults_v770ext;
-static gint ett_rrc_UE_Positioning_MeasuredResults_v390ext;
-static gint ett_rrc_UE_Positioning_MeasuredResults_v860ext;
-static gint ett_rrc_UE_Positioning_MeasuredResults_vc50ext;
-static gint ett_rrc_UE_Positioning_MeasuredResults_vd20ext;
-static gint ett_rrc_UE_Positioning_Measurement;
-static gint ett_rrc_UE_Positioning_Measurement_v390ext;
-static gint ett_rrc_UE_Positioning_Measurement_r4;
-static gint ett_rrc_UE_Positioning_Measurement_r7;
-static gint ett_rrc_UE_Positioning_Measurement_r8;
-static gint ett_rrc_UE_Positioning_Measurement_r9;
-static gint ett_rrc_UE_Positioning_Measurement_r10;
-static gint ett_rrc_UE_Positioning_Measurement_r12;
-static gint ett_rrc_UE_Positioning_Measurement_r13;
-static gint ett_rrc_UE_Positioning_MeasurementEventResults;
-static gint ett_rrc_UE_Positioning_MeasurementEventResults_v770ext;
-static gint ett_rrc_UE_Positioning_MeasurementEventResults_v860ext;
-static gint ett_rrc_UE_Positioning_OTDOA_AssistanceData;
-static gint ett_rrc_UE_Positioning_OTDOA_AssistanceData_r4;
-static gint ett_rrc_UE_Positioning_OTDOA_AssistanceData_r4ext;
-static gint ett_rrc_UE_Positioning_OTDOA_AssistanceData_UEB;
-static gint ett_rrc_UE_Positioning_OTDOA_AssistanceData_UEB_ext;
-static gint ett_rrc_UE_Positioning_OTDOA_AssistanceData_r7;
-static gint ett_rrc_UE_Positioning_IPDL_Parameters_TDDList_r4_ext;
-static gint ett_rrc_UE_Positioning_OTDOA_MeasuredResultsTDD_ext;
-static gint ett_rrc_UE_Positioning_OTDOA_Measurement;
-static gint ett_rrc_T_modeSpecificInfo_151;
-static gint ett_rrc_T_fdd_189;
-static gint ett_rrc_T_tdd_133;
-static gint ett_rrc_UE_Positioning_OTDOA_Measurement_v390ext;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo;
-static gint ett_rrc_T_modeSpecificInfo_152;
-static gint ett_rrc_T_fdd_190;
-static gint ett_rrc_T_tdd_134;
-static gint ett_rrc_T_positioningMode;
-static gint ett_rrc_T_ueBased;
-static gint ett_rrc_T_ueAssisted;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_r4;
-static gint ett_rrc_T_modeSpecificInfo_153;
-static gint ett_rrc_T_fdd_191;
-static gint ett_rrc_T_tdd_135;
-static gint ett_rrc_T_positioningMode_01;
-static gint ett_rrc_T_ueBased_01;
-static gint ett_rrc_T_ueAssisted_01;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_UEB;
-static gint ett_rrc_T_modeSpecificInfo_154;
-static gint ett_rrc_T_fdd_192;
-static gint ett_rrc_T_tdd_136;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_UEB_ext;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_r7;
-static gint ett_rrc_T_modeSpecificInfo_155;
-static gint ett_rrc_T_fdd_193;
-static gint ett_rrc_T_tdd_137;
-static gint ett_rrc_T_positioningMode_02;
-static gint ett_rrc_T_ueBased_02;
-static gint ett_rrc_T_ueAssisted_02;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellList;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_r4;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_UEB;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_UEB_ext;
-static gint ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_r7;
-static gint ett_rrc_UE_Positioning_OTDOA_Quality;
-static gint ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo;
-static gint ett_rrc_T_modeSpecificInfo_156;
-static gint ett_rrc_T_fdd_194;
-static gint ett_rrc_T_tdd_138;
-static gint ett_rrc_T_positioningMode_03;
-static gint ett_rrc_T_ueBased_03;
-static gint ett_rrc_T_ueAssisted_03;
-static gint ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_r4;
-static gint ett_rrc_T_modeSpecificInfo_157;
-static gint ett_rrc_T_fdd_195;
-static gint ett_rrc_T_tdd_139;
-static gint ett_rrc_T_positioningMode_04;
-static gint ett_rrc_T_ueBased_04;
-static gint ett_rrc_T_ueAssisted_04;
-static gint ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_UEB;
-static gint ett_rrc_T_modeSpecificInfo_158;
-static gint ett_rrc_T_fdd_196;
-static gint ett_rrc_T_tdd_140;
-static gint ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_UEB_ext;
-static gint ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_r7;
-static gint ett_rrc_T_modeSpecificInfo_159;
-static gint ett_rrc_T_fdd_197;
-static gint ett_rrc_T_tdd_141;
-static gint ett_rrc_T_positioningMode_05;
-static gint ett_rrc_T_ueBased_05;
-static gint ett_rrc_T_ueAssisted_05;
-static gint ett_rrc_UE_Positioning_PositionEstimateInfo;
-static gint ett_rrc_T_referenceTime_02;
-static gint ett_rrc_T_cell_Timing;
-static gint ett_rrc_T_modeSpecificInfo_160;
-static gint ett_rrc_T_fdd_198;
-static gint ett_rrc_T_tdd_142;
-static gint ett_rrc_UE_Positioning_PositionEstimateInfo_v770ext;
-static gint ett_rrc_T_referenceTimeOptions;
-static gint ett_rrc_T_r7_15;
-static gint ett_rrc_T_referenceTime_03;
-static gint ett_rrc_UE_Positioning_PositionEstimateInfo_vd20ext;
-static gint ett_rrc_UE_Positioning_ReportCriteria;
-static gint ett_rrc_UE_Positioning_ReportCriteria_r7;
-static gint ett_rrc_UE_Positioning_ReportingQuantity;
-static gint ett_rrc_UE_Positioning_ReportingQuantity_v390ext;
-static gint ett_rrc_UE_Positioning_ReportingQuantity_r4;
-static gint ett_rrc_UE_Positioning_ReportingQuantity_r7;
-static gint ett_rrc_UE_Positioning_ReportingQuantity_r8;
-static gint ett_rrc_UE_Positioning_ReportingQuantity_r13;
-static gint ett_rrc_UE_Positioning_AddPos_MeasuredResults;
-static gint ett_rrc_UE_Positioning_AddPos_MeasuredResults_element;
-static gint ett_rrc_T_addPos_ID_01;
-static gint ett_rrc_UE_Positioning_BarometricPressureMeasurement;
-static gint ett_rrc_UE_Positioning_WLANMeasurementList;
-static gint ett_rrc_UE_Positioning_WLANMeasurementList_element;
-static gint ett_rrc_UE_Positioning_BTMeasurementList;
-static gint ett_rrc_UE_Positioning_BTMeasurementList_element;
-static gint ett_rrc_UE_Positioning_MBSMeasurementList;
-static gint ett_rrc_UE_Positioning_MBSMeasurementList_element;
-static gint ett_rrc_UTCmodelSet1;
-static gint ett_rrc_UTCmodelSet2;
-static gint ett_rrc_UTCmodelSet3;
-static gint ett_rrc_UTCmodelSet4;
-static gint ett_rrc_UTRAN_GANSSReferenceTime;
-static gint ett_rrc_T_ue_GANSSTimingOfCellFrames;
-static gint ett_rrc_T_mode_02;
-static gint ett_rrc_T_fdd_199;
-static gint ett_rrc_T_tdd_143;
-static gint ett_rrc_UTRAN_FDD_FrequencyList;
-static gint ett_rrc_UTRAN_FDD_Frequency;
-static gint ett_rrc_UTRAN_TDD_FrequencyList;
-static gint ett_rrc_UTRAN_TDD_Frequency;
-static gint ett_rrc_UTRAN_GPSReferenceTime;
-static gint ett_rrc_T_utran_GPSTimingOfCell;
-static gint ett_rrc_T_modeSpecificInfo_161;
-static gint ett_rrc_T_fdd_200;
-static gint ett_rrc_T_tdd_144;
-static gint ett_rrc_UTRAN_GPSReferenceTimeResult;
-static gint ett_rrc_T_ue_GPSTimingOfCell;
-static gint ett_rrc_T_modeSpecificInfo_162;
-static gint ett_rrc_T_fdd_201;
-static gint ett_rrc_T_tdd_145;
-static gint ett_rrc_UTRA_PriorityInfoList;
-static gint ett_rrc_T_utra_ServingCell;
-static gint ett_rrc_UTRA_PriorityInfoList_v920ext;
-static gint ett_rrc_VelocityEstimate;
-static gint ett_rrc_ACDC_Barring;
-static gint ett_rrc_ACDC_Parameters;
-static gint ett_rrc_T_barringRepresentation;
-static gint ett_rrc_ACDC_ParametersForAll;
-static gint ett_rrc_ACDC_ParametersPerPLMN_List;
-static gint ett_rrc_ACDC_ParametersPerPLMN_List_item;
-static gint ett_rrc_BCCH_ModificationInfo;
-static gint ett_rrc_BCCH_ModificationInfo_vc50ext;
-static gint ett_rrc_BSIC;
-static gint ett_rrc_CBS_DRX_Level1Information;
-static gint ett_rrc_CDMA2000_Message;
-static gint ett_rrc_CDMA2000_MessageList;
-static gint ett_rrc_CDMA2000_UMTS_Frequency_List;
-static gint ett_rrc_CellValueTag3;
-static gint ett_rrc_DataTransmFrequency;
-static gint ett_rrc_DataVolumeHistory;
-static gint ett_rrc_DataVolumePerRB;
-static gint ett_rrc_DataVolumePerRB_List;
-static gint ett_rrc_DeferredMeasurementControlReadingSupport;
-static gint ett_rrc_T_modeSpecificInfo_163;
-static gint ett_rrc_T_fdd_202;
-static gint ett_rrc_T_tdd_146;
-static gint ett_rrc_ETWS_Information;
-static gint ett_rrc_EUTRA_Exclude_listedCell;
-static gint ett_rrc_EUTRA_Exclude_listedCellPerFreqList;
-static gint ett_rrc_EUTRA_RadioAccessCapability;
-static gint ett_rrc_EUTRA_TargetFreqInfoList;
-static gint ett_rrc_EUTRA_TargetFreqInfoList_vb50ext;
-static gint ett_rrc_EUTRA_TargetFreqInfo;
-static gint ett_rrc_EUTRA_TargetFreqInfo_vb50ext;
-static gint ett_rrc_ExtGANSS_SchedulingInfo;
-static gint ett_rrc_ExtGANSS_SIBTypeInfoSchedulingInfoList;
-static gint ett_rrc_ExtGANSS_SIBTypeInfoSchedulingInfo;
-static gint ett_rrc_SEQUENCE_SIZE_1_maxSIB_OF_ExtGANSS_SchedulingInfo;
-static gint ett_rrc_ExtSIBTypeInfoSchedulingInfo_List;
-static gint ett_rrc_ExtSIBTypeInfoSchedulingInfo;
-static gint ett_rrc_ExtSIBTypeInfoSchedulingInfo_List2;
-static gint ett_rrc_ExtSIBTypeInfoSchedulingInfo_List3;
-static gint ett_rrc_ExtSIBTypeInfoSchedulingInfo2;
-static gint ett_rrc_ExtSIBTypeInfoSchedulingInfo3;
-static gint ett_rrc_FDD_UMTS_Frequency_List;
-static gint ett_rrc_FrequencyInfoCDMA2000;
-static gint ett_rrc_GERAN_SystemInformation;
-static gint ett_rrc_GSM_BA_Range;
-static gint ett_rrc_GSM_BA_Range_List;
-static gint ett_rrc_GSM_MessageList;
-static gint ett_rrc_GsmSecurityCapability;
-static gint ett_rrc_GSM_TargetCellInfoList;
-static gint ett_rrc_GSM_TargetCellInfo;
-static gint ett_rrc_IdentificationOfReceivedMessage;
-static gint ett_rrc_InterRAT_ChangeFailureCause;
-static gint ett_rrc_GERANIu_MessageList;
-static gint ett_rrc_InterRAT_UE_RadioAccessCapability;
-static gint ett_rrc_T_gsm_17;
-static gint ett_rrc_T_cdma2000_01;
-static gint ett_rrc_InterRAT_UE_RadioAccessCapabilityList;
-static gint ett_rrc_InterRAT_UE_RadioAccessCapability_v590ext;
-static gint ett_rrc_InterRAT_UE_RadioAccessCapability_v690ext;
-static gint ett_rrc_InterRAT_UE_RadioAccessCapability_v860ext;
-static gint ett_rrc_InterRAT_UE_SecurityCapability;
-static gint ett_rrc_T_gsm_18;
-static gint ett_rrc_InterRAT_UE_SecurityCapList;
-static gint ett_rrc_InterRAT_HO_FailureCause;
-static gint ett_rrc_MasterInformationBlock;
-static gint ett_rrc_T_v690NonCriticalExtensions_48;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_15;
-static gint ett_rrc_T_v860NonCriticalExtensions_26;
-static gint ett_rrc_T_vc50NonCriticalExtensions_11;
-static gint ett_rrc_T_nonCriticalExtensions_226;
-static gint ett_rrc_MasterInformationBlock_v690ext;
-static gint ett_rrc_MasterInformationBlock_v6b0ext_IEs;
-static gint ett_rrc_MasterInformationBlock_v860ext_IEs;
-static gint ett_rrc_MasterInformationBlock_vc50ext_IEs;
-static gint ett_rrc_SB3_Information;
-static gint ett_rrc_PredefinedConfigIdentityAndValueTag;
-static gint ett_rrc_ProtocolErrorInformation;
-static gint ett_rrc_T_diagnosticsType_01;
-static gint ett_rrc_T_type1_07;
-static gint ett_rrc_Rplmn_Information;
-static gint ett_rrc_Rplmn_Information_r4;
-static gint ett_rrc_SchedulingInformation;
-static gint ett_rrc_T_scheduling;
-static gint ett_rrc_T_sib_Pos;
-static gint ett_rrc_SchedulingInformation2;
-static gint ett_rrc_T_scheduling_01;
-static gint ett_rrc_T_sib_Pos_01;
-static gint ett_rrc_SchedulingInformationSIB;
-static gint ett_rrc_SchedulingInformationSIB2;
-static gint ett_rrc_SchedulingInformationSIBSb;
-static gint ett_rrc_SchedulingInformationSIBSb2;
-static gint ett_rrc_SIBOccurrenceIdentityAndValueTag;
-static gint ett_rrc_SIB_ReferenceList;
-static gint ett_rrc_SIB_ReferenceList2;
-static gint ett_rrc_SIBSb_ReferenceList;
-static gint ett_rrc_SIBSb_ReferenceList2;
-static gint ett_rrc_SIB_ReferenceListFACH;
-static gint ett_rrc_SIB_TypeAndTag;
-static gint ett_rrc_SIB_TypeAndTag2;
-static gint ett_rrc_SIBSb_TypeAndTag;
-static gint ett_rrc_SIBSb_TypeAndTagExtValueTag;
-static gint ett_rrc_SIB_TypeExt;
-static gint ett_rrc_SIB_TypeExt2;
-static gint ett_rrc_SIB_TypeExt3;
-static gint ett_rrc_SIB_TypeExtGANSS;
-static gint ett_rrc_SibOFF_vc50ext;
-static gint ett_rrc_SibOFF_List;
-static gint ett_rrc_SibOFF_List2;
-static gint ett_rrc_SpecificACDC_BarringInformation;
-static gint ett_rrc_SpecificACDC_BarringInformation_item;
-static gint ett_rrc_SysInfoType1;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_12;
-static gint ett_rrc_T_v860NonCriticalExtentions_02;
-static gint ett_rrc_T_nonCriticalExtensions_227;
-static gint ett_rrc_SysInfoType1_v3a0ext_IEs;
-static gint ett_rrc_SysInfoType1_v860ext_IEs;
-static gint ett_rrc_SysInfoType2;
-static gint ett_rrc_T_nonCriticalExtensions_228;
-static gint ett_rrc_SysInfoType3;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_17;
-static gint ett_rrc_T_v590NonCriticalExtension;
-static gint ett_rrc_T_v5c0NoncriticalExtension;
-static gint ett_rrc_T_v670NonCriticalExtension;
-static gint ett_rrc_T_v770NonCriticalExtension_02;
-static gint ett_rrc_T_v830NonCriticalExtension;
-static gint ett_rrc_T_v860NonCriticalExtension_01;
-static gint ett_rrc_T_v870NonCriticalExtension;
-static gint ett_rrc_T_v900NonCriticalExtension;
-static gint ett_rrc_T_vc50NonCriticalExtension_01;
-static gint ett_rrc_T_nonCriticalExtensions_229;
-static gint ett_rrc_SysInfoType3_v4b0ext_IEs;
-static gint ett_rrc_SysInfoType3_v590ext;
-static gint ett_rrc_SysInfoType3_v5c0ext_IEs;
-static gint ett_rrc_SysInfoType3_v670ext;
-static gint ett_rrc_SysInfoType3_v770ext_IEs;
-static gint ett_rrc_SysInfoType3_v830ext_IEs;
-static gint ett_rrc_SysInfoType3_v860ext_IEs;
-static gint ett_rrc_SysInfoType3_v870ext_IEs;
-static gint ett_rrc_SysInfoType3_v920ext_IEs;
-static gint ett_rrc_SysInfoType3_vc50ext_IEs;
-static gint ett_rrc_SysInfoType4;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_18;
-static gint ett_rrc_T_v590NonCriticalExtension_01;
-static gint ett_rrc_T_v5b0NonCriticalExtension;
-static gint ett_rrc_T_v5c0NonCriticalExtension;
-static gint ett_rrc_T_nonCriticalExtensions_230;
-static gint ett_rrc_SysInfoType4_v4b0ext_IEs;
-static gint ett_rrc_SysInfoType4_v590ext;
-static gint ett_rrc_SysInfoType4_v5b0ext_IEs;
-static gint ett_rrc_SysInfoType4_v5c0ext_IEs;
-static gint ett_rrc_SysInfoType5;
-static gint ett_rrc_T_modeSpecificInfo_164;
-static gint ett_rrc_T_fdd_203;
-static gint ett_rrc_T_tdd_147;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_19;
-static gint ett_rrc_T_v590NonCriticalExtensions_28;
-static gint ett_rrc_T_v650NonCriticalExtensions;
-static gint ett_rrc_T_v680NonCriticalExtensions_02;
-static gint ett_rrc_T_v690NonCriticalExtensions_49;
-static gint ett_rrc_T_v770NonCriticalExtensions_40;
-static gint ett_rrc_T_v860NonCriticalExtensions_27;
-static gint ett_rrc_T_v890NonCriticalExtensions_11;
-static gint ett_rrc_T_v8b0NonCriticalExtensions_01;
-static gint ett_rrc_T_v8d0NonCriticalExtensions;
-static gint ett_rrc_T_va40NonCriticalExtensions_18;
-static gint ett_rrc_T_va80NonCriticalExtensions_02;
-static gint ett_rrc_SysInfoType5_v4b0ext_IEs;
-static gint ett_rrc_T_tdd128SpecificInfo;
-static gint ett_rrc_SysInfoType5_v590ext_IEs;
-static gint ett_rrc_T_hcr_r5_SpecificInfo;
-static gint ett_rrc_SysInfoType5_v650ext_IEs;
-static gint ett_rrc_SysInfoType5_v680ext_IEs;
-static gint ett_rrc_SysInfoType5_v690ext_IEs;
-static gint ett_rrc_T_sccpch_SystemInformation_MBMS;
-static gint ett_rrc_SysInfoType5_v770ext_IEs;
-static gint ett_rrc_T_modeSpecificInfo_165;
-static gint ett_rrc_T_fdd_204;
-static gint ett_rrc_T_tdd768_26;
-static gint ett_rrc_T_tdd128_75;
-static gint ett_rrc_T_sccpch_SystemInformation_MBMS_01;
-static gint ett_rrc_SysInfoType5_v860ext_IEs;
-static gint ett_rrc_T_dummy_15;
-static gint ett_rrc_T_modeSpecificInfo_166;
-static gint ett_rrc_T_fdd_205;
-static gint ett_rrc_T_tdd128_76;
-static gint ett_rrc_T_hs_dsch_CommonSysInfo;
-static gint ett_rrc_SysInfoType5_v890ext_IEs;
-static gint ett_rrc_SysInfoType5_v8b0ext_IEs;
-static gint ett_rrc_SysInfoType5_v8d0ext_IEs;
-static gint ett_rrc_SysInfoType5_va40ext_IEs;
-static gint ett_rrc_SysInfoType5_va80ext_IEs;
-static gint ett_rrc_SysInfoType5_NonCriticalExtensions_vb50_IEs;
-static gint ett_rrc_SysInfoType5_NonCriticalExtensions_ve30_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_231;
-static gint ett_rrc_SysInfoType5_ve30ext_IEs;
-static gint ett_rrc_SysInfoType5_vb50ext_IEs;
-static gint ett_rrc_SysInfoType6;
-static gint ett_rrc_T_modeSpecificInfo_167;
-static gint ett_rrc_T_fdd_206;
-static gint ett_rrc_T_tdd_148;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_20;
-static gint ett_rrc_T_v590NonCriticalExtensions_29;
-static gint ett_rrc_T_v650nonCriticalExtensions;
-static gint ett_rrc_T_v690nonCriticalExtensions;
-static gint ett_rrc_T_v770NonCriticalExtensions_41;
-static gint ett_rrc_T_va40NonCriticalExtensions_19;
-static gint ett_rrc_T_va80NonCriticalExtensions_03;
-static gint ett_rrc_SysInfoType6_NonCriticalExtensions_ve30_IEs;
-static gint ett_rrc_T_nonCriticalExtensions_232;
-static gint ett_rrc_SysInfoType6_ve30ext_IEs;
-static gint ett_rrc_SysInfoType6_v4b0ext_IEs;
-static gint ett_rrc_T_tdd128SpecificInfo_01;
-static gint ett_rrc_SysInfoType6_v590ext_IEs;
-static gint ett_rrc_T_hcr_r5_SpecificInfo_01;
-static gint ett_rrc_SysInfoType6_v650ext_IEs;
-static gint ett_rrc_SysInfoType6_v690ext_IEs;
-static gint ett_rrc_SysInfoType6_v770ext_IEs;
-static gint ett_rrc_T_tdd768SpecificInfo;
-static gint ett_rrc_SysInfoType6_va40ext_IEs;
-static gint ett_rrc_SysInfoType6_va80ext_IEs;
-static gint ett_rrc_SysInfoType7;
-static gint ett_rrc_T_modeSpecificInfo_168;
-static gint ett_rrc_T_fdd_207;
-static gint ett_rrc_T_nonCriticalExtensions_233;
-static gint ett_rrc_SysInfoType8;
-static gint ett_rrc_T_nonCriticalExtensions_234;
-static gint ett_rrc_SysInfoType9;
-static gint ett_rrc_T_nonCriticalExtensions_235;
-static gint ett_rrc_SysInfoType10;
-static gint ett_rrc_T_nonCriticalExtensions_236;
-static gint ett_rrc_SysInfoType11;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_21;
-static gint ett_rrc_T_v590NonCriticalExtension_02;
-static gint ett_rrc_T_v690NonCriticalExtensions_50;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_16;
-static gint ett_rrc_T_v770NonCriticalExtensions_42;
-static gint ett_rrc_T_v7b0NonCriticalExtensions_02;
-static gint ett_rrc_T_v860NonCriticalExtensions_28;
-static gint ett_rrc_T_va80NonCriticalExtensions_04;
-static gint ett_rrc_T_vc50NonCriticalExtensions_12;
-static gint ett_rrc_T_nonCriticalExtensions_237;
-static gint ett_rrc_SysInfoType11_v4b0ext_IEs;
-static gint ett_rrc_SysInfoType11_v590ext_IEs;
-static gint ett_rrc_SysInfoType11_v690ext_IEs;
-static gint ett_rrc_SysInfoType11_v6b0ext_IEs;
-static gint ett_rrc_SysInfoType11_v770ext_IEs;
-static gint ett_rrc_SysInfoType11_v7b0ext_IEs;
-static gint ett_rrc_SysInfoType11_v860ext_IEs;
-static gint ett_rrc_SysInfoType11_va80ext_IEs;
-static gint ett_rrc_SysInfoType11_vc50ext_IEs;
-static gint ett_rrc_SysInfoType11bis;
-static gint ett_rrc_T_v7b0NonCriticalExtensions_03;
-static gint ett_rrc_T_v860NonCriticalExtensions_29;
-static gint ett_rrc_T_va80NonCriticalExtensions_05;
-static gint ett_rrc_T_vc50NonCriticalExtensions_13;
-static gint ett_rrc_T_nonCriticalExtensions_238;
-static gint ett_rrc_SysInfoType11bis_v7b0ext_IEs;
-static gint ett_rrc_SysInfoType11bis_v860ext_IEs;
-static gint ett_rrc_SysInfoType11bis_va80ext_IEs;
-static gint ett_rrc_SysInfoType11bis_vc50ext_IEs;
-static gint ett_rrc_SysInfoType11ter;
-static gint ett_rrc_T_nonCriticalExtensions_239;
-static gint ett_rrc_SysInfoType12;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_22;
-static gint ett_rrc_T_v590NonCriticalExtension_03;
-static gint ett_rrc_T_v690NonCriticalExtensions_51;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_17;
-static gint ett_rrc_T_v7b0NonCriticalExtensions_04;
-static gint ett_rrc_T_va80NonCriticalExtensions_06;
-static gint ett_rrc_T_vc50NonCriticalExtensions_14;
-static gint ett_rrc_T_nonCriticalExtensions_240;
-static gint ett_rrc_SysInfoType12_v4b0ext_IEs;
-static gint ett_rrc_SysInfoType12_v590ext_IEs;
-static gint ett_rrc_SysInfoType12_v690ext_IEs;
-static gint ett_rrc_SysInfoType12_v6b0ext_IEs;
-static gint ett_rrc_SysInfoType12_v7b0ext_IEs;
-static gint ett_rrc_SysInfoType12_va80ext_IEs;
-static gint ett_rrc_SysInfoType12_vc50ext_IEs;
-static gint ett_rrc_SysInfoType13;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_13;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_23;
-static gint ett_rrc_T_v770NonCriticalExtensions_43;
-static gint ett_rrc_T_nonCriticalExtensions_241;
-static gint ett_rrc_SysInfoType13_v3a0ext_IEs;
-static gint ett_rrc_SysInfoType13_v4b0ext_IEs;
-static gint ett_rrc_SysInfoType13_v770ext_IEs;
-static gint ett_rrc_SysInfoType13_1;
-static gint ett_rrc_T_nonCriticalExtensions_242;
-static gint ett_rrc_SysInfoType13_2;
-static gint ett_rrc_T_nonCriticalExtensions_243;
-static gint ett_rrc_SysInfoType13_3;
-static gint ett_rrc_T_nonCriticalExtensions_244;
-static gint ett_rrc_SysInfoType13_4;
-static gint ett_rrc_T_nonCriticalExtensions_245;
-static gint ett_rrc_SysInfoType14;
-static gint ett_rrc_T_nonCriticalExtensions_246;
-static gint ett_rrc_SysInfoType15;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_24;
-static gint ett_rrc_T_v770NonCriticalExtensions_44;
-static gint ett_rrc_T_va40NonCriticalExtensions_20;
-static gint ett_rrc_T_nonCriticalExtensions_247;
-static gint ett_rrc_SysInfoType15_v4b0ext_IEs;
-static gint ett_rrc_SysInfoType15_v770ext_IEs;
-static gint ett_rrc_SysInfoType15_va40ext_IEs;
-static gint ett_rrc_SysInfoType15bis;
-static gint ett_rrc_T_v860NonCriticalExtensions_30;
-static gint ett_rrc_T_va40NonCriticalExtensions_21;
-static gint ett_rrc_T_nonCriticalExtensions_248;
-static gint ett_rrc_SysInfoType15bis_v860ext_IEs;
-static gint ett_rrc_SysInfoType15bis_va40ext_IEs;
-static gint ett_rrc_SysInfoType15_1;
-static gint ett_rrc_T_v920NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_249;
-static gint ett_rrc_SysInfoType15_1_v920ext_IEs;
-static gint ett_rrc_SysInfoType15_1bis;
-static gint ett_rrc_T_v920NonCriticalExtensions_05;
-static gint ett_rrc_T_nonCriticalExtensions_250;
-static gint ett_rrc_SysInfoType15_1bis_v920ext_IEs;
-static gint ett_rrc_SysInfoType15_1ter;
-static gint ett_rrc_T_nonCriticalExtensions_251;
-static gint ett_rrc_SysInfoType15_2;
-static gint ett_rrc_T_nonCriticalExtensions_252;
-static gint ett_rrc_SysInfoType15_2bis;
-static gint ett_rrc_T_nonCriticalExtensions_253;
-static gint ett_rrc_SysInfoType15_2ter;
-static gint ett_rrc_T_vc50NonCriticalExtensions_15;
-static gint ett_rrc_T_nonCriticalExtensions_254;
-static gint ett_rrc_SysInfoType15_2ter_vc50ext_IEs;
-static gint ett_rrc_SysInfoType15_3;
-static gint ett_rrc_T_va40NonCriticalExtensions_22;
-static gint ett_rrc_T_nonCriticalExtensions_255;
-static gint ett_rrc_SysInfoType15_3_va40ext_IEs;
-static gint ett_rrc_SysInfoType15_3bis;
-static gint ett_rrc_T_v860NonCriticalExtensions_31;
-static gint ett_rrc_T_va40NonCriticalExtensions_23;
-static gint ett_rrc_T_vc50NonCriticalExtensions_16;
-static gint ett_rrc_T_nonCriticalExtensions_256;
-static gint ett_rrc_SysInfoType15_3bis_v860ext_IEs;
-static gint ett_rrc_SysInfoType15_3bis_va40ext_IEs;
-static gint ett_rrc_SysInfoType15_3bis_vc50ext_IEs;
-static gint ett_rrc_SysInfoType15_4;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_14;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_25;
-static gint ett_rrc_T_nonCriticalExtensions_257;
-static gint ett_rrc_SysInfoType15_4_v3a0ext;
-static gint ett_rrc_SysInfoType15_4_v4b0ext;
-static gint ett_rrc_SysInfoType15_5;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_15;
-static gint ett_rrc_T_v770NonCriticalExtensions_45;
-static gint ett_rrc_T_nonCriticalExtensions_258;
-static gint ett_rrc_SysInfoType15_5_v3a0ext;
-static gint ett_rrc_SysInfoType15_5_v770ext_IEs;
-static gint ett_rrc_SysInfoType15_6;
-static gint ett_rrc_T_va40NonCriticalExtensions_24;
-static gint ett_rrc_T_vc50NonCriticalExtensions_17;
-static gint ett_rrc_T_nonCriticalExtensions_259;
-static gint ett_rrc_SysInfoType15_6_va40ext_IEs;
-static gint ett_rrc_SysInfoType15_6_vc50ext_IEs;
-static gint ett_rrc_SysInfoType15_7;
-static gint ett_rrc_T_nonCriticalExtensions_260;
-static gint ett_rrc_SysInfoType15_8;
-static gint ett_rrc_T_nonCriticalExtensions_261;
-static gint ett_rrc_SysInfoType16;
-static gint ett_rrc_T_v770NonCriticalExtensions_46;
-static gint ett_rrc_T_v920NonCriticalExtensions_06;
-static gint ett_rrc_T_nonCriticalExtensions_262;
-static gint ett_rrc_SysInfoType16_v770ext_IEs;
-static gint ett_rrc_SysInfoType16_v920ext_IEs;
-static gint ett_rrc_SysInfoType17;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_26;
-static gint ett_rrc_T_v590NonCriticalExtensions_30;
-static gint ett_rrc_T_v770NonCriticalExtensions_47;
-static gint ett_rrc_T_nonCriticalExtensions_263;
-static gint ett_rrc_SysInfoType17_v4b0ext_IEs;
-static gint ett_rrc_T_tdd128SpecificInfo_02;
-static gint ett_rrc_SysInfoType17_v590ext_IEs;
-static gint ett_rrc_T_hcr_r5_SpecificInfo_02;
-static gint ett_rrc_SysInfoType17_v770ext_IEs;
-static gint ett_rrc_T_tdd768SpecificInfo_01;
-static gint ett_rrc_SysInfoType18;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_18;
-static gint ett_rrc_T_v860NonCriticalExtensions_32;
-static gint ett_rrc_T_vc50NonCriticalExtensions_18;
-static gint ett_rrc_T_nonCriticalExtensions_264;
-static gint ett_rrc_SysInfoType18_v6b0ext;
-static gint ett_rrc_SysInfoType18_v860ext;
-static gint ett_rrc_SysInfoType18_vc50ext;
-static gint ett_rrc_SysInfoType19;
-static gint ett_rrc_T_v920NonCriticalExtensions_07;
-static gint ett_rrc_T_va80NonCriticalExtensions_07;
-static gint ett_rrc_T_vb30NonCriticalExtensions;
-static gint ett_rrc_T_vb50NonCriticalExtensions_24;
-static gint ett_rrc_T_vb80NonCriticalExtensions_01;
-static gint ett_rrc_T_vc50NonCriticalExtensions_19;
-static gint ett_rrc_T_vd20NonCriticalExtensions_04;
-static gint ett_rrc_T_nonCriticalExtensions_265;
-static gint ett_rrc_SysInfoType19_v920ext;
-static gint ett_rrc_SysInfoType19_va80ext;
-static gint ett_rrc_SysInfoType19_vb30ext;
-static gint ett_rrc_SysInfoType19_vb50ext;
-static gint ett_rrc_SysInfoType19_vb80ext;
-static gint ett_rrc_SysInfoType19_vc50ext;
-static gint ett_rrc_SysInfoType19_vd20ext;
-static gint ett_rrc_SysInfoType20;
-static gint ett_rrc_T_nonCriticalExtensions_266;
-static gint ett_rrc_SysInfoType21;
-static gint ett_rrc_T_nonCriticalExtensions_267;
-static gint ett_rrc_SysInfoType22;
-static gint ett_rrc_T_vc50NonCriticalExtensions_20;
-static gint ett_rrc_T_nonCriticalExtensions_268;
-static gint ett_rrc_SysInfoType22_vc50ext_IEs;
-static gint ett_rrc_SysInfoType23;
-static gint ett_rrc_T_wlanRepresentation;
-static gint ett_rrc_T_nonCriticalExtensions_269;
-static gint ett_rrc_SysInfoType24;
-static gint ett_rrc_T_nonCriticalExtensions_270;
-static gint ett_rrc_SysInfoType25;
-static gint ett_rrc_T_nonCriticalExtensions_271;
-static gint ett_rrc_SysInfoTypeSB1;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_19;
-static gint ett_rrc_T_v860NonCriticalExtensions_33;
-static gint ett_rrc_T_vc50NonCriticalExtensions_21;
-static gint ett_rrc_T_nonCriticalExtensions_272;
-static gint ett_rrc_SysInfoTypeSB1_v6b0ext;
-static gint ett_rrc_SysInfoTypeSB1_v860ext;
-static gint ett_rrc_SysInfoTypeSB1_vc50ext;
-static gint ett_rrc_SysInfoTypeSB2;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_20;
-static gint ett_rrc_T_v860NonCriticalExtensions_34;
-static gint ett_rrc_T_vc50NonCriticalExtensions_22;
-static gint ett_rrc_T_nonCriticalExtensions_273;
-static gint ett_rrc_SysInfoTypeSB2_v6b0ext;
-static gint ett_rrc_SysInfoTypeSB2_v860ext;
-static gint ett_rrc_SysInfoTypeSB2_vc50ext;
-static gint ett_rrc_SysInfoTypeSB3;
-static gint ett_rrc_T_nonCriticalExtensions_274;
-static gint ett_rrc_TDD_UMTS_Frequency_List;
-static gint ett_rrc_TxFailParams;
-static gint ett_rrc_T_modeSpecificInfo_169;
-static gint ett_rrc_T_fdd_208;
-static gint ett_rrc_UE_HistoryInformation;
-static gint ett_rrc_ValueTagInfo;
-static gint ett_rrc_ValueTagInfoExtValueTag;
-static gint ett_rrc_MBMS_CommonRBInformation_r6;
-static gint ett_rrc_MBMS_CommonRBInformationList_r6;
-static gint ett_rrc_MBMS_ConnectedModeCountingScope;
-static gint ett_rrc_MBMS_CurrentCell_SCCPCH_r6;
-static gint ett_rrc_MBMS_CurrentCell_SCCPCHList_r6;
-static gint ett_rrc_MBMS_FACHCarryingMTCH_List;
-static gint ett_rrc_MBMS_JoinedInformation_r6;
-static gint ett_rrc_MBMS_L1CombiningSchedule_32;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_item;
-static gint ett_rrc_MBMS_L1CombiningSchedule_64;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_01;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_item_01;
-static gint ett_rrc_MBMS_L1CombiningSchedule_128;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_02;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_item_02;
-static gint ett_rrc_MBMS_L1CombiningSchedule_256;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_03;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_item_03;
-static gint ett_rrc_MBMS_L1CombiningSchedule_512;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_04;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_item_04;
-static gint ett_rrc_MBMS_L1CombiningSchedule_1024;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_05;
-static gint ett_rrc_T_mtch_L1CombiningPeriodList_item_05;
-static gint ett_rrc_MBMS_L1CombiningSchedule;
-static gint ett_rrc_MBMS_L23Configuration;
-static gint ett_rrc_T_sameAsCurrent;
-static gint ett_rrc_T_different;
-static gint ett_rrc_MBMS_MCCH_ConfigurationInfo_r6;
-static gint ett_rrc_MBMS_MICHConfigurationInfo_r6;
-static gint ett_rrc_T_mode_03;
-static gint ett_rrc_T_fdd_209;
-static gint ett_rrc_T_tdd384_47;
-static gint ett_rrc_T_tdd128_77;
-static gint ett_rrc_SEQUENCE_SIZE_1_2_OF_DL_TS_ChannelisationCode;
-static gint ett_rrc_MBMS_MICHConfigurationInfo_v770ext;
-static gint ett_rrc_T_mode_04;
-static gint ett_rrc_T_tdd384_48;
-static gint ett_rrc_T_tdd768_27;
-static gint ett_rrc_T_tdd128_78;
-static gint ett_rrc_MBMS_MICHConfigurationInfo_v890ext;
-static gint ett_rrc_T_mode_05;
-static gint ett_rrc_T_imb384;
-static gint ett_rrc_MBMS_ModifedService_r6;
-static gint ett_rrc_T_mbms_PreferredFrequency;
-static gint ett_rrc_MBMS_ModifedServiceList_r6;
-static gint ett_rrc_MBMS_ModifiedService_v770ext;
-static gint ett_rrc_MBMS_ModifiedService_LCR_v7c0ext;
-static gint ett_rrc_MBMS_ModifiedServiceList_v770ext;
-static gint ett_rrc_MBMS_ModifiedServiceList_LCR_v7c0ext;
-static gint ett_rrc_MBMS_MSCH_ConfigurationInfo_r6;
-static gint ett_rrc_MBMS_MSCHSchedulingInfo;
-static gint ett_rrc_MBMS_NeighbouringCellSCCPCH_r6;
-static gint ett_rrc_T_layer1Combining;
-static gint ett_rrc_T_fdd_210;
-static gint ett_rrc_MBMS_NeighbouringCellSCCPCH_v770ext;
-static gint ett_rrc_T_layer1Combining_01;
-static gint ett_rrc_T_fdd_211;
-static gint ett_rrc_MBMS_NeighbouringCellSCCPCHList_r6;
-static gint ett_rrc_MBMS_NeighbouringCellSCCPCHList_v770ext;
-static gint ett_rrc_MBMS_NetworkStandardTimeInformation_LCR_v890ext;
-static gint ett_rrc_MBMS_PhyChInformation_IMB384;
-static gint ett_rrc_MBMS_PhyChInformationList_IMB384;
-static gint ett_rrc_MBMS_PhyChInformation_r6;
-static gint ett_rrc_MBMS_PhyChInformation_r7;
-static gint ett_rrc_MBMS_PhyChInformationList_r6;
-static gint ett_rrc_MBMS_PhyChInformationList_r7;
-static gint ett_rrc_MBMS_PreferredFrequencyInfo_r6;
-static gint ett_rrc_T_layerConvergenceInformation;
-static gint ett_rrc_MBMS_PreferredFrequencyList_r6;
-static gint ett_rrc_MBMS_PTM_RBInformation_C;
-static gint ett_rrc_MBMS_PTM_RBInformation_CList;
-static gint ett_rrc_MBMS_PTM_RBInformation_N;
-static gint ett_rrc_MBMS_PTM_RBInformation_NList;
-static gint ett_rrc_MBMS_SelectedServiceInfo;
-static gint ett_rrc_T_status;
-static gint ett_rrc_MBMS_SelectedServicesListFull;
-static gint ett_rrc_MBMS_SelectedServicesListShort;
-static gint ett_rrc_MBMS_SelectedServicesShort;
-static gint ett_rrc_MBMS_ServiceAccessInfo_r6;
-static gint ett_rrc_MBMS_ServiceAccessInfoList_r6;
-static gint ett_rrc_MBMS_ServiceIdentity_r6;
-static gint ett_rrc_T_plmn_Identity;
-static gint ett_rrc_T_other_01;
-static gint ett_rrc_MBMS_ServiceSchedulingInfo_r6;
-static gint ett_rrc_MBMS_ServiceSchedulingInfoList_r6;
-static gint ett_rrc_MBMS_ServiceTransmInfo;
-static gint ett_rrc_MBMS_ServiceTransmInfoList;
-static gint ett_rrc_MBMS_SIBType5_SCCPCH_r6;
-static gint ett_rrc_MBMS_SIBType5_SCCPCHList_r6;
-static gint ett_rrc_MBMS_TimersAndCounters_r6;
-static gint ett_rrc_MBMS_TransmissionIdentity;
-static gint ett_rrc_MBMS_TranspChInfoForCCTrCh_r6;
-static gint ett_rrc_MBMS_TranspChInfoForEachCCTrCh_r6;
-static gint ett_rrc_MBMS_TranspChInfoForEachTrCh_r6;
-static gint ett_rrc_MBMS_TranspChInfoForTrCh_r6;
-static gint ett_rrc_MBMS_TrCHInformation_Curr;
-static gint ett_rrc_MBMS_TrCHInformation_CurrList;
-static gint ett_rrc_MBMS_TrCHInformation_Neighb;
-static gint ett_rrc_MBMS_TrCHInformation_NeighbList;
-static gint ett_rrc_MBMS_TrCHInformation_SIB5;
-static gint ett_rrc_MBMS_TrCHInformation_SIB5List;
-static gint ett_rrc_MBMS_UnmodifiedService_r6;
-static gint ett_rrc_MBMS_UnmodifiedServiceList_r6;
-static gint ett_rrc_MBMS_UnmodifiedService_v770ext;
-static gint ett_rrc_MBMS_UnmodifiedServiceList_v770ext;
-static gint ett_rrc_MBSFNFrequency;
-static gint ett_rrc_MBSFNFrequency_v860ext;
-static gint ett_rrc_MBSFNFrequencyList;
-static gint ett_rrc_MBSFNFrequencyList_v860ext;
-static gint ett_rrc_MBSFNservicesNotNotified_r7;
-static gint ett_rrc_MBSFNInterFrequencyNeighbour_r7;
-static gint ett_rrc_T_mbsfnServicesNotification;
-static gint ett_rrc_MBSFNInterFrequencyNeighbour_v860ext;
-static gint ett_rrc_MBSFN_InterFrequencyNeighbourList_r7;
-static gint ett_rrc_MBSFN_InterFrequencyNeighbourList_v860ext;
-static gint ett_rrc_MBSFN_TDDInformation;
-static gint ett_rrc_MBSFN_TDDInformation_LCR;
-static gint ett_rrc_MBSFN_TDDTimeSlotInfo;
-static gint ett_rrc_MBSFN_TDDTimeSlotInfo_LCR;
-static gint ett_rrc_MBSFN_TDM_Info;
-static gint ett_rrc_MBSFN_TDM_Info_List;
-static gint ett_rrc_WLANOffloadConfig;
-static gint ett_rrc_WLANThreshServingRSCP;
-static gint ett_rrc_WLANThreshServingECNO;
-static gint ett_rrc_WLANThreshChannelUtilization;
-static gint ett_rrc_WLANThreshBackhaulBandwidth;
-static gint ett_rrc_WLANThreshBeaconRSSI;
-static gint ett_rrc_WLANIdentifierList;
-static gint ett_rrc_WLANIdentifier;
-static gint ett_rrc_WLANOffloadInformationPerPLMN_List;
-static gint ett_rrc_WLANOffloadInformation;
-static gint ett_rrc_ToTargetRNC_Container;
-static gint ett_rrc_TargetRNC_ToSourceRNC_Container;
-static gint ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_r3;
-static gint ett_rrc_T_r3_31;
-static gint ett_rrc_T_v390NonCriticalExtensions_01;
-static gint ett_rrc_T_v690NonCriticalExtensions_52;
-static gint ett_rrc_T_v860NonCriticalExtensions_35;
-static gint ett_rrc_T_v920NonCriticalExtensions_08;
-static gint ett_rrc_T_nonCriticalExtensions_275;
-static gint ett_rrc_T_criticalExtensions_166;
-static gint ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_r3_IEs;
-static gint ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v390ext_IEs;
-static gint ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v690ext_IEs;
-static gint ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v860ext_IEs;
-static gint ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v920ext_IEs;
-static gint ett_rrc_RFC3095_ContextInfo_r5;
-static gint ett_rrc_T_r5_14;
-static gint ett_rrc_T_nonCriticalExtensions_276;
-static gint ett_rrc_T_criticalExtensions_167;
-static gint ett_rrc_RFC3095_ContextInfoList_r5;
-static gint ett_rrc_SRNC_RelocationInfo_r3;
-static gint ett_rrc_T_r3_32;
-static gint ett_rrc_T_v380NonCriticalExtensions_02;
-static gint ett_rrc_T_v390NonCriticalExtensions_02;
-static gint ett_rrc_T_v3a0NonCriticalExtensions_16;
-static gint ett_rrc_T_v3b0NonCriticalExtensions;
-static gint ett_rrc_T_v3c0NonCriticalExtensions;
-static gint ett_rrc_T_laterNonCriticalExtensions_67;
-static gint ett_rrc_T_v3g0NonCriticalExtensions_02;
-static gint ett_rrc_T_v4b0NonCriticalExtensions_27;
-static gint ett_rrc_T_v590NonCriticalExtensions_31;
-static gint ett_rrc_T_v5a0NonCriticalExtensions;
-static gint ett_rrc_T_v5b0NonCriticalExtensions_03;
-static gint ett_rrc_T_v5c0NonCriticalExtensions_02;
-static gint ett_rrc_T_v690NonCriticalExtensions_53;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_21;
-static gint ett_rrc_T_v770NonCriticalExtensions_48;
-static gint ett_rrc_T_v7e0NonCriticalExtensions_04;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_17;
-static gint ett_rrc_T_nonCriticalExtensions_277;
-static gint ett_rrc_T_later_than_r3_28;
-static gint ett_rrc_T_r4_14;
-static gint ett_rrc_T_v4d0NonCriticalExtensions_14;
-static gint ett_rrc_T_v590NonCriticalExtensions_32;
-static gint ett_rrc_T_v5a0NonCriticalExtensions_01;
-static gint ett_rrc_T_v5b0NonCriticalExtensions_04;
-static gint ett_rrc_T_v5c0NonCriticalExtensions_03;
-static gint ett_rrc_T_v690NonCriticalExtensions_54;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_22;
-static gint ett_rrc_T_v770NonCriticalExtensions_49;
-static gint ett_rrc_T_v7e0NonCriticalExtensions_05;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_18;
-static gint ett_rrc_T_nonCriticalExtensions_278;
-static gint ett_rrc_T_criticalExtensions_168;
-static gint ett_rrc_T_r5_15;
-static gint ett_rrc_T_v5a0NonCriticalExtensions_02;
-static gint ett_rrc_T_v5b0NonCriticalExtensions_05;
-static gint ett_rrc_T_v5c0NonCriticalExtensions_04;
-static gint ett_rrc_T_v690NonCriticalExtensions_55;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_23;
-static gint ett_rrc_T_v770NonCriticalExtensions_50;
-static gint ett_rrc_T_v7e0NonCriticalExtensions_06;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_19;
-static gint ett_rrc_T_nonCriticalExtensions_279;
-static gint ett_rrc_T_criticalExtensions_169;
-static gint ett_rrc_T_r6_12;
-static gint ett_rrc_T_v6b0NonCriticalExtensions_24;
-static gint ett_rrc_T_v770NonCriticalExtensions_51;
-static gint ett_rrc_T_v820NonCriticalExtensions_03;
-static gint ett_rrc_T_v860NonCriticalExtensions_36;
-static gint ett_rrc_T_nonCriticalExtensions_280;
-static gint ett_rrc_T_criticalExtensions_170;
-static gint ett_rrc_T_r7_16;
-static gint ett_rrc_T_v820NonCriticalExtensions_04;
-static gint ett_rrc_T_v860NonCriticalExtensions_37;
-static gint ett_rrc_T_nonCriticalExtensions_281;
-static gint ett_rrc_T_criticalExtensions_171;
-static gint ett_rrc_T_r8_12;
-static gint ett_rrc_T_v7e0NonCriticalExtensions_07;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_20;
-static gint ett_rrc_T_v8d0NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_282;
-static gint ett_rrc_T_criticalExtensions_172;
-static gint ett_rrc_T_r9_11;
-static gint ett_rrc_T_v8d0NonCriticalExtensions_02;
-static gint ett_rrc_T_v970NonCriticalExtensions_04;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_13;
-static gint ett_rrc_T_nonCriticalExtensions_283;
-static gint ett_rrc_T_criticalExtensions_173;
-static gint ett_rrc_T_r10_13;
-static gint ett_rrc_T_v9c0NonCriticalExtensions_14;
-static gint ett_rrc_T_vab0NonCriticalExtensions_01;
-static gint ett_rrc_T_nonCriticalExtensions_284;
-static gint ett_rrc_T_criticalExtensions_174;
-static gint ett_rrc_T_r11_15;
-static gint ett_rrc_T_nonCriticalExtensions_285;
-static gint ett_rrc_T_criticalExtensions_175;
-static gint ett_rrc_T_r12_12;
-static gint ett_rrc_T_nonCriticalExtensions_286;
-static gint ett_rrc_T_criticalExtensions_176;
-static gint ett_rrc_T_r13_10;
-static gint ett_rrc_T_nonCriticalExtensions_287;
-static gint ett_rrc_SRNC_RelocationInfo_r3_IEs;
-static gint ett_rrc_T_modeSpecificInfo_170;
-static gint ett_rrc_T_fdd_212;
-static gint ett_rrc_SRNC_RelocationInfo_v380ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v390ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v3a0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v3b0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v3c0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v3d0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v3g0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v3h0ext_IEs;
-static gint ett_rrc_T_nonCriticalExtension;
-static gint ett_rrc_SRNC_RelocationInfo_v4d0ext_IEs;
-static gint ett_rrc_TPC_CombinationInfoList;
-static gint ett_rrc_TPC_CombinationInfoList_r9;
-static gint ett_rrc_STARTList2;
-static gint ett_rrc_SRNC_RelocationInfo_v4b0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v590ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v5a0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v5b0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v5c0ext_IEs;
-static gint ett_rrc_CipheringInfoPerRB_List_v3a0ext;
-static gint ett_rrc_CipheringStatusList;
-static gint ett_rrc_CipheringStatusCNdomain;
-static gint ett_rrc_CodeChangeStatusList;
-static gint ett_rrc_CodeChangeStatus;
-static gint ett_rrc_StoredCompressedModeInfo;
-static gint ett_rrc_StoredCompressedModeInfo_r8;
-static gint ett_rrc_StoredTGP_SequenceList;
-static gint ett_rrc_StoredTGP_SequenceList_r8;
-static gint ett_rrc_StoredTGP_Sequence;
-static gint ett_rrc_T_current_tgps_Status;
-static gint ett_rrc_T_active;
-static gint ett_rrc_StoredTGP_Sequence_r8;
-static gint ett_rrc_T_current_tgps_Status_01;
-static gint ett_rrc_T_active_01;
-static gint ett_rrc_SRNC_RelocationInfo_r4_IEs;
-static gint ett_rrc_T_dummy_17;
-static gint ett_rrc_T_fdd_213;
-static gint ett_rrc_SRNC_RelocationInfo_r5_IEs;
-static gint ett_rrc_T_dummy_18;
-static gint ett_rrc_T_fdd_214;
-static gint ett_rrc_SRNC_RelocationInfo_v690ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r6_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r6_add_ext_IEs;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_21;
-static gint ett_rrc_T_nonCriticalExtensions_288;
-static gint ett_rrc_SRNC_RelocationInfo_v6b0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r7_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r7_add_ext_IEs;
-static gint ett_rrc_T_v7f0NonCriticalExtensions_22;
-static gint ett_rrc_T_nonCriticalExtensions_289;
-static gint ett_rrc_SRNC_RelocationInfo_v770ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v7e0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v7f0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r8_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v820ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v860ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v8d0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r9_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v970ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_v9c0ext_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r10_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r11_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r12_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r13_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_LaterCriticalExtensions;
-static gint ett_rrc_T_criticalExtensions_177;
-static gint ett_rrc_T_r14_04;
-static gint ett_rrc_T_nonCriticalExtensions_290;
-static gint ett_rrc_SRNC_RelocationInfo_CriticalExtensions_r15_IEs;
-static gint ett_rrc_T_criticalExtensions_178;
-static gint ett_rrc_T_r15_04;
-static gint ett_rrc_T_nonCriticalExtensions_291;
-static gint ett_rrc_T_criticalExtensions_179;
-static gint ett_rrc_SRNC_RelocationInfo_r14_IEs;
-static gint ett_rrc_SRNC_RelocationInfo_r15_IEs;
-static gint ett_rrc_CalculationTimeForCiphering;
-static gint ett_rrc_CipheringInfoPerRB;
-static gint ett_rrc_CipheringInfoPerRB_r4;
-static gint ett_rrc_CipheringInfoPerRB_List;
-static gint ett_rrc_CipheringInfoPerRB_List_r4;
-static gint ett_rrc_CipheringStatusList_r4;
-static gint ett_rrc_CipheringStatusCNdomain_r4;
-static gint ett_rrc_CN_DomainInformation_v390ext;
-static gint ett_rrc_CN_DomainInformationList_v390ext;
-static gint ett_rrc_CompressedModeMeasCapability_r4;
-static gint ett_rrc_COUNT_C_List;
-static gint ett_rrc_COUNT_CSingle;
-static gint ett_rrc_DL_PhysChCapabilityFDD_r4;
-static gint ett_rrc_DL_PhysChCapabilityFDD_r5;
-static gint ett_rrc_T_fdd_hspdsch_01;
-static gint ett_rrc_T_supported_07;
-static gint ett_rrc_DL_PhysChCapabilityTDD_r5;
-static gint ett_rrc_T_tdd384_hspdsch_01;
-static gint ett_rrc_DL_PhysChCapabilityTDD_LCR_r5;
-static gint ett_rrc_T_tdd128_hspdsch_01;
-static gint ett_rrc_DL_RFC3095_Context;
-static gint ett_rrc_E_RGCH_Combination_Info;
-static gint ett_rrc_E_RGCH_Combination_Info_r9;
-static gint ett_rrc_E_RGCH_CombinationInfoList;
-static gint ett_rrc_E_RGCH_CombinationInfoList_r9;
-static gint ett_rrc_InterRAT_UE_RadioAccessCapabilityList_r5;
-static gint ett_rrc_IntraFreqReportingCriteria_r6_ext;
-static gint ett_rrc_MeasurementCapability_r4;
-static gint ett_rrc_MeasurementCommandWithType;
-static gint ett_rrc_MeasurementCommandWithType_r4;
-static gint ett_rrc_MeasurementCommandWithType_r6;
-static gint ett_rrc_MeasurementCommandWithType_r7;
-static gint ett_rrc_MeasurementCommandWithType_r8;
-static gint ett_rrc_MeasurementCommandWithType_r9;
-static gint ett_rrc_MeasurementCommandWithType_r10;
-static gint ett_rrc_MeasurementCommandWithType_r11;
-static gint ett_rrc_MeasurementCommandWithType_r12;
-static gint ett_rrc_MeasurementCommandWithType_r13;
-static gint ett_rrc_MeasurementCommandWithType_r14;
-static gint ett_rrc_MeasurementCommandWithType_r15;
-static gint ett_rrc_OngoingMeasRep;
-static gint ett_rrc_OngoingMeasRep_r4;
-static gint ett_rrc_OngoingMeasRep_r5;
-static gint ett_rrc_T_measurementCommand_v590ext_01;
-static gint ett_rrc_OngoingMeasRep_r6;
-static gint ett_rrc_OngoingMeasRep_r7;
-static gint ett_rrc_OngoingMeasRep_r8;
-static gint ett_rrc_OngoingMeasRep_r9;
-static gint ett_rrc_OngoingMeasRep_v970ext_IEs;
-static gint ett_rrc_OngoingMeasRep_r10;
-static gint ett_rrc_OngoingMeasRep_r11;
-static gint ett_rrc_OngoingMeasRep_r12;
-static gint ett_rrc_OngoingMeasRep_r13;
-static gint ett_rrc_OngoingMeasRep_r14;
-static gint ett_rrc_OngoingMeasRep_r15;
-static gint ett_rrc_OngoingMeasRepList;
-static gint ett_rrc_OngoingMeasRepList_r4;
-static gint ett_rrc_OngoingMeasRepList_r5;
-static gint ett_rrc_OngoingMeasRepList_r6;
-static gint ett_rrc_OngoingMeasRepList_r7;
-static gint ett_rrc_OngoingMeasRepList_r8;
-static gint ett_rrc_OngoingMeasRepList_r9;
-static gint ett_rrc_OngoingMeasRepList_v970ext_IE;
-static gint ett_rrc_OngoingMeasRepList_r10;
-static gint ett_rrc_OngoingMeasRepList_r11;
-static gint ett_rrc_OngoingMeasRepList_r12;
-static gint ett_rrc_OngoingMeasRepList_r13;
-static gint ett_rrc_OngoingMeasRepList_r14;
-static gint ett_rrc_OngoingMeasRepList_r15;
-static gint ett_rrc_PDCP_Capability_r4;
-static gint ett_rrc_T_supportForRfc2507_01;
-static gint ett_rrc_T_supportForRfc3095_01;
-static gint ett_rrc_T_supported_08;
-static gint ett_rrc_PDCP_Capability_r5;
-static gint ett_rrc_T_supportForRfc2507_02;
-static gint ett_rrc_T_supportForRfc3095_02;
-static gint ett_rrc_T_supported_09;
-static gint ett_rrc_PDCP_Capability_r6;
-static gint ett_rrc_T_supportForRfc2507_03;
-static gint ett_rrc_T_supportForRfc3095_03;
-static gint ett_rrc_T_supported_10;
-static gint ett_rrc_PhysicalChannelCapability_r4;
-static gint ett_rrc_T_fddPhysChCapability_11;
-static gint ett_rrc_T_tdd384_PhysChCapability;
-static gint ett_rrc_T_tdd128_PhysChCapability_01;
-static gint ett_rrc_PhysicalChannelCapability_r5;
-static gint ett_rrc_T_fddPhysChCapability_12;
-static gint ett_rrc_T_tdd384_PhysChCapability_01;
-static gint ett_rrc_T_tdd128_PhysChCapability_02;
-static gint ett_rrc_RF_Capability_r4;
-static gint ett_rrc_T_fddRF_Capability_04;
-static gint ett_rrc_T_tdd384_RF_Capability_01;
-static gint ett_rrc_T_tdd128_RF_Capability_01;
-static gint ett_rrc_RFC3095_ContextInfo;
-static gint ett_rrc_RFC3095_Context_List;
-static gint ett_rrc_RFC3095_Context_List_item;
-static gint ett_rrc_RLC_Capability_r5;
-static gint ett_rrc_SRB_SpecificIntegrityProtInfo;
-static gint ett_rrc_SRB_SpecificIntegrityProtInfoList;
-static gint ett_rrc_TPC_Combination_Info;
-static gint ett_rrc_TPC_Combination_Info_r9;
-static gint ett_rrc_UE_MultiModeRAT_Capability_r5;
-static gint ett_rrc_UE_Positioning_Capability_r4;
-static gint ett_rrc_UE_Positioning_LastKnownPos;
-static gint ett_rrc_UE_RadioAccessCapability_r4;
-static gint ett_rrc_UE_RadioAccessCapability_r5;
-static gint ett_rrc_UE_RadioAccessCapability_r6;
-static gint ett_rrc_UL_RFC3095_Context;
+static int ett_rrc_DL_DCCH_Message;
+static int ett_rrc_DL_DCCH_MessageType;
+static int ett_rrc_UL_DCCH_Message;
+static int ett_rrc_UL_DCCH_MessageType;
+static int ett_rrc_UL_DCCH_MessageType_ext;
+static int ett_rrc_DL_CCCH_Message;
+static int ett_rrc_DL_CCCH_MessageType;
+static int ett_rrc_UL_CCCH_Message;
+static int ett_rrc_UL_CCCH_MessageType;
+static int ett_rrc_UL_CCCH_MessageType_r11;
+static int ett_rrc_PCCH_Message;
+static int ett_rrc_PCCH_MessageType;
+static int ett_rrc_DL_SHCCH_Message;
+static int ett_rrc_DL_SHCCH_MessageType;
+static int ett_rrc_UL_SHCCH_Message;
+static int ett_rrc_UL_SHCCH_MessageType;
+static int ett_rrc_BCCH_FACH_Message;
+static int ett_rrc_BCCH_FACH_MessageType;
+static int ett_rrc_BCCH_BCH_Message;
+static int ett_rrc_BCCH_BCH2_Message;
+static int ett_rrc_MCCH_Message;
+static int ett_rrc_MCCH_MessageType;
+static int ett_rrc_MSCH_Message;
+static int ett_rrc_MSCH_MessageType;
+static int ett_rrc_ActiveSetUpdate;
+static int ett_rrc_T_r3;
+static int ett_rrc_T_laterNonCriticalExtensions;
+static int ett_rrc_T_v4b0NonCriticalExtensions;
+static int ett_rrc_T_v590NonCriticalExtensions;
+static int ett_rrc_T_v690NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions;
+static int ett_rrc_T_later_than_r3;
+static int ett_rrc_T_criticalExtensions;
+static int ett_rrc_T_r6;
+static int ett_rrc_T_v6b0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_01;
+static int ett_rrc_T_criticalExtensions_01;
+static int ett_rrc_T_r7;
+static int ett_rrc_T_v780NonCriticalExtensions;
+static int ett_rrc_T_v7f0NonCriticalExtensions;
+static int ett_rrc_T_v7g0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_02;
+static int ett_rrc_T_criticalExtensions_02;
+static int ett_rrc_T_r8;
+static int ett_rrc_T_v890NonCriticalExtensions;
+static int ett_rrc_T_v7g0NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_03;
+static int ett_rrc_T_criticalExtensions_03;
+static int ett_rrc_T_r9;
+static int ett_rrc_T_v950NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_04;
+static int ett_rrc_T_criticalExtensions_04;
+static int ett_rrc_T_r10;
+static int ett_rrc_T_vb50NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_05;
+static int ett_rrc_T_criticalExtensions_05;
+static int ett_rrc_T_r11;
+static int ett_rrc_T_nonCriticalExtensions_06;
+static int ett_rrc_T_criticalExtensions_06;
+static int ett_rrc_T_r12;
+static int ett_rrc_T_nonCriticalExtensions_07;
+static int ett_rrc_T_criticalExtensions_07;
+static int ett_rrc_T_r13;
+static int ett_rrc_T_nonCriticalExtensions_08;
+static int ett_rrc_T_criticalExtensions_08;
+static int ett_rrc_ActiveSetUpdate_r3_IEs;
+static int ett_rrc_ActiveSetUpdate_v4b0ext_IEs;
+static int ett_rrc_ActiveSetUpdate_v590ext_IEs;
+static int ett_rrc_ActiveSetUpdate_v690ext_IEs;
+static int ett_rrc_ActiveSetUpdate_r6_IEs;
+static int ett_rrc_ActiveSetUpdate_v6b0ext_IEs;
+static int ett_rrc_ActiveSetUpdate_r7_IEs;
+static int ett_rrc_ActiveSetUpdate_v780ext_IEs;
+static int ett_rrc_ActiveSetUpdate_v7f0ext_IEs;
+static int ett_rrc_ActiveSetUpdate_v7g0ext_IEs;
+static int ett_rrc_ActiveSetUpdate_r8_IEs;
+static int ett_rrc_ActiveSetUpdate_v890ext_IEs;
+static int ett_rrc_ActiveSetUpdate_r9_IEs;
+static int ett_rrc_ActiveSetUpdate_v950ext_IEs;
+static int ett_rrc_ActiveSetUpdate_r10_IEs;
+static int ett_rrc_ActiveSetUpdate_vb50ext_IEs;
+static int ett_rrc_ActiveSetUpdate_r11_IEs;
+static int ett_rrc_ActiveSetUpdate_r12_IEs;
+static int ett_rrc_ActiveSetUpdate_r13_IEs;
+static int ett_rrc_ActiveSetUpdateComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_09;
+static int ett_rrc_ActiveSetUpdateFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_10;
+static int ett_rrc_AssistanceDataDelivery;
+static int ett_rrc_T_r3_01;
+static int ett_rrc_T_v3a0NonCriticalExtensions;
+static int ett_rrc_T_laterNonCriticalExtensions_03;
+static int ett_rrc_T_v4b0NonCriticalExtensions_01;
+static int ett_rrc_T_v770NonCriticalExtension;
+static int ett_rrc_T_v860NonCriticalExtension;
+static int ett_rrc_T_v920NonCriticalExtension;
+static int ett_rrc_T_va40NonCriticalExtension;
+static int ett_rrc_T_vc50NonCriticalExtension;
+static int ett_rrc_T_nonCriticalExtensions_11;
+static int ett_rrc_T_later_than_r3_01;
+static int ett_rrc_T_criticalExtensions_09;
+static int ett_rrc_AssistanceDataDelivery_r3_IEs;
+static int ett_rrc_AssistanceDataDelivery_v3a0ext;
+static int ett_rrc_AssistanceDataDelivery_v4b0ext_IEs;
+static int ett_rrc_AssistanceDataDelivery_v770ext_IEs;
+static int ett_rrc_AssistanceDataDelivery_v860ext_IEs;
+static int ett_rrc_AssistanceDataDelivery_v920ext_IEs;
+static int ett_rrc_AssistanceDataDelivery_va40ext_IEs;
+static int ett_rrc_AssistanceDataDelivery_vc50ext_IEs;
+static int ett_rrc_CellChangeOrderFromUTRAN;
+static int ett_rrc_T_r3_02;
+static int ett_rrc_T_laterNonCriticalExtensions_04;
+static int ett_rrc_T_v590NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_12;
+static int ett_rrc_T_later_than_r3_02;
+static int ett_rrc_T_criticalExtensions_10;
+static int ett_rrc_CellChangeOrderFromUTRAN_r3_IEs;
+static int ett_rrc_CellChangeOrderFromUTRAN_v590ext_IEs;
+static int ett_rrc_T_geran_SystemInfoType;
+static int ett_rrc_CellChangeOrderFromUTRANFailure;
+static int ett_rrc_T_r3_03;
+static int ett_rrc_T_laterNonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_13;
+static int ett_rrc_T_dummy;
+static int ett_rrc_T_criticalExtensions_11;
+static int ett_rrc_CellChangeOrderFromUTRANFailure_r3_IEs;
+static int ett_rrc_CellUpdate;
+static int ett_rrc_T_laterNonCriticalExtensions_06;
+static int ett_rrc_T_v590NonCriticalExtensions_02;
+static int ett_rrc_T_v690NonCriticalExtensions_01;
+static int ett_rrc_T_v6b0NonCriticalExtensions_01;
+static int ett_rrc_T_v770NonCriticalExtensions;
+static int ett_rrc_T_v860NonCriticalExtensions;
+static int ett_rrc_T_va40NonCriticalExtensions;
+static int ett_rrc_T_vb50NonCriticalExtensions_01;
+static int ett_rrc_T_vc50NonCriticalExtensions;
+static int ett_rrc_CellUpdate_ve30ext_IEs;
+static int ett_rrc_T_nonCriticalExtensions_14;
+static int ett_rrc_CellUpdate_r3_add_ext_IEs;
+static int ett_rrc_T_v7g0NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_15;
+static int ett_rrc_CellUpdate_v590ext;
+static int ett_rrc_CellUpdate_v690ext_IEs;
+static int ett_rrc_CellUpdate_v6b0ext_IEs;
+static int ett_rrc_CellUpdate_v770ext_IEs;
+static int ett_rrc_CellUpdate_v7e0ext_IEs;
+static int ett_rrc_CellUpdate_v7g0ext_IEs;
+static int ett_rrc_CellUpdate_v860ext_IEs;
+static int ett_rrc_CellUpdate_va40ext_IEs;
+static int ett_rrc_CellUpdateFDD_r11;
+static int ett_rrc_CellUpdate_vb50ext_IEs;
+static int ett_rrc_CellUpdate_vc50ext_IEs;
+static int ett_rrc_CellUpdateConfirm;
+static int ett_rrc_T_r3_04;
+static int ett_rrc_T_v3a0NonCriticalExtensions_01;
+static int ett_rrc_T_laterNonCriticalExtensions_07;
+static int ett_rrc_T_v4b0NonCriticalExtensions_02;
+static int ett_rrc_T_v590NonCriticalExtenstions;
+static int ett_rrc_T_v5d0NonCriticalExtenstions;
+static int ett_rrc_T_v690NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_16;
+static int ett_rrc_T_later_than_r3_03;
+static int ett_rrc_T_criticalExtensions_12;
+static int ett_rrc_T_r4;
+static int ett_rrc_T_v4d0NonCriticalExtensions;
+static int ett_rrc_T_v590NonCriticalExtenstions_01;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_01;
+static int ett_rrc_T_v690NonCriticalExtensions_03;
+static int ett_rrc_T_nonCriticalExtensions_17;
+static int ett_rrc_T_criticalExtensions_13;
+static int ett_rrc_T_r5;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_02;
+static int ett_rrc_T_v690NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_18;
+static int ett_rrc_T_criticalExtensions_14;
+static int ett_rrc_T_r6_01;
+static int ett_rrc_T_v6b0NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_19;
+static int ett_rrc_T_criticalExtensions_15;
+static int ett_rrc_T_r7_01;
+static int ett_rrc_T_v780NonCriticalExtensions_01;
+static int ett_rrc_T_v860NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_20;
+static int ett_rrc_T_criticalExtensions_16;
+static int ett_rrc_T_r8_01;
+static int ett_rrc_T_v7d0NonCriticalExtensions;
+static int ett_rrc_T_v7f0NonCriticalExtensions_01;
+static int ett_rrc_T_v890NonCriticalExtensions_01;
+static int ett_rrc_T_v7g0NonCriticalExtensions_03;
+static int ett_rrc_T_v8a0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_21;
+static int ett_rrc_T_criticalExtensions_17;
+static int ett_rrc_T_r9_01;
+static int ett_rrc_T_v950NonCriticalExtensions_01;
+static int ett_rrc_T_v9c0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_22;
+static int ett_rrc_T_criticalExtensions_18;
+static int ett_rrc_T_r10_01;
+static int ett_rrc_T_v9c0NonCriticalExtensions_01;
+static int ett_rrc_T_vb50NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_23;
+static int ett_rrc_T_criticalExtensions_19;
+static int ett_rrc_T_r11_01;
+static int ett_rrc_T_nonCriticalExtensions_24;
+static int ett_rrc_T_criticalExtensions_20;
+static int ett_rrc_T_r12_01;
+static int ett_rrc_T_nonCriticalExtensions_25;
+static int ett_rrc_T_criticalExtensions_21;
+static int ett_rrc_T_r13_01;
+static int ett_rrc_T_nonCriticalExtensions_26;
+static int ett_rrc_CellUpdateConfirm_CriticalExtension_r14_IEs;
+static int ett_rrc_T_r14;
+static int ett_rrc_T_nonCriticalExtensions_27;
+static int ett_rrc_T_criticalExtensions_22;
+static int ett_rrc_CellUpdateConfirm_r14_IEs;
+static int ett_rrc_CellUpdateConfirm_r3_IEs;
+static int ett_rrc_T_modeSpecificTransChInfo;
+static int ett_rrc_T_fdd;
+static int ett_rrc_T_modeSpecificPhysChInfo;
+static int ett_rrc_T_fdd_01;
+static int ett_rrc_CellUpdateConfirm_v3a0ext;
+static int ett_rrc_CellUpdateConfirm_v4b0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v590ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v5d0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_r4_IEs;
+static int ett_rrc_T_modeSpecificTransChInfo_01;
+static int ett_rrc_T_fdd_02;
+static int ett_rrc_T_modeSpecificPhysChInfo_01;
+static int ett_rrc_T_fdd_03;
+static int ett_rrc_CellUpdateConfirm_r5_IEs;
+static int ett_rrc_T_modeSpecificTransChInfo_02;
+static int ett_rrc_T_fdd_04;
+static int ett_rrc_T_modeSpecificPhysChInfo_02;
+static int ett_rrc_T_fdd_05;
+static int ett_rrc_CellUpdateConfirm_r6_IEs;
+static int ett_rrc_CellUpdateConfirm_v690ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v6b0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_r7_IEs;
+static int ett_rrc_CellUpdateConfirm_r7_add_ext_IEs;
+static int ett_rrc_T_v7f0NonCriticalExtensions_02;
+static int ett_rrc_T_v7g0NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_28;
+static int ett_rrc_CellUpdateConfirm_v780ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v7d0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v7f0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v7g0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_r8_IEs;
+static int ett_rrc_CellUpdateConfirm_v860ext_IEs;
+static int ett_rrc_T_rab_InformationSetup;
+static int ett_rrc_CellUpdateConfirm_v890ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v8a0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_r9_IEs;
+static int ett_rrc_CellUpdateConfirm_v950ext_IEs;
+static int ett_rrc_CellUpdateConfirm_v9c0ext_IEs;
+static int ett_rrc_CellUpdateConfirm_r10_IEs;
+static int ett_rrc_CellUpdateConfirm_vb50ext_IEs;
+static int ett_rrc_CellUpdateConfirm_r11_IEs;
+static int ett_rrc_CellUpdateConfirm_r12_IEs;
+static int ett_rrc_CellUpdateConfirm_r13_IEs;
+static int ett_rrc_CellUpdateConfirm_CCCH;
+static int ett_rrc_T_r3_05;
+static int ett_rrc_T_laterNonCriticalExtensions_08;
+static int ett_rrc_T_v4b0NonCriticalExtensions_03;
+static int ett_rrc_T_v590NonCriticalExtensions_03;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_03;
+static int ett_rrc_T_v690NonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_29;
+static int ett_rrc_T_later_than_r3_04;
+static int ett_rrc_T_criticalExtensions_23;
+static int ett_rrc_T_r4_01;
+static int ett_rrc_T_v4d0NonCriticalExtensions_01;
+static int ett_rrc_T_v590NonCriticalExtensions_04;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_04;
+static int ett_rrc_T_v690NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_30;
+static int ett_rrc_T_criticalExtensions_24;
+static int ett_rrc_T_r5_01;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_05;
+static int ett_rrc_T_v690NonCriticalExtensions_07;
+static int ett_rrc_T_nonCriticalExtensions_31;
+static int ett_rrc_T_criticalExtensions_25;
+static int ett_rrc_T_r6_02;
+static int ett_rrc_T_v6b0NonCriticalExtensions_03;
+static int ett_rrc_T_nonCriticalExtensions_32;
+static int ett_rrc_T_criticalExtensions_26;
+static int ett_rrc_T_r7_02;
+static int ett_rrc_T_v780NonCriticalExtensions_02;
+static int ett_rrc_T_v860NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_33;
+static int ett_rrc_T_criticalExtensions_27;
+static int ett_rrc_T_r8_02;
+static int ett_rrc_T_v7d0NonCriticalExtensions_01;
+static int ett_rrc_T_v890NonCriticalExtensions_02;
+static int ett_rrc_T_v8a0NonCriticalExtensions_01;
+static int ett_rrc_T_v7f0NonCriticalExtensions_03;
+static int ett_rrc_T_v7g0NonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_34;
+static int ett_rrc_T_criticalExtensions_28;
+static int ett_rrc_T_r9_02;
+static int ett_rrc_T_nonCriticalExtensions_35;
+static int ett_rrc_T_criticalExtensions_29;
+static int ett_rrc_T_r10_02;
+static int ett_rrc_T_vb50NonCriticalExtensions_03;
+static int ett_rrc_T_nonCriticalExtensions_36;
+static int ett_rrc_T_criticalExtensions_30;
+static int ett_rrc_T_r11_02;
+static int ett_rrc_T_nonCriticalExtensions_37;
+static int ett_rrc_T_criticalExtensions_31;
+static int ett_rrc_T_r12_02;
+static int ett_rrc_T_nonCriticalExtensions_38;
+static int ett_rrc_T_criticalExtensions_32;
+static int ett_rrc_T_r13_02;
+static int ett_rrc_T_nonCriticalExtensions_39;
+static int ett_rrc_T_criticalExtensions_33;
+static int ett_rrc_CounterCheck;
+static int ett_rrc_T_r3_06;
+static int ett_rrc_T_laterNonCriticalExtensions_09;
+static int ett_rrc_T_nonCriticalExtensions_40;
+static int ett_rrc_T_later_than_r3_05;
+static int ett_rrc_T_criticalExtensions_34;
+static int ett_rrc_CounterCheck_r3_IEs;
+static int ett_rrc_CounterCheckResponse;
+static int ett_rrc_T_laterNonCriticalExtensions_10;
+static int ett_rrc_T_nonCriticalExtensions_41;
+static int ett_rrc_DownlinkDirectTransfer;
+static int ett_rrc_T_r3_07;
+static int ett_rrc_T_laterNonCriticalExtensions_11;
+static int ett_rrc_T_nonCriticalExtensions_42;
+static int ett_rrc_T_later_than_r3_06;
+static int ett_rrc_T_criticalExtensions_35;
+static int ett_rrc_DownlinkDirectTransfer_r3_IEs;
+static int ett_rrc_ETWSPrimaryNotificationWithSecurity;
+static int ett_rrc_T_nonCriticalExtensions_43;
+static int ett_rrc_HandoverToUTRANCommand;
+static int ett_rrc_T_r3_08;
+static int ett_rrc_T_nonCriticalExtensions_44;
+static int ett_rrc_T_criticalExtensions_36;
+static int ett_rrc_T_r4_02;
+static int ett_rrc_T_nonCriticalExtensions_45;
+static int ett_rrc_T_criticalExtensions_37;
+static int ett_rrc_T_r5_02;
+static int ett_rrc_T_nonCriticalExtensions_46;
+static int ett_rrc_T_criticalExtensions_38;
+static int ett_rrc_T_r6_03;
+static int ett_rrc_T_v6b0NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_47;
+static int ett_rrc_T_criticalExtensions_39;
+static int ett_rrc_T_r7_03;
+static int ett_rrc_T_v780NonCriticalExtensions_03;
+static int ett_rrc_T_v820NonCriticalExtensions;
+static int ett_rrc_T_v7d0NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_48;
+static int ett_rrc_T_criticalExtensions_40;
+static int ett_rrc_T_r8_03;
+static int ett_rrc_T_v7d0NonCriticalExtensions_03;
+static int ett_rrc_T_v890NonCriticalExtensions_03;
+static int ett_rrc_T_v8a0NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_49;
+static int ett_rrc_T_criticalExtensions_41;
+static int ett_rrc_T_r9_03;
+static int ett_rrc_T_v9c0NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_50;
+static int ett_rrc_HandoverToUTRANCommand_r3_IEs;
+static int ett_rrc_T_specificationMode;
+static int ett_rrc_T_complete;
+static int ett_rrc_T_modeSpecificInfo;
+static int ett_rrc_T_fdd_06;
+static int ett_rrc_T_preconfiguration;
+static int ett_rrc_T_preConfigMode;
+static int ett_rrc_T_defaultConfig;
+static int ett_rrc_T_modeSpecificInfo_01;
+static int ett_rrc_T_fdd_07;
+static int ett_rrc_T_tdd;
+static int ett_rrc_HandoverToUTRANCommand_r4_IEs;
+static int ett_rrc_T_specificationMode_01;
+static int ett_rrc_T_complete_01;
+static int ett_rrc_T_modeSpecificInfo_02;
+static int ett_rrc_T_fdd_08;
+static int ett_rrc_T_preconfiguration_01;
+static int ett_rrc_T_preConfigMode_01;
+static int ett_rrc_T_defaultConfig_01;
+static int ett_rrc_T_modeSpecificInfo_03;
+static int ett_rrc_T_fdd_09;
+static int ett_rrc_T_tdd_01;
+static int ett_rrc_T_tdd384;
+static int ett_rrc_T_tdd128;
+static int ett_rrc_HandoverToUTRANCommand_r5_IEs;
+static int ett_rrc_T_specificationMode_02;
+static int ett_rrc_T_complete_02;
+static int ett_rrc_T_modeSpecificInfo_04;
+static int ett_rrc_T_fdd_10;
+static int ett_rrc_T_preconfiguration_02;
+static int ett_rrc_T_preConfigMode_02;
+static int ett_rrc_T_defaultConfig_02;
+static int ett_rrc_T_modeSpecificInfo_05;
+static int ett_rrc_T_fdd_11;
+static int ett_rrc_T_tdd_02;
+static int ett_rrc_T_tdd384_01;
+static int ett_rrc_T_tdd128_01;
+static int ett_rrc_HandoverToUTRANCommand_r6_IEs;
+static int ett_rrc_T_specificationMode_03;
+static int ett_rrc_T_complete_03;
+static int ett_rrc_T_preconfiguration_03;
+static int ett_rrc_T_preConfigMode_03;
+static int ett_rrc_T_defaultConfig_03;
+static int ett_rrc_T_modeSpecificInfo_06;
+static int ett_rrc_T_fdd_12;
+static int ett_rrc_T_tdd_03;
+static int ett_rrc_T_tdd384_02;
+static int ett_rrc_T_tdd128_02;
+static int ett_rrc_HandoverToUTRANCommand_v6b0ext_IEs;
+static int ett_rrc_HandoverToUTRANCommand_r7_IEs;
+static int ett_rrc_T_specificationMode_04;
+static int ett_rrc_T_complete_04;
+static int ett_rrc_T_preconfiguration_04;
+static int ett_rrc_T_preConfigMode_04;
+static int ett_rrc_T_defaultConfig_04;
+static int ett_rrc_T_modeSpecificInfo_07;
+static int ett_rrc_T_fdd_13;
+static int ett_rrc_T_tdd_04;
+static int ett_rrc_T_tdd384_03;
+static int ett_rrc_T_tdd128_03;
+static int ett_rrc_T_tdd768;
+static int ett_rrc_HandoverToUTRANCommand_v780ext_IEs;
+static int ett_rrc_HandoverToUTRANCommand_v7d0ext_IEs;
+static int ett_rrc_HandoverToUTRANCommand_r8_IEs;
+static int ett_rrc_T_specificationMode_05;
+static int ett_rrc_T_complete_05;
+static int ett_rrc_T_preconfiguration_05;
+static int ett_rrc_T_preConfigMode_05;
+static int ett_rrc_T_defaultConfig_05;
+static int ett_rrc_T_modeSpecificInfo_08;
+static int ett_rrc_T_fdd_14;
+static int ett_rrc_T_tdd_05;
+static int ett_rrc_T_tdd384_04;
+static int ett_rrc_T_tdd128_04;
+static int ett_rrc_T_tdd768_01;
+static int ett_rrc_HandoverToUTRANCommand_v820ext_IEs;
+static int ett_rrc_HandoverToUTRANCommand_v890ext_IEs;
+static int ett_rrc_HandoverToUTRANCommand_v8a0ext_IEs;
+static int ett_rrc_HandoverToUTRANCommand_r9_IEs;
+static int ett_rrc_T_specificationMode_06;
+static int ett_rrc_T_complete_06;
+static int ett_rrc_T_preconfiguration_06;
+static int ett_rrc_T_preConfigMode_06;
+static int ett_rrc_T_defaultConfig_06;
+static int ett_rrc_T_modeSpecificInfo_09;
+static int ett_rrc_T_fdd_15;
+static int ett_rrc_T_tdd_06;
+static int ett_rrc_T_tdd384_05;
+static int ett_rrc_T_tdd128_05;
+static int ett_rrc_T_tdd768_02;
+static int ett_rrc_HandoverToUTRANCommand_v9c0ext_IEs;
+static int ett_rrc_HandoverToUTRANCommand_LaterCriticalExtensions;
+static int ett_rrc_T_r10_03;
+static int ett_rrc_T_v9c0NonCriticalExtensions_03;
+static int ett_rrc_T_nonCriticalExtensions_51;
+static int ett_rrc_T_criticalExtensions_42;
+static int ett_rrc_T_r11_03;
+static int ett_rrc_T_vbc0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_52;
+static int ett_rrc_T_criticalExtensions_43;
+static int ett_rrc_T_r12_03;
+static int ett_rrc_T_nonCriticalExtensions_53;
+static int ett_rrc_T_criticalExtensions_44;
+static int ett_rrc_HandoverToUTRANCommand_r10_IEs;
+static int ett_rrc_T_specificationMode_07;
+static int ett_rrc_T_complete_07;
+static int ett_rrc_T_preconfiguration_07;
+static int ett_rrc_T_preConfigMode_07;
+static int ett_rrc_T_defaultConfig_07;
+static int ett_rrc_T_modeSpecificInfo_10;
+static int ett_rrc_T_fdd_16;
+static int ett_rrc_T_tdd_07;
+static int ett_rrc_T_tdd384_06;
+static int ett_rrc_T_tdd128_06;
+static int ett_rrc_T_tdd768_03;
+static int ett_rrc_HandoverToUTRANCommand_r11_IEs;
+static int ett_rrc_T_specificationMode_08;
+static int ett_rrc_T_complete_08;
+static int ett_rrc_T_preconfiguration_08;
+static int ett_rrc_T_preConfigMode_08;
+static int ett_rrc_T_defaultConfig_08;
+static int ett_rrc_T_modeSpecificInfo_11;
+static int ett_rrc_T_fdd_17;
+static int ett_rrc_T_tdd_08;
+static int ett_rrc_T_tdd384_07;
+static int ett_rrc_T_tdd128_07;
+static int ett_rrc_T_tdd768_04;
+static int ett_rrc_HandoverToUTRANCommand_vbc0ext_IEs;
+static int ett_rrc_T_specificationMode_09;
+static int ett_rrc_T_complete_09;
+static int ett_rrc_HandoverToUTRANCommand_r12_IEs;
+static int ett_rrc_T_specificationMode_10;
+static int ett_rrc_T_complete_10;
+static int ett_rrc_T_preconfiguration_09;
+static int ett_rrc_T_preConfigMode_09;
+static int ett_rrc_T_defaultConfig_09;
+static int ett_rrc_T_modeSpecificInfo_12;
+static int ett_rrc_T_fdd_18;
+static int ett_rrc_T_tdd_09;
+static int ett_rrc_T_tdd384_08;
+static int ett_rrc_T_tdd128_08;
+static int ett_rrc_T_tdd768_05;
+static int ett_rrc_HandoverToUTRANComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_12;
+static int ett_rrc_T_va40NonCriticalExtensions_01;
+static int ett_rrc_T_vb50NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_54;
+static int ett_rrc_HandoverToUTRANComplete_va40ext;
+static int ett_rrc_HandoverToUTRANComplete_vb50ext_IEs;
+static int ett_rrc_InitialDirectTransfer;
+static int ett_rrc_T_v3a0NonCriticalExtensions_02;
+static int ett_rrc_T_laterNonCriticalExtensions_13;
+static int ett_rrc_T_v590NonCriticalExtensions_05;
+static int ett_rrc_T_v690NonCriticalExtensions_08;
+static int ett_rrc_T_v770NonCriticalExtensions_01;
+static int ett_rrc_T_v860NonCriticalExtensions_03;
+static int ett_rrc_T_vb50NonCriticalExtensions_05;
+static int ett_rrc_T_vc50NonCriticalExtensions_01;
+static int ett_rrc_InitialDirectTransfer_v3a0ext;
+static int ett_rrc_InitialDirectTransfer_v590ext;
+static int ett_rrc_InitialDirectTransfer_v690ext_IEs;
+static int ett_rrc_InitialDirectTransfer_v770ext_IEs;
+static int ett_rrc_InitialDirectTransfer_v860ext_IEs;
+static int ett_rrc_InitialDirectTransfer_r3_add_ext_IEs;
+static int ett_rrc_T_nonCriticalExtensions_55;
+static int ett_rrc_InitialDirectTransfer_v7g0ext_IEs;
+static int ett_rrc_InitialDirectTransfer_vb50ext_IEs;
+static int ett_rrc_InitialDirectTransfer_vc50ext_IEs;
+static int ett_rrc_InitialDirectTransfer_ve30ext_IEs;
+static int ett_rrc_T_nonCriticalExtensions_56;
+static int ett_rrc_HandoverFromUTRANCommand_GSM;
+static int ett_rrc_T_r3_09;
+static int ett_rrc_T_laterNonCriticalExtensions_14;
+static int ett_rrc_T_v690NonCriticalExtensions_09;
+static int ett_rrc_T_v860NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_57;
+static int ett_rrc_T_later_than_r3_07;
+static int ett_rrc_T_criticalExtensions_45;
+static int ett_rrc_T_r6_04;
+static int ett_rrc_T_v860NonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_58;
+static int ett_rrc_T_criticalExtensions_46;
+static int ett_rrc_HandoverFromUTRANCommand_GSM_r3_IEs;
+static int ett_rrc_T_gsm_message;
+static int ett_rrc_T_single_GSM_Message_r3;
+static int ett_rrc_T_gsm_MessageList_r3;
+static int ett_rrc_HandoverFromUTRANCommand_GSM_r6_IEs;
+static int ett_rrc_T_gsm_message_01;
+static int ett_rrc_T_single_GSM_Message_r6;
+static int ett_rrc_T_gsm_MessageList_r6;
+static int ett_rrc_T_geran_SystemInfoType_01;
+static int ett_rrc_HandoverFromUTRANCommand_GSM_v690ext_IEs;
+static int ett_rrc_T_geran_SystemInfoType_02;
+static int ett_rrc_HandoverFromUTRANCommand_GSM_v860ext_IEs;
+static int ett_rrc_HandoverFromUTRANCommand_GERANIu;
+static int ett_rrc_T_handoverFromUTRANCommand_GERANIu;
+static int ett_rrc_T_r5_03;
+static int ett_rrc_T_nonCriticalExtensions_59;
+static int ett_rrc_T_later_than_r5;
+static int ett_rrc_T_criticalExtensions_47;
+static int ett_rrc_HandoverFromUTRANCommand_GERANIu_r5_IEs;
+static int ett_rrc_T_geranIu_Message;
+static int ett_rrc_T_single_GERANIu_Message;
+static int ett_rrc_T_geranIu_MessageList;
+static int ett_rrc_HandoverFromUTRANCommand_CDMA2000;
+static int ett_rrc_T_r3_10;
+static int ett_rrc_T_laterNonCriticalExtensions_15;
+static int ett_rrc_T_nonCriticalExtensions_60;
+static int ett_rrc_T_later_than_r3_08;
+static int ett_rrc_T_criticalExtensions_48;
+static int ett_rrc_HandoverFromUTRANCommand_CDMA2000_r3_IEs;
+static int ett_rrc_HandoverFromUTRANCommand_EUTRA;
+static int ett_rrc_T_criticalExtensions_49;
+static int ett_rrc_T_r8_04;
+static int ett_rrc_T_nonCriticalExtensions_61;
+static int ett_rrc_T_criticalExtensions_50;
+static int ett_rrc_T_r11_04;
+static int ett_rrc_T_nonCriticalExtensions_62;
+static int ett_rrc_T_criticalExtensions_51;
+static int ett_rrc_HandoverFromUTRANCommand_EUTRA_r8_IEs;
+static int ett_rrc_HandoverFromUTRANCommand_EUTRA_r11_IEs;
+static int ett_rrc_HandoverFromUTRANFailure;
+static int ett_rrc_T_interRATMessage;
+static int ett_rrc_T_gsm;
+static int ett_rrc_T_cdma2000;
+static int ett_rrc_T_laterNonCriticalExtensions_16;
+static int ett_rrc_T_v590NonCriticalExtensions_06;
+static int ett_rrc_T_v860NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_63;
+static int ett_rrc_HandoverFromUtranFailure_v590ext_IEs;
+static int ett_rrc_HandoverFromUtranFailure_v860ext_IEs;
+static int ett_rrc_InterRATHandoverInfo;
+static int ett_rrc_T_predefinedConfigStatusList;
+static int ett_rrc_T_uE_SecurityInformation;
+static int ett_rrc_T_ue_CapabilityContainer;
+static int ett_rrc_T_v390NonCriticalExtensions;
+static int ett_rrc_T_present_01;
+static int ett_rrc_T_v3a0NonCriticalExtensions_03;
+static int ett_rrc_T_laterNonCriticalExtensions_17;
+static int ett_rrc_T_v3g0NonCriticalExtensions;
+static int ett_rrc_T_v4b0NonCriticalExtensions_04;
+static int ett_rrc_T_v4d0NonCriticalExtensions_02;
+static int ett_rrc_T_v590NonCriticalExtensions_07;
+static int ett_rrc_T_v690NonCriticalExtensions_10;
+static int ett_rrc_InterRATHandoverInfo_v390ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v3a0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v3d0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v3g0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_r3_add_ext_IEs;
+static int ett_rrc_T_v7e0NonCriticalExtensions;
+static int ett_rrc_T_v7f0NonCriticalExtensions_04;
+static int ett_rrc_T_va40NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_64;
+static int ett_rrc_InterRATHandoverInfo_v4b0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v4d0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v590ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v690ext1_IEs;
+static int ett_rrc_InterRATHandoverInfo_v690ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_NonCriticalExtension_v6b0_IEs;
+static int ett_rrc_T_v6e0NonCriticalExtensions;
+static int ett_rrc_T_v770NonCriticalExtensions_02;
+static int ett_rrc_T_v790nonCriticalExtensions;
+static int ett_rrc_T_v860NonCriticalExtensions_07;
+static int ett_rrc_T_v880NonCriticalExtensions;
+static int ett_rrc_T_v920NonCriticalExtensions;
+static int ett_rrc_T_v8b0NonCriticalExtensions;
+static int ett_rrc_T_v950NonCriticalExtensions_02;
+static int ett_rrc_T_va40NonCriticalExtensions_03;
+static int ett_rrc_T_va80NonCriticalExtensions;
+static int ett_rrc_T_vb50NonCriticalExtensions_06;
+static int ett_rrc_T_vb70NonCriticalExtensions;
+static int ett_rrc_InterRATHandoverInfo_v6b0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v6e0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v770ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v790ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v7e0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v7f0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v860ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v880ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v920ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v8b0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_v950ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_va40ext_IEs;
+static int ett_rrc_InterRATHandoverInfoBand_va40ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_va80ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_vb50ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_vb70ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_vbc0ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_LaterNonCriticalExtensions;
+static int ett_rrc_T_vc50NonCriticalExtensions_02;
+static int ett_rrc_T_vd20NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_65;
+static int ett_rrc_InterRATHandoverInfo_vc50ext_IEs;
+static int ett_rrc_InterRATHandoverInfo_vd20ext_IEs;
+static int ett_rrc_MeasurementControl;
+static int ett_rrc_T_r3_11;
+static int ett_rrc_T_v390nonCriticalExtensions;
+static int ett_rrc_T_v3a0NonCriticalExtensions_04;
+static int ett_rrc_T_laterNonCriticalExtensions_18;
+static int ett_rrc_T_v4b0NonCriticalExtensions_05;
+static int ett_rrc_T_v590NonCriticalExtensions_08;
+static int ett_rrc_T_v5b0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_66;
+static int ett_rrc_T_later_than_r3_09;
+static int ett_rrc_T_criticalExtensions_52;
+static int ett_rrc_T_r4_03;
+static int ett_rrc_T_v4d0NonCriticalExtensions_03;
+static int ett_rrc_T_v590NonCriticalExtensions_09;
+static int ett_rrc_T_v5b0NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_67;
+static int ett_rrc_T_later_than_r4;
+static int ett_rrc_T_criticalExtensions_53;
+static int ett_rrc_T_r6_05;
+static int ett_rrc_T_v6a0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_68;
+static int ett_rrc_T_criticalExtensions_54;
+static int ett_rrc_T_r7_04;
+static int ett_rrc_T_v7b0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_69;
+static int ett_rrc_T_criticalExtensions_55;
+static int ett_rrc_T_r8_05;
+static int ett_rrc_T_v8a0NonCriticalExtensions_03;
+static int ett_rrc_T_vb50NonCriticalExtensions_07;
+static int ett_rrc_T_nonCriticalExtensions_70;
+static int ett_rrc_T_criticalExtensions_56;
+static int ett_rrc_T_r9_04;
+static int ett_rrc_T_v970NonCriticalExtensions;
+static int ett_rrc_T_vb50NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_71;
+static int ett_rrc_T_criticalExtensions_57;
+static int ett_rrc_T_r10_04;
+static int ett_rrc_T_vaa0NonCriticalExtensions;
+static int ett_rrc_T_vab0NonCriticalExtensions;
+static int ett_rrc_T_vb50NonCriticalExtensions_09;
+static int ett_rrc_T_nonCriticalExtensions_72;
+static int ett_rrc_T_criticalExtensions_58;
+static int ett_rrc_T_r11_05;
+static int ett_rrc_T_nonCriticalExtensions_73;
+static int ett_rrc_T_criticalExtensions_59;
+static int ett_rrc_T_r12_04;
+static int ett_rrc_T_nonCriticalExtensions_74;
+static int ett_rrc_T_criticalExtensions_60;
+static int ett_rrc_T_r13_03;
+static int ett_rrc_T_nonCriticalExtensions_75;
+static int ett_rrc_T_criticalExtensions_61;
+static int ett_rrc_T_r14_01;
+static int ett_rrc_T_nonCriticalExtensions_76;
+static int ett_rrc_MeasurementControl_r3_IEs;
+static int ett_rrc_MeasurementControl_v390ext;
+static int ett_rrc_MeasurementControl_v3a0ext;
+static int ett_rrc_MeasurementControl_r4_IEs;
+static int ett_rrc_MeasurementControl_v590ext_IEs;
+static int ett_rrc_T_measurementCommand_v590ext;
+static int ett_rrc_MeasurementControl_v5b0ext_IEs;
+static int ett_rrc_MeasurementControl_r6_IEs;
+static int ett_rrc_MeasurementControl_v6a0ext_IEs;
+static int ett_rrc_MeasurementControl_r7_IEs;
+static int ett_rrc_MeasurementControl_v7b0ext_IEs;
+static int ett_rrc_MeasurementControl_r8_IEs;
+static int ett_rrc_MeasurementControl_v8a0ext_IEs;
+static int ett_rrc_MeasurementControl_r9_IEs;
+static int ett_rrc_MeasurementControl_v970ext_IEs;
+static int ett_rrc_MeasurementControl_r10_IEs;
+static int ett_rrc_MeasurementControl_vaa0ext_IEs;
+static int ett_rrc_MeasurementControl_r11_IEs;
+static int ett_rrc_MeasurementControl_vb50ext_IEs;
+static int ett_rrc_MeasurementControl_r12_IEs;
+static int ett_rrc_MeasurementControl_r13_IEs;
+static int ett_rrc_MeasurementControl_r14_IEs;
+static int ett_rrc_MeasurementControl_LaterCriticalExtensions_r14_IEs;
+static int ett_rrc_T_criticalExtensions_62;
+static int ett_rrc_T_r14_02;
+static int ett_rrc_T_nonCriticalExtensions_77;
+static int ett_rrc_MeasurementControl_LaterCriticalExtensions_r15_IEs;
+static int ett_rrc_T_criticalExtensions_63;
+static int ett_rrc_T_r15;
+static int ett_rrc_T_nonCriticalExtensions_78;
+static int ett_rrc_T_criticalExtensions_64;
+static int ett_rrc_MeasurementControl_r15_IEs;
+static int ett_rrc_MeasurementControlFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_19;
+static int ett_rrc_T_v590NonCriticalExtensions_10;
+static int ett_rrc_T_vc50NonCriticalExtensions_03;
+static int ett_rrc_T_nonCriticalExtensions_79;
+static int ett_rrc_MeasurementControlFailure_v590ext_IEs;
+static int ett_rrc_MeasurementControlFailure_vc50ext_IEs;
+static int ett_rrc_MeasurementReport;
+static int ett_rrc_T_v390nonCriticalExtensions_01;
+static int ett_rrc_T_laterNonCriticalExtensions_20;
+static int ett_rrc_T_v4b0NonCriticalExtensions_06;
+static int ett_rrc_T_v590NonCriticalExtensions_11;
+static int ett_rrc_T_v5b0NonCriticalExtensions_02;
+static int ett_rrc_T_v690NonCriticalExtensions_11;
+static int ett_rrc_T_v770NonCriticalExtensions_03;
+static int ett_rrc_T_v860NonCriticalExtensions_08;
+static int ett_rrc_T_v920NonCriticalExtensions_01;
+static int ett_rrc_T_v970NonCriticalExtensions_01;
+static int ett_rrc_T_va40NonCriticalExtensions_04;
+static int ett_rrc_T_vb50NonCriticalExtensions_10;
+static int ett_rrc_MeasurementReport_v390ext;
+static int ett_rrc_MeasurementReport_v4b0ext_IEs;
+static int ett_rrc_MeasurementReport_v590ext_IEs;
+static int ett_rrc_MeasurementReport_v5b0ext_IEs;
+static int ett_rrc_MeasurementReport_v690ext_IEs;
+static int ett_rrc_MeasurementReport_v770ext_IEs;
+static int ett_rrc_MeasurementReport_v860ext_IEs;
+static int ett_rrc_MeasurementReport_v920ext_IEs;
+static int ett_rrc_MeasurementReport_v970ext_IEs;
+static int ett_rrc_MeasurementReport_va40ext_IEs;
+static int ett_rrc_MeasurementReport_vb50ext_IEs;
+static int ett_rrc_MeasurementReport_LaterNonCriticalExtensions;
+static int ett_rrc_T_vd20NonCriticalExtensions_01;
+static int ett_rrc_MeasurementReport_vc50ext_IEs;
+static int ett_rrc_MeasurementReport_vd20ext_IEs;
+static int ett_rrc_MeasurementReport_ve30ext_IEs;
+static int ett_rrc_MeasurementReport_vf20ext_IEs;
+static int ett_rrc_T_nonCriticalExtensions_80;
+static int ett_rrc_PagingType1;
+static int ett_rrc_T_laterNonCriticalExtensions_21;
+static int ett_rrc_T_v590NonCriticalExtensions_12;
+static int ett_rrc_T_v860NonCriticalExtensions_09;
+static int ett_rrc_T_vc50NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_81;
+static int ett_rrc_PagingType1_v590ext_IEs;
+static int ett_rrc_PagingType1_v860ext_IEs;
+static int ett_rrc_PagingType1_vc50ext_IEs;
+static int ett_rrc_PagingType2;
+static int ett_rrc_T_laterNonCriticalExtensions_22;
+static int ett_rrc_T_nonCriticalExtensions_82;
+static int ett_rrc_PhysicalChannelReconfiguration;
+static int ett_rrc_T_r3_12;
+static int ett_rrc_T_v3a0NonCriticalExtensions_05;
+static int ett_rrc_T_laterNonCriticalExtensions_23;
+static int ett_rrc_T_v4b0NonCriticalExtenstions;
+static int ett_rrc_T_v590NonCriticalExtenstions_02;
+static int ett_rrc_T_v690NonCriticalExtensions_12;
+static int ett_rrc_T_v770NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_83;
+static int ett_rrc_T_later_than_r3_10;
+static int ett_rrc_T_criticalExtensions_65;
+static int ett_rrc_T_r4_04;
+static int ett_rrc_T_v4d0NonCriticalExtensions_04;
+static int ett_rrc_T_v590NonCriticalExtenstions_03;
+static int ett_rrc_T_v690NonCriticalExtensions_13;
+static int ett_rrc_T_v770NonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_84;
+static int ett_rrc_T_criticalExtensions_66;
+static int ett_rrc_T_r5_04;
+static int ett_rrc_T_v690NonCriticalExtensions_14;
+static int ett_rrc_T_v770NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_85;
+static int ett_rrc_T_criticalExtensions_67;
+static int ett_rrc_T_r6_06;
+static int ett_rrc_T_v6b0NonCriticalExtensions_05;
+static int ett_rrc_T_v770NonCriticalExtensions_07;
+static int ett_rrc_T_nonCriticalExtensions_86;
+static int ett_rrc_T_criticalExtensions_68;
+static int ett_rrc_T_r7_05;
+static int ett_rrc_T_v780NonCriticalExtensions_04;
+static int ett_rrc_T_v7d0NonCriticalExtensions_04;
+static int ett_rrc_T_v7f0NonCriticalExtensions_05;
+static int ett_rrc_T_v7g0NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_87;
+static int ett_rrc_T_criticalExtensions_69;
+static int ett_rrc_T_r8_06;
+static int ett_rrc_T_v7d0NonCriticalExtensions_05;
+static int ett_rrc_T_v7f0NonCriticalExtensions_06;
+static int ett_rrc_T_v890NonCriticalExtensions_04;
+static int ett_rrc_T_v7g0NonCriticalExtensions_07;
+static int ett_rrc_T_v8a0NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_88;
+static int ett_rrc_T_criticalExtensions_70;
+static int ett_rrc_T_r9_05;
+static int ett_rrc_T_v950NonCriticalExtensions_03;
+static int ett_rrc_T_nonCriticalExtensions_89;
+static int ett_rrc_T_criticalExtensions_71;
+static int ett_rrc_T_r10_05;
+static int ett_rrc_T_vb50NonCriticalExtensions_11;
+static int ett_rrc_T_nonCriticalExtensions_90;
+static int ett_rrc_T_criticalExtensions_72;
+static int ett_rrc_T_r11_06;
+static int ett_rrc_T_nonCriticalExtensions_91;
+static int ett_rrc_T_criticalExtensions_73;
+static int ett_rrc_T_r12_05;
+static int ett_rrc_T_nonCriticalExtensions_92;
+static int ett_rrc_T_criticalExtensions_74;
+static int ett_rrc_T_r13_04;
+static int ett_rrc_T_nonCriticalExtensions_93;
+static int ett_rrc_T_criticalExtensions_75;
+static int ett_rrc_PhysicalChannelReconfiguration_r3_IEs;
+static int ett_rrc_T_modeSpecificInfo_13;
+static int ett_rrc_T_fdd_19;
+static int ett_rrc_PhysicalChannelReconfiguration_v3a0ext;
+static int ett_rrc_PhysicalChannelReconfiguration_v4b0ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v590ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r4_IEs;
+static int ett_rrc_T_modeSpecificInfo_14;
+static int ett_rrc_T_fdd_20;
+static int ett_rrc_PhysicalChannelReconfiguration_r5_IEs;
+static int ett_rrc_T_modeSpecificInfo_15;
+static int ett_rrc_T_fdd_21;
+static int ett_rrc_PhysicalChannelReconfiguration_r6_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v690ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v6b0ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r7_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v770ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v780ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v7d0ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v7f0ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v7g0ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r8_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v890ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v8a0ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r9_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_v950ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r10_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_vb50ext_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r11_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r12_IEs;
+static int ett_rrc_PhysicalChannelReconfiguration_r13_IEs;
+static int ett_rrc_PhysicalChannelReconfigurationComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_24;
+static int ett_rrc_T_v770NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_94;
+static int ett_rrc_PhysicalChannelReconfigurationComplete_v770ext_IEs;
+static int ett_rrc_PhysicalChannelReconfigurationFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_25;
+static int ett_rrc_T_nonCriticalExtensions_95;
+static int ett_rrc_PhysicalSharedChannelAllocation;
+static int ett_rrc_T_r3_13;
+static int ett_rrc_T_laterNonCriticalExtensions_26;
+static int ett_rrc_T_nonCriticalExtensions_96;
+static int ett_rrc_T_later_than_r3_11;
+static int ett_rrc_T_criticalExtensions_76;
+static int ett_rrc_T_r4_05;
+static int ett_rrc_T_v4d0NonCriticalExtensions_05;
+static int ett_rrc_T_v690NonCriticalExtensions_15;
+static int ett_rrc_T_v770NonCriticalExtensions_09;
+static int ett_rrc_T_nonCriticalExtensions_97;
+static int ett_rrc_T_criticalExtensions_77;
+static int ett_rrc_PhysicalSharedChannelAllocation_r3_IEs;
+static int ett_rrc_PhysicalSharedChannelAllocation_r4_IEs;
+static int ett_rrc_PhysicalSharedChannelAllocation_v690ext_IEs;
+static int ett_rrc_PhysicalSharedChannelAllocation_v770ext_IEs;
+static int ett_rrc_PUSCHCapacityRequest;
+static int ett_rrc_T_allocationConfirmation;
+static int ett_rrc_T_laterNonCriticalExtensions_27;
+static int ett_rrc_T_v590NonCriticalExtensions_13;
+static int ett_rrc_T_nonCriticalExtensions_98;
+static int ett_rrc_PUSCHCapacityRequest_v590ext;
+static int ett_rrc_RadioBearerReconfiguration;
+static int ett_rrc_T_r3_14;
+static int ett_rrc_T_v3aoNonCriticalExtensions;
+static int ett_rrc_T_laterNonCriticalExtensions_28;
+static int ett_rrc_T_v4b0NonCriticalExtensions_07;
+static int ett_rrc_T_v590NonCriticalExtensions_14;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_06;
+static int ett_rrc_T_v690NonCriticalExtensions_16;
+static int ett_rrc_T_v770NonCriticalExtensions_10;
+static int ett_rrc_T_nonCriticalExtensions_99;
+static int ett_rrc_T_later_than_r3_12;
+static int ett_rrc_T_criticalExtensions_78;
+static int ett_rrc_T_r4_06;
+static int ett_rrc_T_v4d0NonCriticalExtensions_06;
+static int ett_rrc_T_v590NonCriticalExtensions_15;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_07;
+static int ett_rrc_T_v690NonCriticalExtensions_17;
+static int ett_rrc_T_v770NonCriticalExtensions_11;
+static int ett_rrc_T_nonCriticalExtensions_100;
+static int ett_rrc_T_criticalExtensions_79;
+static int ett_rrc_T_r5_05;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_08;
+static int ett_rrc_T_v690NonCriticalExtensions_18;
+static int ett_rrc_T_v770NonCriticalExtensions_12;
+static int ett_rrc_T_nonCriticalExtensions_101;
+static int ett_rrc_T_criticalExtensions_80;
+static int ett_rrc_T_r6_07;
+static int ett_rrc_T_v6b0NonCriticalExtensions_06;
+static int ett_rrc_T_v6f0NonCriticalExtensions;
+static int ett_rrc_T_v770NonCriticalExtensions_13;
+static int ett_rrc_T_nonCriticalExtensions_102;
+static int ett_rrc_T_criticalExtensions_81;
+static int ett_rrc_T_r7_06;
+static int ett_rrc_T_v780NonCriticalExtensions_05;
+static int ett_rrc_T_v790NonCriticalExtensions;
+static int ett_rrc_T_v7d0NonCriticalExtensions_06;
+static int ett_rrc_T_v7f0NonCriticalExtensions_07;
+static int ett_rrc_T_v7g0NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_103;
+static int ett_rrc_T_criticalExtensions_82;
+static int ett_rrc_T_r8_07;
+static int ett_rrc_T_v7d0NonCriticalExtensions_07;
+static int ett_rrc_T_v7f0NonCriticalExtensions_08;
+static int ett_rrc_T_v890NonCriticalExtensions_05;
+static int ett_rrc_T_v7g0NonCriticalExtensions_09;
+static int ett_rrc_T_v8a0NonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_104;
+static int ett_rrc_T_criticalExtensions_83;
+static int ett_rrc_T_r9_06;
+static int ett_rrc_T_v950NonCriticalExtensions_04;
+static int ett_rrc_T_v9c0NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_105;
+static int ett_rrc_T_criticalExtensions_84;
+static int ett_rrc_T_r10_06;
+static int ett_rrc_T_v9c0NonCriticalExtensions_05;
+static int ett_rrc_T_vaa0NonCriticalExtensions_01;
+static int ett_rrc_T_vb50NonCriticalExtensions_12;
+static int ett_rrc_T_nonCriticalExtensions_106;
+static int ett_rrc_T_criticalExtensions_85;
+static int ett_rrc_T_r11_07;
+static int ett_rrc_T_nonCriticalExtensions_107;
+static int ett_rrc_T_criticalExtensions_86;
+static int ett_rrc_T_r12_06;
+static int ett_rrc_T_nonCriticalExtensions_108;
+static int ett_rrc_T_criticalExtensions_87;
+static int ett_rrc_T_r13_05;
+static int ett_rrc_T_nonCriticalExtensions_109;
+static int ett_rrc_T_criticalExtensions_88;
+static int ett_rrc_T_r14_03;
+static int ett_rrc_T_nonCriticalExtensions_110;
+static int ett_rrc_RadioBearerReconfiguration_vaa0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_r3_IEs;
+static int ett_rrc_T_dummy_01;
+static int ett_rrc_T_fdd_22;
+static int ett_rrc_T_modeSpecificPhysChInfo_03;
+static int ett_rrc_T_fdd_23;
+static int ett_rrc_RadioBearerReconfiguration_v3a0ext;
+static int ett_rrc_RadioBearerReconfiguration_v4b0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v590ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v5d0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_r4_IEs;
+static int ett_rrc_T_dummy_02;
+static int ett_rrc_T_fdd_24;
+static int ett_rrc_T_modeSpecificPhysChInfo_04;
+static int ett_rrc_T_fdd_25;
+static int ett_rrc_RadioBearerReconfiguration_r5_IEs;
+static int ett_rrc_T_specificationMode_11;
+static int ett_rrc_T_complete_11;
+static int ett_rrc_T_dummy_03;
+static int ett_rrc_T_fdd_26;
+static int ett_rrc_T_preconfiguration_10;
+static int ett_rrc_T_preConfigMode_10;
+static int ett_rrc_T_defaultConfig_10;
+static int ett_rrc_T_modeSpecificPhysChInfo_05;
+static int ett_rrc_T_fdd_27;
+static int ett_rrc_RadioBearerReconfiguration_r6_IEs;
+static int ett_rrc_T_specificationMode_12;
+static int ett_rrc_T_complete_12;
+static int ett_rrc_T_preconfiguration_11;
+static int ett_rrc_T_preConfigMode_11;
+static int ett_rrc_T_defaultConfig_11;
+static int ett_rrc_RadioBearerReconfiguration_v690ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v6b0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v6f0ext_IEs;
+static int ett_rrc_T_specificationMode_13;
+static int ett_rrc_T_complete_13;
+static int ett_rrc_RadioBearerReconfiguration_r7_IEs;
+static int ett_rrc_T_specificationMode_14;
+static int ett_rrc_T_complete_14;
+static int ett_rrc_T_preconfiguration_12;
+static int ett_rrc_T_preConfigMode_12;
+static int ett_rrc_T_defaultConfig_12;
+static int ett_rrc_RadioBearerReconfiguration_v770ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v780ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v790ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v7d0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v7f0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v7g0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_r8_IEs;
+static int ett_rrc_T_specificationMode_15;
+static int ett_rrc_T_complete_15;
+static int ett_rrc_T_preconfiguration_13;
+static int ett_rrc_T_preConfigMode_13;
+static int ett_rrc_T_defaultConfig_13;
+static int ett_rrc_RadioBearerReconfiguration_v890ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v8a0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_r9_IEs;
+static int ett_rrc_T_specificationMode_16;
+static int ett_rrc_T_complete_16;
+static int ett_rrc_T_preconfiguration_14;
+static int ett_rrc_T_preConfigMode_14;
+static int ett_rrc_T_defaultConfig_14;
+static int ett_rrc_RadioBearerReconfiguration_v950ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_v9c0ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_r10_IEs;
+static int ett_rrc_T_specificationMode_17;
+static int ett_rrc_T_complete_17;
+static int ett_rrc_T_preconfiguration_15;
+static int ett_rrc_T_preConfigMode_15;
+static int ett_rrc_T_defaultConfig_15;
+static int ett_rrc_RadioBearerReconfiguration_vb50ext_IEs;
+static int ett_rrc_RadioBearerReconfiguration_r11_IEs;
+static int ett_rrc_T_specificationMode_18;
+static int ett_rrc_T_complete_18;
+static int ett_rrc_T_preconfiguration_16;
+static int ett_rrc_T_preConfigMode_16;
+static int ett_rrc_T_defaultConfig_16;
+static int ett_rrc_RadioBearerReconfiguration_r12_IEs;
+static int ett_rrc_T_specificationMode_19;
+static int ett_rrc_T_complete_19;
+static int ett_rrc_T_preconfiguration_17;
+static int ett_rrc_T_preConfigMode_17;
+static int ett_rrc_T_defaultConfig_17;
+static int ett_rrc_RadioBearerReconfiguration_r13_IEs;
+static int ett_rrc_T_specificationMode_20;
+static int ett_rrc_T_complete_20;
+static int ett_rrc_T_preconfiguration_18;
+static int ett_rrc_T_preConfigMode_18;
+static int ett_rrc_T_defaultConfig_18;
+static int ett_rrc_RadioBearerReconfiguration_r14_IEs;
+static int ett_rrc_T_specificationMode_21;
+static int ett_rrc_T_complete_21;
+static int ett_rrc_T_preconfiguration_19;
+static int ett_rrc_T_preConfigMode_19;
+static int ett_rrc_T_defaultConfig_19;
+static int ett_rrc_RadioBearerReconfiguration_LaterCriticalExtensions_r15_IEs;
+static int ett_rrc_T_r15_01;
+static int ett_rrc_T_nonCriticalExtensions_111;
+static int ett_rrc_T_criticalExtensions_89;
+static int ett_rrc_RadioBearerReconfiguration_r15_IEs;
+static int ett_rrc_T_specificationMode_22;
+static int ett_rrc_T_complete_22;
+static int ett_rrc_T_preconfiguration_20;
+static int ett_rrc_T_preConfigMode_20;
+static int ett_rrc_T_defaultConfig_20;
+static int ett_rrc_RadioBearerReconfigurationComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_29;
+static int ett_rrc_T_v770NonCriticalExtensions_14;
+static int ett_rrc_T_nonCriticalExtensions_112;
+static int ett_rrc_RadioBearerReconfigurationComplete_v770ext_IEs;
+static int ett_rrc_RadioBearerReconfigurationFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_30;
+static int ett_rrc_T_nonCriticalExtensions_113;
+static int ett_rrc_RadioBearerRelease;
+static int ett_rrc_T_r3_15;
+static int ett_rrc_T_v3a0NonCriticalExtensions_06;
+static int ett_rrc_T_laterNonCriticalExtensions_31;
+static int ett_rrc_T_v4b0NonCriticalExtensions_08;
+static int ett_rrc_T_v590NonCriticalExtensions_16;
+static int ett_rrc_T_v690NonCriticalExtensions_19;
+static int ett_rrc_T_v770NonCriticalExtensions_15;
+static int ett_rrc_T_nonCriticalExtensions_114;
+static int ett_rrc_T_later_than_r3_13;
+static int ett_rrc_T_criticalExtensions_90;
+static int ett_rrc_T_r4_07;
+static int ett_rrc_T_v4d0NonCriticalExtensions_07;
+static int ett_rrc_T_v590NonCriticalExtensions_17;
+static int ett_rrc_T_v690NonCriticalExtensions_20;
+static int ett_rrc_T_v770NonCriticalExtensions_16;
+static int ett_rrc_T_nonCriticalExtensions_115;
+static int ett_rrc_T_criticalExtensions_91;
+static int ett_rrc_T_r5_06;
+static int ett_rrc_T_v690NonCriticalExtensions_21;
+static int ett_rrc_T_v770NonCriticalExtensions_17;
+static int ett_rrc_T_nonCriticalExtensions_116;
+static int ett_rrc_T_criticalExtensions_92;
+static int ett_rrc_T_r6_08;
+static int ett_rrc_T_v6b0NonCriticalExtensions_07;
+static int ett_rrc_T_v770NonCriticalExtensions_18;
+static int ett_rrc_T_nonCriticalExtensions_117;
+static int ett_rrc_T_criticalExtensions_93;
+static int ett_rrc_T_r7_07;
+static int ett_rrc_T_v780NonCriticalExtensions_06;
+static int ett_rrc_T_v7d0NonCriticalExtensions_08;
+static int ett_rrc_T_v7f0NonCriticalExtensions_09;
+static int ett_rrc_T_v7g0NonCriticalExtensions_10;
+static int ett_rrc_T_nonCriticalExtensions_118;
+static int ett_rrc_T_criticalExtensions_94;
+static int ett_rrc_T_r8_08;
+static int ett_rrc_T_v7d0NonCriticalExtensions_09;
+static int ett_rrc_T_v7f0NonCriticalExtensions_10;
+static int ett_rrc_T_v890NonCriticalExtensions_06;
+static int ett_rrc_T_v7g0NonCriticalExtensions_11;
+static int ett_rrc_T_v8a0NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_119;
+static int ett_rrc_T_criticalExtensions_95;
+static int ett_rrc_T_r9_07;
+static int ett_rrc_T_v950NonCriticalExtensions_05;
+static int ett_rrc_T_v970NonCriticalExtensions_02;
+static int ett_rrc_T_v9c0NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_120;
+static int ett_rrc_T_criticalExtensions_96;
+static int ett_rrc_T_r10_07;
+static int ett_rrc_T_v9c0NonCriticalExtensions_07;
+static int ett_rrc_T_vb50NonCriticalExtensions_13;
+static int ett_rrc_T_nonCriticalExtensions_121;
+static int ett_rrc_T_criticalExtensions_97;
+static int ett_rrc_T_r11_08;
+static int ett_rrc_T_nonCriticalExtensions_122;
+static int ett_rrc_T_criticalExtensions_98;
+static int ett_rrc_T_r12_07;
+static int ett_rrc_T_nonCriticalExtensions_123;
+static int ett_rrc_T_criticalExtensions_99;
+static int ett_rrc_T_r13_06;
+static int ett_rrc_T_nonCriticalExtensions_124;
+static int ett_rrc_RadioBearerRelease_r3_IEs;
+static int ett_rrc_T_dummy_04;
+static int ett_rrc_T_fdd_28;
+static int ett_rrc_T_modeSpecificPhysChInfo_06;
+static int ett_rrc_T_fdd_29;
+static int ett_rrc_RadioBearerRelease_v3a0ext;
+static int ett_rrc_RadioBearerRelease_v4b0ext_IEs;
+static int ett_rrc_RadioBearerRelease_v590ext_IEs;
+static int ett_rrc_RadioBearerRelease_r4_IEs;
+static int ett_rrc_T_dummy_05;
+static int ett_rrc_T_fdd_30;
+static int ett_rrc_T_modeSpecificPhysChInfo_07;
+static int ett_rrc_T_fdd_31;
+static int ett_rrc_RadioBearerRelease_r5_IEs;
+static int ett_rrc_T_dummy_06;
+static int ett_rrc_T_fdd_32;
+static int ett_rrc_T_modeSpecificPhysChInfo_08;
+static int ett_rrc_T_fdd_33;
+static int ett_rrc_RadioBearerRelease_v690ext_IEs;
+static int ett_rrc_RadioBearerRelease_r6_IEs;
+static int ett_rrc_RadioBearerRelease_v6b0ext_IEs;
+static int ett_rrc_RadioBearerRelease_r7_IEs;
+static int ett_rrc_RadioBearerRelease_v770ext_IEs;
+static int ett_rrc_RadioBearerRelease_v780ext_IEs;
+static int ett_rrc_RadioBearerRelease_v7d0ext_IEs;
+static int ett_rrc_RadioBearerRelease_v7f0ext_IEs;
+static int ett_rrc_RadioBearerRelease_v7g0ext_IEs;
+static int ett_rrc_RadioBearerRelease_r8_IEs;
+static int ett_rrc_RadioBearerRelease_v890ext_IEs;
+static int ett_rrc_RadioBearerRelease_v8a0ext_IEs;
+static int ett_rrc_RadioBearerRelease_r9_IEs;
+static int ett_rrc_RadioBearerRelease_v950ext_IEs;
+static int ett_rrc_RadioBearerRelease_v970ext_IEs;
+static int ett_rrc_RadioBearerRelease_v9c0ext_IEs;
+static int ett_rrc_RadioBearerRelease_r10_IEs;
+static int ett_rrc_RadioBearerRelease_vb50ext_IEs;
+static int ett_rrc_RadioBearerRelease_r11_IEs;
+static int ett_rrc_RadioBearerRelease_r12_IEs;
+static int ett_rrc_RadioBearerRelease_r13_IEs;
+static int ett_rrc_RadioBearerRelease_LaterCriticalExtensions_r15_IEs;
+static int ett_rrc_T_r15_02;
+static int ett_rrc_T_nonCriticalExtensions_125;
+static int ett_rrc_T_criticalExtensions_100;
+static int ett_rrc_RadioBearerRelease_r15_IEs;
+static int ett_rrc_RadioBearerReleaseComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_32;
+static int ett_rrc_T_v770NonCriticalExtensions_19;
+static int ett_rrc_T_nonCriticalExtensions_126;
+static int ett_rrc_RadioBearerReleaseComplete_v770ext_IEs;
+static int ett_rrc_RadioBearerReleaseFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_33;
+static int ett_rrc_T_nonCriticalExtensions_127;
+static int ett_rrc_RadioBearerSetup;
+static int ett_rrc_T_r3_16;
+static int ett_rrc_T_v3a0NonCriticalExtensions_07;
+static int ett_rrc_T_laterNonCriticalExtensions_34;
+static int ett_rrc_T_v4b0NonCriticalExtensions_09;
+static int ett_rrc_T_v590NonCriticalExtensions_18;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_09;
+static int ett_rrc_T_v690NonCriticalExtensions_22;
+static int ett_rrc_T_nonCriticalExtensions_128;
+static int ett_rrc_T_later_than_r3_14;
+static int ett_rrc_T_criticalExtensions_101;
+static int ett_rrc_T_r4_08;
+static int ett_rrc_T_v4d0NonCriticalExtensions_08;
+static int ett_rrc_T_v590NonCriticalExtensions_19;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_10;
+static int ett_rrc_T_v690NonCriticalExtensions_23;
+static int ett_rrc_T_nonCriticalExtensions_129;
+static int ett_rrc_T_criticalExtensions_102;
+static int ett_rrc_T_r5_07;
+static int ett_rrc_T_v5d0NonCriticalExtenstions_11;
+static int ett_rrc_T_v690NonCriticalExtensions_24;
+static int ett_rrc_T_nonCriticalExtensions_130;
+static int ett_rrc_T_criticalExtensions_103;
+static int ett_rrc_T_r6_09;
+static int ett_rrc_T_v6b0NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_131;
+static int ett_rrc_T_criticalExtensions_104;
+static int ett_rrc_T_r7_08;
+static int ett_rrc_T_v780NonCriticalExtensions_07;
+static int ett_rrc_T_v820NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_132;
+static int ett_rrc_T_criticalExtensions_105;
+static int ett_rrc_T_r8_09;
+static int ett_rrc_T_v7d0NonCriticalExtensions_10;
+static int ett_rrc_T_v7f0NonCriticalExtensions_11;
+static int ett_rrc_T_v890NonCriticalExtensions_07;
+static int ett_rrc_T_v7g0NonCriticalExtensions_12;
+static int ett_rrc_T_v8a0NonCriticalExtensions_07;
+static int ett_rrc_T_nonCriticalExtensions_133;
+static int ett_rrc_T_criticalExtensions_106;
+static int ett_rrc_T_r9_08;
+static int ett_rrc_T_v950NonCriticalExtensions_06;
+static int ett_rrc_T_v9c0NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_134;
+static int ett_rrc_T_criticalExtensions_107;
+static int ett_rrc_T_r10_08;
+static int ett_rrc_T_v9c0NonCriticalExtensions_09;
+static int ett_rrc_T_vb50NonCriticalExtensions_14;
+static int ett_rrc_T_nonCriticalExtensions_135;
+static int ett_rrc_T_criticalExtensions_108;
+static int ett_rrc_T_r11_09;
+static int ett_rrc_T_nonCriticalExtensions_136;
+static int ett_rrc_T_criticalExtensions_109;
+static int ett_rrc_T_r12_08;
+static int ett_rrc_T_nonCriticalExtensions_137;
+static int ett_rrc_T_criticalExtensions_110;
+static int ett_rrc_T_r13_07;
+static int ett_rrc_T_nonCriticalExtensions_138;
+static int ett_rrc_RadioBearerSetup_r3_IEs;
+static int ett_rrc_T_dummy_07;
+static int ett_rrc_T_fdd_34;
+static int ett_rrc_T_modeSpecificPhysChInfo_09;
+static int ett_rrc_T_fdd_35;
+static int ett_rrc_RadioBearerSetup_v3a0ext;
+static int ett_rrc_RadioBearerSetup_v4b0ext_IEs;
+static int ett_rrc_RadioBearerSetup_v590ext_IEs;
+static int ett_rrc_RadioBearerSetup_v5d0ext_IEs;
+static int ett_rrc_RadioBearerSetup_r4_IEs;
+static int ett_rrc_T_dummy_08;
+static int ett_rrc_T_fdd_36;
+static int ett_rrc_T_modeSpecificPhysChInfo_10;
+static int ett_rrc_T_fdd_37;
+static int ett_rrc_RadioBearerSetup_r5_IEs;
+static int ett_rrc_T_dummy_09;
+static int ett_rrc_T_fdd_38;
+static int ett_rrc_T_modeSpecificPhysChInfo_11;
+static int ett_rrc_T_fdd_39;
+static int ett_rrc_RadioBearerSetup_v690ext_IEs;
+static int ett_rrc_RadioBearerSetup_r6_IEs;
+static int ett_rrc_T_specificationMode_23;
+static int ett_rrc_T_complete_23;
+static int ett_rrc_T_dummy_10;
+static int ett_rrc_RadioBearerSetup_v6b0ext_IEs;
+static int ett_rrc_RadioBearerSetup_r7_IEs;
+static int ett_rrc_T_specificationMode_24;
+static int ett_rrc_T_complete_24;
+static int ett_rrc_RadioBearerSetup_r7_add_ext_IEs;
+static int ett_rrc_T_v7f0NonCriticalExtensions_12;
+static int ett_rrc_T_v7g0NonCriticalExtensions_13;
+static int ett_rrc_T_nonCriticalExtensions_139;
+static int ett_rrc_RadioBearerSetup_v780ext_IEs;
+static int ett_rrc_RadioBearerSetup_v7d0ext_IEs;
+static int ett_rrc_RadioBearerSetup_v7f0ext_IEs;
+static int ett_rrc_RadioBearerSetup_v7g0ext_IEs;
+static int ett_rrc_RadioBearerSetup_r8_IEs;
+static int ett_rrc_RadioBearerSetup_v820ext_IEs;
+static int ett_rrc_RadioBearerSetup_v890ext_IEs;
+static int ett_rrc_RadioBearerSetup_v8a0ext_IEs;
+static int ett_rrc_RadioBearerSetup_r9_IEs;
+static int ett_rrc_RadioBearerSetup_v950ext_IEs;
+static int ett_rrc_RadioBearerSetup_v9c0ext_IEs;
+static int ett_rrc_RadioBearerSetup_r10_IEs;
+static int ett_rrc_RadioBearerSetup_vb50ext_IEs;
+static int ett_rrc_RadioBearerSetup_r11_IEs;
+static int ett_rrc_RadioBearerSetup_r12_IEs;
+static int ett_rrc_RadioBearerSetup_r13_IEs;
+static int ett_rrc_RadioBearerSetup_LaterCriticalExtensions_r15_IEs;
+static int ett_rrc_T_r15_03;
+static int ett_rrc_T_nonCriticalExtensions_140;
+static int ett_rrc_T_criticalExtensions_111;
+static int ett_rrc_RadioBearerSetup_r15_IEs;
+static int ett_rrc_RadioBearerSetupComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_35;
+static int ett_rrc_T_v770NonCriticalExtensions_20;
+static int ett_rrc_T_nonCriticalExtensions_141;
+static int ett_rrc_RadioBearerSetupComplete_v770ext_IEs;
+static int ett_rrc_RadioBearerSetupFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_36;
+static int ett_rrc_T_nonCriticalExtensions_142;
+static int ett_rrc_RRCConnectionReject;
+static int ett_rrc_T_r3_17;
+static int ett_rrc_T_laterNonCriticalExtensions_37;
+static int ett_rrc_T_v690NonCriticalExtensions_25;
+static int ett_rrc_T_v6f0NonCriticalExtensions_01;
+static int ett_rrc_T_v860NonCriticalExtensions_10;
+static int ett_rrc_T_va40NonCriticalExtensions_05;
+static int ett_rrc_T_vb50NonCriticalExtensions_15;
+static int ett_rrc_T_nonCriticalExtensions_143;
+static int ett_rrc_T_later_than_r3_15;
+static int ett_rrc_T_criticalExtensions_112;
+static int ett_rrc_RRCConnectionReject_r3_IEs;
+static int ett_rrc_RRCConnectionReject_v690ext_IEs;
+static int ett_rrc_RRCConnectionReject_v6f0ext_IEs;
+static int ett_rrc_RRCConnectionReject_v860ext_IEs;
+static int ett_rrc_RRCConnectionReject_va40ext_IEs;
+static int ett_rrc_RRCConnectionReject_vb50ext_IEs;
+static int ett_rrc_RRCConnectionRelease;
+static int ett_rrc_T_r3_18;
+static int ett_rrc_T_laterNonCriticalExtensions_38;
+static int ett_rrc_T_v690NonCriticalExtensions_26;
+static int ett_rrc_T_v770NonCriticalExtensions_21;
+static int ett_rrc_T_v860NonCriticalExtensions_11;
+static int ett_rrc_T_va40NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_144;
+static int ett_rrc_T_later_than_r3_16;
+static int ett_rrc_T_criticalExtensions_113;
+static int ett_rrc_T_r4_09;
+static int ett_rrc_T_v4d0NonCriticalExtensions_09;
+static int ett_rrc_T_v690NonCriticalExtensions_27;
+static int ett_rrc_T_v770NonCriticalExtensions_22;
+static int ett_rrc_T_v860NonCriticalExtensions_12;
+static int ett_rrc_T_va40NonCriticalExtensions_07;
+static int ett_rrc_T_vb50NonCriticalExtensions_16;
+static int ett_rrc_T_nonCriticalExtensions_145;
+static int ett_rrc_T_criticalExtensions_114;
+static int ett_rrc_RRCConnectionRelease_r3_IEs;
+static int ett_rrc_RRCConnectionRelease_r4_IEs;
+static int ett_rrc_RRCConnectionRelease_v690ext_IEs;
+static int ett_rrc_RRCConnectionRelease_v770ext_IEs;
+static int ett_rrc_RRCConnectionRelease_v860ext_IEs;
+static int ett_rrc_RRCConnectionRelease_va40ext_IEs;
+static int ett_rrc_RRCConnectionRelease_vb50ext_IEs;
+static int ett_rrc_RRCConnectionRelease_CCCH;
+static int ett_rrc_T_r3_19;
+static int ett_rrc_T_laterNonCriticalExtensions_39;
+static int ett_rrc_T_v690NonCriticalExtensions_28;
+static int ett_rrc_T_v860NonCriticalExtensions_13;
+static int ett_rrc_T_va40NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_146;
+static int ett_rrc_T_later_than_r3_17;
+static int ett_rrc_T_criticalExtensions_115;
+static int ett_rrc_T_r4_10;
+static int ett_rrc_T_v4d0NonCriticalExtensions_10;
+static int ett_rrc_T_v690NonCriticalExtensions_29;
+static int ett_rrc_T_v860NonCriticalExtensions_14;
+static int ett_rrc_T_va40NonCriticalExtensions_09;
+static int ett_rrc_T_nonCriticalExtensions_147;
+static int ett_rrc_T_criticalExtensions_116;
+static int ett_rrc_SEQUENCE_SIZE_1_maxURNTI_Group_OF_GroupReleaseInformation;
+static int ett_rrc_T_criticalExtensions_117;
+static int ett_rrc_T_r5_08;
+static int ett_rrc_T_v690NonCriticalExtensions_30;
+static int ett_rrc_T_v860NonCriticalExtensions_15;
+static int ett_rrc_T_va40NonCriticalExtensions_10;
+static int ett_rrc_T_vd20NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_148;
+static int ett_rrc_T_criticalExtensions_118;
+static int ett_rrc_RRCConnectionRelease_CCCH_r3_IEs;
+static int ett_rrc_RRCConnectionRelease_CCCH_r4_IEs;
+static int ett_rrc_RRCConnectionReleaseComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_40;
+static int ett_rrc_T_nonCriticalExtensions_149;
+static int ett_rrc_RRCConnectionRequest;
+static int ett_rrc_T_v3d0NonCriticalExtensions;
+static int ett_rrc_T_v4b0NonCriticalExtensions_10;
+static int ett_rrc_T_v590NonCriticalExtensions_20;
+static int ett_rrc_T_v690NonCriticalExtensions_31;
+static int ett_rrc_T_v6b0NonCriticalExtensions_09;
+static int ett_rrc_T_v6e0NonCriticalExtensions_01;
+static int ett_rrc_T_v770NonCriticalExtensions_23;
+static int ett_rrc_T_v7b0NonCriticalExtensions_01;
+static int ett_rrc_T_v860NonCriticalExtensions_16;
+static int ett_rrc_T_v7e0NonCriticalExtensions_01;
+static int ett_rrc_T_v7g0NonCriticalExtensions_14;
+static int ett_rrc_T_v920NonCriticalExtensions_02;
+static int ett_rrc_T_v940NonCriticalExtensions;
+static int ett_rrc_RRCConnectionRequest_v3d0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v4b0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v590ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v690ext_IEs;
+static int ett_rrc_T_domainIndicator;
+static int ett_rrc_T_cs_domain;
+static int ett_rrc_RRCConnectionRequest_v6b0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v6e0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v770ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v7b0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v7e0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v7g0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v860ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v920ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v940ext_IEs;
+static int ett_rrc_RRCConnectionRequest_v9b0ext_IEs;
+static int ett_rrc_RRCConnectionRequest_NonCriticalExts_va40_IEs;
+static int ett_rrc_T_v9b0NonCriticalExtensions;
+static int ett_rrc_T_vb50NonCriticalExtensions_17;
+static int ett_rrc_T_vc50NonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_150;
+static int ett_rrc_RRCConnectionRequest_va40ext_IEs;
+static int ett_rrc_RRCConnectionRequest_vb50ext_IEs;
+static int ett_rrc_RRCConnectionRequest_vc50ext_IEs;
+static int ett_rrc_RRCConnectionSetup;
+static int ett_rrc_T_r3_20;
+static int ett_rrc_T_laterNonCriticalExtensions_41;
+static int ett_rrc_T_v4b0NonCriticalExtensions_11;
+static int ett_rrc_T_v590NonCriticalExtensions_21;
+static int ett_rrc_T_v690NonCriticalExtensions_32;
+static int ett_rrc_T_nonCriticalExtensions_151;
+static int ett_rrc_T_later_than_r3_18;
+static int ett_rrc_T_criticalExtensions_119;
+static int ett_rrc_T_r4_11;
+static int ett_rrc_T_v4d0NonCriticalExtensions_11;
+static int ett_rrc_T_v590NonCriticalExtensions_22;
+static int ett_rrc_T_v690NonCriticalExtensions_33;
+static int ett_rrc_T_nonCriticalExtensions_152;
+static int ett_rrc_T_criticalExtensions_120;
+static int ett_rrc_T_r5_09;
+static int ett_rrc_T_v690NonCriticalExtensions_34;
+static int ett_rrc_T_nonCriticalExtensions_153;
+static int ett_rrc_T_criticalExtensions_121;
+static int ett_rrc_T_r6_10;
+static int ett_rrc_T_v6b0NonCriticalExtensions_10;
+static int ett_rrc_T_nonCriticalExtensions_154;
+static int ett_rrc_T_criticalExtensions_122;
+static int ett_rrc_T_r7_09;
+static int ett_rrc_T_v780NonCriticalExtensions_08;
+static int ett_rrc_T_v7d0NonCriticalExtensions_11;
+static int ett_rrc_T_nonCriticalExtensions_155;
+static int ett_rrc_T_criticalExtensions_123;
+static int ett_rrc_T_r8_10;
+static int ett_rrc_T_v7d0NonCriticalExtensions_12;
+static int ett_rrc_T_v890NonCriticalExtensions_08;
+static int ett_rrc_T_v8a0NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_156;
+static int ett_rrc_T_criticalExtensions_124;
+static int ett_rrc_T_r9_09;
+static int ett_rrc_T_v950NonCriticalExtensions_07;
+static int ett_rrc_T_nonCriticalExtensions_157;
+static int ett_rrc_T_criticalExtensions_125;
+static int ett_rrc_T_r10_09;
+static int ett_rrc_T_vaj0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_158;
+static int ett_rrc_T_criticalExtensions_126;
+static int ett_rrc_T_r11_10;
+static int ett_rrc_T_vaj0NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_159;
+static int ett_rrc_T_criticalExtensions_127;
+static int ett_rrc_T_r12_09;
+static int ett_rrc_T_nonCriticalExtensions_160;
+static int ett_rrc_T_criticalExtensions_128;
+static int ett_rrc_RRCConnectionSetup_r3_IEs;
+static int ett_rrc_RRCConnectionSetup_v4b0ext_IEs;
+static int ett_rrc_RRCConnectionSetup_v590ext_IEs;
+static int ett_rrc_RRCConnectionSetup_r4_IEs;
+static int ett_rrc_RRCConnectionSetup_r5_IEs;
+static int ett_rrc_T_specificationMode_25;
+static int ett_rrc_T_complete_25;
+static int ett_rrc_T_preconfiguration_21;
+static int ett_rrc_T_preConfigMode_21;
+static int ett_rrc_T_defaultConfig_21;
+static int ett_rrc_RRCConnectionSetup_v690ext_IEs;
+static int ett_rrc_RRCConnectionSetup_r6_IEs;
+static int ett_rrc_T_specificationMode_26;
+static int ett_rrc_T_complete_26;
+static int ett_rrc_T_preconfiguration_22;
+static int ett_rrc_T_preConfigMode_22;
+static int ett_rrc_T_defaultConfig_22;
+static int ett_rrc_RRCConnectionSetup_v6b0ext_IEs;
+static int ett_rrc_RRCConnectionSetup_r7_IEs;
+static int ett_rrc_T_specificationMode_27;
+static int ett_rrc_T_complete_27;
+static int ett_rrc_T_preconfiguration_23;
+static int ett_rrc_T_preConfigMode_23;
+static int ett_rrc_T_defaultConfig_23;
+static int ett_rrc_RRCConnectionSetup_v780ext_IEs;
+static int ett_rrc_RRCConnectionSetup_v7d0ext_IEs;
+static int ett_rrc_RRCConnectionSetup_r8_IEs;
+static int ett_rrc_T_specificationMode_28;
+static int ett_rrc_T_complete_28;
+static int ett_rrc_T_preconfiguration_24;
+static int ett_rrc_T_preConfigMode_24;
+static int ett_rrc_T_defaultConfig_24;
+static int ett_rrc_RRCConnectionSetup_v890ext_IEs;
+static int ett_rrc_RRCConnectionSetup_v8a0ext_IEs;
+static int ett_rrc_RRCConnectionSetup_r9_IEs;
+static int ett_rrc_T_specificationMode_29;
+static int ett_rrc_T_complete_29;
+static int ett_rrc_T_preconfiguration_25;
+static int ett_rrc_T_preConfigMode_25;
+static int ett_rrc_T_defaultConfig_25;
+static int ett_rrc_RRCConnectionSetup_v950ext_IEs;
+static int ett_rrc_RRCConnectionSetup_r10_IEs;
+static int ett_rrc_T_specificationMode_30;
+static int ett_rrc_T_complete_30;
+static int ett_rrc_T_preconfiguration_26;
+static int ett_rrc_T_preConfigMode_26;
+static int ett_rrc_T_defaultConfig_26;
+static int ett_rrc_RRCConnectionSetup_vaj0ext_IEs;
+static int ett_rrc_RRCConnectionSetup_r11_IEs;
+static int ett_rrc_T_specificationMode_31;
+static int ett_rrc_T_complete_31;
+static int ett_rrc_T_preconfiguration_27;
+static int ett_rrc_T_preConfigMode_27;
+static int ett_rrc_T_defaultConfig_27;
+static int ett_rrc_RRCConnectionSetup_r12_IEs;
+static int ett_rrc_T_specificationMode_32;
+static int ett_rrc_T_complete_32;
+static int ett_rrc_T_preconfiguration_28;
+static int ett_rrc_T_preConfigMode_28;
+static int ett_rrc_T_defaultConfig_28;
+static int ett_rrc_RRCConnectionSetupComplete;
+static int ett_rrc_T_v370NonCriticalExtensions;
+static int ett_rrc_T_v380NonCriticalExtensions;
+static int ett_rrc_T_v3a0NonCriticalExtensions_08;
+static int ett_rrc_T_laterNonCriticalExtensions_42;
+static int ett_rrc_T_v3g0NonCriticalExtensions_01;
+static int ett_rrc_T_v4b0NonCriticalExtensions_12;
+static int ett_rrc_T_v590NonCriticalExtensions_23;
+static int ett_rrc_T_v5c0NonCriticalExtensions;
+static int ett_rrc_T_v690NonCriticalExtensions_35;
+static int ett_rrc_T_v770NonCriticalExtensions_24;
+static int ett_rrc_T_va40NonCriticalExtensions_11;
+static int ett_rrc_T_vb50NonCriticalExtensions_18;
+static int ett_rrc_T_nonCriticalExtensions_161;
+static int ett_rrc_RRCConnectionSetupComplete_v370ext;
+static int ett_rrc_RRCConnectionSetupComplete_v380ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v3a0ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v3g0ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_r3_add_ext_IEs;
+static int ett_rrc_T_v680NonCriticalExtensions;
+static int ett_rrc_T_v7e0NonCriticalExtensions_02;
+static int ett_rrc_T_v7f0NonCriticalExtensions_13;
+static int ett_rrc_T_va40NonCriticalExtensions_12;
+static int ett_rrc_T_nonCriticalExtensions_162;
+static int ett_rrc_RRCConnectionSetupComplete_v4b0ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v590ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v5c0ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v650ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v680ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v690ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v770ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v7e0ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_v7f0ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_va40ext_IEs;
+static int ett_rrc_RRCConnectionSetupCompleteBand_va40ext_IEs;
+static int ett_rrc_RRCConnectionSetupComplete_vb50ext_IEs;
+static int ett_rrc_RRC_FailureInfo;
+static int ett_rrc_T_r3_21;
+static int ett_rrc_T_laterNonCriticalExtensions_43;
+static int ett_rrc_T_nonCriticalExtensions_163;
+static int ett_rrc_T_criticalExtensions_129;
+static int ett_rrc_RRC_FailureInfo_r3_IEs;
+static int ett_rrc_RRCStatus;
+static int ett_rrc_T_laterNonCriticalExtensions_44;
+static int ett_rrc_T_nonCriticalExtensions_164;
+static int ett_rrc_SecurityModeCommand;
+static int ett_rrc_T_r3_22;
+static int ett_rrc_T_laterNonCriticalExtensions_45;
+static int ett_rrc_T_nonCriticalExtensions_165;
+static int ett_rrc_T_later_than_r3_19;
+static int ett_rrc_T_criticalExtensions_130;
+static int ett_rrc_T_r7_10;
+static int ett_rrc_T_nonCriticalExtensions_166;
+static int ett_rrc_T_criticalExtensions_131;
+static int ett_rrc_SecurityModeCommand_r3_IEs;
+static int ett_rrc_SecurityModeCommand_r7_IEs;
+static int ett_rrc_SecurityModeComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_46;
+static int ett_rrc_T_nonCriticalExtensions_167;
+static int ett_rrc_SecurityModeFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_47;
+static int ett_rrc_T_nonCriticalExtensions_168;
+static int ett_rrc_SignallingConnectionRelease;
+static int ett_rrc_T_r3_23;
+static int ett_rrc_T_laterNonCriticalExtensions_48;
+static int ett_rrc_T_va40NonCriticalExtensions_13;
+static int ett_rrc_T_nonCriticalExtensions_169;
+static int ett_rrc_T_later_than_r3_20;
+static int ett_rrc_T_criticalExtensions_132;
+static int ett_rrc_SignallingConnectionRelease_r3_IEs;
+static int ett_rrc_SignallingConnectionRelease_va40ext_IEs;
+static int ett_rrc_SignallingConnectionReleaseIndication;
+static int ett_rrc_T_laterNonCriticalExtensions_49;
+static int ett_rrc_T_v860nonCriticalExtentions;
+static int ett_rrc_T_nonCriticalExtensions_170;
+static int ett_rrc_SignallingConnectionReleaseIndication_v860ext;
+static int ett_rrc_SystemInformation_BCH;
+static int ett_rrc_T_payload;
+static int ett_rrc_T_lastAndFirst;
+static int ett_rrc_T_lastAndComplete;
+static int ett_rrc_T_lastAndCompleteAndFirst;
+static int ett_rrc_T_completeAndFirst;
+static int ett_rrc_SystemInformation2_BCH;
+static int ett_rrc_T_segmentCombination;
+static int ett_rrc_T_combination5;
+static int ett_rrc_T_combination6;
+static int ett_rrc_T_combination7;
+static int ett_rrc_T_combination9;
+static int ett_rrc_SystemInformation_FACH;
+static int ett_rrc_T_payload_01;
+static int ett_rrc_T_lastAndFirst_01;
+static int ett_rrc_T_lastAndComplete_01;
+static int ett_rrc_T_lastAndCompleteAndFirst_01;
+static int ett_rrc_T_completeAndFirst_01;
+static int ett_rrc_FirstSegment;
+static int ett_rrc_FirstSegment2;
+static int ett_rrc_FirstSegmentShort;
+static int ett_rrc_FirstSegmentShort2;
+static int ett_rrc_SubsequentSegment;
+static int ett_rrc_SubsequentSegment2;
+static int ett_rrc_LastSegment;
+static int ett_rrc_LastSegment2;
+static int ett_rrc_LastSegmentShort;
+static int ett_rrc_LastSegmentShort2;
+static int ett_rrc_CompleteSIB_List;
+static int ett_rrc_CompleteSIB2_List;
+static int ett_rrc_CompleteSIB;
+static int ett_rrc_CompleteSIB2;
+static int ett_rrc_CompleteSIBshort;
+static int ett_rrc_CompleteSIBshort2;
+static int ett_rrc_SystemInformationChangeIndication;
+static int ett_rrc_T_laterNonCriticalExtensions_50;
+static int ett_rrc_T_v860NonCriticalExtensions_17;
+static int ett_rrc_T_vc50NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_171;
+static int ett_rrc_SystemInformationChangeIndication_v860ext_IEs;
+static int ett_rrc_SystemInformationChangeIndication_vc50ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration;
+static int ett_rrc_T_r3_24;
+static int ett_rrc_T_v3a0NonCriticalExtensions_09;
+static int ett_rrc_T_laterNonCriticalExtensions_51;
+static int ett_rrc_T_v4b0NonCriticalExtensions_13;
+static int ett_rrc_T_v590NonCriticalExtensions_24;
+static int ett_rrc_T_v690NonCriticalExtensions_36;
+static int ett_rrc_T_v770NonCriticalExtensions_25;
+static int ett_rrc_T_nonCriticalExtensions_172;
+static int ett_rrc_T_later_than_r3_21;
+static int ett_rrc_T_criticalExtensions_133;
+static int ett_rrc_T_r4_12;
+static int ett_rrc_T_v4d0NonCriticalExtensions_12;
+static int ett_rrc_T_v590NonCriticalExtensions_25;
+static int ett_rrc_T_v690NonCriticalExtensions_37;
+static int ett_rrc_T_v770NonCriticalExtensions_26;
+static int ett_rrc_T_nonCriticalExtensions_173;
+static int ett_rrc_T_criticalExtensions_134;
+static int ett_rrc_T_r5_10;
+static int ett_rrc_T_v690NonCriticalExtensions_38;
+static int ett_rrc_T_v770NonCriticalExtensions_27;
+static int ett_rrc_T_nonCriticalExtensions_174;
+static int ett_rrc_T_criticalExtensions_135;
+static int ett_rrc_T_r6_11;
+static int ett_rrc_T_v6b0NonCriticalExtensions_11;
+static int ett_rrc_T_v770NonCriticalExtensions_28;
+static int ett_rrc_T_nonCriticalExtensions_175;
+static int ett_rrc_T_criticalExtensions_136;
+static int ett_rrc_T_r7_11;
+static int ett_rrc_T_v780NonCriticalExtensions_09;
+static int ett_rrc_T_v7d0NonCriticalExtensions_13;
+static int ett_rrc_T_v7f0NonCriticalExtensions_14;
+static int ett_rrc_T_v7g0NonCriticalExtensions_15;
+static int ett_rrc_T_nonCriticalExtensions_176;
+static int ett_rrc_T_criticalExtensions_137;
+static int ett_rrc_T_r8_11;
+static int ett_rrc_T_v7d0NonCriticalExtensions_14;
+static int ett_rrc_T_v7f0NonCriticalExtensions_15;
+static int ett_rrc_T_v890NonCriticalExtensions_09;
+static int ett_rrc_T_v7g0NonCriticalExtensions_16;
+static int ett_rrc_T_v8a0NonCriticalExtensions_09;
+static int ett_rrc_T_nonCriticalExtensions_177;
+static int ett_rrc_T_criticalExtensions_138;
+static int ett_rrc_T_r9_10;
+static int ett_rrc_T_v950NonCriticalExtensions_08;
+static int ett_rrc_T_v9c0NonCriticalExtensions_10;
+static int ett_rrc_T_nonCriticalExtensions_178;
+static int ett_rrc_T_criticalExtensions_139;
+static int ett_rrc_T_r10_10;
+static int ett_rrc_T_v9c0NonCriticalExtensions_11;
+static int ett_rrc_T_vb50NonCriticalExtensions_19;
+static int ett_rrc_T_nonCriticalExtensions_179;
+static int ett_rrc_T_criticalExtensions_140;
+static int ett_rrc_T_r11_11;
+static int ett_rrc_T_nonCriticalExtensions_180;
+static int ett_rrc_T_criticalExtensions_141;
+static int ett_rrc_T_r12_10;
+static int ett_rrc_T_nonCriticalExtensions_181;
+static int ett_rrc_T_criticalExtensions_142;
+static int ett_rrc_T_r13_08;
+static int ett_rrc_T_nonCriticalExtensions_182;
+static int ett_rrc_T_criticalExtensions_143;
+static int ett_rrc_TransportChannelReconfiguration_r3_IEs;
+static int ett_rrc_T_dummy_11;
+static int ett_rrc_T_fdd_40;
+static int ett_rrc_T_modeSpecificPhysChInfo_12;
+static int ett_rrc_T_fdd_41;
+static int ett_rrc_TransportChannelReconfiguration_v3a0ext;
+static int ett_rrc_TransportChannelReconfiguration_v4b0ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v590ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r4_IEs;
+static int ett_rrc_T_dummy_12;
+static int ett_rrc_T_fdd_42;
+static int ett_rrc_T_modeSpecificPhysChInfo_13;
+static int ett_rrc_T_fdd_43;
+static int ett_rrc_TransportChannelReconfiguration_r5_IEs;
+static int ett_rrc_T_dummy_13;
+static int ett_rrc_T_fdd_44;
+static int ett_rrc_T_modeSpecificPhysChInfo_14;
+static int ett_rrc_T_fdd_45;
+static int ett_rrc_TransportChannelReconfiguration_v690ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r6_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v6b0ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r7_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v770ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v780ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v7d0ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v7f0ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v7g0ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r8_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v890ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v8a0ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r9_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v950ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_v9c0ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r10_IEs;
+static int ett_rrc_TransportChannelReconfiguration_vb50ext_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r11_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r12_IEs;
+static int ett_rrc_TransportChannelReconfiguration_r13_IEs;
+static int ett_rrc_TransportChannelReconfigurationComplete;
+static int ett_rrc_T_laterNonCriticalExtensions_52;
+static int ett_rrc_T_v770NonCriticalExtensions_29;
+static int ett_rrc_T_nonCriticalExtensions_183;
+static int ett_rrc_TransportChannelReconfigurationComplete_v770ext_IEs;
+static int ett_rrc_TransportChannelReconfigurationFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_53;
+static int ett_rrc_T_nonCriticalExtensions_184;
+static int ett_rrc_TransportFormatCombinationControl;
+static int ett_rrc_T_modeSpecificInfo_16;
+static int ett_rrc_T_tdd_10;
+static int ett_rrc_T_laterNonCriticalExtensions_54;
+static int ett_rrc_T_v820NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_185;
+static int ett_rrc_TransportFormatCombinationControl_v820ext_IEs;
+static int ett_rrc_TransportFormatCombinationControlFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_55;
+static int ett_rrc_T_nonCriticalExtensions_186;
+static int ett_rrc_UECapabilityEnquiry;
+static int ett_rrc_T_r3_25;
+static int ett_rrc_T_laterNonCriticalExtensions_56;
+static int ett_rrc_T_v4b0NonCriticalExtensions_14;
+static int ett_rrc_T_v590NonCriticalExtensions_26;
+static int ett_rrc_T_v770NonCriticalExtensions_30;
+static int ett_rrc_T_v860NonCriticalExtensions_18;
+static int ett_rrc_T_vaj0NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_187;
+static int ett_rrc_T_later_than_r3_22;
+static int ett_rrc_T_criticalExtensions_144;
+static int ett_rrc_UECapabilityEnquiry_r3_IEs;
+static int ett_rrc_UECapabilityEnquiry_v4b0ext_IEs;
+static int ett_rrc_UECapabilityEnquiry_v590ext_IEs;
+static int ett_rrc_UECapabilityEnquiry_v770ext_IEs;
+static int ett_rrc_UECapabilityEnquiry_v860ext_IEs;
+static int ett_rrc_UECapabilityEnquiry_vaj0ext_IEs;
+static int ett_rrc_UECapabilityInformation;
+static int ett_rrc_T_v370NonCriticalExtensions_01;
+static int ett_rrc_T_v380NonCriticalExtensions_01;
+static int ett_rrc_T_v3a0NonCriticalExtensions_10;
+static int ett_rrc_T_laterNonCriticalExtensions_57;
+static int ett_rrc_T_v4b0NonCriticalExtensions_15;
+static int ett_rrc_T_v590NonCriticalExtensions_27;
+static int ett_rrc_T_v5c0NonCriticalExtensions_01;
+static int ett_rrc_T_v690NonCriticalExtensions_39;
+static int ett_rrc_T_nonCriticalExtensions_188;
+static int ett_rrc_UECapabilityInformation_v370ext;
+static int ett_rrc_UECapabilityInformation_v380ext_IEs;
+static int ett_rrc_UECapabilityInformation_v3a0ext_IEs;
+static int ett_rrc_UECapabilityInformation_r3_add_ext_IEs;
+static int ett_rrc_T_v680NonCriticalExtensions_01;
+static int ett_rrc_T_v7e0NonCriticalExtensions_03;
+static int ett_rrc_T_v7f0NonCriticalExtensions_16;
+static int ett_rrc_T_va40NonCriticalExtensions_14;
+static int ett_rrc_T_nonCriticalExtensions_189;
+static int ett_rrc_UECapabilityInformation_v4b0ext;
+static int ett_rrc_UECapabilityInformation_v590ext;
+static int ett_rrc_UECapabilityInformation_v5c0ext;
+static int ett_rrc_UECapabilityInformation_v650ext_IEs;
+static int ett_rrc_UECapabilityInformation_v680ext_IEs;
+static int ett_rrc_UECapabilityInformation_v690ext_IEs;
+static int ett_rrc_UECapabilityInformation_v7e0ext_IEs;
+static int ett_rrc_UECapabilityInformation_v7f0ext_IEs;
+static int ett_rrc_UECapabilityInformation_va40ext_IEs;
+static int ett_rrc_UECapabilityInformationConfirm;
+static int ett_rrc_T_r3_26;
+static int ett_rrc_T_laterNonCriticalExtensions_58;
+static int ett_rrc_T_v770NonCriticalExtensions_31;
+static int ett_rrc_T_nonCriticalExtensions_190;
+static int ett_rrc_T_later_than_r3_23;
+static int ett_rrc_T_criticalExtensions_145;
+static int ett_rrc_UECapabilityInformationConfirm_r3_IEs;
+static int ett_rrc_UECapabilityInformationConfirm_v770ext_IEs;
+static int ett_rrc_UplinkDirectTransfer;
+static int ett_rrc_T_laterNonCriticalExtensions_59;
+static int ett_rrc_T_v690NonCriticalExtensions_40;
+static int ett_rrc_T_v7g0NonCriticalExtensions_17;
+static int ett_rrc_T_vb50NonCriticalExtensions_20;
+static int ett_rrc_T_vc50NonCriticalExtensions_07;
+static int ett_rrc_T_nonCriticalExtensions_191;
+static int ett_rrc_UplinkDirectTransfer_v690ext_IEs;
+static int ett_rrc_UplinkDirectTransfer_v7g0ext_IEs;
+static int ett_rrc_UplinkDirectTransfer_vb50ext_IEs;
+static int ett_rrc_UplinkDirectTransfer_vc50ext_IEs;
+static int ett_rrc_UplinkPhysicalChannelControl;
+static int ett_rrc_T_r3_27;
+static int ett_rrc_T_laterNonCriticalExtensions_60;
+static int ett_rrc_T_v4b0NonCriticalExtensions_16;
+static int ett_rrc_T_noncriticalExtensions;
+static int ett_rrc_T_later_than_r3_24;
+static int ett_rrc_T_criticalExtensions_146;
+static int ett_rrc_T_r4_13;
+static int ett_rrc_T_v4d0NonCriticalExtensions_13;
+static int ett_rrc_T_v690NonCriticalExtensions_41;
+static int ett_rrc_T_nonCriticalExtensions_192;
+static int ett_rrc_T_criticalExtensions_147;
+static int ett_rrc_T_r5_11;
+static int ett_rrc_T_v690NonCriticalExtensions_42;
+static int ett_rrc_T_v6a0NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_193;
+static int ett_rrc_T_criticalExtensions_148;
+static int ett_rrc_T_r7_12;
+static int ett_rrc_T_nonCriticalExtensions_194;
+static int ett_rrc_T_criticalExtensions_149;
+static int ett_rrc_UplinkPhysicalChannelControl_r3_IEs;
+static int ett_rrc_UplinkPhysicalChannelControl_v4b0ext_IEs;
+static int ett_rrc_UplinkPhysicalChannelControl_r4_IEs;
+static int ett_rrc_T_tddOption;
+static int ett_rrc_T_tdd384_09;
+static int ett_rrc_T_tdd128_09;
+static int ett_rrc_UplinkPhysicalChannelControl_r5_IEs;
+static int ett_rrc_T_tddOption_01;
+static int ett_rrc_T_tdd384_10;
+static int ett_rrc_T_tdd128_10;
+static int ett_rrc_UplinkPhysicalChannelControl_v690ext_IEs;
+static int ett_rrc_UplinkPhysicalChannelControl_v6a0ext_IEs;
+static int ett_rrc_UplinkPhysicalChannelControl_r7_IEs;
+static int ett_rrc_T_tddOption_02;
+static int ett_rrc_T_tdd384_11;
+static int ett_rrc_T_tdd768_06;
+static int ett_rrc_T_tdd128_11;
+static int ett_rrc_URAUpdate;
+static int ett_rrc_T_laterNonCriticalExtensions_61;
+static int ett_rrc_T_v770NonCriticalExtensions_32;
+static int ett_rrc_T_v860NonCriticalExtensions_19;
+static int ett_rrc_T_va40NonCriticalExtensions_15;
+static int ett_rrc_T_nonCriticalExtensions_195;
+static int ett_rrc_URAUpdate_r3_add_ext_IEs;
+static int ett_rrc_T_nonCriticalExtensions_196;
+static int ett_rrc_UraUpdate_v770ext_IEs;
+static int ett_rrc_URAUpdate_v7e0ext_IEs;
+static int ett_rrc_URAUpdate_v860ext_IEs;
+static int ett_rrc_URAUpdate_va40ext_IEs;
+static int ett_rrc_URAUpdateConfirm;
+static int ett_rrc_T_r3_28;
+static int ett_rrc_T_laterNonCriticalExtensions_62;
+static int ett_rrc_T_v690NonCriticalExtensions_43;
+static int ett_rrc_T_nonCriticalExtensions_197;
+static int ett_rrc_T_later_than_r3_25;
+static int ett_rrc_T_criticalExtensions_150;
+static int ett_rrc_T_r5_12;
+static int ett_rrc_T_v690NonCriticalExtensions_44;
+static int ett_rrc_T_nonCriticalExtensions_198;
+static int ett_rrc_T_criticalExtensions_151;
+static int ett_rrc_T_r7_13;
+static int ett_rrc_T_v860NonCriticalExtensions_20;
+static int ett_rrc_T_nonCriticalExtensions_199;
+static int ett_rrc_T_criticalExtensions_152;
+static int ett_rrc_URAUpdateConfirm_r3_IEs;
+static int ett_rrc_URAUpdateConfirm_r5_IEs;
+static int ett_rrc_URAUpdateConfirm_v690ext_IEs;
+static int ett_rrc_URAUpdateConfirm_r7_IEs;
+static int ett_rrc_URAUpdateConfirm_v860ext_IEs;
+static int ett_rrc_URAUpdateConfirm_CCCH;
+static int ett_rrc_T_r3_29;
+static int ett_rrc_T_laterNonCriticalExtensions_63;
+static int ett_rrc_T_v690NonCriticalExtensions_45;
+static int ett_rrc_T_v860NonCriticalExtensions_21;
+static int ett_rrc_T_nonCriticalExtensions_200;
+static int ett_rrc_T_later_than_r3_26;
+static int ett_rrc_T_criticalExtensions_153;
+static int ett_rrc_URAUpdateConfirm_CCCH_r3_IEs;
+static int ett_rrc_UTRANMobilityInformation;
+static int ett_rrc_T_r3_30;
+static int ett_rrc_T_v3a0NonCriticalExtensions_11;
+static int ett_rrc_T_laterNonCriticalExtensions_64;
+static int ett_rrc_T_v690NonCriticalExtensions_46;
+static int ett_rrc_T_v860NonCriticalExtentions;
+static int ett_rrc_T_nonCriticalExtensions_201;
+static int ett_rrc_T_later_than_r3_27;
+static int ett_rrc_T_criticalExtensions_154;
+static int ett_rrc_T_r5_13;
+static int ett_rrc_T_v690NonCriticalExtensions_47;
+static int ett_rrc_T_v860NonCriticalExtentions_01;
+static int ett_rrc_T_nonCriticalExtensions_202;
+static int ett_rrc_T_criticalExtensions_155;
+static int ett_rrc_T_r7_14;
+static int ett_rrc_T_v860NonCriticalExtensions_22;
+static int ett_rrc_T_vb50NonCriticalExtentions;
+static int ett_rrc_T_nonCriticalExtensions_203;
+static int ett_rrc_T_criticalExtensions_156;
+static int ett_rrc_T_r11_12;
+static int ett_rrc_T_nonCriticalExtensions_204;
+static int ett_rrc_T_criticalExtensions_157;
+static int ett_rrc_T_r12_11;
+static int ett_rrc_T_nonCriticalExtensions_205;
+static int ett_rrc_T_criticalExtensions_158;
+static int ett_rrc_T_r13_09;
+static int ett_rrc_T_nonCriticalExtensions_206;
+static int ett_rrc_T_criticalExtensions_159;
+static int ett_rrc_UTRANMobilityInformation_r3_IEs;
+static int ett_rrc_T_nonCriticalExtensions_207;
+static int ett_rrc_UTRANMobilityInformation_v3a0ext_IEs;
+static int ett_rrc_UTRANMobilityInformation_r5_IEs;
+static int ett_rrc_UtranMobilityInformation_v690ext_IEs;
+static int ett_rrc_UTRANMobilityInformation_r7_IEs;
+static int ett_rrc_UTRANMobilityInformation_v860ext1_IEs;
+static int ett_rrc_UTRANMobilityInformation_v860ext2_IEs;
+static int ett_rrc_UTRANMobilityInformation_vb50ext_IEs;
+static int ett_rrc_UTRANMobilityInformation_r11_IEs;
+static int ett_rrc_UTRANMobilityInformation_r12_IEs;
+static int ett_rrc_UTRANMobilityInformation_r13_IEs;
+static int ett_rrc_UTRANMobilityInformationConfirm;
+static int ett_rrc_T_laterNonCriticalExtensions_65;
+static int ett_rrc_T_v770NonCriticalExtension_01;
+static int ett_rrc_T_va40NonCriticalExtensions_16;
+static int ett_rrc_T_nonCriticalExtensions_208;
+static int ett_rrc_UTRANMobilityInformationConfirm_v770ext_IEs;
+static int ett_rrc_UTRANMobilityInformationConfirm_va40ext_IEs;
+static int ett_rrc_UTRANMobilityInformationFailure;
+static int ett_rrc_T_laterNonCriticalExtensions_66;
+static int ett_rrc_T_nonCriticalExtensions_209;
+static int ett_rrc_MBMSAccessInformation;
+static int ett_rrc_T_nonCriticalExtensions_210;
+static int ett_rrc_MBMSCommonPTMRBInformation;
+static int ett_rrc_T_v770NonCriticalExtensions_33;
+static int ett_rrc_T_v780NonCriticalExtensions_10;
+static int ett_rrc_T_v860NonCriticalExtensions_23;
+static int ett_rrc_T_nonCriticalExtensions_211;
+static int ett_rrc_MBMSCommonPTMRBInformation_v770ext_IEs;
+static int ett_rrc_MBMSCommonPTMRBInformation_v780ext_IEs;
+static int ett_rrc_MBMSCommonPTMRBInformation_v860ext_IEs;
+static int ett_rrc_MBMSCurrentCellPTMRBInformation;
+static int ett_rrc_T_v770NonCriticalExtensions_34;
+static int ett_rrc_T_nonCriticalExtensions_212;
+static int ett_rrc_MBMSCurrentCellPTMRBInfo_v770ext_IEs;
+static int ett_rrc_MBMSGeneralInformation;
+static int ett_rrc_T_v6b0NonCriticalExtensions_12;
+static int ett_rrc_T_v770NonCriticalExtensions_35;
+static int ett_rrc_T_v860NonCriticalExtensions_24;
+static int ett_rrc_T_v890NoncriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_213;
+static int ett_rrc_MBMSGeneralInformation_v6b0ext_IEs;
+static int ett_rrc_MBMSGeneralInformation_v770ext_IEs;
+static int ett_rrc_MBMSGeneralInformation_v860ext_IEs;
+static int ett_rrc_MBMSGeneralInformation_v890ext_IEs;
+static int ett_rrc_MBMSModificationRequest;
+static int ett_rrc_T_v6b0NonCriticalExtensions_13;
+static int ett_rrc_T_v6f0NonCriticalExtensions_02;
+static int ett_rrc_T_nonCriticalExtensions_214;
+static int ett_rrc_MBMSModificationRequest_v6b0ext_IEs;
+static int ett_rrc_MBMSModificationRequest_v6f0ext_IEs;
+static int ett_rrc_MBMSModifiedServicesInformation;
+static int ett_rrc_T_v770NonCriticalExtensions_36;
+static int ett_rrc_T_v7c0NonCriticalExtensions;
+static int ett_rrc_T_nonCriticalExtensions_215;
+static int ett_rrc_MBMSModifiedServicesInformation_v770ext_IEs;
+static int ett_rrc_MBMSModifiedServicesInformation_v7c0ext_IEs;
+static int ett_rrc_MBMSNeighbouringCellPTMRBInformation;
+static int ett_rrc_T_v770NonCriticalExtensions_37;
+static int ett_rrc_T_nonCriticalExtensions_216;
+static int ett_rrc_MBMSNeighbouringCellPTMRBInformation_v770ext_IEs;
+static int ett_rrc_MBMSSchedulingInformation;
+static int ett_rrc_T_nonCriticalExtensions_217;
+static int ett_rrc_MBMSUnmodifiedServicesInformation;
+static int ett_rrc_T_v770NonCriticalExtensions_38;
+static int ett_rrc_T_nonCriticalExtensions_218;
+static int ett_rrc_MBMSUnmodifiedServicesInformation_v770ext_IEs;
+static int ett_rrc_System_Information_Container;
+static int ett_rrc_T_vb50NonCriticalExtensions_21;
+static int ett_rrc_T_vc50NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_219;
+static int ett_rrc_System_Information_Container_vb50ext_IEs;
+static int ett_rrc_System_Information_Container_vc50ext_IEs;
+static int ett_rrc_LoggingMeasurementConfiguration;
+static int ett_rrc_T_criticalExtensions_160;
+static int ett_rrc_T_r10_11;
+static int ett_rrc_T_nonCriticalExtensions_220;
+static int ett_rrc_T_criticalExtensions_161;
+static int ett_rrc_T_r11_13;
+static int ett_rrc_T_nonCriticalExtensions_221;
+static int ett_rrc_T_criticalExtensions_162;
+static int ett_rrc_LoggingMeasurementConfiguration_r10_IEs;
+static int ett_rrc_LoggingMeasurementConfiguration_r11_IEs;
+static int ett_rrc_UEInformationResponse;
+static int ett_rrc_T_vb50NonCriticalExtensions_22;
+static int ett_rrc_T_vbb0NonCriticalExtensions;
+static int ett_rrc_T_vc50NonCriticalExtensions_09;
+static int ett_rrc_T_nonCriticalExtensions_222;
+static int ett_rrc_UEInformationResponse_vb50ext_IEs;
+static int ett_rrc_UEInformationResponse_vbb0ext_IEs;
+static int ett_rrc_UEInformationResponse_vc50ext_IEs;
+static int ett_rrc_UEInformationRequest;
+static int ett_rrc_T_criticalExtensions_163;
+static int ett_rrc_T_r10_12;
+static int ett_rrc_T_nonCriticalExtensions_223;
+static int ett_rrc_T_criticalExtensions_164;
+static int ett_rrc_T_r11_14;
+static int ett_rrc_T_nonCriticalExtensions_224;
+static int ett_rrc_T_criticalExtensions_165;
+static int ett_rrc_UEInformationRequest_r10_IEs;
+static int ett_rrc_UEInformationRequest_r11_IEs;
+static int ett_rrc_CN_DomainInformation;
+static int ett_rrc_CN_DomainInformationFull;
+static int ett_rrc_CN_DomainInformationList;
+static int ett_rrc_CN_DomainInformationListFull;
+static int ett_rrc_CN_DomainSysInfo;
+static int ett_rrc_T_cn_Type;
+static int ett_rrc_CN_DomainSysInfoList;
+static int ett_rrc_CN_InformationInfo;
+static int ett_rrc_CN_InformationInfo_r6;
+static int ett_rrc_CN_InformationInfoFull;
+static int ett_rrc_DomainSpecificEAB_Parameters;
+static int ett_rrc_EAB_AccessClassBarredList;
+static int ett_rrc_EAB_Configuration;
+static int ett_rrc_EAB_Parameters;
+static int ett_rrc_EAB_ParametersPerPLMN;
+static int ett_rrc_EAB_ParametersPerPLMN_List;
+static int ett_rrc_Ec_N0forANR;
+static int ett_rrc_Gsm_map_IDNNS;
+static int ett_rrc_T_routingbasis;
+static int ett_rrc_T_localPTMSI;
+static int ett_rrc_T_tMSIofsamePLMN;
+static int ett_rrc_T_tMSIofdifferentPLMN;
+static int ett_rrc_T_iMSIresponsetopaging;
+static int ett_rrc_T_iMSIcauseUEinitiatedEvent;
+static int ett_rrc_T_iMEI;
+static int ett_rrc_T_spare2_01;
+static int ett_rrc_T_spare1_01;
+static int ett_rrc_IMEI;
+static int ett_rrc_IMSI_GSM_MAP;
+static int ett_rrc_IntraDomainNasNodeSelector;
+static int ett_rrc_T_version;
+static int ett_rrc_T_release99;
+static int ett_rrc_T_cn_Type_01;
+static int ett_rrc_T_later;
+static int ett_rrc_LAI;
+static int ett_rrc_LocationRegistrationAccessClassBarredList;
+static int ett_rrc_LocationRegistrationParameters;
+static int ett_rrc_MCC;
+static int ett_rrc_MNC;
+static int ett_rrc_MultiplePLMN_List_r6;
+static int ett_rrc_SEQUENCE_SIZE_1_5_OF_PLMN_IdentityWithOptionalMCC_r6;
+static int ett_rrc_PagingPermissionWithAccessControlForSharedNetwork;
+static int ett_rrc_PagingPermissionWithAccessControlList;
+static int ett_rrc_PagingPermissionWithAccessControlParameters;
+static int ett_rrc_PLMN_Identity;
+static int ett_rrc_PLMN_IdentityWithOptionalMCC_r6;
+static int ett_rrc_PLMN_Type;
+static int ett_rrc_T_gsm_MAP;
+static int ett_rrc_T_ansi_41;
+static int ett_rrc_T_gsm_MAP_and_ANSI_41;
+static int ett_rrc_RAB_Identity;
+static int ett_rrc_RAI;
+static int ett_rrc_AccessClassBarredList;
+static int ett_rrc_CellAccessRestriction;
+static int ett_rrc_CellAccessRestriction_v870ext;
+static int ett_rrc_CellBarred;
+static int ett_rrc_T_barred;
+static int ett_rrc_CellIdentity_PerRL_List;
+static int ett_rrc_CellIDListItem;
+static int ett_rrc_CellSelectReselectInfoSIB_3_4;
+static int ett_rrc_T_cellSelectQualityMeasure;
+static int ett_rrc_T_cpich_Ec_N0;
+static int ett_rrc_T_modeSpecificInfo_17;
+static int ett_rrc_T_fdd_46;
+static int ett_rrc_T_tdd_11;
+static int ett_rrc_CSG_DedicatedFrequencyInfoList;
+static int ett_rrc_CSG_PSCSplitInfo;
+static int ett_rrc_DedicatedWLANOffloadInformation;
+static int ett_rrc_T_configurationInfo;
+static int ett_rrc_T_newConfiguration;
+static int ett_rrc_DomainSpecificAccessRestrictionForSharedNetwork_v670ext;
+static int ett_rrc_DomainSpecificAccessRestrictionList_v670ext;
+static int ett_rrc_DomainSpecificAccessRestrictionParam_v670ext;
+static int ett_rrc_DomainSpecificAccessRestriction_v670ext;
+static int ett_rrc_T_restriction;
+static int ett_rrc_Mapping;
+static int ett_rrc_Mapping_LCR_r4;
+static int ett_rrc_MappingFunctionParameter;
+static int ett_rrc_MappingFunctionParameterList;
+static int ett_rrc_MappingInfo;
+static int ett_rrc_DedicatedPriorityInformation;
+static int ett_rrc_T_action;
+static int ett_rrc_T_configureDedicatedPriorities;
+static int ett_rrc_DedicatedPriorityInformation_r11;
+static int ett_rrc_T_action_01;
+static int ett_rrc_T_configureDedicatedPriorities_01;
+static int ett_rrc_DedicatedPriorityInformation_r13;
+static int ett_rrc_T_action_02;
+static int ett_rrc_T_configureDedicatedPriorities_02;
+static int ett_rrc_PriorityLevel;
+static int ett_rrc_T_radioAccessTechnology;
+static int ett_rrc_T_utraFDD;
+static int ett_rrc_T_utraFDD_item;
+static int ett_rrc_T_utraTDD;
+static int ett_rrc_T_utraTDD_item;
+static int ett_rrc_T_eutra;
+static int ett_rrc_T_eutra_item;
+static int ett_rrc_T_gsm_01;
+static int ett_rrc_PriorityLevel_r11;
+static int ett_rrc_T_radioAccessTechnology_01;
+static int ett_rrc_T_utraFDD_01;
+static int ett_rrc_T_utraFDD_item_01;
+static int ett_rrc_T_utraTDD_01;
+static int ett_rrc_T_utraTDD_item_01;
+static int ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_OF_EARFCNRange;
+static int ett_rrc_T_gsm_02;
+static int ett_rrc_PriorityLevel_r13;
+static int ett_rrc_T_radioAccessTechnology_02;
+static int ett_rrc_T_utraFDD_02;
+static int ett_rrc_T_utraFDD_item_02;
+static int ett_rrc_T_utraTDD_02;
+static int ett_rrc_T_utraTDD_item_02;
+static int ett_rrc_T_gsm_03;
+static int ett_rrc_PriorityLevelList;
+static int ett_rrc_PriorityLevelList_r11;
+static int ett_rrc_PriorityLevelList_r13;
+static int ett_rrc_RAT_FDD_Info;
+static int ett_rrc_RAT_FDD_InfoList;
+static int ett_rrc_RAT_TDD_Info;
+static int ett_rrc_RAT_TDD_InfoList;
+static int ett_rrc_URA_IdentityList;
+static int ett_rrc_BackoffControlParams;
+static int ett_rrc_CapabilityUpdateRequirement;
+static int ett_rrc_CapabilityUpdateRequirement_r4_ext;
+static int ett_rrc_CapabilityUpdateRequirement_r4;
+static int ett_rrc_CapabilityUpdateRequirement_r5;
+static int ett_rrc_CapabilityUpdateRequirement_v770ext;
+static int ett_rrc_CapabilityUpdateRequirement_r7;
+static int ett_rrc_CapabilityUpdateRequirement_v860ext;
+static int ett_rrc_CapabilityUpdateRequirement_r8;
+static int ett_rrc_CapabilityUpdateRequirement_vaj0ext;
+static int ett_rrc_CapabilityUpdateRequirement_r12;
+static int ett_rrc_CipheringModeCommand;
+static int ett_rrc_CipheringModeCommand_r7;
+static int ett_rrc_CipheringModeInfo;
+static int ett_rrc_CipheringModeInfo_r7;
+static int ett_rrc_CN_PagedUE_Identity;
+static int ett_rrc_CompressedModeMeasCapability;
+static int ett_rrc_CompressedModeMeasCapability_LCR_r4;
+static int ett_rrc_CompressedModeMeasCapability_v860ext;
+static int ett_rrc_CompressedModeMeasCapability_v920ext;
+static int ett_rrc_CompressedModeMeasCapability_va40ext;
+static int ett_rrc_CompressedModeMeasCapabEUTRA;
+static int ett_rrc_CompressedModeMeasCapabEUTRAExt;
+static int ett_rrc_CompressedModeMeasCapabEUTRAExt2;
+static int ett_rrc_CompressedModeMeasCapabEUTRAList;
+static int ett_rrc_CompressedModeMeasCapabEUTRAList2;
+static int ett_rrc_CompressedModeMeasCapabEUTRAList3;
+static int ett_rrc_CompressedModeMeasCapabFDDList;
+static int ett_rrc_CompressedModeMeasCapabFDDList2;
+static int ett_rrc_CompressedModeMeasCapabFDDList3;
+static int ett_rrc_CompressedModeMeasCapabFDDList_ext;
+static int ett_rrc_CompressedModeMeasCapabFDD;
+static int ett_rrc_CompressedModeMeasCapabFDD2;
+static int ett_rrc_CompressedModeMeasCapabFDD3;
+static int ett_rrc_CompressedModeMeasCapabFDD_ext;
+static int ett_rrc_CompressedModeMeasCapabTDDList;
+static int ett_rrc_CompressedModeMeasCapabTDD;
+static int ett_rrc_CompressedModeMeasCapabGSMList;
+static int ett_rrc_CompressedModeMeasCapabGSM;
+static int ett_rrc_CompressedModeMeasCapabMC;
+static int ett_rrc_CPCH_Parameters;
+static int ett_rrc_CSG_ProximityIndicationCapability;
+static int ett_rrc_DL_InformationPerSecondaryRL_List;
+static int ett_rrc_DL_InformationPerSecondaryRL_List_r12;
+static int ett_rrc_DL_InformationPerSecondaryRL_List_r13;
+static int ett_rrc_DL_InformationPerSecondaryRL;
+static int ett_rrc_T_e_RGCH_Info;
+static int ett_rrc_DL_InformationPerSecondaryRL_r12;
+static int ett_rrc_T_e_RGCH_Info_01;
+static int ett_rrc_DL_InformationPerSecondaryRL_r13;
+static int ett_rrc_T_e_RGCH_Info_02;
+static int ett_rrc_DL_PhysChCapabilityFDD;
+static int ett_rrc_DL_PhysChCapabilityFDD_v380ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_v770ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_v860ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_v920ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_va40ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_vb50ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_vb80ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_vc50ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_vd20ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_ve30ext;
+static int ett_rrc_DL_PhysChCapabilityFDD_vf10ext;
+static int ett_rrc_DL_PhysChCapabilityTDD;
+static int ett_rrc_DL_PhysChCapabilityTDD_LCR_r4;
+static int ett_rrc_DL_PhysChCapabilityTDD_128_v770ext;
+static int ett_rrc_DL_PhysChCapabilityTDD_128_v860ext;
+static int ett_rrc_DL_PhysChCapabilityInfoTDD_128_va40ext;
+static int ett_rrc_DL_PhysChCapabilityInfoTDD_128_vc50ext;
+static int ett_rrc_DL_PhysChCapabilityTDD_768;
+static int ett_rrc_T_tdd768_hspdsch;
+static int ett_rrc_DL_PhysChCapabilityInfoTDD_768;
+static int ett_rrc_DL_TransChCapability;
+static int ett_rrc_DRAC_SysInfo;
+static int ett_rrc_DRAC_SysInfoList;
+static int ett_rrc_DynamicActivationTime;
+static int ett_rrc_EUTRAbandSpecificCapUpdateReqList;
+static int ett_rrc_FailureCauseWithProtErr;
+static int ett_rrc_FailureCauseWithProtErrTrId;
+static int ett_rrc_FrequencyBandsIndicatorSupport;
+static int ett_rrc_T_modeSpecificInfo_18;
+static int ett_rrc_T_fdd_47;
+static int ett_rrc_T_tdd_12;
+static int ett_rrc_FrequencyBandsIndicatorTDD128;
+static int ett_rrc_FrequencyBandsIndicatorSupportTDD128;
+static int ett_rrc_FrequencyBandsRedirectionFDD;
+static int ett_rrc_FrequencyBandsIndicatorFDD;
+static int ett_rrc_GroupIdentityWithReleaseInformation;
+static int ett_rrc_GroupReleaseInformation;
+static int ett_rrc_GSM_Measurements;
+static int ett_rrc_MultiflowCapabBandCombination;
+static int ett_rrc_MultiflowCapabBandCombList;
+static int ett_rrc_MultiflowCapability;
+static int ett_rrc_MultiflowPerBandCapability;
+static int ett_rrc_MultiflowNonContiguousCapability;
+static int ett_rrc_IdleIntervalMeasCapabEUTRA;
+static int ett_rrc_IdleIntervalMeasCapabEUTRAExtension;
+static int ett_rrc_IdleIntervalMeasCapabEUTRAList;
+static int ett_rrc_IdleIntervalMeasCapabEUTRAExtensionList;
+static int ett_rrc_IMSI_and_ESN_DS_41;
+static int ett_rrc_InitialPriorityDelayList;
+static int ett_rrc_InitialUE_Identity;
+static int ett_rrc_IntegrityCheckInfo;
+static int ett_rrc_IntegrityProtActivationInfo;
+static int ett_rrc_IntegrityProtectionModeCommand;
+static int ett_rrc_T_startIntegrityProtection;
+static int ett_rrc_T_modify;
+static int ett_rrc_IntegrityProtectionModeInfo;
+static int ett_rrc_IntegrityProtectionModeInfo_r7;
+static int ett_rrc_MeasurementCapability;
+static int ett_rrc_MeasurementCapabilityExt;
+static int ett_rrc_MeasurementCapabilityExt2;
+static int ett_rrc_MeasurementCapabilityExt3;
+static int ett_rrc_MeasurementCapabilityExt4;
+static int ett_rrc_MeasurementCapabilityExt5;
+static int ett_rrc_MeasurementCapabilityExt6;
+static int ett_rrc_MeasurementCapability_r4_ext;
+static int ett_rrc_MeasurementCapability_v860ext;
+static int ett_rrc_MeasurementCapability_v920ext;
+static int ett_rrc_MeasurementCapability_va40ext;
+static int ett_rrc_MeasurementCapability_vb50ext;
+static int ett_rrc_MeasurementCapabilityTDD;
+static int ett_rrc_MeasurementCapabilityTDD_vb50ext;
+static int ett_rrc_MeasurementCapability_vb70ext;
+static int ett_rrc_MeasurementCapability_vc50ext;
+static int ett_rrc_MeasurementCapability_ve30ext;
+static int ett_rrc_MeasurementCapability_vf20ext;
+static int ett_rrc_NonContiguousMultiCellCombinationList;
+static int ett_rrc_NonContiguousMultiCell;
+static int ett_rrc_MultiRAT_Capability;
+static int ett_rrc_MultiModeRAT_Capability_v590ext;
+static int ett_rrc_MultiModeRAT_Capability_v680ext;
+static int ett_rrc_MultiModeRAT_Capability_v770ext;
+static int ett_rrc_MultiModeRAT_Capability_v860ext;
+static int ett_rrc_MultiModeRAT_Capability_vae0ext;
+static int ett_rrc_MultiModeRAT_Capability_vb50ext;
+static int ett_rrc_MultiModeRAT_Capability_vc50ext;
+static int ett_rrc_MultiModeRAT_Capability_vd20ext;
+static int ett_rrc_NeighCellSI_AcquisitionCapability;
+static int ett_rrc_NetworkAssistedGANSS_Supported_List;
+static int ett_rrc_NetworkAssistedGANSS_Supported_List_item;
+static int ett_rrc_NetworkAssistedGANSS_Supported_List_v860ext;
+static int ett_rrc_NetworkAssistedGANSS_Supported_List_v860ext_item;
+static int ett_rrc_P_TMSI_and_RAI_GSM_MAP;
+static int ett_rrc_PagingRecord;
+static int ett_rrc_T_cn_Identity;
+static int ett_rrc_T_utran_Identity;
+static int ett_rrc_T_cn_OriginatedPage_connectedMode_UE;
+static int ett_rrc_PagingRecord2_r5;
+static int ett_rrc_T_utran_SingleUE_Identity;
+static int ett_rrc_T_cn_OriginatedPage_connectedMode_UE_01;
+static int ett_rrc_SEQUENCE_SIZE_1_maxURNTI_Group_OF_GroupIdentityWithReleaseInformation;
+static int ett_rrc_PagingRecordList;
+static int ett_rrc_PagingRecord2List_r5;
+static int ett_rrc_PDCP_Capability;
+static int ett_rrc_T_supportForRfc2507;
+static int ett_rrc_PDCP_Capability_r4_ext;
+static int ett_rrc_T_supportForRfc3095;
+static int ett_rrc_T_supported;
+static int ett_rrc_PDCP_Capability_r5_ext;
+static int ett_rrc_PDCP_Capability_r5_ext2;
+static int ett_rrc_PDCP_Capability_v770ext;
+static int ett_rrc_PhysicalChannelCapability;
+static int ett_rrc_T_fddPhysChCapability;
+static int ett_rrc_T_tddPhysChCapability;
+static int ett_rrc_PhysicalChannelCapability_v770ext;
+static int ett_rrc_T_fddPhysChCapability_01;
+static int ett_rrc_T_tddPhysChCapability_384;
+static int ett_rrc_T_tddPhysChCapability_768;
+static int ett_rrc_T_tddPhysChCapability_128;
+static int ett_rrc_PhysicalChannelCapability_v860ext;
+static int ett_rrc_T_fddPhysChCapability_02;
+static int ett_rrc_T_tddPhysChCapability_128_01;
+static int ett_rrc_PhysicalChannelCapability_v920ext;
+static int ett_rrc_T_fddPhysChCapability_03;
+static int ett_rrc_PhysicalChannelCapability_va40ext;
+static int ett_rrc_T_fddPhysChCapability_04;
+static int ett_rrc_T_tddPhysChCapability_128_02;
+static int ett_rrc_PhysicalChannelCapability_vb50ext;
+static int ett_rrc_T_fddPhysChCapability_05;
+static int ett_rrc_PhysicalChannelCapability_vb80ext;
+static int ett_rrc_T_fddPhysChCapability_06;
+static int ett_rrc_PhysicalChannelCapability_vc50ext;
+static int ett_rrc_T_fddPhysChCapability_07;
+static int ett_rrc_T_tddPhysChCapability_01;
+static int ett_rrc_PhysicalChannelCapability_vd20ext;
+static int ett_rrc_T_fddPhysChCapability_08;
+static int ett_rrc_PhysicalChannelCapability_ve30ext;
+static int ett_rrc_T_fddPhysChCapability_09;
+static int ett_rrc_PhysicalChannelCapabilityInfo_v770ext;
+static int ett_rrc_T_tddPhysChCapability_768_01;
+static int ett_rrc_T_tddPhysChCapability_128_03;
+static int ett_rrc_PhysicalChannelCapability_vf10ext;
+static int ett_rrc_T_fddPhysChCapability_10;
+static int ett_rrc_PhysicalChannelCapability_LCR_r4;
+static int ett_rrc_T_tdd128_PhysChCapability;
+static int ett_rrc_PhysicalChannelCapability_hspdsch_r5;
+static int ett_rrc_T_fdd_hspdsch;
+static int ett_rrc_T_supported_01;
+static int ett_rrc_T_tdd384_hspdsch;
+static int ett_rrc_T_tdd128_hspdsch;
+static int ett_rrc_PNBSCH_Allocation_r4;
+static int ett_rrc_Pre_RedirectionInfo;
+static int ett_rrc_ProtocolErrorIndicatorWithMoreInfo;
+static int ett_rrc_T_errorOccurred;
+static int ett_rrc_ProtocolErrorMoreInformation;
+static int ett_rrc_T_diagnosticsType;
+static int ett_rrc_T_type1;
+static int ett_rrc_RadioFrequencyBandTDDextList;
+static int ett_rrc_Rb_timer_indicator;
+static int ett_rrc_RedirectionInfo;
+static int ett_rrc_RedirectionInfo_r6;
+static int ett_rrc_RedirectionInfo_v860ext;
+static int ett_rrc_RF_Capability;
+static int ett_rrc_T_fddRF_Capability;
+static int ett_rrc_T_tddRF_Capability;
+static int ett_rrc_RF_Capability_r4_ext;
+static int ett_rrc_T_tddRF_Capability_01;
+static int ett_rrc_RF_Capability_v770ext;
+static int ett_rrc_T_tdd768RF_Capability;
+static int ett_rrc_RF_Capability_v860ext;
+static int ett_rrc_RF_Capability_vaa0ext;
+static int ett_rrc_RLC_Capability;
+static int ett_rrc_RLC_Capability_r5_ext;
+static int ett_rrc_RLC_Capability_v770ext;
+static int ett_rrc_RLC_Capability_v920ext;
+static int ett_rrc_RLC_Capability_va40ext;
+static int ett_rrc_RLC_Capability_vb50ext;
+static int ett_rrc_RRC_ConnectionReleaseInformation;
+static int ett_rrc_T_release;
+static int ett_rrc_RRC_MessageSequenceNumberList;
+static int ett_rrc_RSR_VCC_Info;
+static int ett_rrc_SecurityCapability;
+static int ett_rrc_T_cipheringAlgorithmCap;
+static int ett_rrc_T_integrityProtectionAlgorithmCap;
+static int ett_rrc_SecondaryServingEDCHCell_Info;
+static int ett_rrc_SecondaryEDCH_Info_Common;
+static int ett_rrc_T_servingGrant;
+static int ett_rrc_SecondaryEDCH_Info_Common_r12;
+static int ett_rrc_T_servingGrant_01;
+static int ett_rrc_SecondaryEDCH_Info_Common_r14;
+static int ett_rrc_T_servingGrant_02;
+static int ett_rrc_Serving_HSDSCH_CellInformation;
+static int ett_rrc_Serving_HSDSCH_CellInformation_r7;
+static int ett_rrc_Serving_HSDSCH_CellInformation_r8;
+static int ett_rrc_Serving_HSDSCH_CellInformation_r9;
+static int ett_rrc_Serving_HSDSCH_CellInformation_r11;
+static int ett_rrc_Serving_HSDSCH_CellInformation_r12;
+static int ett_rrc_SimultaneousSCCPCH_DPCH_Reception;
+static int ett_rrc_T_supported_02;
+static int ett_rrc_SR_VCC_Info;
+static int ett_rrc_SR_VCC_SecurityRABInfo_v860ext;
+static int ett_rrc_STARTList;
+static int ett_rrc_STARTSingle;
+static int ett_rrc_SystemSpecificCapUpdateReqList;
+static int ett_rrc_SystemSpecificCapUpdateReqList_r5;
+static int ett_rrc_SystemSpecificCapUpdateReqList_r8;
+static int ett_rrc_TMSI_and_LAI_GSM_MAP;
+static int ett_rrc_TransportChannelCapability;
+static int ett_rrc_TurboSupport;
+static int ett_rrc_U_RNTI;
+static int ett_rrc_U_RNTI_Group;
+static int ett_rrc_U_RNTI_Short;
+static int ett_rrc_UE_AddPos_Supported_List;
+static int ett_rrc_UE_AddPos_element;
+static int ett_rrc_UE_BasedNetworkPerformanceMeasurementsParameters;
+static int ett_rrc_UE_CapabilityContainer_IEs;
+static int ett_rrc_T_v6b0NonCriticalExtensions_14;
+static int ett_rrc_T_v6e0NonCriticalExtensions_02;
+static int ett_rrc_T_v770NonCriticalExtensions_39;
+static int ett_rrc_T_v790NonCriticalExtensions_01;
+static int ett_rrc_T_v860NonCriticalExtensions_25;
+static int ett_rrc_T_v880NonCriticalExtensions_01;
+static int ett_rrc_T_v890NonCriticalExtensions_10;
+static int ett_rrc_T_v920NonCriticalExtensions_03;
+static int ett_rrc_T_v970NonCriticalExtensions_03;
+static int ett_rrc_T_va40NonCriticalExtensions_17;
+static int ett_rrc_T_va60NonCriticalExtensions;
+static int ett_rrc_T_va80NonCriticalExtensions_01;
+static int ett_rrc_UE_RadioAccessCapability_v6b0ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v6e0ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v770ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v790ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v860ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v880ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v890ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v920ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v970ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_v9c0ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_LaterNonCriticalExtensions;
+static int ett_rrc_T_v9c0NonCriticalExtensions_12;
+static int ett_rrc_T_vaa0NonCriticalExtensions_02;
+static int ett_rrc_T_vb50NonCriticalExtensions_23;
+static int ett_rrc_T_vb70NonCriticalExtensions_01;
+static int ett_rrc_T_vae0NonCriticalExtensions;
+static int ett_rrc_T_vb80NonCriticalExtensions;
+static int ett_rrc_T_vc50NonCriticalExtensions_10;
+static int ett_rrc_T_vd20NonCriticalExtensions_03;
+static int ett_rrc_UE_RadioAccessCapability_va40ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_va60ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_va80ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vaa0ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vae0ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vb50ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vb70ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vb80ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vc50ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vd20ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_ve30ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vf10ext_IEs;
+static int ett_rrc_UE_RadioAccessCapability_vf20ext_IEs;
+static int ett_rrc_T_nonCriticalExtensions_225;
+static int ett_rrc_UE_ConnTimersAndConstants;
+static int ett_rrc_UE_ConnTimersAndConstants_v3a0ext;
+static int ett_rrc_UE_ConnTimersAndConstants_r5;
+static int ett_rrc_UE_ConnTimersAndConstants_v860ext;
+static int ett_rrc_UE_ConnTimersAndConstants_r11;
+static int ett_rrc_UE_GANSSPositioning_Capability;
+static int ett_rrc_UE_GANSSPositioning_Capability_v860ext_IEs;
+static int ett_rrc_UE_IdleTimersAndConstants;
+static int ett_rrc_UE_HSPA_Identities_r6;
+static int ett_rrc_UE_IdleTimersAndConstants_v3a0ext;
+static int ett_rrc_UE_MultiModeRAT_Capability;
+static int ett_rrc_UE_RadioAccessCapability;
+static int ett_rrc_UE_RadioAccessCapabilityInfo;
+static int ett_rrc_UE_RadioAccessCapability_v370ext;
+static int ett_rrc_UE_RadioAccessCapability_v380ext;
+static int ett_rrc_UE_RadioAccessCapability_v3a0ext;
+static int ett_rrc_UE_RadioAccessCapability_v3g0ext;
+static int ett_rrc_UE_RadioAccessCapability_v650ext;
+static int ett_rrc_UE_RadioAccessCapability_v690ext;
+static int ett_rrc_UE_RadioAccessCapability_v7e0ext;
+static int ett_rrc_UE_RadioAccessCapability_v7f0ext;
+static int ett_rrc_UE_RadioAccessCapabilityInfo_v770ext;
+static int ett_rrc_UE_RadioAccessCapabilityInfo_TDD128_v8b0ext;
+static int ett_rrc_UE_RadioAccessCapabilityInfo_TDD128_vb50ext;
+static int ett_rrc_UE_RadioAccessCapability_v860ext;
+static int ett_rrc_UE_RadioAccessCapability_v880ext;
+static int ett_rrc_UE_RadioAccessCapability_v920ext;
+static int ett_rrc_UE_RadioAccessCapability_va40ext;
+static int ett_rrc_UE_RadioAccessCapability_va80ext;
+static int ett_rrc_UE_RadioAccessCapability_vb50ext;
+static int ett_rrc_UE_RadioAccessCapability_vb70ext;
+static int ett_rrc_UE_RadioAccessCapability_vbc0ext;
+static int ett_rrc_UE_RadioAccessCapability_vd20ext;
+static int ett_rrc_UE_RadioAccessCapabBand_va40ext;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList2;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList3;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList4;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList4_va60ext;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList4_va80ext;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList5;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList6;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList7;
+static int ett_rrc_UE_RadioAccessCapabBandFDD2;
+static int ett_rrc_T_fddRF_Capability_01;
+static int ett_rrc_UE_RadioAccessCapabBandFDD3;
+static int ett_rrc_UE_RadioAccessCapabBandFDD4;
+static int ett_rrc_UE_RadioAccessCapabBandFDD4_va60ext;
+static int ett_rrc_UE_RadioAccessCapabBandFDD4_va80ext;
+static int ett_rrc_UE_RadioAccessCapabBandFDD5;
+static int ett_rrc_T_fddRF_Capability_02;
+static int ett_rrc_UE_RadioAccessCapabBandFDD6;
+static int ett_rrc_UE_RadioAccessCapabBandFDD7;
+static int ett_rrc_UE_PositioningCapabilityExt_v380;
+static int ett_rrc_UE_PositioningCapabilityExt_v3a0;
+static int ett_rrc_UE_PositioningCapabilityExt_v3g0;
+static int ett_rrc_UE_PositioningCapability_v770ext;
+static int ett_rrc_UE_PositioningCapability_v860ext;
+static int ett_rrc_UE_PositioningCapability_vd20ext;
+static int ett_rrc_UE_RadioAccessCapabBandCombList;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList_ext;
+static int ett_rrc_UE_RadioAccessCapabBandFDDList_ext2;
+static int ett_rrc_UE_RadioAccessCapabBandFDD;
+static int ett_rrc_T_fddRF_Capability_03;
+static int ett_rrc_UE_RadioAccessCapabBandFDD_ext;
+static int ett_rrc_UE_RadioAccessCapabBandFDD_ext2;
+static int ett_rrc_UE_RadioAccessCapability_v4b0ext;
+static int ett_rrc_T_tdd_CapabilityExt;
+static int ett_rrc_UE_RadioAccessCapabilityComp;
+static int ett_rrc_UE_RadioAccessCapabilityComp_ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp_TDD128_v7f0ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp_v770ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2;
+static int ett_rrc_T_fddPhysicalChannelCapab_hspdsch_edch;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_v770ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_v7f0ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_v860ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_v920ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_va40ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_vb50ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_vc50ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp2_vd20ext;
+static int ett_rrc_UE_RadioAccessCapabilityComp_TDD128;
+static int ett_rrc_RF_CapabilityComp;
+static int ett_rrc_T_fdd_48;
+static int ett_rrc_T_tdd384_RF_Capability;
+static int ett_rrc_T_tdd128_RF_Capability;
+static int ett_rrc_RF_CapabilityComp_v770ext;
+static int ett_rrc_T_tdd768_RF_Capability;
+static int ett_rrc_RF_CapabBandListFDDComp;
+static int ett_rrc_RF_CapabBandListFDDComp_ext;
+static int ett_rrc_RF_CapabBandListFDDComp_ext2;
+static int ett_rrc_UE_RadioAccessCapabBandCombList_va40ext;
+static int ett_rrc_UE_RadioAccessCapabBandCombList_vb50ext;
+static int ett_rrc_UE_RadioAccessCapabBandCombList_vd20ext;
+static int ett_rrc_SupportedCarrierCombination;
+static int ett_rrc_SupportedCarrierCombination_ext;
+static int ett_rrc_SupportDualBandDualCellEdch;
+static int ett_rrc_UE_RadioAccessCapability_v590ext;
+static int ett_rrc_UE_RadioAccessCapability_v5c0ext;
+static int ett_rrc_UE_RadioAccessCapability_v680ext;
+static int ett_rrc_UL_OLTD_InfoFDD;
+static int ett_rrc_UL_PhysChCapabilityFDD;
+static int ett_rrc_UL_PhysChCapabilityFDD_v770ext;
+static int ett_rrc_UL_PhysChCapabilityFDD_v920ext;
+static int ett_rrc_UL_PhysChCapabilityFDD_vb50ext;
+static int ett_rrc_UL_PhysChCapabilityFDD_vc50ext;
+static int ett_rrc_UL_PhysChCapabilityFDD_vd20ext;
+static int ett_rrc_UL_PhysChCapabilityFDD_ve30ext;
+static int ett_rrc_UL_PhysChCapabilityTDD;
+static int ett_rrc_UL_PhysChCapabilityTDD_384_v770ext;
+static int ett_rrc_T_tdd384_edch;
+static int ett_rrc_T_supported_03;
+static int ett_rrc_UL_PhysChCapabilityTDD_LCR_r4;
+static int ett_rrc_UL_PhysChCapabilityTDD_128_v770ext;
+static int ett_rrc_T_tdd128_edch;
+static int ett_rrc_T_supported_04;
+static int ett_rrc_UL_PhysChCapabilityInfoTDD_128_v770ext;
+static int ett_rrc_UL_PhysChCapabilityInfoTDD_128_va40ext;
+static int ett_rrc_UL_PhysChCapabilityTDD_768;
+static int ett_rrc_T_tdd384_edch_01;
+static int ett_rrc_T_supported_05;
+static int ett_rrc_UL_OtherTTIConfiguration_Information;
+static int ett_rrc_T_configurationInfo_01;
+static int ett_rrc_T_newConfiguration_01;
+static int ett_rrc_UL_OtherTTIConfigurationInfo_Sec;
+static int ett_rrc_T_configurationInfo_02;
+static int ett_rrc_T_newConfiguration_02;
+static int ett_rrc_UL_SecondaryCellInfoFDD;
+static int ett_rrc_T_newConfiguration_03;
+static int ett_rrc_UL_SecondaryCellInfoFDD_r12;
+static int ett_rrc_T_newConfiguration_04;
+static int ett_rrc_UL_SecondaryCellInfoFDD_r13;
+static int ett_rrc_T_newConfiguration_05;
+static int ett_rrc_UL_SecondaryCellInfoFDD_r14;
+static int ett_rrc_T_newConfiguration_06;
+static int ett_rrc_PhysicalChannelCapability_edch_r6;
+static int ett_rrc_T_fdd_edch;
+static int ett_rrc_T_supported_06;
+static int ett_rrc_UL_TransChCapability;
+static int ett_rrc_T_modeSpecificInfo_19;
+static int ett_rrc_T_tdd_13;
+static int ett_rrc_UE_Positioning_Capability;
+static int ett_rrc_UE_SecurityInformation;
+static int ett_rrc_UE_SecurityInformation2;
+static int ett_rrc_UTRAN_DRX_CycleLengthCoefficient_r7;
+static int ett_rrc_AlgorithmSpecificInfo;
+static int ett_rrc_AlgorithmSpecificInfo_r4;
+static int ett_rrc_CommonRBMappingInfo;
+static int ett_rrc_CS_HSPA_Information;
+static int ett_rrc_DefaultConfigForCellFACH;
+static int ett_rrc_DL_AM_RLC_Mode;
+static int ett_rrc_DL_AM_RLC_Mode_r5;
+static int ett_rrc_DL_AM_RLC_Mode_r7;
+static int ett_rrc_T_dl_RLC_PDU_size;
+static int ett_rrc_DL_AM_RLC_Mode_r11;
+static int ett_rrc_T_dl_RLC_PDU_size_01;
+static int ett_rrc_DL_CounterSynchronisationInfo;
+static int ett_rrc_DL_CounterSynchronisationInfo_r5;
+static int ett_rrc_DL_LogicalChannelMapping;
+static int ett_rrc_DL_LogicalChannelMapping_r5;
+static int ett_rrc_DL_LogicalChannelMapping_r7;
+static int ett_rrc_DL_LogicalChannelMappingList;
+static int ett_rrc_DL_LogicalChannelMappingList_r5;
+static int ett_rrc_DL_LogicalChannelMappingList_r7;
+static int ett_rrc_DL_RFC3095_r4;
+static int ett_rrc_DL_RLC_Mode;
+static int ett_rrc_DL_RLC_Mode_r5;
+static int ett_rrc_DL_RLC_Mode_r6;
+static int ett_rrc_DL_RLC_Mode_r7;
+static int ett_rrc_DL_RLC_Mode_r11;
+static int ett_rrc_DL_RLC_StatusInfo;
+static int ett_rrc_DL_RLC_StatusInfo_r11;
+static int ett_rrc_DL_TM_RLC_Mode;
+static int ett_rrc_DL_TransportChannelType;
+static int ett_rrc_DL_TransportChannelType_r5;
+static int ett_rrc_DL_TransportChannelType_r7;
+static int ett_rrc_T_hsdsch;
+static int ett_rrc_T_dch_and_hsdsch;
+static int ett_rrc_DL_UM_RLC_Mode_r5;
+static int ett_rrc_DL_UM_RLC_Mode_r6;
+static int ett_rrc_ExplicitDiscard;
+static int ett_rrc_HeaderCompressionInfo;
+static int ett_rrc_HeaderCompressionInfoList;
+static int ett_rrc_HeaderCompressionInfo_r4;
+static int ett_rrc_HeaderCompressionInfoList_r4;
+static int ett_rrc_HS_SCCH_DrxCellfach_info;
+static int ett_rrc_LosslessSRNS_RelocSupport;
+static int ett_rrc_MaxDAT_Retransmissions;
+static int ett_rrc_PDCP_Info;
+static int ett_rrc_PDCP_Info_r4;
+static int ett_rrc_PDCP_InfoReconfig;
+static int ett_rrc_PDCP_InfoReconfig_r4;
+static int ett_rrc_PollingInfo;
+static int ett_rrc_PredefinedRB_Configuration;
+static int ett_rrc_PreDefRadioConfiguration;
+static int ett_rrc_PreDefRadioConfiguration_v770ext;
+static int ett_rrc_PreDefRadioConfiguration_v920ext;
+static int ett_rrc_PredefinedConfigStatusList;
+static int ett_rrc_PredefinedConfigStatusInfo;
+static int ett_rrc_T_other;
+static int ett_rrc_PredefinedConfigStatusListComp;
+static int ett_rrc_PredefinedConfigSetsWithDifferentValueTag;
+static int ett_rrc_PredefinedConfigSetWithDifferentValueTag;
+static int ett_rrc_PredefinedConfigValueTagList;
+static int ett_rrc_PredefinedConfigStatusListVarSz;
+static int ett_rrc_RAB_Info;
+static int ett_rrc_RAB_Info_r6_ext;
+static int ett_rrc_RAB_Info_v6b0ext;
+static int ett_rrc_RAB_Info_r6;
+static int ett_rrc_RAB_Info_r7;
+static int ett_rrc_RAB_InfoReplace;
+static int ett_rrc_RAB_InformationList;
+static int ett_rrc_RAB_InformationList_r6;
+static int ett_rrc_RAB_InformationReconfigList;
+static int ett_rrc_RAB_InformationReconfigList_r8;
+static int ett_rrc_RAB_InformationReconfig;
+static int ett_rrc_RAB_InformationReconfig_r8;
+static int ett_rrc_RAB_Info_Post;
+static int ett_rrc_RAB_InformationMBMSPtp;
+static int ett_rrc_RAB_InformationMBMSPtpList;
+static int ett_rrc_RAB_InformationSetup;
+static int ett_rrc_RAB_InformationSetup_r4;
+static int ett_rrc_RAB_InformationSetup_r5;
+static int ett_rrc_RAB_InformationSetup_r6_ext;
+static int ett_rrc_RAB_InformationSetup_r6;
+static int ett_rrc_RAB_InformationSetup_v6b0ext;
+static int ett_rrc_RAB_InformationSetup_r7;
+static int ett_rrc_RAB_InformationSetup_r8;
+static int ett_rrc_RAB_InformationSetup_v820ext;
+static int ett_rrc_RAB_InformationSetup_r11;
+static int ett_rrc_RAB_InformationSetupList;
+static int ett_rrc_RAB_InformationSetupList_r4;
+static int ett_rrc_RAB_InformationSetupList_r5;
+static int ett_rrc_RAB_InformationSetupList_r6;
+static int ett_rrc_RAB_InformationSetupList_r6_ext;
+static int ett_rrc_RAB_InformationSetupList_v6b0ext;
+static int ett_rrc_RAB_InformationSetupList_r7;
+static int ett_rrc_RAB_InformationSetupList_r8;
+static int ett_rrc_RAB_InformationSetupList_v820ext;
+static int ett_rrc_RAB_InformationSetupList_r11;
+static int ett_rrc_RB_ActivationTimeInfo;
+static int ett_rrc_RB_ActivationTimeInfoList;
+static int ett_rrc_RB_COUNT_C_Information;
+static int ett_rrc_RB_COUNT_C_InformationList;
+static int ett_rrc_RB_COUNT_C_MSB_Information;
+static int ett_rrc_RB_COUNT_C_MSB_InformationList;
+static int ett_rrc_RB_IdentityList;
+static int ett_rrc_RB_InformationAffected;
+static int ett_rrc_RB_InformationAffected_r5;
+static int ett_rrc_RB_InformationAffected_r6;
+static int ett_rrc_RB_InformationAffected_r7;
+static int ett_rrc_RB_InformationAffected_r8;
+static int ett_rrc_RB_InformationAffectedList;
+static int ett_rrc_RB_InformationAffectedList_r5;
+static int ett_rrc_RB_InformationAffectedList_r6;
+static int ett_rrc_RB_InformationAffectedList_r7;
+static int ett_rrc_RB_InformationAffectedList_r8;
+static int ett_rrc_RB_InformationChanged_r6;
+static int ett_rrc_T_rb_Change;
+static int ett_rrc_RB_InformationChangedList_r6;
+static int ett_rrc_RB_InformationReconfig;
+static int ett_rrc_RB_InformationReconfig_r4;
+static int ett_rrc_RB_InformationReconfig_r5;
+static int ett_rrc_RB_InformationReconfig_r6;
+static int ett_rrc_RB_InformationReconfig_r7;
+static int ett_rrc_RB_InformationReconfig_r8;
+static int ett_rrc_RB_InformationReconfig_r11;
+static int ett_rrc_RB_InformationReconfigList;
+static int ett_rrc_RB_InformationReconfigList_r4;
+static int ett_rrc_RB_InformationReconfigList_r5;
+static int ett_rrc_RB_InformationReconfigList_r6;
+static int ett_rrc_RB_InformationReconfigList_r7;
+static int ett_rrc_RB_InformationReconfigList_r8;
+static int ett_rrc_RB_InformationReconfigList_r11;
+static int ett_rrc_RB_InformationReleaseList;
+static int ett_rrc_RB_InformationSetup;
+static int ett_rrc_RB_InformationSetup_r4;
+static int ett_rrc_RB_InformationSetup_r5;
+static int ett_rrc_RB_InformationSetup_r6;
+static int ett_rrc_RB_InformationSetup_r7;
+static int ett_rrc_RB_InformationSetup_r8;
+static int ett_rrc_RB_InformationSetup_r11;
+static int ett_rrc_RB_InformationSetupList;
+static int ett_rrc_RB_InformationSetupList_r4;
+static int ett_rrc_RB_InformationSetupList_r5;
+static int ett_rrc_RB_InformationSetupList_r6;
+static int ett_rrc_RB_InformationSetupList_r7;
+static int ett_rrc_RB_InformationSetupList_r8;
+static int ett_rrc_RB_InformationSetupList_r11;
+static int ett_rrc_RB_MappingInfo;
+static int ett_rrc_RB_MappingInfo_r5;
+static int ett_rrc_RB_MappingInfo_r6;
+static int ett_rrc_RB_MappingInfo_r7;
+static int ett_rrc_RB_MappingInfo_r8;
+static int ett_rrc_RB_MappingOption;
+static int ett_rrc_RB_MappingOption_r5;
+static int ett_rrc_RB_MappingOption_r6;
+static int ett_rrc_RB_MappingOption_r7;
+static int ett_rrc_RB_MappingOption_r8;
+static int ett_rrc_RB_PDCPContextRelocation;
+static int ett_rrc_RB_PDCPContextRelocationList;
+static int ett_rrc_RB_WithPDCP_Info;
+static int ett_rrc_RB_WithPDCP_InfoList;
+static int ett_rrc_RetrievableConfig;
+static int ett_rrc_RetrievableConfigData;
+static int ett_rrc_RetrievableConfigInfo;
+static int ett_rrc_RetrievableConfig_List;
+static int ett_rrc_RetrievableConfigListToRemove;
+static int ett_rrc_RFC2507_Info;
+static int ett_rrc_RFC3095_Info_r4;
+static int ett_rrc_RLC_Info;
+static int ett_rrc_RLC_Info_r5;
+static int ett_rrc_RLC_Info_r6;
+static int ett_rrc_RLC_Info_r7;
+static int ett_rrc_RLC_Info_r11;
+static int ett_rrc_RLC_Info_MCCH_r6;
+static int ett_rrc_RLC_Info_MSCH_r6;
+static int ett_rrc_RLC_Info_MTCH_r6;
+static int ett_rrc_RLC_InfoChoice;
+static int ett_rrc_RLC_InfoChoice_r5;
+static int ett_rrc_RLC_InfoChoice_r6;
+static int ett_rrc_RLC_InfoChoice_r7;
+static int ett_rrc_RLC_InfoChoice_r11;
+static int ett_rrc_RLC_PDU_SizeConstraint;
+static int ett_rrc_RLC_PDU_SizeList;
+static int ett_rrc_RLC_SizeInfo;
+static int ett_rrc_RLC_SizeExplicitList;
+static int ett_rrc_ROHC_ProfileList_r4;
+static int ett_rrc_ROHC_PacketSizeList_r4;
+static int ett_rrc_SRB_InformationSetup;
+static int ett_rrc_SRB_InformationSetup_r5;
+static int ett_rrc_SRB_InformationSetup_r6;
+static int ett_rrc_SRB_InformationSetup_r7;
+static int ett_rrc_SRB_InformationSetup_r8;
+static int ett_rrc_SRB_InformationSetup_r11;
+static int ett_rrc_SRB_InformationSetupList;
+static int ett_rrc_SRB_InformationSetupList_r5;
+static int ett_rrc_SRB_InformationSetupList_r6;
+static int ett_rrc_SRB_InformationSetupList_r7;
+static int ett_rrc_SRB_InformationSetupList_r8;
+static int ett_rrc_SRB_InformationSetupList_r11;
+static int ett_rrc_SRB_InformationSetupList2;
+static int ett_rrc_SRB_InformationSetupList2_r6;
+static int ett_rrc_SRB_InformationSetupList2_r7;
+static int ett_rrc_SRB_InformationSetupList2_r8;
+static int ett_rrc_TransmissionRLC_Discard;
+static int ett_rrc_UL_AM_RLC_Mode;
+static int ett_rrc_UL_CounterSynchronisationInfo;
+static int ett_rrc_UL_LogicalChannelMapping;
+static int ett_rrc_T_rlc_SizeList;
+static int ett_rrc_UL_LogicalChannelMapping_r6;
+static int ett_rrc_T_ul_TrCH_Type;
+static int ett_rrc_T_dch_rach_usch;
+static int ett_rrc_T_rlc_SizeList_01;
+static int ett_rrc_T_e_dch;
+static int ett_rrc_UL_LogicalChannelMapping_r8;
+static int ett_rrc_T_ul_TrCH_Type_01;
+static int ett_rrc_T_dch_rach_usch_01;
+static int ett_rrc_T_rlc_SizeList_02;
+static int ett_rrc_T_e_dch_01;
+static int ett_rrc_T_rlc_PDU_Size;
+static int ett_rrc_T_fixedSize;
+static int ett_rrc_UL_LogicalChannelMappingList;
+static int ett_rrc_SEQUENCE_SIZE_maxLoCHperRLC_OF_UL_LogicalChannelMapping;
+static int ett_rrc_UL_LogicalChannelMappingList_r6;
+static int ett_rrc_SEQUENCE_SIZE_maxLoCHperRLC_OF_UL_LogicalChannelMapping_r6;
+static int ett_rrc_UL_LogicalChannelMappingList_r8;
+static int ett_rrc_SEQUENCE_SIZE_maxLoCHperRLC_OF_UL_LogicalChannelMapping_r8;
+static int ett_rrc_UL_LogicalChannelMappings;
+static int ett_rrc_UL_LogicalChannelMappings_r6;
+static int ett_rrc_UL_LogicalChannelMappings_r8;
+static int ett_rrc_UL_RFC3095_r4;
+static int ett_rrc_UL_RLC_Mode;
+static int ett_rrc_UL_TM_RLC_Mode;
+static int ett_rrc_UL_UM_RLC_Mode;
+static int ett_rrc_UL_TransportChannelType;
+static int ett_rrc_UM_RLC_DuplAvoid_Reord_Info_r6;
+static int ett_rrc_UM_RLC_OutOSeqDelivery_Info_r6;
+static int ett_rrc_AddOrReconfMAC_dFlow;
+static int ett_rrc_AddOrReconfMAC_ehs_ReordQ;
+static int ett_rrc_AddOrReconfMAC_ehs_ReordQ_r9;
+static int ett_rrc_AddOrReconfMAC_ehs_ReordQ_TDD128_v9c0ext;
+static int ett_rrc_AddOrReconfMAC_ehs_ReordQ_r11;
+static int ett_rrc_AllowedTFC_List;
+static int ett_rrc_AllowedTFI_List;
+static int ett_rrc_BitModeRLC_SizeInfo;
+static int ett_rrc_T_sizeType2;
+static int ett_rrc_T_sizeType3;
+static int ett_rrc_T_sizeType4;
+static int ett_rrc_ChannelCodingType;
+static int ett_rrc_Common_E_DCH_MAC_d_Flow;
+static int ett_rrc_Common_E_DCH_MAC_d_FlowList;
+static int ett_rrc_Common_E_DCH_MAC_d_Flow_Info_ConcurrentTTI;
+static int ett_rrc_Common_E_DCH_MAC_d_Flow_Info_List_ConcurrentTTI;
+static int ett_rrc_CommonDynamicTF_Info;
+static int ett_rrc_T_rlc_Size;
+static int ett_rrc_T_fdd_49;
+static int ett_rrc_T_tdd_14;
+static int ett_rrc_T_commonTDD_Choice;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTF_OF_NumberOfTransportBlocks;
+static int ett_rrc_CommonDynamicTF_Info_DynamicTTI;
+static int ett_rrc_T_commonTDD_Choice_01;
+static int ett_rrc_CommonDynamicTF_InfoList;
+static int ett_rrc_CommonDynamicTF_InfoList_DynamicTTI;
+static int ett_rrc_CommonTransChTFS;
+static int ett_rrc_T_tti;
+static int ett_rrc_CommonTransChTFS_LCR;
+static int ett_rrc_T_tti_01;
+static int ett_rrc_Common_MAC_ehs_ReorderingQueue;
+static int ett_rrc_Common_MAC_ehs_ReorderingQueueList;
+static int ett_rrc_Concurrent_Deployment_2ms_10ms_TTI;
+static int ett_rrc_T_tti_selection;
+static int ett_rrc_T_fixed;
+static int ett_rrc_T_threshold_based;
+static int ett_rrc_DedicatedDynamicTF_Info;
+static int ett_rrc_T_rlc_Size_01;
+static int ett_rrc_DedicatedDynamicTF_Info_DynamicTTI;
+static int ett_rrc_T_rlc_Size_02;
+static int ett_rrc_DedicatedDynamicTF_InfoList;
+static int ett_rrc_DedicatedDynamicTF_InfoList_DynamicTTI;
+static int ett_rrc_DedicatedTransChTFS;
+static int ett_rrc_T_tti_02;
+static int ett_rrc_DL_AddReconfTransChInfo2List;
+static int ett_rrc_DL_AddReconfTransChInfoList;
+static int ett_rrc_DL_AddReconfTransChInfoList_r4;
+static int ett_rrc_DL_AddReconfTransChInfoList_r5;
+static int ett_rrc_DL_AddReconfTransChInfoList_r7;
+static int ett_rrc_DL_AddReconfTransChInfoList_r9;
+static int ett_rrc_DL_AddReconfTransChInfoList_r11;
+static int ett_rrc_DL_AddReconfTransChInfoList_r13;
+static int ett_rrc_DL_AddReconfTransChInfoList_TDD128_v9c0ext;
+static int ett_rrc_DL_AddReconfTransChInformation;
+static int ett_rrc_T_tfs_SignallingMode;
+static int ett_rrc_DL_AddReconfTransChInformation_r4;
+static int ett_rrc_T_tfs_SignallingMode_01;
+static int ett_rrc_DL_AddReconfTransChInformation_r5;
+static int ett_rrc_T_tfs_SignallingMode_02;
+static int ett_rrc_DL_AddReconfTransChInformation_r7;
+static int ett_rrc_T_tfs_SignallingMode_03;
+static int ett_rrc_DL_AddReconfTransChInformation_r9;
+static int ett_rrc_T_tfs_SignallingMode_04;
+static int ett_rrc_DL_AddReconfTransChInformation_r11;
+static int ett_rrc_T_tfs_SignallingMode_05;
+static int ett_rrc_DL_AddReconfTransChInformation_r13;
+static int ett_rrc_T_tfs_SignallingMode_06;
+static int ett_rrc_DL_AddReconfTransChInformation_TDD128_v9c0ext;
+static int ett_rrc_DL_AddReconfTransChInformation2;
+static int ett_rrc_T_tfs_SignallingMode_07;
+static int ett_rrc_DL_CommonTransChInfo;
+static int ett_rrc_T_modeSpecificInfo_20;
+static int ett_rrc_T_fdd_50;
+static int ett_rrc_T_dl_Parameters;
+static int ett_rrc_T_tdd_15;
+static int ett_rrc_DL_CommonTransChInfo_r4;
+static int ett_rrc_T_modeSpecificInfo_21;
+static int ett_rrc_T_fdd_51;
+static int ett_rrc_T_dl_Parameters_01;
+static int ett_rrc_T_dl_DCH_TFCS;
+static int ett_rrc_T_tdd_16;
+static int ett_rrc_DL_DeletedTransChInfoList;
+static int ett_rrc_DL_DeletedTransChInfoList_r5;
+static int ett_rrc_DL_DeletedTransChInfoList_r7;
+static int ett_rrc_DL_TransportChannelIdentity;
+static int ett_rrc_DL_TransportChannelIdentity_r5;
+static int ett_rrc_DL_TransportChannelIdentity_r7;
+static int ett_rrc_DL_TrCH_TypeId1_r5;
+static int ett_rrc_DL_TrCH_TypeId2_r5;
+static int ett_rrc_DL_TrCH_TypeId2_r7;
+static int ett_rrc_T_hsdsch_01;
+static int ett_rrc_DRAC_StaticInformation;
+static int ett_rrc_DRAC_StaticInformationList;
+static int ett_rrc_E_DCH_AddReconf_MAC_d_Flow;
+static int ett_rrc_T_transmissionGrantType;
+static int ett_rrc_T_non_ScheduledTransGrantInfo;
+static int ett_rrc_E_DCH_AddReconf_MAC_d_Flow_r7;
+static int ett_rrc_T_transmissionGrantType_01;
+static int ett_rrc_T_non_ScheduledTransGrantInfo_01;
+static int ett_rrc_T_modeSpecificInfo_22;
+static int ett_rrc_T_fdd_52;
+static int ett_rrc_E_DCH_AddReconf_MAC_d_FlowList;
+static int ett_rrc_E_DCH_AddReconf_MAC_d_FlowList_r7;
+static int ett_rrc_ExplicitTFCS_Configuration;
+static int ett_rrc_T_replacement;
+static int ett_rrc_ExplicitTFCS_Configuration_r12;
+static int ett_rrc_T_replacement_01;
+static int ett_rrc_GainFactorInformation;
+static int ett_rrc_GainFactorInformation_10msMode;
+static int ett_rrc_T_signalledGainFactors;
+static int ett_rrc_HSDSCH_Info;
+static int ett_rrc_HSDSCH_Info_r7;
+static int ett_rrc_T_dl_MAC_HeaderType;
+static int ett_rrc_HSDSCH_Info_r9;
+static int ett_rrc_T_dl_MAC_HeaderType_01;
+static int ett_rrc_HSDSCH_Info_r11;
+static int ett_rrc_T_dl_MAC_HeaderType_02;
+static int ett_rrc_HSDSCH_Info_r13;
+static int ett_rrc_T_dl_MAC_HeaderType_03;
+static int ett_rrc_HSDSCH_Info_TDD128_v9c0ext;
+static int ett_rrc_HARQ_Info;
+static int ett_rrc_T_memoryPartitioning;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHProcesses_OF_HARQMemorySize;
+static int ett_rrc_HARQ_Info_r7;
+static int ett_rrc_T_memoryPartitioning_01;
+static int ett_rrc_T_explicit;
+static int ett_rrc_HARQ_Info_r11;
+static int ett_rrc_T_memoryPartitioning_02;
+static int ett_rrc_T_explicit_01;
+static int ett_rrc_HARQ_Info_r13;
+static int ett_rrc_T_memoryPartitioning_03;
+static int ett_rrc_T_explicit_02;
+static int ett_rrc_IndividualDL_CCTrCH_Info;
+static int ett_rrc_T_tfcs_SignallingMode;
+static int ett_rrc_IndividualDL_CCTrCH_InfoList;
+static int ett_rrc_IndividualUL_CCTrCH_Info;
+static int ett_rrc_IndividualUL_CCTrCH_InfoList;
+static int ett_rrc_LogicalChannelByRB;
+static int ett_rrc_LogicalChannelList;
+static int ett_rrc_SEQUENCE_SIZE_1_15_OF_LogicalChannelByRB;
+static int ett_rrc_MAC_d_FlowIdentityDCHandHSDSCH;
+static int ett_rrc_MAC_d_PDU_SizeInfo_List;
+static int ett_rrc_MAC_d_PDUsizeInfo;
+static int ett_rrc_MAC_hs_AddReconfQueue_List;
+static int ett_rrc_MAC_hs_AddReconfQueue;
+static int ett_rrc_MAC_hs_DelQueue_List;
+static int ett_rrc_MAC_hs_DelQueue;
+static int ett_rrc_MAC_ehs_AddReconfReordQ_List;
+static int ett_rrc_MAC_ehs_AddReconfReordQ_List_r9;
+static int ett_rrc_MAC_ehs_AddReconfReordQ_List_TDD128_v9c0ext;
+static int ett_rrc_MAC_ehs_AddReconfReordQ_List_r11;
+static int ett_rrc_MAC_ehs_AddReconfReordQ;
+static int ett_rrc_MAC_ehs_AddReconfReordQ_r9;
+static int ett_rrc_MAC_ehs_AddReconfReordQ_TDD128_v9c0ext;
+static int ett_rrc_MAC_ehs_AddReconfReordQ_r11;
+static int ett_rrc_MAC_ehs_DelReordQ_List;
+static int ett_rrc_MAC_ehs_DelReordQ;
+static int ett_rrc_MAC_ehs_QueueIdDCHandHSDSCH;
+static int ett_rrc_NumberOfTbSizeAndTTIList;
+static int ett_rrc_NumberOfTbSizeAndTTIList_item;
+static int ett_rrc_Non_allowedTFC_List;
+static int ett_rrc_NumberOfTransportBlocks;
+static int ett_rrc_OctetModeRLC_SizeInfoType1;
+static int ett_rrc_T_sizeType2_01;
+static int ett_rrc_T_sizeType3_01;
+static int ett_rrc_OctetModeRLC_SizeInfoType2;
+static int ett_rrc_PowerOffsetInfoShort;
+static int ett_rrc_T_modeSpecificInfo_23;
+static int ett_rrc_T_fdd_53;
+static int ett_rrc_PowerOffsetInformation;
+static int ett_rrc_PowerOffsetInformation_10msMode;
+static int ett_rrc_PreDefTransChConfiguration;
+static int ett_rrc_QualityTarget;
+static int ett_rrc_RestrictedTrChInfo;
+static int ett_rrc_RestrictedTrChInfoList;
+static int ett_rrc_SemistaticTF_Information;
+static int ett_rrc_SignalledGainFactors;
+static int ett_rrc_T_modeSpecificInfo_24;
+static int ett_rrc_T_fdd_54;
+static int ett_rrc_SplitTFCI_Signalling;
+static int ett_rrc_TFC_Subset;
+static int ett_rrc_TFC_SubsetList;
+static int ett_rrc_TFC_SubsetList_item;
+static int ett_rrc_T_modeSpecificInfo_25;
+static int ett_rrc_T_tdd_17;
+static int ett_rrc_TFCI_Field2_Information;
+static int ett_rrc_TFCI_Range;
+static int ett_rrc_TFCI_RangeList;
+static int ett_rrc_TFCS;
+static int ett_rrc_TFCS_r12;
+static int ett_rrc_TFCS_Identity;
+static int ett_rrc_TFCS_InfoForDSCH;
+static int ett_rrc_TFCS_ReconfAdd;
+static int ett_rrc_T_ctfcSize;
+static int ett_rrc_T_ctfc2Bit;
+static int ett_rrc_T_ctfc2Bit_item;
+static int ett_rrc_T_ctfc4Bit;
+static int ett_rrc_T_ctfc4Bit_item;
+static int ett_rrc_T_ctfc6Bit;
+static int ett_rrc_T_ctfc6Bit_item;
+static int ett_rrc_T_ctfc8Bit;
+static int ett_rrc_T_ctfc8Bit_item;
+static int ett_rrc_T_ctfc12Bit;
+static int ett_rrc_T_ctfc12Bit_item;
+static int ett_rrc_T_ctfc16Bit;
+static int ett_rrc_T_ctfc16Bit_item;
+static int ett_rrc_T_ctfc24Bit;
+static int ett_rrc_T_ctfc24Bit_item;
+static int ett_rrc_TFCS_ReconfAdd_r12;
+static int ett_rrc_T_ctfcSize_01;
+static int ett_rrc_T_ctfc2Bit_01;
+static int ett_rrc_T_ctfc2Bit_item_01;
+static int ett_rrc_T_ctfc4Bit_01;
+static int ett_rrc_T_ctfc4Bit_item_01;
+static int ett_rrc_T_ctfc6Bit_01;
+static int ett_rrc_T_ctfc6Bit_item_01;
+static int ett_rrc_T_ctfc8Bit_01;
+static int ett_rrc_T_ctfc8Bit_item_01;
+static int ett_rrc_T_ctfc12Bit_01;
+static int ett_rrc_T_ctfc12Bit_item_01;
+static int ett_rrc_T_ctfc16Bit_01;
+static int ett_rrc_T_ctfc16Bit_item_01;
+static int ett_rrc_T_ctfc24Bit_01;
+static int ett_rrc_T_ctfc24Bit_item_01;
+static int ett_rrc_TFCS_Removal;
+static int ett_rrc_TFCS_RemovalList;
+static int ett_rrc_TM_SignallingInfo;
+static int ett_rrc_T_tm_SignallingMode;
+static int ett_rrc_T_mode2;
+static int ett_rrc_TransportChannelConcatInfo;
+static int ett_rrc_TransportChannelIdentityDCHandDSCH;
+static int ett_rrc_TransportFormatSet;
+static int ett_rrc_TransportFormatSet_LCR;
+static int ett_rrc_UL_AddReconfTransChInfoList;
+static int ett_rrc_UL_AddReconfTransChInfoList_r6;
+static int ett_rrc_UL_AddReconfTransChInfoList_r7;
+static int ett_rrc_UL_AddReconfTransChInfoList_r8;
+static int ett_rrc_UL_AddReconfTransChInfoList_r14;
+static int ett_rrc_UL_AddReconfTransChInformation;
+static int ett_rrc_UL_AddReconfTransChInformation_r6;
+static int ett_rrc_T_dch_usch;
+static int ett_rrc_T_e_dch_02;
+static int ett_rrc_UL_AddReconfTransChInformation_r7;
+static int ett_rrc_T_dch_usch_01;
+static int ett_rrc_T_e_dch_03;
+static int ett_rrc_T_modeSpecific;
+static int ett_rrc_T_fdd_55;
+static int ett_rrc_UL_AddReconfTransChInformation_r8;
+static int ett_rrc_T_dch_usch_02;
+static int ett_rrc_T_e_dch_04;
+static int ett_rrc_T_modeSpecific_01;
+static int ett_rrc_T_fdd_56;
+static int ett_rrc_UL_AddReconfTransChInformation_r14;
+static int ett_rrc_T_dch_usch_03;
+static int ett_rrc_T_e_dch_05;
+static int ett_rrc_T_modeSpecific_02;
+static int ett_rrc_T_fdd_57;
+static int ett_rrc_UL_CommonTransChInfo;
+static int ett_rrc_T_modeSpecificInfo_26;
+static int ett_rrc_T_fdd_58;
+static int ett_rrc_T_tdd_18;
+static int ett_rrc_UL_CommonTransChInfo_r4;
+static int ett_rrc_T_modeSpecificInfo_27;
+static int ett_rrc_T_fdd_59;
+static int ett_rrc_T_tdd_19;
+static int ett_rrc_UL_CommonTransChInfo_r12;
+static int ett_rrc_T_modeSpecificInfo_28;
+static int ett_rrc_T_fdd_60;
+static int ett_rrc_T_tdd_20;
+static int ett_rrc_UL_ControlledTrChList;
+static int ett_rrc_UL_DeletedTransChInfoList;
+static int ett_rrc_UL_DeletedTransChInfoList_r6;
+static int ett_rrc_UL_TransportChannelIdentity;
+static int ett_rrc_UL_TransportChannelIdentity_r6;
+static int ett_rrc_T_dch_usch_04;
+static int ett_rrc_USCH_TransportChannelsInfo;
+static int ett_rrc_USCH_TransportChannelsInfo_item;
+static int ett_rrc_AC_To_ASC_MappingTable;
+static int ett_rrc_AccessServiceClass_FDD;
+static int ett_rrc_T_assignedSubChannelNumber;
+static int ett_rrc_AccessServiceClass_TDD;
+static int ett_rrc_T_channelisationCodeIndices;
+static int ett_rrc_T_subchannelSize;
+static int ett_rrc_T_size2;
+static int ett_rrc_T_size4;
+static int ett_rrc_T_subchannels_01;
+static int ett_rrc_T_size8;
+static int ett_rrc_T_subchannels_02;
+static int ett_rrc_AccessServiceClass_TDD_r7;
+static int ett_rrc_T_channelisationCodeIndices_01;
+static int ett_rrc_T_subchannelSize_01;
+static int ett_rrc_T_size2_01;
+static int ett_rrc_T_size4_01;
+static int ett_rrc_T_subchannels_04;
+static int ett_rrc_T_size8_01;
+static int ett_rrc_T_subchannels_05;
+static int ett_rrc_T_size16;
+static int ett_rrc_T_subchannels_06;
+static int ett_rrc_AccessServiceClass_TDD_LCR_r4;
+static int ett_rrc_T_availableSYNC_UlCodesIndics;
+static int ett_rrc_T_subchannelSize_02;
+static int ett_rrc_T_size2_02;
+static int ett_rrc_T_size4_02;
+static int ett_rrc_T_subchannels_08;
+static int ett_rrc_T_size8_02;
+static int ett_rrc_T_subchannels_09;
+static int ett_rrc_AdditionalPRACH_TF_and_TFCS_CCCH_IEs;
+static int ett_rrc_AdditionalPRACH_TF_and_TFCS_CCCH;
+static int ett_rrc_AdditionalPRACH_TF_and_TFCS_CCCH_List;
+static int ett_rrc_AdditionalDLSecCellInfoListFDD;
+static int ett_rrc_AdditionalDLSecCellInfoListFDD_r11;
+static int ett_rrc_AdditionalDLSecCellInfoListFDD2;
+static int ett_rrc_AdditionalDLSecCellInfoHandoverToUtranListFDD;
+static int ett_rrc_AdditionalDLSecCellInfoFDD;
+static int ett_rrc_AdditionalDLSecCellInfoFDD_r11;
+static int ett_rrc_AdditionalDLSecCellInfoFDD_HandoverToUtran;
+static int ett_rrc_AdditionalSecondaryCellInfoForMixedTTIConfiguration;
+static int ett_rrc_AICH_Info;
+static int ett_rrc_AICH_Info_Compressed;
+static int ett_rrc_AllocationPeriodInfo;
+static int ett_rrc_Antenna3And4;
+static int ett_rrc_Antenna3And4_S_CPICH;
+static int ett_rrc_Antenna3And4_D_CPICH;
+static int ett_rrc_Antenna3_D_CPICH;
+static int ett_rrc_Antenna4_D_CPICH;
+static int ett_rrc_Antenna3_S_CPICH;
+static int ett_rrc_Antenna4_S_CPICH;
+static int ett_rrc_AP_Signature_VCAM;
+static int ett_rrc_ASCSetting_FDD;
+static int ett_rrc_ASCSetting_TDD;
+static int ett_rrc_ASCSetting_TDD_r7;
+static int ett_rrc_ASCSetting_TDD_LCR_r4;
+static int ett_rrc_AvailableAP_Signature_VCAMList;
+static int ett_rrc_AvailableAP_SignatureList;
+static int ett_rrc_AvailableAP_SubchannelList;
+static int ett_rrc_AvailableMinimumSF_ListVCAM;
+static int ett_rrc_AvailableMinimumSF_VCAM;
+static int ett_rrc_AvailableSignatures;
+static int ett_rrc_AvailableSubChannelNumbers;
+static int ett_rrc_CCTrCH_PowerControlInfo;
+static int ett_rrc_CCTrCH_PowerControlInfo_r4;
+static int ett_rrc_CCTrCH_PowerControlInfo_r5;
+static int ett_rrc_CCTrCH_PowerControlInfo_r7;
+static int ett_rrc_CD_AccessSlotSubchannelList;
+static int ett_rrc_CD_SignatureCodeList;
+static int ett_rrc_CellAndChannelIdentity;
+static int ett_rrc_ChannelAssignmentActive;
+static int ett_rrc_ChannelReqParamsForUCSM;
+static int ett_rrc_CodeRange;
+static int ett_rrc_CodeResourceInformation_TDD128;
+static int ett_rrc_Common_E_DCH_ResourceInfoList;
+static int ett_rrc_Common_E_DCH_ResourceInfoListExt;
+static int ett_rrc_Common_E_RNTI_Info;
+static int ett_rrc_Common_E_RNTI_Info_item;
+static int ett_rrc_CommonEDCHResourceConfigInfoListExt;
+static int ett_rrc_CommonEDCHSystemInfo;
+static int ett_rrc_T_modeSpecificInfo_29;
+static int ett_rrc_T_dummy_14;
+static int ett_rrc_T_tdd_21;
+static int ett_rrc_T_tdd128_12;
+static int ett_rrc_T_ccch_transmission_Info;
+static int ett_rrc_CommonEDCHSystemInfoFDD;
+static int ett_rrc_SEQUENCE_SIZE_1_maxEDCHs_OF_Common_E_DCH_ResourceInfoList;
+static int ett_rrc_CommonEDCHSystemInfoParamConcurrentTTI;
+static int ett_rrc_CommonERGCHChannelConfig;
+static int ett_rrc_CommonERGCHInfoFDD;
+static int ett_rrc_T_configurationInfo_03;
+static int ett_rrc_T_newConfiguration_07;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_CommonERGCHChannelConfig;
+static int ett_rrc_CommonTimeslotInfo;
+static int ett_rrc_CommonTimeslotInfoMBMS;
+static int ett_rrc_CommonTimeslotInfoSCCPCH;
+static int ett_rrc_ControlChannelDRXInfo_TDD128_r8;
+static int ett_rrc_T_controlChannelDrxOperation;
+static int ett_rrc_T_continue;
+static int ett_rrc_T_newOperation;
+static int ett_rrc_CPCH_PersistenceLevels;
+static int ett_rrc_CPCH_PersistenceLevelsList;
+static int ett_rrc_CPCH_SetInfo;
+static int ett_rrc_CPCH_SetInfoList;
+static int ett_rrc_DCH_Enhancements_Info_FDD;
+static int ett_rrc_T_configurationInfo_04;
+static int ett_rrc_T_newConfiguration_08;
+static int ett_rrc_T_ulTransmissionMode;
+static int ett_rrc_T_tenORtwentyMS;
+static int ett_rrc_T_dlFETMode;
+static int ett_rrc_T_full;
+static int ett_rrc_DesignatedNonServingHS_DSCHCellInfo;
+static int ett_rrc_DL_CCTrCh;
+static int ett_rrc_DL_CCTrCh_r4;
+static int ett_rrc_T_tddOption_03;
+static int ett_rrc_T_tdd384_12;
+static int ett_rrc_T_tdd128_13;
+static int ett_rrc_DL_CCTrCh_r7;
+static int ett_rrc_T_tddOption_04;
+static int ett_rrc_T_tdd384_13;
+static int ett_rrc_T_tdd768_07;
+static int ett_rrc_T_tdd128_14;
+static int ett_rrc_DL_CCTrChList;
+static int ett_rrc_DL_CCTrChList_r7;
+static int ett_rrc_DL_CCTrChList_r4;
+static int ett_rrc_DL_CCTrChListToRemove;
+static int ett_rrc_DL_ChannelisationCode;
+static int ett_rrc_DL_ChannelisationCodeList;
+static int ett_rrc_DL_CommonInformation;
+static int ett_rrc_T_modeSpecificInfo_30;
+static int ett_rrc_T_fdd_61;
+static int ett_rrc_T_tdd_22;
+static int ett_rrc_DL_CommonInformation_r4;
+static int ett_rrc_T_modeSpecificInfo_31;
+static int ett_rrc_T_fdd_62;
+static int ett_rrc_T_tdd_23;
+static int ett_rrc_T_tddOption_05;
+static int ett_rrc_T_tdd128_15;
+static int ett_rrc_DL_CommonInformation_r5;
+static int ett_rrc_T_modeSpecificInfo_32;
+static int ett_rrc_T_fdd_63;
+static int ett_rrc_T_tdd_24;
+static int ett_rrc_T_tddOption_06;
+static int ett_rrc_T_tdd128_16;
+static int ett_rrc_DL_CommonInformation_r6;
+static int ett_rrc_T_dl_dpchInfoCommon;
+static int ett_rrc_T_modeSpecificInfo_33;
+static int ett_rrc_T_fdd_64;
+static int ett_rrc_T_tdd_25;
+static int ett_rrc_T_tddOption_07;
+static int ett_rrc_T_tdd128_17;
+static int ett_rrc_DL_CommonInformation_r7;
+static int ett_rrc_T_dl_dpchInfoCommon_01;
+static int ett_rrc_T_modeSpecificInfo_34;
+static int ett_rrc_T_fdd_65;
+static int ett_rrc_T_tdd_26;
+static int ett_rrc_T_tddOption_08;
+static int ett_rrc_T_tdd128_18;
+static int ett_rrc_DL_CommonInformation_r8;
+static int ett_rrc_T_dl_dpchInfoCommon_02;
+static int ett_rrc_T_modeSpecificInfo_35;
+static int ett_rrc_T_fdd_66;
+static int ett_rrc_T_tdd_27;
+static int ett_rrc_T_tddOption_09;
+static int ett_rrc_T_tdd128_19;
+static int ett_rrc_DL_CommonInformation_r10;
+static int ett_rrc_T_dl_dpchInfoCommon_03;
+static int ett_rrc_T_modeSpecificInfo_36;
+static int ett_rrc_T_fdd_67;
+static int ett_rrc_T_tdd_28;
+static int ett_rrc_T_tddOption_10;
+static int ett_rrc_T_tdd128_20;
+static int ett_rrc_DL_CommonInformation_r11;
+static int ett_rrc_T_dl_dpchInfoCommon_04;
+static int ett_rrc_T_modeSpecificInfo_37;
+static int ett_rrc_T_fdd_68;
+static int ett_rrc_T_tdd_29;
+static int ett_rrc_T_tddOption_11;
+static int ett_rrc_T_tdd128_21;
+static int ett_rrc_DL_CommonInformation_r12;
+static int ett_rrc_T_dl_dpchInfoCommon_05;
+static int ett_rrc_T_modeSpecificInfo_38;
+static int ett_rrc_T_fdd_69;
+static int ett_rrc_T_tdd_30;
+static int ett_rrc_T_tddOption_12;
+static int ett_rrc_T_tdd128_22;
+static int ett_rrc_DL_CommonInformationPost;
+static int ett_rrc_DL_CommonInformationPredef;
+static int ett_rrc_DL_DPCH_InfoCommon;
+static int ett_rrc_T_cfnHandling;
+static int ett_rrc_T_initialise;
+static int ett_rrc_T_modeSpecificInfo_39;
+static int ett_rrc_T_fdd_70;
+static int ett_rrc_T_tdd_31;
+static int ett_rrc_DL_DPCH_InfoCommon_r4;
+static int ett_rrc_T_cfnHandling_01;
+static int ett_rrc_T_initialise_01;
+static int ett_rrc_T_modeSpecificInfo_40;
+static int ett_rrc_T_fdd_71;
+static int ett_rrc_T_tdd_32;
+static int ett_rrc_DL_DPCH_InfoCommon_r6;
+static int ett_rrc_T_cfnHandling_02;
+static int ett_rrc_T_maintain;
+static int ett_rrc_T_modeSpecificInfo_41;
+static int ett_rrc_T_fdd_72;
+static int ett_rrc_T_tdd_33;
+static int ett_rrc_DL_DPCH_InfoCommon_r12;
+static int ett_rrc_T_cfnHandling_03;
+static int ett_rrc_T_maintain_01;
+static int ett_rrc_T_modeSpecificInfo_42;
+static int ett_rrc_T_fdd_73;
+static int ett_rrc_T_tdd_34;
+static int ett_rrc_DL_DPCH_InfoCommonPost;
+static int ett_rrc_DL_DPCH_InfoCommonPredef;
+static int ett_rrc_T_modeSpecificInfo_43;
+static int ett_rrc_T_fdd_74;
+static int ett_rrc_T_tdd_35;
+static int ett_rrc_DL_DPCH_InfoPerRL;
+static int ett_rrc_T_fdd_75;
+static int ett_rrc_T_tdd_36;
+static int ett_rrc_DL_DPCH_InfoPerRL_r4;
+static int ett_rrc_T_fdd_76;
+static int ett_rrc_T_tdd_37;
+static int ett_rrc_DL_DPCH_InfoPerRL_r5;
+static int ett_rrc_T_fdd_77;
+static int ett_rrc_T_tdd_38;
+static int ett_rrc_DL_DPCH_InfoPerRL_r6;
+static int ett_rrc_T_fdd_78;
+static int ett_rrc_T_tdd_39;
+static int ett_rrc_DL_DPCH_InfoPerRL_r7;
+static int ett_rrc_T_fdd_79;
+static int ett_rrc_T_tdd_40;
+static int ett_rrc_DL_DPCH_InfoPerRL_r12;
+static int ett_rrc_T_fdd_80;
+static int ett_rrc_T_tdd_41;
+static int ett_rrc_DL_DPCH_InfoPerRL_ASU;
+static int ett_rrc_T_fdd_81;
+static int ett_rrc_T_tdd_42;
+static int ett_rrc_DL_FDPCH_InfoPerRL_r6;
+static int ett_rrc_DL_FDPCH_InfoPerRL_r7;
+static int ett_rrc_DL_FDPCH_InfoPerRL_r13;
+static int ett_rrc_DL_DPCH_InfoPerRL_PostFDD;
+static int ett_rrc_DL_DPCH_InfoPerRL_PostTDD;
+static int ett_rrc_DL_DPCH_InfoPerRL_PostTDD_LCR_r4;
+static int ett_rrc_DL_DPCH_PowerControlInfo;
+static int ett_rrc_T_modeSpecificInfo_44;
+static int ett_rrc_T_fdd_82;
+static int ett_rrc_T_tdd_43;
+static int ett_rrc_DL_FDPCH_InfoCommon_r6;
+static int ett_rrc_T_cfnHandling_04;
+static int ett_rrc_T_maintain_02;
+static int ett_rrc_DL_HSPDSCH_Information;
+static int ett_rrc_T_modeSpecificInfo_45;
+static int ett_rrc_T_tdd_44;
+static int ett_rrc_T_tdd384_14;
+static int ett_rrc_T_tdd128_23;
+static int ett_rrc_DL_HSPDSCH_Information_r6;
+static int ett_rrc_T_modeSpecificInfo_46;
+static int ett_rrc_T_tdd_45;
+static int ett_rrc_T_tdd384_15;
+static int ett_rrc_T_tdd128_24;
+static int ett_rrc_DL_HSPDSCH_Information_r7;
+static int ett_rrc_T_modeSpecificInfo_47;
+static int ett_rrc_T_tdd_46;
+static int ett_rrc_T_tdd384_16;
+static int ett_rrc_T_tdd768_08;
+static int ett_rrc_T_tdd128_25;
+static int ett_rrc_T_fdd_83;
+static int ett_rrc_DL_HSPDSCH_Information_r8;
+static int ett_rrc_T_modeSpecificInfo_48;
+static int ett_rrc_T_tdd_47;
+static int ett_rrc_T_tdd384_17;
+static int ett_rrc_T_tdd768_09;
+static int ett_rrc_T_tdd128_26;
+static int ett_rrc_T_fdd_84;
+static int ett_rrc_DL_HSPDSCH_Information_r8_ext;
+static int ett_rrc_T_modeSpecificInfo_49;
+static int ett_rrc_T_tdd_48;
+static int ett_rrc_T_tdd128_27;
+static int ett_rrc_DL_HSPDSCH_Information_r8_ext2;
+static int ett_rrc_DL_HSPDSCH_Information_r9;
+static int ett_rrc_T_modeSpecificInfo_50;
+static int ett_rrc_T_tdd_49;
+static int ett_rrc_T_tdd384_18;
+static int ett_rrc_T_tdd768_10;
+static int ett_rrc_T_tdd128_28;
+static int ett_rrc_T_fdd_85;
+static int ett_rrc_DL_HSPDSCH_Information_r11;
+static int ett_rrc_T_modeSpecificInfo_51;
+static int ett_rrc_T_tdd_50;
+static int ett_rrc_T_tdd384_19;
+static int ett_rrc_T_tdd768_11;
+static int ett_rrc_T_tdd128_29;
+static int ett_rrc_T_fdd_86;
+static int ett_rrc_DL_HSPDSCH_Information_r12;
+static int ett_rrc_T_modeSpecificInfo_52;
+static int ett_rrc_T_tdd_51;
+static int ett_rrc_T_tdd384_20;
+static int ett_rrc_T_tdd768_12;
+static int ett_rrc_T_tdd128_30;
+static int ett_rrc_T_fdd_87;
+static int ett_rrc_DL_HSPDSCH_MultiCarrier_Information;
+static int ett_rrc_DL_HSPDSCH_MultiCarrier_Information_item;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD128_MultiCarrier;
+static int ett_rrc_DL_HSPDSCH_TS_Configuration;
+static int ett_rrc_DL_HSPDSCH_TS_Configuration_item;
+static int ett_rrc_DL_HSPDSCH_TS_Configuration_VHCR;
+static int ett_rrc_DL_HSPDSCH_TS_Configuration_VHCR_item;
+static int ett_rrc_DL_InformationPerRL;
+static int ett_rrc_T_modeSpecificInfo_53;
+static int ett_rrc_T_fdd_88;
+static int ett_rrc_DL_InformationPerRL_r4;
+static int ett_rrc_T_modeSpecificInfo_54;
+static int ett_rrc_T_fdd_89;
+static int ett_rrc_DL_InformationPerRL_r5;
+static int ett_rrc_T_modeSpecificInfo_55;
+static int ett_rrc_T_fdd_90;
+static int ett_rrc_DL_InformationPerRL_r5bis;
+static int ett_rrc_T_modeSpecificInfo_56;
+static int ett_rrc_T_fdd_91;
+static int ett_rrc_DL_InformationPerRL_r6;
+static int ett_rrc_T_modeSpecificInfo_57;
+static int ett_rrc_T_fdd_92;
+static int ett_rrc_T_dl_dpchInfo;
+static int ett_rrc_T_e_HICH_Info;
+static int ett_rrc_T_e_RGCH_Info_03;
+static int ett_rrc_DL_InformationPerRL_v6b0ext;
+static int ett_rrc_DL_InformationPerRL_r7;
+static int ett_rrc_T_modeSpecificInfo_58;
+static int ett_rrc_T_fdd_93;
+static int ett_rrc_T_dl_dpchInfo_01;
+static int ett_rrc_T_modeSpecificInfo2;
+static int ett_rrc_T_fdd_94;
+static int ett_rrc_T_e_HICH_Info_01;
+static int ett_rrc_T_e_RGCH_Info_04;
+static int ett_rrc_T_tdd_52;
+static int ett_rrc_T_tdd384_tdd768;
+static int ett_rrc_T_tdd128_31;
+static int ett_rrc_DL_InformationPerRL_r8;
+static int ett_rrc_T_modeSpecificInfo_59;
+static int ett_rrc_T_fdd_95;
+static int ett_rrc_T_dl_dpchInfo_02;
+static int ett_rrc_T_modeSpecificInfo2_01;
+static int ett_rrc_T_fdd_96;
+static int ett_rrc_T_e_HICH_Info_02;
+static int ett_rrc_T_e_RGCH_Info_05;
+static int ett_rrc_T_tdd_53;
+static int ett_rrc_T_tdd384_tdd768_01;
+static int ett_rrc_T_tdd128_32;
+static int ett_rrc_DL_InformationPerRL_r11;
+static int ett_rrc_T_modeSpecificInfo_60;
+static int ett_rrc_T_fdd_97;
+static int ett_rrc_T_dl_dpchInfo_03;
+static int ett_rrc_T_modeSpecificInfo2_02;
+static int ett_rrc_T_fdd_98;
+static int ett_rrc_T_e_HICH_Info_03;
+static int ett_rrc_T_e_RGCH_Info_06;
+static int ett_rrc_T_f_TPICH_Info;
+static int ett_rrc_T_tdd_54;
+static int ett_rrc_T_tdd384_tdd768_02;
+static int ett_rrc_T_tdd128_33;
+static int ett_rrc_DL_InformationPerRL_r12;
+static int ett_rrc_T_modeSpecificInfo_61;
+static int ett_rrc_T_fdd_99;
+static int ett_rrc_T_dl_dpchInfo_04;
+static int ett_rrc_T_modeSpecificInfo2_03;
+static int ett_rrc_T_fdd_100;
+static int ett_rrc_T_e_HICH_Info_04;
+static int ett_rrc_T_e_RGCH_Info_07;
+static int ett_rrc_T_f_TPICH_Info_01;
+static int ett_rrc_T_tdd_55;
+static int ett_rrc_T_tdd384_tdd768_03;
+static int ett_rrc_T_tdd128_34;
+static int ett_rrc_DL_InformationPerRL_r13;
+static int ett_rrc_T_modeSpecificInfo_62;
+static int ett_rrc_T_fdd_101;
+static int ett_rrc_T_dl_dpchInfo_05;
+static int ett_rrc_T_modeSpecificInfo2_04;
+static int ett_rrc_T_fdd_102;
+static int ett_rrc_T_e_HICH_Info_05;
+static int ett_rrc_T_e_RGCH_Info_08;
+static int ett_rrc_T_f_TPICH_Info_02;
+static int ett_rrc_T_tdd_56;
+static int ett_rrc_T_tdd384_tdd768_04;
+static int ett_rrc_T_tdd128_35;
+static int ett_rrc_DL_InformationPerRL_List;
+static int ett_rrc_DL_InformationPerRL_List_r4;
+static int ett_rrc_DL_InformationPerRL_List_r5;
+static int ett_rrc_DL_InformationPerRL_List_r6;
+static int ett_rrc_DL_InformationPerRL_List_v6b0ext;
+static int ett_rrc_DL_InformationPerRL_List_r5bis;
+static int ett_rrc_DL_InformationPerRL_List_r7;
+static int ett_rrc_DL_InformationPerRL_List_r8;
+static int ett_rrc_DL_InformationPerRL_List_r11;
+static int ett_rrc_DL_InformationPerRL_List_r12;
+static int ett_rrc_DL_InformationPerRL_List_r13;
+static int ett_rrc_DL_InformationPerRL_ListPostFDD;
+static int ett_rrc_DL_InformationPerRL_PostFDD;
+static int ett_rrc_DL_InformationPerRL_PostTDD;
+static int ett_rrc_DL_InformationPerRL_PostTDD_LCR_r4;
+static int ett_rrc_DL_MultiCarrier_Information;
+static int ett_rrc_DL_PDSCH_Information;
+static int ett_rrc_Dl_rate_matching_restriction;
+static int ett_rrc_DL_SecondaryCellInfoFDD;
+static int ett_rrc_T_newConfiguration_09;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_Codes;
+static int ett_rrc_DL_SecondaryCellInfoFDD_v890ext;
+static int ett_rrc_DL_SecondaryCellInfoFDD_r9;
+static int ett_rrc_T_configurationInfo_05;
+static int ett_rrc_T_newConfiguration_10;
+static int ett_rrc_DL_SecondaryCellInfoFDD_r10;
+static int ett_rrc_T_configurationInfo_06;
+static int ett_rrc_T_newConfiguration_11;
+static int ett_rrc_DL_SecondaryCellInfoFDD_r11;
+static int ett_rrc_T_configurationInfo_07;
+static int ett_rrc_T_newConfiguration_12;
+static int ett_rrc_DL_SecondaryCellInfoFDD_HandoverToUtran;
+static int ett_rrc_T_configurationInfo_08;
+static int ett_rrc_T_newConfiguration_13;
+static int ett_rrc_DL_TPC_PowerOffsetPerRL;
+static int ett_rrc_DL_TPC_PowerOffsetPerRL_List;
+static int ett_rrc_DL_TS_ChannelisationCodesShort;
+static int ett_rrc_T_codesRepresentation;
+static int ett_rrc_T_consecutive;
+static int ett_rrc_T_bitmap;
+static int ett_rrc_DL_TS_ChannelisationCodesShort_VHCR;
+static int ett_rrc_T_codesRepresentation_01;
+static int ett_rrc_T_consecutive_01;
+static int ett_rrc_T_bitmap_01;
+static int ett_rrc_DL_ChannelCodes_MBSFN_IMB384;
+static int ett_rrc_DLUL_HSPA_Information_r8;
+static int ett_rrc_DLUL_HSPA_Information_r9;
+static int ett_rrc_DLUL_HSPA_Information_r10;
+static int ett_rrc_DownlinkAdditionalTimeslots;
+static int ett_rrc_T_parameters;
+static int ett_rrc_T_sameAsLast;
+static int ett_rrc_T_newParameters;
+static int ett_rrc_DownlinkAdditionalTimeslots_VHCR;
+static int ett_rrc_T_parameters_01;
+static int ett_rrc_T_sameAsLast_01;
+static int ett_rrc_T_newParameters_01;
+static int ett_rrc_DownlinkAdditionalTimeslots_LCR_r4;
+static int ett_rrc_T_parameters_02;
+static int ett_rrc_T_sameAsLast_02;
+static int ett_rrc_T_newParameters_02;
+static int ett_rrc_DownlinkAdditionalTimeslots_r7;
+static int ett_rrc_T_parameters_03;
+static int ett_rrc_T_sameAsLast_03;
+static int ett_rrc_T_newParameters_03;
+static int ett_rrc_DownlinkTimeslotsCodes;
+static int ett_rrc_T_moreTimeslots;
+static int ett_rrc_T_additionalTimeslots;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_DownlinkAdditionalTimeslots;
+static int ett_rrc_DownlinkTimeslotsCodes_VHCR;
+static int ett_rrc_T_moreTimeslots_01;
+static int ett_rrc_T_additionalTimeslots_01;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_DownlinkAdditionalTimeslots_VHCR;
+static int ett_rrc_DownlinkTimeslotsCodes_LCR_r4;
+static int ett_rrc_T_moreTimeslots_02;
+static int ett_rrc_T_additionalTimeslots_02;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_DownlinkAdditionalTimeslots_LCR_r4;
+static int ett_rrc_DownlinkTimeslotsCodes_r7;
+static int ett_rrc_T_moreTimeslots_03;
+static int ett_rrc_T_additionalTimeslots_03;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_DownlinkAdditionalTimeslots_r7;
+static int ett_rrc_DPCCH2Info;
+static int ett_rrc_DPCCH2InfoFDD;
+static int ett_rrc_T_configurationInfo_09;
+static int ett_rrc_T_newConfiguration_14;
+static int ett_rrc_DPCH_CompressedModeInfo;
+static int ett_rrc_DPCH_CompressedModeInfo_r8;
+static int ett_rrc_DPCH_CompressedModeInfo_r10;
+static int ett_rrc_DPCH_CompressedModeStatusInfo;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTGPS_OF_TGP_SequenceShort;
+static int ett_rrc_DPCH_CompressedModeStatusInfo_r10;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTGPS_OF_TGP_SequenceShort_r10;
+static int ett_rrc_DRX_Info;
+static int ett_rrc_DRX_Info_r12;
+static int ett_rrc_DSCH_Mapping;
+static int ett_rrc_DSCH_MappingList;
+static int ett_rrc_DSCH_TransportChannelsInfo;
+static int ett_rrc_DSCH_TransportChannelsInfo_item;
+static int ett_rrc_DTX_DRX_Info_r7;
+static int ett_rrc_DTX_DRX_Info_r12;
+static int ett_rrc_DTX_E_DCH_TTI_10ms;
+static int ett_rrc_DTX_E_DCH_TTI_2ms;
+static int ett_rrc_DTX_Info;
+static int ett_rrc_T_e_dch_TTI_Length;
+static int ett_rrc_DTX_Info_SecondaryUplinkFrequency;
+static int ett_rrc_T_e_dch_TTI_Length_01;
+static int ett_rrc_T_dtx_e_dch_TTI_2ms;
+static int ett_rrc_DynamicPersistenceLevelList;
+static int ett_rrc_DynamicPersistenceLevelTF_List;
+static int ett_rrc_DynamicTFInformationCCCH;
+static int ett_rrc_E_AGCH_DRX_Info_TDD128;
+static int ett_rrc_T_e_AGCH_DRX_InfoType;
+static int ett_rrc_T_e_AGCH_DRX_Parameters;
+static int ett_rrc_E_AGCH_Individual;
+static int ett_rrc_E_AGCH_Individual_VHCR;
+static int ett_rrc_E_AGCH_Individual_LCR;
+static int ett_rrc_T_midambleAllocationMode;
+static int ett_rrc_E_AGCH_Information;
+static int ett_rrc_E_AGCH_Information_r7;
+static int ett_rrc_T_modeSpecific_03;
+static int ett_rrc_T_fdd_103;
+static int ett_rrc_T_tdd_57;
+static int ett_rrc_T_tdd384_21;
+static int ett_rrc_T_tdd768_13;
+static int ett_rrc_T_tdd128_36;
+static int ett_rrc_E_AGCH_Information_r8;
+static int ett_rrc_T_modeSpecific_04;
+static int ett_rrc_T_fdd_104;
+static int ett_rrc_T_tdd_58;
+static int ett_rrc_T_tdd384_22;
+static int ett_rrc_T_tdd768_14;
+static int ett_rrc_T_tdd128_37;
+static int ett_rrc_E_AGCH_Information_TDD128;
+static int ett_rrc_E_AGCH_Set_Config;
+static int ett_rrc_E_AGCH_Set_Config_VHCR;
+static int ett_rrc_E_AGCH_Set_Config_LCR;
+static int ett_rrc_E_ROCH_Information;
+static int ett_rrc_E_DCH_ReconfigurationInfo;
+static int ett_rrc_SEQUENCE_SIZE_1_maxEDCHRL_OF_E_DCH_RL_InfoOtherCell;
+static int ett_rrc_E_DCH_ReconfigurationInfo_r7;
+static int ett_rrc_E_DCH_ReconfigurationInfo_r11;
+static int ett_rrc_SEQUENCE_SIZE_1_maxEDCHRL_OF_E_DCH_RL_InfoOtherCell_r11;
+static int ett_rrc_E_DCH_ReconfigurationInfo_SecULFrequency;
+static int ett_rrc_SEQUENCE_SIZE_1_maxEDCHRL_OF_E_DCH_RL_InfoOtherCell_SecULFreq;
+static int ett_rrc_E_DCH_RL_InfoNewServingCell;
+static int ett_rrc_T_servingGrant_03;
+static int ett_rrc_T_e_RGCH_Info_09;
+static int ett_rrc_E_DCH_RL_InfoNewServingCell_r7;
+static int ett_rrc_T_servingGrant_04;
+static int ett_rrc_T_e_RGCH_Info_10;
+static int ett_rrc_E_DCH_RL_InfoNewServingCell_r11;
+static int ett_rrc_T_servingGrant_05;
+static int ett_rrc_T_e_RGCH_Info_11;
+static int ett_rrc_E_DCH_RL_InfoNewSecServingCell;
+static int ett_rrc_T_e_RGCH_Info_12;
+static int ett_rrc_E_DCH_RL_InfoOtherCell;
+static int ett_rrc_T_e_HICH_Info_06;
+static int ett_rrc_T_e_RGCH_Info_13;
+static int ett_rrc_E_DCH_RL_InfoOtherCell_r11;
+static int ett_rrc_T_e_HICH_Info_07;
+static int ett_rrc_T_e_RGCH_Info_14;
+static int ett_rrc_E_DCH_RL_InfoOtherCell_SecULFreq;
+static int ett_rrc_T_e_RGCH_Info_15;
+static int ett_rrc_E_DCH_RL_InfoSameServingCell;
+static int ett_rrc_E_DCH_SPS_Information_TDD128;
+static int ett_rrc_T_e_dch_SPS_Operation;
+static int ett_rrc_E_DCH_SPS_NewOperation_TDD128;
+static int ett_rrc_T_initialSPSInfoForEDCH;
+static int ett_rrc_E_DCH_TxPatternList_TDD128;
+static int ett_rrc_E_DCH_TxPatternList_TDD128_item;
+static int ett_rrc_E_DPCCH_Info;
+static int ett_rrc_E_DPCCH_Info_r7;
+static int ett_rrc_E_DPDCH_Info;
+static int ett_rrc_E_DPDCH_Info_r7;
+static int ett_rrc_E_DPDCH_Info_r8;
+static int ett_rrc_E_DPDCH_Reference_E_TFCI;
+static int ett_rrc_E_DPDCH_Reference_E_TFCI_r7;
+static int ett_rrc_E_DPDCH_Reference_E_TFCIList;
+static int ett_rrc_E_DPDCH_Reference_E_TFCIList_r7;
+static int ett_rrc_E_DPDCH_SchedulingInfoConfiguration;
+static int ett_rrc_E_DPDCH_SchedulingTransmConfiguration;
+static int ett_rrc_T_servingGrant_06;
+static int ett_rrc_E_HICH_Information;
+static int ett_rrc_E_HICH_Information_r11;
+static int ett_rrc_E_HICH_Information_CommonEdch;
+static int ett_rrc_E_HICH_Information_TDD384_768;
+static int ett_rrc_T_modeSpecificInfo_63;
+static int ett_rrc_E_HICH_Information_LCR;
+static int ett_rrc_T_midambleAllocationMode_01;
+static int ett_rrc_E_HICH_Information_TDD128;
+static int ett_rrc_E_HICH_Information_LCR_List;
+static int ett_rrc_E_HICH_Information_For_SPS_TDD128;
+static int ett_rrc_T_configurationmode;
+static int ett_rrc_T_implicit;
+static int ett_rrc_T_explicit_03;
+static int ett_rrc_T_midambleAllocationMode_02;
+static int ett_rrc_E_PUCH_Info;
+static int ett_rrc_T_modeSpecificInfo_64;
+static int ett_rrc_T_tdd348_tdd768;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_2_OF_E_PUCH_TS_Slots;
+static int ett_rrc_T_tdd128_38;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_E_PUCH_TS_Slots_LCR;
+static int ett_rrc_E_PUCH_Info_TDD128;
+static int ett_rrc_E_PUCH_Info_MulticarrierEDCH_TDD128;
+static int ett_rrc_E_PUCH_TS_Slots;
+static int ett_rrc_E_PUCH_TS_Slots_LCR;
+static int ett_rrc_T_midambleAllocationMode_03;
+static int ett_rrc_E_RGCH_Information;
+static int ett_rrc_E_RGCH_Information_CommonEdch;
+static int ett_rrc_E_RUCCH_Info;
+static int ett_rrc_T_modeSpecificInfo_65;
+static int ett_rrc_T_tdd384_tdd768_05;
+static int ett_rrc_T_modeSpecificInfo_66;
+static int ett_rrc_T_tdd384_23;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_SF16Codes;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_SF8Codes;
+static int ett_rrc_T_tdd768_15;
+static int ett_rrc_SEQUENCE_SIZE_1_16_OF_SF32Codes;
+static int ett_rrc_SEQUENCE_SIZE_1_16_OF_SF16Codes2;
+static int ett_rrc_T_tdd128_39;
+static int ett_rrc_E_RUCCH_Info_TDD128;
+static int ett_rrc_E_TFC_Boost_Info_r7;
+static int ett_rrc_E_TFCS_Info;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_Reference_Beta_QPSK;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_Reference_Beta_16QAM;
+static int ett_rrc_EARFCNRange;
+static int ett_rrc_EXT_UL_TimingAdvance;
+static int ett_rrc_T_modeSpecificInfo_67;
+static int ett_rrc_T_tdd384_24;
+static int ett_rrc_T_tdd768_16;
+static int ett_rrc_F_DPCHInfo;
+static int ett_rrc_FACH_PCH_Information;
+static int ett_rrc_FACH_PCH_InformationList;
+static int ett_rrc_Fallback_R99_PRACH_info_IEs;
+static int ett_rrc_FPACH_Info_r4;
+static int ett_rrc_F_TPICH_InfoNewServingCell;
+static int ett_rrc_F_TPICH_InfoOtherCell;
+static int ett_rrc_T_f_tpich_Info;
+static int ett_rrc_F_TPICH_Information;
+static int ett_rrc_F_TPICH_ReconfigurationInfo;
+static int ett_rrc_SEQUENCE_SIZE_1_maxRL_OF_F_TPICH_InfoOtherCell;
+static int ett_rrc_FreqIndexListForEnhancedMeas;
+static int ett_rrc_FreqIndexListForEnhancedMeas_r12;
+static int ett_rrc_FrequencyInfo;
+static int ett_rrc_T_modeSpecificInfo_68;
+static int ett_rrc_FrequencyInfoFDD;
+static int ett_rrc_FrequencyInfoTDD;
+static int ett_rrc_HS_ChannelisationCodeSetInfo_LCR;
+static int ett_rrc_HS_DSCH_CommonSystemInformation;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCommonHRNTI_OF_H_RNTI;
+static int ett_rrc_HS_DSCH_CommonSystemInformation_TDD128;
+static int ett_rrc_HS_DSCH_DrxCellfach_info;
+static int ett_rrc_HS_DSCH_DrxCellfach_info_TDD128;
+static int ett_rrc_HS_DSCH_DrxCellfach_SecondDrx_info;
+static int ett_rrc_T_drx_level;
+static int ett_rrc_T_one_level_DRX;
+static int ett_rrc_T_two_level_DRX;
+static int ett_rrc_HS_DSCH_PagingSystemInformation;
+static int ett_rrc_SEQUENCE_SIZE_1_maxSCCPCH_OF_PICH_ForHSDPASupportedPaging;
+static int ett_rrc_SEQUENCE_SIZE_1_2_OF_TransportBlockSizeIndex;
+static int ett_rrc_HS_DSCH_PagingSystemInformation_TDD128;
+static int ett_rrc_SEQUENCE_SIZE_1_maxSCCPCH_OF_PICH_ForHSDPASupportedPaging_TDD128;
+static int ett_rrc_HS_DSCH_RxPatternList_TDD128;
+static int ett_rrc_HS_DSCH_RxPatternList_TDD128_item;
+static int ett_rrc_HS_DSCH_TbsList_TDD128;
+static int ett_rrc_HS_DSCH_TbsList_TDD128_item;
+static int ett_rrc_HS_DSCH_SPS_Information_TDD128;
+static int ett_rrc_T_hs_dsch_SPS_Operation;
+static int ett_rrc_HS_DSCH_SPS_NewOperation_TDD128;
+static int ett_rrc_T_hARQInfoForSPS;
+static int ett_rrc_T_initialSPSInfoForHSDSCH;
+static int ett_rrc_HS_DPCCHOverheadReduction;
+static int ett_rrc_HS_PDSCH_Midamble_Configuration_TDD128;
+static int ett_rrc_T_midambleAllocationMode_04;
+static int ett_rrc_HS_SCCH_Info;
+static int ett_rrc_T_modeSpecificInfo_69;
+static int ett_rrc_T_fdd_105;
+static int ett_rrc_T_tdd_59;
+static int ett_rrc_T_tdd384_25;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD384;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD128;
+static int ett_rrc_HS_SCCH_Info_r6;
+static int ett_rrc_T_modeSpecificInfo_70;
+static int ett_rrc_T_fdd_106;
+static int ett_rrc_T_tdd_60;
+static int ett_rrc_T_tdd384_26;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD384_r6;
+static int ett_rrc_T_tdd128_40;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD128_r6;
+static int ett_rrc_HS_SCCH_Info_r7;
+static int ett_rrc_T_modeSpecificInfo_71;
+static int ett_rrc_T_fdd_107;
+static int ett_rrc_T_tdd_61;
+static int ett_rrc_T_tdd384_27;
+static int ett_rrc_T_tdd768_17;
+static int ett_rrc_SEQUENCE_SIZE_1_maxHSSCCHs_OF_HS_SCCH_TDD768;
+static int ett_rrc_T_tdd128_41;
+static int ett_rrc_HS_SCCH_Info_r8_ext;
+static int ett_rrc_T_modeSpecificInfo_72;
+static int ett_rrc_T_tdd_62;
+static int ett_rrc_T_tdd128_42;
+static int ett_rrc_HS_SCCH_Info_r9;
+static int ett_rrc_T_modeSpecificInfo_73;
+static int ett_rrc_T_fdd_108;
+static int ett_rrc_T_tdd_63;
+static int ett_rrc_T_tdd384_28;
+static int ett_rrc_T_tdd768_18;
+static int ett_rrc_T_tdd128_43;
+static int ett_rrc_HS_SCCH_DRX_Info_TDD128;
+static int ett_rrc_HS_SCCH_Less_NewOperation;
+static int ett_rrc_HS_SCCH_LessInfo_r7;
+static int ett_rrc_T_hs_scchLessOperation;
+static int ett_rrc_HS_SCCH_LessTFSList;
+static int ett_rrc_HS_SCCH_LessTFSList_item;
+static int ett_rrc_HS_SCCH_SystemInfo;
+static int ett_rrc_HS_SCCH_SystemInfo_TDD128;
+static int ett_rrc_HS_SCCH_TDD128;
+static int ett_rrc_T_midambleAllocationMode_05;
+static int ett_rrc_HS_SCCH_TDD128_r6;
+static int ett_rrc_T_midambleAllocationMode_06;
+static int ett_rrc_HS_SCCH_TDD128_MultiCarrier;
+static int ett_rrc_T_midambleAllocationMode_07;
+static int ett_rrc_HS_SICH_Configuration_TDD128;
+static int ett_rrc_T_midambleAllocationMode_08;
+static int ett_rrc_T_ueSpecificMidamble;
+static int ett_rrc_HS_SICH_Configuration_TDD128_r6;
+static int ett_rrc_T_midambleAllocationMode_09;
+static int ett_rrc_T_ueSpecificMidamble_01;
+static int ett_rrc_HS_SICH_List_TDD128;
+static int ett_rrc_HS_SICH_List_TDD128_item;
+static int ett_rrc_T_implicit_01;
+static int ett_rrc_T_explicit_04;
+static int ett_rrc_HS_SICH_ReferenceSignalInfoList;
+static int ett_rrc_HS_SICH_ReferenceSignalInfoList_item;
+static int ett_rrc_HS_SCCH_TDD384;
+static int ett_rrc_T_midambleAllocationMode_10;
+static int ett_rrc_T_ueSpecificMidamble_02;
+static int ett_rrc_HS_SCCH_TDD384_r6;
+static int ett_rrc_T_midambleAllocationMode_11;
+static int ett_rrc_T_ueSpecificMidamble_03;
+static int ett_rrc_HS_SCCH_TDD768;
+static int ett_rrc_T_midambleAllocationMode_12;
+static int ett_rrc_T_ueSpecificMidamble_04;
+static int ett_rrc_HS_SICH_Configuration_TDD384;
+static int ett_rrc_T_midambleAllocationMode_13;
+static int ett_rrc_T_ueSpecificMidamble_05;
+static int ett_rrc_HS_SICH_Configuration_TDD768;
+static int ett_rrc_T_midambleAllocationMode_14;
+static int ett_rrc_T_ueSpecificMidamble_06;
+static int ett_rrc_HS_SICH_Power_Control_Info_TDD384;
+static int ett_rrc_HS_SICH_Power_Control_Info_TDD768;
+static int ett_rrc_IndividualTimeslotInfo;
+static int ett_rrc_IndividualTimeslotInfo_VHCR;
+static int ett_rrc_IndividualTimeslotInfo_LCR_r4;
+static int ett_rrc_IndividualTimeslotInfo_LCR_r4_ext;
+static int ett_rrc_IndividualTimeslotInfo_r7;
+static int ett_rrc_IndividualTS_Interference;
+static int ett_rrc_IndividualTS_InterferenceList;
+static int ett_rrc_Measurement_Feedback_Info;
+static int ett_rrc_T_modeSpecificInfo_74;
+static int ett_rrc_T_fdd_109;
+static int ett_rrc_Measurement_Feedback_Info_r7;
+static int ett_rrc_T_modeSpecificInfo_75;
+static int ett_rrc_T_fdd_110;
+static int ett_rrc_Measurement_Feedback_Info_r11;
+static int ett_rrc_T_modeSpecificInfo_76;
+static int ett_rrc_T_fdd_111;
+static int ett_rrc_Measurement_Feedback_Info_r12;
+static int ett_rrc_T_modeSpecificInfo_77;
+static int ett_rrc_T_fdd_112;
+static int ett_rrc_Measurement_Feedback_Info_ConcurrentTTI;
+static int ett_rrc_MidambleShiftAndBurstType;
+static int ett_rrc_T_burstType;
+static int ett_rrc_T_type1_01;
+static int ett_rrc_T_midambleAllocationMode_15;
+static int ett_rrc_T_ueSpecificMidamble_07;
+static int ett_rrc_T_type2;
+static int ett_rrc_T_midambleAllocationMode_16;
+static int ett_rrc_T_ueSpecificMidamble_08;
+static int ett_rrc_T_type3;
+static int ett_rrc_T_midambleAllocationMode_17;
+static int ett_rrc_T_ueSpecificMidamble_09;
+static int ett_rrc_MidambleShiftAndBurstType_VHCR;
+static int ett_rrc_T_burstType_01;
+static int ett_rrc_T_type1_02;
+static int ett_rrc_T_midambleAllocationMode_18;
+static int ett_rrc_T_ueSpecificMidamble_10;
+static int ett_rrc_T_type2_01;
+static int ett_rrc_T_midambleAllocationMode_19;
+static int ett_rrc_T_ueSpecificMidamble_11;
+static int ett_rrc_T_type3_01;
+static int ett_rrc_T_midambleAllocationMode_20;
+static int ett_rrc_T_ueSpecificMidamble_12;
+static int ett_rrc_MidambleShiftAndBurstType_r7;
+static int ett_rrc_T_burstType_02;
+static int ett_rrc_T_type1_03;
+static int ett_rrc_T_midambleAllocationMode_21;
+static int ett_rrc_T_ueSpecificMidamble_13;
+static int ett_rrc_T_type2_02;
+static int ett_rrc_T_midambleAllocationMode_22;
+static int ett_rrc_T_ueSpecificMidamble_14;
+static int ett_rrc_T_type3_02;
+static int ett_rrc_T_midambleAllocationMode_23;
+static int ett_rrc_T_ueSpecificMidamble_15;
+static int ett_rrc_MidambleShiftAndBurstType_DL;
+static int ett_rrc_T_burstType_03;
+static int ett_rrc_T_type1_04;
+static int ett_rrc_T_midambleAllocationMode_24;
+static int ett_rrc_T_ueSpecificMidamble_16;
+static int ett_rrc_T_type2_03;
+static int ett_rrc_T_midambleAllocationMode_25;
+static int ett_rrc_T_ueSpecificMidamble_17;
+static int ett_rrc_MidambleShiftAndBurstType_DL_VHCR;
+static int ett_rrc_T_burstType_04;
+static int ett_rrc_T_type1_05;
+static int ett_rrc_T_midambleAllocationMode_26;
+static int ett_rrc_T_ueSpecificMidamble_18;
+static int ett_rrc_T_type2_04;
+static int ett_rrc_T_midambleAllocationMode_27;
+static int ett_rrc_T_ueSpecificMidamble_19;
+static int ett_rrc_MidambleShiftAndBurstType_LCR_r4;
+static int ett_rrc_T_midambleAllocationMode_28;
+static int ett_rrc_T_ueSpecificMidamble_20;
+static int ett_rrc_MidambleShiftAndBurstType_EDCH;
+static int ett_rrc_T_burstType_05;
+static int ett_rrc_T_type1_06;
+static int ett_rrc_T_midambleAllocationMode_29;
+static int ett_rrc_T_ueSpecificMidamble_21;
+static int ett_rrc_T_type2_05;
+static int ett_rrc_T_midambleAllocationMode_30;
+static int ett_rrc_T_ueSpecificMidamble_22;
+static int ett_rrc_MIMO_Parameters_r7;
+static int ett_rrc_MIMO4x4_Parameters;
+static int ett_rrc_T_configurationInfo_10;
+static int ett_rrc_T_newConfiguration_15;
+static int ett_rrc_MIMO_Parameters_v7g0ext;
+static int ett_rrc_MIMO_Parameters_r8;
+static int ett_rrc_T_modeSpecificInfo_78;
+static int ett_rrc_T_fdd_113;
+static int ett_rrc_T_tdd_64;
+static int ett_rrc_T_tdd128_44;
+static int ett_rrc_MIMO_Parameters_r9;
+static int ett_rrc_T_modeSpecificInfo_79;
+static int ett_rrc_T_fdd_114;
+static int ett_rrc_T_tdd_65;
+static int ett_rrc_T_tdd128_45;
+static int ett_rrc_MIMO_PilotConfiguration;
+static int ett_rrc_T_secondCPICH_Pattern;
+static int ett_rrc_T_diversityPattern;
+static int ett_rrc_MIMO_PilotConfiguration_v7f0ext;
+static int ett_rrc_MIMO_PilotConfiguration_r9;
+static int ett_rrc_T_secondCPICH_Pattern_01;
+static int ett_rrc_T_diversityPattern_01;
+static int ett_rrc_MIMO4x4_PilotConfiguration;
+static int ett_rrc_Multi_frequencyInfo_LCR_r7;
+static int ett_rrc_MultiflowConfigurationInfo;
+static int ett_rrc_MU_MIMO_Info_TDD128;
+static int ett_rrc_T_newConfiguration_16;
+static int ett_rrc_NewTiming;
+static int ett_rrc_NodeB_Trigger_HS_DPCCH_Transmission;
+static int ett_rrc_Non_ScheduledTransGrantInfoTDD;
+static int ett_rrc_T_tdd384_768;
+static int ett_rrc_T_tdd128_46;
+static int ett_rrc_T_e_HICH_Info_08;
+static int ett_rrc_T_midambleAllocationMode_31;
+static int ett_rrc_Non_ScheduledTransGrantInfoTDD_ext;
+static int ett_rrc_T_tdd128_47;
+static int ett_rrc_Non_ScheduledTransGrantInfoTDD_r9;
+static int ett_rrc_T_tdd384_768_01;
+static int ett_rrc_T_tdd128_48;
+static int ett_rrc_T_e_HICH_Info_09;
+static int ett_rrc_T_midambleAllocationMode_32;
+static int ett_rrc_OpenLoopPowerControl_TDD;
+static int ett_rrc_OpenLoopPowerControl_IPDL_TDD_r4;
+static int ett_rrc_OtherStateConfig;
+static int ett_rrc_OtherStateConfigList;
+static int ett_rrc_OtherStateConfigData;
+static int ett_rrc_T_rntis;
+static int ett_rrc_T_new;
+static int ett_rrc_T_configuration;
+static int ett_rrc_OtherStateRemoveList;
+static int ett_rrc_PCCH_InformationList;
+static int ett_rrc_T_paging_associatedHspdschInfo;
+static int ett_rrc_T_paging_associatedHspdschInfo_item;
+static int ett_rrc_PCPCH_ChannelInfo;
+static int ett_rrc_PCPCH_ChannelInfoList;
+static int ett_rrc_PDSCH_CapacityAllocationInfo;
+static int ett_rrc_T_configuration_01;
+static int ett_rrc_T_old_Configuration;
+static int ett_rrc_T_new_Configuration;
+static int ett_rrc_PDSCH_CapacityAllocationInfo_r4;
+static int ett_rrc_T_configuration_02;
+static int ett_rrc_T_old_Configuration_01;
+static int ett_rrc_T_new_Configuration_01;
+static int ett_rrc_PDSCH_CapacityAllocationInfo_r7;
+static int ett_rrc_T_configuration_03;
+static int ett_rrc_T_old_Configuration_02;
+static int ett_rrc_T_new_Configuration_02;
+static int ett_rrc_PDSCH_CodeInfo;
+static int ett_rrc_PDSCH_CodeInfoList;
+static int ett_rrc_PDSCH_CodeMap;
+static int ett_rrc_PDSCH_CodeMapList;
+static int ett_rrc_PDSCH_CodeMapping;
+static int ett_rrc_T_signallingMethod;
+static int ett_rrc_PDSCH_Info;
+static int ett_rrc_PDSCH_Info_r4;
+static int ett_rrc_T_tddOption_13;
+static int ett_rrc_T_tdd384_29;
+static int ett_rrc_T_tdd128_49;
+static int ett_rrc_PDSCH_Info_r7;
+static int ett_rrc_T_tddOption_14;
+static int ett_rrc_T_tdd384_30;
+static int ett_rrc_T_tdd768_19;
+static int ett_rrc_T_tdd128_50;
+static int ett_rrc_PDSCH_Info_LCR_r4;
+static int ett_rrc_PDSCH_PowerControlInfo;
+static int ett_rrc_PDSCH_SHO_DCH_Info;
+static int ett_rrc_PDSCH_SysInfo;
+static int ett_rrc_PDSCH_SysInfo_VHCR_r7;
+static int ett_rrc_PDSCH_SysInfo_HCR_r5;
+static int ett_rrc_PDSCH_SysInfo_LCR_r4;
+static int ett_rrc_PDSCH_SysInfoList;
+static int ett_rrc_PDSCH_SysInfoList_VHCR_r7;
+static int ett_rrc_PDSCH_SysInfoList_HCR_r5;
+static int ett_rrc_PDSCH_SysInfoList_LCR_r4;
+static int ett_rrc_PDSCH_SysInfoList_SFN;
+static int ett_rrc_PDSCH_SysInfoList_SFN_item;
+static int ett_rrc_PDSCH_SysInfoList_SFN_HCR_r5;
+static int ett_rrc_PDSCH_SysInfoList_SFN_HCR_r5_item;
+static int ett_rrc_PDSCH_SysInfoList_SFN_LCR_r4;
+static int ett_rrc_PDSCH_SysInfoList_SFN_LCR_r4_item;
+static int ett_rrc_PersistenceScalingFactorList;
+static int ett_rrc_PichChannelisationCodeList_LCR_r4;
+static int ett_rrc_PICH_ForHSDPASupportedPaging;
+static int ett_rrc_PICH_ForHSDPASupportedPaging_TDD128;
+static int ett_rrc_T_implicit_02;
+static int ett_rrc_PICH_Info;
+static int ett_rrc_T_fdd_115;
+static int ett_rrc_T_tdd_66;
+static int ett_rrc_PICH_Info_HCR_VHCR_r7;
+static int ett_rrc_T_channelisationCode;
+static int ett_rrc_PICH_Info_LCR_r4;
+static int ett_rrc_PLCCH_Info;
+static int ett_rrc_PowerControlAlgorithm;
+static int ett_rrc_PowerControlAlgorithm3_Config;
+static int ett_rrc_PRACH_ChanCodes_LCR_r4;
+static int ett_rrc_PRACH_ChanCodes_List_LCR;
+static int ett_rrc_PRACH_Definition_LCR_r4;
+static int ett_rrc_PRACH_Information_LCR;
+static int ett_rrc_PRACH_Information_LCR_List;
+static int ett_rrc_PRACH_Partitioning;
+static int ett_rrc_SEQUENCE_SIZE_1_maxASC_OF_ASCSetting_FDD;
+static int ett_rrc_SEQUENCE_SIZE_1_maxASC_OF_ASCSetting_TDD;
+static int ett_rrc_PRACH_Partitioning_r7;
+static int ett_rrc_SEQUENCE_SIZE_1_maxASC_OF_ASCSetting_TDD_r7;
+static int ett_rrc_PRACH_Partitioning_LCR_r4;
+static int ett_rrc_PRACH_PowerOffset;
+static int ett_rrc_PRACH_PreambleForEnhancedUplink;
+static int ett_rrc_PRACH_PreambleForEnhancedUplinkExt;
+static int ett_rrc_PRACH_PreambleForEnhancedUplinkExtList;
+static int ett_rrc_PRACH_PreambleForEnhancedUplinkExtWithWeight;
+static int ett_rrc_PRACH_RACH_Info;
+static int ett_rrc_T_modeSpecificInfo_80;
+static int ett_rrc_T_fdd_116;
+static int ett_rrc_T_tdd_67;
+static int ett_rrc_PRACH_RACH_Info_VHCR_r7;
+static int ett_rrc_PRACH_RACH_Info_LCR_v770ext;
+static int ett_rrc_PRACH_RACH_Info_LCR_r4;
+static int ett_rrc_SEQUENCE_SIZE_1_maxPRACH_FPACH_OF_PRACH_Definition_LCR_r4;
+static int ett_rrc_PRACH_SystemInformation;
+static int ett_rrc_T_modeSpecificInfo_81;
+static int ett_rrc_T_fdd_117;
+static int ett_rrc_PRACH_SystemInformation_VHCR_r7;
+static int ett_rrc_PRACH_SystemInformation_LCR_r4;
+static int ett_rrc_PRACH_SystemInformation_LCR_v770ext;
+static int ett_rrc_PRACH_SystemInformationList;
+static int ett_rrc_PRACH_SystemInformationList_VHCR_r7;
+static int ett_rrc_PRACH_SystemInformationList_LCR_r4;
+static int ett_rrc_PRACH_SystemInformationList_LCR_v770ext;
+static int ett_rrc_PreDefPhyChConfiguration;
+static int ett_rrc_PreDefPhyChConfiguration_v770ext;
+static int ett_rrc_PrimaryCCPCH_Info;
+static int ett_rrc_T_fdd_118;
+static int ett_rrc_T_tdd_68;
+static int ett_rrc_T_syncCase;
+static int ett_rrc_T_syncCase1;
+static int ett_rrc_T_syncCase2;
+static int ett_rrc_PrimaryCCPCH_Info_r4;
+static int ett_rrc_T_fdd_119;
+static int ett_rrc_T_tdd_69;
+static int ett_rrc_T_tddOption_15;
+static int ett_rrc_T_tdd384_tdd768_06;
+static int ett_rrc_T_syncCase_01;
+static int ett_rrc_T_syncCase1_01;
+static int ett_rrc_T_syncCase2_01;
+static int ett_rrc_T_tdd128_51;
+static int ett_rrc_PrimaryCCPCH_Info_LCR_r4;
+static int ett_rrc_PrimaryCCPCH_Info_LCR_r4_ext;
+static int ett_rrc_PrimaryCCPCH_InfoPost;
+static int ett_rrc_T_syncCase_02;
+static int ett_rrc_T_syncCase1_02;
+static int ett_rrc_T_syncCase2_02;
+static int ett_rrc_PrimaryCCPCH_InfoPostTDD_LCR_r4;
+static int ett_rrc_PrimaryCPICH_Info;
+static int ett_rrc_PUSCH_CapacityAllocationInfo;
+static int ett_rrc_T_pusch_Allocation;
+static int ett_rrc_T_pusch_AllocationAssignment;
+static int ett_rrc_T_configuration_04;
+static int ett_rrc_T_old_Configuration_03;
+static int ett_rrc_T_new_Configuration_03;
+static int ett_rrc_PUSCH_CapacityAllocationInfo_r4;
+static int ett_rrc_T_pusch_Allocation_01;
+static int ett_rrc_T_pusch_AllocationAssignment_01;
+static int ett_rrc_T_configuration_05;
+static int ett_rrc_T_old_Configuration_04;
+static int ett_rrc_T_new_Configuration_04;
+static int ett_rrc_PUSCH_CapacityAllocationInfo_r7;
+static int ett_rrc_T_pusch_Allocation_02;
+static int ett_rrc_T_pusch_AllocationAssignment_02;
+static int ett_rrc_T_configuration_06;
+static int ett_rrc_T_old_Configuration_05;
+static int ett_rrc_T_new_Configuration_05;
+static int ett_rrc_PUSCH_Info;
+static int ett_rrc_PUSCH_Info_r4;
+static int ett_rrc_T_tddOption_16;
+static int ett_rrc_T_tdd384_31;
+static int ett_rrc_T_tdd128_52;
+static int ett_rrc_PUSCH_Info_VHCR;
+static int ett_rrc_PUSCH_Info_LCR_r4;
+static int ett_rrc_PUSCH_PowerControlInfo_r4;
+static int ett_rrc_T_tddOption_17;
+static int ett_rrc_T_tdd128_53;
+static int ett_rrc_PUSCH_PowerControlInfo_r7;
+static int ett_rrc_T_tddOption_18;
+static int ett_rrc_T_tdd128_54;
+static int ett_rrc_PUSCH_SysInfo;
+static int ett_rrc_PUSCH_SysInfo_VHCR;
+static int ett_rrc_PUSCH_SysInfo_HCR_r5;
+static int ett_rrc_PUSCH_SysInfo_LCR_r4;
+static int ett_rrc_PUSCH_SysInfoList;
+static int ett_rrc_PUSCH_SysInfoList_HCR_r5;
+static int ett_rrc_PUSCH_SysInfoList_LCR_r4;
+static int ett_rrc_PUSCH_SysInfoList_SFN;
+static int ett_rrc_PUSCH_SysInfoList_SFN_item;
+static int ett_rrc_PUSCH_SysInfoList_SFN_HCR_r5;
+static int ett_rrc_PUSCH_SysInfoList_SFN_HCR_r5_item;
+static int ett_rrc_PUSCH_SysInfoList_SFN_LCR_r4;
+static int ett_rrc_PUSCH_SysInfoList_SFN_LCR_r4_item;
+static int ett_rrc_PUSCH_SysInfoList_SFN_VHCR;
+static int ett_rrc_PUSCH_SysInfoList_SFN_VHCR_item;
+static int ett_rrc_RACH_TransmissionParameters;
+static int ett_rrc_RadioLinkswithoutDPCHFDPCHInfo;
+static int ett_rrc_Reference_Beta_QPSK;
+static int ett_rrc_Reference_Beta_16QAM;
+static int ett_rrc_RepetitionPeriodAndLength;
+static int ett_rrc_RepetitionPeriodLengthAndOffset;
+static int ett_rrc_T_repetitionPeriod2;
+static int ett_rrc_T_repetitionPeriod4;
+static int ett_rrc_T_repetitionPeriod8;
+static int ett_rrc_T_repetitionPeriod16;
+static int ett_rrc_T_repetitionPeriod32;
+static int ett_rrc_T_repetitionPeriod64;
+static int ett_rrc_RepetitionPeriodAndLengthForSPS;
+static int ett_rrc_ReplacedPDSCH_CodeInfo;
+static int ett_rrc_ReplacedPDSCH_CodeInfoList;
+static int ett_rrc_RepPerLengthOffset_PICH;
+static int ett_rrc_RepPerLengthOffset_MICH;
+static int ett_rrc_RestrictedTrCH;
+static int ett_rrc_RestrictedTrCH_InfoList;
+static int ett_rrc_RL_AdditionInformation;
+static int ett_rrc_RL_AdditionInformation_r6;
+static int ett_rrc_T_dl_dpchInfo_06;
+static int ett_rrc_RL_AdditionInformation_r7;
+static int ett_rrc_T_dl_dpchInfo_07;
+static int ett_rrc_RL_AdditionInformation_r8;
+static int ett_rrc_T_dl_dpchInfo_08;
+static int ett_rrc_RL_AdditionInformation_r9;
+static int ett_rrc_T_dl_dpchInfo_09;
+static int ett_rrc_RL_AdditionInformation_r10;
+static int ett_rrc_T_dl_dpchInfo_10;
+static int ett_rrc_RL_AdditionInformation_vb50ext;
+static int ett_rrc_RL_AdditionInformation_r11;
+static int ett_rrc_T_dl_dpchInfo_11;
+static int ett_rrc_RL_AdditionInformation_r12;
+static int ett_rrc_T_dl_dpchInfo_12;
+static int ett_rrc_RL_AdditionInformation_r13;
+static int ett_rrc_T_dl_dpchInfo_13;
+static int ett_rrc_RL_AdditionInformation_v6b0ext;
+static int ett_rrc_RL_AdditionInformation_v890ext;
+static int ett_rrc_RL_AdditionInformation_v950ext;
+static int ett_rrc_RL_AdditionInformationList;
+static int ett_rrc_RL_AdditionInformationList_r6;
+static int ett_rrc_RL_AdditionInformationList_r7;
+static int ett_rrc_RL_AdditionInformation_list_v6b0ext;
+static int ett_rrc_RL_AdditionInformationList_r8;
+static int ett_rrc_RL_AdditionInformationList_v890ext;
+static int ett_rrc_RL_AdditionInformationList_r9;
+static int ett_rrc_RL_AdditionInformationList_v950ext;
+static int ett_rrc_RL_AdditionInformationList_r10;
+static int ett_rrc_RL_AdditionInformationList_vb50ext;
+static int ett_rrc_RL_AdditionInformationList_r11;
+static int ett_rrc_RL_AdditionInformationList_r12;
+static int ett_rrc_RL_AdditionInformationList_r13;
+static int ett_rrc_RL_AdditionInformationList_SecULFreq;
+static int ett_rrc_RL_AdditionInformationList_SecULFreq_r12;
+static int ett_rrc_RL_AdditionInformationList_SecULFreq_r13;
+static int ett_rrc_RL_AdditionInformation_SecULFreq;
+static int ett_rrc_RL_AdditionInformation_SecULFreq_r12;
+static int ett_rrc_RL_AdditionInformation_SecULFreq_r13;
+static int ett_rrc_RL_IdentifierList;
+static int ett_rrc_RL_RemovalInformationList;
+static int ett_rrc_RL_RemovalInformationList_SecULFreq;
+static int ett_rrc_SCCPCH_ChannelisationCodeList;
+static int ett_rrc_SCCPCH_ChannelisationCodeList_VHCR;
+static int ett_rrc_SCCPCH_InfoForFACH;
+static int ett_rrc_T_modeSpecificInfo_82;
+static int ett_rrc_T_fdd_120;
+static int ett_rrc_T_tdd_70;
+static int ett_rrc_SCCPCH_InfoForFACH_r4;
+static int ett_rrc_T_modeSpecificInfo_83;
+static int ett_rrc_T_fdd_121;
+static int ett_rrc_SCCPCH_SystemInformation;
+static int ett_rrc_SCCPCH_SystemInformation_LCR_r4_ext;
+static int ett_rrc_SCCPCH_SystemInformation_HCR_VHCR_r7;
+static int ett_rrc_SCCPCH_SystemInformationList;
+static int ett_rrc_SCCPCH_SystemInformationList_HCR_VHCR_r7;
+static int ett_rrc_SCCPCH_SystemInformationList_LCR_r4_ext;
+static int ett_rrc_SCCPCH_SystemInformation_MBMS_r6;
+static int ett_rrc_T_fachCarryingMCCH;
+static int ett_rrc_T_fachCarryingMSCH;
+static int ett_rrc_SCCPCH_SystemInformation_MBMS_r7;
+static int ett_rrc_T_fachCarryingMCCH_01;
+static int ett_rrc_T_fachCarryingMSCH_01;
+static int ett_rrc_ScheduledTransmissionConfiguration;
+static int ett_rrc_SEQUENCE_SIZE_1_maxEDCHs_OF_Common_E_DCH_ResourceInfoListExt;
+static int ett_rrc_SecondaryCCPCH_Info;
+static int ett_rrc_T_modeSpecificInfo_84;
+static int ett_rrc_T_fdd_122;
+static int ett_rrc_T_tdd_71;
+static int ett_rrc_SecondaryCCPCH_Info_r4;
+static int ett_rrc_T_modeSpecificInfo_85;
+static int ett_rrc_T_fdd_123;
+static int ett_rrc_T_tdd_72;
+static int ett_rrc_T_tddOption_19;
+static int ett_rrc_T_tdd384_32;
+static int ett_rrc_T_tdd128_55;
+static int ett_rrc_SecondaryCCPCH_Info_HCR_VHCR_r7;
+static int ett_rrc_T_modeSpecificInfo_86;
+static int ett_rrc_T_tdd384_33;
+static int ett_rrc_T_tdd768_20;
+static int ett_rrc_SecondaryCCPCH_Info_LCR_r4_ext;
+static int ett_rrc_SecondaryCCPCHFrameType2Info;
+static int ett_rrc_T_modulation_03;
+static int ett_rrc_T_mod16QAM;
+static int ett_rrc_SecondaryCCPCHInfo_MBMS_r6;
+static int ett_rrc_T_modeSpecificInfo_87;
+static int ett_rrc_T_fdd_124;
+static int ett_rrc_T_tdd384_34;
+static int ett_rrc_T_tdd128_56;
+static int ett_rrc_SecondaryCCPCHInfo_MBMS_r7;
+static int ett_rrc_T_modeSpecificInfo_88;
+static int ett_rrc_T_fdd_125;
+static int ett_rrc_T_modulation_04;
+static int ett_rrc_T_tdd384_35;
+static int ett_rrc_T_tdd768_21;
+static int ett_rrc_T_tdd128_57;
+static int ett_rrc_SecondaryCCPCHInfoDiff_MBMS;
+static int ett_rrc_SecondaryCPICH_Info;
+static int ett_rrc_SecondaryCellMIMOparametersFDD;
+static int ett_rrc_T_newConfiguration_17;
+static int ett_rrc_SecondaryCellMIMOparametersFDD_v950ext;
+static int ett_rrc_SecondaryCellMIMOparametersFDD_r10;
+static int ett_rrc_T_newConfiguration_18;
+static int ett_rrc_SecondaryCell4x4MIMOparametersFDD;
+static int ett_rrc_T_configurationInfo_11;
+static int ett_rrc_T_newConfiguration_19;
+static int ett_rrc_ServingCellChangeParameters;
+static int ett_rrc_ServingCellChangeParameters_r12;
+static int ett_rrc_SF256_AndCodeNumber;
+static int ett_rrc_SF512_AndCodeNumber;
+static int ett_rrc_SF512_AndPilot;
+static int ett_rrc_SF512_AndPilot_r12;
+static int ett_rrc_SFN_TimeInfo;
+static int ett_rrc_SPS_Information_TDD128_r8;
+static int ett_rrc_SSDT_Information;
+static int ett_rrc_SSDT_Information_r4;
+static int ett_rrc_StandaloneMidambleInfo_TDD128;
+static int ett_rrc_SynchronisationParameters_r4;
+static int ett_rrc_T_sync_UL_CodesBitmap;
+static int ett_rrc_Sync_UL_Codes_Bitmap;
+static int ett_rrc_SYNC_UL_Procedure_r4;
+static int ett_rrc_SYNC_UL_Info_r4;
+static int ett_rrc_SYNC_UL_InfoForE_RUCCH;
+static int ett_rrc_TargetCellPreconfigInfo;
+static int ett_rrc_TargetCellPreconfigInfo_r9;
+static int ett_rrc_TargetCellPreconfigInfo_r10;
+static int ett_rrc_TargetCellPreconfigInfo_vb50ext;
+static int ett_rrc_TargetCellPreconfigInfo_r11;
+static int ett_rrc_TargetCellPreconfigInfo_r12;
+static int ett_rrc_TargetCellPreconfigInfo_r13;
+static int ett_rrc_TDD_MBSFNInformation;
+static int ett_rrc_TDD_MBSFNTSlotInfo;
+static int ett_rrc_TDD_PRACH_CCodeList;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_TDD_PRACH_CCode8;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_TDD_PRACH_CCode16;
+static int ett_rrc_TDD768_PRACH_CCodeList;
+static int ett_rrc_SEQUENCE_SIZE_1_16_OF_TDD768_PRACH_CCode32;
+static int ett_rrc_SEQUENCE_SIZE_1_16_OF_TDD768_PRACH_CCode16;
+static int ett_rrc_TGP_Sequence;
+static int ett_rrc_T_tgps_Status;
+static int ett_rrc_T_activate;
+static int ett_rrc_TGP_Sequence_r8;
+static int ett_rrc_T_tgps_Status_01;
+static int ett_rrc_T_activate_01;
+static int ett_rrc_TGP_Sequence_r10;
+static int ett_rrc_T_tgps_Status_02;
+static int ett_rrc_T_activate_02;
+static int ett_rrc_TGP_SequenceList;
+static int ett_rrc_TGP_SequenceList_r8;
+static int ett_rrc_TGP_SequenceList_r10;
+static int ett_rrc_TGP_SequenceShort;
+static int ett_rrc_T_tgps_Status_03;
+static int ett_rrc_T_activate_03;
+static int ett_rrc_TGP_SequenceShort_r10;
+static int ett_rrc_T_tgps_Status_04;
+static int ett_rrc_T_activate_04;
+static int ett_rrc_TGPS_ConfigurationParams;
+static int ett_rrc_TGPS_ConfigurationParams_r8;
+static int ett_rrc_TGPS_ConfigurationParams_r10;
+static int ett_rrc_TimeInfo;
+static int ett_rrc_TimeslotList;
+static int ett_rrc_TimeslotList_r4;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_OF_TimeslotNumber;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_OF_TimeslotNumber_LCR_r4;
+static int ett_rrc_DTX_DRX_TimingInfo_r7;
+static int ett_rrc_T_timing;
+static int ett_rrc_TwoMsHarqConfiguration;
+static int ett_rrc_UCSM_Info;
+static int ett_rrc_UE_DPCCHPowerResetAfterDTXOnSecUplink;
+static int ett_rrc_UL_16QAM_Config;
+static int ett_rrc_UL_16QAM_Settings;
+static int ett_rrc_UL_64QAM_Config;
+static int ett_rrc_UL_64QAM_Settings;
+static int ett_rrc_UL_CCTrCH;
+static int ett_rrc_UL_CCTrCH_r4;
+static int ett_rrc_T_tddOption_20;
+static int ett_rrc_T_tdd384_36;
+static int ett_rrc_T_tdd128_58;
+static int ett_rrc_UL_CCTrCH_r7;
+static int ett_rrc_T_tddOption_21;
+static int ett_rrc_T_tdd384_37;
+static int ett_rrc_T_tdd768_22;
+static int ett_rrc_T_tdd128_59;
+static int ett_rrc_UL_CCTrCHList;
+static int ett_rrc_UL_CCTrCHList_r4;
+static int ett_rrc_UL_CCTrCHList_r7;
+static int ett_rrc_UL_CCTrCHListToRemove;
+static int ett_rrc_UL_CCTrChTPCList;
+static int ett_rrc_UL_ChannelRequirement;
+static int ett_rrc_UL_ChannelRequirement_r4;
+static int ett_rrc_UL_ChannelRequirement_r5;
+static int ett_rrc_UL_ChannelRequirementWithCPCH_SetID;
+static int ett_rrc_UL_ChannelRequirementWithCPCH_SetID_r4;
+static int ett_rrc_UL_ChannelRequirementWithCPCH_SetID_r5;
+static int ett_rrc_UL_CLTD_InfoFDD;
+static int ett_rrc_T_configurationInfo_12;
+static int ett_rrc_T_newConfiguration_20;
+static int ett_rrc_UL_DL_Mode;
+static int ett_rrc_T_ul_and_dl;
+static int ett_rrc_UL_DPCH_CodeInfoForCommonEDCH;
+static int ett_rrc_UL_DPCH_Info;
+static int ett_rrc_T_modeSpecificInfo_89;
+static int ett_rrc_T_fdd_126;
+static int ett_rrc_T_tdd_73;
+static int ett_rrc_UL_DPCH_Info_r4;
+static int ett_rrc_T_modeSpecificInfo_90;
+static int ett_rrc_T_fdd_127;
+static int ett_rrc_T_tdd_74;
+static int ett_rrc_UL_DPCH_Info_r5;
+static int ett_rrc_T_modeSpecificInfo_91;
+static int ett_rrc_T_fdd_128;
+static int ett_rrc_T_tdd_75;
+static int ett_rrc_UL_DPCH_Info_r6;
+static int ett_rrc_T_modeSpecificInfo_92;
+static int ett_rrc_T_fdd_129;
+static int ett_rrc_T_dpdchPresence;
+static int ett_rrc_T_present_02;
+static int ett_rrc_T_notPresent;
+static int ett_rrc_T_tdd_76;
+static int ett_rrc_UL_DPCH_Info_r7;
+static int ett_rrc_T_modeSpecificInfo_93;
+static int ett_rrc_T_fdd_130;
+static int ett_rrc_T_dpdchPresence_01;
+static int ett_rrc_T_present_03;
+static int ett_rrc_T_notPresent_01;
+static int ett_rrc_T_tdd_77;
+static int ett_rrc_UL_DPCH_Info_r11;
+static int ett_rrc_T_modeSpecificInfo_94;
+static int ett_rrc_T_fdd_131;
+static int ett_rrc_T_dpdchPresence_02;
+static int ett_rrc_T_present_04;
+static int ett_rrc_T_notPresent_02;
+static int ett_rrc_T_tdd_78;
+static int ett_rrc_UL_DPCH_InfoPostFDD;
+static int ett_rrc_UL_DPCH_InfoPostTDD;
+static int ett_rrc_UL_DPCH_InfoPostTDD_LCR_r4;
+static int ett_rrc_UL_DPCH_InfoPredef;
+static int ett_rrc_T_modeSpecificInfo_95;
+static int ett_rrc_T_fdd_132;
+static int ett_rrc_T_tdd_79;
+static int ett_rrc_UL_DPCH_InfoPredef_v770ext;
+static int ett_rrc_T_modeSpecificInfo_96;
+static int ett_rrc_T_fdd_133;
+static int ett_rrc_UL_DPCH_PowerControlInfo;
+static int ett_rrc_T_fdd_134;
+static int ett_rrc_T_tdd_80;
+static int ett_rrc_T_ul_OL_PC_Signalling;
+static int ett_rrc_T_individuallySignalled;
+static int ett_rrc_UL_DPCH_PowerControlInfo_r4;
+static int ett_rrc_T_fdd_135;
+static int ett_rrc_T_tdd_81;
+static int ett_rrc_T_ul_OL_PC_Signalling_01;
+static int ett_rrc_T_individuallySignalled_01;
+static int ett_rrc_T_tddOption_22;
+static int ett_rrc_T_tdd384_38;
+static int ett_rrc_T_tdd128_60;
+static int ett_rrc_UL_DPCH_PowerControlInfo_r5;
+static int ett_rrc_T_fdd_136;
+static int ett_rrc_T_tdd_82;
+static int ett_rrc_T_ul_OL_PC_Signalling_02;
+static int ett_rrc_T_individuallySignalled_02;
+static int ett_rrc_T_tddOption_23;
+static int ett_rrc_T_tdd384_39;
+static int ett_rrc_T_tdd128_61;
+static int ett_rrc_UL_DPCH_PowerControlInfo_r6;
+static int ett_rrc_T_fdd_137;
+static int ett_rrc_T_tdd_83;
+static int ett_rrc_T_ul_OL_PC_Signalling_03;
+static int ett_rrc_T_individuallySignalled_03;
+static int ett_rrc_T_tddOption_24;
+static int ett_rrc_T_tdd384_40;
+static int ett_rrc_T_tdd128_62;
+static int ett_rrc_UL_DPCH_PowerControlInfo_r7;
+static int ett_rrc_T_fdd_138;
+static int ett_rrc_T_tdd_84;
+static int ett_rrc_T_ul_OL_PC_Signalling_04;
+static int ett_rrc_T_individuallySignalled_04;
+static int ett_rrc_T_tddOption_25;
+static int ett_rrc_T_tdd384_41;
+static int ett_rrc_T_tdd768_23;
+static int ett_rrc_T_tdd128_63;
+static int ett_rrc_UL_DPCH_PowerControlInfo_r11;
+static int ett_rrc_T_fdd_139;
+static int ett_rrc_T_tdd_85;
+static int ett_rrc_T_ul_OL_PC_Signalling_05;
+static int ett_rrc_T_individuallySignalled_05;
+static int ett_rrc_T_tddOption_26;
+static int ett_rrc_T_tdd384_42;
+static int ett_rrc_T_tdd768_24;
+static int ett_rrc_T_tdd128_64;
+static int ett_rrc_UL_DPCHpowerControlInfoConcurrentTTI;
+static int ett_rrc_UL_DPCHpowerControlInfoForCommonEDCH;
+static int ett_rrc_UL_DPCH_PowerControlInfoPostFDD;
+static int ett_rrc_UL_DPCH_PowerControlInfoPostTDD;
+static int ett_rrc_UL_DPCH_PowerControlInfoPostTDD_LCR_r4;
+static int ett_rrc_UL_DPCH_PowerControlInfoPredef;
+static int ett_rrc_T_fdd_140;
+static int ett_rrc_T_tdd_86;
+static int ett_rrc_UL_EDCH_Information_ext;
+static int ett_rrc_T_tdd_87;
+static int ett_rrc_UL_EDCH_Information_r6;
+static int ett_rrc_UL_EDCH_Information_r7;
+static int ett_rrc_T_modeSpecificInfo_97;
+static int ett_rrc_T_fdd_141;
+static int ett_rrc_T_tdd_88;
+static int ett_rrc_UL_EDCH_Information_r8;
+static int ett_rrc_T_modeSpecificInfo_98;
+static int ett_rrc_T_fdd_142;
+static int ett_rrc_T_tdd_89;
+static int ett_rrc_UL_EDCH_Information_r9;
+static int ett_rrc_T_modeSpecificInfo_99;
+static int ett_rrc_T_fdd_143;
+static int ett_rrc_T_tdd_90;
+static int ett_rrc_UL_EDCH_Information_r11;
+static int ett_rrc_T_modeSpecificInfo_100;
+static int ett_rrc_T_fdd_144;
+static int ett_rrc_T_tdd_91;
+static int ett_rrc_UL_MIMO_InfoFDD;
+static int ett_rrc_T_configurationInfo_13;
+static int ett_rrc_T_newConfiguration_21;
+static int ett_rrc_UL_MulticarrierEDCH_InfolistItem_TDD128;
+static int ett_rrc_UL_MulticarrierEDCH_Infolist_TDD128;
+static int ett_rrc_UL_MulticarrierEDCH_Deletelist_TDD128;
+static int ett_rrc_UL_MulticarrierEDCHInfo_TDD128;
+static int ett_rrc_T_configuration_info;
+static int ett_rrc_UL_MulticarrierEDCH_NewConfigurationInfo_TDD128;
+static int ett_rrc_UL_SynchronisationParameters_r4;
+static int ett_rrc_UL_TimingAdvanceControl;
+static int ett_rrc_T_enabled;
+static int ett_rrc_UL_TimingAdvanceControl_r4;
+static int ett_rrc_T_enabled_01;
+static int ett_rrc_T_tddOption_27;
+static int ett_rrc_T_tdd384_43;
+static int ett_rrc_T_tdd128_65;
+static int ett_rrc_UL_TimingAdvanceControl_r7;
+static int ett_rrc_T_enabled_02;
+static int ett_rrc_T_tddOption_28;
+static int ett_rrc_T_tdd384_44;
+static int ett_rrc_T_tdd768_25;
+static int ett_rrc_T_tdd128_66;
+static int ett_rrc_UL_TimingAdvanceControl_LCR_r4;
+static int ett_rrc_T_enabled_03;
+static int ett_rrc_UL_TransModeSwitchingParam;
+static int ett_rrc_UL_TS_ChannelisationCodeList;
+static int ett_rrc_UL_TS_ChannelisationCodeList_r7;
+static int ett_rrc_UL_TS_ChannelisationCodeList_r7_item;
+static int ett_rrc_UL_TS_ChannelisationCodeList_VHCR;
+static int ett_rrc_UplinkAdditionalTimeslots;
+static int ett_rrc_T_parameters_04;
+static int ett_rrc_T_sameAsLast_04;
+static int ett_rrc_T_newParameters_04;
+static int ett_rrc_UplinkAdditionalTimeslots_LCR_r4;
+static int ett_rrc_T_parameters_05;
+static int ett_rrc_T_sameAsLast_05;
+static int ett_rrc_T_newParameters_05;
+static int ett_rrc_UplinkAdditionalTimeslots_LCR_r7;
+static int ett_rrc_T_parameters_06;
+static int ett_rrc_T_sameAsLast_06;
+static int ett_rrc_T_newParameters_06;
+static int ett_rrc_UplinkAdditionalTimeslots_VHCR;
+static int ett_rrc_T_parameters_07;
+static int ett_rrc_T_sameAsLast_07;
+static int ett_rrc_T_newParameters_07;
+static int ett_rrc_UplinkTimeslotsCodes;
+static int ett_rrc_T_moreTimeslots_04;
+static int ett_rrc_T_additionalTimeslots_04;
+static int ett_rrc_T_consecutive_02;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_UplinkAdditionalTimeslots;
+static int ett_rrc_UplinkTimeslotsCodes_VHCR;
+static int ett_rrc_T_moreTimeslots_05;
+static int ett_rrc_T_additionalTimeslots_05;
+static int ett_rrc_T_consecutive_03;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_1_OF_UplinkAdditionalTimeslots_VHCR;
+static int ett_rrc_UplinkTimeslotsCodes_LCR_r4;
+static int ett_rrc_T_moreTimeslots_06;
+static int ett_rrc_T_additionalTimeslots_06;
+static int ett_rrc_T_consecutive_04;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_UplinkAdditionalTimeslots_LCR_r4;
+static int ett_rrc_UplinkTimeslotsCodes_LCR_r7;
+static int ett_rrc_T_moreTimeslots_07;
+static int ett_rrc_T_additionalTimeslots_07;
+static int ett_rrc_T_consecutive_05;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_1_OF_UplinkAdditionalTimeslots_LCR_r7;
+static int ett_rrc_AcquisitionSatInfo;
+static int ett_rrc_AcquisitionSatInfo_va40ext;
+static int ett_rrc_AcquisitionSatInfo_r10;
+static int ett_rrc_AcquisitionSatInfo_vc50ext;
+static int ett_rrc_AcquisitionSatInfo_r12;
+static int ett_rrc_AcquisitionSatInfoList;
+static int ett_rrc_AcquisitionSatInfoList_va40ext;
+static int ett_rrc_AcquisitionSatInfoList_r10;
+static int ett_rrc_AcquisitionSatInfoList_vc50ext;
+static int ett_rrc_AcquisitionSatInfoList_r12;
+static int ett_rrc_AdditionalMeasurementID_List;
+static int ett_rrc_AdditionalMeasurementID_List_r9;
+static int ett_rrc_AlmanacSatInfo;
+static int ett_rrc_AlmanacSatInfoList;
+static int ett_rrc_ALM_BDSKeplerianSet;
+static int ett_rrc_ALM_ECEFsbasAlmanacSet;
+static int ett_rrc_ALM_GlonassAlmanacSet;
+static int ett_rrc_ALM_keplerianParameters;
+static int ett_rrc_ALM_MidiAlmanacSet;
+static int ett_rrc_ALM_NAVKeplerianSet;
+static int ett_rrc_ALM_ReducedKeplerianSet;
+static int ett_rrc_AuxInfoGANSS_ID1;
+static int ett_rrc_AuxInfoGANSS_ID1_element;
+static int ett_rrc_AuxInfoGANSS_ID3;
+static int ett_rrc_AuxInfoGANSS_ID3_element;
+static int ett_rrc_AzimuthAndElevation;
+static int ett_rrc_AzimuthAndElevation_va40ext;
+static int ett_rrc_AzimuthAndElevation_r10;
+static int ett_rrc_BadSatList;
+static int ett_rrc_BDSclockModel;
+static int ett_rrc_BDS_IGPInfoList;
+static int ett_rrc_BDS_IGPInfoList_item;
+static int ett_rrc_DBDS_InfoList;
+static int ett_rrc_DBDS_Info;
+static int ett_rrc_DBDS_SignalInfoList;
+static int ett_rrc_DBDS_SignalInfo;
+static int ett_rrc_BLER_MeasurementResults;
+static int ett_rrc_BLER_MeasurementResultsList;
+static int ett_rrc_BLER_TransChIdList;
+static int ett_rrc_BSICReported;
+static int ett_rrc_BurstModeParameters;
+static int ett_rrc_CellDCH_ReportCriteria;
+static int ett_rrc_CellDCH_ReportCriteria_LCR_r4;
+static int ett_rrc_CellDCHMeasOccasionPattern_LCR;
+static int ett_rrc_CellDCHMeasOccasionInfo_TDD128_r9;
+static int ett_rrc_SEQUENCE_SIZE_1_maxMeasOccasionPattern_OF_CellDCHMeasOccasionPattern_LCR;
+static int ett_rrc_CellInfo;
+static int ett_rrc_T_modeSpecificInfo_101;
+static int ett_rrc_T_fdd_145;
+static int ett_rrc_T_tdd_92;
+static int ett_rrc_CellInfo_r4;
+static int ett_rrc_T_modeSpecificInfo_102;
+static int ett_rrc_T_fdd_146;
+static int ett_rrc_T_tdd_93;
+static int ett_rrc_CellInfo_LCR_r8_ext;
+static int ett_rrc_CellInfo_r9;
+static int ett_rrc_T_modeSpecificInfo_103;
+static int ett_rrc_T_fdd_147;
+static int ett_rrc_T_tdd_94;
+static int ett_rrc_CellInfoListToBeExcluded;
+static int ett_rrc_CellInfoSI_RSCP;
+static int ett_rrc_T_modeSpecificInfo_104;
+static int ett_rrc_T_fdd_148;
+static int ett_rrc_T_tdd_95;
+static int ett_rrc_CellInfoSI_RSCP_LCR_r4;
+static int ett_rrc_CellInfoSI_ECN0;
+static int ett_rrc_T_modeSpecificInfo_105;
+static int ett_rrc_T_fdd_149;
+static int ett_rrc_T_tdd_96;
+static int ett_rrc_CellInfoSI_ECN0_LCR_r4;
+static int ett_rrc_CellInfoSI_HCS_RSCP;
+static int ett_rrc_T_modeSpecificInfo_106;
+static int ett_rrc_T_fdd_150;
+static int ett_rrc_T_tdd_97;
+static int ett_rrc_CellInfoSI_HCS_RSCP_LCR_r4;
+static int ett_rrc_CellInfoSI_HCS_ECN0;
+static int ett_rrc_T_modeSpecificInfo_107;
+static int ett_rrc_T_fdd_151;
+static int ett_rrc_T_tdd_98;
+static int ett_rrc_CellInfoSI_HCS_ECN0_LCR_r4;
+static int ett_rrc_CellMeasuredResults;
+static int ett_rrc_T_modeSpecificInfo_108;
+static int ett_rrc_T_fdd_152;
+static int ett_rrc_T_tdd_99;
+static int ett_rrc_CellMeasuredResults_r9;
+static int ett_rrc_T_modeSpecificInfo_109;
+static int ett_rrc_T_fdd_153;
+static int ett_rrc_T_tdd_100;
+static int ett_rrc_CellMeasuredResults_v920ext;
+static int ett_rrc_CellMeasuredResults_vc50ext;
+static int ett_rrc_CellMeasurementEventResults;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_PrimaryCPICH_Info;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_PrimaryCCPCH_Info;
+static int ett_rrc_CellMeasurementEventResultsOnSecUlFreq;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeasOnSecULFreq_OF_PrimaryCPICH_Info;
+static int ett_rrc_CellMeasurementEventResults_LCR_r4;
+static int ett_rrc_CellReportingQuantities;
+static int ett_rrc_T_modeSpecificInfo_110;
+static int ett_rrc_T_fdd_154;
+static int ett_rrc_T_tdd_101;
+static int ett_rrc_CellSelectReselectInfoMC_RSCP;
+static int ett_rrc_T_modeSpecificInfo_111;
+static int ett_rrc_T_fdd_155;
+static int ett_rrc_T_tdd_102;
+static int ett_rrc_T_gsm_04;
+static int ett_rrc_CellSelectReselectInfoSIB_11_12;
+static int ett_rrc_T_modeSpecificInfo_112;
+static int ett_rrc_T_fdd_156;
+static int ett_rrc_T_tdd_103;
+static int ett_rrc_T_gsm_05;
+static int ett_rrc_CellSelectReselectInfoSIB_11_12_RSCP;
+static int ett_rrc_T_modeSpecificInfo_113;
+static int ett_rrc_T_fdd_157;
+static int ett_rrc_T_tdd_104;
+static int ett_rrc_T_gsm_06;
+static int ett_rrc_CellSelectReselectInfoSIB_11_12_ECN0;
+static int ett_rrc_T_modeSpecificInfo_114;
+static int ett_rrc_T_fdd_158;
+static int ett_rrc_T_tdd_105;
+static int ett_rrc_T_gsm_07;
+static int ett_rrc_CellSelectReselectInfoSIB_11_12_HCS_RSCP;
+static int ett_rrc_T_modeSpecificInfo_115;
+static int ett_rrc_T_fdd_159;
+static int ett_rrc_T_tdd_106;
+static int ett_rrc_T_gsm_08;
+static int ett_rrc_CellSelectReselectInfoSIB_11_12_HCS_ECN0;
+static int ett_rrc_T_modeSpecificInfo_116;
+static int ett_rrc_T_fdd_160;
+static int ett_rrc_T_tdd_107;
+static int ett_rrc_T_gsm_09;
+static int ett_rrc_CellSelectReselectInfo_v590ext;
+static int ett_rrc_CellSelectReselectInfoPCHFACH_v5b0ext;
+static int ett_rrc_CellSelectReselectInfoTreselectionScaling_v5c0ext;
+static int ett_rrc_CellsForInterFreqMeasList;
+static int ett_rrc_CellsForInterFreqMeasList_r12;
+static int ett_rrc_CellsForInterRATMeasList;
+static int ett_rrc_CellsForIntraFreqMeasList;
+static int ett_rrc_CellsForIntraFreqMeasListOnSecULFreq;
+static int ett_rrc_CellSynchronisationInfo;
+static int ett_rrc_T_modeSpecificInfo_117;
+static int ett_rrc_T_fdd_161;
+static int ett_rrc_T_tdd_108;
+static int ett_rrc_CellToReport;
+static int ett_rrc_CellToReportList;
+static int ett_rrc_CNAVclockModel;
+static int ett_rrc_CountC_SFN_Frame_difference;
+static int ett_rrc_CPICH_Ec_N0_RSCP;
+static int ett_rrc_CSG_MemberPLMNList;
+static int ett_rrc_CSGCellInfo;
+static int ett_rrc_T_modeSpecificInfo_118;
+static int ett_rrc_T_fdd_162;
+static int ett_rrc_CSGCellInfoList;
+static int ett_rrc_CSGInterFreqCellInfo;
+static int ett_rrc_CSGInterFreqCellInfoList;
+static int ett_rrc_CSGProximityDetection;
+static int ett_rrc_CSGProximityIndication;
+static int ett_rrc_T_radioAccessTechnology_03;
+static int ett_rrc_T_uTRA;
+static int ett_rrc_T_e_UTRA;
+static int ett_rrc_CSGProximityIndication_vb50ext;
+static int ett_rrc_DataBitAssistance;
+static int ett_rrc_DataBitAssistanceList;
+static int ett_rrc_DataBitAssistanceSat;
+static int ett_rrc_DataBitAssistanceSgnList;
+static int ett_rrc_DeltaRSCPPerCell;
+static int ett_rrc_DeltaUT1;
+static int ett_rrc_DGANSSInfo;
+static int ett_rrc_DGANSSInfo_r9;
+static int ett_rrc_DGANSSInfo_v920ext;
+static int ett_rrc_DGANSSInfoList;
+static int ett_rrc_DGANSSInfoList_r9;
+static int ett_rrc_DGANSSInfoList_v920ext;
+static int ett_rrc_DGANSSSignalInformation;
+static int ett_rrc_DGANSSSignalInformation_r9;
+static int ett_rrc_DGANSSSignalInformation_v920ext;
+static int ett_rrc_DGANSSSignalInformationList;
+static int ett_rrc_DGANSSSignalInformationList_r9;
+static int ett_rrc_DGANSSSignalInformationList_v920ext;
+static int ett_rrc_DGPS_CorrectionSatInfo;
+static int ett_rrc_DGPS_CorrectionSatInfo_r9;
+static int ett_rrc_DGPS_CorrectionSatInfo_v920ext;
+static int ett_rrc_DGPS_CorrectionSatInfoList;
+static int ett_rrc_DGPS_CorrectionSatInfoList_r9;
+static int ett_rrc_DGPS_CorrectionSatInfoList_v920ext;
+static int ett_rrc_EllipsoidPoint;
+static int ett_rrc_EllipsoidPointAltitude;
+static int ett_rrc_EllipsoidPointAltitudeEllipsoide;
+static int ett_rrc_EllipsoidPointUncertCircle;
+static int ett_rrc_EllipsoidPointUncertEllipse;
+static int ett_rrc_EUTRA_CSGMemberPLMNList;
+static int ett_rrc_Eutra_EventResult;
+static int ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_PhysicalCellIdentity;
+static int ett_rrc_EUTRA_EventResult_vb50ext;
+static int ett_rrc_EUTRA_EventResult_vc50ext;
+static int ett_rrc_Eutra_EventResultList;
+static int ett_rrc_EUTRA_EventResultList_vb50ext;
+static int ett_rrc_EUTRA_EventResultList_vc50ext;
+static int ett_rrc_EUTRA_EventResults;
+static int ett_rrc_EUTRA_EventResults_vb50ext;
+static int ett_rrc_EUTRA_EventResults_vc50ext;
+static int ett_rrc_EUTRA_EventResultsForCELLFACH;
+static int ett_rrc_EUTRA_EventResultsForCELLFACH_vc50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfo;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfo_v920ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfo_vb50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfo_vc50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfo_vd20ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vb50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vb80ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vc50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtension_vd20ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList_vb80ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList_vc50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoExtensionList_vd20ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoList;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoList_v920ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoList_vb50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoList_vc50ext;
+static int ett_rrc_EUTRA_FrequencyAndPriorityInfoList_vd20ext;
+static int ett_rrc_EUTRA_FrequencyList;
+static int ett_rrc_EUTRA_FrequencyList_r9;
+static int ett_rrc_EUTRA_FrequencyList_r11;
+static int ett_rrc_EUTRA_FrequencyList_r12;
+static int ett_rrc_EUTRA_SIAcquisition;
+static int ett_rrc_EUTRA_SIAcquisition_r11;
+static int ett_rrc_EUTRA_MeasuredCells;
+static int ett_rrc_Eutra_MeasuredResult;
+static int ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_MeasuredCells;
+static int ett_rrc_EUTRA_MeasuredResult_vb50ext;
+static int ett_rrc_Eutra_MeasuredResultList;
+static int ett_rrc_EUTRA_MeasuredResultList_vb50ext;
+static int ett_rrc_EUTRA_MeasuredResults;
+static int ett_rrc_EUTRA_MeasuredResults_vb50ext;
+static int ett_rrc_EUTRA_MeasuredCells_v920ext;
+static int ett_rrc_EUTRA_MeasuredCells_vc50ext;
+static int ett_rrc_Eutra_MeasuredResult_v920ext;
+static int ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_MeasuredCells_v920ext;
+static int ett_rrc_Eutra_MeasuredResult_vc50ext;
+static int ett_rrc_SEQUENCE_SIZE_1_maxReportedEUTRACellPerFreq_OF_EUTRA_MeasuredCells_vc50ext;
+static int ett_rrc_Eutra_MeasuredResultList_v920ext;
+static int ett_rrc_Eutra_MeasuredResultList_vc50ext;
+static int ett_rrc_EUTRA_MeasuredResults_v920ext;
+static int ett_rrc_EUTRA_MeasuredResults_vc50ext;
+static int ett_rrc_EUTRA_SIacquisitionResults;
+static int ett_rrc_T_cgiInfo;
+static int ett_rrc_EUTRA_SIacquisitionResults_vc50ext;
+static int ett_rrc_CGI_Info;
+static int ett_rrc_EUTRA_FrequencyRemoval;
+static int ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_OF_EARFCN;
+static int ett_rrc_EUTRA_FrequencyRemoval_r11;
+static int ett_rrc_EUTRA_FrequencyInfoList;
+static int ett_rrc_EUTRA_FrequencyInfoList_r11;
+static int ett_rrc_EUTRA_FrequencyInfoList_r12;
+static int ett_rrc_EUTRA_FrequencyInfo;
+static int ett_rrc_EUTRA_FrequencyInfo_r11;
+static int ett_rrc_EUTRA_FrequencyInfo_r12;
+static int ett_rrc_EUTRA_FrequencyRACHReportingInfo;
+static int ett_rrc_EUTRA_FrequencyRACHReportingInfo_vc50ext;
+static int ett_rrc_EUTRA_MeasurementForCELLFACH;
+static int ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_FACH_OF_EARFCNRange;
+static int ett_rrc_EUTRA_MeasurementForCELLFACH_r12;
+static int ett_rrc_SEQUENCE_SIZE_1_maxNumEUTRAFreqs_FACH_ext_OF_EARFCNRange;
+static int ett_rrc_FrequenciesToRemove;
+static int ett_rrc_Event1a;
+static int ett_rrc_Event1a_r4;
+static int ett_rrc_Event1a_OnSecUlFreq_r9;
+static int ett_rrc_Event1a_LCR_r4;
+static int ett_rrc_Event1b;
+static int ett_rrc_Event1b_r4;
+static int ett_rrc_Event1b_r7;
+static int ett_rrc_Event1b_OnSecUlFreq_r9;
+static int ett_rrc_Event1b_LCR_r4;
+static int ett_rrc_Event1c;
+static int ett_rrc_Event1d;
+static int ett_rrc_Event1e;
+static int ett_rrc_Event1e_r6;
+static int ett_rrc_Event1f;
+static int ett_rrc_Event1f_r6;
+static int ett_rrc_Event1j_r6;
+static int ett_rrc_Event2a;
+static int ett_rrc_Event2a_r6;
+static int ett_rrc_Event2a_r10;
+static int ett_rrc_Event2a_r11;
+static int ett_rrc_Event2b;
+static int ett_rrc_Event2b_r6;
+static int ett_rrc_Event2b_r10;
+static int ett_rrc_Event2b_r11;
+static int ett_rrc_Event2c;
+static int ett_rrc_Event2c_r6;
+static int ett_rrc_Event2c_r10;
+static int ett_rrc_Event2c_r11;
+static int ett_rrc_Event2d;
+static int ett_rrc_Event2d_r6;
+static int ett_rrc_Event2d_r10;
+static int ett_rrc_Event2e;
+static int ett_rrc_Event2e_r6;
+static int ett_rrc_Event2e_r10;
+static int ett_rrc_Event2e_r11;
+static int ett_rrc_Event2f;
+static int ett_rrc_Event2f_r6;
+static int ett_rrc_Event2f_r10;
+static int ett_rrc_Event2g;
+static int ett_rrc_Event3a;
+static int ett_rrc_Event3b;
+static int ett_rrc_Event3c;
+static int ett_rrc_Event3d;
+static int ett_rrc_Event3a_r12;
+static int ett_rrc_Event3b_r12;
+static int ett_rrc_Event3c_r12;
+static int ett_rrc_EventResults;
+static int ett_rrc_EventResults_v770ext;
+static int ett_rrc_EventResults_v860ext;
+static int ett_rrc_EventResults_va40ext;
+static int ett_rrc_EventResultsOnSecUlFreq;
+static int ett_rrc_ExtraDoppler;
+static int ett_rrc_ExtraDopplerExtension;
+static int ett_rrc_ExtraDopplerInfo;
+static int ett_rrc_ExtraDopplerInfoExtension;
+static int ett_rrc_FACH_MeasurementOccasionInfo;
+static int ett_rrc_SEQUENCE_SIZE_1_maxOtherRAT_OF_RAT_Type;
+static int ett_rrc_FACH_MeasurementOccasionInfo_LCR_r4_ext;
+static int ett_rrc_FilteredUEPowerHeadroomReportInfo;
+static int ett_rrc_ForbiddenAffectCell;
+static int ett_rrc_ForbiddenAffectCell_r4;
+static int ett_rrc_ForbiddenAffectCell_LCR_r4;
+static int ett_rrc_ForbiddenAffectCellList;
+static int ett_rrc_ForbiddenAffectCellList_r4;
+static int ett_rrc_ForbiddenAffectCellList_LCR_r4;
+static int ett_rrc_ForbiddenAffectCellListOnSecULFreq;
+static int ett_rrc_ForbiddenAffectCellOnSecULFreq;
+static int ett_rrc_GanssDataBits;
+static int ett_rrc_GANSSGenericData;
+static int ett_rrc_GANSSGenericData_v860ext;
+static int ett_rrc_GANSSGenericData_r8;
+static int ett_rrc_GANSSGenericData_r9;
+static int ett_rrc_GANSSGenericData_v920ext;
+static int ett_rrc_GANSSGenericData_va40ext;
+static int ett_rrc_GANSSGenericData_vc50ext;
+static int ett_rrc_GANSSGenericData_r10;
+static int ett_rrc_GANSSGenericData_r12;
+static int ett_rrc_GANSSGenericDataList;
+static int ett_rrc_GANSSGenericDataList_v860ext;
+static int ett_rrc_GANSSGenericDataList_r8;
+static int ett_rrc_GANSSGenericDataList_r9;
+static int ett_rrc_GANSSGenericDataList_v920ext;
+static int ett_rrc_GANSSGenericDataList_va40ext;
+static int ett_rrc_GANSSGenericDataList_vc50ext;
+static int ett_rrc_GANSSGenericDataList_r10;
+static int ett_rrc_GANSSGenericDataList_r12;
+static int ett_rrc_GANSSGenericMeasurementInfo;
+static int ett_rrc_GANSSGenericMeasurementInfo_item;
+static int ett_rrc_GANSSGenericMeasurementInfo_v860ext;
+static int ett_rrc_GANSSGenericMeasurementInfo_v860ext_item;
+static int ett_rrc_GANSSMeasurementParameters;
+static int ett_rrc_GANSSMeasurementParameters_item;
+static int ett_rrc_GANSSMeasurementParameters_v860ext;
+static int ett_rrc_GANSSMeasurementParameters_v860ext_item;
+static int ett_rrc_GANSSMeasurementSignalList;
+static int ett_rrc_GANSSMeasurementSignalList_item;
+static int ett_rrc_GANSSMeasurementSignalList_v860ext;
+static int ett_rrc_GANSSMeasurementSignalList_v860ext_item;
+static int ett_rrc_GanssNavigationModelAdditionalData;
+static int ett_rrc_GANSSReferenceTimeOnly;
+static int ett_rrc_GanssReqGenericData;
+static int ett_rrc_GanssReqGenericData_v860ext;
+static int ett_rrc_T_ganssAddADchoices;
+static int ett_rrc_GanssReqGenericData_vc50ext;
+static int ett_rrc_GanssRequestedGenericAssistanceDataList;
+static int ett_rrc_GanssRequestedGenericAssistanceDataList_v860ext;
+static int ett_rrc_GanssRequestedGenericAssistanceDataList_vc50ext;
+static int ett_rrc_GANSSSatelliteInformation;
+static int ett_rrc_GANSSSatelliteInformation_va40ext;
+static int ett_rrc_GANSSSatelliteInformation_r10;
+static int ett_rrc_GANSSSatelliteInformation_vc50ext;
+static int ett_rrc_GANSSSatelliteInformation_r12;
+static int ett_rrc_GANSSSatelliteInformationList;
+static int ett_rrc_GANSSSatelliteInformationList_va40ext;
+static int ett_rrc_GANSSSatelliteInformationList_r10;
+static int ett_rrc_GANSSSatelliteInformationList_vc50ext;
+static int ett_rrc_GANSSSatelliteInformationList_r12;
+static int ett_rrc_GANSSTimeModelsList;
+static int ett_rrc_GANSSTimeModelsList_va40ext;
+static int ett_rrc_GANSSTimeModelsList_r10;
+static int ett_rrc_GANSS_SAT_Info_Almanac_BDSkp;
+static int ett_rrc_GANSS_SAT_Info_Almanac_GLOkp;
+static int ett_rrc_GANSS_SAT_Info_Almanac_Kp;
+static int ett_rrc_GANSS_SAT_Info_Almanac_MIDIkp;
+static int ett_rrc_GANSS_SAT_Info_Almanac_NAVkp;
+static int ett_rrc_GANSS_SAT_Info_Almanac_REDkp;
+static int ett_rrc_GANSS_SAT_Info_Almanac_SBASecef;
+static int ett_rrc_GANSS_SAT_Info_Almanac_BDSkpList;
+static int ett_rrc_GANSS_SAT_Info_Almanac_GLOkpList;
+static int ett_rrc_GANSS_SAT_Info_Almanac_KpList;
+static int ett_rrc_GANSS_SAT_Info_Almanac_MIDIkpList;
+static int ett_rrc_GANSS_SAT_Info_Almanac_NAVkpList;
+static int ett_rrc_GANSS_SAT_Info_Almanac_REDkpList;
+static int ett_rrc_GANSS_SAT_Info_Almanac_SBASecefList;
+static int ett_rrc_Ganss_Sat_Info_AddNav;
+static int ett_rrc_Ganss_Sat_Info_AddNav_r12;
+static int ett_rrc_Ganss_Sat_Info_AddNav_vc50ext;
+static int ett_rrc_Ganss_Sat_Info_Nav;
+static int ett_rrc_Ganss_Sat_Info_AddNavList;
+static int ett_rrc_Ganss_Sat_Info_AddNavList_r12;
+static int ett_rrc_Ganss_Sat_Info_AddNavList_vc50ext;
+static int ett_rrc_Ganss_Sat_Info_NavList;
+static int ett_rrc_GANSS_Storm_Flag;
+static int ett_rrc_GLONASSclockModel;
+static int ett_rrc_GPS_MeasurementParam;
+static int ett_rrc_GPS_MeasurementParamList;
+static int ett_rrc_GSM_CellGroup;
+static int ett_rrc_T_followingARFCNs;
+static int ett_rrc_SEQUENCE_SIZE_0_31_OF_BCCH_ARFCN;
+static int ett_rrc_T_equallySpacedARFCNs;
+static int ett_rrc_T_continuousRangeOfARFCNs;
+static int ett_rrc_GSM_MeasuredResults;
+static int ett_rrc_GSM_MeasuredResultsList;
+static int ett_rrc_GPS_TOW_Assist;
+static int ett_rrc_GPS_TOW_AssistList;
+static int ett_rrc_GSM_PriorityInfo;
+static int ett_rrc_GSM_PriorityInfoList;
+static int ett_rrc_HCS_CellReselectInformation_RSCP;
+static int ett_rrc_HCS_CellReselectInformation_ECN0;
+static int ett_rrc_HCS_NeighbouringCellInformation_RSCP;
+static int ett_rrc_HCS_NeighbouringCellInformation_ECN0;
+static int ett_rrc_HCS_ServingCellInformation;
+static int ett_rrc_HorizontalVelocity;
+static int ett_rrc_HorizontalWithVerticalVelocity;
+static int ett_rrc_HorizontalVelocityWithUncertainty;
+static int ett_rrc_HorizontalWithVerticalVelocityAndUncertainty;
+static int ett_rrc_IdleIntervalInfo;
+static int ett_rrc_InterFreqCell;
+static int ett_rrc_InterFreqCell_LCR_r4;
+static int ett_rrc_InterFreqCellInfoList;
+static int ett_rrc_InterFreqCellInfoList_r4;
+static int ett_rrc_InterFreqCellInfoList_r8;
+static int ett_rrc_InterFreqCellInfoList_r9;
+static int ett_rrc_InterFreqCellInfoList_r10;
+static int ett_rrc_InterFreqCellInfoList_r12;
+static int ett_rrc_InterFreqSIAcquisition;
+static int ett_rrc_T_modeSpecificInfo_119;
+static int ett_rrc_T_fdd_163;
+static int ett_rrc_InterFreqCellInfoSI_List_RSCP;
+static int ett_rrc_InterFreqCellInfoSI_List_ECN0;
+static int ett_rrc_InterFreqCellInfoSI_List_HCS_RSCP;
+static int ett_rrc_InterFreqCellInfoSI_List_HCS_ECN0;
+static int ett_rrc_InterFreqCellInfoSI_List_RSCP_LCR;
+static int ett_rrc_InterFreqCellInfoSI_List_ECN0_LCR;
+static int ett_rrc_InterFreqCellInfoSI_List_HCS_RSCP_LCR;
+static int ett_rrc_InterFreqCellInfoSI_List_HCS_ECN0_LCR;
+static int ett_rrc_InterFreqCellList;
+static int ett_rrc_InterFreqCellList_LCR_r4_ext;
+static int ett_rrc_InterFreqCellMeasuredResultsList;
+static int ett_rrc_InterFreqCellMeasuredResultsList_v920ext;
+static int ett_rrc_InterFreqCellMeasuredResultsList_vc50ext;
+static int ett_rrc_InterFreqEvent;
+static int ett_rrc_InterFreqEvent_r6;
+static int ett_rrc_InterFreqEvent_r10;
+static int ett_rrc_InterFreqEvent_r11;
+static int ett_rrc_InterFreqEvent_r12;
+static int ett_rrc_InterFreqEventList;
+static int ett_rrc_InterFreqEventList_r6;
+static int ett_rrc_InterFreqEventList_r10;
+static int ett_rrc_InterFreqEventList_r11;
+static int ett_rrc_InterFreqEventList_r12;
+static int ett_rrc_InterFrequencyMeasuredResultsList_v590ext;
+static int ett_rrc_Inter_FreqEventCriteria_v590ext;
+static int ett_rrc_Inter_FreqEventCriteriaList_v590ext;
+static int ett_rrc_Intra_FreqEventCriteriaList_v590ext;
+static int ett_rrc_IntraFrequencyMeasuredResultsList_v590ext;
+static int ett_rrc_InterFreqEventResults;
+static int ett_rrc_InterFreqEventResults_va40ext;
+static int ett_rrc_InterFreqEventResults_LCR_r4_ext;
+static int ett_rrc_InterFreqMeasQuantity;
+static int ett_rrc_T_reportingCriteria;
+static int ett_rrc_T_intraFreqReportingCriteria;
+static int ett_rrc_T_interFreqReportingCriteria;
+static int ett_rrc_T_modeSpecificInfo_120;
+static int ett_rrc_T_fdd_164;
+static int ett_rrc_T_tdd_109;
+static int ett_rrc_InterFreqMeasuredResults;
+static int ett_rrc_InterFreqMeasuredResults_v920ext;
+static int ett_rrc_InterFreqMeasuredResults_vc50ext;
+static int ett_rrc_InterFreqMeasuredResultsList;
+static int ett_rrc_InterFreqMeasuredResultsList_v920ext;
+static int ett_rrc_InterFreqMeasuredResultsList_vc50ext;
+static int ett_rrc_InterFreqMeasurementSysInfo_RSCP;
+static int ett_rrc_InterFreqMeasurementSysInfo_ECN0;
+static int ett_rrc_InterFreqMeasurementSysInfo_HCS_RSCP;
+static int ett_rrc_InterFreqMeasurementSysInfo_HCS_ECN0;
+static int ett_rrc_InterFreqMeasurementSysInfo_RSCP_LCR_r4;
+static int ett_rrc_InterFreqMeasurementSysInfo_ECN0_LCR_r4;
+static int ett_rrc_InterFreqMeasurementSysInfo_HCS_RSCP_LCR_r4;
+static int ett_rrc_InterFreqMeasurementSysInfo_HCS_ECN0_LCR_r4;
+static int ett_rrc_InterFreqRACHRepCellsList;
+static int ett_rrc_InterFreqRACHRepCellsList_r12;
+static int ett_rrc_Dummy_InterFreqRACHReportingInfo;
+static int ett_rrc_T_modeSpecificInfo_121;
+static int ett_rrc_T_fdd_165;
+static int ett_rrc_T_tdd_110;
+static int ett_rrc_InterFreqRACHReportingInfo;
+static int ett_rrc_T_modeSpecificInfo_122;
+static int ett_rrc_T_fdd_166;
+static int ett_rrc_T_tdd_111;
+static int ett_rrc_InterFreqExclude_listedCellsList_r12;
+static int ett_rrc_InterFreqExclude_listedCells_r12;
+static int ett_rrc_InterFreqReportCriteria;
+static int ett_rrc_InterFreqReportCriteria_r4;
+static int ett_rrc_InterFreqReportCriteria_r6;
+static int ett_rrc_InterFreqReportCriteria_r7;
+static int ett_rrc_InterFreqReportCriteria_r9;
+static int ett_rrc_InterFreqReportCriteria_r10;
+static int ett_rrc_InterFreqReportCriteria_r11;
+static int ett_rrc_InterFreqReportCriteria_r12;
+static int ett_rrc_InterFreqReportingCriteria;
+static int ett_rrc_InterFreqReportingCriteria_r6;
+static int ett_rrc_InterFreqReportingCriteria_r10;
+static int ett_rrc_InterFreqReportingCriteria_r11;
+static int ett_rrc_InterFreqReportingCriteria_r12;
+static int ett_rrc_InterFreqReportingQuantity;
+static int ett_rrc_InterFreqRepQuantityRACH_TDDList;
+static int ett_rrc_InterFrequencyMeasurement;
+static int ett_rrc_InterFrequencyMeasurement_r4;
+static int ett_rrc_InterFrequencyMeasurement_r6;
+static int ett_rrc_InterFrequencyMeasurement_r7;
+static int ett_rrc_InterFrequencyMeasurement_r8;
+static int ett_rrc_InterFrequencyMeasurement_r9;
+static int ett_rrc_InterFrequencyMeasurement_r10;
+static int ett_rrc_InterFrequencyMeasurement_r11;
+static int ett_rrc_InterFrequencyMeasurement_r12;
+static int ett_rrc_InterRAT_TargetCellDescription;
+static int ett_rrc_T_technologySpecificInfo;
+static int ett_rrc_T_gsm_10;
+static int ett_rrc_InterRATCellInfoList;
+static int ett_rrc_InterRATCellInfoList_B;
+static int ett_rrc_InterRATCellInfoList_r4;
+static int ett_rrc_InterRATCellInfoList_r6;
+static int ett_rrc_InterRATEvent;
+static int ett_rrc_InterRATEvent_r12;
+static int ett_rrc_InterRATEventList;
+static int ett_rrc_InterRATEventList_r12;
+static int ett_rrc_InterRATEventResults;
+static int ett_rrc_InterRATInfo_r6;
+static int ett_rrc_InterRATInfo_v860ext;
+static int ett_rrc_T_eutra_01;
+static int ett_rrc_InterRATMeasQuantity;
+static int ett_rrc_T_ratSpecificInfo;
+static int ett_rrc_T_gsm_11;
+static int ett_rrc_T_is_2000;
+static int ett_rrc_InterRATMeasQuantity_r8;
+static int ett_rrc_T_ratSpecificInfo_01;
+static int ett_rrc_T_gsm_12;
+static int ett_rrc_T_is_2000_01;
+static int ett_rrc_T_e_UTRA_01;
+static int ett_rrc_InterRATMeasuredResults;
+static int ett_rrc_InterRATMeasuredResultsList;
+static int ett_rrc_InterRATMeasurement;
+static int ett_rrc_InterRATMeasurement_r4;
+static int ett_rrc_InterRATMeasurement_r6;
+static int ett_rrc_InterRATMeasurement_r8;
+static int ett_rrc_T_interRATMeasurementObjects;
+static int ett_rrc_InterRATMeasurement_r9;
+static int ett_rrc_T_interRATMeasurementObjects_01;
+static int ett_rrc_InterRATMeasurement_r11;
+static int ett_rrc_T_interRATMeasurementObjects_02;
+static int ett_rrc_InterRATMeasurement_r12;
+static int ett_rrc_T_interRATMeasurementObjects_03;
+static int ett_rrc_InterRATMeasurementSysInfo;
+static int ett_rrc_InterRATMeasurementSysInfo_B;
+static int ett_rrc_InterRATReportCriteria;
+static int ett_rrc_InterRATReportCriteria_r12;
+static int ett_rrc_InterRATReportingCriteria;
+static int ett_rrc_InterRATReportingCriteria_r12;
+static int ett_rrc_InterRATReportingQuantity;
+static int ett_rrc_T_ratSpecificInfo_02;
+static int ett_rrc_T_gsm_13;
+static int ett_rrc_InterRATReportingQuantity_r8;
+static int ett_rrc_T_ratSpecificInfo_03;
+static int ett_rrc_T_gsm_14;
+static int ett_rrc_T_eutra_02;
+static int ett_rrc_IntraFreqCellInfoList;
+static int ett_rrc_IntraFreqCellInfoList_r4;
+static int ett_rrc_IntraFreqCellInfoListInfoOnSecULFreq;
+static int ett_rrc_IntraFreqCellInfoListOnSecULFreq;
+static int ett_rrc_IntraFreqCellInfoList_r9;
+static int ett_rrc_IntraFreqCellInfoList_r10;
+static int ett_rrc_IntraFreqSIAcquisitionInfo;
+static int ett_rrc_IntraFreqSIAcquisition;
+static int ett_rrc_T_modeSpecificInfo_123;
+static int ett_rrc_T_fdd_167;
+static int ett_rrc_IntraFreqCellInfoSI_List_RSCP;
+static int ett_rrc_IntraFreqCellInfoSI_List_ECN0;
+static int ett_rrc_IntraFreqCellInfoSI_List_HCS_RSCP;
+static int ett_rrc_IntraFreqCellInfoSI_List_HCS_ECN0;
+static int ett_rrc_IntraFreqCellInfoSI_List_RSCP_LCR_r4;
+static int ett_rrc_IntraFreqCellInfoSI_List_ECN0_LCR_r4;
+static int ett_rrc_IntraFreqCellInfoSI_List_HCS_RSCP_LCR_r4;
+static int ett_rrc_IntraFreqCellInfoSI_List_HCS_ECN0_LCR_r4;
+static int ett_rrc_IntraFreqEvent;
+static int ett_rrc_IntraFreqEvent_r4;
+static int ett_rrc_IntraFreqEvent_LCR_r4;
+static int ett_rrc_IntraFreqEvent_r6;
+static int ett_rrc_IntraFreqEvent_r7;
+static int ett_rrc_IntraFreqEventOnSecULFreq;
+static int ett_rrc_IntraFreqEvent_1d_r5;
+static int ett_rrc_IntraFreqEventCriteria;
+static int ett_rrc_IntraFreqEventCriteria_r4;
+static int ett_rrc_IntraFreqEventCriteria_LCR_r4;
+static int ett_rrc_IntraFreqEventCriteria_r6;
+static int ett_rrc_IntraFreqEventCriteria_r7;
+static int ett_rrc_IntraFreqEventCriteriaOnSecULFreq;
+static int ett_rrc_IntraFreqEventCriteriaList;
+static int ett_rrc_IntraFreqEventCriteriaList_r4;
+static int ett_rrc_IntraFreqEventCriteriaList_LCR_r4;
+static int ett_rrc_IntraFreqEventCriteriaList_r6;
+static int ett_rrc_IntraFreqEventCriteriaList_r7;
+static int ett_rrc_IntraFreqEventCriteriaListOnSecULFreq;
+static int ett_rrc_SEQUENCE_SIZE_1_maxMeasEventOnSecULFreq_OF_IntraFreqEventCriteriaOnSecULFreq;
+static int ett_rrc_IntraFreqEventResults;
+static int ett_rrc_IntraFreqEventResultsOnSecUlFreq;
+static int ett_rrc_IntraFreqMeasQuantity;
+static int ett_rrc_T_modeSpecificInfo_124;
+static int ett_rrc_T_fdd_168;
+static int ett_rrc_T_tdd_112;
+static int ett_rrc_IntraFreqMeasQuantity_TDDList;
+static int ett_rrc_IntraFreqMeasQuantity_TDD_sib3List;
+static int ett_rrc_IntraFreqMeasuredResultsList;
+static int ett_rrc_IntraFreqMeasuredResultsList_v920ext;
+static int ett_rrc_IntraFreqMeasuredResultsList_vc50ext;
+static int ett_rrc_IntraFreqMeasurementSysInfo_RSCP;
+static int ett_rrc_IntraFreqMeasurementSysInfo_ECN0;
+static int ett_rrc_IntraFreqMeasurementSysInfo_HCS_RSCP;
+static int ett_rrc_IntraFreqMeasurementSysInfo_HCS_ECN0;
+static int ett_rrc_IntraFreqMeasurementSysInfo_RSCP_LCR_r4;
+static int ett_rrc_IntraFreqMeasurementSysInfo_ECN0_LCR_r4;
+static int ett_rrc_IntraFreqMeasurementSysInfo_HCS_RSCP_LCR_r4;
+static int ett_rrc_IntraFreqMeasurementSysInfo_HCS_ECN0_LCR_r4;
+static int ett_rrc_IntraFreqReportCriteria;
+static int ett_rrc_IntraFreqReportCriteria_r4;
+static int ett_rrc_IntraFreqReportCriteria_r6;
+static int ett_rrc_IntraFreqReportCriteria_r7;
+static int ett_rrc_IntraFreqReportCriteria_r9;
+static int ett_rrc_IntraFreqReportCriteria_r11;
+static int ett_rrc_IntraFreqReportingCriteria;
+static int ett_rrc_IntraFreqReportingCriteria_r4;
+static int ett_rrc_IntraFreqReportingCriteria_LCR_r4;
+static int ett_rrc_IntraFreqReportingCriteria_r6;
+static int ett_rrc_IntraFreqReportingCriteria_r7;
+static int ett_rrc_IntraFreqReportingCriteria_r9;
+static int ett_rrc_IntraFreqReportingCriteria_r11;
+static int ett_rrc_IntraFreqReportingCriteria_1b_r5;
+static int ett_rrc_IntraFreqReportingQuantity;
+static int ett_rrc_IntraFreqReportingQuantityForRACH;
+static int ett_rrc_T_modeSpecificInfo_125;
+static int ett_rrc_T_fdd_169;
+static int ett_rrc_T_tdd_113;
+static int ett_rrc_IntraFreqReportingQuantityForRACH_vc50ext;
+static int ett_rrc_IntraFreqRepQuantityRACH_TDDList;
+static int ett_rrc_IntraFrequencyMeasurement;
+static int ett_rrc_IntraFrequencyMeasurement_r4;
+static int ett_rrc_IntraFrequencyMeasurement_r6;
+static int ett_rrc_IntraFrequencyMeasurement_r7;
+static int ett_rrc_IntraFrequencyMeasurement_r9;
+static int ett_rrc_IntraFrequencyMeasurement_r10;
+static int ett_rrc_IntraFrequencyMeasurement_r11;
+static int ett_rrc_IntraFrequencyMeasuredResultsListOnSecULFreq;
+static int ett_rrc_IntraFrequencyMeasuredResultsListOnSecULFreq_vc50ext;
+static int ett_rrc_IntraUTRAANR;
+static int ett_rrc_LoggedANRConfigurationInfo;
+static int ett_rrc_LoggedANRReportInfoList;
+static int ett_rrc_LoggedANRReportInfoList_vb50ext;
+static int ett_rrc_LoggedANRReportInfo;
+static int ett_rrc_LoggedANRReportInfo_vb50ext;
+static int ett_rrc_LoggedCellInfo;
+static int ett_rrc_LoggedCellInfo_vb50ext;
+static int ett_rrc_LoggedConnectionEstablishmentFailureInfo_FDD;
+static int ett_rrc_LoggedConnectionEstablishmentFailureInfo_FDD_vc50ext;
+static int ett_rrc_LoggedConnectionEstablishmentFailureInfo_FDD_r11;
+static int ett_rrc_LoggedConnectionEstablishmentFailureInfo_TDD128;
+static int ett_rrc_LoggedConnectionEstablishmentFailureInfo_TDD128_r11;
+static int ett_rrc_LoggedConnectionEstablishmentFailureInfo_TDD128_vc50ext;
+static int ett_rrc_LoggedConnectionEstablishmentFailureAccessInfo_FDD;
+static int ett_rrc_LoggedConnectionEstablishmentFailureAccessInfo_TDD;
+static int ett_rrc_LoggedConnectionEstablishmentFailureLocationInfo;
+static int ett_rrc_T_location;
+static int ett_rrc_ConnectionEstablishmentFailureReport;
+static int ett_rrc_T_modeSpecificInfo_126;
+static int ett_rrc_T_fdd_170;
+static int ett_rrc_T_tdd_114;
+static int ett_rrc_ConnectionEstablishmentFailureReport_r11;
+static int ett_rrc_T_modeSpecificInfo_127;
+static int ett_rrc_T_fdd_171;
+static int ett_rrc_T_tdd_115;
+static int ett_rrc_ConnectionEstablishmentFailureReport_vc50ext;
+static int ett_rrc_T_modeSpecificInfo_128;
+static int ett_rrc_T_fdd_172;
+static int ett_rrc_T_tdd_116;
+static int ett_rrc_LoggedEUTRACellInfo;
+static int ett_rrc_LoggedEUTRACellInfo_vb50ext;
+static int ett_rrc_LoggedGSMCellInfo;
+static int ett_rrc_LoggedMeasurementsConfigurationInfo;
+static int ett_rrc_T_areaConfiguration;
+static int ett_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_LAI;
+static int ett_rrc_SEQUENCE_SIZE_1_8_OF_RAI;
+static int ett_rrc_LoggedMeasurementsConfigurationInfo_r11;
+static int ett_rrc_T_areaConfiguration_01;
+static int ett_rrc_SEQUENCE_SIZE_1_32_OF_CellIDListItem;
+static int ett_rrc_LoggedMeasInterfreqList_FDD;
+static int ett_rrc_LoggedMeasInterfreqInfo_FDD;
+static int ett_rrc_SEQUENCE_SIZE_1_maxnumLoggedMeas_OF_LoggedMeasNeighbourInfo_FDD;
+static int ett_rrc_LoggedMeasInterfreqInfo_TDD128;
+static int ett_rrc_LoggedMeasInterRATNeighbourMeas;
+static int ett_rrc_LoggedMeasInterRATNeighbourMeas_vb50ext;
+static int ett_rrc_LoggedMeasInterRATNeighbourMeas_vc50ext;
+static int ett_rrc_LoggedMeasInterRATNeighbourMeas_r11;
+static int ett_rrc_LoggedMeasIntrafreqNeighbourList_FDD;
+static int ett_rrc_LoggedMeasNeighbourInfo_FDD;
+static int ett_rrc_LoggedMeasIntrafreqNeighbourMeasList_TDD128;
+static int ett_rrc_LoggedMeasNeighbourMeas_TDD128;
+static int ett_rrc_LoggedMeasGSMNeighbourCellsList;
+static int ett_rrc_LoggedMeasGSMNeighbourCellsinfo;
+static int ett_rrc_LoggedMeasEUTRAFreqList;
+static int ett_rrc_LoggedMeasEUTRAFreqList_vb50ext;
+static int ett_rrc_LoggedMeasEUTRAFreqList_r11;
+static int ett_rrc_LoggedMeasEUTRAFreqList_vc50ext;
+static int ett_rrc_LoggedMeasEUTRAFreqInfo;
+static int ett_rrc_SEQUENCE_SIZE_1_maxnumLoggedMeas_OF_LoggedMeasEUTRAFreqNeighbourInfo;
+static int ett_rrc_LoggedMeasEUTRAFreqInfo_vb50ext;
+static int ett_rrc_LoggedMeasEUTRAFreqInfo_r11;
+static int ett_rrc_LoggedMeasEUTRAFreqInfo_vc50ext;
+static int ett_rrc_SEQUENCE_SIZE_1_maxnumLoggedMeas_OF_LoggedMeasEUTRAFreqNeighbourInfo_vc50ext;
+static int ett_rrc_LoggedMeasEUTRAFreqNeighbourInfo;
+static int ett_rrc_LoggedMeasEUTRAFreqNeighbourInfo_vc50ext;
+static int ett_rrc_LoggedMeasInfo_FDD;
+static int ett_rrc_LoggedMeasInfo_FDD_vb50ext;
+static int ett_rrc_LoggedMeasInfo_FDD_vc50ext;
+static int ett_rrc_LoggedMeasInfo_TDD128;
+static int ett_rrc_LoggedMeasInfo_TDD128_vb50ext;
+static int ett_rrc_LoggedMeasInfo_TDD128_vc50ext;
+static int ett_rrc_LoggedMeasInfoList_FDD;
+static int ett_rrc_LoggedMeasInfoList_FDD_vb50ext;
+static int ett_rrc_LoggedMeasInfoList_FDD_vc50ext;
+static int ett_rrc_LoggedMeasInfoList_TDD128;
+static int ett_rrc_LoggedMeasInfoList_TDD128_vb50ext;
+static int ett_rrc_LoggedMeasInfoList_TDD128_vc50ext;
+static int ett_rrc_LoggedMeasInfoList;
+static int ett_rrc_T_modeSpecificInfo_129;
+static int ett_rrc_T_fdd_173;
+static int ett_rrc_T_tdd_117;
+static int ett_rrc_LoggedMeasInfoList_vb50ext;
+static int ett_rrc_T_modeSpecificInfo_130;
+static int ett_rrc_T_fdd_174;
+static int ett_rrc_T_tdd_118;
+static int ett_rrc_LoggedMeasInfoList_vc50ext;
+static int ett_rrc_T_modeSpecificInfo_131;
+static int ett_rrc_T_fdd_175;
+static int ett_rrc_T_tdd_119;
+static int ett_rrc_LoggedMeasInterfreqList_TDD128;
+static int ett_rrc_LoggedMeasInterfreqNeighbourList_TDD128;
+static int ett_rrc_LoggedMeasLocationInfo;
+static int ett_rrc_LoggedMeasLocationInfo_vb50ext;
+static int ett_rrc_LoggedMeasReport;
+static int ett_rrc_LoggedMeasReport_vb50ext;
+static int ett_rrc_LoggedMeasReport_vc50ext;
+static int ett_rrc_LoggedMeasServingCellMeas_FDD;
+static int ett_rrc_LoggedMeasServingCellMeas_FDD_vb50ext;
+static int ett_rrc_LoggedMeasServingCellMeas_TDD128;
+static int ett_rrc_LoggedMeasServingCellMeas_TDD128_vb50ext;
+static int ett_rrc_LoggedUTRACellInfo;
+static int ett_rrc_LoggingAbsoluteThreshold;
+static int ett_rrc_KeplerianParameters;
+static int ett_rrc_MeasuredResults;
+static int ett_rrc_MeasuredResultsOnSecUlFreq;
+static int ett_rrc_MeasuredResultsOnSecUlFreq_vc50ext;
+static int ett_rrc_MeasuredResults_v390ext;
+static int ett_rrc_MeasuredResults_v590ext;
+static int ett_rrc_MeasuredResults_v770ext;
+static int ett_rrc_MeasuredResults_v860ext;
+static int ett_rrc_MeasuredResults_vd20ext;
+static int ett_rrc_MeasuredResults_ve30ext;
+static int ett_rrc_MeasuredResultsList_v920ext;
+static int ett_rrc_MeasuredResultsList_vc50ext;
+static int ett_rrc_MeasuredResultsListOnSecUlFreq;
+static int ett_rrc_MeasuredResultsListOnSecUlFreq_vc50ext;
+static int ett_rrc_MeasuredResults_v920ext;
+static int ett_rrc_MeasuredResults_vc50ext;
+static int ett_rrc_MeasuredResults_LCR_r4;
+static int ett_rrc_MeasuredResultsList;
+static int ett_rrc_MeasuredResultsList_LCR_r4_ext;
+static int ett_rrc_MeasuredResultsList_v770xet;
+static int ett_rrc_MeasuredResultsList_v770xet_item;
+static int ett_rrc_MeasuredResultsList_v860ext;
+static int ett_rrc_MeasuredResultsList_v860ext_item;
+static int ett_rrc_MeasuredResultsOnRACH;
+static int ett_rrc_T_currentCell;
+static int ett_rrc_T_modeSpecificInfo_132;
+static int ett_rrc_T_fdd_176;
+static int ett_rrc_T_measurementQuantity_02;
+static int ett_rrc_T_tdd_120;
+static int ett_rrc_MeasuredResultsOnRACH_v7g0ext;
+static int ett_rrc_MonitoredCellRACH_List_v7g0ext;
+static int ett_rrc_MeasuredResultsOnRACHFDD_r11;
+static int ett_rrc_T_currentCell_01;
+static int ett_rrc_T_measurementQuantity_03;
+static int ett_rrc_MeasuredResultsOnRACHinterFreq;
+static int ett_rrc_MeasuredResultsOnRACHinterFreq_vc50ext;
+static int ett_rrc_MeasuredResultsOnRACH_vc50ext;
+static int ett_rrc_MeasuredResultsOnRACH_EUTRAFreq;
+static int ett_rrc_MeasuredResultsOnRACH_EUTRAFreq_vc50ext;
+static int ett_rrc_MeasurementCommand;
+static int ett_rrc_T_modify_01;
+static int ett_rrc_MeasurementCommand_r4;
+static int ett_rrc_T_modify_02;
+static int ett_rrc_MeasurementCommand_r6;
+static int ett_rrc_T_modify_03;
+static int ett_rrc_MeasurementCommand_r7;
+static int ett_rrc_T_modify_04;
+static int ett_rrc_MeasurementCommand_r8;
+static int ett_rrc_T_modify_05;
+static int ett_rrc_MeasurementCommand_r9;
+static int ett_rrc_T_modify_06;
+static int ett_rrc_MeasurementCommand_r10;
+static int ett_rrc_T_modify_07;
+static int ett_rrc_MeasurementCommand_r11;
+static int ett_rrc_T_modify_08;
+static int ett_rrc_MeasurementCommand_r12;
+static int ett_rrc_T_modify_09;
+static int ett_rrc_MeasurementCommand_r13;
+static int ett_rrc_T_modify_10;
+static int ett_rrc_MeasurementCommand_r14;
+static int ett_rrc_T_modify_11;
+static int ett_rrc_MeasurementCommand_r15;
+static int ett_rrc_T_modify_12;
+static int ett_rrc_MeasurementControlSysInfo;
+static int ett_rrc_T_use_of_HCS;
+static int ett_rrc_T_hcs_not_used;
+static int ett_rrc_T_cellSelectQualityMeasure_01;
+static int ett_rrc_T_cpich_RSCP;
+static int ett_rrc_T_cpich_Ec_N0_01;
+static int ett_rrc_T_hcs_used;
+static int ett_rrc_T_cellSelectQualityMeasure_02;
+static int ett_rrc_T_cpich_RSCP_01;
+static int ett_rrc_T_cpich_Ec_N0_02;
+static int ett_rrc_MeasurementControlSysInfo_vc50ext;
+static int ett_rrc_MeasurementControlSysInfoExtension;
+static int ett_rrc_T_use_of_HCS_01;
+static int ett_rrc_T_hcs_not_used_01;
+static int ett_rrc_T_cellSelectQualityMeasure_03;
+static int ett_rrc_T_cpich_RSCP_02;
+static int ett_rrc_T_cpich_Ec_N0_03;
+static int ett_rrc_T_hcs_used_01;
+static int ett_rrc_T_cellSelectQualityMeasure_04;
+static int ett_rrc_T_cpich_RSCP_03;
+static int ett_rrc_T_cpich_Ec_N0_04;
+static int ett_rrc_MeasurementControlSysInfoExtensionAddon_r5;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_CellSelectReselectInfo_v590ext;
+static int ett_rrc_MeasureControlSysInfoInterFreqExt;
+static int ett_rrc_T_use_of_HCS_02;
+static int ett_rrc_T_hcs_not_used_02;
+static int ett_rrc_T_cellSelectQualityMeasure_05;
+static int ett_rrc_T_cpich_RSCP_04;
+static int ett_rrc_T_cpich_Ec_N0_05;
+static int ett_rrc_T_hcs_used_02;
+static int ett_rrc_T_cellSelectQualityMeasure_06;
+static int ett_rrc_T_cpich_RSCP_05;
+static int ett_rrc_T_cpich_Ec_N0_06;
+static int ett_rrc_MeasurementControlSysInfoExtension_LCR_r4;
+static int ett_rrc_T_use_of_HCS_03;
+static int ett_rrc_T_hcs_not_used_03;
+static int ett_rrc_T_cellSelectQualityMeasure_07;
+static int ett_rrc_T_cpich_RSCP_06;
+static int ett_rrc_T_cpich_Ec_N0_07;
+static int ett_rrc_T_hcs_used_03;
+static int ett_rrc_T_cellSelectQualityMeasure_08;
+static int ett_rrc_T_cpich_RSCP_07;
+static int ett_rrc_T_cpich_Ec_N0_08;
+static int ett_rrc_MeasurementControlSysInfo_LCR_r4_ext;
+static int ett_rrc_T_use_of_HCS_04;
+static int ett_rrc_T_hcs_not_used_04;
+static int ett_rrc_T_cellSelectQualityMeasure_09;
+static int ett_rrc_T_cpich_RSCP_08;
+static int ett_rrc_T_cpich_Ec_N0_09;
+static int ett_rrc_T_hcs_used_04;
+static int ett_rrc_T_cellSelectQualityMeasure_10;
+static int ett_rrc_T_cpich_RSCP_09;
+static int ett_rrc_T_cpich_Ec_N0_10;
+static int ett_rrc_MeasurementOccasionPatternParameter;
+static int ett_rrc_MeasurementReleaseEnhancement;
+static int ett_rrc_MeasurementsToRelease;
+static int ett_rrc_MeasurementReportingMode;
+static int ett_rrc_MeasurementType;
+static int ett_rrc_MeasurementType_r4;
+static int ett_rrc_MeasurementType_r6;
+static int ett_rrc_MeasurementType_r7;
+static int ett_rrc_MeasurementType_r8;
+static int ett_rrc_MeasurementType_r9;
+static int ett_rrc_MeasurementType_r10;
+static int ett_rrc_MeasurementType_r11;
+static int ett_rrc_MeasurementType_r12;
+static int ett_rrc_MeasurementType_r13;
+static int ett_rrc_MeasurementType_r14;
+static int ett_rrc_MeasurementType_r15;
+static int ett_rrc_MeasurementType_Relocation_r14;
+static int ett_rrc_MeasurementType_Relocation_r15;
+static int ett_rrc_MeasurementValidity;
+static int ett_rrc_MonitoredCellRACH_List;
+static int ett_rrc_MonitoredCellRACH_Result;
+static int ett_rrc_T_modeSpecificInfo_133;
+static int ett_rrc_T_fdd_177;
+static int ett_rrc_T_measurementQuantity_04;
+static int ett_rrc_T_tdd_121;
+static int ett_rrc_MonitoredCellRACH_ListFDD_r11;
+static int ett_rrc_MonitoredCellRACH_ResultFDD_r11;
+static int ett_rrc_T_measurementQuantity_05;
+static int ett_rrc_MultipleEUTRAFrequencyBandIndicatorList;
+static int ett_rrc_MultipleEUTRAFrequencyBandIndicatorExtensionList;
+static int ett_rrc_MultipleEUTRAFrequencyBandInfo;
+static int ett_rrc_MultipleEUTRAFrequencyBandExtensionInfo;
+static int ett_rrc_MultipleEUTRAFrequencyInfoList;
+static int ett_rrc_MultipleEUTRAFrequencyInfoExtensionList;
+static int ett_rrc_MultipleFrequencyBandIndicatorListFDD;
+static int ett_rrc_MultipleFrequencyBandInfo;
+static int ett_rrc_MultipleFrequencyInfoListFDD;
+static int ett_rrc_N_CR_T_CRMaxHyst;
+static int ett_rrc_NAVclockModel;
+static int ett_rrc_NavigationModelSatInfo;
+static int ett_rrc_NavigationModelSatInfoList;
+static int ett_rrc_NavModel_BDSKeplerianSet;
+static int ett_rrc_NavModel_CNAVKeplerianSet;
+static int ett_rrc_NavModel_GLONASSecef;
+static int ett_rrc_NavModel_NAVKeplerianSet;
+static int ett_rrc_NavModel_SBASecef;
+static int ett_rrc_EphemerisParameter;
+static int ett_rrc_Neighbour;
+static int ett_rrc_T_modeSpecificInfo_134;
+static int ett_rrc_T_fdd_178;
+static int ett_rrc_T_tdd_122;
+static int ett_rrc_Neighbour_v390ext;
+static int ett_rrc_T_modeSpecificInfo_135;
+static int ett_rrc_T_fdd_179;
+static int ett_rrc_NeighbourList;
+static int ett_rrc_Neighbour_TDD_r7;
+static int ett_rrc_NeighbourList_TDD_r7;
+static int ett_rrc_NeighbourList_v390ext;
+static int ett_rrc_NeighbourQuality;
+static int ett_rrc_NewInterFreqCell;
+static int ett_rrc_NewInterFreqCell_r4;
+static int ett_rrc_NewInterFreqCell_v7b0ext;
+static int ett_rrc_NewInterFreqCell_LCR_v8a0ext;
+static int ett_rrc_NewInterFreqCell_r8;
+static int ett_rrc_T_modeSpecificInfo_136;
+static int ett_rrc_T_tdd128_67;
+static int ett_rrc_NewInterFreqCell_r9;
+static int ett_rrc_T_modeSpecificInfo_137;
+static int ett_rrc_T_tdd128_68;
+static int ett_rrc_NewInterFreqCell_r10;
+static int ett_rrc_T_modeSpecificInfo_138;
+static int ett_rrc_T_tdd128_69;
+static int ett_rrc_NewInterFreqCell_r12;
+static int ett_rrc_T_modeSpecificInfo_139;
+static int ett_rrc_T_tdd128_70;
+static int ett_rrc_NewInterFreqCellList;
+static int ett_rrc_NewInterFreqCellList_r4;
+static int ett_rrc_NewInterFreqCellList_r12;
+static int ett_rrc_NewInterFreqCellList_v7b0ext;
+static int ett_rrc_NewInterFreqCellList_LCR_v8a0ext;
+static int ett_rrc_NewInterFreqCellList_r8;
+static int ett_rrc_NewInterFreqCellList_r9;
+static int ett_rrc_NewInterFreqCellList_r10;
+static int ett_rrc_NewInterFreqCellSI_RSCP;
+static int ett_rrc_NewInterFreqCellSI_RSCP_ext;
+static int ett_rrc_NewInterFreqCellSI_ECN0;
+static int ett_rrc_NewInterFreqCellSI_ECN0_ext;
+static int ett_rrc_NewInterFreqCellSI_HCS_RSCP;
+static int ett_rrc_NewInterFreqCellSI_HCS_RSCP_ext;
+static int ett_rrc_NewInterFreqCellSI_HCS_ECN0;
+static int ett_rrc_NewInterFreqCellSI_HCS_ECN0_ext;
+static int ett_rrc_NewInterFreqCellSI_RSCP_LCR_r4;
+static int ett_rrc_NewInterFreqCellSI_ECN0_LCR_r4;
+static int ett_rrc_NewInterFreqCellSI_HCS_RSCP_LCR_r4;
+static int ett_rrc_NewInterFreqCellSI_HCS_ECN0_LCR_r4;
+static int ett_rrc_NewInterFreqCellSI_List_ECN0;
+static int ett_rrc_NewInterFreqCellSI_List_ECN0_ext;
+static int ett_rrc_NewInterFreqCellSI_List_HCS_RSCP;
+static int ett_rrc_NewInterFreqCellSI_List_HCS_RSCP_ext;
+static int ett_rrc_NewInterFreqCellSI_List_HCS_ECN0;
+static int ett_rrc_NewInterFreqCellSI_List_HCS_ECN0_ext;
+static int ett_rrc_NewInterFreqCellSI_List_RSCP;
+static int ett_rrc_NewInterFreqCellSI_List_RSCP_ext;
+static int ett_rrc_NewInterFreqCellSI_List_ECN0_LCR_r4;
+static int ett_rrc_NewInterFreqCellSI_List_HCS_RSCP_LCR_r4;
+static int ett_rrc_NewInterFreqCellSI_List_HCS_ECN0_LCR_r4;
+static int ett_rrc_NewInterFreqCellSI_List_RSCP_LCR_r4;
+static int ett_rrc_NewInterRATCell;
+static int ett_rrc_T_technologySpecificInfo_01;
+static int ett_rrc_T_gsm_15;
+static int ett_rrc_T_is_2000_02;
+static int ett_rrc_NewInterRATCell_B;
+static int ett_rrc_T_technologySpecificInfo_02;
+static int ett_rrc_T_gsm_16;
+static int ett_rrc_T_is_2000_03;
+static int ett_rrc_NewInterRATCellList;
+static int ett_rrc_NewInterRATCellList_B;
+static int ett_rrc_NewIntraFreqCell;
+static int ett_rrc_NewIntraFreqCell_r4;
+static int ett_rrc_NewIntraFreqCell_r9;
+static int ett_rrc_NewIntraFreqCell_r10;
+static int ett_rrc_T_modeSpecificInfo_140;
+static int ett_rrc_T_tdd128_71;
+static int ett_rrc_NewIntraFreqCellOnSecULFreq;
+static int ett_rrc_NewIntraFreqCellList;
+static int ett_rrc_NewIntraFreqCellList_r4;
+static int ett_rrc_NewIntraFreqCellList_r9;
+static int ett_rrc_NewIntraFreqCellList_r10;
+static int ett_rrc_NewIntraFreqCell_LCR_v8a0ext;
+static int ett_rrc_NewIntraFreqCellList_LCR_v8a0ext;
+static int ett_rrc_NewIntraFreqCellListOnSecULFreq;
+static int ett_rrc_NewIntraFreqCellSI_RSCP;
+static int ett_rrc_NewIntraFreqCellSI_ECN0;
+static int ett_rrc_NewIntraFreqCellSI_HCS_RSCP;
+static int ett_rrc_NewIntraFreqCellSI_HCS_ECN0;
+static int ett_rrc_NewIntraFreqCellSI_RSCP_LCR_r4;
+static int ett_rrc_NewIntraFreqCellSI_ECN0_LCR_r4;
+static int ett_rrc_NewIntraFreqCellSI_HCS_RSCP_LCR_r4;
+static int ett_rrc_NewIntraFreqCellSI_HCS_ECN0_LCR_r4;
+static int ett_rrc_NewIntraFreqCellSI_List_RSCP;
+static int ett_rrc_NewIntraFreqCellSI_List_ECN0;
+static int ett_rrc_NewIntraFreqCellSI_List_HCS_RSCP;
+static int ett_rrc_NewIntraFreqCellSI_List_HCS_ECN0;
+static int ett_rrc_NewIntraFreqCellSI_List_RSCP_LCR_r4;
+static int ett_rrc_NewIntraFreqCellSI_List_ECN0_LCR_r4;
+static int ett_rrc_NewIntraFreqCellSI_List_HCS_RSCP_LCR_r4;
+static int ett_rrc_NewIntraFreqCellSI_List_HCS_ECN0_LCR_r4;
+static int ett_rrc_NonUsedFreqParameter;
+static int ett_rrc_NonUsedFreqParameter_r6;
+static int ett_rrc_NonUsedFreqParameter_r10;
+static int ett_rrc_NonUsedFreqParameter_r11;
+static int ett_rrc_NonUsedFreq2aParameter_r10;
+static int ett_rrc_NonUsedFreq2aParameter_r11;
+static int ett_rrc_NonUsedFreqParameterList;
+static int ett_rrc_NonUsedFreqParameterList_r6;
+static int ett_rrc_NonUsedFreqParameterList_r10;
+static int ett_rrc_NonUsedFreqParameterList_r11;
+static int ett_rrc_NonUsedFreq2aParameterList_r10;
+static int ett_rrc_NonUsedFreq2aParameterList_r11;
+static int ett_rrc_NonUsedFreqWList_r6;
+static int ett_rrc_ApplicationLayerMeasurementConfiguration;
+static int ett_rrc_ApplicationLayerMeasurementConfiguration_r15;
+static int ett_rrc_ApplicationLayerMeasurementReporting;
+static int ett_rrc_ApplicationLayerMeasurementReporting_r15;
+static int ett_rrc_PenaltyTime_RSCP;
+static int ett_rrc_PenaltyTime_ECN0;
+static int ett_rrc_PeriodicalReportingCriteria;
+static int ett_rrc_PeriodicReportingInfo_1b;
+static int ett_rrc_PeriodicalWithReportingCellStatus;
+static int ett_rrc_PeriodicalWithReportingCellStatus_r10;
+static int ett_rrc_PeriodicalWithReportingCellStatusOnSecULFreq;
+static int ett_rrc_PLMNIdentitiesOfNeighbourCells;
+static int ett_rrc_PLMNIdentitiesOfNeighbourCells_v860ext;
+static int ett_rrc_PLMNIdentitiesOfNeighbourCells_vc50ext;
+static int ett_rrc_PlmnList;
+static int ett_rrc_PLMNsOfInterFreqCellsList;
+static int ett_rrc_PLMNsOfInterFreqCellsList_item;
+static int ett_rrc_PLMNsOfInterFreqCellsList_vc50ext;
+static int ett_rrc_InterFreqCellPLMN;
+static int ett_rrc_MultiplePLMNsOfInterFreqCellsList;
+static int ett_rrc_MultiplePLMNsOfInterFreqCellsList_item;
+static int ett_rrc_SEQUENCE_SIZE_1_6_OF_PLMN_IdentityWithOptionalMCC_r6;
+static int ett_rrc_MultiplePLMNsOfInterFreqCellsList_vc50ext;
+static int ett_rrc_MultiplePLMNInfo;
+static int ett_rrc_MultiplePLMN_List;
+static int ett_rrc_PLMNsOfIntraFreqCellsList;
+static int ett_rrc_PLMNsOfIntraFreqCellsList_item;
+static int ett_rrc_MultiplePLMNsOfIntraFreqCellsList;
+static int ett_rrc_MultiplePLMNsOfIntraFreqCellsList_item;
+static int ett_rrc_PLMNsOfInterRATCellsList;
+static int ett_rrc_PLMNsOfInterRATCellsList_item;
+static int ett_rrc_PositionEstimate;
+static int ett_rrc_QualityEventResults;
+static int ett_rrc_QualityMeasuredResults;
+static int ett_rrc_T_modeSpecificInfo_141;
+static int ett_rrc_T_tdd_123;
+static int ett_rrc_QualityMeasurement;
+static int ett_rrc_QualityReportCriteria;
+static int ett_rrc_QualityReportingCriteria;
+static int ett_rrc_QualityReportingCriteriaSingle;
+static int ett_rrc_QualityReportingQuantity;
+static int ett_rrc_T_modeSpecificInfo_142;
+static int ett_rrc_T_tdd_124;
+static int ett_rrc_ReferenceCellPosition;
+static int ett_rrc_ReferenceLocation;
+static int ett_rrc_ReferenceLocationGANSS;
+static int ett_rrc_ReferenceTimeDifferenceToCell;
+static int ett_rrc_RemovedInterFreqCellList;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_InterFreqCellID;
+static int ett_rrc_RemovedInterFreqCellList_r12;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_ext_OF_InterFreqCellID_r12;
+static int ett_rrc_RemovedInterRATCellList;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_InterRATCellID;
+static int ett_rrc_RemovedIntraFreqCellList;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeas_OF_IntraFreqCellID;
+static int ett_rrc_RemovedIntraFreqCellListOnSecULFreq;
+static int ett_rrc_SEQUENCE_SIZE_1_maxCellMeasOnSecULFreq_OF_IntraFreqCellIDOnSecULFreq;
+static int ett_rrc_ReportingCellStatus;
+static int ett_rrc_ReportingCellStatus_r10;
+static int ett_rrc_ReportingCellStatusOpt;
+static int ett_rrc_ReportingCellStatusOpt_r10;
+static int ett_rrc_ReportingInfoForCellDCH;
+static int ett_rrc_ReportingInfoForCellDCH_LCR_r4;
+static int ett_rrc_ReqDataBitAssistance;
+static int ett_rrc_T_ganssSatelliteInfo;
+static int ett_rrc_RL_AdditionInfoList;
+static int ett_rrc_RL_InformationLists;
+static int ett_rrc_RMP_Frequency_List;
+static int ett_rrc_RSCPforANR;
+static int ett_rrc_RsrqType;
+static int ett_rrc_SatData;
+static int ett_rrc_SatDataList;
+static int ett_rrc_SatellitesListRelatedData;
+static int ett_rrc_SatellitesListRelatedDataList;
+static int ett_rrc_Satellite_clock_model;
+static int ett_rrc_Satellite_clock_modelList;
+static int ett_rrc_SBASclockModel;
+static int ett_rrc_S_DPCCH_Information;
+static int ett_rrc_SFN_SFN_ObsTimeDifference;
+static int ett_rrc_SFN_SFN_RelTimeDifference1;
+static int ett_rrc_SIR_MeasurementList;
+static int ett_rrc_SIR_MeasurementResults;
+static int ett_rrc_SIR_TFCS_List;
+static int ett_rrc_SIR_TimeslotList;
+static int ett_rrc_SubFrame1Reserved;
+static int ett_rrc_T_ADVinfo;
+static int ett_rrc_T_ADVinfo_ext;
+static int ett_rrc_T_CRMax;
+static int ett_rrc_TCE_Id;
+static int ett_rrc_TemporaryOffsetList;
+static int ett_rrc_ThreholdNonUsedFrequency_deltaList;
+static int ett_rrc_TimeslotInfo;
+static int ett_rrc_TimeslotInfo_LCR_r4;
+static int ett_rrc_TimeslotInfoList;
+static int ett_rrc_TimeslotInfoList_LCR_r4;
+static int ett_rrc_TimeslotInfoList_r4;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_OF_TimeslotInfo;
+static int ett_rrc_SEQUENCE_SIZE_1_maxTS_LCR_OF_TimeslotInfo_LCR_r4;
+static int ett_rrc_TimeslotISCP_List;
+static int ett_rrc_TimeslotListWithISCP;
+static int ett_rrc_TimeslotWithISCP;
+static int ett_rrc_TraceReference;
+static int ett_rrc_TraceRecordingSession;
+static int ett_rrc_TrafficVolumeEventParam;
+static int ett_rrc_TrafficVolumeEventResults;
+static int ett_rrc_TrafficVolumeMeasQuantity;
+static int ett_rrc_TrafficVolumeMeasSysInfo;
+static int ett_rrc_TrafficVolumeMeasuredResults;
+static int ett_rrc_TrafficVolumeMeasuredResultsList;
+static int ett_rrc_TrafficVolumeMeasurement;
+static int ett_rrc_TrafficVolumeMeasurementObjectList;
+static int ett_rrc_TrafficVolumeReportCriteria;
+static int ett_rrc_TrafficVolumeReportCriteriaSysInfo;
+static int ett_rrc_TrafficVolumeReportingCriteria;
+static int ett_rrc_TrafficVolumeReportingQuantity;
+static int ett_rrc_TransChCriteria;
+static int ett_rrc_SEQUENCE_SIZE_1_maxMeasParEvent_OF_TrafficVolumeEventParam;
+static int ett_rrc_TransChCriteriaList;
+static int ett_rrc_UE_6AB_Event;
+static int ett_rrc_UE_6FG_Event;
+static int ett_rrc_UE_6HI_Event;
+static int ett_rrc_UE_AutonomousUpdateMode;
+static int ett_rrc_UE_InternalEventParam;
+static int ett_rrc_UE_InternalEventParam_r14;
+static int ett_rrc_UE_InternalEventParamList;
+static int ett_rrc_UE_InternalEventParamList_r14;
+static int ett_rrc_UE_InternalEventResults;
+static int ett_rrc_UE_InternalEventResults_v30ext_IEs;
+static int ett_rrc_UE_InternalMeasQuantity;
+static int ett_rrc_UE_InternalMeasQuantity_r14;
+static int ett_rrc_UE_InternalMeasuredResults;
+static int ett_rrc_T_modeSpecificInfo_143;
+static int ett_rrc_T_fdd_180;
+static int ett_rrc_T_tdd_125;
+static int ett_rrc_UE_InternalMeasuredResults_ve30ext;
+static int ett_rrc_T_modeSpecificInfo_144;
+static int ett_rrc_T_fdd_181;
+static int ett_rrc_UE_InternalMeasuredResults_LCR_r4;
+static int ett_rrc_UE_InternalMeasuredResults_v770ext;
+static int ett_rrc_T_modeSpecificInfo_145;
+static int ett_rrc_T_tdd384_768_02;
+static int ett_rrc_T_tdd128_72;
+static int ett_rrc_UE_InternalMeasurement;
+static int ett_rrc_UE_InternalMeasurement_r4;
+static int ett_rrc_UE_InternalMeasurement_r14;
+static int ett_rrc_UE_InternalMeasurementSysInfo;
+static int ett_rrc_UE_InternalReportCriteria;
+static int ett_rrc_UE_InternalReportCriteria_r14;
+static int ett_rrc_UE_InternalReportingCriteria;
+static int ett_rrc_UE_InternalReportingCriteria_r14;
+static int ett_rrc_UE_InternalReportingQuantity;
+static int ett_rrc_T_modeSpecificInfo_146;
+static int ett_rrc_T_fdd_182;
+static int ett_rrc_T_tdd_126;
+static int ett_rrc_UE_InternalReportingQuantity_r4;
+static int ett_rrc_T_modeSpecificInfo_147;
+static int ett_rrc_T_fdd_183;
+static int ett_rrc_T_tdd_127;
+static int ett_rrc_T_tddOption_29;
+static int ett_rrc_T_tdd384_45;
+static int ett_rrc_T_tdd128_73;
+static int ett_rrc_UE_InternalReportingQuantity_r14;
+static int ett_rrc_T_modeSpecificInfo_148;
+static int ett_rrc_T_fdd_184;
+static int ett_rrc_T_tdd_128;
+static int ett_rrc_T_tddOption_30;
+static int ett_rrc_T_tdd384_46;
+static int ett_rrc_T_tdd128_74;
+static int ett_rrc_UE_RX_TX_ReportEntry;
+static int ett_rrc_UE_RX_TX_ReportEntryList;
+static int ett_rrc_UE_RX_TX_TimeDifferenceType2Info;
+static int ett_rrc_UE_TransmittedPowerTDD_List;
+static int ett_rrc_UL_TrCH_Identity;
+static int ett_rrc_UE_Positioning_DBDSCorrections;
+static int ett_rrc_UE_Positioning_CipherParameters;
+static int ett_rrc_UE_Positioning_DGANSSCorrections;
+static int ett_rrc_UE_Positioning_DGANSSCorrections_r9;
+static int ett_rrc_UE_Positioning_DGANSSCorrections_v920ext;
+static int ett_rrc_UE_Positioning_Error;
+static int ett_rrc_UE_Positioning_Error_r7;
+static int ett_rrc_UE_Positioning_Error_v860ext;
+static int ett_rrc_UE_Positioning_Error_vc50ext;
+static int ett_rrc_UE_Positioning_EventParam;
+static int ett_rrc_UE_Positioning_EventParam_r7;
+static int ett_rrc_UE_Positioning_EventParamList;
+static int ett_rrc_UE_Positioning_EventParamList_r7;
+static int ett_rrc_UE_Positioning_EventSpecificInfo;
+static int ett_rrc_UE_Positioning_EventSpecificInfo_r7;
+static int ett_rrc_UE_Positioning_GANSS_AddUTCModels;
+static int ett_rrc_UE_Positioning_GANSS_AddUTCModels_r12;
+static int ett_rrc_UE_Positioning_GANSS_AddUTCModels_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_Almanac;
+static int ett_rrc_UE_Positioning_GANSS_Almanac_v860ext;
+static int ett_rrc_UE_Positioning_GANSS_Almanac_r8;
+static int ett_rrc_UE_Positioning_GANSS_Almanac_va40ext;
+static int ett_rrc_UE_Positioning_GANSS_Almanac_r10;
+static int ett_rrc_UE_Positioning_GANSS_Almanac_r12;
+static int ett_rrc_UE_Positioning_GANSS_Almanac_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_AdditionalAssistanceDataRequest;
+static int ett_rrc_UE_Positioning_GANSS_AdditionalAssistanceDataRequest_v860ext;
+static int ett_rrc_UE_Positioning_GANSS_AdditionalAssistanceDataRequest_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_AddIonoModel;
+static int ett_rrc_UE_Positioning_GANSS_AddNavigationModels;
+static int ett_rrc_UE_Positioning_GANSS_AddNavigationModels_r12;
+static int ett_rrc_UE_Positioning_GANSS_AddNavigationModels_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_v860ext;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_r8;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_r9;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_v920ext;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_va40ext;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_r10;
+static int ett_rrc_UE_Positioning_GANSS_AssistanceData_r12;
+static int ett_rrc_UE_Positioning_GANSS_AuxiliaryInfo;
+static int ett_rrc_UE_Positioning_GANSS_ClockModel;
+static int ett_rrc_UE_Positioning_GANSS_AddClockModels;
+static int ett_rrc_UE_Positioning_GANSS_AddClockModels_r12;
+static int ett_rrc_UE_Positioning_GANSS_AddClockModels_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_AddOrbitModels;
+static int ett_rrc_UE_Positioning_GANSS_AddOrbitModels_r12;
+static int ett_rrc_UE_Positioning_GANSS_AddOrbitModels_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_Data_Bit_Assistance;
+static int ett_rrc_UE_Positioning_GANSS_EarthOrientPara;
+static int ett_rrc_UE_Positioning_GANSS_IonosphericModel;
+static int ett_rrc_UE_Positioning_BDS_IonoGridModel;
+static int ett_rrc_UE_Positioning_GANSS_MeasuredResults;
+static int ett_rrc_T_referenceTime;
+static int ett_rrc_UE_Positioning_GANSS_MeasuredResults_v860ext;
+static int ett_rrc_UE_Positioning_GANSS_NavigationModel;
+static int ett_rrc_UE_Positioning_GANSS_OrbitModel;
+static int ett_rrc_UE_Positioning_GANSS_RealTimeIntegrity;
+static int ett_rrc_UE_Positioning_GANSS_RealTimeIntegrity_item;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_va40ext;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_r10;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_vc50ext;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceMeasurementInfo_r12;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceTime;
+static int ett_rrc_T_utran_ganssreferenceTime;
+static int ett_rrc_T_mode;
+static int ett_rrc_T_fdd_185;
+static int ett_rrc_T_tdd_129;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceTime_va40ext;
+static int ett_rrc_UE_Positioning_GANSS_ReferenceTime_r10;
+static int ett_rrc_T_utran_ganssreferenceTime_01;
+static int ett_rrc_T_mode_01;
+static int ett_rrc_T_fdd_186;
+static int ett_rrc_T_tdd_130;
+static int ett_rrc_UE_Positioning_GANSS_TimeModel;
+static int ett_rrc_UE_Positioning_GANSS_TimeModel_va40ext;
+static int ett_rrc_UE_Positioning_GANSS_TimeModel_r10;
+static int ett_rrc_UE_Positioning_GANSS_TimeModels;
+static int ett_rrc_UE_Positioning_GANSS_TimeModels_va40ext;
+static int ett_rrc_UE_Positioning_GANSS_UTCModel;
+static int ett_rrc_UE_Positioning_GPS_AcquisitionAssistance;
+static int ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_v770ext;
+static int ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_r7;
+static int ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_va40ext;
+static int ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_r10;
+static int ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_vc50ext;
+static int ett_rrc_UE_Positioning_GPS_AcquisitionAssistance_r12;
+static int ett_rrc_UE_Positioning_GPS_AdditionalAssistanceDataRequest;
+static int ett_rrc_UE_Positioning_GPS_Almanac;
+static int ett_rrc_UE_Positioning_GPS_Almanac_va40ext;
+static int ett_rrc_UE_Positioning_GPS_Almanac_r10;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_v770ext;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_r7;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_r9;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_v920ext;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_va40ext;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_r10;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_vc50ext;
+static int ett_rrc_UE_Positioning_GPS_AssistanceData_r12;
+static int ett_rrc_UE_Positioning_GPS_DGPS_Corrections;
+static int ett_rrc_UE_Positioning_GPS_DGPS_Corrections_r9;
+static int ett_rrc_UE_Positioning_GPS_DGPS_Corrections_v920ext;
+static int ett_rrc_UE_Positioning_GPS_IonosphericModel;
+static int ett_rrc_UE_Positioning_GPS_MeasurementResults;
+static int ett_rrc_T_referenceTime_01;
+static int ett_rrc_UE_Positioning_GPS_MeasurementResults_v770ext;
+static int ett_rrc_UE_Positioning_GPS_NavigationModel;
+static int ett_rrc_UE_Positioning_GPS_NavModelAddDataReq;
+static int ett_rrc_UE_Positioning_GPS_ReferenceCellInfo;
+static int ett_rrc_T_modeSpecificInfo_149;
+static int ett_rrc_T_fdd_187;
+static int ett_rrc_T_tdd_131;
+static int ett_rrc_UE_Positioning_GPS_ReferenceTime;
+static int ett_rrc_UE_Positioning_GPS_ReferenceTime_v770ext;
+static int ett_rrc_UE_Positioning_GPS_ReferenceTime_r7;
+static int ett_rrc_UE_Positioning_GPS_ReferenceTime_va40ext;
+static int ett_rrc_UE_Positioning_GPS_ReferenceTime_r10;
+static int ett_rrc_UE_Positioning_GPS_UTC_Model;
+static int ett_rrc_UE_Positioning_IPDL_Parameters;
+static int ett_rrc_UE_Positioning_IPDL_Parameters_r4;
+static int ett_rrc_T_modeSpecificInfo_150;
+static int ett_rrc_T_fdd_188;
+static int ett_rrc_T_tdd_132;
+static int ett_rrc_UE_Positioning_IPDL_Parameters_TDD_r4_ext;
+static int ett_rrc_UE_Positioning_MeasuredResults;
+static int ett_rrc_UE_Positioning_MeasuredResults_v770ext;
+static int ett_rrc_UE_Positioning_MeasuredResults_v390ext;
+static int ett_rrc_UE_Positioning_MeasuredResults_v860ext;
+static int ett_rrc_UE_Positioning_MeasuredResults_vc50ext;
+static int ett_rrc_UE_Positioning_MeasuredResults_vd20ext;
+static int ett_rrc_UE_Positioning_Measurement;
+static int ett_rrc_UE_Positioning_Measurement_v390ext;
+static int ett_rrc_UE_Positioning_Measurement_r4;
+static int ett_rrc_UE_Positioning_Measurement_r7;
+static int ett_rrc_UE_Positioning_Measurement_r8;
+static int ett_rrc_UE_Positioning_Measurement_r9;
+static int ett_rrc_UE_Positioning_Measurement_r10;
+static int ett_rrc_UE_Positioning_Measurement_r12;
+static int ett_rrc_UE_Positioning_Measurement_r13;
+static int ett_rrc_UE_Positioning_MeasurementEventResults;
+static int ett_rrc_UE_Positioning_MeasurementEventResults_v770ext;
+static int ett_rrc_UE_Positioning_MeasurementEventResults_v860ext;
+static int ett_rrc_UE_Positioning_OTDOA_AssistanceData;
+static int ett_rrc_UE_Positioning_OTDOA_AssistanceData_r4;
+static int ett_rrc_UE_Positioning_OTDOA_AssistanceData_r4ext;
+static int ett_rrc_UE_Positioning_OTDOA_AssistanceData_UEB;
+static int ett_rrc_UE_Positioning_OTDOA_AssistanceData_UEB_ext;
+static int ett_rrc_UE_Positioning_OTDOA_AssistanceData_r7;
+static int ett_rrc_UE_Positioning_IPDL_Parameters_TDDList_r4_ext;
+static int ett_rrc_UE_Positioning_OTDOA_MeasuredResultsTDD_ext;
+static int ett_rrc_UE_Positioning_OTDOA_Measurement;
+static int ett_rrc_T_modeSpecificInfo_151;
+static int ett_rrc_T_fdd_189;
+static int ett_rrc_T_tdd_133;
+static int ett_rrc_UE_Positioning_OTDOA_Measurement_v390ext;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo;
+static int ett_rrc_T_modeSpecificInfo_152;
+static int ett_rrc_T_fdd_190;
+static int ett_rrc_T_tdd_134;
+static int ett_rrc_T_positioningMode;
+static int ett_rrc_T_ueBased;
+static int ett_rrc_T_ueAssisted;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_r4;
+static int ett_rrc_T_modeSpecificInfo_153;
+static int ett_rrc_T_fdd_191;
+static int ett_rrc_T_tdd_135;
+static int ett_rrc_T_positioningMode_01;
+static int ett_rrc_T_ueBased_01;
+static int ett_rrc_T_ueAssisted_01;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_UEB;
+static int ett_rrc_T_modeSpecificInfo_154;
+static int ett_rrc_T_fdd_192;
+static int ett_rrc_T_tdd_136;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_UEB_ext;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellInfo_r7;
+static int ett_rrc_T_modeSpecificInfo_155;
+static int ett_rrc_T_fdd_193;
+static int ett_rrc_T_tdd_137;
+static int ett_rrc_T_positioningMode_02;
+static int ett_rrc_T_ueBased_02;
+static int ett_rrc_T_ueAssisted_02;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellList;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_r4;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_UEB;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_UEB_ext;
+static int ett_rrc_UE_Positioning_OTDOA_NeighbourCellList_r7;
+static int ett_rrc_UE_Positioning_OTDOA_Quality;
+static int ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo;
+static int ett_rrc_T_modeSpecificInfo_156;
+static int ett_rrc_T_fdd_194;
+static int ett_rrc_T_tdd_138;
+static int ett_rrc_T_positioningMode_03;
+static int ett_rrc_T_ueBased_03;
+static int ett_rrc_T_ueAssisted_03;
+static int ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_r4;
+static int ett_rrc_T_modeSpecificInfo_157;
+static int ett_rrc_T_fdd_195;
+static int ett_rrc_T_tdd_139;
+static int ett_rrc_T_positioningMode_04;
+static int ett_rrc_T_ueBased_04;
+static int ett_rrc_T_ueAssisted_04;
+static int ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_UEB;
+static int ett_rrc_T_modeSpecificInfo_158;
+static int ett_rrc_T_fdd_196;
+static int ett_rrc_T_tdd_140;
+static int ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_UEB_ext;
+static int ett_rrc_UE_Positioning_OTDOA_ReferenceCellInfo_r7;
+static int ett_rrc_T_modeSpecificInfo_159;
+static int ett_rrc_T_fdd_197;
+static int ett_rrc_T_tdd_141;
+static int ett_rrc_T_positioningMode_05;
+static int ett_rrc_T_ueBased_05;
+static int ett_rrc_T_ueAssisted_05;
+static int ett_rrc_UE_Positioning_PositionEstimateInfo;
+static int ett_rrc_T_referenceTime_02;
+static int ett_rrc_T_cell_Timing;
+static int ett_rrc_T_modeSpecificInfo_160;
+static int ett_rrc_T_fdd_198;
+static int ett_rrc_T_tdd_142;
+static int ett_rrc_UE_Positioning_PositionEstimateInfo_v770ext;
+static int ett_rrc_T_referenceTimeOptions;
+static int ett_rrc_T_r7_15;
+static int ett_rrc_T_referenceTime_03;
+static int ett_rrc_UE_Positioning_PositionEstimateInfo_vd20ext;
+static int ett_rrc_UE_Positioning_ReportCriteria;
+static int ett_rrc_UE_Positioning_ReportCriteria_r7;
+static int ett_rrc_UE_Positioning_ReportingQuantity;
+static int ett_rrc_UE_Positioning_ReportingQuantity_v390ext;
+static int ett_rrc_UE_Positioning_ReportingQuantity_r4;
+static int ett_rrc_UE_Positioning_ReportingQuantity_r7;
+static int ett_rrc_UE_Positioning_ReportingQuantity_r8;
+static int ett_rrc_UE_Positioning_ReportingQuantity_r13;
+static int ett_rrc_UE_Positioning_AddPos_MeasuredResults;
+static int ett_rrc_UE_Positioning_AddPos_MeasuredResults_element;
+static int ett_rrc_T_addPos_ID_01;
+static int ett_rrc_UE_Positioning_BarometricPressureMeasurement;
+static int ett_rrc_UE_Positioning_WLANMeasurementList;
+static int ett_rrc_UE_Positioning_WLANMeasurementList_element;
+static int ett_rrc_UE_Positioning_BTMeasurementList;
+static int ett_rrc_UE_Positioning_BTMeasurementList_element;
+static int ett_rrc_UE_Positioning_MBSMeasurementList;
+static int ett_rrc_UE_Positioning_MBSMeasurementList_element;
+static int ett_rrc_UTCmodelSet1;
+static int ett_rrc_UTCmodelSet2;
+static int ett_rrc_UTCmodelSet3;
+static int ett_rrc_UTCmodelSet4;
+static int ett_rrc_UTRAN_GANSSReferenceTime;
+static int ett_rrc_T_ue_GANSSTimingOfCellFrames;
+static int ett_rrc_T_mode_02;
+static int ett_rrc_T_fdd_199;
+static int ett_rrc_T_tdd_143;
+static int ett_rrc_UTRAN_FDD_FrequencyList;
+static int ett_rrc_UTRAN_FDD_Frequency;
+static int ett_rrc_UTRAN_TDD_FrequencyList;
+static int ett_rrc_UTRAN_TDD_Frequency;
+static int ett_rrc_UTRAN_GPSReferenceTime;
+static int ett_rrc_T_utran_GPSTimingOfCell;
+static int ett_rrc_T_modeSpecificInfo_161;
+static int ett_rrc_T_fdd_200;
+static int ett_rrc_T_tdd_144;
+static int ett_rrc_UTRAN_GPSReferenceTimeResult;
+static int ett_rrc_T_ue_GPSTimingOfCell;
+static int ett_rrc_T_modeSpecificInfo_162;
+static int ett_rrc_T_fdd_201;
+static int ett_rrc_T_tdd_145;
+static int ett_rrc_UTRA_PriorityInfoList;
+static int ett_rrc_T_utra_ServingCell;
+static int ett_rrc_UTRA_PriorityInfoList_v920ext;
+static int ett_rrc_VelocityEstimate;
+static int ett_rrc_ACDC_Barring;
+static int ett_rrc_ACDC_Parameters;
+static int ett_rrc_T_barringRepresentation;
+static int ett_rrc_ACDC_ParametersForAll;
+static int ett_rrc_ACDC_ParametersPerPLMN_List;
+static int ett_rrc_ACDC_ParametersPerPLMN_List_item;
+static int ett_rrc_BCCH_ModificationInfo;
+static int ett_rrc_BCCH_ModificationInfo_vc50ext;
+static int ett_rrc_BSIC;
+static int ett_rrc_CBS_DRX_Level1Information;
+static int ett_rrc_CDMA2000_Message;
+static int ett_rrc_CDMA2000_MessageList;
+static int ett_rrc_CDMA2000_UMTS_Frequency_List;
+static int ett_rrc_CellValueTag3;
+static int ett_rrc_DataTransmFrequency;
+static int ett_rrc_DataVolumeHistory;
+static int ett_rrc_DataVolumePerRB;
+static int ett_rrc_DataVolumePerRB_List;
+static int ett_rrc_DeferredMeasurementControlReadingSupport;
+static int ett_rrc_T_modeSpecificInfo_163;
+static int ett_rrc_T_fdd_202;
+static int ett_rrc_T_tdd_146;
+static int ett_rrc_ETWS_Information;
+static int ett_rrc_EUTRA_Exclude_listedCell;
+static int ett_rrc_EUTRA_Exclude_listedCellPerFreqList;
+static int ett_rrc_EUTRA_RadioAccessCapability;
+static int ett_rrc_EUTRA_TargetFreqInfoList;
+static int ett_rrc_EUTRA_TargetFreqInfoList_vb50ext;
+static int ett_rrc_EUTRA_TargetFreqInfo;
+static int ett_rrc_EUTRA_TargetFreqInfo_vb50ext;
+static int ett_rrc_ExtGANSS_SchedulingInfo;
+static int ett_rrc_ExtGANSS_SIBTypeInfoSchedulingInfoList;
+static int ett_rrc_ExtGANSS_SIBTypeInfoSchedulingInfo;
+static int ett_rrc_SEQUENCE_SIZE_1_maxSIB_OF_ExtGANSS_SchedulingInfo;
+static int ett_rrc_ExtSIBTypeInfoSchedulingInfo_List;
+static int ett_rrc_ExtSIBTypeInfoSchedulingInfo;
+static int ett_rrc_ExtSIBTypeInfoSchedulingInfo_List2;
+static int ett_rrc_ExtSIBTypeInfoSchedulingInfo_List3;
+static int ett_rrc_ExtSIBTypeInfoSchedulingInfo2;
+static int ett_rrc_ExtSIBTypeInfoSchedulingInfo3;
+static int ett_rrc_FDD_UMTS_Frequency_List;
+static int ett_rrc_FrequencyInfoCDMA2000;
+static int ett_rrc_GERAN_SystemInformation;
+static int ett_rrc_GSM_BA_Range;
+static int ett_rrc_GSM_BA_Range_List;
+static int ett_rrc_GSM_MessageList;
+static int ett_rrc_GsmSecurityCapability;
+static int ett_rrc_GSM_TargetCellInfoList;
+static int ett_rrc_GSM_TargetCellInfo;
+static int ett_rrc_IdentificationOfReceivedMessage;
+static int ett_rrc_InterRAT_ChangeFailureCause;
+static int ett_rrc_GERANIu_MessageList;
+static int ett_rrc_InterRAT_UE_RadioAccessCapability;
+static int ett_rrc_T_gsm_17;
+static int ett_rrc_T_cdma2000_01;
+static int ett_rrc_InterRAT_UE_RadioAccessCapabilityList;
+static int ett_rrc_InterRAT_UE_RadioAccessCapability_v590ext;
+static int ett_rrc_InterRAT_UE_RadioAccessCapability_v690ext;
+static int ett_rrc_InterRAT_UE_RadioAccessCapability_v860ext;
+static int ett_rrc_InterRAT_UE_SecurityCapability;
+static int ett_rrc_T_gsm_18;
+static int ett_rrc_InterRAT_UE_SecurityCapList;
+static int ett_rrc_InterRAT_HO_FailureCause;
+static int ett_rrc_MasterInformationBlock;
+static int ett_rrc_T_v690NonCriticalExtensions_48;
+static int ett_rrc_T_v6b0NonCriticalExtensions_15;
+static int ett_rrc_T_v860NonCriticalExtensions_26;
+static int ett_rrc_T_vc50NonCriticalExtensions_11;
+static int ett_rrc_T_nonCriticalExtensions_226;
+static int ett_rrc_MasterInformationBlock_v690ext;
+static int ett_rrc_MasterInformationBlock_v6b0ext_IEs;
+static int ett_rrc_MasterInformationBlock_v860ext_IEs;
+static int ett_rrc_MasterInformationBlock_vc50ext_IEs;
+static int ett_rrc_SB3_Information;
+static int ett_rrc_PredefinedConfigIdentityAndValueTag;
+static int ett_rrc_ProtocolErrorInformation;
+static int ett_rrc_T_diagnosticsType_01;
+static int ett_rrc_T_type1_07;
+static int ett_rrc_Rplmn_Information;
+static int ett_rrc_Rplmn_Information_r4;
+static int ett_rrc_SchedulingInformation;
+static int ett_rrc_T_scheduling;
+static int ett_rrc_T_sib_Pos;
+static int ett_rrc_SchedulingInformation2;
+static int ett_rrc_T_scheduling_01;
+static int ett_rrc_T_sib_Pos_01;
+static int ett_rrc_SchedulingInformationSIB;
+static int ett_rrc_SchedulingInformationSIB2;
+static int ett_rrc_SchedulingInformationSIBSb;
+static int ett_rrc_SchedulingInformationSIBSb2;
+static int ett_rrc_SIBOccurrenceIdentityAndValueTag;
+static int ett_rrc_SIB_ReferenceList;
+static int ett_rrc_SIB_ReferenceList2;
+static int ett_rrc_SIBSb_ReferenceList;
+static int ett_rrc_SIBSb_ReferenceList2;
+static int ett_rrc_SIB_ReferenceListFACH;
+static int ett_rrc_SIB_TypeAndTag;
+static int ett_rrc_SIB_TypeAndTag2;
+static int ett_rrc_SIBSb_TypeAndTag;
+static int ett_rrc_SIBSb_TypeAndTagExtValueTag;
+static int ett_rrc_SIB_TypeExt;
+static int ett_rrc_SIB_TypeExt2;
+static int ett_rrc_SIB_TypeExt3;
+static int ett_rrc_SIB_TypeExtGANSS;
+static int ett_rrc_SibOFF_vc50ext;
+static int ett_rrc_SibOFF_List;
+static int ett_rrc_SibOFF_List2;
+static int ett_rrc_SpecificACDC_BarringInformation;
+static int ett_rrc_SpecificACDC_BarringInformation_item;
+static int ett_rrc_SysInfoType1;
+static int ett_rrc_T_v3a0NonCriticalExtensions_12;
+static int ett_rrc_T_v860NonCriticalExtentions_02;
+static int ett_rrc_T_nonCriticalExtensions_227;
+static int ett_rrc_SysInfoType1_v3a0ext_IEs;
+static int ett_rrc_SysInfoType1_v860ext_IEs;
+static int ett_rrc_SysInfoType2;
+static int ett_rrc_T_nonCriticalExtensions_228;
+static int ett_rrc_SysInfoType3;
+static int ett_rrc_T_v4b0NonCriticalExtensions_17;
+static int ett_rrc_T_v590NonCriticalExtension;
+static int ett_rrc_T_v5c0NoncriticalExtension;
+static int ett_rrc_T_v670NonCriticalExtension;
+static int ett_rrc_T_v770NonCriticalExtension_02;
+static int ett_rrc_T_v830NonCriticalExtension;
+static int ett_rrc_T_v860NonCriticalExtension_01;
+static int ett_rrc_T_v870NonCriticalExtension;
+static int ett_rrc_T_v900NonCriticalExtension;
+static int ett_rrc_T_vc50NonCriticalExtension_01;
+static int ett_rrc_T_nonCriticalExtensions_229;
+static int ett_rrc_SysInfoType3_v4b0ext_IEs;
+static int ett_rrc_SysInfoType3_v590ext;
+static int ett_rrc_SysInfoType3_v5c0ext_IEs;
+static int ett_rrc_SysInfoType3_v670ext;
+static int ett_rrc_SysInfoType3_v770ext_IEs;
+static int ett_rrc_SysInfoType3_v830ext_IEs;
+static int ett_rrc_SysInfoType3_v860ext_IEs;
+static int ett_rrc_SysInfoType3_v870ext_IEs;
+static int ett_rrc_SysInfoType3_v920ext_IEs;
+static int ett_rrc_SysInfoType3_vc50ext_IEs;
+static int ett_rrc_SysInfoType4;
+static int ett_rrc_T_v4b0NonCriticalExtensions_18;
+static int ett_rrc_T_v590NonCriticalExtension_01;
+static int ett_rrc_T_v5b0NonCriticalExtension;
+static int ett_rrc_T_v5c0NonCriticalExtension;
+static int ett_rrc_T_nonCriticalExtensions_230;
+static int ett_rrc_SysInfoType4_v4b0ext_IEs;
+static int ett_rrc_SysInfoType4_v590ext;
+static int ett_rrc_SysInfoType4_v5b0ext_IEs;
+static int ett_rrc_SysInfoType4_v5c0ext_IEs;
+static int ett_rrc_SysInfoType5;
+static int ett_rrc_T_modeSpecificInfo_164;
+static int ett_rrc_T_fdd_203;
+static int ett_rrc_T_tdd_147;
+static int ett_rrc_T_v4b0NonCriticalExtensions_19;
+static int ett_rrc_T_v590NonCriticalExtensions_28;
+static int ett_rrc_T_v650NonCriticalExtensions;
+static int ett_rrc_T_v680NonCriticalExtensions_02;
+static int ett_rrc_T_v690NonCriticalExtensions_49;
+static int ett_rrc_T_v770NonCriticalExtensions_40;
+static int ett_rrc_T_v860NonCriticalExtensions_27;
+static int ett_rrc_T_v890NonCriticalExtensions_11;
+static int ett_rrc_T_v8b0NonCriticalExtensions_01;
+static int ett_rrc_T_v8d0NonCriticalExtensions;
+static int ett_rrc_T_va40NonCriticalExtensions_18;
+static int ett_rrc_T_va80NonCriticalExtensions_02;
+static int ett_rrc_SysInfoType5_v4b0ext_IEs;
+static int ett_rrc_T_tdd128SpecificInfo;
+static int ett_rrc_SysInfoType5_v590ext_IEs;
+static int ett_rrc_T_hcr_r5_SpecificInfo;
+static int ett_rrc_SysInfoType5_v650ext_IEs;
+static int ett_rrc_SysInfoType5_v680ext_IEs;
+static int ett_rrc_SysInfoType5_v690ext_IEs;
+static int ett_rrc_T_sccpch_SystemInformation_MBMS;
+static int ett_rrc_SysInfoType5_v770ext_IEs;
+static int ett_rrc_T_modeSpecificInfo_165;
+static int ett_rrc_T_fdd_204;
+static int ett_rrc_T_tdd768_26;
+static int ett_rrc_T_tdd128_75;
+static int ett_rrc_T_sccpch_SystemInformation_MBMS_01;
+static int ett_rrc_SysInfoType5_v860ext_IEs;
+static int ett_rrc_T_dummy_15;
+static int ett_rrc_T_modeSpecificInfo_166;
+static int ett_rrc_T_fdd_205;
+static int ett_rrc_T_tdd128_76;
+static int ett_rrc_T_hs_dsch_CommonSysInfo;
+static int ett_rrc_SysInfoType5_v890ext_IEs;
+static int ett_rrc_SysInfoType5_v8b0ext_IEs;
+static int ett_rrc_SysInfoType5_v8d0ext_IEs;
+static int ett_rrc_SysInfoType5_va40ext_IEs;
+static int ett_rrc_SysInfoType5_va80ext_IEs;
+static int ett_rrc_SysInfoType5_NonCriticalExtensions_vb50_IEs;
+static int ett_rrc_SysInfoType5_NonCriticalExtensions_ve30_IEs;
+static int ett_rrc_T_nonCriticalExtensions_231;
+static int ett_rrc_SysInfoType5_ve30ext_IEs;
+static int ett_rrc_SysInfoType5_vb50ext_IEs;
+static int ett_rrc_SysInfoType6;
+static int ett_rrc_T_modeSpecificInfo_167;
+static int ett_rrc_T_fdd_206;
+static int ett_rrc_T_tdd_148;
+static int ett_rrc_T_v4b0NonCriticalExtensions_20;
+static int ett_rrc_T_v590NonCriticalExtensions_29;
+static int ett_rrc_T_v650nonCriticalExtensions;
+static int ett_rrc_T_v690nonCriticalExtensions;
+static int ett_rrc_T_v770NonCriticalExtensions_41;
+static int ett_rrc_T_va40NonCriticalExtensions_19;
+static int ett_rrc_T_va80NonCriticalExtensions_03;
+static int ett_rrc_SysInfoType6_NonCriticalExtensions_ve30_IEs;
+static int ett_rrc_T_nonCriticalExtensions_232;
+static int ett_rrc_SysInfoType6_ve30ext_IEs;
+static int ett_rrc_SysInfoType6_v4b0ext_IEs;
+static int ett_rrc_T_tdd128SpecificInfo_01;
+static int ett_rrc_SysInfoType6_v590ext_IEs;
+static int ett_rrc_T_hcr_r5_SpecificInfo_01;
+static int ett_rrc_SysInfoType6_v650ext_IEs;
+static int ett_rrc_SysInfoType6_v690ext_IEs;
+static int ett_rrc_SysInfoType6_v770ext_IEs;
+static int ett_rrc_T_tdd768SpecificInfo;
+static int ett_rrc_SysInfoType6_va40ext_IEs;
+static int ett_rrc_SysInfoType6_va80ext_IEs;
+static int ett_rrc_SysInfoType7;
+static int ett_rrc_T_modeSpecificInfo_168;
+static int ett_rrc_T_fdd_207;
+static int ett_rrc_T_nonCriticalExtensions_233;
+static int ett_rrc_SysInfoType8;
+static int ett_rrc_T_nonCriticalExtensions_234;
+static int ett_rrc_SysInfoType9;
+static int ett_rrc_T_nonCriticalExtensions_235;
+static int ett_rrc_SysInfoType10;
+static int ett_rrc_T_nonCriticalExtensions_236;
+static int ett_rrc_SysInfoType11;
+static int ett_rrc_T_v4b0NonCriticalExtensions_21;
+static int ett_rrc_T_v590NonCriticalExtension_02;
+static int ett_rrc_T_v690NonCriticalExtensions_50;
+static int ett_rrc_T_v6b0NonCriticalExtensions_16;
+static int ett_rrc_T_v770NonCriticalExtensions_42;
+static int ett_rrc_T_v7b0NonCriticalExtensions_02;
+static int ett_rrc_T_v860NonCriticalExtensions_28;
+static int ett_rrc_T_va80NonCriticalExtensions_04;
+static int ett_rrc_T_vc50NonCriticalExtensions_12;
+static int ett_rrc_T_nonCriticalExtensions_237;
+static int ett_rrc_SysInfoType11_v4b0ext_IEs;
+static int ett_rrc_SysInfoType11_v590ext_IEs;
+static int ett_rrc_SysInfoType11_v690ext_IEs;
+static int ett_rrc_SysInfoType11_v6b0ext_IEs;
+static int ett_rrc_SysInfoType11_v770ext_IEs;
+static int ett_rrc_SysInfoType11_v7b0ext_IEs;
+static int ett_rrc_SysInfoType11_v860ext_IEs;
+static int ett_rrc_SysInfoType11_va80ext_IEs;
+static int ett_rrc_SysInfoType11_vc50ext_IEs;
+static int ett_rrc_SysInfoType11bis;
+static int ett_rrc_T_v7b0NonCriticalExtensions_03;
+static int ett_rrc_T_v860NonCriticalExtensions_29;
+static int ett_rrc_T_va80NonCriticalExtensions_05;
+static int ett_rrc_T_vc50NonCriticalExtensions_13;
+static int ett_rrc_T_nonCriticalExtensions_238;
+static int ett_rrc_SysInfoType11bis_v7b0ext_IEs;
+static int ett_rrc_SysInfoType11bis_v860ext_IEs;
+static int ett_rrc_SysInfoType11bis_va80ext_IEs;
+static int ett_rrc_SysInfoType11bis_vc50ext_IEs;
+static int ett_rrc_SysInfoType11ter;
+static int ett_rrc_T_nonCriticalExtensions_239;
+static int ett_rrc_SysInfoType12;
+static int ett_rrc_T_v4b0NonCriticalExtensions_22;
+static int ett_rrc_T_v590NonCriticalExtension_03;
+static int ett_rrc_T_v690NonCriticalExtensions_51;
+static int ett_rrc_T_v6b0NonCriticalExtensions_17;
+static int ett_rrc_T_v7b0NonCriticalExtensions_04;
+static int ett_rrc_T_va80NonCriticalExtensions_06;
+static int ett_rrc_T_vc50NonCriticalExtensions_14;
+static int ett_rrc_T_nonCriticalExtensions_240;
+static int ett_rrc_SysInfoType12_v4b0ext_IEs;
+static int ett_rrc_SysInfoType12_v590ext_IEs;
+static int ett_rrc_SysInfoType12_v690ext_IEs;
+static int ett_rrc_SysInfoType12_v6b0ext_IEs;
+static int ett_rrc_SysInfoType12_v7b0ext_IEs;
+static int ett_rrc_SysInfoType12_va80ext_IEs;
+static int ett_rrc_SysInfoType12_vc50ext_IEs;
+static int ett_rrc_SysInfoType13;
+static int ett_rrc_T_v3a0NonCriticalExtensions_13;
+static int ett_rrc_T_v4b0NonCriticalExtensions_23;
+static int ett_rrc_T_v770NonCriticalExtensions_43;
+static int ett_rrc_T_nonCriticalExtensions_241;
+static int ett_rrc_SysInfoType13_v3a0ext_IEs;
+static int ett_rrc_SysInfoType13_v4b0ext_IEs;
+static int ett_rrc_SysInfoType13_v770ext_IEs;
+static int ett_rrc_SysInfoType13_1;
+static int ett_rrc_T_nonCriticalExtensions_242;
+static int ett_rrc_SysInfoType13_2;
+static int ett_rrc_T_nonCriticalExtensions_243;
+static int ett_rrc_SysInfoType13_3;
+static int ett_rrc_T_nonCriticalExtensions_244;
+static int ett_rrc_SysInfoType13_4;
+static int ett_rrc_T_nonCriticalExtensions_245;
+static int ett_rrc_SysInfoType14;
+static int ett_rrc_T_nonCriticalExtensions_246;
+static int ett_rrc_SysInfoType15;
+static int ett_rrc_T_v4b0NonCriticalExtensions_24;
+static int ett_rrc_T_v770NonCriticalExtensions_44;
+static int ett_rrc_T_va40NonCriticalExtensions_20;
+static int ett_rrc_T_nonCriticalExtensions_247;
+static int ett_rrc_SysInfoType15_v4b0ext_IEs;
+static int ett_rrc_SysInfoType15_v770ext_IEs;
+static int ett_rrc_SysInfoType15_va40ext_IEs;
+static int ett_rrc_SysInfoType15bis;
+static int ett_rrc_T_v860NonCriticalExtensions_30;
+static int ett_rrc_T_va40NonCriticalExtensions_21;
+static int ett_rrc_T_nonCriticalExtensions_248;
+static int ett_rrc_SysInfoType15bis_v860ext_IEs;
+static int ett_rrc_SysInfoType15bis_va40ext_IEs;
+static int ett_rrc_SysInfoType15_1;
+static int ett_rrc_T_v920NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_249;
+static int ett_rrc_SysInfoType15_1_v920ext_IEs;
+static int ett_rrc_SysInfoType15_1bis;
+static int ett_rrc_T_v920NonCriticalExtensions_05;
+static int ett_rrc_T_nonCriticalExtensions_250;
+static int ett_rrc_SysInfoType15_1bis_v920ext_IEs;
+static int ett_rrc_SysInfoType15_1ter;
+static int ett_rrc_T_nonCriticalExtensions_251;
+static int ett_rrc_SysInfoType15_2;
+static int ett_rrc_T_nonCriticalExtensions_252;
+static int ett_rrc_SysInfoType15_2bis;
+static int ett_rrc_T_nonCriticalExtensions_253;
+static int ett_rrc_SysInfoType15_2ter;
+static int ett_rrc_T_vc50NonCriticalExtensions_15;
+static int ett_rrc_T_nonCriticalExtensions_254;
+static int ett_rrc_SysInfoType15_2ter_vc50ext_IEs;
+static int ett_rrc_SysInfoType15_3;
+static int ett_rrc_T_va40NonCriticalExtensions_22;
+static int ett_rrc_T_nonCriticalExtensions_255;
+static int ett_rrc_SysInfoType15_3_va40ext_IEs;
+static int ett_rrc_SysInfoType15_3bis;
+static int ett_rrc_T_v860NonCriticalExtensions_31;
+static int ett_rrc_T_va40NonCriticalExtensions_23;
+static int ett_rrc_T_vc50NonCriticalExtensions_16;
+static int ett_rrc_T_nonCriticalExtensions_256;
+static int ett_rrc_SysInfoType15_3bis_v860ext_IEs;
+static int ett_rrc_SysInfoType15_3bis_va40ext_IEs;
+static int ett_rrc_SysInfoType15_3bis_vc50ext_IEs;
+static int ett_rrc_SysInfoType15_4;
+static int ett_rrc_T_v3a0NonCriticalExtensions_14;
+static int ett_rrc_T_v4b0NonCriticalExtensions_25;
+static int ett_rrc_T_nonCriticalExtensions_257;
+static int ett_rrc_SysInfoType15_4_v3a0ext;
+static int ett_rrc_SysInfoType15_4_v4b0ext;
+static int ett_rrc_SysInfoType15_5;
+static int ett_rrc_T_v3a0NonCriticalExtensions_15;
+static int ett_rrc_T_v770NonCriticalExtensions_45;
+static int ett_rrc_T_nonCriticalExtensions_258;
+static int ett_rrc_SysInfoType15_5_v3a0ext;
+static int ett_rrc_SysInfoType15_5_v770ext_IEs;
+static int ett_rrc_SysInfoType15_6;
+static int ett_rrc_T_va40NonCriticalExtensions_24;
+static int ett_rrc_T_vc50NonCriticalExtensions_17;
+static int ett_rrc_T_nonCriticalExtensions_259;
+static int ett_rrc_SysInfoType15_6_va40ext_IEs;
+static int ett_rrc_SysInfoType15_6_vc50ext_IEs;
+static int ett_rrc_SysInfoType15_7;
+static int ett_rrc_T_nonCriticalExtensions_260;
+static int ett_rrc_SysInfoType15_8;
+static int ett_rrc_T_nonCriticalExtensions_261;
+static int ett_rrc_SysInfoType16;
+static int ett_rrc_T_v770NonCriticalExtensions_46;
+static int ett_rrc_T_v920NonCriticalExtensions_06;
+static int ett_rrc_T_nonCriticalExtensions_262;
+static int ett_rrc_SysInfoType16_v770ext_IEs;
+static int ett_rrc_SysInfoType16_v920ext_IEs;
+static int ett_rrc_SysInfoType17;
+static int ett_rrc_T_v4b0NonCriticalExtensions_26;
+static int ett_rrc_T_v590NonCriticalExtensions_30;
+static int ett_rrc_T_v770NonCriticalExtensions_47;
+static int ett_rrc_T_nonCriticalExtensions_263;
+static int ett_rrc_SysInfoType17_v4b0ext_IEs;
+static int ett_rrc_T_tdd128SpecificInfo_02;
+static int ett_rrc_SysInfoType17_v590ext_IEs;
+static int ett_rrc_T_hcr_r5_SpecificInfo_02;
+static int ett_rrc_SysInfoType17_v770ext_IEs;
+static int ett_rrc_T_tdd768SpecificInfo_01;
+static int ett_rrc_SysInfoType18;
+static int ett_rrc_T_v6b0NonCriticalExtensions_18;
+static int ett_rrc_T_v860NonCriticalExtensions_32;
+static int ett_rrc_T_vc50NonCriticalExtensions_18;
+static int ett_rrc_T_nonCriticalExtensions_264;
+static int ett_rrc_SysInfoType18_v6b0ext;
+static int ett_rrc_SysInfoType18_v860ext;
+static int ett_rrc_SysInfoType18_vc50ext;
+static int ett_rrc_SysInfoType19;
+static int ett_rrc_T_v920NonCriticalExtensions_07;
+static int ett_rrc_T_va80NonCriticalExtensions_07;
+static int ett_rrc_T_vb30NonCriticalExtensions;
+static int ett_rrc_T_vb50NonCriticalExtensions_24;
+static int ett_rrc_T_vb80NonCriticalExtensions_01;
+static int ett_rrc_T_vc50NonCriticalExtensions_19;
+static int ett_rrc_T_vd20NonCriticalExtensions_04;
+static int ett_rrc_T_nonCriticalExtensions_265;
+static int ett_rrc_SysInfoType19_v920ext;
+static int ett_rrc_SysInfoType19_va80ext;
+static int ett_rrc_SysInfoType19_vb30ext;
+static int ett_rrc_SysInfoType19_vb50ext;
+static int ett_rrc_SysInfoType19_vb80ext;
+static int ett_rrc_SysInfoType19_vc50ext;
+static int ett_rrc_SysInfoType19_vd20ext;
+static int ett_rrc_SysInfoType20;
+static int ett_rrc_T_nonCriticalExtensions_266;
+static int ett_rrc_SysInfoType21;
+static int ett_rrc_T_nonCriticalExtensions_267;
+static int ett_rrc_SysInfoType22;
+static int ett_rrc_T_vc50NonCriticalExtensions_20;
+static int ett_rrc_T_nonCriticalExtensions_268;
+static int ett_rrc_SysInfoType22_vc50ext_IEs;
+static int ett_rrc_SysInfoType23;
+static int ett_rrc_T_wlanRepresentation;
+static int ett_rrc_T_nonCriticalExtensions_269;
+static int ett_rrc_SysInfoType24;
+static int ett_rrc_T_nonCriticalExtensions_270;
+static int ett_rrc_SysInfoType25;
+static int ett_rrc_T_nonCriticalExtensions_271;
+static int ett_rrc_SysInfoTypeSB1;
+static int ett_rrc_T_v6b0NonCriticalExtensions_19;
+static int ett_rrc_T_v860NonCriticalExtensions_33;
+static int ett_rrc_T_vc50NonCriticalExtensions_21;
+static int ett_rrc_T_nonCriticalExtensions_272;
+static int ett_rrc_SysInfoTypeSB1_v6b0ext;
+static int ett_rrc_SysInfoTypeSB1_v860ext;
+static int ett_rrc_SysInfoTypeSB1_vc50ext;
+static int ett_rrc_SysInfoTypeSB2;
+static int ett_rrc_T_v6b0NonCriticalExtensions_20;
+static int ett_rrc_T_v860NonCriticalExtensions_34;
+static int ett_rrc_T_vc50NonCriticalExtensions_22;
+static int ett_rrc_T_nonCriticalExtensions_273;
+static int ett_rrc_SysInfoTypeSB2_v6b0ext;
+static int ett_rrc_SysInfoTypeSB2_v860ext;
+static int ett_rrc_SysInfoTypeSB2_vc50ext;
+static int ett_rrc_SysInfoTypeSB3;
+static int ett_rrc_T_nonCriticalExtensions_274;
+static int ett_rrc_TDD_UMTS_Frequency_List;
+static int ett_rrc_TxFailParams;
+static int ett_rrc_T_modeSpecificInfo_169;
+static int ett_rrc_T_fdd_208;
+static int ett_rrc_UE_HistoryInformation;
+static int ett_rrc_ValueTagInfo;
+static int ett_rrc_ValueTagInfoExtValueTag;
+static int ett_rrc_MBMS_CommonRBInformation_r6;
+static int ett_rrc_MBMS_CommonRBInformationList_r6;
+static int ett_rrc_MBMS_ConnectedModeCountingScope;
+static int ett_rrc_MBMS_CurrentCell_SCCPCH_r6;
+static int ett_rrc_MBMS_CurrentCell_SCCPCHList_r6;
+static int ett_rrc_MBMS_FACHCarryingMTCH_List;
+static int ett_rrc_MBMS_JoinedInformation_r6;
+static int ett_rrc_MBMS_L1CombiningSchedule_32;
+static int ett_rrc_T_mtch_L1CombiningPeriodList;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_item;
+static int ett_rrc_MBMS_L1CombiningSchedule_64;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_01;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_item_01;
+static int ett_rrc_MBMS_L1CombiningSchedule_128;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_02;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_item_02;
+static int ett_rrc_MBMS_L1CombiningSchedule_256;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_03;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_item_03;
+static int ett_rrc_MBMS_L1CombiningSchedule_512;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_04;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_item_04;
+static int ett_rrc_MBMS_L1CombiningSchedule_1024;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_05;
+static int ett_rrc_T_mtch_L1CombiningPeriodList_item_05;
+static int ett_rrc_MBMS_L1CombiningSchedule;
+static int ett_rrc_MBMS_L23Configuration;
+static int ett_rrc_T_sameAsCurrent;
+static int ett_rrc_T_different;
+static int ett_rrc_MBMS_MCCH_ConfigurationInfo_r6;
+static int ett_rrc_MBMS_MICHConfigurationInfo_r6;
+static int ett_rrc_T_mode_03;
+static int ett_rrc_T_fdd_209;
+static int ett_rrc_T_tdd384_47;
+static int ett_rrc_T_tdd128_77;
+static int ett_rrc_SEQUENCE_SIZE_1_2_OF_DL_TS_ChannelisationCode;
+static int ett_rrc_MBMS_MICHConfigurationInfo_v770ext;
+static int ett_rrc_T_mode_04;
+static int ett_rrc_T_tdd384_48;
+static int ett_rrc_T_tdd768_27;
+static int ett_rrc_T_tdd128_78;
+static int ett_rrc_MBMS_MICHConfigurationInfo_v890ext;
+static int ett_rrc_T_mode_05;
+static int ett_rrc_T_imb384;
+static int ett_rrc_MBMS_ModifedService_r6;
+static int ett_rrc_T_mbms_PreferredFrequency;
+static int ett_rrc_MBMS_ModifedServiceList_r6;
+static int ett_rrc_MBMS_ModifiedService_v770ext;
+static int ett_rrc_MBMS_ModifiedService_LCR_v7c0ext;
+static int ett_rrc_MBMS_ModifiedServiceList_v770ext;
+static int ett_rrc_MBMS_ModifiedServiceList_LCR_v7c0ext;
+static int ett_rrc_MBMS_MSCH_ConfigurationInfo_r6;
+static int ett_rrc_MBMS_MSCHSchedulingInfo;
+static int ett_rrc_MBMS_NeighbouringCellSCCPCH_r6;
+static int ett_rrc_T_layer1Combining;
+static int ett_rrc_T_fdd_210;
+static int ett_rrc_MBMS_NeighbouringCellSCCPCH_v770ext;
+static int ett_rrc_T_layer1Combining_01;
+static int ett_rrc_T_fdd_211;
+static int ett_rrc_MBMS_NeighbouringCellSCCPCHList_r6;
+static int ett_rrc_MBMS_NeighbouringCellSCCPCHList_v770ext;
+static int ett_rrc_MBMS_NetworkStandardTimeInformation_LCR_v890ext;
+static int ett_rrc_MBMS_PhyChInformation_IMB384;
+static int ett_rrc_MBMS_PhyChInformationList_IMB384;
+static int ett_rrc_MBMS_PhyChInformation_r6;
+static int ett_rrc_MBMS_PhyChInformation_r7;
+static int ett_rrc_MBMS_PhyChInformationList_r6;
+static int ett_rrc_MBMS_PhyChInformationList_r7;
+static int ett_rrc_MBMS_PreferredFrequencyInfo_r6;
+static int ett_rrc_T_layerConvergenceInformation;
+static int ett_rrc_MBMS_PreferredFrequencyList_r6;
+static int ett_rrc_MBMS_PTM_RBInformation_C;
+static int ett_rrc_MBMS_PTM_RBInformation_CList;
+static int ett_rrc_MBMS_PTM_RBInformation_N;
+static int ett_rrc_MBMS_PTM_RBInformation_NList;
+static int ett_rrc_MBMS_SelectedServiceInfo;
+static int ett_rrc_T_status;
+static int ett_rrc_MBMS_SelectedServicesListFull;
+static int ett_rrc_MBMS_SelectedServicesListShort;
+static int ett_rrc_MBMS_SelectedServicesShort;
+static int ett_rrc_MBMS_ServiceAccessInfo_r6;
+static int ett_rrc_MBMS_ServiceAccessInfoList_r6;
+static int ett_rrc_MBMS_ServiceIdentity_r6;
+static int ett_rrc_T_plmn_Identity;
+static int ett_rrc_T_other_01;
+static int ett_rrc_MBMS_ServiceSchedulingInfo_r6;
+static int ett_rrc_MBMS_ServiceSchedulingInfoList_r6;
+static int ett_rrc_MBMS_ServiceTransmInfo;
+static int ett_rrc_MBMS_ServiceTransmInfoList;
+static int ett_rrc_MBMS_SIBType5_SCCPCH_r6;
+static int ett_rrc_MBMS_SIBType5_SCCPCHList_r6;
+static int ett_rrc_MBMS_TimersAndCounters_r6;
+static int ett_rrc_MBMS_TransmissionIdentity;
+static int ett_rrc_MBMS_TranspChInfoForCCTrCh_r6;
+static int ett_rrc_MBMS_TranspChInfoForEachCCTrCh_r6;
+static int ett_rrc_MBMS_TranspChInfoForEachTrCh_r6;
+static int ett_rrc_MBMS_TranspChInfoForTrCh_r6;
+static int ett_rrc_MBMS_TrCHInformation_Curr;
+static int ett_rrc_MBMS_TrCHInformation_CurrList;
+static int ett_rrc_MBMS_TrCHInformation_Neighb;
+static int ett_rrc_MBMS_TrCHInformation_NeighbList;
+static int ett_rrc_MBMS_TrCHInformation_SIB5;
+static int ett_rrc_MBMS_TrCHInformation_SIB5List;
+static int ett_rrc_MBMS_UnmodifiedService_r6;
+static int ett_rrc_MBMS_UnmodifiedServiceList_r6;
+static int ett_rrc_MBMS_UnmodifiedService_v770ext;
+static int ett_rrc_MBMS_UnmodifiedServiceList_v770ext;
+static int ett_rrc_MBSFNFrequency;
+static int ett_rrc_MBSFNFrequency_v860ext;
+static int ett_rrc_MBSFNFrequencyList;
+static int ett_rrc_MBSFNFrequencyList_v860ext;
+static int ett_rrc_MBSFNservicesNotNotified_r7;
+static int ett_rrc_MBSFNInterFrequencyNeighbour_r7;
+static int ett_rrc_T_mbsfnServicesNotification;
+static int ett_rrc_MBSFNInterFrequencyNeighbour_v860ext;
+static int ett_rrc_MBSFN_InterFrequencyNeighbourList_r7;
+static int ett_rrc_MBSFN_InterFrequencyNeighbourList_v860ext;
+static int ett_rrc_MBSFN_TDDInformation;
+static int ett_rrc_MBSFN_TDDInformation_LCR;
+static int ett_rrc_MBSFN_TDDTimeSlotInfo;
+static int ett_rrc_MBSFN_TDDTimeSlotInfo_LCR;
+static int ett_rrc_MBSFN_TDM_Info;
+static int ett_rrc_MBSFN_TDM_Info_List;
+static int ett_rrc_WLANOffloadConfig;
+static int ett_rrc_WLANThreshServingRSCP;
+static int ett_rrc_WLANThreshServingECNO;
+static int ett_rrc_WLANThreshChannelUtilization;
+static int ett_rrc_WLANThreshBackhaulBandwidth;
+static int ett_rrc_WLANThreshBeaconRSSI;
+static int ett_rrc_WLANIdentifierList;
+static int ett_rrc_WLANIdentifier;
+static int ett_rrc_WLANOffloadInformationPerPLMN_List;
+static int ett_rrc_WLANOffloadInformation;
+static int ett_rrc_ToTargetRNC_Container;
+static int ett_rrc_TargetRNC_ToSourceRNC_Container;
+static int ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_r3;
+static int ett_rrc_T_r3_31;
+static int ett_rrc_T_v390NonCriticalExtensions_01;
+static int ett_rrc_T_v690NonCriticalExtensions_52;
+static int ett_rrc_T_v860NonCriticalExtensions_35;
+static int ett_rrc_T_v920NonCriticalExtensions_08;
+static int ett_rrc_T_nonCriticalExtensions_275;
+static int ett_rrc_T_criticalExtensions_166;
+static int ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_r3_IEs;
+static int ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v390ext_IEs;
+static int ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v690ext_IEs;
+static int ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v860ext_IEs;
+static int ett_rrc_InterRATHandoverInfoWithInterRATCapabilities_v920ext_IEs;
+static int ett_rrc_RFC3095_ContextInfo_r5;
+static int ett_rrc_T_r5_14;
+static int ett_rrc_T_nonCriticalExtensions_276;
+static int ett_rrc_T_criticalExtensions_167;
+static int ett_rrc_RFC3095_ContextInfoList_r5;
+static int ett_rrc_SRNC_RelocationInfo_r3;
+static int ett_rrc_T_r3_32;
+static int ett_rrc_T_v380NonCriticalExtensions_02;
+static int ett_rrc_T_v390NonCriticalExtensions_02;
+static int ett_rrc_T_v3a0NonCriticalExtensions_16;
+static int ett_rrc_T_v3b0NonCriticalExtensions;
+static int ett_rrc_T_v3c0NonCriticalExtensions;
+static int ett_rrc_T_laterNonCriticalExtensions_67;
+static int ett_rrc_T_v3g0NonCriticalExtensions_02;
+static int ett_rrc_T_v4b0NonCriticalExtensions_27;
+static int ett_rrc_T_v590NonCriticalExtensions_31;
+static int ett_rrc_T_v5a0NonCriticalExtensions;
+static int ett_rrc_T_v5b0NonCriticalExtensions_03;
+static int ett_rrc_T_v5c0NonCriticalExtensions_02;
+static int ett_rrc_T_v690NonCriticalExtensions_53;
+static int ett_rrc_T_v6b0NonCriticalExtensions_21;
+static int ett_rrc_T_v770NonCriticalExtensions_48;
+static int ett_rrc_T_v7e0NonCriticalExtensions_04;
+static int ett_rrc_T_v7f0NonCriticalExtensions_17;
+static int ett_rrc_T_nonCriticalExtensions_277;
+static int ett_rrc_T_later_than_r3_28;
+static int ett_rrc_T_r4_14;
+static int ett_rrc_T_v4d0NonCriticalExtensions_14;
+static int ett_rrc_T_v590NonCriticalExtensions_32;
+static int ett_rrc_T_v5a0NonCriticalExtensions_01;
+static int ett_rrc_T_v5b0NonCriticalExtensions_04;
+static int ett_rrc_T_v5c0NonCriticalExtensions_03;
+static int ett_rrc_T_v690NonCriticalExtensions_54;
+static int ett_rrc_T_v6b0NonCriticalExtensions_22;
+static int ett_rrc_T_v770NonCriticalExtensions_49;
+static int ett_rrc_T_v7e0NonCriticalExtensions_05;
+static int ett_rrc_T_v7f0NonCriticalExtensions_18;
+static int ett_rrc_T_nonCriticalExtensions_278;
+static int ett_rrc_T_criticalExtensions_168;
+static int ett_rrc_T_r5_15;
+static int ett_rrc_T_v5a0NonCriticalExtensions_02;
+static int ett_rrc_T_v5b0NonCriticalExtensions_05;
+static int ett_rrc_T_v5c0NonCriticalExtensions_04;
+static int ett_rrc_T_v690NonCriticalExtensions_55;
+static int ett_rrc_T_v6b0NonCriticalExtensions_23;
+static int ett_rrc_T_v770NonCriticalExtensions_50;
+static int ett_rrc_T_v7e0NonCriticalExtensions_06;
+static int ett_rrc_T_v7f0NonCriticalExtensions_19;
+static int ett_rrc_T_nonCriticalExtensions_279;
+static int ett_rrc_T_criticalExtensions_169;
+static int ett_rrc_T_r6_12;
+static int ett_rrc_T_v6b0NonCriticalExtensions_24;
+static int ett_rrc_T_v770NonCriticalExtensions_51;
+static int ett_rrc_T_v820NonCriticalExtensions_03;
+static int ett_rrc_T_v860NonCriticalExtensions_36;
+static int ett_rrc_T_nonCriticalExtensions_280;
+static int ett_rrc_T_criticalExtensions_170;
+static int ett_rrc_T_r7_16;
+static int ett_rrc_T_v820NonCriticalExtensions_04;
+static int ett_rrc_T_v860NonCriticalExtensions_37;
+static int ett_rrc_T_nonCriticalExtensions_281;
+static int ett_rrc_T_criticalExtensions_171;
+static int ett_rrc_T_r8_12;
+static int ett_rrc_T_v7e0NonCriticalExtensions_07;
+static int ett_rrc_T_v7f0NonCriticalExtensions_20;
+static int ett_rrc_T_v8d0NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_282;
+static int ett_rrc_T_criticalExtensions_172;
+static int ett_rrc_T_r9_11;
+static int ett_rrc_T_v8d0NonCriticalExtensions_02;
+static int ett_rrc_T_v970NonCriticalExtensions_04;
+static int ett_rrc_T_v9c0NonCriticalExtensions_13;
+static int ett_rrc_T_nonCriticalExtensions_283;
+static int ett_rrc_T_criticalExtensions_173;
+static int ett_rrc_T_r10_13;
+static int ett_rrc_T_v9c0NonCriticalExtensions_14;
+static int ett_rrc_T_vab0NonCriticalExtensions_01;
+static int ett_rrc_T_nonCriticalExtensions_284;
+static int ett_rrc_T_criticalExtensions_174;
+static int ett_rrc_T_r11_15;
+static int ett_rrc_T_nonCriticalExtensions_285;
+static int ett_rrc_T_criticalExtensions_175;
+static int ett_rrc_T_r12_12;
+static int ett_rrc_T_nonCriticalExtensions_286;
+static int ett_rrc_T_criticalExtensions_176;
+static int ett_rrc_T_r13_10;
+static int ett_rrc_T_nonCriticalExtensions_287;
+static int ett_rrc_SRNC_RelocationInfo_r3_IEs;
+static int ett_rrc_T_modeSpecificInfo_170;
+static int ett_rrc_T_fdd_212;
+static int ett_rrc_SRNC_RelocationInfo_v380ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v390ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v3a0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v3b0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v3c0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v3d0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v3g0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v3h0ext_IEs;
+static int ett_rrc_T_nonCriticalExtension;
+static int ett_rrc_SRNC_RelocationInfo_v4d0ext_IEs;
+static int ett_rrc_TPC_CombinationInfoList;
+static int ett_rrc_TPC_CombinationInfoList_r9;
+static int ett_rrc_STARTList2;
+static int ett_rrc_SRNC_RelocationInfo_v4b0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v590ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v5a0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v5b0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v5c0ext_IEs;
+static int ett_rrc_CipheringInfoPerRB_List_v3a0ext;
+static int ett_rrc_CipheringStatusList;
+static int ett_rrc_CipheringStatusCNdomain;
+static int ett_rrc_CodeChangeStatusList;
+static int ett_rrc_CodeChangeStatus;
+static int ett_rrc_StoredCompressedModeInfo;
+static int ett_rrc_StoredCompressedModeInfo_r8;
+static int ett_rrc_StoredTGP_SequenceList;
+static int ett_rrc_StoredTGP_SequenceList_r8;
+static int ett_rrc_StoredTGP_Sequence;
+static int ett_rrc_T_current_tgps_Status;
+static int ett_rrc_T_active;
+static int ett_rrc_StoredTGP_Sequence_r8;
+static int ett_rrc_T_current_tgps_Status_01;
+static int ett_rrc_T_active_01;
+static int ett_rrc_SRNC_RelocationInfo_r4_IEs;
+static int ett_rrc_T_dummy_17;
+static int ett_rrc_T_fdd_213;
+static int ett_rrc_SRNC_RelocationInfo_r5_IEs;
+static int ett_rrc_T_dummy_18;
+static int ett_rrc_T_fdd_214;
+static int ett_rrc_SRNC_RelocationInfo_v690ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r6_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r6_add_ext_IEs;
+static int ett_rrc_T_v7f0NonCriticalExtensions_21;
+static int ett_rrc_T_nonCriticalExtensions_288;
+static int ett_rrc_SRNC_RelocationInfo_v6b0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r7_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r7_add_ext_IEs;
+static int ett_rrc_T_v7f0NonCriticalExtensions_22;
+static int ett_rrc_T_nonCriticalExtensions_289;
+static int ett_rrc_SRNC_RelocationInfo_v770ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v7e0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v7f0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r8_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v820ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v860ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v8d0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r9_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v970ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_v9c0ext_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r10_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r11_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r12_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r13_IEs;
+static int ett_rrc_SRNC_RelocationInfo_LaterCriticalExtensions;
+static int ett_rrc_T_criticalExtensions_177;
+static int ett_rrc_T_r14_04;
+static int ett_rrc_T_nonCriticalExtensions_290;
+static int ett_rrc_SRNC_RelocationInfo_CriticalExtensions_r15_IEs;
+static int ett_rrc_T_criticalExtensions_178;
+static int ett_rrc_T_r15_04;
+static int ett_rrc_T_nonCriticalExtensions_291;
+static int ett_rrc_T_criticalExtensions_179;
+static int ett_rrc_SRNC_RelocationInfo_r14_IEs;
+static int ett_rrc_SRNC_RelocationInfo_r15_IEs;
+static int ett_rrc_CalculationTimeForCiphering;
+static int ett_rrc_CipheringInfoPerRB;
+static int ett_rrc_CipheringInfoPerRB_r4;
+static int ett_rrc_CipheringInfoPerRB_List;
+static int ett_rrc_CipheringInfoPerRB_List_r4;
+static int ett_rrc_CipheringStatusList_r4;
+static int ett_rrc_CipheringStatusCNdomain_r4;
+static int ett_rrc_CN_DomainInformation_v390ext;
+static int ett_rrc_CN_DomainInformationList_v390ext;
+static int ett_rrc_CompressedModeMeasCapability_r4;
+static int ett_rrc_COUNT_C_List;
+static int ett_rrc_COUNT_CSingle;
+static int ett_rrc_DL_PhysChCapabilityFDD_r4;
+static int ett_rrc_DL_PhysChCapabilityFDD_r5;
+static int ett_rrc_T_fdd_hspdsch_01;
+static int ett_rrc_T_supported_07;
+static int ett_rrc_DL_PhysChCapabilityTDD_r5;
+static int ett_rrc_T_tdd384_hspdsch_01;
+static int ett_rrc_DL_PhysChCapabilityTDD_LCR_r5;
+static int ett_rrc_T_tdd128_hspdsch_01;
+static int ett_rrc_DL_RFC3095_Context;
+static int ett_rrc_E_RGCH_Combination_Info;
+static int ett_rrc_E_RGCH_Combination_Info_r9;
+static int ett_rrc_E_RGCH_CombinationInfoList;
+static int ett_rrc_E_RGCH_CombinationInfoList_r9;
+static int ett_rrc_InterRAT_UE_RadioAccessCapabilityList_r5;
+static int ett_rrc_IntraFreqReportingCriteria_r6_ext;
+static int ett_rrc_MeasurementCapability_r4;
+static int ett_rrc_MeasurementCommandWithType;
+static int ett_rrc_MeasurementCommandWithType_r4;
+static int ett_rrc_MeasurementCommandWithType_r6;
+static int ett_rrc_MeasurementCommandWithType_r7;
+static int ett_rrc_MeasurementCommandWithType_r8;
+static int ett_rrc_MeasurementCommandWithType_r9;
+static int ett_rrc_MeasurementCommandWithType_r10;
+static int ett_rrc_MeasurementCommandWithType_r11;
+static int ett_rrc_MeasurementCommandWithType_r12;
+static int ett_rrc_MeasurementCommandWithType_r13;
+static int ett_rrc_MeasurementCommandWithType_r14;
+static int ett_rrc_MeasurementCommandWithType_r15;
+static int ett_rrc_OngoingMeasRep;
+static int ett_rrc_OngoingMeasRep_r4;
+static int ett_rrc_OngoingMeasRep_r5;
+static int ett_rrc_T_measurementCommand_v590ext_01;
+static int ett_rrc_OngoingMeasRep_r6;
+static int ett_rrc_OngoingMeasRep_r7;
+static int ett_rrc_OngoingMeasRep_r8;
+static int ett_rrc_OngoingMeasRep_r9;
+static int ett_rrc_OngoingMeasRep_v970ext_IEs;
+static int ett_rrc_OngoingMeasRep_r10;
+static int ett_rrc_OngoingMeasRep_r11;
+static int ett_rrc_OngoingMeasRep_r12;
+static int ett_rrc_OngoingMeasRep_r13;
+static int ett_rrc_OngoingMeasRep_r14;
+static int ett_rrc_OngoingMeasRep_r15;
+static int ett_rrc_OngoingMeasRepList;
+static int ett_rrc_OngoingMeasRepList_r4;
+static int ett_rrc_OngoingMeasRepList_r5;
+static int ett_rrc_OngoingMeasRepList_r6;
+static int ett_rrc_OngoingMeasRepList_r7;
+static int ett_rrc_OngoingMeasRepList_r8;
+static int ett_rrc_OngoingMeasRepList_r9;
+static int ett_rrc_OngoingMeasRepList_v970ext_IE;
+static int ett_rrc_OngoingMeasRepList_r10;
+static int ett_rrc_OngoingMeasRepList_r11;
+static int ett_rrc_OngoingMeasRepList_r12;
+static int ett_rrc_OngoingMeasRepList_r13;
+static int ett_rrc_OngoingMeasRepList_r14;
+static int ett_rrc_OngoingMeasRepList_r15;
+static int ett_rrc_PDCP_Capability_r4;
+static int ett_rrc_T_supportForRfc2507_01;
+static int ett_rrc_T_supportForRfc3095_01;
+static int ett_rrc_T_supported_08;
+static int ett_rrc_PDCP_Capability_r5;
+static int ett_rrc_T_supportForRfc2507_02;
+static int ett_rrc_T_supportForRfc3095_02;
+static int ett_rrc_T_supported_09;
+static int ett_rrc_PDCP_Capability_r6;
+static int ett_rrc_T_supportForRfc2507_03;
+static int ett_rrc_T_supportForRfc3095_03;
+static int ett_rrc_T_supported_10;
+static int ett_rrc_PhysicalChannelCapability_r4;
+static int ett_rrc_T_fddPhysChCapability_11;
+static int ett_rrc_T_tdd384_PhysChCapability;
+static int ett_rrc_T_tdd128_PhysChCapability_01;
+static int ett_rrc_PhysicalChannelCapability_r5;
+static int ett_rrc_T_fddPhysChCapability_12;
+static int ett_rrc_T_tdd384_PhysChCapability_01;
+static int ett_rrc_T_tdd128_PhysChCapability_02;
+static int ett_rrc_RF_Capability_r4;
+static int ett_rrc_T_fddRF_Capability_04;
+static int ett_rrc_T_tdd384_RF_Capability_01;
+static int ett_rrc_T_tdd128_RF_Capability_01;
+static int ett_rrc_RFC3095_ContextInfo;
+static int ett_rrc_RFC3095_Context_List;
+static int ett_rrc_RFC3095_Context_List_item;
+static int ett_rrc_RLC_Capability_r5;
+static int ett_rrc_SRB_SpecificIntegrityProtInfo;
+static int ett_rrc_SRB_SpecificIntegrityProtInfoList;
+static int ett_rrc_TPC_Combination_Info;
+static int ett_rrc_TPC_Combination_Info_r9;
+static int ett_rrc_UE_MultiModeRAT_Capability_r5;
+static int ett_rrc_UE_Positioning_Capability_r4;
+static int ett_rrc_UE_Positioning_LastKnownPos;
+static int ett_rrc_UE_RadioAccessCapability_r4;
+static int ett_rrc_UE_RadioAccessCapability_r5;
+static int ett_rrc_UE_RadioAccessCapability_r6;
+static int ett_rrc_UL_RFC3095_Context;
static gint ett_rrc_eutraFeatureGroupIndicators;
static gint ett_rrc_cn_CommonGSM_MAP_NAS_SysInfo;
@@ -35773,7 +35773,7 @@ dissect_rrc_INTEGER_0_37799(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_rrc_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-rrlp.c b/epan/dissectors/packet-rrlp.c
index 3173498607..a2c77b10d3 100644
--- a/epan/dissectors/packet-rrlp.c
+++ b/epan/dissectors/packet-rrlp.c
@@ -868,258 +868,258 @@ static int hf_rrlp_GANSSModelID_model8;
/* Initialize the subtree pointers */
static gint ett_rrlp;
-static gint ett_rrlp_ExtensionContainer;
-static gint ett_rrlp_PrivateExtensionList;
-static gint ett_rrlp_PrivateExtension;
-static gint ett_rrlp_PCS_Extensions;
-static gint ett_rrlp_PDU;
-static gint ett_rrlp_RRLP_Component;
-static gint ett_rrlp_MsrPosition_Req;
-static gint ett_rrlp_MsrPosition_Rsp;
-static gint ett_rrlp_AssistanceData;
-static gint ett_rrlp_ProtocolError;
-static gint ett_rrlp_PosCapability_Req;
-static gint ett_rrlp_PosCapability_Rsp;
-static gint ett_rrlp_PositionInstruct;
-static gint ett_rrlp_MethodType;
-static gint ett_rrlp_AccuracyOpt;
-static gint ett_rrlp_ReferenceAssistData;
-static gint ett_rrlp_MsrAssistData;
-static gint ett_rrlp_SeqOfMsrAssistBTS;
-static gint ett_rrlp_MsrAssistBTS;
-static gint ett_rrlp_SystemInfoAssistData;
-static gint ett_rrlp_SeqOfSystemInfoAssistBTS;
-static gint ett_rrlp_SystemInfoAssistBTS;
-static gint ett_rrlp_AssistBTSData;
-static gint ett_rrlp_CalcAssistanceBTS;
-static gint ett_rrlp_ReferenceWGS84;
-static gint ett_rrlp_MultipleSets;
-static gint ett_rrlp_ReferenceIdentity;
-static gint ett_rrlp_SeqOfReferenceIdentityType;
-static gint ett_rrlp_ReferenceIdentityType;
-static gint ett_rrlp_BSICAndCarrier;
-static gint ett_rrlp_CellIDAndLAC;
-static gint ett_rrlp_OTD_MeasureInfo;
-static gint ett_rrlp_SeqOfOTD_MsrElementRest;
-static gint ett_rrlp_OTD_MsrElementFirst;
-static gint ett_rrlp_SeqOfOTD_FirstSetMsrs;
-static gint ett_rrlp_OTD_MsrElementRest;
-static gint ett_rrlp_SeqOfOTD_MsrsOfOtherSets;
-static gint ett_rrlp_TOA_MeasurementsOfRef;
-static gint ett_rrlp_OTD_MsrsOfOtherSets;
-static gint ett_rrlp_OTD_Measurement;
-static gint ett_rrlp_OTD_MeasurementWithID;
-static gint ett_rrlp_EOTDQuality;
-static gint ett_rrlp_NeighborIdentity;
-static gint ett_rrlp_MultiFrameCarrier;
-static gint ett_rrlp_LocationInfo;
-static gint ett_rrlp_GPS_MeasureInfo;
-static gint ett_rrlp_SeqOfGPS_MsrSetElement;
-static gint ett_rrlp_GPS_MsrSetElement;
-static gint ett_rrlp_SeqOfGPS_MsrElement;
-static gint ett_rrlp_GPS_MsrElement;
-static gint ett_rrlp_LocationError;
-static gint ett_rrlp_AdditionalAssistanceData;
-static gint ett_rrlp_GPS_AssistData;
-static gint ett_rrlp_ControlHeader;
-static gint ett_rrlp_ReferenceTime;
-static gint ett_rrlp_GPSTime;
-static gint ett_rrlp_GPSTOWAssist;
-static gint ett_rrlp_GPSTOWAssistElement;
-static gint ett_rrlp_GSMTime;
-static gint ett_rrlp_RefLocation;
-static gint ett_rrlp_DGPSCorrections;
-static gint ett_rrlp_SeqOfSatElement;
-static gint ett_rrlp_SatElement;
-static gint ett_rrlp_NavigationModel;
-static gint ett_rrlp_SeqOfNavModelElement;
-static gint ett_rrlp_NavModelElement;
-static gint ett_rrlp_SatStatus;
-static gint ett_rrlp_UncompressedEphemeris;
-static gint ett_rrlp_EphemerisSubframe1Reserved;
-static gint ett_rrlp_IonosphericModel;
-static gint ett_rrlp_UTCModel;
-static gint ett_rrlp_Almanac;
-static gint ett_rrlp_SeqOfAlmanacElement;
-static gint ett_rrlp_AlmanacElement;
-static gint ett_rrlp_AcquisAssist;
-static gint ett_rrlp_SeqOfAcquisElement;
-static gint ett_rrlp_TimeRelation;
-static gint ett_rrlp_AcquisElement;
-static gint ett_rrlp_AddionalDopplerFields;
-static gint ett_rrlp_AddionalAngleFields;
-static gint ett_rrlp_SeqOf_BadSatelliteSet;
-static gint ett_rrlp_Rel98_MsrPosition_Req_Extension;
-static gint ett_rrlp_Rel98_AssistanceData_Extension;
-static gint ett_rrlp_Rel98_Ext_ExpOTD;
-static gint ett_rrlp_MsrAssistData_R98_ExpOTD;
-static gint ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD;
-static gint ett_rrlp_MsrAssistBTS_R98_ExpOTD;
-static gint ett_rrlp_SystemInfoAssistData_R98_ExpOTD;
-static gint ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD;
-static gint ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD;
-static gint ett_rrlp_AssistBTSData_R98_ExpOTD;
-static gint ett_rrlp_GPSTimeAssistanceMeasurements;
-static gint ett_rrlp_Rel_98_MsrPosition_Rsp_Extension;
-static gint ett_rrlp_T_rel_98_Ext_MeasureInfo;
-static gint ett_rrlp_OTD_MeasureInfo_R98_Ext;
-static gint ett_rrlp_OTD_MsrElementFirst_R98_Ext;
-static gint ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext;
-static gint ett_rrlp_Rel_5_MsrPosition_Rsp_Extension;
-static gint ett_rrlp_Extended_reference;
-static gint ett_rrlp_Rel5_MsrPosition_Req_Extension;
-static gint ett_rrlp_Rel5_AssistanceData_Extension;
-static gint ett_rrlp_Rel_5_ProtocolError_Extension;
-static gint ett_rrlp_Rel7_MsrPosition_Req_Extension;
-static gint ett_rrlp_GANSSPositioningMethod;
-static gint ett_rrlp_GANSS_AssistData;
-static gint ett_rrlp_GANSS_ControlHeader;
-static gint ett_rrlp_GANSSCommonAssistData;
-static gint ett_rrlp_SeqOfGANSSGenericAssistDataElement;
-static gint ett_rrlp_GANSSGenericAssistDataElement;
-static gint ett_rrlp_GANSSReferenceTime;
-static gint ett_rrlp_GANSSRefTimeInfo;
-static gint ett_rrlp_GANSSReferenceTime_R10_Ext;
-static gint ett_rrlp_GANSSTOD_GSMTimeAssociation;
-static gint ett_rrlp_GANSSRefLocation;
-static gint ett_rrlp_GANSSIonosphericModel;
-static gint ett_rrlp_GANSSIonosphereModel;
-static gint ett_rrlp_GANSSIonoStormFlags;
-static gint ett_rrlp_GANSSAddIonosphericModel;
-static gint ett_rrlp_GANSSEarthOrientParam;
-static gint ett_rrlp_SeqOfGANSSTimeModel;
-static gint ett_rrlp_GANSSTimeModelElement;
-static gint ett_rrlp_SeqOfGANSSTimeModel_R10_Ext;
-static gint ett_rrlp_GANSSTimeModelElement_R10_Ext;
-static gint ett_rrlp_GANSSDiffCorrections;
-static gint ett_rrlp_SeqOfSgnTypeElement;
-static gint ett_rrlp_SgnTypeElement;
-static gint ett_rrlp_SeqOfDGANSSSgnElement;
-static gint ett_rrlp_DGANSSSgnElement;
-static gint ett_rrlp_GANSSNavModel;
-static gint ett_rrlp_SeqOfGANSSSatelliteElement;
-static gint ett_rrlp_GANSSSatelliteElement;
-static gint ett_rrlp_GANSSOrbitModel;
-static gint ett_rrlp_NavModel_KeplerianSet;
-static gint ett_rrlp_NavModel_NAVKeplerianSet;
-static gint ett_rrlp_NavModel_CNAVKeplerianSet;
-static gint ett_rrlp_NavModel_GLONASSecef;
-static gint ett_rrlp_NavModel_SBASecef;
-static gint ett_rrlp_GANSSClockModel;
-static gint ett_rrlp_SeqOfStandardClockModelElement;
-static gint ett_rrlp_StandardClockModelElement;
-static gint ett_rrlp_NAVclockModel;
-static gint ett_rrlp_CNAVclockModel;
-static gint ett_rrlp_GLONASSclockModel;
-static gint ett_rrlp_SBASclockModel;
-static gint ett_rrlp_GANSSRealTimeIntegrity;
-static gint ett_rrlp_SeqOfBadSignalElement;
-static gint ett_rrlp_BadSignalElement;
-static gint ett_rrlp_GANSSDataBitAssist;
-static gint ett_rrlp_SeqOfGanssDataBitsElement;
-static gint ett_rrlp_GanssDataBitsElement;
-static gint ett_rrlp_Seq_OfGANSSDataBitsSgn;
-static gint ett_rrlp_GANSSDataBitsSgnElement;
-static gint ett_rrlp_SeqOf_GANSSDataBits;
-static gint ett_rrlp_GANSSRefMeasurementAssist;
-static gint ett_rrlp_SeqOfGANSSRefMeasurementElement;
-static gint ett_rrlp_GANSSRefMeasurementElement;
-static gint ett_rrlp_AdditionalDopplerFields;
-static gint ett_rrlp_GANSSRefMeasurementAssist_R10_Ext;
-static gint ett_rrlp_GANSSRefMeasurement_R10_Ext_Element;
-static gint ett_rrlp_GANSSAlmanacModel;
-static gint ett_rrlp_SeqOfGANSSAlmanacElement;
-static gint ett_rrlp_GANSSAlmanacElement;
-static gint ett_rrlp_Almanac_KeplerianSet;
-static gint ett_rrlp_Almanac_NAVKeplerianSet;
-static gint ett_rrlp_Almanac_ReducedKeplerianSet;
-static gint ett_rrlp_Almanac_MidiAlmanacSet;
-static gint ett_rrlp_Almanac_GlonassAlmanacSet;
-static gint ett_rrlp_Almanac_ECEFsbasAlmanacSet;
-static gint ett_rrlp_GANSSAlmanacModel_R10_Ext;
-static gint ett_rrlp_GANSSUTCModel;
-static gint ett_rrlp_GANSSEphemerisExtension;
-static gint ett_rrlp_GANSSEphemerisExtensionHeader;
-static gint ett_rrlp_GANSSEphemerisExtensionTime;
-static gint ett_rrlp_ReferenceNavModel;
-static gint ett_rrlp_SeqOfGANSSRefOrbit;
-static gint ett_rrlp_GANSSReferenceOrbit;
-static gint ett_rrlp_GANSSEphemerisDeltaMatrix;
-static gint ett_rrlp_GANSSEphemerisDeltaEpoch;
-static gint ett_rrlp_GANSSDeltaEpochHeader;
-static gint ett_rrlp_GANSSDeltaElementList;
-static gint ett_rrlp_GANSSEphemerisDeltaBitSizes;
-static gint ett_rrlp_GANSSEphemerisDeltaScales;
-static gint ett_rrlp_GANSSEphemerisExtensionCheck;
-static gint ett_rrlp_GANSSSatEventsInfo;
-static gint ett_rrlp_GANSSAddUTCModel;
-static gint ett_rrlp_UTCmodelSet2;
-static gint ett_rrlp_UTCmodelSet3;
-static gint ett_rrlp_UTCmodelSet4;
-static gint ett_rrlp_GANSSAuxiliaryInformation;
-static gint ett_rrlp_GANSS_ID1;
-static gint ett_rrlp_GANSS_ID1_element;
-static gint ett_rrlp_GANSS_ID3;
-static gint ett_rrlp_GANSS_ID3_element;
-static gint ett_rrlp_GANSSDiffCorrectionsValidityPeriod;
-static gint ett_rrlp_DGANSSExtensionSgnTypeElement;
-static gint ett_rrlp_SeqOfDGANSSExtensionSgnElement;
-static gint ett_rrlp_DGANSSExtensionSgnElement;
-static gint ett_rrlp_Add_GPS_AssistData;
-static gint ett_rrlp_Add_GPS_ControlHeader;
-static gint ett_rrlp_GPSClockModel;
-static gint ett_rrlp_GPSEphemerisExtension;
-static gint ett_rrlp_GPSEphemerisExtensionHeader;
-static gint ett_rrlp_GPSEphemerisExtensionTime;
-static gint ett_rrlp_SeqOfGPSRefOrbit;
-static gint ett_rrlp_GPSReferenceOrbit;
-static gint ett_rrlp_GPSEphemerisDeltaMatrix;
-static gint ett_rrlp_GPSEphemerisDeltaEpoch;
-static gint ett_rrlp_GPSDeltaEpochHeader;
-static gint ett_rrlp_GPSDeltaElementList;
-static gint ett_rrlp_GPSEphemerisDeltaBitSizes;
-static gint ett_rrlp_GPSEphemerisDeltaScales;
-static gint ett_rrlp_GPSEphemerisExtensionCheck;
-static gint ett_rrlp_GPSSatEventsInfo;
-static gint ett_rrlp_DGPSCorrectionsValidityPeriod;
-static gint ett_rrlp_DGPSExtensionSatElement;
-static gint ett_rrlp_GPSReferenceTime_R10_Ext;
-static gint ett_rrlp_GPSAcquisAssist_R10_Ext;
-static gint ett_rrlp_GPSAcquisAssist_R10_Ext_Element;
-static gint ett_rrlp_GPSAlmanac_R10_Ext;
-static gint ett_rrlp_Rel_7_MsrPosition_Rsp_Extension;
-static gint ett_rrlp_GANSSLocationInfo;
-static gint ett_rrlp_PositionData;
-static gint ett_rrlp_ReferenceFrame;
-static gint ett_rrlp_GANSSMeasureInfo;
-static gint ett_rrlp_SeqOfGANSS_MsrSetElement;
-static gint ett_rrlp_GANSS_MsrSetElement;
-static gint ett_rrlp_SeqOfGANSS_MsrElement;
-static gint ett_rrlp_GANSS_MsrElement;
-static gint ett_rrlp_SeqOfGANSS_SgnTypeElement;
-static gint ett_rrlp_GANSS_SgnTypeElement;
-static gint ett_rrlp_SeqOfGANSS_SgnElement;
-static gint ett_rrlp_GANSS_SgnElement;
-static gint ett_rrlp_Rel7_AssistanceData_Extension;
-static gint ett_rrlp_PosCapabilities;
-static gint ett_rrlp_NonGANSSPositionMethods;
-static gint ett_rrlp_GANSSPositionMethods;
-static gint ett_rrlp_GANSSPositionMethod;
-static gint ett_rrlp_GANSSPositioningMethodTypes;
-static gint ett_rrlp_GANSSSignals;
-static gint ett_rrlp_SBASID;
-static gint ett_rrlp_MultipleMeasurementSets;
-static gint ett_rrlp_AssistanceSupported;
-static gint ett_rrlp_GPSAssistance;
-static gint ett_rrlp_GANSSAssistanceSet;
-static gint ett_rrlp_CommonGANSSAssistance;
-static gint ett_rrlp_SpecificGANSSAssistance;
-static gint ett_rrlp_GANSSAssistanceForOneGANSS;
-static gint ett_rrlp_GANSSAssistance;
-static gint ett_rrlp_GANSSAdditionalAssistanceChoices;
-static gint ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS;
-static gint ett_rrlp_GANSSModelID;
-static gint ett_rrlp_AssistanceNeeded;
+static int ett_rrlp_ExtensionContainer;
+static int ett_rrlp_PrivateExtensionList;
+static int ett_rrlp_PrivateExtension;
+static int ett_rrlp_PCS_Extensions;
+static int ett_rrlp_PDU;
+static int ett_rrlp_RRLP_Component;
+static int ett_rrlp_MsrPosition_Req;
+static int ett_rrlp_MsrPosition_Rsp;
+static int ett_rrlp_AssistanceData;
+static int ett_rrlp_ProtocolError;
+static int ett_rrlp_PosCapability_Req;
+static int ett_rrlp_PosCapability_Rsp;
+static int ett_rrlp_PositionInstruct;
+static int ett_rrlp_MethodType;
+static int ett_rrlp_AccuracyOpt;
+static int ett_rrlp_ReferenceAssistData;
+static int ett_rrlp_MsrAssistData;
+static int ett_rrlp_SeqOfMsrAssistBTS;
+static int ett_rrlp_MsrAssistBTS;
+static int ett_rrlp_SystemInfoAssistData;
+static int ett_rrlp_SeqOfSystemInfoAssistBTS;
+static int ett_rrlp_SystemInfoAssistBTS;
+static int ett_rrlp_AssistBTSData;
+static int ett_rrlp_CalcAssistanceBTS;
+static int ett_rrlp_ReferenceWGS84;
+static int ett_rrlp_MultipleSets;
+static int ett_rrlp_ReferenceIdentity;
+static int ett_rrlp_SeqOfReferenceIdentityType;
+static int ett_rrlp_ReferenceIdentityType;
+static int ett_rrlp_BSICAndCarrier;
+static int ett_rrlp_CellIDAndLAC;
+static int ett_rrlp_OTD_MeasureInfo;
+static int ett_rrlp_SeqOfOTD_MsrElementRest;
+static int ett_rrlp_OTD_MsrElementFirst;
+static int ett_rrlp_SeqOfOTD_FirstSetMsrs;
+static int ett_rrlp_OTD_MsrElementRest;
+static int ett_rrlp_SeqOfOTD_MsrsOfOtherSets;
+static int ett_rrlp_TOA_MeasurementsOfRef;
+static int ett_rrlp_OTD_MsrsOfOtherSets;
+static int ett_rrlp_OTD_Measurement;
+static int ett_rrlp_OTD_MeasurementWithID;
+static int ett_rrlp_EOTDQuality;
+static int ett_rrlp_NeighborIdentity;
+static int ett_rrlp_MultiFrameCarrier;
+static int ett_rrlp_LocationInfo;
+static int ett_rrlp_GPS_MeasureInfo;
+static int ett_rrlp_SeqOfGPS_MsrSetElement;
+static int ett_rrlp_GPS_MsrSetElement;
+static int ett_rrlp_SeqOfGPS_MsrElement;
+static int ett_rrlp_GPS_MsrElement;
+static int ett_rrlp_LocationError;
+static int ett_rrlp_AdditionalAssistanceData;
+static int ett_rrlp_GPS_AssistData;
+static int ett_rrlp_ControlHeader;
+static int ett_rrlp_ReferenceTime;
+static int ett_rrlp_GPSTime;
+static int ett_rrlp_GPSTOWAssist;
+static int ett_rrlp_GPSTOWAssistElement;
+static int ett_rrlp_GSMTime;
+static int ett_rrlp_RefLocation;
+static int ett_rrlp_DGPSCorrections;
+static int ett_rrlp_SeqOfSatElement;
+static int ett_rrlp_SatElement;
+static int ett_rrlp_NavigationModel;
+static int ett_rrlp_SeqOfNavModelElement;
+static int ett_rrlp_NavModelElement;
+static int ett_rrlp_SatStatus;
+static int ett_rrlp_UncompressedEphemeris;
+static int ett_rrlp_EphemerisSubframe1Reserved;
+static int ett_rrlp_IonosphericModel;
+static int ett_rrlp_UTCModel;
+static int ett_rrlp_Almanac;
+static int ett_rrlp_SeqOfAlmanacElement;
+static int ett_rrlp_AlmanacElement;
+static int ett_rrlp_AcquisAssist;
+static int ett_rrlp_SeqOfAcquisElement;
+static int ett_rrlp_TimeRelation;
+static int ett_rrlp_AcquisElement;
+static int ett_rrlp_AddionalDopplerFields;
+static int ett_rrlp_AddionalAngleFields;
+static int ett_rrlp_SeqOf_BadSatelliteSet;
+static int ett_rrlp_Rel98_MsrPosition_Req_Extension;
+static int ett_rrlp_Rel98_AssistanceData_Extension;
+static int ett_rrlp_Rel98_Ext_ExpOTD;
+static int ett_rrlp_MsrAssistData_R98_ExpOTD;
+static int ett_rrlp_SeqOfMsrAssistBTS_R98_ExpOTD;
+static int ett_rrlp_MsrAssistBTS_R98_ExpOTD;
+static int ett_rrlp_SystemInfoAssistData_R98_ExpOTD;
+static int ett_rrlp_SeqOfSystemInfoAssistBTS_R98_ExpOTD;
+static int ett_rrlp_SystemInfoAssistBTS_R98_ExpOTD;
+static int ett_rrlp_AssistBTSData_R98_ExpOTD;
+static int ett_rrlp_GPSTimeAssistanceMeasurements;
+static int ett_rrlp_Rel_98_MsrPosition_Rsp_Extension;
+static int ett_rrlp_T_rel_98_Ext_MeasureInfo;
+static int ett_rrlp_OTD_MeasureInfo_R98_Ext;
+static int ett_rrlp_OTD_MsrElementFirst_R98_Ext;
+static int ett_rrlp_SeqOfOTD_FirstSetMsrs_R98_Ext;
+static int ett_rrlp_Rel_5_MsrPosition_Rsp_Extension;
+static int ett_rrlp_Extended_reference;
+static int ett_rrlp_Rel5_MsrPosition_Req_Extension;
+static int ett_rrlp_Rel5_AssistanceData_Extension;
+static int ett_rrlp_Rel_5_ProtocolError_Extension;
+static int ett_rrlp_Rel7_MsrPosition_Req_Extension;
+static int ett_rrlp_GANSSPositioningMethod;
+static int ett_rrlp_GANSS_AssistData;
+static int ett_rrlp_GANSS_ControlHeader;
+static int ett_rrlp_GANSSCommonAssistData;
+static int ett_rrlp_SeqOfGANSSGenericAssistDataElement;
+static int ett_rrlp_GANSSGenericAssistDataElement;
+static int ett_rrlp_GANSSReferenceTime;
+static int ett_rrlp_GANSSRefTimeInfo;
+static int ett_rrlp_GANSSReferenceTime_R10_Ext;
+static int ett_rrlp_GANSSTOD_GSMTimeAssociation;
+static int ett_rrlp_GANSSRefLocation;
+static int ett_rrlp_GANSSIonosphericModel;
+static int ett_rrlp_GANSSIonosphereModel;
+static int ett_rrlp_GANSSIonoStormFlags;
+static int ett_rrlp_GANSSAddIonosphericModel;
+static int ett_rrlp_GANSSEarthOrientParam;
+static int ett_rrlp_SeqOfGANSSTimeModel;
+static int ett_rrlp_GANSSTimeModelElement;
+static int ett_rrlp_SeqOfGANSSTimeModel_R10_Ext;
+static int ett_rrlp_GANSSTimeModelElement_R10_Ext;
+static int ett_rrlp_GANSSDiffCorrections;
+static int ett_rrlp_SeqOfSgnTypeElement;
+static int ett_rrlp_SgnTypeElement;
+static int ett_rrlp_SeqOfDGANSSSgnElement;
+static int ett_rrlp_DGANSSSgnElement;
+static int ett_rrlp_GANSSNavModel;
+static int ett_rrlp_SeqOfGANSSSatelliteElement;
+static int ett_rrlp_GANSSSatelliteElement;
+static int ett_rrlp_GANSSOrbitModel;
+static int ett_rrlp_NavModel_KeplerianSet;
+static int ett_rrlp_NavModel_NAVKeplerianSet;
+static int ett_rrlp_NavModel_CNAVKeplerianSet;
+static int ett_rrlp_NavModel_GLONASSecef;
+static int ett_rrlp_NavModel_SBASecef;
+static int ett_rrlp_GANSSClockModel;
+static int ett_rrlp_SeqOfStandardClockModelElement;
+static int ett_rrlp_StandardClockModelElement;
+static int ett_rrlp_NAVclockModel;
+static int ett_rrlp_CNAVclockModel;
+static int ett_rrlp_GLONASSclockModel;
+static int ett_rrlp_SBASclockModel;
+static int ett_rrlp_GANSSRealTimeIntegrity;
+static int ett_rrlp_SeqOfBadSignalElement;
+static int ett_rrlp_BadSignalElement;
+static int ett_rrlp_GANSSDataBitAssist;
+static int ett_rrlp_SeqOfGanssDataBitsElement;
+static int ett_rrlp_GanssDataBitsElement;
+static int ett_rrlp_Seq_OfGANSSDataBitsSgn;
+static int ett_rrlp_GANSSDataBitsSgnElement;
+static int ett_rrlp_SeqOf_GANSSDataBits;
+static int ett_rrlp_GANSSRefMeasurementAssist;
+static int ett_rrlp_SeqOfGANSSRefMeasurementElement;
+static int ett_rrlp_GANSSRefMeasurementElement;
+static int ett_rrlp_AdditionalDopplerFields;
+static int ett_rrlp_GANSSRefMeasurementAssist_R10_Ext;
+static int ett_rrlp_GANSSRefMeasurement_R10_Ext_Element;
+static int ett_rrlp_GANSSAlmanacModel;
+static int ett_rrlp_SeqOfGANSSAlmanacElement;
+static int ett_rrlp_GANSSAlmanacElement;
+static int ett_rrlp_Almanac_KeplerianSet;
+static int ett_rrlp_Almanac_NAVKeplerianSet;
+static int ett_rrlp_Almanac_ReducedKeplerianSet;
+static int ett_rrlp_Almanac_MidiAlmanacSet;
+static int ett_rrlp_Almanac_GlonassAlmanacSet;
+static int ett_rrlp_Almanac_ECEFsbasAlmanacSet;
+static int ett_rrlp_GANSSAlmanacModel_R10_Ext;
+static int ett_rrlp_GANSSUTCModel;
+static int ett_rrlp_GANSSEphemerisExtension;
+static int ett_rrlp_GANSSEphemerisExtensionHeader;
+static int ett_rrlp_GANSSEphemerisExtensionTime;
+static int ett_rrlp_ReferenceNavModel;
+static int ett_rrlp_SeqOfGANSSRefOrbit;
+static int ett_rrlp_GANSSReferenceOrbit;
+static int ett_rrlp_GANSSEphemerisDeltaMatrix;
+static int ett_rrlp_GANSSEphemerisDeltaEpoch;
+static int ett_rrlp_GANSSDeltaEpochHeader;
+static int ett_rrlp_GANSSDeltaElementList;
+static int ett_rrlp_GANSSEphemerisDeltaBitSizes;
+static int ett_rrlp_GANSSEphemerisDeltaScales;
+static int ett_rrlp_GANSSEphemerisExtensionCheck;
+static int ett_rrlp_GANSSSatEventsInfo;
+static int ett_rrlp_GANSSAddUTCModel;
+static int ett_rrlp_UTCmodelSet2;
+static int ett_rrlp_UTCmodelSet3;
+static int ett_rrlp_UTCmodelSet4;
+static int ett_rrlp_GANSSAuxiliaryInformation;
+static int ett_rrlp_GANSS_ID1;
+static int ett_rrlp_GANSS_ID1_element;
+static int ett_rrlp_GANSS_ID3;
+static int ett_rrlp_GANSS_ID3_element;
+static int ett_rrlp_GANSSDiffCorrectionsValidityPeriod;
+static int ett_rrlp_DGANSSExtensionSgnTypeElement;
+static int ett_rrlp_SeqOfDGANSSExtensionSgnElement;
+static int ett_rrlp_DGANSSExtensionSgnElement;
+static int ett_rrlp_Add_GPS_AssistData;
+static int ett_rrlp_Add_GPS_ControlHeader;
+static int ett_rrlp_GPSClockModel;
+static int ett_rrlp_GPSEphemerisExtension;
+static int ett_rrlp_GPSEphemerisExtensionHeader;
+static int ett_rrlp_GPSEphemerisExtensionTime;
+static int ett_rrlp_SeqOfGPSRefOrbit;
+static int ett_rrlp_GPSReferenceOrbit;
+static int ett_rrlp_GPSEphemerisDeltaMatrix;
+static int ett_rrlp_GPSEphemerisDeltaEpoch;
+static int ett_rrlp_GPSDeltaEpochHeader;
+static int ett_rrlp_GPSDeltaElementList;
+static int ett_rrlp_GPSEphemerisDeltaBitSizes;
+static int ett_rrlp_GPSEphemerisDeltaScales;
+static int ett_rrlp_GPSEphemerisExtensionCheck;
+static int ett_rrlp_GPSSatEventsInfo;
+static int ett_rrlp_DGPSCorrectionsValidityPeriod;
+static int ett_rrlp_DGPSExtensionSatElement;
+static int ett_rrlp_GPSReferenceTime_R10_Ext;
+static int ett_rrlp_GPSAcquisAssist_R10_Ext;
+static int ett_rrlp_GPSAcquisAssist_R10_Ext_Element;
+static int ett_rrlp_GPSAlmanac_R10_Ext;
+static int ett_rrlp_Rel_7_MsrPosition_Rsp_Extension;
+static int ett_rrlp_GANSSLocationInfo;
+static int ett_rrlp_PositionData;
+static int ett_rrlp_ReferenceFrame;
+static int ett_rrlp_GANSSMeasureInfo;
+static int ett_rrlp_SeqOfGANSS_MsrSetElement;
+static int ett_rrlp_GANSS_MsrSetElement;
+static int ett_rrlp_SeqOfGANSS_MsrElement;
+static int ett_rrlp_GANSS_MsrElement;
+static int ett_rrlp_SeqOfGANSS_SgnTypeElement;
+static int ett_rrlp_GANSS_SgnTypeElement;
+static int ett_rrlp_SeqOfGANSS_SgnElement;
+static int ett_rrlp_GANSS_SgnElement;
+static int ett_rrlp_Rel7_AssistanceData_Extension;
+static int ett_rrlp_PosCapabilities;
+static int ett_rrlp_NonGANSSPositionMethods;
+static int ett_rrlp_GANSSPositionMethods;
+static int ett_rrlp_GANSSPositionMethod;
+static int ett_rrlp_GANSSPositioningMethodTypes;
+static int ett_rrlp_GANSSSignals;
+static int ett_rrlp_SBASID;
+static int ett_rrlp_MultipleMeasurementSets;
+static int ett_rrlp_AssistanceSupported;
+static int ett_rrlp_GPSAssistance;
+static int ett_rrlp_GANSSAssistanceSet;
+static int ett_rrlp_CommonGANSSAssistance;
+static int ett_rrlp_SpecificGANSSAssistance;
+static int ett_rrlp_GANSSAssistanceForOneGANSS;
+static int ett_rrlp_GANSSAssistance;
+static int ett_rrlp_GANSSAdditionalAssistanceChoices;
+static int ett_rrlp_GANSSAdditionalAssistanceChoicesForOneGANSS;
+static int ett_rrlp_GANSSModelID;
+static int ett_rrlp_AssistanceNeeded;
/* Include constants */
#define maxNumOfPrivateExtensions 10
@@ -2074,7 +2074,7 @@ dissect_rrlp_INTEGER_M2097152_2097151(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_rrlp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
@@ -3033,7 +3033,7 @@ dissect_rrlp_GANSSCommonAssistData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_rrlp_TA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
@@ -3542,7 +3542,7 @@ dissect_rrlp_INTEGER_M4194304_4194303(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_rrlp_INTEGER_M4294967296_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- G_GINT64_CONSTANT(-4294967296), 4294967295U, NULL, FALSE);
+ INT64_C(-4294967296), 4294967295U, NULL, FALSE);
return offset;
}
@@ -3552,7 +3552,7 @@ dissect_rrlp_INTEGER_M4294967296_4294967295(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_rrlp_INTEGER_0_8589934591(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(8589934591), NULL, FALSE);
+ 0U, UINT64_C(8589934591), NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-rsh.c b/epan/dissectors/packet-rsh.c
index 23cdedd1a9..9b74267456 100644
--- a/epan/dissectors/packet-rsh.c
+++ b/epan/dissectors/packet-rsh.c
@@ -30,9 +30,9 @@ void proto_reg_handoff_rsh(void);
static dissector_handle_t rsh_handle;
/* Variables for our preferences */
-static gboolean preference_info_show_client_username = FALSE;
-static gboolean preference_info_show_server_username = TRUE;
-static gboolean preference_info_show_command = FALSE;
+static bool preference_info_show_client_username;
+static bool preference_info_show_server_username = true;
+static bool preference_info_show_command;
/* Initialize the protocol and registered fields */
static int proto_rsh;
diff --git a/epan/dissectors/packet-rsl.c b/epan/dissectors/packet-rsl.c
index b92be31260..b5cbc2c5e0 100644
--- a/epan/dissectors/packet-rsl.c
+++ b/epan/dissectors/packet-rsl.c
@@ -282,13 +282,13 @@ static dissector_handle_t gsm_a_dtap_handle;
static dissector_handle_t gsm_a_sacch_handle;
/* Decode things as nanoBTS traces */
-static gboolean global_rsl_use_nano_bts = FALSE;
+static bool global_rsl_use_nano_bts;
/* Decode Osmocom specific messages and IEs */
-static gboolean global_rsl_use_osmo_bts = FALSE;
+static bool global_rsl_use_osmo_bts;
/* Decode things in Physical Context Information field. */
-static gboolean global_rsl_dissect_phy_ctx_inf = TRUE;
+static bool global_rsl_dissect_phy_ctx_inf = true;
/* Forward declarations */
static int dissct_rsl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset);
diff --git a/epan/dissectors/packet-rsvd.c b/epan/dissectors/packet-rsvd.c
index d34200fd0e..5f545cea71 100644
--- a/epan/dissectors/packet-rsvd.c
+++ b/epan/dissectors/packet-rsvd.c
@@ -161,9 +161,9 @@ typedef struct _rsvd_conv_data_t {
conversation_t *conversation;
} rsvd_conv_data_t;
-static rsvd_conv_data_t *rsvd_conv_data = NULL;
+static rsvd_conv_data_t *rsvd_conv_data;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static itl_nexus_t *
get_itl_nexus(packet_info *pinfo)
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c
index d48a954c42..4363d877b4 100644
--- a/epan/dissectors/packet-rsvp.c
+++ b/epan/dissectors/packet-rsvp.c
@@ -756,7 +756,7 @@ struct rsvp_request_val {
/*
* Initialize the conversation related data structures.
*/
-static wmem_map_t *rsvp_request_hash = NULL;
+static wmem_map_t *rsvp_request_hash;
/*
* The list of tree types
@@ -850,7 +850,7 @@ static gint ett_treelist[TT_MAX];
#define TREE(X) ett_treelist[(X)]
/* Should we dissect bundle messages? */
-static gboolean rsvp_bundle_dissect = TRUE;
+static bool rsvp_bundle_dissect = true;
/* FF: How should we dissect generalized label? */
static const enum_val_t rsvp_generalized_label_options[] = {
@@ -2913,7 +2913,7 @@ dissect_rsvp_session(packet_info *pinfo, proto_item *ti, proto_tree *rsvp_object
hf_rsvp_filter[RSVPF_SESSION_TUNNEL_ID],
tvb, offset2+6, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(rsvp_object_tree, hf_rsvp_extended_tunnel, tvb, offset2+8, 16, ENC_NA);
+ proto_tree_add_item(rsvp_object_tree, hf_rsvp_extended_tunnel_ipv6, tvb, offset2+8, 16, ENC_NA);
hidden_item = proto_tree_add_item(rsvp_object_tree,
hf_rsvp_filter[RSVPF_SESSION_EXT_TUNNEL_ID_IPV6],
tvb, offset2+8, 16, ENC_NA);
@@ -3803,7 +3803,7 @@ dissect_rsvp_eth_tspec_tlv(proto_item *ti, packet_info* pinfo, proto_tree *rsvp_
case 0:
case 1:
- /*case 2: ethernet bandwidth profile accordig to RFC 6003*/
+ /*case 2: ethernet bandwidth profile according to RFC 6003*/
case 2:
rsvp_ethspec_subtree = proto_tree_add_subtree_format(rsvp_object_tree, tvb,
offset+tlv_off, tlv_len, subtree_type, NULL,
@@ -8055,7 +8055,7 @@ dissect_rsvp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea
rsvph = wmem_new0(pinfo->pool, rsvp_conversation_info);
- /* Copy over the source and destination addresses from the pinfo strucutre */
+ /* Copy over the source and destination addresses from the pinfo structure */
set_address(&rsvph->source, pinfo->src.type, pinfo->src.len, pinfo->src.data);
set_address(&rsvph->destination, pinfo->dst.type, pinfo->dst.len, pinfo->dst.data);
@@ -10324,11 +10324,11 @@ proto_register_rsvp(void)
{ &hf_rsvp_link_cap_data, { "Data", "rsvp.link_cap.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_rsvp_capability_flags, { "Flags", "rsvp.capability.flags", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }},
{ &hf_rsvp_capability_flags_reserved, { "Reserved", "rsvp.capability.flags.reserved", FT_UINT32, BASE_HEX, NULL, 0xFFFFFFE0, NULL, HFILL }},
- { &hf_rsvp_capability_flags_f, { "Per-Peer Flow-Control (F)", "rsvp.capability.flags.f", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x0010, NULL, HFILL }},
- { &hf_rsvp_capability_flags_i, { "RI-RSVP (I)", "rsvp.capability.flags.i", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x0008, NULL, HFILL }},
- { &hf_rsvp_capability_flags_t, { "RecoveryPath Transmit (T)", "rsvp.capability.flags.t", FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x0004, NULL, HFILL }},
- { &hf_rsvp_capability_flags_r, { "RecoveryPath (R)", "rsvp.capability.flags.r", FT_BOOLEAN, 32, TFS(&tfs_desired_not_desired), 0x0002, NULL, HFILL }},
- { &hf_rsvp_capability_flags_s, { "RecoveryPath Srefresh (S)", "rsvp.capability.flags.s", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x0001, NULL, HFILL }},
+ { &hf_rsvp_capability_flags_f, { "Per-Peer Flow-Control (F)", "rsvp.capability.flags.f", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x00000010, NULL, HFILL }},
+ { &hf_rsvp_capability_flags_i, { "RI-RSVP (I)", "rsvp.capability.flags.i", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x00000008, NULL, HFILL }},
+ { &hf_rsvp_capability_flags_t, { "RecoveryPath Transmit (T)", "rsvp.capability.flags.t", FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00000004, NULL, HFILL }},
+ { &hf_rsvp_capability_flags_r, { "RecoveryPath (R)", "rsvp.capability.flags.r", FT_BOOLEAN, 32, TFS(&tfs_desired_not_desired), 0x00000002, NULL, HFILL }},
+ { &hf_rsvp_capability_flags_s, { "RecoveryPath Srefresh (S)", "rsvp.capability.flags.s", FT_BOOLEAN, 32, TFS(&tfs_capable_not_capable), 0x00000001, NULL, HFILL }},
{ &hf_rsvp_capability_data, { "Data", "rsvp.capability.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_rsvp_protection_info_link_flags, { "Link Flags", "rsvp.protection_info.link_flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }},
{ &hf_rsvp_protection_info_data, { "Data", "rsvp.protection_info.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
diff --git a/epan/dissectors/packet-rsync.c b/epan/dissectors/packet-rsync.c
index 8f9913e0e8..f1caf1cff1 100644
--- a/epan/dissectors/packet-rsync.c
+++ b/epan/dissectors/packet-rsync.c
@@ -48,7 +48,7 @@ enum rsync_who {
SERVER
};
-static gboolean rsync_desegment = TRUE;
+static bool rsync_desegment = true;
/* this is a guide to the current conversation state */
struct rsync_conversation_data {
@@ -78,7 +78,7 @@ static dissector_handle_t rsync_handle;
#define TCP_PORT_RSYNC 873
-static range_t *glb_rsync_tcp_range = NULL;
+static range_t *glb_rsync_tcp_range;
#define VERSION_LEN 4 /* 2 digits for main version; '.'; 1 digit for sub version */
diff --git a/epan/dissectors/packet-rtag.c b/epan/dissectors/packet-rtag.c
index 4df4379e46..5d943abe2e 100644
--- a/epan/dissectors/packet-rtag.c
+++ b/epan/dissectors/packet-rtag.c
@@ -1,5 +1,5 @@
/* packet-rtag.c
- * Dissector for IEEE 802.1cb R-TAG tags
+ * Dissector for IEEE 802.1CB R-TAG tags
* By Stephen Williams <steve.williams@getcruise.com>
* Copyright 2020-present, Cruise LLC
*
@@ -25,6 +25,7 @@ static dissector_handle_t rtag_handle;
static int hf_rtag_reserved;
static int hf_rtag_sequence;
static int hf_rtag_protocol;
+static int hf_rtag_trailer;
static hf_register_info rtag_breakdown[] = {
{ &hf_rtag_reserved,
{ "<reserved>", "rtag.reserved",
@@ -43,7 +44,12 @@ static hf_register_info rtag_breakdown[] = {
FT_UINT16, BASE_HEX,
VALS(etype_vals), 0x0,
"Ethertype", HFILL }
- }
+ },
+ { &hf_rtag_trailer,
+ { "Trailer", "rtag.trailer",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ "R-TAG Trailer", HFILL }
+ },
};
/*
@@ -89,8 +95,8 @@ static int dissect_rtag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
ethertype_data.etype = rtag_protocol;
ethertype_data.payload_offset = 6;
ethertype_data.fh_tree = tree;
- ethertype_data.trailer_id = -1;
- ethertype_data.fcs_len = -1;
+ ethertype_data.trailer_id = hf_rtag_trailer;
+ ethertype_data.fcs_len = 0;
call_dissector_with_data(ethertype_handle, tvb, pinfo, tree, &ethertype_data);
return tvb_captured_length(tvb);
diff --git a/epan/dissectors/packet-rtcp.c b/epan/dissectors/packet-rtcp.c
index d6aba692e1..56c9a42210 100644
--- a/epan/dissectors/packet-rtcp.c
+++ b/epan/dissectors/packet-rtcp.c
@@ -85,9 +85,28 @@ void proto_reg_handoff_rtcp(void);
/* Receiver/ Sender count is the 5 last bits */
#define RTCP_COUNT(octet) ((octet) & 0x1F)
+/* Metric block for RTCP Congestion Control Feedback [RFC8888]
+ 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |R|ECN| ATO |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */
+#define RTCP_CCFB_RECEIVED(metric_block) (((metric_block) & 0x8000) >> 15)
+#define RTCP_CCFB_ECN(metric_block) (((metric_block) & 0x6000) >> 13)
+#define RTCP_CCFB_ATO(metric_block) ((metric_block) & 0x1FFF)
+
+#define RTCP_TRANSPORT_CC_HEADER_LENGTH 12
+static int rtcp_padding_set = 0;
+
static dissector_handle_t rtcp_handle;
static dissector_handle_t srtcp_handle;
static dissector_handle_t ms_pse_handle;
+static dissector_handle_t rtcp_rtpfb_nack_handle;
+static dissector_handle_t rtcp_rtpfb_tmmbr_handle;
+static dissector_handle_t rtcp_rtpfb_tmmbn_handle;
+static dissector_handle_t rtcp_rtpfb_ccfb_handle;
+static dissector_handle_t rtcp_rtpfb_transport_cc_handle;
+static dissector_handle_t rtcp_rtpfb_undecoded_fci_handle;
+
/* add dissector table to permit sub-protocol registration */
static dissector_table_t rtcp_dissector_table;
@@ -521,6 +540,12 @@ static const value_string rtcp_mccp_field_id_vals[] = {
static int proto_rtcp;
static int proto_srtcp;
static int proto_rtcp_ms_pse;
+static int proto_rtcp_rtpfb_nack;
+static int proto_rtcp_rtpfb_tmmbr;
+static int proto_rtcp_rtpfb_tmmbn;
+static int proto_rtcp_rtpfb_ccfb;
+static int proto_rtcp_rtpfb_transport_cc;
+static int proto_rtcp_rtpfb_undecoded_fci;
static int hf_rtcp_version;
static int hf_rtcp_padding;
static int hf_rtcp_rc;
@@ -651,6 +676,13 @@ static int hf_rtcp_xr_idms_ntp_rcv_ts;
static int hf_rtcp_xr_idms_rtp_ts;
static int hf_rtcp_xr_idms_ntp_pres_ts;
static int hf_rtcp_length_check;
+static int hf_rtcp_rtpfb_ccfb_beginseq;
+static int hf_rtcp_rtpfb_ccfb_numreports;
+static int hf_rtcp_rtpfb_ccfb_received;
+static int hf_rtcp_rtpfb_ccfb_ecn;
+static int hf_rtcp_rtpfb_ccfb_ato;
+static int hf_rtcp_rtpfb_ccfb_padding;
+static int hf_rtcp_rtpfb_ccfb_timestamp;
static int hf_rtcp_rtpfb_fmt;
static int hf_rtcp_rtpfb_nack_pid;
static int hf_rtcp_rtpfb_nack_blp;
@@ -838,6 +870,10 @@ static gint ett_rtcp_sdes;
static gint ett_rtcp_bye;
static gint ett_rtcp_app;
static gint ett_rtcp_rtpfb;
+static gint ett_rtcp_rtpfb_ccfb_fci;
+static gint ett_rtcp_rtpfb_ccfb_media_source;
+static gint ett_rtcp_rtpfb_ccfb_metric_blocks;
+static gint ett_rtcp_rtpfb_ccfb_metric_block;
static gint ett_rtcp_psfb;
static gint ett_rtcp_xr;
static gint ett_rtcp_fir;
@@ -879,6 +915,7 @@ static expert_field ei_rtcp_block_length;
static expert_field ei_srtcp_encrypted_payload;
static expert_field ei_rtcp_rtpfb_transportcc_bad;
static expert_field ei_rtcp_rtpfb_fmt_not_implemented;
+static expert_field ei_rtcp_rtpfb_ccfb_too_many_reports;
static expert_field ei_rtcp_mcptt_unknown_fld;
static expert_field ei_rtcp_mcptt_location_type;
static expert_field ei_rtcp_appl_extra_bytes;
@@ -904,11 +941,11 @@ static int dissect_rtcp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
static int dissect_srtcp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data);
/* Displaying set info */
-static gboolean global_rtcp_show_setup_info = TRUE;
+static bool global_rtcp_show_setup_info = true;
static void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
/* Related to roundtrip calculation (using LSR and DLSR) */
-static gboolean global_rtcp_show_roundtrip_calculation = FALSE;
+static bool global_rtcp_show_roundtrip_calculation;
#define MIN_ROUNDTRIP_TO_REPORT_DEFAULT 10
static guint global_rtcp_show_roundtrip_calculation_minimum = MIN_ROUNDTRIP_TO_REPORT_DEFAULT;
static void remember_outgoing_sr(packet_info *pinfo, guint32 lsr);
@@ -1078,6 +1115,25 @@ static int dissect_rtcp_length_field( proto_tree *tree, tvbuff_t *tvb, int offse
return offset;
}
+static int
+dissect_rtcp_rtpfb_header(tvbuff_t *tvb, int offset, proto_tree *rtcp_tree)
+{
+ /* Feedback message type, 8 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_rtpfb_fmt, tvb, offset, 1, ENC_BIG_ENDIAN );
+ offset++;
+
+ /* Packet type, 8 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_pt, tvb, offset, 1, ENC_BIG_ENDIAN );
+ offset++;
+
+ offset = dissect_rtcp_length_field(rtcp_tree, tvb, offset);
+
+ /* SSRC of packet sender, 32 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_sender, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
+
+ return offset;
+}
static int
dissect_rtcp_nack( tvbuff_t *tvb, int offset, proto_tree *tree )
@@ -1108,7 +1164,7 @@ dissect_rtcp_nack( tvbuff_t *tvb, int offset, proto_tree *tree )
}
static int
-dissect_rtcp_rtpfb_tmmbr( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_item *top_item, int num_fci, int is_notification)
+dissect_rtcp_rtpfb_tmmbr_tmmbn_fci( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_item *top_item, int num_fci, int is_notification)
{
guint8 exp;
guint32 mantissa;
@@ -1136,12 +1192,161 @@ dissect_rtcp_rtpfb_tmmbr( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, prot
offset += 1;
if (top_item != NULL) {
- proto_item_append_text(top_item, ": TMMBR: %u*2^%u", mantissa, exp);
- }
+ if (is_notification == 1) {
+ proto_item_append_text(top_item, ": TMMBN: %u*2^%u", mantissa, exp);
+ } else {
+ proto_item_append_text(top_item, ": TMMBR: %u*2^%u", mantissa, exp);
+ }
+ }
+
+ return offset;
+}
+
+static int
+dissect_rtcp_rtpfb_tmmbr( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *rtcp_tree, void *data _U_)
+{
+ int offset = 0;
+ proto_item *top_item = proto_tree_get_parent(rtcp_tree);
+
+ int packet_len = tvb_get_guint16( tvb, offset + 2, ENC_BIG_ENDIAN);
+
+ offset = dissect_rtcp_rtpfb_header(tvb, offset, rtcp_tree);
+
+ /* SSRC of media source, 32 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
+
+ /* Feedback Control Information */
+ uint32_t num_fci = 0;
+ while (offset < packet_len)
+ {
+ num_fci++;
+ offset = dissect_rtcp_rtpfb_tmmbr_tmmbn_fci( tvb, offset, rtcp_tree, top_item, num_fci, false);
+ }
+
+ return offset;
+}
+
+static int
+dissect_rtcp_rtpfb_tmmbn( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *rtcp_tree, void *data _U_)
+{
+ int offset = 0;
+ proto_item *top_item = proto_tree_get_parent(rtcp_tree);
+
+ int packet_len = tvb_get_guint16( tvb, offset + 2, ENC_BIG_ENDIAN);
+
+ offset = dissect_rtcp_rtpfb_header(tvb, offset, rtcp_tree);
+
+ /* SSRC of media source, 32 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
+
+ /* Feedback Control Information */
+ uint32_t num_fci = 0;
+ while (offset < packet_len)
+ {
+ num_fci++;
+ offset = dissect_rtcp_rtpfb_tmmbr_tmmbn_fci( tvb, offset, rtcp_tree, top_item, num_fci, true);
+ }
+
+ return offset;
+}
+
+static int
+dissect_rtcp_rtpfb_ccfb_fci( tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *fci_tree, int packet_len)
+{
+ proto_tree *media_source_ssrc_tree;
+ proto_item *metric_blocks_item;
+ proto_tree *metric_blocks_tree;
+ proto_item *metric_block_tree;
+ proto_item *ato_item;
+
+ /* SSRC of media source, 32 bits */
+ const uint32_t media_source_ssrc = tvb_get_guint32( tvb, offset, 4);
+ media_source_ssrc_tree =
+ proto_tree_add_subtree_format( fci_tree, tvb, 0, 0, ett_rtcp_rtpfb_ccfb_media_source, NULL,
+ "Media Source Stream: 0x%"PRIx32 " (%"PRIu32 ")", media_source_ssrc, media_source_ssrc);
+
+ proto_tree_add_item( media_source_ssrc_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
+
+ proto_tree_add_item( media_source_ssrc_tree, hf_rtcp_rtpfb_ccfb_beginseq, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+
+ const uint16_t num_of_reported_pkts = tvb_get_guint16( tvb, offset, ENC_BIG_ENDIAN) + 1;
+ proto_tree_add_uint_format( media_source_ssrc_tree, hf_rtcp_rtpfb_ccfb_numreports, tvb, offset, 2,
+ num_of_reported_pkts, "Number of metric blocks: %" PRIu16, num_of_reported_pkts);
+
+ metric_blocks_tree = proto_tree_add_subtree(media_source_ssrc_tree, tvb, 0, 0, ett_rtcp_rtpfb_ccfb_metric_blocks,
+ &metric_blocks_item, "Metric Blocks");
+ proto_item_set_generated( metric_blocks_item);
+
+ if (num_of_reported_pkts > 16384)
+ {
+ expert_add_info(pinfo, metric_blocks_tree, &ei_rtcp_rtpfb_ccfb_too_many_reports);
+ return packet_len;
+ }
+
+ for (int i = 0; i < num_of_reported_pkts; i++)
+ {
+ offset += 2;
+
+ const uint16_t metric_block = tvb_get_guint16( tvb, offset, ENC_BIG_ENDIAN);
+ const uint16_t received = RTCP_CCFB_RECEIVED(metric_block);
+ const uint16_t ecn = RTCP_CCFB_ECN(metric_block);
+ gfloat ato = RTCP_CCFB_ATO(metric_block);
+ gfloat ato_ms = ato / 1024 * 1000;
+
+ metric_block_tree =
+ proto_tree_add_subtree_format( metric_blocks_tree, tvb, 0, 0, ett_rtcp_rtpfb_ccfb_metric_block, NULL,
+ "Metric Block (R:%"PRIu32", ECN:%"PRIu32", ATO:%f ms)", received, ecn, ato_ms);
+ proto_tree_add_item( metric_block_tree, hf_rtcp_rtpfb_ccfb_received, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item( metric_block_tree, hf_rtcp_rtpfb_ccfb_ecn, tvb, offset, 2, ENC_BIG_ENDIAN);
+
+ ato_item = proto_tree_add_item( metric_block_tree, hf_rtcp_rtpfb_ccfb_ato, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_item_append_text(ato_item, " (%f ms)", ato_ms);
+ }
+
+ offset += 2;
+ if (num_of_reported_pkts % 2 == 1)
+ {
+ proto_tree_add_item( metric_blocks_tree, hf_rtcp_rtpfb_ccfb_padding, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ }
return offset;
}
+static int
+dissect_rtcp_rtpfb_ccfb( tvbuff_t *tvb, packet_info *pinfo, proto_tree *rtcp_tree, void *data _U_)
+{
+ int offset = 0;
+ proto_tree *fci_tree;
+ proto_item *fci_item;
+
+ int packet_len = tvb_get_guint16( tvb, offset + 2, ENC_BIG_ENDIAN);
+
+ offset = dissect_rtcp_rtpfb_header( tvb, offset, rtcp_tree);
+
+ fci_tree = proto_tree_add_subtree( rtcp_tree, tvb, 0, 0, ett_rtcp_rtpfb_ccfb_fci,
+ &fci_item, "Feedback Control Information (FCI)");
+ proto_item_set_generated( fci_item);
+
+ /* We can have multiple SSRC streams for which we are sending feedback (for which
+ * RTP packets have been received). Every iteration in while loop will dissect info
+ * for one source SSRC stream. Last 4 bytes are reserved for timestamp field.
+ */
+ while (offset < packet_len - 4)
+ {
+ offset = dissect_rtcp_rtpfb_ccfb_fci( tvb, offset, pinfo, fci_tree, packet_len);
+ }
+
+ proto_tree_add_item( rtcp_tree, hf_rtcp_rtpfb_ccfb_timestamp, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ return offset;
+}
+
/* Dissect Application Specific Feedback messages */
static int
dissect_rtcp_asfb_ms( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info *pinfo)
@@ -1327,17 +1532,15 @@ dissect_rtcp_psfb_remb( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_
return offset;
}
-#define RTCP_HEADER_LENGTH 12
-
static int
-dissect_rtcp_rtpfb_transport_cc( tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *rtcp_tree, guint *padding_set, int pkt_len)
+dissect_rtcp_rtpfb_transport_cc_fci( tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *rtcp_tree, int pkt_len)
{
proto_tree *fci_tree, *pkt_chunk_tree, *recv_delta_tree;
proto_item *item = NULL;
guint8 *delta_array;
guint16 *pkt_seq_array;
guint32 i, pkt_base_seq, pkt_seq_num, pkt_count, delta_index = 0;
- gint fci_length = pkt_len - RTCP_HEADER_LENGTH;
+ gint fci_length = pkt_len - RTCP_TRANSPORT_CC_HEADER_LENGTH;
int padding_length = offset;
fci_tree = proto_tree_add_subtree_format( rtcp_tree, tvb, offset, fci_length, ett_ssrc, NULL, "Transport-cc" );
@@ -1582,7 +1785,7 @@ dissect_rtcp_rtpfb_transport_cc( tvbuff_t *tvb, int offset, packet_info *pinfo,
{
proto_tree_add_item( recv_delta_tree, hf_rtcp_rtpfb_transport_cc_fci_recv_delta_padding, tvb, offset, padding_length, ENC_BIG_ENDIAN );
offset += padding_length;
- *padding_set = 0; /* consume RTCP padding here */
+ rtcp_padding_set = 0; /* consume RTCP padding here */
}
/* delta_array / pkt_seq_array will be freed out of pinfo->pool */
@@ -1593,7 +1796,28 @@ dissect_rtcp_rtpfb_transport_cc( tvbuff_t *tvb, int offset, packet_info *pinfo,
}
static int
-dissect_rtcp_rtpfb_nack( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_item *top_item)
+dissect_rtcp_rtpfb_transport_cc( tvbuff_t *tvb, packet_info *pinfo, proto_tree *rtcp_tree, void *data _U_)
+{
+ int offset = 0;
+
+ int packet_len = tvb_get_guint16( tvb, offset + 2, ENC_BIG_ENDIAN);
+
+ offset = dissect_rtcp_rtpfb_header( tvb, offset, rtcp_tree);
+
+ /* SSRC of media source, 32 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
+
+ while (offset < packet_len)
+ {
+ offset = dissect_rtcp_rtpfb_transport_cc_fci( tvb, offset, pinfo, rtcp_tree, packet_len);
+ }
+
+ return offset;
+}
+
+static int
+dissect_rtcp_rtpfb_nack_fci( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_item *top_item)
{
int i;
int nack_num_frames_lost;
@@ -1632,86 +1856,77 @@ dissect_rtcp_rtpfb_nack( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto
return offset;
}
+static int
+dissect_rtcp_rtpfb_nack( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *rtcp_tree, void *data _U_)
+{
+ int offset = 0;
+ proto_item *top_item = proto_tree_get_parent(rtcp_tree);
+
+ int packet_len = tvb_get_guint16( tvb, offset + 2, ENC_BIG_ENDIAN);
+
+ offset = dissect_rtcp_rtpfb_header( tvb, offset, rtcp_tree);
+
+ /* SSRC of media source, 32 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
+
+ while (offset < packet_len)
+ {
+ offset = dissect_rtcp_rtpfb_nack_fci( tvb, offset, rtcp_tree, top_item);
+ }
+
+ return offset;
+}
+
+static int
+dissect_rtcp_rtpfb_undecoded( tvbuff_t *tvb, packet_info *pinfo, proto_tree *rtcp_tree, void *data _U_)
+{
+ int offset = 0;
+ int packet_len = tvb_get_guint16( tvb, offset + 2, ENC_BIG_ENDIAN);
+
+ offset = dissect_rtcp_rtpfb_header( tvb, offset, rtcp_tree);
+
+ /* SSRC of media source, 32 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
+
+ proto_item *ti = proto_tree_add_item(rtcp_tree, hf_rtcp_fci, tvb, offset, packet_len - offset, ENC_NA );
+ expert_add_info(pinfo, ti, &ei_rtcp_rtpfb_fmt_not_implemented);
+
+ return packet_len;
+}
static int
-dissect_rtcp_rtpfb( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, proto_item *top_item, guint *padding_set, packet_info *pinfo )
+dissect_rtcp_rtpfb( tvbuff_t *tvb, int offset, proto_tree *rtcp_tree, packet_info *pinfo)
{
- unsigned int counter;
unsigned int rtcp_rtpfb_fmt;
int packet_length;
- int start_offset = offset;
/* Transport layer FB message */
/* Feedback message type (FMT): 5 bits */
- proto_tree_add_item( rtcp_tree, hf_rtcp_rtpfb_fmt, tvb, offset, 1, ENC_BIG_ENDIAN );
rtcp_rtpfb_fmt = (tvb_get_guint8(tvb, offset) & 0x1f);
- offset++;
-
- /* Packet type, 8 bits */
- proto_tree_add_item( rtcp_tree, hf_rtcp_pt, tvb, offset, 1, ENC_BIG_ENDIAN );
- offset++;
/* Packet length in 32 bit words MINUS one, 16 bits */
- packet_length = (tvb_get_ntohs(tvb, offset) + 1) * 4;
- offset = dissect_rtcp_length_field(rtcp_tree, tvb, offset);
+ packet_length = (tvb_get_ntohs(tvb, offset + 2) + 1) * 4;
- /* SSRC of packet sender, 32 bits */
- proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_sender, tvb, offset, 4, ENC_BIG_ENDIAN );
- offset += 4;
-
- /* SSRC of media source, 32 bits */
- proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
- offset += 4;
+ tvbuff_t *subtvb = tvb_new_subset_length(tvb, offset, packet_length);
+ if (dissector_try_uint (rtcp_rtpfb_dissector_table, rtcp_rtpfb_fmt, subtvb, pinfo, rtcp_tree))
+ {
+ return offset + packet_length;
+ }
+ else /* RTPFB FMT types that are still unassigned by IANA */
+ {
+ int start_offset = offset;
- /* Check if we have a type specific dissector,
- * if we do, just return from here
- */
- if (packet_length > 12) {
- tvbuff_t *subtvb = tvb_new_subset_length(tvb, offset, packet_length - 12);
+ offset = dissect_rtcp_rtpfb_header( tvb, offset, rtcp_tree);
- if (dissector_try_uint (rtcp_rtpfb_dissector_table, rtcp_rtpfb_fmt,
- subtvb, pinfo, rtcp_tree))
- return start_offset + packet_length;
- }
+ /* SSRC of media source, 32 bits */
+ proto_tree_add_item( rtcp_tree, hf_rtcp_ssrc_media_source, tvb, offset, 4, ENC_BIG_ENDIAN );
+ offset += 4;
- /* Transport-Layer Feedback Message Elements */
- counter = 0;
- while ((offset - start_offset) < packet_length) {
- counter++;
- switch (rtcp_rtpfb_fmt)
- {
- case 1: // Generic negative acknowledgement (NACK)
- offset = dissect_rtcp_rtpfb_nack(tvb, offset, rtcp_tree, top_item);
- break;
- case 3: // Temporary Maximum Media Stream Bit Rate Request (TMMBR)
- offset = dissect_rtcp_rtpfb_tmmbr(tvb, offset, rtcp_tree, top_item, counter, false);
- break;
- case 4: // Temporary Maximum Media Stream Bit Rate Notification (TMMBN)
- offset = dissect_rtcp_rtpfb_tmmbr(tvb, offset, rtcp_tree, top_item, counter, true);
- break;
- case 15: // Transport-wide Congestion Control (Transport-cc)
- offset = dissect_rtcp_rtpfb_transport_cc( tvb, offset, pinfo, rtcp_tree, padding_set, packet_length);
- break;
- case 5: // RTCP Rapid Resynchronisation Request (RTCP-SR-REQ)
- case 6: // Rapid Acquisition of Multicast Sessions (RAMS)
- case 7: // Transport-Layer Third-Party Loss Early Indication (TLLEI)
- case 8: // RTCP ECN Feedback (RTCP-ECN-FB)
- case 9: // Media Pause/Resume (PAUSE-RESUME)
- case 10: // Delay Budget Information (DBI),
- case 11: // RTP Congestion Control Feedback (CCFB)
- {
- proto_item *ti = proto_tree_add_item(rtcp_tree, hf_rtcp_fci, tvb, offset, start_offset + packet_length - offset, ENC_NA );
- expert_add_info(pinfo, ti, &ei_rtcp_rtpfb_fmt_not_implemented);
- offset = start_offset + packet_length;
- break;
- }
- default: // Unknown FMT
- proto_tree_add_item(rtcp_tree, hf_rtcp_fci, tvb, offset, start_offset + packet_length - offset, ENC_NA );
- offset = start_offset + packet_length;
- }
+ proto_tree_add_item(rtcp_tree, hf_rtcp_fci, tvb, offset, start_offset + packet_length - offset, ENC_NA );
+ return offset + packet_length;
}
-
- return offset;
}
static int
@@ -2885,10 +3100,10 @@ dissect_rtcp_app_mccp(tvbuff_t* tvb, packet_info* pinfo, int offset, proto_tree*
proto_tree_add_item(sub_tree, hf_rtcp_mccp_floor_port_no, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
}
- /* Medis Port Number */
+ /* Media Port Number */
proto_tree_add_item(sub_tree, hf_rtcp_mccp_media_port_no, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
- /* IP Address*/
+ /* IP Address */
if (ip_ver == 0) {
proto_tree_add_item(sub_tree, hf_rtcp_mccp_ipv4, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
@@ -2943,9 +3158,8 @@ dissect_rtcp_app_mccp(tvbuff_t* tvb, packet_info* pinfo, int offset, proto_tree*
return offset;
}
static int
-dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree,
- unsigned int padding, int packet_len, proto_item *subtype_item, guint rtcp_subtype,
- guint32 app_length )
+dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree, int packet_len,
+ proto_item *subtype_item, guint rtcp_subtype, guint32 app_length )
{
const guint8* ascii_name;
@@ -2964,7 +3178,7 @@ dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree
}
/* Applications specific data */
- if (padding) {
+ if (rtcp_padding_set) {
/* If there's padding present, we have to remove that from the data part
* The last octet of the packet contains the length of the padding
*/
@@ -2983,7 +3197,7 @@ dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree
offset += 4;
packet_len -= 4;
/* Applications specific data */
- if (padding) {
+ if (rtcp_padding_set) {
/* If there's padding present, we have to remove that from the data part
* The last octet of the packet contains the length of the padding
*/
@@ -3023,7 +3237,7 @@ dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree
/* found subdissector - return tvb_reported_length */
offset += 4;
packet_len -= 4;
- if (padding) {
+ if (rtcp_padding_set) {
/* If there's padding present, we have to remove that from the data part
* The last octet of the packet contains the length of the padding
*/
@@ -3039,7 +3253,7 @@ dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree
offset += 4;
packet_len -= 4;
/* Applications specific data */
- if (padding) {
+ if (rtcp_padding_set) {
/* If there's padding present, we have to remove that from the data part
* The last octet of the packet contains the length of the padding
*/
@@ -3060,7 +3274,7 @@ dissect_rtcp_app( tvbuff_t *tvb,packet_info *pinfo, int offset, proto_tree *tree
offset += 4;
packet_len -= 4;
/* Applications specific data */
- if (padding) {
+ if (rtcp_padding_set) {
/* If there's padding present, we have to remove that from the data part
* The last octet of the packet contains the length of the padding
*/
@@ -3296,7 +3510,7 @@ static gboolean validate_xr_block_length(tvbuff_t *tvb, packet_info *pinfo, int
}
static int
-dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, unsigned int padding, gint packet_len)
+dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree, gint packet_len)
{
guint block_num;
@@ -3306,7 +3520,7 @@ dissect_rtcp_xr(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *tree,
return offset + packet_len;
}
- if (padding) {
+ if (rtcp_padding_set) {
/* If there's padding present, we have to remove that from the data part
* The last octet of the packet contains the length of the padding
*/
@@ -4433,7 +4647,6 @@ dissect_rtcp_common( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
{
proto_item *ti;
proto_tree *rtcp_tree = NULL;
- guint padding_set = 0;
proto_item *padding_item = NULL;
gint offset = 0;
gint total_packet_length = 0;
@@ -4572,7 +4785,7 @@ dissect_rtcp_common( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
show_setup_info(tvb, pinfo, rtcp_tree);
}
- if (padding_set)
+ if (rtcp_padding_set)
{
/* Padding can't yet be set, since there is another packet */
expert_add_info(pinfo, padding_item, &ei_rtcp_not_final_padding);
@@ -4582,7 +4795,7 @@ dissect_rtcp_common( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
proto_tree_add_item( rtcp_tree, hf_rtcp_version, tvb,
offset, 1, ENC_BIG_ENDIAN);
- padding_set = RTCP_PADDING( temp_byte );
+ rtcp_padding_set = RTCP_PADDING( temp_byte );
padding_offset = offset + packet_length - 1;
padding_item = proto_tree_add_boolean( rtcp_tree, hf_rtcp_padding, tvb,
@@ -4664,7 +4877,7 @@ dissect_rtcp_common( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
return tvb_reported_length(tvb);
}
- offset = dissect_rtcp_app( tvb, pinfo, offset,rtcp_tree, padding_set, packet_length - 8, subtype_item, rtcp_subtype, app_length);
+ offset = dissect_rtcp_app( tvb, pinfo, offset,rtcp_tree, packet_length - 8, subtype_item, rtcp_subtype, app_length);
}
break;
case RTCP_XR:
@@ -4675,7 +4888,7 @@ dissect_rtcp_common( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
offset++;
/* Packet length in 32 bit words MINUS one, 16 bits */
offset = dissect_rtcp_length_field(rtcp_tree, tvb, offset);
- offset = dissect_rtcp_xr( tvb, pinfo, offset, rtcp_tree, padding_set, packet_length - 4 );
+ offset = dissect_rtcp_xr( tvb, pinfo, offset, rtcp_tree, packet_length - 4 );
break;
case RTCP_AVB:
/* Subtype, 5 bits */
@@ -4719,7 +4932,7 @@ dissect_rtcp_common( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
offset = dissect_rtcp_nack( tvb, offset, rtcp_tree );
break;
case RTCP_RTPFB:
- offset = dissect_rtcp_rtpfb( tvb, offset, rtcp_tree, ti, &padding_set, pinfo );
+ offset = dissect_rtcp_rtpfb( tvb, offset, rtcp_tree, pinfo );
break;
case RTCP_PSFB:
offset = dissect_rtcp_psfb( tvb, offset, rtcp_tree, packet_length, ti, pinfo );
@@ -4739,7 +4952,7 @@ dissect_rtcp_common( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
* packet contains the length of the padding
* We only have to check for this at the end of the LAST RTCP message
*/
- if ( padding_set ) {
+ if ( rtcp_padding_set ) {
guint padding_length;
/* The last RTCP message in the packet has padding - find it.
*
@@ -4816,6 +5029,50 @@ dissect_rtcp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
return dissect_rtcp_common(tvb, pinfo, tree, data, FALSE);
}
+static void
+register_subdissectors_for_rtcp_rtpfb_dissector_table(void)
+{
+ proto_rtcp_rtpfb_nack = proto_register_protocol_in_name_only("Generic negative acknowledgement (NACK)", "RTCP NACK", "rtcp_rtpfb_nack", proto_rtcp, FT_BYTES);
+ proto_rtcp_rtpfb_tmmbr =
+ proto_register_protocol_in_name_only("Temporary Maximum Media Stream Bit Rate Request (TMMBR)", "RTCP TMMBR", "rtcp_rtpfb_tmmbr", proto_rtcp, FT_BYTES);
+ proto_rtcp_rtpfb_tmmbn =
+ proto_register_protocol_in_name_only("Temporary Maximum Media Stream Bit Rate Notification (TMMBN)", "RTCP TMMBN", "rtcp_rtpfb_tmmbn", proto_rtcp, FT_BYTES);
+ proto_rtcp_rtpfb_ccfb = proto_register_protocol_in_name_only("RTP Congestion Control Feedback (CCFB)", "RTCP CCFB", "rtcp_rtpfb_ccfb", proto_rtcp, FT_BYTES);
+ proto_rtcp_rtpfb_transport_cc =
+ proto_register_protocol_in_name_only("Transport-wide Congestion Control (Transport-cc)", "RTCP Transport-CC", "rtcp_rtpfb_transport_cc", proto_rtcp, FT_BYTES);
+ proto_rtcp_rtpfb_undecoded_fci = proto_register_protocol_in_name_only("Undecoded FCI", "Undecoded FCI", "rtcp_rtpfb_undecoded_fci", proto_rtcp, FT_BYTES);
+
+ rtcp_rtpfb_nack_handle = register_dissector("rtcp_rtpfb_nack", dissect_rtcp_rtpfb_nack, proto_rtcp_rtpfb_nack);
+ rtcp_rtpfb_tmmbr_handle = register_dissector("rtcp_rtpfb_tmmbr", dissect_rtcp_rtpfb_tmmbr, proto_rtcp_rtpfb_tmmbr);
+ rtcp_rtpfb_tmmbn_handle = register_dissector("rtcp_rtpfb_tmmbn", dissect_rtcp_rtpfb_tmmbn, proto_rtcp_rtpfb_tmmbn);
+ rtcp_rtpfb_ccfb_handle = register_dissector("rtcp_rtpfb_ccfb", dissect_rtcp_rtpfb_ccfb, proto_rtcp_rtpfb_ccfb);
+ rtcp_rtpfb_transport_cc_handle = register_dissector("rtcp_rtpfb_transport_cc", dissect_rtcp_rtpfb_transport_cc, proto_rtcp_rtpfb_transport_cc);
+ rtcp_rtpfb_undecoded_fci_handle = register_dissector("rtcp_rtpfb_undecoded_fci", dissect_rtcp_rtpfb_undecoded, proto_rtcp_rtpfb_undecoded_fci);
+}
+
+static void
+add_entries_for_rtcp_rtpfb_dissector_table(void)
+{
+ /* Below rtcp-rtpfb-fmt values (1, 3, 4, 11, 15) have full decoding support */
+ const uint32_t rtcp_rtpfb_nack_fmt = 1;
+ const uint32_t rtcp_rtpfb_tmmbr_fmt = 3;
+ const uint32_t rtcp_rtpfb_tmmbn_fmt = 4;
+ const uint32_t rtcp_rtpfb_ccfb_fmt = 11;
+ const uint32_t rtcp_rtpfb_transport_cc_fmt = 15;
+ dissector_add_uint("rtcp.rtpfb.fmt", rtcp_rtpfb_nack_fmt, rtcp_rtpfb_nack_handle);
+ dissector_add_uint("rtcp.rtpfb.fmt", rtcp_rtpfb_tmmbr_fmt, rtcp_rtpfb_tmmbr_handle);
+ dissector_add_uint("rtcp.rtpfb.fmt", rtcp_rtpfb_tmmbn_fmt, rtcp_rtpfb_tmmbn_handle);
+ dissector_add_uint("rtcp.rtpfb.fmt", rtcp_rtpfb_ccfb_fmt, rtcp_rtpfb_ccfb_handle);
+ dissector_add_uint("rtcp.rtpfb.fmt", rtcp_rtpfb_transport_cc_fmt, rtcp_rtpfb_transport_cc_handle);
+
+ /* Below rtcp-rtpfb-fmt values (2, 5 - 10) don't have support for FCI decoding */
+ int rtcp_rtpfb_fmt = 2;
+ dissector_add_uint("rtcp.rtpfb.fmt", rtcp_rtpfb_fmt, rtcp_rtpfb_undecoded_fci_handle);
+ for (rtcp_rtpfb_fmt = 5; rtcp_rtpfb_fmt < 11; rtcp_rtpfb_fmt++) {
+ dissector_add_uint("rtcp.rtpfb.fmt", rtcp_rtpfb_fmt, rtcp_rtpfb_undecoded_fci_handle);
+ }
+}
+
void
proto_register_rtcp(void)
{
@@ -4905,7 +5162,7 @@ proto_register_rtcp(void)
}
},
{
- &hf_rtcp_ssrc_media_source,
+ &hf_rtcp_ssrc_media_source,
{
"Media source SSRC",
"rtcp.mediassrc",
@@ -6480,6 +6737,90 @@ proto_register_rtcp(void)
}
},
{
+ &hf_rtcp_rtpfb_ccfb_beginseq,
+ {
+ "Begin Sequence Number",
+ "rtcp.rtpfb.ccfb.beginseq",
+ FT_UINT16,
+ BASE_DEC,
+ NULL,
+ 0x0,
+ NULL, HFILL
+ }
+ },
+ {
+ &hf_rtcp_rtpfb_ccfb_numreports,
+ {
+ "Number Of Reports",
+ "rtcp.rtpfb.ccfb.numreports",
+ FT_UINT16,
+ BASE_DEC,
+ NULL,
+ 0x0,
+ NULL, HFILL
+ }
+ },
+ {
+ &hf_rtcp_rtpfb_ccfb_received,
+ {
+ "Received",
+ "rtcp.rtpfb.ccfb.received",
+ FT_UINT16,
+ BASE_DEC,
+ NULL,
+ 0x8000,
+ NULL, HFILL
+ }
+ },
+ {
+ &hf_rtcp_rtpfb_ccfb_ecn,
+ {
+ "Explicit Congestion Notification",
+ "rtcp.rtpfb.ccfb.ecn",
+ FT_UINT16,
+ BASE_DEC,
+ NULL,
+ 0x6000,
+ NULL, HFILL
+ }
+ },
+ {
+ &hf_rtcp_rtpfb_ccfb_ato,
+ {
+ "Arrival Time Offset",
+ "rtcp.rtpfb.ccfb.ato",
+ FT_UINT16,
+ BASE_DEC,
+ NULL,
+ 0x1FFF,
+ NULL, HFILL
+ }
+ },
+ {
+ &hf_rtcp_rtpfb_ccfb_padding,
+ {
+ "Padding",
+ "rtcp.rtpfb.ccfb.padding",
+ FT_UINT16,
+ BASE_DEC,
+ NULL,
+ 0x0,
+ NULL, HFILL
+ }
+ },
+ {
+ &hf_rtcp_rtpfb_ccfb_timestamp,
+ {
+ "Timestamp",
+ "rtcp.rtpfb.ccfb.timestamp",
+ FT_UINT32,
+ BASE_HEX,
+ NULL,
+ 0x0,
+ NULL, HFILL
+ }
+ },
+ {
&hf_rtcp_fci,
{
"Feedback Control Information (FCI)",
@@ -8098,6 +8439,10 @@ proto_register_rtcp(void)
&ett_rtcp_bye,
&ett_rtcp_app,
&ett_rtcp_rtpfb,
+ &ett_rtcp_rtpfb_ccfb_fci,
+ &ett_rtcp_rtpfb_ccfb_media_source,
+ &ett_rtcp_rtpfb_ccfb_metric_blocks,
+ &ett_rtcp_rtpfb_ccfb_metric_block,
&ett_rtcp_psfb,
&ett_rtcp_xr,
&ett_rtcp_fir,
@@ -8140,7 +8485,8 @@ proto_register_rtcp(void)
{ &ei_rtcp_block_length, { "rtcp.block_length.invalid", PI_PROTOCOL, PI_WARN, "Block length is greater than packet length", EXPFILL }},
{ &ei_srtcp_encrypted_payload, { "srtcp.encrypted_payload", PI_UNDECODED, PI_WARN, "Encrypted RTCP Payload - not dissected", EXPFILL }},
{ &ei_rtcp_rtpfb_transportcc_bad, { "rtcp.rtpfb.transportcc_bad", PI_MALFORMED, PI_WARN, "Too many packet chunks (more than packet status count)", EXPFILL }},
- { &ei_rtcp_rtpfb_fmt_not_implemented, { "rtcp.rfpfb.fmt_not_implemented", PI_UNDECODED, PI_WARN, "RCPFB FMT not dissected, contact Wireshark developers if you want this to be supported", EXPFILL }},
+ { &ei_rtcp_rtpfb_fmt_not_implemented, { "rtcp.rtpfb.fmt_not_implemented", PI_UNDECODED, PI_WARN, "RTPFB FMT not dissected, contact Wireshark developers if you want this to be supported", EXPFILL }},
+ { &ei_rtcp_rtpfb_ccfb_too_many_reports, { "rtcp.mcptt.ccfb.invalid_pkt", PI_UNDECODED, PI_WARN, "RTPFB CCFB report block must not include more than 2^14 metric blocks", EXPFILL }},
{ &ei_rtcp_mcptt_unknown_fld, { "rtcp.mcptt.unknown_fld", PI_PROTOCOL, PI_WARN, "Unknown field", EXPFILL }},
{ &ei_rtcp_mcptt_location_type, { "rtcp.mcptt.location_type_uk", PI_PROTOCOL, PI_WARN, "Unknown location type", EXPFILL }},
{ &ei_rtcp_appl_extra_bytes, { "rtcp.appl.extra_bytes", PI_PROTOCOL, PI_ERROR, "Extra bytes detected", EXPFILL }},
@@ -8206,8 +8552,9 @@ proto_register_rtcp(void)
rtcp_pse_dissector_table = register_dissector_table("rtcp.pse", "RTCP Profile Specific Extension", proto_rtcp, FT_UINT16, BASE_DEC);
proto_rtcp_ms_pse = proto_register_protocol_in_name_only("Microsoft RTCP Profile Specific Extensions", "MS-RTP PSE", "rtcp_ms_pse", proto_rtcp, FT_BYTES);
+ register_subdissectors_for_rtcp_rtpfb_dissector_table();
- ms_pse_handle = register_dissector("rctp_ms_pse", dissect_ms_profile_specific_extensions, proto_rtcp_ms_pse);
+ ms_pse_handle = register_dissector("rtcp_ms_pse", dissect_ms_profile_specific_extensions, proto_rtcp_ms_pse);
}
void
@@ -8225,6 +8572,8 @@ proto_reg_handoff_rtcp(void)
dissector_add_uint("rtcp.pse", rtcp_ms_profile_extension_vals[idx].value, ms_pse_handle);
}
+ add_entries_for_rtcp_rtpfb_dissector_table();
+
heur_dissector_add( "udp", dissect_rtcp_heur, "RTCP over UDP", "rtcp_udp", proto_rtcp, HEURISTIC_ENABLE);
heur_dissector_add("stun", dissect_rtcp_heur, "RTCP over TURN", "rtcp_stun", proto_rtcp, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-rtitcp.c b/epan/dissectors/packet-rtitcp.c
index a91d3e6fc2..fd64ab9e00 100644
--- a/epan/dissectors/packet-rtitcp.c
+++ b/epan/dissectors/packet-rtitcp.c
@@ -170,7 +170,7 @@ static gint ett_rtitcp_message;
static gint ett_rtitcp_attributes_list;
static gint ett_rtitcp_attribute;
-static header_field_info *hfi_rtitcp = NULL;
+static header_field_info *hfi_rtitcp;
static heur_dissector_list_t heur_subdissector_list;
static const value_string ctrl_message_types_vals[] = {
diff --git a/epan/dissectors/packet-rtmpt.c b/epan/dissectors/packet-rtmpt.c
index 34370fa83c..988d87a1a1 100644
--- a/epan/dissectors/packet-rtmpt.c
+++ b/epan/dissectors/packet-rtmpt.c
@@ -139,7 +139,7 @@ static dissector_handle_t amf_handle;
static dissector_handle_t rtmpt_tcp_handle;
static dissector_handle_t rtmpt_http_handle;
-static gboolean rtmpt_desegment = TRUE;
+static bool rtmpt_desegment = true;
/* Native Bandwidth Detection (using the checkBandwidth(), onBWCheck(),
* onBWDone() calls) transmits a series of increasing size packets over
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 5f674b5827..2599f35c94 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -120,7 +120,7 @@ struct _rtp_conversation_info
struct srtp_info* srtp_info; /* SRTP context */
bta2dp_codec_info_t* bta2dp_info;
btvdp_codec_info_t* btvdp_info;
- wmem_array_t* rtp_sdp_setup_info_list; /**> List with data from all SDP occurencies for this steram holding a call ID)*/
+ wmem_array_t* rtp_sdp_setup_info_list; /**> List with data from all SDP occurrences for this stream holding a call ID)*/
};
typedef struct {
@@ -301,15 +301,15 @@ static void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
static struct _rtp_packet_info *get_rtp_packet_info(packet_info *pinfo, struct _rtp_info *rtp_info);
/* Preferences bool to control whether or not setup info should be shown */
-static gboolean global_rtp_show_setup_info = TRUE;
+static bool global_rtp_show_setup_info = true;
/* desegment RTP streams */
-static gboolean desegment_rtp = TRUE;
+static bool desegment_rtp = true;
/* RFC2198 Redundant Audio Data */
#define RFC2198_DEFAULT_PT_RANGE "99"
-static gboolean rfc2198_deencapsulate = TRUE;
+static bool rfc2198_deencapsulate = true;
@@ -742,7 +742,7 @@ rtp_dump_dyn_payload(rtp_dyn_payload_t *rtp_dyn_payload) {
single registered callback walk this GHashTable and destroy each member as well as this
GHashTable.
*/
-static GHashTable *rtp_dyn_payloads = NULL;
+static GHashTable *rtp_dyn_payloads;
static gboolean
fmtp_free(gpointer key, gpointer value, gpointer user_data)
@@ -1184,7 +1184,7 @@ srtp_add_address(packet_info *pinfo, const port_type ptype, address *addr, int p
struct srtp_info *srtp_info, sdp_setup_info_t *setup_info)
{
address null_addr;
- conversation_t* p_conv, *sdp_conv;
+ conversation_t* p_conv;
struct _rtp_conversation_info *p_conv_data;
wmem_array_t *rtp_conv_info_list = NULL;
wmem_map_t *ssrc_number_space = NULL;
@@ -1322,10 +1322,14 @@ srtp_add_address(packet_info *pinfo, const port_type ptype, address *addr, int p
wmem_array_append(p_conv_data->rtp_sdp_setup_info_list, setup_info, 1);
}
}
- sdp_conv = find_or_create_conversation(pinfo);
- if (sdp_conv && p_conv_data->rtp_sdp_setup_info_list) {
- /* Add the collected information to the SDP conversation */
- conversation_add_proto_data(sdp_conv, proto_sdp, p_conv_data->rtp_sdp_setup_info_list);
+ if (p_conv_data->rtp_sdp_setup_info_list) {
+ /* Convey the collected information to SDP */
+ /* This is pinfo->pool because this function might not have been called
+ * by SDP, in which case we don't need to save it, and SDP might have
+ * a file scoped transport info to store it in (using the Offer/Answer
+ * model, e.g. with SIP.)
+ */
+ p_add_proto_data(pinfo->pool, pinfo, proto_sdp, 0, p_conv_data->rtp_sdp_setup_info_list);
}
}
diff --git a/epan/dissectors/packet-rtpproxy.c b/epan/dissectors/packet-rtpproxy.c
index 8682535eb5..45040cccd3 100644
--- a/epan/dissectors/packet-rtpproxy.c
+++ b/epan/dissectors/packet-rtpproxy.c
@@ -276,14 +276,14 @@ static gint ett_rtpproxy_ng_bencode;
/* Default values */
#define RTPPROXY_PORT "22222" /* Not IANA registered */
-static range_t* rtpproxy_tcp_range = NULL;
-static range_t* rtpproxy_udp_range = NULL;
+static range_t* rtpproxy_tcp_range;
+static range_t* rtpproxy_udp_range;
-static gboolean rtpproxy_establish_conversation = TRUE;
+static bool rtpproxy_establish_conversation = true;
/* See - https://www.opensips.org/html/docs/modules/1.10.x/rtpproxy.html#id293555 */
/* See - http://www.kamailio.org/docs/modules/4.3.x/modules/rtpproxy.html#idp15794952 */
static guint rtpproxy_timeout = 1000;
-static nstime_t rtpproxy_timeout_ns = NSTIME_INIT_ZERO;
+static nstime_t rtpproxy_timeout_ns;
void proto_reg_handoff_rtpproxy(void);
diff --git a/epan/dissectors/packet-rtps-processed.c b/epan/dissectors/packet-rtps-processed.c
index 6f5d76d921..146c1bcf4e 100644
--- a/epan/dissectors/packet-rtps-processed.c
+++ b/epan/dissectors/packet-rtps-processed.c
@@ -87,12 +87,12 @@ static gint ett_rtpsproc_advanced_frame0;
static gint ett_rtpsproc_advanced_frame1;
/* Initialize the protocol and registered fields */
-static header_field_info *rtpsproc_hf = NULL;
+static header_field_info *rtpsproc_hf;
static int hf_rtpsproc_param_id;
static int hf_rtpsproc_param_length;
/* Used for caching a handle to the RTPS dissector */
-static dissector_handle_t rtps_handle = NULL;
+static dissector_handle_t rtps_handle;
/* ========================================================================== */
/* Dissector */
diff --git a/epan/dissectors/packet-rtps-virtual-transport.c b/epan/dissectors/packet-rtps-virtual-transport.c
index 38df5b9ef2..5385afd154 100644
--- a/epan/dissectors/packet-rtps-virtual-transport.c
+++ b/epan/dissectors/packet-rtps-virtual-transport.c
@@ -127,7 +127,7 @@ static gint ett_rtpsvt_monitoring_sn;
static gint ett_rtpsvt_frame;
/* Initialize the protocol and registered fields */
-static header_field_info *rtpsvt_hf = NULL;
+static header_field_info *rtpsvt_hf;
static gint hf_rtpsvt_version;
static gint hf_rtpsvt_version_major;
static gint hf_rtpsvt_version_minor;
@@ -598,7 +598,7 @@ static gint dissect_parameter_transport_rtps_type(
const gchar *title_tree = "Source address";
gchar addr[COL_MAX_LEN];
ws_in6_addr addr_raw;
- const guint8 bytes_zeroed[12] = {0};
+ static const guint8 bytes_zeroed[12] = {0};
tvb_get_ipv6(tvb, OFFSET_TO_VAL, &addr_raw);
/* shared memory pid or address? */
@@ -751,7 +751,7 @@ static gint dissect_parameter_transport_rtps_type(
const gchar *title_tree = "Destination address";
gchar addr[COL_MAX_LEN];
ws_in6_addr addr_raw;
- const guint8 bytes_zeroed[12] = {0};
+ static const guint8 bytes_zeroed[12] = {0};
tvb_get_ipv6(tvb, OFFSET_TO_VAL, &addr_raw);
/* shared memory pid or address? */
diff --git a/epan/dissectors/packet-rtps.c b/epan/dissectors/packet-rtps.c
index e83686ce6a..b00addf2bf 100644
--- a/epan/dissectors/packet-rtps.c
+++ b/epan/dissectors/packet-rtps.c
@@ -244,10 +244,10 @@ static const value_string type_object_kind [] = {
{ 0, NULL }
};
-static wmem_map_t * dissection_infos = NULL;
-static wmem_map_t * builtin_dissection_infos = NULL;
-static wmem_map_t * union_member_mappings = NULL;
-static wmem_map_t * mutable_member_mappings = NULL;
+static wmem_map_t * dissection_infos;
+static wmem_map_t * builtin_dissection_infos;
+static wmem_map_t * union_member_mappings;
+static wmem_map_t * mutable_member_mappings;
/***************************************************************************/
/* Preferences */
@@ -255,12 +255,12 @@ static wmem_map_t * mutable_member_mappings = NULL;
static guint rtps_max_batch_samples_dissected = 16;
static guint rtps_max_data_type_elements = DISSECTION_INFO_MAX_ELEMENTS_DEFAULT_VALUE;
static guint rtps_max_array_data_type_elements = DISSECTION_INFO_ARRAY_MAX_ELEMENTS_DEFAULT_VALUE;
-static gboolean enable_topic_info = TRUE;
-static gboolean enable_rtps_reassembly = FALSE;
-static gboolean enable_user_data_dissection = FALSE;
-static gboolean enable_max_array_data_type_elements = TRUE;
-static gboolean enable_max_data_type_elements = TRUE;
-static gboolean enable_rtps_crc_check = FALSE;
+static bool enable_topic_info = true;
+static bool enable_rtps_reassembly;
+static bool enable_user_data_dissection;
+static bool enable_max_array_data_type_elements = true;
+static bool enable_max_data_type_elements = true;
+static bool enable_rtps_crc_check;
static dissector_table_t rtps_type_name_table;
/***************************************************************************/
@@ -2740,7 +2740,7 @@ typedef struct _coherent_set_track {
} coherent_set_track;
static coherent_set_track coherent_set_tracking;
-static wmem_map_t * registry = NULL;
+static wmem_map_t * registry;
static reassembly_table rtps_reassembly_table;
static wmem_map_t *discovered_participants_domain_ids;
@@ -7136,7 +7136,7 @@ static gboolean dissect_parameter_sequence_rti_dds(proto_tree *rtps_parameter_tr
compression_plugin_class = tvb_get_guint32(tvb, offset, encoding);
decompressed_size = tvb_get_guint32(tvb, offset + 4, encoding);
- /* Get the numer of bytes (elements) in the sequence */
+ /* Get the number of bytes (elements) in the sequence */
compressed_size = tvb_get_guint32(tvb, offset + 8, encoding);
switch(compression_plugin_class) {
@@ -14029,7 +14029,7 @@ static void initialize_instance_state_data_response_dissection_info(builtin_type
* };
*/
- /* All dissection_infos are added to the "dissction_infos" map */
+ /* All dissection_infos are added to the "dissection_infos" map */
/* value */
g_strlcpy(_builtin_types_dissection_data->dissection_infos.value_dissection_info.member_name, "value", MAX_TOPIC_AND_TYPE_LENGTH);
diff --git a/epan/dissectors/packet-rtse.c b/epan/dissectors/packet-rtse.c
index edf16d1fb1..b980fad66d 100644
--- a/epan/dissectors/packet-rtse.c
+++ b/epan/dissectors/packet-rtse.c
@@ -44,10 +44,10 @@ static int proto_rtse;
static gboolean open_request=FALSE;
static guint32 app_proto=0;
-static proto_tree *top_tree=NULL;
+static proto_tree *top_tree;
/* Preferences */
-static gboolean rtse_reassemble = TRUE;
+static bool rtse_reassemble = true;
static int hf_rtse_rtorq_apdu; /* RTORQapdu */
static int hf_rtse_rtoac_apdu; /* RTOACapdu */
@@ -76,21 +76,21 @@ static int hf_rtse_octetString; /* T_octetString */
/* Initialize the subtree pointers */
static gint ett_rtse;
-static gint ett_rtse_RTSE_apdus;
-static gint ett_rtse_RTORQapdu;
-static gint ett_rtse_RTOACapdu;
-static gint ett_rtse_RTORJapdu;
-static gint ett_rtse_RTABapdu;
-static gint ett_rtse_ConnectionData;
-static gint ett_rtse_SessionConnectionIdentifier;
-static gint ett_rtse_CallingSSuserReference;
+static int ett_rtse_RTSE_apdus;
+static int ett_rtse_RTORQapdu;
+static int ett_rtse_RTOACapdu;
+static int ett_rtse_RTORJapdu;
+static int ett_rtse_RTABapdu;
+static int ett_rtse_ConnectionData;
+static int ett_rtse_SessionConnectionIdentifier;
+static int ett_rtse_CallingSSuserReference;
static expert_field ei_rtse_dissector_oid_not_implemented;
static expert_field ei_rtse_unknown_rtse_pdu;
static expert_field ei_rtse_abstract_syntax;
-static dissector_table_t rtse_oid_dissector_table=NULL;
-static dissector_handle_t rtse_handle = NULL;
+static dissector_table_t rtse_oid_dissector_table;
+static dissector_handle_t rtse_handle;
static gint ett_rtse_unknown;
static reassembly_table rtse_reassembly_table;
@@ -713,7 +713,7 @@ dissect_rtse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
if (conversation != NULL) {
rtse_id = conversation->conv_index;
}
- session->rtse_reassemble = TRUE;
+ session->rtse_reassemble = true;
}
if (rtse_reassemble && session->spdu_type == SES_MAJOR_SYNC_POINT) {
frag_msg = fragment_end_seq_next (&rtse_reassembly_table,
diff --git a/epan/dissectors/packet-rtsp.c b/epan/dissectors/packet-rtsp.c
index 4879317885..27de5699b1 100644
--- a/epan/dissectors/packet-rtsp.c
+++ b/epan/dissectors/packet-rtsp.c
@@ -232,14 +232,14 @@ void proto_reg_handoff_rtsp(void);
* desegmentation of RTSP headers
* (when we are over TCP or another protocol providing the desegmentation API)
*/
-static gboolean rtsp_desegment_headers = TRUE;
+static bool rtsp_desegment_headers = true;
/*
* desegmentation of RTSP bodies
* (when we are over TCP or another protocol providing the desegmentation API)
* TODO let the user filter on content-type the bodies he wants desegmented
*/
-static gboolean rtsp_desegment_body = TRUE;
+static bool rtsp_desegment_body = true;
/* http://www.iana.org/assignments/port-numbers lists two rtsp ports.
* In Addition RTSP uses display port over Wi-Fi Display: 7236.
diff --git a/epan/dissectors/packet-rua.c b/epan/dissectors/packet-rua.c
index 4761b4633f..6f74f790c9 100644
--- a/epan/dissectors/packet-rua.c
+++ b/epan/dissectors/packet-rua.c
@@ -140,42 +140,42 @@ static int ett_rua;
/* initialise sub-dissector handles */
static dissector_handle_t ranap_handle = NULL;
-static gint ett_rua_PrivateIE_ID;
-static gint ett_rua_ProtocolIE_Container;
-static gint ett_rua_ProtocolIE_Field;
-static gint ett_rua_ProtocolExtensionContainer;
-static gint ett_rua_ProtocolExtensionField;
-static gint ett_rua_PrivateIE_Container;
-static gint ett_rua_PrivateIE_Field;
-static gint ett_rua_IntraDomainNasNodeSelector;
-static gint ett_rua_T_version;
-static gint ett_rua_T_release99;
-static gint ett_rua_T_cn_Type;
-static gint ett_rua_T_later;
-static gint ett_rua_Gsm_map_IDNNS;
-static gint ett_rua_T_routingbasis;
-static gint ett_rua_T_localPTMSI;
-static gint ett_rua_T_tMSIofsamePLMN;
-static gint ett_rua_T_tMSIofdifferentPLMN;
-static gint ett_rua_T_iMSIresponsetopaging;
-static gint ett_rua_T_iMSIcauseUEinitiatedEvent;
-static gint ett_rua_T_iMEI;
-static gint ett_rua_T_spare2;
-static gint ett_rua_T_spare1;
-static gint ett_rua_Cause;
-static gint ett_rua_CriticalityDiagnostics;
-static gint ett_rua_CriticalityDiagnostics_IE_List;
-static gint ett_rua_CriticalityDiagnostics_IE_List_item;
-static gint ett_rua_Connect;
-static gint ett_rua_DirectTransfer;
-static gint ett_rua_Disconnect;
-static gint ett_rua_ConnectionlessTransfer;
-static gint ett_rua_ErrorIndication;
-static gint ett_rua_PrivateMessage;
-static gint ett_rua_RUA_PDU;
-static gint ett_rua_InitiatingMessage;
-static gint ett_rua_SuccessfulOutcome;
-static gint ett_rua_UnsuccessfulOutcome;
+static int ett_rua_PrivateIE_ID;
+static int ett_rua_ProtocolIE_Container;
+static int ett_rua_ProtocolIE_Field;
+static int ett_rua_ProtocolExtensionContainer;
+static int ett_rua_ProtocolExtensionField;
+static int ett_rua_PrivateIE_Container;
+static int ett_rua_PrivateIE_Field;
+static int ett_rua_IntraDomainNasNodeSelector;
+static int ett_rua_T_version;
+static int ett_rua_T_release99;
+static int ett_rua_T_cn_Type;
+static int ett_rua_T_later;
+static int ett_rua_Gsm_map_IDNNS;
+static int ett_rua_T_routingbasis;
+static int ett_rua_T_localPTMSI;
+static int ett_rua_T_tMSIofsamePLMN;
+static int ett_rua_T_tMSIofdifferentPLMN;
+static int ett_rua_T_iMSIresponsetopaging;
+static int ett_rua_T_iMSIcauseUEinitiatedEvent;
+static int ett_rua_T_iMEI;
+static int ett_rua_T_spare2;
+static int ett_rua_T_spare1;
+static int ett_rua_Cause;
+static int ett_rua_CriticalityDiagnostics;
+static int ett_rua_CriticalityDiagnostics_IE_List;
+static int ett_rua_CriticalityDiagnostics_IE_List_item;
+static int ett_rua_Connect;
+static int ett_rua_DirectTransfer;
+static int ett_rua_Disconnect;
+static int ett_rua_ConnectionlessTransfer;
+static int ett_rua_ErrorIndication;
+static int ett_rua_PrivateMessage;
+static int ett_rua_RUA_PDU;
+static int ett_rua_InitiatingMessage;
+static int ett_rua_SuccessfulOutcome;
+static int ett_rua_UnsuccessfulOutcome;
/* Global variables */
static guint32 ProcedureCode;
diff --git a/epan/dissectors/packet-rudp.c b/epan/dissectors/packet-rudp.c
index d4c0bde570..e7edfcd5b5 100644
--- a/epan/dissectors/packet-rudp.c
+++ b/epan/dissectors/packet-rudp.c
@@ -58,7 +58,7 @@ static int hf_rudp_cksum;
static gint ett_rudp;
static gint ett_rudp_flags;
-static dissector_handle_t sm_handle = NULL;
+static dissector_handle_t sm_handle;
static int
dissect_rudp(tvbuff_t *tvb, packet_info *pinfo _U_ , proto_tree *tree, void* data _U_)
diff --git a/epan/dissectors/packet-rx.c b/epan/dissectors/packet-rx.c
index f1f98d4780..b4de0f93a1 100644
--- a/epan/dissectors/packet-rx.c
+++ b/epan/dissectors/packet-rx.c
@@ -568,7 +568,7 @@ dissect_rx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *dat
break;
}
- return(tvb_captured_length(tvb));
+ return tvb_captured_length(tvb);
}
void
diff --git a/epan/dissectors/packet-s101.c b/epan/dissectors/packet-s101.c
index d47b196df1..67a98622df 100644
--- a/epan/dissectors/packet-s101.c
+++ b/epan/dissectors/packet-s101.c
@@ -64,7 +64,7 @@ static int hf_S101_eof;
static int hf_S101_error;
static dissector_handle_t S101_handle;
-static dissector_handle_t glow_handle = NULL;
+static dissector_handle_t glow_handle;
static reassembly_table s101_data_reassembly_table;
typedef struct _s101_fragment_t {
@@ -149,7 +149,7 @@ static guint32 get_fragment_pdu_id(packet_info *pinfo) {
return id;
}
-static wmem_map_t* s101_fragment_info_hash = NULL;
+static wmem_map_t* s101_fragment_info_hash;
static s101_fragment_t* new_fragment_info(packet_info *pinfo) {
s101_fragment_t* fi = wmem_new(wmem_file_scope(), s101_fragment_t);
diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c
index 572c20c303..b176bd58b7 100644
--- a/epan/dissectors/packet-s1ap.c
+++ b/epan/dissectors/packet-s1ap.c
@@ -15,7 +15,7 @@
*
* Based on the RANAP dissector
*
- * References: 3GPP TS 36.413 V17.5.0 (2023-06)
+ * References: 3GPP TS 36.413 V17.6.0 (2024-03)
*/
#include "config.h"
@@ -627,7 +627,10 @@ static int hf_s1ap_rAT_RestrictionInformation_LEO;
static int hf_s1ap_rAT_RestrictionInformation_MEO;
static int hf_s1ap_rAT_RestrictionInformation_GEO;
static int hf_s1ap_rAT_RestrictionInformation_OTHERSAT;
-static int hf_s1ap_rAT_RestrictionInformation_Reserved;
+static int hf_s1ap_rAT_RestrictionInformation_NR_LEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_MEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_GEO;
+static int hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT;
static int hf_s1ap_Additional_GUTI_PDU; /* Additional_GUTI */
static int hf_s1ap_AdditionalRRMPriorityIndex_PDU; /* AdditionalRRMPriorityIndex */
static int hf_s1ap_AerialUEsubscriptionInformation_PDU; /* AerialUEsubscriptionInformation */
@@ -1589,430 +1592,430 @@ static int ett_s1ap_NB_IoT_RLF_Report_Container;
static int ett_s1ap_MDT_ConfigurationNR;
static int ett_s1ap_IntersystemSONConfigurationTransfer;
static int ett_s1ap_rAT_RestrictionInformation;
-static gint ett_s1ap_PrivateIE_ID;
-static gint ett_s1ap_ProtocolIE_Container;
-static gint ett_s1ap_ProtocolIE_Field;
-static gint ett_s1ap_ProtocolIE_ContainerList;
-static gint ett_s1ap_ProtocolExtensionContainer;
-static gint ett_s1ap_ProtocolExtensionField;
-static gint ett_s1ap_PrivateIE_Container;
-static gint ett_s1ap_PrivateIE_Field;
-static gint ett_s1ap_Additional_GUTI;
-static gint ett_s1ap_AreaScopeOfMDT;
-static gint ett_s1ap_AreaScopeOfQMC;
-static gint ett_s1ap_AllocationAndRetentionPriority;
-static gint ett_s1ap_AssistanceDataForCECapableUEs;
-static gint ett_s1ap_AssistanceDataForPaging;
-static gint ett_s1ap_AssistanceDataForRecommendedCells;
-static gint ett_s1ap_Bearers_SubjectToStatusTransferList;
-static gint ett_s1ap_Bearers_SubjectToStatusTransfer_Item;
-static gint ett_s1ap_Bearers_SubjectToEarlyStatusTransferList;
-static gint ett_s1ap_Bearers_SubjectToEarlyStatusTransfer_Item;
-static gint ett_s1ap_BluetoothMeasurementConfiguration;
-static gint ett_s1ap_BluetoothMeasConfigNameList;
-static gint ett_s1ap_BPLMNs;
-static gint ett_s1ap_BroadcastCancelledAreaList;
-static gint ett_s1ap_BroadcastCompletedAreaList;
-static gint ett_s1ap_CancelledCellinEAI;
-static gint ett_s1ap_CancelledCellinEAI_Item;
-static gint ett_s1ap_CancelledCellinTAI;
-static gint ett_s1ap_CancelledCellinTAI_Item;
-static gint ett_s1ap_Cause;
-static gint ett_s1ap_CellIdentifierAndCELevelForCECapableUEs;
-static gint ett_s1ap_CellID_Broadcast;
-static gint ett_s1ap_CellID_Broadcast_Item;
-static gint ett_s1ap_CellID_Cancelled;
-static gint ett_s1ap_CellID_Cancelled_Item;
-static gint ett_s1ap_CellBasedMDT;
-static gint ett_s1ap_CellIdListforMDT;
-static gint ett_s1ap_CellBasedQMC;
-static gint ett_s1ap_CellIdListforQMC;
-static gint ett_s1ap_Cdma2000OneXSRVCCInfo;
-static gint ett_s1ap_CellType;
-static gint ett_s1ap_CGI;
-static gint ett_s1ap_CNTypeRestrictions;
-static gint ett_s1ap_CNTypeRestrictions_Item;
-static gint ett_s1ap_ConnectedengNBList;
-static gint ett_s1ap_ConnectedengNBItem;
-static gint ett_s1ap_ContextatSource;
-static gint ett_s1ap_CSG_IdList;
-static gint ett_s1ap_CSG_IdList_Item;
-static gint ett_s1ap_COUNTvalue;
-static gint ett_s1ap_COUNTValueExtended;
-static gint ett_s1ap_COUNTvaluePDCP_SNlength18;
-static gint ett_s1ap_CriticalityDiagnostics;
-static gint ett_s1ap_CriticalityDiagnostics_IE_List;
-static gint ett_s1ap_CriticalityDiagnostics_IE_Item;
-static gint ett_s1ap_DAPSRequestInfo;
-static gint ett_s1ap_DAPSResponseInfoList;
-static gint ett_s1ap_DAPSResponseInfoItem;
-static gint ett_s1ap_DAPSResponseInfo;
-static gint ett_s1ap_ServedDCNs;
-static gint ett_s1ap_ServedDCNsItem;
-static gint ett_s1ap_DL_CP_SecurityInformation;
-static gint ett_s1ap_DLCOUNT_PDCP_SNlength;
-static gint ett_s1ap_ECGIList;
-static gint ett_s1ap_PWSfailedECGIList;
-static gint ett_s1ap_EmergencyAreaIDList;
-static gint ett_s1ap_EmergencyAreaID_Broadcast;
-static gint ett_s1ap_EmergencyAreaID_Broadcast_Item;
-static gint ett_s1ap_EmergencyAreaID_Cancelled;
-static gint ett_s1ap_EmergencyAreaID_Cancelled_Item;
-static gint ett_s1ap_CompletedCellinEAI;
-static gint ett_s1ap_CompletedCellinEAI_Item;
-static gint ett_s1ap_ECGI_List;
-static gint ett_s1ap_EmergencyAreaIDListForRestart;
-static gint ett_s1ap_ENB_EarlyStatusTransfer_TransparentContainer;
-static gint ett_s1ap_ENB_ID;
-static gint ett_s1ap_GERAN_Cell_ID;
-static gint ett_s1ap_Global_ENB_ID;
-static gint ett_s1ap_Global_en_gNB_ID;
-static gint ett_s1ap_GUMMEIList;
-static gint ett_s1ap_ENB_StatusTransfer_TransparentContainer;
-static gint ett_s1ap_ENBX2TLAs;
-static gint ett_s1ap_EN_DCSONConfigurationTransfer;
-static gint ett_s1ap_EN_DCSONTransferType;
-static gint ett_s1ap_EN_DCTransferTypeRequest;
-static gint ett_s1ap_EN_DCTransferTypeReply;
-static gint ett_s1ap_EN_DCSONeNBIdentification;
-static gint ett_s1ap_EN_DCSONengNBIdentification;
-static gint ett_s1ap_EPLMNs;
-static gint ett_s1ap_E_RABInformationList;
-static gint ett_s1ap_E_RABInformationListItem;
-static gint ett_s1ap_E_RABList;
-static gint ett_s1ap_E_RABItem;
-static gint ett_s1ap_E_RABLevelQoSParameters;
-static gint ett_s1ap_E_RABSecurityResultList;
-static gint ett_s1ap_E_RABSecurityResultItem;
-static gint ett_s1ap_E_RABUsageReportList;
-static gint ett_s1ap_E_RABUsageReportItem;
-static gint ett_s1ap_EUTRAN_CGI;
-static gint ett_s1ap_EventL1LoggedMDTConfig;
-static gint ett_s1ap_EventTrigger;
-static gint ett_s1ap_ExpectedUEBehaviour;
-static gint ett_s1ap_ExpectedUEActivityBehaviour;
-static gint ett_s1ap_FiveGSTAI;
-static gint ett_s1ap_ForbiddenTAs;
-static gint ett_s1ap_ForbiddenTAs_Item;
-static gint ett_s1ap_ForbiddenTACs;
-static gint ett_s1ap_ForbiddenLAs;
-static gint ett_s1ap_ForbiddenLAs_Item;
-static gint ett_s1ap_ForbiddenLACs;
-static gint ett_s1ap_GBR_QosInformation;
-static gint ett_s1ap_GUMMEI;
-static gint ett_s1ap_HandoverRestrictionList;
-static gint ett_s1ap_ImmediateMDT;
-static gint ett_s1ap_InformationOnRecommendedCellsAndENBsForPaging;
-static gint ett_s1ap_IntersystemMeasurementConfiguration;
-static gint ett_s1ap_InterSystemMeasurementParameters;
-static gint ett_s1ap_InterSystemMeasurementList;
-static gint ett_s1ap_InterSystemMeasurementItem;
-static gint ett_s1ap_LAI;
-static gint ett_s1ap_LastVisitedCell_Item;
-static gint ett_s1ap_LastVisitedEUTRANCellInformation;
-static gint ett_s1ap_LastVisitedPSCellList;
-static gint ett_s1ap_LastVisitedPSCellInformation;
-static gint ett_s1ap_LastVisitedGERANCellInformation;
-static gint ett_s1ap_ListeningSubframePattern;
-static gint ett_s1ap_LoggedMDT;
-static gint ett_s1ap_LoggedMBSFNMDT;
-static gint ett_s1ap_LoggedMDTTrigger;
-static gint ett_s1ap_LTE_NTN_TAI_Information;
-static gint ett_s1ap_M3Configuration;
-static gint ett_s1ap_M4Configuration;
-static gint ett_s1ap_M5Configuration;
-static gint ett_s1ap_M6Configuration;
-static gint ett_s1ap_M7Configuration;
-static gint ett_s1ap_MDT_Configuration;
-static gint ett_s1ap_MBSFN_ResultToLog;
-static gint ett_s1ap_MBSFN_ResultToLogInfo;
-static gint ett_s1ap_MDTPLMNList;
-static gint ett_s1ap_MDTMode;
-static gint ett_s1ap_MeasurementThresholdA2;
-static gint ett_s1ap_MeasurementThresholdL1LoggedMDT;
-static gint ett_s1ap_MMEPagingTarget;
-static gint ett_s1ap_MutingPatternInformation;
-static gint ett_s1ap_NB_IoT_Paging_eDRXInformation;
-static gint ett_s1ap_NR_CGI;
-static gint ett_s1ap_NRUESecurityCapabilities;
-static gint ett_s1ap_NRV2XServicesAuthorized;
-static gint ett_s1ap_NRUESidelinkAggregateMaximumBitrate;
-static gint ett_s1ap_OverloadResponse;
-static gint ett_s1ap_PagingAttemptInformation;
-static gint ett_s1ap_Paging_eDRXInformation;
-static gint ett_s1ap_PC5QoSParameters;
-static gint ett_s1ap_PC5QoSFlowList;
-static gint ett_s1ap_PC5QoSFlowItem;
-static gint ett_s1ap_PC5FlowBitRates;
-static gint ett_s1ap_M1PeriodicReporting;
-static gint ett_s1ap_PLMNAreaBasedQMC;
-static gint ett_s1ap_PLMNListforQMC;
-static gint ett_s1ap_ProSeAuthorized;
-static gint ett_s1ap_PSCellInformation;
-static gint ett_s1ap_RecommendedCellsForPaging;
-static gint ett_s1ap_RecommendedCellList;
-static gint ett_s1ap_RecommendedCellItem;
-static gint ett_s1ap_RecommendedENBsForPaging;
-static gint ett_s1ap_RecommendedENBList;
-static gint ett_s1ap_RecommendedENBItem;
-static gint ett_s1ap_RAT_Restrictions;
-static gint ett_s1ap_RAT_RestrictionsItem;
-static gint ett_s1ap_RequestType;
-static gint ett_s1ap_RIMTransfer;
-static gint ett_s1ap_RIMRoutingAddress;
-static gint ett_s1ap_RLFReportInformation;
-static gint ett_s1ap_ECGIListForRestart;
-static gint ett_s1ap_SecurityContext;
-static gint ett_s1ap_SecondaryRATDataUsageReportList;
-static gint ett_s1ap_SecondaryRATDataUsageReportItem;
-static gint ett_s1ap_SecurityIndication;
-static gint ett_s1ap_SecurityResult;
-static gint ett_s1ap_SensorMeasConfigNameItem;
-static gint ett_s1ap_SensorMeasConfigNameList;
-static gint ett_s1ap_SensorMeasurementConfiguration;
-static gint ett_s1ap_SensorNameConfig;
-static gint ett_s1ap_SONInformation;
-static gint ett_s1ap_SONInformationReply;
-static gint ett_s1ap_SONInformationReport;
-static gint ett_s1ap_SONConfigurationTransfer;
-static gint ett_s1ap_SynchronisationInformation;
-static gint ett_s1ap_SourceeNB_ID;
-static gint ett_s1ap_SourceNodeID;
-static gint ett_s1ap_SourceeNB_ToTargeteNB_TransparentContainer;
-static gint ett_s1ap_SourceNgRanNode_ID;
-static gint ett_s1ap_ServedGUMMEIs;
-static gint ett_s1ap_ServedGUMMEIsItem;
-static gint ett_s1ap_ServedGroupIDs;
-static gint ett_s1ap_ServedMMECs;
-static gint ett_s1ap_ServedPLMNs;
-static gint ett_s1ap_Subscription_Based_UE_DifferentiationInfo;
-static gint ett_s1ap_ScheduledCommunicationTime;
-static gint ett_s1ap_SupportedTAs;
-static gint ett_s1ap_SupportedTAs_Item;
-static gint ett_s1ap_TimeSynchronisationInfo;
-static gint ett_s1ap_S_TMSI;
-static gint ett_s1ap_TACList_In_LTE_NTN;
-static gint ett_s1ap_TAIBasedMDT;
-static gint ett_s1ap_TAIListforMDT;
-static gint ett_s1ap_TAIListforWarning;
-static gint ett_s1ap_TAI;
-static gint ett_s1ap_TAI_Broadcast;
-static gint ett_s1ap_TAI_Broadcast_Item;
-static gint ett_s1ap_TAI_Cancelled;
-static gint ett_s1ap_TAI_Cancelled_Item;
-static gint ett_s1ap_TABasedMDT;
-static gint ett_s1ap_TAListforMDT;
-static gint ett_s1ap_TABasedQMC;
-static gint ett_s1ap_TAListforQMC;
-static gint ett_s1ap_TAIBasedQMC;
-static gint ett_s1ap_TAIListforQMC;
-static gint ett_s1ap_CompletedCellinTAI;
-static gint ett_s1ap_CompletedCellinTAI_Item;
-static gint ett_s1ap_TargetID;
-static gint ett_s1ap_TargeteNB_ID;
-static gint ett_s1ap_TargetRNC_ID;
-static gint ett_s1ap_TargetNgRanNode_ID;
-static gint ett_s1ap_Global_RAN_NODE_ID;
-static gint ett_s1ap_GNB;
-static gint ett_s1ap_Global_GNB_ID;
-static gint ett_s1ap_GNB_Identity;
-static gint ett_s1ap_NG_eNB;
-static gint ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer;
-static gint ett_s1ap_M1ThresholdEventA2;
-static gint ett_s1ap_TransportInformation;
-static gint ett_s1ap_TraceActivation;
-static gint ett_s1ap_TunnelInformation;
-static gint ett_s1ap_TAIListForRestart;
-static gint ett_s1ap_UEAggregateMaximumBitrate;
-static gint ett_s1ap_UEAppLayerMeasConfig;
-static gint ett_s1ap_UE_S1AP_IDs;
-static gint ett_s1ap_UE_S1AP_ID_pair;
-static gint ett_s1ap_UE_associatedLogicalS1_ConnectionItem;
-static gint ett_s1ap_UE_HistoryInformation;
-static gint ett_s1ap_UEPagingID;
-static gint ett_s1ap_UESecurityCapabilities;
-static gint ett_s1ap_UESidelinkAggregateMaximumBitrate;
-static gint ett_s1ap_UL_CP_SecurityInformation;
-static gint ett_s1ap_UserLocationInformation;
-static gint ett_s1ap_V2XServicesAuthorized;
-static gint ett_s1ap_WarningAreaList;
-static gint ett_s1ap_WLANMeasurementConfiguration;
-static gint ett_s1ap_WLANMeasConfigNameList;
-static gint ett_s1ap_WUS_Assistance_Information;
-static gint ett_s1ap_X2TNLConfigurationInfo;
-static gint ett_s1ap_ENBX2ExtTLAs;
-static gint ett_s1ap_ENBX2ExtTLA;
-static gint ett_s1ap_ENBX2GTPTLAs;
-static gint ett_s1ap_ENBIndirectX2TransportLayerAddresses;
-static gint ett_s1ap_HandoverRequired;
-static gint ett_s1ap_HandoverCommand;
-static gint ett_s1ap_E_RABDataForwardingItem;
-static gint ett_s1ap_HandoverPreparationFailure;
-static gint ett_s1ap_HandoverRequest;
-static gint ett_s1ap_E_RABToBeSetupItemHOReq;
-static gint ett_s1ap_HandoverRequestAcknowledge;
-static gint ett_s1ap_E_RABAdmittedItem;
-static gint ett_s1ap_E_RABFailedToSetupItemHOReqAck;
-static gint ett_s1ap_HandoverFailure;
-static gint ett_s1ap_HandoverNotify;
-static gint ett_s1ap_PathSwitchRequest;
-static gint ett_s1ap_E_RABToBeSwitchedDLItem;
-static gint ett_s1ap_PathSwitchRequestAcknowledge;
-static gint ett_s1ap_E_RABToBeSwitchedULItem;
-static gint ett_s1ap_E_RABToBeUpdatedItem;
-static gint ett_s1ap_PathSwitchRequestFailure;
-static gint ett_s1ap_HandoverCancel;
-static gint ett_s1ap_HandoverCancelAcknowledge;
-static gint ett_s1ap_HandoverSuccess;
-static gint ett_s1ap_ENBEarlyStatusTransfer;
-static gint ett_s1ap_MMEEarlyStatusTransfer;
-static gint ett_s1ap_E_RABSetupRequest;
-static gint ett_s1ap_E_RABToBeSetupListBearerSUReq;
-static gint ett_s1ap_E_RABToBeSetupItemBearerSUReq;
-static gint ett_s1ap_E_RABSetupResponse;
-static gint ett_s1ap_E_RABSetupListBearerSURes;
-static gint ett_s1ap_E_RABSetupItemBearerSURes;
-static gint ett_s1ap_E_RABModifyRequest;
-static gint ett_s1ap_E_RABToBeModifiedListBearerModReq;
-static gint ett_s1ap_E_RABToBeModifiedItemBearerModReq;
-static gint ett_s1ap_E_RABModifyResponse;
-static gint ett_s1ap_E_RABModifyListBearerModRes;
-static gint ett_s1ap_E_RABModifyItemBearerModRes;
-static gint ett_s1ap_E_RABReleaseCommand;
-static gint ett_s1ap_E_RABReleaseResponse;
-static gint ett_s1ap_E_RABReleaseListBearerRelComp;
-static gint ett_s1ap_E_RABReleaseItemBearerRelComp;
-static gint ett_s1ap_E_RABReleaseIndication;
-static gint ett_s1ap_InitialContextSetupRequest;
-static gint ett_s1ap_E_RABToBeSetupListCtxtSUReq;
-static gint ett_s1ap_E_RABToBeSetupItemCtxtSUReq;
-static gint ett_s1ap_InitialContextSetupResponse;
-static gint ett_s1ap_E_RABSetupListCtxtSURes;
-static gint ett_s1ap_E_RABSetupItemCtxtSURes;
-static gint ett_s1ap_InitialContextSetupFailure;
-static gint ett_s1ap_Paging;
-static gint ett_s1ap_TAIList;
-static gint ett_s1ap_TAIItem;
-static gint ett_s1ap_UEContextReleaseRequest;
-static gint ett_s1ap_UEContextReleaseCommand;
-static gint ett_s1ap_UEContextReleaseComplete;
-static gint ett_s1ap_UEContextModificationRequest;
-static gint ett_s1ap_UEContextModificationResponse;
-static gint ett_s1ap_UEContextModificationFailure;
-static gint ett_s1ap_UERadioCapabilityMatchRequest;
-static gint ett_s1ap_UERadioCapabilityMatchResponse;
-static gint ett_s1ap_DownlinkNASTransport;
-static gint ett_s1ap_InitialUEMessage;
-static gint ett_s1ap_UplinkNASTransport;
-static gint ett_s1ap_NASNonDeliveryIndication;
-static gint ett_s1ap_RerouteNASRequest;
-static gint ett_s1ap_NASDeliveryIndication;
-static gint ett_s1ap_Reset;
-static gint ett_s1ap_ResetType;
-static gint ett_s1ap_UE_associatedLogicalS1_ConnectionListRes;
-static gint ett_s1ap_ResetAcknowledge;
-static gint ett_s1ap_UE_associatedLogicalS1_ConnectionListResAck;
-static gint ett_s1ap_ErrorIndication;
-static gint ett_s1ap_S1SetupRequest;
-static gint ett_s1ap_S1SetupResponse;
-static gint ett_s1ap_S1SetupFailure;
-static gint ett_s1ap_ENBConfigurationUpdate;
-static gint ett_s1ap_ENBConfigurationUpdateAcknowledge;
-static gint ett_s1ap_ENBConfigurationUpdateFailure;
-static gint ett_s1ap_MMEConfigurationUpdate;
-static gint ett_s1ap_MMEConfigurationUpdateAcknowledge;
-static gint ett_s1ap_MMEConfigurationUpdateFailure;
-static gint ett_s1ap_DownlinkS1cdma2000tunnelling;
-static gint ett_s1ap_UplinkS1cdma2000tunnelling;
-static gint ett_s1ap_UECapabilityInfoIndication;
-static gint ett_s1ap_ENBStatusTransfer;
-static gint ett_s1ap_MMEStatusTransfer;
-static gint ett_s1ap_TraceStart;
-static gint ett_s1ap_TraceFailureIndication;
-static gint ett_s1ap_DeactivateTrace;
-static gint ett_s1ap_CellTrafficTrace;
-static gint ett_s1ap_LocationReportingControl;
-static gint ett_s1ap_LocationReportingFailureIndication;
-static gint ett_s1ap_LocationReport;
-static gint ett_s1ap_OverloadStart;
-static gint ett_s1ap_OverloadStop;
-static gint ett_s1ap_WriteReplaceWarningRequest;
-static gint ett_s1ap_WriteReplaceWarningResponse;
-static gint ett_s1ap_ENBDirectInformationTransfer;
-static gint ett_s1ap_Inter_SystemInformationTransferType;
-static gint ett_s1ap_MMEDirectInformationTransfer;
-static gint ett_s1ap_ENBConfigurationTransfer;
-static gint ett_s1ap_MMEConfigurationTransfer;
-static gint ett_s1ap_PrivateMessage;
-static gint ett_s1ap_KillRequest;
-static gint ett_s1ap_KillResponse;
-static gint ett_s1ap_PWSRestartIndication;
-static gint ett_s1ap_PWSFailureIndication;
-static gint ett_s1ap_DownlinkUEAssociatedLPPaTransport;
-static gint ett_s1ap_UplinkUEAssociatedLPPaTransport;
-static gint ett_s1ap_DownlinkNonUEAssociatedLPPaTransport;
-static gint ett_s1ap_UplinkNonUEAssociatedLPPaTransport;
-static gint ett_s1ap_E_RABModificationIndication;
-static gint ett_s1ap_E_RABToBeModifiedItemBearerModInd;
-static gint ett_s1ap_E_RABNotToBeModifiedItemBearerModInd;
-static gint ett_s1ap_CSGMembershipInfo;
-static gint ett_s1ap_E_RABModificationConfirm;
-static gint ett_s1ap_E_RABModifyListBearerModConf;
-static gint ett_s1ap_E_RABModifyItemBearerModConf;
-static gint ett_s1ap_UEContextModificationIndication;
-static gint ett_s1ap_UEContextModificationConfirm;
-static gint ett_s1ap_UEContextSuspendRequest;
-static gint ett_s1ap_UEContextSuspendResponse;
-static gint ett_s1ap_UEContextResumeRequest;
-static gint ett_s1ap_E_RABFailedToResumeItemResumeReq;
-static gint ett_s1ap_UEContextResumeResponse;
-static gint ett_s1ap_E_RABFailedToResumeItemResumeRes;
-static gint ett_s1ap_UEContextResumeFailure;
-static gint ett_s1ap_ConnectionEstablishmentIndication;
-static gint ett_s1ap_RetrieveUEInformation;
-static gint ett_s1ap_UEInformationTransfer;
-static gint ett_s1ap_ENBCPRelocationIndication;
-static gint ett_s1ap_MMECPRelocationIndication;
-static gint ett_s1ap_SecondaryRATDataUsageReport;
-static gint ett_s1ap_UERadioCapabilityIDMappingRequest;
-static gint ett_s1ap_UERadioCapabilityIDMappingResponse;
-static gint ett_s1ap_S1AP_PDU;
-static gint ett_s1ap_InitiatingMessage;
-static gint ett_s1ap_SuccessfulOutcome;
-static gint ett_s1ap_UnsuccessfulOutcome;
-static gint ett_s1ap_SONtransferRequestContainer;
-static gint ett_s1ap_SONtransferResponseContainer;
-static gint ett_s1ap_SONtransferCause;
-static gint ett_s1ap_CellLoadReportingResponse;
-static gint ett_s1ap_EUTRANcellLoadReportingResponse;
-static gint ett_s1ap_EUTRANResponse;
-static gint ett_s1ap_IRAT_Cell_ID;
-static gint ett_s1ap_RequestedCellList;
-static gint ett_s1ap_MultiCellLoadReportingRequest;
-static gint ett_s1ap_ReportingCellList_Item;
-static gint ett_s1ap_ReportingCellList;
-static gint ett_s1ap_MultiCellLoadReportingResponse;
-static gint ett_s1ap_MultiCellLoadReportingResponse_Item;
-static gint ett_s1ap_EventTriggeredCellLoadReportingRequest;
-static gint ett_s1ap_EventTriggeredCellLoadReportingResponse;
-static gint ett_s1ap_HOReport;
-static gint ett_s1ap_CandidateCellList;
-static gint ett_s1ap_CandidatePCIList;
-static gint ett_s1ap_CandidatePCI;
-static gint ett_s1ap_CellActivationRequest;
-static gint ett_s1ap_CellsToActivateList;
-static gint ett_s1ap_CellsToActivateList_Item;
-static gint ett_s1ap_CellActivationResponse;
-static gint ett_s1ap_ActivatedCellsList;
-static gint ett_s1ap_ActivatedCellsList_Item;
-static gint ett_s1ap_CellStateIndication;
-static gint ett_s1ap_NotificationCellList;
-static gint ett_s1ap_NotificationCellList_Item;
-static gint ett_s1ap_FailureEventReport;
-static gint ett_s1ap_TooEarlyInterRATHOReportReportFromEUTRAN;
-static gint ett_s1ap_EHRPDSectorLoadReportingResponse;
-static gint ett_s1ap_EHRPDCompositeAvailableCapacity;
-static gint ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem;
+static int ett_s1ap_PrivateIE_ID;
+static int ett_s1ap_ProtocolIE_Container;
+static int ett_s1ap_ProtocolIE_Field;
+static int ett_s1ap_ProtocolIE_ContainerList;
+static int ett_s1ap_ProtocolExtensionContainer;
+static int ett_s1ap_ProtocolExtensionField;
+static int ett_s1ap_PrivateIE_Container;
+static int ett_s1ap_PrivateIE_Field;
+static int ett_s1ap_Additional_GUTI;
+static int ett_s1ap_AreaScopeOfMDT;
+static int ett_s1ap_AreaScopeOfQMC;
+static int ett_s1ap_AllocationAndRetentionPriority;
+static int ett_s1ap_AssistanceDataForCECapableUEs;
+static int ett_s1ap_AssistanceDataForPaging;
+static int ett_s1ap_AssistanceDataForRecommendedCells;
+static int ett_s1ap_Bearers_SubjectToStatusTransferList;
+static int ett_s1ap_Bearers_SubjectToStatusTransfer_Item;
+static int ett_s1ap_Bearers_SubjectToEarlyStatusTransferList;
+static int ett_s1ap_Bearers_SubjectToEarlyStatusTransfer_Item;
+static int ett_s1ap_BluetoothMeasurementConfiguration;
+static int ett_s1ap_BluetoothMeasConfigNameList;
+static int ett_s1ap_BPLMNs;
+static int ett_s1ap_BroadcastCancelledAreaList;
+static int ett_s1ap_BroadcastCompletedAreaList;
+static int ett_s1ap_CancelledCellinEAI;
+static int ett_s1ap_CancelledCellinEAI_Item;
+static int ett_s1ap_CancelledCellinTAI;
+static int ett_s1ap_CancelledCellinTAI_Item;
+static int ett_s1ap_Cause;
+static int ett_s1ap_CellIdentifierAndCELevelForCECapableUEs;
+static int ett_s1ap_CellID_Broadcast;
+static int ett_s1ap_CellID_Broadcast_Item;
+static int ett_s1ap_CellID_Cancelled;
+static int ett_s1ap_CellID_Cancelled_Item;
+static int ett_s1ap_CellBasedMDT;
+static int ett_s1ap_CellIdListforMDT;
+static int ett_s1ap_CellBasedQMC;
+static int ett_s1ap_CellIdListforQMC;
+static int ett_s1ap_Cdma2000OneXSRVCCInfo;
+static int ett_s1ap_CellType;
+static int ett_s1ap_CGI;
+static int ett_s1ap_CNTypeRestrictions;
+static int ett_s1ap_CNTypeRestrictions_Item;
+static int ett_s1ap_ConnectedengNBList;
+static int ett_s1ap_ConnectedengNBItem;
+static int ett_s1ap_ContextatSource;
+static int ett_s1ap_CSG_IdList;
+static int ett_s1ap_CSG_IdList_Item;
+static int ett_s1ap_COUNTvalue;
+static int ett_s1ap_COUNTValueExtended;
+static int ett_s1ap_COUNTvaluePDCP_SNlength18;
+static int ett_s1ap_CriticalityDiagnostics;
+static int ett_s1ap_CriticalityDiagnostics_IE_List;
+static int ett_s1ap_CriticalityDiagnostics_IE_Item;
+static int ett_s1ap_DAPSRequestInfo;
+static int ett_s1ap_DAPSResponseInfoList;
+static int ett_s1ap_DAPSResponseInfoItem;
+static int ett_s1ap_DAPSResponseInfo;
+static int ett_s1ap_ServedDCNs;
+static int ett_s1ap_ServedDCNsItem;
+static int ett_s1ap_DL_CP_SecurityInformation;
+static int ett_s1ap_DLCOUNT_PDCP_SNlength;
+static int ett_s1ap_ECGIList;
+static int ett_s1ap_PWSfailedECGIList;
+static int ett_s1ap_EmergencyAreaIDList;
+static int ett_s1ap_EmergencyAreaID_Broadcast;
+static int ett_s1ap_EmergencyAreaID_Broadcast_Item;
+static int ett_s1ap_EmergencyAreaID_Cancelled;
+static int ett_s1ap_EmergencyAreaID_Cancelled_Item;
+static int ett_s1ap_CompletedCellinEAI;
+static int ett_s1ap_CompletedCellinEAI_Item;
+static int ett_s1ap_ECGI_List;
+static int ett_s1ap_EmergencyAreaIDListForRestart;
+static int ett_s1ap_ENB_EarlyStatusTransfer_TransparentContainer;
+static int ett_s1ap_ENB_ID;
+static int ett_s1ap_GERAN_Cell_ID;
+static int ett_s1ap_Global_ENB_ID;
+static int ett_s1ap_Global_en_gNB_ID;
+static int ett_s1ap_GUMMEIList;
+static int ett_s1ap_ENB_StatusTransfer_TransparentContainer;
+static int ett_s1ap_ENBX2TLAs;
+static int ett_s1ap_EN_DCSONConfigurationTransfer;
+static int ett_s1ap_EN_DCSONTransferType;
+static int ett_s1ap_EN_DCTransferTypeRequest;
+static int ett_s1ap_EN_DCTransferTypeReply;
+static int ett_s1ap_EN_DCSONeNBIdentification;
+static int ett_s1ap_EN_DCSONengNBIdentification;
+static int ett_s1ap_EPLMNs;
+static int ett_s1ap_E_RABInformationList;
+static int ett_s1ap_E_RABInformationListItem;
+static int ett_s1ap_E_RABList;
+static int ett_s1ap_E_RABItem;
+static int ett_s1ap_E_RABLevelQoSParameters;
+static int ett_s1ap_E_RABSecurityResultList;
+static int ett_s1ap_E_RABSecurityResultItem;
+static int ett_s1ap_E_RABUsageReportList;
+static int ett_s1ap_E_RABUsageReportItem;
+static int ett_s1ap_EUTRAN_CGI;
+static int ett_s1ap_EventL1LoggedMDTConfig;
+static int ett_s1ap_EventTrigger;
+static int ett_s1ap_ExpectedUEBehaviour;
+static int ett_s1ap_ExpectedUEActivityBehaviour;
+static int ett_s1ap_FiveGSTAI;
+static int ett_s1ap_ForbiddenTAs;
+static int ett_s1ap_ForbiddenTAs_Item;
+static int ett_s1ap_ForbiddenTACs;
+static int ett_s1ap_ForbiddenLAs;
+static int ett_s1ap_ForbiddenLAs_Item;
+static int ett_s1ap_ForbiddenLACs;
+static int ett_s1ap_GBR_QosInformation;
+static int ett_s1ap_GUMMEI;
+static int ett_s1ap_HandoverRestrictionList;
+static int ett_s1ap_ImmediateMDT;
+static int ett_s1ap_InformationOnRecommendedCellsAndENBsForPaging;
+static int ett_s1ap_IntersystemMeasurementConfiguration;
+static int ett_s1ap_InterSystemMeasurementParameters;
+static int ett_s1ap_InterSystemMeasurementList;
+static int ett_s1ap_InterSystemMeasurementItem;
+static int ett_s1ap_LAI;
+static int ett_s1ap_LastVisitedCell_Item;
+static int ett_s1ap_LastVisitedEUTRANCellInformation;
+static int ett_s1ap_LastVisitedPSCellList;
+static int ett_s1ap_LastVisitedPSCellInformation;
+static int ett_s1ap_LastVisitedGERANCellInformation;
+static int ett_s1ap_ListeningSubframePattern;
+static int ett_s1ap_LoggedMDT;
+static int ett_s1ap_LoggedMBSFNMDT;
+static int ett_s1ap_LoggedMDTTrigger;
+static int ett_s1ap_LTE_NTN_TAI_Information;
+static int ett_s1ap_M3Configuration;
+static int ett_s1ap_M4Configuration;
+static int ett_s1ap_M5Configuration;
+static int ett_s1ap_M6Configuration;
+static int ett_s1ap_M7Configuration;
+static int ett_s1ap_MDT_Configuration;
+static int ett_s1ap_MBSFN_ResultToLog;
+static int ett_s1ap_MBSFN_ResultToLogInfo;
+static int ett_s1ap_MDTPLMNList;
+static int ett_s1ap_MDTMode;
+static int ett_s1ap_MeasurementThresholdA2;
+static int ett_s1ap_MeasurementThresholdL1LoggedMDT;
+static int ett_s1ap_MMEPagingTarget;
+static int ett_s1ap_MutingPatternInformation;
+static int ett_s1ap_NB_IoT_Paging_eDRXInformation;
+static int ett_s1ap_NR_CGI;
+static int ett_s1ap_NRUESecurityCapabilities;
+static int ett_s1ap_NRV2XServicesAuthorized;
+static int ett_s1ap_NRUESidelinkAggregateMaximumBitrate;
+static int ett_s1ap_OverloadResponse;
+static int ett_s1ap_PagingAttemptInformation;
+static int ett_s1ap_Paging_eDRXInformation;
+static int ett_s1ap_PC5QoSParameters;
+static int ett_s1ap_PC5QoSFlowList;
+static int ett_s1ap_PC5QoSFlowItem;
+static int ett_s1ap_PC5FlowBitRates;
+static int ett_s1ap_M1PeriodicReporting;
+static int ett_s1ap_PLMNAreaBasedQMC;
+static int ett_s1ap_PLMNListforQMC;
+static int ett_s1ap_ProSeAuthorized;
+static int ett_s1ap_PSCellInformation;
+static int ett_s1ap_RecommendedCellsForPaging;
+static int ett_s1ap_RecommendedCellList;
+static int ett_s1ap_RecommendedCellItem;
+static int ett_s1ap_RecommendedENBsForPaging;
+static int ett_s1ap_RecommendedENBList;
+static int ett_s1ap_RecommendedENBItem;
+static int ett_s1ap_RAT_Restrictions;
+static int ett_s1ap_RAT_RestrictionsItem;
+static int ett_s1ap_RequestType;
+static int ett_s1ap_RIMTransfer;
+static int ett_s1ap_RIMRoutingAddress;
+static int ett_s1ap_RLFReportInformation;
+static int ett_s1ap_ECGIListForRestart;
+static int ett_s1ap_SecurityContext;
+static int ett_s1ap_SecondaryRATDataUsageReportList;
+static int ett_s1ap_SecondaryRATDataUsageReportItem;
+static int ett_s1ap_SecurityIndication;
+static int ett_s1ap_SecurityResult;
+static int ett_s1ap_SensorMeasConfigNameItem;
+static int ett_s1ap_SensorMeasConfigNameList;
+static int ett_s1ap_SensorMeasurementConfiguration;
+static int ett_s1ap_SensorNameConfig;
+static int ett_s1ap_SONInformation;
+static int ett_s1ap_SONInformationReply;
+static int ett_s1ap_SONInformationReport;
+static int ett_s1ap_SONConfigurationTransfer;
+static int ett_s1ap_SynchronisationInformation;
+static int ett_s1ap_SourceeNB_ID;
+static int ett_s1ap_SourceNodeID;
+static int ett_s1ap_SourceeNB_ToTargeteNB_TransparentContainer;
+static int ett_s1ap_SourceNgRanNode_ID;
+static int ett_s1ap_ServedGUMMEIs;
+static int ett_s1ap_ServedGUMMEIsItem;
+static int ett_s1ap_ServedGroupIDs;
+static int ett_s1ap_ServedMMECs;
+static int ett_s1ap_ServedPLMNs;
+static int ett_s1ap_Subscription_Based_UE_DifferentiationInfo;
+static int ett_s1ap_ScheduledCommunicationTime;
+static int ett_s1ap_SupportedTAs;
+static int ett_s1ap_SupportedTAs_Item;
+static int ett_s1ap_TimeSynchronisationInfo;
+static int ett_s1ap_S_TMSI;
+static int ett_s1ap_TACList_In_LTE_NTN;
+static int ett_s1ap_TAIBasedMDT;
+static int ett_s1ap_TAIListforMDT;
+static int ett_s1ap_TAIListforWarning;
+static int ett_s1ap_TAI;
+static int ett_s1ap_TAI_Broadcast;
+static int ett_s1ap_TAI_Broadcast_Item;
+static int ett_s1ap_TAI_Cancelled;
+static int ett_s1ap_TAI_Cancelled_Item;
+static int ett_s1ap_TABasedMDT;
+static int ett_s1ap_TAListforMDT;
+static int ett_s1ap_TABasedQMC;
+static int ett_s1ap_TAListforQMC;
+static int ett_s1ap_TAIBasedQMC;
+static int ett_s1ap_TAIListforQMC;
+static int ett_s1ap_CompletedCellinTAI;
+static int ett_s1ap_CompletedCellinTAI_Item;
+static int ett_s1ap_TargetID;
+static int ett_s1ap_TargeteNB_ID;
+static int ett_s1ap_TargetRNC_ID;
+static int ett_s1ap_TargetNgRanNode_ID;
+static int ett_s1ap_Global_RAN_NODE_ID;
+static int ett_s1ap_GNB;
+static int ett_s1ap_Global_GNB_ID;
+static int ett_s1ap_GNB_Identity;
+static int ett_s1ap_NG_eNB;
+static int ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer;
+static int ett_s1ap_M1ThresholdEventA2;
+static int ett_s1ap_TransportInformation;
+static int ett_s1ap_TraceActivation;
+static int ett_s1ap_TunnelInformation;
+static int ett_s1ap_TAIListForRestart;
+static int ett_s1ap_UEAggregateMaximumBitrate;
+static int ett_s1ap_UEAppLayerMeasConfig;
+static int ett_s1ap_UE_S1AP_IDs;
+static int ett_s1ap_UE_S1AP_ID_pair;
+static int ett_s1ap_UE_associatedLogicalS1_ConnectionItem;
+static int ett_s1ap_UE_HistoryInformation;
+static int ett_s1ap_UEPagingID;
+static int ett_s1ap_UESecurityCapabilities;
+static int ett_s1ap_UESidelinkAggregateMaximumBitrate;
+static int ett_s1ap_UL_CP_SecurityInformation;
+static int ett_s1ap_UserLocationInformation;
+static int ett_s1ap_V2XServicesAuthorized;
+static int ett_s1ap_WarningAreaList;
+static int ett_s1ap_WLANMeasurementConfiguration;
+static int ett_s1ap_WLANMeasConfigNameList;
+static int ett_s1ap_WUS_Assistance_Information;
+static int ett_s1ap_X2TNLConfigurationInfo;
+static int ett_s1ap_ENBX2ExtTLAs;
+static int ett_s1ap_ENBX2ExtTLA;
+static int ett_s1ap_ENBX2GTPTLAs;
+static int ett_s1ap_ENBIndirectX2TransportLayerAddresses;
+static int ett_s1ap_HandoverRequired;
+static int ett_s1ap_HandoverCommand;
+static int ett_s1ap_E_RABDataForwardingItem;
+static int ett_s1ap_HandoverPreparationFailure;
+static int ett_s1ap_HandoverRequest;
+static int ett_s1ap_E_RABToBeSetupItemHOReq;
+static int ett_s1ap_HandoverRequestAcknowledge;
+static int ett_s1ap_E_RABAdmittedItem;
+static int ett_s1ap_E_RABFailedToSetupItemHOReqAck;
+static int ett_s1ap_HandoverFailure;
+static int ett_s1ap_HandoverNotify;
+static int ett_s1ap_PathSwitchRequest;
+static int ett_s1ap_E_RABToBeSwitchedDLItem;
+static int ett_s1ap_PathSwitchRequestAcknowledge;
+static int ett_s1ap_E_RABToBeSwitchedULItem;
+static int ett_s1ap_E_RABToBeUpdatedItem;
+static int ett_s1ap_PathSwitchRequestFailure;
+static int ett_s1ap_HandoverCancel;
+static int ett_s1ap_HandoverCancelAcknowledge;
+static int ett_s1ap_HandoverSuccess;
+static int ett_s1ap_ENBEarlyStatusTransfer;
+static int ett_s1ap_MMEEarlyStatusTransfer;
+static int ett_s1ap_E_RABSetupRequest;
+static int ett_s1ap_E_RABToBeSetupListBearerSUReq;
+static int ett_s1ap_E_RABToBeSetupItemBearerSUReq;
+static int ett_s1ap_E_RABSetupResponse;
+static int ett_s1ap_E_RABSetupListBearerSURes;
+static int ett_s1ap_E_RABSetupItemBearerSURes;
+static int ett_s1ap_E_RABModifyRequest;
+static int ett_s1ap_E_RABToBeModifiedListBearerModReq;
+static int ett_s1ap_E_RABToBeModifiedItemBearerModReq;
+static int ett_s1ap_E_RABModifyResponse;
+static int ett_s1ap_E_RABModifyListBearerModRes;
+static int ett_s1ap_E_RABModifyItemBearerModRes;
+static int ett_s1ap_E_RABReleaseCommand;
+static int ett_s1ap_E_RABReleaseResponse;
+static int ett_s1ap_E_RABReleaseListBearerRelComp;
+static int ett_s1ap_E_RABReleaseItemBearerRelComp;
+static int ett_s1ap_E_RABReleaseIndication;
+static int ett_s1ap_InitialContextSetupRequest;
+static int ett_s1ap_E_RABToBeSetupListCtxtSUReq;
+static int ett_s1ap_E_RABToBeSetupItemCtxtSUReq;
+static int ett_s1ap_InitialContextSetupResponse;
+static int ett_s1ap_E_RABSetupListCtxtSURes;
+static int ett_s1ap_E_RABSetupItemCtxtSURes;
+static int ett_s1ap_InitialContextSetupFailure;
+static int ett_s1ap_Paging;
+static int ett_s1ap_TAIList;
+static int ett_s1ap_TAIItem;
+static int ett_s1ap_UEContextReleaseRequest;
+static int ett_s1ap_UEContextReleaseCommand;
+static int ett_s1ap_UEContextReleaseComplete;
+static int ett_s1ap_UEContextModificationRequest;
+static int ett_s1ap_UEContextModificationResponse;
+static int ett_s1ap_UEContextModificationFailure;
+static int ett_s1ap_UERadioCapabilityMatchRequest;
+static int ett_s1ap_UERadioCapabilityMatchResponse;
+static int ett_s1ap_DownlinkNASTransport;
+static int ett_s1ap_InitialUEMessage;
+static int ett_s1ap_UplinkNASTransport;
+static int ett_s1ap_NASNonDeliveryIndication;
+static int ett_s1ap_RerouteNASRequest;
+static int ett_s1ap_NASDeliveryIndication;
+static int ett_s1ap_Reset;
+static int ett_s1ap_ResetType;
+static int ett_s1ap_UE_associatedLogicalS1_ConnectionListRes;
+static int ett_s1ap_ResetAcknowledge;
+static int ett_s1ap_UE_associatedLogicalS1_ConnectionListResAck;
+static int ett_s1ap_ErrorIndication;
+static int ett_s1ap_S1SetupRequest;
+static int ett_s1ap_S1SetupResponse;
+static int ett_s1ap_S1SetupFailure;
+static int ett_s1ap_ENBConfigurationUpdate;
+static int ett_s1ap_ENBConfigurationUpdateAcknowledge;
+static int ett_s1ap_ENBConfigurationUpdateFailure;
+static int ett_s1ap_MMEConfigurationUpdate;
+static int ett_s1ap_MMEConfigurationUpdateAcknowledge;
+static int ett_s1ap_MMEConfigurationUpdateFailure;
+static int ett_s1ap_DownlinkS1cdma2000tunnelling;
+static int ett_s1ap_UplinkS1cdma2000tunnelling;
+static int ett_s1ap_UECapabilityInfoIndication;
+static int ett_s1ap_ENBStatusTransfer;
+static int ett_s1ap_MMEStatusTransfer;
+static int ett_s1ap_TraceStart;
+static int ett_s1ap_TraceFailureIndication;
+static int ett_s1ap_DeactivateTrace;
+static int ett_s1ap_CellTrafficTrace;
+static int ett_s1ap_LocationReportingControl;
+static int ett_s1ap_LocationReportingFailureIndication;
+static int ett_s1ap_LocationReport;
+static int ett_s1ap_OverloadStart;
+static int ett_s1ap_OverloadStop;
+static int ett_s1ap_WriteReplaceWarningRequest;
+static int ett_s1ap_WriteReplaceWarningResponse;
+static int ett_s1ap_ENBDirectInformationTransfer;
+static int ett_s1ap_Inter_SystemInformationTransferType;
+static int ett_s1ap_MMEDirectInformationTransfer;
+static int ett_s1ap_ENBConfigurationTransfer;
+static int ett_s1ap_MMEConfigurationTransfer;
+static int ett_s1ap_PrivateMessage;
+static int ett_s1ap_KillRequest;
+static int ett_s1ap_KillResponse;
+static int ett_s1ap_PWSRestartIndication;
+static int ett_s1ap_PWSFailureIndication;
+static int ett_s1ap_DownlinkUEAssociatedLPPaTransport;
+static int ett_s1ap_UplinkUEAssociatedLPPaTransport;
+static int ett_s1ap_DownlinkNonUEAssociatedLPPaTransport;
+static int ett_s1ap_UplinkNonUEAssociatedLPPaTransport;
+static int ett_s1ap_E_RABModificationIndication;
+static int ett_s1ap_E_RABToBeModifiedItemBearerModInd;
+static int ett_s1ap_E_RABNotToBeModifiedItemBearerModInd;
+static int ett_s1ap_CSGMembershipInfo;
+static int ett_s1ap_E_RABModificationConfirm;
+static int ett_s1ap_E_RABModifyListBearerModConf;
+static int ett_s1ap_E_RABModifyItemBearerModConf;
+static int ett_s1ap_UEContextModificationIndication;
+static int ett_s1ap_UEContextModificationConfirm;
+static int ett_s1ap_UEContextSuspendRequest;
+static int ett_s1ap_UEContextSuspendResponse;
+static int ett_s1ap_UEContextResumeRequest;
+static int ett_s1ap_E_RABFailedToResumeItemResumeReq;
+static int ett_s1ap_UEContextResumeResponse;
+static int ett_s1ap_E_RABFailedToResumeItemResumeRes;
+static int ett_s1ap_UEContextResumeFailure;
+static int ett_s1ap_ConnectionEstablishmentIndication;
+static int ett_s1ap_RetrieveUEInformation;
+static int ett_s1ap_UEInformationTransfer;
+static int ett_s1ap_ENBCPRelocationIndication;
+static int ett_s1ap_MMECPRelocationIndication;
+static int ett_s1ap_SecondaryRATDataUsageReport;
+static int ett_s1ap_UERadioCapabilityIDMappingRequest;
+static int ett_s1ap_UERadioCapabilityIDMappingResponse;
+static int ett_s1ap_S1AP_PDU;
+static int ett_s1ap_InitiatingMessage;
+static int ett_s1ap_SuccessfulOutcome;
+static int ett_s1ap_UnsuccessfulOutcome;
+static int ett_s1ap_SONtransferRequestContainer;
+static int ett_s1ap_SONtransferResponseContainer;
+static int ett_s1ap_SONtransferCause;
+static int ett_s1ap_CellLoadReportingResponse;
+static int ett_s1ap_EUTRANcellLoadReportingResponse;
+static int ett_s1ap_EUTRANResponse;
+static int ett_s1ap_IRAT_Cell_ID;
+static int ett_s1ap_RequestedCellList;
+static int ett_s1ap_MultiCellLoadReportingRequest;
+static int ett_s1ap_ReportingCellList_Item;
+static int ett_s1ap_ReportingCellList;
+static int ett_s1ap_MultiCellLoadReportingResponse;
+static int ett_s1ap_MultiCellLoadReportingResponse_Item;
+static int ett_s1ap_EventTriggeredCellLoadReportingRequest;
+static int ett_s1ap_EventTriggeredCellLoadReportingResponse;
+static int ett_s1ap_HOReport;
+static int ett_s1ap_CandidateCellList;
+static int ett_s1ap_CandidatePCIList;
+static int ett_s1ap_CandidatePCI;
+static int ett_s1ap_CellActivationRequest;
+static int ett_s1ap_CellsToActivateList;
+static int ett_s1ap_CellsToActivateList_Item;
+static int ett_s1ap_CellActivationResponse;
+static int ett_s1ap_ActivatedCellsList;
+static int ett_s1ap_ActivatedCellsList_Item;
+static int ett_s1ap_CellStateIndication;
+static int ett_s1ap_NotificationCellList;
+static int ett_s1ap_NotificationCellList_Item;
+static int ett_s1ap_FailureEventReport;
+static int ett_s1ap_TooEarlyInterRATHOReportReportFromEUTRAN;
+static int ett_s1ap_EHRPDSectorLoadReportingResponse;
+static int ett_s1ap_EHRPDCompositeAvailableCapacity;
+static int ett_s1ap_EHRPDMultiSectorLoadReportingResponseItem;
static expert_field ei_s1ap_number_pages_le15;
@@ -2073,7 +2076,7 @@ enum {
};
/* Global variables */
-static gboolean g_s1ap_dissect_container = TRUE;
+static bool g_s1ap_dissect_container = true;
static gint g_s1ap_dissect_lte_container_as = S1AP_LTE_CONTAINER_AUTOMATIC;
static dissector_handle_t s1ap_handle;
@@ -2181,11 +2184,6 @@ s1ap_EUTRANRoundTripDelayEstimationInfo_fmt(gchar *s, guint32 v)
snprintf(s, ITEM_LABEL_LENGTH, "%uTs (%u)", 16*v, v);
}
-static const true_false_string s1ap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
static void
s1ap_Packet_LossRate_fmt(gchar *s, guint32 v)
{
@@ -3938,7 +3936,7 @@ dissect_s1ap_BearerType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_s1ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(10000000000), NULL, FALSE);
+ 0U, UINT64_C(10000000000), NULL, FALSE);
return offset;
}
@@ -6507,7 +6505,7 @@ dissect_s1ap_T_endTimestamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_s1ap_INTEGER_0_18446744073709551615(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(18446744073709551615), NULL, FALSE);
+ 0U, UINT64_C(18446744073709551615), NULL, FALSE);
return offset;
}
@@ -6790,7 +6788,7 @@ dissect_s1ap_ExpectedUEBehaviour(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_s1ap_ExtendedBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 10000000001U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+ 10000000001U, UINT64_C(4000000000000), NULL, TRUE);
return offset;
}
@@ -9621,7 +9619,10 @@ dissect_s1ap_T_rAT_RestrictionInformation(tvbuff_t *tvb _U_, int offset _U_, asn
&hf_s1ap_rAT_RestrictionInformation_MEO,
&hf_s1ap_rAT_RestrictionInformation_GEO,
&hf_s1ap_rAT_RestrictionInformation_OTHERSAT,
- &hf_s1ap_rAT_RestrictionInformation_Reserved,
+ &hf_s1ap_rAT_RestrictionInformation_NR_LEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_MEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_GEO,
+ &hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_rAT_RestrictionInformation);
@@ -18772,43 +18773,43 @@ void proto_register_s1ap(void) {
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M1,
{ "M1", "s1ap.measurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M2,
{ "M2", "s1ap.measurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M3,
{ "M3", "s1ap.measurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M4,
{ "M4", "s1ap.measurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M5,
{ "M5", "s1ap.measurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "s1ap.measurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M6,
{ "M6", "s1ap.measurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_s1ap_measurementsToActivate_M7,
{ "M7", "s1ap.measurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_GNSS,
{ "GNSS", "s1ap.MDT_Location_Info.GNSS",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_E_CID,
{ "E-CID", "s1ap.MDT_Location_Info.E_CID",
- FT_BOOLEAN, 8, TFS(&s1ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_s1ap_MDT_Location_Info_Reserved,
{ "Reserved", "s1ap.MDT_Location_Info.Reserved",
@@ -18874,9 +18875,21 @@ void proto_register_s1ap(void) {
{ "OTHERSAT", "s1ap.rAT_RestrictionInformation.OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x10,
NULL, HFILL }},
- { &hf_s1ap_rAT_RestrictionInformation_Reserved,
- { "Reserved", "s1ap.rAT_RestrictionInformation.Reserved",
- FT_UINT8, BASE_HEX, NULL, 0x0f,
+ { &hf_s1ap_rAT_RestrictionInformation_NR_LEO,
+ { "NR-LEO", "s1ap.rAT_RestrictionInformation.NR_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x08,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_MEO,
+ { "NR-MEO", "s1ap.rAT_RestrictionInformation.NR_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_GEO,
+ { "NR-GEO", "s1ap.rAT_RestrictionInformation.NR_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
+ NULL, HFILL }},
+ { &hf_s1ap_rAT_RestrictionInformation_NR_OTHERSAT,
+ { "NR-OTHERSAT", "s1ap.rAT_RestrictionInformation.NR_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
NULL, HFILL }},
{ &hf_s1ap_Additional_GUTI_PDU,
{ "Additional-GUTI", "s1ap.Additional_GUTI_element",
diff --git a/epan/dissectors/packet-s5066dts.c b/epan/dissectors/packet-s5066dts.c
index 653eb3cc99..e5bd77bd07 100644
--- a/epan/dissectors/packet-s5066dts.c
+++ b/epan/dissectors/packet-s5066dts.c
@@ -64,7 +64,7 @@ static dissector_handle_t s5066dts_handle;
static dissector_handle_t s5066dts_over_tcp_handle;
/* Configuration parameters */
-static gboolean config_proto_desegment = TRUE;
+static bool config_proto_desegment = true;
/* Initialize expert fields */
static expert_field ei_s5066dts_eow_hdr_drc_request_invalid;
@@ -73,7 +73,7 @@ static expert_field ei_s5066dts_eow_hftrp_invalid;
/* TCP port that will be listened by the application that peer
* dts layers will be connected through
*/
-static range_t *config_s5066dts_ports = NULL;
+static range_t *config_s5066dts_ports;
static gint hf_s5066dts_sync_word;
static gint hf_s5066dts_dpdu_type;
diff --git a/epan/dissectors/packet-s5066sis.c b/epan/dissectors/packet-s5066sis.c
index 12e5c2133b..141ee378a5 100644
--- a/epan/dissectors/packet-s5066sis.c
+++ b/epan/dissectors/packet-s5066sis.c
@@ -72,9 +72,9 @@ static gint proto_s5066;
static dissector_table_t s5066sis_dissector_table;
/* Enable desegmentation of S5066 over TCP */
-static gboolean s5066_desegment = TRUE;
+static bool s5066_desegment = true;
/* Dissect old 'edition 1' of STANAG 5066 (It lacks the 'version' field.) */
-static gboolean s5066_edition_one = FALSE;
+static bool s5066_edition_one;
/* This port is registered with IANA */
#define S5066_PORT 5066
/* Size of header outside 'size' field */
diff --git a/epan/dissectors/packet-sabp.c b/epan/dissectors/packet-sabp.c
index a452381706..8d62abc7ce 100644
--- a/epan/dissectors/packet-sabp.c
+++ b/epan/dissectors/packet-sabp.c
@@ -176,45 +176,45 @@ static int ett_sabp_cbs_new_serial_number;
static int ett_sabp_cbs_page;
static int ett_sabp_cbs_page_content;
-static gint ett_sabp_ProtocolIE_Container;
-static gint ett_sabp_ProtocolIE_Field;
-static gint ett_sabp_ProtocolExtensionContainer;
-static gint ett_sabp_ProtocolExtensionField;
-static gint ett_sabp_Criticality_Diagnostics;
-static gint ett_sabp_CriticalityDiagnostics_IE_List;
-static gint ett_sabp_CriticalityDiagnostics_IE_List_item;
-static gint ett_sabp_MessageStructure;
-static gint ett_sabp_MessageStructure_item;
-static gint ett_sabp_Failure_List;
-static gint ett_sabp_Failure_List_Item;
-static gint ett_sabp_Number_of_Broadcasts_Completed_List;
-static gint ett_sabp_Number_of_Broadcasts_Completed_List_Item;
-static gint ett_sabp_Radio_Resource_Loading_List;
-static gint ett_sabp_Radio_Resource_Loading_List_Item;
-static gint ett_sabp_Service_Area_Identifier;
-static gint ett_sabp_Service_Areas_List;
-static gint ett_sabp_Write_Replace;
-static gint ett_sabp_Write_Replace_Complete;
-static gint ett_sabp_Write_Replace_Failure;
-static gint ett_sabp_Kill;
-static gint ett_sabp_Kill_Complete;
-static gint ett_sabp_Kill_Failure;
-static gint ett_sabp_Load_Query;
-static gint ett_sabp_Load_Query_Complete;
-static gint ett_sabp_Load_Query_Failure;
-static gint ett_sabp_Message_Status_Query;
-static gint ett_sabp_Message_Status_Query_Complete;
-static gint ett_sabp_Message_Status_Query_Failure;
-static gint ett_sabp_Reset;
-static gint ett_sabp_Reset_Complete;
-static gint ett_sabp_Reset_Failure;
-static gint ett_sabp_Restart;
-static gint ett_sabp_Failure;
-static gint ett_sabp_Error_Indication;
-static gint ett_sabp_SABP_PDU;
-static gint ett_sabp_InitiatingMessage;
-static gint ett_sabp_SuccessfulOutcome;
-static gint ett_sabp_UnsuccessfulOutcome;
+static int ett_sabp_ProtocolIE_Container;
+static int ett_sabp_ProtocolIE_Field;
+static int ett_sabp_ProtocolExtensionContainer;
+static int ett_sabp_ProtocolExtensionField;
+static int ett_sabp_Criticality_Diagnostics;
+static int ett_sabp_CriticalityDiagnostics_IE_List;
+static int ett_sabp_CriticalityDiagnostics_IE_List_item;
+static int ett_sabp_MessageStructure;
+static int ett_sabp_MessageStructure_item;
+static int ett_sabp_Failure_List;
+static int ett_sabp_Failure_List_Item;
+static int ett_sabp_Number_of_Broadcasts_Completed_List;
+static int ett_sabp_Number_of_Broadcasts_Completed_List_Item;
+static int ett_sabp_Radio_Resource_Loading_List;
+static int ett_sabp_Radio_Resource_Loading_List_Item;
+static int ett_sabp_Service_Area_Identifier;
+static int ett_sabp_Service_Areas_List;
+static int ett_sabp_Write_Replace;
+static int ett_sabp_Write_Replace_Complete;
+static int ett_sabp_Write_Replace_Failure;
+static int ett_sabp_Kill;
+static int ett_sabp_Kill_Complete;
+static int ett_sabp_Kill_Failure;
+static int ett_sabp_Load_Query;
+static int ett_sabp_Load_Query_Complete;
+static int ett_sabp_Load_Query_Failure;
+static int ett_sabp_Message_Status_Query;
+static int ett_sabp_Message_Status_Query_Complete;
+static int ett_sabp_Message_Status_Query_Failure;
+static int ett_sabp_Reset;
+static int ett_sabp_Reset_Complete;
+static int ett_sabp_Reset_Failure;
+static int ett_sabp_Restart;
+static int ett_sabp_Failure;
+static int ett_sabp_Error_Indication;
+static int ett_sabp_SABP_PDU;
+static int ett_sabp_InitiatingMessage;
+static int ett_sabp_SuccessfulOutcome;
+static int ett_sabp_UnsuccessfulOutcome;
/* Global variables */
static guint32 ProcedureCode;
@@ -1774,7 +1774,7 @@ dissect_sabp_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
guint32 type_length, msg_len;
guint tvb_length;
int bit_offset;
- gboolean is_fragmented;
+ bool is_fragmented;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
diff --git a/epan/dissectors/packet-sametime.c b/epan/dissectors/packet-sametime.c
index afa3b3733b..ec4616e55e 100644
--- a/epan/dissectors/packet-sametime.c
+++ b/epan/dissectors/packet-sametime.c
@@ -25,8 +25,8 @@ static int proto_sametime;
static dissector_handle_t sametime_handle;
/*preferences*/
-static gboolean global_sametime_show_length = FALSE;
-static gboolean global_sametime_reassemble_packets = TRUE;
+static bool global_sametime_show_length;
+static bool global_sametime_reassemble_packets = true;
/*heart beat*/
static int hf_sametime_heartbeat;
diff --git a/epan/dissectors/packet-sane.c b/epan/dissectors/packet-sane.c
index caa5e1dcaa..639b479325 100644
--- a/epan/dissectors/packet-sane.c
+++ b/epan/dissectors/packet-sane.c
@@ -49,7 +49,7 @@
#define SANE_MODULE_NAME "sane"
#define SANE_PORT "6566"
-static range_t *sane_server_ports = NULL;
+static range_t *sane_server_ports;
static dissector_handle_t sane_handle;
diff --git a/epan/dissectors/packet-sapdiag.c b/epan/dissectors/packet-sapdiag.c
index 83d418b69b..3cab220bd5 100644
--- a/epan/dissectors/packet-sapdiag.c
+++ b/epan/dissectors/packet-sapdiag.c
@@ -634,7 +634,7 @@ static const value_string sapdiag_item_appl_dynt_vals[] = {
/* SAP Diag Item APPL/APPL4 CONTAINER SID values */
static const value_string sapdiag_item_appl_container_vals[] = {
- /* CONTAINTER */
+ /* CONTAINER */
{ 0x01, "RESET" },
{ 0x02, "DEFAULT" },
{ 0x03, "SUBSCREEN" },
@@ -1218,16 +1218,16 @@ static expert_field ei_sapdiag_dynt_focus_more_cont_ids;
static expert_field ei_sapdiag_password_field;
/* Global RFC dissection preference */
-static gboolean global_sapdiag_rfc_dissection = TRUE;
+static bool global_sapdiag_rfc_dissection = true;
/* Global SNC dissection preference */
-static gboolean global_sapdiag_snc_dissection = TRUE;
+static bool global_sapdiag_snc_dissection = true;
/* Global port preference */
static range_t *global_sapdiag_port_range;
/* Global highlight preference */
-static gboolean global_sapdiag_highlight_items = TRUE;
+static bool global_sapdiag_highlight_items = true;
/* Protocol handle */
static dissector_handle_t sapdiag_handle;
@@ -1597,8 +1597,8 @@ static gboolean
check_length(packet_info *pinfo, proto_tree *tree, guint32 expected, guint32 real, const char *name_string){
if (expected != real){
expert_add_info_format(pinfo, tree, &ei_sapdiag_item_length_invalid, "Item %s length is invalid", name_string);
- return (FALSE);
- } else return (TRUE);
+ return FALSE;
+ } else return TRUE;
}
@@ -2736,9 +2736,9 @@ check_sapdiag_dp(tvbuff_t *tvb, guint32 offset)
/* Since there's no SAP Diag mode 0xff, if the first byte is a 0xFF the
* packet probably holds an initialization DP Header */
if ((tvb_reported_length_remaining(tvb, offset) >= 200 + 8) && tvb_get_guint8(tvb, offset) == 0xFF){
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
static int
@@ -2748,9 +2748,9 @@ check_sapdiag_compression(tvbuff_t *tvb, guint32 offset)
if ((tvb_reported_length_remaining(tvb, offset) >= 8) &&
((tvb_get_guint8(tvb, offset+4) == 0x11) || (tvb_get_guint8(tvb, offset+4) == 0x12)) &&
(tvb_get_guint16(tvb, offset+5, ENC_LITTLE_ENDIAN) == 0x9d1f)){
- return (TRUE);
+ return TRUE;
}
- return (FALSE);
+ return FALSE;
}
static void
@@ -3612,7 +3612,7 @@ proto_register_sapdiag(void)
{ &hf_sapdiag_item_ui_event_data,
{ "UI Event Source Data", "sapdiag.item.value.uievent.data", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_sapdiag_item_ui_event_container_nrs,
- { "UI Event Source Container IDs Numbers", "sapdiag.item.value.uievent.containernrs", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
+ { "UI Event Source Container IDs Numbers", "sapdiag.item.value.uievent.containernrs", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_sapdiag_item_ui_event_container,
{ "UI Event Source Container ID", "sapdiag.item.value.uievent.container", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
diff --git a/epan/dissectors/packet-sapenqueue.c b/epan/dissectors/packet-sapenqueue.c
index a15720c03c..bb88bae4cd 100644
--- a/epan/dissectors/packet-sapenqueue.c
+++ b/epan/dissectors/packet-sapenqueue.c
@@ -469,7 +469,7 @@ dissect_sapenqueue_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
* packet is a Enqueue server packet.
*/
if (tvb_get_ntohl(tvb, 0) != 0xabcde123){
- return (FALSE);
+ return FALSE;
}
/* From now on this conversation is dissected as SAP Enqueue traffic */
@@ -479,7 +479,7 @@ dissect_sapenqueue_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
/* Now dissect the packet */
dissect_sapenqueue(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
diff --git a/epan/dissectors/packet-saphdb.c b/epan/dissectors/packet-saphdb.c
index 42e1555ddd..b61e84380e 100644
--- a/epan/dissectors/packet-saphdb.c
+++ b/epan/dissectors/packet-saphdb.c
@@ -556,7 +556,7 @@ static expert_field ei_saphdb_varpartlenght_incorrect;
/* Global highlight preference */
-static gboolean global_saphdb_highlight_items = TRUE;
+static bool global_saphdb_highlight_items = true;
/* Protocol handle */
@@ -577,7 +577,7 @@ opv_to_opi(const gint8 value, const option_part_definition *opd, const char *unk
if (opd) {
while (opd[i].identifier_strptr) {
if (opd[i].value == value) {
- return(opd[i].identifier_strptr);
+ return opd[i].identifier_strptr;
}
i++;
}
@@ -593,7 +593,7 @@ opv_to_opt(const gint8 value, const option_part_definition *opd)
if (opd) {
while (opd[i].identifier_strptr) {
if (opd[i].value == value) {
- return(opd[i].type);
+ return opd[i].type;
}
i++;
}
diff --git a/epan/dissectors/packet-sapigs.c b/epan/dissectors/packet-sapigs.c
index 5d89930702..3090448a3c 100755
--- a/epan/dissectors/packet-sapigs.c
+++ b/epan/dissectors/packet-sapigs.c
@@ -115,7 +115,7 @@ static gint ett_sapigs;
static range_t *global_sapigs_port_range;
/* Global highlight preference */
-static gboolean global_sapigs_highlight_items = TRUE;
+static bool global_sapigs_highlight_items = true;
/* Protocol handle */
static dissector_handle_t sapigs_handle;
diff --git a/epan/dissectors/packet-sapms.c b/epan/dissectors/packet-sapms.c
index 0782a13d80..d3121e874e 100644
--- a/epan/dissectors/packet-sapms.c
+++ b/epan/dissectors/packet-sapms.c
@@ -648,7 +648,7 @@ static expert_field ei_sapms_ip_invalid_length;
static range_t *global_sapms_port_range;
/* Global highlight preference */
-static gboolean global_sapms_highlight_items = TRUE;
+static bool global_sapms_highlight_items = true;
/* Protocol handle */
static dissector_handle_t sapms_handle;
@@ -800,7 +800,7 @@ dissect_sapms_client(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint3
client_length_remaining = tvb_reported_length_remaining(tvb, offset);
if (client_length_remaining < 0){
expert_add_info(pinfo, tree, &ei_sapms_client_invalid_offset);
- return (0);
+ return 0;
}
if (client_length_remaining < client_length){
expert_add_info_format(pinfo, tree, &ei_sapms_client_invalid_length, "Invalid client length (expected=%d, actual=%d)", client_length, client_length_remaining);
diff --git a/epan/dissectors/packet-sapni.c b/epan/dissectors/packet-sapni.c
index 041d5d465c..485300c965 100644
--- a/epan/dissectors/packet-sapni.c
+++ b/epan/dissectors/packet-sapni.c
@@ -58,7 +58,7 @@ static expert_field ei_sap_invalid_length;
static range_t *global_sap_protocol_port_range;
/* Global reassemble preference */
-static gboolean global_sap_protocol_desegment = TRUE;
+static bool global_sap_protocol_desegment = true;
/* Protocol handle */
static dissector_handle_t sap_protocol_handle;
diff --git a/epan/dissectors/packet-saprouter.c b/epan/dissectors/packet-saprouter.c
index 0f3a2c8580..7da29ed9d1 100644
--- a/epan/dissectors/packet-saprouter.c
+++ b/epan/dissectors/packet-saprouter.c
@@ -220,7 +220,7 @@ static range_t *global_saprouter_port_range;
/* Global SNC dissection preference */
-static gboolean global_saprouter_snc_dissection = TRUE;
+static bool global_saprouter_snc_dissection = true;
/* Protocol handle */
static dissector_handle_t saprouter_handle;
diff --git a/epan/dissectors/packet-sasp.c b/epan/dissectors/packet-sasp.c
index 7749d234e8..b721568c3a 100644
--- a/epan/dissectors/packet-sasp.c
+++ b/epan/dissectors/packet-sasp.c
@@ -192,7 +192,7 @@ static gint ett_sasp_wt_rep;
static expert_field ei_msg_type_invalid;
/* desegmentation of SASP over TCP */
-static gboolean sasp_desegment = TRUE;
+static bool sasp_desegment = true;
static const value_string msg_table[] = {
{ 0x1010, "Registration Request" },
@@ -1030,7 +1030,7 @@ void proto_register_sasp(void)
static hf_register_info hf[] = {
/*SASP Header */
{ &hf_sasp_type,
- { "Type", "sasp.msg.type",
+ { "Type", "sasp.type",
FT_UINT16, BASE_HEX, NULL, 0x0,
"SASP Header", HFILL }
},
diff --git a/epan/dissectors/packet-sbc-ap.c b/epan/dissectors/packet-sbc-ap.c
index dddd1480c5..56c9b2f917 100644
--- a/epan/dissectors/packet-sbc-ap.c
+++ b/epan/dissectors/packet-sbc-ap.c
@@ -41,7 +41,7 @@ void proto_reg_handoff_sbc_ap(void);
* The registered payload protocol identifier for SBc-AP is 24.
*/
#define SBC_AP_PORT 29168
-static dissector_handle_t sbc_ap_handle=NULL;
+static dissector_handle_t sbc_ap_handle;
#define maxNrOfErrors 256
@@ -294,92 +294,92 @@ static int ett_sbc_ap_Warning_Type;
static int ett_sbc_ap_Data_Coding_Scheme;
static int ett_sbc_ap_Warning_Message_Contents;
-static gint ett_sbc_ap_ProtocolIE_Container;
-static gint ett_sbc_ap_ProtocolIE_Field;
-static gint ett_sbc_ap_ProtocolExtensionContainer;
-static gint ett_sbc_ap_ProtocolExtensionField;
-static gint ett_sbc_ap_Broadcast_Scheduled_Area_List;
-static gint ett_sbc_ap_Broadcast_Scheduled_Area_List_5GS;
-static gint ett_sbc_ap_Broadcast_Cancelled_Area_List;
-static gint ett_sbc_ap_Broadcast_Cancelled_Area_List_5GS;
-static gint ett_sbc_ap_Broadcast_Empty_Area_List;
-static gint ett_sbc_ap_Broadcast_Empty_Area_List_5GS;
-static gint ett_sbc_ap_CancelledCellinEAI;
-static gint ett_sbc_ap_CancelledCellinEAI_Item;
-static gint ett_sbc_ap_CancelledCellinTAI;
-static gint ett_sbc_ap_CancelledCellinTAI_Item;
-static gint ett_sbc_ap_CancelledCellinTAI_5GS;
-static gint ett_sbc_ap_CancelledCellinTAI_5GS_item;
-static gint ett_sbc_ap_CellId_Broadcast_List;
-static gint ett_sbc_ap_CellId_Broadcast_List_Item;
-static gint ett_sbc_ap_CellId_Broadcast_List_5GS;
-static gint ett_sbc_ap_CellId_Broadcast_List_5GS_item;
-static gint ett_sbc_ap_CellID_Cancelled_List;
-static gint ett_sbc_ap_CellID_Cancelled_Item;
-static gint ett_sbc_ap_CellID_Cancelled_List_5GS;
-static gint ett_sbc_ap_CellID_Cancelled_List_5GS_item;
-static gint ett_sbc_ap_Criticality_Diagnostics;
-static gint ett_sbc_ap_CriticalityDiagnostics_IE_List;
-static gint ett_sbc_ap_CriticalityDiagnostics_IE_List_item;
-static gint ett_sbc_ap_ECGIList;
-static gint ett_sbc_ap_Emergency_Area_ID_List;
-static gint ett_sbc_ap_EmergencyAreaID_Broadcast_List;
-static gint ett_sbc_ap_EmergencyAreaID_Broadcast_List_Item;
-static gint ett_sbc_ap_EmergencyAreaID_Cancelled_List;
-static gint ett_sbc_ap_EmergencyAreaID_Cancelled_Item;
-static gint ett_sbc_ap_EUTRAN_CGI;
-static gint ett_sbc_ap_ENB_ID;
-static gint ett_sbc_ap_Failed_Cell_List;
-static gint ett_sbc_ap_Failed_Cell_List_NR;
-static gint ett_sbc_ap_Global_ENB_ID;
-static gint ett_sbc_ap_Global_RAN_Node_ID;
-static gint ett_sbc_ap_Global_GNB_ID;
-static gint ett_sbc_ap_GNB_ID;
-static gint ett_sbc_ap_Global_NgENB_ID;
-static gint ett_sbc_ap_List_of_TAIs;
-static gint ett_sbc_ap_List_of_TAIs_item;
-static gint ett_sbc_ap_List_of_TAIs_Restart;
-static gint ett_sbc_ap_List_of_TAIs_Restart_item;
-static gint ett_sbc_ap_List_of_EAIs_Restart;
-static gint ett_sbc_ap_List_of_5GS_TAIs;
-static gint ett_sbc_ap_List_of_5GS_TAI_for_Restart;
-static gint ett_sbc_ap_NR_CGIList;
-static gint ett_sbc_ap_NR_CGI;
-static gint ett_sbc_ap_Restarted_Cell_List;
-static gint ett_sbc_ap_Restarted_Cell_List_NR;
-static gint ett_sbc_ap_ScheduledCellinEAI;
-static gint ett_sbc_ap_ScheduledCellinEAI_Item;
-static gint ett_sbc_ap_ScheduledCellinTAI;
-static gint ett_sbc_ap_ScheduledCellinTAI_Item;
-static gint ett_sbc_ap_ScheduledCellinTAI_5GS;
-static gint ett_sbc_ap_ScheduledCellinTAI_5GS_item;
-static gint ett_sbc_ap_TAI_Broadcast_List;
-static gint ett_sbc_ap_TAI_Broadcast_List_Item;
-static gint ett_sbc_ap_TAI_Broadcast_List_5GS;
-static gint ett_sbc_ap_TAI_Broadcast_List_5GS_item;
-static gint ett_sbc_ap_TAI_Cancelled_List;
-static gint ett_sbc_ap_TAI_Cancelled_List_Item;
-static gint ett_sbc_ap_TAI_Cancelled_List_5GS;
-static gint ett_sbc_ap_TAI_Cancelled_List_5GS_item;
-static gint ett_sbc_ap_TAI_List_for_Warning;
-static gint ett_sbc_ap_TAI;
-static gint ett_sbc_ap_TAI_5GS;
-static gint ett_sbc_ap_Unknown_5GS_Tracking_Area_List;
-static gint ett_sbc_ap_Warning_Area_List;
-static gint ett_sbc_ap_Warning_Area_List_5GS;
-static gint ett_sbc_ap_Write_Replace_Warning_Request;
-static gint ett_sbc_ap_Write_Replace_Warning_Response;
-static gint ett_sbc_ap_Stop_Warning_Request;
-static gint ett_sbc_ap_Stop_Warning_Response;
-static gint ett_sbc_ap_Write_Replace_Warning_Indication;
-static gint ett_sbc_ap_Stop_Warning_Indication;
-static gint ett_sbc_ap_PWS_Restart_Indication;
-static gint ett_sbc_ap_PWS_Failure_Indication;
-static gint ett_sbc_ap_Error_Indication;
-static gint ett_sbc_ap_SBC_AP_PDU;
-static gint ett_sbc_ap_InitiatingMessage;
-static gint ett_sbc_ap_SuccessfulOutcome;
-static gint ett_sbc_ap_UnsuccessfulOutcome;
+static int ett_sbc_ap_ProtocolIE_Container;
+static int ett_sbc_ap_ProtocolIE_Field;
+static int ett_sbc_ap_ProtocolExtensionContainer;
+static int ett_sbc_ap_ProtocolExtensionField;
+static int ett_sbc_ap_Broadcast_Scheduled_Area_List;
+static int ett_sbc_ap_Broadcast_Scheduled_Area_List_5GS;
+static int ett_sbc_ap_Broadcast_Cancelled_Area_List;
+static int ett_sbc_ap_Broadcast_Cancelled_Area_List_5GS;
+static int ett_sbc_ap_Broadcast_Empty_Area_List;
+static int ett_sbc_ap_Broadcast_Empty_Area_List_5GS;
+static int ett_sbc_ap_CancelledCellinEAI;
+static int ett_sbc_ap_CancelledCellinEAI_Item;
+static int ett_sbc_ap_CancelledCellinTAI;
+static int ett_sbc_ap_CancelledCellinTAI_Item;
+static int ett_sbc_ap_CancelledCellinTAI_5GS;
+static int ett_sbc_ap_CancelledCellinTAI_5GS_item;
+static int ett_sbc_ap_CellId_Broadcast_List;
+static int ett_sbc_ap_CellId_Broadcast_List_Item;
+static int ett_sbc_ap_CellId_Broadcast_List_5GS;
+static int ett_sbc_ap_CellId_Broadcast_List_5GS_item;
+static int ett_sbc_ap_CellID_Cancelled_List;
+static int ett_sbc_ap_CellID_Cancelled_Item;
+static int ett_sbc_ap_CellID_Cancelled_List_5GS;
+static int ett_sbc_ap_CellID_Cancelled_List_5GS_item;
+static int ett_sbc_ap_Criticality_Diagnostics;
+static int ett_sbc_ap_CriticalityDiagnostics_IE_List;
+static int ett_sbc_ap_CriticalityDiagnostics_IE_List_item;
+static int ett_sbc_ap_ECGIList;
+static int ett_sbc_ap_Emergency_Area_ID_List;
+static int ett_sbc_ap_EmergencyAreaID_Broadcast_List;
+static int ett_sbc_ap_EmergencyAreaID_Broadcast_List_Item;
+static int ett_sbc_ap_EmergencyAreaID_Cancelled_List;
+static int ett_sbc_ap_EmergencyAreaID_Cancelled_Item;
+static int ett_sbc_ap_EUTRAN_CGI;
+static int ett_sbc_ap_ENB_ID;
+static int ett_sbc_ap_Failed_Cell_List;
+static int ett_sbc_ap_Failed_Cell_List_NR;
+static int ett_sbc_ap_Global_ENB_ID;
+static int ett_sbc_ap_Global_RAN_Node_ID;
+static int ett_sbc_ap_Global_GNB_ID;
+static int ett_sbc_ap_GNB_ID;
+static int ett_sbc_ap_Global_NgENB_ID;
+static int ett_sbc_ap_List_of_TAIs;
+static int ett_sbc_ap_List_of_TAIs_item;
+static int ett_sbc_ap_List_of_TAIs_Restart;
+static int ett_sbc_ap_List_of_TAIs_Restart_item;
+static int ett_sbc_ap_List_of_EAIs_Restart;
+static int ett_sbc_ap_List_of_5GS_TAIs;
+static int ett_sbc_ap_List_of_5GS_TAI_for_Restart;
+static int ett_sbc_ap_NR_CGIList;
+static int ett_sbc_ap_NR_CGI;
+static int ett_sbc_ap_Restarted_Cell_List;
+static int ett_sbc_ap_Restarted_Cell_List_NR;
+static int ett_sbc_ap_ScheduledCellinEAI;
+static int ett_sbc_ap_ScheduledCellinEAI_Item;
+static int ett_sbc_ap_ScheduledCellinTAI;
+static int ett_sbc_ap_ScheduledCellinTAI_Item;
+static int ett_sbc_ap_ScheduledCellinTAI_5GS;
+static int ett_sbc_ap_ScheduledCellinTAI_5GS_item;
+static int ett_sbc_ap_TAI_Broadcast_List;
+static int ett_sbc_ap_TAI_Broadcast_List_Item;
+static int ett_sbc_ap_TAI_Broadcast_List_5GS;
+static int ett_sbc_ap_TAI_Broadcast_List_5GS_item;
+static int ett_sbc_ap_TAI_Cancelled_List;
+static int ett_sbc_ap_TAI_Cancelled_List_Item;
+static int ett_sbc_ap_TAI_Cancelled_List_5GS;
+static int ett_sbc_ap_TAI_Cancelled_List_5GS_item;
+static int ett_sbc_ap_TAI_List_for_Warning;
+static int ett_sbc_ap_TAI;
+static int ett_sbc_ap_TAI_5GS;
+static int ett_sbc_ap_Unknown_5GS_Tracking_Area_List;
+static int ett_sbc_ap_Warning_Area_List;
+static int ett_sbc_ap_Warning_Area_List_5GS;
+static int ett_sbc_ap_Write_Replace_Warning_Request;
+static int ett_sbc_ap_Write_Replace_Warning_Response;
+static int ett_sbc_ap_Stop_Warning_Request;
+static int ett_sbc_ap_Stop_Warning_Response;
+static int ett_sbc_ap_Write_Replace_Warning_Indication;
+static int ett_sbc_ap_Stop_Warning_Indication;
+static int ett_sbc_ap_PWS_Restart_Indication;
+static int ett_sbc_ap_PWS_Failure_Indication;
+static int ett_sbc_ap_Error_Indication;
+static int ett_sbc_ap_SBC_AP_PDU;
+static int ett_sbc_ap_InitiatingMessage;
+static int ett_sbc_ap_SuccessfulOutcome;
+static int ett_sbc_ap_UnsuccessfulOutcome;
enum{
INITIATING_MESSAGE,
diff --git a/epan/dissectors/packet-sbus.c b/epan/dissectors/packet-sbus.c
index 5549358405..3cd8f360d5 100644
--- a/epan/dissectors/packet-sbus.c
+++ b/epan/dissectors/packet-sbus.c
@@ -553,7 +553,7 @@ typedef struct {
} sbus_request_val;
/* The hash structure (for conversations)*/
-static wmem_map_t *sbus_request_hash = NULL;
+static wmem_map_t *sbus_request_hash;
static guint crc_calc (guint crc, guint val)
{
@@ -612,22 +612,22 @@ is_sbus_pdu(tvbuff_t *tvb)
}
/* First four byte indicate the length which must be at least 12 bytes*/
if (tvb_get_ntohl(tvb, 0) < 12) {
- return (FALSE);
+ return FALSE;
}
/* Fifth byte indicates protocol version which can be 0 or 1*/
if (tvb_get_guint8(tvb, 4) > 0x01) {
- return (FALSE);
+ return FALSE;
}
/* Sixth byte indicates protocol type and must be 0*/
if ( tvb_get_guint8(tvb, 5) > 0x01 ) {
- return (FALSE);
+ return FALSE;
}
/* Seventh and eighth bytes indicate the packet sequence number and can
be 0 to 65565 (--> check does not make sense)*/
/* Ninth byte the "attributes character" and must be either 0, 1 or 2
(request, response or ACK/NAK)*/
if (tvb_get_guint8(tvb, 8) > 0x02 ) {
- return (FALSE);
+ return FALSE;
}
return TRUE;
}
@@ -2110,7 +2110,7 @@ dissect_sbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
offset += 2;
}
- /* Calclulate CRC */
+ /* Calculate CRC */
sbus_crc_calc = 0;
for (i = 0; i < sbus_eth_len - 2; i++)
sbus_crc_calc = crc_calc (sbus_crc_calc, tvb_get_guint8(tvb, i));
diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c
index a25a6c9376..ebb486d5d8 100644
--- a/epan/dissectors/packet-sccp.c
+++ b/epan/dissectors/packet-sccp.c
@@ -709,10 +709,10 @@ static expert_field ei_sccp_gt_digits_missing;
static expert_field ei_sccp_externally_reassembled;
-static gboolean sccp_reassemble = TRUE;
-static gboolean show_key_params = FALSE;
-static gboolean set_addresses = FALSE;
-static gboolean dt1_ignore_length = FALSE;
+static bool sccp_reassemble = true;
+static bool show_key_params;
+static bool set_addresses;
+static bool dt1_ignore_length;
static int ss7pc_address_type = -1;
@@ -781,7 +781,7 @@ static dissector_handle_t bssap_le_handle;
static dissector_handle_t bssap_plus_handle;
static dissector_handle_t default_handle;
-static const char *default_payload = NULL;
+static const char *default_payload;
static const value_string sccp_users_vals[] = {
{ SCCP_USER_DATA, "Data"},
@@ -801,17 +801,17 @@ static const value_string sccp_users_vals[] = {
* Here are the global variables associated with
* the various user definable characteristics of the dissection
*/
-static guint32 sccp_source_pc_global = 0;
-static gboolean sccp_show_length = FALSE;
-static gboolean trace_sccp = FALSE;
+static guint32 sccp_source_pc_global;
+static bool sccp_show_length;
+static bool trace_sccp;
static heur_dissector_list_t heur_subdissector_list;
static dissector_table_t sccp_ssn_dissector_table;
-static wmem_tree_t *assocs = NULL;
+static wmem_tree_t *assocs;
static sccp_assoc_info_t no_assoc = { 0,0,0,INVALID_SSN,INVALID_SSN,FALSE,FALSE,NULL,NULL,SCCP_PLOAD_NONE,NULL,NULL,NULL, NULL, 0 };
-static guint32 next_assoc_id = 0;
+static guint32 next_assoc_id;
static const value_string assoc_protos[] = {
{ SCCP_PLOAD_BSSAP, "BSSAP" },
@@ -1943,7 +1943,7 @@ dissect_sccp_3byte_pc(tvbuff_t *tvb, proto_tree *call_tree, guint offset,
called ? hf_sccp_called_pc_member : hf_sccp_calling_pc_member,
0, 0);
- return(offset + ANSI_PC_LENGTH);
+ return offset + ANSI_PC_LENGTH;
}
/* FUNCTION dissect_sccp_called_calling_param():
@@ -2624,7 +2624,7 @@ dissect_sccp_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *sccp_tree,
break;
default:
- if (!sccp_tree) return(parameter_length);
+ if (!sccp_tree) return parameter_length;
}
@@ -2742,7 +2742,7 @@ dissect_sccp_parameter(tvbuff_t *tvb, packet_info *pinfo, proto_tree *sccp_tree,
break;
}
- return(parameter_length);
+ return parameter_length;
}
/* FUNCTION dissect_sccp_variable_parameter():
@@ -2791,7 +2791,7 @@ dissect_sccp_variable_parameter(tvbuff_t *tvb, packet_info *pinfo,
dissect_sccp_parameter(tvb, pinfo, sccp_tree, tree, parameter_type, offset,
parameter_length, sccp_info);
- return(parameter_length + length_length);
+ return parameter_length + length_length;
}
/* FUNCTION dissect_sccp_optional_parameters():
diff --git a/epan/dissectors/packet-scriptingservice.c b/epan/dissectors/packet-scriptingservice.c
index cdf0c21023..556a5ce538 100644
--- a/epan/dissectors/packet-scriptingservice.c
+++ b/epan/dissectors/packet-scriptingservice.c
@@ -39,8 +39,8 @@ static int hf_message_info;
static int hf_message_hash;
static int hf_environment_u_bit;
-static guint64 ssprotocol_total_msgs = 0;
-static guint64 ssprotocol_total_bytes = 0;
+static guint64 ssprotocol_total_msgs;
+static guint64 ssprotocol_total_bytes;
/* Initialize the subtree pointers */
static gint ett_ssprotocol;
diff --git a/epan/dissectors/packet-scsi-sbc.c b/epan/dissectors/packet-scsi-sbc.c
index 792194a0f1..1f4b7ee9a4 100644
--- a/epan/dissectors/packet-scsi-sbc.c
+++ b/epan/dissectors/packet-scsi-sbc.c
@@ -1008,7 +1008,7 @@ dissect_sbc_readcapacity10 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
guint32 lba, block_len;
guint64 totalSizeBytes64;
double totalSizeBytes, totalSizeAbbrev;
- const char* binaryPrefixes[] = { "B", "KiB", "MiB", "GiB", "TiB", "PiB" };
+ static const char* binaryPrefixes[] = { "B", "KiB", "MiB", "GiB", "TiB", "PiB" };
gint idx = 0;
if (!tree)
diff --git a/epan/dissectors/packet-scsi.c b/epan/dissectors/packet-scsi.c
index d3f459bd77..ee98579328 100644
--- a/epan/dissectors/packet-scsi.c
+++ b/epan/dissectors/packet-scsi.c
@@ -766,7 +766,7 @@ static expert_field ei_scsi_unknown_serv_action;
static int scsi_tap;
/* Defragment of SCSI DATA IN/OUT */
-static gboolean scsi_defragment = FALSE;
+static bool scsi_defragment;
static reassembly_table scsi_reassembly_table;
@@ -6252,7 +6252,7 @@ dissect_scsi_payload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint32 expected_length;
fragment_head *ipfd_head;
tvbuff_t *next_tvb = tvb;
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
gboolean more_frags = FALSE;
if (!itlq || !itl) {
diff --git a/epan/dissectors/packet-scte35.c b/epan/dissectors/packet-scte35.c
index 4c081960a7..117cd918e1 100644
--- a/epan/dissectors/packet-scte35.c
+++ b/epan/dissectors/packet-scte35.c
@@ -64,7 +64,7 @@ static const int SCTE35_SI_MIN_LEN = 20;
static int proto_scte35;
/* Dissector table for scte35.splice_command_type */
-static dissector_table_t scte35_cmd_dissector_table = NULL;
+static dissector_table_t scte35_cmd_dissector_table;
/* splice_info_section table */
@@ -133,9 +133,9 @@ static gint hf_identifier;
static gint hf_private_byte;
/* Dissector table for scte35_private_command.identifier */
-static dissector_table_t private_identifier_table = NULL;
+static dissector_table_t private_identifier_table;
-static dissector_handle_t scte35_handle = NULL;
+static dissector_handle_t scte35_handle;
static dissector_handle_t scte35_time_handle;
static dissector_handle_t scte35_private_command_handle;
static dissector_handle_t scte35_si_handle;
diff --git a/epan/dissectors/packet-sctp.c b/epan/dissectors/packet-sctp.c
index 926e046c01..ed8749df01 100644
--- a/epan/dissectors/packet-sctp.c
+++ b/epan/dissectors/packet-sctp.c
@@ -391,14 +391,14 @@ WS_DLL_PUBLIC_DEF const value_string chunk_type_values[] = {
#define ASSOC_NOT_FOUND 5
/* Default values for preferences */
-static gboolean show_port_numbers = TRUE;
-static gint sctp_checksum = SCTP_CHECKSUM_NONE;
-static gboolean enable_tsn_analysis = TRUE;
-static gboolean enable_association_indexing = FALSE;
-static gboolean enable_ulp_dissection = TRUE;
-static gboolean use_reassembly = TRUE;
-static gboolean show_always_control_chunks = TRUE;
-static gboolean show_relative_tsns = TRUE;
+static bool show_port_numbers = true;
+static gint sctp_checksum = SCTP_CHECKSUM_NONE;
+static bool enable_tsn_analysis = true;
+static bool enable_association_indexing;
+static bool enable_ulp_dissection = true;
+static bool use_reassembly = true;
+static bool show_always_control_chunks = true;
+static bool show_relative_tsns = true;
/* Data types and functions for generation/handling of chunk types for chunk statistics */
@@ -413,8 +413,8 @@ typedef struct _type_field_t {
guint type_enable;
} type_field_t;
-static type_field_t* type_fields = NULL;
-static guint num_type_fields = 0;
+static type_field_t* type_fields;
+static guint num_type_fields;
typedef struct _assoc_info_t {
guint16 assoc_index;
@@ -432,9 +432,9 @@ typedef struct _infodata_t {
guint16 direction;
} infodata_t;
-static wmem_map_t *assoc_info_half_map = NULL;
-static wmem_map_t *assoc_info_map = NULL;
-static guint num_assocs = 0;
+static wmem_map_t *assoc_info_half_map;
+static wmem_map_t *assoc_info_map;
+static guint num_assocs;
UAT_CSTRING_CB_DEF(type_fields, type_name, type_field_t)
UAT_VS_DEF(type_fields, type_enable, type_field_t, guint, 0, "Show")
@@ -1089,7 +1089,7 @@ get_half_assoc(packet_info *pinfo, guint32 spt, guint32 dpt, guint32 vtag)
*hb = NULL;
}
} else {
- /* we found no entry in the table: add one (using reversed ports and src addresss) so that it can be matched later */
+ /* we found no entry in the table: add one (using reversed ports and src addresses) so that it can be matched later */
*(hb = (sctp_half_assoc_t **)wmem_alloc(wmem_file_scope(), sizeof(void*))) = ha;
k = make_address_key(pinfo->pool, spt, dpt, &(pinfo->src));
wmem_tree_insert32_array(dirs_by_ptaddr, k, hb);
@@ -1201,7 +1201,7 @@ sctp_tsn(packet_info *pinfo, tvbuff_t *tvb, proto_item *tsn_item,
/* no half assoc? nothing to do!*/
if (!h)
- return(is_retransmission);
+ return is_retransmission;
framenum = pinfo->num;
@@ -1216,7 +1216,7 @@ sctp_tsn(packet_info *pinfo, tvbuff_t *tvb, proto_item *tsn_item,
* retransmission of that in frame 0.
*/
if (framenum == 0)
- return(is_retransmission);
+ return is_retransmission;
/* we have not seen any tsn yet in this half assoc set the ground */
if (! h->started) {
@@ -1264,7 +1264,7 @@ sctp_tsn(packet_info *pinfo, tvbuff_t *tvb, proto_item *tsn_item,
tsn_tree(t, tsn_item, pinfo, tvb, framenum);
- return(is_retransmission);
+ return is_retransmission;
}
static void
@@ -2528,7 +2528,7 @@ dissect_error_causes(tvbuff_t *causes_tvb, packet_info *pinfo, proto_tree *tree)
* Code to actually dissect the packets
*/
-static gboolean try_heuristic_first = FALSE;
+static bool try_heuristic_first;
static gboolean
dissect_payload(tvbuff_t *payload_tvb, packet_info *pinfo, proto_tree *tree, guint32 ppi)
@@ -2672,7 +2672,7 @@ dissect_payload(tvbuff_t *payload_tvb, packet_info *pinfo, proto_tree *tree, gui
#define SCTP_DATA_CHUNK_I_BIT 0x08
/* table to hold fragmented SCTP messages */
-static GHashTable *frag_table = NULL;
+static GHashTable *frag_table;
typedef struct _frag_key {
@@ -3724,7 +3724,7 @@ dissect_init_ack_chunk(tvbuff_t *chunk_tvb, guint16 chunk_length, packet_info *p
tvb_get_ntohs(chunk_tvb, INIT_CHUNK_NUMBER_OF_OUTBOUND_STREAMS_OFFSET),
tvb_get_ntohs(chunk_tvb, INIT_CHUNK_NUMBER_OF_INBOUND_STREAMS_OFFSET));
}
- /* handle variable paramters */
+ /* handle variable parameters */
chunk_length -= INIT_CHUNK_FIXED_PARAMTERS_LENGTH;
parameters_tvb = tvb_new_subset_length_caplen(chunk_tvb, INIT_CHUNK_VARIABLE_LENGTH_PARAMETER_OFFSET,
MIN(chunk_length, tvb_captured_length_remaining(chunk_tvb, INIT_CHUNK_VARIABLE_LENGTH_PARAMETER_OFFSET)),
@@ -4917,7 +4917,7 @@ dissect_sctp_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea
}
-static gboolean
+static bool
capture_sctp(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_sctp);
diff --git a/epan/dissectors/packet-scylla.c b/epan/dissectors/packet-scylla.c
index 45c7ca0d97..23ad2bc622 100644
--- a/epan/dissectors/packet-scylla.c
+++ b/epan/dissectors/packet-scylla.c
@@ -84,7 +84,7 @@ static gint ett_scylla_mut;
static gint ett_scylla_mut_pkey;
static gint ett_scylla_read_data;
-static gboolean scylla_desegment = TRUE;
+static bool scylla_desegment = true;
static expert_field ei_scylla_response_missing;
diff --git a/epan/dissectors/packet-sdp.c b/epan/dissectors/packet-sdp.c
index 8abe347e6f..a2aaa0ea45 100644
--- a/epan/dissectors/packet-sdp.c
+++ b/epan/dissectors/packet-sdp.c
@@ -24,6 +24,7 @@
#include <epan/show_exception.h>
#include <epan/addr_resolv.h>
#include <epan/conversation.h>
+#include <epan/proto_data.h>
#include <epan/strutil.h>
#include <wsutil/strtoi.h>
@@ -66,11 +67,11 @@ static int proto_sdp;
static int proto_sprt;
static const char* UNKNOWN_ENCODING = "Unknown";
-static wmem_tree_t *sdp_transport_reqs = NULL;
-static wmem_tree_t *sdp_transport_rsps = NULL;
+static wmem_tree_t *sdp_transport_reqs;
+static wmem_tree_t *sdp_transport_rsps;
/* preference globals */
-static gboolean global_sdp_establish_conversation = TRUE;
+static bool global_sdp_establish_conversation = true;
/* Top level fields */
static int hf_protocol_version;
@@ -279,6 +280,9 @@ typedef struct {
/* Data parsed from "m=" */
wmem_array_t *media_descriptions; /* array of media_description_t */
+ wmem_array_t *sdp_setup_info_list; /* array of sdp_setup_info_t that refer
+ * to the same RTP conversation */
+
/* SRTP related info XXX note currently we only handle one crypto line in the SDP
* We should probably handle offer/answer and session updates etc(SIP) quite possibly the whole handling of
* seting up the RTP conversations should be done by the signaling protocol(s) calling the SDP dissector
@@ -2285,6 +2289,7 @@ static void
apply_sdp_transport(packet_info *pinfo, transport_info_t *transport_info, int request_frame, sdp_setup_info_t *setup_info)
{
int establish_frame = 0;
+ wmem_array_t *setup_info_list;
struct srtp_info *srtp_info = NULL;
@@ -2407,6 +2412,20 @@ apply_sdp_transport(packet_info *pinfo, transport_info_t *transport_info, int re
bfcp_add_address(pinfo, PT_UDP, &media_desc->conn_addr, media_desc->media_port, "SDP", establish_frame);
}
} /* end of loop through all media descriptions. */
+
+ /* Copy the list of setup info of calls with the same RTP information
+ * to the transport info, so that we have it when dissecting the
+ * request as well.
+ * XXX - There can be multiple media descriptions, and while this SDP's
+ * setup info is on all of them, some other SDP might have some but not
+ * all media descriptions, so the arrays of setup infos might be different.
+ * They should be consolidated as with rtp_add_setup_info_if_no_duplicate()
+ * in packet-rtp.c, or stored with each media descriptor.
+ */
+ setup_info_list = p_get_proto_data(pinfo->pool, pinfo, proto_sdp, 0);
+ if (setup_info_list) {
+ transport_info->sdp_setup_info_list = setup_info_list;
+ }
}
void
@@ -2624,13 +2643,11 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
memset(&sdp_data, 0, sizeof(sdp_data));
- if (!pinfo->fd->visited) {
- transport_info = (transport_info_t*)wmem_tree_lookup32( sdp_transport_reqs, pinfo->num );
+ transport_info = (transport_info_t*)wmem_tree_lookup32( sdp_transport_reqs, pinfo->num );
- if (transport_info == NULL) {
- /* Can't find it in the requests, make sure it's not a response */
- transport_info = (transport_info_t*)wmem_tree_lookup32( sdp_transport_rsps, pinfo->num );
- }
+ if (transport_info == NULL) {
+ /* Can't find it in the requests, make sure it's not a response */
+ transport_info = (transport_info_t*)wmem_tree_lookup32( sdp_transport_rsps, pinfo->num );
}
if (transport_info == NULL) {
@@ -2839,6 +2856,11 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
* Use 0 as request_frame since there is no (known) request.
*/
apply_sdp_transport(pinfo, transport_info, 0, setup_info);
+ /* Save the list of setup info of calls with the same RTP information
+ * to the packet in file scope, since transport_info is local and
+ * we won't do this on future passes.
+ */
+ p_add_proto_data(wmem_file_scope(), pinfo, proto_sdp, 0, transport_info->sdp_setup_info_list);
}
/* Add information to the VoIP Calls dialog. */
@@ -2901,30 +2923,28 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
proto_tree_add_item(sdp_tree, hf_sdp_data, tvb, offset, datalen, ENC_NA);
}
/* Add Trace info */
- conversation_t *sdp_conv;
- wmem_array_t *sdp_conv_info_list;
- sdp_conv = find_conversation_pinfo(pinfo, 0);
- if (sdp_conv) {
+ wmem_array_t *setup_info_list = transport_info->sdp_setup_info_list;
+ if (!setup_info_list) {
+ setup_info_list = (wmem_array_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_sdp, 0);
+ }
+ if (setup_info_list) {
guint i;
sdp_setup_info_t *stored_setup_info;
proto_item *item;
- sdp_conv_info_list = (wmem_array_t *)conversation_get_proto_data(sdp_conv, proto_sdp);
- if(sdp_conv_info_list){
- for (i = 0; i < wmem_array_get_count(sdp_conv_info_list); i++) {
- stored_setup_info = (sdp_setup_info_t *)wmem_array_index(sdp_conv_info_list, i);
- if (stored_setup_info->hf_id) {
- if (stored_setup_info->hf_type == SDP_TRACE_ID_HF_TYPE_STR) {
- item = proto_tree_add_string(sdp_tree, stored_setup_info->hf_id, tvb, 0, 0, stored_setup_info->trace_id.str);
- proto_item_set_generated(item);
- if (stored_setup_info->add_hidden == TRUE) {
- proto_item_set_hidden(item);
- }
- } else if (stored_setup_info->hf_type == SDP_TRACE_ID_HF_TYPE_GUINT32) {
- item = proto_tree_add_uint(sdp_tree, stored_setup_info->hf_id, tvb, 0, 0, stored_setup_info->trace_id.num);
- proto_item_set_generated(item);
- if (stored_setup_info->add_hidden == TRUE) {
- proto_item_set_hidden(item);
- }
+ for (i = 0; i < wmem_array_get_count(setup_info_list); i++) {
+ stored_setup_info = (sdp_setup_info_t *)wmem_array_index(setup_info_list, i);
+ if (stored_setup_info->hf_id) {
+ if (stored_setup_info->hf_type == SDP_TRACE_ID_HF_TYPE_STR) {
+ item = proto_tree_add_string(sdp_tree, stored_setup_info->hf_id, tvb, 0, 0, stored_setup_info->trace_id.str);
+ proto_item_set_generated(item);
+ if (stored_setup_info->add_hidden == TRUE) {
+ proto_item_set_hidden(item);
+ }
+ } else if (stored_setup_info->hf_type == SDP_TRACE_ID_HF_TYPE_GUINT32) {
+ item = proto_tree_add_uint(sdp_tree, stored_setup_info->hf_id, tvb, 0, 0, stored_setup_info->trace_id.num);
+ proto_item_set_generated(item);
+ if (stored_setup_info->add_hidden == TRUE) {
+ proto_item_set_hidden(item);
}
}
}
diff --git a/epan/dissectors/packet-sdp.h b/epan/dissectors/packet-sdp.h
index 058ebd640f..e20c57c0da 100644
--- a/epan/dissectors/packet-sdp.h
+++ b/epan/dissectors/packet-sdp.h
@@ -37,10 +37,6 @@ enum sdp_trace_id_hf_type
*/
#define SDP_INFO_OFFSET 10 /* Max number of SDP data occurensies in a single frame */
-typedef struct _sdp_conv_info {
- wmem_array_t *sdp_setup_info_list;
-} sdp_conv_info_t;
-
typedef struct _sdp_setup_info {
int hf_id; /* Header field to use */
enum sdp_trace_id_hf_type hf_type; /* Indicates which of the following variables to use( add guint32 etc as needed)*/
diff --git a/epan/dissectors/packet-selfm.c b/epan/dissectors/packet-selfm.c
index 0a4fcf09ff..1b431a3586 100644
--- a/epan/dissectors/packet-selfm.c
+++ b/epan/dissectors/packet-selfm.c
@@ -331,10 +331,10 @@ static dissector_handle_t selfm_handle;
/* Globals for SEL Protocol Preferences */
-static gboolean selfm_desegment = TRUE;
-static gboolean selfm_telnet_clean = TRUE;
-static gboolean selfm_crc16 = FALSE; /* Default CRC16 validation to false */
-static const char *selfm_ser_list = NULL;
+static bool selfm_desegment = true;
+static bool selfm_telnet_clean = true;
+static bool selfm_crc16; /* Default CRC16 validation to false */
+static const char *selfm_ser_list;
/***************************************************************************************/
/* Fast Meter Message structs */
diff --git a/epan/dissectors/packet-ses.c b/epan/dissectors/packet-ses.c
index 0c85f33940..423cbd666a 100644
--- a/epan/dissectors/packet-ses.c
+++ b/epan/dissectors/packet-ses.c
@@ -187,7 +187,7 @@ static expert_field ei_ses_bad_parameter_length;
#define PROTO_STRING_CLSES "ISO 9548-1 OSI Connectionless Session Protocol"
-static dissector_handle_t pres_handle = NULL;
+static dissector_handle_t pres_handle;
static reassembly_table ses_reassembly_table;
@@ -318,11 +318,11 @@ static const value_string reason_vals[] =
static value_string_ext reason_vals_ext = VALUE_STRING_EXT_INIT(reason_vals);
/* desegmentation of OSI over ses */
-static gboolean ses_desegment = TRUE;
+static bool ses_desegment = true;
/* RTSE reassembly data */
-static guint ses_pres_ctx_id = 0;
-static gboolean ses_rtse_reassemble = FALSE;
+static guint ses_pres_ctx_id;
+static gboolean ses_rtse_reassemble;
static void
call_pres_dissector(tvbuff_t *tvb, int offset, guint16 param_len,
diff --git a/epan/dissectors/packet-sflow.c b/epan/dissectors/packet-sflow.c
index ae84a8d2c1..883612e406 100644
--- a/epan/dissectors/packet-sflow.c
+++ b/epan/dissectors/packet-sflow.c
@@ -54,8 +54,8 @@ static dissector_handle_t sflow_handle;
/*
* sflow_245_ports : holds the currently used range of ports for sflow
*/
-static gboolean global_dissect_samp_headers = TRUE;
-static gboolean global_analyze_samp_ip_headers = FALSE;
+static bool global_dissect_samp_headers = true;
+static bool global_analyze_samp_ip_headers;
#define ENTERPRISE_DEFAULT 0
@@ -379,7 +379,7 @@ static int hf_sflow_245_packet_information_type;
static int hf_sflow_245_extended_information_type;
static int hf_sflow_245_vlan_in; /* incoming 802.1Q VLAN ID */
static int hf_sflow_245_vlan_out; /* outgoing 802.1Q VLAN ID */
-static int hf_sflow_245_pri_in; /* incominging 802.1p priority */
+static int hf_sflow_245_pri_in; /* incoming 802.1p priority */
static int hf_sflow_245_pri_out; /* outgoing 802.1p priority */
static int hf_sflow_245_nexthop_v4; /* nexthop address */
static int hf_sflow_245_nexthop_v6; /* nexthop address */
diff --git a/epan/dissectors/packet-sgsap.c b/epan/dissectors/packet-sgsap.c
index 2a1d0813ab..ebaa16614a 100644
--- a/epan/dissectors/packet-sgsap.c
+++ b/epan/dissectors/packet-sgsap.c
@@ -113,7 +113,7 @@ de_sgsap_eps_loc_upd_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset - offset;
}
/*
* 9.4.3 Erroneous message
@@ -160,7 +160,7 @@ de_sgsap_err_msg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
}
- return(len);
+ return len;
}
/*
* 9.4.3a E-UTRAN Cell Global Identity
@@ -181,7 +181,7 @@ de_sgsap_ecgi(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offse
proto_tree_add_item(tree, hf_sgsap_eci, tvb, curr_offset, 4, ENC_BIG_ENDIAN);
curr_offset += 4;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.4.4 Global CN-Id
@@ -206,7 +206,7 @@ de_sgsap_g_cn_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
proto_tree_add_item(tree, hf_sgsap_cn_id, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
curr_offset += 2;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.4.5 IMEISV
@@ -229,7 +229,7 @@ de_sgsap_imeisv(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32
snprintf(add_string, (len<<2)+4, " - %s", imeisv_str);
}
- return(len);
+ return len;
}
/*
@@ -263,7 +263,7 @@ de_sgsap_imsi_det_eps(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g
proto_tree_add_item(tree, hf_sgsap_imsi_det_eps, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset += 1;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.4.8 IMSI detach from non-EPS service type
@@ -287,7 +287,7 @@ de_sgsap_imsi_det_non_eps(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U
proto_tree_add_item(tree, hf_sgsap_imsi_det_non_eps, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset += 1;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.4.9 LCS client identity
@@ -314,7 +314,7 @@ de_sgsap_lcs_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
proto_tree_add_item(tree, hf_sgsap_lcs_indic, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
curr_offset += 1;
- return(curr_offset-offset);
+ return curr_offset-offset;
}
/*
* 9.4.11 Location area identifier
@@ -341,7 +341,7 @@ de_sgsap_mm_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint3
dtap_mm_mm_info(tvb, tree, pinfo, curr_offset, len);
- return(len);
+ return len;
}
/*
@@ -372,7 +372,7 @@ de_sgsap_mme_name(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
}
- return(len);
+ return len;
}
/*
* 9.4.14 Mobile identity
@@ -405,7 +405,7 @@ de_sgsap_nas_msg_container(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
call_dissector(gsm_a_dtap_handle, new_tvb, pinfo, tree);
}
- return(len);
+ return len;
}
/*
* 9.4.16 Reject cause
@@ -443,7 +443,7 @@ de_sgsap_serv_indic(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gui
}
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 9.4.18 SGs cause
@@ -486,7 +486,7 @@ de_sgsap_sgs_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
}
curr_offset++;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 9.4.19 SS code
@@ -537,7 +537,7 @@ de_sgsap_ue_emm_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, gu
proto_tree_add_item(tree, hf_sgsap_ue_emm_mode, tvb, offset, 1, ENC_BIG_ENDIAN);
curr_offset += 1;
- return(curr_offset - offset);
+ return curr_offset-offset;
}
/*
* 9.4.22 VLR name
@@ -565,7 +565,7 @@ de_sgsap_vlr_name(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
snprintf(add_string, string_len, " - %s", fqdn);
}
- return(len);
+ return len;
}
/*
@@ -590,11 +590,10 @@ de_sgsap_vlr_name(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint
static guint16
de_sgsap_add_paging_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
{
-
/* Octet 3 0 0 0 0 0 0 0 CSRI */
proto_tree_add_item(tree, hf_sgsap_csri, tvb, offset, 1, ENC_BIG_ENDIAN);
- return(len);
+ return len;
}
#if 0
@@ -612,7 +611,7 @@ de_sgsap_tmsi_based_nri_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
* Octet 3 and Octet 4 The rest of the information element is coded as the value part of the Network resource identifier container IE
* defined in 3GPP TS 24.008.
*/
- return(len);
+ return len;
}
#endif
/*
@@ -635,7 +634,7 @@ de_sgsap_selected_cs_dmn_op(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
dissect_e212_mcc_mnc_wmem_packet_str(tvb, pinfo, sub_tree, offset, E212_LAI, TRUE);
- return(len);
+ return len;
}
static const value_string sgsap_elem_strings[] = {
diff --git a/epan/dissectors/packet-sigcomp.c b/epan/dissectors/packet-sigcomp.c
index 99ee3e852d..6b961739b2 100644
--- a/epan/dissectors/packet-sigcomp.c
+++ b/epan/dissectors/packet-sigcomp.c
@@ -165,16 +165,16 @@ static dissector_handle_t sigcomp_tcp_handle;
#define SIGCOMP_TCP_PORT_RANGE "5555,6666" /* Not IANA registered */
/* Default preference whether to display the bytecode in UDVM operands or not */
-static gboolean display_udvm_bytecode = FALSE;
+static bool display_udvm_bytecode;
/* Default preference whether to dissect the UDVM code or not */
/* WARNING: Setting this to true might result in the entire dissector being
disabled by default or removed completely. */
-static gboolean dissect_udvm_code = FALSE;
-static gboolean display_raw_txt = FALSE;
+static bool dissect_udvm_code;
+static bool display_raw_txt;
/* Default preference whether to decompress the message or not */
/* WARNING: Setting this to true might result in the entire dissector being
disabled by default or removed completely. */
-static gboolean decompress = FALSE;
+static bool decompress;
/* Default preference whether to print debug info at execution of UDVM
* 0 = No printout
* 1 = details level 1
@@ -182,7 +182,7 @@ static gboolean decompress = FALSE;
* 3 = details level 3
* 4 = details level 4
*/
-static gint udvm_print_detail_level = 0;
+static gint udvm_print_detail_level;
/* Value strings */
static const value_string length_encoding_vals[] = {
@@ -897,7 +897,7 @@ static const guint8 presence_static_dictionary_for_sigcomp[PRESENCE_STATE_LENGTH
/* -0D90, */ 0x09, 0x0b, 0x2a
};
-static GHashTable *state_buffer_table=NULL;
+static GHashTable *state_buffer_table;
static void
diff --git a/epan/dissectors/packet-signal-pdu.c b/epan/dissectors/packet-signal-pdu.c
index 28a25ee48f..0c808d7906 100644
--- a/epan/dissectors/packet-signal-pdu.c
+++ b/epan/dissectors/packet-signal-pdu.c
@@ -72,22 +72,22 @@
/* ID wireshark identifies the dissector by */
static int proto_signal_pdu;
-static dissector_handle_t signal_pdu_handle_someip = NULL;
-static dissector_handle_t signal_pdu_handle_can = NULL;
-static dissector_handle_t signal_pdu_handle_flexray = NULL;
-static dissector_handle_t signal_pdu_handle_lin = NULL;
-static dissector_handle_t signal_pdu_handle_pdu_transport = NULL;
-static dissector_handle_t signal_pdu_handle_ipdum = NULL;
-static dissector_handle_t signal_pdu_handle_isobus = NULL;
+static dissector_handle_t signal_pdu_handle_someip;
+static dissector_handle_t signal_pdu_handle_can;
+static dissector_handle_t signal_pdu_handle_flexray;
+static dissector_handle_t signal_pdu_handle_lin;
+static dissector_handle_t signal_pdu_handle_pdu_transport;
+static dissector_handle_t signal_pdu_handle_ipdum;
+static dissector_handle_t signal_pdu_handle_isobus;
static int hf_pdu_name;
static int hf_payload_unparsed;
static gint ett_spdu_payload;
static gint ett_spdu_signal;
-static gboolean spdu_deserializer_activated = TRUE;
-static gboolean spdu_deserializer_show_hidden = FALSE;
-static gboolean spdu_deserializer_hide_raw_values = TRUE;
+static bool spdu_deserializer_activated = true;
+static bool spdu_deserializer_show_hidden;
+static bool spdu_deserializer_hide_raw_values = true;
/*** expert info items ***/
static expert_field ei_spdu_payload_truncated;
@@ -95,30 +95,30 @@ static expert_field ei_spdu_config_error;
static expert_field ei_spdu_unaligned_data;
/*** Data Structure for UAT based config ***/
-static GHashTable *data_spdu_messages = NULL;
-
-static GHashTable *data_spdu_signal_list = NULL;
-static GHashTable *data_spdu_signal_value_names = NULL;
-
-static GHashTable *data_spdu_someip_mappings = NULL;
-static GHashTable *data_spdu_can_mappings = NULL;
-static GHashTable *data_spdu_flexray_mappings = NULL;
-static GHashTable *data_spdu_lin_mappings = NULL;
-static GHashTable *data_spdu_pdu_transport_mappings = NULL;
-static GHashTable *data_spdu_ipdum_mappings = NULL;
-static GHashTable *data_spdu_dlt_mappings = NULL;
-static GHashTable *data_spdu_uds_mappings = NULL;
-static GHashTable *data_spdu_isobus_mappings = NULL;
-
-static hf_register_info *dynamic_hf_base_raw = NULL;
-static hf_register_info *dynamic_hf_agg_sum = NULL;
-static hf_register_info *dynamic_hf_agg_avg = NULL;
-static hf_register_info *dynamic_hf_agg_int = NULL;
-static guint dynamic_hf_number_of_entries = 0;
-static guint dynamic_hf_base_raw_number = 0;
-static guint dynamic_hf_agg_sum_number = 0;
-static guint dynamic_hf_agg_avg_number = 0;
-static guint dynamic_hf_agg_int_number = 0;
+static GHashTable *data_spdu_messages;
+
+static GHashTable *data_spdu_signal_list;
+static GHashTable *data_spdu_signal_value_names;
+
+static GHashTable *data_spdu_someip_mappings;
+static GHashTable *data_spdu_can_mappings;
+static GHashTable *data_spdu_flexray_mappings;
+static GHashTable *data_spdu_lin_mappings;
+static GHashTable *data_spdu_pdu_transport_mappings;
+static GHashTable *data_spdu_ipdum_mappings;
+static GHashTable *data_spdu_dlt_mappings;
+static GHashTable *data_spdu_uds_mappings;
+static GHashTable *data_spdu_isobus_mappings;
+
+static hf_register_info *dynamic_hf_base_raw;
+static hf_register_info *dynamic_hf_agg_sum;
+static hf_register_info *dynamic_hf_agg_avg;
+static hf_register_info *dynamic_hf_agg_int;
+static guint dynamic_hf_number_of_entries;
+static guint dynamic_hf_base_raw_number;
+static guint dynamic_hf_agg_sum_number;
+static guint dynamic_hf_agg_avg_number;
+static guint dynamic_hf_agg_int_number;
#define HF_TYPE_BASE 0
#define HF_TYPE_RAW 1
@@ -326,41 +326,41 @@ typedef struct _spdu_isobus_mapping {
typedef spdu_isobus_mapping_t spdu_isobus_mapping_uat_t;
-static generic_one_id_string_t *spdu_message_ident = NULL;
-static guint spdu_message_ident_num = 0;
+static generic_one_id_string_t *spdu_message_ident;
+static guint spdu_message_ident_num;
-static spdu_signal_list_uat_t *spdu_signal_list = NULL;
-static guint spdu_signal_list_num = 0;
+static spdu_signal_list_uat_t *spdu_signal_list;
+static guint spdu_signal_list_num;
-static spdu_signal_value_name_uat_t *spdu_signal_value_names = NULL;
-static guint spdu_parameter_value_names_num = 0;
+static spdu_signal_value_name_uat_t *spdu_signal_value_names;
+static guint spdu_parameter_value_names_num;
-static spdu_someip_mapping_t *spdu_someip_mapping = NULL;
-static guint spdu_someip_mapping_num = 0;
+static spdu_someip_mapping_t *spdu_someip_mapping;
+static guint spdu_someip_mapping_num;
-static spdu_can_mapping_t *spdu_can_mapping = NULL;
-static guint spdu_can_mapping_num = 0;
+static spdu_can_mapping_t *spdu_can_mapping;
+static guint spdu_can_mapping_num;
-static spdu_flexray_mapping_t *spdu_flexray_mapping = NULL;
-static guint spdu_flexray_mapping_num = 0;
+static spdu_flexray_mapping_t *spdu_flexray_mapping;
+static guint spdu_flexray_mapping_num;
-static spdu_lin_mapping_t *spdu_lin_mapping = NULL;
-static guint spdu_lin_mapping_num = 0;
+static spdu_lin_mapping_t *spdu_lin_mapping;
+static guint spdu_lin_mapping_num;
-static spdu_pdu_transport_mapping_t *spdu_pdu_transport_mapping = NULL;
-static guint spdu_pdu_transport_mapping_num = 0;
+static spdu_pdu_transport_mapping_t *spdu_pdu_transport_mapping;
+static guint spdu_pdu_transport_mapping_num;
-static spdu_ipdum_mapping_t *spdu_ipdum_mapping = NULL;
-static guint spdu_ipdum_mapping_num = 0;
+static spdu_ipdum_mapping_t *spdu_ipdum_mapping;
+static guint spdu_ipdum_mapping_num;
-static spdu_dlt_mapping_t *spdu_dlt_mapping = NULL;
-static guint spdu_dlt_mapping_num = 0;
+static spdu_dlt_mapping_t *spdu_dlt_mapping;
+static guint spdu_dlt_mapping_num;
-static spdu_uds_mapping_t *spdu_uds_mapping = NULL;
-static guint spdu_uds_mapping_num = 0;
+static spdu_uds_mapping_t *spdu_uds_mapping;
+static guint spdu_uds_mapping_num;
-static spdu_isobus_mapping_t *spdu_isobus_mapping = NULL;
-static guint spdu_isobus_mapping_num = 0;
+static spdu_isobus_mapping_t *spdu_isobus_mapping;
+static guint spdu_isobus_mapping_num;
void proto_register_signal_pdu(void);
void proto_reg_handoff_signal_pdu(void);
@@ -2091,7 +2091,7 @@ typedef struct _spdu_aggregation {
gdouble sum_time_value_products;
} spdu_aggregation_t;
-static wmem_map_t *spdu_aggregation_data = NULL;
+static wmem_map_t *spdu_aggregation_data;
static spdu_aggregation_t *
get_or_create_aggregation_data(packet_info *pinfo, gint hf_id_effective) {
diff --git a/epan/dissectors/packet-simulcrypt.c b/epan/dissectors/packet-simulcrypt.c
index 2bc9179542..c617deb44d 100644
--- a/epan/dissectors/packet-simulcrypt.c
+++ b/epan/dissectors/packet-simulcrypt.c
@@ -1728,7 +1728,7 @@ proto_register_simulcrypt (void)
NULL, HFILL }},
{ &hf_simulcrypt_error_description,
- { "Error status", "simulcrypt.error_description", FT_STRING, BASE_NONE, NULL, 0x0, /* error_description --> ASCII byte string */
+ { "Error description", "simulcrypt.error_description", FT_STRING, BASE_NONE, NULL, 0x0, /* error_description --> ASCII byte string */
NULL, HFILL }},
{ &hf_simulcrypt_psig_parameter_type,
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index 462079d295..5a486c4a95 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -833,38 +833,38 @@ static guint sip_tls_port = TLS_PORT_SIP;
/* global_sip_raw_text determines whether we are going to display */
/* the raw text of the SIP message, much like the MEGACO dissector does. */
-static gboolean global_sip_raw_text = FALSE;
+static bool global_sip_raw_text;
/* global_sip_raw_text_without_crlf determines whether we are going to display */
/* the raw text of the SIP message with or without the '\r\n'. */
-static gboolean global_sip_raw_text_without_crlf = FALSE;
+static bool global_sip_raw_text_without_crlf;
/* global_sip_raw_text_body_default_encoding determines what charset we are going to display the body */
static gint global_sip_raw_text_body_default_encoding = IANA_CS_UTF_8;
/* strict_sip_version determines whether the SIP dissector enforces
* the SIP version to be "SIP/2.0". */
-static gboolean strict_sip_version = TRUE;
+static bool strict_sip_version = true;
/*
* desegmentation of SIP headers
* (when we are over TCP or another protocol providing the desegmentation API)
*/
-static gboolean sip_desegment_headers = TRUE;
+static bool sip_desegment_headers = true;
/*
* desegmentation of SIP bodies
* (when we are over TCP or another protocol providing the desegmentation API)
*/
-static gboolean sip_desegment_body = TRUE;
+static bool sip_desegment_body = true;
/*
* same source port for retransmissions
*/
-static gboolean sip_retrans_the_same_sport = TRUE;
+static bool sip_retrans_the_same_sport = true;
/* whether we hold off tracking RTP conversations until an SDP answer is received */
-static gboolean sip_delay_sdp_changes = FALSE;
+static bool sip_delay_sdp_changes;
/* Hide the generated Call IDs or not */
-static gboolean sip_hide_generatd_call_ids = FALSE;
+static bool sip_hide_generatd_call_ids;
/* Extension header subdissectors */
static dissector_table_t ext_hdr_subdissector_table;
@@ -1000,7 +1000,7 @@ UAT_CSTRING_CB_DEF(sip_custom_header_fields, header_name, header_field_t)
UAT_CSTRING_CB_DEF(sip_custom_header_fields, header_desc, header_field_t)
/* SIP authorization parameters */
-static gboolean global_sip_validate_authorization = FALSE;
+static bool global_sip_validate_authorization;
typedef struct _authorization_user_t {
gchar* username;
@@ -1008,8 +1008,8 @@ typedef struct _authorization_user_t {
gchar* password;
} authorization_user_t;
-static authorization_user_t* sip_authorization_users = NULL;
-static guint sip_authorization_num_users = 0;
+static authorization_user_t* sip_authorization_users;
+static guint sip_authorization_num_users;
static bool
authorization_users_update_cb(void *r, char **err)
@@ -1165,8 +1165,8 @@ static sip_info_value_t *stat_info;
* maybe Via count as extra key to limit view to one hop)
****************************************************************************/
-static GHashTable *sip_hash = NULL; /* Hash table */
-static GHashTable *sip_headers_hash = NULL; /* Hash table */
+static GHashTable *sip_hash; /* Hash table */
+static GHashTable *sip_headers_hash; /* Hash table */
/* Types for hash table keys and values */
#define MAX_CALL_ID_SIZE 128
@@ -1180,6 +1180,7 @@ typedef struct
guint32 source_port;
address dest_address;
guint32 dest_port;
+ port_type ptype;
} sip_hash_key;
@@ -1230,7 +1231,8 @@ static gint sip_equal(gconstpointer v, gconstpointer v2)
return (addresses_equal(&(val1->source_address), &(val2->source_address))) &&
(val1->source_port == val2->source_port) &&
(addresses_equal(&(val1->dest_address), &(val2->dest_address))) &&
- (val1->dest_port == val2->dest_port);
+ (val1->dest_port == val2->dest_port) &&
+ (val1->ptype == val2->ptype);
}
@@ -5229,12 +5231,6 @@ guint sip_is_packet_resend(packet_info *pinfo,
sip_frame_result_value *sip_frame_result = NULL;
guint result = 0;
- /* Only consider retransmission of UDP packets */
- if (pinfo->ptype != PT_UDP)
- {
- return 0;
- }
-
/* Don't consider packets that appear to be resent only because
they are e.g. returned in ICMP unreachable messages. */
if (pinfo->flags.in_error_pkt)
@@ -5281,6 +5277,7 @@ guint sip_is_packet_resend(packet_info *pinfo,
} else {
key.source_port = MAGIC_SOURCE_PORT;
}
+ key.ptype = pinfo->ptype;
/* Do the lookup */
p_val = (sip_hash_value*)g_hash_table_lookup(sip_hash, &key);
@@ -5322,6 +5319,7 @@ guint sip_is_packet_resend(packet_info *pinfo,
} else {
p_key->source_port = MAGIC_SOURCE_PORT;
}
+ p_key->ptype = pinfo->ptype;
p_val->cseq = cseq_number;
p_val->method = wmem_strdup(wmem_file_scope(), cseq_method);
@@ -5429,12 +5427,6 @@ guint sip_find_request(packet_info *pinfo,
gint seconds_between_packets;
gint nseconds_between_packets;
- /* Only consider UDP */
- if (pinfo->ptype != PT_UDP)
- {
- return 0;
- }
-
/* Ignore error (usually ICMP) frames */
if (pinfo->flags.in_error_pkt)
{
@@ -5474,6 +5466,7 @@ guint sip_find_request(packet_info *pinfo,
pinfo->net_dst.data);
key.dest_port = pinfo->srcport;
key.source_port = pinfo->destport;
+ key.ptype = pinfo->ptype;
/* Do the lookup */
p_val = (sip_hash_value*)g_hash_table_lookup(sip_hash, &key);
@@ -5543,12 +5536,6 @@ guint sip_find_invite(packet_info *pinfo,
gint seconds_between_packets;
gint nseconds_between_packets;
- /* Only consider UDP */
- if (pinfo->ptype != PT_UDP)
- {
- return 0;
- }
-
/* Ignore error (usually ICMP) frames */
if (pinfo->flags.in_error_pkt)
{
@@ -5588,6 +5575,7 @@ guint sip_find_invite(packet_info *pinfo,
pinfo->net_src.data);
key.dest_port = pinfo->destport;
key.source_port = pinfo->srcport;
+ key.ptype = pinfo->ptype;
/* Do the lookup */
p_val = (sip_hash_value*)g_hash_table_lookup(sip_hash, &key);
diff --git a/epan/dissectors/packet-skinny.c b/epan/dissectors/packet-skinny.c
index 774ab3e29b..c43f858f45 100644
--- a/epan/dissectors/packet-skinny.c
+++ b/epan/dissectors/packet-skinny.c
@@ -2208,7 +2208,7 @@ static int ett_skinny;
static int ett_skinny_tree;
/* preference globals */
-static gboolean global_skinny_desegment = true;
+static bool global_skinny_desegment = true;
/* tap register id */
static int skinny_tap;
@@ -2216,7 +2216,7 @@ static int skinny_tap;
/* skinny protocol tap info */
#define MAX_SKINNY_MESSAGES_IN_PACKET 10
static skinny_info_t pi_arr[MAX_SKINNY_MESSAGES_IN_PACKET];
-static int pi_current = 0;
+static int pi_current;
static skinny_info_t *si;
dissector_handle_t skinny_handle;
diff --git a/epan/dissectors/packet-skinny.c.in b/epan/dissectors/packet-skinny.c.in
index 1fcb30ec8d..0b91ad9cb9 100644
--- a/epan/dissectors/packet-skinny.c.in
+++ b/epan/dissectors/packet-skinny.c.in
@@ -167,7 +167,7 @@ static int ett_skinny;
static int ett_skinny_tree;
/* preference globals */
-static gboolean global_skinny_desegment = true;
+static bool global_skinny_desegment = true;
/* tap register id */
static int skinny_tap;
@@ -175,7 +175,7 @@ static int skinny_tap;
/* skinny protocol tap info */
#define MAX_SKINNY_MESSAGES_IN_PACKET 10
static skinny_info_t pi_arr[MAX_SKINNY_MESSAGES_IN_PACKET];
-static int pi_current = 0;
+static int pi_current;
static skinny_info_t *si;
dissector_handle_t skinny_handle;
diff --git a/epan/dissectors/packet-sll.c b/epan/dissectors/packet-sll.c
index 3c1485d14e..9e8b99ebbd 100644
--- a/epan/dissectors/packet-sll.c
+++ b/epan/dissectors/packet-sll.c
@@ -182,7 +182,7 @@ sll_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, cons
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
capture_sll(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint16 hatype;
@@ -208,7 +208,7 @@ capture_sll(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cp
return FALSE;
}
-static gboolean
+static bool
capture_sll2(const guchar *pd, int offset _U_, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint16 hatype;
diff --git a/epan/dissectors/packet-slsk.c b/epan/dissectors/packet-slsk.c
index a3808675ca..12bc6dfb15 100644
--- a/epan/dissectors/packet-slsk.c
+++ b/epan/dissectors/packet-slsk.c
@@ -135,11 +135,11 @@ static expert_field ei_slsk_decompression_failed;
/* desegmentation of SoulSeek Message over TCP */
-static gboolean slsk_desegment = TRUE;
+static bool slsk_desegment = true;
#ifdef HAVE_ZLIB
-static gboolean slsk_decompress = TRUE;
+static bool slsk_decompress = true;
#else
-static gboolean slsk_decompress = FALSE;
+static bool slsk_decompress;
#endif
static const value_string slsk_tcp_msgs[] = {
@@ -245,7 +245,8 @@ static const char* connection_type(char con_type[]) {
return "Unknown";
}
-static gboolean check_slsk_format(tvbuff_t *tvb, int offset, const char format[]){
+// NOLINTNEXTLINE(misc-no-recursion)
+static gboolean check_slsk_format(tvbuff_t *tvb, packet_info *pinfo, int offset, const char format[]){
/*
* Returns TRUE if tvbuff beginning at offset matches a certain format
@@ -282,11 +283,14 @@ static gboolean check_slsk_format(tvbuff_t *tvb, int offset, const char format[]
return FALSE;
return TRUE;
}
- return check_slsk_format(tvb, offset, &format[1]);
+ increment_dissection_depth(pinfo);
+ gboolean valid = check_slsk_format(tvb, pinfo, offset, &format[1]);
+ decrement_dissection_depth(pinfo);
+ return valid;
}
-static const char* get_message_type(tvbuff_t *tvb) {
+static const char* get_message_type(tvbuff_t *tvb, packet_info *pinfo) {
/*
* Checks if the Message Code is known.
* If unknown checks if the Message Code is stored in a byte.
@@ -295,11 +299,11 @@ static const char* get_message_type(tvbuff_t *tvb) {
int msg_code = tvb_get_letohl(tvb, 4);
const gchar *message_type = try_val_to_str(msg_code, slsk_tcp_msgs);
if (message_type == NULL) {
- if (check_slsk_format(tvb, 4, "bisis"))
+ if (check_slsk_format(tvb, pinfo, 4, "bisis"))
message_type = "Distributed Search";
- else if (check_slsk_format(tvb, 4, "bssi"))
+ else if (check_slsk_format(tvb, pinfo, 4, "bssi"))
message_type = "Peer Init";
- else if (check_slsk_format(tvb, 4, "bi"))
+ else if (check_slsk_format(tvb, pinfo, 4, "bi"))
message_type = "Pierce Fw";
else
message_type = "Unknown";
@@ -342,7 +346,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
col_set_str(pinfo->cinfo, COL_INFO, "SoulSeek Message");
- col_append_fstr(pinfo->cinfo, COL_INFO, ": %s", get_message_type(tvb));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ": %s", get_message_type(tvb, pinfo));
/* create display subtree for the protocol */
ti = proto_tree_add_item(tree, proto_slsk, tvb, 0, -1, ENC_NA);
@@ -357,7 +361,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
switch (msg_code) {
case 1:
- if (check_slsk_format(tvb, offset, "issi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "issi")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Login (Code: %02d)", msg_code);
@@ -369,7 +373,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_version, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ibs") || check_slsk_format(tvb, offset, "ibsi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ibs") || check_slsk_format(tvb, pinfo, offset, "ibsi")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Login Reply (Code: %02d)", msg_code);
@@ -387,7 +391,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 2:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Set Wait Port (Code: %02d)", msg_code);
@@ -398,7 +402,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 3:
- if (check_slsk_format(tvb, offset, "isii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Peer Address Reply (Code: %02d)", msg_code);
@@ -410,7 +414,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_port, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Peer Address (Code: %02d)", msg_code);
@@ -421,7 +425,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 4:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Shared File List (Code: %02d)", msg_code);
@@ -430,7 +434,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 5:
- if (check_slsk_format(tvb, offset, "isb")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isb")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Exists Reply (Code: %02d)", msg_code);
@@ -440,7 +444,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_user_exists, tvb, offset, 1, ENC_NA);
offset += 1;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Exists Request (Code: %02d)", msg_code);
@@ -448,7 +452,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "i*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "i*")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Shared File List (Code: %02d)", msg_code);
@@ -478,11 +482,11 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
add_new_data_source(pinfo, uncompr_tvb, "Uncompressed SoulSeek data");
uncompr_tvb_offset = 0;
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "i*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "i*")) {
proto_tree_add_item_ret_int(slsk_compr_packet_tree, hf_slsk_num_directories, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j);
uncompr_tvb_offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "si*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "si*")) {
start_offset = uncompr_tvb_offset;
subtree = proto_tree_add_subtree_format(slsk_compr_packet_tree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_directory, &ti_subtree, "Directory #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_directory_name, uncompr_tvb, uncompr_tvb_offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -490,7 +494,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree, hf_slsk_num_files, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j2);
uncompr_tvb_offset += 4;
for (i2 = 0; i2 < j2; i2++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "bsiisi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "bsiisi*")) {
start_offset2 = uncompr_tvb_offset;
subtree2 = proto_tree_add_subtree_format(subtree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_file, &ti_subtree2, "File #%d", i2+1);
proto_tree_add_item(subtree2, hf_slsk_file_code, uncompr_tvb, uncompr_tvb_offset, 1, ENC_NA);
@@ -506,7 +510,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree2, hf_slsk_file_num_attributes, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j3);
uncompr_tvb_offset += 4;
for (i3 = 0; i3 < j3; i3++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "ii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "ii*")) {
subtree3 = proto_tree_add_subtree_format(subtree2, uncompr_tvb, uncompr_tvb_offset, 8, ett_slsk_file_attribute, NULL, "Attribute #%d", i3+1);
proto_tree_add_item(subtree3, hf_slsk_file_attribute_type, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
uncompr_tvb_offset += 4;
@@ -539,7 +543,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 7:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Status Reply (Code: %02d)", msg_code);
@@ -549,7 +553,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_status_code, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Status (Code: %02d)", msg_code);
@@ -560,7 +564,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 9:
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"File Search Result (Code: %02d)", msg_code);
@@ -592,7 +596,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
add_new_data_source(pinfo, uncompr_tvb, "Uncompressed SoulSeek data");
uncompr_tvb_offset = 0;
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "sii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "sii*")) {
proto_tree_add_item_ret_length(slsk_compr_packet_tree, hf_slsk_username, uncompr_tvb, uncompr_tvb_offset, 4, ENC_ASCII|ENC_NA, &str_len);
uncompr_tvb_offset += str_len;
proto_tree_add_item(slsk_compr_packet_tree, hf_slsk_token, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
@@ -600,7 +604,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(slsk_compr_packet_tree, hf_slsk_num_files, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j);
uncompr_tvb_offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "bsiisi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "bsiisi*")) {
start_offset2 = uncompr_tvb_offset;
subtree2 = proto_tree_add_subtree_format(slsk_compr_packet_tree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_file, &ti_subtree2, "File #%d", i+1);
proto_tree_add_item(subtree2, hf_slsk_file_code, uncompr_tvb, uncompr_tvb_offset, 1, ENC_NA);
@@ -616,7 +620,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree2, hf_slsk_file_num_attributes, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j2);
uncompr_tvb_offset += 4;
for (i2 = 0; i2 < j2; i2++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "ii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "ii*")) {
subtree3 = proto_tree_add_subtree_format(subtree2, uncompr_tvb, uncompr_tvb_offset, 8, ett_slsk_file_attribute, NULL, "Attribute #%d", i2+1);
proto_tree_add_item(subtree3, hf_slsk_file_attribute_type, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
uncompr_tvb_offset += 4;
@@ -650,7 +654,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 13:
- if (check_slsk_format(tvb, offset, "isss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isss")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Say ChatRoom (Code: %02d)", msg_code);
@@ -662,7 +666,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_chat_message, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "iss")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Say ChatRoom (Code: %02d)", msg_code);
@@ -675,7 +679,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 14:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Join/Add Room (Code: %02d)", msg_code);
@@ -683,7 +687,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_room, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Join Room User List (Code: %02d)", msg_code);
@@ -695,20 +699,20 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
break; /* invalid format */
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item(slsk_tree, hf_slsk_status_code, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
} else {
@@ -716,13 +720,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "iiiii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iiiii*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 20, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_average_speed, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -739,13 +743,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_num_slotsfull_records, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -758,7 +762,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 15:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server & Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Leave Room (Code: %02d)", msg_code);
@@ -766,7 +770,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_room, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "i")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Info Request (Code: %02d)", msg_code);
@@ -775,7 +779,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 16:
- if (check_slsk_format(tvb, offset, "issiiiiiii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "issiiiiiii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Joined Room (Code: %02d)", msg_code);
@@ -799,7 +803,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "isbiib") || check_slsk_format(tvb, offset, "isbsiib")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isbiib") || check_slsk_format(tvb, pinfo, offset, "isbsiib")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Info Reply (Code: %02d)", msg_code);
@@ -822,7 +826,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 17:
- if (check_slsk_format(tvb, offset, "iss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"User Left Room (Code: %02d)", msg_code);
@@ -835,7 +839,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 18:
- if (check_slsk_format(tvb, offset, "iiss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iiss")) {
/* Client-to-Server */
guint32 len;
@@ -853,7 +857,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
format_text(pinfo->pool, str, len));
offset += 4+len;
}
- else if (check_slsk_format(tvb, offset, "issiii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "issiii")) {
/* Server-to-Client */
guint32 len;
@@ -878,7 +882,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 22:
- if (check_slsk_format(tvb, offset, "iss")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Message User Send (Code: %02d)", msg_code);
@@ -888,7 +892,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_chat_message, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "iiiss")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iiiss")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Message User Receive (Code: %02d)", msg_code);
@@ -905,7 +909,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 23:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Message User Receive Ack (Code: %02d)", msg_code);
@@ -916,7 +920,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 26:
- if (check_slsk_format(tvb, offset, "iis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"File Search (Code: %02d)", msg_code);
@@ -929,7 +933,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 28:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Set Status (Code: %02d)", msg_code);
@@ -940,7 +944,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 32:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Ping (Code: %02d)", msg_code);
@@ -949,7 +953,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 34:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Update Upload Speed (Code: %02d)", msg_code);
@@ -962,7 +966,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 35:
- if (check_slsk_format(tvb, offset, "iii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Shared Files & Folders (Code: %02d)", msg_code);
@@ -975,7 +979,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 36:
- if (check_slsk_format(tvb, offset, "isiiiii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isiiiii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Stats Reply (Code: %02d)", msg_code);
@@ -993,7 +997,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_directories, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "is")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
/* Client-to-Server: send after login successful */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
@@ -1002,7 +1006,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "iis")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Folder Contents Request (Code: %02d)", msg_code);
@@ -1015,7 +1019,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 37:
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Folder Contents Response (Code: %02d)", msg_code);
@@ -1045,7 +1049,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
add_new_data_source(pinfo, uncompr_tvb, "Uncompressed SoulSeek data");
uncompr_tvb_offset = 0;
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "isi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "isi*")) {
guint32 len;
proto_tree_add_item(slsk_compr_packet_tree, hf_slsk_token, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
@@ -1056,7 +1060,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(slsk_compr_packet_tree, hf_slsk_num_directories, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j);
uncompr_tvb_offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "si*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "si*")) {
start_offset = uncompr_tvb_offset;
subtree = proto_tree_add_subtree_format(slsk_compr_packet_tree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_directory, &ti_subtree, "Directory #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_directory_name, uncompr_tvb, uncompr_tvb_offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1064,7 +1068,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree, hf_slsk_num_files, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j2);
uncompr_tvb_offset += 4;
for (i2 = 0; i2 < j2; i2++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "bsiisi*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "bsiisi*")) {
start_offset2 = uncompr_tvb_offset;
subtree2 = proto_tree_add_subtree_format(subtree, uncompr_tvb, uncompr_tvb_offset, 1, ett_slsk_file, &ti_subtree2, "File #%d", i2+1);
proto_tree_add_item(subtree2, hf_slsk_file_code, uncompr_tvb, uncompr_tvb_offset, 1, ENC_NA);
@@ -1080,7 +1084,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_int(subtree2, hf_slsk_file_num_attributes, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN, &j3);
uncompr_tvb_offset += 4;
for (i3 = 0; i3 < j3; i3++) {
- if (check_slsk_format(uncompr_tvb, uncompr_tvb_offset, "ii*")) {
+ if (check_slsk_format(uncompr_tvb, pinfo, uncompr_tvb_offset, "ii*")) {
subtree3 = proto_tree_add_subtree_format(subtree2, uncompr_tvb, uncompr_tvb_offset, 8, ett_slsk_file_attribute, NULL, "Attribute #%d", i3+1);
proto_tree_add_item(subtree3, hf_slsk_file_attribute_type, uncompr_tvb, uncompr_tvb_offset, 4, ENC_LITTLE_ENDIAN);
uncompr_tvb_offset += 4;
@@ -1113,7 +1117,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 40:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Queued Downloads (Code: %02d)", msg_code);
@@ -1123,7 +1127,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "iiis") || check_slsk_format(tvb, offset, "iiisii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iiis") || check_slsk_format(tvb, pinfo, offset, "iiisii")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Transfer Request (Code: %02d)", msg_code);
@@ -1145,7 +1149,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 41:
- if (check_slsk_format(tvb, offset, "iibs") || check_slsk_format(tvb, offset, "iibii") || check_slsk_format(tvb, offset, "iib")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iibs") || check_slsk_format(tvb, pinfo, offset, "iibii") || check_slsk_format(tvb, pinfo, offset, "iib")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Transfer Response (Code: %02d)", msg_code);
@@ -1170,7 +1174,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 42:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Placehold Upload (Code: %02d)", msg_code);
@@ -1181,7 +1185,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 43:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Queue Upload (Code: %02d)", msg_code);
@@ -1192,7 +1196,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 44:
- if (check_slsk_format(tvb, offset, "isi")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Place In Queue (Code: %02d)", msg_code);
@@ -1205,7 +1209,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 46:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Upload Failed (Code: %02d)", msg_code);
@@ -1216,7 +1220,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 50:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Make Own Recommendation (Code: %02d)", msg_code);
@@ -1224,7 +1228,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Remove Own Recommendation (Code: %02d)", msg_code);
@@ -1234,7 +1238,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_ranking, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "iss")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iss")) {
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Queue Failed (Code: %02d)", msg_code);
@@ -1247,7 +1251,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 51:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server: "Add Things I like" */
/* Client-to-Client: "Place In Queue Request" */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
@@ -1259,7 +1263,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 52:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Remove Things I like (Code: %02d)", msg_code);
@@ -1270,13 +1274,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 54:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations Reply (Code: %02d)", msg_code);
@@ -1286,7 +1290,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1302,7 +1306,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 55:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Type 55 (Code: %02d)", msg_code);
@@ -1311,13 +1315,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 56:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Global Rankings (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Global Rankings Reply (Code: %02d)", msg_code);
@@ -1327,7 +1331,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1343,7 +1347,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 57:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Recommendations (Code: %02d)", msg_code);
@@ -1351,7 +1355,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get User Recommendations Reply (Code: %02d)", msg_code);
@@ -1363,7 +1367,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1377,7 +1381,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 58:
- if (check_slsk_format(tvb, offset, "isi*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Admin Command (Code: %02d)", msg_code);
@@ -1389,7 +1393,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_string, &ti_subtree, "String #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_string, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1403,7 +1407,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 60:
- if (check_slsk_format(tvb, offset, "isii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isii")) {
/* Client-to-Server & Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Place In Line Response (Code: %02d)", msg_code);
@@ -1418,7 +1422,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 62:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room Added (Code: %02d)", msg_code);
@@ -1429,7 +1433,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 63:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room Removed (Code: %02d)", msg_code);
@@ -1440,13 +1444,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 64:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room List Request (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Room List (Code: %02d)", msg_code);
@@ -1456,7 +1460,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_room, &ti_subtree, "Room #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_room, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1466,11 +1470,11 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break; /* invalid format */
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_room, &ti_subtree, "Room #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -1483,7 +1487,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 65:
- if (check_slsk_format(tvb, offset, "isissiii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isissiii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Exact File Search (Code: %02d)", msg_code);
@@ -1499,7 +1503,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(slsk_tree, hf_slsk_bytes, tvb, offset, 16, ENC_NA);
offset += 12;
}
- else if (check_slsk_format(tvb, offset, "iissiiib")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "iissiiib")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Exact File Search (Code: %02d)", msg_code);
@@ -1516,7 +1520,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 66:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Admin Message (Code: %02d)", msg_code);
@@ -1527,13 +1531,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 67:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Global User List Request (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "isi*")) { /* same as case 14 */
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) { /* same as case 14 */
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Global User List (Code: %02d)", msg_code);
@@ -1545,18 +1549,18 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
break; /* invalid format */
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item(slsk_tree, hf_slsk_status_code, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
} else {
@@ -1564,13 +1568,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_users_in_room, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "iiiii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iiiii*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 20, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_average_speed, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -1587,13 +1591,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
}
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
proto_tree_add_item_ret_int(slsk_tree, hf_slsk_num_slotsfull_records, tvb, offset, 4, ENC_LITTLE_ENDIAN, &j);
offset += 4;
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "i*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i*")) {
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_user, NULL, "User #%d", i+1);
proto_tree_add_item(subtree, hf_slsk_slotsfull, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -1606,7 +1610,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 68:
- if (check_slsk_format(tvb, offset, "isiiiis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "isiiiis")) {
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Tunneled Message (Code: %02d)", msg_code);
offset += 4;
@@ -1626,13 +1630,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 69:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Privileged User List Request (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Privileged User List (Code: %02d)", msg_code);
@@ -1642,7 +1646,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
@@ -1653,7 +1657,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 71:
- if (check_slsk_format(tvb, offset, "ib")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ib")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Parent List (Code: %02d)", msg_code);
@@ -1664,7 +1668,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 73:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Type 73 (Code: %02d)", msg_code);
@@ -1675,7 +1679,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 83:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Parent Min Speed (Code: %02d)", msg_code);
@@ -1686,7 +1690,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 84:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Parent Speed Connection Ratio (Code: %02d)", msg_code);
@@ -1697,7 +1701,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 86:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Parent Inactivity Before Disconnect (Code: %02d)", msg_code);
@@ -1708,7 +1712,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 87:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Server Inactivity Before Disconnect (Code: %02d)", msg_code);
@@ -1719,7 +1723,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 88:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Nodes In Cache Before Disconnect (Code: %02d)", msg_code);
@@ -1730,7 +1734,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 90:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Seconds Before Ping Children (Code: %02d)", msg_code);
@@ -1741,7 +1745,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 91:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Add To Privileged (Code: %02d)", msg_code);
@@ -1752,13 +1756,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 92:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Check Privileges (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Check Privileges Reply (Code: %02d)", msg_code);
@@ -1769,7 +1773,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 93:
- if (check_slsk_format(tvb, offset, "ibisis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ibisis")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Embedded Message (Code: %02d)", msg_code);
@@ -1792,7 +1796,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 100:
- if (check_slsk_format(tvb, offset, "ib")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ib")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Become Parent (Code: %02d)", msg_code);
@@ -1803,7 +1807,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 102:
- if (check_slsk_format(tvb, offset, "ii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Random Parent Addresses (Code: %02d)", msg_code);
@@ -1813,7 +1817,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "sii*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "sii*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
@@ -1829,7 +1833,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 103:
- if (check_slsk_format(tvb, offset, "iis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Send Wishlist Entry (Code: %02d)", msg_code);
@@ -1842,7 +1846,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 104:
- if (check_slsk_format(tvb, offset, "ii")) {
+ if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Type 104 (Code: %02d)", msg_code);
@@ -1853,13 +1857,13 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 110:
- if (check_slsk_format(tvb, offset, "i")) {
+ if (check_slsk_format(tvb, pinfo, offset, "i")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users (Code: %02d)", msg_code);
offset += 4;
}
- else if (check_slsk_format(tvb, offset, "ii*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users Reply (Code: %02d)", msg_code);
@@ -1869,7 +1873,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 4, ett_slsk_user, &ti_subtree, "User #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_user, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1885,7 +1889,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 111:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations for Item (Code: %02d)", msg_code);
@@ -1893,7 +1897,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Recommendations for Item Reply (Code: %02d)", msg_code);
@@ -1905,7 +1909,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "si*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "si*")) {
start_offset = offset;
subtree = proto_tree_add_subtree_format(slsk_tree, tvb, offset, 1, ett_slsk_recommendation, &ti_subtree, "Recommendation #%d", i+1);
proto_tree_add_item_ret_length(subtree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
@@ -1921,7 +1925,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 112:
- if (check_slsk_format(tvb, offset, "is")) {
+ if (check_slsk_format(tvb, pinfo, offset, "is")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users for Item (Code: %02d)", msg_code);
@@ -1929,7 +1933,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_recommendation, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "isi*")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "isi*")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Get Similar Users for Item Reply (Code: %02d)", msg_code);
@@ -1941,7 +1945,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (j > tvb_reported_length_remaining(tvb, offset))
break;
for (i = 0; i < j; i++) {
- if (check_slsk_format(tvb, offset, "s*")) {
+ if (check_slsk_format(tvb, pinfo, offset, "s*")) {
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
} else {
@@ -1952,7 +1956,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
case 1001:
- if (check_slsk_format(tvb, offset, "iis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "iis")) {
/* Client-to-Server */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Can't Connect To Peer (Code: %02d)", msg_code);
@@ -1962,7 +1966,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item_ret_length(slsk_tree, hf_slsk_username, tvb, offset, 4, ENC_ASCII|ENC_LITTLE_ENDIAN, &str_len);
offset += str_len;
}
- else if (check_slsk_format(tvb, offset, "ii")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "ii")) {
/* Server-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 4, msg_code,
"Can't Connect To Peer (Code: %02d)", msg_code);
@@ -1973,7 +1977,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
break;
default:
- if (check_slsk_format(tvb, offset, "bisis")) {
+ if (check_slsk_format(tvb, pinfo, offset, "bisis")) {
if ( tvb_get_guint8(tvb, offset) == 3 ){
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 1, msg_code,
@@ -1989,7 +1993,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += str_len;
}
}
- else if (check_slsk_format(tvb, offset, "bssi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "bssi")) {
if ( tvb_get_guint8(tvb, offset) == 1 ){
/* Client-to-Client */
guint32 len;
@@ -2009,7 +2013,7 @@ static int dissect_slsk_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 4;
}
}
- else if (check_slsk_format(tvb, offset, "bi")) {
+ else if (check_slsk_format(tvb, pinfo, offset, "bi")) {
if ( tvb_get_guint8(tvb, offset) == 0 ){
/* Client-to-Client */
proto_tree_add_uint_format_value(slsk_tree, hf_slsk_message_code, tvb, offset, 1, msg_code,
diff --git a/epan/dissectors/packet-smb-direct.c b/epan/dissectors/packet-smb-direct.c
index 3b1c200154..b6854424db 100644
--- a/epan/dissectors/packet-smb-direct.c
+++ b/epan/dissectors/packet-smb-direct.c
@@ -93,7 +93,7 @@ enum SMB_DIRECT_HDR_TYPE {
static heur_dissector_list_t smb_direct_heur_subdissector_list;
-static gboolean smb_direct_reassemble = TRUE;
+static bool smb_direct_reassemble = true;
static reassembly_table smb_direct_reassembly_table;
static void
diff --git a/epan/dissectors/packet-smb-sidsnooping.c b/epan/dissectors/packet-smb-sidsnooping.c
index 29e05f1729..a606b334db 100644
--- a/epan/dissectors/packet-smb-sidsnooping.c
+++ b/epan/dissectors/packet-smb-sidsnooping.c
@@ -35,14 +35,14 @@ static int hf_samr_acct_name;
static int hf_samr_level;
-GHashTable *sid_name_table = NULL;
+GHashTable *sid_name_table;
-static GHashTable *ctx_handle_table = NULL;
+static GHashTable *ctx_handle_table;
-static gboolean lsa_policy_information_tap_installed = FALSE;
-static gboolean samr_query_dispinfo_tap_installed = FALSE;
+static gboolean lsa_policy_information_tap_installed;
+static gboolean samr_query_dispinfo_tap_installed;
const char *
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index 2d78e2ac0e..3e7d06b84d 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -323,6 +323,7 @@ static int hf_smb_total_data_len;
static int hf_smb_data_len;
static int hf_smb_data_len_low;
static int hf_smb_data_len_high;
+static int hf_bytes_until_total_data_count;
static int hf_smb_seek_mode;
static int hf_smb_data_size;
static int hf_smb_alloc_size;
@@ -897,7 +898,7 @@ static const fragment_items smb_frag_items = {
"segments"
};
-static proto_tree *top_tree_global = NULL; /* ugly */
+static proto_tree *top_tree_global; /* ugly */
static int dissect_smb_command(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *smb_tree, guint8 cmd, gboolean first_pdu, smb_info_t *si);
@@ -1022,7 +1023,7 @@ typedef struct _active_file {
} active_file ;
/* This is the GSList that will contain all the files that we are tracking */
-static GSList *GSL_active_files = NULL;
+static GSList *GSL_active_files;
/* We define a free chunk in a file as an start offset and end offset
Consider a free chunk as a "hole" in a file that we are capturing */
@@ -1477,11 +1478,11 @@ smb_eo_cleanup(void)
offset += len; \
*bcp -= len;
-gboolean sid_display_hex = FALSE;
-gboolean sid_name_snooping = FALSE;
+bool sid_display_hex;
+bool sid_name_snooping;
/* ExportObject preferences variable */
-gboolean eosmb_take_name_as_fid = FALSE ;
+bool eosmb_take_name_as_fid = false ;
/* Utility to get an str representing ipv4 or ipv6 address */
const gchar *tree_ip_str(packet_info *pinfo, guint16 cmd) {
const gchar *buf;
@@ -1582,8 +1583,8 @@ fid_cmp(smb_fid_info_t *fida, smb_fid_info_t *fidb)
/* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
These are needed by the reassembly of SMB Transaction payload and DCERPC over SMB
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
-static gboolean smb_trans_reassembly = TRUE;
-gboolean smb_dcerpc_reassembly = TRUE;
+static bool smb_trans_reassembly = true;
+bool smb_dcerpc_reassembly = true;
static reassembly_table smb_trans_reassembly_table;
@@ -1712,7 +1713,7 @@ smb_saved_info_hash_matched(gconstpointer k)
return key->frame + key->pid_mid;
}
-static GSList *conv_tables = NULL;
+static GSList *conv_tables;
static gint
smb_find_unicode_null_offset(tvbuff_t *tvb, gint offset, const gint maxlength, const guint16 needle, const guint encoding)
@@ -5902,7 +5903,7 @@ dissect_sid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset,
static int
dissect_search_resume_key(tvbuff_t *tvb, packet_info *pinfo _U_,
- proto_tree *parent_tree, int offset, guint16 *bcp, gboolean *trunc,
+ proto_tree *parent_tree, int offset, guint16 *bcp, bool *trunc,
gboolean has_find_id, smb_info_t *si)
{
proto_tree *tree;
@@ -5948,13 +5949,13 @@ dissect_search_resume_key(tvbuff_t *tvb, packet_info *pinfo _U_,
proto_tree_add_item(tree, hf_smb_resume_client_cookie, tvb, offset, 4, ENC_NA);
COUNT_BYTES_SUBR(4);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_search_dir_info(tvbuff_t *tvb, packet_info *pinfo,
- proto_tree *parent_tree, int offset, guint16 *bcp, gboolean *trunc,
+ proto_tree *parent_tree, int offset, guint16 *bcp, bool *trunc,
gboolean has_find_id, smb_info_t *si)
{
proto_tree *tree;
@@ -6001,7 +6002,7 @@ dissect_search_dir_info(tvbuff_t *tvb, packet_info *pinfo,
proto_tree_add_string(tree, hf_smb_file_name, tvb, offset, fn_len, fn);
COUNT_BYTES_SUBR(fn_len);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -6016,7 +6017,7 @@ dissect_search_find_request(tvbuff_t *tvb, packet_info *pinfo,
guint16 rkl;
guint8 wc;
guint16 bc;
- gboolean trunc;
+ bool trunc;
DISSECTOR_ASSERT(si);
@@ -6104,7 +6105,7 @@ dissect_search_find_response(tvbuff_t *tvb, packet_info *pinfo,
guint16 count = 0;
guint8 wc;
guint16 bc;
- gboolean trunc;
+ bool trunc;
WORD_COUNT;
@@ -10258,7 +10259,7 @@ dissect_get_print_queue_request(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
static int
dissect_print_queue_element(tvbuff_t *tvb, packet_info *pinfo _U_,
- proto_tree *parent_tree, int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ proto_tree *parent_tree, int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
proto_tree *tree;
int fn_len;
@@ -10304,7 +10305,7 @@ dissect_print_queue_element(tvbuff_t *tvb, packet_info *pinfo _U_,
fn);
COUNT_BYTES_SUBR(fn_len);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -10314,7 +10315,7 @@ dissect_get_print_queue_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
guint16 cnt = 0, len;
guint8 wc;
guint16 bc;
- gboolean trunc;
+ bool trunc;
WORD_COUNT;
@@ -12239,7 +12240,7 @@ dissect_get_dfs_referral_data(tvbuff_t *tvb, packet_info *pinfo _U_,
static int
dissect_smb_standard_8byte_timestamps(tvbuff_t *tvb,
packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* create time */
CHECK_BYTE_COUNT_SUBR(8);
@@ -12262,7 +12263,7 @@ dissect_smb_standard_8byte_timestamps(tvbuff_t *tvb,
offset = dissect_nt_64bit_time(tvb, tree, offset, hf_smb_change_time);
*bcp -= 8;
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12276,7 +12277,7 @@ dissect_smb_standard_8byte_timestamps(tvbuff_t *tvb,
*/
static int
dissect_qsfi_SMB_INFO_STANDARD(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* create time */
CHECK_BYTE_COUNT_SUBR(4);
@@ -12344,7 +12345,7 @@ dissect_qsfi_SMB_INFO_STANDARD(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
COUNT_BYTES_SUBR(4);
}
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12354,7 +12355,7 @@ dissect_qsfi_SMB_INFO_STANDARD(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
*/
static int
dissect_qfi_SMB_INFO_QUERY_EA_SIZE(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* create time */
CHECK_BYTE_COUNT_SUBR(4);
@@ -12397,19 +12398,20 @@ dissect_qfi_SMB_INFO_QUERY_EA_SIZE(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
proto_tree_add_item(tree, hf_smb_ea_list_length, tvb, offset, 4, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(4);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
-/* this dissects the SMB_INFO_QUERY_EAS_FROM_LIST and SMB_INFO_QUERY_ALL_EAS
- as described in 4.2.16.2
+/* this dissects the SMB_INFO_QUERY_EAS_FROM_LIST, SMB_INFO_QUERY_ALL_EAS,
+* and TRANS2_SET_FILE_INFORMATION as described in 4.2.16.2 and
+* [MS-CIFS] 2.2.6.9. This the "EA (Extended Attribute) subtree.
*/
static int
dissect_4_2_16_2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
guint8 name_len;
- guint16 data_len;
+ guint32 data_len;
/* EA size */
CHECK_BYTE_COUNT_SUBR(4);
@@ -12470,7 +12472,7 @@ dissect_4_2_16_2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
proto_item_set_len(item, offset - start_offset);
}
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12479,7 +12481,7 @@ dissect_4_2_16_2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
*/
static int
dissect_4_2_16_3(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -12493,7 +12495,7 @@ dissect_4_2_16_3(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
fn);
COUNT_BYTES_SUBR(fn_len);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12502,7 +12504,7 @@ dissect_4_2_16_3(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
*/
static int
dissect_4_2_16_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
offset = dissect_smb_standard_8byte_timestamps(tvb, pinfo, tree, offset, bcp, trunc);
@@ -12515,7 +12517,7 @@ dissect_4_2_16_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset = dissect_file_ext_attr(tvb, tree, offset);
*bcp -= 4;
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12525,7 +12527,7 @@ dissect_4_2_16_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
*/
int
dissect_qfi_SMB_FILE_STANDARD_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* allocation size */
CHECK_BYTE_COUNT_SUBR(8);
@@ -12552,7 +12554,7 @@ dissect_qfi_SMB_FILE_STANDARD_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
proto_tree_add_item(tree, hf_smb_is_directory, tvb, offset, 1, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(1);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12560,14 +12562,14 @@ dissect_qfi_SMB_FILE_STANDARD_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
*/
int
dissect_qfi_SMB_FILE_INTERNAL_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* file id */
CHECK_BYTE_COUNT_SUBR(8);
proto_tree_add_item(tree, hf_smb_index_number, tvb, offset, 8, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(8);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12575,14 +12577,14 @@ dissect_qfi_SMB_FILE_INTERNAL_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
*/
int
dissect_qsfi_SMB_FILE_POSITION_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* file position */
CHECK_BYTE_COUNT_SUBR(8);
proto_tree_add_item(tree, hf_smb_position, tvb, offset, 8, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(8);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12590,14 +12592,14 @@ dissect_qsfi_SMB_FILE_POSITION_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto
*/
int
dissect_qsfi_SMB_FILE_MODE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* mode */
CHECK_BYTE_COUNT_SUBR(4);
proto_tree_add_item(tree, hf_smb_mode, tvb, offset, 4, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(4);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12605,14 +12607,14 @@ dissect_qsfi_SMB_FILE_MODE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
*/
int
dissect_qfi_SMB_FILE_ALIGNMENT_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* alignment */
CHECK_BYTE_COUNT_SUBR(4);
proto_tree_add_item(tree, hf_smb_t2_alignment, tvb, offset, 4, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(4);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12622,14 +12624,14 @@ dissect_qfi_SMB_FILE_ALIGNMENT_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto
*/
int
dissect_qfi_SMB_FILE_EA_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* ea length */
CHECK_BYTE_COUNT_SUBR(4);
proto_tree_add_item(tree, hf_smb_ea_list_length, tvb, offset, 4, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(4);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12641,14 +12643,14 @@ dissect_qfi_SMB_FILE_EA_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
*/
int
dissect_qsfi_SMB_FILE_ALLOCATION_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* allocation size */
CHECK_BYTE_COUNT_SUBR(8);
proto_tree_add_item(tree, hf_smb_alloc_size64, tvb, offset, 8, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(8);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12660,14 +12662,14 @@ dissect_qsfi_SMB_FILE_ALLOCATION_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, pro
*/
int
dissect_qsfi_SMB_FILE_ENDOFFILE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* offset of end of file */
CHECK_BYTE_COUNT_SUBR(8);
proto_tree_add_item(tree, hf_smb_end_of_file, tvb, offset, 8, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(8);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12687,7 +12689,7 @@ dissect_qsfi_SMB_FILE_ENDOFFILE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, prot
*/
int
dissect_qfi_SMB_FILE_NAME_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc, gboolean unicode)
+ int offset, guint16 *bcp, bool *trunc, gboolean unicode)
{
int fn_len;
const char *fn;
@@ -12706,7 +12708,7 @@ dissect_qfi_SMB_FILE_NAME_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
fn);
COUNT_BYTES_SUBR(fn_len);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12716,7 +12718,7 @@ dissect_qfi_SMB_FILE_NAME_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
*/
static int
dissect_qfi_SMB_FILE_ALL_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
guint32 fn_len;
const char *fn;
@@ -12800,7 +12802,7 @@ dissect_qfi_SMB_FILE_ALL_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
*/
int
dissect_qfi_SMB_FILE_STREAM_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, int unicode)
+ int offset, guint16 *bcp, bool *trunc, int unicode)
{
proto_item *item;
proto_tree *tree;
@@ -12865,7 +12867,7 @@ dissect_qfi_SMB_FILE_STREAM_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
}
}
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12875,7 +12877,7 @@ dissect_qfi_SMB_FILE_STREAM_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
*/
int
dissect_qfi_SMB_FILE_COMPRESSION_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* compressed file size */
CHECK_BYTE_COUNT_SUBR(8);
@@ -12907,7 +12909,7 @@ dissect_qfi_SMB_FILE_COMPRESSION_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, pro
proto_tree_add_item(tree, hf_smb_reserved, tvb, offset, 3, ENC_NA);
COUNT_BYTES_SUBR(3);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -12926,7 +12928,7 @@ static const value_string unix_file_type_vals[] = {
static int
dissect_4_2_16_12(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* End of file (file size) */
CHECK_BYTE_COUNT_SUBR(8);
@@ -12997,7 +12999,7 @@ dissect_4_2_16_12(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
guess could be padding, but we are only using 4 or 8 byte
data types so this is a bit confusing. -tpot */
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13005,7 +13007,7 @@ dissect_4_2_16_12(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
static int
dissect_4_2_16_13(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
const char *fn;
int fn_len = 0;
@@ -13022,7 +13024,7 @@ dissect_4_2_16_13(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
tree, hf_smb_unix_file_link_dest, tvb, offset, fn_len, fn);
COUNT_BYTES_SUBR(fn_len);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13030,7 +13032,7 @@ dissect_4_2_16_13(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
*/
static int
dissect_qspi_unix_acl(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
guint16 num_file_aces;
static int * const perm_fields[] = {
@@ -13130,67 +13132,67 @@ dissect_qspi_unix_acl(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
proto_item_set_len(it, offset-old_offset);
}
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_qspi_unix_xattr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp _U_, gboolean *trunc)
+ int offset, guint16 *bcp _U_, bool *trunc)
{
proto_tree_add_expert(tree, pinfo, &ei_smb_not_implemented, tvb, offset, 0);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_qspi_unix_attr_flags(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp _U_, gboolean *trunc)
+ int offset, guint16 *bcp _U_, bool *trunc)
{
proto_tree_add_expert(tree, pinfo, &ei_smb_not_implemented, tvb, offset, 0);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_qpi_unix_permissions(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp _U_, gboolean *trunc)
+ int offset, guint16 *bcp _U_, bool *trunc)
{
proto_tree_add_expert(tree, pinfo, &ei_smb_not_implemented, tvb, offset, 0);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_qspi_unix_lock(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp _U_, gboolean *trunc)
+ int offset, guint16 *bcp _U_, bool *trunc)
{
proto_tree_add_expert(tree, pinfo, &ei_smb_not_implemented, tvb, offset, 0);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_qspi_unix_open(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp _U_, gboolean *trunc)
+ int offset, guint16 *bcp _U_, bool *trunc)
{
proto_tree_add_expert(tree, pinfo, &ei_smb_not_implemented, tvb, offset, 0);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_qspi_unix_unlink(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp _U_, gboolean *trunc)
+ int offset, guint16 *bcp _U_, bool *trunc)
{
proto_tree_add_expert(tree, pinfo, &ei_smb_not_implemented, tvb, offset, 0);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13254,7 +13256,7 @@ dissect_unix_info2_file_flags(tvbuff_t *tvb, proto_tree *parent_tree, int offset
static int
dissect_qspi_unix_info2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* End of file (file size) */
CHECK_BYTE_COUNT_SUBR(8);
@@ -13337,7 +13339,7 @@ dissect_qspi_unix_info2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
offset = dissect_unix_info2_file_flags(tvb, tree, offset, hf_smb_unix_info2_file_flags_mask);
*bcp -= 4;
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13346,7 +13348,7 @@ dissect_qspi_unix_info2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
int
dissect_qfi_SMB_FILE_NETWORK_OPEN_INFO(tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
offset = dissect_smb_standard_8byte_timestamps(tvb, pinfo, tree, offset, bcp, trunc);
@@ -13374,7 +13376,7 @@ dissect_qfi_SMB_FILE_NETWORK_OPEN_INFO(tvbuff_t *tvb,
proto_tree_add_item(tree, hf_smb_reserved, tvb, offset, 4, ENC_NA);
COUNT_BYTES_SUBR(4);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13383,7 +13385,7 @@ dissect_qfi_SMB_FILE_NETWORK_OPEN_INFO(tvbuff_t *tvb,
int
dissect_qfi_SMB_FILE_ATTRIBUTE_TAG_INFO(tvbuff_t *tvb,
packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* attribute */
CHECK_BYTE_COUNT_SUBR(4);
@@ -13395,7 +13397,7 @@ dissect_qfi_SMB_FILE_ATTRIBUTE_TAG_INFO(tvbuff_t *tvb,
proto_tree_add_item(tree, hf_smb_reparse_tag, tvb, offset, 4, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(4);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13404,14 +13406,14 @@ dissect_qfi_SMB_FILE_ATTRIBUTE_TAG_INFO(tvbuff_t *tvb,
*/
static int
dissect_4_2_19_2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* marked for deletion? */
CHECK_BYTE_COUNT_SUBR(1);
proto_tree_add_item(tree, hf_smb_t2_marked_for_deletion, tvb, offset, 1, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(1);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13424,7 +13426,7 @@ static const true_false_string tfs_smb_replace = {
static int
dissect_rename_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
const char *fn;
guint32 target_name_len;
@@ -13458,13 +13460,13 @@ dissect_rename_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
tree, hf_smb_target_name, tvb, offset, fn_len, fn);
COUNT_BYTES_SUBR(fn_len);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_disposition_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
#if 0
const char *fn;
@@ -13479,20 +13481,20 @@ dissect_disposition_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
proto_tree_add_item(tree, hf_smb_disposition_delete_on_close, tvb, offset, 1, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(1);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
int
dissect_sfi_SMB_FILE_PIPE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
- int offset, guint16 *bcp, gboolean *trunc)
+ int offset, guint16 *bcp, bool *trunc)
{
/* pipe info flag */
CHECK_BYTE_COUNT_SUBR(1);
proto_tree_add_item(tree, hf_smb_pipe_info_flag, tvb, offset, 1, ENC_LITTLE_ENDIAN);
COUNT_BYTES_SUBR(1);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -13500,9 +13502,9 @@ dissect_sfi_SMB_FILE_PIPE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
TRANS2_QUERY_FILE_INFORMATION*/
static int
dissect_qpi_loi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
- proto_item *item, int offset, guint16 *bcp, smb_info_t *si)
+ proto_item *item _U_, int offset, guint16 *bcp, smb_info_t *si)
{
- gboolean trunc = FALSE;
+ bool trunc = false;
if (!*bcp) {
return offset;
@@ -13641,13 +13643,10 @@ dissect_qpi_loi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
proto_tree_add_expert(tree, pinfo, &ei_smb_info_level_unknown, tvb, offset, *bcp);
offset += *bcp;
*bcp = 0;
- trunc = FALSE;
+ trunc = false;
break;
}
- if (trunc) {
- expert_add_info(pinfo, item, &ei_smb_mal_information_level);
- }
return offset;
}
@@ -13657,7 +13656,7 @@ static int
dissect_spi_loi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
proto_item *item, int offset, guint16 *bcp, smb_info_t *si)
{
- gboolean trunc;
+ bool trunc;
if (!*bcp) {
return offset;
@@ -13766,14 +13765,14 @@ dissect_spi_loi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
proto_tree_add_expert(tree, pinfo, &ei_smb_info_level_not_understood, tvb, offset, *bcp);
offset += *bcp;
*bcp = 0;
- trunc = FALSE;
+ trunc = false;
break;
default:
proto_tree_add_expert(tree, pinfo, &ei_smb_info_level_unknown, tvb, offset, *bcp);
offset += *bcp;
*bcp = 0;
- trunc = FALSE;
+ trunc = false;
break;
}
@@ -14141,6 +14140,7 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int spo = offset;
int spc = 0;
guint16 od = 0, po = 0, pc = 0, dc = 0, pd, dd = 0;
+ guint16 tdc;
int subcmd = -1;
guint32 to;
int an_len;
@@ -14150,6 +14150,7 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint16 bc;
int padcnt;
gboolean dissected_trans;
+ proto_item *it;
DISSECTOR_ASSERT(si);
@@ -14163,6 +14164,7 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 2;
/* total data count , only 16bit integer here*/
+ tdc = tvb_get_letohs(tvb, offset);
proto_tree_add_item(tree, hf_smb_total_data_count, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
@@ -14191,11 +14193,23 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_uint(tree, hf_smb_data_offset16, tvb, offset, 2, od);
offset += 2;
- /* data disp */
+ /* data displacement (dd)
+ * The amount of data sent NOT including the data in this packet. If there are more
+ * data to send per "Total Data Count" (tdc) [MS-CIFS] 2.2.4.46.1, additional
+ * "TRANS2 Secondary Requests ([MS-CIFS] 2.2.4.46.2) will follow, each increasing dd
+ * until the tdc is reached (dd + dc = tdc).
+ */
dd = tvb_get_letohs(tvb, offset);
proto_tree_add_uint(tree, hf_smb_data_disp16, tvb, offset, 2, dd);
offset += 2;
+ if (tdc >= (dc + dd)) {
+ guint16 diff = tdc - (dc + dd);
+ it = proto_tree_add_uint(tree, hf_bytes_until_total_data_count, tvb, 0, 0, diff);
+ proto_item_set_generated(it);
+ }
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Data: %u of %u", dd + dc, tdc);
+
if (si->cmd == SMB_COM_TRANSACTION2 || si->cmd == SMB_COM_TRANSACTION2_SECONDARY) {
guint16 fid;
@@ -14210,13 +14224,14 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
so = offset;
sl = 0;
} else {
- /* it is not a secondary request */
+ /* it is NOT a secondary request */
/* total param count , only a 16 bit integer here*/
proto_tree_add_item(tree, hf_smb_total_param_count, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
/* total data count , only 16bit integer here*/
+ tdc = tvb_get_letohs(tvb, offset);
proto_tree_add_item(tree, hf_smb_total_data_count, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
@@ -14259,11 +14274,22 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_uint(tree, hf_smb_param_offset16, tvb, offset, 2, po);
offset += 2;
- /* data count */
+ /* Data_Count (dc)
+ * The amount of data carried in this request. If there are more data to send per
+ * Total Data Count (tdc) [MS-CIFS] 2.2.4.46.1, TRANS2 Secondary Requests
+ * ([MS-CIFS] 2.2.4.46.2) will follow, each increasing Data displacement (dd)until
+ * tdc is reached (dd + dc = tdc).
+ */
dc = tvb_get_letohs(tvb, offset);
proto_tree_add_uint(tree, hf_smb_data_count16, tvb, offset, 2, dc);
offset += 2;
+ if (tdc >= dc) {
+ guint16 diff = tdc - dc;
+ it = proto_tree_add_uint(tree, hf_bytes_until_total_data_count, tvb, 0, 0, diff);
+ proto_item_set_generated(it);
+ }
+
/* data offset */
od = tvb_get_letohs(tvb, offset);
proto_tree_add_uint(tree, hf_smb_data_offset16, tvb, offset, 2, od);
@@ -14301,6 +14327,7 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
col_append_fstr(pinfo->cinfo, COL_INFO, ", %s",
val_to_str_ext(subcmd, &trans2_cmd_vals_ext,
"Unknown (0x%02x)"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Data: %u of %u", dc, tdc);
if (!si->unidir) {
if (!pinfo->fd->visited && si->sip) {
@@ -14547,7 +14574,7 @@ dissect_transaction_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
static int
dissect_4_3_4_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -14647,13 +14674,13 @@ dissect_4_3_4_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item_append_text(item, " File: %s", format_text(wmem_packet_scope(), (const guchar*)fn, strlen(fn)));
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_4_3_4_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -14771,7 +14798,7 @@ dissect_4_3_4_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -14784,7 +14811,7 @@ dissect_4_3_4_2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
*/
static int
dissect_4_3_4_3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -14889,7 +14916,7 @@ dissect_4_3_4_3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
static int
dissect_4_3_4_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -14984,13 +15011,13 @@ dissect_4_3_4_4(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item_append_text(item, " File: %s", format_text(wmem_packet_scope(), (const guchar*)fn, strlen(fn)));
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_4_3_4_5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -15091,13 +15118,13 @@ dissect_4_3_4_5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item_append_text(item, " File: %s", format_text(wmem_packet_scope(), (const guchar*)fn, strlen(fn)));
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_4_3_4_6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len, sfn_len;
const char *fn, *sfn;
@@ -15224,13 +15251,13 @@ dissect_4_3_4_6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item_append_text(item, " File: %s", format_text(wmem_packet_scope(), (const guchar*)fn, strlen(fn)));
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_4_3_4_6full(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -15346,13 +15373,13 @@ dissect_4_3_4_6full(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item_append_text(item, " File: %s", format_text(wmem_packet_scope(), (const guchar*)fn, strlen(fn)));
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_4_3_4_6_id_both(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len, sfn_len;
const char *fn, *sfn;
@@ -15489,13 +15516,13 @@ dissect_4_3_4_6_id_both(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
proto_item_append_text(item, " File: %s", format_text(wmem_packet_scope(), (const guchar*)fn, strlen(fn)));
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_4_3_4_7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
- int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
int fn_len;
const char *fn;
@@ -15570,7 +15597,7 @@ dissect_4_3_4_7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
proto_item_append_text(item, " File: %s", format_text(wmem_packet_scope(), (const guchar*)fn, strlen(fn)));
proto_item_set_len(item, offset-old_offset);
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -15579,7 +15606,7 @@ dissect_4_3_4_7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
static int
dissect_4_3_4_8(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, int offset, guint16 *bcp,
- gboolean *trunc, smb_info_t *si)
+ bool *trunc, smb_info_t *si)
{
const char *fn;
int fn_len;
@@ -15619,14 +15646,14 @@ dissect_4_3_4_8(tvbuff_t *tvb, packet_info *pinfo,
COUNT_BYTES_SUBR(pad);
}
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
static int
dissect_find_file_unix_info2(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, int offset, guint16 *bcp,
- gboolean *trunc, smb_info_t *si)
+ bool *trunc, smb_info_t *si)
{
const char *fn;
guint32 namelen;
@@ -15681,17 +15708,17 @@ dissect_find_file_unix_info2(tvbuff_t *tvb, packet_info *pinfo,
COUNT_BYTES_SUBR(pad);
}
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
/*dissect the data block for TRANS2_FIND_FIRST2*/
static int
dissect_ff2_response_data(tvbuff_t * tvb, packet_info * pinfo,
- proto_tree * tree, int offset, guint16 *bcp, gboolean *trunc, smb_info_t *si)
+ proto_tree * tree, int offset, guint16 *bcp, bool *trunc, smb_info_t *si)
{
if (!*bcp) {
- *trunc = FALSE;
+ *trunc = false;
return offset;
}
@@ -15746,7 +15773,7 @@ dissect_ff2_response_data(tvbuff_t * tvb, packet_info * pinfo,
trunc, si);
break;
default: /* unknown info level */
- *trunc = FALSE;
+ *trunc = false;
break;
}
return offset;
@@ -16365,7 +16392,7 @@ dissect_transaction2_response_data(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree = NULL;
smb_transact2_info_t *t2i;
int count;
- gboolean trunc = FALSE;
+ bool trunc = false;
int offset = 0;
guint16 dc;
@@ -17781,25 +17808,19 @@ static const char *decode_smb_error(guint8 errcls, guint16 errcode)
switch (errcls) {
case SMB_SUCCESS:
-
- return("No Error"); /* No error ??? */
+ return "No Error"; /* No error ??? */
case SMB_ERRDOS:
-
- return(val_to_str_ext(errcode, &DOS_errors_ext, "Unknown DOS error (%x)"));
+ return val_to_str_ext(errcode, &DOS_errors_ext, "Unknown DOS error (%x)");
case SMB_ERRSRV:
-
- return(val_to_str_ext(errcode, &SRV_errors_ext, "Unknown SRV error (%x)"));
+ return val_to_str_ext(errcode, &SRV_errors_ext, "Unknown SRV error (%x)");
case SMB_ERRHRD:
-
- return(val_to_str_ext(errcode, &HRD_errors_ext, "Unknown HRD error (%x)"));
+ return val_to_str_ext(errcode, &HRD_errors_ext, "Unknown HRD error (%x)");
default:
-
- return("Unknown error class!");
-
+ return "Unknown error class!";
}
}
@@ -19314,6 +19335,10 @@ proto_register_smb(void)
{ "Data Length High (multiply with 64K)", "smb.data_len_high", FT_UINT16, BASE_DEC,
NULL, 0, "Length of data, High 16 bits", HFILL }},
+ { &hf_bytes_until_total_data_count,
+ { "Bytes remaining until TDC", "smb.bytes_until_tdc", FT_UINT16, BASE_DEC,
+ NULL, 0, "Bytes remaining until the total data length is reached", HFILL }},
+
{ &hf_smb_seek_mode,
{ "Seek Mode", "smb.seek_mode", FT_UINT16, BASE_DEC,
VALS(seek_mode_vals), 0, "Seek Mode, what type of seek", HFILL }},
@@ -19639,7 +19664,7 @@ proto_register_smb(void)
NULL, 0, "Total number of parameter bytes", HFILL }},
{ &hf_smb_total_data_count,
- { "Total Data Count", "smb.tdc", FT_UINT32, BASE_DEC,
+ { "Total Data Count", "smb.tdc", FT_UINT16, BASE_DEC,
NULL, 0, "Total number of data bytes", HFILL }},
{ &hf_smb_max_param_count,
diff --git a/epan/dissectors/packet-smb.h b/epan/dissectors/packet-smb.h
index d49b8cfab4..f71276fa86 100644
--- a/epan/dissectors/packet-smb.h
+++ b/epan/dissectors/packet-smb.h
@@ -17,7 +17,7 @@
#include <epan/proto.h>
#include <epan/wmem_scopes.h>
-WS_DLL_PUBLIC gboolean sid_name_snooping;
+WS_DLL_PUBLIC bool sid_name_snooping;
/* SMB command codes, from the SNIA CIFS spec. With MSVC and a
* libwireshark.dll, we need a special declaration.
@@ -326,7 +326,7 @@ extern smb_fid_info_t *dissect_smb_fid(tvbuff_t *tvb, packet_info *pinfo, proto_
extern int dissect_ipc_state(tvbuff_t *tvb, proto_tree *parent_tree,
int offset, gboolean setstate);
-extern gboolean smb_dcerpc_reassembly;
+extern bool smb_dcerpc_reassembly;
extern const value_string create_disposition_vals[];
@@ -339,7 +339,7 @@ extern int dissect_smb_access_mask(tvbuff_t *tvb, proto_tree *parent_tree, int o
extern const value_string oa_open_vals[];
extern const value_string impersonation_level_vals[];
-extern gboolean sid_display_hex;
+extern bool sid_display_hex;
extern int dissect_security_information_mask(tvbuff_t *tvb, proto_tree *parent_tree, int offset);
@@ -352,21 +352,21 @@ extern int dissect_nt_user_quota(tvbuff_t *tvb, proto_tree *tree, int offset, gu
extern int dissect_nt_get_user_quota(tvbuff_t *tvb, proto_tree *tree, int offset, guint32 *bcp);
extern int dissect_qfsi_FS_OBJECTID_INFO(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, int offset, guint16 *bcp);
extern int dissect_qfsi_FS_FULL_SIZE_INFO(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, int offset, guint16 *bcp);
-extern int dissect_qfi_SMB_FILE_EA_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qfi_SMB_FILE_STREAM_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int offset, guint16 *bcp, gboolean *trunc, int unicode);
-extern int dissect_qfi_SMB_FILE_NAME_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc, gboolean unicode);
-extern int dissect_qfi_SMB_FILE_STANDARD_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qfi_SMB_FILE_INTERNAL_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qsfi_SMB_FILE_POSITION_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qsfi_SMB_FILE_MODE_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qfi_SMB_FILE_ALIGNMENT_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qfi_SMB_FILE_COMPRESSION_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qfi_SMB_FILE_NETWORK_OPEN_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qfi_SMB_FILE_ATTRIBUTE_TAG_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qsfi_SMB_FILE_ALLOCATION_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
-extern int dissect_qsfi_SMB_FILE_ENDOFFILE_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
+extern int dissect_qfi_SMB_FILE_EA_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qfi_SMB_FILE_STREAM_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int offset, guint16 *bcp, bool *trunc, int unicode);
+extern int dissect_qfi_SMB_FILE_NAME_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc, gboolean unicode);
+extern int dissect_qfi_SMB_FILE_STANDARD_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qfi_SMB_FILE_INTERNAL_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qsfi_SMB_FILE_POSITION_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qsfi_SMB_FILE_MODE_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qfi_SMB_FILE_ALIGNMENT_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qfi_SMB_FILE_COMPRESSION_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qfi_SMB_FILE_NETWORK_OPEN_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qfi_SMB_FILE_ATTRIBUTE_TAG_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qsfi_SMB_FILE_ALLOCATION_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
+extern int dissect_qsfi_SMB_FILE_ENDOFFILE_INFO(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
extern int dissect_nt_notify_completion_filter(tvbuff_t *tvb, proto_tree *parent_tree, int offset);
-extern int dissect_sfi_SMB_FILE_PIPE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 *bcp, gboolean *trunc);
+extern int dissect_sfi_SMB_FILE_PIPE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset, guint16 *bcp, bool *trunc);
extern int dissect_get_dfs_request_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean unicode);
extern int dissect_get_dfs_referral_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, guint16 *bcp, gboolean unicode);
diff --git a/epan/dissectors/packet-smb2.c b/epan/dissectors/packet-smb2.c
index 5a02af0376..edce683905 100644
--- a/epan/dissectors/packet-smb2.c
+++ b/epan/dissectors/packet-smb2.c
@@ -4,8 +4,8 @@
*
* For documentation of this protocol, see:
*
- * https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/
- * https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/
+ * https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/
+ * https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/
* https://gitlab.com/wireshark/wireshark/-/wikis/SMB2
*
* If you edit this file, keep the wiki updated as well.
@@ -103,7 +103,7 @@ void proto_reg_handoff_smb2(void);
#define SMB2_ENCR_HEADER 0xFD
#define SMB2_COMP_HEADER 0xFC
-static wmem_map_t *smb2_sessions = NULL;
+static wmem_map_t *smb2_sessions;
static const char smb_header_label[] = "SMB2 Header";
static const char smb_transform_header_label[] = "SMB2 Transform Header";
@@ -276,6 +276,8 @@ static int hf_smb2_next_offset;
static int hf_smb2_negotiate_context_type;
static int hf_smb2_negotiate_context_data_length;
static int hf_smb2_negotiate_context_offset;
+static int hf_smb2_negotiate_context_reserved;
+static int hf_smb2_negotiate_context_reserved2;
static int hf_smb2_negotiate_context_count;
static int hf_smb2_hash_alg_count;
static int hf_smb2_hash_algorithm;
@@ -811,6 +813,10 @@ static gint ett_smb2_fscc_refs_snapshot_query_delta_buffer;
static expert_field ei_smb2_invalid_length;
static expert_field ei_smb2_bad_response;
+static expert_field ei_smb2_bad_negprot_negotiate_context_count;
+static expert_field ei_smb2_bad_negprot_negotiate_context_offset;
+static expert_field ei_smb2_bad_negprot_reserved;
+static expert_field ei_smb2_bad_negprot_reserved2;
static expert_field ei_smb2_invalid_getinfo_offset;
static expert_field ei_smb2_invalid_getinfo_size;
static expert_field ei_smb2_empty_getinfo_buffer;
@@ -819,9 +825,9 @@ static expert_field ei_smb2_invalid_signature;
static int smb2_tap;
static int smb2_eo_tap;
-static dissector_handle_t gssapi_handle = NULL;
-static dissector_handle_t ntlmssp_handle = NULL;
-static dissector_handle_t rsvd_handle = NULL;
+static dissector_handle_t gssapi_handle;
+static dissector_handle_t ntlmssp_handle;
+static dissector_handle_t rsvd_handle;
static heur_dissector_list_t smb2_pipe_subdissector_list;
@@ -1354,7 +1360,7 @@ smb2stat_packet(void *pss, packet_info *pinfo, epan_dissect_t *edt _U_, const vo
* retransmissions triggered by the expiry of the rexmit timer (RTOs). Only calculating SRT
* for the last received response accomplishes this goal without requiring the TCP pref
* "Do not call subdissectors for error packets" to be set. */
- if ((si->saved->frame_req == 0) || (si->saved->frame_res != pinfo->num))
+ if (si->saved->frame_res != pinfo->num)
return TAP_PACKET_DONT_REDRAW;
smb2_srt_table = g_array_index(data->srt_array, srt_stat_table*, i);
@@ -1378,8 +1384,8 @@ typedef struct _smb2_seskey_field_t {
guint c2skey_len;
} smb2_seskey_field_t;
-static smb2_seskey_field_t *seskey_list = NULL;
-static guint num_seskey_list = 0;
+static smb2_seskey_field_t *seskey_list;
+static guint num_seskey_list;
static const gint8 zeros[NTLMSSP_KEY_LEN] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
@@ -1459,6 +1465,7 @@ static void seskey_list_free_cb(void *r)
}
static gboolean seskey_find_sid_key(guint64 sesid, guint8 *out_seskey,
+ guint *out_seskey_len,
guint8 *out_s2ckey16,
guint8 *out_c2skey16,
guint8 *out_s2ckey32,
@@ -1486,14 +1493,17 @@ static gboolean seskey_find_sid_key(guint64 sesid, guint8 *out_seskey,
for (i = 0; i < num_seskey_list; i++) {
const smb2_seskey_field_t *p = &seskey_list[i];
if (memcmp(&sesid_le, p->id, SMB_SESSION_ID_SIZE) == 0) {
- memset(out_seskey, 0, NTLMSSP_KEY_LEN);
+ *out_seskey_len = 0;
+ memset(out_seskey, 0, NTLMSSP_KEY_LEN*2);
memset(out_s2ckey16, 0, AES_KEY_SIZE);
memset(out_c2skey16, 0, AES_KEY_SIZE);
memset(out_s2ckey32, 0, AES_KEY_SIZE*2);
memset(out_c2skey32, 0, AES_KEY_SIZE*2);
- if (p->seskey_len != 0)
+ if (p->seskey_len > 0 && p->seskey_len <= NTLMSSP_KEY_LEN*2) {
memcpy(out_seskey, p->seskey, p->seskey_len);
+ *out_seskey_len = p->seskey_len;
+ }
if (p->s2ckey_len == AES_KEY_SIZE)
memcpy(out_s2ckey16, p->s2ckey, p->s2ckey_len);
if (p->s2ckey_len == AES_KEY_SIZE*2)
@@ -1511,7 +1521,7 @@ static gboolean seskey_find_sid_key(guint64 sesid, guint8 *out_seskey,
}
/* ExportObject preferences variable */
-gboolean eosmb2_take_name_as_fid = FALSE ;
+bool eosmb2_take_name_as_fid = false ;
/* unmatched smb_saved_info structures.
For unmatched smb_saved_info structures we store the smb_saved_info
@@ -1690,12 +1700,18 @@ smb2_get_session(smb2_conv_info_t *conv _U_, guint64 id, packet_info *pinfo, smb
ses->fids = wmem_map_new(wmem_file_scope(), smb2_fid_info_hash, smb2_fid_info_equal);
ses->files = wmem_map_new(wmem_file_scope(), smb2_eo_files_hash, smb2_eo_files_equal);
- seskey_find_sid_key(id, ses->session_key,
+ ses->session_key_frame = UINT32_MAX;
+ seskey_find_sid_key(id,
+ ses->session_key,
+ &ses->session_key_len,
ses->client_decryption_key16,
ses->server_decryption_key16,
ses->client_decryption_key32,
ses->server_decryption_key32);
if (pinfo && si) {
+ if (ses->session_key_len != 0) {
+ ses->session_key_frame = pinfo->num;
+ }
if (si->flags & SMB2_FLAGS_RESPONSE) {
ses->server_port = pinfo->srcport;
} else {
@@ -1742,7 +1758,7 @@ smb2_add_session_info(proto_tree *ses_tree, proto_item *ses_item, tvbuff_t *tvb,
static void smb2_key_derivation(const guint8 *KI, guint32 KI_len,
const guint8 *Label, guint32 Label_len,
const guint8 *Context, guint32 Context_len,
- guint8 KO[16], guint32 KO_len)
+ guint8 *KO, guint32 KO_len)
{
gcry_md_hd_t hd = NULL;
guint8 buf[4];
@@ -1754,7 +1770,11 @@ static void smb2_key_derivation(const guint8 *KI, guint32 KI_len,
* "NIST Special Publication 800-108" section 5.1
* using hmac-sha256.
*/
- gcry_md_open(&hd, GCRY_MD_SHA256, GCRY_MD_FLAG_HMAC);
+ /* XXX This routine should indicate a success/failure indication, so that the failure of gcry_md_open()
+ * can be reported to the caller.
+ */
+ if (gcry_md_open(&hd, GCRY_MD_SHA256, GCRY_MD_FLAG_HMAC) != 0)
+ return;
gcry_md_setkey(hd, KI, KI_len);
memset(buf, 0, sizeof(buf));
@@ -2844,7 +2864,7 @@ dissect_smb2_file_allocation_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_allocation_info, tvb, offset, -1, ENC_NA);
@@ -2863,7 +2883,7 @@ dissect_smb2_file_endoffile_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_endoffile_info, tvb, offset, -1, ENC_NA);
@@ -2882,7 +2902,7 @@ dissect_smb2_file_alternate_name_info(tvbuff_t *tvb, packet_info *pinfo _U_, pro
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_alternate_name_info, tvb, offset, -1, ENC_NA);
@@ -2901,7 +2921,7 @@ dissect_smb2_file_normalized_name_info(tvbuff_t *tvb, packet_info *pinfo _U_, pr
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_normalized_name_info, tvb, offset, -1, ENC_NA);
@@ -2953,7 +2973,7 @@ dissect_smb2_file_standard_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_standard_info, tvb, offset, -1, ENC_NA);
@@ -2971,7 +2991,7 @@ dissect_smb2_file_internal_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_internal_info, tvb, offset, -1, ENC_NA);
@@ -2989,7 +3009,7 @@ dissect_smb2_file_mode_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *p
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_mode_info, tvb, offset, -1, ENC_NA);
@@ -3007,7 +3027,7 @@ dissect_smb2_file_alignment_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_alignment_info, tvb, offset, -1, ENC_NA);
@@ -3025,7 +3045,7 @@ dissect_smb2_file_position_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_position_info, tvb, offset, -1, ENC_NA);
@@ -3061,7 +3081,7 @@ dissect_smb2_file_ea_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *par
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_ea_info, tvb, offset, -1, ENC_NA);
@@ -3080,7 +3100,7 @@ dissect_smb2_file_stream_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_stream_info, tvb, offset, -1, ENC_NA);
@@ -3099,7 +3119,7 @@ dissect_smb2_file_pipe_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *p
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_pipe_info, tvb, offset, -1, ENC_NA);
@@ -3118,7 +3138,7 @@ dissect_smb2_file_compression_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_compression_info, tvb, offset, -1, ENC_NA);
@@ -3137,7 +3157,7 @@ dissect_smb2_file_network_open_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_network_open_info, tvb, offset, -1, ENC_NA);
@@ -3157,7 +3177,7 @@ dissect_smb2_file_attribute_tag_info(tvbuff_t *tvb, packet_info *pinfo _U_, prot
proto_item *item = NULL;
proto_tree *tree = NULL;
guint16 bc;
- gboolean trunc;
+ bool trunc;
if (parent_tree) {
item = proto_tree_add_item(parent_tree, hf_smb2_file_attribute_tag_info, tvb, offset, -1, ENC_NA);
@@ -3807,7 +3827,7 @@ static void smb2_generate_decryption_keys(smb2_conv_info_t *conv, smb2_sesid_inf
return;
/* otherwise, generate them from session key, if it's there */
- if (!has_seskey)
+ if (!has_seskey || ses->session_key_len == 0)
return;
/* generate decryption keys */
@@ -3842,7 +3862,7 @@ static void smb2_generate_decryption_keys(smb2_conv_info_t *conv, smb2_sesid_inf
ses->preauth_hash, SMB2_PREAUTH_HASH_SIZE,
ses->server_decryption_key16, 16);
smb2_key_derivation(ses->session_key,
- NTLMSSP_KEY_LEN,
+ ses->session_key_len,
"SMBC2SCipherKey", 16,
ses->preauth_hash, SMB2_PREAUTH_HASH_SIZE,
ses->server_decryption_key32, 32);
@@ -3854,7 +3874,7 @@ static void smb2_generate_decryption_keys(smb2_conv_info_t *conv, smb2_sesid_inf
ses->preauth_hash, SMB2_PREAUTH_HASH_SIZE,
ses->client_decryption_key16, 16);
smb2_key_derivation(ses->session_key,
- NTLMSSP_KEY_LEN,
+ ses->session_key_len,
"SMBS2CCipherKey", 16,
ses->preauth_hash, SMB2_PREAUTH_HASH_SIZE,
ses->client_decryption_key32, 32);
@@ -3964,8 +3984,10 @@ dissect_smb2_session_setup_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree
si->session->domain_name = wmem_strdup(wmem_file_scope(), ntlmssph->domain_name);
si->session->host_name = wmem_strdup(wmem_file_scope(), ntlmssph->host_name);
/* don't overwrite session key from preferences */
- if (memcmp(si->session->session_key, zeros, SMB_SESSION_ID_SIZE) == 0) {
+ if (memcmp(si->session->session_key, zeros, NTLMSSP_KEY_LEN) == 0) {
memcpy(si->session->session_key, ntlmssph->session_key, NTLMSSP_KEY_LEN);
+ si->session->session_key_len = NTLMSSP_KEY_LEN;
+ si->session->session_key_frame = pinfo->num;
}
si->session->auth_frame = pinfo->num;
}
@@ -4236,10 +4258,9 @@ dissect_smb2_session_setup_response(tvbuff_t *tvb, packet_info *pinfo, proto_tre
update_preauth_hash(si->conv->preauth_hash_current, pinfo, tvb);
} else {
/*
- * Session is established, we can generate the keys
+ * Session is established, remember the last preauth hash
*/
memcpy(si->session->preauth_hash, si->conv->preauth_hash_current, SMB2_PREAUTH_HASH_SIZE);
- smb2_generate_decryption_keys(si->conv, si->session);
}
/* In all cases, stash the preauth hash */
@@ -4271,7 +4292,10 @@ dissect_smb2_session_setup_response(tvbuff_t *tvb, packet_info *pinfo, proto_tre
/* If we have found a uid->acct_name mapping, store it */
#ifdef HAVE_KERBEROS
- if (!pinfo->fd->visited && si->status == 0) {
+ if (!pinfo->fd->visited &&
+ ((si->session->session_key_frame == UINT32_MAX) ||
+ (si->session->session_key_frame < pinfo->num)))
+ {
enc_key_t *ek;
if (krb_decrypt) {
@@ -4279,17 +4303,60 @@ dissect_smb2_session_setup_response(tvbuff_t *tvb, packet_info *pinfo, proto_tre
}
for (ek=enc_key_list;ek;ek=ek->next) {
+ if (!ek->is_ap_rep_key) {
+ continue;
+ }
if (ek->fd_num == (int)pinfo->num) {
break;
}
}
if (ek != NULL) {
- /* TODO: fill in the correct user/dom/host information */
+ /*
+ * If we remembered information from the PAC content
+ * from GSSAPI AP exchange we use it, otherwise we
+ * can only give a hint about the used session key.
+ */
+ if (ek->pac_names.account_name) {
+ si->session->acct_name = wmem_strdup(wmem_file_scope(),
+ ek->pac_names.account_name);
+ si->session->domain_name = wmem_strdup(wmem_file_scope(),
+ ek->pac_names.account_domain);
+ if (ek->pac_names.device_sid) {
+ si->session->host_name = wmem_strdup_printf(wmem_file_scope(),
+ "DEVICE[%s]",
+ ek->pac_names.device_sid);
+ } else {
+ si->session->host_name = NULL;
+ }
+ } else {
+ si->session->acct_name = wmem_strdup_printf(wmem_file_scope(),
+ "KERBEROS[%s]",
+ ek->key_origin);
+ si->session->domain_name = wmem_strdup_printf(wmem_file_scope(),
+ "KERBEROS[%s]",
+ ek->id_str);
+ si->session->host_name = NULL;
+ }
+ /* don't overwrite session key from preferences */
+ if (memcmp(si->session->session_key, zeros, NTLMSSP_KEY_LEN) == 0) {
+ si->session->session_key_len = MIN(NTLMSSP_KEY_LEN*2, ek->keylength);
+ memcpy(si->session->session_key,
+ ek->keyvalue,
+ si->session->session_key_len);
+ si->session->session_key_frame = pinfo->num;
+ }
}
}
#endif
+ if (si->status == 0) {
+ /*
+ * Session is established, we can generate the keys
+ */
+ smb2_generate_decryption_keys(si->conv, si->session);
+ }
+
return offset;
}
@@ -5535,9 +5602,10 @@ dissect_smb2_negotiate_protocol_request(tvbuff_t *tvb, packet_info *pinfo, proto
{
guint16 dc;
guint16 i;
+ proto_item *nco_item, *ncc_item;
gboolean supports_smb_3_10 = FALSE;
guint32 nco;
- guint16 ncc;
+ guint32 ncc;
proto_item *hash_item = NULL;
smb2_saved_info_t *ssi = si->saved;
@@ -5584,13 +5652,11 @@ dissect_smb2_negotiate_protocol_request(tvbuff_t *tvb, packet_info *pinfo, proto
offset += 16;
/* negotiate context offset */
- nco = tvb_get_letohl(tvb, offset);
- proto_tree_add_item(tree, hf_smb2_negotiate_context_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ nco_item = proto_tree_add_item_ret_uint(tree, hf_smb2_negotiate_context_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN, &nco);
offset += 4;
/* negotiate context count */
- ncc = tvb_get_letohs(tvb, offset);
- proto_tree_add_item(tree, hf_smb2_negotiate_context_count, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ ncc_item = proto_tree_add_item_ret_uint(tree, hf_smb2_negotiate_context_count, tvb, offset, 2, ENC_LITTLE_ENDIAN, &ncc);
offset += 2;
/* reserved */
@@ -5608,7 +5674,28 @@ dissect_smb2_negotiate_protocol_request(tvbuff_t *tvb, packet_info *pinfo, proto
}
if (!supports_smb_3_10) {
- ncc = 0;
+ /*
+ * XXX - if 3.10 or later isn't supported, those fields
+ * should be dissected as an 8-byte ClientStartTime field...
+ * ...which should always be set to zero by the
+ * client and ignored by the server. Doing that would
+ * require that we look ahead and scan the dialect list
+ * but what if that's either cut off by a snapshot
+ * length or missing due to the packet being malformed
+ * or not reassembled or...?
+ *
+ * [MS-SMB2] says 3.11, but 3.10 is deprecated, and
+ * it appears to work the same way in this regard
+ * as 3.11.
+ */
+ if (ncc != 0) {
+ expert_add_info(pinfo, ncc_item, &ei_smb2_bad_negprot_negotiate_context_count);
+ ncc = 0;
+ }
+ if (nco != 0) {
+ expert_add_info(pinfo, nco_item, &ei_smb2_bad_negprot_negotiate_context_offset);
+ nco = 0;
+ }
}
if (nco != 0) {
@@ -5635,7 +5722,7 @@ dissect_smb2_negotiate_protocol_response(tvbuff_t *tvb, packet_info *pinfo, prot
offset_length_buffer_t s_olb;
guint16 i;
guint32 nco;
- guint16 ncc;
+ guint32 ncc;
gboolean continue_dissection;
proto_item *hash_item = NULL;
smb2_saved_info_t *ssi = si->saved;
@@ -5665,9 +5752,14 @@ dissect_smb2_negotiate_protocol_response(tvbuff_t *tvb, packet_info *pinfo, prot
switch (si->status) {
/* buffer code */
- case 0x00000000: offset = dissect_smb2_buffercode(tree, tvb, offset, NULL); break;
- default: offset = dissect_smb2_error_response(tvb, pinfo, tree, offset, si, &continue_dissection);
- if (!continue_dissection) return offset;
+ case 0x00000000:
+ offset = dissect_smb2_buffercode(tree, tvb, offset, NULL);
+ break;
+
+ default:
+ offset = dissect_smb2_error_response(tvb, pinfo, tree, offset, si, &continue_dissection);
+ if (!continue_dissection)
+ return offset;
}
/* security mode, skip second byte */
@@ -5679,9 +5771,28 @@ dissect_smb2_negotiate_protocol_response(tvbuff_t *tvb, packet_info *pinfo, prot
proto_tree_add_item(tree, hf_smb2_dialect, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- /* negotiate context count */
- ncc = tvb_get_letohs(tvb, offset);
- proto_tree_add_item(tree, hf_smb2_negotiate_context_count, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ /* negotiate context count/reserved */
+ /*
+ * If 3.10 or later isn't the chosen dialect, this field
+ * should be dissected as a reserved field
+ * ...which should always be set to zero by the
+ * client and ignored by the server.
+ *
+ * [MS-SMB2] says 3.11, but 3.10 is deprecated, and
+ * it appears to work the same way in this regard
+ * as 3.11.
+ */
+ if (si->conv->dialect >= SMB2_DIALECT_310) {
+ proto_tree_add_item_ret_uint(tree, hf_smb2_negotiate_context_count, tvb, offset, 2, ENC_LITTLE_ENDIAN, &ncc);
+ } else {
+ proto_item *reserved_item;
+
+ reserved_item = proto_tree_add_item_ret_uint(tree, hf_smb2_negotiate_context_reserved, tvb, offset, 2, ENC_LITTLE_ENDIAN, &ncc);
+ if (ncc != 0) {
+ expert_add_info(pinfo, reserved_item, &ei_smb2_bad_negprot_reserved);
+ ncc = 0;
+ }
+ }
offset += 2;
/* server GUID */
@@ -5717,9 +5828,28 @@ dissect_smb2_negotiate_protocol_response(tvbuff_t *tvb, packet_info *pinfo, prot
/* the security blob itself */
dissect_smb2_olb_buffer(pinfo, tree, tvb, &s_olb, si, dissect_smb2_secblob);
- /* negotiate context offset */
- nco = tvb_get_letohl(tvb, offset);
- proto_tree_add_item(tree, hf_smb2_negotiate_context_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ /* negotiate context offset/reserved2 */
+ /*
+ * If 3.10 or later isn't the chosen dialect, this field
+ * should be dissected as a reserved field
+ * ...which should always be set to zero by the
+ * client and ignored by the server.
+ *
+ * [MS-SMB2] says 3.11, but 3.10 is deprecated, and
+ * it appears to work the same way in this regard
+ * as 3.11.
+ */
+ if (si->conv->dialect >= SMB2_DIALECT_310) {
+ proto_tree_add_item_ret_uint(tree, hf_smb2_negotiate_context_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN, &nco);
+ } else {
+ proto_item *reserved2_item;
+
+ reserved2_item = proto_tree_add_item_ret_uint(tree, hf_smb2_negotiate_context_reserved2, tvb, offset, 4, ENC_LITTLE_ENDIAN, &nco);
+ if (nco != 0) {
+ expert_add_info(pinfo, reserved2_item, &ei_smb2_bad_negprot_reserved2);
+ nco = 0;
+ }
+ }
offset += 4;
offset = dissect_smb2_olb_tvb_max_offset(offset, &s_olb);
@@ -6541,8 +6671,8 @@ smb2_pipe_set_file_id(packet_info *pinfo, smb2_info_t *si)
dcerpc_set_transport_salt(persistent, pinfo);
}
-static gboolean smb2_pipe_reassembly = TRUE;
-static gboolean smb2_verify_signatures = FALSE;
+static bool smb2_pipe_reassembly = true;
+static bool smb2_verify_signatures;
static reassembly_table smb2_pipe_reassembly_table;
static int
@@ -10253,7 +10383,7 @@ value_string_ext smb2_cmd_vals_ext = VALUE_STRING_EXT_INIT(smb2_cmd_vals);
static const char *decode_smb2_name(guint16 cmd)
{
if (cmd > 0xFF) return "unknown";
- return(smb2_cmd_vals[cmd & 0xFF].strptr);
+ return smb2_cmd_vals[cmd & 0xFF].strptr;
}
static smb2_function smb2_dissector[256] = {
@@ -11564,6 +11694,7 @@ dissect_smb2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, gboolea
ssi = wmem_new0(wmem_file_scope(), smb2_saved_info_t);
ssi->msg_id = ssi_key.msg_id;
ssi->frame_req = pinfo->num;
+ ssi->frame_res = UINT32_MAX;
ssi->req_time = pinfo->abs_ts;
ssi->extra_info_type = SMB2_EI_NONE;
g_hash_table_insert(si->conv->unmatched, ssi, ssi);
@@ -11610,13 +11741,13 @@ dissect_smb2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, gboolea
}
if (!(si->flags & SMB2_FLAGS_RESPONSE)) {
- if (ssi->frame_res) {
+ if (ssi->frame_res != UINT32_MAX) {
proto_item *tmp_item;
tmp_item = proto_tree_add_uint(header_tree, hf_smb2_response_in, tvb, 0, 0, ssi->frame_res);
proto_item_set_generated(tmp_item);
}
} else {
- if (ssi->frame_req) {
+ if (ssi->frame_req != UINT32_MAX) {
proto_item *tmp_item;
nstime_t t, deltat;
@@ -12662,11 +12793,21 @@ proto_register_smb2(void)
NULL, 0, NULL, HFILL }
},
+ { &hf_smb2_negotiate_context_reserved2,
+ { "Reserved2", "smb2.negotiate_context.reserved2", FT_UINT32, BASE_HEX,
+ NULL, 0, NULL, HFILL }
+ },
+
{ &hf_smb2_negotiate_context_count,
{ "NegotiateContextCount", "smb2.negotiate_context.count", FT_UINT16, BASE_DEC,
NULL, 0, NULL, HFILL }
},
+ { &hf_smb2_negotiate_context_reserved,
+ { "Reserved", "smb2.negotiate_context.reserved", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }
+ },
+
{ &hf_smb2_hash_alg_count,
{ "HashAlgorithmCount", "smb2.negotiate_context.hash_alg_count", FT_UINT16, BASE_DEC,
NULL, 0, NULL, HFILL }},
@@ -14713,6 +14854,10 @@ proto_register_smb2(void)
static ei_register_info ei[] = {
{ &ei_smb2_invalid_length, { "smb2.invalid_length", PI_MALFORMED, PI_ERROR, "Invalid length", EXPFILL }},
{ &ei_smb2_bad_response, { "smb2.bad_response", PI_MALFORMED, PI_ERROR, "Bad response", EXPFILL }},
+ { &ei_smb2_bad_negprot_negotiate_context_count, { "smb2.bad_negprot_negotiate_context_count", PI_MALFORMED, PI_ERROR, "Negotiate Protocol request NegotiateContextCount is nonzero without SMB 3.11 support", EXPFILL }},
+ { &ei_smb2_bad_negprot_negotiate_context_offset, { "smb2.bad_negprot_negotiate_context_offset", PI_MALFORMED, PI_ERROR, "Negotiate Protocol request NegotiateContextOffset is nonzero without SMB 3.11 support", EXPFILL }},
+ { &ei_smb2_bad_negprot_reserved, { "smb2.bad_negprot_reserved", PI_MALFORMED, PI_ERROR, "Negotiate Protocol response Reserved is nonzero", EXPFILL }},
+ { &ei_smb2_bad_negprot_reserved2, { "smb2.bad_negprot_reserved2", PI_MALFORMED, PI_ERROR, "Negotiate Protocol response Reserved2 is nonzero", EXPFILL }},
{ &ei_smb2_invalid_getinfo_offset, { "smb2.invalid_getinfo_offset", PI_MALFORMED, PI_ERROR, "Input buffer offset isn't past the fixed data in the message", EXPFILL }},
{ &ei_smb2_invalid_getinfo_size, { "smb2.invalid_getinfo_size", PI_MALFORMED, PI_ERROR, "Input buffer length goes past the end of the message", EXPFILL }},
{ &ei_smb2_empty_getinfo_buffer, { "smb2.empty_getinfo_buffer", PI_PROTOCOL, PI_WARN, "Input buffer length is empty for a quota request", EXPFILL }},
diff --git a/epan/dissectors/packet-smb2.h b/epan/dissectors/packet-smb2.h
index 3bed201336..2a16ec535d 100644
--- a/epan/dissectors/packet-smb2.h
+++ b/epan/dissectors/packet-smb2.h
@@ -91,7 +91,9 @@ typedef struct _smb2_sesid_info_t {
char *domain_name;
char *host_name;
guint16 server_port;
- guint8 session_key[NTLMSSP_KEY_LEN];
+ guint32 session_key_frame;
+ guint session_key_len;
+ guint8 session_key[NTLMSSP_KEY_LEN*2];
guint8 signing_key[NTLMSSP_KEY_LEN];
guint8 client_decryption_key16[AES_KEY_SIZE];
guint8 server_decryption_key16[AES_KEY_SIZE];
diff --git a/epan/dissectors/packet-sml.c b/epan/dissectors/packet-sml.c
index 434f815814..3a5a2742ed 100644
--- a/epan/dissectors/packet-sml.c
+++ b/epan/dissectors/packet-sml.c
@@ -388,8 +388,8 @@ static expert_field ei_sml_listtype_invalid;
static expert_field ei_sml_cosemvalue_invalid;
/*options*/
-static gboolean sml_reassemble = TRUE;
-static gboolean sml_crc_enabled = FALSE;
+static bool sml_reassemble = true;
+static bool sml_crc_enabled;
/*get number of length octets and calculate how many data octets, it's like BER but not the same! */
static void get_length(tvbuff_t *tvb, guint *offset, guint *data, guint *length){
@@ -1224,6 +1224,7 @@ static void TupleEntryTree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *procPa
proto_item_set_end(TupleEntry, tvb, *offset);
}
+// NOLINTNEXTLINE(misc-no-recursion)
static void child_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *insert_tree, guint *offset, guint *data, guint *length){
proto_item *parameterName;
proto_item *procParValue;
@@ -1388,7 +1389,9 @@ static void child_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *insert_tre
tree_Entry_list = proto_tree_add_subtree(child_list, tvb, *offset, -1, ett_sml_tree_Entry, &tree_Entry, "tree_Entry");
*offset+=1;
+ increment_dissection_depth(pinfo);
child_tree(tvb, pinfo,tree_Entry_list, offset, data, length);
+ decrement_dissection_depth(pinfo);
proto_item_set_end(tree_Entry, tvb, *offset);
proto_item_set_end(child, tvb, *offset);
@@ -1412,7 +1415,9 @@ static void child_tree(tvbuff_t *tvb, packet_info *pinfo, proto_tree *insert_tre
}
*offset+=1;
+ increment_dissection_depth(pinfo);
child_tree(tvb, pinfo, tree_Entry_list, offset, data, length);
+ decrement_dissection_depth(pinfo);
proto_item_set_end(tree_Entry, tvb, *offset);
}
proto_item_set_end(child, tvb, *offset);
diff --git a/epan/dissectors/packet-smp.c b/epan/dissectors/packet-smp.c
index 7e9603a52a..3e9fc11388 100644
--- a/epan/dissectors/packet-smp.c
+++ b/epan/dissectors/packet-smp.c
@@ -71,7 +71,7 @@ static dissector_handle_t tds_handle;
static dissector_handle_t smp_handle;
static dissector_table_t smp_payload_table;
-static gboolean reassemble_smp = TRUE;
+static bool reassemble_smp = true;
static void smp_prompt(packet_info *pinfo _U_, gchar* result)
{
diff --git a/epan/dissectors/packet-smpp.c b/epan/dissectors/packet-smpp.c
index 384bd59452..e307e40149 100644
--- a/epan/dissectors/packet-smpp.c
+++ b/epan/dissectors/packet-smpp.c
@@ -255,8 +255,8 @@ static gint ett_dcs;
static dissector_handle_t smpp_handle;
/* Reassemble SMPP TCP segments */
-static gboolean reassemble_over_tcp = TRUE;
-static gboolean smpp_gsm7_unpacked = TRUE;
+static bool reassemble_over_tcp = true;
+static bool smpp_gsm7_unpacked = true;
typedef enum {
DECODE_AS_DEFAULT = 0,
diff --git a/epan/dissectors/packet-smrse.c b/epan/dissectors/packet-smrse.c
index ebcff95e99..7eee296a24 100644
--- a/epan/dissectors/packet-smrse.c
+++ b/epan/dissectors/packet-smrse.c
@@ -68,17 +68,17 @@ static int hf_smrse_ms_address; /* SMS_Address */
/* Initialize the subtree pointers */
static gint ett_smrse;
-static gint ett_smrse_SMR_Bind;
-static gint ett_smrse_SMS_Address;
-static gint ett_smrse_T_address_value;
-static gint ett_smrse_SMR_Bind_Confirm;
-static gint ett_smrse_SMR_Bind_Failure;
-static gint ett_smrse_SMR_Unbind;
-static gint ett_smrse_RPDataMT;
-static gint ett_smrse_RPDataMO;
-static gint ett_smrse_RPAck;
-static gint ett_smrse_RPError;
-static gint ett_smrse_RPAlertSC;
+static int ett_smrse_SMR_Bind;
+static int ett_smrse_SMS_Address;
+static int ett_smrse_T_address_value;
+static int ett_smrse_SMR_Bind_Confirm;
+static int ett_smrse_SMR_Bind_Failure;
+static int ett_smrse_SMR_Unbind;
+static int ett_smrse_RPDataMT;
+static int ett_smrse_RPDataMO;
+static int ett_smrse_RPAck;
+static int ett_smrse_RPError;
+static int ett_smrse_RPAlertSC;
diff --git a/epan/dissectors/packet-smtp.c b/epan/dissectors/packet-smtp.c
index 869e274dad..45c2bf5b65 100644
--- a/epan/dissectors/packet-smtp.c
+++ b/epan/dissectors/packet-smtp.c
@@ -81,10 +81,10 @@ static gint ett_smtp_data_fragments;
static expert_field ei_smtp_base64_decode;
static expert_field ei_smtp_rsp_code;
-static gboolean smtp_auth_parameter_decoding_enabled = FALSE;
+static bool smtp_auth_parameter_decoding_enabled;
/* desegmentation of SMTP command and response lines */
-static gboolean smtp_desegment = TRUE;
-static gboolean smtp_data_desegment = TRUE;
+static bool smtp_desegment = true;
+static bool smtp_data_desegment = true;
static reassembly_table smtp_data_reassembly_table;
@@ -208,7 +208,7 @@ static const struct {
{ "XEXCH50", 7 } /* Microsoft Exchange */
};
-#define NCOMMANDS (sizeof commands / sizeof commands[0])
+#define NCOMMANDS array_length(commands)
/* The following were copied from RFC 2821 */
static const value_string response_codes_vs[] = {
diff --git a/epan/dissectors/packet-sna.c b/epan/dissectors/packet-sna.c
index 7594fff1c4..238f4830ab 100644
--- a/epan/dissectors/packet-sna.c
+++ b/epan/dissectors/packet-sna.c
@@ -306,7 +306,7 @@ static dissector_handle_t sna_xid_handle;
static int sna_address_type = -1;
/* Defragment fragmented SNA BIUs*/
-static gboolean sna_defragment = TRUE;
+static bool sna_defragment = true;
static reassembly_table sna_reassembly_table;
/* Format Identifier */
diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c
index 286c614982..49391205ec 100644
--- a/epan/dissectors/packet-snmp.c
+++ b/epan/dissectors/packet-snmp.c
@@ -78,8 +78,8 @@ static int snmp_tap;
static int proto_snmp;
static int proto_smux;
-static gboolean display_oid = TRUE;
-static gboolean snmp_var_in_tree = TRUE;
+static bool display_oid = true;
+static bool snmp_var_in_tree = true;
void proto_register_snmp(void);
void proto_reg_handoff_snmp(void);
@@ -152,10 +152,10 @@ static snmp_usm_decoder_t priv_protos[] = {
snmp_usm_priv_aes256
};
-static snmp_ue_assoc_t* ueas = NULL;
-static guint num_ueas = 0;
-static snmp_ue_assoc_t* localized_ues = NULL;
-static snmp_ue_assoc_t* unlocalized_ues = NULL;
+static snmp_ue_assoc_t* ueas;
+static guint num_ueas;
+static snmp_ue_assoc_t* localized_ues;
+static snmp_ue_assoc_t* unlocalized_ues;
/****/
/* Variables used for handling enterprise specific trap types */
@@ -164,21 +164,21 @@ typedef struct _snmp_st_assoc_t {
guint trap;
char *desc;
} snmp_st_assoc_t;
-static guint num_specific_traps = 0;
-static snmp_st_assoc_t *specific_traps = NULL;
-static const char *enterprise_oid = NULL;
-static guint generic_trap = 0;
-static guint32 snmp_version = 0;
+static guint num_specific_traps;
+static snmp_st_assoc_t *specific_traps;
+static const char *enterprise_oid;
+static guint generic_trap;
+static guint32 snmp_version;
static guint32 RequestID = -1;
-static snmp_usm_params_t usm_p = {FALSE,FALSE,0,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,FALSE};
+static snmp_usm_params_t usm_p;
#define TH_AUTH 0x01
#define TH_CRYPT 0x02
#define TH_REPORT 0x04
/* desegmentation of SNMP-over-TCP */
-static gboolean snmp_desegment = TRUE;
+static bool snmp_desegment = true;
/* Global variables */
@@ -321,25 +321,25 @@ static gint ett_name;
static gint ett_value;
static gint ett_decoding_error;
-static gint ett_snmp_Message;
-static gint ett_snmp_Messagev2u;
-static gint ett_snmp_T_datav2u;
-static gint ett_snmp_UsmSecurityParameters;
-static gint ett_snmp_SNMPv3Message;
-static gint ett_snmp_HeaderData;
-static gint ett_snmp_ScopedPduData;
-static gint ett_snmp_ScopedPDU;
-static gint ett_snmp_PDUs;
-static gint ett_snmp_PDU;
-static gint ett_snmp_BulkPDU;
-static gint ett_snmp_Trap_PDU_U;
-static gint ett_snmp_VarBind;
-static gint ett_snmp_VarBindList;
-static gint ett_snmp_SMUX_PDUs;
-static gint ett_snmp_RegisterResponse;
-static gint ett_snmp_OpenPDU;
-static gint ett_snmp_SimpleOpen_U;
-static gint ett_snmp_RReqPDU_U;
+static int ett_snmp_Message;
+static int ett_snmp_Messagev2u;
+static int ett_snmp_T_datav2u;
+static int ett_snmp_UsmSecurityParameters;
+static int ett_snmp_SNMPv3Message;
+static int ett_snmp_HeaderData;
+static int ett_snmp_ScopedPduData;
+static int ett_snmp_ScopedPDU;
+static int ett_snmp_PDUs;
+static int ett_snmp_PDU;
+static int ett_snmp_BulkPDU;
+static int ett_snmp_Trap_PDU_U;
+static int ett_snmp_VarBind;
+static int ett_snmp_VarBindList;
+static int ett_snmp_SMUX_PDUs;
+static int ett_snmp_RegisterResponse;
+static int ett_snmp_OpenPDU;
+static int ett_snmp_SimpleOpen_U;
+static int ett_snmp_RReqPDU_U;
static expert_field ei_snmp_failed_decrypted_data_pdu;
static expert_field ei_snmp_decrypted_data_bad_formatted;
@@ -819,7 +819,7 @@ dissect_snmp_VarBind(bool implicit_tag _U_, tvbuff_t *tvb, int offset,
return dissect_unknown_ber(actx->pinfo, tvb, value_start, pt);
}
- /* Now, we know where everithing is */
+ /* Now, we know where everything is */
/* fetch ObjectName and its relative oid_info */
oid_bytes = (guint8*)tvb_memdup(actx->pinfo->pool, tvb, name_offset, name_len);
diff --git a/epan/dissectors/packet-snort.c b/epan/dissectors/packet-snort.c
index 5276e2000e..3afcc9ac4a 100644
--- a/epan/dissectors/packet-snort.c
+++ b/epan/dissectors/packet-snort.c
@@ -119,22 +119,22 @@ static const char *pref_snort_config_filename = "C:\\Snort\\etc\\snort.conf";
#endif
/* Should rule stats be shown in protocol tree? */
-static gboolean snort_show_rule_stats = FALSE;
+static bool snort_show_rule_stats;
/* Should alerts be added as expert info? */
-static gboolean snort_show_alert_expert_info = FALSE;
+static bool snort_show_alert_expert_info;
/* Should we try to attach the alert to the tcp.reassembled_in frame instead of current one? */
-static gboolean snort_alert_in_reassembled_frame = FALSE;
+static bool snort_alert_in_reassembled_frame;
/* Should Snort ignore checksum errors (as will likely be seen because of check offloading or
* possibly if trying to capture live in a container)? */
-static gboolean snort_ignore_checksum_errors = TRUE;
+static bool snort_ignore_checksum_errors = true;
/********************************************************/
/* Global variable with single parsed snort config */
-static SnortConfig_t *g_snort_config = NULL;
+static SnortConfig_t *g_snort_config;
/******************************************************/
diff --git a/epan/dissectors/packet-socketcan.c b/epan/dissectors/packet-socketcan.c
index 09b5f687fc..b34e460cdd 100644
--- a/epan/dissectors/packet-socketcan.c
+++ b/epan/dissectors/packet-socketcan.c
@@ -97,8 +97,8 @@ static int proto_can;
static int proto_canfd;
static int proto_canxl;
-static gboolean byte_swap = FALSE;
-static gboolean heuristic_first = FALSE;
+static bool byte_swap;
+static bool heuristic_first;
static heur_dissector_list_t heur_subdissector_list;
static heur_dtbl_entry_t *heur_dtbl_entry;
@@ -116,10 +116,10 @@ static heur_dtbl_entry_t *heur_dtbl_entry;
#define CANXL_LEN_OFFSET 6
#define CANXL_DATA_OFFSET 12
-static dissector_table_t can_id_dissector_table = NULL;
-static dissector_table_t can_extended_id_dissector_table = NULL;
-static dissector_table_t subdissector_table = NULL;
-static dissector_table_t canxl_sdu_type_dissector_table = NULL;
+static dissector_table_t can_id_dissector_table;
+static dissector_table_t can_extended_id_dissector_table;
+static dissector_table_t subdissector_table;
+static dissector_table_t canxl_sdu_type_dissector_table;
static dissector_handle_t socketcan_classic_handle;
static dissector_handle_t socketcan_fd_handle;
static dissector_handle_t socketcan_xl_handle;
@@ -196,10 +196,10 @@ typedef struct _interface_config {
#define DATAFILE_CAN_INTERFACE_MAPPING "CAN_interface_mapping"
-static GHashTable *data_can_interfaces_by_id = NULL;
-static GHashTable *data_can_interfaces_by_name = NULL;
-static interface_config_t *interface_configs = NULL;
-static guint interface_config_num = 0;
+static GHashTable *data_can_interfaces_by_id;
+static GHashTable *data_can_interfaces_by_name;
+static interface_config_t *interface_configs;
+static guint interface_config_num;
UAT_HEX_CB_DEF(interface_configs, interface_id, interface_config_t)
UAT_CSTRING_CB_DEF(interface_configs, interface_name, interface_config_t)
@@ -366,9 +366,9 @@ typedef struct _sender_receiver_config {
#define DATAFILE_CAN_SENDER_RECEIVER "CAN_senders_receivers"
-static GHashTable *data_sender_receiver = NULL;
-static sender_receiver_config_t *sender_receiver_configs = NULL;
-static guint sender_receiver_config_num = 0;
+static GHashTable *data_sender_receiver;
+static sender_receiver_config_t *sender_receiver_configs;
+static guint sender_receiver_config_num;
UAT_HEX_CB_DEF(sender_receiver_configs, bus_id, sender_receiver_config_t)
UAT_HEX_CB_DEF(sender_receiver_configs, can_id, sender_receiver_config_t)
@@ -599,6 +599,7 @@ dissect_socketcan_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
/* determine CAN packet type */
if (can_packet_type == PACKET_TYPE_UNKNOWN) {
+ guint8 canfd_flags;
guint8 canxl_flags;
/*
@@ -607,13 +608,20 @@ dissect_socketcan_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
* or CAN FD frame; if so, then it's a CAN XL frame (and that
* field is the flags field of that frame).
*/
+ canfd_flags = tvb_get_guint8(tvb, CANFD_FLAG_OFFSET);
canxl_flags = tvb_get_guint8(tvb, CANXL_FLAGS_OFFSET);
- if ((tvb_reported_length(tvb) > 12) && (canxl_flags & CANXL_XLF)) {
- can_packet_type = PACKET_TYPE_CAN_XL;
+
+ if (canxl_flags & CANXL_XLF) {
+ /* CAN XL: check for min/max data length */
+ if ((tvb_reported_length(tvb) >= 13) && (tvb_reported_length(tvb) <= 2060))
+ can_packet_type = PACKET_TYPE_CAN_XL;
} else {
- if (tvb_reported_length(tvb) == 72)
- can_packet_type = PACKET_TYPE_CAN_FD;
- else if (tvb_reported_length(tvb) == 16)
+ /* CAN CC/FD */
+ if ((tvb_reported_length(tvb) == 72) || (canfd_flags & CANFD_FDF)) {
+ /* CAN FD: check for min/max data length */
+ if ((tvb_reported_length(tvb) >= 8) && (tvb_reported_length(tvb) <= 72))
+ can_packet_type = PACKET_TYPE_CAN_FD;
+ } else if ((tvb_reported_length(tvb) >= 8) && (tvb_reported_length(tvb) <= 16))
can_packet_type = PACKET_TYPE_CAN;
}
}
diff --git a/epan/dissectors/packet-socks.c b/epan/dissectors/packet-socks.c
index 2fd3c52e9d..01ff16e41a 100644
--- a/epan/dissectors/packet-socks.c
+++ b/epan/dissectors/packet-socks.c
@@ -484,6 +484,7 @@ display_socks_v4(tvbuff_t *tvb, int offset, packet_info *pinfo,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
client_display_socks_v5(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, socks_hash_entry_t *hash_info, sock_state_t* state_info) {
@@ -535,7 +536,9 @@ client_display_socks_v5(tvbuff_t *tvb, int offset, packet_info *pinfo,
(tvb_get_guint8(tvb, offset + 2) == 0) &&
(tvb_reported_length_remaining(tvb, offset + 2 + num_auth_methods) > 0)) {
new_state_info.client = clientV5Command;
+ increment_dissection_depth(pinfo);
client_display_socks_v5(tvb, offset, pinfo, tree, hash_info, &new_state_info);
+ decrement_dissection_depth(pinfo);
}
}
else if (state_info->client == clientV5Command) {
@@ -763,6 +766,7 @@ state_machine_v4( socks_hash_entry_t *hash_info, tvbuff_t *tvb,
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
client_state_machine_v5( socks_hash_entry_t *hash_info, tvbuff_t *tvb,
int offset, packet_info *pinfo, gboolean start_of_frame) {
@@ -788,7 +792,9 @@ client_state_machine_v5( socks_hash_entry_t *hash_info, tvbuff_t *tvb,
/* No authentication needed */
hash_info->clientState = clientV5Command;
if (tvb_reported_length_remaining(tvb, offset + 2 + num_auth_methods) > 0) {
+ increment_dissection_depth(pinfo);
client_state_machine_v5(hash_info, tvb, offset + 2 + num_auth_methods, pinfo, FALSE);
+ decrement_dissection_depth(pinfo);
}
} else {
hash_info->clientState = clientWaitForAuthReply;
diff --git a/epan/dissectors/packet-solaredge.c b/epan/dissectors/packet-solaredge.c
index 21faef7c6d..51747e639c 100644
--- a/epan/dissectors/packet-solaredge.c
+++ b/epan/dissectors/packet-solaredge.c
@@ -479,7 +479,7 @@ void proto_register_solaredge(void);
static dissector_handle_t solaredge_handle;
-static gboolean global_show_unknown_fields = TRUE;
+static bool global_show_unknown_fields = true;
static expert_field ei_solaredge_invalid_length;
static expert_field ei_solaredge_invalid_crc;
@@ -978,7 +978,7 @@ static const value_string solaredge_data_devicetypes[] = {
};
static gcry_cipher_hd_t cipher_hd_system;
-static const gchar *global_system_encryption_key = NULL;
+static const gchar *global_system_encryption_key;
static
guint16 calculate_crc(t_solaredge_packet_header *header, const guint8 *data, gint length)
diff --git a/epan/dissectors/packet-someip-sd.c b/epan/dissectors/packet-someip-sd.c
index 7392d25fda..0714fb5222 100644
--- a/epan/dissectors/packet-someip-sd.c
+++ b/epan/dissectors/packet-someip-sd.c
@@ -175,8 +175,8 @@ static int st_node_ip_src = -1;
static int st_node_ip_dst = -1;
/*** Preferences ***/
-static range_t *someip_ignore_ports_udp = NULL;
-static range_t *someip_ignore_ports_tcp = NULL;
+static range_t *someip_ignore_ports_udp;
+static range_t *someip_ignore_ports_tcp;
/* SOME/IP-SD Entry Names for TTL>0 */
static const value_string sd_entry_type_positive[] = {
diff --git a/epan/dissectors/packet-someip.c b/epan/dissectors/packet-someip.c
index 208b6c9561..98cdab9ffb 100644
--- a/epan/dissectors/packet-someip.c
+++ b/epan/dissectors/packet-someip.c
@@ -127,11 +127,11 @@
/* ID wireshark identifies the dissector by */
static int proto_someip;
-static module_t *someip_module = NULL;
+static module_t *someip_module;
-static dissector_handle_t someip_handle_udp = NULL;
-static dissector_handle_t someip_handle_tcp = NULL;
-static dissector_handle_t dtls_handle = NULL;
+static dissector_handle_t someip_handle_udp;
+static dissector_handle_t someip_handle_tcp;
+static dissector_handle_t dtls_handle;
/* header field */
static int hf_someip_messageid;
@@ -165,7 +165,7 @@ static gint ett_someip_msgtype;
static gint ett_someip_tp;
/* dissector handling */
-static dissector_table_t someip_dissector_table = NULL;
+static dissector_table_t someip_dissector_table;
/* message reassembly for SOME/IP-TP */
static int hf_someip_tp_fragments;
@@ -198,14 +198,14 @@ static int hf_payload_wtlv_tag_res;
static int hf_payload_wtlv_tag_wire_type;
static int hf_payload_wtlv_tag_data_id;
-static hf_register_info* dynamic_hf_param = NULL;
-static guint dynamic_hf_param_size = 0;
-static hf_register_info* dynamic_hf_array = NULL;
-static guint dynamic_hf_array_size = 0;
-static hf_register_info* dynamic_hf_struct = NULL;
-static guint dynamic_hf_struct_size = 0;
-static hf_register_info* dynamic_hf_union = NULL;
-static guint dynamic_hf_union_size = 0;
+static hf_register_info* dynamic_hf_param;
+static guint dynamic_hf_param_size;
+static hf_register_info* dynamic_hf_array;
+static guint dynamic_hf_array_size;
+static hf_register_info* dynamic_hf_struct;
+static guint dynamic_hf_struct_size;
+static hf_register_info* dynamic_hf_union;
+static guint dynamic_hf_union_size;
static gint ett_someip_tp_fragment;
static gint ett_someip_tp_fragments;
@@ -235,10 +235,10 @@ static const fragment_items someip_tp_frag_items = {
"SOME/IP-TP Segments"
};
-static gboolean someip_tp_reassemble = TRUE;
-static gboolean someip_deserializer_activated = TRUE;
-static gboolean someip_deserializer_wtlv_default = FALSE;
-static gboolean someip_detect_dtls = FALSE;
+static bool someip_tp_reassemble = true;
+static bool someip_deserializer_activated = true;
+static bool someip_deserializer_wtlv_default;
+static bool someip_detect_dtls;
/* SOME/IP Message Types */
static const value_string someip_msg_type[] = {
@@ -284,19 +284,19 @@ static expert_field ei_someip_payload_static_array_min_not_max;
static expert_field ei_someip_payload_dyn_array_not_within_limit;
/*** Data Structure for mapping IDs to Names (Services, Methods, ...) ***/
-static GHashTable *data_someip_services = NULL;
-static GHashTable *data_someip_methods = NULL;
-static GHashTable *data_someip_eventgroups = NULL;
-static GHashTable *data_someip_clients = NULL;
-
-static GHashTable *data_someip_parameter_list = NULL;
-static GHashTable *data_someip_parameter_base_type_list = NULL;
-static GHashTable *data_someip_parameter_strings = NULL;
-static GHashTable *data_someip_parameter_typedefs = NULL;
-static GHashTable *data_someip_parameter_arrays = NULL;
-static GHashTable *data_someip_parameter_structs = NULL;
-static GHashTable *data_someip_parameter_unions = NULL;
-static GHashTable *data_someip_parameter_enums = NULL;
+static GHashTable *data_someip_services;
+static GHashTable *data_someip_methods;
+static GHashTable *data_someip_eventgroups;
+static GHashTable *data_someip_clients;
+
+static GHashTable *data_someip_parameter_list;
+static GHashTable *data_someip_parameter_base_type_list;
+static GHashTable *data_someip_parameter_strings;
+static GHashTable *data_someip_parameter_typedefs;
+static GHashTable *data_someip_parameter_arrays;
+static GHashTable *data_someip_parameter_structs;
+static GHashTable *data_someip_parameter_unions;
+static GHashTable *data_someip_parameter_enums;
/*** Taps ***/
static int tap_someip_messages = -1;
@@ -571,41 +571,41 @@ typedef struct _generic_two_id_string {
gchar *name;
} generic_two_id_string_t;
-static generic_one_id_string_t *someip_service_ident = NULL;
-static guint someip_service_ident_num = 0;
+static generic_one_id_string_t *someip_service_ident;
+static guint someip_service_ident_num;
-static generic_two_id_string_t *someip_method_ident = NULL;
-static guint someip_method_ident_num = 0;
+static generic_two_id_string_t *someip_method_ident;
+static guint someip_method_ident_num;
-static generic_two_id_string_t *someip_eventgroup_ident = NULL;
-static guint someip_eventgroup_ident_num = 0;
+static generic_two_id_string_t *someip_eventgroup_ident;
+static guint someip_eventgroup_ident_num;
-static generic_two_id_string_t *someip_client_ident = NULL;
-static guint someip_client_ident_num = 0;
+static generic_two_id_string_t *someip_client_ident;
+static guint someip_client_ident_num;
-static someip_parameter_list_uat_t *someip_parameter_list = NULL;
-static guint someip_parameter_list_num = 0;
+static someip_parameter_list_uat_t *someip_parameter_list;
+static guint someip_parameter_list_num;
-static someip_parameter_string_uat_t *someip_parameter_strings = NULL;
-static guint someip_parameter_strings_num = 0;
+static someip_parameter_string_uat_t *someip_parameter_strings;
+static guint someip_parameter_strings_num;
-static someip_parameter_typedef_uat_t *someip_parameter_typedefs = NULL;
-static guint someip_parameter_typedefs_num = 0;
+static someip_parameter_typedef_uat_t *someip_parameter_typedefs;
+static guint someip_parameter_typedefs_num;
-static someip_parameter_array_uat_t *someip_parameter_arrays = NULL;
-static guint someip_parameter_arrays_num = 0;
+static someip_parameter_array_uat_t *someip_parameter_arrays;
+static guint someip_parameter_arrays_num;
-static someip_parameter_struct_uat_t *someip_parameter_structs = NULL;
-static guint someip_parameter_structs_num = 0;
+static someip_parameter_struct_uat_t *someip_parameter_structs;
+static guint someip_parameter_structs_num;
-static someip_parameter_union_uat_t *someip_parameter_unions = NULL;
-static guint someip_parameter_unions_num = 0;
+static someip_parameter_union_uat_t *someip_parameter_unions;
+static guint someip_parameter_unions_num;
-static someip_parameter_enum_uat_t *someip_parameter_enums = NULL;
-static guint someip_parameter_enums_num = 0;
+static someip_parameter_enum_uat_t *someip_parameter_enums;
+static guint someip_parameter_enums_num;
-static someip_parameter_base_type_list_uat_t *someip_parameter_base_type_list = NULL;
-static guint someip_parameter_base_type_list_num = 0;
+static someip_parameter_base_type_list_uat_t *someip_parameter_base_type_list;
+static guint someip_parameter_base_type_list_num;
void proto_register_someip(void);
void proto_reg_handoff_someip(void);
@@ -3622,8 +3622,8 @@ dissect_someip_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
guint32 protocol_version = 0;
guint32 version = 0;
guint32 msgtype = 0;
- gboolean msgtype_ack = FALSE;
- gboolean msgtype_tp = FALSE;
+ bool msgtype_ack = false;
+ bool msgtype_tp = false;
guint32 retcode = 0;
int tmp = 0;
@@ -3755,8 +3755,8 @@ dissect_someip_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
/* Is this a SOME/IP-TP segment? */
if (msgtype_tp) {
guint32 tp_offset = 0;
- gboolean tp_more_segments = FALSE;
- gboolean update_col_info = TRUE;
+ bool tp_more_segments = false;
+ bool update_col_info = true;
fragment_head *someip_tp_head = NULL;
proto_tree *tp_tree = NULL;
diff --git a/epan/dissectors/packet-soupbintcp.c b/epan/dissectors/packet-soupbintcp.c
index d1b0a65af2..0cf63a510d 100644
--- a/epan/dissectors/packet-soupbintcp.c
+++ b/epan/dissectors/packet-soupbintcp.c
@@ -102,7 +102,7 @@ static dissector_handle_t soupbintcp_handle;
static heur_dissector_list_t heur_subdissector_list;
/* Preferences */
-static gboolean soupbintcp_desegment = TRUE;
+static bool soupbintcp_desegment = true;
/* Initialize the subtree pointers */
static gint ett_soupbintcp;
diff --git a/epan/dissectors/packet-sparkplug.c b/epan/dissectors/packet-sparkplug.c
index 1eb57d27c3..6dff1a589f 100644
--- a/epan/dissectors/packet-sparkplug.c
+++ b/epan/dissectors/packet-sparkplug.c
@@ -37,7 +37,7 @@ static gint ett_sparkplugb;
static gint ett_sparkplugb_namespace;
/* The handle to the protobuf dissector */
-dissector_handle_t protobuf_handle = NULL;
+dissector_handle_t protobuf_handle;
/* The hf items */
static int hf_sparkplugb_namespace;
diff --git a/epan/dissectors/packet-spdy.c b/epan/dissectors/packet-spdy.c
index 254a630844..e7f2c626f1 100644
--- a/epan/dissectors/packet-spdy.c
+++ b/epan/dissectors/packet-spdy.c
@@ -233,17 +233,17 @@ static dissector_handle_t spdy_handle;
static dissector_table_t media_type_subdissector_table;
static dissector_table_t port_subdissector_table;
-static gboolean spdy_assemble_entity_bodies = TRUE;
+static bool spdy_assemble_entity_bodies = true;
/*
* Decompression of zlib encoded entities.
*/
#ifdef HAVE_ZLIB
-static gboolean spdy_decompress_body = TRUE;
-static gboolean spdy_decompress_headers = TRUE;
+static bool spdy_decompress_body = true;
+static bool spdy_decompress_headers = true;
#else
-static gboolean spdy_decompress_body = FALSE;
-static gboolean spdy_decompress_headers = FALSE;
+static bool spdy_decompress_body;
+static bool spdy_decompress_headers;
#endif
#ifdef HAVE_ZLIB
diff --git a/epan/dissectors/packet-spice.c b/epan/dissectors/packet-spice.c
index 0e1546b3f6..743a7b0e1b 100644
--- a/epan/dissectors/packet-spice.c
+++ b/epan/dissectors/packet-spice.c
@@ -2931,7 +2931,7 @@ dissect_spice_link_capabilities(tvbuff_t *tvb, packet_info* pinfo, proto_tree *t
switch (spice_info->channel_type) {
case SPICE_CHANNEL_PLAYBACK:
{
- int * const playback_cap[] = {
+ static int * const playback_cap[] = {
&hf_playback_cap_celt_0_5_1,
&hf_playback_cap_volume,
&hf_playback_cap_latency,
@@ -2947,7 +2947,7 @@ dissect_spice_link_capabilities(tvbuff_t *tvb, packet_info* pinfo, proto_tree *t
break;
case SPICE_CHANNEL_MAIN:
{
- int * const main_cap[] = {
+ static int * const main_cap[] = {
&hf_main_cap_semi_migrate,
&hf_main_cap_vm_name_uuid, /*Note: only relevant for client. TODO: dissect only for client */
&hf_main_cap_agent_connected_tokens,
@@ -2963,7 +2963,7 @@ dissect_spice_link_capabilities(tvbuff_t *tvb, packet_info* pinfo, proto_tree *t
break;
case SPICE_CHANNEL_DISPLAY:
{
- int * const display_cap[] = {
+ static int * const display_cap[] = {
&hf_display_cap_sized_stream,
&hf_display_cap_monitors_config,
&hf_display_cap_composite,
@@ -2996,7 +2996,7 @@ dissect_spice_link_capabilities(tvbuff_t *tvb, packet_info* pinfo, proto_tree *t
break;
case SPICE_CHANNEL_RECORD:
{
- int * const record_cap[] = {
+ static int * const record_cap[] = {
&hf_record_cap_celt,
&hf_record_cap_volume,
&hf_record_cap_opus,
diff --git a/epan/dissectors/packet-spnego.c b/epan/dissectors/packet-spnego.c
index f73078a8a1..f2f86d40d4 100644
--- a/epan/dissectors/packet-spnego.c
+++ b/epan/dissectors/packet-spnego.c
@@ -83,6 +83,8 @@ static int hf_spnego_responseToken; /* T_responseToken */
static int hf_spnego_mechListMIC_01; /* T_mechListMIC */
static int hf_spnego_thisMech; /* MechType */
static int hf_spnego_innerContextToken; /* InnerContextToken */
+static int hf_spnego_target_realm; /* T_target_realm */
+static int hf_spnego_cookie; /* OCTET_STRING */
/* named bits */
static int hf_spnego_ContextFlags_delegFlag;
static int hf_spnego_ContextFlags_mutualFlag;
@@ -95,7 +97,7 @@ static int hf_spnego_ContextFlags_integFlag;
/* Global variables */
static const char *MechType_oid;
gssapi_oid_value *next_level_value;
-gboolean saw_mechanism = FALSE;
+gboolean saw_mechanism;
/* Initialize the subtree pointers */
@@ -104,14 +106,15 @@ static gint ett_spnego_wraptoken;
static gint ett_spnego_krb5;
static gint ett_spnego_krb5_cfx_flags;
-static gint ett_spnego_NegotiationToken;
-static gint ett_spnego_MechTypeList;
-static gint ett_spnego_NegTokenInit;
-static gint ett_spnego_NegHints;
-static gint ett_spnego_NegTokenInit2;
-static gint ett_spnego_ContextFlags;
-static gint ett_spnego_NegTokenTarg;
-static gint ett_spnego_InitialContextToken_U;
+static int ett_spnego_NegotiationToken;
+static int ett_spnego_MechTypeList;
+static int ett_spnego_NegTokenInit;
+static int ett_spnego_NegHints;
+static int ett_spnego_NegTokenInit2;
+static int ett_spnego_ContextFlags;
+static int ett_spnego_NegTokenTarg;
+static int ett_spnego_InitialContextToken_U;
+static int ett_spnego_IAKERB_HEADER;
static expert_field ei_spnego_decrypted_keytype;
static expert_field ei_spnego_unknown_header;
@@ -392,6 +395,7 @@ dissect_spnego_T_mechListMIC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
+
return offset;
}
@@ -547,6 +551,60 @@ dissect_spnego_InitialContextToken(bool implicit_tag _U_, tvbuff_t *tvb _U_, int
return offset;
}
+
+
+static int
+dissect_spnego_T_target_realm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+
+ gint8 ber_class;
+ bool pc;
+ gint32 tag;
+
+ /*
+ * MIT Kerberos sends an IAKERB-HEADER like this:
+ *
+ * <30 2B A1 29 04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30>
+ * 0 43: SEQUENCE {
+ * <A1 29 04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30 31 32>
+ * 2 41: [1] {
+ * <04 27 53 32 2D 57 32 30 31 32 2D 4C 34 2E 53 31 2D 57 32 30 31 32 2D 4C>
+ * 4 39: OCTET STRING 'S2-W2012-L4.S1-W2012-L4.W2012R2-L4.BASE'
+ * : }
+ * : }
+ */
+
+ get_ber_identifier(tvb, offset, &ber_class, &pc, &tag);
+ if (ber_class == BER_CLASS_UNI && pc == false && tag == BER_UNI_TAG_OCTETSTRING) {
+ proto_tree_add_text_internal(tree, tvb, offset, 1,
+ "target-realm encoded as OCTET STRING: MIT Kerberos?");
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_OCTETSTRING,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+ } else {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTF8String,
+ actx, tree, tvb, offset, hf_index,
+ NULL);
+ }
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t IAKERB_HEADER_sequence[] = {
+ { &hf_spnego_target_realm , BER_CLASS_CON, 1, 0, dissect_spnego_T_target_realm },
+ { &hf_spnego_cookie , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_spnego_OCTET_STRING },
+ { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_spnego_IAKERB_HEADER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ IAKERB_HEADER_sequence, hf_index, ett_spnego_IAKERB_HEADER);
+
+ return offset;
+}
+
/*
* This is the SPNEGO KRB5 dissector. It is not true KRB5, but some ASN.1
* wrapped blob with an OID, USHORT token ID, and a Ticket, that is also
@@ -561,6 +619,7 @@ dissect_spnego_InitialContextToken(bool implicit_tag _U_, tvbuff_t *tvb _U_, int
#define KRB_TOKEN_DELETE_SEC_CONTEXT 0x0201
#define KRB_TOKEN_TGT_REQ 0x0004
#define KRB_TOKEN_TGT_REP 0x0104
+#define KRB_TOKEN_IAKERB_PROXY 0x0105
#define KRB_TOKEN_CFX_GETMIC 0x0404
#define KRB_TOKEN_CFX_WRAP 0x0405
@@ -573,8 +632,9 @@ static const value_string spnego_krb5_tok_id_vals[] = {
{ KRB_TOKEN_DELETE_SEC_CONTEXT, "KRB5_GSS_Delete_sec_context" },
{ KRB_TOKEN_TGT_REQ, "KERB_TGT_REQUEST" },
{ KRB_TOKEN_TGT_REP, "KERB_TGT_REPLY" },
+ { KRB_TOKEN_IAKERB_PROXY, "KRB_TOKEN_IAKERB_PROXY" },
{ KRB_TOKEN_CFX_GETMIC, "KRB_TOKEN_CFX_GetMic" },
- { KRB_TOKEN_CFX_WRAP, "KRB_TOKEN_CFX_WRAP" },
+ { KRB_TOKEN_CFX_WRAP, "KRB_TOKEN_CFX_WRAP" },
{ 0, NULL}
};
@@ -753,6 +813,11 @@ dissect_spnego_krb5(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
offset = dissect_spnego_krb5_cfx_wrap_base(tvb, offset, pinfo, subtree, token_id, encrypt_info);
break;
+ case KRB_TOKEN_IAKERB_PROXY:
+ offset = dissect_spnego_IAKERB_HEADER(FALSE, tvb, offset, &asn1_ctx, subtree, -1);
+ krb5_tvb = tvb_new_subset_remaining(tvb, offset);
+ offset += dissect_kerberos_main(krb5_tvb, pinfo, subtree, FALSE, NULL);
+ break;
default:
break;
@@ -1901,6 +1966,14 @@ void proto_register_spnego(void) {
{ "innerContextToken", "spnego.innerContextToken_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_spnego_target_realm,
+ { "target-realm", "spnego.target_realm",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "T_target_realm", HFILL }},
+ { &hf_spnego_cookie,
+ { "cookie", "spnego.cookie",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "OCTET_STRING", HFILL }},
{ &hf_spnego_ContextFlags_delegFlag,
{ "delegFlag", "spnego.ContextFlags.delegFlag",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -1946,6 +2019,7 @@ void proto_register_spnego(void) {
&ett_spnego_ContextFlags,
&ett_spnego_NegTokenTarg,
&ett_spnego_InitialContextToken_U,
+ &ett_spnego_IAKERB_HEADER,
};
static ei_register_info ei[] = {
@@ -2001,7 +2075,9 @@ void proto_reg_handoff_spnego(void) {
gssapi_init_oid("1.2.840.113554.1.2.2.3", proto_spnego_krb5, ett_spnego_krb5,
spnego_krb5_handle, spnego_krb5_wrap_handle,
"KRB5 - Kerberos 5 - User to User");
-
+ gssapi_init_oid("1.3.6.1.5.2.5", proto_spnego_krb5, ett_spnego_krb5,
+ spnego_krb5_handle, spnego_krb5_wrap_handle,
+ "KRB5 - IAKERB");
}
/*
diff --git a/epan/dissectors/packet-sprt.c b/epan/dissectors/packet-sprt.c
index 781055096e..f31449c476 100644
--- a/epan/dissectors/packet-sprt.c
+++ b/epan/dissectors/packet-sprt.c
@@ -466,8 +466,8 @@ static int hf_sprt_payload_rawbit_p;
static int hf_sprt_payload_rawbit_n;
/* Preferences */
-static gboolean global_sprt_show_setup_info = TRUE; /* show how this SPRT stream got started */
-static gboolean global_sprt_show_dlci_info = TRUE; /* show DLCI in I_OCTET messages, including setup frame (if we can) */
+static bool global_sprt_show_setup_info = true; /* show how this SPRT stream got started */
+static bool global_sprt_show_dlci_info = true; /* show DLCI in I_OCTET messages, including setup frame (if we can) */
/* dissector handle */
diff --git a/epan/dissectors/packet-srt.c b/epan/dissectors/packet-srt.c
index 28452fb517..b4eabb253b 100644
--- a/epan/dissectors/packet-srt.c
+++ b/epan/dissectors/packet-srt.c
@@ -472,7 +472,7 @@ static void srt_format_km(proto_tree* tree, tvbuff_t* tvb, int baseoff, int bloc
proto_tree_add_item(tree, hf_srt_km_resv1, tvb, baseoff + 3, 1, ENC_NA);
- const value_string kk_desc[] = {
+ static const value_string kk_desc[] = {
{ 0, "No SEK is provided - invalid KM" },
{ 1, "Even key is provided" },
{ 2, "Odd key is provided" },
@@ -484,7 +484,7 @@ static void srt_format_km(proto_tree* tree, tvbuff_t* tvb, int baseoff, int bloc
proto_tree_add_uint_format_value(tree, hf_srt_km_kk, tvb, baseoff + 3, 1,
u8bits, "%u (%s)", (u8bits & SRT_KM_KK_MASK), try_val_to_str(u8bits & SRT_KM_KK_MASK, kk_desc));
- const value_string cipher_desc[] = {
+ static const value_string cipher_desc[] = {
{ 0, "None or KEKI indexed crypto context" },
{ 1, "AES-ECB (reserved, not supported)" },
{ 2, "AES-CTR" },
@@ -500,7 +500,7 @@ static void srt_format_km(proto_tree* tree, tvbuff_t* tvb, int baseoff, int bloc
proto_tree_add_item(tree, hf_srt_km_auth, tvb, baseoff + 9, 1, ENC_BIG_ENDIAN);
- const value_string se_desc[] = {
+ static const value_string se_desc[] = {
{ 0, "Unspecified" },
{ 1, "MPEG2-TS/UDP" },
{ 2, "MPEG2-TS/SRT" },
@@ -1042,7 +1042,7 @@ dissect_srt_udp(tvbuff_t *tvb, packet_info* pinfo, proto_tree *parent_tree,
void *data _U_)
{
/* Other misc. local variables. */
- gboolean is_control = 0;
+ bool is_control = 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "SRT");
col_clear (pinfo->cinfo, COL_INFO);
diff --git a/epan/dissectors/packet-srvloc.c b/epan/dissectors/packet-srvloc.c
index 8e789c0ab2..65a427e9d2 100644
--- a/epan/dissectors/packet-srvloc.c
+++ b/epan/dissectors/packet-srvloc.c
@@ -35,7 +35,7 @@ void proto_reg_handoff_srvloc(void);
static dissector_handle_t srvloc_handle;
static dissector_handle_t srvloc_tcp_handle;
-static gboolean srvloc_desegment = TRUE;
+static bool srvloc_desegment = true;
static int proto_srvloc;
static int hf_srvloc_version;
static int hf_srvloc_function;
diff --git a/epan/dissectors/packet-ssh.c b/epan/dissectors/packet-ssh.c
index 76b6674039..2dccee7997 100644
--- a/epan/dissectors/packet-ssh.c
+++ b/epan/dissectors/packet-ssh.c
@@ -225,7 +225,7 @@ typedef struct {
ssh_bignum *key_material;
} ssh_key_map_entry_t;
-static GHashTable * ssh_master_key_map = NULL;
+static GHashTable * ssh_master_key_map;
static int proto_ssh;
@@ -436,10 +436,10 @@ static expert_field ei_ssh_channel_number;
static expert_field ei_ssh_invalid_keylen;
static expert_field ei_ssh_mac_bad;
-static gboolean ssh_desegment = TRUE;
+static bool ssh_desegment = true;
static dissector_handle_t ssh_handle;
-static dissector_handle_t sftp_handle=NULL;
+static dissector_handle_t sftp_handle;
static const char *pref_keylog_file;
static FILE *ssh_keylog_file;
@@ -466,7 +466,7 @@ static const fragment_items ssh_segment_items = {
#define SSH_DECRYPT_DEBUG
#ifdef SSH_DECRYPT_DEBUG
-static const gchar *ssh_debug_file_name = NULL;
+static const gchar *ssh_debug_file_name;
#endif
#define TCP_RANGE_SSH "22"
@@ -2230,6 +2230,8 @@ ssh_kex_hash_type(gchar *type_string)
return SSH_KEX_HASH_SHA1;
}else if (type_string && g_str_has_suffix(type_string, "sha256")) {
return SSH_KEX_HASH_SHA256;
+ }else if (type_string && g_str_has_suffix(type_string, "sha256@libssh.org")) {
+ return SSH_KEX_HASH_SHA256;
}else if (type_string && g_str_has_suffix(type_string, "sha512")) {
return SSH_KEX_HASH_SHA512;
} else {
@@ -2848,7 +2850,6 @@ ssh_decryption_set_mac_id(struct ssh_peer_data *peer)
} else if (0 == strcmp(mac_name, "hmac-sha2-256")) {
peer->mac_id = CIPHER_MAC_SHA2_256;
} else {
- peer->mac = NULL;
ws_debug("decryption MAC not supported: %s", mac_name);
}
}
@@ -4869,7 +4870,7 @@ ssh_dissect_public_key_signature(tvbuff_t *packet_tvb, packet_info *pinfo,
#ifdef SSH_DECRYPT_DEBUG /* {{{ */
-static FILE* ssh_debug_file=NULL;
+static FILE* ssh_debug_file;
static void
ssh_prefs_apply_cb(void)
diff --git a/epan/dissectors/packet-sstp.c b/epan/dissectors/packet-sstp.c
index 3c1e27a89e..296ae9da57 100644
--- a/epan/dissectors/packet-sstp.c
+++ b/epan/dissectors/packet-sstp.c
@@ -102,7 +102,7 @@ void proto_reg_handoff_sstp(void);
#define SSTP_ATTRIB_STATUS_UNRECOGNIZED_ATTRIBUTE 0x000002
#define SSTP_ATTRIB_STATUS_VALUE_NOT_SUPPORTED 0x000004
-static dissector_handle_t ppp_hdlc_handle = NULL;
+static dissector_handle_t ppp_hdlc_handle;
static gint ett_sstp;
static gint ett_sstp_attribute;
static gint ett_sstp_version;
diff --git a/epan/dissectors/packet-starteam.c b/epan/dissectors/packet-starteam.c
index 9dd7986a17..5c0e9f2286 100644
--- a/epan/dissectors/packet-starteam.c
+++ b/epan/dissectors/packet-starteam.c
@@ -52,7 +52,7 @@ static gint ett_starteam_data;
static dissector_handle_t starteam_tcp_handle;
-static gboolean starteam_desegment = TRUE;
+static bool starteam_desegment = true;
#define STARTEAM_MAGIC 0x416C616E /* "Alan" */
diff --git a/epan/dissectors/packet-stt.c b/epan/dissectors/packet-stt.c
index 5ecce25180..fc01a04e95 100644
--- a/epan/dissectors/packet-stt.c
+++ b/epan/dissectors/packet-stt.c
@@ -25,8 +25,8 @@
#include "packet-ip.h"
-static gboolean pref_reassemble = TRUE;
-static gboolean pref_check_checksum = FALSE;
+static bool pref_reassemble = true;
+static bool pref_check_checksum;
/* IANA ref:
* https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
diff --git a/epan/dissectors/packet-stun.c b/epan/dissectors/packet-stun.c
index 954721ded2..97c459a08a 100644
--- a/epan/dissectors/packet-stun.c
+++ b/epan/dissectors/packet-stun.c
@@ -1283,7 +1283,7 @@ dissect_stun_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboole
}
case CHANGE_REQUEST:
{
- gboolean change_ip, change_port;
+ bool change_ip, change_port;
if (att_length < 4)
break;
proto_tree_add_item_ret_boolean(att_tree, hf_stun_att_change_ip, tvb, offset, 4, ENC_BIG_ENDIAN, &change_ip);
diff --git a/epan/dissectors/packet-sua.c b/epan/dissectors/packet-sua.c
index ba252e45bc..80aa825b64 100644
--- a/epan/dissectors/packet-sua.c
+++ b/epan/dissectors/packet-sua.c
@@ -389,7 +389,7 @@ typedef struct _sua_assoc_info_t {
gboolean has_fw_key;
} sua_assoc_info_t;
-static wmem_tree_t* assocs = NULL;
+static wmem_tree_t* assocs;
static sua_assoc_info_t* assoc;
static sua_assoc_info_t no_sua_assoc = {
0, /* assoc_id */
@@ -548,7 +548,7 @@ typedef enum {
} Version_Type;
static gint version = SUA_RFC;
-static gboolean set_addresses = FALSE;
+static bool set_addresses;
static void
dissect_parameters(tvbuff_t *tlv_tvb, packet_info *pinfo, proto_tree *tree, tvbuff_t **data_tvb, guint8 *source_ssn, guint8 *dest_ssn);
diff --git a/epan/dissectors/packet-sv.c b/epan/dissectors/packet-sv.c
index 9500b3642b..e34ecd6e67 100644
--- a/epan/dissectors/packet-sv.c
+++ b/epan/dissectors/packet-sv.c
@@ -119,16 +119,16 @@ static int ett_gmidentity;
static int ett_reserve1;
-static gint ett_sv_SampledValues;
-static gint ett_sv_SavPdu;
-static gint ett_sv_SEQUENCE_OF_ASDU;
-static gint ett_sv_ASDU;
+static int ett_sv_SampledValues;
+static int ett_sv_SavPdu;
+static int ett_sv_SEQUENCE_OF_ASDU;
+static int ett_sv_ASDU;
static expert_field ei_sv_mal_utctime;
static expert_field ei_sv_zero_pdu;
static expert_field ei_sv_mal_gmidentity;
-static gboolean sv_decode_data_as_phsmeas = FALSE;
+static bool sv_decode_data_as_phsmeas;
static dissector_handle_t sv_handle;
diff --git a/epan/dissectors/packet-sysdig-event.c b/epan/dissectors/packet-sysdig-event.c
index be3b76cc75..2eaab80e92 100644
--- a/epan/dissectors/packet-sysdig-event.c
+++ b/epan/dissectors/packet-sysdig-event.c
@@ -300,8 +300,8 @@ static gint ett_sysdig_parm_lens;
static gint ett_sysdig_syscall;
/* Initialize the pointer to the child plugin dissector */
-static dissector_handle_t sinsp_dissector_handle = NULL;
-static dissector_handle_t elf_dissector_handle = NULL;
+static dissector_handle_t sinsp_dissector_handle;
+static dissector_handle_t elf_dissector_handle;
#define SYSDIG_EVENT_MIN_LENGTH 8 /* XXX Fix */
diff --git a/epan/dissectors/packet-syslog.c b/epan/dissectors/packet-syslog.c
index fb36658423..78444bfc4b 100644
--- a/epan/dissectors/packet-syslog.c
+++ b/epan/dissectors/packet-syslog.c
@@ -149,7 +149,7 @@ mtp3_msu_present(tvbuff_t *tvb, packet_info *pinfo, gint fac, gint level, const
g_strfreev(split_string);
- return(mtp3_tvb);
+ return mtp3_tvb;
}
static gboolean dissect_syslog_info(proto_tree* tree, tvbuff_t* tvb, guint* offset, gint hfindex)
diff --git a/epan/dissectors/packet-systemd-journal.c b/epan/dissectors/packet-systemd-journal.c
index 2b784cf569..766988a4fb 100644
--- a/epan/dissectors/packet-systemd-journal.c
+++ b/epan/dissectors/packet-systemd-journal.c
@@ -161,7 +161,7 @@ static expert_field ei_unhandled_field_type;
static expert_field ei_nonbinary_field;
static expert_field ei_undecoded_field;
-static dissector_handle_t sje_handle = NULL;
+static dissector_handle_t sje_handle;
#define MAX_DATA_SIZE 262144 // WTAP_MAX_PACKET_SIZE_STANDARD. Increase if needed.
diff --git a/epan/dissectors/packet-t124.c b/epan/dissectors/packet-t124.c
index 59b0130c5f..e31578503b 100644
--- a/epan/dissectors/packet-t124.c
+++ b/epan/dissectors/packet-t124.c
@@ -40,7 +40,7 @@ void proto_reg_handoff_t124(void);
/* Initialize the protocol and registered fields */
static int proto_t124;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static int hf_t124_object; /* T_object */
static int hf_t124_h221NonStandard; /* H221NonStandardIdentifier */
@@ -276,110 +276,110 @@ static int hf_t124_DomainMCSPDU_PDU;
static guint32 channelId = -1;
-static dissector_table_t t124_ns_dissector_table=NULL;
-static dissector_table_t t124_sd_dissector_table=NULL;
-
-static gint ett_t124_Key;
-static gint ett_t124_NonStandardParameter;
-static gint ett_t124_UserData;
-static gint ett_t124_UserData_item;
-static gint ett_t124_Password;
-static gint ett_t124_PasswordSelector;
-static gint ett_t124_ChallengeResponseItem;
-static gint ett_t124_ChallengeResponseAlgorithm;
-static gint ett_t124_ChallengeItem;
-static gint ett_t124_ChallengeRequest;
-static gint ett_t124_SET_OF_ChallengeItem;
-static gint ett_t124_ChallengeResponse;
-static gint ett_t124_PasswordChallengeRequestResponse;
-static gint ett_t124_T_challengeRequestResponse;
-static gint ett_t124_ConferenceName;
-static gint ett_t124_ConferenceNameSelector;
-static gint ett_t124_ConferencePriorityScheme;
-static gint ett_t124_ConferencePriority;
-static gint ett_t124_NodeCategory;
-static gint ett_t124_ConferenceMode;
-static gint ett_t124_NetworkAddress;
-static gint ett_t124_NetworkAddress_item;
-static gint ett_t124_T_aggregatedChannel;
-static gint ett_t124_T_transferModes;
-static gint ett_t124_T_highLayerCompatibility;
-static gint ett_t124_T_transportConnection;
-static gint ett_t124_AsymmetryIndicator;
-static gint ett_t124_ConferenceDescriptor;
-static gint ett_t124_ConferenceCreateRequest;
-static gint ett_t124_SET_OF_Privilege;
-static gint ett_t124_ConferenceCreateResponse;
-static gint ett_t124_ConferenceQueryRequest;
-static gint ett_t124_ConferenceQueryResponse;
-static gint ett_t124_SET_OF_ConferenceDescriptor;
-static gint ett_t124_ConferenceJoinRequest;
-static gint ett_t124_ConferenceJoinResponse;
-static gint ett_t124_ConferenceInviteRequest;
-static gint ett_t124_ConferenceInviteResponse;
-static gint ett_t124_ConnectData;
-static gint ett_t124_ConnectGCCPDU;
-static gint ett_t124_Segmentation;
-static gint ett_t124_PlumbDomainIndication;
-static gint ett_t124_ErectDomainRequest;
-static gint ett_t124_ChannelAttributes;
-static gint ett_t124_T_static;
-static gint ett_t124_T_userId;
-static gint ett_t124_T_private;
-static gint ett_t124_SET_OF_UserId;
-static gint ett_t124_T_assigned;
-static gint ett_t124_MergeChannelsRequest;
-static gint ett_t124_SET_OF_ChannelAttributes;
-static gint ett_t124_SET_OF_ChannelId;
-static gint ett_t124_MergeChannelsConfirm;
-static gint ett_t124_PurgeChannelsIndication;
-static gint ett_t124_TokenAttributes;
-static gint ett_t124_T_grabbed;
-static gint ett_t124_T_inhibited;
-static gint ett_t124_T_giving;
-static gint ett_t124_T_ungivable;
-static gint ett_t124_T_given;
-static gint ett_t124_MergeTokensRequest;
-static gint ett_t124_SET_OF_TokenAttributes;
-static gint ett_t124_SET_OF_TokenId;
-static gint ett_t124_MergeTokensConfirm;
-static gint ett_t124_PurgeTokensIndication;
-static gint ett_t124_DisconnectProviderUltimatum;
-static gint ett_t124_RejectMCSPDUUltimatum;
-static gint ett_t124_AttachUserRequest;
-static gint ett_t124_AttachUserConfirm;
-static gint ett_t124_DetachUserRequest;
-static gint ett_t124_DetachUserIndication;
-static gint ett_t124_ChannelJoinRequest;
-static gint ett_t124_ChannelJoinConfirm;
-static gint ett_t124_ChannelLeaveRequest;
-static gint ett_t124_ChannelConveneRequest;
-static gint ett_t124_ChannelConveneConfirm;
-static gint ett_t124_ChannelDisbandRequest;
-static gint ett_t124_ChannelDisbandIndication;
-static gint ett_t124_ChannelAdmitRequest;
-static gint ett_t124_ChannelAdmitIndication;
-static gint ett_t124_ChannelExpelRequest;
-static gint ett_t124_ChannelExpelIndication;
-static gint ett_t124_SendDataRequest;
-static gint ett_t124_SendDataIndication;
-static gint ett_t124_UniformSendDataRequest;
-static gint ett_t124_UniformSendDataIndication;
-static gint ett_t124_TokenGrabRequest;
-static gint ett_t124_TokenGrabConfirm;
-static gint ett_t124_TokenInhibitRequest;
-static gint ett_t124_TokenInhibitConfirm;
-static gint ett_t124_TokenGiveRequest;
-static gint ett_t124_TokenGiveIndication;
-static gint ett_t124_TokenGiveResponse;
-static gint ett_t124_TokenGiveConfirm;
-static gint ett_t124_TokenPleaseRequest;
-static gint ett_t124_TokenPleaseIndication;
-static gint ett_t124_TokenReleaseRequest;
-static gint ett_t124_TokenReleaseConfirm;
-static gint ett_t124_TokenTestRequest;
-static gint ett_t124_TokenTestConfirm;
-static gint ett_t124_DomainMCSPDU;
+static dissector_table_t t124_ns_dissector_table;
+static dissector_table_t t124_sd_dissector_table;
+
+static int ett_t124_Key;
+static int ett_t124_NonStandardParameter;
+static int ett_t124_UserData;
+static int ett_t124_UserData_item;
+static int ett_t124_Password;
+static int ett_t124_PasswordSelector;
+static int ett_t124_ChallengeResponseItem;
+static int ett_t124_ChallengeResponseAlgorithm;
+static int ett_t124_ChallengeItem;
+static int ett_t124_ChallengeRequest;
+static int ett_t124_SET_OF_ChallengeItem;
+static int ett_t124_ChallengeResponse;
+static int ett_t124_PasswordChallengeRequestResponse;
+static int ett_t124_T_challengeRequestResponse;
+static int ett_t124_ConferenceName;
+static int ett_t124_ConferenceNameSelector;
+static int ett_t124_ConferencePriorityScheme;
+static int ett_t124_ConferencePriority;
+static int ett_t124_NodeCategory;
+static int ett_t124_ConferenceMode;
+static int ett_t124_NetworkAddress;
+static int ett_t124_NetworkAddress_item;
+static int ett_t124_T_aggregatedChannel;
+static int ett_t124_T_transferModes;
+static int ett_t124_T_highLayerCompatibility;
+static int ett_t124_T_transportConnection;
+static int ett_t124_AsymmetryIndicator;
+static int ett_t124_ConferenceDescriptor;
+static int ett_t124_ConferenceCreateRequest;
+static int ett_t124_SET_OF_Privilege;
+static int ett_t124_ConferenceCreateResponse;
+static int ett_t124_ConferenceQueryRequest;
+static int ett_t124_ConferenceQueryResponse;
+static int ett_t124_SET_OF_ConferenceDescriptor;
+static int ett_t124_ConferenceJoinRequest;
+static int ett_t124_ConferenceJoinResponse;
+static int ett_t124_ConferenceInviteRequest;
+static int ett_t124_ConferenceInviteResponse;
+static int ett_t124_ConnectData;
+static int ett_t124_ConnectGCCPDU;
+static int ett_t124_Segmentation;
+static int ett_t124_PlumbDomainIndication;
+static int ett_t124_ErectDomainRequest;
+static int ett_t124_ChannelAttributes;
+static int ett_t124_T_static;
+static int ett_t124_T_userId;
+static int ett_t124_T_private;
+static int ett_t124_SET_OF_UserId;
+static int ett_t124_T_assigned;
+static int ett_t124_MergeChannelsRequest;
+static int ett_t124_SET_OF_ChannelAttributes;
+static int ett_t124_SET_OF_ChannelId;
+static int ett_t124_MergeChannelsConfirm;
+static int ett_t124_PurgeChannelsIndication;
+static int ett_t124_TokenAttributes;
+static int ett_t124_T_grabbed;
+static int ett_t124_T_inhibited;
+static int ett_t124_T_giving;
+static int ett_t124_T_ungivable;
+static int ett_t124_T_given;
+static int ett_t124_MergeTokensRequest;
+static int ett_t124_SET_OF_TokenAttributes;
+static int ett_t124_SET_OF_TokenId;
+static int ett_t124_MergeTokensConfirm;
+static int ett_t124_PurgeTokensIndication;
+static int ett_t124_DisconnectProviderUltimatum;
+static int ett_t124_RejectMCSPDUUltimatum;
+static int ett_t124_AttachUserRequest;
+static int ett_t124_AttachUserConfirm;
+static int ett_t124_DetachUserRequest;
+static int ett_t124_DetachUserIndication;
+static int ett_t124_ChannelJoinRequest;
+static int ett_t124_ChannelJoinConfirm;
+static int ett_t124_ChannelLeaveRequest;
+static int ett_t124_ChannelConveneRequest;
+static int ett_t124_ChannelConveneConfirm;
+static int ett_t124_ChannelDisbandRequest;
+static int ett_t124_ChannelDisbandIndication;
+static int ett_t124_ChannelAdmitRequest;
+static int ett_t124_ChannelAdmitIndication;
+static int ett_t124_ChannelExpelRequest;
+static int ett_t124_ChannelExpelIndication;
+static int ett_t124_SendDataRequest;
+static int ett_t124_SendDataIndication;
+static int ett_t124_UniformSendDataRequest;
+static int ett_t124_UniformSendDataIndication;
+static int ett_t124_TokenGrabRequest;
+static int ett_t124_TokenGrabConfirm;
+static int ett_t124_TokenInhibitRequest;
+static int ett_t124_TokenInhibitConfirm;
+static int ett_t124_TokenGiveRequest;
+static int ett_t124_TokenGiveIndication;
+static int ett_t124_TokenGiveResponse;
+static int ett_t124_TokenGiveConfirm;
+static int ett_t124_TokenPleaseRequest;
+static int ett_t124_TokenPleaseIndication;
+static int ett_t124_TokenReleaseRequest;
+static int ett_t124_TokenReleaseConfirm;
+static int ett_t124_TokenTestRequest;
+static int ett_t124_TokenTestConfirm;
+static int ett_t124_DomainMCSPDU;
diff --git a/epan/dissectors/packet-t125.c b/epan/dissectors/packet-t125.c
index 5838bcec0f..0e4927e82b 100644
--- a/epan/dissectors/packet-t125.c
+++ b/epan/dissectors/packet-t125.c
@@ -45,7 +45,7 @@ void proto_reg_handoff_t125(void);
/* Initialize the protocol and registered fields */
static int proto_t125;
-static proto_tree *top_tree = NULL;
+static proto_tree *top_tree;
static int hf_t125_ConnectMCSPDU_PDU; /* ConnectMCSPDU */
static int hf_t125_maxChannelIds; /* INTEGER_0_MAX */
static int hf_t125_maxUserIds; /* INTEGER_0_MAX */
@@ -75,12 +75,12 @@ static int hf_t125_connect_result; /* Connect_Result */
/* Initialize the subtree pointers */
static int ett_t125;
-static gint ett_t125_DomainParameters;
-static gint ett_t125_Connect_Initial_U;
-static gint ett_t125_Connect_Response_U;
-static gint ett_t125_Connect_Additional_U;
-static gint ett_t125_Connect_Result_U;
-static gint ett_t125_ConnectMCSPDU;
+static int ett_t125_DomainParameters;
+static int ett_t125_Connect_Initial_U;
+static int ett_t125_Connect_Response_U;
+static int ett_t125_Connect_Additional_U;
+static int ett_t125_Connect_Result_U;
+static int ett_t125_ConnectMCSPDU;
static heur_dissector_list_t t125_heur_subdissector_list;
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index ac9cb0d607..9ad61bf54a 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -58,17 +58,17 @@ void proto_register_t38(void);
static int t38_tap;
/* dissect using the Pre Corrigendum T.38 ASN.1 specification (1998) */
-static gboolean use_pre_corrigendum_asn1_specification = TRUE;
+static bool use_pre_corrigendum_asn1_specification = true;
/* dissect packets that looks like RTP version 2 packets as RTP */
/* instead of as T.38. This may result in that some T.38 UPTL */
/* packets with sequence number values higher than 32767 may be */
/* shown as RTP packets. */
-static gboolean dissect_possible_rtpv2_packets_as_rtp = FALSE;
+static bool dissect_possible_rtpv2_packets_as_rtp;
/* Reassembly of T.38 PDUs over TPKT over TCP */
-static gboolean t38_tpkt_reassembly = TRUE;
+static bool t38_tpkt_reassembly = true;
/* Preference setting whether TPKT header is used when sending T.38 over TCP.
* The default setting is Maybe where the dissector will look on the first
@@ -143,15 +143,15 @@ static int hf_t38_reassembled_in;
static int hf_t38_reassembled_length;
static gint ett_t38;
-static gint ett_t38_IFPPacket;
-static gint ett_t38_Type_of_msg;
-static gint ett_t38_Data_Field;
-static gint ett_t38_Data_Field_item;
-static gint ett_t38_UDPTLPacket;
-static gint ett_t38_T_error_recovery;
-static gint ett_t38_T_secondary_ifp_packets;
-static gint ett_t38_T_fec_info;
-static gint ett_t38_T_fec_data;
+static int ett_t38_IFPPacket;
+static int ett_t38_Type_of_msg;
+static int ett_t38_Data_Field;
+static int ett_t38_Data_Field_item;
+static int ett_t38_UDPTLPacket;
+static int ett_t38_T_error_recovery;
+static int ett_t38_T_secondary_ifp_packets;
+static int ett_t38_T_fec_info;
+static int ett_t38_T_fec_data;
static gint ett_t38_setup;
static gint ett_data_fragment;
@@ -160,7 +160,7 @@ static gint ett_data_fragments;
static expert_field ei_t38_malformed;
static gboolean primary_part = TRUE;
-static guint32 seq_number = 0;
+static guint32 seq_number;
/* Tables for reassembly of Data fragments. */
static reassembly_table data_reassembly_table;
@@ -194,11 +194,11 @@ typedef struct _fragment_key {
guint32 id;
} fragment_key;
-static conversation_t *p_conv= NULL;
-static t38_conv *p_t38_conv = NULL;
-static t38_conv *p_t38_packet_conv = NULL;
-static t38_conv_info *p_t38_conv_info = NULL;
-static t38_conv_info *p_t38_packet_conv_info = NULL;
+static conversation_t *p_conv;
+static t38_conv *p_t38_conv;
+static t38_conv *p_t38_packet_conv;
+static t38_conv_info *p_t38_conv_info;
+static t38_conv_info *p_t38_packet_conv_info;
/* RTP Version is the first 2 bits of the first octet in the UDP payload*/
#define RTP_VERSION(octet) ((octet) >> 6)
@@ -207,14 +207,14 @@ void proto_reg_handoff_t38(void);
static void show_setup_info(tvbuff_t *tvb, proto_tree *tree, t38_conv *p_t38_conv);
/* Preferences bool to control whether or not setup info should be shown */
-static gboolean global_t38_show_setup_info = TRUE;
+static bool global_t38_show_setup_info = true;
/* Can tap up to 4 T38 packets within same packet */
/* We only tap the primary part, not the redundancy */
#define MAX_T38_MESSAGES_IN_PACKET 4
static t38_packet_info t38_info_arr[MAX_T38_MESSAGES_IN_PACKET];
static int t38_info_current=0;
-static t38_packet_info *t38_info=NULL;
+static t38_packet_info *t38_info;
/* Set up an T38 conversation */
diff --git a/epan/dissectors/packet-tacacs.c b/epan/dissectors/packet-tacacs.c
index bfccb1be1b..a6e6cc0005 100644
--- a/epan/dissectors/packet-tacacs.c
+++ b/epan/dissectors/packet-tacacs.c
@@ -62,10 +62,10 @@ static int hf_tacacs_password;
static gint ett_tacacs;
-static gboolean tacplus_preference_desegment = TRUE;
+static bool tacplus_preference_desegment = true;
static const char *tacplus_opt_key;
-static GSList *tacplus_keys = NULL;
+static GSList *tacplus_keys;
#define ADDR_INVLD "invalid"
diff --git a/epan/dissectors/packet-tali.c b/epan/dissectors/packet-tali.c
index 3eb76c66ba..f44d9f39c1 100644
--- a/epan/dissectors/packet-tali.c
+++ b/epan/dissectors/packet-tali.c
@@ -58,7 +58,7 @@ static gint ett_tali_msu_length;
static dissector_table_t tali_dissector_table;
/* Desegment TALI messages */
-static gboolean tali_desegment = TRUE;
+static bool tali_desegment = true;
/* Code to actually dissect the packets */
static guint
diff --git a/epan/dissectors/packet-tcap.c b/epan/dissectors/packet-tcap.c
index 4fae9ca1dd..f7d413be65 100644
--- a/epan/dissectors/packet-tcap.c
+++ b/epan/dissectors/packet-tcap.c
@@ -128,45 +128,45 @@ gint ett_tcap_stat;
static struct tcapsrt_info_t * gp_tcapsrt_info;
static gboolean tcap_subdissector_used=FALSE;
-static dissector_handle_t requested_subdissector_handle = NULL;
+static dissector_handle_t requested_subdissector_handle;
static int ss7pc_address_type = -1;
-static struct tcaphash_context_t * gp_tcap_context=NULL;
-
-static gint ett_tcap_ExternalPDU_U;
-static gint ett_tcap_TCMessage;
-static gint ett_tcap_Unidirectional;
-static gint ett_tcap_Begin;
-static gint ett_tcap_End;
-static gint ett_tcap_Continue;
-static gint ett_tcap_Abort;
-static gint ett_tcap_Reason;
-static gint ett_tcap_SEQUENCE_SIZE_1_MAX_OF_Component;
-static gint ett_tcap_Component;
-static gint ett_tcap_Invoke;
-static gint ett_tcap_ReturnResult;
-static gint ett_tcap_T_resultretres;
-static gint ett_tcap_ReturnError;
-static gint ett_tcap_Reject;
-static gint ett_tcap_T_invokeIDRej;
-static gint ett_tcap_T_problem;
-static gint ett_tcap_OPERATION;
-static gint ett_tcap_ErrorCode;
-static gint ett_tcap_UniDialoguePDU;
-static gint ett_tcap_AUDT_apdu_U;
-static gint ett_tcap_AUDT_protocol_version;
-static gint ett_tcap_AUDT_user_information;
-static gint ett_tcap_DialoguePDU;
-static gint ett_tcap_AARQ_apdu_U;
-static gint ett_tcap_AARQ_protocol_version;
-static gint ett_tcap_AARQ_user_information;
-static gint ett_tcap_AARE_apdu_U;
-static gint ett_tcap_AARE_protocol_version;
-static gint ett_tcap_AARE_user_information;
-static gint ett_tcap_ABRT_apdu_U;
-static gint ett_tcap_ABRT_user_information;
-static gint ett_tcap_Associate_source_diagnostic;
+static struct tcaphash_context_t * gp_tcap_context;
+
+static int ett_tcap_ExternalPDU_U;
+static int ett_tcap_TCMessage;
+static int ett_tcap_Unidirectional;
+static int ett_tcap_Begin;
+static int ett_tcap_End;
+static int ett_tcap_Continue;
+static int ett_tcap_Abort;
+static int ett_tcap_Reason;
+static int ett_tcap_SEQUENCE_SIZE_1_MAX_OF_Component;
+static int ett_tcap_Component;
+static int ett_tcap_Invoke;
+static int ett_tcap_ReturnResult;
+static int ett_tcap_T_resultretres;
+static int ett_tcap_ReturnError;
+static int ett_tcap_Reject;
+static int ett_tcap_T_invokeIDRej;
+static int ett_tcap_T_problem;
+static int ett_tcap_OPERATION;
+static int ett_tcap_ErrorCode;
+static int ett_tcap_UniDialoguePDU;
+static int ett_tcap_AUDT_apdu_U;
+static int ett_tcap_AUDT_protocol_version;
+static int ett_tcap_AUDT_user_information;
+static int ett_tcap_DialoguePDU;
+static int ett_tcap_AARQ_apdu_U;
+static int ett_tcap_AARQ_protocol_version;
+static int ett_tcap_AARQ_user_information;
+static int ett_tcap_AARE_apdu_U;
+static int ett_tcap_AARE_protocol_version;
+static int ett_tcap_AARE_user_information;
+static int ett_tcap_ABRT_apdu_U;
+static int ett_tcap_ABRT_user_information;
+static int ett_tcap_Associate_source_diagnostic;
/* When several Tcap components are received in a single TCAP message,
we have to use several buffers for the stored parameters
@@ -183,25 +183,25 @@ static range_t *ssn_range;
or when the same TCAP transcation identifier is reused */
static guint gtcap_RepetitionTimeout = 10;
static guint gtcap_LostTimeout = 30;
-gboolean gtcap_PersistentSRT=FALSE;
+static bool gtcap_PersistentSRT=false;
gboolean gtcap_DisplaySRT=FALSE;
gboolean gtcap_StatSRT=FALSE;
/* Global hash tables*/
-static wmem_map_t *tcaphash_context = NULL;
-static wmem_map_t *tcaphash_begin = NULL;
-static wmem_map_t *tcaphash_cont = NULL;
-static wmem_map_t *tcaphash_end = NULL;
-static wmem_map_t *tcaphash_ansi = NULL;
+static wmem_map_t *tcaphash_context;
+static wmem_map_t *tcaphash_begin;
+static wmem_map_t *tcaphash_cont;
+static wmem_map_t *tcaphash_end;
+static wmem_map_t *tcaphash_ansi;
static guint32 tcapsrt_global_SessionId=1;
-static dissector_handle_t tcap_handle = NULL;
+static dissector_handle_t tcap_handle;
static dissector_table_t ber_oid_dissector_table;
static const char * cur_oid;
static const char * tcapext_oid;
-static proto_tree * tcap_top_tree=NULL;
-static proto_tree * tcap_stat_tree=NULL;
+static proto_tree * tcap_top_tree;
+static proto_tree * tcap_stat_tree;
static dissector_handle_t data_handle;
static dissector_handle_t ansi_tcap_handle;
@@ -209,8 +209,8 @@ static dissector_handle_t ansi_tcap_handle;
static int dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset);
static bool dissect_tcap_ITU_ComponentPDU(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_);
-static dissector_table_t ansi_sub_dissectors = NULL;
-static dissector_table_t itu_sub_dissectors = NULL;
+static dissector_table_t ansi_sub_dissectors;
+static dissector_table_t itu_sub_dissectors;
extern void add_ansi_tcap_subdissector(guint32 ssn, dissector_handle_t dissector) {
dissector_add_uint("ansi_tcap.ssn",ssn,dissector);
@@ -3142,7 +3142,7 @@ dissect_tcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* d
}
}
if (p_tcap_context && p_tcap_context->callback) {
- /* Callback fonction for the upper layer */
+ /* Callback function for the upper layer */
(p_tcap_context->callback)(tvb, pinfo, tcap_stat_tree, p_tcap_context);
}
}
diff --git a/epan/dissectors/packet-tcg-cp-oids.c b/epan/dissectors/packet-tcg-cp-oids.c
index 8b46ac6f4d..5c3d0f26a5 100644
--- a/epan/dissectors/packet-tcg-cp-oids.c
+++ b/epan/dissectors/packet-tcg-cp-oids.c
@@ -90,20 +90,20 @@ static int hf_tcg_cp_oids_backupServiceURI; /* IA5String */
static int hf_tcg_cp_oids_UTF8String_PDU;
/* Initialize the subtree pointers */
-static gint ett_tcg_cp_oids_TPMSpecification;
-static gint ett_tcg_cp_oids_TCGSpecificationVersion;
-static gint ett_tcg_cp_oids_TCGPlatformSpecification;
-static gint ett_tcg_cp_oids_TCPASpecVersion;
-static gint ett_tcg_cp_oids_TPMSecurityAssertions;
-static gint ett_tcg_cp_oids_TBBSecurityAssertions;
-static gint ett_tcg_cp_oids_CommonCriteriaMeasures;
-static gint ett_tcg_cp_oids_URIReference;
-static gint ett_tcg_cp_oids_FIPSLevel;
-static gint ett_tcg_cp_oids_HashAlgAndValue;
-static gint ett_tcg_cp_oids_HashedSubjectInfoURI;
-static gint ett_tcg_cp_oids_TCGRelevantCredentials;
-static gint ett_tcg_cp_oids_TCGRelevantManifests;
-static gint ett_tcg_cp_oids_VirtualPlatformBackupServiceURI;
+static int ett_tcg_cp_oids_TPMSpecification;
+static int ett_tcg_cp_oids_TCGSpecificationVersion;
+static int ett_tcg_cp_oids_TCGPlatformSpecification;
+static int ett_tcg_cp_oids_TCPASpecVersion;
+static int ett_tcg_cp_oids_TPMSecurityAssertions;
+static int ett_tcg_cp_oids_TBBSecurityAssertions;
+static int ett_tcg_cp_oids_CommonCriteriaMeasures;
+static int ett_tcg_cp_oids_URIReference;
+static int ett_tcg_cp_oids_FIPSLevel;
+static int ett_tcg_cp_oids_HashAlgAndValue;
+static int ett_tcg_cp_oids_HashedSubjectInfoURI;
+static int ett_tcg_cp_oids_TCGRelevantCredentials;
+static int ett_tcg_cp_oids_TCGRelevantManifests;
+static int ett_tcg_cp_oids_VirtualPlatformBackupServiceURI;
static int
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c
index 85cdf79da6..5c4b0c4be2 100644
--- a/epan/dissectors/packet-tcp.c
+++ b/epan/dissectors/packet-tcp.c
@@ -49,7 +49,7 @@ static int mptcp_tap;
static int exported_pdu_tap;
/* Place TCP summary in proto tree */
-static gboolean tcp_summary_in_tree = TRUE;
+static bool tcp_summary_in_tree = true;
static inline guint64 KEEP_32MSB_OF_GUINT64(guint64 nb) {
return (nb >> 32) << 32;
@@ -72,7 +72,7 @@ static inline guint64 KEEP_32MSB_OF_GUINT64(guint64 nb) {
* packet to the capture program but a checksummed packet got put onto
* the wire.
*/
-static gboolean tcp_check_checksum = FALSE;
+static bool tcp_check_checksum;
/*
* Window scaling values to be used when not known (set as a preference) */
@@ -498,11 +498,11 @@ static expert_field ei_mptcp_mapping_missing;
* This preference can be set for such protocols to make sure that we don't
* invoke the subdissectors for retransmitted or out-of-order segments.
*/
-static gboolean tcp_no_subdissector_on_error = TRUE;
+static bool tcp_no_subdissector_on_error = true;
/* Enable buffering of out-of-order TCP segments before passing it to a
* subdissector (depends on "tcp_desegment"). */
-static gboolean tcp_reassemble_out_of_order = FALSE;
+static bool tcp_reassemble_out_of_order;
/*
* FF: https://www.rfc-editor.org/rfc/rfc6994.html
@@ -512,7 +512,7 @@ static gboolean tcp_reassemble_out_of_order = FALSE;
* The ExID is used to differentiate different experiments and thus will
* be used in data dissection.
*/
-static gboolean tcp_exp_options_rfc6994 = TRUE;
+static bool tcp_exp_options_rfc6994 = true;
/*
* This flag indicates which of Fast Retransmission or Out-of-Order
@@ -521,13 +521,13 @@ static gboolean tcp_exp_options_rfc6994 = TRUE;
* behavior.
* When set, we keep the historical interpretation (Fast RT > OOO)
*/
-static gboolean tcp_fastrt_precedence = TRUE;
+static bool tcp_fastrt_precedence = true;
/* Process info, currently discovered via IPFIX */
-static gboolean tcp_display_process_info = FALSE;
+static bool tcp_display_process_info;
/* Read the sequence number as syn cookie */
-static gboolean read_seq_as_syn_cookie = FALSE;
+static bool read_seq_as_syn_cookie;
/*
* TCP option
@@ -749,7 +749,7 @@ static guint32 mptcp_stream_count;
* Maps an MPTCP token to a mptcp_analysis structure
* Collisions are not handled
*/
-static wmem_tree_t *mptcp_tokens = NULL;
+static wmem_tree_t *mptcp_tokens;
static int * const tcp_option_mptcp_capable_v0_flags[] = {
&hf_tcp_option_mptcp_checksum_flag,
@@ -856,8 +856,8 @@ tcp_flags_to_str_first_letter(wmem_allocator_t *scope, const struct tcpheader *t
wmem_strbuf_t *buf = wmem_strbuf_new(scope, "");
unsigned i;
const unsigned flags_count = 12;
- const char first_letters[] = "RRRACEUAPRSF";
- const char digits[] = "01234567";
+ static const char first_letters[] = "RRRACEUAPRSF";
+ static const char digits[] = "01234567";
/* upper three bytes are marked as reserved ('R'). */
for (i = 0; i < flags_count; i++) {
@@ -998,6 +998,19 @@ static const char* tcp_conv_get_filter_type(conv_item_t* conv, conv_filter_type_
static ct_dissector_info_t tcp_ct_dissector_info = {&tcp_conv_get_filter_type};
+/*
+ * callback function for conversation stats
+ */
+static int tcp_conv_cb_update(conversation_t *conv)
+{
+ struct tcp_analysis *tcpd;
+ tcpd=get_tcp_conversation_data_idempotent(conv);
+ if(tcpd)
+ return tcpd->flow1.flow_count + tcpd->flow2.flow_count;
+ else
+ return 0;
+}
+
static tap_packet_status
tcpip_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags)
{
@@ -1006,8 +1019,9 @@ tcpip_conversation_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_
const struct tcpheader *tcphdr=(const struct tcpheader *)vip;
- add_conversation_table_data_with_conv_id(hash, &tcphdr->ip_src, &tcphdr->ip_dst, tcphdr->th_sport, tcphdr->th_dport, (conv_id_t) tcphdr->th_stream, 1, pinfo->fd->pkt_len,
- &pinfo->rel_ts, &pinfo->abs_ts, &tcp_ct_dissector_info, CONVERSATION_TCP);
+ add_conversation_table_data_extended(hash, &tcphdr->ip_src, &tcphdr->ip_dst, tcphdr->th_sport, tcphdr->th_dport, (conv_id_t) tcphdr->th_stream, 1, pinfo->fd->pkt_len,
+ &pinfo->rel_ts, &pinfo->abs_ts, &tcp_ct_dissector_info, CONVERSATION_TCP, (guint32)pinfo->num, tcp_conv_cb_update);
+
return TAP_PACKET_REDRAW;
}
@@ -1086,34 +1100,19 @@ tcpip_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, co
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
tcp_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "tcp");
}
static gchar*
-tcp_build_filter(packet_info *pinfo, void *user_data _U_)
+tcp_build_filter_by_id(packet_info *pinfo, void *user_data _U_)
{
- if( pinfo->net_src.type == AT_IPv4 && pinfo->net_dst.type == AT_IPv4 ) {
- /* TCP over IPv4 */
- return ws_strdup_printf("(ip.addr eq %s and ip.addr eq %s) and (tcp.port eq %d and tcp.port eq %d)",
- address_to_str(pinfo->pool, &pinfo->net_src),
- address_to_str(pinfo->pool, &pinfo->net_dst),
- pinfo->srcport, pinfo->destport );
- }
-
- if( pinfo->net_src.type == AT_IPv6 && pinfo->net_dst.type == AT_IPv6 ) {
- /* TCP over IPv6 */
- return ws_strdup_printf("(ipv6.addr eq %s and ipv6.addr eq %s) and (tcp.port eq %d and tcp.port eq %d)",
- address_to_str(pinfo->pool, &pinfo->net_src),
- address_to_str(pinfo->pool, &pinfo->net_dst),
- pinfo->srcport, pinfo->destport );
- }
-
- return NULL;
+ return ws_strdup_printf("tcp.stream eq %d", pinfo->stream_id);
}
+
/****************************************************************************/
/* whenever a TCP packet is seen by the tap listener */
/* Add a new tcp frame into the graph */
@@ -1170,10 +1169,11 @@ gchar *tcp_follow_conv_filter(epan_dissect_t *edt _U_, packet_info *pinfo, guint
* Eventually the endpoint API should support storing multiple
* endpoints and TCP should be changed to use the endpoint API.
*/
+ conv = find_conversation_strat(pinfo, CONVERSATION_TCP, 0);
if (((pinfo->net_src.type == AT_IPv4 && pinfo->net_dst.type == AT_IPv4) ||
(pinfo->net_src.type == AT_IPv6 && pinfo->net_dst.type == AT_IPv6))
&& (pinfo->ptype == PT_TCP) &&
- (conv=find_conversation(pinfo->num, &pinfo->net_src, &pinfo->net_dst, CONVERSATION_TCP, pinfo->srcport, pinfo->destport, 0)) != NULL)
+ conv != NULL)
{
/* TCP over IPv4/6 */
tcpd=get_tcp_conversation_data(conv, pinfo);
@@ -1667,16 +1667,16 @@ static void conversation_completeness_fill(gchar *buf, guint32 value)
/* **************************************************************************
* RTT, relative sequence numbers, window scaling & etc.
* **************************************************************************/
-static gboolean tcp_analyze_seq = TRUE;
-static gboolean tcp_relative_seq = TRUE;
-static gboolean tcp_track_bytes_in_flight = TRUE;
-static gboolean tcp_bif_seq_based = FALSE;
-static gboolean tcp_calculate_ts = TRUE;
+static bool tcp_analyze_seq = true;
+static bool tcp_relative_seq = true;
+static bool tcp_track_bytes_in_flight = true;
+static bool tcp_bif_seq_based;
+static bool tcp_calculate_ts = true;
-static gboolean tcp_analyze_mptcp = TRUE;
-static gboolean mptcp_relative_seq = TRUE;
-static gboolean mptcp_analyze_mappings = FALSE;
-static gboolean mptcp_intersubflows_retransmission = FALSE;
+static bool tcp_analyze_mptcp = true;
+static bool mptcp_relative_seq = true;
+static bool mptcp_analyze_mappings;
+static bool mptcp_intersubflows_retransmission;
#define TCP_A_RETRANSMISSION 0x0001
@@ -1816,6 +1816,9 @@ init_tcp_conversation_data(packet_info *pinfo, int direction)
tcpd->flow2.closing_initiator = FALSE;
tcpd->stream = tcp_stream_count++;
tcpd->server_port = 0;
+ tcpd->flow_direction = 0;
+ tcpd->flow1.flow_count = 0;
+ tcpd->flow2.flow_count = 0;
return tcpd;
}
@@ -1845,6 +1848,16 @@ mptcp_attach_subflow(struct mptcp_analysis* mptcpd, struct tcp_analysis* tcpd) {
tcpd->mptcp_analysis = mptcpd;
}
+struct tcp_analysis *
+get_tcp_conversation_data_idempotent(conversation_t *conv)
+{
+ struct tcp_analysis *tcpd;
+
+ /* Get the data for this conversation */
+ tcpd=(struct tcp_analysis *)conversation_get_proto_data(conv, proto_tcp);
+
+ return tcpd;
+}
struct tcp_analysis *
get_tcp_conversation_data(conversation_t *conv, packet_info *pinfo)
@@ -2456,7 +2469,6 @@ finished_fwd:
/* We ensure there is no matching packet waiting in the unacked list,
* and take this opportunity to push the tail further than this single packet
*/
- ual = tcpd->rev->tcp_analyze_seq_info->segments;
guint32 tail_le = 0, tail_re = 0;
for(ual=tcpd->rev->tcp_analyze_seq_info->segments; ual; ual=ual->next) {
@@ -2778,6 +2790,41 @@ finished_checking_retransmission_type:
tcpd->fwd->tcp_analyze_seq_info->nextseqframe=pinfo->num;
tcpd->fwd->tcp_analyze_seq_info->nextseqtime.secs=pinfo->abs_ts.secs;
tcpd->fwd->tcp_analyze_seq_info->nextseqtime.nsecs=pinfo->abs_ts.nsecs;
+
+ /* Count the flows turns by checking all packets carrying real data
+ * Packets not ordered are ignored.
+ */
+ if((!tcpd->ta ) ||
+ !(tcpd->ta->flags & TCP_A_RETRANSMISSION ||
+ tcpd->ta->flags & TCP_A_OUT_OF_ORDER ||
+ tcpd->ta->flags & TCP_A_FAST_RETRANSMISSION ||
+ tcpd->ta->flags & TCP_A_SPURIOUS_RETRANSMISSION)) {
+
+ if( seglen>0) {
+ /* check direction */
+ gint8 direction;
+ direction=cmp_address(&pinfo->src, &pinfo->dst);
+
+ /* if the addresses are equal, match the ports instead */
+ if(direction==0) {
+ direction= (pinfo->srcport > pinfo->destport) ? 1 : -1;
+ }
+
+ /* invert the direction and increment the counter */
+ if(direction != tcpd->flow_direction) {
+ tcpd->flow_direction = direction;
+ tcpd->fwd->flow_count++;
+ }
+ /* if the direction was not reversed, maybe are we
+ * facing the first flow ? Yes, if the counter still equals 0.
+ */
+ else {
+ if(tcpd->fwd->flow_count==0) {
+ tcpd->fwd->flow_count++;
+ }
+ }
+ }
+ }
}
}
@@ -3849,7 +3896,7 @@ static reassembly_table tcp_reassembly_table;
/* functions to trace tcp segments */
/* Enable desegmenting of TCP streams */
-static gboolean tcp_desegment = TRUE;
+static bool tcp_desegment = true;
/* Returns the maximum contiguous sequence number of the reassembly associated
* with the msp *if* a new fragment were added ending in the given maxnextseq.
@@ -5590,7 +5637,8 @@ dissect_tcpopt_wscale(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
int offset = 0;
struct tcp_analysis *tcpd;
- tcpd=get_tcp_conversation_data(NULL,pinfo);
+ conversation_t *stratconv = find_conversation_strat(pinfo, CONVERSATION_TCP, 0);
+ tcpd=get_tcp_conversation_data(stratconv,pinfo);
wscale_pi = proto_tree_add_item(tree, proto_tcp_option_wscale, tvb, offset, -1, ENC_NA);
wscale_tree = proto_item_add_subtree(wscale_pi, ett_tcp_option_wscale);
@@ -5811,7 +5859,7 @@ dissect_tcpopt_echo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
}
/* If set, do not put the TCP timestamp information on the summary line */
-static gboolean tcp_ignore_timestamps = FALSE;
+static bool tcp_ignore_timestamps;
static int
dissect_tcpopt_timestamp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
@@ -7418,7 +7466,7 @@ tcp_dissect_options(tvbuff_t *tvb, int offset, guint length,
This has been separated into a stand alone routine to other protocol
dissectors can call to it, e.g., SOCKS. */
-static gboolean try_heuristic_first = FALSE;
+static bool try_heuristic_first;
/* this function can be called with tcpd==NULL as from the msproxy dissector */
@@ -7719,7 +7767,7 @@ dissect_tcp_payload(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 seq,
}
}
-static gboolean
+static bool
capture_tcp(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header)
{
guint16 src_port, dst_port, low_port, high_port;
@@ -7752,6 +7800,20 @@ capture_tcp(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo
return TRUE;
}
+typedef struct _tcp_tap_cleanup_t {
+
+ packet_info *pinfo;
+ struct tcpheader *tcph;
+
+} tcp_tap_cleanup_t;
+
+static void tcp_tap_cleanup(void *data)
+{
+ tcp_tap_cleanup_t *cleanup = (tcp_tap_cleanup_t *)data;
+
+ tap_queue_packet(tcp_tap, cleanup->pinfo, cleanup->tcph);
+}
+
static int
dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
@@ -7860,14 +7922,13 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
* reusing ports (see issue 15097), as find_or_create_conversation automatically
* extends the conversation found. This extension is done later.
*/
- conv = find_conversation(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_TCP, pinfo->srcport, pinfo->destport, 0);
+
+ conv = find_conversation_strat(pinfo, CONVERSATION_TCP, 0);
if(!conv) {
- conv = conversation_new(pinfo->num, &pinfo->src,
- &pinfo->dst, CONVERSATION_TCP,
- pinfo->srcport, pinfo->destport, 0);
- /* we need to know when a conversation is new then we initialize the completeness correctly */
+ conv=conversation_new_strat(pinfo, CONVERSATION_TCP, 0);
conversation_is_new = TRUE;
}
+
tcpd=get_tcp_conversation_data(conv,pinfo);
/* If this is a SYN packet, then check if its seq-nr is different
@@ -7883,11 +7944,12 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
* retransmission, reattempting a handshake that was reset (due
* to a half-open connection) with the same sequence number, or
* (unlikely) a new connection that happens to use the same sequence
- * number as the previous one.
+ * number as the previous one (#18333).
*
* If we have received a RST or FIN on the retrieved conversation,
- * create a new conversation in order to clear out the follow info,
- * sequence analysis, desegmentation, etc.
+ * we can detect that unlikely case, and create a new conversation
+ * in order to clear out the follow info, sequence analysis,
+ * desegmentation, etc.
* If not, it's probably a retransmission, and will be marked
* as one later, but restore some flow values to reduce the
* sequence analysis warnings if our capture file is missing a RST
@@ -7900,7 +7962,7 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
if(tcph->th_seq!=tcpd->fwd->base_seq || (tcpd->conversation_completeness & TCP_COMPLETENESS_RST) || (tcpd->conversation_completeness & TCP_COMPLETENESS_FIN)) {
if (!(pinfo->fd->visited)) {
- conv=conversation_new(pinfo->num, &pinfo->src, &pinfo->dst, CONVERSATION_TCP, pinfo->srcport, pinfo->destport, 0);
+ conv=conversation_new_strat(pinfo, CONVERSATION_TCP, 0);
tcpd=get_tcp_conversation_data(conv,pinfo);
if(!tcpd->ta)
@@ -7940,30 +8002,54 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
tcpd->had_acc_ecn_setup_syn = (tcph->th_flags & (TH_AE|TH_CWR|TH_ECE)) == (TH_AE|TH_CWR|TH_ECE);
}
- /* If this is a SYN/ACK packet, then check if its seq-nr is different
+ /* Handle cases of a SYN/ACK packet where there's evidence of a new
+ * conversation but the capture is missing the SYN packet of the
+ * new conversation.
+ *
+ * If this is a SYN/ACK packet, then check if its seq-nr is different
* from the base_seq of the retrieved conversation. If this is the
- * case, set the TA_PORTS_REUSED flag and override the base seq.
- * (XXX: Should this create a new conversation, as above with a
- * SYN packet? We might have received the new connection's SYN/ACK before
- * the SYN packet, or the SYN might be missing from the capture file.)
+ * case, create a new conversation as above with a SYN packet, and set
+ * the TA_PORTS_REUSED flag and override the base seq.
* If the seq-nr is the same as the base_seq, then do nothing so it
- * will be marked as a retransmission later.
+ * will be marked as a retransmission later, unless we have received
+ * a RST or FIN on the conversation (in which case this is the case
+ * of a RST followed by the same initial sequence number being picked.)
+ *
+ * If this is an unacceptable SYN-ACK and the other side believes that
+ * the conversation is ESTABLISHED, it will be replied to with an
+ * empty ACK with the current sequence number (according to the other
+ * side.) See RFC 9293 3.5.2. This *probably* leads to a situation where
+ * the side sending this SYN-ACK then issues a RST, because the two
+ * sides have different ideas about the connection state. It's not clear
+ * how to handle the annoying edge case where A sends a SYN, B responds
+ * with a SYN-ACK that A intends to accept, but before A can finish
+ * the handshake B responds with another SYN-ACK _with a different seq-nr_
+ * instead of retransmitting, then A responds accepting the first SYN-ACK,
+ * and then B goes on happily using the sequence number from the first
+ * SYN-ACK, forgetting all about the second one it sent instead of sending
+ * a RST. In such a case we'll have changed the seq-nr to the new one
+ * and/or set up a new conversation instead of just ignoring that SYN-ACK.
+ *
* XXX - Is this affected by MPTCP which can use multiple SYNs?
*/
if (tcpd != NULL && (tcph->th_flags & (TH_SYN|TH_ACK)) == (TH_SYN|TH_ACK)) {
if ((tcpd->fwd->static_flags & TCP_S_BASE_SEQ_SET) &&
- (tcph->th_seq != tcpd->fwd->base_seq)) {
-
+ (tcph->th_seq != tcpd->fwd->base_seq ||
+ (tcpd->conversation_completeness & TCP_COMPLETENESS_RST) ||
+ (tcpd->conversation_completeness & TCP_COMPLETENESS_FIN))) {
/* the retrieved conversation might have a different base_seq (issue 16944) */
- /* XXX: Shouldn't this create a new conversation? Changing the
- * base_seq will change how the previous packets in the conversation
- * are processed in the second pass.
- */
- tcpd->fwd->base_seq = tcph->th_seq;
- if(!tcpd->ta)
- tcp_analyze_get_acked_struct(pinfo->num, tcph->th_seq, tcph->th_ack, TRUE, tcpd);
- tcpd->ta->flags|=TCP_A_REUSED_PORTS;
+ if (!PINFO_FD_VISITED(pinfo)) {
+ conv=conversation_new_strat(pinfo, CONVERSATION_TCP, 0);
+ tcpd=get_tcp_conversation_data(conv,pinfo);
+
+ if(!tcpd->ta)
+ tcp_analyze_get_acked_struct(pinfo->num, tcph->th_seq, tcph->th_ack, TRUE, tcpd);
+ tcpd->ta->flags|=TCP_A_REUSED_PORTS;
+
+ /* As above, a new conversation */
+ conversation_is_new = TRUE;
+ }
}
tcpd->had_acc_ecn_setup_syn_ack = ((tcph->th_flags & (TH_AE|TH_CWR)) == TH_CWR) ||
((tcph->th_flags & (TH_AE|TH_ECE)) == TH_AE);
@@ -8015,6 +8101,11 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
*/
tcph->th_stream = tcpd->stream;
+ /* Copy the stream index into pinfo as well to make it available
+ * to callback functions (essentially conversation following events in GUI)
+ */
+ pinfo->stream_id = tcpd->stream;
+
/* initialize the SACK blocks seen to 0 */
if(tcp_analyze_seq && tcpd->fwd->tcp_analyze_seq_info) {
tcpd->fwd->tcp_analyze_seq_info->num_sack_ranges = 0;
@@ -8027,6 +8118,58 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
tcppd->tcp_snd_manual_analysis = pinfo->fd->tcp_snd_manual_analysis;
}
+ /* We have have the absolute sequence numbers (we would have thrown an
+ * exception if not) and tcpd, so set relative sequence numbers now. */
+
+ /* XXX - Why not in an error packet? */
+ if (tcpd != NULL && !pinfo->flags.in_error_pkt) {
+ /* initialize base_seq numbers if needed */
+ if (!(pinfo->fd->visited)) {
+ /* if this is the first segment for this list we need to store the
+ * base_seq
+ * We use TCP_S_SAW_SYN/SYNACK to distinguish between client and server
+ *
+ * Start relative seq and ack numbers at 1 if this
+ * is not a SYN packet. This makes the relative
+ * seq/ack numbers to be displayed correctly in the
+ * event that the SYN or SYN/ACK packet is not seen
+ * (this solves bug 1542)
+ */
+ if( !(tcpd->fwd->static_flags & TCP_S_BASE_SEQ_SET)) {
+ if(tcph->th_flags & TH_SYN) {
+ tcpd->fwd->base_seq = tcph->th_seq;
+ tcpd->fwd->static_flags |= (tcph->th_flags & TH_ACK) ? TCP_S_SAW_SYNACK : TCP_S_SAW_SYN;
+ }
+ else {
+ tcpd->fwd->base_seq = tcph->th_seq-1;
+ }
+ tcpd->fwd->static_flags |= TCP_S_BASE_SEQ_SET;
+ }
+
+ /* Only store reverse sequence if this isn't the SYN
+ * There's no guarantee that the ACK field of a SYN
+ * contains zeros; get the ISN from the first segment
+ * with the ACK bit set instead (usually the SYN/ACK).
+ *
+ * If the SYN and SYN/ACK were received out-of-order,
+ * the ISN is ack-1. If we missed the SYN/ACK, but got
+ * the last ACK of the 3WHS, the ISN is ack-1. For all
+ * other packets the ISN is unknown, so ack-1 is
+ * as good a guess as ack.
+ */
+ if( !(tcpd->rev->static_flags & TCP_S_BASE_SEQ_SET) && (tcph->th_flags & TH_ACK) ) {
+ tcpd->rev->base_seq = tcph->th_ack-1;
+ tcpd->rev->static_flags |= TCP_S_BASE_SEQ_SET;
+ }
+ }
+ if (tcp_analyze_seq && tcp_relative_seq) {
+ tcph->th_seq -= tcpd->fwd->base_seq;
+ if (tcph->th_flags & TH_ACK) {
+ tcph->th_ack -= tcpd->rev->base_seq;
+ }
+ }
+ }
+
/*
* If we've been handed an IP fragment, we don't know how big the TCP
* segment is, so don't do anything that requires that we know that.
@@ -8060,56 +8203,10 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
pi = proto_tree_add_uint(ti, hf_tcp_len, tvb, 0, 0, tcph->th_seglen);
proto_item_set_generated(pi);
- /* initialize base_seq numbers */
- if(!(pinfo->fd->visited) && tcpd) {
- /* if this is the first segment for this list we need to store the
- * base_seq
- * We use TCP_S_SAW_SYN/SYNACK to distinguish between client and server
- *
- * Start relative seq and ack numbers at 1 if this
- * is not a SYN packet. This makes the relative
- * seq/ack numbers to be displayed correctly in the
- * event that the SYN or SYN/ACK packet is not seen
- * (this solves bug 1542)
- */
- if( !(tcpd->fwd->static_flags & TCP_S_BASE_SEQ_SET)) {
- if(tcph->th_flags & TH_SYN) {
- tcpd->fwd->base_seq = tcph->th_seq;
- tcpd->fwd->static_flags |= (tcph->th_flags & TH_ACK) ? TCP_S_SAW_SYNACK : TCP_S_SAW_SYN;
- }
- else {
- tcpd->fwd->base_seq = tcph->th_seq-1;
- }
- tcpd->fwd->static_flags |= TCP_S_BASE_SEQ_SET;
- }
-
- /* Only store reverse sequence if this isn't the SYN
- * There's no guarantee that the ACK field of a SYN
- * contains zeros; get the ISN from the first segment
- * with the ACK bit set instead (usually the SYN/ACK).
- *
- * If the SYN and SYN/ACK were received out-of-order,
- * the ISN is ack-1. If we missed the SYN/ACK, but got
- * the last ACK of the 3WHS, the ISN is ack-1. For all
- * other packets the ISN is unknown, so ack-1 is
- * as good a guess as ack.
- */
- if( !(tcpd->rev->static_flags & TCP_S_BASE_SEQ_SET) && (tcph->th_flags & TH_ACK) ) {
- tcpd->rev->base_seq = tcph->th_ack-1;
- tcpd->rev->static_flags |= TCP_S_BASE_SEQ_SET;
- }
- }
-
/* handle TCP seq# analysis parse all new segments we see */
if(tcp_analyze_seq) {
if(!(pinfo->fd->visited)) {
- tcp_analyze_sequence_number(pinfo, tcph->th_seq, tcph->th_ack, tcph->th_seglen, tcph->th_flags, tcph->th_win, tcpd, tcppd);
- }
- if(tcpd && tcp_relative_seq) {
- (tcph->th_seq) -= tcpd->fwd->base_seq;
- if (tcph->th_flags & TH_ACK) {
- (tcph->th_ack) -= tcpd->rev->base_seq;
- }
+ tcp_analyze_sequence_number(pinfo, tcph->th_rawseq, tcph->th_rawack, tcph->th_seglen, tcph->th_flags, tcph->th_win, tcpd, tcppd);
}
}
@@ -8194,6 +8291,23 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
return offset+12;
}
+ /* Now we certainly have enough information to be willing to send
+ * the header information to the tap. The options can add information
+ * about the SACKs, but the other taps don't really *require* that.
+ * Add a CLEANUP function so that the tap_queue_packet gets called
+ * if any exception is thrown.
+ *
+ * XXX: Could we move this earlier, before the window size and urgent
+ * pointer, for example? Probably, but if so, remember to
+ * CLEANUP_CALL_AND_POP before any return statements, such as the
+ * one above.
+ */
+
+ tcp_tap_cleanup_t *cleanup = wmem_new(pinfo->pool, tcp_tap_cleanup_t);
+ cleanup->pinfo = pinfo;
+ cleanup->tcph = tcph;
+ CLEANUP_PUSH(tcp_tap_cleanup, cleanup);
+
/* initialize or move forward the conversation completeness */
if(tcpd) {
if(conversation_is_new) { /* pure SYN must be sought in new conversations only */
@@ -8404,7 +8518,7 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
tcpd->fwd->maxnextseq = tcph->th_seq + 1;
}
}
- /* Initiliaze the is_first_ack */
+ /* Initialize the is_first_ack */
tcpd->fwd->is_first_ack = TRUE;
}
if(tcph->th_flags & TH_FIN) {
@@ -8712,7 +8826,8 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
}
}
- tap_queue_packet(tcp_tap, pinfo, tcph);
+ /* Nothing more to add to tcph, go ahead and send to the taps. */
+ CLEANUP_CALL_AND_POP;
/* if it is an MPTCP packet */
if(tcpd->mptcp_analysis) {
@@ -10082,9 +10197,9 @@ proto_register_tcp(void)
register_decode_as(&tcp_da);
register_conversation_table(proto_tcp, FALSE, tcpip_conversation_packet, tcpip_endpoint_packet);
- register_conversation_filter("tcp", "TCP", tcp_filter_valid, tcp_build_filter, NULL);
+ register_conversation_filter("tcp", "TCP", tcp_filter_valid, tcp_build_filter_by_id, NULL);
- register_seq_analysis("tcp", "TCP Flows", proto_tcp, NULL, 0, tcp_seq_analysis_packet);
+ register_seq_analysis("tcp", "TCP Flows", proto_tcp, NULL, TL_REQUIRES_NOTHING, tcp_seq_analysis_packet);
/* considers MPTCP as a distinct protocol (even if it's a TCP option) */
proto_mptcp = proto_register_protocol("Multipath Transmission Control Protocol", "MPTCP", "mptcp");
diff --git a/epan/dissectors/packet-tcp.h b/epan/dissectors/packet-tcp.h
index 9eac9defa5..cd3ba09249 100644
--- a/epan/dissectors/packet-tcp.h
+++ b/epan/dissectors/packet-tcp.h
@@ -115,7 +115,7 @@ struct tcpinfo {
guint32 seq; /* Sequence number of first byte in the data */
guint32 nxtseq; /* Sequence number of first byte after data */
guint32 lastackseq; /* Sequence number of last ack */
- gboolean is_reassembled; /* This is reassembled data. */
+ bool is_reassembled; /* This is reassembled data. */
guint16 flags; /* TCP flags */
guint16 urgent_pointer; /* Urgent pointer value for the current packet. */
};
@@ -375,6 +375,9 @@ typedef struct _tcp_flow_t {
* during reassembly. */
guint32 maxnextseq;
+ /* The number of data flows seen in that direction */
+ guint16 flow_count;
+
/* This tree is indexed by sequence number and keeps track of all
* all pdus spanning multiple segments for this flow.
*/
@@ -486,6 +489,9 @@ struct tcp_analysis {
*/
guint8 tfo_syn_data : 1;
+ /* Remembers which side is currently sending data. */
+ gint8 flow_direction : 2;
+
/* allocated only when mptcp enabled
* several tcp_analysis may refer to the same mptcp_analysis
* can exist without any meta
@@ -538,6 +544,12 @@ WS_DLL_PUBLIC void dissect_tcp_payload(tvbuff_t *tvb, packet_info *pinfo, int of
WS_DLL_PUBLIC struct tcp_analysis *get_tcp_conversation_data(conversation_t *conv,
packet_info *pinfo);
+/** Same as get_tcp_conversation_data(), without updating any data at all. Thus,
+ * it really identifies the conversation data and doesn't do anything with it.
+ *
+ */
+WS_DLL_PUBLIC struct tcp_analysis *get_tcp_conversation_data_idempotent(conversation_t *conv);
+
WS_DLL_PUBLIC gboolean decode_tcp_ports(tvbuff_t *, int, packet_info *, proto_tree *, int, int, struct tcp_analysis *, struct tcpinfo *);
/** Associate process information with a given flow
diff --git a/epan/dissectors/packet-tcpcl.c b/epan/dissectors/packet-tcpcl.c
index a34f16d97e..1849453c75 100644
--- a/epan/dissectors/packet-tcpcl.c
+++ b/epan/dissectors/packet-tcpcl.c
@@ -81,21 +81,21 @@ static int proto_tcpcl_exts;
static const char *const proto_name_tcpcl = "TCPCL";
static gint tcpcl_chdr_missing = CHDRMSN_V4FIRST;
-static gboolean tcpcl_desegment_transfer = TRUE;
-static gboolean tcpcl_analyze_sequence = TRUE;
-static gboolean tcpcl_decode_bundle = TRUE;
+static bool tcpcl_desegment_transfer = true;
+static bool tcpcl_analyze_sequence = true;
+static bool tcpcl_decode_bundle = true;
/* For Reassembling TCP Convergence Layer segments */
static reassembly_table xfer_reassembly_table;
/// Dissector handles
-static dissector_handle_t tcpcl_handle = NULL;
-static dissector_handle_t tls_handle = NULL;
-static dissector_handle_t bundle_handle = NULL;
+static dissector_handle_t tcpcl_handle;
+static dissector_handle_t tls_handle;
+static dissector_handle_t bundle_handle;
/// Extension sub-dissectors
-static dissector_table_t sess_ext_dissectors = NULL;
-static dissector_table_t xfer_ext_dissectors = NULL;
+static dissector_table_t sess_ext_dissectors;
+static dissector_table_t xfer_ext_dissectors;
static const value_string v3_message_type_vals[] = {
{((TCPCLV3_DATA_SEGMENT>>4) & 0x0F), "DATA_SEGMENT"},
@@ -1949,11 +1949,8 @@ static guint chdr_missing_tls(packet_info *pinfo, tvbuff_t *tvb, int offset,
return 0;
}
guint8 rectype = tvb_get_guint8(tvb, offset);
- offset += 1;
- guint16 recvers = tvb_get_guint16(tvb, offset, ENC_BIG_ENDIAN);
- offset += 2;
- guint16 reclen = tvb_get_guint16(tvb, offset, ENC_BIG_ENDIAN);
- offset += 2;
+ guint16 recvers = tvb_get_guint16(tvb, offset+1, ENC_BIG_ENDIAN);
+ guint16 reclen = tvb_get_guint16(tvb, offset+1+2, ENC_BIG_ENDIAN);
switch(rectype) {
// These overlap with TCPCLV3_DATA_SEGMENT but have invalid flags
@@ -2404,7 +2401,7 @@ proto_register_tcpcl(void)
"desegment_transfer",
"Reassemble the segments of each transfer",
"Whether the TCPCL dissector should combine the sequential segments "
- "of a transfer into the full bundle being transfered."
+ "of a transfer into the full bundle being transferred."
"To use this option, you must also enable "
"\"Allow subdissectors to reassemble TCP streams\" "
"in the TCP protocol settings.",
diff --git a/epan/dissectors/packet-tcpros.c b/epan/dissectors/packet-tcpros.c
index b238ab12fc..b6af5cae85 100644
--- a/epan/dissectors/packet-tcpros.c
+++ b/epan/dissectors/packet-tcpros.c
@@ -29,7 +29,7 @@ static int proto_tcpros;
static dissector_handle_t tcpros_handle;
/** desegmentation of TCPROS over TCP */
-static gboolean tcpros_desegment = TRUE;
+static bool tcpros_desegment = true;
static int hf_tcpros_connection_header;
@@ -609,7 +609,7 @@ dissect_tcpros_heur_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
dissect_tcpros(tvb, pinfo, tree, data);
- return (TRUE);
+ return TRUE;
}
diff --git a/epan/dissectors/packet-tdmop.c b/epan/dissectors/packet-tdmop.c
index c1d4884f13..471f29d3f4 100644
--- a/epan/dissectors/packet-tdmop.c
+++ b/epan/dissectors/packet-tdmop.c
@@ -46,7 +46,7 @@ static int hf_tdmop_Reserved;
static int hf_tdmop_payload;
static int hf_tdmop_Compression_mask;
-static dissector_handle_t lapd_handle = NULL;
+static dissector_handle_t lapd_handle;
static gint pref_tdmop_d_channel = 16;
static guint32 pref_tdmop_mask = 0xFFFFFFFFUL;
diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c
index ee9926cc31..2d7659b9b2 100644
--- a/epan/dissectors/packet-tds.c
+++ b/epan/dissectors/packet-tds.c
@@ -1304,7 +1304,7 @@ static expert_field ei_tds_invalid_plp_type;
static expert_field ei_tds_cursor_name_mismatch;
/* Desegmentation of Netlib buffers crossing TCP segment boundaries. */
-static gboolean tds_desegment = TRUE;
+static bool tds_desegment = true;
static const fragment_items tds_frag_items = {
&ett_tds_fragment,
@@ -1328,7 +1328,7 @@ static const fragment_items tds_frag_items = {
static reassembly_table tds_reassembly_table;
/* defragmentation of multi-buffer TDS PDUs */
-static gboolean tds_defragment = TRUE;
+static bool tds_defragment = true;
static dissector_handle_t tds_tcp_handle;
static dissector_handle_t ntlmssp_handle;
@@ -1457,7 +1457,7 @@ static const enum_val_t tds_endian_type_options[] = {
};
/* TCP port preferences for TDS decode */
-static range_t *tds_tcp_ports = NULL;
+static range_t *tds_tcp_ports;
/* These correspond to the netlib packet type field */
static const value_string packet_type_names[] = {
@@ -2536,7 +2536,7 @@ dissect_tds_type_varbyte(tvbuff_t *tvb, guint *offset, packet_info *pinfo, proto
guint64 value = 0;
gdouble dblvalue;
guint days = 0;
- gshort timeoffset = 0;
+ int16_t timeoffset = 0;
guint64 secs;
nstime_t tv;
proto_item *timeitem = NULL;
@@ -2597,7 +2597,7 @@ dissect_tds_type_varbyte(tvbuff_t *tvb, guint *offset, packet_info *pinfo, proto
* The size appears to be variable governed on the Precision specification.
* Sign of TRUE indicates negative.
*/
- gboolean sign = FALSE;
+ bool sign = false;
proto_tree_add_item_ret_boolean(sub_tree, hf_tds_type_varbyte_data_sign, tvb, *offset, 1, ENC_NA, &sign);
*offset += 1;
@@ -2649,7 +2649,7 @@ dissect_tds_type_varbyte(tvbuff_t *tvb, guint *offset, packet_info *pinfo, proto
* but this code does not rely on that.
* Sign of TRUE indicates positive.
*/
- gboolean sign = TRUE;
+ bool sign = true;
proto_tree_add_item_ret_boolean(sub_tree,
hf_tds_type_varbyte_data_sign, tvb, *offset, 1,
diff --git a/epan/dissectors/packet-tecmp.c b/epan/dissectors/packet-tecmp.c
index 8860e709d9..55f092ba23 100644
--- a/epan/dissectors/packet-tecmp.c
+++ b/epan/dissectors/packet-tecmp.c
@@ -46,11 +46,11 @@ static int proto_tecmp_payload;
static dissector_handle_t eth_handle;
static int proto_vlan;
-static gboolean heuristic_first = FALSE;
-static gboolean analog_samples_are_signed_int = TRUE;
-static gboolean show_ethernet_in_tecmp_tree = FALSE;
-static gboolean detect_asam_cmp = TRUE;
-static gboolean detect_asam_cmp_ignore_user_defined = TRUE;
+static bool heuristic_first;
+static bool analog_samples_are_signed_int = true;
+static bool show_ethernet_in_tecmp_tree;
+static bool detect_asam_cmp = true;
+static bool detect_asam_cmp_ignore_user_defined = true;
static dissector_table_t lin_subdissector_table;
static dissector_table_t data_subdissector_table;
@@ -703,24 +703,24 @@ typedef struct _interface_config {
#define DATAFILE_TECMP_INTERFACE_IDS "TECMP_interface_identifiers"
#define DATAFILE_TECMP_CONTROL_MSG_IDS "TECMP_control_message_identifiers"
-static GHashTable *data_tecmp_devices = NULL;
-static generic_one_id_string_t* tecmp_devices = NULL;
-static guint tecmp_devices_num = 0;
+static GHashTable *data_tecmp_devices;
+static generic_one_id_string_t* tecmp_devices;
+static guint tecmp_devices_num;
UAT_HEX_CB_DEF(tecmp_devices, id, generic_one_id_string_t)
UAT_CSTRING_CB_DEF(tecmp_devices, name, generic_one_id_string_t)
-static GHashTable *data_tecmp_interfaces = NULL;
-static interface_config_t* tecmp_interfaces = NULL;
-static guint tecmp_interfaces_num = 0;
+static GHashTable *data_tecmp_interfaces;
+static interface_config_t* tecmp_interfaces;
+static guint tecmp_interfaces_num;
UAT_HEX_CB_DEF(tecmp_interfaces, id, interface_config_t)
UAT_CSTRING_CB_DEF(tecmp_interfaces, name, interface_config_t)
UAT_HEX_CB_DEF(tecmp_interfaces, bus_id, interface_config_t)
-static GHashTable *data_tecmp_ctrlmsgids = NULL;
-static generic_one_id_string_t* tecmp_ctrl_msgs = NULL;
-static guint tecmp_ctrl_msg_num = 0;
+static GHashTable *data_tecmp_ctrlmsgids;
+static generic_one_id_string_t* tecmp_ctrl_msgs;
+static guint tecmp_ctrl_msg_num;
UAT_HEX_CB_DEF(tecmp_ctrl_msgs, id, generic_one_id_string_t)
UAT_CSTRING_CB_DEF(tecmp_ctrl_msgs, name, generic_one_id_string_t)
@@ -1021,7 +1021,7 @@ dissect_tecmp_entry_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
nstime_t timestamp;
guint64 ns = 0;
- gboolean async = FALSE;
+ bool async = false;
guint tmp;
static int * const dataflags_generic[] = {
diff --git a/epan/dissectors/packet-telnet.c b/epan/dissectors/packet-telnet.c
index 70dff4c52a..a50266d59e 100644
--- a/epan/dissectors/packet-telnet.c
+++ b/epan/dissectors/packet-telnet.c
@@ -89,6 +89,7 @@ static int hf_telnet_vmware_cmd;
static int hf_telnet_vmware_known_suboption_code;
static int hf_telnet_vmware_unknown_subopt_code;
static int hf_telnet_vmware_vmotion_sequence;
+static int hf_telnet_vmware_vmotion_secret;
static int hf_telnet_vmware_proxy_direction;
static int hf_telnet_vmware_proxy_serviceUri;
static int hf_telnet_vmware_vm_vc_uuid;
@@ -224,6 +225,7 @@ typedef struct tn_opt {
typedef struct _telnet_conv_info {
guint32 starttls_requested_in; /* Frame of first sender of START_TLS FOLLOWS */
guint32 starttls_port; /* Source port for first sender */
+ gssize vmotion_sequence_len; /* Length of "sequence" field for VMware vSPC vMotion. */
} telnet_conv_info_t;
static void
@@ -272,6 +274,7 @@ telnet_get_session(packet_info *pinfo)
telnet_info = (telnet_conv_info_t*)conversation_get_proto_data(conversation, proto_telnet);
if (!telnet_info) {
telnet_info = wmem_new0(wmem_file_scope(), telnet_conv_info_t);
+ telnet_info->vmotion_sequence_len = -1;
conversation_add_proto_data(conversation, proto_telnet, telnet_info);
}
return telnet_info;
@@ -1428,24 +1431,97 @@ dissect_vmware_subopt(packet_info *pinfo _U_, const char *optname _U_, tvbuff_t
case VMWARE_VMOTION_BEGIN:
case VMWARE_VMOTION_NOTNOW:
case VMWARE_VMOTION_PEER_OK:
- case VMWARE_VMOTION_COMPLETE:
+ case VMWARE_VMOTION_COMPLETE: {
/* Data: sequence */
+ telnet_conv_info_t *session = telnet_get_session(pinfo);
+ if (session->vmotion_sequence_len < 0) {
+ /*
+ * There is nothing which _requires_ that the sequence length be constant
+ * throughout a Telnet conversation, but all implementations currently
+ * behave that way and here we assume it will be so. If that changes,
+ * subsequent VMOTION-GOAHEAD/VMOTION-PEER messages might be incorrectly
+ * dissected, with bytes incorrectly assigned to the sequence or secret
+ * fields. This should not be a big deal.
+ */
+ session->vmotion_sequence_len = len;
+ }
proto_tree_add_item(tree, hf_telnet_vmware_vmotion_sequence, tvb, offset, len, ENC_NA);
offset += len;
len = 0;
+ }
break;
case VMWARE_VMOTION_GOAHEAD:
- case VMWARE_VMOTION_PEER:
+ case VMWARE_VMOTION_PEER: {
/* Data: sequence secret */
+ telnet_conv_info_t *session = telnet_get_session(pinfo);
+
/*
- * TODO: With no delimiter between "sequence" and "secret", nor any other
- * way of determining the lengths of those fields, dissecting them
- * will require tracking the vMotion conversation. For now, ignore
- * all data.
+ * The lack of delimiter between "sequence" and "secret" makes dissection
+ * challenging. We need to track the "vMotion conversation", which spans
+ * two Telnet conversations with different endpoints. The vMotion
+ * conversation is identified by a blob containing the concatenation of the
+ * sequence and secret.
*/
- offset += len;
- len = 0;
+ if ((vmwcmd == VMWARE_VMOTION_GOAHEAD && session->vmotion_sequence_len >= 0) ||
+ (vmwcmd == VMWARE_VMOTION_PEER && session->vmotion_sequence_len < 0)) {
+ conversation_element_t conv_key[2] = {
+ {
+ .type = CE_BLOB,
+ .blob = {
+ .val = tvb_memdup(pinfo->pool, tvb, offset, len),
+ .len = len,
+ },
+ },
+ {
+ .type = CE_CONVERSATION_TYPE,
+ .conversation_type_val = CONVERSATION_VSPC_VMOTION,
+ }
+ };
+ conversation_t *vmotion_conv = find_conversation_full(pinfo->num, conv_key);
+
+ if (vmwcmd == VMWARE_VMOTION_GOAHEAD && vmotion_conv == NULL) {
+ /*
+ * We have the full sequence and secret and we know the length of the
+ * "sequence" field. Stash it (or, really, its session) where we can
+ * find it later.
+ */
+ vmotion_conv = conversation_new_full(pinfo->num, conv_key);
+ conversation_add_proto_data(vmotion_conv, proto_telnet, session);
+ } else if (vmwcmd == VMWARE_VMOTION_PEER && vmotion_conv != NULL) {
+ /*
+ * Try to find the length of the "sequence" field from the conversation
+ * containing the VMOTION-GOAHEAD message.
+ */
+ telnet_conv_info_t const *source_session =
+ (telnet_conv_info_t const *)conversation_get_proto_data(vmotion_conv, proto_telnet);
+
+ if (source_session != NULL) {
+ session->vmotion_sequence_len = source_session->vmotion_sequence_len;
+ }
+ /* The secret is only used once, so the vMotion conversation ends here. */
+ vmotion_conv->last_frame = pinfo->num;
+ }
+ wmem_free(pinfo->pool, (void *)conv_key[0].blob.val);
+ }
+ if (session->vmotion_sequence_len >= 0 && session->vmotion_sequence_len <= len) {
+ proto_tree_add_item(tree, hf_telnet_vmware_vmotion_sequence, tvb, offset, (int)session->vmotion_sequence_len, ENC_NA);
+ offset += session->vmotion_sequence_len;
+ len -= session->vmotion_sequence_len;
+
+ proto_tree_add_item(tree, hf_telnet_vmware_vmotion_secret, tvb, offset, len, ENC_NA);
+ offset += len;
+ len = 0;
+ } else {
+ /*
+ * With no delimiter between "sequence" and "secret", nor any other way
+ * of determining the lengths of those fields, we lack the information to
+ * be able to dissect this. Skip it.
+ */
+ offset += len;
+ len = 0;
+ }
+ }
break;
case VMWARE_VMOTION_ABORT:
@@ -2441,6 +2517,10 @@ proto_register_telnet(void)
{ "vMotion sequence", "telnet.vmware.vmotion.sequence", FT_BYTES, BASE_NONE,
NULL, 0, NULL, HFILL }
},
+ { &hf_telnet_vmware_vmotion_secret,
+ { "vMotion secret", "telnet.vmware.vmotion.secret", FT_BYTES, BASE_NONE,
+ NULL, 0, NULL, HFILL }
+ },
{ &hf_telnet_vmware_proxy_direction,
{ "Proxy Direction", "telnet.vmware.proxy.direction", FT_CHAR, BASE_HEX,
VALS(vmware_proxy_direction_vals), 0, NULL, HFILL }
diff --git a/epan/dissectors/packet-teredo.c b/epan/dissectors/packet-teredo.c
index 346ee2fa3d..ed7b19fb64 100644
--- a/epan/dissectors/packet-teredo.c
+++ b/epan/dissectors/packet-teredo.c
@@ -349,7 +349,7 @@ proto_register_teredo(void)
{ &hf_teredo_orig,
{ "Teredo Origin Indication header", "teredo.orig",
FT_NONE, BASE_NONE, NULL, 0x0,
- "Teredo Origin Indication", HFILL }},
+ NULL, HFILL }},
{ &hf_teredo_orig_port,
{ "Origin UDP port", "teredo.orig.port",
diff --git a/epan/dissectors/packet-tetra.c b/epan/dissectors/packet-tetra.c
index 71d5ac8aec..88368af3b7 100644
--- a/epan/dissectors/packet-tetra.c
+++ b/epan/dissectors/packet-tetra.c
@@ -44,7 +44,7 @@ static dissector_handle_t tetra_handle;
#define TETRA_UDP_PORT 7074 /* Not IANA assigned */
/* Whether the capture data include carrier numbers */
-static gboolean include_carrier_number = TRUE;
+static bool include_carrier_number = true;
/* The following hf_* variables are used to hold the Wireshark IDs of
* our header fields; they are filled out when we call
@@ -669,276 +669,276 @@ static gint ett_tetra_length;
static gint ett_tetra_txreg;
static gint ett_tetra_text;
-static gint ett_tetra_AACH;
-static gint ett_tetra_BSCH;
-static gint ett_tetra_MLE_Sync;
-static gint ett_tetra_BNCH;
-static gint ett_tetra_T_hyperframe_or_cck;
-static gint ett_tetra_T_optional_params;
-static gint ett_tetra_TS_COMMON_FRAMES;
-static gint ett_tetra_Default_Code_A;
-static gint ett_tetra_Extended_Services_Broadcast;
-static gint ett_tetra_T_section;
-static gint ett_tetra_PRESENT1;
-static gint ett_tetra_MAC_ACCESS;
-static gint ett_tetra_T_data;
-static gint ett_tetra_Address;
-static gint ett_tetra_U_LLC_PDU;
-static gint ett_tetra_U_BL_ACK_FCS;
-static gint ett_tetra_U_MLE_PDU_FCS;
-static gint ett_tetra_U_BL_DATA_FCS;
-static gint ett_tetra_U_BL_ADATA_FCS;
-static gint ett_tetra_U_MLE_PDU;
-static gint ett_tetra_ComplexSDU;
-static gint ett_tetra_T_lengthIndicationOrCapacityRequest;
-static gint ett_tetra_FRAG;
-static gint ett_tetra_MAC_DATA;
-static gint ett_tetra_T_lengthIndicationOrCapacityRequest_01;
-static gint ett_tetra_FRAG6;
-static gint ett_tetra_MAC_FRAG;
-static gint ett_tetra_MAC_FRAG120;
-static gint ett_tetra_MAC_END_UPLINK;
-static gint ett_tetra_MAC_END_UP114;
-static gint ett_tetra_MAC_END_HU;
-static gint ett_tetra_T_lengthInd_ReservationReq;
-static gint ett_tetra_MAC_END_DOWNLINK;
-static gint ett_tetra_T_slot_granting;
-static gint ett_tetra_T_channel_allocation;
-static gint ett_tetra_SlotGranting;
-static gint ett_tetra_ChannelAllocation;
-static gint ett_tetra_T_extend_carrier_flag;
-static gint ett_tetra_T_monitoring_pattern;
-static gint ett_tetra_Extended_carrier_flag;
-static gint ett_tetra_MAC_END_DOWN111;
-static gint ett_tetra_T_slot_granting_01;
-static gint ett_tetra_T_channel_allocation_01;
-static gint ett_tetra_MAC_RESOURCE;
-static gint ett_tetra_OTHER_DATA;
-static gint ett_tetra_T_power_control;
-static gint ett_tetra_T_slot_granting_02;
-static gint ett_tetra_T_channel_allocation_02;
-static gint ett_tetra_AddressMacResource;
-static gint ett_tetra_SSI_NEED;
-static gint ett_tetra_EVENT_NEED;
-static gint ett_tetra_USSI_NEED;
-static gint ett_tetra_SMI_NEED;
-static gint ett_tetra_SSI_EVENT_NEED;
-static gint ett_tetra_SSI_USAGE_NEED;
-static gint ett_tetra_SMI_EVENT_NEED;
-static gint ett_tetra_MAC_ACCESS_DEFINE;
-static gint ett_tetra_T_optional_field;
-static gint ett_tetra_D_LLC_PDU;
-static gint ett_tetra_D_BL_ACK_FCS;
-static gint ett_tetra_D_MLE_PDU_FCS;
-static gint ett_tetra_D_BL_ADATA_FCS;
-static gint ett_tetra_D_BL_DATA_FCS;
-static gint ett_tetra_U_BL_ACK;
-static gint ett_tetra_D_BL_ACK;
-static gint ett_tetra_U_BL_DATA;
-static gint ett_tetra_D_BL_DATA;
-static gint ett_tetra_U_BL_ADATA;
-static gint ett_tetra_D_BL_ADATA;
-static gint ett_tetra_D_MLE_PDU;
-static gint ett_tetra_UMLE_PDU;
-static gint ett_tetra_DMLE_PDU;
-static gint ett_tetra_U_PREPARE;
-static gint ett_tetra_T_optional_elements;
-static gint ett_tetra_T_type2_parameters;
-static gint ett_tetra_T_cell_number;
-static gint ett_tetra_U_RESTORE;
-static gint ett_tetra_T_optional_elements_01;
-static gint ett_tetra_T_type2_parameters_01;
-static gint ett_tetra_T_mcc;
-static gint ett_tetra_T_mnc;
-static gint ett_tetra_T_la;
-static gint ett_tetra_D_NEW_CELL;
-static gint ett_tetra_T_optional_elements_02;
-static gint ett_tetra_D_PREPARE_FAIL;
-static gint ett_tetra_T_optional_elements_03;
-static gint ett_tetra_D_NWRK_BRDADCAST;
-static gint ett_tetra_T_optional_elements_04;
-static gint ett_tetra_T_type2_parameters_02;
-static gint ett_tetra_T_tetra_network_time;
-static gint ett_tetra_T_number_of_neighbour_cells;
-static gint ett_tetra_TETRA_NETWORK_TIME;
-static gint ett_tetra_D_RESTORE_ACK;
-static gint ett_tetra_D_RESTORE_FAIL;
-static gint ett_tetra_U_MM_PDU;
-static gint ett_tetra_D_MM_PDU;
-static gint ett_tetra_GROUP_IDENTITY_DOWNLINK;
-static gint ett_tetra_T_attach_detach_identifier;
-static gint ett_tetra_T_attach;
-static gint ett_tetra_T_detach;
-static gint ett_tetra_T_address_type;
-static gint ett_tetra_T_gssi_extension;
-static gint ett_tetra_GROUP_IDENTITY_UPLINK;
-static gint ett_tetra_T_attach_detach_identifier_01;
-static gint ett_tetra_T_attach_01;
-static gint ett_tetra_T_detach_01;
-static gint ett_tetra_T_address_type_01;
-static gint ett_tetra_T_gssi_extension_01;
-static gint ett_tetra_D_LOCATION_UPDATE_ACCEPT;
-static gint ett_tetra_T_optional_elements_05;
-static gint ett_tetra_T_type2_parameters_03;
-static gint ett_tetra_T_ssi;
-static gint ett_tetra_T_address_extension;
-static gint ett_tetra_T_subscriber_class;
-static gint ett_tetra_T_energy_saving_mode;
-static gint ett_tetra_T_scch_info;
-static gint ett_tetra_T_type3;
-static gint ett_tetra_T_type3_elements;
-static gint ett_tetra_T_new_ra;
-static gint ett_tetra_T_group_identity_location_accept;
-static gint ett_tetra_T_group_predefined_lifetime;
-static gint ett_tetra_T_group_identity_downlink;
-static gint ett_tetra_T_proprietary;
-static gint ett_tetra_D_LOCATION_UPDATE_REJECT;
-static gint ett_tetra_U_MM_STATUS;
-static gint ett_tetra_D_MM_STATUS;
-static gint ett_tetra_U_CMCE_PDU;
-static gint ett_tetra_U_RELEASE;
-static gint ett_tetra_U_SDS_DATA;
-static gint ett_tetra_T_called_party_type_identifier;
-static gint ett_tetra_T_short_data_type_identifier;
-static gint ett_tetra_U_STATUS;
-static gint ett_tetra_T_called_party_type_identifier_01;
-static gint ett_tetra_U_INFO;
-static gint ett_tetra_D_CMCE_PDU;
-static gint ett_tetra_D_SDS_DATA;
-static gint ett_tetra_T_calling_party_type_identifier;
-static gint ett_tetra_T_short_data_type_identifier_01;
-static gint ett_tetra_D_STATUS;
-static gint ett_tetra_T_calling_party_type_identifier_01;
-static gint ett_tetra_D_DISCONNECT;
-static gint ett_tetra_D_INFO;
-static gint ett_tetra_D_TX_WAIT;
-static gint ett_tetra_D_TX_CONTINUE;
-static gint ett_tetra_U_LOCATION_UPDATE_DEMAND;
-static gint ett_tetra_T_cipher_control;
-static gint ett_tetra_T_optional_elements_06;
-static gint ett_tetra_T_type2_parameters_04;
-static gint ett_tetra_T_class_of_MS;
-static gint ett_tetra_T_energy_saving_mode_01;
-static gint ett_tetra_T_la_information;
-static gint ett_tetra_T_ssi_01;
-static gint ett_tetra_T_address_extension_01;
-static gint ett_tetra_T_type3_01;
-static gint ett_tetra_T_type3_elements_01;
-static gint ett_tetra_T_group_identity_location_demand;
-static gint ett_tetra_T_group_report_response;
-static gint ett_tetra_T_group_identity_uplink;
-static gint ett_tetra_T_proprietary_01;
-static gint ett_tetra_U_ATTACH_DETACH_GROUP_IDENTITY;
-static gint ett_tetra_T_optional_elements_07;
-static gint ett_tetra_T_type2_element;
-static gint ett_tetra_T_type3_02;
-static gint ett_tetra_T_type3_elements_02;
-static gint ett_tetra_U_ATTACH_DETACH_GROUP_IDENTITY_ACK;
-static gint ett_tetra_T_optional_elements_08;
-static gint ett_tetra_T_type2_element_01;
-static gint ett_tetra_T_type3_03;
-static gint ett_tetra_T_type3_elements_03;
-static gint ett_tetra_U_SETUP;
-static gint ett_tetra_T_optional_elements_09;
-static gint ett_tetra_T_type2_parameters_05;
-static gint ett_tetra_T_external_subscriber_number;
-static gint ett_tetra_T_prop;
-static gint ett_tetra_Basic_service_information;
-static gint ett_tetra_U_ALERT;
-static gint ett_tetra_T_optional_elements_10;
-static gint ett_tetra_T_type2_parameters_06;
-static gint ett_tetra_T_basic_service_information;
-static gint ett_tetra_T_prop_01;
-static gint ett_tetra_U_CONNECT;
-static gint ett_tetra_T_optional_elements_11;
-static gint ett_tetra_T_type2_parameters_07;
-static gint ett_tetra_T_basic_service_information_01;
-static gint ett_tetra_T_prop_02;
-static gint ett_tetra_U_TX_CEASED;
-static gint ett_tetra_T_optional_elements_12;
-static gint ett_tetra_T_type2_parameters_08;
-static gint ett_tetra_T_prop_03;
-static gint ett_tetra_U_TX_DEMAND;
-static gint ett_tetra_T_optional_elements_13;
-static gint ett_tetra_T_type2_parameters_09;
-static gint ett_tetra_T_prop_04;
-static gint ett_tetra_U_DISCONNECT;
-static gint ett_tetra_T_optional_elements_14;
-static gint ett_tetra_T_type2_parameters_10;
-static gint ett_tetra_T_prop_05;
-static gint ett_tetra_U_CALL_RESTORE;
-static gint ett_tetra_T_optional_elements_15;
-static gint ett_tetra_T_type2_parameters_11;
-static gint ett_tetra_T_prop_06;
-static gint ett_tetra_D_SETUP;
-static gint ett_tetra_T_optional_elements_16;
-static gint ett_tetra_T_type2_parameters_12;
-static gint ett_tetra_T_calling_party_address;
-static gint ett_tetra_T_external_subscriber_number_01;
-static gint ett_tetra_T_prop_07;
-static gint ett_tetra_D_CALL_PROCEEDING;
-static gint ett_tetra_T_optional_elements_17;
-static gint ett_tetra_T_type2_parameters_13;
-static gint ett_tetra_T_basic_service_information_02;
-static gint ett_tetra_T_call_status;
-static gint ett_tetra_T_notification_indicator;
-static gint ett_tetra_T_prop_08;
-static gint ett_tetra_D_ALERT;
-static gint ett_tetra_T_optional_elements_18;
-static gint ett_tetra_T_type2_parameters_14;
-static gint ett_tetra_T_basic_service_infomation;
-static gint ett_tetra_T_notification_indicator_01;
-static gint ett_tetra_T_prop_09;
-static gint ett_tetra_D_CONNECT;
-static gint ett_tetra_T_optional_elements_19;
-static gint ett_tetra_T_type2_parameters_15;
-static gint ett_tetra_T_call_priority;
-static gint ett_tetra_T_basic_service_information_03;
-static gint ett_tetra_T_temporary_address;
-static gint ett_tetra_T_notification_indicator_02;
-static gint ett_tetra_T_prop_10;
-static gint ett_tetra_D_CONNECT_ACK;
-static gint ett_tetra_T_optional_elements_20;
-static gint ett_tetra_T_type2_parameters_16;
-static gint ett_tetra_T_notification_indicator_03;
-static gint ett_tetra_T_prop_11;
-static gint ett_tetra_D_RELEASE;
-static gint ett_tetra_T_optional_elements_21;
-static gint ett_tetra_T_type2_parameters_17;
-static gint ett_tetra_T_notification_indicator_04;
-static gint ett_tetra_T_prop_12;
-static gint ett_tetra_D_CALL_RESTORE;
-static gint ett_tetra_T_optional_elements_22;
-static gint ett_tetra_T_type2_parameters_18;
-static gint ett_tetra_T_new_call_identifier;
-static gint ett_tetra_T_call_time_out;
-static gint ett_tetra_T_call_status_01;
-static gint ett_tetra_T_modify;
-static gint ett_tetra_T_notification_indicator_05;
-static gint ett_tetra_T_prop_13;
-static gint ett_tetra_D_TX_CEASED;
-static gint ett_tetra_T_optional_elements_23;
-static gint ett_tetra_T_type2_parameters_19;
-static gint ett_tetra_T_notification_indicator_06;
-static gint ett_tetra_T_prop_14;
-static gint ett_tetra_D_TX_GRANTED;
-static gint ett_tetra_D_ATTACH_DETACH_GROUP_IDENTITY;
-static gint ett_tetra_T_optional_elements_24;
-static gint ett_tetra_T_type2_element_02;
-static gint ett_tetra_T_type3_04;
-static gint ett_tetra_T_type3_elements_04;
-static gint ett_tetra_D_ATTACH_DETACH_GROUP_IDENTITY_ACK;
-static gint ett_tetra_T_optional_elements_25;
-static gint ett_tetra_T_type2_element_03;
-static gint ett_tetra_T_type3_05;
-static gint ett_tetra_T_type3_elements_05;
-static gint ett_tetra_Calling_party_address_type;
-static gint ett_tetra_T_called_party_ssi_extension;
-static gint ett_tetra_Proprietary;
-static gint ett_tetra_T_data_01;
-static gint ett_tetra_Type1;
-static gint ett_tetra_Type2;
-static gint ett_tetra_Modify_type;
+static int ett_tetra_AACH;
+static int ett_tetra_BSCH;
+static int ett_tetra_MLE_Sync;
+static int ett_tetra_BNCH;
+static int ett_tetra_T_hyperframe_or_cck;
+static int ett_tetra_T_optional_params;
+static int ett_tetra_TS_COMMON_FRAMES;
+static int ett_tetra_Default_Code_A;
+static int ett_tetra_Extended_Services_Broadcast;
+static int ett_tetra_T_section;
+static int ett_tetra_PRESENT1;
+static int ett_tetra_MAC_ACCESS;
+static int ett_tetra_T_data;
+static int ett_tetra_Address;
+static int ett_tetra_U_LLC_PDU;
+static int ett_tetra_U_BL_ACK_FCS;
+static int ett_tetra_U_MLE_PDU_FCS;
+static int ett_tetra_U_BL_DATA_FCS;
+static int ett_tetra_U_BL_ADATA_FCS;
+static int ett_tetra_U_MLE_PDU;
+static int ett_tetra_ComplexSDU;
+static int ett_tetra_T_lengthIndicationOrCapacityRequest;
+static int ett_tetra_FRAG;
+static int ett_tetra_MAC_DATA;
+static int ett_tetra_T_lengthIndicationOrCapacityRequest_01;
+static int ett_tetra_FRAG6;
+static int ett_tetra_MAC_FRAG;
+static int ett_tetra_MAC_FRAG120;
+static int ett_tetra_MAC_END_UPLINK;
+static int ett_tetra_MAC_END_UP114;
+static int ett_tetra_MAC_END_HU;
+static int ett_tetra_T_lengthInd_ReservationReq;
+static int ett_tetra_MAC_END_DOWNLINK;
+static int ett_tetra_T_slot_granting;
+static int ett_tetra_T_channel_allocation;
+static int ett_tetra_SlotGranting;
+static int ett_tetra_ChannelAllocation;
+static int ett_tetra_T_extend_carrier_flag;
+static int ett_tetra_T_monitoring_pattern;
+static int ett_tetra_Extended_carrier_flag;
+static int ett_tetra_MAC_END_DOWN111;
+static int ett_tetra_T_slot_granting_01;
+static int ett_tetra_T_channel_allocation_01;
+static int ett_tetra_MAC_RESOURCE;
+static int ett_tetra_OTHER_DATA;
+static int ett_tetra_T_power_control;
+static int ett_tetra_T_slot_granting_02;
+static int ett_tetra_T_channel_allocation_02;
+static int ett_tetra_AddressMacResource;
+static int ett_tetra_SSI_NEED;
+static int ett_tetra_EVENT_NEED;
+static int ett_tetra_USSI_NEED;
+static int ett_tetra_SMI_NEED;
+static int ett_tetra_SSI_EVENT_NEED;
+static int ett_tetra_SSI_USAGE_NEED;
+static int ett_tetra_SMI_EVENT_NEED;
+static int ett_tetra_MAC_ACCESS_DEFINE;
+static int ett_tetra_T_optional_field;
+static int ett_tetra_D_LLC_PDU;
+static int ett_tetra_D_BL_ACK_FCS;
+static int ett_tetra_D_MLE_PDU_FCS;
+static int ett_tetra_D_BL_ADATA_FCS;
+static int ett_tetra_D_BL_DATA_FCS;
+static int ett_tetra_U_BL_ACK;
+static int ett_tetra_D_BL_ACK;
+static int ett_tetra_U_BL_DATA;
+static int ett_tetra_D_BL_DATA;
+static int ett_tetra_U_BL_ADATA;
+static int ett_tetra_D_BL_ADATA;
+static int ett_tetra_D_MLE_PDU;
+static int ett_tetra_UMLE_PDU;
+static int ett_tetra_DMLE_PDU;
+static int ett_tetra_U_PREPARE;
+static int ett_tetra_T_optional_elements;
+static int ett_tetra_T_type2_parameters;
+static int ett_tetra_T_cell_number;
+static int ett_tetra_U_RESTORE;
+static int ett_tetra_T_optional_elements_01;
+static int ett_tetra_T_type2_parameters_01;
+static int ett_tetra_T_mcc;
+static int ett_tetra_T_mnc;
+static int ett_tetra_T_la;
+static int ett_tetra_D_NEW_CELL;
+static int ett_tetra_T_optional_elements_02;
+static int ett_tetra_D_PREPARE_FAIL;
+static int ett_tetra_T_optional_elements_03;
+static int ett_tetra_D_NWRK_BRDADCAST;
+static int ett_tetra_T_optional_elements_04;
+static int ett_tetra_T_type2_parameters_02;
+static int ett_tetra_T_tetra_network_time;
+static int ett_tetra_T_number_of_neighbour_cells;
+static int ett_tetra_TETRA_NETWORK_TIME;
+static int ett_tetra_D_RESTORE_ACK;
+static int ett_tetra_D_RESTORE_FAIL;
+static int ett_tetra_U_MM_PDU;
+static int ett_tetra_D_MM_PDU;
+static int ett_tetra_GROUP_IDENTITY_DOWNLINK;
+static int ett_tetra_T_attach_detach_identifier;
+static int ett_tetra_T_attach;
+static int ett_tetra_T_detach;
+static int ett_tetra_T_address_type;
+static int ett_tetra_T_gssi_extension;
+static int ett_tetra_GROUP_IDENTITY_UPLINK;
+static int ett_tetra_T_attach_detach_identifier_01;
+static int ett_tetra_T_attach_01;
+static int ett_tetra_T_detach_01;
+static int ett_tetra_T_address_type_01;
+static int ett_tetra_T_gssi_extension_01;
+static int ett_tetra_D_LOCATION_UPDATE_ACCEPT;
+static int ett_tetra_T_optional_elements_05;
+static int ett_tetra_T_type2_parameters_03;
+static int ett_tetra_T_ssi;
+static int ett_tetra_T_address_extension;
+static int ett_tetra_T_subscriber_class;
+static int ett_tetra_T_energy_saving_mode;
+static int ett_tetra_T_scch_info;
+static int ett_tetra_T_type3;
+static int ett_tetra_T_type3_elements;
+static int ett_tetra_T_new_ra;
+static int ett_tetra_T_group_identity_location_accept;
+static int ett_tetra_T_group_predefined_lifetime;
+static int ett_tetra_T_group_identity_downlink;
+static int ett_tetra_T_proprietary;
+static int ett_tetra_D_LOCATION_UPDATE_REJECT;
+static int ett_tetra_U_MM_STATUS;
+static int ett_tetra_D_MM_STATUS;
+static int ett_tetra_U_CMCE_PDU;
+static int ett_tetra_U_RELEASE;
+static int ett_tetra_U_SDS_DATA;
+static int ett_tetra_T_called_party_type_identifier;
+static int ett_tetra_T_short_data_type_identifier;
+static int ett_tetra_U_STATUS;
+static int ett_tetra_T_called_party_type_identifier_01;
+static int ett_tetra_U_INFO;
+static int ett_tetra_D_CMCE_PDU;
+static int ett_tetra_D_SDS_DATA;
+static int ett_tetra_T_calling_party_type_identifier;
+static int ett_tetra_T_short_data_type_identifier_01;
+static int ett_tetra_D_STATUS;
+static int ett_tetra_T_calling_party_type_identifier_01;
+static int ett_tetra_D_DISCONNECT;
+static int ett_tetra_D_INFO;
+static int ett_tetra_D_TX_WAIT;
+static int ett_tetra_D_TX_CONTINUE;
+static int ett_tetra_U_LOCATION_UPDATE_DEMAND;
+static int ett_tetra_T_cipher_control;
+static int ett_tetra_T_optional_elements_06;
+static int ett_tetra_T_type2_parameters_04;
+static int ett_tetra_T_class_of_MS;
+static int ett_tetra_T_energy_saving_mode_01;
+static int ett_tetra_T_la_information;
+static int ett_tetra_T_ssi_01;
+static int ett_tetra_T_address_extension_01;
+static int ett_tetra_T_type3_01;
+static int ett_tetra_T_type3_elements_01;
+static int ett_tetra_T_group_identity_location_demand;
+static int ett_tetra_T_group_report_response;
+static int ett_tetra_T_group_identity_uplink;
+static int ett_tetra_T_proprietary_01;
+static int ett_tetra_U_ATTACH_DETACH_GROUP_IDENTITY;
+static int ett_tetra_T_optional_elements_07;
+static int ett_tetra_T_type2_element;
+static int ett_tetra_T_type3_02;
+static int ett_tetra_T_type3_elements_02;
+static int ett_tetra_U_ATTACH_DETACH_GROUP_IDENTITY_ACK;
+static int ett_tetra_T_optional_elements_08;
+static int ett_tetra_T_type2_element_01;
+static int ett_tetra_T_type3_03;
+static int ett_tetra_T_type3_elements_03;
+static int ett_tetra_U_SETUP;
+static int ett_tetra_T_optional_elements_09;
+static int ett_tetra_T_type2_parameters_05;
+static int ett_tetra_T_external_subscriber_number;
+static int ett_tetra_T_prop;
+static int ett_tetra_Basic_service_information;
+static int ett_tetra_U_ALERT;
+static int ett_tetra_T_optional_elements_10;
+static int ett_tetra_T_type2_parameters_06;
+static int ett_tetra_T_basic_service_information;
+static int ett_tetra_T_prop_01;
+static int ett_tetra_U_CONNECT;
+static int ett_tetra_T_optional_elements_11;
+static int ett_tetra_T_type2_parameters_07;
+static int ett_tetra_T_basic_service_information_01;
+static int ett_tetra_T_prop_02;
+static int ett_tetra_U_TX_CEASED;
+static int ett_tetra_T_optional_elements_12;
+static int ett_tetra_T_type2_parameters_08;
+static int ett_tetra_T_prop_03;
+static int ett_tetra_U_TX_DEMAND;
+static int ett_tetra_T_optional_elements_13;
+static int ett_tetra_T_type2_parameters_09;
+static int ett_tetra_T_prop_04;
+static int ett_tetra_U_DISCONNECT;
+static int ett_tetra_T_optional_elements_14;
+static int ett_tetra_T_type2_parameters_10;
+static int ett_tetra_T_prop_05;
+static int ett_tetra_U_CALL_RESTORE;
+static int ett_tetra_T_optional_elements_15;
+static int ett_tetra_T_type2_parameters_11;
+static int ett_tetra_T_prop_06;
+static int ett_tetra_D_SETUP;
+static int ett_tetra_T_optional_elements_16;
+static int ett_tetra_T_type2_parameters_12;
+static int ett_tetra_T_calling_party_address;
+static int ett_tetra_T_external_subscriber_number_01;
+static int ett_tetra_T_prop_07;
+static int ett_tetra_D_CALL_PROCEEDING;
+static int ett_tetra_T_optional_elements_17;
+static int ett_tetra_T_type2_parameters_13;
+static int ett_tetra_T_basic_service_information_02;
+static int ett_tetra_T_call_status;
+static int ett_tetra_T_notification_indicator;
+static int ett_tetra_T_prop_08;
+static int ett_tetra_D_ALERT;
+static int ett_tetra_T_optional_elements_18;
+static int ett_tetra_T_type2_parameters_14;
+static int ett_tetra_T_basic_service_infomation;
+static int ett_tetra_T_notification_indicator_01;
+static int ett_tetra_T_prop_09;
+static int ett_tetra_D_CONNECT;
+static int ett_tetra_T_optional_elements_19;
+static int ett_tetra_T_type2_parameters_15;
+static int ett_tetra_T_call_priority;
+static int ett_tetra_T_basic_service_information_03;
+static int ett_tetra_T_temporary_address;
+static int ett_tetra_T_notification_indicator_02;
+static int ett_tetra_T_prop_10;
+static int ett_tetra_D_CONNECT_ACK;
+static int ett_tetra_T_optional_elements_20;
+static int ett_tetra_T_type2_parameters_16;
+static int ett_tetra_T_notification_indicator_03;
+static int ett_tetra_T_prop_11;
+static int ett_tetra_D_RELEASE;
+static int ett_tetra_T_optional_elements_21;
+static int ett_tetra_T_type2_parameters_17;
+static int ett_tetra_T_notification_indicator_04;
+static int ett_tetra_T_prop_12;
+static int ett_tetra_D_CALL_RESTORE;
+static int ett_tetra_T_optional_elements_22;
+static int ett_tetra_T_type2_parameters_18;
+static int ett_tetra_T_new_call_identifier;
+static int ett_tetra_T_call_time_out;
+static int ett_tetra_T_call_status_01;
+static int ett_tetra_T_modify;
+static int ett_tetra_T_notification_indicator_05;
+static int ett_tetra_T_prop_13;
+static int ett_tetra_D_TX_CEASED;
+static int ett_tetra_T_optional_elements_23;
+static int ett_tetra_T_type2_parameters_19;
+static int ett_tetra_T_notification_indicator_06;
+static int ett_tetra_T_prop_14;
+static int ett_tetra_D_TX_GRANTED;
+static int ett_tetra_D_ATTACH_DETACH_GROUP_IDENTITY;
+static int ett_tetra_T_optional_elements_24;
+static int ett_tetra_T_type2_element_02;
+static int ett_tetra_T_type3_04;
+static int ett_tetra_T_type3_elements_04;
+static int ett_tetra_D_ATTACH_DETACH_GROUP_IDENTITY_ACK;
+static int ett_tetra_T_optional_elements_25;
+static int ett_tetra_T_type2_element_03;
+static int ett_tetra_T_type3_05;
+static int ett_tetra_T_type3_elements_05;
+static int ett_tetra_Calling_party_address_type;
+static int ett_tetra_T_called_party_ssi_extension;
+static int ett_tetra_Proprietary;
+static int ett_tetra_T_data_01;
+static int ett_tetra_Type1;
+static int ett_tetra_Type2;
+static int ett_tetra_Modify_type;
static expert_field ei_tetra_channels_incorrect;
diff --git a/epan/dissectors/packet-tftp.c b/epan/dissectors/packet-tftp.c
index b6517db38c..6e1a50e897 100644
--- a/epan/dissectors/packet-tftp.c
+++ b/epan/dissectors/packet-tftp.c
@@ -154,7 +154,7 @@ static const fragment_items tftp_frag_items = {
void proto_reg_handoff_tftp (void);
/* User definable values */
-static range_t *global_tftp_port_range = NULL;
+static range_t *global_tftp_port_range;
/* minimum length is an ACK message of 4 bytes */
#define MIN_HDR_LEN 4
@@ -208,7 +208,7 @@ static const value_string tftp_error_code_vals[] = {
static int tftp_eo_tap;
/* Preference setting - defragment fragmented TFTP files */
-static gboolean tftp_defragment = FALSE;
+static bool tftp_defragment;
/* Used for TFTP Export Object feature */
typedef struct _tftp_eo_t {
diff --git a/epan/dissectors/packet-thread.c b/epan/dissectors/packet-thread.c
index a22e71c385..fe5ee7272f 100644
--- a/epan/dissectors/packet-thread.c
+++ b/epan/dissectors/packet-thread.c
@@ -1024,12 +1024,12 @@ static int
dissect_thread_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
/* Preferences */
-static gboolean thread_use_pan_id_in_key = FALSE;
-static const gchar *thread_seq_ctr_str = NULL;
-static gboolean thread_auto_acq_seq_ctr = TRUE;
+static bool thread_use_pan_id_in_key;
+static const gchar *thread_seq_ctr_str;
+static bool thread_auto_acq_seq_ctr = true;
-static gboolean thread_seq_ctr_acqd = FALSE;
+static gboolean thread_seq_ctr_acqd;
static guint8 thread_seq_ctr_bytes[4];
static const guint8 thread_well_known_key[IEEE802154_CIPHER_SIZE] =
{ 0x78, 0x58, 0x16, 0x86, 0xfd, 0xb4, 0x58, 0x0f, 0xb0, 0x92, 0x54, 0x6a, 0xec, 0xbd, 0x15, 0x66 };
diff --git a/epan/dissectors/packet-thrift.c b/epan/dissectors/packet-thrift.c
index 5205f18e7c..f24a08c916 100644
--- a/epan/dissectors/packet-thrift.c
+++ b/epan/dissectors/packet-thrift.c
@@ -71,11 +71,11 @@ void proto_reg_handoff_thrift(void);
static dissector_handle_t thrift_handle;
static dissector_handle_t thrift_http_handle;
-static gboolean framed_desegment = TRUE;
-static guint thrift_tls_port = 0;
+static bool framed_desegment = true;
+static guint thrift_tls_port;
-static gboolean show_internal_thrift_fields = FALSE;
-static gboolean try_generic_if_sub_dissector_fails = FALSE;
+static bool show_internal_thrift_fields;
+static bool try_generic_if_sub_dissector_fails;
static guint nested_type_depth = 25;
static dissector_table_t thrift_method_name_dissector_table;
@@ -110,7 +110,7 @@ static const int TBP_THRIFT_LINEAR_LEN = 5; /* Elements type + number of element
* - T_I8
* - T_DOUBLE (endianness is inverted, though)
*/
-static const int TCP_THRIFT_DELTA_NOT_SET = 0;
+static const int TCP_THRIFT_DELTA_NOT_SET;
static const int TCP_THRIFT_LENGTH_LARGER = 0xf;
static const int TCP_THRIFT_MAP_TYPES_LEN = 1; /* High nibble = key type, low nibble = value type. */
static const int TCP_THRIFT_NIBBLE_SHIFT = 4;
diff --git a/epan/dissectors/packet-tibia.c b/epan/dissectors/packet-tibia.c
index f523fc80d7..6f9223e02b 100644
--- a/epan/dissectors/packet-tibia.c
+++ b/epan/dissectors/packet-tibia.c
@@ -114,12 +114,12 @@ static int dissect_tibia_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
static dissector_handle_t tibia_handle;
/* preferences */
-static gboolean try_otserv_key = TRUE,
- show_char_name = TRUE,
- show_acc_info = TRUE,
- show_xtea_key = FALSE,
- dissect_game_commands = FALSE,
- reassemble_tcp_segments = TRUE;
+static bool try_otserv_key = true,
+ show_char_name = true,
+ show_acc_info = true,
+ show_xtea_key = false,
+ dissect_game_commands = false,
+ reassemble_tcp_segments = true;
/* User Access Tables */
#if HAVE_LIBGNUTLS
@@ -146,9 +146,9 @@ UAT_CSTRING_CB_DEF(rsakeylist_uats, password, struct rsakeys_assoc)
static void rsakey_free(void *_rsakey);
-static uat_t *rsakeys_uat = NULL;
-static struct rsakeys_assoc *rsakeylist_uats = NULL;
-static guint nrsakeys = 0;
+static uat_t *rsakeys_uat;
+static struct rsakeys_assoc *rsakeylist_uats;
+static guint nrsakeys;
#endif
#define XTEA_KEY_LEN 16
@@ -168,9 +168,9 @@ static bool xteakeys_uat_fld_key_chk_cb(void *, const char *, guint, const void
UAT_DEC_CB_DEF(xteakeylist_uats, framenum, struct xteakeys_assoc)
UAT_CSTRING_CB_DEF(xteakeylist_uats, key, struct xteakeys_assoc)
-static uat_t *xteakeys_uat = NULL;
-static struct xteakeys_assoc *xteakeylist_uats = NULL;
-static guint nxteakeys = 0;
+static uat_t *xteakeys_uat;
+static struct xteakeys_assoc *xteakeylist_uats;
+static guint nxteakeys;
#define COND_POISONED 0x00000001
#define COND_BURNING 0x00000002
@@ -2692,7 +2692,7 @@ proto_register_tibia(void)
xteakeys = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free);
/* TODO best way to store this in source? */
- const char sexp[] =
+ static const char sexp[] =
"(private-key (rsa"
"(n #9b646903b45b07ac956568d87353bd7165139dd7940703b03e6dd079399661b4a837aa60561d7ccb9452fa0080594909882ab5bca58a1a1b35f8b1059b72b1212611c6152ad3dbb3cfbee7adc142a75d3d75971509c321c5c24a5bd51fd460f01b4e15beb0de1930528a5d3f15c1e3cbf5c401d6777e10acaab33dbe8d5b7ff5#)"
"(e #010001#)"
diff --git a/epan/dissectors/packet-tipc.c b/epan/dissectors/packet-tipc.c
index 88587c2fab..f1bda3b793 100644
--- a/epan/dissectors/packet-tipc.c
+++ b/epan/dissectors/packet-tipc.c
@@ -12,7 +12,8 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
* Protocol ref:
- * http://tipc.sourceforge.net/
+ * https://tipc.sourceforge.net/
+ * https://tipc.sourceforge.net/protocol.html
*/
@@ -187,14 +188,14 @@ static expert_field ei_tipc_max_recursion_depth_reached;
static int tipc_address_type = -1;
/* protocol preferences */
-static gboolean tipc_defragment = TRUE;
-static gboolean dissect_tipc_data = TRUE;
-static gboolean try_heuristic_first = FALSE;
+static bool tipc_defragment = true;
+static bool dissect_tipc_data = true;
+static bool try_heuristic_first;
#define V2_AS_ALL 0x1
#define V2_AS_1_6 0x2
#define V2_AS_1_7 0x4
static gint handle_v2_as = V2_AS_ALL;
-static gboolean tipc_tcp_desegment = TRUE;
+static bool tipc_tcp_desegment = true;
static dissector_handle_t tipc_handle;
static dissector_handle_t tipc_tcp_handle;
@@ -859,7 +860,8 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
guint msg_no = 0;
guint32 msg_in_bundle_size;
guint8 msg_in_bundle_user;
- gint b_inst_strlen, padlen;
+ guint32 b_inst_strlen;
+ gint padlen;
/* for fragmented messages */
gint len, reported_len;
@@ -1096,17 +1098,23 @@ dissect_tipc_v2_internal_msg(tvbuff_t *tipc_tvb, proto_tree *tipc_tree, packet_i
if ((message_type == TIPCv2_RESET_MSG)
|| ((message_type == TIPCv2_STATE_MSG) && ((msg_size-(orig_hdr_size*4)) != 0))){ /* is allowed */
- proto_tree_add_item(tipc_tree, hf_tipcv2_bearer_instance, tipc_tvb, offset, -1, ENC_ASCII);
- /* the bearer instance string is padded with \0 to the next word boundary */
- b_inst_strlen = tvb_strsize(tipc_tvb, offset);
+ proto_tree_add_item_ret_length(tipc_tree, hf_tipcv2_bearer_instance, tipc_tvb, offset, -1, ENC_ASCII, &b_inst_strlen);
offset += b_inst_strlen;
- if ((padlen = (4-b_inst_strlen%4)) > 0) {
+ /* the bearer instance string is padded with \0 to the next word boundary */
+ if ((padlen = ((b_inst_strlen%4)?(4-(b_inst_strlen%4)):0)) > 0) {
proto_tree_add_bytes_format_value(tipc_tree, hf_tipcv2_padding, tipc_tvb, offset, padlen, NULL, "%d byte%c", padlen, (padlen!=1?'s':0));
offset += padlen;
}
- if ((offset-msg_size) > 0) {
- proto_tree_add_bytes_format_value(tipc_tree, hf_tipcv2_filler_mtu_discovery, tipc_tvb, offset, -1, NULL,
- "%d byte%c", tvb_reported_length_remaining(tipc_tvb, offset), (padlen!=1?'s':0));
+ /*
+ * If there's any data left, show it as
+ * padding for MTU discovery.
+ */
+ if ((guint32)offset < msg_size) {
+ guint32 filler_len;
+
+ filler_len = msg_size - (guint32)offset;
+ proto_tree_add_bytes_format_value(tipc_tree, hf_tipcv2_filler_mtu_discovery, tipc_tvb, offset, filler_len, NULL,
+ "%d byte%c", filler_len, (filler_len!=1?'s':0));
}
}
break;
diff --git a/epan/dissectors/packet-tls-utils.c b/epan/dissectors/packet-tls-utils.c
index ce444aa0f4..3fcd82562f 100644
--- a/epan/dissectors/packet-tls-utils.c
+++ b/epan/dissectors/packet-tls-utils.c
@@ -64,6 +64,8 @@
*/
#define IS_GREASE_QUIC(x) ((x) > 27 ? ((((x) - 27) % 31) == 0) : 0)
+#define DTLS13_MAX_EPOCH 10
+
/* Lookup tables {{{ */
const value_string ssl_version_short_names[] = {
{ SSLV2_VERSION, "SSLv2" },
@@ -136,6 +138,9 @@ static const value_string ssl_version_ja4_names[] = {
{ TLSV1DOT1_VERSION, "11" },
{ TLSV1DOT2_VERSION, "12" },
{ TLSV1DOT3_VERSION, "13" },
+ { DTLSV1DOT0_VERSION, "d1" },
+ { DTLSV1DOT2_VERSION, "d2" },
+ { DTLSV1DOT3_VERSION, "d3" },
{ 0x00, NULL }
};
@@ -1246,7 +1251,7 @@ static const value_string ssl_31_ciphersuite[] = {
{ 0xCCAC, "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256" },
{ 0xCCAD, "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256" },
{ 0xCCAE, "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256" },
- /* https://tools.ietf.org/html/draft-ietf-tls-ecdhe-psk-aead */
+ /* RFC 8442 */
{ 0xD001, "TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256" },
{ 0xD002, "TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384" },
{ 0xD003, "TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256" },
@@ -1414,6 +1419,18 @@ const value_string tls13_key_update_request[] = {
};
/* RFC 5246 7.4.1.4.1 */
+/* https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml */
+/* Note that the TLS 1.3 SignatureScheme registry reserves all values
+ * with first octet 0x00-0x06 and all values with second octet 0x00-0x03
+ * for backwards compatiblilty with TLS 1.2 SignatureAndHashAlgorithm.
+ *
+ * RFC 8422 and RFC 9189 add official support in TLS 1.2 for some algorithms
+ * originally defined for TLS 1.3, and extend the TLS SignatureAlgorithm
+ * and TLS HashAlgorithm registries, but the new values are not compatible
+ * with all of the TLS 1.3-only SignatureSchemes. Adding those values could
+ * cause confusion if used to interpret one of those schemes in a
+ * signature_algorithms extension offered in a TLS 1.3 ClientHello.
+ */
const value_string tls_hash_algorithm[] = {
{ 0, "None" },
{ 1, "MD5" },
@@ -1422,7 +1439,14 @@ const value_string tls_hash_algorithm[] = {
{ 4, "SHA256" },
{ 5, "SHA384" },
{ 6, "SHA512" },
- { 7, "SM3" },
+#if 0
+ /* RFC 8422 adds this to the HashAlgorithm registry, but it really
+ * only applies to 0x0807 and 0x0808, not for other TLS 1.3
+ * SignatureSchemes with 0x08 in the octet used for Hash in TLS 1.2.
+ * E.g., we don't want to display this for 0x0806 rsa_pss_rsae_sha512.
+ */
+ { 8, "Intrinsic" },
+#endif
{ 0, NULL }
};
@@ -1431,7 +1455,13 @@ const value_string tls_signature_algorithm[] = {
{ 1, "RSA" },
{ 2, "DSA" },
{ 3, "ECDSA" },
- { 4, "SM2" },
+#if 0
+ /* As above. */
+ { 7, "ED25519" },
+ { 8, "ED448" },
+ { 64, "GOSTR34102012_256" },
+ { 65, "GOSTR34102012_512" },
+#endif
{ 0, NULL }
};
@@ -1532,7 +1562,7 @@ const value_string tls_cert_status_type[] = {
};
/* Generated by tools/make-tls-ct-logids.py
- * Last-Modified Sat, 27 Jan 2024 13:28:00 GMT, 138 entries. */
+ * Last-Modified Sat, 18 May 2024 13:28:00 GMT, 146 entries. */
static const bytes_string ct_logids[] = {
{ (const uint8_t[]){
0xb2, 0x1e, 0x05, 0xcc, 0x8b, 0xa2, 0xcd, 0x8a, 0x20, 0x4e, 0x87,
@@ -1895,6 +1925,54 @@ static const bytes_string ct_logids[] = {
},
32, "DigiCert Nessie2025 Log" },
{ (const uint8_t[]){
+ 0xb6, 0x9d, 0xdc, 0xbc, 0x3c, 0x1a, 0xbd, 0xef, 0x6f, 0x9f, 0xd6,
+ 0x0c, 0x88, 0xb1, 0x06, 0x7b, 0x77, 0xf0, 0x82, 0x68, 0x8b, 0x2d,
+ 0x78, 0x65, 0xd0, 0x4b, 0x39, 0xab, 0xe9, 0x27, 0xa5, 0x75,
+ },
+ 32, "DigiCert 'Wyvern 2024h1' Log" },
+ { (const uint8_t[]){
+ 0x0c, 0x2a, 0xef, 0x2c, 0x4a, 0x5b, 0x98, 0x83, 0xd4, 0xdd, 0xa3,
+ 0x82, 0xfe, 0x50, 0xfb, 0x51, 0x88, 0xb3, 0xe9, 0x73, 0x33, 0xa1,
+ 0xec, 0x53, 0xa0, 0x9d, 0xc9, 0xa7, 0x9d, 0x0d, 0x08, 0x20,
+ },
+ 32, "DigiCert 'Wyvern 2024h2' Log" },
+ { (const uint8_t[]){
+ 0x73, 0x20, 0x22, 0x0f, 0x08, 0x16, 0x8a, 0xf9, 0xf3, 0xc4, 0xa6,
+ 0x8b, 0x0a, 0xb2, 0x6a, 0x9a, 0x4a, 0x00, 0xee, 0xf5, 0x77, 0x85,
+ 0x8a, 0x08, 0x4d, 0x05, 0x00, 0xd4, 0xa5, 0x42, 0x44, 0x59,
+ },
+ 32, "DigiCert 'Wyvern2025h1' Log" },
+ { (const uint8_t[]){
+ 0xed, 0x3c, 0x4b, 0xd6, 0xe8, 0x06, 0xc2, 0xa4, 0xa2, 0x00, 0x57,
+ 0xdb, 0xcb, 0x24, 0xe2, 0x38, 0x01, 0xdf, 0x51, 0x2f, 0xed, 0xc4,
+ 0x86, 0xc5, 0x70, 0x0f, 0x20, 0xdd, 0xb7, 0x3e, 0x3f, 0xe0,
+ },
+ 32, "DigiCert 'Wyvern 2025h2' Log" },
+ { (const uint8_t[]){
+ 0xdb, 0x07, 0x6c, 0xde, 0x6a, 0x8b, 0x78, 0xec, 0x58, 0xd6, 0x05,
+ 0x64, 0x96, 0xeb, 0x6a, 0x26, 0xa8, 0xc5, 0x9e, 0x72, 0x12, 0x93,
+ 0xe8, 0xac, 0x03, 0x27, 0xdd, 0xde, 0x89, 0xdb, 0x5a, 0x2a,
+ },
+ 32, "DigiCert 'Sphinx 2024h1' Log" },
+ { (const uint8_t[]){
+ 0xdc, 0xc9, 0x5e, 0x6f, 0xa2, 0x99, 0xb9, 0xb0, 0xfd, 0xbd, 0x6c,
+ 0xa6, 0xa3, 0x6e, 0x1d, 0x72, 0xc4, 0x21, 0x2f, 0xdd, 0x1e, 0x0f,
+ 0x47, 0x55, 0x3a, 0x36, 0xd6, 0xcf, 0x1a, 0xd1, 0x1d, 0x8d,
+ },
+ 32, "DigiCert 'Sphinx 2024h2' Log" },
+ { (const uint8_t[]){
+ 0xde, 0x85, 0x81, 0xd7, 0x50, 0x24, 0x7c, 0x6b, 0xcd, 0xcb, 0xaf,
+ 0x56, 0x37, 0xc5, 0xe7, 0x81, 0xc6, 0x4c, 0xe4, 0x6e, 0xd6, 0x17,
+ 0x63, 0x9f, 0x8f, 0x34, 0xa7, 0x26, 0xc9, 0xe2, 0xbd, 0x37,
+ },
+ 32, "DigiCert 'Sphinx 2025h1' Log" },
+ { (const uint8_t[]){
+ 0xa4, 0x42, 0xc5, 0x06, 0x49, 0x60, 0x61, 0x54, 0x8f, 0x0f, 0xd4,
+ 0xea, 0x9c, 0xfb, 0x7a, 0x2d, 0x26, 0x45, 0x4d, 0x87, 0xa9, 0x7f,
+ 0x2f, 0xdf, 0x45, 0x59, 0xf6, 0x27, 0x4f, 0x3a, 0x84, 0x54,
+ },
+ 32, "DigiCert 'Sphinx 2025h2' Log" },
+ { (const uint8_t[]){
0xdd, 0xeb, 0x1d, 0x2b, 0x7a, 0x0d, 0x4f, 0xa6, 0x20, 0x8b, 0x81,
0xad, 0x81, 0x68, 0x70, 0x7e, 0x2e, 0x8e, 0x9d, 0x01, 0xd5, 0x5c,
0x88, 0x8d, 0x3d, 0x11, 0xc4, 0xcd, 0xb6, 0xec, 0xbe, 0xcc,
@@ -2716,6 +2794,10 @@ gint ssl_get_keyex_alg(gint cipher)
case 0xccac:
case 0xe418:
case 0xe419:
+ case 0xd001:
+ case 0xd002:
+ case 0xd003:
+ case 0xd005:
return KEX_ECDHE_PSK;
case 0xc010:
case 0xc011:
@@ -2858,7 +2940,7 @@ gint ssl_get_keyex_alg(gint cipher)
/* }}} */
}
-static wmem_list_t *connection_id_session_list = NULL;
+static wmem_list_t *connection_id_session_list;
void
ssl_init_cid_list(void) {
@@ -3097,10 +3179,19 @@ ssl_md_reset(SSL_MD* md)
#define SSL_SHA_CTX gcry_md_hd_t
#define SSL_MD5_CTX gcry_md_hd_t
-static inline void
+static inline gint
ssl_sha_init(SSL_SHA_CTX* md)
{
- gcry_md_open(md,GCRY_MD_SHA1, 0);
+ gcry_error_t err;
+ const char *err_str, *err_src;
+ err = gcry_md_open(md, GCRY_MD_SHA1, 0);
+ if (err != 0) {
+ err_str = gcry_strerror(err);
+ err_src = gcry_strsource(err);
+ ssl_debug_printf("ssl_sha_init(): gcry_md_open failed %s/%s", err_str, err_src);
+ return -1;
+ }
+ return 0;
}
static inline void
ssl_sha_update(SSL_SHA_CTX* md, guchar* data, gint len)
@@ -3129,7 +3220,16 @@ ssl_sha_cleanup(SSL_SHA_CTX* md)
static inline gint
ssl_md5_init(SSL_MD5_CTX* md)
{
- return gcry_md_open(md,GCRY_MD_MD5, 0);
+ gcry_error_t err;
+ const char *err_str, *err_src;
+ err = gcry_md_open(md,GCRY_MD_MD5, 0);
+ if (err != 0) {
+ err_str = gcry_strerror(err);
+ err_src = gcry_strsource(err);
+ ssl_debug_printf("ssl_md5_init(): gcry_md_open failed %s/%s", err_str, err_src);
+ return -1;
+ }
+ return 0;
}
static inline void
ssl_md5_update(SSL_MD5_CTX* md, guchar* data, gint len)
@@ -3199,6 +3299,7 @@ ssl_cipher_init(gcry_cipher_hd_t *cipher, gint algo, guchar* sk,
GCRY_CIPHER_MODE_CCM,
GCRY_CIPHER_MODE_CCM,
GCRY_CIPHER_MODE_POLY1305,
+ GCRY_CIPHER_MODE_ECB, /* used for DTLSv1.3 seq number encryption */
};
gint err;
if (algo == -1) {
@@ -3560,6 +3661,10 @@ static const SslCipherSuite cipher_suites[]={
{0xCCAC,KEX_ECDHE_PSK, ENC_CHACHA20, DIG_SHA256, MODE_POLY1305 }, /* TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 */
{0xCCAD,KEX_DHE_PSK, ENC_CHACHA20, DIG_SHA256, MODE_POLY1305 }, /* TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 */
{0xCCAE,KEX_RSA_PSK, ENC_CHACHA20, DIG_SHA256, MODE_POLY1305 }, /* TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 */
+ {0xD001,KEX_ECDHE_PSK, ENC_AES, DIG_SHA256, MODE_GCM}, /* TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 */
+ {0xD002,KEX_ECDHE_PSK, ENC_AES256, DIG_SHA384, MODE_GCM}, /* TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 */
+ {0xD003,KEX_ECDHE_PSK, ENC_AES, DIG_SHA256, MODE_CCM_8}, /* TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 */
+ {0xD005,KEX_ECDHE_PSK, ENC_AES, DIG_SHA256, MODE_CCM}, /* TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 */
/* GM */
{0xe001,KEX_ECDHE_SM2, ENC_SM1, DIG_SM3, MODE_CBC}, /* ECDHE_SM1_SM3 */
{0xe003,KEX_ECC_SM2, ENC_SM1, DIG_SM3, MODE_CBC}, /* ECC_SM1_SM3 */
@@ -3822,14 +3927,16 @@ tls12_prf(gint md, StringInfo* secret, const gchar* usage,
return FALSE;
}
-static void
+static bool
ssl3_generate_export_iv(StringInfo *r1, StringInfo *r2,
StringInfo *out, guint out_len)
{
SSL_MD5_CTX md5;
guint8 tmp[16];
- ssl_md5_init(&md5);
+ if (ssl_md5_init(&md5) != 0) {
+ return FALSE;
+ }
ssl_md5_update(&md5,r1->data,r1->data_len);
ssl_md5_update(&md5,r2->data,r2->data_len);
ssl_md5_final(tmp,&md5);
@@ -3838,6 +3945,7 @@ ssl3_generate_export_iv(StringInfo *r1, StringInfo *r2,
DISSECTOR_ASSERT(out_len <= sizeof(tmp));
ssl_data_set(out, tmp, out_len);
ssl_print_string("export iv", out);
+ return TRUE;
}
static gboolean
@@ -3850,8 +3958,13 @@ ssl3_prf(StringInfo* secret, const gchar* usage,
gint i = 0,j;
guint8 buf[20];
- ssl_sha_init(&sha);
- ssl_md5_init(&md5);
+ if (ssl_sha_init(&sha) != 0) {
+ return FALSE;
+ }
+ if (ssl_md5_init(&md5) != 0) {
+ ssl_sha_cleanup(&sha);
+ return FALSE;
+ }
for (off = 0; off < out_len; off += 16) {
guchar outbuf[16];
i++;
@@ -3938,12 +4051,14 @@ static gint tls_handshake_hash(SslDecryptSession* ssl, StringInfo* out)
if (ssl_data_alloc(out, 36) < 0)
return -1;
- ssl_md5_init(&md5);
+ if (ssl_md5_init(&md5) != 0)
+ return -1;
ssl_md5_update(&md5,ssl->handshake_data.data,ssl->handshake_data.data_len);
ssl_md5_final(out->data,&md5);
ssl_md5_cleanup(&md5);
- ssl_sha_init(&sha);
+ if (ssl_sha_init(&sha) != 0)
+ return -1;
ssl_sha_update(&sha,ssl->handshake_data.data,ssl->handshake_data.data_len);
ssl_sha_final(out->data+16,&sha);
ssl_sha_cleanup(&sha);
@@ -3956,7 +4071,8 @@ static gint tls12_handshake_hash(SslDecryptSession* ssl, gint md, StringInfo* ou
guint8 tmp[48];
guint len;
- ssl_md_init(&mc, md);
+ if (ssl_md_init(&mc, md) != 0)
+ return -1;
ssl_md_update(&mc,ssl->handshake_data.data,ssl->handshake_data.data_len);
ssl_md_final(&mc, tmp, &len);
ssl_md_cleanup(&mc);
@@ -3972,10 +4088,12 @@ static gint tls12_handshake_hash(SslDecryptSession* ssl, gint md, StringInfo* ou
* inlined and removed once support for draft 19 and before is dropped.
*/
static inline const char *
-tls13_hkdf_label_prefix(guint8 tls13_draft_version)
+tls13_hkdf_label_prefix(SslDecryptSession *ssl_session)
{
- if (tls13_draft_version && tls13_draft_version < 20) {
+ if (ssl_session->session.tls13_draft_version && ssl_session->session.tls13_draft_version < 20) {
return "TLS 1.3, ";
+ } else if (ssl_session->session.version == DTLSV1DOT3_VERSION) {
+ return "dtls13";
} else {
return "tls13 ";
}
@@ -4179,7 +4297,7 @@ ssl_decoder_destroy_cb(wmem_allocator_t *, wmem_cb_event_t, void *);
static SslDecoder*
ssl_create_decoder(const SslCipherSuite *cipher_suite, gint cipher_algo,
- gint compression, guint8 *mk, guint8 *sk, guint8 *iv, guint iv_length)
+ gint compression, guint8 *mk, guint8 *sk, guint8 *sn_key, guint8 *iv, guint iv_length)
{
SslDecoder *dec;
ssl_cipher_mode_t mode = cipher_suite->mode;
@@ -4212,6 +4330,29 @@ ssl_create_decoder(const SslCipherSuite *cipher_suite, gint cipher_algo,
return NULL;
}
+ if (cipher_suite->enc != ENC_NULL && sn_key != NULL) {
+ if (cipher_suite->enc == ENC_AES || cipher_suite->enc == ENC_AES256) {
+ mode = MODE_ECB;
+ } else if (cipher_suite->enc == ENC_CHACHA20) {
+ mode = MODE_STREAM;
+ } else {
+ ssl_debug_printf("not supported encryption algorithm for DTLSv1.3\n");
+ return NULL;
+ }
+
+ if (ssl_cipher_init(&dec->sn_evp, cipher_algo, sn_key, NULL, mode) < 0) {
+ ssl_debug_printf("%s: can't create cipher id:%d mode:%d for seq number decryption\n", G_STRFUNC,
+ cipher_algo, MODE_ECB);
+ ssl_cipher_cleanup(&dec->evp);
+ dec->evp = NULL;
+ return NULL;
+ }
+ } else {
+ dec->sn_evp = NULL;
+ }
+
+ dec->dtls13_aad.data = NULL;
+ dec->dtls13_aad.data_len = 0;
ssl_debug_printf("decoder initialized (digest len %d)\n", ssl_cipher_suite_dig(cipher_suite)->len);
return dec;
}
@@ -4223,6 +4364,8 @@ ssl_decoder_destroy_cb(wmem_allocator_t *allocator _U_, wmem_cb_event_t event _U
if (dec->evp)
ssl_cipher_cleanup(&dec->evp);
+ if (dec->sn_evp)
+ ssl_cipher_cleanup(&dec->sn_evp);
#ifdef HAVE_ZLIB
if (dec->decomp != NULL && dec->decomp->compression == 1 /* DEFLATE */)
@@ -4403,13 +4546,13 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session)
guint8 *c_wk = NULL, *s_wk = NULL, *c_mk = NULL, *s_mk = NULL;
const SslCipherSuite *cipher_suite = ssl_session->cipher_suite;
- /* TLS 1.3 is handled directly in tls13_change_key. */
- if (ssl_session->session.version == TLSV1DOT3_VERSION) {
+ /* (D)TLS 1.3 is handled directly in tls13_change_key. */
+ if (ssl_session->session.version == TLSV1DOT3_VERSION || ssl_session->session.version == DTLSV1DOT3_VERSION) {
ssl_debug_printf("%s: detected TLS 1.3. Should not have been called!\n", G_STRFUNC);
return -1;
}
- /* check for enough info to proced */
+ /* check for enough info to proceed */
guint need_all = SSL_CIPHER|SSL_CLIENT_RANDOM|SSL_SERVER_RANDOM|SSL_VERSION;
guint need_any = SSL_MASTER_SECRET | SSL_PRE_MASTER_SECRET;
if (((ssl_session->state & need_all) != need_all) || ((ssl_session->state & need_any) == 0)) {
@@ -4577,11 +4720,15 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session)
iv_s.data = _iv_s;
ssl_debug_printf("%s ssl3_generate_export_iv\n", G_STRFUNC);
- ssl3_generate_export_iv(&ssl_session->client_random,
- &ssl_session->server_random, &iv_c, write_iv_len);
+ if (!ssl3_generate_export_iv(&ssl_session->client_random,
+ &ssl_session->server_random, &iv_c, write_iv_len)) {
+ goto fail;
+ }
ssl_debug_printf("%s ssl3_generate_export_iv(2)\n", G_STRFUNC);
- ssl3_generate_export_iv(&ssl_session->server_random,
- &ssl_session->client_random, &iv_s, write_iv_len);
+ if (!ssl3_generate_export_iv(&ssl_session->server_random,
+ &ssl_session->client_random, &iv_s, write_iv_len)) {
+ goto fail;
+ }
}
else{
guint8 _iv_block[MAX_BLOCK_SIZE * 2];
@@ -4616,7 +4763,8 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session)
SSL_MD5_CTX md5;
ssl_debug_printf("%s MD5(client_random)\n", G_STRFUNC);
- ssl_md5_init(&md5);
+ if (ssl_md5_init(&md5) != 0)
+ goto fail;
ssl_md5_update(&md5,c_wk,encr_key_len);
ssl_md5_update(&md5,ssl_session->client_random.data,
ssl_session->client_random.data_len);
@@ -4626,7 +4774,8 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session)
ssl_md5_cleanup(&md5);
c_wk=_key_c;
- ssl_md5_init(&md5);
+ if (ssl_md5_init(&md5) != 0)
+ goto fail;
ssl_debug_printf("%s MD5(server_random)\n", G_STRFUNC);
ssl_md5_update(&md5,s_wk,encr_key_len);
ssl_md5_update(&md5,ssl_session->server_random.data,
@@ -4682,13 +4831,13 @@ ssl_generate_keyring_material(SslDecryptSession*ssl_session)
create_decoders:
/* create both client and server ciphers*/
ssl_debug_printf("%s ssl_create_decoder(client)\n", G_STRFUNC);
- ssl_session->client_new = ssl_create_decoder(cipher_suite, cipher_algo, ssl_session->session.compression, c_mk, c_wk, c_iv, write_iv_len);
+ ssl_session->client_new = ssl_create_decoder(cipher_suite, cipher_algo, ssl_session->session.compression, c_mk, c_wk, NULL, c_iv, write_iv_len);
if (!ssl_session->client_new) {
ssl_debug_printf("%s can't init client decoder\n", G_STRFUNC);
goto fail;
}
ssl_debug_printf("%s ssl_create_decoder(server)\n", G_STRFUNC);
- ssl_session->server_new = ssl_create_decoder(cipher_suite, cipher_algo, ssl_session->session.compression, s_mk, s_wk, s_iv, write_iv_len);
+ ssl_session->server_new = ssl_create_decoder(cipher_suite, cipher_algo, ssl_session->session.compression, s_mk, s_wk, NULL, s_iv, write_iv_len);
if (!ssl_session->server_new) {
ssl_debug_printf("%s can't init server decoder\n", G_STRFUNC);
goto fail;
@@ -4715,13 +4864,14 @@ tls13_generate_keys(SslDecryptSession *ssl_session, const StringInfo *secret, gb
{
gboolean success = FALSE;
guchar *write_key = NULL, *write_iv = NULL;
+ guchar *sn_key = NULL;
SslDecoder *decoder;
guint key_length, iv_length;
int hash_algo;
const SslCipherSuite *cipher_suite = ssl_session->cipher_suite;
int cipher_algo;
- if (ssl_session->session.version != TLSV1DOT3_VERSION) {
+ if ((ssl_session->session.version != TLSV1DOT3_VERSION) && (ssl_session->session.version != DTLSV1DOT3_VERSION)) {
ssl_debug_printf("%s only usable for TLS 1.3, not %#x!\n", G_STRFUNC,
ssl_session->session.version);
return FALSE;
@@ -4758,7 +4908,7 @@ tls13_generate_keys(SslDecryptSession *ssl_session, const StringInfo *secret, gb
iv_length = 12;
ssl_debug_printf("%s key_length %u iv_length %u\n", G_STRFUNC, key_length, iv_length);
- const char *label_prefix = tls13_hkdf_label_prefix(ssl_session->session.tls13_draft_version);
+ const char *label_prefix = tls13_hkdf_label_prefix(ssl_session);
if (!tls13_hkdf_expand_label(hash_algo, secret, label_prefix, "key", key_length, &write_key)) {
ssl_debug_printf("%s write_key expansion failed\n", G_STRFUNC);
return FALSE;
@@ -4768,11 +4918,21 @@ tls13_generate_keys(SslDecryptSession *ssl_session, const StringInfo *secret, gb
goto end;
}
+ if (ssl_session->session.version == DTLSV1DOT3_VERSION) {
+ if (!tls13_hkdf_expand_label(hash_algo, secret, label_prefix, "sn", key_length, &sn_key)) {
+ ssl_debug_printf("%s sn_key expansion failed\n", G_STRFUNC);
+ goto end;
+ }
+ }
+
ssl_print_data(is_from_server ? "Server Write Key" : "Client Write Key", write_key, key_length);
ssl_print_data(is_from_server ? "Server Write IV" : "Client Write IV", write_iv, iv_length);
+ if (ssl_session->session.version == DTLSV1DOT3_VERSION) {
+ ssl_print_data(is_from_server ? "Server Write SN" : "Client Write SN", sn_key, key_length);
+ }
ssl_debug_printf("%s ssl_create_decoder(%s)\n", G_STRFUNC, is_from_server ? "server" : "client");
- decoder = ssl_create_decoder(cipher_suite, cipher_algo, 0, NULL, write_key, write_iv, iv_length);
+ decoder = ssl_create_decoder(cipher_suite, cipher_algo, 0, NULL, write_key, sn_key, write_iv, iv_length);
if (!decoder) {
ssl_debug_printf("%s can't init %s decoder\n", G_STRFUNC, is_from_server ? "server" : "client");
goto end;
@@ -4794,6 +4954,8 @@ tls13_generate_keys(SslDecryptSession *ssl_session, const StringInfo *secret, gb
end:
wmem_free(NULL, write_key);
wmem_free(NULL, write_iv);
+ if (sn_key)
+ wmem_free(NULL, sn_key);
return success;
}
/* (Pre-)master secrets calculations }}} */
@@ -4984,7 +5146,7 @@ ssl3_check_mac(SslDecoder*decoder,int ct,guint8* data,
if(memcmp(mac,dgst,len))
return -1;
- return(0);
+ return 0;
}
static gint
@@ -5075,7 +5237,7 @@ dtls_check_mac(SslDecryptSession *ssl, SslDecoder*decoder, gint ct, guint8* data
if(memcmp(mac,buf,len))
return -1;
- return(0);
+ return 0;
}
/* Decryption integrity check }}} */
@@ -5132,7 +5294,7 @@ tls_decrypt_aead_record(SslDecryptSession *ssl, SslDecoder *decoder,
explicit_nonce = in;
ciphertext = explicit_nonce + EXPLICIT_NONCE_LEN;
ciphertext_len = inl - EXPLICIT_NONCE_LEN - auth_tag_len;
- } else if (version == TLSV1DOT3_VERSION || cipher_mode == MODE_POLY1305) {
+ } else if (version == TLSV1DOT3_VERSION || version == DTLSV1DOT3_VERSION || cipher_mode == MODE_POLY1305) {
if (inl < auth_tag_len) {
ssl_debug_printf("%s input %d has no space for auth tag %d\n", G_STRFUNC, inl, auth_tag_len);
return FALSE;
@@ -5155,7 +5317,7 @@ tls_decrypt_aead_record(SslDecryptSession *ssl, SslDecoder *decoder,
memcpy(nonce, decoder->write_iv.data, IMPLICIT_NONCE_LEN);
memcpy(nonce + IMPLICIT_NONCE_LEN, explicit_nonce, EXPLICIT_NONCE_LEN);
- } else if (version == TLSV1DOT3_VERSION || cipher_mode == MODE_POLY1305) {
+ } else if (version == TLSV1DOT3_VERSION || version == DTLSV1DOT3_VERSION || cipher_mode == MODE_POLY1305) {
/*
* Technically the nonce length must be at least 8 bytes, but for
* AES-GCM, AES-CCM and Poly1305-ChaCha20 the nonce length is exact 12.
@@ -5212,6 +5374,9 @@ tls_decrypt_aead_record(SslDecryptSession *ssl, SslDecoder *decoder,
aad[8] = ct; /* TLSCompressed.type */
phton16(aad + 9, record_version); /* TLSCompressed.version */
phton16(aad + 11, ciphertext_len); /* TLSCompressed.length */
+ } else if (version == DTLSV1DOT3_VERSION) {
+ aad_len = decoder->dtls13_aad.data_len;
+ aad = decoder->dtls13_aad.data;
} else if (draft_version >= 25 || draft_version == 0) {
aad_len = 5;
aad = wmem_alloc(wmem_packet_scope(), aad_len);
@@ -5291,7 +5456,8 @@ ssl_decrypt_record(SslDecryptSession *ssl, SslDecoder *decoder, guint8 ct, guint
ssl_debug_printf("ssl_decrypt_record ciphertext len %d\n", inl);
ssl_print_data("Ciphertext",in, inl);
- if ((ssl->session.version == TLSV1DOT3_VERSION) != (decoder->cipher_suite->kex == KEX_TLS13)) {
+ if (((ssl->session.version == TLSV1DOT3_VERSION || ssl->session.version == DTLSV1DOT3_VERSION))
+ != (decoder->cipher_suite->kex == KEX_TLS13)) {
ssl_debug_printf("%s Invalid cipher suite for the protocol version!\n", G_STRFUNC);
return -1;
}
@@ -5310,7 +5476,8 @@ ssl_decrypt_record(SslDecryptSession *ssl, SslDecoder *decoder, guint8 ct, guint
decoder->cipher_suite->mode == MODE_CCM ||
decoder->cipher_suite->mode == MODE_CCM_8 ||
decoder->cipher_suite->mode == MODE_POLY1305 ||
- ssl->session.version == TLSV1DOT3_VERSION) {
+ ssl->session.version == TLSV1DOT3_VERSION ||
+ ssl->session.version == DTLSV1DOT3_VERSION) {
if (!tls_decrypt_aead_record(ssl, decoder, ct, record_version, ignore_mac_failed, in, inl, cid, cidl, out_str, &worklen)) {
/* decryption failed */
@@ -5341,6 +5508,7 @@ ssl_decrypt_record(SslDecryptSession *ssl, SslDecoder *decoder, guint8 ct, guint
case TLSV1DOT2_VERSION:
case DTLSV1DOT0_VERSION:
case DTLSV1DOT2_VERSION:
+ case DTLSV1DOT3_VERSION:
case DTLSV1DOT0_OPENSSL_VERSION:
case TLCPV1_VERSION:
blocksize = ssl_get_cipher_blocksize(decoder->cipher_suite);
@@ -5612,6 +5780,8 @@ ssl_get_session(conversation_t *conversation, dissector_handle_t tls_handle)
clear_address(&ssl_session->session.srv_addr);
ssl_session->session.srv_ptype = PT_NONE;
ssl_session->session.srv_port = 0;
+ ssl_session->session.dtls13_current_epoch[0] = ssl_session->session.dtls13_current_epoch[1] = 0;
+ ssl_session->session.dtls13_next_seq_num[0] = ssl_session->session.dtls13_next_seq_num[1] = 0;
conversation_add_proto_data(conversation, proto_ssl, ssl_session);
return ssl_session;
@@ -5664,6 +5834,8 @@ void ssl_reset_session(SslSession *session, SslDecryptSession *ssl, gboolean is_
session->server_cert_type = 0;
/* session->is_session_resumed is already handled in the ServerHello dissection. */
}
+ session->dtls13_next_seq_num[0] = session->dtls13_next_seq_num[1] = 0;
+ session->dtls13_current_epoch[0] = session->dtls13_current_epoch[1] = 0;
}
void
@@ -5831,7 +6003,7 @@ ssl_set_server(SslSession *session, address *addr, port_type ptype, guint32 port
}
int
-ssl_packet_from_server(SslSession *session, dissector_table_t table, packet_info *pinfo)
+ssl_packet_from_server(SslSession *session, dissector_table_t table, const packet_info *pinfo)
{
gint ret;
if (session && session->srv_addr.type != AT_NONE) {
@@ -6219,7 +6391,7 @@ tls13_load_secret(SslDecryptSession *ssl, ssl_master_key_map_t *mk_map,
GHashTable *key_map;
const char *label;
- if (ssl->session.version != TLSV1DOT3_VERSION) {
+ if (ssl->session.version != TLSV1DOT3_VERSION && ssl->session.version != DTLSV1DOT3_VERSION) {
ssl_debug_printf("%s TLS version %#x is not 1.3\n", G_STRFUNC, ssl->session.version);
return NULL;
}
@@ -6356,7 +6528,7 @@ tls13_key_update(SslDecryptSession *ssl, gboolean is_from_server)
label = "application traffic secret";
}
if (!tls13_hkdf_expand_label(hash_algo, app_secret,
- tls13_hkdf_label_prefix(tls13_draft_version),
+ tls13_hkdf_label_prefix(ssl),
label, hash_len, &new_secret)) {
ssl_debug_printf("%s traffic_secret_N+1 expansion failed\n", G_STRFUNC);
return;
@@ -6625,7 +6797,7 @@ ssl_load_keyfile(const gchar *tls_keylog_filename, FILE **keylog_file,
#ifdef SSL_DECRYPT_DEBUG /* {{{ */
-static FILE* ssl_debug_file=NULL;
+static FILE* ssl_debug_file;
void
ssl_set_debug(const gchar* name)
@@ -8591,7 +8763,7 @@ ssl_dissect_hnd_hello_common(ssl_common_dissect_t *hf, tvbuff_t *tvb,
ti_rnd = proto_tree_add_item(tree, hf->hf.hs_random, tvb, offset, 32, ENC_NA);
- if (session->version != TLSV1DOT3_VERSION) { /* No time on first bytes random with TLS 1.3 */
+ if ((session->version != TLSV1DOT3_VERSION) && (session->version != DTLSV1DOT3_VERSION)) { /* No time on first bytes random with TLS 1.3 */
rnd_tree = proto_item_add_subtree(ti_rnd, hf->ett.hs_random);
/* show the time */
@@ -9419,6 +9591,7 @@ ssl_is_valid_content_type(guint8 type)
case SSL_ID_APP_DATA:
case SSL_ID_HEARTBEAT:
case SSL_ID_TLS12_CID:
+ case SSL_ID_DTLS13_ACK:
return TRUE;
}
return FALSE;
@@ -9477,7 +9650,7 @@ ssl_is_authoritative_version_message(guint8 content_type, guint8 handshake_type,
*/
bool
tls_scan_server_hello(tvbuff_t *tvb, guint32 offset, guint32 offset_end,
- guint16 *server_version, gboolean *is_hrr)
+ guint16 *server_version, bool *is_hrr)
{
/* SHA256("HelloRetryRequest") */
static const guint8 tls13_hrr_random_magic[] = {
@@ -9863,8 +10036,10 @@ ssl_dissect_hnd_cli_hello(ssl_common_dissect_t *hf, tvbuff_t *tvb,
if (proto_is_frame_protocol(pinfo->layers,"tcp")) {
wmem_strbuf_append(ja4_a, "t");
- } else if (proto_is_frame_protocol(pinfo->layers,"udp")) {
- wmem_strbuf_append(ja4_a, "u");
+ } else if (proto_is_frame_protocol(pinfo->layers,"quic")) {
+ wmem_strbuf_append(ja4_a, "q");
+ } else if (proto_is_frame_protocol(pinfo->layers,"dtls")) {
+ wmem_strbuf_append(ja4_a, "d");
}
wmem_strbuf_append_printf(ja4_a, "%s", val_to_str_const(client_version, ssl_version_ja4_names, "00"));
wmem_strbuf_append_printf(ja4_a, "%s", ja4_data.server_name_present ? "d" : "i");
@@ -10066,7 +10241,7 @@ ssl_dissect_hnd_new_ses_ticket(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_i
proto_tree *subtree;
proto_item *subitem;
guint32 ticket_len;
- gboolean is_tls13 = session->version == TLSV1DOT3_VERSION;
+ gboolean is_tls13 = session->version == TLSV1DOT3_VERSION || session->version == DTLSV1DOT3_VERSION;
guchar draft_version = session->tls13_draft_version;
guint32 lifetime_hint;
@@ -10256,7 +10431,7 @@ ssl_dissect_hnd_cert(ssl_common_dissect_t *hf, tvbuff_t *tvb, proto_tree *tree,
#endif
/* TLS 1.3: opaque certificate_request_context<0..2^8-1> */
- if (session->version == TLSV1DOT3_VERSION) {
+ if (session->version == TLSV1DOT3_VERSION || session->version == DTLSV1DOT3_VERSION) {
guint32 context_length;
if (!ssl_add_vector(hf, tvb, pinfo, tree, offset, offset_end, &context_length,
hf->hf.hs_certificate_request_context_length, 0, G_MAXUINT8)) {
@@ -10270,7 +10445,7 @@ ssl_dissect_hnd_cert(ssl_common_dissect_t *hf, tvbuff_t *tvb, proto_tree *tree,
}
}
- if (session->version != TLSV1DOT3_VERSION && cert_type == CERT_RPK) {
+ if ((session->version != TLSV1DOT3_VERSION && session->version != DTLSV1DOT3_VERSION) && cert_type == CERT_RPK) {
/* For RPK before TLS 1.3, the single RPK is stored directly without
* another "certificate_list" field. */
certificate_list_length = offset_end - offset;
@@ -10334,7 +10509,7 @@ ssl_dissect_hnd_cert(ssl_common_dissect_t *hf, tvbuff_t *tvb, proto_tree *tree,
}
/* TLS 1.3: Extension extensions<0..2^16-1> */
- if (session->version == TLSV1DOT3_VERSION) {
+ if ((session->version == TLSV1DOT3_VERSION || session->version == DTLSV1DOT3_VERSION)) {
offset = ssl_dissect_hnd_extension(hf, tvb, subtree, pinfo, offset,
next_offset, SSL_HND_CERTIFICATE,
session, ssl, is_dtls, NULL, NULL);
@@ -10417,7 +10592,7 @@ ssl_dissect_hnd_cert_req(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_info *p
proto_tree *subtree;
guint32 next_offset;
asn1_ctx_t asn1_ctx;
- gboolean is_tls13 = session->version == TLSV1DOT3_VERSION;
+ gboolean is_tls13 = (session->version == TLSV1DOT3_VERSION || session->version == DTLSV1DOT3_VERSION);
guchar draft_version = session->tls13_draft_version;
if (!tree)
@@ -10979,8 +11154,8 @@ dissect_ssl3_hnd_cli_keyex_ecdh(ssl_common_dissect_t *hf, tvbuff_t *tvb,
}
static void
-dissect_ssl3_hnd_cli_keyex_dh(ssl_common_dissect_t *hf, tvbuff_t *tvb,
- proto_tree *tree, guint32 offset, guint32 length)
+dissect_ssl3_hnd_cli_keyex_dhe(ssl_common_dissect_t *hf, tvbuff_t *tvb,
+ proto_tree *tree, guint32 offset, guint32 length)
{
gint yc_len;
proto_tree *ssl_dh_tree;
@@ -11031,14 +11206,14 @@ dissect_ssl3_hnd_cli_keyex_rsa(ssl_common_dissect_t *hf, tvbuff_t *tvb,
}
/* Used in PSK cipher suites */
-static void
+static guint32
dissect_ssl3_hnd_cli_keyex_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb,
- proto_tree *tree, guint32 offset, guint32 length)
+ proto_tree *tree, guint32 offset)
{
guint identity_len;
proto_tree *ssl_psk_tree;
- ssl_psk_tree = proto_tree_add_subtree(tree, tvb, offset, length,
+ ssl_psk_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
hf->ett.keyex_params, NULL, "PSK Client Params");
/* identity */
identity_len = tvb_get_ntohs(tvb, offset);
@@ -11046,6 +11221,9 @@ dissect_ssl3_hnd_cli_keyex_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb,
offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(ssl_psk_tree, hf->hf.hs_client_keyex_identity, tvb,
offset + 2, identity_len, ENC_NA);
+
+ proto_item_set_len(ssl_psk_tree, 2 + identity_len);
+ return 2 + identity_len;
}
/* Used in RSA PSK cipher suites */
@@ -11076,6 +11254,44 @@ dissect_ssl3_hnd_cli_keyex_rsa_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb,
offset + 2, epms_len, ENC_NA);
}
+/* Used in Diffie-Hellman PSK cipher suites */
+static void
+dissect_ssl3_hnd_cli_keyex_dhe_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb,
+ proto_tree *tree, guint32 offset, guint32 length)
+{
+ /*
+ * struct {
+ * select (KeyExchangeAlgorithm) {
+ * case diffie_hellman_psk:
+ * opaque psk_identity<0..2^16-1>;
+ * ClientDiffieHellmanPublic public;
+ * } exchange_keys;
+ * } ClientKeyExchange;
+ */
+
+ guint32 psk_len = dissect_ssl3_hnd_cli_keyex_psk(hf, tvb, tree, offset);
+ dissect_ssl3_hnd_cli_keyex_dhe(hf, tvb, tree, offset + psk_len, length - psk_len);
+}
+
+/* Used in EC Diffie-Hellman PSK cipher suites */
+static void
+dissect_ssl3_hnd_cli_keyex_ecdh_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb,
+ proto_tree *tree, guint32 offset, guint32 length)
+{
+ /*
+ * struct {
+ * select (KeyExchangeAlgorithm) {
+ * case ec_diffie_hellman_psk:
+ * opaque psk_identity<0..2^16-1>;
+ * ClientECDiffieHellmanPublic public;
+ * } exchange_keys;
+ * } ClientKeyExchange;
+ */
+
+ guint32 psk_len = dissect_ssl3_hnd_cli_keyex_psk(hf, tvb, tree, offset);
+ dissect_ssl3_hnd_cli_keyex_ecdh(hf, tvb, tree, offset + psk_len, length - psk_len);
+}
+
/* Used in EC J-PAKE cipher suites */
static void
dissect_ssl3_hnd_cli_keyex_ecjpake(ssl_common_dissect_t *hf, tvbuff_t *tvb,
@@ -11168,6 +11384,7 @@ ssl_dissect_digitally_signed(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_inf
case TLSV1DOT2_VERSION:
case DTLSV1DOT2_VERSION:
case TLSV1DOT3_VERSION:
+ case DTLSV1DOT3_VERSION:
tls_dissect_signature_algorithm(hf, tvb, tree, offset, NULL);
offset += 2;
break;
@@ -11374,27 +11591,63 @@ dissect_ssl3_hnd_srv_keyex_rsa(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_i
}
/* Used in RSA PSK and PSK cipher suites */
-static void
+static guint32
dissect_ssl3_hnd_srv_keyex_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb,
- proto_tree *tree, guint32 offset, guint32 length)
+ proto_tree *tree, guint32 offset)
{
guint hint_len;
proto_tree *ssl_psk_tree;
- hint_len = tvb_get_ntohs(tvb, offset);
- if ((2 + hint_len) != length) {
- /* Lengths don't line up (wasn't what we expected?) */
- return;
- }
-
- ssl_psk_tree = proto_tree_add_subtree(tree, tvb, offset, length,
+ ssl_psk_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
hf->ett.keyex_params, NULL, "PSK Server Params");
/* hint */
+ hint_len = tvb_get_ntohs(tvb, offset);
proto_tree_add_item(ssl_psk_tree, hf->hf.hs_server_keyex_hint_len, tvb,
offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(ssl_psk_tree, hf->hf.hs_server_keyex_hint, tvb,
offset + 2, hint_len, ENC_NA);
+
+ proto_item_set_len(ssl_psk_tree, 2 + hint_len);
+ return 2 + hint_len;
+}
+
+/* Used in Diffie-Hellman PSK cipher suites */
+static void
+dissect_ssl3_hnd_srv_keyex_dhe_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree, guint32 offset, guint32 offset_end)
+{
+ /*
+ * struct {
+ * select (KeyExchangeAlgorithm) {
+ * case diffie_hellman_psk:
+ * opaque psk_identity_hint<0..2^16-1>;
+ * ServerDHParams params;
+ * };
+ * } ServerKeyExchange;
+ */
+
+ guint32 psk_len = dissect_ssl3_hnd_srv_keyex_psk(hf, tvb, tree, offset);
+ dissect_ssl3_hnd_srv_keyex_dhe(hf, tvb, pinfo, tree, offset + psk_len, offset_end, 0, TRUE);
+}
+
+/* Used in EC Diffie-Hellman PSK cipher suites */
+static void
+dissect_ssl3_hnd_srv_keyex_ecdh_psk(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree, guint32 offset, guint32 offset_end)
+{
+ /*
+ * struct {
+ * select (KeyExchangeAlgorithm) {
+ * case ec_diffie_hellman_psk:
+ * opaque psk_identity_hint<0..2^16-1>;
+ * ServerECDHParams params;
+ * };
+ * } ServerKeyExchange;
+ */
+
+ guint32 psk_len = dissect_ssl3_hnd_srv_keyex_psk(hf, tvb, tree, offset);
+ dissect_ssl3_hnd_srv_keyex_ecdh(hf, tvb, pinfo, tree, offset + psk_len, offset_end, 0, TRUE);
}
/* Used in EC J-PAKE cipher suites */
@@ -11487,10 +11740,10 @@ ssl_dissect_hnd_cli_keyex(ssl_common_dissect_t *hf, tvbuff_t *tvb,
case KEX_DH_RSA:
case KEX_DHE_DSS:
case KEX_DHE_RSA:
- dissect_ssl3_hnd_cli_keyex_dh(hf, tvb, tree, offset, length);
+ dissect_ssl3_hnd_cli_keyex_dhe(hf, tvb, tree, offset, length);
break;
case KEX_DHE_PSK: /* RFC 4279; diffie_hellman_psk: psk_identity, ClientDiffieHellmanPublic */
- /* XXX: implement support for DHE_PSK */
+ dissect_ssl3_hnd_cli_keyex_dhe_psk(hf, tvb, tree, offset, length);
break;
case KEX_ECDH_ANON: /* RFC 4492; ec_diffie_hellman: ClientECDiffieHellmanPublic */
case KEX_ECDH_ECDSA:
@@ -11500,13 +11753,17 @@ ssl_dissect_hnd_cli_keyex(ssl_common_dissect_t *hf, tvbuff_t *tvb,
dissect_ssl3_hnd_cli_keyex_ecdh(hf, tvb, tree, offset, length);
break;
case KEX_ECDHE_PSK: /* RFC 5489; ec_diffie_hellman_psk: psk_identity, ClientECDiffieHellmanPublic */
- /* XXX: implement support for ECDHE_PSK */
+ dissect_ssl3_hnd_cli_keyex_ecdh_psk(hf, tvb, tree, offset, length);
break;
case KEX_KRB5: /* RFC 2712; krb5: KerberosWrapper */
/* XXX: implement support for KRB5 */
+ proto_tree_add_expert_format(tree, NULL, &hf->ei.hs_ciphersuite_undecoded,
+ tvb, offset, length,
+ "Kerberos ciphersuites (RFC 2712) are not implemented, contact Wireshark"
+ " developers if you want them to be supported");
break;
case KEX_PSK: /* RFC 4279; psk: psk_identity */
- dissect_ssl3_hnd_cli_keyex_psk(hf, tvb, tree, offset, length);
+ dissect_ssl3_hnd_cli_keyex_psk(hf, tvb, tree, offset);
break;
case KEX_RSA: /* RFC 5246; rsa: EncryptedPreMasterSecret */
dissect_ssl3_hnd_cli_keyex_rsa(hf, tvb, tree, offset, length, session);
@@ -11518,6 +11775,10 @@ ssl_dissect_hnd_cli_keyex(ssl_common_dissect_t *hf, tvbuff_t *tvb,
case KEX_SRP_SHA_DSS:
case KEX_SRP_SHA_RSA:
/* XXX: implement support for SRP_SHA* */
+ proto_tree_add_expert_format(tree, NULL, &hf->ei.hs_ciphersuite_undecoded,
+ tvb, offset, length,
+ "SRP_SHA ciphersuites (RFC 5054) are not implemented, contact Wireshark"
+ " developers if you want them to be supported");
break;
case KEX_ECJPAKE: /* https://tools.ietf.org/html/draft-cragie-tls-ecjpake-01 used in Thread Commissioning */
dissect_ssl3_hnd_cli_keyex_ecjpake(hf, tvb, tree, offset, length);
@@ -11526,7 +11787,8 @@ ssl_dissect_hnd_cli_keyex(ssl_common_dissect_t *hf, tvbuff_t *tvb,
dissect_ssl3_hnd_cli_keyex_ecc_sm2(hf, tvb, tree, offset, length);
break;
default:
- /* XXX: add info message for not supported KEX algo */
+ proto_tree_add_expert(tree, NULL, &hf->ei.hs_ciphersuite_undecoded,
+ tvb, offset, length);
break;
}
}
@@ -11542,20 +11804,21 @@ ssl_dissect_hnd_srv_keyex(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_info *
break;
case KEX_DH_DSS: /* RFC 5246; not allowed */
case KEX_DH_RSA:
- /* XXX: add error on not allowed KEX */
+ proto_tree_add_expert(tree, NULL, &hf->ei.hs_srv_keyex_illegal,
+ tvb, offset, offset_end - offset);
break;
case KEX_DHE_DSS: /* RFC 5246; dhe_dss, dhe_rsa: ServerDHParams, Signature */
case KEX_DHE_RSA:
dissect_ssl3_hnd_srv_keyex_dhe(hf, tvb, pinfo, tree, offset, offset_end, session->version, FALSE);
break;
case KEX_DHE_PSK: /* RFC 4279; diffie_hellman_psk: psk_identity_hint, ServerDHParams */
- /* XXX: implement support for DHE_PSK */
+ dissect_ssl3_hnd_srv_keyex_dhe_psk(hf, tvb, pinfo, tree, offset, offset_end);
break;
case KEX_ECDH_ANON: /* RFC 4492; ec_diffie_hellman: ServerECDHParams (without signature for anon) */
dissect_ssl3_hnd_srv_keyex_ecdh(hf, tvb, pinfo, tree, offset, offset_end, session->version, TRUE);
break;
case KEX_ECDHE_PSK: /* RFC 5489; psk_identity_hint, ServerECDHParams */
- /* XXX: implement support for ECDHE_PSK */
+ dissect_ssl3_hnd_srv_keyex_ecdh_psk(hf, tvb, pinfo, tree, offset, offset_end);
break;
case KEX_ECDH_ECDSA: /* RFC 4492; ec_diffie_hellman: ServerECDHParams, Signature */
case KEX_ECDH_RSA:
@@ -11564,27 +11827,34 @@ ssl_dissect_hnd_srv_keyex(ssl_common_dissect_t *hf, tvbuff_t *tvb, packet_info *
dissect_ssl3_hnd_srv_keyex_ecdh(hf, tvb, pinfo, tree, offset, offset_end, session->version, FALSE);
break;
case KEX_KRB5: /* RFC 2712; not allowed */
- /* XXX: add error on not allowed KEX */
+ proto_tree_add_expert(tree, NULL, &hf->ei.hs_srv_keyex_illegal,
+ tvb, offset, offset_end - offset);
break;
- case KEX_PSK: /* RFC 4279; psk, rsa: psk_identity*/
+ case KEX_PSK: /* RFC 4279; psk, rsa: psk_identity */
case KEX_RSA_PSK:
- dissect_ssl3_hnd_srv_keyex_psk(hf, tvb, tree, offset, offset_end - offset);
+ dissect_ssl3_hnd_srv_keyex_psk(hf, tvb, tree, offset);
break;
- case KEX_RSA: /* only allowed if the public key in the server certificate is longer than 512 bits*/
+ case KEX_RSA: /* only allowed if the public key in the server certificate is longer than 512 bits */
dissect_ssl3_hnd_srv_keyex_rsa(hf, tvb, pinfo, tree, offset, offset_end, session->version);
break;
case KEX_ECC_SM2: /* GB/T 38636 */
dissect_ssl3_hnd_srv_keyex_ecc_sm2(hf, tvb, pinfo, tree, offset, offset_end, session->version);
+ break;
case KEX_SRP_SHA: /* RFC 5054; srp: ServerSRPParams, Signature */
case KEX_SRP_SHA_DSS:
case KEX_SRP_SHA_RSA:
/* XXX: implement support for SRP_SHA* */
+ proto_tree_add_expert_format(tree, NULL, &hf->ei.hs_ciphersuite_undecoded,
+ tvb, offset, offset_end - offset,
+ "SRP_SHA ciphersuites (RFC 5054) are not implemented, contact Wireshark"
+ " developers if you want them to be supported");
break;
case KEX_ECJPAKE: /* https://tools.ietf.org/html/draft-cragie-tls-ecjpake-01 used in Thread Commissioning */
dissect_ssl3_hnd_srv_keyex_ecjpake(hf, tvb, tree, offset, offset_end);
break;
default:
- /* XXX: add info message for not supported KEX algo */
+ proto_tree_add_expert(tree, NULL, &hf->ei.hs_ciphersuite_undecoded,
+ tvb, offset, offset_end - offset);
break;
}
}
diff --git a/epan/dissectors/packet-tls-utils.h b/epan/dissectors/packet-tls-utils.h
index e094787993..3d139abdaa 100644
--- a/epan/dissectors/packet-tls-utils.h
+++ b/epan/dissectors/packet-tls-utils.h
@@ -40,7 +40,8 @@ typedef enum {
SSL_ID_HANDSHAKE = 0x16,
SSL_ID_APP_DATA = 0x17,
SSL_ID_HEARTBEAT = 0x18,
- SSL_ID_TLS12_CID = 0x19
+ SSL_ID_TLS12_CID = 0x19,
+ SSL_ID_DTLS13_ACK = 0x1A,
} ContentType;
typedef enum {
@@ -306,6 +307,7 @@ typedef enum {
MODE_CCM, /* AEAD_AES_{128,256}_CCM with 16 byte auth tag */
MODE_CCM_8, /* AEAD_AES_{128,256}_CCM with 8 byte auth tag */
MODE_POLY1305, /* AEAD_CHACHA20_POLY1305 with 16 byte auth tag (RFC 7905) */
+ MODE_ECB, /* ECB: used to perfrom record seq number encryption in DTLSv1.3 */
} ssl_cipher_mode_t;
/* Explicit and implicit nonce length (RFC 5116 - Section 3.2.1) */
@@ -349,9 +351,12 @@ typedef struct _SslDecoder {
guchar _mac_key_or_write_iv[48];
StringInfo mac_key; /* for block and stream ciphers */
StringInfo write_iv; /* for AEAD ciphers (at least GCM, CCM) */
+ SSL_CIPHER_CTX sn_evp; /* used to decrypt serial number in DTLSv1.3 */
SSL_CIPHER_CTX evp;
SslDecompress *decomp;
+ guint64 dtls13_epoch;
guint64 seq; /**< Implicit (TLS) or explicit (DTLS) record sequence number. */
+ StringInfo dtls13_aad; /**< Additional Authenticated Data for DTLS 1.3. */
guint16 epoch;
SslFlow *flow;
StringInfo app_traffic_secret; /**< TLS 1.3 application traffic secret (if applicable), wmem file scope. */
@@ -425,6 +430,7 @@ typedef struct _SslRecordInfo {
SslFlow *flow; /**< Flow where this record fragment is a part of.
Can be NULL if this record type may not be fragmented. */
guint32 seq; /**< Data offset within the flow. */
+ guint16 dtls13_seq_suffix; /* < decrypted dtlsv1.3 record number suffix */
struct _SslRecordInfo* next;
} SslRecordInfo;
@@ -493,6 +499,8 @@ typedef struct _SslSession {
guint8 server_cid_len;
gboolean server_cid_len_present;
gboolean deprecated_cid; /* Set when handshake is using the deprecated CID extension type */
+ guint64 dtls13_current_epoch[2]; /* max epoch (for server and client respectively) */
+ guint64 dtls13_next_seq_num[2]; /* DTLSv1.3 next expected seq number (for server and client respectively) */
} SslSession;
/* RFC 5246, section 8.1 says that the master secret is always 48 bytes */
@@ -535,6 +543,12 @@ typedef struct _SslDecryptSession {
} SslDecryptSession;
+/* RecordNumber - RFC 9147 section 4 */
+typedef struct {
+ guint64 epoch;
+ guint64 sequence_number;
+} SslRecordNumber;
+
/* User Access Table */
typedef struct _ssldecrypt_assoc_t {
char* ipaddr;
@@ -741,7 +755,7 @@ extern void
ssl_association_remove(const char* dissector_table_name, dissector_handle_t main_handle, dissector_handle_t subdissector_handle, guint port, gboolean tcp);
extern gint
-ssl_packet_from_server(SslSession *session, dissector_table_t table, packet_info *pinfo);
+ssl_packet_from_server(SslSession *session, dissector_table_t table, const packet_info *pinfo);
/* Obtain information about the current TLS layer. */
SslPacketInfo *
@@ -818,7 +832,7 @@ ssl_is_valid_handshake_type(guint8 hs_type, gboolean is_dtls);
extern bool
tls_scan_server_hello(tvbuff_t *tvb, guint32 offset, guint32 offset_end,
- guint16 *server_version, gboolean *is_hrr);
+ guint16 *server_version, bool *is_hrr);
extern void
ssl_try_set_version(SslSession *session, SslDecryptSession *ssl,
@@ -1168,6 +1182,8 @@ typedef struct ssl_common_dissect {
expert_field malformed_trailing_data;
expert_field hs_ext_cert_status_undecoded;
+ expert_field hs_ciphersuite_undecoded;
+ expert_field hs_srv_keyex_illegal;
expert_field resumed;
expert_field record_length_invalid;
expert_field decompression_error;
@@ -2784,6 +2800,14 @@ ssl_common_dissect_t name;
{ prefix ".handshake.status_request.undecoded", PI_UNDECODED, PI_NOTE, \
"Responder ID list or Request Extensions are not implemented, contact Wireshark developers if you want this to be supported", EXPFILL } \
}, \
+ { & name .ei.hs_ciphersuite_undecoded, \
+ { prefix ".handshake.ciphersuite.undecoded", PI_UNDECODED, PI_NOTE, \
+ "Ciphersuite not implemented, contact Wireshark developers if you want this to be supported", EXPFILL } \
+ }, \
+ { & name .ei.hs_srv_keyex_illegal, \
+ { prefix ".handshake.server_keyex_illegal", PI_PROTOCOL, PI_WARN, \
+ "It is not legal to send the ServerKeyExchange message for this ciphersuite", EXPFILL } \
+ }, \
{ & name .ei.resumed, \
{ prefix ".resumed", PI_SEQUENCE, PI_NOTE, \
"This session reuses previously negotiated keys (Session resumption)", EXPFILL } \
diff --git a/epan/dissectors/packet-tls.c b/epan/dissectors/packet-tls.c
index 10aa560a05..32512b8b79 100644
--- a/epan/dissectors/packet-tls.c
+++ b/epan/dissectors/packet-tls.c
@@ -79,13 +79,13 @@
void proto_register_tls(void);
#ifdef HAVE_LIBGNUTLS
-static ssldecrypt_assoc_t *tlskeylist_uats = NULL;
-static guint ntlsdecrypt = 0;
+static ssldecrypt_assoc_t *tlskeylist_uats;
+static guint ntlsdecrypt;
#endif
-static gboolean tls_desegment = TRUE;
-static gboolean tls_desegment_app_data = TRUE;
-static gboolean tls_ignore_mac_failed = FALSE;
+static bool tls_desegment = true;
+static bool tls_desegment_app_data = true;
+static bool tls_ignore_mac_failed;
/*********************************************************************
@@ -245,23 +245,23 @@ ssl_proto_tree_add_segment_data(
static ssl_master_key_map_t ssl_master_key_map;
#ifdef HAVE_LIBGNUTLS
-static GHashTable *ssl_key_hash = NULL;
-static wmem_stack_t *key_list_stack = NULL;
-static uat_t *ssldecrypt_uat = NULL;
-static const gchar *ssl_keys_list = NULL;
+static GHashTable *ssl_key_hash;
+static wmem_stack_t *key_list_stack;
+static uat_t *ssldecrypt_uat;
+static const gchar *ssl_keys_list;
#endif
-static dissector_table_t ssl_associations = NULL;
-static dissector_handle_t tls_handle = NULL;
-static StringInfo ssl_compressed_data = {NULL, 0};
-static StringInfo ssl_decrypted_data = {NULL, 0};
-static gint ssl_decrypted_data_avail = 0;
-static FILE *ssl_keylog_file = NULL;
-static ssl_common_options_t ssl_options = { NULL, NULL};
+static dissector_table_t ssl_associations;
+static dissector_handle_t tls_handle;
+static StringInfo ssl_compressed_data;
+static StringInfo ssl_decrypted_data;
+static gint ssl_decrypted_data_avail;
+static FILE *ssl_keylog_file;
+static ssl_common_options_t ssl_options;
/* List of dissectors to call for TLS data */
static heur_dissector_list_t ssl_heur_subdissector_list;
-static const gchar *ssl_debug_file_name = NULL;
+static const gchar *ssl_debug_file_name;
/* Forward declaration we need below */
@@ -275,6 +275,63 @@ static reassembly_table ssl_reassembly_table;
static reassembly_table tls_hs_reassembly_table;
static guint32 hs_reassembly_id_count;
+/* Fragment TLS handshake reassembly functions. The records are
+ * organized by session and direction; this allows reassembly across
+ * QUIC connection migration when addresses and ports change.
+ */
+typedef struct _tls_hs_fragment_key {
+ const SslSession *session;
+ uint32_t id;
+ bool from_server;
+} tls_hs_fragment_key;
+
+static unsigned
+tls_hs_fragment_hash(gconstpointer k)
+{
+ const tls_hs_fragment_key* key = (const tls_hs_fragment_key*) k;
+ return key->id;
+}
+
+static int
+tls_hs_fragment_equal(gconstpointer k1, gconstpointer k2)
+{
+ const tls_hs_fragment_key* key1 = (const tls_hs_fragment_key*) k1;
+ const tls_hs_fragment_key* key2 = (const tls_hs_fragment_key*) k2;
+
+ return (key1->id == key2->id &&
+ key1->session == key2->session &&
+ key1->from_server == key2->from_server);
+}
+
+static gpointer
+tls_hs_fragment_temporary_key(const packet_info *pinfo, const uint32_t id,
+ const void *data)
+{
+ tls_hs_fragment_key *key = g_slice_new0(tls_hs_fragment_key);
+ SslSession *session = (SslSession *)data;
+ key->id = id;
+ key->session = session;
+ key->from_server = ssl_packet_from_server(session, ssl_associations, pinfo);
+ return key;
+}
+
+static void
+tls_hs_fragment_free_temporary_key(gpointer ptr)
+{
+ tls_hs_fragment_key *key = (tls_hs_fragment_key *)ptr;
+ g_slice_free(tls_hs_fragment_key, key);
+}
+
+static const reassembly_table_functions
+tls_hs_reassembly_table_functions = {
+ tls_hs_fragment_hash,
+ tls_hs_fragment_equal,
+ tls_hs_fragment_temporary_key,
+ tls_hs_fragment_temporary_key,
+ tls_hs_fragment_free_temporary_key,
+ tls_hs_fragment_free_temporary_key,
+};
+
/* initialize/reset per capture state data (ssl sessions cache) */
static void
ssl_init(void)
@@ -647,7 +704,17 @@ dissect_ssl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
* the conv_version, must set the copy in the conversation
* in addition to conv_version
*/
- conversation = find_or_create_conversation(pinfo);
+ /* Get the conversation with the deinterlacing strategy,
+ * assuming it does exist, as created by an underlying proto.
+ */
+ conversation = find_conversation_strat(pinfo, conversation_pt_to_conversation_type(pinfo->ptype), 0);
+ if(conversation == NULL) {
+ conversation = conversation_new(pinfo->num, &pinfo->src,
+ &pinfo->dst, conversation_pt_to_conversation_type(pinfo->ptype),
+ pinfo->srcport, pinfo->destport, 0);
+ }
+
+
ssl_session_save = ssl_session = ssl_get_session(conversation, tls_handle);
session = &ssl_session->session;
is_from_server = ssl_packet_from_server(session, ssl_associations, pinfo);
@@ -1255,7 +1322,7 @@ decrypt_tls13_early_data(tvbuff_t *tvb, packet_info *pinfo, guint32 offset,
return FALSE;
}
- const guint16 tls13_ciphers[] = {
+ static const guint16 tls13_ciphers[] = {
0x1301, /* TLS_AES_128_GCM_SHA256 */
0x1302, /* TLS_AES_256_GCM_SHA384 */
0x1303, /* TLS_CHACHA20_POLY1305_SHA256 */
@@ -2276,6 +2343,7 @@ dissect_ssl3_record(tvbuff_t *tvb, packet_info *pinfo,
}
break;
case SSL_ID_TLS12_CID:
+ case SSL_ID_DTLS13_ACK:
break;
}
offset += record_length; /* skip to end of record */
@@ -2471,7 +2539,8 @@ static TlsHsFragment *
save_tls_handshake_fragment(packet_info *pinfo, guint8 curr_layer_num_tls,
guint record_id, guint reassembly_id,
tvbuff_t *tvb, guint32 offset, guint frag_len,
- guint frag_offset, guint8 msg_type, gboolean is_last)
+ guint frag_offset, guint8 msg_type, gboolean is_last,
+ SslSession *session)
{
// Full handshake messages should not be saved.
DISSECTOR_ASSERT(!(frag_offset == 0 && is_last));
@@ -2499,7 +2568,7 @@ save_tls_handshake_fragment(packet_info *pinfo, guint8 curr_layer_num_tls,
// Add (subset of) record data.
fragment_add_check(&tls_hs_reassembly_table, tvb, offset,
- pinfo, reassembly_id, NULL, frag_offset, frag_len, !is_last);
+ pinfo, reassembly_id, session, frag_offset, frag_len, !is_last);
return frag_info;
}
@@ -2602,7 +2671,7 @@ dissect_tls_handshake(tvbuff_t *tvb, packet_info *pinfo,
// 1. (First pass:) If a previous handshake message needed reassembly.
if (*hs_reassembly_id_p) {
// Continuation, so a previous fragment *must* exist.
- fh = fragment_get(&tls_hs_reassembly_table, pinfo, *hs_reassembly_id_p, NULL);
+ fh = fragment_get(&tls_hs_reassembly_table, pinfo, *hs_reassembly_id_p, session);
DISSECTOR_ASSERT(fh);
// We expect that reassembly has not completed yet.
DISSECTOR_ASSERT(fh->tvb_data == NULL);
@@ -2643,7 +2712,7 @@ dissect_tls_handshake(tvbuff_t *tvb, packet_info *pinfo,
guint8 msg_type = tvb_get_guint8(len_tvb, 0);
gboolean is_last = frags_len + subset_len == msg_len;
frag_info = save_tls_handshake_fragment(pinfo, curr_layer_num_tls, record_id, *hs_reassembly_id_p,
- tvb, offset, subset_len, frags_len, msg_type, is_last);
+ tvb, offset, subset_len, frags_len, msg_type, is_last, session);
if (is_last) {
// Reassembly finished, next message should not continue this message.
*hs_reassembly_id_p = 0;
@@ -2727,7 +2796,7 @@ dissect_tls_handshake(tvbuff_t *tvb, packet_info *pinfo,
guint8 msg_type = tvb_get_guint8(tvb, offset);
*hs_reassembly_id_p = ++hs_reassembly_id_count;
frag_info = save_tls_handshake_fragment(pinfo, curr_layer_num_tls, record_id, *hs_reassembly_id_p,
- tvb, offset, subset_len, 0, msg_type, FALSE);
+ tvb, offset, subset_len, 0, msg_type, FALSE, session);
} else {
// The first pass must have created a new fragment.
DISSECTOR_ASSERT(frag_info && frag_info->offset == 0);
@@ -2786,7 +2855,7 @@ dissect_tls_handshake_full(tvbuff_t *tvb, packet_info *pinfo,
{
guint32 hs_offset = offset;
- gboolean is_hrr = FALSE;
+ bool is_hrr = false;
msg_type = tvb_get_guint8(tvb, offset);
length = tvb_get_ntoh24(tvb, offset + 1);
@@ -4254,7 +4323,7 @@ tls13_exporter(packet_info *pinfo, gboolean is_early,
}
/* Lookup EXPORTER_SECRET based on client_random from conversation */
- conversation_t *conv = find_conversation_pinfo(pinfo, 0);
+ conversation_t *conv = find_conversation_strat(pinfo, conversation_pt_to_conversation_type(pinfo->ptype), 0);
if (!conv) {
return FALSE;
}
@@ -4851,7 +4920,7 @@ proto_register_tls(void)
reassembly_table_register(&ssl_reassembly_table,
&tcp_reassembly_table_functions);
reassembly_table_register(&tls_hs_reassembly_table,
- &addresses_ports_reassembly_table_functions);
+ &tls_hs_reassembly_table_functions);
register_decode_as(&ssl_da);
/* XXX: this seems unused due to new "Follow TLS" method, remove? */
diff --git a/epan/dissectors/packet-tns.c b/epan/dissectors/packet-tns.c
index 782cfdbd76..11ec19f1c8 100644
--- a/epan/dissectors/packet-tns.c
+++ b/epan/dissectors/packet-tns.c
@@ -70,7 +70,7 @@ void proto_register_tns(void);
#define OPI_OAUTH 3
/* desegmentation of TNS over TCP */
-static gboolean tns_desegment = TRUE;
+static bool tns_desegment = true;
static dissector_handle_t tns_handle;
diff --git a/epan/dissectors/packet-tpkt.c b/epan/dissectors/packet-tpkt.c
index 343efa6cd3..26cf84ebb1 100644
--- a/epan/dissectors/packet-tpkt.c
+++ b/epan/dissectors/packet-tpkt.c
@@ -43,7 +43,7 @@ static int hf_tpkt_continuation_data;
static gint ett_tpkt;
/* desegmentation of OSI over TPKT over TCP */
-static gboolean tpkt_desegment = TRUE;
+static bool tpkt_desegment = true;
#define TCP_PORT_TPKT_RANGE "102"
diff --git a/epan/dissectors/packet-tpm20.c b/epan/dissectors/packet-tpm20.c
index f9e3502912..d4525dff9b 100644
--- a/epan/dissectors/packet-tpm20.c
+++ b/epan/dissectors/packet-tpm20.c
@@ -25,7 +25,7 @@ typedef struct {
guint32 num_auths;
} tpm_entry;
-static wmem_tree_t *cmd_tree = NULL;
+static wmem_tree_t *cmd_tree;
static guint last_command_pnum;
static bool response_size = TRUE;
diff --git a/epan/dissectors/packet-tpncp.c b/epan/dissectors/packet-tpncp.c
index e5e7c1a8a6..5669b3d362 100644
--- a/epan/dissectors/packet-tpncp.c
+++ b/epan/dissectors/packet-tpncp.c
@@ -106,7 +106,7 @@ static expert_field ei_tpncp_unknown_data;
static gint ett_tpncp;
static gint ett_tpncp_body;
-static gboolean global_tpncp_load_db = FALSE;
+static bool global_tpncp_load_db;
static dissector_handle_t tpncp_handle;
static dissector_handle_t tpncp_tcp_handle;
@@ -119,11 +119,11 @@ static value_string tpncp_events_id_vals[MAX_TPNCP_DB_SIZE];
static value_string tpncp_enums_id_vals[MAX_ENUMS_NUM][MAX_ENUM_ENTRIES];
static gchar *tpncp_enums_name_vals[MAX_ENUMS_NUM];
-static gint hf_size = 0;
-static gint hf_allocated = 0;
-static hf_register_info *hf = NULL;
+static gint hf_size;
+static gint hf_allocated;
+static hf_register_info *hf;
-static gboolean db_initialized = FALSE;
+static gboolean db_initialized;
/*---------------------------------------------------------------------------*/
diff --git a/epan/dissectors/packet-tr.c b/epan/dissectors/packet-tr.c
index 79122a42e2..19527359d2 100644
--- a/epan/dissectors/packet-tr.c
+++ b/epan/dissectors/packet-tr.c
@@ -58,7 +58,7 @@ static int tr_tap;
/*
* Check for and attempt to fix Linux link-layer header mangling.
*/
-static gboolean fix_linux_botches = FALSE;
+static bool fix_linux_botches;
#define TR_MIN_HEADER_LEN 14
#define TR_MAX_HEADER_LEN 32
@@ -239,7 +239,7 @@ int check_for_old_linux(const guchar * pd)
static void
add_ring_bridge_pairs(int rcf_len, tvbuff_t*, proto_tree *tree);
-static gboolean
+static bool
capture_tr(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_) {
int source_routed = 0;
diff --git a/epan/dissectors/packet-trmac.c b/epan/dissectors/packet-trmac.c
index a277f9ece5..ed369093a2 100644
--- a/epan/dissectors/packet-trmac.c
+++ b/epan/dissectors/packet-trmac.c
@@ -633,7 +633,7 @@ proto_register_trmac(void)
NULL, HFILL }},
{ &hf_trmac_group_address32,
- { "Group Address", "trmac.group_addres32s", FT_UINT32, BASE_HEX, NULL, 0x0,
+ { "Group Address", "trmac.group_address32s", FT_UINT32, BASE_HEX, NULL, 0x0,
NULL, HFILL }},
{ &hf_trmac_group_address_ether,
diff --git a/epan/dissectors/packet-tzsp.c b/epan/dissectors/packet-tzsp.c
index 96fe9f312f..e525be8149 100644
--- a/epan/dissectors/packet-tzsp.c
+++ b/epan/dissectors/packet-tzsp.c
@@ -35,6 +35,8 @@ static int hf_tzsp_version;
static int hf_tzsp_type;
static int hf_tzsp_encap;
+static dissector_table_t tzsp_encap_table;
+
static dissector_handle_t tzsp_handle;
/*
@@ -91,16 +93,6 @@ static const value_string tzsp_encapsulation[] = {
static gint ett_tzsp;
static gint ett_tag;
-static dissector_handle_t eth_maybefcs_handle;
-static dissector_handle_t tr_handle;
-static dissector_handle_t ppp_handle;
-static dissector_handle_t fddi_handle;
-static dissector_handle_t raw_ip_handle;
-static dissector_handle_t ieee_802_11_handle;
-static dissector_handle_t ieee_802_11_prism_handle;
-static dissector_handle_t ieee_802_11_avs_handle;
-static dissector_handle_t ieee_802_11_radiotap_handle;
-
/* ************************************************************************* */
/* WLAN radio header fields */
/* ************************************************************************* */
@@ -375,50 +367,7 @@ dissect_tzsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
if (tree)
proto_item_set_end(ti, tvb, pos);
next_tvb = tvb_new_subset_remaining(tvb, pos);
- switch (encapsulation) {
-
- case TZSP_ENCAP_ETHERNET:
- call_dissector(eth_maybefcs_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_TOKEN_RING:
- call_dissector(tr_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_PPP:
- call_dissector(ppp_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_FDDI:
- call_dissector(fddi_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_RAW:
- call_dissector(raw_ip_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_IEEE_802_11:
- /*
- * XXX - get some of the information from the TLVs
- * and turn it into a radio metadata header to
- * hand to the radio dissector, and call it?
- */
- call_dissector(ieee_802_11_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_IEEE_802_11_PRISM:
- call_dissector(ieee_802_11_prism_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_IEEE_802_11_RADIOTAP:
- call_dissector(ieee_802_11_radiotap_handle, next_tvb, pinfo, tree);
- break;
-
- case TZSP_ENCAP_IEEE_802_11_AVS:
- call_dissector(ieee_802_11_avs_handle, next_tvb, pinfo, tree);
- break;
-
- default:
+ if (dissector_try_uint(tzsp_encap_table, encapsulation, next_tvb, pinfo, tree) == 0) {
col_set_str(pinfo->cinfo, COL_PROTOCOL, "UNKNOWN");
col_add_fstr(pinfo->cinfo, COL_INFO, "TZSP_ENCAP = %u",
encapsulation);
@@ -673,6 +622,9 @@ proto_register_tzsp(void)
proto_register_subtree_array(ett, array_length(ett));
tzsp_handle = register_dissector("tzsp", dissect_tzsp, proto_tzsp);
+
+ tzsp_encap_table = register_dissector_table("tzsp.encap", "TZSP Encapsulation Type",
+ proto_tzsp, FT_UINT16, BASE_DEC);
}
void
@@ -681,15 +633,15 @@ proto_reg_handoff_tzsp(void)
dissector_add_uint_with_preference("udp.port", UDP_PORT_TZSP, tzsp_handle);
/* Get the data dissector for handling various encapsulation types. */
- eth_maybefcs_handle = find_dissector_add_dependency("eth_maybefcs", proto_tzsp);
- tr_handle = find_dissector_add_dependency("tr", proto_tzsp);
- ppp_handle = find_dissector_add_dependency("ppp_hdlc", proto_tzsp);
- fddi_handle = find_dissector_add_dependency("fddi", proto_tzsp);
- raw_ip_handle = find_dissector_add_dependency("raw_ip", proto_tzsp);
- ieee_802_11_handle = find_dissector_add_dependency("wlan", proto_tzsp);
- ieee_802_11_prism_handle = find_dissector_add_dependency("prism", proto_tzsp);
- ieee_802_11_avs_handle = find_dissector_add_dependency("wlancap", proto_tzsp);
- ieee_802_11_radiotap_handle = find_dissector_add_dependency("radiotap", proto_tzsp);
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_ETHERNET, find_dissector("eth_maybefcs"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_TOKEN_RING, find_dissector("tr"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_PPP, find_dissector("ppp_hdlc"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_FDDI, find_dissector("fddi"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_RAW, find_dissector("raw_ip"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_IEEE_802_11, find_dissector("wlan"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_IEEE_802_11_PRISM, find_dissector("prism"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_IEEE_802_11_AVS, find_dissector("wlancap"));
+ dissector_add_uint("tzsp.encap", TZSP_ENCAP_IEEE_802_11_RADIOTAP, find_dissector("radiotap"));
/* Register this protocol as an encapsulation type. */
dissector_add_uint("wtap_encap", WTAP_ENCAP_TZSP, tzsp_handle);
diff --git a/epan/dissectors/packet-u3v.c b/epan/dissectors/packet-u3v.c
index b753e35597..98ad938fb3 100644
--- a/epan/dissectors/packet-u3v.c
+++ b/epan/dissectors/packet-u3v.c
@@ -605,7 +605,7 @@ static int ett_u3v_device_info_descriptor_speed_support;
static int ett_u3v_device_info_descriptor_gencp_version;
static int ett_u3v_device_info_descriptor_u3v_version;
-static dissector_handle_t u3v_handle = NULL;
+static dissector_handle_t u3v_handle;
static const value_string command_names[] =
{
diff --git a/epan/dissectors/packet-ua3g.c b/epan/dissectors/packet-ua3g.c
index 957e509648..5314ffb0d3 100644
--- a/epan/dissectors/packet-ua3g.c
+++ b/epan/dissectors/packet-ua3g.c
@@ -39,7 +39,7 @@ static gint ett_ua3g_option;
static gint ett_ua3g_beep_beep_destination;
static gint ett_ua3g_note;
-static gboolean setup_conversations_enabled = TRUE;
+static bool setup_conversations_enabled = true;
static int hf_ua3g_length;
static int hf_ua3g_opcode_sys;
@@ -3658,6 +3658,7 @@ static const value_string str_unsolicited_msg_hard_config_ram[] = {
{0, NULL}
};
+/* TODO: these values are clearly wrong - needs to fit into 2 bits */
static const value_string str_unsolicited_msg_subtype[] = {
{0x03, "2x40"},
{0x04, "1x20"},
@@ -3682,6 +3683,8 @@ static const value_string str_unsolicited_msg_hard_design[] = {
{0x06, "Alpha"},
{0, NULL}
};
+
+/* TODO: these values are clearly wrong - needs to fit into 2 bits */
static const value_string str_unsolicited_msg_hard_subtype[] = {
{0x06, "2x40"},
{0x07, "1x20"},
@@ -3851,7 +3854,7 @@ decode_unsolicited_msg(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo,
}
if (length >= 1) {
- int * const capability_info[] = {
+ static int * const capability_info[] = {
&hf_ua3g_unsolicited_msg_capability_info_vpn,
&hf_ua3g_unsolicited_msg_capability_info_ipsec,
&hf_ua3g_unsolicited_msg_capability_info_dtls,
diff --git a/epan/dissectors/packet-uasip.c b/epan/dissectors/packet-uasip.c
index 3e2beb7b4f..36cf77146a 100644
--- a/epan/dissectors/packet-uasip.c
+++ b/epan/dissectors/packet-uasip.c
@@ -52,10 +52,10 @@ static gint ett_uasip_tlv;
static expert_field ei_uasip_tlv_length;
static guint8 proxy_ipaddr[4];
-static const char *pref_proxy_ipaddr_s = NULL;
+static const char *pref_proxy_ipaddr_s;
-static gboolean use_proxy_ipaddr = FALSE;
-static gboolean noesip_enabled = FALSE;
+static gboolean use_proxy_ipaddr;
+static bool noesip_enabled;
static dissector_handle_t uasip_handle;
diff --git a/epan/dissectors/packet-uaudp.c b/epan/dissectors/packet-uaudp.c
index a41064f2ed..bc4c8d2289 100644
--- a/epan/dissectors/packet-uaudp.c
+++ b/epan/dissectors/packet-uaudp.c
@@ -54,13 +54,13 @@ static expert_field ei_uaudp_tlv_length;
/* pref */
#define UAUDP_PORT_RANGE "32000,32512" /* Not IANA registered */
-static range_t *ua_udp_range = NULL;
+static range_t *ua_udp_range;
static address cs_address = ADDRESS_INIT_NONE;
static ws_in4_addr cs_ipv4;
static ws_in6_addr cs_ipv6;
static const char* pref_sys_ip_s = "";
-static gboolean use_sys_ip = FALSE;
+static gboolean use_sys_ip;
static const value_string uaudp_opcode_str[] =
{
diff --git a/epan/dissectors/packet-uavcan-can.c b/epan/dissectors/packet-uavcan-can.c
index f23865920e..fd51f64d2f 100644
--- a/epan/dissectors/packet-uavcan-can.c
+++ b/epan/dissectors/packet-uavcan-can.c
@@ -73,7 +73,7 @@ static int hf_uavcan_transfer_id;
static int uavcan_address_type = -1;
-static wmem_tree_t *fragment_info_table = NULL;
+static wmem_tree_t *fragment_info_table;
static reassembly_table uavcan_reassembly_table;
@@ -107,7 +107,7 @@ typedef struct _fragment_info_t
guint32 seq_id;
} fragment_info_t;
-guint32 uavcan_seq_id = 0;
+guint32 uavcan_seq_id;
static const fragment_items uavcan_frag_items = {
/* Fragment subtrees */
diff --git a/epan/dissectors/packet-ubertooth.c b/epan/dissectors/packet-ubertooth.c
index 7da829d354..625e4871b0 100644
--- a/epan/dissectors/packet-ubertooth.c
+++ b/epan/dissectors/packet-ubertooth.c
@@ -324,7 +324,7 @@ static expert_field ei_unexpected_data;
static dissector_handle_t ubertooth_handle;
static dissector_handle_t bluetooth_ubertooth_handle;
-static wmem_tree_t *command_info = NULL;
+static wmem_tree_t *command_info;
typedef struct _command_data {
guint32 bus_id;
diff --git a/epan/dissectors/packet-ubx-galileo_e1b_inav.c b/epan/dissectors/packet-ubx-galileo_e1b_inav.c
new file mode 100644
index 0000000000..fe1ab76549
--- /dev/null
+++ b/epan/dissectors/packet-ubx-galileo_e1b_inav.c
@@ -0,0 +1,165 @@
+/* packet-ubx-galileo_e1b_inav.c
+ * Dissection of Galileo E1-B I/NAV navigation messages
+ * (as provided by UBX-RXM-SFRBX).
+ *
+ * By Timo Warns <timo.warns@gmail.com>
+ * Copyright 2023 Timo Warns
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@unicom.net>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "config.h"
+
+#include <epan/expert.h>
+#include <epan/packet.h>
+#include <epan/tfs.h>
+
+#include "packet-ubx.h"
+
+/*
+ * Dissects Galileo E1-B I/NAV navigation messages
+ * as encoded by UBX (in UBX-RXM-SFRBX messages).
+ * Based on Galileo OS SIS ICD Issue 2.1
+ */
+
+// Initialize the protocol and registered fields
+static int proto_ubx_gal_inav;
+
+static int hf_ubx_gal_inav_even_odd;
+static int hf_ubx_gal_inav_page_type;
+static int hf_ubx_gal_inav_type;
+static int hf_ubx_gal_inav_data_122_67;
+static int hf_ubx_gal_inav_data_66_17;
+static int hf_ubx_gal_inav_data_16_1;
+static int hf_ubx_gal_inav_osnma;
+static int hf_ubx_gal_inav_sar_start_bit;
+static int hf_ubx_gal_inav_sar_long_rlm;
+static int hf_ubx_gal_inav_sar_beacon_1;
+static int hf_ubx_gal_inav_sar_rlm_data;
+static int hf_ubx_gal_inav_spare;
+static int hf_ubx_gal_inav_ssp;
+static int hf_ubx_gal_inav_crc;
+static int hf_ubx_gal_inav_tail;
+static int hf_ubx_gal_inav_pad;
+static int hf_ubx_gal_inav_reserved_1;
+
+static int ett_ubx_gal_inav;
+static int ett_ubx_gal_inav_sar;
+
+static const value_string GAL_PAGE_TYPE[] = {
+ {0, "nominal"},
+ {1, "alert"},
+ {0, NULL},
+};
+
+static const value_string GAL_SSP[] = {
+ {0x04, "SSP 1"},
+ {0x2b, "SSP 2"},
+ {0x2f, "SSP 3"},
+ {0, NULL},
+};
+
+/* Dissect Galileo E1-B I/NAV navigation message */
+static int dissect_ubx_gal_inav(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
+ bool sar_start, sar_long_rlm;
+ guint32 page_type;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "Galileo E1-B I/NAV");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ proto_tree *gal_inav_tree = proto_tree_add_subtree(tree, tvb, 0, 32, ett_ubx_gal_inav, NULL, "Galileo E1-B I/NAV");
+
+ // even page
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_even_odd, tvb, 0, 1, ENC_NA);
+ proto_tree_add_item_ret_uint(gal_inav_tree, hf_ubx_gal_inav_page_type, tvb, 0, 1, ENC_NA, &page_type);
+
+ if (page_type == 1) { // alert page
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_reserved_1, tvb, 0, 15, ENC_NA);
+ }
+ else { // nominal page
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_type, tvb, 0, 1, ENC_NA);
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_data_122_67, tvb, 0, 8, ENC_BIG_ENDIAN);
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_data_66_17, tvb, 8, 8, ENC_BIG_ENDIAN);
+ }
+
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_tail, tvb, 14, 1, ENC_NA);
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_pad, tvb, 15, 1, ENC_NA);
+
+
+ // odd page
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_even_odd, tvb, 16, 1, ENC_NA);
+ proto_tree_add_item_ret_uint(gal_inav_tree, hf_ubx_gal_inav_page_type, tvb, 16, 1, ENC_NA, &page_type);
+
+ if (page_type == 1) { // alert page
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_reserved_1, tvb, 16, 11, ENC_NA);
+ }
+ else { // nominal page
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_data_16_1, tvb, 16, 8, ENC_BIG_ENDIAN);
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_osnma, tvb, 16, 8, ENC_BIG_ENDIAN);
+
+ proto_tree *sar_tree = proto_tree_add_subtree(gal_inav_tree, tvb, 23, 4, ett_ubx_gal_inav_sar, NULL, "SAR");
+ proto_tree_add_item_ret_boolean(sar_tree, hf_ubx_gal_inav_sar_start_bit, tvb, 23, 4, ENC_BIG_ENDIAN, &sar_start);
+ proto_tree_add_item_ret_boolean(sar_tree, hf_ubx_gal_inav_sar_long_rlm, tvb, 23, 4, ENC_BIG_ENDIAN, &sar_long_rlm);
+ if (sar_start) {
+ proto_tree_add_item(sar_tree, hf_ubx_gal_inav_sar_beacon_1, tvb, 23, 4, ENC_BIG_ENDIAN);
+ }
+ else {
+ // TODO: add more elaborate dissection for subsequent RLM data (requiring state tracking)
+ proto_tree_add_item(sar_tree, hf_ubx_gal_inav_sar_rlm_data, tvb, 23, 4, ENC_BIG_ENDIAN);
+ }
+
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_spare, tvb, 26, 1, ENC_NA);
+ }
+
+ // TODO: check CRC
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_crc, tvb, 26, 4, ENC_BIG_ENDIAN);
+
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_ssp, tvb, 28, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_tail, tvb, 30, 1, ENC_NA);
+ proto_tree_add_item(gal_inav_tree, hf_ubx_gal_inav_pad, tvb, 31, 1, ENC_NA);
+
+ return tvb_captured_length(tvb);
+}
+
+void proto_register_ubx_gal_inav(void) {
+
+ static hf_register_info hf[] = {
+ {&hf_ubx_gal_inav_even_odd, {"Even/Odd", "gal_inav.even_odd", FT_BOOLEAN, 8, TFS(&tfs_odd_even), 0x80, NULL, HFILL}},
+ {&hf_ubx_gal_inav_page_type, {"Page Type", "gal_inav.page_type", FT_UINT8, BASE_DEC, VALS(GAL_PAGE_TYPE), 0x40, NULL, HFILL}},
+ {&hf_ubx_gal_inav_type, {"Type", "gal_inav.type", FT_UINT8, BASE_DEC, NULL, 0x3f, NULL, HFILL}},
+ {&hf_ubx_gal_inav_data_122_67, {"Data (122-67)", "gal_inav.data_122_67", FT_UINT64, BASE_HEX, NULL, 0x00ffffffffffffff, NULL, HFILL}},
+ {&hf_ubx_gal_inav_data_66_17, {"Data (66-17)", "gal_inav.data_66_17", FT_UINT64, BASE_HEX, NULL, 0xffffffffffffc000, NULL, HFILL}},
+ {&hf_ubx_gal_inav_data_16_1, {"Data (16-1)", "gal_inav.data_16_1", FT_UINT64, BASE_HEX, NULL, 0x3fffc00000000000, NULL, HFILL}},
+ {&hf_ubx_gal_inav_osnma, {"OSNMA", "gal_inav.osnma", FT_UINT64, BASE_HEX, NULL, 0x00003fffffffffc0, NULL, HFILL}},
+ {&hf_ubx_gal_inav_sar_start_bit, {"Start bit", "gal_inav.sar.start_bit", FT_BOOLEAN, 32, NULL, 0x20000000, NULL, HFILL}},
+ {&hf_ubx_gal_inav_sar_long_rlm, {"Long RLM", "gal_inav.sar.long_rlm", FT_BOOLEAN, 32, NULL, 0x10000000, NULL, HFILL}},
+ {&hf_ubx_gal_inav_sar_beacon_1, {"Beacon (1/3)", "gal_inav.sar.beacon_1", FT_UINT32, BASE_HEX, NULL, 0x0fffff00, NULL, HFILL}},
+ {&hf_ubx_gal_inav_sar_rlm_data, {"RLM data", "gal_inav.sar.rlm_data", FT_UINT32, BASE_HEX, NULL, 0x0fffff00, NULL, HFILL}},
+ {&hf_ubx_gal_inav_spare, {"Spare", "gal_inav.spare", FT_UINT8, BASE_HEX, NULL, 0xc0, NULL, HFILL}},
+ {&hf_ubx_gal_inav_reserved_1, {"Reserved 1", "gal_inav.reserved_1", FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL}},
+ {&hf_ubx_gal_inav_crc, {"CRC", "gal_inav.crc", FT_UINT32, BASE_HEX, NULL, 0x3fffffc0, NULL, HFILL}},
+ {&hf_ubx_gal_inav_ssp, {"SSP", "gal_inav.ssp", FT_UINT32, BASE_HEX, VALS(GAL_SSP), 0x003fc000, NULL, HFILL}},
+ {&hf_ubx_gal_inav_tail, {"Tail", "gal_inav.tail", FT_UINT8, BASE_HEX, NULL, 0x3f, NULL, HFILL}},
+ {&hf_ubx_gal_inav_pad, {"Pad", "gal_inav.pad", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+ };
+
+ static gint *ett[] = {
+ &ett_ubx_gal_inav,
+ &ett_ubx_gal_inav_sar,
+ };
+
+ proto_ubx_gal_inav = proto_register_protocol("Galileo E1-B I/NAV Navigation Message", "Galileo I/NAV", "gal_inav");
+
+ proto_register_field_array(proto_ubx_gal_inav, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_dissector("ubx_gal_inav", dissect_ubx_gal_inav, proto_ubx_gal_inav);
+}
+
+void proto_reg_handoff_ubx_gal_inav(void) {
+ dissector_add_uint("ubx.rxm.sfrbx.gnssid", GNSS_ID_GALILEO, create_dissector_handle(dissect_ubx_gal_inav, proto_ubx_gal_inav));
+}
diff --git a/epan/dissectors/packet-uci.c b/epan/dissectors/packet-uci.c
index 0b45255239..a8bd2f58db 100644
--- a/epan/dissectors/packet-uci.c
+++ b/epan/dissectors/packet-uci.c
@@ -180,11 +180,11 @@ void proto_register_uci(void);
#define UCI_APP_CONFIG_NB_OF_AZIMUTH_MEASUREMENTS 0xE4
#define UCI_APP_CONFIG_NB_OF_ELEVATION_MEASUREMENTS 0xE5
-static gboolean gPREF_TCP_DESEGMENT = TRUE;
+static bool gPREF_TCP_DESEGMENT = true;
static guint gPREF_TCP_PORT = 7000;
static int proto_uci;
-static dissector_handle_t handle_uci = NULL;
+static dissector_handle_t handle_uci;
static int hf_uci_message_type;
static int hf_uci_packet_boundary_flag;
diff --git a/epan/dissectors/packet-ucp.c b/epan/dissectors/packet-ucp.c
index c93b3fa1b7..73682d6619 100644
--- a/epan/dissectors/packet-ucp.c
+++ b/epan/dissectors/packet-ucp.c
@@ -45,7 +45,7 @@ typedef struct _ucp_tap_rec_t {
} ucp_tap_rec_t;
/* Preferences */
-static gboolean ucp_desegment = TRUE;
+static bool ucp_desegment = true;
/* STX + TRN(2 num. char.) + / + LEN(5 num. char.) + / + 'O'/'R' + / + OT(2 num. char.) + / */
#define UCP_HEADER_SIZE 15
diff --git a/epan/dissectors/packet-udp.c b/epan/dissectors/packet-udp.c
index 58c4a400d1..b18e932768 100644
--- a/epan/dissectors/packet-udp.c
+++ b/epan/dissectors/packet-udp.c
@@ -89,22 +89,22 @@ static expert_field ei_udp_length_bad_zero;
/* Preferences */
/* Place UDP summary in proto tree */
-static gboolean udp_summary_in_tree = TRUE;
+static bool udp_summary_in_tree = true;
/* Check UDP checksums */
-static gboolean udp_check_checksum = FALSE;
+static bool udp_check_checksum;
/* Ignore zero-value UDP checksums over IPv6 */
-static gboolean udp_ignore_ipv6_zero_checksum = FALSE;
+static bool udp_ignore_ipv6_zero_checksum;
/* Collect IPFIX process flow information */
-static gboolean udp_process_info = FALSE;
+static bool udp_process_info;
/* Ignore an invalid checksum coverage field for UDP-Lite */
-static gboolean udplite_ignore_checksum_coverage = TRUE;
+static bool udplite_ignore_checksum_coverage = true;
/* Check UDP-Lite checksums */
-static gboolean udplite_check_checksum = FALSE;
+static bool udplite_check_checksum;
static dissector_table_t udp_dissector_table;
static heur_dissector_list_t heur_subdissector_list;
@@ -114,10 +114,10 @@ static guint32 udp_stream_count;
/* separated into a stand alone routine so other protocol dissectors */
/* can call to it, ie. socks */
-static gboolean try_heuristic_first = FALSE;
+static bool try_heuristic_first;
-static gboolean udp_calculate_ts = TRUE;
-static gboolean udplite_calculate_ts = TRUE;
+static bool udp_calculate_ts = true;
+static bool udplite_calculate_ts = true;
/* Per-packet-info for UDP */
typedef struct {
@@ -351,34 +351,19 @@ udpip_endpoint_packet(void *pit, packet_info *pinfo, epan_dissect_t *edt _U_, co
return TAP_PACKET_REDRAW;
}
-static gboolean
+static bool
udp_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "udp");
}
static gchar*
-udp_build_filter(packet_info *pinfo, void *user_data _U_)
+udp_build_filter_by_id(packet_info *pinfo, void *user_data _U_)
{
- if( pinfo->net_src.type == AT_IPv4 && pinfo->net_dst.type == AT_IPv4 ) {
- /* UDP over IPv4 */
- return ws_strdup_printf("(ip.addr eq %s and ip.addr eq %s) and (udp.port eq %d and udp.port eq %d)",
- address_to_str(pinfo->pool, &pinfo->net_src),
- address_to_str(pinfo->pool, &pinfo->net_dst),
- pinfo->srcport, pinfo->destport );
- }
-
- if( pinfo->net_src.type == AT_IPv6 && pinfo->net_dst.type == AT_IPv6 ) {
- /* UDP over IPv6 */
- return ws_strdup_printf("(ipv6.addr eq %s and ipv6.addr eq %s) and (udp.port eq %d and udp.port eq %d)",
- address_to_str(pinfo->pool, &pinfo->net_src),
- address_to_str(pinfo->pool, &pinfo->net_dst),
- pinfo->srcport, pinfo->destport );
- }
-
- return NULL;
+ return ws_strdup_printf("udp.stream eq %d", pinfo->stream_id);
}
+
static gchar *udp_follow_conv_filter(epan_dissect_t *edt _U_, packet_info *pinfo, guint *stream, guint *sub_stream _U_)
{
conversation_t *conv;
@@ -390,10 +375,11 @@ static gchar *udp_follow_conv_filter(epan_dissect_t *edt _U_, packet_info *pinfo
* Eventually the endpoint API should support storing multiple
* endpoints and UDP should be changed to use the endpoint API.
*/
+ conv = find_conversation_strat(pinfo, CONVERSATION_UDP, 0);
if (((pinfo->net_src.type == AT_IPv4 && pinfo->net_dst.type == AT_IPv4) ||
(pinfo->net_src.type == AT_IPv6 && pinfo->net_dst.type == AT_IPv6))
&& (pinfo->ptype == PT_UDP) &&
- (conv=find_conversation(pinfo->num, &pinfo->net_src, &pinfo->net_dst, CONVERSATION_UDP, pinfo->srcport, pinfo->destport, 0)) != NULL)
+ conv != NULL)
{
/* UDP over IPv4/6 */
udpd=get_udp_conversation_data(conv, pinfo);
@@ -567,7 +553,7 @@ decode_udp_ports(tvbuff_t *tvb, int offset, packet_info *pinfo,
guint8 curr_layer_num = pinfo->curr_layer_num;
heur_dtbl_entry_t *hdtbl_entry;
exp_pdu_data_t *exp_pdu_data;
- proto_tree* tree = proto_tree_get_root(udp_tree);
+ proto_tree* tree = proto_tree_get_parent_tree(udp_tree);
/* populate per packet data variable */
udp_p_info = (udp_p_info_t*)p_get_proto_data(wmem_file_scope(), pinfo, proto_udp, pinfo->curr_layer_num);
@@ -858,7 +844,7 @@ udp_dissect_pdus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
return offset;
}
-static gboolean
+static bool
capture_udp(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
guint16 src_port, dst_port, low_port, high_port;
@@ -1229,8 +1215,12 @@ dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 ip_proto)
pinfo->srcport = udph->uh_sport;
pinfo->destport = udph->uh_dport;
- /* find(or create if needed) the conversation for this udp session */
- conv = find_or_create_conversation(pinfo);
+ /* find (and extend) an existing conversation, or create a new one */
+ conv = find_conversation_strat(pinfo, CONVERSATION_UDP, 0);
+ if(!conv) {
+ conv=conversation_new_strat(pinfo, CONVERSATION_UDP, 0);
+ }
+
udpd = get_udp_conversation_data(conv, pinfo);
if (udpd) {
item = proto_tree_add_uint(udp_tree, hf_udp_stream, tvb, offset, 0, udpd->stream);
@@ -1240,6 +1230,12 @@ dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 ip_proto)
* to tap listeners.
*/
udph->uh_stream = udpd->stream;
+
+ /* Copy the stream index into pinfo as well to make it available
+ * to callback functions (essentially conversation following events in GUI)
+ */
+ pinfo->stream_id = udpd->stream;
+
}
tap_queue_packet(udp_tap, pinfo, udph);
@@ -1523,7 +1519,7 @@ proto_register_udp(void)
register_decode_as(&udp_da);
register_conversation_table(proto_udp, FALSE, udpip_conversation_packet, udpip_endpoint_packet);
- register_conversation_filter("udp", "UDP", udp_filter_valid, udp_build_filter, NULL);
+ register_conversation_filter("udp", "UDP", udp_filter_valid, udp_build_filter_by_id, NULL);
register_follow_stream(proto_udp, "udp_follow", udp_follow_conv_filter, udp_follow_index_filter, udp_follow_address_filter,
udp_port_to_display, follow_tvb_tap_listener, get_udp_stream_count, NULL);
diff --git a/epan/dissectors/packet-udpcp.c b/epan/dissectors/packet-udpcp.c
index 9c53092182..d67f526f30 100644
--- a/epan/dissectors/packet-udpcp.c
+++ b/epan/dissectors/packet-udpcp.c
@@ -104,7 +104,7 @@ static dissector_handle_t udpcp_handle;
void proto_reg_handoff_udpcp (void);
/* User definable values */
-static range_t *global_udpcp_port_range = NULL;
+static range_t *global_udpcp_port_range;
#define DATA_FORMAT 0x01
#define ACK_FORMAT 0x02
@@ -134,7 +134,7 @@ typedef struct {
/* Framenum -> expected_sequence_number */
-static wmem_tree_t *sequence_number_result_table = NULL;
+static wmem_tree_t *sequence_number_result_table;
/* Reassembly table. */
@@ -175,10 +175,10 @@ static reassembly_table_functions udpcp_reassembly_table_functions =
/**************************************************************************/
/* Reassemble by default */
-static gboolean global_udpcp_reassemble = TRUE;
+static bool global_udpcp_reassemble = true;
/* By default do try to decode payload as XML/SOAP */
-static gboolean global_udpcp_decode_payload_as_soap = TRUE;
+static bool global_udpcp_decode_payload_as_soap = true;
static dissector_handle_t xml_handle;
@@ -356,7 +356,7 @@ dissect_udpcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
(fragment_number < (fragment_amount-1)) /* more_frags */
);
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
/* See if this completes an SDU */
tvbuff_t *next_tvb = process_reassembled_data(tvb, offset, pinfo, "Reassembled UDPCP Payload",
fh, &udpcp_frag_items,
diff --git a/epan/dissectors/packet-uds.c b/epan/dissectors/packet-uds.c
index 132b7606c8..daa6490171 100644
--- a/epan/dissectors/packet-uds.c
+++ b/epan/dissectors/packet-uds.c
@@ -1105,7 +1105,7 @@ static const enum_val_t certificate_decoding_vals[] = {
static gint uds_certificate_decoding_config = (gint)cert_parsing_off;
-static gboolean uds_dissect_small_sids_with_obd_ii = TRUE;
+static bool uds_dissect_small_sids_with_obd_ii = true;
typedef struct _address_string {
guint address;
@@ -1270,9 +1270,9 @@ simple_free(gpointer data) {
/* Routine IDs */
-static generic_addr_id_string_t *uds_uat_routine_ids = NULL;
-static guint uds_uat_routine_id_num = 0;
-static GHashTable *uds_ht_routine_ids = NULL;
+static generic_addr_id_string_t *uds_uat_routine_ids;
+static guint uds_uat_routine_id_num;
+static GHashTable *uds_ht_routine_ids;
UAT_HEX_CB_DEF(uds_uat_routine_ids, address, generic_addr_id_string_t)
UAT_HEX_CB_DEF(uds_uat_routine_ids, id, generic_addr_id_string_t)
@@ -1319,9 +1319,9 @@ infocol_append_routine_name(packet_info *pinfo, guint32 addr, guint16 routine_id
/* Data IDs */
-static generic_addr_id_string_t *uds_uat_data_ids = NULL;
-static guint uds_uat_data_id_num = 0;
-static GHashTable *uds_ht_data_ids = NULL;
+static generic_addr_id_string_t *uds_uat_data_ids;
+static guint uds_uat_data_id_num;
+static GHashTable *uds_ht_data_ids;
UAT_HEX_CB_DEF(uds_uat_data_ids, address, generic_addr_id_string_t)
UAT_HEX_CB_DEF(uds_uat_data_ids, id, generic_addr_id_string_t)
@@ -1368,9 +1368,9 @@ infocol_append_data_name(packet_info *pinfo, guint32 addr, guint16 data_identifi
/* DTC IDs */
-static generic_addr_id_string_t *uds_uat_dtc_ids = NULL;
-static guint uds_uat_dtc_id_num = 0;
-static GHashTable *uds_ht_dtc_ids = NULL;
+static generic_addr_id_string_t *uds_uat_dtc_ids;
+static guint uds_uat_dtc_id_num;
+static GHashTable *uds_ht_dtc_ids;
UAT_HEX_CB_DEF(uds_uat_dtc_ids, address, generic_addr_id_string_t)
UAT_HEX_CB_DEF(uds_uat_dtc_ids, id, generic_addr_id_string_t)
@@ -1409,9 +1409,9 @@ protoitem_append_dtc_name(proto_item *ti, guint32 addr, guint32 dtc_id) {
/* Addresses */
-static address_string_t *uds_uat_addresses = NULL;
-static guint uds_uat_addresses_num = 0;
-static GHashTable *uds_ht_addresses = NULL;
+static address_string_t *uds_uat_addresses;
+static guint uds_uat_addresses_num;
+static GHashTable *uds_ht_addresses;
UAT_HEX_CB_DEF(uds_uat_addresses, address, address_string_t)
UAT_CSTRING_CB_DEF(uds_uat_addresses, name, address_string_t)
@@ -1711,7 +1711,7 @@ dissect_uds_subfunction(tvbuff_t *tvb, packet_info *pinfo, proto_tree *uds_tree,
}
if (suppress_bit) {
- gboolean suppress;
+ bool suppress;
proto_tree_add_item_ret_boolean(subfunction_tree, hf_uds_suppress_pos_rsp_msg_ind, tvb, offset, 1, ENC_NA, &suppress);
@@ -2310,7 +2310,7 @@ dissect_uds_internal(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint1
switch (service) {
case UDS_SERVICES_DSC:
{
- gboolean suppress;
+ bool suppress;
proto_tree_add_item_ret_boolean(uds_tree, hf_uds_dsc_suppress_pos_rsp_msg_ind, tvb, offset, 1, ENC_NA, &suppress);
proto_tree_add_item_ret_uint(uds_tree, hf_uds_dsc_subfunction, tvb, offset, 1, ENC_NA, &enum_val);
col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(enum_val, uds_dsc_types, "Unknown (0x%02x)"));
@@ -2370,7 +2370,7 @@ dissect_uds_internal(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint1
case UDS_SERVICES_RDBI:
if (sid & UDS_REPLY_MASK) {
- /* Can't know the size of the data for each identifier, Decode like if there is only one idenfifier */
+ /* Can't know the size of the data for each identifier, Decode like if there is only one identifier */
guint32 data_identifier;
ti = proto_tree_add_item_ret_uint(uds_tree, hf_uds_rdbi_data_identifier, tvb, offset, 2, ENC_BIG_ENDIAN, &data_identifier);
protoitem_append_data_name(ti, ecu_address, (guint16)data_identifier);
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index cedc51620a..e039efa158 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -54,7 +54,7 @@ static int proto_ulp;
#define ULP_HEADER_SIZE 2
-static gboolean ulp_desegment = TRUE;
+static bool ulp_desegment = true;
static int hf_ulp_ULP_PDU_PDU; /* ULP_PDU */
static int hf_ulp_length; /* INTEGER_0_65535 */
@@ -757,235 +757,235 @@ static gint ett_ulp;
static gint ett_ulp_setid;
static gint ett_ulp_thirdPartyId;
static gint ett_ulp_ganssTimeModels;
-static gint ett_ulp_ULP_PDU;
-static gint ett_ulp_UlpMessage;
-static gint ett_ulp_SUPLINIT;
-static gint ett_ulp_Notification;
-static gint ett_ulp_SUPLSTART;
-static gint ett_ulp_SETCapabilities;
-static gint ett_ulp_PosTechnology;
-static gint ett_ulp_PosProtocol;
-static gint ett_ulp_SUPLRESPONSE;
-static gint ett_ulp_SETAuthKey;
-static gint ett_ulp_SUPLPOSINIT;
-static gint ett_ulp_RequestedAssistData;
-static gint ett_ulp_NavigationModel;
-static gint ett_ulp_SatelliteInfo;
-static gint ett_ulp_SatelliteInfoElement;
-static gint ett_ulp_SUPLPOS;
-static gint ett_ulp_PosPayLoad;
-static gint ett_ulp_SUPLEND;
-static gint ett_ulp_SUPLAUTHREQ;
-static gint ett_ulp_SUPLAUTHRESP;
-static gint ett_ulp_Ver2_SUPLNOTIFY;
-static gint ett_ulp_Ver2_SUPLNOTIFYRESPONSE;
-static gint ett_ulp_Ver2_SUPLSETINIT;
-static gint ett_ulp_Ver2_SUPLTRIGGEREDSTART;
-static gint ett_ulp_TriggerParams;
-static gint ett_ulp_PeriodicParams;
-static gint ett_ulp_AreaEventParams;
-static gint ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList;
-static gint ett_ulp_RepeatedReportingParams;
-static gint ett_ulp_GeographicTargetAreaList;
-static gint ett_ulp_GeographicTargetArea;
-static gint ett_ulp_AreaIdList;
-static gint ett_ulp_AreaIdSet;
-static gint ett_ulp_AreaId;
-static gint ett_ulp_GSMAreaId;
-static gint ett_ulp_WCDMAAreaId;
-static gint ett_ulp_CDMAAreaId;
-static gint ett_ulp_HRPDAreaId;
-static gint ett_ulp_UMBAreaId;
-static gint ett_ulp_LTEAreaId;
-static gint ett_ulp_WLANAreaId;
-static gint ett_ulp_WimaxAreaId;
-static gint ett_ulp_NRAreaId;
-static gint ett_ulp_GeoAreaMappingList;
-static gint ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE;
-static gint ett_ulp_ReportingMode;
-static gint ett_ulp_BatchRepConditions;
-static gint ett_ulp_BatchRepType;
-static gint ett_ulp_Ver2_SUPLREPORT;
-static gint ett_ulp_SessionList;
-static gint ett_ulp_SessionInformation;
-static gint ett_ulp_ReportDataList;
-static gint ett_ulp_ReportData;
-static gint ett_ulp_PositionData;
-static gint ett_ulp_GANSSsignalsInfo;
-static gint ett_ulp_GANSSSignalsDescription;
-static gint ett_ulp_TimeStamp;
-static gint ett_ulp_Ver2_SUPLTRIGGEREDSTOP;
-static gint ett_ulp_Ver2_SUPL_INIT_extension;
-static gint ett_ulp_HistoricReporting;
-static gint ett_ulp_ReportingCriteria;
-static gint ett_ulp_TimeWindow;
-static gint ett_ulp_ProtectionLevel;
-static gint ett_ulp_BasicProtectionParams;
-static gint ett_ulp_Ver2_SUPL_START_extension;
-static gint ett_ulp_Ver2_SUPL_RESPONSE_extension;
-static gint ett_ulp_Ver2_SUPL_POS_INIT_extension;
-static gint ett_ulp_Ver2_SUPL_POS_extension;
-static gint ett_ulp_Ver2_SUPL_END_extension;
-static gint ett_ulp_Ver2_Notification_extension;
-static gint ett_ulp_Ver2_SETCapabilities_extension;
-static gint ett_ulp_ServiceCapabilities;
-static gint ett_ulp_ServicesSupported;
-static gint ett_ulp_EventTriggerCapabilities;
-static gint ett_ulp_GeoAreaShapesSupported;
-static gint ett_ulp_SessionCapabilities;
-static gint ett_ulp_SupportedBearers;
-static gint ett_ulp_Ver2_PosProtocol_extension;
-static gint ett_ulp_PosProtocolVersion3GPP;
-static gint ett_ulp_PosProtocolVersion3GPP2;
-static gint ett_ulp_Supported3GPP2PosProtocolVersion;
-static gint ett_ulp_PosProtocolVersionOMA;
-static gint ett_ulp_Ver2_PosTechnology_extension;
-static gint ett_ulp_GANSSPositionMethods;
-static gint ett_ulp_GANSSPositionMethod;
-static gint ett_ulp_RTK;
-static gint ett_ulp_GANSSPositioningMethodTypes;
-static gint ett_ulp_AdditionalPositioningMethods;
-static gint ett_ulp_AddPosSupport_Element;
-static gint ett_ulp_T_addPosMode;
-static gint ett_ulp_Ver2_RequestedAssistData_extension;
-static gint ett_ulp_GanssRequestedCommonAssistanceDataList;
-static gint ett_ulp_GanssRequestedGenericAssistanceDataList;
-static gint ett_ulp_GanssReqGenericData;
-static gint ett_ulp_GanssNavigationModelData;
-static gint ett_ulp_SatellitesListRelatedDataList;
-static gint ett_ulp_SatellitesListRelatedData;
-static gint ett_ulp_GanssDataBits;
-static gint ett_ulp_ReqDataBitAssistanceList;
-static gint ett_ulp_T_ganssDataBitSatList;
-static gint ett_ulp_GanssAdditionalDataChoices;
-static gint ett_ulp_ExtendedEphemeris;
-static gint ett_ulp_ExtendedEphCheck;
-static gint ett_ulp_GanssExtendedEphCheck;
-static gint ett_ulp_GPSTime;
-static gint ett_ulp_GANSSextEphTime;
-static gint ett_ulp_Ver2_PosPayLoad_extension;
-static gint ett_ulp_T_lPPPayload;
-static gint ett_ulp_T_tia801Payload;
-static gint ett_ulp_Version;
-static gint ett_ulp_SessionID;
-static gint ett_ulp_SetSessionID;
-static gint ett_ulp_SETId;
-static gint ett_ulp_SlpSessionID;
-static gint ett_ulp_IPAddress;
-static gint ett_ulp_SLPAddress;
-static gint ett_ulp_LocationId;
-static gint ett_ulp_CellInfo;
-static gint ett_ulp_Position;
-static gint ett_ulp_PositionEstimate;
-static gint ett_ulp_T_uncertainty;
-static gint ett_ulp_AltitudeInfo;
-static gint ett_ulp_CdmaCellInformation;
-static gint ett_ulp_GsmCellInformation;
-static gint ett_ulp_WcdmaCellInformation;
-static gint ett_ulp_TimingAdvance;
-static gint ett_ulp_FrequencyInfo;
-static gint ett_ulp_FrequencySpecificInfo;
-static gint ett_ulp_FrequencyInfoFDD;
-static gint ett_ulp_FrequencyInfoTDD;
-static gint ett_ulp_NMR;
-static gint ett_ulp_NMRelement;
-static gint ett_ulp_MeasuredResultsList;
-static gint ett_ulp_MeasuredResults;
-static gint ett_ulp_CellMeasuredResultsList;
-static gint ett_ulp_CellMeasuredResults;
-static gint ett_ulp_T_modeSpecificInfo;
-static gint ett_ulp_T_fdd;
-static gint ett_ulp_T_tdd;
-static gint ett_ulp_TimeslotISCP_List;
-static gint ett_ulp_PrimaryCPICH_Info;
-static gint ett_ulp_QoP;
-static gint ett_ulp_Velocity;
-static gint ett_ulp_Horvel;
-static gint ett_ulp_Horandvervel;
-static gint ett_ulp_Horveluncert;
-static gint ett_ulp_Horandveruncert;
-static gint ett_ulp_MultipleLocationIds;
-static gint ett_ulp_LocationIdData;
-static gint ett_ulp_SupportedNetworkInformation;
-static gint ett_ulp_SupportedWLANInfo;
-static gint ett_ulp_SupportedWLANApsList;
-static gint ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData;
-static gint ett_ulp_SupportedWLANApsChannel11a;
-static gint ett_ulp_SupportedWLANApsChannel11bg;
-static gint ett_ulp_SupportedWLANApData;
-static gint ett_ulp_SupportedWCDMAInfo;
-static gint ett_ulp_Ver2_CellInfo_extension;
-static gint ett_ulp_HrpdCellInformation;
-static gint ett_ulp_UmbCellInformation;
-static gint ett_ulp_LteCellInformation;
-static gint ett_ulp_MeasResultListEUTRA;
-static gint ett_ulp_MeasResultEUTRA;
-static gint ett_ulp_T_cgi_Info;
-static gint ett_ulp_T_measResult;
-static gint ett_ulp_CellGlobalIdEUTRA;
-static gint ett_ulp_PLMN_Identity;
-static gint ett_ulp_MCC;
-static gint ett_ulp_MNC;
-static gint ett_ulp_ServingInformation5G;
-static gint ett_ulp_NeighbourInformation5G;
-static gint ett_ulp_WlanAPInformation;
-static gint ett_ulp_RTD;
-static gint ett_ulp_ReportedLocation;
-static gint ett_ulp_LocationData;
-static gint ett_ulp_RepLocation;
-static gint ett_ulp_LciLocData;
-static gint ett_ulp_LocationDataLCI;
-static gint ett_ulp_WimaxBSInformation;
-static gint ett_ulp_WimaxBsID;
-static gint ett_ulp_WimaxRTD;
-static gint ett_ulp_WimaxNMRList;
-static gint ett_ulp_WimaxNMR;
-static gint ett_ulp_NRCellInformation;
-static gint ett_ulp_ServingCellInformationNR;
-static gint ett_ulp_ServCellNR;
-static gint ett_ulp_MeasResultListNR;
-static gint ett_ulp_MeasResultNR;
-static gint ett_ulp_CellGlobalIdNR;
-static gint ett_ulp_NR_Measurements;
-static gint ett_ulp_UTRAN_GPSReferenceTimeAssistance;
-static gint ett_ulp_UTRAN_GPSReferenceTime;
-static gint ett_ulp_T_utran_GPSTimingOfCell;
-static gint ett_ulp_T_modeSpecificInfo_01;
-static gint ett_ulp_T_fdd_01;
-static gint ett_ulp_T_tdd_01;
-static gint ett_ulp_UTRAN_GPSReferenceTimeResult;
-static gint ett_ulp_T_set_GPSTimingOfCell;
-static gint ett_ulp_T_modeSpecificInfo_02;
-static gint ett_ulp_T_fdd_02;
-static gint ett_ulp_T_tdd_02;
-static gint ett_ulp_UTRAN_GANSSReferenceTimeAssistance;
-static gint ett_ulp_UTRAN_GANSSReferenceTime;
-static gint ett_ulp_T_modeSpecificInfo_03;
-static gint ett_ulp_T_fdd_03;
-static gint ett_ulp_T_tdd_03;
-static gint ett_ulp_UTRAN_GANSSReferenceTimeResult;
-static gint ett_ulp_SET_GANSSReferenceTime;
-static gint ett_ulp_T_set_GANSSTimingOfCell;
-static gint ett_ulp_T_modeSpecificInfo_04;
-static gint ett_ulp_T_fdd_04;
-static gint ett_ulp_T_tdd_04;
-static gint ett_ulp_GNSSPosTechnology;
-static gint ett_ulp_GANSSSignals;
-static gint ett_ulp_SPCTID;
-static gint ett_ulp_ThirdParty;
-static gint ett_ulp_ThirdPartyID;
-static gint ett_ulp_ApplicationID;
-static gint ett_ulp_ReportingCap;
-static gint ett_ulp_RepMode;
-static gint ett_ulp_BatchRepCap;
-static gint ett_ulp_Coordinate;
-static gint ett_ulp_CircularArea;
-static gint ett_ulp_EllipticalArea;
-static gint ett_ulp_PolygonArea;
-static gint ett_ulp_PolygonDescription;
-static gint ett_ulp_Ver2_HighAccuracyPosition;
-static gint ett_ulp_HighAccuracyPositionEstimate;
-static gint ett_ulp_HighAccuracyAltitudeInfo;
+static int ett_ulp_ULP_PDU;
+static int ett_ulp_UlpMessage;
+static int ett_ulp_SUPLINIT;
+static int ett_ulp_Notification;
+static int ett_ulp_SUPLSTART;
+static int ett_ulp_SETCapabilities;
+static int ett_ulp_PosTechnology;
+static int ett_ulp_PosProtocol;
+static int ett_ulp_SUPLRESPONSE;
+static int ett_ulp_SETAuthKey;
+static int ett_ulp_SUPLPOSINIT;
+static int ett_ulp_RequestedAssistData;
+static int ett_ulp_NavigationModel;
+static int ett_ulp_SatelliteInfo;
+static int ett_ulp_SatelliteInfoElement;
+static int ett_ulp_SUPLPOS;
+static int ett_ulp_PosPayLoad;
+static int ett_ulp_SUPLEND;
+static int ett_ulp_SUPLAUTHREQ;
+static int ett_ulp_SUPLAUTHRESP;
+static int ett_ulp_Ver2_SUPLNOTIFY;
+static int ett_ulp_Ver2_SUPLNOTIFYRESPONSE;
+static int ett_ulp_Ver2_SUPLSETINIT;
+static int ett_ulp_Ver2_SUPLTRIGGEREDSTART;
+static int ett_ulp_TriggerParams;
+static int ett_ulp_PeriodicParams;
+static int ett_ulp_AreaEventParams;
+static int ett_ulp_SEQUENCE_SIZE_1_maxAreaIdList_OF_AreaIdList;
+static int ett_ulp_RepeatedReportingParams;
+static int ett_ulp_GeographicTargetAreaList;
+static int ett_ulp_GeographicTargetArea;
+static int ett_ulp_AreaIdList;
+static int ett_ulp_AreaIdSet;
+static int ett_ulp_AreaId;
+static int ett_ulp_GSMAreaId;
+static int ett_ulp_WCDMAAreaId;
+static int ett_ulp_CDMAAreaId;
+static int ett_ulp_HRPDAreaId;
+static int ett_ulp_UMBAreaId;
+static int ett_ulp_LTEAreaId;
+static int ett_ulp_WLANAreaId;
+static int ett_ulp_WimaxAreaId;
+static int ett_ulp_NRAreaId;
+static int ett_ulp_GeoAreaMappingList;
+static int ett_ulp_Ver2_SUPLTRIGGEREDRESPONSE;
+static int ett_ulp_ReportingMode;
+static int ett_ulp_BatchRepConditions;
+static int ett_ulp_BatchRepType;
+static int ett_ulp_Ver2_SUPLREPORT;
+static int ett_ulp_SessionList;
+static int ett_ulp_SessionInformation;
+static int ett_ulp_ReportDataList;
+static int ett_ulp_ReportData;
+static int ett_ulp_PositionData;
+static int ett_ulp_GANSSsignalsInfo;
+static int ett_ulp_GANSSSignalsDescription;
+static int ett_ulp_TimeStamp;
+static int ett_ulp_Ver2_SUPLTRIGGEREDSTOP;
+static int ett_ulp_Ver2_SUPL_INIT_extension;
+static int ett_ulp_HistoricReporting;
+static int ett_ulp_ReportingCriteria;
+static int ett_ulp_TimeWindow;
+static int ett_ulp_ProtectionLevel;
+static int ett_ulp_BasicProtectionParams;
+static int ett_ulp_Ver2_SUPL_START_extension;
+static int ett_ulp_Ver2_SUPL_RESPONSE_extension;
+static int ett_ulp_Ver2_SUPL_POS_INIT_extension;
+static int ett_ulp_Ver2_SUPL_POS_extension;
+static int ett_ulp_Ver2_SUPL_END_extension;
+static int ett_ulp_Ver2_Notification_extension;
+static int ett_ulp_Ver2_SETCapabilities_extension;
+static int ett_ulp_ServiceCapabilities;
+static int ett_ulp_ServicesSupported;
+static int ett_ulp_EventTriggerCapabilities;
+static int ett_ulp_GeoAreaShapesSupported;
+static int ett_ulp_SessionCapabilities;
+static int ett_ulp_SupportedBearers;
+static int ett_ulp_Ver2_PosProtocol_extension;
+static int ett_ulp_PosProtocolVersion3GPP;
+static int ett_ulp_PosProtocolVersion3GPP2;
+static int ett_ulp_Supported3GPP2PosProtocolVersion;
+static int ett_ulp_PosProtocolVersionOMA;
+static int ett_ulp_Ver2_PosTechnology_extension;
+static int ett_ulp_GANSSPositionMethods;
+static int ett_ulp_GANSSPositionMethod;
+static int ett_ulp_RTK;
+static int ett_ulp_GANSSPositioningMethodTypes;
+static int ett_ulp_AdditionalPositioningMethods;
+static int ett_ulp_AddPosSupport_Element;
+static int ett_ulp_T_addPosMode;
+static int ett_ulp_Ver2_RequestedAssistData_extension;
+static int ett_ulp_GanssRequestedCommonAssistanceDataList;
+static int ett_ulp_GanssRequestedGenericAssistanceDataList;
+static int ett_ulp_GanssReqGenericData;
+static int ett_ulp_GanssNavigationModelData;
+static int ett_ulp_SatellitesListRelatedDataList;
+static int ett_ulp_SatellitesListRelatedData;
+static int ett_ulp_GanssDataBits;
+static int ett_ulp_ReqDataBitAssistanceList;
+static int ett_ulp_T_ganssDataBitSatList;
+static int ett_ulp_GanssAdditionalDataChoices;
+static int ett_ulp_ExtendedEphemeris;
+static int ett_ulp_ExtendedEphCheck;
+static int ett_ulp_GanssExtendedEphCheck;
+static int ett_ulp_GPSTime;
+static int ett_ulp_GANSSextEphTime;
+static int ett_ulp_Ver2_PosPayLoad_extension;
+static int ett_ulp_T_lPPPayload;
+static int ett_ulp_T_tia801Payload;
+static int ett_ulp_Version;
+static int ett_ulp_SessionID;
+static int ett_ulp_SetSessionID;
+static int ett_ulp_SETId;
+static int ett_ulp_SlpSessionID;
+static int ett_ulp_IPAddress;
+static int ett_ulp_SLPAddress;
+static int ett_ulp_LocationId;
+static int ett_ulp_CellInfo;
+static int ett_ulp_Position;
+static int ett_ulp_PositionEstimate;
+static int ett_ulp_T_uncertainty;
+static int ett_ulp_AltitudeInfo;
+static int ett_ulp_CdmaCellInformation;
+static int ett_ulp_GsmCellInformation;
+static int ett_ulp_WcdmaCellInformation;
+static int ett_ulp_TimingAdvance;
+static int ett_ulp_FrequencyInfo;
+static int ett_ulp_FrequencySpecificInfo;
+static int ett_ulp_FrequencyInfoFDD;
+static int ett_ulp_FrequencyInfoTDD;
+static int ett_ulp_NMR;
+static int ett_ulp_NMRelement;
+static int ett_ulp_MeasuredResultsList;
+static int ett_ulp_MeasuredResults;
+static int ett_ulp_CellMeasuredResultsList;
+static int ett_ulp_CellMeasuredResults;
+static int ett_ulp_T_modeSpecificInfo;
+static int ett_ulp_T_fdd;
+static int ett_ulp_T_tdd;
+static int ett_ulp_TimeslotISCP_List;
+static int ett_ulp_PrimaryCPICH_Info;
+static int ett_ulp_QoP;
+static int ett_ulp_Velocity;
+static int ett_ulp_Horvel;
+static int ett_ulp_Horandvervel;
+static int ett_ulp_Horveluncert;
+static int ett_ulp_Horandveruncert;
+static int ett_ulp_MultipleLocationIds;
+static int ett_ulp_LocationIdData;
+static int ett_ulp_SupportedNetworkInformation;
+static int ett_ulp_SupportedWLANInfo;
+static int ett_ulp_SupportedWLANApsList;
+static int ett_ulp_SEQUENCE_SIZE_1_maxWLANApDataSize_OF_SupportedWLANApData;
+static int ett_ulp_SupportedWLANApsChannel11a;
+static int ett_ulp_SupportedWLANApsChannel11bg;
+static int ett_ulp_SupportedWLANApData;
+static int ett_ulp_SupportedWCDMAInfo;
+static int ett_ulp_Ver2_CellInfo_extension;
+static int ett_ulp_HrpdCellInformation;
+static int ett_ulp_UmbCellInformation;
+static int ett_ulp_LteCellInformation;
+static int ett_ulp_MeasResultListEUTRA;
+static int ett_ulp_MeasResultEUTRA;
+static int ett_ulp_T_cgi_Info;
+static int ett_ulp_T_measResult;
+static int ett_ulp_CellGlobalIdEUTRA;
+static int ett_ulp_PLMN_Identity;
+static int ett_ulp_MCC;
+static int ett_ulp_MNC;
+static int ett_ulp_ServingInformation5G;
+static int ett_ulp_NeighbourInformation5G;
+static int ett_ulp_WlanAPInformation;
+static int ett_ulp_RTD;
+static int ett_ulp_ReportedLocation;
+static int ett_ulp_LocationData;
+static int ett_ulp_RepLocation;
+static int ett_ulp_LciLocData;
+static int ett_ulp_LocationDataLCI;
+static int ett_ulp_WimaxBSInformation;
+static int ett_ulp_WimaxBsID;
+static int ett_ulp_WimaxRTD;
+static int ett_ulp_WimaxNMRList;
+static int ett_ulp_WimaxNMR;
+static int ett_ulp_NRCellInformation;
+static int ett_ulp_ServingCellInformationNR;
+static int ett_ulp_ServCellNR;
+static int ett_ulp_MeasResultListNR;
+static int ett_ulp_MeasResultNR;
+static int ett_ulp_CellGlobalIdNR;
+static int ett_ulp_NR_Measurements;
+static int ett_ulp_UTRAN_GPSReferenceTimeAssistance;
+static int ett_ulp_UTRAN_GPSReferenceTime;
+static int ett_ulp_T_utran_GPSTimingOfCell;
+static int ett_ulp_T_modeSpecificInfo_01;
+static int ett_ulp_T_fdd_01;
+static int ett_ulp_T_tdd_01;
+static int ett_ulp_UTRAN_GPSReferenceTimeResult;
+static int ett_ulp_T_set_GPSTimingOfCell;
+static int ett_ulp_T_modeSpecificInfo_02;
+static int ett_ulp_T_fdd_02;
+static int ett_ulp_T_tdd_02;
+static int ett_ulp_UTRAN_GANSSReferenceTimeAssistance;
+static int ett_ulp_UTRAN_GANSSReferenceTime;
+static int ett_ulp_T_modeSpecificInfo_03;
+static int ett_ulp_T_fdd_03;
+static int ett_ulp_T_tdd_03;
+static int ett_ulp_UTRAN_GANSSReferenceTimeResult;
+static int ett_ulp_SET_GANSSReferenceTime;
+static int ett_ulp_T_set_GANSSTimingOfCell;
+static int ett_ulp_T_modeSpecificInfo_04;
+static int ett_ulp_T_fdd_04;
+static int ett_ulp_T_tdd_04;
+static int ett_ulp_GNSSPosTechnology;
+static int ett_ulp_GANSSSignals;
+static int ett_ulp_SPCTID;
+static int ett_ulp_ThirdParty;
+static int ett_ulp_ThirdPartyID;
+static int ett_ulp_ApplicationID;
+static int ett_ulp_ReportingCap;
+static int ett_ulp_RepMode;
+static int ett_ulp_BatchRepCap;
+static int ett_ulp_Coordinate;
+static int ett_ulp_CircularArea;
+static int ett_ulp_EllipticalArea;
+static int ett_ulp_PolygonArea;
+static int ett_ulp_PolygonDescription;
+static int ett_ulp_Ver2_HighAccuracyPosition;
+static int ett_ulp_HighAccuracyPositionEstimate;
+static int ett_ulp_HighAccuracyAltitudeInfo;
static dissector_handle_t ulp_tcp_handle;
static dissector_handle_t ulp_pdu_handle;
@@ -6575,7 +6575,7 @@ dissect_ulp_StatusCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_ulp_INTEGER_M2147483648_2147483647(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- G_MININT32, 2147483647U, NULL, FALSE);
+ INT32_MIN, 2147483647U, NULL, FALSE);
return offset;
}
diff --git a/epan/dissectors/packet-uma.c b/epan/dissectors/packet-uma.c
index 4688544b45..cd1fb041cd 100644
--- a/epan/dissectors/packet-uma.c
+++ b/epan/dissectors/packet-uma.c
@@ -58,7 +58,7 @@ void proto_reg_handoff_uma(void);
/* Length field is 2 bytes and comes first */
#define UMA_HEADER_SIZE 2
-static gboolean uma_desegment = TRUE;
+static bool uma_desegment = true;
static dissector_handle_t uma_tcp_handle;
static dissector_handle_t uma_udp_handle;
diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c
index fbbf69bffb..64c582bba3 100644
--- a/epan/dissectors/packet-umts_fp.c
+++ b/epan/dissectors/packet-umts_fp.c
@@ -240,14 +240,14 @@ static dissector_handle_t fp_handle;
static dissector_handle_t fp_aal2_handle;
-static proto_tree *top_level_tree = NULL;
+static proto_tree *top_level_tree;
/* Variables used for preferences */
-static gboolean preferences_call_mac_dissectors = TRUE;
-static gboolean preferences_show_release_info = TRUE;
-static gboolean preferences_payload_checksum = TRUE;
-static gboolean preferences_header_checksum = TRUE;
-static gboolean preferences_track_paging_indications = TRUE;
+static bool preferences_call_mac_dissectors = true;
+static bool preferences_show_release_info = true;
+static bool preferences_payload_checksum = true;
+static bool preferences_header_checksum = true;
+static bool preferences_track_paging_indications = true;
/* E-DCH (T1) channel header information */
struct edch_t1_subframe_info
diff --git a/epan/dissectors/packet-umts_mac.c b/epan/dissectors/packet-umts_mac.c
index 8a1887ce5f..7ff7baf787 100644
--- a/epan/dissectors/packet-umts_mac.c
+++ b/epan/dissectors/packet-umts_mac.c
@@ -129,8 +129,8 @@ typedef struct {
guint8 lchid; /* Logical Channel Identifier. */
guint ueid; /* User Equipment Identifier. */
} mac_is_channel;
-static GHashTable * mac_is_sdus = NULL; /* channel -> (frag -> sdu) */
-static GHashTable * mac_is_fragments = NULL; /* channel -> body_parts[] */
+static GHashTable * mac_is_sdus; /* channel -> (frag -> sdu) */
+static GHashTable * mac_is_fragments; /* channel -> body_parts[] */
static gboolean mac_is_channel_equal(gconstpointer a, gconstpointer b)
{
const mac_is_channel *x = (const mac_is_channel *)a, *y = (const mac_is_channel *)b;
diff --git a/epan/dissectors/packet-umts_rlc.c b/epan/dissectors/packet-umts_rlc.c
index 8ad24eeb7b..63a103eb5a 100644
--- a/epan/dissectors/packet-umts_rlc.c
+++ b/epan/dissectors/packet-umts_rlc.c
@@ -43,23 +43,23 @@ int proto_umts_rlc;
extern int proto_fp;
/* Preference to perform reassembly */
-static gboolean global_rlc_perform_reassemby = TRUE;
+static bool global_rlc_perform_reassemby = true;
/* Preference to expect RLC headers without payloads */
-static gboolean global_rlc_headers_expected = FALSE;
+static bool global_rlc_headers_expected;
/* Preference to expect ONLY ciphered data */
-static gboolean global_rlc_ciphered = FALSE;
+static bool global_rlc_ciphered;
/* Preference to ignore ciphering state reported from RRC */
/* This is important for captures with deciphered traffic AND the original security RRC messages present*/
-static gboolean global_ignore_rrc_ciphering_indication = FALSE;
+static bool global_ignore_rrc_ciphering_indication;
/* Preference to try deciphering */
-static gboolean global_rlc_try_decipher = FALSE;
+static bool global_rlc_try_decipher;
#ifdef HAVE_UMTS_KASUMI
-static const char *global_rlc_kasumi_key = NULL;
+static const char *global_rlc_kasumi_key;
#endif
/* LI size preference */
@@ -228,11 +228,11 @@ static const value_string rlc_sufi_vals[] = {
};
/* reassembly related data */
-static GHashTable *fragment_table = NULL; /* table of not yet assembled fragments */
-static GHashTable *endpoints = NULL; /* List of SDU-endpoints */
-static GHashTable *reassembled_table = NULL; /* maps fragment -> complete sdu */
-static GHashTable *sequence_table = NULL; /* channel -> seq */
-static GHashTable *duplicate_table = NULL; /* duplicates */
+static GHashTable *fragment_table; /* table of not yet assembled fragments */
+static GHashTable *endpoints; /* List of SDU-endpoints */
+static GHashTable *reassembled_table; /* maps fragment -> complete sdu */
+static GHashTable *sequence_table; /* channel -> seq */
+static GHashTable *duplicate_table; /* duplicates */
/* identify an RLC channel, using one of two options:
* - via Radio Bearer ID and unique UE ID
@@ -306,7 +306,7 @@ typedef struct umts_kat_key{ /*Stores 128-bits KASUMI key*/
/*Counter used as input for confidentiality algorithm*/
static guint32 ps_counter[31][2] ;
static gboolean counter_init[31][2];
-static guint32 max_counter = 0;
+static guint32 max_counter;
static GTree * counter_map; /*Saves the countervalues at first pass through, since they will be update*/
/* hashtable functions for fragment table
diff --git a/epan/dissectors/packet-usb-com.c b/epan/dissectors/packet-usb-com.c
index c9de4b4a20..674ffec9a1 100644
--- a/epan/dissectors/packet-usb-com.c
+++ b/epan/dissectors/packet-usb-com.c
@@ -139,7 +139,7 @@ static dissector_handle_t eth_withoutfcs_handle;
static expert_field ei_unexpected_controlling_iface;
-static wmem_tree_t* controlling_ifaces = NULL;
+static wmem_tree_t* controlling_ifaces;
typedef struct _controlling_iface {
guint16 interfaceClass;
diff --git a/epan/dissectors/packet-usb-dfu.c b/epan/dissectors/packet-usb-dfu.c
index 6a2fe7465b..a32a335395 100644
--- a/epan/dissectors/packet-usb-dfu.c
+++ b/epan/dissectors/packet-usb-dfu.c
@@ -56,7 +56,7 @@ static dissector_handle_t usb_dfu_handle;
static dissector_handle_t usf_dfu_descriptor_handle;
-static wmem_tree_t *command_info = NULL;
+static wmem_tree_t *command_info;
typedef struct _command_data {
guint32 bus_id;
diff --git a/epan/dissectors/packet-usb-hid.c b/epan/dissectors/packet-usb-hid.c
index 82e47cee5f..d734b0109b 100644
--- a/epan/dissectors/packet-usb-hid.c
+++ b/epan/dissectors/packet-usb-hid.c
@@ -181,7 +181,7 @@ struct usb_hid_global_state {
unsigned int usage_page;
};
-static wmem_tree_t *report_descriptors = NULL;
+static wmem_tree_t *report_descriptors;
/* local items */
diff --git a/epan/dissectors/packet-usb-video.c b/epan/dissectors/packet-usb-video.c
index 3e0c30cbcc..28b77ccaef 100644
--- a/epan/dissectors/packet-usb-video.c
+++ b/epan/dissectors/packet-usb-video.c
@@ -1578,8 +1578,9 @@ get_control_selector_values(guint8 entity_id, usb_conv_info_t *usb_conv_info)
video_entity_t *entity = NULL;
value_string_ext *selectors = NULL;
- if (usb_conv_info == NULL)
+ if (usb_conv_info == NULL || usb_conv_info->class_data_type != USB_CONV_VIDEO) {
return NULL;
+ }
video_conv_info = (video_conv_info_t *)usb_conv_info->class_data;
if (video_conv_info)
diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c
index 99e6ae6ca5..bffac71cf9 100644
--- a/epan/dissectors/packet-usb.c
+++ b/epan/dissectors/packet-usb.c
@@ -423,7 +423,7 @@ static int * const usb_usbpcap_info_fields[] = {
};
static int usb_tap;
-static gboolean try_heuristics = TRUE;
+static bool try_heuristics = true;
static dissector_table_t usb_bulk_dissector_table;
static dissector_table_t usb_control_dissector_table;
@@ -434,9 +434,9 @@ static heur_dissector_list_t heur_bulk_subdissector_list;
static heur_dissector_list_t heur_control_subdissector_list;
static heur_dissector_list_t heur_interrupt_subdissector_list;
-static wmem_tree_t *device_to_protocol_table = NULL;
-static wmem_tree_t *device_to_product_table = NULL;
-static wmem_tree_t *usbpcap_setup_data = NULL;
+static wmem_tree_t *device_to_protocol_table;
+static wmem_tree_t *device_to_product_table;
+static wmem_tree_t *usbpcap_setup_data;
static dissector_table_t device_to_dissector;
static dissector_table_t protocol_to_dissector;
@@ -2419,7 +2419,7 @@ dissect_usb_string_descriptor(packet_info *pinfo _U_, proto_tree *parent_tree,
}
if (!usb_trans_info->u.get_descriptor.usb_index) {
- /* list of languanges */
+ /* list of languages */
while (offset >= old_offset && len > (offset - old_offset)) {
/* wLANGID */
proto_tree_add_item(tree, hf_usb_wLANGID, tvb, offset, 2, ENC_LITTLE_ENDIAN);
diff --git a/epan/dissectors/packet-usbll.c b/epan/dissectors/packet-usbll.c
index bd1b801597..0f0b25531a 100644
--- a/epan/dissectors/packet-usbll.c
+++ b/epan/dissectors/packet-usbll.c
@@ -496,7 +496,7 @@ typedef struct usbll_data {
struct usbll_data *next;
} usbll_data_t;
-static usbll_data_t *usbll_data_ptr = NULL;
+static usbll_data_t *usbll_data_ptr;
/* Transaction Translator arrays used only during first pass. */
static usbll_transaction_info_t ***tt_non_periodic;
diff --git a/epan/dissectors/packet-usbms-bot.c b/epan/dissectors/packet-usbms-bot.c
index ef1793b288..13bb88c9a6 100644
--- a/epan/dissectors/packet-usbms-bot.c
+++ b/epan/dissectors/packet-usbms-bot.c
@@ -421,8 +421,8 @@ dissect_usbms_bot_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tre
static gboolean
dissect_usbms_bot_bulk_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
{
- const guchar usbc[] = {0x55, 0x53, 0x42, 0x43};
- const guchar usbs[] = {0x55, 0x53, 0x42, 0x53};
+ static const guchar usbc[] = {0x55, 0x53, 0x42, 0x43};
+ static const guchar usbs[] = {0x55, 0x53, 0x42, 0x53};
if (tvb_reported_length(tvb) < 4)
return FALSE;
diff --git a/epan/dissectors/packet-user_encap.c b/epan/dissectors/packet-user_encap.c
index af0b0571f0..1e2a142f31 100644
--- a/epan/dissectors/packet-user_encap.c
+++ b/epan/dissectors/packet-user_encap.c
@@ -64,8 +64,8 @@ static int proto_user_encap;
static expert_field ei_user_encap_not_handled;
-static user_encap_t* encaps = NULL;
-static guint num_encaps = 0;
+static user_encap_t* encaps;
+static guint num_encaps;
static uat_t* encaps_uat;
static gint exported_pdu_tap = -1;
diff --git a/epan/dissectors/packet-v5ua.c b/epan/dissectors/packet-v5ua.c
index 9a06ad1684..dd0fcff13b 100644
--- a/epan/dissectors/packet-v5ua.c
+++ b/epan/dissectors/packet-v5ua.c
@@ -40,7 +40,7 @@ void proto_reg_handoff_v5ua(void);
static dissector_handle_t v5ua_handle;
-static int paddingl = 0;
+static int paddingl;
static int dlci_efa = -1;
/* Initialize the protocol and registered fields */
diff --git a/epan/dissectors/packet-vcdu.c b/epan/dissectors/packet-vcdu.c
index 65fd651d0f..ddd53c7877 100644
--- a/epan/dissectors/packet-vcdu.c
+++ b/epan/dissectors/packet-vcdu.c
@@ -164,9 +164,9 @@ typedef struct {
guint channel;
} uat_channel_t;
-static uat_channel_t *uat_bitchannels = NULL;
-static uat_t *vcdu_uat = NULL;
-static guint num_channels_uat = 0;
+static uat_channel_t *uat_bitchannels;
+static uat_t *vcdu_uat;
+static guint num_channels_uat;
UAT_DEC_CB_DEF(uat_bitchannels, channel, uat_channel_t)
diff --git a/epan/dissectors/packet-vines.c b/epan/dissectors/packet-vines.c
index a9ac7f0cb9..d247a5d697 100644
--- a/epan/dissectors/packet-vines.c
+++ b/epan/dissectors/packet-vines.c
@@ -319,7 +319,7 @@ typedef struct _e_vipc {
guint16 vipc_err_len;
} e_vipc;
-static gboolean
+static bool
capture_vines(const guchar *pd _U_, int offset _U_, int len _U_, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_)
{
capture_dissector_increment_count(cpinfo, proto_vines);
diff --git a/epan/dissectors/packet-vlan.c b/epan/dissectors/packet-vlan.c
index b64d0ccc52..287fdb4f73 100644
--- a/epan/dissectors/packet-vlan.c
+++ b/epan/dissectors/packet-vlan.c
@@ -21,13 +21,15 @@
#include <epan/to_str.h>
#include <epan/addr_resolv.h>
#include <epan/proto_data.h>
+#include <epan/conversation_table.h>
+#include <epan/conversation_filter.h>
void proto_register_vlan(void);
void proto_reg_handoff_vlan(void);
static unsigned int q_in_q_ethertype = ETHERTYPE_QINQ_OLD;
-static gboolean vlan_summary_in_tree = TRUE;
+static bool vlan_summary_in_tree = true;
enum version_value {
IEEE_8021Q_1998,
@@ -148,7 +150,7 @@ static const true_false_string tfs_eligible_ineligible = { "Eligible", "Ineligib
#define VLAN_MAX_NESTED_TAGS 20
-static gboolean
+static bool
capture_vlan(const guchar *pd, int offset, int len, capture_packet_info_t *cpinfo, const union wtap_pseudo_header *pseudo_header _U_ ) {
guint16 encap_proto;
if ( !BYTES_ARE_IN_FRAME(offset,len,5) )
@@ -314,6 +316,56 @@ dissect_vlan(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
ethertype_data.trailer_id = hf_vlan_trailer;
ethertype_data.fcs_len = 0;
+ /* deinterlacing requested */
+ if(prefs.conversation_deinterlacing_key>0) {
+ conversation_t *conv;
+ guint conv_type;
+ guint32 dtlc_iface = 0;
+ guint32 dtlc_vlan = 0;
+
+ if(prefs.conversation_deinterlacing_key&CONV_DEINT_KEY_INTERFACE &&
+ pinfo->rec->presence_flags & WTAP_HAS_INTERFACE_ID) {
+
+ if(prefs.conversation_deinterlacing_key&CONV_DEINT_KEY_VLAN &&
+ pinfo->vlan_id>0) {
+
+ conv_type = CONVERSATION_ETH_IV;
+ dtlc_iface = pinfo->rec->rec_header.packet_header.interface_id;
+ dtlc_vlan = pinfo->vlan_id;
+
+ /* look for existing conv, create one if none found */
+ conv = find_conversation_deinterlacer(pinfo->num, &pinfo->src, &pinfo->dst, conv_type,
+ dtlc_iface, dtlc_vlan, 0);
+
+ if(!conv) {
+ /* ETH _IN moulting into _IV */
+ conversation_new_deinterlacer(pinfo->num, &pinfo->src, &pinfo->dst,
+ conv_type, dtlc_iface, pinfo->vlan_id, 0);
+ }
+ }
+ // else : vlan id == 0, such thing is not expected
+ }
+ else {
+ if(prefs.conversation_deinterlacing_key&CONV_DEINT_KEY_VLAN &&
+ pinfo->vlan_id>0) {
+
+ conv_type = CONVERSATION_ETH_NV;
+
+ /* look for existing conv, create one if none found */
+ conv = find_conversation_deinterlacer(pinfo->num, &pinfo->src, &pinfo->dst, conv_type,
+ dtlc_iface, pinfo->vlan_id, 0);
+
+ if(!conv) {
+ /* ETH _NN moulting into _NV */
+ conversation_new_deinterlacer(pinfo->num, &pinfo->src, &pinfo->dst,
+ conv_type, dtlc_iface, pinfo->vlan_id, 0);
+ }
+ }
+ // else : vlan id == 0, such thing is not expected
+ }
+
+ }
+
call_dissector_with_data(ethertype_handle, tvb, pinfo, tree, &ethertype_data);
}
return tvb_captured_length(tvb);
diff --git a/epan/dissectors/packet-vnc.c b/epan/dissectors/packet-vnc.c
index 7b2e3541e4..4d828fe70d 100644
--- a/epan/dissectors/packet-vnc.c
+++ b/epan/dissectors/packet-vnc.c
@@ -896,7 +896,7 @@ static int hf_vnc_h264_data;
/********** End of Server Message Types **********/
-static gboolean vnc_preference_desegment = TRUE;
+static bool vnc_preference_desegment = true;
/* Initialize the subtree pointers */
static gint ett_vnc;
@@ -936,7 +936,7 @@ static expert_field ei_vnc_reassemble;
* (5900+N is commonly used in the case of multiple servers, analogous to
* X11.) */
-static range_t *vnc_tcp_range = NULL;
+static range_t *vnc_tcp_range;
static dissector_handle_t vnc_handle;
static dissector_handle_t tls_handle;
@@ -1126,6 +1126,8 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset,
gint num_tunnel_types;
gint num_auth_types;
proto_item* auth_item;
+ gint bytes_available;
+ gint bytes_needed = 0;
per_packet_info = (vnc_packet_t *)p_get_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0);
@@ -1139,6 +1141,8 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset,
p_add_proto_data(wmem_file_scope(), pinfo, proto_vnc, 0, per_packet_info);
}
+ bytes_available = tvb_reported_length_remaining(tvb, offset);
+
/* Packet dissection follows */
switch(per_packet_info->state) {
@@ -1184,6 +1188,13 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset,
if(per_conversation_info->client_proto_ver >= 3.007) {
num_security_types = tvb_get_guint8(tvb, offset);
+ bytes_needed = 1 + num_security_types;
+ if (bytes_available < bytes_needed && vnc_preference_desegment && pinfo->can_desegment) {
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = bytes_needed - bytes_available;
+ break;
+ }
+
if (tree) {
proto_tree_add_item(tree,
hf_vnc_num_security_types,
@@ -1508,6 +1519,12 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset,
break;
case VNC_SESSION_STATE_VENCRYPT_SERVER_VERSION:
{
+ bytes_needed = 2;
+ if (bytes_available < bytes_needed && vnc_preference_desegment && pinfo->can_desegment) {
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = bytes_needed - bytes_available;
+ break;
+ }
proto_tree_add_item(tree, hf_vnc_vencrypt_server_major_ver, tvb, offset, 1, ENC_BIG_ENDIAN);
gint major = tvb_get_guint8(tvb, offset++);
proto_tree_add_item(tree, hf_vnc_vencrypt_server_minor_ver, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -1518,6 +1535,12 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset,
}
case VNC_SESSION_STATE_VENCRYPT_CLIENT_VERSION:
{
+ bytes_needed = 2;
+ if (bytes_available < bytes_needed && vnc_preference_desegment && pinfo->can_desegment) {
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = bytes_needed - bytes_available;
+ break;
+ }
proto_tree_add_item(tree, hf_vnc_vencrypt_client_major_ver, tvb, offset, 1, ENC_BIG_ENDIAN);
gint major = tvb_get_guint8(tvb, offset++);
proto_tree_add_item(tree, hf_vnc_vencrypt_client_minor_ver, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -1529,14 +1552,26 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset,
case VNC_SESSION_STATE_VENCRYPT_AUTH_CAPABILITIES:
{
gint i;
+ bytes_needed = 2;
+ if (bytes_available < bytes_needed && vnc_preference_desegment && pinfo->can_desegment) {
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
+ break;
+ }
+ num_auth_types = tvb_get_guint8(tvb, offset + 1);
+ bytes_needed = 2 + 4 * num_auth_types;
+ if (bytes_available < bytes_needed && vnc_preference_desegment && pinfo->can_desegment) {
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = bytes_needed - bytes_available;
+ break;
+ }
col_set_str(pinfo->cinfo, COL_INFO, "VeNCrypt authentication types supported");
proto_tree_add_item(tree, hf_vnc_vencrypt_version_ack, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
proto_tree_add_item(tree, hf_vnc_vencrypt_num_auth_types, tvb, offset, 1, ENC_BIG_ENDIAN);
- num_tunnel_types = tvb_get_guint8(tvb, offset);
offset += 1;
- for(i = 0; i < num_tunnel_types; i++) {
+ for(i = 0; i < num_auth_types; i++) {
proto_tree_add_item(tree, hf_vnc_vencrypt_auth_type, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
}
@@ -1546,6 +1581,12 @@ vnc_startup_messages(tvbuff_t *tvb, packet_info *pinfo, gint offset,
}
case VNC_SESSION_STATE_VENCRYPT_AUTH_TYPE_REPLY:
{
+ bytes_needed = 4;
+ if (bytes_available < bytes_needed && vnc_preference_desegment && pinfo->can_desegment) {
+ pinfo->desegment_offset = offset;
+ pinfo->desegment_len = bytes_needed - bytes_available;
+ break;
+ }
guint32 authtype = tvb_get_ntohl(tvb, offset);
col_add_fstr(pinfo->cinfo, COL_INFO, "VeNCrypt authentication type %s (%d) selected by client",
val_to_str_const(authtype, vnc_vencrypt_auth_types_vs, "Unknown"),
@@ -2094,7 +2135,7 @@ vnc_server_framebuffer_update(tvbuff_t *tvb, packet_info *pinfo, gint *offset,
if ((num_rects != 0xFFFF) && (num_rects > 5000)) {
expert_add_info_format(pinfo, ti, &ei_vnc_too_many_rectangles,
"Too many rectangles (%d), aborting dissection", num_rects);
- return(0);
+ return 0;
}
*offset += 2;
@@ -2103,7 +2144,7 @@ vnc_server_framebuffer_update(tvbuff_t *tvb, packet_info *pinfo, gint *offset,
if (ii > 5000) {
expert_add_info_format(pinfo, ti, &ei_vnc_too_many_rectangles,
"Too many rectangles (%d), aborting dissection", ii);
- return(0);
+ return 0;
}
VNC_BYTES_NEEDED(12);
@@ -2357,7 +2398,7 @@ vnc_rre_encoding(tvbuff_t *tvb, packet_info *pinfo, gint *offset,
if (num_subrects > 10000) {
expert_add_info_format(pinfo, ti, &ei_vnc_too_many_sub_rectangles,
"Too many sub-rectangles (%d), aborting dissection", num_subrects);
- return(0);
+ return 0;
}
VNC_BYTES_NEEDED(bytes_per_pixel);
@@ -3429,7 +3470,7 @@ vnc_server_set_colormap_entries(tvbuff_t *tvb, packet_info *pinfo, gint *offset,
if (number_of_colors > 10000) {
expert_add_info_format(pinfo, ti, &ei_vnc_too_many_colors,"Too many colors (%d), aborting dissection",
number_of_colors);
- return(0);
+ return 0;
}
bytes_needed = (number_of_colors * 6) + 5;
@@ -3492,7 +3533,7 @@ vnc_server_cut_text(tvbuff_t *tvb, packet_info *pinfo, gint *offset,
if (text_len > 100000) {
expert_add_info_format(pinfo, pi, &ei_vnc_too_many_cut_text,
"Too much cut text (%d), aborting dissection", text_len);
- return(0);
+ return 0;
}
VNC_BYTES_NEEDED(text_len);
diff --git a/epan/dissectors/packet-vrrp.c b/epan/dissectors/packet-vrrp.c
index 72ac275d46..6d7768334b 100644
--- a/epan/dissectors/packet-vrrp.c
+++ b/epan/dissectors/packet-vrrp.c
@@ -47,7 +47,7 @@ static gint hf_vrrp_ip6;
static gint hf_vrrp_auth_string;
static gint hf_vrrp_md5_auth_data;
-static gboolean g_vrrp_v3_checksum_as_in_v2 = FALSE;
+static bool g_vrrp_v3_checksum_as_in_v2;
static expert_field ei_vrrp_checksum;
diff --git a/epan/dissectors/packet-vrt.c b/epan/dissectors/packet-vrt.c
index 809416d008..60360757fc 100644
--- a/epan/dissectors/packet-vrt.c
+++ b/epan/dissectors/packet-vrt.c
@@ -65,7 +65,7 @@ typedef struct {
typedef int (*complex_dissector_t)(proto_tree *tree, tvbuff_t *tvb, int offset);
-static gboolean vrt_use_ettus_uhd_header_format = FALSE;
+static bool vrt_use_ettus_uhd_header_format;
static int proto_vrt;
diff --git a/epan/dissectors/packet-vssmonitoring.c b/epan/dissectors/packet-vssmonitoring.c
index e5762af71f..b320d8b063 100644
--- a/epan/dissectors/packet-vssmonitoring.c
+++ b/epan/dissectors/packet-vssmonitoring.c
@@ -45,8 +45,8 @@ static int hf_vssmonitoring_srcport;
static gint ett_vssmonitoring;
-static gboolean vss_dissect_portstamping_only = FALSE;
-static gboolean vss_two_byte_portstamps = FALSE;
+static bool vss_dissect_portstamping_only;
+static bool vss_two_byte_portstamps;
static int
dissect_vssmonitoring(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
diff --git a/epan/dissectors/packet-vxlan.c b/epan/dissectors/packet-vxlan.c
index 4064156ae3..610b7b6345 100644
--- a/epan/dissectors/packet-vxlan.c
+++ b/epan/dissectors/packet-vxlan.c
@@ -19,7 +19,7 @@
#include <epan/tfs.h>
#include "packet-vxlan.h"
-#define UDP_PORT_VXLAN 4789
+#define UDP_PORT_VXLAN "4789,8472" /* The IANA assigned port is 4789, but Linux default is 8472 for compatibility with early adopters */
#define UDP_PORT_VXLAN_GPE 4790
void proto_register_vxlan(void);
@@ -294,7 +294,7 @@ proto_reg_handoff_vxlan(void)
*/
eth_handle = find_dissector_add_dependency("eth_withoutfcs", proto_vxlan);
- dissector_add_uint_with_preference("udp.port", UDP_PORT_VXLAN, vxlan_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_VXLAN, vxlan_handle);
dissector_add_uint_with_preference("udp.port", UDP_PORT_VXLAN_GPE, vxlan_gpe_handle);
}
diff --git a/epan/dissectors/packet-wassp.c b/epan/dissectors/packet-wassp.c
index 2dfa25f3ae..c261ef243d 100644
--- a/epan/dissectors/packet-wassp.c
+++ b/epan/dissectors/packet-wassp.c
@@ -1267,7 +1267,7 @@ static const value_string wassp_tlv_types[] =
{ EID_MU_TUNNEL_PRIVATE_GROUP_ID_STRING, "MU Tunnel Private Group ID String"},
{ EID_MU_USER_ID_STRING, "MU User ID String"},
{ EID_MU_DEFENDED_STATE, "MU Defended State"},
- { EID_MU_MOD_MASK, "MU Modulation Maske"},
+ { EID_MU_MOD_MASK, "MU Modulation Mask"},
{ EID_LOCATOR_TRACKED, "Locator Tracked"},
{ EID_PORT, "Port"},
{ EID_RETRIES_COUNT, "Retries Count"},
@@ -4132,175 +4132,175 @@ static dissector_handle_t snmp_handle;
static const WASSP_SUBTLV_DECODER_INFO_t wassp_decr_info[TAB_MAX] =
{
/*CONFIG_GLOBAL_BLOCK */
- {"WASSP Global Config", &ett_wassp_global_config_block, sizeof(tlvGlobalConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvGlobalConfigTable},
+ {"WASSP Global Config", &ett_wassp_global_config_block, array_length(tlvGlobalConfigTable), tlvGlobalConfigTable},
/*CONFIG_ERROR_BLOCK */
- {"WASSP Config Error", &ett_wassp_config_error_block, sizeof(tlvGlobalConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvGlobalConfigTable},
+ {"WASSP Config Error", &ett_wassp_config_error_block, array_length(tlvGlobalConfigTable), tlvGlobalConfigTable},
/*TAB_CONFIG_MODIFIED */
- {"WASSP Config Modified", &ett_wassp_config_modified_block, sizeof(tlvGlobalConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvGlobalConfigTable},
+ {"WASSP Config Modified", &ett_wassp_config_modified_block, array_length(tlvGlobalConfigTable), tlvGlobalConfigTable},
/*RADIO_CONFIG_BLOCK */
- {"WASSP Radio Configure", &ett_wassp_radio_config_block, sizeof(tlvRadioConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvRadioConfigTable},
+ {"WASSP Radio Configure", &ett_wassp_radio_config_block, array_length(tlvRadioConfigTable), tlvRadioConfigTable},
/*VNS_CONFIG_BLOCK */
- {"WASSP VNS Configure", &ett_wassp_vns_config_block, sizeof(tlvVnsConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvVnsConfigTable},
+ {"WASSP VNS Configure", &ett_wassp_vns_config_block, array_length(tlvVnsConfigTable), tlvVnsConfigTable},
/*MU_RF_STATS_BLOCK */
- {"WASSP MU RF Stats", &ett_wassp_mu_rf_stats_block, sizeof(tlvBeastConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvBeastConfigTable},
+ {"WASSP MU RF Stats", &ett_wassp_mu_rf_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
/*AP_STATS_BLOCK */
- {"WASSP RU RF Stats", &ett_wassp_ap_stats_block, sizeof(tlvBeastConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvBeastConfigTable},
+ {"WASSP RU RF Stats", &ett_wassp_ap_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
/*STATS_MU_BLOCK */
- {"WASSP MU Stats", &ett_wassp_mu_stats_block, sizeof(tlvBeastConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvBeastConfigTable},
+ {"WASSP MU Stats", &ett_wassp_mu_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
/*TAB_STATS_RADIO */
- {"WASSP Radio Stats", &ett_wassp_radio_stats_block, sizeof(tlvBeastConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvBeastConfigTable},
+ {"WASSP Radio Stats", &ett_wassp_radio_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
/*TAB_STATS_ETH */
- {"WASSP Ethernet Stats", &ett_wassp_ether_stats_block, sizeof(tlvBeastConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvBeastConfigTable},
+ {"WASSP Ethernet Stats", &ett_wassp_ether_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
/*TAB_STATS_WDS */
- {"WASSP Wds Stats", &ett_wassp_wds_stats_block, sizeof(tlvBeastConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvBeastConfigTable},
+ {"WASSP Wds Stats", &ett_wassp_wds_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
/*TAB_STATS_DOT1x */
- {"WASSP Dot1x Stats", &ett_wassp_dot1x_stats_block, sizeof(tlvBeastConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvBeastConfigTable},
+ {"WASSP Dot1x Stats", &ett_wassp_dot1x_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
/*TAB_CONFIG_FILTER */
- {"WASSP Filter Config", &ett_wassp_filter_config_block, sizeof(tlvFilterConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvFilterConfigTable},
+ {"WASSP Filter Config", &ett_wassp_filter_config_block, array_length(tlvFilterConfigTable), tlvFilterConfigTable},
/*TAB_STATS_VNS */
- {"WASSP VNS Status", &ett_wassp_vns_stats_block, sizeof(tlvVnsStatusTable) / sizeof(TLV_PARSER_ENTRY), tlvVnsStatusTable},
+ {"WASSP VNS Status", &ett_wassp_vns_stats_block, array_length(tlvVnsStatusTable), tlvVnsStatusTable},
/*TAB_CONFIG_RADIUS_SERVER */
- {"WASSP Radius Server Config", &ett_wassp_radius_server_config_block, sizeof(tlvRadiusServerConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvRadiusServerConfigTable},
+ {"WASSP Radius Server Config", &ett_wassp_radius_server_config_block, array_length(tlvRadiusServerConfigTable), tlvRadiusServerConfigTable},
/*TAB_CONFIG_SITE */
- {"WASSP Site Config", &ett_wassp_site_config_block, sizeof(tlvSiteConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteConfigTable},
+ {"WASSP Site Config", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
/*TAB_CONFIG_POLICY */
- {"WASSP Policy Config", &ett_wassp_policy_config_block, sizeof(tlvPolicyConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvPolicyConfigTable},
+ {"WASSP Policy Config", &ett_wassp_policy_config_block, array_length(tlvPolicyConfigTable), tlvPolicyConfigTable},
/*TAB_CONFIG_COS */
- {"WASSP Class of Service Configuration", &ett_wassp_cos_config_block, sizeof(tlvCosConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvCosConfigTable},
+ {"WASSP Class of Service Configuration", &ett_wassp_cos_config_block, array_length(tlvCosConfigTable), tlvCosConfigTable},
/*TAB_CONFIG_LOC_BASE_LP */
- {"WASSP LocalBase Lookup", &ett_wassp_localbase_lookup_block, sizeof(tlvLocationBaseLookUpTable) / sizeof(TLV_PARSER_ENTRY), tlvLocationBaseLookUpTable},
+ {"WASSP LocalBase Lookup", &ett_wassp_localbase_lookup_block, array_length(tlvLocationBaseLookUpTable), tlvLocationBaseLookUpTable},
/*TAB_CONFIG_RADIUS */
- {"WASSP Radius Config", &ett_wassp_radius_config_block, sizeof(tlvRadiusConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvRadiusConfigTable},
+ {"WASSP Radius Config", &ett_wassp_radius_config_block, array_length(tlvRadiusConfigTable), tlvRadiusConfigTable},
/*EVENT_BLOCK */
- {"WASSP Event Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP Event Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SSS_MU_BLOCK */
- {"WASSP SSS MU Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP SSS MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_EID_MU_BLOCK */
- {"WASSP EID MU Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP EID MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*BULK_MU_BLOCK */
- {"WASSP BULK MU Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP BULK MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*MU_BLOCK */
- {"WASSP MU Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*BULK_VNS_BLOCK */
- {"WASSP BULK VNS Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP BULK VNS Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*VNS_BLOCK */
- {"WASSP VNS Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP VNS Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SIAPP_PMK_BLOCK */
- {"SIAPP PMK Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"SIAPP PMK Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SIAPP_RADIO_CONFIG_BLOCK */
- {"SIAPP Radio Config Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"SIAPP Radio Config Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SIAPP_MU_STATS_BLOCK */
- {"SIAPP MU STATS Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"SIAPP MU STATS Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SIAPP_THIN_BLOCK */
- {"SIAPP THIN Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"SIAPP THIN Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SIAPP_BLOCK */
- {"SIAPP Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"SIAPP Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_ASSOC_SSID_ARRAY*/
- {"Assoc SSID array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Assoc SSID array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_ASSOC_SSID_BLOCK*/
- {"Assoc SSID Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Assoc SSID Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_AP_LIST_BLOCK*/
- {"AP list Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"AP list Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_AP_LIST_ARRAY*/
- {"AP list array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"AP list array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SCAN_PROFILE_BLOCK*/
- {"Scan profile Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Scan profile Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_DEF_ARRAY*/
- {"Threat def array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Threat def array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_DEF_BLOCK*/
- {"Thread def Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Thread def Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_PATTERN_ARRAY*/
- {"Thread pattern array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Thread pattern array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_PATTERN_BLOCK*/
- {"Thread pattern Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Thread pattern Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SURVEILLANCE_DATA_ARRAY,*/
- {"Surveillance Data Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Surveillance Data Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_SURVEILLANCE_DATA_BLOCK,*/
- {"Surveillance Data Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Surveillance Data Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_DATA_ARRAY,*/
- {"Thread Data Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Thread Data Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_DATA_BLOCK,*/
- {"Thread Data Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Thread Data Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_CLASSIFY_ARRAY,*/
- {"Thread Classify Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Thread Classify Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_THREAT_CLASSIFY_BLOCK,*/
- {"Thread Classify Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Thread Classify Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_USER_CLASSIFY_ARRAY,*/
- {"User Classify Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"User Classify Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_USER_CLASSIFY_BLOCK,*/
- {"User Classify Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"User Classify Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_MU_EVENT_ARRAY, */
- {"MU Event Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"MU Event Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_MU_EVENT_BLOCK,*/
- {"MU Event Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"MU Event Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_COUNTRY_ARRAY,*/
- {"Country Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Country Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_COUNTRY_BLOCK,*/
- {"Country Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Country Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_LOCATOR_LOC_BLOCK,*/
- {"Locator LOC Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Locator LOC Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_LOCATOR_LOC_ARRAY,*/
- {"Locator LOC Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Locator LOC Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_RSS_DATA_ARRAY,*/
- {"RSS Data Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"RSS Data Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_RSS_DATA_BLOCK,*/
- {"RSS Data Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"RSS Data Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_MCAST_FILTER_BLOCK, */
- {"MCAST Filter Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"MCAST Filter Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_MCAST_FILTER_BLOCK_ENTRY */
- {"MCAST Filter Block Entry", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"MCAST Filter Block Entry", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_MU_SESSION_ARRAY,*/
- {"MU Session Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"MU Session Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_MU_SESSION_BLOCK,*/
- {"MU Session Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"MU Session Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_DETECTED_ROGUE_ARRAY,*/
- {"Detected Rogue Array", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Detected Rogue Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_DETECTED_ROGUE_BLOCK,*/
- {"Detected Rogue Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Detected Rogue Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_FILTER_RULES_EXT_BLOCK */
- {"Filter Rule Ext Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Filter Rule Ext Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_APP_POLICY_FIXED_BLOCK */
- {"App Policy Fixed Block", &ett_wassp_app_policy_fixed_block, sizeof(tlvAppPolicyFixedTable) / sizeof(TLV_PARSER_ENTRY), tlvAppPolicyFixedTable},
+ {"App Policy Fixed Block", &ett_wassp_app_policy_fixed_block, array_length(tlvAppPolicyFixedTable), tlvAppPolicyFixedTable},
/*TAB_V_FILTER_RULES_EXT_BLOCK */
- {"FilterRules Ext Block", &ett_wassp_filter_ext_config_block, sizeof(tlvFilterRuleExtConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvFilterRuleExtConfigTable},
+ {"FilterRules Ext Block", &ett_wassp_filter_ext_config_block, array_length(tlvFilterRuleExtConfigTable), tlvFilterRuleExtConfigTable},
/*TAB_V_SITE_FILTER_RULES_EXT_BLOCK */
- {"Site FilterRules Ext Block", &ett_wassp_site_filter_config_block, sizeof(tlvSiteFilterRuleExtConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteFilterRuleExtConfigTable},
+ {"Site FilterRules Ext Block", &ett_wassp_site_filter_config_block, array_length(tlvSiteFilterRuleExtConfigTable), tlvSiteFilterRuleExtConfigTable},
/*TAB_APP_POLICY_ENTRY_BLOCK */
- {"App Policy Entry Block", &ett_wassp_app_policy_entry_block, sizeof(tlvAppPolicyEntryTable) / sizeof(TLV_PARSER_ENTRY), tlvAppPolicyEntryTable},
+ {"App Policy Entry Block", &ett_wassp_app_policy_entry_block, array_length(tlvAppPolicyEntryTable), tlvAppPolicyEntryTable},
/*TAB_11U_ANQP_BLOCK, */
- {"11u Config Block", &ett_wassp_11u_config_entry_block, sizeof(tlv11U_ANQP_blockTable) / sizeof(TLV_PARSER_ENTRY), tlv11U_ANQP_blockTable},
+ {"11u Config Block", &ett_wassp_11u_config_entry_block, array_length(tlv11U_ANQP_blockTable), tlv11U_ANQP_blockTable},
/*TAB_HS2_BLOCK, */
- {"HS2 config Block", &ett_wassp_hs2_config_entry_block, sizeof(tlvHS2_blockTable) / sizeof(TLV_PARSER_ENTRY), tlvHS2_blockTable},
+ {"HS2 config Block", &ett_wassp_hs2_config_entry_block, array_length(tlvHS2_blockTable), tlvHS2_blockTable},
/*TAB_RU_ACK_RADIO_CONFIG,*/
- {"WASSP RU Ack Radio Configure", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"WASSP RU Ack Radio Configure", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_MU_APPL_STATS_BLOCK */
- {"MU Appl Stats Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"MU Appl Stats Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_EXTAPP_CONF_BLOCK */
- {"Extend AppControl Config Block", &ett_wassp_extapp_config_entry_block, sizeof(tlvExtapp_conf_blockTable) / sizeof(TLV_PARSER_ENTRY), tlvExtapp_conf_blockTable},
+ {"Extend AppControl Config Block", &ett_wassp_extapp_config_entry_block, array_length(tlvExtapp_conf_blockTable), tlvExtapp_conf_blockTable},
/*TAB_V_CP_CONFIG_BLOCK */
- {"CP Config Block", &ett_wassp_vns_config_block, sizeof(tlvVnsConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvVnsConfigTable},
+ {"CP Config Block", &ett_wassp_vns_config_block, array_length(tlvVnsConfigTable), tlvVnsConfigTable},
/*TAB_TOPOLOGY_ARRAY_BLOCK */
- {"Topology Array Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Topology Array Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_TOPOLOGY_STRUCT_BLOCK */
- {"Topology Struct Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Topology Struct Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_FILTER_CONFIG_STRUCT_BLOCK */
- {"Filter Config Struct Block", &ett_wassp_eid_main_tlv_block, sizeof(tlvMainTable) / sizeof(TLV_PARSER_ENTRY), tlvMainTable},
+ {"Filter Config Struct Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
/*TAB_S_TOPOLOGY_ARRAY_BLOCK, */
- {"Site Topology Array Block", &ett_wassp_site_config_block, sizeof(tlvSiteConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteConfigTable},
+ {"Site Topology Array Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
/*TAB_S_TOPOLOGY_STRUCT_BLOCK,*/
- {"Site Topology Struct Block", &ett_wassp_site_config_block, sizeof(tlvSiteConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteConfigTable},
+ {"Site Topology Struct Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
/*TAB_S_TOPO_MCAST_FILTER_CONFIG_BLOCK,*/
- {"Site Topology Mcast Filter Config Struct Block", &ett_wassp_s_topo_m_filter_entry_block, sizeof(tlvSTopoMcastFilterBlock) / sizeof(TLV_PARSER_ENTRY), tlvSTopoMcastFilterBlock},
+ {"Site Topology Mcast Filter Config Struct Block", &ett_wassp_s_topo_m_filter_entry_block, array_length(tlvSTopoMcastFilterBlock), tlvSTopoMcastFilterBlock},
/*TAB_S_TOPO_MCAST_FILTER_RULES_EXT_BLOCK,*/
- {"Site Topology Mcast Filter Rule Ext Block", &ett_wassp_s_topo_m_filter_ext_entry_block, sizeof(tlvSTopoMcastFilterRuleBlock) / sizeof(TLV_PARSER_ENTRY), tlvSTopoMcastFilterRuleBlock},
+ {"Site Topology Mcast Filter Rule Ext Block", &ett_wassp_s_topo_m_filter_ext_entry_block, array_length(tlvSTopoMcastFilterRuleBlock), tlvSTopoMcastFilterRuleBlock},
/*TAB_NAC_SERVER_CONFIG_ARRAY,*/
- {"NAC service config array", &ett_wassp_site_config_block, sizeof(tlvSiteConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteConfigTable},
+ {"NAC service config array", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
/*TAB_NAC_SERVER_CONFIG_BLOCK,*/
- {"NAC service config Block", &ett_wassp_site_config_block, sizeof(tlvSiteConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteConfigTable},
+ {"NAC service config Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
/*TAB_NAC_WEB_AUTH_USER_GROUP_ARRAY,*/
- {"NAC WEB auth user group config array", &ett_wassp_site_config_block, sizeof(tlvSiteConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteConfigTable},
+ {"NAC WEB auth user group config array", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
/*TAB_NAC_WEB_AUTH_USER_GROUP_BLOCK,*/
- {"NAC WEB auth user group Block", &ett_wassp_site_config_block, sizeof(tlvSiteConfigTable) / sizeof(TLV_PARSER_ENTRY), tlvSiteConfigTable},
+ {"NAC WEB auth user group Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
};
@@ -4362,7 +4362,7 @@ void proto_register_wassp(void);
void proto_reg_handoff_wassp(void);
static int dissect_wassp_static(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_);
-static int g_wassp_ver = 0;
+static int g_wassp_ver;
static reassembly_table wassp_reassembled_table;
static void wassp_defragment_init(void)
{
diff --git a/epan/dissectors/packet-wbxml.c b/epan/dissectors/packet-wbxml.c
index 3155b204d4..a424cb8232 100644
--- a/epan/dissectors/packet-wbxml.c
+++ b/epan/dissectors/packet-wbxml.c
@@ -172,8 +172,8 @@ static expert_field ei_wbxml_too_much_recursion;
static dissector_handle_t wbxml_handle;
/* WBXML Preferences */
-static gboolean skip_wbxml_token_mapping = FALSE;
-static gboolean disable_wbxml_token_parsing = FALSE;
+static bool skip_wbxml_token_mapping;
+static bool disable_wbxml_token_parsing;
typedef struct _value_valuestring {
@@ -190,11 +190,11 @@ val_to_valstr(guint32 val, const value_valuestring *vvs)
while (vvs[i].valstrptr) {
if (vvs[i].value == val)
- return(vvs[i].valstrptr);
+ return vvs[i].valstrptr;
i++;
}
- return(NULL);
+ return NULL;
}
/* Note on Token mapping
diff --git a/epan/dissectors/packet-wccp.c b/epan/dissectors/packet-wccp.c
index 72bec2d4dd..a2f55836e6 100644
--- a/epan/dissectors/packet-wccp.c
+++ b/epan/dissectors/packet-wccp.c
@@ -761,7 +761,7 @@ wccp_bucket_info(guint8 bucket_info, proto_tree *bucket_tree, guint32 start,
"Bucket %3d: %s", start, (bucket_info & 1<<i ? "Assigned" : "Not Assigned") );
start++;
}
- return(start);
+ return start;
}
diff --git a/epan/dissectors/packet-websocket.c b/epan/dissectors/packet-websocket.c
index f3b3e0b8f8..467c623fbc 100644
--- a/epan/dissectors/packet-websocket.c
+++ b/epan/dissectors/packet-websocket.c
@@ -54,7 +54,7 @@ static dissector_handle_t sip_handle;
#define OPCODE_KEY (G_MAXUINT32 - 0)
static gint pref_text_type = WEBSOCKET_NONE;
-static gboolean pref_decompress = TRUE;
+static bool pref_decompress = true;
#define DEFAULT_MAX_UNMASKED_LEN (1024 * 256)
static guint pref_max_unmasked_len = DEFAULT_MAX_UNMASKED_LEN;
diff --git a/epan/dissectors/packet-windows-common.c b/epan/dissectors/packet-windows-common.c
index 0942e8c220..ff02b2adbb 100644
--- a/epan/dissectors/packet-windows-common.c
+++ b/epan/dissectors/packet-windows-common.c
@@ -1462,7 +1462,7 @@ match_wkwn_sids(const char* sid) {
int i = 0;
while (well_known_sids[i].name) {
if (strcmp(well_known_sids[i].sid, sid)==0) {
- return(well_known_sids[i].name);
+ return well_known_sids[i].name;
}
i++;
}
@@ -1542,7 +1542,7 @@ dissect_nt_sid(tvbuff_t *tvb, int offset, proto_tree *parent_tree,
if(hf_sid <= 0){
/* if no tree, just return the offset of the end_of_SID+1 */
if (!parent_tree)
- return(offset+(6+(num_auth*4)));
+ return offset+(6+(num_auth*4));
hf_sid=hf_nt_sid;
}
diff --git a/epan/dissectors/packet-winsrepl.c b/epan/dissectors/packet-winsrepl.c
index f8c0959c53..4a347daf06 100644
--- a/epan/dissectors/packet-winsrepl.c
+++ b/epan/dissectors/packet-winsrepl.c
@@ -28,7 +28,7 @@ void proto_register_winsrepl(void);
void proto_reg_handoff_winsrepl(void);
static dissector_handle_t winsrepl_handle;
-static gboolean winsrepl_reassemble = TRUE;
+static bool winsrepl_reassemble = true;
static int proto_winsrepl;
diff --git a/epan/dissectors/packet-wireguard.c b/epan/dissectors/packet-wireguard.c
index 22255773ea..af7074c1b2 100644
--- a/epan/dissectors/packet-wireguard.c
+++ b/epan/dissectors/packet-wireguard.c
@@ -74,7 +74,7 @@ static expert_field ei_wg_keepalive;
static expert_field ei_wg_decryption_error;
static expert_field ei_wg_decryption_unsupported;
-static gboolean pref_dissect_packet = TRUE;
+static bool pref_dissect_packet = true;
static const char *pref_keylog_file;
static dissector_handle_t ip_handle;
@@ -146,7 +146,7 @@ typedef struct wg_ekey {
* Maps the public key to the "wg_skey_t" structure.
* Keys are populated from the UAT and key log file.
*/
-static GHashTable *wg_static_keys = NULL;
+static GHashTable *wg_static_keys;
/*
* Set of ephemeral keys (for decryption). Maps the public key to the
@@ -360,7 +360,7 @@ wg_mac1_key(const wg_qqword *static_public, wg_qqword *mac_key_out)
{
gcry_md_hd_t hd;
if (gcry_md_open(&hd, GCRY_MD_BLAKE2S_256, 0) == 0) {
- const char wg_label_mac1[] = "mac1----";
+ static const char wg_label_mac1[] = "mac1----";
gcry_md_write(hd, wg_label_mac1, strlen(wg_label_mac1));
gcry_md_write(hd, static_public->data, sizeof(wg_qqword));
memcpy(mac_key_out->data, gcry_md_read(hd, 0), sizeof(wg_qqword));
diff --git a/epan/dissectors/packet-wlancertextn.c b/epan/dissectors/packet-wlancertextn.c
index 6100af03d8..d1edaf3be6 100644
--- a/epan/dissectors/packet-wlancertextn.c
+++ b/epan/dissectors/packet-wlancertextn.c
@@ -39,7 +39,7 @@ static int hf_wlancertextn_SSIDList_PDU; /* SSIDList */
static int hf_wlancertextn_SSIDList_item; /* SSID */
/* Initialize the subtree pointers */
-static gint ett_wlancertextn_SSIDList;
+static int ett_wlancertextn_SSIDList;
diff --git a/epan/dissectors/packet-wlccp.c b/epan/dissectors/packet-wlccp.c
index 88e6c2eab8..a45d5270a3 100644
--- a/epan/dissectors/packet-wlccp.c
+++ b/epan/dissectors/packet-wlccp.c
@@ -426,7 +426,7 @@ static void set_tlv_flag(gboolean flag);
static gboolean get_tlv_flag(void);
static gboolean get_mic_flag(void);
-/* Initialize some utlity variables */
+/* Initialize some utility variables */
static gboolean mic_flag=0, tlv_flag=0;
/* Initialize the protocol and registered fields */
@@ -1042,12 +1042,12 @@ static void set_tlv_flag(gboolean flag)
static gboolean get_tlv_flag(void)
{
- return(tlv_flag);
+ return tlv_flag;
} /* get_tlv_flag */
static gboolean get_mic_flag(void)
{
- return(mic_flag);
+ return mic_flag;
} /* get_mic_flag */
/*******************************************************************************************/
@@ -1423,13 +1423,13 @@ handle things. To be investigated further */
} /* switch _base_message_type */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_ccm_msg */
static guint dissect_wlccp_sec_msg(proto_tree *_tree _U_, tvbuff_t *_tvb _U_, guint _offset, guint8 _base_message_type)
{
-/* at the momemt we have no more data to use to write this dissector code */
+/* at the moment we have no more data to use to write this dissector code */
/* it's just a place holder for now */
switch (_base_message_type)
@@ -1451,7 +1451,7 @@ static guint dissect_wlccp_sec_msg(proto_tree *_tree _U_, tvbuff_t *_tvb _U_, gu
- return(_offset);
+ return _offset;
} /* dissect_wlccp_sec_msg */
@@ -1536,7 +1536,7 @@ static guint dissect_wlccp_rrm_msg(proto_tree *_tree, tvbuff_t *_tvb, guint _off
} /* switch _base_message_type */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_rrm_msg */
@@ -1544,7 +1544,7 @@ static guint dissect_wlccp_rrm_msg(proto_tree *_tree, tvbuff_t *_tvb, guint _off
static guint dissect_wlccp_qos_msg(proto_tree *_tree _U_, tvbuff_t *_tvb _U_, guint _offset, guint8 _base_message_type)
{
-/* at the momemt we have no more data to use to write this dissector code */
+/* at the moment we have no more data to use to write this dissector code */
/* it's just a place holder for now */
@@ -1566,7 +1566,7 @@ static guint dissect_wlccp_qos_msg(proto_tree *_tree _U_, tvbuff_t *_tvb _U_, gu
} /* switch _base_message_type */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_qos_msg */
@@ -1762,13 +1762,13 @@ static guint dissect_wlccp_nm_msg(proto_tree *_tree, tvbuff_t *_tvb, guint _offs
- return(_offset);
+ return _offset;
} /* dissect_wlccp_nm_msg */
static guint dissect_wlccp_mip_msg(proto_tree *_tree _U_, tvbuff_t *_tvb _U_, guint _offset, guint8 _base_message_type)
{
-/* at the momemt we have no more data to use to write this dissector code */
+/* at the moment we have no more data to use to write this dissector code */
/* it's just a place holder for now */
switch (_base_message_type)
@@ -1788,7 +1788,7 @@ static guint dissect_wlccp_mip_msg(proto_tree *_tree _U_, tvbuff_t *_tvb _U_, gu
} /* switch _base_message_type */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_mip_msg */
@@ -2006,7 +2006,7 @@ static guint dissect_wlccp_tlvs( proto_tree *_tree, tvbuff_t *_tvb, guint _offse
/* done with decoding the contained TLVs */
- return(_tlv_end > _offset ? _tlv_end : _offset);
+ return (_tlv_end > _offset) ? _tlv_end : _offset;
} /* dissect_wlccp_tlvs */
@@ -2058,7 +2058,7 @@ static guint dissect_wlccp_ccm_tlv(proto_tree *_tree, tvbuff_t *_tvb, guint _off
} /* switch _type_id */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_ccm_tlv */
@@ -2217,7 +2217,7 @@ static guint dissect_wlccp_sec_tlv(proto_tree *_tree, tvbuff_t *_tvb, guint _off
} /* switch _type_id */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_sec_tlv */
@@ -2757,7 +2757,7 @@ static guint dissect_wlccp_rrm_tlv(proto_tree *_tree, tvbuff_t *_tvb, guint _off
} /* switch type_id */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_rrm_tlv */
@@ -2781,7 +2781,7 @@ static guint dissect_wlccp_qos_tlv(proto_tree *_tree, tvbuff_t *_tvb, guint _off
} /* switch _type_id */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_qos_tlv */
@@ -2982,7 +2982,7 @@ static guint dissect_wlccp_nm_tlv(proto_tree *_tree, tvbuff_t *_tvb, guint _offs
} /* switch _type_id */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_nm_tlv */
@@ -3007,7 +3007,7 @@ static guint dissect_wlccp_mip_tlv(proto_tree *_tree, tvbuff_t *_tvb, guint _off
} /* switch _type_id */
- return(_offset);
+ return _offset;
} /* dissect_wlccp_mip_tlv */
@@ -3936,7 +3936,7 @@ proto_register_wlccp(void)
},
{ &hf_wlccp_rpidensity,
- { "RPI Density", "wlccp.rpi_denisty",
+ { "RPI Density", "wlccp.rpi_density",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }
},
diff --git a/epan/dissectors/packet-wmio.c b/epan/dissectors/packet-wmio.c
index b7ab9a1dce..f4c9972729 100644
--- a/epan/dissectors/packet-wmio.c
+++ b/epan/dissectors/packet-wmio.c
@@ -481,7 +481,7 @@ dissect_wmio_encoded_string(tvbuff_t *tvb, gint offset, int hfindex, packet_info
} else {
if (foffset & 0x80000000){
foffset = 0x7FFFFFFF & foffset;
- if (foffset < (sizeof(stringDictionary)/sizeof(stringDictionary[0]))){
+ if (foffset < array_length(stringDictionary)){
proto_item_set_text(sub_tree, "%s: %s", proto_registrar_get_name(hfindex), stringDictionary[foffset]);
} else {
proto_item_set_text(sub_tree, "%s: Unknown Index %d", proto_registrar_get_name(hfindex), hfindex);
diff --git a/epan/dissectors/packet-wol.c b/epan/dissectors/packet-wol.c
index fe9fe3d1fc..3587849dfc 100644
--- a/epan/dissectors/packet-wol.c
+++ b/epan/dissectors/packet-wol.c
@@ -90,7 +90,7 @@ dissect_wol_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
/* Check that there's enough data */
len = tvb_reported_length(tvb);
if ( len < 102 ) /* wol's smallest packet size is 102 */
- return (0);
+ return 0;
/* Get some values from the packet header, probably using tvb_get_*() */
@@ -100,7 +100,7 @@ dissect_wol_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
* unless we need to change it later, just compare the 1st 6 bytes. */
qword = tvb_get_ntoh48(tvb,0);
if(qword != G_GUINT64_CONSTANT(0xffffffffffff))
- return (0);
+ return 0;
/* So far so good. Now get the next 6 bytes, which we'll assume is the
* target's MAC address, and do 15 memory chunk comparisons, since if this
@@ -108,7 +108,7 @@ dissect_wol_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
mac = (guint8 *)tvb_memdup(pinfo->pool, tvb, 6, 6);
for ( offset = 12; offset < 102; offset += 6 )
if ( tvb_memeql(tvb, offset, mac, 6) != 0 )
- return (0);
+ return 0;
/* OK, we're going to assume it's a MagicPacket. If there's a password,
* grab it now, and in case there's any extra bytes after the only 3 valid
diff --git a/epan/dissectors/packet-wow.c b/epan/dissectors/packet-wow.c
index 26e0e09c85..e173275850 100644
--- a/epan/dissectors/packet-wow.c
+++ b/epan/dissectors/packet-wow.c
@@ -15,10 +15,12 @@
#include "config.h"
+#include "packet-tcp.h"
+#include <epan/charsets.h>
#include <epan/packet.h>
#include <epan/prefs.h>
-#include <epan/charsets.h>
-#include "packet-tcp.h"
+#include <epan/wmem_scopes.h>
+#include <ptvcursor.h>
void proto_register_wow(void);
void proto_reg_handoff_wow(void);
@@ -26,105 +28,202 @@ void proto_reg_handoff_wow(void);
static dissector_handle_t wow_handle;
typedef enum {
- AUTH_LOGON_CHALLENGE = 0x00,
- AUTH_LOGON_PROOF = 0x01,
- AUTH_LOGON_RECONNECT = 0x02,
- AUTH_LOGON_RECONNECT_PROOF = 0x03,
- REALM_LIST = 0x10,
- XFER_INITIATE = 0x30,
- XFER_DATA = 0x31,
- XFER_ACCEPT = 0x32,
- XFER_RESUME = 0x33,
- XFER_CANCEL = 0x34
+ CMD_AUTH_LOGON_CHALLENGE = 0x00,
+ CMD_AUTH_LOGON_PROOF = 0x01,
+ CMD_AUTH_RECONNECT_CHALLENGE = 0x02,
+ CMD_AUTH_RECONNECT_PROOF = 0x03,
+ CMD_SURVEY_RESULT = 0x04,
+ CMD_REALM_LIST = 0x10,
+ CMD_XFER_INITIATE = 0x30,
+ CMD_XFER_DATA = 0x31,
+ CMD_XFER_ACCEPT = 0x32,
+ CMD_XFER_RESUME = 0x33,
+ CMD_XFER_CANCEL = 0x34
} auth_cmd_e;
static const value_string cmd_vs[] = {
- { AUTH_LOGON_CHALLENGE, "Authentication Logon Challenge" },
- { AUTH_LOGON_PROOF, "Authentication Logon Proof" },
- { AUTH_LOGON_RECONNECT, "Authentication Reconnect Challenge" },
- { AUTH_LOGON_RECONNECT_PROOF, "Authentication Reconnect Proof" },
- { REALM_LIST, "Realm List" },
- { XFER_INITIATE, "Transfer Initiate" },
- { XFER_DATA, "Transfer Data" },
- { XFER_ACCEPT, "Transfer Accept" },
- { XFER_RESUME, "Transfer Resume" },
- { XFER_CANCEL, "Transfer Cancel" },
- { 0, NULL }
+ { CMD_AUTH_LOGON_CHALLENGE, "CMD_AUTH_LOGON_CHALLENGE" },
+ { CMD_AUTH_LOGON_PROOF, "CMD_AUTH_LOGON_PROOF" },
+ { CMD_AUTH_RECONNECT_CHALLENGE, "CMD_AUTH_RECONNECT_CHALLENGE" },
+ { CMD_AUTH_RECONNECT_PROOF, "CMD_AUTH_RECONNECT_PROOF" },
+ { CMD_REALM_LIST, "CMD_REALM_LIST" },
+ { CMD_XFER_INITIATE, "CMD_XFER_INITIATE" },
+ { CMD_XFER_DATA, "CMD_XFER_DATA" },
+ { CMD_XFER_ACCEPT, "CMD_XFER_ACCEPT" },
+ { CMD_XFER_RESUME, "CMD_XFER_RESUME" },
+ { CMD_XFER_CANCEL, "CMD_XFER_CANCEL" },
+ { 0, NULL }
};
+/* AUTOGENERATED_START_ENUM */
typedef enum {
- SUCCESS = 0x00,
- FAIL_UNKNOWN0 = 0x01,
- FAIL_UNKNOWN1 = 0x02,
- FAIL_BANNED = 0x03,
- FAIL_UNKNOWN_ACCOUNT = 0x04,
- FAIL_INCORRECT_PASSWORD = 0x05,
- FAIL_ALREADY_ONLINE = 0x06,
- FAIL_NO_TIME = 0x07,
- FAIL_DB_BUSY = 0x08,
- FAIL_VERSION_INVALID = 0x09,
- FAIL_VERSION_UPDATE = 0x0A,
- FAIL_INVALID_SERVER = 0x0B,
- FAIL_SUSPENDED = 0x0C,
- FAIL_NOACCESS = 0x0D,
- SUCCESS_SURVEY = 0x0E,
- FAIL_PARENTAL_CONTROL = 0x0F
-} auth_error_e;
-
-static const value_string error_vs[] = {
- { SUCCESS, "Success" },
- { FAIL_UNKNOWN0, "Unknown" },
- { FAIL_UNKNOWN1, "Unknown" },
- { FAIL_BANNED, "Account banned" },
- { FAIL_UNKNOWN_ACCOUNT, "Unknown account" },
- { FAIL_INCORRECT_PASSWORD, "Incorrect password" },
- { FAIL_ALREADY_ONLINE, "Already online" },
- { FAIL_NO_TIME, "No game time on account" },
- { FAIL_DB_BUSY, "Database busy (could not log in)" },
- { FAIL_VERSION_INVALID, "Invalid game version" },
- { FAIL_VERSION_UPDATE, "Failed version update" },
- { FAIL_INVALID_SERVER, "Invalid server" },
- { FAIL_SUSPENDED, "Account suspended" },
- { FAIL_NOACCESS, "Unable to connect" },
- { SUCCESS_SURVEY, "Survey success" },
- { FAIL_PARENTAL_CONTROL, "Blocked by parental controls" },
- { 0, NULL }
+ REALM_TYPE_PLAYER_VS_ENVIRONMENT = 0x0,
+ REALM_TYPE_PLAYER_VS_PLAYER = 0x1,
+ REALM_TYPE_ROLEPLAYING = 0x6,
+ REALM_TYPE_ROLEPLAYING_PLAYER_VS_PLAYER = 0x8,
+} e_realm_type;
+static const value_string e_realm_type_strings[] = {
+ { REALM_TYPE_PLAYER_VS_ENVIRONMENT, "Player Vs Environment" },
+ { REALM_TYPE_PLAYER_VS_PLAYER, "Player Vs Player" },
+ { REALM_TYPE_ROLEPLAYING, "Roleplaying" },
+ { REALM_TYPE_ROLEPLAYING_PLAYER_VS_PLAYER, "Roleplaying Player Vs Player" },
+ { 0, NULL }
};
typedef enum {
- FLAG_NONE = 0x0,
- FLAG_INVALID = 0x1,
- FLAG_OFFLINE = 0x2,
- FLAG_SPECIFY_BUILD = 0x4,
- FLAG_UNK1 = 0x8,
- FLAG_UNK2 = 0x10,
- FLAG_FORCE_RECOMMENDED = 0x20,
- FLAG_FORCE_NEW_PLAYERS = 0x40,
- FLAG_FORCE_FULL = 0x80
-} auth_realm_flag_e;
-
-static const value_string realm_flags_vs[] = {
- { FLAG_NONE, "" },
- { FLAG_INVALID, "Locked" },
- { FLAG_OFFLINE, "Offline" },
- { FLAG_SPECIFY_BUILD, "Realm version info appended" },
- { FLAG_UNK1, "Unknown" },
- { FLAG_UNK2, "Unknown" },
- { FLAG_FORCE_RECOMMENDED, "Realm status is 'Recommended' in blue text" },
- { FLAG_FORCE_NEW_PLAYERS, "Realm status is 'Recommended' in green text" },
- { FLAG_FORCE_FULL, "Realm status is 'Full' in red text" },
- { 0, NULL }
+ REALM_CATEGORY_DEFAULT = 0x0,
+ REALM_CATEGORY_ONE = 0x1,
+ REALM_CATEGORY_TWO = 0x2,
+ REALM_CATEGORY_THREE = 0x3,
+ REALM_CATEGORY_FIVE = 0x5,
+} e_realm_category;
+static const value_string e_realm_category_strings[] = {
+ { REALM_CATEGORY_DEFAULT, "Default" },
+ { REALM_CATEGORY_ONE, "One" },
+ { REALM_CATEGORY_TWO, "Two" },
+ { REALM_CATEGORY_THREE, "Three" },
+ { REALM_CATEGORY_FIVE, "Five" },
+ { 0, NULL }
};
-static const value_string realm_type_vs[] = {
- { 0, "Normal" },
- { 1, "Player versus player" },
- { 4, "Normal (2)" },
- { 6, "Role playing normal" },
- { 8, "Role playing player versus player)" },
- { 0, NULL }
+typedef enum {
+ PROTOCOL_VERSION_TWO = 0x2,
+ PROTOCOL_VERSION_THREE = 0x3,
+ PROTOCOL_VERSION_FIVE = 0x5,
+ PROTOCOL_VERSION_SIX = 0x6,
+ PROTOCOL_VERSION_SEVEN = 0x7,
+ PROTOCOL_VERSION_EIGHT = 0x8,
+} e_protocol_version;
+static const value_string e_protocol_version_strings[] = {
+ { PROTOCOL_VERSION_TWO, "Two" },
+ { PROTOCOL_VERSION_THREE, "Three" },
+ { PROTOCOL_VERSION_FIVE, "Five" },
+ { PROTOCOL_VERSION_SIX, "Six" },
+ { PROTOCOL_VERSION_SEVEN, "Seven" },
+ { PROTOCOL_VERSION_EIGHT, "Eight" },
+ { 0, NULL }
};
+typedef enum {
+ PLATFORM_X86 = 0x783836,
+ PLATFORM_POWER_PC = 0x505043,
+} e_platform;
+static const value_string e_platform_strings[] = {
+ { PLATFORM_X86, "X86" },
+ { PLATFORM_POWER_PC, "Power Pc" },
+ { 0, NULL }
+};
+
+typedef enum {
+ OS_WINDOWS = 0x57696E,
+ OS_MAC_OS_X = 0x4F5358,
+} e_os;
+static const value_string e_os_strings[] = {
+ { OS_WINDOWS, "Windows" },
+ { OS_MAC_OS_X, "Mac Os X" },
+ { 0, NULL }
+};
+
+typedef enum {
+ LOCALE_EN_GB = 0x656E4742,
+ LOCALE_EN_US = 0x656E5553,
+ LOCALE_ES_MX = 0x65734D58,
+ LOCALE_PT_BR = 0x70744252,
+ LOCALE_FR_FR = 0x66724652,
+ LOCALE_DE_DE = 0x64654445,
+ LOCALE_ES_ES = 0x65734553,
+ LOCALE_PT_PT = 0x70745054,
+ LOCALE_IT_IT = 0x69744954,
+ LOCALE_RU_RU = 0x72755255,
+ LOCALE_KO_KR = 0x6B6F4B52,
+ LOCALE_ZH_TW = 0x7A685457,
+ LOCALE_EN_TW = 0x656E5457,
+ LOCALE_EN_CN = 0x656E434E,
+} e_locale;
+static const value_string e_locale_strings[] = {
+ { LOCALE_EN_GB, "En Gb" },
+ { LOCALE_EN_US, "En Us" },
+ { LOCALE_ES_MX, "Es Mx" },
+ { LOCALE_PT_BR, "Pt Br" },
+ { LOCALE_FR_FR, "Fr Fr" },
+ { LOCALE_DE_DE, "De De" },
+ { LOCALE_ES_ES, "Es Es" },
+ { LOCALE_PT_PT, "Pt Pt" },
+ { LOCALE_IT_IT, "It It" },
+ { LOCALE_RU_RU, "Ru Ru" },
+ { LOCALE_KO_KR, "Ko Kr" },
+ { LOCALE_ZH_TW, "Zh Tw" },
+ { LOCALE_EN_TW, "En Tw" },
+ { LOCALE_EN_CN, "En Cn" },
+ { 0, NULL }
+};
+
+typedef enum {
+ LOGIN_RESULT_SUCCESS = 0x00,
+ LOGIN_RESULT_FAIL_UNKNOWN0 = 0x01,
+ LOGIN_RESULT_FAIL_UNKNOWN1 = 0x02,
+ LOGIN_RESULT_FAIL_BANNED = 0x03,
+ LOGIN_RESULT_FAIL_UNKNOWN_ACCOUNT = 0x04,
+ LOGIN_RESULT_FAIL_INCORRECT_PASSWORD = 0x05,
+ LOGIN_RESULT_FAIL_ALREADY_ONLINE = 0x06,
+ LOGIN_RESULT_FAIL_NO_TIME = 0x07,
+ LOGIN_RESULT_FAIL_DB_BUSY = 0x08,
+ LOGIN_RESULT_FAIL_VERSION_INVALID = 0x09,
+ LOGIN_RESULT_LOGIN_DOWNLOAD_FILE = 0x0A,
+ LOGIN_RESULT_FAIL_INVALID_SERVER = 0x0B,
+ LOGIN_RESULT_FAIL_SUSPENDED = 0x0C,
+ LOGIN_RESULT_FAIL_NO_ACCESS = 0x0D,
+ LOGIN_RESULT_SUCCESS_SURVEY = 0x0E,
+ LOGIN_RESULT_FAIL_PARENTALCONTROL = 0x0F,
+ LOGIN_RESULT_FAIL_LOCKED_ENFORCED = 0x10,
+} e_login_result;
+static const value_string e_login_result_strings[] = {
+ { LOGIN_RESULT_SUCCESS, "Success" },
+ { LOGIN_RESULT_FAIL_UNKNOWN0, "Fail Unknown0" },
+ { LOGIN_RESULT_FAIL_UNKNOWN1, "Fail Unknown1" },
+ { LOGIN_RESULT_FAIL_BANNED, "Fail Banned" },
+ { LOGIN_RESULT_FAIL_UNKNOWN_ACCOUNT, "Fail Unknown Account" },
+ { LOGIN_RESULT_FAIL_INCORRECT_PASSWORD, "Fail Incorrect Password" },
+ { LOGIN_RESULT_FAIL_ALREADY_ONLINE, "Fail Already Online" },
+ { LOGIN_RESULT_FAIL_NO_TIME, "Fail No Time" },
+ { LOGIN_RESULT_FAIL_DB_BUSY, "Fail Db Busy" },
+ { LOGIN_RESULT_FAIL_VERSION_INVALID, "Fail Version Invalid" },
+ { LOGIN_RESULT_LOGIN_DOWNLOAD_FILE, "Login Download File" },
+ { LOGIN_RESULT_FAIL_INVALID_SERVER, "Fail Invalid Server" },
+ { LOGIN_RESULT_FAIL_SUSPENDED, "Fail Suspended" },
+ { LOGIN_RESULT_FAIL_NO_ACCESS, "Fail No Access" },
+ { LOGIN_RESULT_SUCCESS_SURVEY, "Success Survey" },
+ { LOGIN_RESULT_FAIL_PARENTALCONTROL, "Fail Parentalcontrol" },
+ { LOGIN_RESULT_FAIL_LOCKED_ENFORCED, "Fail Locked Enforced" },
+ { 0, NULL }
+};
+
+
+typedef enum {
+ REALM_FLAG_NONE = 0x00,
+ REALM_FLAG_INVALID = 0x01,
+ REALM_FLAG_OFFLINE = 0x02,
+ REALM_FLAG_SPECIFY_BUILD = 0x04,
+ REALM_FLAG_FORCE_BLUE_RECOMMENDED = 0x20,
+ REALM_FLAG_FORCE_GREEN_RECOMMENDED = 0x40,
+ REALM_FLAG_FORCE_RED_FULL = 0x80,
+} e_realm_flag;
+
+typedef enum {
+ SECURITY_FLAG_NONE = 0x0,
+ SECURITY_FLAG_PIN = 0x1,
+ SECURITY_FLAG_MATRIX_CARD = 0x2,
+ SECURITY_FLAG_AUTHENTICATOR = 0x4,
+} e_security_flag;
+
+typedef enum {
+ ACCOUNT_FLAG_GM = 0x000001,
+ ACCOUNT_FLAG_TRIAL = 0x000008,
+ ACCOUNT_FLAG_PROPASS = 0x800000,
+} e_account_flag;
+
+/* AUTOGENERATED_END_ENUM */
+
#define WOW_PORT 3724
#define WOW_CLIENT_TO_SERVER pinfo->destport == WOW_PORT
@@ -133,75 +232,88 @@ static const value_string realm_type_vs[] = {
/* Initialize the protocol and registered fields */
static int proto_wow;
+
/* More than 1 packet */
static int hf_wow_command;
-static int hf_wow_error;
-static int hf_wow_protocol_version;
-static int hf_wow_pkt_size;
-static int hf_wow_two_factor_pin_salt;
-static int hf_wow_num_keys;
-static int hf_wow_two_factor_enabled;
-static int hf_wow_challenge_data;
-
-/* Logon Challenge Client to Server */
-static int hf_wow_gamename;
-static int hf_wow_version1;
-static int hf_wow_version2;
-static int hf_wow_version3;
+static int hf_wow_string_length;
+/* AUTOGENERATED_START_HF */
+static int hf_wow_account_flag;
+static int hf_wow_account_name;
+static int hf_wow_address;
+static int hf_wow_authenticator;
static int hf_wow_build;
-static int hf_wow_platform;
-static int hf_wow_os;
-static int hf_wow_country;
-static int hf_wow_timezone_bias;
-static int hf_wow_ip;
-static int hf_wow_srp_i_len;
-static int hf_wow_srp_i;
-
-/* Logon Challenge Server to Client */
-static int hf_wow_srp_b;
-static int hf_wow_srp_g_len;
-static int hf_wow_srp_g;
-static int hf_wow_srp_n_len;
-static int hf_wow_srp_n;
-static int hf_wow_srp_s;
-static int hf_wow_crc_salt;
-static int hf_wow_two_factor_pin_grid_seed;
-
-/* Logon Proof Client to Server */
-static int hf_wow_srp_a;
-static int hf_wow_srp_m1;
-static int hf_wow_crc_hash;
-static int hf_wow_two_factor_pin_hash;
-
-/* Logon Proof Server to Client */
-static int hf_wow_srp_m2;
-static int hf_wow_hardware_survey_id;
-static int hf_wow_account_flags;
-static int hf_wow_unknown_flags;
-
-/* Reconnect Challenge Server to Client */
+static int hf_wow_cd_key_proof;
+static int hf_wow_challenge_count;
+static int hf_wow_challenge_data;
static int hf_wow_checksum_salt;
-
-/* Reconnect Proof Client to Server */
-static int hf_wow_client_proof;
static int hf_wow_client_checksum;
-
-/* Realm List Server to Client */
-static int hf_wow_num_realms;
-static int hf_wow_realm_type;
-static int hf_wow_realm_locked;
-static int hf_wow_realm_flags;
+static int hf_wow_client_ip_address;
+static int hf_wow_client_proof;
+static int hf_wow_client_public_key;
+static int hf_wow_compressed_data_length;
+static int hf_wow_crc_hash;
+static int hf_wow_crc_salt;
+static int hf_wow_data;
+static int hf_wow_decompressed_size;
+static int hf_wow_digit_count;
+static int hf_wow_error;
+static int hf_wow_file_md;
+static int hf_wow_file_size;
+static int hf_wow_filename;
+static int hf_wow_footer_padding;
+static int hf_wow_game_name;
+static int hf_wow_generator;
+static int hf_wow_generator_length;
+static int hf_wow_hardware_survey_id;
+static int hf_wow_header_padding;
+static int hf_wow_height;
+static int hf_wow_key_count;
+static int hf_wow_large_safe_prime;
+static int hf_wow_large_safe_prime_length;
+static int hf_wow_locale;
+static int hf_wow_locked;
+static int hf_wow_login_result;
+static int hf_wow_major;
+static int hf_wow_matrix_card_proof;
+static int hf_wow_minor;
+static int hf_wow_name;
+static int hf_wow_number_of_characters_on_realm;
+static int hf_wow_number_of_realms;
+static int hf_wow_number_of_telemetry_keys;
+static int hf_wow_offset;
+static int hf_wow_os;
+static int hf_wow_padding;
+static int hf_wow_patch;
+static int hf_wow_pin_grid_seed;
+static int hf_wow_pin_hash;
+static int hf_wow_pin_salt;
+static int hf_wow_platform;
+static int hf_wow_population;
+static int hf_wow_proof_data;
+static int hf_wow_protocol_version;
+static int hf_wow_protocol_version_int;
static int hf_wow_realm_category;
-static int hf_wow_realm_name;
-static int hf_wow_realm_socket;
-static int hf_wow_realm_population_level;
-static int hf_wow_realm_num_characters;
+static int hf_wow_realm_flag;
static int hf_wow_realm_id;
-
-static gboolean wow_preference_desegment = TRUE;
+static int hf_wow_realm_type;
+static int hf_wow_required;
+static int hf_wow_salt;
+static int hf_wow_security_flag;
+static int hf_wow_seed;
+static int hf_wow_server_proof;
+static int hf_wow_server_public_key;
+static int hf_wow_size;
+static int hf_wow_survey_id;
+static int hf_wow_unknown_bytes;
+static int hf_wow_unknown_int;
+static int hf_wow_utc_timezone_offset;
+static int hf_wow_width;
+/* AUTOGENERATED_END_HF */
+
+static bool wow_preference_desegment = true;
static gint ett_wow;
-static gint ett_wow_realms;
+static gint ett_message;
struct game_version {
gint8 major_version;
@@ -209,408 +321,33 @@ struct game_version {
gint8 patch_version;
gint16 revision;
};
-static struct game_version client_game_version = { -1, -1, -1, -1 };
-// WoW uses a kind of SemVer.
-// So 1.0.0 is always greater than any 0.x.y, and
-// 1.2.0 is always greater than any 1.1.y
-static gboolean
-version_is_at_or_above(int major, int minor, int patch)
+static gint32
+get_null_terminated_string_length( tvbuff_t* tvb, gint32 offset)
{
- if (client_game_version.major_version > major) {
- return TRUE;
- }
- else if (client_game_version.major_version < major) {
- return FALSE;
- }
- // Major versions must be equal
-
- if (client_game_version.minor_version > minor) {
- return TRUE;
- }
- else if (client_game_version.minor_version < minor) {
- return FALSE;
- }
- // Both major and minor versions are equal
-
- if (client_game_version.patch_version > patch) {
- return TRUE;
- }
- else if (client_game_version.patch_version < patch) {
- return FALSE;
- }
- // All versions are identical
-
- return TRUE;
-}
-static void
-parse_logon_proof_client_to_server(tvbuff_t *tvb, proto_tree *wow_tree, guint32 offset) {
- guint8 two_factor_enabled;
-
- proto_tree_add_item(wow_tree, hf_wow_srp_a, tvb,
- offset, 32, ENC_NA);
- offset += 32;
-
- proto_tree_add_item(wow_tree, hf_wow_srp_m1,
- tvb, offset, 20, ENC_NA);
- offset += 20;
-
- proto_tree_add_item(wow_tree, hf_wow_crc_hash,
- tvb, offset, 20, ENC_NA);
- offset += 20;
-
- proto_tree_add_item(wow_tree, hf_wow_num_keys,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- if (!version_is_at_or_above(1, 12, 0)) {
- return;
- }
- two_factor_enabled = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_tree, hf_wow_two_factor_enabled, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- if (!two_factor_enabled) {
- return;
- }
-
- proto_tree_add_item(wow_tree, hf_wow_two_factor_pin_salt, tvb,
- offset, 16, ENC_NA);
- offset += 16;
-
- proto_tree_add_item(wow_tree, hf_wow_two_factor_pin_hash, tvb,
- offset, 20, ENC_NA);
-
-
-}
-
-
-static void
-parse_logon_proof_server_to_client(tvbuff_t *tvb, proto_tree *wow_tree, guint32 offset) {
- guint8 error;
-
- error = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_tree, hf_wow_error, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
- if (error != SUCCESS) {
- // Following fields are only present when not an error.
- return;
- }
-
- proto_tree_add_item(wow_tree, hf_wow_srp_m2,
- tvb, offset, 20, ENC_NA);
- offset += 20;
-
- if (version_is_at_or_above(2, 4, 0)) {
- proto_tree_add_item(wow_tree, hf_wow_account_flags,
- tvb, offset, 4, ENC_LITTLE_ENDIAN);
- offset += 4;
- }
-
- proto_tree_add_item(wow_tree, hf_wow_hardware_survey_id,
- tvb, offset, 4, ENC_LITTLE_ENDIAN);
- offset += 4;
-
- if (version_is_at_or_above(2, 0, 3)) {
- proto_tree_add_item(wow_tree, hf_wow_unknown_flags,
- tvb, offset, 2, ENC_LITTLE_ENDIAN);
- }
-}
-static void
-parse_realm_list_server_to_client(packet_info *pinfo, tvbuff_t *tvb, proto_tree *wow_tree, guint32 offset) {
- guint8 num_realms, ii, number_of_realms_field_size, realm_name_offset, realm_type_field_size, realm_flags;
- gchar *string, *realm_name;
- gint len;
- proto_tree *wow_realms_tree;
-
- proto_tree_add_item(wow_tree, hf_wow_pkt_size,
- tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
-
- offset += 4; /* Unknown field; always 0 */
-
- if (version_is_at_or_above(2, 4, 3)) {
- /* Possibly valid for versions starting at 2.0.0 as well */
- number_of_realms_field_size = 2;
- realm_name_offset = 3;
- realm_type_field_size = 1;
- } else {
- number_of_realms_field_size = 1;
- realm_name_offset = 5;
- realm_type_field_size = 4;
- }
-
- proto_tree_add_item(wow_tree, hf_wow_num_realms,
- tvb, offset, number_of_realms_field_size, ENC_LITTLE_ENDIAN);
- num_realms = tvb_get_guint8(tvb, offset);
- offset += number_of_realms_field_size;
-
- for(ii = 0; ii < num_realms; ii++) {
- realm_name = tvb_get_stringz_enc(pinfo->pool, tvb,
- offset + realm_name_offset,
- &len, ENC_UTF_8);
-
- wow_realms_tree = proto_tree_add_subtree(wow_tree, tvb,
- offset, 0,
- ett_wow_realms, NULL,
- realm_name);
-
- proto_tree_add_item(wow_realms_tree, hf_wow_realm_type, tvb, offset, realm_type_field_size, ENC_LITTLE_ENDIAN);
- offset += realm_type_field_size;
-
- if (version_is_at_or_above(2, 4, 3)) {
- /* Possibly valid for versions starting at 2.0.0 as well */
- proto_tree_add_item(wow_realms_tree, hf_wow_realm_locked, tvb, offset, 1, ENC_NA);
- offset += 1;
- }
-
- realm_flags = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_realms_tree, hf_wow_realm_flags, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- proto_tree_add_string(wow_realms_tree, hf_wow_realm_name, tvb, offset, len, realm_name);
- offset += len;
-
- string = tvb_get_stringz_enc(pinfo->pool, tvb, offset,
- &len, ENC_UTF_8);
- proto_tree_add_string(wow_realms_tree, hf_wow_realm_socket, tvb, offset, len, string);
- offset += len;
-
- proto_tree_add_item(wow_realms_tree, hf_wow_realm_population_level, tvb, offset, 4, ENC_LITTLE_ENDIAN);
- offset += 4;
-
- proto_tree_add_item(wow_realms_tree, hf_wow_realm_num_characters, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- proto_tree_add_item(wow_realms_tree, hf_wow_realm_category, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- proto_tree_add_item(wow_realms_tree, hf_wow_realm_id, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- if (version_is_at_or_above(2, 4, 3) && (realm_flags & FLAG_SPECIFY_BUILD)) {
- proto_tree_add_item(wow_realms_tree, hf_wow_version1,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- proto_tree_add_item(wow_realms_tree, hf_wow_version2,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- proto_tree_add_item(wow_realms_tree, hf_wow_version3,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- proto_tree_add_item(wow_realms_tree, hf_wow_build, tvb,
- offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
- }
- }
-}
-
-static void
-parse_logon_reconnect_proof(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wow_tree, guint32 offset) {
- if (WOW_CLIENT_TO_SERVER) {
- proto_tree_add_item(wow_tree, hf_wow_challenge_data, tvb,
- offset, 16, ENC_NA);
- offset += 16;
-
- proto_tree_add_item(wow_tree, hf_wow_client_proof, tvb,
- offset, 20, ENC_NA);
- offset += 20;
-
- proto_tree_add_item(wow_tree, hf_wow_client_checksum, tvb,
- offset, 20, ENC_NA);
- offset += 20;
-
- proto_tree_add_item(wow_tree, hf_wow_num_keys,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
-
- }
- else if (WOW_SERVER_TO_CLIENT) {
- proto_tree_add_item(wow_tree, hf_wow_error, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
-
- }
-
+ const gint32 maximum_length = 0xFF;
+ for (gint32 length = 0; length < maximum_length; length++) {
+ guint8 character = tvb_get_guint8(tvb, offset + length);
+ if (character == 0) {
+ // Include the null character in the length
+ return length + 1;
+ }
+ }
+
+ return 0;
}
static void
-parse_logon_reconnect_challenge_server_to_client(tvbuff_t *tvb, proto_tree *wow_tree, guint32 offset) {
- guint8 error = tvb_get_guint8(tvb, offset);
-
- proto_tree_add_item(wow_tree, hf_wow_error, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
- if (error != SUCCESS) {
- // Following fields are only present when not an error.
- return;
- }
-
- proto_tree_add_item(wow_tree, hf_wow_challenge_data, tvb,
- offset, 16, ENC_NA);
- offset += 16;
-
- proto_tree_add_item(wow_tree, hf_wow_checksum_salt, tvb,
- offset, 16, ENC_NA);
+add_cstring(ptvcursor_t* ptv, const int* hf) {
+ gint32 len = get_null_terminated_string_length(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv));
+ ptvcursor_add(ptv, *hf, len, ENC_UTF_8);
}
static void
-parse_logon_challenge_client_to_server(packet_info *pinfo, tvbuff_t *tvb, proto_tree *wow_tree, guint32 offset) {
- guint8 srp_i_len;
- gchar *string;
-
- proto_tree_add_item(wow_tree, hf_wow_protocol_version, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- proto_tree_add_item(wow_tree, hf_wow_pkt_size,
- tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
-
- string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
- /* g_utf8_strreverse handles the REPLACMENT CHARACTERs.
- * It would handle embedded NULs correctly if we passed in the
- * byte length after conversion, but we need to change the API
- * to use counted strings in more places.
- */
- string = g_utf8_strreverse(string, -1);
- proto_tree_add_string(wow_tree, hf_wow_gamename,
- tvb, offset, 4, string);
- g_free(string);
- offset += 4;
-
-
- client_game_version.major_version = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_tree, hf_wow_version1,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- client_game_version.minor_version = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_tree, hf_wow_version2,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- client_game_version.patch_version = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_tree, hf_wow_version3,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- client_game_version.revision = tvb_get_guint16(tvb, offset, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(wow_tree, hf_wow_build, tvb,
- offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
-
- string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
- string = g_utf8_strreverse(string, -1);
- proto_tree_add_string(wow_tree, hf_wow_platform,
- tvb, offset, 4, string);
- g_free(string);
- offset += 4;
-
- string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
- string = g_utf8_strreverse(string, -1);
- proto_tree_add_string(wow_tree, hf_wow_os, tvb,
- offset, 4, string);
- g_free(string);
- offset += 4;
-
- string = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, ENC_ASCII);
- string = g_utf8_strreverse(string, -1);
- proto_tree_add_string(wow_tree, hf_wow_country,
- tvb, offset, 4, string);
- g_free(string);
- offset += 4;
-
- proto_tree_add_item(wow_tree,
- hf_wow_timezone_bias,
- tvb, offset, 4, ENC_LITTLE_ENDIAN);
- offset += 4;
-
- proto_tree_add_item(wow_tree, hf_wow_ip, tvb,
- offset, 4, ENC_BIG_ENDIAN);
- offset += 4;
-
- proto_tree_add_item(wow_tree,
- hf_wow_srp_i_len,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- srp_i_len = tvb_get_guint8(tvb, offset);
- offset += 1;
-
- proto_tree_add_item(wow_tree,
- hf_wow_srp_i, tvb,
- offset, srp_i_len,
- ENC_UTF_8);
-}
-
-static void
-parse_logon_challenge_server_to_client(tvbuff_t *tvb, proto_tree *wow_tree, guint32 offset) {
- guint8 error, srp_g_len, srp_n_len, two_factor_enabled;
-
- proto_tree_add_item(wow_tree, hf_wow_protocol_version, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- error = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_tree, hf_wow_error, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
- if (error != SUCCESS) {
- // Following fields are only present when not an error.
- return;
- }
-
- proto_tree_add_item(wow_tree, hf_wow_srp_b, tvb,
- offset, 32, ENC_NA);
- offset += 32;
-
- proto_tree_add_item(wow_tree, hf_wow_srp_g_len,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- srp_g_len = tvb_get_guint8(tvb, offset);
- offset += 1;
-
- proto_tree_add_item(wow_tree, hf_wow_srp_g, tvb,
- offset, srp_g_len, ENC_NA);
- offset += srp_g_len;
-
- proto_tree_add_item(wow_tree, hf_wow_srp_n_len,
- tvb, offset, 1, ENC_LITTLE_ENDIAN);
- srp_n_len = tvb_get_guint8(tvb, offset);
- offset += 1;
-
- proto_tree_add_item(wow_tree, hf_wow_srp_n, tvb,
- offset, srp_n_len, ENC_NA);
- offset += srp_n_len;
-
- proto_tree_add_item(wow_tree, hf_wow_srp_s, tvb,
- offset, 32, ENC_NA);
- offset += 32;
-
- proto_tree_add_item(wow_tree, hf_wow_crc_salt, tvb,
- offset, 16, ENC_NA);
- offset += 16;
-
- if (!version_is_at_or_above(1, 12, 0)) {
- /* The two factor fields were added in the 1.12 update. */
- return;
- }
- two_factor_enabled = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(wow_tree, hf_wow_two_factor_enabled, tvb,
- offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- if (!two_factor_enabled) {
- return;
- }
- proto_tree_add_item(wow_tree, hf_wow_two_factor_pin_grid_seed, tvb,
- offset, 4, ENC_LITTLE_ENDIAN);
- offset += 4;
-
- proto_tree_add_item(wow_tree, hf_wow_two_factor_pin_salt, tvb,
- offset, 16, ENC_NA);
-
+add_string(ptvcursor_t* ptv, const int* hf) {
+ gint32 len = 0;
+ ptvcursor_add_ret_uint(ptv, hf_wow_string_length, 1, ENC_NA, &len);
+ ptvcursor_add(ptv, *hf, len, ENC_UTF_8);
}
static guint
@@ -622,9 +359,9 @@ get_wow_pdu_len(packet_info *pinfo, tvbuff_t *tvb, int offset, void *data _U_)
cmd = tvb_get_guint8(tvb, offset);
- if(WOW_SERVER_TO_CLIENT && cmd == REALM_LIST)
+ if(WOW_SERVER_TO_CLIENT && cmd == CMD_REALM_LIST)
size_field_offset = 1;
- if(WOW_CLIENT_TO_SERVER && cmd == AUTH_LOGON_CHALLENGE)
+ if(WOW_CLIENT_TO_SERVER && cmd == CMD_AUTH_LOGON_CHALLENGE)
size_field_offset = 2;
pkt_len = tvb_get_letohs(tvb, size_field_offset);
@@ -632,82 +369,540 @@ get_wow_pdu_len(packet_info *pinfo, tvbuff_t *tvb, int offset, void *data _U_)
return pkt_len + size_field_offset + 2;
}
+static void
+add_body_fields(packet_info *pinfo, guint8 header_opcode, ptvcursor_t *ptv, uint32_t *protocol_version) {
+ /* AUTOGENERATED_START_VARIABLES */
+ guint32 compressed_data_length = 0;
+ guint32 flag = 0;
+ guint32 generator_length = 0;
+ guint32 large_safe_prime_length = 0;
+ guint32 number_of_realms = 0;
+ guint32 number_of_telemetry_keys = 0;
+ guint32 result = 0;
+ guint32 security_flag = 0;
+ guint32 size = 0;
+/* AUTOGENERATED_END_VARIABLES */
+
+ /* AUTOGENERATED_START_PARSER */
+ switch (header_opcode) {
+ case CMD_AUTH_LOGON_CHALLENGE:
+ switch (*protocol_version) {
+ case 2:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_protocol_version_int, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_server_public_key, 32, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_generator_length, 1, ENC_LITTLE_ENDIAN, &generator_length);
+ ptvcursor_add(ptv, hf_wow_generator, generator_length, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_large_safe_prime_length, 1, ENC_LITTLE_ENDIAN, &large_safe_prime_length);
+ ptvcursor_add(ptv, hf_wow_large_safe_prime, large_safe_prime_length, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_salt, 32, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_crc_salt, 16, ENC_NA);
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_protocol_version, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_game_name, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Version");
+ ptvcursor_add(ptv, hf_wow_major, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_minor, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_patch, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_build, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_wow_platform, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_os, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locale, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_utc_timezone_offset, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_client_ip_address, 4, ENC_LITTLE_ENDIAN);
+ add_string(ptv, &hf_wow_account_name);
+ }
+ break;
+ case 3:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_protocol_version_int, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_server_public_key, 32, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_generator_length, 1, ENC_LITTLE_ENDIAN, &generator_length);
+ ptvcursor_add(ptv, hf_wow_generator, generator_length, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_large_safe_prime_length, 1, ENC_LITTLE_ENDIAN, &large_safe_prime_length);
+ ptvcursor_add(ptv, hf_wow_large_safe_prime, large_safe_prime_length, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_salt, 32, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_crc_salt, 16, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_security_flag, 1, ENC_LITTLE_ENDIAN, &security_flag);
+ if (security_flag == SECURITY_FLAG_PIN) {
+ ptvcursor_add(ptv, hf_wow_pin_grid_seed, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_pin_salt, 16, ENC_NA);
+ }
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_protocol_version, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_game_name, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Version");
+ ptvcursor_add(ptv, hf_wow_major, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_minor, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_patch, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_build, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_wow_platform, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_os, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locale, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_utc_timezone_offset, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_client_ip_address, 4, ENC_LITTLE_ENDIAN);
+ add_string(ptv, &hf_wow_account_name);
+ }
+ break;
+ case 5:
+ case 6:
+ case 7:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_protocol_version_int, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_server_public_key, 32, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_generator_length, 1, ENC_LITTLE_ENDIAN, &generator_length);
+ ptvcursor_add(ptv, hf_wow_generator, generator_length, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_large_safe_prime_length, 1, ENC_LITTLE_ENDIAN, &large_safe_prime_length);
+ ptvcursor_add(ptv, hf_wow_large_safe_prime, large_safe_prime_length, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_salt, 32, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_crc_salt, 16, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_security_flag, 1, ENC_LITTLE_ENDIAN, &security_flag);
+ if (security_flag & SECURITY_FLAG_PIN) {
+ ptvcursor_add(ptv, hf_wow_pin_grid_seed, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_pin_salt, 16, ENC_NA);
+ }
+ if (security_flag & SECURITY_FLAG_MATRIX_CARD) {
+ ptvcursor_add(ptv, hf_wow_width, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_height, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_digit_count, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_challenge_count, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_seed, 8, ENC_LITTLE_ENDIAN);
+ }
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_protocol_version, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_game_name, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Version");
+ ptvcursor_add(ptv, hf_wow_major, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_minor, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_patch, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_build, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_wow_platform, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_os, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locale, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_utc_timezone_offset, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_client_ip_address, 4, ENC_LITTLE_ENDIAN);
+ add_string(ptv, &hf_wow_account_name);
+ }
+ break;
+ case 8:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_protocol_version_int, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_server_public_key, 32, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_generator_length, 1, ENC_LITTLE_ENDIAN, &generator_length);
+ ptvcursor_add(ptv, hf_wow_generator, generator_length, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_large_safe_prime_length, 1, ENC_LITTLE_ENDIAN, &large_safe_prime_length);
+ ptvcursor_add(ptv, hf_wow_large_safe_prime, large_safe_prime_length, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_salt, 32, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_crc_salt, 16, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_security_flag, 1, ENC_LITTLE_ENDIAN, &security_flag);
+ if (security_flag & SECURITY_FLAG_PIN) {
+ ptvcursor_add(ptv, hf_wow_pin_grid_seed, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_pin_salt, 16, ENC_NA);
+ }
+ if (security_flag & SECURITY_FLAG_MATRIX_CARD) {
+ ptvcursor_add(ptv, hf_wow_width, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_height, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_digit_count, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_challenge_count, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_seed, 8, ENC_LITTLE_ENDIAN);
+ }
+ if (security_flag & SECURITY_FLAG_AUTHENTICATOR) {
+ ptvcursor_add(ptv, hf_wow_required, 1, ENC_LITTLE_ENDIAN);
+ }
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_protocol_version, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_game_name, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Version");
+ ptvcursor_add(ptv, hf_wow_major, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_minor, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_patch, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_build, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_wow_platform, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_os, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locale, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_utc_timezone_offset, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_client_ip_address, 4, ENC_LITTLE_ENDIAN);
+ add_string(ptv, &hf_wow_account_name);
+ }
+ break;
+ }
+ break;
+ case CMD_AUTH_LOGON_PROOF:
+ switch (*protocol_version) {
+ case 2:
+ case 3:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_server_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_hardware_survey_id, 4, ENC_LITTLE_ENDIAN);
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_client_public_key, 32, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_crc_hash, 20, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_number_of_telemetry_keys, 1, ENC_LITTLE_ENDIAN, &number_of_telemetry_keys);
+ for (guint32 i1 = 0; i1 < number_of_telemetry_keys; ++i1) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TelemetryKey %i", i1);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_bytes, 4, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_cd_key_proof, 20, ENC_NA);
+ ptvcursor_pop_subtree(ptv);
+ }
+ }
+ break;
+ case 5:
+ case 6:
+ case 7:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_server_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_hardware_survey_id, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 2, ENC_LITTLE_ENDIAN);
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_client_public_key, 32, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_crc_hash, 20, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_number_of_telemetry_keys, 1, ENC_LITTLE_ENDIAN, &number_of_telemetry_keys);
+ for (guint32 i1 = 0; i1 < number_of_telemetry_keys; ++i1) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TelemetryKey %i", i1);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_bytes, 4, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_cd_key_proof, 20, ENC_NA);
+ ptvcursor_pop_subtree(ptv);
+ }
+ }
+ break;
+ case 8:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_server_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_account_flag, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_hardware_survey_id, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 2, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_padding, 2, ENC_LITTLE_ENDIAN);
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_client_public_key, 32, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_crc_hash, 20, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_number_of_telemetry_keys, 1, ENC_LITTLE_ENDIAN, &number_of_telemetry_keys);
+ for (guint32 i1 = 0; i1 < number_of_telemetry_keys; ++i1) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "TelemetryKey %i", i1);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_int, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_unknown_bytes, 4, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_cd_key_proof, 20, ENC_NA);
+ ptvcursor_pop_subtree(ptv);
+ }
+ }
+ break;
+ }
+ break;
+ case CMD_AUTH_RECONNECT_CHALLENGE:
+ switch (*protocol_version) {
+ case 2:
+ case 5:
+ case 6:
+ case 7:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_challenge_data, 16, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_checksum_salt, 16, ENC_NA);
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_protocol_version, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_game_name, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Version");
+ ptvcursor_add(ptv, hf_wow_major, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_minor, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_patch, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_build, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_wow_platform, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_os, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locale, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_utc_timezone_offset, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_client_ip_address, 4, ENC_LITTLE_ENDIAN);
+ add_string(ptv, &hf_wow_account_name);
+ }
+ break;
+ case 8:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add_ret_uint(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN, &result);
+ if (result == LOGIN_RESULT_SUCCESS) {
+ ptvcursor_add(ptv, hf_wow_challenge_data, 16, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_checksum_salt, 16, ENC_NA);
+ }
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_protocol_version, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_game_name, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Version");
+ ptvcursor_add(ptv, hf_wow_major, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_minor, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_patch, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_build, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ ptvcursor_add(ptv, hf_wow_platform, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_os, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locale, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_utc_timezone_offset, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_client_ip_address, 4, ENC_LITTLE_ENDIAN);
+ add_string(ptv, &hf_wow_account_name);
+ }
+ break;
+ }
+ break;
+ case CMD_AUTH_RECONNECT_PROOF:
+ switch (*protocol_version) {
+ case 2:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_proof_data, 16, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_checksum, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_key_count, 1, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ case 5:
+ case 6:
+ case 7:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_padding, 2, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_proof_data, 16, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_checksum, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_key_count, 1, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ case 8:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_login_result, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_padding, 2, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_proof_data, 16, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_proof, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_client_checksum, 20, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_key_count, 1, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ }
+ break;
+ case CMD_REALM_LIST:
+ switch (*protocol_version) {
+ case 2:
+ case 3:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_header_padding, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_number_of_realms, 1, ENC_LITTLE_ENDIAN, &number_of_realms);
+ for (guint32 i1 = 0; i1 < number_of_realms; ++i1) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Realm %i", i1);
+ ptvcursor_add(ptv, hf_wow_realm_type, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_flag, 1, ENC_LITTLE_ENDIAN);
+ add_cstring(ptv, &hf_wow_name);
+ add_cstring(ptv, &hf_wow_address);
+ ptvcursor_add(ptv, hf_wow_population, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_number_of_characters_on_realm, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_category, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_id, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ }
+ ptvcursor_add(ptv, hf_wow_footer_padding, 2, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_padding, 4, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ case 5:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_header_padding, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_number_of_realms, 1, ENC_LITTLE_ENDIAN, &number_of_realms);
+ for (guint32 i1 = 0; i1 < number_of_realms; ++i1) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Realm %i", i1);
+ ptvcursor_add(ptv, hf_wow_realm_type, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locked, 1, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_realm_flag, 1, ENC_LITTLE_ENDIAN);
+ add_cstring(ptv, &hf_wow_name);
+ add_cstring(ptv, &hf_wow_address);
+ ptvcursor_add(ptv, hf_wow_population, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_number_of_characters_on_realm, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_category, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_id, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ }
+ ptvcursor_add(ptv, hf_wow_footer_padding, 2, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_padding, 4, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ case 6:
+ case 7:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_header_padding, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_number_of_realms, 2, ENC_LITTLE_ENDIAN, &number_of_realms);
+ for (guint32 i1 = 0; i1 < number_of_realms; ++i1) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Realm %i", i1);
+ ptvcursor_add(ptv, hf_wow_realm_type, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locked, 1, ENC_NA);
+ ptvcursor_add(ptv, hf_wow_realm_flag, 1, ENC_LITTLE_ENDIAN);
+ add_cstring(ptv, &hf_wow_name);
+ add_cstring(ptv, &hf_wow_address);
+ ptvcursor_add(ptv, hf_wow_population, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_number_of_characters_on_realm, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_category, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_id, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ }
+ ptvcursor_add(ptv, hf_wow_footer_padding, 2, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_padding, 4, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ case 8:
+ if (WOW_SERVER_TO_CLIENT) {
+ ptvcursor_add(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_header_padding, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_number_of_realms, 2, ENC_LITTLE_ENDIAN, &number_of_realms);
+ for (guint32 i1 = 0; i1 < number_of_realms; ++i1) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Realm %i", i1);
+ ptvcursor_add(ptv, hf_wow_realm_type, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_locked, 1, ENC_NA);
+ ptvcursor_add_ret_uint(ptv, hf_wow_realm_flag, 1, ENC_LITTLE_ENDIAN, &flag);
+ add_cstring(ptv, &hf_wow_name);
+ add_cstring(ptv, &hf_wow_address);
+ ptvcursor_add(ptv, hf_wow_population, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_number_of_characters_on_realm, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_category, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_realm_id, 1, ENC_LITTLE_ENDIAN);
+ if (flag & REALM_FLAG_SPECIFY_BUILD) {
+ ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "Version");
+ ptvcursor_add(ptv, hf_wow_major, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_minor, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_patch, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_build, 2, ENC_LITTLE_ENDIAN);
+ ptvcursor_pop_subtree(ptv);
+ }
+ ptvcursor_pop_subtree(ptv);
+ }
+ ptvcursor_add(ptv, hf_wow_footer_padding, 2, ENC_LITTLE_ENDIAN);
+ }
+ else {
+ ptvcursor_add(ptv, hf_wow_padding, 4, ENC_LITTLE_ENDIAN);
+ }
+ break;
+ }
+ break;
+ case CMD_SURVEY_RESULT:
+ ptvcursor_add(ptv, hf_wow_survey_id, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_error, 1, ENC_LITTLE_ENDIAN);
+ ptvcursor_add_ret_uint(ptv, hf_wow_compressed_data_length, 2, ENC_LITTLE_ENDIAN, &compressed_data_length);
+ ptvcursor_add(ptv, hf_wow_data, compressed_data_length, ENC_NA);
+ break;
+ case CMD_XFER_DATA:
+ ptvcursor_add_ret_uint(ptv, hf_wow_size, 2, ENC_LITTLE_ENDIAN, &size);
+ ptvcursor_add(ptv, hf_wow_data, size, ENC_NA);
+ break;
+ case CMD_XFER_INITIATE:
+ add_string(ptv, &hf_wow_filename);
+ ptvcursor_add(ptv, hf_wow_file_size, 8, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_wow_file_md, 16, ENC_NA);
+ break;
+ case CMD_XFER_RESUME:
+ ptvcursor_add(ptv, hf_wow_offset, 8, ENC_LITTLE_ENDIAN);
+ break;
+
+ default:
+ break;
+ }
+/* AUTOGENERATED_END_PARSER */
+}
+
static int
dissect_wow_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- proto_item *ti;
- proto_tree *wow_tree;
-
- guint8 cmd;
- guint32 offset = 0;
-
col_set_str(pinfo->cinfo, COL_PROTOCOL, "WOW");
-
col_clear(pinfo->cinfo, COL_INFO);
- cmd = tvb_get_guint8(tvb, offset);
+ guint32 offset = 0;
+ guint8 header_opcode = tvb_get_guint8(tvb, offset);
col_set_str(pinfo->cinfo, COL_INFO,
- val_to_str_const(cmd, cmd_vs,
+ val_to_str_const(header_opcode, cmd_vs,
"Unrecognized packet type"));
if(!tree) {
return tvb_captured_length(tvb);
}
- ti = proto_tree_add_item(tree, proto_wow, tvb, 0, -1, ENC_NA);
- wow_tree = proto_item_add_subtree(ti, ett_wow);
-
- proto_tree_add_item(wow_tree, hf_wow_command, tvb, offset, 1,
- ENC_LITTLE_ENDIAN);
- offset += 1;
+ proto_item* ti = proto_tree_add_item(tree, proto_wow, tvb, 0, -1, ENC_NA);
+ proto_tree* wow_tree = proto_item_add_subtree(ti, ett_wow);
- switch(cmd) {
+ ptvcursor_t* ptv = ptvcursor_new(wmem_packet_scope(), wow_tree, tvb, offset);
- case AUTH_LOGON_RECONNECT_PROOF:
- parse_logon_reconnect_proof(tvb, pinfo, wow_tree, offset);
+ ptvcursor_add(ptv, hf_wow_command, 1, ENC_LITTLE_ENDIAN);
- break;
+ conversation_t* conv = find_or_create_conversation(pinfo);
+ uint32_t* protocol_version = (uint32_t*)conversation_get_proto_data(conv, proto_wow);
+ if (protocol_version == NULL) {
+ protocol_version = (uint32_t*)wmem_new0(wmem_file_scope(), uint32_t);
+ conversation_add_proto_data(conv, proto_wow, protocol_version);
+ // 2 is the lowest valid version.
+ *protocol_version = 2;
+ }
- case AUTH_LOGON_RECONNECT:
- if (WOW_SERVER_TO_CLIENT) {
- parse_logon_reconnect_challenge_server_to_client(tvb, wow_tree, offset);
- } else if (WOW_CLIENT_TO_SERVER) {
- parse_logon_challenge_client_to_server(pinfo, tvb, wow_tree, offset);
- }
-
- break;
-
- case AUTH_LOGON_CHALLENGE :
- if(WOW_CLIENT_TO_SERVER) {
- parse_logon_challenge_client_to_server(pinfo, tvb, wow_tree, offset);
- } else if(WOW_SERVER_TO_CLIENT) {
- parse_logon_challenge_server_to_client(tvb, wow_tree, offset);
- }
-
- break;
-
- case AUTH_LOGON_PROOF :
- if (WOW_CLIENT_TO_SERVER) {
- parse_logon_proof_client_to_server(tvb, wow_tree, offset);
- } else if (WOW_SERVER_TO_CLIENT) {
- parse_logon_proof_server_to_client(tvb, wow_tree, offset);
- }
-
- break;
-
- case REALM_LIST :
- if(WOW_CLIENT_TO_SERVER) {
-
- } else if(WOW_SERVER_TO_CLIENT) {
- parse_realm_list_server_to_client(pinfo, tvb, wow_tree, offset);
-
- }
-
- break;
- }
+ add_body_fields(pinfo, header_opcode, ptv, protocol_version);
- return tvb_captured_length(tvb);
+ return tvb_captured_length(tvb);
}
@@ -719,9 +914,9 @@ dissect_wow(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
cmd = tvb_get_guint8(tvb, 0);
- if(WOW_SERVER_TO_CLIENT && cmd == REALM_LIST)
+ if(WOW_SERVER_TO_CLIENT && cmd == CMD_REALM_LIST)
size_field_offset = 1;
- if(WOW_CLIENT_TO_SERVER && cmd == AUTH_LOGON_CHALLENGE)
+ if(WOW_CLIENT_TO_SERVER && cmd == CMD_AUTH_LOGON_CHALLENGE)
size_field_offset = 2;
if(size_field_offset > -1) {
@@ -745,261 +940,449 @@ proto_register_wow(void)
module_t *wow_module; /* For our preferences */
static hf_register_info hf[] = {
- { &hf_wow_command,
- { "Command", "wow.cmd",
- FT_UINT8, BASE_HEX, VALS(cmd_vs), 0,
- "Type of packet", HFILL }
- },
- { &hf_wow_protocol_version,
- { "Protocol version", "wow.protocol_version",
- FT_UINT8, BASE_DEC, 0, 0,
- "Version of packet", HFILL }
- },
- { &hf_wow_error,
- { "Error", "wow.error",
- FT_UINT8, BASE_HEX, VALS(error_vs), 0,
- NULL, HFILL }
- },
- { &hf_wow_pkt_size,
- { "Packet size", "wow.pkt_size",
- FT_UINT16, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_gamename,
- { "Game name", "wow.gamename",
- FT_STRING, BASE_NONE, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_version1,
- { "Version 1", "wow.version1",
- FT_UINT8, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_version2,
- { "Version 2", "wow.version2",
- FT_UINT8, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_version3,
- { "Version 3", "wow.version3",
- FT_UINT8, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_build,
- { "Build", "wow.build",
- FT_UINT16, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_platform,
- { "Platform", "wow.platform",
- FT_STRING, BASE_NONE, 0, 0,
- "CPU architecture of client system", HFILL }
- },
- { &hf_wow_os,
- { "Operating system", "wow.os",
- FT_STRING, BASE_NONE, 0, 0,
- "Operating system of client system", HFILL }
- },
- { &hf_wow_country,
- { "Country", "wow.country",
- FT_STRING, BASE_NONE, 0, 0,
- "Language and country of client system", HFILL }
- },
- { &hf_wow_timezone_bias,
- { "Timezone bias", "wow.timezone_bias",
- FT_UINT32, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_ip,
- { "IP address", "wow.ip",
- FT_IPv4, BASE_NONE, 0, 0,
- "Client's actual IP address", HFILL }
- },
- { &hf_wow_srp_i_len,
- { "SRP I length", "wow.srp.i_len",
- FT_UINT8, BASE_DEC, 0, 0,
- "Secure Remote Password protocol 'I' value length", HFILL }
- },
- { &hf_wow_srp_i,
- { "SRP I", "wow.srp.i",
- FT_STRING, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 'I' value (username)", HFILL }
- },
- { &hf_wow_srp_b,
- { "SRP B", "wow.srp.b",
- FT_BYTES, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 'B' value (one of the public ephemeral values)", HFILL }
- },
- { &hf_wow_srp_g_len,
- { "SRP g length", "wow.srp.g_len",
- FT_UINT8, BASE_DEC, 0, 0,
- "Secure Remote Password protocol 'g' value length",
- HFILL }
- },
- { &hf_wow_srp_g,
- { "SRP g", "wow.srp.g",
- FT_BYTES, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 'g' value", HFILL }
- },
- { &hf_wow_srp_n_len,
- { "SRP N length", "wow.srp.n_len",
- FT_UINT8, BASE_DEC, 0, 0,
- "Secure Remote Password protocol 'N' value length",
- HFILL }
- },
- { &hf_wow_srp_n,
- { "SRP N", "wow.srp.n",
- FT_BYTES, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 'N' value (a large safe prime)", HFILL }
- },
- { &hf_wow_srp_s,
- { "SRP s", "wow.srp.s",
- FT_BYTES, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 's' (user's salt) value",
- HFILL }
- },
- { &hf_wow_crc_salt,
- { "CRC salt", "wow.crc_salt",
- FT_BYTES, BASE_NONE, 0, 0,
- "Salt to be used for the hash in the reply packet",
- HFILL }
- },
- { &hf_wow_two_factor_enabled,
- { "Two factor enabled", "wow.two_factor_enabled",
- FT_BOOLEAN, BASE_NONE, 0, 0,
- "Enables two factor authentication",
- HFILL }
- },
- { &hf_wow_srp_a,
- { "SRP A", "wow.srp.a",
- FT_BYTES, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 'A' value (one of the public ephemeral values)", HFILL }
- },
- { &hf_wow_srp_m1,
- { "SRP M1", "wow.srp.m1",
- FT_BYTES, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 'M1' value", HFILL }
- },
- { &hf_wow_crc_hash,
- { "CRC hash", "wow.crc_hash",
- FT_BYTES, BASE_NONE, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_num_keys,
- { "Number of keys", "wow.num_keys",
- FT_UINT8, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_hardware_survey_id,
- { "Hardware Survey ID", "wow.hardware_survey_id",
- FT_UINT32, BASE_DEC, 0, 0,
- "ID of a hardware survey that the client should run", HFILL }
- },
- { &hf_wow_account_flags,
- { "Account Flags", "wow.account_flags",
- FT_UINT32, BASE_HEX, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_unknown_flags,
- { "Unknown Flags", "wow.unknown_flags",
- FT_UINT16, BASE_HEX, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_srp_m2,
- { "SRP M2", "wow.srp.m2",
- FT_BYTES, BASE_NONE, 0, 0,
- "Secure Remote Password protocol 'M2' value", HFILL }
- },
- { &hf_wow_challenge_data,
- { "Reconnection Challenge Data", "wow.reconnect_challenge_data",
- FT_BYTES, BASE_NONE, 0, 0,
- "Random data used for reconnection calculation", HFILL }
- },
- { &hf_wow_checksum_salt,
- { "Reconnection Checksum Salt", "wow.reconnect_checksum_salt",
- FT_BYTES, BASE_NONE, 0, 0,
- "Unknown. Unused in 1.12", HFILL }
- },
- { &hf_wow_client_proof,
- { "Reconnection Client Proof", "wow.reconnect_proof",
- FT_BYTES, BASE_NONE, 0, 0,
- "Client proof of knowing session key based on challenge data", HFILL }
- },
- { &hf_wow_client_checksum,
- { "Reconnection Checksum", "wow.reconnect_checksum",
- FT_BYTES, BASE_NONE, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_two_factor_pin_grid_seed,
- { "Two Factor PIN Grid Seed", "wow.two_factor_pin_grid_seed",
- FT_UINT32, BASE_HEX, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_two_factor_pin_salt,
- { "Two Factor PIN Salt", "wow.two_factor_pin_salt",
- FT_BYTES, BASE_NONE, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_two_factor_pin_hash,
- { "Two Factor PIN Hash", "wow.two_factor_pin_hash",
- FT_BYTES, BASE_NONE, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_num_realms,
- { "Number of realms", "wow.num_realms",
- FT_UINT16, BASE_DEC, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_realm_type,
- { "Type", "wow.realm_type",
- FT_UINT8, BASE_DEC, VALS(realm_type_vs), 0,
- "Also known as realm icon", HFILL }
- },
- { &hf_wow_realm_locked,
- { "Locked", "wow.realm_locked",
- FT_BOOLEAN, BASE_NONE, 0, 0,
- "Realm appears as locked in client", HFILL }
- },
- { &hf_wow_realm_flags,
- { "Flags", "wow.realm_flags",
- FT_UINT8, BASE_DEC, VALS(realm_flags_vs), 0,
- NULL, HFILL }
- },
- { &hf_wow_realm_category,
- { "Category", "wow.realm_category",
- FT_UINT8, BASE_DEC, 0, 0,
- "Language category the realm should be shown in", HFILL }
- },
- { &hf_wow_realm_name,
- { "Name", "wow.realm_name",
- FT_STRINGZ, BASE_NONE, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_realm_socket,
- { "Server socket", "wow.realm_socket",
- FT_STRINGZ, BASE_NONE, 0, 0,
- "IP address and port to connect to on the server to reach this realm", HFILL }
- },
- { &hf_wow_realm_population_level,
- { "Population level", "wow.realm_population_level",
- FT_FLOAT, BASE_NONE, 0, 0,
- NULL, HFILL }
- },
- { &hf_wow_realm_num_characters,
- { "Number of characters", "wow.realm_num_characters",
- FT_UINT8, BASE_DEC, 0, 0,
- "Number of characters the user has in this realm", HFILL }
- },
- { &hf_wow_realm_id,
- { "Realm id", "wow.realm_id",
- FT_UINT8, BASE_DEC, 0, 0,
- "Used for initial sorting the in client menu", HFILL }
- }
+ { &hf_wow_command,
+ { "Command", "wow.cmd",
+ FT_UINT8, BASE_HEX, VALS(cmd_vs), 0,
+ "Type of packet", HFILL }
+ },
+ { &hf_wow_string_length,
+ { "String Length", "wow.string.length",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ "Length of following string", HFILL }
+ },
+ /* AUTOGENERATED_START_REGISTER */
+ { &hf_wow_account_flag,
+ { "Account Flag", "wow.account.flag",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_account_name,
+ { "Account Name", "wow.account.name",
+ FT_STRINGZ, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_address,
+ { "Address", "wow.address",
+ FT_STRINGZ, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_authenticator,
+ { "Authenticator", "wow.authenticator",
+ FT_STRINGZ, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_build,
+ { "Build", "wow.build",
+ FT_UINT16, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_cd_key_proof,
+ { "Cd Key Proof", "wow.cd.key.proof",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_challenge_count,
+ { "Challenge Count", "wow.challenge.count",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_challenge_data,
+ { "Challenge Data", "wow.challenge.data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_checksum_salt,
+ { "Checksum Salt", "wow.checksum.salt",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_client_checksum,
+ { "Client Checksum", "wow.client.checksum",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_client_ip_address,
+ { "Client Ip Address", "wow.client.ip.address",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_client_proof,
+ { "Client Proof", "wow.client.proof",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_client_public_key,
+ { "Client Public Key", "wow.client.public.key",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_compressed_data_length,
+ { "Compressed Data Length", "wow.compressed.data.length",
+ FT_UINT16, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_crc_hash,
+ { "Crc Hash", "wow.crc.hash",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_crc_salt,
+ { "Crc Salt", "wow.crc.salt",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_data,
+ { "Data", "wow.data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_decompressed_size,
+ { "Decompressed Size", "wow.decompressed.size",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_digit_count,
+ { "Digit Count", "wow.digit.count",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_error,
+ { "Error", "wow.error",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_file_md,
+ { "File Md", "wow.file.md",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_file_size,
+ { "File Size", "wow.file.size",
+ FT_UINT64, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_filename,
+ { "Filename", "wow.filename",
+ FT_STRINGZ, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_footer_padding,
+ { "Footer Padding", "wow.footer.padding",
+ FT_UINT16, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_game_name,
+ { "Game Name", "wow.game.name",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_generator,
+ { "Generator", "wow.generator",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_generator_length,
+ { "Generator Length", "wow.generator.length",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_hardware_survey_id,
+ { "Hardware Survey Id", "wow.hardware.survey.id",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_header_padding,
+ { "Header Padding", "wow.header.padding",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_height,
+ { "Height", "wow.height",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_key_count,
+ { "Key Count", "wow.key.count",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_large_safe_prime,
+ { "Large Safe Prime", "wow.large.safe.prime",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_large_safe_prime_length,
+ { "Large Safe Prime Length", "wow.large.safe.prime.length",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_locale,
+ { "Locale", "wow.locale",
+ FT_UINT32, BASE_HEX_DEC, VALS(e_locale_strings), 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_locked,
+ { "Locked", "wow.locked",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_login_result,
+ { "Login Result", "wow.login.result",
+ FT_UINT8, BASE_HEX_DEC, VALS(e_login_result_strings), 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_major,
+ { "Major", "wow.major",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_matrix_card_proof,
+ { "Matrix Card Proof", "wow.matrix.card.proof",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_minor,
+ { "Minor", "wow.minor",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_name,
+ { "Name", "wow.name",
+ FT_STRINGZ, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_number_of_characters_on_realm,
+ { "Number Of Characters On Realm", "wow.number.of.characters.on.realm",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_number_of_realms,
+ { "Number Of Realms", "wow.number.of.realms",
+ FT_UINT16, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_number_of_telemetry_keys,
+ { "Number Of Telemetry Keys", "wow.number.of.telemetry.keys",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_offset,
+ { "Offset", "wow.offset",
+ FT_UINT64, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_os,
+ { "Os", "wow.os",
+ FT_UINT32, BASE_HEX_DEC, VALS(e_os_strings), 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_padding,
+ { "Padding", "wow.padding",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_patch,
+ { "Patch", "wow.patch",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_pin_grid_seed,
+ { "Pin Grid Seed", "wow.pin.grid.seed",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_pin_hash,
+ { "Pin Hash", "wow.pin.hash",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_pin_salt,
+ { "Pin Salt", "wow.pin.salt",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_platform,
+ { "Platform", "wow.platform",
+ FT_UINT32, BASE_HEX_DEC, VALS(e_platform_strings), 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_population,
+ { "Population", "wow.population",
+ FT_FLOAT, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_proof_data,
+ { "Proof Data", "wow.proof.data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_protocol_version,
+ { "Protocol Version", "wow.protocol.version",
+ FT_UINT8, BASE_HEX_DEC, VALS(e_protocol_version_strings), 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_protocol_version_int,
+ { "Protocol Version Int", "wow.protocol.version.int",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_realm_category,
+ { "Realm Category", "wow.realm.category",
+ FT_UINT8, BASE_HEX_DEC, VALS(e_realm_category_strings), 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_realm_flag,
+ { "Realm Flag", "wow.realm.flag",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_realm_id,
+ { "Realm Id", "wow.realm.id",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_realm_type,
+ { "Realm Type", "wow.realm.type",
+ FT_UINT8, BASE_HEX_DEC, VALS(e_realm_type_strings), 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_required,
+ { "Required", "wow.required",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_salt,
+ { "Salt", "wow.salt",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_security_flag,
+ { "Security Flag", "wow.security.flag",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_seed,
+ { "Seed", "wow.seed",
+ FT_UINT64, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_server_proof,
+ { "Server Proof", "wow.server.proof",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_server_public_key,
+ { "Server Public Key", "wow.server.public.key",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_size,
+ { "Size", "wow.size",
+ FT_UINT16, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_survey_id,
+ { "Survey Id", "wow.survey.id",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_unknown_bytes,
+ { "Unknown Bytes", "wow.unknown.bytes",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_unknown_int,
+ { "Unknown Int", "wow.unknown.int",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_utc_timezone_offset,
+ { "Utc Timezone Offset", "wow.utc.timezone.offset",
+ FT_UINT32, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+ { &hf_wow_width,
+ { "Width", "wow.width",
+ FT_UINT8, BASE_HEX_DEC, NULL, 0,
+ NULL, HFILL
+ }
+ },
+/* AUTOGENERATED_END_REGISTER */
};
static gint *ett[] = {
&ett_wow,
- &ett_wow_realms
+ &ett_message,
};
proto_wow = proto_register_protocol("World of Warcraft",
diff --git a/epan/dissectors/packet-woww.c b/epan/dissectors/packet-woww.c
index f8ff8d19aa..581d4ff623 100644
--- a/epan/dissectors/packet-woww.c
+++ b/epan/dissectors/packet-woww.c
@@ -243,7 +243,6 @@ static int hf_woww_charter_entry;
static int hf_woww_charter_owner;
static int hf_woww_chat_credit;
static int hf_woww_chat_data_line_count;
-static int hf_woww_chat_data_size_uncompressed;
static int hf_woww_chat_notify;
static int hf_woww_chat_type;
static int hf_woww_checked_timestamp;
@@ -299,7 +298,6 @@ static int hf_woww_days_since_ticket_creation;
static int hf_woww_deadline;
static int hf_woww_deaths;
static int hf_woww_debug_log_format;
-static int hf_woww_decompressed_addon_info_size;
static int hf_woww_decompressed_size;
static int hf_woww_delay;
static int hf_woww_delay_time;
@@ -2631,7 +2629,7 @@ static const value_string e_area_strings[] = {
{ AREA_LIGHTHOUSE, "Lighthouse" },
{ AREA_WESTERN_PLAGUELANDS, "Western Plaguelands" },
{ AREA_NINE, "Nine" },
- { AREA_THE_CEMETARY, "The Cemetery" },
+ { AREA_THE_CEMETARY, "The Cemetary" },
{ AREA_STRANGLETHORN_VALE, "Stranglethorn Vale" },
{ AREA_ECHO_RIDGE_MINE, "Echo Ridge Mine" },
{ AREA_BOOTY_BAY, "Booty Bay" },
@@ -4144,7 +4142,7 @@ static const value_string e_faction_strings[] = {
{ FACTION_TROGG, "Trogg" },
{ FACTION_TROLL_FROSTMANE, "Troll Frostmane" },
{ FACTION_ORC_BLACKROCK, "Orc Blackrock" },
- { FACTION_VILLIAN, "Villain" },
+ { FACTION_VILLIAN, "Villian" },
{ FACTION_VICTIM, "Victim" },
{ FACTION_BEAST_BEAR, "Beast Bear" },
{ FACTION_OGRE, "Ogre" },
@@ -4879,7 +4877,7 @@ typedef enum {
SKILL_RIDING_WOLF = 0x095,
SKILL_RIDING_TIGER = 0x096,
SKILL_RIDING_RAM = 0x098,
- SKILL_SWIMING = 0x09B,
+ SKILL_SWIMMING = 0x09B,
SKILL_TWO_HANDED_MACES = 0x0A0,
SKILL_UNARMED = 0x0A2,
SKILL_MARKSMANSHIP = 0x0A3,
@@ -5005,7 +5003,7 @@ static const value_string e_skill_strings[] = {
{ SKILL_RIDING_WOLF, "Riding Wolf" },
{ SKILL_RIDING_TIGER, "Riding Tiger" },
{ SKILL_RIDING_RAM, "Riding Ram" },
- { SKILL_SWIMING, "Swimming" },
+ { SKILL_SWIMMING, "Swimming" },
{ SKILL_TWO_HANDED_MACES, "Two Handed Maces" },
{ SKILL_UNARMED, "Unarmed" },
{ SKILL_MARKSMANSHIP, "Marksmanship" },
@@ -7603,7 +7601,7 @@ typedef enum {
BATTLEGROUND_BRACKET_TENS = 0x0,
BATTLEGROUND_BRACKET_TWENTIES = 0x1,
BATTLEGROUND_BRACKET_THIRTIES = 0x2,
- BATTLEGROUND_BRACKET_FOURTIES = 0x3,
+ BATTLEGROUND_BRACKET_FORTIES = 0x3,
BATTLEGROUND_BRACKET_FIFTIES = 0x4,
BATTLEGROUND_BRACKET_SIXTY = 0x5,
} e_battleground_bracket;
@@ -7611,7 +7609,7 @@ static const value_string e_battleground_bracket_strings[] = {
{ BATTLEGROUND_BRACKET_TENS, "Tens" },
{ BATTLEGROUND_BRACKET_TWENTIES, "Twenties" },
{ BATTLEGROUND_BRACKET_THIRTIES, "Thirties" },
- { BATTLEGROUND_BRACKET_FOURTIES, "Forties" },
+ { BATTLEGROUND_BRACKET_FORTIES, "Forties" },
{ BATTLEGROUND_BRACKET_FIFTIES, "Fifties" },
{ BATTLEGROUND_BRACKET_SIXTY, "Sixty" },
{ 0, NULL }
@@ -12488,7 +12486,7 @@ add_body_fields(guint32 header_opcode,
add_cstring(ptv, &hf_woww_username);
ptvcursor_add(ptv, hf_woww_client_seed, 4, ENC_LITTLE_ENDIAN);
ptvcursor_add(ptv, hf_woww_client_proof, 20, ENC_NA);
- ptvcursor_add(ptv, hf_woww_decompressed_addon_info_size, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_decompressed_size, 4, ENC_LITTLE_ENDIAN);
compressed_tvb = tvb_uncompress(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv), offset_packet_end - ptvcursor_current_offset(ptv));
if (compressed_tvb != NULL) {
ptvcursor_t* old_ptv = ptv;
@@ -13098,7 +13096,7 @@ add_body_fields(guint32 header_opcode,
add_cstring(ptv, &hf_woww_reserved_for_future_use);
if (category == GM_TICKET_TYPE_BEHAVIOR_HARASSMENT) {
ptvcursor_add(ptv, hf_woww_chat_data_line_count, 4, ENC_LITTLE_ENDIAN);
- ptvcursor_add(ptv, hf_woww_chat_data_size_uncompressed, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_decompressed_size, 4, ENC_LITTLE_ENDIAN);
compressed_tvb = tvb_uncompress(ptvcursor_tvbuff(ptv), ptvcursor_current_offset(ptv), offset_packet_end - ptvcursor_current_offset(ptv));
if (compressed_tvb != NULL) {
ptvcursor_t* old_ptv = ptv;
@@ -18306,7 +18304,7 @@ add_body_fields(guint32 header_opcode,
for (guint32 i1 = 0; i1 < amount_of_targets; ++i1) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellLogMiss %i", i1);
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
- ptvcursor_add(ptv, hf_woww_spell_miss_info, 4, ENC_LITTLE_ENDIAN);
+ ptvcursor_add(ptv, hf_woww_spell_miss_info, 1, ENC_LITTLE_ENDIAN);
ptvcursor_pop_subtree(ptv);
}
break;
@@ -18365,7 +18363,7 @@ add_body_fields(guint32 header_opcode,
for (guint32 i1 = 0; i1 < amount_of_misses; ++i1) {
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellMiss %i", i1);
ptvcursor_add(ptv, hf_woww_target, 8, ENC_LITTLE_ENDIAN);
- ptvcursor_add_ret_uint(ptv, hf_woww_spell_miss_info, 4, ENC_LITTLE_ENDIAN, &miss_info);
+ ptvcursor_add_ret_uint(ptv, hf_woww_spell_miss_info, 1, ENC_LITTLE_ENDIAN, &miss_info);
ptvcursor_pop_subtree(ptv);
}
ptvcursor_add_text_with_subtree(ptv, SUBTREE_UNDEFINED_LENGTH, ett_message, "SpellCastTargets");
@@ -20086,12 +20084,6 @@ proto_register_woww(void)
NULL, HFILL
}
},
- { &hf_woww_chat_data_size_uncompressed,
- { "Chat Data Size Uncompressed", "woww.chat.data.size.uncompressed",
- FT_UINT32, BASE_HEX_DEC, NULL, 0,
- NULL, HFILL
- }
- },
{ &hf_woww_chat_notify,
{ "Chat Notify", "woww.chat.notify",
FT_UINT8, BASE_HEX_DEC, VALS(e_chat_notify_strings), 0,
@@ -20422,12 +20414,6 @@ proto_register_woww(void)
NULL, HFILL
}
},
- { &hf_woww_decompressed_addon_info_size,
- { "Decompressed Addon Info Size", "woww.decompressed.addon.info.size",
- FT_UINT32, BASE_HEX_DEC, NULL, 0,
- NULL, HFILL
- }
- },
{ &hf_woww_decompressed_size,
{ "Decompressed Size", "woww.decompressed.size",
FT_UINT32, BASE_HEX_DEC, NULL, 0,
@@ -23112,7 +23098,7 @@ proto_register_woww(void)
},
{ &hf_woww_spell_miss_info,
{ "Spell Miss Info", "woww.spell.miss.info",
- FT_UINT32, BASE_HEX_DEC, VALS(e_spell_miss_info_strings), 0,
+ FT_UINT8, BASE_HEX_DEC, VALS(e_spell_miss_info_strings), 0,
NULL, HFILL
}
},
diff --git a/epan/dissectors/packet-x11.c b/epan/dissectors/packet-x11.c
index 501f30cc27..5943f0e57b 100644
--- a/epan/dissectors/packet-x11.c
+++ b/epan/dissectors/packet-x11.c
@@ -52,7 +52,7 @@
void proto_register_x11(void);
void proto_reg_handoff_x11(void);
-static dissector_handle_t x11_handle = NULL;
+static dissector_handle_t x11_handle;
#define cVALS(x) (const value_string*)(x)
@@ -198,7 +198,7 @@ static expert_field ei_x11_request_length;
static expert_field ei_x11_keycode_value_out_of_range;
/* desegmentation of X11 messages */
-static gboolean x11_desegment = TRUE;
+static bool x11_desegment = true;
#define DEFAULT_X11_PORT_RANGE "6000-6063"
diff --git a/epan/dissectors/packet-x25.c b/epan/dissectors/packet-x25.c
index 0c75dea803..5c78ad15bf 100644
--- a/epan/dissectors/packet-x25.c
+++ b/epan/dissectors/packet-x25.c
@@ -515,10 +515,10 @@ static dissector_handle_t ositp_handle;
static dissector_handle_t qllc_handle;
/* Preferences */
-static gboolean payload_is_qllc_sna = FALSE;
-static gboolean call_request_nodata_is_cotp = FALSE;
-static gboolean payload_check_data = FALSE;
-static gboolean reassemble_x25 = TRUE;
+static bool payload_is_qllc_sna;
+static bool call_request_nodata_is_cotp;
+static bool payload_check_data;
+static bool reassemble_x25 = true;
/* Reassembly of X.25 */
@@ -1117,7 +1117,7 @@ get_x25_pkt_len(tvbuff_t *tvb)
* is not mandatory, so we must check the packet length before trying
* to read it */
if (tvb_reported_length(tvb) == 3)
- return(3);
+ return 3;
bytex = tvb_get_guint8(tvb, 3);
called_len = (bytex >> 0) & 0x0F;
calling_len = (bytex >> 4) & 0x0F;
diff --git a/epan/dissectors/packet-x2ap.c b/epan/dissectors/packet-x2ap.c
index 9bbbd1aea7..a2300400df 100644
--- a/epan/dissectors/packet-x2ap.c
+++ b/epan/dissectors/packet-x2ap.c
@@ -8,7 +8,7 @@
* X2 Application Protocol (X2AP);
* 3GPP TS 36.423 packet dissection
* Copyright 2007-2014, Anders Broman <anders.broman@ericsson.com>
- * Copyright 2016-2023, Pascal Quantin <pascal@wireshark.org>
+ * Copyright 2016-2024, Pascal Quantin <pascal@wireshark.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -17,7 +17,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 36.423 V17.6.0 (2023-09)
+ * 3GPP TS 36.423 V17.7.0 (2024-03)
*/
#include "config.h"
@@ -631,7 +631,15 @@ typedef enum _ProtocolIE_ID_enum {
id_SCGreconfigNotification = 438,
id_MIMOPRBusageInformation = 439,
id_SensorMeasurementConfiguration = 440,
- id_AdditionalListofForwardingGTPTunnelEndpoint = 441
+ id_AdditionalListofForwardingGTPTunnelEndpoint = 441,
+ id_Unknown_442 = 442,
+ id_Unknown_443 = 443,
+ id_Unknown_444 = 444,
+ id_Unknown_445 = 445,
+ id_Unknown_446 = 446,
+ id_Unknown_447 = 447,
+ id_Unknown_448 = 448,
+ id_IABAuthorized = 449
} ProtocolIE_ID_enum;
/* Initialize the protocol and registered fields */
@@ -712,7 +720,10 @@ static int hf_x2ap_rAT_RestrictionInformation_LEO;
static int hf_x2ap_rAT_RestrictionInformation_MEO;
static int hf_x2ap_rAT_RestrictionInformation_GEO;
static int hf_x2ap_rAT_RestrictionInformation_OTHERSAT;
-static int hf_x2ap_rAT_RestrictionInformation_Reserved;
+static int hf_x2ap_rAT_RestrictionInformation_NR_LEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_MEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_GEO;
+static int hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT;
static int hf_x2ap_ABSInformation_PDU; /* ABSInformation */
static int hf_x2ap_ABS_Status_PDU; /* ABS_Status */
static int hf_x2ap_ActivationID_PDU; /* ActivationID */
@@ -800,6 +811,7 @@ static int hf_x2ap_GUMMEI_PDU; /* GUMMEI */
static int hf_x2ap_HandoverReportType_PDU; /* HandoverReportType */
static int hf_x2ap_HandoverRestrictionList_PDU; /* HandoverRestrictionList */
static int hf_x2ap_IABNodeIndication_PDU; /* IABNodeIndication */
+static int hf_x2ap_IABAuthorized_PDU; /* IABAuthorized */
static int hf_x2ap_IMSvoiceEPSfallbackfrom5G_PDU; /* IMSvoiceEPSfallbackfrom5G */
static int hf_x2ap_IntendedTDD_DL_ULConfiguration_NR_PDU; /* IntendedTDD_DL_ULConfiguration_NR */
static int hf_x2ap_InterfaceInstanceIndication_PDU; /* InterfaceInstanceIndication */
@@ -2050,639 +2062,639 @@ static int ett_x2ap_UERadioCapability;
static int ett_x2ap_LastVisitedPSCell_Item;
static int ett_x2ap_NRRACHReportContainer;
static int ett_x2ap_rAT_RestrictionInformation;
-static gint ett_x2ap_PrivateIE_ID;
-static gint ett_x2ap_ProtocolIE_Container;
-static gint ett_x2ap_ProtocolIE_Field;
-static gint ett_x2ap_ProtocolExtensionContainer;
-static gint ett_x2ap_ProtocolExtensionField;
-static gint ett_x2ap_PrivateIE_Container;
-static gint ett_x2ap_PrivateIE_Field;
-static gint ett_x2ap_ABSInformation;
-static gint ett_x2ap_ABSInformationFDD;
-static gint ett_x2ap_ABSInformationTDD;
-static gint ett_x2ap_ABS_Status;
-static gint ett_x2ap_Additional_Measurement_Timing_Configuration_List;
-static gint ett_x2ap_Additional_Measurement_Timing_Configuration_Item;
-static gint ett_x2ap_CSI_RS_MTC_Configuration_List;
-static gint ett_x2ap_CSI_RS_MTC_Configuration_Item;
-static gint ett_x2ap_CSI_RS_Neighbour_List;
-static gint ett_x2ap_CSI_RS_Neighbour_Item;
-static gint ett_x2ap_CSI_RS_MTC_Neighbour_List;
-static gint ett_x2ap_CSI_RS_MTC_Neighbour_Item;
-static gint ett_x2ap_AdditionalListofForwardingGTPTunnelEndpoint;
-static gint ett_x2ap_AdditionalListofForwardingGTPTunnelEndpoint_Item;
-static gint ett_x2ap_AdditionalSpecialSubframe_Info;
-static gint ett_x2ap_AdditionalSpecialSubframeExtension_Info;
-static gint ett_x2ap_AllocationAndRetentionPriority;
-static gint ett_x2ap_AreaScopeOfMDT;
-static gint ett_x2ap_AreaScopeOfQMC;
-static gint ett_x2ap_AS_SecurityInformation;
-static gint ett_x2ap_AdditionalPLMNs_Item;
-static gint ett_x2ap_BroadcastPLMNs_Item;
-static gint ett_x2ap_BluetoothMeasurementConfiguration;
-static gint ett_x2ap_BluetoothMeasConfigNameList;
-static gint ett_x2ap_BPLMN_ID_Info_EUTRA;
-static gint ett_x2ap_BPLMN_ID_Info_EUTRA_Item;
-static gint ett_x2ap_BPLMN_ID_Info_NR;
-static gint ett_x2ap_BPLMN_ID_Info_NR_Item;
-static gint ett_x2ap_BroadcastextPLMNs;
-static gint ett_x2ap_Cause;
-static gint ett_x2ap_CellBasedMDT;
-static gint ett_x2ap_CellBasedQMC;
-static gint ett_x2ap_CellIdListforMDT;
-static gint ett_x2ap_CellIdListforQMC;
-static gint ett_x2ap_CellReplacingInfo;
-static gint ett_x2ap_CellType;
-static gint ett_x2ap_CPACcandidatePSCells_list;
-static gint ett_x2ap_CPACcandidatePSCells_item;
-static gint ett_x2ap_CPAinformation_REQ;
-static gint ett_x2ap_CPAinformation_REQ_ACK;
-static gint ett_x2ap_CPCinformation_REQD;
-static gint ett_x2ap_CPC_target_SgNB_reqd_list;
-static gint ett_x2ap_CPC_target_SgNB_reqd_item;
-static gint ett_x2ap_CPCinformation_CONF;
-static gint ett_x2ap_CPC_target_SgNB_conf_list;
-static gint ett_x2ap_CPC_target_SgNB_conf_item;
-static gint ett_x2ap_CPCinformation_NOTIFY;
-static gint ett_x2ap_CPAinformation_MOD;
-static gint ett_x2ap_CPCupdate_MOD;
-static gint ett_x2ap_CPC_target_SgNB_mod_list;
-static gint ett_x2ap_CPC_target_SgNB_mod_item;
-static gint ett_x2ap_CPAinformation_MOD_ACK;
-static gint ett_x2ap_CPACinformation_REQD;
-static gint ett_x2ap_CNTypeRestrictions;
-static gint ett_x2ap_CNTypeRestrictionsItem;
-static gint ett_x2ap_CoMPHypothesisSet;
-static gint ett_x2ap_CoMPHypothesisSetItem;
-static gint ett_x2ap_CoMPInformation;
-static gint ett_x2ap_CoMPInformationItem;
-static gint ett_x2ap_CoMPInformationItem_item;
-static gint ett_x2ap_CoMPInformationStartTime;
-static gint ett_x2ap_CoMPInformationStartTime_item;
-static gint ett_x2ap_CompositeAvailableCapacity;
-static gint ett_x2ap_CompositeAvailableCapacityGroup;
-static gint ett_x2ap_COUNTvalue;
-static gint ett_x2ap_COUNTValueExtended;
-static gint ett_x2ap_COUNTvaluePDCP_SNlength18;
-static gint ett_x2ap_CoverageModificationList;
-static gint ett_x2ap_CoverageModification_Item;
-static gint ett_x2ap_CPTransportLayerInformation;
-static gint ett_x2ap_CriticalityDiagnostics;
-static gint ett_x2ap_CriticalityDiagnostics_IE_List;
-static gint ett_x2ap_CriticalityDiagnostics_IE_List_item;
-static gint ett_x2ap_CSIReportList;
-static gint ett_x2ap_CSIReportList_item;
-static gint ett_x2ap_CSIReportPerCSIProcess;
-static gint ett_x2ap_CSIReportPerCSIProcess_item;
-static gint ett_x2ap_CSIReportPerCSIProcessItem;
-static gint ett_x2ap_CSIReportPerCSIProcessItem_item;
-static gint ett_x2ap_CHOinformation_REQ;
-static gint ett_x2ap_CHOinformation_ACK;
-static gint ett_x2ap_CandidateCellsToBeCancelledList;
-static gint ett_x2ap_CHOinformation_AddReq;
-static gint ett_x2ap_CHOinformation_ModReq;
-static gint ett_x2ap_DataTrafficResourceIndication;
-static gint ett_x2ap_DAPSRequestInfo;
-static gint ett_x2ap_DAPSResponseInfo;
-static gint ett_x2ap_DeliveryStatus;
-static gint ett_x2ap_DLResourcesULandDLSharing;
-static gint ett_x2ap_DynamicDLTransmissionInformation;
-static gint ett_x2ap_DynamicNAICSInformation;
-static gint ett_x2ap_SEQUENCE_SIZE_0_maxnoofPA_OF_PA_Values;
-static gint ett_x2ap_ECGI;
-static gint ett_x2ap_EnhancedRNTP;
-static gint ett_x2ap_EnhancedRNTPStartTime;
-static gint ett_x2ap_ENB_ID;
-static gint ett_x2ap_EN_DC_ResourceConfiguration;
-static gint ett_x2ap_EPLMNs;
-static gint ett_x2ap_ERABActivityNotifyItemList;
-static gint ett_x2ap_ERABActivityNotifyItem;
-static gint ett_x2ap_E_RAB_Level_QoS_Parameters;
-static gint ett_x2ap_E_RAB_List;
-static gint ett_x2ap_E_RAB_Item;
-static gint ett_x2ap_E_RABsSubjectToEarlyStatusTransfer_List;
-static gint ett_x2ap_E_RABsSubjectToEarlyStatusTransfer_Item;
-static gint ett_x2ap_E_RABsSubjectToDLDiscarding_List;
-static gint ett_x2ap_E_RABsSubjectToDLDiscarding_Item;
-static gint ett_x2ap_E_RABUsageReportList;
-static gint ett_x2ap_E_RABUsageReport_Item;
-static gint ett_x2ap_EUTRA_Mode_Info;
-static gint ett_x2ap_ExpectedUEBehaviour;
-static gint ett_x2ap_ExpectedUEActivityBehaviour;
-static gint ett_x2ap_ExtendedULInterferenceOverloadInfo;
-static gint ett_x2ap_FastMCGRecovery;
-static gint ett_x2ap_FDD_Info;
-static gint ett_x2ap_FDD_InfoNeighbourServedNRCell_Information;
-static gint ett_x2ap_ForbiddenTAs;
-static gint ett_x2ap_ForbiddenTAs_Item;
-static gint ett_x2ap_ForbiddenTACs;
-static gint ett_x2ap_ForbiddenLAs;
-static gint ett_x2ap_ForbiddenLAs_Item;
-static gint ett_x2ap_ForbiddenLACs;
-static gint ett_x2ap_FreqBandNrItem;
-static gint ett_x2ap_SEQUENCE_SIZE_0_maxnoofNrCellBands_OF_SupportedSULFreqBandItem;
-static gint ett_x2ap_GBR_QosInformation;
-static gint ett_x2ap_GlobalENB_ID;
-static gint ett_x2ap_GlobalGNB_ID;
-static gint ett_x2ap_Global_RAN_NODE_ID;
-static gint ett_x2ap_GTPTLAs;
-static gint ett_x2ap_GTPTLA_Item;
-static gint ett_x2ap_GTPtunnelEndpoint;
-static gint ett_x2ap_GUGroupIDList;
-static gint ett_x2ap_GU_Group_ID;
-static gint ett_x2ap_GUMMEI;
-static gint ett_x2ap_GNB_ID;
-static gint ett_x2ap_HandoverRestrictionList;
-static gint ett_x2ap_HWLoadIndicator;
-static gint ett_x2ap_LastVisitedCell_Item;
-static gint ett_x2ap_LastVisitedEUTRANCellInformation;
-static gint ett_x2ap_LastVisitedGERANCellInformation;
-static gint ett_x2ap_LocationInformationSgNB;
-static gint ett_x2ap_LocationReportingInformation;
-static gint ett_x2ap_M1PeriodicReporting;
-static gint ett_x2ap_M1ThresholdEventA2;
-static gint ett_x2ap_M3Configuration;
-static gint ett_x2ap_M4Configuration;
-static gint ett_x2ap_M5Configuration;
-static gint ett_x2ap_M6Configuration;
-static gint ett_x2ap_M7Configuration;
-static gint ett_x2ap_MDT_Configuration;
-static gint ett_x2ap_MDTPLMNList;
-static gint ett_x2ap_MeasurementThresholdA2;
-static gint ett_x2ap_MeNBResourceCoordinationInformation;
-static gint ett_x2ap_MBMS_Service_Area_Identity_List;
-static gint ett_x2ap_MBSFN_Subframe_Infolist;
-static gint ett_x2ap_MBSFN_Subframe_Info;
-static gint ett_x2ap_MobilityParametersModificationRange;
-static gint ett_x2ap_MobilityParametersInformation;
-static gint ett_x2ap_MultibandInfoList;
-static gint ett_x2ap_MessageOversizeNotification;
-static gint ett_x2ap_BandInfo;
-static gint ett_x2ap_SplitSRB;
-static gint ett_x2ap_Neighbour_Information;
-static gint ett_x2ap_Neighbour_Information_item;
-static gint ett_x2ap_NRCapacityValue;
-static gint ett_x2ap_NRCarrierList;
-static gint ett_x2ap_NRCarrierItem;
-static gint ett_x2ap_NRCompositeAvailableCapacityGroup;
-static gint ett_x2ap_NRCompositeAvailableCapacity;
-static gint ett_x2ap_NRFreqInfo;
-static gint ett_x2ap_SEQUENCE_SIZE_1_maxnoofNrCellBands_OF_FreqBandNrItem;
-static gint ett_x2ap_NRCGI;
-static gint ett_x2ap_NRRACHReportInformation;
-static gint ett_x2ap_NRRACHReportList_Item;
-static gint ett_x2ap_NRNeighbour_Information;
-static gint ett_x2ap_NRNeighbour_Information_item;
-static gint ett_x2ap_T_nRNeighbourModeInfo;
-static gint ett_x2ap_NPRACHConfiguration;
-static gint ett_x2ap_T_fdd_or_tdd;
-static gint ett_x2ap_NPRACHConfiguration_FDD;
-static gint ett_x2ap_NPRACHConfiguration_TDD;
-static gint ett_x2ap_Non_AnchorCarrierFrequencylist;
-static gint ett_x2ap_Non_AnchorCarrierFrequencylist_item;
-static gint ett_x2ap_MeasurementResultforNRCellsPossiblyAggregated;
-static gint ett_x2ap_MeasurementResultforNRCellsPossiblyAggregated_Item;
-static gint ett_x2ap_NRRadioResourceStatus;
-static gint ett_x2ap_MIMOPRBusageInformation;
-static gint ett_x2ap_NR_TxBW;
-static gint ett_x2ap_NRUeReport;
-static gint ett_x2ap_NRUESidelinkAggregateMaximumBitRate;
-static gint ett_x2ap_NRUESecurityCapabilities;
-static gint ett_x2ap_NRV2XServicesAuthorized;
-static gint ett_x2ap_PC5QoSParameters;
-static gint ett_x2ap_PC5QoSFlowList;
-static gint ett_x2ap_PC5QoSFlowItem;
-static gint ett_x2ap_PC5FlowBitRates;
-static gint ett_x2ap_PRACH_Configuration;
-static gint ett_x2ap_PLMNAreaBasedQMC;
-static gint ett_x2ap_PLMNListforQMC;
-static gint ett_x2ap_ProSeAuthorized;
-static gint ett_x2ap_ProtectedEUTRAResourceIndication;
-static gint ett_x2ap_ProtectedFootprintTimePattern;
-static gint ett_x2ap_ProtectedResourceList;
-static gint ett_x2ap_ProtectedResourceList_Item;
-static gint ett_x2ap_PSCell_UE_HistoryInformation;
-static gint ett_x2ap_QoS_Mapping_Information;
-static gint ett_x2ap_RadioResourceStatus;
-static gint ett_x2ap_RAT_Restrictions;
-static gint ett_x2ap_RAT_RestrictionsItem;
-static gint ett_x2ap_RelativeNarrowbandTxPower;
-static gint ett_x2ap_ReplacingCellsList;
-static gint ett_x2ap_ReplacingCellsList_Item;
-static gint ett_x2ap_ReservedSubframePattern;
-static gint ett_x2ap_ResumeID;
-static gint ett_x2ap_RLC_Status;
-static gint ett_x2ap_RSRPMeasurementResult;
-static gint ett_x2ap_RSRPMeasurementResult_item;
-static gint ett_x2ap_RSRPMRList;
-static gint ett_x2ap_RSRPMRList_item;
-static gint ett_x2ap_S1TNLLoadIndicator;
-static gint ett_x2ap_SCG_UE_HistoryInformation;
-static gint ett_x2ap_SecondaryRATUsageReportList;
-static gint ett_x2ap_SecondaryRATUsageReport_Item;
-static gint ett_x2ap_SecurityIndication;
-static gint ett_x2ap_SecurityResult;
-static gint ett_x2ap_SensorMeasurementConfiguration;
-static gint ett_x2ap_SensorMeasConfigNameList;
-static gint ett_x2ap_SensorMeasConfigNameItem;
-static gint ett_x2ap_SensorNameConfig;
-static gint ett_x2ap_ServedCells;
-static gint ett_x2ap_ServedCells_item;
-static gint ett_x2ap_ServedCell_Information;
-static gint ett_x2ap_ServedCellSpecificInfoReq_NR;
-static gint ett_x2ap_ServedCellSpecificInfoReq_NR_Item;
-static gint ett_x2ap_SgNBResourceCoordinationInformation;
-static gint ett_x2ap_SharedResourceType;
-static gint ett_x2ap_SpecialSubframe_Info;
-static gint ett_x2ap_SubbandCQI;
-static gint ett_x2ap_Subscription_Based_UE_DifferentiationInfo;
-static gint ett_x2ap_ScheduledCommunicationTime;
-static gint ett_x2ap_SSBAreaCapacityValue_List;
-static gint ett_x2ap_SSBAreaCapacityValue_Item;
-static gint ett_x2ap_SSBAreaRadioResourceStatus_List;
-static gint ett_x2ap_SSBAreaRadioResourceStatus_Item;
-static gint ett_x2ap_SSB_PositionsInBurst;
-static gint ett_x2ap_SubbandCQICodeword0;
-static gint ett_x2ap_SubbandCQICodeword1;
-static gint ett_x2ap_SubbandCQIList;
-static gint ett_x2ap_SubbandCQIItem;
-static gint ett_x2ap_SubframeAllocation;
-static gint ett_x2ap_SULInformation;
-static gint ett_x2ap_SupportedSULFreqBandItem;
-static gint ett_x2ap_SFN_Offset;
-static gint ett_x2ap_TABasedMDT;
-static gint ett_x2ap_TAIBasedMDT;
-static gint ett_x2ap_TAIListforMDT;
-static gint ett_x2ap_TAI_Item;
-static gint ett_x2ap_TAListforMDT;
-static gint ett_x2ap_TABasedQMC;
-static gint ett_x2ap_TAListforQMC;
-static gint ett_x2ap_TAIBasedQMC;
-static gint ett_x2ap_TAIListforQMC;
-static gint ett_x2ap_TDD_Info;
-static gint ett_x2ap_TDD_InfoNeighbourServedNRCell_Information;
-static gint ett_x2ap_TNLA_To_Add_List;
-static gint ett_x2ap_TNLA_To_Add_Item;
-static gint ett_x2ap_TNLA_To_Update_List;
-static gint ett_x2ap_TNLA_To_Update_Item;
-static gint ett_x2ap_TNLA_To_Remove_List;
-static gint ett_x2ap_TNLA_To_Remove_Item;
-static gint ett_x2ap_TNLA_Setup_List;
-static gint ett_x2ap_TNLA_Setup_Item;
-static gint ett_x2ap_TNLA_Failed_To_Setup_List;
-static gint ett_x2ap_TNLA_Failed_To_Setup_Item;
-static gint ett_x2ap_TNLCapacityIndicator;
-static gint ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Add_List;
-static gint ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Add_Item;
-static gint ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Remove_List;
-static gint ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Remove_Item;
-static gint ett_x2ap_TNLConfigurationInfo;
-static gint ett_x2ap_TraceActivation;
-static gint ett_x2ap_TransportLayerAddressAndPort;
-static gint ett_x2ap_TunnelInformation;
-static gint ett_x2ap_UEAggregateMaximumBitRate;
-static gint ett_x2ap_UEAppLayerMeasConfig;
-static gint ett_x2ap_UE_HistoryInformation;
-static gint ett_x2ap_UESecurityCapabilities;
-static gint ett_x2ap_UESidelinkAggregateMaximumBitRate;
-static gint ett_x2ap_UEsToBeResetList;
-static gint ett_x2ap_UEsToBeResetList_Item;
-static gint ett_x2ap_ULandDLSharing;
-static gint ett_x2ap_ULConfiguration;
-static gint ett_x2ap_UL_HighInterferenceIndicationInfo;
-static gint ett_x2ap_UL_HighInterferenceIndicationInfo_Item;
-static gint ett_x2ap_UL_InterferenceOverloadIndication;
-static gint ett_x2ap_ULOnlySharing;
-static gint ett_x2ap_ULResourcesULandDLSharing;
-static gint ett_x2ap_UsableABSInformation;
-static gint ett_x2ap_UsableABSInformationFDD;
-static gint ett_x2ap_UsableABSInformationTDD;
-static gint ett_x2ap_V2XServicesAuthorized;
-static gint ett_x2ap_WidebandCQI;
-static gint ett_x2ap_WidebandCQICodeword1;
-static gint ett_x2ap_WLANMeasurementConfiguration;
-static gint ett_x2ap_WLANMeasConfigNameList;
-static gint ett_x2ap_WTID;
-static gint ett_x2ap_WTID_Type1;
-static gint ett_x2ap_HandoverRequest;
-static gint ett_x2ap_UE_ContextInformation;
-static gint ett_x2ap_E_RABs_ToBeSetup_List;
-static gint ett_x2ap_E_RABs_ToBeSetup_Item;
-static gint ett_x2ap_UE_ContextReferenceAtSeNB;
-static gint ett_x2ap_UE_ContextReferenceAtWT;
-static gint ett_x2ap_UE_ContextReferenceAtSgNB;
-static gint ett_x2ap_HandoverRequestAcknowledge;
-static gint ett_x2ap_E_RABs_Admitted_List;
-static gint ett_x2ap_E_RABs_Admitted_Item;
-static gint ett_x2ap_HandoverPreparationFailure;
-static gint ett_x2ap_HandoverReport;
-static gint ett_x2ap_EarlyStatusTransfer;
-static gint ett_x2ap_ProcedureStageChoice;
-static gint ett_x2ap_FirstDLCount;
-static gint ett_x2ap_DLDiscarding;
-static gint ett_x2ap_SNStatusTransfer;
-static gint ett_x2ap_E_RABs_SubjectToStatusTransfer_List;
-static gint ett_x2ap_E_RABs_SubjectToStatusTransfer_Item;
-static gint ett_x2ap_UEContextRelease;
-static gint ett_x2ap_HandoverCancel;
-static gint ett_x2ap_HandoverSuccess;
-static gint ett_x2ap_ConditionalHandoverCancel;
-static gint ett_x2ap_ErrorIndication;
-static gint ett_x2ap_ResetRequest;
-static gint ett_x2ap_ResetResponse;
-static gint ett_x2ap_X2SetupRequest;
-static gint ett_x2ap_X2SetupResponse;
-static gint ett_x2ap_X2SetupFailure;
-static gint ett_x2ap_LoadInformation;
-static gint ett_x2ap_CellInformation_List;
-static gint ett_x2ap_CellInformation_Item;
-static gint ett_x2ap_ENBConfigurationUpdate;
-static gint ett_x2ap_ServedCellsToModify;
-static gint ett_x2ap_ServedCellsToModify_Item;
-static gint ett_x2ap_Old_ECGIs;
-static gint ett_x2ap_ENBConfigurationUpdateAcknowledge;
-static gint ett_x2ap_ENBConfigurationUpdateFailure;
-static gint ett_x2ap_ResourceStatusRequest;
-static gint ett_x2ap_CellToReport_List;
-static gint ett_x2ap_CellToReport_Item;
-static gint ett_x2ap_ResourceStatusResponse;
-static gint ett_x2ap_MeasurementInitiationResult_List;
-static gint ett_x2ap_MeasurementInitiationResult_Item;
-static gint ett_x2ap_MeasurementFailureCause_List;
-static gint ett_x2ap_MeasurementFailureCause_Item;
-static gint ett_x2ap_ResourceStatusFailure;
-static gint ett_x2ap_CompleteFailureCauseInformation_List;
-static gint ett_x2ap_CompleteFailureCauseInformation_Item;
-static gint ett_x2ap_ResourceStatusUpdate;
-static gint ett_x2ap_CellMeasurementResult_List;
-static gint ett_x2ap_CellMeasurementResult_Item;
-static gint ett_x2ap_PrivateMessage;
-static gint ett_x2ap_MobilityChangeRequest;
-static gint ett_x2ap_MobilityChangeAcknowledge;
-static gint ett_x2ap_MobilityChangeFailure;
-static gint ett_x2ap_RLFIndication;
-static gint ett_x2ap_CellActivationRequest;
-static gint ett_x2ap_ServedCellsToActivate;
-static gint ett_x2ap_ServedCellsToActivate_Item;
-static gint ett_x2ap_CellActivationResponse;
-static gint ett_x2ap_ActivatedCellList;
-static gint ett_x2ap_ActivatedCellList_Item;
-static gint ett_x2ap_CellActivationFailure;
-static gint ett_x2ap_X2Release;
-static gint ett_x2ap_X2APMessageTransfer;
-static gint ett_x2ap_RNL_Header;
-static gint ett_x2ap_SeNBAdditionRequest;
-static gint ett_x2ap_E_RABs_ToBeAdded_List;
-static gint ett_x2ap_E_RABs_ToBeAdded_Item;
-static gint ett_x2ap_E_RABs_ToBeAdded_Item_SCG_Bearer;
-static gint ett_x2ap_E_RABs_ToBeAdded_Item_Split_Bearer;
-static gint ett_x2ap_SeNBAdditionRequestAcknowledge;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_List;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_Item;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer;
-static gint ett_x2ap_SeNBAdditionRequestReject;
-static gint ett_x2ap_SeNBReconfigurationComplete;
-static gint ett_x2ap_ResponseInformationSeNBReconfComp;
-static gint ett_x2ap_ResponseInformationSeNBReconfComp_SuccessItem;
-static gint ett_x2ap_ResponseInformationSeNBReconfComp_RejectByMeNBItem;
-static gint ett_x2ap_SeNBModificationRequest;
-static gint ett_x2ap_UE_ContextInformationSeNBModReq;
-static gint ett_x2ap_E_RABs_ToBeAdded_List_ModReq;
-static gint ett_x2ap_E_RABs_ToBeAdded_ModReqItem;
-static gint ett_x2ap_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_ToBeAdded_ModReqItem_Split_Bearer;
-static gint ett_x2ap_E_RABs_ToBeModified_List_ModReq;
-static gint ett_x2ap_E_RABs_ToBeModified_ModReqItem;
-static gint ett_x2ap_E_RABs_ToBeModified_ModReqItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_ToBeModified_ModReqItem_Split_Bearer;
-static gint ett_x2ap_E_RABs_ToBeReleased_List_ModReq;
-static gint ett_x2ap_E_RABs_ToBeReleased_ModReqItem;
-static gint ett_x2ap_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_ToBeReleased_ModReqItem_Split_Bearer;
-static gint ett_x2ap_SeNBModificationRequestAcknowledge;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckItem;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckItem;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_ModAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToReleased_ModAckItem;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer;
-static gint ett_x2ap_SeNBModificationRequestReject;
-static gint ett_x2ap_SeNBModificationRequired;
-static gint ett_x2ap_E_RABs_ToBeReleased_ModReqd;
-static gint ett_x2ap_E_RABs_ToBeReleased_ModReqdItem;
-static gint ett_x2ap_SeNBModificationConfirm;
-static gint ett_x2ap_SeNBModificationRefuse;
-static gint ett_x2ap_SeNBReleaseRequest;
-static gint ett_x2ap_E_RABs_ToBeReleased_List_RelReq;
-static gint ett_x2ap_E_RABs_ToBeReleased_RelReqItem;
-static gint ett_x2ap_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_ToBeReleased_RelReqItem_Split_Bearer;
-static gint ett_x2ap_SeNBReleaseRequired;
-static gint ett_x2ap_SeNBReleaseConfirm;
-static gint ett_x2ap_E_RABs_ToBeReleased_List_RelConf;
-static gint ett_x2ap_E_RABs_ToBeReleased_RelConfItem;
-static gint ett_x2ap_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer;
-static gint ett_x2ap_E_RABs_ToBeReleased_RelConfItem_Split_Bearer;
-static gint ett_x2ap_SeNBCounterCheckRequest;
-static gint ett_x2ap_E_RABs_SubjectToCounterCheck_List;
-static gint ett_x2ap_E_RABs_SubjectToCounterCheckItem;
-static gint ett_x2ap_X2RemovalRequest;
-static gint ett_x2ap_X2RemovalResponse;
-static gint ett_x2ap_X2RemovalFailure;
-static gint ett_x2ap_RetrieveUEContextRequest;
-static gint ett_x2ap_RetrieveUEContextResponse;
-static gint ett_x2ap_UE_ContextInformationRetrieve;
-static gint ett_x2ap_E_RABs_ToBeSetup_ListRetrieve;
-static gint ett_x2ap_E_RABs_ToBeSetupRetrieve_Item;
-static gint ett_x2ap_RetrieveUEContextFailure;
-static gint ett_x2ap_SgNBAdditionRequest;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBAddReqList;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBAddReq_Item;
-static gint ett_x2ap_T_resource_configuration;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBAdditionRequestAcknowledge;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item;
-static gint ett_x2ap_T_resource_configuration_01;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBAdditionRequestReject;
-static gint ett_x2ap_SgNBReconfigurationComplete;
-static gint ett_x2ap_ResponseInformationSgNBReconfComp;
-static gint ett_x2ap_ResponseInformationSgNBReconfComp_SuccessItem;
-static gint ett_x2ap_ResponseInformationSgNBReconfComp_RejectByMeNBItem;
-static gint ett_x2ap_SgNBModificationRequest;
-static gint ett_x2ap_UE_ContextInformation_SgNBModReq;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_List;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_Item;
-static gint ett_x2ap_T_resource_configuration_02;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReq_List;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReq_Item;
-static gint ett_x2ap_T_resource_configuration_03;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_List;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_Item;
-static gint ett_x2ap_T_resource_configuration_04;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBModificationRequestAcknowledge;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item;
-static gint ett_x2ap_T_resource_configuration_05;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAck_Item;
-static gint ett_x2ap_T_resource_configuration_06;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBModAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToReleased_SgNBModAck_Item;
-static gint ett_x2ap_T_resource_configuration_07;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBModificationRequestReject;
-static gint ett_x2ap_SgNBModificationRequired;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBModReqdList;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBModReqd_Item;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReqdList;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReqd_Item;
-static gint ett_x2ap_T_resource_configuration_08;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBModificationConfirm;
-static gint ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConfList;
-static gint ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConf_Item;
-static gint ett_x2ap_T_resource_configuration_09;
-static gint ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBModificationRefuse;
-static gint ett_x2ap_SgNBReleaseRequest;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelReqList;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelReq_Item;
-static gint ett_x2ap_T_resource_configuration_10;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBReleaseRequestAcknowledge;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList;
-static gint ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item;
-static gint ett_x2ap_SgNBReleaseRequestReject;
-static gint ett_x2ap_SgNBReleaseRequired;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelReqdList;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelReqd_Item;
-static gint ett_x2ap_SgNBReleaseConfirm;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelConfList;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelConf_Item;
-static gint ett_x2ap_T_resource_configuration_11;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_SgNBCounterCheckRequest;
-static gint ett_x2ap_E_RABs_SubjectToSgNBCounterCheck_List;
-static gint ett_x2ap_E_RABs_SubjectToSgNBCounterCheck_Item;
-static gint ett_x2ap_SgNBChangeRequired;
-static gint ett_x2ap_AccessAndMobilityIndication;
-static gint ett_x2ap_SgNBChangeConfirm;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBChaConfList;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBChaConf_Item;
-static gint ett_x2ap_T_resource_configuration_12;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent;
-static gint ett_x2ap_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent;
-static gint ett_x2ap_RRCTransfer;
-static gint ett_x2ap_SgNBChangeRefuse;
-static gint ett_x2ap_ENDCX2SetupRequest;
-static gint ett_x2ap_InitiatingNodeType_EndcX2Setup;
-static gint ett_x2ap_ServedEUTRAcellsENDCX2ManagementList;
-static gint ett_x2ap_ServedEUTRAcellsENDCX2ManagementList_item;
-static gint ett_x2ap_ServedNRcellsENDCX2ManagementList;
-static gint ett_x2ap_ServedNRcellsENDCX2ManagementList_item;
-static gint ett_x2ap_ServedNRCell_Information;
-static gint ett_x2ap_T_nrModeInfo;
-static gint ett_x2ap_FDD_InfoServedNRCell_Information;
-static gint ett_x2ap_TDD_InfoServedNRCell_Information;
-static gint ett_x2ap_CellandCapacityAssistInfo;
-static gint ett_x2ap_CellAssistanceInformation;
-static gint ett_x2ap_Limited_list;
-static gint ett_x2ap_Limited_list_item;
-static gint ett_x2ap_ENDCX2SetupResponse;
-static gint ett_x2ap_RespondingNodeType_EndcX2Setup;
-static gint ett_x2ap_ENDCX2SetupFailure;
-static gint ett_x2ap_ENDCConfigurationUpdate;
-static gint ett_x2ap_InitiatingNodeType_EndcConfigUpdate;
-static gint ett_x2ap_ServedEUTRAcellsToModifyListENDCConfUpd;
-static gint ett_x2ap_ServedEUTRAcellsToModifyListENDCConfUpd_item;
-static gint ett_x2ap_ServedEUTRAcellsToDeleteListENDCConfUpd;
-static gint ett_x2ap_ServedNRcellsToModifyENDCConfUpdList;
-static gint ett_x2ap_ServedNRCellsToModify_Item;
-static gint ett_x2ap_ServedNRcellsToDeleteENDCConfUpdList;
-static gint ett_x2ap_ENDCConfigurationUpdateAcknowledge;
-static gint ett_x2ap_RespondingNodeType_EndcConfigUpdate;
-static gint ett_x2ap_ENDCConfigurationUpdateFailure;
-static gint ett_x2ap_ENDCCellActivationRequest;
-static gint ett_x2ap_ServedNRCellsToActivate;
-static gint ett_x2ap_ServedNRCellsToActivate_Item;
-static gint ett_x2ap_ENDCCellActivationResponse;
-static gint ett_x2ap_ActivatedNRCellList;
-static gint ett_x2ap_ActivatedNRCellList_Item;
-static gint ett_x2ap_ENDCCellActivationFailure;
-static gint ett_x2ap_ENDCResourceStatusRequest;
-static gint ett_x2ap_CellToReport_NR_ENDC_List;
-static gint ett_x2ap_CellToReport_NR_ENDC_Item;
-static gint ett_x2ap_CellToReport_E_UTRA_ENDC_List;
-static gint ett_x2ap_CellToReport_E_UTRA_ENDC_Item;
-static gint ett_x2ap_SSBToReport_List;
-static gint ett_x2ap_SSBToReport_Item;
-static gint ett_x2ap_ENDCResourceStatusResponse;
-static gint ett_x2ap_ENDCResourceStatusFailure;
-static gint ett_x2ap_ENDCResourceStatusUpdate;
-static gint ett_x2ap_CellMeasurementResult_NR_ENDC_List;
-static gint ett_x2ap_CellMeasurementResult_NR_ENDC_Item;
-static gint ett_x2ap_CellMeasurementResult_E_UTRA_ENDC_List;
-static gint ett_x2ap_CellMeasurementResult_E_UTRA_ENDC_Item;
-static gint ett_x2ap_SecondaryRATDataUsageReport;
-static gint ett_x2ap_SgNBActivityNotification;
-static gint ett_x2ap_ENDCPartialResetRequired;
-static gint ett_x2ap_ENDCPartialResetConfirm;
-static gint ett_x2ap_EUTRANRCellResourceCoordinationRequest;
-static gint ett_x2ap_InitiatingNodeType_EutranrCellResourceCoordination;
-static gint ett_x2ap_ListofEUTRACellsinEUTRACoordinationReq;
-static gint ett_x2ap_ListofEUTRACellsinNRCoordinationReq;
-static gint ett_x2ap_ListofNRCellsinNRCoordinationReq;
-static gint ett_x2ap_EUTRANRCellResourceCoordinationResponse;
-static gint ett_x2ap_RespondingNodeType_EutranrCellResourceCoordination;
-static gint ett_x2ap_ListofEUTRACellsinEUTRACoordinationResp;
-static gint ett_x2ap_ListofNRCellsinNRCoordinationResp;
-static gint ett_x2ap_ENDCX2RemovalRequest;
-static gint ett_x2ap_InitiatingNodeType_EndcX2Removal;
-static gint ett_x2ap_ENDCX2RemovalResponse;
-static gint ett_x2ap_RespondingNodeType_EndcX2Removal;
-static gint ett_x2ap_ENDCX2RemovalFailure;
-static gint ett_x2ap_DataForwardingAddressIndication;
-static gint ett_x2ap_E_RABs_DataForwardingAddress_List;
-static gint ett_x2ap_E_RABs_DataForwardingAddress_Item;
-static gint ett_x2ap_GNBStatusIndication;
-static gint ett_x2ap_ENDCConfigurationTransfer;
-static gint ett_x2ap_TraceStart;
-static gint ett_x2ap_DeactivateTrace;
-static gint ett_x2ap_CellTrafficTrace;
-static gint ett_x2ap_F1CTrafficTransfer;
-static gint ett_x2ap_UERadioCapabilityIDMappingRequest;
-static gint ett_x2ap_UERadioCapabilityIDMappingResponse;
-static gint ett_x2ap_CPC_cancel;
-static gint ett_x2ap_X2AP_PDU;
-static gint ett_x2ap_InitiatingMessage;
-static gint ett_x2ap_SuccessfulOutcome;
-static gint ett_x2ap_UnsuccessfulOutcome;
+static int ett_x2ap_PrivateIE_ID;
+static int ett_x2ap_ProtocolIE_Container;
+static int ett_x2ap_ProtocolIE_Field;
+static int ett_x2ap_ProtocolExtensionContainer;
+static int ett_x2ap_ProtocolExtensionField;
+static int ett_x2ap_PrivateIE_Container;
+static int ett_x2ap_PrivateIE_Field;
+static int ett_x2ap_ABSInformation;
+static int ett_x2ap_ABSInformationFDD;
+static int ett_x2ap_ABSInformationTDD;
+static int ett_x2ap_ABS_Status;
+static int ett_x2ap_Additional_Measurement_Timing_Configuration_List;
+static int ett_x2ap_Additional_Measurement_Timing_Configuration_Item;
+static int ett_x2ap_CSI_RS_MTC_Configuration_List;
+static int ett_x2ap_CSI_RS_MTC_Configuration_Item;
+static int ett_x2ap_CSI_RS_Neighbour_List;
+static int ett_x2ap_CSI_RS_Neighbour_Item;
+static int ett_x2ap_CSI_RS_MTC_Neighbour_List;
+static int ett_x2ap_CSI_RS_MTC_Neighbour_Item;
+static int ett_x2ap_AdditionalListofForwardingGTPTunnelEndpoint;
+static int ett_x2ap_AdditionalListofForwardingGTPTunnelEndpoint_Item;
+static int ett_x2ap_AdditionalSpecialSubframe_Info;
+static int ett_x2ap_AdditionalSpecialSubframeExtension_Info;
+static int ett_x2ap_AllocationAndRetentionPriority;
+static int ett_x2ap_AreaScopeOfMDT;
+static int ett_x2ap_AreaScopeOfQMC;
+static int ett_x2ap_AS_SecurityInformation;
+static int ett_x2ap_AdditionalPLMNs_Item;
+static int ett_x2ap_BroadcastPLMNs_Item;
+static int ett_x2ap_BluetoothMeasurementConfiguration;
+static int ett_x2ap_BluetoothMeasConfigNameList;
+static int ett_x2ap_BPLMN_ID_Info_EUTRA;
+static int ett_x2ap_BPLMN_ID_Info_EUTRA_Item;
+static int ett_x2ap_BPLMN_ID_Info_NR;
+static int ett_x2ap_BPLMN_ID_Info_NR_Item;
+static int ett_x2ap_BroadcastextPLMNs;
+static int ett_x2ap_Cause;
+static int ett_x2ap_CellBasedMDT;
+static int ett_x2ap_CellBasedQMC;
+static int ett_x2ap_CellIdListforMDT;
+static int ett_x2ap_CellIdListforQMC;
+static int ett_x2ap_CellReplacingInfo;
+static int ett_x2ap_CellType;
+static int ett_x2ap_CPACcandidatePSCells_list;
+static int ett_x2ap_CPACcandidatePSCells_item;
+static int ett_x2ap_CPAinformation_REQ;
+static int ett_x2ap_CPAinformation_REQ_ACK;
+static int ett_x2ap_CPCinformation_REQD;
+static int ett_x2ap_CPC_target_SgNB_reqd_list;
+static int ett_x2ap_CPC_target_SgNB_reqd_item;
+static int ett_x2ap_CPCinformation_CONF;
+static int ett_x2ap_CPC_target_SgNB_conf_list;
+static int ett_x2ap_CPC_target_SgNB_conf_item;
+static int ett_x2ap_CPCinformation_NOTIFY;
+static int ett_x2ap_CPAinformation_MOD;
+static int ett_x2ap_CPCupdate_MOD;
+static int ett_x2ap_CPC_target_SgNB_mod_list;
+static int ett_x2ap_CPC_target_SgNB_mod_item;
+static int ett_x2ap_CPAinformation_MOD_ACK;
+static int ett_x2ap_CPACinformation_REQD;
+static int ett_x2ap_CNTypeRestrictions;
+static int ett_x2ap_CNTypeRestrictionsItem;
+static int ett_x2ap_CoMPHypothesisSet;
+static int ett_x2ap_CoMPHypothesisSetItem;
+static int ett_x2ap_CoMPInformation;
+static int ett_x2ap_CoMPInformationItem;
+static int ett_x2ap_CoMPInformationItem_item;
+static int ett_x2ap_CoMPInformationStartTime;
+static int ett_x2ap_CoMPInformationStartTime_item;
+static int ett_x2ap_CompositeAvailableCapacity;
+static int ett_x2ap_CompositeAvailableCapacityGroup;
+static int ett_x2ap_COUNTvalue;
+static int ett_x2ap_COUNTValueExtended;
+static int ett_x2ap_COUNTvaluePDCP_SNlength18;
+static int ett_x2ap_CoverageModificationList;
+static int ett_x2ap_CoverageModification_Item;
+static int ett_x2ap_CPTransportLayerInformation;
+static int ett_x2ap_CriticalityDiagnostics;
+static int ett_x2ap_CriticalityDiagnostics_IE_List;
+static int ett_x2ap_CriticalityDiagnostics_IE_List_item;
+static int ett_x2ap_CSIReportList;
+static int ett_x2ap_CSIReportList_item;
+static int ett_x2ap_CSIReportPerCSIProcess;
+static int ett_x2ap_CSIReportPerCSIProcess_item;
+static int ett_x2ap_CSIReportPerCSIProcessItem;
+static int ett_x2ap_CSIReportPerCSIProcessItem_item;
+static int ett_x2ap_CHOinformation_REQ;
+static int ett_x2ap_CHOinformation_ACK;
+static int ett_x2ap_CandidateCellsToBeCancelledList;
+static int ett_x2ap_CHOinformation_AddReq;
+static int ett_x2ap_CHOinformation_ModReq;
+static int ett_x2ap_DataTrafficResourceIndication;
+static int ett_x2ap_DAPSRequestInfo;
+static int ett_x2ap_DAPSResponseInfo;
+static int ett_x2ap_DeliveryStatus;
+static int ett_x2ap_DLResourcesULandDLSharing;
+static int ett_x2ap_DynamicDLTransmissionInformation;
+static int ett_x2ap_DynamicNAICSInformation;
+static int ett_x2ap_SEQUENCE_SIZE_0_maxnoofPA_OF_PA_Values;
+static int ett_x2ap_ECGI;
+static int ett_x2ap_EnhancedRNTP;
+static int ett_x2ap_EnhancedRNTPStartTime;
+static int ett_x2ap_ENB_ID;
+static int ett_x2ap_EN_DC_ResourceConfiguration;
+static int ett_x2ap_EPLMNs;
+static int ett_x2ap_ERABActivityNotifyItemList;
+static int ett_x2ap_ERABActivityNotifyItem;
+static int ett_x2ap_E_RAB_Level_QoS_Parameters;
+static int ett_x2ap_E_RAB_List;
+static int ett_x2ap_E_RAB_Item;
+static int ett_x2ap_E_RABsSubjectToEarlyStatusTransfer_List;
+static int ett_x2ap_E_RABsSubjectToEarlyStatusTransfer_Item;
+static int ett_x2ap_E_RABsSubjectToDLDiscarding_List;
+static int ett_x2ap_E_RABsSubjectToDLDiscarding_Item;
+static int ett_x2ap_E_RABUsageReportList;
+static int ett_x2ap_E_RABUsageReport_Item;
+static int ett_x2ap_EUTRA_Mode_Info;
+static int ett_x2ap_ExpectedUEBehaviour;
+static int ett_x2ap_ExpectedUEActivityBehaviour;
+static int ett_x2ap_ExtendedULInterferenceOverloadInfo;
+static int ett_x2ap_FastMCGRecovery;
+static int ett_x2ap_FDD_Info;
+static int ett_x2ap_FDD_InfoNeighbourServedNRCell_Information;
+static int ett_x2ap_ForbiddenTAs;
+static int ett_x2ap_ForbiddenTAs_Item;
+static int ett_x2ap_ForbiddenTACs;
+static int ett_x2ap_ForbiddenLAs;
+static int ett_x2ap_ForbiddenLAs_Item;
+static int ett_x2ap_ForbiddenLACs;
+static int ett_x2ap_FreqBandNrItem;
+static int ett_x2ap_SEQUENCE_SIZE_0_maxnoofNrCellBands_OF_SupportedSULFreqBandItem;
+static int ett_x2ap_GBR_QosInformation;
+static int ett_x2ap_GlobalENB_ID;
+static int ett_x2ap_GlobalGNB_ID;
+static int ett_x2ap_Global_RAN_NODE_ID;
+static int ett_x2ap_GTPTLAs;
+static int ett_x2ap_GTPTLA_Item;
+static int ett_x2ap_GTPtunnelEndpoint;
+static int ett_x2ap_GUGroupIDList;
+static int ett_x2ap_GU_Group_ID;
+static int ett_x2ap_GUMMEI;
+static int ett_x2ap_GNB_ID;
+static int ett_x2ap_HandoverRestrictionList;
+static int ett_x2ap_HWLoadIndicator;
+static int ett_x2ap_LastVisitedCell_Item;
+static int ett_x2ap_LastVisitedEUTRANCellInformation;
+static int ett_x2ap_LastVisitedGERANCellInformation;
+static int ett_x2ap_LocationInformationSgNB;
+static int ett_x2ap_LocationReportingInformation;
+static int ett_x2ap_M1PeriodicReporting;
+static int ett_x2ap_M1ThresholdEventA2;
+static int ett_x2ap_M3Configuration;
+static int ett_x2ap_M4Configuration;
+static int ett_x2ap_M5Configuration;
+static int ett_x2ap_M6Configuration;
+static int ett_x2ap_M7Configuration;
+static int ett_x2ap_MDT_Configuration;
+static int ett_x2ap_MDTPLMNList;
+static int ett_x2ap_MeasurementThresholdA2;
+static int ett_x2ap_MeNBResourceCoordinationInformation;
+static int ett_x2ap_MBMS_Service_Area_Identity_List;
+static int ett_x2ap_MBSFN_Subframe_Infolist;
+static int ett_x2ap_MBSFN_Subframe_Info;
+static int ett_x2ap_MobilityParametersModificationRange;
+static int ett_x2ap_MobilityParametersInformation;
+static int ett_x2ap_MultibandInfoList;
+static int ett_x2ap_MessageOversizeNotification;
+static int ett_x2ap_BandInfo;
+static int ett_x2ap_SplitSRB;
+static int ett_x2ap_Neighbour_Information;
+static int ett_x2ap_Neighbour_Information_item;
+static int ett_x2ap_NRCapacityValue;
+static int ett_x2ap_NRCarrierList;
+static int ett_x2ap_NRCarrierItem;
+static int ett_x2ap_NRCompositeAvailableCapacityGroup;
+static int ett_x2ap_NRCompositeAvailableCapacity;
+static int ett_x2ap_NRFreqInfo;
+static int ett_x2ap_SEQUENCE_SIZE_1_maxnoofNrCellBands_OF_FreqBandNrItem;
+static int ett_x2ap_NRCGI;
+static int ett_x2ap_NRRACHReportInformation;
+static int ett_x2ap_NRRACHReportList_Item;
+static int ett_x2ap_NRNeighbour_Information;
+static int ett_x2ap_NRNeighbour_Information_item;
+static int ett_x2ap_T_nRNeighbourModeInfo;
+static int ett_x2ap_NPRACHConfiguration;
+static int ett_x2ap_T_fdd_or_tdd;
+static int ett_x2ap_NPRACHConfiguration_FDD;
+static int ett_x2ap_NPRACHConfiguration_TDD;
+static int ett_x2ap_Non_AnchorCarrierFrequencylist;
+static int ett_x2ap_Non_AnchorCarrierFrequencylist_item;
+static int ett_x2ap_MeasurementResultforNRCellsPossiblyAggregated;
+static int ett_x2ap_MeasurementResultforNRCellsPossiblyAggregated_Item;
+static int ett_x2ap_NRRadioResourceStatus;
+static int ett_x2ap_MIMOPRBusageInformation;
+static int ett_x2ap_NR_TxBW;
+static int ett_x2ap_NRUeReport;
+static int ett_x2ap_NRUESidelinkAggregateMaximumBitRate;
+static int ett_x2ap_NRUESecurityCapabilities;
+static int ett_x2ap_NRV2XServicesAuthorized;
+static int ett_x2ap_PC5QoSParameters;
+static int ett_x2ap_PC5QoSFlowList;
+static int ett_x2ap_PC5QoSFlowItem;
+static int ett_x2ap_PC5FlowBitRates;
+static int ett_x2ap_PRACH_Configuration;
+static int ett_x2ap_PLMNAreaBasedQMC;
+static int ett_x2ap_PLMNListforQMC;
+static int ett_x2ap_ProSeAuthorized;
+static int ett_x2ap_ProtectedEUTRAResourceIndication;
+static int ett_x2ap_ProtectedFootprintTimePattern;
+static int ett_x2ap_ProtectedResourceList;
+static int ett_x2ap_ProtectedResourceList_Item;
+static int ett_x2ap_PSCell_UE_HistoryInformation;
+static int ett_x2ap_QoS_Mapping_Information;
+static int ett_x2ap_RadioResourceStatus;
+static int ett_x2ap_RAT_Restrictions;
+static int ett_x2ap_RAT_RestrictionsItem;
+static int ett_x2ap_RelativeNarrowbandTxPower;
+static int ett_x2ap_ReplacingCellsList;
+static int ett_x2ap_ReplacingCellsList_Item;
+static int ett_x2ap_ReservedSubframePattern;
+static int ett_x2ap_ResumeID;
+static int ett_x2ap_RLC_Status;
+static int ett_x2ap_RSRPMeasurementResult;
+static int ett_x2ap_RSRPMeasurementResult_item;
+static int ett_x2ap_RSRPMRList;
+static int ett_x2ap_RSRPMRList_item;
+static int ett_x2ap_S1TNLLoadIndicator;
+static int ett_x2ap_SCG_UE_HistoryInformation;
+static int ett_x2ap_SecondaryRATUsageReportList;
+static int ett_x2ap_SecondaryRATUsageReport_Item;
+static int ett_x2ap_SecurityIndication;
+static int ett_x2ap_SecurityResult;
+static int ett_x2ap_SensorMeasurementConfiguration;
+static int ett_x2ap_SensorMeasConfigNameList;
+static int ett_x2ap_SensorMeasConfigNameItem;
+static int ett_x2ap_SensorNameConfig;
+static int ett_x2ap_ServedCells;
+static int ett_x2ap_ServedCells_item;
+static int ett_x2ap_ServedCell_Information;
+static int ett_x2ap_ServedCellSpecificInfoReq_NR;
+static int ett_x2ap_ServedCellSpecificInfoReq_NR_Item;
+static int ett_x2ap_SgNBResourceCoordinationInformation;
+static int ett_x2ap_SharedResourceType;
+static int ett_x2ap_SpecialSubframe_Info;
+static int ett_x2ap_SubbandCQI;
+static int ett_x2ap_Subscription_Based_UE_DifferentiationInfo;
+static int ett_x2ap_ScheduledCommunicationTime;
+static int ett_x2ap_SSBAreaCapacityValue_List;
+static int ett_x2ap_SSBAreaCapacityValue_Item;
+static int ett_x2ap_SSBAreaRadioResourceStatus_List;
+static int ett_x2ap_SSBAreaRadioResourceStatus_Item;
+static int ett_x2ap_SSB_PositionsInBurst;
+static int ett_x2ap_SubbandCQICodeword0;
+static int ett_x2ap_SubbandCQICodeword1;
+static int ett_x2ap_SubbandCQIList;
+static int ett_x2ap_SubbandCQIItem;
+static int ett_x2ap_SubframeAllocation;
+static int ett_x2ap_SULInformation;
+static int ett_x2ap_SupportedSULFreqBandItem;
+static int ett_x2ap_SFN_Offset;
+static int ett_x2ap_TABasedMDT;
+static int ett_x2ap_TAIBasedMDT;
+static int ett_x2ap_TAIListforMDT;
+static int ett_x2ap_TAI_Item;
+static int ett_x2ap_TAListforMDT;
+static int ett_x2ap_TABasedQMC;
+static int ett_x2ap_TAListforQMC;
+static int ett_x2ap_TAIBasedQMC;
+static int ett_x2ap_TAIListforQMC;
+static int ett_x2ap_TDD_Info;
+static int ett_x2ap_TDD_InfoNeighbourServedNRCell_Information;
+static int ett_x2ap_TNLA_To_Add_List;
+static int ett_x2ap_TNLA_To_Add_Item;
+static int ett_x2ap_TNLA_To_Update_List;
+static int ett_x2ap_TNLA_To_Update_Item;
+static int ett_x2ap_TNLA_To_Remove_List;
+static int ett_x2ap_TNLA_To_Remove_Item;
+static int ett_x2ap_TNLA_Setup_List;
+static int ett_x2ap_TNLA_Setup_Item;
+static int ett_x2ap_TNLA_Failed_To_Setup_List;
+static int ett_x2ap_TNLA_Failed_To_Setup_Item;
+static int ett_x2ap_TNLCapacityIndicator;
+static int ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Add_List;
+static int ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Add_Item;
+static int ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Remove_List;
+static int ett_x2ap_Transport_UP_Layer_Addresses_Info_To_Remove_Item;
+static int ett_x2ap_TNLConfigurationInfo;
+static int ett_x2ap_TraceActivation;
+static int ett_x2ap_TransportLayerAddressAndPort;
+static int ett_x2ap_TunnelInformation;
+static int ett_x2ap_UEAggregateMaximumBitRate;
+static int ett_x2ap_UEAppLayerMeasConfig;
+static int ett_x2ap_UE_HistoryInformation;
+static int ett_x2ap_UESecurityCapabilities;
+static int ett_x2ap_UESidelinkAggregateMaximumBitRate;
+static int ett_x2ap_UEsToBeResetList;
+static int ett_x2ap_UEsToBeResetList_Item;
+static int ett_x2ap_ULandDLSharing;
+static int ett_x2ap_ULConfiguration;
+static int ett_x2ap_UL_HighInterferenceIndicationInfo;
+static int ett_x2ap_UL_HighInterferenceIndicationInfo_Item;
+static int ett_x2ap_UL_InterferenceOverloadIndication;
+static int ett_x2ap_ULOnlySharing;
+static int ett_x2ap_ULResourcesULandDLSharing;
+static int ett_x2ap_UsableABSInformation;
+static int ett_x2ap_UsableABSInformationFDD;
+static int ett_x2ap_UsableABSInformationTDD;
+static int ett_x2ap_V2XServicesAuthorized;
+static int ett_x2ap_WidebandCQI;
+static int ett_x2ap_WidebandCQICodeword1;
+static int ett_x2ap_WLANMeasurementConfiguration;
+static int ett_x2ap_WLANMeasConfigNameList;
+static int ett_x2ap_WTID;
+static int ett_x2ap_WTID_Type1;
+static int ett_x2ap_HandoverRequest;
+static int ett_x2ap_UE_ContextInformation;
+static int ett_x2ap_E_RABs_ToBeSetup_List;
+static int ett_x2ap_E_RABs_ToBeSetup_Item;
+static int ett_x2ap_UE_ContextReferenceAtSeNB;
+static int ett_x2ap_UE_ContextReferenceAtWT;
+static int ett_x2ap_UE_ContextReferenceAtSgNB;
+static int ett_x2ap_HandoverRequestAcknowledge;
+static int ett_x2ap_E_RABs_Admitted_List;
+static int ett_x2ap_E_RABs_Admitted_Item;
+static int ett_x2ap_HandoverPreparationFailure;
+static int ett_x2ap_HandoverReport;
+static int ett_x2ap_EarlyStatusTransfer;
+static int ett_x2ap_ProcedureStageChoice;
+static int ett_x2ap_FirstDLCount;
+static int ett_x2ap_DLDiscarding;
+static int ett_x2ap_SNStatusTransfer;
+static int ett_x2ap_E_RABs_SubjectToStatusTransfer_List;
+static int ett_x2ap_E_RABs_SubjectToStatusTransfer_Item;
+static int ett_x2ap_UEContextRelease;
+static int ett_x2ap_HandoverCancel;
+static int ett_x2ap_HandoverSuccess;
+static int ett_x2ap_ConditionalHandoverCancel;
+static int ett_x2ap_ErrorIndication;
+static int ett_x2ap_ResetRequest;
+static int ett_x2ap_ResetResponse;
+static int ett_x2ap_X2SetupRequest;
+static int ett_x2ap_X2SetupResponse;
+static int ett_x2ap_X2SetupFailure;
+static int ett_x2ap_LoadInformation;
+static int ett_x2ap_CellInformation_List;
+static int ett_x2ap_CellInformation_Item;
+static int ett_x2ap_ENBConfigurationUpdate;
+static int ett_x2ap_ServedCellsToModify;
+static int ett_x2ap_ServedCellsToModify_Item;
+static int ett_x2ap_Old_ECGIs;
+static int ett_x2ap_ENBConfigurationUpdateAcknowledge;
+static int ett_x2ap_ENBConfigurationUpdateFailure;
+static int ett_x2ap_ResourceStatusRequest;
+static int ett_x2ap_CellToReport_List;
+static int ett_x2ap_CellToReport_Item;
+static int ett_x2ap_ResourceStatusResponse;
+static int ett_x2ap_MeasurementInitiationResult_List;
+static int ett_x2ap_MeasurementInitiationResult_Item;
+static int ett_x2ap_MeasurementFailureCause_List;
+static int ett_x2ap_MeasurementFailureCause_Item;
+static int ett_x2ap_ResourceStatusFailure;
+static int ett_x2ap_CompleteFailureCauseInformation_List;
+static int ett_x2ap_CompleteFailureCauseInformation_Item;
+static int ett_x2ap_ResourceStatusUpdate;
+static int ett_x2ap_CellMeasurementResult_List;
+static int ett_x2ap_CellMeasurementResult_Item;
+static int ett_x2ap_PrivateMessage;
+static int ett_x2ap_MobilityChangeRequest;
+static int ett_x2ap_MobilityChangeAcknowledge;
+static int ett_x2ap_MobilityChangeFailure;
+static int ett_x2ap_RLFIndication;
+static int ett_x2ap_CellActivationRequest;
+static int ett_x2ap_ServedCellsToActivate;
+static int ett_x2ap_ServedCellsToActivate_Item;
+static int ett_x2ap_CellActivationResponse;
+static int ett_x2ap_ActivatedCellList;
+static int ett_x2ap_ActivatedCellList_Item;
+static int ett_x2ap_CellActivationFailure;
+static int ett_x2ap_X2Release;
+static int ett_x2ap_X2APMessageTransfer;
+static int ett_x2ap_RNL_Header;
+static int ett_x2ap_SeNBAdditionRequest;
+static int ett_x2ap_E_RABs_ToBeAdded_List;
+static int ett_x2ap_E_RABs_ToBeAdded_Item;
+static int ett_x2ap_E_RABs_ToBeAdded_Item_SCG_Bearer;
+static int ett_x2ap_E_RABs_ToBeAdded_Item_Split_Bearer;
+static int ett_x2ap_SeNBAdditionRequestAcknowledge;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_List;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_Item;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_Item_SCG_Bearer;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_Item_Split_Bearer;
+static int ett_x2ap_SeNBAdditionRequestReject;
+static int ett_x2ap_SeNBReconfigurationComplete;
+static int ett_x2ap_ResponseInformationSeNBReconfComp;
+static int ett_x2ap_ResponseInformationSeNBReconfComp_SuccessItem;
+static int ett_x2ap_ResponseInformationSeNBReconfComp_RejectByMeNBItem;
+static int ett_x2ap_SeNBModificationRequest;
+static int ett_x2ap_UE_ContextInformationSeNBModReq;
+static int ett_x2ap_E_RABs_ToBeAdded_List_ModReq;
+static int ett_x2ap_E_RABs_ToBeAdded_ModReqItem;
+static int ett_x2ap_E_RABs_ToBeAdded_ModReqItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_ToBeAdded_ModReqItem_Split_Bearer;
+static int ett_x2ap_E_RABs_ToBeModified_List_ModReq;
+static int ett_x2ap_E_RABs_ToBeModified_ModReqItem;
+static int ett_x2ap_E_RABs_ToBeModified_ModReqItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_ToBeModified_ModReqItem_Split_Bearer;
+static int ett_x2ap_E_RABs_ToBeReleased_List_ModReq;
+static int ett_x2ap_E_RABs_ToBeReleased_ModReqItem;
+static int ett_x2ap_E_RABs_ToBeReleased_ModReqItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_ToBeReleased_ModReqItem_Split_Bearer;
+static int ett_x2ap_SeNBModificationRequestAcknowledge;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckList;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckItem;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_ModAckItem_Split_Bearer;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckList;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckItem;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_ModAckItem_Split_Bearer;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_ModAckList;
+static int ett_x2ap_E_RABs_Admitted_ToReleased_ModAckItem;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_ModAckItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_ModAckItem_Split_Bearer;
+static int ett_x2ap_SeNBModificationRequestReject;
+static int ett_x2ap_SeNBModificationRequired;
+static int ett_x2ap_E_RABs_ToBeReleased_ModReqd;
+static int ett_x2ap_E_RABs_ToBeReleased_ModReqdItem;
+static int ett_x2ap_SeNBModificationConfirm;
+static int ett_x2ap_SeNBModificationRefuse;
+static int ett_x2ap_SeNBReleaseRequest;
+static int ett_x2ap_E_RABs_ToBeReleased_List_RelReq;
+static int ett_x2ap_E_RABs_ToBeReleased_RelReqItem;
+static int ett_x2ap_E_RABs_ToBeReleased_RelReqItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_ToBeReleased_RelReqItem_Split_Bearer;
+static int ett_x2ap_SeNBReleaseRequired;
+static int ett_x2ap_SeNBReleaseConfirm;
+static int ett_x2ap_E_RABs_ToBeReleased_List_RelConf;
+static int ett_x2ap_E_RABs_ToBeReleased_RelConfItem;
+static int ett_x2ap_E_RABs_ToBeReleased_RelConfItem_SCG_Bearer;
+static int ett_x2ap_E_RABs_ToBeReleased_RelConfItem_Split_Bearer;
+static int ett_x2ap_SeNBCounterCheckRequest;
+static int ett_x2ap_E_RABs_SubjectToCounterCheck_List;
+static int ett_x2ap_E_RABs_SubjectToCounterCheckItem;
+static int ett_x2ap_X2RemovalRequest;
+static int ett_x2ap_X2RemovalResponse;
+static int ett_x2ap_X2RemovalFailure;
+static int ett_x2ap_RetrieveUEContextRequest;
+static int ett_x2ap_RetrieveUEContextResponse;
+static int ett_x2ap_UE_ContextInformationRetrieve;
+static int ett_x2ap_E_RABs_ToBeSetup_ListRetrieve;
+static int ett_x2ap_E_RABs_ToBeSetupRetrieve_Item;
+static int ett_x2ap_RetrieveUEContextFailure;
+static int ett_x2ap_SgNBAdditionRequest;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBAddReqList;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBAddReq_Item;
+static int ett_x2ap_T_resource_configuration;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBAdditionRequestAcknowledge;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item;
+static int ett_x2ap_T_resource_configuration_01;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBAdditionRequestReject;
+static int ett_x2ap_SgNBReconfigurationComplete;
+static int ett_x2ap_ResponseInformationSgNBReconfComp;
+static int ett_x2ap_ResponseInformationSgNBReconfComp_SuccessItem;
+static int ett_x2ap_ResponseInformationSgNBReconfComp_RejectByMeNBItem;
+static int ett_x2ap_SgNBModificationRequest;
+static int ett_x2ap_UE_ContextInformation_SgNBModReq;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_List;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_Item;
+static int ett_x2ap_T_resource_configuration_02;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReq_List;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReq_Item;
+static int ett_x2ap_T_resource_configuration_03;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_List;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_Item;
+static int ett_x2ap_T_resource_configuration_04;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBModReq_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBModificationRequestAcknowledge;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAckList;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item;
+static int ett_x2ap_T_resource_configuration_05;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAckList;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAck_Item;
+static int ett_x2ap_T_resource_configuration_06;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBModAckList;
+static int ett_x2ap_E_RABs_Admitted_ToReleased_SgNBModAck_Item;
+static int ett_x2ap_T_resource_configuration_07;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBModAck_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBModificationRequestReject;
+static int ett_x2ap_SgNBModificationRequired;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBModReqdList;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBModReqd_Item;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReqdList;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReqd_Item;
+static int ett_x2ap_T_resource_configuration_08;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBModificationConfirm;
+static int ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConfList;
+static int ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConf_Item;
+static int ett_x2ap_T_resource_configuration_09;
+static int ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBModificationRefuse;
+static int ett_x2ap_SgNBReleaseRequest;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelReqList;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelReq_Item;
+static int ett_x2ap_T_resource_configuration_10;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelReq_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBReleaseRequestAcknowledge;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList;
+static int ett_x2ap_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item;
+static int ett_x2ap_SgNBReleaseRequestReject;
+static int ett_x2ap_SgNBReleaseRequired;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelReqdList;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelReqd_Item;
+static int ett_x2ap_SgNBReleaseConfirm;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelConfList;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelConf_Item;
+static int ett_x2ap_T_resource_configuration_11;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBRelConf_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_SgNBCounterCheckRequest;
+static int ett_x2ap_E_RABs_SubjectToSgNBCounterCheck_List;
+static int ett_x2ap_E_RABs_SubjectToSgNBCounterCheck_Item;
+static int ett_x2ap_SgNBChangeRequired;
+static int ett_x2ap_AccessAndMobilityIndication;
+static int ett_x2ap_SgNBChangeConfirm;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBChaConfList;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBChaConf_Item;
+static int ett_x2ap_T_resource_configuration_12;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPpresent;
+static int ett_x2ap_E_RABs_ToBeReleased_SgNBChaConf_Item_SgNBPDCPnotpresent;
+static int ett_x2ap_RRCTransfer;
+static int ett_x2ap_SgNBChangeRefuse;
+static int ett_x2ap_ENDCX2SetupRequest;
+static int ett_x2ap_InitiatingNodeType_EndcX2Setup;
+static int ett_x2ap_ServedEUTRAcellsENDCX2ManagementList;
+static int ett_x2ap_ServedEUTRAcellsENDCX2ManagementList_item;
+static int ett_x2ap_ServedNRcellsENDCX2ManagementList;
+static int ett_x2ap_ServedNRcellsENDCX2ManagementList_item;
+static int ett_x2ap_ServedNRCell_Information;
+static int ett_x2ap_T_nrModeInfo;
+static int ett_x2ap_FDD_InfoServedNRCell_Information;
+static int ett_x2ap_TDD_InfoServedNRCell_Information;
+static int ett_x2ap_CellandCapacityAssistInfo;
+static int ett_x2ap_CellAssistanceInformation;
+static int ett_x2ap_Limited_list;
+static int ett_x2ap_Limited_list_item;
+static int ett_x2ap_ENDCX2SetupResponse;
+static int ett_x2ap_RespondingNodeType_EndcX2Setup;
+static int ett_x2ap_ENDCX2SetupFailure;
+static int ett_x2ap_ENDCConfigurationUpdate;
+static int ett_x2ap_InitiatingNodeType_EndcConfigUpdate;
+static int ett_x2ap_ServedEUTRAcellsToModifyListENDCConfUpd;
+static int ett_x2ap_ServedEUTRAcellsToModifyListENDCConfUpd_item;
+static int ett_x2ap_ServedEUTRAcellsToDeleteListENDCConfUpd;
+static int ett_x2ap_ServedNRcellsToModifyENDCConfUpdList;
+static int ett_x2ap_ServedNRCellsToModify_Item;
+static int ett_x2ap_ServedNRcellsToDeleteENDCConfUpdList;
+static int ett_x2ap_ENDCConfigurationUpdateAcknowledge;
+static int ett_x2ap_RespondingNodeType_EndcConfigUpdate;
+static int ett_x2ap_ENDCConfigurationUpdateFailure;
+static int ett_x2ap_ENDCCellActivationRequest;
+static int ett_x2ap_ServedNRCellsToActivate;
+static int ett_x2ap_ServedNRCellsToActivate_Item;
+static int ett_x2ap_ENDCCellActivationResponse;
+static int ett_x2ap_ActivatedNRCellList;
+static int ett_x2ap_ActivatedNRCellList_Item;
+static int ett_x2ap_ENDCCellActivationFailure;
+static int ett_x2ap_ENDCResourceStatusRequest;
+static int ett_x2ap_CellToReport_NR_ENDC_List;
+static int ett_x2ap_CellToReport_NR_ENDC_Item;
+static int ett_x2ap_CellToReport_E_UTRA_ENDC_List;
+static int ett_x2ap_CellToReport_E_UTRA_ENDC_Item;
+static int ett_x2ap_SSBToReport_List;
+static int ett_x2ap_SSBToReport_Item;
+static int ett_x2ap_ENDCResourceStatusResponse;
+static int ett_x2ap_ENDCResourceStatusFailure;
+static int ett_x2ap_ENDCResourceStatusUpdate;
+static int ett_x2ap_CellMeasurementResult_NR_ENDC_List;
+static int ett_x2ap_CellMeasurementResult_NR_ENDC_Item;
+static int ett_x2ap_CellMeasurementResult_E_UTRA_ENDC_List;
+static int ett_x2ap_CellMeasurementResult_E_UTRA_ENDC_Item;
+static int ett_x2ap_SecondaryRATDataUsageReport;
+static int ett_x2ap_SgNBActivityNotification;
+static int ett_x2ap_ENDCPartialResetRequired;
+static int ett_x2ap_ENDCPartialResetConfirm;
+static int ett_x2ap_EUTRANRCellResourceCoordinationRequest;
+static int ett_x2ap_InitiatingNodeType_EutranrCellResourceCoordination;
+static int ett_x2ap_ListofEUTRACellsinEUTRACoordinationReq;
+static int ett_x2ap_ListofEUTRACellsinNRCoordinationReq;
+static int ett_x2ap_ListofNRCellsinNRCoordinationReq;
+static int ett_x2ap_EUTRANRCellResourceCoordinationResponse;
+static int ett_x2ap_RespondingNodeType_EutranrCellResourceCoordination;
+static int ett_x2ap_ListofEUTRACellsinEUTRACoordinationResp;
+static int ett_x2ap_ListofNRCellsinNRCoordinationResp;
+static int ett_x2ap_ENDCX2RemovalRequest;
+static int ett_x2ap_InitiatingNodeType_EndcX2Removal;
+static int ett_x2ap_ENDCX2RemovalResponse;
+static int ett_x2ap_RespondingNodeType_EndcX2Removal;
+static int ett_x2ap_ENDCX2RemovalFailure;
+static int ett_x2ap_DataForwardingAddressIndication;
+static int ett_x2ap_E_RABs_DataForwardingAddress_List;
+static int ett_x2ap_E_RABs_DataForwardingAddress_Item;
+static int ett_x2ap_GNBStatusIndication;
+static int ett_x2ap_ENDCConfigurationTransfer;
+static int ett_x2ap_TraceStart;
+static int ett_x2ap_DeactivateTrace;
+static int ett_x2ap_CellTrafficTrace;
+static int ett_x2ap_F1CTrafficTransfer;
+static int ett_x2ap_UERadioCapabilityIDMappingRequest;
+static int ett_x2ap_UERadioCapabilityIDMappingResponse;
+static int ett_x2ap_CPC_cancel;
+static int ett_x2ap_X2AP_PDU;
+static int ett_x2ap_InitiatingMessage;
+static int ett_x2ap_SuccessfulOutcome;
+static int ett_x2ap_UnsuccessfulOutcome;
/* Forward declarations */
static int dissect_x2ap_Registration_Request_ENDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -2747,11 +2759,6 @@ static const true_false_string x2ap_tfs_failed_succeeded = {
"Succeeded"
};
-static const true_false_string x2ap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
static void
x2ap_Time_UE_StayedInCell_EnhancedGranularity_fmt(gchar *s, guint32 v)
{
@@ -3377,6 +3384,14 @@ static const value_string x2ap_ProtocolIE_ID_vals[] = {
{ id_MIMOPRBusageInformation, "id-MIMOPRBusageInformation" },
{ id_SensorMeasurementConfiguration, "id-SensorMeasurementConfiguration" },
{ id_AdditionalListofForwardingGTPTunnelEndpoint, "id-AdditionalListofForwardingGTPTunnelEndpoint" },
+ { id_Unknown_442, "id-Unknown-442" },
+ { id_Unknown_443, "id-Unknown-443" },
+ { id_Unknown_444, "id-Unknown-444" },
+ { id_Unknown_445, "id-Unknown-445" },
+ { id_Unknown_446, "id-Unknown-446" },
+ { id_Unknown_447, "id-Unknown-447" },
+ { id_Unknown_448, "id-Unknown-448" },
+ { id_IABAuthorized, "id-IABAuthorized" },
{ 0, NULL }
};
@@ -4699,7 +4714,7 @@ dissect_x2ap_BenefitMetric(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_x2ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(10000000000), NULL, FALSE);
+ 0U, UINT64_C(10000000000), NULL, FALSE);
return offset;
}
@@ -7692,7 +7707,7 @@ dissect_x2ap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_x2ap_INTEGER_0_18446744073709551615(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(18446744073709551615), NULL, FALSE);
+ 0U, UINT64_C(18446744073709551615), NULL, FALSE);
return offset;
}
@@ -8057,7 +8072,7 @@ dissect_x2ap_ExtendedULInterferenceOverloadInfo(tvbuff_t *tvb _U_, int offset _U
static int
dissect_x2ap_ExtendedBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 10000000001U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+ 10000000001U, UINT64_C(4000000000000), NULL, TRUE);
return offset;
}
@@ -8763,6 +8778,22 @@ dissect_x2ap_IABNodeIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
}
+static const value_string x2ap_IABAuthorized_vals[] = {
+ { 0, "authorized" },
+ { 1, "not-authorized" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_x2ap_IABAuthorized(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
static const value_string x2ap_IMSvoiceEPSfallbackfrom5G_vals[] = {
{ 0, "true" },
{ 0, NULL }
@@ -11726,7 +11757,10 @@ dissect_x2ap_T_rAT_RestrictionInformation(tvbuff_t *tvb _U_, int offset _U_, asn
&hf_x2ap_rAT_RestrictionInformation_MEO,
&hf_x2ap_rAT_RestrictionInformation_GEO,
&hf_x2ap_rAT_RestrictionInformation_OTHERSAT,
- &hf_x2ap_rAT_RestrictionInformation_Reserved,
+ &hf_x2ap_rAT_RestrictionInformation_NR_LEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_MEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_GEO,
+ &hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_rAT_RestrictionInformation);
@@ -20038,6 +20072,14 @@ static int dissect_IABNodeIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_IABAuthorized_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_x2ap_IABAuthorized(tvb, offset, &asn1_ctx, tree, hf_x2ap_IABAuthorized_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_IMSvoiceEPSfallbackfrom5G_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -23364,43 +23406,43 @@ void proto_register_x2ap(void) {
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M1,
{ "M1", "x2ap.measurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M2,
{ "M2", "x2ap.measurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M3,
{ "M3", "x2ap.measurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M4,
{ "M4", "x2ap.measurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M5,
{ "M5", "x2ap.measurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "x2ap.measurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M6,
{ "M6", "x2ap.measurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_x2ap_measurementsToActivate_M7,
{ "M7", "x2ap.measurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_GNSS,
{ "GNSS", "x2ap.MDT_Location_Info.GNSS",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_E_CID,
{ "E-CID", "x2ap.MDT_Location_Info.E_CID",
- FT_BOOLEAN, 8, TFS(&x2ap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_x2ap_MDT_Location_Info_Reserved,
{ "Reserved", "x2ap.MDT_Location_Info.Reserved",
@@ -23518,9 +23560,21 @@ void proto_register_x2ap(void) {
{ "OTHERSAT", "x2ap.rAT_RestrictionInformation.OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x10,
NULL, HFILL }},
- { &hf_x2ap_rAT_RestrictionInformation_Reserved,
- { "Reserved", "x2ap.rAT_RestrictionInformation.Reserved",
- FT_UINT8, BASE_HEX, NULL, 0x0f,
+ { &hf_x2ap_rAT_RestrictionInformation_NR_LEO,
+ { "NR-LEO", "x2ap.rAT_RestrictionInformation.NR_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x08,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_MEO,
+ { "NR-MEO", "x2ap.rAT_RestrictionInformation.NR_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_GEO,
+ { "NR-GEO", "x2ap.rAT_RestrictionInformation.NR_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
+ NULL, HFILL }},
+ { &hf_x2ap_rAT_RestrictionInformation_NR_OTHERSAT,
+ { "NR-OTHERSAT", "x2ap.rAT_RestrictionInformation.NR_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
NULL, HFILL }},
{ &hf_x2ap_ABSInformation_PDU,
{ "ABSInformation", "x2ap.ABSInformation",
@@ -23870,6 +23924,10 @@ void proto_register_x2ap(void) {
{ "IABNodeIndication", "x2ap.IABNodeIndication",
FT_UINT32, BASE_DEC, VALS(x2ap_IABNodeIndication_vals), 0,
NULL, HFILL }},
+ { &hf_x2ap_IABAuthorized_PDU,
+ { "IABAuthorized", "x2ap.IABAuthorized",
+ FT_UINT32, BASE_DEC, VALS(x2ap_IABAuthorized_vals), 0,
+ NULL, HFILL }},
{ &hf_x2ap_IMSvoiceEPSfallbackfrom5G_PDU,
{ "IMSvoiceEPSfallbackfrom5G", "x2ap.IMSvoiceEPSfallbackfrom5G",
FT_UINT32, BASE_DEC, VALS(x2ap_IMSvoiceEPSfallbackfrom5G_vals), 0,
@@ -29677,6 +29735,7 @@ proto_reg_handoff_x2ap(void)
dissector_add_uint("x2ap.ies", id_CPCinformation_NOTIFY, create_dissector_handle(dissect_CPCinformation_NOTIFY_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_CPCupdate_MOD, create_dissector_handle(dissect_CPCupdate_MOD_PDU, proto_x2ap));
dissector_add_uint("x2ap.ies", id_SCGreconfigNotification, create_dissector_handle(dissect_SCGreconfigNotification_PDU, proto_x2ap));
+ dissector_add_uint("x2ap.ies", id_IABAuthorized, create_dissector_handle(dissect_IABAuthorized_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_Number_of_Antennaports, create_dissector_handle(dissect_Number_of_Antennaports_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_CompositeAvailableCapacityGroup, create_dissector_handle(dissect_CompositeAvailableCapacityGroup_PDU, proto_x2ap));
dissector_add_uint("x2ap.extension", id_PRACH_Configuration, create_dissector_handle(dissect_PRACH_Configuration_PDU, proto_x2ap));
diff --git a/epan/dissectors/packet-x509af.c b/epan/dissectors/packet-x509af.c
index c1fec7f8f6..def1125b43 100644
--- a/epan/dissectors/packet-x509af.c
+++ b/epan/dissectors/packet-x509af.c
@@ -124,39 +124,39 @@ static int hf_x509af_g; /* INTEGER */
/* Initialize the subtree pointers */
static gint ett_pkix_crl;
-static gint ett_x509af_Certificate;
-static gint ett_x509af_T_signedCertificate;
-static gint ett_x509af_SubjectName;
-static gint ett_x509af_AlgorithmIdentifier;
-static gint ett_x509af_Validity;
-static gint ett_x509af_SubjectPublicKeyInfo;
-static gint ett_x509af_Time;
-static gint ett_x509af_Extensions;
-static gint ett_x509af_Extension;
-static gint ett_x509af_Certificates;
-static gint ett_x509af_ForwardCertificationPath;
-static gint ett_x509af_CrossCertificates;
-static gint ett_x509af_CertificationPath;
-static gint ett_x509af_SEQUENCE_OF_CertificatePair;
-static gint ett_x509af_CertificatePair;
-static gint ett_x509af_CertificateList;
-static gint ett_x509af_T_signedCertificateList;
-static gint ett_x509af_T_revokedCertificates;
-static gint ett_x509af_T_revokedCertificates_item;
-static gint ett_x509af_AttributeCertificationPath;
-static gint ett_x509af_SEQUENCE_OF_ACPathData;
-static gint ett_x509af_ACPathData;
-static gint ett_x509af_AttributeCertificate;
-static gint ett_x509af_AttributeCertificateInfo;
-static gint ett_x509af_InfoSubject;
-static gint ett_x509af_SEQUENCE_OF_Attribute;
-static gint ett_x509af_IssuerSerial;
-static gint ett_x509af_AttCertValidityPeriod;
-static gint ett_x509af_AttributeCertificateAssertion;
-static gint ett_x509af_AssertionSubject;
-static gint ett_x509af_SET_OF_AttributeType;
-static gint ett_x509af_DSS_Params;
-static const char *algorithm_id = NULL;
+static int ett_x509af_Certificate;
+static int ett_x509af_T_signedCertificate;
+static int ett_x509af_SubjectName;
+static int ett_x509af_AlgorithmIdentifier;
+static int ett_x509af_Validity;
+static int ett_x509af_SubjectPublicKeyInfo;
+static int ett_x509af_Time;
+static int ett_x509af_Extensions;
+static int ett_x509af_Extension;
+static int ett_x509af_Certificates;
+static int ett_x509af_ForwardCertificationPath;
+static int ett_x509af_CrossCertificates;
+static int ett_x509af_CertificationPath;
+static int ett_x509af_SEQUENCE_OF_CertificatePair;
+static int ett_x509af_CertificatePair;
+static int ett_x509af_CertificateList;
+static int ett_x509af_T_signedCertificateList;
+static int ett_x509af_T_revokedCertificates;
+static int ett_x509af_T_revokedCertificates_item;
+static int ett_x509af_AttributeCertificationPath;
+static int ett_x509af_SEQUENCE_OF_ACPathData;
+static int ett_x509af_ACPathData;
+static int ett_x509af_AttributeCertificate;
+static int ett_x509af_AttributeCertificateInfo;
+static int ett_x509af_InfoSubject;
+static int ett_x509af_SEQUENCE_OF_Attribute;
+static int ett_x509af_IssuerSerial;
+static int ett_x509af_AttCertValidityPeriod;
+static int ett_x509af_AttributeCertificateAssertion;
+static int ett_x509af_AssertionSubject;
+static int ett_x509af_SET_OF_AttributeType;
+static int ett_x509af_DSS_Params;
+static const char *algorithm_id;
static void
x509af_export_publickey(tvbuff_t *tvb, asn1_ctx_t *actx, int offset, int len);
diff --git a/epan/dissectors/packet-x509ce.c b/epan/dissectors/packet-x509ce.c
index d04b3a64af..aa0193922e 100644
--- a/epan/dissectors/packet-x509ce.c
+++ b/epan/dissectors/packet-x509ce.c
@@ -251,69 +251,69 @@ static int hf_x509ce_EntrustInfoFlags_webCategory;
static int hf_x509ce_EntrustInfoFlags_sETCategory;
/* Initialize the subtree pointers */
-static gint ett_x509ce_AuthorityKeyIdentifier;
-static gint ett_x509ce_KeyUsage;
-static gint ett_x509ce_KeyPurposeIDs;
-static gint ett_x509ce_PrivateKeyUsagePeriod;
-static gint ett_x509ce_CertificatePoliciesSyntax;
-static gint ett_x509ce_PolicyInformation;
-static gint ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo;
-static gint ett_x509ce_PolicyQualifierInfo;
-static gint ett_x509ce_PolicyMappingsSyntax;
-static gint ett_x509ce_PolicyMappingsSyntax_item;
-static gint ett_x509ce_GeneralNames;
-static gint ett_x509ce_GeneralName;
-static gint ett_x509ce_OtherName;
-static gint ett_x509ce_EDIPartyName;
-static gint ett_x509ce_AttributesSyntax;
-static gint ett_x509ce_BasicConstraintsSyntax;
-static gint ett_x509ce_NameConstraintsSyntax;
-static gint ett_x509ce_GeneralSubtrees;
-static gint ett_x509ce_GeneralSubtree;
-static gint ett_x509ce_PolicyConstraintsSyntax;
-static gint ett_x509ce_CRLScopeSyntax;
-static gint ett_x509ce_PerAuthorityScope;
-static gint ett_x509ce_OnlyCertificateTypes;
-static gint ett_x509ce_NumberRange;
-static gint ett_x509ce_BaseRevocationInfo;
-static gint ett_x509ce_StatusReferrals;
-static gint ett_x509ce_StatusReferral;
-static gint ett_x509ce_CRLReferral;
-static gint ett_x509ce_DeltaRefInfo;
-static gint ett_x509ce_DeltaInformation;
-static gint ett_x509ce_CRLDistPointsSyntax;
-static gint ett_x509ce_DistributionPoint;
-static gint ett_x509ce_DistributionPointName;
-static gint ett_x509ce_ReasonFlags;
-static gint ett_x509ce_IssuingDistPointSyntax;
-static gint ett_x509ce_ToBeRevokedSyntax;
-static gint ett_x509ce_ToBeRevokedGroup;
-static gint ett_x509ce_ReasonInfo;
-static gint ett_x509ce_CertificateGroup;
-static gint ett_x509ce_CertificateGroupNumberRange;
-static gint ett_x509ce_CertificateSerialNumbers;
-static gint ett_x509ce_RevokedGroupsSyntax;
-static gint ett_x509ce_RevokedGroup;
-static gint ett_x509ce_RevokedCertificateGroup;
-static gint ett_x509ce_AAIssuingDistPointSyntax;
-static gint ett_x509ce_CertificateExactAssertion;
-static gint ett_x509ce_CertificateAssertion;
-static gint ett_x509ce_AltNameType;
-static gint ett_x509ce_CertPolicySet;
-static gint ett_x509ce_CertificatePairExactAssertion;
-static gint ett_x509ce_CertificatePairAssertion;
-static gint ett_x509ce_CertificateListExactAssertion;
-static gint ett_x509ce_CertificateListAssertion;
-static gint ett_x509ce_PkiPathMatchSyntax;
-static gint ett_x509ce_EnhancedCertificateAssertion;
-static gint ett_x509ce_AltName;
-static gint ett_x509ce_CertificateTemplate;
-static gint ett_x509ce_NtdsCaSecurity;
-static gint ett_x509ce_NtdsObjectSid_U;
-static gint ett_x509ce_EntrustVersionInfo;
-static gint ett_x509ce_EntrustInfoFlags;
-static gint ett_x509ce_NFTypes;
-static gint ett_x509ce_ScramblerCapabilities;
+static int ett_x509ce_AuthorityKeyIdentifier;
+static int ett_x509ce_KeyUsage;
+static int ett_x509ce_KeyPurposeIDs;
+static int ett_x509ce_PrivateKeyUsagePeriod;
+static int ett_x509ce_CertificatePoliciesSyntax;
+static int ett_x509ce_PolicyInformation;
+static int ett_x509ce_SEQUENCE_SIZE_1_MAX_OF_PolicyQualifierInfo;
+static int ett_x509ce_PolicyQualifierInfo;
+static int ett_x509ce_PolicyMappingsSyntax;
+static int ett_x509ce_PolicyMappingsSyntax_item;
+static int ett_x509ce_GeneralNames;
+static int ett_x509ce_GeneralName;
+static int ett_x509ce_OtherName;
+static int ett_x509ce_EDIPartyName;
+static int ett_x509ce_AttributesSyntax;
+static int ett_x509ce_BasicConstraintsSyntax;
+static int ett_x509ce_NameConstraintsSyntax;
+static int ett_x509ce_GeneralSubtrees;
+static int ett_x509ce_GeneralSubtree;
+static int ett_x509ce_PolicyConstraintsSyntax;
+static int ett_x509ce_CRLScopeSyntax;
+static int ett_x509ce_PerAuthorityScope;
+static int ett_x509ce_OnlyCertificateTypes;
+static int ett_x509ce_NumberRange;
+static int ett_x509ce_BaseRevocationInfo;
+static int ett_x509ce_StatusReferrals;
+static int ett_x509ce_StatusReferral;
+static int ett_x509ce_CRLReferral;
+static int ett_x509ce_DeltaRefInfo;
+static int ett_x509ce_DeltaInformation;
+static int ett_x509ce_CRLDistPointsSyntax;
+static int ett_x509ce_DistributionPoint;
+static int ett_x509ce_DistributionPointName;
+static int ett_x509ce_ReasonFlags;
+static int ett_x509ce_IssuingDistPointSyntax;
+static int ett_x509ce_ToBeRevokedSyntax;
+static int ett_x509ce_ToBeRevokedGroup;
+static int ett_x509ce_ReasonInfo;
+static int ett_x509ce_CertificateGroup;
+static int ett_x509ce_CertificateGroupNumberRange;
+static int ett_x509ce_CertificateSerialNumbers;
+static int ett_x509ce_RevokedGroupsSyntax;
+static int ett_x509ce_RevokedGroup;
+static int ett_x509ce_RevokedCertificateGroup;
+static int ett_x509ce_AAIssuingDistPointSyntax;
+static int ett_x509ce_CertificateExactAssertion;
+static int ett_x509ce_CertificateAssertion;
+static int ett_x509ce_AltNameType;
+static int ett_x509ce_CertPolicySet;
+static int ett_x509ce_CertificatePairExactAssertion;
+static int ett_x509ce_CertificatePairAssertion;
+static int ett_x509ce_CertificateListExactAssertion;
+static int ett_x509ce_CertificateListAssertion;
+static int ett_x509ce_PkiPathMatchSyntax;
+static int ett_x509ce_EnhancedCertificateAssertion;
+static int ett_x509ce_AltName;
+static int ett_x509ce_CertificateTemplate;
+static int ett_x509ce_NtdsCaSecurity;
+static int ett_x509ce_NtdsObjectSid_U;
+static int ett_x509ce_EntrustVersionInfo;
+static int ett_x509ce_EntrustInfoFlags;
+static int ett_x509ce_NFTypes;
+static int ett_x509ce_ScramblerCapabilities;
int
diff --git a/epan/dissectors/packet-x509if.c b/epan/dissectors/packet-x509if.c
index 841141383e..cb14cb1574 100644
--- a/epan/dissectors/packet-x509if.c
+++ b/epan/dissectors/packet-x509if.c
@@ -196,95 +196,95 @@ static int hf_x509if_AllowedSubset_oneLevel;
static int hf_x509if_AllowedSubset_wholeSubtree;
/* Initialize the subtree pointers */
-static gint ett_x509if_Attribute;
-static gint ett_x509if_T_values;
-static gint ett_x509if_T_valuesWithContext;
-static gint ett_x509if_T_valuesWithContext_item;
-static gint ett_x509if_SET_SIZE_1_MAX_OF_Context;
-static gint ett_x509if_Context;
-static gint ett_x509if_T_contextValues;
-static gint ett_x509if_AttributeValueAssertion;
-static gint ett_x509if_T_assertedContexts;
-static gint ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion;
-static gint ett_x509if_ContextAssertion;
-static gint ett_x509if_T_ca_contextValues;
-static gint ett_x509if_AttributeTypeAssertion;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion;
-static gint ett_x509if_Name;
-static gint ett_x509if_RDNSequence;
-static gint ett_x509if_RelativeDistinguishedName;
-static gint ett_x509if_AttributeTypeAndDistinguishedValue;
-static gint ett_x509if_T_valWithContext;
-static gint ett_x509if_T_valWithContext_item;
-static gint ett_x509if_SubtreeSpecification;
-static gint ett_x509if_ChopSpecification;
-static gint ett_x509if_T_chopSpecificExclusions;
-static gint ett_x509if_T_chopSpecificExclusions_item;
-static gint ett_x509if_Refinement;
-static gint ett_x509if_SET_OF_Refinement;
-static gint ett_x509if_DITStructureRule;
-static gint ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier;
-static gint ett_x509if_DITContentRule;
-static gint ett_x509if_T_auxiliaries;
-static gint ett_x509if_T_mandatory;
-static gint ett_x509if_T_optional;
-static gint ett_x509if_T_precluded;
-static gint ett_x509if_DITContextUse;
-static gint ett_x509if_T_mandatoryContexts;
-static gint ett_x509if_T_optionalContexts;
-static gint ett_x509if_SearchRuleDescription;
-static gint ett_x509if_SearchRule;
-static gint ett_x509if_SearchRuleId;
-static gint ett_x509if_AllowedSubset;
-static gint ett_x509if_RequestAttribute;
-static gint ett_x509if_T_ra_selectedValues;
-static gint ett_x509if_T_defaultValues;
-static gint ett_x509if_T_defaultValues_item;
-static gint ett_x509if_T_ra_values;
-static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse;
-static gint ett_x509if_ContextProfile;
-static gint ett_x509if_T_contextValue;
-static gint ett_x509if_ContextCombination;
-static gint ett_x509if_SEQUENCE_OF_ContextCombination;
-static gint ett_x509if_MatchingUse;
-static gint ett_x509if_AttributeCombination;
-static gint ett_x509if_SEQUENCE_OF_AttributeCombination;
-static gint ett_x509if_ResultAttribute;
-static gint ett_x509if_T_outputValues;
-static gint ett_x509if_T_selectedValues;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile;
-static gint ett_x509if_ControlOptions;
-static gint ett_x509if_EntryLimit;
-static gint ett_x509if_RelaxationPolicy;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping;
-static gint ett_x509if_MRMapping;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution;
-static gint ett_x509if_Mapping;
-static gint ett_x509if_MRSubstitution;
-static gint ett_x509if_T_specificExclusions;
-static gint ett_x509if_T_specificExclusions_item;
-static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute;
-static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType;
-static gint ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString;
-
-static proto_tree *top_of_dn = NULL;
-static proto_tree *top_of_rdn = NULL;
-
-static gboolean rdn_one_value = FALSE; /* have we seen one value in an RDN yet */
-static gboolean dn_one_rdn = FALSE; /* have we seen one RDN in a DN yet */
-static gboolean doing_attr = FALSE;
-
-static wmem_strbuf_t *last_dn_buf = NULL;
-static wmem_strbuf_t *last_rdn_buf = NULL;
+static int ett_x509if_Attribute;
+static int ett_x509if_T_values;
+static int ett_x509if_T_valuesWithContext;
+static int ett_x509if_T_valuesWithContext_item;
+static int ett_x509if_SET_SIZE_1_MAX_OF_Context;
+static int ett_x509if_Context;
+static int ett_x509if_T_contextValues;
+static int ett_x509if_AttributeValueAssertion;
+static int ett_x509if_T_assertedContexts;
+static int ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion;
+static int ett_x509if_ContextAssertion;
+static int ett_x509if_T_ca_contextValues;
+static int ett_x509if_AttributeTypeAssertion;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion;
+static int ett_x509if_Name;
+static int ett_x509if_RDNSequence;
+static int ett_x509if_RelativeDistinguishedName;
+static int ett_x509if_AttributeTypeAndDistinguishedValue;
+static int ett_x509if_T_valWithContext;
+static int ett_x509if_T_valWithContext_item;
+static int ett_x509if_SubtreeSpecification;
+static int ett_x509if_ChopSpecification;
+static int ett_x509if_T_chopSpecificExclusions;
+static int ett_x509if_T_chopSpecificExclusions_item;
+static int ett_x509if_Refinement;
+static int ett_x509if_SET_OF_Refinement;
+static int ett_x509if_DITStructureRule;
+static int ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier;
+static int ett_x509if_DITContentRule;
+static int ett_x509if_T_auxiliaries;
+static int ett_x509if_T_mandatory;
+static int ett_x509if_T_optional;
+static int ett_x509if_T_precluded;
+static int ett_x509if_DITContextUse;
+static int ett_x509if_T_mandatoryContexts;
+static int ett_x509if_T_optionalContexts;
+static int ett_x509if_SearchRuleDescription;
+static int ett_x509if_SearchRule;
+static int ett_x509if_SearchRuleId;
+static int ett_x509if_AllowedSubset;
+static int ett_x509if_RequestAttribute;
+static int ett_x509if_T_ra_selectedValues;
+static int ett_x509if_T_defaultValues;
+static int ett_x509if_T_defaultValues_item;
+static int ett_x509if_T_ra_values;
+static int ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse;
+static int ett_x509if_ContextProfile;
+static int ett_x509if_T_contextValue;
+static int ett_x509if_ContextCombination;
+static int ett_x509if_SEQUENCE_OF_ContextCombination;
+static int ett_x509if_MatchingUse;
+static int ett_x509if_AttributeCombination;
+static int ett_x509if_SEQUENCE_OF_AttributeCombination;
+static int ett_x509if_ResultAttribute;
+static int ett_x509if_T_outputValues;
+static int ett_x509if_T_selectedValues;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile;
+static int ett_x509if_ControlOptions;
+static int ett_x509if_EntryLimit;
+static int ett_x509if_RelaxationPolicy;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping;
+static int ett_x509if_MRMapping;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution;
+static int ett_x509if_Mapping;
+static int ett_x509if_MRSubstitution;
+static int ett_x509if_T_specificExclusions;
+static int ett_x509if_T_specificExclusions_item;
+static int ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute;
+static int ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType;
+static int ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString;
+
+static proto_tree *top_of_dn;
+static proto_tree *top_of_rdn;
+
+static gboolean rdn_one_value; /* have we seen one value in an RDN yet */
+static gboolean dn_one_rdn; /* have we seen one RDN in a DN yet */
+static gboolean doing_attr;
+
+static wmem_strbuf_t *last_dn_buf;
+static wmem_strbuf_t *last_rdn_buf;
static int ava_hf_index;
#define MAX_FMT_VALS 32
static value_string fmt_vals[MAX_FMT_VALS];
#define MAX_AVA_STR_LEN 64
-static char *last_ava = NULL;
+static char *last_ava;
static void
x509if_frame_end(void)
@@ -1047,7 +1047,7 @@ static const ber_choice_t Refinement_choice[] = {
int
dissect_x509if_Refinement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Refinement → Refinement/and → Refinement
+ // Refinement -> Refinement/and -> Refinement
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1491,7 +1491,7 @@ static const ber_choice_t ContextCombination_choice[] = {
int
dissect_x509if_ContextCombination(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // ContextCombination → ContextCombination/and → ContextCombination
+ // ContextCombination -> ContextCombination/and -> ContextCombination
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -1615,7 +1615,7 @@ static const ber_choice_t AttributeCombination_choice[] = {
int
dissect_x509if_AttributeCombination(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // AttributeCombination → AttributeCombination/and → AttributeCombination
+ // AttributeCombination -> AttributeCombination/and -> AttributeCombination
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c
index 5a54f328ef..f8c5056259 100644
--- a/epan/dissectors/packet-x509sat.c
+++ b/epan/dissectors/packet-x509sat.c
@@ -203,53 +203,53 @@ static int hf_x509sat_T_bitNamedDays_friday;
static int hf_x509sat_T_bitNamedDays_saturday;
/* Initialize the subtree pointers */
-static gint ett_x509sat_DirectoryString;
-static gint ett_x509sat_Guide;
-static gint ett_x509sat_Criteria;
-static gint ett_x509sat_SET_OF_Criteria;
-static gint ett_x509sat_CriteriaItem;
-static gint ett_x509sat_EnhancedGuide;
-static gint ett_x509sat_PostalAddress;
-static gint ett_x509sat_TelexNumber;
-static gint ett_x509sat_FacsimileTelephoneNumber;
-static gint ett_x509sat_PreferredDeliveryMethod;
-static gint ett_x509sat_PresentationAddress;
-static gint ett_x509sat_T_nAddresses;
-static gint ett_x509sat_ProtocolInformation;
-static gint ett_x509sat_T_profiles;
-static gint ett_x509sat_NameAndOptionalUID;
-static gint ett_x509sat_MultipleMatchingLocalities;
-static gint ett_x509sat_SEQUENCE_OF_AttributeValueAssertion;
-static gint ett_x509sat_SubstringAssertion;
-static gint ett_x509sat_SubstringAssertion_item;
-static gint ett_x509sat_CaseIgnoreListMatch;
-static gint ett_x509sat_OctetSubstringAssertion;
-static gint ett_x509sat_OctetSubstringAssertion_item;
-static gint ett_x509sat_ZonalSelect;
-static gint ett_x509sat_TimeSpecification;
-static gint ett_x509sat_T_time;
-static gint ett_x509sat_T_absolute;
-static gint ett_x509sat_SET_OF_Period;
-static gint ett_x509sat_Period;
-static gint ett_x509sat_SET_OF_DayTimeBand;
-static gint ett_x509sat_T_days;
-static gint ett_x509sat_T_intDay;
-static gint ett_x509sat_T_bitDay;
-static gint ett_x509sat_T_weeks;
-static gint ett_x509sat_T_intWeek;
-static gint ett_x509sat_T_bitWeek;
-static gint ett_x509sat_T_months;
-static gint ett_x509sat_T_intMonth;
-static gint ett_x509sat_T_bitMonth;
-static gint ett_x509sat_T_years;
-static gint ett_x509sat_XDayOf;
-static gint ett_x509sat_NamedDay;
-static gint ett_x509sat_T_bitNamedDays;
-static gint ett_x509sat_DayTimeBand;
-static gint ett_x509sat_DayTime;
-static gint ett_x509sat_TimeAssertion;
-static gint ett_x509sat_T_between;
-static gint ett_x509sat_LocaleContextSyntax;
+static int ett_x509sat_DirectoryString;
+static int ett_x509sat_Guide;
+static int ett_x509sat_Criteria;
+static int ett_x509sat_SET_OF_Criteria;
+static int ett_x509sat_CriteriaItem;
+static int ett_x509sat_EnhancedGuide;
+static int ett_x509sat_PostalAddress;
+static int ett_x509sat_TelexNumber;
+static int ett_x509sat_FacsimileTelephoneNumber;
+static int ett_x509sat_PreferredDeliveryMethod;
+static int ett_x509sat_PresentationAddress;
+static int ett_x509sat_T_nAddresses;
+static int ett_x509sat_ProtocolInformation;
+static int ett_x509sat_T_profiles;
+static int ett_x509sat_NameAndOptionalUID;
+static int ett_x509sat_MultipleMatchingLocalities;
+static int ett_x509sat_SEQUENCE_OF_AttributeValueAssertion;
+static int ett_x509sat_SubstringAssertion;
+static int ett_x509sat_SubstringAssertion_item;
+static int ett_x509sat_CaseIgnoreListMatch;
+static int ett_x509sat_OctetSubstringAssertion;
+static int ett_x509sat_OctetSubstringAssertion_item;
+static int ett_x509sat_ZonalSelect;
+static int ett_x509sat_TimeSpecification;
+static int ett_x509sat_T_time;
+static int ett_x509sat_T_absolute;
+static int ett_x509sat_SET_OF_Period;
+static int ett_x509sat_Period;
+static int ett_x509sat_SET_OF_DayTimeBand;
+static int ett_x509sat_T_days;
+static int ett_x509sat_T_intDay;
+static int ett_x509sat_T_bitDay;
+static int ett_x509sat_T_weeks;
+static int ett_x509sat_T_intWeek;
+static int ett_x509sat_T_bitWeek;
+static int ett_x509sat_T_months;
+static int ett_x509sat_T_intMonth;
+static int ett_x509sat_T_bitMonth;
+static int ett_x509sat_T_years;
+static int ett_x509sat_XDayOf;
+static int ett_x509sat_NamedDay;
+static int ett_x509sat_T_bitNamedDays;
+static int ett_x509sat_DayTimeBand;
+static int ett_x509sat_DayTime;
+static int ett_x509sat_TimeAssertion;
+static int ett_x509sat_T_between;
+static int ett_x509sat_LocaleContextSyntax;
/*--- Cyclic dependencies ---*/
@@ -432,7 +432,7 @@ static const ber_choice_t Criteria_choice[] = {
int
dissect_x509sat_Criteria(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // Criteria → Criteria/and → Criteria
+ // Criteria -> Criteria/and -> Criteria
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-xmcp.c b/epan/dissectors/packet-xmcp.c
index ea27386884..3806a4f286 100644
--- a/epan/dissectors/packet-xmcp.c
+++ b/epan/dissectors/packet-xmcp.c
@@ -298,16 +298,16 @@ static const value_string service_removed_reasons[] = {
/* Dissector state variables */
static guint16 xmcp_msg_type_method = XMCP_METHOD_ILLEGAL;
static guint16 xmcp_msg_type_class = XMCP_CLASS_RESERVED;
-static gboolean xmcp_msg_is_keepalive = FALSE;
+static gboolean xmcp_msg_is_keepalive;
static gint16 xmcp_service_protocol = -1;
static gint32 xmcp_service_port = -1;
-static proto_item *xmcp_it_service_port = NULL;
+static proto_item *xmcp_it_service_port;
static guint
get_xmcp_message_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
{
- return(XMCP_HDR_LEN + tvb_get_ntohs(tvb, offset+2));
+ return XMCP_HDR_LEN + tvb_get_ntohs(tvb, offset+2);
}
static guint16
@@ -317,7 +317,7 @@ get_xmcp_attr_padded_len(guint16 attr_length)
* As in STUN, all XMCP attributes report their length in bytes,
* but are padded to the next 4-byte multiple.
*/
- return((attr_length + 3) & 0xfffc);
+ return (attr_length + 3) & 0xfffc;
}
static guint16
@@ -337,11 +337,11 @@ get_xmcp_attr_fixed_len(guint16 xmcp_attr)
case XMCP_SUBSCRIPTION_ID:
case XMCP_SERVICE_REMOVED_REASON:
case XMCP_DOMAIN:
- return(4);
+ return 4;
case XMCP_SERVICE_IDENTITY:
- return(20);
+ return 20;
default:
- return(0);
+ return 0;
}
}
@@ -353,15 +353,15 @@ get_xmcp_attr_min_len(guint16 xmcp_attr)
case XMCP_NONCE:
case XMCP_CLIENT_NAME:
case XMCP_CLIENT_LABEL:
- return(1);
+ return 1;
case XMCP_ERROR_CODE:
- return(4);
+ return 4;
case XMCP_SERVICE_TRANSPORT:
- return(8); /* 4-byte fixed plus an IPv4 address */
+ return 8; /* 4-byte fixed plus an IPv4 address */
case XMCP_MESSAGE_INTEGRITY:
- return(20); /* HMAC-SHA1 */
+ return 20; /* HMAC-SHA1 */
default:
- return(get_xmcp_attr_fixed_len(xmcp_attr));
+ return get_xmcp_attr_fixed_len(xmcp_attr);
}
}
@@ -371,16 +371,16 @@ get_xmcp_attr_max_len(guint16 xmcp_attr) {
switch (xmcp_attr) {
case XMCP_SERVICE_TRANSPORT:
- return(20); /* 4-byte fixed plus an IPv6 address */
+ return 20; /* 4-byte fixed plus an IPv6 address */
case XMCP_MESSAGE_INTEGRITY:
- return(32); /* HMAC-SHA-256 */
+ return 32; /* HMAC-SHA-256 */
case XMCP_NONCE:
case XMCP_CLIENT_NAME:
case XMCP_CLIENT_LABEL:
- return(255);
+ return 255;
default:
fixed_len = get_xmcp_attr_fixed_len(xmcp_attr);
- return(fixed_len ? fixed_len : 0xffff);
+ return fixed_len ? fixed_len : 0xffff;
}
}
diff --git a/epan/dissectors/packet-xml.c b/epan/dissectors/packet-xml.c
index 7ea40497ec..4afabf34b1 100644
--- a/epan/dissectors/packet-xml.c
+++ b/epan/dissectors/packet-xml.c
@@ -74,7 +74,7 @@ static xml_ns_t xml_ns = {"xml", "/", -1, -1, -1, NULL, NULL, NULL};
static xml_ns_t unknown_ns = {"unknown", "?", -1, -1, -1, NULL, NULL, NULL};
static xml_ns_t *root_ns;
-static gboolean pref_heuristic_unicode = FALSE;
+static bool pref_heuristic_unicode;
static gint pref_default_encoding = IANA_CS_UTF_8;
diff --git a/epan/dissectors/packet-xmpp.c b/epan/dissectors/packet-xmpp.c
index 88932b61b5..66292be1b0 100644
--- a/epan/dissectors/packet-xmpp.c
+++ b/epan/dissectors/packet-xmpp.c
@@ -29,7 +29,7 @@ void proto_reg_handoff_xmpp(void);
int proto_xmpp;
-static gboolean xmpp_desegment = TRUE;
+static bool xmpp_desegment = true;
gint hf_xmpp_xmlns;
gint hf_xmpp_id;
diff --git a/epan/dissectors/packet-xnap.c b/epan/dissectors/packet-xnap.c
index 02c55e807e..0f0404ceff 100644
--- a/epan/dissectors/packet-xnap.c
+++ b/epan/dissectors/packet-xnap.c
@@ -15,7 +15,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref:
- * 3GPP TS 38.423 V17.7.0 (2023-12)
+ * 3GPP TS 38.423 V17.8.0 (2024-03)
*/
#include "config.h"
@@ -616,6 +616,10 @@ static int hf_xnap_primaryRATRestriction_nR_LEO;
static int hf_xnap_primaryRATRestriction_nR_MEO;
static int hf_xnap_primaryRATRestriction_nR_GEO;
static int hf_xnap_primaryRATRestriction_nR_OTHERSAT;
+static int hf_xnap_primaryRATRestriction_e_UTRA_LEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_MEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_GEO;
+static int hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT;
static int hf_xnap_primaryRATRestriction_reserved;
static int hf_xnap_secondaryRATRestriction_e_UTRA;
static int hf_xnap_secondaryRATRestriction_nR;
@@ -2383,863 +2387,863 @@ static gint ett_xnap_RLC_Bearer_Configuration;
static gint ett_xnap_SuccessfulHOReportContainer;
static gint ett_xnap_UERLFReportContainerLTEExtendBand;
static gint ett_xnap_MDTMode_EUTRA;
-static gint ett_xnap_PrivateIE_ID;
-static gint ett_xnap_ProtocolIE_Container;
-static gint ett_xnap_ProtocolIE_Field;
-static gint ett_xnap_ProtocolExtensionContainer;
-static gint ett_xnap_ProtocolExtensionField;
-static gint ett_xnap_PrivateIE_Container;
-static gint ett_xnap_PrivateIE_Field;
-static gint ett_xnap_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated;
-static gint ett_xnap_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated_Item;
-static gint ett_xnap_Additional_PDCP_Duplication_TNL_List;
-static gint ett_xnap_Additional_PDCP_Duplication_TNL_Item;
-static gint ett_xnap_Additional_UL_NG_U_TNLatUPF_Item;
-static gint ett_xnap_Additional_UL_NG_U_TNLatUPF_List;
-static gint ett_xnap_Additional_Measurement_Timing_Configuration_List;
-static gint ett_xnap_Additional_Measurement_Timing_Configuration_Item;
-static gint ett_xnap_Active_MBS_SessionInformation;
-static gint ett_xnap_AllocationandRetentionPriority;
-static gint ett_xnap_AllowedCAG_ID_List_perPLMN;
-static gint ett_xnap_AllowedPNI_NPN_ID_List;
-static gint ett_xnap_AllowedPNI_NPN_ID_Item;
-static gint ett_xnap_AlternativeQoSParaSetList;
-static gint ett_xnap_AlternativeQoSParaSetItem;
-static gint ett_xnap_AMF_Region_Information;
-static gint ett_xnap_GlobalAMF_Region_Information;
-static gint ett_xnap_AreaOfInterestInformation;
-static gint ett_xnap_AreaOfInterest_Item;
-static gint ett_xnap_AreaScopeOfMDT_NR;
-static gint ett_xnap_AreaScopeOfMDT_EUTRA;
-static gint ett_xnap_AreaScopeOfNeighCellsList;
-static gint ett_xnap_AreaScopeOfNeighCellsItem;
-static gint ett_xnap_AreaScopeOfQMC;
-static gint ett_xnap_AS_SecurityInformation;
-static gint ett_xnap_AssistanceDataForRANPaging;
-static gint ett_xnap_Associated_QoSFlowInfo_List;
-static gint ett_xnap_Associated_QoSFlowInfo_Item;
-static gint ett_xnap_AvailableRVQoEMetrics;
-static gint ett_xnap_BAPRoutingID;
-static gint ett_xnap_BeamMeasurementsReportConfiguration;
-static gint ett_xnap_BeamMeasurementsReportQuantity;
-static gint ett_xnap_BHInfoList;
-static gint ett_xnap_BHInfo_Item;
-static gint ett_xnap_BAPControlPDURLCCH_List;
-static gint ett_xnap_BAPControlPDURLCCH_Item;
-static gint ett_xnap_BluetoothMeasurementConfiguration;
-static gint ett_xnap_BluetoothMeasConfigNameList;
-static gint ett_xnap_BPLMN_ID_Info_EUTRA;
-static gint ett_xnap_BPLMN_ID_Info_EUTRA_Item;
-static gint ett_xnap_BPLMN_ID_Info_NR;
-static gint ett_xnap_BPLMN_ID_Info_NR_Item;
-static gint ett_xnap_BroadcastCAG_Identifier_List;
-static gint ett_xnap_BroadcastCAG_Identifier_Item;
-static gint ett_xnap_BroadcastNID_List;
-static gint ett_xnap_BroadcastNID_Item;
-static gint ett_xnap_BroadcastPLMNs;
-static gint ett_xnap_BroadcastEUTRAPLMNs;
-static gint ett_xnap_BroadcastPLMNinTAISupport_Item;
-static gint ett_xnap_BroadcastPNI_NPN_ID_Information;
-static gint ett_xnap_BroadcastPNI_NPN_ID_Information_Item;
-static gint ett_xnap_BroadcastSNPNID_List;
-static gint ett_xnap_BroadcastSNPNID;
-static gint ett_xnap_CapacityValueInfo;
-static gint ett_xnap_Cause;
-static gint ett_xnap_CellAssistanceInfo_NR;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNG_RANnode_OF_NR_CGI;
-static gint ett_xnap_CellAndCapacityAssistanceInfo_NR;
-static gint ett_xnap_CellAndCapacityAssistanceInfo_EUTRA;
-static gint ett_xnap_CellAssistanceInfo_EUTRA;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNG_RANnode_OF_E_UTRA_CGI;
-static gint ett_xnap_CellBasedMDT_NR;
-static gint ett_xnap_CellIdListforMDT_NR;
-static gint ett_xnap_CellBasedQMC;
-static gint ett_xnap_CellIdListforQMC;
-static gint ett_xnap_CellBasedMDT_EUTRA;
-static gint ett_xnap_CellIdListforMDT_EUTRA;
-static gint ett_xnap_CellMeasurementResult;
-static gint ett_xnap_CellMeasurementResult_Item;
-static gint ett_xnap_CellReplacingInfo;
-static gint ett_xnap_CellToReport;
-static gint ett_xnap_CellToReport_Item;
-static gint ett_xnap_Cell_Type_Choice;
-static gint ett_xnap_CHOConfiguration;
-static gint ett_xnap_CHOCandidateCell_List;
-static gint ett_xnap_CHOCandidateCell_Item;
-static gint ett_xnap_CHOExecutionCondition_List;
-static gint ett_xnap_CHOExecutionCondition_Item;
-static gint ett_xnap_CompositeAvailableCapacityGroup;
-static gint ett_xnap_CompositeAvailableCapacity;
-static gint ett_xnap_CHOinformation_Req;
-static gint ett_xnap_CHOinformation_Ack;
-static gint ett_xnap_CHOinformation_AddReq;
-static gint ett_xnap_CHOinformation_ModReq;
-static gint ett_xnap_Connectivity_Support;
-static gint ett_xnap_COUNT_PDCP_SN12;
-static gint ett_xnap_COUNT_PDCP_SN18;
-static gint ett_xnap_Coverage_Modification_List;
-static gint ett_xnap_Coverage_Modification_List_Item;
-static gint ett_xnap_CPTransportLayerInformation;
-static gint ett_xnap_CPACcandidatePSCells_list;
-static gint ett_xnap_CPACcandidatePSCells_item;
-static gint ett_xnap_CPAInformationRequest;
-static gint ett_xnap_CPAInformationAck;
-static gint ett_xnap_CPCInformationRequired;
-static gint ett_xnap_CPC_target_SN_required_list;
-static gint ett_xnap_CPC_target_SN_required_list_Item;
-static gint ett_xnap_CPCInformationConfirm;
-static gint ett_xnap_CPC_target_SN_confirm_list;
-static gint ett_xnap_CPC_target_SN_confirm_list_Item;
-static gint ett_xnap_CPAInformationModReq;
-static gint ett_xnap_CPAInformationModReqAck;
-static gint ett_xnap_CPACInformationModRequired;
-static gint ett_xnap_CPCInformationUpdate;
-static gint ett_xnap_CPC_target_SN_mod_list;
-static gint ett_xnap_CPC_target_SN_mod_item;
-static gint ett_xnap_CPCInformationUpdatePSCells_list;
-static gint ett_xnap_CPCInformationUpdatePSCells_item;
-static gint ett_xnap_CriticalityDiagnostics;
-static gint ett_xnap_CriticalityDiagnostics_IE_List;
-static gint ett_xnap_CriticalityDiagnostics_IE_List_item;
-static gint ett_xnap_CSI_RS_MTC_Configuration_List;
-static gint ett_xnap_CSI_RS_MTC_Configuration_Item;
-static gint ett_xnap_CSI_RS_Neighbour_List;
-static gint ett_xnap_CSI_RS_Neighbour_Item;
-static gint ett_xnap_CSI_RS_MTC_Neighbour_List;
-static gint ett_xnap_CSI_RS_MTC_Neighbour_Item;
-static gint ett_xnap_XnUAddressInfoperPDUSession_List;
-static gint ett_xnap_XnUAddressInfoperPDUSession_Item;
-static gint ett_xnap_DataForwardingInfoFromTargetE_UTRANnode;
-static gint ett_xnap_DataForwardingInfoFromTargetE_UTRANnode_List;
-static gint ett_xnap_DataForwardingInfoFromTargetE_UTRANnode_Item;
-static gint ett_xnap_QoSFlowsToBeForwarded_List;
-static gint ett_xnap_QoSFlowsToBeForwarded_Item;
-static gint ett_xnap_DataForwardingInfoFromTargetNGRANnode;
-static gint ett_xnap_QoSFLowsAcceptedToBeForwarded_List;
-static gint ett_xnap_QoSFLowsAcceptedToBeForwarded_Item;
-static gint ett_xnap_DataforwardingandOffloadingInfofromSource;
-static gint ett_xnap_QoSFLowsToBeForwarded_List;
-static gint ett_xnap_QoSFLowsToBeForwarded_Item;
-static gint ett_xnap_DataForwardingResponseDRBItemList;
-static gint ett_xnap_DataForwardingResponseDRBItem;
-static gint ett_xnap_DataTrafficResourceIndication;
-static gint ett_xnap_DAPSRequestInfo;
-static gint ett_xnap_DAPSResponseInfo_List;
-static gint ett_xnap_DAPSResponseInfo_Item;
-static gint ett_xnap_DLCountChoice;
-static gint ett_xnap_DLF1Terminating_BHInfo;
-static gint ett_xnap_DLNonF1Terminating_BHInfo;
-static gint ett_xnap_DRB_List;
-static gint ett_xnap_DRB_List_withCause;
-static gint ett_xnap_DRB_List_withCause_Item;
-static gint ett_xnap_DRBsSubjectToDLDiscarding_List;
-static gint ett_xnap_DRBsSubjectToDLDiscarding_Item;
-static gint ett_xnap_DRBsSubjectToEarlyStatusTransfer_List;
-static gint ett_xnap_DRBsSubjectToEarlyStatusTransfer_Item;
-static gint ett_xnap_DRBsSubjectToStatusTransfer_List;
-static gint ett_xnap_DRBsSubjectToStatusTransfer_Item;
-static gint ett_xnap_DRBBStatusTransferChoice;
-static gint ett_xnap_DRBBStatusTransfer12bitsSN;
-static gint ett_xnap_DRBBStatusTransfer18bitsSN;
-static gint ett_xnap_DRBToQoSFlowMapping_List;
-static gint ett_xnap_DRBToQoSFlowMapping_Item;
-static gint ett_xnap_DUF_Slot_Config_List;
-static gint ett_xnap_DUF_Slot_Config_Item;
-static gint ett_xnap_Dynamic5QIDescriptor;
-static gint ett_xnap_E_UTRA_CGI;
-static gint ett_xnap_E_UTRAMultibandInfoList;
-static gint ett_xnap_EUTRAPagingeDRXInformation;
-static gint ett_xnap_E_UTRAPRACHConfiguration;
-static gint ett_xnap_EndpointIPAddressAndPort;
-static gint ett_xnap_EventTriggered;
-static gint ett_xnap_EventTypeTrigger;
-static gint ett_xnap_EventL1;
-static gint ett_xnap_MeasurementThresholdL1LoggedMDT;
-static gint ett_xnap_ExcessPacketDelayThresholdConfiguration;
-static gint ett_xnap_ExcessPacketDelayThresholdItem;
-static gint ett_xnap_ExpectedUEActivityBehaviour;
-static gint ett_xnap_ExpectedUEBehaviour;
-static gint ett_xnap_ExpectedUEMovingTrajectory;
-static gint ett_xnap_ExpectedUEMovingTrajectoryItem;
-static gint ett_xnap_ExplicitFormat;
-static gint ett_xnap_ExtendedRATRestrictionInformation;
-static gint ett_xnap_ExtendedSliceSupportList;
-static gint ett_xnap_ExtTLAs;
-static gint ett_xnap_ExtTLA_Item;
-static gint ett_xnap_GTPTLAs;
-static gint ett_xnap_GTPTLA_Item;
-static gint ett_xnap_F1_TerminatingTopologyBHInformation;
-static gint ett_xnap_F1TerminatingBHInformation_List;
-static gint ett_xnap_F1TerminatingBHInformation_Item;
-static gint ett_xnap_FiveGProSeAuthorized;
-static gint ett_xnap_FiveGProSePC5QoSParameters;
-static gint ett_xnap_FiveGProSePC5QoSFlowList;
-static gint ett_xnap_FiveGProSePC5QoSFlowItem;
-static gint ett_xnap_FiveGProSePC5FlowBitRates;
-static gint ett_xnap_Flows_Mapped_To_DRB_List;
-static gint ett_xnap_Flows_Mapped_To_DRB_Item;
-static gint ett_xnap_FreqDomainHSNAconfiguration_List;
-static gint ett_xnap_FreqDomainHSNAconfiguration_List_Item;
-static gint ett_xnap_FreqDomainSlotHSNAconfiguration_List;
-static gint ett_xnap_FreqDomainSlotHSNAconfiguration_List_Item;
-static gint ett_xnap_GBRQoSFlowInfo;
-static gint ett_xnap_GlobalgNB_ID;
-static gint ett_xnap_GNB_DU_Cell_Resource_Configuration;
-static gint ett_xnap_GNB_ID_Choice;
-static gint ett_xnap_GNB_RadioResourceStatus;
-static gint ett_xnap_GlobalCell_ID;
-static gint ett_xnap_GlobalngeNB_ID;
-static gint ett_xnap_ENB_ID_Choice;
-static gint ett_xnap_GlobalNG_RANCell_ID;
-static gint ett_xnap_GlobalNG_RANNode_ID;
-static gint ett_xnap_GTPtunnelTransportLayerInformation;
-static gint ett_xnap_GUAMI;
-static gint ett_xnap_HSNASlotConfigList;
-static gint ett_xnap_HSNASlotConfigItem;
-static gint ett_xnap_IABCellInformation;
-static gint ett_xnap_IAB_DU_Cell_Resource_Configuration_Mode_Info;
-static gint ett_xnap_IAB_DU_Cell_Resource_Configuration_FDD_Info;
-static gint ett_xnap_IAB_DU_Cell_Resource_Configuration_TDD_Info;
-static gint ett_xnap_IAB_MT_Cell_List;
-static gint ett_xnap_IAB_MT_Cell_List_Item;
-static gint ett_xnap_IAB_QoS_Mapping_Information;
-static gint ett_xnap_IAB_STC_Info;
-static gint ett_xnap_IAB_STC_Info_List;
-static gint ett_xnap_IAB_STC_Info_Item;
-static gint ett_xnap_IAB_TNL_Address_Request;
-static gint ett_xnap_IABIPv6RequestType;
-static gint ett_xnap_IAB_TNL_Address_Response;
-static gint ett_xnap_IABAllocatedTNLAddress_List;
-static gint ett_xnap_IABAllocatedTNLAddress_Item;
-static gint ett_xnap_IABTNLAddress;
-static gint ett_xnap_IABTNLAddressesRequested;
-static gint ett_xnap_IABTNLAddressToRemove_List;
-static gint ett_xnap_IABTNLAddressToRemove_Item;
-static gint ett_xnap_IABTNLAddressException;
-static gint ett_xnap_IABTNLAddress_Item;
-static gint ett_xnap_ImmediateMDT_NR;
-static gint ett_xnap_ImplicitFormat;
-static gint ett_xnap_InitiatingCondition_FailureIndication;
-static gint ett_xnap_IntendedTDD_DL_ULConfiguration_NR;
-static gint ett_xnap_I_RNTI;
-static gint ett_xnap_Local_NG_RAN_Node_Identifier;
-static gint ett_xnap_Full_and_Short_I_RNTI_Profile_List;
-static gint ett_xnap_Full_I_RNTI_Profile_List;
-static gint ett_xnap_Short_I_RNTI_Profile_List;
-static gint ett_xnap_LastVisitedCell_Item;
-static gint ett_xnap_LastVisitedPSCellList;
-static gint ett_xnap_LastVisitedPSCellList_Item;
-static gint ett_xnap_SCGUEHistoryInformation;
-static gint ett_xnap_ListOfCells;
-static gint ett_xnap_CellsinAoI_Item;
-static gint ett_xnap_ListOfRANNodesinAoI;
-static gint ett_xnap_GlobalNG_RANNodesinAoI_Item;
-static gint ett_xnap_ListOfTAIsinAoI;
-static gint ett_xnap_TAIsinAoI_Item;
-static gint ett_xnap_LocationReportingInformation;
-static gint ett_xnap_LoggedEventTriggeredConfig;
-static gint ett_xnap_LoggedMDT_NR;
-static gint ett_xnap_LTEV2XServicesAuthorized;
-static gint ett_xnap_LTEUESidelinkAggregateMaximumBitRate;
-static gint ett_xnap_MDTAlignmentInfo;
-static gint ett_xnap_M1Configuration;
-static gint ett_xnap_M1PeriodicReporting;
-static gint ett_xnap_M1ThresholdEventA2;
-static gint ett_xnap_M4Configuration;
-static gint ett_xnap_M5Configuration;
-static gint ett_xnap_M6Configuration;
-static gint ett_xnap_M7Configuration;
-static gint ett_xnap_MaximumIPdatarate;
-static gint ett_xnap_MBSFNSubframeAllocation_E_UTRA;
-static gint ett_xnap_MBSFNSubframeInfo_E_UTRA;
-static gint ett_xnap_MBSFNSubframeInfo_E_UTRA_Item;
-static gint ett_xnap_MBS_MappingandDataForwardingRequestInfofromSource;
-static gint ett_xnap_MBS_MappingandDataForwardingRequestInfofromSource_Item;
-static gint ett_xnap_MBS_DataForwardingResponseInfofromTarget;
-static gint ett_xnap_MBS_DataForwardingResponseInfofromTarget_Item;
-static gint ett_xnap_MBS_QoSFlow_List;
-static gint ett_xnap_MBS_QoSFlowsToAdd_List;
-static gint ett_xnap_MBS_QoSFlowsToAdd_Item;
-static gint ett_xnap_MBS_ServiceArea;
-static gint ett_xnap_MBS_ServiceAreaCell_List;
-static gint ett_xnap_MBS_ServiceAreaInformation;
-static gint ett_xnap_MBS_ServiceAreaInformationList;
-static gint ett_xnap_MBS_ServiceAreaInformation_Item;
-static gint ett_xnap_MBS_ServiceAreaTAI_List;
-static gint ett_xnap_MBS_ServiceAreaTAI_Item;
-static gint ett_xnap_MBS_Session_ID;
-static gint ett_xnap_MBS_SessionAssociatedInformation;
-static gint ett_xnap_MBS_SessionAssociatedInformation_Item;
-static gint ett_xnap_MBS_SessionInformation_List;
-static gint ett_xnap_MBS_SessionInformation_Item;
-static gint ett_xnap_MBS_SessionInformationResponse_List;
-static gint ett_xnap_MBS_SessionInformationResponse_Item;
-static gint ett_xnap_MRB_ProgressInformation;
-static gint ett_xnap_MDT_Configuration;
-static gint ett_xnap_MDT_Configuration_NR;
-static gint ett_xnap_MDT_Configuration_EUTRA;
-static gint ett_xnap_MDTPLMNList;
-static gint ett_xnap_MDTPLMNModificationList;
-static gint ett_xnap_MDTMode_NR;
-static gint ett_xnap_MeasurementThresholdA2;
-static gint ett_xnap_MIMOPRBusageInformation;
-static gint ett_xnap_MobilityParametersModificationRange;
-static gint ett_xnap_MobilityParametersInformation;
-static gint ett_xnap_MobilityRestrictionList;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity;
-static gint ett_xnap_CNTypeRestrictionsForEquivalent;
-static gint ett_xnap_CNTypeRestrictionsForEquivalentItem;
-static gint ett_xnap_RAT_RestrictionsList;
-static gint ett_xnap_RAT_RestrictionsItem;
-static gint ett_xnap_RAT_RestrictionInformation;
-static gint ett_xnap_ForbiddenAreaList;
-static gint ett_xnap_ForbiddenAreaItem;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC;
-static gint ett_xnap_ServiceAreaList;
-static gint ett_xnap_ServiceAreaItem;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC;
-static gint ett_xnap_MR_DC_ResourceCoordinationInfo;
-static gint ett_xnap_NG_RAN_Node_ResourceCoordinationInfo;
-static gint ett_xnap_E_UTRA_ResourceCoordinationInfo;
-static gint ett_xnap_NR_ResourceCoordinationInfo;
-static gint ett_xnap_MessageOversizeNotification;
-static gint ett_xnap_MultiplexingInfo;
-static gint ett_xnap_NACellResourceConfigurationList;
-static gint ett_xnap_NACellResourceConfiguration_Item;
-static gint ett_xnap_NE_DC_TDM_Pattern;
-static gint ett_xnap_NeighbourInformation_E_UTRA;
-static gint ett_xnap_NeighbourInformation_E_UTRA_Item;
-static gint ett_xnap_NeighbourInformation_NR;
-static gint ett_xnap_NeighbourInformation_NR_Item;
-static gint ett_xnap_NeighbourInformation_NR_ModeInfo;
-static gint ett_xnap_NeighbourInformation_NR_ModeFDDInfo;
-static gint ett_xnap_NeighbourInformation_NR_ModeTDDInfo;
-static gint ett_xnap_Neighbour_NG_RAN_Node_List;
-static gint ett_xnap_Neighbour_NG_RAN_Node_Item;
-static gint ett_xnap_NRCarrierList;
-static gint ett_xnap_NRCarrierItem;
-static gint ett_xnap_NG_RAN_Cell_Identity;
-static gint ett_xnap_NG_RAN_CellPCI;
-static gint ett_xnap_NG_RANnode2SSBOffsetsModificationRange;
-static gint ett_xnap_NonDynamic5QIDescriptor;
-static gint ett_xnap_NG_eNB_RadioResourceStatus;
-static gint ett_xnap_TNLCapacityIndicator;
-static gint ett_xnap_Non_F1_TerminatingTopologyBHInformation;
-static gint ett_xnap_NonF1TerminatingBHInformation_List;
-static gint ett_xnap_NonF1TerminatingBHInformation_Item;
-static gint ett_xnap_NonUPTraffic;
-static gint ett_xnap_NPN_Broadcast_Information;
-static gint ett_xnap_NPN_Broadcast_Information_SNPN;
-static gint ett_xnap_NPN_Broadcast_Information_PNI_NPN;
-static gint ett_xnap_NPNMobilityInformation;
-static gint ett_xnap_NPNMobilityInformation_SNPN;
-static gint ett_xnap_NPNMobilityInformation_PNI_NPN;
-static gint ett_xnap_NPNPagingAssistanceInformation;
-static gint ett_xnap_NPNPagingAssistanceInformation_PNI_NPN;
-static gint ett_xnap_NPN_Support;
-static gint ett_xnap_NPN_Support_SNPN;
-static gint ett_xnap_NPRACHConfiguration;
-static gint ett_xnap_T_fdd_or_tdd;
-static gint ett_xnap_NPRACHConfiguration_FDD;
-static gint ett_xnap_NPRACHConfiguration_TDD;
-static gint ett_xnap_Non_AnchorCarrierFrequencylist;
-static gint ett_xnap_Non_AnchorCarrierFrequencylist_item;
-static gint ett_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea;
-static gint ett_xnap_NR_CGI;
-static gint ett_xnap_NR_U_Channel_List;
-static gint ett_xnap_NR_U_Channel_Item;
-static gint ett_xnap_NR_U_ChannelInfo_List;
-static gint ett_xnap_NR_U_ChannelInfo_Item;
-static gint ett_xnap_NRFrequencyBand_List;
-static gint ett_xnap_NRFrequencyBandItem;
-static gint ett_xnap_NRFrequencyInfo;
-static gint ett_xnap_NRModeInfo;
-static gint ett_xnap_NRModeInfoFDD;
-static gint ett_xnap_NRModeInfoTDD;
-static gint ett_xnap_NRPagingeDRXInformation;
-static gint ett_xnap_NRPagingeDRXInformationforRRCINACTIVE;
-static gint ett_xnap_NRTransmissionBandwidth;
-static gint ett_xnap_NRV2XServicesAuthorized;
-static gint ett_xnap_NRUESidelinkAggregateMaximumBitRate;
-static gint ett_xnap_PositioningInformation;
-static gint ett_xnap_PacketErrorRate;
-static gint ett_xnap_PEIPSassistanceInformation;
-static gint ett_xnap_PC5QoSParameters;
-static gint ett_xnap_PC5QoSFlowList;
-static gint ett_xnap_PC5QoSFlowItem;
-static gint ett_xnap_PC5FlowBitRates;
-static gint ett_xnap_PDCPChangeIndication;
-static gint ett_xnap_PDCPSNLength;
-static gint ett_xnap_PDUSessionAggregateMaximumBitRate;
-static gint ett_xnap_PDUSession_List;
-static gint ett_xnap_PDUSession_List_withCause;
-static gint ett_xnap_PDUSession_List_withCause_Item;
-static gint ett_xnap_PDUSession_List_withDataForwardingFromTarget;
-static gint ett_xnap_PDUSession_List_withDataForwardingFromTarget_Item;
-static gint ett_xnap_PDUSession_List_withDataForwardingRequest;
-static gint ett_xnap_PDUSession_List_withDataForwardingRequest_Item;
-static gint ett_xnap_PDUSessionResourcesAdmitted_List;
-static gint ett_xnap_PDUSessionResourcesAdmitted_Item;
-static gint ett_xnap_PDUSessionResourceAdmittedInfo;
-static gint ett_xnap_PDUSessionResourcesNotAdmitted_List;
-static gint ett_xnap_PDUSessionResourcesNotAdmitted_Item;
-static gint ett_xnap_PDUSessionResourcesToBeSetup_List;
-static gint ett_xnap_PDUSessionResourcesToBeSetup_Item;
-static gint ett_xnap_PDUSessionResourceSetupInfo_SNterminated;
-static gint ett_xnap_QoSFlowsToBeSetup_List_Setup_SNterminated;
-static gint ett_xnap_QoSFlowsToBeSetup_List_Setup_SNterminated_Item;
-static gint ett_xnap_PDUSessionResourceSetupResponseInfo_SNterminated;
-static gint ett_xnap_DRBsToBeSetupList_SetupResponse_SNterminated;
-static gint ett_xnap_DRBsToBeSetupList_SetupResponse_SNterminated_Item;
-static gint ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_SNterminated;
-static gint ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_SNterminated_Item;
-static gint ett_xnap_PDUSessionResourceSetupInfo_MNterminated;
-static gint ett_xnap_DRBsToBeSetupList_Setup_MNterminated;
-static gint ett_xnap_DRBsToBeSetupList_Setup_MNterminated_Item;
-static gint ett_xnap_QoSFlowsMappedtoDRB_Setup_MNterminated;
-static gint ett_xnap_QoSFlowsMappedtoDRB_Setup_MNterminated_Item;
-static gint ett_xnap_PDUSessionResourceSetupResponseInfo_MNterminated;
-static gint ett_xnap_DRBsAdmittedList_SetupResponse_MNterminated;
-static gint ett_xnap_DRBsAdmittedList_SetupResponse_MNterminated_Item;
-static gint ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_MNterminated;
-static gint ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_MNterminated_Item;
-static gint ett_xnap_PDUSessionResourceModificationInfo_SNterminated;
-static gint ett_xnap_QoSFlowsToBeSetup_List_Modified_SNterminated;
-static gint ett_xnap_QoSFlowsToBeSetup_List_Modified_SNterminated_Item;
-static gint ett_xnap_DRBsToBeModified_List_Modified_SNterminated;
-static gint ett_xnap_DRBsToBeModified_List_Modified_SNterminated_Item;
-static gint ett_xnap_PDUSessionResourceModificationResponseInfo_SNterminated;
-static gint ett_xnap_DRBsToBeModifiedList_ModificationResponse_SNterminated;
-static gint ett_xnap_DRBsToBeModifiedList_ModificationResponse_SNterminated_Item;
-static gint ett_xnap_PDUSessionResourceModificationInfo_MNterminated;
-static gint ett_xnap_DRBsToBeModifiedList_Modification_MNterminated;
-static gint ett_xnap_DRBsToBeModifiedList_Modification_MNterminated_Item;
-static gint ett_xnap_PDUSessionResourceModificationResponseInfo_MNterminated;
-static gint ett_xnap_DRBsAdmittedList_ModificationResponse_MNterminated;
-static gint ett_xnap_DRBsAdmittedList_ModificationResponse_MNterminated_Item;
-static gint ett_xnap_PDUSessionResourceChangeRequiredInfo_SNterminated;
-static gint ett_xnap_PDUSessionResourceChangeConfirmInfo_SNterminated;
-static gint ett_xnap_PDUSessionResourceChangeRequiredInfo_MNterminated;
-static gint ett_xnap_PDUSessionResourceChangeConfirmInfo_MNterminated;
-static gint ett_xnap_PDUSessionResourceModRqdInfo_SNterminated;
-static gint ett_xnap_DRBsToBeSetup_List_ModRqd_SNterminated;
-static gint ett_xnap_DRBsToBeSetup_List_ModRqd_SNterminated_Item;
-static gint ett_xnap_QoSFlowsSetupMappedtoDRB_ModRqd_SNterminated;
-static gint ett_xnap_QoSFlowsSetupMappedtoDRB_ModRqd_SNterminated_Item;
-static gint ett_xnap_DRBsToBeModified_List_ModRqd_SNterminated;
-static gint ett_xnap_DRBsToBeModified_List_ModRqd_SNterminated_Item;
-static gint ett_xnap_QoSFlowsModifiedMappedtoDRB_ModRqd_SNterminated;
-static gint ett_xnap_QoSFlowsModifiedMappedtoDRB_ModRqd_SNterminated_Item;
-static gint ett_xnap_PDUSessionResourceModConfirmInfo_SNterminated;
-static gint ett_xnap_DRBsAdmittedList_ModConfirm_SNterminated;
-static gint ett_xnap_DRBsAdmittedList_ModConfirm_SNterminated_Item;
-static gint ett_xnap_PDUSessionResourceModRqdInfo_MNterminated;
-static gint ett_xnap_DRBsToBeModified_List_ModRqd_MNterminated;
-static gint ett_xnap_DRBsToBeModified_List_ModRqd_MNterminated_Item;
-static gint ett_xnap_PDUSessionResourceModConfirmInfo_MNterminated;
-static gint ett_xnap_PDUSessionResourceBearerSetupCompleteInfo_SNterminated;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofDRBs_OF_DRBsToBeSetupList_BearerSetupComplete_SNterminated_Item;
-static gint ett_xnap_DRBsToBeSetupList_BearerSetupComplete_SNterminated_Item;
-static gint ett_xnap_PDUSessionResourceSecondaryRATUsageList;
-static gint ett_xnap_PDUSessionResourceSecondaryRATUsageItem;
-static gint ett_xnap_PDUSessionUsageReport;
-static gint ett_xnap_Periodical;
-static gint ett_xnap_PLMNAreaBasedQMC;
-static gint ett_xnap_PLMNListforQMC;
-static gint ett_xnap_PCIListForMDT;
-static gint ett_xnap_ProtectedE_UTRAResourceIndication;
-static gint ett_xnap_ProtectedE_UTRAResourceList;
-static gint ett_xnap_ProtectedE_UTRAResource_Item;
-static gint ett_xnap_ProtectedE_UTRAFootprintTimePattern;
-static gint ett_xnap_QMCConfigInfo;
-static gint ett_xnap_UEAppLayerMeasInfoList;
-static gint ett_xnap_UEAppLayerMeasInfo_Item;
-static gint ett_xnap_QoSCharacteristics;
-static gint ett_xnap_QoSFlowLevelQoSParameters;
-static gint ett_xnap_QoSFlowNotificationControlIndicationInfo;
-static gint ett_xnap_QoSFlowNotify_Item;
-static gint ett_xnap_QoSFlows_List;
-static gint ett_xnap_QoSFlow_Item;
-static gint ett_xnap_QoSFlows_List_withCause;
-static gint ett_xnap_QoSFlowwithCause_Item;
-static gint ett_xnap_QoS_Mapping_Information;
-static gint ett_xnap_QoSFlowsAdmitted_List;
-static gint ett_xnap_QoSFlowsAdmitted_Item;
-static gint ett_xnap_QoSFlowsToBeSetup_List;
-static gint ett_xnap_QoSFlowsToBeSetup_Item;
-static gint ett_xnap_QoSFlowsUsageReportList;
-static gint ett_xnap_QoSFlowsUsageReport_Item;
-static gint ett_xnap_RACHReportInformation;
-static gint ett_xnap_RACHReportList_Item;
-static gint ett_xnap_RadioResourceStatus;
-static gint ett_xnap_RANAreaID;
-static gint ett_xnap_RANAreaID_List;
-static gint ett_xnap_RANPagingArea;
-static gint ett_xnap_RANPagingAreaChoice;
-static gint ett_xnap_RANPagingAttemptInfo;
-static gint ett_xnap_RBsetConfiguration;
-static gint ett_xnap_RedundantPDUSessionInformation;
-static gint ett_xnap_ReplacingCells;
-static gint ett_xnap_ReplacingCells_Item;
-static gint ett_xnap_ReportType;
-static gint ett_xnap_ReservedSubframePattern;
-static gint ett_xnap_ResetRequestTypeInfo;
-static gint ett_xnap_ResetRequestTypeInfo_Full;
-static gint ett_xnap_ResetRequestTypeInfo_Partial;
-static gint ett_xnap_ResetRequestPartialReleaseList;
-static gint ett_xnap_ResetRequestPartialReleaseItem;
-static gint ett_xnap_ResetResponseTypeInfo;
-static gint ett_xnap_ResetResponseTypeInfo_Full;
-static gint ett_xnap_ResetResponseTypeInfo_Partial;
-static gint ett_xnap_ResetResponsePartialReleaseList;
-static gint ett_xnap_ResetResponsePartialReleaseItem;
-static gint ett_xnap_RLC_Status;
-static gint ett_xnap_RLCDuplicationInformation;
-static gint ett_xnap_RLCDuplicationStateList;
-static gint ett_xnap_RLCDuplicationState_Item;
-static gint ett_xnap_RRCConnections;
-static gint ett_xnap_RRCReestab_initiated;
-static gint ett_xnap_RRCReestab_Initiated_Reporting;
-static gint ett_xnap_RRCReestab_Initiated_Reporting_wo_UERLFReport;
-static gint ett_xnap_RRCReestab_Initiated_Reporting_with_UERLFReport;
-static gint ett_xnap_RRCSetup_initiated;
-static gint ett_xnap_RRCSetup_Initiated_Reporting;
-static gint ett_xnap_RRCSetup_Initiated_Reporting_with_UERLFReport;
-static gint ett_xnap_S_NSSAIListQoE;
-static gint ett_xnap_S_BasedMDT;
-static gint ett_xnap_SecondarydataForwardingInfoFromTarget_Item;
-static gint ett_xnap_SecondarydataForwardingInfoFromTarget_List;
-static gint ett_xnap_SDTSupportRequest;
-static gint ett_xnap_SDTPartialUEContextInfo;
-static gint ett_xnap_SDT_DRBsToBeSetupList;
-static gint ett_xnap_SDT_DRBsToBeSetupList_Item;
-static gint ett_xnap_SDT_SRBsToBeSetupList;
-static gint ett_xnap_SDT_SRBsToBeSetupList_Item;
-static gint ett_xnap_SDTDataForwardingDRBList;
-static gint ett_xnap_SDTDataForwardingDRBList_Item;
-static gint ett_xnap_SecondaryRATUsageInformation;
-static gint ett_xnap_SecurityIndication;
-static gint ett_xnap_SecurityResult;
-static gint ett_xnap_SensorMeasurementConfiguration;
-static gint ett_xnap_SensorMeasConfigNameList;
-static gint ett_xnap_SensorName;
-static gint ett_xnap_ServedCellInformation_E_UTRA;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN;
-static gint ett_xnap_ServedCellInformation_E_UTRA_perBPLMN;
-static gint ett_xnap_ServedCellInformation_E_UTRA_ModeInfo;
-static gint ett_xnap_ServedCellInformation_E_UTRA_FDDInfo;
-static gint ett_xnap_ServedCellInformation_E_UTRA_TDDInfo;
-static gint ett_xnap_ServedCells_E_UTRA;
-static gint ett_xnap_ServedCells_E_UTRA_Item;
-static gint ett_xnap_ServedCellsToUpdate_E_UTRA;
-static gint ett_xnap_ServedCells_ToModify_E_UTRA;
-static gint ett_xnap_ServedCells_ToModify_E_UTRA_Item;
-static gint ett_xnap_ServedCellInformation_NR;
-static gint ett_xnap_SFN_Offset;
-static gint ett_xnap_ServedCells_NR;
-static gint ett_xnap_ServedCells_NR_Item;
-static gint ett_xnap_ServedCells_ToModify_NR;
-static gint ett_xnap_ServedCells_ToModify_NR_Item;
-static gint ett_xnap_ServedCellSpecificInfoReq_NR;
-static gint ett_xnap_ServedCellSpecificInfoReq_NR_Item;
-static gint ett_xnap_ServedCellsToUpdate_NR;
-static gint ett_xnap_SharedResourceType;
-static gint ett_xnap_SharedResourceType_UL_OnlySharing;
-static gint ett_xnap_SharedResourceType_ULDL_Sharing;
-static gint ett_xnap_SharedResourceType_ULDL_Sharing_UL_Resources;
-static gint ett_xnap_SharedResourceType_ULDL_Sharing_UL_ResourcesChanged;
-static gint ett_xnap_SharedResourceType_ULDL_Sharing_DL_Resources;
-static gint ett_xnap_SharedResourceType_ULDL_Sharing_DL_ResourcesChanged;
-static gint ett_xnap_SliceAvailableCapacity;
-static gint ett_xnap_SliceAvailableCapacity_Item;
-static gint ett_xnap_SNSSAIAvailableCapacity_List;
-static gint ett_xnap_SNSSAIAvailableCapacity_Item;
-static gint ett_xnap_SliceRadioResourceStatus_List;
-static gint ett_xnap_SliceRadioResourceStatus_Item;
-static gint ett_xnap_SNSSAIRadioResourceStatus_List;
-static gint ett_xnap_SNSSAIRadioResourceStatus_Item;
-static gint ett_xnap_SliceSupport_List;
-static gint ett_xnap_SliceToReport_List;
-static gint ett_xnap_SliceToReport_List_Item;
-static gint ett_xnap_SNSSAI_list;
-static gint ett_xnap_SNSSAI_Item;
-static gint ett_xnap_SlotConfiguration_List;
-static gint ett_xnap_SlotConfiguration_List_Item;
-static gint ett_xnap_S_NSSAI;
-static gint ett_xnap_SpecialSubframeInfo_E_UTRA;
-static gint ett_xnap_SSBAreaCapacityValue_List;
-static gint ett_xnap_SSBAreaCapacityValue_List_Item;
-static gint ett_xnap_SSBAreaRadioResourceStatus_List;
-static gint ett_xnap_SSBAreaRadioResourceStatus_List_Item;
-static gint ett_xnap_SSB_Coverage_Modification_List;
-static gint ett_xnap_SSB_Coverage_Modification_List_Item;
-static gint ett_xnap_SSB_PositionsInBurst;
-static gint ett_xnap_SSBOffsets_List;
-static gint ett_xnap_SSBOffsets_Item;
-static gint ett_xnap_SSBOffsetInformation;
-static gint ett_xnap_SSBOffsetModificationRange;
-static gint ett_xnap_SSBToReport_List;
-static gint ett_xnap_SSBToReport_List_Item;
-static gint ett_xnap_SSB_transmissionBitmap;
-static gint ett_xnap_SuccessfulHOReportInformation;
-static gint ett_xnap_SuccessfulHOReportList_Item;
-static gint ett_xnap_SUL_Information;
-static gint ett_xnap_Supported_MBS_FSA_ID_List;
-static gint ett_xnap_SupportedSULBandList;
-static gint ett_xnap_SupportedSULBandItem;
-static gint ett_xnap_SymbolAllocation_in_Slot;
-static gint ett_xnap_SymbolAllocation_in_Slot_AllDL;
-static gint ett_xnap_SymbolAllocation_in_Slot_AllUL;
-static gint ett_xnap_SymbolAllocation_in_Slot_BothDLandUL;
-static gint ett_xnap_TABasedMDT;
-static gint ett_xnap_TAIBasedMDT;
-static gint ett_xnap_TAIListforMDT;
-static gint ett_xnap_TAIforMDT_Item;
-static gint ett_xnap_TAINSAGSupportList;
-static gint ett_xnap_TAINSAGSupportItem;
-static gint ett_xnap_TAISupport_List;
-static gint ett_xnap_TAISupport_Item;
-static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item;
-static gint ett_xnap_TAListforMDT;
-static gint ett_xnap_TABasedQMC;
-static gint ett_xnap_TAListforQMC;
-static gint ett_xnap_TAIBasedQMC;
-static gint ett_xnap_TAIListforQMC;
-static gint ett_xnap_TAI_Item;
-static gint ett_xnap_Target_CGI;
-static gint ett_xnap_TargetCellList;
-static gint ett_xnap_TargetCellList_Item;
-static gint ett_xnap_TimeSynchronizationAssistanceInformation;
-static gint ett_xnap_TNLConfigurationInfo;
-static gint ett_xnap_TNLA_To_Add_List;
-static gint ett_xnap_TNLA_To_Add_Item;
-static gint ett_xnap_TNLA_To_Update_List;
-static gint ett_xnap_TNLA_To_Update_Item;
-static gint ett_xnap_TNLA_To_Remove_List;
-static gint ett_xnap_TNLA_To_Remove_Item;
-static gint ett_xnap_TNLA_Setup_List;
-static gint ett_xnap_TNLA_Setup_Item;
-static gint ett_xnap_TNLA_Failed_To_Setup_List;
-static gint ett_xnap_TNLA_Failed_To_Setup_Item;
-static gint ett_xnap_TraceActivation;
-static gint ett_xnap_T_interfaces_to_trace;
-static gint ett_xnap_TrafficProfile;
-static gint ett_xnap_TrafficReleaseType;
-static gint ett_xnap_TrafficToBeReleaseInformation;
-static gint ett_xnap_TrafficToBeRelease_List;
-static gint ett_xnap_TrafficToBeRelease_Item;
-static gint ett_xnap_TSCTrafficCharacteristics;
-static gint ett_xnap_TSCAssistanceInformation;
-static gint ett_xnap_UEAggregateMaximumBitRate;
-static gint ett_xnap_UEAppLayerMeasConfigInfo;
-static gint ett_xnap_UEContextID;
-static gint ett_xnap_UEContextIDforRRCResume;
-static gint ett_xnap_UEContextIDforRRCReestablishment;
-static gint ett_xnap_UEContextInfoRetrUECtxtResp;
-static gint ett_xnap_UEHistoryInformation;
-static gint ett_xnap_UEHistoryInformationFromTheUE;
-static gint ett_xnap_UEIdentityIndexValue;
-static gint ett_xnap_UEIdentityIndexList_MBSGroupPaging;
-static gint ett_xnap_UEIdentityIndexList_MBSGroupPaging_Item;
-static gint ett_xnap_UEIdentityIndexList_MBSGroupPagingValue;
-static gint ett_xnap_UERadioCapabilityForPaging;
-static gint ett_xnap_UERANPagingIdentity;
-static gint ett_xnap_UERLFReportContainer;
-static gint ett_xnap_UERLFReportContainerLTEExtension;
-static gint ett_xnap_UESliceMaximumBitRateList;
-static gint ett_xnap_UESliceMaximumBitRate_Item;
-static gint ett_xnap_UESecurityCapabilities;
-static gint ett_xnap_T_nr_EncyptionAlgorithms;
-static gint ett_xnap_T_nr_IntegrityProtectionAlgorithms;
-static gint ett_xnap_T_e_utra_EncyptionAlgorithms;
-static gint ett_xnap_T_e_utra_IntegrityProtectionAlgorithms;
-static gint ett_xnap_ULConfiguration;
-static gint ett_xnap_ULF1Terminating_BHInfo;
-static gint ett_xnap_ULNonF1Terminating_BHInfo;
-static gint ett_xnap_UPTransportLayerInformation;
-static gint ett_xnap_UPTransportParameters;
-static gint ett_xnap_UPTransportParametersItem;
-static gint ett_xnap_VolumeTimedReportList;
-static gint ett_xnap_VolumeTimedReport_Item;
-static gint ett_xnap_WLANMeasurementConfiguration;
-static gint ett_xnap_WLANMeasConfigNameList;
-static gint ett_xnap_HandoverRequest;
-static gint ett_xnap_UEContextInfoHORequest;
-static gint ett_xnap_UEContextRefAtSN_HORequest;
-static gint ett_xnap_HandoverRequestAcknowledge;
-static gint ett_xnap_HandoverPreparationFailure;
-static gint ett_xnap_SNStatusTransfer;
-static gint ett_xnap_UEContextRelease;
-static gint ett_xnap_HandoverCancel;
-static gint ett_xnap_HandoverSuccess;
-static gint ett_xnap_ConditionalHandoverCancel;
-static gint ett_xnap_EarlyStatusTransfer;
-static gint ett_xnap_ProcedureStageChoice;
-static gint ett_xnap_FirstDLCount;
-static gint ett_xnap_DLDiscarding;
-static gint ett_xnap_RANPaging;
-static gint ett_xnap_RetrieveUEContextRequest;
-static gint ett_xnap_RetrieveUEContextResponse;
-static gint ett_xnap_RetrieveUEContextConfirm;
-static gint ett_xnap_RetrieveUEContextFailure;
-static gint ett_xnap_XnUAddressIndication;
-static gint ett_xnap_SNodeAdditionRequest;
-static gint ett_xnap_PDUSessionToBeAddedAddReq;
-static gint ett_xnap_PDUSessionToBeAddedAddReq_Item;
-static gint ett_xnap_SNodeAdditionRequestAcknowledge;
-static gint ett_xnap_PDUSessionAdmittedAddedAddReqAck;
-static gint ett_xnap_PDUSessionAdmittedAddedAddReqAck_Item;
-static gint ett_xnap_PDUSessionNotAdmittedAddReqAck;
-static gint ett_xnap_SNodeAdditionRequestReject;
-static gint ett_xnap_SNodeReconfigurationComplete;
-static gint ett_xnap_ResponseInfo_ReconfCompl;
-static gint ett_xnap_ResponseType_ReconfComplete;
-static gint ett_xnap_Configuration_successfully_applied;
-static gint ett_xnap_Configuration_rejected_by_M_NG_RANNode;
-static gint ett_xnap_SNodeModificationRequest;
-static gint ett_xnap_UEContextInfo_SNModRequest;
-static gint ett_xnap_PDUSessionsToBeAdded_SNModRequest_List;
-static gint ett_xnap_PDUSessionsToBeAdded_SNModRequest_Item;
-static gint ett_xnap_PDUSessionsToBeModified_SNModRequest_List;
-static gint ett_xnap_PDUSessionsToBeModified_SNModRequest_Item;
-static gint ett_xnap_PDUSessionsToBeReleased_SNModRequest_List;
-static gint ett_xnap_SNodeModificationRequestAcknowledge;
-static gint ett_xnap_PDUSessionAdmitted_SNModResponse;
-static gint ett_xnap_PDUSessionAdmittedToBeAddedSNModResponse;
-static gint ett_xnap_PDUSessionAdmittedToBeAddedSNModResponse_Item;
-static gint ett_xnap_PDUSessionAdmittedToBeModifiedSNModResponse;
-static gint ett_xnap_PDUSessionAdmittedToBeModifiedSNModResponse_Item;
-static gint ett_xnap_PDUSessionAdmittedToBeReleasedSNModResponse;
-static gint ett_xnap_PDUSessionNotAdmitted_SNModResponse;
-static gint ett_xnap_PDUSessionDataForwarding_SNModResponse;
-static gint ett_xnap_SNodeModificationRequestReject;
-static gint ett_xnap_SNodeModificationRequired;
-static gint ett_xnap_PDUSessionToBeModifiedSNModRequired;
-static gint ett_xnap_PDUSessionToBeModifiedSNModRequired_Item;
-static gint ett_xnap_PDUSessionToBeReleasedSNModRequired;
-static gint ett_xnap_SNodeModificationConfirm;
-static gint ett_xnap_PDUSessionAdmittedModSNModConfirm;
-static gint ett_xnap_PDUSessionAdmittedModSNModConfirm_Item;
-static gint ett_xnap_PDUSessionReleasedSNModConfirm;
-static gint ett_xnap_SNodeModificationRefuse;
-static gint ett_xnap_SNodeReleaseRequest;
-static gint ett_xnap_SNodeReleaseRequestAcknowledge;
-static gint ett_xnap_PDUSessionToBeReleasedList_RelReqAck;
-static gint ett_xnap_SNodeReleaseReject;
-static gint ett_xnap_SNodeReleaseRequired;
-static gint ett_xnap_PDUSessionToBeReleasedList_RelRqd;
-static gint ett_xnap_SNodeReleaseConfirm;
-static gint ett_xnap_PDUSessionReleasedList_RelConf;
-static gint ett_xnap_SNodeCounterCheckRequest;
-static gint ett_xnap_BearersSubjectToCounterCheck_List;
-static gint ett_xnap_BearersSubjectToCounterCheck_Item;
-static gint ett_xnap_SNodeChangeRequired;
-static gint ett_xnap_PDUSession_SNChangeRequired_List;
-static gint ett_xnap_PDUSession_SNChangeRequired_Item;
-static gint ett_xnap_SNodeChangeConfirm;
-static gint ett_xnap_PDUSession_SNChangeConfirm_List;
-static gint ett_xnap_PDUSession_SNChangeConfirm_Item;
-static gint ett_xnap_SNodeChangeRefuse;
-static gint ett_xnap_RRCTransfer;
-static gint ett_xnap_SplitSRB_RRCTransfer;
-static gint ett_xnap_UEReportRRCTransfer;
-static gint ett_xnap_FastMCGRecoveryRRCTransfer;
-static gint ett_xnap_SDT_SRB_between_NewNode_OldNode;
-static gint ett_xnap_NotificationControlIndication;
-static gint ett_xnap_PDUSessionResourcesNotifyList;
-static gint ett_xnap_PDUSessionResourcesNotify_Item;
-static gint ett_xnap_ActivityNotification;
-static gint ett_xnap_PDUSessionResourcesActivityNotifyList;
-static gint ett_xnap_PDUSessionResourcesActivityNotify_Item;
-static gint ett_xnap_QoSFlowsActivityNotifyList;
-static gint ett_xnap_QoSFlowsActivityNotifyItem;
-static gint ett_xnap_XnSetupRequest;
-static gint ett_xnap_XnSetupResponse;
-static gint ett_xnap_XnSetupFailure;
-static gint ett_xnap_NGRANNodeConfigurationUpdate;
-static gint ett_xnap_ConfigurationUpdateInitiatingNodeChoice;
-static gint ett_xnap_NGRANNodeConfigurationUpdateAcknowledge;
-static gint ett_xnap_RespondingNodeTypeConfigUpdateAck;
-static gint ett_xnap_RespondingNodeTypeConfigUpdateAck_ng_eNB;
-static gint ett_xnap_RespondingNodeTypeConfigUpdateAck_gNB;
-static gint ett_xnap_NGRANNodeConfigurationUpdateFailure;
-static gint ett_xnap_E_UTRA_NR_CellResourceCoordinationRequest;
-static gint ett_xnap_InitiatingNodeType_ResourceCoordRequest;
-static gint ett_xnap_ResourceCoordRequest_ng_eNB_initiated;
-static gint ett_xnap_ResourceCoordRequest_gNB_initiated;
-static gint ett_xnap_E_UTRA_NR_CellResourceCoordinationResponse;
-static gint ett_xnap_RespondingNodeType_ResourceCoordResponse;
-static gint ett_xnap_ResourceCoordResponse_ng_eNB_initiated;
-static gint ett_xnap_ResourceCoordResponse_gNB_initiated;
-static gint ett_xnap_SecondaryRATDataUsageReport;
-static gint ett_xnap_XnRemovalRequest;
-static gint ett_xnap_XnRemovalResponse;
-static gint ett_xnap_XnRemovalFailure;
-static gint ett_xnap_CellActivationRequest;
-static gint ett_xnap_ServedCellsToActivate;
-static gint ett_xnap_CellActivationResponse;
-static gint ett_xnap_ActivatedServedCells;
-static gint ett_xnap_CellActivationFailure;
-static gint ett_xnap_ResetRequest;
-static gint ett_xnap_ResetResponse;
-static gint ett_xnap_ErrorIndication;
-static gint ett_xnap_PrivateMessage;
-static gint ett_xnap_TraceStart;
-static gint ett_xnap_DeactivateTrace;
-static gint ett_xnap_FailureIndication;
-static gint ett_xnap_HandoverReport;
-static gint ett_xnap_ResourceStatusRequest;
-static gint ett_xnap_ResourceStatusResponse;
-static gint ett_xnap_ResourceStatusFailure;
-static gint ett_xnap_ResourceStatusUpdate;
-static gint ett_xnap_MobilityChangeRequest;
-static gint ett_xnap_MobilityChangeAcknowledge;
-static gint ett_xnap_MobilityChangeFailure;
-static gint ett_xnap_AccessAndMobilityIndication;
-static gint ett_xnap_CellTrafficTrace;
-static gint ett_xnap_RANMulticastGroupPaging;
-static gint ett_xnap_ScgFailureInformationReport;
-static gint ett_xnap_ScgFailureTransfer;
-static gint ett_xnap_F1CTrafficTransfer;
-static gint ett_xnap_IABTransportMigrationManagementRequest;
-static gint ett_xnap_TrafficToBeAddedList;
-static gint ett_xnap_TrafficToBeAdded_Item;
-static gint ett_xnap_TrafficToBeModifiedList;
-static gint ett_xnap_TrafficToBeModified_Item;
-static gint ett_xnap_IABTransportMigrationManagementResponse;
-static gint ett_xnap_TrafficAddedList;
-static gint ett_xnap_TrafficAdded_Item;
-static gint ett_xnap_TrafficModifiedList;
-static gint ett_xnap_TrafficModified_Item;
-static gint ett_xnap_TrafficNotAddedList;
-static gint ett_xnap_TrafficNotAdded_Item;
-static gint ett_xnap_TrafficNotModifiedList;
-static gint ett_xnap_TrafficNotModified_Item;
-static gint ett_xnap_TrafficReleasedList;
-static gint ett_xnap_TrafficReleased_Item;
-static gint ett_xnap_IABTransportMigrationManagementReject;
-static gint ett_xnap_IABTransportMigrationModificationRequest;
-static gint ett_xnap_TrafficRequiredToBeModifiedList;
-static gint ett_xnap_TrafficRequiredToBeModified_Item;
-static gint ett_xnap_IABTNLAddressToBeReleasedList;
-static gint ett_xnap_IABTNLAddressToBeReleased_Item;
-static gint ett_xnap_IABTransportMigrationModificationResponse;
-static gint ett_xnap_TrafficRequiredModifiedList;
-static gint ett_xnap_TrafficRequiredModified_Item;
-static gint ett_xnap_IABResourceCoordinationRequest;
-static gint ett_xnap_BoundaryNodeCellsList;
-static gint ett_xnap_BoundaryNodeCellsList_Item;
-static gint ett_xnap_ParentNodeCellsList;
-static gint ett_xnap_ParentNodeCellsList_Item;
-static gint ett_xnap_IABResourceCoordinationResponse;
-static gint ett_xnap_CPCCancel;
-static gint ett_xnap_PartialUEContextTransfer;
-static gint ett_xnap_PartialUEContextTransferAcknowledge;
-static gint ett_xnap_PartialUEContextTransferFailure;
-static gint ett_xnap_XnAP_PDU;
-static gint ett_xnap_InitiatingMessage;
-static gint ett_xnap_SuccessfulOutcome;
-static gint ett_xnap_UnsuccessfulOutcome;
+static int ett_xnap_PrivateIE_ID;
+static int ett_xnap_ProtocolIE_Container;
+static int ett_xnap_ProtocolIE_Field;
+static int ett_xnap_ProtocolExtensionContainer;
+static int ett_xnap_ProtocolExtensionField;
+static int ett_xnap_PrivateIE_Container;
+static int ett_xnap_PrivateIE_Field;
+static int ett_xnap_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated;
+static int ett_xnap_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated_Item;
+static int ett_xnap_Additional_PDCP_Duplication_TNL_List;
+static int ett_xnap_Additional_PDCP_Duplication_TNL_Item;
+static int ett_xnap_Additional_UL_NG_U_TNLatUPF_Item;
+static int ett_xnap_Additional_UL_NG_U_TNLatUPF_List;
+static int ett_xnap_Additional_Measurement_Timing_Configuration_List;
+static int ett_xnap_Additional_Measurement_Timing_Configuration_Item;
+static int ett_xnap_Active_MBS_SessionInformation;
+static int ett_xnap_AllocationandRetentionPriority;
+static int ett_xnap_AllowedCAG_ID_List_perPLMN;
+static int ett_xnap_AllowedPNI_NPN_ID_List;
+static int ett_xnap_AllowedPNI_NPN_ID_Item;
+static int ett_xnap_AlternativeQoSParaSetList;
+static int ett_xnap_AlternativeQoSParaSetItem;
+static int ett_xnap_AMF_Region_Information;
+static int ett_xnap_GlobalAMF_Region_Information;
+static int ett_xnap_AreaOfInterestInformation;
+static int ett_xnap_AreaOfInterest_Item;
+static int ett_xnap_AreaScopeOfMDT_NR;
+static int ett_xnap_AreaScopeOfMDT_EUTRA;
+static int ett_xnap_AreaScopeOfNeighCellsList;
+static int ett_xnap_AreaScopeOfNeighCellsItem;
+static int ett_xnap_AreaScopeOfQMC;
+static int ett_xnap_AS_SecurityInformation;
+static int ett_xnap_AssistanceDataForRANPaging;
+static int ett_xnap_Associated_QoSFlowInfo_List;
+static int ett_xnap_Associated_QoSFlowInfo_Item;
+static int ett_xnap_AvailableRVQoEMetrics;
+static int ett_xnap_BAPRoutingID;
+static int ett_xnap_BeamMeasurementsReportConfiguration;
+static int ett_xnap_BeamMeasurementsReportQuantity;
+static int ett_xnap_BHInfoList;
+static int ett_xnap_BHInfo_Item;
+static int ett_xnap_BAPControlPDURLCCH_List;
+static int ett_xnap_BAPControlPDURLCCH_Item;
+static int ett_xnap_BluetoothMeasurementConfiguration;
+static int ett_xnap_BluetoothMeasConfigNameList;
+static int ett_xnap_BPLMN_ID_Info_EUTRA;
+static int ett_xnap_BPLMN_ID_Info_EUTRA_Item;
+static int ett_xnap_BPLMN_ID_Info_NR;
+static int ett_xnap_BPLMN_ID_Info_NR_Item;
+static int ett_xnap_BroadcastCAG_Identifier_List;
+static int ett_xnap_BroadcastCAG_Identifier_Item;
+static int ett_xnap_BroadcastNID_List;
+static int ett_xnap_BroadcastNID_Item;
+static int ett_xnap_BroadcastPLMNs;
+static int ett_xnap_BroadcastEUTRAPLMNs;
+static int ett_xnap_BroadcastPLMNinTAISupport_Item;
+static int ett_xnap_BroadcastPNI_NPN_ID_Information;
+static int ett_xnap_BroadcastPNI_NPN_ID_Information_Item;
+static int ett_xnap_BroadcastSNPNID_List;
+static int ett_xnap_BroadcastSNPNID;
+static int ett_xnap_CapacityValueInfo;
+static int ett_xnap_Cause;
+static int ett_xnap_CellAssistanceInfo_NR;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNG_RANnode_OF_NR_CGI;
+static int ett_xnap_CellAndCapacityAssistanceInfo_NR;
+static int ett_xnap_CellAndCapacityAssistanceInfo_EUTRA;
+static int ett_xnap_CellAssistanceInfo_EUTRA;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNG_RANnode_OF_E_UTRA_CGI;
+static int ett_xnap_CellBasedMDT_NR;
+static int ett_xnap_CellIdListforMDT_NR;
+static int ett_xnap_CellBasedQMC;
+static int ett_xnap_CellIdListforQMC;
+static int ett_xnap_CellBasedMDT_EUTRA;
+static int ett_xnap_CellIdListforMDT_EUTRA;
+static int ett_xnap_CellMeasurementResult;
+static int ett_xnap_CellMeasurementResult_Item;
+static int ett_xnap_CellReplacingInfo;
+static int ett_xnap_CellToReport;
+static int ett_xnap_CellToReport_Item;
+static int ett_xnap_Cell_Type_Choice;
+static int ett_xnap_CHOConfiguration;
+static int ett_xnap_CHOCandidateCell_List;
+static int ett_xnap_CHOCandidateCell_Item;
+static int ett_xnap_CHOExecutionCondition_List;
+static int ett_xnap_CHOExecutionCondition_Item;
+static int ett_xnap_CompositeAvailableCapacityGroup;
+static int ett_xnap_CompositeAvailableCapacity;
+static int ett_xnap_CHOinformation_Req;
+static int ett_xnap_CHOinformation_Ack;
+static int ett_xnap_CHOinformation_AddReq;
+static int ett_xnap_CHOinformation_ModReq;
+static int ett_xnap_Connectivity_Support;
+static int ett_xnap_COUNT_PDCP_SN12;
+static int ett_xnap_COUNT_PDCP_SN18;
+static int ett_xnap_Coverage_Modification_List;
+static int ett_xnap_Coverage_Modification_List_Item;
+static int ett_xnap_CPTransportLayerInformation;
+static int ett_xnap_CPACcandidatePSCells_list;
+static int ett_xnap_CPACcandidatePSCells_item;
+static int ett_xnap_CPAInformationRequest;
+static int ett_xnap_CPAInformationAck;
+static int ett_xnap_CPCInformationRequired;
+static int ett_xnap_CPC_target_SN_required_list;
+static int ett_xnap_CPC_target_SN_required_list_Item;
+static int ett_xnap_CPCInformationConfirm;
+static int ett_xnap_CPC_target_SN_confirm_list;
+static int ett_xnap_CPC_target_SN_confirm_list_Item;
+static int ett_xnap_CPAInformationModReq;
+static int ett_xnap_CPAInformationModReqAck;
+static int ett_xnap_CPACInformationModRequired;
+static int ett_xnap_CPCInformationUpdate;
+static int ett_xnap_CPC_target_SN_mod_list;
+static int ett_xnap_CPC_target_SN_mod_item;
+static int ett_xnap_CPCInformationUpdatePSCells_list;
+static int ett_xnap_CPCInformationUpdatePSCells_item;
+static int ett_xnap_CriticalityDiagnostics;
+static int ett_xnap_CriticalityDiagnostics_IE_List;
+static int ett_xnap_CriticalityDiagnostics_IE_List_item;
+static int ett_xnap_CSI_RS_MTC_Configuration_List;
+static int ett_xnap_CSI_RS_MTC_Configuration_Item;
+static int ett_xnap_CSI_RS_Neighbour_List;
+static int ett_xnap_CSI_RS_Neighbour_Item;
+static int ett_xnap_CSI_RS_MTC_Neighbour_List;
+static int ett_xnap_CSI_RS_MTC_Neighbour_Item;
+static int ett_xnap_XnUAddressInfoperPDUSession_List;
+static int ett_xnap_XnUAddressInfoperPDUSession_Item;
+static int ett_xnap_DataForwardingInfoFromTargetE_UTRANnode;
+static int ett_xnap_DataForwardingInfoFromTargetE_UTRANnode_List;
+static int ett_xnap_DataForwardingInfoFromTargetE_UTRANnode_Item;
+static int ett_xnap_QoSFlowsToBeForwarded_List;
+static int ett_xnap_QoSFlowsToBeForwarded_Item;
+static int ett_xnap_DataForwardingInfoFromTargetNGRANnode;
+static int ett_xnap_QoSFLowsAcceptedToBeForwarded_List;
+static int ett_xnap_QoSFLowsAcceptedToBeForwarded_Item;
+static int ett_xnap_DataforwardingandOffloadingInfofromSource;
+static int ett_xnap_QoSFLowsToBeForwarded_List;
+static int ett_xnap_QoSFLowsToBeForwarded_Item;
+static int ett_xnap_DataForwardingResponseDRBItemList;
+static int ett_xnap_DataForwardingResponseDRBItem;
+static int ett_xnap_DataTrafficResourceIndication;
+static int ett_xnap_DAPSRequestInfo;
+static int ett_xnap_DAPSResponseInfo_List;
+static int ett_xnap_DAPSResponseInfo_Item;
+static int ett_xnap_DLCountChoice;
+static int ett_xnap_DLF1Terminating_BHInfo;
+static int ett_xnap_DLNonF1Terminating_BHInfo;
+static int ett_xnap_DRB_List;
+static int ett_xnap_DRB_List_withCause;
+static int ett_xnap_DRB_List_withCause_Item;
+static int ett_xnap_DRBsSubjectToDLDiscarding_List;
+static int ett_xnap_DRBsSubjectToDLDiscarding_Item;
+static int ett_xnap_DRBsSubjectToEarlyStatusTransfer_List;
+static int ett_xnap_DRBsSubjectToEarlyStatusTransfer_Item;
+static int ett_xnap_DRBsSubjectToStatusTransfer_List;
+static int ett_xnap_DRBsSubjectToStatusTransfer_Item;
+static int ett_xnap_DRBBStatusTransferChoice;
+static int ett_xnap_DRBBStatusTransfer12bitsSN;
+static int ett_xnap_DRBBStatusTransfer18bitsSN;
+static int ett_xnap_DRBToQoSFlowMapping_List;
+static int ett_xnap_DRBToQoSFlowMapping_Item;
+static int ett_xnap_DUF_Slot_Config_List;
+static int ett_xnap_DUF_Slot_Config_Item;
+static int ett_xnap_Dynamic5QIDescriptor;
+static int ett_xnap_E_UTRA_CGI;
+static int ett_xnap_E_UTRAMultibandInfoList;
+static int ett_xnap_EUTRAPagingeDRXInformation;
+static int ett_xnap_E_UTRAPRACHConfiguration;
+static int ett_xnap_EndpointIPAddressAndPort;
+static int ett_xnap_EventTriggered;
+static int ett_xnap_EventTypeTrigger;
+static int ett_xnap_EventL1;
+static int ett_xnap_MeasurementThresholdL1LoggedMDT;
+static int ett_xnap_ExcessPacketDelayThresholdConfiguration;
+static int ett_xnap_ExcessPacketDelayThresholdItem;
+static int ett_xnap_ExpectedUEActivityBehaviour;
+static int ett_xnap_ExpectedUEBehaviour;
+static int ett_xnap_ExpectedUEMovingTrajectory;
+static int ett_xnap_ExpectedUEMovingTrajectoryItem;
+static int ett_xnap_ExplicitFormat;
+static int ett_xnap_ExtendedRATRestrictionInformation;
+static int ett_xnap_ExtendedSliceSupportList;
+static int ett_xnap_ExtTLAs;
+static int ett_xnap_ExtTLA_Item;
+static int ett_xnap_GTPTLAs;
+static int ett_xnap_GTPTLA_Item;
+static int ett_xnap_F1_TerminatingTopologyBHInformation;
+static int ett_xnap_F1TerminatingBHInformation_List;
+static int ett_xnap_F1TerminatingBHInformation_Item;
+static int ett_xnap_FiveGProSeAuthorized;
+static int ett_xnap_FiveGProSePC5QoSParameters;
+static int ett_xnap_FiveGProSePC5QoSFlowList;
+static int ett_xnap_FiveGProSePC5QoSFlowItem;
+static int ett_xnap_FiveGProSePC5FlowBitRates;
+static int ett_xnap_Flows_Mapped_To_DRB_List;
+static int ett_xnap_Flows_Mapped_To_DRB_Item;
+static int ett_xnap_FreqDomainHSNAconfiguration_List;
+static int ett_xnap_FreqDomainHSNAconfiguration_List_Item;
+static int ett_xnap_FreqDomainSlotHSNAconfiguration_List;
+static int ett_xnap_FreqDomainSlotHSNAconfiguration_List_Item;
+static int ett_xnap_GBRQoSFlowInfo;
+static int ett_xnap_GlobalgNB_ID;
+static int ett_xnap_GNB_DU_Cell_Resource_Configuration;
+static int ett_xnap_GNB_ID_Choice;
+static int ett_xnap_GNB_RadioResourceStatus;
+static int ett_xnap_GlobalCell_ID;
+static int ett_xnap_GlobalngeNB_ID;
+static int ett_xnap_ENB_ID_Choice;
+static int ett_xnap_GlobalNG_RANCell_ID;
+static int ett_xnap_GlobalNG_RANNode_ID;
+static int ett_xnap_GTPtunnelTransportLayerInformation;
+static int ett_xnap_GUAMI;
+static int ett_xnap_HSNASlotConfigList;
+static int ett_xnap_HSNASlotConfigItem;
+static int ett_xnap_IABCellInformation;
+static int ett_xnap_IAB_DU_Cell_Resource_Configuration_Mode_Info;
+static int ett_xnap_IAB_DU_Cell_Resource_Configuration_FDD_Info;
+static int ett_xnap_IAB_DU_Cell_Resource_Configuration_TDD_Info;
+static int ett_xnap_IAB_MT_Cell_List;
+static int ett_xnap_IAB_MT_Cell_List_Item;
+static int ett_xnap_IAB_QoS_Mapping_Information;
+static int ett_xnap_IAB_STC_Info;
+static int ett_xnap_IAB_STC_Info_List;
+static int ett_xnap_IAB_STC_Info_Item;
+static int ett_xnap_IAB_TNL_Address_Request;
+static int ett_xnap_IABIPv6RequestType;
+static int ett_xnap_IAB_TNL_Address_Response;
+static int ett_xnap_IABAllocatedTNLAddress_List;
+static int ett_xnap_IABAllocatedTNLAddress_Item;
+static int ett_xnap_IABTNLAddress;
+static int ett_xnap_IABTNLAddressesRequested;
+static int ett_xnap_IABTNLAddressToRemove_List;
+static int ett_xnap_IABTNLAddressToRemove_Item;
+static int ett_xnap_IABTNLAddressException;
+static int ett_xnap_IABTNLAddress_Item;
+static int ett_xnap_ImmediateMDT_NR;
+static int ett_xnap_ImplicitFormat;
+static int ett_xnap_InitiatingCondition_FailureIndication;
+static int ett_xnap_IntendedTDD_DL_ULConfiguration_NR;
+static int ett_xnap_I_RNTI;
+static int ett_xnap_Local_NG_RAN_Node_Identifier;
+static int ett_xnap_Full_and_Short_I_RNTI_Profile_List;
+static int ett_xnap_Full_I_RNTI_Profile_List;
+static int ett_xnap_Short_I_RNTI_Profile_List;
+static int ett_xnap_LastVisitedCell_Item;
+static int ett_xnap_LastVisitedPSCellList;
+static int ett_xnap_LastVisitedPSCellList_Item;
+static int ett_xnap_SCGUEHistoryInformation;
+static int ett_xnap_ListOfCells;
+static int ett_xnap_CellsinAoI_Item;
+static int ett_xnap_ListOfRANNodesinAoI;
+static int ett_xnap_GlobalNG_RANNodesinAoI_Item;
+static int ett_xnap_ListOfTAIsinAoI;
+static int ett_xnap_TAIsinAoI_Item;
+static int ett_xnap_LocationReportingInformation;
+static int ett_xnap_LoggedEventTriggeredConfig;
+static int ett_xnap_LoggedMDT_NR;
+static int ett_xnap_LTEV2XServicesAuthorized;
+static int ett_xnap_LTEUESidelinkAggregateMaximumBitRate;
+static int ett_xnap_MDTAlignmentInfo;
+static int ett_xnap_M1Configuration;
+static int ett_xnap_M1PeriodicReporting;
+static int ett_xnap_M1ThresholdEventA2;
+static int ett_xnap_M4Configuration;
+static int ett_xnap_M5Configuration;
+static int ett_xnap_M6Configuration;
+static int ett_xnap_M7Configuration;
+static int ett_xnap_MaximumIPdatarate;
+static int ett_xnap_MBSFNSubframeAllocation_E_UTRA;
+static int ett_xnap_MBSFNSubframeInfo_E_UTRA;
+static int ett_xnap_MBSFNSubframeInfo_E_UTRA_Item;
+static int ett_xnap_MBS_MappingandDataForwardingRequestInfofromSource;
+static int ett_xnap_MBS_MappingandDataForwardingRequestInfofromSource_Item;
+static int ett_xnap_MBS_DataForwardingResponseInfofromTarget;
+static int ett_xnap_MBS_DataForwardingResponseInfofromTarget_Item;
+static int ett_xnap_MBS_QoSFlow_List;
+static int ett_xnap_MBS_QoSFlowsToAdd_List;
+static int ett_xnap_MBS_QoSFlowsToAdd_Item;
+static int ett_xnap_MBS_ServiceArea;
+static int ett_xnap_MBS_ServiceAreaCell_List;
+static int ett_xnap_MBS_ServiceAreaInformation;
+static int ett_xnap_MBS_ServiceAreaInformationList;
+static int ett_xnap_MBS_ServiceAreaInformation_Item;
+static int ett_xnap_MBS_ServiceAreaTAI_List;
+static int ett_xnap_MBS_ServiceAreaTAI_Item;
+static int ett_xnap_MBS_Session_ID;
+static int ett_xnap_MBS_SessionAssociatedInformation;
+static int ett_xnap_MBS_SessionAssociatedInformation_Item;
+static int ett_xnap_MBS_SessionInformation_List;
+static int ett_xnap_MBS_SessionInformation_Item;
+static int ett_xnap_MBS_SessionInformationResponse_List;
+static int ett_xnap_MBS_SessionInformationResponse_Item;
+static int ett_xnap_MRB_ProgressInformation;
+static int ett_xnap_MDT_Configuration;
+static int ett_xnap_MDT_Configuration_NR;
+static int ett_xnap_MDT_Configuration_EUTRA;
+static int ett_xnap_MDTPLMNList;
+static int ett_xnap_MDTPLMNModificationList;
+static int ett_xnap_MDTMode_NR;
+static int ett_xnap_MeasurementThresholdA2;
+static int ett_xnap_MIMOPRBusageInformation;
+static int ett_xnap_MobilityParametersModificationRange;
+static int ett_xnap_MobilityParametersInformation;
+static int ett_xnap_MobilityRestrictionList;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity;
+static int ett_xnap_CNTypeRestrictionsForEquivalent;
+static int ett_xnap_CNTypeRestrictionsForEquivalentItem;
+static int ett_xnap_RAT_RestrictionsList;
+static int ett_xnap_RAT_RestrictionsItem;
+static int ett_xnap_RAT_RestrictionInformation;
+static int ett_xnap_ForbiddenAreaList;
+static int ett_xnap_ForbiddenAreaItem;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC;
+static int ett_xnap_ServiceAreaList;
+static int ett_xnap_ServiceAreaItem;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC;
+static int ett_xnap_MR_DC_ResourceCoordinationInfo;
+static int ett_xnap_NG_RAN_Node_ResourceCoordinationInfo;
+static int ett_xnap_E_UTRA_ResourceCoordinationInfo;
+static int ett_xnap_NR_ResourceCoordinationInfo;
+static int ett_xnap_MessageOversizeNotification;
+static int ett_xnap_MultiplexingInfo;
+static int ett_xnap_NACellResourceConfigurationList;
+static int ett_xnap_NACellResourceConfiguration_Item;
+static int ett_xnap_NE_DC_TDM_Pattern;
+static int ett_xnap_NeighbourInformation_E_UTRA;
+static int ett_xnap_NeighbourInformation_E_UTRA_Item;
+static int ett_xnap_NeighbourInformation_NR;
+static int ett_xnap_NeighbourInformation_NR_Item;
+static int ett_xnap_NeighbourInformation_NR_ModeInfo;
+static int ett_xnap_NeighbourInformation_NR_ModeFDDInfo;
+static int ett_xnap_NeighbourInformation_NR_ModeTDDInfo;
+static int ett_xnap_Neighbour_NG_RAN_Node_List;
+static int ett_xnap_Neighbour_NG_RAN_Node_Item;
+static int ett_xnap_NRCarrierList;
+static int ett_xnap_NRCarrierItem;
+static int ett_xnap_NG_RAN_Cell_Identity;
+static int ett_xnap_NG_RAN_CellPCI;
+static int ett_xnap_NG_RANnode2SSBOffsetsModificationRange;
+static int ett_xnap_NonDynamic5QIDescriptor;
+static int ett_xnap_NG_eNB_RadioResourceStatus;
+static int ett_xnap_TNLCapacityIndicator;
+static int ett_xnap_Non_F1_TerminatingTopologyBHInformation;
+static int ett_xnap_NonF1TerminatingBHInformation_List;
+static int ett_xnap_NonF1TerminatingBHInformation_Item;
+static int ett_xnap_NonUPTraffic;
+static int ett_xnap_NPN_Broadcast_Information;
+static int ett_xnap_NPN_Broadcast_Information_SNPN;
+static int ett_xnap_NPN_Broadcast_Information_PNI_NPN;
+static int ett_xnap_NPNMobilityInformation;
+static int ett_xnap_NPNMobilityInformation_SNPN;
+static int ett_xnap_NPNMobilityInformation_PNI_NPN;
+static int ett_xnap_NPNPagingAssistanceInformation;
+static int ett_xnap_NPNPagingAssistanceInformation_PNI_NPN;
+static int ett_xnap_NPN_Support;
+static int ett_xnap_NPN_Support_SNPN;
+static int ett_xnap_NPRACHConfiguration;
+static int ett_xnap_T_fdd_or_tdd;
+static int ett_xnap_NPRACHConfiguration_FDD;
+static int ett_xnap_NPRACHConfiguration_TDD;
+static int ett_xnap_Non_AnchorCarrierFrequencylist;
+static int ett_xnap_Non_AnchorCarrierFrequencylist_item;
+static int ett_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea;
+static int ett_xnap_NR_CGI;
+static int ett_xnap_NR_U_Channel_List;
+static int ett_xnap_NR_U_Channel_Item;
+static int ett_xnap_NR_U_ChannelInfo_List;
+static int ett_xnap_NR_U_ChannelInfo_Item;
+static int ett_xnap_NRFrequencyBand_List;
+static int ett_xnap_NRFrequencyBandItem;
+static int ett_xnap_NRFrequencyInfo;
+static int ett_xnap_NRModeInfo;
+static int ett_xnap_NRModeInfoFDD;
+static int ett_xnap_NRModeInfoTDD;
+static int ett_xnap_NRPagingeDRXInformation;
+static int ett_xnap_NRPagingeDRXInformationforRRCINACTIVE;
+static int ett_xnap_NRTransmissionBandwidth;
+static int ett_xnap_NRV2XServicesAuthorized;
+static int ett_xnap_NRUESidelinkAggregateMaximumBitRate;
+static int ett_xnap_PositioningInformation;
+static int ett_xnap_PacketErrorRate;
+static int ett_xnap_PEIPSassistanceInformation;
+static int ett_xnap_PC5QoSParameters;
+static int ett_xnap_PC5QoSFlowList;
+static int ett_xnap_PC5QoSFlowItem;
+static int ett_xnap_PC5FlowBitRates;
+static int ett_xnap_PDCPChangeIndication;
+static int ett_xnap_PDCPSNLength;
+static int ett_xnap_PDUSessionAggregateMaximumBitRate;
+static int ett_xnap_PDUSession_List;
+static int ett_xnap_PDUSession_List_withCause;
+static int ett_xnap_PDUSession_List_withCause_Item;
+static int ett_xnap_PDUSession_List_withDataForwardingFromTarget;
+static int ett_xnap_PDUSession_List_withDataForwardingFromTarget_Item;
+static int ett_xnap_PDUSession_List_withDataForwardingRequest;
+static int ett_xnap_PDUSession_List_withDataForwardingRequest_Item;
+static int ett_xnap_PDUSessionResourcesAdmitted_List;
+static int ett_xnap_PDUSessionResourcesAdmitted_Item;
+static int ett_xnap_PDUSessionResourceAdmittedInfo;
+static int ett_xnap_PDUSessionResourcesNotAdmitted_List;
+static int ett_xnap_PDUSessionResourcesNotAdmitted_Item;
+static int ett_xnap_PDUSessionResourcesToBeSetup_List;
+static int ett_xnap_PDUSessionResourcesToBeSetup_Item;
+static int ett_xnap_PDUSessionResourceSetupInfo_SNterminated;
+static int ett_xnap_QoSFlowsToBeSetup_List_Setup_SNterminated;
+static int ett_xnap_QoSFlowsToBeSetup_List_Setup_SNterminated_Item;
+static int ett_xnap_PDUSessionResourceSetupResponseInfo_SNterminated;
+static int ett_xnap_DRBsToBeSetupList_SetupResponse_SNterminated;
+static int ett_xnap_DRBsToBeSetupList_SetupResponse_SNterminated_Item;
+static int ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_SNterminated;
+static int ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_SNterminated_Item;
+static int ett_xnap_PDUSessionResourceSetupInfo_MNterminated;
+static int ett_xnap_DRBsToBeSetupList_Setup_MNterminated;
+static int ett_xnap_DRBsToBeSetupList_Setup_MNterminated_Item;
+static int ett_xnap_QoSFlowsMappedtoDRB_Setup_MNterminated;
+static int ett_xnap_QoSFlowsMappedtoDRB_Setup_MNterminated_Item;
+static int ett_xnap_PDUSessionResourceSetupResponseInfo_MNterminated;
+static int ett_xnap_DRBsAdmittedList_SetupResponse_MNterminated;
+static int ett_xnap_DRBsAdmittedList_SetupResponse_MNterminated_Item;
+static int ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_MNterminated;
+static int ett_xnap_QoSFlowsMappedtoDRB_SetupResponse_MNterminated_Item;
+static int ett_xnap_PDUSessionResourceModificationInfo_SNterminated;
+static int ett_xnap_QoSFlowsToBeSetup_List_Modified_SNterminated;
+static int ett_xnap_QoSFlowsToBeSetup_List_Modified_SNterminated_Item;
+static int ett_xnap_DRBsToBeModified_List_Modified_SNterminated;
+static int ett_xnap_DRBsToBeModified_List_Modified_SNterminated_Item;
+static int ett_xnap_PDUSessionResourceModificationResponseInfo_SNterminated;
+static int ett_xnap_DRBsToBeModifiedList_ModificationResponse_SNterminated;
+static int ett_xnap_DRBsToBeModifiedList_ModificationResponse_SNterminated_Item;
+static int ett_xnap_PDUSessionResourceModificationInfo_MNterminated;
+static int ett_xnap_DRBsToBeModifiedList_Modification_MNterminated;
+static int ett_xnap_DRBsToBeModifiedList_Modification_MNterminated_Item;
+static int ett_xnap_PDUSessionResourceModificationResponseInfo_MNterminated;
+static int ett_xnap_DRBsAdmittedList_ModificationResponse_MNterminated;
+static int ett_xnap_DRBsAdmittedList_ModificationResponse_MNterminated_Item;
+static int ett_xnap_PDUSessionResourceChangeRequiredInfo_SNterminated;
+static int ett_xnap_PDUSessionResourceChangeConfirmInfo_SNterminated;
+static int ett_xnap_PDUSessionResourceChangeRequiredInfo_MNterminated;
+static int ett_xnap_PDUSessionResourceChangeConfirmInfo_MNterminated;
+static int ett_xnap_PDUSessionResourceModRqdInfo_SNterminated;
+static int ett_xnap_DRBsToBeSetup_List_ModRqd_SNterminated;
+static int ett_xnap_DRBsToBeSetup_List_ModRqd_SNterminated_Item;
+static int ett_xnap_QoSFlowsSetupMappedtoDRB_ModRqd_SNterminated;
+static int ett_xnap_QoSFlowsSetupMappedtoDRB_ModRqd_SNterminated_Item;
+static int ett_xnap_DRBsToBeModified_List_ModRqd_SNterminated;
+static int ett_xnap_DRBsToBeModified_List_ModRqd_SNterminated_Item;
+static int ett_xnap_QoSFlowsModifiedMappedtoDRB_ModRqd_SNterminated;
+static int ett_xnap_QoSFlowsModifiedMappedtoDRB_ModRqd_SNterminated_Item;
+static int ett_xnap_PDUSessionResourceModConfirmInfo_SNterminated;
+static int ett_xnap_DRBsAdmittedList_ModConfirm_SNterminated;
+static int ett_xnap_DRBsAdmittedList_ModConfirm_SNterminated_Item;
+static int ett_xnap_PDUSessionResourceModRqdInfo_MNterminated;
+static int ett_xnap_DRBsToBeModified_List_ModRqd_MNterminated;
+static int ett_xnap_DRBsToBeModified_List_ModRqd_MNterminated_Item;
+static int ett_xnap_PDUSessionResourceModConfirmInfo_MNterminated;
+static int ett_xnap_PDUSessionResourceBearerSetupCompleteInfo_SNterminated;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofDRBs_OF_DRBsToBeSetupList_BearerSetupComplete_SNterminated_Item;
+static int ett_xnap_DRBsToBeSetupList_BearerSetupComplete_SNterminated_Item;
+static int ett_xnap_PDUSessionResourceSecondaryRATUsageList;
+static int ett_xnap_PDUSessionResourceSecondaryRATUsageItem;
+static int ett_xnap_PDUSessionUsageReport;
+static int ett_xnap_Periodical;
+static int ett_xnap_PLMNAreaBasedQMC;
+static int ett_xnap_PLMNListforQMC;
+static int ett_xnap_PCIListForMDT;
+static int ett_xnap_ProtectedE_UTRAResourceIndication;
+static int ett_xnap_ProtectedE_UTRAResourceList;
+static int ett_xnap_ProtectedE_UTRAResource_Item;
+static int ett_xnap_ProtectedE_UTRAFootprintTimePattern;
+static int ett_xnap_QMCConfigInfo;
+static int ett_xnap_UEAppLayerMeasInfoList;
+static int ett_xnap_UEAppLayerMeasInfo_Item;
+static int ett_xnap_QoSCharacteristics;
+static int ett_xnap_QoSFlowLevelQoSParameters;
+static int ett_xnap_QoSFlowNotificationControlIndicationInfo;
+static int ett_xnap_QoSFlowNotify_Item;
+static int ett_xnap_QoSFlows_List;
+static int ett_xnap_QoSFlow_Item;
+static int ett_xnap_QoSFlows_List_withCause;
+static int ett_xnap_QoSFlowwithCause_Item;
+static int ett_xnap_QoS_Mapping_Information;
+static int ett_xnap_QoSFlowsAdmitted_List;
+static int ett_xnap_QoSFlowsAdmitted_Item;
+static int ett_xnap_QoSFlowsToBeSetup_List;
+static int ett_xnap_QoSFlowsToBeSetup_Item;
+static int ett_xnap_QoSFlowsUsageReportList;
+static int ett_xnap_QoSFlowsUsageReport_Item;
+static int ett_xnap_RACHReportInformation;
+static int ett_xnap_RACHReportList_Item;
+static int ett_xnap_RadioResourceStatus;
+static int ett_xnap_RANAreaID;
+static int ett_xnap_RANAreaID_List;
+static int ett_xnap_RANPagingArea;
+static int ett_xnap_RANPagingAreaChoice;
+static int ett_xnap_RANPagingAttemptInfo;
+static int ett_xnap_RBsetConfiguration;
+static int ett_xnap_RedundantPDUSessionInformation;
+static int ett_xnap_ReplacingCells;
+static int ett_xnap_ReplacingCells_Item;
+static int ett_xnap_ReportType;
+static int ett_xnap_ReservedSubframePattern;
+static int ett_xnap_ResetRequestTypeInfo;
+static int ett_xnap_ResetRequestTypeInfo_Full;
+static int ett_xnap_ResetRequestTypeInfo_Partial;
+static int ett_xnap_ResetRequestPartialReleaseList;
+static int ett_xnap_ResetRequestPartialReleaseItem;
+static int ett_xnap_ResetResponseTypeInfo;
+static int ett_xnap_ResetResponseTypeInfo_Full;
+static int ett_xnap_ResetResponseTypeInfo_Partial;
+static int ett_xnap_ResetResponsePartialReleaseList;
+static int ett_xnap_ResetResponsePartialReleaseItem;
+static int ett_xnap_RLC_Status;
+static int ett_xnap_RLCDuplicationInformation;
+static int ett_xnap_RLCDuplicationStateList;
+static int ett_xnap_RLCDuplicationState_Item;
+static int ett_xnap_RRCConnections;
+static int ett_xnap_RRCReestab_initiated;
+static int ett_xnap_RRCReestab_Initiated_Reporting;
+static int ett_xnap_RRCReestab_Initiated_Reporting_wo_UERLFReport;
+static int ett_xnap_RRCReestab_Initiated_Reporting_with_UERLFReport;
+static int ett_xnap_RRCSetup_initiated;
+static int ett_xnap_RRCSetup_Initiated_Reporting;
+static int ett_xnap_RRCSetup_Initiated_Reporting_with_UERLFReport;
+static int ett_xnap_S_NSSAIListQoE;
+static int ett_xnap_S_BasedMDT;
+static int ett_xnap_SecondarydataForwardingInfoFromTarget_Item;
+static int ett_xnap_SecondarydataForwardingInfoFromTarget_List;
+static int ett_xnap_SDTSupportRequest;
+static int ett_xnap_SDTPartialUEContextInfo;
+static int ett_xnap_SDT_DRBsToBeSetupList;
+static int ett_xnap_SDT_DRBsToBeSetupList_Item;
+static int ett_xnap_SDT_SRBsToBeSetupList;
+static int ett_xnap_SDT_SRBsToBeSetupList_Item;
+static int ett_xnap_SDTDataForwardingDRBList;
+static int ett_xnap_SDTDataForwardingDRBList_Item;
+static int ett_xnap_SecondaryRATUsageInformation;
+static int ett_xnap_SecurityIndication;
+static int ett_xnap_SecurityResult;
+static int ett_xnap_SensorMeasurementConfiguration;
+static int ett_xnap_SensorMeasConfigNameList;
+static int ett_xnap_SensorName;
+static int ett_xnap_ServedCellInformation_E_UTRA;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN;
+static int ett_xnap_ServedCellInformation_E_UTRA_perBPLMN;
+static int ett_xnap_ServedCellInformation_E_UTRA_ModeInfo;
+static int ett_xnap_ServedCellInformation_E_UTRA_FDDInfo;
+static int ett_xnap_ServedCellInformation_E_UTRA_TDDInfo;
+static int ett_xnap_ServedCells_E_UTRA;
+static int ett_xnap_ServedCells_E_UTRA_Item;
+static int ett_xnap_ServedCellsToUpdate_E_UTRA;
+static int ett_xnap_ServedCells_ToModify_E_UTRA;
+static int ett_xnap_ServedCells_ToModify_E_UTRA_Item;
+static int ett_xnap_ServedCellInformation_NR;
+static int ett_xnap_SFN_Offset;
+static int ett_xnap_ServedCells_NR;
+static int ett_xnap_ServedCells_NR_Item;
+static int ett_xnap_ServedCells_ToModify_NR;
+static int ett_xnap_ServedCells_ToModify_NR_Item;
+static int ett_xnap_ServedCellSpecificInfoReq_NR;
+static int ett_xnap_ServedCellSpecificInfoReq_NR_Item;
+static int ett_xnap_ServedCellsToUpdate_NR;
+static int ett_xnap_SharedResourceType;
+static int ett_xnap_SharedResourceType_UL_OnlySharing;
+static int ett_xnap_SharedResourceType_ULDL_Sharing;
+static int ett_xnap_SharedResourceType_ULDL_Sharing_UL_Resources;
+static int ett_xnap_SharedResourceType_ULDL_Sharing_UL_ResourcesChanged;
+static int ett_xnap_SharedResourceType_ULDL_Sharing_DL_Resources;
+static int ett_xnap_SharedResourceType_ULDL_Sharing_DL_ResourcesChanged;
+static int ett_xnap_SliceAvailableCapacity;
+static int ett_xnap_SliceAvailableCapacity_Item;
+static int ett_xnap_SNSSAIAvailableCapacity_List;
+static int ett_xnap_SNSSAIAvailableCapacity_Item;
+static int ett_xnap_SliceRadioResourceStatus_List;
+static int ett_xnap_SliceRadioResourceStatus_Item;
+static int ett_xnap_SNSSAIRadioResourceStatus_List;
+static int ett_xnap_SNSSAIRadioResourceStatus_Item;
+static int ett_xnap_SliceSupport_List;
+static int ett_xnap_SliceToReport_List;
+static int ett_xnap_SliceToReport_List_Item;
+static int ett_xnap_SNSSAI_list;
+static int ett_xnap_SNSSAI_Item;
+static int ett_xnap_SlotConfiguration_List;
+static int ett_xnap_SlotConfiguration_List_Item;
+static int ett_xnap_S_NSSAI;
+static int ett_xnap_SpecialSubframeInfo_E_UTRA;
+static int ett_xnap_SSBAreaCapacityValue_List;
+static int ett_xnap_SSBAreaCapacityValue_List_Item;
+static int ett_xnap_SSBAreaRadioResourceStatus_List;
+static int ett_xnap_SSBAreaRadioResourceStatus_List_Item;
+static int ett_xnap_SSB_Coverage_Modification_List;
+static int ett_xnap_SSB_Coverage_Modification_List_Item;
+static int ett_xnap_SSB_PositionsInBurst;
+static int ett_xnap_SSBOffsets_List;
+static int ett_xnap_SSBOffsets_Item;
+static int ett_xnap_SSBOffsetInformation;
+static int ett_xnap_SSBOffsetModificationRange;
+static int ett_xnap_SSBToReport_List;
+static int ett_xnap_SSBToReport_List_Item;
+static int ett_xnap_SSB_transmissionBitmap;
+static int ett_xnap_SuccessfulHOReportInformation;
+static int ett_xnap_SuccessfulHOReportList_Item;
+static int ett_xnap_SUL_Information;
+static int ett_xnap_Supported_MBS_FSA_ID_List;
+static int ett_xnap_SupportedSULBandList;
+static int ett_xnap_SupportedSULBandItem;
+static int ett_xnap_SymbolAllocation_in_Slot;
+static int ett_xnap_SymbolAllocation_in_Slot_AllDL;
+static int ett_xnap_SymbolAllocation_in_Slot_AllUL;
+static int ett_xnap_SymbolAllocation_in_Slot_BothDLandUL;
+static int ett_xnap_TABasedMDT;
+static int ett_xnap_TAIBasedMDT;
+static int ett_xnap_TAIListforMDT;
+static int ett_xnap_TAIforMDT_Item;
+static int ett_xnap_TAINSAGSupportList;
+static int ett_xnap_TAINSAGSupportItem;
+static int ett_xnap_TAISupport_List;
+static int ett_xnap_TAISupport_Item;
+static int ett_xnap_SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item;
+static int ett_xnap_TAListforMDT;
+static int ett_xnap_TABasedQMC;
+static int ett_xnap_TAListforQMC;
+static int ett_xnap_TAIBasedQMC;
+static int ett_xnap_TAIListforQMC;
+static int ett_xnap_TAI_Item;
+static int ett_xnap_Target_CGI;
+static int ett_xnap_TargetCellList;
+static int ett_xnap_TargetCellList_Item;
+static int ett_xnap_TimeSynchronizationAssistanceInformation;
+static int ett_xnap_TNLConfigurationInfo;
+static int ett_xnap_TNLA_To_Add_List;
+static int ett_xnap_TNLA_To_Add_Item;
+static int ett_xnap_TNLA_To_Update_List;
+static int ett_xnap_TNLA_To_Update_Item;
+static int ett_xnap_TNLA_To_Remove_List;
+static int ett_xnap_TNLA_To_Remove_Item;
+static int ett_xnap_TNLA_Setup_List;
+static int ett_xnap_TNLA_Setup_Item;
+static int ett_xnap_TNLA_Failed_To_Setup_List;
+static int ett_xnap_TNLA_Failed_To_Setup_Item;
+static int ett_xnap_TraceActivation;
+static int ett_xnap_T_interfaces_to_trace;
+static int ett_xnap_TrafficProfile;
+static int ett_xnap_TrafficReleaseType;
+static int ett_xnap_TrafficToBeReleaseInformation;
+static int ett_xnap_TrafficToBeRelease_List;
+static int ett_xnap_TrafficToBeRelease_Item;
+static int ett_xnap_TSCTrafficCharacteristics;
+static int ett_xnap_TSCAssistanceInformation;
+static int ett_xnap_UEAggregateMaximumBitRate;
+static int ett_xnap_UEAppLayerMeasConfigInfo;
+static int ett_xnap_UEContextID;
+static int ett_xnap_UEContextIDforRRCResume;
+static int ett_xnap_UEContextIDforRRCReestablishment;
+static int ett_xnap_UEContextInfoRetrUECtxtResp;
+static int ett_xnap_UEHistoryInformation;
+static int ett_xnap_UEHistoryInformationFromTheUE;
+static int ett_xnap_UEIdentityIndexValue;
+static int ett_xnap_UEIdentityIndexList_MBSGroupPaging;
+static int ett_xnap_UEIdentityIndexList_MBSGroupPaging_Item;
+static int ett_xnap_UEIdentityIndexList_MBSGroupPagingValue;
+static int ett_xnap_UERadioCapabilityForPaging;
+static int ett_xnap_UERANPagingIdentity;
+static int ett_xnap_UERLFReportContainer;
+static int ett_xnap_UERLFReportContainerLTEExtension;
+static int ett_xnap_UESliceMaximumBitRateList;
+static int ett_xnap_UESliceMaximumBitRate_Item;
+static int ett_xnap_UESecurityCapabilities;
+static int ett_xnap_T_nr_EncyptionAlgorithms;
+static int ett_xnap_T_nr_IntegrityProtectionAlgorithms;
+static int ett_xnap_T_e_utra_EncyptionAlgorithms;
+static int ett_xnap_T_e_utra_IntegrityProtectionAlgorithms;
+static int ett_xnap_ULConfiguration;
+static int ett_xnap_ULF1Terminating_BHInfo;
+static int ett_xnap_ULNonF1Terminating_BHInfo;
+static int ett_xnap_UPTransportLayerInformation;
+static int ett_xnap_UPTransportParameters;
+static int ett_xnap_UPTransportParametersItem;
+static int ett_xnap_VolumeTimedReportList;
+static int ett_xnap_VolumeTimedReport_Item;
+static int ett_xnap_WLANMeasurementConfiguration;
+static int ett_xnap_WLANMeasConfigNameList;
+static int ett_xnap_HandoverRequest;
+static int ett_xnap_UEContextInfoHORequest;
+static int ett_xnap_UEContextRefAtSN_HORequest;
+static int ett_xnap_HandoverRequestAcknowledge;
+static int ett_xnap_HandoverPreparationFailure;
+static int ett_xnap_SNStatusTransfer;
+static int ett_xnap_UEContextRelease;
+static int ett_xnap_HandoverCancel;
+static int ett_xnap_HandoverSuccess;
+static int ett_xnap_ConditionalHandoverCancel;
+static int ett_xnap_EarlyStatusTransfer;
+static int ett_xnap_ProcedureStageChoice;
+static int ett_xnap_FirstDLCount;
+static int ett_xnap_DLDiscarding;
+static int ett_xnap_RANPaging;
+static int ett_xnap_RetrieveUEContextRequest;
+static int ett_xnap_RetrieveUEContextResponse;
+static int ett_xnap_RetrieveUEContextConfirm;
+static int ett_xnap_RetrieveUEContextFailure;
+static int ett_xnap_XnUAddressIndication;
+static int ett_xnap_SNodeAdditionRequest;
+static int ett_xnap_PDUSessionToBeAddedAddReq;
+static int ett_xnap_PDUSessionToBeAddedAddReq_Item;
+static int ett_xnap_SNodeAdditionRequestAcknowledge;
+static int ett_xnap_PDUSessionAdmittedAddedAddReqAck;
+static int ett_xnap_PDUSessionAdmittedAddedAddReqAck_Item;
+static int ett_xnap_PDUSessionNotAdmittedAddReqAck;
+static int ett_xnap_SNodeAdditionRequestReject;
+static int ett_xnap_SNodeReconfigurationComplete;
+static int ett_xnap_ResponseInfo_ReconfCompl;
+static int ett_xnap_ResponseType_ReconfComplete;
+static int ett_xnap_Configuration_successfully_applied;
+static int ett_xnap_Configuration_rejected_by_M_NG_RANNode;
+static int ett_xnap_SNodeModificationRequest;
+static int ett_xnap_UEContextInfo_SNModRequest;
+static int ett_xnap_PDUSessionsToBeAdded_SNModRequest_List;
+static int ett_xnap_PDUSessionsToBeAdded_SNModRequest_Item;
+static int ett_xnap_PDUSessionsToBeModified_SNModRequest_List;
+static int ett_xnap_PDUSessionsToBeModified_SNModRequest_Item;
+static int ett_xnap_PDUSessionsToBeReleased_SNModRequest_List;
+static int ett_xnap_SNodeModificationRequestAcknowledge;
+static int ett_xnap_PDUSessionAdmitted_SNModResponse;
+static int ett_xnap_PDUSessionAdmittedToBeAddedSNModResponse;
+static int ett_xnap_PDUSessionAdmittedToBeAddedSNModResponse_Item;
+static int ett_xnap_PDUSessionAdmittedToBeModifiedSNModResponse;
+static int ett_xnap_PDUSessionAdmittedToBeModifiedSNModResponse_Item;
+static int ett_xnap_PDUSessionAdmittedToBeReleasedSNModResponse;
+static int ett_xnap_PDUSessionNotAdmitted_SNModResponse;
+static int ett_xnap_PDUSessionDataForwarding_SNModResponse;
+static int ett_xnap_SNodeModificationRequestReject;
+static int ett_xnap_SNodeModificationRequired;
+static int ett_xnap_PDUSessionToBeModifiedSNModRequired;
+static int ett_xnap_PDUSessionToBeModifiedSNModRequired_Item;
+static int ett_xnap_PDUSessionToBeReleasedSNModRequired;
+static int ett_xnap_SNodeModificationConfirm;
+static int ett_xnap_PDUSessionAdmittedModSNModConfirm;
+static int ett_xnap_PDUSessionAdmittedModSNModConfirm_Item;
+static int ett_xnap_PDUSessionReleasedSNModConfirm;
+static int ett_xnap_SNodeModificationRefuse;
+static int ett_xnap_SNodeReleaseRequest;
+static int ett_xnap_SNodeReleaseRequestAcknowledge;
+static int ett_xnap_PDUSessionToBeReleasedList_RelReqAck;
+static int ett_xnap_SNodeReleaseReject;
+static int ett_xnap_SNodeReleaseRequired;
+static int ett_xnap_PDUSessionToBeReleasedList_RelRqd;
+static int ett_xnap_SNodeReleaseConfirm;
+static int ett_xnap_PDUSessionReleasedList_RelConf;
+static int ett_xnap_SNodeCounterCheckRequest;
+static int ett_xnap_BearersSubjectToCounterCheck_List;
+static int ett_xnap_BearersSubjectToCounterCheck_Item;
+static int ett_xnap_SNodeChangeRequired;
+static int ett_xnap_PDUSession_SNChangeRequired_List;
+static int ett_xnap_PDUSession_SNChangeRequired_Item;
+static int ett_xnap_SNodeChangeConfirm;
+static int ett_xnap_PDUSession_SNChangeConfirm_List;
+static int ett_xnap_PDUSession_SNChangeConfirm_Item;
+static int ett_xnap_SNodeChangeRefuse;
+static int ett_xnap_RRCTransfer;
+static int ett_xnap_SplitSRB_RRCTransfer;
+static int ett_xnap_UEReportRRCTransfer;
+static int ett_xnap_FastMCGRecoveryRRCTransfer;
+static int ett_xnap_SDT_SRB_between_NewNode_OldNode;
+static int ett_xnap_NotificationControlIndication;
+static int ett_xnap_PDUSessionResourcesNotifyList;
+static int ett_xnap_PDUSessionResourcesNotify_Item;
+static int ett_xnap_ActivityNotification;
+static int ett_xnap_PDUSessionResourcesActivityNotifyList;
+static int ett_xnap_PDUSessionResourcesActivityNotify_Item;
+static int ett_xnap_QoSFlowsActivityNotifyList;
+static int ett_xnap_QoSFlowsActivityNotifyItem;
+static int ett_xnap_XnSetupRequest;
+static int ett_xnap_XnSetupResponse;
+static int ett_xnap_XnSetupFailure;
+static int ett_xnap_NGRANNodeConfigurationUpdate;
+static int ett_xnap_ConfigurationUpdateInitiatingNodeChoice;
+static int ett_xnap_NGRANNodeConfigurationUpdateAcknowledge;
+static int ett_xnap_RespondingNodeTypeConfigUpdateAck;
+static int ett_xnap_RespondingNodeTypeConfigUpdateAck_ng_eNB;
+static int ett_xnap_RespondingNodeTypeConfigUpdateAck_gNB;
+static int ett_xnap_NGRANNodeConfigurationUpdateFailure;
+static int ett_xnap_E_UTRA_NR_CellResourceCoordinationRequest;
+static int ett_xnap_InitiatingNodeType_ResourceCoordRequest;
+static int ett_xnap_ResourceCoordRequest_ng_eNB_initiated;
+static int ett_xnap_ResourceCoordRequest_gNB_initiated;
+static int ett_xnap_E_UTRA_NR_CellResourceCoordinationResponse;
+static int ett_xnap_RespondingNodeType_ResourceCoordResponse;
+static int ett_xnap_ResourceCoordResponse_ng_eNB_initiated;
+static int ett_xnap_ResourceCoordResponse_gNB_initiated;
+static int ett_xnap_SecondaryRATDataUsageReport;
+static int ett_xnap_XnRemovalRequest;
+static int ett_xnap_XnRemovalResponse;
+static int ett_xnap_XnRemovalFailure;
+static int ett_xnap_CellActivationRequest;
+static int ett_xnap_ServedCellsToActivate;
+static int ett_xnap_CellActivationResponse;
+static int ett_xnap_ActivatedServedCells;
+static int ett_xnap_CellActivationFailure;
+static int ett_xnap_ResetRequest;
+static int ett_xnap_ResetResponse;
+static int ett_xnap_ErrorIndication;
+static int ett_xnap_PrivateMessage;
+static int ett_xnap_TraceStart;
+static int ett_xnap_DeactivateTrace;
+static int ett_xnap_FailureIndication;
+static int ett_xnap_HandoverReport;
+static int ett_xnap_ResourceStatusRequest;
+static int ett_xnap_ResourceStatusResponse;
+static int ett_xnap_ResourceStatusFailure;
+static int ett_xnap_ResourceStatusUpdate;
+static int ett_xnap_MobilityChangeRequest;
+static int ett_xnap_MobilityChangeAcknowledge;
+static int ett_xnap_MobilityChangeFailure;
+static int ett_xnap_AccessAndMobilityIndication;
+static int ett_xnap_CellTrafficTrace;
+static int ett_xnap_RANMulticastGroupPaging;
+static int ett_xnap_ScgFailureInformationReport;
+static int ett_xnap_ScgFailureTransfer;
+static int ett_xnap_F1CTrafficTransfer;
+static int ett_xnap_IABTransportMigrationManagementRequest;
+static int ett_xnap_TrafficToBeAddedList;
+static int ett_xnap_TrafficToBeAdded_Item;
+static int ett_xnap_TrafficToBeModifiedList;
+static int ett_xnap_TrafficToBeModified_Item;
+static int ett_xnap_IABTransportMigrationManagementResponse;
+static int ett_xnap_TrafficAddedList;
+static int ett_xnap_TrafficAdded_Item;
+static int ett_xnap_TrafficModifiedList;
+static int ett_xnap_TrafficModified_Item;
+static int ett_xnap_TrafficNotAddedList;
+static int ett_xnap_TrafficNotAdded_Item;
+static int ett_xnap_TrafficNotModifiedList;
+static int ett_xnap_TrafficNotModified_Item;
+static int ett_xnap_TrafficReleasedList;
+static int ett_xnap_TrafficReleased_Item;
+static int ett_xnap_IABTransportMigrationManagementReject;
+static int ett_xnap_IABTransportMigrationModificationRequest;
+static int ett_xnap_TrafficRequiredToBeModifiedList;
+static int ett_xnap_TrafficRequiredToBeModified_Item;
+static int ett_xnap_IABTNLAddressToBeReleasedList;
+static int ett_xnap_IABTNLAddressToBeReleased_Item;
+static int ett_xnap_IABTransportMigrationModificationResponse;
+static int ett_xnap_TrafficRequiredModifiedList;
+static int ett_xnap_TrafficRequiredModified_Item;
+static int ett_xnap_IABResourceCoordinationRequest;
+static int ett_xnap_BoundaryNodeCellsList;
+static int ett_xnap_BoundaryNodeCellsList_Item;
+static int ett_xnap_ParentNodeCellsList;
+static int ett_xnap_ParentNodeCellsList_Item;
+static int ett_xnap_IABResourceCoordinationResponse;
+static int ett_xnap_CPCCancel;
+static int ett_xnap_PartialUEContextTransfer;
+static int ett_xnap_PartialUEContextTransferAcknowledge;
+static int ett_xnap_PartialUEContextTransferFailure;
+static int ett_xnap_XnAP_PDU;
+static int ett_xnap_InitiatingMessage;
+static int ett_xnap_SuccessfulOutcome;
+static int ett_xnap_UnsuccessfulOutcome;
enum {
XNAP_NG_RAN_CONTAINER_AUTOMATIC,
@@ -3329,11 +3333,6 @@ xnap_Threshold_SINR_fmt(gchar *s, guint32 v)
snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB (%u)", ((float)v/2)-23, v);
}
-static const true_false_string xnap_tfs_activate_do_not_activate = {
- "Activate",
- "Do not activate"
-};
-
typedef enum {
INITIATING_MESSAGE,
SUCCESSFUL_OUTCOME,
@@ -4800,7 +4799,7 @@ dissect_xnap_AllocationandRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a
static int
dissect_xnap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE);
+ 0U, UINT64_C(4000000000000), NULL, TRUE);
return offset;
}
@@ -5370,7 +5369,7 @@ dissect_xnap_AMF_Region_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_xnap_AMF_UE_NGAP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(1099511627775), NULL, FALSE);
+ 0U, UINT64_C(1099511627775), NULL, FALSE);
return offset;
}
@@ -11029,11 +11028,20 @@ dissect_xnap_T_primaryRATRestriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
&hf_xnap_primaryRATRestriction_nR_MEO,
&hf_xnap_primaryRATRestriction_nR_GEO,
&hf_xnap_primaryRATRestriction_nR_OTHERSAT,
+ &hf_xnap_primaryRATRestriction_e_UTRA_LEO,
+ NULL
+ };
+ static int * const fields2[] = {
+ &hf_xnap_primaryRATRestriction_e_UTRA_MEO,
+ &hf_xnap_primaryRATRestriction_e_UTRA_GEO,
+ &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT,
&hf_xnap_primaryRATRestriction_reserved,
NULL
};
proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_primaryRATRestriction);
proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN);
+ if (tvb_reported_length(parameter_tvb) >= 2)
+ proto_tree_add_bitmask_list(subtree, parameter_tvb, 1, 1, fields2, ENC_BIG_ENDIAN);
}
@@ -16286,6 +16294,7 @@ static const value_string xnap_Bandwidth_vals[] = {
{ 2, "mhz40" },
{ 3, "mhz60" },
{ 4, "mhz80" },
+ { 5, "mhz100" },
{ 0, NULL }
};
@@ -16293,7 +16302,7 @@ static const value_string xnap_Bandwidth_vals[] = {
static int
dissect_xnap_Bandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 5, NULL, TRUE, 0, NULL);
+ 5, NULL, TRUE, 1, NULL);
return offset;
}
@@ -18424,7 +18433,7 @@ dissect_xnap_T_endTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_xnap_INTEGER_0_18446744073709551615(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
- 0U, G_GUINT64_CONSTANT(18446744073709551615), NULL, FALSE);
+ 0U, UINT64_C(18446744073709551615), NULL, FALSE);
return offset;
}
@@ -28363,12 +28372,28 @@ void proto_register_xnap(void) {
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x04,
NULL, HFILL }},
{ &hf_xnap_primaryRATRestriction_nR_OTHERSAT,
- { "nR-unlicensed", "xnap.primaryRATRestriction.nR_unlicensed",
+ { "nR-unlicensed", "xnap.primaryRATRestriction.nR_OTHERSAT",
FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x02,
NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_LEO,
+ { "e-UTRA-LEO", "xnap.primaryRATRestriction.e_UTRA_LEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x01,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_MEO,
+ { "e-UTRA-MEO", "xnap.primaryRATRestriction.e_UTRA_MEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x80,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_GEO,
+ { "e-UTRA-GEO", "xnap.primaryRATRestriction.e_UTRA_GEO",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x40,
+ NULL, HFILL }},
+ { &hf_xnap_primaryRATRestriction_e_UTRA_OTHERSAT,
+ { "e-UTRA-unlicensed", "xnap.primaryRATRestriction.e_UTRA_OTHERSAT",
+ FT_BOOLEAN, 8, TFS(&tfs_restricted_not_restricted), 0x20,
+ NULL, HFILL }},
{ &hf_xnap_primaryRATRestriction_reserved,
{ "reserved", "xnap.primaryRATRestriction.reserved",
- FT_UINT8, BASE_HEX, NULL, 0x01,
+ FT_UINT8, BASE_HEX, NULL, 0x1f,
NULL, HFILL }},
{ &hf_xnap_secondaryRATRestriction_e_UTRA,
{ "e-UTRA", "xnap.secondaryRATRestriction.e_UTRA",
@@ -28400,35 +28425,35 @@ void proto_register_xnap(void) {
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M1,
{ "M1", "xnap.MeasurementsToActivate.M1",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x80,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x80,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M2,
{ "M2", "xnap.MeasurementsToActivate.M2",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x40,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x40,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M3,
{ "M3", "xnap.MeasurementsToActivate.M3",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x20,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x20,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M4,
{ "M4", "xnap.MeasurementsToActivate.M4",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x10,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x10,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M5,
{ "M5", "xnap.MeasurementsToActivate.M5",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x08,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x08,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_LoggingM1FromEventTriggered,
{ "LoggingOfM1FromEventTriggeredMeasurementReports", "xnap.MeasurementsToActivate.LoggingM1FromEventTriggered",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x04,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x04,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M6,
{ "M6", "xnap.MeasurementsToActivate.M6",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x02,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x02,
NULL, HFILL }},
{ &hf_xnap_MeasurementsToActivate_M7,
{ "M7", "xnap.MeasurementsToActivate.M7",
- FT_BOOLEAN, 8, TFS(&xnap_tfs_activate_do_not_activate), 0x01,
+ FT_BOOLEAN, 8, TFS(&tfs_activate_do_not_activate), 0x01,
NULL, HFILL }},
{ &hf_xnap_ReportCharacteristics_PRBPeriodic,
{ "PRBPeriodic", "xnap.ReportCharacteristics.PRBPeriodic",
@@ -36543,6 +36568,7 @@ proto_reg_handoff_xnap(void)
dissector_add_uint("xnap.extension", id_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated, create_dissector_handle(dissect_AdditionalListofPDUSessionResourceChangeConfirmInfo_SNterminated_PDU, proto_xnap));
dissector_add_uint("xnap.extension", id_ExcessPacketDelayThresholdConfiguration, create_dissector_handle(dissect_ExcessPacketDelayThresholdConfiguration_PDU, proto_xnap));
dissector_add_uint("xnap.extension", id_QosFlowMappingIndication, create_dissector_handle(dissect_QoSFlowMappingIndication_PDU, proto_xnap));
+ dissector_add_uint("xnap.extension", id_PDUSessionResourcesNotAdmitted_List, create_dissector_handle(dissect_PDUSessionResourcesNotAdmitted_List_PDU, proto_xnap));
dissector_add_uint("xnap.proc.imsg", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequest_PDU, proto_xnap));
dissector_add_uint("xnap.proc.sout", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_xnap));
dissector_add_uint("xnap.proc.uout", id_handoverPreparation, create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_xnap));
diff --git a/epan/dissectors/packet-xot.c b/epan/dissectors/packet-xot.c
index c8b6543aea..0392966d54 100644
--- a/epan/dissectors/packet-xot.c
+++ b/epan/dissectors/packet-xot.c
@@ -90,9 +90,9 @@ static dissector_handle_t xot_tcp_handle;
static dissector_handle_t x25_handle;
/* desegmentation of X.25 over multiple TCP */
-static gboolean xot_desegment = TRUE;
+static bool xot_desegment = true;
/* desegmentation of X.25 packet sequences */
-static gboolean x25_desegment = FALSE;
+static bool x25_desegment;
static guint get_xot_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb,
int offset, void *data _U_)
diff --git a/epan/dissectors/packet-xra.c b/epan/dissectors/packet-xra.c
index d290165f91..c0ddcc046a 100644
--- a/epan/dissectors/packet-xra.c
+++ b/epan/dissectors/packet-xra.c
@@ -704,7 +704,7 @@ static void
dissect_message_channel_mb(tvbuff_t * tvb, packet_info * pinfo, proto_tree* tree, guint16 remaining_length) {
proto_tree_add_item (tree, hf_plc_mb_mc_reserved, tvb, 0, 1, ENC_BIG_ENDIAN);
- gboolean packet_start_pointer_field_present;
+ bool packet_start_pointer_field_present;
unsigned packet_start_pointer;
proto_tree_add_item_ret_boolean(tree, hf_plc_mb_mc_pspf_present, tvb, 0, 1, FALSE, &packet_start_pointer_field_present);
diff --git a/epan/dissectors/packet-xti.c b/epan/dissectors/packet-xti.c
index 7e20b8805c..7729ec4a33 100644
--- a/epan/dissectors/packet-xti.c
+++ b/epan/dissectors/packet-xti.c
@@ -9584,7 +9584,7 @@ dissect_xti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
int uidx = tid2uidx[templateid - 10000];
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
int old_fidx = 0;
int old_uidx = 0;
@@ -9596,9 +9596,9 @@ dissect_xti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
proto_tree *t = root;
while (top) {
DISSECTOR_ASSERT_CMPINT(fidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, (sizeof fields / sizeof fields[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, array_length(fields));
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
switch (fields[fidx].type) {
case ETI_EOF:
@@ -9620,7 +9620,7 @@ dissect_xti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
break;
case ETI_VAR_STRUCT:
case ETI_STRUCT:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
repeats = fields[fidx].type == ETI_VAR_STRUCT ? counter[fields[fidx].counter_off] : 1;
if (repeats) {
--repeats;
@@ -9661,14 +9661,14 @@ dissect_xti_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
++uidx;
break;
case ETI_VAR_STRING:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
proto_tree_add_item(t, hf_xti[fields[fidx].field_handle_idx], tvb, off, counter[fields[fidx].counter_off], ENC_ASCII);
off += counter[fields[fidx].counter_off];
++fidx;
++uidx;
break;
case ETI_COUNTER:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
DISSECTOR_ASSERT_CMPUINT(fields[fidx].size, <=, 2);
{
switch (fields[fidx].size) {
diff --git a/epan/dissectors/packet-yami.c b/epan/dissectors/packet-yami.c
index 2088da9d78..bdaec80be8 100644
--- a/epan/dissectors/packet-yami.c
+++ b/epan/dissectors/packet-yami.c
@@ -22,7 +22,7 @@
void proto_reg_handoff_yami(void);
void proto_register_yami(void);
-static gboolean yami_desegment = TRUE;
+static bool yami_desegment = true;
static dissector_handle_t yami_handle;
diff --git a/epan/dissectors/packet-ymsg.c b/epan/dissectors/packet-ymsg.c
index 1fa09cd900..94967f6e31 100644
--- a/epan/dissectors/packet-ymsg.c
+++ b/epan/dissectors/packet-ymsg.c
@@ -42,7 +42,7 @@ static gint ett_ymsg_content_line;
#define TCP_PORT_YMSG_3 5050 /* This, however, is regular Yahoo Messenger */
/* desegmentation of YMSG over TCP */
-static gboolean ymsg_desegment = TRUE;
+static bool ymsg_desegment = true;
/*
* This is from yahoolib2.c from libyahoo2.
@@ -448,7 +448,7 @@ dissect_ymsg_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
proto_tree_add_item(content_line_tree, hf_ymsg_content_line_value, tvb,
offset+keylen+2, vallen, ENC_ASCII);
- /* Move beyone key and value lines */
+ /* Move beyond key and value lines */
offset += keylen+2+vallen+2;
}
}
diff --git a/epan/dissectors/packet-z21.c b/epan/dissectors/packet-z21.c
index 4425e8ba71..1c75044640 100644
--- a/epan/dissectors/packet-z21.c
+++ b/epan/dissectors/packet-z21.c
@@ -38,11 +38,13 @@ static int hf_z21_filtered_main_current;
static int hf_z21_temperature;
static int hf_z21_supply_voltage;
static int hf_z21_track_voltage;
+static int hf_z21_broadcast_flags;
static int hf_z21_central_state;
static int hf_z21_central_state_ex;
static int hf_z21_systemstate_reserved;
static int hf_z21_capabilities;
static int hf_z21_status;
+static int hf_z21_loco_mode;
static int hf_z21_loco_address;
static int hf_z21_loco_direction_and_speed;
static int hf_z21_loco_direction;
@@ -90,7 +92,21 @@ static int hf_z21_loco_info_extensions;
static int hf_z21_loco_func_switch_type;
static int hf_z21_loco_func_index;
static int hf_z21_speed_steps;
+static int hf_z21_hw_type;
static int hf_z21_firmware_version;
+static int hf_z21_broadcast_flags_driving_switching;
+static int hf_z21_broadcast_flags_rmbus;
+static int hf_z21_broadcast_flags_railcom_subscribed;
+static int hf_z21_broadcast_flags_system_status;
+static int hf_z21_broadcast_flags_driving_switching_ex;
+static int hf_z21_broadcast_flags_loconet;
+static int hf_z21_broadcast_flags_loconet_driving;
+static int hf_z21_broadcast_flags_loconet_switching;
+static int hf_z21_broadcast_flags_loconet_detector;
+static int hf_z21_broadcast_flags_railcom;
+static int hf_z21_broadcast_flags_can_detector;
+static int hf_z21_broadcast_flags_can_booster;
+static int hf_z21_broadcast_flags_fast_clock;
static int hf_z21_state_emergency_stop;
static int hf_z21_state_track_voltage_off;
static int hf_z21_state_short_circuit;
@@ -192,15 +208,21 @@ static expert_field ei_z21_invalid_checksum;
* not comparing the values numerically, just matching them
* in the packets. */
#define Z21_LAN_GET_SERIAL_NUMBER 0x1000
+#define Z21_LAN_GET_HWINFO 0x1A00
#define Z21_LAN_LOGOFF 0x3000
-/* Responses and requests based on the X-BUS protocol are transmittted
+/* Responses and requests based on the X-BUS protocol are transmitted
* with the Z21-LAN-Header 0x40 and the specific command is indicated
* with additional bytes inside the data field. */
#define Z21_LAN_X_BC 0x4000
+#define Z21_LAN_SET_BROADCASTFLAGS 0x5000
+#define Z21_LAN_GET_BROADCASTFLAGS 0x5100
+#define Z21_LAN_GET_LOCOMODE 0x6000
+#define Z21_LAN_SET_LOCOMODE 0x6100
#define Z21_LAN_RMBUS_DATACHANGED 0x8000
#define Z21_LAN_RMBUS_GETDATA 0x8100
#define Z21_LAN_RMBUS_PROGRAMMODULE 0x8200
#define Z21_LAN_SYSTEMSTATE_DATACHANGED 0x8400
+#define Z21_LAN_SYSTEMSTATE_GETDATA 0x8500
#define Z21_LAN_RAILCOM_DATACHANGED 0x8800
#define Z21_LAN_RAILCOM_GETDATA 0x8900
#define Z21_LAN_LOCONET_Z21_RX 0xA000
@@ -297,6 +319,9 @@ static const value_string z21_command_vals[] = {
{ Z21_LAN_FAST_CLOCK_DATA, "LAN_FAST_CLOCK_DATA" },
{ Z21_LAN_FAST_CLOCK_SETTINGS_GET, "LAN_FAST_CLOCK_SETTINGS_GET" },
{ Z21_LAN_FAST_CLOCK_SETTINGS_SET, "LAN_FAST_CLOCK_SETTINGS_SET" },
+ { Z21_LAN_GET_BROADCASTFLAGS, "LAN_GET_BROADCASTFLAGS" },
+ { Z21_LAN_GET_HWINFO, "LAN_GET_HWINFO" },
+ { Z21_LAN_GET_LOCOMODE, "LAN_GET_LOCOMODE" },
{ Z21_LAN_GET_SERIAL_NUMBER, "LAN_GET_SERIAL_NUMBER" },
{ Z21_LAN_LOCONET_DETECTOR, "LAN_LOCONET_DETECTOR" },
{ Z21_LAN_LOCONET_DISPATCH_ADDR, "LAN_LOCONET_DISPATCH_ADDR" },
@@ -309,7 +334,10 @@ static const value_string z21_command_vals[] = {
{ Z21_LAN_RMBUS_DATACHANGED, "LAN_RMBUS_DATACHANGED" },
{ Z21_LAN_RMBUS_GETDATA, "LAN_RMBUS_GETDATA" },
{ Z21_LAN_RMBUS_PROGRAMMODULE, "LAN_RMBUS_PROGRAMMODULE" },
+ { Z21_LAN_SET_BROADCASTFLAGS, "LAN_SET_BROADCASTFLAGS" },
+ { Z21_LAN_SET_LOCOMODE, "LAN_SET_LOCOMODE" },
{ Z21_LAN_SYSTEMSTATE_DATACHANGED, "LAN_SYSTEMSTATE_DATACHANGED" },
+ { Z21_LAN_SYSTEMSTATE_GETDATA, "LAN_SYSTEMSTATE_GETDATA" },
{ Z21_LAN_X_BC, "LAN_X_xxx" }, /* Unspecified X-Bus command */
{ Z21_LAN_X_BC_PROGRAMMING_MODE, "LAN_X_BC_PROGRAMMING_MODE" },
{ Z21_LAN_X_BC_STOPPED, "LAN_X_BC_STOPPED" },
@@ -359,6 +387,27 @@ static const value_string z21_command_vals[] = {
{ 0, NULL },
};
+static const value_string z21_loco_mode_vals[] = {
+ { 0, "DCC Format" },
+ { 1, "MM Format" },
+ { 0, NULL },
+};
+
+static const value_string z21_hw_type_vals[] = {
+ { 0x00000200, "Z21a" },
+ { 0x00000201, "Z21b" },
+ { 0x00000202, "SmartRail" },
+ { 0x00000203, "z21small" },
+ { 0x00000204, "z21start" },
+ { 0x00000205, "Z21 Single Booster" },
+ { 0x00000206, "Z21 Dual Booster" },
+ { 0x00000211, "Z21 XL Series" },
+ { 0x00000212, "Z21 XL Booster" },
+ { 0x00000301, "Z21 Switch Decoder" },
+ { 0x00000302, "Z21 Signal Decoder" },
+ { 0, NULL },
+};
+
static const value_string z21_loco_info_speed_steps_vals[] = {
{ 0, "14 speed steps" },
{ 2, "28 speed steps" },
@@ -429,6 +478,22 @@ dissect_z21_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
gint32 main_current, temp_gint32;
char *buffer;
float temp_float;
+ static int * const broadcast_flags_bits[] = {
+ &hf_z21_broadcast_flags_loconet_detector,
+ &hf_z21_broadcast_flags_loconet_switching,
+ &hf_z21_broadcast_flags_loconet_driving,
+ &hf_z21_broadcast_flags_loconet,
+ &hf_z21_broadcast_flags_can_detector,
+ &hf_z21_broadcast_flags_railcom,
+ &hf_z21_broadcast_flags_can_booster,
+ &hf_z21_broadcast_flags_driving_switching_ex,
+ &hf_z21_broadcast_flags_system_status,
+ &hf_z21_broadcast_flags_fast_clock,
+ &hf_z21_broadcast_flags_railcom_subscribed,
+ &hf_z21_broadcast_flags_rmbus,
+ &hf_z21_broadcast_flags_driving_switching,
+ NULL
+ };
static int * const state_bits_byte1[] = {
&hf_z21_state_programming_mode,
&hf_z21_state_short_circuit,
@@ -1410,6 +1475,41 @@ dissect_z21_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
tvb, offset, datalen-4, ENC_NA);
offset += datalen-4;
break;
+ case Z21_LAN_GET_LOCOMODE:
+ case Z21_LAN_SET_LOCOMODE:
+ address_bytes = tvb_get_guint16(tvb, offset, ENC_BIG_ENDIAN);
+ addr = address_bytes & 0x3FFF;
+ proto_tree_add_uint(z21_tree, hf_z21_loco_address, tvb, offset, 2, addr);
+ offset += 2;
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Loco=%d", addr);
+ if (datalen > 6) {
+ unsigned mode = tvb_get_guint8(tvb, offset);
+ proto_tree_add_uint(z21_tree, hf_z21_loco_mode, tvb, offset, 1, mode);
+ offset += 1;
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Mode: %d", mode);
+ }
+ break;
+ case Z21_LAN_GET_BROADCASTFLAGS:
+ case Z21_LAN_SET_BROADCASTFLAGS:
+ if (datalen == 8) {
+ proto_tree_add_bitmask_with_flags(z21_tree, tvb, offset, hf_z21_broadcast_flags,
+ ett_z21, broadcast_flags_bits, ENC_LITTLE_ENDIAN, BMT_NO_APPEND);
+ offset += 4;
+ }
+ break;
+ case Z21_LAN_GET_HWINFO:
+ if (datalen == 12) {
+ unsigned hwtype = tvb_get_guint32(tvb, offset, ENC_LITTLE_ENDIAN);
+ proto_tree_add_uint(z21_tree, hf_z21_hw_type, tvb, offset, 1, hwtype);
+ offset += 4;
+ version = tvb_get_guint32(tvb, offset, ENC_LITTLE_ENDIAN);
+ buffer = wmem_strdup_printf(pinfo->pool, "%x.%02x",
+ version >> 8, version & 0xff);
+ proto_tree_add_string(z21_tree, hf_z21_firmware_version,
+ tvb, offset, 2, buffer);
+ offset += 4;
+ }
+ break;
}
if (offset < datalen) {
/* Just dump all the rest, if any */
@@ -1517,6 +1617,11 @@ proto_register_z21(void)
FT_FLOAT, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_z21_broadcast_flags,
+ { "Broadcast flags", "z21.broadcastflags",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_z21_central_state,
{ "Central state, first byte", "z21.centralstate1",
FT_UINT8, BASE_HEX, NULL, 0x0,
@@ -1542,6 +1647,71 @@ proto_register_z21(void)
FT_UINT8, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_z21_broadcast_flags_driving_switching,
+ { "Broadcasts messages concerning driving and switching", "z21.broadcastflags.driving_switching",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00000001,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_rmbus,
+ { "Changes of the feedback devices on the R-Bus", "z21.broadcastflags.rmbus",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00000002,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_railcom_subscribed,
+ { "Changes of RailCom data of subscribed locomotives", "z21.broadcastflags.railcom_subscribed",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00000004,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_system_status,
+ { "Changes of the Z21 system status", "z21.broadcastflags.system_status",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00000100,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_driving_switching_ex,
+ { "Extends flag 0x00000001, LAN_X_LOCO_INFO is sent for all modified locomotives", "z21.broadcastflags.driving_switching_ex",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00010000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_loconet,
+ { "Forward messages from LocoNet without locos and switches", "z21.broadcastflags.loconet",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x01000000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_loconet_driving,
+ { "Forward locomotive-specific LocoNet", "z21.broadcastflags.loconet_driving",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x02000000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_loconet_switching,
+ { "Forward switch-specific LocoNet", "z21.broadcastflags.loconet_switching",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x04000000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_loconet_detector,
+ { "Changes of LocoNet track occupancy detectors", "z21.broadcastflags.emergencystop",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x08000000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_railcom,
+ { "Changes of RailCom data", "z21.broadcastflags.railcom",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00040000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_can_detector,
+ { "Changes of CAN-Bus track occupancy detectors", "z21.broadcastflags.can_detector",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00080000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_can_booster,
+ { "Forward CAN-Bus booster status messages", "z21.broadcastflags.can_booster",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00020000,
+ NULL, HFILL }
+ },
+ { &hf_z21_broadcast_flags_fast_clock,
+ { "Fast clock time messages", "z21.broadcastflags.fast_clock",
+ FT_BOOLEAN, 32, TFS(&tfs_enabled_disabled), 0x00000010,
+ NULL, HFILL }
+ },
{ &hf_z21_state_emergency_stop,
{ "Emergency stop", "z21.state.emergencystop",
FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x01,
@@ -1627,6 +1797,11 @@ proto_register_z21(void)
FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80,
NULL, HFILL }
},
+ { &hf_z21_loco_mode,
+ { "Locomotive mode", "z21.locomode",
+ FT_UINT8, BASE_DEC, VALS(z21_loco_mode_vals), 0x0,
+ NULL, HFILL }
+ },
{ &hf_z21_loco_address,
{ "Locomotive address", "z21.locoaddress",
FT_UINT16, BASE_DEC, NULL, 0x0,
@@ -1852,6 +2027,11 @@ proto_register_z21(void)
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_z21_hw_type,
+ { "Hardware type", "z21.hwtype",
+ FT_UINT32, BASE_HEX, VALS(z21_hw_type_vals), 0x0,
+ NULL, HFILL }
+ },
{ &hf_z21_firmware_version,
{ "Firmware version", "z21.firmwareversion",
FT_STRING, BASE_NONE, NULL, 0x0,
diff --git a/epan/dissectors/packet-z3950.c b/epan/dissectors/packet-z3950.c
index aa2718537a..f0d8648bb2 100644
--- a/epan/dissectors/packet-z3950.c
+++ b/epan/dissectors/packet-z3950.c
@@ -104,7 +104,7 @@ typedef struct marc_directory_entry {
guint32 starting_character;
} marc_directory_entry;
-static dissector_handle_t z3950_handle=NULL;
+static dissector_handle_t z3950_handle;
void proto_reg_handoff_z3950(void);
void proto_register_z3950(void);
@@ -112,7 +112,7 @@ void proto_register_z3950(void);
/* Initialize the protocol and registered fields */
static int proto_z3950;
static int global_z3950_port = Z3950_PORT;
-static gboolean z3950_desegment = TRUE;
+static bool z3950_desegment = true;
static const value_string z3950_bib1_att_types[] = {
{ Z3950_BIB1_AT_USE, "Use" },
@@ -1509,297 +1509,297 @@ static int hf_z3950_general_printable;
/* Initialize the subtree pointers */
static int ett_z3950;
-static gint ett_z3950_PDU;
-static gint ett_z3950_InitializeRequest;
-static gint ett_z3950_T_idAuthentication;
-static gint ett_z3950_T_idPass;
-static gint ett_z3950_InitializeResponse;
-static gint ett_z3950_ProtocolVersion_U;
-static gint ett_z3950_Options_U;
-static gint ett_z3950_SearchRequest;
-static gint ett_z3950_SEQUENCE_OF_DatabaseName;
-static gint ett_z3950_Query;
-static gint ett_z3950_RPNQuery;
-static gint ett_z3950_RPNStructure;
-static gint ett_z3950_T_rpnRpnOp;
-static gint ett_z3950_Operand;
-static gint ett_z3950_AttributesPlusTerm_U;
-static gint ett_z3950_ResultSetPlusAttributes_U;
-static gint ett_z3950_SEQUENCE_OF_AttributeElement;
-static gint ett_z3950_Term;
-static gint ett_z3950_Operator_U;
-static gint ett_z3950_AttributeElement;
-static gint ett_z3950_T_attributeValue;
-static gint ett_z3950_T_attributeValue_complex;
-static gint ett_z3950_SEQUENCE_OF_StringOrNumeric;
-static gint ett_z3950_T_semanticAction;
-static gint ett_z3950_ProximityOperator;
-static gint ett_z3950_T_proximityUnitCode;
-static gint ett_z3950_SearchResponse;
-static gint ett_z3950_PresentRequest;
-static gint ett_z3950_SEQUENCE_OF_Range;
-static gint ett_z3950_T_recordComposition;
-static gint ett_z3950_Segment;
-static gint ett_z3950_SEQUENCE_OF_NamePlusRecord;
-static gint ett_z3950_PresentResponse;
-static gint ett_z3950_Records;
-static gint ett_z3950_SEQUENCE_OF_DiagRec;
-static gint ett_z3950_NamePlusRecord;
-static gint ett_z3950_T_record;
-static gint ett_z3950_FragmentSyntax;
-static gint ett_z3950_DiagRec;
-static gint ett_z3950_DefaultDiagFormat;
-static gint ett_z3950_T_addinfo;
-static gint ett_z3950_Range;
-static gint ett_z3950_ElementSetNames;
-static gint ett_z3950_T_databaseSpecific;
-static gint ett_z3950_T_databaseSpecific_item;
-static gint ett_z3950_CompSpec;
-static gint ett_z3950_T_dbSpecific;
-static gint ett_z3950_T_dbSpecific_item;
-static gint ett_z3950_T_compSpec_recordSyntax;
-static gint ett_z3950_Specification;
-static gint ett_z3950_T_specification_elementSpec;
-static gint ett_z3950_DeleteResultSetRequest;
-static gint ett_z3950_SEQUENCE_OF_ResultSetId;
-static gint ett_z3950_DeleteResultSetResponse;
-static gint ett_z3950_ListStatuses;
-static gint ett_z3950_ListStatuses_item;
-static gint ett_z3950_AccessControlRequest;
-static gint ett_z3950_T_securityChallenge;
-static gint ett_z3950_AccessControlResponse;
-static gint ett_z3950_T_securityChallengeResponse;
-static gint ett_z3950_ResourceControlRequest;
-static gint ett_z3950_ResourceControlResponse;
-static gint ett_z3950_TriggerResourceControlRequest;
-static gint ett_z3950_ResourceReportRequest;
-static gint ett_z3950_ResourceReportResponse;
-static gint ett_z3950_ScanRequest;
-static gint ett_z3950_ScanResponse;
-static gint ett_z3950_ListEntries;
-static gint ett_z3950_SEQUENCE_OF_Entry;
-static gint ett_z3950_Entry;
-static gint ett_z3950_TermInfo;
-static gint ett_z3950_SEQUENCE_OF_AttributesPlusTerm;
-static gint ett_z3950_OccurrenceByAttributes;
-static gint ett_z3950_OccurrenceByAttributes_item;
-static gint ett_z3950_T_occurrences;
-static gint ett_z3950_T_byDatabase;
-static gint ett_z3950_T_byDatabase_item;
-static gint ett_z3950_SortRequest;
-static gint ett_z3950_SEQUENCE_OF_InternationalString;
-static gint ett_z3950_SEQUENCE_OF_SortKeySpec;
-static gint ett_z3950_SortResponse;
-static gint ett_z3950_SortKeySpec;
-static gint ett_z3950_T_missingValueAction;
-static gint ett_z3950_SortElement;
-static gint ett_z3950_T_datbaseSpecific;
-static gint ett_z3950_T_datbaseSpecific_item;
-static gint ett_z3950_SortKey;
-static gint ett_z3950_T_sortAttributes;
-static gint ett_z3950_ExtendedServicesRequest;
-static gint ett_z3950_ExtendedServicesResponse;
-static gint ett_z3950_Permissions;
-static gint ett_z3950_Permissions_item;
-static gint ett_z3950_T_allowableFunctions;
-static gint ett_z3950_Close;
-static gint ett_z3950_OtherInformation_U;
-static gint ett_z3950_T__untag_item;
-static gint ett_z3950_T_information;
-static gint ett_z3950_InfoCategory;
-static gint ett_z3950_IntUnit;
-static gint ett_z3950_Unit;
-static gint ett_z3950_StringOrNumeric;
-static gint ett_z3950_OCLC_UserInformation;
-static gint ett_z3950_SEQUENCE_OF_DBName;
-static gint ett_z3950_OPACRecord;
-static gint ett_z3950_SEQUENCE_OF_HoldingsRecord;
-static gint ett_z3950_HoldingsRecord;
-static gint ett_z3950_HoldingsAndCircData;
-static gint ett_z3950_SEQUENCE_OF_Volume;
-static gint ett_z3950_SEQUENCE_OF_CircRecord;
-static gint ett_z3950_Volume;
-static gint ett_z3950_CircRecord;
-static gint ett_z3950_DiagnosticFormat;
-static gint ett_z3950_DiagnosticFormat_item;
-static gint ett_z3950_T_diagnosticFormat_item_diagnostic;
-static gint ett_z3950_DiagFormat;
-static gint ett_z3950_T_tooMany;
-static gint ett_z3950_T_badSpec;
-static gint ett_z3950_SEQUENCE_OF_Specification;
-static gint ett_z3950_T_dbUnavail;
-static gint ett_z3950_T_why;
-static gint ett_z3950_T_attribute;
-static gint ett_z3950_T_attCombo;
-static gint ett_z3950_SEQUENCE_OF_AttributeList;
-static gint ett_z3950_T_diagFormat_term;
-static gint ett_z3950_T_diagFormat_proximity;
-static gint ett_z3950_T_scan;
-static gint ett_z3950_T_sort;
-static gint ett_z3950_T_segmentation;
-static gint ett_z3950_T_extServices;
-static gint ett_z3950_T_accessCtrl;
-static gint ett_z3950_T_diagFormat_accessCtrl_oid;
-static gint ett_z3950_T_alternative;
-static gint ett_z3950_T_diagFormat_recordSyntax;
-static gint ett_z3950_T_suggestedAlternatives;
-static gint ett_z3950_Explain_Record;
-static gint ett_z3950_TargetInfo;
-static gint ett_z3950_SEQUENCE_OF_DatabaseList;
-static gint ett_z3950_SEQUENCE_OF_NetworkAddress;
-static gint ett_z3950_DatabaseInfo;
-static gint ett_z3950_SEQUENCE_OF_HumanString;
-static gint ett_z3950_T_recordCount;
-static gint ett_z3950_SchemaInfo;
-static gint ett_z3950_T_tagTypeMapping;
-static gint ett_z3950_T_tagTypeMapping_item;
-static gint ett_z3950_SEQUENCE_OF_ElementInfo;
-static gint ett_z3950_ElementInfo;
-static gint ett_z3950_Path;
-static gint ett_z3950_Path_item;
-static gint ett_z3950_ElementDataType;
-static gint ett_z3950_TagSetInfo;
-static gint ett_z3950_T_tagSetInfo_elements;
-static gint ett_z3950_T_tagSetInfo_elements_item;
-static gint ett_z3950_RecordSyntaxInfo;
-static gint ett_z3950_T_transferSyntaxes;
-static gint ett_z3950_AttributeSetInfo;
-static gint ett_z3950_SEQUENCE_OF_AttributeType;
-static gint ett_z3950_AttributeType;
-static gint ett_z3950_SEQUENCE_OF_AttributeDescription;
-static gint ett_z3950_AttributeDescription;
-static gint ett_z3950_TermListInfo;
-static gint ett_z3950_T_termLists;
-static gint ett_z3950_T_termLists_item;
-static gint ett_z3950_ExtendedServicesInfo;
-static gint ett_z3950_AttributeDetails;
-static gint ett_z3950_SEQUENCE_OF_AttributeSetDetails;
-static gint ett_z3950_AttributeSetDetails;
-static gint ett_z3950_SEQUENCE_OF_AttributeTypeDetails;
-static gint ett_z3950_AttributeTypeDetails;
-static gint ett_z3950_SEQUENCE_OF_AttributeValue;
-static gint ett_z3950_OmittedAttributeInterpretation;
-static gint ett_z3950_AttributeValue;
-static gint ett_z3950_TermListDetails;
-static gint ett_z3950_T_scanInfo;
-static gint ett_z3950_SEQUENCE_OF_Term;
-static gint ett_z3950_ElementSetDetails;
-static gint ett_z3950_SEQUENCE_OF_PerElementDetails;
-static gint ett_z3950_RetrievalRecordDetails;
-static gint ett_z3950_PerElementDetails;
-static gint ett_z3950_SEQUENCE_OF_Path;
-static gint ett_z3950_RecordTag;
-static gint ett_z3950_SortDetails;
-static gint ett_z3950_SEQUENCE_OF_SortKeyDetails;
-static gint ett_z3950_SortKeyDetails;
-static gint ett_z3950_T_sortType;
-static gint ett_z3950_ProcessingInformation;
-static gint ett_z3950_VariantSetInfo;
-static gint ett_z3950_SEQUENCE_OF_VariantClass;
-static gint ett_z3950_VariantClass;
-static gint ett_z3950_SEQUENCE_OF_VariantType;
-static gint ett_z3950_VariantType;
-static gint ett_z3950_VariantValue;
-static gint ett_z3950_ValueSet;
-static gint ett_z3950_SEQUENCE_OF_ValueDescription;
-static gint ett_z3950_ValueRange;
-static gint ett_z3950_ValueDescription;
-static gint ett_z3950_UnitInfo;
-static gint ett_z3950_SEQUENCE_OF_UnitType;
-static gint ett_z3950_UnitType;
-static gint ett_z3950_SEQUENCE_OF_Units;
-static gint ett_z3950_Units;
-static gint ett_z3950_CategoryList;
-static gint ett_z3950_SEQUENCE_OF_CategoryInfo;
-static gint ett_z3950_CategoryInfo;
-static gint ett_z3950_CommonInfo;
-static gint ett_z3950_HumanString;
-static gint ett_z3950_HumanString_item;
-static gint ett_z3950_IconObject;
-static gint ett_z3950_IconObject_item;
-static gint ett_z3950_T_bodyType;
-static gint ett_z3950_ContactInfo;
-static gint ett_z3950_NetworkAddress;
-static gint ett_z3950_T_internetAddress;
-static gint ett_z3950_T_osiPresentationAddress;
-static gint ett_z3950_T_networkAddress_other;
-static gint ett_z3950_AccessInfo;
-static gint ett_z3950_SEQUENCE_OF_QueryTypeDetails;
-static gint ett_z3950_T_diagnosticsSets;
-static gint ett_z3950_SEQUENCE_OF_AttributeSetId;
-static gint ett_z3950_T_schemas;
-static gint ett_z3950_T_recordSyntaxes;
-static gint ett_z3950_T_resourceChallenges;
-static gint ett_z3950_T_variantSets;
-static gint ett_z3950_SEQUENCE_OF_ElementSetName;
-static gint ett_z3950_QueryTypeDetails;
-static gint ett_z3950_PrivateCapabilities;
-static gint ett_z3950_T_privateCapabilities_operators;
-static gint ett_z3950_T_privateCapabilities_operators_item;
-static gint ett_z3950_SEQUENCE_OF_SearchKey;
-static gint ett_z3950_RpnCapabilities;
-static gint ett_z3950_T_operators;
-static gint ett_z3950_Iso8777Capabilities;
-static gint ett_z3950_ProximitySupport;
-static gint ett_z3950_T_unitsSupported;
-static gint ett_z3950_T_unitsSupported_item;
-static gint ett_z3950_T_proximitySupport_unitsSupported_item_private;
-static gint ett_z3950_SearchKey;
-static gint ett_z3950_AccessRestrictions;
-static gint ett_z3950_AccessRestrictions_item;
-static gint ett_z3950_T_accessChallenges;
-static gint ett_z3950_Costs;
-static gint ett_z3950_T_otherCharges;
-static gint ett_z3950_T_otherCharges_item;
-static gint ett_z3950_Charge;
-static gint ett_z3950_DatabaseList;
-static gint ett_z3950_AttributeCombinations;
-static gint ett_z3950_SEQUENCE_OF_AttributeCombination;
-static gint ett_z3950_AttributeCombination;
-static gint ett_z3950_AttributeOccurrence;
-static gint ett_z3950_T_attributeOccurrence_attributeValues;
-static gint ett_z3950_BriefBib;
-static gint ett_z3950_SEQUENCE_OF_FormatSpec;
-static gint ett_z3950_FormatSpec;
-static gint ett_z3950_GenericRecord;
-static gint ett_z3950_TaggedElement;
-static gint ett_z3950_ElementData;
-static gint ett_z3950_SEQUENCE_OF_TaggedElement;
-static gint ett_z3950_ElementMetaData;
-static gint ett_z3950_SEQUENCE_OF_HitVector;
-static gint ett_z3950_SEQUENCE_OF_Variant;
-static gint ett_z3950_TagPath;
-static gint ett_z3950_TagPath_item;
-static gint ett_z3950_Order;
-static gint ett_z3950_Usage;
-static gint ett_z3950_HitVector;
-static gint ett_z3950_Variant;
-static gint ett_z3950_T_triples;
-static gint ett_z3950_T_triples_item;
-static gint ett_z3950_T_variant_triples_item_value;
-static gint ett_z3950_TaskPackage;
-static gint ett_z3950_PromptObject;
-static gint ett_z3950_Challenge;
-static gint ett_z3950_Challenge_item;
-static gint ett_z3950_T_promptInfo;
-static gint ett_z3950_Response;
-static gint ett_z3950_Response_item;
-static gint ett_z3950_T_promptResponse;
-static gint ett_z3950_PromptId;
-static gint ett_z3950_T_enummeratedPrompt;
-static gint ett_z3950_Encryption;
-static gint ett_z3950_DES_RN_Object;
-static gint ett_z3950_DRNType;
-static gint ett_z3950_KRBObject;
-static gint ett_z3950_KRBRequest;
-static gint ett_z3950_KRBResponse;
-static gint ett_z3950_SearchInfoReport;
-static gint ett_z3950_SearchInfoReport_item;
-static gint ett_z3950_ResultsByDB;
-static gint ett_z3950_ResultsByDB_item;
-static gint ett_z3950_T_databases;
-static gint ett_z3950_QueryExpression;
-static gint ett_z3950_T_queryExpression_term;
+static int ett_z3950_PDU;
+static int ett_z3950_InitializeRequest;
+static int ett_z3950_T_idAuthentication;
+static int ett_z3950_T_idPass;
+static int ett_z3950_InitializeResponse;
+static int ett_z3950_ProtocolVersion_U;
+static int ett_z3950_Options_U;
+static int ett_z3950_SearchRequest;
+static int ett_z3950_SEQUENCE_OF_DatabaseName;
+static int ett_z3950_Query;
+static int ett_z3950_RPNQuery;
+static int ett_z3950_RPNStructure;
+static int ett_z3950_T_rpnRpnOp;
+static int ett_z3950_Operand;
+static int ett_z3950_AttributesPlusTerm_U;
+static int ett_z3950_ResultSetPlusAttributes_U;
+static int ett_z3950_SEQUENCE_OF_AttributeElement;
+static int ett_z3950_Term;
+static int ett_z3950_Operator_U;
+static int ett_z3950_AttributeElement;
+static int ett_z3950_T_attributeValue;
+static int ett_z3950_T_attributeValue_complex;
+static int ett_z3950_SEQUENCE_OF_StringOrNumeric;
+static int ett_z3950_T_semanticAction;
+static int ett_z3950_ProximityOperator;
+static int ett_z3950_T_proximityUnitCode;
+static int ett_z3950_SearchResponse;
+static int ett_z3950_PresentRequest;
+static int ett_z3950_SEQUENCE_OF_Range;
+static int ett_z3950_T_recordComposition;
+static int ett_z3950_Segment;
+static int ett_z3950_SEQUENCE_OF_NamePlusRecord;
+static int ett_z3950_PresentResponse;
+static int ett_z3950_Records;
+static int ett_z3950_SEQUENCE_OF_DiagRec;
+static int ett_z3950_NamePlusRecord;
+static int ett_z3950_T_record;
+static int ett_z3950_FragmentSyntax;
+static int ett_z3950_DiagRec;
+static int ett_z3950_DefaultDiagFormat;
+static int ett_z3950_T_addinfo;
+static int ett_z3950_Range;
+static int ett_z3950_ElementSetNames;
+static int ett_z3950_T_databaseSpecific;
+static int ett_z3950_T_databaseSpecific_item;
+static int ett_z3950_CompSpec;
+static int ett_z3950_T_dbSpecific;
+static int ett_z3950_T_dbSpecific_item;
+static int ett_z3950_T_compSpec_recordSyntax;
+static int ett_z3950_Specification;
+static int ett_z3950_T_specification_elementSpec;
+static int ett_z3950_DeleteResultSetRequest;
+static int ett_z3950_SEQUENCE_OF_ResultSetId;
+static int ett_z3950_DeleteResultSetResponse;
+static int ett_z3950_ListStatuses;
+static int ett_z3950_ListStatuses_item;
+static int ett_z3950_AccessControlRequest;
+static int ett_z3950_T_securityChallenge;
+static int ett_z3950_AccessControlResponse;
+static int ett_z3950_T_securityChallengeResponse;
+static int ett_z3950_ResourceControlRequest;
+static int ett_z3950_ResourceControlResponse;
+static int ett_z3950_TriggerResourceControlRequest;
+static int ett_z3950_ResourceReportRequest;
+static int ett_z3950_ResourceReportResponse;
+static int ett_z3950_ScanRequest;
+static int ett_z3950_ScanResponse;
+static int ett_z3950_ListEntries;
+static int ett_z3950_SEQUENCE_OF_Entry;
+static int ett_z3950_Entry;
+static int ett_z3950_TermInfo;
+static int ett_z3950_SEQUENCE_OF_AttributesPlusTerm;
+static int ett_z3950_OccurrenceByAttributes;
+static int ett_z3950_OccurrenceByAttributes_item;
+static int ett_z3950_T_occurrences;
+static int ett_z3950_T_byDatabase;
+static int ett_z3950_T_byDatabase_item;
+static int ett_z3950_SortRequest;
+static int ett_z3950_SEQUENCE_OF_InternationalString;
+static int ett_z3950_SEQUENCE_OF_SortKeySpec;
+static int ett_z3950_SortResponse;
+static int ett_z3950_SortKeySpec;
+static int ett_z3950_T_missingValueAction;
+static int ett_z3950_SortElement;
+static int ett_z3950_T_datbaseSpecific;
+static int ett_z3950_T_datbaseSpecific_item;
+static int ett_z3950_SortKey;
+static int ett_z3950_T_sortAttributes;
+static int ett_z3950_ExtendedServicesRequest;
+static int ett_z3950_ExtendedServicesResponse;
+static int ett_z3950_Permissions;
+static int ett_z3950_Permissions_item;
+static int ett_z3950_T_allowableFunctions;
+static int ett_z3950_Close;
+static int ett_z3950_OtherInformation_U;
+static int ett_z3950_T__untag_item;
+static int ett_z3950_T_information;
+static int ett_z3950_InfoCategory;
+static int ett_z3950_IntUnit;
+static int ett_z3950_Unit;
+static int ett_z3950_StringOrNumeric;
+static int ett_z3950_OCLC_UserInformation;
+static int ett_z3950_SEQUENCE_OF_DBName;
+static int ett_z3950_OPACRecord;
+static int ett_z3950_SEQUENCE_OF_HoldingsRecord;
+static int ett_z3950_HoldingsRecord;
+static int ett_z3950_HoldingsAndCircData;
+static int ett_z3950_SEQUENCE_OF_Volume;
+static int ett_z3950_SEQUENCE_OF_CircRecord;
+static int ett_z3950_Volume;
+static int ett_z3950_CircRecord;
+static int ett_z3950_DiagnosticFormat;
+static int ett_z3950_DiagnosticFormat_item;
+static int ett_z3950_T_diagnosticFormat_item_diagnostic;
+static int ett_z3950_DiagFormat;
+static int ett_z3950_T_tooMany;
+static int ett_z3950_T_badSpec;
+static int ett_z3950_SEQUENCE_OF_Specification;
+static int ett_z3950_T_dbUnavail;
+static int ett_z3950_T_why;
+static int ett_z3950_T_attribute;
+static int ett_z3950_T_attCombo;
+static int ett_z3950_SEQUENCE_OF_AttributeList;
+static int ett_z3950_T_diagFormat_term;
+static int ett_z3950_T_diagFormat_proximity;
+static int ett_z3950_T_scan;
+static int ett_z3950_T_sort;
+static int ett_z3950_T_segmentation;
+static int ett_z3950_T_extServices;
+static int ett_z3950_T_accessCtrl;
+static int ett_z3950_T_diagFormat_accessCtrl_oid;
+static int ett_z3950_T_alternative;
+static int ett_z3950_T_diagFormat_recordSyntax;
+static int ett_z3950_T_suggestedAlternatives;
+static int ett_z3950_Explain_Record;
+static int ett_z3950_TargetInfo;
+static int ett_z3950_SEQUENCE_OF_DatabaseList;
+static int ett_z3950_SEQUENCE_OF_NetworkAddress;
+static int ett_z3950_DatabaseInfo;
+static int ett_z3950_SEQUENCE_OF_HumanString;
+static int ett_z3950_T_recordCount;
+static int ett_z3950_SchemaInfo;
+static int ett_z3950_T_tagTypeMapping;
+static int ett_z3950_T_tagTypeMapping_item;
+static int ett_z3950_SEQUENCE_OF_ElementInfo;
+static int ett_z3950_ElementInfo;
+static int ett_z3950_Path;
+static int ett_z3950_Path_item;
+static int ett_z3950_ElementDataType;
+static int ett_z3950_TagSetInfo;
+static int ett_z3950_T_tagSetInfo_elements;
+static int ett_z3950_T_tagSetInfo_elements_item;
+static int ett_z3950_RecordSyntaxInfo;
+static int ett_z3950_T_transferSyntaxes;
+static int ett_z3950_AttributeSetInfo;
+static int ett_z3950_SEQUENCE_OF_AttributeType;
+static int ett_z3950_AttributeType;
+static int ett_z3950_SEQUENCE_OF_AttributeDescription;
+static int ett_z3950_AttributeDescription;
+static int ett_z3950_TermListInfo;
+static int ett_z3950_T_termLists;
+static int ett_z3950_T_termLists_item;
+static int ett_z3950_ExtendedServicesInfo;
+static int ett_z3950_AttributeDetails;
+static int ett_z3950_SEQUENCE_OF_AttributeSetDetails;
+static int ett_z3950_AttributeSetDetails;
+static int ett_z3950_SEQUENCE_OF_AttributeTypeDetails;
+static int ett_z3950_AttributeTypeDetails;
+static int ett_z3950_SEQUENCE_OF_AttributeValue;
+static int ett_z3950_OmittedAttributeInterpretation;
+static int ett_z3950_AttributeValue;
+static int ett_z3950_TermListDetails;
+static int ett_z3950_T_scanInfo;
+static int ett_z3950_SEQUENCE_OF_Term;
+static int ett_z3950_ElementSetDetails;
+static int ett_z3950_SEQUENCE_OF_PerElementDetails;
+static int ett_z3950_RetrievalRecordDetails;
+static int ett_z3950_PerElementDetails;
+static int ett_z3950_SEQUENCE_OF_Path;
+static int ett_z3950_RecordTag;
+static int ett_z3950_SortDetails;
+static int ett_z3950_SEQUENCE_OF_SortKeyDetails;
+static int ett_z3950_SortKeyDetails;
+static int ett_z3950_T_sortType;
+static int ett_z3950_ProcessingInformation;
+static int ett_z3950_VariantSetInfo;
+static int ett_z3950_SEQUENCE_OF_VariantClass;
+static int ett_z3950_VariantClass;
+static int ett_z3950_SEQUENCE_OF_VariantType;
+static int ett_z3950_VariantType;
+static int ett_z3950_VariantValue;
+static int ett_z3950_ValueSet;
+static int ett_z3950_SEQUENCE_OF_ValueDescription;
+static int ett_z3950_ValueRange;
+static int ett_z3950_ValueDescription;
+static int ett_z3950_UnitInfo;
+static int ett_z3950_SEQUENCE_OF_UnitType;
+static int ett_z3950_UnitType;
+static int ett_z3950_SEQUENCE_OF_Units;
+static int ett_z3950_Units;
+static int ett_z3950_CategoryList;
+static int ett_z3950_SEQUENCE_OF_CategoryInfo;
+static int ett_z3950_CategoryInfo;
+static int ett_z3950_CommonInfo;
+static int ett_z3950_HumanString;
+static int ett_z3950_HumanString_item;
+static int ett_z3950_IconObject;
+static int ett_z3950_IconObject_item;
+static int ett_z3950_T_bodyType;
+static int ett_z3950_ContactInfo;
+static int ett_z3950_NetworkAddress;
+static int ett_z3950_T_internetAddress;
+static int ett_z3950_T_osiPresentationAddress;
+static int ett_z3950_T_networkAddress_other;
+static int ett_z3950_AccessInfo;
+static int ett_z3950_SEQUENCE_OF_QueryTypeDetails;
+static int ett_z3950_T_diagnosticsSets;
+static int ett_z3950_SEQUENCE_OF_AttributeSetId;
+static int ett_z3950_T_schemas;
+static int ett_z3950_T_recordSyntaxes;
+static int ett_z3950_T_resourceChallenges;
+static int ett_z3950_T_variantSets;
+static int ett_z3950_SEQUENCE_OF_ElementSetName;
+static int ett_z3950_QueryTypeDetails;
+static int ett_z3950_PrivateCapabilities;
+static int ett_z3950_T_privateCapabilities_operators;
+static int ett_z3950_T_privateCapabilities_operators_item;
+static int ett_z3950_SEQUENCE_OF_SearchKey;
+static int ett_z3950_RpnCapabilities;
+static int ett_z3950_T_operators;
+static int ett_z3950_Iso8777Capabilities;
+static int ett_z3950_ProximitySupport;
+static int ett_z3950_T_unitsSupported;
+static int ett_z3950_T_unitsSupported_item;
+static int ett_z3950_T_proximitySupport_unitsSupported_item_private;
+static int ett_z3950_SearchKey;
+static int ett_z3950_AccessRestrictions;
+static int ett_z3950_AccessRestrictions_item;
+static int ett_z3950_T_accessChallenges;
+static int ett_z3950_Costs;
+static int ett_z3950_T_otherCharges;
+static int ett_z3950_T_otherCharges_item;
+static int ett_z3950_Charge;
+static int ett_z3950_DatabaseList;
+static int ett_z3950_AttributeCombinations;
+static int ett_z3950_SEQUENCE_OF_AttributeCombination;
+static int ett_z3950_AttributeCombination;
+static int ett_z3950_AttributeOccurrence;
+static int ett_z3950_T_attributeOccurrence_attributeValues;
+static int ett_z3950_BriefBib;
+static int ett_z3950_SEQUENCE_OF_FormatSpec;
+static int ett_z3950_FormatSpec;
+static int ett_z3950_GenericRecord;
+static int ett_z3950_TaggedElement;
+static int ett_z3950_ElementData;
+static int ett_z3950_SEQUENCE_OF_TaggedElement;
+static int ett_z3950_ElementMetaData;
+static int ett_z3950_SEQUENCE_OF_HitVector;
+static int ett_z3950_SEQUENCE_OF_Variant;
+static int ett_z3950_TagPath;
+static int ett_z3950_TagPath_item;
+static int ett_z3950_Order;
+static int ett_z3950_Usage;
+static int ett_z3950_HitVector;
+static int ett_z3950_Variant;
+static int ett_z3950_T_triples;
+static int ett_z3950_T_triples_item;
+static int ett_z3950_T_variant_triples_item_value;
+static int ett_z3950_TaskPackage;
+static int ett_z3950_PromptObject;
+static int ett_z3950_Challenge;
+static int ett_z3950_Challenge_item;
+static int ett_z3950_T_promptInfo;
+static int ett_z3950_Response;
+static int ett_z3950_Response_item;
+static int ett_z3950_T_promptResponse;
+static int ett_z3950_PromptId;
+static int ett_z3950_T_enummeratedPrompt;
+static int ett_z3950_Encryption;
+static int ett_z3950_DES_RN_Object;
+static int ett_z3950_DRNType;
+static int ett_z3950_KRBObject;
+static int ett_z3950_KRBRequest;
+static int ett_z3950_KRBResponse;
+static int ett_z3950_SearchInfoReport;
+static int ett_z3950_SearchInfoReport_item;
+static int ett_z3950_ResultsByDB;
+static int ett_z3950_ResultsByDB_item;
+static int ett_z3950_T_databases;
+static int ett_z3950_QueryExpression;
+static int ett_z3950_T_queryExpression_term;
/* MARC variables and forwards */
@@ -3031,7 +3031,7 @@ static const ber_choice_t RPNStructure_choice[] = {
static int
dissect_z3950_RPNStructure(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // RPNStructure → RPNStructure/rpnRpnOp → RPNStructure
+ // RPNStructure -> RPNStructure/rpnRpnOp -> RPNStructure
actx->pinfo->dissection_depth += 2;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_choice(actx, tree, tvb, offset,
@@ -6541,7 +6541,7 @@ static const ber_sequence_t ElementInfo_sequence[] = {
static int
dissect_z3950_ElementInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // ElementInfo → ElementDataType → ElementDataType/structured → ElementInfo
+ // ElementInfo -> ElementDataType -> ElementDataType/structured -> ElementInfo
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -8021,7 +8021,7 @@ static const ber_sequence_t TaggedElement_sequence[] = {
static int
dissect_z3950_TaggedElement(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- // TaggedElement → ElementData → ElementData/subtree → TaggedElement
+ // TaggedElement -> ElementData -> ElementData/subtree -> TaggedElement
actx->pinfo->dissection_depth += 3;
increment_dissection_depth(actx->pinfo);
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
diff --git a/epan/dissectors/packet-zabbix.c b/epan/dissectors/packet-zabbix.c
index b11e12472f..5c3afc542c 100644
--- a/epan/dissectors/packet-zabbix.c
+++ b/epan/dissectors/packet-zabbix.c
@@ -31,7 +31,7 @@ void proto_reg_handoff_zabbix(void);
static dissector_handle_t zabbix_handle;
/* Desegmentation of Zabbix protocol over TCP */
-static gboolean zabbix_desegment = true;
+static bool zabbix_desegment = true;
/* Initialize the protocol and registered fields */
static int proto_zabbix;
@@ -48,8 +48,10 @@ static int hf_zabbix_large_length;
static int hf_zabbix_large_reserved;
static int hf_zabbix_large_uncompressed_length;
static int hf_zabbix_data;
+static int hf_zabbix_error;
static int hf_zabbix_time;
static int hf_zabbix_agent;
+static int hf_zabbix_agent_commands;
static int hf_zabbix_agent_config;
static int hf_zabbix_agent_data;
static int hf_zabbix_agent_passive;
@@ -61,6 +63,7 @@ static int hf_zabbix_agent_hostinterface;
static int hf_zabbix_agent_listenipv4;
static int hf_zabbix_agent_listenipv6;
static int hf_zabbix_agent_listenport;
+static int hf_zabbix_agent_variant;
static int hf_zabbix_proxy;
static int hf_zabbix_proxy_hb;
static int hf_zabbix_proxy_name;
@@ -89,14 +92,15 @@ static expert_field ei_zabbix_json_error;
/* Other dissector-specifics */
static range_t *zabbix_port_range;
-static const guint8 ZABBIX_HDR_SIGNATURE[] = "ZBXD";
+static const char ZABBIX_HDR_SIGNATURE[] = "ZBXD";
static const char ZABBIX_UNKNOWN[] = "<unknown>";
+static const char ZABBIX_ZBX_NOTSUPPORTED[] = "ZBX_NOTSUPPORTED";
typedef struct _zabbix_conv_info_t {
- guint32 req_framenum;
+ uint32_t req_framenum;
nstime_t req_timestamp;
uint16_t oper_flags; /* ZABBIX_T_XXX macros below */
- const guint8 *host_name;
+ const char *host_name;
} zabbix_conv_info_t;
#define ZABBIX_HDR_MIN_LEN 13 /* When not large packet */
@@ -128,6 +132,7 @@ typedef struct _zabbix_conv_info_t {
#define ZABBIX_T_CONFIG 0x00000080
#define ZABBIX_T_DATA 0x00000100
#define ZABBIX_T_HEARTBEAT 0x00000200
+#define ZABBIX_T_LEGACY 0x00000400 /* pre-7.0 non-JSON protocol */
#define ADD_ZABBIX_T_FLAGS(flags) (zabbix_info->oper_flags |= (flags))
#define CLEAR_ZABBIX_T_FLAGS(flags) (zabbix_info->oper_flags &= (0xffff-(flags)))
@@ -202,11 +207,14 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
uint64_t length;
uint64_t uncompressed_length;
uint64_t datalen;
+ int64_t agent_variant = 0;
int64_t config_revision = -1;
bool is_compressed;
bool is_large_packet;
bool is_too_large = false;
char *json_str;
+ char *passive_agent_data_str = NULL;
+ jsmntok_t *commands_array = NULL;
jsmntok_t *data_array = NULL;
jsmntok_t *data_object = NULL;
const char *agent_name = NULL;
@@ -219,7 +227,7 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
const char *request_type = NULL;
const char *response_status = NULL;
const char *version = NULL;
- gdouble temp_double;
+ double temp_double;
tvbuff_t *next_tvb;
zabbix_conv_info_t *zabbix_info;
static int* const flagbits[] = {
@@ -326,14 +334,24 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
/*
* Note that json_str is modified when using json_get_xxx() functions below!
- * So don't use it to anything else (make a wmem_strdup() if needed)
+ * So don't use it to anything else (make a wmem_strdup() if needed, see below)
*/
json_str = tvb_get_string_enc(pinfo->pool, next_tvb, offset, (int)datalen, ENC_UTF_8);
- if (CONV_IS_ZABBIX_REQUEST(zabbix_info, pinfo) && !json_validate(json_str, datalen)) {
- /* The only non-JSON Zabbix request is passive agent, update the conversation data */
- ADD_ZABBIX_T_FLAGS(ZABBIX_T_AGENT | ZABBIX_T_PASSIVE);
- }
- if (IS_ZABBIX_T_FLAGS(ZABBIX_T_AGENT | ZABBIX_T_PASSIVE)) {
+ /* First check if this is a pre-7.0 passive agent.
+ * Note that even pre-7.0 passive agent *responses* can be JSON, so don't just check
+ * for JSON validation but check the conversation data!
+ */
+ if (
+ !json_validate(json_str, datalen) ||
+ (
+ CONV_IS_ZABBIX_RESPONSE(zabbix_info, pinfo) &&
+ IS_ZABBIX_T_FLAGS(ZABBIX_T_AGENT | ZABBIX_T_PASSIVE | ZABBIX_T_LEGACY)
+ )
+ ) {
+ /* The only non-JSON Zabbix request/response is passive agent before Zabbix 7.0,
+ * ensure the conversation data is set, then set the texts
+ */
+ ADD_ZABBIX_T_FLAGS(ZABBIX_T_AGENT | ZABBIX_T_PASSIVE | ZABBIX_T_LEGACY);
if (CONV_IS_ZABBIX_REQUEST(zabbix_info, pinfo)) {
proto_item_set_text(ti, "Zabbix Passive agent request");
col_add_fstr(pinfo->cinfo, COL_INFO, "Zabbix Passive agent request");
@@ -341,7 +359,9 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
proto_item_set_text(ti, "Zabbix Passive agent response");
col_add_fstr(pinfo->cinfo, COL_INFO, "Zabbix Passive agent response");
}
- /* Don't do content-based searches for passive agents */
+ /* Make a copy of the data string for later error message lookup use */
+ passive_agent_data_str = wmem_strndup(pinfo->pool, json_str, (size_t)datalen);
+ /* Don't do content-based searches for pre-7.0 passive agents */
goto show_agent_outputs;
}
/* Parse JSON, first get the token count */
@@ -366,14 +386,19 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
/* First populate common fields */
version = json_get_string(json_str, tokens, "version");
+ if (json_get_double(json_str, tokens, "variant", &temp_double)) {
+ agent_variant = (int64_t)temp_double;
+ }
session = json_get_string(json_str, tokens, "session");
if (json_get_double(json_str, tokens, "config_revision", &temp_double)) {
config_revision = (int64_t)temp_double;
}
request_type = json_get_string(json_str, tokens, "request");
response_status = json_get_string(json_str, tokens, "response");
+ commands_array = json_get_array(json_str, tokens, "commands");
data_array = json_get_array(json_str, tokens, "data");
data_object = json_get_object(json_str, tokens, "data");
+ /* Find the packet type primarily based on "request" field */
if (request_type) {
if (strcmp(request_type, "active checks") == 0) {
/* Active agent requesting configs */
@@ -424,6 +449,12 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
col_add_fstr(pinfo->cinfo, COL_INFO,
"Zabbix Agent heartbeat from \"%s\"", (agent_name ? agent_name : ZABBIX_UNKNOWN));
}
+ else if (strcmp(request_type, "passive checks") == 0) {
+ /* Passive agent checks since Zabbix 7.0 */
+ ADD_ZABBIX_T_FLAGS(ZABBIX_T_AGENT | ZABBIX_T_PASSIVE);
+ proto_item_set_text(ti, "Zabbix Request for passive checks");
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Zabbix Request for passive checks");
+ }
else if (strcmp(request_type, "sender data") == 0) {
/* Sender/trapper */
ADD_ZABBIX_T_FLAGS(ZABBIX_T_SENDER);
@@ -487,6 +518,7 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
col_add_fstr(pinfo->cinfo, COL_INFO, "Zabbix Proxy heartbeat from \"%s\"", proxy_name);
}
}
+ /* There was no "request" field match, continue with other ways to recognize the packet */
else if (json_get_object(json_str, tokens, "globalmacro")) {
/* This is Zabbix server before 6.4 sending configurations to active proxy */
ADD_ZABBIX_T_FLAGS(ZABBIX_T_PROXY | ZABBIX_T_CONFIG | ZABBIX_T_ACTIVE);
@@ -578,6 +610,12 @@ dissect_zabbix_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
"Zabbix Response for sender data for \"%s\" (%s)", (sender_name ? sender_name : ZABBIX_UNKNOWN), response_status);
}
}
+ else if (version && data_array) {
+ /* This looks like passive agent response in Zabbix 7.0+ */
+ ADD_ZABBIX_T_FLAGS(ZABBIX_T_AGENT | ZABBIX_T_PASSIVE);
+ proto_item_set_text(ti, "Zabbix Response for passive checks");
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Zabbix Response for passive checks");
+ }
else if (data_object || data_array) {
/* No other match above, let's assume this is server sending incremental
* configuration to a proxy
@@ -672,6 +710,9 @@ show_agent_outputs:
proto_item_append_text(temp_ti, " (from the request)");
}
}
+ if (agent_variant) {
+ proto_tree_add_int64(zabbix_tree, hf_zabbix_agent_variant, NULL, 0, 0, agent_variant);
+ }
if (agent_hb_freq) {
proto_tree_add_int(zabbix_tree, hf_zabbix_agent_hb_freq, NULL, 0, 0, agent_hb_freq);
}
@@ -698,6 +739,9 @@ show_agent_outputs:
if (agent_listenport) {
proto_tree_add_uint(zabbix_tree, hf_zabbix_agent_listenport, NULL, 0, 0, agent_listenport);
}
+ if (commands_array) {
+ proto_tree_add_boolean(zabbix_tree, hf_zabbix_agent_commands, NULL, 0, 0, true);
+ }
}
else if (IS_ZABBIX_T_FLAGS(ZABBIX_T_PROXY)) {
if (proxy_name) {
@@ -744,8 +788,22 @@ show_agent_outputs:
if (session) {
proto_tree_add_string(zabbix_tree, hf_zabbix_session, NULL, 0, 0, session);
}
- /* Show also the full JSON (or passive agent request/response) */
- proto_tree_add_item(zabbix_tree, hf_zabbix_data, next_tvb, 0, (int)datalen, ENC_UTF_8);
+ /* Show also the full JSON, or pre-7.0 passive agent request/response (or error message).
+ * Note that ZABBIX_ZBX_NOTSUPPORTED does not include the \0 that is in the
+ * protocol specification! Therefore +1/-1's are present
+ */
+ if (passive_agent_data_str &&
+ strlen(passive_agent_data_str) >= strlen(ZABBIX_ZBX_NOTSUPPORTED) &&
+ strncmp(passive_agent_data_str, ZABBIX_ZBX_NOTSUPPORTED, strlen(ZABBIX_ZBX_NOTSUPPORTED)) == 0) {
+ /* Pre-7.0 passive agent error, first ZBX_NOTSUPPORTED\0 and then the error message */
+ proto_tree_add_item(zabbix_tree, hf_zabbix_data,
+ next_tvb, 0, (int)strlen(ZABBIX_ZBX_NOTSUPPORTED)+1, ENC_UTF_8);
+ proto_tree_add_item(zabbix_tree, hf_zabbix_error,
+ next_tvb, (int)strlen(ZABBIX_ZBX_NOTSUPPORTED)+1, (int)datalen-(int)strlen(ZABBIX_ZBX_NOTSUPPORTED)-1, ENC_UTF_8);
+ } else {
+ /* JSON or pre-7.0 passive agent without error */
+ proto_tree_add_item(zabbix_tree, hf_zabbix_data, next_tvb, 0, (int)datalen, ENC_UTF_8);
+ }
final_outputs:
@@ -770,7 +828,7 @@ final_outputs:
/* Add length to the Zabbix tree text */
proto_item_append_text(ti, ", Len=%u", (unsigned)length);
/* Add/set Info column texts */
- const gchar *info_text = col_get_text(pinfo->cinfo, COL_INFO);
+ const char *info_text = col_get_text(pinfo->cinfo, COL_INFO);
if (!info_text || !strlen(info_text)) {
/* Info column is still empty, set the default text */
if (CONV_IS_ZABBIX_REQUEST(zabbix_info, pinfo)) {
@@ -904,6 +962,11 @@ proto_register_zabbix(void)
FT_STRING, BASE_NONE, NULL, 0,
NULL, HFILL }
},
+ { &hf_zabbix_error,
+ { "Error message", "zabbix.error",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
{ &hf_zabbix_time,
{ "Response time", "zabbix.time",
FT_RELATIVE_TIME, BASE_NONE, NULL, 0,
@@ -934,6 +997,11 @@ proto_register_zabbix(void)
FT_BOOLEAN, BASE_NONE, NULL, 0,
NULL, HFILL }
},
+ { &hf_zabbix_agent_commands,
+ { "Zabbix agent commands", "zabbix.agent.commands",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_yes_no), 0,
+ NULL, HFILL }
+ },
{ &hf_zabbix_agent_config,
{ "Zabbix agent config", "zabbix.agent.config",
FT_BOOLEAN, BASE_NONE, TFS(&tfs_yes_no), 0,
@@ -989,6 +1057,11 @@ proto_register_zabbix(void)
FT_UINT16, BASE_DEC, NULL, 0,
NULL, HFILL }
},
+ { &hf_zabbix_agent_variant,
+ { "Agent variant", "zabbix.agent.variant",
+ FT_INT64, BASE_DEC, NULL, 0,
+ NULL, HFILL }
+ },
{ &hf_zabbix_proxy,
{ "Proxy connection", "zabbix.proxy",
FT_BOOLEAN, BASE_NONE, TFS(&tfs_yes_no), 0,
@@ -1070,7 +1143,7 @@ proto_register_zabbix(void)
};
/* Setup protocol subtree array */
- static gint *ett[] = {
+ static int *ett[] = {
&ett_zabbix,
};
diff --git a/epan/dissectors/packet-zbee-aps.c b/epan/dissectors/packet-zbee-aps.c
index c6f0fbf45f..b11031fd24 100644
--- a/epan/dissectors/packet-zbee-aps.c
+++ b/epan/dissectors/packet-zbee-aps.c
@@ -184,7 +184,7 @@ static const fragment_items zbee_aps_frag_items = {
"APS Message fragments"
};
-static GHashTable *zbee_table_aps_extended_counters = NULL;
+static GHashTable *zbee_table_aps_extended_counters;
/********************/
/* Field Names */
diff --git a/epan/dissectors/packet-zbee-direct.c b/epan/dissectors/packet-zbee-direct.c
index 6c4b9bec75..4615befc66 100644
--- a/epan/dissectors/packet-zbee-direct.c
+++ b/epan/dissectors/packet-zbee-direct.c
@@ -159,14 +159,14 @@ UAT_CSTRING_CB_DEF(uat_key_records, zvd_ieee, uat_key_record_t)
UAT_CSTRING_CB_DEF(uat_key_records, key, uat_key_record_t)
UAT_CSTRING_CB_DEF(uat_key_records, label, uat_key_record_t)
-static GSList *zbee_pc_keyring = NULL;
-static uat_key_record_t *uat_key_records = NULL;
-static guint num_uat_key_records = 0;
+static GSList *zbee_pc_keyring;
+static uat_key_record_t *uat_key_records;
+static guint num_uat_key_records;
/* Common data */
static guint8 g_conn_id;
-static gboolean ignore_late_keys = TRUE;
+static bool ignore_late_keys = true;
/* Info types */
typedef enum
@@ -1409,8 +1409,8 @@ static int dissect_zb_direct_leave(tvbuff_t *tvb,
if (offset < tvb_reported_length(tvb))
{
- gboolean rm_children;
- gboolean rejoin;
+ bool rm_children;
+ bool rejoin;
proto_tree_add_item_ret_boolean(tree, hf_zb_direct_comm_rm_children, tvb, offset, 1, ENC_LITTLE_ENDIAN, &rm_children);
offset += 1;
@@ -1525,7 +1525,7 @@ static int dissect_zb_direct_finding_binding(tvbuff_t *tvb,
if (offset < tvb_reported_length(tvb))
{
guint32 endpoint;
- gboolean initiator;
+ bool initiator;
proto_tree_add_item_ret_uint(tree, hf_zb_direct_comm_fb_endpoint, tvb, offset, 1, ENC_LITTLE_ENDIAN, &endpoint);
offset += 1;
@@ -1883,9 +1883,9 @@ void proto_reg_handoff_zb_direct(void)
/* 7.7.2.3. Zigbee Direct Commissioning Service characteristics */
{ "7072377d-0001-421c-b163-491c27333a61", dissect_zb_direct_formation },
- { "7072377d-0002-421c-b163-491c27333a61", dissect_zb_direct_leave },
- { "7072377d-0003-421c-b163-491c27333a61", dissect_zb_direct_join },
- { "7072377d-0004-421c-b163-491c27333a61", dissect_zb_direct_permit_join },
+ { "7072377d-0002-421c-b163-491c27333a61", dissect_zb_direct_join },
+ { "7072377d-0003-421c-b163-491c27333a61", dissect_zb_direct_permit_join },
+ { "7072377d-0004-421c-b163-491c27333a61", dissect_zb_direct_leave },
{ "7072377d-0005-421c-b163-491c27333a61", dissect_zb_direct_status },
{ "7072377d-0006-421c-b163-491c27333a61", dissect_zb_direct_manage_joiners },
{ "7072377d-0007-421c-b163-491c27333a61", dissect_zb_direct_identify },
diff --git a/epan/dissectors/packet-zbee-nwk-gp.c b/epan/dissectors/packet-zbee-nwk-gp.c
index 1c937a125a..469d4c7852 100644
--- a/epan/dissectors/packet-zbee-nwk-gp.c
+++ b/epan/dissectors/packet-zbee-nwk-gp.c
@@ -332,8 +332,8 @@ static gint ett_zbee_nwk_cmd_comm_clid_list_server;
static gint ett_zbee_nwk_cmd_comm_clid_list_client;
/* Common. */
-static GSList *zbee_gp_keyring = NULL;
-static guint num_uat_key_records = 0;
+static GSList *zbee_gp_keyring;
+static guint num_uat_key_records;
typedef struct {
gchar *string;
@@ -346,7 +346,7 @@ static const guint8 empty_key[ZBEE_SEC_CONST_KEYSIZE] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
-static uat_key_record_t *gp_uat_key_records = NULL;
+static uat_key_record_t *gp_uat_key_records;
static uat_t *zbee_gp_sec_key_table_uat;
/* UAT. */
@@ -1768,6 +1768,9 @@ dissect_zbee_nwk_gp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
NULL
};
+ if (data == NULL)
+ return 0;
+
memset(&packet, 0, sizeof(packet));
packet.ieee_packet_src64 = ieee_packet->src64;
/* Add ourself to the protocol column, clear the info column and create the protocol tree. */
@@ -1850,6 +1853,10 @@ dissect_zbee_nwk_gp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
}
}
/* Parse application payload. */
+ /* This is a uint8_t, but tvb_reported_length might be larger; e.g.,
+ * SCOP over TCP, presumably with errors. It's bogus either way; perhaps
+ * we should warn.
+ */
packet.payload_len = tvb_reported_length(tvb) - offset - packet.mic_size;
/* Ensure that the payload exists. */
if (packet.payload_len <= 0) {
@@ -1880,13 +1887,15 @@ dissect_zbee_nwk_gp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
return offset;
}
if (packet.security_level == ZBEE_NWK_GP_SECURITY_LEVEL_FULLENCR) {
- dec_buffer = (guint8 *)wmem_alloc(pinfo->pool, packet.payload_len);
gp_decrypted = FALSE;
- for (GSList_i = zbee_gp_keyring; GSList_i && !gp_decrypted; GSList_i = g_slist_next(GSList_i)) {
- gp_decrypted = zbee_gp_decrypt_payload(&packet, enc_buffer, offset - packet.payload_len -
- packet.mic_size, dec_buffer, packet.payload_len, packet.mic_size,
- ((key_record_t *)(GSList_i->data))->key);
+ if (tvb_captured_length(tvb) >= tvb_reported_length(tvb)) {
+ dec_buffer = (guint8 *)wmem_alloc(pinfo->pool, packet.payload_len);
+ for (GSList_i = zbee_gp_keyring; GSList_i && !gp_decrypted; GSList_i = g_slist_next(GSList_i)) {
+ gp_decrypted = zbee_gp_decrypt_payload(&packet, enc_buffer, offset - packet.payload_len -
+ packet.mic_size, dec_buffer, packet.payload_len, packet.mic_size,
+ ((key_record_t *)(GSList_i->data))->key);
+ }
}
if (gp_decrypted) {
diff --git a/epan/dissectors/packet-zbee-nwk.c b/epan/dissectors/packet-zbee-nwk.c
index f254641928..5fb8e151cd 100644
--- a/epan/dissectors/packet-zbee-nwk.c
+++ b/epan/dissectors/packet-zbee-nwk.c
@@ -376,9 +376,9 @@ static const value_string zbee_nwk_commissioning_types[] = {
* Hash Tables and Lists
*-------------------------------------
*/
-ieee802154_map_tab_t zbee_nwk_map = { NULL, NULL };
-GHashTable *zbee_table_nwk_keyring = NULL;
-GHashTable *zbee_table_link_keyring = NULL;
+ieee802154_map_tab_t zbee_nwk_map;
+GHashTable *zbee_table_nwk_keyring;
+GHashTable *zbee_table_link_keyring;
static int zbee_nwk_address_to_str(const address* addr, gchar *buf, int buf_len)
{
@@ -1956,7 +1956,7 @@ static tap_packet_status zbee_nwk_endpoint_packet(void *pit, packet_info *pinfo,
return TAP_PACKET_REDRAW;
}
-static gboolean zbee_nwk_filter_valid(packet_info *pinfo, void *user_data _U_)
+static bool zbee_nwk_filter_valid(packet_info *pinfo, void *user_data _U_)
{
return proto_is_frame_protocol(pinfo->layers, "zbee_nwk");
}
diff --git a/epan/dissectors/packet-zbee-security.c b/epan/dissectors/packet-zbee-security.c
index 62f9250fbe..23336e2872 100644
--- a/epan/dissectors/packet-zbee-security.c
+++ b/epan/dissectors/packet-zbee-security.c
@@ -122,9 +122,9 @@ UAT_CSTRING_CB_DEF(uat_key_records, string, uat_key_record_t)
UAT_VS_DEF(uat_key_records, byte_order, uat_key_record_t, guint8, 0, "Normal")
UAT_CSTRING_CB_DEF(uat_key_records, label, uat_key_record_t)
-static GSList *zbee_pc_keyring = NULL;
-static uat_key_record_t *uat_key_records = NULL;
-static guint num_uat_key_records = 0;
+static GSList *zbee_pc_keyring;
+static uat_key_record_t *uat_key_records;
+static guint num_uat_key_records;
static void* uat_key_record_copy_cb(void* n, const void* o, size_t siz _U_) {
uat_key_record_t* new_key = (uat_key_record_t *)n;
diff --git a/epan/dissectors/packet-zbee-tlv.c b/epan/dissectors/packet-zbee-tlv.c
index cea184525d..17cb296271 100644
--- a/epan/dissectors/packet-zbee-tlv.c
+++ b/epan/dissectors/packet-zbee-tlv.c
@@ -1654,7 +1654,7 @@ dissect_zbee_tlv_tunneling_npdu_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tre
{
proto_item *npdu_flags_item = proto_tree_add_item(tree, hf_zbee_tlv_local_tunneling_npdu_flags, tvb, offset, 1, ENC_LITTLE_ENDIAN);
proto_tree *npdu_flags_tree = proto_item_add_subtree(npdu_flags_item, ett_zbee_tlv_zbd_tunneling_npdu_flags);
- gboolean secur;
+ bool secur;
proto_tree_add_item_ret_boolean(npdu_flags_tree, hf_zbee_tlv_local_tunneling_npdu_flags_security, tvb, offset, 1, ENC_LITTLE_ENDIAN, &secur);
proto_tree_add_item_ret_uint(tree, hf_zbee_tlv_local_tunneling_npdu_length, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN, &npdu_len);
@@ -2793,12 +2793,12 @@ dissect_zbee_tlvs(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint
guint8 length;
unsigned recursion_depth = p_get_proto_depth(pinfo, proto_zbee_tlv);
- if (++recursion_depth >= ZBEE_TLV_MAX_RECURSION_DEPTH) {
- proto_tree_add_expert(tree, pinfo, &ei_zbee_tlv_max_recursion_depth_reached, tvb, 0, 0);
- return tvb_reported_length_remaining(tvb, offset);
- }
+ if (++recursion_depth >= ZBEE_TLV_MAX_RECURSION_DEPTH) {
+ proto_tree_add_expert(tree, pinfo, &ei_zbee_tlv_max_recursion_depth_reached, tvb, 0, 0);
+ return offset;
+ }
- p_set_proto_depth(pinfo, proto_zbee_tlv, recursion_depth);
+ p_set_proto_depth(pinfo, proto_zbee_tlv, recursion_depth);
while (tvb_bytes_exist(tvb, offset, ZBEE_TLV_HEADER_LENGTH)) {
length = tvb_get_guint8(tvb, offset + 1) + 1;
diff --git a/epan/dissectors/packet-zbee-zcl-general.c b/epan/dissectors/packet-zbee-zcl-general.c
index be6dfda741..96a7d1672b 100644
--- a/epan/dissectors/packet-zbee-zcl-general.c
+++ b/epan/dissectors/packet-zbee-zcl-general.c
@@ -17,6 +17,7 @@
#include <epan/packet.h>
#include <epan/to_str.h>
#include <wsutil/bits_ctz.h>
+#include <wsutil/epochs.h>
#include <wsutil/utf8_entities.h>
#include "packet-zbee.h"
@@ -8655,19 +8656,19 @@ static const value_string zbee_zcl_commissioning_attr_names[] = {
/* Server Commands Received */
static const value_string zbee_zcl_commissioning_srv_rx_cmd_names[] = {
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTART_DEVICE, "Commissioning" },
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_SAVE_STARTUP_PARAMETERS, "Commissioning" },
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTORE_STARTUP_PARAMETERS, "Commissioning" },
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESET_STARTUP_PARAMETERS, "Commissioning" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTART_DEVICE, "Commissioning - Restart Device" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_SAVE_STARTUP_PARAMETERS, "Commissioning - Save Startup Parameters" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTORE_STARTUP_PARAMETERS, "Commissioning - Restore Startup Parameters" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESET_STARTUP_PARAMETERS, "Commissioning - Reset Startup Parameters" },
{ 0, NULL }
};
/* Server Commands Generated */
static const value_string zbee_zcl_commissioning_srv_tx_cmd_names[] = {
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTART_DEVICE_RESPONSE, "Commissioning" },
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_SAVE_STARTUP_PARAMETERS_RESPONSE, "Commissioning" },
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTORE_STARTUP_PARAMETERS_RESPONSE, "Commissioning" },
- { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESET_STARTUP_PARAMETERS_RESPONSE, "Commissioning" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTART_DEVICE_RESPONSE, "Commissioning - Restart Device Response" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_SAVE_STARTUP_PARAMETERS_RESPONSE, "Commissioning - Save Startup Parameters Response" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESTORE_STARTUP_PARAMETERS_RESPONSE, "Commissioning - Startup Parameters Response" },
+ { ZBEE_ZCL_CMD_ID_COMMISSIONING_RESET_STARTUP_PARAMETERS_RESPONSE, "Commissioning - Reset Startup Parameters Response" },
{ 0, NULL }
};
@@ -9819,6 +9820,7 @@ static int hf_zbee_zcl_ota_req_node_addr;
static int hf_zbee_zcl_ota_current_time;
static int hf_zbee_zcl_ota_request_time;
static int hf_zbee_zcl_ota_upgrade_time;
+static int hf_zbee_zcl_ota_upgrade_time_utc;
static int hf_zbee_zcl_ota_data_size;
static int hf_zbee_zcl_ota_image_data;
static int hf_zbee_zcl_ota_page_size;
@@ -9929,7 +9931,7 @@ decode_zcl_ota_curr_time(gchar *s, guint32 value)
}
else {
gchar *tmp;
- value += ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ value += EPOCH_DELTA_2000_01_01_00_00_00_UTC;
tmp = abs_time_secs_to_str(NULL, value, ABSOLUTE_TIME_LOCAL, 1);
snprintf(s, ITEM_LABEL_LENGTH, "%s", tmp);
wmem_free(NULL, tmp);
@@ -9992,6 +9994,33 @@ decode_zcl_ota_upgr_time(gchar *s, guint32 value)
/*FUNCTION:------------------------------------------------------
* NAME
+ * decode_zcl_ota_upgr_time_utc
+ * DESCRIPTION
+ * this function decode the upgrade time field when it is UTC time
+ * PARAMETERS
+ * RETURNS
+ * none
+ *---------------------------------------------------------------
+ */
+static void
+decode_zcl_ota_upgr_time_utc(gchar *s, guint32 value)
+{
+ if (value == ZBEE_ZCL_OTA_TIME_WAIT) {
+ snprintf(s, ITEM_LABEL_LENGTH, "Wait for upgrade command");
+ }
+ else {
+ gchar *tmp;
+ value += EPOCH_DELTA_2000_01_01_00_00_00_UTC;
+ tmp = abs_time_secs_to_str(NULL, value, ABSOLUTE_TIME_LOCAL, 1);
+ snprintf(s, ITEM_LABEL_LENGTH, "%s", tmp);
+ wmem_free(NULL, tmp);
+ }
+
+ return;
+} /*decode_zcl_ota_upgr_time_utc*/
+
+/*FUNCTION:------------------------------------------------------
+ * NAME
* decode_zcl_ota_size_in_bytes
* DESCRIPTION
* this function decodes size in bytes
@@ -10441,6 +10470,8 @@ dissect_zcl_ota_upgradeendreq(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_ota_upgradeendrsp(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
+ uint32_t current_time = 0;
+
/* Retrieve 'Manufacturer Code' field */
proto_tree_add_item(tree, hf_zbee_zcl_ota_manufacturer_code, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
*offset += 2;
@@ -10453,12 +10484,22 @@ dissect_zcl_ota_upgradeendrsp(tvbuff_t *tvb, proto_tree *tree, guint *offset)
dissect_zcl_ota_file_version_field(tvb, tree, offset);
/* Retrieve 'Current Time' field */
- proto_tree_add_item(tree, hf_zbee_zcl_ota_current_time, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item_ret_uint(tree, hf_zbee_zcl_ota_current_time, tvb, *offset, 4, ENC_LITTLE_ENDIAN, &current_time);
*offset += 4;
/* Retrieve 'Upgrade Time' field */
- proto_tree_add_item(tree, hf_zbee_zcl_ota_upgrade_time, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
- *offset += 4;
+ if (current_time == 0)
+ {
+ /* Upgrade Time is offset time from now */
+ proto_tree_add_item(tree, hf_zbee_zcl_ota_upgrade_time, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+ }
+ else
+ {
+ /* Upgrade Time is UTC time */
+ proto_tree_add_item(tree, hf_zbee_zcl_ota_upgrade_time_utc, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+ }
} /*dissect_zcl_ota_upgradeendrsp*/
@@ -10887,6 +10928,10 @@ void proto_register_zbee_zcl_ota(void)
{ "Upgrade Time", "zbee_zcl_general.ota.upgrade_time", FT_UINT32, BASE_CUSTOM, CF_FUNC(decode_zcl_ota_upgr_time),
0x0, NULL, HFILL }},
+ { &hf_zbee_zcl_ota_upgrade_time_utc,
+ { "Upgrade Time", "zbee_zcl_general.ota.upgrade_time_utc", FT_UINT32, BASE_CUSTOM, CF_FUNC(decode_zcl_ota_upgr_time_utc),
+ 0x0, NULL, HFILL }},
+
{ &hf_zbee_zcl_ota_data_size,
{ "Data Size", "zbee_zcl_general.ota.data_size", FT_UINT8, BASE_DEC, NULL,
0x00, NULL, HFILL } },
@@ -14379,7 +14424,7 @@ dissect_zcl_gp_proxy_sink_table_request(proto_tree *tree, tvbuff_t *tvb, guint *
*offset += 4;
}
else if (app_id == ZBEE_ZCL_GP_APP_ID_ZGP) {
- /* App_id = 010: MAC address + Endoint */
+ /* App_id = 010: MAC address + Endpoint */
proto_tree_add_item(tree, hf_zbee_gp_ieee, tvb, *offset, 8, ENC_LITTLE_ENDIAN);
*offset += 8;
proto_tree_add_item(tree, hf_zbee_gp_endpoint, tvb, *offset, 1, ENC_NA);
@@ -15813,7 +15858,7 @@ proto_reg_handoff_zbee_zcl_gp(void)
#define ZBEE_ZCL_TOUCHLINK_INFO_UNDEFINED 0x20
#define ZBEE_ZCL_TOUCHLINK_INFO_PROFILE_INTEROP 0x80
-/*Touchlink Key Indicies*/
+/*Touchlink Key Indices*/
#define ZBEE_ZCL_TOUCHLINK_KEYID_DEVELOPMENT 0
#define ZBEE_ZCL_TOUCHLINK_KEYID_MASTER 4
#define ZBEE_ZCL_TOUCHLINK_KEYID_CERTIFICATION 15
diff --git a/epan/dissectors/packet-zbee-zcl-ha.c b/epan/dissectors/packet-zbee-zcl-ha.c
index 7701314244..7f00e4be3b 100644
--- a/epan/dissectors/packet-zbee-zcl-ha.c
+++ b/epan/dissectors/packet-zbee-zcl-ha.c
@@ -16,6 +16,7 @@
#include <epan/packet.h>
#include <epan/to_str.h>
+#include <wsutil/epochs.h>
#include "packet-zbee.h"
#include "packet-zbee-aps.h"
@@ -586,7 +587,7 @@ proto_reg_handoff_zbee_zcl_met_idt(void)
/* Alert structure masks */
#define ZBEE_ZCL_APPL_EVTALT_ALERT_ID_MASK 0x0000FF /* Alerts Id : [0..7] */
-#define ZBEE_ZCL_APPL_EVTALT_CATEGORY_MASK 0x000F00 /* Cetegory : [8..11] */
+#define ZBEE_ZCL_APPL_EVTALT_CATEGORY_MASK 0x000F00 /* Category : [8..11] */
#define ZBEE_ZCL_APPL_EVTALT_STATUS_MASK 0x003000 /* Presence / Recovery: [12..13] */
#define ZBEE_ZCL_APPL_EVTALT_RESERVED_MASK 0x00C000 /* Reserved : [14..15] */
#define ZBEE_ZCL_APPL_EVTALT_PROPRIETARY_MASK 0xFF0000 /* Non-Standardized / Proprietary : [16..23] */
@@ -1196,7 +1197,7 @@ decode_zcl_appl_stats_utc_time(gchar *s, guint32 value)
snprintf(s, ITEM_LABEL_LENGTH, "Invalid UTC Time");
else {
gchar *utc_time;
- value += ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ value += EPOCH_DELTA_2000_01_01_00_00_00_UTC;
utc_time = abs_time_secs_to_str (NULL, value, ABSOLUTE_TIME_LOCAL, TRUE);
snprintf(s, ITEM_LABEL_LENGTH, "%s", utc_time);
wmem_free(NULL, utc_time);
diff --git a/epan/dissectors/packet-zbee-zcl-meas-sensing.c b/epan/dissectors/packet-zbee-zcl-meas-sensing.c
index 32aaf159f4..9f39078992 100644
--- a/epan/dissectors/packet-zbee-zcl-meas-sensing.c
+++ b/epan/dissectors/packet-zbee-zcl-meas-sensing.c
@@ -2356,14 +2356,10 @@ dissect_zcl_elec_mes_attr_data(proto_tree *tree, tvbuff_t *tvb, guint *offset, g
*/
static void dissect_zcl_elec_mes_get_measurement_profile_info(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
proto_tree_add_item(tree, hf_zbee_zcl_elec_mes_attr_id, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
*offset += 2;
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_elec_mes_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_elec_mes_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
proto_tree_add_item(tree, hf_zbee_zcl_elec_mes_number_of_intervals, tvb, *offset, 1, ENC_NA);
@@ -2403,12 +2399,9 @@ static void dissect_zcl_elec_mes_get_profile_info_response(tvbuff_t *tvb, proto_
*/
static void dissect_zcl_elec_mes_get_measurement_profile_info_response(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
guint rem_len;
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_elec_mes_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_elec_mes_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
proto_tree_add_item(tree, hf_zbee_zcl_elec_mes_status, tvb, *offset, 1, ENC_NA);
diff --git a/epan/dissectors/packet-zbee-zcl-misc.c b/epan/dissectors/packet-zbee-zcl-misc.c
index a3b93c8200..f6df5a71ae 100644
--- a/epan/dissectors/packet-zbee-zcl-misc.c
+++ b/epan/dissectors/packet-zbee-zcl-misc.c
@@ -89,7 +89,7 @@
#define ZBEE_ZCL_ATTR_ID_THERMOSTAT_SETPOINT_CHANGE_SOURCE 0x0030
#define ZBEE_ZCL_ATTR_ID_THERMOSTAT_SETPOINT_CHANGE_AMOUNT 0x0031
#define ZBEE_ZCL_ATTR_ID_THERMOSTAT_SETPOINT_CHANGE_TIME 0x0032
-/* Air Conditioning Atrributes. */
+/* Air Conditioning Attributes. */
#define ZBEE_ZCL_ATTR_ID_THERMOSTAT_AC_TYPE 0x0040
#define ZBEE_ZCL_ATTR_ID_THERMOSTAT_AC_CAPACITY 0x0041
#define ZBEE_ZCL_ATTR_ID_THERMOSTAT_AC_REFRIGERANT_TYPE 0x0042
diff --git a/epan/dissectors/packet-zbee-zcl-sas.c b/epan/dissectors/packet-zbee-zcl-sas.c
index cfa0250e47..a0b0ca20eb 100644
--- a/epan/dissectors/packet-zbee-zcl-sas.c
+++ b/epan/dissectors/packet-zbee-zcl-sas.c
@@ -7,6 +7,8 @@
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * https://zigbeealliance.org/wp-content/uploads/2021/10/07-5123-08-Zigbee-Cluster-Library.pdf
*/
/* Include Files */
@@ -27,7 +29,7 @@
/*************************/
/* Defines */
/*************************/
-#define ZBEE_ZCL_IAS_ACE_NUM_ETT 4
+#define ZBEE_ZCL_IAS_ACE_NUM_ETT 7
/* Attributes - none */
@@ -39,11 +41,20 @@
#define ZBEE_ZCL_CMD_ID_IAS_ACE_PANIC 0x04 /* Panic */
#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_ID_MAP 0x05 /* Get Zone ID Map */
#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_INFO 0x06 /* Get Zone Information */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_PANEL_STATUS 0x07 /* Get Panel Status */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_BYPASSED_ZONE_LIST 0x08 /* Get Bypassed Zone List */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_STATUS 0x09 /* Get Zone Status */
/* Server Commands Generated */
#define ZBEE_ZCL_CMD_ID_IAS_ACE_ARM_RES 0x00 /* Arm Response */
#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_ID_MAP_RES 0x01 /* Get Zone ID Map Response */
#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_INFO_RES 0x02 /* Get Zone Information Response */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_ZONE_STATUS_CHANGED 0x03 /* Zone Status Changed */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_PANEL_STATUS_CHANGED 0x04 /* Panel Status Changed */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_PANEL_STATUS_RES 0x05 /* Get Panel Status Response */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_SET_BYPASSED_ZONE_LIST 0x06 /* Set Bypassed Zone List */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_BYPASS_RES 0x07 /* Bypass Response */
+#define ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_STATUS_RES 0x08 /* Get Zone Status Response */
/*************************/
@@ -57,9 +68,16 @@ void proto_reg_handoff_zbee_zcl_ias_ace(void);
static void dissect_zcl_ias_ace_arm (tvbuff_t *tvb, proto_tree *tree, guint *offset);
static void dissect_zcl_ias_ace_bypass (tvbuff_t *tvb, proto_tree *tree, guint *offset);
static void dissect_zcl_ias_ace_get_zone_info (tvbuff_t *tvb, proto_tree *tree, guint *offset);
+static void dissect_zcl_ias_ace_get_zone_status (tvbuff_t *tvb, proto_tree *tree, guint *offset);
static void dissect_zcl_ias_ace_arm_res (tvbuff_t *tvb, proto_tree *tree, guint *offset);
static void dissect_zcl_ias_ace_get_zone_id_map_res (tvbuff_t *tvb, proto_tree *tree, guint *offset);
static void dissect_zcl_ias_ace_get_zone_info_res (tvbuff_t *tvb, proto_tree *tree, guint *offset);
+static void dissect_zcl_ias_ace_zone_status_changed (tvbuff_t *tvb, proto_tree *tree, guint *offset);
+static void dissect_zcl_ias_ace_panel_status_changed (tvbuff_t *tvb, proto_tree *tree, guint *offset);
+static void dissect_zcl_ias_ace_get_panel_status_res (tvbuff_t *tvb, proto_tree *tree, guint *offset);
+static void dissect_zcl_ias_ace_set_bypassed_zone_list (tvbuff_t *tvb, proto_tree *tree, guint *offset);
+static void dissect_zcl_ias_ace_bypassed_res (tvbuff_t *tvb, proto_tree *tree, guint *offset);
+static void dissect_zcl_ias_ace_get_zone_status_res (tvbuff_t *tvb, proto_tree *tree, guint *offset);
/* Private functions prototype */
@@ -79,30 +97,54 @@ static int hf_zbee_zcl_ias_ace_zone_type;
static int hf_zbee_zcl_ias_ace_ieee_add;
static int hf_zbee_zcl_ias_ace_srv_rx_cmd_id;
static int hf_zbee_zcl_ias_ace_srv_tx_cmd_id;
+static int hf_zbee_zcl_ias_ace_starting_zone_id;
+static int hf_zbee_zcl_ias_ace_max_number_of_zone_ids;
+static int hf_zbee_zcl_ias_ace_zone_status_mask_flag;
+static int hf_zbee_zcl_ias_ace_zone_status_mask;
+static int hf_zbee_zcl_ias_ace_zone_status;
+static int hf_zbee_zcl_ias_ace_zone_audible_notif;
+static int hf_zbee_zcl_ias_ace_zone_label;
+static int hf_zbee_zcl_ias_ace_panel_status;
+static int hf_zbee_zcl_ias_ace_seconds_remaining;
+static int hf_zbee_zcl_ias_ace_alarm_status;
+static int hf_zbee_zcl_ias_ace_number_of_zones;
+static int hf_zbee_zcl_ias_ace_zone_status_complete;
/* Initialize the subtree pointers */
static gint ett_zbee_zcl_ias_ace;
static gint ett_zbee_zcl_ias_ace_zone_id;
static gint ett_zbee_zcl_ias_ace_zone_id_map_sec;
static gint ett_zbee_zcl_ias_ace_zone_id_map_sec_elem;
+static gint ett_zbee_zcl_ias_ace_bypassed_zone_list;
+static gint ett_zbee_zcl_ias_ace_bypassed_resp_list;
+static gint ett_zbee_zcl_ias_ace_get_zone_status_resp_list;
/* Server Commands Received */
static const value_string zbee_zcl_ias_ace_srv_rx_cmd_names[] = {
- { ZBEE_ZCL_CMD_ID_IAS_ACE_ARM, "Arm" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_BYPASS, "Bypass" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_EMERGENCY, "Emergency" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_FIRE, "Fire" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_PANIC, "Panic" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_ID_MAP, "Get Zone ID Map" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_INFO, "Get Zone Information" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_ARM, "Arm" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_BYPASS, "Bypass" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_EMERGENCY, "Emergency" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_FIRE, "Fire" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_PANIC, "Panic" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_ID_MAP, "Get Zone ID Map" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_INFO, "Get Zone Information" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_PANEL_STATUS, "Get Panel Status" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_BYPASSED_ZONE_LIST, "Get Bypassed Zone List" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_STATUS, "Get Zone Status" },
{ 0, NULL }
};
/* Server Commands Generated */
static const value_string zbee_zcl_ias_ace_srv_tx_cmd_names[] = {
- { ZBEE_ZCL_CMD_ID_IAS_ACE_ARM_RES, "Arm Response" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_ID_MAP_RES, "Get Zone ID Map Response" },
- { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_INFO_RES, "Get Zone Information Response" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_ARM_RES, "Arm Response" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_ID_MAP_RES, "Get Zone ID Map Response" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_INFO_RES, "Get Zone Information Response" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_ZONE_STATUS_CHANGED, "Zone Status Changed" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_PANEL_STATUS_CHANGED, "Panel Status Changed" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_PANEL_STATUS_RES, "Get Panel Status Response" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_SET_BYPASSED_ZONE_LIST, "Set Bypassed Zone List" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_BYPASS_RES, "Bypass Response" },
+ { ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_STATUS_RES, "Get Zone Status Response" },
{ 0, NULL }
};
@@ -124,6 +166,41 @@ static const value_string arm_notif_values[] = {
{ 0, NULL }
};
+/* Audible Notification Values */
+static const value_string audible_notif_values[] = {
+ { 0x00, "Mute" },
+ { 0x01, "Default sound" },
+ { 0, NULL }
+};
+
+/* Panel Status Values */
+static const value_string panel_status_values[] = {
+ { 0x00, "Panel disarmed" },
+ { 0x01, "Armed stay" },
+ { 0x02, "Armed night" },
+ { 0x03, "Armed away" },
+ { 0x04, "Exit delay" },
+ { 0x05, "Entry delay" },
+ { 0x06, "Not ready to arm" },
+ { 0x07, "In alarm" },
+ { 0x08, "Arming Stay" },
+ { 0x09, "Arming Night" },
+ { 0x0a, "Arming Away" },
+ { 0, NULL }
+};
+
+/* Panel Status Values */
+static const value_string alarm_status_values[] = {
+ { 0x00, "No alarm" },
+ { 0x01, "Burglar" },
+ { 0x02, "Fire" },
+ { 0x03, "Emergency" },
+ { 0x04, "Police Panic" },
+ { 0x05, "Fire Panic" },
+ { 0x06, "Emergency Panic" },
+ { 0, NULL }
+};
+
/*************************/
/* Function Bodies */
/*************************/
@@ -176,10 +253,15 @@ dissect_zbee_zcl_ias_ace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
case ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_INFO:
dissect_zcl_ias_ace_get_zone_info(tvb, payload_tree, &offset);
break;
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_STATUS:
+ dissect_zcl_ias_ace_get_zone_status(tvb, payload_tree, &offset);
+ break;
case ZBEE_ZCL_CMD_ID_IAS_ACE_EMERGENCY:
case ZBEE_ZCL_CMD_ID_IAS_ACE_FIRE:
case ZBEE_ZCL_CMD_ID_IAS_ACE_PANIC:
case ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_ID_MAP:
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_GET_BYPASSED_ZONE_LIST:
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_GET_PANEL_STATUS:
/* No Payload */
default:
break;
@@ -214,6 +296,30 @@ dissect_zbee_zcl_ias_ace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
dissect_zcl_ias_ace_get_zone_info_res(tvb, payload_tree, &offset);
break;
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_ZONE_STATUS_CHANGED:
+ dissect_zcl_ias_ace_zone_status_changed(tvb, payload_tree, &offset);
+ break;
+
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_PANEL_STATUS_CHANGED:
+ dissect_zcl_ias_ace_panel_status_changed(tvb, payload_tree, &offset);
+ break;
+
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_GET_PANEL_STATUS_RES:
+ dissect_zcl_ias_ace_get_panel_status_res(tvb, payload_tree, &offset);
+ break;
+
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_SET_BYPASSED_ZONE_LIST:
+ dissect_zcl_ias_ace_set_bypassed_zone_list(tvb, payload_tree, &offset);
+ break;
+
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_BYPASS_RES:
+ dissect_zcl_ias_ace_bypassed_res(tvb, payload_tree, &offset);
+ break;
+
+ case ZBEE_ZCL_CMD_ID_IAS_ACE_GET_ZONE_STATUS_RES:
+ dissect_zcl_ias_ace_get_zone_status_res(tvb, payload_tree, &offset);
+ break;
+
default:
break;
}
@@ -289,6 +395,217 @@ dissect_zcl_ias_ace_get_zone_info(tvbuff_t *tvb, proto_tree *tree, guint *offset
/**
+ *This function decodes the Get Zone Status payload.
+ *
+ *@param tvb the tv buffer of the current data_type
+ *@param tree the tree to append this item to
+ *@param offset offset of data in tvb
+*/
+static void
+dissect_zcl_ias_ace_get_zone_status(tvbuff_t *tvb, proto_tree *tree, guint *offset)
+{
+ /* Retrieve "Starting Zone ID" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_starting_zone_id, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Max Number of Zone IDs" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_max_number_of_zone_ids, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Zone Status Mask Flag" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_status_mask_flag, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Zone Status Mask" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_status_mask, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+ *offset += 2;
+
+} /*dissect_zcl_ias_ace_get_zone_status*/
+
+
+/**
+ *This function decodes the Zone Status Changed payload.
+ *
+ *@param tvb the tv buffer of the current data_type
+ *@param tree the tree to append this item to
+ *@param offset offset of data in tvb
+*/
+static void
+dissect_zcl_ias_ace_zone_status_changed(tvbuff_t *tvb, proto_tree *tree, guint *offset)
+{
+ int length;
+
+ /* Retrieve "Zone ID" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_id, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Zone Status" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_status, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+ *offset += 2;
+
+ /* Retrieve "Audible Notification" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_audible_notif, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Rate Label */
+ proto_tree_add_item_ret_length(tree, hf_zbee_zcl_ias_ace_zone_label, tvb, *offset, 1, ENC_NA | ENC_ZIGBEE, &length);
+ *offset += length;
+
+} /*dissect_zcl_ias_ace_zone_status_changed*/
+
+
+/**
+ *This function decodes the Panel Status Changed payload.
+ *
+ *@param tvb the tv buffer of the current data_type
+ *@param tree the tree to append this item to
+ *@param offset offset of data in tvb
+*/
+static void
+dissect_zcl_ias_ace_panel_status_changed(tvbuff_t *tvb, proto_tree *tree, guint *offset)
+{
+ /* Retrieve "Panel Status" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_panel_status, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Seconds Remaining" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_seconds_remaining, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Audible Notification" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_audible_notif, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Alarm Status" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_alarm_status, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+} /*dissect_zcl_ias_ace_panel_status_changed*/
+
+
+/**
+ *This function decodes the Get Panel Status Response payload.
+ *
+ *@param tvb the tv buffer of the current data_type
+ *@param tree the tree to append this item to
+ *@param offset offset of data in tvb
+*/
+static void
+dissect_zcl_ias_ace_get_panel_status_res(tvbuff_t *tvb, proto_tree *tree, guint *offset)
+{
+ /* Retrieve "Panel Status" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_panel_status, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Seconds Remaining" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_seconds_remaining, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Audible Notification" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_audible_notif, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ /* Retrieve "Alarm Status" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_alarm_status, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+} /*dissect_zcl_ias_ace_get_panel_status_res*/
+
+
+/**
+ *This function decodes the Set Bypassed Zone List payload.
+ *
+ *@param tvb the tv buffer of the current data_type
+ *@param tree the tree to append this item to
+ *@param offset offset of data in tvb
+*/
+static void
+dissect_zcl_ias_ace_set_bypassed_zone_list(tvbuff_t *tvb, proto_tree *tree, guint *offset)
+{
+ size_t length = tvb_get_guint8(tvb, *offset);
+
+ /* Retrieve "Number of Zones" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_number_of_zones, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ if (length > 0) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(tree, ett_zbee_zcl_ias_ace_bypassed_zone_list);
+
+ for (size_t i = 0; i < length; i++) {
+ /* Retrieve "Zone ID n" field */
+ proto_tree_add_item(subtree, hf_zbee_zcl_ias_ace_zone_id, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+ }
+ }
+} /*dissect_zcl_ias_ace_set_bypassed_zone_list*/
+
+
+/**
+ *This function decodes the Set Bypassed Zone List payload.
+ *
+ *@param tvb the tv buffer of the current data_type
+ *@param tree the tree to append this item to
+ *@param offset offset of data in tvb
+*/
+static void
+dissect_zcl_ias_ace_bypassed_res(tvbuff_t *tvb, proto_tree *tree, guint *offset)
+{
+ size_t length = tvb_get_guint8(tvb, *offset);
+
+ /* Retrieve "Number of Zones" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_number_of_zones, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ if (length > 0) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(tree, ett_zbee_zcl_ias_ace_bypassed_resp_list);
+
+ for (size_t i = 0; i < length; i++) {
+ /* Retrieve "Bypass Result for Zone ID n" field */
+ proto_tree_add_item(subtree, hf_zbee_zcl_ias_ace_zone_id, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+ }
+ }
+} /*dissect_zcl_ias_ace_bypassed_res */
+
+
+
+/**
+ *This function decodes the Set Bypassed Zone List payload.
+ *
+ *@param tvb the tv buffer of the current data_type
+ *@param tree the tree to append this item to
+ *@param offset offset of data in tvb
+*/
+static void
+dissect_zcl_ias_ace_get_zone_status_res(tvbuff_t *tvb, proto_tree *tree, guint *offset)
+{
+ size_t length = 0;
+
+ /* Retrieve "Zone Status Complete" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_zone_status_complete, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ length = tvb_get_guint8(tvb, *offset);
+
+ /* Retrieve "Number of Zones" field */
+ proto_tree_add_item(tree, hf_zbee_zcl_ias_ace_number_of_zones, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+
+ if (length > 0) {
+ proto_tree *subtree;
+ subtree = proto_item_add_subtree(tree, ett_zbee_zcl_ias_ace_get_zone_status_resp_list);
+
+ for (size_t i = 0; i < length; i++) {
+ /* Retrieve "Bypass Result for Zone ID n" field */
+ proto_tree_add_item(subtree, hf_zbee_zcl_ias_ace_zone_id, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+ }
+ }
+} /*dissect_zcl_ias_ace_get_zone_status_res */
+
+/**
*This function decodes the Arm Response payload.
*
*@param tvb the tv buffer of the current data_type
@@ -398,8 +715,55 @@ proto_register_zbee_zcl_ias_ace(void)
{ &hf_zbee_zcl_ias_ace_srv_tx_cmd_id,
{ "Command", "zbee_zcl_sas.ias_ace.cmd.srv_tx.id", FT_UINT8, BASE_HEX, VALS(zbee_zcl_ias_ace_srv_tx_cmd_names),
- 0x0, NULL, HFILL } }
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_starting_zone_id,
+ { "Starting Zone ID", "zbee_zcl_sas.ias_ace.cmd.starting_zone_id", FT_UINT8, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+ { &hf_zbee_zcl_ias_ace_max_number_of_zone_ids,
+ { "Max Number Of Zone IDs", "zbee_zcl_sas.ias_ace.cmd.max_number_of_zone_ids", FT_UINT8, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_zone_status_mask_flag,
+ { "Zone Status Mask Flag", "zbee_zcl_sas.ias_ace.cmd.zone_status_mask_flag", FT_BOOLEAN, BASE_NONE, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_zone_status_mask,
+ { "Zone Status Mask", "zbee_zcl_sas.ias_ace.cmd.zone_status_mask", FT_UINT16, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_zone_status,
+ { "Zone Status", "zbee_zcl_sas.ias_ace.cmd.zone_status", FT_UINT16, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_zone_audible_notif,
+ { "Audible Notification", "zbee_zcl_sas.ias_ace.cmd.zone_audible_notif", FT_UINT16, BASE_HEX, VALS(audible_notif_values),
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_zone_label,
+ { "Zone Label", "zbee_zcl_sas.ias_ace.cmd.zone_label", FT_UINT_STRING, BASE_NONE, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_panel_status,
+ { "Panel Status", "zbee_zcl_sas.ias_ace.cmd.panel_status", FT_UINT8, BASE_HEX, VALS(panel_status_values),
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_seconds_remaining,
+ { "Seconds Remaining", "zbee_zcl_sas.ias_ace.cmd.seconds_remaining", FT_UINT8, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_alarm_status,
+ { "Alarm Status", "zbee_zcl_sas.ias_ace.cmd.alarm_status", FT_UINT8, BASE_HEX, VALS(alarm_status_values),
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_number_of_zones,
+ { "Number of Zones", "zbee_zcl_sas.ias_ace.cmd.number_of_zones", FT_UINT8, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_ias_ace_zone_status_complete,
+ { "Zone Status Complete", "zbee_zcl_sas.ias_ace.cmd.zone_status_complete", FT_BOOLEAN, BASE_NONE, NULL,
+ 0x0, NULL, HFILL } },
};
/* ZCL IAS ACE subtrees */
@@ -408,6 +772,9 @@ proto_register_zbee_zcl_ias_ace(void)
ett[1] = &ett_zbee_zcl_ias_ace_zone_id;
ett[2] = &ett_zbee_zcl_ias_ace_zone_id_map_sec;
ett[3] = &ett_zbee_zcl_ias_ace_zone_id_map_sec_elem;
+ ett[4] = &ett_zbee_zcl_ias_ace_bypassed_zone_list;
+ ett[5] = &ett_zbee_zcl_ias_ace_bypassed_resp_list;
+ ett[6] = &ett_zbee_zcl_ias_ace_get_zone_status_resp_list;
/* Register the ZigBee ZCL IAS ACE cluster protocol name and description */
proto_zbee_zcl_ias_ace = proto_register_protocol("ZigBee ZCL IAS ACE", "ZCL IAS ACE", ZBEE_PROTOABBREV_ZCL_IAS_ACE);
diff --git a/epan/dissectors/packet-zbee-zcl-se.c b/epan/dissectors/packet-zbee-zcl-se.c
index 3603f88d11..edb78c154c 100644
--- a/epan/dissectors/packet-zbee-zcl-se.c
+++ b/epan/dissectors/packet-zbee-zcl-se.c
@@ -20,6 +20,8 @@
#include <epan/expert.h>
#include <epan/to_str.h>
+#include <wsutil/epochs.h>
+
#include "packet-zbee.h"
#include "packet-zbee-aps.h"
#include "packet-zbee-zcl.h"
@@ -2903,8 +2905,6 @@ dissect_zcl_price_publish_cpp_event(tvbuff_t *tvb, proto_tree *tree, guint *offs
static void
dissect_zcl_price_publish_credit_payment(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t credit_payment_due_date;
- nstime_t credit_payment_date;
int length;
/* Provider ID */
@@ -2916,9 +2916,7 @@ dissect_zcl_price_publish_credit_payment(tvbuff_t *tvb, proto_tree *tree, guint
*offset += 4;
/* Credit Payment Due Date */
- credit_payment_due_date.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- credit_payment_due_date.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_price_credit_payment_due_date, tvb, *offset, 4, &credit_payment_due_date);
+ proto_tree_add_item(tree, hf_zbee_zcl_price_credit_payment_due_date, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Credit Payment Overdue Amount */
@@ -2934,9 +2932,7 @@ dissect_zcl_price_publish_credit_payment(tvbuff_t *tvb, proto_tree *tree, guint
*offset += 4;
/* Credit Payment Date */
- credit_payment_date.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- credit_payment_date.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_price_credit_payment_date, tvb, *offset, 4, &credit_payment_date);
+ proto_tree_add_item(tree, hf_zbee_zcl_price_credit_payment_date, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Credit Payment Ref */
@@ -3985,8 +3981,6 @@ dissect_zcl_drlc_cancel_all_load_control_event(tvbuff_t *tvb, proto_tree *tree,
static void
dissect_zcl_drlc_report_event_status(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t event_status_time;
-
/* Issuer Event ID */
proto_tree_add_item(tree, hf_zbee_zcl_drlc_report_event_issuer_event_id, tvb,
*offset, 4, ENC_LITTLE_ENDIAN);
@@ -3997,9 +3991,7 @@ dissect_zcl_drlc_report_event_status(tvbuff_t *tvb, proto_tree *tree, guint *off
*offset += 1;
/* Event Status Time */
- event_status_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- event_status_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_drlc_report_event_event_status_time, tvb, *offset, 4, &event_status_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_drlc_report_event_event_status_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Criticality Level Applied */
@@ -6170,16 +6162,12 @@ dissect_zbee_zcl_met(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
static void
dissect_zcl_met_get_profile(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t end_time;
-
/* Interval Channel */
proto_tree_add_item(tree, hf_zbee_zcl_met_get_profile_interval_channel, tvb, *offset, 1, ENC_NA);
*offset += 1;
/* End Time */
- end_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- end_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_get_profile_end_time, tvb, *offset, 4, &end_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_get_profile_end_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Number of Periods */
@@ -6246,7 +6234,6 @@ dissect_zcl_met_request_fast_poll_mode(tvbuff_t *tvb, proto_tree *tree, guint *o
static void
dissect_zcl_met_schedule_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
/* Issue Event ID */
proto_tree_add_item(tree, hf_zbee_zcl_met_schedule_snapshot_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
@@ -6271,9 +6258,7 @@ dissect_zcl_met_schedule_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset
*offset += 1;
/* Snapshot Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_schedule_snapshot_snapshot_schedule_payload_snapshot_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_schedule_snapshot_snapshot_schedule_payload_snapshot_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Snapshot Schedule */
@@ -6320,20 +6305,13 @@ dissect_zcl_met_take_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_met_get_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
- nstime_t end_time;
-
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_get_snapshot_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_get_snapshot_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
if (gPREF_zbee_se_protocol_version >= ZBEE_SE_VERSION_1_2) {
/* End Time - Introduced from ZCL version 1.2 */
- end_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- end_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_get_snapshot_end_time, tvb, *offset, 4, &end_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_get_snapshot_end_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
}
@@ -6357,16 +6335,12 @@ dissect_zcl_met_get_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_met_start_sampling(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t sample_time;
-
/* Issuer Event ID */
proto_tree_add_item(tree, hf_zbee_zcl_met_start_sampling_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
/* Start Sampling Time */
- sample_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- sample_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_start_sampling_start_sampling_time, tvb, *offset, 4, &sample_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_start_sampling_start_sampling_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Sample Type */
@@ -6392,16 +6366,12 @@ dissect_zcl_met_start_sampling(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_met_get_sampled_data(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t sample_time;
-
/* Sample ID */
proto_tree_add_item(tree, hf_zbee_zcl_met_get_sampled_data_sample_id, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
*offset += 2;
/* Sample Start Time */
- sample_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- sample_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_get_sampled_data_sample_start_time, tvb, *offset, 4, &sample_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_get_sampled_data_sample_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Sample Type */
@@ -6487,9 +6457,6 @@ dissect_zcl_met_reset_load_limit_counter(tvbuff_t *tvb, proto_tree *tree, guint
static void
dissect_zcl_met_change_supply(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t request_time;
- nstime_t implementation_time;
-
/* Provider ID */
proto_tree_add_item(tree, hf_zbee_zcl_met_change_supply_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
@@ -6499,15 +6466,11 @@ dissect_zcl_met_change_supply(tvbuff_t *tvb, proto_tree *tree, guint *offset)
*offset += 4;
/* Request Date/Time */
- request_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- request_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_change_supply_request_date_time, tvb, *offset, 4, &request_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_change_supply_request_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Implementation Date/Time */
- implementation_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- implementation_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_change_supply_implementation_date_time, tvb, *offset, 4, &implementation_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_change_supply_implementation_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Proposed Supple Status */
@@ -6662,7 +6625,7 @@ dissect_zcl_met_request_fast_poll_mode_response(tvbuff_t *tvb, proto_tree *tree,
/* Fast Poll End Time */
end_time_utc = (guint32)tvb_get_letohl(tvb, *offset);
- end_time.secs = end_time_utc + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ end_time.secs = end_time_utc + EPOCH_DELTA_2000_01_01_00_00_00_UTC;
end_time.nsecs = 0;
end_time_string = (const guint8 *)abs_time_to_str(wmem_packet_scope(), &end_time, ABSOLUTE_TIME_UTC, TRUE);
proto_tree_add_time_format(tree, hf_zbee_zcl_met_request_fast_poll_mode_response_fast_poll_mode_end_time, tvb, *offset, 4, &end_time,
@@ -6729,7 +6692,6 @@ dissect_zcl_met_take_snapshot_response(tvbuff_t *tvb, proto_tree *tree, guint *o
static void
dissect_zcl_met_publish_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t snapshot_time;
gint rem_len;
/* Snapshot ID */
@@ -6737,9 +6699,7 @@ dissect_zcl_met_publish_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
*offset += 4;
/* Snapshot Time */
- snapshot_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- snapshot_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_publish_snapshot_snapshot_time, tvb, *offset, 4, &snapshot_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_publish_snapshot_snapshot_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Total Snapshots Found */
@@ -6779,7 +6739,6 @@ dissect_zcl_met_publish_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_met_get_sampled_data_rsp(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t sample_start_time;
gint rem_len;
/* Snapshot ID */
@@ -6787,9 +6746,7 @@ dissect_zcl_met_get_sampled_data_rsp(tvbuff_t *tvb, proto_tree *tree, guint *off
*offset += 2;
/* Sample Start Time */
- sample_start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- sample_start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_get_sampled_data_rsp_sample_start_time, tvb, *offset, 4, &sample_start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_get_sampled_data_rsp_sample_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Sample Type */
@@ -6974,8 +6931,6 @@ dissect_zcl_met_get_notified_msg(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_met_supply_status_response(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t implementation_date_time;
-
/* Provider ID */
proto_tree_add_item(tree, hf_zbee_zcl_met_supply_status_response_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
@@ -6985,9 +6940,7 @@ dissect_zcl_met_supply_status_response(tvbuff_t *tvb, proto_tree *tree, guint *o
*offset += 4;
/* Implementation Date/Time */
- implementation_date_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- implementation_date_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_met_supply_status_response_implementation_date_time, tvb, *offset, 4, &implementation_date_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_met_supply_status_response_implementation_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Supply Status After Implementation */
@@ -8157,12 +8110,8 @@ dissect_zcl_msg_cancel(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
static void
dissect_zcl_msg_cancel_all(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t impl_time;
-
/* Implementation Date/Time */
- impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- impl_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_msg_implementation_time, tvb, *offset, 4, &impl_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_msg_implementation_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
} /* dissect_zcl_msg_cancel_all */
@@ -8177,12 +8126,8 @@ dissect_zcl_msg_cancel_all(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_msg_get_cancel(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t impl_time;
-
/* Earliest Implementation Time */
- impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- impl_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_msg_earliest_time, tvb, *offset, 4, &impl_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_msg_earliest_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
} /* dissect_zcl_msg_get_cancel */
@@ -8198,16 +8143,13 @@ static void
dissect_zcl_msg_confirm(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
guint msg_len;
- nstime_t confirm_time;
/* Message ID */
proto_tree_add_item(tree, hf_zbee_zcl_msg_message_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
/* Confirmation Time */
- confirm_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- confirm_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_msg_confirm_time, tvb, *offset, 4, &confirm_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_msg_confirm_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* (Optional) Confirm Control */
@@ -9521,12 +9463,8 @@ dissect_zbee_zcl_pp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
static void
dissect_zcl_pp_select_available_emergency_credit(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
/* Command Issue Date/Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_select_available_emc_cmd_issue_date_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_select_available_emc_cmd_issue_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Originating Device */
@@ -9545,7 +9483,6 @@ static void
dissect_zcl_pp_change_debt(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
guint8 label_length;
- nstime_t start_time;
/* Issuer Event ID */
proto_tree_add_item(tree, hf_zbee_zcl_pp_change_debt_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
@@ -9569,9 +9506,7 @@ dissect_zcl_pp_change_debt(tvbuff_t *tvb, proto_tree *tree, guint *offset)
*offset += 1;
/* Debt Recovery Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_change_debt_recovery_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_change_debt_recovery_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Debt Recovery Collection Time */
@@ -9601,16 +9536,12 @@ dissect_zcl_pp_change_debt(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_pp_emergency_credit_setup(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
/* Issuer Event ID */
proto_tree_add_item(tree, hf_zbee_zcl_pp_emergency_credit_setup_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_emergency_credit_setup_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_emergency_credit_setup_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Emergency Credit Limit */
@@ -9653,16 +9584,12 @@ dissect_zcl_pp_consumer_top_up(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_pp_credit_adjustment(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
/* Issuer Event ID */
proto_tree_add_item(tree, hf_zbee_zcl_pp_credit_adjustment_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_credit_adjustment_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_credit_adjustment_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Credit Adjustment Type */
@@ -9684,8 +9611,6 @@ dissect_zcl_pp_credit_adjustment(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_pp_change_payment_mode(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
/* Provider ID */
proto_tree_add_item(tree, hf_zbee_zcl_pp_change_payment_mode_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
@@ -9695,9 +9620,7 @@ dissect_zcl_pp_change_payment_mode(tvbuff_t *tvb, proto_tree *tree, guint *offse
*offset += 4;
/* Implementation Date/Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_change_payment_mode_implementation_date_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_change_payment_mode_implementation_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Proposed Payment Control Configuration */
@@ -9720,19 +9643,12 @@ dissect_zcl_pp_change_payment_mode(tvbuff_t *tvb, proto_tree *tree, guint *offse
static void
dissect_zcl_pp_get_prepay_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
- nstime_t end_time;
-
/* Earliest Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_get_prepay_snapshot_earliest_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_get_prepay_snapshot_earliest_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Latest End Time */
- end_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- end_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_get_prepay_snapshot_latest_end_time, tvb, *offset, 4, &end_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_get_prepay_snapshot_latest_end_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Snapshot Offset */
@@ -9755,12 +9671,8 @@ dissect_zcl_pp_get_prepay_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offse
static void
dissect_zcl_pp_get_top_up_log(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t end_time;
-
/* Latest End Time */
- end_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- end_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_get_top_up_log_latest_end_time, tvb, *offset, 4, &end_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_get_top_up_log_latest_end_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Number of Records */
@@ -9793,12 +9705,8 @@ dissect_zcl_pp_set_low_credit_warning_level(tvbuff_t *tvb, proto_tree *tree, gui
static void
dissect_zcl_pp_get_debt_repayment_log(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t end_time;
-
/* Latest End Time */
- end_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- end_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_get_debt_repayment_log_latest_end_time, tvb, *offset, 4, &end_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_get_debt_repayment_log_latest_end_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Number of Records */
@@ -9820,8 +9728,6 @@ dissect_zcl_pp_get_debt_repayment_log(tvbuff_t *tvb, proto_tree *tree, guint *of
static void
dissect_zcl_pp_set_maximum_credit_limit(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
/* Provider ID */
proto_tree_add_item(tree, hf_zbee_zcl_pp_set_maximum_credit_limit_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
@@ -9831,9 +9737,7 @@ dissect_zcl_pp_set_maximum_credit_limit(tvbuff_t *tvb, proto_tree *tree, guint *
*offset += 4;
/* Implementation Date/Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_set_maximum_credit_limit_implementation_date_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_set_maximum_credit_limit_implementation_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Maximum Credit Level */
@@ -9855,8 +9759,6 @@ dissect_zcl_pp_set_maximum_credit_limit(tvbuff_t *tvb, proto_tree *tree, guint *
static void
dissect_zcl_pp_set_overall_debt_cap(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
/* Provider ID */
proto_tree_add_item(tree, hf_zbee_zcl_pp_set_overall_debt_cap_limit_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
@@ -9866,9 +9768,7 @@ dissect_zcl_pp_set_overall_debt_cap(tvbuff_t *tvb, proto_tree *tree, guint *offs
*offset += 4;
/* Implementation Date/Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_set_overall_debt_cap_limit_implementation_date_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_set_overall_debt_cap_limit_implementation_date_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Overall Debt Cap */
@@ -9886,7 +9786,6 @@ dissect_zcl_pp_set_overall_debt_cap(tvbuff_t *tvb, proto_tree *tree, guint *offs
static void
dissect_zcl_pp_publish_prepay_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t snapshot_time;
gint rem_len;
/* Snapshot ID */
@@ -9894,9 +9793,7 @@ dissect_zcl_pp_publish_prepay_snapshot(tvbuff_t *tvb, proto_tree *tree, guint *o
*offset += 4;
/* Snapshot Time */
- snapshot_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- snapshot_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_pp_publish_prepay_snapshot_snapshot_time, tvb, *offset, 4, &snapshot_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_pp_publish_prepay_snapshot_snapshot_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Total Snapshots Found */
@@ -9992,7 +9889,6 @@ dissect_zcl_pp_publish_top_up_log(tvbuff_t *tvb, proto_tree *tree, guint *offset
{
guint i = 0;
gint length;
- nstime_t top_up_time;
proto_tree *sub_tree;
/* Command Index */
@@ -10018,9 +9914,7 @@ dissect_zcl_pp_publish_top_up_log(tvbuff_t *tvb, proto_tree *tree, guint *offset
*offset += 4;
/* Top Up Time */
- top_up_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- top_up_time.nsecs = 0;
- proto_tree_add_time(sub_tree, hf_zbee_zcl_pp_publish_top_up_log_top_up_time, tvb, *offset, 4, &top_up_time);
+ proto_tree_add_item(sub_tree, hf_zbee_zcl_pp_publish_top_up_log_top_up_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Set length of subtree */
@@ -10039,7 +9933,6 @@ static void
dissect_zcl_pp_publish_debt_log(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
guint i = 0;
- nstime_t collection_time;
proto_tree *sub_tree;
/* Command Index */
@@ -10057,9 +9950,7 @@ dissect_zcl_pp_publish_debt_log(tvbuff_t *tvb, proto_tree *tree, guint *offset)
i++;
/* Collection Time */
- collection_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- collection_time.nsecs = 0;
- proto_tree_add_time(sub_tree, hf_zbee_zcl_pp_publish_debt_log_collection_time, tvb, *offset, 4, &collection_time);
+ proto_tree_add_item(sub_tree, hf_zbee_zcl_pp_publish_debt_log_collection_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Amount Collected */
@@ -10733,7 +10624,6 @@ static void
dissect_zbee_zcl_energy_management_report_event_status(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
/* Event Control */
- nstime_t event_status_time;
/* Issuer Event ID */
proto_tree_add_item(tree, hf_zbee_zcl_energy_management_report_event_issuer_event_id, tvb,
@@ -10745,9 +10635,7 @@ dissect_zbee_zcl_energy_management_report_event_status(tvbuff_t *tvb, proto_tree
*offset += 1;
/* Event Status Time */
- event_status_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- event_status_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_energy_management_report_event_event_status_time, tvb, *offset, 4, &event_status_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_energy_management_report_event_event_status_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Criticality Level Applied */
@@ -11362,12 +11250,8 @@ dissect_zbee_zcl_calendar(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
static void
dissect_zcl_calendar_get_calendar(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t earliest_start_time;
-
/* Earliest Start Time */
- earliest_start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- earliest_start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_calendar_earliest_start_time, tvb, *offset, 4, &earliest_start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_calendar_earliest_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Min Issuer Event ID */
@@ -11470,12 +11354,8 @@ dissect_zcl_calendar_get_seasons(tvbuff_t *tvb, proto_tree *tree, guint *offset)
static void
dissect_zcl_calendar_get_special_days(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
-
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_calendar_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_calendar_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Number of Events */
@@ -11505,7 +11385,6 @@ dissect_zcl_calendar_get_special_days(tvbuff_t *tvb, proto_tree *tree, guint *of
static void
dissect_zcl_calendar_publish_calendar(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
int length;
/* Provider Id */
@@ -11521,9 +11400,7 @@ dissect_zcl_calendar_publish_calendar(tvbuff_t *tvb, proto_tree *tree, guint *of
*offset += 4;
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_calendar_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_calendar_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Calendar Type */
@@ -11736,7 +11613,6 @@ static void
dissect_zcl_calendar_publish_special_days(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
guint8 total_special_days_count;
- nstime_t start_time;
/* Provider Id */
proto_tree_add_item(tree, hf_zbee_zcl_calendar_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
@@ -11751,9 +11627,7 @@ dissect_zcl_calendar_publish_special_days(tvbuff_t *tvb, proto_tree *tree, guint
*offset += 4;
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_calendar_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_calendar_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Calendar Type */
@@ -12239,7 +12113,6 @@ dissect_zbee_zcl_daily_schedule(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
static void
dissect_zcl_daily_schedule_publish_schedule(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
int length;
/* Provider Id */
@@ -12255,9 +12128,7 @@ dissect_zcl_daily_schedule_publish_schedule(tvbuff_t *tvb, proto_tree *tree, gui
*offset += 4;
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_daily_schedule_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_daily_schedule_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Schedule Type */
@@ -12368,16 +12239,12 @@ dissect_zcl_daily_schedule_cancel_schedule(tvbuff_t *tvb, proto_tree *tree, guin
static void
dissect_zcl_daily_schedule_get_schedule(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t earliest_start_time;
-
/* Provider Id */
proto_tree_add_item(tree, hf_zbee_zcl_daily_schedule_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
/* Earliest Start Time */
- earliest_start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- earliest_start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_daily_schedule_earliest_start_time, tvb, *offset, 4, &earliest_start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_daily_schedule_earliest_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Min Issuer Event ID */
@@ -13319,8 +13186,6 @@ dissect_zcl_device_management_report_event_configuration(proto_tree *tree, tvbuf
static void
dissect_zcl_device_management_publish_change_of_tenancy(proto_tree *tree, tvbuff_t *tvb, guint *offset)
{
- nstime_t impl_date;
-
/* Provider ID */
proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_tenancy_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
*offset += 4;
@@ -13334,9 +13199,7 @@ dissect_zcl_device_management_publish_change_of_tenancy(proto_tree *tree, tvbuff
*offset += 1;
/* Implementation Date/Time */
- impl_date.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- impl_date.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_device_management_publish_change_of_tenancy_implementation_date, tvb, *offset, 4, &impl_date);
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_tenancy_implementation_date, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Proposed Tenancy Change Control */
@@ -13356,7 +13219,6 @@ dissect_zcl_device_management_publish_change_of_tenancy(proto_tree *tree, tvbuff
static void
dissect_zcl_device_management_publish_change_of_supplier(proto_tree *tree, tvbuff_t *tvb, guint *offset)
{
- nstime_t impl_time;
gint name_length;
gint detail_length;
@@ -13377,9 +13239,7 @@ dissect_zcl_device_management_publish_change_of_supplier(proto_tree *tree, tvbuf
*offset += 4;
/* Provider Change Implementation Time */
- impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- impl_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_implementation_time, tvb, *offset, 4, &impl_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_implementation_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Provider Change Control */
@@ -13406,7 +13266,6 @@ dissect_zcl_device_management_publish_change_of_supplier(proto_tree *tree, tvbuf
static void
dissect_zcl_device_management_request_new_password_response(proto_tree *tree, tvbuff_t *tvb, guint *offset)
{
- nstime_t impl_date;
gint password_length;
/* Issuer Event ID */
@@ -13414,9 +13273,7 @@ dissect_zcl_device_management_request_new_password_response(proto_tree *tree, tv
*offset += 4;
/* Implementation Date/Time */
- impl_date.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- impl_date.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_device_management_request_new_password_implementation_date, tvb, *offset, 4, &impl_date);
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_request_new_password_implementation_date, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Duration in minutes */
@@ -13443,7 +13300,6 @@ dissect_zcl_device_management_request_new_password_response(proto_tree *tree, tv
static void
dissect_zcl_device_management_update_site_id(proto_tree *tree, tvbuff_t *tvb, guint *offset)
{
- nstime_t siteid_time;
gint siteid_length;
/* Issuer Event ID */
@@ -13451,9 +13307,7 @@ dissect_zcl_device_management_update_site_id(proto_tree *tree, tvbuff_t *tvb, gu
*offset += 4;
/* SiteID Time */
- siteid_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- siteid_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_device_management_update_site_id_site_id_time, tvb, *offset, 4, &siteid_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_update_site_id_site_id_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Provider ID */
@@ -13476,7 +13330,6 @@ dissect_zcl_device_management_update_site_id(proto_tree *tree, tvbuff_t *tvb, gu
static void
dissect_zcl_device_management_set_event_configuration(proto_tree *tree, tvbuff_t *tvb, guint *offset)
{
- nstime_t start_time;
guint8 config_control;
guint8 number_of_events;
@@ -13485,9 +13338,7 @@ dissect_zcl_device_management_set_event_configuration(proto_tree *tree, tvbuff_t
*offset += 4;
/* Start Date/Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_device_management_set_event_configuration_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Event Configuration */
@@ -13557,7 +13408,6 @@ dissect_zcl_device_management_get_event_configuration(proto_tree *tree, tvbuff_t
static void
dissect_zcl_device_management_update_cin(proto_tree *tree, tvbuff_t *tvb, guint *offset)
{
- nstime_t cin_impl_time;
gint customer_id_length;
/* Issuer Event ID */
@@ -13565,9 +13415,7 @@ dissect_zcl_device_management_update_cin(proto_tree *tree, tvbuff_t *tvb, guint
*offset += 4;
/* CIN Implementation Time */
- cin_impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- cin_impl_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_device_management_update_cin_cin_implementation_time, tvb, *offset, 4, &cin_impl_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_update_cin_cin_implementation_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Provider ID */
@@ -14186,9 +14034,6 @@ dissect_zbee_zcl_events(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
static void
dissect_zcl_events_get_event_log(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t start_time;
- nstime_t end_time;
-
/* Event Control / Log ID */
proto_tree_add_item(tree, hf_zbee_zcl_events_get_event_log_event_control_log_id, tvb, *offset, 1, ENC_NA);
*offset += 1;
@@ -14198,15 +14043,11 @@ dissect_zcl_events_get_event_log(tvbuff_t *tvb, proto_tree *tree, guint *offset)
*offset += 2;
/* Start Time */
- start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- start_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_events_get_event_log_start_time, tvb, *offset, 4, &start_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_events_get_event_log_start_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* End Time */
- end_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- end_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_events_get_event_log_end_time, tvb, *offset, 4, &end_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_events_get_event_log_end_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Number of Events */
@@ -14243,7 +14084,6 @@ dissect_zcl_events_clear_event_log_request(tvbuff_t *tvb, proto_tree *tree, guin
static void
dissect_zcl_events_publish_event(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
- nstime_t event_time;
gint length;
if (gPREF_zbee_se_protocol_version >= ZBEE_SE_VERSION_1_2) {
@@ -14257,9 +14097,7 @@ dissect_zcl_events_publish_event(tvbuff_t *tvb, proto_tree *tree, guint *offset)
*offset += 2;
/* Event Time */
- event_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- event_time.nsecs = 0;
- proto_tree_add_time(tree, hf_zbee_zcl_events_publish_event_event_time, tvb, *offset, 4, &event_time);
+ proto_tree_add_item(tree, hf_zbee_zcl_events_publish_event_event_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Event Control */
@@ -14282,7 +14120,6 @@ static void
dissect_zcl_events_publish_event_log(tvbuff_t *tvb, proto_tree *tree, guint *offset)
{
proto_tree* event_log_tree;
- nstime_t event_time;
int length;
/* Total Number of Matching Events */
@@ -14317,9 +14154,7 @@ dissect_zcl_events_publish_event_log(tvbuff_t *tvb, proto_tree *tree, guint *off
*offset += 2;
/* Event Time */
- event_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
- event_time.nsecs = 0;
- proto_tree_add_time(event_log_tree, hf_zbee_zcl_events_publish_event_log_event_time, tvb, *offset, 4, &event_time);
+ proto_tree_add_item(event_log_tree, hf_zbee_zcl_events_publish_event_log_event_time, tvb, *offset, 4, ENC_TIME_ZBEE_ZCL|ENC_LITTLE_ENDIAN);
*offset += 4;
/* Event Data */
diff --git a/epan/dissectors/packet-zbee-zcl.c b/epan/dissectors/packet-zbee-zcl.c
index ae70655414..2182d2e887 100644
--- a/epan/dissectors/packet-zbee-zcl.c
+++ b/epan/dissectors/packet-zbee-zcl.c
@@ -20,6 +20,8 @@
#include <epan/expert.h>
#include <epan/to_str.h>
+#include <wsutil/epochs.h>
+
#include "packet-zbee.h"
#include "packet-zbee-nwk.h"
#include "packet-zbee-zcl.h"
@@ -160,7 +162,7 @@ static dissector_table_t zbee_zcl_dissector_table;
static guint16 zcl_cluster_id = -1;
static guint16 zcl_mfr_code = -1;
-static GList *acluster_desc = NULL;
+static GList *acluster_desc;
/********************/
/* Field Names */
@@ -1757,7 +1759,7 @@ static void dissect_zcl_read_attr_struct(tvbuff_t* tvb, packet_info* pinfo _U_,
gboolean client_attr = direction == ZBEE_ZCL_FCF_TO_CLIENT;
tvb_len = tvb_captured_length(tvb);
while (*offset < tvb_len && i < ZBEE_ZCL_NUM_SEL_ETT) {
- /* Create subtree for aelector field */
+ /* Create subtree for selector field */
sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 0, ett_zbee_zcl_sel[i], NULL, "Selector");
i++;
/* Dissect the attribute identifier */
@@ -1789,7 +1791,7 @@ static void dissect_zcl_write_attr_struct(tvbuff_t* tvb, packet_info* pinfo _U_,
gboolean client_attr = direction == ZBEE_ZCL_FCF_TO_CLIENT;
tvb_len = tvb_captured_length(tvb);
while(*offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT){
- /* Create subtree for aelector field */
+ /* Create subtree for selector field */
sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 0, ett_zbee_zcl_attr[i], NULL, "Attribute Record");
sub_tree_1 = proto_tree_add_subtree(sub_tree, tvb, *offset, 0, ett_zbee_zcl_attr[i], NULL, "Selector");
i++;
@@ -2354,7 +2356,7 @@ void dissect_zcl_attr_data(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint
/* Display UTC */
utc_time = tvb_get_letohl(tvb, *offset);
attr_time.secs = utc_time;
- attr_time.secs += ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ attr_time.secs += EPOCH_DELTA_2000_01_01_00_00_00_UTC;
attr_time.nsecs = 0;
proto_item_append_text(tree, ", %s",
val_to_str_ext_const(data_type, &zbee_zcl_short_data_type_names_ext, "Reserved") );
@@ -2536,7 +2538,7 @@ void
decode_zcl_utc_time(gchar *s, guint32 value)
{
gchar *start_time;
- time_t epoch_time = (time_t)value + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ time_t epoch_time = (time_t)value + EPOCH_DELTA_2000_01_01_00_00_00_UTC;
start_time = abs_time_secs_to_str (NULL, epoch_time, ABSOLUTE_TIME_UTC, TRUE);
snprintf(s, ITEM_LABEL_LENGTH, "%s (%d)", start_time, value);
wmem_free(NULL, start_time);
diff --git a/epan/dissectors/packet-zbee-zcl.h b/epan/dissectors/packet-zbee-zcl.h
index 5eb8cdd15a..061256dcb6 100644
--- a/epan/dissectors/packet-zbee-zcl.h
+++ b/epan/dissectors/packet-zbee-zcl.h
@@ -126,8 +126,7 @@ typedef struct{
/* ZCL Miscellaneous */
#define ZBEE_ZCL_DIR_REPORTED 0
#define ZBEE_ZCL_DIR_RECEIVED 1
-/* seconds elapsed from year 1970 to 2000 */
-#define ZBEE_ZCL_NSTIME_UTC_OFFSET (((3*365 + 366)*7 + 2*365)*24*3600)
+
#define IS_ANALOG_SUBTYPE(x) ( (x & 0xF0) == 0x20 || (x & 0xF8) == 0x38 || (x & 0xF8) == 0xE0 )
/* ZCL Status Enumerations */
diff --git a/epan/dissectors/packet-zbncp.c b/epan/dissectors/packet-zbncp.c
index f038d62e7f..0f72d64efb 100644
--- a/epan/dissectors/packet-zbncp.c
+++ b/epan/dissectors/packet-zbncp.c
@@ -5596,7 +5596,7 @@ void proto_register_zbncp(void)
{"Beacon Order", "zbncp.data.becon_order", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
{&hf_zbncp_data_superframe_order,
- {"Superframe Order", "zbncp.data.supeframe_order", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
+ {"Superframe Order", "zbncp.data.superframe_order", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
{&hf_zbncp_data_battery_life_ext,
{"Battery Life Extension", "zbncp.data.battery_life_ext", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}},
diff --git a/epan/dissectors/packet-zep.c b/epan/dissectors/packet-zep.c
index 27033af9c3..223067def3 100644
--- a/epan/dissectors/packet-zep.c
+++ b/epan/dissectors/packet-zep.c
@@ -111,7 +111,7 @@ static int dissect_zep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
guint8 version;
guint8 type;
guint32 channel_id, seqno;
- gboolean lqi_mode = FALSE;
+ bool lqi_mode = false;
dissector_handle_t next_dissector;
diff --git a/epan/dissectors/packet-zmtp.c b/epan/dissectors/packet-zmtp.c
new file mode 100644
index 0000000000..7ac6c51ad1
--- /dev/null
+++ b/epan/dissectors/packet-zmtp.c
@@ -0,0 +1,868 @@
+/* packet-zmtp.c
+ * ZeroMQ Message Transport Protocol as described at https://rfc.zeromq.org/spec/23/
+ * Martin Mathieson
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+/* N.B. this dissector aims to replace the popular lua dissector at
+ * https://github.com/whitequark/zmtp-wireshark
+ * Tries to support the same backward compatibility and
+ * dissector table (TCP port -> protocol) as the Lua dissector, but also has UAT that will override.
+ *
+ * TODO: would be nice if entries added in the tables were automatically added to TCP port range..
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/exceptions.h>
+#include <epan/prefs.h>
+#include <epan/proto_data.h>
+#include <epan/uat.h>
+#include <tap.h>
+#include <ui/tap-credentials.h>
+
+#include "packet-tcp.h"
+
+static int credentials_tap;
+
+static int proto_zmtp;
+
+static int hf_zmtp_flags;
+static int hf_zmtp_flags_reserved;
+static int hf_zmtp_flags_command;
+static int hf_zmtp_flags_long;
+static int hf_zmtp_flags_more;
+static int hf_zmtp_length;
+static int hf_zmtp_data;
+static int hf_zmtp_data_text;
+static int hf_zmtp_signature;
+static int hf_zmtp_padding;
+static int hf_zmtp_version;
+static int hf_zmtp_version_major;
+static int hf_zmtp_version_minor;
+static int hf_zmtp_mechanism;
+static int hf_zmtp_as_server;
+static int hf_zmtp_filler;
+static int hf_zmtp_metadata_key;
+static int hf_zmtp_metadata_value;
+static int hf_zmtp_command_name_length;
+static int hf_zmtp_command_name;
+static int hf_zmtp_curvezmq_nonce;
+static int hf_zmtp_curvezmq_box;
+static int hf_zmtp_curvezmq_version;
+static int hf_zmtp_curvezmq_version_major;
+static int hf_zmtp_curvezmq_version_minor;
+static int hf_zmtp_curvezmq_publickey;
+static int hf_zmtp_curvezmq_signature;
+static int hf_zmtp_curvezmq_cookie;
+static int hf_zmtp_username;
+static int hf_zmtp_password;
+static int hf_zmtp_error_reason;
+static int hf_zmtp_ping_ttl;
+static int hf_zmtp_ping_context;
+
+/* Subtrees */
+static gint ett_zmtp;
+static gint ett_zmtp_flags;
+static gint ett_zmtp_version;
+static gint ett_zmtp_curvezmq_version;
+
+static dissector_handle_t zmtp_handle;
+
+/* Forward declarations */
+void proto_register_zmtp(void);
+void proto_reg_handoff_zmtp(void);
+
+static dissector_table_t zmtp_port_dissector_table;
+
+/* User definable values */
+static range_t *global_zmtp_port_range = NULL;
+
+
+/**************************************************************************/
+/* Conversation state */
+/**************************************************************************/
+
+typedef enum
+{
+ MECH_NULL=0, /* assuming as default */
+ MECH_PLAIN,
+ MECH_CURVE
+} mechanism_type;
+
+static const value_string mechanism_vals[] =
+{
+ { MECH_NULL, "NULL" },
+ { MECH_PLAIN, "PLAIN" },
+ { MECH_CURVE, "CURVE" },
+ { 0x0, NULL }
+};
+
+
+typedef struct
+{
+ mechanism_type mechanism;
+ guint32 mechanism_frame;
+} zmtp_conversation_t;
+
+static const value_string flags_vals[] =
+{
+ { 0xff, "Greeting" },
+ { 0x00, "Data" },
+ { 0x01, "Data(+)" },
+ { 0x02, "Data" },
+ { 0x03, "Data(+)" },
+ { 0x04, "Command" },
+ { 0x06, "Command" },
+ { 0x0, NULL }
+};
+
+
+/**************************************************************************/
+/* Preferences state */
+/**************************************************************************/
+
+/* The data payload type of the data on certain TCP ports */
+typedef struct {
+ range_t *tcp_port_range; /* dissect data on these tcp ports as protocol */
+ gchar *protocol; /* protocol of data on these tcp ports */
+} zmtp_tcp_protocol_t;
+
+static zmtp_tcp_protocol_t* zmtp_tcp_protocols = NULL;
+static guint num_zmtp_tcp_protocols = 0;
+
+static void *
+zmtp_tcp_protocols_copy_cb(void* n, const void* o, size_t siz _U_)
+{
+ zmtp_tcp_protocol_t* new_rec = (zmtp_tcp_protocol_t*)n;
+ const zmtp_tcp_protocol_t* old_rec = (const zmtp_tcp_protocol_t*)o;
+
+ /* Cpy interval values like gint */
+ memcpy(new_rec, old_rec, sizeof(zmtp_tcp_protocol_t));
+
+ if (old_rec->tcp_port_range) {
+ new_rec->tcp_port_range = range_copy(NULL, old_rec->tcp_port_range);
+ }
+ if (old_rec->protocol) {
+ new_rec->protocol = g_strdup(old_rec->protocol);
+ }
+
+ return new_rec;
+}
+
+static bool
+zmtp_tcp_protocols_update_cb(void *r, char **err)
+{
+ zmtp_tcp_protocol_t* rec = (zmtp_tcp_protocol_t*)r;
+ static range_t *empty;
+
+ empty = range_empty(NULL);
+ if (ranges_are_equal(rec->tcp_port_range, empty)) {
+ *err = g_strdup("Must specify TCP port(s) (like 8000 or 8000,8008-8088)");
+ wmem_free(NULL, empty);
+ return FALSE;
+ }
+
+ wmem_free(NULL, empty);
+ return TRUE;
+}
+
+static void
+zmtp_tcp_protocols_free_cb(void*r)
+{
+ zmtp_tcp_protocol_t* rec = (zmtp_tcp_protocol_t*)r;
+
+ wmem_free(NULL, rec->tcp_port_range);
+ g_free(rec->protocol);
+}
+
+UAT_RANGE_CB_DEF(zmtp_tcp_protocols, tcp_port_range, zmtp_tcp_protocol_t)
+UAT_CSTRING_CB_DEF(zmtp_tcp_protocols, protocol, zmtp_tcp_protocol_t)
+
+/* Try to find matching data dissector name by TCP port */
+static const char*
+find_data_dissector_by_tcp_port(packet_info *pinfo)
+{
+ range_t* tcp_port_range;
+ const gchar* protocol;
+ guint i;
+ for (i = 0; i < num_zmtp_tcp_protocols; ++i) {
+ tcp_port_range = zmtp_tcp_protocols[i].tcp_port_range;
+ if (value_is_in_range(tcp_port_range, pinfo->srcport) ||
+ value_is_in_range(tcp_port_range, pinfo->destport)) {
+
+ protocol = zmtp_tcp_protocols[i].protocol;
+ if (protocol && strlen(protocol) > 0) {
+ return protocol;
+ }
+ }
+ }
+ return NULL;
+}
+
+
+
+/* How long is this message (by checking flags+length). cb for tcp_dissect_pdus() */
+static guint
+get_zmtp_message_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
+{
+ guint8 flags = tvb_get_guint8(tvb, offset);
+ guint64 length;
+
+ switch (flags) {
+ case 0xff: /* Greeting */
+ return 64;
+
+ /* 1-byte length field */
+ case 0: /* data short (last) */
+ case 1: /* data short (and more) */
+ case 4: /* command (short) */
+ length = tvb_get_guint8(tvb, offset+1);
+ return (guint)length + 2;
+
+ /* 8-byte length field */
+ case 2: /* data long (last) */
+ case 3: /* data long (and more) */
+ case 6: /* command (long) */
+ if (tvb_captured_length(tvb) < 9) {
+ return 0;
+ }
+ length = tvb_get_ntoh64(tvb, offset+1);
+ return (guint)length + 9;
+ }
+
+ return 0;
+}
+
+/* Dissect the payload of a data message */
+static void dissect_zmtp_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint64 length,
+ zmtp_conversation_t *p_conv_data)
+{
+ if (length == 0) {
+ return;
+ }
+
+ /* Show mechanism value */
+ proto_item *mech_ti = proto_tree_add_string(tree, hf_zmtp_mechanism, tvb, 0, 0,
+ val_to_str_const(p_conv_data->mechanism, mechanism_vals, "Unknown"));
+ proto_item_set_generated(mech_ti);
+
+ /* Is data all text? */
+ bool all_text = true;
+ for (guint64 n=offset; n < tvb_captured_length(tvb); n++) {
+ if (!g_ascii_isprint(tvb_get_guint8(tvb, offset))) {
+ all_text = false;
+ break;
+ }
+ }
+
+ /* Add data as raw bytes */
+ proto_item *raw_data_ti = proto_tree_add_item(tree, hf_zmtp_data, tvb, offset, -1, ENC_NA);
+ /* If all text, prefer to show as text (bytes filter is still there) */
+ if (all_text) {
+ proto_item_set_hidden(raw_data_ti);
+ proto_tree_add_item(tree, hf_zmtp_data_text, tvb, offset, -1, ENC_ASCII);
+ }
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, "(%" PRIu64 " bytes) ", length);
+
+ /* Should only try to make any more sense of data if mechanism is not encrypted.. */
+ if (p_conv_data->mechanism == MECH_CURVE) {
+ return;
+ }
+
+ /* Get data tvb ready */
+ tvbuff_t *data_tvb = tvb_new_subset_remaining(tvb, offset);
+
+ /* Look up UAT for dissector to use */
+ const char *protocol = find_data_dissector_by_tcp_port(pinfo);
+ if (protocol) {
+ dissector_handle_t protocol_handle = find_dissector(protocol);
+ if (protocol_handle) {
+ TRY {
+ col_set_writable(pinfo->cinfo, COL_INFO, FALSE);
+ call_dissector_only(protocol_handle, data_tvb, pinfo, tree, NULL);
+ col_set_writable(pinfo->cinfo, COL_INFO, TRUE);
+ }
+ CATCH_ALL {
+ }
+ ENDTRY
+
+ return;
+ }
+ }
+
+ /* Look up registered dissector table (try both ports) */
+ if (dissector_try_uint(zmtp_port_dissector_table, pinfo->destport, data_tvb, pinfo, tree)) {
+ return;
+ }
+ if (dissector_try_uint(zmtp_port_dissector_table, pinfo->srcport, data_tvb, pinfo, tree)) {
+ return;
+ }
+
+ /* TODO: maybe call simple data dissector? */
+}
+
+/* Dissect key=data pairs to end of frame */
+static void dissect_zmtp_metadata(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
+{
+ guint length;
+ while (tvb_reported_length_remaining(tvb, offset)) {
+ /* Key */
+ length = tvb_get_guint8(tvb, offset);
+ offset++;
+ const guchar *key;
+ proto_tree_add_item_ret_string(tree, hf_zmtp_metadata_key, tvb, offset, length, ENC_ASCII, pinfo->pool, &key);
+ offset += length;
+ /* Data */
+ length = tvb_get_ntohl(tvb, offset);
+ offset += 4;
+ if (length) {
+ const guchar *value;
+ proto_tree_add_item_ret_string(tree, hf_zmtp_metadata_value, tvb, offset, length, ENC_ASCII, pinfo->pool, &value);
+ offset += length;
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s=%s", key, value);
+ }
+ else {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s", key);
+ }
+ }
+}
+
+/* These command details are largely taken from the Lua dissector */
+static int dissect_zmtp_command(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree,
+ mechanism_type mechanism)
+{
+ proto_item *len_ti, *mech_ti;
+
+ /* Show mechanism value */
+ mech_ti = proto_tree_add_string(tree, hf_zmtp_mechanism, tvb, 0, 0,
+ val_to_str_const(mechanism, mechanism_vals, "Unknown"));
+ proto_item_set_generated(mech_ti);
+
+ /* command-name (len + bytes) */
+ guint32 command_name_length;
+ const guchar *command_name;
+ len_ti = proto_tree_add_item_ret_uint(tree, hf_zmtp_command_name_length, tvb, offset, 1, ENC_BIG_ENDIAN, &command_name_length);
+ proto_item_set_hidden(len_ti);
+ offset++;
+ proto_tree_add_item_ret_string(tree, hf_zmtp_command_name, tvb, offset, command_name_length, ENC_ASCII, pinfo->pool, &command_name);
+ col_append_fstr(pinfo->cinfo, COL_INFO, "(%s) ", command_name);
+ offset += command_name_length;
+
+ /* What comes next depends upon the command and mechanism setting */
+ if (strcmp(command_name, "READY") == 0) {
+ switch (mechanism) {
+ case MECH_CURVE:
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_nonce, tvb, offset, 8, ENC_ASCII);
+ offset += 8;
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_box, tvb, offset, -1, ENC_ASCII);
+ break;
+ default:
+ /* Metadata */
+ dissect_zmtp_metadata(tvb, offset, pinfo, tree);
+ break;
+ }
+ }
+ else if (strcmp(command_name, "HELLO") == 0) {
+ switch (mechanism) {
+ case MECH_PLAIN:
+ {
+ /* TODO: these could be empty. Check and show? */
+ guint8 len;
+
+ /* Username */
+ const guchar *username;
+ len = tvb_get_guint8(tvb, offset);
+ offset++;
+ proto_item *username_ti = proto_tree_add_item_ret_string(tree, hf_zmtp_username, tvb, offset, len, ENC_ASCII, pinfo->pool, &username);
+ offset += len;
+ if (len == 0) {
+ proto_item_append_text(username_ti, " (empty)");
+ }
+
+ /* Password */
+ const guchar *password;
+ len = tvb_get_guint8(tvb, offset);
+ offset++;
+ proto_item *password_ti = proto_tree_add_item_ret_string(tree, hf_zmtp_password, tvb, offset, len, ENC_ASCII, pinfo->pool, &password);
+ offset += len;
+ if (len == 0) {
+ proto_item_append_text(password_ti, " (empty)");
+ }
+
+ col_append_fstr(pinfo->cinfo, COL_INFO, "(username=%s, password=%s) ",
+ username, password);
+ /* Also tap credentials */
+ tap_credential_t* auth = wmem_new0(wmem_packet_scope(), tap_credential_t);
+ auth->num = pinfo->num;
+ auth->proto = "ZMTP";
+ auth->password_hf_id = hf_zmtp_password;
+ auth->username = (char*)username;
+ auth->username_num = pinfo->num;
+ auth->info = wmem_strdup_printf(wmem_packet_scope(), "PLAIN: username/password");
+ tap_queue_packet(credentials_tap, pinfo, auth);
+ break;
+ }
+ case MECH_CURVE:
+ {
+ /* Version */
+ guint32 major, minor;
+ /* subtree */
+ proto_item *version_ti = proto_tree_add_string_format(tree, hf_zmtp_curvezmq_version, tvb, offset, 2, "", "Version");
+ proto_tree *version_tree = proto_item_add_subtree(version_ti, ett_zmtp_curvezmq_version);
+
+ /* major */
+ proto_tree_add_item_ret_uint(version_tree, hf_zmtp_curvezmq_version_major, tvb, offset, 1, ENC_NA, &major);
+ offset++;
+ /* minor */
+ proto_tree_add_item_ret_uint(version_tree, hf_zmtp_curvezmq_version_minor, tvb, offset, 1, ENC_NA, &minor);
+ offset++;
+ proto_item_append_text(version_ti, " (%u.%u)", major, minor);
+
+ /* If 1.0 */
+ if (major==1 && minor==0) {
+ /* 70 bytes padding */
+ proto_tree_add_item(tree, hf_zmtp_padding, tvb, offset, 70, ENC_NA);
+ offset += 70;
+ /* 32 bytes publickey */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_publickey, tvb, offset, 32, ENC_ASCII);
+ offset += 32;
+ /* 8 bytes nonce */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_nonce, tvb, offset, 8, ENC_ASCII);
+ offset += 8;
+ /* 80 bytes signature */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_signature, tvb, offset, 80, ENC_ASCII);
+ offset += 80;
+ }
+ /* Else */
+ /* unsupported version (TODO: expert info?) */
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ else if (strcmp(command_name, "WELCOME") == 0) {
+ switch (mechanism) {
+ case MECH_CURVE:
+ /* Nonce (16 bytes) */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_nonce, tvb, offset, 16, ENC_ASCII);
+ offset += 16;
+ /* Box (128 bytes) */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_box, tvb, offset, 128, ENC_ASCII);
+ offset += 128;
+ break;
+ default:
+ break;
+ }
+
+ }
+ else if (strcmp(command_name, "INITIATE") == 0) {
+ switch (mechanism) {
+ case MECH_PLAIN:
+ /* Metadata */
+ dissect_zmtp_metadata(tvb, offset, pinfo, tree);
+ break;
+ case MECH_CURVE:
+ /* cookie (96 bytes) */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_cookie, tvb, offset, 96, ENC_ASCII);
+ offset += 96;
+ /* nonce (8 bytes) */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_nonce, tvb, offset, 8, ENC_ASCII);
+ offset += 8;
+ /* box (remainder) */
+ proto_tree_add_item(tree, hf_zmtp_curvezmq_box, tvb, offset, -1, ENC_ASCII);
+ break;
+ default:
+ break;
+ }
+ }
+ else if (strcmp(command_name, "ERROR") == 0) {
+ /* 1 byte length, followed by reason */
+ guint8 len = tvb_get_guint8(tvb, offset);
+ offset++;
+ const guchar *reason;
+ proto_tree_add_item_ret_string(tree, hf_zmtp_error_reason, tvb, offset, len, ENC_ASCII, pinfo->pool, &reason);
+ col_append_fstr(pinfo->cinfo, COL_INFO, " reason=%s", reason);
+ offset += len;
+ }
+ else if (strcmp(command_name, "PING") == 0) {
+ /* TTL (2 bytes) */
+ proto_tree_add_item(tree, hf_zmtp_ping_ttl, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ /* Context (optional, remainder) */
+ if (tvb_captured_length_remaining(tvb, offset)) {
+ proto_tree_add_item(tree, hf_zmtp_ping_context, tvb, offset, -1, ENC_ASCII);
+ }
+ }
+ else if (strcmp(command_name, "PONG") == 0) {
+ proto_tree_add_item(tree, hf_zmtp_ping_context, tvb, offset, -1, ENC_ASCII);
+ }
+
+ /* Extra separator in case data follows in same segment */
+ col_append_str(pinfo->cinfo, COL_INFO, " ");
+
+ return offset;
+}
+
+static int
+dissect_zmtp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ proto_tree *zmtp_tree;
+ proto_item *root_ti;
+ gint offset = 0;
+
+ /* Protocol column */
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "zmtp");
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* Protocol root */
+ root_ti = proto_tree_add_item(tree, proto_zmtp, tvb, offset, -1, ENC_NA);
+ zmtp_tree = proto_item_add_subtree(root_ti, ett_zmtp);
+
+ /* Look up, or create, conversation */
+ zmtp_conversation_t *p_conv_data;
+ conversation_t *p_conv;
+
+ p_conv = find_conversation(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
+ conversation_pt_to_conversation_type(pinfo->ptype),
+ pinfo->destport, pinfo->srcport,
+ 0 /* options */);
+
+ /* Look up data from conversation */
+ p_conv_data = (zmtp_conversation_t *)conversation_get_proto_data(p_conv, proto_zmtp);
+
+ /* Create new data for conversation data if not found */
+ if (!p_conv_data && !PINFO_FD_VISITED(pinfo)) {
+ p_conv_data = wmem_new(wmem_file_scope(), zmtp_conversation_t);
+
+ /* Set initial values */
+ p_conv_data->mechanism = MECH_NULL;
+ p_conv_data->mechanism_frame = 0;
+
+ /* Store in conversation */
+ conversation_add_proto_data(p_conv, proto_zmtp, p_conv_data);
+ }
+
+ /* Flags */
+ guint8 flags = tvb_get_guint8(tvb, offset);
+ if (flags == 0xff) {
+ /* Greeting value not broken down */
+ proto_tree_add_item(zmtp_tree, hf_zmtp_flags, tvb, offset, 1, ENC_BIG_ENDIAN);
+ }
+ else {
+ /* Break it down */
+ static int* const flags_fields[] = { &hf_zmtp_flags_reserved,
+ &hf_zmtp_flags_command,
+ &hf_zmtp_flags_long,
+ &hf_zmtp_flags_more,
+ NULL
+ };
+ proto_tree_add_bitmask(zmtp_tree, tvb, offset, hf_zmtp_flags,
+ ett_zmtp_flags, flags_fields, ENC_BIG_ENDIAN);
+ }
+ offset += 1;
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(flags, flags_vals, "Unknown(%u)"));
+ proto_item_append_text(root_ti, " (%s)", val_to_str(flags, flags_vals, "Unknown(%u)"));
+
+ guint64 length;
+
+ switch (flags) {
+ case 0xff: /* Greeting */
+ {
+ /* signature = %xFF padding %x7F */
+ proto_tree_add_item(zmtp_tree, hf_zmtp_signature, tvb, offset-1, 10, ENC_NA);
+ offset += 9;
+
+ /* version = version-major version-minor */
+ guint32 major, minor;
+ /* subtree */
+ proto_item *version_ti = proto_tree_add_string_format(zmtp_tree, hf_zmtp_version, tvb, offset, 2, "", "Version");
+ proto_tree *version_tree = proto_item_add_subtree(version_ti, ett_zmtp_version);
+ /* major */
+ proto_tree_add_item_ret_uint(version_tree, hf_zmtp_version_major, tvb, offset, 1, ENC_NA, &major);
+ offset++;
+ /* minor */
+ proto_tree_add_item_ret_uint(version_tree, hf_zmtp_version_minor, tvb, offset, 1, ENC_NA, &minor);
+ offset++;
+ col_append_fstr(pinfo->cinfo, COL_INFO, "(version=%u.%u", major, minor);
+ proto_item_append_text(version_ti, " (%u.%u)", major, minor);
+
+ /* mechanism (20 bytes). N.B. *must* must match setting from peer */
+ const guchar *mechanism;
+ guint mechanism_len;
+ proto_tree_add_item_ret_string_and_length(zmtp_tree, hf_zmtp_mechanism, tvb, offset, 20, ENC_ASCII,
+ pinfo->pool, &mechanism, &mechanism_len);
+ offset += mechanism_len;
+ col_append_fstr(pinfo->cinfo, COL_INFO, " mechanism=%s", mechanism);
+ /* Store in conversation data whether NULL, PLAIN or CURVE */
+ /* This affects what we expect to find in commands, and also whether can call dissectors to data payloads */
+ if (!PINFO_FD_VISITED(pinfo)) {
+ if (strcmp(mechanism, "NULL") == 0) {
+ p_conv_data->mechanism = MECH_NULL;
+ }
+ else if (strcmp(mechanism, "PLAIN") == 0) {
+ p_conv_data->mechanism = MECH_PLAIN;
+ }
+ else if (strcmp(mechanism, "CURVE") == 0) {
+ p_conv_data->mechanism = MECH_CURVE;
+ }
+
+ p_conv_data->mechanism_frame = pinfo->num;
+ }
+
+ /* as-server */
+ bool as_server;
+ proto_tree_add_item_ret_boolean(zmtp_tree, hf_zmtp_as_server, tvb, offset, 1, ENC_NA, &as_server);
+ offset++;
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s)", tfs_get_string(as_server, &tfs_server_client));
+
+ /* filler (31 octets) */
+ proto_tree_add_item(zmtp_tree, hf_zmtp_filler, tvb, offset, -1, ENC_NA);
+ break;
+ }
+
+ case 0x04: /* Command (short) */
+ /* Length */
+ proto_tree_add_item_ret_uint64(zmtp_tree, hf_zmtp_length, tvb, offset, 1, ENC_BIG_ENDIAN, &length);
+ offset++;
+ dissect_zmtp_command(tvb, offset, pinfo, zmtp_tree, p_conv_data->mechanism);
+ break;
+ case 0x06: /* Command (long) */
+ proto_tree_add_item_ret_uint64(zmtp_tree, hf_zmtp_length, tvb, offset, 8, ENC_BIG_ENDIAN, &length);
+ offset += 8;
+ dissect_zmtp_command(tvb, offset, pinfo, zmtp_tree, p_conv_data->mechanism);
+ break;
+
+ case 0x0: /* Data short (more) */
+ case 0x1: /* Data short (last) */
+ proto_tree_add_item_ret_uint64(zmtp_tree, hf_zmtp_length, tvb, offset, 1, ENC_BIG_ENDIAN, &length);
+ offset++;
+ dissect_zmtp_data(tvb, offset, pinfo, zmtp_tree, length, p_conv_data);
+ break;
+
+ case 0x2: /* Data long (last) */
+ case 0x3: /* Data long (more) */
+ proto_tree_add_item_ret_uint64(zmtp_tree, hf_zmtp_length, tvb, offset, 8, ENC_BIG_ENDIAN, &length);
+ offset += 8;
+ dissect_zmtp_data(tvb, offset, pinfo, zmtp_tree, length, p_conv_data);
+ break;
+
+ default:
+ /* TODO: expert info? */
+ break;
+ }
+
+ col_set_fence(pinfo->cinfo, COL_INFO);
+
+ /* Claim whole frame regardless */
+ return tvb_reported_length(tvb);
+}
+
+/******************************/
+/* Main dissection function. */
+static int
+dissect_zmtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
+{
+ /* Frame starts off with no PDUs seen */
+ static gboolean false_value = FALSE;
+ p_add_proto_data(wmem_file_scope(), pinfo, proto_zmtp, 0, &false_value);
+
+ /* Find whole PDUs and send them to dissect_zmtp_message() */
+ tcp_dissect_pdus(tvb, pinfo, tree, TRUE, /* desegment */
+ 2, /* need flags bytes + long-size */
+ get_zmtp_message_len,
+ dissect_zmtp_message, data);
+ return tvb_reported_length(tvb);
+}
+
+
+void
+proto_register_zmtp(void)
+{
+ static hf_register_info hf[] = {
+ { &hf_zmtp_flags,
+ { "Flags", "zmtp.flags", FT_UINT8, BASE_HEX,
+ VALS(flags_vals), 0x0, NULL, HFILL }},
+ { &hf_zmtp_flags_reserved,
+ { "Reserved", "zmtp.flags.reserved", FT_UINT8, BASE_HEX,
+ NULL, 0xf8, NULL, HFILL }},
+ { &hf_zmtp_flags_command,
+ { "Command", "zmtp.flags.command", FT_UINT8, BASE_HEX,
+ NULL, 0x04, NULL, HFILL }},
+ { &hf_zmtp_flags_long,
+ { "Long", "zmtp.flags.long", FT_UINT8, BASE_HEX,
+ NULL, 0x02, NULL, HFILL }},
+ { &hf_zmtp_flags_more,
+ { "More", "zmtp.flags.more", FT_UINT8, BASE_HEX,
+ NULL, 0x01, NULL, HFILL }},
+ { &hf_zmtp_length,
+ { "Length", "zmtp.length", FT_UINT64, BASE_DEC,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_data,
+ { "Data", "zmtp.data", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_data_text,
+ { "Text", "zmtp.data.text", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_signature,
+ { "Signature", "zmtp.signature", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_padding,
+ { "Padding", "zmtp.padding", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_version,
+ { "Version", "zmtp.version", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_version_major,
+ { "Major version", "zmtp.version.major", FT_UINT8, BASE_DEC,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_version_minor,
+ { "Minor version", "zmtp.version.minor", FT_UINT8, BASE_DEC,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_mechanism,
+ { "Mechanism", "zmtp.mechanism", FT_STRINGZ, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_as_server,
+ { "As-Server", "zmtp.as-server", FT_BOOLEAN, BASE_NONE,
+ TFS(&tfs_server_client), 0x0, NULL, HFILL }},
+ { &hf_zmtp_filler,
+ { "Filler", "zmtp.filler", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_metadata_key,
+ { "Metadata key", "zmtp.metadata.key", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_metadata_value,
+ { "Metadata value", "zmtp.metadata.value", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_command_name_length,
+ { "command-name length", "zmtp.command-name.length", FT_UINT8, BASE_DEC,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_command_name,
+ { "command-name", "zmtp.command-name", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_nonce,
+ { "CurveZMQ nonce", "zmtp.curvezmq.nonce", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_box,
+ { "CurveZMQ box", "zmtp.curvezmq.box", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_version,
+ { "Version", "zmtp.curvezmq.version", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_version_major,
+ { "Major version", "zmtp.curvezmq.version.major", FT_UINT8, BASE_DEC,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_version_minor,
+ { "Minor version", "zmtp.curvezmq.version.minor", FT_UINT8, BASE_DEC,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_publickey,
+ { "PublicKey", "zmtp.curvezmq.publickey", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_signature,
+ { "Signature", "zmtp.curvezmq.signature", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_curvezmq_cookie,
+ { "Cookie", "zmtp.curvezmq.cookie", FT_BYTES, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_username,
+ { "Username", "zmtp.username", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_password,
+ { "Password", "zmtp.password", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_error_reason,
+ { "Reason", "zmtp.reason", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_ping_ttl,
+ { "TTL", "zmtp.ping.ttl", FT_UINT16, BASE_DEC,
+ NULL, 0x0, NULL, HFILL }},
+ { &hf_zmtp_ping_context,
+ { "Context", "zmtp.ping.context", FT_STRING, BASE_NONE,
+ NULL, 0x0, NULL, HFILL }}
+ };
+
+ static gint *ett[] = {
+ &ett_zmtp,
+ &ett_zmtp_flags,
+ &ett_zmtp_version,
+ &ett_zmtp_curvezmq_version
+ };
+
+ module_t *zmtp_module;
+
+ static uat_field_t zmtp_tcp_protocols_table_columns[] = {
+ UAT_FLD_RANGE(zmtp_tcp_protocols, tcp_port_range, "TCP Ports", 0xFFFF, "TCP ports on which ZMTP data payloads will be dissected as protocol"),
+ UAT_FLD_CSTRING(zmtp_tcp_protocols, protocol, "Protocol", "Protocol for data on these TCP ports"),
+ UAT_END_FIELDS
+ };
+ uat_t* zmtp_tcp_protocols_uat;
+
+ proto_zmtp = proto_register_protocol("ZeroMQ Message Transport Protocol",
+ "ZMTP",
+ "zmtp");
+ proto_register_field_array(proto_zmtp, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ zmtp_handle = register_dissector("zmtp", dissect_zmtp, proto_zmtp);
+
+ zmtp_module = prefs_register_protocol(proto_zmtp, proto_reg_handoff_zmtp);
+
+ zmtp_tcp_protocols_uat = uat_new("ZMTP TCP Protocols",
+ sizeof(zmtp_tcp_protocol_t),
+ "zmtp_tcp_protocols",
+ TRUE,
+ &zmtp_tcp_protocols,
+ &num_zmtp_tcp_protocols,
+ UAT_AFFECTS_DISSECTION | UAT_AFFECTS_FIELDS,
+ NULL, /* "ChZMTPTCPProtocols", */
+ zmtp_tcp_protocols_copy_cb,
+ zmtp_tcp_protocols_update_cb,
+ zmtp_tcp_protocols_free_cb,
+ NULL, /* post_update_cb */
+ NULL, /* reset_cb */
+ zmtp_tcp_protocols_table_columns
+ );
+ prefs_register_uat_preference(zmtp_module, "tcp_protocols", "ZMTP TCP protocols",
+ "Specify the protocol of data on certain TCP ports.",
+ zmtp_tcp_protocols_uat);
+
+ zmtp_port_dissector_table = register_dissector_table("zmtp.protocol",
+ "ZMTP Data Type", proto_zmtp, FT_UINT16, BASE_DEC);
+
+ credentials_tap = register_tap("credentials");
+}
+
+static void
+apply_zmtp_prefs(void)
+{
+ global_zmtp_port_range = prefs_get_range_value("zmtp", "tcp.port");
+}
+
+void
+proto_reg_handoff_zmtp(void)
+{
+ dissector_add_uint_range_with_preference("tcp.port", "", zmtp_handle);
+ apply_zmtp_prefs();
+}
+
+/*
+ * Editor modelines - https://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/dissectors/packet-zrtp.c b/epan/dissectors/packet-zrtp.c
index fa6951af78..6d6efa50b9 100644
--- a/epan/dissectors/packet-zrtp.c
+++ b/epan/dissectors/packet-zrtp.c
@@ -286,7 +286,7 @@ key_to_val(const gchar *key, int keylen, const value_string_keyval *kv, const gc
int i = 0;
while (kv[i].key) {
if (!strncmp(kv[i].key, key, keylen)) {
- return(kv[i].val);
+ return kv[i].val;
}
i++;
}
@@ -299,7 +299,7 @@ check_valid_version(const gchar *version) {
int match_size = (version[0] == '0') ? 4 : 3;
while (valid_zrtp_versions[i].version) {
if (!strncmp(valid_zrtp_versions[i].version, version, match_size)) {
- return(valid_zrtp_versions[i].version);
+ return valid_zrtp_versions[i].version;
}
i++;
}
diff --git a/epan/dissectors/packet-zvt.c b/epan/dissectors/packet-zvt.c
index 33048219b4..df297d29ee 100644
--- a/epan/dissectors/packet-zvt.c
+++ b/epan/dissectors/packet-zvt.c
@@ -47,9 +47,9 @@
#define ZVT_APDU_MIN_LEN 3
-static GHashTable *apdu_table = NULL, *bitmap_table = NULL, *tlv_table = NULL;
+static GHashTable *apdu_table = NULL, *bitmap_table = NULL, *tlv_table;
-static wmem_tree_t *transactions = NULL;
+static wmem_tree_t *transactions;
typedef struct _zvt_transaction_t {
guint32 rqst_frame;
diff --git a/epan/dissectors/pidl/README b/epan/dissectors/pidl/README
index 82442d5aca..614b660d5f 100644
--- a/epan/dissectors/pidl/README
+++ b/epan/dissectors/pidl/README
@@ -102,9 +102,19 @@ and compiling:
pidl complains that inline arrays aren't supported for these:
- dnsserver.idl
- eventlog.idl
+ dnsserver/dnsserver.idl
+ eventlog/eventlog.idl
+
+pidl complains about a syntax error due to a line commented out with a
+// comment for these:
+
+ nspi/nspi.idl
pidl generates possibly-incorrect code for these - this needs checking:
rfr/rfr.idl
+
+pidl complains about not being able to open include files for these:
+
+ samr/samr.idl
+ winspool/winspool.idl
diff --git a/epan/dissectors/pidl/dnsserver/dnsserver.cnf b/epan/dissectors/pidl/dnsserver/dnsserver.cnf
index ab89c33381..c399a2e978 100644
--- a/epan/dissectors/pidl/dnsserver/dnsserver.cnf
+++ b/epan/dissectors/pidl/dnsserver/dnsserver.cnf
@@ -36,7 +36,7 @@ dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NAME);
}
diff --git a/epan/dissectors/pidl/eventlog/eventlog.idl b/epan/dissectors/pidl/eventlog/eventlog.idl
index cef3c3885e..6cf68a7a02 100644
--- a/epan/dissectors/pidl/eventlog/eventlog.idl
+++ b/epan/dissectors/pidl/eventlog/eventlog.idl
@@ -12,19 +12,19 @@
] interface eventlog
{
typedef bitmap {
- EVENTLOG_SEQUENTIAL_READ = 0x0001,
- EVENTLOG_SEEK_READ = 0x0002,
- EVENTLOG_FORWARDS_READ = 0x0004,
- EVENTLOG_BACKWARDS_READ = 0x0008
+ EVENTLOG_SEQUENTIAL_READ = 0x00000001,
+ EVENTLOG_SEEK_READ = 0x00000002,
+ EVENTLOG_FORWARDS_READ = 0x00000004,
+ EVENTLOG_BACKWARDS_READ = 0x00000008
} eventlogReadFlags;
typedef bitmap {
- EVENTLOG_SUCCESS = 0x0000,
- EVENTLOG_ERROR_TYPE = 0x0001,
- EVENTLOG_WARNING_TYPE = 0x0002,
- EVENTLOG_INFORMATION_TYPE = 0x0004,
- EVENTLOG_AUDIT_SUCCESS = 0x0008,
- EVENTLOG_AUDIT_FAILURE = 0x0010
+ EVENTLOG_SUCCESS = 0x00000000,
+ EVENTLOG_ERROR_TYPE = 0x00000001,
+ EVENTLOG_WARNING_TYPE = 0x00000002,
+ EVENTLOG_INFORMATION_TYPE = 0x00000004,
+ EVENTLOG_AUDIT_SUCCESS = 0x00000008,
+ EVENTLOG_AUDIT_FAILURE = 0x00000010
} eventlogEventTypes;
typedef struct {
@@ -208,7 +208,7 @@
/*****************/
/* Function 0x16 */
- NTSTATUS eventlog_GetLogIntormation(
+ NTSTATUS eventlog_GetLogInformation(
[in] policy_handle *handle,
[in] uint32 dwInfoLevel,
[out] [size_is(cbBufSize)] char lpBuffer[*],
diff --git a/epan/dissectors/pidl/frsrpc/frsrpc.cnf b/epan/dissectors/pidl/frsrpc/frsrpc.cnf
index a0116f309f..0a3b50b7a8 100644
--- a/epan/dissectors/pidl/frsrpc/frsrpc.cnf
+++ b/epan/dissectors/pidl/frsrpc/frsrpc.cnf
@@ -40,7 +40,7 @@ frsrpc_dissect_struct_CommPktChunk(tvbuff_t *tvb _U_, int offset _U_, packet_inf
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChunk);
}
@@ -100,7 +100,7 @@ frsrpc_dissect_struct_frsrpc_CommPktChunkCtr(tvbuff_t *tvb, int offset, packet_i
int align_status = di->no_align;
if (remaining > 0) {
- proto_item *item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, TRUE);
+ proto_item *item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, ENC_NA);
proto_tree *subtree = proto_item_add_subtree(item, ett_ChunkCtr);
di->no_align = 1;
while (remaining > 0) {
diff --git a/epan/dissectors/pidl/frsrpc/frsrpc.idl b/epan/dissectors/pidl/frsrpc/frsrpc.idl
index 3d2feddfed..46aac11571 100644
--- a/epan/dissectors/pidl/frsrpc/frsrpc.idl
+++ b/epan/dissectors/pidl/frsrpc/frsrpc.idl
@@ -249,7 +249,7 @@ interface frsrpc
FRSRPC_COMM_PKT_CHUNK_REMOTE_CO = 0x000D,
FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K = 0x0016,
- FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2 = 0x0017,
+ FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2 = 0x0017,
FRSRPC_COMM_PKT_CHUNK_EOP = 0x0013
} frsrpc_CommPktChunkType;
@@ -293,12 +293,12 @@ interface frsrpc
[case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)][subcontext(4)]
GUID co_guid;
[case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)]
- uint32 co_sequnence_number;
+ uint32 co_sequence_number;
[case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)][subcontext(4)]
frsrpc_CommPktChangeOrderCommand remote_co;
[case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)][subcontext(4)]
frsrpc_CommPktCoRecordExtensionWin2k co_ext_win2k;
- [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)]
+ [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENSION_2)]
frsrpc_CommPktChangeOrderRecordExtension co_extension2;
[case(FRSRPC_COMM_PKT_CHUNK_EOP)]
[value(0xFFFFFFFF)] uint32 bopend;
diff --git a/epan/dissectors/pidl/frstrans/frstrans.idl b/epan/dissectors/pidl/frstrans/frstrans.idl
index 761c3eec4c..ec4fd4a8b0 100644
--- a/epan/dissectors/pidl/frstrans/frstrans.idl
+++ b/epan/dissectors/pidl/frstrans/frstrans.idl
@@ -105,7 +105,7 @@ interface frstrans
/*****************/
/* Function 0x04 */
typedef enum {
- FRSTRANS_VERSION_REQUEST_NORNAL_SYNC = 0x0000,
+ FRSTRANS_VERSION_REQUEST_NORMAL_SYNC = 0x0000,
FRSTRANS_VERSION_REQUEST_SLOW_SYNC = 0x0001,
FRSTRANS_VERSION_REQUEST_SLAVE_SYNC = 0x0002
} frstrans_VersionRequestType;
diff --git a/epan/dissectors/pidl/lsa/lsa.cnf b/epan/dissectors/pidl/lsa/lsa.cnf
index a02caa710f..ef3923789d 100644
--- a/epan/dissectors/pidl/lsa/lsa.cnf
+++ b/epan/dissectors/pidl/lsa/lsa.cnf
@@ -129,28 +129,28 @@ lsarpc_domain_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guin
}
-struct access_mask_info lsarpc_policy_access_mask_info = {
+static struct access_mask_info lsarpc_policy_access_mask_info = {
"LSA Policy", /* Name of specific rights */
lsarpc_policy_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
NULL /* Standard mapping table */
};
-struct access_mask_info lsarpc_account_access_mask_info = {
+static struct access_mask_info lsarpc_account_access_mask_info = {
"LSA Account", /* Name of specific rights */
lsarpc_account_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
NULL /* Standard mapping table */
};
-struct access_mask_info lsarpc_secret_access_mask_info = {
+static struct access_mask_info lsarpc_secret_access_mask_info = {
"LSA Secret", /* Name of specific rights */
lsarpc_secret_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
NULL /* Standard mapping table */
};
-struct access_mask_info lsarpc_domain_access_mask_info = {
+static struct access_mask_info lsarpc_domain_access_mask_info = {
"LSA Domain", /* Name of specific rights */
lsarpc_domain_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -184,6 +184,7 @@ lsarpc_dissect_bitmap_lsa_SecretAccessMask(tvbuff_t *tvb, int offset, packet_inf
return offset;
}
+/* TODO: not called, so couldn't make static. Delete? */
int
lsarpc_dissect_bitmap_lsa_DomainAccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep, int hf_index _U_, guint32 param _U_)
{
diff --git a/epan/dissectors/pidl/lsa/lsa.idl b/epan/dissectors/pidl/lsa/lsa.idl
index b103aced29..e21b1f577a 100644
--- a/epan/dissectors/pidl/lsa/lsa.idl
+++ b/epan/dissectors/pidl/lsa/lsa.idl
@@ -317,7 +317,7 @@
LSA_AUDIT_CATEGORY_LOGON = 1,
LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS = 2,
LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS = 3,
- LSA_AUDIT_CATEGORY_PROCCESS_TRACKING = 4,
+ LSA_AUDIT_CATEGORY_PROCESS_TRACKING = 4,
LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES = 5,
LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT = 6,
LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS = 7, /* only in win2k/2k3 */
diff --git a/epan/dissectors/pidl/mapi/mapi.cnf b/epan/dissectors/pidl/mapi/mapi.cnf
index c817bbca26..8e8ff8ed07 100644
--- a/epan/dissectors/pidl/mapi/mapi.cnf
+++ b/epan/dissectors/pidl/mapi/mapi.cnf
@@ -382,7 +382,7 @@ NOEMIT mapi_dissect_element_EcDoRpcExt_rgbOut__
CODE START
-tvbuff_t *
+static tvbuff_t *
mapi_deobfuscate(tvbuff_t *tvb, int offset, packet_info *pinfo, guint32 size)
{
tvbuff_t *deob_tvb = NULL;
@@ -591,7 +591,7 @@ mapi_dissect_element_AuxInfo_auxHeader(tvbuff_t *tvb _U_, int offset _U_, packet
return offset;
}
-int
+static int
dissect_EcDoConnectEx_AuxInfoOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -606,7 +606,7 @@ mapi_dissect_element_EcDoConnectEx_rgbAuxOut_(tvbuff_t *tvb _U_, int offset _U_,
return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoConnectEx_AuxInfoOut);
}
-int
+static int
dissect_EcDoRpcExt2_AuxInfoOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -750,7 +750,7 @@ mapi_dissect_AUX_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
}
}
-int
+static int
mapi_dissect_AUX_HEADER_TYPE_ENUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint8 Version, int hf_index _U_, guint8 *hdrType)
{
switch(Version) {
@@ -793,7 +793,7 @@ mapi_dissect_struct_AUX_HEADER(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
}
int
-mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, guint32 param)
{
guint8 opnum = 0;
proto_item *item = NULL;
@@ -812,7 +812,7 @@ mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb _U_, int offset _U_, packet
offset = PIDL_dissect_uint8_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiRequest_opnum, param, &opnum);
- col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str_const(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
offset = mapi_dissect_element_EcDoRpcMapiRequest_u(tvb, offset, pinfo, tree, di, drep, &opnum);
@@ -824,7 +824,7 @@ mapi_dissect_struct_EcDoRpcMapiRequest(tvbuff_t *tvb _U_, int offset _U_, packet
}
int
-mapi_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+mapi_dissect_struct_request(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
@@ -898,7 +898,7 @@ mapi_dissect_element_EcDoConnectEx_szUserDN(tvbuff_t *tvb _U_, int offset _U_, p
}
int
-mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, guint32 param)
{
guint8 opnum = 0;
proto_item *item = NULL;
@@ -914,7 +914,7 @@ mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb _U_, int offset _U_, packe
}
offset = PIDL_dissect_uint8_val(tvb, offset, pinfo, tree, di, drep, hf_mapi_EcDoRpcMapiResponse_opnum, param, &opnum);
- col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, " + %s", val_to_str_const(opnum, mapi_ROP_OPNUM_vals, "Unknown MAPI operation"));
offset = mapi_dissect_element_EcDoRpcMapiResponse_u(tvb, offset, pinfo, tree, di, drep, &opnum);
@@ -925,7 +925,7 @@ mapi_dissect_struct_EcDoRpcMapiResponse(tvbuff_t *tvb _U_, int offset _U_, packe
return offset;
}
-int
+static int
uint32_size_uint8_buffer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_size_index, int hf_buffer_index, guint32 param)
{
guint32 size= 0;
@@ -1124,6 +1124,7 @@ mapi_dissect_struct_Logon_repl(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
#define RHEF_XorMagic 0x0002
#define RHEF_Last 0x0004
+static
int dissect_RPC_HEADER_EXT(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index, tvbuff_t **ppUncomp_tvb)
{
proto_tree *hTree = NULL;
@@ -1255,7 +1256,7 @@ mapi_dissect_struct_AuxInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf
return offset;
}
-int
+static int
mapi_dissect_RgbInOut(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, dcerpc_info* di, guint8 *drep, int hf_index)
{
proto_item *item = NULL;
@@ -1312,7 +1313,7 @@ mapi_dissect_struct_RgbIn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
return mapi_dissect_RgbInOut(tvb, offset, pinfo, parent_tree, di, drep, hf_index);
}
-int
+static int
dissect_EcDoRpcExt2_RgbOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -1327,7 +1328,7 @@ mapi_dissect_element_EcDoRpcExt2_rgbOut_(tvbuff_t *tvb _U_, int offset _U_, pack
return dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, di, drep, &dissect_EcDoRpcExt2_RgbOut);
}
-int
+static int
dissect_EcDoRpcExt_RgbOut(tvbuff_t *tvb _U_, int offset _U_, int length _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
if (length == 0){
@@ -1348,4 +1349,4 @@ mapi_dissect_struct_RgbOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo
return mapi_dissect_RgbInOut(tvb, offset, pinfo, parent_tree, di, drep, hf_index);
}
-CODE END \ No newline at end of file
+CODE END
diff --git a/epan/dissectors/pidl/samr/samr.cnf b/epan/dissectors/pidl/samr/samr.cnf
index 3860013db7..f193ebcc97 100644
--- a/epan/dissectors/pidl/samr/samr.cnf
+++ b/epan/dissectors/pidl/samr/samr.cnf
@@ -154,7 +154,7 @@ TYPE lsa_String "offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, dre
TYPE lsa_AsciiString "offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, @PARAM@, @HF@);" FT_STRING BASE_NONE 0 NULL 5
TYPE lsa_StringLarge "offset=dissect_ndr_lsa_String(tvb, offset, pinfo, tree, di, drep, @PARAM@, @HF@);" FT_STRING BASE_NONE 0 NULL 5
TYPE lsa_AsciiStringLarge "offset=cnf_dissect_lsa_AsciiString(tvb, offset, pinfo, tree, di, drep, @PARAM@, @HF@);" FT_STRING BASE_NONE 0 NULL 5
-TYPE lsa_BinaryString "offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, @PARAM@, @HF@);" FT_STRING BASE_NONE 0 NULL 5
+TYPE lsa_BinaryString "offset=lsarpc_dissect_struct_lsa_BinaryString(tvb, offset, pinfo, tree, di, drep, @HF@, @PARAM@);" FT_STRING BASE_NONE 0 NULL 5
TYPE hyper "offset=cnf_dissect_hyper(tvb, offset, pinfo, tree, di, drep, @PARAM@, @HF@);" FT_UINT64 BASE_DEC 0 NULL 8
@@ -225,7 +225,7 @@ samr_connect_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_connect_access_mask_info = {
+static struct access_mask_info samr_connect_access_mask_info = {
"SAMR Connect", /* Name of specific rights */
samr_connect_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -257,7 +257,7 @@ samr_alias_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_alias_access_mask_info = {
+static struct access_mask_info samr_alias_access_mask_info = {
"SAMR Alias", /* Name of specific rights */
samr_alias_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -289,7 +289,7 @@ samr_group_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_group_access_mask_info = {
+static struct access_mask_info samr_group_access_mask_info = {
"SAMR Group", /* Name of specific rights */
samr_group_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
@@ -327,7 +327,7 @@ samr_domain_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint3
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info samr_domain_access_mask_info = {
+static struct access_mask_info samr_domain_access_mask_info = {
"SAMR Domain", /* Name of specific rights */
samr_domain_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
diff --git a/epan/dissectors/pidl/winreg/winreg.cnf b/epan/dissectors/pidl/winreg/winreg.cnf
index 1a0fa39667..ca0546f8fb 100644
--- a/epan/dissectors/pidl/winreg/winreg.cnf
+++ b/epan/dissectors/pidl/winreg/winreg.cnf
@@ -153,7 +153,7 @@ winreg_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32 acc
proto_tree_add_bitmask_list_value(tree, tvb, offset, 4, access_flags, access);
}
-struct access_mask_info winreg_access_mask_info = {
+static struct access_mask_info winreg_access_mask_info = {
"WINREG", /* Name of specific rights */
winreg_specific_rights, /* Dissection function */
NULL, /* Generic mapping table */
diff --git a/epan/dissectors/usb.c b/epan/dissectors/usb.c
index 0d195beb09..0c76303e8a 100644
--- a/epan/dissectors/usb.c
+++ b/epan/dissectors/usb.c
@@ -1227,6 +1227,7 @@ static const value_string usb_vendors_vals[] = {
{ 0x0a2c, "AK-Modul-Bus Computer GmbH" },
{ 0x0a34, "TG3 Electronics, Inc." },
{ 0x0a35, "Radikal Technologies" },
+ { 0x0a38, "IRIS sa" },
{ 0x0a39, "Gilat Satellite Networks, Ltd" },
{ 0x0a3a, "PentaMedia Co., Ltd" },
{ 0x0a3c, "NTT DoCoMo, Inc." },
@@ -3610,6 +3611,7 @@ static const value_string usb_products_vals[] = {
{ 0x03f00012, "DeskJet 1125C Printer Port" },
{ 0x03f00024, "KU-0316 Keyboard" },
{ 0x03f0002a, "LaserJet P1102" },
+ { 0x03f00036, "CCID Smartcard Keyboard KUS0133" },
{ 0x03f00053, "DeskJet 2620 All-in-One Printer" },
{ 0x03f00101, "ScanJet 4100c" },
{ 0x03f00102, "PhotoSmart S20" },
@@ -5812,6 +5814,7 @@ static const value_string usb_products_vals[] = {
{ 0x045e02ea, "Xbox One Controller" },
{ 0x045e02fd, "Xbox One S Controller [Bluetooth]" },
{ 0x045e02fe, "Xbox Wireless Adapter for Windows" },
+ { 0x045e0306, "Surface Pro 7 SD Card Reader" },
{ 0x045e0400, "Windows Powered Pocket PC 2002" },
{ 0x045e0401, "Windows Powered Pocket PC 2002" },
{ 0x045e0402, "Windows Powered Pocket PC 2002" },
@@ -8172,6 +8175,7 @@ static const value_string usb_products_vals[] = {
{ 0x04b00450, "Nikon Z9" },
{ 0x04b00451, "Nikon Z8" },
{ 0x04b00452, "Nikon Z30" },
+ { 0x04b00453, "Nikon Zf" },
{ 0x04b00601, "Nikon V1" },
{ 0x04b00602, "Nikon J1" },
{ 0x04b00603, "Nikon J2" },
@@ -8606,6 +8610,7 @@ static const value_string usb_products_vals[] = {
{ 0x04c8072c, "Revio KD20M" },
{ 0x04c8072d, "Revio KD410Z" },
{ 0x04ca0020, "USB Keyboard" },
+ { 0x04ca003a, "Multimedia Keyboard" },
{ 0x04ca004b, "Keyboard" },
{ 0x04ca004f, "SK-9020 keyboard" },
{ 0x04ca008a, "Acer Wired Mouse Model SM-9023" },
@@ -8779,6 +8784,7 @@ static const value_string usb_products_vals[] = {
{ 0x04cb02f0, "Fuji Fujifilm X-H2S" },
{ 0x04cb02f2, "Fuji Fujifilm X-H2" },
{ 0x04cb02fc, "Fuji Fujifilm X-T5" },
+ { 0x04cb0305, "Fuji Fujifilm X100VI" },
{ 0x04cb5006, "ASK-300" },
{ 0x04cb5007, "DX100" },
{ 0x04cc1122, "Hub" },
@@ -10641,6 +10647,7 @@ static const value_string usb_products_vals[] = {
{ 0x054c0568, "DSC-H100 in Mass Storage mode" },
{ 0x054c0574, "Sony SLT-A65V" },
{ 0x054c0577, "Sony SLT-A77V" },
+ { 0x054c0579, "Sony NEX-5N" },
{ 0x054c057d, "Sony NEX-7" },
{ 0x054c059a, "Sony NWZ-B163F" },
{ 0x054c05a6, "Sony NWZ-E464" },
@@ -11863,6 +11870,7 @@ static const value_string usb_products_vals[] = {
{ 0x059f1093, "Rugged" },
{ 0x059f1094, "Rugged THB" },
{ 0x059f1095, "Rugged" },
+ { 0x059f1105, "Mobile Drive (RLSD: 2022)" },
{ 0x059fa601, "HardDrive" },
{ 0x059fa602, "CD R/W" },
{ 0x05a38388, "Marvell 88W8388 802.11a/b/g WLAN" },
@@ -12777,6 +12785,8 @@ static const value_string usb_products_vals[] = {
{ 0x06380a41, "Avision AM3000/MF3000 Series" },
{ 0x06380f01, "fi-4010CU" },
{ 0x06384004, "Minolta Dimage Scan Elite II AF-2920 (2888)" },
+ { 0x06397213, "CH7213" },
+ { 0x06397231, "CH7213" },
{ 0x06400026, "LPC-Stick" },
{ 0x06440000, "Floppy" },
{ 0x06440200, "All-In-One Multi-Card Reader CA200/B/S" },
@@ -14631,6 +14641,7 @@ static const value_string usb_products_vals[] = {
{ 0x081edf00, "Handheld" },
{ 0x081fe401, "gamepad" },
{ 0x08222001, "IRXpress Infrared Device" },
+ { 0x0828a003, "WS408 Label Printer" },
{ 0x082d0100, "Visor" },
{ 0x082d0200, "Treo" },
{ 0x082d0300, "Treo 600" },
@@ -15153,6 +15164,12 @@ static const value_string usb_products_vals[] = {
{ 0x090804b2, "NC interface" },
{ 0x090804b3, "keyboard front panel Cockpit" },
{ 0x090804b4, "SCR_CCID" },
+ { 0x090804b5, "Camera" },
+ { 0x090804b6, "Cockpit Touchkeypad" },
+ { 0x090804b7, "Cockpit Touchkeypad Bootloader" },
+ { 0x090804b8, "MediSET USB4-W" },
+ { 0x090804b9, "MediSET USB4-R" },
+ { 0x090804ba, "MediSET USB4-G" },
{ 0x09082701, "ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA" },
{ 0x0909001b, "ATR2100-USB" },
{ 0x0909001c, "AT2020USB+" },
@@ -15282,6 +15299,7 @@ static const value_string usb_products_vals[] = {
{ 0x091e50a1, "Garmin Forerunner 265" },
{ 0x091e50db, "Garmin Forerunner 965" },
{ 0x091e5116, "Garmin Fenix 7s pro sapphire solar" },
+ { 0x09205550, "U60 FT Network Interface" },
{ 0x09207500, "Network Interface" },
{ 0x09211001, "GoCOM232 Serial" },
{ 0x09220007, "LabelWriter 330" },
@@ -15482,6 +15500,7 @@ static const value_string usb_products_vals[] = {
{ 0x0944010f, "nanoKONTROL studio controller" },
{ 0x09440117, "nanoKONTROL2 MIDI Controller" },
{ 0x0944012f, "SQ-1" },
+ { 0x09440203, "KRONOS" },
{ 0x09440f03, "K-Series K61P MIDI studio controller" },
{ 0x09480301, "USB Pro (24/48)" },
{ 0x09480302, "USB Pro (24/96 playback)" },
@@ -15547,7 +15566,8 @@ static const value_string usb_products_vals[] = {
{ 0x09557140, "T124 [Tegra K1/Logan 32-bit]" },
{ 0x09557210, "SHIELD Controller" },
{ 0x09557321, "Switch [Tegra Erista] recovery mode" },
- { 0x09557423, "T234 [Orin NX] recovery mode" },
+ { 0x09557323, "T234 [Orin NX 16GB] recovery mode" },
+ { 0x09557423, "T234 [Orin NX 8GB] recovery mode" },
{ 0x09557721, "nVidia Jetson TX1" },
{ 0x09557820, "T20 [Tegra 2] recovery mode" },
{ 0x09557c18, "T186 [TX2 Tegra Parker] recovery mode" },
@@ -15678,12 +15698,15 @@ static const value_string usb_products_vals[] = {
{ 0x09d70100, "GPS/GNSS/SPAN sensor" },
{ 0x09d80320, "TWN3 Multi125" },
{ 0x09d80406, "TWN4 MIFARE NFC" },
+ { 0x09d80410, "TWN4 HID" },
+ { 0x09d80420, "TWN4 CDC" },
{ 0x09da0006, "Optical Mouse WOP-35 / Trust 450L Optical Mouse" },
{ 0x09da000a, "Optical Mouse Opto 510D / OP-620D" },
{ 0x09da000e, "X-F710F Optical Mouse 3xFire Gaming Mouse" },
{ 0x09da0018, "Trust Human Interface Device" },
{ 0x09da001a, "Wireless Mouse & RXM-15 Receiver" },
{ 0x09da002a, "Wireless Optical Mouse NB-30" },
+ { 0x09da0103, "Oscar X-710BK Gaming Mouse" },
{ 0x09da022b, "Wireless Mouse (Battery Free)" },
{ 0x09da024f, "RF Receiver and G6-20D Wireless Optical Mouse" },
{ 0x09da0260, "KV-300H Isolation Keyboard" },
@@ -15691,12 +15714,16 @@ static const value_string usb_products_vals[] = {
{ 0x09da09da, "Bloody V8 Mouse" },
{ 0x09da1068, "Bloody A90 Mouse" },
{ 0x09da112c, "Bloody V5 Mouse" },
+ { 0x09da2268, "Keyboard (FK11)" },
+ { 0x09da2690, "PK-635G" },
{ 0x09da3a60, "Bloody V8M Core 2 Mouse" },
{ 0x09da8090, "X-718BK Oscar Optical Gaming Mouse" },
{ 0x09da9033, "X-718BK Optical Mouse" },
{ 0x09da9066, "F3 V-Track Gaming Mouse" },
- { 0x09da9090, "XL-730K / XL-750BK / XL-755BK Mice" },
+ { 0x09da9090, "XL-730K / XL-747H / XL-750BK / XL-755BK Mice" },
{ 0x09daf613, "Bloody V7M Mouse" },
+ { 0x09daf6cc, "B314 Light Strike Gaming Keyboard" },
+ { 0x09dafa44, "B930 Light Strike RGB Mechanical Gaming Keyboard" },
{ 0x09db0075, "MiniLab 1008" },
{ 0x09db0076, "PMD-1024" },
{ 0x09db007a, "PMD-1208LS" },
@@ -15704,11 +15731,13 @@ static const value_string usb_products_vals[] = {
{ 0x09db0082, "USB-1208FS" },
{ 0x09db0088, "USB-1616FS internal hub" },
{ 0x09e15121, "MicroLink dLAN" },
+ { 0x09e80029, "APC40 mkII" },
{ 0x09e80045, "MPK Mini Mk II MIDI Controller" },
{ 0x09e80062, "MPD16 MIDI Pad Controller Unit" },
{ 0x09e8006d, "EWI electronic wind instrument" },
{ 0x09e80071, "MPK25 MIDI Keyboard" },
{ 0x09e80076, "LPK25 MIDI Keyboard" },
+ { 0x09e8007c, "MPK Mini MIDI Controller" },
{ 0x09eb4331, "iRhythm Tuner Remote" },
{ 0x09ef0101, "MD-Port DG2 MiniDisc Interface" },
{ 0x09f30018, "GF-46 Multi-Mode Display Module" },
@@ -15752,6 +15781,9 @@ static const value_string usb_products_vals[] = {
{ 0x0a121010, "Bluetooth Device" },
{ 0x0a121011, "Bluetooth Device" },
{ 0x0a121012, "Bluetooth Device" },
+ { 0x0a121243, "CSRA64210 [TaoTronics Headset BH-22 in charging mode]" },
+ { 0x0a124007, "Mpow HC5 Headset in charging mode - HID / Mass Storage" },
+ { 0x0a124010, "Mpow HC5 Headset in charging mode - USB Hub" },
{ 0x0a12ffff, "USB Bluetooth Device in DFU State" },
{ 0x0a161111, "ThumbDrive" },
{ 0x0a168888, "IBM USB Memory Key" },
@@ -15885,6 +15917,7 @@ static const value_string usb_products_vals[] = {
{ 0x0a5c217f, "BCM2045B (BDC-2.1)" },
{ 0x0a5c2198, "Bluetooth 3.0 Device" },
{ 0x0a5c219b, "Bluetooth 2.1 Device" },
+ { 0x0a5c219c, "BCM2070 Bluetooth" },
{ 0x0a5c21b1, "HP Bluetooth Module" },
{ 0x0a5c21b4, "BCM2070 Bluetooth 2.1 + EDR" },
{ 0x0a5c21b9, "BCM2070 Bluetooth 2.1 + EDR" },
@@ -15908,6 +15941,7 @@ static const value_string usb_products_vals[] = {
{ 0x0a5c5802, "BCM5880 Secure Applications Processor with fingerprint touch sensor" },
{ 0x0a5c5803, "BCM5880 Secure Applications Processor with secure keyboard" },
{ 0x0a5c5804, "BCM5880 Secure Applications Processor with fingerprint swipe sensor" },
+ { 0x0a5c5832, "BCM5880 Secure Applications Processor Smartcard reader" },
{ 0x0a5c6300, "Pirelli Remote NDIS Device" },
{ 0x0a5c6410, "BCM20703A1 Bluetooth 4.1 + LE" },
{ 0x0a5cbd11, "BCM4320 802.11bg Wireless Adapter" },
@@ -23361,6 +23395,8 @@ static const value_string usb_products_vals[] = {
{ 0x20870b03, "Multi Touch Panel" },
{ 0x20a00006, "flirc" },
{ 0x20a04107, "GPF Crypto Stick V1.2" },
+ { 0x20a04108, "Nitrokey Pro" },
+ { 0x20a04109, "Nitrokey Storage" },
{ 0x20a04123, "IKALOGIC SCANALOGIC 2" },
{ 0x20a0414a, "MDE SPI Interface" },
{ 0x20a0415a, "OpenPilot" },
@@ -23369,7 +23405,16 @@ static const value_string usb_products_vals[] = {
{ 0x20a041e5, "BlinkStick" },
{ 0x20a04211, "Nitrokey Start" },
{ 0x20a04223, "ATSAMD21 [castAR]" },
+ { 0x20a04230, "Nitrokey HSM" },
+ { 0x20a04287, "Nitrokey FIDO U2F" },
{ 0x20a0428d, "Electrosense wideband converter" },
+ { 0x20a042b1, "Nitrokey FIDO2" },
+ { 0x20a042b2, "Nitrokey 3A Mini/3A NFC/3C NFC" },
+ { 0x20a042b4, "Nitrokey Pro Bootloader" },
+ { 0x20a042da, "MuteMe" },
+ { 0x20a042dd, "Nitrokey 3A NFC Bootloader/3C NFC Bootloader" },
+ { 0x20a042e8, "Nitrokey 3A Mini Bootloader" },
+ { 0x20a042ec, "RP2040 [PicoWifi]" },
{ 0x20b110ad, "XUSB Loader" },
{ 0x20b1f7d1, "XTAG2 - JTAG Adapter" },
{ 0x20b30a18, "10.1 Touch screen overlay" },
@@ -24000,7 +24045,7 @@ static const value_string usb_products_vals[] = {
{ 0x25784168, "2.4GHZ Wireless Arc Folding Mouse" },
{ 0x25811807, "Generic HID Smartcard" },
{ 0x25811808, "WinUSB Smartcard" },
- { 0x2581f1d0, "FIDO U2F Security Key" },
+ { 0x2581f1d0, "Nitrokey U2F" },
{ 0x25a72410, "Laser mouse" },
{ 0x25a7fa23, "2.4G Receiver" },
{ 0x25a7fa61, "Elecom Co., Ltd MR-K013 Multicard Reader" },
@@ -24715,6 +24760,7 @@ static const value_string usb_products_vals[] = {
{ 0x33840000, "Thelio Io (thelio-io)" },
{ 0x33840001, "Launch Configurable Keyboard (launch_1)" },
{ 0x339b107d, "Honor X8/X9 5G" },
+ { 0x33a20136, "Olympus OM-1MarkII" },
{ 0x348f2322, "Wireless Presenter" },
{ 0x3504f110, "Security Key" },
{ 0x35380001, "Travel Flash" },
diff --git a/epan/dissectors/x11-declarations.h b/epan/dissectors/x11-declarations.h
index c75be8bb0c..0c48c465dd 100644
--- a/epan/dissectors/x11-declarations.h
+++ b/epan/dissectors/x11-declarations.h
@@ -2059,6 +2059,9 @@ static int hf_x11_dri3_BuffersFromPixmap_reply_buffers;
static int hf_x11_dri3_SetDRMDeviceInUse_window;
static int hf_x11_dri3_SetDRMDeviceInUse_drmMajor;
static int hf_x11_dri3_SetDRMDeviceInUse_drmMinor;
+static int hf_x11_dri3_ImportSyncobj_syncobj;
+static int hf_x11_dri3_ImportSyncobj_drawable;
+static int hf_x11_dri3_FreeSyncobj_syncobj;
static int hf_x11_dri3_extension_minor;
static int hf_x11_ge_QueryVersion_client_major_version;
@@ -2749,6 +2752,24 @@ static int hf_x11_present_SelectInput_event_mask_mask_RedirectNotify;
static int hf_x11_present_SelectInput_event_mask;
static int hf_x11_present_QueryCapabilities_target;
static int hf_x11_present_QueryCapabilities_reply_capabilities;
+static int hf_x11_present_PixmapSynced_window;
+static int hf_x11_present_PixmapSynced_pixmap;
+static int hf_x11_present_PixmapSynced_serial;
+static int hf_x11_present_PixmapSynced_valid;
+static int hf_x11_present_PixmapSynced_update;
+static int hf_x11_present_PixmapSynced_x_off;
+static int hf_x11_present_PixmapSynced_y_off;
+static int hf_x11_present_PixmapSynced_target_crtc;
+static int hf_x11_present_PixmapSynced_acquire_syncobj;
+static int hf_x11_present_PixmapSynced_release_syncobj;
+static int hf_x11_present_PixmapSynced_acquire_point;
+static int hf_x11_present_PixmapSynced_release_point;
+static int hf_x11_present_PixmapSynced_options;
+static int hf_x11_present_PixmapSynced_target_msc;
+static int hf_x11_present_PixmapSynced_divisor;
+static int hf_x11_present_PixmapSynced_remainder;
+static int hf_x11_present_PixmapSynced_notifies;
+static int hf_x11_present_PixmapSynced_notifies_item;
static int hf_x11_present_CompleteNotify_kind;
static int hf_x11_present_CompleteNotify_mode;
static int hf_x11_present_CompleteNotify_event;
diff --git a/epan/dissectors/x11-enum.h b/epan/dissectors/x11-enum.h
index 8550c131d5..a3d057f6c1 100644
--- a/epan/dissectors/x11-enum.h
+++ b/epan/dissectors/x11-enum.h
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It was automatically generated by ../../tools/process-x11-xcb.pl
- using xcbproto version xcb-proto-1.16.0-2-g1388374 */
+ using xcbproto version xcb-proto-1.17.0 */
/*
* Copyright 2008, 2009, 2013, 2014 Open Text Corporation <pharris[AT]opentext.com>
*
diff --git a/epan/dissectors/x11-extension-errors.h b/epan/dissectors/x11-extension-errors.h
index 3db02ccbf1..c600ca8d20 100644
--- a/epan/dissectors/x11-extension-errors.h
+++ b/epan/dissectors/x11-extension-errors.h
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It was automatically generated by ../../tools/process-x11-xcb.pl
- using xcbproto version xcb-proto-1.16.0-2-g1388374 */
+ using xcbproto version xcb-proto-1.17.0 */
/*
* Copyright 2008, 2009, 2013, 2014 Open Text Corporation <pharris[AT]opentext.com>
*
diff --git a/epan/dissectors/x11-extension-implementation.h b/epan/dissectors/x11-extension-implementation.h
index fb17ab239c..5f0430f158 100644
--- a/epan/dissectors/x11-extension-implementation.h
+++ b/epan/dissectors/x11-extension-implementation.h
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It was automatically generated by ../../tools/process-x11-xcb.pl
- using xcbproto version xcb-proto-1.16.0-2-g1388374 */
+ using xcbproto version xcb-proto-1.17.0 */
/*
* Copyright 2008, 2009, 2013, 2014 Open Text Corporation <pharris[AT]opentext.com>
*
@@ -6892,6 +6892,20 @@ static void dri3SetDRMDeviceInUse(tvbuff_t *tvb, packet_info *pinfo _U_, int *of
proto_tree_add_item(t, hf_x11_dri3_SetDRMDeviceInUse_drmMinor, tvb, *offsetp, 4, byte_order);
*offsetp += 4;
}
+
+static void dri3ImportSyncobj(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
+{
+ proto_tree_add_item(t, hf_x11_dri3_ImportSyncobj_syncobj, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_dri3_ImportSyncobj_drawable, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+}
+
+static void dri3FreeSyncobj(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
+{
+ proto_tree_add_item(t, hf_x11_dri3_FreeSyncobj_syncobj, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+}
static const value_string dri3_extension_minor[] = {
{ 0, "QueryVersion" },
{ 1, "Open" },
@@ -6903,6 +6917,8 @@ static const value_string dri3_extension_minor[] = {
{ 7, "PixmapFromBuffers" },
{ 8, "BuffersFromPixmap" },
{ 9, "SetDRMDeviceInUse" },
+ { 10, "ImportSyncobj" },
+ { 11, "FreeSyncobj" },
{ 0, NULL }
};
static const x11_event_info dri3_events[] = {
@@ -6958,6 +6974,12 @@ static void dispatch_dri3(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto
case 9:
dri3SetDRMDeviceInUse(tvb, pinfo, offsetp, t, byte_order, length);
break;
+ case 10:
+ dri3ImportSyncobj(tvb, pinfo, offsetp, t, byte_order, length);
+ break;
+ case 11:
+ dri3FreeSyncobj(tvb, pinfo, offsetp, t, byte_order, length);
+ break;
/* No need for a default case here, since Unknown is printed above,
and UNDECODED() is taken care of by dissect_x11_request */
}
@@ -10817,6 +10839,45 @@ static void presentQueryCapabilities_Reply(tvbuff_t *tvb, packet_info *pinfo, in
*offsetp += 4;
}
+static void presentPixmapSynced(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
+{
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_window, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_pixmap, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_serial, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_valid, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_update, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_x_off, tvb, *offsetp, 2, byte_order);
+ *offsetp += 2;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_y_off, tvb, *offsetp, 2, byte_order);
+ *offsetp += 2;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_target_crtc, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_acquire_syncobj, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_release_syncobj, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_acquire_point, tvb, *offsetp, 8, byte_order);
+ *offsetp += 8;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_release_point, tvb, *offsetp, 8, byte_order);
+ *offsetp += 8;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_options, tvb, *offsetp, 4, byte_order);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
+ *offsetp += 4;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_target_msc, tvb, *offsetp, 8, byte_order);
+ *offsetp += 8;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_divisor, tvb, *offsetp, 8, byte_order);
+ *offsetp += 8;
+ proto_tree_add_item(t, hf_x11_present_PixmapSynced_remainder, tvb, *offsetp, 8, byte_order);
+ *offsetp += 8;
+ struct_present_Notify(tvb, offsetp, t, byte_order, (length - 88) / 8);
+}
+
static void presentCompleteNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
{
proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 1,
@@ -10908,6 +10969,7 @@ static const value_string present_extension_minor[] = {
{ 2, "NotifyMSC" },
{ 3, "SelectInput" },
{ 4, "QueryCapabilities" },
+ { 5, "PixmapSynced" },
{ 0, NULL }
};
static const x11_event_info present_events[] = {
@@ -10951,6 +11013,9 @@ static void dispatch_present(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, pr
case 4:
presentQueryCapabilities(tvb, pinfo, offsetp, t, byte_order, length);
break;
+ case 5:
+ presentPixmapSynced(tvb, pinfo, offsetp, t, byte_order, length);
+ break;
/* No need for a default case here, since Unknown is printed above,
and UNDECODED() is taken care of by dissect_x11_request */
}
diff --git a/epan/dissectors/x11-glx-render-enum.h b/epan/dissectors/x11-glx-render-enum.h
index a7099e6c51..38abcbe0e3 100644
--- a/epan/dissectors/x11-glx-render-enum.h
+++ b/epan/dissectors/x11-glx-render-enum.h
@@ -1,6 +1,6 @@
/* Do not modify this file. */
/* It was automatically generated by ../../tools/process-x11-xcb.pl
- using mesa version 24.0-branchpoint-1188-gc3062e3402f */
+ using mesa version 24.0-branchpoint-4920-ge297fb1bd59 */
/*
* Copyright 2008, 2009, 2013, 2014 Open Text Corporation <pharris[AT]opentext.com>
*
diff --git a/epan/dissectors/x11-register-info.h b/epan/dissectors/x11-register-info.h
index 86a0037d31..77e8e240a1 100644
--- a/epan/dissectors/x11-register-info.h
+++ b/epan/dissectors/x11-register-info.h
@@ -2059,6 +2059,9 @@
{ &hf_x11_dri3_SetDRMDeviceInUse_window, { "window", "x11.dri3.SetDRMDeviceInUse.window", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_x11_dri3_SetDRMDeviceInUse_drmMajor, { "drmMajor", "x11.dri3.SetDRMDeviceInUse.drmMajor", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
{ &hf_x11_dri3_SetDRMDeviceInUse_drmMinor, { "drmMinor", "x11.dri3.SetDRMDeviceInUse.drmMinor", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_dri3_ImportSyncobj_syncobj, { "syncobj", "x11.dri3.ImportSyncobj.syncobj", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_dri3_ImportSyncobj_drawable, { "drawable", "x11.dri3.ImportSyncobj.drawable", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_dri3_FreeSyncobj_syncobj, { "syncobj", "x11.dri3.FreeSyncobj.syncobj", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_x11_dri3_extension_minor, { "extension-minor", "x11.extension-minor", FT_UINT8, BASE_DEC, VALS(dri3_extension_minor), 0, "minor opcode", HFILL }},
{ &hf_x11_ge_QueryVersion_client_major_version, { "client_major_version", "x11.ge.QueryVersion.client_major_version", FT_UINT16, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
@@ -2749,6 +2752,24 @@
{ &hf_x11_present_SelectInput_event_mask, { "event_mask", "x11.present.SelectInput.event_mask", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
{ &hf_x11_present_QueryCapabilities_target, { "target", "x11.present.QueryCapabilities.target", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
{ &hf_x11_present_QueryCapabilities_reply_capabilities, { "capabilities", "x11.present.QueryCapabilities.reply.capabilities", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_window, { "window", "x11.present.PixmapSynced.window", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_pixmap, { "pixmap", "x11.present.PixmapSynced.pixmap", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_serial, { "serial", "x11.present.PixmapSynced.serial", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_valid, { "valid", "x11.present.PixmapSynced.valid", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_update, { "update", "x11.present.PixmapSynced.update", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_x_off, { "x_off", "x11.present.PixmapSynced.x_off", FT_INT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_y_off, { "y_off", "x11.present.PixmapSynced.y_off", FT_INT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_target_crtc, { "target_crtc", "x11.present.PixmapSynced.target_crtc", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_acquire_syncobj, { "acquire_syncobj", "x11.present.PixmapSynced.acquire_syncobj", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_release_syncobj, { "release_syncobj", "x11.present.PixmapSynced.release_syncobj", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_acquire_point, { "acquire_point", "x11.present.PixmapSynced.acquire_point", FT_UINT64, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_release_point, { "release_point", "x11.present.PixmapSynced.release_point", FT_UINT64, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_options, { "options", "x11.present.PixmapSynced.options", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_target_msc, { "target_msc", "x11.present.PixmapSynced.target_msc", FT_UINT64, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_divisor, { "divisor", "x11.present.PixmapSynced.divisor", FT_UINT64, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_remainder, { "remainder", "x11.present.PixmapSynced.remainder", FT_UINT64, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_notifies, { "notifies", "x11.present.PixmapSynced.notifies.list", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+{ &hf_x11_present_PixmapSynced_notifies_item, { "notifies", "x11.present.PixmapSynced.notifies", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_x11_present_CompleteNotify_kind, { "kind", "x11.present.CompleteNotify.kind", FT_UINT8, BASE_HEX_DEC, VALS(x11_enum_present_CompleteKind), 0, NULL, HFILL }},
{ &hf_x11_present_CompleteNotify_mode, { "mode", "x11.present.CompleteNotify.mode", FT_UINT8, BASE_HEX_DEC, VALS(x11_enum_present_CompleteMode), 0, NULL, HFILL }},
{ &hf_x11_present_CompleteNotify_event, { "event", "x11.present.CompleteNotify.event", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
@@ -4127,7 +4148,7 @@
{ &hf_x11_xf86vidmode_SetViewPort_x, { "x", "x11.xf86vidmode.SetViewPort.x", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
{ &hf_x11_xf86vidmode_SetViewPort_y, { "y", "x11.xf86vidmode.SetViewPort.y", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
{ &hf_x11_xf86vidmode_GetDotClocks_screen, { "screen", "x11.xf86vidmode.GetDotClocks.screen", FT_UINT16, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
-{ &hf_x11_xf86vidmode_GetDotClocks_reply_flags_mask_Programable, { "Programmable", "x11.xf86vidmode.GetDotClocks.reply.flags.Programmable", FT_BOOLEAN, 32, NULL, 1U << 0, NULL, HFILL }},
+{ &hf_x11_xf86vidmode_GetDotClocks_reply_flags_mask_Programable, { "Programable", "x11.xf86vidmode.GetDotClocks.reply.flags.Programable", FT_BOOLEAN, 32, NULL, 1U << 0, NULL, HFILL }},
{ &hf_x11_xf86vidmode_GetDotClocks_reply_flags, { "flags", "x11.xf86vidmode.GetDotClocks.reply.flags", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
{ &hf_x11_xf86vidmode_GetDotClocks_reply_clocks, { "clocks", "x11.xf86vidmode.GetDotClocks.reply.clocks", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
{ &hf_x11_xf86vidmode_GetDotClocks_reply_maxclocks, { "maxclocks", "x11.xf86vidmode.GetDotClocks.reply.maxclocks", FT_UINT32, BASE_HEX_DEC, NULL, 0, NULL, HFILL }},
diff --git a/epan/enterprises.c b/epan/enterprises.c
index a57ab4a86e..902ad24462 100644
--- a/epan/enterprises.c
+++ b/epan/enterprises.c
@@ -8,7 +8,7 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
-/* (last updated 2024-03-15) */
+/* (last updated 2024-05-17) */
#include "config.h"
@@ -19,12 +19,12 @@
typedef struct
{
uint32_t max_idx;
- const char* values[61653];
+ const char* values[61919];
} global_enterprises_table_t;
static global_enterprises_table_t table =
{
- 61652,
+ 61918,
{
"Reserved", // 0
"NxNetworks", // 1
@@ -316,7 +316,7 @@ static global_enterprises_table_t table =
"CSELT(Centro Studi E Laboratori Telecomunicazioni)", // 287
"Electronic Data Systems", // 288
"Brocade Communications Systems, Inc.", // 289
- "Harris Corporation", // 290
+ "L3Harris Corporation", // 290
"Technology Dynamics, Inc.", // 291
"DATAHOUSE Information Systems Ltd.", // 292
"Teltrend (NZ) Limited", // 293
@@ -5014,7 +5014,7 @@ static global_enterprises_table_t table =
"Vigilant Networks", // 4985
"KB/Tel", // 4986
"Simpler Networks Inc.", // 4987
- "Ronningen Consulting", // 4988
+ "Synkro AS", // 4988
"Connect Austria GmbH", // 4989
"TTI Telecom", // 4990
"Stonebridge Technologies, Inc.S.E.", // 4991
@@ -9862,7 +9862,7 @@ static global_enterprises_table_t table =
"Legend Holdings Ltd.", // 9833
"Agencja Uslug InformatycznychARTCOMP", // 9834
"Alien Network", // 9835
- "AOK Bayern", // 9836
+ "AOK Bayern – Die Gesundheitskasse", // 9836
"Ball State University", // 9837
"Broadview Networks, Inc.", // 9838
"CAREL", // 9839
@@ -10411,7 +10411,7 @@ static global_enterprises_table_t table =
"UCNET", // 10382
"Universite de Liege", // 10383
"Virginia Commonwealth University", // 10384
- "Westronic Systems, Inc.", // 10385
+ "Guardian Telecom Ltd.", // 10385
"YoungWoo Telecom Co., LTD", // 10386
"Dongah Elecomm", // 10387
"Supportcomm Teleinformatica SA", // 10388
@@ -19009,7 +19009,7 @@ static global_enterprises_table_t table =
"Cypak AB", // 18980
"Reserved", // 18981
"Link-Yug Ltd.", // 18982
- "AOK Sachsen", // 18983
+ "AOK PLUS – Die Gesundheitskasse für Sachsen und Thüringen", // 18983
"Magos Consulting, Ltd.", // 18984
"Insinova AG", // 18985
"FleetBoston Financial Corporation", // 18986
@@ -22157,7 +22157,7 @@ static global_enterprises_table_t table =
"RBC Capital Markets, Sydney", // 22128
"AfterHours Upgrades", // 22129
"Vivatas, Inc", // 22130
- "ÖWD time access GmbH", // 22131
+ "ÖWD security systems GmbH & Co KG", // 22131
"Mediasyscom SAS", // 22132
"UWIC", // 22133
"Eminds AB", // 22134
@@ -26722,7 +26722,7 @@ static global_enterprises_table_t table =
"AirPoint Co., Ltd.", // 26693
"Digitals India", // 26694
"Openlink Financial, Inc.", // 26695
- "Marvell Semiconductor Inc.", // 26696
+ "Marvell Technology Inc", // 26696
"Arces Network, LLC", // 26697
"Net Project SRL", // 26698
"Open Switch Software e Consultoria Ltda", // 26699
@@ -40480,7 +40480,7 @@ static global_enterprises_table_t table =
"Allens, Inc.", // 40451
"Care Team Connect Inc.", // 40452
"School District", // 40453
- "Jaguar Network", // 40454
+ "Free Pro", // 40454
"TMM.CX", // 40455
"Radio Systems Ltd", // 40456
"Zen Entertainment, Inc.", // 40457
@@ -40598,7 +40598,7 @@ static global_enterprises_table_t table =
"HERNIS Scan Systems AS", // 40569
"RFOptic", // 40570
"SRT Communications, Inc.", // 40571
- "Carlos Domingues", // 40572
+ "CapTemp, Lda", // 40572
"vklop.com", // 40573
"Ukrainian Computer Laboratory ltd.", // 40574
"Touro Infirmary", // 40575
@@ -45763,7 +45763,7 @@ static global_enterprises_table_t table =
"STARNET s.r.o.", // 45734
"easyset", // 45735
"Utilisoft Ltd", // 45736
- "shah-network.com", // 45737
+ "brokentech.ca", // 45737
"Aspirational Cognition LLC", // 45738
"winfonet.eu", // 45739
"Cirrus Identity, Inc", // 45740
@@ -47482,7 +47482,7 @@ static global_enterprises_table_t table =
"Gobierno de Santa Fe", // 47453
"Area d'Inxenieria Telematica - University of Oviedo", // 47454
"Sydved AB", // 47455
- "Vodafone NZ Limited", // 47456
+ "One New Zealand Group Limited", // 47456
"SAS Orbitracs", // 47457
"GIGANET NETWORKING SOLUTIONS LTD", // 47458
"BKM-Micronic Richtfunkanlagen GmbH", // 47459
@@ -49330,7 +49330,7 @@ static global_enterprises_table_t table =
"BCS Information Systems Pte Ltd", // 49301
"Dart Container", // 49302
"Flexmedia Ind. e Com. de Tecnologia Ltda.", // 49303
- "Tapoustry", // 49304
+ NULL, // 49304
"Neural Technologies", // 49305
"AUM Cardiovascular Inc", // 49306
"Secturion Systems Inc.", // 49307
@@ -50756,7 +50756,7 @@ static global_enterprises_table_t table =
"Civil Aviation University of China", // 50727
"Nemon", // 50728
"Stichting Groningen Groningen Declaration Network", // 50729
- "TELCAT MULTICOM GmbH", // 50730
+ "Salzgitter Digital Solutions GmbH", // 50730
"NAES Corporation", // 50731
"HIAG Data", // 50732
"bluebyteIT Sven Treiber", // 50733
@@ -51734,7 +51734,7 @@ static global_enterprises_table_t table =
"Ionx Solutions", // 51705
"Anditi", // 51706
"South Sound Oncology Services, PC", // 51707
- "Gatema a.s.", // 51708
+ "Medutech s.r.o.", // 51708
"K-CIX", // 51709
"Electronic Monitoring Solutionz Ltd", // 51710
"Apis Networks", // 51711
@@ -53619,7 +53619,7 @@ static global_enterprises_table_t table =
"Eastone Century Technology Co,.Ltd.", // 53590
"TERAPRO", // 53591
"K M B systems, s.r.o.", // 53592
- "Highways England", // 53593
+ "National Highways", // 53593
"Protocol Labs", // 53594
"Lookback Inc", // 53595
"Cumulus Cloud Software and Consulting", // 53596
@@ -54624,7 +54624,7 @@ static global_enterprises_table_t table =
"Phinergy", // 54595
"Duracomm Corporation", // 54596
"L&T Technology Services", // 54597
- "Daimler AG", // 54598
+ "Mercedes-Benz Group AG", // 54598
"DPD Direct Parcel Distribution Austria GmbH", // 54599
"PGE Systemy S.A.", // 54600
"LLC «FOTEL»", // 54601
@@ -55203,7 +55203,7 @@ static global_enterprises_table_t table =
"LPS France", // 55174
"Hans Sasserath GmbH & Co. KG", // 55175
"Hitachi Industrial Equipment Systems Co.,Ltd.", // 55176
- "MOS Corporate Service GmbH", // 55177
+ "MOS Corporate Services GmbH", // 55177
"OECHSLER AG", // 55178
"OECHSLER Motion GmbH", // 55179
"Säters Kommun", // 55180
@@ -57990,7 +57990,7 @@ static global_enterprises_table_t table =
"Telycan S.L.", // 57961
"Sedam IT d.o.o.", // 57962
"Afzar Pardaz Tose'eh", // 57963
- "ZAP Surgical Systems, Inc.", // 57964
+ "ZAP Surgical Systems, Inc", // 57964
"LLC ""Company DVK-electro""", // 57965
"Aethera Technologies Limited", // 57966
"INSTITUTO PARA LA DINAMIZACIÓN ECONÓMICA S.A.", // 57967
@@ -59920,7 +59920,7 @@ static global_enterprises_table_t table =
"Baltic Institute of Advanced Technology", // 59891
"Denomas Denetim Otomasyon", // 59892
"ZhangZexin", // 59893
- "LBS Westdeutsche Landesbausparkasse", // 59894
+ "LBS Landesbausparkasse NordWest", // 59894
"DOXIO", // 59895
"NTS LLC", // 59896
"Anothermouse", // 59897
@@ -60374,7 +60374,7 @@ static global_enterprises_table_t table =
"Open industrial PKI", // 60345
"Voelkl Sports GmbH", // 60346
"Lutech SpA", // 60347
- "Aretiico PLC", // 60348
+ "Aretiico Group PLC", // 60348
"Barbaros Catkan", // 60349
"Settels Savenije Group of Companies", // 60350
"ITSEC RND MICHAŁ LESZCZYŃSKI", // 60351
@@ -61162,7 +61162,7 @@ static global_enterprises_table_t table =
"Reposit Power", // 61133
"Wallbox N.V.", // 61134
"GTD International", // 61135
- "Sune Andersen", // 61136
+ "Aeven A/S", // 61136
"Smart'r Solutions", // 61137
"Attochron, LLC", // 61138
"F&F Filipowski", // 61139
@@ -61376,7 +61376,7 @@ static global_enterprises_table_t table =
"Kirill Sluzhaev", // 61347
"Limited Liability Company ""Thunder Soft""", // 61348
"北京中科恒伦科技有限公司 (Beijing Zhongke Henglun Technology Co., Ltd.)", // 61349
- "SMARTGEN(ZHENGZHOU) TECHNOLOGY CO.,LTD", // 61350
+ "smartgen", // 61350
"Telekomi Kosoves", // 61351
"Parta Networks", // 61352
"Polar Wind Medical Center, Inc.", // 61353
@@ -61597,7 +61597,7 @@ static global_enterprises_table_t table =
"Shanghai Pingbo Info & Tech Ltd.", // 61568
"Matthew Gardner", // 61569
"Bence Skorka", // 61570
- "Asseco SEE d.o.o Beograd", // 61571
+ "ASEE Solutions d.o.o Beograd", // 61571
"BNGSOFT ltd.", // 61572
"Code Fox", // 61573
"Stadt Troisdorf", // 61574
@@ -61678,7 +61678,273 @@ static global_enterprises_table_t table =
"Citykinect Inc", // 61649
"Semco Maritime A/S", // 61650
"PA Technology Solutions Limited", // 61651
- "America's First Responders Network" // 61652
+ "America's First Responders Network", // 61652
+ "DDL-Engineering", // 61653
+ "Digitaltomass", // 61654
+ "CV TRENINDO CIPTA MANDIRI", // 61655
+ "Information Softworks., Inc", // 61656
+ "ArtiVisi Intermedia", // 61657
+ "Equalx Technologies Private Limited", // 61658
+ "xk-image", // 61659
+ "PrecisionX Technology LLC", // 61660
+ "AISWEI Technology Co., Ltd.", // 61661
+ "Community Health & Emergency Services Inc.", // 61662
+ "Monolit IT Sp. z o.o.", // 61663
+ "Etihad Etisalat Company (Mobily)", // 61664
+ "Aleko Embedded", // 61665
+ "Tunstall Systems", // 61666
+ "Anastasios Mavrommatis - IT Lösungen", // 61667
+ "PT Sinar Baru Rajawali", // 61668
+ "Noark Australia Pty Ltd", // 61669
+ "OneTv S.r.l.", // 61670
+ "Gemeinnützige Industrie- Wohnungsaktiengesellschaft", // 61671
+ "Creative Liquid Coatings", // 61672
+ "Concrete Genius Manufacturing Inc.", // 61673
+ "Coridyan", // 61674
+ "Hangzhou Bingte Technology Co., Ltd", // 61675
+ "Wha Yu Industrial Co., Ltd.", // 61676
+ "BxC GmbH & Co. KG", // 61677
+ "FIMER S.p.A", // 61678
+ "Hellenic National Defense General Staff (HNDGS)", // 61679
+ "Troglodyte.io", // 61680
+ "Joe Sniderman & Associates, LLC", // 61681
+ "Kontrolnext Technology", // 61682
+ "Hoffmann Group Engineering GmbH", // 61683
+ "Beutlhauser Holding GmbH", // 61684
+ "Orxcel Co.,Limited", // 61685
+ "Athens-Limestone Hospital", // 61686
+ "Mani Raju (LcDigital)", // 61687
+ "oruga.de", // 61688
+ "Ricon İletişim AŞ", // 61689
+ "ThinkCloud", // 61690
+ "Public Joint Stock Company Mobile TeleSystems (PJSC MTS)", // 61691
+ "MA Labs", // 61692
+ "Karam Jameel Moore", // 61693
+ "Local Connectivity Lab", // 61694
+ "Eltron s.r.o.", // 61695
+ "MEMMERT GMBH + CO. KG", // 61696
+ "Bolle", // 61697
+ "r01.li hébergement communautaire", // 61698
+ "Esc Muhendislik A.S.", // 61699
+ "Southgate Community Schools", // 61700
+ "Piing.ai", // 61701
+ "Kuhmo Oy", // 61702
+ "Thomasville City Schools", // 61703
+ "Luminex Software Inc.", // 61704
+ "Ravit Technologies Pvt. Ltd.", // 61705
+ "NTT DATA, Inc - Netherlands", // 61706
+ "Shanghai Fanzhen Information Technology Co., Ltd.", // 61707
+ "hotwirestudios", // 61708
+ "PatchAmp", // 61709
+ "BJS Family", // 61710
+ "Jess Schallenberg", // 61711
+ "Masoud Shokohi", // 61712
+ "NetworkECO", // 61713
+ "The Principia Corporation", // 61714
+ "Omnissa", // 61715
+ "A.E. Perkins", // 61716
+ "iStore (QLD) Pty Ltd", // 61717
+ "C&D Technologies, Inc", // 61718
+ "THINGS HORIZON PVT LTD", // 61719
+ "Petroleum Development Oman", // 61720
+ "Decatur Morgan Hospital", // 61721
+ "Jennifer Ai", // 61722
+ "Hitachi Vantara Ltd.", // 61723
+ "LEMA", // 61724
+ "Carleton Place & District Memorial Hospital", // 61725
+ "Technical Momentum", // 61726
+ "Torrion River", // 61727
+ "杭州众兴慧智能科技有限公司 (Hangzhou Zhongxinghui Intelligent Technology Co., Ltd.)", // 61728
+ "Stadtverwaltung Schleswig", // 61729
+ "Franco Brothers Enterprises llc.", // 61730
+ "Grupo Armas Trasmediterranea", // 61731
+ "TM Technology Services Sdn Bhd", // 61732
+ "Defigo Ltd.", // 61733
+ "Syntony GNSS", // 61734
+ "IT-Schmid GmbH & Co.KG", // 61735
+ "AssetBook IoT", // 61736
+ "Global Message Services AG", // 61737
+ "DWDM.RU LLC", // 61738
+ "Mentech Power", // 61739
+ "Karol Szczepanowski", // 61740
+ "Ortocomputer", // 61741
+ "Cv Ridho", // 61742
+ "WorldwideOSC", // 61743
+ "Chewing Project", // 61744
+ "KanruInfo", // 61745
+ "Bostocks.Club", // 61746
+ "Hanplast Sp. z o.o.", // 61747
+ "Rikom Technologies SDH. BHD", // 61748
+ "Technické sitě Brno, akciová společnost", // 61749
+ "XDTRUST 02-28-2024 CHARLEY MINNGEAO", // 61750
+ "Enhub", // 61751
+ "Shahed, Inc.", // 61752
+ "Lexi Winter", // 61753
+ "FADU", // 61754
+ "Kraftringen Energi AB", // 61755
+ "ANDA TELECOM PVT. LTD", // 61756
+ "Vierkant Software GmbH", // 61757
+ "Wartsila SAM Electronics GmbH", // 61758
+ "Lehigh University", // 61759
+ "Crist Engineers", // 61760
+ "Simau srl", // 61761
+ "RAPIN", // 61762
+ "Växjö Energi AB", // 61763
+ "ISG Nordic AB", // 61764
+ "DLR e.V. RB", // 61765
+ "SigmaTron International, Inc.", // 61766
+ "HTT", // 61767
+ "CommScope Technologies LLC", // 61768
+ "Jeff Allen", // 61769
+ "hacKRNspace", // 61770
+ "Shenzhen Vahours New Energy Corporation", // 61771
+ "Shenzhen Number Energy Saving Corporation", // 61772
+ "SUMMIT IT CONSULT GmbH", // 61773
+ "Gröner Group AG", // 61774
+ "CG Elementum AG", // 61775
+ "ecobuilding AG", // 61776
+ "Metaminds", // 61777
+ "GLN Schakt & Transport", // 61778
+ "Adrian Gonzaga-Ge Aguilar", // 61779
+ "Beijing Maker 6 Technology Co. Ltd.", // 61780
+ "Noosphere Technologies, Inc.", // 61781
+ "Century Autogroep BV", // 61782
+ "RLKM UG", // 61783
+ "CIUSSS du Centre-Sud-de-l'Île-de-Montréal", // 61784
+ "上海源中信息科技有限公司 (Shanghai Yuanzhong Information Technology Co., Ltd.)", // 61785
+ "Medicalholodeck", // 61786
+ "Kostur IT SERVICES", // 61787
+ "IGOSEC.PL", // 61788
+ "Woningstichting Heteren", // 61789
+ "Omnibit", // 61790
+ "New Hope Information systems", // 61791
+ "Call Box", // 61792
+ "Tradewinds Networks Incorporated", // 61793
+ "Masoud", // 61794
+ "Moreforlesstech", // 61795
+ "Ob/Gyn Professionals of East Tennessee", // 61796
+ "Sobel Tech", // 61797
+ "Beijing Urban Construction Intelligent Control Co.,Ltd", // 61798
+ "Optima SC Inc.", // 61799
+ "Vikor Scientific", // 61800
+ "Nova Software SRL", // 61801
+ "Alta Labs", // 61802
+ "Fox Crypto B.V.", // 61803
+ "XobeBook", // 61804
+ "NEXION Corporation", // 61805
+ "VOLARIS Marcin Ziemiański", // 61806
+ "Marcin Ziemiański", // 61807
+ "kISA@kubus IT GbR", // 61808
+ "The Perfume Shop", // 61809
+ "Bitzer Compressores Ltda.", // 61810
+ "Noah Mesel", // 61811
+ "Tutoringbytiff", // 61812
+ "Irista Technologies, Inc", // 61813
+ "Gitservice.dk", // 61814
+ "Blair A Piper", // 61815
+ "Jungheinrich AG", // 61816
+ "New Yard B.V.", // 61817
+ "Surry County Schools", // 61818
+ "Information Security Services S.A.", // 61819
+ "Chorke, Inc.", // 61820
+ "Dynamo Software", // 61821
+ "Per ALBIN HANSSON", // 61822
+ "Middlesurf Inc.", // 61823
+ "Canadian Centre for Cyber Security", // 61824
+ "H ENERGY LTD", // 61825
+ "Cloud Solutions LLC", // 61826
+ "MC Burny", // 61827
+ "MTN Converged Solutions", // 61828
+ "SAJ DIGITAL ENERGY AUSTRALIA PTY LTD", // 61829
+ "Tinh Van Technologies JSC.", // 61830
+ "MFK Burny", // 61831
+ "Alfavit", // 61832
+ "Xiaojun Ben", // 61833
+ "Venturus Centro de Inovacao Tecnologica", // 61834
+ "Otheda Limited", // 61835
+ "AtFocus", // 61836
+ "Associated Medical Specialists, d/b/a Coastal Cancer Center", // 61837
+ "iatele", // 61838
+ "Secretarium", // 61839
+ "Pohjois-Suomen Metsämarkkinat Oy", // 61840
+ "M+C Schiffer GmbH", // 61841
+ "TRANS ELECTRIC CO.,LTD.", // 61842
+ "Impala Terminals", // 61843
+ "meet patel", // 61844
+ "Paul Rodriguez", // 61845
+ "North Platte Public Schools", // 61846
+ "IEIT SYSTEMS Co.,Ltd.", // 61847
+ "Nexfi", // 61848
+ "ZJUSCT", // 61849
+ "mrhaoxx", // 61850
+ "Cummins, Inc.", // 61851
+ "Northside Hospital, Inc. for the benefit of Atlanta Cancer Care", // 61852
+ "nexgentec AG", // 61853
+ "COFACE", // 61854
+ "Nationwide Telephone Assistance Ltd", // 61855
+ "NextGenGames", // 61856
+ "Converge Enterprise Cloud", // 61857
+ "Silines", // 61858
+ "Miami-Dade Police Department, Fl.", // 61859
+ "SipaZon AB", // 61860
+ "Home Lab LLC", // 61861
+ "NAMIRIAL LIMITED", // 61862
+ "The Danish Society of Engineers, IDA", // 61863
+ "GIGALIGHT", // 61864
+ "SKS Welding Systems GmbH", // 61865
+ "IronWiFi, LLC", // 61866
+ "IDnow Trust Services AB", // 61867
+ "西安恒多智能科技有限公司 (Xi'an Hengduo Intelligent Technology Co., Ltd.)", // 61868
+ "Visional Labs", // 61869
+ "Marieborgs Lantbruk AB", // 61870
+ "Davide Crivelli", // 61871
+ "KAYTUS SYSTEMS PTE. LTD.", // 61872
+ "Landratsamt Tübingen", // 61873
+ "WFF IT-Service GmbH", // 61874
+ "Beijing Jinqun Technology Co., Ltd", // 61875
+ "Shanghai ReeLink Global Communication Company LTD", // 61876
+ "htp GmbH", // 61877
+ "New H3C Technologies Co., Ltd", // 61878
+ "Villageofdali", // 61879
+ "Xsight Labs", // 61880
+ "New Zealand Institute for Plant and Food Research", // 61881
+ "Esri Chile", // 61882
+ "BEQ Technology", // 61883
+ "百信信息技术有限公司 (Baixin Information Technology Co., Ltd.)", // 61884
+ "Bright Star Pty Ltd", // 61885
+ "Paweł Worwąg", // 61886
+ "EcoFlow", // 61887
+ "Ballpoint", // 61888
+ "Hazel", // 61889
+ "The Funkin' Crew Inc.", // 61890
+ "MELCOMP S.A.", // 61891
+ "WATSONGALAXY.COM", // 61892
+ "Tom Schollmeyer", // 61893
+ "TERRAWARP CORPORATION", // 61894
+ "Fabian Riechsteiner", // 61895
+ "IOFE SAC", // 61896
+ "VNETS INFORMATION TECHNOLOGY LTD.", // 61897
+ "Spruce Systems Inc", // 61898
+ "Grant Lewis", // 61899
+ "eSIM Go Limited", // 61900
+ "Magnus Wissler", // 61901
+ "cyt.s365.us", // 61902
+ "LLC Accent Capital", // 61903
+ "Switchfly", // 61904
+ "Stichting WoonFriesland", // 61905
+ "DUG Technology Pty Ltd", // 61906
+ "Kliskatek SL", // 61907
+ "KOSTAL Solar Electric GmbH", // 61908
+ "IT Security Services SA de CV", // 61909
+ "Essence quantum technology", // 61910
+ "Inseego Wireless", // 61911
+ "GoCert.Ca", // 61912
+ "AUSNET PTY LTD", // 61913
+ "C-COR Broadband Australia Pty. Ltd.", // 61914
+ "Beeline Telecom", // 61915
+ "Huettenes GmbH Architekten", // 61916
+ "Thomas Jones", // 61917
+ "IT LAB SG" // 61918
}
};
diff --git a/epan/epan.c b/epan/epan.c
index 404e3cc52c..56662515c0 100644
--- a/epan/epan.c
+++ b/epan/epan.c
@@ -27,6 +27,7 @@
#include "epan/frame_data.h"
#include "dfilter/dfilter.h"
+#include "dfilter/dfilter-translator.h"
#include "epan_dissect.h"
#include <wsutil/nstime.h>
@@ -62,6 +63,10 @@
#include "wscbor.h"
#include <dtd.h>
+#ifdef HAVE_PLUGINS
+#include <wsutil/plugins.h>
+#endif
+
#ifdef HAVE_LUA
#include <lua.h>
#include <wslua/wslua.h>
@@ -102,22 +107,24 @@
#include <signal.h>
#endif
-static GSList *epan_plugin_register_all_procotols = NULL;
-static GSList *epan_plugin_register_all_handoffs = NULL;
+static GSList *epan_plugin_register_all_procotols;
+static GSList *epan_plugin_register_all_handoffs;
-static wmem_allocator_t *pinfo_pool_cache = NULL;
+static wmem_allocator_t *pinfo_pool_cache;
/* Global variables holding the content of the corresponding environment variable
* to save fetching it repeatedly.
*/
-gboolean wireshark_abort_on_dissector_bug = FALSE;
-gboolean wireshark_abort_on_too_many_items = FALSE;
+gboolean wireshark_abort_on_dissector_bug;
+gboolean wireshark_abort_on_too_many_items;
+#ifdef HAVE_PLUGINS
/* Used for bookkeeping, includes all libwireshark plugin types (dissector, tap, epan). */
-static plugins_t *libwireshark_plugins = NULL;
+static plugins_t *libwireshark_plugins;
+#endif
/* "epan_plugins" are a specific type of libwireshark plugin (the name isn't the best for clarity). */
-static GSList *epan_plugins = NULL;
+static GSList *epan_plugins;
const gchar*
epan_get_version(void) {
@@ -198,32 +205,21 @@ epan_plugin_cleanup(gpointer data, gpointer user_data _U_)
((epan_plugin *)data)->cleanup();
}
+#ifdef HAVE_PLUGINS
void epan_register_plugin(const epan_plugin *plug)
{
- if (epan_plugins_supported() != 0) {
- ws_debug("epan_register_plugin: plugins not enabled or supported by the platform");
- return;
- }
epan_plugins = g_slist_prepend(epan_plugins, (epan_plugin *)plug);
if (plug->register_all_protocols)
epan_plugin_register_all_procotols = g_slist_prepend(epan_plugin_register_all_procotols, plug->register_all_protocols);
if (plug->register_all_handoffs)
epan_plugin_register_all_handoffs = g_slist_prepend(epan_plugin_register_all_handoffs, plug->register_all_handoffs);
}
-
-void epan_plugins_get_descriptions(plugin_description_callback callback, void *user_data)
+#else /* HAVE_PLUGINS */
+void epan_register_plugin(const epan_plugin *plug _U_)
{
- GSList *l;
-
- for (l = epan_plugins; l != NULL; l = l->next) {
- ((epan_plugin *)l->data)->get_descriptions(callback, user_data);
- }
-}
-
-void epan_plugins_dump_all(void)
-{
- epan_plugins_get_descriptions(plugins_print_description, NULL);
+ ws_warning("epan_register_plugin: built without support for binary plugins");
}
+#endif /* HAVE_PLUGINS */
int epan_plugins_supported(void)
{
@@ -234,6 +230,13 @@ int epan_plugins_supported(void)
#endif
}
+static void epan_plugin_register_all_tap_listeners(gpointer data, gpointer user_data _U_)
+{
+ epan_plugin *plug = (epan_plugin *)data;
+ if (plug->register_all_tap_listeners)
+ plug->register_all_tap_listeners();
+}
+
gboolean
epan_init(register_cb cb, gpointer client_data, gboolean load_plugins)
{
@@ -273,8 +276,12 @@ epan_init(register_cb cb, gpointer client_data, gboolean load_plugins)
except_init();
+ dfilter_translator_init();
+
if (load_plugins) {
+#ifdef HAVE_PLUGINS
libwireshark_plugins = plugins_init(WS_PLUGIN_EPAN);
+#endif
}
/* initialize libgcrypt (beware, it won't be thread-safe) */
@@ -324,6 +331,7 @@ epan_init(register_cb cb, gpointer client_data, gboolean load_plugins)
conversation_filters_init();
g_slist_foreach(epan_plugins, epan_plugin_init, NULL);
proto_init(epan_plugin_register_all_procotols, epan_plugin_register_all_handoffs, cb, client_data);
+ g_slist_foreach(epan_plugins, epan_plugin_register_all_tap_listeners, NULL);
packet_cache_proto_handles();
dfilter_init();
wscbor_init();
@@ -439,6 +447,8 @@ epan_cleanup(void)
except_deinit();
addr_resolv_cleanup();
+ dfilter_translator_cleanup();
+
if (pinfo_pool_cache != NULL) {
wmem_destroy_allocator(pinfo_pool_cache);
pinfo_pool_cache = NULL;
@@ -446,8 +456,10 @@ epan_cleanup(void)
wmem_cleanup_scopes();
+#ifdef HAVE_PLUGINS
plugins_cleanup(libwireshark_plugins);
libwireshark_plugins = NULL;
+#endif
}
struct epan_session {
@@ -534,7 +546,7 @@ epan_conversation_init(void)
* This is > 0 if a Lua script wanted to see all fields all the time.
* This is ref-counted, so clearing it won't override other taps/scripts wanting it.
*/
-static gint always_visible_refcount = 0;
+static gint always_visible_refcount;
void
epan_set_always_visible(gboolean force)
diff --git a/epan/epan.h b/epan/epan.h
index d7284769d3..b7ba025510 100644
--- a/epan/epan.h
+++ b/epan/epan.h
@@ -18,7 +18,6 @@
#include <epan/frame_data.h>
#include <epan/register.h>
#include <wiretap/wtap_opttypes.h>
-#include <wsutil/plugins.h>
#ifdef __cplusplus
extern "C" {
@@ -124,15 +123,11 @@ typedef struct {
void (*cleanup)(void);
void (*register_all_protocols)(register_cb, gpointer);
void (*register_all_handoffs)(register_cb, gpointer);
- void (*get_descriptions)(plugin_description_callback callback, void *user_data);
+ void (*register_all_tap_listeners)(void);
} epan_plugin;
WS_DLL_PUBLIC void epan_register_plugin(const epan_plugin *plugin);
-WS_DLL_PUBLIC void epan_plugins_get_descriptions(plugin_description_callback callback, void *user_data);
-
-WS_DLL_PUBLIC void epan_plugins_dump_all(void);
-
/** Returns_
* 0 if plugins can be loaded for all of libwireshark (tap, dissector, epan).
* 1 if plugins are not supported by the platform.
diff --git a/epan/ex-opt.c b/epan/ex-opt.c
index a6a99ea3c4..012a157a78 100644
--- a/epan/ex-opt.c
+++ b/epan/ex-opt.c
@@ -17,7 +17,7 @@
#include <glib.h>
#include "ex-opt.h"
-static GHashTable* ex_opts = NULL;
+static GHashTable* ex_opts;
gboolean ex_opt_add(const gchar* ws_optarg) {
gchar** splitted;
diff --git a/epan/exntest.c b/epan/exntest.c
index 47ac36c7a6..06568c9bd8 100644
--- a/epan/exntest.c
+++ b/epan/exntest.c
@@ -12,7 +12,7 @@
#include <glib.h>
#include "exceptions.h"
-gboolean failed = FALSE;
+gboolean failed;
static void
finally_called_uncaught_exception(volatile unsigned int* called)
diff --git a/epan/expert.c b/epan/expert.c
index d2e78975d8..b3d16bf656 100644
--- a/epan/expert.c
+++ b/epan/expert.c
@@ -35,7 +35,7 @@ int proto_expert;
static int proto_malformed;
static int expert_tap;
-static int highest_severity = 0;
+static int highest_severity;
static int ett_expert;
static int ett_subexpert;
@@ -59,10 +59,10 @@ typedef struct _gpa_expertinfo_t {
static gpa_expertinfo_t gpa_expertinfo;
/* Hash table of abbreviations and IDs */
-static GHashTable *gpa_name_map = NULL;
+static GHashTable *gpa_name_map;
/* Deregistered expert infos */
-static GPtrArray *deregistered_expertinfos = NULL;
+static GPtrArray *deregistered_expertinfos;
const value_string expert_group_vals[] = {
{ PI_CHECKSUM, "Checksum" },
@@ -81,6 +81,7 @@ const value_string expert_group_vals[] = {
{ PI_DEPRECATED, "Deprecated" },
{ PI_RECEIVE, "Receive" },
{ PI_INTERFACE, "Interface" },
+ { PI_DISSECTOR_BUG, "Dissector bug" },
{ 0, NULL }
};
@@ -113,10 +114,10 @@ typedef struct
guint32 severity;
} expert_level_entry_t;
-static expert_level_entry_t *uat_expert_entries = NULL;
-static guint expert_level_entry_count = 0;
+static expert_level_entry_t *uat_expert_entries;
+static guint expert_level_entry_count;
/* Array of field names currently in UAT */
-static GArray *uat_saved_fields = NULL;
+static GArray *uat_saved_fields;
UAT_CSTRING_CB_DEF(uat_expert_entries, field, expert_level_entry_t)
UAT_VS_DEF(uat_expert_entries, severity, expert_level_entry_t, guint32, PI_ERROR, "Error")
@@ -382,6 +383,7 @@ expert_register_field_init(expert_field_info *expinfo, expert_module_t *module)
case PI_DEPRECATED:
case PI_RECEIVE:
case PI_INTERFACE:
+ case PI_DISSECTOR_BUG:
break;
default:
REPORT_DISSECTOR_BUG("Expert info for %s has invalid group=0x%08x\n", expinfo->name, expinfo->group);
@@ -500,6 +502,7 @@ const gchar* expert_get_summary(expert_field *eiindex)
/* set's the PI_ flags to a protocol item
* (and its parent items till the toplevel) */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
expert_set_item_flags(proto_item *pi, const int group, const guint severity)
{
if (pi != NULL && PITEM_FINFO(pi) != NULL && (severity >= FI_GET_FLAG(PITEM_FINFO(pi), PI_SEVERITY_MASK))) {
@@ -508,6 +511,7 @@ expert_set_item_flags(proto_item *pi, const int group, const guint severity)
/* propagate till toplevel item */
pi = proto_item_get_parent(pi);
+ // We recurse here, but we're limited by our tree depth checks in proto.c
expert_set_item_flags(pi, group, severity);
}
}
diff --git a/epan/export_object.c b/epan/export_object.c
index 9a6e0ee959..f9d899729f 100644
--- a/epan/export_object.c
+++ b/epan/export_object.c
@@ -23,7 +23,7 @@ struct register_eo {
export_object_gui_reset_cb reset_cb; /* function to parse parameters of optional arguments of tap string */
};
-static wmem_tree_t *registered_eo_tables = NULL;
+static wmem_tree_t *registered_eo_tables;
int
register_export_object(const int proto_id, tap_packet_cb export_packet_func, export_object_gui_reset_cb reset_cb)
diff --git a/epan/exported_pdu.c b/epan/exported_pdu.c
index 9efcb2dfe1..8a094b6537 100644
--- a/epan/exported_pdu.c
+++ b/epan/exported_pdu.c
@@ -21,8 +21,8 @@
#include <wsutil/pint.h>
-static GSList *export_pdu_tap_name_list = NULL;
-static wmem_map_t *export_pdu_encap_table = NULL;
+static GSList *export_pdu_tap_name_list;
+static wmem_map_t *export_pdu_encap_table;
static int exp_pdu_data_ip_size(const address* addr)
{
diff --git a/epan/filter_expressions.c b/epan/filter_expressions.c
index c03a2bb250..2072605454 100644
--- a/epan/filter_expressions.c
+++ b/epan/filter_expressions.c
@@ -19,9 +19,9 @@
#include "epan/filter_expressions.h"
/* UAT variables */
-static uat_t *display_filter_macro_uat = NULL;
-static filter_expression_t *display_filter_macros = NULL;
-static guint num_display_filter_macros = 0;
+static uat_t *display_filter_macro_uat;
+static filter_expression_t *display_filter_macros;
+static guint num_display_filter_macros;
/* Field callbacks. */
UAT_BOOL_CB_DEF(display_filter_macro_uat, enabled, filter_expression_t)
diff --git a/epan/follow.c b/epan/follow.c
index 709a734588..ce2e292345 100644
--- a/epan/follow.c
+++ b/epan/follow.c
@@ -32,7 +32,7 @@ struct register_follow {
follow_sub_stream_id_func sub_stream_id; /* sub-stream id, used for UI */
};
-static wmem_tree_t *registered_followers = NULL;
+static wmem_tree_t *registered_followers;
void register_follow_stream(const int proto_id, const char* tap_listener,
follow_conv_filter_func conv_filter, follow_index_filter_func index_filter, follow_address_filter_func address_filter,
diff --git a/epan/follow.h b/epan/follow.h
index 636b4e1766..8d52d28369 100644
--- a/epan/follow.h
+++ b/epan/follow.h
@@ -24,13 +24,6 @@
extern "C" {
#endif /* __cplusplus */
-typedef enum {
- FRS_OK,
- FRS_OPEN_ERROR,
- FRS_READ_ERROR,
- FRS_PRINT_ERROR
-} frs_return_t;
-
/* Show Stream */
typedef enum {
FROM_CLIENT,
@@ -45,8 +38,6 @@ typedef union _stream_addr {
struct _follow_info;
-typedef gboolean (*follow_print_line_func)(char *, size_t, gboolean, void *);
-
#define SUBSTREAM_UNUSED G_GUINT64_CONSTANT(0xFFFFFFFFFFFFFFFF)
typedef struct {
@@ -80,7 +71,7 @@ typedef gchar* (*follow_index_filter_func)(guint stream, guint sub_stream);
typedef gchar* (*follow_address_filter_func)(address* src_addr, address* dst_addr, int src_port, int dst_port);
typedef gchar* (*follow_port_to_display_func)(wmem_allocator_t *allocator, guint port);
typedef guint32 (*follow_stream_count_func)(void);
-typedef gboolean (*follow_sub_stream_id_func)(guint stream, guint sub_stream, gboolean le, guint *sub_stream_out);
+typedef bool (*follow_sub_stream_id_func)(guint stream, guint sub_stream, gboolean le, guint *sub_stream_out);
WS_DLL_PUBLIC
void register_follow_stream(const int proto_id, const char* tap_listener,
diff --git a/epan/frame_data_sequence.c b/epan/frame_data_sequence.c
index 9ca039a49f..2768e14d22 100644
--- a/epan/frame_data_sequence.c
+++ b/epan/frame_data_sequence.c
@@ -226,6 +226,7 @@ frame_data_sequence_find(frame_data_sequence *fds, guint32 num)
/* recursively frees a frame_data radix level */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
free_frame_data_array(void *array, guint count, guint level, gboolean last)
{
guint i, level_count;
@@ -255,9 +256,11 @@ free_frame_data_array(void *array, guint count, guint level, gboolean last)
frame_data **real_array = (frame_data **) array;
for (i=0; i < level_count-1; i++) {
+ // We recurse here, but we're limited to four levels.
free_frame_data_array(real_array[i], count, level-1, FALSE);
}
+ // We recurse here, but we're limited to four levels.
free_frame_data_array(real_array[level_count-1], count, level-1, last);
}
else if (level == 1) {
diff --git a/epan/funnel.c b/epan/funnel.c
index 276559d799..79d3bea298 100644
--- a/epan/funnel.c
+++ b/epan/funnel.c
@@ -21,9 +21,9 @@ typedef struct _funnel_menu_t {
char *name;
register_stat_group_t group;
funnel_menu_callback callback;
- gpointer callback_data;
+ void *callback_data;
funnel_menu_callback_data_free callback_data_free;
- gboolean retap;
+ bool retap;
struct _funnel_menu_t* next;
} funnel_menu_t;
@@ -37,11 +37,11 @@ typedef struct _console_menu {
} funnel_console_menu_t;
/* XXX This assumes one main window and one capture file. */
-static const funnel_ops_t* ops = NULL;
-static funnel_menu_t* registered_menus = NULL;
-static funnel_menu_t* added_menus = NULL;
-static funnel_menu_t* removed_menus = NULL;
-static gboolean menus_registered = FALSE;
+static const funnel_ops_t* ops;
+static funnel_menu_t* registered_menus;
+static funnel_menu_t* added_menus;
+static funnel_menu_t* removed_menus;
+static bool menus_registered;
/**
* Represents a single packet menu entry and callback
@@ -53,9 +53,9 @@ typedef struct _funnel_packet_menu_t {
packet menu to be displayed */
funnel_packet_menu_callback callback; /**< Lua function to be called on
menu item selection. */
- gpointer callback_data; /**< Lua state for the callback
+ void *callback_data; /**< Lua state for the callback
function */
- gboolean retap; /**< Whether or not to rescan the
+ bool retap; /**< Whether or not to rescan the
capture file's packets */
struct _funnel_packet_menu_t* next; /**< Pointer to the next
_funnel_packet_menu_t for the
@@ -66,14 +66,14 @@ typedef struct _funnel_packet_menu_t {
/*
* List of all registered funnel_packet_menu_t's
*/
-static funnel_packet_menu_t* registered_packet_menus = NULL;
+static funnel_packet_menu_t* registered_packet_menus;
-static GSList *registered_console_menus = NULL;
+static GSList *registered_console_menus;
/*
- * TRUE if the packet menus were modified since the last registration
+ * true if the packet menus were modified since the last registration
*/
-static gboolean packet_menus_modified = FALSE;
+static bool packet_menus_modified;
static void funnel_clear_packet_menu (funnel_packet_menu_t** menu_list);
const funnel_ops_t* funnel_get_funnel_ops(void) { return ops; }
@@ -136,9 +136,9 @@ static void funnel_clear_menu (funnel_menu_t** menu_list)
void funnel_register_menu(const char *name,
register_stat_group_t group,
funnel_menu_callback callback,
- gpointer callback_data,
+ void *callback_data,
funnel_menu_callback_data_free callback_data_free,
- gboolean retap)
+ bool retap)
{
funnel_menu_t* m = g_new(funnel_menu_t, 1);
m->name = g_strdup(name);
@@ -167,7 +167,7 @@ void funnel_deregister_menus(funnel_menu_callback callback)
// Clear and free memory of packet menus
funnel_clear_packet_menu(&registered_packet_menus);
- packet_menus_modified = TRUE;
+ packet_menus_modified = true;
}
void funnel_register_all_menus(funnel_registration_cb_t r_cb)
@@ -176,7 +176,7 @@ void funnel_register_all_menus(funnel_registration_cb_t r_cb)
for (c = registered_menus; c; c = c->next) {
r_cb(c->name,c->group,c->callback,c->callback_data,c->retap);
}
- menus_registered = TRUE;
+ menus_registered = true;
}
void funnel_reload_menus(funnel_deregistration_cb_t d_cb,
@@ -223,8 +223,8 @@ static void funnel_insert_packet_menu (funnel_packet_menu_t** menu_list, funnel_
void funnel_register_packet_menu(const char *name,
const char *required_fields,
funnel_packet_menu_callback callback,
- gpointer callback_data,
- gboolean retap)
+ void *callback_data,
+ bool retap)
{
funnel_packet_menu_t* m = g_new0(funnel_packet_menu_t, 1);
m->name = g_strdup(name);
@@ -235,7 +235,7 @@ void funnel_register_packet_menu(const char *name,
m->next = NULL;
funnel_insert_packet_menu(&registered_packet_menus, m);
- packet_menus_modified = TRUE;
+ packet_menus_modified = true;
}
/**
@@ -274,15 +274,15 @@ void funnel_register_all_packet_menus(funnel_registration_packet_cb_t r_cb)
for (c = registered_packet_menus; c; c = c->next) {
r_cb(c->name,c->required_fields,c->callback,c->callback_data,c->retap);
}
- packet_menus_modified = FALSE;
+ packet_menus_modified = false;
}
/**
* Returns whether the packet menus have been modified since they were last registered
*
- * @return TRUE if the packet menus were modified since the last registration
+ * @return true if the packet menus were modified since the last registration
*/
-gboolean funnel_packet_menus_modified(void)
+bool funnel_packet_menus_modified(void)
{
return packet_menus_modified;
}
@@ -301,7 +301,7 @@ void funnel_register_console_menu(const char *name,
funnel_console_eval_cb_t eval_cb,
funnel_console_open_cb_t open_cb,
funnel_console_close_cb_t close_cb,
- gpointer callback_data,
+ void *callback_data,
funnel_console_data_free_cb_t free_data)
{
funnel_console_menu_t* m = g_new0(funnel_console_menu_t, 1);
diff --git a/epan/funnel.h b/epan/funnel.h
index 7b3e8d9570..4dd24bc94b 100644
--- a/epan/funnel.h
+++ b/epan/funnel.h
@@ -25,13 +25,13 @@ typedef struct _funnel_text_window_t funnel_text_window_t ;
typedef void (*text_win_close_cb_t)(void*);
-typedef void (*funnel_dlg_cb_t)(gchar** user_input, void* data);
+typedef void (*funnel_dlg_cb_t)(char** user_input, void* data);
typedef void (*funnel_dlg_cb_data_free_t)(void* data);
-typedef gboolean (*funnel_bt_cb_t)(funnel_text_window_t* tw, void* data);
+typedef bool (*funnel_bt_cb_t)(funnel_text_window_t* tw, void* data);
-typedef void (* funnel_menu_callback)(gpointer);
-typedef void (* funnel_menu_callback_data_free)(gpointer);
+typedef void (* funnel_menu_callback)(void *);
+typedef void (* funnel_menu_callback_data_free)(void *);
typedef struct _funnel_bt_t {
funnel_text_window_t* tw;
@@ -52,14 +52,14 @@ typedef struct _funnel_ops_t {
void (*clear_text)(funnel_text_window_t* win);
const char* (*get_text)(funnel_text_window_t* win);
void (*set_close_cb)(funnel_text_window_t* win, text_win_close_cb_t cb, void* data);
- void (*set_editable)(funnel_text_window_t* win, gboolean editable);
+ void (*set_editable)(funnel_text_window_t* win, bool editable);
void (*destroy_text_window)(funnel_text_window_t* win);
void (*add_button)(funnel_text_window_t* win, funnel_bt_t* cb, const char* label);
void (*new_dialog)(funnel_ops_id_t *ops_id,
- const gchar* title,
- const gchar** field_names,
- const gchar** field_values,
+ const char* title,
+ const char** field_names,
+ const char** field_values,
funnel_dlg_cb_t dlg_cb,
void* data,
funnel_dlg_cb_data_free_t dlg_cb_data_free);
@@ -69,21 +69,21 @@ typedef struct _funnel_ops_t {
void (*retap_packets)(funnel_ops_id_t *ops_id);
void (*copy_to_clipboard)(GString *str);
- const gchar * (*get_filter)(funnel_ops_id_t *ops_id);
+ const char * (*get_filter)(funnel_ops_id_t *ops_id);
void (*set_filter)(funnel_ops_id_t *ops_id, const char* filter);
- gchar * (*get_color_filter_slot)(guint8 filt_nr);
- void (*set_color_filter_slot)(guint8 filt_nr, const gchar* filter);
- gboolean (*open_file)(funnel_ops_id_t *ops_id, const char* fname, const char* filter, char** error);
+ char * (*get_color_filter_slot)(uint8_t filt_nr);
+ void (*set_color_filter_slot)(uint8_t filt_nr, const char* filter);
+ bool (*open_file)(funnel_ops_id_t *ops_id, const char* fname, const char* filter, char** error);
void (*reload_packets)(funnel_ops_id_t *ops_id);
void (*redissect_packets)(funnel_ops_id_t *ops_id);
void (*reload_lua_plugins)(funnel_ops_id_t *ops_id);
void (*apply_filter)(funnel_ops_id_t *ops_id);
- gboolean (*browser_open_url)(const gchar *url);
- void (*browser_open_data_file)(const gchar *filename);
+ bool (*browser_open_url)(const char *url);
+ void (*browser_open_data_file)(const char *filename);
- struct progdlg* (*new_progress_window)(funnel_ops_id_t *ops_id, const gchar* label, const gchar* task, gboolean terminate_is_stop, gboolean *stop_flag);
- void (*update_progress)(struct progdlg*, float pr, const gchar* task);
+ struct progdlg* (*new_progress_window)(funnel_ops_id_t *ops_id, const char* label, const char* task, bool terminate_is_stop, bool *stop_flag);
+ void (*update_progress)(struct progdlg*, float pr, const char* task);
void (*destroy_progress_window)(struct progdlg*);
} funnel_ops_t;
@@ -93,16 +93,16 @@ WS_DLL_PUBLIC void funnel_set_funnel_ops(const funnel_ops_t*);
WS_DLL_PUBLIC void funnel_register_menu(const char *name,
register_stat_group_t group,
funnel_menu_callback callback,
- gpointer callback_data,
+ void *callback_data,
funnel_menu_callback_data_free callback_data_free,
- gboolean retap);
-void funnel_deregister_menus(void (*callback)(gpointer));
+ bool retap);
+void funnel_deregister_menus(void (*callback)(void *));
typedef void (*funnel_registration_cb_t)(const char *name,
register_stat_group_t group,
funnel_menu_callback callback,
- gpointer callback_data,
- gboolean retap);
+ void *callback_data,
+ bool retap);
typedef void (*funnel_deregistration_cb_t)(funnel_menu_callback callback);
WS_DLL_PUBLIC void funnel_register_all_menus(funnel_registration_cb_t r_cb);
@@ -113,7 +113,7 @@ WS_DLL_PUBLIC void funnel_cleanup(void);
/**
* Signature of function that can be called from a custom packet menu entry
*/
-typedef void (* funnel_packet_menu_callback)(gpointer, GPtrArray*);
+typedef void (* funnel_packet_menu_callback)(void *, GPtrArray*);
/**
* Signature of callback function to register packet menu entries
@@ -121,8 +121,8 @@ typedef void (* funnel_packet_menu_callback)(gpointer, GPtrArray*);
typedef void (*funnel_registration_packet_cb_t)(const char *name,
const char *required_fields,
funnel_packet_menu_callback callback,
- gpointer callback_data,
- gboolean retap);
+ void *callback_data,
+ bool retap);
/**
* Entry point for Wireshark GUI to obtain all registered packet menus
@@ -143,15 +143,15 @@ WS_DLL_PUBLIC void funnel_register_all_packet_menus(funnel_registration_packet_c
WS_DLL_PUBLIC void funnel_register_packet_menu(const char *name,
const char *required_fields,
funnel_packet_menu_callback callback,
- gpointer callback_data,
- gboolean retap);
+ void *callback_data,
+ bool retap);
/**
* Returns whether the packet menus have been modified since they were last registered
*
- * @return TRUE if the packet menus were modified since the last registration
+ * @return true if the packet menus were modified since the last registration
*/
-WS_DLL_PUBLIC gboolean funnel_packet_menus_modified(void);
+WS_DLL_PUBLIC bool funnel_packet_menus_modified(void);
/*
* The functions below allow registering a funnel "console". A console is just a GUI
diff --git a/epan/guid-utils.c b/epan/guid-utils.c
index fd0807dddd..92d8fd3b47 100644
--- a/epan/guid-utils.c
+++ b/epan/guid-utils.c
@@ -25,7 +25,7 @@
#include <strsafe.h>
#endif
-static wmem_tree_t *guid_to_name_tree = NULL;
+static wmem_tree_t *guid_to_name_tree;
#ifdef _WIN32
diff --git a/epan/introspection-enums.c b/epan/introspection-enums.c
index f75a697a7a..11e997c375 100644
--- a/epan/introspection-enums.c
+++ b/epan/introspection-enums.c
@@ -141,6 +141,7 @@ static ws_enum_t const all_enums[] = {
ENUM(ENC_T61),
ENUM(ENC_TIME_CLASSIC_MAC_OS_SECS),
ENUM(ENC_TIME_MIP6),
+ ENUM(ENC_TIME_MP4_FILE_SECS),
ENUM(ENC_TIME_MSECS),
ENUM(ENC_TIME_MSEC_NTP),
ENUM(ENC_TIME_NSECS),
@@ -156,6 +157,7 @@ static ws_enum_t const all_enums[] = {
ENUM(ENC_TIME_TIMEVAL),
ENUM(ENC_TIME_TOD),
ENUM(ENC_TIME_USECS),
+ ENUM(ENC_TIME_ZBEE_ZCL),
ENUM(ENC_UCS_2),
ENUM(ENC_UCS_4),
ENUM(ENC_UTF_16),
@@ -407,6 +409,7 @@ static ws_enum_t const all_enums[] = {
ENUM(PI_DEBUG),
ENUM(PI_DECRYPTION),
ENUM(PI_DEPRECATED),
+ ENUM(PI_DISSECTOR_BUG),
ENUM(PI_ERROR),
ENUM(PI_GROUP_MASK),
ENUM(PI_INTERFACE),
diff --git a/epan/manuf-data.c b/epan/manuf-data.c
index a0c8e9ef30..e234249ed9 100644
--- a/epan/manuf-data.c
+++ b/epan/manuf-data.c
@@ -39,6 +39,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x10, 0x06, 0x48 }, MA_M },
{ { 0x10, 0x07, 0x23 }, MA_M },
{ { 0x10, 0x54, 0xD2 }, MA_M },
+ { { 0x10, 0x63, 0xA3 }, MA_M },
{ { 0x10, 0xDC, 0xB6 }, MA_M },
{ { 0x14, 0x1F, 0xBA }, MA_M },
{ { 0x14, 0x4F, 0xD7 }, MA_M },
@@ -93,6 +94,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x34, 0x00, 0x8A }, MA_M },
{ { 0x34, 0x04, 0x9E }, MA_M },
{ { 0x34, 0x29, 0x8F }, MA_M },
+ { { 0x34, 0x46, 0x63 }, MA_M },
{ { 0x34, 0xC8, 0xD6 }, MA_M },
{ { 0x34, 0xD0, 0xB8 }, MA_M },
{ { 0x34, 0xE1, 0xD1 }, MA_M },
@@ -150,8 +152,10 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0x58, 0xC4, 0x1E }, MA_M },
{ { 0x58, 0xE8, 0x76 }, MA_M },
{ { 0x58, 0xFC, 0xDB }, MA_M },
+ { { 0x5C, 0x5A, 0x4C }, MA_M },
{ { 0x5C, 0x6A, 0xEC }, MA_M },
{ { 0x5C, 0x85, 0x7E }, MA_M },
+ { { 0x5C, 0x87, 0xD8 }, MA_M },
{ { 0x5C, 0xF2, 0x86 }, MA_M },
{ { 0x5C, 0xF8, 0x38 }, MA_M },
{ { 0x60, 0x15, 0x92 }, MA_M },
@@ -305,6 +309,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0xC8, 0x8E, 0xD1 }, MA_M },
{ { 0xC8, 0x98, 0xDB }, MA_M },
{ { 0xC8, 0xF5, 0xD6 }, MA_M },
+ { { 0xC8, 0xFF, 0xBF }, MA_M },
{ { 0xCC, 0x1B, 0xE0 }, MA_M },
{ { 0xCC, 0x22, 0x37 }, MA_M },
{ { 0xCC, 0x4F, 0x5C }, MA_M },
@@ -345,6 +350,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0xE8, 0x78, 0x29 }, MA_M },
{ { 0xE8, 0xB4, 0x70 }, MA_M },
{ { 0xE8, 0xFF, 0x1E }, MA_M },
+ { { 0xEC, 0x5B, 0xCD }, MA_M },
{ { 0xEC, 0x9A, 0x0C }, MA_M },
{ { 0xEC, 0x9F, 0x0D }, MA_M },
{ { 0xF0, 0x22, 0x1D }, MA_M },
@@ -361,6 +367,7 @@ static const manuf_registry_t ieee_registry_table[] = {
{ { 0xF4, 0xA4, 0x54 }, MA_M },
{ { 0xF8, 0x02, 0x78 }, MA_M },
{ { 0xF8, 0x1D, 0x78 }, MA_M },
+ { { 0xF8, 0x7A, 0x39 }, MA_M },
{ { 0xF8, 0x8A, 0x3C }, MA_M },
{ { 0xF8, 0xB5, 0x68 }, MA_M },
{ { 0xFC, 0x61, 0x79 }, MA_M },
@@ -1029,7 +1036,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x02, 0x92 }, "LogicInnovat", "Logic Innovations, Inc." },
{ { 0x00, 0x02, 0x93 }, "SolidData", "Solid Data Systems" },
{ { 0x00, 0x02, 0x94 }, "TokyoSokushi", "Tokyo Sokushin Co., Ltd." },
- { { 0x00, 0x02, 0x95 }, "IPAccess", "IP.Access Limited" },
+ { { 0x00, 0x02, 0x95 }, "MavenirIpaUk", "Mavenir Ipa Uk Ltd" },
{ { 0x00, 0x02, 0x96 }, "Lectron", "Lectron Co,. Ltd." },
{ { 0x00, 0x02, 0x97 }, "CCORnet", "C-COR.net" },
{ { 0x00, 0x02, 0x98 }, "Broadframe", "Broadframe Corporation" },
@@ -1415,7 +1422,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x04, 0x14 }, "UmezawaMusen", "Umezawa Musen Denki Co., Ltd." },
{ { 0x00, 0x04, 0x15 }, "Rasteme", "Rasteme Systems Co., Ltd." },
{ { 0x00, 0x04, 0x16 }, "ParksComunic", "Parks S/A Comunicacoes Digitais" },
- { { 0x00, 0x04, 0x17 }, "Elau", "Elau Ag" },
+ { { 0x00, 0x04, 0x17 }, "SchneiderEle", "Schneider Electric Automation GmbH" },
{ { 0x00, 0x04, 0x18 }, "TeltronicU", "Teltronic S.A.U." },
{ { 0x00, 0x04, 0x19 }, "FibercycleNe", "Fibercycle Networks, Inc." },
{ { 0x00, 0x04, 0x1A }, "InesTestandM", "Ines Test and Measurement GmbH & CoKG" },
@@ -2891,7 +2898,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x09, 0xF4 }, "AlconLaborat", "Alcon Laboratories, Inc." },
{ { 0x00, 0x09, 0xF5 }, "EmersonNetwo", "Emerson Network Power Co.,Ltd" },
{ { 0x00, 0x09, 0xF6 }, "EasternDigit", "Shenzhen Eastern Digital Tech Ltd." },
- { { 0x00, 0x09, 0xF7 }, "SEDdivisionC", "SED, a division of Calian" },
+ { { 0x00, 0x09, 0xF7 }, "CalianAdvanc", "Calian Advanced Technologies" },
{ { 0x00, 0x09, 0xF8 }, "UnimoTechnol", "Unimo Technology Co., Ltd." },
{ { 0x00, 0x09, 0xF9 }, "ArtJapan", "Art Japan Co., Ltd." },
{ { 0x00, 0x09, 0xFB }, "PhilipsPatie", "Philips Patient Monitoring" },
@@ -3288,7 +3295,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x0B, 0x83 }, "Datawatt", "Datawatt B.V." },
{ { 0x00, 0x0B, 0x84 }, "Bodet", "Bodet" },
{ { 0x00, 0x0B, 0x85 }, "Cisco", "Cisco Systems, Inc" },
- { { 0x00, 0x0B, 0x86 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x00, 0x0B, 0x86 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x0B, 0x87 }, "AmericanReli", "American Reliance Inc." },
{ { 0x00, 0x0B, 0x88 }, "Vidisco", "Vidisco ltd." },
{ { 0x00, 0x0B, 0x89 }, "TopGlobalTec", "Top Global Technology, Ltd." },
@@ -5504,7 +5511,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x14, 0x35 }, "CityCom", "CityCom Corp." },
{ { 0x00, 0x14, 0x36 }, "QwertyElektr", "Qwerty Elektronik AB" },
{ { 0x00, 0x14, 0x37 }, "GSTeletech", "GSTeletech Co.,Ltd." },
- { { 0x00, 0x14, 0x38 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x00, 0x14, 0x38 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x14, 0x39 }, "BlonderTongu", "Blonder Tongue Laboratories, Inc" },
{ { 0x00, 0x14, 0x3A }, "RaytalkInter", "Raytalk International Srl" },
{ { 0x00, 0x14, 0x3B }, "Sensovation", "Sensovation AG" },
@@ -7011,7 +7018,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x1A, 0x1B }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x00, 0x1A, 0x1C }, "GT&TEngineer", "GT&T Engineering Pte Ltd" },
{ { 0x00, 0x1A, 0x1D }, "PChomeOnline", "PChome Online Inc." },
- { { 0x00, 0x1A, 0x1E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x00, 0x1A, 0x1E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x1A, 0x1F }, "CoastalEnvir", "Coastal Environmental Systems" },
{ { 0x00, 0x1A, 0x20 }, "CMOTECH", "CMOTECH Co. Ltd." },
{ { 0x00, 0x1A, 0x21 }, "BrookhuisApp", "Brookhuis Applied Technologies BV" },
@@ -8202,7 +8209,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x1E, 0xC3 }, "Kozio", "Kozio, Inc." },
{ { 0x00, 0x1E, 0xC4 }, "Celio", "Celio Corp" },
{ { 0x00, 0x1E, 0xC5 }, "MiddleAtlant", "Middle Atlantic Products Inc" },
- { { 0x00, 0x1E, 0xC6 }, "ObviusHoldin", "Obvius Holdings LLC" },
+ { { 0x00, 0x1E, 0xC6 }, "LevitonManuf", "Leviton Manufacturing Co., Inc" },
{ { 0x00, 0x1E, 0xC7 }, "2Wire", "2Wire Inc" },
{ { 0x00, 0x1E, 0xC8 }, "RapidMobile", "Rapid Mobile (Pty) Ltd" },
{ { 0x00, 0x1E, 0xC9 }, "Dell", "Dell Inc." },
@@ -9638,7 +9645,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x24, 0x69 }, "FasttelSmart", "Fasttel - Smart Doorphones" },
{ { 0x00, 0x24, 0x6A }, "SolidYear", "Solid Year Co., Ltd." },
{ { 0x00, 0x24, 0x6B }, "Covia", "Covia, Inc." },
- { { 0x00, 0x24, 0x6C }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x00, 0x24, 0x6C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x24, 0x6D }, "WeinzierlEng", "Weinzierl Engineering GmbH" },
{ { 0x00, 0x24, 0x6E }, "PhihongUSA", "Phihong USA Corp." },
{ { 0x00, 0x24, 0x6F }, "OndaCommunic", "Onda Communication spa" },
@@ -10915,7 +10922,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x4C, 0xE5 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x00, 0x4D, 0x32 }, "AndonHealth", "Andon Health Co.,Ltd." },
{ { 0x00, 0x4E, 0x01 }, "Dell", "Dell Inc." },
- { { 0x00, 0x4E, 0x35 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x00, 0x4E, 0x35 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0x4F, 0x1A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x00, 0x50, 0x00 }, "NexoCommunic", "Nexo Communications, Inc." },
{ { 0x00, 0x50, 0x01 }, "Yamashita", "Yamashita Systems Corp." },
@@ -11757,6 +11764,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0x81, 0x2A }, "Apple", "Apple, Inc." },
{ { 0x00, 0x81, 0xC4 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0x81, 0xF9 }, "TexasInstrum", "Texas Instruments" },
+ { { 0x00, 0x83, 0x20 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x00, 0x84, 0x1E }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x00, 0x84, 0xED }, "LexmarkInter", "Lexmark International, Inc." },
{ { 0x00, 0x86, 0x9C }, "PaloAltoNetw", "Palo Alto Networks" },
@@ -12320,6 +12328,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0xA3, 0x88 }, "SkyUk", "Sky Uk Limited" },
{ { 0x00, 0xA3, 0x8E }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0xA3, 0xD1 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x00, 0xA4, 0x1C }, "TonlyTechnol", "Tonly Technology Co. Ltd" },
{ { 0x00, 0xA4, 0x5F }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x00, 0xA5, 0x09 }, "WigWag", "WigWag Inc." },
{ { 0x00, 0xA5, 0x54 }, "Intel", "Intel Corporate" },
@@ -13315,7 +13324,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x00, 0xFC, 0x8D }, "HitronTechno", "Hitron Technologies. Inc" },
{ { 0x00, 0xFC, 0xBA }, "Cisco", "Cisco Systems, Inc" },
{ { 0x00, 0xFD, 0x22 }, "Cisco", "Cisco Systems, Inc" },
- { { 0x00, 0xFD, 0x45 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x00, 0xFD, 0x45 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x00, 0xFD, 0x4C }, "Nevatec", "Nevatec" },
{ { 0x00, 0xFE, 0xC8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x02, 0x07, 0x01 }, "RacalDatacom", "Racal-Datacom" },
@@ -13332,6 +13341,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x02, 0xCF, 0x1C }, "Communicatio", "Communication Machinery Corporation" },
{ { 0x02, 0xE6, 0xD3 }, "NixdorfCompu", "Nixdorf Computer Corp." },
{ { 0x04, 0x00, 0x67 }, "StanleyBlack", "Stanley Black & Decker" },
+ { { 0x04, 0x01, 0xA1 }, "Fortinet", "Fortinet, Inc." },
{ { 0x04, 0x01, 0xBB }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x04, 0x02, 0x1F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x04, 0x02, 0xCA }, "Vtsonic", "Shenzhen Vtsonic Co.,ltd" },
@@ -13341,7 +13351,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x04, 0xEA }, "ValensSemico", "Valens Semiconductor Ltd." },
{ { 0x04, 0x05, 0xDD }, "CultraviewDi", "Shenzhen Cultraview Digital Technology Co., Ltd" },
{ { 0x04, 0x07, 0x2E }, "VTechElectro", "VTech Electronics Ltd." },
- { { 0x04, 0x09, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x04, 0x09, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x04, 0x09, 0x86 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x04, 0x09, 0xA5 }, "HFR", "HFR, Inc." },
{ { 0x04, 0x0A, 0x83 }, "AlcatelLucen", "Alcatel-Lucent" },
@@ -13351,6 +13361,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x0E, 0x3C }, "HP", "HP Inc." },
{ { 0x04, 0x0E, 0xC2 }, "ViewSonicMob", "ViewSonic Mobile China Limited" },
{ { 0x04, 0x10, 0x6B }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0x04, 0x13, 0x7A }, "Apple", "Apple, Inc." },
{ { 0x04, 0x14, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x04, 0x15, 0x52 }, "Apple", "Apple, Inc." },
{ { 0x04, 0x15, 0xD9 }, "Viwone", "Viwone" },
@@ -13416,6 +13427,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x45, 0xA1 }, "NIRITXinweiT", "NIRIT- Xinwei Telecom Technology Co., Ltd." },
{ { 0x04, 0x46, 0x65 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0x04, 0x46, 0xCF }, "VenustechCyb", "Beijing Venustech Cybervision Co.,Ltd." },
+ { { 0x04, 0x47, 0x07 }, "TexasInstrum", "Texas Instruments" },
{ { 0x04, 0x47, 0x2A }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x04, 0x48, 0x9A }, "Apple", "Apple, Inc." },
{ { 0x04, 0x49, 0x5D }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -13424,6 +13436,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x4A, 0x6C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x04, 0x4A, 0xC6 }, "AiponElectro", "Aipon Electronics Co., Ltd" },
{ { 0x04, 0x4B, 0xA5 }, "MercuryCommu", "Shenzhen Mercury Communication Technologies Co.,Ltd." },
+ { { 0x04, 0x4B, 0xB1 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x04, 0x4B, 0xED }, "Apple", "Apple, Inc." },
{ { 0x04, 0x4B, 0xFF }, "GuangZhouHed", "GuangZhou Hedy Digital Technology Co., Ltd" },
{ { 0x04, 0x4C, 0xEF }, "FujianSanaoT", "Fujian Sanao Technology Co.,Ltd" },
@@ -13522,6 +13535,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0x92, 0xEE }, "iway", "iway AG" },
{ { 0x04, 0x94, 0x6B }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x04, 0x94, 0xA1 }, "CatchWind", "Catch The Wind Inc" },
+ { { 0x04, 0x94, 0xE9 }, "FAXedgeTechn", "FAXedge Technologies, LLC" },
{ { 0x04, 0x95, 0x73 }, "zte", "zte corporation" },
{ { 0x04, 0x95, 0xE6 }, "TendaTechnol", "Tenda Technology Co.,Ltd.Dongguan branch" },
{ { 0x04, 0x96, 0x45 }, "WuxiSkyChipI", "Wuxi Sky Chip Interconnection Technology Co.,Ltd." },
@@ -13575,7 +13589,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0xBC, 0x87 }, "JustLinkTech", "Shenzhen JustLink Technology Co., LTD" },
{ { 0x04, 0xBC, 0x9F }, "Calix", "Calix Inc." },
{ { 0x04, 0xBD, 0x70 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0x04, 0xBD, 0x88 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x04, 0xBD, 0x88 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x04, 0xBD, 0x97 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x04, 0xBD, 0xBF }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x04, 0xBF, 0x1B }, "Dell", "Dell Inc." },
@@ -13640,6 +13654,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x04, 0xE2, 0x29 }, "QingdaoHaier", "Qingdao Haier Technology Co.,Ltd" },
{ { 0x04, 0xE2, 0xF8 }, "AEPTicketing", "AEP Ticketing solutions srl" },
{ { 0x04, 0xE3, 0x1A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
+ { { 0x04, 0xE3, 0x87 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x04, 0xE4, 0x51 }, "TexasInstrum", "Texas Instruments" },
{ { 0x04, 0xE4, 0xB6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x04, 0xE5, 0x36 }, "Apple", "Apple, Inc." },
@@ -13832,6 +13847,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x00, 0x90 }, "Sonoma", "Sonoma Systems" },
{ { 0x08, 0x01, 0x0F }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x08, 0x02, 0x05 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x08, 0x02, 0x3C }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x08, 0x02, 0x8E }, "Netgear", "Netgear" },
{ { 0x08, 0x03, 0x42 }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x08, 0x03, 0x71 }, "Krg", "Krg Corporate" },
@@ -13853,6 +13869,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x10, 0x86 }, "NECPlatforms", "NEC Platforms, Ltd." },
{ { 0x08, 0x11, 0x5E }, "Bitel", "Bitel Co., Ltd." },
{ { 0x08, 0x11, 0x96 }, "Intel", "Intel Corporate" },
+ { { 0x08, 0x12, 0x87 }, "JiangxiRisou", "Jiangxi Risound Electronics Co., LTD" },
{ { 0x08, 0x12, 0xA5 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x08, 0x14, 0x43 }, "Unibrain", "Unibrain S.A." },
{ { 0x08, 0x15, 0x2F }, "SamsungElect", "Samsung Electronics Co., Ltd. ARTIK" },
@@ -14006,6 +14023,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x81, 0xF4 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x08, 0x84, 0x66 }, "NovartisPhar", "Novartis Pharma AG" },
{ { 0x08, 0x84, 0x9D }, "AmazonTechno", "Amazon Technologies Inc." },
+ { { 0x08, 0x84, 0xFB }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0x08, 0x85, 0x5B }, "KontronEurop", "Kontron Europe GmbH" },
{ { 0x08, 0x86, 0x20 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x08, 0x86, 0x3B }, "BelkinIntern", "Belkin International Inc." },
@@ -14028,7 +14046,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0x95, 0x42 }, "Apple", "Apple, Inc." },
{ { 0x08, 0x96, 0xAD }, "Cisco", "Cisco Systems, Inc" },
{ { 0x08, 0x96, 0xD7 }, "AVM", "AVM GmbH" },
- { { 0x08, 0x97, 0x34 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x08, 0x97, 0x34 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x08, 0x97, 0x58 }, "StrongRising", "Shenzhen Strong Rising Electronics Co.,Ltd DongGuan Subsidiary" },
{ { 0x08, 0x97, 0x98 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
{ { 0x08, 0x99, 0xE8 }, "KEMAS", "KEMAS GmbH" },
@@ -14066,11 +14084,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xB4, 0x9D }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x08, 0xB4, 0xB1 }, "Google", "Google, Inc." },
{ { 0x08, 0xB4, 0xCF }, "AbicomIntern", "Abicom International" },
+ { { 0x08, 0xB4, 0xD2 }, "Intel", "Intel Corporate" },
{ { 0x08, 0xB6, 0x1F }, "Espressif", "Espressif Inc." },
{ { 0x08, 0xB7, 0x38 }, "LiteOnTechno", "Lite-On Technogy Corp." },
{ { 0x08, 0xB7, 0xEC }, "WirelessSeis", "Wireless Seismic" },
{ { 0x08, 0xBA, 0x22 }, "Swaive", "Swaive Corporation" },
{ { 0x08, 0xBA, 0x5F }, "QingdaoHisen", "Qingdao Hisense Electronics Co.,Ltd." },
+ { { 0x08, 0xBA, 0xB7 }, "CeragonNetwo", "Ceragon Networks Ltd." },
{ { 0x08, 0xBB, 0x3C }, "FlextronicsT", "Flextronics Tech.(Ind) Pvt Ltd" },
{ { 0x08, 0xBB, 0xCC }, "AKNORDEDVVER", "AK-NORD EDV VERTRIEBSGES. mbH" },
{ { 0x08, 0xBC, 0x20 }, "RoyalCloudTe", "Hangzhou Royal Cloud Technology Co., Ltd" },
@@ -14141,7 +14161,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x08, 0xF0, 0xB6 }, "EdifierInter", "Edifier International" },
{ { 0x08, 0xF1, 0xB3 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x08, 0xF1, 0xB7 }, "TowerstreamC", "Towerstream Corpration" },
- { { 0x08, 0xF1, 0xEA }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x08, 0xF1, 0xEA }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x08, 0xF2, 0xF4 }, "NetOnePartne", "Net One Partners Co.,Ltd." },
{ { 0x08, 0xF3, 0xFB }, "Cisco", "Cisco Systems, Inc" },
{ { 0x08, 0xF4, 0x58 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -14180,6 +14200,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x02, 0xBD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x0C, 0x04, 0x00 }, "Jantardoo", "Jantar d.o.o." },
{ { 0x0C, 0x05, 0x35 }, "Juniper", "Juniper Systems" },
+ { { 0x0C, 0x07, 0xDF }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x0C, 0x08, 0xB4 }, "HUMAX", "HUMAX Co., Ltd." },
{ { 0x0C, 0x0A, 0xDF }, "TexasInstrum", "Texas Instruments" },
{ { 0x0C, 0x0E, 0x76 }, "DLinkInterna", "D-Link International" },
@@ -14215,6 +14236,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x29, 0x8F }, "Tesla", "Tesla,Inc." },
{ { 0x0C, 0x29, 0xEF }, "Dell", "Dell Inc." },
{ { 0x0C, 0x2A, 0x69 }, "electricimp", "electric imp, incorporated" },
+ { { 0x0C, 0x2A, 0x6F }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x0C, 0x2A, 0x86 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x0C, 0x2A, 0xE7 }, "GeneralResea", "Beijing General Research Institute of Mining and Metallurgy" },
{ { 0x0C, 0x2C, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -14223,6 +14245,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x2F, 0xB0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x0C, 0x30, 0x21 }, "Apple", "Apple, Inc." },
{ { 0x0C, 0x31, 0xDC }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x0C, 0x32, 0x3A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x0C, 0x35, 0x26 }, "Microsoft", "Microsoft Corporation" },
{ { 0x0C, 0x35, 0x4F }, "Nokia", "Nokia" },
{ { 0x0C, 0x35, 0xFE }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -14330,6 +14353,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x84, 0x84 }, "ZenoviaElect", "Zenovia Electronics Inc." },
{ { 0x0C, 0x84, 0xDC }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x0C, 0x85, 0x25 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x0C, 0x85, 0xE1 }, "Apple", "Apple, Inc." },
{ { 0x0C, 0x86, 0x10 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x0C, 0x86, 0xC7 }, "JabilCircuit", "Jabil Circuit (Guangzhou) Limited" },
{ { 0x0C, 0x87, 0x72 }, "FujianStarNe", "Fujian Star-Net Communication Co.,Ltd" },
@@ -14361,7 +14385,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0x96, 0xBF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x0C, 0x96, 0xCD }, "Mercury", "Mercury Corporation" },
{ { 0x0C, 0x96, 0xE6 }, "CloudNetwork", "Cloud Network Technology (Samoa) Limited" },
- { { 0x0C, 0x97, 0x5F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x0C, 0x97, 0x5F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x0C, 0x98, 0x38 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x0C, 0x9A, 0x3C }, "Intel", "Intel Corporate" },
{ { 0x0C, 0x9A, 0x42 }, "FnLinkTechno", "Fn-Link Technology Limited" },
@@ -14412,6 +14436,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0xBF, 0x74 }, "MorseMicro", "Morse Micro" },
{ { 0x0C, 0xC0, 0xC0 }, "MagnetiMarel", "Magneti Marelli Sistemas Electronicos Mexico" },
{ { 0x0C, 0xC3, 0xA7 }, "Meritec", "Meritec" },
+ { { 0x0C, 0xC3, 0xB8 }, "JiahuaZhongl", "Shenzhen Jiahua Zhongli Technology Co., LTD" },
{ { 0x0C, 0xC4, 0x13 }, "Google", "Google, Inc." },
{ { 0x0C, 0xC4, 0x7A }, "SuperMicroCo", "Super Micro Computer, Inc." },
{ { 0x0C, 0xC4, 0x7E }, "EUCAST", "EUCAST Co., Ltd." },
@@ -14437,6 +14462,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0xD0, 0xF8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x0C, 0xD2, 0x92 }, "Intel", "Intel Corporate" },
{ { 0x0C, 0xD2, 0xB5 }, "BinatoneTele", "Binatone Telecommunication Pvt. Ltd" },
+ { { 0x0C, 0xD3, 0xA1 }, "MonthlyKitch", "Monthly Kitchen" },
{ { 0x0C, 0xD5, 0x02 }, "WestellTechn", "Westell Technologies Inc." },
{ { 0x0C, 0xD5, 0xD3 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x0C, 0xD6, 0x96 }, "Amimon", "Amimon Ltd" },
@@ -14469,10 +14495,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x0C, 0xE8, 0x2F }, "BonfiglioliV", "Bonfiglioli Vectron GmbH" },
{ { 0x0C, 0xE9, 0x36 }, "ELIMOS", "ELIMOS srl" },
{ { 0x0C, 0xE9, 0x9A }, "AtlsAltec", "Atls Altec" },
+ { { 0x0C, 0xEA, 0x14 }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0x0C, 0xEA, 0xC9 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x0C, 0xEC, 0x80 }, "TexasInstrum", "Texas Instruments" },
{ { 0x0C, 0xEC, 0x84 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
{ { 0x0C, 0xEC, 0x8D }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
+ { { 0x0C, 0xED, 0xC8 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x0C, 0xEE, 0x99 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x0C, 0xEE, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x0C, 0xEF, 0x7C }, "AnaCom", "AnaCom Inc" },
@@ -14545,6 +14573,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x1E, 0xDA }, "IngenicoTerm", "Ingenico Terminals Sas" },
{ { 0x10, 0x1F, 0x74 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x10, 0x22, 0x79 }, "ZeroDesktop", "ZeroDesktop, Inc." },
+ { { 0x10, 0x23, 0x81 }, "BarrotTechno", "Barrot Technology Co.,LTD" },
{ { 0x10, 0x24, 0x07 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x10, 0x27, 0x79 }, "Sadel", "Sadel S.p.A." },
{ { 0x10, 0x27, 0xBE }, "Tvip", "Tvip" },
@@ -14592,6 +14621,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x3D, 0x3E }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x10, 0x3D, 0xEA }, "HFCTechnolog", "HFC Technology (Beijing) Ltd. Co." },
{ { 0x10, 0x3F, 0x44 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0x10, 0x3F, 0x8C }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x10, 0x40, 0xF3 }, "Apple", "Apple, Inc." },
{ { 0x10, 0x41, 0x21 }, "TellescomInd", "Tellescom Industria E Comercio Em Telecomunicacao" },
{ { 0x10, 0x41, 0x7F }, "Apple", "Apple, Inc." },
@@ -14613,7 +14643,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x4D, 0x77 }, "InnovativeCo", "Innovative Computer Engineering" },
{ { 0x10, 0x4E, 0x07 }, "GenvisionInd", "Shanghai Genvision Industries Co.,Ltd" },
{ { 0x10, 0x4E, 0x89 }, "GarminIntern", "Garmin International" },
- { { 0x10, 0x4F, 0x58 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x10, 0x4F, 0x58 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x10, 0x4F, 0xA8 }, "Sony", "Sony Corporation" },
{ { 0x10, 0x50, 0x72 }, "Sercomm", "Sercomm Corporation." },
{ { 0x10, 0x51, 0x07 }, "Intel", "Intel Corporate" },
@@ -14697,7 +14727,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0x8E, 0xBA }, "Molekule", "Molekule" },
{ { 0x10, 0x8E, 0xE0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x10, 0x8F, 0xFE }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x10, 0x90, 0x7D }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x10, 0x90, 0xFA }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
+ { { 0x10, 0x90, 0xFC }, "DOOGEEHengto", "Shenzhen DOOGEE Hengtong Technology CO.,LTD" },
{ { 0x10, 0x91, 0xA8 }, "Espressif", "Espressif Inc." },
{ { 0x10, 0x91, 0xD1 }, "Intel", "Intel Corporate" },
{ { 0x10, 0x92, 0x66 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -14767,6 +14799,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0xBF, 0x48 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0x10, 0xBF, 0x67 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x10, 0xC0, 0x7C }, "BlurayDiscAs", "Blu-ray Disc Association" },
+ { { 0x10, 0xC0, 0xD5 }, "HOLOEYEPhoto", "HOLOEYE Photonics AG" },
{ { 0x10, 0xC1, 0x72 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x10, 0xC2, 0x2F }, "ChinaEntropy", "China Entropy Co., Ltd." },
{ { 0x10, 0xC2, 0x5A }, "VantivaUSA", "Vantiva USA LLC" },
@@ -14806,6 +14839,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x10, 0xD7, 0xB0 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x10, 0xDA, 0x43 }, "Netgear", "Netgear" },
{ { 0x10, 0xDA, 0x49 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x10, 0xDA, 0x63 }, "Apple", "Apple, Inc." },
{ { 0x10, 0xDC, 0x4A }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x10, 0xDD, 0xB1 }, "Apple", "Apple, Inc." },
{ { 0x10, 0xDD, 0xF4 }, "MaxwayElectr", "Maxway Electronics CO.,LTD" },
@@ -14859,7 +14893,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x00, 0xE9 }, "MitelNetwork", "Mitel Networks Corporation" },
{ { 0x14, 0x01, 0x52 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x14, 0x01, 0x9C }, "Ubyon", "Ubyon Inc." },
- { { 0x14, 0x02, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x14, 0x02, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x14, 0x04, 0x67 }, "SNKTechnolog", "SNK Technologies Co.,Ltd." },
{ { 0x14, 0x06, 0x4C }, "VoglElectron", "Vogl Electronic GmbH" },
{ { 0x14, 0x07, 0x08 }, "CpPlus", "Cp Plus Gmbh & Co. Kg" },
@@ -14884,6 +14918,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x13, 0xFB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0x14, 0x4B }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x14, 0x14, 0x59 }, "VodafoneItal", "Vodafone Italia S.p.A." },
+ { { 0x14, 0x14, 0x7D }, "Apple", "Apple, Inc." },
{ { 0x14, 0x14, 0xE6 }, "NingboSanheD", "Ningbo Sanhe Digital Co.,Ltd" },
{ { 0x14, 0x15, 0x7C }, "TokyoCosmosE", "Tokyo Cosmos Electric Co.,Ltd." },
{ { 0x14, 0x16, 0x9D }, "Cisco", "Cisco Systems, Inc" },
@@ -14910,6 +14945,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x23, 0x0A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0x23, 0xD7 }, "Eutronix", "Eutronix Co., Ltd." },
{ { 0x14, 0x23, 0xF2 }, "Broadcom", "Broadcom Limited" },
+ { { 0x14, 0x23, 0xF3 }, "Broadcom", "Broadcom Limited" },
{ { 0x14, 0x24, 0x75 }, "4DReplay", "4DReplay, Inc" },
{ { 0x14, 0x28, 0x76 }, "Apple", "Apple, Inc." },
{ { 0x14, 0x28, 0x82 }, "MidicomElect", "Midicom Electronics Co.Ltd" },
@@ -15010,6 +15046,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x6B, 0x72 }, "FortuneShipT", "Shenzhen Fortune Ship Technology Co., Ltd." },
{ { 0x14, 0x6B, 0x9A }, "zte", "zte corporation" },
{ { 0x14, 0x6B, 0x9C }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
+ { { 0x14, 0x6C, 0x27 }, "DongguanLies", "Dongguan Liesheng Electronic Co., Ltd." },
{ { 0x14, 0x73, 0x73 }, "TubitakUekae", "Tubitak Uekae" },
{ { 0x14, 0x74, 0x11 }, "Rim", "Rim" },
{ { 0x14, 0x75, 0x5B }, "Intel", "Intel Corporate" },
@@ -15059,6 +15096,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0x99, 0x3E }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x14, 0x99, 0xE2 }, "Apple", "Apple, Inc." },
{ { 0x14, 0x9A, 0x10 }, "Microsoft", "Microsoft Corporation" },
+ { { 0x14, 0x9A, 0xA3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0x9B, 0x2F }, "JiangSuZhong", "JiangSu ZhongXie Intelligent Technology co., LTD" },
{ { 0x14, 0x9B, 0xD7 }, "MuliMuwaiFur", "Muli Muwai Furniture Qidong Co., Ltd" },
{ { 0x14, 0x9B, 0xF3 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -15089,7 +15127,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0xAB, 0x02 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0xAB, 0x56 }, "WuxiFunideDi", "Wuxi Funide Digital Co.,Ltd" },
{ { 0x14, 0xAB, 0xC5 }, "Intel", "Intel Corporate" },
- { { 0x14, 0xAB, 0xEC }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x14, 0xAB, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x14, 0xAB, 0xF0 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x14, 0xAC, 0x60 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x14, 0xAD, 0xCA }, "ChinaMobileI", "China Mobile Iot Limited company" },
@@ -15109,6 +15147,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x14, 0xB9, 0x68 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x14, 0xBB, 0x6E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x14, 0xBD, 0x61 }, "Apple", "Apple, Inc." },
+ { { 0x14, 0xBE, 0xFC }, "NanjingJiaha", "Nanjing Jiahao Technology Co., Ltd." },
{ { 0x14, 0xC0, 0x3E }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x14, 0xC0, 0x50 }, "GeniusTechno", "Guangdong Genius Technology Co., Ltd." },
{ { 0x14, 0xC0, 0x89 }, "DuneHd", "Dune Hd Ltd" },
@@ -15188,6 +15227,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x02, 0xAE }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x18, 0x03, 0x73 }, "Dell", "Dell Inc." },
{ { 0x18, 0x03, 0xFA }, "IBTInterface", "IBT Interfaces" },
+ { { 0x18, 0x04, 0x03 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x18, 0x04, 0xED }, "TexasInstrum", "Texas Instruments" },
{ { 0x18, 0x06, 0x75 }, "DilaxIntelco", "Dilax Intelcom GmbH" },
{ { 0x18, 0x06, 0xF5 }, "RADDataCommu", "RAD Data Communications, Ltd." },
@@ -15196,6 +15236,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x0B, 0x52 }, "NanotronTech", "Nanotron Technologies GmbH" },
{ { 0x18, 0x0C, 0x14 }, "iSonea", "iSonea Limited" },
{ { 0x18, 0x0C, 0x77 }, "Westinghouse", "Westinghouse Electric Company, LLC" },
+ { { 0x18, 0x0C, 0x7A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x18, 0x0C, 0xAC }, "Canon", "Canon Inc." },
{ { 0x18, 0x0D, 0x2C }, "Intelbras", "Intelbras" },
{ { 0x18, 0x0E, 0xAC }, "FastTechnolo", "Shenzhen Fast Technologies Co.,Ltd" },
@@ -15328,7 +15369,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x61, 0xC7 }, "lemonbeat", "lemonbeat GmbH" },
{ { 0x18, 0x62, 0x2C }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x18, 0x62, 0xE4 }, "TexasInstrum", "Texas Instruments" },
- { { 0x18, 0x64, 0x72 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x18, 0x64, 0x72 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x18, 0x65, 0x71 }, "TopVictoryEl", "Top Victory Electronics (Taiwan) Co., Ltd." },
{ { 0x18, 0x65, 0x90 }, "Apple", "Apple, Inc." },
{ { 0x18, 0x65, 0xC7 }, "DongguanYIMO", "Dongguan YIMO Technology Co.LTD" },
@@ -15357,7 +15398,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x78, 0xD4 }, "Verizon", "Verizon" },
{ { 0x18, 0x79, 0xA2 }, "GmjElectric", "Gmj Electric Limited" },
{ { 0x18, 0x79, 0xFD }, "zte", "zte corporation" },
- { { 0x18, 0x7A, 0x3B }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x18, 0x7A, 0x3B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x18, 0x7A, 0x3E }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x18, 0x7A, 0x93 }, "AMICCOMElect", "AMICCOM Electronics Corporation" },
{ { 0x18, 0x7C, 0x0B }, "RuckusWirele", "Ruckus Wireless" },
@@ -15378,13 +15419,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x18, 0x83, 0xBF }, "ArcadyanTech", "Arcadyan Technology Corporation" },
{ { 0x18, 0x84, 0x10 }, "CoreTrust", "CoreTrust Inc." },
{ { 0x18, 0x84, 0xC1 }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
+ { { 0x18, 0x86, 0x37 }, "IngramMicroS", "Ingram Micro Services" },
{ { 0x18, 0x86, 0x3A }, "DigitalArtSy", "Digital Art System" },
{ { 0x18, 0x86, 0xAC }, "NokiaDanmark", "Nokia Danmark A/S" },
{ { 0x18, 0x87, 0x40 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x18, 0x87, 0x96 }, "HTC", "HTC Corporation" },
{ { 0x18, 0x88, 0x57 }, "JinhongXiDia", "Beijing Jinhong Xi-Dian Information Technology Corp." },
{ { 0x18, 0x89, 0x5B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0x18, 0x89, 0xA0 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
+ { { 0x18, 0x89, 0xA0 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x18, 0x89, 0xCF }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x18, 0x89, 0xDF }, "Omnivision", "Omnivision" },
{ { 0x18, 0x8A, 0x6A }, "AVProGlobalH", "AVPro Global Hldgs" },
@@ -15597,7 +15639,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x25, 0xE1 }, "ChinaMobileI", "China Mobile IOT Company Limited" },
{ { 0x1C, 0x27, 0x04 }, "zte", "zte corporation" },
{ { 0x1C, 0x27, 0xDD }, "DatangGohigh", "Datang Gohighsec(zhejiang)Information Technology Co.,Ltd." },
- { { 0x1C, 0x28, 0xAF }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x1C, 0x28, 0xAF }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x1C, 0x2A, 0x8B }, "Nokia", "Nokia" },
{ { 0x1C, 0x2A, 0xA3 }, "HongRuiOptic", "Shenzhen HongRui Optical Technology Co., Ltd." },
{ { 0x1C, 0x2A, 0xB0 }, "XiaomiElectr", "Beijing Xiaomi Electronics Co.,Ltd" },
@@ -15698,8 +15740,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x67, 0x58 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x1C, 0x67, 0x60 }, "Phonesuite", "Phonesuite" },
{ { 0x1C, 0x68, 0x7E }, "QihuIntellig", "Shenzhen Qihu Intelligent Technology Company Limited" },
+ { { 0x1C, 0x69, 0x20 }, "Espressif", "Espressif Inc." },
{ { 0x1C, 0x69, 0x7A }, "EliteGroupCo", "EliteGroup Computer Systems Co., LTD" },
{ { 0x1C, 0x69, 0xA5 }, "BlackBerryRT", "BlackBerry RTS" },
+ { { 0x1C, 0x6A, 0x1B }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0x1C, 0x6A, 0x76 }, "Apple", "Apple, Inc." },
{ { 0x1C, 0x6A, 0x7A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x1C, 0x6B, 0xCA }, "Mitsunami", "Mitsunami Co., Ltd." },
@@ -15765,7 +15809,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0x97, 0xC5 }, "Ynomia", "Ynomia Pty Ltd" },
{ { 0x1C, 0x97, 0xFB }, "CoolBitX", "CoolBitX Ltd." },
{ { 0x1C, 0x98, 0xC1 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
- { { 0x1C, 0x98, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x1C, 0x98, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x1C, 0x99, 0x4C }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0x1C, 0x99, 0x57 }, "Intel", "Intel Corporate" },
{ { 0x1C, 0x9C, 0x26 }, "ZoovelTechno", "Zoovel Technologies" },
@@ -15854,8 +15898,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0xE6, 0xAD }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x1C, 0xE6, 0xC7 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x1C, 0xE8, 0x5D }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x1C, 0xE8, 0x9E }, "Sjit", "Sjit" },
{ { 0x1C, 0xEA, 0x0B }, "EdgecoreNetw", "Edgecore Networks Corporation" },
{ { 0x1C, 0xEA, 0x1B }, "Nokia", "Nokia" },
+ { { 0x1C, 0xEA, 0xAC }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x1C, 0xEC, 0x72 }, "Allradio", "Allradio Co., Ltd" },
{ { 0x1C, 0xED, 0x6F }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0x1C, 0xEE, 0xC9 }, "Elotouchsolu", "Elo touch solutions" },
@@ -15867,6 +15913,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x1C, 0xF2, 0x9A }, "Google", "Google, Inc." },
{ { 0x1C, 0xF4, 0x2B }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x1C, 0xF5, 0xE7 }, "TurtleIndust", "Turtle Industry Co., Ltd." },
+ { { 0x1C, 0xF6, 0x4C }, "Apple", "Apple, Inc." },
{ { 0x1C, 0xF8, 0xD0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x1C, 0xFA, 0x68 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x1C, 0xFC, 0x17 }, "Cisco", "Cisco Systems, Inc" },
@@ -15882,6 +15929,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x04, 0x84 }, "Apple", "Apple, Inc." },
{ { 0x20, 0x04, 0xF3 }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0x20, 0x05, 0x05 }, "RadmaxCommun", "Radmax Communication Private Limited" },
+ { { 0x20, 0x05, 0xB6 }, "OpenWrt", "OpenWrt" },
{ { 0x20, 0x05, 0xE8 }, "OOOInProMedi", "OOO InProMedia" },
{ { 0x20, 0x08, 0x89 }, "zte", "zte corporation" },
{ { 0x20, 0x08, 0xED }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -15959,6 +16007,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x3A, 0x43 }, "Intel", "Intel Corporate" },
{ { 0x20, 0x3A, 0xEB }, "zte", "zte corporation" },
{ { 0x20, 0x3A, 0xEF }, "Sivantos", "Sivantos GmbH" },
+ { { 0x20, 0x3B, 0x34 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x20, 0x3B, 0x69 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x20, 0x3C, 0xAE }, "Apple", "Apple, Inc." },
{ { 0x20, 0x3C, 0xC0 }, "ToseeTechnol", "Beijing Tosee Technology Co., Ltd." },
@@ -15980,7 +16029,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x47, 0xED }, "SkyUk", "Sky Uk Limited" },
{ { 0x20, 0x4A, 0xAA }, "HanscanSpain", "Hanscan Spain S.A." },
{ { 0x20, 0x4B, 0x22 }, "SunnovoInter", "Sunnovo International Limited" },
- { { 0x20, 0x4C, 0x03 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x20, 0x4C, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x20, 0x4C, 0x6D }, "HugoBrennens", "Hugo Brennenstuhl Gmbh & Co. KG." },
{ { 0x20, 0x4C, 0x9E }, "Cisco", "Cisco Systems, Inc" },
{ { 0x20, 0x4E, 0x6B }, "Axxana", "Axxana(israel) ltd" },
@@ -16019,7 +16068,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x65, 0x8E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0x66, 0xCF }, "FreeboxSas", "Freebox Sas" },
{ { 0x20, 0x66, 0xFD }, "Constell8", "Constell8 Nv" },
- { { 0x20, 0x67, 0x7C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x20, 0x67, 0x7C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x20, 0x67, 0xB1 }, "Pluto", "Pluto inc." },
{ { 0x20, 0x67, 0xE0 }, "iCommSemicon", "Shenzhen iComm Semiconductor CO.,LTD" },
{ { 0x20, 0x68, 0x9D }, "LiteonTechno", "Liteon Technology Corporation" },
@@ -16027,6 +16076,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x6A, 0x8A }, "WistronInfoc", "Wistron Infocomm (Zhongshan) Corporation" },
{ { 0x20, 0x6A, 0x94 }, "HitronTechno", "Hitron Technologies. Inc" },
{ { 0x20, 0x6A, 0xFF }, "AtlasElektro", "Atlas Elektronik UK Limited" },
+ { { 0x20, 0x6B, 0xD5 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x20, 0x6B, 0xE7 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x20, 0x6B, 0xF4 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x20, 0x6C, 0x8A }, "ExtremeNetwo", "Extreme Networks Headquarters" },
@@ -16086,16 +16136,17 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0x9B, 0xA5 }, "JIAXINGGLEAD", "JIAXING GLEAD Electronics Co.,Ltd" },
{ { 0x20, 0x9B, 0xCD }, "Apple", "Apple, Inc." },
{ { 0x20, 0x9B, 0xE6 }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
- { { 0x20, 0x9C, 0xB4 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x20, 0x9C, 0xB4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x20, 0x9E, 0x79 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0x20, 0x9E, 0xF7 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0x20, 0xA1, 0x71 }, "AmazonTechno", "Amazon Technologies Inc." },
+ { { 0x20, 0xA2, 0x00 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0xA2, 0xE4 }, "Apple", "Apple, Inc." },
{ { 0x20, 0xA2, 0xE7 }, "LeeDickens", "Lee-Dickens Ltd" },
{ { 0x20, 0xA5, 0xCB }, "Apple", "Apple, Inc." },
{ { 0x20, 0xA6, 0x0C }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x20, 0xA6, 0x80 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0x20, 0xA6, 0xCD }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x20, 0xA6, 0xCD }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x20, 0xA7, 0x66 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0xA7, 0x83 }, "miControl", "miControl GmbH" },
{ { 0x20, 0xA7, 0x87 }, "BointecTaiwa", "Bointec Taiwan Corporation Limited" },
@@ -16130,6 +16181,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0xC0, 0x6D }, "SpacetekTech", "Shenzhen Spacetek Technology Co.,Ltd" },
{ { 0x20, 0xC1, 0x9B }, "Intel", "Intel Corporate" },
{ { 0x20, 0xC1, 0xAF }, "iWitDigital", "i Wit Digital Co., Limited" },
+ { { 0x20, 0xC2, 0xB0 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0xC3, 0x8F }, "TexasInstrum", "Texas Instruments" },
{ { 0x20, 0xC3, 0xA4 }, "RetailNext", "RetailNext" },
{ { 0x20, 0xC6, 0x0D }, "annijieInfor", "Shanghai annijie Information technology Co.,LTD" },
@@ -16157,6 +16209,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x20, 0xD9, 0x06 }, "Iota", "Iota, Inc." },
{ { 0x20, 0xDA, 0x22 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x20, 0xDB, 0xAB }, "SamsungElect", "Samsung Electronics Co., Ltd." },
+ { { 0x20, 0xDB, 0xEA }, "Cisco", "Cisco Systems, Inc" },
{ { 0x20, 0xDC, 0x93 }, "CheetahHiTec", "Cheetah Hi-Tech, Inc." },
{ { 0x20, 0xDC, 0xE6 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x20, 0xDC, 0xFD }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -16243,6 +16296,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x14, 0x07 }, "XiamenSigmas", "Xiamen Sigmastar Technology Ltd." },
{ { 0x24, 0x15, 0x51 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x24, 0x16, 0x1B }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x24, 0x16, 0x51 }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0x24, 0x16, 0x6D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x24, 0x16, 0x9D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x24, 0x18, 0x1D }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
@@ -16291,6 +16345,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x3A, 0x82 }, "Irts", "Irts" },
{ { 0x24, 0x3C, 0x20 }, "DynamodeGrou", "Dynamode Group" },
{ { 0x24, 0x3F, 0x30 }, "OxygenBroadb", "Oxygen Broadband s.a." },
+ { { 0x24, 0x3F, 0x75 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x24, 0x3F, 0xAA }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x24, 0x40, 0xAE }, "NIICTechnolo", "NIIC Technology Co., Ltd." },
{ { 0x24, 0x41, 0x8C }, "Intel", "Intel Corporate" },
@@ -16335,9 +16390,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x5F, 0xDF }, "Kyocera", "Kyocera Corporation" },
{ { 0x24, 0x60, 0x81 }, "razberitechn", "razberi technologies" },
{ { 0x24, 0x61, 0x5A }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
- { { 0x24, 0x62, 0x78 }, "sysmocomform", "sysmocom - systems for mobile communications GmbH" },
+ { { 0x24, 0x62, 0x78 }, "sysmocomsfmc", "sysmocom - s.f.m.c. GmbH" },
{ { 0x24, 0x62, 0xAB }, "Espressif", "Espressif Inc." },
- { { 0x24, 0x62, 0xCE }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x24, 0x62, 0xCE }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x24, 0x64, 0x9F }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x24, 0x64, 0xEF }, "CygSunri", "Cyg Sunri Co.,Ltd." },
{ { 0x24, 0x65, 0x11 }, "AVM", "AVM GmbH" },
@@ -16372,6 +16427,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x79, 0xEF }, "GreenpacketB", "Greenpacket Berhad, Taiwan" },
{ { 0x24, 0x79, 0xF3 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x24, 0x79, 0xF8 }, "KUPSONspolsr", "KUPSON spol. s r.o." },
+ { { 0x24, 0x7C, 0x46 }, "FlextronicsT", "Flextronics Technologies Mexico S De Rl De Cv" },
{ { 0x24, 0x7C, 0x4C }, "HermanMiller", "Herman Miller" },
{ { 0x24, 0x7D, 0x4D }, "TexasInstrum", "Texas Instruments" },
{ { 0x24, 0x7E, 0x12 }, "Cisco", "Cisco Systems, Inc" },
@@ -16404,6 +16460,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0x9A, 0xC8 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0x24, 0x9A, 0xD8 }, "YealinkNetwo", "Yealink(Xiamen) Network Technology Co.,Ltd." },
{ { 0x24, 0x9D, 0x2A }, "LinkDataTech", "LinkData Technology (Tianjin) Co., LTD" },
+ { { 0x24, 0x9E, 0x7D }, "RoborockTech", "Beijing Roborock Technology Co., Ltd." },
{ { 0x24, 0x9E, 0xAB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x24, 0x9F, 0x89 }, "TexasInstrum", "Texas Instruments" },
{ { 0x24, 0xA0, 0x74 }, "Apple", "Apple, Inc." },
@@ -16489,7 +16546,8 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0xDB, 0xED }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x24, 0xDC, 0x0F }, "PhytiumTechn", "Phytium Technology Co.,Ltd." },
{ { 0x24, 0xDC, 0xC3 }, "Espressif", "Espressif Inc." },
- { { 0x24, 0xDE, 0xC6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x24, 0xDD, 0x1B }, "QingdaoHiima", "Qingdao Hi-image Technologies Co., Ltd" },
+ { { 0x24, 0xDE, 0xC6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x24, 0xDF, 0x6A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x24, 0xDF, 0xA7 }, "BroadLinkTec", "Hangzhou BroadLink Technology Co.,Ltd" },
{ { 0x24, 0xE1, 0x24 }, "XiamenMilesi", "Xiamen Milesight IoT Co., Ltd." },
@@ -16512,6 +16570,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0xEA, 0x40 }, "Helmholz", "Helmholz GmbH & Co. KG" },
{ { 0x24, 0xEB, 0x65 }, "SAETIS", "SAET I.S. S.r.l." },
{ { 0x24, 0xEB, 0xED }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x24, 0xEC, 0x4A }, "Espressif", "Espressif Inc." },
{ { 0x24, 0xEC, 0x51 }, "ADFTechnolog", "ADF Technologies Sdn Bhd" },
{ { 0x24, 0xEC, 0x99 }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x24, 0xEC, 0xD6 }, "CSGScienceTe", "CSG Science & Technology Co.,Ltd.Hefei" },
@@ -16524,8 +16583,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x24, 0xF0, 0xFF }, "GHT", "GHT Co., Ltd." },
{ { 0x24, 0xF1, 0x28 }, "Telstra", "Telstra" },
{ { 0x24, 0xF1, 0x50 }, "GuangzhouQia", "Guangzhou Qi'an Technology Co., Ltd." },
- { { 0x24, 0xF2, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x24, 0xF2, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x24, 0xF2, 0xDD }, "RadiantZemax", "Radiant Zemax LLC" },
+ { { 0x24, 0xF3, 0x06 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x24, 0xF5, 0x7E }, "Hwh", "Hwh Co., Ltd." },
{ { 0x24, 0xF5, 0xA2 }, "BelkinIntern", "Belkin International Inc." },
{ { 0x24, 0xF5, 0xAA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -16598,6 +16658,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x2C, 0xB2 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x28, 0x2D, 0x06 }, "AMPAKTechnol", "AMPAK Technology,Inc." },
{ { 0x28, 0x2D, 0x7F }, "Apple", "Apple, Inc." },
+ { { 0x28, 0x2E, 0x89 }, "WistronNeweb", "Wistron Neweb Corporation" },
{ { 0x28, 0x2F, 0xC2 }, "AutomotiveDa", "Automotive Data Solutions" },
{ { 0x28, 0x30, 0xAC }, "Frontiir", "Frontiir Co. Ltd." },
{ { 0x28, 0x31, 0x52 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -16625,6 +16686,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x3C, 0x90 }, "TexasInstrum", "Texas Instruments" },
{ { 0x28, 0x3C, 0xE4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0x3D, 0xC2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x28, 0x3D, 0xE8 }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0x28, 0x3E, 0x0C }, "PreferredRob", "Preferred Robotics, Inc." },
{ { 0x28, 0x3E, 0x76 }, "CommonNetwor", "Common Networks" },
{ { 0x28, 0x3F, 0x69 }, "Sony", "Sony Corporation" },
@@ -16671,6 +16733,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0x6A, 0xB8 }, "Apple", "Apple, Inc." },
{ { 0x28, 0x6A, 0xBA }, "Apple", "Apple, Inc." },
{ { 0x28, 0x6B, 0x35 }, "Intel", "Intel Corporate" },
+ { { 0x28, 0x6B, 0x5C }, "Cisco", "Cisco Systems, Inc" },
{ { 0x28, 0x6C, 0x07 }, "XIAOMIElectr", "XIAOMI Electronics,CO.,LTD" },
{ { 0x28, 0x6D, 0x97 }, "SAMJIN", "SAMJIN Co., Ltd." },
{ { 0x28, 0x6D, 0xCD }, "WinnerMicroe", "Beijing Winner Microelectronics Co.,Ltd." },
@@ -16753,6 +16816,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xAD, 0x18 }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x28, 0xAD, 0x3E }, "TONGBOWEITec", "Shenzhen TONG BO WEI Technology CO.,LTD" },
{ { 0x28, 0xAF, 0x0A }, "SiriusXMRadi", "Sirius XM Radio Inc" },
+ { { 0x28, 0xAF, 0x21 }, "zte", "zte corporation" },
{ { 0x28, 0xAF, 0x42 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x28, 0xAF, 0xFD }, "Cisco", "Cisco Systems, Inc" },
{ { 0x28, 0xB0, 0xCC }, "Xenyadoo", "Xenya d.o.o." },
@@ -16762,6 +16826,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xB3, 0xAB }, "GenmarkAutom", "Genmark Automation" },
{ { 0x28, 0xB4, 0x48 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0xB4, 0xFB }, "SprocommTech", "Sprocomm Technologies CO.,LTD." },
+ { { 0x28, 0xB5, 0x91 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x28, 0xB5, 0xE8 }, "TexasInstrum", "Texas Instruments" },
{ { 0x28, 0xB8, 0x29 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x28, 0xB9, 0xD9 }, "Radisys", "Radisys Corporation" },
@@ -16785,6 +16850,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xC2, 0x1F }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0x28, 0xC2, 0xDD }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x28, 0xC5, 0x38 }, "Apple", "Apple, Inc." },
+ { { 0x28, 0xC5, 0xC8 }, "HP", "HP Inc." },
{ { 0x28, 0xC5, 0xD2 }, "Intel", "Intel Corporate" },
{ { 0x28, 0xC6, 0x3F }, "Intel", "Intel Corporate" },
{ { 0x28, 0xC6, 0x71 }, "YotaDevices", "Yota Devices OY" },
@@ -16829,7 +16895,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x28, 0xDB, 0x81 }, "GuaoElectron", "Shanghai Guao Electronic Technology Co., Ltd" },
{ { 0x28, 0xDB, 0xA7 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x28, 0xDE, 0x59 }, "DomusNTW", "Domus NTW CORP." },
- { { 0x28, 0xDE, 0x65 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x28, 0xDE, 0x65 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x28, 0xDE, 0xA8 }, "zte", "zte corporation" },
{ { 0x28, 0xDE, 0xE5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x28, 0xDE, 0xF6 }, "bioMerieux", "bioMerieux Inc." },
@@ -16914,6 +16980,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0x08, 0xB4 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x2C, 0x09, 0x4D }, "RaptorEngine", "Raptor Engineering, LLC" },
{ { 0x2C, 0x09, 0xCB }, "Cobs", "Cobs Ab" },
+ { { 0x2C, 0x0B, 0x97 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x2C, 0x0B, 0xAB }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0x0B, 0xE9 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x2C, 0x0D, 0xA7 }, "Intel", "Intel Corporate" },
@@ -16967,6 +17034,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0x34, 0x27 }, "ErcoGener", "Erco & Gener" },
{ { 0x2C, 0x35, 0x57 }, "ELIIYPower", "ELIIY Power CO., Ltd." },
{ { 0x2C, 0x36, 0xA0 }, "Capisco", "Capisco Limited" },
+ { { 0x2C, 0x36, 0xF2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0x36, 0xF8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x2C, 0x37, 0x31 }, "YifangDigita", "Shenzhen Yifang Digital Technology Co.,Ltd." },
{ { 0x2C, 0x37, 0x96 }, "Cybo", "Cybo Co.,Ltd." },
@@ -17154,6 +17222,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xB6, 0x93 }, "Radware", "Radware" },
{ { 0x2C, 0xB6, 0x9D }, "REDDigitalCi", "RED Digital Cinema" },
{ { 0x2C, 0xB6, 0xC8 }, "RaisecomTech", "Raisecom Technology CO., LTD" },
+ { { 0x2C, 0xB7, 0xA1 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x2C, 0xB8, 0xED }, "SonicWall", "SonicWall" },
{ { 0x2C, 0xBA, 0xBA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x2C, 0xBA, 0xCA }, "CosonicElect", "Cosonic Electroacoustic Technology Co., Ltd." },
@@ -17173,6 +17242,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xC8, 0x1B }, "Routerboardc", "Routerboard.com" },
{ { 0x2C, 0xC8, 0xF5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x2C, 0xCA, 0x0C }, "WithusPlanet", "Withus Planet" },
+ { { 0x2C, 0xCA, 0x16 }, "Apple", "Apple, Inc." },
{ { 0x2C, 0xCA, 0x75 }, "RobertBoschA", "Robert Bosch GmbH AnP" },
{ { 0x2C, 0xCC, 0x15 }, "Nokia", "Nokia Corporation" },
{ { 0x2C, 0xCC, 0x44 }, "SonyInteract", "Sony Interactive Entertainment Inc." },
@@ -17205,6 +17275,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xDD, 0xE9 }, "AristaNetwor", "Arista Networks" },
{ { 0x2C, 0xE0, 0x32 }, "TCLKingElect", "TCL King Electrical Appliances(Huizhou)Co.,Ltd" },
{ { 0x2C, 0xE2, 0xA8 }, "DeviceDesign", "DeviceDesign" },
+ { { 0x2C, 0xE2, 0xD9 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x2C, 0xE3, 0x10 }, "Stratacache", "Stratacache" },
{ { 0x2C, 0xE4, 0x12 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x2C, 0xE6, 0xCC }, "RuckusWirele", "Ruckus Wireless" },
@@ -17212,6 +17283,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x2C, 0xEA, 0x7F }, "Dell", "Dell Inc." },
{ { 0x2C, 0xEA, 0xDC }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x2C, 0xEC, 0xF7 }, "SDMCTechnolo", "Shenzhen SDMC Technology CO.,Ltd." },
+ { { 0x2C, 0xED, 0x89 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0xED, 0xB0 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x2C, 0xED, 0xEB }, "AlpheusDigit", "Alpheus Digital Company Limited" },
{ { 0x2C, 0xEE, 0x26 }, "PetroleumGeo", "Petroleum Geo-Services" },
@@ -17276,6 +17348,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x21, 0x5B }, "OstarDisplay", "Shenzhen Ostar Display Electronic Co.,Ltd" },
{ { 0x30, 0x23, 0x03 }, "BelkinIntern", "Belkin International Inc." },
{ { 0x30, 0x23, 0x64 }, "NokiaShangha", "Nokia Shanghai Bell Co., Ltd." },
+ { { 0x30, 0x23, 0xBA }, "AcceleratedM", "Accelerated Memory Production Inc." },
{ { 0x30, 0x24, 0x32 }, "Intel", "Intel Corporate" },
{ { 0x30, 0x24, 0x78 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x30, 0x24, 0xA9 }, "HP", "HP Inc." },
@@ -17286,6 +17359,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x2D, 0xE8 }, "JDA", "JDA, LLC (JDA Systems)" },
{ { 0x30, 0x2F, 0x1E }, "Siemens", "Siemens Ag" },
{ { 0x30, 0x2F, 0xAC }, "ZhejiangHuaR", "Zhejiang HuaRay Technology Co.,Ltd" },
+ { { 0x30, 0x30, 0xD0 }, "TexasInstrum", "Texas Instruments" },
{ { 0x30, 0x30, 0xF9 }, "Espressif", "Espressif Inc." },
{ { 0x30, 0x31, 0x7D }, "Hosiden", "Hosiden Corporation" },
{ { 0x30, 0x31, 0x80 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
@@ -17313,7 +17387,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x3E, 0xAD }, "SonavoxCanad", "Sonavox Canada Inc" },
{ { 0x30, 0x3F, 0x5D }, "PtHanSungEle", "Pt Han Sung Electoronics Indonesia" },
{ { 0x30, 0x3F, 0x7B }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
- { { 0x30, 0x3F, 0xBB }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x30, 0x3F, 0xBB }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x30, 0x40, 0x74 }, "zte", "zte corporation" },
{ { 0x30, 0x41, 0x74 }, "AltecLansing", "Altec Lansing Llc" },
{ { 0x30, 0x42, 0x25 }, "BurgWächter", "Burg-Wächter Kg" },
@@ -17408,6 +17482,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x89, 0x4A }, "Intel", "Intel Corporate" },
{ { 0x30, 0x89, 0x76 }, "DalianLambaT", "Dalian Lamba Technology Co.,Ltd" },
{ { 0x30, 0x89, 0x99 }, "EastPower", "Guangdong East Power Co.," },
+ { { 0x30, 0x89, 0xA6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x30, 0x89, 0xD3 }, "HongkongUclo", "Hongkong Ucloudlink Network Technology Limited" },
{ { 0x30, 0x8A, 0xF7 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x30, 0x8B, 0xB2 }, "Cisco", "Cisco Systems, Inc" },
@@ -17432,6 +17507,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x30, 0x9B, 0xAD }, "BbkEducation", "Bbk Educational Electronics Corp.,Ltd." },
{ { 0x30, 0x9C, 0x23 }, "MicroStarINT", "Micro-Star INTL CO., LTD." },
{ { 0x30, 0x9E, 0x1D }, "Ohsung", "Ohsung" },
+ { { 0x30, 0x9E, 0x62 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x30, 0x9F, 0xFB }, "ArdomusNetwo", "Ardomus Networks Corporation" },
{ { 0x30, 0xA0, 0x23 }, "RockPath", "Rock Path S.R.L" },
{ { 0x30, 0xA1, 0x76 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -17579,6 +17655,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x0B, 0x40 }, "MiosElettron", "Mios Elettronica Srl" },
{ { 0x34, 0x0C, 0xED }, "Moduel", "Moduel AB" },
{ { 0x34, 0x0F, 0x66 }, "WebSensing", "Web Sensing LLC" },
+ { { 0x34, 0x10, 0x5D }, "TexasInstrum", "Texas Instruments" },
{ { 0x34, 0x10, 0xF4 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x34, 0x12, 0x90 }, "Treeview", "Treeview Co.,Ltd." },
{ { 0x34, 0x12, 0x98 }, "Apple", "Apple, Inc." },
@@ -17638,7 +17715,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x37, 0x94 }, "Hamee", "Hamee Corp." },
{ { 0x34, 0x38, 0xAF }, "InlabNetwork", "Inlab Networks GmbH" },
{ { 0x34, 0x38, 0xB7 }, "HUMAX", "HUMAX Co., Ltd." },
- { { 0x34, 0x3A, 0x20 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x34, 0x3A, 0x20 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x34, 0x3D, 0x98 }, "JinQianMaoTe", "JinQianMao Technology Co.,Ltd." },
{ { 0x34, 0x3D, 0xC4 }, "Buffalo", "Buffalo.Inc" },
{ { 0x34, 0x3E, 0xA4 }, "Ring", "Ring LLC" },
@@ -17663,6 +17740,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x4F, 0x3F }, "IOPowerTechn", "IO-Power Technology Co., Ltd." },
{ { 0x34, 0x4F, 0x5C }, "R&M", "R&M Ag" },
{ { 0x34, 0x4F, 0x69 }, "EkinopsSas", "Ekinops Sas" },
+ { { 0x34, 0x51, 0x6F }, "SkychersCrea", "Skychers Creations ShenZhen Limited" },
{ { 0x34, 0x51, 0x80 }, "TCLKingElect", "TCL King Electrical Appliances (Huizhou) Co., Ltd" },
{ { 0x34, 0x51, 0x84 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x34, 0x51, 0xAA }, "JidGlobal", "Jid Global" },
@@ -17686,6 +17764,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x5D, 0xA8 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x34, 0x5E, 0x08 }, "Roku", "Roku, Inc" },
{ { 0x34, 0x5E, 0xE7 }, "ChengFengErL", "Hangzhou ChengFengErLai Digial Technology Co.,Ltd." },
+ { { 0x34, 0x5F, 0x45 }, "Espressif", "Espressif Inc." },
{ { 0x34, 0x60, 0xF9 }, "TPLink", "TP-Link Corporation Limited" },
{ { 0x34, 0x61, 0x78 }, "Boeing", "The Boeing Company" },
{ { 0x34, 0x62, 0x88 }, "Cisco", "Cisco Systems, Inc" },
@@ -17705,6 +17784,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x6B, 0xD3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x34, 0x6C, 0x0F }, "PramodTeleco", "Pramod Telecom Pvt. Ltd" },
{ { 0x34, 0x6D, 0x9C }, "Carrier", "Carrier Corporation" },
+ { { 0x34, 0x6E, 0x68 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x34, 0x6E, 0x8A }, "Ecosense", "Ecosense" },
{ { 0x34, 0x6E, 0x9D }, "Ericsson", "Ericsson AB" },
{ { 0x34, 0x6F, 0x24 }, "AzureWaveTec", "AzureWave Technology Inc." },
@@ -17750,7 +17830,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x87, 0x3D }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x34, 0x88, 0x18 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x34, 0x88, 0x5D }, "LogitechFarE", "Logitech Far East" },
- { { 0x34, 0x8A, 0x12 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x34, 0x8A, 0x12 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x34, 0x8A, 0x7B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x34, 0x8A, 0xAE }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x34, 0x8B, 0x75 }, "LavaInternat", "Lava International(H.K) Limited" },
@@ -17762,6 +17842,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0x93, 0x42 }, "TTE", "TTE Corporation" },
{ { 0x34, 0x94, 0x54 }, "Espressif", "Espressif Inc." },
{ { 0x34, 0x95, 0xDB }, "Logitec", "Logitec Corporation" },
+ { { 0x34, 0x96, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x34, 0x96, 0x72 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x34, 0x96, 0x77 }, "zte", "zte corporation" },
{ { 0x34, 0x97, 0x6F }, "Rootech", "Rootech, Inc." },
@@ -17832,7 +17913,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xC1, 0x03 }, "HuamuTechnol", "Hangzhou Huamu Technology Co.,Ltd." },
{ { 0x34, 0xC3, 0xAC }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x34, 0xC3, 0xD2 }, "FnLinkTechno", "Fn-Link Technology Limited" },
- { { 0x34, 0xC5, 0x15 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x34, 0xC5, 0x15 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x34, 0xC5, 0xD0 }, "HagleitnerHy", "Hagleitner Hygiene International GmbH" },
{ { 0x34, 0xC6, 0x9A }, "Enecsys", "Enecsys Ltd" },
{ { 0x34, 0xC6, 0xDD }, "EzvizSoftwar", "Hangzhou Ezviz Software Co.,Ltd." },
@@ -17846,6 +17927,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xCB, 0x1A }, "ProcterGambl", "Procter & Gamble Company" },
{ { 0x34, 0xCC, 0x28 }, "Nexpring", "Nexpring Co. LTD.," },
{ { 0x34, 0xCD, 0x6D }, "CommSkyTechn", "CommSky Technologies" },
+ { { 0x34, 0xCD, 0xB0 }, "Espressif", "Espressif Inc." },
{ { 0x34, 0xCD, 0xBE }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x34, 0xCE, 0x00 }, "XIAOMIElectr", "XIAOMI Electronics,CO.,LTD" },
{ { 0x34, 0xCE, 0x69 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
@@ -17920,7 +18002,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x34, 0xFA, 0x9F }, "RuckusWirele", "Ruckus Wireless" },
{ { 0x34, 0xFC, 0x6F }, "Alcea", "Alcea" },
{ { 0x34, 0xFC, 0xA1 }, "Micronetunio", "Micronet union Technology(Chengdu)Co., Ltd." },
- { { 0x34, 0xFC, 0xB9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x34, 0xFC, 0xB9 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x34, 0xFC, 0xEF }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x34, 0xFD, 0x6A }, "Apple", "Apple, Inc." },
{ { 0x34, 0xFE, 0x1C }, "ChoungHwaTec", "Choung Hwa Tech Co.,Ltd" },
@@ -17946,6 +18028,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x0A, 0x4F }, "PrachiEnterp", "Prachi Enterprises" },
{ { 0x38, 0x0A, 0x94 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x0A, 0xAB }, "Formlabs", "Formlabs" },
+ { { 0x38, 0x0B, 0x26 }, "Mindray", "Mindray Co., Ltd." },
{ { 0x38, 0x0B, 0x3C }, "TexasInstrum", "Texas Instruments" },
{ { 0x38, 0x0B, 0x40 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x0D, 0xD4 }, "PrimaxElectr", "Primax Electronics Ltd." },
@@ -17955,7 +18038,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x0F, 0xAD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x38, 0x0F, 0xE4 }, "DedicatedNet", "Dedicated Network Partners Oy" },
{ { 0x38, 0x10, 0xD5 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
- { { 0x38, 0x10, 0xF0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x38, 0x10, 0xF0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x38, 0x12, 0x7B }, "CrenetLabs", "Crenet Labs Co., Ltd." },
{ { 0x38, 0x14, 0x1B }, "SecureLetter", "Secure Letter Inc." },
{ { 0x38, 0x14, 0x28 }, "Dell", "Dell Inc." },
@@ -17964,11 +18047,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x16, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x17, 0x30 }, "UlrichLipper", "Ulrich Lippert GmbH & Co KG" },
{ { 0x38, 0x17, 0x66 }, "Promzakaz", "Promzakaz Ltd." },
- { { 0x38, 0x17, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x38, 0x17, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x38, 0x17, 0xE1 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x38, 0x18, 0x4C }, "SonyHomeEnte", "Sony Home Entertainment&Sound Products Inc" },
{ { 0x38, 0x19, 0x2F }, "Nokia", "Nokia Corporation" },
{ { 0x38, 0x1A, 0x52 }, "SeikoEpson", "Seiko Epson Corporation" },
+ { { 0x38, 0x1B, 0x9E }, "QingdaoIntel", "Qingdao Intelligent&Precise Electronics Co.,Ltd." },
{ { 0x38, 0x1C, 0x1A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x38, 0x1C, 0x23 }, "HilanTechnol", "Hilan Technology CO.,LTD" },
{ { 0x38, 0x1C, 0x4A }, "SIMComWirele", "SIMCom Wireless Solutions Co.,Ltd." },
@@ -17980,7 +18064,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x20, 0x56 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x38, 0x20, 0xA8 }, "ColorTokens", "ColorTokens, Inc." },
{ { 0x38, 0x21, 0x87 }, "MideaGroup", "Midea Group Co., Ltd." },
- { { 0x38, 0x21, 0xC7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x38, 0x21, 0xC7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x38, 0x22, 0x9D }, "ADBBroadband", "ADB Broadband Italia" },
{ { 0x38, 0x22, 0xD6 }, "H3CTechnolog", "Hangzhou H3C Technologies Co., Limited" },
{ { 0x38, 0x22, 0xE2 }, "HP", "HP Inc." },
@@ -17989,12 +18073,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x26, 0x2B }, "UTranTechnol", "UTran Technology" },
{ { 0x38, 0x26, 0x56 }, "TCLKingElect", "TCL King Electrical Appliances(Huizhou)Co.,Ltd" },
{ { 0x38, 0x26, 0xCD }, "Andtek", "Andtek" },
+ { { 0x38, 0x28, 0x35 }, "zte", "zte corporation" },
{ { 0x38, 0x28, 0xEA }, "FujianNetcom", "Fujian Netcom Technology Co., LTD" },
{ { 0x38, 0x29, 0x5A }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x38, 0x29, 0xDD }, "ONvocal", "ONvocal Inc" },
{ { 0x38, 0x2A, 0x19 }, "TechnicaEngi", "Technica Engineering GmbH" },
{ { 0x38, 0x2B, 0x78 }, "EcoPlugsEnte", "Eco Plugs Enterprise Co., Ltd" },
{ { 0x38, 0x2C, 0x4A }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
+ { { 0x38, 0x2C, 0xE5 }, "TuyaSmart", "Tuya Smart Inc." },
{ { 0x38, 0x2D, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x2D, 0xE8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x38, 0x30, 0xF9 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
@@ -18084,6 +18170,8 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0x78, 0x62 }, "Sony", "Sony Corporation" },
{ { 0x38, 0x7A, 0x0E }, "Intel", "Intel Corporate" },
{ { 0x38, 0x7A, 0x3C }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
+ { { 0x38, 0x7A, 0xCC }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
+ { { 0x38, 0x7B, 0x01 }, "MiaoMingInte", "Shenzhen MiaoMing Intelligent Technology Co.,Ltd" },
{ { 0x38, 0x7B, 0x47 }, "AKELA", "AKELA, Inc." },
{ { 0x38, 0x7C, 0x76 }, "UniversalGlo", "Universal Global Scientific Industrial Co., Ltd." },
{ { 0x38, 0x80, 0xDF }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
@@ -18145,6 +18233,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xA9, 0x1C }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x38, 0xA9, 0x5F }, "Actifio", "Actifio Inc" },
{ { 0x38, 0xA9, 0xEA }, "HkDapuElectr", "Hk Dapu Electronic Technology Co., Limited" },
+ { { 0x38, 0xAA, 0x20 }, "zte", "zte corporation" },
{ { 0x38, 0xAA, 0x3C }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
{ { 0x38, 0xAB, 0x16 }, "NpoRtt", "Npo Rtt Llc" },
{ { 0x38, 0xAB, 0x41 }, "TexasInstrum", "Texas Instruments" },
@@ -18174,7 +18263,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xBC, 0x01 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x38, 0xBC, 0x1A }, "MEIZUTechnol", "MEIZU Technology Co., Ltd." },
{ { 0x38, 0xBC, 0x61 }, "Starkoff", "Starkoff Co., Ltd." },
- { { 0x38, 0xBD, 0x7A }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x38, 0xBD, 0x7A }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x38, 0xBE, 0xAB }, "AltoBeam", "AltoBeam (China) Inc." },
{ { 0x38, 0xBF, 0x2F }, "Espec", "Espec Corp." },
{ { 0x38, 0xBF, 0x33 }, "NECCASIOMobi", "NEC CASIO Mobile Communications" },
@@ -18205,6 +18294,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xD8, 0x2F }, "zte", "zte corporation" },
{ { 0x38, 0xD9, 0xA5 }, "MikotekInfor", "Mikotek Information Inc." },
{ { 0x38, 0xDB, 0xBB }, "SunbowTeleco", "Sunbow Telecom Co., Ltd." },
+ { { 0x38, 0xDE, 0x35 }, "GuangzhouYua", "Guangzhou Yuandianhe Communication Technology Co.,Ltd" },
{ { 0x38, 0xDE, 0x60 }, "Mohlenhoff", "Mohlenhoff GmbH" },
{ { 0x38, 0xDE, 0xAD }, "Intel", "Intel Corporate" },
{ { 0x38, 0xE0, 0x8E }, "MitsubishiEl", "Mitsubishi Electric Corporation" },
@@ -18235,6 +18325,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x38, 0xF0, 0xC8 }, "Logitech", "Logitech" },
{ { 0x38, 0xF1, 0x35 }, "SensorTecCan", "SensorTec-Canada" },
{ { 0x38, 0xF1, 0x8F }, "TechnicolorT", "Technicolor (China) Technology Co., Ltd." },
+ { { 0x38, 0xF1, 0x95 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x38, 0xF2, 0x3E }, "MicrosoftMob", "Microsoft Mobile Oy" },
{ { 0x38, 0xF3, 0x2E }, "Skullcandy", "Skullcandy" },
{ { 0x38, 0xF3, 0x3F }, "Tatsuno", "Tatsuno Corporation" },
@@ -18376,6 +18467,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x39, 0xC8 }, "Apple", "Apple, Inc." },
{ { 0x3C, 0x3A, 0x73 }, "Avaya", "Avaya Inc" },
{ { 0x3C, 0x3B, 0x4D }, "ToyoSeisakus", "Toyo Seisakusho Kaisha, Limited" },
+ { { 0x3C, 0x3B, 0x77 }, "Apple", "Apple, Inc." },
{ { 0x3C, 0x3B, 0x99 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x3C, 0x3F, 0x51 }, "2Crsi", "2Crsi" },
{ { 0x3C, 0x40, 0x4F }, "PisenElectro", "Guangdong Pisen Electronics Co.,Ltd" },
@@ -18490,6 +18582,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0x92, 0xDC }, "OctopodTechn", "Octopod Technology Co. Ltd." },
{ { 0x3C, 0x93, 0xF4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x3C, 0x94, 0xD5 }, "JuniperNetwo", "Juniper Networks" },
+ { { 0x3C, 0x94, 0xFD }, "Mist", "Mist Systems, Inc." },
{ { 0x3C, 0x95, 0x09 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x3C, 0x97, 0x0E }, "WistronInfoC", "Wistron InfoComm(Kunshan)Co.,Ltd." },
{ { 0x3C, 0x97, 0x7E }, "IPSTechnolog", "IPS Technology Limited" },
@@ -18522,6 +18615,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xA6, 0xF6 }, "Apple", "Apple, Inc." },
{ { 0x3C, 0xA7, 0x2B }, "MRVCommunica", "MRV Communications (Networks) LTD" },
{ { 0x3C, 0xA7, 0xAE }, "zte", "zte corporation" },
+ { { 0x3C, 0xA8, 0x0A }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x3C, 0xA8, 0x2A }, "HewlettPacka", "Hewlett Packard" },
{ { 0x3C, 0xA8, 0xED }, "smartlightte", "smart light technology" },
{ { 0x3C, 0xA9, 0x16 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -18547,6 +18641,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xBB, 0xFD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x3C, 0xBC, 0xD0 }, "zte", "zte corporation" },
{ { 0x3C, 0xBD, 0x3E }, "XiaomiElectr", "Beijing Xiaomi Electronics Co., Ltd." },
+ { { 0x3C, 0xBD, 0x69 }, "NokiaShangha", "Nokia Shanghai Bell Co., Ltd." },
{ { 0x3C, 0xBD, 0xC5 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x3C, 0xBD, 0xD8 }, "LgElectronic", "Lg Electronics Inc" },
{ { 0x3C, 0xBE, 0xE1 }, "Nikon", "Nikon Corporation" },
@@ -18612,6 +18707,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x3C, 0xEF, 0x42 }, "TCTmobile", "TCT mobile ltd" },
{ { 0x3C, 0xEF, 0x8C }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0x3C, 0xF0, 0x11 }, "Intel", "Intel Corporate" },
+ { { 0x3C, 0xF0, 0x83 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x3C, 0xF3, 0x92 }, "Virtualtek", "Virtualtek. Co. Ltd" },
{ { 0x3C, 0xF4, 0xF9 }, "ModaInnoChip", "Moda-InnoChips" },
{ { 0x3C, 0xF5, 0x2C }, "DSPECIALISTS", "DSPECIALISTS GmbH" },
@@ -18638,6 +18734,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x01, 0x07 }, "Arista", "Arista Corp" },
{ { 0x40, 0x01, 0x7A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x40, 0x01, 0xC6 }, "3ComEurope", "3Com Europe Ltd" },
+ { { 0x40, 0x03, 0x26 }, "NXPSemicondu", "NXP Semiconductor (Tianjin) LTD." },
{ { 0x40, 0x04, 0x0C }, "A&T", "A&T" },
{ { 0x40, 0x05, 0x89 }, "TMobileUSA", "T-Mobile, USA" },
{ { 0x40, 0x06, 0x34 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -18754,6 +18851,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x62, 0x34 }, "TelinkSemico", "Telink Semiconductor (Shanghai) Co., Ltd." },
{ { 0x40, 0x62, 0xB6 }, "Telesystemco", "Tele system communication" },
{ { 0x40, 0x62, 0xEA }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
+ { { 0x40, 0x62, 0xEE }, "ChiconyElect", "Chicony Electronics Co., Ltd." },
{ { 0x40, 0x64, 0xA4 }, "FurukawaElec", "The Furukawa Electric Co., Ltd" },
{ { 0x40, 0x64, 0xDC }, "Xspeedlnform", "X-speed lnformation Technology Co.,Ltd" },
{ { 0x40, 0x65, 0xA3 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
@@ -18787,6 +18885,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0x7F, 0xE0 }, "GloryStarTec", "Glory Star Technics (ShenZhen) Limited" },
{ { 0x40, 0x80, 0xE1 }, "FNLINKTECHNO", "FN-LINK TECHNOLOGY Ltd." },
{ { 0x40, 0x82, 0x56 }, "ContinentalA", "Continental Automotive GmbH" },
+ { { 0x40, 0x82, 0x7B }, "STMicroelect", "STMicroelectronics Rousset SAS" },
{ { 0x40, 0x83, 0x1D }, "Apple", "Apple, Inc." },
{ { 0x40, 0x83, 0xDE }, "ZebraTechnol", "Zebra Technologies Inc" },
{ { 0x40, 0x84, 0x32 }, "MicrochipTec", "Microchip Technology Inc." },
@@ -18876,11 +18975,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xB8, 0x37 }, "Sony", "Sony Corporation" },
{ { 0x40, 0xB8, 0x9A }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x40, 0xB8, 0xC2 }, "Osmozis", "Osmozis" },
- { { 0x40, 0xB9, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x40, 0xB9, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x40, 0xBA, 0x61 }, "ARIMACommuni", "ARIMA Communications Corp." },
{ { 0x40, 0xBB, 0x56 }, "TeraNXTGloba", "TeraNXT Global India Pvt Ltd." },
{ { 0x40, 0xBC, 0x60 }, "Apple", "Apple, Inc." },
- { { 0x40, 0xBC, 0x68 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
+ { { 0x40, 0xBC, 0x68 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x40, 0xBC, 0x73 }, "CronoplastSL", "Cronoplast S.L." },
{ { 0x40, 0xBC, 0x8B }, "itelio", "itelio GmbH" },
{ { 0x40, 0xBD, 0x32 }, "TexasInstrum", "Texas Instruments" },
@@ -18933,7 +19032,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x40, 0xE1, 0xE4 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0x40, 0xE2, 0x30 }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x40, 0xE3, 0x17 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
- { { 0x40, 0xE3, 0xD6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x40, 0xE3, 0xD6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x40, 0xE6, 0x4B }, "Apple", "Apple, Inc." },
{ { 0x40, 0xE7, 0x30 }, "DEYStorage", "DEY Storage Systems, Inc." },
{ { 0x40, 0xE7, 0x93 }, "SivitonTechn", "Shenzhen Siviton Technology Co.,Ltd" },
@@ -18990,11 +19089,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x10, 0xFE }, "HuizhouForyo", "Huizhou Foryou General Electronics Co., Ltd." },
{ { 0x44, 0x11, 0x02 }, "EDMIEurope", "EDMI Europe Ltd" },
{ { 0x44, 0x11, 0xC2 }, "TelegartnerK", "Telegartner Karl Gartner GmbH" },
- { { 0x44, 0x12, 0x44 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x44, 0x12, 0x44 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x44, 0x13, 0x19 }, "WkkTechnolog", "Wkk Technology Ltd." },
{ { 0x44, 0x13, 0xD0 }, "zte", "zte corporation" },
{ { 0x44, 0x14, 0x41 }, "AudioControl", "AudioControl Inc." },
{ { 0x44, 0x16, 0x22 }, "Microsoft", "Microsoft Corporation" },
+ { { 0x44, 0x16, 0x90 }, "WuxiRankeTec", "Wuxi Ranke Technology Co., Ltd." },
{ { 0x44, 0x16, 0xFA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x44, 0x17, 0x93 }, "Espressif", "Espressif Inc." },
{ { 0x44, 0x18, 0x47 }, "HunanScrownE", "Hunan Scrown Electronic Information Tech.Co.,Ltd" },
@@ -19021,6 +19121,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x23, 0xAA }, "Farmage", "Farmage Co., Ltd." },
{ { 0x44, 0x25, 0xBB }, "BambooEntert", "Bamboo Entertainment Corporation" },
{ { 0x44, 0x27, 0x2E }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0x44, 0x27, 0x45 }, "LGInnotek", "LG Innotek" },
{ { 0x44, 0x27, 0xF3 }, "70mai", "70mai Co.,Ltd." },
{ { 0x44, 0x28, 0xA3 }, "Jiangsufulia", "Jiangsu fulian Communication Technology Co., Ltd." },
{ { 0x44, 0x29, 0x1E }, "AltoBeam", "AltoBeam (China) Inc." },
@@ -19047,6 +19148,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x37, 0x6F }, "YoungElectri", "Young Electric Sign Co" },
{ { 0x44, 0x37, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x44, 0x38, 0x39 }, "CumulusNetwo", "Cumulus Networks, inc" },
+ { { 0x44, 0x38, 0xE8 }, "Intel", "Intel Corporate" },
{ { 0x44, 0x39, 0xC4 }, "UniversalGlo", "Universal Global Scientific Industrial Co., Ltd." },
{ { 0x44, 0x3B, 0x32 }, "Intelbras", "Intelbras" },
{ { 0x44, 0x3C, 0x88 }, "FicosaMarocI", "Ficosa Maroc International" },
@@ -19064,7 +19166,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x47, 0xCC }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x44, 0x48, 0x91 }, "HDMILicensin", "HDMI Licensing, LLC" },
{ { 0x44, 0x48, 0xB9 }, "MitraStarTec", "MitraStar Technology Corp." },
- { { 0x44, 0x48, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x44, 0x48, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x44, 0x48, 0xFF }, "QingdaoHaier", "Qingdao Haier Technology Co.,Ltd" },
{ { 0x44, 0x49, 0x63 }, "WovenByToyot", "Woven By Toyota U.S., Inc." },
{ { 0x44, 0x49, 0x88 }, "Intel", "Intel Corporate" },
@@ -19093,7 +19195,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x59, 0x9F }, "Criticare", "Criticare Systems, Inc" },
{ { 0x44, 0x59, 0xE3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x44, 0x5A, 0xDF }, "Mikami", "Mikami & Co., Ltd." },
- { { 0x44, 0x5B, 0xED }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x44, 0x5B, 0xED }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x44, 0x5C, 0xE9 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x44, 0x5D, 0x5E }, "CoolkitTechn", "SHENZHEN Coolkit Technology CO.,LTD" },
{ { 0x44, 0x5E, 0xCD }, "Razer", "Razer Inc" },
@@ -19129,6 +19231,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x70, 0x98 }, "MingHongTech", "Ming Hong Technology (Shen Zhen) Limited" },
{ { 0x44, 0x71, 0x47 }, "XiaomiElectr", "Beijing Xiaomi Electronics Co.,Ltd" },
{ { 0x44, 0x71, 0xB3 }, "LogitechFarE", "Logitech Far East" },
+ { { 0x44, 0x72, 0xAC }, "AltoBeam", "AltoBeam Inc." },
{ { 0x44, 0x73, 0xD6 }, "Logitech", "Logitech" },
{ { 0x44, 0x74, 0x6C }, "Sony", "Sony Corporation" },
{ { 0x44, 0x76, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -19147,6 +19250,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x85, 0x02 }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0x44, 0x86, 0xC1 }, "SiemensLowVo", "Siemens Low Voltage & Products" },
{ { 0x44, 0x87, 0x23 }, "HoyaService", "Hoya Service Corporation" },
+ { { 0x44, 0x87, 0x63 }, "FNLINKTECHNO", "FN-LINK TECHNOLOGY Ltd." },
{ { 0x44, 0x87, 0xDB }, "TymphanyAcou", "Tymphany Acoustic Technology (Huizhou) Co., Ltd." },
{ { 0x44, 0x87, 0xFC }, "ElitegroupCo", "Elitegroup Computer Systems Co.,Ltd." },
{ { 0x44, 0x88, 0x16 }, "Cisco", "Cisco Systems, Inc" },
@@ -19178,6 +19282,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0x9F, 0x7F }, "DataCoreSoft", "DataCore Software Corporation" },
{ { 0x44, 0xA0, 0x38 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x44, 0xA1, 0x91 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x44, 0xA3, 0xBB }, "Intel", "Intel Corporate" },
{ { 0x44, 0xA3, 0xC7 }, "zte", "zte corporation" },
{ { 0x44, 0xA4, 0x2D }, "TCTmobile", "TCT mobile ltd" },
{ { 0x44, 0xA4, 0x66 }, "GroupeLdlc", "Groupe Ldlc" },
@@ -19311,13 +19416,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x44, 0xFD, 0xA3 }, "Everysight", "Everysight LTD." },
{ { 0x44, 0xFE, 0x3B }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x44, 0xFF, 0xBA }, "zte", "zte corporation" },
- { { 0x48, 0x00, 0x20 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x48, 0x00, 0x20 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0x00, 0x31 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x00, 0x33 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x48, 0x00, 0x7D }, "DtsElektroni", "Dts Elektronik San. Tic. Ltd. Sti." },
{ { 0x48, 0x00, 0xB3 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x48, 0x01, 0xC5 }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x48, 0x02, 0x2A }, "BLinkElectro", "B-Link Electronic Limited" },
+ { { 0x48, 0x02, 0x34 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x02, 0x86 }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
{ { 0x48, 0x02, 0xAF }, "TelitCommuni", "Telit Communication s.p.a" },
{ { 0x48, 0x03, 0x62 }, "DesayElectro", "Desay Electronics(Huizhou)Co.,Ltd" },
@@ -19369,7 +19475,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x2C, 0xEA }, "MotorolaBusi", "Motorola Inc Business Light Radios" },
{ { 0x48, 0x2D, 0x63 }, "WavartsTechn", "Wavarts Technologies Co., Ltd" },
{ { 0x48, 0x2E, 0x72 }, "Cisco", "Cisco Systems, Inc" },
- { { 0x48, 0x2F, 0x6B }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x48, 0x2F, 0x6B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0x2F, 0xD7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x31, 0x33 }, "RobertBoschE", "Robert Bosch Elektronika Kft." },
{ { 0x48, 0x31, 0x77 }, "Nintendo", "Nintendo Co.,Ltd" },
@@ -19385,6 +19491,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x38, 0x71 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x48, 0x38, 0xB6 }, "AuhuiTaoyunT", "Auhui Taoyun Technology Co., Ltd" },
{ { 0x48, 0x39, 0x74 }, "ProwareTechn", "Proware Technologies Co., Ltd." },
+ { { 0x48, 0x3A, 0x02 }, "Fortinet", "Fortinet, Inc." },
{ { 0x48, 0x3B, 0x38 }, "Apple", "Apple, Inc." },
{ { 0x48, 0x3C, 0x0C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x48, 0x3D, 0x32 }, "SyscorContro", "Syscor Controls & Automation" },
@@ -19407,7 +19514,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x49, 0x82 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x48, 0x49, 0xC7 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x48, 0x4A, 0x30 }, "GeorgeRoboti", "George Robotics Limited" },
- { { 0x48, 0x4A, 0xE9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x48, 0x4A, 0xE9 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0x4B, 0xAA }, "Apple", "Apple, Inc." },
{ { 0x48, 0x4B, 0xD4 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x48, 0x4C, 0x29 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -19531,8 +19638,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0x9D, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x48, 0x9E, 0x9D }, "HuiZhouGaosh", "Hui Zhou Gaoshengda Technology Co.,LTD" },
{ { 0x48, 0x9E, 0xBD }, "HP", "HP Inc." },
- { { 0x48, 0x9E, 0xCB }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x48, 0x9E, 0xCB }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0xA0, 0xF8 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
+ { { 0x48, 0xA1, 0x70 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x48, 0xA1, 0x95 }, "Apple", "Apple, Inc." },
{ { 0x48, 0xA2, 0x2D }, "HuaxuchangTe", "Shenzhen Huaxuchang Telecom Technology Co.,Ltd" },
{ { 0x48, 0xA2, 0xB7 }, "Kodofon", "Kodofon JSC" },
@@ -19557,8 +19665,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0xB0, 0x2D }, "NVIDIA", "NVIDIA Corporation" },
{ { 0x48, 0xB2, 0x53 }, "Marketaxess", "Marketaxess Corporation" },
{ { 0x48, 0xB2, 0x5D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x48, 0xB3, 0x13 }, "Idesco", "Idesco Oy" },
{ { 0x48, 0xB4, 0x23 }, "AmazonTechno", "Amazon Technologies Inc." },
- { { 0x48, 0xB4, 0xC3 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x48, 0xB4, 0xC3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0xB5, 0xA7 }, "GloryHorseIn", "Glory Horse Industries Ltd." },
{ { 0x48, 0xB6, 0x20 }, "ROLI", "ROLI Ltd." },
{ { 0x48, 0xB8, 0xA3 }, "Apple", "Apple, Inc." },
@@ -19617,11 +19726,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x48, 0xDD, 0x0C }, "eero", "eero inc." },
{ { 0x48, 0xDD, 0x9D }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x48, 0xDF, 0x1C }, "NECFibreOpti", "Wuhan NEC Fibre Optic Communications industry Co. Ltd" },
- { { 0x48, 0xDF, 0x37 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x48, 0xDF, 0x37 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x48, 0xE1, 0x5C }, "Apple", "Apple, Inc." },
{ { 0x48, 0xE1, 0xAF }, "Vity", "Vity" },
{ { 0x48, 0xE1, 0xE9 }, "MerossTechno", "Chengdu Meross Technology Co., Ltd." },
{ { 0x48, 0xE2, 0x44 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0x48, 0xE2, 0xAD }, "HumaxNetwork", "Humax Networks" },
{ { 0x48, 0xE3, 0xC3 }, "JENOPTIKAdva", "JENOPTIK Advanced Systems GmbH" },
{ { 0x48, 0xE5, 0x33 }, "SunnovoInter", "Sunnovo International Limited" },
{ { 0x48, 0xE6, 0x95 }, "Insigma", "Insigma Inc" },
@@ -19726,6 +19836,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0x22, 0x58 }, "cozybit", "cozybit, Inc." },
{ { 0x4C, 0x22, 0xF3 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x4C, 0x23, 0x1A }, "ExtremeNetwo", "Extreme Networks Headquarters" },
+ { { 0x4C, 0x23, 0x38 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x4C, 0x24, 0x98 }, "TexasInstrum", "Texas Instruments" },
{ { 0x4C, 0x24, 0xCE }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0x4C, 0x25, 0x78 }, "Nokia", "Nokia Corporation" },
@@ -19867,6 +19978,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0x96, 0x14 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x4C, 0x96, 0x2D }, "Fresh", "Fresh AB" },
{ { 0x4C, 0x96, 0x8A }, "Wacom", "Wacom Co.,Ltd." },
+ { { 0x4C, 0x97, 0xA1 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x4C, 0x97, 0xCC }, "Apple", "Apple, Inc." },
{ { 0x4C, 0x98, 0xEF }, "Zeo", "Zeo" },
{ { 0x4C, 0x99, 0x92 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
@@ -19896,7 +20008,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0xAE, 0x13 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x4C, 0xAE, 0x1C }, "SaiNXTTechno", "SaiNXT Technologies LLP" },
{ { 0x4C, 0xAE, 0x31 }, "ShengHaiElec", "ShengHai Electronics (Shenzhen) Ltd" },
- { { 0x4C, 0xAE, 0xA3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x4C, 0xAE, 0xA3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x4C, 0xAE, 0xEC }, "Guangzhoulim", "Guangzhou limee technology co.,LTD" },
{ { 0x4C, 0xB0, 0x08 }, "GwelltimesTe", "Shenzhen Gwelltimes Technology Co.,Ltd" },
{ { 0x4C, 0xB0, 0x4A }, "Intel", "Intel Corporate" },
@@ -19954,11 +20066,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x4C, 0xD2, 0xFB }, "UnionmanTech", "Unionman Technology Co.,Ltd" },
{ { 0x4C, 0xD3, 0xAF }, "HMDGlobal", "HMD Global Oy" },
{ { 0x4C, 0xD5, 0x77 }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." },
- { { 0x4C, 0xD5, 0x87 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x4C, 0xD5, 0x87 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x4C, 0xD6, 0x29 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x4C, 0xD6, 0x37 }, "QsonoElectro", "Qsono Electronics Co., Ltd" },
{ { 0x4C, 0xD7, 0x17 }, "Dell", "Dell Inc." },
{ { 0x4C, 0xD7, 0xB6 }, "HelmerScient", "Helmer Scientific" },
+ { { 0x4C, 0xD7, 0xC8 }, "GuangzhouVSo", "Guangzhou V-Solution Telecommunication Technology Co.,Ltd." },
{ { 0x4C, 0xD9, 0x8F }, "Dell", "Dell Inc." },
{ { 0x4C, 0xD9, 0xC4 }, "MagnetiMarel", "Magneti Marelli Automotive Electronics (Guangzhou) Co. Ltd" },
{ { 0x4C, 0xDC, 0x0D }, "CoralTelecom", "Coral Telecom Limited" },
@@ -20018,6 +20131,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x05, 0x3D }, "CyWeeGroup", "CyWee Group Ltd" },
{ { 0x50, 0x06, 0x04 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x50, 0x06, 0xAB }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x50, 0x06, 0xF5 }, "Roku", "Roku, Inc" },
{ { 0x50, 0x07, 0xC3 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x50, 0x09, 0x59 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x50, 0x09, 0xE5 }, "Drimsys", "Drimsys,Inc" },
@@ -20054,6 +20168,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x23, 0xA2 }, "Apple", "Apple, Inc." },
{ { 0x50, 0x25, 0x2B }, "NethraImagin", "Nethra Imaging Incorporated" },
{ { 0x50, 0x26, 0x90 }, "Fujitsu", "Fujitsu Limited" },
+ { { 0x50, 0x26, 0xD2 }, "AVIRETrading", "AVIRE Trading Limited" },
{ { 0x50, 0x26, 0xEF }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0x50, 0x27, 0xA9 }, "eero", "eero inc." },
{ { 0x50, 0x27, 0xC7 }, "TECHNART", "TECHNART Co.,Ltd" },
@@ -20084,6 +20199,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x33, 0x8B }, "TexasInstrum", "Texas Instruments" },
{ { 0x50, 0x33, 0xF0 }, "YichenTechno", "Yichen (Shenzhen) Technology Co.Ltd" },
{ { 0x50, 0x38, 0x2F }, "ASEGroupChun", "ASE Group Chung-Li" },
+ { { 0x50, 0x38, 0xAB }, "Prove", "Prove" },
{ { 0x50, 0x39, 0x2F }, "IngramMicroS", "Ingram Micro Services" },
{ { 0x50, 0x39, 0x55 }, "CiscoSPVTG", "Cisco SPVTG" },
{ { 0x50, 0x3A, 0x7D }, "AlphaTechInt", "AlphaTech PLC Int’l Co., Ltd." },
@@ -20221,6 +20337,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0x8B, 0xB9 }, "TuyaSmart", "Tuya Smart Inc." },
{ { 0x50, 0x8C, 0x77 }, "DIRMEIERScha", "DIRMEIER Schanktechnik GmbH &Co KG" },
{ { 0x50, 0x8C, 0xB1 }, "TexasInstrum", "Texas Instruments" },
+ { { 0x50, 0x8C, 0xC9 }, "zte", "zte corporation" },
{ { 0x50, 0x8C, 0xF5 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x50, 0x8D, 0x6F }, "CHAHOO", "CHAHOO Limited" },
{ { 0x50, 0x8E, 0x49 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
@@ -20269,6 +20386,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0xAF, 0x4D }, "zte", "zte corporation" },
{ { 0x50, 0xAF, 0x73 }, "BitlandInfor", "Shenzhen Bitland Information Technology Co., Ltd." },
{ { 0x50, 0xB1, 0x27 }, "Apple", "Apple, Inc." },
+ { { 0x50, 0xB1, 0x40 }, "ElpromaElekt", "Elproma Elektronika Sp Z O O" },
{ { 0x50, 0xB3, 0x63 }, "DigitrondaAm", "Digitron da Amazonia S/A" },
{ { 0x50, 0xB3, 0xB4 }, "FuruilianEle", "Shenzhen Furuilian Electronic Co.,Ltd." },
{ { 0x50, 0xB6, 0x95 }, "MicropointBi", "Micropoint Biotechnologies,Inc." },
@@ -20327,7 +20445,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0xE2, 0x4E }, "zte", "zte corporation" },
{ { 0x50, 0xE4, 0x52 }, "ChipseaTechn", "Chipsea Technologies (Shenzhen) Corp." },
{ { 0x50, 0xE4, 0x78 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
- { { 0x50, 0xE4, 0xE0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x50, 0xE4, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x50, 0xE5, 0x38 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0x50, 0xE5, 0x49 }, "GigaByteTech", "Giga-Byte Technology Co.,Ltd." },
{ { 0x50, 0xE6, 0x36 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
@@ -20349,6 +20467,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x50, 0xF1, 0x4A }, "TexasInstrum", "Texas Instruments" },
{ { 0x50, 0xF2, 0x22 }, "EMMicroelect", "EM Microelectronic" },
{ { 0x50, 0xF2, 0x61 }, "PhotonSailTe", "Photon Sail Technologies" },
+ { { 0x50, 0xF2, 0x65 }, "Apple", "Apple, Inc." },
{ { 0x50, 0xF4, 0x3C }, "Leeo", "Leeo Inc" },
{ { 0x50, 0xF4, 0xEB }, "Apple", "Apple, Inc." },
{ { 0x50, 0xF5, 0x20 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -20438,6 +20557,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x2B, 0xDE }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x54, 0x2C, 0xEA }, "Protectron", "Protectron" },
{ { 0x54, 0x2F, 0x04 }, "LongcheerTec", "Shanghai Longcheer Technology Co., Ltd." },
+ { { 0x54, 0x2F, 0x2B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x54, 0x2F, 0x89 }, "EuclidLabora", "Euclid Laboratories, Inc." },
{ { 0x54, 0x2F, 0x8A }, "TellescomInd", "Tellescom Industria E Comercio Em Telecomunicacao" },
{ { 0x54, 0x31, 0x31 }, "RasterVision", "Raster Vision Ltd" },
@@ -20457,6 +20577,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x3A, 0xD6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x54, 0x3B, 0x30 }, "duagon", "duagon AG" },
{ { 0x54, 0x3D, 0x37 }, "RuckusWirele", "Ruckus Wireless" },
+ { { 0x54, 0x3D, 0x60 }, "Arcadyan", "Arcadyan Corporation" },
{ { 0x54, 0x3D, 0x92 }, "WirelessTekT", "Wireless-Tek Technology Limited" },
{ { 0x54, 0x3E, 0x64 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x54, 0x40, 0xAD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -20529,7 +20650,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x75, 0xD0 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x54, 0x76, 0xB2 }, "RaisecomTech", "Raisecom Technology CO., LTD" },
{ { 0x54, 0x77, 0x87 }, "EardaTechnol", "Earda Technologies co Ltd" },
- { { 0x54, 0x77, 0x8A }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x54, 0x77, 0x8A }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x54, 0x78, 0x1A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x54, 0x78, 0x85 }, "GiecDigital", "Shenzhen Giec Digital Co.,Ltd" },
{ { 0x54, 0x78, 0xC9 }, "AMPAKTechnol", "AMPAK Technology,Inc." },
@@ -20542,7 +20663,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0x7F, 0xA8 }, "TELCOsro", "TELCO systems, s.r.o." },
{ { 0x54, 0x7F, 0xBC }, "iodyne", "iodyne" },
{ { 0x54, 0x7F, 0xEE }, "Cisco", "Cisco Systems, Inc" },
- { { 0x54, 0x80, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x54, 0x80, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x54, 0x81, 0x2D }, "PAXComputerT", "PAX Computer Technology(Shenzhen) Ltd." },
{ { 0x54, 0x81, 0xAD }, "EagleResearc", "Eagle Research Corporation" },
{ { 0x54, 0x83, 0x3A }, "ZyxelCommuni", "Zyxel Communications Corporation" },
@@ -20637,7 +20758,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0xD4, 0x6F }, "CiscoSPVTG", "Cisco SPVTG" },
{ { 0x54, 0xD6, 0x0D }, "EzvizSoftwar", "Hangzhou Ezviz Software Co.,Ltd." },
{ { 0x54, 0xD7, 0x51 }, "Proximus", "Proximus" },
- { { 0x54, 0xD7, 0xE3 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x54, 0xD7, 0xE3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x54, 0xD9, 0xC6 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x54, 0xD9, 0xE4 }, "Brilliantts", "Brilliantts Co., Ltd" },
{ { 0x54, 0xDB, 0xA2 }, "Fibrain", "Fibrain" },
@@ -20678,7 +20799,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0xEF, 0x44 }, "LumiUnitedTe", "Lumi United Technology Co., Ltd" },
{ { 0x54, 0xEF, 0x92 }, "ElinkTechnol", "Shenzhen Elink Technology Co., LTD" },
{ { 0x54, 0xEF, 0xFE }, "FullpowerTec", "Fullpower Technologies, Inc." },
- { { 0x54, 0xF0, 0xB1 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x54, 0xF0, 0xB1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x54, 0xF1, 0x5F }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0x54, 0xF2, 0x01 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x54, 0xF2, 0x94 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -20692,10 +20813,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x54, 0xF8, 0x76 }, "Abb", "Abb Ag" },
{ { 0x54, 0xF8, 0xF0 }, "Tesla", "Tesla Inc" },
{ { 0x54, 0xFA, 0x3E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x54, 0xFA, 0x89 }, "MedtronicCRM", "Medtronic CRM" },
{ { 0x54, 0xFA, 0x96 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0x54, 0xFB, 0x58 }, "WISEWARELda", "WISEWARE, Lda" },
{ { 0x54, 0xFC, 0xF0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x54, 0xFD, 0xBF }, "ScheidtBachm", "Scheidt & Bachmann GmbH" },
+ { { 0x54, 0xFE, 0xEB }, "TexasInstrum", "Texas Instruments" },
{ { 0x54, 0xFF, 0x82 }, "DavitSolutio", "Davit Solution co." },
{ { 0x54, 0xFF, 0xCF }, "MopriaAllian", "Mopria Alliance" },
{ { 0x58, 0x00, 0x32 }, "Genexis", "Genexis B.V." },
@@ -20822,9 +20945,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0x73, 0xD8 }, "Apple", "Apple, Inc." },
{ { 0x58, 0x75, 0x21 }, "CJSCRTSoft", "CJSC RTSoft" },
{ { 0x58, 0x76, 0x75 }, "ECHOTechnolo", "Beijing ECHO Technologies Co.,Ltd" },
+ { { 0x58, 0x76, 0x9C }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0x58, 0x76, 0xAC }, "SernetTechno", "Sernet (Suzhou) Technologies Corporation" },
{ { 0x58, 0x76, 0xB3 }, "UbeeInteract", "Ubee Interactive Co., Limited" },
{ { 0x58, 0x76, 0xC5 }, "DigiIS", "Digi I'S Ltd" },
+ { { 0x58, 0x79, 0xE0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x58, 0x7A, 0x4D }, "Stonesoft", "Stonesoft Corporation" },
{ { 0x58, 0x7A, 0x62 }, "TexasInstrum", "Texas Instruments" },
{ { 0x58, 0x7A, 0x6A }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -20905,6 +21030,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xB3, 0x8F }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x58, 0xB3, 0xFC }, "RfLinkTechno", "Shenzhen Rf-Link Technology Co.,Ltd." },
{ { 0x58, 0xB4, 0x2D }, "YSTenTechnol", "YSTen Technology Co.,Ltd" },
+ { { 0x58, 0xB4, 0xBB }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x58, 0xB5, 0x68 }, "SecuritasDir", "Securitas Direct España, Sau" },
{ { 0x58, 0xB6, 0x23 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x58, 0xB6, 0x33 }, "RuckusWirele", "Ruckus Wireless" },
@@ -20939,6 +21065,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xD0, 0x61 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x58, 0xD0, 0x71 }, "BWBroadcast", "BW Broadcast" },
{ { 0x58, 0xD0, 0x8F }, "IEEE19041Wor", "IEEE 1904.1 Working Group" },
+ { { 0x58, 0xD1, 0x5A }, "TexasInstrum", "Texas Instruments" },
{ { 0x58, 0xD2, 0x37 }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x58, 0xD3, 0x12 }, "zte", "zte corporation" },
{ { 0x58, 0xD3, 0x49 }, "Apple", "Apple, Inc." },
@@ -20952,6 +21079,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xD8, 0xA7 }, "BirdHomeAuto", "Bird Home Automation GmbH" },
{ { 0x58, 0xD9, 0xC3 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x58, 0xD9, 0xD5 }, "TendaTechnol", "Tenda Technology Co.,Ltd.Dongguan branch" },
+ { { 0x58, 0xDB, 0x09 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x58, 0xDB, 0x15 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x58, 0xDB, 0x8D }, "Fast", "Fast Co., Ltd." },
{ { 0x58, 0xDC, 0x6D }, "ExceptionalI", "Exceptional Innovation, Inc." },
@@ -20992,6 +21120,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x58, 0xFC, 0x73 }, "ArriaLiveMed", "Arria Live Media, Inc." },
{ { 0x58, 0xFC, 0xC6 }, "Tozo", "Tozo Inc" },
{ { 0x58, 0xFC, 0xC8 }, "LenelS2Carri", "LenelS2 Carrier" },
+ { { 0x58, 0xFC, 0xE3 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x58, 0xFD, 0x20 }, "SystemhouseS", "Systemhouse Solutions AB" },
{ { 0x58, 0xFD, 0x5D }, "Xinyuntechno", "Hangzhou Xinyun technology Co., Ltd." },
{ { 0x58, 0xFD, 0xB1 }, "LGElectronic", "LG Electronics" },
@@ -21028,6 +21157,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x11, 0x93 }, "SealOne", "Seal One AG" },
{ { 0x5C, 0x14, 0x37 }, "Thyssenkrupp", "Thyssenkrupp Aufzugswerke GmbH" },
{ { 0x5C, 0x15, 0x15 }, "Advan", "Advan" },
+ { { 0x5C, 0x15, 0xC5 }, "SSCTechnolog", "Shenzhen SSC Technology Co. Ltd" },
{ { 0x5C, 0x15, 0xE1 }, "AidcTechnolo", "Aidc Technology (S) Pte Ltd" },
{ { 0x5C, 0x16, 0x48 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x5C, 0x16, 0x7D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -21047,6 +21177,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x22, 0xC4 }, "DaeEunEletro", "Dae Eun Eletronics Co., Ltd" },
{ { 0x5C, 0x22, 0xDA }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0x5C, 0x23, 0x16 }, "SquirrelsRes", "Squirrels Research Labs LLC" },
+ { { 0x5C, 0x24, 0x1F }, "QingdaoHaier", "Qingdao Haier Technology Co.,Ltd" },
{ { 0x5C, 0x24, 0x43 }, "OSungTelecom", "O-Sung Telecom Co., Ltd." },
{ { 0x5C, 0x24, 0x79 }, "Baltech", "Baltech AG" },
{ { 0x5C, 0x24, 0xE2 }, "SuzhouDenbom", "Suzhou Denbom Electronic S&T Co., Ltd" },
@@ -21074,6 +21205,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x35, 0x3B }, "CompalBroadb", "Compal Broadband Networks, Inc." },
{ { 0x5C, 0x35, 0x48 }, "AdityaInfote", "Aditya Infotech Ltd." },
{ { 0x5C, 0x35, 0xDA }, "There", "There Corporation Oy" },
+ { { 0x5C, 0x35, 0xFC }, "ActiontecEle", "Actiontec Electronics Inc." },
{ { 0x5C, 0x36, 0xB8 }, "TCLKingElect", "TCL King Electrical Appliances (Huizhou) Co., Ltd" },
{ { 0x5C, 0x38, 0xE0 }, "SuperElectro", "Shanghai Super Electronics Technology Co.,LTD" },
{ { 0x5C, 0x3A, 0x3D }, "zte", "zte corporation" },
@@ -21184,6 +21316,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0x89, 0x9A }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x5C, 0x89, 0xD4 }, "BannerElectr", "Beijing Banner Electric Co.,Ltd" },
{ { 0x5C, 0x8A, 0x38 }, "HewlettPacka", "Hewlett Packard" },
+ { { 0x5C, 0x8A, 0xAE }, "ChinaDragonT", "China Dragon Technology Limited" },
{ { 0x5C, 0x8B, 0x6B }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x5C, 0x8C, 0x30 }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0x5C, 0x8D, 0x2D }, "WellpayInfor", "Shanghai Wellpay Information Technology Co., Ltd" },
@@ -21213,7 +21346,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xA1, 0xE0 }, "EmbedWayTech", "EmbedWay Technologies" },
{ { 0x5C, 0xA3, 0x9D }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
{ { 0x5C, 0xA3, 0xEB }, "SKODADIGITAL", "SKODA DIGITAL s.r.o." },
- { { 0x5C, 0xA4, 0x7D }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x5C, 0xA4, 0x7D }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x5C, 0xA4, 0x8A }, "Cisco", "Cisco Systems, Inc" },
{ { 0x5C, 0xA4, 0xA4 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x5C, 0xA4, 0xF4 }, "zte", "zte corporation" },
@@ -21240,13 +21373,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xB3, 0x95 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x5C, 0xB3, 0xF6 }, "Human", "Human, Incorporated" },
{ { 0x5C, 0xB4, 0x3E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x5C, 0xB4, 0x7E }, "Intel", "Intel Corporate" },
{ { 0x5C, 0xB4, 0xE2 }, "InspurSoftwa", "Inspur Software Group Ltd." },
{ { 0x5C, 0xB5, 0x24 }, "Sony", "Sony Corporation" },
{ { 0x5C, 0xB5, 0x59 }, "CNEXLabs", "CNEX Labs" },
{ { 0x5C, 0xB6, 0xCC }, "NovaCommTech", "NovaComm Technologies Inc." },
{ { 0x5C, 0xB8, 0xCB }, "AllisCommuni", "Allis Communications" },
{ { 0x5C, 0xB9, 0x01 }, "HewlettPacka", "Hewlett Packard" },
- { { 0x5C, 0xBA, 0x2C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x5C, 0xBA, 0x2C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x5C, 0xBA, 0x37 }, "Microsoft", "Microsoft Corporation" },
{ { 0x5C, 0xBA, 0xEF }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." },
{ { 0x5C, 0xBB, 0xEE }, "zte", "zte corporation" },
@@ -21321,7 +21455,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x5C, 0xEA, 0x1D }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x5C, 0xEB, 0x4E }, "RSTAHLHMI", "R. STAHL HMI Systems GmbH" },
{ { 0x5C, 0xEB, 0x68 }, "CheerstarTec", "Cheerstar Technology Co., Ltd" },
- { { 0x5C, 0xED, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x5C, 0xED, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x5C, 0xED, 0xF4 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x5C, 0xEE, 0x79 }, "GlobalDigite", "Global Digitech Co LTD" },
{ { 0x5C, 0xF2, 0x07 }, "SpecoTechnol", "Speco Technologies" },
@@ -21409,7 +21543,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x24, 0xC1 }, "JiangsuZhong", "Jiangsu Zhongxun Electronic Technology Co., Ltd" },
{ { 0x60, 0x26, 0x02 }, "TexasInstrum", "Texas Instruments" },
{ { 0x60, 0x26, 0xAA }, "Cisco", "Cisco Systems, Inc" },
- { { 0x60, 0x26, 0xEF }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x60, 0x26, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x60, 0x27, 0x1C }, "VIDEOREHarti", "VIDEOR E. Hartig GmbH" },
{ { 0x60, 0x29, 0x2B }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x60, 0x29, 0xD5 }, "DAVOLINK", "DAVOLINK Inc." },
@@ -21420,6 +21554,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x2E, 0x20 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x60, 0x30, 0xD4 }, "Apple", "Apple, Inc." },
{ { 0x60, 0x31, 0x3B }, "SunnovoInter", "Sunnovo International Limited" },
+ { { 0x60, 0x31, 0x92 }, "OVTIndia", "OVT India pvt Ltd" },
{ { 0x60, 0x31, 0x97 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0x60, 0x32, 0xB1 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x60, 0x32, 0xF0 }, "Mplustechnol", "Mplus technology" },
@@ -21525,6 +21660,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0x7E, 0xC9 }, "Apple", "Apple, Inc." },
{ { 0x60, 0x7E, 0xCD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x60, 0x7E, 0xDD }, "MicrosoftMob", "Microsoft Mobile Oy" },
+ { { 0x60, 0x7F, 0xCB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x60, 0x81, 0x2B }, "AstronicsCus", "Astronics Custom Control Concepts" },
{ { 0x60, 0x81, 0xF9 }, "Helium", "Helium Systems, Inc" },
{ { 0x60, 0x82, 0x46 }, "Apple", "Apple, Inc." },
@@ -21644,6 +21780,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0xD3, 0x0A }, "Quatius", "Quatius Limited" },
{ { 0x60, 0xD4, 0xE9 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x60, 0xD5, 0x1B }, "Fujitsu", "Fujitsu Limited" },
+ { { 0x60, 0xD5, 0x61 }, "GlazeroTechn", "Shenzhen Glazero Technology Co., Ltd." },
{ { 0x60, 0xD7, 0x55 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x60, 0xD8, 0x19 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x60, 0xD8, 0x9C }, "HMDGlobal", "HMD Global Oy" },
@@ -21687,9 +21824,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x60, 0xF2, 0x81 }, "TranwoTechno", "Tranwo Technology Co., Ltd." },
{ { 0x60, 0xF2, 0xEF }, "VisionVeraIn", "VisionVera International Co., Ltd." },
{ { 0x60, 0xF3, 0xDA }, "LogicWay", "Logic Way GmbH" },
+ { { 0x60, 0xF4, 0x19 }, "eero", "eero inc." },
{ { 0x60, 0xF4, 0x3A }, "EdifierInter", "Edifier International" },
{ { 0x60, 0xF4, 0x45 }, "Apple", "Apple, Inc." },
{ { 0x60, 0xF4, 0x94 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0x60, 0xF5, 0x49 }, "Apple", "Apple, Inc." },
{ { 0x60, 0xF5, 0x9C }, "CRUDataport", "CRU-Dataport" },
{ { 0x60, 0xF6, 0x73 }, "Terumo", "Terumo Corporation" },
{ { 0x60, 0xF6, 0x77 }, "Intel", "Intel Corporate" },
@@ -21718,6 +21857,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x05, 0xBE }, "NewLightLed", "New Light Led" },
{ { 0x64, 0x05, 0xE4 }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0x64, 0x05, 0xE9 }, "WayOSTechnol", "Shenzhen WayOS Technology Crop., Ltd." },
+ { { 0x64, 0x07, 0x8C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x64, 0x07, 0xF6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x64, 0x09, 0x4C }, "SuperbeeWire", "Beijing Superbee Wireless Technology Co.,Ltd" },
{ { 0x64, 0x09, 0x80 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
@@ -21899,6 +22039,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x88, 0xFF }, "SichuanChang", "Sichuan Changhong Electric Ltd." },
{ { 0x64, 0x89, 0x9A }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x64, 0x89, 0xF1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x64, 0x8B, 0x9B }, "AlwaysOnTech", "Always On Tech Pte.Ltd." },
{ { 0x64, 0x8C, 0xBB }, "TexasInstrum", "Texas Instruments" },
{ { 0x64, 0x8D, 0x9E }, "IVTElectroni", "IVT Electronic Co.,Ltd" },
{ { 0x64, 0x8F, 0x3E }, "Cisco", "Cisco Systems, Inc" },
@@ -21918,6 +22059,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0x9B, 0x24 }, "VTechnology", "V Technology Co., Ltd." },
{ { 0x64, 0x9C, 0x81 }, "Qualcomm", "Qualcomm Inc." },
{ { 0x64, 0x9C, 0x8E }, "TexasInstrum", "Texas Instruments" },
+ { { 0x64, 0x9C, 0xF3 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x64, 0x9D, 0x99 }, "FsCom", "Fs Com Inc" },
{ { 0x64, 0x9E, 0x31 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x64, 0x9E, 0xF3 }, "Cisco", "Cisco Systems, Inc" },
@@ -22034,7 +22176,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x64, 0xE7, 0xD8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x64, 0xE8, 0x33 }, "Espressif", "Espressif Inc." },
{ { 0x64, 0xE8, 0x4F }, "SerialwayCom", "Serialway Communication Technology Co. Ltd" },
- { { 0x64, 0xE8, 0x81 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x64, 0xE8, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x64, 0xE8, 0x92 }, "MorioDenki", "Morio Denki Co., Ltd." },
{ { 0x64, 0xE8, 0xE6 }, "globalmoistu", "global moisture management system" },
{ { 0x64, 0xE9, 0x50 }, "Cisco", "Cisco Systems, Inc" },
@@ -22111,7 +22253,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0x27, 0x37 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x68, 0x27, 0x5F }, "zte", "zte corporation" },
{ { 0x68, 0x28, 0xBA }, "Dejai", "Dejai" },
- { { 0x68, 0x28, 0xCF }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x68, 0x28, 0xCF }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x68, 0x28, 0xF6 }, "VubiqNetwork", "Vubiq Networks, Inc." },
{ { 0x68, 0x29, 0xDC }, "FicosaElectr", "Ficosa Electronics S.L.U." },
{ { 0x68, 0x2C, 0x4F }, "leerang", "leerang corporation" },
@@ -22167,6 +22309,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0x52, 0x10 }, "MCSLogic", "MCS Logic" },
{ { 0x68, 0x52, 0xD6 }, "UGameTechnol", "UGame Technology Co.,Ltd" },
{ { 0x68, 0x53, 0x6C }, "SPnS", "SPnS Co.,Ltd" },
+ { { 0x68, 0x53, 0x77 }, "BouffaloLab", "Bouffalo Lab (Nanjing) Co., Ltd." },
{ { 0x68, 0x53, 0x88 }, "P&STechnolog", "P&S Technology" },
{ { 0x68, 0x53, 0x9D }, "EMMicroelect", "EM Microelectronic" },
{ { 0x68, 0x54, 0x5A }, "Intel", "Intel Corporate" },
@@ -22303,6 +22446,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0xB6, 0x91 }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0x68, 0xB6, 0xB3 }, "Espressif", "Espressif Inc." },
{ { 0x68, 0xB6, 0xFC }, "HitronTechno", "Hitron Technologies. Inc" },
+ { { 0x68, 0xB7, 0x6B }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x68, 0xB8, 0xBB }, "XiaomiElectr", "Beijing Xiaomi Electronics Co.,Ltd" },
{ { 0x68, 0xB8, 0xD9 }, "ActKDE", "Act KDE, Inc." },
{ { 0x68, 0xB9, 0x83 }, "bplus", "b-plus GmbH" },
@@ -22311,10 +22455,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x68, 0xBC, 0x0C }, "Cisco", "Cisco Systems, Inc" },
{ { 0x68, 0xBD, 0xAB }, "Cisco", "Cisco Systems, Inc" },
{ { 0x68, 0xBE, 0x49 }, "NebulaMatrix", "Nebula Matrix" },
+ { { 0x68, 0xBF, 0x6C }, "AristaNetwor", "Arista Networks" },
{ { 0x68, 0xBF, 0xC4 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x68, 0xC4, 0x4C }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x68, 0xC4, 0x4D }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x68, 0xC6, 0x3A }, "Espressif", "Espressif Inc." },
+ { { 0x68, 0xC6, 0xAC }, "Intel", "Intel Corporate" },
{ { 0x68, 0xC8, 0xEB }, "RockwellAuto", "Rockwell Automation" },
{ { 0x68, 0xC9, 0x0B }, "TexasInstrum", "Texas Instruments" },
{ { 0x68, 0xCA, 0x00 }, "Octopus", "Octopus Systems Limited" },
@@ -22440,6 +22586,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0x1A, 0x75 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x6C, 0x1B, 0x3F }, "MiraeSignal", "MiraeSignal Co., Ltd" },
{ { 0x6C, 0x1C, 0x71 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
+ { { 0x6C, 0x1D, 0x2C }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x6C, 0x1D, 0xEB }, "ublox", "u-blox AG" },
{ { 0x6C, 0x1E, 0x70 }, "GuangzhouYBD", "Guangzhou YBDS IT Co.,Ltd" },
{ { 0x6C, 0x1E, 0x90 }, "HansolTechni", "Hansol Technics Co., Ltd." },
@@ -22577,6 +22724,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0x7F, 0x0C }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x6C, 0x80, 0xAB }, "ifanr", "ifanr Inc" },
{ { 0x6C, 0x81, 0xFE }, "Mitsuba", "Mitsuba Corporation" },
+ { { 0x6C, 0x82, 0x43 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x6C, 0x83, 0x36 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x6C, 0x83, 0x38 }, "Ubihere", "Ubihere" },
{ { 0x6C, 0x83, 0x66 }, "NanjingSACPo", "Nanjing SAC Power Grid Automation Co., Ltd." },
@@ -22652,6 +22800,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xB2, 0xAE }, "Cisco", "Cisco Systems, Inc" },
{ { 0x6C, 0xB2, 0xFD }, "TexasInstrum", "Texas Instruments" },
{ { 0x6C, 0xB3, 0x11 }, "LianruiElect", "Shenzhen Lianrui Electronics Co.,Ltd" },
+ { { 0x6C, 0xB3, 0x4D }, "SharkNinjaOp", "SharkNinja Operating LLC" },
{ { 0x6C, 0xB3, 0x50 }, "Anhuicomhigh", "Anhui comhigher tech co.,ltd" },
{ { 0x6C, 0xB4, 0x56 }, "Espressif", "Espressif Inc." },
{ { 0x6C, 0xB4, 0xA7 }, "Landauer", "Landauer, Inc." },
@@ -22674,7 +22823,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xC3, 0x74 }, "TexasInstrum", "Texas Instruments" },
{ { 0x6C, 0xC3, 0xB2 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x6C, 0xC4, 0x1E }, "NEXSEC", "NEXSEC Incorporated" },
- { { 0x6C, 0xC4, 0x9F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x6C, 0xC4, 0x9F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x6C, 0xC4, 0xD5 }, "HMDGlobal", "HMD Global Oy" },
{ { 0x6C, 0xC6, 0x3B }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0x6C, 0xC7, 0xEC }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
@@ -22682,6 +22831,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xCD, 0xD6 }, "Netgear", "Netgear" },
{ { 0x6C, 0xCE, 0x44 }, "1More", "1More" },
{ { 0x6C, 0xCF, 0x39 }, "StarfiveTech", "Guangdong Starfive Technology Co., Ltd." },
+ { { 0x6C, 0xD0, 0x08 }, "zte", "zte corporation" },
{ { 0x6C, 0xD0, 0x32 }, "LGElectronic", "LG Electronics" },
{ { 0x6C, 0xD1, 0x46 }, "FRAMOS", "FRAMOS GmbH" },
{ { 0x6C, 0xD1, 0x99 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
@@ -22730,7 +22880,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xF1, 0x7E }, "ZhejiangUniv", "Zhejiang Uniview Technologies Co.,Ltd." },
{ { 0x6C, 0xF2, 0xD8 }, "Canon", "Canon Inc." },
{ { 0x6C, 0xF3, 0x73 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0x6C, 0xF3, 0x7F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x6C, 0xF3, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x6C, 0xF5, 0xE8 }, "Mooredoll", "Mooredoll Inc." },
{ { 0x6C, 0xF6, 0xDA }, "Intel", "Intel Corporate" },
{ { 0x6C, 0xF7, 0x12 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
@@ -22741,6 +22891,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x6C, 0xFA, 0x89 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x6C, 0xFA, 0xA7 }, "AMPAKTechnol", "AMPAK Technology, Inc." },
{ { 0x6C, 0xFB, 0xED }, "GNAudio", "GN Audio A/S" },
+ { { 0x6C, 0xFD, 0x22 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x6C, 0xFD, 0xB9 }, "ProwareTechn", "Proware Technologies Co Ltd." },
{ { 0x6C, 0xFE, 0x54 }, "Intel", "Intel Corporate" },
{ { 0x6C, 0xFF, 0xBE }, "MPBCommunica", "MPB Communications Inc." },
@@ -22756,6 +22907,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x05, 0x14 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x70, 0x06, 0xAC }, "Eastcompeace", "Eastcompeace Technology Co., Ltd" },
{ { 0x70, 0x07, 0x77 }, "OnTargetTech", "OnTarget Technologies, Inc" },
+ { { 0x70, 0x08, 0x94 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x70, 0x09, 0x71 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x70, 0x0B, 0x01 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x70, 0x0B, 0x4F }, "Cisco", "Cisco Systems, Inc" },
@@ -22764,7 +22916,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x0F, 0xC7 }, "IkinloopTech", "Shenzhen Ikinloop Technology Co.,Ltd." },
{ { 0x70, 0x0F, 0xEC }, "Poindus", "Poindus Systems Corp." },
{ { 0x70, 0x10, 0x5C }, "Cisco", "Cisco Systems, Inc" },
- { { 0x70, 0x10, 0x6F }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x70, 0x10, 0x6F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x70, 0x11, 0x0E }, "zte", "zte corporation" },
{ { 0x70, 0x11, 0x24 }, "Apple", "Apple, Inc." },
{ { 0x70, 0x11, 0x35 }, "Livesecu", "Livesecu co., Ltd" },
@@ -22822,11 +22974,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x32, 0x17 }, "Intel", "Intel Corporate" },
{ { 0x70, 0x32, 0xD5 }, "AthenaWirele", "Athena Wireless Communications Inc" },
{ { 0x70, 0x35, 0x09 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x70, 0x35, 0x7B }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x70, 0x36, 0xB2 }, "Focusai", "Focusai Corp" },
+ { { 0x70, 0x37, 0x8E }, "TianyiTeleco", "Tianyi Telecom Terminals Company Limited" },
{ { 0x70, 0x38, 0x11 }, "SiemensMobil", "Siemens Mobility Limited" },
{ { 0x70, 0x38, 0xB4 }, "LowTechSolut", "Low Tech Solutions" },
{ { 0x70, 0x38, 0xEE }, "Avaya", "Avaya Inc" },
- { { 0x70, 0x3A, 0x0E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x70, 0x3A, 0x0E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x70, 0x3A, 0x2D }, "VLinkTechnol", "Shenzhen V-Link Technology CO., LTD." },
{ { 0x70, 0x3A, 0x51 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x70, 0x3A, 0x73 }, "SundrayTechn", "Shenzhen Sundray Technologies Company Limited" },
@@ -22909,11 +23063,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0x66, 0xE1 }, "dntInnovatio", "dnt Innovation GmbH" },
{ { 0x70, 0x68, 0x79 }, "SaijoDenkiIn", "Saijo Denki International Co., Ltd." },
{ { 0x70, 0x69, 0x5A }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x70, 0x6A, 0xC9 }, "zte", "zte corporation" },
{ { 0x70, 0x6B, 0xB9 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0x6D, 0x15 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0x6D, 0xEC }, "Wifisoft", "Wifi-soft LLC" },
{ { 0x70, 0x6E, 0x6D }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0x70, 0x0D }, "Apple", "Apple, Inc." },
+ { { 0x70, 0x70, 0x13 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x70, 0x70, 0x4C }, "PurpleCommun", "Purple Communications, Inc" },
{ { 0x70, 0x70, 0x8B }, "Cisco", "Cisco Systems, Inc" },
{ { 0x70, 0x70, 0xAA }, "AmazonTechno", "Amazon Technologies Inc." },
@@ -23110,6 +23266,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0xF8, 0x2B }, "DWnetTechnol", "DWnet Technologies(Suzhou) Corporation" },
{ { 0x70, 0xF8, 0xAE }, "Microsoft", "Microsoft Corporation" },
{ { 0x70, 0xF9, 0x27 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0x70, 0xF9, 0x4A }, "Apple", "Apple, Inc." },
{ { 0x70, 0xF9, 0x6D }, "H3CTechnolog", "Hangzhou H3C Technologies Co., Limited" },
{ { 0x70, 0xFC, 0x8C }, "OneAccess", "OneAccess SA" },
{ { 0x70, 0xFC, 0x8F }, "FreeboxSas", "Freebox Sas" },
@@ -23118,6 +23275,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x70, 0xFD, 0x88 }, "NanjingJiaha", "Nanjing Jiahao Technology Co., Ltd." },
{ { 0x70, 0xFF, 0x5C }, "CheerzingCom", "Cheerzing Communication(Xiamen)Technology Co.,Ltd" },
{ { 0x70, 0xFF, 0x76 }, "TexasInstrum", "Texas Instruments" },
+ { { 0x74, 0x02, 0xE1 }, "TexasInstrum", "Texas Instruments" },
{ { 0x74, 0x03, 0xBD }, "Buffalo", "Buffalo.Inc" },
{ { 0x74, 0x04, 0x2B }, "LenovoMobile", "Lenovo Mobile Communication (Wuhan) Company Limited" },
{ { 0x74, 0x04, 0xF0 }, "MobiwireMobi", "Mobiwire Mobiles (NingBo) Co., LTD" },
@@ -23135,6 +23293,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x0E, 0xA4 }, "Apple", "Apple, Inc." },
{ { 0x74, 0x0E, 0xDB }, "Optowiz", "Optowiz Co., Ltd" },
{ { 0x74, 0x11, 0xB2 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0x74, 0x12, 0x13 }, "LinksysUSA", "Linksys USA, Inc" },
{ { 0x74, 0x12, 0xB3 }, "ChongqingFug", "Chongqing Fugui Electronics Co.,Ltd." },
{ { 0x74, 0x12, 0xBB }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x74, 0x13, 0xEA }, "Intel", "Intel Corporate" },
@@ -23152,6 +23311,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x20, 0x5F }, "ZhongruixinI", "Shenzhen Zhongruixin Intelligent Technology Co., Ltd." },
{ { 0x74, 0x22, 0xBB }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x74, 0x23, 0x44 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0x74, 0x23, 0x8D }, "zte", "zte corporation" },
{ { 0x74, 0x24, 0x9F }, "TIBRO", "TIBRO Corp." },
{ { 0x74, 0x25, 0x8A }, "H3CTechnolog", "Hangzhou H3C Technologies Co., Limited" },
{ { 0x74, 0x26, 0xAC }, "Cisco", "Cisco Systems, Inc" },
@@ -23160,12 +23320,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x27, 0x3C }, "ChangYangTec", "ChangYang Technology (Nanjing) Co., LTD" },
{ { 0x74, 0x27, 0xEA }, "ElitegroupCo", "Elitegroup Computer Systems Co.,Ltd." },
{ { 0x74, 0x28, 0x57 }, "MayfieldRobo", "Mayfield Robotics" },
+ { { 0x74, 0x29, 0x72 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x74, 0x29, 0xAF }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x74, 0x2A, 0x8A }, "worldeliteel", "shenzhen worldelite electronics co., LTD" },
{ { 0x74, 0x2B, 0x0F }, "Infinidat", "Infinidat Ltd." },
{ { 0x74, 0x2B, 0x62 }, "Fujitsu", "Fujitsu Limited" },
{ { 0x74, 0x2D, 0x0A }, "NorfolkElekt", "Norfolk Elektronik AG" },
{ { 0x74, 0x2E, 0x4F }, "StienenGroup", "Stienen Group" },
+ { { 0x74, 0x2E, 0xC1 }, "DixonElectro", "Dixon Electro Appliances Pvt Ltd" },
{ { 0x74, 0x2E, 0xDB }, "Perinet", "Perinet GmbH" },
{ { 0x74, 0x2E, 0xFC }, "DirectPacket", "DirectPacket Research, Inc," },
{ { 0x74, 0x2F, 0x68 }, "AzureWaveTec", "AzureWave Technology Inc." },
@@ -23343,7 +23505,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0x9D, 0x79 }, "Sercomm", "Sercomm Corporation." },
{ { 0x74, 0x9D, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x74, 0x9D, 0xDC }, "2Wire", "2Wire Inc" },
- { { 0x74, 0x9E, 0x75 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x74, 0x9E, 0x75 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x74, 0x9E, 0xA5 }, "Ohsung", "Ohsung" },
{ { 0x74, 0x9E, 0xAF }, "Apple", "Apple, Inc." },
{ { 0x74, 0x9E, 0xF5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -23395,6 +23557,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x74, 0xC6, 0x3B }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0x74, 0xC6, 0x4A }, "AGOS", "AGOS Co.,Ltd" },
{ { 0x74, 0xC7, 0x6E }, "RtkTechnolog", "Rtk-Technologies, Llc" },
+ { { 0x74, 0xC9, 0x0F }, "MicrochipTec", "Microchip Technologies Inc" },
{ { 0x74, 0xC9, 0x29 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0x74, 0xC9, 0x9A }, "Ericsson", "Ericsson AB" },
{ { 0x74, 0xC9, 0xA3 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -23500,6 +23663,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x06, 0xC9 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x78, 0x07, 0x1C }, "GreenEnergyO", "Green Energy Options Ltd" },
{ { 0x78, 0x07, 0x38 }, "ZUKElzab", "Z.U.K. Elzab S.A." },
+ { { 0x78, 0x07, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x78, 0x08, 0x4D }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x78, 0x0A, 0xC7 }, "BaofengTV", "Baofeng TV Co., Ltd." },
{ { 0x78, 0x0C, 0xB8 }, "Intel", "Intel Corporate" },
@@ -23541,6 +23705,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x25, 0x7A }, "LEOInnovatio", "LEO Innovation Lab" },
{ { 0x78, 0x25, 0xAD }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x78, 0x28, 0xCA }, "Sonos", "Sonos, Inc." },
+ { { 0x78, 0x29, 0xAD }, "NingboQixian", "Ningbo Qixiang Information Technology Co., Ltd" },
{ { 0x78, 0x29, 0xED }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x78, 0x2A, 0x79 }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0x78, 0x2A, 0xF8 }, "IethcomInfor", "Iethcom Information Technology Co., Ltd." },
@@ -23550,6 +23715,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x2C, 0x29 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x78, 0x2D, 0x7E }, "TRENDnet", "TRENDnet, Inc." },
{ { 0x78, 0x2D, 0xAD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x78, 0x2E, 0x03 }, "GeniusTechno", "Guangdong Genius Technology Co., Ltd." },
{ { 0x78, 0x2E, 0x56 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0x78, 0x2E, 0xEF }, "Nokia", "Nokia Corporation" },
{ { 0x78, 0x2F, 0x17 }, "Xlab", "Xlab Co.,Ltd" },
@@ -23561,6 +23727,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x31, 0xC1 }, "Apple", "Apple, Inc." },
{ { 0x78, 0x32, 0x1B }, "DLinkInterna", "D-Link International" },
{ { 0x78, 0x32, 0x4F }, "MillenniumGr", "Millennium Group, Inc." },
+ { { 0x78, 0x34, 0x09 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x78, 0x34, 0x86 }, "Nokia", "Nokia" },
{ { 0x78, 0x34, 0xFD }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x78, 0x35, 0xA0 }, "ZurnIndustri", "Zurn Industries LLC" },
@@ -23704,6 +23871,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0x97, 0xC3 }, "DingxinInfor", "Dingxin Information Technology Co.,Ltd" },
{ { 0x78, 0x98, 0xE8 }, "DLinkInterna", "D-Link International" },
{ { 0x78, 0x98, 0xFD }, "Q9Networks", "Q9 Networks Inc." },
+ { { 0x78, 0x99, 0x12 }, "FlyingvoiceT", "Flyingvoice (HongKong) Technologies Limited" },
{ { 0x78, 0x99, 0x5C }, "NationzTechn", "Nationz Technologies Inc" },
{ { 0x78, 0x99, 0x66 }, "MusilabElect", "Musilab Electronics (DongGuan)Co.,Ltd." },
{ { 0x78, 0x99, 0x8F }, "MedilineItal", "Mediline Italia Srl" },
@@ -23753,6 +23921,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0xB5, 0xD2 }, "EverTreasure", "Ever Treasure Industrial Limited" },
{ { 0x78, 0xB6, 0xC1 }, "AOBOTelecom", "AOBO Telecom Co.,Ltd" },
{ { 0x78, 0xB6, 0xEC }, "ScufGamingIn", "Scuf Gaming International LLC" },
+ { { 0x78, 0xB6, 0xFE }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x78, 0xB8, 0x1A }, "InterSales", "Inter Sales A/S" },
{ { 0x78, 0xB8, 0x4B }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x78, 0xB8, 0xD6 }, "ZebraTechnol", "Zebra Technologies Inc." },
@@ -23828,6 +23997,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0xE3, 0xB5 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x78, 0xE3, 0xDE }, "Apple", "Apple, Inc." },
{ { 0x78, 0xE4, 0x00 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0x78, 0xE6, 0x1C }, "HonorDevice", "Honor Device Co., Ltd." },
{ { 0x78, 0xE7, 0xD1 }, "HewlettPacka", "Hewlett Packard" },
{ { 0x78, 0xE8, 0xB6 }, "zte", "zte corporation" },
{ { 0x78, 0xE9, 0x80 }, "RainUs", "RainUs Co.,Ltd" },
@@ -23838,6 +24008,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x78, 0xEC, 0x22 }, "QihuiTelecom", "Shanghai Qihui Telecom Technology Co., LTD" },
{ { 0x78, 0xEC, 0x74 }, "KylandUSA", "Kyland-USA" },
{ { 0x78, 0xED, 0xBC }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
+ { { 0x78, 0xEE, 0x4C }, "Espressif", "Espressif Inc." },
{ { 0x78, 0xEF, 0x4C }, "Unetconverge", "Unetconvergence Co., Ltd." },
{ { 0x78, 0xF0, 0x9B }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x78, 0xF1, 0xC6 }, "Cisco", "Cisco Systems, Inc" },
@@ -23917,6 +24088,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x1C, 0xF1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x7C, 0x1D, 0xD9 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x7C, 0x1E, 0x06 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
+ { { 0x7C, 0x1E, 0x4A }, "FortuneMarke", "Fortune Marketing Private Limited" },
{ { 0x7C, 0x1E, 0x52 }, "Microsoft", "Microsoft" },
{ { 0x7C, 0x1E, 0xB3 }, "2NTELEKOMUNI", "2N TELEKOMUNIKACE a.s." },
{ { 0x7C, 0x20, 0x48 }, "KoamTac", "KoamTac" },
@@ -23940,6 +24112,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x2A, 0xCA }, "Apple", "Apple, Inc." },
{ { 0x7C, 0x2A, 0xDB }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x7C, 0x2B, 0xE1 }, "FerexElectri", "Shenzhen Ferex Electrical Co.,Ltd" },
+ { { 0x7C, 0x2C, 0x67 }, "Espressif", "Espressif Inc." },
{ { 0x7C, 0x2C, 0xF3 }, "SecureElectr", "Secure Electrans Ltd" },
{ { 0x7C, 0x2E, 0x0D }, "BlackmagicDe", "Blackmagic Design" },
{ { 0x7C, 0x2E, 0xBD }, "Google", "Google, Inc." },
@@ -23989,7 +24162,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x53, 0x4A }, "Metamako", "Metamako" },
{ { 0x7C, 0x55, 0xA7 }, "Kastle", "Kastle Systems" },
{ { 0x7C, 0x55, 0xE7 }, "YSI", "YSI, Inc." },
- { { 0x7C, 0x57, 0x3C }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x7C, 0x57, 0x3C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x7C, 0x57, 0x4E }, "COBI", "COBI GmbH" },
{ { 0x7C, 0x57, 0x58 }, "HP", "HP Inc." },
{ { 0x7C, 0x5A, 0x1C }, "Sophos", "Sophos Ltd" },
@@ -24009,6 +24182,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x66, 0xEF }, "HonHaiPrecis", "Hon Hai Precision IND.CO.,LTD" },
{ { 0x7C, 0x67, 0xA2 }, "Intel", "Intel Corporate" },
{ { 0x7C, 0x67, 0xAB }, "Roku", "Roku, Inc" },
+ { { 0x7C, 0x68, 0xB9 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x7C, 0x69, 0x6B }, "AtmosicTechn", "Atmosic Technologies" },
{ { 0x7C, 0x69, 0xF6 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x7C, 0x6A, 0x60 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
@@ -24033,6 +24207,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0x71, 0x76 }, "WuxiiDataTec", "Wuxi iData Technology Company Ltd." },
{ { 0x7C, 0x72, 0x6E }, "Ericsson", "Ericsson AB" },
{ { 0x7C, 0x72, 0xE4 }, "UnikeyTechno", "Unikey Technologies" },
+ { { 0x7C, 0x72, 0xE7 }, "TexasInstrum", "Texas Instruments" },
{ { 0x7C, 0x73, 0x8B }, "CocoonAlarm", "Cocoon Alarm Ltd" },
{ { 0x7C, 0x73, 0x98 }, "Espressif", "Espressif Inc." },
{ { 0x7C, 0x73, 0xEB }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -24094,8 +24269,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0xA2, 0x9B }, "DSignT", "D.SignT GmbH & Co. KG" },
{ { 0x7C, 0xA4, 0x49 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x7C, 0xA6, 0x1D }, "Mhl", "Mhl, Llc" },
- { { 0x7C, 0xA6, 0x2A }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x7C, 0xA6, 0x2A }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x7C, 0xA7, 0xB0 }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
+ { { 0x7C, 0xA8, 0xEC }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x7C, 0xA9, 0x6B }, "SyrotechNetw", "Syrotech Networks. Ltd." },
{ { 0x7C, 0xA9, 0x7D }, "Objenious", "Objenious" },
{ { 0x7C, 0xAB, 0x25 }, "MesmoTechnol", "Mesmo Technology Inc." },
@@ -24123,6 +24299,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0xB9, 0x4C }, "BouffaloLab", "Bouffalo Lab (Nanjing) Co., Ltd." },
{ { 0x7C, 0xB9, 0x60 }, "XChengteleco", "Shanghai X-Cheng telecom LTD" },
{ { 0x7C, 0xBA, 0xC0 }, "EVBox", "EVBox BV" },
+ { { 0x7C, 0xBA, 0xC6 }, "SolarManager", "Solar Manager AG" },
{ { 0x7C, 0xBB, 0x6F }, "CoscoElectro", "Cosco Electronics Co., Ltd." },
{ { 0x7C, 0xBB, 0x8A }, "Nintendo", "Nintendo Co., Ltd." },
{ { 0x7C, 0xBD, 0x06 }, "AEREFUsol", "AE REFUsol" },
@@ -24190,6 +24367,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x7C, 0xE2, 0xCA }, "JuniperNetwo", "Juniper Networks" },
{ { 0x7C, 0xE5, 0x24 }, "Quirky", "Quirky, Inc." },
{ { 0x7C, 0xE5, 0x6B }, "ESENOptoelec", "ESEN Optoelectronics Technology Co.,Ltd." },
+ { { 0x7C, 0xE7, 0x12 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x7C, 0xE8, 0x7F }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x7C, 0xE9, 0x7C }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x7C, 0xE9, 0xD3 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
@@ -24240,6 +24418,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x02, 0xDF }, "ORA", "ORA Inc." },
{ { 0x80, 0x03, 0x84 }, "RuckusWirele", "Ruckus Wireless" },
{ { 0x80, 0x04, 0x5F }, "Apple", "Apple, Inc." },
+ { { 0x80, 0x05, 0x18 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x80, 0x05, 0x3A }, "CHeKT", "CHeKT Inc." },
{ { 0x80, 0x05, 0x88 }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x80, 0x05, 0xDF }, "MontageTechn", "Montage Technology Group Limited" },
@@ -24294,7 +24473,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x2F, 0xDE }, "ZurichInstru", "Zurich Instruments AG" },
{ { 0x80, 0x30, 0x49 }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0x80, 0x30, 0xDC }, "TexasInstrum", "Texas Instruments" },
- { { 0x80, 0x30, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x80, 0x30, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x80, 0x31, 0xF0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x80, 0x32, 0x53 }, "Intel", "Intel Corporate" },
{ { 0x80, 0x34, 0x28 }, "MicrochipTec", "Microchip Technology Inc." },
@@ -24427,7 +24606,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x80, 0x8A, 0xF7 }, "Nanoleaf", "Nanoleaf" },
{ { 0x80, 0x8B, 0x5C }, "RunhuichengT", "Shenzhen Runhuicheng Technology Co., Ltd" },
{ { 0x80, 0x8C, 0x97 }, "KaonGroup", "Kaon Group Co., Ltd." },
- { { 0x80, 0x8D, 0xB7 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x80, 0x8D, 0xB7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x80, 0x8F, 0x1D }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x80, 0x8F, 0xE8 }, "Intelbras", "Intelbras" },
{ { 0x80, 0x91, 0x2A }, "LihRongelect", "Lih Rong electronic Enterprise Co., Ltd." },
@@ -24640,7 +24819,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x30, 0x95 }, "HonHaiPrecis", "Hon Hai Precision IND.CO.,LTD" },
{ { 0x84, 0x30, 0xCE }, "JaguarMicros", "Shenzhen Jaguar Microsystems Co., Ltd" },
{ { 0x84, 0x30, 0xE5 }, "SkyHawkeTech", "SkyHawke Technologies, LLC" },
- { { 0x84, 0x31, 0xA8 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
+ { { 0x84, 0x31, 0xA8 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x84, 0x32, 0x6F }, "GuangzhouAva", "Guangzhou Ava Electronics Technology Co.,Ltd" },
{ { 0x84, 0x32, 0xEA }, "AnhuiWanzten", "Anhui Wanzten P&T Co., Ltd" },
{ { 0x84, 0x33, 0xF2 }, "StellamoreTe", "Shenzhen Stellamore Technology Co.,Ltd" },
@@ -24697,6 +24876,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x62, 0xA6 }, "EuroCB", "EuroCB (Phils), Inc." },
{ { 0x84, 0x63, 0xD6 }, "Microsoft", "Microsoft Corporation" },
{ { 0x84, 0x64, 0xDD }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0x84, 0x65, 0x2B }, "Donaldson", "Donaldson Company" },
{ { 0x84, 0x65, 0x69 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x84, 0x68, 0x3E }, "Intel", "Intel Corporate" },
{ { 0x84, 0x68, 0x78 }, "Apple", "Apple, Inc." },
@@ -24720,6 +24900,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x76, 0x16 }, "Addatsro", "Addat s.r.o." },
{ { 0x84, 0x76, 0x37 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x84, 0x77, 0x78 }, "Cochlear", "Cochlear Limited" },
+ { { 0x84, 0x78, 0x48 }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0x84, 0x78, 0x8B }, "Apple", "Apple, Inc." },
{ { 0x84, 0x78, 0xAC }, "Cisco", "Cisco Systems, Inc" },
{ { 0x84, 0x79, 0x33 }, "profichip", "profichip GmbH" },
@@ -24763,6 +24944,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x8F, 0x69 }, "Dell", "Dell Inc." },
{ { 0x84, 0x90, 0x00 }, "Arnold&Richt", "Arnold&Richter Cine Technik GmbH & Co. Betriebs KG" },
{ { 0x84, 0x90, 0x0A }, "Arcadyan", "Arcadyan Corporation" },
+ { { 0x84, 0x92, 0xE5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x84, 0x93, 0x0C }, "InCoaxNetwor", "InCoax Networks Europe AB" },
{ { 0x84, 0x93, 0xA0 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x84, 0x93, 0xB2 }, "zte", "zte corporation" },
@@ -24779,6 +24961,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0x9D, 0x64 }, "SMC", "SMC Corporation" },
{ { 0x84, 0x9D, 0xC2 }, "MXCHIPInform", "Shanghai MXCHIP Information Technology Co., Ltd." },
{ { 0x84, 0x9D, 0xC5 }, "CenteraPhoto", "Centera Photonics Inc." },
+ { { 0x84, 0x9E, 0x56 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0x84, 0x9F, 0xB5 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x84, 0xA0, 0x6E }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x84, 0xA1, 0x34 }, "Apple", "Apple, Inc." },
@@ -24855,7 +25038,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0xD3, 0x52 }, "TonlyTechnol", "Tonly Technology Co. Ltd" },
{ { 0x84, 0xD3, 0xD5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x84, 0xD4, 0x12 }, "PaloAltoNetw", "Palo Alto Networks" },
- { { 0x84, 0xD4, 0x7E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x84, 0xD4, 0x7E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x84, 0xD4, 0xC8 }, "Widex", "Widex A/S" },
{ { 0x84, 0xD5, 0xA0 }, "Mcot", "Mcot Inc." },
{ { 0x84, 0xD6, 0x08 }, "WingtechMobi", "Wingtech Mobile Communications Co., Ltd." },
@@ -24901,6 +25084,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x84, 0xF1, 0x47 }, "Cisco", "Cisco Systems, Inc" },
{ { 0x84, 0xF1, 0x75 }, "JiangxiXunte", "Jiangxi Xunte Intelligent Terminal Co., Ltd" },
{ { 0x84, 0xF1, 0xD0 }, "EhoomeIotPri", "Ehoome Iot Private Limited" },
+ { { 0x84, 0xF2, 0xC1 }, "zte", "zte corporation" },
{ { 0x84, 0xF3, 0xEB }, "Espressif", "Espressif Inc." },
{ { 0x84, 0xF4, 0x4C }, "Internationa", "International Integrated Systems., Inc." },
{ { 0x84, 0xF4, 0x93 }, "OMSspolsro", "OMS spol. s.r.o." },
@@ -24940,6 +25124,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x12, 0x3D }, "SuzhouAquila", "Suzhou Aquila Solutions Inc." },
{ { 0x88, 0x12, 0x4E }, "Qualcomm", "Qualcomm Inc." },
{ { 0x88, 0x12, 0xAC }, "HunanFnLinkT", "Hunan Fn-Link Technology Limited" },
+ { { 0x88, 0x13, 0xBF }, "Espressif", "Espressif Inc." },
{ { 0x88, 0x14, 0x2B }, "ProtonicHoll", "Protonic Holland" },
{ { 0x88, 0x15, 0x44 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0x88, 0x15, 0xC5 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -24963,7 +25148,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x23, 0x8C }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x88, 0x23, 0xFE }, "TTTechComput", "TTTech Computertechnik AG" },
{ { 0x88, 0x25, 0x08 }, "MetaPlatform", "Meta Platforms Technologies, LLC" },
- { { 0x88, 0x25, 0x10 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x88, 0x25, 0x10 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x88, 0x25, 0x2C }, "ArcadyanTech", "Arcadyan Technology Corporation" },
{ { 0x88, 0x25, 0x93 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x88, 0x28, 0x7D }, "AltoBeam", "AltoBeam (China) Inc." },
@@ -24990,7 +25175,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x36, 0x5F }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x88, 0x36, 0x6C }, "EFMNetworks", "EFM Networks" },
{ { 0x88, 0x36, 0xCF }, "HuaweiDevice", "Huawei Device Co., Ltd." },
- { { 0x88, 0x3A, 0x30 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x88, 0x3A, 0x30 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x88, 0x3B, 0x8B }, "CheeringConn", "Cheering Connection Co. Ltd." },
{ { 0x88, 0x3C, 0x1C }, "Mercury", "Mercury Corporation" },
{ { 0x88, 0x3C, 0x93 }, "AlcatelLucen", "Alcatel-Lucent Enterprise" },
@@ -25102,6 +25287,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0x89, 0x64 }, "GSIElectroni", "GSI Electronics Inc." },
{ { 0x88, 0x8B, 0x5D }, "StorageAppli", "Storage Appliance Corporation" },
{ { 0x88, 0x8C, 0x19 }, "BradyAsiaPac", "Brady Corp Asia Pacific Ltd" },
+ { { 0x88, 0x8C, 0x1B }, "EMMicroelect", "EM Microelectronic" },
{ { 0x88, 0x8E, 0x68 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x88, 0x8E, 0x7F }, "Atop", "Atop Corporation" },
{ { 0x88, 0x8F, 0x10 }, "MaxInfiniteT", "Shenzhen Max Infinite Technology Co.,Ltd." },
@@ -25175,6 +25361,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xB8, 0xD0 }, "DongguanKopp", "Dongguan Koppo Electronic Co.,Ltd" },
{ { 0x88, 0xB9, 0x45 }, "Apple", "Apple, Inc." },
{ { 0x88, 0xBA, 0x7F }, "Qfiednet", "Qfiednet Co., Ltd." },
+ { { 0x88, 0xBC, 0xAC }, "ZebraTechnol", "Zebra Technologies Inc." },
{ { 0x88, 0xBC, 0xC1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x88, 0xBD, 0x45 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x88, 0xBD, 0x78 }, "FlaircommMic", "Flaircomm Microelectronics,Inc." },
@@ -25238,7 +25425,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x88, 0xE8, 0xF8 }, "YongTaiElect", "Yong Tai Electronic (Dongguan) Ltd." },
{ { 0x88, 0xE9, 0x0F }, "innomdlelab", "innomdlelab" },
{ { 0x88, 0xE9, 0x17 }, "Tamaggo", "Tamaggo" },
- { { 0x88, 0xE9, 0xA4 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x88, 0xE9, 0xA4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x88, 0xE9, 0xFE }, "Apple", "Apple, Inc." },
{ { 0x88, 0xED, 0x1C }, "CudoCommunic", "Cudo Communication Co., Ltd." },
{ { 0x88, 0xEF, 0x16 }, "ARRISGroup", "ARRIS Group, Inc." },
@@ -25284,6 +25471,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x07, 0x8C }, "FlowData", "Flow Data Inc" },
{ { 0x8C, 0x08, 0x79 }, "TexasInstrum", "Texas Instruments" },
{ { 0x8C, 0x08, 0x8B }, "RemoteSoluti", "Remote Solution" },
+ { { 0x8C, 0x08, 0xAA }, "Apple", "Apple, Inc." },
{ { 0x8C, 0x09, 0xF4 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x8C, 0x0C, 0x87 }, "Nokia", "Nokia" },
{ { 0x8C, 0x0C, 0x90 }, "RuckusWirele", "Ruckus Wireless" },
@@ -25298,6 +25486,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x0F, 0xFA }, "Hutec", "Hutec co.,ltd" },
{ { 0x8C, 0x10, 0xD4 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x8C, 0x11, 0xCB }, "ABUSSecurity", "ABUS Security-Center GmbH & Co. KG" },
+ { { 0x8C, 0x12, 0xC2 }, "GLBBJapan", "GLBB Japan" },
{ { 0x8C, 0x14, 0xB4 }, "zte", "zte corporation" },
{ { 0x8C, 0x15, 0x53 }, "MemblazeTech", "Beijing Memblaze Technology Co Ltd" },
{ { 0x8C, 0x15, 0xC7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -25428,7 +25617,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x77, 0x12 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x8C, 0x77, 0x16 }, "LongcheerTel", "Longcheer Telecommunication Limited" },
{ { 0x8C, 0x78, 0xD7 }, "FastTechnolo", "Shenzhen Fast Technologies Co.,Ltd" },
- { { 0x8C, 0x79, 0x09 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x8C, 0x79, 0x09 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x8C, 0x79, 0x67 }, "zte", "zte corporation" },
{ { 0x8C, 0x79, 0xF5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x8C, 0x7A, 0x00 }, "Nokia", "Nokia" },
@@ -25455,7 +25644,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0x84, 0x74 }, "Broadcom", "Broadcom Limited" },
{ { 0x8C, 0x85, 0x80 }, "SmartInnovat", "Smart Innovation LLC" },
{ { 0x8C, 0x85, 0x90 }, "Apple", "Apple, Inc." },
- { { 0x8C, 0x85, 0xC1 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x8C, 0x85, 0xC1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x8C, 0x85, 0xE6 }, "Cleondris", "Cleondris GmbH" },
{ { 0x8C, 0x86, 0x1E }, "Apple", "Apple, Inc." },
{ { 0x8C, 0x86, 0x2A }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -25522,6 +25711,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x8C, 0xC1, 0x21 }, "PanasonicAVC", "Panasonic Corporation AVC Networks Company" },
{ { 0x8C, 0xC5, 0x8C }, "ElskyTechnol", "ShenZhen Elsky Technology Co.,LTD" },
{ { 0x8C, 0xC5, 0xB4 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
+ { { 0x8C, 0xC5, 0xD0 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x8C, 0xC5, 0xE1 }, "KonkaTelecom", "ShenZhen Konka Telecommunication Technology Co.,Ltd" },
{ { 0x8C, 0xC6, 0x61 }, "Currentpower", "Current, powered by GE" },
{ { 0x8C, 0xC6, 0x81 }, "Intel", "Intel Corporate" },
@@ -25641,6 +25831,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x12, 0x34 }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0x90, 0x12, 0xA1 }, "We", "We Corporation Inc." },
{ { 0x90, 0x13, 0xDA }, "Athom", "Athom B.V." },
+ { { 0x90, 0x15, 0x06 }, "Espressif", "Espressif Inc." },
{ { 0x90, 0x16, 0xBA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0x17, 0x11 }, "HagenukMarin", "Hagenuk Marinekommunikation GmbH" },
{ { 0x90, 0x17, 0x3F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -25658,7 +25849,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x1E, 0xDD }, "GreatCompute", "Great Computer Corporation" },
{ { 0x90, 0x20, 0x3A }, "BYDPrecision", "BYD Precision Manufacture Co.,Ltd" },
{ { 0x90, 0x20, 0x83 }, "GeneralEngin", "General Engine Management Systems Ltd." },
- { { 0x90, 0x20, 0xC2 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x90, 0x20, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x90, 0x21, 0x06 }, "SkyUk", "Sky Uk Limited" },
{ { 0x90, 0x21, 0x2E }, "ApptionLabs", "Apption Labs Ltd" },
{ { 0x90, 0x21, 0x55 }, "HTC", "HTC Corporation" },
@@ -25671,6 +25862,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x27, 0x59 }, "NanjingJiaha", "Nanjing Jiahao Technology Co., Ltd." },
{ { 0x90, 0x27, 0x78 }, "OpenInfrastr", "Open Infrastructure" },
{ { 0x90, 0x27, 0xE4 }, "Apple", "Apple, Inc." },
+ { { 0x90, 0x28, 0xF6 }, "YangtzeOptic", "Wuhan Yangtze Optical Technology CO.,Ltd." },
{ { 0x90, 0x2A, 0xEE }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x90, 0x2B, 0x34 }, "GigaByteTech", "Giga-Byte Technology Co.,Ltd." },
{ { 0x90, 0x2B, 0xD2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -25719,7 +25911,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x48, 0x9A }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x90, 0x49, 0x92 }, "YSTenTechnol", "YSTen Technology Co.,Ltd" },
{ { 0x90, 0x49, 0xFA }, "Intel", "Intel Corporate" },
- { { 0x90, 0x4C, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x90, 0x4C, 0x81 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x90, 0x4C, 0xE5 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x90, 0x4D, 0x4A }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0x90, 0x4D, 0xC3 }, "Flonidan", "Flonidan A/S" },
@@ -25730,6 +25922,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x51, 0x3F }, "ElettronicaS", "Elettronica Santerno SpA" },
{ { 0x90, 0x52, 0xBF }, "SichuanTiany", "Sichuan Tianyi Comheart Telecom Co.,LTD" },
{ { 0x90, 0x54, 0x46 }, "TesElectroni", "Tes Electronic Solutions" },
+ { { 0x90, 0x54, 0xB7 }, "EltexEnterpr", "Eltex Enterprise LTD" },
{ { 0x90, 0x55, 0xAE }, "EricssonEABR", "Ericsson, EAB/RWI/K" },
{ { 0x90, 0x55, 0xDE }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x90, 0x56, 0x07 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
@@ -25745,6 +25938,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x5D, 0x7C }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x90, 0x5E, 0x44 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0x5F, 0x2E }, "TCTmobile", "TCT mobile ltd" },
+ { { 0x90, 0x5F, 0x7A }, "Apple", "Apple, Inc." },
{ { 0x90, 0x5F, 0x8D }, "modas", "modas GmbH" },
{ { 0x90, 0x60, 0xF1 }, "Apple", "Apple, Inc." },
{ { 0x90, 0x61, 0x0C }, "FidaInternat", "Fida International (S) Pte Ltd" },
@@ -25843,6 +26037,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0x9D, 0x7D }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x90, 0x9D, 0xE0 }, "NewlandDesig", "Newland Design + Assoc. Inc." },
{ { 0x90, 0x9E, 0x24 }, "ekeybiometri", "ekey biometric systems gmbh" },
+ { { 0x90, 0x9F, 0x22 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0x90, 0x9F, 0x33 }, "EFMNetworks", "EFM Networks" },
{ { 0x90, 0x9F, 0x43 }, "AccutronInst", "Accutron Instruments Inc." },
{ { 0x90, 0xA0, 0xBE }, "Cannice", "Cannice" },
@@ -25882,6 +26077,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xB6, 0x7A }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0x90, 0xB6, 0x85 }, "WeifangGoert", "Weifang Goertek Electronics Co.,Ltd" },
{ { 0x90, 0xB6, 0x86 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
+ { { 0x90, 0xB7, 0x90 }, "Apple", "Apple, Inc." },
{ { 0x90, 0xB8, 0x32 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0x90, 0xB8, 0xD0 }, "Joyent", "Joyent, Inc." },
{ { 0x90, 0xB8, 0xE0 }, "YanrayTechno", "Shenzhen Yanray Technology Co.,Ltd" },
@@ -25898,6 +26094,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xC7, 0xD8 }, "zte", "zte corporation" },
{ { 0x90, 0xC9, 0x9B }, "TesorionNede", "Tesorion Nederland B.V." },
{ { 0x90, 0xCA, 0xFA }, "Google", "Google, Inc." },
+ { { 0x90, 0xCB, 0xA3 }, "TecnoMobile", "Tecno Mobile Limited" },
{ { 0x90, 0xCC, 0x24 }, "Synaptics", "Synaptics, Inc" },
{ { 0x90, 0xCC, 0x7A }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x90, 0xCC, 0xDF }, "Intel", "Intel Corporate" },
@@ -25909,6 +26106,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xCF, 0x7D }, "QingdaoHisen", "Qingdao Hisense Communications Co.,Ltd." },
{ { 0x90, 0xD0, 0x92 }, "HUMAX", "HUMAX Co., Ltd." },
{ { 0x90, 0xD1, 0x1B }, "PalomarMedic", "Palomar Medical Technologies" },
+ { { 0x90, 0xD3, 0xCF }, "AskeyCompute", "Askey Computer Corp" },
{ { 0x90, 0xD4, 0x32 }, "zte", "zte corporation" },
{ { 0x90, 0xD4, 0x73 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x90, 0xD6, 0x89 }, "HuahaoFangzh", "Huahao Fangzhou Technology Co.,Ltd" },
@@ -25967,6 +26165,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x90, 0xF9, 0x70 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0xF9, 0xB7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x90, 0xFB, 0x5B }, "Avaya", "Avaya Inc" },
+ { { 0x90, 0xFB, 0x5D }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0x90, 0xFB, 0xA6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x90, 0xFD, 0x61 }, "Apple", "Apple, Inc." },
{ { 0x90, 0xFD, 0x73 }, "zte", "zte corporation" },
@@ -25999,9 +26198,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x0C, 0x6D }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x94, 0x0C, 0x98 }, "Apple", "Apple, Inc." },
{ { 0x94, 0x0D, 0x2D }, "UniversalEle", "Universal Electronics, Inc." },
+ { { 0x94, 0x0D, 0x4B }, "Cisco", "Cisco Systems, Inc" },
{ { 0x94, 0x0E, 0x6B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x0E, 0xE7 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x10, 0x3E }, "BelkinIntern", "Belkin International Inc." },
+ { { 0x94, 0x10, 0x42 }, "FanoxElectro", "Fanox Electronic S.L." },
{ { 0x94, 0x11, 0xDA }, "ITFFröschl", "ITF Fröschl GmbH" },
{ { 0x94, 0x14, 0x57 }, "SundrayTechn", "Shenzhen Sundray Technologies Company Limited" },
{ { 0x94, 0x14, 0x7A }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
@@ -26010,7 +26211,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x16, 0x73 }, "PointCore", "Point Core SARL" },
{ { 0x94, 0x17, 0x00 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0x94, 0x18, 0x65 }, "Netgear", "Netgear" },
- { { 0x94, 0x18, 0x82 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x94, 0x18, 0x82 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0x19, 0x3A }, "Elvaco", "Elvaco AB" },
{ { 0x94, 0x1C, 0x56 }, "ActiontecEle", "Actiontec Electronics, Inc" },
{ { 0x94, 0x1D, 0x1C }, "TLabWest", "TLab West Systems AB" },
@@ -26020,6 +26221,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x21, 0x57 }, "Apple", "Apple, Inc." },
{ { 0x94, 0x21, 0x97 }, "StalmartTech", "Stalmart Technology Limited" },
{ { 0x94, 0x23, 0x6E }, "JunlanElectr", "Shenzhen Junlan Electronic Ltd" },
+ { { 0x94, 0x24, 0x53 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x24, 0xB8 }, "GreeElectric", "Gree Electric Appliances, Inc. Of Zhuhai" },
{ { 0x94, 0x24, 0xE1 }, "AlcatelLucen", "Alcatel-Lucent Enterprise" },
{ { 0x94, 0x25, 0x33 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -26060,10 +26262,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x3E, 0xE4 }, "WiSATechnolo", "WiSA Technologies Inc" },
{ { 0x94, 0x3F, 0x0C }, "Genexis", "Genexis B.V." },
{ { 0x94, 0x3F, 0xBB }, "JSCRPCIstokn", "JSC RPC Istok named after Shokin" },
- { { 0x94, 0x3F, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x94, 0x3F, 0xC2 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0x3F, 0xD6 }, "Apple", "Apple, Inc." },
{ { 0x94, 0x40, 0xA2 }, "AnywaveCommu", "Anywave Communication Technologies, Inc." },
- { { 0x94, 0x40, 0xC9 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x94, 0x40, 0xC9 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0x40, 0xF3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0x41, 0xC1 }, "MiniCam", "Mini-Cam Limited" },
{ { 0x94, 0x43, 0x4D }, "Ciena", "Ciena Corporation" },
@@ -26079,6 +26281,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x4B, 0xF8 }, "Tozo", "Tozo Inc" },
{ { 0x94, 0x4E, 0x5B }, "UbeeInteract", "Ubee Interactive Co., Limited" },
{ { 0x94, 0x4F, 0x4C }, "SoundUnited", "Sound United LLC" },
+ { { 0x94, 0x50, 0x44 }, "TexasInstrum", "Texas Instruments" },
{ { 0x94, 0x50, 0x47 }, "Rechnerbetri", "Rechnerbetriebsgruppe" },
{ { 0x94, 0x50, 0x89 }, "SimonsVossTe", "SimonsVoss Technologies GmbH" },
{ { 0x94, 0x51, 0x03 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -26099,13 +26302,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0x5C, 0x9A }, "Apple", "Apple, Inc." },
{ { 0x94, 0x5F, 0x34 }, "RenesasElect", "Renesas Electronics (Penang) Sdn. Bhd." },
{ { 0x94, 0x60, 0x10 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
- { { 0x94, 0x60, 0xD5 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x94, 0x60, 0xD5 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0x61, 0x1E }, "WataElectron", "Wata Electronics Co.,Ltd." },
{ { 0x94, 0x61, 0x24 }, "Pason", "Pason Systems" },
{ { 0x94, 0x62, 0x69 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x94, 0x63, 0x72 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x94, 0x63, 0xD1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0x94, 0x64, 0x24 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x94, 0x64, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0x65, 0x2D }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x94, 0x65, 0x9C }, "Intel", "Intel Corporate" },
{ { 0x94, 0x66, 0xE7 }, "WOMEngineeri", "WOM Engineering" },
@@ -26182,6 +26385,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xA4, 0xB5 }, "MitsubishiEl", "Mitsubishi Electric Corporation" },
{ { 0x94, 0xA4, 0xF9 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0xA6, 0x7E }, "Netgear", "Netgear" },
+ { { 0x94, 0xA6, 0xD8 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x94, 0xA7, 0xB7 }, "zte", "zte corporation" },
{ { 0x94, 0xA7, 0xBC }, "BodyMedia", "BodyMedia, Inc." },
{ { 0x94, 0xA9, 0xA8 }, "TexasInstrum", "Texas Instruments" },
@@ -26201,8 +26405,9 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xB2, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x94, 0xB2, 0xCC }, "Pioneer", "Pioneer Corporation" },
{ { 0x94, 0xB3, 0x4F }, "RuckusWirele", "Ruckus Wireless" },
- { { 0x94, 0xB4, 0x0F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x94, 0xB4, 0x0F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0xB5, 0x55 }, "Espressif", "Espressif Inc." },
+ { { 0x94, 0xB6, 0x09 }, "Intel", "Intel Corporate" },
{ { 0x94, 0xB8, 0x19 }, "Nokia", "Nokia" },
{ { 0x94, 0xB8, 0x6D }, "Intel", "Intel Corporate" },
{ { 0x94, 0xB8, 0xC5 }, "RuggedCom", "RuggedCom Inc." },
@@ -26235,6 +26440,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xC9, 0x60 }, "ZhongshanB&T", "Zhongshan B&T technology.co.,ltd" },
{ { 0x94, 0xC9, 0x62 }, "Teseq", "Teseq AG" },
{ { 0x94, 0xCA, 0x0F }, "HoneywellAna", "Honeywell Analytics" },
+ { { 0x94, 0xCA, 0x9A }, "PaulVahle", "Paul Vahle GmbH & Co. KG" },
{ { 0x94, 0xCB, 0xCD }, "zte", "zte corporation" },
{ { 0x94, 0xCC, 0xB9 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0x94, 0xCD, 0xAC }, "Creowave", "Creowave Oy" },
@@ -26302,7 +26508,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x94, 0xEB, 0xCD }, "BlackBerryRT", "BlackBerry RTS" },
{ { 0x94, 0xEE, 0x9F }, "HMDGlobal", "HMD Global Oy" },
{ { 0x94, 0xEF, 0x49 }, "BDRThermeaGr", "BDR Thermea Group B.V" },
- { { 0x94, 0xF1, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x94, 0xF1, 0x28 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x94, 0xF1, 0x9E }, "HuizhouMaoro", "Huizhou Maorong Intelligent Technology Co.,Ltd" },
{ { 0x94, 0xF2, 0x78 }, "ElmaElectron", "Elma Electronic" },
{ { 0x94, 0xF2, 0xBB }, "ValeoVision", "Valeo Vision Systems" },
@@ -26343,6 +26549,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x06, 0x3C }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x98, 0x07, 0x09 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x98, 0x07, 0x2D }, "TexasInstrum", "Texas Instruments" },
+ { { 0x98, 0x08, 0x02 }, "Orbis", "Orbis Bv" },
{ { 0x98, 0x09, 0xCF }, "OnePlusTechn", "OnePlus Technology (Shenzhen) Co., Ltd" },
{ { 0x98, 0x0C, 0x33 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0x98, 0x0C, 0x82 }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
@@ -26359,6 +26566,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x12, 0x23 }, "TarmocNetwor", "Tarmoc Network LTD" },
{ { 0x98, 0x13, 0x33 }, "zte", "zte corporation" },
{ { 0x98, 0x14, 0xD2 }, "Avonic", "Avonic" },
+ { { 0x98, 0x16, 0xCD }, "leapio", "leapio" },
{ { 0x98, 0x16, 0xEC }, "ICIntracom", "IC Intracom" },
{ { 0x98, 0x17, 0xF1 }, "zte", "zte corporation" },
{ { 0x98, 0x18, 0x88 }, "CiscoMeraki", "Cisco Meraki" },
@@ -26366,6 +26574,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x1A, 0x35 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x98, 0x1B, 0xB5 }, "ASSAABLOYKor", "ASSA ABLOY Korea Co., Ltd iRevo" },
{ { 0x98, 0x1C, 0x42 }, "Laiier", "Laiier" },
+ { { 0x98, 0x1D, 0xAC }, "CyvizAS", "Cyviz AS" },
{ { 0x98, 0x1D, 0xFA }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0x98, 0x1E, 0x0F }, "JeelanShangh", "Jeelan (Shanghai Jeelan Technology Information Inc" },
{ { 0x98, 0x1E, 0x19 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
@@ -26383,6 +26592,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x29, 0x1D }, "JaguardeMexi", "Jaguar de Mexico, SA de CV" },
{ { 0x98, 0x29, 0x3F }, "FujianStartC", "Fujian Start Computer Equipment Co.,Ltd" },
{ { 0x98, 0x29, 0xA6 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
+ { { 0x98, 0x2A, 0x0A }, "Intelbras", "Intelbras" },
{ { 0x98, 0x2C, 0xBC }, "Intel", "Intel Corporate" },
{ { 0x98, 0x2C, 0xBE }, "2Wire", "2Wire Inc" },
{ { 0x98, 0x2D, 0x56 }, "ResolutionAu", "Resolution Audio" },
@@ -26407,7 +26617,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x3B, 0x67 }, "DWnetTechnol", "DWnet Technologies(Suzhou) Corporation" },
{ { 0x98, 0x3B, 0x8F }, "Intel", "Intel Corporate" },
{ { 0x98, 0x3F, 0x60 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0x98, 0x3F, 0x66 }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
+ { { 0x98, 0x3F, 0x66 }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
{ { 0x98, 0x3F, 0x9F }, "ChinaSSJNetw", "China SSJ (Suzhou) Network Technology Inc." },
{ { 0x98, 0x40, 0xBB }, "Dell", "Dell Inc." },
{ { 0x98, 0x41, 0x5C }, "Nintendo", "Nintendo Co.,Ltd" },
@@ -26495,6 +26705,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x86, 0x8B }, "JuniperNetwo", "Juniper Networks" },
{ { 0x98, 0x86, 0xB1 }, "Flyaudio", "Flyaudio corporation (China)" },
{ { 0x98, 0x87, 0x44 }, "WuxiHongdaSc", "Wuxi Hongda Science and Technology Co.,LTD" },
+ { { 0x98, 0x87, 0x4C }, "ServercomPri", "Servercom (India) Private Limited" },
{ { 0x98, 0x87, 0x6C }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x98, 0x89, 0x24 }, "TexasInstrum", "Texas Instruments" },
{ { 0x98, 0x89, 0xED }, "AnademInform", "Anadem Information Inc." },
@@ -26509,7 +26720,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0x8E, 0x79 }, "Qudelix", "Qudelix, Inc." },
{ { 0x98, 0x8E, 0xD4 }, "ItelMobile", "Itel Mobile Limited" },
{ { 0x98, 0x8E, 0xDD }, "TEConnectivi", "TE Connectivity Limerick" },
- { { 0x98, 0x8F, 0x00 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x98, 0x8F, 0x00 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x98, 0x90, 0x80 }, "LinkpowerNet", "Linkpower Network System Inc Ltd." },
{ { 0x98, 0x90, 0x96 }, "Dell", "Dell Inc." },
{ { 0x98, 0x93, 0xCC }, "LgElectronic", "Lg Electronics Inc" },
@@ -26546,6 +26757,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0xB3, 0x79 }, "Apple", "Apple, Inc." },
{ { 0x98, 0xB3, 0xEF }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0x98, 0xB6, 0xE9 }, "Nintendo", "Nintendo Co.,Ltd" },
+ { { 0x98, 0xB7, 0x1E }, "Infinixmobil", "Infinix mobility limited" },
{ { 0x98, 0xB7, 0x85 }, "10GtekTransc", "Shenzhen 10Gtek Transceivers Co., Limited" },
{ { 0x98, 0xB8, 0xBA }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0x98, 0xB8, 0xBC }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -26626,7 +26838,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x98, 0xF1, 0x81 }, "NewH3CTechno", "New H3C Technologies Co., Ltd" },
{ { 0x98, 0xF1, 0x99 }, "NECPlatforms", "NEC Platforms, Ltd." },
{ { 0x98, 0xF2, 0x17 }, "CastlenetTec", "Castlenet Technology Inc." },
- { { 0x98, 0xF2, 0xB3 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x98, 0xF2, 0xB3 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x98, 0xF4, 0x28 }, "zte", "zte corporation" },
{ { 0x98, 0xF4, 0x87 }, "TexasInstrum", "Texas Instruments" },
{ { 0x98, 0xF4, 0xAB }, "Espressif", "Espressif Inc." },
@@ -26675,13 +26887,15 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x0C, 0xDF }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0x9C, 0x0D, 0xAC }, "TymphanyHK", "Tymphany HK Limited" },
{ { 0x9C, 0x0E, 0x4A }, "VastkingElec", "Shenzhen Vastking Electronic Co.,Ltd." },
+ { { 0x9C, 0x0E, 0x51 }, "SchneiderEle", "Schneider Electric" },
+ { { 0x9C, 0x12, 0x21 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0x9C, 0x13, 0xAB }, "ChansonWater", "Chanson Water Co., Ltd." },
{ { 0x9C, 0x14, 0x63 }, "ZhejiangDahu", "Zhejiang Dahua Technology Co., Ltd." },
{ { 0x9C, 0x14, 0x65 }, "EdataElektro", "Edata Elektronik San. ve Tic. A.Ş." },
{ { 0x9C, 0x18, 0x74 }, "NokiaDanmark", "Nokia Danmark A/S" },
{ { 0x9C, 0x19, 0xC2 }, "DongguanLies", "Dongguan Liesheng Electronic Co., Ltd." },
{ { 0x9C, 0x1A, 0x25 }, "Apple", "Apple, Inc." },
- { { 0x9C, 0x1C, 0x12 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x9C, 0x1C, 0x12 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x9C, 0x1C, 0x37 }, "AltoBeam", "AltoBeam (China) Inc." },
{ { 0x9C, 0x1C, 0x6D }, "HefeiDatangS", "Hefei Datang Storage Technology Co.,Ltd" },
{ { 0x9C, 0x1D, 0x36 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -26728,7 +26942,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x35, 0x83 }, "NiproDiagnos", "Nipro Diagnostics, Inc" },
{ { 0x9C, 0x35, 0xEB }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x36, 0xF8 }, "HyundaiKefic", "Hyundai Kefico" },
- { { 0x9C, 0x37, 0x08 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0x9C, 0x37, 0x08 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x9C, 0x37, 0xCB }, "SonyInteract", "Sony Interactive Entertainment Inc." },
{ { 0x9C, 0x37, 0xF4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0x9C, 0x38, 0x18 }, "Cisco", "Cisco Systems, Inc" },
@@ -26850,7 +27064,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0x8B, 0xA0 }, "Apple", "Apple, Inc." },
{ { 0x9C, 0x8B, 0xF1 }, "Warehouse", "The Warehouse Limited" },
{ { 0x9C, 0x8C, 0x6E }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0x9C, 0x8C, 0xD8 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x9C, 0x8C, 0xD8 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x9C, 0x8D, 0x1A }, "INTEGprocess", "INTEG process group inc" },
{ { 0x9C, 0x8D, 0x7C }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0x9C, 0x8D, 0xD3 }, "LeontonTechn", "Leonton Technologies" },
@@ -26895,6 +27109,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xA5, 0xC0 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0x9C, 0xA6, 0x15 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0x9C, 0xA6, 0x9D }, "WhaleyTechno", "Whaley Technology Co.Ltd" },
+ { { 0x9C, 0xA6, 0xD8 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0x9C, 0xA9, 0xE4 }, "zte", "zte corporation" },
{ { 0x9C, 0xAA, 0x1B }, "Microsoft", "Microsoft Corporation" },
{ { 0x9C, 0xAC, 0x6D }, "UniversalEle", "Universal Electronics, Inc." },
@@ -26938,6 +27153,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xCB, 0xF7 }, "CloudStarTec", "Cloud Star Technology Co., Ltd." },
{ { 0x9C, 0xCC, 0x83 }, "JuniperNetwo", "Juniper Networks" },
{ { 0x9C, 0xCD, 0x82 }, "ChengUeiPrec", "Cheng Uei Precision Industry Co.,Ltd" },
+ { { 0x9C, 0xCE, 0x88 }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0x9C, 0xD1, 0xD0 }, "GuangzhouRon", "Guangzhou Ronsuo Electronic Technology Co.,Ltd" },
{ { 0x9C, 0xD2, 0x1E }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0x9C, 0xD2, 0x4B }, "zte", "zte corporation" },
@@ -26952,10 +27168,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0x9C, 0xD9, 0x17 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0x9C, 0xD9, 0xCB }, "LesiraManufa", "Lesira Manufacturing Pty Ltd" },
{ { 0x9C, 0xDA, 0x3E }, "Intel", "Intel Corporate" },
+ { { 0x9C, 0xDA, 0xA8 }, "Apple", "Apple, Inc." },
{ { 0x9C, 0xDB, 0x07 }, "Yellowtec", "Yellowtec GmbH" },
{ { 0x9C, 0xDB, 0xAF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0x9C, 0xDB, 0xCB }, "FunshionOnli", "Wuhan Funshion Online Technologies Co.,Ltd" },
- { { 0x9C, 0xDC, 0x71 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0x9C, 0xDB, 0xCB }, "FunshionOnli", "Funshion Online Technologies Co.,Ltd" },
+ { { 0x9C, 0xDC, 0x71 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0x9C, 0xDD, 0x1F }, "IntelligentS", "Intelligent Steward Co.,Ltd" },
{ { 0x9C, 0xDE, 0x4D }, "MLvision", "ML vision Co.,LTD" },
{ { 0x9C, 0xDF, 0x03 }, "HarmanBecker", "Harman/Becker Automotive Systems GmbH" },
@@ -27020,9 +27237,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x09, 0x2E }, "zte", "zte corporation" },
{ { 0xA0, 0x09, 0x4C }, "CenturyLink", "CenturyLink" },
{ { 0xA0, 0x09, 0xED }, "Avaya", "Avaya Inc" },
+ { { 0xA0, 0x0A, 0x9A }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA0, 0x0A, 0xBF }, "WiesonTechno", "Wieson Technologies Co., Ltd." },
{ { 0xA0, 0x0B, 0xBA }, "SamsungElect", "Samsung Electro Mechanics Co., Ltd." },
{ { 0xA0, 0x0C, 0xA1 }, "SKTBSKiT", "SKTB SKiT" },
+ { { 0xA0, 0x0E, 0x98 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA0, 0x0F, 0x37 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA0, 0x10, 0x77 }, "zte", "zte corporation" },
{ { 0xA0, 0x10, 0x81 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -27053,7 +27272,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x23, 0x1B }, "TeleCompR&D", "TeleComp R&D Corp." },
{ { 0xA0, 0x23, 0x9F }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA0, 0x24, 0xF9 }, "InnovaTestTe", "Chengdu InnovaTest Technology Co., Ltd" },
- { { 0xA0, 0x25, 0xD7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA0, 0x25, 0xD7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA0, 0x27, 0xB6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA0, 0x28, 0xED }, "HMDGlobal", "HMD Global Oy" },
{ { 0xA0, 0x29, 0x19 }, "Dell", "Dell Inc." },
@@ -27104,6 +27323,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x44, 0xB7 }, "PAXComputerT", "PAX Computer Technology(Shenzhen) Ltd." },
{ { 0xA0, 0x44, 0xF3 }, "RafaelMicro", "RafaelMicro" },
{ { 0xA0, 0x46, 0x5A }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
+ { { 0xA0, 0x47, 0x9B }, "PROCITEC", "PROCITEC GmbH" },
{ { 0xA0, 0x47, 0xD7 }, "BestITWorld", "Best IT World (India) Pvt Ltd" },
{ { 0xA0, 0x48, 0x1C }, "HewlettPacka", "Hewlett Packard" },
{ { 0xA0, 0x4A, 0x5E }, "Microsoft", "Microsoft Corporation" },
@@ -27114,6 +27334,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x4E, 0x04 }, "Nokia", "Nokia Corporation" },
{ { 0xA0, 0x4E, 0xA7 }, "Apple", "Apple, Inc." },
{ { 0xA0, 0x4E, 0xCF }, "Apple", "Apple, Inc." },
+ { { 0xA0, 0x4F, 0x52 }, "Intel", "Intel Corporate" },
{ { 0xA0, 0x4F, 0x85 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0xA0, 0x4F, 0xD4 }, "ADBBroadband", "ADB Broadband Italia" },
{ { 0xA0, 0x51, 0x0B }, "Intel", "Intel Corporate" },
@@ -27144,6 +27365,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x66, 0x36 }, "IntracomTele", "Intracom SA Telecom Solutions" },
{ { 0xA0, 0x67, 0x20 }, "ChinaDragonT", "China Dragon Technology Limited" },
{ { 0xA0, 0x67, 0xBE }, "Sicon", "Sicon srl" },
+ { { 0xA0, 0x67, 0xD6 }, "Nokia", "Nokia" },
{ { 0xA0, 0x68, 0x1C }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0xA0, 0x68, 0x7E }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xA0, 0x69, 0x74 }, "HonorDevice", "Honor Device Co., Ltd." },
@@ -27223,7 +27445,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0x9E, 0x1A }, "PolarElectro", "Polar Electro Oy" },
{ { 0xA0, 0x9F, 0x10 }, "BilianElectr", "Shenzhen Bilian Electronic Co.,Ltd" },
{ { 0xA0, 0x9F, 0x7A }, "DLinkMiddleE", "D-Link Middle East FZCO" },
- { { 0xA0, 0xA0, 0x01 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA0, 0xA0, 0x01 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA0, 0xA0, 0xDC }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA0, 0xA1, 0x30 }, "DLITaiwanBra", "DLI Taiwan Branch office" },
{ { 0xA0, 0xA2, 0x3C }, "Gpms", "Gpms" },
@@ -27241,6 +27463,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA0, 0xAB, 0x1B }, "DLinkInterna", "D-Link International" },
{ { 0xA0, 0xAB, 0x51 }, "WeifangGoert", "Weifang Goertek Electronics Co.,Ltd" },
{ { 0xA0, 0xAC, 0x69 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xA0, 0xAD, 0x62 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA0, 0xAD, 0xA1 }, "JMRElectroni", "JMR Electronics, Inc" },
{ { 0xA0, 0xAF, 0x12 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA0, 0xAF, 0xBD }, "Intel", "Intel Corporate" },
@@ -27370,7 +27593,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0x0C, 0xC3 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA4, 0x0D, 0xBC }, "XiamenIntret", "Xiamen Intretech Inc." },
{ { 0xA4, 0x0E, 0x2B }, "Facebook", "Facebook Inc" },
- { { 0xA4, 0x0E, 0x75 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA4, 0x0E, 0x75 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA4, 0x0F, 0x98 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xA4, 0x10, 0xB6 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xA4, 0x11, 0x15 }, "RobertBoschE", "Robert Bosch Engineering and Business Solutions pvt. Ltd." },
@@ -27408,6 +27631,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0x26, 0x55 }, "LTIMotion", "LTI Motion (Shanghai) Co., Ltd." },
{ { 0xA4, 0x27, 0xA5 }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0xA4, 0x28, 0xB7 }, "YangtzeMemor", "Yangtze Memory Technologies Co., Ltd." },
+ { { 0xA4, 0x29, 0x02 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xA4, 0x29, 0x40 }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0xA4, 0x29, 0x83 }, "BoeingDefenc", "Boeing Defence Australia" },
{ { 0xA4, 0x29, 0x85 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
@@ -27572,6 +27796,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA4, 0xA1, 0xC2 }, "Ericsson", "Ericsson AB" },
{ { 0xA4, 0xA1, 0xE4 }, "Innotube", "Innotube, Inc." },
{ { 0xA4, 0xA2, 0x4A }, "CiscoSPVTG", "Cisco SPVTG" },
+ { { 0xA4, 0xA4, 0x59 }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xA4, 0xA4, 0x6B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA4, 0xA4, 0x90 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA4, 0xA4, 0xD3 }, "BluebankComm", "Bluebank Communication Technology Co.Ltd" },
@@ -27745,6 +27970,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x24, 0xEB }, "ZAONPOIntrot", "ZAO NPO Introtest" },
{ { 0xA8, 0x25, 0xEB }, "CambridgeInd", "Cambridge Industries(Group) Co.,Ltd." },
{ { 0xA8, 0x26, 0xD9 }, "HTC", "HTC Corporation" },
+ { { 0xA8, 0x27, 0xC8 }, "EdgecoreAmer", "Edgecore Americas Networking Corporation" },
{ { 0xA8, 0x29, 0x4C }, "PrecisionOpt", "Precision Optical Transceivers, Inc." },
{ { 0xA8, 0x2A, 0xD6 }, "Arthrex", "Arthrex Inc." },
{ { 0xA8, 0x2B, 0xB5 }, "EdgecoreNetw", "Edgecore Networks Corporation" },
@@ -27798,7 +28024,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x50, 0x81 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA8, 0x51, 0x5B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA8, 0x51, 0xAB }, "Apple", "Apple, Inc." },
- { { 0xA8, 0x52, 0xD4 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA8, 0x52, 0xD4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA8, 0x53, 0x7D }, "Mist", "Mist Systems, Inc." },
{ { 0xA8, 0x54, 0xA2 }, "HeimgardTech", "Heimgard Technologies AS" },
{ { 0xA8, 0x54, 0xB2 }, "WistronNeweb", "Wistron Neweb Corporation" },
@@ -27815,7 +28041,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x5B, 0xB0 }, "DehooTechnol", "Shenzhen Dehoo Technology Co.,Ltd" },
{ { 0xA8, 0x5B, 0xB7 }, "Apple", "Apple, Inc." },
{ { 0xA8, 0x5B, 0xF3 }, "Audivo", "Audivo GmbH" },
- { { 0xA8, 0x5B, 0xF7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xA8, 0x5B, 0xF7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA8, 0x5C, 0x03 }, "JiangSuFulia", "Jiang Su Fulian Communication Technology Co., Ltd" },
{ { 0xA8, 0x5C, 0x2C }, "Apple", "Apple, Inc." },
{ { 0xA8, 0x5E, 0x45 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
@@ -27845,6 +28071,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0x6D, 0x5F }, "RaisecomTech", "Raisecom Technology CO., LTD" },
{ { 0xA8, 0x6D, 0xAA }, "Intel", "Intel Corporate" },
{ { 0xA8, 0x6E, 0x4E }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xA8, 0x6E, 0x84 }, "TpLinkPte", "Tp-Link Corporation Pte. Ltd." },
{ { 0xA8, 0x6F, 0x36 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xA8, 0x70, 0x5D }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xA8, 0x70, 0xA5 }, "UniComm", "UniComm Inc." },
@@ -27927,6 +28154,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xA6, 0x48 }, "QingdaoHisen", "Qingdao Hisense Communications Co.,Ltd." },
{ { 0xA8, 0xA6, 0x68 }, "zte", "zte corporation" },
{ { 0xA8, 0xA7, 0x95 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
+ { { 0xA8, 0xA9, 0x13 }, "GNHearing", "GN Hearing A/S" },
{ { 0xA8, 0xAA, 0x7C }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA8, 0xAB, 0xB5 }, "Apple", "Apple, Inc." },
{ { 0xA8, 0xAD, 0x3D }, "AlcatelLucen", "Alcatel-Lucent Shanghai Bell Co., Ltd" },
@@ -27944,13 +28172,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xB8, 0x6E }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0xA8, 0xB8, 0xE0 }, "ChangwangTec", "Changwang Technology inc." },
{ { 0xA8, 0xB9, 0xB3 }, "Essys", "Essys" },
+ { { 0xA8, 0xBA, 0x25 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA8, 0xBA, 0x69 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xA8, 0xBB, 0x50 }, "WiZIoT", "WiZ IoT Company Limited" },
{ { 0xA8, 0xBB, 0x56 }, "Apple", "Apple, Inc." },
{ { 0xA8, 0xBB, 0xCF }, "Apple", "Apple, Inc." },
{ { 0xA8, 0xBC, 0x9C }, "CloudLightTe", "Cloud Light Technology Limited" },
{ { 0xA8, 0xBD, 0x1A }, "HoneyBee", "Honey Bee (Hong Kong) Limited" },
- { { 0xA8, 0xBD, 0x27 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xA8, 0xBD, 0x27 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xA8, 0xBD, 0x3A }, "UnionManTech", "Union Man Technology Co.,Ltd" },
{ { 0xA8, 0xBE, 0x27 }, "Apple", "Apple, Inc." },
{ { 0xA8, 0xBF, 0x3C }, "HDVPhoelectr", "HDV Phoelectron Technology Limited" },
@@ -28010,6 +28239,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xA8, 0xEF, 0x26 }, "Tritonwave", "Tritonwave" },
{ { 0xA8, 0xEF, 0x5F }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
{ { 0xA8, 0xF0, 0x38 }, "ShenZhenShiJ", "Shen Zhen Shi Jin Hua Tai Electronics Co.,Ltd" },
+ { { 0xA8, 0xF0, 0x59 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xA8, 0xF1, 0xB2 }, "AllwinnerTec", "Allwinner Technology Co., Ltd" },
{ { 0xA8, 0xF2, 0x66 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xA8, 0xF2, 0x74 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -28171,6 +28401,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x5A, 0xEE }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xAC, 0x5A, 0xF0 }, "LGElectronic", "LG Electronics" },
{ { 0xAC, 0x5A, 0xFC }, "Intel", "Intel Corporate" },
+ { { 0xAC, 0x5C, 0x2C }, "Apple", "Apple, Inc." },
{ { 0xAC, 0x5D, 0x10 }, "PaceAmericas", "Pace Americas" },
{ { 0xAC, 0x5D, 0x5C }, "FnLinkTechno", "Fn-Link Technology Limited" },
{ { 0xAC, 0x5E, 0x14 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -28257,6 +28488,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0x8C, 0x46 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xAC, 0x8D, 0x14 }, "Smartrove", "Smartrove Inc" },
{ { 0xAC, 0x8D, 0x34 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xAC, 0x8E, 0xBD }, "Microsoft", "Microsoft Corporation" },
{ { 0xAC, 0x8F, 0xA9 }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0xAC, 0x8F, 0xF8 }, "Nokia", "Nokia" },
{ { 0xAC, 0x90, 0x73 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -28283,7 +28515,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0xA0, 0x9D }, "JuniperNetwo", "Juniper Networks" },
{ { 0xAC, 0xA2, 0x13 }, "Bilianelectr", "Shenzhen Bilian electronic CO.,LTD" },
{ { 0xAC, 0xA2, 0x2C }, "BaycityTechn", "Baycity Technologies Ltd" },
- { { 0xAC, 0xA3, 0x1E }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xAC, 0xA3, 0x1E }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xAC, 0xA3, 0x2F }, "SolidigmTech", "Solidigm Technology" },
{ { 0xAC, 0xA4, 0x30 }, "PeerlessAV", "Peerless AV" },
{ { 0xAC, 0xA4, 0x6E }, "GongjinElect", "Shenzhen Gongjin Electronics Co.,Lt" },
@@ -28386,6 +28618,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0xE9, 0x7F }, "IoTTech", "IoT Tech Limited" },
{ { 0xAC, 0xE9, 0xAA }, "Hay", "Hay Systems Ltd" },
{ { 0xAC, 0xEA, 0x6A }, "GenixInfocom", "Genix Infocomm Co., Ltd." },
+ { { 0xAC, 0xEA, 0xEA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xAC, 0xEB, 0x51 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0xAC, 0xEC, 0x80 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xAC, 0xEC, 0x85 }, "eero", "eero inc." },
@@ -28408,6 +28641,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xAC, 0xF9, 0x70 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xAC, 0xF9, 0x7E }, "Elesys", "Elesys Inc." },
{ { 0xAC, 0xFA, 0xA5 }, "digitron", "digitron" },
+ { { 0xAC, 0xFA, 0xE4 }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0xAC, 0xFC, 0x82 }, "SundrayTechn", "Shenzhen Sundray Technologies Company Limited" },
{ { 0xAC, 0xFC, 0xE3 }, "EMMicroelect", "EM Microelectronic" },
{ { 0xAC, 0xFD, 0x93 }, "WeifangGoert", "Weifang Goertek Electronics Co.,Ltd" },
@@ -28444,7 +28678,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x1C, 0x91 }, "Elim", "Elim Co" },
{ { 0xB0, 0x1F, 0x29 }, "Helvetia", "Helvetia INC." },
{ { 0xB0, 0x1F, 0x47 }, "HeightsTelec", "Heights Telecom T ltd" },
- { { 0xB0, 0x1F, 0x8C }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB0, 0x1F, 0x8C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB0, 0x21, 0x6F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB0, 0x22, 0x7A }, "HP", "HP Inc." },
{ { 0xB0, 0x23, 0x47 }, "GiantMicroel", "Shenzhen Giant Microelectronics Company Limited" },
@@ -28469,10 +28703,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x37, 0x95 }, "LGElectronic", "LG Electronics" },
{ { 0xB0, 0x38, 0x29 }, "SiliconwareP", "Siliconware Precision Industries Co., Ltd." },
{ { 0xB0, 0x38, 0x50 }, "NanjingCASZD", "Nanjing CAS-ZDC IOT SYSTEM CO.,LTD" },
+ { { 0xB0, 0x38, 0x6C }, "EFMNetworks", "EFM Networks" },
{ { 0xB0, 0x38, 0x93 }, "OndaTLCItali", "Onda TLC Italia S.r.l." },
{ { 0xB0, 0x38, 0xE2 }, "WananHongshe", "Wanan Hongsheng Electronic Co.Ltd" },
{ { 0xB0, 0x39, 0x56 }, "Netgear", "Netgear" },
{ { 0xB0, 0x3A, 0xCE }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xB0, 0x3B, 0x1B }, "KontrolnextT", "Kontrolnext Technology (Beijing) Ltd." },
{ { 0xB0, 0x3C, 0xDC }, "Intel", "Intel Corporate" },
{ { 0xB0, 0x3D, 0x96 }, "VisionValley", "Vision Valley FZ LLC" },
{ { 0xB0, 0x3D, 0xC2 }, "Waspartifici", "Wasp artificial intelligence(Shenzhen) Co.,ltd" },
@@ -28528,6 +28764,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0x5D, 0xD4 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xB0, 0x60, 0x88 }, "Intel", "Intel Corporate" },
{ { 0xB0, 0x61, 0xC7 }, "EricssonLGEn", "Ericsson-LG Enterprise" },
+ { { 0xB0, 0x65, 0x3A }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
{ { 0xB0, 0x65, 0x63 }, "RailwayCommu", "Shanghai Railway Communication Factory" },
{ { 0xB0, 0x65, 0xBD }, "Apple", "Apple, Inc." },
{ { 0xB0, 0x65, 0xF1 }, "WIOManufactu", "WIO Manufacturing HK Limited" },
@@ -28643,7 +28880,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0xB4, 0x48 }, "TexasInstrum", "Texas Instruments" },
{ { 0xB0, 0xB5, 0xC3 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xB0, 0xB5, 0xE8 }, "Ruroc", "Ruroc LTD" },
- { { 0xB0, 0xB8, 0x67 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xB0, 0xB8, 0x67 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB0, 0xB8, 0xD5 }, "NanjingNengr", "Nanjing Nengrui Auto Equipment CO.,Ltd" },
{ { 0xB0, 0xB9, 0x8A }, "Netgear", "Netgear" },
{ { 0xB0, 0xBB, 0x8B }, "WavetelTechn", "Wavetel Technology Limited" },
@@ -28660,6 +28897,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB0, 0xC1, 0x9E }, "zte", "zte corporation" },
{ { 0xB0, 0xC2, 0x05 }, "Bionime", "Bionime" },
{ { 0xB0, 0xC2, 0x87 }, "VantivaUSA", "Vantiva USA LLC" },
+ { { 0xB0, 0xC2, 0xC7 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xB0, 0xC3, 0x87 }, "GOEFER", "GOEFER, Inc." },
{ { 0xB0, 0xC3, 0x8E }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xB0, 0xC4, 0x6C }, "Senseit", "Senseit" },
@@ -28785,6 +29023,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x1C, 0xAB }, "ICR", "ICR, inc." },
{ { 0xB4, 0x1D, 0x2B }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0xB4, 0x1D, 0xEF }, "InternetLabo", "Internet Laboratories, Inc." },
+ { { 0xB4, 0x1E, 0x52 }, "FlockSafety", "Flock Safety" },
{ { 0xB4, 0x20, 0x46 }, "eero", "eero inc." },
{ { 0xB4, 0x20, 0x5B }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xB4, 0x21, 0x1D }, "GuangXinTech", "Beijing GuangXin Technology Co., Ltd" },
@@ -28824,6 +29063,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x3A, 0x31 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0xB4, 0x3A, 0xE2 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB4, 0x3D, 0x08 }, "GXInternatio", "GX International BV" },
+ { { 0xB4, 0x3D, 0x6B }, "NXPSemicondu", "NXP Semiconductor (Tianjin) LTD." },
{ { 0xB4, 0x3D, 0xB2 }, "DegreaneHori", "Degreane Horizon" },
{ { 0xB4, 0x3E, 0x3B }, "Viableware", "Viableware, Inc" },
{ { 0xB4, 0x40, 0xA4 }, "Apple", "Apple, Inc." },
@@ -28855,7 +29095,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x57, 0xE6 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xB4, 0x58, 0x61 }, "CRemote", "CRemote, LLC" },
{ { 0xB4, 0x5C, 0xA4 }, "ThingtalkWir", "Thing-talk Wireless Communication Technologies Corporation Limited" },
- { { 0xB4, 0x5D, 0x50 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB4, 0x5D, 0x50 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB4, 0x5F, 0x84 }, "zte", "zte corporation" },
{ { 0xB4, 0x60, 0x77 }, "SichuanChang", "Sichuan Changhong Electric Ltd." },
{ { 0xB4, 0x60, 0x8C }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -28886,11 +29126,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0x74, 0x47 }, "CoreOS", "CoreOS" },
{ { 0xB4, 0x74, 0x9F }, "AskeyCompute", "Askey Computer Corp" },
{ { 0xB4, 0x75, 0x0E }, "BelkinIntern", "Belkin International Inc." },
+ { { 0xB4, 0x76, 0xA4 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xB4, 0x77, 0x48 }, "NeowayTechno", "Shenzhen Neoway Technology Co.,Ltd." },
{ { 0xB4, 0x79, 0x47 }, "Nutanix", "Nutanix" },
{ { 0xB4, 0x79, 0xA7 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0xB4, 0x79, 0xC8 }, "RuckusWirele", "Ruckus Wireless" },
- { { 0xB4, 0x7A, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xB4, 0x7A, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB4, 0x7C, 0x29 }, "GuzidiTechno", "Shenzhen Guzidi Technology Co.,Ltd" },
{ { 0xB4, 0x7C, 0x59 }, "JiangsuHengx", "Jiangsu Hengxin Technology Co.,Ltd." },
{ { 0xB4, 0x7C, 0x9C }, "AmazonTechno", "Amazon Technologies Inc." },
@@ -28989,6 +29230,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB4, 0xC4, 0x4E }, "VXLeTech", "VXL eTech Pvt Ltd" },
{ { 0xB4, 0xC4, 0x76 }, "MaritimeComm", "Wuhan Maritime Communication Research Institute" },
{ { 0xB4, 0xC4, 0xFC }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
+ { { 0xB4, 0xC5, 0x56 }, "KenmyondIndu", "Shanghai Kenmyond Industrial Network Equipment Co., Ltd" },
{ { 0xB4, 0xC6, 0x2E }, "MolexCMS", "Molex CMS" },
{ { 0xB4, 0xC6, 0xF8 }, "AxilspotComm", "Axilspot Communication" },
{ { 0xB4, 0xC7, 0x99 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
@@ -29130,13 +29372,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x32, 0x41 }, "TianyuInform", "Wuhan Tianyu Information Industry Co., Ltd." },
{ { 0xB8, 0x36, 0xD8 }, "Videoswitch", "Videoswitch" },
{ { 0xB8, 0x37, 0x4A }, "Apple", "Apple, Inc." },
+ { { 0xB8, 0x37, 0x4B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0x37, 0x65 }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
- { { 0xB8, 0x37, 0xB2 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB8, 0x37, 0xB2 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0x38, 0x61 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xB8, 0x38, 0xCA }, "KyokkoTsushi", "Kyokko Tsushin System CO.,LTD" },
{ { 0xB8, 0x38, 0xEF }, "ADVAOpticalN", "ADVA Optical Networking Ltd." },
{ { 0xB8, 0x3A, 0x08 }, "TendaTechnol", "Tenda Technology Co.,Ltd.Dongguan branch" },
- { { 0xB8, 0x3A, 0x5A }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB8, 0x3A, 0x5A }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0x3A, 0x7B }, "Worldplay", "Worldplay (Canada) Inc." },
{ { 0xB8, 0x3A, 0x9D }, "Alarmcom", "Alarm.com" },
{ { 0xB8, 0x3B, 0x8F }, "HylinIoTTech", "Hangzhou Hylin IoT Techonology Co.,Ltd." },
@@ -29201,7 +29444,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x6A, 0x97 }, "EdgecoreNetw", "Edgecore Networks Corporation" },
{ { 0xB8, 0x6A, 0xF1 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xB8, 0x6B, 0x23 }, "Toshiba", "Toshiba" },
- { { 0xB8, 0x6C, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xB8, 0x6C, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0x6C, 0xE8 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xB8, 0x70, 0xF4 }, "CompalInform", "Compal Information (Kunshan) Co., Ltd." },
{ { 0xB8, 0x74, 0x24 }, "ViessmannEle", "Viessmann Elektronik GmbH" },
@@ -29226,7 +29469,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x80, 0x4F }, "TexasInstrum", "Texas Instruments" },
{ { 0xB8, 0x81, 0x98 }, "Intel", "Intel Corporate" },
{ { 0xB8, 0x81, 0xFA }, "Apple", "Apple, Inc." },
- { { 0xB8, 0x83, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xB8, 0x83, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0x85, 0x7B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB8, 0x85, 0x84 }, "Dell", "Dell Inc." },
{ { 0xB8, 0x86, 0x87 }, "LiteonTechno", "Liteon Technology Corporation" },
@@ -29260,6 +29503,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x94, 0xE7 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xB8, 0x96, 0x74 }, "AllDSP", "AllDSP GmbH & Co. KG" },
{ { 0xB8, 0x97, 0x5A }, "BIOSTARMicro", "BIOSTAR Microtech Int'l Corp." },
+ { { 0xB8, 0x97, 0x7A }, "NokiaSolutio", "Nokia Solutions and Networks GmbH & Co. KG" },
{ { 0xB8, 0x98, 0xAD }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xB8, 0x98, 0xB0 }, "Atlona", "Atlona Inc." },
{ { 0xB8, 0x98, 0xF7 }, "GioneeCommun", "Gionee Communication Equipment Co,Ltd.ShenZhen" },
@@ -29277,6 +29521,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0x9F, 0xCC }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xB8, 0xA1, 0x4A }, "RaisecomTech", "Raisecom Technology CO., LTD" },
{ { 0xB8, 0xA1, 0x75 }, "Roku", "Roku, Inc." },
+ { { 0xB8, 0xA2, 0x5D }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xB8, 0xA3, 0x77 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xB8, 0xA3, 0x86 }, "DLinkInterna", "D-Link International" },
{ { 0xB8, 0xA3, 0xE0 }, "BenRuiTechno", "BenRui Technology Co.,Ltd" },
@@ -29320,6 +29565,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xBE, 0xBF }, "Cisco", "Cisco Systems, Inc" },
{ { 0xB8, 0xBE, 0xF4 }, "devolo", "devolo AG" },
{ { 0xB8, 0xBF, 0x83 }, "Intel", "Intel Corporate" },
+ { { 0xB8, 0xC0, 0x07 }, "tickIoT", "tickIoT Inc." },
{ { 0xB8, 0xC0, 0x65 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0xB8, 0xC1, 0x11 }, "Apple", "Apple, Inc." },
{ { 0xB8, 0xC1, 0xA2 }, "DragonPathTe", "Dragon Path Technologies Co., Limited" },
@@ -29339,6 +29585,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xCA, 0x04 }, "HoltekSemico", "Holtek Semiconductor Inc." },
{ { 0xB8, 0xCA, 0x3A }, "Dell", "Dell Inc." },
{ { 0xB8, 0xCB, 0x29 }, "Dell", "Dell Inc." },
+ { { 0xB8, 0xCC, 0x5F }, "iCommSemicon", "Shenzhen iComm Semiconductor CO.,LTD" },
{ { 0xB8, 0xCD, 0x93 }, "Penetek", "Penetek, Inc" },
{ { 0xB8, 0xCD, 0xA7 }, "MaxelerTechn", "Maxeler Technologies Ltd." },
{ { 0xB8, 0xCE, 0xF6 }, "MellanoxTech", "Mellanox Technologies, Inc." },
@@ -29348,7 +29595,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xD4, 0x3E }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xB8, 0xD4, 0x9D }, "MSevenSystem", "M Seven System Ltd." },
{ { 0xB8, 0xD4, 0xBC }, "zte", "zte corporation" },
- { { 0xB8, 0xD4, 0xE7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xB8, 0xD4, 0xE7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xB8, 0xD5, 0x0B }, "SunitecEnter", "Sunitec Enterprise Co.,Ltd" },
{ { 0xB8, 0xD5, 0x26 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0xB8, 0xD5, 0x6B }, "Mirka", "Mirka Ltd." },
@@ -29374,6 +29621,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xB8, 0xE6, 0x25 }, "2Wire", "2Wire Inc" },
{ { 0xB8, 0xE7, 0x79 }, "9Solutions", "9Solutions Oy" },
{ { 0xB8, 0xE8, 0x56 }, "Apple", "Apple, Inc." },
+ { { 0xB8, 0xE9, 0x24 }, "MellanoxTech", "Mellanox Technologies, Inc." },
{ { 0xB8, 0xE9, 0x37 }, "Sonos", "Sonos, Inc." },
{ { 0xB8, 0xEA, 0x98 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xB8, 0xEA, 0xAA }, "ICGNETWORKS", "ICG NETWORKS CO.,ltd" },
@@ -29480,6 +29728,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x28, 0x2C }, "eSmart", "e-Smart Systems Pvt. Ltd" },
{ { 0xBC, 0x28, 0x46 }, "NextBITCompu", "NextBIT Computing Pvt. Ltd." },
{ { 0xBC, 0x28, 0xD6 }, "RowleyAssoci", "Rowley Associates Limited" },
+ { { 0xBC, 0x29, 0x78 }, "PramaHikvisi", "Prama Hikvision India Private Limited" },
{ { 0xBC, 0x2B, 0x6B }, "HaierICDesig", "Beijing Haier IC Design Co.,Ltd" },
{ { 0xBC, 0x2B, 0xD7 }, "RevogiInnova", "Revogi Innovation Co., Ltd." },
{ { 0xBC, 0x2C, 0x55 }, "BearFlagDesi", "Bear Flag Design, Inc." },
@@ -29498,9 +29747,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x33, 0x29 }, "SonyInteract", "Sony Interactive Entertainment Inc." },
{ { 0xBC, 0x33, 0x40 }, "CiscoMeraki", "Cisco Meraki" },
{ { 0xBC, 0x33, 0xAC }, "SiliconLabor", "Silicon Laboratories" },
+ { { 0xBC, 0x34, 0xCA }, "Inovance", "Inovance" },
{ { 0xBC, 0x35, 0xE5 }, "Hydro", "Hydro Systems Company" },
{ { 0xBC, 0x37, 0xD3 }, "Apple", "Apple, Inc." },
{ { 0xBC, 0x38, 0x65 }, "Jwcnetworks", "Jwcnetworks" },
+ { { 0xBC, 0x38, 0x98 }, "Intel", "Intel Corporate" },
{ { 0xBC, 0x38, 0xD2 }, "Pandachip", "Pandachip Limited" },
{ { 0xBC, 0x39, 0xA6 }, "CSUNSystemTe", "CSUN System Technology Co.,LTD" },
{ { 0xBC, 0x39, 0xD9 }, "ZTec", "Z-Tec" },
@@ -29514,6 +29765,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x3F, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xBC, 0x41, 0x00 }, "CODACOELECTR", "CODACO ELECTRONIC s.r.o." },
{ { 0xBC, 0x41, 0x01 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
+ { { 0xBC, 0x41, 0xA0 }, "zte", "zte corporation" },
{ { 0xBC, 0x42, 0x8C }, "Alpsalpine", "Alpsalpine Co,.Ltd" },
{ { 0xBC, 0x43, 0x77 }, "HangZhouHuit", "Hang Zhou Huite Technology Co.,ltd." },
{ { 0xBC, 0x44, 0x34 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
@@ -29522,6 +29774,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x45, 0x2E }, "KnowledgeDev", "Knowledge Development for POF S.L." },
{ { 0xBC, 0x45, 0x5B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xBC, 0x45, 0x8C }, "TopwiseCommu", "Shenzhen Topwise Communication Co.,Ltd" },
+ { { 0xBC, 0x46, 0x32 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xBC, 0x46, 0x99 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xBC, 0x47, 0x60 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xBC, 0x49, 0xB2 }, "AlongCommuni", "Shenzhen Along Communication Tech Co., Ltd" },
@@ -29625,6 +29878,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x92, 0x6B }, "Apple", "Apple, Inc." },
{ { 0xBC, 0x93, 0x07 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xBC, 0x93, 0x25 }, "NingboJoyson", "Ningbo Joyson Preh Car Connect Co.,Ltd." },
+ { { 0xBC, 0x94, 0x24 }, "TCTmobile", "TCT mobile ltd" },
{ { 0xBC, 0x96, 0x80 }, "GongjinElect", "Shenzhen Gongjin Electronics Co.,Lt" },
{ { 0xBC, 0x96, 0xE5 }, "SercommPhili", "Sercomm Philippines Inc" },
{ { 0xBC, 0x97, 0x89 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -29645,7 +29899,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0x9D, 0xA5 }, "DASCOMEurope", "DASCOM Europe GmbH" },
{ { 0xBC, 0x9E, 0x2C }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xBC, 0x9E, 0xBB }, "Nintendo", "Nintendo Co.,Ltd" },
- { { 0xBC, 0x9F, 0xE4 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xBC, 0x9F, 0xE4 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xBC, 0x9F, 0xEF }, "Apple", "Apple, Inc." },
{ { 0xBC, 0xA0, 0x42 }, "FlycoElectri", "Shanghai Flyco Electrical Appliance Co.,Ltd" },
{ { 0xBC, 0xA0, 0x80 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -29712,7 +29966,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0xD5, 0xB6 }, "d2dtechnolog", "d2d technologies" },
{ { 0xBC, 0xD7, 0x13 }, "OwlLabs", "Owl Labs" },
{ { 0xBC, 0xD7, 0x67 }, "BAEAplliedIn", "BAE Systems Apllied Intelligence" },
- { { 0xBC, 0xD7, 0xA5 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xBC, 0xD7, 0xA5 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xBC, 0xD7, 0xCE }, "ChinaMobileI", "China Mobile (Hangzhou) Information Technology Co., Ltd." },
{ { 0xBC, 0xD7, 0xD4 }, "Roku", "Roku, Inc" },
{ { 0xBC, 0xD9, 0x40 }, "ASR", "ASR Co,.Ltd." },
@@ -29742,6 +29996,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xBC, 0xEE, 0x7B }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
{ { 0xBC, 0xF1, 0x71 }, "Intel", "Intel Corporate" },
{ { 0xBC, 0xF1, 0xF2 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xBC, 0xF2, 0x12 }, "TelinkMicro", "Telink Micro LLC" },
{ { 0xBC, 0xF2, 0x92 }, "Plantronics", "Plantronics, Inc." },
{ { 0xBC, 0xF2, 0xAF }, "devolo", "devolo AG" },
{ { 0xBC, 0xF3, 0x10 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
@@ -29867,6 +30122,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x50, 0x64 }, "ShennanCircu", "Shennan Circuits Co.,Ltd" },
{ { 0xC0, 0x51, 0x5C }, "zte", "zte corporation" },
{ { 0xC0, 0x51, 0x7E }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
+ { { 0xC0, 0x52, 0x34 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC0, 0x53, 0x36 }, "NationalRail", "Beijing National Railway Research & Design Institute of Signal & Communication Group Co..Ltd." },
{ { 0xC0, 0x55, 0x5C }, "ImpulseLabs", "Impulse Labs" },
{ { 0xC0, 0x56, 0x27 }, "BelkinIntern", "Belkin International Inc." },
@@ -29875,6 +30131,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x58, 0xA7 }, "Pico", "Pico Systems Co., Ltd." },
{ { 0xC0, 0x5B, 0x44 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xC0, 0x5D, 0x39 }, "JiangsuHuito", "Jiangsu Huitong Group Co.,Ltd." },
+ { { 0xC0, 0x5D, 0x89 }, "Espressif", "Espressif Inc." },
{ { 0xC0, 0x5E, 0x6F }, "VStonkausfir", "V. Stonkaus firma \"Kodinis Raktas\"" },
{ { 0xC0, 0x5E, 0x79 }, "HuaxunArkTec", "Shenzhen Huaxun Ark Technologies Co.,Ltd" },
{ { 0xC0, 0x5F, 0x87 }, "LegrandINTEL", "Legrand INTELLIGENT ELECTRICAL(HUIZHOU)CO.,LTD." },
@@ -29891,6 +30148,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x68, 0xCC }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0xC0, 0x69, 0x11 }, "AristaNetwor", "Arista Networks" },
{ { 0xC0, 0x6B, 0x55 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
+ { { 0xC0, 0x6C, 0x0C }, "Apple", "Apple, Inc." },
{ { 0xC0, 0x6C, 0x0F }, "DobbsStanfor", "Dobbs Stanford" },
{ { 0xC0, 0x6C, 0x6D }, "MagneMotion", "MagneMotion, Inc." },
{ { 0xC0, 0x6D, 0x1A }, "TianjinHenxi", "Tianjin Henxinhuifeng Technology Co.,Ltd." },
@@ -29903,6 +30161,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x78, 0x31 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xC0, 0x78, 0x78 }, "FlextronicsM", "Flextronics Manufacturing(Zhuhai)Co.,Ltd." },
{ { 0xC0, 0x79, 0x82 }, "TCLKingElect", "TCL King Electrical Appliances(Huizhou)Co.,Ltd" },
+ { { 0xC0, 0x7A, 0xD6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xC0, 0x7B, 0xBC }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC0, 0x7C, 0x90 }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0xC0, 0x7C, 0xD1 }, "Pegatron", "Pegatron Corporation" },
@@ -29922,6 +30181,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0x88, 0x6D }, "Securosys", "Securosys SA" },
{ { 0xC0, 0x89, 0x97 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xC0, 0x89, 0xAB }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0xC0, 0x8A, 0x60 }, "AltoBeam", "AltoBeam Inc." },
{ { 0xC0, 0x8A, 0xCD }, "GuangzhouShi", "Guangzhou Shiyuan Electronic Technology Company Limited" },
{ { 0xC0, 0x8A, 0xDE }, "RuckusWirele", "Ruckus Wireless" },
{ { 0xC0, 0x8B, 0x05 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -29998,6 +30258,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0xBD, 0xD1 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0xC0, 0xBF, 0xA7 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xC0, 0xBF, 0xAC }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xC0, 0xBF, 0xBE }, "AzureWaveTec", "AzureWave Technology Inc." },
{ { 0xC0, 0xBF, 0xC0 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC0, 0xC1, 0x70 }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0xC0, 0xC1, 0xC0 }, "CiscoLinksys", "Cisco-Linksys, LLC" },
@@ -30031,6 +30292,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC0, 0xD6, 0x82 }, "AristaNetwor", "Arista Networks" },
{ { 0xC0, 0xD7, 0xAA }, "Arcadyan", "Arcadyan Corporation" },
{ { 0xC0, 0xD8, 0x34 }, "xvtec", "xvtec ltd" },
+ { { 0xC0, 0xD9, 0x41 }, "VMAXSoftware", "Shenzhen VMAX Software Co., Ltd." },
{ { 0xC0, 0xD9, 0x62 }, "AskeyCompute", "Askey Computer Corp" },
{ { 0xC0, 0xD9, 0xF7 }, "ShanDongDomo", "ShanDong Domor Intelligent S&T CO.,Ltd" },
{ { 0xC0, 0xDA, 0x74 }, "SunyardTechn", "Hangzhou Sunyard Technology Co., Ltd." },
@@ -30095,6 +30357,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x08, 0x26 }, "HisenseVisua", "Hisense Visual Technology Co.,Ltd" },
{ { 0xC4, 0x08, 0x4A }, "Nokia", "Nokia" },
{ { 0xC4, 0x08, 0x80 }, "UTEPOTech", "Shenzhen UTEPO Tech Co., Ltd." },
+ { { 0xC4, 0x08, 0x98 }, "DropbeatsTec", "Dropbeats Technology Co., Ltd." },
{ { 0xC4, 0x09, 0x38 }, "FujianStarNe", "Fujian Star-Net Communication Co.,Ltd" },
{ { 0xC4, 0x09, 0xB7 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xC4, 0x0A, 0xCB }, "Cisco", "Cisco Systems, Inc" },
@@ -30118,6 +30381,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x17, 0x0E }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xC4, 0x17, 0xFE }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0xC4, 0x18, 0xE9 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xC4, 0x18, 0xFC }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0x19, 0x8B }, "DominionVoti", "Dominion Voting Systems Corporation" },
{ { 0xC4, 0x19, 0xD1 }, "TelinkSemico", "Telink Semiconductor (Shanghai) Co., Ltd." },
{ { 0xC4, 0x19, 0xEC }, "Qualisys", "Qualisys AB" },
@@ -30183,6 +30447,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x46, 0x06 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0x46, 0x19 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
{ { 0xC4, 0x47, 0x3F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xC4, 0x47, 0x4E }, "Intel", "Intel Corporate" },
{ { 0xC4, 0x48, 0x38 }, "SatcomDirect", "Satcom Direct, Inc." },
{ { 0xC4, 0x48, 0xFA }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0xC4, 0x49, 0xBB }, "MitsumiElect", "Mitsumi Electric Co.,Ltd." },
@@ -30247,6 +30512,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x6E, 0x7B }, "RfLinkTechno", "Shenzhen Rf-Link Technology Co.,Ltd." },
{ { 0xC4, 0x70, 0x0B }, "GuangzhouChi", "Guangzhou Chip Technologies Co.,Ltd" },
{ { 0xC4, 0x70, 0xAB }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
+ { { 0xC4, 0x70, 0xBD }, "MellanoxTech", "Mellanox Technologies, Inc." },
{ { 0xC4, 0x71, 0x30 }, "FonTechnolog", "Fon Technology S.L." },
{ { 0xC4, 0x71, 0x54 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xC4, 0x71, 0xFE }, "Cisco", "Cisco Systems, Inc" },
@@ -30257,6 +30523,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0x74, 0xF8 }, "HotPepper", "Hot Pepper, Inc." },
{ { 0xC4, 0x75, 0xAB }, "Intel", "Intel Corporate" },
{ { 0xC4, 0x75, 0xEA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xC4, 0x77, 0x64 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xC4, 0x77, 0xAB }, "ASUTech", "Beijing ASU Tech Co.,Ltd" },
{ { 0xC4, 0x77, 0xAF }, "AdvancedDigi", "Advanced Digital Broadcast SA" },
{ { 0xC4, 0x78, 0xA2 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
@@ -30332,6 +30599,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC4, 0xAD, 0x34 }, "Routerboardc", "Routerboard.com" },
{ { 0xC4, 0xAD, 0xF1 }, "GOPEACE", "GOPEACE Inc." },
{ { 0xC4, 0xAE, 0x12 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xC4, 0xB1, 0xD9 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC4, 0xB2, 0x39 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC4, 0xB2, 0x5B }, "RuijieNetwor", "Ruijie Networks Co.,LTD" },
{ { 0xC4, 0xB3, 0x01 }, "Apple", "Apple, Inc." },
@@ -30564,6 +30832,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x5D, 0x38 }, "HUMAX", "HUMAX Co., Ltd." },
{ { 0xC8, 0x5E, 0xA9 }, "Intel", "Intel Corporate" },
{ { 0xC8, 0x60, 0x00 }, "ASUSTekCOMPU", "ASUSTek COMPUTER INC." },
+ { { 0xC8, 0x60, 0x8F }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC8, 0x63, 0xF1 }, "SonyInteract", "Sony Interactive Entertainment Inc." },
{ { 0xC8, 0x63, 0xFC }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xC8, 0x64, 0xC7 }, "zte", "zte corporation" },
@@ -30577,9 +30846,11 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x6C, 0x3D }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xC8, 0x6C, 0x87 }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0xC8, 0x6C, 0xB6 }, "Optcom", "Optcom Co., Ltd." },
+ { { 0xC8, 0x6E, 0x08 }, "Intel", "Intel Corporate" },
{ { 0xC8, 0x6F, 0x1D }, "Apple", "Apple, Inc." },
{ { 0xC8, 0x70, 0x23 }, "AlticeLabs", "Altice Labs S.A." },
{ { 0xC8, 0x70, 0xD4 }, "IBOTechnolog", "IBO Technology Co,Ltd" },
+ { { 0xC8, 0x71, 0x1F }, "SuzhouTesien", "Suzhou Tesien Technology Co., Ltd." },
{ { 0xC8, 0x71, 0x25 }, "JohnsonOutdo", "Johnson Outdoors Marine Electronics d/b/a Minnkota" },
{ { 0xC8, 0x72, 0x48 }, "Aplicom", "Aplicom Oy" },
{ { 0xC8, 0x72, 0x7E }, "Nokia", "Nokia" },
@@ -30600,6 +30871,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x83, 0x14 }, "TempoCommuni", "Tempo Communications" },
{ { 0xC8, 0x84, 0x39 }, "SunriseTechn", "Sunrise Technologies" },
{ { 0xC8, 0x84, 0x47 }, "BeautifulEnt", "Beautiful Enterprise Co., Ltd" },
+ { { 0xC8, 0x84, 0x4E }, "FlextronicsI", "Flextronics International Kft" },
{ { 0xC8, 0x84, 0x8C }, "RuckusWirele", "Ruckus Wireless" },
{ { 0xC8, 0x84, 0xA1 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xC8, 0x84, 0xCF }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -30614,6 +30886,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0x8B, 0x47 }, "Nolangroupco", "Nolangroup S.P.A con Socio Unico" },
{ { 0xC8, 0x8B, 0xE8 }, "Masimo", "Masimo Corporation" },
{ { 0xC8, 0x8D, 0x83 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xC8, 0x8D, 0xD4 }, "Markonetechn", "Markone technology Co., Ltd." },
{ { 0xC8, 0x8F, 0x26 }, "SkyworthDigi", "Skyworth Digital Technology(Shenzhen) Co.,Ltd" },
{ { 0xC8, 0x90, 0x3E }, "PaktonTechno", "Pakton Technologies" },
{ { 0xC8, 0x90, 0x8A }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -30669,7 +30942,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0xB2, 0x9B }, "Intel", "Intel Corporate" },
{ { 0xC8, 0xB3, 0x73 }, "CiscoLinksys", "Cisco-Linksys, LLC" },
{ { 0xC8, 0xB4, 0x22 }, "AskeyCompute", "Askey Computer Corp" },
- { { 0xC8, 0xB5, 0xAD }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xC8, 0xB5, 0xAD }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xC8, 0xB5, 0xB7 }, "Apple", "Apple, Inc." },
{ { 0xC8, 0xB6, 0xD3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xC8, 0xB6, 0xFE }, "Fitbit", "Fitbit, Inc." },
@@ -30751,6 +31024,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xC8, 0xEE, 0x08 }, "TangtopTechn", "Tangtop Technology Co.,Ltd" },
{ { 0xC8, 0xEE, 0x75 }, "PishionInter", "Pishion International Co. Ltd" },
{ { 0xC8, 0xEE, 0xA6 }, "SHXTechnolog", "Shenzhen SHX Technology Co., Ltd" },
+ { { 0xC8, 0xEE, 0xD7 }, "LightspeedTe", "Lightspeed Technologies Inc." },
{ { 0xC8, 0xEF, 0x2E }, "GefeiTech", "Beijing Gefei Tech. Co., Ltd" },
{ { 0xC8, 0xEF, 0xBC }, "InspurCommun", "Inspur Communication Technology Co.,Ltd." },
{ { 0xC8, 0xF0, 0x9E }, "Espressif", "Espressif Inc." },
@@ -30797,6 +31071,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCA, 0xC8, 0x7E }, "AllenOrgan", "Allen Organ Company" },
{ { 0xCA, 0xE5, 0x05 }, "Mobilitie", "Mobilitie" },
{ { 0xCA, 0xF2, 0x5B }, "LexarElectro", "Lexar Electronics(Shenzhen) Co.,Ltd." },
+ { { 0xCA, 0xFA, 0xE6 }, "TianjinRongh", "Tianjin Ronghui microelectronics Technology Co., Ltd." },
{ { 0xCC, 0x00, 0x80 }, "Bettini", "Bettini Srl" },
{ { 0xCC, 0x00, 0xF1 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xCC, 0x03, 0x7B }, "TexasInstrum", "Texas Instruments" },
@@ -30971,6 +31246,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x7B, 0x61 }, "Nikkiso", "Nikkiso Co., Ltd." },
{ { 0xCC, 0x7D, 0x37 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xCC, 0x7D, 0x5B }, "TelinkSemico", "Telink Semiconductor (Shanghai) Co., Ltd." },
+ { { 0xCC, 0x7E, 0x0F }, "Theben", "Theben AG" },
{ { 0xCC, 0x7E, 0xE7 }, "PanasonicAVC", "Panasonic Corporation AVC Networks Company" },
{ { 0xCC, 0x7F, 0x75 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xCC, 0x7F, 0x76 }, "Cisco", "Cisco Systems, Inc" },
@@ -30983,7 +31259,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x86, 0xEC }, "SiliconLabor", "Silicon Laboratories" },
{ { 0xCC, 0x87, 0x4A }, "Nokia", "Nokia" },
{ { 0xCC, 0x88, 0x26 }, "LGInnotek", "LG Innotek" },
- { { 0xCC, 0x88, 0xC7 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xCC, 0x88, 0xC7 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xCC, 0x89, 0x5E }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xCC, 0x89, 0x6C }, "GNHearing", "GN Hearing A/S" },
{ { 0xCC, 0x89, 0xFD }, "Nokia", "Nokia Corporation" },
@@ -30996,6 +31272,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x8E, 0x71 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xCC, 0x90, 0x70 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xCC, 0x90, 0x93 }, "HansongTehno", "Hansong Tehnologies" },
+ { { 0xCC, 0x90, 0x96 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xCC, 0x90, 0xE8 }, "YOUHUATechno", "Shenzhen YOUHUA Technology Co., Ltd" },
{ { 0xCC, 0x91, 0x2B }, "TEConnectivi", "TE Connectivity Touch Solutions" },
{ { 0xCC, 0x93, 0x4A }, "SierraWirele", "Sierra Wireless, ULC" },
@@ -31004,6 +31281,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0x95, 0xD7 }, "Vizio", "Vizio, Inc" },
{ { 0xCC, 0x96, 0x35 }, "LVS", "LVS Co.,Ltd." },
{ { 0xCC, 0x96, 0xA0 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
+ { { 0xCC, 0x96, 0xA2 }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xCC, 0x96, 0xE5 }, "Dell", "Dell Inc." },
{ { 0xCC, 0x98, 0x8B }, "SONYVisualPr", "SONY Visual Products Inc." },
{ { 0xCC, 0x98, 0x91 }, "Cisco", "Cisco Systems, Inc" },
@@ -31044,6 +31322,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0xB5, 0xD1 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xCC, 0xB6, 0x91 }, "NECMagnusCom", "NECMagnusCommunications" },
{ { 0xCC, 0xB6, 0xC8 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xCC, 0xB7, 0x77 }, "zte", "zte corporation" },
{ { 0xCC, 0xB7, 0xC4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xCC, 0xB8, 0x88 }, "AnBSecurite", "AnB Securite s.a." },
{ { 0xCC, 0xB8, 0xA8 }, "AMPAKTechnol", "AMPAK Technology, Inc." },
@@ -31077,7 +31356,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xCC, 0xCE, 0x1E }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0xCC, 0xCE, 0x40 }, "Janteq", "Janteq Corp" },
{ { 0xCC, 0xCF, 0x83 }, "CigShanghai", "Cig Shanghai Co Ltd" },
- { { 0xCC, 0xD0, 0x83 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xCC, 0xD0, 0x83 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xCC, 0xD2, 0x81 }, "Apple", "Apple, Inc." },
{ { 0xCC, 0xD2, 0x9B }, "BopengfaElec", "Shenzhen Bopengfa Elec&Technology CO.,Ltd" },
{ { 0xCC, 0xD3, 0x42 }, "Cisco", "Cisco Systems, Inc" },
@@ -31173,7 +31452,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x13, 0x1E }, "SunrexTechno", "Sunrex Technology Corp" },
{ { 0xD0, 0x13, 0xFD }, "LGElectronic", "LG Electronics (Mobile Communications)" },
{ { 0xD0, 0x15, 0x4A }, "zte", "zte corporation" },
- { { 0xD0, 0x15, 0xA6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD0, 0x15, 0xA6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD0, 0x16, 0x7C }, "eero", "eero inc." },
{ { 0xD0, 0x16, 0xB4 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x17, 0x69 }, "MurataManufa", "Murata Manufacturing Co., Ltd." },
@@ -31235,7 +31514,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x49, 0x8B }, "ZoomServer", "Zoom Server" },
{ { 0xD0, 0x4C, 0xC1 }, "SINTRONESTec", "SINTRONES Technology Corp." },
{ { 0xD0, 0x4D, 0x2C }, "Roku", "Roku, Inc." },
- { { 0xD0, 0x4D, 0xC6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD0, 0x4D, 0xC6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD0, 0x4E, 0x50 }, "MobiwireMobi", "Mobiwire Mobiles (NingBo) Co., LTD" },
{ { 0xD0, 0x4E, 0x99 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x4F, 0x58 }, "RuckusWirele", "Ruckus Wireless" },
@@ -31251,6 +31530,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x55, 0x09 }, "Nintendo", "Nintendo Co.,Ltd" },
{ { 0xD0, 0x55, 0xB2 }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0xD0, 0x56, 0xBF }, "Amosense", "Amosense" },
+ { { 0xD0, 0x56, 0xFB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xD0, 0x57, 0x4C }, "Cisco", "Cisco Systems, Inc" },
{ { 0xD0, 0x57, 0x7B }, "Intel", "Intel Corporate" },
{ { 0xD0, 0x57, 0x85 }, "Pantech", "Pantech Co., Ltd." },
@@ -31286,12 +31566,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0x65, 0xCA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x66, 0x6D }, "BusLanTechno", "Shenzhen Bus-Lan Technology Co., Ltd." },
{ { 0xD0, 0x66, 0x7B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0xD0, 0x67, 0x26 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xD0, 0x67, 0x26 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD0, 0x67, 0xE5 }, "Dell", "Dell Inc." },
{ { 0xD0, 0x69, 0x9E }, "LUMINEXLight", "LUMINEX Lighting Control Equipment" },
+ { { 0xD0, 0x69, 0xC1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x69, 0xD0 }, "VertoMedical", "Verto Medical Solutions, LLC" },
{ { 0xD0, 0x6A, 0x1F }, "Bse", "Bse Co.,Ltd." },
{ { 0xD0, 0x6B, 0x78 }, "Apple", "Apple, Inc." },
+ { { 0xD0, 0x6D, 0xC8 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD0, 0x6D, 0xC9 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xD0, 0x6E, 0xDE }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xD0, 0x6F, 0x4A }, "TopwellInter", "Topwell International Holdings Limited" },
@@ -31362,6 +31644,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0xA9, 0xD3 }, "EMMicroelect", "EM Microelectronic" },
{ { 0xD0, 0xAB, 0xD5 }, "Intel", "Intel Corporate" },
{ { 0xD0, 0xAD, 0x08 }, "HP", "HP Inc." },
+ { { 0xD0, 0xAE, 0x05 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xD0, 0xAE, 0xEC }, "AlphaNetwork", "Alpha Networks Inc." },
{ { 0xD0, 0xAF, 0xB6 }, "LinktopTechn", "Linktop Technology Co., LTD" },
{ { 0xD0, 0xB0, 0xCD }, "Moen", "Moen" },
@@ -31414,7 +31697,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD0, 0xD2, 0x3C }, "Apple", "Apple, Inc." },
{ { 0xD0, 0xD2, 0x86 }, "BeckmanCoult", "Beckman Coulter K.K." },
{ { 0xD0, 0xD2, 0xB0 }, "Apple", "Apple, Inc." },
- { { 0xD0, 0xD3, 0xE0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD0, 0xD3, 0xE0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD0, 0xD3, 0xFC }, "Mios", "Mios, Ltd." },
{ { 0xD0, 0xD4, 0x12 }, "ADBBroadband", "ADB Broadband Italia" },
{ { 0xD0, 0xD4, 0x71 }, "MVTECH", "MVTECH co., Ltd" },
@@ -31542,6 +31825,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0x3A, 0x65 }, "IGRSEngineer", "IGRS Engineering Lab Ltd." },
{ { 0xD4, 0x3A, 0xE9 }, "DONGGUANiptI", "DONGGUAN ipt INDUSTRIAL CO., LTD" },
{ { 0xD4, 0x3B, 0x04 }, "Intel", "Intel Corporate" },
+ { { 0xD4, 0x3B, 0x8A }, "Zhidetechnol", "Shenzhen Zhide technology Co., LTD" },
{ { 0xD4, 0x3D, 0x39 }, "DialogSemico", "Dialog Semiconductor" },
{ { 0xD4, 0x3D, 0x67 }, "CarmaIndustr", "Carma Industries Inc." },
{ { 0xD4, 0x3D, 0x7E }, "MicroStarInt", "Micro-Star Int'l Co, Ltd" },
@@ -31789,7 +32073,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0xDC, 0x09 }, "Mist", "Mist Systems, Inc." },
{ { 0xD4, 0xDC, 0xCD }, "Apple", "Apple, Inc." },
{ { 0xD4, 0xDF, 0x57 }, "AlpinionMedi", "Alpinion Medical Systems" },
- { { 0xD4, 0xE0, 0x53 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD4, 0xE0, 0x53 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD4, 0xE0, 0x8E }, "ValueHD", "ValueHD Corporation" },
{ { 0xD4, 0xE2, 0x2F }, "Roku", "Roku, Inc" },
{ { 0xD4, 0xE2, 0xCB }, "VantivaUSA", "Vantiva USA LLC" },
@@ -31825,7 +32109,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD4, 0xF5, 0x13 }, "TexasInstrum", "Texas Instruments" },
{ { 0xD4, 0xF5, 0x27 }, "Siemens", "Siemens Ag" },
{ { 0xD4, 0xF5, 0x47 }, "Google", "Google, Inc." },
- { { 0xD4, 0xF5, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xD4, 0xF5, 0xEF }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD4, 0xF6, 0x3F }, "Iea", "Iea S.R.L." },
{ { 0xD4, 0xF7, 0x56 }, "zte", "zte corporation" },
{ { 0xD4, 0xF7, 0x86 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
@@ -31926,6 +32210,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x3A, 0xDD }, "RaspberryPiT", "Raspberry Pi Trading Ltd" },
{ { 0xD8, 0x3A, 0xF5 }, "WidebandLabs", "Wideband Labs LLC" },
{ { 0xD8, 0x3B, 0xBF }, "Intel", "Intel Corporate" },
+ { { 0xD8, 0x3B, 0xDA }, "Espressif", "Espressif Inc." },
{ { 0xD8, 0x3C, 0x69 }, "TINNOMobileT", "Shenzhen TINNO Mobile Technology Corp." },
{ { 0xD8, 0x3D, 0x3F }, "JOYNED", "JOYNED GmbH" },
{ { 0xD8, 0x3D, 0xCC }, "UDDTechnolog", "shenzhen UDD Technologies,co.,Ltd" },
@@ -32040,7 +32325,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0x91, 0x2A }, "ZyxelCommuni", "Zyxel Communications Corporation" },
{ { 0xD8, 0x91, 0x36 }, "DoverFueling", "Dover Fueling Solutions" },
{ { 0xD8, 0x93, 0x41 }, "GeneralElect", "General Electric Global Research" },
- { { 0xD8, 0x94, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xD8, 0x94, 0x03 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD8, 0x95, 0x2F }, "TexasInstrum", "Texas Instruments" },
{ { 0xD8, 0x95, 0x63 }, "TaiwanDigita", "Taiwan Digital Streaming Co." },
{ { 0xD8, 0x96, 0x85 }, "GoPro", "GoPro" },
@@ -32122,7 +32407,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0xC6, 0x91 }, "HichanTechno", "Hichan Technology Corp." },
{ { 0xD8, 0xC6, 0xF9 }, "Tracklab", "Tracklab Inc" },
{ { 0xD8, 0xC7, 0x71 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0xD8, 0xC7, 0xC8 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xD8, 0xC7, 0xC8 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xD8, 0xC8, 0xE9 }, "Phicomm", "Phicomm (Shanghai) Co., Ltd." },
{ { 0xD8, 0xC9, 0x9D }, "EaDisplay", "Ea Display Limited" },
{ { 0xD8, 0xCA, 0x06 }, "TitanDataCen", "Titan DataCenters France" },
@@ -32135,6 +32420,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0xCF, 0xBF }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xD8, 0xD0, 0x90 }, "Dell", "Dell Inc." },
{ { 0xD8, 0xD1, 0xCB }, "Apple", "Apple, Inc." },
+ { { 0xD8, 0xD2, 0x61 }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0xD8, 0xD2, 0x7C }, "JemaEnergy", "Jema Energy, Sa" },
{ { 0xD8, 0xD3, 0x85 }, "HewlettPacka", "Hewlett Packard" },
{ { 0xD8, 0xD4, 0x3C }, "Sony", "Sony Corporation" },
@@ -32147,6 +32433,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xD8, 0xD7, 0x23 }, "IDS", "IDS, Inc" },
{ { 0xD8, 0xD7, 0x75 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xD8, 0xD8, 0x66 }, "TozedTechnol", "Shenzhen Tozed Technologies Co.,Ltd." },
+ { { 0xD8, 0xD8, 0xE5 }, "VantivaConne", "Vantiva Connected Home - Technologies Telco" },
{ { 0xD8, 0xDA, 0x52 }, "Apator", "Apator S.A." },
{ { 0xD8, 0xDA, 0xF1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xD8, 0xDC, 0x40 }, "Apple", "Apple, Inc." },
@@ -32344,9 +32631,10 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x66, 0x3A }, "ApacerTechno", "Apacer Technology Inc." },
{ { 0xDC, 0x66, 0x72 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xDC, 0x67, 0x23 }, "baroxKommuni", "barox Kommunikation GmbH" },
- { { 0xDC, 0x68, 0x0C }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xDC, 0x68, 0x0C }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xDC, 0x68, 0x80 }, "zte", "zte corporation" },
{ { 0xDC, 0x68, 0xEB }, "Nintendo", "Nintendo Co.,Ltd" },
+ { { 0xDC, 0x69, 0xB5 }, "eero", "eero inc." },
{ { 0xDC, 0x69, 0xE2 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xDC, 0x6A, 0xE7 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xDC, 0x6A, 0xEA }, "Infinixmobil", "Infinix mobility limited" },
@@ -32391,6 +32679,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0x90, 0x88 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xDC, 0x91, 0x66 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xDC, 0x91, 0xBF }, "AmazonTechno", "Amazon Technologies Inc." },
+ { { 0xDC, 0x92, 0x72 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xDC, 0x96, 0x2C }, "NSTAudio", "NST Audio Ltd" },
{ { 0xDC, 0x97, 0x3A }, "VeranaNetwor", "Verana Networks" },
{ { 0xDC, 0x97, 0x58 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
@@ -32422,6 +32711,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xA6, 0x32 }, "RaspberryPiT", "Raspberry Pi Trading Ltd" },
{ { 0xDC, 0xA6, 0x33 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xDC, 0xA6, 0xBD }, "LanboTechnol", "Beijing Lanbo Technology Co., Ltd." },
+ { { 0xDC, 0xA7, 0x06 }, "KtElectronic", "Chengdu Kt Electronic Hi-Tech Co.,Ltd" },
{ { 0xDC, 0xA7, 0x82 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xDC, 0xA7, 0xD9 }, "CompressorCo", "Compressor Controls Corp" },
{ { 0xDC, 0xA8, 0xCF }, "NewSpinGolf", "New Spin Golf, LLC." },
@@ -32445,7 +32735,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xB4, 0xCA }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xDC, 0xB5, 0x4F }, "Apple", "Apple, Inc." },
{ { 0xDC, 0xB7, 0x2E }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
- { { 0xDC, 0xB7, 0xAC }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xDC, 0xB7, 0xAC }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xDC, 0xB7, 0xFC }, "AlpsElectric", "Alps Electric (Ireland) Ltd" },
{ { 0xDC, 0xB8, 0x08 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0xDC, 0xBB, 0x96 }, "FullSolution", "Full Solution Telecom" },
@@ -32519,6 +32809,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xDC, 0xE8, 0x38 }, "CKTelecom", "CK Telecom (Shenzhen) Limited" },
{ { 0xDC, 0xE9, 0x94 }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0xDC, 0xEA, 0xE7 }, "DLink", "D-Link Corporation" },
+ { { 0xDC, 0xEB, 0x4D }, "MotorolaMobi", "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd." },
{ { 0xDC, 0xEB, 0x53 }, "QianXiaoElec", "Wuhan QianXiao Elecronic Technology CO.,LTD" },
{ { 0xDC, 0xEB, 0x69 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0xDC, 0xEB, 0x94 }, "Cisco", "Cisco Systems, Inc" },
@@ -32561,7 +32852,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x05, 0xC5 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xE0, 0x06, 0x30 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE0, 0x06, 0xE6 }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
- { { 0xE0, 0x07, 0x1B }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xE0, 0x07, 0x1B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE0, 0x07, 0xC2 }, "FujianStarNe", "Fujian Star-Net Communication Co.,Ltd" },
{ { 0xE0, 0x08, 0x55 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0xE0, 0x08, 0x71 }, "DongguanLies", "Dongguan Liesheng Electronic Co., Ltd." },
@@ -32587,6 +32878,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x19, 0xD8 }, "BhTechnologi", "Bh Technologies" },
{ { 0xE0, 0x1A, 0xEA }, "AlliedTelesi", "Allied Telesis, Inc." },
{ { 0xE0, 0x1C, 0x41 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
+ { { 0xE0, 0x1C, 0xA7 }, "AristaNetwor", "Arista Networks, Inc." },
{ { 0xE0, 0x1C, 0xEE }, "BravoTech", "Bravo Tech, Inc." },
{ { 0xE0, 0x1C, 0xFC }, "DLinkInterna", "D-Link International" },
{ { 0xE0, 0x1D, 0x38 }, "HuaqinWorldT", "Beijing HuaqinWorld Technology Co.,Ltd" },
@@ -32681,6 +32973,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE0, 0x5D, 0xA6 }, "DetlefFinkEl", "Detlef Fink Elektronik & Softwareentwicklung" },
{ { 0xE0, 0x5F, 0x45 }, "Apple", "Apple, Inc." },
{ { 0xE0, 0x5F, 0xB9 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xE0, 0x60, 0x4A }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xE0, 0x60, 0x66 }, "Sercomm", "Sercomm Corporation." },
{ { 0xE0, 0x60, 0x89 }, "Cloudleaf", "Cloudleaf, Inc." },
{ { 0xE0, 0x61, 0xB2 }, "ZenointelTec", "Hangzhou Zenointel Technology Co., Ltd" },
@@ -33008,12 +33301,14 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0x58, 0xE7 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x5A, 0xA2 }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xE4, 0x5A, 0xD4 }, "EltexEnterpr", "Eltex Enterprise Ltd." },
+ { { 0xE4, 0x5B, 0xB3 }, "zte", "zte corporation" },
{ { 0xE4, 0x5D, 0x37 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xE4, 0x5D, 0x51 }, "Sfr", "Sfr" },
{ { 0xE4, 0x5D, 0x52 }, "Avaya", "Avaya Inc" },
{ { 0xE4, 0x5D, 0x75 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x5E, 0x1B }, "Google", "Google, Inc." },
{ { 0xE4, 0x5E, 0x37 }, "Intel", "Intel Corporate" },
+ { { 0xE4, 0x5E, 0xCC }, "JuniperNetwo", "Juniper Networks" },
{ { 0xE4, 0x5F, 0x01 }, "RaspberryPiT", "Raspberry Pi Trading Ltd" },
{ { 0xE4, 0x60, 0x17 }, "Intel", "Intel Corporate" },
{ { 0xE4, 0x60, 0x4D }, "zte", "zte corporation" },
@@ -33082,6 +33377,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0x90, 0x7E }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xE4, 0x90, 0xFD }, "Apple", "Apple, Inc." },
{ { 0xE4, 0x92, 0x2A }, "DbgHoldings", "Dbg Holdings Limited" },
+ { { 0xE4, 0x92, 0x82 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x92, 0xE7 }, "GridlinkTech", "Gridlink Tech. Co.,Ltd." },
{ { 0xE4, 0x92, 0xFB }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0x93, 0x6A }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
@@ -33090,6 +33386,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0x98, 0xBB }, "PhyplusMicro", "Phyplus Microelectronics Limited" },
{ { 0xE4, 0x98, 0xD1 }, "MicrosoftMob", "Microsoft Mobile Oy" },
{ { 0xE4, 0x98, 0xD6 }, "Apple", "Apple, Inc." },
+ { { 0xE4, 0x99, 0x5F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE4, 0x9A, 0x79 }, "Apple", "Apple, Inc." },
{ { 0xE4, 0x9A, 0xDC }, "Apple", "Apple, Inc." },
{ { 0xE4, 0x9C, 0x67 }, "Apple", "Apple, Inc." },
@@ -33171,7 +33468,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE4, 0xDC, 0x5F }, "Cofractal", "Cofractal, Inc." },
{ { 0xE4, 0xDC, 0xCC }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE4, 0xDD, 0x79 }, "EnVisionAmer", "En-Vision America, Inc." },
- { { 0xE4, 0xDE, 0x40 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xE4, 0xDE, 0x40 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE4, 0xE0, 0xA6 }, "Apple", "Apple, Inc." },
{ { 0xE4, 0xE0, 0xC5 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE4, 0xE1, 0x12 }, "TexasInstrum", "Texas Instruments" },
@@ -33224,6 +33521,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x05, 0x6D }, "NortelNetwor", "Nortel Networks" },
{ { 0xE8, 0x05, 0xDC }, "Verifone", "Verifone Inc." },
{ { 0xE8, 0x06, 0x88 }, "Apple", "Apple, Inc." },
+ { { 0xE8, 0x06, 0x90 }, "Espressif", "Espressif Inc." },
{ { 0xE8, 0x07, 0x34 }, "ChampionOpti", "Champion Optical Network Engineering, LLC" },
{ { 0xE8, 0x07, 0xBF }, "BoomtechIndu", "Shenzhen Boomtech Industry Co.,Ltd" },
{ { 0xE8, 0x08, 0x8B }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -33236,7 +33534,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x0C, 0x75 }, "Syncbak", "Syncbak, Inc." },
{ { 0xE8, 0x0F, 0xC8 }, "UniversalEle", "Universal Electronics, Inc." },
{ { 0xE8, 0x10, 0x2E }, "ReallySimple", "Really Simple Software, Inc" },
- { { 0xE8, 0x10, 0x98 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xE8, 0x10, 0x98 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE8, 0x11, 0x32 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xE8, 0x11, 0xCA }, "ShandongKaer", "Shandong Kaer Electric.Co.,Ltd" },
{ { 0xE8, 0x13, 0x24 }, "GuangZhouBon", "GuangZhou Bonsoninfo System CO.,LTD" },
@@ -33248,7 +33546,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x16, 0x2B }, "IDEOSecurity", "IDEO Security Co., Ltd." },
{ { 0xE8, 0x16, 0x56 }, "BroadLinkTec", "Hangzhou BroadLink Technology Co.,Ltd" },
{ { 0xE8, 0x17, 0x11 }, "Vipstech", "Shenzhen Vipstech Co., Ltd" },
- { { 0xE8, 0x17, 0xFC }, "FujitsuCloud", "Fujitsu Cloud Technologies Limited" },
+ { { 0xE8, 0x17, 0xFC }, "Fujitsu", "Fujitsu Limited" },
{ { 0xE8, 0x1A, 0x58 }, "Technologic", "Technologic Systems" },
{ { 0xE8, 0x1A, 0xAC }, "ORFEOSOUNDWO", "ORFEO SOUNDWORKS Inc." },
{ { 0xE8, 0x1B, 0x4B }, "amnimo", "amnimo Inc." },
@@ -33258,11 +33556,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x1D, 0xA8 }, "RuckusWirele", "Ruckus Wireless" },
{ { 0xE8, 0x1E, 0x92 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xE8, 0x20, 0xE2 }, "HUMAX", "HUMAX Co., Ltd." },
+ { { 0xE8, 0x22, 0x81 }, "GDMideaAirCo", "GD Midea Air-Conditioning Equipment Co.,Ltd." },
{ { 0xE8, 0x22, 0xB8 }, "SkyworthDigi", "Shenzhen Skyworth Digital Technology CO., Ltd" },
{ { 0xE8, 0x24, 0x04 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0xE8, 0x24, 0xA6 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xE8, 0x25, 0x87 }, "ChilinkIoTTe", "Shenzhen Chilink IoT Technology Co., Ltd." },
- { { 0xE8, 0x26, 0x89 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xE8, 0x26, 0x89 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE8, 0x26, 0x8D }, "SuperElectro", "Shenzhen SuperElectron Technology Co.,Ltd." },
{ { 0xE8, 0x26, 0xB6 }, "CompaniesHou", "Companies House to GlucoRx Technologies Ltd." },
{ { 0xE8, 0x27, 0x25 }, "AxisCommunic", "Axis Communications AB" },
@@ -33305,6 +33604,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x48, 0xB8 }, "TPLink", "TP-Link Corporation Limited" },
{ { 0xE8, 0x49, 0x43 }, "YUGEInformat", "YUGE Information technology Co. Ltd" },
{ { 0xE8, 0x4A, 0x54 }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
+ { { 0xE8, 0x4A, 0x78 }, "Apple", "Apple, Inc." },
{ { 0xE8, 0x4C, 0x4A }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xE8, 0x4C, 0x56 }, "InterceptSer", "Intercept Services Limited" },
{ { 0xE8, 0x4D, 0x74 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -33338,6 +33638,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x5D, 0x86 }, "ChangYowTech", "Chang Yow Technologies International Co.,Ltd." },
{ { 0xE8, 0x5E, 0x53 }, "InfratecDate", "Infratec Datentechnik GmbH" },
{ { 0xE8, 0x5F, 0x02 }, "Apple", "Apple, Inc." },
+ { { 0xE8, 0x5F, 0xB4 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xE8, 0x61, 0x1F }, "DawningInfor", "Dawning Information Industry Co.,Ltd" },
{ { 0xE8, 0x61, 0x7E }, "LiteonTechno", "Liteon Technology Corporation" },
{ { 0xE8, 0x61, 0x83 }, "BlackDiamond", "Black Diamond Advanced Technology, LLC" },
@@ -33404,6 +33705,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0x93, 0xF3 }, "Graphiant", "Graphiant Inc" },
{ { 0xE8, 0x94, 0x4C }, "CogentHealth", "Cogent Healthcare Systems Ltd" },
{ { 0xE8, 0x94, 0xF6 }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
+ { { 0xE8, 0x95, 0x05 }, "MiaoMingInte", "Shenzhen MiaoMing Intelligent Technology Co.,Ltd" },
{ { 0xE8, 0x95, 0x26 }, "LuxsharePrec", "Luxshare Precision Industry CO., LTD." },
{ { 0xE8, 0x96, 0x06 }, "testoInstrum", "testo Instruments (Shenzhen) Co., Ltd." },
{ { 0xE8, 0x97, 0x9A }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
@@ -33458,6 +33760,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xB5, 0xD0 }, "Dell", "Dell Inc." },
{ { 0xE8, 0xB6, 0xC2 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xE8, 0xB7, 0x22 }, "GreenTrolAut", "GreenTrol Automation" },
+ { { 0xE8, 0xB7, 0x23 }, "VatilonElect", "Shenzhen Vatilon Electronics Co.,Ltd" },
{ { 0xE8, 0xB7, 0x48 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xE8, 0xBA, 0x70 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xE8, 0xBA, 0xE2 }, "XploraTechno", "Xplora Technologies AS" },
@@ -33516,6 +33819,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xDE, 0x8E }, "IntegratedDe", "Integrated Device Technology (Malaysia) Sdn. Bhd." },
{ { 0xE8, 0xDE, 0xD6 }, "IntrisingNet", "Intrising Networks, Inc." },
{ { 0xE8, 0xDE, 0xFB }, "MesoticSas", "Mesotic Sas" },
+ { { 0xE8, 0xDF, 0x24 }, "Ohsung", "Ohsung" },
{ { 0xE8, 0xDF, 0x70 }, "AVMAudiovisu", "AVM Audiovisuelles Marketing und Computersysteme GmbH" },
{ { 0xE8, 0xDF, 0xF2 }, "PRF", "PRF Co., Ltd." },
{ { 0xE8, 0xE0, 0x7E }, "SiliconLabor", "Silicon Laboratories" },
@@ -33554,7 +33858,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xE8, 0xF3, 0x75 }, "Nokia", "Nokia" },
{ { 0xE8, 0xF4, 0x08 }, "Intel", "Intel Corporate" },
{ { 0xE8, 0xF6, 0x54 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
- { { 0xE8, 0xF7, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xE8, 0xF7, 0x24 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xE8, 0xF7, 0x2F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xE8, 0xF7, 0x91 }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xE8, 0xF8, 0xD0 }, "NokiaShangha", "Nokia Shanghai Bell Co., Ltd." },
@@ -33588,11 +33892,12 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x01, 0xD5 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xEC, 0x01, 0xE2 }, "FoxconnInter", "Foxconn Interconnect Technology" },
{ { 0xEC, 0x01, 0xEE }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
- { { 0xEC, 0x02, 0x73 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xEC, 0x02, 0x73 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0x04, 0x41 }, "TIGOSemicond", "ShenZhen TIGO Semiconductor Co., Ltd." },
{ { 0xEC, 0x04, 0x82 }, "STL", "STL Systems AG" },
{ { 0xEC, 0x08, 0x6B }, "TpLinkTechno", "Tp-Link Technologies Co.,Ltd." },
{ { 0xEC, 0x08, 0xE5 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
+ { { 0xEC, 0x09, 0xC9 }, "TexasInstrum", "Texas Instruments" },
{ { 0xEC, 0x0B, 0xAE }, "BroadLinkTec", "Hangzhou BroadLink Technology Co.,Ltd" },
{ { 0xEC, 0x0C, 0x96 }, "Nokia", "Nokia" },
{ { 0xEC, 0x0D, 0x51 }, "Apple", "Apple, Inc." },
@@ -33651,6 +33956,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x38, 0x73 }, "JuniperNetwo", "Juniper Networks" },
{ { 0xEC, 0x38, 0x8F }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xEC, 0x3A, 0x52 }, "HuaweiDevice", "Huawei Device Co., Ltd." },
+ { { 0xEC, 0x3B, 0xAF }, "EMMicroelect", "EM Microelectronic" },
{ { 0xEC, 0x3B, 0xF0 }, "NovelSat", "NovelSat" },
{ { 0xEC, 0x3C, 0x5A }, "ShenZhenHeng", "Shen Zhen Heng Sheng Hui Digital Technology Co.,Ltd" },
{ { 0xEC, 0x3C, 0x88 }, "MCNEX", "MCNEX Co.,Ltd." },
@@ -33680,7 +33986,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x4D, 0x3E }, "XiaomiMobile", "Beijing Xiaomi Mobile Software Co., Ltd" },
{ { 0xEC, 0x4D, 0x47 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xEC, 0x4F, 0x82 }, "Calix", "Calix Inc." },
- { { 0xEC, 0x50, 0xAA }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xEC, 0x50, 0xAA }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0x51, 0xBC }, "OppoMobileTe", "Guangdong Oppo Mobile Telecommunications Corp.,Ltd" },
{ { 0xEC, 0x52, 0xDC }, "WORLDMEDIAAN", "WORLD MEDIA AND TECHNOLOGY Corp." },
{ { 0xEC, 0x53, 0x82 }, "HonorDevice", "Honor Device Co., Ltd." },
@@ -33711,7 +34017,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x65, 0x6E }, "ThingsIndust", "The Things Industries B.V." },
{ { 0xEC, 0x65, 0xCC }, "PanasonicAut", "Panasonic Automotive Systems Company of America" },
{ { 0xEC, 0x66, 0xD1 }, "B&WGroup", "B&W Group LTD" },
- { { 0xEC, 0x67, 0x94 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xEC, 0x67, 0x94 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0x68, 0x81 }, "PaloAltoNetw", "Palo Alto Networks" },
{ { 0xEC, 0x6C, 0x9A }, "Arcadyan", "Arcadyan Corporation" },
{ { 0xEC, 0x6C, 0x9F }, "VolansTechno", "Chengdu Volans Technology CO.,LTD" },
@@ -33720,6 +34026,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x6F, 0x0B }, "FADU", "FADU, Inc." },
{ { 0xEC, 0x70, 0x97 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xEC, 0x71, 0xDB }, "ReolinkInnov", "Reolink Innovation Limited" },
+ { { 0xEC, 0x72, 0x5B }, "zte", "zte corporation" },
{ { 0xEC, 0x73, 0x79 }, "Apple", "Apple, Inc." },
{ { 0xEC, 0x74, 0x27 }, "eero", "eero inc." },
{ { 0xEC, 0x74, 0x8C }, "SonyInteract", "Sony Interactive Entertainment Inc." },
@@ -33781,7 +34088,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0x9A, 0x74 }, "HewlettPacka", "Hewlett Packard" },
{ { 0xEC, 0x9B, 0x2D }, "ChinaMobileG", "China Mobile Group Device Co.,Ltd." },
{ { 0xEC, 0x9B, 0x5B }, "Nokia", "Nokia Corporation" },
- { { 0xEC, 0x9B, 0x8B }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xEC, 0x9B, 0x8B }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0x9B, 0xF3 }, "SamsungElect", "Samsung Electro-Mechanics(Thailand)" },
{ { 0xEC, 0x9C, 0x32 }, "SichuanAILin", "Sichuan AI-Link Technology Co., Ltd." },
{ { 0xEC, 0x9E, 0xCD }, "ArtesynEmbed", "Artesyn Embedded Technologies" },
@@ -33877,7 +34184,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0xE9, 0x15 }, "STI", "STI Ltd" },
{ { 0xEC, 0xE9, 0xF8 }, "GuangZhouTRI", "Guang Zhou TRI-SUN Electronics Technology Co., Ltd" },
{ { 0xEC, 0xEA, 0x03 }, "DarfonLighti", "Darfon Lighting Corp" },
- { { 0xEC, 0xEB, 0xB8 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xEC, 0xEB, 0xB8 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0xED, 0x73 }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xEC, 0xEE, 0xD8 }, "ZTLXNetworkT", "ZTLX Network Technology Co.,Ltd" },
{ { 0xEC, 0xEF, 0x17 }, "SunplusTechn", "Sunplus Technology Co., Ltd." },
@@ -33901,7 +34208,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xEC, 0xFA, 0xBC }, "Espressif", "Espressif Inc." },
{ { 0xEC, 0xFA, 0xF4 }, "SenRaTech", "SenRa Tech Pvt. Ltd" },
{ { 0xEC, 0xFC, 0x55 }, "AEberle", "A. Eberle GmbH & Co. KG" },
- { { 0xEC, 0xFC, 0xC6 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xEC, 0xFC, 0xC6 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xEC, 0xFE, 0x7E }, "BlueRadios", "BlueRadios, Inc." },
{ { 0xF0, 0x00, 0x7F }, "JanzContador", "Janz - Contadores de Energia, SA" },
{ { 0xF0, 0x01, 0x6E }, "TianyiTeleco", "Tianyi Telecom Terminals Company Limited" },
@@ -33914,6 +34221,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x07, 0x86 }, "ShandongBitt", "Shandong Bittel Electronics Co., Ltd" },
{ { 0xF0, 0x08, 0xD1 }, "Espressif", "Espressif Inc." },
{ { 0xF0, 0x08, 0xF1 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
+ { { 0xF0, 0x09, 0x0D }, "TpLinkPte", "Tp-Link Corporation Pte. Ltd." },
{ { 0xF0, 0x0D, 0x5C }, "JinQianMaoTe", "JinQianMao Technology Co.,Ltd." },
{ { 0xF0, 0x0D, 0xF5 }, "ACOMAMedical", "ACOMA Medical Industry Co,. Ltd." },
{ { 0xF0, 0x0E, 0x1D }, "Megafone", "Megafone Limited" },
@@ -33929,7 +34237,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x16, 0x28 }, "TechnicolorT", "Technicolor (China) Technology Co., Ltd." },
{ { 0xF0, 0x18, 0x2B }, "LGChem", "LG Chem" },
{ { 0xF0, 0x18, 0x98 }, "Apple", "Apple, Inc." },
- { { 0xF0, 0x1A, 0xA0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF0, 0x1A, 0xA0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF0, 0x1B, 0x24 }, "zte", "zte corporation" },
{ { 0xF0, 0x1B, 0x6C }, "vivoMobileCo", "vivo Mobile Communication Co., Ltd." },
{ { 0xF0, 0x1C, 0x13 }, "LGElectronic", "LG Electronics (Mobile Communications)" },
@@ -34010,7 +34318,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x58, 0x49 }, "CareViewComm", "CareView Communications" },
{ { 0xF0, 0x5A, 0x09 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF0, 0x5B, 0x7B }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
- { { 0xF0, 0x5C, 0x19 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF0, 0x5C, 0x19 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF0, 0x5C, 0x77 }, "Google", "Google, Inc." },
{ { 0xF0, 0x5C, 0xD5 }, "Apple", "Apple, Inc." },
{ { 0xF0, 0x5D, 0x89 }, "Dycon", "Dycon Limited" },
@@ -34018,7 +34326,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x5E, 0xCD }, "TexasInstrum", "Texas Instruments" },
{ { 0xF0, 0x5F, 0x5A }, "GetriebebauN", "Getriebebau NORD GmbH and Co. KG" },
{ { 0xF0, 0x61, 0x30 }, "AdvantagePha", "Advantage Pharmacy Services, LLC" },
- { { 0xF0, 0x61, 0xC0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF0, 0x61, 0xC0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF0, 0x61, 0xF3 }, "ComcastCable", "Comcast Cable Corporation" },
{ { 0xF0, 0x62, 0x0D }, "EgreatTech", "Shenzhen Egreat Tech Corp.,Ltd" },
{ { 0xF0, 0x62, 0x5A }, "RealmeChongq", "Realme Chongqing Mobile Telecommunications Corp.,Ltd." },
@@ -34097,6 +34405,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0x9C, 0xE9 }, "ExtremeNetwo", "Extreme Networks Headquarters" },
{ { 0xF0, 0x9E, 0x4A }, "Intel", "Intel Corporate" },
{ { 0xF0, 0x9E, 0x63 }, "Cisco", "Cisco Systems, Inc" },
+ { { 0xF0, 0x9E, 0x9E }, "Espressif", "Espressif Inc." },
{ { 0xF0, 0x9F, 0xC2 }, "Ubiquiti", "Ubiquiti Inc" },
{ { 0xF0, 0x9F, 0xFC }, "SHARP", "SHARP Corporation" },
{ { 0xF0, 0xA0, 0xB1 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
@@ -34113,6 +34422,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0xAA, 0x0B }, "ArraNetworks", "Arra Networks/ Spectramesh" },
{ { 0xF0, 0xAB, 0x1F }, "zte", "zte corporation" },
{ { 0xF0, 0xAB, 0x54 }, "MitsumiElect", "Mitsumi Electric Co.,Ltd." },
+ { { 0xF0, 0xAB, 0xF3 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xF0, 0xAC, 0xA4 }, "HBCradiomati", "HBC-radiomatic" },
{ { 0xF0, 0xAD, 0x4E }, "GlobalscaleT", "Globalscale Technologies, Inc." },
{ { 0xF0, 0xAE, 0x51 }, "Xi3", "Xi3 Corp" },
@@ -34178,11 +34488,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF0, 0xD4, 0xF6 }, "LarsThrane", "Lars Thrane A/S" },
{ { 0xF0, 0xD4, 0xF7 }, "varramsystem", "varram system" },
{ { 0xF0, 0xD5, 0xBF }, "Intel", "Intel Corporate" },
+ { { 0xF0, 0xD6, 0x35 }, "Apple", "Apple, Inc." },
{ { 0xF0, 0xD6, 0x57 }, "Echosens", "Echosens" },
{ { 0xF0, 0xD7, 0x67 }, "AxemaPassage", "Axema Passagekontroll AB" },
{ { 0xF0, 0xD7, 0x93 }, "Apple", "Apple, Inc." },
{ { 0xF0, 0xD7, 0xAA }, "MotorolaMobi", "Motorola Mobility LLC, a Lenovo Company" },
{ { 0xF0, 0xD7, 0xDC }, "WesineTechno", "Wesine (Wuhan) Technology Co., Ltd." },
+ { { 0xF0, 0xD7, 0xEE }, "HuaweiDevice", "Huawei Device Co., Ltd." },
{ { 0xF0, 0xD8, 0x05 }, "Cisco", "Cisco Systems, Inc" },
{ { 0xF0, 0xD9, 0xB2 }, "Exo", "Exo S.A." },
{ { 0xF0, 0xDA, 0x7C }, "RlhIndustrie", "Rlh Industries,Inc." },
@@ -34246,7 +34558,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x03, 0x21 }, "BeNeXt", "BeNeXt B.V." },
{ { 0xF4, 0x03, 0x2A }, "AmazonTechno", "Amazon Technologies Inc." },
{ { 0xF4, 0x03, 0x2F }, "Reduxio", "Reduxio Systems" },
- { { 0xF4, 0x03, 0x43 }, "HewlettPacka", "Hewlett Packard Enterprise – WW Corporate Headquarters" },
+ { { 0xF4, 0x03, 0x43 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF4, 0x04, 0x4C }, "ValenceTech", "ValenceTech Limited" },
{ { 0xF4, 0x05, 0x95 }, "SagemcomBroa", "Sagemcom Broadband SAS" },
{ { 0xF4, 0x06, 0x16 }, "Apple", "Apple, Inc." },
@@ -34303,7 +34615,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x2C, 0x56 }, "SenorTech", "Senor Tech Co Ltd" },
{ { 0xF4, 0x2D, 0x06 }, "zte", "zte corporation" },
{ { 0xF4, 0x2E, 0x48 }, "zte", "zte corporation" },
- { { 0xF4, 0x2E, 0x7F }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF4, 0x2E, 0x7F }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF4, 0x30, 0x8B }, "XiaomiCommun", "Xiaomi Communications Co Ltd" },
{ { 0xF4, 0x30, 0xB9 }, "HewlettPacka", "Hewlett Packard" },
{ { 0xF4, 0x31, 0x49 }, "PixelFX", "Pixel FX" },
@@ -34365,6 +34677,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x55, 0xE0 }, "NicewayCNCTe", "Niceway CNC Technology Co.,Ltd.Hunan Province" },
{ { 0xF4, 0x57, 0x3E }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xF4, 0x58, 0x42 }, "BoxxTV", "Boxx TV Ltd" },
+ { { 0xF4, 0x5B, 0x29 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF4, 0x5B, 0x73 }, "WanjiaanInte", "Wanjiaan Interconnected Technology Co., Ltd" },
{ { 0xF4, 0x5C, 0x89 }, "Apple", "Apple, Inc." },
{ { 0xF4, 0x5E, 0xAB }, "TexasInstrum", "Texas Instruments" },
@@ -34447,11 +34760,13 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF4, 0x99, 0xAC }, "WEBERSchraub", "WEBER Schraubautomaten GmbH" },
{ { 0xF4, 0x9C, 0x12 }, "Structab", "Structab AB" },
{ { 0xF4, 0x9D, 0x8A }, "FantasiaTrad", "Fantasia Trading LLC" },
+ { { 0xF4, 0x9E, 0xCE }, "SenaTechnolo", "Sena Technologies Co., Ltd." },
{ { 0xF4, 0x9E, 0xEF }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0xF4, 0x9F, 0x54 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF4, 0x9F, 0xF3 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF4, 0xA1, 0x7F }, "MarquardtEle", "Marquardt Electronics Technology (Shanghai) Co.Ltd" },
{ { 0xF4, 0xA2, 0x94 }, "EagleWorldDe", "Eagle World Development Co., Limited" },
+ { { 0xF4, 0xA3, 0x10 }, "Apple", "Apple, Inc." },
{ { 0xF4, 0xA4, 0x75 }, "Intel", "Intel Corporate" },
{ { 0xF4, 0xA4, 0xD6 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF4, 0xA5, 0x2A }, "HawaTechnolo", "Hawa Technologies Inc" },
@@ -34689,6 +35004,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x3F, 0x51 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xF8, 0x42, 0x88 }, "Apple", "Apple, Inc." },
{ { 0xF8, 0x42, 0xFB }, "YasudaJoho", "Yasuda Joho Co.,ltd." },
+ { { 0xF8, 0x44, 0x77 }, "SiliconLabor", "Silicon Laboratories" },
{ { 0xF8, 0x44, 0xE3 }, "TaicangT&WEl", "Taicang T&W Electronics" },
{ { 0xF8, 0x45, 0xAD }, "KonkaGroup", "Konka Group Co., Ltd." },
{ { 0xF8, 0x45, 0xC4 }, "NetforwardMi", "Shenzhen Netforward Micro-Electronic Co., Ltd." },
@@ -34703,6 +35019,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x4C, 0xDA }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF8, 0x4D, 0x33 }, "FiberhomeTel", "Fiberhome Telecommunication Technologies Co.,LTD" },
{ { 0xF8, 0x4D, 0x89 }, "Apple", "Apple, Inc." },
+ { { 0xF8, 0x4D, 0x8B }, "ecamtek", "ecamtek" },
{ { 0xF8, 0x4D, 0xFC }, "HikvisionDig", "Hangzhou Hikvision Digital Technology Co.,Ltd." },
{ { 0xF8, 0x4E, 0x17 }, "Sony", "Sony Corporation" },
{ { 0xF8, 0x4E, 0x58 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
@@ -34738,7 +35055,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0x5E, 0x42 }, "VantivaUSA", "Vantiva USA LLC" },
{ { 0xF8, 0x5E, 0xA0 }, "Intel", "Intel Corporate" },
{ { 0xF8, 0x5F, 0x2A }, "Nokia", "Nokia Corporation" },
- { { 0xF8, 0x60, 0xF0 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xF8, 0x60, 0xF0 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xF8, 0x62, 0x14 }, "Apple", "Apple, Inc." },
{ { 0xF8, 0x62, 0xAA }, "xn", "xn systems" },
{ { 0xF8, 0x63, 0x3F }, "Intel", "Intel Corporate" },
@@ -34965,6 +35282,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xF8, 0xF4, 0x64 }, "RaweElectoni", "Rawe Electonic GmbH" },
{ { 0xF8, 0xF5, 0x19 }, "Rulogic", "Rulogic Inc." },
{ { 0xF8, 0xF5, 0x32 }, "ARRISGroup", "ARRIS Group, Inc." },
+ { { 0xF8, 0xF5, 0x8C }, "Apple", "Apple, Inc." },
{ { 0xF8, 0xF7, 0xB9 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xF8, 0xF7, 0xD3 }, "Internationa", "International Communications Corporation" },
{ { 0xF8, 0xF7, 0xFF }, "SynTech", "Syn-Tech Systems Inc" },
@@ -34994,6 +35312,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFA, 0xE1, 0x90 }, "InWinDevelop", "In Win Development Inc." },
{ { 0xFA, 0xE5, 0x1A }, "RSAELabs", "RSAE Labs Inc" },
{ { 0xFA, 0xEB, 0x6E }, "xRANorg", "xRAN.org" },
+ { { 0xFA, 0xEE, 0xB6 }, "JiahuaZhongl", "Shenzhen Jiahua Zhongli Technology Co., LTD" },
{ { 0xFA, 0xF9, 0xC0 }, "RAID", "RAID Incorporated" },
{ { 0xFC, 0x00, 0x12 }, "ToshibaSamsu", "Toshiba Samsung Storage Technolgoy Korea Corporation" },
{ { 0xFC, 0x01, 0x7C }, "HonHaiPrecis", "Hon Hai Precision Ind. Co.,Ltd." },
@@ -35170,7 +35489,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0x7C, 0xE7 }, "FciUsa", "Fci Usa Llc" },
{ { 0xFC, 0x7D, 0x6C }, "HYESUNGTECHW", "HYESUNG TECHWIN Co., Ltd" },
{ { 0xFC, 0x7F, 0x56 }, "CoSystContro", "CoSyst Control Systems GmbH" },
- { { 0xFC, 0x7F, 0xF1 }, "ArubaHewlett", "Aruba, a Hewlett Packard Enterprise Company" },
+ { { 0xFC, 0x7F, 0xF1 }, "HewlettPacka", "Hewlett Packard Enterprise" },
{ { 0xFC, 0x83, 0x29 }, "Treitechnics", "Trei technics" },
{ { 0xFC, 0x83, 0x99 }, "Avaya", "Avaya Inc" },
{ { 0xFC, 0x83, 0xC6 }, "NRadioTechno", "N-Radio Technologies Co., Ltd." },
@@ -35240,6 +35559,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0xAA, 0xB6 }, "SamsungElect", "Samsung Electronics Co.,Ltd" },
{ { 0xFC, 0xAB, 0x90 }, "HuaweiTechno", "Huawei Technologies Co.,Ltd" },
{ { 0xFC, 0xAD, 0x0F }, "QtsNetworks", "Qts Networks" },
+ { { 0xFC, 0xAE, 0x2B }, "TitanProduct", "Titan Products Ltd." },
{ { 0xFC, 0xAE, 0x34 }, "ARRISGroup", "ARRIS Group, Inc." },
{ { 0xFC, 0xAF, 0x6A }, "Qulsar", "Qulsar Inc" },
{ { 0xFC, 0xAF, 0xAC }, "Socionext", "Socionext Inc." },
@@ -35248,6 +35568,7 @@ static const manuf_oui24_t global_manuf_oui24_table[] = {
{ { 0xFC, 0xB0, 0xDE }, "CloudNetwork", "Cloud Network Technology Singapore Pte. Ltd." },
{ { 0xFC, 0xB1, 0x0D }, "TianKunTechn", "Shenzhen Tian Kun Technology Co.,LTD." },
{ { 0xFC, 0xB2, 0xD6 }, "CigShanghai", "Cig Shanghai Co Ltd" },
+ { { 0xFC, 0xB3, 0x87 }, "LeapmotorNew", "Leapmotor (Jinhua) New Energy Vehicle Parts Technology Co., Ltd." },
{ { 0xFC, 0xB3, 0xBC }, "Intel", "Intel Corporate" },
{ { 0xFC, 0xB4, 0x67 }, "Espressif", "Espressif Inc." },
{ { 0xFC, 0xB4, 0xE6 }, "AskeyCompute", "Askey Computer Corp" },
@@ -35665,6 +35986,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x10, 0x54, 0xD2, 0xC0 }, "LUXSHAREICT", "LUXSHARE-ICT Co., Ltd." },
{ { 0x10, 0x54, 0xD2, 0xD0 }, "Sunwealthtec", "Sun wealth technology corporation limited" },
{ { 0x10, 0x54, 0xD2, 0xE0 }, "CosmoAiotTec", "Cosmo Aiot Technology Co Ltd" },
+ { { 0x10, 0x63, 0xA3, 0x00 }, "ChangshaSunv", "Changsha Sunvote Limited" },
+ { { 0x10, 0x63, 0xA3, 0x10 }, "JacobsTechno", "Jacobs Technology, Inc." },
+ { { 0x10, 0x63, 0xA3, 0x20 }, "SichuanPuhui", "Sichuan Puhui Zhida Communication Equipment Co. Ltd." },
+ { { 0x10, 0x63, 0xA3, 0x30 }, "NextvisionSt", "Nextvision Stabilized Systems LTD" },
+ { { 0x10, 0x63, 0xA3, 0x40 }, "GantechETech", "Gantech E Technologies Private Limited" },
+ { { 0x10, 0x63, 0xA3, 0x50 }, "LianxinTechn", "Lianxin (Dalian) Technology Co.,Ltd" },
+ { { 0x10, 0x63, 0xA3, 0x60 }, "MorganSchaff", "Morgan Schaffer" },
+ { { 0x10, 0x63, 0xA3, 0x70 }, "NRS", "NRS Co., Ltd." },
+ { { 0x10, 0x63, 0xA3, 0x80 }, "CDElectronic", "Shenzhen C & D Electronics Co., Ltd." },
+ { { 0x10, 0x63, 0xA3, 0x90 }, "Nexite", "Nexite" },
+ { { 0x10, 0x63, 0xA3, 0xA0 }, "ITABShopprod", "ITAB Shop products" },
+ { { 0x10, 0x63, 0xA3, 0xB0 }, "Shenzhenshis", "Shen zhen shi shang mei dian zi shang wu you xian gong si" },
+ { { 0x10, 0x63, 0xA3, 0xC0 }, "FlatPro", "Flat-Pro Llc" },
+ { { 0x10, 0x63, 0xA3, 0xD0 }, "TritonSensor", "Triton Sensors" },
+ { { 0x10, 0x63, 0xA3, 0xE0 }, "Annapurnalab", "Annapurna labs" },
{ { 0x10, 0xDC, 0xB6, 0x00 }, "ApexSupplyCh", "Apex Supply Chain Technologies" },
{ { 0x10, 0xDC, 0xB6, 0x10 }, "HitachiEnerg", "Hitachi Energy Switzerland Ltd" },
{ { 0x10, 0xDC, 0xB6, 0x20 }, "CalCompIndus", "Cal-Comp Industria E Comercio De Eletronicos E Informatica Ltda" },
@@ -36413,7 +36749,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x30, 0x49, 0x50, 0x00 }, "GuangzhouLia", "Guangzhou Lian-med Technology Co.,Ltd." },
{ { 0x30, 0x49, 0x50, 0x10 }, "AtliWorld", "Atli World Limited" },
{ { 0x30, 0x49, 0x50, 0x20 }, "Sercomm", "Sercomm Corporation." },
- { { 0x30, 0x49, 0x50, 0x30 }, "MorganSchaff", "Morgan Schaffer Inc." },
+ { { 0x30, 0x49, 0x50, 0x30 }, "MorganSchaff", "Morgan Schaffer" },
{ { 0x30, 0x49, 0x50, 0x40 }, "AdvancedMicr", "Advanced Microwave Engineering Srl" },
{ { 0x30, 0x49, 0x50, 0x50 }, "IKElektronik", "IK Elektronik GmbH" },
{ { 0x30, 0x49, 0x50, 0x60 }, "Curb", "Curb, Inc." },
@@ -36470,6 +36806,9 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x34, 0x29, 0x8F, 0xC0 }, "AlbertHandtm", "Albert Handtmann Maschinenfabrik GmbH&Co.KG" },
{ { 0x34, 0x29, 0x8F, 0xD0 }, "KeystoneElec", "Keystone Electronic Solutions" },
{ { 0x34, 0x29, 0x8F, 0xE0 }, "ARCTechnolog", "ARC Technology Co., Ltd" },
+ { { 0x34, 0x46, 0x63, 0x10 }, "ChainReactio", "Chain Reaction Ltd" },
+ { { 0x34, 0x46, 0x63, 0x40 }, "Luminys", "Luminys Systems Corporation" },
+ { { 0x34, 0x46, 0x63, 0xC0 }, "mirleautomat", "mirle automation corporation" },
{ { 0x34, 0xC8, 0xD6, 0x00 }, "ZhangyueTech", "Shenzhen Zhangyue Technology Co., Ltd" },
{ { 0x34, 0xC8, 0xD6, 0x10 }, "XmitechElect", "Shenzhen Xmitech Electronic Co.,Ltd" },
{ { 0x34, 0xC8, 0xD6, 0x20 }, "GuangzhouLin", "Guangzhou Linkpi Technology Co. Ltd" },
@@ -37308,6 +37647,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x58, 0xFC, 0xDB, 0xC0 }, "ExcenonMobil", "Excenon Mobile Technology Co., Ltd." },
{ { 0x58, 0xFC, 0xDB, 0xD0 }, "XiamenLeelen", "Xiamen Leelen Technology Co.,Ltd" },
{ { 0x58, 0xFC, 0xDB, 0xE0 }, "AppliedDevic", "Applied Device Technologies" },
+ { { 0x5C, 0x5A, 0x4C, 0x00 }, "JinchuanGrou", "Jinchuan Group Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0x10 }, "OrchidProduc", "Orchid Products Limited" },
+ { { 0x5C, 0x5A, 0x4C, 0x20 }, "ITSPartnerSL", "ITS Partner (O.B.S) S.L." },
+ { { 0x5C, 0x5A, 0x4C, 0x30 }, "Ferroamp", "Ferroamp AB (publ)" },
+ { { 0x5C, 0x5A, 0x4C, 0x40 }, "YihuaCommuni", "Yihua Communications(Huizhou)Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0x50 }, "Annapurnalab", "Annapurna labs" },
+ { { 0x5C, 0x5A, 0x4C, 0x60 }, "SunsoontTech", "Shenzhen Sunsoont Technology Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0x70 }, "AceComputers", "Ace Computers" },
+ { { 0x5C, 0x5A, 0x4C, 0x80 }, "SpotAI", "Spot AI, Inc." },
+ { { 0x5C, 0x5A, 0x4C, 0x90 }, "LinktechSyst", "Linktech Systerm Technology Co.,Ltd" },
+ { { 0x5C, 0x5A, 0x4C, 0xA0 }, "SkysoftInfo&", "Chengdu Skysoft Info&Tech Co.,Ltd." },
+ { { 0x5C, 0x5A, 0x4C, 0xB0 }, "EsmeSolution", "Esme Solutions" },
+ { { 0x5C, 0x5A, 0x4C, 0xC0 }, "tarm", "tarm AG" },
+ { { 0x5C, 0x5A, 0x4C, 0xD0 }, "Aeva", "Aeva, Inc." },
+ { { 0x5C, 0x5A, 0x4C, 0xE0 }, "AiRider", "Ai-Rider Corporation" },
{ { 0x5C, 0x6A, 0xEC, 0x00 }, "AcuityBrands", "Acuity Brands Lighting" },
{ { 0x5C, 0x6A, 0xEC, 0x10 }, "SmilembbTech", "Shanghai Smilembb Technology Co.,LTD" },
{ { 0x5C, 0x6A, 0xEC, 0x20 }, "MingyueTechn", "Shenzhen Mingyue Technology lnnovation Co.,Ltd" },
@@ -37338,6 +37692,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x5C, 0x85, 0x7E, 0xC0 }, "Annapurnalab", "Annapurna labs" },
{ { 0x5C, 0x85, 0x7E, 0xD0 }, "NautechElect", "Nautech Electronics Ltd" },
{ { 0x5C, 0x85, 0x7E, 0xE0 }, "GuoyiLiangzi", "Guoyi Liangzi (Hefei) Technology Co., Ltd(CIQTEK)" },
+ { { 0x5C, 0x87, 0xD8, 0x00 }, "NanjingShufa", "Nanjing Shufan Information Technology Co., Ltd." },
+ { { 0x5C, 0x87, 0xD8, 0x10 }, "COMETSYSTEMs", "COMET SYSTEM, s.r.o." },
+ { { 0x5C, 0x87, 0xD8, 0x20 }, "Freeus", "Freeus LLC" },
+ { { 0x5C, 0x87, 0xD8, 0x30 }, "BeiensImport", "Shenzhen Beiens Import and Export Co.,Ltd" },
+ { { 0x5C, 0x87, 0xD8, 0x40 }, "TelfiTechnol", "Telfi Technologies Private Limited" },
+ { { 0x5C, 0x87, 0xD8, 0x50 }, "AdvancedInte", "Hangzhou Advanced Intelligent Manufacturing Systems Co.,Ltd." },
+ { { 0x5C, 0x87, 0xD8, 0x60 }, "JianyiTechno", "Shanghai Jianyi Technology Co., Ltd" },
+ { { 0x5C, 0x87, 0xD8, 0x70 }, "TradewindsNe", "Tradewinds Networks Incorporated" },
+ { { 0x5C, 0x87, 0xD8, 0x80 }, "fmadengineer", "fmad engineering" },
+ { { 0x5C, 0x87, 0xD8, 0x90 }, "Annapurnalab", "Annapurna labs" },
+ { { 0x5C, 0x87, 0xD8, 0xA0 }, "PiscisNetwor", "Piscis Networks Private Limited" },
+ { { 0x5C, 0x87, 0xD8, 0xB0 }, "CredoDiagnos", "Credo Diagnostics Biomedical Pte. Ltd. Taiwan branch(SINGAPORE)" },
+ { { 0x5C, 0x87, 0xD8, 0xC0 }, "DragonglassT", "Dragonglass Technology(Shenzhen)Co.,Ltd." },
+ { { 0x5C, 0x87, 0xD8, 0xD0 }, "ZiliaTechnol", "Zilia Technologies" },
+ { { 0x5C, 0x87, 0xD8, 0xE0 }, "TownskyTechn", "Beijing Townsky Technology Co.,Ltd" },
{ { 0x5C, 0xF2, 0x86, 0x00 }, "SignweiElect", "Hangzhou Signwei Electronics Technology Co., Ltd" },
{ { 0x5C, 0xF2, 0x86, 0x10 }, "iSonTech", "iSon Tech" },
{ { 0x5C, 0xF2, 0x86, 0x20 }, "NotionInform", "Shanghai Notion Information Technology CO.,LTD." },
@@ -37399,8 +37768,20 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x60, 0x95, 0xCE, 0xD0 }, "GovComm", "GovComm" },
{ { 0x60, 0x95, 0xCE, 0xE0 }, "VNS", "VNS Inc." },
{ { 0x60, 0xA4, 0x34, 0x00 }, "Uniqon", "Uniqon" },
+ { { 0x60, 0xA4, 0x34, 0x10 }, "EEGEnterpris", "EEG Enterprises Inc" },
+ { { 0x60, 0xA4, 0x34, 0x20 }, "Zhongxinhuil", "Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd." },
+ { { 0x60, 0xA4, 0x34, 0x30 }, "lncarTechnol", "Shenzhen lncar Technology Co.,Ltd" },
+ { { 0x60, 0xA4, 0x34, 0x40 }, "HumanlifeInf", "Human-life Information Platforms Institute" },
+ { { 0x60, 0xA4, 0x34, 0x50 }, "LanlyTechnol", "Hangzhou Lanly Technology Co., Ltd." },
{ { 0x60, 0xA4, 0x34, 0x60 }, "LechpolElect", "Lechpol Electronics Leszek Sp.k." },
+ { { 0x60, 0xA4, 0x34, 0x70 }, "DrovTechnolo", "Drov Technologies" },
+ { { 0x60, 0xA4, 0x34, 0x80 }, "TimeEngineer", "Time Engineering Co., Ltd." },
+ { { 0x60, 0xA4, 0x34, 0x90 }, "HantangFengy", "Shenzhen HantangFengyun Technology Co.,Ltd" },
+ { { 0x60, 0xA4, 0x34, 0xA0 }, "Scancom", "Scancom" },
+ { { 0x60, 0xA4, 0x34, 0xB0 }, "BweetechElec", "Bweetech Electronics Technology (Shanghai) Co.,Ltd" },
{ { 0x60, 0xA4, 0x34, 0xC0 }, "Annapurnalab", "Annapurna labs" },
+ { { 0x60, 0xA4, 0x34, 0xD0 }, "Kaynestechno", "Kaynes technology India Ltd" },
+ { { 0x60, 0xA4, 0x34, 0xE0 }, "Knvision", "Knvision" },
{ { 0x60, 0xD7, 0xE3, 0x00 }, "Avalun", "Avalun" },
{ { 0x60, 0xD7, 0xE3, 0x10 }, "Elap", "Elap s.r.l." },
{ { 0x60, 0xD7, 0xE3, 0x20 }, "Novoinnovati", "Novo innovations Ltd" },
@@ -38366,7 +38747,7 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0x8C, 0xA6, 0x82, 0x40 }, "ChinaInforma", "China Information Technology Designing&Consulting Institute Co., Ltd." },
{ { 0x8C, 0xA6, 0x82, 0x50 }, "QstarTechnol", "Qstar Technology Co,Ltd" },
{ { 0x8C, 0xA6, 0x82, 0x60 }, "HuijueNetwor", "ShangHai Huijue Network Communication Equipment CO., Ltd." },
- { { 0x8C, 0xA6, 0x82, 0x70 }, "CanpointEduc", "Wuhan Canpoint Education&Technology Co.,Ltd" },
+ { { 0x8C, 0xA6, 0x82, 0x70 }, "Anhuiseekere", "Anhui seeker electronic technology Co.,LTD" },
{ { 0x8C, 0xA6, 0x82, 0x80 }, "Schok", "Schok LLC" },
{ { 0x8C, 0xA6, 0x82, 0x90 }, "BarkodesBilg", "Barkodes Bilgisayar Sistemleri Bilgi Iletisim ve Y" },
{ { 0x8C, 0xA6, 0x82, 0xA0 }, "Schok", "Schok LLC" },
@@ -39566,6 +39947,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0xC8, 0xF5, 0xD6, 0xC0 }, "Eltako", "Eltako GmbH" },
{ { 0xC8, 0xF5, 0xD6, 0xD0 }, "Volansystech", "Volansys technologies pvt ltd" },
{ { 0xC8, 0xF5, 0xD6, 0xE0 }, "Heitec", "Heitec Ag" },
+ { { 0xC8, 0xFF, 0xBF, 0x00 }, "HCElectronic", "Shenzhen HC Electronic Technology Co.,LTD" },
+ { { 0xC8, 0xFF, 0xBF, 0x10 }, "robertjuliat", "robert juliat" },
+ { { 0xC8, 0xFF, 0xBF, 0x20 }, "CognizantMob", "Cognizant Mobility GmbH" },
+ { { 0xC8, 0xFF, 0xBF, 0x30 }, "Tectoy", "Tectoy S.A" },
+ { { 0xC8, 0xFF, 0xBF, 0x40 }, "Jingyibeifan", "Beijing Jingyibeifang Instrument Co.,Ltd." },
+ { { 0xC8, 0xFF, 0xBF, 0x50 }, "ChongqingZhi", "Chongqing Zhizhu Huaxin Technology Co.,Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0x60 }, "AccuphyTechn", "Accuphy Technologies Beijing Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0x70 }, "IndraRenewab", "Indra Renewable Technologies" },
+ { { 0xC8, 0xFF, 0xBF, 0x80 }, "FengrundaTec", "Shenzhen Fengrunda Technology Co.,Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0x90 }, "ShandongWans", "Shandong Wanshuo Optoelectronic Equipment Co.,Ltd" },
+ { { 0xC8, 0xFF, 0xBF, 0xA0 }, "MaestroFood", "Maestro Food Co." },
+ { { 0xC8, 0xFF, 0xBF, 0xB0 }, "PubliBike", "PubliBike SA" },
+ { { 0xC8, 0xFF, 0xBF, 0xC0 }, "DensityIO", "Density.IO" },
+ { { 0xC8, 0xFF, 0xBF, 0xD0 }, "ALDESDomNexX", "ALDES DomNexX" },
+ { { 0xC8, 0xFF, 0xBF, 0xE0 }, "HtItalia", "Ht Italia Srl" },
{ { 0xCC, 0x1B, 0xE0, 0x00 }, "MicrotechSys", "Microtech System,Inc" },
{ { 0xCC, 0x1B, 0xE0, 0x10 }, "Daotongtianx", "Beijing Daotongtianxia Co.Ltd." },
{ { 0xCC, 0x1B, 0xE0, 0x20 }, "iTrinetech", "i-Trinetech Co.,Ltd." },
@@ -40161,6 +40557,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0xE8, 0xFF, 0x1E, 0xC0 }, "FracarroRadi", "Fracarro Radioindustrie Srl" },
{ { 0xE8, 0xFF, 0x1E, 0xD0 }, "AZWTechnolog", "Shenzhen AZW Technology Co., Ltd." },
{ { 0xE8, 0xFF, 0x1E, 0xE0 }, "kstarScience", "Shenzhen kstar Science & Technology Co., Ltd" },
+ { { 0xEC, 0x5B, 0xCD, 0x00 }, "DongGuanYung", "Dong Guan Yung Fu Electronics Ltd." },
+ { { 0xEC, 0x5B, 0xCD, 0x10 }, "IngersollRan", "Ingersoll Rand" },
+ { { 0xEC, 0x5B, 0xCD, 0x20 }, "SferaLabs", "Sfera Labs S.r.l." },
+ { { 0xEC, 0x5B, 0xCD, 0x30 }, "HefeiBOEVisi", "Hefei BOE Vision-electronic Technology Co.,Ltd." },
+ { { 0xEC, 0x5B, 0xCD, 0x40 }, "GreenSolutio", "Green Solutions (Chengdu) Co., Ltd" },
+ { { 0xEC, 0x5B, 0xCD, 0x50 }, "QunfangTechn", "Shenzhen Qunfang Technology Co., LTD." },
+ { { 0xEC, 0x5B, 0xCD, 0x60 }, "JiangsuFushi", "Jiangsu Fushi Electronic Technology Co., Ltd" },
+ { { 0xEC, 0x5B, 0xCD, 0x70 }, "Annapurnalab", "Annapurna labs" },
+ { { 0xEC, 0x5B, 0xCD, 0x80 }, "DoosanBobcat", "Doosan Bobcat North America" },
+ { { 0xEC, 0x5B, 0xCD, 0x90 }, "C&DTechnolog", "C&D Technologies" },
+ { { 0xEC, 0x5B, 0xCD, 0xA0 }, "CareSix", "CareSix Inc." },
+ { { 0xEC, 0x5B, 0xCD, 0xB0 }, "StepOver", "StepOver GmbH" },
+ { { 0xEC, 0x5B, 0xCD, 0xC0 }, "Quicklert", "Quicklert Inc" },
+ { { 0xEC, 0x5B, 0xCD, 0xD0 }, "ASHIDAElectr", "ASHIDA Electronics Pvt. Ltd" },
+ { { 0xEC, 0x5B, 0xCD, 0xE0 }, "AutelRobotic", "Autel Robotics USA LLC" },
{ { 0xEC, 0x9A, 0x0C, 0x00 }, "HexindaSuppl", "Shenzhen Hexinda Supply Chain Management Co.Ltd" },
{ { 0xEC, 0x9A, 0x0C, 0x10 }, "NaxiangTechn", "Shenzhen Naxiang Technology Co., Ltd" },
{ { 0xEC, 0x9A, 0x0C, 0x20 }, "YitoaDigital", "Shenzhen Yitoa Digital Technology Co., Ltd." },
@@ -40401,6 +40812,21 @@ static const manuf_oui28_t global_manuf_oui28_table[] = {
{ { 0xF8, 0x1D, 0x78, 0xC0 }, "ShenzhuoyueT", "Shenzhuoyue Technology.,Ltd" },
{ { 0xF8, 0x1D, 0x78, 0xD0 }, "Tofino", "Tofino" },
{ { 0xF8, 0x1D, 0x78, 0xE0 }, "EnokCommunic", "Guangdong Enok Communication Co., Ltd." },
+ { { 0xF8, 0x7A, 0x39, 0x00 }, "YongxieTechn", "Hangzhou Yongxie Technology Co., Ltd" },
+ { { 0xF8, 0x7A, 0x39, 0x10 }, "JiemuElectro", "Hangzhou Jiemu Electronic Technology Co.,Ltd" },
+ { { 0xF8, 0x7A, 0x39, 0x20 }, "TotaloneTECH", "Total-one TECHNOLOGY CO., LTD." },
+ { { 0xF8, 0x7A, 0x39, 0x30 }, "Overview", "Overview Limited" },
+ { { 0xF8, 0x7A, 0x39, 0x40 }, "Zsystemtechn", "Zsystem technology co.," },
+ { { 0xF8, 0x7A, 0x39, 0x50 }, "tatwah", "tatwah SA" },
+ { { 0xF8, 0x7A, 0x39, 0x60 }, "Annapurnalab", "Annapurna labs" },
+ { { 0xF8, 0x7A, 0x39, 0x70 }, "ElectronTech", "Shenzhen Electron Technology Co., LTD." },
+ { { 0xF8, 0x7A, 0x39, 0x80 }, "ZhongyuanYis", "Beijing Zhongyuan Yishang Technology Co.,LTD" },
+ { { 0xF8, 0x7A, 0x39, 0x90 }, "Shenzhenshil", "Shenzhenshilemaikejiyouxiangongsi" },
+ { { 0xF8, 0x7A, 0x39, 0xA0 }, "FeltrinIndus", "Feltrin Industria E Comercio" },
+ { { 0xF8, 0x7A, 0x39, 0xB0 }, "FuyanshengEl", "FuyanshengElectronicFujian Co.ltd" },
+ { { 0xF8, 0x7A, 0x39, 0xC0 }, "FlextronicsI", "Flextronics International Kft" },
+ { { 0xF8, 0x7A, 0x39, 0xD0 }, "XiamenTonmin", "Xiamen Tonmind Technology Co.,Ltd" },
+ { { 0xF8, 0x7A, 0x39, 0xE0 }, "Cognosos", "Cognosos, Inc." },
{ { 0xF8, 0x8A, 0x3C, 0x00 }, "Art", "Art Spa" },
{ { 0xF8, 0x8A, 0x3C, 0x10 }, "CarefreeColo", "Carefree of Colorado" },
{ { 0xF8, 0x8A, 0x3C, 0x20 }, "KLATUNetwork", "KLATU Networks Inc" },
@@ -41460,7 +41886,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0x30, 0xB0 }, "VXTechnologi", "VX Technologies Inc." },
{ { 0x00, 0x50, 0xC2, 0x30, 0xC0 }, "Teamlog", "Teamlog" },
{ { 0x00, 0x50, 0xC2, 0x30, 0xD0 }, "Setaram", "Setaram" },
- { { 0x00, 0x50, 0xC2, 0x30, 0xE0 }, "Obvius", "Obvius" },
+ { { 0x00, 0x50, 0xC2, 0x30, 0xE0 }, "LevitonManuf", "Leviton Manufacturing Co., Inc" },
{ { 0x00, 0x50, 0xC2, 0x30, 0xF0 }, "Digicontrole", "Digicontrole Lda" },
{ { 0x00, 0x50, 0xC2, 0x31, 0x00 }, "Cybertron", "Cybertron Co., Ltd." },
{ { 0x00, 0x50, 0xC2, 0x31, 0x10 }, "Comodo", "Comodo" },
@@ -42936,7 +43362,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0x8D, 0x10 }, "BachmannMoni", "Bachmann Monitoring GmbH" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x20 }, "TTi", "TTi Ltd" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x30 }, "IFAM", "IFAM GmbH" },
- { { 0x00, 0x50, 0xC2, 0x8D, 0x40 }, "InternetProt", "Internet Protocolo Lógica SL" },
+ { { 0x00, 0x50, 0xC2, 0x8D, 0x40 }, "InternetProt", "Internet Protocolo Logica Sl" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x50 }, "PeekTraffic", "Peek Traffic Corp" },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x60 }, "UltraVisionS", "UltraVision Security Systems, Inc." },
{ { 0x00, 0x50, 0xC2, 0x8D, 0x70 }, "PolygonInfor", "Polygon Informatics Ltd." },
@@ -43590,7 +44016,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x00, 0x50, 0xC2, 0xB5, 0xF0 }, "NorthBridgeT", "North Bridge Technologies" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x00 }, "OooNpfAtis", "Ooo Npf Atis" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x10 }, "Nayos", "Nayos LTD" },
- { { 0x00, 0x50, 0xC2, 0xB6, 0x20 }, "MeasurementT", "Measurement Technology NW" },
+ { { 0x00, 0x50, 0xC2, 0xB6, 0x20 }, "RuggedContro", "Rugged Controls" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x30 }, "ROVERLaborat", "RO.VE.R. Laboratories S.p.A" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x40 }, "FEWBauer", "FEW Bauer GmbH" },
{ { 0x00, 0x50, 0xC2, 0xB6, 0x50 }, "PeekTraffic", "Peek Traffic Corporation" },
@@ -45741,7 +46167,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x40 }, "WoosiyuanCom", "Hangzhou Woosiyuan Communication Co.,Ltd." },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x50 }, "Martec", "Martec S.p.A." },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x60 }, "LinkAVTechno", "LinkAV Technology Co., Ltd" },
- { { 0x70, 0xB3, 0xD5, 0x1F, 0x70 }, "MorganSchaff", "Morgan Schaffer Inc." },
+ { { 0x70, 0xB3, 0xD5, 0x1F, 0x70 }, "MorganSchaff", "Morgan Schaffer" },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x80 }, "ConvergentDe", "Convergent Design" },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0x90 }, "Automata", "Automata GmbH & Co. KG" },
{ { 0x70, 0xB3, 0xD5, 0x1F, 0xA0 }, "EBZSysTec", "EBZ SysTec GmbH" },
@@ -47216,7 +47642,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x7B, 0xF0 }, "StoneThree", "Stone Three" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x00 }, "TorgovyyDomT", "Torgovyy Dom Tehnologiy Llc" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x10 }, "DataSciences", "Data Sciences International" },
- { { 0x70, 0xB3, 0xD5, 0x7C, 0x20 }, "MorganSchaff", "Morgan Schaffer Inc." },
+ { { 0x70, 0xB3, 0xD5, 0x7C, 0x20 }, "MorganSchaff", "Morgan Schaffer" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x30 }, "FleximSecuri", "Flexim Security Oy" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x40 }, "Mect", "Mect Srl" },
{ { 0x70, 0xB3, 0xD5, 0x7C, 0x50 }, "ProjectsUnli", "Projects Unlimited Inc." },
@@ -47580,7 +48006,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x70, 0xB3, 0xD5, 0x92, 0xC0 }, "DismuntelSal", "Dismuntel Sal" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0xD0 }, "SuzhouWanson", "Suzhou Wansong Electric Co.,Ltd" },
{ { 0x70, 0xB3, 0xD5, 0x92, 0xE0 }, "MedicalMonit", "Medical Monitoring Center OOD" },
- { { 0x70, 0xB3, 0xD5, 0x92, 0xF0 }, "SiFive", "SiFive" },
+ { { 0x70, 0xB3, 0xD5, 0x92, 0xF0 }, "SiFive", "SiFive Inc" },
{ { 0x70, 0xB3, 0xD5, 0x93, 0x00 }, "InstituteMin", "The Institute of Mine Seismology" },
{ { 0x70, 0xB3, 0xD5, 0x93, 0x10 }, "MarineInstru", "Marine Instruments, S.A." },
{ { 0x70, 0xB3, 0xD5, 0x93, 0x20 }, "Rohde&Schwar", "Rohde&Schwarz Topex SA" },
@@ -49323,12 +49749,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x00, 0x90 }, "Converging", "Converging Systems Inc." },
{ { 0x8C, 0x1F, 0x64, 0x00, 0xA0 }, "TaskUnite", "TaskUnite Inc. (dba AMPAworks)" },
{ { 0x8C, 0x1F, 0x64, 0x00, 0xC0 }, "GuanShowTech", "Guan Show Technologe Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0x00, 0xD0 }, "T4ISp", "T4I Sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0x01, 0x10 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x01, 0x40 }, "CristalContr", "Cristal Controles Ltee" },
+ { { 0x8C, 0x1F, 0x64, 0x01, 0x60 }, "SigntelCommu", "Signtel Communications Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x01, 0x70 }, "Farmote", "Farmote Limited" },
{ { 0x8C, 0x1F, 0x64, 0x01, 0xA0 }, "Paragraf", "Paragraf" },
{ { 0x8C, 0x1F, 0x64, 0x01, 0xE0 }, "SCIREQScient", "SCIREQ Scientific Respiratory Equipment Inc" },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x00 }, "UtthungaTech", "Utthunga Techologies Pvt Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x02, 0x20 }, "TelicaTeleco", "Telica Telecom Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x40 }, "ShinNihonDen", "Shin Nihon Denshi Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x50 }, "SMITEC", "SMITEC S.p.A." },
{ { 0x8C, 0x1F, 0x64, 0x02, 0x80 }, "eyrise", "eyrise B.V." },
@@ -49361,6 +49790,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x06, 0xB0 }, "SanwaSupply", "Sanwa Supply Inc." },
{ { 0x8C, 0x1F, 0x64, 0x06, 0xD0 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0x10 }, "DorletSau", "Dorlet Sau" },
+ { { 0x8C, 0x1F, 0x64, 0x07, 0x60 }, "PackR", "Pack'R" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0x70 }, "EngageTechno", "Engage Technologies" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0xA0 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0x07, 0xD0 }, "TalleresdeEs", "Talleres de Escoriaza SAU" },
@@ -49417,6 +49847,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x0E, 0xE0 }, "RichSourcePr", "Rich Source Precision IND., Co., LTD." },
{ { 0x8C, 0x1F, 0x64, 0x0E, 0xF0 }, "Dave", "Dave Srl" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x00 }, "Xylon", "Xylon" },
+ { { 0x8C, 0x1F, 0x64, 0x0F, 0x10 }, "ideaForgeTec", "ideaForge Technology Limited" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x20 }, "GraphimeccGr", "Graphimecc Group SRL" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x30 }, "Lsi", "Lsi" },
{ { 0x8C, 0x1F, 0x64, 0x0F, 0x40 }, "AWSOMTechnol", "AW-SOM Technologies LLC" },
@@ -49434,11 +49865,13 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x11, 0x30 }, "TimberlineMa", "Timberline Manufacturing" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x40 }, "SanminaSCIMe", "Sanmina SCI Medical" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x50 }, "NeuralogLP", "Neuralog LP" },
+ { { 0x8C, 0x1F, 0x64, 0x11, 0x60 }, "Sicon", "Sicon srl" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x70 }, "Grossenbache", "Grossenbacher Systeme AG" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x80 }, "Automata", "Automata GmbH & Co. KG" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0x90 }, "FoxconnTechn", "Foxconn Technology Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x11, 0xE0 }, "InfosoftDigi", "Infosoft Digital Design and Services P L" },
{ { 0x8C, 0x1F, 0x64, 0x11, 0xF0 }, "NodeUDesign", "NodeUDesign" },
+ { { 0x8C, 0x1F, 0x64, 0x12, 0x50 }, "ScienerSmart", "Hangzhou Sciener Smart Technology Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x60 }, "HarvestTechn", "Harvest Technology Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x80 }, "YulistaInteg", "Yulista Integrated Solution" },
{ { 0x8C, 0x1F, 0x64, 0x12, 0x90 }, "NavtechRadar", "Navtech Radar Ltd." },
@@ -49448,6 +49881,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x13, 0x50 }, "YuvalFichman", "Yuval Fichman" },
{ { 0x8C, 0x1F, 0x64, 0x13, 0x80 }, "Vissavisp", "Vissavi sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0x13, 0xC0 }, "SiFive", "SiFive Inc" },
+ { { 0x8C, 0x1F, 0x64, 0x13, 0xE0 }, "BtecIndustri", "Btec Industrial Instrument Sdn. Bhd." },
{ { 0x8C, 0x1F, 0x64, 0x13, 0xF0 }, "Elsist", "Elsist Srl" },
{ { 0x8C, 0x1F, 0x64, 0x14, 0x10 }, "CodeBlue", "Code Blue Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x14, 0x40 }, "LangfangENNl", "Langfang ENN lntelligent Technology Co.,Ltd." },
@@ -49471,12 +49905,16 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x17, 0x00 }, "FracarroRadi", "Fracarro Radioindustrie Srl" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0x70 }, "Emcom", "Emcom Systems" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0x90 }, "Agrowtek", "Agrowtek Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x17, 0xB0 }, "BavariaDigit", "Bavaria Digital Technik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0xC0 }, "Zelp", "Zelp Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x17, 0xE0 }, "MI", "MI Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x18, 0x30 }, "NICETotalCas", "NICE Total Cash Management Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x18, 0x70 }, "Sicon", "Sicon srl" },
{ { 0x8C, 0x1F, 0x64, 0x18, 0xB0 }, "MPulse", "M-Pulse GmbH & Co.KG" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0x30 }, "Sicon", "Sicon srl" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0x40 }, "Tiflex", "Tiflex" },
+ { { 0x8C, 0x1F, 0x64, 0x19, 0x50 }, "VERIDASDigit", "VERIDAS Digital Authentication Solutions S.L" },
+ { { 0x8C, 0x1F, 0x64, 0x19, 0x60 }, "Secuinfo", "Secuinfo Co.Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0x70 }, "TEKVOX", "TEKVOX, Inc" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0xB0 }, "FeedFlo", "FeedFlo" },
{ { 0x8C, 0x1F, 0x64, 0x19, 0xC0 }, "Aton", "Aton srl" },
@@ -49524,9 +49962,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x20, 0xD0 }, "Grossenbache", "Grossenbacher Systeme AG" },
{ { 0x8C, 0x1F, 0x64, 0x20, 0xE0 }, "AlphaBridgeT", "Alpha Bridge Technologies Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0x10 }, "BipomElectro", "Bipom Electronics, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x21, 0x50 }, "XLOGIC", "XLOGIC srl" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0x90 }, "GuangzhouDes", "Guangzhou Desam Audio Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0xC0 }, "LLCEMSExpert", "LLC \"EMS-Expert\"" },
{ { 0x8C, 0x1F, 0x64, 0x21, 0xE0 }, "Bionetics", "The Bionetics Corporation" },
+ { { 0x8C, 0x1F, 0x64, 0x22, 0x10 }, "YuansiangOpt", "Yuansiang Optoelectronics Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x22, 0x40 }, "PHBEletronic", "PHB Eletronica Ltda." },
{ { 0x8C, 0x1F, 0x64, 0x22, 0x70 }, "Digilens", "Digilens" },
{ { 0x8C, 0x1F, 0x64, 0x22, 0xD0 }, "KaysonsElect", "Kaysons Electricals Private Limited" },
@@ -49548,6 +49988,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x25, 0xC0 }, "TimeMachines", "TimeMachines Inc." },
{ { 0x8C, 0x1F, 0x64, 0x25, 0xE0 }, "R2Sonic", "R2Sonic, LLC" },
{ { 0x8C, 0x1F, 0x64, 0x25, 0xF0 }, "Acuris", "Acuris Inc" },
+ { { 0x8C, 0x1F, 0x64, 0x26, 0x00 }, "Ealarms", "E-alarms" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0x30 }, "EPCPower", "EPC Power Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0x40 }, "BRVossIngenj", "BR. Voss Ingenjörsfirma AB" },
{ { 0x8C, 0x1F, 0x64, 0x26, 0x70 }, "KarlDUNGS", "Karl DUNGS GmbH & Co. KG" },
@@ -49570,6 +50011,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x29, 0x60 }, "RoogzhitongT", "Roog zhi tong Technology(Beijing) Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x29, 0x80 }, "MeggerGerman", "Megger Germany GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x29, 0xF0 }, "Nagtech", "Nagtech Llc" },
+ { { 0x8C, 0x1F, 0x64, 0x2A, 0x00 }, "ConnectedDev", "Connected Development" },
{ { 0x8C, 0x1F, 0x64, 0x2A, 0x10 }, "PantherunTec", "Pantherun Technologies Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x2A, 0x40 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x2A, 0x50 }, "Nonet", "Nonet Inc" },
@@ -49667,6 +50109,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x37, 0x50 }, "Duevi", "Duevi Srl" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0x60 }, "DIASInfrared", "DIAS Infrared GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0x80 }, "sparPowerTec", "spar Power Technologies Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x37, 0xE0 }, "SIDUSSolutio", "SIDUS Solutions, LLC" },
{ { 0x8C, 0x1F, 0x64, 0x37, 0xF0 }, "ScarletTech", "Scarlet Tech Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x38, 0x00 }, "Yslab", "Yslab" },
{ { 0x8C, 0x1F, 0x64, 0x38, 0x20 }, "ROLSTONETech", "Shenzhen ROLSTONE Technology Co., Ltd" },
@@ -49702,6 +50145,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x3B, 0x70 }, "AiBlox", "Ai-Blox" },
{ { 0x8C, 0x1F, 0x64, 0x3B, 0x80 }, "HubrisTechno", "Hubris Technologies Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x3B, 0xB0 }, "ClausalCompu", "Clausal Computing Oy" },
+ { { 0x8C, 0x1F, 0x64, 0x3B, 0xD0 }, "Oriux", "Oriux" },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x10 }, "SuzhouLiansh", "Suzhou Lianshichuangzhi Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x40 }, "NavSysTechno", "NavSys Technology Inc." },
{ { 0x8C, 0x1F, 0x64, 0x3C, 0x50 }, "StratisIOT", "Stratis IOT" },
@@ -49711,16 +50155,17 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x3C, 0xE0 }, "MahindrMahin", "Mahindr & Mahindra" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x00 }, "Tripltek", "Tripltek" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x10 }, "EMIT", "EMIT GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x3D, 0x20 }, "UVIRCOTechno", "UVIRCO Technologies" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x40 }, "epgElettroni", "e.p.g. Elettronica s.r.l." },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x50 }, "FRAKOKondens", "FRAKO Kondensatoren- und Anlagenbau GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x3D, 0x90 }, "UnlimitedBan", "Unlimited Bandwidth LLC" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x00 }, "YPP", "YPP Corporation" },
+ { { 0x8C, 0x1F, 0x64, 0x3E, 0x20 }, "Agrico", "Agrico" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x30 }, "FMTecFutureM", "FMTec GmbH - Future Management Technologies" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x50 }, "SystemsMecha", "Systems Mechanics" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x60 }, "elbeinformat", "elbe informatik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0x80 }, "Ruichuangte", "Ruichuangte" },
{ { 0x8C, 0x1F, 0x64, 0x3E, 0xE0 }, "BnBInformati", "BnB Information Technology" },
- { { 0x8C, 0x1F, 0x64, 0x3F, 0x30 }, "Scancom", "Scancom" },
{ { 0x8C, 0x1F, 0x64, 0x3F, 0x40 }, "ActelserSL", "Actelser S.L." },
{ { 0x8C, 0x1F, 0x64, 0x3F, 0x70 }, "MitsubishiEl", "Mitsubishi Electric India Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x3F, 0xC0 }, "STVElectroni", "STV Electronic GmbH" },
@@ -49786,6 +50231,9 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x00 }, "Tantec", "Tantec A/S" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x10 }, "BreasMedical", "Breas Medical AB" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x20 }, "Bludigit", "Bludigit SpA" },
+ { { 0x8C, 0x1F, 0x64, 0x4A, 0x60 }, "AlaireTechno", "Alaire Technologies Inc" },
+ { { 0x8C, 0x1F, 0x64, 0x4A, 0x70 }, "PotterElectr", "Potter Electric Signal Co. LLC" },
+ { { 0x8C, 0x1F, 0x64, 0x4A, 0x80 }, "ExactScience", "Exact Sciences" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0x90 }, "MartecMarine", "Martec Marine S.p.a." },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0xC0 }, "Vekto", "Vekto" },
{ { 0x8C, 0x1F, 0x64, 0x4A, 0xE0 }, "KCS", "KCS Co., Ltd." },
@@ -49809,6 +50257,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x4E, 0x90 }, "EersGlobalTe", "Eers Global Technologies Inc." },
{ { 0x8C, 0x1F, 0x64, 0x4E, 0xC0 }, "XORUK", "XOR UK Corporation Limited" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0x00 }, "TielineResea", "Tieline Research Pty Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x4F, 0x10 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0x70 }, "SmartDTechno", "SmartD Technologies Inc" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0x90 }, "PhotonicScie", "Photonic Science and Engineering Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x4F, 0xA0 }, "Sanskruti", "Sanskruti" },
@@ -49828,6 +50277,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x51, 0x70 }, "SmartRadarSy", "Smart Radar System, Inc" },
{ { 0x8C, 0x1F, 0x64, 0x51, 0x80 }, "WagnerGroup", "Wagner Group GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x52, 0x10 }, "MPSENSOR", "MP-SENSOR GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x52, 0x40 }, "AskiIndustri", "Aski Industrie Elektronik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x52, 0x50 }, "UnitedStates", "United States Technologies Inc." },
{ { 0x8C, 0x1F, 0x64, 0x52, 0xA0 }, "HiwinMikrosy", "Hiwin Mikrosystem Corp." },
{ { 0x8C, 0x1F, 0x64, 0x52, 0xD0 }, "CubicITSdbaG", "Cubic ITS, Inc. dba GRIDSMART Technologies" },
@@ -49859,6 +50309,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x55, 0xC0 }, "Schildknecht", "Schildknecht AG" },
{ { 0x8C, 0x1F, 0x64, 0x55, 0xE0 }, "Hanateksyste", "Hanateksystem" },
{ { 0x8C, 0x1F, 0x64, 0x56, 0x00 }, "DexterLaundr", "Dexter Laundry Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x56, 0x10 }, "DeepDetectio", "Deep Detection / ESB01736990" },
{ { 0x8C, 0x1F, 0x64, 0x56, 0xB0 }, "Avida", "Avida, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x56, 0xC0 }, "ELTEK", "ELTEK SpA" },
{ { 0x8C, 0x1F, 0x64, 0x56, 0xD0 }, "Acod", "Acod" },
@@ -49870,8 +50321,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x57, 0xA0 }, "NPOECOINTECH", "NPO ECO-INTECH Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x57, 0xB0 }, "PotterElectr", "Potter Electric Signal Company" },
{ { 0x8C, 0x1F, 0x64, 0x57, 0xD0 }, "ISDI", "ISDI Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x58, 0x00 }, "SAKURASEIKI", "SAKURA SEIKI Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x58, 0x10 }, "SpectraDynam", "SpectraDynamics, Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x58, 0x50 }, "DIDONIndustr", "Shanghai DIDON Industry Co,. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x58, 0x90 }, "Hvrnd", "Hvrnd" },
+ { { 0x8C, 0x1F, 0x64, 0x58, 0xB0 }, "QuectelWirel", "Quectel Wireless Solutions Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x58, 0xC0 }, "EarMicro", "Ear Micro LLC" },
{ { 0x8C, 0x1F, 0x64, 0x58, 0xE0 }, "NovantaIMS", "Novanta IMS" },
{ { 0x8C, 0x1F, 0x64, 0x59, 0x10 }, "MBconnectlin", "MB connect line GmbH Fernwartungssysteme" },
@@ -49883,6 +50337,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x5A, 0x60 }, "KinneyIndust", "Kinney Industries, Inc" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0x70 }, "Rch", "Rch Spa" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0x90 }, "AktiebolagSo", "Aktiebolag Solask Energi" },
+ { { 0x8C, 0x1F, 0x64, 0x5A, 0xA0 }, "LandisGyrEqu", "Landis+Gyr Equipamentos de Medição Ltda" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0xC0 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0xE0 }, "SuzhouMotorc", "Suzhou Motorcomm Electronic Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x5A, 0xF0 }, "TeqDiligentP", "Teq Diligent Product Solutions Pvt. Ltd." },
@@ -49912,12 +50367,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x5E, 0x50 }, "Telemetrics", "Telemetrics Inc." },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0x60 }, "OdysseeSyste", "Odyssee-Systemes" },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0x70 }, "HOSCHGebäude", "HOSCH Gebäude Automation Neue Produkte GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x5E, 0x80 }, "SternaSecuri", "Sterna Security Devices Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0xA0 }, "BTGInstrumen", "BTG Instruments AB" },
{ { 0x8C, 0x1F, 0x64, 0x5E, 0xB0 }, "Tiama", "Tiama" },
+ { { 0x8C, 0x1F, 0x64, 0x5E, 0xC0 }, "NvBekaert", "Nv Bekaert Sa" },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0x10 }, "HDLink", "HD Link Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0x50 }, "HongSeok", "HongSeok Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0x70 }, "EagleHarborT", "Eagle Harbor Technologies, Inc." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0xA0 }, "PolCamSp", "PolCam Systems Sp. z o.o." },
+ { { 0x8C, 0x1F, 0x64, 0x5F, 0xB0 }, "Recom", "Recom Llc." },
{ { 0x8C, 0x1F, 0x64, 0x5F, 0xC0 }, "LanceDesign", "Lance Design LLC" },
{ { 0x8C, 0x1F, 0x64, 0x60, 0x00 }, "AnhuiChaokun", "Anhui Chaokun Testing Equipment Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x60, 0x10 }, "Camius", "Camius" },
@@ -49946,6 +50404,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x63, 0x60 }, "EuropeTrade", "Europe Trade" },
{ { 0x8C, 0x1F, 0x64, 0x63, 0x80 }, "ThunderDataT", "Thunder Data Taiwan Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x63, 0xB0 }, "Tiama", "Tiama" },
+ { { 0x8C, 0x1F, 0x64, 0x63, 0xC0 }, "Galios", "Galios" },
{ { 0x8C, 0x1F, 0x64, 0x63, 0xD0 }, "RaxTechInter", "Rax-Tech International" },
{ { 0x8C, 0x1F, 0x64, 0x63, 0xF0 }, "PreoIndustri", "Preo Industries Far East Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x64, 0x10 }, "biosilver", "biosilver.co.,ltd" },
@@ -49968,6 +50427,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x66, 0x40 }, "Thermoeye", "Thermoeye Inc" },
{ { 0x8C, 0x1F, 0x64, 0x66, 0xC0 }, "LineagePower", "Lineage Power Pvt Ltd.," },
{ { 0x8C, 0x1F, 0x64, 0x66, 0xD0 }, "Vt100", "Vt100 Srl" },
+ { { 0x8C, 0x1F, 0x64, 0x66, 0xE0 }, "Monnit", "Monnit Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x66, 0xF0 }, "Elix", "Elix Systems SA" },
{ { 0x8C, 0x1F, 0x64, 0x67, 0x20 }, "Farmobile", "Farmobile LLC" },
{ { 0x8C, 0x1F, 0x64, 0x67, 0x30 }, "MEDIASCOPE", "MEDIASCOPE Inc." },
@@ -49980,10 +50440,12 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x67, 0xE0 }, "LDAAudiotech", "LDA Audiotech" },
{ { 0x8C, 0x1F, 0x64, 0x67, 0xF0 }, "HamamatsuPho", "Hamamatsu Photonics K.K." },
{ { 0x8C, 0x1F, 0x64, 0x68, 0x30 }, "Slat", "Slat" },
- { { 0x8C, 0x1F, 0x64, 0x68, 0x50 }, "SancharCommu", "Sanchar Communication Systems" },
+ { { 0x8C, 0x1F, 0x64, 0x68, 0x50 }, "SancharWirel", "Sanchar Wireless Communications Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x68, 0xC0 }, "GuangZhouHOK", "GuangZhou HOKO Electric CO.,LTD" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x10 }, "WendeTan", "Wende Tan" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x20 }, "NexilisElect", "Nexilis Electronics India Pvt Ltd (PICSYS)" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x40 }, "HubbellPower", "Hubbell Power Systems" },
+ { { 0x8C, 0x1F, 0x64, 0x69, 0x50 }, "aeroLiFi", "aeroLiFi GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x60 }, "EmersonRosem", "Emerson Rosemount Analytical" },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x70 }, "Sontay", "Sontay Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x69, 0x80 }, "ArcusEDS", "Arcus-EDS GmbH" },
@@ -50013,6 +50475,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x6D, 0x90 }, "Khimo", "Khimo" },
{ { 0x8C, 0x1F, 0x64, 0x6D, 0xC0 }, "IntrinsicInn", "Intrinsic Innovation, LLC" },
{ { 0x8C, 0x1F, 0x64, 0x6D, 0xD0 }, "ViewSonic", "ViewSonic Corp" },
+ { { 0x8C, 0x1F, 0x64, 0x6D, 0xE0 }, "SUN・TECTRO", "SUN・TECTRO,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0x20 }, "SCU", "SCU Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0x30 }, "ViewSonicInt", "ViewSonic International Corporation" },
{ { 0x8C, 0x1F, 0x64, 0x6E, 0x40 }, "RABMicroflui", "RAB Microfluidics R&D Company Ltd" },
@@ -50031,6 +50494,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x70, 0xB0 }, "Onicon", "Onicon" },
{ { 0x8C, 0x1F, 0x64, 0x70, 0xE0 }, "OvercomTech", "OvercomTech" },
{ { 0x8C, 0x1F, 0x64, 0x71, 0x20 }, "NexionDataPL", "Nexion Data Systems P/L" },
+ { { 0x8C, 0x1F, 0x64, 0x71, 0x50 }, "InternetProt", "Internet Protocolo Logica Sl" },
{ { 0x8C, 0x1F, 0x64, 0x71, 0x80 }, "Abb", "Abb" },
{ { 0x8C, 0x1F, 0x64, 0x71, 0xB0 }, "Adasky", "Adasky Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x71, 0xD0 }, "Epigonspolsr", "Epigon spol. s r.o." },
@@ -50040,6 +50504,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x72, 0x60 }, "Dave", "Dave Srl" },
{ { 0x8C, 0x1F, 0x64, 0x72, 0xA0 }, "DorletSau", "Dorlet Sau" },
{ { 0x8C, 0x1F, 0x64, 0x72, 0xC0 }, "Antaitechnol", "Antai technology Co.,Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x72, 0xD0 }, "HillsHealthS", "Hills Health Solutions" },
{ { 0x8C, 0x1F, 0x64, 0x73, 0x10 }, "ehoosys", "ehoosys Co.,LTD." },
{ { 0x8C, 0x1F, 0x64, 0x73, 0x30 }, "VideoNetwork", "Video Network Security" },
{ { 0x8C, 0x1F, 0x64, 0x73, 0x70 }, "VytahyVymysl", "Vytahy-Vymyslicky s.r.o." },
@@ -50054,12 +50519,15 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x74, 0x40 }, "ChaseoConnec", "Chaseo Connectome" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0x60 }, "SensusHealth", "Sensus Healthcare" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0x70 }, "VisionTIRMul", "VisionTIR Multispectral Technology" },
+ { { 0x8C, 0x1F, 0x64, 0x74, 0x90 }, "Tiama", "Tiama" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0xB0 }, "ARModularRF", "AR Modular RF" },
{ { 0x8C, 0x1F, 0x64, 0x74, 0xE0 }, "OpenParkTech", "OpenPark Technologies Kft" },
{ { 0x8C, 0x1F, 0x64, 0x75, 0x50 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0x75, 0x60 }, "StarInternat", "Star Systems International Limited" },
{ { 0x8C, 0x1F, 0x64, 0x75, 0x90 }, "Systel", "Systel Inc" },
+ { { 0x8C, 0x1F, 0x64, 0x75, 0xC0 }, "AmericanEner", "American Energy Storage Innovations" },
{ { 0x8C, 0x1F, 0x64, 0x75, 0xF0 }, "ASTRACOM", "ASTRACOM Co. Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x76, 0x00 }, "QLightAS", "Q-Light AS" },
{ { 0x8C, 0x1F, 0x64, 0x76, 0x20 }, "SupportProfe", "Support Professionals B.V." },
{ { 0x8C, 0x1F, 0x64, 0x76, 0x40 }, "nanoTRONIXCo", "nanoTRONIX Computing Inc." },
{ { 0x8C, 0x1F, 0x64, 0x76, 0x50 }, "MicroElectro", "Micro Electroninc Products" },
@@ -50124,7 +50592,9 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x7E, 0x70 }, "robertjuliat", "robert juliat" },
{ { 0x8C, 0x1F, 0x64, 0x7E, 0xC0 }, "Methods2Busi", "Methods2Business B.V." },
{ { 0x8C, 0x1F, 0x64, 0x7E, 0xE0 }, "OrangePrecis", "Orange Precision Measurement LLC" },
+ { { 0x8C, 0x1F, 0x64, 0x7E, 0xF0 }, "SAXOGYPOWERE", "SAXOGY POWER ELECTRONICS GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x7F, 0x10 }, "AEMSingapore", "AEM Singapore Pte Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0x7F, 0x20 }, "ATAutomation", "AT-Automation Technology GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x7F, 0x40 }, "GMInternatio", "G.M. International srl" },
{ { 0x8C, 0x1F, 0x64, 0x7F, 0x80 }, "FleetSafeInd", "FleetSafe India Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0x7F, 0xC0 }, "MitsubishiEl", "Mitsubishi Electric Klimat Transportation Systems S.p.A." },
@@ -50165,6 +50635,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x85, 0x80 }, "SFERA", "SFERA srl" },
{ { 0x8C, 0x1F, 0x64, 0x85, 0xB0 }, "AtlanticPump", "Atlantic Pumps Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x85, 0xC0 }, "Zing5gCommun", "Zing 5g Communications Canada Inc." },
+ { { 0x8C, 0x1F, 0x64, 0x85, 0xE0 }, "ApenGroup", "Apen Group S.p.A. (VAT IT08767740155)" },
{ { 0x8C, 0x1F, 0x64, 0x86, 0x30 }, "EngiNe", "EngiNe srl" },
{ { 0x8C, 0x1F, 0x64, 0x86, 0x70 }, "ForeverEngin", "Forever Engineering Systems Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x86, 0x80 }, "PeakeTechnol", "Shenzhen Peake Technology Co.,Ltd." },
@@ -50179,6 +50650,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x88, 0x10 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0x88, 0x20 }, "TmyTechnolog", "Tmy Technology Inc." },
{ { 0x8C, 0x1F, 0x64, 0x88, 0x30 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0x88, 0xA0 }, "Longoo", "Longoo Limited" },
{ { 0x8C, 0x1F, 0x64, 0x88, 0xB0 }, "TaiwanAulisa", "Taiwan Aulisa Medical Devices Technologies, Inc" },
{ { 0x8C, 0x1F, 0x64, 0x88, 0xC0 }, "SALNavigatio", "SAL Navigation AB" },
{ { 0x8C, 0x1F, 0x64, 0x88, 0xD0 }, "PantherunTec", "Pantherun Technologies Pvt Ltd" },
@@ -50193,11 +50665,13 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x8A, 0x80 }, "Massachusett", "Massachusetts Institute of Technology" },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0x90 }, "GuanShowTech", "Guan Show Technologe Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xA0 }, "ForeverEngin", "Forever Engineering Systems Pvt. Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0x8A, 0xB0 }, "AsmlUsLp", "Asml Us, Lp" },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xC0 }, "BOZHONPrecis", "BOZHON Precision Industry Technology Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xE0 }, "QunfangTechn", "Shenzhen Qunfang Technology Co., LTD." },
{ { 0x8C, 0x1F, 0x64, 0x8A, 0xF0 }, "Ibeos", "Ibeos" },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x20 }, "AbbottDiagno", "Abbott Diagnostics Technologies AS" },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x50 }, "AshtonBentle", "Ashton Bentley Collaboration Spaces" },
+ { { 0x8C, 0x1F, 0x64, 0x8B, 0x60 }, "AXISSp", "AXIS Sp z o.o." },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x80 }, "WienEnergie", "Wien Energie GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x8B, 0x90 }, "ZynexMonitor", "Zynex Monitoring Solutions" },
{ { 0x8C, 0x1F, 0x64, 0x8C, 0x20 }, "Cirrus", "Cirrus Systems, Inc." },
@@ -50210,6 +50684,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x40 }, "RecabSweden", "Recab Sweden AB" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x50 }, "Agramkow", "Agramkow A/S" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x60 }, "ADCGlobalTec", "ADC Global Technology Sdn Bhd" },
+ { { 0x8C, 0x1F, 0x64, 0x8D, 0x80 }, "Mbv", "Mbv Ag" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0x90 }, "PietroFioren", "Pietro Fiorentini Spa" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0xA0 }, "Dart", "Dart Systems Ltd" },
{ { 0x8C, 0x1F, 0x64, 0x8D, 0xE0 }, "IconetServic", "Iconet Services" },
@@ -50285,6 +50760,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x98, 0x90 }, "PhenX", "Phe-nX B.V." },
{ { 0x8C, 0x1F, 0x64, 0x98, 0xB0 }, "SyscomInstru", "Syscom Instruments SA" },
{ { 0x8C, 0x1F, 0x64, 0x98, 0xC0 }, "PANBusinessC", "PAN Business & Consulting (ANYOS]" },
+ { { 0x8C, 0x1F, 0x64, 0x98, 0xD0 }, "Akselsp", "Aksel sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0x98, 0xF0 }, "BreasMedical", "Breas Medical AB" },
{ { 0x8C, 0x1F, 0x64, 0x99, 0x10 }, "DBSystel", "DB Systel GmbH" },
{ { 0x8C, 0x1F, 0x64, 0x99, 0x40 }, "uHaveControl", "uHave Control, Inc" },
@@ -50339,10 +50815,12 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0x9F, 0xF0 }, "Satelles", "Satelles Inc" },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0x00 }, "BITECHNIK", "BITECHNIK GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0x10 }, "GuanShowTech", "Guan Show Technologe Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xA0, 0x60 }, "secutech", "secutech Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0x70 }, "GJDManufactu", "GJD Manufacturing" },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0xA0 }, "WiseTechInte", "Shanghai Wise-Tech Intelligent Technology Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0xD0 }, "LumiplanDuha", "Lumiplan Duhamel" },
{ { 0x8C, 0x1F, 0x64, 0xA0, 0xE0 }, "ElacAmericas", "Elac Americas Inc." },
+ { { 0x8C, 0x1F, 0x64, 0xA1, 0x20 }, "FUJIHENSOKUK", "FUJIHENSOKUKI Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA1, 0x30 }, "INVENTIASp", "INVENTIA Sp. z o.o." },
{ { 0x8C, 0x1F, 0x64, 0xA1, 0xB0 }, "Zilica", "Zilica Limited" },
{ { 0x8C, 0x1F, 0x64, 0xA1, 0xF0 }, "HitachiEnerg", "Hitachi Energy India Limited" },
@@ -50370,6 +50848,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xA5, 0xD0 }, "zhushidaTech", "Shenzhen zhushida Technology lnformation Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA5, 0xE0 }, "XTIA", "XTIA Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0x00 }, "ActiveOptica", "Active Optical Systems, LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xA6, 0x10 }, "BreasMedical", "Breas Medical AB" },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0xA0 }, "SphereComSer", "Sphere Com Services Pvt Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0xD0 }, "CyberneX", "CyberneX Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA6, 0xE0 }, "beswave", "shenzhen beswave co.,ltd" },
@@ -50380,9 +50859,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x10 }, "3Dperception", "3D perception AS" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x30 }, "EkspertStroy", "EkspertStroyProekt" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x40 }, "WenriseTechn", "Beijing Wenrise Technology Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xA8, 0x60 }, "GlobalDesign", "Global Design Tech(ZS) Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x70 }, "MorgenTechno", "Morgen Technology" },
{ { 0x8C, 0x1F, 0x64, 0xA8, 0x90 }, "MitsubishiEl", "Mitsubishi Electric India Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x10 }, "InfinitiveGr", "Infinitive Group Limited" },
+ { { 0x8C, 0x1F, 0x64, 0xA9, 0x20 }, "AgrologyPBC", "Agrology, PBC" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x40 }, "Futurewaveul", "Future wave ultra tech Company" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x70 }, "Integerpl", "Integer.pl S.A." },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0x80 }, "JacobsTechno", "Jacobs Technology, Inc." },
@@ -50390,6 +50871,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xA9, 0xB0 }, "OvideMaudetS", "Ovide Maudet SL" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0xC0 }, "UpstartPower", "Upstart Power" },
{ { 0x8C, 0x1F, 0x64, 0xA9, 0xE0 }, "OptimumInstr", "Optimum Instruments Inc." },
+ { { 0x8C, 0x1F, 0x64, 0xAA, 0x00 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0xAA, 0x30 }, "PeterHuberKa", "Peter Huber Kaeltemaschinenbau SE" },
{ { 0x8C, 0x1F, 0x64, 0xAA, 0x40 }, "HEINENELEKTR", "HEINEN ELEKTRONIK GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xAA, 0x80 }, "axelife", "axelife" },
@@ -50461,6 +50943,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xB4, 0x60 }, "PhygitallSol", "Phygitall Soluções Em Internet Das Coisas" },
{ { 0x8C, 0x1F, 0x64, 0xB4, 0x70 }, "LineagePower", "Lineage Power Pvt Ltd.," },
{ { 0x8C, 0x1F, 0x64, 0xB4, 0xC0 }, "PicocomTechn", "Picocom Technology Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xB4, 0xF0 }, "VaunixTechno", "Vaunix Technology Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0x50 }, "SancharTeles", "Sanchar Telesystems limited" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0x60 }, "Arcvideo", "Arcvideo" },
{ { 0x8C, 0x1F, 0x64, 0xB5, 0xA0 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
@@ -50487,6 +50970,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xB9, 0x70 }, "GeminiElectr", "Gemini Electronics B.V." },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0x80 }, "Calamity", "Calamity, Inc." },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0xA0 }, "QuercusTechn", "Quercus Technologies, S.L." },
+ { { 0x8C, 0x1F, 0x64, 0xB9, 0xB0 }, "Kromek", "Kromek Limited" },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0xE0 }, "PowerElectro", "Power Electronics Espana, S.L." },
{ { 0x8C, 0x1F, 0x64, 0xB9, 0xF0 }, "LithionBatte", "Lithion Battery Inc" },
{ { 0x8C, 0x1F, 0x64, 0xBA, 0x30 }, "DEUTAWERKE", "DEUTA-WERKE GmbH" },
@@ -50497,6 +50981,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xBB, 0x20 }, "GrupoEpelsaS", "Grupo Epelsa S.L." },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0x30 }, "ZarucTecnolo", "Zaruc Tecnologia LTDA" },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0x70 }, "JiangxiLvCCh", "Jiangxi Lv C-Chong Charging Technology Co.Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xBB, 0x90 }, "SmartDTechno", "SmartD Technologies Inc" },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0xC0 }, "Liberator", "Liberator Pty Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0xE0 }, "AirScandbaHe", "AirScan, Inc. dba HemaTechnologies" },
{ { 0x8C, 0x1F, 0x64, 0xBB, 0xF0 }, "Retency", "Retency" },
@@ -50509,6 +50994,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xBC, 0xB0 }, "A&T", "A&T Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xBC, 0xC0 }, "SoundHealth", "Sound Health Systems" },
{ { 0x8C, 0x1F, 0x64, 0xBC, 0xE0 }, "BESOsp", "BESO sp. z o.o." },
+ { { 0x8C, 0x1F, 0x64, 0xBD, 0x20 }, "attocube", "attocube systems AG" },
{ { 0x8C, 0x1F, 0x64, 0xBD, 0x30 }, "IOMasterTech", "IO Master Technology" },
{ { 0x8C, 0x1F, 0x64, 0xBD, 0x50 }, "ProCustomGro", "Pro-Custom Group" },
{ { 0x8C, 0x1F, 0x64, 0xBD, 0x60 }, "NOVAProducts", "NOVA Products GmbH" },
@@ -50517,6 +51003,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xBE, 0x30 }, "Reo", "Reo Ag" },
{ { 0x8C, 0x1F, 0x64, 0xBE, 0x80 }, "Technologies", "Technologies Bacmove Inc." },
{ { 0x8C, 0x1F, 0x64, 0xBE, 0xE0 }, "Sirius", "Sirius LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xBE, 0xF0 }, "TriumphSEC", "Triumph SEC" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x00 }, "Newtec", "Newtec A/S" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x10 }, "SohaJin", "Soha Jin" },
{ { 0x8C, 0x1F, 0x64, 0xBF, 0x20 }, "YujunElectri", "Yujun Electricity Industry Co., Ltd" },
@@ -50565,6 +51052,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC4, 0x20 }, "SdOptics", "Sd Optics" },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0x30 }, "SmartlogTech", "Shenzhen Smartlog Technologies Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0x40 }, "SyprisElectr", "Sypris Electronics" },
+ { { 0x8C, 0x1F, 0x64, 0xC4, 0x50 }, "FlextroincsI", "Flextroincs International (Taiwain Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0xA0 }, "SGiTechnolog", "SGi Technology Group Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xC4, 0xC0 }, "LumiplanDuha", "Lumiplan Duhamel" },
{ { 0x8C, 0x1F, 0x64, 0xC5, 0x00 }, "Spacee", "Spacee" },
@@ -50574,6 +51062,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC5, 0x70 }, "StrategicRob", "Strategic Robotic Systems" },
{ { 0x8C, 0x1F, 0x64, 0xC5, 0x90 }, "Tunstall", "Tunstall A/S" },
{ { 0x8C, 0x1F, 0x64, 0xC5, 0xD0 }, "AlfaProximad", "Alfa Proxima d.o.o." },
+ { { 0x8C, 0x1F, 0x64, 0xC5, 0xE0 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC6, 0x10 }, "CeresdateTec", "Beijing Ceresdate Technology Co.,LTD" },
{ { 0x8C, 0x1F, 0x64, 0xC6, 0x20 }, "GMI", "GMI Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC6, 0x40 }, "Ajeco", "Ajeco Oy" },
@@ -50584,6 +51073,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC7, 0x10 }, "Yaviar", "Yaviar LLC" },
{ { 0x8C, 0x1F, 0x64, 0xC7, 0xB0 }, "FreedomAtlan", "Freedom Atlantic" },
{ { 0x8C, 0x1F, 0x64, 0xC7, 0xC0 }, "MERKLESchwei", "MERKLE Schweissanlagen-Technik GmbH" },
+ { { 0x8C, 0x1F, 0x64, 0xC7, 0xD0 }, "GlassonElect", "Glasson Electronics Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xC8, 0x00 }, "VECOSEurope", "VECOS Europe B.V." },
{ { 0x8C, 0x1F, 0x64, 0xC8, 0x10 }, "TaolinkTechn", "Taolink Technologies Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xC8, 0x30 }, "PowerElectro", "Power Electronics Espana, S.L." },
@@ -50592,6 +51082,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xC8, 0xF0 }, "JWFroehlichM", "JW Froehlich Maschinenfabrik GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0x10 }, "SoehnleIndus", "Soehnle Industrial Solutions GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0x20 }, "EQEarthquake", "EQ Earthquake Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xC9, 0x60 }, "SmartDataInt", "Smart Data (Shenzhen) Intelligent System Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0x70 }, "MagnetPhysik", "Magnet-Physik Dr. Steingroever GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0xA0 }, "InfosoftDigi", "Infosoft Digital Design and Services P L" },
{ { 0x8C, 0x1F, 0x64, 0xC9, 0xB0 }, "JMVoithSE", "J.M. Voith SE & Co. KG" },
@@ -50608,6 +51099,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xCA, 0xF0 }, "BRSSistemasE", "BRS Sistemas Eletrônicos" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x20 }, "DyncirSoluçõ", "Dyncir Soluções Tecnológicas Ltda" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x50 }, "GamberJohnso", "Gamber-Johnson LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xCB, 0x60 }, "RowanElettro", "Rowan Elettronica Srl" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x70 }, "ARKRAYKyotoL", "ARKRAY,Inc.Kyoto Laboratory" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0x90 }, "iCHaus", "iC-Haus GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xCB, 0xB0 }, "MarisTech", "Maris Tech Ltd." },
@@ -50646,13 +51138,19 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD0, 0x90 }, "MinartimeSci", "Minartime(Beijing)Science &Technology Development Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xD0, 0xE0 }, "Labforge", "Labforge Inc." },
{ { 0x8C, 0x1F, 0x64, 0xD0, 0xF0 }, "Mecco", "Mecco LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xD1, 0x10 }, "Benetel", "Benetel" },
{ { 0x8C, 0x1F, 0x64, 0xD1, 0x30 }, "EYatskoIndiv", "EYatsko Individual" },
{ { 0x8C, 0x1F, 0x64, 0xD1, 0x70 }, "IAltanovagro", "I.S.A. - Altanova group srl" },
+ { { 0x8C, 0x1F, 0x64, 0xD1, 0xB0 }, "AudiodoInter", "Audiodo International AB" },
+ { { 0x8C, 0x1F, 0x64, 0xD1, 0xF0 }, "FreeTalkEngi", "Free Talk Engineering Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x00 }, "NASEngineeri", "NAS Engineering PRO" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x10 }, "AmetekCts", "Ametek Cts Gmbh" },
+ { { 0x8C, 0x1F, 0x64, 0xD2, 0x30 }, "PLX", "PLX Inc." },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x40 }, "R3IoT", "R3 IoT Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xD2, 0x70 }, "Taiv", "Taiv Inc" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0x90 }, "SecureBits", "Secure Bits" },
{ { 0x8C, 0x1F, 0x64, 0xD2, 0xA0 }, "AnteusKft", "Anteus Kft." },
+ { { 0x8C, 0x1F, 0x64, 0xD2, 0xD0 }, "Eskomar", "Eskomar Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xD3, 0x40 }, "Kronotech", "Kronotech Srl" },
{ { 0x8C, 0x1F, 0x64, 0xD3, 0x80 }, "CuuLongTechn", "Cuu Long Technology And Trading Company Limited" },
{ { 0x8C, 0x1F, 0x64, 0xD3, 0xA0 }, "AppliedMater", "Applied Materials" },
@@ -50677,6 +51175,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD6, 0x30 }, "Mobileye", "Mobileye" },
{ { 0x8C, 0x1F, 0x64, 0xD6, 0x90 }, "ADiCo", "ADiCo Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xD6, 0xC0 }, "Packetalk", "Packetalk LLC" },
+ { { 0x8C, 0x1F, 0x64, 0xD7, 0x00 }, "BeyondLaser", "Beyond Laser Systems LLC" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0x30 }, "BRSSistemasE", "BRS Sistemas Eletrônicos" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0x40 }, "TexComputer", "Tex Computer Srl" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0x80 }, "HunanOushiEl", "Hunan Oushi Electronic Technology Co.,Ltd" },
@@ -50684,6 +51183,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xD7, 0xC0 }, "QuercusTechn", "Quercus Technologies, S.L." },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0xE0 }, "ThalesBelgiu", "Thales Belgium" },
{ { 0x8C, 0x1F, 0x64, 0xD7, 0xF0 }, "Fiberstoryco", "Fiberstory communications Pvt Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xD8, 0x00 }, "Aztek", "Aztek Sa" },
{ { 0x8C, 0x1F, 0x64, 0xD8, 0x10 }, "MitsubishiEl", "Mitsubishi Electric India Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xD8, 0x80 }, "UniversityGe", "University of Geneva - Department of Particle Physics" },
{ { 0x8C, 0x1F, 0x64, 0xD8, 0xC0 }, "Smri", "Smri" },
@@ -50710,8 +51210,11 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xDB, 0x90 }, "ErmesElettro", "Ermes Elettronica s.r.l." },
{ { 0x8C, 0x1F, 0x64, 0xDB, 0xA0 }, "ElectronicEq", "Electronic Equipment Company Pvt. Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xDB, 0xD0 }, "GiordanoCont", "Giordano Controls Spa" },
+ { { 0x8C, 0x1F, 0x64, 0xDB, 0xF0 }, "RuggedContro", "Rugged Controls" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0x00 }, "PigsCanFlyLa", "Pigs Can Fly Labs LLC" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0x20 }, "ProconElectr", "Procon Electronics Pty Ltd" },
+ { { 0x8C, 0x1F, 0x64, 0xDC, 0x60 }, "R&K", "R&K" },
+ { { 0x8C, 0x1F, 0x64, 0xDC, 0x80 }, "DwdmRu", "Dwdm.Ru Llc" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0x90 }, "PeterHuberKa", "Peter Huber Kaeltemaschinenbau SE" },
{ { 0x8C, 0x1F, 0x64, 0xDC, 0xA0 }, "Porscheengin", "Porsche engineering" },
{ { 0x8C, 0x1F, 0x64, 0xDD, 0x40 }, "MidlandsTech", "Midlands Technical Co., Ltd." },
@@ -50739,6 +51242,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xE1, 0x00 }, "ScenarioAuto", "Scenario Automation" },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0x20 }, "PixusTechnol", "Pixus Technologies Inc." },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0x40 }, "Proserv", "Proserv" },
+ { { 0x8C, 0x1F, 0x64, 0xE1, 0x50 }, "Panascaisehf", "Panascais ehf." },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0xA0 }, "DAccessSecur", "DAccess Security Systems P Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xE1, 0xE0 }, "FlextronicsI", "Flextronics International Kft" },
{ { 0x8C, 0x1F, 0x64, 0xE2, 0x10 }, "LGLHTAircraf", "LG-LHT Aircraft Solutions GmbH" },
@@ -50749,6 +51253,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xE3, 0x00 }, "VMuktiSoluti", "VMukti Solutions Private Limited" },
{ { 0x8C, 0x1F, 0x64, 0xE3, 0x30 }, "AmiadWater", "Amiad Water Systems" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x10 }, "Grossenbache", "Grossenbacher Systeme AG" },
+ { { 0x8C, 0x1F, 0x64, 0xE4, 0x20 }, "ForddokTechn", "Shenzhen Forddok Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x30 }, "Daedalean", "Daedalean AG" },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x50 }, "Integerpl", "Integer.pl S.A." },
{ { 0x8C, 0x1F, 0x64, 0xE4, 0x60 }, "Nautel", "Nautel LTD" },
@@ -50781,6 +51286,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xE7, 0xC0 }, "AshinneTechn", "Ashinne Technology Co., Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0x00 }, "PowerElectro", "Power Electronics Espana, S.L." },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0x60 }, "ComVetia", "ComVetia AG" },
+ { { 0x8C, 0x1F, 0x64, 0xE8, 0xA0 }, "ChangzhouMIT", "Changzhou MITO electronics Technology Co;LTD" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0xB0 }, "TelevicRail", "Televic Rail GmbH" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0xD0 }, "Plura", "Plura" },
{ { 0x8C, 0x1F, 0x64, 0xE8, 0xF0 }, "JieChuangHeY", "JieChuang HeYi(Beijing) Technology Co., Ltd." },
@@ -50797,6 +51303,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xEB, 0x70 }, "DeltaSolutio", "Delta Solutions LLC" },
{ { 0x8C, 0x1F, 0x64, 0xEB, 0x90 }, "KxSTechnolog", "KxS Technologies Oy" },
{ { 0x8C, 0x1F, 0x64, 0xEB, 0xA0 }, "HyveSolution", "Hyve Solutions" },
+ { { 0x8C, 0x1F, 0x64, 0xEB, 0xD0 }, "EspritDigita", "Esprit Digital Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xEB, 0xF0 }, "STEAMIQ", "STEAMIQ, Inc." },
{ { 0x8C, 0x1F, 0x64, 0xEC, 0x10 }, "ActronikaSAS", "Actronika SAS" },
{ { 0x8C, 0x1F, 0x64, 0xEC, 0xC0 }, "BaldwinJimek", "Baldwin Jimek AB" },
@@ -50816,6 +51323,7 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xEF, 0x50 }, "SigmaDefense", "Sigma Defense Systems LLC" },
{ { 0x8C, 0x1F, 0x64, 0xEF, 0x80 }, "NorthwestCen", "Northwest Central Indiana Community Partnerships Inc dba Wabash Heartland Innovation Network (WHIN)" },
{ { 0x8C, 0x1F, 0x64, 0xEF, 0xB0 }, "Warecube", "Warecube,Inc" },
+ { { 0x8C, 0x1F, 0x64, 0xEF, 0xD0 }, "NovateraTech", "Novatera(Shenzhen)Technologies Co.,Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xF0, 0x40 }, "IoTSecure", "IoTSecure, LLC" },
{ { 0x8C, 0x1F, 0x64, 0xF0, 0x50 }, "PrestonIndus", "Preston Industries dba PolyScience" },
{ { 0x8C, 0x1F, 0x64, 0xF0, 0x80 }, "Advantor", "Advantor Corporation" },
@@ -50869,7 +51377,9 @@ static const manuf_oui36_t global_manuf_oui36_table[] = {
{ { 0x8C, 0x1F, 0x64, 0xF7, 0x80 }, "TernaryResea", "Ternary Research Corporation" },
{ { 0x8C, 0x1F, 0x64, 0xF7, 0x90 }, "YUYAMAMFG", "YUYAMA MFG Co.,Ltd" },
{ { 0x8C, 0x1F, 0x64, 0xF7, 0xA0 }, "SiEngineTech", "SiEngine Technology Co., Ltd." },
+ { { 0x8C, 0x1F, 0x64, 0xF7, 0xC0 }, "GeneralDynam", "General Dynamics IT" },
{ { 0x8C, 0x1F, 0x64, 0xF7, 0xD0 }, "RpgInformati", "Rpg Informatica, S.A." },
+ { { 0x8C, 0x1F, 0x64, 0xF7, 0xF0 }, "VisionSafety", "Vision Systems Safety Tech" },
{ { 0x8C, 0x1F, 0x64, 0xF8, 0x40 }, "KSTtechnolog", "KST technology" },
{ { 0x8C, 0x1F, 0x64, 0xF8, 0x60 }, "INFOSTECH", "INFOSTECH Co., Ltd." },
{ { 0x8C, 0x1F, 0x64, 0xF8, 0x70 }, "FlyElectroni", "Fly Electronic (Shang Hai) Technology Co.,Ltd" },
diff --git a/epan/maxmind_db.c b/epan/maxmind_db.c
index 9355fbbc36..862fbb3579 100644
--- a/epan/maxmind_db.c
+++ b/epan/maxmind_db.c
@@ -107,7 +107,7 @@ UAT_DIRECTORYNAME_CB_DEF(maxmind_mod, path, maxmind_db_path_t)
static GPtrArray *mmdb_file_arr; // .mmdb files
-static gboolean resolve_synchronously = FALSE;
+static gboolean resolve_synchronously;
static void mmdb_resolve_stop(void);
diff --git a/epan/oids.c b/epan/oids.c
index d7570a4d54..438443c0bd 100644
--- a/epan/oids.c
+++ b/epan/oids.c
@@ -31,17 +31,17 @@
#ifdef HAVE_LIBSMI
#include <smi.h>
-static gboolean smi_init_done = FALSE;
-static gboolean oids_init_done = FALSE;
-static gboolean load_smi_modules = FALSE;
-static gboolean suppress_smi_errors = FALSE;
+static bool smi_init_done;
+static bool oids_init_done;
+static bool load_smi_modules;
+static bool suppress_smi_errors;
#endif
#define D(level,args) do if (debuglevel >= level) { printf args; printf("\n"); fflush(stdout); } while(0)
#include "oids.h"
-static int debuglevel = 0;
+static int debuglevel;
/*
* From SNMPv2-SMI and X.690
@@ -80,6 +80,7 @@ static const oid_value_type_t unknown_type = { FT_BYTES, BASE_NONE, BER_CLAS
static oid_info_t oid_root = { 0, NULL, OID_KIND_UNKNOWN, NULL, &unknown_type, -2, NULL, NULL, NULL};
+// NOLINTNEXTLINE(misc-no-recursion)
static void prepopulate_oids(void) {
if (!oid_root.children) {
char* debug_env = getenv("WIRESHARK_DEBUG_MIBS");
@@ -93,14 +94,14 @@ static void prepopulate_oids(void) {
* make sure we got strings at least in the three root-children oids
* that way oid_resolved() will always have a string to print
*/
+ // We recurse here once.
subid = 0; oid_add("itu-t",1,&subid);
subid = 1; oid_add("iso",1,&subid);
subid = 2; oid_add("joint-iso-itu-t",1,&subid);
}
}
-
-
+// NOLINTNEXTLINE(misc-no-recursion)
static oid_info_t* add_oid(const char* name, oid_kind_t kind, const oid_value_type_t* type, oid_key_t* key, guint oid_len, guint32 *subids) {
guint i = 0;
oid_info_t* c = &oid_root;
@@ -158,6 +159,7 @@ static oid_info_t* add_oid(const char* name, oid_kind_t kind, const oid_value_ty
return NULL;
}
+// NOLINTNEXTLINE(misc-no-recursion)
void oid_add(const char* name, guint oid_len, guint32 *subids) {
ws_assert(subids && *subids <= 2);
if (oid_len) {
@@ -229,13 +231,13 @@ typedef struct smi_module_t {
char* name;
} smi_module_t;
-static smi_module_t* smi_paths = NULL;
-static guint num_smi_paths = 0;
-static uat_t* smi_paths_uat = NULL;
+static smi_module_t* smi_paths;
+static guint num_smi_paths;
+static uat_t* smi_paths_uat;
-static smi_module_t* smi_modules = NULL;
-static guint num_smi_modules = 0;
-static uat_t* smi_modules_uat = NULL;
+static smi_module_t* smi_modules;
+static guint num_smi_modules;
+static uat_t* smi_modules_uat;
static GString* smi_errors;
diff --git a/epan/packet.c b/epan/packet.c
index 27b153bf30..b3a0e324f8 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -45,9 +45,9 @@
#include <wsutil/ws_assert.h>
static gint proto_malformed;
-static dissector_handle_t frame_handle = NULL;
-static dissector_handle_t file_handle = NULL;
-static dissector_handle_t data_handle = NULL;
+static dissector_handle_t frame_handle;
+static dissector_handle_t file_handle;
+static dissector_handle_t data_handle;
/**
* A data source.
@@ -97,17 +97,17 @@ struct dissector_table {
/*
* Dissector tables. const char * -> dissector_table *
*/
-static GHashTable *dissector_tables = NULL;
+static GHashTable *dissector_tables;
/*
* Dissector table aliases. const char * -> const char *
*/
-static GHashTable *dissector_table_aliases = NULL;
+static GHashTable *dissector_table_aliases;
/*
* List of registered dissectors.
*/
-static GHashTable *registered_dissectors = NULL;
+static GHashTable *registered_dissectors;
/*
* A dissector dependency list.
@@ -117,7 +117,7 @@ struct depend_dissector_list {
};
/* Maps char *dissector_name to depend_dissector_list_t */
-static GHashTable *depend_dissector_lists = NULL;
+static GHashTable *depend_dissector_lists;
/* Allow protocols to register a "cleanup" routine to be
* run after the initial sequential run through the packets.
@@ -137,7 +137,7 @@ typedef struct {
/*
* Array of all postdissectors.
*/
-static GArray *postdissectors = NULL;
+static GArray *postdissectors;
/*
* i-th element of that array.
@@ -163,10 +163,10 @@ struct heur_dissector_list {
GSList *dissectors;
};
-static GHashTable *heur_dissector_lists = NULL;
+static GHashTable *heur_dissector_lists;
/* Name hashtables for fast detection of duplicate names */
-static GHashTable* heuristic_short_names = NULL;
+static GHashTable* heuristic_short_names;
static void
destroy_heuristic_dissector_entry(gpointer data)
@@ -245,7 +245,7 @@ packet_cache_proto_handles(void)
*
* See register_init_routine().
*/
-static GSList *init_routines = NULL;
+static GSList *init_routines;
/**
* List of "cleanup" routines, which are called after closing a capture
@@ -255,7 +255,7 @@ static GSList *init_routines = NULL;
*
* See register_cleanup_routine().
*/
-static GSList *cleanup_routines = NULL;
+static GSList *cleanup_routines;
/*
* List of "shutdown" routines, which are called once, just before
@@ -263,7 +263,7 @@ static GSList *cleanup_routines = NULL;
*
* See register_shutdown_routine().
*/
-static GSList *shutdown_routines = NULL;
+static GSList *shutdown_routines;
typedef void (*void_func_t)(void);
@@ -3124,6 +3124,7 @@ heur_dissector_table_foreach (const char *table_name,
{
heur_dissector_foreach_info_t info;
heur_dissector_list_t sub_dissectors = find_heur_dissector_list(table_name);
+ DISSECTOR_ASSERT(sub_dissectors != NULL);
info.table_name = table_name;
info.caller_func = func;
@@ -3253,6 +3254,17 @@ register_heur_dissector_list(const char *name, const int proto)
return register_heur_dissector_list_with_description(name, NULL, proto);
}
+void
+deregister_heur_dissector_list(const char *name)
+{
+ heur_dissector_list_t sub_dissectors = find_heur_dissector_list(name);
+ if (sub_dissectors == NULL) {
+ return;
+ }
+
+ g_hash_table_remove(heur_dissector_lists, name);
+}
+
const char *
heur_dissector_list_get_description(heur_dissector_list_t list)
{
@@ -3527,7 +3539,6 @@ deregister_dissector(const char *name)
g_hash_table_remove(registered_dissectors, name);
g_hash_table_remove(depend_dissector_lists, name);
g_hash_table_foreach(depend_dissector_lists, remove_depend_dissector_ghfunc, (gpointer)name);
- g_hash_table_remove(heur_dissector_lists, name);
destroy_dissector_handle(handle);
}
diff --git a/epan/packet.h b/epan/packet.h
index b0b71d3dfe..b6df4cb574 100644
--- a/epan/packet.h
+++ b/epan/packet.h
@@ -12,6 +12,7 @@
#define __PACKET_H__
#include <wireshark.h>
+#include <wsutil/array.h>
#include <wiretap/wtap_opttypes.h>
#include "proto.h"
#include "tvbuff.h"
@@ -38,9 +39,6 @@ struct epan_range;
#define hi_nibble(b) (((b) & 0xf0) >> 4)
#define lo_nibble(b) ((b) & 0x0f)
-/* Useful when you have an array whose size you can tell at compile-time */
-#define array_length(x) (sizeof x / sizeof x[0])
-
/* Check whether the "len" bytes of data starting at "offset" is
* entirely inside the captured data for this packet. */
#define BYTES_ARE_IN_FRAME(offset, captured_len, len) \
@@ -475,7 +473,7 @@ typedef struct heur_dtbl_entry {
/** A protocol uses this function to register a heuristic sub-dissector list.
* Call this in the parent dissectors proto_register function.
*
- * @param name the name of this protocol
+ * @param name a unique short name for the list
* @param ui_name the name used in the user interface
* @param proto the value obtained when registering the protocol
*/
@@ -495,6 +493,9 @@ WS_DLL_PUBLIC const char *heur_dissector_list_get_description(heur_dissector_lis
*/
WS_DLL_PUBLIC heur_dissector_list_t register_heur_dissector_list(const char *name, const int proto);
+/** Deregister a heuristic dissector list by unique short name. */
+void deregister_heur_dissector_list(const char *name);
+
typedef void (*DATFunc_heur) (const gchar *table_name,
struct heur_dtbl_entry *entry, gpointer user_data);
typedef void (*DATFunc_heur_table) (const char *table_name,
diff --git a/epan/packet_info.h b/epan/packet_info.h
index d1e8a2002c..4f21f48542 100644
--- a/epan/packet_info.h
+++ b/epan/packet_info.h
@@ -157,6 +157,8 @@ typedef struct _packet_info {
struct epan_session *epan;
const gchar *heur_list_name; /**< name of heur list if this packet is being heuristically dissected */
int dissection_depth; /**< The current "depth" or layer number in the current frame */
+
+ guint32 stream_id; /**< Conversation Stream ID of the highest protocol */
} packet_info;
/** @} */
diff --git a/epan/params.h b/epan/params.h
index cc023d3552..f609fb9b2b 100644
--- a/epan/params.h
+++ b/epan/params.h
@@ -23,7 +23,7 @@
typedef struct {
const char *name;
const char *description;
- gint value;
+ int value;
} enum_val_t;
/* ----- Public enum_val_t "Helper" macros ----- */
diff --git a/epan/pci-ids.c b/epan/pci-ids.c
index 04dda1b510..22cfea47c5 100644
--- a/epan/pci-ids.c
+++ b/epan/pci-ids.c
@@ -6,8 +6,8 @@
*
* List of PCI ID's
*
- * Version: 2024.02.02
- * Date: 2024-02-02 14:41:33
+ * Version: 2024.05.14
+ * Date: 2024-05-14 03:15:02
*
* Maintained by Albert Pool, Martin Mares, and other volunteers from
* the PCI ID Project at https://pci-ids.ucw.cz/.
@@ -32,6 +32,8 @@
#include <stddef.h>
#include <stdlib.h>
+#include "wsutil/array.h"
+
#include "pci-ids.h"
typedef struct
@@ -610,6 +612,7 @@ static pci_id_t const pci_vid_1000[] = {
{0x1000, 0x0054, 0x1028, 0x1F07, "SAS 5/iR Integrated RAID Controller(0x1028-0x1F07)"},
{0x1000, 0x0054, 0x1028, 0x1F08, "SAS 5/iR Integrated RAID Controller(0x1028-0x1F08)"},
{0x1000, 0x0054, 0x1028, 0x1F09, "SAS 5/iR Adapter RAID Controller(0x1028-0x1F09)"},
+{0x1000, 0x0054, 0x103C, 0x3228, "SAS3080X-HP 8-port PCI-X 133MHz Host Bus Adapter with 2xSFF-8484(0x103C-0x3228)"},
{0x1000, 0x0054, 0x15AD, 0x1976, "SAS Controller(0x15AD-0x1976)"},
{0x1000, 0x0055, 0xFFFF, 0xFFFF, "SAS1068 PCI-X Fusion-MPT SAS(0x0055)"},
{0x1000, 0x0055, 0x1033, 0x8336, "SAS1068(0x1033-0x8336)"},
@@ -918,7 +921,7 @@ static pci_id_t const pci_vid_1000[] = {
{0x1000, 0x0097, 0x1BD4, 0x0026, "12G SAS3008IT RACK(0x1BD4-0x0026)"},
{0x1000, 0x0097, 0x1BD4, 0x0027, "12G SAS3008IMR RACK(0x1BD4-0x0027)"},
{0x1000, 0x0097, 0x1BD4, 0x0028, "12G SAS3008IR RACK(0x1BD4-0x0028)"},
-{0x1000, 0x00A5, 0xFFFF, 0xFFFF, "Fusion-MPT 24GSAS/PCIe SAS40xx(0x00A5)"},
+{0x1000, 0x00A5, 0xFFFF, 0xFFFF, "Fusion-MPT 24GSAS/PCIe SAS40xx/41xx(0x00A5)"},
{0x1000, 0x00A5, 0x1000, 0x4600, "MegaRAID 9670W-16i Tri-Mode Storage Adapter(0x1000-0x4600)"},
{0x1000, 0x00A5, 0x1000, 0x4610, "MegaRAID 9670-24i Tri-Mode Storage Adapter(0x1000-0x4610)"},
{0x1000, 0x00A5, 0x1000, 0x4620, "MegaRAID 9660-16i Tri-Mode Storage Adapter(0x1000-0x4620)"},
@@ -3859,6 +3862,7 @@ static pci_id_t const pci_vid_1002[] = {
{0x1002, 0x699F, 0xFFFF, 0xFFFF, "Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X](0x699F)"},
{0x1002, 0x699F, 0x1028, 0x1720, "Radeon RX 550X(0x1028-0x1720)"},
{0x1002, 0x699F, 0x148C, 0x2380, "Lexa XL [Radeon RX 550](0x148C-0x2380)"},
+{0x1002, 0x699F, 0x17AA, 0x5069, "Thinkpad E480/E580(0x17AA-0x5069)"},
{0x1002, 0x699F, 0x1DA2, 0xE367, "Lexa PRO [Radeon RX 550](0x1DA2-0xE367)"},
{0x1002, 0x69A0, 0xFFFF, 0xFFFF, "Vega 12(0x69A0)"},
{0x1002, 0x69A1, 0xFFFF, 0xFFFF, "Vega 12(0x69A1)"},
@@ -4040,6 +4044,7 @@ static pci_id_t const pci_vid_1002[] = {
{0x1002, 0x73A3, 0xFFFF, 0xFFFF, "Navi 21 GL-XL [Radeon PRO W6800](0x73A3)"},
{0x1002, 0x73A4, 0xFFFF, 0xFFFF, "Navi 21 USB(0x73A4)"},
{0x1002, 0x73A5, 0xFFFF, 0xFFFF, "Navi 21 [Radeon RX 6950 XT](0x73A5)"},
+{0x1002, 0x73A5, 0x1002, 0x0E3A, "Radeon RX 6950 XT(0x1002-0x0E3A)"},
{0x1002, 0x73A5, 0x1849, 0x5230, "Navi 21 [ASRock OC Forumla Radeon RX 6950XT](0x1849-0x5230)"},
{0x1002, 0x73A5, 0x1DA2, 0x441D, "Navi 21 [Sapphire Nitro+ Radeon RX 6950 XT](0x1DA2-0x441D)"},
{0x1002, 0x73A5, 0x1EAE, 0x6950, "Navi 21 [XFX Speedster MERC319 Radeon RX 6950 XT](0x1EAE-0x6950)"},
@@ -4069,6 +4074,7 @@ static pci_id_t const pci_vid_1002[] = {
{0x1002, 0x73DF, 0x1DA2, 0x465E, "Radeon RX 6750 XT PULSE OC(0x1DA2-0x465E)"},
{0x1002, 0x73DF, 0x1DA2, 0xE445, "Sapphire Radeon RX 6700(0x1DA2-0xE445)"},
{0x1002, 0x73DF, 0x1EAE, 0x6601, "Speedster QICK 319 RX 6700 XT(0x1EAE-0x6601)"},
+{0x1002, 0x73DF, 0x1EAE, 0x661A, "Radeon RX 6700 [SPEEDSTER SWFT 309](0x1EAE-0x661A)"},
{0x1002, 0x73E0, 0xFFFF, 0xFFFF, "Navi 23(0x73E0)"},
{0x1002, 0x73E1, 0xFFFF, 0xFFFF, "Navi 23 WKS-XM [Radeon PRO W6600M](0x73E1)"},
{0x1002, 0x73E3, 0xFFFF, 0xFFFF, "Navi 23 WKS-XL [Radeon PRO W6600](0x73E3)"},
@@ -5794,6 +5800,7 @@ static pci_id_t const pci_vid_1022[] = {
{0x1022, 0x9609, 0xFFFF, 0xFFFF, "RS780/RS880 PCI to PCI bridge (PCIE port 5)(0x9609)"},
{0x1022, 0x960A, 0xFFFF, 0xFFFF, "RS780 PCI to PCI bridge (NB-SB link)(0x960A)"},
{0x1022, 0x960B, 0xFFFF, 0xFFFF, "RS780 PCI to PCI bridge (ext gfx port 1)(0x960B)"},
+{0x1022, 0xB000, 0xFFFF, 0xFFFF, "RAID Bottom Device(0xB000)"},
}; /* pci_vid_1022[] */
static pci_id_t const pci_vid_1023[] = {
@@ -9736,6 +9743,7 @@ static pci_id_t const pci_vid_10B5[] = {
{0x10B5, 0x87D0, 0xFFFF, 0xFFFF, "PEX PCI Express Switch DMA interface(0x87D0)"},
{0x10B5, 0x9016, 0xFFFF, 0xFFFF, "PLX 9016 8-port serial controller(0x9016)"},
{0x10B5, 0x9030, 0xFFFF, 0xFFFF, "PCI9030 32-bit 33MHz PCI <-> IOBus Bridge(0x9030)"},
+{0x10B5, 0x9030, 0x10B5, 0x1205, "Becker & Hickl MSA-1000(0x10B5-0x1205)"},
{0x10B5, 0x9030, 0x10B5, 0x2695, "Hilscher CIF50-PB/DPS Profibus(0x10B5-0x2695)"},
{0x10B5, 0x9030, 0x10B5, 0x2862, "Alpermann+Velte PCL PCI LV (3V/5V): Timecode Reader Board(0x10B5-0x2862)"},
{0x10B5, 0x9030, 0x10B5, 0x2906, "Alpermann+Velte PCI TS (3V/5V): Time Synchronisation Board(0x10B5-0x2906)"},
@@ -9770,7 +9778,13 @@ static pci_id_t const pci_vid_10B5[] = {
{0x10B5, 0x9050, 0x10B5, 0x1067, "IXXAT CAN i165(0x10B5-0x1067)"},
{0x10B5, 0x9050, 0x10B5, 0x114E, "Wasco WITIO PCI168extended(0x10B5-0x114E)"},
{0x10B5, 0x9050, 0x10B5, 0x1169, "Wasco OPTOIO32standard 32 digital in, 32 digital out(0x10B5-0x1169)"},
+{0x10B5, 0x9050, 0x10B5, 0x1171, "Becker & Hickl PMS-400(0x10B5-0x1171)"},
{0x10B5, 0x9050, 0x10B5, 0x1172, "IK220 (Heidenhain)(0x10B5-0x1172)"},
+{0x10B5, 0x9050, 0x10B5, 0x1201, "Becker & Hickl SPC-6x0(0x10B5-0x1201)"},
+{0x10B5, 0x9050, 0x10B5, 0x1202, "Becker & Hickl SPC-7x0(0x10B5-0x1202)"},
+{0x10B5, 0x9050, 0x10B5, 0x1203, "Becker & Hickl MSA-300(0x10B5-0x1203)"},
+{0x10B5, 0x9050, 0x10B5, 0x1206, "Becker & Hickl DCC-100(0x10B5-0x1206)"},
+{0x10B5, 0x9050, 0x10B5, 0x120A, "Becker & Hickl STP-340(0x10B5-0x120A)"},
{0x10B5, 0x9050, 0x10B5, 0x2036, "SatPak GPS(0x10B5-0x2036)"},
{0x10B5, 0x9050, 0x10B5, 0x2221, "Alpermann+Velte PCL PCI LV: Timecode Reader Board(0x10B5-0x2221)"},
{0x10B5, 0x9050, 0x10B5, 0x2273, "SH ARC-PCI SOHARD ARCNET card(0x10B5-0x2273)"},
@@ -9818,6 +9832,11 @@ static pci_id_t const pci_vid_10B5[] = {
{0x10B5, 0x9050, 0xD84D, 0x4078, "EX-4078 2S(16C552) RS-232+1P(0xD84D-0x4078)"},
{0x10B5, 0x9052, 0xFFFF, 0xFFFF, "PCI9052 PCI <-> IOBus Bridge(0x9052)"},
{0x10B5, 0x9054, 0xFFFF, 0xFFFF, "PCI9054 32-bit 33MHz PCI <-> IOBus Bridge(0x9054)"},
+{0x10B5, 0x9054, 0x10B5, 0x1171, "Becker & Hickl PMS-400A(0x10B5-0x1171)"},
+{0x10B5, 0x9054, 0x10B5, 0x1208, "Becker & Hickl SPC-830(0x10B5-0x1208)"},
+{0x10B5, 0x9054, 0x10B5, 0x120E, "Becker & Hickl SPC-930(0x10B5-0x120E)"},
+{0x10B5, 0x9054, 0x10B5, 0x120F, "Becker & Hickl SPC-150(0x10B5-0x120F)"},
+{0x10B5, 0x9054, 0x10B5, 0x1210, "Becker & Hickl DPC-230(0x10B5-0x1210)"},
{0x10B5, 0x9054, 0x10B5, 0x2455, "Wessex Techology PHIL-PCI(0x10B5-0x2455)"},
{0x10B5, 0x9054, 0x10B5, 0x2696, "Innes Corp AM Radcap card(0x10B5-0x2696)"},
{0x10B5, 0x9054, 0x10B5, 0x2717, "Innes Corp Auricon card(0x10B5-0x2717)"},
@@ -12384,6 +12403,9 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x0F02, 0xFFFF, 0xFFFF, "GF108 [GeForce GT 730](0x0F02)"},
{0x10DE, 0x0F03, 0xFFFF, 0xFFFF, "GF108 [GeForce GT 610](0x0F03)"},
{0x10DE, 0x0F06, 0xFFFF, 0xFFFF, "GF108 [GeForce GT 730](0x0F06)"},
+{0x10DE, 0x0FA0, 0xFFFF, 0xFFFF, "GK11x [GK11x_FPGA](0x0FA0)"},
+{0x10DE, 0x0FA5, 0xFFFF, 0xFFFF, "GK11x(0x0FA5)"},
+{0x10DE, 0x0FA7, 0xFFFF, 0xFFFF, "GK11x [Tegra on x86 (PEATRANS)](0x0FA7)"},
{0x10DE, 0x0FB0, 0xFFFF, 0xFFFF, "GM200 High Definition Audio(0x0FB0)"},
{0x10DE, 0x0FB8, 0xFFFF, 0xFFFF, "GP108 High Definition Audio Controller(0x0FB8)"},
{0x10DE, 0x0FB9, 0xFFFF, 0xFFFF, "GP107GL High Definition Audio Controller(0x0FB9)"},
@@ -12393,13 +12415,18 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x0FC0, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 640 OEM](0x0FC0)"},
{0x10DE, 0x0FC1, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 640](0x0FC1)"},
{0x10DE, 0x0FC2, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 630 OEM](0x0FC2)"},
+{0x10DE, 0x0FC4, 0xFFFF, 0xFFFF, "GK107 [D14P1-15](0x0FC4)"},
{0x10DE, 0x0FC5, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 1030](0x0FC5)"},
{0x10DE, 0x0FC6, 0xFFFF, 0xFFFF, "GK107 [GeForce GTX 650](0x0FC6)"},
{0x10DE, 0x0FC6, 0x1043, 0x8428, "GTX650-DC-1GD5(0x1043-0x8428)"},
{0x10DE, 0x0FC8, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 740](0x0FC8)"},
{0x10DE, 0x0FC9, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 730](0x0FC9)"},
+{0x10DE, 0x0FCB, 0xFFFF, 0xFFFF, "GK107 [EXK107](0x0FCB)"},
+{0x10DE, 0x0FCC, 0xFFFF, 0xFFFF, "GK107 [GeForce GT 720](0x0FCC)"},
{0x10DE, 0x0FCD, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 755M](0x0FCD)"},
{0x10DE, 0x0FCE, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 640M LE](0x0FCE)"},
+{0x10DE, 0x0FCF, 0xFFFF, 0xFFFF, "GK107 [GEN3 ESI](0x0FCF)"},
+{0x10DE, 0x0FD0, 0xFFFF, 0xFFFF, "GK107 [NB1G](0x0FD0)"},
{0x10DE, 0x0FD1, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 650M](0x0FD1)"},
{0x10DE, 0x0FD1, 0x1043, 0x1597, "GeForce GT 650M(0x1043-0x1597)"},
{0x10DE, 0x0FD1, 0x1043, 0x15A7, "GeForce GT 650M(0x1043-0x15A7)"},
@@ -12414,10 +12441,15 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x0FD3, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 640M LE](0x0FD3)"},
{0x10DE, 0x0FD4, 0xFFFF, 0xFFFF, "GK107M [GeForce GTX 660M](0x0FD4)"},
{0x10DE, 0x0FD5, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 650M Mac Edition](0x0FD5)"},
-{0x10DE, 0x0FD6, 0xFFFF, 0xFFFF, "GK107M(0x0FD6)"},
+{0x10DE, 0x0FD6, 0xFFFF, 0xFFFF, "GK107M [N13P-GS-W](0x0FD6)"},
+{0x10DE, 0x0FD7, 0xFFFF, 0xFFFF, "GK107 [GK107-GTX](0x0FD7)"},
{0x10DE, 0x0FD8, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 640M Mac Edition](0x0FD8)"},
{0x10DE, 0x0FD9, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 645M](0x0FD9)"},
-{0x10DE, 0x0FDB, 0xFFFF, 0xFFFF, "GK107M(0x0FDB)"},
+{0x10DE, 0x0FDA, 0xFFFF, 0xFFFF, "GK107 [GK107-ES-A1](0x0FDA)"},
+{0x10DE, 0x0FDB, 0xFFFF, 0xFFFF, "GK107 [GK107-ESP-A1](0x0FDB)"},
+{0x10DE, 0x0FDC, 0xFFFF, 0xFFFF, "GK107 [GK107-INT22-A1](0x0FDC)"},
+{0x10DE, 0x0FDD, 0xFFFF, 0xFFFF, "GK107 [GK107-INT11-A1](0x0FDD)"},
+{0x10DE, 0x0FDE, 0xFFFF, 0xFFFF, "GK107 [GK107-ES-KA-E1](0x0FDE)"},
{0x10DE, 0x0FDF, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 740M](0x0FDF)"},
{0x10DE, 0x0FE0, 0xFFFF, 0xFFFF, "GK107M [GeForce GTX 660M Mac Edition](0x0FE0)"},
{0x10DE, 0x0FE1, 0xFFFF, 0xFFFF, "GK107M [GeForce GT 730M](0x0FE1)"},
@@ -12437,6 +12469,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x0FED, 0xFFFF, 0xFFFF, "GK107M [GeForce 820M](0x0FED)"},
{0x10DE, 0x0FEE, 0xFFFF, 0xFFFF, "GK107M [GeForce 810M](0x0FEE)"},
{0x10DE, 0x0FEF, 0xFFFF, 0xFFFF, "GK107GL [GRID K340](0x0FEF)"},
+{0x10DE, 0x0FF0, 0xFFFF, 0xFFFF, "GK107 [NB1Q](0x0FF0)"},
{0x10DE, 0x0FF1, 0xFFFF, 0xFFFF, "GK107 [NVS 1000](0x0FF1)"},
{0x10DE, 0x0FF2, 0xFFFF, 0xFFFF, "GK107GL [GRID K1](0x0FF2)"},
{0x10DE, 0x0FF3, 0xFFFF, 0xFFFF, "GK107GL [Quadro K420](0x0FF3)"},
@@ -12947,9 +12980,13 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x11A2, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 675MX Mac Edition](0x11A2)"},
{0x10DE, 0x11A3, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 680MX](0x11A3)"},
{0x10DE, 0x11A3, 0x106B, 0x010D, "iMac 13,2(0x106B-0x010D)"},
+{0x10DE, 0x11A4, 0xFFFF, 0xFFFF, "GK104 [GK104-ESA](0x11A4)"},
+{0x10DE, 0x11A5, 0xFFFF, 0xFFFF, "GK104 [GK104-ESA](0x11A5)"},
{0x10DE, 0x11A7, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 675MX](0x11A7)"},
{0x10DE, 0x11A8, 0xFFFF, 0xFFFF, "GK104GLM [Quadro K5100M](0x11A8)"},
{0x10DE, 0x11A9, 0xFFFF, 0xFFFF, "GK104M [GeForce GTX 870M](0x11A9)"},
+{0x10DE, 0x11AA, 0xFFFF, 0xFFFF, "GK104 [GK104-INT](0x11AA)"},
+{0x10DE, 0x11AC, 0xFFFF, 0xFFFF, "GK104 [GK104-CS](0x11AC)"},
{0x10DE, 0x11AF, 0xFFFF, 0xFFFF, "GK104GLM [GRID IceCube](0x11AF)"},
{0x10DE, 0x11B0, 0xFFFF, 0xFFFF, "GK104GL [GRID K240Q / K260Q vGPU](0x11B0)"},
{0x10DE, 0x11B0, 0x10DE, 0x101A, "GRID K240Q(0x10DE-0x101A)"},
@@ -12967,6 +13004,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x11BE, 0xFFFF, 0xFFFF, "GK104GLM [Quadro K3000M](0x11BE)"},
{0x10DE, 0x11BF, 0xFFFF, 0xFFFF, "GK104GL [GRID K2](0x11BF)"},
{0x10DE, 0x11C0, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 660](0x11C0)"},
+{0x10DE, 0x11C1, 0xFFFF, 0xFFFF, "GK106 [D14P2-30](0x11C1)"},
{0x10DE, 0x11C2, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 650 Ti Boost](0x11C2)"},
{0x10DE, 0x11C2, 0x1043, 0x845B, "GeForce GTX 650 Ti Boost DirectCU II OC(0x1043-0x845B)"},
{0x10DE, 0x11C2, 0x1462, 0x2874, "GeForce GTX 650 Ti Boost TwinFrozr II OC(0x1462-0x2874)"},
@@ -12982,6 +13020,10 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x11C7, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 750 Ti](0x11C7)"},
{0x10DE, 0x11C8, 0xFFFF, 0xFFFF, "GK106 [GeForce GTX 650 OEM](0x11C8)"},
{0x10DE, 0x11CB, 0xFFFF, 0xFFFF, "GK106 [GeForce GT 740](0x11CB)"},
+{0x10DE, 0x11D0, 0xFFFF, 0xFFFF, "GK106 [GK106-INT353](0x11D0)"},
+{0x10DE, 0x11D1, 0xFFFF, 0xFFFF, "GK106 [GK106-INT343](0x11D1)"},
+{0x10DE, 0x11D2, 0xFFFF, 0xFFFF, "GK106 [GK106-INT232](0x11D2)"},
+{0x10DE, 0x11D3, 0xFFFF, 0xFFFF, "GK106 [GK106-ES](0x11D3)"},
{0x10DE, 0x11E0, 0xFFFF, 0xFFFF, "GK106M [GeForce GTX 770M](0x11E0)"},
{0x10DE, 0x11E1, 0xFFFF, 0xFFFF, "GK106M [GeForce GTX 765M](0x11E1)"},
{0x10DE, 0x11E2, 0xFFFF, 0xFFFF, "GK106M [GeForce GTX 765M](0x11E2)"},
@@ -12990,6 +13032,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x11E7, 0xFFFF, 0xFFFF, "GK106M(0x11E7)"},
{0x10DE, 0x11FA, 0xFFFF, 0xFFFF, "GK106GL [Quadro K4000](0x11FA)"},
{0x10DE, 0x11FC, 0xFFFF, 0xFFFF, "GK106GLM [Quadro K2100M](0x11FC)"},
+{0x10DE, 0x11FF, 0xFFFF, 0xFFFF, "GK106 [NB1Q](0x11FF)"},
{0x10DE, 0x1200, 0xFFFF, 0xFFFF, "GF114 [GeForce GTX 560 Ti](0x1200)"},
{0x10DE, 0x1201, 0xFFFF, 0xFFFF, "GF114 [GeForce GTX 560](0x1201)"},
{0x10DE, 0x1202, 0xFFFF, 0xFFFF, "GF114 [GeForce GTX 560 Ti OEM](0x1202)"},
@@ -13037,7 +13080,9 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x1280, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 635](0x1280)"},
{0x10DE, 0x1281, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 710](0x1281)"},
{0x10DE, 0x1282, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 640 Rev. 2](0x1282)"},
+{0x10DE, 0x1283, 0xFFFF, 0xFFFF, "GK208 [D15M2-10](0x1283)"},
{0x10DE, 0x1284, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 630 Rev. 2](0x1284)"},
+{0x10DE, 0x1285, 0xFFFF, 0xFFFF, "GK208 [GK208-100](0x1285)"},
{0x10DE, 0x1286, 0xFFFF, 0xFFFF, "GK208 [GeForce GT 720](0x1286)"},
{0x10DE, 0x1287, 0xFFFF, 0xFFFF, "GK208B [GeForce GT 730](0x1287)"},
{0x10DE, 0x1288, 0xFFFF, 0xFFFF, "GK208B [GeForce GT 720](0x1288)"},
@@ -13077,8 +13122,14 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x1299, 0x17AA, 0x36AF, "GeForce 920M(0x17AA-0x36AF)"},
{0x10DE, 0x129A, 0xFFFF, 0xFFFF, "GK208BM [GeForce 910M](0x129A)"},
{0x10DE, 0x12A0, 0xFFFF, 0xFFFF, "GK208(0x12A0)"},
+{0x10DE, 0x12AD, 0xFFFF, 0xFFFF, "GK208 [GK208-ES](0x12AD)"},
+{0x10DE, 0x12AE, 0xFFFF, 0xFFFF, "GK208 [GK208-CS1-C](0x12AE)"},
+{0x10DE, 0x12AF, 0xFFFF, 0xFFFF, "GK208 [GK208-INT](0x12AF)"},
+{0x10DE, 0x12B0, 0xFFFF, 0xFFFF, "GK208 [GK208-CS-Q](0x12B0)"},
+{0x10DE, 0x12B1, 0xFFFF, 0xFFFF, "GK208 [GK208 INT](0x12B1)"},
{0x10DE, 0x12B9, 0xFFFF, 0xFFFF, "GK208GLM [Quadro K610M](0x12B9)"},
{0x10DE, 0x12BA, 0xFFFF, 0xFFFF, "GK208GLM [Quadro K510M](0x12BA)"},
+{0x10DE, 0x130B, 0xFFFF, 0xFFFF, "GK110 [Q12U-1](0x130B)"},
{0x10DE, 0x1340, 0xFFFF, 0xFFFF, "GM108M [GeForce 830M](0x1340)"},
{0x10DE, 0x1340, 0x103C, 0x2B2B, "GeForce 830A(0x103C-0x2B2B)"},
{0x10DE, 0x1341, 0xFFFF, 0xFFFF, "GM108M [GeForce 840M](0x1341)"},
@@ -13123,6 +13174,8 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x139B, 0x103C, 0x2B4C, "GeForce GTX 960A(0x103C-0x2B4C)"},
{0x10DE, 0x139C, 0xFFFF, 0xFFFF, "GM107M [GeForce 940M](0x139C)"},
{0x10DE, 0x139D, 0xFFFF, 0xFFFF, "GM107M [GeForce GTX 750 Ti](0x139D)"},
+{0x10DE, 0x13AD, 0xFFFF, 0xFFFF, "GM204 [GM107 INT52](0x13AD)"},
+{0x10DE, 0x13AE, 0xFFFF, 0xFFFF, "GM204 [GM107 CS1](0x13AE)"},
{0x10DE, 0x13B0, 0xFFFF, 0xFFFF, "GM107GLM [Quadro M2000M](0x13B0)"},
{0x10DE, 0x13B1, 0xFFFF, 0xFFFF, "GM107GLM [Quadro M1000M](0x13B1)"},
{0x10DE, 0x13B2, 0xFFFF, 0xFFFF, "GM107GLM [Quadro M600M](0x13B2)"},
@@ -13137,15 +13190,19 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x13BD, 0x10DE, 0x110A, "GRID M40(0x10DE-0x110A)"},
{0x10DE, 0x13BD, 0x10DE, 0x1160, "Tesla M10(0x10DE-0x1160)"},
{0x10DE, 0x13BD, 0x10DE, 0x11D2, "GRID M10-8Q(0x10DE-0x11D2)"},
+{0x10DE, 0x13BE, 0xFFFF, 0xFFFF, "GM204 [GM107 CS1](0x13BE)"},
+{0x10DE, 0x13BF, 0xFFFF, 0xFFFF, "GM204 [GM107 INT52](0x13BF)"},
{0x10DE, 0x13C0, 0xFFFF, 0xFFFF, "GM204 [GeForce GTX 980](0x13C0)"},
{0x10DE, 0x13C0, 0x1043, 0x8504, "GTX980-4GD5(0x1043-0x8504)"},
{0x10DE, 0x13C1, 0xFFFF, 0xFFFF, "GM204(0x13C1)"},
{0x10DE, 0x13C2, 0xFFFF, 0xFFFF, "GM204 [GeForce GTX 970](0x13C2)"},
{0x10DE, 0x13C3, 0xFFFF, 0xFFFF, "GM204(0x13C3)"},
+{0x10DE, 0x13C4, 0xFFFF, 0xFFFF, "GM204 [D17U-20](0x13C4)"},
{0x10DE, 0x13D7, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 980M](0x13D7)"},
{0x10DE, 0x13D8, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 960 OEM / 970M](0x13D8)"},
{0x10DE, 0x13D9, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 965M](0x13D9)"},
{0x10DE, 0x13DA, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 980 Mobile](0x13DA)"},
+{0x10DE, 0x13E4, 0xFFFF, 0xFFFF, "GM204 [Graphics Device ES-A](0x13E4)"},
{0x10DE, 0x13E7, 0xFFFF, 0xFFFF, "GM204GL [GeForce GTX 980 Engineering Sample](0x13E7)"},
{0x10DE, 0x13F0, 0xFFFF, 0xFFFF, "GM204GL [Quadro M5000](0x13F0)"},
{0x10DE, 0x13F1, 0xFFFF, 0xFFFF, "GM204GL [Quadro M4000](0x13F1)"},
@@ -13171,6 +13228,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x1430, 0xFFFF, 0xFFFF, "GM206GL [Quadro M2000](0x1430)"},
{0x10DE, 0x1431, 0xFFFF, 0xFFFF, "GM206GL [Tesla M4](0x1431)"},
{0x10DE, 0x1436, 0xFFFF, 0xFFFF, "GM206GLM [Quadro M2200 Mobile](0x1436)"},
+{0x10DE, 0x15C2, 0xFFFF, 0xFFFF, "GP100 [CMP 100-100](0x15C2)"},
{0x10DE, 0x15F0, 0xFFFF, 0xFFFF, "GP100GL [Quadro GP100](0x15F0)"},
{0x10DE, 0x15F1, 0xFFFF, 0xFFFF, "GP100GL(0x15F1)"},
{0x10DE, 0x15F7, 0xFFFF, 0xFFFF, "GP100GL [Tesla P100 PCIe 12GB](0x15F7)"},
@@ -13178,6 +13236,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x15F9, 0xFFFF, 0xFFFF, "GP100GL [Tesla P100 SXM2 16GB](0x15F9)"},
{0x10DE, 0x15FA, 0xFFFF, 0xFFFF, "GP100GL [DGX Station / PH402 SKU 200](0x15FA)"},
{0x10DE, 0x15FB, 0xFFFF, 0xFFFF, "GP100GL [GP100 SKU 200](0x15FB)"},
+{0x10DE, 0x15FC, 0xFFFF, 0xFFFF, "GP100GL [Tesla P100-DGXS-16GB](0x15FC)"},
{0x10DE, 0x15FF, 0xFFFF, 0xFFFF, "GP100GL [GP100 SKU 15ff](0x15FF)"},
{0x10DE, 0x1617, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 980M](0x1617)"},
{0x10DE, 0x1618, 0xFFFF, 0xFFFF, "GM204M [GeForce GTX 970M](0x1618)"},
@@ -13337,6 +13396,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x1D81, 0xFFFF, 0xFFFF, "GV100 [TITAN V](0x1D81)"},
{0x10DE, 0x1D83, 0xFFFF, 0xFFFF, "GV100 [CMP 100-200](0x1D83)"},
{0x10DE, 0x1D84, 0xFFFF, 0xFFFF, "GV100 [CMP 100-210](0x1D84)"},
+{0x10DE, 0x1DB0, 0xFFFF, 0xFFFF, "GV100GL [Tesla GV100 SXM2-16GB SKU 890](0x1DB0)"},
{0x10DE, 0x1DB1, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 SXM2 16GB](0x1DB1)"},
{0x10DE, 0x1DB2, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 DGXS 16GB](0x1DB2)"},
{0x10DE, 0x1DB3, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 FHHL 16GB](0x1DB3)"},
@@ -13353,6 +13413,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x1DC1, 0xFFFF, 0xFFFF, "GV100 [CMP 100-200](0x1DC1)"},
{0x10DE, 0x1DF0, 0xFFFF, 0xFFFF, "GV100GL [Tesla PG500-216](0x1DF0)"},
{0x10DE, 0x1DF2, 0xFFFF, 0xFFFF, "GV100GL [Tesla PG503-216](0x1DF2)"},
+{0x10DE, 0x1DF4, 0xFFFF, 0xFFFF, "GV100 [CMP 100-210](0x1DF4)"},
{0x10DE, 0x1DF5, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100 SXM2 16GB](0x1DF5)"},
{0x10DE, 0x1DF6, 0xFFFF, 0xFFFF, "GV100GL [Tesla V100S PCIe 32GB](0x1DF6)"},
{0x10DE, 0x1E02, 0xFFFF, 0xFFFF, "TU102 [TITAN RTX](0x1E02)"},
@@ -13366,6 +13427,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x1E30, 0xFFFF, 0xFFFF, "TU102GL [Quadro RTX 6000/8000](0x1E30)"},
{0x10DE, 0x1E30, 0x10DE, 0x129E, "Quadro RTX 8000(0x10DE-0x129E)"},
{0x10DE, 0x1E30, 0x10DE, 0x12BA, "Quadro RTX 6000(0x10DE-0x12BA)"},
+{0x10DE, 0x1E35, 0xFFFF, 0xFFFF, "TU102GL [Tesla T10](0x1E35)"},
{0x10DE, 0x1E36, 0xFFFF, 0xFFFF, "TU102GL [Quadro RTX 6000](0x1E36)"},
{0x10DE, 0x1E37, 0xFFFF, 0xFFFF, "TU102GL [Tesla T10 16GB / GRID RTX T10-2/T10-4/T10-8](0x1E37)"},
{0x10DE, 0x1E37, 0x10DE, 0x1304, "Tesla T10 16GB(0x10DE-0x1304)"},
@@ -13462,7 +13524,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x1FD9, 0xFFFF, 0xFFFF, "TU117BM [GeForce GTX 1650 Mobile Refresh](0x1FD9)"},
{0x10DE, 0x1FDD, 0xFFFF, 0xFFFF, "TU117BM [GeForce GTX 1650 Mobile Refresh](0x1FDD)"},
{0x10DE, 0x1FF0, 0xFFFF, 0xFFFF, "TU117GL [T1000 8GB](0x1FF0)"},
-{0x10DE, 0x1FF2, 0xFFFF, 0xFFFF, "TU117GL [T400 4GB](0x1FF2)"},
+{0x10DE, 0x1FF2, 0xFFFF, 0xFFFF, "TU117GL [T400 4GB / T400E](0x1FF2)"},
{0x10DE, 0x1FF9, 0xFFFF, 0xFFFF, "TU117GLM [Quadro T1000 Mobile](0x1FF9)"},
{0x10DE, 0x2080, 0xFFFF, 0xFFFF, "GA100(0x2080)"},
{0x10DE, 0x2081, 0xFFFF, 0xFFFF, "GA100(0x2081)"},
@@ -13541,8 +13603,10 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x2321, 0xFFFF, 0xFFFF, "GH100 [H100L 94GB](0x2321)"},
{0x10DE, 0x2322, 0xFFFF, 0xFFFF, "GH100 [H800 PCIe](0x2322)"},
{0x10DE, 0x2324, 0xFFFF, 0xFFFF, "GH100 [H800](0x2324)"},
+{0x10DE, 0x2329, 0xFFFF, 0xFFFF, "GH100 [H20](0x2329)"},
{0x10DE, 0x2330, 0xFFFF, 0xFFFF, "GH100 [H100 SXM5 80GB](0x2330)"},
{0x10DE, 0x2331, 0xFFFF, 0xFFFF, "GH100 [H100 PCIe](0x2331)"},
+{0x10DE, 0x2335, 0xFFFF, 0xFFFF, "GH100 [H200 SXM 141GB](0x2335)"},
{0x10DE, 0x2336, 0xFFFF, 0xFFFF, "GH100 [H100](0x2336)"},
{0x10DE, 0x2337, 0xFFFF, 0xFFFF, "GH100 [H100 SXM5 64GB](0x2337)"},
{0x10DE, 0x2338, 0xFFFF, 0xFFFF, "GH100 [H100 SXM5 96GB](0x2338)"},
@@ -13571,6 +13635,9 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x2488, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3070 Lite Hash Rate](0x2488)"},
{0x10DE, 0x2489, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3060 Ti Lite Hash Rate](0x2489)"},
{0x10DE, 0x248A, 0xFFFF, 0xFFFF, "GA104 [CMP 70HX](0x248A)"},
+{0x10DE, 0x248C, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3070 Ti](0x248C)"},
+{0x10DE, 0x248D, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3070](0x248D)"},
+{0x10DE, 0x248E, 0xFFFF, 0xFFFF, "GA104 [GeForce RTX 3060 Ti](0x248E)"},
{0x10DE, 0x249C, 0xFFFF, 0xFFFF, "GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB](0x249C)"},
{0x10DE, 0x249D, 0xFFFF, 0xFFFF, "GA104M [GeForce RTX 3070 Mobile / Max-Q](0x249D)"},
{0x10DE, 0x249F, 0xFFFF, 0xFFFF, "GA104M(0x249F)"},
@@ -13630,6 +13697,8 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x25AC, 0xFFFF, 0xFFFF, "GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU](0x25AC)"},
{0x10DE, 0x25AD, 0xFFFF, 0xFFFF, "GA107 [GeForce RTX 2050](0x25AD)"},
{0x10DE, 0x25AF, 0xFFFF, 0xFFFF, "GA107 [GeForce RTX 3050 Engineering Sample](0x25AF)"},
+{0x10DE, 0x25B0, 0xFFFF, 0xFFFF, "GA107GL [RTX A1000](0x25B0)"},
+{0x10DE, 0x25B2, 0xFFFF, 0xFFFF, "GA107GL [RTX A400](0x25B2)"},
{0x10DE, 0x25B5, 0xFFFF, 0xFFFF, "GA107GLM [RTX A4 Mobile](0x25B5)"},
{0x10DE, 0x25B6, 0xFFFF, 0xFFFF, "GA107GL [A2 / A16](0x25B6)"},
{0x10DE, 0x25B8, 0xFFFF, 0xFFFF, "GA107GLM [RTX A2000 Mobile](0x25B8)"},
@@ -13662,6 +13731,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x2703, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4080 SUPER](0x2703)"},
{0x10DE, 0x2704, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4080](0x2704)"},
{0x10DE, 0x2705, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4070 Ti SUPER](0x2705)"},
+{0x10DE, 0x2709, 0xFFFF, 0xFFFF, "AD103 [GeForce RTX 4070](0x2709)"},
{0x10DE, 0x2717, 0xFFFF, 0xFFFF, "GN21-X11 [GeForce RTX 4090 Laptop GPU](0x2717)"},
{0x10DE, 0x2730, 0xFFFF, 0xFFFF, "AD103GLM [RTX 5000 Ada Generation Laptop GPU](0x2730)"},
{0x10DE, 0x2757, 0xFFFF, 0xFFFF, "GN21-X11(0x2757)"},
@@ -13670,6 +13740,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x2783, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4070 SUPER](0x2783)"},
{0x10DE, 0x2785, 0xFFFF, 0xFFFF, "AD104 [AC AD104 20GB](0x2785)"},
{0x10DE, 0x2786, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4070](0x2786)"},
+{0x10DE, 0x2788, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4060 Ti](0x2788)"},
{0x10DE, 0x27A0, 0xFFFF, 0xFFFF, "AD104M [GeForce RTX 4080 Max-Q / Mobile](0x27A0)"},
{0x10DE, 0x27B0, 0xFFFF, 0xFFFF, "AD104GL [RTX 4000 SFF Ada Generation](0x27B0)"},
{0x10DE, 0x27B1, 0xFFFF, 0xFFFF, "AD104GL [RTX 4500 Ada Generation](0x27B1)"},
@@ -13684,6 +13755,7 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x27FB, 0xFFFF, 0xFFFF, "AD104GLM [RTX 3500 Ada Generation Embedded GPU](0x27FB)"},
{0x10DE, 0x2803, 0xFFFF, 0xFFFF, "AD106 [GeForce RTX 4060 Ti](0x2803)"},
{0x10DE, 0x2805, 0xFFFF, 0xFFFF, "AD106 [GeForce RTX 4060 Ti 16GB](0x2805)"},
+{0x10DE, 0x2808, 0xFFFF, 0xFFFF, "AD106 [GeForce RTX 4060](0x2808)"},
{0x10DE, 0x2820, 0xFFFF, 0xFFFF, "AD106M [GeForce RTX 4070 Max-Q / Mobile](0x2820)"},
{0x10DE, 0x2838, 0xFFFF, 0xFFFF, "AD106GLM [RTX 3000 Ada Generation Laptop GPU](0x2838)"},
{0x10DE, 0x2860, 0xFFFF, 0xFFFF, "AD106M [GeForce RTX 4070 Max-Q / Mobile](0x2860)"},
@@ -13691,7 +13763,11 @@ static pci_id_t const pci_vid_10DE[] = {
{0x10DE, 0x2882, 0xFFFF, 0xFFFF, "AD107 [GeForce RTX 4060](0x2882)"},
{0x10DE, 0x28A0, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4060 Max-Q / Mobile](0x28A0)"},
{0x10DE, 0x28A1, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4050 Max-Q / Mobile](0x28A1)"},
+{0x10DE, 0x28B0, 0xFFFF, 0xFFFF, "AD107GL [RTX 2000 / 2000E Ada Generation](0x28B0)"},
{0x10DE, 0x28B8, 0xFFFF, 0xFFFF, "AD107GLM [RTX 2000 Ada Generation Laptop GPU](0x28B8)"},
+{0x10DE, 0x28B9, 0xFFFF, 0xFFFF, "AD107GLM [RTX 1000 Ada Generation Laptop GPU](0x28B9)"},
+{0x10DE, 0x28BA, 0xFFFF, 0xFFFF, "AD107GLM [RTX 500 Ada Generation Laptop GPU](0x28BA)"},
+{0x10DE, 0x28BB, 0xFFFF, 0xFFFF, "AD107GLM [RTX 500 Ada Generation Laptop GPU](0x28BB)"},
{0x10DE, 0x28E0, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4060 Max-Q / Mobile](0x28E0)"},
{0x10DE, 0x28E1, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4050 Max-Q / Mobile](0x28E1)"},
{0x10DE, 0x28F8, 0xFFFF, 0xFFFF, "AD107GLM [RTX 2000 Ada Generation Embedded GPU](0x28F8)"},
@@ -13986,6 +14062,7 @@ static pci_id_t const pci_vid_10EC[] = {
{0x10EC, 0x5762, 0xFFFF, 0xFFFF, "RTS5762 NVMe SSD Controller(0x5762)"},
{0x10EC, 0x5763, 0xFFFF, 0xFFFF, "RTS5763DL NVMe SSD Controller (DRAM-less)(0x5763)"},
{0x10EC, 0x5765, 0xFFFF, 0xFFFF, "RTS5765DL NVMe SSD Controller (DRAM-less)(0x5765)"},
+{0x10EC, 0x5770, 0xFFFF, 0xFFFF, "RTS5770DL NVMe SSD Controller (DRAM-less)(0x5770)"},
{0x10EC, 0x5772, 0xFFFF, 0xFFFF, "RTS5772DL NVMe SSD Controller (DRAM-less)(0x5772)"},
{0x10EC, 0x8029, 0xFFFF, 0xFFFF, "RTL-8029(AS)(0x8029)"},
{0x10EC, 0x8029, 0x10B8, 0x2011, "EZ-Card (SMC1208)(0x10B8-0x2011)"},
@@ -13995,6 +14072,7 @@ static pci_id_t const pci_vid_10EC[] = {
{0x10EC, 0x8029, 0x1259, 0x2400, "AT-2400(0x1259-0x2400)"},
{0x10EC, 0x8029, 0x1AF4, 0x1100, "QEMU Virtual Machine(0x1AF4-0x1100)"},
{0x10EC, 0x8125, 0xFFFF, 0xFFFF, "RTL8125 2.5GbE Controller(0x8125)"},
+{0x10EC, 0x8125, 0x4C52, 0x2022, "LRES2022PT Single-port 2.5Gb Ethernet Network Adapter(0x4C52-0x2022)"},
{0x10EC, 0x8129, 0xFFFF, 0xFFFF, "RTL-8129(0x8129)"},
{0x10EC, 0x8129, 0x10EC, 0x8129, "RT8129 Fast Ethernet Adapter(0x10EC-0x8129)"},
{0x10EC, 0x8129, 0x11EC, 0x8129, "RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)(0x11EC-0x8129)"},
@@ -14093,7 +14171,7 @@ static pci_id_t const pci_vid_10EC[] = {
{0x10EC, 0x8168, 0x1043, 0x8505, "P8 series motherboard(0x1043-0x8505)"},
{0x10EC, 0x8168, 0x1043, 0x8554, "H81M-C Motherboard(0x1043-0x8554)"},
{0x10EC, 0x8168, 0x1043, 0x859E, "AM1I-A Motherboard(0x1043-0x859E)"},
-{0x10EC, 0x8168, 0x1043, 0x8677, "PRIME B450M-A Motherboard(0x1043-0x8677)"},
+{0x10EC, 0x8168, 0x1043, 0x8677, "Onboard RTL8111H Ethernet(0x1043-0x8677)"},
{0x10EC, 0x8168, 0x105B, 0x0D7C, "D270S/D250S Motherboard(0x105B-0x0D7C)"},
{0x10EC, 0x8168, 0x10EC, 0x8168, "RTL8111/8168 PCI Express Gigabit Ethernet controller(0x10EC-0x8168)"},
{0x10EC, 0x8168, 0x144D, 0xC652, "RTL8168 on a NP300E5C series laptop(0x144D-0xC652)"},
@@ -14109,6 +14187,7 @@ static pci_id_t const pci_vid_10EC[] = {
{0x10EC, 0x8168, 0x17AA, 0x3098, "ThinkCentre E73(0x17AA-0x3098)"},
{0x10EC, 0x8168, 0x17AA, 0x3814, "Z50-75(0x17AA-0x3814)"},
{0x10EC, 0x8168, 0x17AA, 0x3823, "Lenovo V130-15IGM Laptop - Type 81HL(0x17AA-0x3823)"},
+{0x10EC, 0x8168, 0x17AA, 0x5068, "Thinkpad E480/E580(0x17AA-0x5068)"},
{0x10EC, 0x8168, 0x17AA, 0x5124, "ThinkPad E595(0x17AA-0x5124)"},
{0x10EC, 0x8168, 0x1849, 0x8168, "Motherboard (one of many)(0x1849-0x8168)"},
{0x10EC, 0x8168, 0x7470, 0x3468, "TG-3468 Gigabit PCI Express Network Adapter(0x7470-0x3468)"},
@@ -17771,6 +17850,38 @@ static pci_id_t const pci_vid_11E2[] = {
static pci_id_t const pci_vid_11E3[] = {
{0x11E3, 0xFFFF, 0xFFFF, 0xFFFF, "Quicklogic Corporation(0x11E3)"},
{0x11E3, 0x0001, 0xFFFF, 0xFFFF, "COM-ON-AIR Dosch&Amand DECT(0x0001)"},
+{0x11E3, 0x0010, 0xFFFF, 0xFFFF, "QL5032 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0010)"},
+{0x11E3, 0x0011, 0xFFFF, 0xFFFF, "QL5032 (PBGA256) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0011)"},
+{0x11E3, 0x0012, 0xFFFF, 0xFFFF, "QL5232 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0012)"},
+{0x11E3, 0x0012, 0x11E3, 0x1204, "Becker & Hickl SPC-130(0x11E3-0x1204)"},
+{0x11E3, 0x0012, 0x11E3, 0x1207, "Becker & Hickl DDG-200(0x11E3-0x1207)"},
+{0x11E3, 0x0012, 0x11E3, 0x1209, "Becker & Hickl SHM-180(0x11E3-0x1209)"},
+{0x11E3, 0x0012, 0x11E3, 0x120C, "Becker & Hickl PMM-428(0x11E3-0x120C)"},
+{0x11E3, 0x0013, 0xFFFF, 0xFFFF, "QL5232 (PBGA456) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0013)"},
+{0x11E3, 0x0014, 0xFFFF, 0xFFFF, "QL5030 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0014)"},
+{0x11E3, 0x0015, 0xFFFF, 0xFFFF, "QL5130 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0015)"},
+{0x11E3, 0x0016, 0xFFFF, 0xFFFF, "QL5130 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0016)"},
+{0x11E3, 0x0016, 0x11E3, 0x120B, "Becker & Hickl DEL-350(0x11E3-0x120B)"},
+{0x11E3, 0x0017, 0xFFFF, 0xFFFF, "QL5130 (PBGA256) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0017)"},
+{0x11E3, 0x0019, 0xFFFF, 0xFFFF, "QL5332 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0019)"},
+{0x11E3, 0x001A, 0xFFFF, 0xFFFF, "QL5332 (PBGA256) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001A)"},
+{0x11E3, 0x001B, 0xFFFF, 0xFFFF, "QL5432 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001B)"},
+{0x11E3, 0x001B, 0x11E3, 0x120D, "Becker & Hickl SPC-140(0x11E3-0x120D)"},
+{0x11E3, 0x001B, 0x11E3, 0x1211, "Becker & Hickl GVD-120(0x11E3-0x1211)"},
+{0x11E3, 0x001B, 0x11E3, 0x1212, "Becker & Hickl DDG-210(0x11E3-0x1212)"},
+{0x11E3, 0x001C, 0xFFFF, 0xFFFF, "QL5432 (PBGA456) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001C)"},
+{0x11E3, 0x001D, 0xFFFF, 0xFFFF, "QL5632 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001D)"},
+{0x11E3, 0x001E, 0xFFFF, 0xFFFF, "QL5632 (PBGA280) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001E)"},
+{0x11E3, 0x001F, 0xFFFF, 0xFFFF, "QL5632 (PBGA484) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x001F)"},
+{0x11E3, 0x0020, 0xFFFF, 0xFFFF, "QL5632 (PBGA516) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0020)"},
+{0x11E3, 0x0021, 0xFFFF, 0xFFFF, "QL5732 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0021)"},
+{0x11E3, 0x0022, 0xFFFF, 0xFFFF, "QL5732 (PBGA280) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0022)"},
+{0x11E3, 0x0023, 0xFFFF, 0xFFFF, "QL5732 (PBGA484) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0023)"},
+{0x11E3, 0x0024, 0xFFFF, 0xFFFF, "QL5732 (PBGA516) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x0024)"},
+{0x11E3, 0x002D, 0xFFFF, 0xFFFF, "QL5022 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x002D)"},
+{0x11E3, 0x002E, 0xFFFF, 0xFFFF, "QL5022 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Master/Target with Embedded Programmable Logic and Dual Port SRAM(0x002E)"},
+{0x11E3, 0x002F, 0xFFFF, 0xFFFF, "QL5020 (TQFP144) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x002F)"},
+{0x11E3, 0x0030, 0xFFFF, 0xFFFF, "QL5020 (PQFP208) [QuickPCI] 33 MHz/32-bit PCI Target with Embedded Programmable Logic and Dual Port SRAM(0x0030)"},
{0x11E3, 0x0560, 0xFFFF, 0xFFFF, "QL5064 Companion Design Demo Board(0x0560)"},
{0x11E3, 0x5030, 0xFFFF, 0xFFFF, "PC Watchdog(0x5030)"},
{0x11E3, 0x8417, 0xFFFF, 0xFFFF, "QL5064 [QuickPCI] PCI v2.2 bridge for SMT417 Dual TMS320C6416T PMC Module(0x8417)"},
@@ -18167,6 +18278,7 @@ static pci_id_t const pci_vid_1217[] = {
{0x1217, 0x8331, 0xFFFF, 0xFFFF, "O2 Flash Memory Card(0x8331)"},
{0x1217, 0x8520, 0xFFFF, 0xFFFF, "SD/MMC Card Reader Controller(0x8520)"},
{0x1217, 0x8621, 0xFFFF, 0xFFFF, "SD/MMC Card Reader Controller(0x8621)"},
+{0x1217, 0x8621, 0x17AA, 0x5068, "Thinkpad E480/E580(0x17AA-0x5068)"},
{0x1217, 0x8760, 0xFFFF, 0xFFFF, "FORESEE E2M2 NVMe SSD(0x8760)"},
}; /* pci_vid_1217[] */
@@ -18771,6 +18883,7 @@ static pci_id_t const pci_vid_126F[] = {
{0x126F, 0x0820, 0xFFFF, 0xFFFF, "SM820 Lynx3D(0x0820)"},
{0x126F, 0x0910, 0xFFFF, 0xFFFF, "SM910(0x0910)"},
{0x126F, 0x2260, 0xFFFF, 0xFFFF, "SM2260 NVMe SSD Controller(0x2260)"},
+{0x126F, 0x2261, 0xFFFF, 0xFFFF, "SM2261XT x2 NVMe SSD Controller (DRAM-less)(0x2261)"},
{0x126F, 0x2262, 0xFFFF, 0xFFFF, "SM2262/SM2262EN SSD Controller(0x2262)"},
{0x126F, 0x2263, 0xFFFF, 0xFFFF, "SM2263EN/SM2263XT (DRAM-less) NVMe SSD Controllers(0x2263)"},
{0x126F, 0x2269, 0xFFFF, 0xFFFF, "SM2269XT (DRAM-less) NVMe SSD Controller(0x2269)"},
@@ -19566,6 +19679,7 @@ static pci_id_t const pci_vid_12D8[] = {
{0x12D8, 0x8152, 0xFFFF, 0xFFFF, "PI7C8152A/PI7C8152B/PI7C8152BI PCI-to-PCI Bridge(0x8152)"},
{0x12D8, 0x8154, 0xFFFF, 0xFFFF, "PI7C8154A/PI7C8154B/PI7C8154BI PCI-to-PCI Bridge(0x8154)"},
{0x12D8, 0x8619, 0xFFFF, 0xFFFF, "PI7C9X2G1616PR PCIe2 16-Port/16-Lane Packet Switch(0x8619)"},
+{0x12D8, 0xB404, 0xFFFF, 0xFFFF, "PI7C9X2G404 EV/SV PCIe2 4-Port/4-Lane Packet Switch(0xB404)"},
{0x12D8, 0xE110, 0xFFFF, 0xFFFF, "PI7C9X110 PCIe- to-PCI bridge(0xE110)"},
{0x12D8, 0xE110, 0x1775, 0x11CC, "CC11/CL11 CompactPCI Bridge(0x1775-0x11CC)"},
{0x12D8, 0xE111, 0xFFFF, 0xFFFF, "PI7C9X111SL PCIe-to-PCI Reversible Bridge(0xE111)"},
@@ -20211,8 +20325,25 @@ static pci_id_t const pci_vid_1344[] = {
{0x1344, 0x51B2, 0x1344, 0x5000, "6.4 TB U.2(0x1344-0x5000)"},
{0x1344, 0x51B2, 0x1344, 0x6000, "12.8TB U.2(0x1344-0x6000)"},
{0x1344, 0x51B7, 0xFFFF, 0xFFFF, "7500 PRO NVMe SSD(0x51B7)"},
+{0x1344, 0x51B7, 0x1028, 0x22E7, "DC NVMe 7500 U.2 SED RI 15.36TB(0x1028-0x22E7)"},
+{0x1344, 0x51B7, 0x1028, 0x22E8, "DC NVMe 7500 U.2 SED RI 7.68TB(0x1028-0x22E8)"},
+{0x1344, 0x51B7, 0x1028, 0x22E9, "DC NVMe 7500 U.2 SED RI 3.84TB(0x1028-0x22E9)"},
+{0x1344, 0x51B7, 0x1028, 0x22EA, "DC NVMe 7500 U.2 SED RI 1.92TB(0x1028-0x22EA)"},
+{0x1344, 0x51B7, 0x1028, 0x22EB, "DC NVMe 7500 U.2 SED RI 960GB(0x1028-0x22EB)"},
+{0x1344, 0x51B7, 0x1028, 0x22EC, "DC NVMe 7500 U.2 ISE RI 15.36TB(0x1028-0x22EC)"},
+{0x1344, 0x51B7, 0x1028, 0x22ED, "DC NVMe 7500 U.2 ISE RI 7.68TB(0x1028-0x22ED)"},
+{0x1344, 0x51B7, 0x1028, 0x22EE, "DC NVMe 7500 U.2 ISE RI 3.84TB(0x1028-0x22EE)"},
+{0x1344, 0x51B7, 0x1028, 0x22EF, "DC NVMe 7500 U.2 ISE RI 1.92TB(0x1028-0x22EF)"},
+{0x1344, 0x51B7, 0x1028, 0x22F0, "DC NVMe 7500 U.2 ISE RI 960GB(0x1028-0x22F0)"},
{0x1344, 0x51B8, 0xFFFF, 0xFFFF, "7500 MAX NVMe SSD(0x51B8)"},
+{0x1344, 0x51B8, 0x1028, 0x22F1, "DC NVMe 7500 U.2 ISE MU 12.8TB(0x1028-0x22F1)"},
+{0x1344, 0x51B8, 0x1028, 0x22F2, "DC NVMe 7500 U.2 ISE MU 6.4TB(0x1028-0x22F2)"},
+{0x1344, 0x51B8, 0x1028, 0x22F3, "DC NVMe 7500 U.2 ISE MU 3.2TB(0x1028-0x22F3)"},
+{0x1344, 0x51B8, 0x1028, 0x22F4, "DC NVMe 7500 U.2 ISE MU 1.6TB(0x1028-0x22F4)"},
+{0x1344, 0x51B8, 0x1028, 0x22F5, "DC NVMe 7500 U.2 ISE MU 800GB(0x1028-0x22F5)"},
{0x1344, 0x51B9, 0xFFFF, 0xFFFF, "6500 ION NVMe SSD(0x51B9)"},
+{0x1344, 0x51B9, 0x1028, 0x22E6, "Ent NVMe 6500 RI 30.72TB(0x1028-0x22E6)"},
+{0x1344, 0x51B9, 0x1028, 0x22F6, "Ent NVMe 6500 RI FIPS 30.72TB(0x1028-0x22F6)"},
{0x1344, 0x51C0, 0xFFFF, 0xFFFF, "7400 PRO NVMe SSD(0x51C0)"},
{0x1344, 0x51C0, 0x1028, 0x2162, "EC NVMe OPAL 7400 RI M.2 480GB(0x1028-0x2162)"},
{0x1344, 0x51C0, 0x1028, 0x2163, "EC NVMe OPAL 7400 RI M.2 960GB(0x1028-0x2163)"},
@@ -20250,7 +20381,38 @@ static pci_id_t const pci_vid_1344[] = {
{0x1344, 0x51C1, 0x1344, 0x4000, "U.3 3200GB(0x1344-0x4000)"},
{0x1344, 0x51C1, 0x1344, 0x5000, "U.3 6400GB(0x1344-0x5000)"},
{0x1344, 0x51C3, 0xFFFF, 0xFFFF, "7450 PRO NVMe SSD(0x51C3)"},
+{0x1344, 0x51C3, 0x1028, 0x226B, "EC NVMe FIPS 7450 RI M.2 110 960GB(0x1028-0x226B)"},
+{0x1344, 0x51C3, 0x1028, 0x226C, "EC NVMe ISE 7450 RI M.2 80 480GB(0x1028-0x226C)"},
+{0x1344, 0x51C3, 0x1028, 0x226D, "EC NVMe ISE 7450 RI M.2 80 960GB(0x1028-0x226D)"},
+{0x1344, 0x51C3, 0x1028, 0x226E, "EC NVMe SED 7450 RI M.2 80 480GB(0x1028-0x226E)"},
+{0x1344, 0x51C3, 0x1028, 0x226F, "EC NVMe SED 7450 RI M.2 80 960GB(0x1028-0x226F)"},
+{0x1344, 0x51C3, 0x1028, 0x2270, "EC NVMe FIPS 7450 RI M.2 80 480GB(0x1028-0x2270)"},
+{0x1344, 0x51C3, 0x1028, 0x2271, "EC NVMe FIPS 7450 RI M.2 80 960GB(0x1028-0x2271)"},
+{0x1344, 0x51C3, 0x1028, 0x2273, "EC NVMe ISE 7450 RI M.2 110 960GB(0x1028-0x2273)"},
+{0x1344, 0x51C3, 0x1028, 0x2274, "EC NVMe ISE 7450 RI M.2 110 1920GB(0x1028-0x2274)"},
+{0x1344, 0x51C3, 0x1028, 0x2275, "EC NVMe ISE 7450 RI M.2 110 3840GB(0x1028-0x2275)"},
+{0x1344, 0x51C3, 0x1028, 0x2278, "DC NVMe ISE 7450 RI U.2 960GB(0x1028-0x2278)"},
+{0x1344, 0x51C3, 0x1028, 0x2279, "DC NVMe ISE 7450 RI U.2 1.92TB(0x1028-0x2279)"},
+{0x1344, 0x51C3, 0x1028, 0x227A, "DC NVMe ISE 7450 RI U.2 3.84TB(0x1028-0x227A)"},
+{0x1344, 0x51C3, 0x1028, 0x227B, "DC NVMe ISE 7450 RI U.2 7.68TB(0x1028-0x227B)"},
+{0x1344, 0x51C3, 0x1028, 0x227C, "DC NVMe ISE 7450 RI U.2 15.36TB(0x1028-0x227C)"},
+{0x1344, 0x51C3, 0x1028, 0x227D, "DC NVMe SED 7450 RI U.2 960GB(0x1028-0x227D)"},
+{0x1344, 0x51C3, 0x1028, 0x227E, "DC NVMe SED 7450 RI U.2 1.92TB(0x1028-0x227E)"},
+{0x1344, 0x51C3, 0x1028, 0x227F, "DC NVMe SED 7450 RI U.2 3.84TB(0x1028-0x227F)"},
+{0x1344, 0x51C3, 0x1028, 0x2280, "DC NVMe SED 7450 RI U.2 7.68TB(0x1028-0x2280)"},
+{0x1344, 0x51C3, 0x1028, 0x2281, "DC NVMe SED 7450 RI U.2 15.36TB(0x1028-0x2281)"},
{0x1344, 0x51C4, 0xFFFF, 0xFFFF, "7450 MAX NVMe SSD(0x51C4)"},
+{0x1344, 0x51C4, 0x1028, 0x2272, "EC NVMe ISE 7450 MU M.2 80 800GB(0x1028-0x2272)"},
+{0x1344, 0x51C4, 0x1028, 0x228B, "DC NVMe SED 7450 MU U.2 800GB(0x1028-0x228B)"},
+{0x1344, 0x51C4, 0x1028, 0x228C, "DC NVMe ISE 7450 MU U.2 800GB(0x1028-0x228C)"},
+{0x1344, 0x51C4, 0x1028, 0x228D, "DC NVMe SED 7450 MU U.2 1.6TB(0x1028-0x228D)"},
+{0x1344, 0x51C4, 0x1028, 0x228E, "DC NVMe ISE 7450 MU U.2 1.6TB(0x1028-0x228E)"},
+{0x1344, 0x51C4, 0x1028, 0x228F, "DC NVMe SED 7450 MU U.2 3.2TB(0x1028-0x228F)"},
+{0x1344, 0x51C4, 0x1028, 0x2290, "DC NVMe ISE 7450 MU U.2 3.2TB(0x1028-0x2290)"},
+{0x1344, 0x51C4, 0x1028, 0x2291, "DC NVMe SED 7450 MU U.2 6.4TB(0x1028-0x2291)"},
+{0x1344, 0x51C4, 0x1028, 0x2292, "DC NVMe ISE 7450 MU U.2 6.4TB(0x1028-0x2292)"},
+{0x1344, 0x51C4, 0x1028, 0x2293, "DC NVMe SED 7450 MU U.2 12.8TB(0x1028-0x2293)"},
+{0x1344, 0x51C4, 0x1028, 0x2294, "DC NVMe ISE 7450 MU U.2 12.8TB(0x1028-0x2294)"},
{0x1344, 0x51C4, 0x1344, 0x3000, "U.3 1600GB [MTFDKCB1T6TFS/MTFDKCC1T6TFS](0x1344-0x3000)"},
{0x1344, 0x5404, 0xFFFF, 0xFFFF, "2210 NVMe SSD [Cobain](0x5404)"},
{0x1344, 0x5405, 0xFFFF, 0xFFFF, "2300 NVMe SSD [Santana](0x5405)"},
@@ -22488,14 +22650,14 @@ static pci_id_t const pci_vid_1425[] = {
{0x1425, 0x6002, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Ethernet Controller(0x6002)"},
{0x1425, 0x6003, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Ethernet Controller(0x6003)"},
{0x1425, 0x6004, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Ethernet Controller(0x6004)"},
-{0x1425, 0x6005, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Ethernet Controller(0x6005)"},
-{0x1425, 0x6006, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Ethernet Controller(0x6006)"},
+{0x1425, 0x6005, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Ethernet Controller(0x6005)"},
+{0x1425, 0x6006, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Ethernet Controller(0x6006)"},
{0x1425, 0x6007, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Ethernet Controller(0x6007)"},
{0x1425, 0x6008, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Ethernet Controller(0x6008)"},
{0x1425, 0x6009, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Ethernet Controller(0x6009)"},
{0x1425, 0x600D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Ethernet Controller(0x600D)"},
{0x1425, 0x6011, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Ethernet Controller(0x6011)"},
-{0x1425, 0x6014, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Ethernet Controller(0x6014)"},
+{0x1425, 0x6014, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Ethernet Controller(0x6014)"},
{0x1425, 0x6015, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Ethernet Controller(0x6015)"},
{0x1425, 0x6080, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Ethernet Controller(0x6080)"},
{0x1425, 0x6081, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Ethernet Controller(0x6081)"},
@@ -22514,14 +22676,14 @@ static pci_id_t const pci_vid_1425[] = {
{0x1425, 0x6402, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Ethernet Controller(0x6402)"},
{0x1425, 0x6403, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Ethernet Controller(0x6403)"},
{0x1425, 0x6404, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Ethernet Controller(0x6404)"},
-{0x1425, 0x6405, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Ethernet Controller(0x6405)"},
-{0x1425, 0x6406, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Ethernet Controller(0x6406)"},
+{0x1425, 0x6405, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Ethernet Controller(0x6405)"},
+{0x1425, 0x6406, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Ethernet Controller(0x6406)"},
{0x1425, 0x6407, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Ethernet Controller(0x6407)"},
{0x1425, 0x6408, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Ethernet Controller(0x6408)"},
{0x1425, 0x6409, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Ethernet Controller(0x6409)"},
{0x1425, 0x640D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Ethernet Controller(0x640D)"},
{0x1425, 0x6411, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Ethernet Controller(0x6411)"},
-{0x1425, 0x6414, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Ethernet Controller(0x6414)"},
+{0x1425, 0x6414, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Ethernet Controller(0x6414)"},
{0x1425, 0x6415, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Ethernet Controller(0x6415)"},
{0x1425, 0x6480, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Ethernet Controller(0x6480)"},
{0x1425, 0x6481, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Ethernet Controller(0x6481)"},
@@ -22540,14 +22702,14 @@ static pci_id_t const pci_vid_1425[] = {
{0x1425, 0x6502, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Storage Controller(0x6502)"},
{0x1425, 0x6503, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Storage Controller(0x6503)"},
{0x1425, 0x6504, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Storage Controller(0x6504)"},
-{0x1425, 0x6505, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Storage Controller(0x6505)"},
-{0x1425, 0x6506, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Storage Controller(0x6506)"},
+{0x1425, 0x6505, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Storage Controller(0x6505)"},
+{0x1425, 0x6506, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Storage Controller(0x6506)"},
{0x1425, 0x6507, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Storage Controller(0x6507)"},
{0x1425, 0x6508, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Storage Controller(0x6508)"},
{0x1425, 0x6509, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Storage Controller(0x6509)"},
{0x1425, 0x650D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Storage Controller(0x650D)"},
{0x1425, 0x6511, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Storage Controller(0x6511)"},
-{0x1425, 0x6514, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Storage Controller(0x6514)"},
+{0x1425, 0x6514, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Storage Controller(0x6514)"},
{0x1425, 0x6515, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Storage Controller(0x6515)"},
{0x1425, 0x6580, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Storage Controller(0x6580)"},
{0x1425, 0x6581, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Storage Controller(0x6581)"},
@@ -22565,14 +22727,14 @@ static pci_id_t const pci_vid_1425[] = {
{0x1425, 0x6602, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Storage Controller(0x6602)"},
{0x1425, 0x6603, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Storage Controller(0x6603)"},
{0x1425, 0x6604, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Storage Controller(0x6604)"},
-{0x1425, 0x6605, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Storage Controller(0x6605)"},
-{0x1425, 0x6606, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Storage Controller(0x6606)"},
+{0x1425, 0x6605, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Storage Controller(0x6605)"},
+{0x1425, 0x6606, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Storage Controller(0x6606)"},
{0x1425, 0x6607, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Storage Controller(0x6607)"},
{0x1425, 0x6608, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Storage Controller(0x6608)"},
{0x1425, 0x6609, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Storage Controller(0x6609)"},
{0x1425, 0x660D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Storage Controller(0x660D)"},
{0x1425, 0x6611, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Storage Controller(0x6611)"},
-{0x1425, 0x6614, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Storage Controller(0x6614)"},
+{0x1425, 0x6614, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Storage Controller(0x6614)"},
{0x1425, 0x6615, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Storage Controller(0x6615)"},
{0x1425, 0x6680, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Storage Controller(0x6680)"},
{0x1425, 0x6681, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Storage Controller(0x6681)"},
@@ -22590,14 +22752,14 @@ static pci_id_t const pci_vid_1425[] = {
{0x1425, 0x6802, 0xFFFF, 0xFFFF, "T6225-SO-CR Unified Wire Ethernet Controller [VF](0x6802)"},
{0x1425, 0x6803, 0xFFFF, 0xFFFF, "T6425-CR Unified Wire Ethernet Controller [VF](0x6803)"},
{0x1425, 0x6804, 0xFFFF, 0xFFFF, "T6425-SO-CR Unified Wire Ethernet Controller [VF](0x6804)"},
-{0x1425, 0x6805, 0xFFFF, 0xFFFF, "T6225-OCP-SO Unified Wire Ethernet Controller [VF](0x6805)"},
-{0x1425, 0x6806, 0xFFFF, 0xFFFF, "T62100-OCP-SO Unified Wire Ethernet Controller [VF](0x6806)"},
+{0x1425, 0x6805, 0xFFFF, 0xFFFF, "T6225-SO-OCP3 Unified Wire Ethernet Controller [VF](0x6805)"},
+{0x1425, 0x6806, 0xFFFF, 0xFFFF, "T6225-OCP3 Unified Wire Ethernet Controller [VF](0x6806)"},
{0x1425, 0x6807, 0xFFFF, 0xFFFF, "T62100-LP-CR Unified Wire Ethernet Controller [VF](0x6807)"},
{0x1425, 0x6808, 0xFFFF, 0xFFFF, "T62100-SO-CR Unified Wire Ethernet Controller [VF](0x6808)"},
{0x1425, 0x6809, 0xFFFF, 0xFFFF, "T6210-BT Unified Wire Ethernet Controller [VF](0x6809)"},
{0x1425, 0x680D, 0xFFFF, 0xFFFF, "T62100-CR Unified Wire Ethernet Controller [VF](0x680D)"},
{0x1425, 0x6811, 0xFFFF, 0xFFFF, "T6225-LL-CR Unified Wire Ethernet Controller [VF](0x6811)"},
-{0x1425, 0x6814, 0xFFFF, 0xFFFF, "T61100-OCP-SO Unified Wire Ethernet Controller [VF](0x6814)"},
+{0x1425, 0x6814, 0xFFFF, 0xFFFF, "T62100-SO-OCP3 Unified Wire Ethernet Controller [VF](0x6814)"},
{0x1425, 0x6815, 0xFFFF, 0xFFFF, "T6201-BT Unified Wire Ethernet Controller [VF](0x6815)"},
{0x1425, 0x6880, 0xFFFF, 0xFFFF, "T6225-6080 Unified Wire Ethernet Controller [VF](0x6880)"},
{0x1425, 0x6881, 0xFFFF, 0xFFFF, "T62100-6081 Unified Wire Ethernet Controller [VF](0x6881)"},
@@ -22955,6 +23117,7 @@ static pci_id_t const pci_vid_144D[] = {
{0x144D, 0xA826, 0x1028, 0x225D, "NVMe PM1745 MU U.2 6.4TB(0x1028-0x225D)"},
{0x144D, 0xA826, 0x1028, 0x225E, "NVMe FIPS PM1745 MU U.2 12.8TB(0x1028-0x225E)"},
{0x144D, 0xA826, 0x1028, 0x225F, "NVMe PM1745 MU U.2 12.8TB(0x1028-0x225F)"},
+{0x144D, 0xA900, 0xFFFF, 0xFFFF, "NVMe SSD Controller PM9DXa(0xA900)"},
{0x144D, 0xECEC, 0xFFFF, 0xFFFF, "Exynos 8895 PCIe Root Complex(0xECEC)"},
}; /* pci_vid_144D[] */
@@ -23970,6 +24133,7 @@ static pci_id_t const pci_vid_14E4[] = {
{0x14E4, 0x168E, 0x193D, 0x1003, "530F-B(0x193D-0x1003)"},
{0x14E4, 0x168E, 0x193D, 0x1006, "530F-L(0x193D-0x1006)"},
{0x14E4, 0x168E, 0x193D, 0x100F, "NIC-ETH522i-Mb-2x10G(0x193D-0x100F)"},
+{0x14E4, 0x168E, 0x4C52, 0x9812, "LREC9812AF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x9812)"},
{0x14E4, 0x1690, 0xFFFF, 0xFFFF, "NetXtreme BCM57760 Gigabit Ethernet PCIe(0x1690)"},
{0x14E4, 0x1691, 0xFFFF, 0xFFFF, "NetLink BCM57788 Gigabit Ethernet PCIe(0x1691)"},
{0x14E4, 0x1691, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
@@ -23997,6 +24161,7 @@ static pci_id_t const pci_vid_14E4[] = {
{0x14E4, 0x16A1, 0xFFFF, 0xFFFF, "BCM57840 NetXtreme II 10 Gigabit Ethernet(0x16A1)"},
{0x14E4, 0x16A1, 0x1043, 0x866E, "PEB-10G/57840-2T 10GBase-T Network Adapter(0x1043-0x866E)"},
{0x14E4, 0x16A1, 0x193D, 0x100B, "NIC-ETH521i-Mb-4x10G(0x193D-0x100B)"},
+{0x14E4, 0x16A1, 0x4C52, 0x9814, "LREC9814AF Quad-port 10Gb Ethernet Server Adapter(0x4C52-0x9814)"},
{0x14E4, 0x16A2, 0xFFFF, 0xFFFF, "BCM57840 NetXtreme II 10/20-Gigabit Ethernet(0x16A2)"},
{0x14E4, 0x16A2, 0x103C, 0x1916, "FlexFabric 20Gb 2-port 630FLB Adapter(0x103C-0x1916)"},
{0x14E4, 0x16A2, 0x103C, 0x1917, "FlexFabric 20Gb 2-port 630M Adapter(0x103C-0x1917)"},
@@ -24209,7 +24374,7 @@ static pci_id_t const pci_vid_14E4[] = {
{0x14E4, 0x1751, 0x14E4, 0x5425, "NetXtreme-E Quad-port 25G SFP28 Ethernet OCP 3.0 Adapter (BCM957504-N425G)(0x14E4-0x5425)"},
{0x14E4, 0x1751, 0x14E4, 0xD142, "NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE(0x14E4-0xD142)"},
{0x14E4, 0x1752, 0xFFFF, 0xFFFF, "BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet(0x1752)"},
-{0x14E4, 0x1760, 0xFFFF, 0xFFFF, "BCM57608 NetXtreme-E 10Gb/25Gb/50Gb/100Gb/200Gb/400Gb Ethernet(0x1760)"},
+{0x14E4, 0x1760, 0xFFFF, 0xFFFF, "BCM57608 10Gb/25Gb/50Gb/100Gb/200Gb/400Gb Ethernet(0x1760)"},
{0x14E4, 0x1760, 0x14E4, 0xD125, "BCM57608 2x200G PCIe Ethernet NIC(0x14E4-0xD125)"},
{0x14E4, 0x1800, 0xFFFF, 0xFFFF, "BCM57502 NetXtreme-E Ethernet Partition(0x1800)"},
{0x14E4, 0x1801, 0xFFFF, 0xFFFF, "BCM57504 NetXtreme-E Ethernet Partition(0x1801)"},
@@ -25306,6 +25471,7 @@ static pci_id_t const pci_vid_1542[] = {
{0x1542, 0x9290, 0xFFFF, 0xFFFF, "FPGA Card(0x9290)"},
{0x1542, 0x9300, 0xFFFF, 0xFFFF, "Universal Exhaust Gas Oxygen Sensor Simulator(0x9300)"},
{0x1542, 0x9310, 0xFFFF, 0xFFFF, "Digital Programmable Resistor(0x9310)"},
+{0x1542, 0x9320, 0xFFFF, 0xFFFF, "Arria 10 FPGA Card(0x9320)"},
{0x1542, 0x9350, 0xFFFF, 0xFFFF, "Analog Input Card(0x9350)"},
}; /* pci_vid_1542[] */
@@ -25845,6 +26011,10 @@ static pci_id_t const pci_vid_15B3[] = {
{0x15B3, 0x021F, 0xFFFF, 0xFFFF, "CX8 Family [ConnectX-8 Secure Flash Recovery](0x021F)"},
{0x15B3, 0x0220, 0xFFFF, 0xFFFF, "BF4 Family Flash Recovery [BlueField-4 SoC Flash Recovery](0x0220)"},
{0x15B3, 0x0221, 0xFFFF, 0xFFFF, "BF4 Family Secure Flash Recovery [BlueField-4 Secure Flash Recovery](0x0221)"},
+{0x15B3, 0x0222, 0xFFFF, 0xFFFF, "CX8 PCIe Switch Family [ConnectX-8 PCIe Switch Flash Recovery](0x0222)"},
+{0x15B3, 0x0223, 0xFFFF, 0xFFFF, "CX8 PCIe Switch Family [ConnectX-8 PCIe Switch Secure Flash Recovery-RMA](0x0223)"},
+{0x15B3, 0x0224, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9 Flash Recovery](0x0224)"},
+{0x15B3, 0x0225, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9 Secure Flash Recovery-RMA](0x0225)"},
{0x15B3, 0x024E, 0xFFFF, 0xFFFF, "MT53100 [Spectrum-2, Flash recovery mode](0x024E)"},
{0x15B3, 0x024F, 0xFFFF, 0xFFFF, "MT53100 [Spectrum-2, Secure Flash recovery mode](0x024F)"},
{0x15B3, 0x0250, 0xFFFF, 0xFFFF, "Spectrum-3, Flash recovery mode(0x0250)"},
@@ -25876,6 +26046,8 @@ static pci_id_t const pci_vid_15B3[] = {
{0x15B3, 0x0285, 0xFFFF, 0xFFFF, "Sagitta RMA(0x0285)"},
{0x15B3, 0x0286, 0xFFFF, 0xFFFF, "LibraE Flash Recovery(0x0286)"},
{0x15B3, 0x0287, 0xFFFF, 0xFFFF, "LibraE RMA(0x0287)"},
+{0x15B3, 0x0288, 0xFFFF, 0xFFFF, "Arcus2(0x0288)"},
+{0x15B3, 0x0289, 0xFFFF, 0xFFFF, "Arcus2 RMA(0x0289)"},
{0x15B3, 0x1002, 0xFFFF, 0xFFFF, "MT25400 Family [ConnectX-2 Virtual Function](0x1002)"},
{0x15B3, 0x1003, 0xFFFF, 0xFFFF, "MT27500 Family [ConnectX-3](0x1003)"},
{0x15B3, 0x1003, 0x1014, 0x04B5, "PCIe3 40GbE RoCE Converged Host Bus Adapter for Power(0x1014-0x04B5)"},
@@ -25973,6 +26145,8 @@ static pci_id_t const pci_vid_15B3[] = {
{0x15B3, 0x1020, 0xFFFF, 0xFFFF, "MT28860(0x1020)"},
{0x15B3, 0x1021, 0xFFFF, 0xFFFF, "MT2910 Family [ConnectX-7](0x1021)"},
{0x15B3, 0x1023, 0xFFFF, 0xFFFF, "CX8 Family [ConnectX-8](0x1023)"},
+{0x15B3, 0x1024, 0xFFFF, 0xFFFF, "CX8 PCIe Switch Family [ConnectX-8 PCIe Switch](0x1024)"},
+{0x15B3, 0x1025, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9](0x1025)"},
{0x15B3, 0x1974, 0xFFFF, 0xFFFF, "MT28800 Family [ConnectX-5 PCIe Bridge](0x1974)"},
{0x15B3, 0x1975, 0xFFFF, 0xFFFF, "MT416842 Family [BlueField SoC PCIe Bridge](0x1975)"},
{0x15B3, 0x1976, 0xFFFF, 0xFFFF, "MT28908 Family [ConnectX-6 PCIe Bridge](0x1976)"},
@@ -25982,11 +26156,14 @@ static pci_id_t const pci_vid_15B3[] = {
{0x15B3, 0x197A, 0xFFFF, 0xFFFF, "MT43162 Family [BlueField-3 Lx SoC PCIe Bridge](0x197A)"},
{0x15B3, 0x197B, 0xFFFF, 0xFFFF, "MT43244 Family [BlueField-3 SoC PCIe Bridge](0x197B)"},
{0x15B3, 0x197C, 0xFFFF, 0xFFFF, "ConnectX/BlueField Family mlx5Gen PCIe Bridge [PCIe Bridge](0x197C)"},
+{0x15B3, 0x197D, 0xFFFF, 0xFFFF, "CX8 Family [ConnectX-8 PCIe Bridge](0x197D)"},
+{0x15B3, 0x197E, 0xFFFF, 0xFFFF, "CX9 Family [ConnectX-9 PCIe Bridge](0x197E)"},
{0x15B3, 0x2020, 0xFFFF, 0xFFFF, "MT2892 Family [ConnectX-6 Dx Emulated PCIe Bridge](0x2020)"},
{0x15B3, 0x2021, 0xFFFF, 0xFFFF, "MT42822 Family [BlueField-2 SoC Emulated PCIe Bridge](0x2021)"},
{0x15B3, 0x2023, 0xFFFF, 0xFFFF, "MT2910 Family [ConnectX-7 Emulated PCIe Bridge](0x2023)"},
{0x15B3, 0x2024, 0xFFFF, 0xFFFF, "MT43244 Family [BlueField-3 SoC Emulated PCIe Bridge](0x2024)"},
{0x15B3, 0x2025, 0xFFFF, 0xFFFF, "ConnectX/BlueField Family mlx5Gen Emulated PCIe Bridge [Emulated PCIe Bridge](0x2025)"},
+{0x15B3, 0x2100, 0xFFFF, 0xFFFF, "CX8 Family [CX8 Data Direct Interface](0x2100)"},
{0x15B3, 0x4117, 0xFFFF, 0xFFFF, "MT27712A0-FDCF-AE(0x4117)"},
{0x15B3, 0x4117, 0x1BD4, 0x0039, "SN10XMP2P25(0x1BD4-0x0039)"},
{0x15B3, 0x4117, 0x1BD4, 0x003A, "25G SFP28 SP EO251FM9 Adapter(0x1BD4-0x003A)"},
@@ -26051,6 +26228,7 @@ static pci_id_t const pci_vid_15B3[] = {
{0x15B3, 0xA2DF, 0xFFFF, 0xFFFF, "BF4 Family integrated network controller [BlueField-4 integrated network controller](0xA2DF)"},
{0x15B3, 0xB200, 0xFFFF, 0xFFFF, "ArcusE(0xB200)"},
{0x15B3, 0xB201, 0xFFFF, 0xFFFF, "LibraE(0xB201)"},
+{0x15B3, 0xB202, 0xFFFF, 0xFFFF, "Arcus2(0xB202)"},
{0x15B3, 0xC2D1, 0xFFFF, 0xFFFF, "BlueField DPU Family Auxiliary Communication Channel [BlueField Family](0xC2D1)"},
{0x15B3, 0xC2D2, 0xFFFF, 0xFFFF, "MT416842 BlueField SoC management interfac(0xC2D2)"},
{0x15B3, 0xC2D3, 0xFFFF, 0xFFFF, "MT42822 BlueField-2 SoC Management Interface(0xC2D3)"},
@@ -26127,12 +26305,14 @@ static pci_id_t const pci_vid_15B7[] = {
{0x15B7, 0x5019, 0xFFFF, 0xFFFF, "WD Green SN350 240GB (DRAM-less) / SN560E NVMe SSD(0x5019)"},
{0x15B7, 0x501A, 0xFFFF, 0xFFFF, "SanDisk Ultra 3D / WD Blue SN570 NVMe SSD (DRAM-less)(0x501A)"},
{0x15B7, 0x501D, 0xFFFF, 0xFFFF, "WD Blue SN550 NVMe SSD 2TB (DRAM-less)(0x501D)"},
-{0x15B7, 0x501E, 0xFFFF, 0xFFFF, "PC SN735 NVMe SSD (DRAM-less)(0x501E)"},
+{0x15B7, 0x501E, 0xFFFF, 0xFFFF, "PC SN735 / WD_BLACK SN750 SE NVMe SSD (DRAM-less)(0x501E)"},
{0x15B7, 0x501F, 0xFFFF, 0xFFFF, "WD PC SN735 NVMe SSD 512GB (DRAM-less)(0x501F)"},
{0x15B7, 0x5025, 0xFFFF, 0xFFFF, "WD Blue SN570 NVMe SSD 2TB(0x5025)"},
{0x15B7, 0x5026, 0xFFFF, 0xFFFF, "WD PC SN735 NVMe SSD 1TB (DRAM-less)(0x5026)"},
{0x15B7, 0x5028, 0xFFFF, 0xFFFF, "WD CH SN560 NVMe SSD(0x5028)"},
{0x15B7, 0x5030, 0xFFFF, 0xFFFF, "WD Black SN850X NVMe SSD(0x5030)"},
+{0x15B7, 0x5034, 0xFFFF, 0xFFFF, "WD PC SN5000S M.2 2230 NVMe SSD (DRAM-less)(0x5034)"},
+{0x15B7, 0x5036, 0xFFFF, 0xFFFF, "WD PC SN5000S M.2 2280 NVMe SSD (DRAM-less)(0x5036)"},
{0x15B7, 0x5041, 0xFFFF, 0xFFFF, "WD Blue SN580 NVMe SSD (DRAM-less)(0x5041)"},
{0x15B7, 0x5042, 0xFFFF, 0xFFFF, "WD Black SN770M NVMe SSD (DRAM-less)(0x5042)"},
}; /* pci_vid_15B7[] */
@@ -28615,7 +28795,7 @@ static pci_id_t const pci_vid_1923[] = {
}; /* pci_vid_1923[] */
static pci_id_t const pci_vid_1924[] = {
-{0x1924, 0xFFFF, 0xFFFF, 0xFFFF, "Solarflare Communications(0x1924)"},
+{0x1924, 0xFFFF, 0xFFFF, 0xFFFF, "AMD Solarflare(0x1924)"},
{0x1924, 0x0703, 0xFFFF, 0xFFFF, "SFC4000 rev A net [Solarstorm](0x0703)"},
{0x1924, 0x0703, 0x10B8, 0x0102, "SMC10GPCIe-10BT (A2) [TigerCard](0x10B8-0x0102)"},
{0x1924, 0x0703, 0x10B8, 0x0103, "SMC10GPCIe-10BT (A3) [TigerCard](0x10B8-0x0103)"},
@@ -28990,8 +29170,10 @@ static pci_id_t const pci_vid_196E[] = {
static pci_id_t const pci_vid_1971[] = {
{0x1971, 0xFFFF, 0xFFFF, 0xFFFF, "AGEIA Technologies, Inc.(0x1971)"},
-{0x1971, 0x1011, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX](0x1011)"},
+{0x1971, 0x0000, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX] 100 Series PCI Express Card(0x0000)"},
+{0x1971, 0x1011, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX] 100 Series PCI Card(0x1011)"},
{0x1971, 0x1011, 0x1043, 0x0001, "PhysX P1(0x1043-0x0001)"},
+{0x1971, 0x1021, 0xFFFF, 0xFFFF, "Physics Processing Unit [PhysX] 200 Series PCI Express Card(0x1021)"},
}; /* pci_vid_1971[] */
static pci_id_t const pci_vid_1974[] = {
@@ -29929,6 +30111,7 @@ static pci_id_t const pci_vid_1B4B[] = {
{0x1B4B, 0x2241, 0x1B96, 0x4000, "WD_BLACK AN1500 NVMe SSD(0x1B96-0x4000)"},
{0x1B4B, 0x2241, 0x1D49, 0x0306, "ThinkSystem M.2 NVMe 2-Bay RAID Enablement Kit(0x1D49-0x0306)"},
{0x1B4B, 0x2241, 0x1D49, 0x0307, "ThinkSystem 7mm NVMe 2-Bay Rear RAID Enablement Kit(0x1D49-0x0307)"},
+{0x1B4B, 0x2B42, 0xFFFF, 0xFFFF, "88W8997 2.4/5 GHz Dual-Band 2x2 Wi-Fi® 5 (802.11ac) + Bluetooth® 5.3 Solution(0x2B42)"},
{0x1B4B, 0x2B43, 0xFFFF, 0xFFFF, "NXP 88W9098 Wi-Fi 6 (ax) MAC #1(0x2B43)"},
{0x1B4B, 0x2B44, 0xFFFF, 0xFFFF, "NXP 88W9098 Wi-Fi 6 (ax) MAC #2(0x2B44)"},
{0x1B4B, 0x2B45, 0xFFFF, 0xFFFF, "NXP 88W9098 Bluetooth 5.3(0x2B45)"},
@@ -29984,6 +30167,10 @@ static pci_id_t const pci_vid_1B55[] = {
{0x1B55, 0xF1C4, 0xFFFF, 0xFFFF, "Dual ASI-RX/TX-CI card(0xF1C4)"},
}; /* pci_vid_1B55[] */
+static pci_id_t const pci_vid_1B61[] = {
+{0x1B61, 0xFFFF, 0xFFFF, 0xFFFF, "Byd Precision Manufacture Co.,Ltd(0x1B61)"},
+}; /* pci_vid_1B61[] */
+
static pci_id_t const pci_vid_1B66[] = {
{0x1B66, 0xFFFF, 0xFFFF, 0xFFFF, "DELTACAST(0x1B66)"},
{0x1B66, 0x0007, 0xFFFF, 0xFFFF, "DELTA-3G-elp-d(0x0007)"},
@@ -30229,6 +30416,21 @@ static pci_id_t const pci_vid_1BEE[] = {
{0x1BEE, 0xFFFF, 0xFFFF, 0xFFFF, "IXXAT Automation GmbH(0x1BEE)"},
{0x1BEE, 0x0002, 0xFFFF, 0xFFFF, "CAN-IB100/PCIe(0x0002)"},
{0x1BEE, 0x0003, 0xFFFF, 0xFFFF, "CAN-IB200/PCIe(0x0003)"},
+{0x1BEE, 0x0004, 0xFFFF, 0xFFFF, "CAN-IB120/PCIe Mini(0x0004)"},
+{0x1BEE, 0x0005, 0xFFFF, 0xFFFF, "CAN-IB130/PCIe 104(0x0005)"},
+{0x1BEE, 0x0006, 0xFFFF, 0xFFFF, "CAN-IB230/PCIe 104(0x0006)"},
+{0x1BEE, 0x000E, 0xFFFF, 0xFFFF, "CAN-IB500/PCIe(0x000E)"},
+{0x1BEE, 0x000F, 0xFFFF, 0xFFFF, "CAN-IB600/PCIe(0x000F)"},
+{0x1BEE, 0x0010, 0xFFFF, 0xFFFF, "CAN-IB300/PCI(0x0010)"},
+{0x1BEE, 0x0011, 0xFFFF, 0xFFFF, "CAN-IB400/PCI(0x0011)"},
+{0x1BEE, 0x0012, 0xFFFF, 0xFFFF, "CAN-IB520/PCIe Mini(0x0012)"},
+{0x1BEE, 0x0016, 0xFFFF, 0xFFFF, "CAN-IB410/PMC(0x0016)"},
+{0x1BEE, 0x001C, 0xFFFF, 0xFFFF, "CAN-IB810/PMC(0x001C)"},
+{0x1BEE, 0x001E, 0xFFFF, 0xFFFF, "INpact PCIe(0x001E)"},
+{0x1BEE, 0x001F, 0xFFFF, 0xFFFF, "INpact PCIe Mini(0x001F)"},
+{0x1BEE, 0x0029, 0xFFFF, 0xFFFF, "INpact M.2(0x0029)"},
+{0x1BEE, 0x002D, 0xFFFF, 0xFFFF, "CAN-IB630/PCIe 104(0x002D)"},
+{0x1BEE, 0x002E, 0xFFFF, 0xFFFF, "CAN-IB640/PCIe(0x002E)"},
}; /* pci_vid_1BEE[] */
static pci_id_t const pci_vid_1BEF[] = {
@@ -30406,6 +30608,7 @@ static pci_id_t const pci_vid_1C5C[] = {
{0x1C5C, 0x2429, 0xFFFF, 0xFFFF, "PE6011 NVMe Solid State Drive(0x2429)"},
{0x1C5C, 0x243B, 0xFFFF, 0xFFFF, "PE6110 NVMe Solid State Drive(0x243B)"},
{0x1C5C, 0x243B, 0x1C5C, 0x0100, "PE6110 NVMe Solid State Drive(0x1C5C-0x0100)"},
+{0x1C5C, 0x2527, 0xFFFF, 0xFFFF, "PE4010 NVMe Solid State Drive(0x2527)"},
{0x1C5C, 0x2839, 0xFFFF, 0xFFFF, "PE8000 Series NVMe Solid State Drive(0x2839)"},
{0x1C5C, 0x2839, 0x1028, 0x2143, "DC NVMe SED PE8010 RI U.2 960GB(0x1028-0x2143)"},
{0x1C5C, 0x2839, 0x1028, 0x2144, "DC NVMe PE8010 RI U.2 960GB(0x1028-0x2144)"},
@@ -30535,6 +30738,14 @@ static pci_id_t const pci_vid_1C5F[] = {
{0x1C5F, 0x003F, 0x1C5F, 0x5445, "NVMe SSD PBlaze7 7946 6400G E1.S(0x1C5F-0x5445)"},
{0x1C5F, 0x003F, 0x1C5F, 0x5450, "NVMe SSD PBlaze7 7946 12800G AIC(0x1C5F-0x5450)"},
{0x1C5F, 0x003F, 0x1C5F, 0x5451, "NVMe SSD PBlaze7 7946 12800G 2.5\" U.2(0x1C5F-0x5451)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2100, "TP2510 Series U.2 NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2100)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2101, "TP2511 Series U.2 NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2101)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2110, "TP2510 Series E3.S NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2110)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2111, "TP2511 Series E3.S NVMe Datacenter SSD(3.84TB)(0x1EA0-0x2111)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2200, "TP2510 Series U.2 NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2200)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2201, "TP2511 Series U.2 NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2201)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2210, "TP2510 Series E3.S NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2210)"},
+{0x1C5F, 0x003F, 0x1EA0, 0x2211, "TP2511 Series E3.S NVMe Datacenter SSD(7.68TB)(0x1EA0-0x2211)"},
{0x1C5F, 0x0540, 0xFFFF, 0xFFFF, "PBlaze4 NVMe SSD(0x0540)"},
{0x1C5F, 0x0550, 0xFFFF, 0xFFFF, "PBlaze5 700/900(0x0550)"},
{0x1C5F, 0x0555, 0xFFFF, 0xFFFF, "PBlaze5 510/516(0x0555)"},
@@ -30673,6 +30884,10 @@ static pci_id_t const pci_vid_1CC4[] = {
{0x1CC4, 0x8030, 0x1CC4, 0x2213, "NVMe SSD UH832a E3.S 3.2TB(0x1CC4-0x2213)"},
{0x1CC4, 0x8030, 0x1CC4, 0x2214, "NVMe SSD UH832a E3.S 6.4TB(0x1CC4-0x2214)"},
{0x1CC4, 0x8030, 0x1CC4, 0x2215, "NVMe SSD UH832a E3.S 12.8TB(0x1CC4-0x2215)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3122, "NVMe SSD UH712a U.2 1.92TB(0x1CC4-0x3122)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3123, "NVMe SSD UH712a U.2 3.84TB(0x1CC4-0x3123)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3124, "NVMe SSD UH712a U.2 7.68TB(0x1CC4-0x3124)"},
+{0x1CC4, 0x8030, 0x1CC4, 0x3125, "NVMe SSD UH712a U.2 15.36TB(0x1CC4-0x3125)"},
}; /* pci_vid_1CC4[] */
static pci_id_t const pci_vid_1CC5[] = {
@@ -30964,12 +31179,16 @@ static pci_id_t const pci_vid_1D69[] = {
static pci_id_t const pci_vid_1D6A[] = {
{0x1D6A, 0xFFFF, 0xFFFF, 0xFFFF, "Aquantia Corp.(0x1D6A)"},
{0x1D6A, 0x0001, 0xFFFF, 0xFFFF, "AQC107 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x0001)"},
+{0x1D6A, 0x0001, 0x4C52, 0x6880, "LREC6880BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x6880)"},
{0x1D6A, 0x00B1, 0xFFFF, 0xFFFF, "AQtion AQC100 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G](0x00B1)"},
{0x1D6A, 0x00C0, 0xFFFF, 0xFFFF, "Antigua NBase-T/IEEE 802.3an Ethernet Controller - Engineering Sample(0x00C0)"},
{0x1D6A, 0x04C0, 0xFFFF, 0xFFFF, "AQtion AQC113 NBase-T/IEEE 802.3an Ethernet Controller [Antigua 10G](0x04C0)"},
+{0x1D6A, 0x04C0, 0x4C52, 0x1053, "LRES1053PT Quad-port 10Gb Ethernet Network Adapter(0x4C52-0x1053)"},
+{0x1D6A, 0x04C0, 0x4C52, 0x2051, "LRES2051PT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x2051)"},
{0x1D6A, 0x07B1, 0xFFFF, 0xFFFF, "AQtion AQC107 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G](0x07B1)"},
{0x1D6A, 0x07B1, 0x1BAA, 0x07B1, "QM2-2P10G1TA [QXG 10GbE Network Adapter](0x1BAA-0x07B1)"},
{0x1D6A, 0x07B1, 0x1BAA, 0x07B2, "QM2-2P10G1TA [QM2 Expansion Adapter](0x1BAA-0x07B2)"},
+{0x1D6A, 0x07B1, 0x4C52, 0x6880, "LREC6880BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x6880)"},
{0x1D6A, 0x08B1, 0xFFFF, 0xFFFF, "AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x08B1)"},
{0x1D6A, 0x11B1, 0xFFFF, 0xFFFF, "AQC111 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x11B1)"},
{0x1D6A, 0x12B1, 0xFFFF, 0xFFFF, "AQC112 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion](0x12B1)"},
@@ -31104,7 +31323,7 @@ static pci_id_t const pci_vid_1D79[] = {
{0x1D79, 0x2262, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 220S/MTE662T2(0x2262)"},
{0x1D79, 0x2263, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 110S/112S/120S/MTE300S/MTE400S/MTE652T2 (DRAM-less)(0x2263)"},
{0x1D79, 0x2264, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 250H(0x2264)"},
-{0x1D79, 0x2267, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 240S/MTE710T(0x2267)"},
+{0x1D79, 0x2267, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 220S/240S/MTE710T(0x2267)"},
{0x1D79, 0x5766, 0xFFFF, 0xFFFF, "NVMe PCIe SSD 110Q (DRAM-less)(0x5766)"},
}; /* pci_vid_1D79[] */
@@ -31669,6 +31888,7 @@ static pci_id_t const pci_vid_1DF3[] = {
static pci_id_t const pci_vid_1DF5[] = {
{0x1DF5, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen TIGO Semiconductor(0x1DF5)"},
{0x1DF5, 0x1202, 0xFFFF, 0xFFFF, "kimtigo NVMe SSD (DRAM-less)(0x1202)"},
+{0x1DF5, 0x2263, 0xFFFF, 0xFFFF, "kimtigo MG931K NVMe SSD (DRAM-less)(0x2263)"},
}; /* pci_vid_1DF5[] */
static pci_id_t const pci_vid_1DF7[] = {
@@ -31792,6 +32012,7 @@ static pci_id_t const pci_vid_1E0F[] = {
{0x1E0F, 0x0025, 0x1028, 0x223C, "Ent NVMe CM7 U.2 MU 6.4TB(0x1028-0x223C)"},
{0x1E0F, 0x0025, 0x1028, 0x223D, "Ent NVMe CM7 U.2 MU 3.2TB(0x1028-0x223D)"},
{0x1E0F, 0x0025, 0x1028, 0x223E, "Ent NVMe CM7 U.2 MU 1.6TB(0x1028-0x223E)"},
+{0x1E0F, 0x002A, 0xFFFF, 0xFFFF, "Exceria Plus G3 NVMe SSD (DRAM-less)(0x002A)"},
{0x1E0F, 0x002C, 0xFFFF, 0xFFFF, "NVMe SSD Controller CD8P EDSFF(0x002C)"},
{0x1E0F, 0x002C, 0x1028, 0x22BF, "DC NVMe CD8P E3.S 15.36TB(0x1028-0x22BF)"},
{0x1E0F, 0x002C, 0x1028, 0x22C0, "DC NVMe CD8P E3.S 7.68TB(0x1028-0x22C0)"},
@@ -31842,7 +32063,8 @@ static pci_id_t const pci_vid_1E36[] = {
{0x1E36, 0x8032, 0xFFFF, 0xFFFF, "S6 [Enflame](0x8032)"},
{0x1E36, 0xC031, 0xFFFF, 0xFFFF, "S30 [Enflame](0xC031)"},
{0x1E36, 0xC032, 0xFFFF, 0xFFFF, "S90 [Enflame](0xC032)"},
-{0x1E36, 0xC033, 0xFFFF, 0xFFFF, "S60 [Enflame](0xC033)"},
+{0x1E36, 0xC033, 0xFFFF, 0xFFFF, "S60G [Enflame](0xC033)"},
+{0x1E36, 0xC035, 0xFFFF, 0xFFFF, "S60 [Enflame](0xC035)"},
}; /* pci_vid_1E36[] */
static pci_id_t const pci_vid_1E38[] = {
@@ -31862,7 +32084,7 @@ static pci_id_t const pci_vid_1E3A[] = {
static pci_id_t const pci_vid_1E3B[] = {
{0x1E3B, 0xFFFF, 0xFFFF, 0xFFFF, "DapuStor Corporation(0x1E3B)"},
{0x1E3B, 0x0600, 0xFFFF, 0xFFFF, "NVMe SSD Controller DP600(0x0600)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x0006, "Enterprise NVMe SSD U.2 QDP 7.68TB (J5000)(0x1E3B-0x0006)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x0006, "Enterprise NVMe SSD U.2 ODP 7.68TB (J5001)(0x1E3B-0x0006)"},
{0x1E3B, 0x0600, 0x1E3B, 0x0010, "Enterprise NVMe SSD U.2 3.84TB (R5102)(0x1E3B-0x0010)"},
{0x1E3B, 0x0600, 0x1E3B, 0x0013, "Enterprise NVMe SSD U.2 3.20TB (R5302)(0x1E3B-0x0013)"},
{0x1E3B, 0x0600, 0x1E3B, 0x0030, "Enterprise NVMe SSD U.2 3.84TB (J5100)(0x1E3B-0x0030)"},
@@ -31901,23 +32123,39 @@ static pci_id_t const pci_vid_1E3B[] = {
{0x1E3B, 0x0600, 0x1E3B, 0x00BE, "Enterprise NVMe SSD U.2 QDP 30.72TB (R5100)(0x1E3B-0x00BE)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00C1, "Enterprise NVMe SSD U.2 QDP 25.60TB (R5300D)(0x1E3B-0x00C1)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00C4, "Enterprise NVMe SSD U.2 QDP 30.72TB (R5100D)(0x1E3B-0x00C4)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00C9, "Enterprise NVMe SSD U.2 15.36TB (J5000)(0x1E3B-0x00C9)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00CA, "Enterprise NVMe SSD U.2 3.84TB (J5102)(0x1E3B-0x00CA)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00CB, "Enterprise NVMe SSD U.2 7.68TB (J5102)(0x1E3B-0x00CB)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00CC, "Enterprise NVMe SSD U.2 3.84TB (J5101)(0x1E3B-0x00CC)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00CD, "Enterprise NVMe SSD U.2 7.68TB (J5101)(0x1E3B-0x00CD)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00CE, "Enterprise NVMe SSD U.2 3.84TB (J5101D)(0x1E3B-0x00CE)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00CF, "Enterprise NVMe SSD U.2 7.68TB (J5101D)(0x1E3B-0x00CF)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00E8, "Enterprise NVMe SSD U.2 3.20TB (J5301)(0x1E3B-0x00E8)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00E9, "Enterprise NVMe SSD U.2 6.40TB (J5301)(0x1E3B-0x00E9)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00EA, "Enterprise NVMe SSD U.2 3.20TB (J5301D)(0x1E3B-0x00EA)"},
-{0x1E3B, 0x0600, 0x1E3B, 0x00EB, "Enterprise NVMe SSD U.2 6.40TB (J5301D)(0x1E3B-0x00EB)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00C9, "Enterprise NVMe SSD U.2 ODP 15.36TB (J5001)(0x1E3B-0x00C9)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CA, "Enterprise NVMe SSD U.2 ODP 3.84TB (J5102)(0x1E3B-0x00CA)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CB, "Enterprise NVMe SSD U.2 ODP 7.68TB (J5102)(0x1E3B-0x00CB)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CC, "Enterprise NVMe SSD U.2 QDP 3.84TB (J5101)(0x1E3B-0x00CC)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CD, "Enterprise NVMe SSD U.2 ODP 7.68TB (J5101)(0x1E3B-0x00CD)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CE, "Enterprise NVMe SSD U.2 QDP 3.84TB (J5101D)(0x1E3B-0x00CE)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00CF, "Enterprise NVMe SSD U.2 ODP 7.68TB (J5101D)(0x1E3B-0x00CF)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DC, "Enterprise NVMe SSD U.2 ODP 30.72TB with SAMSUNG 32GB DRAM (J5001)(0x1E3B-0x00DC)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DD, "Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(J5001)(0x1E3B-0x00DD)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DE, "Enterprise NVMe SSD U.2 ODP 15.36TB with SK 16GB DRAM(J5001D)(0x1E3B-0x00DE)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00DF, "Enterprise NVMe SSD U.2 ODP 30.72TB with SAMSUNG 32GB DRAM(J5001D)(0x1E3B-0x00DF)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E7, "Enterprise NVMe SSD U.2 ODP 30.72TB with MT 32GB DRAM(J5001D)(0x1E3B-0x00E7)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E8, "Enterprise NVMe SSD U.2 QDP 3.20TB (J5301)(0x1E3B-0x00E8)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00E9, "Enterprise NVMe SSD U.2 ODP 6.40TB (J5301)(0x1E3B-0x00E9)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00EA, "Enterprise NVMe SSD U.2 QDP 3.20TB (J5301D)(0x1E3B-0x00EA)"},
+{0x1E3B, 0x0600, 0x1E3B, 0x00EB, "Enterprise NVMe SSD U.2 ODP 6.40TB (J5301D)(0x1E3B-0x00EB)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F0, "Enterprise NVMe SSD U.2 0.40TB (X2900)(0x1E3B-0x00F0)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F1, "Enterprise NVMe SSD U.2 0.80TB (X2900)(0x1E3B-0x00F1)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F2, "Enterprise NVMe SSD U.2 1.60TB (X2900)(0x1E3B-0x00F2)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F3, "Enterprise NVMe SSD U.2 3.20TB (X2900)(0x1E3B-0x00F3)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F5, "Enterprise NVMe SSD U.2 0.40TB (X2900P)(0x1E3B-0x00F5)"},
{0x1E3B, 0x0600, 0x1E3B, 0x00F6, "Enterprise NVMe SSD U.2 0.80TB (X2900P)(0x1E3B-0x00F6)"},
+{0x1E3B, 0x0800, 0xFFFF, 0xFFFF, "DP800(0x0800)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0001, "Enterprise NVMe SSD U.2 QDP 3.84TB(R6100)(0x1E3B-0x0001)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0007, "Enterprise NVMe SSD U.2 ODP 15.36TB (R6100)(0x1E3B-0x0007)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x000A, "Enterprise NVMe SSD U.2 3.20TB (R6300)(0x1E3B-0x000A)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x000D, "Enterprise NVMe SSD U.2 6.40TB (R6300)(0x1E3B-0x000D)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0010, "Enterprise NVMe SSD U.2 12.80TB (R6300)(0x1E3B-0x0010)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0018, "Enterprise NVMe SSD U.2 QDP 3.84TB (R6100C)(0x1E3B-0x0018)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x0019, "Enterprise NVMe SSD U.2 ODP 7.68TB (R6100C)(0x1E3B-0x0019)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x001A, "Enterprise NVMe SSD U.2 3.20TB (R6300C)(0x1E3B-0x001A)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x001B, "Enterprise NVMe SSD U.2 6.40TB (R6300C)(0x1E3B-0x001B)"},
+{0x1E3B, 0x0800, 0x1E3B, 0x001C, "Enterprise NVMe SSD U.2 ODP 7.68TB (R6100)(0x1E3B-0x001C)"},
{0x1E3B, 0x1098, 0xFFFF, 0xFFFF, "Haishen3 NVMe SSD(0x1098)"},
{0x1E3B, 0x1098, 0x1E3B, 0x0001, "Enterprise NVMe SSD U.2 0.8TB (H2100)(0x1E3B-0x0001)"},
{0x1E3B, 0x1098, 0x1E3B, 0x0002, "Enterprise NVMe SSD U.2 0.96TB (H2200)(0x1E3B-0x0002)"},
@@ -31981,6 +32219,8 @@ static pci_id_t const pci_vid_1E49[] = {
{0x1E49, 0x1011, 0xFFFF, 0xFFFF, "PC210 NVMe SSD(0x1011)"},
{0x1E49, 0x1013, 0xFFFF, 0xFFFF, "PC210 NVMe SSD(0x1013)"},
{0x1E49, 0x1031, 0xFFFF, 0xFFFF, "PC300 NVMe SSD (DRAM-less)(0x1031)"},
+{0x1E49, 0x1033, 0xFFFF, 0xFFFF, "PC300 NVMe SSD (DRAM-less)(0x1033)"},
+{0x1E49, 0x1071, 0xFFFF, 0xFFFF, "PC411 NVMe SSD (DRAM-less)(0x1071)"},
}; /* pci_vid_1E49[] */
static pci_id_t const pci_vid_1E4B[] = {
@@ -32008,8 +32248,13 @@ static pci_id_t const pci_vid_1E50[] = {
static pci_id_t const pci_vid_1E52[] = {
{0x1E52, 0xFFFF, 0xFFFF, 0xFFFF, "Tenstorrent Inc(0x1E52)"},
{0x1E52, 0x401E, 0xFFFF, 0xFFFF, "Wormhole(0x401E)"},
+{0x1E52, 0x401E, 0x1E52, 0x0014, "n300(0x1E52-0x0014)"},
+{0x1E52, 0x401E, 0x1E52, 0x0018, "n150(0x1E52-0x0018)"},
{0x1E52, 0xB140, 0xFFFF, 0xFFFF, "Blackhole(0xB140)"},
{0x1E52, 0xFACA, 0xFFFF, 0xFFFF, "Grayskull(0xFACA)"},
+{0x1E52, 0xFACA, 0x1E52, 0x0003, "e150(0x1E52-0x0003)"},
+{0x1E52, 0xFACA, 0x1E52, 0x0007, "e75(0x1E52-0x0007)"},
+{0x1E52, 0xFACA, 0x1E52, 0x000A, "e300(0x1E52-0x000A)"},
}; /* pci_vid_1E52[] */
static pci_id_t const pci_vid_1E57[] = {
@@ -32135,6 +32380,7 @@ static pci_id_t const pci_vid_1EA0[] = {
{0x1EA0, 0x2A16, 0xFFFF, 0xFFFF, "Cloud Intelligent Inference Controller(0x2A16)"},
{0x1EA0, 0x2A18, 0xFFFF, 0xFFFF, "Video Transcode Controller(0x2A18)"},
{0x1EA0, 0x2A20, 0xFFFF, 0xFFFF, "Cloud Intelligent Inference and Training Controller(0x2A20)"},
+{0x1EA0, 0x2A22, 0xFFFF, 0xFFFF, "Cloud Intelligent Inference Controller(0x2A22)"},
}; /* pci_vid_1EA0[] */
static pci_id_t const pci_vid_1EA7[] = {
@@ -32236,6 +32482,10 @@ static pci_id_t const pci_vid_1ED0[] = {
static pci_id_t const pci_vid_1ED2[] = {
{0x1ED2, 0xFFFF, 0xFFFF, 0xFFFF, "FuriosaAI, Inc.(0x1ED2)"},
{0x1ED2, 0x0000, 0xFFFF, 0xFFFF, "Warboy(0x0000)"},
+{0x1ED2, 0x1111, 0xFFFF, 0xFFFF, "RNGD(0x1111)"},
+{0x1ED2, 0x1111, 0x0000, 0x1111, "RNGD-S(0x0000-0x1111)"},
+{0x1ED2, 0x1111, 0x0000, 0x2222, "RNGD VF(0x0000-0x2222)"},
+{0x1ED2, 0x1111, 0x0000, 0x3333, "RNGD-S VF(0x0000-0x3333)"},
}; /* pci_vid_1ED2[] */
static pci_id_t const pci_vid_1ED3[] = {
@@ -32261,6 +32511,7 @@ static pci_id_t const pci_vid_1ED5[] = {
{0x1ED5, 0x0211, 0xFFFF, 0xFFFF, "MTT X300(0x0211)"},
{0x1ED5, 0x0221, 0xFFFF, 0xFFFF, "G2S80(0x0221)"},
{0x1ED5, 0x0222, 0xFFFF, 0xFFFF, "MTT S3000(0x0222)"},
+{0x1ED5, 0x0222, 0x1ED5, 0x0001, "C3150(0x1ED5-0x0001)"},
{0x1ED5, 0x0223, 0xFFFF, 0xFFFF, "G2S4(0x0223)"},
{0x1ED5, 0x0251, 0xFFFF, 0xFFFF, "G2N10(0x0251)"},
{0x1ED5, 0x02FF, 0xFFFF, 0xFFFF, "MTT HDMI/DP Audio(0x02FF)"},
@@ -32664,6 +32915,10 @@ static pci_id_t const pci_vid_1FE4[] = {
{0x1FE4, 0x1600, 0x1FE4, 0x0078, "Enterprise NVMe SSD U.2 3.20TB(HP630)(0x1FE4-0x0078)"},
}; /* pci_vid_1FE4[] */
+static pci_id_t const pci_vid_1FE9[] = {
+{0x1FE9, 0xFFFF, 0xFFFF, 0xFFFF, "MemryX(0x1FE9)"},
+}; /* pci_vid_1FE9[] */
+
static pci_id_t const pci_vid_1FF4[] = {
{0x1FF4, 0xFFFF, 0xFFFF, 0xFFFF, "DEEPX Co., Ltd.(0x1FF4)"},
{0x1FF4, 0x0000, 0xFFFF, 0xFFFF, "DX_M1(0x0000)"},
@@ -32699,8 +32954,19 @@ static pci_id_t const pci_vid_2004[] = {
{0x2004, 0xFFFF, 0xFFFF, 0xFFFF, "Smart Link Ltd.(0x2004)"},
}; /* pci_vid_2004[] */
+static pci_id_t const pci_vid_202C[] = {
+{0x202C, 0xFFFF, 0xFFFF, 0xFFFF, "CAEN S.p.A.(0x202C)"},
+{0x202C, 0x5818, 0xFFFF, 0xFFFF, "A5818(0x5818)"},
+}; /* pci_vid_202C[] */
+
+static pci_id_t const pci_vid_2036[] = {
+{0x2036, 0xFFFF, 0xFFFF, 0xFFFF, "Netforward Microelectronics Co., Ltd.(0x2036)"},
+{0x2036, 0x1618, 0xFFFF, 0xFFFF, "NF1618 PCI Express Ethernet Controller(0x1618)"},
+{0x2036, 0x1619, 0xFFFF, 0xFFFF, "NF1618 Family Virtual Function(0x1619)"},
+}; /* pci_vid_2036[] */
+
static pci_id_t const pci_vid_2046[] = {
-{0x2046, 0xFFFF, 0xFFFF, 0xFFFF, "Shenzhen Inovance Technology Co., Ltd.(0x2046)"},
+{0x2046, 0xFFFF, 0xFFFF, 0xFFFF, "GXMICRO Technology (Shanghai) Co., Ltd.(0x2046)"},
}; /* pci_vid_2046[] */
static pci_id_t const pci_vid_2048[] = {
@@ -32730,6 +32996,7 @@ static pci_id_t const pci_vid_22B8[] = {
static pci_id_t const pci_vid_22DB[] = {
{0x22DB, 0xFFFF, 0xFFFF, 0xFFFF, "Missing Link Electronics, Inc.(0x22DB)"},
+{0x22DB, 0x1200, 0xFFFF, 0xFFFF, "NVMe Streamer EP ERD(0x1200)"},
}; /* pci_vid_22DB[] */
static pci_id_t const pci_vid_2304[] = {
@@ -32771,11 +33038,13 @@ static pci_id_t const pci_vid_2646[] = {
{0x2646, 0x5019, 0xFFFF, 0xFFFF, "NV2 NVMe SSD E21T (DRAM-less)(0x5019)"},
{0x2646, 0x501A, 0xFFFF, 0xFFFF, "OM8PGP4 Design-In PCIe 4 NVMe SSD (TLC) (DRAM-less)(0x501A)"},
{0x2646, 0x501B, 0xFFFF, 0xFFFF, "OM8PGP4 NVMe PCIe SSD (DRAM-less)(0x501B)"},
-{0x2646, 0x501C, 0xFFFF, 0xFFFF, "NV2 NVMe SSD E19T(0x501C)"},
+{0x2646, 0x501C, 0xFFFF, 0xFFFF, "NV2 NVMe SSD E19T (DRAM-less)(0x501C)"},
{0x2646, 0x501D, 0xFFFF, 0xFFFF, "NV2 NVMe SSD TC2200 (DRAM-less)(0x501D)"},
{0x2646, 0x501F, 0xFFFF, 0xFFFF, "FURY Renegade NVMe SSD with heatsink(0x501F)"},
{0x2646, 0x5021, 0xFFFF, 0xFFFF, "OM8SEP4 Design-In PCIe 4 NVMe SSD (QLC) (DRAM-less)(0x5021)"},
-{0x2646, 0x5023, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2269XT(0x5023)"},
+{0x2646, 0x5022, 0xFFFF, 0xFFFF, "OM8PGP4 Design-In PCIe 4 NVMe SSD (QLC) (DRAM-less)(0x5022)"},
+{0x2646, 0x5023, 0xFFFF, 0xFFFF, "NV2 NVMe SSD SM2269XT (DRAM-less)(0x5023)"},
+{0x2646, 0x5024, 0xFFFF, 0xFFFF, "DC2000B NVMe SSD E18DC(0x5024)"},
}; /* pci_vid_2646[] */
static pci_id_t const pci_vid_270B[] = {
@@ -33335,13 +33604,15 @@ static pci_id_t const pci_vid_4C4D[] = {
static pci_id_t const pci_vid_4C52[] = {
{0x4C52, 0xFFFF, 0xFFFF, 0xFFFF, "LR-LINK(0x4C52)"},
{0x4C52, 0x1001, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1001)"},
-{0x4C52, 0x1001, 0x4C52, 0xA006, "LREG1006PT Single-port 1.2Gb Network Security Isolation Adapter(0x4C52-0xA006)"},
{0x4C52, 0x1001, 0x4C52, 0xA008, "LREG1008PT Single-port 1Gb Smart Ethernet Network Adapter(0x4C52-0xA008)"},
{0x4C52, 0x1001, 0x4C52, 0xA009, "LREG1009PT Single-port 2.5Gb Smart Ethernet Network Adapter(0x4C52-0xA009)"},
{0x4C52, 0x1002, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1002)"},
+{0x4C52, 0x1002, 0x4C52, 0xA006, "LREG1006PT Single-port 1.2Gb Network Security Isolation Adapter(0x4C52-0xA006)"},
{0x4C52, 0x1002, 0x4C52, 0xA007, "LREG1007PT Quad-port 10Gb Smart Ethernet Network Adapter(0x4C52-0xA007)"},
{0x4C52, 0x1003, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1003)"},
-{0x4C52, 0x1003, 0x4C52, 0xB010, "LREG1010PF Single-port 10Gb FPGA Network Security Isolation Adapter(0x4C52-0xB010)"},
+{0x4C52, 0x1004, 0xFFFF, 0xFFFF, "Smart Network Adapter(0x1004)"},
+{0x4C52, 0x1004, 0x4C52, 0xB010, "LREG1010PF Single-port 10Gb FPGA Network Security Isolation Adapter(0x4C52-0xB010)"},
+{0x4C52, 0x1004, 0x4C52, 0xB011, "LREG1011PF Dual-port 10Gb FPGA Network Security Isolation Adapter(0x4C52-0xB011)"},
}; /* pci_vid_4C52[] */
static pci_id_t const pci_vid_4C53[] = {
@@ -33972,6 +34243,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x0100, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x0100, 0x1043, 0x844D, "P8P67/P8H67 Series Motherboard(0x1043-0x844D)"},
{0x8086, 0x0100, 0x1734, 0x11B9, "Esprimo P510 D3171 motherboard(0x1734-0x11B9)"},
+{0x8086, 0x0100, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x0100, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x0101, 0xFFFF, 0xFFFF, "Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port(0x0101)"},
{0x8086, 0x0101, 0x1028, 0x04B2, "Vostro 3350(0x1028-0x04B2)"},
@@ -33981,6 +34253,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x0102, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x0102, 0x1043, 0x0102, "P8H67 Series Motherboard(0x1043-0x0102)"},
{0x8086, 0x0102, 0x1734, 0x11B9, "G640 [Sandy Bridge, HD Graphics] on Esprimo P510 D3171 motherboard(0x1734-0x11B9)"},
+{0x8086, 0x0102, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x0104, 0xFFFF, 0xFFFF, "2nd Generation Core Processor Family DRAM Controller(0x0104)"},
{0x8086, 0x0104, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x0104, 0x1028, 0x04B2, "Vostro 3350(0x1028-0x04B2)"},
@@ -34589,7 +34862,10 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x0B60, 0x8086, 0x8D08, "NVMe Datacenter SSD [3DNAND] VE 2.5\" U.2 (P5316)(0x8086-0x8D08)"},
{0x8086, 0x0B60, 0x8086, 0x8D1D, "NVMe Datacenter SSD [3DNAND] VE E1.L 9.5/18mm (P5316)(0x8086-0x8D1D)"},
{0x8086, 0x0B60, 0x8086, 0xC008, "NVMe Datacenter SSD [3DNAND] SE U.2 15mm (P5530)(0x8086-0xC008)"},
+{0x8086, 0x0B69, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1450](0x0B69)"},
+{0x8086, 0x0B6E, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (1 Tile) [Data Center GPU Max 1100C](0x0B6E)"},
{0x8086, 0x0BD0, 0xFFFF, 0xFFFF, "Ponte Vecchio XL (2 Tile)(0x0BD0)"},
+{0x8086, 0x0BD4, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1550VG](0x0BD4)"},
{0x8086, 0x0BD5, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1550](0x0BD5)"},
{0x8086, 0x0BD6, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1550](0x0BD6)"},
{0x8086, 0x0BD7, 0xFFFF, 0xFFFF, "Ponte Vecchio XT (2 Tile) [Data Center GPU Max 1350](0x0BD7)"},
@@ -35300,6 +35576,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x10C9, 0x10A9, 0x8028, "UV-BaseIO dual-port GbE(0x10A9-0x8028)"},
{0x8086, 0x10C9, 0x13A3, 0x0037, "DS4100 Secure Multi-Gigabit Server Adapter with Compression(0x13A3-0x0037)"},
{0x8086, 0x10C9, 0x15D9, 0xA811, "H8DGU(0x15D9-0xA811)"},
+{0x8086, 0x10C9, 0x4C52, 0x9212, "LREC9212PT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9212)"},
{0x8086, 0x10C9, 0x8086, 0xA01C, "Gigabit ET Dual Port Server Adapter(0x8086-0xA01C)"},
{0x8086, 0x10C9, 0x8086, 0xA03C, "Gigabit ET Dual Port Server Adapter(0x8086-0xA03C)"},
{0x8086, 0x10C9, 0x8086, 0xA04C, "Gigabit ET Dual Port Server Adapter(0x8086-0xA04C)"},
@@ -35317,6 +35594,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x10D3, 0x15D9, 0x0605, "X8SIL(0x15D9-0x0605)"},
{0x8086, 0x10D3, 0x15D9, 0x060A, "X7SPA-H/X7SPA-HF Motherboard(0x15D9-0x060A)"},
{0x8086, 0x10D3, 0x15D9, 0x060D, "C7SIM-Q Motherboard(0x15D9-0x060D)"},
+{0x8086, 0x10D3, 0x4C52, 0x2201, "LRES2201PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2201)"},
{0x8086, 0x10D3, 0x8086, 0x0001, "Gigabit CT2 Desktop Adapter(0x8086-0x0001)"},
{0x8086, 0x10D3, 0x8086, 0x3578, "Server Board S1200BTLR(0x8086-0x3578)"},
{0x8086, 0x10D3, 0x8086, 0x357A, "Server Board S1200BTS(0x8086-0x357A)"},
@@ -35348,6 +35626,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x10E6, 0x8086, 0xA02F, "Gigabit EF Dual Port Server Adapter(0x8086-0xA02F)"},
{0x8086, 0x10E7, 0xFFFF, 0xFFFF, "82576 Gigabit Network Connection(0x10E7)"},
{0x8086, 0x10E7, 0x103C, 0x31FF, "NC362i Integrated Dual Port BL-c Gigabit Server Adapter(0x103C-0x31FF)"},
+{0x8086, 0x10E7, 0x4C52, 0x9701, "LREC9701EF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x9701)"},
{0x8086, 0x10E8, 0xFFFF, 0xFFFF, "82576 Gigabit Network Connection(0x10E8)"},
{0x8086, 0x10E8, 0x8086, 0xA02B, "Gigabit ET Quad Port Server Adapter(0x8086-0xA02B)"},
{0x8086, 0x10E8, 0x8086, 0xA02C, "Gigabit ET Quad Port Server Adapter(0x8086-0xA02C)"},
@@ -35407,6 +35686,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x10FB, 0x1BD4, 0x002F, "10G SFP+ DP EP102Fi4A Adapter(0x1BD4-0x002F)"},
{0x8086, 0x10FB, 0x1BD4, 0x0032, "10G SFP+ DP EP102Fi4 Adapter(0x1BD4-0x0032)"},
{0x8086, 0x10FB, 0x1BD4, 0x0067, "F102I82599(0x1BD4-0x0067)"},
+{0x8086, 0x10FB, 0x4C52, 0x1024, "LR-LINK LRES9804BF Quad-port 10Gb Ethernet Server Adapter(0x4C52-0x1024)"},
{0x8086, 0x10FB, 0x4C52, 0x3002, "LRES3002PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3002)"},
{0x8086, 0x10FB, 0x4C52, 0x3012, "LRES3012PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3012)"},
{0x8086, 0x10FB, 0x4C52, 0x9801, "LREC9801BF Single-port 10Gb Ethernet Server Adapter(0x4C52-0x9801)"},
@@ -35664,6 +35944,12 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x12D2, 0xFFFF, 0xFFFF, "Ethernet Controller E830-CC for QSFP(0x12D2)"},
{0x8086, 0x12D3, 0xFFFF, 0xFFFF, "Ethernet Controller E830-CC for SFP(0x12D3)"},
{0x8086, 0x12D4, 0xFFFF, 0xFFFF, "Ethernet Controller E830-CC for SFP-DD(0x12D4)"},
+{0x8086, 0x12D5, 0xFFFF, 0xFFFF, "Ethernet Controller E830-C for backplane(0x12D5)"},
+{0x8086, 0x12D8, 0xFFFF, 0xFFFF, "Ethernet Controller E830-C for QSFP(0x12D8)"},
+{0x8086, 0x12DA, 0xFFFF, 0xFFFF, "Ethernet Controller E830-C for SFP(0x12DA)"},
+{0x8086, 0x12DC, 0xFFFF, 0xFFFF, "Ethernet Controller E830-XXV for backplane(0x12DC)"},
+{0x8086, 0x12DD, 0xFFFF, 0xFFFF, "Ethernet Controller E830-XXV for QSFP(0x12DD)"},
+{0x8086, 0x12DE, 0xFFFF, 0xFFFF, "Ethernet Controller E830-XXV for SFP(0x12DE)"},
{0x8086, 0x1360, 0xFFFF, 0xFFFF, "82806AA PCI64 Hub PCI Bridge(0x1360)"},
{0x8086, 0x1361, 0xFFFF, 0xFFFF, "82806AA PCI64 Hub Controller (HRes)(0x1361)"},
{0x8086, 0x1361, 0x8086, 0x1361, "82806AA PCI64 Hub Controller (HRes)(0x8086-0x1361)"},
@@ -35679,6 +35965,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1502, 0xFFFF, 0xFFFF, "82579LM Gigabit Network Connection (Lewisville)(0x1502)"},
{0x8086, 0x1502, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x1502, 0x17AA, 0x21CE, "ThinkPad T520(0x17AA-0x21CE)"},
+{0x8086, 0x1502, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1502, 0x8086, 0x3578, "Server Board S1200BTLR(0x8086-0x3578)"},
{0x8086, 0x1502, 0x8086, 0x357A, "Server Board S1200BTS(0x8086-0x357A)"},
{0x8086, 0x1503, 0xFFFF, 0xFFFF, "82579V Gigabit Network Connection(0x1503)"},
@@ -35761,10 +36048,18 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1521, 0x1BD4, 0x008D, "ENFI1100-T4(0x1BD4-0x008D)"},
{0x8086, 0x1521, 0x4C52, 0x0350, "I350 1Gb 2-port Ethernet Network Adapter(0x4C52-0x0350)"},
{0x8086, 0x1521, 0x4C52, 0x1350, "LREC9222HT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x1350)"},
+{0x8086, 0x1521, 0x4C52, 0x2003, "LRES2003PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2003)"},
+{0x8086, 0x1521, 0x4C52, 0x2005, "LRES2005PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x2005)"},
+{0x8086, 0x1521, 0x4C52, 0x2006, "LRES2006PT Six-port 1Gb Ethernet Network Adapter(0x4C52-0x2006)"},
+{0x8086, 0x1521, 0x4C52, 0x2008, "LRES2008PT Eight-port 1Gb Ethernet Network Adapter(0x4C52-0x2008)"},
+{0x8086, 0x1521, 0x4C52, 0x2018, "LRES2018PT Twelve-port 1Gb Ethernet Network Adapter(0x4C52-0x2018)"},
+{0x8086, 0x1521, 0x4C52, 0x2202, "LRES2202PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2202)"},
+{0x8086, 0x1521, 0x4C52, 0x2217, "LRES2217PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2217)"},
{0x8086, 0x1521, 0x4C52, 0x3010, "LRES3010PF Dual-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3010)"},
{0x8086, 0x1521, 0x4C52, 0x3023, "LRES3023PT Quad-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3023)"},
{0x8086, 0x1521, 0x4C52, 0x3041, "LRES3041PT Dual-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3041)"},
{0x8086, 0x1521, 0x4C52, 0x4006, "LRES4006MT Quad-port 1Gb Ethernet Netwaork Adapter(0x4C52-0x4006)"},
+{0x8086, 0x1521, 0x4C52, 0x9712, "LREC9712HT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9712)"},
{0x8086, 0x1521, 0x8086, 0x0001, "Ethernet Server Adapter I350-T4(0x8086-0x0001)"},
{0x8086, 0x1521, 0x8086, 0x0002, "Ethernet Server Adapter I350-T2(0x8086-0x0002)"},
{0x8086, 0x1521, 0x8086, 0x0003, "Ethernet Network Adapter I350-T4 for OCP NIC 3.0(0x8086-0x0003)"},
@@ -35779,6 +36074,11 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1522, 0xFFFF, 0xFFFF, "I350 Gigabit Fiber Network Connection(0x1522)"},
{0x8086, 0x1522, 0x108E, 0x7B17, "Quad Port GbE PCIe 2.0 ExpressModule, MMF(0x108E-0x7B17)"},
{0x8086, 0x1522, 0x108E, 0x7B19, "Dual Port GbE PCIe 2.0 Low Profile Adapter, MMF(0x108E-0x7B19)"},
+{0x8086, 0x1522, 0x4C52, 0x1006, "LRES1006PF Six-port 1Gb Ethernet Network Adapter(0x4C52-0x1006)"},
+{0x8086, 0x1522, 0x4C52, 0x2203, "LRES2203PF Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2203)"},
+{0x8086, 0x1522, 0x4C52, 0x9710, "LREC9710HF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x9710)"},
+{0x8086, 0x1522, 0x4C52, 0x9712, "LREC9712HF Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x9712)"},
+{0x8086, 0x1522, 0x4C52, 0x9714, "LREC9714HF Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x9714)"},
{0x8086, 0x1522, 0x8086, 0x0002, "Ethernet Server Adapter I350-T2(0x8086-0x0002)"},
{0x8086, 0x1522, 0x8086, 0x0003, "Ethernet Server Adapter I350-F4(0x8086-0x0003)"},
{0x8086, 0x1522, 0x8086, 0x0004, "Ethernet Server Adapter I350-F2(0x8086-0x0004)"},
@@ -35793,6 +36093,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1523, 0x103C, 0x18D1, "Ethernet 1Gb 2-port 361FLB Adapter(0x103C-0x18D1)"},
{0x8086, 0x1523, 0x103C, 0x1989, "Ethernet 1Gb 2-port 363i Adapter(0x103C-0x1989)"},
{0x8086, 0x1523, 0x103C, 0x339F, "Ethernet 1Gb 4-port 366M Adapter(0x103C-0x339F)"},
+{0x8086, 0x1523, 0x4C52, 0x9714, "LREC9714HT Quad-port 10Gb Ethernet Network Adapter(0x4C52-0x9714)"},
{0x8086, 0x1523, 0x8086, 0x1F52, "1GbE 4P I350 Mezz(0x8086-0x1F52)"},
{0x8086, 0x1524, 0xFFFF, 0xFFFF, "I350 Gigabit Connection(0x1524)"},
{0x8086, 0x1525, 0xFFFF, 0xFFFF, "82567V-4 Gigabit Network Connection(0x1525)"},
@@ -35818,6 +36119,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1528, 0x1BD4, 0x001A, "10G base-T DP ER102Ti3 Rack Adapter(0x1BD4-0x001A)"},
{0x8086, 0x1528, 0x1BD4, 0x0033, "10G base-T DP EP102Ti3 Adapter(0x1BD4-0x0033)"},
{0x8086, 0x1528, 0x1BD4, 0x0034, "10G base-T DP EP102Ti3A Adapter(0x1BD4-0x0034)"},
+{0x8086, 0x1528, 0x4C52, 0x9802, "LREC9802BT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9802)"},
{0x8086, 0x1528, 0x8086, 0x0001, "Ethernet Converged Network Adapter X540-T2(0x8086-0x0001)"},
{0x8086, 0x1528, 0x8086, 0x0002, "Ethernet Converged Network Adapter X540-T1(0x8086-0x0002)"},
{0x8086, 0x1528, 0x8086, 0x001A, "Ethernet Converged Network Adapter X540-T2(0x8086-0x001A)"},
@@ -35843,10 +36145,22 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1533, 0x17AA, 0x1509, "I210 Gigabit Network Connection(0x17AA-0x1509)"},
{0x8086, 0x1533, 0x17AA, 0x404D, "I210 PCIe 1Gb 1-Port RJ45 LOM(0x17AA-0x404D)"},
{0x8086, 0x1533, 0x17AA, 0x407A, "I210 PCIe 1Gb 1-Port RJ45 LOM(0x17AA-0x407A)"},
+{0x8086, 0x1533, 0x4C52, 0x1051, "LRES1051PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x1051)"},
{0x8086, 0x1533, 0x4C52, 0x1210, "LREC9204CT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x1210)"},
+{0x8086, 0x1533, 0x4C52, 0x2057, "LRES2057PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x2057)"},
+{0x8086, 0x1533, 0x4C52, 0x2206, "LRES2206PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2206)"},
+{0x8086, 0x1533, 0x4C52, 0x2210, "LRES2210PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2210)"},
+{0x8086, 0x1533, 0x4C52, 0x2211, "LRES2211PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2211)"},
+{0x8086, 0x1533, 0x4C52, 0x2214, "LRES2214PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2214)"},
+{0x8086, 0x1533, 0x4C52, 0x3002, "LRES3002PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x3002)"},
+{0x8086, 0x1533, 0x4C52, 0x3004, "LRES3004PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x3004)"},
{0x8086, 0x1533, 0x8086, 0x0001, "Ethernet Server Adapter I210-T1(0x8086-0x0001)"},
{0x8086, 0x1533, 0x8086, 0x0002, "Ethernet Server Adapter I210-T1(0x8086-0x0002)"},
{0x8086, 0x1536, 0xFFFF, 0xFFFF, "I210 Gigabit Fiber Network Connection(0x1536)"},
+{0x8086, 0x1536, 0x4C52, 0x2204, "LRES2204PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2204)"},
+{0x8086, 0x1536, 0x4C52, 0x2212, "LRES2212PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2212)"},
+{0x8086, 0x1536, 0x4C52, 0x2213, "LRES2213PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2213)"},
+{0x8086, 0x1536, 0x4C52, 0x6230, "LREC6230PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x6230)"},
{0x8086, 0x1537, 0xFFFF, 0xFFFF, "I210 Gigabit Backplane Connection(0x1537)"},
{0x8086, 0x1537, 0x1059, 0x0110, "T4005 1GbE interface(0x1059-0x0110)"},
{0x8086, 0x1537, 0x1059, 0x0111, "T4007 1GbE interface(0x1059-0x0111)"},
@@ -35890,6 +36204,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x155D, 0x8086, 0x0001, "Ethernet Server Bypass Adapter X520-SR2(0x8086-0x0001)"},
{0x8086, 0x155D, 0x8086, 0x0002, "Ethernet Server Bypass Adapter X520-LR2(0x8086-0x0002)"},
{0x8086, 0x1560, 0xFFFF, 0xFFFF, "Ethernet Controller X540(0x1560)"},
+{0x8086, 0x1560, 0x4C52, 0x9801, "LREC9801BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x9801)"},
{0x8086, 0x1563, 0xFFFF, 0xFFFF, "Ethernet Controller X550(0x1563)"},
{0x8086, 0x1563, 0x1028, 0x1FA8, "Ethernet 10G 4P X550/I350 rNDC(0x1028-0x1FA8)"},
{0x8086, 0x1563, 0x1028, 0x1FA9, "Ethernet 10G 4P X550 rNDC(0x1028-0x1FA9)"},
@@ -35904,6 +36219,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1563, 0x193D, 0x1008, "560T-B(0x193D-0x1008)"},
{0x8086, 0x1563, 0x193D, 0x1009, "560T-L(0x193D-0x1009)"},
{0x8086, 0x1563, 0x193D, 0x1011, "UN-NIC-ETH563T-sL-2P(0x193D-0x1011)"},
+{0x8086, 0x1563, 0x4C52, 0x1025, "LRES1025PT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x1025)"},
+{0x8086, 0x1563, 0x4C52, 0x9812, "LREC9812BT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x9812)"},
{0x8086, 0x1563, 0x8086, 0x0001, "Ethernet Converged Network Adapter X550-T2(0x8086-0x0001)"},
{0x8086, 0x1563, 0x8086, 0x001A, "Ethernet Converged Network Adapter X550-T2(0x8086-0x001A)"},
{0x8086, 0x1563, 0x8086, 0x001B, "Ethernet Server Adapter X550-T2 for OCP(0x8086-0x001B)"},
@@ -35953,6 +36270,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1572, 0x4C52, 0x3003, "LRES3003PF Quad-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3003)"},
{0x8086, 0x1572, 0x4C52, 0x3007, "LRES3007PF Quad-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3007)"},
{0x8086, 0x1572, 0x4C52, 0x3039, "LRES3039PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3039)"},
+{0x8086, 0x1572, 0x4C52, 0x9804, "LREC9804BF Quad-port 10Gb Ethernet Server Adapter(0x4C52-0x9804)"},
+{0x8086, 0x1572, 0x4C52, 0x9812, "LREC9812BF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x9812)"},
{0x8086, 0x1572, 0x8086, 0x0000, "Ethernet Converged Network Adapter X710(0x8086-0x0000)"},
{0x8086, 0x1572, 0x8086, 0x0001, "Ethernet Converged Network Adapter X710-4(0x8086-0x0001)"},
{0x8086, 0x1572, 0x8086, 0x0002, "Ethernet Converged Network Adapter X710-4(0x8086-0x0002)"},
@@ -36008,6 +36327,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1583, 0x1137, 0x0000, "Ethernet Converged NIC XL710-QDA2(0x1137-0x0000)"},
{0x8086, 0x1583, 0x1137, 0x013C, "Ethernet Converged NIC XL710-QDA2(0x1137-0x013C)"},
{0x8086, 0x1583, 0x4C52, 0x3042, "LRES3042PF Dual-port 40Gb Ethernet Server Adapter for OCP(0x4C52-0x3042)"},
+{0x8086, 0x1583, 0x4C52, 0x9902, "LREC9902BF Dual-port 40Gb Ethernet Server Adapter(0x4C52-0x9902)"},
{0x8086, 0x1583, 0x8086, 0x0000, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0000)"},
{0x8086, 0x1583, 0x8086, 0x0001, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0001)"},
{0x8086, 0x1583, 0x8086, 0x0002, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0002)"},
@@ -36015,6 +36335,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1583, 0x8086, 0x0004, "Ethernet Server Adapter XL710-Q2OCP(0x8086-0x0004)"},
{0x8086, 0x1583, 0x8086, 0x0006, "Ethernet Converged Network Adapter XL710-Q2(0x8086-0x0006)"},
{0x8086, 0x1584, 0xFFFF, 0xFFFF, "Ethernet Controller XL710 for 40GbE QSFP+(0x1584)"},
+{0x8086, 0x1584, 0x4C52, 0x9901, "LREC9901BF Single-port 40Gb Ethernet Server Adapter(0x4C52-0x9901)"},
{0x8086, 0x1584, 0x8086, 0x0000, "Ethernet Converged Network Adapter XL710-Q1(0x8086-0x0000)"},
{0x8086, 0x1584, 0x8086, 0x0001, "Ethernet Converged Network Adapter XL710-Q1(0x8086-0x0001)"},
{0x8086, 0x1584, 0x8086, 0x0002, "Ethernet Converged Network Adapter XL710-Q1(0x8086-0x0002)"},
@@ -36035,6 +36356,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1589, 0xFFFF, 0xFFFF, "Ethernet Controller X710/X557-AT 10GBASE-T(0x1589)"},
{0x8086, 0x1589, 0x108E, 0x0000, "Quad Port 10GBase-T Adapter(0x108E-0x0000)"},
{0x8086, 0x1589, 0x108E, 0x7B1C, "Quad Port 10GBase-T Adapter(0x108E-0x7B1C)"},
+{0x8086, 0x1589, 0x4C52, 0x9804, "LREC9804BT Quad-port 10Gb Ethernet Network Adapter(0x4C52-0x9804)"},
{0x8086, 0x1589, 0x8086, 0x0000, "Ethernet Converged Network Adapter X710-T(0x8086-0x0000)"},
{0x8086, 0x1589, 0x8086, 0x0001, "Ethernet Converged Network Adapter X710-T4(0x8086-0x0001)"},
{0x8086, 0x1589, 0x8086, 0x0002, "Ethernet Converged Network Adapter X710-T4(0x8086-0x0002)"},
@@ -36103,6 +36425,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1593, 0x1137, 0x02C3, "E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02C3)"},
{0x8086, 0x1593, 0x1137, 0x02E9, "E810XXVDA4TG 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02E9)"},
{0x8086, 0x1593, 0x1137, 0x02EA, "E810XXVDA4T 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02EA)"},
+{0x8086, 0x1593, 0x4C52, 0x1023, "LRES1023PF Quad-port 25Gb Ethernet Server Adapter(0x4C52-0x1023)"},
{0x8086, 0x1593, 0x4C52, 0x3027, "LRES3027PF Quad-port 25Gb Ethernet Server Adapter for OCP(0x4C52-0x3027)"},
{0x8086, 0x1593, 0x8086, 0x0002, "Ethernet Network Adapter E810-L-2(0x8086-0x0002)"},
{0x8086, 0x1593, 0x8086, 0x0005, "Ethernet Network Adapter E810-XXV-4(0x8086-0x0005)"},
@@ -36164,6 +36487,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x15B6, 0xFFFF, 0xFFFF, "DSL6540 USB 3.1 Controller [Alpine Ridge](0x15B6)"},
{0x8086, 0x15B7, 0xFFFF, 0xFFFF, "Ethernet Connection (2) I219-LM(0x15B7)"},
{0x8086, 0x15B8, 0xFFFF, 0xFFFF, "Ethernet Connection (2) I219-V(0x15B8)"},
+{0x8086, 0x15B8, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x15B8, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x15B9, 0xFFFF, 0xFFFF, "Ethernet Connection (3) I219-LM(0x15B9)"},
{0x8086, 0x15BB, 0xFFFF, 0xFFFF, "Ethernet Connection (7) I219-LM(0x15BB)"},
@@ -36185,6 +36509,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x15D0, 0x8086, 0x0001, "Ethernet SDI Adapter FM10420-100GbE-QDA2(0x8086-0x0001)"},
{0x8086, 0x15D0, 0x8086, 0x0002, "Ethernet SDI Adapter FM10840-MTP2(0x8086-0x0002)"},
{0x8086, 0x15D1, 0xFFFF, 0xFFFF, "Ethernet Controller 10G X550T(0x15D1)"},
+{0x8086, 0x15D1, 0x4C52, 0x9811, "LREC9811BT Single-port 10Gb Ethernet Network Adapter(0x4C52-0x9811)"},
{0x8086, 0x15D1, 0x8086, 0x0002, "Ethernet Converged Network Adapter X550-T1(0x8086-0x0002)"},
{0x8086, 0x15D1, 0x8086, 0x001B, "Ethernet Server Adapter X550-T1 for OCP(0x8086-0x001B)"},
{0x8086, 0x15D1, 0x8086, 0x0021, "Ethernet Converged Network Adapter X550-T1(0x8086-0x0021)"},
@@ -36221,9 +36546,11 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x15EF, 0xFFFF, 0xFFFF, "JHL7540 Thunderbolt 3 Bridge [Titan Ridge DD 2018](0x15EF)"},
{0x8086, 0x15F0, 0xFFFF, 0xFFFF, "JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018](0x15F0)"},
{0x8086, 0x15F2, 0xFFFF, 0xFFFF, "Ethernet Controller I225-LM(0x15F2)"},
+{0x8086, 0x15F2, 0x4C52, 0x2031, "LRES2031PT Single-port 2.5Gb Ethernet Network Adapter(0x4C52-0x2031)"},
{0x8086, 0x15F2, 0x8086, 0x0001, "Ethernet Network Adapter I225-T1(0x8086-0x0001)"},
{0x8086, 0x15F2, 0x8086, 0x0002, "Ethernet Network Adapter I225-T1(0x8086-0x0002)"},
{0x8086, 0x15F3, 0xFFFF, 0xFFFF, "Ethernet Controller I225-V(0x15F3)"},
+{0x8086, 0x15F3, 0x4C52, 0x2031, "LRES2031PT Single-port 2.5Gb Ethernet Network Adapter(0x4C52-0x2031)"},
{0x8086, 0x15F3, 0x8086, 0x0003, "Intel(R) Ethernet Controller (3) I225-V(0x8086-0x0003)"},
{0x8086, 0x15F4, 0xFFFF, 0xFFFF, "Ethernet Connection (15) I219-LM(0x15F4)"},
{0x8086, 0x15F5, 0xFFFF, 0xFFFF, "Ethernet Connection (15) I219-V(0x15F5)"},
@@ -36240,6 +36567,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x15FF, 0x1137, 0x02D9, "Ethernet Network Adapter X710-T2L OCP 3.0(0x1137-0x02D9)"},
{0x8086, 0x15FF, 0x1137, 0x02DA, "Ethernet Network Adapter X710-T4L OCP 3.0(0x1137-0x02DA)"},
{0x8086, 0x15FF, 0x193D, 0x1082, "NIC-ETH565T-3S-2P(0x193D-0x1082)"},
+{0x8086, 0x15FF, 0x4C52, 0x1012, "LRES1012PT Dual-port 10Gb Ethernet Network Adapter(0x4C52-0x1012)"},
{0x8086, 0x15FF, 0x4C52, 0x3021, "LRES3021PT Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3021)"},
{0x8086, 0x15FF, 0x8086, 0x0000, "Ethernet Network Adapter X710-TL(0x8086-0x0000)"},
{0x8086, 0x15FF, 0x8086, 0x0001, "Ethernet Network Adapter X710-T4L(0x8086-0x0001)"},
@@ -36316,10 +36644,18 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1898, 0xFFFF, 0xFFFF, "Ethernet Connection E822-L for SFP(0x1898)"},
{0x8086, 0x1899, 0xFFFF, 0xFFFF, "Ethernet Connection E822-L/X557-AT 10GBASE-T(0x1899)"},
{0x8086, 0x189A, 0xFFFF, 0xFFFF, "Ethernet Connection E822-L 1GbE(0x189A)"},
-{0x8086, 0x18A0, 0xFFFF, 0xFFFF, "C4xxx Series QAT(0x18A0)"},
+{0x8086, 0x18A0, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series QAT(0x18A0)"},
{0x8086, 0x18A1, 0xFFFF, 0xFFFF, "C4XXX Series QAT Virtual Function(0x18A1)"},
+{0x8086, 0x18B3, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SATA Controller(0x18B3)"},
+{0x8086, 0x18D0, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series USB xHCI Controller(0x18D0)"},
+{0x8086, 0x18D3, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series MEI Controller(0x18D3)"},
+{0x8086, 0x18D6, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series MEI Controller(0x18D6)"},
+{0x8086, 0x18DF, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SMBus Controller(0x18DF)"},
+{0x8086, 0x18E0, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SPI Controller(0x18E0)"},
+{0x8086, 0x18E1, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series Trace Hub(0x18E1)"},
{0x8086, 0x18EE, 0xFFFF, 0xFFFF, "200xx Series QAT(0x18EE)"},
{0x8086, 0x18EF, 0xFFFF, 0xFFFF, "200xx Series QAT Virtual Function(0x18EF)"},
+{0x8086, 0x18F3, 0xFFFF, 0xFFFF, "Atom Processor P5xxx Series SATA Controller(0x18F3)"},
{0x8086, 0x1900, 0xFFFF, 0xFFFF, "Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers(0x1900)"},
{0x8086, 0x1901, 0xFFFF, 0xFFFF, "6th-10th Gen Core Processor PCIe Controller (x16)(0x1901)"},
{0x8086, 0x1902, 0xFFFF, 0xFFFF, "HD Graphics 510(0x1902)"},
@@ -36353,6 +36689,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1911, 0xFFFF, 0xFFFF, "Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model(0x1911)"},
{0x8086, 0x1911, 0x1028, 0x0869, "Vostro 3470(0x1028-0x0869)"},
{0x8086, 0x1911, 0x1028, 0x09BE, "Latitude 7410(0x1028-0x09BE)"},
+{0x8086, 0x1911, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x1911, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x1911, 0x17AA, 0x2247, "ThinkPad T570(0x17AA-0x2247)"},
{0x8086, 0x1911, 0x17AA, 0x224F, "ThinkPad X1 Carbon 5th Gen(0x17AA-0x224F)"},
@@ -36483,6 +36820,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1B48, 0xFFFF, 0xFFFF, "82597EX 10GbE Ethernet Controller(0x1B48)"},
{0x8086, 0x1B48, 0x8086, 0xA01F, "PRO/10GbE LR Server Adapter(0x8086-0xA01F)"},
{0x8086, 0x1B48, 0x8086, 0xA11F, "PRO/10GbE LR Server Adapter(0x8086-0xA11F)"},
+{0x8086, 0x1BCD, 0xFFFF, 0xFFFF, "Emmitsburg (C740 Family) USB 3.2 Gen 1 xHCI Controller(0x1BCD)"},
+{0x8086, 0x1BCD, 0x1BD4, 0x00A5, "RS0800I5H16i(0x1BD4-0x00A5)"},
{0x8086, 0x1BD2, 0xFFFF, 0xFFFF, "Sapphire Rapids SATA AHCI Controller(0x1BD2)"},
{0x8086, 0x1BF2, 0xFFFF, 0xFFFF, "Sapphire Rapids SATA AHCI Controller(0x1BF2)"},
{0x8086, 0x1C00, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family Desktop SATA Controller (IDE mode, ports 0-3)(0x1C00)"},
@@ -36490,6 +36829,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1C02, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family 6 port Desktop SATA AHCI Controller(0x1C02)"},
{0x8086, 0x1C02, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x1C02, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
+{0x8086, 0x1C02, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C02, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C02, 0x8086, 0x7270, "Server Board S1200BT Family(0x8086-0x7270)"},
{0x8086, 0x1C03, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family 6 port Mobile SATA AHCI Controller(0x1C03)"},
@@ -36540,6 +36880,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1C20, 0x1043, 0x8418, "P8P67 Deluxe Motherboard(0x1043-0x8418)"},
{0x8086, 0x1C20, 0x1043, 0x841B, "P8H67 Series Motherboard(0x1043-0x841B)"},
{0x8086, 0x1C20, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C20, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C20, 0x8086, 0x2008, "DQ67SW board(0x8086-0x2008)"},
{0x8086, 0x1C20, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C20, 0x8086, 0x7270, "Apple MacBookPro8,2 [Core i7, 15\", 2011](0x8086-0x7270)"},
@@ -36550,6 +36891,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1C22, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C22, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C22, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C22, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C22, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C22, 0x8086, 0x7270, "Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2(0x8086-0x7270)"},
{0x8086, 0x1C24, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family Thermal Management Controller(0x1C24)"},
@@ -36561,6 +36903,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1C26, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C26, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C26, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C26, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C26, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C26, 0x8086, 0x7270, "Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2(0x8086-0x7270)"},
{0x8086, 0x1C27, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family USB Universal Host Controller #1(0x1C27)"},
@@ -36574,22 +36917,26 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1C2D, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C2D, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C2D, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C2D, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C2D, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C2D, 0x8086, 0x7270, "Server Board S1200BT Family / Apple MacBook Pro 8,1/8,2(0x8086-0x7270)"},
{0x8086, 0x1C33, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family LAN Controller(0x1C33)"},
{0x8086, 0x1C35, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family VECI Controller(0x1C35)"},
{0x8086, 0x1C3A, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family MEI Controller #1(0x1C3A)"},
+{0x8086, 0x1C3A, 0x1028, 0x0493, "Latitude E6420(0x1028-0x0493)"},
{0x8086, 0x1C3A, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x1C3A, 0x1028, 0x04AA, "XPS 8300(0x1028-0x04AA)"},
{0x8086, 0x1C3A, 0x1028, 0x04B2, "Vostro 3350(0x1028-0x04B2)"},
{0x8086, 0x1C3A, 0x1028, 0x04DA, "Vostro 3750(0x1028-0x04DA)"},
{0x8086, 0x1C3A, 0x1043, 0x844D, "P8 series motherboard(0x1043-0x844D)"},
{0x8086, 0x1C3A, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
+{0x8086, 0x1C3A, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C3A, 0x8086, 0x200D, "DH61CR motherboard(0x8086-0x200D)"},
{0x8086, 0x1C3A, 0x8086, 0x7270, "Apple MacBookPro8,2 [Core i7, 15\", 2011](0x8086-0x7270)"},
{0x8086, 0x1C3B, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family MEI Controller #2(0x1C3B)"},
{0x8086, 0x1C3C, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family IDE-r Controller(0x1C3C)"},
{0x8086, 0x1C3D, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family KT Controller(0x1C3D)"},
+{0x8086, 0x1C3D, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C40, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family LPC Controller(0x1C40)"},
{0x8086, 0x1C41, 0xFFFF, 0xFFFF, "Mobile SFF 6 Series Chipset Family LPC Controller(0x1C41)"},
{0x8086, 0x1C42, 0xFFFF, 0xFFFF, "6 Series/C200 Series Chipset Family LPC Controller(0x1C42)"},
@@ -36611,6 +36958,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x1C4C, 0xFFFF, 0xFFFF, "Q65 Express Chipset LPC Controller(0x1C4C)"},
{0x8086, 0x1C4D, 0xFFFF, 0xFFFF, "QS67 Express Chipset LPC Controller(0x1C4D)"},
{0x8086, 0x1C4E, 0xFFFF, 0xFFFF, "Q67 Express Chipset LPC Controller(0x1C4E)"},
+{0x8086, 0x1C4E, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x1C4F, 0xFFFF, 0xFFFF, "QM67 Express Chipset LPC Controller(0x1C4F)"},
{0x8086, 0x1C4F, 0x1028, 0x04A3, "Precision M4600(0x1028-0x04A3)"},
{0x8086, 0x1C4F, 0x17AA, 0x21CF, "ThinkPad T520(0x17AA-0x21CF)"},
@@ -37233,6 +37581,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x244E, 0x1028, 0x0211, "Optiplex 755(0x1028-0x0211)"},
{0x8086, 0x244E, 0x1028, 0x02DA, "OptiPlex 980(0x1028-0x02DA)"},
{0x8086, 0x244E, 0x1028, 0x04F7, "PowerEdge R320 server(0x1028-0x04F7)"},
+{0x8086, 0x244E, 0x103C, 0x130A, "Z600 Workstation(0x103C-0x130A)"},
{0x8086, 0x244E, 0x103C, 0x2A3B, "Pavilion A1512X(0x103C-0x2A3B)"},
{0x8086, 0x244E, 0x103C, 0x2A6F, "Asus IPIBL-LB Motherboard(0x103C-0x2A6F)"},
{0x8086, 0x244E, 0x103C, 0x31FE, "ProLiant DL140 G3(0x103C-0x31FE)"},
@@ -37248,6 +37597,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x244E, 0x15D9, 0x9680, "X7DBN Motherboard(0x15D9-0x9680)"},
{0x8086, 0x244E, 0x1734, 0x11D6, "B75 [Ivy Bridge] chipset on Esprimo P510 D3171 motherboard(0x1734-0x11D6)"},
{0x8086, 0x244E, 0x1775, 0x11CC, "CC11/CL11(0x1775-0x11CC)"},
+{0x8086, 0x244E, 0x17AA, 0x3070, "ThinkCentre M91p(0x17AA-0x3070)"},
{0x8086, 0x244E, 0x8086, 0x7270, "Server Board S1200BTS(0x8086-0x7270)"},
{0x8086, 0x2450, 0xFFFF, 0xFFFF, "82801E ISA Bridge (LPC)(0x2450)"},
{0x8086, 0x2452, 0xFFFF, 0xFFFF, "82801E USB Controller(0x2452)"},
@@ -40742,6 +41092,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x4538, 0xFFFF, 0xFFFF, "Elkhart Lake PCI-e Root Complex(0x4538)"},
{0x8086, 0x4555, 0xFFFF, 0xFFFF, "Elkhart Lake [UHD Graphics Gen11 16EU](0x4555)"},
{0x8086, 0x4571, 0xFFFF, 0xFFFF, "Elkhart Lake [UHD Graphics Gen11 32EU](0x4571)"},
+{0x8086, 0x4601, 0xFFFF, 0xFFFF, "Alder Lake-U15 Host and DRAM Controller(0x4601)"},
{0x8086, 0x4602, 0xFFFF, 0xFFFF, "Alder Lake Host and DRAM Controller(0x4602)"},
{0x8086, 0x460D, 0xFFFF, 0xFFFF, "12th Gen Core Processor PCI Express x16 Controller #1(0x460D)"},
{0x8086, 0x461D, 0xFFFF, 0xFFFF, "Alder Lake Innovation Platform Framework Processor Participant(0x461D)"},
@@ -40791,6 +41142,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x46B0, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B0)"},
{0x8086, 0x46B1, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B1)"},
{0x8086, 0x46B3, 0xFFFF, 0xFFFF, "Alder Lake-UP3 GT1 [UHD Graphics](0x46B3)"},
+{0x8086, 0x46B3, 0x1025, 0x161D, "N22C6 [Extensa 15 EX215-55](0x1025-0x161D)"},
{0x8086, 0x46B6, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B6)"},
{0x8086, 0x46B8, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46B8)"},
{0x8086, 0x46BA, 0xFFFF, 0xFFFF, "AlderLake-P [Iris Xe Graphics](0x46BA)"},
@@ -40800,6 +41152,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x46D0, 0xFFFF, 0xFFFF, "Alder Lake-N [UHD Graphics](0x46D0)"},
{0x8086, 0x46D1, 0xFFFF, 0xFFFF, "Alder Lake-N [UHD Graphics](0x46D1)"},
{0x8086, 0x46D2, 0xFFFF, 0xFFFF, "Alder Lake-N [UHD Graphics](0x46D2)"},
+{0x8086, 0x46D3, 0xFFFF, 0xFFFF, "Alder Lake-N [Intel Graphics](0x46D3)"},
+{0x8086, 0x46D4, 0xFFFF, 0xFFFF, "Alder Lake-N [Intel Graphics](0x46D4)"},
{0x8086, 0x4905, 0xFFFF, 0xFFFF, "DG1 [Iris Xe MAX Graphics](0x4905)"},
{0x8086, 0x4906, 0xFFFF, 0xFFFF, "DG1 [Iris Xe Pod](0x4906)"},
{0x8086, 0x4907, 0xFFFF, 0xFFFF, "SG1 [Server GPU SG-18M](0x4907)"},
@@ -41030,8 +41384,11 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x56BB, 0xFFFF, 0xFFFF, "DG2 [Intel Graphics](0x56BB)"},
{0x8086, 0x56BC, 0xFFFF, 0xFFFF, "DG2 [Intel Graphics](0x56BC)"},
{0x8086, 0x56BD, 0xFFFF, 0xFFFF, "DG2 [Intel Graphics](0x56BD)"},
+{0x8086, 0x56BE, 0xFFFF, 0xFFFF, "DG2 [Arc Graphics A750E](0x56BE)"},
+{0x8086, 0x56BF, 0xFFFF, 0xFFFF, "DG2 [Arc Graphics A580E](0x56BF)"},
{0x8086, 0x56C0, 0xFFFF, 0xFFFF, "ATS-M [Data Center GPU Flex 170](0x56C0)"},
{0x8086, 0x56C1, 0xFFFF, 0xFFFF, "ATS-M [Data Center GPU Flex 140](0x56C1)"},
+{0x8086, 0x56C2, 0xFFFF, 0xFFFF, "ATS-M [Data Center GPU Flex 170G](0x56C2)"},
{0x8086, 0x5780, 0xFFFF, 0xFFFF, "Thunderbolt 80/120G Bridge [Barlow Ridge Host 80G 2023](0x5780)"},
{0x8086, 0x5781, 0xFFFF, 0xFFFF, "Thunderbolt 80/120G NHI [Barlow Ridge Host 80G 2023](0x5781)"},
{0x8086, 0x5782, 0xFFFF, 0xFFFF, "Thunderbolt 80/120G USB Controller [Barlow Ridge Host 80G 2023](0x5782)"},
@@ -41045,7 +41402,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x579E, 0xFFFF, 0xFFFF, "Ethernet Connection E825-C for SFP(0x579E)"},
{0x8086, 0x57A4, 0xFFFF, 0xFFFF, "Thunderbolt Bridge [Barlow Ridge Hub 40G 2023](0x57A4)"},
{0x8086, 0x57A5, 0xFFFF, 0xFFFF, "Thunderbolt USB Controller [Barlow Ridge Hub 40G 2023](0x57A5)"},
-{0x8086, 0x57B1, 0xFFFF, 0xFFFF, "Ethernet Controller E610 1GBASE T(0x57B1)"},
+{0x8086, 0x57B0, 0xFFFF, 0xFFFF, "Ethernet Controller E610 10GBASE T(0x57B0)"},
+{0x8086, 0x57B1, 0xFFFF, 0xFFFF, "Ethernet Controller E610 2.5GBASE T(0x57B1)"},
{0x8086, 0x57B1, 0x8086, 0x0000, "Ethernet Converged Network Adapter E610(0x8086-0x0000)"},
{0x8086, 0x5845, 0xFFFF, 0xFFFF, "QEMU NVM Express Controller(0x5845)"},
{0x8086, 0x5845, 0x1AF4, 0x1100, "QEMU Virtual Machine(0x1AF4-0x1100)"},
@@ -41062,11 +41420,15 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x590B, 0xFFFF, 0xFFFF, "HD Graphics 610(0x590B)"},
{0x8086, 0x590C, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x590C)"},
{0x8086, 0x590F, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x590F)"},
+{0x8086, 0x590F, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0x590F, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x590F, 0x1462, 0x7A68, "B250 KRAIT GAMING (MS-7A68)(0x1462-0x7A68)"},
{0x8086, 0x590F, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x5910, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x5910)"},
{0x8086, 0x5911, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Gaussian Mixture Model(0x5911)"},
{0x8086, 0x5912, 0xFFFF, 0xFFFF, "HD Graphics 630(0x5912)"},
+{0x8086, 0x5912, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0x5912, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0x5912, 0x1462, 0x7A72, "H270 PC MATE(0x1462-0x7A72)"},
{0x8086, 0x5914, 0xFFFF, 0xFFFF, "Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers(0x5914)"},
{0x8086, 0x5914, 0x17AA, 0x225D, "ThinkPad T480(0x17AA-0x225D)"},
@@ -41446,11 +41808,11 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x7AB4, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #13(0x7AB4)"},
{0x8086, 0x7AB8, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #1(0x7AB8)"},
{0x8086, 0x7AB9, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #2(0x7AB9)"},
-{0x8086, 0x7ABA, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #?-?-?-?-(0x7ABA)"},
+{0x8086, 0x7ABA, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #3(0x7ABA)"},
{0x8086, 0x7ABC, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #5(0x7ABC)"},
{0x8086, 0x7ABD, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #6(0x7ABD)"},
{0x8086, 0x7ABF, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #8(0x7ABF)"},
-{0x8086, 0x7AC4, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #?-?-?-?-(0x7AC4)"},
+{0x8086, 0x7AC4, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #21(0x7AC4)"},
{0x8086, 0x7AC8, 0xFFFF, 0xFFFF, "Alder Lake-S PCH PCI Express Root Port #25(0x7AC8)"},
{0x8086, 0x7ACC, 0xFFFF, 0xFFFF, "Alder Lake-S PCH Serial IO I2C Controller #0(0x7ACC)"},
{0x8086, 0x7ACD, 0xFFFF, 0xFFFF, "Alder Lake-S PCH Serial IO I2C Controller #1(0x7ACD)"},
@@ -41469,11 +41831,12 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x7D0B, 0xFFFF, 0xFFFF, "Volume Management Device NVMe RAID Controller Intel Corporation(0x7D0B)"},
{0x8086, 0x7D1D, 0xFFFF, 0xFFFF, "Meteor Lake NPU(0x7D1D)"},
{0x8086, 0x7D40, 0xFFFF, 0xFFFF, "Meteor Lake-M [Intel Graphics](0x7D40)"},
+{0x8086, 0x7D41, 0xFFFF, 0xFFFF, "Arrow Lake-U [Intel Graphics](0x7D41)"},
{0x8086, 0x7D45, 0xFFFF, 0xFFFF, "Meteor Lake-P [Intel Graphics](0x7D45)"},
{0x8086, 0x7D51, 0xFFFF, 0xFFFF, "Arrow Lake-P [Intel Graphics](0x7D51)"},
{0x8086, 0x7D55, 0xFFFF, 0xFFFF, "Meteor Lake-P [Intel Arc Graphics](0x7D55)"},
{0x8086, 0x7D60, 0xFFFF, 0xFFFF, "Meteor Lake-M [Intel Graphics](0x7D60)"},
-{0x8086, 0x7D67, 0xFFFF, 0xFFFF, "Arrow Lake [Intel Graphics](0x7D67)"},
+{0x8086, 0x7D67, 0xFFFF, 0xFFFF, "Arrow Lake-U [Intel Graphics](0x7D67)"},
{0x8086, 0x7DD1, 0xFFFF, 0xFFFF, "Arrow Lake-P [Intel Graphics](0x7DD1)"},
{0x8086, 0x7DD5, 0xFFFF, 0xFFFF, "Meteor Lake-P [Intel Graphics](0x7DD5)"},
{0x8086, 0x7E01, 0xFFFF, 0xFFFF, "Meteor Lake-P LPC/eSPI Controller(0x7E01)"},
@@ -41485,6 +41848,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0x7E27, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO SPI Controller #0(0x7E27)"},
{0x8086, 0x7E28, 0xFFFF, 0xFFFF, "Meteor Lake-P HD Audio Controller(0x7E28)"},
{0x8086, 0x7E30, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO SPI Controller #1(0x7E30)"},
+{0x8086, 0x7E40, 0xFFFF, 0xFFFF, "Meteor Lake PCH CNVi WiFi(0x7E40)"},
+{0x8086, 0x7E40, 0x8086, 0x0094, "Wi-Fi 6E AX211 160MHz(0x8086-0x0094)"},
{0x8086, 0x7E46, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO SPI Controller #2(0x7E46)"},
{0x8086, 0x7E50, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO I2C Controller #4(0x7E50)"},
{0x8086, 0x7E51, 0xFFFF, 0xFFFF, "Meteor Lake-P Serial IO I2C Controller #5(0x7E51)"},
@@ -42225,6 +42590,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA0F0, 0x8086, 0x0244, "Wi-Fi 6 AX101NGW(0x8086-0x0244)"},
{0x8086, 0xA0FC, 0xFFFF, 0xFFFF, "Tiger Lake-LP Integrated Sensor Hub(0xA0FC)"},
{0x8086, 0xA102, 0xFFFF, 0xFFFF, "Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode](0xA102)"},
+{0x8086, 0xA102, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA102, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA103, 0xFFFF, 0xFFFF, "HM170/QM170 Chipset SATA Controller [AHCI Mode](0xA103)"},
{0x8086, 0xA103, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA103, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
@@ -42237,11 +42604,14 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA112, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #3(0xA112)"},
{0x8086, 0xA113, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #4(0xA113)"},
{0x8086, 0xA114, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #5(0xA114)"},
+{0x8086, 0xA114, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
{0x8086, 0xA115, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #6(0xA115)"},
{0x8086, 0xA116, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #7(0xA116)"},
{0x8086, 0xA117, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #8(0xA117)"},
{0x8086, 0xA118, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #9(0xA118)"},
+{0x8086, 0xA118, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
{0x8086, 0xA119, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #10(0xA119)"},
+{0x8086, 0xA119, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
{0x8086, 0xA11A, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #11(0xA11A)"},
{0x8086, 0xA11B, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #12(0xA11B)"},
{0x8086, 0xA11C, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family PCI Express Root Port #13(0xA11C)"},
@@ -42252,10 +42622,14 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA121, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Power Management Controller(0xA121)"},
{0x8086, 0xA121, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA121, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA121, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA121, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA122, 0xFFFF, 0xFFFF, "Sunrise Point-H cAVS(0xA122)"},
{0x8086, 0xA123, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family SMBus(0xA123)"},
{0x8086, 0xA123, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA123, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA123, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA123, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA124, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family SPI Controller(0xA124)"},
{0x8086, 0xA125, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Gigabit Ethernet Controller(0xA125)"},
{0x8086, 0xA126, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Trace Hub(0xA126)"},
@@ -42266,15 +42640,20 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA12F, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller(0xA12F)"},
{0x8086, 0xA12F, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA12F, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA12F, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA12F, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA130, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family USB Device Controller (OTG)(0xA130)"},
{0x8086, 0xA131, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Thermal Subsystem(0xA131)"},
{0x8086, 0xA131, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA131, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA131, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA133, 0xFFFF, 0xFFFF, "Sunrise Point-H Northpeak ACPI Function(0xA133)"},
{0x8086, 0xA135, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family Integrated Sensor Hub(0xA135)"},
{0x8086, 0xA13A, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family MEI Controller #1(0xA13A)"},
{0x8086, 0xA13A, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA13A, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA13A, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA13A, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA13B, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family MEI Controller #2(0xA13B)"},
{0x8086, 0xA13C, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family IDE Redirection(0xA13C)"},
{0x8086, 0xA13D, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family KT Redirection(0xA13D)"},
@@ -42283,6 +42662,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA141, 0xFFFF, 0xFFFF, "Sunrise Point-H LPC Controller(0xA141)"},
{0x8086, 0xA142, 0xFFFF, 0xFFFF, "Sunrise Point-H LPC Controller(0xA142)"},
{0x8086, 0xA143, 0xFFFF, 0xFFFF, "H110 Chipset LPC/eSPI Controller(0xA143)"},
+{0x8086, 0xA143, 0x1043, 0x8694, "H110I-PLUS Motherboard(0x1043-0x8694)"},
+{0x8086, 0xA143, 0x1462, 0x7994, "H110M ECO/GAMING(0x1462-0x7994)"},
{0x8086, 0xA144, 0xFFFF, 0xFFFF, "H170 Chipset LPC/eSPI Controller(0xA144)"},
{0x8086, 0xA145, 0xFFFF, 0xFFFF, "Z170 Chipset LPC/eSPI Controller(0xA145)"},
{0x8086, 0xA146, 0xFFFF, 0xFFFF, "Q170 Chipset LPC/eSPI Controller(0xA146)"},
@@ -42328,6 +42709,8 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA170, 0xFFFF, 0xFFFF, "100 Series/C230 Series Chipset Family HD Audio Controller(0xA170)"},
{0x8086, 0xA170, 0x1028, 0x06E4, "XPS 15 9550(0x1028-0x06E4)"},
{0x8086, 0xA170, 0x103C, 0x825B, "OMEN-17-w001nv(0x103C-0x825B)"},
+{0x8086, 0xA170, 0x1043, 0x86C7, "H110I-PLUS Motherboard(0x1043-0x86C7)"},
+{0x8086, 0xA170, 0x1462, 0xF994, "H110M ECO/GAMING(0x1462-0xF994)"},
{0x8086, 0xA171, 0xFFFF, 0xFFFF, "CM238 HD Audio Controller(0xA171)"},
{0x8086, 0xA182, 0xFFFF, 0xFFFF, "C620 Series Chipset Family SATA Controller [AHCI mode](0xA182)"},
{0x8086, 0xA186, 0xFFFF, 0xFFFF, "C620 Series Chipset Family SATA Controller [RAID mode](0xA186)"},
@@ -42469,6 +42852,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA304, 0x1028, 0x0869, "Vostro 3470(0x1028-0x0869)"},
{0x8086, 0xA305, 0xFFFF, 0xFFFF, "Z390 Chipset LPC/eSPI Controller(0xA305)"},
{0x8086, 0xA306, 0xFFFF, 0xFFFF, "Q370 Chipset LPC/eSPI Controller(0xA306)"},
+{0x8086, 0xA308, 0xFFFF, 0xFFFF, "300 Series Chipset Family LPC Controller(0xA308)"},
{0x8086, 0xA309, 0xFFFF, 0xFFFF, "Cannon Point-LP LPC Controller(0xA309)"},
{0x8086, 0xA30C, 0xFFFF, 0xFFFF, "QM370 Chipset LPC/eSPI Controller(0xA30C)"},
{0x8086, 0xA30D, 0xFFFF, 0xFFFF, "HM470 Chipset LPC/eSPI Controller(0xA30D)"},
@@ -42539,10 +42923,12 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xA3EB, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #21(0xA3EB)"},
{0x8086, 0xA3F0, 0xFFFF, 0xFFFF, "Comet Lake PCH-V cAVS(0xA3F0)"},
{0x8086, 0xA620, 0xFFFF, 0xFFFF, "6400/6402 Advanced Memory Buffer (AMB)(0xA620)"},
+{0x8086, 0xA703, 0xFFFF, 0xFFFF, "Raptor Lake-S Host Bridge/DRAM Controller(0xA703)"},
{0x8086, 0xA706, 0xFFFF, 0xFFFF, "Raptor Lake-P 6p+8e cores Host Bridge/DRAM Controller(0xA706)"},
{0x8086, 0xA706, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA707, 0xFFFF, 0xFFFF, "Raptor Lake-P/U 4p+8e cores Host Bridge/DRAM Controller(0xA707)"},
{0x8086, 0xA708, 0xFFFF, 0xFFFF, "Raptor Lake-P/U 2p+8e cores Host Bridge/DRAM Controller(0xA708)"},
+{0x8086, 0xA70D, 0xFFFF, 0xFFFF, "Raptor Lake PCI Express 5.0 Graphics Port (PEG010)(0xA70D)"},
{0x8086, 0xA71D, 0xFFFF, 0xFFFF, "Raptor Lake Dynamic Platform and Thermal Framework Processor Participant(0xA71D)"},
{0x8086, 0xA71D, 0x1028, 0x0C06, "Precision 3580(0x1028-0x0C06)"},
{0x8086, 0xA71E, 0xFFFF, 0xFFFF, "Raptor Lake-P Thunderbolt 4 USB Controller(0xA71E)"},
@@ -42608,6 +42994,7 @@ static pci_id_t const pci_vid_8086[] = {
{0x8086, 0xABC0, 0xFFFF, 0xFFFF, "Omni-Path Fabric Switch Silicon 100 Series(0xABC0)"},
{0x8086, 0xAD0B, 0xFFFF, 0xFFFF, "Volume Management Device NVMe RAID Controller Intel Corporation(0xAD0B)"},
{0x8086, 0xAD1D, 0xFFFF, 0xFFFF, "Arrow Lake NPU(0xAD1D)"},
+{0x8086, 0xB03E, 0xFFFF, 0xFFFF, "Panther Lake NPU(0xB03E)"},
{0x8086, 0xB152, 0xFFFF, 0xFFFF, "21152 PCI-to-PCI Bridge(0xB152)"},
{0x8086, 0xB152, 0x8086, 0xB152, "21152 PCI-to-PCI Bridge(0x8086-0xB152)"},
{0x8086, 0xB154, 0xFFFF, 0xFFFF, "21154 PCI-to-PCI Bridge(0xB154)"},
@@ -42701,9 +43088,10 @@ static pci_id_t const pci_vid_8088[] = {
{0x8088, 0x0108, 0x8088, 0x0420, "Qual-Port Ethernet Network Adaptor SF400HT-S(0x8088-0x0420)"},
{0x8088, 0x0109, 0xFFFF, 0xFFFF, "WX1860-LC Gigabit Ethernet Controller(0x0109)"},
{0x8088, 0x010A, 0xFFFF, 0xFFFF, "WX1860A1 Gigabit Ethernet Controller(0x010A)"},
-{0x8088, 0x010A, 0x4C52, 0x2023, "LRES2034PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2023)"},
{0x8088, 0x010A, 0x4C52, 0x2026, "LRES2026PF Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2026)"},
+{0x8088, 0x010A, 0x4C52, 0x2034, "LRES2034PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2034)"},
{0x8088, 0x010B, 0xFFFF, 0xFFFF, "WX1860AL1 Gigabit Ethernet Controller(0x010B)"},
+{0x8088, 0x010B, 0x4C52, 0x2215, "LRES2215PT Single-port 1Gb Ethernet Network Adapter(0x4C52-0x2215)"},
{0x8088, 0x010B, 0x8088, 0x0102, "Single-Port Ethernet Network Adaptor SF100HT(0x8088-0x0102)"},
{0x8088, 0x010B, 0x8088, 0x4102, "Single-Port Ethernet Network Adaptor SF100HT (WOL)(0x8088-0x4102)"},
{0x8088, 0x010B, 0x8088, 0x8102, "Single-Port Ethernet Network Adaptor SF100HT (NCSI)(0x8088-0x8102)"},
@@ -42716,7 +43104,7 @@ static pci_id_t const pci_vid_8088[] = {
{0x8088, 0x011A, 0xFFFF, 0xFFFF, "WX1860A1 Gigabit Ethernet Controller Virtual Function(0x011A)"},
{0x8088, 0x011B, 0xFFFF, 0xFFFF, "WX1860AL1 Gigabit Ethernet Controller Virtual Function(0x011B)"},
{0x8088, 0x1000, 0xFFFF, 0xFFFF, "Ethernet Controller RP1000 Virtual Function for 10GbE SFP+(0x1000)"},
-{0x8088, 0x1001, 0xFFFF, 0xFFFF, "Ethernet Controller RP1000 for 10GbE SFP+(0x1001)"},
+{0x8088, 0x1001, 0xFFFF, 0xFFFF, "Ethernet Controller SP1000A for 10GbE SFP+(0x1001)"},
{0x8088, 0x1001, 0x1BD4, 0x0084, "Ethernet Controller SP1000A for 10GbE SFP+(lldp)(0x1BD4-0x0084)"},
{0x8088, 0x1001, 0x1BD4, 0x0085, "Ethernet Controller SP1000A for 10GBASE-T(0x1BD4-0x0085)"},
{0x8088, 0x1001, 0x4C52, 0x1002, "LRES1002PF Dual-port 10Gb Ethernet Server Adapter(0x4C52-0x1002)"},
@@ -42726,7 +43114,7 @@ static pci_id_t const pci_vid_8088[] = {
{0x8088, 0x1001, 0x8088, 0x0300, "Ethernet Network Adaptor RP1000-A03 for 10GbE SFP+(0x8088-0x0300)"},
{0x8088, 0x1001, 0x8088, 0x0400, "Ethernet Network Adaptor RP1000-A04 for 10GbE SFP+(0x8088-0x0400)"},
{0x8088, 0x2000, 0xFFFF, 0xFFFF, "Ethernet Controller RP2000 Virtual Function for 10GbE SFP+(0x2000)"},
-{0x8088, 0x2001, 0xFFFF, 0xFFFF, "Ethernet Controller RP2000 for 10GbE SFP+(0x2001)"},
+{0x8088, 0x2001, 0xFFFF, 0xFFFF, "Ethernet Controller WX1820AL for 10GbE SFP+(0x2001)"},
{0x8088, 0x2001, 0x8088, 0x2000, "Ethernet Network Adaptor RP2000 for 10GbE SFP+(0x8088-0x2000)"},
{0x8088, 0x2001, 0x8088, 0x2300, "Ethernet Network Adaptor RP2000-A03 for 10GbE SFP+(0x8088-0x2300)"},
{0x8088, 0x2001, 0x8088, 0x2400, "Ethernet Network Adaptor RP2000-A04 for 10GbE SFP+(0x8088-0x2400)"},
@@ -42774,6 +43162,7 @@ static pci_id_t const pci_vid_8820[] = {
static pci_id_t const pci_vid_8848[] = {
{0x8848, 0xFFFF, 0xFFFF, 0xFFFF, "MUCSE(0x8848)"},
{0x8848, 0x1000, 0xFFFF, 0xFFFF, "Ethernet Controller N10 Series for 10GbE or 40GbE (Dual-port)(0x1000)"},
+{0x8848, 0x1000, 0x4C52, 0x3032, "LRES3032PF Dual-port 10Gb Ethernet Server Adapter for OCP(0x4C52-0x3032)"},
{0x8848, 0x1000, 0x8848, 0x8410, "Ethernet Network Adapter N10G-X2-DC for 10GbE SFP+ 2-port(0x8848-0x8410)"},
{0x8848, 0x1001, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series for 1GbE (Dual-port)(0x1001)"},
{0x8848, 0x1003, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series for 10GbE (Single-port)(0x1003)"},
@@ -42791,10 +43180,13 @@ static pci_id_t const pci_vid_8848[] = {
{0x8848, 0x1081, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series Virtual Function(0x1081)"},
{0x8848, 0x1083, 0xFFFF, 0xFFFF, "Ethernet Controller N400 Series Virtual Function(0x1083)"},
{0x8848, 0x8308, 0xFFFF, 0xFFFF, "Ethernet Controller N500 Series for 1GbE (Quad-port, Copper RJ45)(0x8308)"},
+{0x8848, 0x8308, 0x193D, 0x1088, "NIC-ETH3M0T-3S-4P(0x193D-0x1088)"},
{0x8848, 0x8308, 0x4C52, 0x1048, "LRES1048PT Quad-port 1Gb Ethernet Network Adapter(0x4C52-0x1048)"},
+{0x8848, 0x8308, 0x4C52, 0x3044, "LRES3044PT Quad-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3044)"},
{0x8848, 0x8309, 0xFFFF, 0xFFFF, "Ethernet Controller N500 Series Virtual Function(0x8309)"},
{0x8848, 0x8318, 0xFFFF, 0xFFFF, "Ethernet Controller N500 Series for 1GbE (Dual-port, Copper RJ45)(0x8318)"},
{0x8848, 0x8318, 0x4C52, 0x1049, "LRES1049PT Dual-port 1Gb Ethernet Network Adapter(0x4C52-0x1049)"},
+{0x8848, 0x8318, 0x4C52, 0x3043, "LRES3043PT Dual-port 1Gb Ethernet Server Adapter for OCP(0x4C52-0x3043)"},
}; /* pci_vid_8848[] */
static pci_id_t const pci_vid_8866[] = {
@@ -42803,6 +43195,7 @@ static pci_id_t const pci_vid_8866[] = {
static pci_id_t const pci_vid_8888[] = {
{0x8888, 0xFFFF, 0xFFFF, 0xFFFF, "Silicon Magic(0x8888)"},
+{0x8888, 0x8504, 0xFFFF, 0xFFFF, "AVMatrix VC42(0x8504)"},
}; /* pci_vid_8888[] */
static pci_id_t const pci_vid_8912[] = {
@@ -43420,6 +43813,9 @@ static pci_id_t const pci_vid_9D32[] = {
{0x9D32, 0x2001, 0xFFFF, 0xFFFF, "STAR2000E NVMe SSD(0x2001)"},
{0x9D32, 0x2002, 0xFFFF, 0xFFFF, "STAR2000C NVMe SSD(0x2002)"},
{0x9D32, 0x2003, 0xFFFF, 0xFFFF, "STAR2000L NVMe SSD(0x2003)"},
+{0x9D32, 0x2004, 0xFFFF, 0xFFFF, "EAST 2000K SSD(0x2004)"},
+{0x9D32, 0x2008, 0xFFFF, 0xFFFF, "STAR2008 PCIE NVMe SSD Controller(0x2008)"},
+{0x9D32, 0x2010, 0xFFFF, 0xFFFF, "STAR2010 PCIE NVMe Secure SSD Controller(0x2010)"},
{0x9D32, 0xBB5B, 0xFFFF, 0xFFFF, "Asgard AN3+ NVMe SSD(0xBB5B)"},
{0x9D32, 0xFC22, 0xFFFF, 0xFFFF, "Asgard AN3+ NVMe SSD(0xFC22)"},
}; /* pci_vid_9D32[] */
@@ -43638,6 +44034,7 @@ static pci_id_t const pci_vid_C0A9[] = {
{0xC0A9, 0x5412, 0xFFFF, 0xFFFF, "P5 NVMe PCIe SSD[SlashP5](0x5412)"},
{0xC0A9, 0x5415, 0xFFFF, 0xFFFF, "T500 NVMe PCIe SSD(0x5415)"},
{0xC0A9, 0x5419, 0xFFFF, 0xFFFF, "T700 NVMe PCIe SSD(0x5419)"},
+{0xC0A9, 0x5421, 0xFFFF, 0xFFFF, "P3 Plus NVMe PCIe SSD (DRAM-less)(0x5421)"},
}; /* pci_vid_C0A9[] */
static pci_id_t const pci_vid_C0DE[] = {
@@ -44042,6 +44439,14 @@ static pci_id_t const pci_vid_F111[] = {
{0xF111, 0xFFFF, 0xFFFF, 0xFFFF, "Framework Computer Inc.(0xF111)"},
}; /* pci_vid_F111[] */
+static pci_id_t const pci_vid_F117[] = {
+{0xF117, 0xFFFF, 0xFFFF, 0xFFFF, "Cerio(0xF117)"},
+{0xF117, 0x1000, 0xFFFF, 0xFFFF, "Emulated PCIe Switch(0x1000)"},
+{0xF117, 0x1010, 0xFFFF, 0xFFFF, "Placeholder Device(0x1010)"},
+{0xF117, 0x1020, 0xFFFF, 0xFFFF, "Pseudo-Device(0x1020)"},
+{0xF117, 0x1030, 0xFFFF, 0xFFFF, "Test Device(0x1030)"},
+}; /* pci_vid_F117[] */
+
static pci_id_t const pci_vid_F15E[] = {
{0xF15E, 0xFFFF, 0xFFFF, 0xFFFF, "SiFive, Inc.(0xF15E)"},
{0xF15E, 0x0000, 0xFFFF, 0xFFFF, "FU740-C000 RISC-V SoC PCI Express x8 to AXI4 Bridge(0x0000)"},
@@ -44194,9 +44599,9 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x0E55, 1, pci_vid_0E55 },
{0x0EAC, 2, pci_vid_0EAC },
{0x0F62, 1, pci_vid_0F62 },
-{0x1000, 797, pci_vid_1000 },
+{0x1000, 798, pci_vid_1000 },
{0x1001, 10, pci_vid_1001 },
-{0x1002, 3246, pci_vid_1002 },
+{0x1002, 3249, pci_vid_1002 },
{0x1003, 2, pci_vid_1003 },
{0x1004, 34, pci_vid_1004 },
{0x1005, 8, pci_vid_1005 },
@@ -44226,7 +44631,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x101F, 1, pci_vid_101F },
{0x1020, 1, pci_vid_1020 },
{0x1021, 1, pci_vid_1021 },
-{0x1022, 688, pci_vid_1022 },
+{0x1022, 689, pci_vid_1022 },
{0x1023, 56, pci_vid_1023 },
{0x1024, 4, pci_vid_1024 },
{0x1025, 59, pci_vid_1025 },
@@ -44368,7 +44773,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x10B2, 1, pci_vid_10B2 },
{0x10B3, 3, pci_vid_10B3 },
{0x10B4, 3, pci_vid_10B4 },
-{0x10B5, 259, pci_vid_10B5 },
+{0x10B5, 271, pci_vid_10B5 },
{0x10B6, 25, pci_vid_10B6 },
{0x10B7, 132, pci_vid_10B7 },
{0x10B8, 21, pci_vid_10B8 },
@@ -44408,7 +44813,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x10DB, 1, pci_vid_10DB },
{0x10DC, 6, pci_vid_10DC },
{0x10DD, 3, pci_vid_10DD },
-{0x10DE, 3259, pci_vid_10DE },
+{0x10DE, 3316, pci_vid_10DE },
{0x10DF, 127, pci_vid_10DF },
{0x10E0, 7, pci_vid_10E0 },
{0x10E1, 5, pci_vid_10E1 },
@@ -44422,7 +44827,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x10E9, 1, pci_vid_10E9 },
{0x10EA, 10, pci_vid_10EA },
{0x10EB, 3, pci_vid_10EB },
-{0x10EC, 243, pci_vid_10EC },
+{0x10EC, 246, pci_vid_10EC },
{0x10ED, 2, pci_vid_10ED },
{0x10EE, 47, pci_vid_10EE },
{0x10EF, 2, pci_vid_10EF },
@@ -44667,7 +45072,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x11E0, 1, pci_vid_11E0 },
{0x11E1, 1, pci_vid_11E1 },
{0x11E2, 1, pci_vid_11E2 },
-{0x11E3, 5, pci_vid_11E3 },
+{0x11E3, 37, pci_vid_11E3 },
{0x11E4, 1, pci_vid_11E4 },
{0x11E5, 1, pci_vid_11E5 },
{0x11E6, 1, pci_vid_11E6 },
@@ -44717,7 +45122,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1214, 1, pci_vid_1214 },
{0x1215, 1, pci_vid_1215 },
{0x1216, 1, pci_vid_1216 },
-{0x1217, 58, pci_vid_1217 },
+{0x1217, 59, pci_vid_1217 },
{0x1218, 1, pci_vid_1218 },
{0x1219, 1, pci_vid_1219 },
{0x121A, 45, pci_vid_121A },
@@ -44802,7 +45207,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x126C, 3, pci_vid_126C },
{0x126D, 1, pci_vid_126D },
{0x126E, 1, pci_vid_126E },
-{0x126F, 19, pci_vid_126F },
+{0x126F, 20, pci_vid_126F },
{0x1270, 1, pci_vid_1270 },
{0x1271, 1, pci_vid_1271 },
{0x1272, 1, pci_vid_1272 },
@@ -44907,7 +45312,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x12D5, 3, pci_vid_12D5 },
{0x12D6, 1, pci_vid_12D6 },
{0x12D7, 1, pci_vid_12D7 },
-{0x12D8, 27, pci_vid_12D8 },
+{0x12D8, 28, pci_vid_12D8 },
{0x12D9, 7, pci_vid_12D9 },
{0x12DA, 1, pci_vid_12DA },
{0x12DB, 1, pci_vid_12DB },
@@ -45006,7 +45411,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1341, 1, pci_vid_1341 },
{0x1342, 1, pci_vid_1342 },
{0x1343, 1, pci_vid_1343 },
-{0x1344, 89, pci_vid_1344 },
+{0x1344, 137, pci_vid_1344 },
{0x1345, 1, pci_vid_1345 },
{0x1347, 1, pci_vid_1347 },
{0x1349, 1, pci_vid_1349 },
@@ -45261,7 +45666,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x144A, 15, pci_vid_144A },
{0x144B, 1, pci_vid_144B },
{0x144C, 1, pci_vid_144C },
-{0x144D, 164, pci_vid_144D },
+{0x144D, 165, pci_vid_144D },
{0x144E, 1, pci_vid_144E },
{0x144F, 1, pci_vid_144F },
{0x1450, 1, pci_vid_1450 },
@@ -45409,7 +45814,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x14E1, 1, pci_vid_14E1 },
{0x14E2, 1, pci_vid_14E2 },
{0x14E3, 1, pci_vid_14E3 },
-{0x14E4, 858, pci_vid_14E4 },
+{0x14E4, 860, pci_vid_14E4 },
{0x14E5, 1, pci_vid_14E5 },
{0x14E6, 1, pci_vid_14E6 },
{0x14E7, 1, pci_vid_14E7 },
@@ -45503,7 +45908,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x153F, 2, pci_vid_153F },
{0x1540, 1, pci_vid_1540 },
{0x1541, 1, pci_vid_1541 },
-{0x1542, 12, pci_vid_1542 },
+{0x1542, 13, pci_vid_1542 },
{0x1543, 3, pci_vid_1543 },
{0x1544, 1, pci_vid_1544 },
{0x1545, 1, pci_vid_1545 },
@@ -45613,11 +46018,11 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x15B0, 1, pci_vid_15B0 },
{0x15B1, 1, pci_vid_15B1 },
{0x15B2, 1, pci_vid_15B2 },
-{0x15B3, 255, pci_vid_15B3 },
+{0x15B3, 267, pci_vid_15B3 },
{0x15B4, 1, pci_vid_15B4 },
{0x15B5, 1, pci_vid_15B5 },
{0x15B6, 17, pci_vid_15B6 },
-{0x15B7, 31, pci_vid_15B7 },
+{0x15B7, 33, pci_vid_15B7 },
{0x15B8, 11, pci_vid_15B8 },
{0x15B9, 1, pci_vid_15B9 },
{0x15BA, 1, pci_vid_15BA },
@@ -45907,7 +46312,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x196A, 4, pci_vid_196A },
{0x196D, 1, pci_vid_196D },
{0x196E, 1, pci_vid_196E },
-{0x1971, 3, pci_vid_1971 },
+{0x1971, 5, pci_vid_1971 },
{0x1974, 7, pci_vid_1974 },
{0x1976, 1, pci_vid_1976 },
{0x1977, 1, pci_vid_1977 },
@@ -46017,9 +46422,10 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1B3E, 4, pci_vid_1B3E },
{0x1B40, 1, pci_vid_1B40 },
{0x1B47, 3, pci_vid_1B47 },
-{0x1B4B, 51, pci_vid_1B4B },
+{0x1B4B, 52, pci_vid_1B4B },
{0x1B4C, 1, pci_vid_1B4C },
{0x1B55, 7, pci_vid_1B55 },
+{0x1B61, 1, pci_vid_1B61 },
{0x1B66, 2, pci_vid_1B66 },
{0x1B6F, 5, pci_vid_1B6F },
{0x1B73, 6, pci_vid_1B73 },
@@ -46041,7 +46447,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1BCF, 2, pci_vid_1BCF },
{0x1BD0, 18, pci_vid_1BD0 },
{0x1BD4, 12, pci_vid_1BD4 },
-{0x1BEE, 3, pci_vid_1BEE },
+{0x1BEE, 18, pci_vid_1BEE },
{0x1BEF, 2, pci_vid_1BEF },
{0x1BF4, 3, pci_vid_1BF4 },
{0x1BF5, 2, pci_vid_1BF5 },
@@ -46059,8 +46465,8 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1C3B, 3, pci_vid_1C3B },
{0x1C44, 3, pci_vid_1C44 },
{0x1C58, 7, pci_vid_1C58 },
-{0x1C5C, 44, pci_vid_1C5C },
-{0x1C5F, 106, pci_vid_1C5F },
+{0x1C5C, 45, pci_vid_1C5C },
+{0x1C5F, 114, pci_vid_1C5F },
{0x1C63, 2, pci_vid_1C63 },
{0x1C7E, 2, pci_vid_1C7E },
{0x1C7F, 2, pci_vid_1C7F },
@@ -46071,7 +46477,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1CB5, 2, pci_vid_1CB5 },
{0x1CB8, 1, pci_vid_1CB8 },
{0x1CC1, 23, pci_vid_1CC1 },
-{0x1CC4, 48, pci_vid_1CC4 },
+{0x1CC4, 52, pci_vid_1CC4 },
{0x1CC5, 3, pci_vid_1CC5 },
{0x1CC7, 3, pci_vid_1CC7 },
{0x1CCF, 2, pci_vid_1CCF },
@@ -46103,7 +46509,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1D62, 1, pci_vid_1D62 },
{0x1D65, 2, pci_vid_1D65 },
{0x1D69, 3, pci_vid_1D69 },
-{0x1D6A, 21, pci_vid_1D6A },
+{0x1D6A, 25, pci_vid_1D6A },
{0x1D6C, 42, pci_vid_1D6C },
{0x1D72, 1, pci_vid_1D72 },
{0x1D78, 62, pci_vid_1D78 },
@@ -46145,29 +46551,29 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1DEE, 4, pci_vid_1DEE },
{0x1DEF, 27, pci_vid_1DEF },
{0x1DF3, 29, pci_vid_1DF3 },
-{0x1DF5, 2, pci_vid_1DF5 },
+{0x1DF5, 3, pci_vid_1DF5 },
{0x1DF7, 4, pci_vid_1DF7 },
{0x1DF8, 9, pci_vid_1DF8 },
{0x1DFC, 2, pci_vid_1DFC },
{0x1E0D, 1, pci_vid_1E0D },
-{0x1E0F, 101, pci_vid_1E0F },
+{0x1E0F, 102, pci_vid_1E0F },
{0x1E17, 1, pci_vid_1E17 },
{0x1E18, 1, pci_vid_1E18 },
{0x1E24, 8, pci_vid_1E24 },
{0x1E26, 1, pci_vid_1E26 },
-{0x1E36, 16, pci_vid_1E36 },
+{0x1E36, 17, pci_vid_1E36 },
{0x1E38, 2, pci_vid_1E38 },
{0x1E39, 1, pci_vid_1E39 },
{0x1E3A, 2, pci_vid_1E3A },
-{0x1E3B, 94, pci_vid_1E3B },
+{0x1E3B, 110, pci_vid_1E3B },
{0x1E3D, 1, pci_vid_1E3D },
{0x1E43, 4, pci_vid_1E43 },
{0x1E44, 1, pci_vid_1E44 },
-{0x1E49, 9, pci_vid_1E49 },
+{0x1E49, 11, pci_vid_1E49 },
{0x1E4B, 9, pci_vid_1E4B },
{0x1E4C, 3, pci_vid_1E4C },
{0x1E50, 1, pci_vid_1E50 },
-{0x1E52, 4, pci_vid_1E52 },
+{0x1E52, 9, pci_vid_1E52 },
{0x1E57, 3, pci_vid_1E57 },
{0x1E59, 2, pci_vid_1E59 },
{0x1E5D, 3, pci_vid_1E5D },
@@ -46188,7 +46594,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1E95, 13, pci_vid_1E95 },
{0x1E96, 1, pci_vid_1E96 },
{0x1E9F, 1, pci_vid_1E9F },
-{0x1EA0, 4, pci_vid_1EA0 },
+{0x1EA0, 5, pci_vid_1EA0 },
{0x1EA7, 3, pci_vid_1EA7 },
{0x1EAB, 3, pci_vid_1EAB },
{0x1EAC, 3, pci_vid_1EAC },
@@ -46202,9 +46608,9 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1EC9, 1, pci_vid_1EC9 },
{0x1ECA, 2, pci_vid_1ECA },
{0x1ED0, 1, pci_vid_1ED0 },
-{0x1ED2, 2, pci_vid_1ED2 },
+{0x1ED2, 6, pci_vid_1ED2 },
{0x1ED3, 1, pci_vid_1ED3 },
-{0x1ED5, 26, pci_vid_1ED5 },
+{0x1ED5, 27, pci_vid_1ED5 },
{0x1ED8, 3, pci_vid_1ED8 },
{0x1ED9, 1, pci_vid_1ED9 },
{0x1EE1, 6, pci_vid_1EE1 },
@@ -46244,6 +46650,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x1FDE, 3, pci_vid_1FDE },
{0x1FE0, 4, pci_vid_1FE0 },
{0x1FE4, 6, pci_vid_1FE4 },
+{0x1FE9, 1, pci_vid_1FE9 },
{0x1FF4, 4, pci_vid_1FF4 },
{0x1FF8, 3, pci_vid_1FF8 },
{0x1FF9, 1, pci_vid_1FF9 },
@@ -46251,6 +46658,8 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x2001, 1, pci_vid_2001 },
{0x2003, 2, pci_vid_2003 },
{0x2004, 1, pci_vid_2004 },
+{0x202C, 2, pci_vid_202C },
+{0x2036, 3, pci_vid_2036 },
{0x2046, 1, pci_vid_2046 },
{0x2048, 1, pci_vid_2048 },
{0x20F4, 1, pci_vid_20F4 },
@@ -46258,12 +46667,12 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x21B4, 1, pci_vid_21B4 },
{0x21C3, 1, pci_vid_21C3 },
{0x22B8, 2, pci_vid_22B8 },
-{0x22DB, 1, pci_vid_22DB },
+{0x22DB, 2, pci_vid_22DB },
{0x2304, 1, pci_vid_2304 },
{0x2321, 1, pci_vid_2321 },
{0x2348, 2, pci_vid_2348 },
{0x256C, 2, pci_vid_256C },
-{0x2646, 25, pci_vid_2646 },
+{0x2646, 27, pci_vid_2646 },
{0x270B, 1, pci_vid_270B },
{0x270F, 1, pci_vid_270F },
{0x2711, 1, pci_vid_2711 },
@@ -46321,7 +46730,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x4B43, 1, pci_vid_4B43 },
{0x4C48, 1, pci_vid_4C48 },
{0x4C4D, 3, pci_vid_4C4D },
-{0x4C52, 9, pci_vid_4C52 },
+{0x4C52, 11, pci_vid_4C52 },
{0x4C53, 6, pci_vid_4C53 },
{0x4CA1, 1, pci_vid_4CA1 },
{0x4D51, 2, pci_vid_4D51 },
@@ -46391,8 +46800,8 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x7FED, 1, pci_vid_7FED },
{0x8008, 4, pci_vid_8008 },
{0x807D, 1, pci_vid_807D },
-{0x8086, 8763, pci_vid_8086 },
-{0x8088, 76, pci_vid_8088 },
+{0x8086, 8879, pci_vid_8086 },
+{0x8088, 77, pci_vid_8088 },
{0x80EE, 3, pci_vid_80EE },
{0x8322, 1, pci_vid_8322 },
{0x8384, 1, pci_vid_8384 },
@@ -46401,9 +46810,9 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x8686, 3, pci_vid_8686 },
{0x8800, 2, pci_vid_8800 },
{0x8820, 2, pci_vid_8820 },
-{0x8848, 23, pci_vid_8848 },
+{0x8848, 27, pci_vid_8848 },
{0x8866, 1, pci_vid_8866 },
-{0x8888, 1, pci_vid_8888 },
+{0x8888, 2, pci_vid_8888 },
{0x8912, 1, pci_vid_8912 },
{0x8C4A, 2, pci_vid_8C4A },
{0x8E0E, 1, pci_vid_8E0E },
@@ -46420,7 +46829,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0x9850, 1, pci_vid_9850 },
{0x9902, 4, pci_vid_9902 },
{0x9A11, 1, pci_vid_9A11 },
-{0x9D32, 18, pci_vid_9D32 },
+{0x9D32, 21, pci_vid_9D32 },
{0xA000, 1, pci_vid_A000 },
{0xA0A0, 1, pci_vid_A0A0 },
{0xA0F1, 1, pci_vid_A0F1 },
@@ -46461,7 +46870,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0xBD11, 1, pci_vid_BD11 },
{0xBDBD, 37, pci_vid_BDBD },
{0xC001, 1, pci_vid_C001 },
-{0xC0A9, 8, pci_vid_C0A9 },
+{0xC0A9, 9, pci_vid_C0A9 },
{0xC0DE, 1, pci_vid_C0DE },
{0xC0FE, 1, pci_vid_C0FE },
{0xCA01, 2, pci_vid_CA01 },
@@ -46510,6 +46919,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0xF043, 1, pci_vid_F043 },
{0xF05B, 1, pci_vid_F05B },
{0xF111, 1, pci_vid_F111 },
+{0xF117, 5, pci_vid_F117 },
{0xF15E, 2, pci_vid_F15E },
{0xF1D0, 41, pci_vid_F1D0 },
{0xF5F5, 1, pci_vid_F5F5 },
@@ -46524,7 +46934,7 @@ static pci_vid_index_t const pci_vid_index[] = {
{0xFFFD, 2, pci_vid_FFFD },
{0xFFFE, 2, pci_vid_FFFE },
{0xFFFF, 1, pci_vid_FFFF },
-}; /* We have 2376 VIDs */
+}; /* We have 2381 VIDs */
static int vid_search(const void *key, const void *tbl_entry)
{
@@ -46539,7 +46949,7 @@ const char *pci_id_str(uint16_t vid, uint16_t did, uint16_t svid, uint16_t ssid)
pci_vid_index_t const *index_ptr;
pci_id_t const *ids_ptr;
- index_ptr = bsearch(&vid, pci_vid_index, sizeof pci_vid_index / sizeof pci_vid_index[0], sizeof pci_vid_index[0], vid_search);
+ index_ptr = bsearch(&vid, pci_vid_index, array_length(pci_vid_index), sizeof pci_vid_index[0], vid_search);
if(index_ptr == NULL)
return not_found;
diff --git a/epan/plugin_if.c b/epan/plugin_if.c
index 3ac04b1d8f..e2fa467d09 100644
--- a/epan/plugin_if.c
+++ b/epan/plugin_if.c
@@ -24,8 +24,8 @@
#include "plugin_if.h"
-static GList * menubar_entries = NULL;
-static GList * menubar_menunames = NULL;
+static GList * menubar_entries;
+static GList * menubar_menunames;
static GHashTable * plugin_if_callback_functions;
@@ -188,7 +188,7 @@ extern void ext_menubar_add_separator(ext_menu_t *parent)
/* Implementation of external toolbar handlers */
-static GList * toolbar_entries = NULL;
+static GList * toolbar_entries;
extern GList * ext_toolbar_get_entries(void)
{
@@ -408,7 +408,7 @@ ext_toolbar_find_item(gconstpointer a, gconstpointer b)
return -1;
}
-static GList * toolbar_updates = NULL;
+static GList * toolbar_updates;
void ext_toolbar_register_update_cb(ext_toolbar_t * entry, ext_toolbar_action_cb callback, gpointer item_data)
{
diff --git a/epan/prefs-int.h b/epan/prefs-int.h
index 312720c509..b6305ef164 100644
--- a/epan/prefs-int.h
+++ b/epan/prefs-int.h
@@ -34,16 +34,16 @@ struct pref_module {
wmem_tree_t *submodules; /**< list of its submodules */
int numprefs; /**< number of non-obsolete preferences */
unsigned int prefs_changed_flags; /**< Bitmask of the types of changes done by module preferences since we last checked */
- gboolean obsolete; /**< if TRUE, this is a module that used to
+ bool obsolete; /**< if true, this is a module that used to
* exist but no longer does
*/
- gboolean use_gui; /**< Determines whether or not the module will use the generic
+ bool use_gui; /**< Determines whether or not the module will use the generic
* GUI interface/APIs with the preference value or if its own
* independent GUI will be provided. This allows all preferences
* to have a common API for reading/writing, but not require them to
* use simple GUI controls to change the options. In general, the "general"
- * Wireshark preferences should have this set to FALSE, while the protocol
- * modules will have this set to TRUE */
+ * Wireshark preferences should have this set to false, while the protocol
+ * modules will have this set to true */
unsigned int effect_flags; /**< Flags of types effected by preference (PREF_TYPE_DISSECTION, PREF_EFFECT_CAPTURE, etc).
These flags will be set in all module's preferences on creation. Flags must be non-zero
to ensure saving to disk */
@@ -62,13 +62,13 @@ WS_DLL_PUBLIC module_t *protocols_module;
typedef void (*pref_custom_free_cb) (pref_t* pref);
typedef void (*pref_custom_reset_cb) (pref_t* pref);
-typedef prefs_set_pref_e (*pref_custom_set_cb) (pref_t* pref, const gchar* value, unsigned int* changed_flags);
+typedef prefs_set_pref_e (*pref_custom_set_cb) (pref_t* pref, const char* value, unsigned int* changed_flags);
/* typedef void (*pref_custom_write_cb) (pref_t* pref, write_pref_arg_t* arg); Deprecated. */
/* pref_custom_type_name_cb should return NULL for internal / hidden preferences. */
typedef const char * (*pref_custom_type_name_cb) (void);
typedef char * (*pref_custom_type_description_cb) (void);
-typedef gboolean (*pref_custom_is_default_cb) (pref_t* pref);
-typedef char * (*pref_custom_to_str_cb) (pref_t* pref, gboolean default_val);
+typedef bool (*pref_custom_is_default_cb) (pref_t* pref);
+typedef char * (*pref_custom_to_str_cb) (pref_t* pref, bool default_val);
/** Structure to hold callbacks for PREF_CUSTOM type */
struct pref_custom_cbs {
@@ -119,7 +119,7 @@ struct pref_custom_cbs {
* @return an indication of whether it succeeded or failed
* in some fashion.
*/
-typedef prefs_set_pref_e (*pref_set_pair_cb) (gchar *key, const gchar *value, void *private_data, gboolean return_range_errors);
+typedef prefs_set_pref_e (*pref_set_pair_cb) (char *key, const char *value, void *private_data, bool return_range_errors);
WS_DLL_PUBLIC
const char* prefs_get_description(pref_t *pref);
@@ -133,7 +133,7 @@ const char* prefs_get_name(pref_t *pref);
WS_DLL_PUBLIC
int prefs_get_type(pref_t *pref);
-WS_DLL_PUBLIC guint32 prefs_get_max_value(pref_t *pref);
+WS_DLL_PUBLIC uint32_t prefs_get_max_value(pref_t *pref);
/* Bitmask of flags for the effect of a preference in Wireshark */
#define PREF_EFFECT_DISSECTION (1u << 0)
@@ -201,40 +201,40 @@ WS_DLL_PUBLIC
void prefs_set_module_effect_flags(module_t * module, unsigned int flags);
WS_DLL_PUBLIC
-gboolean prefs_set_range_value_work(pref_t *pref, const gchar *value,
- gboolean return_range_errors, unsigned int *changed_flags);
+bool prefs_set_range_value_work(pref_t *pref, const char *value,
+ bool return_range_errors, unsigned int *changed_flags);
WS_DLL_PUBLIC
unsigned int
-prefs_set_stashed_range_value(pref_t *pref, const gchar *value);
+prefs_set_stashed_range_value(pref_t *pref, const char *value);
/** Add a range value of a range preference. */
WS_DLL_PUBLIC
void
-prefs_range_add_value(pref_t *pref, guint32 val);
+prefs_range_add_value(pref_t *pref, uint32_t val);
/** Remove a range value of a range preference. */
WS_DLL_PUBLIC
void
-prefs_range_remove_value(pref_t *pref, guint32 val);
+prefs_range_remove_value(pref_t *pref, uint32_t val);
-WS_DLL_PUBLIC unsigned int prefs_set_bool_value(pref_t *pref, gboolean value, pref_source_t source);
-WS_DLL_PUBLIC gboolean prefs_get_bool_value(pref_t *pref, pref_source_t source);
+WS_DLL_PUBLIC unsigned int prefs_set_bool_value(pref_t *pref, bool value, pref_source_t source);
+WS_DLL_PUBLIC bool prefs_get_bool_value(pref_t *pref, pref_source_t source);
WS_DLL_PUBLIC void prefs_invert_bool_value(pref_t *pref, pref_source_t source);
-WS_DLL_PUBLIC unsigned int prefs_set_uint_value(pref_t *pref, guint value, pref_source_t source);
-WS_DLL_PUBLIC guint prefs_get_uint_base(pref_t *pref);
-WS_DLL_PUBLIC guint prefs_get_uint_value_real(pref_t *pref, pref_source_t source);
+WS_DLL_PUBLIC unsigned int prefs_set_uint_value(pref_t *pref, unsigned value, pref_source_t source);
+WS_DLL_PUBLIC unsigned prefs_get_uint_base(pref_t *pref);
+WS_DLL_PUBLIC unsigned prefs_get_uint_value_real(pref_t *pref, pref_source_t source);
-WS_DLL_PUBLIC unsigned int prefs_set_enum_value(pref_t *pref, gint value, pref_source_t source);
-WS_DLL_PUBLIC unsigned int prefs_set_enum_string_value(pref_t *pref, const gchar *value, pref_source_t source);
-WS_DLL_PUBLIC gint prefs_get_enum_value(pref_t *pref, pref_source_t source);
+WS_DLL_PUBLIC unsigned int prefs_set_enum_value(pref_t *pref, int value, pref_source_t source);
+WS_DLL_PUBLIC unsigned int prefs_set_enum_string_value(pref_t *pref, const char *value, pref_source_t source);
+WS_DLL_PUBLIC int prefs_get_enum_value(pref_t *pref, pref_source_t source);
WS_DLL_PUBLIC const enum_val_t* prefs_get_enumvals(pref_t *pref);
-WS_DLL_PUBLIC gboolean prefs_get_enum_radiobuttons(pref_t *pref);
+WS_DLL_PUBLIC bool prefs_get_enum_radiobuttons(pref_t *pref);
-WS_DLL_PUBLIC gboolean prefs_set_color_value(pref_t *pref, color_t value, pref_source_t source);
+WS_DLL_PUBLIC bool prefs_set_color_value(pref_t *pref, color_t value, pref_source_t source);
WS_DLL_PUBLIC color_t* prefs_get_color_value(pref_t *pref, pref_source_t source);
WS_DLL_PUBLIC unsigned int prefs_set_custom_value(pref_t *pref, const char *value, pref_source_t source);
@@ -244,16 +244,16 @@ WS_DLL_PUBLIC char* prefs_get_string_value(pref_t *pref, pref_source_t source);
WS_DLL_PUBLIC struct epan_uat* prefs_get_uat_value(pref_t *pref);
-WS_DLL_PUBLIC gboolean prefs_set_range_value(pref_t *pref, range_t *value, pref_source_t source);
+WS_DLL_PUBLIC bool prefs_set_range_value(pref_t *pref, range_t *value, pref_source_t source);
WS_DLL_PUBLIC range_t* prefs_get_range_value_real(pref_t *pref, pref_source_t source);
-WS_DLL_PUBLIC gboolean prefs_add_decode_as_value(pref_t *pref, guint value, gboolean replace);
-WS_DLL_PUBLIC gboolean prefs_remove_decode_as_value(pref_t *pref, guint value, gboolean set_default);
+WS_DLL_PUBLIC bool prefs_add_decode_as_value(pref_t *pref, unsigned value, bool replace);
+WS_DLL_PUBLIC bool prefs_remove_decode_as_value(pref_t *pref, unsigned value, bool set_default);
WS_DLL_PUBLIC unsigned int prefs_set_password_value(pref_t *pref, const char* value, pref_source_t source);
WS_DLL_PUBLIC char* prefs_get_password_value(pref_t *pref, pref_source_t source);
-WS_DLL_PUBLIC gboolean prefs_add_list_value(pref_t *pref, void *value, pref_source_t source);
+WS_DLL_PUBLIC bool prefs_add_list_value(pref_t *pref, void *value, pref_source_t source);
WS_DLL_PUBLIC GList* prefs_get_list_value(pref_t *pref, pref_source_t source);
WS_DLL_PUBLIC void reset_pref(pref_t *pref);
@@ -276,7 +276,7 @@ void
prefs_read_module(const char *name);
WS_DLL_PUBLIC
-gboolean
+bool
prefs_pref_is_default(pref_t *pref);
/** "Stash" a preference.
@@ -286,17 +286,17 @@ prefs_pref_is_default(pref_t *pref);
* @param unused unused
*/
WS_DLL_PUBLIC
-guint pref_stash(pref_t *pref, gpointer unused);
+unsigned pref_stash(pref_t *pref, void *unused);
typedef struct pref_unstash_data
{
- /* Used to set prefs_changed member to TRUE if the preference
+ /* Used to set prefs_changed member to true if the preference
differs from its stashed values. Also used by "decode as" types
to look up dissector short name */
module_t *module;
/* Qt uses stashed values to then "applies" them
during unstash. Use this flag for that behavior */
- gboolean handle_decode_as;
+ bool handle_decode_as;
} pref_unstash_data_t;
/** "Unstash" a preference.
@@ -308,7 +308,7 @@ typedef struct pref_unstash_data
* @return Always returns 0.
*/
WS_DLL_PUBLIC
-guint pref_unstash(pref_t *pref, gpointer unstash_data_p);
+unsigned pref_unstash(pref_t *pref, void *unstash_data_p);
/** Clean up a stashed preference.
* Can be called from prefs_pref_foreach().
@@ -319,7 +319,7 @@ guint pref_unstash(pref_t *pref, gpointer unstash_data_p);
* @return Always returns 0.
*/
WS_DLL_PUBLIC
-guint pref_clean_stash(pref_t *pref, gpointer unused);
+unsigned pref_clean_stash(pref_t *pref, void *unused);
/** Set a stashed preference to its default value.
*
@@ -330,7 +330,7 @@ void reset_stashed_pref(pref_t *pref);
/** Convert a string list preference to a preference string.
*
- * Given a GList of gchar pointers, create a quoted, comma-separated
+ * Given a GList of char pointers, create a quoted, comma-separated
* string. Should be used with prefs_get_string_list() and
* prefs_clear_string_list().
*
diff --git a/epan/prefs.c b/epan/prefs.c
index 1faa14c404..528de13205 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -62,18 +62,18 @@ typedef struct pref_module_alias {
/* Internal functions */
static module_t *find_subtree(module_t *parent, const char *tilte);
static module_t *prefs_register_module_or_subtree(module_t *parent,
- const char *name, const char *title, const char *description, gboolean is_subtree,
- void (*apply_cb)(void), gboolean use_gui);
+ const char *name, const char *title, const char *description, bool is_subtree,
+ void (*apply_cb)(void), bool use_gui);
static void prefs_register_modules(void);
static module_t *prefs_find_module_alias(const char *name);
-static prefs_set_pref_e set_pref(gchar*, const gchar*, void *, gboolean);
+static prefs_set_pref_e set_pref(char*, const char*, void *, bool);
static void free_col_info(GList *);
static void pre_init_prefs(void);
-static gboolean prefs_is_column_visible(const gchar *cols_hidden, int col);
-static gboolean prefs_is_column_fmt_visible(const gchar *cols_hidden, fmt_data *cfmt);
-static guint prefs_module_list_foreach(wmem_tree_t *module_list, module_cb callback,
- gpointer user_data, gboolean skip_obsolete);
-static gint find_val_for_string(const char *needle, const enum_val_t *haystack, gint default_value);
+static bool prefs_is_column_visible(const char *cols_hidden, int col);
+static bool prefs_is_column_fmt_visible(const char *cols_hidden, fmt_data *cfmt);
+static unsigned prefs_module_list_foreach(wmem_tree_t *module_list, module_cb callback,
+ void *user_data, bool skip_obsolete);
+static int find_val_for_string(const char *needle, const enum_val_t *haystack, int default_value);
#define IS_PREF_OBSOLETE(p) ((p) & PREF_OBSOLETE)
#define SET_PREF_OBSOLETE(p) ((p) |= PREF_OBSOLETE)
@@ -82,11 +82,11 @@ static gint find_val_for_string(const char *needle, const enum_val_t *haystack,
#define PF_NAME "preferences"
#define OLD_GPF_NAME "wireshark.conf" /* old name for global preferences file */
-static gboolean prefs_initialized = FALSE;
-static gchar *gpf_path = NULL;
-static gchar *cols_hidden_list = NULL;
-static gchar *cols_hidden_fmt_list = NULL;
-static gboolean gui_theme_is_dark = FALSE;
+static bool prefs_initialized;
+static char *gpf_path;
+static char *cols_hidden_list;
+static char *cols_hidden_fmt_list;
+static bool gui_theme_is_dark;
/*
* XXX - variables to allow us to attempt to interpret the first
@@ -155,10 +155,27 @@ static const enum_val_t gui_selection_style[] = {
{NULL, NULL, -1}
};
+/* None : Historical behavior, no deinterlacing */
+#define CONV_DEINT_CHOICE_NONE 0
+/* MI : MAC & Interface */
+#define CONV_DEINT_CHOICE_MI CONV_DEINT_KEY_MAC + CONV_DEINT_KEY_INTERFACE
+/* VM : VLAN & MAC */
+#define CONV_DEINT_CHOICE_VM CONV_DEINT_KEY_VLAN + CONV_DEINT_KEY_MAC
+/* VMI : VLAN & MAC & Interface */
+#define CONV_DEINT_CHOICE_VMI CONV_DEINT_KEY_VLAN + CONV_DEINT_KEY_MAC + CONV_DEINT_KEY_INTERFACE
+
+static const enum_val_t conv_deint_options[] = {
+ {"NONE", "NONE", CONV_DEINT_CHOICE_NONE},
+ {".MI", ".MI", CONV_DEINT_CHOICE_MI },
+ {"VM.", "VM.", CONV_DEINT_CHOICE_VM },
+ {"VMI", "VMI", CONV_DEINT_CHOICE_VMI },
+ {NULL, NULL, -1}
+};
+
#if defined(HAVE_PCAP_CREATE)
/* Can set monitor mode and buffer size. */
-static gint num_capture_cols = 7;
-static const gchar *capture_cols[7] = {
+static int num_capture_cols = 7;
+static const char *capture_cols[7] = {
"INTERFACE",
"LINK",
"PMODE",
@@ -171,8 +188,8 @@ static const gchar *capture_cols[7] = {
"Possible values: INTERFACE, LINK, PMODE, SNAPLEN, MONITOR, BUFFER, FILTER\n"
#elif defined(CAN_SET_CAPTURE_BUFFER_SIZE)
/* Can set buffer size but not monitor mode. */
-static gint num_capture_cols = 6;
-static const gchar *capture_cols[6] = {
+static int num_capture_cols = 6;
+static const char *capture_cols[6] = {
"INTERFACE",
"LINK",
"PMODE",
@@ -184,8 +201,8 @@ static const gchar *capture_cols[6] = {
"Possible values: INTERFACE, LINK, PMODE, SNAPLEN, BUFFER, FILTER\n"
#else
/* Can neither set buffer size nor monitor mode. */
-static gint num_capture_cols = 5;
-static const gchar *capture_cols[5] = {
+static int num_capture_cols = 5;
+static const char *capture_cols[5] = {
"INTERFACE",
"LINK",
"PMODE",
@@ -214,9 +231,9 @@ struct preference {
unsigned int effect_flags; /**< Flags of types effected by preference (PREF_TYPE_DISSECTION, PREF_EFFECT_CAPTURE, etc).
Flags must be non-zero to ensure saving to disk */
union { /* The Qt preference code assumes that these will all be pointers (and unique) */
- guint *uint;
- gboolean *boolp;
- gint *enump;
+ unsigned *uint;
+ bool *boolp;
+ int *enump;
char **string;
range_t **range;
struct epan_uat* uat;
@@ -224,29 +241,29 @@ struct preference {
GList** list;
} varp; /**< pointer to variable storing the value */
union {
- guint uint;
- gboolean boolval;
- gint enumval;
+ unsigned uint;
+ bool boolval;
+ int enumval;
char *string;
range_t *range;
color_t color;
GList* list;
} stashed_val; /**< original value, when editing from the GUI */
union {
- guint uint;
- gboolean boolval;
- gint enumval;
+ unsigned uint;
+ bool boolval;
+ int enumval;
char *string;
range_t *range;
color_t color;
GList* list;
} default_val; /**< the default value of the preference */
union {
- guint base; /**< input/output base, for PREF_UINT */
- guint32 max_value; /**< maximum value of a range */
+ unsigned base; /**< input/output base, for PREF_UINT */
+ uint32_t max_value; /**< maximum value of a range */
struct {
const enum_val_t *enumvals; /**< list of name & values */
- gboolean radio_buttons; /**< TRUE if it should be shown as
+ bool radio_buttons; /**< true if it should be shown as
radio buttons rather than as an
option menu or combo box in
the preferences tab */
@@ -275,7 +292,7 @@ const char* prefs_get_name(pref_t *pref)
return pref->name;
}
-guint32 prefs_get_max_value(pref_t *pref)
+uint32_t prefs_get_max_value(pref_t *pref)
{
return pref->info.max_value;
}
@@ -283,18 +300,18 @@ guint32 prefs_get_max_value(pref_t *pref)
/*
* List of all modules with preference settings.
*/
-static wmem_tree_t *prefs_modules = NULL;
+static wmem_tree_t *prefs_modules;
/*
* List of all modules that should show up at the top level of the
* tree in the preference dialog box.
*/
-static wmem_tree_t *prefs_top_level_modules = NULL;
+static wmem_tree_t *prefs_top_level_modules;
/*
* List of aliases for modules.
*/
-static wmem_tree_t *prefs_module_aliases = NULL;
+static wmem_tree_t *prefs_module_aliases;
/** Sets up memory used by proto routines. Called at program startup */
void
@@ -319,7 +336,7 @@ free_string_like_preference(pref_t *pref)
}
static void
-free_pref(gpointer data, gpointer user_data _U_)
+free_pref(void *data, void *user_data _U_)
{
pref_t *pref = (pref_t *)data;
int type = pref->type;
@@ -352,7 +369,7 @@ free_pref(gpointer data, gpointer user_data _U_)
break;
case PREF_CUSTOM:
if (strcmp(pref->name, "columns") == 0)
- pref->stashed_val.boolval = TRUE;
+ pref->stashed_val.boolval = true;
pref->custom_cbs.free_cb(pref);
break;
/* non-generic preferences */
@@ -363,8 +380,8 @@ free_pref(gpointer data, gpointer user_data _U_)
g_free(pref);
}
-static guint
-free_module_prefs(module_t *module, gpointer data _U_)
+static unsigned
+free_module_prefs(module_t *module, void *data _U_)
{
if (module->prefs) {
g_list_foreach(module->prefs, free_pref, NULL);
@@ -373,7 +390,7 @@ free_module_prefs(module_t *module, gpointer data _U_)
module->prefs = NULL;
module->numprefs = 0;
if (module->submodules) {
- prefs_module_list_foreach(module->submodules, free_module_prefs, NULL, FALSE);
+ prefs_module_list_foreach(module->submodules, free_module_prefs, NULL, false);
}
/* We don't free the actual module: its submodules pointer points to
a wmem_tree and the module itself is stored in a wmem_tree
@@ -389,7 +406,7 @@ prefs_cleanup(void)
/* This isn't strictly necessary since we're exiting anyway, but let's
* do what clean up we can.
*/
- prefs_module_list_foreach(prefs_modules, free_module_prefs, NULL, FALSE);
+ prefs_module_list_foreach(prefs_modules, free_module_prefs, NULL, false);
/* Clean the uats */
uat_cleanup();
@@ -402,7 +419,7 @@ prefs_cleanup(void)
gpf_path = NULL;
}
-void prefs_set_gui_theme_is_dark(gboolean is_dark)
+void prefs_set_gui_theme_is_dark(bool is_dark)
{
gui_theme_is_dark = is_dark;
}
@@ -417,10 +434,10 @@ void prefs_set_gui_theme_is_dark(gboolean is_dark)
static module_t *
prefs_register_module(module_t *parent, const char *name, const char *title,
const char *description, void (*apply_cb)(void),
- const gboolean use_gui)
+ const bool use_gui)
{
return prefs_register_module_or_subtree(parent, name, title, description,
- FALSE, apply_cb, use_gui);
+ false, apply_cb, use_gui);
}
static void
@@ -455,15 +472,15 @@ prefs_register_subtree(module_t *parent, const char *title, const char *descript
void (*apply_cb)(void))
{
return prefs_register_module_or_subtree(parent, NULL, title, description,
- TRUE, apply_cb,
- parent ? parent->use_gui : FALSE);
+ true, apply_cb,
+ parent ? parent->use_gui : false);
}
static module_t *
prefs_register_module_or_subtree(module_t *parent, const char *name,
const char *title, const char *description,
- gboolean is_subtree, void (*apply_cb)(void),
- gboolean use_gui)
+ bool is_subtree, void (*apply_cb)(void),
+ bool use_gui)
{
module_t *module;
@@ -492,7 +509,7 @@ prefs_register_module_or_subtree(module_t *parent, const char *name,
module->submodules = NULL; /* no submodules, to start */
module->numprefs = 0;
module->prefs_changed_flags = 0;
- module->obsolete = FALSE;
+ module->obsolete = false;
module->use_gui = use_gui;
/* A module's preferences affects dissection unless otherwise told */
module->effect_flags = PREF_EFFECT_DISSECTION;
@@ -504,7 +521,7 @@ prefs_register_module_or_subtree(module_t *parent, const char *name,
/* Accept any letter case to conform with protocol names. ASN1 protocols
* don't use lower case names, so we can't require lower case. */
- if (module_check_valid_name(name, FALSE) != '\0') {
+ if (module_check_valid_name(name, false) != '\0') {
ws_error("Preference module \"%s\" contains invalid characters", name);
}
@@ -564,7 +581,7 @@ prefs_register_module_alias(const char *name, module_t *module)
{
module_alias_t *alias;
const char *p;
- guchar c;
+ unsigned char c;
/*
* Yes.
@@ -607,7 +624,7 @@ prefs_register_module_alias(const char *name, module_t *module)
/*
* Register that a protocol has preferences.
*/
-module_t *protocols_module = NULL;
+module_t *protocols_module;
module_t *
prefs_register_protocol(int id, void (*apply_cb)(void))
@@ -631,7 +648,7 @@ prefs_register_protocol(int id, void (*apply_cb)(void))
return prefs_register_module(protocols_module,
proto_get_protocol_filter_name(id),
proto_get_protocol_short_name(protocol),
- proto_get_protocol_name(id), apply_cb, TRUE);
+ proto_get_protocol_name(id), apply_cb, true);
}
void
@@ -703,7 +720,7 @@ prefs_register_protocol_subtree(const char *subtree, int id, void (*apply_cb)(vo
return prefs_register_module(subtree_module,
proto_get_protocol_filter_name(id),
proto_get_protocol_short_name(protocol),
- proto_get_protocol_name(id), apply_cb, TRUE);
+ proto_get_protocol_name(id), apply_cb, true);
}
@@ -734,8 +751,8 @@ prefs_register_protocol_obsolete(int id)
module = prefs_register_module(protocols_module,
proto_get_protocol_filter_name(id),
proto_get_protocol_short_name(protocol),
- proto_get_protocol_name(id), NULL, TRUE);
- module->obsolete = TRUE;
+ proto_get_protocol_name(id), NULL, true);
+ module->obsolete = true;
return module;
}
@@ -749,7 +766,7 @@ prefs_register_protocol_obsolete(int id)
*
* "description" is a longer human-readable description of the tap.
*/
-module_t *stats_module = NULL;
+module_t *stats_module;
module_t *
prefs_register_stat(const char *name, const char *title,
@@ -768,7 +785,7 @@ prefs_register_stat(const char *name, const char *title,
}
return prefs_register_module(stats_module, name, title, description,
- apply_cb, TRUE);
+ apply_cb, true);
}
/*
@@ -781,7 +798,7 @@ prefs_register_stat(const char *name, const char *title,
*
* "description" is a longer human-readable description of the codec.
*/
-module_t *codecs_module = NULL;
+module_t *codecs_module;
module_t *
prefs_register_codec(const char *name, const char *title,
@@ -800,7 +817,7 @@ prefs_register_codec(const char *name, const char *title,
}
return prefs_register_module(codecs_module, name, title, description,
- apply_cb, TRUE);
+ apply_cb, true);
}
module_t *
@@ -830,9 +847,9 @@ find_subtree(module_t *parent, const char *name)
typedef struct {
module_cb callback;
- gpointer user_data;
- guint ret;
- gboolean skip_obsolete;
+ void *user_data;
+ unsigned ret;
+ bool skip_obsolete;
} call_foreach_t;
static bool
@@ -847,9 +864,9 @@ call_foreach_cb(const void *key _U_, void *value, void *data)
return (call_data->ret != 0);
}
-static guint
+static unsigned
prefs_module_list_foreach(wmem_tree_t *module_list, module_cb callback,
- gpointer user_data, gboolean skip_obsolete)
+ void *user_data, bool skip_obsolete)
{
call_foreach_t call_data;
@@ -865,20 +882,20 @@ prefs_module_list_foreach(wmem_tree_t *module_list, module_cb callback,
}
/*
- * Returns TRUE if module has any submodules
+ * Returns true if module has any submodules
*/
-gboolean
+bool
prefs_module_has_submodules(module_t *module)
{
if (module->submodules == NULL) {
- return FALSE;
+ return false;
}
if (wmem_tree_is_empty(module->submodules)) {
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
/*
@@ -889,10 +906,10 @@ prefs_module_has_submodules(module_t *module)
* preferences for dissectors that no longer have preferences to be
* silently ignored in preference files.
*/
-guint
-prefs_modules_foreach(module_cb callback, gpointer user_data)
+unsigned
+prefs_modules_foreach(module_cb callback, void *user_data)
{
- return prefs_module_list_foreach(prefs_modules, callback, user_data, TRUE);
+ return prefs_module_list_foreach(prefs_modules, callback, user_data, true);
}
/*
@@ -905,11 +922,11 @@ prefs_modules_foreach(module_cb callback, gpointer user_data)
* silently ignored in preference files. Does not ignore subtrees,
* as this can be used when walking the display tree of modules.
*/
-guint
+unsigned
prefs_modules_foreach_submodules(module_t *module, module_cb callback,
- gpointer user_data)
+ void *user_data)
{
- return prefs_module_list_foreach((module)?module->submodules:prefs_top_level_modules, callback, user_data, TRUE);
+ return prefs_module_list_foreach((module)?module->submodules:prefs_top_level_modules, callback, user_data, true);
}
static bool
@@ -918,7 +935,7 @@ call_apply_cb(const void *key _U_, void *value, void *data _U_)
module_t *module = (module_t *)value;
if (module->obsolete)
- return FALSE;
+ return false;
if (module->prefs_changed_flags) {
if (module->apply_cb != NULL)
(*module->apply_cb)();
@@ -926,7 +943,7 @@ call_apply_cb(const void *key _U_, void *value, void *data _U_)
}
if (module->submodules)
wmem_tree_foreach(module->submodules, call_apply_cb, NULL);
- return FALSE;
+ return false;
}
/*
@@ -977,7 +994,7 @@ register_preference(module_t *module, const char *name, const char *title,
const char *description, int type)
{
pref_t *preference;
- const gchar *p;
+ const char *p;
const char *name_prefix = (module->name != NULL) ? module->name : module->parent->name;
preference = g_new(pref_t,1);
@@ -1072,7 +1089,7 @@ typedef struct {
module_t *submodule;
} find_pref_arg_t;
-static gint
+static int
preference_match(gconstpointer a, gconstpointer b)
{
const pref_t *pref = (const pref_t *)a;
@@ -1089,17 +1106,17 @@ module_find_pref_cb(const void *key _U_, void *value, void *data)
module_t *module = (module_t *)value;
if (module == NULL)
- return FALSE;
+ return false;
list_entry = g_list_find_custom(module->prefs, arg->name,
preference_match);
if (list_entry == NULL)
- return FALSE;
+ return false;
arg->list_entry = list_entry;
arg->submodule = module;
- return TRUE;
+ return true;
}
/* Tries to find a preference, setting containing_module to the (sub)module
@@ -1146,9 +1163,9 @@ prefs_find_preference(module_t *module, const char *name)
}
/*
- * Returns TRUE if the given protocol has registered preferences
+ * Returns true if the given protocol has registered preferences
*/
-gboolean
+bool
prefs_is_registered_protocol(const char *name)
{
module_t *m = prefs_find_module(name);
@@ -1173,7 +1190,7 @@ prefs_get_title_by_name(const char *name)
void
prefs_register_uint_preference(module_t *module, const char *name,
const char *title, const char *description,
- guint base, guint *var)
+ unsigned base, unsigned *var)
{
pref_t *preference;
@@ -1198,7 +1215,7 @@ prefs_register_uint_preference(module_t *module, const char *name,
static void
prefs_register_uint_custom_preference(module_t *module, const char *name,
const char *title, const char *description,
- struct pref_custom_cbs* custom_cbs, guint *var)
+ struct pref_custom_cbs* custom_cbs, unsigned *var)
{
pref_t *preference;
@@ -1216,7 +1233,7 @@ prefs_register_uint_custom_preference(module_t *module, const char *name,
void
prefs_register_bool_preference(module_t *module, const char *name,
const char *title, const char *description,
- gboolean *var)
+ bool *var)
{
pref_t *preference;
@@ -1226,7 +1243,7 @@ prefs_register_bool_preference(module_t *module, const char *name,
preference->default_val.boolval = *var;
}
-unsigned int prefs_set_bool_value(pref_t *pref, gboolean value, pref_source_t source)
+unsigned int prefs_set_bool_value(pref_t *pref, bool value, pref_source_t source)
{
unsigned int changed = 0;
@@ -1277,7 +1294,7 @@ void prefs_invert_bool_value(pref_t *pref, pref_source_t source)
}
}
-gboolean prefs_get_bool_value(pref_t *pref, pref_source_t source)
+bool prefs_get_bool_value(pref_t *pref, pref_source_t source)
{
switch (source)
{
@@ -1295,7 +1312,7 @@ gboolean prefs_get_bool_value(pref_t *pref, pref_source_t source)
break;
}
- return FALSE;
+ return false;
}
/*
@@ -1308,8 +1325,8 @@ gboolean prefs_get_bool_value(pref_t *pref, pref_source_t source)
void
prefs_register_enum_preference(module_t *module, const char *name,
const char *title, const char *description,
- gint *var, const enum_val_t *enumvals,
- gboolean radio_buttons)
+ int *var, const enum_val_t *enumvals,
+ bool radio_buttons)
{
pref_t *preference;
@@ -1321,7 +1338,7 @@ prefs_register_enum_preference(module_t *module, const char *name,
preference->info.enum_info.radio_buttons = radio_buttons;
}
-unsigned int prefs_set_enum_value(pref_t *pref, gint value, pref_source_t source)
+unsigned int prefs_set_enum_value(pref_t *pref, int value, pref_source_t source)
{
unsigned int changed = 0;
@@ -1353,14 +1370,14 @@ unsigned int prefs_set_enum_value(pref_t *pref, gint value, pref_source_t source
return changed;
}
-unsigned int prefs_set_enum_string_value(pref_t *pref, const gchar *value, pref_source_t source)
+unsigned int prefs_set_enum_string_value(pref_t *pref, const char *value, pref_source_t source)
{
- gint enum_val = find_val_for_string(value, pref->info.enum_info.enumvals, *pref->varp.enump);
+ int enum_val = find_val_for_string(value, pref->info.enum_info.enumvals, *pref->varp.enump);
return prefs_set_enum_value(pref, enum_val, source);
}
-gint prefs_get_enum_value(pref_t *pref, pref_source_t source)
+int prefs_get_enum_value(pref_t *pref, pref_source_t source)
{
switch (source)
{
@@ -1386,7 +1403,7 @@ const enum_val_t* prefs_get_enumvals(pref_t *pref)
return pref->info.enum_info.enumvals;
}
-gboolean prefs_get_enum_radiobuttons(pref_t *pref)
+bool prefs_get_enum_radiobuttons(pref_t *pref)
{
return pref->info.enum_info.radio_buttons;
}
@@ -1408,10 +1425,10 @@ register_string_like_preference(module_t *module, const char *name,
const char *title, const char *description,
char **var, int type,
struct pref_custom_cbs* custom_cbs,
- gboolean free_tmp)
+ bool free_tmp)
{
pref_t *pref;
- gchar *tmp;
+ char *tmp;
pref = register_preference(module, name, title, description, type);
@@ -1446,7 +1463,7 @@ register_string_like_preference(module_t *module, const char *name,
* Assign to a string preference.
*/
static void
-pref_set_string_like_pref_value(pref_t *pref, const gchar *value)
+pref_set_string_like_pref_value(pref_t *pref, const char *value)
{
DIAG_OFF(cast-qual)
g_free((void *)*pref->varp.string);
@@ -1542,7 +1559,7 @@ prefs_register_string_preference(module_t *module, const char *name,
{
DIAG_OFF(cast-qual)
register_string_like_preference(module, name, title, description,
- (char **)var, PREF_STRING, NULL, FALSE);
+ (char **)var, PREF_STRING, NULL, false);
DIAG_ON(cast-qual)
}
@@ -1552,11 +1569,11 @@ DIAG_ON(cast-qual)
void
prefs_register_filename_preference(module_t *module, const char *name,
const char *title, const char *description,
- const char **var, gboolean for_writing)
+ const char **var, bool for_writing)
{
DIAG_OFF(cast-qual)
register_string_like_preference(module, name, title, description, (char **)var,
- for_writing ? PREF_SAVE_FILENAME : PREF_OPEN_FILENAME, NULL, FALSE);
+ for_writing ? PREF_SAVE_FILENAME : PREF_OPEN_FILENAME, NULL, false);
DIAG_ON(cast-qual)
}
@@ -1570,7 +1587,7 @@ prefs_register_directory_preference(module_t *module, const char *name,
{
DIAG_OFF(cast-qual)
register_string_like_preference(module, name, title, description,
- (char **)var, PREF_DIRNAME, NULL, FALSE);
+ (char **)var, PREF_DIRNAME, NULL, false);
DIAG_ON(cast-qual)
}
@@ -1578,7 +1595,7 @@ DIAG_ON(cast-qual)
static void
prefs_register_range_preference_common(module_t *module, const char *name,
const char *title, const char *description,
- range_t **var, guint32 max_value, int type)
+ range_t **var, uint32_t max_value, int type)
{
pref_t *preference;
@@ -1606,21 +1623,21 @@ prefs_register_range_preference_common(module_t *module, const char *name,
void
prefs_register_range_preference(module_t *module, const char *name,
const char *title, const char *description,
- range_t **var, guint32 max_value)
+ range_t **var, uint32_t max_value)
{
prefs_register_range_preference_common(module, name, title,
description, var, max_value, PREF_RANGE);
}
-gboolean
-prefs_set_range_value_work(pref_t *pref, const gchar *value,
- gboolean return_range_errors, unsigned int *changed_flags)
+bool
+prefs_set_range_value_work(pref_t *pref, const char *value,
+ bool return_range_errors, unsigned int *changed_flags)
{
range_t *newrange;
if (range_convert_str_work(wmem_epan_scope(), &newrange, value, pref->info.max_value,
return_range_errors) != CVT_NO_ERROR) {
- return FALSE; /* number was bad */
+ return false; /* number was bad */
}
if (!ranges_are_equal(*pref->varp.range, newrange)) {
@@ -1630,19 +1647,19 @@ prefs_set_range_value_work(pref_t *pref, const gchar *value,
} else {
wmem_free(wmem_epan_scope(), newrange);
}
- return TRUE;
+ return true;
}
/*
* For use by UI code that sets preferences.
*/
unsigned int
-prefs_set_stashed_range_value(pref_t *pref, const gchar *value)
+prefs_set_stashed_range_value(pref_t *pref, const char *value)
{
range_t *newrange;
if (range_convert_str_work(wmem_epan_scope(), &newrange, value, pref->info.max_value,
- TRUE) != CVT_NO_ERROR) {
+ true) != CVT_NO_ERROR) {
return 0; /* number was bad */
}
@@ -1656,7 +1673,7 @@ prefs_set_stashed_range_value(pref_t *pref, const gchar *value)
}
-gboolean prefs_add_list_value(pref_t *pref, void* value, pref_source_t source)
+bool prefs_add_list_value(pref_t *pref, void* value, pref_source_t source)
{
switch (source)
{
@@ -1674,7 +1691,7 @@ gboolean prefs_add_list_value(pref_t *pref, void* value, pref_source_t source)
break;
}
- return TRUE;
+ return true;
}
GList* prefs_get_list_value(pref_t *pref, pref_source_t source)
@@ -1695,9 +1712,9 @@ GList* prefs_get_list_value(pref_t *pref, pref_source_t source)
return NULL;
}
-gboolean prefs_set_range_value(pref_t *pref, range_t *value, pref_source_t source)
+bool prefs_set_range_value(pref_t *pref, range_t *value, pref_source_t source)
{
- gboolean changed = FALSE;
+ bool changed = false;
switch (source)
{
@@ -1705,21 +1722,21 @@ gboolean prefs_set_range_value(pref_t *pref, range_t *value, pref_source_t sourc
if (!ranges_are_equal(pref->default_val.range, value)) {
wmem_free(wmem_epan_scope(), pref->default_val.range);
pref->default_val.range = range_copy(wmem_epan_scope(), value);
- changed = TRUE;
+ changed = true;
}
break;
case pref_stashed:
if (!ranges_are_equal(pref->stashed_val.range, value)) {
wmem_free(wmem_epan_scope(), pref->stashed_val.range);
pref->stashed_val.range = range_copy(wmem_epan_scope(), value);
- changed = TRUE;
+ changed = true;
}
break;
case pref_current:
if (!ranges_are_equal(*pref->varp.range, value)) {
wmem_free(wmem_epan_scope(), *pref->varp.range);
*pref->varp.range = range_copy(wmem_epan_scope(), value);
- changed = TRUE;
+ changed = true;
}
break;
default:
@@ -1760,13 +1777,13 @@ range_t* prefs_get_range_value(const char *module_name, const char* pref_name)
}
void
-prefs_range_add_value(pref_t *pref, guint32 val)
+prefs_range_add_value(pref_t *pref, uint32_t val)
{
range_add_value(wmem_epan_scope(), pref->varp.range, val);
}
void
-prefs_range_remove_value(pref_t *pref, guint32 val)
+prefs_range_remove_value(pref_t *pref, uint32_t val)
{
range_remove_value(wmem_epan_scope(), pref->varp.range, val);
}
@@ -1833,9 +1850,9 @@ prefs_register_color_preference(module_t *module, const char *name,
preference->default_val.color = *color;
}
-gboolean prefs_set_color_value(pref_t *pref, color_t value, pref_source_t source)
+bool prefs_set_color_value(pref_t *pref, color_t value, pref_source_t source)
{
- gboolean changed = FALSE;
+ bool changed = false;
switch (source)
{
@@ -1843,7 +1860,7 @@ gboolean prefs_set_color_value(pref_t *pref, color_t value, pref_source_t source
if ((pref->default_val.color.red != value.red) ||
(pref->default_val.color.green != value.green) ||
(pref->default_val.color.blue != value.blue)) {
- changed = TRUE;
+ changed = true;
pref->default_val.color = value;
}
break;
@@ -1851,7 +1868,7 @@ gboolean prefs_set_color_value(pref_t *pref, color_t value, pref_source_t source
if ((pref->stashed_val.color.red != value.red) ||
(pref->stashed_val.color.green != value.green) ||
(pref->stashed_val.color.blue != value.blue)) {
- changed = TRUE;
+ changed = true;
pref->stashed_val.color = value;
}
break;
@@ -1859,7 +1876,7 @@ gboolean prefs_set_color_value(pref_t *pref, color_t value, pref_source_t source
if ((pref->varp.colorp->red != value.red) ||
(pref->varp.colorp->green != value.green) ||
(pref->varp.colorp->blue != value.blue)) {
- changed = TRUE;
+ changed = true;
*pref->varp.colorp = value;
}
break;
@@ -1942,8 +1959,8 @@ prefs_register_custom_preference(module_t *module, const char *name,
void
prefs_register_custom_preference_TCP_Analysis(module_t *module, const char *name,
const char *title, const char *description,
- gint *var, const enum_val_t *enumvals,
- gboolean radio_buttons)
+ int *var, const enum_val_t *enumvals,
+ bool radio_buttons)
{
pref_t *preference;
@@ -1961,7 +1978,7 @@ prefs_register_custom_preference_TCP_Analysis(module_t *module, const char *name
*/
void prefs_register_decode_as_range_preference(module_t *module, const char *name,
const char *title, const char *description, range_t **var,
- guint32 max_value)
+ uint32_t max_value)
{
prefs_register_range_preference_common(module, name, title,
description, var, max_value, PREF_DECODE_AS_RANGE);
@@ -1977,7 +1994,7 @@ prefs_register_password_preference(module_t *module, const char *name,
{
DIAG_OFF(cast-qual)
register_string_like_preference(module, name, title, description,
- (char **)var, PREF_PASSWORD, NULL, FALSE);
+ (char **)var, PREF_PASSWORD, NULL, false);
DIAG_ON(cast-qual)
}
@@ -1991,11 +2008,11 @@ prefs_register_dissector_preference(module_t *module, const char *name,
{
DIAG_OFF(cast-qual)
register_string_like_preference(module, name, title, description,
- (char **)var, PREF_DISSECTOR, NULL, FALSE);
+ (char **)var, PREF_DISSECTOR, NULL, false);
DIAG_ON(cast-qual)
}
-gboolean prefs_add_decode_as_value(pref_t *pref, guint value, gboolean replace)
+bool prefs_add_decode_as_value(pref_t *pref, unsigned value, bool replace)
{
switch(pref->type)
{
@@ -2017,10 +2034,10 @@ gboolean prefs_add_decode_as_value(pref_t *pref, guint value, gboolean replace)
break;
}
- return TRUE;
+ return true;
}
-gboolean prefs_remove_decode_as_value(pref_t *pref, guint value, gboolean set_default _U_)
+bool prefs_remove_decode_as_value(pref_t *pref, unsigned value, bool set_default _U_)
{
switch(pref->type)
{
@@ -2034,7 +2051,7 @@ gboolean prefs_remove_decode_as_value(pref_t *pref, guint value, gboolean set_de
break;
}
- return TRUE;
+ return true;
}
/*
@@ -2058,13 +2075,13 @@ prefs_set_preference_effect_fields(module_t *module, const char *name)
/*
* Check to see if a preference is obsolete.
*/
-extern gboolean
+extern bool
prefs_get_preference_obsolete(pref_t *pref)
{
if (pref)
- return (IS_PREF_OBSOLETE(pref->type) ? TRUE : FALSE);
+ return (IS_PREF_OBSOLETE(pref->type) ? true : false);
- return TRUE;
+ return true;
}
/*
@@ -2080,8 +2097,8 @@ prefs_set_preference_obsolete(pref_t *pref)
return PREFS_SET_NO_SUCH_PREF;
}
-guint
-pref_stash(pref_t *pref, gpointer unused _U_)
+unsigned
+pref_stash(pref_t *pref, void *unused _U_)
{
switch (pref->type) {
@@ -2130,8 +2147,8 @@ pref_stash(pref_t *pref, gpointer unused _U_)
return 0;
}
-guint
-pref_unstash(pref_t *pref, gpointer unstash_data_p)
+unsigned
+pref_unstash(pref_t *pref, void *unstash_data_p)
{
pref_unstash_data_t *unstash_data = (pref_unstash_data_t *)unstash_data_p;
dissector_table_t sub_dissectors = NULL;
@@ -2192,7 +2209,7 @@ pref_unstash(pref_t *pref, gpointer unstash_data_p)
case PREF_DECODE_AS_RANGE:
if (!ranges_are_equal(*pref->varp.range, pref->stashed_val.range)) {
- guint32 i, j;
+ uint32_t i, j;
unstash_data->module->prefs_changed_flags |= prefs_get_effect_flags(pref);
if (unstash_data->handle_decode_as) {
@@ -2328,8 +2345,8 @@ reset_stashed_pref(pref_t *pref) {
}
}
-guint
-pref_clean_stash(pref_t *pref, gpointer unused _U_)
+unsigned
+pref_clean_stash(pref_t *pref, void *unused _U_)
{
switch (pref->type) {
@@ -2389,12 +2406,12 @@ pref_clean_stash(pref_t *pref, gpointer unused _U_)
* If any of the callbacks return a non-zero value, stop and return that
* value, otherwise return 0.
*/
-guint
-prefs_pref_foreach(module_t *module, pref_cb callback, gpointer user_data)
+unsigned
+prefs_pref_foreach(module_t *module, pref_cb callback, void *user_data)
{
GList *elem;
pref_t *pref;
- guint ret;
+ unsigned ret;
for (elem = g_list_first(module->prefs); elem != NULL; elem = g_list_next(elem)) {
pref = (pref_t *)elem->data;
@@ -2505,10 +2522,10 @@ static void custom_pref_no_cb(pref_t* pref _U_) {}
#define PRS_COL_HIDDEN "column.hide"
#define PRS_COL_FMT "column.format"
#define PRS_COL_NUM "column.number"
-static module_t *gui_column_module = NULL;
+static module_t *gui_column_module;
static prefs_set_pref_e
-column_hidden_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_flags)
+column_hidden_set_cb(pref_t* pref, const char* value, unsigned int* changed_flags)
{
GList *clp;
fmt_data *cfmt;
@@ -2518,7 +2535,7 @@ column_hidden_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_fla
* Prefer the new preference to the old format-based preference if we've
* read it. (We probably could just compare the string to NULL and "".)
*/
- prefs.cols_hide_new = TRUE;
+ prefs.cols_hide_new = true;
(*changed_flags) |= prefs_set_string_value(pref, value, pref_current);
@@ -2552,7 +2569,7 @@ column_hidden_type_description_cb(void)
}
static char *
-column_hidden_to_str_cb(pref_t* pref, gboolean default_val)
+column_hidden_to_str_cb(pref_t* pref, bool default_val)
{
GString *cols_hidden;
GList *clp;
@@ -2577,21 +2594,21 @@ column_hidden_to_str_cb(pref_t* pref, gboolean default_val)
cidx++;
}
- return g_string_free (cols_hidden, FALSE);
+ return g_string_free (cols_hidden, false);
}
-static gboolean
+static bool
column_hidden_is_default_cb(pref_t* pref)
{
- char *cur_hidden_str = column_hidden_to_str_cb(pref, FALSE);
- gboolean is_default = g_strcmp0(cur_hidden_str, pref->default_val.string) == 0;
+ char *cur_hidden_str = column_hidden_to_str_cb(pref, false);
+ bool is_default = g_strcmp0(cur_hidden_str, pref->default_val.string) == 0;
g_free(cur_hidden_str);
return is_default;
}
static prefs_set_pref_e
-column_hidden_fmt_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_flags)
+column_hidden_fmt_set_cb(pref_t* pref, const char* value, unsigned int* changed_flags)
{
GList *clp;
fmt_data *cfmt;
@@ -2629,7 +2646,7 @@ column_hidden_fmt_type_description_cb(void)
}
static char *
-column_hidden_fmt_to_str_cb(pref_t* pref, gboolean default_val)
+column_hidden_fmt_to_str_cb(pref_t* pref, bool default_val)
{
GString *cols_hidden;
GList *clp;
@@ -2663,14 +2680,14 @@ column_hidden_fmt_to_str_cb(pref_t* pref, gboolean default_val)
clp = clp->next;
}
- return g_string_free (cols_hidden, FALSE);
+ return g_string_free (cols_hidden, false);
}
-static gboolean
+static bool
column_hidden_fmt_is_default_cb(pref_t* pref)
{
- char *cur_hidden_str = column_hidden_fmt_to_str_cb(pref, FALSE);
- gboolean is_default = g_strcmp0(cur_hidden_str, pref->default_val.string) == 0;
+ char *cur_hidden_str = column_hidden_fmt_to_str_cb(pref, false);
+ bool is_default = g_strcmp0(cur_hidden_str, pref->default_val.string) == 0;
g_free(cur_hidden_str);
return is_default;
@@ -2686,7 +2703,7 @@ column_num_reset_cb(pref_t* pref)
}
static prefs_set_pref_e
-column_num_set_cb(pref_t* pref _U_, const gchar* value _U_, unsigned int* changed_flags _U_)
+column_num_set_cb(pref_t* pref _U_, const char* value _U_, unsigned int* changed_flags _U_)
{
/* Don't write this to the preferences file */
return PREFS_SET_OK;
@@ -2704,14 +2721,14 @@ column_num_type_description_cb(void)
return g_strdup("");
}
-static gboolean
+static bool
column_num_is_default_cb(pref_t* pref _U_)
{
- return TRUE;
+ return true;
}
static char *
-column_num_to_str_cb(pref_t* pref _U_, gboolean default_val _U_)
+column_num_to_str_cb(pref_t* pref _U_, bool default_val _U_)
{
return g_strdup("");
}
@@ -2788,11 +2805,11 @@ column_format_reset_cb(pref_t* pref)
}
static prefs_set_pref_e
-column_format_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_flags _U_)
+column_format_set_cb(pref_t* pref, const char* value, unsigned int* changed_flags _U_)
{
GList *col_l, *col_l_elt;
fmt_data *cfmt;
- gint llen;
+ int llen;
pref_t *hidden_pref, *col_num_pref;
col_l = prefs_get_string_list(value);
@@ -2847,7 +2864,7 @@ column_format_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_fla
int cidx = 1;
while (col_l_elt) {
cfmt = g_new(fmt_data,1);
- cfmt->title = g_strdup((gchar *)col_l_elt->data);
+ cfmt->title = g_strdup((char *)col_l_elt->data);
col_l_elt = col_l_elt->next;
parse_column_format(cfmt, (char *)col_l_elt->data);
if (prefs.cols_hide_new) {
@@ -2879,20 +2896,20 @@ column_format_type_description_cb(void)
return g_strdup("Each pair of strings consists of a column title and its format");
}
-static gboolean
+static bool
column_format_is_default_cb(pref_t* pref)
{
GList *clp = *pref->varp.list,
*pref_col = g_list_first(clp),
*def_col = g_list_first(pref->default_val.list);
fmt_data *cfmt, *def_cfmt;
- gboolean is_default = TRUE;
+ bool is_default = true;
pref_t *col_num_pref;
/* See if the column data has changed from the default */
col_num_pref = prefs_find_preference(gui_column_module, PRS_COL_NUM);
if (col_num_pref && *col_num_pref->varp.uint != col_num_pref->default_val.uint) {
- is_default = FALSE;
+ is_default = false;
} else {
while (pref_col && def_col) {
cfmt = (fmt_data *) pref_col->data;
@@ -2902,7 +2919,7 @@ column_format_is_default_cb(pref_t* pref)
(((cfmt->fmt == COL_CUSTOM) && (cfmt->custom_fields)) &&
((g_strcmp0(cfmt->custom_fields, def_cfmt->custom_fields) != 0) ||
(cfmt->resolved != def_cfmt->resolved)))) {
- is_default = FALSE;
+ is_default = false;
break;
}
@@ -2915,13 +2932,13 @@ column_format_is_default_cb(pref_t* pref)
}
static char *
-column_format_to_str_cb(pref_t* pref, gboolean default_val)
+column_format_to_str_cb(pref_t* pref, bool default_val)
{
GList *pref_l = default_val ? pref->default_val.list : *pref->varp.list;
GList *clp = g_list_first(pref_l);
GList *col_l;
fmt_data *cfmt;
- gchar *prefs_fmt;
+ char *prefs_fmt;
char *column_format_str;
col_l = NULL;
@@ -2961,13 +2978,13 @@ capture_column_init_cb(pref_t* pref, GList** capture_cols_values)
/* */
while (ccv_list) {
- dlist = g_list_append(dlist, g_strdup((gchar *)ccv_list->data));
+ dlist = g_list_append(dlist, g_strdup((char *)ccv_list->data));
ccv_list = ccv_list->next;
}
pref->default_val.list = dlist;
pref->varp.list = &prefs.capture_columns;
- pref->stashed_val.boolval = FALSE;
+ pref->stashed_val.boolval = false;
}
/* Free the prefs->capture_columns list strings and remove the list entries.
@@ -2980,7 +2997,7 @@ capture_column_free_cb(pref_t* pref)
prefs_clear_string_list(prefs.capture_columns);
prefs.capture_columns = NULL;
- if (pref->stashed_val.boolval == TRUE) {
+ if (pref->stashed_val.boolval == true) {
prefs_clear_string_list(pref->default_val.list);
pref->default_val.list = NULL;
}
@@ -2997,17 +3014,17 @@ capture_column_reset_cb(pref_t* pref)
prefs_clear_string_list(*pref->varp.list);
for (dlist = pref->default_val.list; dlist != NULL; dlist = g_list_next(dlist)) {
- vlist = g_list_append(vlist, g_strdup((gchar *)dlist->data));
+ vlist = g_list_append(vlist, g_strdup((char *)dlist->data));
}
*pref->varp.list = vlist;
}
static prefs_set_pref_e
-capture_column_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_flags _U_)
+capture_column_set_cb(pref_t* pref, const char* value, unsigned int* changed_flags _U_)
{
GList *col_l = prefs_get_string_list(value);
GList *col_l_elt;
- gchar *col_name;
+ char *col_name;
int i;
if (col_l == NULL)
@@ -3018,7 +3035,7 @@ capture_column_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_fl
/* If value (the list of capture.columns read from preferences) is empty, set capture.columns
to the full list of valid capture column names. */
col_l_elt = g_list_first(col_l);
- if (!(*(gchar *)col_l_elt->data)) {
+ if (!(*(char *)col_l_elt->data)) {
for (i = 0; i < num_capture_cols; i++) {
col_name = g_strdup(capture_cols[i]);
prefs.capture_columns = g_list_append(prefs.capture_columns, col_name);
@@ -3028,12 +3045,12 @@ capture_column_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_fl
/* Verify that all the column names are valid. If not, use the entire list of valid columns.
*/
while (col_l_elt) {
- gboolean found_match = FALSE;
- col_name = (gchar *)col_l_elt->data;
+ bool found_match = false;
+ col_name = (char *)col_l_elt->data;
for (i = 0; i < num_capture_cols; i++) {
if (strcmp(col_name, capture_cols[i])==0) {
- found_match = TRUE;
+ found_match = true;
break;
}
}
@@ -3052,7 +3069,7 @@ capture_column_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_fl
col_l_elt = g_list_first(col_l);
while (col_l_elt) {
- col_name = (gchar *)col_l_elt->data;
+ col_name = (char *)col_l_elt->data;
prefs.capture_columns = g_list_append(prefs.capture_columns, col_name);
col_l_elt = col_l_elt->next;
}
@@ -3076,17 +3093,17 @@ capture_column_type_description_cb(void)
CAPTURE_COL_TYPE_DESCRIPTION);
}
-static gboolean
+static bool
capture_column_is_default_cb(pref_t* pref)
{
GList *pref_col = g_list_first(prefs.capture_columns),
*def_col = g_list_first(pref->default_val.list);
- gboolean is_default = TRUE;
+ bool is_default = true;
/* See if the column data has changed from the default */
while (pref_col && def_col) {
- if (strcmp((gchar *)pref_col->data, (gchar *)def_col->data) != 0) {
- is_default = FALSE;
+ if (strcmp((char *)pref_col->data, (char *)def_col->data) != 0) {
+ is_default = false;
break;
}
pref_col = pref_col->next;
@@ -3096,23 +3113,23 @@ capture_column_is_default_cb(pref_t* pref)
/* Ensure the same column count */
if (((pref_col == NULL) && (def_col != NULL)) ||
((pref_col != NULL) && (def_col == NULL)))
- is_default = FALSE;
+ is_default = false;
return is_default;
}
static char *
-capture_column_to_str_cb(pref_t* pref, gboolean default_val)
+capture_column_to_str_cb(pref_t* pref, bool default_val)
{
GList *pref_l = default_val ? pref->default_val.list : prefs.capture_columns;
GList *clp = g_list_first(pref_l);
GList *col_l = NULL;
- gchar *col;
+ char *col;
char *capture_column_str;
while (clp) {
- col = (gchar *) clp->data;
+ col = (char *) clp->data;
col_l = g_list_append(col_l, g_strdup(col));
clp = clp->next;
}
@@ -3123,7 +3140,7 @@ capture_column_to_str_cb(pref_t* pref, gboolean default_val)
}
static prefs_set_pref_e
-colorized_frame_set_cb(pref_t* pref, const gchar* value, unsigned int* changed_flags)
+colorized_frame_set_cb(pref_t* pref, const char* value, unsigned int* changed_flags)
{
(*changed_flags) |= prefs_set_string_value(pref, value, pref_current);
return PREFS_SET_OK;
@@ -3150,14 +3167,14 @@ colorized_frame_type_description_cb(void)
return g_strdup("");
}
-static gboolean
+static bool
colorized_frame_is_default_cb(pref_t* pref _U_)
{
- return TRUE;
+ return true;
}
static char *
-colorized_frame_to_str_cb(pref_t* pref _U_, gboolean default_val _U_)
+colorized_frame_to_str_cb(pref_t* pref _U_, bool default_val _U_)
{
return g_strdup("");
}
@@ -3165,9 +3182,9 @@ colorized_frame_to_str_cb(pref_t* pref _U_, gboolean default_val _U_)
/*
* Register all non-dissector modules' preferences.
*/
-static module_t *gui_module = NULL;
-static module_t *gui_color_module = NULL;
-static module_t *nameres_module = NULL;
+static module_t *gui_module;
+static module_t *gui_color_module;
+static module_t *nameres_module;
static void
prefs_register_modules(void)
@@ -3190,10 +3207,10 @@ prefs_register_modules(void)
* preference "string compare list" in set_pref()
*/
extcap_module = prefs_register_module(NULL, "extcap", "Extcap Utilities",
- "Extcap Utilities", NULL, FALSE);
+ "Extcap Utilities", NULL, false);
/* Setting default value to true */
- prefs.extcap_save_on_start = TRUE;
+ prefs.extcap_save_on_start = true;
prefs_register_bool_preference(extcap_module, "gui_save_on_start",
"Save arguments on start of capture",
"Save arguments on start of capture",
@@ -3206,7 +3223,7 @@ prefs_register_modules(void)
* preference "string compare list" in set_pref()
*/
gui_module = prefs_register_module(NULL, "gui", "User Interface",
- "User Interface", &gui_callback, FALSE);
+ "User Interface", &gui_callback, false);
/*
* The GUI preferences don't affect dissection in general.
* Any changes are signaled in other ways, so PREF_EFFECT_GUI doesn't
@@ -3228,7 +3245,7 @@ prefs_register_modules(void)
prefs_register_enum_preference(gui_module, "console_open",
"Open a console window",
"Open a console window (Windows only)",
- (int *)&ws_log_console_open, gui_console_open_type, FALSE);
+ (int *)&ws_log_console_open, gui_console_open_type, false);
prefs_register_obsolete_preference(gui_module, "scrollbar_on_right");
prefs_register_obsolete_preference(gui_module, "packet_list_sel_browse");
@@ -3265,7 +3282,7 @@ prefs_register_modules(void)
custom_cbs.to_str_cb = column_hidden_to_str_cb;
register_string_like_preference(gui_column_module, PRS_COL_HIDDEN, "Packet list hidden columns",
"List all column indices (1-indexed) to hide in the packet list",
- &cols_hidden_list, PREF_CUSTOM, &custom_cbs, FALSE);
+ &cols_hidden_list, PREF_CUSTOM, &custom_cbs, false);
custom_cbs.set_cb = column_hidden_fmt_set_cb;
custom_cbs.type_name_cb = column_hidden_fmt_type_name_cb;
@@ -3275,7 +3292,7 @@ prefs_register_modules(void)
register_string_like_preference(gui_column_module, PRS_COL_HIDDEN_FMT, "Packet list hidden column formats (deprecated)",
"List all column formats to hide in the packet list; deprecated in favor of the index-based preference",
- &cols_hidden_fmt_list, PREF_CUSTOM, &custom_cbs, FALSE);
+ &cols_hidden_fmt_list, PREF_CUSTOM, &custom_cbs, false);
custom_cbs.free_cb = column_format_free_cb;
custom_cbs.reset_cb = column_format_reset_cb;
@@ -3312,7 +3329,7 @@ prefs_register_modules(void)
register_string_like_preference(gui_font_module, "qt.font_name", "Font name",
"Font name for packet list, protocol tree, and hex dump panes. (Qt)",
- &prefs.gui_font_name, PREF_STRING, NULL, TRUE);
+ &prefs.gui_font_name, PREF_STRING, NULL, true);
/* User Interface : Colors */
gui_color_module = prefs_register_subtree(gui_module, "Colors", "Colors", NULL);
@@ -3326,7 +3343,7 @@ prefs_register_modules(void)
"Background color for an active selected item", &prefs.gui_active_bg);
prefs_register_enum_preference(gui_color_module, "active_frame.style", "Color style for an active selected item",
- "Color style for an active selected item", &prefs.gui_active_style, gui_selection_style, FALSE);
+ "Color style for an active selected item", &prefs.gui_active_style, gui_selection_style, false);
prefs_register_color_preference(gui_color_module, "inactive_frame.fg", "Foreground color for an inactive selected item",
"Foreground color for an inactive selected item", &prefs.gui_inactive_fg);
@@ -3335,7 +3352,7 @@ prefs_register_modules(void)
"Background color for an inactive selected item", &prefs.gui_inactive_bg);
prefs_register_enum_preference(gui_color_module, "inactive_frame.style", "Color style for an inactive selected item",
- "Color style for an inactive selected item", &prefs.gui_inactive_style, gui_selection_style, FALSE);
+ "Color style for an inactive selected item", &prefs.gui_inactive_style, gui_selection_style, false);
prefs_register_color_preference(gui_color_module, "marked_frame.fg", "Color preferences for a marked frame",
"Color preferences for a marked frame", &prefs.gui_marked_fg);
@@ -3370,7 +3387,7 @@ prefs_register_modules(void)
custom_cbs.to_str_cb = colorized_frame_to_str_cb;
register_string_like_preference(gui_column_module, "colorized_frame.fg", "Colorized Foreground",
"Filter Colorized Foreground",
- &prefs.gui_colorized_fg, PREF_CUSTOM, &custom_cbs, TRUE);
+ &prefs.gui_colorized_fg, PREF_CUSTOM, &custom_cbs, true);
custom_cbs.free_cb = free_string_like_preference;
custom_cbs.reset_cb = reset_string_like_preference;
@@ -3381,7 +3398,7 @@ prefs_register_modules(void)
custom_cbs.to_str_cb = colorized_frame_to_str_cb;
register_string_like_preference(gui_column_module, "colorized_frame.bg", "Colorized Background",
"Filter Colorized Background",
- &prefs.gui_colorized_bg, PREF_CUSTOM, &custom_cbs, TRUE);
+ &prefs.gui_colorized_bg, PREF_CUSTOM, &custom_cbs, true);
prefs_register_color_preference(gui_color_module, "color_filter_bg.valid", "Valid color filter background",
"Valid color filter background", &prefs.gui_text_valid);
@@ -3395,7 +3412,7 @@ prefs_register_modules(void)
prefs_register_enum_preference(gui_module, "fileopen.style",
"Where to start the File Open dialog box",
"Where to start the File Open dialog box",
- &prefs.gui_fileopen_style, gui_fileopen_style, FALSE);
+ &prefs.gui_fileopen_style, gui_fileopen_style, false);
prefs_register_uint_preference(gui_module, "recent_files_count.max",
"The max. number of items in the open recent files list",
@@ -3411,7 +3428,7 @@ prefs_register_modules(void)
register_string_like_preference(gui_module, "fileopen.dir", "Start Directory",
"Directory to start in when opening File Open dialog.",
- &prefs.gui_fileopen_dir, PREF_DIRNAME, NULL, TRUE);
+ &prefs.gui_fileopen_dir, PREF_DIRNAME, NULL, true);
prefs_register_obsolete_preference(gui_module, "fileopen.remembered_dir");
@@ -3423,7 +3440,7 @@ prefs_register_modules(void)
register_string_like_preference(gui_module, "tlskeylog_command", "Program to launch with TLS Keylog",
"Program path or command line to launch with SSLKEYLOGFILE",
- &prefs.gui_tlskeylog_command, PREF_STRING, NULL, TRUE);
+ &prefs.gui_tlskeylog_command, PREF_STRING, NULL, true);
prefs_register_bool_preference(gui_module, "ask_unsaved",
"Ask to save unsaved capture files",
@@ -3468,7 +3485,7 @@ prefs_register_modules(void)
prefs_register_enum_preference(gui_module, "toolbar_main_style",
"Main Toolbar style",
"Main Toolbar style",
- &prefs.gui_toolbar_main_style, gui_toolbar_style, FALSE);
+ &prefs.gui_toolbar_main_style, gui_toolbar_style, false);
prefs_register_obsolete_preference(gui_module, "toolbar_filter_style");
prefs_register_obsolete_preference(gui_module, "webbrowser");
@@ -3481,7 +3498,7 @@ prefs_register_modules(void)
prefs_register_enum_preference(gui_module, "update.channel",
"Update channel",
"The type of update to fetch. You should probably leave this set to STABLE.",
- (gint*)(void*)(&prefs.gui_update_channel), gui_update_channel, FALSE);
+ (int*)(void*)(&prefs.gui_update_channel), gui_update_channel, false);
prefs_register_uint_preference(gui_module, "update.interval",
"How often to check for software updates",
@@ -3508,7 +3525,7 @@ prefs_register_modules(void)
"%P = profile name\n"
"%S = a conditional separator (\" - \") that only shows when surrounded by variables with values or static text\n"
"%V = version info",
- &prefs.gui_window_title, PREF_STRING, NULL, TRUE);
+ &prefs.gui_window_title, PREF_STRING, NULL, true);
register_string_like_preference(gui_module, "prepend_window_title", "Custom window title prefix",
"Custom window title to be prepended to the existing title\n"
@@ -3517,16 +3534,16 @@ prefs_register_modules(void)
"%P = profile name\n"
"%S = a conditional separator (\" - \") that only shows when surrounded by variables with values or static text\n"
"%V = version info",
- &prefs.gui_prepend_window_title, PREF_STRING, NULL, TRUE);
+ &prefs.gui_prepend_window_title, PREF_STRING, NULL, true);
register_string_like_preference(gui_module, "start_title", "Custom start page title",
"Custom start page title",
- &prefs.gui_start_title, PREF_STRING, NULL, TRUE);
+ &prefs.gui_start_title, PREF_STRING, NULL, true);
prefs_register_enum_preference(gui_module, "version_placement",
"Show version in the start page and/or main screen's title bar",
"Show version in the start page and/or main screen's title bar",
- (gint*)(void*)(&prefs.gui_version_placement), gui_version_placement_type, FALSE);
+ (int*)(void*)(&prefs.gui_version_placement), gui_version_placement_type, false);
prefs_register_obsolete_preference(gui_module, "auto_scroll_on_expand");
prefs_register_obsolete_preference(gui_module, "auto_scroll_percentage");
@@ -3567,25 +3584,25 @@ prefs_register_modules(void)
"Layout type",
"Layout type (1-6)",
10,
- (guint*)(void*)(&prefs.gui_layout_type));
+ (unsigned*)(void*)(&prefs.gui_layout_type));
prefs_set_effect_flags_by_name(gui_layout_module, "layout_type", layout_gui_flags);
prefs_register_enum_preference(gui_layout_module, "layout_content_1",
"Layout content of the pane 1",
"Layout content of the pane 1",
- (gint*)(void*)(&prefs.gui_layout_content_1), gui_layout_content, FALSE);
+ (int*)(void*)(&prefs.gui_layout_content_1), gui_layout_content, false);
prefs_set_effect_flags_by_name(gui_layout_module, "layout_content_1", layout_gui_flags);
prefs_register_enum_preference(gui_layout_module, "layout_content_2",
"Layout content of the pane 2",
"Layout content of the pane 2",
- (gint*)(void*)(&prefs.gui_layout_content_2), gui_layout_content, FALSE);
+ (int*)(void*)(&prefs.gui_layout_content_2), gui_layout_content, false);
prefs_set_effect_flags_by_name(gui_layout_module, "layout_content_2", layout_gui_flags);
prefs_register_enum_preference(gui_layout_module, "layout_content_3",
"Layout content of the pane 3",
"Layout content of the pane 3",
- (gint*)(void*)(&prefs.gui_layout_content_3), gui_layout_content, FALSE);
+ (int*)(void*)(&prefs.gui_layout_content_3), gui_layout_content, false);
prefs_set_effect_flags_by_name(gui_layout_module, "layout_content_3", layout_gui_flags);
prefs_register_bool_preference(gui_layout_module, "packet_list_separator.enabled",
@@ -3621,12 +3638,12 @@ prefs_register_modules(void)
prefs_register_enum_preference(gui_layout_module, "packet_dialog_layout",
"Packet Dialog layout",
"Packet Dialog layout",
- (guint*)(void*)(&prefs.gui_packet_dialog_layout), gui_packet_dialog_layout, FALSE);
+ (unsigned*)(void*)(&prefs.gui_packet_dialog_layout), gui_packet_dialog_layout, false);
prefs_register_enum_preference(gui_module, "packet_list_elide_mode",
"Elide mode",
"The position of \"...\" in packet list text.",
- (gint*)(void*)(&prefs.gui_packet_list_elide_mode), gui_packet_list_elide_mode, FALSE);
+ (int*)(void*)(&prefs.gui_packet_list_elide_mode), gui_packet_list_elide_mode, false);
prefs_register_uint_preference(gui_module, "decimal_places1",
"Count of decimal places for values of type 1",
"Sets the count of decimal places for values of type 1."
@@ -3713,7 +3730,7 @@ prefs_register_modules(void)
"7 = USB,\n"
"8 = External Capture,\n"
"9 = Virtual",
- &prefs.gui_interfaces_hide_types, PREF_STRING, NULL, TRUE);
+ &prefs.gui_interfaces_hide_types, PREF_STRING, NULL, true);
prefs_register_bool_preference(gui_module, "io_graph_automatic_update",
"Enables automatic updates for IO Graph",
@@ -3737,7 +3754,7 @@ prefs_register_modules(void)
* preference "string compare list" in set_pref()
*/
console_module = prefs_register_module(NULL, "console", "Console",
- "Console logging and debugging output", NULL, FALSE);
+ "Console logging and debugging output", NULL, false);
prefs_register_obsolete_preference(console_module, "log.level");
@@ -3761,41 +3778,41 @@ prefs_register_modules(void)
* preference "string compare list" in set_pref()
*/
capture_module = prefs_register_module(NULL, "capture", "Capture",
- "Capture preferences", NULL, FALSE);
+ "Capture preferences", NULL, false);
/* Capture preferences don't affect dissection */
prefs_set_module_effect_flags(capture_module, PREF_EFFECT_CAPTURE);
register_string_like_preference(capture_module, "device", "Default capture device",
"Default capture device",
- &prefs.capture_device, PREF_STRING, NULL, FALSE);
+ &prefs.capture_device, PREF_STRING, NULL, false);
register_string_like_preference(capture_module, "devices_linktypes", "Interface link-layer header type",
"Interface link-layer header types (Ex: en0(1),en1(143),...)",
- &prefs.capture_devices_linktypes, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_linktypes, PREF_STRING, NULL, false);
register_string_like_preference(capture_module, "devices_descr", "Interface descriptions",
"Interface descriptions (Ex: eth0(eth0 descr),eth1(eth1 descr),...)",
- &prefs.capture_devices_descr, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_descr, PREF_STRING, NULL, false);
register_string_like_preference(capture_module, "devices_hide", "Hide interface",
"Hide interface? (Ex: eth0,eth3,...)",
- &prefs.capture_devices_hide, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_hide, PREF_STRING, NULL, false);
register_string_like_preference(capture_module, "devices_monitor_mode", "Capture in monitor mode",
"By default, capture in monitor mode on interface? (Ex: eth0,eth3,...)",
- &prefs.capture_devices_monitor_mode, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_monitor_mode, PREF_STRING, NULL, false);
register_string_like_preference(capture_module, "devices_buffersize", "Interface buffer size",
"Interface buffer size (Ex: en0(1),en1(143),...)",
- &prefs.capture_devices_buffersize, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_buffersize, PREF_STRING, NULL, false);
register_string_like_preference(capture_module, "devices_snaplen", "Interface snap length",
"Interface snap length (Ex: en0(65535),en1(1430),...)",
- &prefs.capture_devices_snaplen, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_snaplen, PREF_STRING, NULL, false);
register_string_like_preference(capture_module, "devices_pmode", "Interface promiscuous mode",
"Interface promiscuous mode (Ex: en0(0),en1(1),...)",
- &prefs.capture_devices_pmode, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_pmode, PREF_STRING, NULL, false);
prefs_register_bool_preference(capture_module, "prom_mode", "Capture in promiscuous mode",
"Capture in promiscuous mode?", &prefs.capture_prom_mode);
@@ -3805,7 +3822,7 @@ prefs_register_modules(void)
register_string_like_preference(capture_module, "devices_filter", "Interface capture filter",
"Interface capture filter (Ex: en0(tcp),en1(udp),...)",
- &prefs.capture_devices_filter, PREF_STRING, NULL, FALSE);
+ &prefs.capture_devices_filter, PREF_STRING, NULL, false);
prefs_register_bool_preference(capture_module, "pcap_ng", "Capture in pcapng format",
"Capture in pcapng format?", &prefs.capture_pcap_ng);
@@ -3844,7 +3861,7 @@ prefs_register_modules(void)
/* Name Resolution */
nameres_module = prefs_register_module(NULL, "nameres", "Name Resolution",
- "Name Resolution", addr_resolve_pref_apply, TRUE);
+ "Name Resolution", addr_resolve_pref_apply, true);
addr_resolve_pref_init(nameres_module);
oid_pref_init(nameres_module);
maxmind_db_pref_init(nameres_module);
@@ -3854,18 +3871,18 @@ prefs_register_modules(void)
* in order to avoid errors when reading older preference files.
*/
printing = prefs_register_module(NULL, "print", "Printing",
- "Printing", NULL, FALSE);
+ "Printing", NULL, false);
prefs_register_obsolete_preference(printing, "format");
prefs_register_obsolete_preference(printing, "command");
prefs_register_obsolete_preference(printing, "file");
/* Codecs */
codecs_module = prefs_register_module(NULL, "codecs", "Codecs",
- "Codecs", NULL, TRUE);
+ "Codecs", NULL, true);
/* Statistics */
stats_module = prefs_register_module(NULL, "statistics", "Statistics",
- "Statistics", &stats_callback, TRUE);
+ "Statistics", &stats_callback, true);
prefs_register_uint_preference(stats_module, "update_interval",
"Tap update interval in ms",
@@ -3873,6 +3890,16 @@ prefs_register_modules(void)
10,
&prefs.tap_update_interval);
+ prefs_register_uint_preference(stats_module, "flow_graph_max_export_items",
+ "Maximum Flow Graph items to export as image",
+ "The maximum number of Flow Graph items (frames) "
+ "to include when exporting the graph as an image. "
+ "Note that some formats (e.g., JPEG) have inherent "
+ "pixel limits and image viewers might be unable to "
+ "handle very large images.",
+ 10,
+ &prefs.flow_graph_max_export_items);
+
prefs_register_bool_preference(stats_module, "st_enable_burstinfo",
"Enable the calculation of burst information",
"If enabled burst rates will be calculated for statistics that use the stats_tree system. "
@@ -3903,7 +3930,7 @@ prefs_register_modules(void)
"Default sort column for stats_tree stats",
"Sets the default column by which stats based on the stats_tree "
"system is sorted.",
- &prefs.st_sort_defcolflag, st_sort_col_vals, FALSE);
+ &prefs.st_sort_defcolflag, st_sort_col_vals, false);
prefs_register_bool_preference(stats_module, "st_sort_defdescending",
"Default stats_tree sort order is descending",
@@ -3943,7 +3970,7 @@ prefs_register_modules(void)
/* Protocols */
protocols_module = prefs_register_module(NULL, "protocols", "Protocols",
- "Protocols", NULL, TRUE);
+ "Protocols", NULL, true);
prefs_register_bool_preference(protocols_module, "display_hidden_proto_items",
"Display hidden protocol items",
@@ -3971,37 +3998,43 @@ prefs_register_modules(void)
"Ignore frames that are exact duplicates of any previous frame.",
&prefs.ignore_dup_frames);
+ prefs_register_enum_preference(protocols_module, "conversation_deinterlacing_key",
+ "Deinterlacing conversations key",
+ "Use this key for deinterlacing conversations.",
+ (int *)&prefs.conversation_deinterlacing_key, conv_deint_options, false);
+
prefs_register_uint_preference(protocols_module, "ignore_dup_frames_cache_entries",
"The max number of hashes to keep in memory for determining duplicates frames",
"If \"Ignore duplicate frames\" is set, this setting sets the maximum number "
"of cache entries to maintain. A 0 means no limit.",
10, &prefs.ignore_dup_frames_cache_entries);
+
/* Obsolete preferences
* These "modules" were reorganized/renamed to correspond to their GUI
* configuration screen within the preferences dialog
*/
/* taps is now part of the stats module */
- prefs_register_module(NULL, "taps", "TAPS", "TAPS", NULL, FALSE);
+ prefs_register_module(NULL, "taps", "TAPS", "TAPS", NULL, false);
/* packet_list is now part of the protocol (parent) module */
- prefs_register_module(NULL, "packet_list", "PACKET_LIST", "PACKET_LIST", NULL, FALSE);
+ prefs_register_module(NULL, "packet_list", "PACKET_LIST", "PACKET_LIST", NULL, false);
/* stream is now part of the gui module */
- prefs_register_module(NULL, "stream", "STREAM", "STREAM", NULL, FALSE);
+ prefs_register_module(NULL, "stream", "STREAM", "STREAM", NULL, false);
}
/* Parse through a list of comma-separated, possibly quoted strings.
Return a list of the string data. */
GList *
-prefs_get_string_list(const gchar *str)
+prefs_get_string_list(const char *str)
{
enum { PRE_STRING, IN_QUOT, NOT_IN_QUOT };
- gint state = PRE_STRING, i = 0;
- gboolean backslash = FALSE;
- guchar cur_c;
- const gsize default_size = 64;
+ int state = PRE_STRING, i = 0;
+ bool backslash = false;
+ unsigned char cur_c;
+ const size_t default_size = 64;
GString *slstr = NULL;
GList *sl = NULL;
@@ -4016,14 +4049,14 @@ prefs_get_string_list(const gchar *str)
if (state == IN_QUOT || backslash) {
/* We were in the middle of a quoted string or backslash escape,
and ran out of characters; that's an error. */
- g_string_free(slstr, TRUE);
+ g_string_free(slstr, true);
prefs_clear_string_list(sl);
return NULL;
}
if (slstr->len > 0)
- sl = g_list_append(sl, g_string_free(slstr, FALSE));
+ sl = g_list_append(sl, g_string_free(slstr, false));
else
- g_string_free(slstr, TRUE);
+ g_string_free(slstr, true);
break;
}
if (cur_c == '"' && !backslash) {
@@ -4051,7 +4084,7 @@ prefs_get_string_list(const gchar *str)
backslash; escape the next character.
This also means we've started a new string. */
- backslash = TRUE;
+ backslash = true;
if (state == PRE_STRING)
state = NOT_IN_QUOT;
} else if (cur_c == ',' && state != IN_QUOT && !backslash) {
@@ -4059,7 +4092,7 @@ prefs_get_string_list(const gchar *str)
and it wasn't preceded by a backslash; it's the end of
the string we were working on... */
if (slstr->len > 0) {
- sl = g_list_append(sl, g_string_free(slstr, FALSE));
+ sl = g_list_append(sl, g_string_free(slstr, false));
slstr = g_string_sized_new(default_size);
}
@@ -4074,7 +4107,7 @@ prefs_get_string_list(const gchar *str)
g_string_append_c(slstr, cur_c);
/* If it was backslash-escaped, we're done with the backslash escape. */
- backslash = FALSE;
+ backslash = false;
}
i++;
}
@@ -4085,13 +4118,13 @@ char *join_string_list(GList *sl)
{
GString *joined_str = g_string_new("");
GList *cur, *first;
- gchar *str;
- guint item_count = 0;
+ char *str;
+ unsigned item_count = 0;
cur = first = g_list_first(sl);
while (cur) {
item_count++;
- str = (gchar *)cur->data;
+ str = (char *)cur->data;
if (cur != first)
g_string_append_c(joined_str, ',');
@@ -4119,7 +4152,7 @@ char *join_string_list(GList *sl)
cur = cur->next;
}
- return g_string_free(joined_str, FALSE);
+ return g_string_free(joined_str, false);
}
void
@@ -4129,7 +4162,7 @@ prefs_clear_string_list(GList *sl)
}
/*
- * Takes a string, a pointer to an array of "enum_val_t"s, and a default gint
+ * Takes a string, a pointer to an array of "enum_val_t"s, and a default int
* value.
* The array must be terminated by an entry with a null "name" string.
*
@@ -4146,9 +4179,9 @@ prefs_clear_string_list(GList *sl)
* Otherwise, the default value that was passed as the third argument is
* returned.
*/
-static gint
+static int
find_val_for_string(const char *needle, const enum_val_t *haystack,
- gint default_value)
+ int default_value)
{
int i;
@@ -4202,7 +4235,7 @@ init_prefs(void)
prefs_register_modules();
- prefs_initialized = TRUE;
+ prefs_initialized = true;
}
/*
@@ -4216,7 +4249,7 @@ static void
pre_init_prefs(void)
{
int i;
- gchar *col_name;
+ char *col_name;
fmt_data *cfmt;
static const char *col_fmt_packets[] = {
"No.", "%m", "Time", "%t",
@@ -4245,7 +4278,7 @@ pre_init_prefs(void)
num_cols = 12;
}
- prefs.restore_filter_after_following_stream = FALSE;
+ prefs.restore_filter_after_following_stream = false;
prefs.gui_toolbar_main_style = TB_STYLE_ICONS;
/* We try to find the best font in the Qt code */
g_free(prefs.gui_font_name);
@@ -4317,9 +4350,9 @@ pre_init_prefs(void)
prefs.gui_text_deprecated.blue = 0xAFFF;
}
- prefs.gui_geometry_save_position = TRUE;
- prefs.gui_geometry_save_size = TRUE;
- prefs.gui_geometry_save_maximized= TRUE;
+ prefs.gui_geometry_save_position = true;
+ prefs.gui_geometry_save_size = true;
+ prefs.gui_geometry_save_maximized= true;
prefs.gui_fileopen_style = FO_STYLE_LAST_OPENED;
prefs.gui_recent_df_entries_max = 10;
prefs.gui_recent_files_count_max = 10;
@@ -4328,10 +4361,10 @@ pre_init_prefs(void)
prefs.gui_fileopen_preview = 3;
g_free(prefs.gui_tlskeylog_command);
prefs.gui_tlskeylog_command = g_strdup("");
- prefs.gui_ask_unsaved = TRUE;
- prefs.gui_autocomplete_filter = TRUE;
- prefs.gui_find_wrap = TRUE;
- prefs.gui_update_enabled = TRUE;
+ prefs.gui_ask_unsaved = true;
+ prefs.gui_autocomplete_filter = true;
+ prefs.gui_find_wrap = true;
+ prefs.gui_update_enabled = true;
prefs.gui_update_channel = UPDATE_CHANNEL_STABLE;
prefs.gui_update_interval = 60*60*24; /* Seconds */
prefs.gui_debounce_timer = 400; /* milliseconds */
@@ -4342,25 +4375,25 @@ pre_init_prefs(void)
g_free(prefs.gui_start_title);
prefs.gui_start_title = g_strdup("The World's Most Popular Network Protocol Analyzer");
prefs.gui_version_placement = version_both;
- prefs.gui_welcome_page_show_recent = TRUE;
+ prefs.gui_welcome_page_show_recent = true;
prefs.gui_layout_type = layout_type_2;
prefs.gui_layout_content_1 = layout_pane_content_plist;
prefs.gui_layout_content_2 = layout_pane_content_pdetails;
prefs.gui_layout_content_3 = layout_pane_content_pbytes;
prefs.gui_packet_list_elide_mode = ELIDE_RIGHT;
- prefs.gui_packet_list_show_related = TRUE;
- prefs.gui_packet_list_show_minimap = TRUE;
- prefs.gui_packet_list_sortable = TRUE;
+ prefs.gui_packet_list_show_related = true;
+ prefs.gui_packet_list_show_minimap = true;
+ prefs.gui_packet_list_sortable = true;
prefs.gui_packet_list_cached_rows_max = 10000;
g_free (prefs.gui_interfaces_hide_types);
prefs.gui_interfaces_hide_types = g_strdup("");
- prefs.gui_interfaces_show_hidden = FALSE;
- prefs.gui_interfaces_remote_display = TRUE;
- prefs.gui_packet_list_separator = FALSE;
- prefs.gui_packet_header_column_definition = TRUE;
- prefs.gui_packet_list_hover_style = TRUE;
- prefs.gui_show_selected_packet = FALSE;
- prefs.gui_show_file_load_time = FALSE;
+ prefs.gui_interfaces_show_hidden = false;
+ prefs.gui_interfaces_remote_display = true;
+ prefs.gui_packet_list_separator = false;
+ prefs.gui_packet_header_column_definition = true;
+ prefs.gui_packet_list_hover_style = true;
+ prefs.gui_show_selected_packet = false;
+ prefs.gui_show_file_load_time = false;
prefs.gui_max_export_objects = 1000;
prefs.gui_max_tree_items = 1 * 1000 * 1000;
prefs.gui_max_tree_depth = 5 * 100;
@@ -4383,13 +4416,13 @@ pre_init_prefs(void)
prefs.num_cols = num_cols;
/* set the default values for the capture dialog box */
- prefs.capture_prom_mode = TRUE;
- prefs.capture_monitor_mode = FALSE;
- prefs.capture_pcap_ng = TRUE;
- prefs.capture_real_time = TRUE;
+ prefs.capture_prom_mode = true;
+ prefs.capture_monitor_mode = false;
+ prefs.capture_pcap_ng = true;
+ prefs.capture_real_time = true;
prefs.capture_update_interval = DEFAULT_UPDATE_INTERVAL;
- prefs.capture_no_extcap = FALSE;
- prefs.capture_show_info = FALSE;
+ prefs.capture_no_extcap = false;
+ prefs.capture_show_info = false;
if (!prefs.capture_columns) {
/* First time through */
@@ -4401,30 +4434,31 @@ pre_init_prefs(void)
/* set the default values for the tap/statistics dialog box */
prefs.tap_update_interval = TAP_UPDATE_DEFAULT_INTERVAL;
- prefs.st_enable_burstinfo = TRUE;
- prefs.st_burst_showcount = FALSE;
+ prefs.flow_graph_max_export_items = 1000;
+ prefs.st_enable_burstinfo = true;
+ prefs.st_burst_showcount = false;
prefs.st_burst_resolution = ST_DEF_BURSTRES;
prefs.st_burst_windowlen = ST_DEF_BURSTLEN;
- prefs.st_sort_casesensitve = TRUE;
- prefs.st_sort_rng_fixorder = TRUE;
- prefs.st_sort_rng_nameonly = TRUE;
+ prefs.st_sort_casesensitve = true;
+ prefs.st_sort_rng_fixorder = true;
+ prefs.st_sort_rng_nameonly = true;
prefs.st_sort_defcolflag = ST_SORT_COL_COUNT;
- prefs.st_sort_defdescending = TRUE;
- prefs.st_sort_showfullname = FALSE;
+ prefs.st_sort_defdescending = true;
+ prefs.st_sort_showfullname = false;
/* protocols */
- prefs.display_hidden_proto_items = FALSE;
- prefs.display_byte_fields_with_spaces = FALSE;
- prefs.ignore_dup_frames = FALSE;
+ prefs.display_hidden_proto_items = false;
+ prefs.display_byte_fields_with_spaces = false;
+ prefs.ignore_dup_frames = false;
prefs.ignore_dup_frames_cache_entries = 10000;
/* set the default values for the io graph dialog */
- prefs.gui_io_graph_automatic_update = TRUE;
- prefs.gui_io_graph_enable_legend = TRUE;
+ prefs.gui_io_graph_automatic_update = true;
+ prefs.gui_io_graph_enable_legend = true;
/* set the default values for the packet dialog */
prefs.gui_packet_dialog_layout = layout_vertical;
- prefs.gui_packet_details_show_byteview = TRUE;
+ prefs.gui_packet_details_show_byteview = true;
}
/*
@@ -4502,7 +4536,7 @@ reset_pref(pref_t *pref)
}
static void
-reset_pref_cb(gpointer data, gpointer user_data)
+reset_pref_cb(void *data, void *user_data)
{
pref_t *pref = (pref_t *) data;
module_t *module = (module_t *)user_data;
@@ -4532,14 +4566,14 @@ reset_module_prefs(const void *key _U_, void *value, void *data _U_)
{
module_t *module = (module_t *)value;
g_list_foreach(module->prefs, reset_pref_cb, module);
- return FALSE;
+ return false;
}
/* Reset preferences */
void
prefs_reset(void)
{
- prefs_initialized = FALSE;
+ prefs_initialized = false;
g_free(prefs.saved_at_version);
prefs.saved_at_version = NULL;
@@ -4606,14 +4640,14 @@ prefs_read_module(const char *module)
/* Construct the pathname of the user's preferences file for the module. */
char *pf_name = wmem_strdup_printf(NULL, "%s.cfg", module);
- pf_path = get_persconffile_path(pf_name, TRUE);
+ pf_path = get_persconffile_path(pf_name, true);
wmem_free(NULL, pf_name);
/* Read the user's module preferences file, if it exists and is not a dir. */
if (!test_for_regular_file(pf_path) || ((pf = ws_fopen(pf_path, "r")) == NULL)) {
g_free(pf_path);
/* Fall back to the user's generic preferences file. */
- pf_path = get_persconffile_path(PF_NAME, TRUE);
+ pf_path = get_persconffile_path(PF_NAME, true);
pf = ws_fopen(pf_path, "r");
}
@@ -4719,7 +4753,7 @@ read_prefs(void)
}
/* Construct the pathname of the user's preferences file. */
- pf_path = get_persconffile_path(PF_NAME, TRUE);
+ pf_path = get_persconffile_path(PF_NAME, true);
/* Read the user's preferences file, if it exists. */
if ((pf = ws_fopen(pf_path, "r")) != NULL) {
@@ -4772,10 +4806,10 @@ read_prefs_file(const char *pf_path, FILE *pf,
int got_c;
GString *cur_val;
GString *cur_var;
- gboolean got_val = FALSE;
- gint fline = 1, pline = 1;
- gchar hint[] = "(save preferences to remove this warning)";
- gchar ver[128];
+ bool got_val = false;
+ int fline = 1, pline = 1;
+ char hint[] = "(save preferences to remove this warning)";
+ char ver[128];
cur_val = g_string_new("");
cur_var = g_string_new("");
@@ -4829,7 +4863,7 @@ read_prefs_file(const char *pf_path, FILE *pf,
explicit user input, for range preferences, silently
lower values in excess of the range's maximum, rather
than reporting errors and failing. */
- switch (pref_set_pair_fct(cur_var->str, cur_val->str, private_data, FALSE)) {
+ switch (pref_set_pair_fct(cur_var->str, cur_val->str, private_data, false)) {
case PREFS_SET_OK:
break;
@@ -4842,7 +4876,7 @@ read_prefs_file(const char *pf_path, FILE *pf,
case PREFS_SET_NO_SUCH_PREF:
ws_warning("No such preference \"%s\" at line %d of\n%s %s",
cur_var->str, pline, pf_path, hint);
- prefs.unknown_prefs = TRUE;
+ prefs.unknown_prefs = true;
break;
case PREFS_SET_OBSOLETE:
@@ -4859,7 +4893,7 @@ read_prefs_file(const char *pf_path, FILE *pf,
*/
ws_warning("Obsolete preference \"%s\" at line %d of\n%s %s",
cur_var->str, pline, pf_path, hint);
- prefs.unknown_prefs = TRUE;
+ prefs.unknown_prefs = true;
break;
}
} else {
@@ -4867,9 +4901,9 @@ read_prefs_file(const char *pf_path, FILE *pf,
}
}
state = IN_VAR;
- got_val = FALSE;
+ got_val = false;
g_string_truncate(cur_var, 0);
- g_string_append_c(cur_var, (gchar) got_c);
+ g_string_append_c(cur_var, (char) got_c);
pline = fline;
} else if (g_ascii_isspace(got_c) && cur_var->len > 0 && got_val) {
state = PRE_VAL;
@@ -4881,26 +4915,26 @@ read_prefs_file(const char *pf_path, FILE *pf,
break;
case IN_VAR:
if (got_c != ':') {
- g_string_append_c(cur_var, (gchar) got_c);
+ g_string_append_c(cur_var, (char) got_c);
} else {
/* This is a colon (':') */
state = PRE_VAL;
g_string_truncate(cur_val, 0);
/*
- * Set got_val to TRUE to accommodate prefs such as
+ * Set got_val to true to accommodate prefs such as
* "gui.fileopen.dir" that do not require a value.
*/
- got_val = TRUE;
+ got_val = true;
}
break;
case PRE_VAL:
if (!g_ascii_isspace(got_c)) {
state = IN_VAL;
- g_string_append_c(cur_val, (gchar) got_c);
+ g_string_append_c(cur_val, (char) got_c);
}
break;
case IN_VAL:
- g_string_append_c(cur_val, (gchar) got_c);
+ g_string_append_c(cur_val, (char) got_c);
break;
case IN_SKIP:
break;
@@ -4915,7 +4949,7 @@ read_prefs_file(const char *pf_path, FILE *pf,
explicit user input, for range preferences, silently
lower values in excess of the range's maximum, rather
than reporting errors and failing. */
- switch (pref_set_pair_fct(cur_var->str, cur_val->str, private_data, FALSE)) {
+ switch (pref_set_pair_fct(cur_var->str, cur_val->str, private_data, false)) {
case PREFS_SET_OK:
break;
@@ -4928,11 +4962,11 @@ read_prefs_file(const char *pf_path, FILE *pf,
case PREFS_SET_NO_SUCH_PREF:
ws_warning("No such preference \"%s\" at line %d of\n%s %s",
cur_var->str, pline, pf_path, hint);
- prefs.unknown_prefs = TRUE;
+ prefs.unknown_prefs = true;
break;
case PREFS_SET_OBSOLETE:
- prefs.unknown_prefs = TRUE;
+ prefs.unknown_prefs = true;
break;
}
} else {
@@ -4941,8 +4975,8 @@ read_prefs_file(const char *pf_path, FILE *pf,
}
}
- g_string_free(cur_val, TRUE);
- g_string_free(cur_var, TRUE);
+ g_string_free(cur_val, true);
+ g_string_free(cur_var, true);
if (ferror(pf))
return errno;
@@ -4954,15 +4988,15 @@ read_prefs_file(const char *pf_path, FILE *pf,
* If we were handed a preference starting with "uat:", try to turn it into
* a valid uat entry.
*/
-static gboolean
+static bool
prefs_set_uat_pref(char *uat_entry, char **errmsg) {
- gchar *p, *colonp;
+ char *p, *colonp;
uat_t *uat;
- gboolean ret;
+ bool ret;
colonp = strchr(uat_entry, ':');
if (colonp == NULL)
- return FALSE;
+ return false;
p = colonp;
*p++ = '\0';
@@ -4981,14 +5015,14 @@ prefs_set_uat_pref(char *uat_entry, char **errmsg) {
* looks correct.
*/
*colonp = ':';
- return FALSE;
+ return false;
}
uat = uat_find(uat_entry);
*colonp = ':';
if (uat == NULL) {
*errmsg = g_strdup("Unknown preference");
- return FALSE;
+ return false;
}
ret = uat_load_str(uat, p, errmsg);
@@ -5004,7 +5038,7 @@ prefs_set_uat_pref(char *uat_entry, char **errmsg) {
prefs_set_pref_e
prefs_set_pref(char *prefarg, char **errmsg)
{
- gchar *p, *colonp;
+ char *p, *colonp;
prefs_set_pref_e ret;
/*
@@ -5043,7 +5077,7 @@ prefs_set_pref(char *prefarg, char **errmsg)
* test for the empty string and set PREFS_SET_SYNTAX_ERROR there.
*/
if (strcmp(prefarg, "uat")) {
- ret = set_pref(prefarg, p, NULL, TRUE);
+ ret = set_pref(prefarg, p, NULL, true);
} else {
ret = prefs_set_uat_pref(p, errmsg) ? PREFS_SET_OK : PREFS_SET_SYNTAX_ERR;
}
@@ -5051,7 +5085,7 @@ prefs_set_pref(char *prefarg, char **errmsg)
return ret;
}
-guint prefs_get_uint_value_real(pref_t *pref, pref_source_t source)
+unsigned prefs_get_uint_value_real(pref_t *pref, pref_source_t source)
{
switch (source)
{
@@ -5072,7 +5106,7 @@ guint prefs_get_uint_value_real(pref_t *pref, pref_source_t source)
return 0;
}
-guint prefs_get_uint_value(const char *module_name, const char* pref_name)
+unsigned prefs_get_uint_value(const char *module_name, const char* pref_name)
{
pref_t *pref = prefs_find_preference(prefs_find_module(module_name), pref_name);
if (pref == NULL) {
@@ -5087,7 +5121,7 @@ char* prefs_get_password_value(pref_t *pref, pref_source_t source)
}
-unsigned int prefs_set_uint_value(pref_t *pref, guint value, pref_source_t source)
+unsigned int prefs_set_uint_value(pref_t *pref, unsigned value, pref_source_t source)
{
unsigned int changed = 0;
switch (source)
@@ -5128,18 +5162,18 @@ prefs_set_password_value(pref_t *pref, const char* value, pref_source_t source)
}
-guint prefs_get_uint_base(pref_t *pref)
+unsigned prefs_get_uint_base(pref_t *pref)
{
return pref->info.base;
}
/*
- * Returns TRUE if the given device is hidden
+ * Returns true if the given device is hidden
*/
-gboolean
+bool
prefs_is_capture_device_hidden(const char *name)
{
- gchar *tok, *devices;
+ char *tok, *devices;
size_t len;
if (prefs.capture_devices_hide && name) {
@@ -5148,20 +5182,20 @@ prefs_is_capture_device_hidden(const char *name)
for (tok = strtok (devices, ","); tok; tok = strtok(NULL, ",")) {
if (strlen (tok) == len && strcmp (name, tok) == 0) {
g_free (devices);
- return TRUE;
+ return true;
}
}
g_free (devices);
}
- return FALSE;
+ return false;
}
/*
- * Returns TRUE if the given column is visible (not hidden)
+ * Returns true if the given column is visible (not hidden)
*/
-static gboolean
-prefs_is_column_visible(const gchar *cols_hidden, int col)
+static bool
+prefs_is_column_visible(const char *cols_hidden, int col)
{
char *tok, *cols, *p;
int cidx;
@@ -5190,7 +5224,7 @@ prefs_is_column_visible(const gchar *cols_hidden, int col)
* hence not visible.
*/
g_free(cols);
- return FALSE;
+ return false;
}
g_free(cols);
}
@@ -5199,14 +5233,14 @@ prefs_is_column_visible(const gchar *cols_hidden, int col)
* No - either there are no hidden columns or this isn't one
* of them - so it is visible.
*/
- return TRUE;
+ return true;
}
/*
- * Returns TRUE if the given column is visible (not hidden)
+ * Returns true if the given column is visible (not hidden)
*/
-static gboolean
-prefs_is_column_fmt_visible(const gchar *cols_hidden, fmt_data *cfmt)
+static bool
+prefs_is_column_fmt_visible(const char *cols_hidden, fmt_data *cfmt)
{
char *tok, *cols;
fmt_data cfmt_hidden;
@@ -5271,7 +5305,7 @@ prefs_is_column_fmt_visible(const gchar *cols_hidden, fmt_data *cfmt)
*/
g_free(cfmt_hidden.custom_fields);
g_free(cols);
- return FALSE;
+ return false;
}
g_free(cols);
}
@@ -5280,16 +5314,16 @@ prefs_is_column_fmt_visible(const gchar *cols_hidden, fmt_data *cfmt)
* No - either there are no hidden columns or this isn't one
* of them - so it is visible.
*/
- return TRUE;
+ return true;
}
/*
- * Returns TRUE if the given device should capture in monitor mode by default
+ * Returns true if the given device should capture in monitor mode by default
*/
-gboolean
+bool
prefs_capture_device_monitor_mode(const char *name)
{
- gchar *tok, *devices;
+ char *tok, *devices;
size_t len;
if (prefs.capture_devices_monitor_mode && name) {
@@ -5298,34 +5332,34 @@ prefs_capture_device_monitor_mode(const char *name)
for (tok = strtok (devices, ","); tok; tok = strtok(NULL, ",")) {
if (strlen (tok) == len && strcmp (name, tok) == 0) {
g_free (devices);
- return TRUE;
+ return true;
}
}
g_free (devices);
}
- return FALSE;
+ return false;
}
/*
- * Returns TRUE if the user has marked this column as visible
+ * Returns true if the user has marked this column as visible
*/
-gboolean
-prefs_capture_options_dialog_column_is_visible(const gchar *column)
+bool
+prefs_capture_options_dialog_column_is_visible(const char *column)
{
GList *curr;
- gchar *col;
+ char *col;
for (curr = g_list_first(prefs.capture_columns); curr; curr = g_list_next(curr)) {
- col = (gchar *)curr->data;
+ col = (char *)curr->data;
if (col && (g_ascii_strcasecmp(col, column) == 0)) {
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
-gboolean
+bool
prefs_has_layout_pane_content (layout_pane_content_e layout_pane_content)
{
return ((prefs.gui_layout_content_1 == layout_pane_content) ||
@@ -5341,9 +5375,9 @@ prefs_has_layout_pane_content (layout_pane_content_e layout_pane_content)
* Extract the red, green, and blue components of a 24-bit RGB value
* and convert them from [0,255] to [0,65535].
*/
-#define RED_COMPONENT(x) (guint16) (((((x) >> 16) & 0xff) * 65535 / 255))
-#define GREEN_COMPONENT(x) (guint16) (((((x) >> 8) & 0xff) * 65535 / 255))
-#define BLUE_COMPONENT(x) (guint16) ( (((x) & 0xff) * 65535 / 255))
+#define RED_COMPONENT(x) (uint16_t) (((((x) >> 16) & 0xff) * 65535 / 255))
+#define GREEN_COMPONENT(x) (uint16_t) (((((x) >> 8) & 0xff) * 65535 / 255))
+#define BLUE_COMPONENT(x) (uint16_t) ( (((x) & 0xff) * 65535 / 255))
char
string_to_name_resolve(const char *string, e_addr_resolve *name_resolve)
@@ -5354,25 +5388,25 @@ string_to_name_resolve(const char *string, e_addr_resolve *name_resolve)
while ((c = *string++) != '\0') {
switch (c) {
case 'g':
- name_resolve->maxmind_geoip = TRUE;
+ name_resolve->maxmind_geoip = true;
break;
case 'm':
- name_resolve->mac_name = TRUE;
+ name_resolve->mac_name = true;
break;
case 'n':
- name_resolve->network_name = TRUE;
+ name_resolve->network_name = true;
break;
case 'N':
- name_resolve->use_external_net_name_resolver = TRUE;
+ name_resolve->use_external_net_name_resolver = true;
break;
case 't':
- name_resolve->transport_name = TRUE;
+ name_resolve->transport_name = true;
break;
case 'd':
- name_resolve->dns_pkt_addr_resolution = TRUE;
+ name_resolve->dns_pkt_addr_resolution = true;
break;
case 'v':
- name_resolve->vlan_name = TRUE;
+ name_resolve->vlan_name = true;
break;
default:
/*
@@ -5384,14 +5418,14 @@ string_to_name_resolve(const char *string, e_addr_resolve *name_resolve)
return '\0';
}
-static gboolean
-deprecated_heur_dissector_pref(gchar *pref_name, const gchar *value)
+static bool
+deprecated_heur_dissector_pref(char *pref_name, const char *value)
{
struct heur_pref_name
{
const char* pref_name;
const char* short_name;
- gboolean more_dissectors; /* For multiple dissectors controlled by the same preference */
+ bool more_dissectors; /* For multiple dissectors controlled by the same preference */
};
struct heur_pref_name heur_prefs[] = {
@@ -5440,26 +5474,26 @@ deprecated_heur_dissector_pref(gchar *pref_name, const gchar *value)
heur_dtbl_entry_t* heuristic;
- for (i = 0; i < sizeof(heur_prefs)/sizeof(struct heur_pref_name); i++)
+ for (i = 0; i < array_length(heur_prefs); i++)
{
if (strcmp(pref_name, heur_prefs[i].pref_name) == 0)
{
heuristic = find_heur_dissector_by_unique_short_name(heur_prefs[i].short_name);
if (heuristic != NULL) {
- heuristic->enabled = ((g_ascii_strcasecmp(value, "true") == 0) ? TRUE : FALSE);
+ heuristic->enabled = ((g_ascii_strcasecmp(value, "true") == 0) ? true : false);
}
if (!heur_prefs[i].more_dissectors)
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
-static gboolean
-deprecated_enable_dissector_pref(gchar *pref_name, const gchar *value)
+static bool
+deprecated_enable_dissector_pref(char *pref_name, const char *value)
{
struct dissector_pref_name
{
@@ -5476,29 +5510,29 @@ deprecated_enable_dissector_pref(gchar *pref_name, const gchar *value)
unsigned int i;
int proto_id;
- for (i = 0; i < sizeof(dissector_prefs)/sizeof(struct dissector_pref_name); i++)
+ for (i = 0; i < array_length(dissector_prefs); i++)
{
if (strcmp(pref_name, dissector_prefs[i].pref_name) == 0)
{
proto_id = proto_get_id_by_short_name(dissector_prefs[i].short_name);
if (proto_id >= 0)
- proto_set_decoding(proto_id, ((g_ascii_strcasecmp(value, "true") == 0) ? TRUE : FALSE));
- return TRUE;
+ proto_set_decoding(proto_id, ((g_ascii_strcasecmp(value, "true") == 0) ? true : false));
+ return true;
}
}
- return FALSE;
+ return false;
}
-static gboolean
-deprecated_port_pref(gchar *pref_name, const gchar *value)
+static bool
+deprecated_port_pref(char *pref_name, const char *value)
{
struct port_pref_name
{
const char* pref_name;
const char* module_name; /* the protocol filter name */
const char* table_name;
- guint base;
+ unsigned base;
};
struct obsolete_pref_name
@@ -5669,15 +5703,15 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
};
unsigned int i;
- guint uval;
+ unsigned uval;
dissector_table_t sub_dissectors;
dissector_handle_t handle, tpkt_handle;
module_t *module;
pref_t *pref;
- static gboolean sanity_checked;
+ static bool sanity_checked;
if (!sanity_checked) {
- sanity_checked = TRUE;
+ sanity_checked = true;
for (i = 0; i < G_N_ELEMENTS(port_prefs); i++) {
module = prefs_find_module(port_prefs[i].module_name);
if (!module) {
@@ -5698,7 +5732,7 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
for (i = 0; i < G_N_ELEMENTS(port_prefs); i++) {
if (strcmp(pref_name, port_prefs[i].pref_name) == 0) {
if (!ws_basestrtou32(value, NULL, &uval, port_prefs[i].base))
- return FALSE; /* number was bad */
+ return false; /* number was bad */
module = prefs_find_module(port_prefs[i].module_name);
pref = prefs_find_preference(module, port_prefs[i].table_name);
@@ -5726,15 +5760,15 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
}
}
- return TRUE;
+ return true;
}
}
- for (i = 0; i < sizeof(port_range_prefs)/sizeof(struct port_pref_name); i++)
+ for (i = 0; i < array_length(port_range_prefs); i++)
{
if (strcmp(pref_name, port_range_prefs[i].pref_name) == 0)
{
- guint32 range_i, range_j;
+ uint32_t range_i, range_j;
sub_dissectors = find_dissector_table(port_range_prefs[i].table_name);
if (sub_dissectors != NULL) {
@@ -5754,9 +5788,9 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
pref = prefs_find_preference(module, port_range_prefs[i].table_name);
if (pref != NULL)
{
- if (!prefs_set_range_value_work(pref, value, TRUE, &module->prefs_changed_flags))
+ if (!prefs_set_range_value_work(pref, value, true, &module->prefs_changed_flags))
{
- return FALSE; /* number was bad */
+ return false; /* number was bad */
}
handle = dissector_table_get_dissector_handle(sub_dissectors, module->title);
@@ -5775,17 +5809,17 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
}
}
- return TRUE;
+ return true;
}
}
- for (i = 0; i < sizeof(tpkt_subdissector_port_prefs)/sizeof(struct port_pref_name); i++)
+ for (i = 0; i < array_length(tpkt_subdissector_port_prefs); i++)
{
if (strcmp(pref_name, tpkt_subdissector_port_prefs[i].pref_name) == 0)
{
- /* XXX - give an error if it doesn't fit in a guint? */
+ /* XXX - give an error if it doesn't fit in a unsigned? */
if (!ws_basestrtou32(value, NULL, &uval, tpkt_subdissector_port_prefs[i].base))
- return FALSE; /* number was bad */
+ return false; /* number was bad */
/* If the value is 0 or 102 (default TPKT port), don't add to the Decode As tables */
if ((uval != 0) && (uval != 102))
@@ -5796,36 +5830,36 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
}
}
- return TRUE;
+ return true;
}
}
- for (i = 0; i < sizeof(obsolete_prefs)/sizeof(struct obsolete_pref_name); i++)
+ for (i = 0; i < array_length(obsolete_prefs); i++)
{
if (strcmp(pref_name, obsolete_prefs[i].pref_name) == 0)
{
/* Just ignore the preference */
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
static prefs_set_pref_e
-set_pref(gchar *pref_name, const gchar *value, void *private_data,
- gboolean return_range_errors)
-{
- guint cval;
- guint uval;
- gboolean bval;
- gint enum_val;
- gchar *dotp, *last_dotp;
- static gchar *filter_label = NULL;
- static gboolean filter_enabled = FALSE;
+set_pref(char *pref_name, const char *value, void *private_data,
+ bool return_range_errors)
+{
+ unsigned cval;
+ unsigned uval;
+ bool bval;
+ int enum_val;
+ char *dotp, *last_dotp;
+ static char *filter_label = NULL;
+ static bool filter_enabled = false;
module_t *module, *containing_module, *target_module;
pref_t *pref;
int type;
- gboolean converted_pref = FALSE;
+ bool converted_pref = false;
target_module = (module_t*)private_data;
@@ -5838,14 +5872,14 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
g_free(filter_label);
filter_label = g_strdup(value);
} else if (strcmp(pref_name, PRS_GUI_FILTER_ENABLED) == 0) {
- filter_enabled = (strcmp(value, "TRUE") == 0) ? TRUE : FALSE;
+ filter_enabled = (strcmp(value, "TRUE") == 0) ? true : false;
} else if (strcmp(pref_name, PRS_GUI_FILTER_EXPR) == 0) {
/* Comments not supported for "old" preference style */
filter_expression_new(filter_label, value, "", filter_enabled);
g_free(filter_label);
filter_label = NULL;
/* Remember to save the new UAT to file. */
- prefs.filter_expressions_old = TRUE;
+ prefs.filter_expressions_old = true;
} else if (strcmp(pref_name, "gui.version_in_start_page") == 0) {
/* Convert deprecated value to closest current equivalent */
if (g_ascii_strcasecmp(value, "true") == 0) {
@@ -5864,9 +5898,9 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
* Otherwise, we treat it as a list of name types we want to resolve.
*/
if (g_ascii_strcasecmp(value, "true") == 0) {
- gbl_resolv_flags.mac_name = TRUE;
- gbl_resolv_flags.network_name = TRUE;
- gbl_resolv_flags.transport_name = TRUE;
+ gbl_resolv_flags.mac_name = true;
+ gbl_resolv_flags.network_name = true;
+ gbl_resolv_flags.transport_name = true;
}
else if (g_ascii_strcasecmp(value, "false") == 0) {
disable_name_resolution();
@@ -5962,8 +5996,8 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
}
}
if (module) {
- converted_pref = TRUE;
- prefs.unknown_prefs = TRUE;
+ converted_pref = true;
+ prefs.unknown_prefs = true;
}
}
*dotp = '.'; /* put the preference string back */
@@ -5978,7 +6012,7 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
pref = prefs_find_preference_with_submodule(module, dotp, &containing_module);
if (pref == NULL) {
- prefs.unknown_prefs = TRUE;
+ prefs.unknown_prefs = true;
/* "gui" prefix was added to column preferences for better organization
* within the preferences file
@@ -6255,7 +6289,7 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
}
}
if (pref) {
- converted_pref = TRUE;
+ converted_pref = true;
}
}
if (pref == NULL ) {
@@ -6300,9 +6334,9 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
case PREF_BOOL:
/* XXX - give an error if it's neither "true" nor "false"? */
if (g_ascii_strcasecmp(value, "true") == 0)
- bval = TRUE;
+ bval = true;
else
- bval = FALSE;
+ bval = false;
if (*pref->varp.boolp != bval) {
containing_module->prefs_changed_flags |= prefs_get_effect_flags(pref);
*pref->varp.boolp = bval;
@@ -6347,7 +6381,7 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
range_t *newrange;
dissector_table_t sub_dissectors;
dissector_handle_t handle;
- guint32 i, j;
+ uint32_t i, j;
if (range_convert_str_work(wmem_epan_scope(), &newrange, value, pref->info.max_value,
return_range_errors) != CVT_NO_ERROR) {
@@ -6432,7 +6466,7 @@ set_pref(gchar *pref_name, const gchar *value, void *private_data,
typedef struct {
FILE *pf;
- gboolean is_gui_module;
+ bool is_gui_module;
} write_gui_pref_arg_t;
const char *
@@ -6615,7 +6649,7 @@ prefs_pref_type_description(pref_t *pref)
break;
case PREF_BOOL:
- type_desc = "TRUE or FALSE (case-insensitive)";
+ type_desc = "true or false (case-insensitive)";
break;
case PREF_ENUM:
@@ -6630,7 +6664,7 @@ prefs_pref_type_description(pref_t *pref)
g_string_append(enum_str, ", ");
}
g_string_append(enum_str, "\n(case-insensitive).");
- return g_string_free(enum_str, FALSE);
+ return g_string_free(enum_str, false);
}
case PREF_STRING:
@@ -6690,15 +6724,15 @@ prefs_pref_type_description(pref_t *pref)
return g_strdup(type_desc);
}
-gboolean
+bool
prefs_pref_is_default(pref_t *pref)
{
int type;
- if (!pref) return FALSE;
+ if (!pref) return false;
type = pref->type;
if (IS_PREF_OBSOLETE(type)) {
- return FALSE;
+ return false;
} else {
RESET_PREF_OBSOLETE(type);
}
@@ -6707,18 +6741,18 @@ prefs_pref_is_default(pref_t *pref)
case PREF_UINT:
if (pref->default_val.uint == *pref->varp.uint)
- return TRUE;
+ return true;
break;
case PREF_BOOL:
if (pref->default_val.boolval == *pref->varp.boolp)
- return TRUE;
+ return true;
break;
case PREF_ENUM:
case PREF_PROTO_TCP_SNDAMB_ENUM:
if (pref->default_val.enumval == *pref->varp.enump)
- return TRUE;
+ return true;
break;
case PREF_STRING:
@@ -6728,14 +6762,14 @@ prefs_pref_is_default(pref_t *pref)
case PREF_PASSWORD:
case PREF_DISSECTOR:
if (!(g_strcmp0(pref->default_val.string, *pref->varp.string)))
- return TRUE;
+ return true;
break;
case PREF_DECODE_AS_RANGE:
case PREF_RANGE:
{
if ((ranges_are_equal(pref->default_val.range, *pref->varp.range)))
- return TRUE;
+ return true;
break;
}
@@ -6744,7 +6778,7 @@ prefs_pref_is_default(pref_t *pref)
if ((pref->default_val.color.red == pref->varp.colorp->red) &&
(pref->default_val.color.green == pref->varp.colorp->green) &&
(pref->default_val.color.blue == pref->varp.colorp->blue))
- return TRUE;
+ return true;
break;
}
@@ -6753,11 +6787,11 @@ prefs_pref_is_default(pref_t *pref)
case PREF_STATIC_TEXT:
case PREF_UAT:
- return FALSE;
+ return false;
/* ws_assert_not_reached(); */
break;
}
- return FALSE;
+ return false;
}
char *
@@ -6765,7 +6799,7 @@ prefs_pref_to_str(pref_t *pref, pref_source_t source) {
const char *pref_text = "[Unknown]";
void *valp; /* pointer to preference value */
color_t *pref_color;
- gchar *tmp_value, *ret_value;
+ char *tmp_value, *ret_value;
int type;
if (!pref) {
@@ -6803,7 +6837,7 @@ prefs_pref_to_str(pref_t *pref, pref_source_t source) {
case PREF_UINT:
{
- guint pref_uint = *(guint *) valp;
+ unsigned pref_uint = *(unsigned *) valp;
switch (pref->info.base) {
case 10:
@@ -6819,12 +6853,12 @@ prefs_pref_to_str(pref_t *pref, pref_source_t source) {
}
case PREF_BOOL:
- return g_strdup((*(gboolean *) valp) ? "TRUE" : "FALSE");
+ return g_strdup((*(bool *) valp) ? "TRUE" : "FALSE");
case PREF_ENUM:
case PREF_PROTO_TCP_SNDAMB_ENUM:
{
- gint pref_enumval = *(gint *) valp;
+ int pref_enumval = *(int *) valp;
/*
* For now, we return the "description" value, so that if we
* save the preferences older versions of Wireshark can at
@@ -6865,7 +6899,7 @@ prefs_pref_to_str(pref_t *pref, pref_source_t source) {
case PREF_CUSTOM:
if (pref->custom_cbs.to_str_cb)
- return pref->custom_cbs.to_str_cb(pref, source == pref_default ? TRUE : FALSE);
+ return pref->custom_cbs.to_str_cb(pref, source == pref_default ? true : false);
pref_text = "[Custom]";
break;
@@ -6893,11 +6927,11 @@ prefs_pref_to_str(pref_t *pref, pref_source_t source) {
* Write out a single dissector preference.
*/
static void
-write_pref(gpointer data, gpointer user_data)
+write_pref(void *data, void *user_data)
{
pref_t *pref = (pref_t *)data;
write_pref_arg_t *arg = (write_pref_arg_t *)user_data;
- gchar **desc_lines;
+ char **desc_lines;
int i;
int type;
@@ -6990,7 +7024,7 @@ write_pref(gpointer data, gpointer user_data)
}
static void
-count_non_uat_pref(gpointer data, gpointer user_data)
+count_non_uat_pref(void *data, void *user_data)
{
pref_t *pref = (pref_t *)data;
int *arg = (int *)user_data;
@@ -7021,15 +7055,15 @@ static int num_non_uat_prefs(module_t *module)
/*
* Write out all preferences for a module.
*/
-static guint
-write_module_prefs(module_t *module, gpointer user_data)
+static unsigned
+write_module_prefs(module_t *module, void *user_data)
{
write_gui_pref_arg_t *gui_pref_arg = (write_gui_pref_arg_t*)user_data;
write_pref_arg_t arg;
/* The GUI module needs to be explicitly called out so it
can be written out of order */
- if ((module == gui_module) && (gui_pref_arg->is_gui_module != TRUE))
+ if ((module == gui_module) && (gui_pref_arg->is_gui_module != true))
return 0;
/* Write a header for the main modules and GUI sub-modules */
@@ -7112,7 +7146,7 @@ write_prefs(char **pf_path_return)
*/
if (pf_path_return != NULL) {
- pf_path = get_persconffile_path(PF_NAME, TRUE);
+ pf_path = get_persconffile_path(PF_NAME, true);
if ((pf = ws_fopen(pf_path, "w")) == NULL) {
*pf_path_return = pf_path;
return errno;
@@ -7129,7 +7163,7 @@ write_prefs(char **pf_path_return)
if (pf_path_return != NULL) {
if (prefs.filter_expressions_old) {
char *err = NULL;
- prefs.filter_expressions_old = FALSE;
+ prefs.filter_expressions_old = false;
if (!uat_save(uat_get_table_by_name("Display expressions"), &err)) {
ws_warning("Unable to save Display expressions: %s", err);
g_free(err);
@@ -7138,7 +7172,7 @@ write_prefs(char **pf_path_return)
module_t *extcap_module = prefs_find_module("extcap");
if (extcap_module && !prefs.capture_no_extcap) {
- char *ext_path = get_persconffile_path("extcap.cfg", TRUE);
+ char *ext_path = get_persconffile_path("extcap.cfg", true);
FILE *extf;
if ((extf = ws_fopen(ext_path, "w")) == NULL) {
if (errno != EISDIR) {
@@ -7157,7 +7191,7 @@ write_prefs(char **pf_path_return)
"# changed from their default value.\n", extf);
write_gui_pref_info.pf = extf;
- write_gui_pref_info.is_gui_module = FALSE;
+ write_gui_pref_info.is_gui_module = false;
write_module_prefs(extcap_module, &write_gui_pref_info);
@@ -7180,11 +7214,11 @@ write_prefs(char **pf_path_return)
* are written in alphabetical order (including of course the protocol preferences)
*/
write_gui_pref_info.pf = pf;
- write_gui_pref_info.is_gui_module = TRUE;
+ write_gui_pref_info.is_gui_module = true;
write_module_prefs(gui_module, &write_gui_pref_info);
- write_gui_pref_info.is_gui_module = FALSE;
+ write_gui_pref_info.is_gui_module = false;
prefs_modules_foreach_submodules(NULL, write_module_prefs, &write_gui_pref_info);
fclose(pf);
diff --git a/epan/prefs.h b/epan/prefs.h
index d51365ab1e..c4a63864b7 100644
--- a/epan/prefs.h
+++ b/epan/prefs.h
@@ -38,6 +38,11 @@ extern "C" {
#define DEF_GUI_DECIMAL_PLACES2 4
#define DEF_GUI_DECIMAL_PLACES3 6
+#define CONV_DEINT_KEY_CAPFILE 0x01 /* unused yet */
+#define CONV_DEINT_KEY_INTERFACE 0x02
+#define CONV_DEINT_KEY_MAC 0x04
+#define CONV_DEINT_KEY_VLAN 0x08
+
struct epan_uat;
struct _e_addr_resolve;
@@ -141,115 +146,117 @@ typedef enum {
typedef struct _e_prefs {
GList *col_list;
- gint num_cols;
+ int num_cols;
color_t st_client_fg, st_client_bg, st_server_fg, st_server_bg;
color_t gui_text_valid, gui_text_invalid, gui_text_deprecated;
- gboolean restore_filter_after_following_stream;
- gint gui_toolbar_main_style;
- gchar *gui_font_name;
+ bool restore_filter_after_following_stream;
+ int gui_toolbar_main_style;
+ char *gui_font_name;
color_t gui_active_fg;
color_t gui_active_bg;
- gint gui_active_style;
+ int gui_active_style;
color_t gui_inactive_fg;
color_t gui_inactive_bg;
- gint gui_inactive_style;
+ int gui_inactive_style;
color_t gui_marked_fg;
color_t gui_marked_bg;
color_t gui_ignored_fg;
color_t gui_ignored_bg;
- gchar *gui_colorized_fg;
- gchar *gui_colorized_bg;
- gboolean gui_geometry_save_position;
- gboolean gui_geometry_save_size;
- gboolean gui_geometry_save_maximized;
- guint gui_recent_df_entries_max;
- guint gui_recent_files_count_max;
- guint gui_fileopen_style;
- gchar *gui_fileopen_dir;
- guint gui_fileopen_preview;
- gchar *gui_tlskeylog_command;
- gboolean gui_ask_unsaved;
- gboolean gui_autocomplete_filter;
- gboolean gui_find_wrap;
- gchar *gui_window_title;
- gchar *gui_prepend_window_title;
- gchar *gui_start_title;
+ char *gui_colorized_fg;
+ char *gui_colorized_bg;
+ bool gui_geometry_save_position;
+ bool gui_geometry_save_size;
+ bool gui_geometry_save_maximized;
+ unsigned gui_recent_df_entries_max;
+ unsigned gui_recent_files_count_max;
+ unsigned gui_fileopen_style;
+ char *gui_fileopen_dir;
+ unsigned gui_fileopen_preview;
+ char *gui_tlskeylog_command;
+ bool gui_ask_unsaved;
+ bool gui_autocomplete_filter;
+ bool gui_find_wrap;
+ char *gui_window_title;
+ char *gui_prepend_window_title;
+ char *gui_start_title;
version_info_e gui_version_placement;
- guint gui_max_export_objects;
- guint gui_max_tree_items;
- guint gui_max_tree_depth;
- gboolean gui_welcome_page_show_recent;
+ unsigned gui_max_export_objects;
+ unsigned gui_max_tree_items;
+ unsigned gui_max_tree_depth;
+ bool gui_welcome_page_show_recent;
layout_type_e gui_layout_type;
layout_pane_content_e gui_layout_content_1;
layout_pane_content_e gui_layout_content_2;
layout_pane_content_e gui_layout_content_3;
splitter_layout_e gui_packet_dialog_layout;
- gchar *gui_interfaces_hide_types;
- gboolean gui_interfaces_show_hidden;
- gboolean gui_interfaces_remote_display;
- gboolean gui_io_graph_automatic_update;
- gboolean gui_io_graph_enable_legend;
- gboolean gui_packet_details_show_byteview;
- gchar *capture_device;
- gchar *capture_devices_linktypes;
- gchar *capture_devices_descr;
- gchar *capture_devices_hide;
- gchar *capture_devices_monitor_mode;
- gchar *capture_devices_buffersize;
- gchar *capture_devices_snaplen;
- gchar *capture_devices_pmode;
- gchar *capture_devices_filter; /* XXX - Mostly unused. Deprecate? */
- gboolean capture_prom_mode;
- gboolean capture_monitor_mode;
- gboolean capture_pcap_ng;
- gboolean capture_real_time;
- guint capture_update_interval;
- gboolean capture_no_interface_load;
- gboolean capture_no_extcap;
- gboolean capture_show_info;
+ char *gui_interfaces_hide_types;
+ bool gui_interfaces_show_hidden;
+ bool gui_interfaces_remote_display;
+ bool gui_io_graph_automatic_update;
+ bool gui_io_graph_enable_legend;
+ bool gui_packet_details_show_byteview;
+ char *capture_device;
+ char *capture_devices_linktypes;
+ char *capture_devices_descr;
+ char *capture_devices_hide;
+ char *capture_devices_monitor_mode;
+ char *capture_devices_buffersize;
+ char *capture_devices_snaplen;
+ char *capture_devices_pmode;
+ char *capture_devices_filter; /* XXX - Mostly unused. Deprecate? */
+ bool capture_prom_mode;
+ bool capture_monitor_mode;
+ bool capture_pcap_ng;
+ bool capture_real_time;
+ unsigned capture_update_interval;
+ bool capture_no_interface_load;
+ bool capture_no_extcap;
+ bool capture_show_info;
GList *capture_columns;
- guint tap_update_interval;
- gboolean display_hidden_proto_items;
- gboolean display_byte_fields_with_spaces;
- gboolean enable_incomplete_dissectors_check;
- gboolean incomplete_dissectors_check_debug;
- gboolean strict_conversation_tracking_heuristics;
- gboolean ignore_dup_frames;
- guint ignore_dup_frames_cache_entries;
- gboolean filter_expressions_old; /* TRUE if old filter expressions preferences were loaded. */
- gboolean cols_hide_new; /* TRUE if the new (index-based) gui.column.hide preference was loaded. */
- gboolean gui_update_enabled;
+ unsigned tap_update_interval;
+ bool display_hidden_proto_items;
+ bool display_byte_fields_with_spaces;
+ bool enable_incomplete_dissectors_check;
+ bool incomplete_dissectors_check_debug;
+ bool strict_conversation_tracking_heuristics;
+ int conversation_deinterlacing_key;
+ bool ignore_dup_frames;
+ unsigned ignore_dup_frames_cache_entries;
+ bool filter_expressions_old; /* true if old filter expressions preferences were loaded. */
+ bool cols_hide_new; /* true if the new (index-based) gui.column.hide preference was loaded. */
+ bool gui_update_enabled;
software_update_channel_e gui_update_channel;
- gint gui_update_interval;
- gint gui_debounce_timer;
- gchar *saved_at_version;
- gboolean unknown_prefs; /* unknown or obsolete pref(s) */
- gboolean gui_packet_list_separator;
- gboolean gui_packet_header_column_definition;
- gboolean gui_packet_list_hover_style; /* Enable/Disable mouse-over colorization */
- gboolean gui_show_selected_packet;
- gboolean gui_show_file_load_time;
+ int gui_update_interval;
+ int gui_debounce_timer;
+ char *saved_at_version;
+ bool unknown_prefs; /* unknown or obsolete pref(s) */
+ bool gui_packet_list_separator;
+ bool gui_packet_header_column_definition;
+ bool gui_packet_list_hover_style; /* Enable/Disable mouse-over colorization */
+ bool gui_show_selected_packet;
+ bool gui_show_file_load_time;
elide_mode_e gui_packet_list_elide_mode;
- gboolean gui_packet_list_show_related;
- gboolean gui_packet_list_show_minimap;
- gboolean gui_packet_list_sortable;
- guint gui_packet_list_cached_rows_max;
- gint gui_decimal_places1; /* Used for type 1 calculations */
- gint gui_decimal_places2; /* Used for type 2 calculations */
- gint gui_decimal_places3; /* Used for type 3 calculations */
- gboolean gui_rtp_player_use_disk1;
- gboolean gui_rtp_player_use_disk2;
- gboolean st_enable_burstinfo;
- gboolean st_burst_showcount;
- gint st_burst_resolution;
- gint st_burst_windowlen;
- gboolean st_sort_casesensitve;
- gboolean st_sort_rng_fixorder;
- gboolean st_sort_rng_nameonly;
- gint st_sort_defcolflag;
- gboolean st_sort_defdescending;
- gboolean st_sort_showfullname;
- gboolean extcap_save_on_start;
+ bool gui_packet_list_show_related;
+ bool gui_packet_list_show_minimap;
+ bool gui_packet_list_sortable;
+ unsigned gui_packet_list_cached_rows_max;
+ int gui_decimal_places1; /* Used for type 1 calculations */
+ int gui_decimal_places2; /* Used for type 2 calculations */
+ int gui_decimal_places3; /* Used for type 3 calculations */
+ bool gui_rtp_player_use_disk1;
+ bool gui_rtp_player_use_disk2;
+ unsigned flow_graph_max_export_items;
+ bool st_enable_burstinfo;
+ bool st_burst_showcount;
+ int st_burst_resolution;
+ int st_burst_windowlen;
+ bool st_sort_casesensitve;
+ bool st_sort_rng_fixorder;
+ bool st_sort_rng_nameonly;
+ int st_sort_defcolflag;
+ bool st_sort_defdescending;
+ bool st_sort_showfullname;
+ bool extcap_save_on_start;
} e_prefs;
WS_DLL_PUBLIC e_prefs prefs;
@@ -275,9 +282,9 @@ WS_DLL_PUBLIC void prefs_reset(void);
void prefs_cleanup(void);
/** Store whether the current UI theme is dark so that we can adjust colors
-* @param is_dark set to TRUE if the UI's theme is dark
+* @param is_dark set to true if the UI's theme is dark
*/
-WS_DLL_PUBLIC void prefs_set_gui_theme_is_dark(gboolean is_dark);
+WS_DLL_PUBLIC void prefs_set_gui_theme_is_dark(bool is_dark);
/**
* Register that a protocol has preferences.
@@ -356,14 +363,14 @@ WS_DLL_PUBLIC module_t *prefs_register_protocol_obsolete(int id);
/**
* Callback function for module list scanners.
*/
-typedef guint (*module_cb)(module_t *module, gpointer user_data);
+typedef unsigned (*module_cb)(module_t *module, void *user_data);
/**
- * Returns TRUE if a preferences module has any submodules
+ * Returns true if a preferences module has any submodules
* @param module a preferences module which can be used to register a user 'preference'
- * @return TRUE if a preferences module has any submodules, otherwise FALSE
+ * @return true if a preferences module has any submodules, otherwise false
*/
-WS_DLL_PUBLIC gboolean prefs_module_has_submodules(module_t *module);
+WS_DLL_PUBLIC bool prefs_module_has_submodules(module_t *module);
/**
* Call a callback function, with a specified argument, for each module
@@ -376,7 +383,7 @@ WS_DLL_PUBLIC gboolean prefs_module_has_submodules(module_t *module);
* @param callback the callback to call
* @param user_data additional data to pass to the callback
*/
-WS_DLL_PUBLIC guint prefs_modules_foreach(module_cb callback, gpointer user_data);
+WS_DLL_PUBLIC unsigned prefs_modules_foreach(module_cb callback, void *user_data);
/**
* Call a callback function, with a specified argument, for each submodule
@@ -393,7 +400,7 @@ WS_DLL_PUBLIC guint prefs_modules_foreach(module_cb callback, gpointer user_data
* @param callback the callback to call
* @param user_data additional data to pass to the callback
*/
-WS_DLL_PUBLIC guint prefs_modules_foreach_submodules(module_t *module, module_cb callback, gpointer user_data);
+WS_DLL_PUBLIC unsigned prefs_modules_foreach_submodules(module_t *module, module_cb callback, void *user_data);
/**
* Call the "apply" callback function for each module if any of its
@@ -418,11 +425,11 @@ struct preference;
typedef struct preference pref_t;
/**
- * Returns TRUE if the provided protocol has registered preferences.
+ * Returns true if the provided protocol has registered preferences.
* @param name the name of the protocol to look up
- * @return TRUE if the given protocol has registered preferences, otherwise FALSE
+ * @return true if the given protocol has registered preferences, otherwise false
*/
-WS_DLL_PUBLIC gboolean prefs_is_registered_protocol(const char *name);
+WS_DLL_PUBLIC bool prefs_is_registered_protocol(const char *name);
/**
* Returns the module title of a registered protocol (or NULL if unknown).
@@ -470,7 +477,7 @@ WS_DLL_PUBLIC pref_t *prefs_find_preference(module_t * module, const char *pref)
* field is changed in the preference dialog box
*/
WS_DLL_PUBLIC void prefs_register_uint_preference(module_t *module, const char *name,
- const char *title, const char *description, guint base, guint *var);
+ const char *title, const char *description, unsigned base, unsigned *var);
/*
* prefs_register_ callers must conform to the following:
@@ -498,7 +505,7 @@ WS_DLL_PUBLIC void prefs_register_uint_preference(module_t *module, const char *
* field is changed in the preference dialog box
*/
WS_DLL_PUBLIC void prefs_register_bool_preference(module_t *module, const char *name,
- const char *title, const char *description, gboolean *var);
+ const char *title, const char *description, bool *var);
/**
* Register a preference with an enumerated value.
@@ -516,13 +523,13 @@ WS_DLL_PUBLIC void prefs_register_bool_preference(module_t *module, const char *
* @param var pointer to the storage location that is updated when the
* field is changed in the preference dialog box
* @param enumvals a null-terminated array of enum_val_t structures
- * @param radio_buttons TRUE if the field is to be displayed in the
+ * @param radio_buttons true if the field is to be displayed in the
* preferences dialog as a set of radio buttons,
- * FALSE if it is to be displayed as an option menu
+ * false if it is to be displayed as an option menu
*/
WS_DLL_PUBLIC void prefs_register_enum_preference(module_t *module, const char *name,
- const char *title, const char *description, gint *var,
- const enum_val_t *enumvals, gboolean radio_buttons);
+ const char *title, const char *description, int *var,
+ const enum_val_t *enumvals, bool radio_buttons);
/**
* Register a preference with a character-string value.
@@ -573,10 +580,10 @@ WS_DLL_PUBLIC void prefs_register_string_preference(module_t *module, const char
* preference registration. The passed-in string may be
* freed, but you must keep another pointer to the string
* in order to free it
- * @param for_writing TRUE to display a Save dialog, FALSE to display an Open dialog.
+ * @param for_writing true to display a Save dialog, false to display an Open dialog.
*/
WS_DLL_PUBLIC void prefs_register_filename_preference(module_t *module, const char *name,
- const char *title, const char *description, const char **var, gboolean for_writing);
+ const char *title, const char *description, const char **var, bool for_writing);
/**
* Register a preference with a directory name (string) value.
@@ -624,7 +631,7 @@ WS_DLL_PUBLIC void prefs_register_directory_preference(module_t *module, const c
*/
WS_DLL_PUBLIC void prefs_register_range_preference(module_t *module, const char *name,
const char *title, const char *description, range_t **var,
- guint32 max_value);
+ uint32_t max_value);
/**
* Register a static text 'preference'. It can be used to add some info/explanation.
@@ -750,7 +757,7 @@ void prefs_register_custom_preference(module_t *module, const char *name,
*/
void prefs_register_decode_as_range_preference(module_t *module, const char *name,
const char *title, const char *description, range_t **var,
- guint32 max_value);
+ uint32_t max_value);
/**
* Register a preference with an password (password is never stored).
@@ -830,13 +837,13 @@ WS_DLL_PUBLIC void prefs_register_obsolete_preference(module_t *module,
* @param var pointer to the storage location that is updated when the
* field is changed in the preference dialog box
* @param enumvals a null-terminated array of enum_val_t structures
- * @param radio_buttons TRUE if the field is to be displayed in the
+ * @param radio_buttons true if the field is to be displayed in the
* preferences dialog as a set of radio buttons,
- * FALSE if it is to be displayed as an option menu
+ * false if it is to be displayed as an option menu
*/
WS_DLL_PUBLIC void prefs_register_custom_preference_TCP_Analysis(module_t *module, const char *name,
- const char *title, const char *description, gint *var,
- const enum_val_t *enumvals, gboolean radio_buttons);
+ const char *title, const char *description, int *var,
+ const enum_val_t *enumvals, bool radio_buttons);
/**
* Mark a preference that affects fields change. This works for bool, enum,
@@ -856,7 +863,7 @@ WS_DLL_PUBLIC void prefs_set_preference_effect_fields(module_t *module,
const char *name);
-typedef guint (*pref_cb)(pref_t *pref, gpointer user_data);
+typedef unsigned (*pref_cb)(pref_t *pref, void *user_data);
/**
* Call a callback function, with a specified argument, for each preference
@@ -872,8 +879,8 @@ typedef guint (*pref_cb)(pref_t *pref, gpointer user_data);
* @return If any of the callbacks return a non-zero value, stop and return that
* value, otherwise return 0.
*/
-WS_DLL_PUBLIC guint prefs_pref_foreach(module_t *module, pref_cb callback,
- gpointer user_data);
+WS_DLL_PUBLIC unsigned prefs_pref_foreach(module_t *module, pref_cb callback,
+ void *user_data);
/**
* Parse through a list of comma-separated, possibly quoted strings.
@@ -885,7 +892,7 @@ WS_DLL_PUBLIC guint prefs_pref_foreach(module_t *module, pref_cb callback,
* @param str a list of comma-separated, possibly quoted strings
* @return a list of the string data, or NULL if there's an error
*/
-WS_DLL_PUBLIC GList *prefs_get_string_list(const gchar *str);
+WS_DLL_PUBLIC GList *prefs_get_string_list(const char *str);
/**
* Clear the given list of string data.
@@ -977,9 +984,9 @@ WS_DLL_PUBLIC prefs_set_pref_e prefs_set_pref(char *prefarg, char **errmsg);
* keep it from showing up in the prefrences dialog.
*
* @param pref A preference.
- * @return TRUE if the preference is obsolete, otherwise FALSE
+ * @return true if the preference is obsolete, otherwise false
*/
-gboolean prefs_get_preference_obsolete(pref_t *pref);
+bool prefs_get_preference_obsolete(pref_t *pref);
/**
* Make a preference obsolete
@@ -998,7 +1005,7 @@ prefs_set_pref_e prefs_set_preference_obsolete(pref_t *pref);
* @param pref_name the preference name, e.g. "desegment".
* @return the preference's value
*/
-WS_DLL_PUBLIC guint prefs_get_uint_value(const char *module_name, const char* pref_name);
+WS_DLL_PUBLIC unsigned prefs_get_uint_value(const char *module_name, const char* pref_name);
/**
* Get the current range preference value (maintained by pref, so it doesn't need to be freed). This allows the
@@ -1012,34 +1019,34 @@ WS_DLL_PUBLIC guint prefs_get_uint_value(const char *module_name, const char* pr
WS_DLL_PUBLIC range_t* prefs_get_range_value(const char *module_name, const char* pref_name);
/**
- * Returns TRUE if the specified capture device is hidden
+ * Returns true if the specified capture device is hidden
* @param name the name of the capture device
- * @return TRUE if the specified capture device is hidden, otherwise FALSE
+ * @return true if the specified capture device is hidden, otherwise false
*/
-WS_DLL_PUBLIC gboolean prefs_is_capture_device_hidden(const char *name);
+WS_DLL_PUBLIC bool prefs_is_capture_device_hidden(const char *name);
/**
- * Returns TRUE if the given device should capture in monitor mode by default
+ * Returns true if the given device should capture in monitor mode by default
* @param name the name of the capture device
- * @return TRUE if the specified capture device should capture in monitor mode by default, otherwise FALSE
+ * @return true if the specified capture device should capture in monitor mode by default, otherwise false
*/
-WS_DLL_PUBLIC gboolean prefs_capture_device_monitor_mode(const char *name);
+WS_DLL_PUBLIC bool prefs_capture_device_monitor_mode(const char *name);
/**
- * Returns TRUE if the user has marked this column as visible
+ * Returns true if the user has marked this column as visible
*
* @param column the name of the column
- * @return TRUE if this column as visible, otherwise FALSE
+ * @return true if this column as visible, otherwise false
*/
-WS_DLL_PUBLIC gboolean prefs_capture_options_dialog_column_is_visible(const gchar *column);
+WS_DLL_PUBLIC bool prefs_capture_options_dialog_column_is_visible(const char *column);
/**
- * Returns TRUE if the layout pane content is enabled
+ * Returns true if the layout pane content is enabled
*
* @param layout_pane_content the layout pane content to check
- * @return TRUE if the layout pane content is enabled, otherwise FALSE
+ * @return true if the layout pane content is enabled, otherwise false
*/
-WS_DLL_PUBLIC gboolean prefs_has_layout_pane_content (layout_pane_content_e layout_pane_content);
+WS_DLL_PUBLIC bool prefs_has_layout_pane_content (layout_pane_content_e layout_pane_content);
#ifdef __cplusplus
}
diff --git a/epan/print.c b/epan/print.c
index 673037b64d..99ca73b96d 100644
--- a/epan/print.c
+++ b/epan/print.c
@@ -15,7 +15,6 @@
#include <stdio.h>
#include <string.h>
-#include <epan/packet.h>
#include <epan/epan.h>
#include <epan/epan_dissect.h>
#include <epan/to_str.h>
@@ -28,6 +27,7 @@
#include <epan/prefs.h>
#include <epan/print.h>
#include <epan/charsets.h>
+#include <wsutil/array.h>
#include <wsutil/json_dumper.h>
#include <wsutil/filesystem.h>
#include <wsutil/utf8_entities.h>
@@ -1201,6 +1201,7 @@ write_ek_summary(column_info *cinfo, write_json_data* pdata)
/* Write out a tree's data, and any child nodes, as JSON for EK */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
ek_fill_attr(proto_node *node, GHashTable *attr_table, write_json_data *pdata)
{
field_info *fi = NULL;
@@ -1230,6 +1231,7 @@ ek_fill_attr(proto_node *node, GHashTable *attr_table, write_json_data *pdata)
pdata->filter = NULL;
}
+ // We recurse here, but we're limited by our tree depth checks in proto.c
ek_fill_attr(current_node, attr_table, pdata);
/* Put protocol filter back */
@@ -1240,6 +1242,7 @@ ek_fill_attr(proto_node *node, GHashTable *attr_table, write_json_data *pdata)
// Don't traverse children if filtered out
}
} else {
+ // We recurse here, but we're limited by our tree depth checks in proto.c
ek_fill_attr(current_node, attr_table, pdata);
}
} else {
@@ -1387,6 +1390,7 @@ ek_write_attr_hex(GSList *attr_instances, write_json_data *pdata)
}
static void
+// NOLINTNEXTLINE(misc-no-recursion)
ek_write_attr(GSList *attr_instances, write_json_data *pdata)
{
GSList *current_node = attr_instances;
@@ -1462,6 +1466,7 @@ ek_write_attr(GSList *attr_instances, write_json_data *pdata)
}
}
+// NOLINTNEXTLINE(misc-no-recursion)
void process_ek_attrs(gpointer key _U_, gpointer value, gpointer pdata)
{
GSList *attr_instances = (GSList *) value;
@@ -1470,6 +1475,7 @@ void process_ek_attrs(gpointer key _U_, gpointer value, gpointer pdata)
/* Write out a tree's data, and any child nodes, as JSON for EK */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
proto_tree_write_node_ek(proto_node *node, write_json_data *pdata)
{
GHashTable *attr_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
diff --git a/epan/print_stream.c b/epan/print_stream.c
index 4ed5e4fe23..ebfdfc7d91 100644
--- a/epan/print_stream.c
+++ b/epan/print_stream.c
@@ -46,9 +46,9 @@ typedef enum {
} color_type_t;
typedef struct {
- gboolean to_file;
+ bool to_file;
FILE *fh;
- gboolean isatty;
+ bool isatty;
const char *to_codeset;
color_type_t color_type;
#ifdef _WIN32
@@ -208,7 +208,7 @@ do_color_eol_24bit_escape(print_stream_t *self)
}
static FILE *
-open_print_dest(gboolean to_file, const char *dest)
+open_print_dest(bool to_file, const char *dest)
{
FILE *fh;
@@ -221,8 +221,8 @@ open_print_dest(gboolean to_file, const char *dest)
return fh;
}
-static gboolean
-close_print_dest(gboolean to_file, FILE *fh)
+static bool
+close_print_dest(bool to_file, FILE *fh)
{
/* Close the file or command */
if (to_file)
@@ -232,19 +232,19 @@ close_print_dest(gboolean to_file, FILE *fh)
}
/* Some formats need stuff at the beginning of the output */
-gboolean
-print_preamble(print_stream_t *self, gchar *filename, const char *version_string)
+bool
+print_preamble(print_stream_t *self, char *filename, const char *version_string)
{
- return self->ops->print_preamble ? (self->ops->print_preamble)(self, filename, version_string) : TRUE;
+ return self->ops->print_preamble ? (self->ops->print_preamble)(self, filename, version_string) : true;
}
-gboolean
+bool
print_line(print_stream_t *self, int indent, const char *line)
{
return (self->ops->print_line)(self, indent, line);
}
-gboolean
+bool
print_line_color(print_stream_t *self, int indent, const char *line, const color_t *fg, const color_t *bg)
{
if (self->ops->print_line_color)
@@ -254,42 +254,42 @@ print_line_color(print_stream_t *self, int indent, const char *line, const color
}
/* Insert bookmark */
-gboolean
-print_bookmark(print_stream_t *self, const gchar *name, const gchar *title)
+bool
+print_bookmark(print_stream_t *self, const char *name, const char *title)
{
- return self->ops->print_bookmark ? (self->ops->print_bookmark)(self, name, title) : TRUE;
+ return self->ops->print_bookmark ? (self->ops->print_bookmark)(self, name, title) : true;
}
-gboolean
+bool
new_page(print_stream_t *self)
{
- return self->ops->new_page ? (self->ops->new_page)(self) : TRUE;
+ return self->ops->new_page ? (self->ops->new_page)(self) : true;
}
/* Some formats need stuff at the end of the output */
-gboolean
+bool
print_finale(print_stream_t *self)
{
- return self->ops->print_finale ? (self->ops->print_finale)(self) : TRUE;
+ return self->ops->print_finale ? (self->ops->print_finale)(self) : true;
}
-gboolean
+bool
destroy_print_stream(print_stream_t *self)
{
- return (self && self->ops && self->ops->destroy) ? (self->ops->destroy)(self) : TRUE;
+ return (self && self->ops && self->ops->destroy) ? (self->ops->destroy)(self) : true;
}
#define MAX_INDENT 160
-/* returns TRUE if the print succeeded, FALSE if there was an error */
-static gboolean
+/* returns true if the print succeeded, false if there was an error */
+static bool
print_line_color_text(print_stream_t *self, int indent, const char *line, const color_t *fg, const color_t *bg)
{
static char spaces[MAX_INDENT];
size_t ret;
output_text *output = (output_text *)self->data;
unsigned int num_spaces;
- gboolean emit_color = output->isatty && (fg != NULL || bg != NULL);
+ bool emit_color = output->isatty && (fg != NULL || bg != NULL);
/* should be space, if NUL -> initialize */
if (!spaces[0])
@@ -310,7 +310,7 @@ print_line_color_text(print_stream_t *self, int indent, const char *line, const
case COLOR_24BIT_ESCAPE:
set_color_24bit_escape(output->fh, fg, bg);
if (ferror(output->fh))
- return FALSE;
+ return false;
break;
}
}
@@ -327,7 +327,7 @@ print_line_color_text(print_stream_t *self, int indent, const char *line, const
* most efficient way to do this. However, this has the side
* effect of scrubbing invalid output.
*/
- gchar *tty_out;
+ char *tty_out;
tty_out = g_convert_with_fallback(line, -1, output->to_codeset, "UTF-8", "?", NULL, NULL, NULL);
@@ -379,13 +379,13 @@ print_line_color_text(print_stream_t *self, int indent, const char *line, const
return !ferror(output->fh);
}
-static gboolean
+static bool
print_line_text(print_stream_t *self, int indent, const char *line)
{
return print_line_color_text(self, indent, line, NULL, NULL);
}
-static gboolean
+static bool
new_page_text(print_stream_t *self)
{
output_text *output = (output_text *)self->data;
@@ -394,11 +394,11 @@ new_page_text(print_stream_t *self)
return !ferror(output->fh);
}
-static gboolean
+static bool
destroy_text(print_stream_t *self)
{
output_text *output = (output_text *)self->data;
- gboolean ret;
+ bool ret;
switch (output->color_type) {
@@ -445,7 +445,7 @@ static const print_stream_ops_t print_text_ops = {
};
static print_stream_t *
-print_stream_text_alloc(gboolean to_file, FILE *fh)
+print_stream_text_alloc(bool to_file, FILE *fh)
{
print_stream_t *stream;
output_text *output;
@@ -472,7 +472,7 @@ print_stream_text_alloc(gboolean to_file, FILE *fh)
* The console-specific API GetConsoleScreenBufferInfo() succeeded,
* so we'll assume this is a console.
*/
- output->isatty = TRUE;
+ output->isatty = true;
output->csb_attrs = csb_info.wAttributes;
/*
@@ -579,7 +579,7 @@ print_stream_text_alloc(gboolean to_file, FILE *fh)
* treat that as meaning "not a console and everything else
* as being an error that we should report.
*/
- output->isatty = FALSE;
+ output->isatty = false;
/*
* This is not used if we're not on a console, as we're not doing
@@ -599,8 +599,8 @@ print_stream_text_alloc(gboolean to_file, FILE *fh)
*/
output->isatty = isatty(ws_fileno(fh));
if (output->isatty) {
- const gchar *charset;
- gboolean is_utf8;
+ const char *charset;
+ bool is_utf8;
/* Is there a more reliable way to do this? */
is_utf8 = g_get_charset(&charset);
@@ -672,7 +672,7 @@ print_stream_text_alloc(gboolean to_file, FILE *fh)
}
print_stream_t *
-print_stream_text_new(gboolean to_file, const char *dest)
+print_stream_text_new(bool to_file, const char *dest)
{
FILE *fh;
@@ -686,11 +686,11 @@ print_stream_text_new(gboolean to_file, const char *dest)
print_stream_t *
print_stream_text_stdio_new(FILE *fh)
{
- return print_stream_text_alloc(TRUE, fh);
+ return print_stream_text_alloc(true, fh);
}
typedef struct {
- gboolean to_file;
+ bool to_file;
FILE *fh;
} output_ps;
@@ -728,8 +728,8 @@ void ps_clean_string(char *out, const char *in, int outbuf_size)
}
}
-static gboolean
-print_preamble_ps(print_stream_t *self, gchar *filename, const char *version_string)
+static bool
+print_preamble_ps(print_stream_t *self, char *filename, const char *version_string)
{
output_ps *output = (output_ps *)self->data;
char psbuffer[MAX_PS_LINE_LENGTH]; /* static sized buffer! */
@@ -743,7 +743,7 @@ print_preamble_ps(print_stream_t *self, gchar *filename, const char *version_str
return !ferror(output->fh);
}
-static gboolean
+static bool
print_line_ps(print_stream_t *self, int indent, const char *line)
{
output_ps *output = (output_ps *)self->data;
@@ -754,8 +754,8 @@ print_line_ps(print_stream_t *self, int indent, const char *line)
return !ferror(output->fh);
}
-static gboolean
-print_bookmark_ps(print_stream_t *self, const gchar *name, const gchar *title)
+static bool
+print_bookmark_ps(print_stream_t *self, const char *name, const char *title)
{
output_ps *output = (output_ps *)self->data;
char psbuffer[MAX_PS_LINE_LENGTH]; /* static sized buffer! */
@@ -784,7 +784,7 @@ print_bookmark_ps(print_stream_t *self, const gchar *name, const gchar *title)
return !ferror(output->fh);
}
-static gboolean
+static bool
new_page_ps(print_stream_t *self)
{
output_ps *output = (output_ps *)self->data;
@@ -793,7 +793,7 @@ new_page_ps(print_stream_t *self)
return !ferror(output->fh);
}
-static gboolean
+static bool
print_finale_ps(print_stream_t *self)
{
output_ps *output = (output_ps *)self->data;
@@ -802,11 +802,11 @@ print_finale_ps(print_stream_t *self)
return !ferror(output->fh);
}
-static gboolean
+static bool
destroy_ps(print_stream_t *self)
{
output_ps *output = (output_ps *)self->data;
- gboolean ret;
+ bool ret;
ret = close_print_dest(output->to_file, output->fh);
g_free(output);
@@ -825,7 +825,7 @@ static const print_stream_ops_t print_ps_ops = {
};
static print_stream_t *
-print_stream_ps_alloc(gboolean to_file, FILE *fh)
+print_stream_ps_alloc(bool to_file, FILE *fh)
{
print_stream_t *stream;
output_ps *output;
@@ -842,7 +842,7 @@ print_stream_ps_alloc(gboolean to_file, FILE *fh)
}
print_stream_t *
-print_stream_ps_new(gboolean to_file, const char *dest)
+print_stream_ps_new(bool to_file, const char *dest)
{
FILE *fh;
@@ -856,7 +856,7 @@ print_stream_ps_new(gboolean to_file, const char *dest)
print_stream_t *
print_stream_ps_stdio_new(FILE *fh)
{
- return print_stream_ps_alloc(TRUE, fh);
+ return print_stream_ps_alloc(true, fh);
}
/*
diff --git a/epan/print_stream.h b/epan/print_stream.h
index 3fafa5561e..98f59ddb35 100644
--- a/epan/print_stream.h
+++ b/epan/print_stream.h
@@ -29,15 +29,15 @@ extern "C" {
struct print_stream;
typedef struct print_stream_ops {
- gboolean (*print_preamble)(struct print_stream *self, gchar *filename, const char *version_string);
- gboolean (*print_line)(struct print_stream *self, int indent,
+ bool (*print_preamble)(struct print_stream *self, char *filename, const char *version_string);
+ bool (*print_line)(struct print_stream *self, int indent,
const char *line);
- gboolean (*print_line_color)(struct print_stream *self, int indent, const char *line, const color_t *fg, const color_t *bg);
- gboolean (*print_bookmark)(struct print_stream *self,
- const gchar *name, const gchar *title);
- gboolean (*new_page)(struct print_stream *self);
- gboolean (*print_finale)(struct print_stream *self);
- gboolean (*destroy)(struct print_stream *self);
+ bool (*print_line_color)(struct print_stream *self, int indent, const char *line, const color_t *fg, const color_t *bg);
+ bool (*print_bookmark)(struct print_stream *self,
+ const char *name, const char *title);
+ bool (*new_page)(struct print_stream *self);
+ bool (*print_finale)(struct print_stream *self);
+ bool (*destroy)(struct print_stream *self);
} print_stream_ops_t;
typedef struct print_stream {
@@ -48,28 +48,28 @@ typedef struct print_stream {
/*
* These return a print_stream_t * on success and NULL on failure.
*/
-WS_DLL_PUBLIC print_stream_t *print_stream_text_new(gboolean to_file, const char *dest);
+WS_DLL_PUBLIC print_stream_t *print_stream_text_new(bool to_file, const char *dest);
WS_DLL_PUBLIC print_stream_t *print_stream_text_stdio_new(FILE *fh);
-WS_DLL_PUBLIC print_stream_t *print_stream_ps_new(gboolean to_file, const char *dest);
+WS_DLL_PUBLIC print_stream_t *print_stream_ps_new(bool to_file, const char *dest);
WS_DLL_PUBLIC print_stream_t *print_stream_ps_stdio_new(FILE *fh);
/*
- * These return TRUE if the print was successful, FALSE otherwise.
+ * These return true if the print was successful, false otherwise.
*/
-WS_DLL_PUBLIC gboolean print_preamble(print_stream_t *self, gchar *filename, const char *version_string);
-WS_DLL_PUBLIC gboolean print_line(print_stream_t *self, int indent, const char *line);
+WS_DLL_PUBLIC bool print_preamble(print_stream_t *self, char *filename, const char *version_string);
+WS_DLL_PUBLIC bool print_line(print_stream_t *self, int indent, const char *line);
/*
* equivalent to print_line(), but if the stream supports text coloring then
* the output text will also be colored with the given foreground and
* background
*/
-WS_DLL_PUBLIC gboolean print_line_color(print_stream_t *self, int indent, const char *line, const color_t *fg, const color_t *bg);
-WS_DLL_PUBLIC gboolean print_bookmark(print_stream_t *self, const gchar *name,
- const gchar *title);
-WS_DLL_PUBLIC gboolean new_page(print_stream_t *self);
-WS_DLL_PUBLIC gboolean print_finale(print_stream_t *self);
-WS_DLL_PUBLIC gboolean destroy_print_stream(print_stream_t *self);
+WS_DLL_PUBLIC bool print_line_color(print_stream_t *self, int indent, const char *line, const color_t *fg, const color_t *bg);
+WS_DLL_PUBLIC bool print_bookmark(print_stream_t *self, const char *name,
+ const char *title);
+WS_DLL_PUBLIC bool new_page(print_stream_t *self);
+WS_DLL_PUBLIC bool print_finale(print_stream_t *self);
+WS_DLL_PUBLIC bool destroy_print_stream(print_stream_t *self);
#ifdef __cplusplus
}
diff --git a/epan/proto.c b/epan/proto.c
index f9c05202b5..1b4e9eb948 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -18,6 +18,7 @@
#include <inttypes.h>
#include <errno.h>
+#include <wsutil/array.h>
#include <wsutil/bits_ctz.h>
#include <wsutil/bits_count_ones.h>
#include <wsutil/sign_ext.h>
@@ -404,7 +405,7 @@ struct _protocol {
};
/* List of all protocols */
-static GList *protocols = NULL;
+static GList *protocols;
/* Structure stored for deregistered g_slice */
struct g_slice_data {
@@ -413,12 +414,12 @@ struct g_slice_data {
};
/* Deregistered fields */
-static GPtrArray *deregistered_fields = NULL;
-static GPtrArray *deregistered_data = NULL;
-static GPtrArray *deregistered_slice = NULL;
+static GPtrArray *deregistered_fields;
+static GPtrArray *deregistered_data;
+static GPtrArray *deregistered_slice;
/* indexed by prefix, contains initializers */
-static GHashTable* prefixes = NULL;
+static GHashTable* prefixes;
/* Contains information about a field when a dissector calls
* proto_tree_add_item. */
@@ -457,17 +458,17 @@ typedef struct _gpa_hfinfo_t {
static gpa_hfinfo_t gpa_hfinfo;
/* Hash table of abbreviations and IDs */
-static GHashTable *gpa_name_map = NULL;
+static GHashTable *gpa_name_map;
static header_field_info *same_name_hfinfo;
/* Hash table protocol aliases. const char * -> const char * */
-static GHashTable *gpa_protocol_aliases = NULL;
+static GHashTable *gpa_protocol_aliases;
/*
* We're called repeatedly with the same field name when sorting a column.
* Cache our last gpa_name_map hit for faster lookups.
*/
-static char *last_field_name = NULL;
+static char *last_field_name;
static header_field_info *last_hfinfo;
static void save_same_name_hfinfo(gpointer data)
@@ -484,9 +485,9 @@ static guint32 *tree_is_expanded;
int num_tree_types = 1;
/* Name hashtables for fast detection of duplicate names */
-static GHashTable* proto_names = NULL;
-static GHashTable* proto_short_names = NULL;
-static GHashTable* proto_filter_names = NULL;
+static GHashTable* proto_names;
+static GHashTable* proto_short_names;
+static GHashTable* proto_filter_names;
static const char *reserved_filter_names[] = {
/* Display filter keywords. */
@@ -518,7 +519,7 @@ static const char *reserved_filter_names[] = {
NULL
};
-static GHashTable *proto_reserved_filter_names = NULL;
+static GHashTable *proto_reserved_filter_names;
static gint
proto_compare_name(gconstpointer p1_arg, gconstpointer p2_arg)
@@ -529,7 +530,7 @@ proto_compare_name(gconstpointer p1_arg, gconstpointer p2_arg)
return g_ascii_strcasecmp(p1->short_name, p2->short_name);
}
-static GSList *dissector_plugins = NULL;
+static GSList *dissector_plugins;
#ifdef HAVE_PLUGINS
void
@@ -751,6 +752,7 @@ proto_cleanup(void)
}
static gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
proto_tree_traverse_pre_order(proto_tree *tree, proto_tree_traverse_func func,
gpointer data)
{
@@ -770,6 +772,7 @@ proto_tree_traverse_pre_order(proto_tree *tree, proto_tree_traverse_func func,
*/
current = child;
child = current->next;
+ // We recurse here, but we're limited by prefs.gui_max_tree_depth
if (proto_tree_traverse_pre_order((proto_tree *)current, func, data))
return TRUE;
}
@@ -2522,6 +2525,7 @@ get_time_value(proto_tree *tree, tvbuff_t *tvb, const gint start,
report_type_length_mismatch(tree, "an NTP seconds-only time stamp", length, (length < 4));
}
break;
+
case ENC_TIME_MSEC_NTP | ENC_BIG_ENDIAN:
/*
* Milliseconds, 6 to 8 bytes.
@@ -2576,9 +2580,9 @@ get_time_value(proto_tree *tree, tvbuff_t *tvb, const gint start,
}
break;
- case ENC_TIME_CLASSIC_MAC_OS_SECS|ENC_BIG_ENDIAN:
+ case ENC_TIME_MP4_FILE_SECS|ENC_BIG_ENDIAN:
/*
- * Classic Mac OS time stamps, big-endian.
+ * MP4 file time stamps, big-endian.
* Only supported for absolute times.
*/
DISSECTOR_ASSERT(!is_relative);
@@ -2598,6 +2602,50 @@ get_time_value(proto_tree *tree, tvbuff_t *tvb, const gint start,
}
break;
+ case ENC_TIME_ZBEE_ZCL | ENC_BIG_ENDIAN:
+ /*
+ * Zigbee ZCL time stamps, big-endian.
+ * Only supported for absolute times.
+ */
+ DISSECTOR_ASSERT(!is_relative);
+
+ if (length == 8) {
+ tmp64secs = tvb_get_ntoh64(tvb, start);
+ time_stamp->secs = (time_t)(gint64)(tmp64secs - EPOCH_DELTA_2000_01_01_00_00_00_UTC);
+ time_stamp->nsecs = 0;
+ } else if (length == 4) {
+ tmpsecs = tvb_get_ntohl(tvb, start);
+ time_stamp->secs = (time_t)(gint32)(tmpsecs - EPOCH_DELTA_2000_01_01_00_00_00_UTC);
+ time_stamp->nsecs = 0;
+ } else {
+ time_stamp->secs = 0;
+ time_stamp->nsecs = 0;
+ report_type_length_mismatch(tree, "a Zigbee ZCL time stamp", length, (length < 4));
+ }
+ break;
+
+ case ENC_TIME_ZBEE_ZCL | ENC_LITTLE_ENDIAN:
+ /*
+ * Zigbee ZCL time stamps, little-endian.
+ * Only supported for absolute times.
+ */
+ DISSECTOR_ASSERT(!is_relative);
+
+ if (length == 8) {
+ tmp64secs = tvb_get_letoh64(tvb, start);
+ time_stamp->secs = (time_t)(gint64)(tmp64secs - EPOCH_DELTA_2000_01_01_00_00_00_UTC);
+ time_stamp->nsecs = 0;
+ } else if (length == 4) {
+ tmpsecs = tvb_get_letohl(tvb, start);
+ time_stamp->secs = (time_t)(gint32)(tmpsecs - EPOCH_DELTA_2000_01_01_00_00_00_UTC);
+ time_stamp->nsecs = 0;
+ } else {
+ time_stamp->secs = 0;
+ time_stamp->nsecs = 0;
+ report_type_length_mismatch(tree, "a Zigbee ZCL time stamp", length, (length < 4));
+ }
+ break;
+
default:
DISSECTOR_ASSERT_NOT_REACHED();
break;
@@ -3504,7 +3552,7 @@ ptvcursor_add_ret_string(ptvcursor_t* ptvc, int hf, gint length, const guint enc
/* Gets data from tvbuff, adds it to proto_tree, increments offset,
* and returns proto_item* and boolean value retreived */
proto_item*
-ptvcursor_add_ret_boolean(ptvcursor_t* ptvc, int hfindex, gint length, const guint encoding, gboolean *retval)
+ptvcursor_add_ret_boolean(ptvcursor_t* ptvc, int hfindex, gint length, const guint encoding, bool *retval)
{
header_field_info *hfinfo;
field_info *new_fi;
@@ -3746,7 +3794,7 @@ proto_tree_add_item_ret_varint(proto_tree *tree, int hfindex, tvbuff_t *tvb,
proto_item *
proto_tree_add_item_ret_boolean(proto_tree *tree, int hfindex, tvbuff_t *tvb,
const gint start, gint length,
- const guint encoding, gboolean *retval)
+ const guint encoding, bool *retval)
{
header_field_info *hfinfo;
field_info *new_fi;
@@ -5832,7 +5880,7 @@ proto_tree_add_uint_format(proto_tree *tree, int hfindex, tvbuff_t *tvb,
static void
proto_tree_set_uint(field_info *fi, guint32 value)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
guint32 integer;
hfinfo = fi->hfinfo;
@@ -5924,7 +5972,7 @@ proto_tree_add_uint64_format(proto_tree *tree, int hfindex, tvbuff_t *tvb,
static void
proto_tree_set_uint64(field_info *fi, guint64 value)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
guint64 integer;
hfinfo = fi->hfinfo;
@@ -6015,7 +6063,7 @@ proto_tree_add_int_format(proto_tree *tree, int hfindex, tvbuff_t *tvb,
static void
proto_tree_set_int(field_info *fi, gint32 value)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
guint32 integer;
gint no_of_bits;
@@ -6090,7 +6138,7 @@ proto_tree_add_int64_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb,
static void
proto_tree_set_int64(field_info *fi, gint64 value)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
guint64 integer;
gint no_of_bits;
@@ -6739,7 +6787,7 @@ proto_tree_set_representation_value(proto_item *pi, const char *format, va_list
gsize name_pos, ret = 0;
char *str;
field_info *fi = PITEM_FINFO(pi);
- header_field_info *hf;
+ const header_field_info *hf;
DISSECTOR_ASSERT(fi);
@@ -6859,7 +6907,7 @@ hfinfo_remove_from_gpa_name_map(const header_field_info *hfinfo)
int
proto_item_fill_display_label(field_info *finfo, gchar *display_label_str, const int label_str_size)
{
- header_field_info *hfinfo = finfo->hfinfo;
+ const header_field_info *hfinfo = finfo->hfinfo;
int label_len = 0;
char *tmp_str;
const char *str;
@@ -8415,11 +8463,11 @@ void proto_heuristic_dissector_foreach(const protocol_t *protocol, GFunc func, g
}
void
-proto_get_frame_protocols(const wmem_list_t *layers, gboolean *is_ip,
- gboolean *is_tcp, gboolean *is_udp,
- gboolean *is_sctp, gboolean *is_tls,
- gboolean *is_rtp,
- gboolean *is_lte_rlc)
+proto_get_frame_protocols(const wmem_list_t *layers, bool *is_ip,
+ bool *is_tcp, bool *is_udp,
+ bool *is_sctp, bool *is_tls,
+ bool *is_rtp,
+ bool *is_lte_rlc)
{
wmem_list_frame_t *protos = wmem_list_head(layers);
int proto_id;
@@ -8435,19 +8483,19 @@ proto_get_frame_protocols(const wmem_list_t *layers, gboolean *is_ip,
if (is_ip && ((!strcmp(proto_name, "ip")) ||
(!strcmp(proto_name, "ipv6")))) {
- *is_ip = TRUE;
+ *is_ip = true;
} else if (is_tcp && !strcmp(proto_name, "tcp")) {
- *is_tcp = TRUE;
+ *is_tcp = true;
} else if (is_udp && !strcmp(proto_name, "udp")) {
- *is_udp = TRUE;
+ *is_udp = true;
} else if (is_sctp && !strcmp(proto_name, "sctp")) {
- *is_sctp = TRUE;
+ *is_sctp = true;
} else if (is_tls && !strcmp(proto_name, "tls")) {
- *is_tls = TRUE;
+ *is_tls = true;
} else if (is_rtp && !strcmp(proto_name, "rtp")) {
- *is_rtp = TRUE;
+ *is_rtp = true;
} else if (is_lte_rlc && (!strcmp(proto_name, "rlc-lte") || !strcmp(proto_name, "rlc-nr"))) {
- *is_lte_rlc = TRUE;
+ *is_lte_rlc = true;
}
protos = wmem_list_frame_next(protos);
@@ -8509,6 +8557,7 @@ proto_is_pino(const protocol_t *protocol)
}
gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
proto_is_protocol_enabled(const protocol_t *protocol)
{
if (protocol == NULL)
@@ -8522,6 +8571,7 @@ proto_is_protocol_enabled(const protocol_t *protocol)
}
gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
proto_is_protocol_enabled_by_default(const protocol_t *protocol)
{
//parent protocol determines enable/disable for helper dissectors
@@ -8532,6 +8582,7 @@ proto_is_protocol_enabled_by_default(const protocol_t *protocol)
}
gboolean
+// NOLINTNEXTLINE(misc-no-recursion)
proto_can_toggle_protocol(const int proto_id)
{
protocol_t *protocol;
@@ -9796,7 +9847,7 @@ label_fill_descr(char *label_str, gsize pos, const header_field_info *hfinfo, co
void
proto_item_fill_label(field_info *fi, gchar *label_str)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
const char *str;
const guint8 *bytes;
guint32 integer;
@@ -10086,7 +10137,7 @@ fill_label_boolean(field_info *fi, gchar *label_str)
guint64 unshifted_value;
guint64 value;
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
value = fvalue_get_uinteger64(fi->value);
if (hfinfo->bitmask) {
@@ -10197,7 +10248,7 @@ fill_label_bitfield_char(field_info *fi, gchar *label_str)
char buf[32];
const char *out;
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
/* Figure out the bit width */
bitwidth = hfinfo_container_bitwidth(hfinfo);
@@ -10249,7 +10300,7 @@ fill_label_bitfield(field_info *fi, gchar *label_str, gboolean is_signed)
char buf[NUMBER_LABEL_LENGTH];
const char *out;
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
/* Figure out the bit width */
if (fi->flags & FI_VARINT)
@@ -10324,7 +10375,7 @@ fill_label_bitfield64(field_info *fi, gchar *label_str, gboolean is_signed)
char buf[NUMBER_LABEL_LENGTH];
const char *out;
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
/* Figure out the bit width */
if (fi->flags & FI_VARINT)
@@ -10393,7 +10444,7 @@ fill_label_bitfield64(field_info *fi, gchar *label_str, gboolean is_signed)
static void
fill_label_char(field_info *fi, gchar *label_str)
{
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
guint32 value;
char buf[32];
@@ -10426,7 +10477,7 @@ fill_label_char(field_info *fi, gchar *label_str)
static void
fill_label_number(field_info *fi, gchar *label_str, gboolean is_signed)
{
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
guint32 value;
char buf[NUMBER_LABEL_LENGTH];
@@ -10492,7 +10543,7 @@ fill_label_number(field_info *fi, gchar *label_str, gboolean is_signed)
static void
fill_label_number64(field_info *fi, gchar *label_str, gboolean is_signed)
{
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
guint64 value;
char buf[NUMBER_LABEL_LENGTH];
@@ -11176,8 +11227,8 @@ typedef struct {
} ffdata_t;
/* Helper function for proto_find_info() */
-static gboolean
-find_finfo(proto_node *node, gpointer data)
+static bool
+find_finfo(proto_node *node, void * data)
{
field_info *fi = PNODE_FINFO(node);
if (fi && fi->hfinfo) {
@@ -11187,11 +11238,11 @@ find_finfo(proto_node *node, gpointer data)
}
/* Don't stop traversing. */
- return FALSE;
+ return false;
}
/* Helper function for proto_find_first_info() */
-static gboolean
+static bool
find_first_finfo(proto_node *node, gpointer data)
{
field_info *fi = PNODE_FINFO(node);
@@ -11200,12 +11251,12 @@ find_first_finfo(proto_node *node, gpointer data)
g_ptr_array_add(((ffdata_t*)data)->array, fi);
/* Stop traversing. */
- return TRUE;
+ return true;
}
}
/* Continue traversing. */
- return FALSE;
+ return false;
}
/* Return GPtrArray* of field_info pointers for all hfindex that appear in a tree.
@@ -11247,8 +11298,8 @@ proto_find_first_finfo(proto_tree *tree, const int id)
}
/* Helper function for proto_all_finfos() */
-static gboolean
-every_finfo(proto_node *node, gpointer data)
+static bool
+every_finfo(proto_node *node, void * data)
{
field_info *fi = PNODE_FINFO(node);
if (fi && fi->hfinfo) {
@@ -11256,7 +11307,7 @@ every_finfo(proto_node *node, gpointer data)
}
/* Don't stop traversing. */
- return FALSE;
+ return false;
}
/* Return GPtrArray* of field_info pointers containing all hfindexes that appear in a tree. */
@@ -11281,8 +11332,8 @@ typedef struct {
tvbuff_t *tvb;
} offset_search_t;
-static gboolean
-check_for_offset(proto_node *node, gpointer data)
+static bool
+check_for_offset(proto_node *node, void * data)
{
field_info *fi = PNODE_FINFO(node);
offset_search_t *offsearch = (offset_search_t *)data;
@@ -11293,10 +11344,10 @@ check_for_offset(proto_node *node, gpointer data)
offsearch->offset < (guint) (fi->start + fi->length)) {
offsearch->finfo = fi;
- return FALSE; /* keep traversing */
+ return false; /* keep traversing */
}
}
- return FALSE; /* keep traversing */
+ return false; /* keep traversing */
}
/* Search a proto_tree backwards (from leaves to root) looking for the field
@@ -11326,8 +11377,8 @@ typedef struct {
gchar *buf;
} decoded_data_t;
-static gboolean
-check_for_undecoded(proto_node *node, gpointer data)
+static bool
+check_for_undecoded(proto_node *node, void * data)
{
field_info *fi = PNODE_FINFO(node);
decoded_data_t* decoded = (decoded_data_t*)data;
@@ -11343,7 +11394,7 @@ check_for_undecoded(proto_node *node, gpointer data)
}
}
- return FALSE;
+ return false;
}
gchar*
@@ -12116,7 +12167,7 @@ static gboolean
construct_match_selected_string(field_info *finfo, epan_dissect_t *edt,
char **filter)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
char *ptr;
int buf_len;
int i;
diff --git a/epan/proto.h b/epan/proto.h
index 1bd87c00ce..68cbf9b7c6 100644
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -527,7 +527,8 @@ void proto_report_dissector_bug(const char *format, ...)
*/
#define ENC_BCD_ODD_NUM_DIG 0x00010000
#define ENC_BCD_SKIP_FIRST 0x00020000
- /*
+
+/*
* Encodings for time values.
*
* Historically FT_TIMEs were only timespecs; the only question was whether
@@ -604,8 +605,11 @@ void proto_report_dissector_bug(const char *format, ...)
* and the remaining 16 bits indicate the number of 1/65536's of a second
* since that second.
*
- * ENC_TIME_CLASSIC_MAC_OS_SECS - 4-8 bytes, representing a count of seconds
- * since January 1, 1904, 00:00:00 UTC.
+ * ENC_TIME_MP4_FILE_SECS - 4-8 bytes, representing a count of seconds since
+ * January 1, 1904, 00:00:00 UTC.
+ *
+ * ENC_TIME_ZBEE_ZCL - 4-8 bytes, representing a count of seconds since
+ * January 1, 2000, 00:00:00 UTC.
*/
#define ENC_TIME_SECS_NSECS 0x00000000
#define ENC_TIME_TIMESPEC 0x00000000 /* for backwards source compatibility */
@@ -621,9 +625,11 @@ void proto_report_dissector_bug(const char *format, ...)
#define ENC_TIME_RFC_3971 0x00000020
#define ENC_TIME_MSEC_NTP 0x00000022
#define ENC_TIME_MIP6 0x00000024
-#define ENC_TIME_CLASSIC_MAC_OS_SECS 0x00000026
+#define ENC_TIME_MP4_FILE_SECS 0x00000026
+#define ENC_TIME_CLASSIC_MAC_OS_SECS 0x00000026 /* for backwards source compatibility */
#define ENC_TIME_NSECS 0x00000028
#define ENC_TIME_USECS 0x00000030
+#define ENC_TIME_ZBEE_ZCL 0x00000032
/*
* For cases where a string encoding contains a timestamp, use one
@@ -808,7 +814,7 @@ typedef struct _item_label_t {
/** Contains the field information for the proto_item. */
typedef struct field_info {
- header_field_info *hfinfo; /**< pointer to registered field information */
+ const header_field_info *hfinfo; /**< pointer to registered field information */
gint start; /**< current start of data in field_info.ds_tvb */
gint length; /**< current data length of item in field_info.ds_tvb */
gint appendix_start; /**< start of appendix data */
@@ -963,6 +969,8 @@ typedef proto_node proto_item;
#define PI_RECEIVE 0x0f000000
/** Something happened at the interface layer (out of buffers, hardware error, etc.) */
#define PI_INTERFACE 0x10000000
+/** A bug in a dissector was detected, usually PI_ERROR severity */
+#define PI_DISSECTOR_BUG 0x11000000
/*
* add more, see
@@ -1063,8 +1071,8 @@ static inline void proto_item_set_url(proto_item *ti) {
}
#define PROTO_ITEM_SET_URL(ti) proto_item_set_url((ti))
-typedef void (*proto_tree_foreach_func)(proto_node *, gpointer);
-typedef gboolean (*proto_tree_traverse_func)(proto_node *, gpointer);
+typedef void (*proto_tree_foreach_func)(proto_node *, void *);
+typedef bool (*proto_tree_traverse_func)(proto_node *, void *);
WS_DLL_PUBLIC void proto_tree_children_foreach(proto_tree *tree,
proto_tree_foreach_func func, gpointer data);
@@ -1351,7 +1359,7 @@ proto_tree_add_item_ret_varint(proto_tree *tree, int hfindex, tvbuff_t *tvb,
WS_DLL_PUBLIC proto_item *
proto_tree_add_item_ret_boolean(proto_tree *tree, int hfindex, tvbuff_t *tvb,
- const gint start, gint length, const guint encoding, gboolean *retval);
+ const gint start, gint length, const guint encoding, bool *retval);
WS_DLL_PUBLIC proto_item *
proto_tree_add_item_ret_ipv4(proto_tree *tree, int hfindex, tvbuff_t *tvb,
@@ -2788,24 +2796,24 @@ WS_DLL_PUBLIC void proto_heuristic_dissector_foreach(const protocol_t *protocol,
/** Find commonly-used protocols in a layer list.
* @param layers Protocol layer list
- * @param is_ip Set to TRUE if the layer list contains IPv4 or IPv6, otherwise
+ * @param is_ip Set to true if the layer list contains IPv4 or IPv6, otherwise
* unchanged. May be NULL.
- * @param is_tcp Set to TRUE if the layer list contains TCP, otherwise
+ * @param is_tcp Set to true if the layer list contains TCP, otherwise
* unchanged. May be NULL.
- * @param is_udp Set to TRUE if the layer list contains UDP, otherwise
+ * @param is_udp Set to true if the layer list contains UDP, otherwise
* unchanged. May be NULL.
- * @param is_sctp Set to TRUE if the layer list contains SCTP, otherwise
+ * @param is_sctp Set to true if the layer list contains SCTP, otherwise
* unchanged. May be NULL.
- * @param is_tls Set to TRUE if the layer list contains SSL/TLS, otherwise
+ * @param is_tls Set to true if the layer list contains SSL/TLS, otherwise
* unchanged. May be NULL.
- * @param is_rtp Set to TRUE if the layer list contains RTP, otherwise
+ * @param is_rtp Set to true if the layer list contains RTP, otherwise
* unchanged. May be NULL.
- * @param is_lte_rlc Set to TRUE if the layer list contains LTE RLC, otherwise
+ * @param is_lte_rlc Set to true if the layer list contains LTE RLC, otherwise
* unchanged. May be NULL.
*/
WS_DLL_PUBLIC void proto_get_frame_protocols(const wmem_list_t *layers,
- gboolean *is_ip, gboolean *is_tcp, gboolean *is_udp, gboolean *is_sctp,
- gboolean *is_tls, gboolean *is_rtp, gboolean *is_lte_rlc);
+ bool *is_ip, bool *is_tcp, bool *is_udp, bool *is_sctp,
+ bool *is_tls, bool *is_rtp, bool *is_lte_rlc);
/** Check whether a protocol, specified by name, is in a layer list.
* @param layers Protocol layer list
@@ -2918,11 +2926,6 @@ WS_DLL_PUBLIC gboolean tree_expanded(int tree_type);
/** Sets if subtrees of that type are to be expanded. */
WS_DLL_PUBLIC void tree_expanded_set(int tree_type, gboolean value);
-/** glib doesn't have g_ptr_array_len of all things!*/
-#ifndef g_ptr_array_len
-#define g_ptr_array_len(a) ((a)?(a)->len:0)
-#endif
-
WS_DLL_PUBLIC int
hfinfo_bitshift(const header_field_info *hfinfo);
diff --git a/epan/protobuf-helper.c b/epan/protobuf-helper.c
index 5b60ecab1a..7e1ab60e18 100644
--- a/epan/protobuf-helper.c
+++ b/epan/protobuf-helper.c
@@ -18,7 +18,7 @@
* At present, we use C Protocol Buffers Language Parser which generated by protobuf_lang_parser.lemon and protobuf_lang_scanner.l.
* Because wireshark is mainly implemented in plain ANSI C but the official protobuf library is implemented in C++ language.
*
- * One day, if C++ library is allowd, we can create a protobuf-helper.cpp file, that invoking official protobuf C++ library directly,
+ * One day, if C++ library is allowed, we can create a protobuf-helper.cpp file, that invoking official protobuf C++ library directly,
* to replace protobuf-helper.c. The packet-protobuf.c can keep unchanged.
*/
diff --git a/epan/protobuf_lang_tree.c b/epan/protobuf_lang_tree.c
index 053f7c2b35..4f5acdd312 100644
--- a/epan/protobuf_lang_tree.c
+++ b/epan/protobuf_lang_tree.c
@@ -1052,7 +1052,9 @@ pbl_add_child(pbl_node_t* parent, pbl_node_t* child)
((pbl_option_descriptor_t*)child)->value = g_strconcat(oval, ",", nval, NULL);
g_free(nval);
} else if (node && child->file && parent->file
- && child->file->pool && child->file->pool->error_cb) {
+ && child->file->pool && child->file->pool->error_cb
+ /* Let's assume that any set of base types we point at are valid.. */
+ && !strstr(node->file->filename, "google")) {
child->file->pool->error_cb(
"Protobuf: Warning: \"%s\" of [%s:%d] is already defined in file [%s:%d].\n",
child->name, child->file->filename, child->lineno, node->file->filename, node->lineno);
diff --git a/epan/ptvcursor.h b/epan/ptvcursor.h
index 1e6b35f86a..1998af75da 100644
--- a/epan/ptvcursor.h
+++ b/epan/ptvcursor.h
@@ -55,7 +55,7 @@ ptvcursor_add_ret_string(ptvcursor_t* ptvc, int hf, gint length, const guint enc
* and returns proto_item* and boolean value retreived */
WS_DLL_PUBLIC
proto_item*
-ptvcursor_add_ret_boolean(ptvcursor_t* ptvc, int hf, gint length, const guint encoding, gboolean *retval);
+ptvcursor_add_ret_boolean(ptvcursor_t* ptvc, int hf, gint length, const guint encoding, bool *retval);
/* Gets data from tvbuff, adds it to proto_tree, *DOES NOT* increment
* offset, and returns proto_item* */
diff --git a/epan/range.c b/epan/range.c
index a2ff590d83..c751a469d6 100644
--- a/epan/range.c
+++ b/epan/range.c
@@ -267,7 +267,7 @@ value_is_in_range(const range_t *range, guint32 val)
return TRUE;
}
}
- return(FALSE);
+ return FALSE;
}
/* This function returns TRUE if val has successfully been added to
@@ -304,7 +304,7 @@ range_add_value(wmem_allocator_t *scope, range_t **range, guint32 val)
(*range)->ranges[i].low = (*range)->ranges[i].high = val;
return TRUE;
}
- return(FALSE);
+ return FALSE;
}
/* This function returns TRUE if val has successfully been removed from
@@ -360,7 +360,7 @@ range_remove_value(wmem_allocator_t *scope, range_t **range, guint32 val)
}
return TRUE;
}
- return(FALSE);
+ return FALSE;
}
/* This function returns TRUE if the two given range_t's are equal.
diff --git a/epan/reassemble.c b/epan/reassemble.c
index 543d091f67..528a54f8ad 100644
--- a/epan/reassemble.c
+++ b/epan/reassemble.c
@@ -30,7 +30,7 @@ typedef struct _fragment_addresses_key {
guint32 id;
} fragment_addresses_key;
-GList* reassembly_table_list = NULL;
+GList* reassembly_table_list;
static guint
fragment_addresses_hash(gconstpointer k)
@@ -2844,10 +2844,10 @@ fragment_end_seq_next(reassembly_table *table, const packet_info *pinfo,
tvbuff_t *
process_reassembled_data(tvbuff_t *tvb, const int offset, packet_info *pinfo,
const char *name, fragment_head *fd_head, const fragment_items *fit,
- gboolean *update_col_infop, proto_tree *tree)
+ bool *update_col_infop, proto_tree *tree)
{
tvbuff_t *next_tvb;
- gboolean update_col_info;
+ bool update_col_info;
proto_item *frag_tree_item;
if (fd_head != NULL && pinfo->num == fd_head->reassembled_in && pinfo->curr_layer_num == fd_head->reas_in_layer_num) {
@@ -2885,7 +2885,7 @@ process_reassembled_data(tvbuff_t *tvb, const int offset, packet_info *pinfo,
*/
next_tvb = tvb_new_subset_remaining(tvb, offset);
pinfo->fragmented = FALSE; /* one-fragment packet */
- update_col_info = TRUE;
+ update_col_info = true;
}
if (update_col_infop != NULL)
*update_col_infop = update_col_info;
diff --git a/epan/reassemble.h b/epan/reassemble.h
index 44699608a0..35feaec59b 100644
--- a/epan/reassemble.h
+++ b/epan/reassemble.h
@@ -543,7 +543,7 @@ typedef struct _fragment_items {
WS_DLL_PUBLIC tvbuff_t *
process_reassembled_data(tvbuff_t *tvb, const int offset, packet_info *pinfo,
const char *name, fragment_head *fd_head, const fragment_items *fit,
- gboolean *update_col_infop, proto_tree *tree);
+ bool *update_col_infop, proto_tree *tree);
WS_DLL_PUBLIC gboolean
show_fragment_tree(fragment_head *ipfd_head, const fragment_items *fit,
diff --git a/epan/reassemble_test.c b/epan/reassemble_test.c
index e1ba559b3a..2e29d6a4b7 100644
--- a/epan/reassemble_test.c
+++ b/epan/reassemble_test.c
@@ -44,8 +44,8 @@
#include "exceptions.h"
-static int failure = 0;
-static const gboolean debug = FALSE; /* Set to TRUE to dump tables. */
+static int failure;
+static const gboolean debug; /* Set to TRUE to dump tables. */
#define ASSERT(b) \
if (!(b)) { \
@@ -3268,7 +3268,7 @@ main(int argc _U_, char **argv _U_)
set_address(&pinfo.dst,AT_IPv4,4,dst);
/*************************************************************************/
- for(i=0; i < sizeof(tests)/sizeof(tests[0]); i++ ) {
+ for(i=0; i < array_length(tests); i++ ) {
/* re-init the fragment tables */
reassembly_table_init(&test_reassembly_table,
&addresses_reassembly_table_functions);
diff --git a/epan/register.c b/epan/register.c
index 1f8f2c2fa5..e6964178a2 100644
--- a/epan/register.c
+++ b/epan/register.c
@@ -17,7 +17,7 @@
#include "epan/dissectors/dissectors.h"
-static const char *cur_cb_name = NULL;
+static const char *cur_cb_name;
// We could use g_atomic_pointer_set/get instead of a mutex, but that causes
// a false positive with Clang and TSAN for GLib < 2.64.0 (Issue #17753):
// https://gitlab.gnome.org/GNOME/glib/-/issues/1843
diff --git a/epan/rtd_table.c b/epan/rtd_table.c
index 738e66ed40..557c995f36 100644
--- a/epan/rtd_table.c
+++ b/epan/rtd_table.c
@@ -54,7 +54,7 @@ const value_string* get_rtd_value_string(register_rtd_t* rtd)
return rtd->vs_type;
}
-static wmem_tree_t *registered_rtd_tables = NULL;
+static wmem_tree_t *registered_rtd_tables;
void
register_rtd_table(const int proto_id, const char* tap_listener, guint num_tables, guint num_timestats, const value_string* vs_type,
diff --git a/epan/secrets.c b/epan/secrets.c
index 0bca2eb20d..80944455fb 100644
--- a/epan/secrets.c
+++ b/epan/secrets.c
@@ -34,7 +34,7 @@
#include <windows.h>
#endif
-/** Maps guint32 secrets_type -> secrets_block_callback_t. */
+/** Maps uint32_t secrets_type -> secrets_block_callback_t. */
static GHashTable *secrets_callbacks;
#ifdef HAVE_LIBGNUTLS
@@ -48,7 +48,7 @@ typedef struct {
static uat_t *rsa_privkeys_uat;
static rsa_privkey_record_t *uat_rsa_privkeys;
-static guint uat_num_rsa_privkeys;
+static unsigned uat_num_rsa_privkeys;
static void register_rsa_uats(void);
#endif /* HAVE_LIBGNUTLS */
@@ -63,7 +63,7 @@ typedef struct {
static uat_t *pkcs11_libs_uat;
static pkcs11_lib_record_t *uat_pkcs11_libs;
-static guint uat_num_pkcs11_libs;
+static unsigned uat_num_pkcs11_libs;
#endif /* HAVE_GNUTLS_PKCS11 */
void
@@ -92,13 +92,13 @@ secrets_cleanup(void)
}
void
-secrets_register_type(guint32 secrets_type, secrets_block_callback_t cb)
+secrets_register_type(uint32_t secrets_type, secrets_block_callback_t cb)
{
- g_hash_table_insert(secrets_callbacks, GUINT_TO_POINTER(secrets_type), (gpointer)cb);
+ g_hash_table_insert(secrets_callbacks, GUINT_TO_POINTER(secrets_type), (void *)cb);
}
void
-secrets_wtap_callback(guint32 secrets_type, const void *secrets, guint size)
+secrets_wtap_callback(uint32_t secrets_type, const void *secrets, unsigned size)
{
secrets_block_callback_t cb = (secrets_block_callback_t)g_hash_table_lookup(
secrets_callbacks, GUINT_TO_POINTER(secrets_type));
@@ -108,11 +108,11 @@ secrets_wtap_callback(guint32 secrets_type, const void *secrets, guint size)
}
#ifdef HAVE_LIBGNUTLS
-static guint
+static unsigned
key_id_hash(gconstpointer key)
{
const cert_key_id_t *key_id = (const cert_key_id_t *)key;
- const guint32 *dw = (const guint32 *)key_id->key_id;
+ const uint32_t *dw = (const uint32_t *)key_id->key_id;
/* The public key' SHA-1 hash (which maps to a private key) has a uniform
* distribution, hence simply xor'ing them should be sufficient. */
@@ -138,7 +138,7 @@ static void
rsa_privkey_add(const cert_key_id_t *key_id, gnutls_privkey_t pkey)
{
void *ht_key = g_memdup2(key_id->key_id, sizeof(cert_key_id_t));
- const guint32 *dw = (const guint32 *)key_id->key_id;
+ const uint32_t *dw = (const uint32_t *)key_id->key_id;
g_hash_table_insert(rsa_privkeys, ht_key, pkey);
ws_debug("Adding RSA private, Key ID %08x%08x%08x%08x%08x", g_htonl(dw[0]),
g_htonl(dw[1]), g_htonl(dw[2]), g_htonl(dw[3]), g_htonl(dw[4]));
@@ -203,8 +203,8 @@ get_pkcs11_token_uris(void)
return tokens;
}
-static gboolean
-verify_pkcs11_token(const char *token_uri, const char *pin, gboolean *pin_needed, char **error)
+static bool
+verify_pkcs11_token(const char *token_uri, const char *pin, bool *pin_needed, char **error)
{
gnutls_pkcs11_obj_t *list = NULL;
unsigned int nlist = 0;
@@ -236,9 +236,9 @@ verify_pkcs11_token(const char *token_uri, const char *pin, gboolean *pin_needed
if (error) {
*error = g_strdup(gnutls_strerror(ret));
}
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
/**
@@ -253,7 +253,7 @@ pkcs11_load_keys_from_token(const char *token_uri, const char *pin, char **err)
int ret;
/* An empty/NULL PIN means that none is necessary. */
char *fixed_pin = pin && pin[0] ? g_strdup(pin) : NULL;
- gboolean pin_in_use = FALSE;
+ bool pin_in_use = false;
/* Set PIN via a global callback since import_url can prompt for one. */
gnutls_pkcs11_set_pin_function(set_pin_callback, fixed_pin);
@@ -331,7 +331,7 @@ pkcs11_load_keys_from_token(const char *token_uri, const char *pin, char **err)
/* Remember the private key. */
rsa_privkey_add(&key_id, privkey);
privkey = NULL;
- pin_in_use = TRUE;
+ pin_in_use = true;
cont:
gnutls_privkey_deinit(privkey);
@@ -361,7 +361,7 @@ uat_pkcs11_libs_load_all(void)
int ret;
GString *err = NULL;
- for (guint i = 0; i < uat_num_pkcs11_libs; i++) {
+ for (unsigned i = 0; i < uat_num_pkcs11_libs; i++) {
const pkcs11_lib_record_t *rec = &uat_pkcs11_libs[i];
const char *libname = rec->library_path;
#ifdef _MSC_VER
@@ -388,7 +388,7 @@ uat_pkcs11_libs_load_all(void)
}
if (err) {
report_failure("%s", err->str);
- g_string_free(err, TRUE);
+ g_string_free(err, true);
}
}
@@ -433,7 +433,7 @@ uat_rsa_privkey_free_str_cb(void *record)
}
static void
-load_rsa_keyfile(const char *filename, const char *password, gboolean save_key, char **err)
+load_rsa_keyfile(const char *filename, const char *password, bool save_key, char **err)
{
gnutls_x509_privkey_t x509_priv_key;
gnutls_privkey_t privkey = NULL;
@@ -496,7 +496,7 @@ uat_rsa_privkeys_post_update(void)
#endif /* HAVE_GNUTLS_PKCS11 */
GString *errors = NULL;
- for (guint i = 0; i < uat_num_rsa_privkeys; i++) {
+ for (unsigned i = 0; i < uat_num_rsa_privkeys; i++) {
const rsa_privkey_record_t *rec = &uat_rsa_privkeys[i];
const char *token_uri = rec->uri;
char *err = NULL;
@@ -506,7 +506,7 @@ uat_rsa_privkeys_post_update(void)
pkcs11_load_keys_from_token(token_uri, rec->password, &err);
#endif /* HAVE_GNUTLS_PKCS11 */
} else {
- load_rsa_keyfile(token_uri, rec->password, TRUE, &err);
+ load_rsa_keyfile(token_uri, rec->password, true, &err);
}
if (err) {
if (!errors) {
@@ -519,7 +519,7 @@ uat_rsa_privkeys_post_update(void)
}
if (errors) {
report_failure("%s", errors->str);
- g_string_free(errors, TRUE);
+ g_string_free(errors, true);
}
}
@@ -533,11 +533,11 @@ secrets_get_available_keys(void)
return keys;
}
-gboolean
-secrets_verify_key(const char *uri, const char *password, gboolean *need_password, char **error)
+bool
+secrets_verify_key(const char *uri, const char *password, bool *need_password, char **error)
{
if (need_password) {
- *need_password = FALSE;
+ *need_password = false;
}
if (error) {
*error = NULL;
@@ -550,11 +550,11 @@ secrets_verify_key(const char *uri, const char *password, gboolean *need_passwor
if (error) {
*error = g_strdup("PKCS #11 support is not available in this build");
}
- return FALSE;
+ return false;
#endif
} else if (g_file_test(uri, G_FILE_TEST_IS_REGULAR)) {
- gchar *err = NULL;
- load_rsa_keyfile(uri, password, FALSE, &err);
+ char *err = NULL;
+ load_rsa_keyfile(uri, password, false, &err);
if (need_password) {
// Assume that failure to load the key is due to password errors.
// This might not be correct, but fixing this needs more changes.
@@ -566,14 +566,14 @@ secrets_verify_key(const char *uri, const char *password, gboolean *need_passwor
} else {
g_free(err);
}
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
} else {
if (error) {
*error = g_strdup("Unsupported key URI or path");
}
- return FALSE;
+ return false;
}
}
@@ -593,7 +593,7 @@ register_rsa_uats(void)
pkcs11_libs_uat = uat_new("PKCS #11 Provider Libraries",
sizeof(pkcs11_lib_record_t),
"pkcs11_libs", /* filename */
- FALSE, /* from_profile */
+ false, /* from_profile */
&uat_pkcs11_libs, /* data_ptr */
&uat_num_pkcs11_libs, /* numitems_ptr */
0, /* does not directly affect dissection */
@@ -614,7 +614,7 @@ register_rsa_uats(void)
rsa_privkeys_uat = uat_new("RSA Private Keys",
sizeof(rsa_privkey_record_t),
"rsa_keys", /* filename */
- FALSE, /* from_profile */
+ false, /* from_profile */
&uat_rsa_privkeys, /* data_ptr */
&uat_num_rsa_privkeys, /* numitems_ptr */
0, /* does not directly affect dissection */
@@ -628,10 +628,10 @@ register_rsa_uats(void)
}
int
-secrets_rsa_decrypt(const cert_key_id_t *key_id, const guint8 *encr, int encr_len, guint8 **out, int *out_len)
+secrets_rsa_decrypt(const cert_key_id_t *key_id, const uint8_t *encr, int encr_len, uint8_t **out, int *out_len)
{
- gboolean ret;
- gnutls_datum_t ciphertext = { (guchar *)encr, encr_len };
+ bool ret;
+ gnutls_datum_t ciphertext = { (unsigned char *)encr, encr_len };
gnutls_datum_t plain = { 0 };
gnutls_privkey_t pkey = (gnutls_privkey_t)g_hash_table_lookup(rsa_privkeys, key_id->key_id);
@@ -641,7 +641,7 @@ secrets_rsa_decrypt(const cert_key_id_t *key_id, const guint8 *encr, int encr_le
ret = gnutls_privkey_decrypt_data(pkey, 0, &ciphertext, &plain);
if (ret == 0) {
- *out = (guint8 *)g_memdup2(plain.data, plain.size);
+ *out = (uint8_t *)g_memdup2(plain.data, plain.size);
*out_len = plain.size;
gnutls_free(plain.data);
}
diff --git a/epan/secrets.h b/epan/secrets.h
index 887d68b3c0..8ad97244fa 100644
--- a/epan/secrets.h
+++ b/epan/secrets.h
@@ -12,6 +12,9 @@
#ifndef __SECRETS_H__
#define __SECRETS_H__
+#include <inttypes.h>
+#include <stdbool.h>
+
#include <glib.h>
#include "ws_symbol_export.h"
@@ -53,7 +56,7 @@ enum secrets_scope {
#ifdef HAVE_LIBGNUTLS
/** Identifier for a RSA public key (a SHA-1 hash). */
struct cert_key_id {
- guint8 key_id[20];
+ uint8_t key_id[20];
};
typedef struct cert_key_id cert_key_id_t;
#endif /* HAVE_LIBGNUTLS */
@@ -63,12 +66,12 @@ typedef struct cert_key_id cert_key_id_t;
* Callback for the wiretap secrets provider (wtap_new_secrets_callback_t).
*/
WS_DLL_PUBLIC void
-secrets_wtap_callback(guint32 secrets_type, const void *secrets, guint size);
+secrets_wtap_callback(uint32_t secrets_type, const void *secrets, unsigned size);
/**
* Receives a new block of secrets from an external source (wiretap or files).
*/
-typedef void (*secrets_block_callback_t)(const void *secrets, guint size);
+typedef void (*secrets_block_callback_t)(const void *secrets, unsigned size);
/**
* Registers a consumer for pcapng Decryption Secrets Block (DSB). Only one
@@ -78,7 +81,7 @@ typedef void (*secrets_block_callback_t)(const void *secrets, guint size);
* @param cb Callback to be invoked for new secrets.
*/
WS_DLL_PUBLIC void
-secrets_register_type(guint32 secrets_type, secrets_block_callback_t cb);
+secrets_register_type(uint32_t secrets_type, secrets_block_callback_t cb);
#ifdef HAVE_LIBGNUTLS
/**
@@ -95,12 +98,12 @@ secrets_get_available_keys(void);
*
* @param uri A value from secrets_get_available_keys() or a file path.
* @param password A token PIN or key file password, may be NULL.
- * @param need_password Set to TRUE if a password may be required. Nullable.
+ * @param need_password Set to true if a password may be required. Nullable.
* @param error The error string on failure, clean up with g_free. Nullable.
- * @return TRUE if the key was valid, FALSE otherwise.
+ * @return true if the key was valid, false otherwise.
*/
-WS_DLL_PUBLIC gboolean
-secrets_verify_key(const char *uri, const char *password, gboolean *need_password, char **error);
+WS_DLL_PUBLIC bool
+secrets_verify_key(const char *uri, const char *password, bool *need_password, char **error);
/** Returns a new hash table, mapping cert_key_id_t -> gnutls_privkey_t. */
GHashTable *privkey_hash_table_new(void);
@@ -118,7 +121,7 @@ GHashTable *privkey_hash_table_new(void);
* error code otherwise.
*/
WS_DLL_PUBLIC int
-secrets_rsa_decrypt(const cert_key_id_t *key_id, const guint8 *encr, int encr_len, guint8 **out, int *out_len);
+secrets_rsa_decrypt(const cert_key_id_t *key_id, const uint8_t *encr, int encr_len, uint8_t **out, int *out_len);
#endif /* HAVE_LIBGNUTLS */
#ifdef __cplusplus
diff --git a/epan/sequence_analysis.c b/epan/sequence_analysis.c
index d061e31b67..6d49baaf33 100644
--- a/epan/sequence_analysis.c
+++ b/epan/sequence_analysis.c
@@ -32,7 +32,7 @@ struct register_analysis {
tap_packet_cb analysis_func; /* function to be called for new incoming packets for sequence analysis */
};
-static wmem_tree_t *registered_seq_analysis = NULL;
+static wmem_tree_t *registered_seq_analysis;
void
register_seq_analysis(const char* name, const char* ui_name, const int proto_id, const char* tap_listener, guint tap_flags, tap_packet_cb tap_func)
@@ -100,13 +100,12 @@ seq_analysis_item_t* sequence_analysis_create_sai_with_addresses(packet_info *pi
seq_analysis_item_t *sai = NULL;
char time_str[COL_MAX_LEN];
- if (sainfo->any_addr) {
+ if (!sainfo->any_addr) {
if (pinfo->net_src.type!=AT_NONE && pinfo->net_dst.type!=AT_NONE) {
sai = g_new0(seq_analysis_item_t, 1);
copy_address(&(sai->src_addr),&(pinfo->net_src));
copy_address(&(sai->dst_addr),&(pinfo->net_dst));
}
-
} else {
if (pinfo->src.type!=AT_NONE && pinfo->dst.type!=AT_NONE) {
sai = g_new0(seq_analysis_item_t, 1);
@@ -273,6 +272,38 @@ static guint add_or_get_node(seq_analysis_info_t *sainfo, address *node) {
}
}
+/* Same as add_or_get_node() but invoked for conversations where the same address is both used
+ * as src and dst.
+ * The occurence number is tracking how many times this address was seen,
+ * value is 0 for the first occurence, 1 for the second, and we never go higher to not have
+ * too many Y-Axis in the diagram.
+ */
+static guint add_or_get_node_local(seq_analysis_info_t *sainfo, address *node, guint8 occurence) {
+ guint i;
+
+ if (node->type == AT_NONE) return NODE_OVERFLOW;
+
+ for (i=0; i<MAX_NUM_NODES && i < sainfo->num_nodes ; i++) {
+ if ( cmp_address(&(sainfo->nodes[i]), node) == 0 ) {
+
+ /* address is matching, go further by checking the occurence indication */
+ if(sainfo->occurence[i]==occurence) {
+ return i;
+ }
+ }
+ }
+
+ if (i >= MAX_NUM_NODES) {
+ return NODE_OVERFLOW;
+ }
+ else { /* insert a new entry */
+ sainfo->num_nodes++;
+ copy_address(&(sainfo->nodes[i]), node);
+ sainfo->occurence[i] = occurence;
+ return i;
+ }
+}
+
struct sainfo_counter {
seq_analysis_info_t *sainfo;
int num_items;
@@ -284,8 +315,22 @@ static void sequence_analysis_get_nodes_item_proc(gpointer data, gpointer user_d
struct sainfo_counter *sc = (struct sainfo_counter *)user_data;
if (gai->display) {
(sc->num_items)++;
- gai->src_node = add_or_get_node(sc->sainfo, &(gai->src_addr));
- gai->dst_node = add_or_get_node(sc->sainfo, &(gai->dst_addr));
+
+ /* when both addresses are the same, look at the ports indications */
+ if( addresses_equal(&(gai->src_addr), &(gai->dst_addr)) ) {
+ if(gai->port_src < gai->port_dst) {
+ gai->src_node = add_or_get_node_local(sc->sainfo, &(gai->src_addr), 0 );
+ gai->dst_node = add_or_get_node_local(sc->sainfo, &(gai->dst_addr), 1 );
+ }
+ else {
+ gai->src_node = add_or_get_node_local(sc->sainfo, &(gai->src_addr), 1 );
+ gai->dst_node = add_or_get_node_local(sc->sainfo, &(gai->dst_addr), 0 );
+ }
+ }
+ else {
+ gai->src_node = add_or_get_node(sc->sainfo, &(gai->src_addr));
+ gai->dst_node = add_or_get_node(sc->sainfo, &(gai->dst_addr));
+ }
}
}
diff --git a/epan/sequence_analysis.h b/epan/sequence_analysis.h
index 59913e52db..07dde892e3 100644
--- a/epan/sequence_analysis.h
+++ b/epan/sequence_analysis.h
@@ -64,12 +64,13 @@ typedef struct _seq_analysis_item {
/** defines the graph analysis structure */
typedef struct _seq_analysis_info {
- const char* name; /**< Name of sequence analysis */
+ const char* name; /**< Name of sequence analysis */
gboolean any_addr; /**< any addr (DL+net) vs net-only */
int nconv; /**< number of conversations in the list */
GQueue* items; /**< list of seq_analysis_info_t */
GHashTable *ht; /**< hash table of seq_analysis_info_t */
- address nodes[MAX_NUM_NODES]; /**< horizontal node list */
+ address nodes[MAX_NUM_NODES]; /**< horizontal node list */
+ guint8 occurence[MAX_NUM_NODES]; /**< horizontal occurence list 0|1 */
guint32 num_nodes; /**< actual number of nodes */
} seq_analysis_info_t;
diff --git a/epan/services-data.c b/epan/services-data.c
index a10e14b8b2..7b34e5a16d 100644
--- a/epan/services-data.c
+++ b/epan/services-data.c
@@ -2738,7 +2738,7 @@ static const ws_services_entry_t global_tcp_udp_services_table[] = {
{ 3154, "ccmrmi", "ON RMI Registry" },
{ 3155, "jpegmpeg", "JpegMpeg Port" },
{ 3156, "indura", "Indura Collector" },
- { 3157, "e3consultants", "CCC Listener Port" },
+ { 3157, "lsa-comm", "LSA Communicator" },
{ 3158, "stvp", "SmashTV Protocol" },
{ 3159, "navegaweb-port", "NavegaWeb Tarification" },
{ 3160, "tip-app-server", "TIP Application Server" },
@@ -5806,7 +5806,7 @@ static const ws_services_entry_t global_tcp_services_table[] = {
{ 10443, "cirrossp", "CirrosSP Workstation Communication" },
{ 10548, "serverdocs", "Apple Document Sharing Service" },
{ 10631, "printopia", "Printopia Serve" },
- { 10809, "nbd", "Linux Network Block Device" },
+ { 10809, "nbd", "Network Block Device" },
{ 10933, "octopustentacle", "Listen port used by the Octopus Deploy Tentacle deployment agent" },
{ 11103, "origo-sync", "OrigoDB Server Sync Interface" },
{ 11104, "netapp-icmgmt", "NetApp Intercluster Management" },
diff --git a/epan/show_exception.c b/epan/show_exception.c
index ff76971690..c36afedb52 100644
--- a/epan/show_exception.c
+++ b/epan/show_exception.c
@@ -24,10 +24,11 @@
#include <wsutil/wslog.h>
static int proto_short;
+static int proto_dissector_bug;
static int proto_malformed;
static int proto_unreassembled;
-static expert_field ei_malformed_dissector_bug;
+static expert_field ei_dissector_bug;
static expert_field ei_malformed_reassembly;
static expert_field ei_malformed;
static expert_field ei_unreassembled;
@@ -35,29 +36,42 @@ static expert_field ei_unreassembled;
void
register_show_exception(void)
{
- static ei_register_info ei[] = {
- { &ei_malformed_dissector_bug, { "_ws.malformed.dissector_bug", PI_MALFORMED, PI_ERROR, "Dissector bug", EXPFILL }},
+ static ei_register_info ei_dissector_bug_set[] = {
+ { &ei_dissector_bug, { "_ws.dissector_bug", PI_DISSECTOR_BUG, PI_ERROR, "Dissector bug", EXPFILL }},
+ };
+ static ei_register_info ei_malformed_set[] = {
{ &ei_malformed_reassembly, { "_ws.malformed.reassembly", PI_MALFORMED, PI_ERROR, "Reassembly error", EXPFILL }},
{ &ei_malformed, { "_ws.malformed.expert", PI_MALFORMED, PI_ERROR, "Malformed Packet (Exception occurred)", EXPFILL }},
+ };
+ static ei_register_info ei_unreassembled_set[] = {
{ &ei_unreassembled, { "_ws.unreassembled.expert", PI_REASSEMBLE, PI_NOTE, "Unreassembled fragment (change preferences to enable reassembly)", EXPFILL }},
};
+ expert_module_t* expert_dissector_bug;
expert_module_t* expert_malformed;
+ expert_module_t* expert_unreassembled;
proto_short = proto_register_protocol("Short Frame", "Short frame", "_ws.short");
+ proto_dissector_bug = proto_register_protocol("Dissector Bug",
+ "Dissector bug", "_ws.dissector_bug");
proto_malformed = proto_register_protocol("Malformed Packet",
"Malformed packet", "_ws.malformed");
proto_unreassembled = proto_register_protocol(
"Unreassembled Fragmented Packet",
"Unreassembled fragmented packet", "_ws.unreassembled");
+ expert_dissector_bug = expert_register_protocol(proto_dissector_bug);
+ expert_register_field_array(expert_dissector_bug, ei_dissector_bug_set, array_length(ei_dissector_bug_set));
expert_malformed = expert_register_protocol(proto_malformed);
- expert_register_field_array(expert_malformed, ei, array_length(ei));
+ expert_register_field_array(expert_malformed, ei_malformed_set, array_length(ei_malformed_set));
+ expert_unreassembled = expert_register_protocol(proto_unreassembled);
+ expert_register_field_array(expert_unreassembled, ei_unreassembled_set, array_length(ei_unreassembled_set));
- /* "Short Frame", "Malformed Packet", and "Unreassembled Fragmented
- Packet" aren't really protocols, they're error indications;
- disabling them makes no sense. */
+ /* "Short Frame", "Dissector Bug", "Malformed Packet", and
+ "Unreassembled Fragmented Packet" aren't really protocols,
+ they're error indications; disabling them makes no sense. */
proto_set_cant_toggle(proto_short);
+ proto_set_cant_toggle(proto_dissector_bug);
proto_set_cant_toggle(proto_malformed);
proto_set_cant_toggle(proto_unreassembled);
}
@@ -138,7 +152,7 @@ show_exception(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
pinfo->current_proto,
exception_message == NULL ?
dissector_error_nomsg : exception_message);
- item = proto_tree_add_protocol_format(tree, proto_malformed, tvb, 0, 0,
+ item = proto_tree_add_protocol_format(tree, proto_dissector_bug, tvb, 0, 0,
"[Dissector bug, protocol %s: %s]",
pinfo->current_proto,
exception_message == NULL ?
@@ -148,7 +162,7 @@ show_exception(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
pinfo->current_proto, pinfo->num,
exception_message == NULL ?
dissector_error_nomsg : exception_message);
- expert_add_info_format(pinfo, item, &ei_malformed_dissector_bug, "%s",
+ expert_add_info_format(pinfo, item, &ei_dissector_bug, "%s",
exception_message == NULL ?
dissector_error_nomsg : exception_message);
break;
diff --git a/epan/srt_table.c b/epan/srt_table.c
index 843cff6715..b8b8aee58c 100644
--- a/epan/srt_table.c
+++ b/epan/srt_table.c
@@ -119,7 +119,7 @@ void reset_srt_table(GArray* srt_array)
}
}
-static wmem_tree_t *registered_srt_tables = NULL;
+static wmem_tree_t *registered_srt_tables;
register_srt_t* get_srt_table_by_name(const char* name)
{
diff --git a/epan/stat_tap_ui.c b/epan/stat_tap_ui.c
index 69ad4ae3a0..b620d1ed16 100644
--- a/epan/stat_tap_ui.c
+++ b/epan/stat_tap_ui.c
@@ -29,7 +29,7 @@ typedef struct _stat_cmd_arg {
void* userdata;
} stat_cmd_arg;
-static wmem_list_t *stat_cmd_arg_list=NULL;
+static wmem_list_t *stat_cmd_arg_list;
/* structure to keep track of what stats have been specified on the
command line.
@@ -38,7 +38,7 @@ typedef struct {
stat_cmd_arg *sca;
char *arg;
} stat_requested;
-static GSList *stats_requested = NULL;
+static GSList *stats_requested;
/* **********************************************************************
* Function called from stat to register the stat's command-line argument
@@ -141,7 +141,7 @@ start_requested_stats(void)
}
}
-static wmem_tree_t *registered_stat_tables = NULL;
+static wmem_tree_t *registered_stat_tables;
void register_stat_tap_table_ui(stat_tap_table_ui *ui)
{
diff --git a/epan/stats_tree.c b/epan/stats_tree.c
index 030cb46efb..454b3325cf 100644
--- a/epan/stats_tree.c
+++ b/epan/stats_tree.c
@@ -46,7 +46,7 @@ enum _stat_tree_columns {
};
/* used to contain the registered stat trees */
-static GHashTable *registry = NULL;
+static GHashTable *registry;
/* a text representation of a node
if buffer is NULL returns a newly allocated string */
@@ -62,6 +62,7 @@ stats_tree_node_to_str(const stat_node *node, gchar *buffer, guint len)
}
extern guint
+// NOLINTNEXTLINE(misc-no-recursion)
stats_tree_branch_max_namelen(const stat_node *node, guint indent)
{
stat_node *child;
@@ -72,6 +73,7 @@ stats_tree_branch_max_namelen(const stat_node *node, guint indent)
if (node->children) {
for (child = node->children; child; child = child->next ) {
+ // Recursion is limited by proto.c checks
len = stats_tree_branch_max_namelen(child,indent+1);
maxlen = len > maxlen ? len : maxlen;
}
@@ -92,6 +94,7 @@ stats_tree_branch_max_namelen(const stat_node *node, guint indent)
/* frees the resources allocated by a stat_tree node */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
free_stat_node(stat_node *node)
{
stat_node *child;
@@ -102,6 +105,7 @@ free_stat_node(stat_node *node)
for (child = node->children; child; child = next ) {
/* child->next will be gone after free_stat_node, so cache it here */
next = child->next;
+ // Recursion is limited by proto.c checks
free_stat_node(child);
}
}
@@ -151,6 +155,7 @@ stats_tree_free(stats_tree *st)
/* reset a node to its original state */
static void
+// NOLINTNEXTLINE(misc-no-recursion)
reset_stat_node(stat_node *node)
{
stat_node *child;
@@ -185,6 +190,7 @@ reset_stat_node(stat_node *node)
if (node->children) {
for (child = node->children; child; child = child->next )
+ // Recursion is limited by proto.c checks
reset_stat_node(child);
}
}
@@ -1401,6 +1407,7 @@ clean_for_xml_tag (gchar *str)
}
/** helper funcation to add note to formatted stats_tree */
+// NOLINTNEXTLINE(misc-no-recursion)
WS_DLL_PUBLIC void stats_tree_format_node_as_str(const stat_node *node,
GString *s,
st_format_type format_type,
diff --git a/epan/stream.c b/epan/stream.c
index 5bad6037f7..ac8dcdc608 100644
--- a/epan/stream.c
+++ b/epan/stream.c
@@ -376,7 +376,7 @@ tvbuff_t *stream_process_reassembled(
tvbuff_t *tvb, int offset, packet_info *pinfo,
const char *name, const stream_pdu_fragment_t *frag,
const struct _fragment_items *fit,
- gboolean *update_col_infop, proto_tree *tree)
+ bool *update_col_infop, proto_tree *tree)
{
stream_pdu_t *pdu;
DISSECTOR_ASSERT(frag);
diff --git a/epan/stream.h b/epan/stream.h
index 1a7ad3e878..730e6152db 100644
--- a/epan/stream.h
+++ b/epan/stream.h
@@ -110,7 +110,7 @@ WS_DLL_PUBLIC tvbuff_t *stream_process_reassembled(
tvbuff_t *tvb, int offset, packet_info *pinfo,
const char *name, const stream_pdu_fragment_t *frag,
const struct _fragment_items *fit,
- gboolean *update_col_infop, proto_tree *tree);
+ bool *update_col_infop, proto_tree *tree);
/* Get the PDU number. PDUs are numbered from zero within a stream.
* frag can be any fragment within a PDU.
diff --git a/epan/tap.c b/epan/tap.c
index 79d306f2fb..2bd073dfde 100644
--- a/epan/tap.c
+++ b/epan/tap.c
@@ -34,7 +34,7 @@ typedef struct _tap_dissector_t {
struct _tap_dissector_t *next;
char *name;
} tap_dissector_t;
-static tap_dissector_t *tap_dissector_list=NULL;
+static tap_dissector_t *tap_dissector_list;
/*
* This is the list of free and used packets queued for a tap.
@@ -93,9 +93,9 @@ typedef struct _tap_listener_t {
tap_finish_cb finish;
} tap_listener_t;
-static tap_listener_t *tap_listener_queue=NULL;
+static tap_listener_t *tap_listener_queue;
-static GSList *tap_plugins = NULL;
+static GSList *tap_plugins;
#ifdef HAVE_PLUGINS
void
@@ -107,7 +107,7 @@ tap_register_plugin(const tap_plugin *plug)
void
tap_register_plugin(const tap_plugin *plug _U_)
{
- ws_warning("tap_register_plugin: built without support for binary plugins");
+ ws_warning("built without support for binary plugins");
}
#endif /* HAVE_PLUGINS */
@@ -681,7 +681,7 @@ remove_tap_listener(void *tapdata)
}
if(!tl) {
- ws_warning("remove_tap_listener(): no listener found with that tap data");
+ ws_warning("no listener found with that tap data");
return;
}
}
diff --git a/epan/tap.h b/epan/tap.h
index 45168692a4..c62c145c9b 100644
--- a/epan/tap.h
+++ b/epan/tap.h
@@ -48,7 +48,7 @@ typedef void (*tap_finish_cb)(void *tapdata);
** but does not, itself, require dissection */
/** Flags to indicate what the packet cb should do */
-#define TL_IGNORE_DISPLAY_FILTER 0x00000010 /**< use packet, even if it woul dbe filtered out */
+#define TL_IGNORE_DISPLAY_FILTER 0x00000010 /**< use packet, even if it would be filtered out */
#define TL_DISPLAY_FILTER_IGNORED 0x00100000 /**< flag for the conversation handler */
typedef struct {
@@ -205,7 +205,7 @@ WS_DLL_PUBLIC void draw_tap_listeners(gboolean draw_all);
* listener that it is about to start [re]reading a capture file or a new capture
* from an interface and that your application should reset any state it has
* in the *tapdata instance.
- * @param tap_packet gboolean (*packet)(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const void *data)
+ * @param tap_packet tap_packet_status (*packet)(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const void *data)
* This callback is used whenever a new packet has arrived at the tap and that
* it has passed the filter (if there were a filter).
* The *data structure type is specific to each tap.
diff --git a/epan/tfs.c b/epan/tfs.c
index ac96dc3cb2..fdcee624a7 100644
--- a/epan/tfs.c
+++ b/epan/tfs.c
@@ -116,6 +116,7 @@ const true_false_string tfs_user_provider = { "User", "Provider" };
const true_false_string tfs_applicable_not_applicable = { "Applicable", "Not Applicable" };
const true_false_string tfs_current_not_yet = { "Currently Applicable", "Not yet Applicable" };
const true_false_string tfs_should_be_traced_should_not_be_traced = { "Should be traced", "Should not be traced" };
+const true_false_string tfs_activate_do_not_activate = { "Activate", "Do not activate" };
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
diff --git a/epan/tfs.h b/epan/tfs.h
index be2dccdef9..5466b43579 100644
--- a/epan/tfs.h
+++ b/epan/tfs.h
@@ -131,6 +131,7 @@ WS_DLL_PUBLIC const true_false_string tfs_user_provider;
WS_DLL_PUBLIC const true_false_string tfs_applicable_not_applicable;
WS_DLL_PUBLIC const true_false_string tfs_current_not_yet;
WS_DLL_PUBLIC const true_false_string tfs_should_be_traced_should_not_be_traced;
+WS_DLL_PUBLIC const true_false_string tfs_activate_do_not_activate;
#ifdef __cplusplus
}
diff --git a/epan/tvbparse.h b/epan/tvbparse.h
index 2bc23fd87a..46b1fa3115 100644
--- a/epan/tvbparse.h
+++ b/epan/tvbparse.h
@@ -100,8 +100,6 @@ struct _tvbparse_wanted_t {
guint64 u;
gdouble f;
} value;
- gboolean (*comp)(void*,const void*);
- void* (*extract)(tvbuff_t*,guint);
} number;
enum ftenum ftenum;
struct {
diff --git a/epan/tvbtest.c b/epan/tvbtest.c
index e7dd74afdc..9e7396695e 100644
--- a/epan/tvbtest.c
+++ b/epan/tvbtest.c
@@ -18,11 +18,12 @@
#include "tvbuff.h"
#include "proto.h"
#include "exceptions.h"
+#include "wsutil/array.h"
#include "wsutil/pint.h"
#include <ws_diag_control.h>
-gboolean failed = FALSE;
+gboolean failed;
typedef struct {
struct {
@@ -766,7 +767,7 @@ zstd_tests (void) {
};
- for (size_t i = 0; i < sizeof tests / sizeof tests[0]; i++) {
+ for (size_t i = 0; i < array_length(tests); i++) {
zstd_testcase *t = tests + i;
printf ("ZSTD test: %s ... begin\n", t->desc);
diff --git a/epan/tvbuff.h b/epan/tvbuff.h
index 620f9be24c..fcbf7c4d44 100644
--- a/epan/tvbuff.h
+++ b/epan/tvbuff.h
@@ -1106,6 +1106,24 @@ WS_DLL_PUBLIC tvbuff_t *tvb_uncompress_brotli(tvbuff_t *tvb, const int offset,
WS_DLL_PUBLIC tvbuff_t *tvb_child_uncompress_brotli(tvbuff_t *parent, tvbuff_t *tvb,
const int offset, int comprlen);
+/* From tvbuff_snappy.c */
+
+/**
+ * Uncompresses a snappy compressed packet inside a tvbuff at offset with
+ * length comprlen. Returns an uncompressed tvbuffer if uncompression
+ * succeeded or NULL if uncompression failed.
+ */
+WS_DLL_PUBLIC tvbuff_t *tvb_uncompress_snappy(tvbuff_t *tvb, const int offset,
+ int comprlen);
+
+/**
+ * Uncompresses a snappy compressed packet inside a tvbuff at offset with
+ * length comprlen. Returns an uncompressed tvbuffer attached to tvb if
+ * uncompression succeeded or NULL if uncompression failed.
+ */
+WS_DLL_PUBLIC tvbuff_t *tvb_child_uncompress_snappy(tvbuff_t *parent, tvbuff_t *tvb,
+ const int offset, int comprlen);
+
/* From tvbuff_lz77.c */
/**
diff --git a/epan/tvbuff_rdp.c b/epan/tvbuff_rdp.c
index 8e69cb0561..f5b2baa484 100644
--- a/epan/tvbuff_rdp.c
+++ b/epan/tvbuff_rdp.c
@@ -16,6 +16,7 @@
#include <epan/tvbuff.h>
#include <epan/proto.h>
#include <epan/tvbuff_rdp.h>
+#include <wsutil/array.h>
enum {
ZGFX_SEGMENTED_SINGLE = 0xe0,
@@ -377,13 +378,13 @@ rdp8_decompress_segment(zgfx_context_t *zgfx, tvbuff_t *tvb)
// 10 - match
ismatch = true;
tokens = ZGFX_MATCH_TABLE;
- ntokens = sizeof(ZGFX_MATCH_TABLE) / sizeof(ZGFX_MATCH_TABLE[0]);
+ ntokens = array_length(ZGFX_MATCH_TABLE);
inPrefix = 2;
} else {
// 11 - literal
ismatch = false;
tokens = ZGFX_LITERAL_TABLE;
- ntokens = sizeof(ZGFX_LITERAL_TABLE) / sizeof(ZGFX_LITERAL_TABLE[0]);
+ ntokens = array_length(ZGFX_LITERAL_TABLE);
inPrefix = 3;
}
diff --git a/epan/tvbuff_snappy.c b/epan/tvbuff_snappy.c
new file mode 100644
index 0000000000..1813147f03
--- /dev/null
+++ b/epan/tvbuff_snappy.c
@@ -0,0 +1,85 @@
+/* tvbuff_snappy.c
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include <config.h>
+
+#ifdef HAVE_SNAPPY
+#include <snappy-c.h>
+#endif
+
+#include "tvbuff.h"
+
+#ifdef HAVE_SNAPPY
+
+/*
+ * Uncompresses a snappy compressed packet inside a message of tvb at offset with
+ * length comprlen. Returns an uncompressed tvbuffer if uncompression
+ * succeeded or NULL if uncompression failed.
+ */
+
+tvbuff_t *
+tvb_uncompress_snappy(tvbuff_t *tvb, const int offset, int comprlen)
+{
+ tvbuff_t *uncompr_tvb = NULL;
+ guchar *decompressed_buffer = NULL;
+ size_t orig_size = 0;
+ snappy_status ret;
+ const void *compr_ptr;
+
+ if (tvb == NULL || comprlen <= 0 || comprlen > tvb_captured_length_remaining(tvb, offset)) {
+ return NULL;
+ }
+
+ compr_ptr = tvb_get_ptr(tvb, offset, comprlen);
+ ret = snappy_uncompressed_length(compr_ptr, comprlen, &orig_size);
+
+ if (ret == SNAPPY_OK) {
+ decompressed_buffer = (guchar *)g_malloc(orig_size);
+
+ ret = snappy_uncompress(compr_ptr, comprlen, decompressed_buffer, &orig_size);
+
+ if (ret == SNAPPY_OK) {
+ uncompr_tvb = tvb_new_real_data(decompressed_buffer, (guint32)orig_size, (guint32)orig_size);
+ tvb_set_free_cb(uncompr_tvb, g_free);
+ } else {
+ g_free(decompressed_buffer);
+ }
+ }
+
+ return uncompr_tvb;
+}
+#else
+tvbuff_t *
+tvb_uncompress_snappy(tvbuff_t *tvb _U_, const int offset _U_, int comprlen _U_)
+{
+ return NULL;
+}
+#endif
+
+tvbuff_t *
+tvb_child_uncompress_snappy(tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
+{
+ tvbuff_t *new_tvb = tvb_uncompress_snappy(tvb, offset, comprlen);
+ if (new_tvb)
+ tvb_set_child_real_data_tvbuff(parent, new_tvb);
+ return new_tvb;
+}
+
+/*
+ * Editor modelines - https://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/epan/uat-int.h b/epan/uat-int.h
index 22a8ebd07d..a3dcd2327a 100644
--- a/epan/uat-int.h
+++ b/epan/uat-int.h
@@ -16,6 +16,8 @@
#ifndef __UAT_INT_H__
#define __UAT_INT_H__
+#include <glib.h>
+
#include "uat.h"
#include "ws_symbol_export.h"
diff --git a/epan/uat.c b/epan/uat.c
index 6fca2badda..7b73b4a156 100644
--- a/epan/uat.c
+++ b/epan/uat.c
@@ -38,7 +38,7 @@
* instead.
*/
-static GPtrArray* all_uats = NULL;
+static GPtrArray* all_uats;
uat_t* uat_new(const char* name,
size_t size,
diff --git a/epan/uat.h b/epan/uat.h
index eefe123fba..c173d6beb1 100644
--- a/epan/uat.h
+++ b/epan/uat.h
@@ -648,11 +648,14 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
/*
* BOOL Macros,
* an boolean value contained in (((rec_t*)rec)->(field_name))
+ *
+ * Write "TRUE" or "FALSE" for backwards compatibility with pre-4.4
+ * versions that expect that capitalization.
*/
#define UAT_BOOL_CB_DEF(basename,field_name,rec_t) \
static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, unsigned len, const void* UNUSED_PARAMETER(u1), const void* UNUSED_PARAMETER(u2)) {\
char* tmp_str = g_strndup(buf,len); \
- if (g_strcmp0(tmp_str, "TRUE") == 0) \
+ if (tmp_str && g_ascii_strcasecmp(tmp_str, "true") == 0) \
((rec_t*)rec)->field_name = 1; \
else \
((rec_t*)rec)->field_name = 0; \
diff --git a/epan/uat_load.l b/epan/uat_load.l
index 8e07cf6fd2..32e47b17ee 100644
--- a/epan/uat_load.l
+++ b/epan/uat_load.l
@@ -1,10 +1,10 @@
%top {
/* Include this before everything else, for various large-file definitions */
#include "config.h"
-#include <wireshark.h>
-
#define WS_LOG_DOMAIN LOG_DOMAIN_UAT
+#include <wireshark.h>
+
/* #define DEBUG_UAT_LOAD 1 */
}
diff --git a/epan/value_string.c b/epan/value_string.c
index 82eb833ff4..bd32e1ecd9 100644
--- a/epan/value_string.c
+++ b/epan/value_string.c
@@ -393,25 +393,21 @@ _try_val_to_str_index(const guint32 val, value_string_ext *vse)
return NULL;
}
-/* log(n)-time matching algorithm for sorted extended value strings */
+/* Value comparator for sorted extended value strings */
+static int
+val_to_str_compar(const void *v_needle, const void *v_item)
+{
+ guint32 needle = *(const guint32 *)v_needle;
+ guint32 value = ((const value_string *)v_item)->value;
+ return needle > value ? 1 : (needle < value ? -1 : 0);
+}
+
+/* log(n)-time matching for sorted extended value strings */
static const value_string *
_try_val_to_str_bsearch(const guint32 val, value_string_ext *vse)
{
- guint low, i, max;
- guint32 item;
-
- for (low = 0, max = vse->_vs_num_entries; low < max; ) {
- i = (low + max) / 2;
- item = vse->_vs_p[i].value;
-
- if (val < item)
- max = i;
- else if (val > item)
- low = i + 1;
- else
- return &(vse->_vs_p[i]);
- }
- return NULL;
+ return bsearch(&val, vse->_vs_p, vse->_vs_num_entries,
+ sizeof vse->_vs_p[0], val_to_str_compar);
}
/* Initializes an extended value string. Behaves like a match function to
@@ -428,11 +424,11 @@ _try_val_to_str_ext_init(const guint32 val, value_string_ext *vse)
const guint vs_num_entries = vse->_vs_num_entries;
/* The matching algorithm used:
- * VS_SEARCH - slow sequential search (as in a normal value string)
- * VS_BIN_TREE - log(n)-time binary search, the values must be sorted
- * VS_INDEX - constant-time index lookup, the values must be contiguous
+ * VS_LIN_SEARCH - slow linear search (as in a normal value string)
+ * VS_BIN_SEARCH - log(n)-time binary search, the values must be sorted
+ * VS_INDEX - constant-time index lookup, the values must be contiguous
*/
- enum { VS_SEARCH, VS_BIN_TREE, VS_INDEX } type = VS_INDEX;
+ enum { VS_LIN_SEARCH, VS_BIN_SEARCH, VS_INDEX } type = VS_INDEX;
/* Note: The value_string 'value' is *unsigned*, but we do a little magic
* to help with value strings that have negative values.
@@ -467,22 +463,22 @@ _try_val_to_str_ext_init(const guint32 val, value_string_ext *vse)
for (i = 0; i < vs_num_entries; i++) {
DISSECTOR_ASSERT(vs_p[i].strptr != NULL);
if ((type == VS_INDEX) && (vs_p[i].value != (i + first_value))) {
- type = VS_BIN_TREE;
+ type = VS_BIN_SEARCH;
}
/* XXX: Should check for dups ?? */
- if (type == VS_BIN_TREE) {
+ if (type == VS_BIN_SEARCH) {
if (prev_value > vs_p[i].value) {
ws_warning("Extended value string '%s' forced to fall back to linear search:\n"
" entry %u, value %u [%#x] < previous entry, value %u [%#x]",
vse->_vs_name, i, vs_p[i].value, vs_p[i].value, prev_value, prev_value);
- type = VS_SEARCH;
+ type = VS_LIN_SEARCH;
break;
}
if (first_value > vs_p[i].value) {
ws_warning("Extended value string '%s' forced to fall back to linear search:\n"
" entry %u, value %u [%#x] < first entry, value %u [%#x]",
vse->_vs_name, i, vs_p[i].value, vs_p[i].value, first_value, first_value);
- type = VS_SEARCH;
+ type = VS_LIN_SEARCH;
break;
}
}
@@ -491,10 +487,10 @@ _try_val_to_str_ext_init(const guint32 val, value_string_ext *vse)
}
switch (type) {
- case VS_SEARCH:
+ case VS_LIN_SEARCH:
vse->_vs_match2 = _try_val_to_str_linear;
break;
- case VS_BIN_TREE:
+ case VS_BIN_SEARCH:
vse->_vs_match2 = _try_val_to_str_bsearch;
break;
case VS_INDEX:
@@ -678,25 +674,21 @@ _try_val64_to_str_index(const guint64 val, val64_string_ext *vse)
return NULL;
}
-/* log(n)-time matching algorithm for sorted extended value strings */
+/* Value comparator for sorted extended value strings */
+static int
+val64_to_str_compar(const void *v_needle, const void *v_item)
+{
+ guint64 needle = *(const guint64 *)v_needle;
+ guint64 value = ((const val64_string *)v_item)->value;
+ return needle > value ? 1 : (needle < value ? -1 : 0);
+}
+
+/* log(n)-time matching for sorted extended value strings */
static const val64_string *
_try_val64_to_str_bsearch(const guint64 val, val64_string_ext *vse)
{
- guint low, i, max;
- guint64 item;
-
- for (low = 0, max = vse->_vs_num_entries; low < max; ) {
- i = (low + max) / 2;
- item = vse->_vs_p[i].value;
-
- if (val < item)
- max = i;
- else if (val > item)
- low = i + 1;
- else
- return &(vse->_vs_p[i]);
- }
- return NULL;
+ return bsearch(&val, vse->_vs_p, vse->_vs_num_entries,
+ sizeof vse->_vs_p[0], val64_to_str_compar);
}
/* Initializes an extended value string. Behaves like a match function to
@@ -713,11 +705,11 @@ _try_val64_to_str_ext_init(const guint64 val, val64_string_ext *vse)
const guint vs_num_entries = vse->_vs_num_entries;
/* The matching algorithm used:
- * VS_SEARCH - slow sequential search (as in a normal value string)
- * VS_BIN_TREE - log(n)-time binary search, the values must be sorted
- * VS_INDEX - constant-time index lookup, the values must be contiguous
+ * VS_LIN_SEARCH - slow linear search (as in a normal value string)
+ * VS_BIN_SEARCH - log(n)-time binary search, the values must be sorted
+ * VS_INDEX - constant-time index lookup, the values must be contiguous
*/
- enum { VS_SEARCH, VS_BIN_TREE, VS_INDEX } type = VS_INDEX;
+ enum { VS_LIN_SEARCH, VS_BIN_SEARCH, VS_INDEX } type = VS_INDEX;
/* Note: The val64_string 'value' is *unsigned*, but we do a little magic
* to help with value strings that have negative values.
@@ -752,22 +744,22 @@ _try_val64_to_str_ext_init(const guint64 val, val64_string_ext *vse)
for (i = 0; i < vs_num_entries; i++) {
DISSECTOR_ASSERT(vs_p[i].strptr != NULL);
if ((type == VS_INDEX) && (vs_p[i].value != (i + first_value))) {
- type = VS_BIN_TREE;
+ type = VS_BIN_SEARCH;
}
/* XXX: Should check for dups ?? */
- if (type == VS_BIN_TREE) {
+ if (type == VS_BIN_SEARCH) {
if (prev_value > vs_p[i].value) {
ws_warning("Extended value string '%s' forced to fall back to linear search:\n"
" entry %u, value %" PRIu64 " [%#" PRIx64 "] < previous entry, value %" PRIu64 " [%#" PRIx64 "]",
vse->_vs_name, i, vs_p[i].value, vs_p[i].value, prev_value, prev_value);
- type = VS_SEARCH;
+ type = VS_LIN_SEARCH;
break;
}
if (first_value > vs_p[i].value) {
ws_warning("Extended value string '%s' forced to fall back to linear search:\n"
" entry %u, value %" PRIu64 " [%#" PRIx64 "] < first entry, value %" PRIu64 " [%#" PRIx64 "]",
vse->_vs_name, i, vs_p[i].value, vs_p[i].value, first_value, first_value);
- type = VS_SEARCH;
+ type = VS_LIN_SEARCH;
break;
}
}
@@ -776,10 +768,10 @@ _try_val64_to_str_ext_init(const guint64 val, val64_string_ext *vse)
}
switch (type) {
- case VS_SEARCH:
+ case VS_LIN_SEARCH:
vse->_vs_match2 = _try_val64_to_str_linear;
break;
- case VS_BIN_TREE:
+ case VS_BIN_SEARCH:
vse->_vs_match2 = _try_val64_to_str_bsearch;
break;
case VS_INDEX:
diff --git a/epan/wmem_scopes.c b/epan/wmem_scopes.c
index d8385d74d6..b5adca928f 100644
--- a/epan/wmem_scopes.c
+++ b/epan/wmem_scopes.c
@@ -36,9 +36,9 @@
*/
/* TODO: Make these thread-local */
-static wmem_allocator_t *packet_scope = NULL;
-static wmem_allocator_t *file_scope = NULL;
-static wmem_allocator_t *epan_scope = NULL;
+static wmem_allocator_t *packet_scope;
+static wmem_allocator_t *file_scope;
+static wmem_allocator_t *epan_scope;
/* Packet Scope */
diff --git a/epan/wscbor.c b/epan/wscbor.c
index 66ef1bd9eb..acc09066f3 100644
--- a/epan/wscbor.c
+++ b/epan/wscbor.c
@@ -13,7 +13,7 @@
*/
#include "config.h"
-#include <epan/packet.h>
+#include <wsutil/array.h>
#include <epan/exceptions.h>
#include <epan/expert.h>
#include <stdio.h>
@@ -508,7 +508,7 @@ gboolean wscbor_require_map(wscbor_chunk_t *chunk) {
return wscbor_require_major_type(chunk, CBOR_TYPE_MAP);
}
-gboolean * wscbor_require_boolean(wmem_allocator_t *alloc, wscbor_chunk_t *chunk) {
+bool * wscbor_require_boolean(wmem_allocator_t *alloc, wscbor_chunk_t *chunk) {
if (!wscbor_require_major_type(chunk, CBOR_TYPE_FLOAT_CTRL)) {
return NULL;
}
@@ -516,8 +516,8 @@ gboolean * wscbor_require_boolean(wmem_allocator_t *alloc, wscbor_chunk_t *chunk
switch (chunk->type_minor) {
case CBOR_CTRL_TRUE:
case CBOR_CTRL_FALSE: {
- gboolean *value = NULL;
- value = wmem_new(alloc, gboolean);
+ bool *value = NULL;
+ value = wmem_new(alloc, bool);
*value = (chunk->type_minor == CBOR_CTRL_TRUE);
return value;
}
@@ -617,7 +617,7 @@ proto_item * proto_tree_add_cbor_ctrl(proto_tree *tree, int hfindex, packet_info
return item;
}
-proto_item * proto_tree_add_cbor_boolean(proto_tree *tree, int hfindex, packet_info *pinfo, tvbuff_t *tvb, const wscbor_chunk_t *chunk, const gboolean *value) {
+proto_item * proto_tree_add_cbor_boolean(proto_tree *tree, int hfindex, packet_info *pinfo, tvbuff_t *tvb, const wscbor_chunk_t *chunk, const bool *value) {
proto_item *item = proto_tree_add_boolean(tree, hfindex, tvb, chunk->start, chunk->data_length, value ? *value : FALSE);
wscbor_chunk_mark_errors(pinfo, item, chunk);
return item;
diff --git a/epan/wscbor.h b/epan/wscbor.h
index 51d612cb21..a7c8388da2 100644
--- a/epan/wscbor.h
+++ b/epan/wscbor.h
@@ -228,7 +228,7 @@ gboolean wscbor_require_map(wscbor_chunk_t *chunk);
* The value can be deleted with wscbor_require_delete().
*/
WS_DLL_PUBLIC
-gboolean * wscbor_require_boolean(wmem_allocator_t *alloc, wscbor_chunk_t *chunk);
+bool * wscbor_require_boolean(wmem_allocator_t *alloc, wscbor_chunk_t *chunk);
/** Require a CBOR item to have an unsigned-integer value.
* @note This reader will clip the most significant bit of the value.
@@ -291,7 +291,7 @@ WS_DLL_PUBLIC
proto_item * proto_tree_add_cbor_ctrl(proto_tree *tree, int hfindex, packet_info *pinfo, tvbuff_t *tvb, const wscbor_chunk_t *chunk);
WS_DLL_PUBLIC
-proto_item * proto_tree_add_cbor_boolean(proto_tree *tree, int hfindex, packet_info *pinfo, tvbuff_t *tvb, const wscbor_chunk_t *chunk, const gboolean *value);
+proto_item * proto_tree_add_cbor_boolean(proto_tree *tree, int hfindex, packet_info *pinfo, tvbuff_t *tvb, const wscbor_chunk_t *chunk, const bool *value);
WS_DLL_PUBLIC
proto_item * proto_tree_add_cbor_uint64(proto_tree *tree, int hfindex, packet_info *pinfo, tvbuff_t *tvb, const wscbor_chunk_t *chunk, const guint64 *value);
diff --git a/epan/wscbor_test.c b/epan/wscbor_test.c
index 92fd96e8d7..1059376575 100644
--- a/epan/wscbor_test.c
+++ b/epan/wscbor_test.c
@@ -19,6 +19,7 @@
#include "wscbor.h"
#include <epan/wmem_scopes.h>
#include <epan/exceptions.h>
+#include <wsutil/array.h>
#include <wsutil/wmem/wmem_list.h>
#include <wsutil/wmem/wmem_map.h>
@@ -78,7 +79,7 @@ static const example_s * all_examples[] = {
static void
wscbor_test_chunk_read_simple(void)
{
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -106,7 +107,7 @@ wscbor_test_chunk_read_simple_tags(void)
const guint8 *const tags = (const guint8 *)"\xC1\xD8\xC8";
tvbuff_t *tvb_tags = tvb_new_real_data(tags, 3, 3);
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -198,7 +199,7 @@ wscbor_test_chunk_read_invalid(void)
static void
wscbor_test_is_indefinite_break(void)
{
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -229,7 +230,7 @@ static void
wscbor_test_skip_next_item_simple(void)
{
// skip simple items
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -278,7 +279,7 @@ wscbor_test_skip_next_item_multiple(void)
static void
wscbor_test_require_major_type(void)
{
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -304,7 +305,7 @@ wscbor_test_require_major_type(void)
static void
wscbor_test_require_boolean_simple(void)
{
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -315,7 +316,7 @@ wscbor_test_require_boolean_simple(void)
g_assert_nonnull(chunk);
g_assert_cmpuint(wscbor_has_errors(chunk), ==, 0);
- const gboolean *val = wscbor_require_boolean(test_scope, chunk);
+ const bool *val = wscbor_require_boolean(test_scope, chunk);
if ((ex->type_major == CBOR_TYPE_FLOAT_CTRL)
&& ((ex->head_value == CBOR_CTRL_FALSE) || (ex->head_value == CBOR_CTRL_TRUE))) {
g_assert_nonnull(val);
@@ -335,7 +336,7 @@ wscbor_test_require_boolean_simple(void)
static void
wscbor_test_require_int64_simple(void)
{
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -373,7 +374,7 @@ wscbor_test_require_int64_overflow(void)
const example_s * examples[] = {
&ex_uint_overflow, &ex_nint_overflow,
};
- for (size_t ex_ix = 0; ex_ix < (sizeof(examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(examples); ++ex_ix) {
const example_s *ex = examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -410,7 +411,7 @@ wscbor_test_require_int64_overflow(void)
static void
wscbor_test_require_tstr_simple(void)
{
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -449,7 +450,7 @@ wscbor_test_require_tstr_short(void)
tvbuff_t *tvb = NULL;
wscbor_chunk_t *chunk = NULL;
- for (size_t ex_ix = 0; ex_ix < (sizeof(examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(examples); ++ex_ix) {
const example_s *ex = examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -481,7 +482,7 @@ wscbor_test_require_tstr_short(void)
static void
wscbor_test_require_bstr_simple(void)
{
- for (size_t ex_ix = 0; ex_ix < (sizeof(all_examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(all_examples); ++ex_ix) {
const example_s *ex = all_examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -526,7 +527,7 @@ wscbor_test_require_bstr_short(void)
wscbor_chunk_t *chunk = NULL;
tvbuff_t *val = NULL;
- for (size_t ex_ix = 0; ex_ix < (sizeof(examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(examples); ++ex_ix) {
const example_s *ex = examples[ex_ix];
printf("simple #%zu\n", ex_ix);
@@ -569,7 +570,7 @@ wscbor_test_require_bstr_overflow(void)
const example_s * examples[] = {
&ex_bstr_overflow,
};
- for (size_t ex_ix = 0; ex_ix < (sizeof(examples) / sizeof(example_s*)); ++ex_ix) {
+ for (size_t ex_ix = 0; ex_ix < array_length(examples); ++ex_ix) {
const example_s *ex = examples[ex_ix];
printf("simple #%zu\n", ex_ix);
diff --git a/epan/wslua/init_wslua.c b/epan/wslua/init_wslua.c
index 4a8aaea9c1..d1c80b03c3 100644
--- a/epan/wslua/init_wslua.c
+++ b/epan/wslua/init_wslua.c
@@ -32,22 +32,18 @@
/* linked list of Lua plugins */
typedef struct _wslua_plugin {
- gchar *name; /**< plugin name */
- gchar *version; /**< plugin version */
- gchar *spdx_id; /**< plugin SPDX ID */
- gchar *home_url; /**< plugin homepage */
- gchar *blurb; /**< plugin description */
- gchar *filename; /**< plugin filename */
- plugin_scope_e scope; /**< plugin scope */
+ char *name; /**< plugin name */
+ char *version; /**< plugin version */
+ char *filename; /**< plugin filename */
struct _wslua_plugin *next;
} wslua_plugin;
-static wslua_plugin *wslua_plugin_list = NULL;
+static wslua_plugin *wslua_plugin_list;
-static lua_State* L = NULL;
+static lua_State* L;
-static void (*wslua_gui_print_func_ptr)(const char *, void *) = NULL;
-static void *wslua_gui_print_data_ptr = NULL;
+static void (*wslua_gui_print_func_ptr)(const char *, void *);
+static void *wslua_gui_print_data_ptr;
static int wslua_lua_print_func_ref = LUA_NOREF;
/* XXX: global variables? Really?? Yuck. These could be done differently,
@@ -161,7 +157,7 @@ static expert_field ei_lua_proto_interface_note;
static expert_field ei_lua_proto_interface_warn;
static expert_field ei_lua_proto_interface_error;
-static gint ett_wslua_traceback;
+static int ett_wslua_traceback;
static bool
lua_pinfo_end(wmem_allocator_t *allocator _U_, wmem_cb_event_t event _U_,
@@ -178,7 +174,7 @@ lua_pinfo_end(wmem_allocator_t *allocator _U_, wmem_cb_event_t event _U_,
clear_outstanding_FuncSavers();
/* keep invoking this callback later? */
- return FALSE;
+ return false;
}
static int wslua_not_register_menu(lua_State* LS) {
@@ -342,7 +338,7 @@ int dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data
/* if the Lua dissector reported the consumed bytes, pass it to our caller */
if (lua_isnumber(L, -1)) {
/* we got the consumed bytes or the missing bytes as a negative number */
- consumed_bytes = wslua_togint(L, -1);
+ consumed_bytes = wslua_toint(L, -1);
lua_pop(L, 1);
}
}
@@ -367,10 +363,10 @@ int dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data
* @param tvb the tvbuff with the (remaining) packet data
* @param pinfo the packet info of this packet (additional info)
* @param tree the protocol tree to be build or NULL
- * @return TRUE if the packet was recognized by the sub-dissector (stop dissection here)
+ * @return true if the packet was recognized by the sub-dissector (stop dissection here)
*/
gboolean heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U_) {
- gboolean result = FALSE;
+ bool result = false;
tvbuff_t *saved_lua_tvb = lua_tvb;
packet_info *saved_lua_pinfo = lua_pinfo;
struct _wslua_treeitem *saved_lua_tree = lua_tree;
@@ -382,7 +378,7 @@ gboolean heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, v
if (!pinfo->heur_list_name || !pinfo->current_proto) {
proto_tree_add_expert_format(tree, pinfo, &ei_lua_error, tvb, 0, 0,
"internal error in heur_dissect_lua: NULL list name or current proto");
- return FALSE;
+ return false;
}
/* heuristic functions are stored in a table in the registry; the registry has a
@@ -403,7 +399,7 @@ gboolean heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, v
lua_settop(L,0);
proto_tree_add_expert_format(tree, pinfo, &ei_lua_error, tvb, 0, 0,
"internal error in heur_dissect_lua: no %s heur list table", pinfo->heur_list_name);
- return FALSE;
+ return false;
}
/* get the table inside that, for the specific lua heuristic dissector */
@@ -413,7 +409,7 @@ gboolean heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, v
proto_tree_add_expert_format(tree, pinfo, &ei_lua_error, tvb, 0, 0,
"internal error in heur_dissect_lua: no %s heuristic dissector for list %s",
pinfo->current_proto, pinfo->heur_list_name);
- return FALSE;
+ return false;
}
/* remove the table of all lists (the one in the registry) */
@@ -426,7 +422,7 @@ gboolean heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, v
lua_settop(L,0);
proto_tree_add_expert_format(tree, pinfo, &ei_lua_error, tvb, 0, 0,
"internal error in heur_dissect_lua: %s heuristic dissector is not a function", pinfo->current_proto);
- return FALSE;
+ return false;
}
push_Tvb(L,tvb);
@@ -442,7 +438,7 @@ gboolean heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, v
if (lua_isboolean(L, -1) || lua_isnil(L, -1)) {
result = lua_toboolean(L, -1);
} else if (lua_type(L, -1) == LUA_TNUMBER) {
- result = lua_tointeger(L,-1) != 0 ? TRUE : FALSE;
+ result = lua_tointeger(L,-1) != 0 ? true : false;
} else {
proto_tree_add_expert_format(tree, pinfo, &ei_lua_error, tvb, 0, 0,
"Lua Error: invalid return value from Lua %s heuristic dissector", pinfo->current_proto);
@@ -459,7 +455,7 @@ gboolean heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, v
return result;
}
-static void iter_table_and_call(lua_State* LS, const gchar* table_name, lua_CFunction error_handler) {
+static void iter_table_and_call(lua_State* LS, const char* table_name, lua_CFunction error_handler) {
lua_settop(LS,0);
lua_pushcfunction(LS,error_handler);
@@ -475,7 +471,7 @@ static void iter_table_and_call(lua_State* LS, const gchar* table_name, lua_CFun
lua_pushnil(LS);
while (lua_next(LS, 2)) {
- const gchar* name = lua_tostring(L,-2);
+ const char* name = lua_tostring(L,-2);
if (lua_isfunction(LS,-1)) {
@@ -496,13 +492,13 @@ static void iter_table_and_call(lua_State* LS, const gchar* table_name, lua_CFun
static int init_error_handler(lua_State* LS) {
- const gchar* error = lua_tostring(LS,1);
+ const char* error = lua_tostring(LS,1);
report_failure("Lua: Error during execution of initialization:\n %s",error);
return 0;
}
-static gboolean init_routine_initialized = FALSE;
+static bool init_routine_initialized;
static void wslua_init_routine(void) {
if ( ! init_routine_initialized ) {
@@ -517,7 +513,7 @@ static void wslua_init_routine(void) {
* Lua states, we'll need to change this.
*/
lua_prime_all_fields(NULL);
- init_routine_initialized = TRUE;
+ init_routine_initialized = true;
}
if (L) {
@@ -533,7 +529,7 @@ static void wslua_cleanup_routine(void) {
}
static int prefs_changed_error_handler(lua_State* LS) {
- const gchar* error = lua_tostring(LS,1);
+ const char* error = lua_tostring(LS,1);
report_failure("Lua: Error during execution of prefs apply callback:\n %s",error);
return 0;
}
@@ -565,8 +561,7 @@ static int error_handler_with_callback(lua_State *LS) {
return 1;
}
-static void wslua_add_plugin(const gchar *name,
- const gchar *filename, plugin_scope_e scope)
+static void wslua_add_plugin(const char *name, const char *version, const char *filename)
{
wslua_plugin *new_plug, *lua_plug;
@@ -583,16 +578,9 @@ static void wslua_add_plugin(const gchar *name,
}
new_plug->name = g_strdup(name);
- new_plug->version = g_strdup(get_current_plugin_version());
- new_plug->spdx_id = g_strdup(get_current_plugin_spdx_id());
- new_plug->home_url = g_strdup(get_current_plugin_repository());
- new_plug->blurb = g_strdup(get_current_plugin_description());
+ new_plug->version = g_strdup(version);
new_plug->filename = g_strdup(filename);
- new_plug->scope = scope;
new_plug->next = NULL;
-
- ws_debug("Lua plugin '%s' meta data: version = %s, flags = 0x0, spdx = %s, blurb = %s",
- name, new_plug->version, new_plug->spdx_id, new_plug->blurb);
}
static void wslua_clear_plugin_list(void)
@@ -610,8 +598,8 @@ static void wslua_clear_plugin_list(void)
}
static int lua_script_push_args(const int script_num) {
- gchar* argname = ws_strdup_printf("lua_script%d", script_num);
- const gchar* argvalue = NULL;
+ char* argname = ws_strdup_printf("lua_script%d", script_num);
+ const char* argvalue = NULL;
int i, count = ex_opt_count(argname);
for (i = 0; i < count; i++) {
@@ -627,7 +615,7 @@ static int lua_script_push_args(const int script_num) {
#define DIR_NAME_KEY "__DIR__"
#define DIR_SEP_NAME_KEY "__DIR_SEPARATOR__"
/* assumes a loaded chunk's function is on top of stack */
-static void set_file_environment(const gchar* filename, const gchar* dirname) {
+static void set_file_environment(const char* filename, const char* dirname) {
const char* path;
lua_newtable(L); /* environment for script (index 3) */
@@ -676,14 +664,14 @@ static void set_file_environment(const gchar* filename, const gchar* dirname) {
* If dirname != NULL, then it's a user script and the dirname will get put in a file environment
* If dirname == NULL then it's a wireshark script and no file environment is created
*/
-static gboolean lua_load_script(const gchar* filename, const gchar* dirname, const int file_count) {
+static bool lua_load_script(const char* filename, const char* dirname, const int file_count) {
FILE* file;
int error;
int numargs = 0;
if (! ( file = ws_fopen(filename,"r")) ) {
- report_open_failure(filename,errno,FALSE);
- return FALSE;
+ report_open_failure(filename,errno,false);
+ return false;
}
lua_settop(L,0);
@@ -745,26 +733,25 @@ static gboolean lua_load_script(const gchar* filename, const gchar* dirname, con
/* This one is used to load the init.lua scripts, or anything else
* that shouldn't really be considered a real plugin.
*/
-static gboolean lua_load_internal_script(const gchar* filename) {
+static bool lua_load_internal_script(const char* filename) {
return lua_load_script(filename, NULL, 0);
}
/* This one is used to load plugins: either from the plugin directories,
* or from the command line.
*/
-static gboolean lua_load_plugin_script(const gchar* name,
- const gchar* filename,
- const gchar* dirname,
- plugin_scope_e scope,
+static gboolean lua_load_plugin_script(const char* name,
+ const char* filename,
+ const char* dirname,
const int file_count)
{
ws_debug("Loading lua script: %s", filename);
if (lua_load_script(filename, dirname, file_count)) {
- wslua_add_plugin(name, filename, scope);
- clear_current_plugin_info();
- return TRUE;
+ wslua_add_plugin(name, get_current_plugin_version(), filename);
+ clear_current_plugin_version();
+ return true;
}
- return FALSE;
+ return false;
}
static int wslua_panic(lua_State* LS) {
@@ -773,18 +760,18 @@ static int wslua_panic(lua_State* LS) {
return 0; /* keep gcc happy */
}
-static gint string_compare(gconstpointer a, gconstpointer b) {
+static int string_compare(gconstpointer a, gconstpointer b) {
return strcmp((const char*)a, (const char*)b);
}
-static int lua_load_plugins(const char *dirname, register_cb cb, gpointer client_data,
- gboolean count_only, const gboolean is_user, GHashTable *loaded_files,
+static int lua_load_plugins(const char *dirname, register_cb cb, void *client_data,
+ bool count_only, const bool is_user, GHashTable *loaded_files,
int depth)
{
WS_DIR *dir; /* scanned directory */
WS_DIRENT *file; /* current file */
- gchar *filename, *dot;
- const gchar *name;
+ char *filename, *dot;
+ const char *name;
int plugins_counter = 0;
GList *sorted_dirnames = NULL;
GList *sorted_filenames = NULL;
@@ -805,17 +792,10 @@ static int lua_load_plugins(const char *dirname, register_cb cb, gpointer client
* lua script.) */
continue;
}
- if (depth == 0 && (strcmp(name, "epan") == 0 ||
- strcmp(name, "wiretap") == 0 ||
- strcmp(name, "codecs") == 0)) {
- /* Skip the binary plugin directories, which unfortunately are
- * subfolders of the Lua plugins directory. */
- continue;
- }
filename = ws_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", dirname, name);
if (test_for_directory(filename) == EISDIR) {
- sorted_dirnames = g_list_prepend(sorted_dirnames, (gpointer)filename);
+ sorted_dirnames = g_list_prepend(sorted_dirnames, (void *)filename);
continue;
}
@@ -833,7 +813,7 @@ static int lua_load_plugins(const char *dirname, register_cb cb, gpointer client
}
if (file_exists(filename)) {
- sorted_filenames = g_list_prepend(sorted_filenames, (gpointer)filename);
+ sorted_filenames = g_list_prepend(sorted_filenames, (void *)filename);
}
else {
g_free(filename);
@@ -855,7 +835,7 @@ static int lua_load_plugins(const char *dirname, register_cb cb, gpointer client
if (sorted_filenames != NULL) {
sorted_filenames = g_list_sort(sorted_filenames, string_compare);
for (l = sorted_filenames; l != NULL; l = l->next) {
- filename = (gchar *)l->data;
+ filename = (char *)l->data;
name = strrchr(filename, G_DIR_SEPARATOR) + 1;
/* Check if we have already loaded this file name, if provided with a set */
@@ -866,8 +846,7 @@ static int lua_load_plugins(const char *dirname, register_cb cb, gpointer client
if (!count_only) {
if (cb)
(*cb)(RA_LUA_PLUGINS, name, client_data);
- lua_load_plugin_script(name, filename, is_user ? dirname : NULL,
- is_user ? WS_PLUGIN_SCOPE_USER : WS_PLUGIN_SCOPE_GLOBAL, 0);
+ lua_load_plugin_script(name, filename, is_user ? dirname : NULL, 0);
if (loaded_files) {
g_hash_table_insert(loaded_files, g_strdup(name), NULL);
@@ -881,14 +860,14 @@ static int lua_load_plugins(const char *dirname, register_cb cb, gpointer client
return plugins_counter;
}
-static int lua_load_global_plugins(register_cb cb, gpointer client_data,
- gboolean count_only)
+static int lua_load_global_plugins(register_cb cb, void *client_data,
+ bool count_only)
{
- return lua_load_plugins(get_plugins_dir(), cb, client_data, count_only, FALSE, NULL, 0);
+ return lua_load_plugins(get_plugins_dir(), cb, client_data, count_only, false, NULL, 0);
}
-static int lua_load_pers_plugins(register_cb cb, gpointer client_data,
- gboolean count_only)
+static int lua_load_pers_plugins(register_cb cb, void *client_data,
+ bool count_only)
{
int plugins_counter = 0;
@@ -896,12 +875,12 @@ static int lua_load_pers_plugins(register_cb cb, gpointer client_data,
GHashTable *loaded_user_scripts = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
/* load user scripts */
- plugins_counter += lua_load_plugins(get_plugins_pers_dir(), cb, client_data, count_only, TRUE, loaded_user_scripts, 0);
+ plugins_counter += lua_load_plugins(get_plugins_pers_dir(), cb, client_data, count_only, true, loaded_user_scripts, 0);
/* for backward compatibility check old plugin directory */
- char *old_path = get_persconffile_path("plugins", FALSE);
+ char *old_path = get_persconffile_path("plugins", false);
if (strcmp(get_plugins_pers_dir(), old_path) != 0) {
- plugins_counter += lua_load_plugins(old_path, cb, client_data, count_only, TRUE, loaded_user_scripts, 0);
+ plugins_counter += lua_load_plugins(old_path, cb, client_data, count_only, true, loaded_user_scripts, 0);
}
g_free(old_path);
@@ -914,10 +893,10 @@ int wslua_count_plugins(void) {
int plugins_counter;
/* count global scripts */
- plugins_counter = lua_load_global_plugins(NULL, NULL, TRUE);
+ plugins_counter = lua_load_global_plugins(NULL, NULL, true);
/* count user scripts */
- plugins_counter += lua_load_pers_plugins(NULL, NULL, TRUE);
+ plugins_counter += lua_load_pers_plugins(NULL, NULL, true);
/* count scripts from command line */
plugins_counter += ex_opt_count("lua_script");
@@ -925,25 +904,22 @@ int wslua_count_plugins(void) {
return plugins_counter;
}
-void wslua_plugins_get_descriptions(plugin_description_callback callback, void *user_data) {
+void wslua_plugins_get_descriptions(wslua_plugin_description_callback callback, void *user_data) {
wslua_plugin *lua_plug;
for (lua_plug = wslua_plugin_list; lua_plug != NULL; lua_plug = lua_plug->next)
{
- callback(lua_plug->name, lua_plug->version,
- 0 /* flags */, lua_plug->spdx_id, lua_plug->blurb, lua_plug->home_url,
- lua_plug->filename, lua_plug->scope, user_data);
+ callback(lua_plug->name, lua_plug->version, wslua_plugin_type_name(),
+ lua_plug->filename, user_data);
}
}
static void
print_wslua_plugin_description(const char *name, const char *version,
- uint32_t flags _U_, const char *spdx_id _U_,
- const char *blurb _U_, const char *home_url _U_,
- const char *filename, plugin_scope_e scope _U_,
- void *user_data _U_)
+ const char *description, const char *filename,
+ void *user_data _U_)
{
- printf("%s\t%s\t%s\t%s\n", name, version, "lua script", filename);
+ printf("%s\t%s\t%s\t%s\n", name, version, description, filename);
}
void
@@ -952,8 +928,12 @@ wslua_plugins_dump_all(void)
wslua_plugins_get_descriptions(print_wslua_plugin_description, NULL);
}
-static ei_register_info* ws_lua_ei = NULL;
-static int ws_lua_ei_len = 0;
+const char *wslua_plugin_type_name(void) {
+ return "lua script";
+}
+
+static ei_register_info* ws_lua_ei;
+static int ws_lua_ei_len;
expert_field*
wslua_get_expert_field(const int group, const int severity)
@@ -1334,7 +1314,7 @@ static int wslua_console_print(lua_State *_L)
else {
wslua_gui_print_func_ptr(gstr->str, wslua_gui_print_data_ptr);
}
- g_string_free(gstr, TRUE);
+ g_string_free(gstr, true);
return 0;
}
@@ -1404,7 +1384,7 @@ void wslua_add_useful_constants(void)
lua_setglobal(L, "DATA_DIR");
/* USER_DIR has a trailing directory separator. */
- path = get_persconffile_path("", FALSE);
+ path = get_persconffile_path("", false);
lua_pushfstring(L, "%s"G_DIR_SEPARATOR_S, path);
g_free(path);
lua_setglobal(L, "USER_DIR");
@@ -1416,14 +1396,15 @@ void wslua_add_useful_constants(void)
lua_setglobal(L, "typeof");
}
-void wslua_init(register_cb cb, gpointer client_data) {
- gchar* filename;
- gboolean enable_lua = TRUE;
- gboolean run_anyway = FALSE;
+void wslua_init(register_cb cb, void *client_data) {
+ char* filename;
+ bool enable_lua = true;
+ bool run_anyway = false;
expert_module_t* expert_lua;
int file_count = 1;
- static gboolean first_time = TRUE;
+ static bool first_time = true;
int i;
+ int error;
static hf_register_info hf[] = {
{ &hf_wslua_fake,
@@ -1434,7 +1415,7 @@ void wslua_init(register_cb cb, gpointer client_data) {
{ "Wireshark Lua text", "_ws.lua.text",
FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
};
- static gint *ett[] = {
+ static int *ett[] = {
&ett_wslua_traceback,
};
@@ -1619,12 +1600,12 @@ void wslua_init(register_cb cb, gpointer client_data) {
/* special constant used by PDU reassembly handling */
/* see dissect_lua() for notes */
- WSLUA_REG_GLOBAL_NUMBER(L,"DESEGMENT_ONE_MORE_SEGMENT",DESEGMENT_ONE_MORE_SEGMENT);
+ WSLUA_REG_GLOBAL_INTEGER(L,"DESEGMENT_ONE_MORE_SEGMENT",DESEGMENT_ONE_MORE_SEGMENT);
/* the possible values for Pinfo's p2p_dir attribute */
- WSLUA_REG_GLOBAL_NUMBER(L,"P2P_DIR_UNKNOWN",-1);
- WSLUA_REG_GLOBAL_NUMBER(L,"P2P_DIR_SENT",0);
- WSLUA_REG_GLOBAL_NUMBER(L,"P2P_DIR_RECV",1);
+ WSLUA_REG_GLOBAL_INTEGER(L,"P2P_DIR_UNKNOWN",-1);
+ WSLUA_REG_GLOBAL_INTEGER(L,"P2P_DIR_SENT",0);
+ WSLUA_REG_GLOBAL_INTEGER(L,"P2P_DIR_RECV",1);
wslua_add_introspection();
@@ -1664,7 +1645,7 @@ void wslua_init(register_cb cb, gpointer client_data) {
g_free(filename);
/* For backward compatibility also load it from the configuration directory. */
- filename = get_persconffile_path("init.lua", FALSE);
+ filename = get_persconffile_path("init.lua", false);
if (file_exists(filename)) {
ws_message("Loading init.lua file from deprecated path: %s", filename);
lua_load_internal_script(filename);
@@ -1691,18 +1672,18 @@ void wslua_init(register_cb cb, gpointer client_data) {
/* disable lua */
lua_close(L);
L = NULL;
- first_time = FALSE;
+ first_time = false;
return;
}
/* load global scripts */
- lua_load_global_plugins(cb, client_data, FALSE);
+ lua_load_global_plugins(cb, client_data, false);
/* check whether we should run other scripts even if running superuser */
lua_getglobal(L,"run_user_scripts_when_superuser");
if (lua_isboolean(L,-1) && lua_toboolean(L,-1)) {
- run_anyway = TRUE;
+ run_anyway = true;
}
lua_pop(L,1); /* pop the getglobal result */
@@ -1710,11 +1691,11 @@ void wslua_init(register_cb cb, gpointer client_data) {
if (!started_with_special_privs() || run_anyway) {
/* load user scripts */
- lua_load_pers_plugins(cb, client_data, FALSE);
+ lua_load_pers_plugins(cb, client_data, false);
/* load scripts from command line */
for (i = 0; i < ex_opt_count("lua_script"); i++) {
- const gchar *script_filename = ex_opt_get_nth("lua_script", i);
+ const char *script_filename = ex_opt_get_nth("lua_script", i);
char* dirname = g_strdup(script_filename);
char* dname = get_dirname(dirname);
@@ -1724,7 +1705,6 @@ void wslua_init(register_cb cb, gpointer client_data) {
lua_load_plugin_script(ws_dir_get_name(script_filename),
script_filename,
dname ? dname : "",
- WS_PLUGIN_SCOPE_CLI,
file_count);
file_count++;
g_free(dirname);
@@ -1749,16 +1729,37 @@ void wslua_init(register_cb cb, gpointer client_data) {
lua_tree = NULL;
lua_tvb = NULL;
- Proto_commit(L);
+ /* Unfortunately, by waiting to register the hfi and ei now, Lua
+ * can't figure out which file had the error and provide a traceback,
+ * so no special error handler.
+ */
+ lua_pushcfunction(L, Proto_commit);
+ error = lua_pcall(L, 0, 0, 0);
+ if (error) {
+ switch (error) {
+ case LUA_ERRRUN:
+ report_failure("Lua: Error initializing protocols:\n%s", lua_tostring(L, -1));
+ break;
+ case LUA_ERRMEM:
+ report_failure("Lua: Error initializing protocols: out of memory");
+ break;
+ case LUA_ERRERR:
+ report_failure("Lua: Error initializing protocols: error while retrieving error message");
+ break;
+ default:
+ report_failure("Lua: Error initializing protocols: unknown error %d", error);
+ break;
+ }
+ }
- first_time = FALSE;
+ first_time = false;
}
void wslua_early_cleanup(void) {
wslua_deregister_protocols(L);
}
-void wslua_reload_plugins (register_cb cb, gpointer client_data) {
+void wslua_reload_plugins (register_cb cb, void *client_data) {
const funnel_ops_t* ops = funnel_get_funnel_ops();
if (cb)
@@ -1786,7 +1787,7 @@ void wslua_cleanup(void) {
lua_close(L);
L = NULL;
}
- init_routine_initialized = FALSE;
+ init_routine_initialized = false;
}
lua_State* wslua_state(void) { return L; }
diff --git a/epan/wslua/init_wslua.h b/epan/wslua/init_wslua.h
index 6b4e332566..681dcacc37 100644
--- a/epan/wslua/init_wslua.h
+++ b/epan/wslua/init_wslua.h
@@ -12,17 +12,19 @@
#include "ws_symbol_export.h"
-#include <wsutil/plugins.h>
-
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
WS_DLL_PUBLIC int wslua_count_plugins(void);
-WS_DLL_PUBLIC void wslua_reload_plugins (register_cb cb, gpointer client_data);
+WS_DLL_PUBLIC void wslua_reload_plugins (register_cb cb, void *client_data);
-WS_DLL_PUBLIC void wslua_plugins_get_descriptions(plugin_description_callback callback, void *user_data);
+typedef void (*wslua_plugin_description_callback)(const char *, const char *,
+ const char *, const char *,
+ void *);
+WS_DLL_PUBLIC void wslua_plugins_get_descriptions(wslua_plugin_description_callback callback, void *user_data);
WS_DLL_PUBLIC void wslua_plugins_dump_all(void);
+WS_DLL_PUBLIC const char *wslua_plugin_type_name(void);
#ifdef __cplusplus
}
diff --git a/epan/wslua/wslua.h b/epan/wslua/wslua.h
index 5ba16f35e4..fad2384abe 100644
--- a/epan/wslua/wslua.h
+++ b/epan/wslua/wslua.h
@@ -58,39 +58,74 @@
#define WSLUA_PREFS_CHANGED "prefs_changed"
/* type conversion macros - lua_Number is a double, so casting isn't kosher; and
- using Lua's already-available lua_tointeger() and luaL_checkinteger() might be different
- on different machines; so use these instead please! */
-#define wslua_togint(L,i) (gint) ( lua_tointeger(L,i) )
-#define wslua_togint32(L,i) (gint32) ( lua_tonumber(L,i) )
-#define wslua_togint64(L,i) (gint64) ( lua_tonumber(L,i) )
-#define wslua_toguint(L,i) (guint) ( lua_tointeger(L,i) )
-#define wslua_toguint32(L,i) (guint32) ( lua_tonumber(L,i) )
-#define wslua_toguint64(L,i) (guint64) ( lua_tonumber(L,i) )
-
-#define wslua_checkgint(L,i) (gint) ( luaL_checkinteger(L,i) )
-#define wslua_checkgint32(L,i) (gint32) ( luaL_checknumber(L,i) )
-#define wslua_checkgint64(L,i) (gint64) ( luaL_checknumber(L,i) )
-#define wslua_checkguint(L,i) (guint) ( luaL_checkinteger(L,i) )
-#define wslua_checkguint32(L,i) (guint32) ( luaL_checknumber(L,i) )
-#define wslua_checkguint64(L,i) (guint64) ( luaL_checknumber(L,i) )
-
-#define wslua_optgint(L,i,d) (gint) ( luaL_optinteger(L,i,d) )
-#define wslua_optgint32(L,i,d) (gint32) ( luaL_optnumber(L,i,d) )
-#define wslua_optgint64(L,i,d) (gint64) ( luaL_optnumber(L,i,d) )
-#define wslua_optguint(L,i,d) (guint) ( luaL_optinteger(L,i,d) )
-#define wslua_optguint32(L,i,d) (guint32) ( luaL_optnumber(L,i,d) )
-#define wslua_optguint64(L,i,d) (guint64) ( luaL_optnumber(L,i,d) )
+ using Lua's already-available lua_tointeger() and luaL_checkinteger() might be
+ different on different machines; so use these instead please!
+
+ It can be important to choose the correct version of signed or unsigned
+ conversion macros; don't assume that you can freely convert to the signed
+ or unsigned integer of the same size later:
+
+ On 32-bit Windows x86, Lua 5.2 and earlier must use lua_tounsigned() and
+ luaL_checkunsigned() due to the use of float to integer inlined assembly.
+ (#18367)
+ On ARM, casting from a negative floating point number to an unsigned integer
+ type doesn't perform wraparound conversion in the same way as casting from
+ float to the same size signed integer then to unsigned does, unlike x86[-64].
+ (Commit 15392c324d5eaefcaa298cdee09cd5b40b12e09c)
+
+ On Lua 5.3 and later, numbers are stored as a kind of union between
+ Lua_Number and Lua_Integer. On 5.2 and earlier. all numbers are stored
+ as Lua_Number internally.
+
+ Be careful about using the 64-bit functions, as they convert from double
+ and lose precision at high values. See wslua_int64.c and the types there.
+ TODO: Check if Lua_Integer is 64 bit on Lua 5.3 and later.
+*/
+#define wslua_toint(L,i) (int) ( lua_tointeger(L,i) )
+#define wslua_toint32(L,i) (int32_t) ( lua_tointeger(L,i) )
+#define wslua_toint64(L,i) (int64_t) ( lua_tonumber(L,i) )
+#define wslua_touint64(L,i) (uint64_t) ( lua_tonumber(L,i) )
+
+#define wslua_checkint(L,i) (int) ( luaL_checkinteger(L,i) )
+#define wslua_checkint32(L,i) (int32_t) ( luaL_checkinteger(L,i) )
+#define wslua_checkint64(L,i) (int64_t) ( luaL_checknumber(L,i) )
+#define wslua_checkuint64(L,i) (uint64_t) ( luaL_checknumber(L,i) )
+
+#define wslua_optint(L,i,d) (int) ( luaL_optinteger(L,i,d) )
+#define wslua_optint32(L,i,d) (int32_t) ( luaL_optinteger(L,i,d) )
+#define wslua_optint64(L,i,d) (int64_t) ( luaL_optnumber(L,i,d) )
+#define wslua_optuint64(L,i,d) (uint64_t) ( luaL_optnumber(L,i,d) )
+/**
+ * On Lua 5.3 and later, the unsigned conversions may not be defined
+ * (depending on a compatibility define), and they're just casts if they
+ * are.
+ */
+#if LUA_VERSION_NUM < 503
+#define wslua_touint(L,i) (unsigned) ( lua_tounsigned(L,i) )
+#define wslua_touint32(L,i) (uint32_t) ( lua_tounsigned(L,i) )
+#define wslua_checkuint(L,i) (unsigned) ( luaL_checkunsigned(L,i) )
+#define wslua_checkuint32(L,i) (uint32_t) ( luaL_checkunsigned(L,i) )
+#define wslua_optuint(L,i,d) (unsigned) ( luaL_optunsigned(L,i,d) )
+#define wslua_optuint32(L,i,d) (uint32_t) ( luaL_optunsigned(L,i,d) )
+#else
+#define wslua_touint(L,i) (unsigned) ( lua_tointeger(L,i) )
+#define wslua_touint32(L,i) (uint32_t) ( lua_tointeger(L,i) )
+#define wslua_checkuint(L,i) (unsigned) ( luaL_checkinteger(L,i) )
+#define wslua_checkuint32(L,i) (uint32_t) ( luaL_checkinteger(L,i) )
+#define wslua_optuint(L,i,d) (unsigned) ( luaL_optinteger(L,i,d) )
+#define wslua_optuint32(L,i,d) (uint32_t) ( luaL_optinteger(L,i,d) )
+#endif
struct _wslua_tvb {
tvbuff_t* ws_tvb;
- gboolean expired;
- gboolean need_free;
+ bool expired;
+ bool need_free;
};
struct _wslua_pinfo {
packet_info* ws_pinfo;
- gboolean expired;
+ bool expired;
};
struct _wslua_tvbrange {
@@ -101,7 +136,7 @@ struct _wslua_tvbrange {
struct _wslua_tw {
funnel_text_window_t* ws_tw;
- gboolean expired;
+ bool expired;
void* close_cb_data;
};
@@ -114,13 +149,14 @@ typedef struct _wslua_field_t {
enum ftenum type;
unsigned base;
const void* vs;
- guint64 mask;
+ int valuestring_ref;
+ uint64_t mask;
} wslua_field_t;
typedef struct _wslua_expert_field_t {
expert_field ids;
- const gchar *abbrev;
- const gchar *text;
+ const char *abbrev;
+ const char *text;
int group;
int severity;
} wslua_expert_field_t;
@@ -140,28 +176,28 @@ typedef enum {
} pref_type_t;
typedef struct _wslua_pref_t {
- gchar* name;
- gchar* label;
- gchar* desc;
+ char* name;
+ char* label;
+ char* desc;
pref_type_t type;
union {
- gboolean b;
- guint u;
- gchar* s;
- gint e;
+ bool b;
+ unsigned u;
+ char* s;
+ int e;
range_t *r;
void* p;
} value;
union {
- guint32 max_value; /**< maximum value of a range */
+ uint32_t max_value; /**< maximum value of a range */
struct {
const enum_val_t *enumvals; /**< list of name & values */
- gboolean radio_buttons; /**< TRUE if it should be shown as
+ bool radio_buttons; /**< true if it should be shown as
radio buttons rather than as an
option menu or combo box in
the preferences tab */
} enum_info; /**< for PREF_ENUM */
- gchar* default_s; /**< default value for value.s */
+ char* default_s; /**< default value for value.s */
} info; /**< display/text file information */
struct _wslua_pref_t* next;
@@ -170,9 +206,9 @@ typedef struct _wslua_pref_t {
} wslua_pref_t;
typedef struct _wslua_proto_t {
- gchar* name;
- gchar* loname;
- gchar* desc;
+ char* name;
+ char* loname;
+ char* desc;
int hfid;
int ett;
wslua_pref_t prefs;
@@ -184,39 +220,43 @@ typedef struct _wslua_proto_t {
GArray *hfa;
GArray *etta;
GArray *eia;
- gboolean is_postdissector;
- gboolean expired;
+ bool is_postdissector;
+ bool expired;
} wslua_proto_t;
+/* a "DissectorTable" object can be different things under the hood,
+ * since its heuristic_new() can create a heur_dissector_list_t that
+ * needs to be deregistered. */
struct _wslua_distbl_t {
dissector_table_t table;
- const gchar* name;
- const gchar* ui_name;
- gboolean created;
- gboolean expired;
+ heur_dissector_list_t heur_list;
+ const char* name;
+ const char* ui_name;
+ bool created;
+ bool expired;
};
struct _wslua_col_info {
column_info* cinfo;
- gint col;
- gboolean expired;
+ int col;
+ bool expired;
};
struct _wslua_cols {
column_info* cinfo;
- gboolean expired;
+ bool expired;
};
struct _wslua_private_table {
GHashTable *table;
- gboolean is_allocated;
- gboolean expired;
+ bool is_allocated;
+ bool expired;
};
struct _wslua_treeitem {
proto_item* item;
proto_tree* tree;
- gboolean expired;
+ bool expired;
};
// Internal structure for wslua_field.c to track info about registered fields.
@@ -227,20 +267,20 @@ struct _wslua_header_field_info {
struct _wslua_field_info {
field_info *ws_fi;
- gboolean expired;
+ bool expired;
};
typedef void (*tap_extractor_t)(lua_State*,const void*);
struct _wslua_tap {
- gchar* name;
- gchar* filter;
+ char* name;
+ char* filter;
tap_extractor_t extractor;
lua_State* L;
int packet_ref;
int draw_ref;
int reset_ref;
- gboolean all_fields;
+ bool all_fields;
};
/* a "File" object can be different things under the hood. It can either
@@ -251,35 +291,35 @@ struct _wslua_tap {
struct _wslua_file {
FILE_T file;
wtap_dumper *wdh; /* will be NULL during read usage */
- gboolean expired;
+ bool expired;
};
/* a "CaptureInfo" object can also be different things under the hood. */
struct _wslua_captureinfo {
wtap *wth; /* will be NULL during write usage */
wtap_dumper *wdh; /* will be NULL during read usage */
- gboolean expired;
+ bool expired;
};
struct _wslua_phdr {
wtap_rec *rec; /* this also exists in wtap struct, but is different for seek_read ops */
Buffer *buf; /* can't use the one in wtap because it's different for seek_read ops */
- gboolean expired;
+ bool expired;
};
struct _wslua_const_phdr {
const wtap_rec *rec;
- const guint8 *pd;
- gboolean expired;
+ const uint8_t *pd;
+ bool expired;
};
struct _wslua_filehandler {
struct file_type_subtype_info finfo;
- gboolean is_reader;
- gboolean is_writer;
- gchar* internal_description; /* XXX - this is redundant; finfo.description should suffice */
- gchar* type;
- gchar* extensions;
+ bool is_reader;
+ bool is_writer;
+ char* internal_description; /* XXX - this is redundant; finfo.description should suffice */
+ char* type;
+ char* extensions;
lua_State* L;
int read_open_ref;
int read_ref;
@@ -291,8 +331,8 @@ struct _wslua_filehandler {
int write_ref;
int write_close_ref;
int file_type;
- gboolean registered;
- gboolean removed; /* This is set during reload Lua plugins */
+ bool registered;
+ bool removed; /* This is set during reload Lua plugins */
};
struct _wslua_dir {
@@ -304,12 +344,12 @@ struct _wslua_progdlg {
struct progdlg* pw;
char* title;
char* task;
- gboolean stopped;
+ bool stopped;
};
typedef struct { const char* name; tap_extractor_t extractor; } tappable_t;
-typedef struct {const gchar* str; enum ftenum id; } wslua_ft_types_t;
+typedef struct {const char* str; enum ftenum id; } wslua_ft_types_t;
typedef wslua_pref_t* Pref;
typedef wslua_pref_t* Prefs;
@@ -327,8 +367,8 @@ typedef struct _wslua_pinfo* Pinfo;
typedef struct _wslua_treeitem* TreeItem;
typedef address* Address;
typedef nstime_t* NSTime;
-typedef gint64 Int64;
-typedef guint64 UInt64;
+typedef int64_t Int64;
+typedef uint64_t UInt64;
typedef struct _wslua_header_field_info* Field;
typedef struct _wslua_field_info* FieldInfo;
typedef struct _wslua_tap* Listener;
@@ -348,7 +388,7 @@ typedef tvbparse_elem_t* Node;
typedef tvbparse_action_t* Shortcut;
typedef struct _wslua_dir* Dir;
typedef struct _wslua_private_table* PrivateTable;
-typedef gchar* Struct;
+typedef char* Struct;
/*
* toXxx(L,idx) gets a Xxx from an index (Lua Error if fails)
@@ -382,14 +422,14 @@ C* push##C(lua_State* L, C v) { \
luaL_getmetatable(L, #C); lua_setmetatable(L, -2); \
return p; \
}\
-gboolean is##C(lua_State* L,int i) { \
+bool is##C(lua_State* L,int i) { \
void *p; \
- if(!lua_isuserdata(L,i)) return FALSE; \
+ if(!lua_isuserdata(L,i)) return false; \
p = lua_touserdata(L, i); \
lua_getfield(L, LUA_REGISTRYINDEX, #C); \
if (p == NULL || !lua_getmetatable(L, i) || !lua_rawequal(L, -1, -2)) p=NULL; \
lua_pop(L, 2); \
- return p ? TRUE : FALSE; \
+ return p ? true : false; \
} \
C shift##C(lua_State* L,int i) { \
C* p; \
@@ -404,11 +444,11 @@ C shift##C(lua_State* L,int i) { \
typedef int dummy##C
typedef struct _wslua_attribute_table {
- const gchar *fieldname;
+ const char *fieldname;
lua_CFunction getfunc;
lua_CFunction setfunc;
} wslua_attribute_table;
-extern int wslua_reg_attributes(lua_State *L, const wslua_attribute_table *t, gboolean is_getter);
+extern int wslua_reg_attributes(lua_State *L, const wslua_attribute_table *t, bool is_getter);
#define WSLUA_TYPEOF_FIELD "__typeof"
@@ -514,11 +554,11 @@ extern int wslua_reg_attributes(lua_State *L, const wslua_attribute_table *t, gb
#define WSLUA_ATTRIBUTE_NAMED_BOOLEAN_GETTER(C,name,member) \
WSLUA_ATTRIBUTE_GET(C,name,{lua_pushboolean(L, obj->member );})
-#define WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(C,name,member) \
- WSLUA_ATTRIBUTE_GET(C,name,{lua_pushnumber(L,(lua_Number)(obj->member));})
+#define WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(C,name,member) \
+ WSLUA_ATTRIBUTE_GET(C,name,{lua_pushinteger(L,(lua_Integer)(obj->member));})
-#define WSLUA_ATTRIBUTE_NUMBER_GETTER(C,member) \
- WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(C,member,member)
+#define WSLUA_ATTRIBUTE_INTEGER_GETTER(C,member) \
+ WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(C,member,member)
#define WSLUA_ATTRIBUTE_BLOCK_NUMBER_GETTER(C,name,block) \
WSLUA_ATTRIBUTE_GET(C,name,{lua_pushnumber(L,(lua_Number)(block));})
@@ -573,20 +613,20 @@ extern int wslua_reg_attributes(lua_State *L, const wslua_attribute_table *t, gb
/* to make this integral-safe, we treat it as int32 and then cast
Note: This will truncate 64-bit integers (but then Lua itself only has doubles */
-#define WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(C,name,member,cast) \
+#define WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(C,name,member,cast) \
WSLUA_ATTRIBUTE_SET(C,name, { \
- if (! lua_isnumber(L,-1) ) \
- return luaL_error(L, "%s's attribute `%s' must be a number", #C , #name ); \
- obj->member = (cast) wslua_togint32(L,-1); \
+ if (! lua_isinteger(L,-1) ) \
+ return luaL_error(L, "%s's attribute `%s' must be an integer", #C , #name ); \
+ obj->member = (cast) wslua_toint32(L,-1); \
})
-#define WSLUA_ATTRIBUTE_NUMBER_SETTER(C,member,cast) \
- WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(C,member,member,cast)
+#define WSLUA_ATTRIBUTE_INTEGER_SETTER(C,member,cast) \
+ WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(C,member,member,cast)
#define WSLUA_ATTRIBUTE_NAMED_STRING_SETTER(C,field,member,need_free) \
static int C##_set_##field (lua_State* L) { \
C obj = check##C (L,1); \
- gchar* s = NULL; \
+ char* s = NULL; \
if (lua_isstring(L,-1) || lua_isnil(L,-1)) { \
s = g_strdup(lua_tostring(L,-1)); \
} else { \
@@ -606,7 +646,7 @@ extern int wslua_reg_attributes(lua_State *L, const wslua_attribute_table *t, gb
#define WSLUA_ATTRIBUTE_NAMED_OPT_BLOCK_STRING_SETTER(C,field,member,option) \
static int C##_set_##field (lua_State* L) { \
C obj = check##C (L,1); \
- gchar* s = NULL; \
+ char* s = NULL; \
if (lua_isstring(L,-1) || lua_isnil(L,-1)) { \
s = g_strdup(lua_tostring(L,-1)); \
} else { \
@@ -624,7 +664,7 @@ extern int wslua_reg_attributes(lua_State *L, const wslua_attribute_table *t, gb
#define WSLUA_ATTRIBUTE_NAMED_OPT_BLOCK_NTH_STRING_SETTER(C,field,member,option) \
static int C##_set_##field (lua_State* L) { \
C obj = check##C (L,1); \
- gchar* s = NULL; \
+ char* s = NULL; \
if (lua_isstring(L,-1) || lua_isnil(L,-1)) { \
s = g_strdup(lua_tostring(L,-1)); \
} else { \
@@ -645,7 +685,7 @@ extern int wslua_reg_attributes(lua_State *L, const wslua_attribute_table *t, gb
#define WSLUA_REG_GLOBAL_BOOL(L,n,v) { lua_pushboolean(L,v); lua_setglobal(L,n); }
#define WSLUA_REG_GLOBAL_STRING(L,n,v) { lua_pushstring(L,v); lua_setglobal(L,n); }
-#define WSLUA_REG_GLOBAL_NUMBER(L,n,v) { lua_pushnumber(L,v); lua_setglobal(L,n); }
+#define WSLUA_REG_GLOBAL_INTEGER(L,n,v) { lua_pushinteger(L,v); lua_setglobal(L,n); }
#define WSLUA_RETURN(i) return (i)
@@ -680,7 +720,7 @@ extern C to##C(lua_State* L, int idx); \
extern C check##C(lua_State* L, int idx); \
extern C* push##C(lua_State* L, C v); \
extern int C##_register(lua_State* L); \
-extern gboolean is##C(lua_State* L,int i); \
+extern bool is##C(lua_State* L,int i); \
extern C shift##C(lua_State* L,int i)
@@ -692,12 +732,12 @@ extern C shift##C(lua_State* L,int i)
* Normal restrictions for TRY/CATCH apply, in particular, do not return! */
#define WRAP_NON_LUA_EXCEPTIONS(code) \
{ \
- volatile gboolean has_error = FALSE; \
+ volatile bool has_error = false; \
TRY { \
code \
} CATCH_ALL { \
lua_pushstring(L, GET_MESSAGE); \
- has_error = TRUE; \
+ has_error = true; \
} ENDTRY; \
if (has_error) { lua_error(L); } \
}
@@ -706,7 +746,7 @@ extern C shift##C(lua_State* L,int i)
extern packet_info* lua_pinfo;
extern TreeItem lua_tree;
extern tvbuff_t* lua_tvb;
-extern gboolean lua_initialized;
+extern bool lua_initialized;
extern int lua_dissectors_table_ref;
extern int lua_heur_dissectors_table_ref;
@@ -735,18 +775,18 @@ void wslua_register_classinstance_meta(lua_State *L, const wslua_class *cls_def)
void wslua_register_class(lua_State *L, const wslua_class *cls_def);
extern int wslua__concat(lua_State* L);
-extern gboolean wslua_toboolean(lua_State* L, int n);
-extern gboolean wslua_checkboolean(lua_State* L, int n);
-extern gboolean wslua_optbool(lua_State* L, int n, gboolean def);
+extern bool wslua_toboolean(lua_State* L, int n);
+extern bool wslua_checkboolean(lua_State* L, int n);
+extern bool wslua_optbool(lua_State* L, int n, bool def);
extern lua_Integer wslua_tointeger(lua_State* L, int n);
extern int wslua_optboolint(lua_State* L, int n, int def);
extern const char* wslua_checklstring_only(lua_State* L, int n, size_t *l);
extern const char* wslua_checkstring_only(lua_State* L, int n);
extern void wslua_setfuncs(lua_State *L, const luaL_Reg *l, int nup);
-extern const gchar* wslua_typeof_unknown;
-extern const gchar* wslua_typeof(lua_State *L, int idx);
-extern gboolean wslua_get_table(lua_State *L, int idx, const gchar *name);
-extern gboolean wslua_get_field(lua_State *L, int idx, const gchar *name);
+extern const char* wslua_typeof_unknown;
+extern const char* wslua_typeof(lua_State *L, int idx);
+extern bool wslua_get_table(lua_State *L, int idx, const char *name);
+extern bool wslua_get_field(lua_State *L, int idx, const char *name);
extern int dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data);
extern int heur_dissect_lua(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data);
extern expert_field* wslua_get_expert_field(const int group, const int severity);
@@ -754,7 +794,7 @@ extern void wslua_prefs_changed(void);
extern void proto_register_lua(void);
extern GString* lua_register_all_taps(void);
extern void wslua_prime_dfilter(epan_dissect_t *edt);
-extern gboolean wslua_has_field_extractors(void);
+extern bool wslua_has_field_extractors(void);
extern void lua_prime_all_fields(proto_tree* tree);
extern int Proto_commit(lua_State* L);
@@ -763,15 +803,15 @@ extern TreeItem create_TreeItem(proto_tree* tree, proto_item* item);
extern void clear_outstanding_FuncSavers(void);
-extern void Int64_pack(lua_State* L, luaL_Buffer *b, gint idx, gboolean asLittleEndian);
-extern int Int64_unpack(lua_State* L, const gchar *buff, gboolean asLittleEndian);
-extern void UInt64_pack(lua_State* L, luaL_Buffer *b, gint idx, gboolean asLittleEndian);
-extern int UInt64_unpack(lua_State* L, const gchar *buff, gboolean asLittleEndian);
-extern guint64 getUInt64(lua_State *L, int i);
+extern void Int64_pack(lua_State* L, luaL_Buffer *b, int idx, bool asLittleEndian);
+extern int Int64_unpack(lua_State* L, const char *buff, bool asLittleEndian);
+extern void UInt64_pack(lua_State* L, luaL_Buffer *b, int idx, bool asLittleEndian);
+extern int UInt64_unpack(lua_State* L, const char *buff, bool asLittleEndian);
+extern uint64_t getUInt64(lua_State *L, int i);
extern Tvb* push_Tvb(lua_State* L, tvbuff_t* tvb);
extern int push_wsluaTvb(lua_State* L, Tvb t);
-extern gboolean push_TvbRange(lua_State* L, tvbuff_t* tvb, int offset, int len);
+extern bool push_TvbRange(lua_State* L, tvbuff_t* tvb, int offset, int len);
extern void clear_outstanding_Tvb(void);
extern void clear_outstanding_TvbRange(void);
@@ -790,26 +830,23 @@ extern void clear_outstanding_FieldInfo(void);
extern void wslua_print_stack(char* s, lua_State* L);
-extern void wslua_init(register_cb cb, gpointer client_data);
+extern void wslua_init(register_cb cb, void *client_data);
extern void wslua_early_cleanup(void);
extern void wslua_cleanup(void);
-extern tap_extractor_t wslua_get_tap_extractor(const gchar* name);
+extern tap_extractor_t wslua_get_tap_extractor(const char* name);
extern int wslua_set_tap_enums(lua_State* L);
extern ProtoField wslua_is_field_available(lua_State* L, const char* field_abbr);
extern char* wslua_get_actual_filename(const char* fname);
-extern int wslua_bin2hex(lua_State* L, const guint8* data, const guint len, const gboolean lowercase, const gchar* sep);
-extern int wslua_hex2bin(lua_State* L, const char* data, const guint len, const gchar* sep);
+extern int wslua_bin2hex(lua_State* L, const uint8_t* data, const unsigned len, const bool lowercase, const char* sep);
+extern int wslua_hex2bin(lua_State* L, const char* data, const unsigned len, const char* sep);
extern int luaopen_rex_pcre2(lua_State *L);
-extern const gchar* get_current_plugin_version(void);
-extern const gchar* get_current_plugin_description(void);
-extern const gchar* get_current_plugin_repository(void);
-extern const gchar* get_current_plugin_spdx_id(void);
-extern void clear_current_plugin_info(void);
+extern const char* get_current_plugin_version(void);
+extern void clear_current_plugin_version(void);
extern int wslua_deregister_heur_dissectors(lua_State* L);
extern int wslua_deregister_protocols(lua_State* L);
diff --git a/epan/wslua/wslua_address.c b/epan/wslua/wslua_address.c
index ea89af3a50..7bba186382 100644
--- a/epan/wslua/wslua_address.c
+++ b/epan/wslua/wslua_address.c
@@ -31,8 +31,8 @@ WSLUA_CONSTRUCTOR Address_ip(lua_State* L) {
#define WSLUA_ARG_Address_ip_HOSTNAME 1 /* The address or name of the IP host. */
Address addr = (Address)g_malloc(sizeof(address));
- guint32 ip_addr;
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_Address_ip_HOSTNAME);
+ uint32_t ip_addr;
+ const char* name = luaL_checkstring(L,WSLUA_ARG_Address_ip_HOSTNAME);
if (! get_host_ipaddr(name, &ip_addr)) {
ip_addr = 0;
@@ -49,7 +49,7 @@ WSLUA_CONSTRUCTOR Address_ipv6(lua_State* L) {
#define WSLUA_ARG_Address_ipv6_HOSTNAME 1 /* The address or name of the IP host. */
Address addr = (Address)g_malloc(sizeof(address));
ws_in6_addr ip_addr;
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_Address_ipv6_HOSTNAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_Address_ipv6_HOSTNAME);
if (!get_host_ipaddr6(name, &ip_addr)) {
memset(&ip_addr, 0, sizeof(ip_addr));
@@ -65,8 +65,8 @@ WSLUA_CONSTRUCTOR Address_ether(lua_State *L) {
#define WSLUA_ARG_Address_ether_ETH 1 /* The Ethernet address. */
Address addr = (Address)g_malloc(sizeof(address));
- const gchar *name = luaL_checkstring(L, WSLUA_ARG_Address_ether_ETH);
- guint8 eth_buf[6];
+ const char *name = luaL_checkstring(L, WSLUA_ARG_Address_ether_ETH);
+ uint8_t eth_buf[6];
if(!str_to_eth(name, eth_buf))
memset(eth_buf, 0, sizeof(eth_buf));
@@ -191,7 +191,7 @@ WSLUA_METHODS Address_methods[] = {
WSLUA_METAMETHOD Address__tostring(lua_State* L) {
Address addr = checkAddress(L,1);
- gchar *str = address_to_display(NULL, addr);
+ char *str = address_to_display(NULL, addr);
lua_pushstring(L, str);
@@ -215,10 +215,10 @@ static int Address__gc(lua_State* L) {
WSLUA_METAMETHOD Address__eq(lua_State* L) { /* Compares two Addresses. */
Address addr1 = checkAddress(L,1);
Address addr2 = checkAddress(L,2);
- gboolean result = FALSE;
+ bool result = false;
if (addresses_equal(addr1, addr2))
- result = TRUE;
+ result = true;
lua_pushboolean(L,result);
@@ -228,10 +228,10 @@ WSLUA_METAMETHOD Address__eq(lua_State* L) { /* Compares two Addresses. */
WSLUA_METAMETHOD Address__le(lua_State* L) { /* Compares two Addresses. */
Address addr1 = checkAddress(L,1);
Address addr2 = checkAddress(L,2);
- gboolean result = FALSE;
+ bool result = false;
if (cmp_address(addr1, addr2) <= 0)
- result = TRUE;
+ result = true;
lua_pushboolean(L,result);
@@ -241,10 +241,10 @@ WSLUA_METAMETHOD Address__le(lua_State* L) { /* Compares two Addresses. */
WSLUA_METAMETHOD Address__lt(lua_State* L) { /* Compares two Addresses. */
Address addr1 = checkAddress(L,1);
Address addr2 = checkAddress(L,2);
- gboolean result = FALSE;
+ bool result = false;
if (cmp_address(addr1, addr2) < 0)
- result = TRUE;
+ result = true;
lua_pushboolean(L,result);
diff --git a/epan/wslua/wslua_byte_array.c b/epan/wslua/wslua_byte_array.c
index a1dbc9e5a8..041555062f 100644
--- a/epan/wslua/wslua_byte_array.c
+++ b/epan/wslua/wslua_byte_array.c
@@ -46,29 +46,29 @@ WSLUA_CONSTRUCTOR ByteArray_new(lua_State* L) {
or if the boolean value `true` is used, then the first argument
is treated as raw binary data */
GByteArray* ba = g_byte_array_new();
- const gchar* s;
+ const char* s;
size_t len = 0;
- const gchar* sep = " ";
- gboolean ishex = TRUE;
+ const char* sep = " ";
+ bool ishex = true;
if (lua_gettop(L) >= 1) {
s = luaL_checklstring(L,WSLUA_OPTARG_ByteArray_new_HEXBYTES,&len);
if (lua_gettop(L) >= 2) {
if (lua_type(L,2) == LUA_TBOOLEAN && lua_toboolean(L,2)) {
- ishex = FALSE;
+ ishex = false;
} else {
sep = luaL_optstring(L,WSLUA_OPTARG_ByteArray_new_SEPARATOR," ");
}
}
if (ishex) {
- wslua_hex2bin(L, s, (guint)len, sep); /* this pushes a new string on top of stack */
+ wslua_hex2bin(L, s, (unsigned)len, sep); /* this pushes a new string on top of stack */
s = luaL_checklstring(L, -1, &len); /* get the new binary string */
- g_byte_array_append(ba,s,(guint)len); /* copy it into ByteArray */
+ g_byte_array_append(ba,s,(unsigned)len); /* copy it into ByteArray */
lua_pop(L,1); /* pop the newly created string */
} else {
- g_byte_array_append(ba,s,(guint)len);
+ g_byte_array_append(ba,s,(unsigned)len);
}
}
@@ -83,7 +83,7 @@ static int ByteArray__gc(lua_State* L) {
if (!ba) return 0;
- g_byte_array_free(ba,TRUE);
+ g_byte_array_free(ba,true);
return 0;
}
@@ -105,19 +105,16 @@ WSLUA_METAMETHOD ByteArray__concat(lua_State* L) {
}
WSLUA_METAMETHOD ByteArray__eq(lua_State* L) {
- /* Compares two ByteArray values.
-
- @since 1.11.4
- */
+ /* Compares two ByteArray values. */
#define WSLUA_ARG_ByteArray__eq_FIRST 1 /* First array. */
#define WSLUA_ARG_ByteArray__eq_SECOND 2 /* Second array. */
ByteArray ba1 = checkByteArray(L,WSLUA_ARG_ByteArray__eq_FIRST);
ByteArray ba2 = checkByteArray(L,WSLUA_ARG_ByteArray__eq_SECOND);
- gboolean result = FALSE;
+ bool result = false;
if (ba1->len == ba2->len) {
if (memcmp(ba1->data, ba2->data, ba1->len) == 0)
- result = TRUE;
+ result = true;
}
lua_pushboolean(L,result);
@@ -153,17 +150,17 @@ WSLUA_METHOD ByteArray_set_size(lua_State* L) {
ByteArray ba = checkByteArray(L,1);
int siz = (int)luaL_checkinteger(L,WSLUA_ARG_ByteArray_set_size_SIZE);
- guint8* padding;
+ uint8_t* padding;
if (siz < 0) {
WSLUA_ERROR(ByteArray_set_size,"ByteArray size must be non-negative");
return 0;
}
- if (ba->len >= (guint)siz) { /* truncate */
+ if (ba->len >= (unsigned)siz) { /* truncate */
g_byte_array_set_size(ba,siz);
} else { /* fill */
- padding = (guint8 *)g_malloc0(sizeof(guint8)*(siz - ba->len));
+ padding = (uint8_t *)g_malloc0(sizeof(uint8_t)*(siz - ba->len));
g_byte_array_append(ba,padding,siz - ba->len);
g_free(padding);
}
@@ -183,7 +180,7 @@ WSLUA_METHOD ByteArray_set_index(lua_State* L) {
return 0;
}
- if (idx < 0 || (guint)idx >= ba->len) {
+ if (idx < 0 || (unsigned)idx >= ba->len) {
luaL_argerror(L,2,"index out of range");
return 0;
}
@@ -193,7 +190,7 @@ WSLUA_METHOD ByteArray_set_index(lua_State* L) {
return 0;
}
- ba->data[idx] = (guint8)v;
+ ba->data[idx] = (uint8_t)v;
return 0;
}
@@ -210,7 +207,7 @@ WSLUA_METHOD ByteArray_get_index(lua_State* L) {
return 0;
}
- if (idx < 0 || (guint)idx >= ba->len) {
+ if (idx < 0 || (unsigned)idx >= ba->len) {
luaL_argerror(L,2,"index out of range");
return 0;
}
@@ -222,7 +219,7 @@ WSLUA_METHOD ByteArray_get_index(lua_State* L) {
WSLUA_METHOD ByteArray_le_int(lua_State* L) {
/* Read a little endian encoded signed integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_le_int_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_le_int_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -230,7 +227,7 @@ WSLUA_METHOD ByteArray_le_int(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_int_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_int_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_le_int_OFFSET, "offset out of bounds");
return 0;
}
@@ -244,15 +241,15 @@ WSLUA_METHOD ByteArray_le_int(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- gint32 value = (gint8)ba->data[offset + len - 1];
+ int32_t value = (int8_t)ba->data[offset + len - 1];
for (int i = len - 2; i >= 0; i--) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
lua_pushinteger(L, value);
@@ -263,7 +260,7 @@ WSLUA_METHOD ByteArray_le_int(lua_State* L) {
WSLUA_METHOD ByteArray_le_int64(lua_State* L) {
/* Read a little endian encoded 64 bit signed integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_le_int64_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_le_int64_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -271,7 +268,7 @@ WSLUA_METHOD ByteArray_le_int64(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_int64_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_int64_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_le_int64_OFFSET, "offset out of bounds");
return 0;
}
@@ -285,15 +282,15 @@ WSLUA_METHOD ByteArray_le_int64(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- gint64 value = (gint8)ba->data[offset + len - 1];
+ int64_t value = (int8_t)ba->data[offset + len - 1];
for (int i = len - 2; i >= 0; i--) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
pushInt64(L, value);
@@ -304,7 +301,7 @@ WSLUA_METHOD ByteArray_le_int64(lua_State* L) {
WSLUA_METHOD ByteArray_le_uint(lua_State* L) {
/* Read a little endian encoded unsigned integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_le_uint_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_le_uint_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -312,7 +309,7 @@ WSLUA_METHOD ByteArray_le_uint(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_uint_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_uint_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_le_uint_OFFSET, "offset out of bounds");
return 0;
}
@@ -326,15 +323,15 @@ WSLUA_METHOD ByteArray_le_uint(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- guint32 value = (guint8)ba->data[offset + len - 1];
+ uint32_t value = (uint8_t)ba->data[offset + len - 1];
for (int i = len - 2; i >= 0; i--) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
lua_pushinteger(L, value);
@@ -345,7 +342,7 @@ WSLUA_METHOD ByteArray_le_uint(lua_State* L) {
WSLUA_METHOD ByteArray_le_uint64(lua_State* L) {
/* Read a little endian encoded 64 bit unsigned integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_le_uint64_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_le_uint64_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -353,7 +350,7 @@ WSLUA_METHOD ByteArray_le_uint64(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_uint64_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_le_uint64_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_le_uint64_OFFSET, "offset out of bounds");
return 0;
}
@@ -367,15 +364,15 @@ WSLUA_METHOD ByteArray_le_uint64(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- guint64 value = (guint8)ba->data[offset + len - 1];
+ uint64_t value = (uint8_t)ba->data[offset + len - 1];
for (int i = len - 2; i >= 0; i--) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
pushUInt64(L, value);
@@ -386,7 +383,7 @@ WSLUA_METHOD ByteArray_le_uint64(lua_State* L) {
WSLUA_METHOD ByteArray_int(lua_State* L) {
/* Read a big endian encoded signed integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_int_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_int_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -394,7 +391,7 @@ WSLUA_METHOD ByteArray_int(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_int_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_int_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_int_OFFSET, "offset out of bounds");
return 0;
}
@@ -408,15 +405,15 @@ WSLUA_METHOD ByteArray_int(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- gint32 value = (gint8)ba->data[offset];
+ int32_t value = (int8_t)ba->data[offset];
for (int i = 1; i < len; i++) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
lua_pushinteger(L, value);
@@ -427,7 +424,7 @@ WSLUA_METHOD ByteArray_int(lua_State* L) {
WSLUA_METHOD ByteArray_int64(lua_State* L) {
/* Read a big endian encoded 64 bit signed integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_int64_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_int64_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -435,7 +432,7 @@ WSLUA_METHOD ByteArray_int64(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_int64_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_int64_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_int64_OFFSET, "offset out of bounds");
return 0;
}
@@ -449,15 +446,15 @@ WSLUA_METHOD ByteArray_int64(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- gint64 value = (gint8)ba->data[offset];
+ int64_t value = (int8_t)ba->data[offset];
for (int i = 1; i < len; i++) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
pushInt64(L, value);
@@ -468,7 +465,7 @@ WSLUA_METHOD ByteArray_int64(lua_State* L) {
WSLUA_METHOD ByteArray_uint(lua_State* L) {
/* Read a big endian encoded unsigned integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_uint_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_uint_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -476,7 +473,7 @@ WSLUA_METHOD ByteArray_uint(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_uint_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_uint_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_uint_OFFSET, "offset out of bounds");
return 0;
}
@@ -490,15 +487,15 @@ WSLUA_METHOD ByteArray_uint(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- guint32 value = (guint8)ba->data[offset];
+ uint32_t value = (uint8_t)ba->data[offset];
for (int i = 1; i < len; i++) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
lua_pushinteger(L, value);
@@ -509,7 +506,7 @@ WSLUA_METHOD ByteArray_uint(lua_State* L) {
WSLUA_METHOD ByteArray_uint64(lua_State* L) {
/* Read a big endian encoded 64 bit unsigned integer in a <<lua_class_ByteArray,`ByteArray`>> beginning at given offset with given length.
- @since 4.1.0
+ @since 4.2.0
*/
#define WSLUA_OPTARG_ByteArray_uint64_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_ByteArray_uint64_LENGTH 3 /* The length of the integer. Default is -1, or the remaining bytes in the <<lua_class_ByteArray,`ByteArray`>>. */
@@ -517,7 +514,7 @@ WSLUA_METHOD ByteArray_uint64(lua_State* L) {
int offset = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_uint64_OFFSET, 0);
int len = (int)luaL_optinteger(L, WSLUA_OPTARG_ByteArray_uint64_LENGTH, -1);
- if (offset < 0 || (guint)offset >= ba->len) {
+ if (offset < 0 || (unsigned)offset >= ba->len) {
luaL_argerror(L, WSLUA_OPTARG_ByteArray_uint64_OFFSET, "offset out of bounds");
return 0;
}
@@ -531,15 +528,15 @@ WSLUA_METHOD ByteArray_uint64(lua_State* L) {
return 0;
}
- if ((guint)(offset + len) > ba->len) {
+ if ((unsigned)(offset + len) > ba->len) {
luaL_error(L, "range out of bounds");
return 0;
}
- guint64 value = (guint8)ba->data[offset];
+ uint64_t value = (uint8_t)ba->data[offset];
for (int i = 1; i < len; i++) {
value <<= 8;
- value |= (guint8)ba->data[offset + i];
+ value |= (uint8_t)ba->data[offset + i];
}
pushUInt64(L, value);
@@ -579,14 +576,11 @@ WSLUA_METHOD ByteArray_subset(lua_State* L) {
}
WSLUA_METHOD ByteArray_base64_decode(lua_State* L) {
- /* Obtain a Base64 decoded <<lua_class_ByteArray,`ByteArray`>>.
-
- @since 1.11.3
- */
+ /* Obtain a Base64 decoded <<lua_class_ByteArray,`ByteArray`>>. */
ByteArray ba = checkByteArray(L,1);
ByteArray ba2;
- gchar *data;
- gsize len = ba->len;
+ char *data;
+ size_t len = ba->len;
if ((len % 4) != 0) {
len += 4 - (len % 4);
@@ -594,7 +588,7 @@ WSLUA_METHOD ByteArray_base64_decode(lua_State* L) {
ba2 = g_byte_array_new();
if (ba->len > 1) {
- data = (gchar*)g_malloc(len + 1);
+ data = (char*)g_malloc(len + 1);
memcpy(data, ba->data, ba->len);
if (len > ba->len) {
memcpy(data + ba->len, "====", len - ba->len);
@@ -611,14 +605,11 @@ WSLUA_METHOD ByteArray_base64_decode(lua_State* L) {
}
WSLUA_METHOD ByteArray_raw(lua_State* L) {
- /* Obtain a Lua string of the binary bytes in a <<lua_class_ByteArray,`ByteArray`>>.
-
- @since 1.11.3
- */
+ /* Obtain a Lua string of the binary bytes in a <<lua_class_ByteArray,`ByteArray`>>. */
#define WSLUA_OPTARG_ByteArray_raw_OFFSET 2 /* The position of the first byte (default=0/first). */
#define WSLUA_OPTARG_ByteArray_raw_LENGTH 3 /* The length of the segment to get (default=all). */
ByteArray ba = checkByteArray(L,1);
- guint offset = (guint) luaL_optinteger(L,WSLUA_OPTARG_ByteArray_raw_OFFSET,0);
+ unsigned offset = (unsigned) luaL_optinteger(L,WSLUA_OPTARG_ByteArray_raw_OFFSET,0);
int len;
if (!ba) return 0;
@@ -628,7 +619,7 @@ WSLUA_METHOD ByteArray_raw(lua_State* L) {
}
len = (int) luaL_optinteger(L,WSLUA_OPTARG_ByteArray_raw_LENGTH, ba->len - offset);
- if ((len < 0) || ((guint)len > (ba->len - offset)))
+ if ((len < 0) || ((unsigned)len > (ba->len - offset)))
len = ba->len - offset;
lua_pushlstring(L, &(ba->data[offset]), len);
@@ -637,19 +628,16 @@ WSLUA_METHOD ByteArray_raw(lua_State* L) {
}
WSLUA_METHOD ByteArray_tohex(lua_State* L) {
- /* Obtain a Lua string of the bytes in a <<lua_class_ByteArray,`ByteArray`>> as hex-ascii, with given separator
-
- @since 1.11.3
- */
+ /* Obtain a Lua string of the bytes in a <<lua_class_ByteArray,`ByteArray`>> as hex-ascii, with given separator. */
#define WSLUA_OPTARG_ByteArray_tohex_LOWERCASE 2 /* True to use lower-case hex characters (default=false). */
#define WSLUA_OPTARG_ByteArray_tohex_SEPARATOR 3 /* A string separator to insert between hex bytes (default=nil). */
ByteArray ba = checkByteArray(L,1);
- gboolean lowercase = FALSE;
- const gchar* sep = NULL;
+ bool lowercase = false;
+ const char* sep = NULL;
if (!ba) return 0;
- lowercase = wslua_optbool(L,WSLUA_OPTARG_ByteArray_tohex_LOWERCASE,FALSE);
+ lowercase = wslua_optbool(L,WSLUA_OPTARG_ByteArray_tohex_LOWERCASE,false);
sep = luaL_optstring(L,WSLUA_OPTARG_ByteArray_tohex_SEPARATOR,NULL);
wslua_bin2hex(L, ba->data, ba->len, lowercase, sep);
@@ -664,7 +652,7 @@ WSLUA_METAMETHOD ByteArray__tostring(lua_State* L) {
if (!ba) return 0;
- wslua_bin2hex(L, ba->data, ba->len, FALSE, NULL);
+ wslua_bin2hex(L, ba->data, ba->len, false, NULL);
WSLUA_RETURN(1); /* A hex-ascii string representation of the <<lua_class_ByteArray,`ByteArray`>>. */
}
@@ -690,8 +678,8 @@ WSLUA_METHOD ByteArray_tvb (lua_State *L) {
*/
#define WSLUA_ARG_ByteArray_tvb_NAME 2 /* The name to be given to the new data source. */
ByteArray ba = checkByteArray(L,1);
- const gchar* name = luaL_optstring(L,WSLUA_ARG_ByteArray_tvb_NAME,"Unnamed") ;
- guint8* data;
+ const char* name = luaL_optstring(L,WSLUA_ARG_ByteArray_tvb_NAME,"Unnamed") ;
+ uint8_t* data;
Tvb tvb;
if (!lua_tvb) {
@@ -699,12 +687,12 @@ WSLUA_METHOD ByteArray_tvb (lua_State *L) {
return 0;
}
- data = (guint8 *)g_memdup2(ba->data, ba->len);
+ data = (uint8_t *)g_memdup2(ba->data, ba->len);
tvb = (Tvb)g_malloc(sizeof(struct _wslua_tvb));
tvb->ws_tvb = tvb_new_child_real_data(lua_tvb, data, ba->len,ba->len);
- tvb->expired = FALSE;
- tvb->need_free = FALSE;
+ tvb->expired = false;
+ tvb->need_free = false;
tvb_set_free_cb(tvb->ws_tvb, g_free);
add_new_data_source(lua_pinfo, tvb->ws_tvb, name);
diff --git a/epan/wslua/wslua_capture_info.c b/epan/wslua/wslua_capture_info.c
index 06bf847df5..a156351a98 100644
--- a/epan/wslua/wslua_capture_info.c
+++ b/epan/wslua/wslua_capture_info.c
@@ -33,11 +33,9 @@ WSLUA_CLASS_DEFINE(CaptureInfo,FAIL_ON_NULL_OR_EXPIRED("CaptureInfo"));
In other words, when the Lua plugin's `FileHandler.read_open()` function is invoked, a
`CaptureInfo` object will be passed in as one of the arguments, and its fields
should be written to by your Lua code to tell Wireshark about the capture.
-
- @since 1.11.3
*/
-CaptureInfo* push_CaptureInfo(lua_State* L, wtap *wth, const gboolean first_time) {
+CaptureInfo* push_CaptureInfo(lua_State* L, wtap *wth, const bool first_time) {
CaptureInfo f;
if (!wth) {
@@ -48,7 +46,7 @@ CaptureInfo* push_CaptureInfo(lua_State* L, wtap *wth, const gboolean first_time
f = (CaptureInfo) g_malloc0(sizeof(struct _wslua_captureinfo));
f->wth = wth;
f->wdh = NULL;
- f->expired = FALSE;
+ f->expired = false;
if (first_time) {
/* XXX: need to do this? */
@@ -87,22 +85,22 @@ static int CaptureInfo__gc(lua_State* L) {
See `wtap_encaps` for available types. Set to `wtap_encaps.PER_PACKET` if packets can
have different types, then later set `FrameInfo.encap` for each packet during `read()`/`seek_read()`.
*/
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(CaptureInfo,encap,wth->file_encap);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(CaptureInfo,encap,wth->file_encap,int);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(CaptureInfo,encap,wth->file_encap);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(CaptureInfo,encap,wth->file_encap,int);
/* WSLUA_ATTRIBUTE CaptureInfo_time_precision RW The precision of the packet timestamps in the file.
See `wtap_file_tsprec` for available precisions.
*/
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(CaptureInfo,time_precision,wth->file_tsprec);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(CaptureInfo,time_precision,wth->file_tsprec,int);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(CaptureInfo,time_precision,wth->file_tsprec);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(CaptureInfo,time_precision,wth->file_tsprec,int);
/* WSLUA_ATTRIBUTE CaptureInfo_snapshot_length RW The maximum packet length that could be recorded.
Setting it to `0` means unknown.
*/
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(CaptureInfo,snapshot_length,wth->snapshot_length);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(CaptureInfo,snapshot_length,wth->snapshot_length,guint);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(CaptureInfo,snapshot_length,wth->snapshot_length);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(CaptureInfo,snapshot_length,wth->snapshot_length,unsigned);
/* WSLUA_ATTRIBUTE CaptureInfo_comment RW A string comment for the whole capture file,
or nil if there is no `comment`. */
@@ -147,7 +145,7 @@ static int CaptureInfo_set_hosts(lua_State* L) {
const char *name = NULL;
size_t addr_len = 0;
size_t name_len = 0;
- guint32 v4_addr = 0;
+ uint32_t v4_addr = 0;
ws_in6_addr v6_addr = { {0} };
if (!wth->add_new_ipv4 || !wth->add_new_ipv6) {
@@ -190,7 +188,7 @@ static int CaptureInfo_set_hosts(lua_State* L) {
}
name = luaL_checklstring(L,-1,&name_len);
- wth->add_new_ipv4(v4_addr, name, FALSE);
+ wth->add_new_ipv4(v4_addr, name, false);
/* removes 'value'; keeps 'key' for next iteration */
lua_pop(L, 1);
@@ -233,7 +231,7 @@ static int CaptureInfo_set_hosts(lua_State* L) {
}
name = luaL_checklstring(L,-1,&name_len);
- wth->add_new_ipv6((const void *)(&v6_addr), name, FALSE);
+ wth->add_new_ipv6((const void *)(&v6_addr), name, false);
/* removes 'value'; keeps 'key' for next iteration */
lua_pop(L, 1);
@@ -309,8 +307,6 @@ WSLUA_CLASS_DEFINE(CaptureInfoConst,FAIL_ON_NULL_OR_EXPIRED("CaptureInfoConst"))
In other words, when the Lua plugin's FileHandler `write_open` function is invoked, a
`CaptureInfoConst` object will be passed in as one of the arguments, and its fields
should be read from by your Lua code to get data about the capture that needs to be written.
-
- @since 1.11.3
*/
CaptureInfoConst* push_CaptureInfoConst(lua_State* L, wtap_dumper *wdh) {
@@ -324,7 +320,7 @@ CaptureInfoConst* push_CaptureInfoConst(lua_State* L, wtap_dumper *wdh) {
f = (CaptureInfoConst) g_malloc0(sizeof(struct _wslua_captureinfo));
f->wth = NULL;
f->wdh = wdh;
- f->expired = FALSE;
+ f->expired = false;
return pushCaptureInfoConst(L,f);
}
@@ -344,18 +340,18 @@ WSLUA_METAMETHOD CaptureInfoConst__tostring(lua_State* L) {
}
/* WSLUA_ATTRIBUTE CaptureInfoConst_type RO The file type. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(CaptureInfoConst,type,wdh->file_type_subtype);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(CaptureInfoConst,type,wdh->file_type_subtype);
/* WSLUA_ATTRIBUTE CaptureInfoConst_snapshot_length RO The maximum packet length that is actually recorded (vs. the original
length of any given packet on-the-wire). A value of `0` means the snapshot length is unknown or there is no one
such length for the whole file. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(CaptureInfoConst,snapshot_length,wdh->snaplen);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(CaptureInfoConst,snapshot_length,wdh->snaplen);
/* WSLUA_ATTRIBUTE CaptureInfoConst_encap RO The packet encapsulation type for the whole file.
See `wtap_encaps` for available types. It is set to `wtap_encaps.PER_PACKET` if packets can
have different types, in which case each Frame identifies its type, in `FrameInfo.packet_encap`. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(CaptureInfoConst,encap,wdh->file_encap);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(CaptureInfoConst,encap,wdh->file_encap);
/* WSLUA_ATTRIBUTE CaptureInfoConst_comment RW A comment for the whole capture file, if the
`wtap_presence_flags.COMMENTS` was set in the presence flags; nil if there is no comment. */
diff --git a/epan/wslua/wslua_column.c b/epan/wslua/wslua_column.c
index 5ae0c4cca1..05c4450977 100644
--- a/epan/wslua/wslua_column.c
+++ b/epan/wslua/wslua_column.c
@@ -22,11 +22,11 @@
/* WSLUA_CONTINUE_MODULE Pinfo */
-static GPtrArray* outstanding_Column = NULL;
-static GPtrArray* outstanding_Columns = NULL;
+static GPtrArray* outstanding_Column;
+static GPtrArray* outstanding_Columns;
-CLEAR_OUTSTANDING(Column,expired, TRUE)
-CLEAR_OUTSTANDING(Columns,expired, TRUE)
+CLEAR_OUTSTANDING(Column,expired, true)
+CLEAR_OUTSTANDING(Columns,expired, true)
#define PUSH_COLUMN(L,c) {g_ptr_array_add(outstanding_Column,c);pushColumn(L,c);}
@@ -40,7 +40,7 @@ void Push_Columns(lua_State *L, Columns c)
WSLUA_CLASS_DEFINE(Column,FAIL_ON_NULL("Column")); /* A Column in the packet list. */
struct col_names_t {
- const gchar* name;
+ const char* name;
int id;
};
@@ -91,7 +91,7 @@ static const struct col_names_t colnames[] = {
{NULL,0}
};
-static gint col_name_to_id(const gchar* name) {
+static int col_name_to_id(const char* name) {
const struct col_names_t* cn;
for(cn = colnames; cn->name; cn++) {
if (g_str_equal(cn->name,name)) {
@@ -102,7 +102,7 @@ static gint col_name_to_id(const gchar* name) {
return 0;
}
-static const gchar* col_id_to_name(gint id) {
+static const char* col_id_to_name(int id) {
const struct col_names_t* cn;
for(cn = colnames; cn->name; cn++) {
if ( cn->id == id ) {
@@ -115,7 +115,7 @@ static const gchar* col_id_to_name(gint id) {
WSLUA_METAMETHOD Column__tostring(lua_State *L) {
Column c = checkColumn(L,1);
- const gchar* text;
+ const char* text;
if (!c->cinfo) {
text = col_id_to_name(c->col);
@@ -136,7 +136,7 @@ static int Column__gc(lua_State* L) {
if (!col) return 0;
if (!col->expired)
- col->expired = TRUE;
+ col->expired = true;
else
g_free(col);
@@ -159,7 +159,7 @@ WSLUA_METHOD Column_set(lua_State *L) {
/* Sets the text of a Column. */
#define WSLUA_ARG_Column_set_TEXT 2 /* The text to which to set the Column. */
Column c = checkColumn(L,1);
- const gchar* s = luaL_checkstring(L,WSLUA_ARG_Column_set_TEXT);
+ const char* s = luaL_checkstring(L,WSLUA_ARG_Column_set_TEXT);
if (!(c->cinfo))
return 0;
@@ -173,7 +173,7 @@ WSLUA_METHOD Column_append(lua_State *L) {
/* Appends text to a Column. */
#define WSLUA_ARG_Column_append_TEXT 2 /* The text to append to the Column. */
Column c = checkColumn(L,1);
- const gchar* s = luaL_checkstring(L,WSLUA_ARG_Column_append_TEXT);
+ const char* s = luaL_checkstring(L,WSLUA_ARG_Column_append_TEXT);
if (!(c->cinfo))
return 0;
@@ -187,7 +187,7 @@ WSLUA_METHOD Column_prepend(lua_State *L) {
/* Prepends text to a Column. */
#define WSLUA_ARG_Column_prepend_TEXT 2 /* The text to prepend to the Column. */
Column c = checkColumn(L,1);
- const gchar* s = luaL_checkstring(L,WSLUA_ARG_Column_prepend_TEXT);
+ const char* s = luaL_checkstring(L,WSLUA_ARG_Column_prepend_TEXT);
if (!(c->cinfo))
return 0;
@@ -198,10 +198,7 @@ WSLUA_METHOD Column_prepend(lua_State *L) {
}
WSLUA_METHOD Column_fence(lua_State *L) {
- /* Sets Column text fence, to prevent overwriting.
-
- @since 1.10.6
- */
+ /* Sets Column text fence, to prevent overwriting. */
Column c = checkColumn(L,1);
if (c->cinfo)
@@ -211,10 +208,7 @@ WSLUA_METHOD Column_fence(lua_State *L) {
}
WSLUA_METHOD Column_clear_fence(lua_State *L) {
- /* Clear Column text fence.
-
- @since 1.11.3
- */
+ /* Clear Column text fence. */
Column c = checkColumn(L,1);
if (c->cinfo)
@@ -361,7 +355,7 @@ WSLUA_METAMETHOD Columns__index(lua_State *L) {
Column c = (Column)g_malloc(sizeof(struct _wslua_col_info));
c->cinfo = NULL;
c->col = col_name_to_id(colname);
- c->expired = FALSE;
+ c->expired = false;
PUSH_COLUMN(L,c);
return 1;
@@ -378,7 +372,7 @@ WSLUA_METAMETHOD Columns__index(lua_State *L) {
Column c = (Column)g_malloc(sizeof(struct _wslua_col_info));
c->cinfo = cols->cinfo;
c->col = col_name_to_id(colname);
- c->expired = FALSE;
+ c->expired = false;
PUSH_COLUMN(L,c);
return 1;
@@ -402,7 +396,7 @@ static int Columns__gc(lua_State* L) {
if (!cols) return 0;
if (!cols->expired)
- cols->expired = TRUE;
+ cols->expired = true;
else
g_free(cols);
diff --git a/epan/wslua/wslua_dir.c b/epan/wslua/wslua_dir.c
index 542ce0a68e..4049d780e1 100644
--- a/epan/wslua/wslua_dir.c
+++ b/epan/wslua/wslua_dir.c
@@ -29,8 +29,6 @@ WSLUA_CONSTRUCTOR Dir_make(lua_State* L) {
If the directory was created successfully, a boolean `true` is returned.
If the directory cannot be made because it already exists, `false` is returned.
If the directory cannot be made because an error occurred, `nil` is returned.
-
- @since 1.11.3
*/
#define WSLUA_ARG_Dir_make_NAME 1 /* The name of the directory, possibly including path. */
@@ -58,8 +56,6 @@ WSLUA_CONSTRUCTOR Dir_exists(lua_State* L) {
If the directory exists, a boolean `true` is returned.
If the path is a file instead, `false` is returned.
If the path does not exist or an error occurred, `nil` is returned.
-
- @since 1.11.3
*/
#define WSLUA_ARG_Dir_exists_NAME 1 /* The name of the directory, possibly including path. */
@@ -88,8 +84,6 @@ WSLUA_CONSTRUCTOR Dir_remove(lua_State* L) {
This function only removes empty directories. To remove a directory regardless,
use `Dir.remove_all()`.
-
- @since 1.11.3
*/
#define WSLUA_ARG_Dir_remove_NAME 1 /* The name of the directory, possibly including path. */
@@ -113,7 +107,7 @@ WSLUA_CONSTRUCTOR Dir_remove(lua_State* L) {
static int delete_directory(const char *directory) {
WS_DIR *dir;
WS_DIRENT *file;
- gchar *filename;
+ char *filename;
int ret = 0;
/* delete all contents of directory */
@@ -148,8 +142,6 @@ WSLUA_CONSTRUCTOR Dir_remove_all(lua_State* L) {
If the directory was removed successfully, a boolean `true` is returned.
If the directory cannot be removed because it does not exist, `false` is returned.
If the directory cannot be removed because an error occurred, `nil` is returned.
-
- @since 1.11.3
*/
#define WSLUA_ARG_Dir_remove_all_NAME 1 /* The name of the directory, possibly including path. */
@@ -236,8 +228,8 @@ WSLUA_METAMETHOD Dir__call(lua_State* L) {
*/
Dir dir = checkDir(L,1);
- const gchar* file;
- const gchar* filename;
+ const char* file;
+ const char* filename;
const char* ext;
if (!dir->dir) {
@@ -285,13 +277,10 @@ WSLUA_METHOD Dir_close(lua_State* L) {
}
WSLUA_CONSTRUCTOR Dir_personal_config_path(lua_State* L) {
- /* Gets the https://www.wireshark.org/docs/wsug_html_chunked/ChAppFilesConfigurationSection.html[personal configuration] directory path, with filename if supplied.
-
- @since 1.11.3
- */
+ /* Gets the https://www.wireshark.org/docs/wsug_html_chunked/ChAppFilesConfigurationSection.html[personal configuration] directory path, with filename if supplied. */
#define WSLUA_OPTARG_Dir_personal_config_path_FILENAME 1 /* A filename. */
const char *fname = luaL_optstring(L, WSLUA_OPTARG_Dir_personal_config_path_FILENAME,"");
- char* filename = get_persconffile_path(fname,FALSE);
+ char* filename = get_persconffile_path(fname,false);
lua_pushstring(L,filename);
g_free(filename);
@@ -299,10 +288,7 @@ WSLUA_CONSTRUCTOR Dir_personal_config_path(lua_State* L) {
}
WSLUA_CONSTRUCTOR Dir_global_config_path(lua_State* L) {
- /* Gets the https://www.wireshark.org/docs/wsug_html_chunked/ChAppFilesConfigurationSection.html[global configuration] directory path, with filename if supplied.
-
- @since 1.11.3
- */
+ /* Gets the https://www.wireshark.org/docs/wsug_html_chunked/ChAppFilesConfigurationSection.html[global configuration] directory path, with filename if supplied. */
#define WSLUA_OPTARG_Dir_global_config_path_FILENAME 1 /* A filename */
const char *fname = luaL_optstring(L, WSLUA_OPTARG_Dir_global_config_path_FILENAME,"");
char* filename;
@@ -314,19 +300,13 @@ WSLUA_CONSTRUCTOR Dir_global_config_path(lua_State* L) {
}
WSLUA_CONSTRUCTOR Dir_personal_plugins_path(lua_State* L) {
- /* Gets the personal plugins directory path.
-
- @since 1.11.3
- */
+ /* Gets the personal plugins directory path. */
lua_pushstring(L, get_plugins_pers_dir());
WSLUA_RETURN(1); /* The pathname of the https://www.wireshark.org/docs/wsug_html_chunked/ChPluginFolders.html[personal plugins] directory. */
}
WSLUA_CONSTRUCTOR Dir_global_plugins_path(lua_State* L) {
- /* Gets the global plugins directory path.
-
- @since 1.11.3
- */
+ /* Gets the global plugins directory path. */
lua_pushstring(L, get_plugins_dir());
WSLUA_RETURN(1); /* The pathname of the https://www.wireshark.org/docs/wsug_html_chunked/ChPluginFolders.html[global plugins] directory. */
}
diff --git a/epan/wslua/wslua_dissector.c b/epan/wslua/wslua_dissector.c
index c3718c0e5e..3b572821a0 100644
--- a/epan/wslua/wslua_dissector.c
+++ b/epan/wslua/wslua_dissector.c
@@ -39,7 +39,7 @@ WSLUA_CLASS_DEFINE(Dissector,NOP);
WSLUA_CONSTRUCTOR Dissector_get (lua_State *L) {
/* Obtains a dissector reference by name. */
#define WSLUA_ARG_Dissector_get_NAME 1 /* The name of the dissector. */
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_Dissector_get_NAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_Dissector_get_NAME);
Dissector d;
if ((d = find_dissector(name))) {
@@ -52,7 +52,7 @@ WSLUA_CONSTRUCTOR Dissector_get (lua_State *L) {
}
/* Allow dissector key names to be sorted alphabetically. */
-static gint
+static int
compare_dissector_key_name(gconstpointer dissector_a, gconstpointer dissector_b)
{
return strcmp((const char*)dissector_a, (const char*)dissector_b);
@@ -62,8 +62,6 @@ WSLUA_CONSTRUCTOR Dissector_list (lua_State *L) {
/* Gets a Lua array table of all registered Dissector names.
Note: This is an expensive operation, and should only be used for troubleshooting.
-
- @since 1.11.3
*/
GList* list = get_dissector_names();
GList* elist = NULL;
@@ -178,8 +176,8 @@ WSLUA_CONSTRUCTOR DissectorTable_new (lua_State *L) {
`base.OCT`, `base.DEC_HEX` or `base.HEX_DEC`.
Defaults to `base.DEC`. */
#define WSLUA_OPTARG_DissectorTable_new_PROTO 5 /* The <<lua_class_Proto,`Proto`>> object that uses this dissector table. */
- const gchar* name = (const gchar*)luaL_checkstring(L,WSLUA_ARG_DissectorTable_new_TABLENAME);
- const gchar* ui_name = (const gchar*)luaL_optstring(L,WSLUA_OPTARG_DissectorTable_new_UINAME,name);
+ const char* name = (const char*)luaL_checkstring(L,WSLUA_ARG_DissectorTable_new_TABLENAME);
+ const char* ui_name = (const char*)luaL_optstring(L,WSLUA_OPTARG_DissectorTable_new_UINAME,name);
enum ftenum type = (enum ftenum)luaL_optinteger(L,WSLUA_OPTARG_DissectorTable_new_TYPE,FT_UINT32);
unsigned base = (unsigned)luaL_optinteger(L,WSLUA_OPTARG_DissectorTable_new_BASE,BASE_DEC);
DissectorTable dt;
@@ -222,10 +220,11 @@ WSLUA_CONSTRUCTOR DissectorTable_new (lua_State *L) {
dt->table = (type == FT_NONE) ?
register_decode_as_next_proto(proto_id, name, ui_name, NULL) :
register_dissector_table(name, ui_name, proto_id, type, base);
+ dt->heur_list = NULL;
dt->name = g_strdup(name);
dt->ui_name = g_strdup(ui_name);
- dt->created = TRUE;
- dt->expired = FALSE;
+ dt->created = true;
+ dt->expired = false;
lua_rawgeti(L, LUA_REGISTRYINDEX, dissectortable_table_ref);
lua_pushstring(L, name);
@@ -237,13 +236,17 @@ WSLUA_CONSTRUCTOR DissectorTable_new (lua_State *L) {
}
WSLUA_CONSTRUCTOR DissectorTable_heuristic_new(lua_State *L) {
- /* Creates a new heuristic `DissectorTable` for your dissector's use. Returns true iff table was created successfully. */
+ /* Creates a new heuristic `DissectorTable` for your dissector's use. Returns true if table was created successfully.
+ * XXX - Currently it always returns nil.
+
+ @since 4.2.0
+ */
#define WSLUA_ARG_DissectorTable_heuristic_new_TABLENAME 1 /* The short name of the table. Use lower-case alphanumeric, dot, and/or underscores. */
#define WSLUA_OPTARG_DissectorTable_heuristic_new_UINAME 2 /* The name of the table in the user interface.
Defaults to the name given in `tablename`, but can be any string. */
#define WSLUA_ARG_DissectorTable_heuristic_new_PROTO 3 /* The <<lua_class_Proto,`Proto`>> object that uses this dissector table. */
- const gchar* name = (const gchar*)luaL_checkstring(L,WSLUA_ARG_DissectorTable_heuristic_new_TABLENAME);
- const gchar* ui_name = NULL;
+ const char* name = (const char*)luaL_checkstring(L,WSLUA_ARG_DissectorTable_heuristic_new_TABLENAME);
+ const char* ui_name = NULL;
Proto proto = NULL;
int proto_id = -1;
heur_dissector_list_t list;
@@ -263,7 +266,30 @@ WSLUA_CONSTRUCTOR DissectorTable_heuristic_new(lua_State *L) {
return 0;
}
- register_heur_dissector_list_with_description(name, ui_name, proto_id);
+
+ DissectorTable dt;
+ dt = (DissectorTable)g_malloc(sizeof(struct _wslua_distbl_t));
+ dt->table = NULL;
+ dt->heur_list = register_heur_dissector_list_with_description(name, ui_name, proto_id);
+ dt->name = g_strdup(name);
+ dt->ui_name = g_strdup(ui_name);
+ dt->created = true;
+ dt->expired = false;
+
+ lua_rawgeti(L, LUA_REGISTRYINDEX, dissectortable_table_ref);
+ lua_pushstring(L, name);
+ pushDissectorTable(L, dt);
+ lua_settable(L, -3);
+
+#if 0
+ /* Return nil because this is not a regular DissectorTable that could
+ * be used with _try, _set, _add, etc., and so we need to build checks
+ * into the functions similar to File and CaptureInfo so that it
+ * doesn't get used as one. However, not returning it means that it
+ * doesn't get properly garbage collected. */
+ pushDissectorTable(L, dt);
+ WSLUA_RETURN(1); /* The newly created DissectorTable. */
+#endif
return 0;
}
@@ -276,7 +302,7 @@ typedef struct dissector_tables_foreach_table_info {
/* this is the DATFunc_table function used for dissector_all_tables_foreach_table()
so we can get all dissector_table names. This pushes the name into a table at stack index 1 */
static void
-dissector_tables_list_func(const gchar *table_name, const gchar *ui_name _U_, gpointer user_data) {
+dissector_tables_list_func(const char *table_name, const char *ui_name _U_, void *user_data) {
dissector_tables_foreach_table_info_t *data = (dissector_tables_foreach_table_info_t*) user_data;
lua_pushstring(data->L, table_name);
lua_rawseti(data->L, 1, data->num);
@@ -288,14 +314,12 @@ WSLUA_CONSTRUCTOR DissectorTable_list (lua_State *L) {
use for the first argument to DissectorTable.get().
Note: This is an expensive operation, and should only be used for troubleshooting.
-
- @since 1.11.3
*/
dissector_tables_foreach_table_info_t data = { 1, L };
lua_newtable(L);
- dissector_all_tables_foreach_table(dissector_tables_list_func, (gpointer)&data,
+ dissector_all_tables_foreach_table(dissector_tables_list_func, (void *)&data,
(GCompareFunc)compare_dissector_key_name);
WSLUA_RETURN(1); /* The array table of registered DissectorTable names. */
@@ -304,7 +328,7 @@ WSLUA_CONSTRUCTOR DissectorTable_list (lua_State *L) {
/* this is the DATFunc_heur_table function used for dissector_all_heur_tables_foreach_table()
so we can get all heuristic dissector list names. This pushes the name into a table at stack index 1 */
static void
-heur_dissector_tables_list_func(const gchar *table_name, struct heur_dissector_list *table _U_, gpointer user_data) {
+heur_dissector_tables_list_func(const char *table_name, struct heur_dissector_list *table _U_, void *user_data) {
dissector_tables_foreach_table_info_t *data = (dissector_tables_foreach_table_info_t*) user_data;
lua_pushstring(data->L, table_name);
lua_rawseti(data->L, 1, data->num);
@@ -316,14 +340,12 @@ WSLUA_CONSTRUCTOR DissectorTable_heuristic_list (lua_State *L) {
use for the first argument in Proto:register_heuristic().
Note: This is an expensive operation, and should only be used for troubleshooting.
-
- @since 1.11.3
*/
dissector_tables_foreach_table_info_t data = { 1, L };
lua_newtable(L);
- dissector_all_heur_tables_foreach_table(heur_dissector_tables_list_func, (gpointer)&data, NULL);
+ dissector_all_heur_tables_foreach_table(heur_dissector_tables_list_func, (void *)&data, NULL);
WSLUA_RETURN(1); /* The array table of registered heuristic list names */
}
@@ -337,7 +359,7 @@ WSLUA_CONSTRUCTOR DissectorTable_try_heuristics (lua_State *L) {
#define WSLUA_ARG_DissectorTable_try_heuristics_PINFO 3 /* The packet info. */
#define WSLUA_ARG_DissectorTable_try_heuristics_TREE 4 /* The tree on which to add the protocol items. */
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_DissectorTable_try_heuristics_LISTNAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_DissectorTable_try_heuristics_LISTNAME);
Tvb tvb = checkTvb(L,WSLUA_ARG_DissectorTable_try_heuristics_TVB);
Pinfo pinfo = checkPinfo(L,WSLUA_ARG_DissectorTable_try_heuristics_PINFO);
TreeItem tree = checkTreeItem(L,WSLUA_ARG_DissectorTable_try_heuristics_TREE);
@@ -362,16 +384,17 @@ WSLUA_CONSTRUCTOR DissectorTable_get (lua_State *L) {
Obtain a reference to an existing dissector table.
*/
#define WSLUA_ARG_DissectorTable_get_TABLENAME 1 /* The short name of the table. */
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_DissectorTable_get_TABLENAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_DissectorTable_get_TABLENAME);
dissector_table_t table = find_dissector_table(name);
if (table) {
DissectorTable dt = (DissectorTable)g_malloc(sizeof(struct _wslua_distbl_t));
dt->table = table;
+ dt->heur_list = NULL;
dt->name = g_strdup(name);
dt->ui_name = NULL;
- dt->created = FALSE;
- dt->expired = FALSE;
+ dt->created = false;
+ dt->expired = false;
pushDissectorTable(L, dt);
} else {
@@ -415,12 +438,12 @@ WSLUA_METHOD DissectorTable_add (lua_State *L) {
type = get_dissector_table_selector_type(dt->name);
if (type == FT_STRING) {
- gchar* pattern = g_strdup(luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN));
+ char* pattern = g_strdup(luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN));
dissector_add_string(dt->name, pattern,handle);
g_free (pattern);
} else if (type == FT_GUID) {
/* Handle GUID type (assuming it is represented as a string in Lua) */
- const gchar* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN);
+ const char* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN);
fvalue_t* fval = fvalue_from_literal(type, guid_str, 0, NULL);
const e_guid_t* guid = fvalue_get_guid(fval);
guid_key gk = {*guid, 0};
@@ -435,13 +458,13 @@ WSLUA_METHOD DissectorTable_add (lua_State *L) {
}
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
if (lua_isnumber(L, WSLUA_ARG_DissectorTable_add_PATTERN)) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_add_PATTERN);
+ uint32_t port = wslua_checkuint32(L, WSLUA_ARG_DissectorTable_add_PATTERN);
dissector_add_uint(dt->name, port, handle);
} else {
/* Not a number, try as range */
- const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN);
+ const char* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_add_PATTERN);
range_t *range = NULL;
- if (range_convert_str(NULL, &range, pattern, G_MAXUINT32) == CVT_NO_ERROR) {
+ if (range_convert_str(NULL, &range, pattern, UINT32_MAX) == CVT_NO_ERROR) {
dissector_add_uint_range(dt->name, range, handle);
} else {
wmem_free (NULL, range);
@@ -458,11 +481,7 @@ WSLUA_METHOD DissectorTable_add (lua_State *L) {
}
WSLUA_METHOD DissectorTable_set (lua_State *L) {
- /*
- Clear all existing dissectors from a table and add a new dissector or a range of new dissectors.
-
- @since 1.11.3
- */
+ /* Clear all existing dissectors from a table and add a new dissector or a range of new dissectors. */
#define WSLUA_ARG_DissectorTable_set_PATTERN 2 /* The pattern to match (either an integer, a integer range or a string depending on the table's type). */
#define WSLUA_ARG_DissectorTable_set_DISSECTOR 3 /* The dissector to add (either a <<lua_class_Proto,`Proto`>> or a <<lua_class_Dissector,`Dissector`>>). */
@@ -492,12 +511,12 @@ WSLUA_METHOD DissectorTable_set (lua_State *L) {
type = get_dissector_table_selector_type(dt->name);
if (type == FT_STRING) {
- const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN);
+ const char* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN);
dissector_delete_all(dt->name, handle);
dissector_add_string(dt->name, pattern,handle);
} else if (type == FT_GUID) {
/* Handle GUID type (assuming it is represented as a string in Lua) */
- const gchar* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN);
+ const char* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN);
fvalue_t* fval = fvalue_from_literal(type, guid_str, 0, NULL);
const e_guid_t* guid = fvalue_get_guid(fval);
guid_key gk = {*guid, 0};
@@ -512,14 +531,14 @@ WSLUA_METHOD DissectorTable_set (lua_State *L) {
}
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
if (lua_isnumber(L, WSLUA_ARG_DissectorTable_set_PATTERN)) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_set_PATTERN);
+ uint32_t port = wslua_checkuint32(L, WSLUA_ARG_DissectorTable_set_PATTERN);
dissector_delete_all(dt->name, handle);
dissector_add_uint(dt->name, port, handle);
} else {
/* Not a number, try as range */
- const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN);
+ const char* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_set_PATTERN);
range_t *range = NULL;
- if (range_convert_str(NULL, &range, pattern, G_MAXUINT32) == CVT_NO_ERROR) {
+ if (range_convert_str(NULL, &range, pattern, UINT32_MAX) == CVT_NO_ERROR) {
dissector_delete_all(dt->name, handle);
dissector_add_uint_range(dt->name, range, handle);
} else {
@@ -563,12 +582,12 @@ WSLUA_METHOD DissectorTable_remove (lua_State *L) {
type = get_dissector_table_selector_type(dt->name);
if (type == FT_STRING) {
- gchar* pattern = g_strdup(luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN));
+ char* pattern = g_strdup(luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN));
dissector_delete_string(dt->name, pattern,handle);
g_free (pattern);
} else if (type == FT_GUID) {
// Handle GUID type (assuming it is represented as a string in Lua)
- const gchar* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN);
+ const char* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN);
fvalue_t* fval = fvalue_from_literal(type, guid_str, 0, NULL);
const e_guid_t* guid = fvalue_get_guid(fval);
guid_key gk = {*guid, 0};
@@ -576,13 +595,13 @@ WSLUA_METHOD DissectorTable_remove (lua_State *L) {
dissector_delete_guid(dt->name, &gk, handle);
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
if (lua_isnumber(L, WSLUA_ARG_DissectorTable_remove_PATTERN)) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_remove_PATTERN);
+ uint32_t port = wslua_checkuint32(L, WSLUA_ARG_DissectorTable_remove_PATTERN);
dissector_delete_uint(dt->name, port, handle);
} else {
/* Not a number, try as range */
- const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN);
+ const char* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_remove_PATTERN);
range_t *range = NULL;
- if (range_convert_str(NULL, &range, pattern, G_MAXUINT32) == CVT_NO_ERROR)
+ if (range_convert_str(NULL, &range, pattern, UINT32_MAX) == CVT_NO_ERROR)
dissector_delete_uint_range(dt->name, range, handle);
else {
wmem_free (NULL, range);
@@ -597,11 +616,7 @@ WSLUA_METHOD DissectorTable_remove (lua_State *L) {
}
WSLUA_METHOD DissectorTable_remove_all (lua_State *L) {
- /*
- Remove all dissectors from a table.
-
- @since 1.11.3
- */
+ /* Remove all dissectors from a table. */
#define WSLUA_ARG_DissectorTable_remove_all_DISSECTOR 2 /* The dissector to remove (either a <<lua_class_Proto,`Proto`>> or a <<lua_class_Dissector,`Dissector`>>). */
DissectorTable dt = checkDissectorTable(L,1);
Dissector handle;
@@ -638,8 +653,8 @@ WSLUA_METHOD DissectorTable_try (lua_State *L) {
Pinfo pinfo = checkPinfo(L,WSLUA_ARG_DissectorTable_try_PINFO);
TreeItem ti = checkTreeItem(L,WSLUA_ARG_DissectorTable_try_TREE);
ftenum_t type;
- gboolean handled = FALSE;
- const gchar *volatile error = NULL;
+ bool handled = false;
+ const char *volatile error = NULL;
int len = 0;
if (! (dt && tvb && tvb->ws_tvb && pinfo && ti) ) return 0;
@@ -649,33 +664,33 @@ WSLUA_METHOD DissectorTable_try (lua_State *L) {
TRY {
if (type == FT_STRING) {
- const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_try_PATTERN);
+ const char* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_try_PATTERN);
len = dissector_try_string(dt->table,pattern,tvb->ws_tvb,pinfo->ws_pinfo,ti->tree, NULL);
if (len > 0) {
- handled = TRUE;
+ handled = true;
}
} else if ( type == FT_GUID ) {
- const gchar* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_try_PATTERN);
+ const char* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_try_PATTERN);
fvalue_t* fval = fvalue_from_literal(type, guid_str, 0, NULL);
const e_guid_t* guid = fvalue_get_guid(fval);
guid_key gk = {*guid, 0};
len = dissector_try_guid(dt->table, &gk,tvb->ws_tvb,pinfo->ws_pinfo,ti->tree);
if (len > 0) {
- handled = TRUE;
+ handled = true;
}
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_try_PATTERN);
+ uint32_t port = wslua_checkuint32(L, WSLUA_ARG_DissectorTable_try_PATTERN);
len = dissector_try_uint(dt->table,port,tvb->ws_tvb,pinfo->ws_pinfo,ti->tree);
if (len > 0) {
- handled = TRUE;
+ handled = true;
}
} else if ( type == FT_NONE ) {
len = dissector_try_payload(dt->table,tvb->ws_tvb,pinfo->ws_pinfo,ti->tree);
if (len > 0) {
- handled = TRUE;
+ handled = true;
}
} else {
error = "No such type of dissector table";
@@ -711,16 +726,16 @@ WSLUA_METHOD DissectorTable_get_dissector (lua_State *L) {
type = get_dissector_table_selector_type(dt->name);
if (type == FT_STRING) {
- const gchar* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
+ const char* pattern = luaL_checkstring(L,WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
handle = dissector_get_string_handle(dt->table,pattern);
} else if ( type == FT_GUID ) {
- const gchar* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
+ const char* guid_str = luaL_checkstring(L,WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
fvalue_t* fval = fvalue_from_literal(type, guid_str, 0, NULL);
const e_guid_t* guid = fvalue_get_guid(fval);
guid_key gk = {*guid, 0};
handle = dissector_get_guid_handle(dt->table,&gk);
} else if ( type == FT_UINT32 || type == FT_UINT16 || type == FT_UINT8 || type == FT_UINT24 ) {
- int port = (int)luaL_checkinteger(L, WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
+ uint32_t port = wslua_checkuint32(L, WSLUA_ARG_DissectorTable_get_dissector_PATTERN);
handle = dissector_get_uint_handle(dt->table,port);
}
@@ -737,8 +752,6 @@ WSLUA_METHOD DissectorTable_add_for_decode_as (lua_State *L) {
/*
Add the given <<lua_class_Proto,`Proto`>> to the “Decode as...” list for this DissectorTable.
The passed-in <<lua_class_Proto,`Proto`>> object's `dissector()` function is used for dissecting.
-
- @since 1.99.1
*/
#define WSLUA_ARG_DissectorTable_add_for_decode_as_PROTO 2 /* The <<lua_class_Proto,`Proto`>> to add. */
DissectorTable dt = checkDissectorTable(L,1);
@@ -798,7 +811,7 @@ WSLUA_METAMETHOD DissectorTable__tostring(lua_State* L) {
}
lua_pushstring(L,s->str);
- g_string_free(s,TRUE);
+ g_string_free(s,true);
WSLUA_RETURN(1); /* A string of debug information about the <<lua_class_DissectorTable,`DissectorTable`>>. */
}
@@ -808,7 +821,7 @@ static int DissectorTable__gc(lua_State* L) {
if (dt->created && !dt->expired) {
/* Created DissectorTable will pass GC two times */
- dt->expired = TRUE;
+ dt->expired = true;
} else {
g_free((char *)dt->name);
g_free((char *)dt->ui_name);
@@ -855,7 +868,12 @@ int wslua_deregister_dissector_tables(lua_State* L) {
for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) {
DissectorTable dt = checkDissectorTable(L, -1);
if (dt->created) {
- deregister_dissector_table(dt->name);
+ if (dt->table) {
+ deregister_dissector_table(dt->name);
+ }
+ if (dt->heur_list) {
+ deregister_heur_dissector_list(dt->name);
+ }
}
}
@@ -864,6 +882,7 @@ int wslua_deregister_dissector_tables(lua_State* L) {
return 0;
}
+
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*
diff --git a/epan/wslua/wslua_dumper.c b/epan/wslua/wslua_dumper.c
index de6b2aacef..a98d4b9f23 100644
--- a/epan/wslua/wslua_dumper.c
+++ b/epan/wslua/wslua_dumper.c
@@ -85,7 +85,7 @@ WSLUA_CONSTRUCTOR PseudoHeader_eth(lua_State* L) {
PseudoHeader ph = (PseudoHeader)g_malloc(sizeof(struct lua_pseudo_header));
ph->type = PHDR_ETH;
ph->wph = (union wtap_pseudo_header *)g_malloc(sizeof(union wtap_pseudo_header));
- ph->wph->eth.fcs_len = (gint)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_eth_FCSLEN,-1);
+ ph->wph->eth.fcs_len = (int)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_eth_FCSLEN,-1);
pushPseudoHeader(L,ph);
@@ -107,13 +107,13 @@ WSLUA_CONSTRUCTOR PseudoHeader_atm(lua_State* L) {
PseudoHeader ph = (PseudoHeader)g_malloc(sizeof(struct lua_pseudo_header));
ph->type = PHDR_ATM;
ph->wph = (union wtap_pseudo_header *)g_malloc(sizeof(union wtap_pseudo_header));
- ph->wph->atm.aal = (guint8)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_AAL,5);
- ph->wph->atm.vpi = (guint16)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_VPI,1);
- ph->wph->atm.vci = (guint16)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_VCI,1);
- ph->wph->atm.channel = (guint16)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_CHANNEL,0);
- ph->wph->atm.cells = (guint16)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_CELLS,1);
- ph->wph->atm.aal5t_u2u = (guint16)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_AAL5U2U,1);
- ph->wph->atm.aal5t_len = (guint16)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_AAL5LEN,0);
+ ph->wph->atm.aal = (uint8_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_AAL,5);
+ ph->wph->atm.vpi = (uint16_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_VPI,1);
+ ph->wph->atm.vci = (uint16_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_VCI,1);
+ ph->wph->atm.channel = (uint16_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_CHANNEL,0);
+ ph->wph->atm.cells = (uint16_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_CELLS,1);
+ ph->wph->atm.aal5t_u2u = (uint16_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_AAL5U2U,1);
+ ph->wph->atm.aal5t_len = (uint16_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_atm_AAL5LEN,0);
pushPseudoHeader(L,ph);
WSLUA_RETURN(1);
@@ -128,9 +128,9 @@ WSLUA_CONSTRUCTOR PseudoHeader_mtp2(lua_State* L) {
PseudoHeader ph = (PseudoHeader)g_malloc(sizeof(struct lua_pseudo_header));
ph->type = PHDR_MTP2;
ph->wph = (union wtap_pseudo_header *)g_malloc(sizeof(union wtap_pseudo_header));
- ph->wph->mtp2.sent = (guint8)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_mtp2_SENT,0);
- ph->wph->mtp2.annex_a_used = (guint8)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_mtp2_ANNEXA,0);
- ph->wph->mtp2.link_number = (guint16)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_mtp2_LINKNUM,0);
+ ph->wph->mtp2.sent = (uint8_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_mtp2_SENT,0);
+ ph->wph->mtp2.annex_a_used = (uint8_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_mtp2_ANNEXA,0);
+ ph->wph->mtp2.link_number = (uint16_t)luaL_optinteger(L,WSLUA_OPTARG_PseudoHeader_mtp2_LINKNUM,0);
pushPseudoHeader(L,ph);
WSLUA_RETURN(1); /* The MTP2 pseudoheader */
@@ -173,7 +173,7 @@ int PseudoHeader_register(lua_State* L) {
WSLUA_CLASS_DEFINE(Dumper,FAIL_ON_NULL("Dumper already closed"));
-static GHashTable* dumper_encaps = NULL;
+static GHashTable* dumper_encaps;
#define DUMPER_ENCAP(d) GPOINTER_TO_INT(g_hash_table_lookup(dumper_encaps,d))
static const char* cross_plat_fname(const char* fname) {
@@ -214,7 +214,7 @@ WSLUA_CONSTRUCTOR Dumper_new(lua_State* L) {
int filetype = (int)luaL_optinteger(L,WSLUA_OPTARG_Dumper_new_FILETYPE,wtap_pcap_file_type_subtype());
int encap = (int)luaL_optinteger(L,WSLUA_OPTARG_Dumper_new_ENCAP,WTAP_ENCAP_ETHERNET);
int err = 0;
- gchar *err_info = NULL;
+ char *err_info = NULL;
const char* filename = cross_plat_fname(fname);
wtap_dump_params params = WTAP_DUMP_PARAMS_INIT;
@@ -293,7 +293,7 @@ WSLUA_METHOD Dumper_close(lua_State* L) {
/* Closes a dumper. */
Dumper* dp = (Dumper*)luaL_checkudata(L, 1, "Dumper");
int err;
- gchar *err_info;
+ char *err_info;
if (! *dp) {
WSLUA_ERROR(Dumper_close,"Cannot operate on a closed dumper");
@@ -351,7 +351,7 @@ WSLUA_METHOD Dumper_dump(lua_State* L) {
wtap_rec rec;
double ts;
int err;
- gchar *err_info;
+ char *err_info;
if (!d) return 0;
@@ -418,7 +418,7 @@ WSLUA_METHOD Dumper_new_for_current(lua_State* L) {
int filetype = (int)luaL_optinteger(L,WSLUA_OPTARG_Dumper_new_for_current_FILETYPE,wtap_pcap_file_type_subtype());
int encap;
int err = 0;
- gchar *err_info = NULL;
+ char *err_info = NULL;
const char* filename = cross_plat_fname(fname);
wtap_dump_params params = WTAP_DUMP_PARAMS_INIT;
@@ -506,11 +506,11 @@ WSLUA_METHOD Dumper_dump_current(lua_State* L) {
*/
Dumper d = checkDumper(L,1);
wtap_rec rec;
- const guchar* data;
+ const unsigned char* data;
tvbuff_t* tvb;
struct data_source *data_src;
int err = 0;
- gchar *err_info;
+ char *err_info;
if (!d) return 0;
@@ -546,12 +546,12 @@ WSLUA_METHOD Dumper_dump_current(lua_State* L) {
*/
if (lua_pinfo->fd->has_modified_block) {
rec.block = epan_get_modified_block(lua_pinfo->epan, lua_pinfo->fd);
- rec.block_was_modified = TRUE;
+ rec.block_was_modified = true;
} else {
rec.block = lua_pinfo->rec->block;
}
- data = (const guchar *)tvb_memdup(lua_pinfo->pool,tvb,0,rec.rec_header.packet_header.caplen);
+ data = (const unsigned char *)tvb_memdup(lua_pinfo->pool,tvb,0,rec.rec_header.packet_header.caplen);
if (! wtap_dump(d, &rec, data, &err, &err_info)) {
switch (err) {
@@ -576,7 +576,7 @@ WSLUA_METHOD Dumper_dump_current(lua_State* L) {
static int Dumper__gc(lua_State* L) {
Dumper* dp = (Dumper*)luaL_checkudata(L, 1, "Dumper");
int err;
- gchar *err_info;
+ char *err_info;
/* If we are Garbage Collected it means the Dumper is no longer usable. Close it */
diff --git a/epan/wslua/wslua_field.c b/epan/wslua/wslua_field.c
index d7d3e9d7f7..4c0bde97cc 100644
--- a/epan/wslua/wslua_field.c
+++ b/epan/wslua/wslua_field.c
@@ -31,17 +31,17 @@ WSLUA_CLASS_DEFINE(FieldInfo,FAIL_ON_NULL_OR_EXPIRED("FieldInfo"));
or `Field()` before-hand, or it can be called on new fields created by Lua from a `ProtoField`.
*/
-static GPtrArray* outstanding_FieldInfo = NULL;
+static GPtrArray* outstanding_FieldInfo;
FieldInfo* push_FieldInfo(lua_State* L, field_info* f) {
FieldInfo fi = (FieldInfo) g_malloc(sizeof(struct _wslua_field_info));
fi->ws_fi = f;
- fi->expired = FALSE;
+ fi->expired = false;
g_ptr_array_add(outstanding_FieldInfo,fi);
return pushFieldInfo(L,fi);
}
-CLEAR_OUTSTANDING(FieldInfo,expired,TRUE)
+CLEAR_OUTSTANDING(FieldInfo,expired,true)
/* WSLUA_ATTRIBUTE FieldInfo_len RO The length of this field. */
WSLUA_METAMETHOD FieldInfo__len(lua_State* L) {
@@ -151,7 +151,7 @@ WSLUA_METAMETHOD FieldInfo__call(lua_State* L) {
case FT_STRING:
case FT_STRINGZ:
case FT_STRINGZPAD: {
- gchar* repr = fvalue_to_string_repr(NULL, fi->ws_fi->value, FTREPR_DISPLAY, BASE_NONE);
+ char* repr = fvalue_to_string_repr(NULL, fi->ws_fi->value, FTREPR_DISPLAY, BASE_NONE);
if (repr)
{
lua_pushstring(L, repr);
@@ -179,7 +179,7 @@ WSLUA_METAMETHOD FieldInfo__call(lua_State* L) {
{
ByteArray ba = g_byte_array_new();
g_byte_array_append(ba, fvalue_get_bytes_data(fi->ws_fi->value),
- (guint)fvalue_length2(fi->ws_fi->value));
+ (unsigned)fvalue_length2(fi->ws_fi->value));
pushByteArray(L,ba);
return 1;
}
@@ -187,9 +187,9 @@ WSLUA_METAMETHOD FieldInfo__call(lua_State* L) {
{
ByteArray ba = g_byte_array_new();
tvbuff_t* tvb = fvalue_get_protocol(fi->ws_fi->value);
- guint8* raw;
+ uint8_t* raw;
if (tvb != NULL) {
- raw = (guint8 *)tvb_memdup(NULL, tvb, 0, tvb_captured_length(tvb));
+ raw = (uint8_t *)tvb_memdup(NULL, tvb, 0, tvb_captured_length(tvb));
g_byte_array_append(ba, raw, tvb_captured_length(tvb));
wmem_free(NULL, raw);
}
@@ -210,7 +210,7 @@ WSLUA_METAMETHOD FieldInfo__tostring(lua_State* L) {
/* The string representation of the field. */
FieldInfo fi = checkFieldInfo(L,1);
- gchar* repr = NULL;
+ char* repr = NULL;
if (fi->ws_fi->hfinfo->type == FT_PROTOCOL) {
repr = fvalue_to_string_repr(NULL, fi->ws_fi->value,FTREPR_DFILTER,BASE_NONE);
@@ -235,9 +235,9 @@ WSLUA_METAMETHOD FieldInfo__tostring(lua_State* L) {
static int FieldInfo_get_display(lua_State* L) {
/* The display string of this field as seen in GUI. */
FieldInfo fi = checkFieldInfo(L,1);
- gchar label_str[ITEM_LABEL_LENGTH+1];
- gchar *label_ptr;
- gchar *value_ptr;
+ char label_str[ITEM_LABEL_LENGTH+1];
+ char *label_ptr;
+ char *value_ptr;
if (!fi->ws_fi->rep) {
label_ptr = label_str;
@@ -261,8 +261,6 @@ static int FieldInfo_get_display(lua_State* L) {
/* WSLUA_ATTRIBUTE FieldInfo_type RO The internal field type, a number which
matches one of the `ftype` values.
-
- @since 1.99.8
*/
static int FieldInfo_get_type(lua_State* L) {
FieldInfo fi = checkFieldInfo(L,1);
@@ -279,8 +277,6 @@ static int FieldInfo_get_type(lua_State* L) {
/* WSLUA_ATTRIBUTE FieldInfo_source RO The source `Tvb` object the `FieldInfo` is derived
from, or nil if there is none.
-
- @since 1.99.8
*/
static int FieldInfo_get_source(lua_State* L) {
FieldInfo fi = checkFieldInfo(L,1);
@@ -320,10 +316,7 @@ static int FieldInfo_get_generated(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE FieldInfo_hidden RO Whether this field was marked as hidden (boolean).
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE FieldInfo_hidden RO Whether this field was marked as hidden (boolean). */
static int FieldInfo_get_hidden(lua_State* L) {
FieldInfo fi = checkFieldInfo(L,1);
@@ -331,10 +324,7 @@ static int FieldInfo_get_hidden(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE FieldInfo_is_url RO Whether this field was marked as being a URL (boolean).
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE FieldInfo_is_url RO Whether this field was marked as being a URL (boolean). */
static int FieldInfo_get_is_url(lua_State* L) {
FieldInfo fi = checkFieldInfo(L,1);
@@ -342,10 +332,7 @@ static int FieldInfo_get_is_url(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE FieldInfo_little_endian RO Whether this field is little-endian encoded (boolean).
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE FieldInfo_little_endian RO Whether this field is little-endian encoded (boolean). */
static int FieldInfo_get_little_endian(lua_State* L) {
FieldInfo fi = checkFieldInfo(L,1);
@@ -353,10 +340,7 @@ static int FieldInfo_get_little_endian(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE FieldInfo_big_endian RO Whether this field is big-endian encoded (boolean).
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE FieldInfo_big_endian RO Whether this field is big-endian encoded (boolean). */
static int FieldInfo_get_big_endian(lua_State* L) {
FieldInfo fi = checkFieldInfo(L,1);
@@ -364,10 +348,7 @@ static int FieldInfo_get_big_endian(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE FieldInfo_name RO The filter name of this field.
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE FieldInfo_name RO The filter name of this field. */
static int FieldInfo_get_name(lua_State* L) {
/* The filter name of this field. */
FieldInfo fi = checkFieldInfo(L,1);
@@ -433,7 +414,7 @@ static int FieldInfo__gc(lua_State* L) {
if (!fi) return 0;
if (!fi->expired)
- fi->expired = TRUE;
+ fi->expired = true;
else
/* do NOT free fi->ws_fi */
g_free(fi);
@@ -490,7 +471,7 @@ WSLUA_FUNCTION wslua_all_field_infos(lua_State* L) {
*/
GPtrArray* found;
int items_found = 0;
- guint i;
+ unsigned i;
if (! lua_tree || ! lua_tree->tree ) {
WSLUA_ERROR(wslua_all_field_infos,"Cannot be called outside a listener or dissector");
@@ -505,7 +486,7 @@ WSLUA_FUNCTION wslua_all_field_infos(lua_State* L) {
items_found++;
}
- g_ptr_array_free(found,TRUE);
+ g_ptr_array_free(found,true);
}
return items_found;
@@ -520,8 +501,8 @@ WSLUA_CLASS_DEFINE(Field,FAIL_ON_NULL("Field"));
*/
/* Array of Field (struct _wslua_header_field_info*) pointers.*/
-static GPtrArray* wanted_fields = NULL;
-static dfilter_t* wslua_dfilter = NULL;
+static GPtrArray* wanted_fields;
+static dfilter_t* wslua_dfilter;
/* We use a fake dfilter for Lua field extractors, so that
* epan_dissect_run() will populate the fields. This won't happen
@@ -537,7 +518,7 @@ void wslua_prime_dfilter(epan_dissect_t *edt) {
}
/* Check if we have any registered field extractors. */
-gboolean wslua_has_field_extractors(void) {
+bool wslua_has_field_extractors(void) {
return (wslua_dfilter && dfilter_has_interesting_fields(wslua_dfilter));
}
@@ -552,10 +533,10 @@ gboolean wslua_has_field_extractors(void) {
* after the fields are primed.
*/
-static gboolean fake_tap = FALSE;
+static bool fake_tap;
void lua_prime_all_fields(proto_tree* tree _U_) {
GString* fake_tap_filter = g_string_new("frame");
- guint i;
+ unsigned i;
df_error_t *df_err;
for(i=0; i < wanted_fields->len; i++) {
@@ -568,10 +549,10 @@ void lua_prime_all_fields(proto_tree* tree _U_) {
}
g_string_append_printf(fake_tap_filter, " || %s", f->hfi->abbrev);
- fake_tap = TRUE;
+ fake_tap = true;
}
- g_ptr_array_free(wanted_fields,TRUE);
+ g_ptr_array_free(wanted_fields,true);
wanted_fields = NULL;
if (fake_tap && fake_tap_filter->len > strlen("frame")) {
@@ -584,13 +565,13 @@ void lua_prime_all_fields(proto_tree* tree _U_) {
if (error) {
report_failure("while registering lua_fake_tap:\n%s",error->str);
- g_string_free(error,TRUE);
+ g_string_free(error,true);
} else if (!dfilter_compile(fake_tap_filter->str, &wslua_dfilter, &df_err)) {
report_failure("while compiling dfilter \"%s\" for wslua: %s", fake_tap_filter->str, df_err->msg);
df_error_free(&df_err);
}
}
- g_string_free(fake_tap_filter, TRUE);
+ g_string_free(fake_tap_filter, true);
}
WSLUA_CONSTRUCTOR Field_new(lua_State *L) {
@@ -598,7 +579,7 @@ WSLUA_CONSTRUCTOR Field_new(lua_State *L) {
Create a Field extractor.
*/
#define WSLUA_ARG_Field_new_FIELDNAME 1 /* The filter name of the field (e.g. ip.addr) */
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_Field_new_FIELDNAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_Field_new_FIELDNAME);
Field f;
if (!proto_registrar_get_byname(name) && !wslua_is_field_available(L, name)) {
@@ -624,8 +605,6 @@ WSLUA_CONSTRUCTOR Field_list(lua_State *L) {
/* Gets a Lua array table of all registered field filter names.
NOTE: This is an expensive operation, and should only be used for troubleshooting.
-
- @since 1.11.3
*/
void *cookie, *cookie2;
int i = -1;
@@ -676,10 +655,7 @@ WSLUA_CONSTRUCTOR Field_list(lua_State *L) {
lua_pushnil(L)
-/* WSLUA_ATTRIBUTE Field_name RO The filter name of this field, or nil.
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE Field_name RO The filter name of this field, or nil. */
static int Field_get_name(lua_State* L) {
Field f = checkField(L,1);
header_field_info* hfinfo = NULL;
@@ -689,10 +665,7 @@ static int Field_get_name(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE Field_display RO The full display name of this field, or nil.
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE Field_display RO The full display name of this field, or nil. */
static int Field_get_display(lua_State* L) {
Field f = checkField(L,1);
header_field_info* hfinfo = NULL;
@@ -702,10 +675,7 @@ static int Field_get_display(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE Field_type RO The `ftype` of this field, or nil.
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE Field_type RO The `ftype` of this field, or nil. */
static int Field_get_type(lua_State* L) {
Field f = checkField(L,1);
header_field_info* hfinfo = NULL;
@@ -733,7 +703,7 @@ WSLUA_METAMETHOD Field__call (lua_State* L) {
while (in) {
GPtrArray* found = proto_get_finfo_ptr_array(lua_tree->tree, in->id);
- guint i;
+ unsigned i;
if (found) {
for (i=0; i<found->len; i++) {
push_FieldInfo(L, (field_info *) g_ptr_array_index(found,i));
@@ -812,7 +782,7 @@ int wslua_deregister_fields(lua_State* L _U_) {
if (fake_tap) {
remove_tap_listener(&fake_tap);
- fake_tap = FALSE;
+ fake_tap = false;
}
return 0;
diff --git a/epan/wslua/wslua_file.c b/epan/wslua/wslua_file.c
index ff74760fad..240cb9830c 100644
--- a/epan/wslua/wslua_file.c
+++ b/epan/wslua/wslua_file.c
@@ -25,8 +25,6 @@
The classes/functions defined in this section allow you to create your own
custom Lua-based "capture" file reader, or writer, or both.
-
- @since 1.11.3
*/
@@ -77,8 +75,6 @@ WSLUA_CLASS_DEFINE(File,FAIL_ON_NULL_OR_EXPIRED("File"));
return false
end
----
-
- @since 1.11.3
*/
@@ -91,7 +87,7 @@ File* push_File(lua_State* L, FILE_T ft) {
File f = (File) g_malloc(sizeof(struct _wslua_file));
f->file = ft;
f->wdh = NULL;
- f->expired = FALSE;
+ f->expired = false;
return pushFile(L,f);
}
@@ -99,11 +95,11 @@ File* push_Wdh(lua_State* L, wtap_dumper *wdh) {
File f = (File) g_malloc(sizeof(struct _wslua_file));
f->file = (FILE_T)wdh->fh;
f->wdh = wdh;
- f->expired = FALSE;
+ f->expired = false;
return pushFile(L,f);
}
-static gboolean file_is_reader(File f) {
+static bool file_is_reader(File f) {
return (f->wdh == NULL);
}
@@ -116,15 +112,15 @@ static gboolean file_is_reader(File f) {
#define WSLUA_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */
static int File_read_number (lua_State *L, FILE_T ft) {
lua_Number d;
- gchar buff[WSLUA_MAXNUMBER2STR];
+ char buff[WSLUA_MAXNUMBER2STR];
int buff_end = 0;
int c = -1;
int num_digits = 0;
- gboolean has_decimal = FALSE;
+ bool has_decimal = false;
c = file_peekc(ft);
if (c == '+' || c == '-') {
- buff[buff_end++] = (gchar)c;
+ buff[buff_end++] = (char)c;
/* make sure next char is a digit */
c = file_peekc(ft);
if (c < '0' || c > '9') {
@@ -137,13 +133,13 @@ static int File_read_number (lua_State *L, FILE_T ft) {
while((c = file_peekc(ft)) > 0 && buff_end < (WSLUA_MAXNUMBER2STR-1)) {
if (c >= '0' && c <= '9') {
- buff[buff_end++] = (gchar)c;
+ buff[buff_end++] = (char)c;
num_digits++;
file_getc(ft);
}
else if (!has_decimal && c == '.') {
- has_decimal = TRUE;
- buff[buff_end++] = (gchar)c;
+ has_decimal = true;
+ buff[buff_end++] = (char)c;
file_getc(ft);
}
else break;
@@ -152,7 +148,7 @@ static int File_read_number (lua_State *L, FILE_T ft) {
buff[buff_end] = '\0';
if (buff_end > 0 && num_digits > 0 && sscanf(buff, "%lf", &d) == 1) {
- lua_pushinteger(L, d);
+ lua_pushnumber(L, d);
return 1;
}
else {
@@ -166,9 +162,9 @@ static int File_read_number (lua_State *L, FILE_T ft) {
* the stack (or nil on EOF).
*/
static int File_read_line(lua_State *L, FILE_T ft) {
- static gchar linebuff[MAX_LINE_LENGTH];
- gint64 pos_before = file_tell(ft);
- gint length = 0;
+ static char linebuff[MAX_LINE_LENGTH];
+ int64_t pos_before = file_tell(ft);
+ int length = 0;
if (file_gets(linebuff, MAX_LINE_LENGTH, ft) == NULL) {
/* No characters found, or error */
@@ -179,7 +175,7 @@ static int File_read_line(lua_State *L, FILE_T ft) {
}
/* Set length (avoiding strlen()) */
- length = (gint)(file_tell(ft) - pos_before);
+ length = (int)(file_tell(ft) - pos_before);
/* ...but don't want to include newline in line length */
if (length > 0 && linebuff[length-1] == '\n') {
@@ -216,7 +212,7 @@ static int File_read_chars(lua_State *L, FILE_T ft, size_t n) {
size_t rlen; /* how much to read */
size_t nr; /* number of chars actually read */
int nri; /* temp number of chars read, as an int to handle -1 errors */
- gchar buff[WSLUA_BUFFERSIZE]; /* for file_read to write to, and we push into Lua */
+ char buff[WSLUA_BUFFERSIZE]; /* for file_read to write to, and we push into Lua */
luaL_Buffer b;
rlen = WSLUA_BUFFERSIZE; /* try to read that much each time */
@@ -339,9 +335,9 @@ WSLUA_METHOD File_seek(lua_State* L) {
File f = checkFile(L,1);
int op = luaL_checkoption(L, 2, "cur", modenames);
#if LUA_VERSION_NUM >= 503
- gint64 offset = (gint64)luaL_optinteger(L, 3, 0);
+ int64_t offset = (int64_t)luaL_optinteger(L, 3, 0);
#else
- gint64 offset = (gint64) luaL_optlong(L, 3, 0);
+ int64_t offset = (int64_t) luaL_optlong(L, 3, 0);
#endif
int err;
@@ -422,7 +418,7 @@ WSLUA_METHOD File_write(lua_State* L) {
File f = checkFile(L,1);
int arg = 2; /* beginning index for arguments */
int nargs = lua_gettop(L) - 1;
- int status = TRUE;
+ int status = true;
int err = 0;
if (!f->wdh) {
diff --git a/epan/wslua/wslua_file_common.h b/epan/wslua/wslua_file_common.h
index 6ff98b65c7..ac221460e6 100644
--- a/epan/wslua/wslua_file_common.h
+++ b/epan/wslua/wslua_file_common.h
@@ -50,12 +50,12 @@ extern int set_wdh_priv_table_ref(lua_State* L, wtap_dumper *wdh);
extern void remove_wdh_priv(lua_State* L, wtap_dumper *wdh);
/* implemented in other c files than wslua_file_common.c */
-extern CaptureInfo* push_CaptureInfo(lua_State* L, wtap *wth, const gboolean first_time);
+extern CaptureInfo* push_CaptureInfo(lua_State* L, wtap *wth, const bool first_time);
extern CaptureInfoConst* push_CaptureInfoConst(lua_State* L, wtap_dumper *wdh);
extern File* push_File(lua_State* L, FILE_T ft);
extern File* push_Wdh(lua_State* L, wtap_dumper *wdh);
extern FrameInfo* push_FrameInfo(lua_State* L, wtap_rec *rec, Buffer* buf);
-extern FrameInfoConst* push_FrameInfoConst(lua_State* L, const wtap_rec *rec, const guint8 *pd);
+extern FrameInfoConst* push_FrameInfoConst(lua_State* L, const wtap_rec *rec, const uint8_t *pd);
/*
diff --git a/epan/wslua/wslua_file_handler.c b/epan/wslua/wslua_file_handler.c
index 65209f3a87..6e6399bf8c 100644
--- a/epan/wslua/wslua_file_handler.c
+++ b/epan/wslua/wslua_file_handler.c
@@ -27,19 +27,17 @@ WSLUA_CLASS_DEFINE(FileHandler,NOP);
A FileHandler object, created by a call to FileHandler.new(arg1, arg2, ...).
The FileHandler object lets you create a file-format reader, or writer, or
both, by setting your own read_open/read or write_open/write functions.
-
- @since 1.11.3
*/
static int filehandler_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
- const gchar* functype = luaL_optstring(L, lua_upvalueindex(1), "UNKNOWN");
+ const char* error = lua_tostring(L,1);
+ const char* functype = luaL_optstring(L, lua_upvalueindex(1), "UNKNOWN");
report_failure("Lua: Error During execution of FileHandler %s callback:\n %s",functype,error);
lua_pop(L, 1);
return 0;
}
-static int push_error_handler(lua_State* L, const gchar* funcname) {
+static int push_error_handler(lua_State* L, const char* funcname) {
lua_pushstring(L, funcname);
lua_pushcclosure(L, filehandler_cb_error_handler, 1);
return 1;
@@ -52,13 +50,13 @@ static GSList *registered_file_handlers;
/* During file routines, we cannot allow the FileHandler to get deregistered, since
that would change the GArray's in file_access.c and hilarity would ensue. So we
set this to true right before pcall(), and back to false afterwards */
-static gboolean in_routine = FALSE;
+static bool in_routine;
static void
-report_error(int *err, gchar **err_info, const char *fmt, ...)
+report_error(int *err, char **err_info, const char *fmt, ...)
{
va_list ap;
- gchar *msg;
+ char *msg;
va_start(ap, fmt);
msg = ws_strdup_vprintf(fmt, ap);
@@ -102,11 +100,11 @@ report_error(int *err, gchar **err_info, const char *fmt, ...)
return retval; \
} \
/* now guard against deregistering during pcall() */ \
- in_routine = TRUE
+ in_routine = true
#define END_FILEHANDLER_ROUTINE() \
/* now allow deregistering again */ \
- in_routine = FALSE
+ in_routine = false
/* LUA_ERRGCMM is in Lua 5.2 only - making it 9 disables it */
@@ -134,10 +132,10 @@ report_error(int *err, gchar **err_info, const char *fmt, ...)
/* some declarations */
static bool
wslua_filehandler_read(wtap *wth, wtap_rec *rec, Buffer *buf,
- int *err, gchar **err_info, gint64 *offset);
+ int *err, char **err_info, int64_t *offset);
static bool
-wslua_filehandler_seek_read(wtap *wth, gint64 seek_off, wtap_rec *rec, Buffer *buf,
- int *err, gchar **err_info);
+wslua_filehandler_seek_read(wtap *wth, int64_t seek_off, wtap_rec *rec, Buffer *buf,
+ int *err, char **err_info);
static void
wslua_filehandler_close(wtap *wth);
static void
@@ -156,7 +154,7 @@ wslua_filehandler_sequential_close(wtap *wth);
* field in the "struct wtap" to the type of the file.
*/
static wtap_open_return_val
-wslua_filehandler_open(wtap *wth, int *err, gchar **err_info)
+wslua_filehandler_open(wtap *wth, int *err, char **err_info)
{
FileHandler fh = (FileHandler)(wth->wslua_data);
wtap_open_return_val retval = WTAP_OPEN_NOT_MINE;
@@ -169,7 +167,7 @@ wslua_filehandler_open(wtap *wth, int *err, gchar **err_info)
create_wth_priv(L, wth);
fp = push_File(L, wth->fh);
- fc = push_CaptureInfo(L, wth, TRUE);
+ fc = push_CaptureInfo(L, wth, true);
errno = WTAP_ERR_CANT_OPEN;
switch ( lua_pcall(L,2,1,1) ) {
@@ -181,8 +179,8 @@ wslua_filehandler_open(wtap *wth, int *err, gchar **err_info)
END_FILEHANDLER_ROUTINE();
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
if (retval == WTAP_OPEN_MINE) {
/* this is our file type - set the routines and settings into wtap */
@@ -237,7 +235,7 @@ wslua_filehandler_open(wtap *wth, int *err, gchar **err_info)
static bool
wslua_filehandler_read_packet(wtap *wth, FILE_T wth_fh, wtap_rec *rec, Buffer *buf,
- int *err, gchar **err_info, gint64 *offset)
+ int *err, char **err_info, int64_t *offset)
{
FileHandler fh = (FileHandler)(wth->wslua_data);
int retval = -1;
@@ -246,7 +244,7 @@ wslua_filehandler_read_packet(wtap *wth, FILE_T wth_fh, wtap_rec *rec, Buffer *b
CaptureInfo *fc = NULL;
FrameInfo *fi = NULL;
- INIT_FILEHANDLER_ROUTINE(read,FALSE,err,err_info);
+ INIT_FILEHANDLER_ROUTINE(read,false,err,err_info);
/* Reset errno */
if (err) {
@@ -257,7 +255,7 @@ wslua_filehandler_read_packet(wtap *wth, FILE_T wth_fh, wtap_rec *rec, Buffer *b
rec->block = NULL;
fp = push_File(L, wth_fh);
- fc = push_CaptureInfo(L, wth, FALSE);
+ fc = push_CaptureInfo(L, wth, false);
fi = push_FrameInfo(L, rec, buf);
switch ( lua_pcall(L,3,1,1) ) {
@@ -270,7 +268,7 @@ wslua_filehandler_read_packet(wtap *wth, FILE_T wth_fh, wtap_rec *rec, Buffer *b
* succeed without advancing data offset. Should it fail instead?
*/
if (lua_type(L, -1) == LUA_TNUMBER) {
- *offset = wslua_togint64(L, -1);
+ *offset = wslua_toint64(L, -1);
retval = 1;
break;
}
@@ -281,9 +279,9 @@ wslua_filehandler_read_packet(wtap *wth, FILE_T wth_fh, wtap_rec *rec, Buffer *b
END_FILEHANDLER_ROUTINE();
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
- (*fi)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
+ (*fi)->expired = true;
lua_settop(L,0);
return (retval == 1);
@@ -297,14 +295,14 @@ wslua_filehandler_read_packet(wtap *wth, FILE_T wth_fh, wtap_rec *rec, Buffer *b
*/
static bool
wslua_filehandler_read(wtap *wth, wtap_rec *rec, Buffer *buf,
- int *err, gchar **err_info, gint64 *offset)
+ int *err, char **err_info, int64_t *offset)
{
return wslua_filehandler_read_packet(wth, wth->fh, rec, buf, err, err_info, offset);
}
static bool
-wslua_filehandler_seek_read_packet(wtap *wth, gint64 seek_off, wtap_rec *rec, Buffer *buf,
- int *err, gchar **err_info)
+wslua_filehandler_seek_read_packet(wtap *wth, int64_t seek_off, wtap_rec *rec, Buffer *buf,
+ int *err, char **err_info)
{
FileHandler fh = (FileHandler)(wth->wslua_data);
int retval = -1;
@@ -313,7 +311,7 @@ wslua_filehandler_seek_read_packet(wtap *wth, gint64 seek_off, wtap_rec *rec, Bu
CaptureInfo *fc = NULL;
FrameInfo *fi = NULL;
- INIT_FILEHANDLER_ROUTINE(seek_read,FALSE,err,err_info);
+ INIT_FILEHANDLER_ROUTINE(seek_read,false,err,err_info);
/* Reset errno */
if (err) {
@@ -324,7 +322,7 @@ wslua_filehandler_seek_read_packet(wtap *wth, gint64 seek_off, wtap_rec *rec, Bu
rec->block = NULL;
fp = push_File(L, wth->random_fh);
- fc = push_CaptureInfo(L, wth, FALSE);
+ fc = push_CaptureInfo(L, wth, false);
fi = push_FrameInfo(L, rec, buf);
lua_pushinteger(L, (lua_Integer)seek_off);
@@ -345,9 +343,9 @@ wslua_filehandler_seek_read_packet(wtap *wth, gint64 seek_off, wtap_rec *rec, Bu
END_FILEHANDLER_ROUTINE();
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
- (*fi)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
+ (*fi)->expired = true;
lua_settop(L,0);
return (retval == 1);
@@ -357,10 +355,10 @@ wslua_filehandler_seek_read_packet(wtap *wth, gint64 seek_off, wtap_rec *rec, Bu
* Do a standard file_seek() and then call FileHandler:read().
*/
static bool
-wslua_filehandler_seek_read_default(wtap *wth, gint64 seek_off, wtap_rec *rec, Buffer *buf,
- int *err, gchar **err_info)
+wslua_filehandler_seek_read_default(wtap *wth, int64_t seek_off, wtap_rec *rec, Buffer *buf,
+ int *err, char **err_info)
{
- gint64 offset = file_seek(wth->random_fh, seek_off, SEEK_SET, err);
+ int64_t offset = file_seek(wth->random_fh, seek_off, SEEK_SET, err);
if (offset < 0) {
return false;
@@ -373,8 +371,8 @@ wslua_filehandler_seek_read_default(wtap *wth, gint64 seek_off, wtap_rec *rec, B
* success, false on error.
*/
static bool
-wslua_filehandler_seek_read(wtap *wth, gint64 seek_off, wtap_rec *rec, Buffer *buf,
- int *err, gchar **err_info)
+wslua_filehandler_seek_read(wtap *wth, int64_t seek_off, wtap_rec *rec, Buffer *buf,
+ int *err, char **err_info)
{
FileHandler fh = (FileHandler)(wth->wslua_data);
@@ -403,7 +401,7 @@ wslua_filehandler_close(wtap *wth)
INIT_FILEHANDLER_ROUTINE(read_close,,NULL,NULL);
fp = push_File(L, wth->fh);
- fc = push_CaptureInfo(L, wth, FALSE);
+ fc = push_CaptureInfo(L, wth, false);
switch ( lua_pcall(L,2,1,1) ) {
case 0:
@@ -415,8 +413,8 @@ wslua_filehandler_close(wtap *wth)
remove_wth_priv(L, wth);
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
lua_settop(L,0);
return;
@@ -435,7 +433,7 @@ wslua_filehandler_sequential_close(wtap *wth)
INIT_FILEHANDLER_ROUTINE(seq_read_close,,NULL,NULL);
fp = push_File(L, wth->fh);
- fc = push_CaptureInfo(L, wth, FALSE);
+ fc = push_CaptureInfo(L, wth, false);
switch ( lua_pcall(L,2,1,1) ) {
case 0:
@@ -445,8 +443,8 @@ wslua_filehandler_sequential_close(wtap *wth)
END_FILEHANDLER_ROUTINE();
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
lua_settop(L,0);
return;
@@ -499,16 +497,16 @@ wslua_filehandler_can_write_encap(int encap, void* data)
/* some declarations */
static bool
wslua_filehandler_dump(wtap_dumper *wdh, const wtap_rec *rec,
- const guint8 *pd, int *err, gchar **err_info);
+ const uint8_t *pd, int *err, char **err_info);
static bool
-wslua_filehandler_dump_finish(wtap_dumper *wdh, int *err, gchar **err_info);
+wslua_filehandler_dump_finish(wtap_dumper *wdh, int *err, char **err_info);
/* The classic wtap dump_open function.
* This returns true on success.
*/
static bool
-wslua_filehandler_dump_open(wtap_dumper *wdh, int *err, gchar **err_info)
+wslua_filehandler_dump_open(wtap_dumper *wdh, int *err, char **err_info)
{
FileHandler fh = (FileHandler)(wdh->wslua_data);
bool retval = false;
@@ -537,8 +535,8 @@ wslua_filehandler_dump_open(wtap_dumper *wdh, int *err, gchar **err_info)
END_FILEHANDLER_ROUTINE();
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
if (retval == true) {
/* this is our file type - set the routines and settings into wtap */
@@ -570,7 +568,7 @@ wslua_filehandler_dump_open(wtap_dumper *wdh, int *err, gchar **err_info)
*/
static bool
wslua_filehandler_dump(wtap_dumper *wdh, const wtap_rec *rec,
- const guint8 *pd, int *err, gchar **err_info)
+ const uint8_t *pd, int *err, char **err_info)
{
FileHandler fh = (FileHandler)(wdh->wslua_data);
int retval = -1;
@@ -579,7 +577,7 @@ wslua_filehandler_dump(wtap_dumper *wdh, const wtap_rec *rec,
CaptureInfoConst *fc = NULL;
FrameInfoConst *fi = NULL;
- INIT_FILEHANDLER_ROUTINE(write,FALSE,err,err_info);
+ INIT_FILEHANDLER_ROUTINE(write,false,err,err_info);
/* Reset errno */
if (err) {
@@ -600,9 +598,9 @@ wslua_filehandler_dump(wtap_dumper *wdh, const wtap_rec *rec,
END_FILEHANDLER_ROUTINE();
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
- (*fi)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
+ (*fi)->expired = true;
return (retval == 1);
}
@@ -611,7 +609,7 @@ wslua_filehandler_dump(wtap_dumper *wdh, const wtap_rec *rec,
* writes out the last information cleanly, else false.
*/
static bool
-wslua_filehandler_dump_finish(wtap_dumper *wdh, int *err, gchar **err_info)
+wslua_filehandler_dump_finish(wtap_dumper *wdh, int *err, char **err_info)
{
FileHandler fh = (FileHandler)(wdh->wslua_data);
int retval = -1;
@@ -619,7 +617,7 @@ wslua_filehandler_dump_finish(wtap_dumper *wdh, int *err, gchar **err_info)
File *fp = NULL;
CaptureInfoConst *fc = NULL;
- INIT_FILEHANDLER_ROUTINE(write_close,FALSE,err,err_info);
+ INIT_FILEHANDLER_ROUTINE(write_close,false,err,err_info);
/* Reset errno */
if (err) {
@@ -641,8 +639,8 @@ wslua_filehandler_dump_finish(wtap_dumper *wdh, int *err, gchar **err_info)
remove_wdh_priv(L, wdh);
- (*fp)->expired = TRUE;
- (*fc)->expired = TRUE;
+ (*fp)->expired = true;
+ (*fc)->expired = true;
return (retval == 1);
}
@@ -671,7 +669,7 @@ static const struct supported_block_type block_type_proto[] = {
{ WTAP_BLOCK_FT_SPECIFIC_EVENT, BLOCK_NOT_SUPPORTED, 0, NULL }
};
-#define NUM_LISTED_BLOCK_TYPES (sizeof block_type_proto / sizeof block_type_proto[0])
+#define NUM_LISTED_BLOCK_TYPES array_length(block_type_proto)
WSLUA_CONSTRUCTOR FileHandler_new(lua_State* L) {
/* Creates a new FileHandler */
@@ -680,15 +678,15 @@ WSLUA_CONSTRUCTOR FileHandler_new(lua_State* L) {
#define WSLUA_ARG_FileHandler_new_INTERNAL_DESCRIPTION 3 /* Descriptive text about this file format, for internal display purposes only */
#define WSLUA_ARG_FileHandler_new_TYPE 4 /* The type of FileHandler, "r"/"w"/"rw" for reader/writer/both, include "m" for magic, "s" for strong heuristic */
- const gchar* description = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_DESCRIPTION);
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_NAME);
- const gchar* internal_description = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_INTERNAL_DESCRIPTION);
- const gchar* type = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_TYPE);
+ const char* description = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_DESCRIPTION);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_NAME);
+ const char* internal_description = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_INTERNAL_DESCRIPTION);
+ const char* type = luaL_checkstring(L,WSLUA_ARG_FileHandler_new_TYPE);
FileHandler fh = (FileHandler) g_malloc0(sizeof(struct _wslua_filehandler));
struct supported_block_type *supported_blocks;
- fh->is_reader = (strchr(type,'r') != NULL) ? TRUE : FALSE;
- fh->is_writer = (strchr(type,'w') != NULL) ? TRUE : FALSE;
+ fh->is_reader = (strchr(type,'r') != NULL) ? true : false;
+ fh->is_writer = (strchr(type,'w') != NULL) ? true : false;
if (fh->is_reader && wtap_has_open_info(name)) {
g_free(fh);
@@ -706,7 +704,7 @@ WSLUA_CONSTRUCTOR FileHandler_new(lua_State* L) {
fh->finfo.name = g_strdup(name);
fh->finfo.default_file_extension = NULL;
fh->finfo.additional_file_extensions = NULL;
- fh->finfo.writing_must_seek = FALSE;
+ fh->finfo.writing_must_seek = false;
supported_blocks = (struct supported_block_type *)g_memdup2(&block_type_proto, sizeof block_type_proto);
/*
* Add a list of options to the seciton block, interface block, and
@@ -745,7 +743,7 @@ WSLUA_CONSTRUCTOR FileHandler_new(lua_State* L) {
fh->write_close_ref = LUA_NOREF;
fh->can_write_encap_ref = LUA_NOREF;
- fh->registered = FALSE;
+ fh->registered = false;
pushFileHandler(L,fh);
WSLUA_RETURN(1); /* The newly created FileHandler object */
@@ -775,7 +773,7 @@ static int FileHandler__gc(lua_State* L _U_) {
* a *reader* one MUST at least define read_open, read, and seek_read funcs; and
* a *writer* one MUST at least define can_write_encap, write_open, and write funcs
*/
-static gboolean verify_filehandler_complete(FileHandler fh) {
+static bool verify_filehandler_complete(FileHandler fh) {
return ((fh->is_reader || fh->is_writer) &&
(!fh->is_reader ||
(fh->is_reader &&
@@ -839,7 +837,7 @@ WSLUA_FUNCTION wslua_register_filehandler(lua_State* L) {
wtap_register_open_info(&oi, (strchr(fh->type,'s') != NULL));
}
- fh->registered = TRUE;
+ fh->registered = true;
registered_file_handlers = g_slist_prepend(registered_file_handlers, fh);
lua_pushinteger(L, fh->file_type);
@@ -871,7 +869,7 @@ wslua_deregister_filehandler_work(FileHandler fh)
wtap_deregister_open_info(fh->finfo.name);
}
- fh->registered = FALSE;
+ fh->registered = false;
}
WSLUA_FUNCTION wslua_deregister_filehandler(lua_State* L) {
@@ -1043,7 +1041,7 @@ WSLUA_ATTRIBUTE_FUNC_SETTER(FileHandler,write_close);
/* WSLUA_ATTRIBUTE FileHandler_type RO The internal file type. This is automatically set with a new
number when the FileHandler is registered. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FileHandler,type,file_type);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FileHandler,type,file_type);
/* WSLUA_ATTRIBUTE FileHandler_extensions RW One or more semicolon-separated file extensions that this file type usually uses.
@@ -1053,7 +1051,7 @@ WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FileHandler,type,file_type);
(Since 2.6) For writers, the first extension is used to suggest the default file extension. */
WSLUA_ATTRIBUTE_STRING_GETTER(FileHandler,extensions);
-WSLUA_ATTRIBUTE_STRING_SETTER(FileHandler,extensions,TRUE);
+WSLUA_ATTRIBUTE_STRING_SETTER(FileHandler,extensions,true);
/* WSLUA_ATTRIBUTE FileHandler_writing_must_seek RW True if the ability to seek is required when writing
this file format, else false.
@@ -1085,7 +1083,7 @@ DIAG_ON_CAST_AWAY_CONST
}
WSLUA_ATTRIBUTE_GET(FileHandler,writes_name_resolution,{ \
- gboolean supports_name_resolution = FALSE; \
+ bool supports_name_resolution = false; \
for (size_t i = 0; i < obj->finfo.num_supported_blocks; i++) { \
/* \
* If WTAP_BLOCK_NAME_RESOLUTION is supported, name \
@@ -1099,7 +1097,7 @@ WSLUA_ATTRIBUTE_GET(FileHandler,writes_name_resolution,{ \
lua_pushboolean(L, supports_name_resolution); \
});
WSLUA_ATTRIBUTE_SET(FileHandler,writes_name_resolution, { \
- gboolean supports_name_resolution; \
+ bool supports_name_resolution; \
if (!lua_isboolean(L,-1) ) \
return luaL_error(L, "FileHandler's attribute`writes_name_resolution' must be a boolean"); \
supports_name_resolution = lua_toboolean(L,-1); \
@@ -1138,7 +1136,7 @@ DIAG_ON_CAST_AWAY_CONST
}
WSLUA_ATTRIBUTE_GET(FileHandler,supported_comment_types,{ \
- guint supported_comment_types = 0; \
+ unsigned supported_comment_types = 0; \
for (size_t i = 0; i < obj->finfo.num_supported_blocks; i++) { \
size_t num_supported_options; \
const struct supported_option_type *supported_options;
@@ -1210,12 +1208,12 @@ WSLUA_ATTRIBUTE_GET(FileHandler,supported_comment_types,{ \
lua_pushinteger(L, (lua_Integer)supported_comment_types); \
});
WSLUA_ATTRIBUTE_SET(FileHandler,supported_comment_types, { \
- guint supported_comment_types; \
+ unsigned supported_comment_types; \
size_t num_supported_options; \
struct supported_option_type *supported_options; \
if (!lua_isnumber(L,-1) ) \
return luaL_error(L, "FileHandler's attribute`supported_comment_types' must be a number"); \
- supported_comment_types = wslua_toguint(L,-1); \
+ supported_comment_types = wslua_touint(L,-1); \
/* \
* Update support for comments in the relevant block types; the entries \
* for comments in those types should be there. \
@@ -1344,7 +1342,7 @@ int wslua_deregister_filehandlers(lua_State* L _U_) {
g_free(fh->type);
memset(fh, 0, sizeof(*fh));
- fh->removed = TRUE;
+ fh->removed = true;
proto_add_deregistered_data(fh);
}
g_slist_free(registered_file_handlers);
diff --git a/epan/wslua/wslua_frame_info.c b/epan/wslua/wslua_frame_info.c
index 72701d6f88..6a404be097 100644
--- a/epan/wslua/wslua_frame_info.c
+++ b/epan/wslua/wslua_frame_info.c
@@ -37,15 +37,13 @@ WSLUA_CLASS_DEFINE(FrameInfo,FAIL_ON_NULL_OR_EXPIRED("FrameInfo"));
whereas when the Lua plugin's `FileHandler.write()` function is invoked, the
`FrameInfo` object passed in should have its fields read-from/get, to write that
frame information to the file.
-
- @since 1.11.3
*/
FrameInfo* push_FrameInfo(lua_State* L, wtap_rec *rec, Buffer* buf) {
FrameInfo f = (FrameInfo) g_malloc0(sizeof(struct _wslua_phdr));
f->rec = rec;
f->buf = buf;
- f->expired = FALSE;
+ f->expired = false;
return pushFrameInfo(L,f);
}
@@ -73,9 +71,9 @@ WSLUA_METHOD FrameInfo_read_data(lua_State* L) {
#define WSLUA_ARG_FrameInfo_read_data_LENGTH 3 /* The number of bytes to read from the file at the current cursor position. */
FrameInfo fi = checkFrameInfo(L,1);
File fh = checkFile(L,WSLUA_ARG_FrameInfo_read_data_FILE);
- guint32 len = wslua_checkguint32(L, WSLUA_ARG_FrameInfo_read_data_LENGTH);
+ uint32_t len = wslua_checkuint32(L, WSLUA_ARG_FrameInfo_read_data_LENGTH);
int err = 0;
- gchar *err_info = NULL;
+ char *err_info = NULL;
if (!fi->buf || !fh->file) {
luaL_error(L, "FrameInfo read_data() got null buffer or file pointer internally");
@@ -83,7 +81,7 @@ WSLUA_METHOD FrameInfo_read_data(lua_State* L) {
}
if (!wtap_read_packet_bytes(fh->file, fi->buf, len, &err, &err_info)) {
- lua_pushboolean(L, FALSE);
+ lua_pushboolean(L, false);
if (err_info) {
lua_pushstring(L, err_info);
g_free(err_info); /* is this right? */
@@ -93,7 +91,7 @@ WSLUA_METHOD FrameInfo_read_data(lua_State* L) {
return 3;
}
- lua_pushboolean(L, TRUE);
+ lua_pushboolean(L, true);
WSLUA_RETURN(1); /* True if succeeded, else returns false along with the error number and string error description. */
}
@@ -109,10 +107,10 @@ static int FrameInfo__gc(lua_State* L) {
static int FrameInfo_get_comment (lua_State* L) {
FrameInfo fi = checkFrameInfo(L,1);
#define FRAMEINFO_COMMENTS_TABLE 2
- gchar *comment = NULL;
+ char *comment = NULL;
wtap_block_t block = NULL;
- guint i = 0;
- guint n_comments = 0;
+ unsigned i = 0;
+ unsigned n_comments = 0;
block = fi->rec->block;
// XXX - how to get the user-edited block, if any?
@@ -139,10 +137,10 @@ static int FrameInfo_set_comment (lua_State* L) {
#define FRAMEINFO_COMMENTS_NEWTABLE 2
#define FRAMEINFO_COMMENTS_NEWCOMMENT 2
size_t len = 0;
- gchar *comment = NULL;
+ char *comment = NULL;
wtap_block_t block = NULL;
- guint i = 0;
- guint n_comments = 0;
+ unsigned i = 0;
+ unsigned n_comments = 0;
if(fi->rec->block != NULL) {
block = fi->rec->block;
@@ -162,7 +160,7 @@ static int FrameInfo_set_comment (lua_State* L) {
if (lua_istable(L, FRAMEINFO_COMMENTS_NEWTABLE)) {
for (lua_pushnil(L); lua_next(L, FRAMEINFO_COMMENTS_NEWTABLE); ) {
if (lua_isstring(L,-1)) {
- comment = (gchar *)luaL_checklstring(L,-1,&len);
+ comment = (char *)luaL_checklstring(L,-1,&len);
wtap_block_add_string_option(block, OPT_COMMENT, comment, len);
} else if (! lua_isnil(L,-1) ) {
return luaL_error(L,"only strings should be in the table");
@@ -171,7 +169,7 @@ static int FrameInfo_set_comment (lua_State* L) {
}
}
else if (lua_isstring(L, FRAMEINFO_COMMENTS_NEWCOMMENT)) {
- comment = (gchar *)luaL_checklstring(L,FRAMEINFO_COMMENTS_NEWCOMMENT,&len);
+ comment = (char *)luaL_checklstring(L,FRAMEINFO_COMMENTS_NEWCOMMENT,&len);
wtap_block_add_string_option(block, OPT_COMMENT, comment, len);
}
else {
@@ -233,13 +231,13 @@ static int FrameInfo_set_data (lua_State* L) {
if (lua_isstring(L,2)) {
size_t len = 0;
- const gchar* s = luaL_checklstring(L,2,&len);
+ const char* s = luaL_checklstring(L,2,&len);
/* Make sure we have enough room for the packet */
ws_buffer_assure_space(fi->buf, len);
memcpy(ws_buffer_start_ptr(fi->buf), s, len);
- fi->rec->rec_header.packet_header.caplen = (guint32) len;
- fi->rec->rec_header.packet_header.len = (guint32) len;
+ fi->rec->rec_header.packet_header.caplen = (uint32_t) len;
+ fi->rec->rec_header.packet_header.len = (uint32_t) len;
}
else
luaL_error(L, "FrameInfo's attribute 'data' must be a Lua string");
@@ -260,30 +258,30 @@ static int FrameInfo_get_data (lua_State* L) {
/* WSLUA_ATTRIBUTE FrameInfo_rec_type RW The record type of the packet frame
See `wtap_rec_types` for values. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfo,rec_type,rec->rec_type);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(FrameInfo,rec_type,rec->rec_type,guint);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfo,rec_type,rec->rec_type);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(FrameInfo,rec_type,rec->rec_type,unsigned);
/* WSLUA_ATTRIBUTE FrameInfo_flags RW The presence flags of the packet frame.
See `wtap_presence_flags` for bit values. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfo,flags,rec->presence_flags);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(FrameInfo,flags,rec->presence_flags,guint32);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfo,flags,rec->presence_flags);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(FrameInfo,flags,rec->presence_flags,uint32_t);
/* WSLUA_ATTRIBUTE FrameInfo_captured_length RW The captured packet length,
and thus the length of the buffer passed to the `FrameInfo.data` field. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfo,captured_length,rec->rec_header.packet_header.caplen);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(FrameInfo,captured_length,rec->rec_header.packet_header.caplen,guint32);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfo,captured_length,rec->rec_header.packet_header.caplen);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(FrameInfo,captured_length,rec->rec_header.packet_header.caplen,uint32_t);
/* WSLUA_ATTRIBUTE FrameInfo_original_length RW The on-the-wire packet length,
which may be longer than the `captured_length`. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfo,original_length,rec->rec_header.packet_header.len);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(FrameInfo,original_length,rec->rec_header.packet_header.len,guint32);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfo,original_length,rec->rec_header.packet_header.len);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(FrameInfo,original_length,rec->rec_header.packet_header.len,uint32_t);
/* WSLUA_ATTRIBUTE FrameInfo_encap RW The packet encapsulation type for the frame/packet,
if the file supports per-packet types. See `wtap_encaps` for possible
packet encapsulation types to use as the value for this field. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfo,encap,rec->rec_header.packet_header.pkt_encap);
-WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(FrameInfo,encap,rec->rec_header.packet_header.pkt_encap,int);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfo,encap,rec->rec_header.packet_header.pkt_encap);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(FrameInfo,encap,rec->rec_header.packet_header.pkt_encap,int);
/* This table is ultimately registered as a sub-table of the class' metatable,
* and if __index/__newindex is invoked then it calls the appropriate function
@@ -321,15 +319,13 @@ WSLUA_CLASS_DEFINE(FrameInfoConst,FAIL_ON_NULL_OR_EXPIRED("FrameInfo"));
A constant FrameInfo object, passed into Lua as an argument by the FileHandler write
callback function. This has similar attributes/properties as FrameInfo, but the fields can
only be read from, not written to.
-
- @since 1.11.3
*/
-FrameInfoConst* push_FrameInfoConst(lua_State* L, const wtap_rec *rec, const guint8 *pd) {
+FrameInfoConst* push_FrameInfoConst(lua_State* L, const wtap_rec *rec, const uint8_t *pd) {
FrameInfoConst f = (FrameInfoConst) g_malloc(sizeof(struct _wslua_const_phdr));
f->rec = rec;
f->pd = pd;
- f->expired = FALSE;
+ f->expired = false;
return pushFrameInfoConst(L,f);
}
@@ -357,7 +353,7 @@ WSLUA_METHOD FrameInfoConst_write_data(lua_State* L) {
#define WSLUA_OPTARG_FrameInfoConst_write_data_LENGTH 3 /* The number of bytes to write to the file at the current cursor position, or all if not supplied. */
FrameInfoConst fi = checkFrameInfoConst(L,1);
File fh = checkFile(L,WSLUA_ARG_FrameInfoConst_write_data_FILE);
- guint32 len = wslua_optguint32(L, WSLUA_OPTARG_FrameInfoConst_write_data_LENGTH, fi->rec ? fi->rec->rec_header.packet_header.caplen:0);
+ uint32_t len = wslua_optuint32(L, WSLUA_OPTARG_FrameInfoConst_write_data_LENGTH, fi->rec ? fi->rec->rec_header.packet_header.caplen:0);
int err = 0;
if (!fi->pd || !fi->rec || !fh->wdh) {
@@ -369,13 +365,13 @@ WSLUA_METHOD FrameInfoConst_write_data(lua_State* L) {
len = fi->rec->rec_header.packet_header.caplen;
if (!wtap_dump_file_write(fh->wdh, fi->pd, (size_t)(len), &err)) {
- lua_pushboolean(L, FALSE);
+ lua_pushboolean(L, false);
lua_pushfstring(L, "FrameInfoConst write_data() error: %s", g_strerror(err));
lua_pushinteger(L, err);
return 3;
}
- lua_pushboolean(L, TRUE);
+ lua_pushboolean(L, true);
WSLUA_RETURN(1); /* True if succeeded, else returns false along with the error number and string error description. */
}
@@ -392,10 +388,10 @@ static int FrameInfoConst__gc(lua_State* L) {
static int FrameInfoConst_get_comment (lua_State* L) {
FrameInfoConst fi = checkFrameInfoConst(L,1);
#define FRAMEINFOCONST_COMMENTS_TABLE 2
- gchar *comment = NULL;
+ char *comment = NULL;
wtap_block_t block = NULL;
- guint i = 0;
- guint n_comments = 0;
+ unsigned i = 0;
+ unsigned n_comments = 0;
block = fi->rec->block;
// XXX - how to get the user-edited block, if any?
@@ -444,21 +440,21 @@ static int FrameInfoConst_get_data (lua_State* L) {
}
/* WSLUA_ATTRIBUTE FrameInfoConst_rec_type RO The record type of the packet frame - see `wtap_presence_flags` for values. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfoConst,rec_type,rec->rec_type);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfoConst,rec_type,rec->rec_type);
/* WSLUA_ATTRIBUTE FrameInfoConst_flags RO The presence flags of the packet frame - see `wtap_presence_flags` for bits. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfoConst,flags,rec->presence_flags);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfoConst,flags,rec->presence_flags);
/* WSLUA_ATTRIBUTE FrameInfoConst_captured_length RO The captured packet length, and thus the length of the buffer in the FrameInfoConst.data field. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfoConst,captured_length,rec->rec_header.packet_header.caplen);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfoConst,captured_length,rec->rec_header.packet_header.caplen);
/* WSLUA_ATTRIBUTE FrameInfoConst_original_length RO The on-the-wire packet length, which may be longer than the `captured_length`. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfoConst,original_length,rec->rec_header.packet_header.len);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfoConst,original_length,rec->rec_header.packet_header.len);
/* WSLUA_ATTRIBUTE FrameInfoConst_encap RO The packet encapsulation type, if the file supports per-packet types.
See `wtap_encaps` for possible packet encapsulation types to use as the value for this field. */
-WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(FrameInfoConst,encap,rec->rec_header.packet_header.pkt_encap);
+WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(FrameInfoConst,encap,rec->rec_header.packet_header.pkt_encap);
WSLUA_ATTRIBUTES FrameInfoConst_attributes[] = {
WSLUA_ATTRIBUTE_ROREG(FrameInfoConst,rec_type),
diff --git a/epan/wslua/wslua_gui.c b/epan/wslua/wslua_gui.c
index 373c925e24..261e34e1ca 100644
--- a/epan/wslua/wslua_gui.c
+++ b/epan/wslua/wslua_gui.c
@@ -18,7 +18,7 @@
/* WSLUA_MODULE Gui GUI Support */
-static const funnel_ops_t* ops = NULL;
+static const funnel_ops_t* ops;
struct _lua_menu_data {
lua_State* L;
@@ -26,7 +26,7 @@ struct _lua_menu_data {
};
static int menu_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
+ const char* error = lua_tostring(L,1);
report_failure("Lua: Error during execution of Menu callback:\n %s",error);
return 0;
}
@@ -36,7 +36,7 @@ WSLUA_FUNCTION wslua_gui_enabled(lua_State* L) { /* Checks if we're running insi
WSLUA_RETURN(1); /* Boolean `true` if a GUI is available, `false` if it isn't. */
}
-static void lua_menu_callback(gpointer data) {
+static void lua_menu_callback(void *data) {
struct _lua_menu_data* md = (struct _lua_menu_data *)data;
lua_State* L = md->L;
@@ -101,10 +101,10 @@ WSLUA_FUNCTION wslua_register_menu(lua_State* L) { /* Register a menu item in o
* MENU_STAT_UNSORTED, superseded by MENU_PACKET_STAT_UNSORTED
*/
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_register_menu_NAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_register_menu_NAME);
struct _lua_menu_data* md;
- gboolean retap = FALSE;
- register_stat_group_t group = (register_stat_group_t)wslua_optguint(L,WSLUA_OPTARG_register_menu_GROUP,REGISTER_STAT_GROUP_GENERIC);
+ bool retap = false;
+ register_stat_group_t group = (register_stat_group_t)wslua_optuint(L,WSLUA_OPTARG_register_menu_GROUP,REGISTER_STAT_GROUP_GENERIC);
if ( group > REGISTER_TOOLS_GROUP_UNSORTED) {
WSLUA_OPTARG_ERROR(register_menu,GROUP,"Must be a defined MENU_*");
@@ -144,7 +144,7 @@ void wslua_deregister_menus(void) {
* @return Always returns 0
*/
static int packet_menu_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
+ const char* error = lua_tostring(L,1);
report_failure("Lua: Error During execution of Packet Menu Callback:\n %s",error);
return 0;
}
@@ -156,7 +156,7 @@ static int packet_menu_cb_error_handler(lua_State* L) {
* @param data Lua menu data
* @param finfo_array packet data
*/
-static void lua_custom_packet_menu_callback(gpointer data, GPtrArray *finfo_array) {
+static void lua_custom_packet_menu_callback(void *data, GPtrArray *finfo_array) {
// _lua_menu_data is State + the integer index of a callback.
struct _lua_menu_data* md = (struct _lua_menu_data *)data;
lua_State* L = md->L;
@@ -167,7 +167,7 @@ static void lua_custom_packet_menu_callback(gpointer data, GPtrArray *finfo_arra
// Push the packet data as arguments to the Lua callback:
int items_found = 0;
- for (guint i = 0; i < finfo_array->len; i ++) {
+ for (unsigned i = 0; i < finfo_array->len; i ++) {
field_info *fi = (field_info *)g_ptr_array_index (finfo_array, i);
push_FieldInfo(L, fi);
items_found++;
@@ -198,11 +198,11 @@ WSLUA_FUNCTION wslua_register_packet_menu(lua_State* L) { /* Register a menu it
#define WSLUA_ARG_register_packet_menu_ACTION 2 /* The function to be called when the menu item is invoked. The function must take a variable number of arguments and return nothing. The arguments will be FieldInfo objects, one for each field present in the selected packet. */
#define WSLUA_OPTARG_register_packet_menu_REQUIRED_FIELDS 3 /* A comma-separated list of packet fields (e.g., http.host,dns.qry.name) which all must be present for the menu to be displayed. If omitted, the packet menu will be displayed for all packets. */
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_register_packet_menu_NAME);
- const gchar* required_fields = luaL_optstring(L,WSLUA_OPTARG_register_packet_menu_REQUIRED_FIELDS,"");
+ const char* name = luaL_checkstring(L,WSLUA_ARG_register_packet_menu_NAME);
+ const char* required_fields = luaL_optstring(L,WSLUA_OPTARG_register_packet_menu_REQUIRED_FIELDS,"");
struct _lua_menu_data* md;
- gboolean retap = FALSE;
+ bool retap = false;
if (!lua_isfunction(L,WSLUA_ARG_register_packet_menu_ACTION)) {
WSLUA_ARG_ERROR(register_packet_menu,ACTION,"Must be a function");
@@ -230,15 +230,15 @@ struct _dlg_cb_data {
};
static int dlg_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
+ const char* error = lua_tostring(L,1);
report_failure("Lua: Error during execution of Dialog callback:\n %s",error);
return 0;
}
-static void lua_dialog_cb(gchar** user_input, void* data) {
+static void lua_dialog_cb(char** user_input, void* data) {
struct _dlg_cb_data* dcbd = (struct _dlg_cb_data *)data;
int i = 0;
- gchar* input;
+ char* input;
lua_State* L = dcbd->L;
lua_settop(L,0);
@@ -279,7 +279,7 @@ struct _close_cb_data {
static int text_win_close_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
+ const char* error = lua_tostring(L,1);
report_failure("Lua: Error during execution of TextWindow close callback:\n %s",error);
return 0;
}
@@ -315,7 +315,7 @@ static void text_win_close_cb(void* data) {
g_free(cbd->wslua_tw);
g_free(cbd);
} else {
- cbd->wslua_tw->expired = TRUE;
+ cbd->wslua_tw->expired = true;
}
}
@@ -354,7 +354,7 @@ WSLUA_FUNCTION wslua_new_dialog(lua_State* L) { /*
/* WSLUA_MOREARGS new_dialog Strings to be used as labels of the dialog's fields. Each string creates a new labeled field. The first field is required.
Instead of a string it is possible to provide tables with fields 'name' and 'value' of type string. Then the created dialog's field will be labeled with the content of name and prefilled with the content of value.*/
- const gchar* title;
+ const char* title;
int top = lua_gettop(L);
int i;
GPtrArray* field_names;
@@ -402,10 +402,10 @@ Instead of a string it is possible to provide tables with fields 'name' and 'val
{
if (lua_isstring(L, i))
{
- gchar* field_name = g_strdup(luaL_checkstring(L, i));
- gchar* field_value = g_strdup("");
- g_ptr_array_add(field_names, (gpointer)field_name);
- g_ptr_array_add(field_values, (gpointer)field_value);
+ char* field_name = g_strdup(luaL_checkstring(L, i));
+ char* field_value = g_strdup("");
+ g_ptr_array_add(field_names, (void *)field_name);
+ g_ptr_array_add(field_values, (void *)field_value);
}
else if (lua_istable(L, i))
{
@@ -416,27 +416,27 @@ Instead of a string it is possible to provide tables with fields 'name' and 'val
{
lua_pop(L, 2);
- g_ptr_array_free(field_names, TRUE);
- g_ptr_array_free(field_values, TRUE);
+ g_ptr_array_free(field_names, true);
+ g_ptr_array_free(field_values, true);
g_free(dcbd);
WSLUA_ERROR(new_dialog, "All fields must be strings or a table with a string field 'name'.");
return 0;
}
- gchar* field_name = g_strdup(luaL_checkstring(L, -2));
- gchar* field_value = lua_isstring(L, -1) ?
+ char* field_name = g_strdup(luaL_checkstring(L, -2));
+ char* field_value = lua_isstring(L, -1) ?
g_strdup(luaL_checkstring(L, -1)) :
g_strdup("");
- g_ptr_array_add(field_names, (gpointer)field_name);
- g_ptr_array_add(field_values, (gpointer)field_value);
+ g_ptr_array_add(field_names, (void *)field_name);
+ g_ptr_array_add(field_values, (void *)field_value);
lua_pop(L, 2);
}
else
{
- g_ptr_array_free(field_names, TRUE);
- g_ptr_array_free(field_values, TRUE);
+ g_ptr_array_free(field_names, true);
+ g_ptr_array_free(field_values, true);
g_free(dcbd);
WSLUA_ERROR(new_dialog, "All fields must be strings or a table with a string field 'name'.");
return 0;
@@ -446,10 +446,10 @@ Instead of a string it is possible to provide tables with fields 'name' and 'val
g_ptr_array_add(field_names, NULL);
g_ptr_array_add(field_values, NULL);
- ops->new_dialog(ops->ops_id, title, (const gchar**)(field_names->pdata), (const gchar**)(field_values->pdata), lua_dialog_cb, dcbd, g_free);
+ ops->new_dialog(ops->ops_id, title, (const char**)(field_names->pdata), (const char**)(field_values->pdata), lua_dialog_cb, dcbd, g_free);
- g_ptr_array_free(field_names, TRUE);
- g_ptr_array_free(field_values, TRUE);
+ g_ptr_array_free(field_names, true);
+ g_ptr_array_free(field_values, true);
WSLUA_RETURN(0);
}
@@ -532,10 +532,10 @@ WSLUA_CONSTRUCTOR ProgDlg_new(lua_State* L) { /*
ProgDlg pd = (ProgDlg)g_malloc(sizeof(struct _wslua_progdlg));
pd->title = g_strdup(luaL_optstring(L,WSLUA_OPTARG_ProgDlg_new_TITLE,"Progress"));
pd->task = g_strdup(luaL_optstring(L,WSLUA_OPTARG_ProgDlg_new_TASK,""));
- pd->stopped = FALSE;
+ pd->stopped = false;
if (ops->new_progress_window) {
- pd->pw = ops->new_progress_window(ops->ops_id, pd->title, pd->task, TRUE, &(pd->stopped));
+ pd->pw = ops->new_progress_window(ops->ops_id, pd->title, pd->task, true, &(pd->stopped));
} else {
g_free (pd);
WSLUA_ERROR(ProgDlg_new, "GUI not available");
@@ -552,7 +552,7 @@ WSLUA_METHOD ProgDlg_update(lua_State* L) { /* Sets the progress dialog's progre
#define WSLUA_OPTARG_ProgDlg_update_TASK 3 /* Task name. Currently ignored. Defaults to empty string (""). */
ProgDlg pd = checkProgDlg(L,1);
double pr = lua_tonumber(L,WSLUA_ARG_ProgDlg_update_PROGRESS);
- const gchar* task = luaL_optstring(L,WSLUA_OPTARG_ProgDlg_update_TASK,"");
+ const char* task = luaL_optstring(L,WSLUA_OPTARG_ProgDlg_update_TASK,"");
if (!ops->update_progress) {
WSLUA_ERROR(ProgDlg_update,"GUI not available");
@@ -699,7 +699,7 @@ WSLUA_CONSTRUCTOR TextWindow_new(lua_State* L) { /*
*/
#define WSLUA_OPTARG_TextWindow_new_TITLE 1 /* Title of the new window. Optional. Defaults to "Untitled Window". */
- const gchar* title;
+ const char* title;
TextWindow tw = NULL;
struct _close_cb_data* default_cbd;
@@ -710,7 +710,7 @@ WSLUA_CONSTRUCTOR TextWindow_new(lua_State* L) { /*
title = luaL_optstring(L,WSLUA_OPTARG_TextWindow_new_TITLE, "Untitled Window");
tw = g_new(struct _wslua_tw, 1);
- tw->expired = FALSE;
+ tw->expired = false;
tw->ws_tw = ops->new_text_window(ops->ops_id, title);
default_cbd = g_new(struct _close_cb_data, 1);
@@ -765,7 +765,7 @@ WSLUA_METHOD TextWindow_set(lua_State* L) { /* Sets the text to be displayed. */
#define WSLUA_ARG_TextWindow_set_TEXT 2 /* The text to be displayed. */
TextWindow tw = checkTextWindow(L,1);
- const gchar* text = luaL_checkstring(L,WSLUA_ARG_TextWindow_set_TEXT);
+ const char* text = luaL_checkstring(L,WSLUA_ARG_TextWindow_set_TEXT);
if (!ops->set_text) {
WSLUA_ERROR(TextWindow_set,"GUI not available");
@@ -781,7 +781,7 @@ WSLUA_METHOD TextWindow_set(lua_State* L) { /* Sets the text to be displayed. */
WSLUA_METHOD TextWindow_append(lua_State* L) { /* Appends text to the current window contents. */
#define WSLUA_ARG_TextWindow_append_TEXT 2 /* The text to be appended. */
TextWindow tw = checkTextWindow(L,1);
- const gchar* text = luaL_checkstring(L,WSLUA_ARG_TextWindow_append_TEXT);
+ const char* text = luaL_checkstring(L,WSLUA_ARG_TextWindow_append_TEXT);
if (!ops->append_text) {
WSLUA_ERROR(TextWindow_append,"GUI not available");
@@ -797,7 +797,7 @@ WSLUA_METHOD TextWindow_append(lua_State* L) { /* Appends text to the current wi
WSLUA_METHOD TextWindow_prepend(lua_State* L) { /* Prepends text to the current window contents. */
#define WSLUA_ARG_TextWindow_prepend_TEXT 2 /* The text to be prepended. */
TextWindow tw = checkTextWindow(L,1);
- const gchar* text = luaL_checkstring(L,WSLUA_ARG_TextWindow_prepend_TEXT);
+ const char* text = luaL_checkstring(L,WSLUA_ARG_TextWindow_prepend_TEXT);
if (!ops->prepend_text) {
WSLUA_ERROR(TextWindow_prepend,"GUI not available");
@@ -826,7 +826,7 @@ WSLUA_METHOD TextWindow_clear(lua_State* L) { /* Erases all of the text in the w
WSLUA_METHOD TextWindow_get_text(lua_State* L) { /* Get the text of the window. */
TextWindow tw = checkTextWindow(L,1);
- const gchar* text;
+ const char* text;
if (!ops->get_text) {
WSLUA_ERROR(TextWindow_get_text,"GUI not available");
@@ -861,7 +861,7 @@ static int TextWindow__gc(lua_State* L) {
return 0;
if (!tw->expired) {
- tw->expired = TRUE;
+ tw->expired = true;
if (ops->destroy_text_window) {
ops->destroy_text_window(tw->ws_tw);
}
@@ -877,7 +877,7 @@ WSLUA_METHOD TextWindow_set_editable(lua_State* L) { /* Make this text window ed
#define WSLUA_OPTARG_TextWindow_set_editable_EDITABLE 2 /* `true` to make the text editable, `false` otherwise. Defaults to `true`. */
TextWindow tw = checkTextWindow(L,1);
- gboolean editable = wslua_optbool(L,WSLUA_OPTARG_TextWindow_set_editable_EDITABLE,TRUE);
+ bool editable = wslua_optbool(L,WSLUA_OPTARG_TextWindow_set_editable_EDITABLE,true);
if (!ops->set_editable) {
WSLUA_ERROR(TextWindow_set_editable,"GUI not available");
@@ -895,7 +895,7 @@ typedef struct _wslua_bt_cb_t {
int wslua_tw_ref;
} wslua_bt_cb_t;
-static gboolean wslua_button_callback(funnel_text_window_t* ws_tw, void* data) {
+static bool wslua_button_callback(funnel_text_window_t* ws_tw, void* data) {
wslua_bt_cb_t* cbd = (wslua_bt_cb_t *)data;
lua_State* L = cbd->L;
(void) ws_tw; /* ws_tw is unused since we need wslua_tw_ref and it is stored in cbd */
@@ -922,7 +922,7 @@ static gboolean wslua_button_callback(funnel_text_window_t* ws_tw, void* data) {
break;
}
- return TRUE;
+ return true;
}
WSLUA_METHOD TextWindow_add_button(lua_State* L) {
@@ -930,7 +930,7 @@ WSLUA_METHOD TextWindow_add_button(lua_State* L) {
#define WSLUA_ARG_TextWindow_add_button_LABEL 2 /* The button label. */
#define WSLUA_ARG_TextWindow_add_button_FUNCTION 3 /* The Lua function to be called when the button is pressed. */
TextWindow tw = checkTextWindow(L,1);
- const gchar* label = luaL_checkstring(L,WSLUA_ARG_TextWindow_add_button_LABEL);
+ const char* label = luaL_checkstring(L,WSLUA_ARG_TextWindow_add_button_LABEL);
funnel_bt_t* fbt;
wslua_bt_cb_t* cbd;
@@ -1023,7 +1023,7 @@ WSLUA_FUNCTION wslua_copy_to_clipboard(lua_State* L) { /* Copy a string into the
ops->copy_to_clipboard(gstr);
- g_string_free(gstr,TRUE);
+ g_string_free(gstr,true);
return 0;
}
@@ -1042,7 +1042,7 @@ WSLUA_FUNCTION wslua_open_capture_file(lua_State* L) { /* Open and display a cap
}
if (! ops->open_file(ops->ops_id, fname, filter, &error) ) {
- lua_pushboolean(L,FALSE);
+ lua_pushboolean(L,false);
if (error) {
lua_pushstring(L,error);
@@ -1052,7 +1052,7 @@ WSLUA_FUNCTION wslua_open_capture_file(lua_State* L) { /* Open and display a cap
return 2;
} else {
- lua_pushboolean(L,TRUE);
+ lua_pushboolean(L,true);
return 1;
}
}
@@ -1108,8 +1108,8 @@ WSLUA_FUNCTION wslua_get_color_filter_slot(lua_State* L) { /*
|10 |e0e0e0 |{set:cellbgcolor:#e0e0e0} gray
|===
*/
- guint8 row = (guint8)luaL_checkinteger(L, WSLUA_ARG_get_color_filter_slot_ROW);
- gchar* filter_str = NULL;
+ uint8_t row = (uint8_t)luaL_checkinteger(L, WSLUA_ARG_get_color_filter_slot_ROW);
+ char* filter_str = NULL;
if (!ops->get_color_filter_slot) {
WSLUA_ERROR(get_color_filter_slot, "GUI not available");
@@ -1165,8 +1165,8 @@ WSLUA_FUNCTION wslua_set_color_filter_slot(lua_State* L) { /*
*/
#define WSLUA_ARG_set_color_filter_slot_TEXT 2 /* The https://gitlab.com/wireshark/wireshark/-/wikis/DisplayFilters[display filter] for selecting packets to be colorized
. */
- guint8 row = (guint8)luaL_checkinteger(L,WSLUA_ARG_set_color_filter_slot_ROW);
- const gchar* filter_str = luaL_checkstring(L,WSLUA_ARG_set_color_filter_slot_TEXT);
+ uint8_t row = (uint8_t)luaL_checkinteger(L,WSLUA_ARG_set_color_filter_slot_ROW);
+ const char* filter_str = luaL_checkstring(L,WSLUA_ARG_set_color_filter_slot_TEXT);
if (!ops->set_color_filter_slot) {
WSLUA_ERROR(set_color_filter_slot, "GUI not available");
diff --git a/epan/wslua/wslua_int64.c b/epan/wslua/wslua_int64.c
index 17c00f06e8..10ae5f0441 100644
--- a/epan/wslua/wslua_int64.c
+++ b/epan/wslua/wslua_int64.c
@@ -83,9 +83,9 @@ either expressed or implied, of the FreeBSD Project.
#define LUATYPE64_STRING_SIZE 21 /* string to hold 18446744073709551615 */
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define IS_LITTLE_ENDIAN TRUE
+#define IS_LITTLE_ENDIAN true
#else
-#define IS_LITTLE_ENDIAN FALSE
+#define IS_LITTLE_ENDIAN false
#endif
WSLUA_CLASS_DEFINE_BASE(Int64,NOP,0);
@@ -95,15 +95,15 @@ WSLUA_CLASS_DEFINE_BASE(Int64,NOP,0);
Note the caveats <<lua_module_Int64,listed above>>.
*/
-/* A checkInt64 but that also auto-converts numbers, strings, and UINT64 to a gint64 */
-static gint64 getInt64(lua_State *L, int i)
+/* A checkInt64 but that also auto-converts numbers, strings, and UINT64 to a int64_t */
+static int64_t getInt64(lua_State *L, int i)
{
- gchar *end = NULL;
+ char *end = NULL;
(void) end;
switch (lua_type(L,i))
{
case LUA_TNUMBER:
- return wslua_checkgint64(L,i);
+ return wslua_checkint64(L,i);
case LUA_TSTRING:
return g_ascii_strtoll(luaL_checkstring(L,i),&end,10);
case LUA_TUSERDATA:
@@ -118,36 +118,34 @@ static gint64 getInt64(lua_State *L, int i)
/* Encodes Int64 userdata into Lua string struct with given endianness */
-void Int64_pack(lua_State* L, luaL_Buffer *b, gint idx, gboolean asLittleEndian) {
- gint64 value = checkInt64(L,idx);
- gint8 buff[sizeof(gint64)];
+void Int64_pack(lua_State* L, luaL_Buffer *b, int idx, bool asLittleEndian) {
+ int64_t value = checkInt64(L,idx);
+ int8_t buff[sizeof(int64_t)];
if (asLittleEndian) {
- guint i;
- for (i = 0; i < sizeof(gint64); i++) {
+ unsigned i;
+ for (i = 0; i < sizeof(int64_t); i++) {
buff[i] = (value & 0xff);
value >>= 8;
}
}
else {
- gint i;
- for (i = sizeof(gint64) - 1; i >= 0; i--) {
+ int i;
+ for (i = sizeof(int64_t) - 1; i >= 0; i--) {
buff[i] = (value & 0xff);
value >>= 8;
}
}
- luaL_addlstring(b, (char*)buff, sizeof(gint64));
+ luaL_addlstring(b, (char*)buff, sizeof(int64_t));
}
WSLUA_METHOD Int64_encode(lua_State* L) {
- /* Encodes the <<lua_class_Int64,`Int64`>> number into an 8-byte Lua string using the given endianness.
- @since 1.11.3
- */
+ /* Encodes the <<lua_class_Int64,`Int64`>> number into an 8-byte Lua string using the given endianness. */
#define WSLUA_OPTARG_Int64_encode_ENDIAN 2 /* If set to true then little-endian is used,
if false then big-endian; if missing or `nil`,
native host endian. */
luaL_Buffer b;
- gboolean asLittleEndian = IS_LITTLE_ENDIAN;
+ bool asLittleEndian = IS_LITTLE_ENDIAN;
if (lua_gettop(L) >= WSLUA_OPTARG_Int64_encode_ENDIAN) {
if (lua_type(L,WSLUA_OPTARG_Int64_encode_ENDIAN) == LUA_TBOOLEAN)
@@ -163,20 +161,20 @@ WSLUA_METHOD Int64_encode(lua_State* L) {
}
/* Decodes from string buffer struct into Int64 userdata, with given endianness */
-int Int64_unpack(lua_State* L, const gchar *buff, gboolean asLittleEndian) {
- gint64 value = 0;
- gint i;
+int Int64_unpack(lua_State* L, const char *buff, bool asLittleEndian) {
+ int64_t value = 0;
+ int i;
if (asLittleEndian) {
- for (i = sizeof(gint64) - 1; i >= 0; i--) {
+ for (i = sizeof(int64_t) - 1; i >= 0; i--) {
value <<= 8;
- value |= (gint64)(guchar)buff[i];
+ value |= (int64_t)(unsigned char)buff[i];
}
}
else {
- for (i = 0; i < (gint) sizeof(gint64); i++) {
+ for (i = 0; i < (int) sizeof(int64_t); i++) {
value <<= 8;
- value |= (gint64)(guchar)buff[i];
+ value |= (int64_t)(unsigned char)buff[i];
}
}
@@ -185,23 +183,21 @@ int Int64_unpack(lua_State* L, const gchar *buff, gboolean asLittleEndian) {
}
WSLUA_CONSTRUCTOR Int64_decode(lua_State* L) {
- /* Decodes an 8-byte Lua string, using the given endianness, into a new <<lua_class_Int64,`Int64`>> object.
- @since 1.11.3
- */
+ /* Decodes an 8-byte Lua string, using the given endianness, into a new <<lua_class_Int64,`Int64`>> object. */
#define WSLUA_ARG_Int64_decode_STRING 1 /* The Lua string containing a binary 64-bit integer. */
#define WSLUA_OPTARG_Int64_decode_ENDIAN 2 /* If set to true then little-endian is used,
if false then big-endian; if missing or `nil`, native
host endian. */
- gboolean asLittleEndian = IS_LITTLE_ENDIAN;
+ bool asLittleEndian = IS_LITTLE_ENDIAN;
size_t len = 0;
- const gchar *s = luaL_checklstring(L, WSLUA_ARG_Int64_decode_STRING, &len);
+ const char *s = luaL_checklstring(L, WSLUA_ARG_Int64_decode_STRING, &len);
if (lua_gettop(L) >= WSLUA_OPTARG_Int64_decode_ENDIAN) {
if (lua_type(L,WSLUA_OPTARG_Int64_decode_ENDIAN) == LUA_TBOOLEAN)
asLittleEndian = lua_toboolean(L,WSLUA_OPTARG_Int64_decode_ENDIAN);
}
- if (len == sizeof(gint64)) {
+ if (len == sizeof(int64_t)) {
Int64_unpack(L, s, asLittleEndian);
} else {
lua_pushnil(L);
@@ -211,26 +207,24 @@ WSLUA_CONSTRUCTOR Int64_decode(lua_State* L) {
}
WSLUA_CONSTRUCTOR Int64_new(lua_State* L) {
- /* Creates a <<lua_class_Int64,`Int64`>> Object.
- @since 1.11.3
- */
+ /* Creates a <<lua_class_Int64,`Int64`>> object. */
#define WSLUA_OPTARG_Int64_new_VALUE 1 /* A number, <<lua_class_UInt64,`UInt64`>>, <<lua_class_Int64,`Int64`>>, or string of ASCII digits
to assign the value of the new <<lua_class_Int64,`Int64`>>. Default is 0. */
#define WSLUA_OPTARG_Int64_new_HIGHVALUE 2 /* If this is a number and the first argument was
a number, then the first will be treated as a
lower 32 bits, and this is the high-order 32
bit number. */
- gint64 value = 0;
+ int64_t value = 0;
if (lua_gettop(L) >= 1) {
switch(lua_type(L, WSLUA_OPTARG_Int64_new_VALUE)) {
case LUA_TNUMBER:
- value = wslua_togint64(L, WSLUA_OPTARG_Int64_new_VALUE);
+ value = wslua_toint64(L, WSLUA_OPTARG_Int64_new_VALUE);
if (lua_gettop(L) == 2 &&
lua_type(L, WSLUA_OPTARG_Int64_new_HIGHVALUE) == LUA_TNUMBER) {
- gint64 h = wslua_togint64(L, WSLUA_OPTARG_Int64_new_HIGHVALUE);
- value &= G_GUINT64_CONSTANT(0x00000000FFFFFFFF);
- h <<= 32; h &= G_GUINT64_CONSTANT(0xFFFFFFFF00000000);
+ int64_t h = wslua_toint64(L, WSLUA_OPTARG_Int64_new_HIGHVALUE);
+ value &= UINT64_C(0x00000000FFFFFFFF);
+ h <<= 32; h &= UINT64_C(0xFFFFFFFF00000000);
value += h;
}
break;
@@ -250,66 +244,54 @@ WSLUA_CONSTRUCTOR Int64_new(lua_State* L) {
}
WSLUA_METAMETHOD Int64__call(lua_State* L) {
- /* Creates a <<lua_class_Int64,`Int64`>> object.
- @since 1.11.3
- */
+ /* Creates a <<lua_class_Int64,`Int64`>> object. */
lua_remove(L,1); /* remove the table */
WSLUA_RETURN(Int64_new(L)); /* The new <<lua_class_Int64,`Int64`>> object. */
}
WSLUA_CONSTRUCTOR Int64_max(lua_State* L) {
- /* Creates an <<lua_class_Int64,`Int64`>> of the maximum possible positive value. In other words, this should return an Int64 object of the number 9,223,372,036,854,775,807.
- @since 1.11.3
- */
- pushInt64(L, G_MAXINT64);
+ /* Creates an <<lua_class_Int64,`Int64`>> of the maximum possible positive value. In other words, this should return an Int64 object of the number 9,223,372,036,854,775,807. */
+ pushInt64(L, INT64_MAX);
WSLUA_RETURN(1); /* The new <<lua_class_Int64,`Int64`>> object of the maximum value. */
}
WSLUA_CONSTRUCTOR Int64_min(lua_State* L) {
- /* Creates an <<lua_class_Int64,`Int64`>> of the minimum possible negative value. In other words, this should return an Int64 object of the number -9,223,372,036,854,775,808.
- @since 1.11.3
- */
- pushInt64(L, G_MININT64);
+ /* Creates an <<lua_class_Int64,`Int64`>> of the minimum possible negative value. In other words, this should return an Int64 object of the number -9,223,372,036,854,775,808. */
+ pushInt64(L, INT64_MIN);
WSLUA_RETURN(1); /* The new <<lua_class_Int64,`Int64`>> object of the minimum value. */
}
WSLUA_METHOD Int64_tonumber(lua_State* L) {
- /* Returns a Lua number of the <<lua_class_Int64,`Int64`>> value. Note that this may lose precision.
- @since 1.11.3
- */
+ /* Returns a Lua number of the <<lua_class_Int64,`Int64`>> value. Note that this may lose precision. */
lua_pushnumber(L, (lua_Number)(checkInt64(L,1)));
WSLUA_RETURN(1); /* The Lua number. */
}
WSLUA_CONSTRUCTOR Int64_fromhex(lua_State* L) {
- /* Creates an <<lua_class_Int64,`Int64`>> object from the given hexadecimal string.
- @since 1.11.3
- */
+ /* Creates an <<lua_class_Int64,`Int64`>> object from the given hexadecimal string. */
#define WSLUA_ARG_Int64_fromhex_HEX 1 /* The hex-ASCII Lua string. */
- guint64 result = 0;
+ uint64_t result = 0;
size_t len = 0;
- const gchar *s = luaL_checklstring(L,WSLUA_ARG_Int64_fromhex_HEX,&len);
+ const char *s = luaL_checklstring(L,WSLUA_ARG_Int64_fromhex_HEX,&len);
if (len > 0) {
if (sscanf(s, "%" SCNx64, &result) != 1) {
return luaL_error(L, "Error decoding the passed-in hex string");
}
}
- pushInt64(L,(gint64)result);
+ pushInt64(L,(int64_t)result);
WSLUA_RETURN(1); /* The new <<lua_class_Int64,`Int64`>> object. */
}
WSLUA_METHOD Int64_tohex(lua_State* L) {
- /* Returns a hexadecimal string of the <<lua_class_Int64,`Int64`>> value.
- @since 1.11.3
- */
+ /* Returns a hexadecimal string of the <<lua_class_Int64,`Int64`>> value. */
#define WSLUA_OPTARG_Int64_tohex_NUMBYTES 2 /* The number of hex chars/nibbles to generate.
A negative value generates uppercase. Default is 16. */
- gint64 b = getInt64(L,1);
+ int64_t b = getInt64(L,1);
lua_Integer n = luaL_optinteger(L, WSLUA_OPTARG_Int64_tohex_NUMBYTES, 16);
- const gchar *hexdigits = "0123456789abcdef";
- gchar buf[16];
+ const char *hexdigits = "0123456789abcdef";
+ char buf[16];
lua_Integer i;
if (n < 0) { n = -n; hexdigits = "0123456789ABCDEF"; }
if (n > 16) n = 16;
@@ -321,34 +303,31 @@ WSLUA_METHOD Int64_tohex(lua_State* L) {
WSLUA_METHOD Int64_higher(lua_State* L) {
/* Returns a Lua number of the higher 32 bits of the <<lua_class_Int64,`Int64`>> value. A negative <<lua_class_Int64,`Int64`>>
will return a negative Lua number.
- @since 1.11.3
*/
- gint64 num = getInt64(L,1);
- gint64 b = num;
+ int64_t num = getInt64(L,1);
+ int64_t b = num;
lua_Number n = 0;
if (b < 0) b = -b; /* masking/shifting negative int64 isn't working on some platforms */
- b &= G_GUINT64_CONSTANT(0x7FFFFFFF00000000);
+ b &= UINT64_C(0x7FFFFFFF00000000);
b >>= 32;
- n = (lua_Number)(guint32)(b & G_GUINT64_CONSTANT(0x00000000FFFFFFFFF));
+ n = (lua_Number)(uint32_t)(b & UINT64_C(0x00000000FFFFFFFFF));
if (num < 0) n = -n;
lua_pushnumber(L,n);
WSLUA_RETURN(1); /* The Lua number. */
}
WSLUA_METHOD Int64_lower(lua_State* L) {
- /* Returns a Lua number of the lower 32 bits of the <<lua_class_Int64,`Int64`>> value. This will always be positive.
- @since 1.11.3
- */
- gint64 b = getInt64(L,1);
+ /* Returns a Lua number of the lower 32 bits of the <<lua_class_Int64,`Int64`>> value. This will always be positive. */
+ int64_t b = getInt64(L,1);
if (b < 0) b = -b; /* masking/shifting negative int64 isn't working on some platforms */
- lua_pushnumber(L,(guint32)(b & G_GUINT64_CONSTANT(0x00000000FFFFFFFFF)));
+ lua_pushnumber(L,(uint32_t)(b & UINT64_C(0x00000000FFFFFFFFF)));
WSLUA_RETURN(1); /* The Lua number. */
}
WSLUA_METAMETHOD Int64__tostring(lua_State* L) {
/* Converts the <<lua_class_Int64,`Int64`>> into a string of decimal digits. */
- gint64 num = getInt64(L,1);
- gchar s[LUATYPE64_STRING_SIZE];
+ int64_t num = getInt64(L,1);
+ char s[LUATYPE64_STRING_SIZE];
if (snprintf(s, LUATYPE64_STRING_SIZE, "%" PRId64, num) < 0) {
return luaL_error(L, "Error writing Int64 to a string");
}
@@ -357,9 +336,7 @@ WSLUA_METAMETHOD Int64__tostring(lua_State* L) {
}
WSLUA_METAMETHOD Int64__unm(lua_State* L) {
- /* Returns the negative of the <<lua_class_Int64,`Int64`>> as a new <<lua_class_Int64,`Int64`>>.
- @since 1.11.3
- */
+ /* Returns the negative of the <<lua_class_Int64,`Int64`>> as a new <<lua_class_Int64,`Int64`>>. */
pushInt64(L,-(getInt64(L,1)));
WSLUA_RETURN(1); /* The new <<lua_class_Int64,`Int64`>>. */
}
@@ -372,30 +349,23 @@ WSLUA_METAMETHOD Int64__unm(lua_State* L) {
return 1
WSLUA_METAMETHOD Int64__add(lua_State* L) {
- /* Adds two <<lua_class_Int64,`Int64`>> together and returns a new one. The value may wrapped.
- @since 1.11.3
- */
+ /* Adds two <<lua_class_Int64,`Int64`>> together and returns a new one. The value may wrapped. */
WSLUA_MATH_OP_FUNC(Int64,+);
}
WSLUA_METAMETHOD Int64__sub(lua_State* L) {
- /* Subtracts two <<lua_class_Int64,`Int64`>> and returns a new one. The value may wrapped.
- @since 1.11.3
- */
+ /* Subtracts two <<lua_class_Int64,`Int64`>> and returns a new one. The value may wrapped. */
WSLUA_MATH_OP_FUNC(Int64,-);
}
WSLUA_METAMETHOD Int64__mul(lua_State* L) {
- /* Multiplies two <<lua_class_Int64,`Int64`>> and returns a new one. The value may truncated.
- @since 1.11.3
- */
+ /* Multiplies two <<lua_class_Int64,`Int64`>> and returns a new one. The value may truncated. */
WSLUA_MATH_OP_FUNC(Int64,*);
}
WSLUA_METAMETHOD Int64__div(lua_State* L) {
/* Divides two <<lua_class_Int64,`Int64`>> and returns a new one. Integer divide, no remainder.
Trying to divide by zero results in a Lua error.
- @since 1.11.3
*/
Int64 num1 = getInt64(L,1);
Int64 num2 = getInt64(L,2);
@@ -409,7 +379,6 @@ WSLUA_METAMETHOD Int64__div(lua_State* L) {
WSLUA_METAMETHOD Int64__mod(lua_State* L) {
/* Divides two <<lua_class_Int64,`Int64`>> and returns a new one of the remainder.
Trying to modulo by zero results in a Lua error.
- @since 1.11.3
*/
Int64 num1 = getInt64(L,1);
Int64 num2 = getInt64(L,2);
@@ -423,13 +392,12 @@ WSLUA_METAMETHOD Int64__mod(lua_State* L) {
WSLUA_METAMETHOD Int64__pow(lua_State* L) {
/* The first <<lua_class_Int64,`Int64`>> is taken to the power of the second <<lua_class_Int64,`Int64`>>, returning a new
one. This may truncate the value.
- @since 1.11.3
*/
- gint64 num1 = getInt64(L,1);
- gint64 num2 = getInt64(L,2);
- gint64 result;
+ int64_t num1 = getInt64(L,1);
+ int64_t num2 = getInt64(L,2);
+ int64_t result;
if (num1 == 2) {
- result = (num2 >= 8 * (gint64) sizeof(gint64)) ? 0 : ((gint64)1 << num2);
+ result = (num2 >= 8 * (int64_t) sizeof(int64_t)) ? 0 : ((int64_t)1 << num2);
}
else {
for (result = 1; num2 > 0; num2 >>= 1) {
@@ -448,36 +416,28 @@ WSLUA_METAMETHOD Int64__pow(lua_State* L) {
return 1
WSLUA_METAMETHOD Int64__eq(lua_State* L) {
- /* Returns `true` if both <<lua_class_Int64,`Int64`>> are equal.
- @since 1.11.3
- */
+ /* Returns `true` if both <<lua_class_Int64,`Int64`>> are equal. */
WSLUA_COMP_OP_FUNC(Int64,==);
}
WSLUA_METAMETHOD Int64__lt(lua_State* L) {
- /* Returns `true` if first <<lua_class_Int64,`Int64`>> is less than the second.
- @since 1.11.3
- */
+ /* Returns `true` if first <<lua_class_Int64,`Int64`>> is less than the second. */
WSLUA_COMP_OP_FUNC(Int64,<);
}
WSLUA_METAMETHOD Int64__le(lua_State* L) {
- /* Returns `true` if the first <<lua_class_Int64,`Int64`>> is less than or equal to the second.
- @since 1.11.3
- */
+ /* Returns `true` if the first <<lua_class_Int64,`Int64`>> is less than or equal to the second. */
WSLUA_COMP_OP_FUNC(Int64,<=);
}
WSLUA_METHOD Int64_bnot(lua_State* L) {
- /* Returns a <<lua_class_Int64,`Int64`>> of the bitwise 'not' operation.
- @since 1.11.3
- */
+ /* Returns a <<lua_class_Int64,`Int64`>> of the bitwise 'not' operation. */
pushInt64(L,~(getInt64(L,1)));
WSLUA_RETURN(1); /* The <<lua_class_Int64,`Int64`>> object. */
}
#define WSLUA_BIT_OP_FUNC(obj,op) \
- gint32 i; \
+ int32_t i; \
obj num = get##obj(L,1); \
for (i = lua_gettop(L); i > 1; i--) { \
num op get##obj(L,i); \
@@ -488,7 +448,6 @@ WSLUA_METHOD Int64_bnot(lua_State* L) {
WSLUA_METHOD Int64_band(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise 'and' operation with the given number/`Int64`/`UInt64`.
Note that multiple arguments are allowed.
- @since 1.11.3
*/
WSLUA_BIT_OP_FUNC(Int64,&=);
}
@@ -496,7 +455,6 @@ WSLUA_METHOD Int64_band(lua_State* L) {
WSLUA_METHOD Int64_bor(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise 'or' operation, with the given number/`Int64`/`UInt64`.
Note that multiple arguments are allowed.
- @since 1.11.3
*/
WSLUA_BIT_OP_FUNC(Int64,|=);
}
@@ -504,7 +462,6 @@ WSLUA_METHOD Int64_bor(lua_State* L) {
WSLUA_METHOD Int64_bxor(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise 'xor' operation, with the given number/`Int64`/`UInt64`.
Note that multiple arguments are allowed.
- @since 1.11.3
*/
WSLUA_BIT_OP_FUNC(Int64,^=);
}
@@ -512,35 +469,32 @@ WSLUA_METHOD Int64_bxor(lua_State* L) {
WSLUA_METHOD Int64_lshift(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise logical left-shift operation, by the given
number of bits.
- @since 1.11.3
*/
#define WSLUA_ARG_Int64_lshift_NUMBITS 2 /* The number of bits to left-shift by. */
- guint64 b = (guint64) getInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_Int64_lshift_NUMBITS);
- pushInt64(L,(gint64)(b << n));
+ uint64_t b = (uint64_t) getInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_Int64_lshift_NUMBITS);
+ pushInt64(L,(int64_t)(b << n));
WSLUA_RETURN(1); /* The <<lua_class_Int64,`Int64`>> object. */
}
WSLUA_METHOD Int64_rshift(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise logical right-shift operation, by the
given number of bits.
- @since 1.11.3
*/
#define WSLUA_ARG_Int64_rshift_NUMBITS 2 /* The number of bits to right-shift by. */
- guint64 b = (guint64) getInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_Int64_rshift_NUMBITS);
- pushInt64(L,(gint64)(b >> n));
+ uint64_t b = (uint64_t) getInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_Int64_rshift_NUMBITS);
+ pushInt64(L,(int64_t)(b >> n));
WSLUA_RETURN(1); /* The <<lua_class_Int64,`Int64`>> object. */
}
WSLUA_METHOD Int64_arshift(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise arithmetic right-shift operation, by the
given number of bits.
- @since 1.11.3
*/
#define WSLUA_ARG_Int64_arshift_NUMBITS 2 /* The number of bits to right-shift by. */
- gint64 b = getInt64(L,1);
- gint32 n = wslua_checkgint32(L,WSLUA_ARG_Int64_arshift_NUMBITS);
+ int64_t b = getInt64(L,1);
+ int32_t n = wslua_checkint32(L,WSLUA_ARG_Int64_arshift_NUMBITS);
pushInt64(L,(b >> n));
WSLUA_RETURN(1); /* The <<lua_class_Int64,`Int64`>> object. */
}
@@ -548,41 +502,38 @@ WSLUA_METHOD Int64_arshift(lua_State* L) {
WSLUA_METHOD Int64_rol(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise left rotation operation, by the given number of
bits (up to 63).
- @since 1.11.3
*/
#define WSLUA_ARG_Int64_rol_NUMBITS 2 /* The number of bits to roll left by. */
- guint64 b = (guint64) getInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_Int64_rol_NUMBITS);
- pushInt64(L,(gint64)((b << n) | (b >> (64-n))));
+ uint64_t b = (uint64_t) getInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_Int64_rol_NUMBITS);
+ pushInt64(L,(int64_t)((b << n) | (b >> (64-n))));
WSLUA_RETURN(1); /* The <<lua_class_Int64,`Int64`>> object. */
}
WSLUA_METHOD Int64_ror(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bitwise right rotation operation, by the given number of
bits (up to 63).
- @since 1.11.3
*/
#define WSLUA_ARG_Int64_ror_NUMBITS 2 /* The number of bits to roll right by. */
- guint64 b = (guint64) getInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_Int64_ror_NUMBITS);
- pushInt64(L,(gint64)((b << (64-n)) | (b >> n)));
+ uint64_t b = (uint64_t) getInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_Int64_ror_NUMBITS);
+ pushInt64(L,(int64_t)((b << (64-n)) | (b >> n)));
WSLUA_RETURN(1); /* The <<lua_class_Int64,`Int64`>> object. */
}
WSLUA_METHOD Int64_bswap(lua_State* L) {
/* Returns a <<lua_class_Int64,`Int64`>> of the bytes swapped. This can be used to convert little-endian
64-bit numbers to big-endian 64 bit numbers or vice versa.
- @since 1.11.3
*/
- guint64 b = (guint64) getInt64(L,1);
- guint64 result = 0;
+ uint64_t b = (uint64_t) getInt64(L,1);
+ uint64_t result = 0;
size_t i;
- for (i = 0; i < sizeof(gint64); i++) {
+ for (i = 0; i < sizeof(int64_t); i++) {
result <<= 8;
- result |= (b & G_GUINT64_CONSTANT(0x00000000000000FF));
+ result |= (b & UINT64_C(0x00000000000000FF));
b >>= 8;
}
- pushInt64(L,(gint64)result);
+ pushInt64(L,(int64_t)result);
WSLUA_RETURN(1); /* The <<lua_class_Int64,`Int64`>> object. */
}
@@ -646,15 +597,15 @@ WSLUA_CLASS_DEFINE_BASE(UInt64,NOP,0);
Note the caveats <<lua_module_Int64,listed above>>.
*/
-/* A checkUInt64 but that also auto-converts numbers, strings, and <<lua_class_Int64,`Int64`>> to a guint64. */
-guint64 getUInt64(lua_State *L, int i)
+/* A checkUInt64 but that also auto-converts numbers, strings, and <<lua_class_Int64,`Int64`>> to a uint64_t. */
+uint64_t getUInt64(lua_State *L, int i)
{
- gchar *end = NULL;
+ char *end = NULL;
(void) end;
switch (lua_type(L,i))
{
case LUA_TNUMBER:
- return wslua_checkguint64(L,i);
+ return wslua_checkuint64(L,i);
case LUA_TSTRING:
return g_ascii_strtoull(luaL_checkstring(L,i), &end, 0);
case LUA_TUSERDATA:
@@ -668,36 +619,34 @@ guint64 getUInt64(lua_State *L, int i)
}
/* Encodes <<lua_class_UInt64,`UInt64`>> userdata into Lua string struct with given endianness */
-void UInt64_pack(lua_State* L, luaL_Buffer *b, gint idx, gboolean asLittleEndian) {
- guint64 value = checkUInt64(L,idx);
- gint8 buff[sizeof(guint64)];
+void UInt64_pack(lua_State* L, luaL_Buffer *b, int idx, bool asLittleEndian) {
+ uint64_t value = checkUInt64(L,idx);
+ int8_t buff[sizeof(uint64_t)];
if (asLittleEndian) {
- guint i;
- for (i = 0; i < sizeof(guint64); i++) {
+ unsigned i;
+ for (i = 0; i < sizeof(uint64_t); i++) {
buff[i] = (value & 0xff);
value >>= 8;
}
}
else {
- gint i;
- for (i = sizeof(guint64) - 1; i >= 0; i--) {
+ int i;
+ for (i = sizeof(uint64_t) - 1; i >= 0; i--) {
buff[i] = (value & 0xff);
value >>= 8;
}
}
- luaL_addlstring(b, (char*)buff, sizeof(guint64));
+ luaL_addlstring(b, (char*)buff, sizeof(uint64_t));
}
WSLUA_METHOD UInt64_encode(lua_State* L) {
- /* Encodes the <<lua_class_UInt64,`UInt64`>> number into an 8-byte Lua binary string, using given endianness.
- @since 1.11.3
- */
+ /* Encodes the <<lua_class_UInt64,`UInt64`>> number into an 8-byte Lua binary string, using given endianness. */
#define WSLUA_OPTARG_UInt64_encode_ENDIAN 2 /* If set to true then little-endian is used,
if false then big-endian; if missing or `nil`,
native host endian. */
luaL_Buffer b;
- gboolean asLittleEndian = IS_LITTLE_ENDIAN;
+ bool asLittleEndian = IS_LITTLE_ENDIAN;
if (lua_gettop(L) >= 2) {
if (lua_type(L,2) == LUA_TBOOLEAN)
@@ -713,20 +662,20 @@ WSLUA_METHOD UInt64_encode(lua_State* L) {
}
/* Decodes from string buffer struct into <<lua_class_UInt64,`UInt64`>> userdata, with given endianness. */
-int UInt64_unpack(lua_State* L, const gchar *buff, gboolean asLittleEndian) {
- guint64 value = 0;
- gint i;
+int UInt64_unpack(lua_State* L, const char *buff, bool asLittleEndian) {
+ uint64_t value = 0;
+ int i;
if (asLittleEndian) {
- for (i = sizeof(guint64) - 1; i >= 0; i--) {
+ for (i = sizeof(uint64_t) - 1; i >= 0; i--) {
value <<= 8;
- value |= (guint64)(guchar)buff[i];
+ value |= (uint64_t)(unsigned char)buff[i];
}
}
else {
- for (i = 0; i < (gint) sizeof(guint64); i++) {
+ for (i = 0; i < (int) sizeof(uint64_t); i++) {
value <<= 8;
- value |= (guint64)(guchar)buff[i];
+ value |= (uint64_t)(unsigned char)buff[i];
}
}
@@ -735,23 +684,21 @@ int UInt64_unpack(lua_State* L, const gchar *buff, gboolean asLittleEndian) {
}
WSLUA_CONSTRUCTOR UInt64_decode(lua_State* L) {
- /* Decodes an 8-byte Lua binary string, using given endianness, into a new <<lua_class_UInt64,`UInt64`>> object.
- @since 1.11.3
- */
+ /* Decodes an 8-byte Lua binary string, using given endianness, into a new <<lua_class_UInt64,`UInt64`>> object. */
#define WSLUA_ARG_UInt64_decode_STRING 1 /* The Lua string containing a binary 64-bit integer. */
#define WSLUA_OPTARG_UInt64_decode_ENDIAN 2 /* If set to true then little-endian is used,
if false then big-endian; if missing or `nil`,
native host endian. */
- gboolean asLittleEndian = IS_LITTLE_ENDIAN;
+ bool asLittleEndian = IS_LITTLE_ENDIAN;
size_t len = 0;
- const gchar *s = luaL_checklstring(L, WSLUA_ARG_UInt64_decode_STRING, &len);
+ const char *s = luaL_checklstring(L, WSLUA_ARG_UInt64_decode_STRING, &len);
if (lua_gettop(L) >= WSLUA_OPTARG_UInt64_decode_ENDIAN) {
if (lua_type(L,WSLUA_OPTARG_UInt64_decode_ENDIAN) == LUA_TBOOLEAN)
asLittleEndian = lua_toboolean(L,WSLUA_OPTARG_UInt64_decode_ENDIAN);
}
- if (len == sizeof(guint64)) {
+ if (len == sizeof(uint64_t)) {
UInt64_unpack(L, s, asLittleEndian);
} else {
lua_pushnil(L);
@@ -761,26 +708,24 @@ WSLUA_CONSTRUCTOR UInt64_decode(lua_State* L) {
}
WSLUA_CONSTRUCTOR UInt64_new(lua_State* L) {
- /* Creates a <<lua_class_UInt64,`UInt64`>> Object.
- @since 1.11.3
- */
+ /* Creates a <<lua_class_UInt64,`UInt64`>> object. */
#define WSLUA_OPTARG_UInt64_new_VALUE 1 /* A number, <<lua_class_UInt64,`UInt64`>>, <<lua_class_Int64,`Int64`>>, or string of digits
to assign the value of the new <<lua_class_UInt64,`UInt64`>>. Default is 0. */
#define WSLUA_OPTARG_UInt64_new_HIGHVALUE 2 /* If this is a number and the first argument was
a number, then the first will be treated as a
lower 32 bits, and this is the high-order
32-bit number. */
- guint64 value = 0;
+ uint64_t value = 0;
if (lua_gettop(L) >= 1) {
switch(lua_type(L, WSLUA_OPTARG_UInt64_new_VALUE)) {
case LUA_TNUMBER:
- value = wslua_toguint64(L, WSLUA_OPTARG_UInt64_new_VALUE);
+ value = wslua_touint64(L, WSLUA_OPTARG_UInt64_new_VALUE);
if (lua_gettop(L) == 2 &&
lua_type(L, WSLUA_OPTARG_UInt64_new_HIGHVALUE) == LUA_TNUMBER) {
- guint64 h = wslua_toguint64(L, WSLUA_OPTARG_UInt64_new_HIGHVALUE);
- value &= G_GUINT64_CONSTANT(0x00000000FFFFFFFF);
- h <<= 32; h &= G_GUINT64_CONSTANT(0xFFFFFFFF00000000);
+ uint64_t h = wslua_touint64(L, WSLUA_OPTARG_UInt64_new_HIGHVALUE);
+ value &= UINT64_C(0x00000000FFFFFFFF);
+ h <<= 32; h &= UINT64_C(0xFFFFFFFF00000000);
value += h;
}
break;
@@ -800,42 +745,34 @@ WSLUA_CONSTRUCTOR UInt64_new(lua_State* L) {
}
WSLUA_METAMETHOD UInt64__call(lua_State* L) {
- /* Creates a <<lua_class_UInt64,`UInt64`>> object.
- @since 1.11.3
- */
+ /* Creates a <<lua_class_UInt64,`UInt64`>> object. */
lua_remove(L,1); /* remove the table */
WSLUA_RETURN(UInt64_new(L)); /* The new <<lua_class_UInt64,`UInt64`>> object. */
}
WSLUA_CONSTRUCTOR UInt64_max(lua_State* L) {
- /* Creates a <<lua_class_UInt64,`UInt64`>> of the maximum possible value. In other words, this should return an UInt64 object of the number 18,446,744,073,709,551,615.
- @since 1.11.3
- */
- pushUInt64(L,G_MAXUINT64);
+ /* Creates a <<lua_class_UInt64,`UInt64`>> of the maximum possible value. In other words, this should return an UInt64 object of the number 18,446,744,073,709,551,615. */
+ pushUInt64(L,UINT64_MAX);
WSLUA_RETURN(1); /* The maximum value. */
}
WSLUA_CONSTRUCTOR UInt64_min(lua_State* L) {
- /* Creates a <<lua_class_UInt64,`UInt64`>> of the minimum possible value. In other words, this should return an UInt64 object of the number 0.
- @since 1.11.3
- */
+ /* Creates a <<lua_class_UInt64,`UInt64`>> of the minimum possible value. In other words, this should return an UInt64 object of the number 0. */
pushUInt64(L,0);
WSLUA_RETURN(1); /* The minimum value. */
}
WSLUA_METHOD UInt64_tonumber(lua_State* L) {
- /* Returns a Lua number of the <<lua_class_UInt64,`UInt64`>> value. This may lose precision.
- @since 1.11.3
- */
+ /* Returns a Lua number of the <<lua_class_UInt64,`UInt64`>> value. This may lose precision. */
lua_pushnumber(L,(lua_Number)(checkUInt64(L,1)));
WSLUA_RETURN(1); /* The Lua number. */
}
WSLUA_METAMETHOD UInt64__tostring(lua_State* L) {
/* Converts the <<lua_class_UInt64,`UInt64`>> into a string. */
- guint64 num = getUInt64(L,1);
- gchar s[LUATYPE64_STRING_SIZE];
- if (snprintf(s, LUATYPE64_STRING_SIZE, "%" PRIu64,(guint64)num) < 0) {
+ uint64_t num = getUInt64(L,1);
+ char s[LUATYPE64_STRING_SIZE];
+ if (snprintf(s, LUATYPE64_STRING_SIZE, "%" PRIu64,(uint64_t)num) < 0) {
return luaL_error(L, "Error writing UInt64 to a string");
}
lua_pushstring(L,s);
@@ -843,13 +780,11 @@ WSLUA_METAMETHOD UInt64__tostring(lua_State* L) {
}
WSLUA_CONSTRUCTOR UInt64_fromhex(lua_State* L) {
- /* Creates a <<lua_class_UInt64,`UInt64`>> object from the given hex string.
- @since 1.11.3
- */
+ /* Creates a <<lua_class_UInt64,`UInt64`>> object from the given hex string. */
#define WSLUA_ARG_UInt64_fromhex_HEX 1 /* The hex-ASCII Lua string. */
- guint64 result = 0;
+ uint64_t result = 0;
size_t len = 0;
- const gchar *s = luaL_checklstring(L,WSLUA_ARG_UInt64_fromhex_HEX,&len);
+ const char *s = luaL_checklstring(L,WSLUA_ARG_UInt64_fromhex_HEX,&len);
if (len > 0) {
if (sscanf(s, "%" SCNx64, &result) != 1) {
@@ -861,15 +796,13 @@ WSLUA_CONSTRUCTOR UInt64_fromhex(lua_State* L) {
}
WSLUA_METHOD UInt64_tohex(lua_State* L) {
- /* Returns a hex string of the <<lua_class_UInt64,`UInt64`>> value.
- @since 1.11.3
- */
+ /* Returns a hex string of the <<lua_class_UInt64,`UInt64`>> value. */
#define WSLUA_OPTARG_UInt64_tohex_NUMBYTES 2 /* The number of hex-chars/nibbles to generate.
Negative means uppercase Default is 16. */
- guint64 b = getUInt64(L,1);
+ uint64_t b = getUInt64(L,1);
lua_Integer n = luaL_optinteger(L, WSLUA_OPTARG_UInt64_tohex_NUMBYTES, 16);
- const gchar *hexdigits = "0123456789abcdef";
- gchar buf[16];
+ const char *hexdigits = "0123456789abcdef";
+ char buf[16];
lua_Integer i;
if (n < 0) { n = -n; hexdigits = "0123456789ABCDEF"; }
if (n > 16) n = 16;
@@ -880,56 +813,47 @@ WSLUA_METHOD UInt64_tohex(lua_State* L) {
WSLUA_METHOD UInt64_higher(lua_State* L) {
/* Returns a Lua number of the higher 32 bits of the <<lua_class_UInt64,`UInt64`>> value. */
- guint64 num = getUInt64(L,1);
- guint64 b = num;
+ uint64_t num = getUInt64(L,1);
+ uint64_t b = num;
lua_Number n = 0;
- b &= G_GUINT64_CONSTANT(0xFFFFFFFF00000000);
+ b &= UINT64_C(0xFFFFFFFF00000000);
b >>= 32;
- n = (lua_Number)(guint32)(b & G_GUINT64_CONSTANT(0x00000000FFFFFFFFF));
+ n = (lua_Number)(uint32_t)(b & UINT64_C(0x00000000FFFFFFFFF));
lua_pushnumber(L,n);
WSLUA_RETURN(1); /* The Lua number. */
}
WSLUA_METHOD UInt64_lower(lua_State* L) {
/* Returns a Lua number of the lower 32 bits of the <<lua_class_UInt64,`UInt64`>> value. */
- guint64 b = getUInt64(L,1);
- lua_pushnumber(L,(guint32)(b & G_GUINT64_CONSTANT(0x00000000FFFFFFFFF)));
+ uint64_t b = getUInt64(L,1);
+ lua_pushnumber(L,(uint32_t)(b & UINT64_C(0x00000000FFFFFFFFF)));
WSLUA_RETURN(1); /* The Lua number. */
}
WSLUA_METAMETHOD UInt64__unm(lua_State* L) {
- /* Returns the <<lua_class_UInt64,`UInt64`>> in a new <<lua_class_UInt64,`UInt64`>>, since unsigned integers can't be negated.
- @since 1.11.3
- */
+ /* Returns the <<lua_class_UInt64,`UInt64`>> in a new <<lua_class_UInt64,`UInt64`>>, since unsigned integers can't be negated. */
pushUInt64(L,getUInt64(L,1));
WSLUA_RETURN(1); /* The <<lua_class_UInt64,`UInt64`>> object. */
}
WSLUA_METAMETHOD UInt64__add(lua_State* L) {
- /* Adds two <<lua_class_UInt64,`UInt64`>> together and returns a new one. This may wrap the value.
- @since 1.11.3
- */
+ /* Adds two <<lua_class_UInt64,`UInt64`>> together and returns a new one. This may wrap the value. */
WSLUA_MATH_OP_FUNC(UInt64,+);
}
WSLUA_METAMETHOD UInt64__sub(lua_State* L) {
- /* Subtracts two <<lua_class_UInt64,`UInt64`>> and returns a new one. This may wrap the value.
- @since 1.11.3
- */
+ /* Subtracts two <<lua_class_UInt64,`UInt64`>> and returns a new one. This may wrap the value. */
WSLUA_MATH_OP_FUNC(UInt64,-);
}
WSLUA_METAMETHOD UInt64__mul(lua_State* L) {
- /* Multiplies two <<lua_class_UInt64,`UInt64`>> and returns a new one. This may truncate the value.
- @since 1.11.3
- */
+ /* Multiplies two <<lua_class_UInt64,`UInt64`>> and returns a new one. This may truncate the value. */
WSLUA_MATH_OP_FUNC(UInt64,*);
}
WSLUA_METAMETHOD UInt64__div(lua_State* L) {
/* Divides two <<lua_class_UInt64,`UInt64`>> and returns a new one. Integer divide, no remainder.
Trying to divide by zero results in a Lua error.
- @since 1.11.3
*/
UInt64 num1 = getUInt64(L,1);
UInt64 num2 = getUInt64(L,2);
@@ -943,7 +867,6 @@ WSLUA_METAMETHOD UInt64__div(lua_State* L) {
WSLUA_METAMETHOD UInt64__mod(lua_State* L) {
/* Divides two <<lua_class_UInt64,`UInt64`>> and returns a new one of the remainder.
Trying to modulo by zero results in a Lua error.
- @since 1.11.3
*/
UInt64 num1 = getUInt64(L,1);
UInt64 num2 = getUInt64(L,2);
@@ -957,13 +880,12 @@ WSLUA_METAMETHOD UInt64__mod(lua_State* L) {
WSLUA_METAMETHOD UInt64__pow(lua_State* L) {
/* The first <<lua_class_UInt64,`UInt64`>> is taken to the power of the second <<lua_class_UInt64,`UInt64`>>/number,
returning a new one. This may truncate the value.
- @since 1.11.3
*/
- guint64 num1 = getUInt64(L,1);
- guint64 num2 = getUInt64(L,2);
- guint64 result;
+ uint64_t num1 = getUInt64(L,1);
+ uint64_t num2 = getUInt64(L,2);
+ uint64_t result;
if (num1 == 2) {
- result = (num2 >= 8 * (guint64) sizeof(guint64)) ? 0 : ((guint64)1 << num2);
+ result = (num2 >= 8 * (uint64_t) sizeof(uint64_t)) ? 0 : ((uint64_t)1 << num2);
}
else {
for (result = 1; num2 > 0; num2 >>= 1) {
@@ -976,30 +898,22 @@ WSLUA_METAMETHOD UInt64__pow(lua_State* L) {
}
WSLUA_METAMETHOD UInt64__eq(lua_State* L) {
- /* Returns true if both <<lua_class_UInt64,`UInt64`>> are equal.
- @since 1.11.3
- */
+ /* Returns true if both <<lua_class_UInt64,`UInt64`>> are equal. */
WSLUA_COMP_OP_FUNC(UInt64,==);
}
WSLUA_METAMETHOD UInt64__lt(lua_State* L) {
- /* Returns true if first <<lua_class_UInt64,`UInt64`>> is less than the second.
- @since 1.11.3
- */
+ /* Returns true if first <<lua_class_UInt64,`UInt64`>> is less than the second. */
WSLUA_COMP_OP_FUNC(UInt64,<);
}
WSLUA_METAMETHOD UInt64__le(lua_State* L) {
- /* Returns true if first <<lua_class_UInt64,`UInt64`>> is less than or equal to the second.
- @since 1.11.3
- */
+ /* Returns true if first <<lua_class_UInt64,`UInt64`>> is less than or equal to the second. */
WSLUA_COMP_OP_FUNC(UInt64,<=);
}
WSLUA_METHOD UInt64_bnot(lua_State* L) {
- /* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise 'not' operation.
- @since 1.11.3
- */
+ /* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise 'not' operation. */
pushUInt64(L,~(getUInt64(L,1)));
WSLUA_RETURN(1); /* The <<lua_class_UInt64,`UInt64`>> object. */
}
@@ -1007,7 +921,6 @@ WSLUA_METHOD UInt64_bnot(lua_State* L) {
WSLUA_METHOD UInt64_band(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise 'and' operation, with the given number/`Int64`/`UInt64`.
Note that multiple arguments are allowed.
- @since 1.11.3
*/
WSLUA_BIT_OP_FUNC(UInt64,&=);
}
@@ -1015,7 +928,6 @@ WSLUA_METHOD UInt64_band(lua_State* L) {
WSLUA_METHOD UInt64_bor(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise 'or' operation, with the given number/`Int64`/`UInt64`.
Note that multiple arguments are allowed.
- @since 1.11.3
*/
WSLUA_BIT_OP_FUNC(UInt64,|=);
}
@@ -1023,7 +935,6 @@ WSLUA_METHOD UInt64_bor(lua_State* L) {
WSLUA_METHOD UInt64_bxor(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise 'xor' operation, with the given number/`Int64`/`UInt64`.
Note that multiple arguments are allowed.
- @since 1.11.3
*/
WSLUA_BIT_OP_FUNC(UInt64,^=);
}
@@ -1031,11 +942,10 @@ WSLUA_METHOD UInt64_bxor(lua_State* L) {
WSLUA_METHOD UInt64_lshift(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise logical left-shift operation, by the
given number of bits.
- @since 1.11.3
*/
#define WSLUA_ARG_UInt64_lshift_NUMBITS 2 /* The number of bits to left-shift by. */
- guint64 b = getUInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_UInt64_lshift_NUMBITS);
+ uint64_t b = getUInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_UInt64_lshift_NUMBITS);
pushUInt64(L,(b << n));
WSLUA_RETURN(1); /* The <<lua_class_UInt64,`UInt64`>> object. */
}
@@ -1043,11 +953,10 @@ WSLUA_METHOD UInt64_lshift(lua_State* L) {
WSLUA_METHOD UInt64_rshift(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise logical right-shift operation, by the
given number of bits.
- @since 1.11.3
*/
#define WSLUA_ARG_UInt64_rshift_NUMBITS 2 /* The number of bits to right-shift by. */
- guint64 b = getUInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_UInt64_rshift_NUMBITS);
+ uint64_t b = getUInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_UInt64_rshift_NUMBITS);
pushUInt64(L,(b >> n));
WSLUA_RETURN(1); /* The <<lua_class_UInt64,`UInt64`>> object. */
}
@@ -1055,11 +964,10 @@ WSLUA_METHOD UInt64_rshift(lua_State* L) {
WSLUA_METHOD UInt64_arshift(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise arithmetic right-shift operation, by the
given number of bits.
- @since 1.11.3
*/
#define WSLUA_ARG_UInt64_arshift_NUMBITS 2 /* The number of bits to right-shift by. */
- guint64 b = getUInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_UInt64_arshift_NUMBITS);
+ uint64_t b = getUInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_UInt64_arshift_NUMBITS);
pushUInt64(L,(b >> n));
WSLUA_RETURN(1); /* The <<lua_class_UInt64,`UInt64`>> object. */
}
@@ -1067,11 +975,10 @@ WSLUA_METHOD UInt64_arshift(lua_State* L) {
WSLUA_METHOD UInt64_rol(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise left rotation operation, by the
given number of bits (up to 63).
- @since 1.11.3
*/
#define WSLUA_ARG_UInt64_rol_NUMBITS 2 /* The number of bits to roll left by. */
- guint64 b = getUInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_UInt64_rol_NUMBITS);
+ uint64_t b = getUInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_UInt64_rol_NUMBITS);
pushUInt64(L,((b << n) | (b >> (64-n))));
WSLUA_RETURN(1); /* The <<lua_class_UInt64,`UInt64`>> object. */
}
@@ -1079,11 +986,10 @@ WSLUA_METHOD UInt64_rol(lua_State* L) {
WSLUA_METHOD UInt64_ror(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bitwise right rotation operation, by the
given number of bits (up to 63).
- @since 1.11.3
*/
#define WSLUA_ARG_UInt64_ror_NUMBITS 2 /* The number of bits to roll right by. */
- guint64 b = getUInt64(L,1);
- guint32 n = wslua_checkguint32(L,WSLUA_ARG_UInt64_ror_NUMBITS);
+ uint64_t b = getUInt64(L,1);
+ uint32_t n = wslua_checkuint32(L,WSLUA_ARG_UInt64_ror_NUMBITS);
pushUInt64(L,((b << (64-n)) | (b >> n)));
WSLUA_RETURN(1); /* The <<lua_class_UInt64,`UInt64`>> object. */
}
@@ -1091,14 +997,13 @@ WSLUA_METHOD UInt64_ror(lua_State* L) {
WSLUA_METHOD UInt64_bswap(lua_State* L) {
/* Returns a <<lua_class_UInt64,`UInt64`>> of the bytes swapped. This can be used to convert little-endian
64-bit numbers to big-endian 64 bit numbers or vice versa.
- @since 1.11.3
*/
- guint64 b = getUInt64(L,1);
- guint64 result = 0;
+ uint64_t b = getUInt64(L,1);
+ uint64_t result = 0;
size_t i;
- for (i = 0; i < sizeof(guint64); i++) {
+ for (i = 0; i < sizeof(uint64_t); i++) {
result <<= 8;
- result |= (b & G_GUINT64_CONSTANT(0x00000000000000FF));
+ result |= (b & UINT64_C(0x00000000000000FF));
b >>= 8;
}
pushUInt64(L,result);
diff --git a/epan/wslua/wslua_internals.c b/epan/wslua/wslua_internals.c
index b5de1c09ac..28c3bb3af1 100644
--- a/epan/wslua/wslua_internals.c
+++ b/epan/wslua/wslua_internals.c
@@ -49,15 +49,15 @@ WSLUA_API int wslua__concat(lua_State* L) {
note that normal lua_toboolean returns 1 for any Lua value different from false and
nil; otherwise it returns 0. So a string would give a 0, as would a number of 1.
This function errors if the arg is a string, and sets the boolean to 1 for any
- number other than 0. Like toboolean, this returns FALSE if the arg was missing. */
-WSLUA_API gboolean wslua_toboolean(lua_State* L, int n) {
- gboolean val = FALSE;
+ number other than 0. Like toboolean, this returns false if the arg was missing. */
+WSLUA_API bool wslua_toboolean(lua_State* L, int n) {
+ bool val = false;
if ( lua_isboolean(L,n) || lua_isnil(L,n) || lua_gettop(L) < n ) {
val = lua_toboolean(L,n);
} else if ( lua_type(L,n) == LUA_TNUMBER ) {
int num = (int)luaL_checkinteger(L,n);
- val = num != 0 ? TRUE : FALSE;
+ val = num != 0 ? true : false;
} else {
luaL_argerror(L,n,"must be a boolean or number");
}
@@ -66,7 +66,7 @@ WSLUA_API gboolean wslua_toboolean(lua_State* L, int n) {
}
/* like luaL_checkinteger, except for booleans - this does not coerce other types */
-WSLUA_API gboolean wslua_checkboolean(lua_State* L, int n) {
+WSLUA_API bool wslua_checkboolean(lua_State* L, int n) {
if (!lua_isboolean(L,n) ) {
luaL_argerror(L,n,"must be a boolean");
@@ -75,8 +75,8 @@ WSLUA_API gboolean wslua_checkboolean(lua_State* L, int n) {
return lua_toboolean(L,n);
}
-WSLUA_API gboolean wslua_optbool(lua_State* L, int n, gboolean def) {
- gboolean val = FALSE;
+WSLUA_API bool wslua_optbool(lua_State* L, int n, bool def) {
+ bool val = false;
if ( lua_isboolean(L,n) ) {
val = lua_toboolean(L,n);
@@ -185,9 +185,9 @@ WSLUA_API void wslua_print_stack(char* s, lua_State* L) {
/* C-code function equivalent of the typeof() function we created in Lua.
* The Lua one is for Lua scripts to use, this one is for C-code to use.
*/
-const gchar* wslua_typeof_unknown = "UNKNOWN";
-const gchar* wslua_typeof(lua_State *L, int idx) {
- const gchar *classname = wslua_typeof_unknown;
+const char* wslua_typeof_unknown = "UNKNOWN";
+const char* wslua_typeof(lua_State *L, int idx) {
+ const char *classname = wslua_typeof_unknown;
/* we'll try getting the class name for error reporting*/
if (luaL_getmetafield(L, idx, WSLUA_TYPEOF_FIELD)) {
classname = luaL_optstring(L, -1, wslua_typeof_unknown);
@@ -205,12 +205,12 @@ const gchar* wslua_typeof(lua_State *L, int idx) {
* location idx. If it does not get a table, it pops whatever it got
* and returns false.
*/
-gboolean wslua_get_table(lua_State *L, int idx, const gchar *name) {
- gboolean result = TRUE;
+bool wslua_get_table(lua_State *L, int idx, const char *name) {
+ bool result = true;
lua_rawgetfield(L, idx, name);
if (!lua_istable(L,-1)) {
lua_pop(L,1);
- result = FALSE;
+ result = false;
}
return result;
}
@@ -219,12 +219,12 @@ gboolean wslua_get_table(lua_State *L, int idx, const gchar *name) {
* location idx. If it does not get a field, it pops whatever it got
* and returns false.
*/
-gboolean wslua_get_field(lua_State *L, int idx, const gchar *name) {
- gboolean result = TRUE;
+bool wslua_get_field(lua_State *L, int idx, const char *name) {
+ bool result = true;
lua_rawgetfield(L, idx, name);
if (lua_isnil(L,-1)) {
lua_pop(L,1);
- result = FALSE;
+ result = false;
}
return result;
}
@@ -251,7 +251,7 @@ static int wslua_classmeta_index(lua_State *L) {
* Getters are invoked with the table as parameter. Setters are invoked with the
* table and the value as parameter.
*/
-static int wslua_instancemeta_index_impl(lua_State *L, gboolean is_getter)
+static int wslua_instancemeta_index_impl(lua_State *L, bool is_getter)
{
const char *fieldname = luaL_checkstring(L, 2);
const int attr_idx = lua_upvalueindex(2);
@@ -298,18 +298,18 @@ static int wslua_instancemeta_index_impl(lua_State *L, gboolean is_getter)
static int wslua_instancemeta_index(lua_State *L)
{
- return wslua_instancemeta_index_impl(L, TRUE);
+ return wslua_instancemeta_index_impl(L, true);
}
static int wslua_instancemeta_newindex(lua_State *L)
{
- return wslua_instancemeta_index_impl(L, FALSE);
+ return wslua_instancemeta_index_impl(L, false);
}
/* Pushes a hex string of the binary data argument. */
-int wslua_bin2hex(lua_State* L, const guint8* data, const guint len, const gboolean lowercase, const gchar* sep) {
+int wslua_bin2hex(lua_State* L, const uint8_t* data, const unsigned len, const bool lowercase, const char* sep) {
luaL_Buffer b;
- guint i = 0;
+ unsigned i = 0;
static const char byte_to_str_upper[256][3] = {
"00","01","02","03","04","05","06","07","08","09","0A","0B","0C","0D","0E","0F",
"10","11","12","13","14","15","16","17","18","19","1A","1B","1C","1D","1E","1F",
@@ -347,7 +347,7 @@ int wslua_bin2hex(lua_State* L, const guint8* data, const guint len, const gbool
"f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"
};
const char (*byte_to_str)[3] = byte_to_str_upper;
- const guint last = len - 1;
+ const unsigned last = len - 1;
if (lowercase) byte_to_str = byte_to_str_lower;
@@ -364,13 +364,13 @@ int wslua_bin2hex(lua_State* L, const guint8* data, const guint len, const gbool
}
/* Pushes a binary string of the hex-ascii data argument. */
-int wslua_hex2bin(lua_State* L, const char* data, const guint len, const gchar* sep) {
+int wslua_hex2bin(lua_State* L, const char* data, const unsigned len, const char* sep) {
luaL_Buffer b;
- guint i = 0;
- guint seplen = 0;
- gint8 c, d;
+ unsigned i = 0;
+ unsigned seplen = 0;
+ int8_t c, d;
- static const gint8 str_to_nibble[256] = {
+ static const int8_t str_to_nibble[256] = {
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
@@ -389,12 +389,12 @@ int wslua_hex2bin(lua_State* L, const char* data, const guint len, const gchar*
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
};
- if (sep) seplen = (guint) strlen(sep);
+ if (sep) seplen = (unsigned) strlen(sep);
luaL_buffinit(L, &b);
for (i = 0; i < len;) {
- c = str_to_nibble[(guchar)data[i]];
+ c = str_to_nibble[(unsigned char)data[i]];
if (c < 0) {
if (seplen && strncmp(&data[i], sep, seplen) == 0) {
i += seplen;
@@ -403,7 +403,7 @@ int wslua_hex2bin(lua_State* L, const char* data, const guint len, const gchar*
break;
}
}
- d = str_to_nibble[(guchar)data[++i]];
+ d = str_to_nibble[(unsigned char)data[++i]];
if (d < 0) break;
luaL_addchar(&b, (c * 16) + d);
i++;
@@ -420,7 +420,7 @@ int wslua_hex2bin(lua_State* L, const char* data, const guint len, const gchar*
* Additionally, a sanity check is performed to detect colliding getters/setters
* and method names.
*/
-static void wslua_push_attributes(lua_State *L, const wslua_attribute_table *t, gboolean is_getter, int methods_idx)
+static void wslua_push_attributes(lua_State *L, const wslua_attribute_table *t, bool is_getter, int methods_idx)
{
if (!t) {
/* No property accessors? Nothing to do. */
@@ -482,7 +482,7 @@ void wslua_register_classinstance_meta(lua_State *L, const wslua_class *cls_def)
/* Prepare __index method on metatable. */
lua_pushstring(L, cls_def->name); /* upval 1: class name */
- wslua_push_attributes(L, cls_def->attrs, TRUE, -2); /* upval 2: getters table */
+ wslua_push_attributes(L, cls_def->attrs, true, -2); /* upval 2: getters table */
#ifdef WSLUA_WITH_INTROSPECTION
lua_pushvalue(L, -1);
lua_rawsetfield(L, -5, "__getters"); /* set (transition) property on mt, remove later! */
@@ -494,7 +494,7 @@ void wslua_register_classinstance_meta(lua_State *L, const wslua_class *cls_def)
/* Prepare __newindex method on metatable. */
lua_pushstring(L, cls_def->name); /* upval 1: class name */
- wslua_push_attributes(L, cls_def->attrs, FALSE, -2); /* upval 2: setters table */
+ wslua_push_attributes(L, cls_def->attrs, false, -2); /* upval 2: setters table */
#ifdef WSLUA_WITH_INTROSPECTION
lua_pushvalue(L, -1);
lua_rawsetfield(L, -5, "__setters"); /* set (transition) property on mt, remove later! */
diff --git a/epan/wslua/wslua_listener.c b/epan/wslua/wslua_listener.c
index 676d9384f5..fa053d9fab 100644
--- a/epan/wslua/wslua_listener.c
+++ b/epan/wslua/wslua_listener.c
@@ -27,11 +27,11 @@ WSLUA_CLASS_DEFINE(Listener,FAIL_ON_NULL("Listener"));
*/
static int tap_packet_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
- static gchar* last_error = NULL;
+ const char* error = lua_tostring(L,1);
+ static char* last_error = NULL;
static int repeated = 0;
static int next = 2;
- gchar* where = (lua_pinfo) ?
+ char* where = (lua_pinfo) ?
wmem_strdup_printf(NULL, "Lua: on packet %i Error during execution of Listener packet callback",lua_pinfo->num) :
wmem_strdup_printf(NULL, "Lua: Error during execution of Listener packet callback") ;
@@ -124,7 +124,7 @@ static tap_packet_status lua_tap_packet(void *tapdata, packet_info *pinfo, epan_
}
static int tap_reset_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
+ const char* error = lua_tostring(L,1);
report_failure("Lua: Error during execution of Listener reset callback:\n %s",error);
return 0;
}
@@ -156,14 +156,14 @@ static void lua_tap_reset(void *tapdata) {
}
static int tap_draw_cb_error_handler(lua_State* L) {
- const gchar* error = lua_tostring(L,1);
+ const char* error = lua_tostring(L,1);
report_failure("Lua: Error during execution of Listener draw callback:\n %s",error);
return 0;
}
static void lua_tap_draw(void *tapdata) {
Listener tap = (Listener)tapdata;
- const gchar* error;
+ const char* error;
if (tap->draw_ref == LUA_NOREF) return;
@@ -191,12 +191,12 @@ static void lua_tap_draw(void *tapdata) {
}
/* TODO: we should probably use a Lua table here */
-static GPtrArray *listeners = NULL;
+static GPtrArray *listeners;
static void deregister_Listener (lua_State* L _U_, Listener tap) {
if (tap->all_fields) {
- epan_set_always_visible(FALSE);
- tap->all_fields = FALSE;
+ epan_set_always_visible(false);
+ tap->all_fields = false;
}
remove_tap_listener(tap);
@@ -220,9 +220,9 @@ WSLUA_CONSTRUCTOR Listener_new(lua_State* L) {
The default is `false`.
Note: This impacts performance. */
- const gchar* tap_type = luaL_optstring(L,WSLUA_OPTARG_Listener_new_TAP,"frame");
- const gchar* filter = luaL_optstring(L,WSLUA_OPTARG_Listener_new_FILTER,NULL);
- const gboolean all_fields = wslua_optbool(L, WSLUA_OPTARG_Listener_new_ALLFIELDS, FALSE);
+ const char* tap_type = luaL_optstring(L,WSLUA_OPTARG_Listener_new_TAP,"frame");
+ const char* filter = luaL_optstring(L,WSLUA_OPTARG_Listener_new_FILTER,NULL);
+ const bool all_fields = wslua_optbool(L, WSLUA_OPTARG_Listener_new_ALLFIELDS, false);
Listener tap;
GString* error;
@@ -252,12 +252,12 @@ WSLUA_CONSTRUCTOR Listener_new(lua_State* L) {
g_free(tap);
/* WSLUA_ERROR(new_tap,"tap registration error"); */
lua_pushfstring(L,"Error while registering tap:\n%s",error->str);
- g_string_free(error,TRUE);
+ g_string_free(error,true);
return luaL_error(L,lua_tostring(L,-1));
}
if (all_fields) {
- epan_set_always_visible(TRUE);
+ epan_set_always_visible(true);
}
g_ptr_array_add(listeners, tap);
@@ -267,7 +267,7 @@ WSLUA_CONSTRUCTOR Listener_new(lua_State* L) {
}
/* Allow dissector key names to be sorted alphabetically */
-static gint
+static int
compare_dissector_key_name(gconstpointer dissector_a, gconstpointer dissector_b)
{
return strcmp((const char*)dissector_a, (const char*)dissector_b);
@@ -277,9 +277,6 @@ WSLUA_CONSTRUCTOR Listener_list (lua_State *L) { /*
Gets a Lua array table of all registered `Listener` tap names.
Note: This is an expensive operation, and should only be used for troubleshooting.
-
- @since 1.11.3
-
===== Example
[source,lua]
@@ -414,7 +411,7 @@ int Listener_register(lua_State* L) {
return 0;
}
-static void deregister_tap_listener (gpointer data, gpointer userdata) {
+static void deregister_tap_listener (void *data, void *userdata) {
lua_State *L = (lua_State *) userdata;
Listener tap = (Listener) data;
deregister_Listener(L, tap);
@@ -422,7 +419,7 @@ static void deregister_tap_listener (gpointer data, gpointer userdata) {
int wslua_deregister_listeners(lua_State* L) {
g_ptr_array_foreach(listeners, deregister_tap_listener, L);
- g_ptr_array_free(listeners, TRUE);
+ g_ptr_array_free(listeners, true);
listeners = NULL;
return 0;
diff --git a/epan/wslua/wslua_nstime.c b/epan/wslua/wslua_nstime.c
index b3012e7136..94db190a76 100644
--- a/epan/wslua/wslua_nstime.c
+++ b/epan/wslua/wslua_nstime.c
@@ -54,9 +54,7 @@ WSLUA_METAMETHOD NSTime__call(lua_State* L) { /* Creates a NSTime object. */
}
WSLUA_METHOD NSTime_tonumber(lua_State* L) {
- /* Returns a Lua number of the `NSTime` representing seconds from epoch
- @since 2.4.0
- */
+ /* Returns a Lua number of the `NSTime` representing seconds from epoch. */
NSTime nstime = checkNSTime(L,1);
lua_pushnumber(L, (lua_Number)nstime_to_sec(nstime));
WSLUA_RETURN(1); /* The Lua number. */
@@ -64,10 +62,10 @@ WSLUA_METHOD NSTime_tonumber(lua_State* L) {
WSLUA_METAMETHOD NSTime__tostring(lua_State* L) {
NSTime nstime = checkNSTime(L,1);
- gchar *str;
+ char *str;
long secs = (long)nstime->secs;
- gint nsecs = nstime->nsecs;
- gboolean negative_zero = FALSE;
+ int nsecs = nstime->nsecs;
+ bool negative_zero = false;
/* Time is defined as sec + nsec/10^9, both parts can be negative.
* Translate this into the more familiar sec.nsec notation instead. */
@@ -133,10 +131,10 @@ WSLUA_METAMETHOD NSTime__unm(lua_State* L) { /* Calculates the negative NSTime.
WSLUA_METAMETHOD NSTime__eq(lua_State* L) { /* Compares two NSTimes. */
NSTime time1 = checkNSTime(L,1);
NSTime time2 = checkNSTime(L,2);
- gboolean result = FALSE;
+ bool result = false;
if (nstime_cmp(time1, time2) == 0)
- result = TRUE;
+ result = true;
lua_pushboolean(L,result);
@@ -146,10 +144,10 @@ WSLUA_METAMETHOD NSTime__eq(lua_State* L) { /* Compares two NSTimes. */
WSLUA_METAMETHOD NSTime__le(lua_State* L) { /* Compares two NSTimes. */
NSTime time1 = checkNSTime(L,1);
NSTime time2 = checkNSTime(L,2);
- gboolean result = FALSE;
+ bool result = false;
if (nstime_cmp(time1, time2) <= 0)
- result = TRUE;
+ result = true;
lua_pushboolean(L,result);
@@ -159,10 +157,10 @@ WSLUA_METAMETHOD NSTime__le(lua_State* L) { /* Compares two NSTimes. */
WSLUA_METAMETHOD NSTime__lt(lua_State* L) { /* Compares two NSTimes. */
NSTime time1 = checkNSTime(L,1);
NSTime time2 = checkNSTime(L,2);
- gboolean result = FALSE;
+ bool result = false;
if (nstime_cmp(time1, time2) < 0)
- result = TRUE;
+ result = true;
lua_pushboolean(L,result);
@@ -171,12 +169,12 @@ WSLUA_METAMETHOD NSTime__lt(lua_State* L) { /* Compares two NSTimes. */
/* WSLUA_ATTRIBUTE NSTime_secs RW The NSTime seconds. */
-WSLUA_ATTRIBUTE_NUMBER_GETTER(NSTime,secs);
-WSLUA_ATTRIBUTE_NUMBER_SETTER(NSTime,secs,time_t);
+WSLUA_ATTRIBUTE_INTEGER_GETTER(NSTime,secs);
+WSLUA_ATTRIBUTE_INTEGER_SETTER(NSTime,secs,time_t);
/* WSLUA_ATTRIBUTE NSTime_nsecs RW The NSTime nano seconds. */
-WSLUA_ATTRIBUTE_NUMBER_GETTER(NSTime,nsecs);
-WSLUA_ATTRIBUTE_NUMBER_SETTER(NSTime,nsecs,int);
+WSLUA_ATTRIBUTE_INTEGER_GETTER(NSTime,nsecs);
+WSLUA_ATTRIBUTE_INTEGER_SETTER(NSTime,nsecs,int);
/* Gets registered as metamethod automatically by WSLUA_REGISTER_CLASS/META */
static int NSTime__gc(lua_State* L) {
diff --git a/epan/wslua/wslua_pinfo.c b/epan/wslua/wslua_pinfo.c
index cede77334e..2d1a7afcbd 100644
--- a/epan/wslua/wslua_pinfo.c
+++ b/epan/wslua/wslua_pinfo.c
@@ -30,18 +30,18 @@
* see comment on wslua_tvb.c
*/
-static GPtrArray* outstanding_Pinfo = NULL;
-static GPtrArray* outstanding_PrivateTable = NULL;
+static GPtrArray* outstanding_Pinfo;
+static GPtrArray* outstanding_PrivateTable;
-CLEAR_OUTSTANDING(Pinfo,expired, TRUE)
-CLEAR_OUTSTANDING(PrivateTable,expired, TRUE)
+CLEAR_OUTSTANDING(Pinfo,expired, true)
+CLEAR_OUTSTANDING(PrivateTable,expired, true)
Pinfo* push_Pinfo(lua_State* L, packet_info* ws_pinfo) {
Pinfo pinfo = NULL;
if (ws_pinfo) {
pinfo = (Pinfo)g_malloc(sizeof(struct _wslua_pinfo));
pinfo->ws_pinfo = ws_pinfo;
- pinfo->expired = FALSE;
+ pinfo->expired = false;
g_ptr_array_add(outstanding_Pinfo,pinfo);
}
return pushPinfo(L,pinfo);
@@ -65,7 +65,7 @@ WSLUA_METAMETHOD PrivateTable__tostring(lua_State* L) {
keys = g_hash_table_get_keys (priv->table);
key = g_list_first (keys);
while (key) {
- key_string = g_string_append (key_string, (const gchar *)key->data);
+ key_string = g_string_append (key_string, (const char *)key->data);
key = g_list_next (key);
if (key) {
key_string = g_string_append_c (key_string, ',');
@@ -74,7 +74,7 @@ WSLUA_METAMETHOD PrivateTable__tostring(lua_State* L) {
lua_pushstring(L,key_string->str);
- g_string_free (key_string, TRUE);
+ g_string_free (key_string, true);
g_list_free (keys);
WSLUA_RETURN(1); /* A string with all keys in the table, mostly for debugging. */
@@ -83,10 +83,10 @@ WSLUA_METAMETHOD PrivateTable__tostring(lua_State* L) {
static int PrivateTable__index(lua_State* L) {
/* Gets the text of a specific entry. */
PrivateTable priv = checkPrivateTable(L,1);
- const gchar* name = luaL_checkstring(L,2);
- const gchar* string;
+ const char* name = luaL_checkstring(L,2);
+ const char* string;
- string = (const gchar *)(g_hash_table_lookup (priv->table, name));
+ string = (const char *)(g_hash_table_lookup (priv->table, name));
if (string) {
lua_pushstring(L, string);
@@ -100,8 +100,8 @@ static int PrivateTable__index(lua_State* L) {
static int PrivateTable__newindex(lua_State* L) {
/* Sets the text of a specific entry. */
PrivateTable priv = checkPrivateTable(L,1);
- const gchar* name = luaL_checkstring(L,2);
- const gchar* string = NULL;
+ const char* name = luaL_checkstring(L,2);
+ const char* string = NULL;
if (lua_isstring(L,3)) {
/* This also catches numbers, which is converted to string */
@@ -115,7 +115,7 @@ static int PrivateTable__newindex(lua_State* L) {
}
if (string) {
- g_hash_table_replace (priv->table, (gpointer) g_strdup(name), (gpointer) g_strdup(string));
+ g_hash_table_replace (priv->table, (void *) g_strdup(name), (void *) g_strdup(string));
} else {
g_hash_table_remove (priv->table, (gconstpointer) name);
}
@@ -130,7 +130,7 @@ static int PrivateTable__gc(lua_State* L) {
if (!priv) return 0;
if (!priv->expired) {
- priv->expired = TRUE;
+ priv->expired = true;
} else {
if (priv->is_allocated) {
g_hash_table_destroy (priv->table);
@@ -182,17 +182,17 @@ static int Pinfo__tostring(lua_State *L) { lua_pushstring(L,"a Pinfo"); return 1
#define PINFO_NAMED_BOOLEAN_SETTER(name,member) \
WSLUA_ATTRIBUTE_NAMED_BOOLEAN_SETTER(Pinfo,name,ws_pinfo->member)
-#define PINFO_NUMBER_GETTER(name) \
- WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(Pinfo,name,ws_pinfo->name)
+#define PINFO_INTEGER_GETTER(name) \
+ WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(Pinfo,name,ws_pinfo->name)
-#define PINFO_NAMED_NUMBER_GETTER(name,member) \
- WSLUA_ATTRIBUTE_NAMED_NUMBER_GETTER(Pinfo,name,ws_pinfo->member)
+#define PINFO_NAMED_INTEGER_GETTER(name,member) \
+ WSLUA_ATTRIBUTE_NAMED_INTEGER_GETTER(Pinfo,name,ws_pinfo->member)
#define PINFO_NUMBER_SETTER(name,cast) \
- WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(Pinfo,name,ws_pinfo->name,cast)
+ WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(Pinfo,name,ws_pinfo->name,cast)
-#define PINFO_NAMED_NUMBER_SETTER(name,member,cast) \
- WSLUA_ATTRIBUTE_NAMED_NUMBER_SETTER(Pinfo,name,ws_pinfo->member,cast)
+#define PINFO_NAMED_INTEGER_SETTER(name,member,cast) \
+ WSLUA_ATTRIBUTE_NAMED_INTEGER_SETTER(Pinfo,name,ws_pinfo->member,cast)
static double
lua_nstime_to_sec(const nstime_t *nstime)
@@ -201,7 +201,7 @@ lua_nstime_to_sec(const nstime_t *nstime)
}
static double
-lua_delta_nstime_to_sec(const Pinfo pinfo, const frame_data *fd, guint32 prev_num)
+lua_delta_nstime_to_sec(const Pinfo pinfo, const frame_data *fd, uint32_t prev_num)
{
nstime_t del;
@@ -214,13 +214,13 @@ lua_delta_nstime_to_sec(const Pinfo pinfo, const frame_data *fd, guint32 prev_nu
PINFO_NAMED_BOOLEAN_GETTER(visited,fd->visited);
/* WSLUA_ATTRIBUTE Pinfo_number RO The number of this packet in the current file. */
-PINFO_NAMED_NUMBER_GETTER(number,num);
+PINFO_NAMED_INTEGER_GETTER(number,num);
/* WSLUA_ATTRIBUTE Pinfo_len RO The length of the frame. */
-PINFO_NAMED_NUMBER_GETTER(len,fd->pkt_len);
+PINFO_NAMED_INTEGER_GETTER(len,fd->pkt_len);
/* WSLUA_ATTRIBUTE Pinfo_caplen RO The captured length of the frame. */
-PINFO_NAMED_NUMBER_GETTER(caplen,fd->cap_len);
+PINFO_NAMED_INTEGER_GETTER(caplen,fd->cap_len);
/* WSLUA_ATTRIBUTE Pinfo_abs_ts RO When the packet was captured. */
WSLUA_ATTRIBUTE_BLOCK_NUMBER_GETTER(Pinfo,abs_ts,lua_nstime_to_sec(&obj->ws_pinfo->abs_ts));
@@ -238,15 +238,15 @@ WSLUA_ATTRIBUTE_BLOCK_NUMBER_GETTER(Pinfo,delta_dis_ts,lua_delta_nstime_to_sec(o
WSLUA_ATTRIBUTE_NAMED_STRING_GETTER(Pinfo,curr_proto,ws_pinfo->current_proto);
/* WSLUA_ATTRIBUTE Pinfo_can_desegment RW Set if this segment could be desegmented. */
-PINFO_NUMBER_GETTER(can_desegment);
-PINFO_NUMBER_SETTER(can_desegment,guint16);
+PINFO_INTEGER_GETTER(can_desegment);
+PINFO_NUMBER_SETTER(can_desegment,uint16_t);
/* WSLUA_ATTRIBUTE Pinfo_desegment_len RW Estimated number of additional bytes required for completing the PDU. */
-PINFO_NUMBER_GETTER(desegment_len);
-PINFO_NUMBER_SETTER(desegment_len,guint32);
+PINFO_INTEGER_GETTER(desegment_len);
+PINFO_NUMBER_SETTER(desegment_len,uint32_t);
/* WSLUA_ATTRIBUTE Pinfo_desegment_offset RW Offset in the tvbuff at which the dissector will continue processing when next called. */
-PINFO_NUMBER_GETTER(desegment_offset);
+PINFO_INTEGER_GETTER(desegment_offset);
PINFO_NUMBER_SETTER(desegment_offset,int);
/* WSLUA_ATTRIBUTE Pinfo_fragmented RO If the protocol is only a fragment. */
@@ -257,22 +257,22 @@ PINFO_NAMED_BOOLEAN_GETTER(in_error_pkt,flags.in_error_pkt);
PINFO_NAMED_BOOLEAN_SETTER(in_error_pkt,flags.in_error_pkt);
/* WSLUA_ATTRIBUTE Pinfo_match_uint RO Matched uint for calling subdissector from table. */
-PINFO_NUMBER_GETTER(match_uint);
+PINFO_INTEGER_GETTER(match_uint);
/* WSLUA_ATTRIBUTE Pinfo_match_string RO Matched string for calling subdissector from table. */
WSLUA_ATTRIBUTE_NAMED_STRING_GETTER(Pinfo,match_string,ws_pinfo->match_string);
/* WSLUA_ATTRIBUTE Pinfo_port_type RW Type of Port of .src_port and .dst_port. */
-PINFO_NAMED_NUMBER_GETTER(port_type,ptype);
-PINFO_NAMED_NUMBER_SETTER(port_type,ptype,guint8);
+PINFO_NAMED_INTEGER_GETTER(port_type,ptype);
+PINFO_NAMED_INTEGER_SETTER(port_type,ptype,uint8_t);
/* WSLUA_ATTRIBUTE Pinfo_src_port RW Source Port of this Packet. */
-PINFO_NAMED_NUMBER_GETTER(src_port,srcport);
-PINFO_NAMED_NUMBER_SETTER(src_port,srcport,guint32);
+PINFO_NAMED_INTEGER_GETTER(src_port,srcport);
+PINFO_NAMED_INTEGER_SETTER(src_port,srcport,uint32_t);
/* WSLUA_ATTRIBUTE Pinfo_dst_port RW Destination Port of this Packet. */
-PINFO_NAMED_NUMBER_GETTER(dst_port,destport);
-PINFO_NAMED_NUMBER_SETTER(dst_port,destport,guint32);
+PINFO_NAMED_INTEGER_GETTER(dst_port,destport);
+PINFO_NAMED_INTEGER_SETTER(dst_port,destport,uint32_t);
/* WSLUA_ATTRIBUTE Pinfo_dl_src RW Data Link Source Address of this Packet. */
PINFO_ADDRESS_GETTER(dl_src);
@@ -299,7 +299,7 @@ PINFO_ADDRESS_GETTER(dst);
PINFO_ADDRESS_SETTER(dst);
/* WSLUA_ATTRIBUTE Pinfo_p2p_dir RW Direction of this Packet. (incoming / outgoing) */
-PINFO_NUMBER_GETTER(p2p_dir);
+PINFO_INTEGER_GETTER(p2p_dir);
PINFO_NUMBER_SETTER(p2p_dir,int);
/* WSLUA_ATTRIBUTE Pinfo_match RO Port/Data we are matching. */
@@ -320,11 +320,11 @@ static int Pinfo_get_match(lua_State *L) {
static int Pinfo_get_columns(lua_State *L) {
Columns cols = NULL;
Pinfo pinfo = checkPinfo(L,1);
- const gchar* colname = luaL_optstring(L,2,NULL);
+ const char* colname = luaL_optstring(L,2,NULL);
cols = (Columns)g_malloc(sizeof(struct _wslua_cols));
cols->cinfo = pinfo->ws_pinfo->cinfo;
- cols->expired = FALSE;
+ cols->expired = false;
if (!colname) {
Push_Columns(L,cols);
@@ -341,18 +341,18 @@ static int Pinfo_get_columns(lua_State *L) {
static int Pinfo_get_private(lua_State *L) {
PrivateTable priv = NULL;
Pinfo pinfo = checkPinfo(L,1);
- const gchar* privname = luaL_optstring(L,2,NULL);
- gboolean is_allocated = FALSE;
+ const char* privname = luaL_optstring(L,2,NULL);
+ bool is_allocated = false;
if (!pinfo->ws_pinfo->private_table) {
pinfo->ws_pinfo->private_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
- is_allocated = TRUE;
+ is_allocated = true;
}
priv = (PrivateTable)g_malloc(sizeof(struct _wslua_private_table));
priv->table = pinfo->ws_pinfo->private_table;
priv->is_allocated = is_allocated;
- priv->expired = FALSE;
+ priv->expired = false;
if (!privname) {
PUSH_PRIVATE_TABLE(L,priv);
@@ -421,7 +421,7 @@ static int Pinfo__gc(lua_State* L) {
if (!pinfo) return 0;
if (!pinfo->expired)
- pinfo->expired = TRUE;
+ pinfo->expired = true;
else
g_free(pinfo);
diff --git a/epan/wslua/wslua_pref.c b/epan/wslua/wslua_pref.c
index 3d6ed5403a..52b3706a90 100644
--- a/epan/wslua/wslua_pref.c
+++ b/epan/wslua/wslua_pref.c
@@ -29,9 +29,9 @@ static range_t* get_range(lua_State *L, int idx_r, int idx_m);
static enum_val_t* get_enum(lua_State *L, int idx)
{
double seq;
- const gchar *str1, *str2;
+ const char *str1, *str2;
enum_val_t *ret, last = {NULL, NULL, -1};
- GArray* es = g_array_new(TRUE,TRUE,sizeof(enum_val_t));
+ GArray* es = g_array_new(true,true,sizeof(enum_val_t));
luaL_checktype(L, idx, LUA_TTABLE);
lua_pushnil(L); /* first key */
@@ -44,7 +44,7 @@ static enum_val_t* get_enum(lua_State *L, int idx)
lua_next(L, -2);
if (! lua_isstring(L,-1)) {
luaL_argerror(L,idx,"First value of an enum table must be string");
- g_array_free(es,TRUE);
+ g_array_free(es,true);
return NULL;
}
str1 = lua_tostring(L, -1);
@@ -53,7 +53,7 @@ static enum_val_t* get_enum(lua_State *L, int idx)
lua_next(L, -2);
if (! lua_isstring(L,-1)) {
luaL_argerror(L,idx,"Second value of an enum table must be string");
- g_array_free(es,TRUE);
+ g_array_free(es,true);
return NULL;
}
str2 = lua_tostring(L, -1);
@@ -62,14 +62,14 @@ static enum_val_t* get_enum(lua_State *L, int idx)
lua_next(L, -2);
if (! lua_isnumber(L,-1)) {
luaL_argerror(L,idx,"Third value of an enum table must be an integer");
- g_array_free(es,TRUE);
+ g_array_free(es,true);
return NULL;
}
seq = lua_tonumber(L, -1);
e.name = g_strdup(str1);
e.description = g_strdup(str2);
- e.value = (guint32)seq;
+ e.value = (uint32_t)seq;
g_array_append_val(es,e);
@@ -78,14 +78,14 @@ static enum_val_t* get_enum(lua_State *L, int idx)
g_array_append_val(es,last);
- ret = (enum_val_t*)(void*)g_array_free(es, FALSE);
+ ret = (enum_val_t*)(void*)g_array_free(es, false);
return ret;
}
static int new_pref(lua_State* L, pref_type_t type) {
- const gchar* label = luaL_optstring(L,1,NULL);
- const gchar* descr = luaL_optstring(L,3,"");
+ const char* label = luaL_optstring(L,1,NULL);
+ const char* descr = luaL_optstring(L,3,"");
Pref pref = g_new0(wslua_pref_t, 1);
pref->label = g_strdup(label);
@@ -95,17 +95,17 @@ static int new_pref(lua_State* L, pref_type_t type) {
switch(type) {
case PREF_BOOL: {
- gboolean def = wslua_toboolean(L,2);
+ bool def = wslua_toboolean(L,2);
pref->value.b = def;
break;
}
case PREF_UINT: {
- guint32 def = wslua_optgint32(L,2,0);
+ uint32_t def = wslua_optint32(L,2,0);
pref->value.u = def;
break;
}
case PREF_STRING: {
- gchar* def = g_strdup(luaL_optstring(L,2,""));
+ char* def = g_strdup(luaL_optstring(L,2,""));
/*
* prefs_register_string_preference() assumes that the
* variable for the preference points to a static
@@ -132,9 +132,9 @@ static int new_pref(lua_State* L, pref_type_t type) {
break;
}
case PREF_ENUM: {
- guint32 def = wslua_optgint32(L,2,0);
+ uint32_t def = wslua_optint32(L,2,0);
enum_val_t *enum_val = get_enum(L,4);
- gboolean radio = wslua_toboolean(L,5);
+ bool radio = wslua_toboolean(L,5);
pref->value.e = def;
pref->info.enum_info.enumvals = enum_val;
pref->info.enum_info.radio_buttons = radio;
@@ -142,7 +142,7 @@ static int new_pref(lua_State* L, pref_type_t type) {
}
case PREF_RANGE: {
range_t *range = get_range(L,2,4);
- guint32 max = wslua_optgint32(L,4,0);
+ uint32_t max = wslua_optint32(L,4,0);
pref->value.r = range;
pref->info.max_value = max;
break;
@@ -177,7 +177,7 @@ WSLUA_CONSTRUCTOR Pref_bool(lua_State* L) {
#define WSLUA_ARG_Pref_bool_LABEL 1 /* The Label (text in the right side of the
preference input) for this preference. */
#define WSLUA_ARG_Pref_bool_DEFAULT 2 /* The default value for this preference. */
-#define WSLUA_ARG_Pref_bool_DESCR 3 /* A description of this preference. */
+#define WSLUA_ARG_Pref_bool_DESCRIPTION 3 /* A description of this preference. */
return new_pref(L,PREF_BOOL);
}
@@ -186,7 +186,7 @@ WSLUA_CONSTRUCTOR Pref_uint(lua_State* L) {
#define WSLUA_ARG_Pref_uint_LABEL 1 /* The Label (text in the right side of the
preference input) for this preference. */
#define WSLUA_ARG_Pref_uint_DEFAULT 2 /* The default value for this preference. */
-#define WSLUA_ARG_Pref_uint_DESCR 3 /* A description of what this preference is. */
+#define WSLUA_ARG_Pref_uint_DESCRIPTION 3 /* A description of what this preference is. */
return new_pref(L,PREF_UINT);
}
@@ -195,7 +195,7 @@ WSLUA_CONSTRUCTOR Pref_string(lua_State* L) {
#define WSLUA_ARG_Pref_string_LABEL 1 /* The Label (text in the right side of the
preference input) for this preference. */
#define WSLUA_ARG_Pref_string_DEFAULT 2 /* The default value for this preference. */
-#define WSLUA_ARG_Pref_string_DESCR 3 /* A description of what this preference is. */
+#define WSLUA_ARG_Pref_string_DESCRIPTION 3 /* A description of what this preference is. */
return new_pref(L,PREF_STRING);
}
@@ -240,7 +240,7 @@ WSLUA_CONSTRUCTOR Pref_enum(lua_State* L) {
#define WSLUA_ARG_Pref_enum_LABEL 1 /* The Label (text in the right side of the
preference input) for this preference. */
#define WSLUA_ARG_Pref_enum_DEFAULT 2 /* The default value for this preference. */
-#define WSLUA_ARG_Pref_enum_DESCR 3 /* A description of what this preference is. */
+#define WSLUA_ARG_Pref_enum_DESCRIPTION 3 /* A description of what this preference is. */
#define WSLUA_ARG_Pref_enum_ENUM 4 /* An enum Lua table. */
#define WSLUA_ARG_Pref_enum_RADIO 5 /* Radio button (true) or Combobox (false). */
return new_pref(L,PREF_ENUM);
@@ -252,7 +252,7 @@ WSLUA_CONSTRUCTOR Pref_range(lua_State* L) {
input) for this preference. */
#define WSLUA_ARG_Pref_range_DEFAULT 2 /* The default value for this preference, e.g., "53",
"10-30", or "10-30,53,55,100-120". */
-#define WSLUA_ARG_Pref_range_DESCR 3 /* A description of what this preference is. */
+#define WSLUA_ARG_Pref_range_DESCRIPTION 3 /* A description of what this preference is. */
#define WSLUA_ARG_Pref_range_MAX 4 /* The maximum value. */
return new_pref(L,PREF_RANGE);
}
@@ -260,16 +260,16 @@ WSLUA_CONSTRUCTOR Pref_range(lua_State* L) {
WSLUA_CONSTRUCTOR Pref_statictext(lua_State* L) {
/* Creates a static text string to be added to a <<lua_class_attrib_proto_prefs,`Proto.prefs`>> Lua table. */
#define WSLUA_ARG_Pref_statictext_LABEL 1 /* The static text. */
-#define WSLUA_ARG_Pref_statictext_DESCR 2 /* The static text description. */
+#define WSLUA_ARG_Pref_statictext_DESCRIPTION 2 /* The static text description. */
return new_pref(L,PREF_STATIC_TEXT);
}
static range_t* get_range(lua_State *L, int idx_r, int idx_m)
{
static range_t *ret = NULL;
- const gchar *pattern = luaL_checkstring(L, idx_r);
+ const char *pattern = luaL_checkstring(L, idx_r);
- switch (range_convert_str(wmem_epan_scope(), &ret, pattern, wslua_togint32(L, idx_m))) {
+ switch (range_convert_str(wmem_epan_scope(), &ret, pattern, wslua_toint32(L, idx_m))) {
case CVT_NO_ERROR:
break;
case CVT_SYNTAX_ERROR:
@@ -358,10 +358,10 @@ WSLUA_METAMETHOD Prefs__newindex(lua_State* L) {
#define WSLUA_ARG_Prefs__newindex_PREF 3 /* A valid but still unassigned Pref object. */
Pref prefs_p = checkPrefs(L,1);
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_Prefs__newindex_NAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_Prefs__newindex_NAME);
Pref pref = checkPref(L,WSLUA_ARG_Prefs__newindex_PREF);
Pref p;
- const gchar *c;
+ const char *c;
if (! prefs_p ) return 0;
@@ -500,7 +500,7 @@ WSLUA_METAMETHOD Prefs__index(lua_State* L) {
#define WSLUA_ARG_Prefs__index_NAME 2 /* The abbreviation of this preference. */
Pref prefs_p = checkPrefs(L,1);
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_Prefs__index_NAME);
+ const char* name = luaL_checkstring(L,WSLUA_ARG_Prefs__index_NAME);
if (! prefs_p ) return 0;
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c
index 92a1d19202..d63867c75f 100644
--- a/epan/wslua/wslua_proto.c
+++ b/epan/wslua/wslua_proto.c
@@ -40,7 +40,7 @@ typedef struct _func_saver {
int dissect_ref;
} func_saver_t;
-static GPtrArray* outstanding_FuncSavers = NULL;
+static GPtrArray* outstanding_FuncSavers;
void clear_outstanding_FuncSavers(void) {
while (outstanding_FuncSavers->len) {
@@ -70,11 +70,11 @@ static int protocols_table_ref = LUA_NOREF;
WSLUA_CONSTRUCTOR Proto_new(lua_State* L) { /* Creates a new <<lua_class_Proto,`Proto`>> object. */
#define WSLUA_ARG_Proto_new_NAME 1 /* The name of the protocol. */
-#define WSLUA_ARG_Proto_new_DESC 2 /* A Long Text description of the protocol (usually lowercase). */
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_Proto_new_NAME);
- const gchar* desc = luaL_checkstring(L,WSLUA_ARG_Proto_new_DESC);
+#define WSLUA_ARG_Proto_new_DESCRIPTION 2 /* A Long Text description of the protocol (usually lowercase). */
+ const char* name = luaL_checkstring(L,WSLUA_ARG_Proto_new_NAME);
+ const char* desc = luaL_checkstring(L,WSLUA_ARG_Proto_new_DESCRIPTION);
Proto proto;
- gchar *loname, *hiname;
+ char *loname, *hiname;
/* TODO: should really make a common function for all of wslua that does checkstring and non-empty at same time */
if (!name[0]) {
@@ -83,12 +83,12 @@ WSLUA_CONSTRUCTOR Proto_new(lua_State* L) { /* Creates a new <<lua_class_Proto,`
}
if (!desc[0]) {
- WSLUA_ARG_ERROR(Proto_new,DESC,"must not be an empty string");
+ WSLUA_ARG_ERROR(Proto_new,DESCRIPTION,"must not be an empty string");
return 0;
}
if (proto_name_already_registered(desc)) {
- WSLUA_ARG_ERROR(Proto_new,DESC,"there cannot be two protocols with the same description");
+ WSLUA_ARG_ERROR(Proto_new,DESCRIPTION,"there cannot be two protocols with the same description");
return 0;
}
@@ -116,8 +116,8 @@ WSLUA_CONSTRUCTOR Proto_new(lua_State* L) { /* Creates a new <<lua_class_Proto,`
proto->desc = g_strdup(desc);
proto->hfid = proto_register_protocol(proto->desc,hiname,loname);
proto->ett = -1;
- proto->is_postdissector = FALSE;
- proto->expired = FALSE;
+ proto->is_postdissector = false;
+ proto->expired = false;
lua_newtable (L);
proto->fields = luaL_ref(L, LUA_REGISTRYINDEX);
@@ -150,7 +150,7 @@ WSLUA_CONSTRUCTOR Proto_new(lua_State* L) { /* Creates a new <<lua_class_Proto,`
WSLUA_METAMETHOD Proto__call(lua_State* L) { /* Creates a <<lua_class_Proto,`Proto`>> object. */
#define WSLUA_ARG_Proto__call_NAME 1 /* The name of the protocol. */
-#define WSLUA_ARG_Proto__call_DESC 2 /* A Long Text description of the protocol (usually lowercase). */
+#define WSLUA_ARG_Proto__call_DESCRIPTION 2 /* A Long Text description of the protocol (usually lowercase). */
lua_remove(L,1); /* remove the table */
WSLUA_RETURN(Proto_new(L)); /* The new <<lua_class_Proto,`Proto`>> object. */
}
@@ -171,7 +171,7 @@ WSLUA_FUNCTION wslua_register_postdissector(lua_State* L) {
Note: This impacts performance (default=false). */
Proto proto = checkProto(L,WSLUA_ARG_register_postdissector_PROTO);
- const gboolean all_fields = wslua_optbool(L, WSLUA_OPTARG_register_postdissector_ALLFIELDS, FALSE);
+ const bool all_fields = wslua_optbool(L, WSLUA_OPTARG_register_postdissector_ALLFIELDS, false);
if(!proto->is_postdissector) {
if (! proto->handle) {
@@ -179,7 +179,7 @@ WSLUA_FUNCTION wslua_register_postdissector(lua_State* L) {
}
register_postdissector(proto->handle);
- proto->is_postdissector = TRUE;
+ proto->is_postdissector = true;
} else {
luaL_argerror(L,1,"this protocol is already registered as postdissector");
}
@@ -195,7 +195,7 @@ WSLUA_FUNCTION wslua_register_postdissector(lua_State* L) {
*
* If not, this is overkill.
*/
- epan_set_always_visible(TRUE);
+ epan_set_always_visible(true);
}
return 0;
@@ -222,8 +222,6 @@ WSLUA_METHOD Proto_register_heuristic(lua_State* L) {
it will be treated the same as a `false` return for the heuristic; if a positive or negative
number is returned, then the it will be treated the same as a `true` return for the heuristic,
meaning the packet is for this protocol and no other heuristic will be tried.
-
- @since 1.11.3
*/
#define WSLUA_ARG_Proto_register_heuristic_LISTNAME 2 /* The heuristic list name this function
is a heuristic for (e.g., "udp" or
@@ -231,11 +229,11 @@ WSLUA_METHOD Proto_register_heuristic(lua_State* L) {
#define WSLUA_ARG_Proto_register_heuristic_FUNC 3 /* A Lua function that will be invoked for
heuristic dissection. */
Proto proto = checkProto(L,1);
- const gchar *listname = luaL_checkstring(L, WSLUA_ARG_Proto_register_heuristic_LISTNAME);
- const gchar *proto_name = proto->name;
+ const char *listname = luaL_checkstring(L, WSLUA_ARG_Proto_register_heuristic_LISTNAME);
+ const char *proto_name = proto->name;
const int top _U_ = lua_gettop(L);
- gchar *short_name;
+ char *short_name;
if (!proto_name || proto->hfid == -1) {
/* this shouldn't happen - internal bug if it does */
@@ -489,10 +487,7 @@ static int Proto_set_fields(lua_State* L) {
return 1;
}
-/* WSLUA_ATTRIBUTE Proto_experts RW The expert info Lua table of this `Proto`.
-
- @since 1.11.3
- */
+/* WSLUA_ATTRIBUTE Proto_experts RW The expert info Lua table of this `Proto`. */
static int Proto_get_experts(lua_State* L) {
Proto proto = checkProto(L,1);
lua_rawgeti(L, LUA_REGISTRYINDEX, proto->expert_info_table_ref);
@@ -537,7 +532,7 @@ static int Proto__gc(lua_State* L) {
Proto proto = toProto(L,1);
if (!proto->expired) {
- proto->expired = TRUE;
+ proto->expired = true;
} else if (proto->hfid == -2) {
/* Only free deregistered Proto */
g_free(proto);
@@ -624,9 +619,9 @@ int wslua_deregister_heur_dissectors(lua_State* L) {
/* for each registered heur dissector do... */
lua_rawgeti(L, LUA_REGISTRYINDEX, lua_heur_dissectors_table_ref);
for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) {
- const gchar *listname = luaL_checkstring(L, -2);
+ const char *listname = luaL_checkstring(L, -2);
for (lua_pushnil(L); lua_next(L, -2); lua_pop(L, 1)) {
- const gchar *proto_name = luaL_checkstring(L, -2);
+ const char *proto_name = luaL_checkstring(L, -2);
int proto_id = proto_get_id_by_short_name(proto_name);
heur_dissector_delete(listname, heur_dissect_lua, proto_id);
}
@@ -698,18 +693,18 @@ int wslua_deregister_protocols(lua_State* L) {
lua_pop(L, 1);
if (proto->hfa && proto->hfa->len) {
- proto_add_deregistered_data(g_array_free(proto->hfa,FALSE));
+ proto_add_deregistered_data(g_array_free(proto->hfa,false));
} else {
- g_array_free(proto->hfa,TRUE);
+ g_array_free(proto->hfa,true);
}
/* No need for deferred deletion of subtree indexes */
- g_array_free(proto->etta,TRUE);
+ g_array_free(proto->etta,true);
if (proto->eia && proto->eia->len) {
- proto_add_deregistered_data(g_array_free(proto->eia,FALSE));
+ proto_add_deregistered_data(g_array_free(proto->eia,false));
} else {
- g_array_free(proto->eia,TRUE);
+ g_array_free(proto->eia,true);
}
proto->hfid = -2; /* Deregister Proto, freed in Proto__gc */
@@ -734,11 +729,11 @@ int Proto_commit(lua_State* L) {
pop'ed the final key itself, leaving just the protocols_table_ref table on the stack.
*/
Proto proto = checkProto(L,3);
- gint* ettp = NULL;
+ int* ettp = NULL;
- proto->hfa = g_array_new(TRUE,TRUE,sizeof(hf_register_info));
- proto->etta = g_array_new(TRUE,TRUE,sizeof(gint*));
- proto->eia = g_array_new(TRUE,TRUE,sizeof(ei_register_info));
+ proto->hfa = g_array_new(true,true,sizeof(hf_register_info));
+ proto->etta = g_array_new(true,true,sizeof(int*));
+ proto->eia = g_array_new(true,true,sizeof(ei_register_info));
ettp = &(proto->ett);
g_array_append_val(proto->etta,ettp);
@@ -767,7 +762,7 @@ int Proto_commit(lua_State* L) {
// XXX this will leak resources.
if (f->hfid != -2) {
- return luaL_error(L,"fields can be registered only once");
+ return luaL_error(L,"%s is already registered; fields can be registered only once", f->abbrev);
}
f->hfid = -1;
@@ -777,7 +772,7 @@ int Proto_commit(lua_State* L) {
/* register the proto fields */
proto_register_field_array(proto->hfid,(hf_register_info*)(void*)proto->hfa->data,proto->hfa->len);
- proto_register_subtree_array((gint**)(void*)proto->etta->data,proto->etta->len);
+ proto_register_subtree_array((int**)(void*)proto->etta->data,proto->etta->len);
lua_pop(L,1); /* pop the table of ProtoFields */
@@ -802,7 +797,7 @@ int Proto_commit(lua_State* L) {
eiri.eiinfo.summary = e->text;
if (e->ids.ei != EI_INIT_EI || e->ids.hf != -2) {
- return luaL_error(L,"expert fields can be registered only once");
+ return luaL_error(L,"%s is already registered; expert fields can be registered only once", e->abbrev);
}
e->ids.hf = -1;
@@ -819,7 +814,7 @@ int Proto_commit(lua_State* L) {
return 0;
}
-static guint
+static unsigned
wslua_dissect_tcp_get_pdu_len(packet_info *pinfo, tvbuff_t *tvb,
int offset, void *data)
{
@@ -843,7 +838,7 @@ wslua_dissect_tcp_get_pdu_len(packet_info *pinfo, tvbuff_t *tvb,
/* if the Lua dissector reported the consumed bytes, pass it to our caller */
if (lua_isnumber(L, -1)) {
/* we got the pdu_len */
- pdu_len = wslua_togint(L, -1);
+ pdu_len = wslua_toint(L, -1);
lua_pop(L, 1);
} else {
THROW_LUA_ERROR("Lua Error dissect_tcp_pdus: get_len_func did not return a Lua number of the PDU length");
@@ -882,7 +877,7 @@ wslua_dissect_tcp_dissector(tvbuff_t *tvb, packet_info *pinfo,
/* if the Lua dissector reported the consumed bytes, pass it to our caller */
if (lua_isnumber(L, -1)) {
/* we got the consumed bytes or the missing bytes as a negative number */
- consumed_bytes = wslua_togint(L, -1);
+ consumed_bytes = wslua_toint(L, -1);
lua_pop(L, 1);
}
}
@@ -908,8 +903,6 @@ WSLUA_FUNCTION wslua_dissect_tcp_pdus(lua_State* L) {
their protocol's messages (i.e., their protocol data unit (PDU)). This
function shouild not be used for protocols whose PDU length cannot be
determined from a fixed minimum portion, such as HTTP or Telnet.
-
- @since 1.99.2
*/
#define WSLUA_ARG_dissect_tcp_pdus_TVB 1 /* The Tvb buffer to dissect PDUs from. */
#define WSLUA_ARG_dissect_tcp_pdus_TREE 2 /* The Tvb buffer to dissect PDUs from. */
@@ -933,8 +926,8 @@ WSLUA_FUNCTION wslua_dissect_tcp_pdus(lua_State* L) {
crossing TCP segment boundaries or not. (default=true) */
Tvb tvb = checkTvb(L,WSLUA_ARG_dissect_tcp_pdus_TVB);
TreeItem ti = checkTreeItem(L,WSLUA_ARG_dissect_tcp_pdus_TREE);
- guint fixed_len = (guint)luaL_checkinteger(L,WSLUA_ARG_dissect_tcp_pdus_MIN_HEADER_SIZE);
- gboolean proto_desegment = wslua_optbool(L, WSLUA_OPTARG_dissect_tcp_pdus_DESEGMENT, TRUE);
+ unsigned fixed_len = (unsigned)luaL_checkinteger(L,WSLUA_ARG_dissect_tcp_pdus_MIN_HEADER_SIZE);
+ bool proto_desegment = wslua_optbool(L, WSLUA_OPTARG_dissect_tcp_pdus_DESEGMENT, true);
if (!lua_pinfo) {
luaL_error(L,"dissect_tcp_pdus can only be invoked while in a dissect function");
diff --git a/epan/wslua/wslua_proto_expert.c b/epan/wslua/wslua_proto_expert.c
index 2b36b6fd77..0cd2f8adbe 100644
--- a/epan/wslua/wslua_proto_expert.c
+++ b/epan/wslua/wslua_proto_expert.c
@@ -24,16 +24,10 @@
WSLUA_CLASS_DEFINE(ProtoExpert,FAIL_ON_NULL("null ProtoExpert"));
- /* A Protocol expert info field, to be used when adding items to the dissection tree.
-
- @since 1.11.3
- */
+ /* A Protocol expert info field, to be used when adding items to the dissection tree. */
WSLUA_CONSTRUCTOR ProtoExpert_new(lua_State* L) {
- /* Creates a new `ProtoExpert` object to be used for a protocol's expert information notices.
-
- @since 1.11.3
- */
+ /* Creates a new `ProtoExpert` object to be used for a protocol's expert information notices. */
#define WSLUA_ARG_ProtoExpert_new_ABBR 1 /* Filter name of the expert info field (the string that
is used in filters). */
#define WSLUA_ARG_ProtoExpert_new_TEXT 2 /* The default text of the expert field. */
@@ -62,8 +56,8 @@ WSLUA_CONSTRUCTOR ProtoExpert_new(lua_State* L) {
or `expert.severity.ERROR`. */
ProtoExpert pe = NULL;
- const gchar* abbr = wslua_checkstring_only(L,WSLUA_ARG_ProtoExpert_new_ABBR);
- const gchar* text = wslua_checkstring_only(L,WSLUA_ARG_ProtoExpert_new_TEXT);
+ const char* abbr = wslua_checkstring_only(L,WSLUA_ARG_ProtoExpert_new_ABBR);
+ const char* text = wslua_checkstring_only(L,WSLUA_ARG_ProtoExpert_new_TEXT);
int group = (int)luaL_checkinteger(L, WSLUA_ARG_ProtoExpert_new_GROUP);
int severity = (int)luaL_checkinteger(L, WSLUA_ARG_ProtoExpert_new_SEVERITY);
@@ -104,6 +98,7 @@ WSLUA_CONSTRUCTOR ProtoExpert_new(lua_State* L) {
case PI_DEPRECATED:
case PI_RECEIVE:
case PI_INTERFACE:
+ case PI_DISSECTOR_BUG:
break;
default:
luaL_argerror(L, WSLUA_ARG_ProtoExpert_new_GROUP, "Group must be one of expert.group.*");
@@ -137,10 +132,7 @@ WSLUA_CONSTRUCTOR ProtoExpert_new(lua_State* L) {
}
WSLUA_METAMETHOD ProtoExpert__tostring(lua_State* L) {
- /* Returns a string with debugging information about a `ProtoExpert` object.
-
- @since 1.11.3
- */
+ /* Returns a string with debugging information about a `ProtoExpert` object. */
ProtoExpert pe = toProtoExpert(L,1);
if (!pe) {
@@ -166,8 +158,8 @@ static int ProtoExpert__gc(lua_State* L) {
return 0;
}
- g_free((gchar *)pe->abbrev);
- g_free((gchar *)pe->text);
+ g_free((char *)pe->abbrev);
+ g_free((char *)pe->text);
g_free(pe);
return 0;
diff --git a/epan/wslua/wslua_proto_field.c b/epan/wslua/wslua_proto_field.c
index 86f3652e58..b58497ca6b 100644
--- a/epan/wslua/wslua_proto_field.c
+++ b/epan/wslua/wslua_proto_field.c
@@ -61,7 +61,7 @@ static const wslua_ft_types_t ftenums[] = {
{NULL, FT_NONE}
};
-static enum ftenum get_ftenum(const gchar* type) {
+static enum ftenum get_ftenum(const char* type) {
const wslua_ft_types_t* ts;
for (ts = ftenums; ts->str; ts++) {
if ( g_str_equal(ts->str,type) ) {
@@ -71,7 +71,7 @@ static enum ftenum get_ftenum(const gchar* type) {
return FT_NONE;
}
-static const gchar* ftenum_to_string(enum ftenum ft) {
+static const char* ftenum_to_string(enum ftenum ft) {
const wslua_ft_types_t* ts;
for (ts = ftenums; ts->str; ts++) {
if ( ts->id == ft ) {
@@ -82,7 +82,7 @@ static const gchar* ftenum_to_string(enum ftenum ft) {
}
struct field_display_string_t {
- const gchar* str;
+ const char* str;
unsigned base;
};
@@ -119,7 +119,7 @@ static const struct field_display_string_t base_displays[] = {
{NULL,0}
};
-static const gchar* base_to_string(unsigned base) {
+static const char* base_to_string(unsigned base) {
const struct field_display_string_t* b;
for (b=base_displays;b->str;b++) {
if ( base == b->base)
@@ -128,7 +128,7 @@ static const gchar* base_to_string(unsigned base) {
return NULL;
}
-static unsigned string_to_base(const gchar* str) {
+static unsigned string_to_base(const char* str) {
const struct field_display_string_t* b;
for (b=base_displays;b->str;b++) {
if ( g_str_equal(str,b->str))
@@ -141,10 +141,10 @@ static void cleanup_range_string(GArray *rs) {
range_string *rs32 = (range_string *)(void *)(rs->data);
while (rs32->strptr) {
- g_free((gchar *)rs32->strptr);
+ g_free((char *)rs32->strptr);
rs32++;
}
- g_array_free(rs, TRUE);
+ g_array_free(rs, true);
}
static range_string * range_string_from_table(lua_State* L, int idx) {
@@ -159,10 +159,10 @@ static range_string * range_string_from_table(lua_State* L, int idx) {
}
/*
- * The first parameter set to TRUE means give us a zero-filled
+ * The first parameter set to true means give us a zero-filled
* terminal entry.
*/
- rs = g_array_new(TRUE,TRUE,sizeof(range_string));
+ rs = g_array_new(true,true,sizeof(range_string));
lua_pushnil(L);
@@ -204,9 +204,9 @@ static range_string * range_string_from_table(lua_State* L, int idx) {
return NULL;
}
if (key_count == 1) /* We incremented it above */
- r.value_min = wslua_toguint64(L, -1);
+ r.value_min = wslua_touint64(L, -1);
else
- r.value_max = wslua_toguint64(L, -1);
+ r.value_max = wslua_touint64(L, -1);
break;
case 3:
@@ -236,7 +236,7 @@ static range_string * range_string_from_table(lua_State* L, int idx) {
lua_pop(L, 1);
}
- rs32 = (range_string*)(void*)g_array_free(rs, FALSE);
+ rs32 = (range_string*)(void*)g_array_free(rs, false);
return rs32;
}
@@ -253,10 +253,10 @@ static value_string* value_string_from_table(lua_State* L, int idx) {
}
/*
- * The first parameter set to TRUE means give us a zero-filled
+ * The first parameter set to true means give us a zero-filled
* terminal entry.
*/
- vs = g_array_new(TRUE,TRUE,sizeof(value_string));
+ vs = g_array_new(true,true,sizeof(value_string));
lua_pushnil(L);
@@ -266,10 +266,10 @@ static value_string* value_string_from_table(lua_State* L, int idx) {
if (! lua_isnumber(L,-2)) {
vs32 = (value_string *)(void *)vs->data;
while (vs32->strptr) {
- g_free((gchar *)vs32->strptr);
+ g_free((char *)vs32->strptr);
vs32++;
}
- g_array_free(vs,TRUE);
+ g_array_free(vs,true);
luaL_argerror(L,idx,"All keys of a table used as value_string must be integers");
return NULL;
}
@@ -277,15 +277,15 @@ static value_string* value_string_from_table(lua_State* L, int idx) {
if (! lua_isstring(L,-1)) {
vs32 = (value_string *)(void *)vs->data;
while (vs32->strptr) {
- g_free((gchar *)vs32->strptr);
+ g_free((char *)vs32->strptr);
vs32++;
}
- g_array_free(vs,TRUE);
+ g_array_free(vs,true);
luaL_argerror(L,idx,"All values of a table used as value_string must be strings");
return NULL;
}
- v.value = wslua_toguint32(L,-2);
+ v.value = wslua_touint32(L,-2);
v.strptr = g_strdup(lua_tostring(L,-1));
g_array_append_val(vs,v);
@@ -293,7 +293,7 @@ static value_string* value_string_from_table(lua_State* L, int idx) {
lua_pop(L, 1);
}
- vs32 = (value_string*)(void*)g_array_free(vs, FALSE);
+ vs32 = (value_string*)(void*)g_array_free(vs, false);
return vs32;
}
@@ -310,10 +310,10 @@ static val64_string* val64_string_from_table(lua_State* L, int idx) {
}
/*
- * The first parameter set to TRUE means give us a zero-filled
+ * The first parameter set to true means give us a zero-filled
* terminal entry.
*/
- vs = g_array_new(TRUE,TRUE,sizeof(val64_string));
+ vs = g_array_new(true,true,sizeof(val64_string));
lua_pushnil(L);
@@ -323,10 +323,10 @@ static val64_string* val64_string_from_table(lua_State* L, int idx) {
if (! lua_isnumber(L,-2)) {
vs64 = (val64_string *)(void *)vs->data;
while (vs64->strptr) {
- g_free((gchar *)vs64->strptr);
+ g_free((char *)vs64->strptr);
vs64++;
}
- g_array_free(vs,TRUE);
+ g_array_free(vs,true);
luaL_argerror(L,idx,"All keys of a table used as value string must be integers");
return NULL;
}
@@ -334,15 +334,15 @@ static val64_string* val64_string_from_table(lua_State* L, int idx) {
if (! lua_isstring(L,-1)) {
vs64 = (val64_string *)(void *)vs->data;
while (vs64->strptr) {
- g_free((gchar *)vs64->strptr);
+ g_free((char *)vs64->strptr);
vs64++;
}
- g_array_free(vs,TRUE);
+ g_array_free(vs,true);
luaL_argerror(L,idx,"All values of a table used as value string must be strings");
return NULL;
}
- v.value = wslua_toguint64(L, -2);
+ v.value = wslua_touint64(L, -2);
v.strptr = g_strdup(lua_tostring(L,-1));
g_array_append_val(vs,v);
@@ -350,15 +350,15 @@ static val64_string* val64_string_from_table(lua_State* L, int idx) {
lua_pop(L, 1);
}
- vs64 = (val64_string*)(void*)g_array_free(vs, FALSE);
+ vs64 = (val64_string*)(void*)g_array_free(vs, false);
return vs64;
}
static true_false_string* true_false_string_from_table(lua_State* L, int idx) {
true_false_string* tfs;
- gchar *true_string;
- gchar *false_string;
+ char *true_string;
+ char *false_string;
if (lua_isnil(L,idx)) {
return NULL;
@@ -415,12 +415,12 @@ static true_false_string* true_false_string_from_table(lua_State* L, int idx) {
return tfs;
}
-static guint64 get_mask(lua_State* L, int idx, guint64 default_value) {
- guint64 mask = default_value;
+static uint64_t get_mask(lua_State* L, int idx, uint64_t default_value) {
+ uint64_t mask = default_value;
switch(lua_type(L, idx)) {
case LUA_TNUMBER:
- mask = (guint64)wslua_optguint32(L, idx, (lua_Number)default_value);
+ mask = (uint64_t)wslua_optuint32(L, idx, (lua_Number)default_value);
break;
case LUA_TSTRING:
case LUA_TUSERDATA:
@@ -471,11 +471,11 @@ static unit_name_string* unit_name_string_from_table(lua_State* L, int idx) {
/* Arrays in Lua start with index number 1 */
switch (lua_tointeger(L,-2)) {
case 1:
- g_free((gchar *)units->singular);
+ g_free((char *)units->singular);
units->singular = g_strdup(lua_tostring(L,-1));
break;
case 2:
- g_free((gchar *)units->plural);
+ g_free((char *)units->plural);
units->plural = g_strdup(lua_tostring(L,-1));
break;
default:
@@ -499,8 +499,8 @@ static unit_name_string* unit_name_string_from_table(lua_State* L, int idx) {
return units;
}
-static const gchar* check_field_name(lua_State* L, const int abbr_idx, const enum ftenum type) {
- const gchar* abbr = luaL_checkstring(L,abbr_idx);
+static const char* check_field_name(lua_State* L, const int abbr_idx, const enum ftenum type) {
+ const char* abbr = luaL_checkstring(L,abbr_idx);
const header_field_info* hfinfo = NULL;
if (!abbr[0]) {
@@ -548,12 +548,12 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) {
`base.HEX_DEC`, `base.UNIT_STRING` or
`base.RANGE_STRING`. */
#define WSLUA_OPTARG_ProtoField_new_MASK 6 /* The bitmask to be used. */
-#define WSLUA_OPTARG_ProtoField_new_DESCR 7 /* The description of the field. */
+#define WSLUA_OPTARG_ProtoField_new_DESCRIPTION 7 /* The description of the field. */
ProtoField f;
int nargs = lua_gettop(L);
- const gchar* name = luaL_checkstring(L,WSLUA_ARG_ProtoField_new_NAME);
- const gchar* abbr = NULL;
+ const char* name = luaL_checkstring(L,WSLUA_ARG_ProtoField_new_NAME);
+ const char* abbr = NULL;
enum ftenum type;
enum ft_framenum_type framenum_type = FT_FRAMENUM_NONE;
range_string *rs32 = NULL;
@@ -562,10 +562,10 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) {
true_false_string *tfs = NULL;
unit_name_string *uns = NULL;
unsigned base;
- guint64 mask = get_mask(L,WSLUA_OPTARG_ProtoField_new_MASK, 0x0);
- const gchar *blob = luaL_optstring(L,WSLUA_OPTARG_ProtoField_new_DESCR,NULL);
- gboolean base_unit_string = FALSE;
- gboolean base_range_string = FALSE;
+ uint64_t mask = get_mask(L,WSLUA_OPTARG_ProtoField_new_MASK, 0x0);
+ const char *blob = luaL_optstring(L,WSLUA_OPTARG_ProtoField_new_DESCRIPTION,NULL);
+ bool base_unit_string = false;
+ bool base_range_string = false;
if (!name[0]) {
WSLUA_ARG_ERROR(ProtoField_new,NAME,"cannot be an empty string");
@@ -624,11 +624,11 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) {
case FT_INT32:
case FT_INT64:
if (base & BASE_UNIT_STRING) {
- base_unit_string = TRUE;
+ base_unit_string = true;
base &= ~BASE_UNIT_STRING;
}
if (base & BASE_RANGE_STRING) {
- base_range_string = TRUE;
+ base_range_string = true;
base &= ~BASE_RANGE_STRING;
}
if (base_unit_string && base_range_string) {
@@ -719,7 +719,7 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) {
case FT_FLOAT:
case FT_DOUBLE:
if (base & BASE_UNIT_STRING) {
- base_unit_string = TRUE;
+ base_unit_string = true;
base &= ~BASE_UNIT_STRING;
}
if (nargs >= WSLUA_OPTARG_ProtoField_new_VALUESTRING) {
@@ -806,6 +806,12 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) {
} else {
f->vs = NULL;
}
+ if (f->vs) {
+ lua_pushvalue(L, WSLUA_OPTARG_ProtoField_new_VALUESTRING);
+ f->valuestring_ref = luaL_ref(L, LUA_REGISTRYINDEX);
+ } else {
+ f->valuestring_ref = LUA_NOREF;
+ }
f->mask = mask;
if (blob && strcmp(blob, f->name) != 0) {
f->blob = g_strdup(blob);
@@ -820,8 +826,8 @@ WSLUA_CONSTRUCTOR ProtoField_new(lua_State* L) {
static int ProtoField_integer(lua_State* L, enum ftenum type) {
ProtoField f;
- const gchar* abbr = check_field_name(L,1,type);
- const gchar* name = luaL_optstring(L,2,abbr);
+ const char* abbr = check_field_name(L,1,type);
+ const char* name = luaL_optstring(L,2,abbr);
unsigned default_base = (type == FT_FRAMENUM) ? BASE_NONE : ((type == FT_CHAR) ? BASE_OCT : BASE_DEC);
unsigned base = (unsigned)luaL_optinteger(L, 3, default_base);
enum ft_framenum_type framenum_type = FT_FRAMENUM_NONE;
@@ -829,10 +835,10 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
range_string* rs32 = NULL;
val64_string* vs64 = NULL;
unit_name_string* uns = NULL;
- guint64 mask = get_mask(L,5,0);
- const gchar* blob = luaL_optstring(L,6,NULL);
- gboolean base_unit_string = FALSE;
- gboolean base_range_string = FALSE;
+ uint64_t mask = get_mask(L,5,0);
+ const char* blob = luaL_optstring(L,6,NULL);
+ bool base_unit_string = false;
+ bool base_range_string = false;
if (!name[0]) {
luaL_argerror(L, 2, "cannot be an empty string");
@@ -845,7 +851,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
}
if (base & BASE_UNIT_STRING) {
- base_unit_string = TRUE;
+ base_unit_string = true;
base &= ~BASE_UNIT_STRING;
if (base == BASE_NONE) {
base = BASE_DEC;
@@ -853,7 +859,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
}
if (base & BASE_RANGE_STRING) {
- base_range_string = TRUE;
+ base_range_string = true;
base &= ~BASE_RANGE_STRING;
if (type != FT_CHAR && base == BASE_NONE) {
base = BASE_DEC;
@@ -942,6 +948,12 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
} else {
f->vs = NULL;
}
+ if (f->vs) {
+ lua_pushvalue(L, 4);
+ f->valuestring_ref = luaL_ref(L, LUA_REGISTRYINDEX);
+ } else {
+ f->valuestring_ref = LUA_NOREF;
+ }
f->mask = mask;
if (blob && strcmp(blob, f->name) != 0) {
f->blob = g_strdup(blob);
@@ -961,7 +973,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_char_BASE One of `base.NONE`, `base.HEX`, `base.OCT` or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_char_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_char_MASK Integer mask of this field. */
-/* WSLUA_OPTARG_ProtoField_char_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_char_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_uint8 Creates a <<lua_class_ProtoField,`ProtoField`>> of an unsigned 8-bit integer (i.e., a byte). */
@@ -970,7 +982,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_uint8_BASE One of `base.DEC`, `base.HEX` or `base.OCT`, `base.DEC_HEX`, `base.HEX_DEC`, `base.UNIT_STRING` or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint8_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing the unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint8_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_uint8_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_uint8_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_uint16 Creates a <<lua_class_ProtoField,`ProtoField`>> of an unsigned 16-bit integer. */
@@ -979,7 +991,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_uint16_BASE One of `base.DEC`, `base.HEX`, `base.OCT`, `base.DEC_HEX`, `base.HEX_DEC`, `base.UNIT_STRING` or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint16_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint16_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_uint16_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_uint16_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_uint24 Creates a <<lua_class_ProtoField,`ProtoField`>> of an unsigned 24-bit integer. */
@@ -988,7 +1000,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_uint24_BASE One of `base.DEC`, `base.HEX`, `base.OCT`, `base.DEC_HEX`, `base.HEX_DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint24_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing the unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint24_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_uint24_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_uint24_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_uint32 Creates a <<lua_class_ProtoField,`ProtoField`>> of an unsigned 32-bit integer. */
@@ -997,7 +1009,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_uint32_BASE One of `base.DEC`, `base.HEX`, `base.OCT`, `base.DEC_HEX`, `base.HEX_DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint32_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing the unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint32_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_uint32_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_uint32_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_uint64 Creates a <<lua_class_ProtoField,`ProtoField`>> of an unsigned 64-bit integer. */
@@ -1006,7 +1018,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_uint64_BASE One of `base.DEC`, `base.HEX`, `base.OCT`, `base.DEC_HEX`, `base.HEX_DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint64_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing the unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_uint64_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_uint64_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_uint64_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_int8 Creates a <<lua_class_ProtoField,`ProtoField`>> of a signed 8-bit integer (i.e., a byte). */
@@ -1015,7 +1027,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_int8_BASE One of `base.DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_int8_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_int8_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_int8_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_int8_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_int16 Creates a <<lua_class_ProtoField,`ProtoField`>> of a signed 16-bit integer. */
@@ -1024,7 +1036,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_int16_BASE One of `base.DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_int16_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_int16_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_int16_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_int16_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_int24 Creates a <<lua_class_ProtoField,`ProtoField`>> of a signed 24-bit integer. */
@@ -1033,7 +1045,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_int24_BASE One of `base.DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_int24_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_int24_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_int24_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_int24_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_int32 Creates a <<lua_class_ProtoField,`ProtoField`>> of a signed 32-bit integer. */
@@ -1042,7 +1054,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_int32_BASE One of `base.DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_int32_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_int32_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_int32_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_int32_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_int64 Creates a <<lua_class_ProtoField,`ProtoField`>> of a signed 64-bit integer. */
@@ -1051,7 +1063,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_int64_BASE One of `base.DEC`, `base.UNIT_STRING`, or `base.RANGE_STRING`. */
/* WSLUA_OPTARG_ProtoField_int64_VALUESTRING A table containing the text that corresponds to the values, or a table containing tables of range string values that correspond to the values ({min, max, "string"}) if the base is `base.RANGE_STRING`, or a table containing unit name for the values if base is `base.UNIT_STRING`. */
/* WSLUA_OPTARG_ProtoField_int64_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_int64_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_int64_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_framenum Creates a <<lua_class_ProtoField,`ProtoField`>> for a frame number (for hyperlinks between frames). */
@@ -1060,7 +1072,7 @@ static int ProtoField_integer(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_framenum_BASE Only `base.NONE` is supported for framenum. */
/* WSLUA_OPTARG_ProtoField_framenum_FRAMETYPE One of `frametype.NONE`, `frametype.REQUEST`, `frametype.RESPONSE`, `frametype.ACK` or `frametype.DUP_ACK`. */
/* WSLUA_OPTARG_ProtoField_framenum_MASK Integer, String or UInt64 mask of this field, which must be 0 for framenum. */
-/* WSLUA_OPTARG_ProtoField_framenum_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_framenum_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
PROTOFIELD_INTEGER(char,FT_CHAR)
@@ -1078,12 +1090,12 @@ PROTOFIELD_INTEGER(framenum,FT_FRAMENUM)
static int ProtoField_boolean(lua_State* L, enum ftenum type) {
ProtoField f;
- const gchar* abbr = check_field_name(L,1,type);
- const gchar* name = luaL_optstring(L,2,abbr);
+ const char* abbr = check_field_name(L,1,type);
+ const char* name = luaL_optstring(L,2,abbr);
unsigned base = (unsigned)luaL_optinteger(L, 3, BASE_NONE);
true_false_string* tfs = NULL;
- guint64 mask = get_mask(L,5,0);
- const gchar* blob = luaL_optstring(L,6,NULL);
+ uint64_t mask = get_mask(L,5,0);
+ const char* blob = luaL_optstring(L,6,NULL);
if (!name[0]) {
luaL_argerror(L, 2, "cannot be an empty string");
@@ -1113,8 +1125,14 @@ static int ProtoField_boolean(lua_State* L, enum ftenum type) {
f->name = g_strdup(name);
f->abbrev = g_strdup(abbr);
f->type = type;
- f->vs = TFS(tfs);
f->base = base;
+ f->vs = TFS(tfs);
+ if (f->vs) {
+ lua_pushvalue(L, 4);
+ f->valuestring_ref = luaL_ref(L, LUA_REGISTRYINDEX);
+ } else {
+ f->valuestring_ref = LUA_NOREF;
+ }
f->mask = mask;
if (blob && strcmp(blob, f->name) != 0) {
f->blob = g_strdup(blob);
@@ -1134,17 +1152,17 @@ static int ProtoField_boolean(lua_State* L, enum ftenum type) {
/* WSLUA_OPTARG_ProtoField_bool_DISPLAY How wide the parent bitfield is (`base.NONE` is used for NULL-value). */
/* WSLUA_OPTARG_ProtoField_bool_VALUESTRING A table containing the text that corresponds to the values. */
/* WSLUA_OPTARG_ProtoField_bool_MASK Integer, String or UInt64 mask of this field. */
-/* WSLUA_OPTARG_ProtoField_bool_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_bool_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
PROTOFIELD_BOOL(bool,FT_BOOLEAN)
static int ProtoField_time(lua_State* L,enum ftenum type) {
ProtoField f;
- const gchar* abbr = check_field_name(L,1,type);
- const gchar* name = luaL_optstring(L,2,abbr);
+ const char* abbr = check_field_name(L,1,type);
+ const char* name = luaL_optstring(L,2,abbr);
unsigned base = (unsigned)luaL_optinteger(L,3,ABSOLUTE_TIME_LOCAL);
- const gchar* blob = luaL_optstring(L,4,NULL);
+ const char* blob = luaL_optstring(L,4,NULL);
if (!name[0]) {
luaL_argerror(L, 2, "cannot be an empty string");
@@ -1165,8 +1183,9 @@ static int ProtoField_time(lua_State* L,enum ftenum type) {
f->name = g_strdup(name);
f->abbrev = g_strdup(abbr);
f->type = type;
- f->vs = NULL;
f->base = base;
+ f->vs = NULL;
+ f->valuestring_ref = LUA_NOREF;
f->mask = 0;
if (blob && strcmp(blob, f->name) != 0) {
f->blob = g_strdup(blob);
@@ -1184,13 +1203,13 @@ static int ProtoField_time(lua_State* L,enum ftenum type) {
/* WSLUA_ARG_ProtoField_absolute_time_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_absolute_time_NAME Actual name of the field (the string that appears in the tree). */
/* WSLUA_OPTARG_ProtoField_absolute_time_BASE One of `base.LOCAL`, `base.UTC` or `base.DOY_UTC`. */
-/* WSLUA_OPTARG_ProtoField_absolute_time_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_absolute_time_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_relative_time Creates a <<lua_class_ProtoField,`ProtoField`>> of a time_t structure value. */
/* WSLUA_ARG_ProtoField_relative_time_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_relative_time_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_relative_time_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_relative_time_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
@@ -1198,10 +1217,10 @@ PROTOFIELD_TIME(absolute_time,FT_ABSOLUTE_TIME)
static int ProtoField_floating(lua_State* L,enum ftenum type) {
ProtoField f;
- const gchar* abbr = check_field_name(L,1,type);
- const gchar* name = luaL_optstring(L,2,abbr);
+ const char* abbr = check_field_name(L,1,type);
+ const char* name = luaL_optstring(L,2,abbr);
unit_name_string* uns = NULL;
- const gchar* blob;
+ const char* blob;
if (!name[0]) {
luaL_argerror(L, 2, "cannot be an empty string");
@@ -1223,11 +1242,14 @@ static int ProtoField_floating(lua_State* L,enum ftenum type) {
f->abbrev = g_strdup(abbr);
f->type = type;
if (uns) {
- f->vs = uns;
f->base = BASE_NONE | BASE_UNIT_STRING;
+ f->vs = uns;
+ lua_pushvalue(L, 3);
+ f->valuestring_ref = luaL_ref(L, LUA_REGISTRYINDEX);
} else {
- f->vs = NULL;
f->base = BASE_NONE;
+ f->vs = NULL;
+ f->valuestring_ref = LUA_NOREF;
}
f->mask = 0;
if (blob && strcmp(blob, f->name) != 0) {
@@ -1246,14 +1268,14 @@ static int ProtoField_floating(lua_State* L,enum ftenum type) {
/* WSLUA_ARG_ProtoField_float_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_float_NAME Actual name of the field (the string that appears in the tree). */
/* WSLUA_OPTARG_ProtoField_float_VALUESTRING A table containing unit name for the values. */
-/* WSLUA_OPTARG_ProtoField_float_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_float_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_double Creates a <<lua_class_ProtoField,`ProtoField`>> of a double-precision floating point (8 bytes). */
/* WSLUA_ARG_ProtoField_double_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_double_NAME Actual name of the field (the string that appears in the tree). */
/* WSLUA_OPTARG_ProtoField_double_VALUESTRING A table containing unit name for the values. */
-/* WSLUA_OPTARG_ProtoField_double_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_double_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
PROTOFIELD_FLOATING(float,FT_FLOAT)
@@ -1261,10 +1283,10 @@ PROTOFIELD_FLOATING(double,FT_DOUBLE)
static int ProtoField_other_display(lua_State* L,enum ftenum type) {
ProtoField f;
- const gchar* abbr = check_field_name(L,1,type);
- const gchar* name = luaL_optstring(L,2,abbr);
+ const char* abbr = check_field_name(L,1,type);
+ const char* name = luaL_optstring(L,2,abbr);
unsigned base = BASE_NONE;
- const gchar* blob;
+ const char* blob;
if (!name[0]) {
luaL_argerror(L, 2, "cannot be an empty string");
@@ -1297,8 +1319,9 @@ static int ProtoField_other_display(lua_State* L,enum ftenum type) {
f->name = g_strdup(name);
f->abbrev = g_strdup(abbr);
f->type = type;
- f->vs = NULL;
f->base = base;
+ f->vs = NULL;
+ f->valuestring_ref = LUA_NOREF;
f->mask = 0;
if (blob && strcmp(blob, f->name) != 0) {
f->blob = g_strdup(blob);
@@ -1316,28 +1339,28 @@ static int ProtoField_other_display(lua_State* L,enum ftenum type) {
/* WSLUA_ARG_ProtoField_string_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_string_NAME Actual name of the field (the string that appears in the tree). */
/* WSLUA_OPTARG_ProtoField_string_DISPLAY One of `base.ASCII` or `base.UNICODE`. */
-/* WSLUA_OPTARG_ProtoField_string_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_string_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_stringz Creates a <<lua_class_ProtoField,`ProtoField`>> of a zero-terminated string value. */
/* WSLUA_ARG_ProtoField_stringz_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_stringz_NAME Actual name of the field (the string that appears in the tree). */
/* WSLUA_OPTARG_ProtoField_stringz_DISPLAY One of `base.ASCII` or `base.UNICODE`. */
-/* WSLUA_OPTARG_ProtoField_stringz_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_stringz_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_bytes Creates a <<lua_class_ProtoField,`ProtoField`>> for an arbitrary number of bytes. */
/* WSLUA_ARG_ProtoField_bytes_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_bytes_NAME Actual name of the field (the string that appears in the tree). */
/* WSLUA_OPTARG_ProtoField_bytes_DISPLAY One of `base.NONE`, `base.DOT`, `base.DASH`, `base.COLON` or `base.SPACE`. */
-/* WSLUA_OPTARG_ProtoField_bytes_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_bytes_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_ubytes Creates a <<lua_class_ProtoField,`ProtoField`>> for an arbitrary number of unsigned bytes. */
/* WSLUA_ARG_ProtoField_ubytes_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_ubytes_NAME Actual name of the field (the string that appears in the tree). */
/* WSLUA_OPTARG_ProtoField_ubytes_DISPLAY One of `base.NONE`, `base.DOT`, `base.DASH`, `base.COLON` or `base.SPACE`. */
-/* WSLUA_OPTARG_ProtoField_ubytes_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_ubytes_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
@@ -1348,9 +1371,9 @@ PROTOFIELD_OTHER_DISPLAY(ubytes,FT_UINT_BYTES)
static int ProtoField_other(lua_State* L,enum ftenum type) {
ProtoField f;
- const gchar* abbr = check_field_name(L,1,type);
- const gchar* name = luaL_optstring(L,2,abbr);
- const gchar* blob = luaL_optstring(L,3,NULL);
+ const char* abbr = check_field_name(L,1,type);
+ const char* name = luaL_optstring(L,2,abbr);
+ const char* blob = luaL_optstring(L,3,NULL);
if (!name[0]) {
luaL_argerror(L, 2, "cannot be an empty string");
@@ -1364,8 +1387,9 @@ static int ProtoField_other(lua_State* L,enum ftenum type) {
f->name = g_strdup(name);
f->abbrev = g_strdup(abbr);
f->type = type;
- f->vs = NULL;
f->base = BASE_NONE;
+ f->vs = NULL;
+ f->valuestring_ref = LUA_NOREF;
f->mask = 0;
if (blob && strcmp(blob, f->name) != 0) {
f->blob = g_strdup(blob);
@@ -1382,61 +1406,61 @@ static int ProtoField_other(lua_State* L,enum ftenum type) {
/* _WSLUA_CONSTRUCTOR_ ProtoField_none Creates a <<lua_class_ProtoField,`ProtoField`>> of an unstructured type. */
/* WSLUA_ARG_ProtoField_none_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_none_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_none_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_none_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_ipv4 Creates a <<lua_class_ProtoField,`ProtoField`>> of an IPv4 address (4 bytes). */
/* WSLUA_ARG_ProtoField_ipv4_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_ipv4_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_ipv4_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_ipv4_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_ipv6 Creates a <<lua_class_ProtoField,`ProtoField`>> of an IPv6 address (16 bytes). */
/* WSLUA_ARG_ProtoField_ipv6_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_ipv6_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_ipv6_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_ipv6_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_ether Creates a <<lua_class_ProtoField,`ProtoField`>> of an Ethernet address (6 bytes). */
/* WSLUA_ARG_ProtoField_ether_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_ether_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_ether_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_ether_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_guid Creates a <<lua_class_ProtoField,`ProtoField`>> for a Globally Unique IDentifier (GUID). */
/* WSLUA_ARG_ProtoField_guid_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_guid_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_guid_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_guid_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_oid Creates a <<lua_class_ProtoField,`ProtoField`>> for an ASN.1 Organizational IDentified (OID). */
/* WSLUA_ARG_ProtoField_oid_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_oid_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_oid_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_oid_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
-/* _WSLUA_CONSTRUCTOR_ ProtoField_protocol Creates a <<lua_class_ProtoField,`ProtoField`>> for a sub-protocol. Since 1.99.9. */
+/* _WSLUA_CONSTRUCTOR_ ProtoField_protocol Creates a <<lua_class_ProtoField,`ProtoField`>> for a sub-protocol. */
/* WSLUA_ARG_ProtoField_protocol_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_protocol_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_protocol_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_protocol_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_rel_oid Creates a <<lua_class_ProtoField,`ProtoField`>> for an ASN.1 Relative-OID. */
/* WSLUA_ARG_ProtoField_rel_oid_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_rel_oid_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_rel_oid_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_rel_oid_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_systemid Creates a <<lua_class_ProtoField,`ProtoField`>> for an OSI System ID. */
/* WSLUA_ARG_ProtoField_systemid_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_systemid_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_systemid_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_systemid_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
/* _WSLUA_CONSTRUCTOR_ ProtoField_eui64 Creates a <<lua_class_ProtoField,`ProtoField`>> for an EUI64. */
/* WSLUA_ARG_ProtoField_eui64_ABBR Abbreviated name of the field (the string used in filters). */
/* WSLUA_OPTARG_ProtoField_eui64_NAME Actual name of the field (the string that appears in the tree). */
-/* WSLUA_OPTARG_ProtoField_eui64_DESC Description of the field. */
+/* WSLUA_OPTARG_ProtoField_eui64_DESCRIPTION Description of the field. */
/* _WSLUA_RETURNS_ A <<lua_class_ProtoField,`ProtoField`>> object to be added to a table set to the <<lua_class_attrib_proto_fields,`Proto.fields`>> attribute. */
PROTOFIELD_OTHER(none,FT_NONE)
@@ -1452,10 +1476,60 @@ PROTOFIELD_OTHER(rel_oid,FT_REL_OID)
PROTOFIELD_OTHER(systemid,FT_SYSTEM_ID)
PROTOFIELD_OTHER(eui64,FT_EUI64)
+/* WSLUA_ATTRIBUTE ProtoField_type RO The type of the field.
+
+ @since 4.3.0
+*/
+WSLUA_ATTRIBUTE_INTEGER_GETTER(ProtoField,type);
+
+/* WSLUA_ATTRIBUTE ProtoField_abbr RO The abbreviated name of the field.
+
+ @since 4.3.0
+*/
+WSLUA_ATTRIBUTE_NAMED_STRING_GETTER(ProtoField,abbr,abbrev);
+
+/* WSLUA_ATTRIBUTE ProtoField_name RO The actual name of the field.
+
+ @since 4.3.0
+*/
+WSLUA_ATTRIBUTE_STRING_GETTER(ProtoField,name);
+
+/* WSLUA_ATTRIBUTE ProtoField_base RO The base of the field.
+
+ @since 4.3.0
+*/
+WSLUA_ATTRIBUTE_INTEGER_GETTER(ProtoField,base);
+
+/* WSLUA_ATTRIBUTE ProtoField_valuestring RO The valuestring of the field.
+
+ @since 4.3.0
+*/
+WSLUA_METAMETHOD ProtoField_get_valuestring(lua_State* L) {
+ ProtoField f = checkProtoField(L,1);
+ if (f->valuestring_ref != LUA_NOREF) {
+ lua_rawgeti(L, LUA_REGISTRYINDEX, f->valuestring_ref);
+ } else {
+ lua_pushnil(L);
+ }
+ return 1;
+}
+
+/* WSLUA_ATTRIBUTE ProtoField_mask RO The mask of the field.
+
+ @since 4.3.0
+*/
+WSLUA_ATTRIBUTE_INTEGER_GETTER(ProtoField,mask);
+
+/* WSLUA_ATTRIBUTE ProtoField_description RO The description of this field.
+
+ @since 4.3.0
+*/
+WSLUA_ATTRIBUTE_NAMED_STRING_GETTER(ProtoField,description,blob);
+
WSLUA_METAMETHOD ProtoField__tostring(lua_State* L) {
/* Returns a string with info about a protofield (for debugging purposes). */
ProtoField f = checkProtoField(L,1);
- gchar* s = ws_strdup_printf("ProtoField(%i): %s %s %s %s %p %.16" PRIu64 "x %s",
+ char* s = ws_strdup_printf("ProtoField(%i): %s %s %s %s %p %.16" PRIu64 "x %s",
f->hfid,f->name,f->abbrev,
ftenum_to_string(f->type),
base_to_string(f->base),
@@ -1484,6 +1558,9 @@ static int ProtoField__gc(lua_State* L) {
g_free(f->abbrev);
g_free(f->blob);
proto_free_field_strings(f->type, f->base, f->vs);
+ if (f->valuestring_ref != LUA_NOREF) {
+ luaL_unref(L, LUA_REGISTRYINDEX, f->valuestring_ref);
+ }
g_free(f);
return 0;
@@ -1526,13 +1603,28 @@ WSLUA_METHODS ProtoField_methods[] = {
{ NULL, NULL }
};
+/* This table is ultimately registered as a sub-table of the class' metatable,
+ * and if __index/__newindex is invoked then it calls the appropriate function
+ * from this table for getting/setting the members.
+ */
+WSLUA_ATTRIBUTES ProtoField_attributes[] = {
+ WSLUA_ATTRIBUTE_ROREG(ProtoField,type),
+ WSLUA_ATTRIBUTE_ROREG(ProtoField,abbr),
+ WSLUA_ATTRIBUTE_ROREG(ProtoField,name),
+ WSLUA_ATTRIBUTE_ROREG(ProtoField,base),
+ WSLUA_ATTRIBUTE_ROREG(ProtoField,valuestring),
+ WSLUA_ATTRIBUTE_ROREG(ProtoField,mask),
+ WSLUA_ATTRIBUTE_ROREG(ProtoField,description),
+ { NULL, NULL, NULL }
+};
+
WSLUA_META ProtoField_meta[] = {
WSLUA_CLASS_MTREG(ProtoField,tostring),
{ NULL, NULL }
};
int ProtoField_register(lua_State* L) {
- WSLUA_REGISTER_CLASS(ProtoField);
+ WSLUA_REGISTER_CLASS_WITH_ATTRS(ProtoField);
return 0;
}
diff --git a/epan/wslua/wslua_struct.c b/epan/wslua/wslua_struct.c
index ed30e422b7..5f5af01a39 100644
--- a/epan/wslua/wslua_struct.c
+++ b/epan/wslua/wslua_struct.c
@@ -140,8 +140,6 @@
so unpacking a 64-bit field (`i8`/`I8`) will lose precision.
Use `e`/`E` to unpack into a Wireshark `Int64`/`UInt64` object instead.
====
-
- @since 1.11.3
*/
@@ -169,12 +167,12 @@ typedef unsigned STRUCT_INT Uinttype;
/* dummy structure to get padding/alignment requirements */
struct cD {
- gchar c;
- gdouble d;
+ char c;
+ double d;
};
-#define PADDING (sizeof(struct cD) - sizeof(gdouble))
+#define PADDING (sizeof(struct cD) - sizeof(double))
#define MAXALIGN (PADDING > sizeof(int) ? PADDING : sizeof(int))
@@ -185,18 +183,18 @@ struct cD {
/* trick to determine native endianness of system */
static union {
int dummy;
- gchar endian;
+ char endian;
} const native = {1};
/* settings info */
typedef struct Header {
int endian;
int align;
- gboolean noassign;
+ bool noassign;
} Header;
/* For options that take a number argument, gets the number */
-static int getnum (lua_State *L, const gchar **fmt, int df) {
+static int getnum (lua_State *L, const char **fmt, int df) {
if (!g_ascii_isdigit(**fmt)) /* no number? */
return df; /* return default value */
else {
@@ -211,19 +209,19 @@ static int getnum (lua_State *L, const gchar **fmt, int df) {
}
-#define defaultoptions(h) ((h)->endian = native.endian, (h)->align = 1, (h)->noassign = FALSE)
+#define defaultoptions(h) ((h)->endian = native.endian, (h)->align = 1, (h)->noassign = false)
/* gets size (number of bytes) for a given type */
-static size_t optsize (lua_State *L, gchar opt, const gchar **fmt) {
+static size_t optsize (lua_State *L, char opt, const char **fmt) {
switch (opt) {
- case 'B': case 'b': return sizeof(gchar);
- case 'H': case 'h': return sizeof(gshort);
- case 'L': case 'l': return sizeof(glong);
- case 'E': case 'e': return sizeof(gint64);
+ case 'B': case 'b': return sizeof(char);
+ case 'H': case 'h': return sizeof(short);
+ case 'L': case 'l': return sizeof(long);
+ case 'E': case 'e': return sizeof(int64_t);
case 'T': return sizeof(size_t);
- case 'f': return sizeof(gfloat);
- case 'd': return sizeof(gdouble);
+ case 'f': return sizeof(float);
+ case 'd': return sizeof(double);
case 'x': return getnum(L, fmt, 1);
case 'X': return getnum(L, fmt, MAXALIGN);
case 'c': return getnum(L, fmt, 1);
@@ -240,7 +238,7 @@ static size_t optsize (lua_State *L, gchar opt, const gchar **fmt) {
case '!': case '=':
return 0; /* these cases do not have a size */
default: {
- const gchar *msg = lua_pushfstring(L, "invalid format option [%c]", opt);
+ const char *msg = lua_pushfstring(L, "invalid format option [%c]", opt);
return luaL_argerror(L, 1, msg);
}
}
@@ -262,14 +260,14 @@ static int gettoalign (size_t len, Header *h, int opt, size_t size) {
/*
** options to control endianness and alignment settings
*/
-static void controloptions (lua_State *L, int opt, const gchar **fmt,
+static void controloptions (lua_State *L, int opt, const char **fmt,
Header *h) {
switch (opt) {
case ' ': return; /* ignore white spaces */
case '>': h->endian = BIG; return;
case '<': h->endian = LITTLE; return;
- case '(': h->noassign = TRUE; return;
- case ')': h->noassign = FALSE; return;
+ case '(': h->noassign = true; return;
+ case ')': h->noassign = false; return;
case '!': {
int a = getnum(L, fmt, MAXALIGN);
if (!isp2(a))
@@ -289,12 +287,12 @@ static void putinteger (lua_State *L, luaL_Buffer *b, int arg, int endian,
int size) {
lua_Number n = luaL_checknumber(L, arg);
/* this one's not system dependent size - it's a long long */
- gint64 value;
- gchar buff[MAXINTSIZE];
+ int64_t value;
+ char buff[MAXINTSIZE];
if (n < 0)
- value = (guint64)(gint64)n;
+ value = (uint64_t)(int64_t)n;
else
- value = (guint64)n;
+ value = (uint64_t)n;
if (endian == LITTLE) {
int i;
for (i = 0; i < size; i++) {
@@ -315,11 +313,11 @@ static void putinteger (lua_State *L, luaL_Buffer *b, int arg, int endian,
/* corrects endianness - usually done by other functions themselves, but is
* used for float/doubles, since on some platforms they're endian'ed as well
*/
-static void correctbytes (gchar *b, int size, int endian) {
+static void correctbytes (char *b, int size, int endian) {
if (endian != native.endian) {
int i = 0;
while (i < --size) {
- gchar temp = b[i];
+ char temp = b[i];
b[i++] = b[size];
b[size] = temp;
}
@@ -370,20 +368,20 @@ WSLUA_CONSTRUCTOR Struct_pack (lua_State *L) {
break;
}
case 'f': {
- gfloat f = (gfloat)luaL_checknumber(L, arg++);
- correctbytes((gchar *)&f, (int)size, h.endian);
- luaL_addlstring(&b, (gchar *)&f, size);
+ float f = (float)luaL_checknumber(L, arg++);
+ correctbytes((char *)&f, (int)size, h.endian);
+ luaL_addlstring(&b, (char *)&f, size);
break;
}
case 'd': {
- gdouble d = luaL_checknumber(L, arg++);
- correctbytes((gchar *)&d, (int)size, h.endian);
- luaL_addlstring(&b, (gchar *)&d, size);
+ double d = luaL_checknumber(L, arg++);
+ correctbytes((char *)&d, (int)size, h.endian);
+ luaL_addlstring(&b, (char *)&d, size);
break;
}
case 'c': case 's': {
size_t l;
- const gchar *s = luaL_checklstring(L, arg++, &l);
+ const char *s = luaL_checklstring(L, arg++, &l);
if (size == 0) size = l;
luaL_argcheck(L, l >= (size_t)size, arg, "string too short");
luaL_addlstring(&b, s, size);
@@ -394,7 +392,7 @@ WSLUA_CONSTRUCTOR Struct_pack (lua_State *L) {
break;
}
case '=': {
- if (poscnt < (int)(sizeof(posBuf)/sizeof(posBuf[0])))
+ if (poscnt < (int)array_length(posBuf))
posBuf[poscnt++] = (int)totalsize + 1;
break;
}
@@ -408,33 +406,54 @@ WSLUA_CONSTRUCTOR Struct_pack (lua_State *L) {
WSLUA_RETURN(poscnt + 1); /* The packed binary Lua string, plus any positions due to '=' being used in format. */
}
-/* Decodes an integer from a string struct into a Lua number, based on
- * given endianness and size. If the integer type is signed, this makes
- * the Lua number be +/- correctly as well.
- */
-static lua_Integer getinteger (const gchar *buff, int endian,
- int issigned, int size) {
+static Uinttype decodeinteger (const char *buff, int endian, int size)
+{
Uinttype l = 0;
int i;
if (endian == BIG) {
for (i = 0; i < size; i++) {
l <<= 8;
- l |= (Uinttype)(guchar)buff[i];
+ l |= (Uinttype)(unsigned char)buff[i];
}
}
else {
for (i = size - 1; i >= 0; i--) {
l <<= 8;
- l |= (Uinttype)(guchar)buff[i];
+ l |= (Uinttype)(unsigned char)buff[i];
+ }
+ }
+ return l;
+}
+
+/* Decodes an integer from a string struct into a lua_Integer, if it fits
+ * without truncation, or a lua_Number, based on given endianness and size.
+ * If the integer type is signed, that is handled correctly as well.
+ * Note for large values of size there can be a loss of precision.
+ */
+static void getinteger (lua_State *L, const char *buff, int endian,
+ int issigned, int size) {
+ Uinttype l = decodeinteger(buff, endian, size);
+ if (!issigned) {
+ if (size < LUA_INTEGER_SIZE) {
+ /* Fits in a lua_Integer (we need a larger size as lua_Integer
+ * is signed.) */
+ lua_pushinteger(L, (lua_Integer)l);
+ } else {
+ /* Does not fit in a lua_Integer */
+ lua_pushnumber(L, (lua_Number)l);
}
}
- if (!issigned)
- return (lua_Integer)l;
else { /* signed format */
Uinttype mask = (Uinttype)(~((Uinttype)0)) << (size*8 - 1);
if (l & mask) /* negative value? */
- l |= mask; /* signal extension */
- return (lua_Integer)(Inttype)l;
+ l |= mask; /* sign extension */
+ if (size <= LUA_INTEGER_SIZE) {
+ /* Fits in a lua_Integer */
+ lua_pushinteger(L, (lua_Integer)(Inttype)l);
+ } else {
+ /* Does not fit in a lua_Integer */
+ lua_pushnumber(L, (lua_Number)(Inttype)l);
+ }
}
}
@@ -472,8 +491,7 @@ WSLUA_CONSTRUCTOR Struct_unpack (lua_State *L) {
case 'b': case 'B': case 'h': case 'H':
case 'l': case 'L': case 'T': case 'i': case 'I': { /* integer types */
int issigned = g_ascii_islower(opt);
- lua_Integer res = getinteger(data+pos, h.endian, issigned, (int)size);
- lua_pushinteger(L, res);
+ getinteger(L, data+pos, h.endian, issigned, (int)size);
break;
}
case 'e': {
@@ -488,16 +506,16 @@ WSLUA_CONSTRUCTOR Struct_unpack (lua_State *L) {
break;
}
case 'f': {
- gfloat f;
+ float f;
memcpy(&f, data+pos, size);
- correctbytes((gchar *)&f, sizeof(f), h.endian);
+ correctbytes((char *)&f, sizeof(f), h.endian);
lua_pushnumber(L, f);
break;
}
case 'd': {
- gdouble d;
+ double d;
memcpy(&d, data+pos, size);
- correctbytes((gchar *)&d, sizeof(d), h.endian);
+ correctbytes((char *)&d, sizeof(d), h.endian);
lua_pushnumber(L, d);
break;
}
@@ -505,7 +523,7 @@ WSLUA_CONSTRUCTOR Struct_unpack (lua_State *L) {
if (size == 0) {
if (!lua_isnumber(L, -1))
luaL_error(L, "format `c0' needs a previous size");
- size = wslua_toguint32(L, -1);
+ size = wslua_touint32(L, -1);
lua_pop(L, 1);
luaL_argcheck(L, pos+size <= ld, 2, "data string too short");
}
@@ -514,7 +532,7 @@ WSLUA_CONSTRUCTOR Struct_unpack (lua_State *L) {
break;
}
case 's': {
- const gchar *e = (const char *)memchr(data+pos, '\0', ld - pos);
+ const char *e = (const char *)memchr(data+pos, '\0', ld - pos);
if (e == NULL)
luaL_error(L, "unfinished string in data");
size = (e - (data+pos)) + 1;
@@ -539,7 +557,7 @@ WSLUA_CONSTRUCTOR Struct_size (lua_State *L) {
/* Returns the length of a binary string that would be consumed/handled by the given format string. */
#define WSLUA_ARG_Struct_size_FORMAT 1 /* The format string */
Header h;
- const gchar *fmt = wslua_checkstring_only(L, WSLUA_ARG_Struct_size_FORMAT);
+ const char *fmt = wslua_checkstring_only(L, WSLUA_ARG_Struct_size_FORMAT);
size_t pos = 0;
defaultoptions(&h);
while (*fmt) {
@@ -566,7 +584,7 @@ WSLUA_CONSTRUCTOR Struct_values (lua_State *L) {
arguments Struct.pack() expects, not including the format string argument. */
#define WSLUA_ARG_Struct_values_FORMAT 1 /* The format string */
Header h;
- const gchar *fmt = wslua_checkstring_only(L, WSLUA_ARG_Struct_values_FORMAT);
+ const char *fmt = wslua_checkstring_only(L, WSLUA_ARG_Struct_values_FORMAT);
size_t vals = 0;
defaultoptions(&h);
while (*fmt) {
@@ -600,19 +618,19 @@ WSLUA_CONSTRUCTOR Struct_tohex (lua_State *L) {
#define WSLUA_ARG_Struct_tohex_BYTESTRING 1 /* A Lua string consisting of binary bytes */
#define WSLUA_OPTARG_Struct_tohex_LOWERCASE 2 /* True to use lower-case hex characters (default=false). */
#define WSLUA_OPTARG_Struct_tohex_SEPARATOR 3 /* A string separator to insert between hex bytes (default=nil). */
- const gchar* s = NULL;
+ const char* s = NULL;
size_t len = 0;
- gboolean lowercase = FALSE;
- const gchar* sep = NULL;
+ bool lowercase = false;
+ const char* sep = NULL;
/* luaL_checklstring coerces the argument to a string, and that's ok for tohex,
just not fromhex. In fact, we should accept/coerce a Int64/UInt64 here too someday. */
s = luaL_checklstring(L, WSLUA_ARG_Struct_tohex_BYTESTRING, &len);
- lowercase = wslua_optbool(L,WSLUA_OPTARG_Struct_tohex_LOWERCASE,FALSE);
+ lowercase = wslua_optbool(L,WSLUA_OPTARG_Struct_tohex_LOWERCASE,false);
sep = luaL_optstring(L,WSLUA_OPTARG_Struct_tohex_SEPARATOR,NULL);
- wslua_bin2hex(L, s, (guint)len, lowercase, sep);
+ wslua_bin2hex(L, s, (unsigned)len, lowercase, sep);
WSLUA_RETURN(1); /* The Lua hex-ascii string */
}
@@ -620,16 +638,16 @@ WSLUA_CONSTRUCTOR Struct_fromhex (lua_State *L) {
/* Converts the passed-in hex-ascii string to a binary string. */
#define WSLUA_ARG_Struct_fromhex_HEXBYTES 1 /* A string consisting of hexadecimal bytes like "00 B1 A2" or "1a2b3c4d" */
#define WSLUA_OPTARG_Struct_fromhex_SEPARATOR 2 /* A string separator between hex bytes/words (default none). */
- const gchar* s = NULL;
+ const char* s = NULL;
size_t len = 0;
- const gchar* sep = NULL;
+ const char* sep = NULL;
/* luaL_checklstring coerces the argument to a string, and we don't want to do that */
s = wslua_checklstring_only(L, WSLUA_ARG_Struct_fromhex_HEXBYTES, &len);
sep = luaL_optstring(L,WSLUA_OPTARG_Struct_fromhex_SEPARATOR,NULL);
- wslua_hex2bin(L, s, (guint)len, sep);
+ wslua_hex2bin(L, s, (unsigned)len, sep);
WSLUA_RETURN(1); /* The Lua binary string */
}
diff --git a/epan/wslua/wslua_tree.c b/epan/wslua/wslua_tree.c
index 064477c68c..126bdb1a25 100644
--- a/epan/wslua/wslua_tree.c
+++ b/epan/wslua/wslua_tree.c
@@ -21,9 +21,9 @@
#include <epan/exceptions.h>
#include <epan/show_exception.h>
-static gint wslua_ett = -1;
+static int wslua_ett = -1;
-static GPtrArray* outstanding_TreeItem = NULL;
+static GPtrArray* outstanding_TreeItem;
/* pushing a TreeItem with a NULL item or subtree is completely valid for this function */
@@ -32,7 +32,7 @@ TreeItem push_TreeItem(lua_State *L, proto_tree *tree, proto_item *item) {
ti->tree = tree;
ti->item = item;
- ti->expired = FALSE;
+ ti->expired = false;
g_ptr_array_add(outstanding_TreeItem, ti);
@@ -45,12 +45,12 @@ TreeItem create_TreeItem(proto_tree* tree, proto_item* item)
TreeItem tree_item = (TreeItem)g_malloc(sizeof(struct _wslua_treeitem));
tree_item->tree = tree;
tree_item->item = item;
- tree_item->expired = FALSE;
+ tree_item->expired = false;
return tree_item;
}
-CLEAR_OUTSTANDING(TreeItem, expired, TRUE)
+CLEAR_OUTSTANDING(TreeItem, expired, true)
WSLUA_CLASS_DEFINE(TreeItem,FAIL_ON_NULL_OR_EXPIRED("TreeItem"));
/* <<lua_class_TreeItem,`TreeItem`>>s represent information in the https://www.wireshark.org/docs/wsug_html_chunked/ChUsePacketDetailsPaneSection.html[packet details] pane of Wireshark, and the packet details view of TShark.
@@ -73,11 +73,11 @@ WSLUA_CLASS_DEFINE(TreeItem,FAIL_ON_NULL_OR_EXPIRED("TreeItem"));
/* the following is used by TreeItem_add_packet_field() - this can THROW errors */
static proto_item *
try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int hfid,
- const ftenum_t type, const guint encoding, gint *ret_err)
+ const ftenum_t type, const unsigned encoding, int *ret_err)
{
- gint err = 0;
+ int err = 0;
proto_item *volatile item = NULL;
- gint endoff = 0;
+ int endoff = 0;
switch(type) {
/* these all generate ByteArrays */
@@ -119,7 +119,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_INT24:
case FT_INT32:
{
- gint32 ret;
+ int32_t ret;
item = proto_tree_add_item_ret_int(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
@@ -133,7 +133,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_INT56:
case FT_INT64:
{
- gint64 ret;
+ int64_t ret;
item = proto_tree_add_item_ret_int64(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
@@ -148,7 +148,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_UINT24:
case FT_UINT32:
{
- guint32 ret;
+ uint32_t ret;
item = proto_tree_add_item_ret_uint(tree_item-> tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
@@ -162,7 +162,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_UINT56:
case FT_UINT64:
{
- guint64 ret;
+ uint64_t ret;
item = proto_tree_add_item_ret_uint64(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
@@ -173,7 +173,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_BOOLEAN:
{
- gboolean ret;
+ bool ret;
item = proto_tree_add_item_ret_boolean(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
@@ -184,8 +184,8 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_STRING:
{
- const guint8 *ret;
- gint len;
+ const uint8_t *ret;
+ int len;
item = proto_tree_add_item_ret_string_and_length(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
NULL, &ret, &len);
@@ -197,8 +197,8 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_STRINGZ:
{
- const guint8 *ret;
- gint len;
+ const uint8_t *ret;
+ int len;
item = proto_tree_add_item_ret_string_and_length(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, -1, encoding,
NULL, &ret, &len);
@@ -210,7 +210,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_FLOAT:
{
- gfloat ret;
+ float ret;
item = proto_tree_add_item_ret_float(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
@@ -221,7 +221,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_DOUBLE:
{
- gdouble ret;
+ double ret;
item = proto_tree_add_item_ret_double(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
&ret);
@@ -259,7 +259,7 @@ try_add_packet_field(lua_State *L, TreeItem tree_item, TvbRange tvbr, const int
case FT_ETHER:
{
Address addr = g_new(address, 1);
- guint8 bytes[FT_ETHER_LEN];
+ uint8_t bytes[FT_ETHER_LEN];
item = proto_tree_add_item_ret_ether(tree_item->tree, hfid, tvbr->tvb->ws_tvb,
tvbr->offset, tvbr->len, encoding,
@@ -351,10 +351,10 @@ WSLUA_METHOD TreeItem_add_packet_field(lua_State *L) {
volatile int ett;
ftenum_t type;
TreeItem tree_item = shiftTreeItem(L,1);
- guint encoding;
+ unsigned encoding;
proto_item* item = NULL;
volatile int nargs;
- volatile gint err = 0;
+ volatile int err = 0;
const char *volatile error = NULL;
if (!tree_item) {
@@ -383,7 +383,7 @@ WSLUA_METHOD TreeItem_add_packet_field(lua_State *L) {
tvbr->len = 0;
}
- encoding = wslua_checkguint(L,1);
+ encoding = wslua_checkuint(L,1);
lua_remove(L,1);
/* get the number of additional args before we add more to the stack */
@@ -412,7 +412,7 @@ WSLUA_METHOD TreeItem_add_packet_field(lua_State *L) {
}
TRY {
- gint errx = 0;
+ int errx = 0;
item = try_add_packet_field(L, tree_item, tvbr, hfid, type, encoding, &errx);
err = errx;
} CATCH_ALL {
@@ -428,7 +428,7 @@ WSLUA_METHOD TreeItem_add_packet_field(lua_State *L) {
}
while(nargs) {
- const gchar* s;
+ const char* s;
s = lua_tostring(L,1);
if (s) proto_item_append_text(item, " %s", s);
lua_remove(L,1);
@@ -443,7 +443,7 @@ WSLUA_METHOD TreeItem_add_packet_field(lua_State *L) {
WSLUA_RETURN(3); /* The new child <<lua_class_TreeItem,`TreeItem`>>, the field's extracted value or nil, and offset or nil. */
}
-static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
+static int TreeItem_add_item_any(lua_State *L, bool little_endian) {
TvbRange tvbr;
Proto proto;
ProtoField field;
@@ -527,13 +527,13 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
case FT_UINT24:
case FT_UINT32:
case FT_FRAMENUM:
- item = proto_tree_add_uint(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,wslua_checkguint32(L,1));
+ item = proto_tree_add_uint(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,wslua_checkuint32(L,1));
break;
case FT_INT8:
case FT_INT16:
case FT_INT24:
case FT_INT32:
- item = proto_tree_add_int(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,wslua_checkguint32(L,1));
+ item = proto_tree_add_int(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,wslua_checkint32(L,1));
break;
case FT_FLOAT:
item = proto_tree_add_float(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,(float)luaL_checknumber(L,1));
@@ -550,7 +550,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
item = proto_tree_add_string(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,luaL_checkstring(L,1));
break;
case FT_BYTES:
- item = proto_tree_add_bytes(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len, (const guint8*) luaL_checkstring(L,1));
+ item = proto_tree_add_bytes(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len, (const uint8_t*) luaL_checkstring(L,1));
break;
case FT_UINT64:
item = proto_tree_add_uint64(tree_item->tree,hfid,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,checkUInt64(L,1));
@@ -561,7 +561,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
case FT_IPv4:
{
Address addr = checkAddress(L,1);
- guint32 addr_value;
+ uint32_t addr_value;
if (addr->type != AT_IPv4) {
luaL_error(L, "Expected IPv4 address for FT_IPv4 field");
@@ -596,7 +596,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
return 0;
}
- item = proto_tree_add_ether(tree_item->tree, hfid, tvbr->tvb->ws_tvb, tvbr->offset, tvbr->len, (const guint8 *)addr->data);
+ item = proto_tree_add_ether(tree_item->tree, hfid, tvbr->tvb->ws_tvb, tvbr->offset, tvbr->len, (const uint8_t *)addr->data);
}
break;
case FT_UINT_BYTES:
@@ -625,7 +625,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
if ( lua_gettop(L) ) {
/* if there was a value, it was removed earlier, so what's left is the display string to set */
- const gchar* s = lua_tostring(L,1);
+ const char* s = lua_tostring(L,1);
if (s) proto_item_set_text(item,"%s",s);
lua_remove(L,1);
}
@@ -633,7 +633,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
} else {
/* no ProtoField or Proto was given */
if (lua_gettop(L)) {
- const gchar* s = lua_tostring(L,1);
+ const char* s = lua_tostring(L,1);
const int hf = get_hf_wslua_text();
if (hf > -1) {
/* use proto_tree_add_none_format() instead? */
@@ -650,7 +650,7 @@ static int TreeItem_add_item_any(lua_State *L, gboolean little_endian) {
while(lua_gettop(L)) {
/* keep appending more text */
- const gchar* s = lua_tostring(L,1);
+ const char* s = lua_tostring(L,1);
if (s) proto_item_append_text(item, " %s", s);
lua_remove(L,1);
}
@@ -673,7 +673,8 @@ WSLUA_METHOD TreeItem_add(lua_State *L) {
which is invalid for this function). If the first argument is a non-<<lua_class_ProtoField,`ProtoField`>> and a non-<<lua_class_Proto,`Proto`>> then this argument can
be either a <<lua_class_TvbRange,`TvbRange`>> or a label, and the value is not in use.
- ==== Example
+ [discrete]
+ ====== Example
[source,lua]
----
@@ -725,7 +726,7 @@ WSLUA_METHOD TreeItem_add(lua_State *L) {
#define WSLUA_OPTARG_TreeItem_add_TVBRANGE 3 /* The <<lua_class_TvbRange,`TvbRange`>> of bytes in the packet this tree item covers/represents. */
#define WSLUA_OPTARG_TreeItem_add_VALUE 4 /* The field's value, instead of the ProtoField/Proto one. */
#define WSLUA_OPTARG_TreeItem_add_LABEL 5 /* One or more strings to use for the tree item label, instead of the ProtoField/Proto one. */
- WSLUA_RETURN(TreeItem_add_item_any(L,FALSE)); /* The new child TreeItem. */
+ WSLUA_RETURN(TreeItem_add_item_any(L,false)); /* The new child TreeItem. */
}
WSLUA_METHOD TreeItem_add_le(lua_State *L) {
@@ -744,19 +745,17 @@ WSLUA_METHOD TreeItem_add_le(lua_State *L) {
#define WSLUA_OPTARG_TreeItem_add_le_TVBRANGE 3 /* The TvbRange of bytes in the packet this tree item covers/represents. */
#define WSLUA_OPTARG_TreeItem_add_le_VALUE 4 /* The field's value, instead of the ProtoField/Proto one. */
#define WSLUA_OPTARG_TreeItem_add_le_LABEL 5 /* One or more strings to use for the tree item label, instead of the ProtoField/Proto one. */
- WSLUA_RETURN(TreeItem_add_item_any(L,TRUE)); /* The new child TreeItem. */
+ WSLUA_RETURN(TreeItem_add_item_any(L,true)); /* The new child TreeItem. */
}
/* WSLUA_ATTRIBUTE TreeItem_text RW Set/get the <<lua_class_TreeItem,`TreeItem`>>'s display string (string).
For the getter, if the TreeItem has no display string, then nil is returned.
-
- @since 1.99.3
*/
static int TreeItem_get_text(lua_State* L) {
TreeItem ti = checkTreeItem(L,1);
- gchar label_str[ITEM_LABEL_LENGTH+1];
- gchar *label_ptr;
+ char label_str[ITEM_LABEL_LENGTH+1];
+ char *label_ptr;
if (ti->item) {
field_info *fi = PITEM_FINFO(ti->item);
@@ -787,7 +786,7 @@ WSLUA_METHOD TreeItem_set_text(lua_State *L) {
*/
#define WSLUA_ARG_TreeItem_set_text_TEXT 2 /* The text to be used. */
TreeItem ti = checkTreeItem(L,1);
- const gchar* s = luaL_checkstring(L,WSLUA_ARG_TreeItem_set_text_TEXT);
+ const char* s = luaL_checkstring(L,WSLUA_ARG_TreeItem_set_text_TEXT);
proto_item_set_text(ti->item,"%s",s);
@@ -804,7 +803,7 @@ WSLUA_METHOD TreeItem_append_text(lua_State *L) {
*/
#define WSLUA_ARG_TreeItem_append_text_TEXT 2 /* The text to be appended. */
TreeItem ti = checkTreeItem(L,1);
- const gchar* s = luaL_checkstring(L,WSLUA_ARG_TreeItem_append_text_TEXT);
+ const char* s = luaL_checkstring(L,WSLUA_ARG_TreeItem_append_text_TEXT);
proto_item_append_text(ti->item,"%s",s);
@@ -821,7 +820,7 @@ WSLUA_METHOD TreeItem_prepend_text(lua_State *L) {
*/
#define WSLUA_ARG_TreeItem_prepend_text_TEXT 2 /* The text to be prepended. */
TreeItem ti = checkTreeItem(L,1);
- const gchar* s = luaL_checkstring(L,WSLUA_ARG_TreeItem_prepend_text_TEXT);
+ const char* s = luaL_checkstring(L,WSLUA_ARG_TreeItem_prepend_text_TEXT);
proto_item_prepend_text(ti->item,"%s",s);
@@ -857,7 +856,8 @@ WSLUA_METHOD TreeItem_add_expert_info(lua_State *L) {
`PI_ASSUMPTION`,
`PI_DEPRECATED`,
`PI_RECEIVE`,
- or `PI_INTERFACE`. */
+ `PI_INTERFACE`,
+ or `PI_DISSECTOR_BUG`. */
#define WSLUA_OPTARG_TreeItem_add_expert_info_SEVERITY 3 /* One of:
`PI_COMMENT`,
`PI_CHAT`,
@@ -869,7 +869,7 @@ WSLUA_METHOD TreeItem_add_expert_info(lua_State *L) {
int group = (int)luaL_optinteger(L,WSLUA_OPTARG_TreeItem_add_expert_info_GROUP,PI_DEBUG);
int severity = (int)luaL_optinteger(L,WSLUA_OPTARG_TreeItem_add_expert_info_SEVERITY,PI_CHAT);
expert_field* ei_info = wslua_get_expert_field(group, severity);
- const gchar* str;
+ const char* str;
if (lua_gettop(L) >= WSLUA_OPTARG_TreeItem_add_expert_info_TEXT) {
str = wslua_checkstring_only(L, WSLUA_OPTARG_TreeItem_add_expert_info_TEXT);
@@ -885,17 +885,14 @@ WSLUA_METHOD TreeItem_add_expert_info(lua_State *L) {
}
WSLUA_METHOD TreeItem_add_proto_expert_info(lua_State *L) {
- /* Sets the expert flags of the tree item and adds expert info to the packet.
-
- @since 1.11.3
- */
+ /* Sets the expert flags of the tree item and adds expert info to the packet. */
#define WSLUA_ARG_TreeItem_add_proto_expert_info_EXPERT 2 /* The <<lua_class_ProtoExpert,`ProtoExpert`>> object to add to the tree. */
#define WSLUA_OPTARG_TreeItem_add_proto_expert_info_TEXT 3 /* Text for the expert info display
(default is to use the registered
text). */
TreeItem ti = checkTreeItem(L,1);
ProtoExpert expert = checkProtoExpert(L,WSLUA_ARG_TreeItem_add_proto_expert_info_EXPERT);
- const gchar* str;
+ const char* str;
if (expert->ids.ei == EI_INIT_EI || expert->ids.hf == EI_INIT_HF) {
luaL_error(L, "ProtoExpert is not registered");
@@ -917,10 +914,7 @@ WSLUA_METHOD TreeItem_add_proto_expert_info(lua_State *L) {
WSLUA_METHOD TreeItem_add_tvb_expert_info(lua_State *L) {
/* Sets the expert flags of the tree item and adds expert info to the packet
- associated with the <<lua_class_Tvb,`Tvb`>> or <<lua_class_TvbRange,`TvbRange`>> bytes in the packet.
-
- @since 1.11.3
- */
+ associated with the <<lua_class_Tvb,`Tvb`>> or <<lua_class_TvbRange,`TvbRange`>> bytes in the packet. */
#define WSLUA_ARG_TreeItem_add_tvb_expert_info_EXPERT 2 /* The <<lua_class_ProtoExpert,`ProtoExpert`>> object to add to the tree. */
#define WSLUA_ARG_TreeItem_add_tvb_expert_info_TVB 3 /* The <<lua_class_Tvb,`Tvb`>> or <<lua_class_TvbRange,`TvbRange`>> object bytes to associate
the expert info with. */
@@ -930,7 +924,7 @@ WSLUA_METHOD TreeItem_add_tvb_expert_info(lua_State *L) {
TreeItem ti = checkTreeItem(L,1);
ProtoExpert expert = checkProtoExpert(L,WSLUA_ARG_TreeItem_add_proto_expert_info_EXPERT);
TvbRange tvbr;
- const gchar* str;
+ const char* str;
if (expert->ids.ei == EI_INIT_EI || expert->ids.hf == EI_INIT_HF) {
luaL_error(L, "ProtoExpert is not registered");
@@ -967,10 +961,7 @@ WSLUA_METHOD TreeItem_add_tvb_expert_info(lua_State *L) {
}
-/* WSLUA_ATTRIBUTE TreeItem_visible RO Get the <<lua_class_TreeItem,`TreeItem`>>'s subtree visibility status (boolean).
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE TreeItem_visible RO Get the <<lua_class_TreeItem,`TreeItem`>>'s subtree visibility status (boolean). */
static int TreeItem_get_visible(lua_State* L) {
TreeItem ti = checkTreeItem(L,1);
@@ -978,17 +969,14 @@ static int TreeItem_get_visible(lua_State* L) {
lua_pushboolean(L, PTREE_DATA(ti->tree)->visible);
}
else {
- lua_pushboolean(L, FALSE);
+ lua_pushboolean(L, false);
}
return 1;
}
-/* WSLUA_ATTRIBUTE TreeItem_generated RW Set/get the <<lua_class_TreeItem,`TreeItem`>>'s generated state (boolean).
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE TreeItem_generated RW Set/get the <<lua_class_TreeItem,`TreeItem`>>'s generated state (boolean). */
static int TreeItem_get_generated(lua_State* L) {
TreeItem ti = checkTreeItem(L,1);
@@ -1007,7 +995,7 @@ WSLUA_METHOD TreeItem_set_generated(lua_State *L) {
#define WSLUA_OPTARG_TreeItem_set_generated_BOOL 2 /* A Lua boolean, which if `true` sets the <<lua_class_TreeItem,`TreeItem`>>
generated flag, else clears it (default=true) */
TreeItem ti = checkTreeItem(L,1);
- gboolean set = wslua_optbool(L, WSLUA_OPTARG_TreeItem_set_generated_BOOL, TRUE);
+ bool set = wslua_optbool(L, WSLUA_OPTARG_TreeItem_set_generated_BOOL, true);
if (set) {
proto_item_set_generated(ti->item);
@@ -1022,10 +1010,7 @@ WSLUA_METHOD TreeItem_set_generated(lua_State *L) {
WSLUA_RETURN(1); /* The same TreeItem. */
}
-/* WSLUA_ATTRIBUTE TreeItem_hidden RW Set/get <<lua_class_TreeItem,`TreeItem`>>'s hidden state (boolean).
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE TreeItem_hidden RW Set/get <<lua_class_TreeItem,`TreeItem`>>'s hidden state (boolean). */
static int TreeItem_get_hidden(lua_State* L) {
TreeItem ti = checkTreeItem(L,1);
@@ -1046,7 +1031,7 @@ WSLUA_METHOD TreeItem_set_hidden(lua_State *L) {
#define WSLUA_OPTARG_TreeItem_set_hidden_BOOL 2 /* A Lua boolean, which if `true` sets the <<lua_class_TreeItem,`TreeItem`>>
hidden flag, else clears it. Default is `true`. */
TreeItem ti = checkTreeItem(L,1);
- gboolean set = wslua_optbool(L, WSLUA_OPTARG_TreeItem_set_hidden_BOOL, TRUE);
+ bool set = wslua_optbool(L, WSLUA_OPTARG_TreeItem_set_hidden_BOOL, true);
if (set) {
proto_item_set_hidden(ti->item);
@@ -1060,10 +1045,7 @@ WSLUA_METHOD TreeItem_set_hidden(lua_State *L) {
WSLUA_RETURN(1); /* The same TreeItem. */
}
-/* WSLUA_ATTRIBUTE TreeItem_len RW Set/get <<lua_class_TreeItem,`TreeItem`>>'s length inside tvb, after it has already been created.
-
- @since 1.99.8
- */
+/* WSLUA_ATTRIBUTE TreeItem_len RW Set/get <<lua_class_TreeItem,`TreeItem`>>'s length inside tvb, after it has already been created. */
static int TreeItem_get_len(lua_State* L) {
TreeItem ti = checkTreeItem(L,1);
int len = 0;
@@ -1083,7 +1065,7 @@ WSLUA_METHOD TreeItem_set_len(lua_State *L) {
*/
#define WSLUA_ARG_TreeItem_set_len_LEN 2 /* The length to be used. */
TreeItem ti = checkTreeItem(L,1);
- gint len = (int)luaL_checkinteger(L,WSLUA_ARG_TreeItem_set_len_LEN);
+ int len = (int)luaL_checkinteger(L,WSLUA_ARG_TreeItem_set_len_LEN);
proto_item_set_len(ti->item, len);
@@ -1101,13 +1083,11 @@ WSLUA_METHOD TreeItem_referenced(lua_State *L) {
usually run faster since Wireshark will not do extra dissection work when it doesn't need the field.
You can use this in conjunction with the TreeItem.visible attribute. This function will always return
- TRUE when the TreeItem is visible. When it is not visible and the field is not referenced, you can
+ true when the TreeItem is visible. When it is not visible and the field is not referenced, you can
speed up the dissection by not dissecting the field as it is not needed for display or filtering.
This function takes one parameter that can be a <<lua_class_ProtoField,`ProtoField`>> or <<lua_class_Dissector,`Dissector`>>.
The <<lua_class_Dissector,`Dissector`>> form is useful when you need to decide whether to call a sub-dissector.
-
- @since 2.4.0
*/
#define WSLUA_ARG_TreeItem_referenced_PROTOFIELD 2 /* The <<lua_class_ProtoField,`ProtoField`>> or <<lua_class_Dissector,`Dissector`>> to check if referenced. */
TreeItem ti = checkTreeItem(L, 1);
@@ -1125,10 +1105,7 @@ WSLUA_METHOD TreeItem_referenced(lua_State *L) {
}
WSLUA_METAMETHOD TreeItem__tostring(lua_State* L) {
- /* Returns string debug information about the <<lua_class_TreeItem,`TreeItem`>>.
-
- @since 1.99.8
- */
+ /* Returns string debug information about the <<lua_class_TreeItem,`TreeItem`>>. */
TreeItem ti = toTreeItem(L,1);
if (ti) {
@@ -1151,7 +1128,7 @@ static int TreeItem__gc(lua_State* L) {
TreeItem ti = toTreeItem(L,1);
if (!ti) return 0;
if (!ti->expired)
- ti->expired = TRUE;
+ ti->expired = true;
else
g_free(ti);
return 0;
@@ -1189,7 +1166,7 @@ WSLUA_META TreeItem_meta[] = {
};
int TreeItem_register(lua_State *L) {
- gint* etts[] = { &wslua_ett };
+ int* etts[] = { &wslua_ett };
wslua_ett = -1; /* Reset to support reload Lua plugins */
WSLUA_REGISTER_CLASS_WITH_ATTRS(TreeItem);
outstanding_TreeItem = g_ptr_array_new();
diff --git a/epan/wslua/wslua_tvb.c b/epan/wslua/wslua_tvb.c
index f315e83e00..4059b43714 100644
--- a/epan/wslua/wslua_tvb.c
+++ b/epan/wslua/wslua_tvb.c
@@ -62,8 +62,8 @@ WSLUA_CLASS_DEFINE(Tvb,FAIL_ON_NULL_OR_EXPIRED("Tvb"));
====
*/
-static GPtrArray* outstanding_Tvb = NULL;
-static GPtrArray* outstanding_TvbRange = NULL;
+static GPtrArray* outstanding_Tvb;
+static GPtrArray* outstanding_TvbRange;
/* this is used to push Tvbs that were created brand new by wslua code */
int push_wsluaTvb(lua_State* L, Tvb t) {
@@ -79,7 +79,7 @@ static void free_Tvb(Tvb tvb) {
if (!tvb) return;
if (!tvb->expired) {
- tvb->expired = TRUE;
+ tvb->expired = true;
} else {
if (tvb->need_free)
tvb_free(tvb->ws_tvb);
@@ -98,8 +98,8 @@ void clear_outstanding_Tvb(void) {
Tvb* push_Tvb(lua_State* L, tvbuff_t* ws_tvb) {
Tvb tvb = (Tvb)g_malloc(sizeof(struct _wslua_tvb));
tvb->ws_tvb = ws_tvb;
- tvb->expired = FALSE;
- tvb->need_free = FALSE;
+ tvb->expired = false;
+ tvb->need_free = false;
g_ptr_array_add(outstanding_Tvb,tvb);
return pushTvb(L,tvb);
}
@@ -159,19 +159,16 @@ WSLUA_METHOD Tvb_len(lua_State* L) {
WSLUA_METHOD Tvb_reported_length_remaining(lua_State* L) {
/* Obtain the reported (not captured) length of packet data to end of a <<lua_class_Tvb,`Tvb`>> or 0 if the
offset is beyond the end of the <<lua_class_Tvb,`Tvb`>>. */
-#define Tvb_reported_length_remaining_OFFSET 2 /* offset */
+#define WSLUA_OPTARG_Tvb_reported_length_remaining_OFFSET 2 /* The offset (in octets) from the beginning of the <<lua_class_Tvb,`Tvb`>>. Defaults to 0. */
Tvb tvb = checkTvb(L,1);
- int offset = (int) luaL_optinteger(L, Tvb_reported_length_remaining_OFFSET, 0);
+ int offset = (int) luaL_optinteger(L, WSLUA_OPTARG_Tvb_reported_length_remaining_OFFSET, 0);
lua_pushinteger(L,tvb_reported_length_remaining(tvb->ws_tvb, offset));
- WSLUA_RETURN(1); /* The captured length of the <<lua_class_Tvb,`Tvb`>>. */
+ WSLUA_RETURN(1); /* The remaining reported length of the <<lua_class_Tvb,`Tvb`>>. */
}
WSLUA_METHOD Tvb_bytes(lua_State* L) {
- /* Obtain a <<lua_class_ByteArray,`ByteArray`>> from a <<lua_class_Tvb,`Tvb`>>.
-
- @since 1.99.8
- */
+ /* Obtain a <<lua_class_ByteArray,`ByteArray`>> from a <<lua_class_Tvb,`Tvb`>>. */
#define WSLUA_OPTARG_Tvb_bytes_OFFSET 2 /* The offset (in octets) from the beginning of the <<lua_class_Tvb,`Tvb`>>. Defaults to 0. */
#define WSLUA_OPTARG_Tvb_bytes_LENGTH 3 /* The length (in octets) of the range. Defaults to until the end of the <<lua_class_Tvb,`Tvb`>>. */
Tvb tvb = checkTvb(L,1);
@@ -194,7 +191,7 @@ WSLUA_METHOD Tvb_bytes(lua_State* L) {
luaL_error(L,"out of bounds");
return 0;
}
- } else if ( (guint)(len + offset) > tvb_captured_length(tvb->ws_tvb)) {
+ } else if ( (unsigned)(len + offset) > tvb_captured_length(tvb->ws_tvb)) {
luaL_error(L,"Range is out of bounds");
return 0;
}
@@ -240,10 +237,7 @@ WSLUA_METHOD Tvb_range(lua_State* L) {
}
WSLUA_METHOD Tvb_raw(lua_State* L) {
- /* Obtain a Lua string of the binary bytes in a <<lua_class_Tvb,`Tvb`>>.
-
- @since 1.11.3
- */
+ /* Obtain a Lua string of the binary bytes in a <<lua_class_Tvb,`Tvb`>>. */
#define WSLUA_OPTARG_Tvb_raw_OFFSET 2 /* The position of the first byte. Default is 0, or the first byte. */
#define WSLUA_OPTARG_Tvb_raw_LENGTH 3 /* The length of the segment to get. Default is -1, or the remaining bytes in the <<lua_class_Tvb,`Tvb`>>. */
Tvb tvb = checkTvb(L,1);
@@ -256,7 +250,7 @@ WSLUA_METHOD Tvb_raw(lua_State* L) {
return 0;
}
- if ((guint)offset > tvb_captured_length(tvb->ws_tvb)) {
+ if ((unsigned)offset > tvb_captured_length(tvb->ws_tvb)) {
WSLUA_OPTARG_ERROR(Tvb_raw,OFFSET,"offset beyond end of Tvb");
return 0;
}
@@ -265,11 +259,11 @@ WSLUA_METHOD Tvb_raw(lua_State* L) {
len = tvb_captured_length_remaining(tvb->ws_tvb,offset);
if (len < 0) {
luaL_error(L,"out of bounds");
- return FALSE;
+ return false;
}
- } else if ( (guint)(len + offset) > tvb_captured_length(tvb->ws_tvb)) {
+ } else if ( (unsigned)(len + offset) > tvb_captured_length(tvb->ws_tvb)) {
luaL_error(L,"Range is out of bounds");
- return FALSE;
+ return false;
}
lua_pushlstring(L, tvb_get_ptr(tvb->ws_tvb, offset, len), len);
@@ -278,10 +272,7 @@ WSLUA_METHOD Tvb_raw(lua_State* L) {
}
WSLUA_METAMETHOD Tvb__eq(lua_State* L) {
- /* Checks whether contents of two <<lua_class_Tvb,`Tvb`>>s are equal.
-
- @since 1.99.8
- */
+ /* Checks whether contents of two <<lua_class_Tvb,`Tvb`>>s are equal. */
Tvb tvb_l = checkTvb(L,1);
Tvb tvb_r = checkTvb(L,2);
@@ -291,8 +282,8 @@ WSLUA_METAMETHOD Tvb__eq(lua_State* L) {
/* it is not an error if their ds_tvb are different... they're just not equal */
if (len_l == len_r)
{
- const gchar* lp = tvb_get_ptr(tvb_l->ws_tvb, 0, len_l);
- const gchar* rp = tvb_get_ptr(tvb_r->ws_tvb, 0, len_r);
+ const char* lp = tvb_get_ptr(tvb_l->ws_tvb, 0, len_l);
+ const char* rp = tvb_get_ptr(tvb_r->ws_tvb, 0, len_r);
int i = 0;
for (; i < len_l; ++i) {
@@ -350,7 +341,7 @@ static void free_TvbRange(TvbRange tvbr) {
if (!(tvbr && tvbr->tvb)) return;
if (!tvbr->tvb->expired) {
- tvbr->tvb->expired = TRUE;
+ tvbr->tvb->expired = true;
} else {
free_Tvb(tvbr->tvb);
g_free(tvbr);
@@ -365,39 +356,39 @@ void clear_outstanding_TvbRange(void) {
}
-gboolean push_TvbRange(lua_State* L, tvbuff_t* ws_tvb, int offset, int len) {
+bool push_TvbRange(lua_State* L, tvbuff_t* ws_tvb, int offset, int len) {
TvbRange tvbr;
if (!ws_tvb) {
luaL_error(L,"expired tvb");
- return FALSE;
+ return false;
}
if (len == -1) {
len = tvb_captured_length_remaining(ws_tvb,offset);
if (len < 0) {
luaL_error(L,"out of bounds");
- return FALSE;
+ return false;
}
} else if (len < -1) {
luaL_error(L, "negative length in tvb range");
- return FALSE;
- } else if ( (guint)(len + offset) > tvb_captured_length(ws_tvb)) {
+ return false;
+ } else if ( (unsigned)(len + offset) > tvb_captured_length(ws_tvb)) {
luaL_error(L,"Range is out of bounds");
- return FALSE;
+ return false;
}
tvbr = (TvbRange)g_malloc(sizeof(struct _wslua_tvbrange));
tvbr->tvb = (Tvb)g_malloc(sizeof(struct _wslua_tvb));
tvbr->tvb->ws_tvb = ws_tvb;
- tvbr->tvb->expired = FALSE;
- tvbr->tvb->need_free = FALSE;
+ tvbr->tvb->expired = false;
+ tvbr->tvb->need_free = false;
tvbr->offset = offset;
tvbr->len = len;
PUSH_TVBRANGE(L,tvbr);
- return TRUE;
+ return true;
}
@@ -415,8 +406,8 @@ WSLUA_METHOD TvbRange_tvb(lua_State *L) {
if (tvb_offset_exists(tvbr->tvb->ws_tvb, tvbr->offset + tvbr->len -1 )) {
tvb = (Tvb)g_malloc(sizeof(struct _wslua_tvb));
- tvb->expired = FALSE;
- tvb->need_free = FALSE;
+ tvb->expired = false;
+ tvb->need_free = false;
tvb->ws_tvb = tvb_new_subset_length(tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len);
return push_wsluaTvb(L, tvb);
} else {
@@ -474,7 +465,7 @@ WSLUA_METHOD TvbRange_le_uint(lua_State* L) {
switch (tvbr->len) {
case 1:
/* XXX unsigned anyway */
- lua_pushinteger(L,(lua_Integer)(guint)tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset));
+ lua_pushinteger(L,(lua_Integer)(unsigned)tvb_get_guint8(tvbr->tvb->ws_tvb,tvbr->offset));
return 1;
case 2:
lua_pushinteger(L,tvb_get_letohs(tvbr->tvb->ws_tvb,tvbr->offset));
@@ -803,7 +794,7 @@ WSLUA_METHOD TvbRange_ipv4(lua_State* L) {
}
addr = g_new(address,1);
- alloc_address_tvb(NULL,addr,AT_IPv4,sizeof(guint32),tvbr->tvb->ws_tvb,tvbr->offset);
+ alloc_address_tvb(NULL,addr,AT_IPv4,sizeof(uint32_t),tvbr->tvb->ws_tvb,tvbr->offset);
pushAddress(L,addr);
WSLUA_RETURN(1); /* The IPv4 <<lua_class_Address,`Address`>> object. */
@@ -813,7 +804,7 @@ WSLUA_METHOD TvbRange_le_ipv4(lua_State* L) {
/* Get an Little Endian IPv4 Address from a <<lua_class_TvbRange,`TvbRange`>>, as an <<lua_class_Address,`Address`>> object. */
TvbRange tvbr = checkTvbRange(L,1);
Address addr;
- guint32 ip_addr;
+ uint32_t ip_addr;
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@@ -885,7 +876,7 @@ WSLUA_METHOD TvbRange_nstime(lua_State* L) {
#define WSLUA_OPTARG_TvbRange_nstime_ENCODING 2 /* An optional ENC_* encoding value to use */
TvbRange tvbr = checkTvbRange(L,1);
NSTime nstime;
- const guint encoding = (guint) luaL_optinteger(L, WSLUA_OPTARG_TvbRange_nstime_ENCODING, 0);
+ const unsigned encoding = (unsigned) luaL_optinteger(L, WSLUA_OPTARG_TvbRange_nstime_ENCODING, 0);
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@@ -916,7 +907,7 @@ WSLUA_METHOD TvbRange_nstime(lua_State* L) {
lua_pushinteger(L, tvbr->len);
}
else {
- gint endoff = 0;
+ int endoff = 0;
nstime_t *retval = tvb_get_string_time(tvbr->tvb->ws_tvb, tvbr->offset, tvbr->len,
encoding, nstime, &endoff);
if (!retval || endoff == 0) {
@@ -968,7 +959,7 @@ WSLUA_METHOD TvbRange_string(lua_State* L) {
/* Obtain a string from a <<lua_class_TvbRange,`TvbRange`>>. */
#define WSLUA_OPTARG_TvbRange_string_ENCODING 2 /* The encoding to use. Defaults to ENC_ASCII. */
TvbRange tvbr = checkTvbRange(L,1);
- guint encoding = (guint)luaL_optinteger(L,WSLUA_OPTARG_TvbRange_string_ENCODING, ENC_ASCII|ENC_NA);
+ unsigned encoding = (unsigned)luaL_optinteger(L,WSLUA_OPTARG_TvbRange_string_ENCODING, ENC_ASCII|ENC_NA);
char * str;
if ( !(tvbr && tvbr->tvb)) return 0;
@@ -977,17 +968,17 @@ WSLUA_METHOD TvbRange_string(lua_State* L) {
return 0;
}
- str = (gchar*)tvb_get_string_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,encoding);
+ str = (char*)tvb_get_string_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,encoding);
lua_pushlstring(L, str, strlen(str));
wmem_free(NULL, str);
WSLUA_RETURN(1); /* A string containing all bytes in the <<lua_class_TvbRange,`TvbRange`>> including all zeroes (e.g., "a\000bc\000"). */
}
-static int TvbRange_ustring_any(lua_State* L, gboolean little_endian) {
+static int TvbRange_ustring_any(lua_State* L, bool little_endian) {
/* Obtain a UTF-16 encoded string from a <<lua_class_TvbRange,`TvbRange`>>. */
TvbRange tvbr = checkTvbRange(L,1);
- gchar * str;
+ char * str;
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@@ -995,7 +986,7 @@ static int TvbRange_ustring_any(lua_State* L, gboolean little_endian) {
return 0;
}
- str = (gchar*)tvb_get_string_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,(little_endian ? ENC_UTF_16|ENC_LITTLE_ENDIAN : ENC_UTF_16|ENC_BIG_ENDIAN));
+ str = (char*)tvb_get_string_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,(little_endian ? ENC_UTF_16|ENC_LITTLE_ENDIAN : ENC_UTF_16|ENC_BIG_ENDIAN));
lua_pushlstring(L, str, strlen(str));
wmem_free(NULL, str);
@@ -1004,22 +995,22 @@ static int TvbRange_ustring_any(lua_State* L, gboolean little_endian) {
WSLUA_METHOD TvbRange_ustring(lua_State* L) {
/* Obtain a Big Endian (network order) UTF-16 encoded string from a <<lua_class_TvbRange,`TvbRange`>>. */
- WSLUA_RETURN(TvbRange_ustring_any(L, FALSE)); /* A string containing all bytes in the <<lua_class_TvbRange,`TvbRange`>> including all zeroes (e.g., "a\000bc\000"). */
+ WSLUA_RETURN(TvbRange_ustring_any(L, false)); /* A string containing all bytes in the <<lua_class_TvbRange,`TvbRange`>> including all zeroes (e.g., "a\000bc\000"). */
}
WSLUA_METHOD TvbRange_le_ustring(lua_State* L) {
/* Obtain a Little Endian UTF-16 encoded string from a <<lua_class_TvbRange,`TvbRange`>>. */
- WSLUA_RETURN(TvbRange_ustring_any(L, TRUE)); /* A string containing all bytes in the <<lua_class_TvbRange,`TvbRange`>> including all zeroes (e.g., "a\000bc\000"). */
+ WSLUA_RETURN(TvbRange_ustring_any(L, true)); /* A string containing all bytes in the <<lua_class_TvbRange,`TvbRange`>> including all zeroes (e.g., "a\000bc\000"). */
}
WSLUA_METHOD TvbRange_stringz(lua_State* L) {
/* Obtain a zero terminated string from a <<lua_class_TvbRange,`TvbRange`>>. */
#define WSLUA_OPTARG_TvbRange_stringz_ENCODING 2 /* The encoding to use. Defaults to ENC_ASCII. */
TvbRange tvbr = checkTvbRange(L,1);
- guint encoding = (guint)luaL_optinteger(L,WSLUA_OPTARG_TvbRange_stringz_ENCODING, ENC_ASCII|ENC_NA);
- gint offset;
+ unsigned encoding = (unsigned)luaL_optinteger(L,WSLUA_OPTARG_TvbRange_stringz_ENCODING, ENC_ASCII|ENC_NA);
+ int offset;
gunichar2 uchar;
- gchar *str;
+ char *str;
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@@ -1051,7 +1042,7 @@ WSLUA_METHOD TvbRange_stringz(lua_State* L) {
break;
}
- str = (gchar*)tvb_get_stringz_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,NULL,encoding);
+ str = (char*)tvb_get_stringz_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,NULL,encoding);
lua_pushstring(L, str);
wmem_free(NULL, str);
@@ -1061,14 +1052,11 @@ WSLUA_METHOD TvbRange_stringz(lua_State* L) {
WSLUA_METHOD TvbRange_strsize(lua_State* L) {
/*
Find the size of a zero terminated string from a <<lua_class_TvbRange,`TvbRange`>>.
- The size of the string includes the terminating zero.
-
- @since 1.11.3
- */
+ The size of the string includes the terminating zero. */
#define WSLUA_OPTARG_TvbRange_strsize_ENCODING 2 /* The encoding to use. Defaults to ENC_ASCII. */
TvbRange tvbr = checkTvbRange(L,1);
- guint encoding = (guint)luaL_optinteger(L,WSLUA_OPTARG_TvbRange_strsize_ENCODING, ENC_ASCII|ENC_NA);
- gint offset;
+ unsigned encoding = (unsigned)luaL_optinteger(L,WSLUA_OPTARG_TvbRange_strsize_ENCODING, ENC_ASCII|ENC_NA);
+ int offset;
gunichar2 uchar;
if ( !(tvbr && tvbr->tvb)) return 0;
@@ -1107,13 +1095,13 @@ WSLUA_METHOD TvbRange_strsize(lua_State* L) {
}
-static int TvbRange_ustringz_any(lua_State* L, gboolean little_endian) {
+static int TvbRange_ustringz_any(lua_State* L, bool little_endian) {
/* Obtain a zero terminated string from a TvbRange */
- gint count;
+ int count;
TvbRange tvbr = checkTvbRange(L,1);
- gint offset;
+ int offset;
gunichar2 uchar;
- gchar *str;
+ char *str;
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@@ -1132,7 +1120,7 @@ static int TvbRange_ustringz_any(lua_State* L, gboolean little_endian) {
offset += 2;
} while (uchar != 0);
- str = (gchar*)tvb_get_stringz_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,&count,
+ str = (char*)tvb_get_stringz_enc(NULL,tvbr->tvb->ws_tvb,tvbr->offset,&count,
(little_endian ? ENC_UTF_16|ENC_LITTLE_ENDIAN : ENC_UTF_16|ENC_BIG_ENDIAN));
lua_pushstring(L, str);
lua_pushinteger(L,count);
@@ -1143,12 +1131,12 @@ static int TvbRange_ustringz_any(lua_State* L, gboolean little_endian) {
WSLUA_METHOD TvbRange_ustringz(lua_State* L) {
/* Obtain a Big Endian (network order) UTF-16 encoded zero terminated string from a <<lua_class_TvbRange,`TvbRange`>>. */
- WSLUA_RETURN(TvbRange_ustringz_any(L, FALSE)); /* Two return values: the zero terminated string, and the length. */
+ WSLUA_RETURN(TvbRange_ustringz_any(L, false)); /* Two return values: the zero terminated string, and the length. */
}
WSLUA_METHOD TvbRange_le_ustringz(lua_State* L) {
/* Obtain a Little Endian UTF-16 encoded zero terminated string from a TvbRange */
- WSLUA_RETURN(TvbRange_ustringz_any(L, TRUE)); /* Two return values: the zero terminated string, and the length. */
+ WSLUA_RETURN(TvbRange_ustringz_any(L, true)); /* Two return values: the zero terminated string, and the length. */
}
WSLUA_METHOD TvbRange_bytes(lua_State* L) {
@@ -1173,8 +1161,8 @@ WSLUA_METHOD TvbRange_bytes(lua_State* L) {
#define WSLUA_OPTARG_TvbRange_bytes_ENCODING 2 /* An optional ENC_* encoding value to use */
TvbRange tvbr = checkTvbRange(L,1);
GByteArray* ba;
- guint8* raw;
- const guint encoding = (guint)luaL_optinteger(L, WSLUA_OPTARG_TvbRange_bytes_ENCODING, 0);
+ uint8_t* raw;
+ const unsigned encoding = (unsigned)luaL_optinteger(L, WSLUA_OPTARG_TvbRange_bytes_ENCODING, 0);
if ( !(tvbr && tvbr->tvb)) return 0;
@@ -1185,7 +1173,7 @@ WSLUA_METHOD TvbRange_bytes(lua_State* L) {
if (encoding == 0) {
ba = g_byte_array_new();
- raw = (guint8 *)tvb_memdup(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len);
+ raw = (uint8_t *)tvb_memdup(NULL,tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len);
g_byte_array_append(ba,raw,tvbr->len);
wmem_free(NULL, raw);
pushByteArray(L,ba);
@@ -1195,14 +1183,14 @@ WSLUA_METHOD TvbRange_bytes(lua_State* L) {
WSLUA_OPTARG_ERROR(TvbRange_nstime, ENCODING, "invalid encoding value");
}
else {
- gint endoff = 0;
+ int endoff = 0;
GByteArray* retval;
ba = g_byte_array_new();
retval = tvb_get_string_bytes(tvbr->tvb->ws_tvb, tvbr->offset, tvbr->len,
encoding, ba, &endoff);
if (!retval || endoff == 0) {
- g_byte_array_free(ba, TRUE);
+ g_byte_array_free(ba, true);
/* push nil nstime and offset */
lua_pushnil(L);
lua_pushnil(L);
@@ -1237,16 +1225,16 @@ WSLUA_METHOD TvbRange_bitfield(lua_State* L) {
}
if (len <= 8) {
- lua_pushinteger(L,(lua_Integer)(guint)tvb_get_bits8(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len));
+ lua_pushinteger(L,(lua_Integer)(unsigned)tvb_get_bits8(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len));
return 1;
} else if (len <= 16) {
- lua_pushinteger(L,tvb_get_bits16(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
+ lua_pushinteger(L,tvb_get_bits16(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, false));
return 1;
} else if (len <= 32) {
- lua_pushinteger(L,tvb_get_bits32(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
+ lua_pushinteger(L,tvb_get_bits32(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, false));
return 1;
} else if (len <= 64) {
- pushUInt64(L,tvb_get_bits64(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, FALSE));
+ pushUInt64(L,tvb_get_bits64(tvbr->tvb->ws_tvb,tvbr->offset*8 + pos, len, false));
WSLUA_RETURN(1); /* The bitfield value */
} else {
luaL_error(L,"TvbRange:bitfield() does not handle %d bits",len);
@@ -1289,7 +1277,7 @@ WSLUA_METHOD TvbRange_uncompress(lua_State* L) {
#define WSLUA_ARG_TvbRange_uncompress_NAME 2 /* The name to be given to the new data-source. */
TvbRange tvbr = checkTvbRange(L,1);
#ifdef HAVE_ZLIB
- const gchar* name = luaL_optstring(L,WSLUA_ARG_TvbRange_uncompress_NAME,"Uncompressed");
+ const char* name = luaL_optstring(L,WSLUA_ARG_TvbRange_uncompress_NAME,"Uncompressed");
tvbuff_t *uncompr_tvb;
#endif
@@ -1352,10 +1340,7 @@ WSLUA_METHOD TvbRange_offset(lua_State* L) {
}
WSLUA_METHOD TvbRange_raw(lua_State* L) {
- /* Obtain a Lua string of the binary bytes in a <<lua_class_TvbRange,`TvbRange`>>.
-
- @since 1.11.3
- */
+ /* Obtain a Lua string of the binary bytes in a <<lua_class_TvbRange,`TvbRange`>>. */
#define WSLUA_OPTARG_TvbRange_raw_OFFSET 2 /* The position of the first byte within the range. Default is 0, or first byte. */
#define WSLUA_OPTARG_TvbRange_raw_LENGTH 3 /* The length of the segment to get. Default is -1, or the remaining bytes in the range. */
TvbRange tvbr = checkTvbRange(L,1);
@@ -1382,10 +1367,10 @@ WSLUA_METHOD TvbRange_raw(lua_State* L) {
}
if (len < 0) {
luaL_error(L,"out of bounds");
- return FALSE;
+ return false;
} else if ( (len + offset) > tvbr->len) {
luaL_error(L,"Range is out of bounds");
- return FALSE;
+ return false;
}
lua_pushlstring(L, tvb_get_ptr(tvbr->tvb->ws_tvb, tvbr->offset+offset, len), len);
@@ -1394,10 +1379,7 @@ WSLUA_METHOD TvbRange_raw(lua_State* L) {
}
WSLUA_METAMETHOD TvbRange__eq(lua_State* L) {
- /* Checks whether the contents of two <<lua_class_TvbRange,`TvbRange`>>s are equal.
-
- @since 1.99.8
- */
+ /* Checks whether the contents of two <<lua_class_TvbRange,`TvbRange`>>s are equal. */
TvbRange tvb_l = checkTvbRange(L,1);
TvbRange tvb_r = checkTvbRange(L,2);
@@ -1406,8 +1388,8 @@ WSLUA_METAMETHOD TvbRange__eq(lua_State* L) {
tvb_l->len <= tvb_captured_length_remaining(tvb_l->tvb->ws_tvb, tvb_l->offset) &&
tvb_r->len <= tvb_captured_length_remaining(tvb_r->tvb->ws_tvb, tvb_r->offset))
{
- const gchar* lp = tvb_get_ptr(tvb_l->tvb->ws_tvb, tvb_l->offset, tvb_l->len);
- const gchar* rp = tvb_get_ptr(tvb_r->tvb->ws_tvb, tvb_r->offset, tvb_r->len);
+ const char* lp = tvb_get_ptr(tvb_l->tvb->ws_tvb, tvb_l->offset, tvb_l->len);
+ const char* rp = tvb_get_ptr(tvb_r->tvb->ws_tvb, tvb_r->offset, tvb_r->len);
int i = 0;
for (; i < tvb_r->len; ++i) {
diff --git a/epan/wslua/wslua_utility.c b/epan/wslua/wslua_utility.c
index 6aa693e608..cb9c36ddae 100644
--- a/epan/wslua/wslua_utility.c
+++ b/epan/wslua/wslua_utility.c
@@ -22,42 +22,23 @@
WSLUA_FUNCTION wslua_get_version(lua_State* L) { /* Gets the Wireshark version as a string. */
- const gchar* str = VERSION;
+ const char* str = VERSION;
lua_pushstring(L,str);
WSLUA_RETURN(1); /* The version string, e.g. "3.2.5". */
}
-static gchar *current_plugin_version = NULL;
-static gchar *current_plugin_description = NULL;
-static gchar *current_plugin_repository = NULL;
-static gchar *current_plugin_spdx_id = NULL;
+static char* current_plugin_version = NULL;
-const gchar* get_current_plugin_version(void) {
+const char* get_current_plugin_version(void) {
return current_plugin_version ? current_plugin_version : "";
}
-const gchar* get_current_plugin_description(void) {
- return current_plugin_description ? current_plugin_description : "";
-}
-
-const gchar* get_current_plugin_repository(void) {
- return current_plugin_repository ? current_plugin_repository : "";
-}
-
-const gchar* get_current_plugin_spdx_id(void) {
- return current_plugin_spdx_id ? current_plugin_spdx_id : "";
-}
-
-void clear_current_plugin_info(void) {
- g_free(current_plugin_version);
- current_plugin_version = NULL;
- g_free(current_plugin_description);
- current_plugin_description = NULL;
- g_free(current_plugin_repository);
- current_plugin_repository = NULL;
- g_free(current_plugin_spdx_id);
- current_plugin_spdx_id = NULL;
+void clear_current_plugin_version(void) {
+ if (current_plugin_version != NULL) {
+ g_free(current_plugin_version);
+ current_plugin_version = NULL;
+ }
}
WSLUA_FUNCTION wslua_set_plugin_info(lua_State* L) {
@@ -83,31 +64,27 @@ WSLUA_FUNCTION wslua_set_plugin_info(lua_State* L) {
local my_info = {
version = "1.0.1",
author = "Jane Doe",
- repository = "https://github.com/octocat/Spoon-Knife",
- spdx_id = "GPL-2.0-or-later",
- description = "Spoon-Knives can scoop and cut at the same time"
+ repository = "https://github.com/octocat/Spoon-Knife"
}
set_plugin_info(my_info)
----
-
- @since 1.99.8
*/
#define WSLUA_ARG_set_plugin_info_TABLE 1 /* The Lua table of information. */
if ( lua_istable(L,WSLUA_ARG_set_plugin_info_TABLE) ) {
+ int top;
lua_getfield(L, WSLUA_ARG_set_plugin_info_TABLE, "version");
- current_plugin_version = g_strdup(lua_tostring(L, -1));
- if (current_plugin_version == NULL) {
+ top = lua_gettop(L);
+ if (lua_isstring(L, top)) {
+ clear_current_plugin_version();
+ current_plugin_version = g_strdup( luaL_checkstring(L, top) );
+ /* pop the string */
+ lua_pop(L, 1);
+ }
+ else {
return luaL_error(L,"the Lua table must have a 'version' key entry with a string value");
}
- lua_getfield(L, WSLUA_ARG_set_plugin_info_TABLE, "description");
- current_plugin_description = g_strdup(lua_tostring(L, -1));
- lua_getfield(L, WSLUA_ARG_set_plugin_info_TABLE, "repository");
- current_plugin_repository = g_strdup(lua_tostring(L, -1));
- lua_getfield(L, WSLUA_ARG_set_plugin_info_TABLE, "spdx_id");
- current_plugin_spdx_id = g_strdup(lua_tostring(L, -1));
- lua_pop(L, 4);
} else {
return luaL_error(L,"a Lua table with at least a 'version' string entry");
}
@@ -120,11 +97,11 @@ WSLUA_FUNCTION wslua_format_date(lua_State* LS) { /* Formats an absolute timesta
#define WSLUA_ARG_format_date_TIMESTAMP 1 /* A timestamp value to convert. */
lua_Number timestamp = luaL_checknumber(LS,WSLUA_ARG_format_date_TIMESTAMP);
nstime_t then;
- gchar* str;
+ char* str;
then.secs = (time_t)(floor(timestamp));
- then.nsecs = (guint32) ( (timestamp-(double)(then.secs))*1000000000);
- str = abs_time_to_str(NULL, &then, ABSOLUTE_TIME_LOCAL, TRUE);
+ then.nsecs = (uint32_t) ( (timestamp-(double)(then.secs))*1000000000);
+ str = abs_time_to_str(NULL, &then, ABSOLUTE_TIME_LOCAL, true);
lua_pushstring(LS,str);
wmem_free(NULL, str);
@@ -135,10 +112,10 @@ WSLUA_FUNCTION wslua_format_time(lua_State* LS) { /* Formats a relative timestam
#define WSLUA_ARG_format_time_TIMESTAMP 1 /* A timestamp value to convert. */
lua_Number timestamp = luaL_checknumber(LS,WSLUA_ARG_format_time_TIMESTAMP);
nstime_t then;
- gchar* str;
+ char* str;
then.secs = (time_t)(floor(timestamp));
- then.nsecs = (guint32) ( (timestamp-(double)(then.secs))*1000000000);
+ then.nsecs = (uint32_t) ( (timestamp-(double)(then.secs))*1000000000);
str = rel_time_to_str(NULL, &then);
lua_pushstring(LS,str);
wmem_free(NULL, str);
@@ -147,13 +124,13 @@ WSLUA_FUNCTION wslua_format_time(lua_State* LS) { /* Formats a relative timestam
}
WSLUA_FUNCTION wslua_get_preference(lua_State *L) {
- /* Get a preference value. @since 3.5.0 */
+ /* Get a preference value. */
#define WSLUA_ARG_get_preference_PREFERENCE 1 /* The name of the preference. */
- const gchar* preference = luaL_checkstring(L,WSLUA_ARG_get_preference_PREFERENCE);
+ const char* preference = luaL_checkstring(L,WSLUA_ARG_get_preference_PREFERENCE);
/* Split preference from module.preference */
- gchar *module_name = g_strdup(preference);
- gchar *preference_name = strchr(module_name, '.');
+ char *module_name = g_strdup(preference);
+ char *preference_name = strchr(module_name, '.');
pref_t *pref = NULL;
if (preference_name) {
@@ -169,20 +146,20 @@ WSLUA_FUNCTION wslua_get_preference(lua_State *L) {
switch (prefs_get_type(pref)) {
case PREF_UINT:
{
- guint uint_value = prefs_get_uint_value_real(pref, pref_current);
+ unsigned uint_value = prefs_get_uint_value_real(pref, pref_current);
lua_pushinteger(L, uint_value);
break;
}
case PREF_BOOL:
{
- gboolean bool_value = prefs_get_bool_value(pref, pref_current);
+ bool bool_value = prefs_get_bool_value(pref, pref_current);
lua_pushboolean(L, bool_value);
break;
}
case PREF_ENUM:
{
const enum_val_t *enums;
- gint enum_value = prefs_get_enum_value(pref, pref_current);
+ int enum_value = prefs_get_enum_value(pref, pref_current);
for (enums = prefs_get_enumvals(pref); enums->name; enums++) {
if (enums->value == enum_value) {
@@ -203,7 +180,7 @@ WSLUA_FUNCTION wslua_get_preference(lua_State *L) {
case PREF_DIRNAME:
case PREF_DISSECTOR:
{
- const gchar *string_value = prefs_get_string_value(pref, pref_current);
+ const char *string_value = prefs_get_string_value(pref, pref_current);
lua_pushstring(L,string_value);
break;
}
@@ -227,14 +204,14 @@ WSLUA_FUNCTION wslua_get_preference(lua_State *L) {
}
WSLUA_FUNCTION wslua_set_preference(lua_State *L) {
- /* Set a preference value. @since 3.5.0 */
+ /* Set a preference value. */
#define WSLUA_ARG_set_preference_PREFERENCE 1 /* The name of the preference. */
#define WSLUA_ARG_set_preference_VALUE 2 /* The preference value to set. */
- const gchar* preference = luaL_checkstring(L,WSLUA_ARG_set_preference_PREFERENCE);
+ const char* preference = luaL_checkstring(L,WSLUA_ARG_set_preference_PREFERENCE);
/* Split preference from module.preference */
- gchar *module_name = g_strdup(preference);
- gchar *preference_name = strchr(module_name, '.');
+ char *module_name = g_strdup(preference);
+ char *preference_name = strchr(module_name, '.');
module_t *module = NULL;
pref_t *pref = NULL;
@@ -252,7 +229,7 @@ WSLUA_FUNCTION wslua_set_preference(lua_State *L) {
switch (prefs_get_type(pref)) {
case PREF_UINT:
{
- guint uint_value = (guint)luaL_checkinteger(L,WSLUA_ARG_set_preference_VALUE);
+ unsigned uint_value = (unsigned)luaL_checkinteger(L,WSLUA_ARG_set_preference_VALUE);
changed = prefs_set_uint_value(pref, uint_value, pref_current);
module->prefs_changed_flags |= changed;
lua_pushboolean(L, changed);
@@ -260,7 +237,7 @@ WSLUA_FUNCTION wslua_set_preference(lua_State *L) {
}
case PREF_BOOL:
{
- gboolean bool_value = wslua_checkboolean(L, WSLUA_ARG_set_preference_VALUE);
+ bool bool_value = wslua_checkboolean(L, WSLUA_ARG_set_preference_VALUE);
changed = prefs_set_bool_value(pref, bool_value, pref_current);
module->prefs_changed_flags |= changed;
lua_pushboolean(L, changed);
@@ -268,7 +245,7 @@ WSLUA_FUNCTION wslua_set_preference(lua_State *L) {
}
case PREF_ENUM:
{
- const gchar *enum_value = luaL_checkstring(L,WSLUA_ARG_set_preference_VALUE);
+ const char *enum_value = luaL_checkstring(L,WSLUA_ARG_set_preference_VALUE);
changed = prefs_set_enum_string_value(pref, enum_value, pref_current);
module->prefs_changed_flags |= changed;
lua_pushboolean(L, changed);
@@ -280,7 +257,7 @@ WSLUA_FUNCTION wslua_set_preference(lua_State *L) {
case PREF_DIRNAME:
case PREF_DISSECTOR:
{
- const gchar *string_value = luaL_checkstring(L,WSLUA_ARG_set_preference_VALUE);
+ const char *string_value = luaL_checkstring(L,WSLUA_ARG_set_preference_VALUE);
changed = prefs_set_string_value(pref, string_value, pref_current);
module->prefs_changed_flags |= changed;
lua_pushboolean(L, changed);
@@ -288,7 +265,7 @@ WSLUA_FUNCTION wslua_set_preference(lua_State *L) {
}
case PREF_RANGE:
{
- const gchar *range_value = luaL_checkstring(L,WSLUA_ARG_set_preference_VALUE);
+ const char *range_value = luaL_checkstring(L,WSLUA_ARG_set_preference_VALUE);
range_t *range = NULL;
convert_ret_t ret = range_convert_str(NULL, &range, range_value, prefs_get_max_value(pref));
if (ret == CVT_NUMBER_TOO_BIG) {
@@ -315,13 +292,13 @@ WSLUA_FUNCTION wslua_set_preference(lua_State *L) {
}
WSLUA_FUNCTION wslua_reset_preference(lua_State *L) {
- /* Reset a preference to default value. @since 3.5.0 */
+ /* Reset a preference to default value. */
#define WSLUA_ARG_reset_preference_PREFERENCE 1 /* The name of the preference. */
- const gchar* preference = luaL_checkstring(L,WSLUA_ARG_reset_preference_PREFERENCE);
+ const char* preference = luaL_checkstring(L,WSLUA_ARG_reset_preference_PREFERENCE);
// Split preference from module.preference
- gchar *module_name = g_strdup(preference);
- gchar *preference_name = strchr(module_name, '.');
+ char *module_name = g_strdup(preference);
+ char *preference_name = strchr(module_name, '.');
pref_t *pref = NULL;
if (preference_name) {
@@ -334,7 +311,7 @@ WSLUA_FUNCTION wslua_reset_preference(lua_State *L) {
if (pref) {
reset_pref(pref);
- lua_pushboolean(L, TRUE);
+ lua_pushboolean(L, true);
} else {
/* No such preference. */
lua_pushnil(L);
@@ -345,13 +322,13 @@ WSLUA_FUNCTION wslua_reset_preference(lua_State *L) {
}
WSLUA_FUNCTION wslua_apply_preferences(lua_State *L) {
- /* Write preferences to file and apply changes. @since 3.5.0 */
+ /* Write preferences to file and apply changes. */
char *pf_path = NULL;
int err = write_prefs(&pf_path);
if (err) {
/* Make a copy of pf_path because luaL_error() will return */
- gchar pf_path_copy[256];
+ char pf_path_copy[256];
(void) g_strlcpy(pf_path_copy, pf_path, sizeof pf_path_copy);
g_free(pf_path);
@@ -366,7 +343,7 @@ WSLUA_FUNCTION wslua_apply_preferences(lua_State *L) {
WSLUA_FUNCTION wslua_report_failure(lua_State* LS) { /* Reports a failure to the user. */
#define WSLUA_ARG_report_failure_TEXT 1 /* Message text to report. */
- const gchar* s = luaL_checkstring(LS,WSLUA_ARG_report_failure_TEXT);
+ const char* s = luaL_checkstring(LS,WSLUA_ARG_report_failure_TEXT);
report_failure("%s",s);
return 0;
}
@@ -395,7 +372,7 @@ char* wslua_get_actual_filename(const char* fname) {
return g_strdup(fname_clean);
}
- filename = get_persconffile_path(fname_clean,FALSE);
+ filename = get_persconffile_path(fname_clean,false);
if ( file_exists(filename) ) {
return filename;
diff --git a/epan/wslua/wslua_wtap.c b/epan/wslua/wslua_wtap.c
index 9fa27879bc..147b774aba 100644
--- a/epan/wslua/wslua_wtap.c
+++ b/epan/wslua/wslua_wtap.c
@@ -30,8 +30,6 @@ WSLUA_FUNCTION wslua_wtap_file_type_subtype_description(lua_State* LS) {
/*
Get a string describing a capture file type, given a filetype
value for that file type.
-
- @since 3.2.12, 3.4.4
*/
#define WSLUA_ARG_wtap_file_type_subtype_description_FILETYPE 1 /* The type for which the description is to be fetched - a number returned by `wtap_name_to_file_type_subtype()`. */
lua_Number filetype = luaL_checknumber(LS,WSLUA_ARG_wtap_file_type_subtype_description_FILETYPE);
@@ -40,7 +38,7 @@ WSLUA_FUNCTION wslua_wtap_file_type_subtype_description(lua_State* LS) {
/* Too big. */
lua_pushnil(LS);
} else {
- const gchar* str = wtap_file_type_subtype_description((int)filetype);
+ const char* str = wtap_file_type_subtype_description((int)filetype);
if (str == NULL)
lua_pushnil(LS);
else
@@ -53,8 +51,6 @@ WSLUA_FUNCTION wslua_wtap_file_type_subtype_name(lua_State* LS) {
/*
Get a string giving the name for a capture file type, given a filetype
value for that file type.
-
- @since 3.2.12, 3.4.4
*/
#define WSLUA_ARG_wtap_file_type_subtype_name_FILETYPE 1 /* The type for which the name is to be fetched - a number returned by `wtap_name_to_file_type_subtype()`. */
lua_Number filetype = luaL_checknumber(LS,WSLUA_ARG_wtap_file_type_subtype_name_FILETYPE);
@@ -63,7 +59,7 @@ WSLUA_FUNCTION wslua_wtap_file_type_subtype_name(lua_State* LS) {
/* Too big. */
lua_pushnil(LS);
} else {
- const gchar* str = wtap_file_type_subtype_name((int)filetype);
+ const char* str = wtap_file_type_subtype_name((int)filetype);
if (str == NULL)
lua_pushnil(LS);
else
@@ -76,8 +72,6 @@ WSLUA_FUNCTION wslua_wtap_name_to_file_type_subtype(lua_State* LS) {
/*
Get a filetype value for a file type, given the name for that
file type.
-
- @since 3.2.12, 3.4.4
*/
#define WSLUA_ARG_wtap_name_to_file_type_subtype_NAME 1 /* The name of a file type. */
const char* name = luaL_checkstring(LS,WSLUA_ARG_wtap_name_to_file_type_subtype_NAME);
@@ -90,33 +84,21 @@ WSLUA_FUNCTION wslua_wtap_name_to_file_type_subtype(lua_State* LS) {
}
WSLUA_FUNCTION wslua_wtap_pcap_file_type_subtype(lua_State* LS) {
- /*
- Get the filetype value for pcap files.
-
- @since 3.2.12, 3.4.4
- */
+ /* Get the filetype value for pcap files. */
lua_Number filetype = wtap_pcap_file_type_subtype();
lua_pushinteger(LS,filetype);
WSLUA_RETURN(1); /* The filetype value for pcap files. */
}
WSLUA_FUNCTION wslua_wtap_pcap_nsec_file_type_subtype(lua_State* LS) {
- /*
- Get the filetype value for nanosecond-resolution pcap files.
-
- @since 3.2.12, 3.4.4
- */
+ /* Get the filetype value for nanosecond-resolution pcap files. */
lua_Number filetype = wtap_pcap_nsec_file_type_subtype();
lua_pushinteger(LS,filetype);
WSLUA_RETURN(1); /* The filetype value for nanosecond-resolution pcap files. */
}
WSLUA_FUNCTION wslua_wtap_pcapng_file_type_subtype(lua_State* LS) {
- /*
- Get the filetype value for pcapng files.
-
- @since 3.2.12, 3.4.4
- */
+ /* Get the filetype value for pcapng files. */
lua_Number filetype = wtap_pcapng_file_type_subtype();
lua_pushinteger(LS,filetype);
WSLUA_RETURN(1); /* The filetype value for pcapng files. */
@@ -135,7 +117,7 @@ extern void wslua_init_wtap_filetypes(lua_State* LS) {
* so none of the entries will be in a sequence.
*/
lua_createtable(LS,0,table->len);
- for (guint i = 0; i < table->len; i++) {
+ for (unsigned i = 0; i < table->len; i++) {
struct backwards_compatibiliity_lua_name *entry;
entry = &g_array_index(table,
diff --git a/extcap.c b/extcap.c
index 893ecc67d5..2040bf58ac 100644
--- a/extcap.c
+++ b/extcap.c
@@ -64,23 +64,23 @@
* and is being used for printing information about all extcap interfaces found,
* as well as storing all sub-interfaces
*/
-static GHashTable * _loaded_interfaces = NULL;
+static GHashTable * _loaded_interfaces;
/* Internal container, which maps each ifname to the tool providing it, for faster
* lookup. The key and string value are owned by this table.
*/
-static GHashTable * _tool_for_ifname = NULL;
+static GHashTable * _tool_for_ifname;
/* internal container, for all the extcap executables that have been found
* and that provides a toolbar with controls to be added to a Interface Toolbar
*/
-static GHashTable *_toolbars = NULL;
+static GHashTable *_toolbars;
/* internal container, to map preference names to pointers that hold preference
* values. These ensure that preferences can survive extcap if garbage
* collection, and does not lead to dangling pointers in the prefs subsystem.
*/
-static GHashTable *_extcap_prefs_dynamic_vals = NULL;
+static GHashTable *_extcap_prefs_dynamic_vals;
typedef struct _extcap_callback_info_t
{
diff --git a/extcap/CMakeLists.txt b/extcap/CMakeLists.txt
index 78d5887187..435ea7bc22 100644
--- a/extcap/CMakeLists.txt
+++ b/extcap/CMakeLists.txt
@@ -385,7 +385,12 @@ if(BUILD_falcodump AND SINSP_FOUND)
add_executable(falcodump ${falcodump_FILES})
set_extlog_executable_properties(falcodump)
target_link_libraries(falcodump ${falcodump_LIBS})
- target_include_directories(falcodump SYSTEM PRIVATE ${SINSP_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR})
+ target_include_directories(falcodump SYSTEM PRIVATE ${SINSP_INCLUDE_DIRS})
+ if(WIN32)
+ # libsinsp/dumper.h includes libscap/scap_savefile_api.h, which includes
+ # libscap/scap_zlib.h.
+ target_include_directories(falcodump SYSTEM PRIVATE ${ZLIB_INCLUDE_DIR})
+ endif()
install(TARGETS falcodump RUNTIME DESTINATION ${LOG_EXTCAP_INSTALL_LIBDIR})
add_dependencies(extcaps falcodump)
diff --git a/extcap/androiddump.c b/extcap/androiddump.c
index 47dfea9ba2..9cb8f8c366 100644
--- a/extcap/androiddump.c
+++ b/extcap/androiddump.c
@@ -200,7 +200,7 @@ enum {
OPT_CONFIG_BT_LOCAL_TCP_PORT
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
{ "help", ws_no_argument, NULL, OPT_HELP},
{ "version", ws_no_argument, NULL, OPT_VERSION},
diff --git a/extcap/ciscodump.c b/extcap/ciscodump.c
index de943c56d8..84b29d3be4 100644
--- a/extcap/ciscodump.c
+++ b/extcap/ciscodump.c
@@ -110,9 +110,9 @@ enum {
static char prompt_str[SSH_READ_BLOCK_SIZE + 1];
static int32_t prompt_len = -1;
CISCO_SW_TYPE global_sw_type = CISCO_UNKNOWN;
-static bool send_output_quit = false; /* IOS XE 17: send quit during output */
+static bool send_output_quit; /* IOS XE 17: send quit during output */
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
{ "help", ws_no_argument, NULL, OPT_HELP},
{ "version", ws_no_argument, NULL, OPT_VERSION},
diff --git a/extcap/dpauxmon.c b/extcap/dpauxmon.c
index 68280a9fa1..e025b59695 100644
--- a/extcap/dpauxmon.c
+++ b/extcap/dpauxmon.c
@@ -17,6 +17,7 @@
#include "extcap-base.h"
+#include <wsutil/array.h>
#include <wsutil/strtoi.h>
#include <wsutil/filesystem.h>
#include <wsutil/privileges.h>
@@ -41,7 +42,7 @@
#define DPAUXMON_VERSION_MINOR "1"
#define DPAUXMON_VERSION_RELEASE "0"
-FILE* pcap_fp = NULL;
+FILE* pcap_fp;
enum {
EXTCAP_BASE_OPTIONS_ENUM,
@@ -50,7 +51,7 @@ enum {
OPT_INTERFACE_ID,
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
/* Generic application options */
{ "help", ws_no_argument, NULL, OPT_HELP},
@@ -387,12 +388,10 @@ static struct genl_cmd cmds[] = {
},
};
-#define ARRAY_SIZE(X) (sizeof(X) / sizeof((X)[0]))
-
static struct genl_ops ops = {
.o_name = "dpauxmon",
.o_cmds = cmds,
- .o_ncmds = ARRAY_SIZE(cmds),
+ .o_ncmds = array_length(cmds),
};
struct nl_sock *sock;
diff --git a/extcap/etl.c b/extcap/etl.c
index 78f2bf2266..3fae123287 100644
--- a/extcap/etl.c
+++ b/extcap/etl.c
@@ -59,7 +59,7 @@ enum {
OPT_LEVEL,
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
{ "p", ws_required_argument, NULL, OPT_PROVIDER},
{ "k", ws_required_argument, NULL, OPT_KEYWORD},
{ "l", ws_required_argument, NULL, OPT_LEVEL},
@@ -72,12 +72,12 @@ typedef struct _PROVIDER_FILTER {
UCHAR Level;
} PROVIDER_FILTER;
-char g_err_info[FILENAME_MAX] = { 0 };
+char g_err_info[FILENAME_MAX];
int g_err = ERROR_SUCCESS;
-static wtap_dumper* g_pdh = NULL;
+static wtap_dumper* g_pdh;
extern ULONGLONG g_num_events;
-static PROVIDER_FILTER g_provider_filters[32] = { 0 };
-static BOOL g_is_live_session = false;
+static PROVIDER_FILTER g_provider_filters[32];
+static BOOL g_is_live_session;
static void WINAPI event_callback(PEVENT_RECORD ev);
void etw_dump_write_opn_event(PEVENT_RECORD ev, ULARGE_INTEGER timestamp);
diff --git a/extcap/etw_message.c b/extcap/etw_message.c
index c99eaea851..66364b832c 100644
--- a/extcap/etw_message.c
+++ b/extcap/etw_message.c
@@ -13,7 +13,7 @@
#include "etw_message.h"
#include <wsutil/wslog.h>
-ULONGLONG g_num_events = 0;
+ULONGLONG g_num_events;
VOID format_message(WCHAR* lpszMessage, PROPERTY_KEY_VALUE* propArray, DWORD dwPropertyCount, WCHAR* lpszOutBuffer, DWORD dwOutBufferCount)
{
diff --git a/extcap/etw_ndiscap.c b/extcap/etw_ndiscap.c
index 9e24f31b5c..56fa92ec11 100644
--- a/extcap/etw_ndiscap.c
+++ b/extcap/etw_ndiscap.c
@@ -87,12 +87,12 @@ static const char* DOT11_PHY_TYPE_NAMES[] = {
"802.11ax" // dot11_phy_type_he = 10
};
-unsigned long long NumFramesConverted = 0;
+unsigned long long NumFramesConverted;
char AuxFragBuf[MAX_PACKET_SIZE] = {0};
-unsigned long AuxFragBufOffset = 0;
+unsigned long AuxFragBufOffset;
DOT11_EXTSTA_RECV_CONTEXT PacketMetadata;
-BOOLEAN AddWlanMetadata = false;
+BOOLEAN AddWlanMetadata;
typedef struct _NDIS_NET_BUFFER_LIST_8021Q_INFO {
union {
@@ -135,7 +135,7 @@ typedef struct _VMSWITCH_PACKET_FRAGMENT {
short VlanId;
} VMSWITCH_PACKET_FRAGMENT, *PVMSWITCH_PACKET_FRAGMENT;
-BOOLEAN CurrentPacketIsVMSwitchPacketFragment = false;
+BOOLEAN CurrentPacketIsVMSwitchPacketFragment;
VMSWITCH_PACKET_FRAGMENT VMSwitchPacketFragment;
struct INTERFACE {
@@ -151,8 +151,8 @@ struct INTERFACE {
};
#define IFACE_HT_SIZE 100
-struct INTERFACE* InterfaceHashTable[IFACE_HT_SIZE] = {0};
-unsigned long NumInterfaces = 0;
+struct INTERFACE* InterfaceHashTable[IFACE_HT_SIZE];
+unsigned long NumInterfaces;
void wtap_etl_rec_dump(char* etl_record, ULONG total_packet_length, ULONG original_packet_length, unsigned int interface_id, BOOLEAN is_inbound, ULARGE_INTEGER timestamp, int pkt_encap, char* comment, unsigned short comment_length);
void wtap_etl_add_interface(int pkt_encap, char* interface_name, unsigned short interface_name_length, char* interface_desc, unsigned short interface_desc_length);
diff --git a/extcap/etwdump.c b/extcap/etwdump.c
index ea803a7098..60189e1c97 100644
--- a/extcap/etwdump.c
+++ b/extcap/etwdump.c
@@ -42,7 +42,7 @@ enum {
OPT_PARAMS
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
{ "help", ws_no_argument, NULL, OPT_HELP},
{ "version", ws_no_argument, NULL, OPT_VERSION},
@@ -52,7 +52,7 @@ static struct ws_option longopts[] = {
{ 0, 0, 0, 0 }
};
-int g_include_undecidable_event = false;
+int g_include_undecidable_event;
void SignalHandler(_U_ int signal)
{
diff --git a/extcap/extcap-base.c b/extcap/extcap-base.c
index de753e8e0f..2a6dd685c9 100644
--- a/extcap/extcap-base.c
+++ b/extcap/extcap-base.c
@@ -44,12 +44,12 @@ typedef struct _extcap_option {
char * optdesc;
} extcap_option_t;
-static FILE *custom_log = NULL;
+static FILE *custom_log;
/* used to inform to extcap application that end of application is requested */
-bool extcap_end_application = false;
+bool extcap_end_application;
/* graceful shutdown callback, can be null */
-void (*extcap_graceful_shutdown_cb)(void) = NULL;
+void (*extcap_graceful_shutdown_cb)(void);
static void extcap_init_log_file(const char *filename);
@@ -276,7 +276,7 @@ static int extcap_iface_listall(extcap_parameters * extcap, uint8_t list_ifs)
uint8_t extcap_base_handle_interface(extcap_parameters * extcap)
{
/* A fifo must be provided for capture */
- if (extcap->capture && (extcap->fifo == NULL || strlen(extcap->fifo) <= 0)) {
+ if (extcap->capture && (extcap->fifo == NULL || strlen(extcap->fifo) == 0)) {
extcap->capture = 0;
ws_error("Extcap Error: No FIFO pipe provided");
return 0;
diff --git a/extcap/falcodump.cpp b/extcap/falcodump.cpp
index abd3796846..e20b44c0a4 100644
--- a/extcap/falcodump.cpp
+++ b/extcap/falcodump.cpp
@@ -292,6 +292,8 @@ static void load_plugins(sinsp &inspector) {
WS_DIR *dir;
WS_DIRENT *file;
char *plugin_paths[] = {
+ // XXX Falco plugins should probably be installed in a path that reflects
+ // the Falco version or its plugin API version.
g_build_filename(get_plugins_dir(), "falco", NULL),
g_build_filename(get_plugins_pers_dir(), "falco", NULL)
};
@@ -970,10 +972,11 @@ int main(int argc, char **argv)
extcap_base_register_interface(extcap_conf, iter->first.c_str(), "Falco plugin", 147, "USER0");
}
} else {
- ws_warning("No source plugins found.");
+ ws_warning("Unable to load plugins.");
}
if (g_list_length(extcap_conf->interfaces) < 1) {
+ ws_debug("No source plugins found.");
goto end;
}
diff --git a/extcap/randpktdump.c b/extcap/randpktdump.c
index 6d5183500d..edff563899 100644
--- a/extcap/randpktdump.c
+++ b/extcap/randpktdump.c
@@ -43,7 +43,7 @@ enum {
OPT_TYPE
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
{ "help", ws_no_argument, NULL, OPT_HELP},
{ "version", ws_no_argument, NULL, OPT_VERSION},
diff --git a/extcap/sdjournal.c b/extcap/sdjournal.c
index 879fea8705..e2f8ba81a8 100644
--- a/extcap/sdjournal.c
+++ b/extcap/sdjournal.c
@@ -50,7 +50,7 @@ enum {
OPT_START_FROM
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
{ "help", ws_no_argument, NULL, OPT_HELP},
{ "version", ws_no_argument, NULL, OPT_VERSION},
diff --git a/extcap/sshdump.c b/extcap/sshdump.c
index 15adec4b6a..51c0bfc2f8 100644
--- a/extcap/sshdump.c
+++ b/extcap/sshdump.c
@@ -65,7 +65,7 @@ enum {
OPT_REMOTE_NOPROM
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
{ "help", ws_no_argument, NULL, OPT_HELP},
{ "version", ws_no_argument, NULL, OPT_VERSION},
diff --git a/extcap/udpdump.c b/extcap/udpdump.c
index 333eaa292b..e7ff3db4a2 100644
--- a/extcap/udpdump.c
+++ b/extcap/udpdump.c
@@ -70,7 +70,7 @@ enum {
OPT_PAYLOAD
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
/* Generic application options */
{ "help", ws_no_argument, NULL, OPT_HELP},
diff --git a/extcap/wifidump.c b/extcap/wifidump.c
index 7e2159c616..57a9c07a7e 100644
--- a/extcap/wifidump.c
+++ b/extcap/wifidump.c
@@ -63,7 +63,7 @@ enum {
OPT_REMOTE_COUNT
};
-static struct ws_option longopts[] = {
+static const struct ws_option longopts[] = {
EXTCAP_BASE_OPTIONS,
{ "help", ws_no_argument, NULL, OPT_HELP},
{ "version", ws_no_argument, NULL, OPT_VERSION},
diff --git a/extcap_parser.c b/extcap_parser.c
index 8a5e56ad57..db47a5efcf 100644
--- a/extcap_parser.c
+++ b/extcap_parser.c
@@ -25,17 +25,17 @@
#include "ws_attributes.h"
void extcap_printf_complex(extcap_complex *comp) {
- gchar *ret = extcap_get_complex_as_string(comp);
+ char *ret = extcap_get_complex_as_string(comp);
printf("%s", ret);
g_free(ret);
}
-gchar *extcap_get_complex_as_string(extcap_complex *comp) {
+char *extcap_get_complex_as_string(extcap_complex *comp) {
return (comp ? g_strdup(comp->_val) : NULL);
}
extcap_complex *extcap_parse_complex(extcap_arg_type complex_type,
- const gchar *data) {
+ const char *data) {
extcap_complex *rc = g_new0(extcap_complex, 1);
@@ -45,14 +45,14 @@ extcap_complex *extcap_parse_complex(extcap_arg_type complex_type,
return rc;
}
-gboolean extcap_compare_is_default(extcap_arg *element, extcap_complex *test) {
+bool extcap_compare_is_default(extcap_arg *element, extcap_complex *test) {
if (element == NULL || element->default_complex == NULL || test == NULL)
- return FALSE;
+ return false;
if (g_strcmp0(element->default_complex->_val, test->_val) == 0)
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
void extcap_free_complex(extcap_complex *comp) {
@@ -61,61 +61,61 @@ void extcap_free_complex(extcap_complex *comp) {
g_free(comp);
}
-gint extcap_complex_get_int(extcap_complex *comp) {
+int extcap_complex_get_int(extcap_complex *comp) {
if (comp == NULL || comp->_val == NULL || comp->complex_type != EXTCAP_ARG_INTEGER)
- return (gint)0;
+ return (int)0;
- return (gint) g_ascii_strtoll(comp->_val, NULL, 10);
+ return (int) g_ascii_strtoll(comp->_val, NULL, 10);
}
-guint extcap_complex_get_uint(extcap_complex *comp) {
+unsigned extcap_complex_get_uint(extcap_complex *comp) {
if (comp == NULL || comp->_val == NULL || comp->complex_type != EXTCAP_ARG_UNSIGNED)
- return (guint)0;
- return (guint) g_ascii_strtoull(comp->_val, NULL, 10);
+ return (unsigned)0;
+ return (unsigned) g_ascii_strtoull(comp->_val, NULL, 10);
}
-gint64 extcap_complex_get_long(extcap_complex *comp) {
+int64_t extcap_complex_get_long(extcap_complex *comp) {
if (comp == NULL || comp->_val == NULL || comp->complex_type != EXTCAP_ARG_LONG)
- return (gint64)0;
+ return (int64_t)0;
return g_ascii_strtoll(comp->_val, NULL, 10);
}
-gdouble extcap_complex_get_double(extcap_complex *comp) {
+double extcap_complex_get_double(extcap_complex *comp) {
if (comp == NULL || comp->_val == NULL || comp->complex_type != EXTCAP_ARG_DOUBLE)
- return (gdouble)0;
+ return (double)0;
return g_strtod(comp->_val, NULL);
}
-static gboolean matches_regex(const char *pattern, const char *subject) {
+static bool matches_regex(const char *pattern, const char *subject) {
if (!g_utf8_validate(subject, -1, NULL))
- return FALSE;
+ return false;
return g_regex_match_simple(pattern, subject, (GRegexCompileFlags) (G_REGEX_CASELESS), (GRegexMatchFlags)0);
}
-gboolean extcap_complex_get_bool(extcap_complex *comp) {
+bool extcap_complex_get_bool(extcap_complex *comp) {
if (comp == NULL || comp->_val == NULL)
- return FALSE;
+ return false;
if (comp->complex_type != EXTCAP_ARG_BOOLEAN && comp->complex_type != EXTCAP_ARG_BOOLFLAG)
- return FALSE;
+ return false;
return matches_regex(EXTCAP_BOOLEAN_REGEX, comp->_val);
}
-gchar *extcap_complex_get_string(extcap_complex *comp) {
+char *extcap_complex_get_string(extcap_complex *comp) {
/* Not checking for argument type, to use this method as fallback if only strings are needed */
return comp != NULL ? comp->_val : NULL;
}
-static extcap_token_sentence *extcap_tokenize_sentence(const gchar *s) {
+static extcap_token_sentence *extcap_tokenize_sentence(const char *s) {
GRegex *regex = NULL;
GMatchInfo *match_info = NULL;
GError *error = NULL;
- gchar *param_value = NULL;
- guint param_type = EXTCAP_PARAM_UNKNOWN;
+ char *param_value = NULL;
+ unsigned param_type = EXTCAP_PARAM_UNKNOWN;
if (!g_utf8_validate(s, -1, NULL))
- return FALSE;
+ return false;
extcap_token_sentence *rs = g_new0(extcap_token_sentence, 1);
@@ -150,7 +150,7 @@ static extcap_token_sentence *extcap_tokenize_sentence(const gchar *s) {
if (regex != NULL) {
g_regex_match_full(regex, s, -1, 0, (GRegexMatchFlags) 0, &match_info, &error);
while (g_match_info_matches(match_info)) {
- gchar *arg = g_match_info_fetch(match_info, 1);
+ char *arg = g_match_info_fetch(match_info, 1);
if (arg == NULL)
break;
@@ -221,11 +221,11 @@ static extcap_token_sentence *extcap_tokenize_sentence(const gchar *s) {
return rs;
}
-static GList *extcap_tokenize_sentences(const gchar *s) {
+static GList *extcap_tokenize_sentences(const char *s) {
GList *sentences = NULL;
extcap_token_sentence *item = NULL;
- gchar **list, **list_iter;
+ char **list, **list_iter;
list_iter = list = g_strsplit(s, "\n", 0);
while (*list_iter != NULL) {
@@ -251,7 +251,7 @@ static void extcap_free_value(extcap_value *v) {
g_free(v);
}
-static void extcap_free_valuelist(gpointer data, gpointer user_data _U_) {
+static void extcap_free_valuelist(void *data, void *user_data _U_) {
extcap_free_value((extcap_value *) data);
}
@@ -317,19 +317,19 @@ void extcap_free_arg_list(GList *a) {
g_list_free_full(a, (GDestroyNotify)extcap_free_arg);
}
-static gint glist_find_numbered_arg(gconstpointer listelem, gconstpointer needle) {
+static int glist_find_numbered_arg(gconstpointer listelem, gconstpointer needle) {
if (((const extcap_arg *) listelem)->arg_num == *((const int *) needle))
return 0;
return 1;
}
-static gint glist_find_numbered_control(gconstpointer listelem, gconstpointer needle) {
+static int glist_find_numbered_control(gconstpointer listelem, gconstpointer needle) {
if (((const iface_toolbar_control *) listelem)->num == *((const int *) needle))
return 0;
return 1;
}
-static void extcap_free_tokenized_sentence(gpointer s, gpointer user_data _U_) {
+static void extcap_free_tokenized_sentence(void *s, void *user_data _U_) {
extcap_token_sentence *t = (extcap_token_sentence *)s;
if (t == NULL)
@@ -350,7 +350,7 @@ static void extcap_free_tokenized_sentences(GList *sentences) {
static extcap_value *extcap_parse_value_sentence(extcap_token_sentence *s) {
extcap_value *value = NULL;
- gchar *param_value = NULL;
+ char *param_value = NULL;
int tint = 0;
@@ -359,7 +359,7 @@ static extcap_value *extcap_parse_value_sentence(extcap_token_sentence *s) {
if (g_ascii_strcasecmp(s->sentence, "value") == 0) {
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARG)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARG)))
== NULL) {
printf("no arg in VALUE sentence\n");
return NULL;
@@ -373,7 +373,7 @@ static extcap_value *extcap_parse_value_sentence(extcap_token_sentence *s) {
value = g_new0(extcap_value, 1);
value->arg_num = tint;
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALUE)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALUE)))
== NULL) {
/* printf("no value in VALUE sentence\n"); */
extcap_free_value(value);
@@ -381,7 +381,7 @@ static extcap_value *extcap_parse_value_sentence(extcap_token_sentence *s) {
}
value->call = g_strdup(param_value);
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY)))
== NULL) {
/* printf("no display in VALUE sentence\n"); */
extcap_free_value(value);
@@ -389,18 +389,18 @@ static extcap_value *extcap_parse_value_sentence(extcap_token_sentence *s) {
}
value->display = g_strdup(param_value);
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_PARENT)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_PARENT)))
!= NULL) {
value->parent = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT)))
!= NULL) {
/* printf("found default value\n"); */
value->is_default = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ENABLED)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ENABLED)))
!= NULL) {
value->enabled = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
@@ -410,7 +410,7 @@ static extcap_value *extcap_parse_value_sentence(extcap_token_sentence *s) {
}
static extcap_arg *extcap_parse_arg_sentence(GList *args, extcap_token_sentence *s) {
- gchar *param_value = NULL;
+ char *param_value = NULL;
extcap_arg *target_arg = NULL;
extcap_value *value = NULL;
@@ -432,10 +432,10 @@ static extcap_arg *extcap_parse_arg_sentence(GList *args, extcap_token_sentence
if (sent == EXTCAP_SENTENCE_ARG) {
target_arg = g_new0(extcap_arg, 1);
target_arg->arg_type = EXTCAP_ARG_UNKNOWN;
- target_arg->save = TRUE;
+ target_arg->save = true;
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARGNUM))) == NULL) {
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARGNUM))) == NULL) {
extcap_free_arg(target_arg);
return NULL;
}
@@ -445,7 +445,7 @@ static extcap_arg *extcap_parse_arg_sentence(GList *args, extcap_token_sentence
return NULL;
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_CALL))) == NULL) {
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_CALL))) == NULL) {
extcap_free_arg(target_arg);
return NULL;
}
@@ -457,48 +457,48 @@ static extcap_arg *extcap_parse_arg_sentence(GList *args, extcap_token_sentence
return NULL;
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY))) == NULL) {
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY))) == NULL) {
extcap_free_arg(target_arg);
return NULL;
}
target_arg->display = g_strdup(param_value);
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TOOLTIP)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TOOLTIP)))
!= NULL) {
target_arg->tooltip = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_PLACEHOLDER)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_PLACEHOLDER)))
!= NULL) {
target_arg->placeholder = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_FILE_MUSTEXIST)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_FILE_MUSTEXIST)))
!= NULL) {
target_arg->fileexists = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_FILE_EXTENSION)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_FILE_EXTENSION)))
!= NULL) {
target_arg->fileextension = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALIDATION)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALIDATION)))
!= NULL) {
target_arg->regexp = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_GROUP)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_GROUP)))
!= NULL) {
target_arg->group = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_REQUIRED)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_REQUIRED)))
!= NULL) {
target_arg->is_required = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TYPE)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TYPE)))
== NULL) {
/* printf("no type in ARG sentence\n"); */
extcap_free_arg(target_arg);
@@ -540,19 +540,19 @@ static extcap_arg *extcap_parse_arg_sentence(GList *args, extcap_token_sentence
return NULL;
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_SAVE)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_SAVE)))
!= NULL) {
target_arg->save = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_RELOAD)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_RELOAD)))
!= NULL) {
target_arg->reload = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_RANGE)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_RANGE)))
!= NULL) {
- gchar *cp = g_strstr_len(param_value, -1, ",");
+ char *cp = g_strstr_len(param_value, -1, ",");
if (cp == NULL) {
printf("invalid range, expected value,value got %s\n",
@@ -578,7 +578,7 @@ static extcap_arg *extcap_parse_arg_sentence(GList *args, extcap_token_sentence
}
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT)))
!= NULL) {
if (target_arg->arg_type != EXTCAP_ARG_MULTICHECK && target_arg->arg_type != EXTCAP_ARG_SELECTOR)
{
@@ -609,7 +609,7 @@ static extcap_arg *extcap_parse_arg_sentence(GList *args, extcap_token_sentence
return target_arg;
}
-GList *extcap_parse_args(gchar *output) {
+GList *extcap_parse_args(char *output) {
GList *result = NULL;
GList *walker = NULL;
GList *temp = NULL;
@@ -622,7 +622,7 @@ GList *extcap_parse_args(gchar *output) {
extcap_token_sentence *sentence = (extcap_token_sentence *)walker->data;
if ((ra = extcap_parse_arg_sentence(result, sentence)) != NULL)
- result = g_list_append(result, (gpointer) ra);
+ result = g_list_append(result, (void *) ra);
walker = g_list_next(walker);
}
@@ -632,7 +632,7 @@ GList *extcap_parse_args(gchar *output) {
return result;
}
-GList *extcap_parse_values(gchar *output) {
+GList *extcap_parse_values(char *output) {
GList *result = NULL;
GList *walker = NULL;
GList *temp = NULL;
@@ -645,7 +645,7 @@ GList *extcap_parse_values(gchar *output) {
extcap_token_sentence *sentence = (extcap_token_sentence *)walker->data;
if ((ra = extcap_parse_value_sentence(sentence)) != NULL)
- result = g_list_append(result, (gpointer) ra);
+ result = g_list_append(result, (void *) ra);
walker = g_list_next(walker);
}
@@ -657,7 +657,7 @@ GList *extcap_parse_values(gchar *output) {
static extcap_interface *extcap_parse_interface_sentence(extcap_token_sentence *s) {
extcap_sentence_type sent = EXTCAP_SENTENCE_UNKNOWN;
- gchar *param_value = NULL;
+ char *param_value = NULL;
extcap_interface *ri = NULL;
if (s == NULL)
@@ -676,7 +676,7 @@ static extcap_interface *extcap_parse_interface_sentence(extcap_token_sentence *
ri->if_type = sent;
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALUE)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALUE)))
== NULL && sent == EXTCAP_SENTENCE_INTERFACE) {
printf("No value in INTERFACE sentence\n");
g_free(ri);
@@ -684,7 +684,7 @@ static extcap_interface *extcap_parse_interface_sentence(extcap_token_sentence *
}
ri->call = g_strdup(param_value);
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY)))
== NULL && sent == EXTCAP_SENTENCE_INTERFACE) {
printf("No display in INTERFACE sentence\n");
g_free(ri->call);
@@ -693,12 +693,12 @@ static extcap_interface *extcap_parse_interface_sentence(extcap_token_sentence *
}
ri->display = g_strdup(param_value);
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VERSION)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VERSION)))
!= NULL) {
ri->version = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_HELP)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_HELP)))
!= NULL) {
ri->help = g_strdup(param_value);
}
@@ -709,11 +709,11 @@ static extcap_interface *extcap_parse_interface_sentence(extcap_token_sentence *
static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items, extcap_token_sentence *s)
{
extcap_sentence_type sent = EXTCAP_SENTENCE_UNKNOWN;
- gchar *param_value = NULL;
+ char *param_value = NULL;
iface_toolbar_control *control = NULL;
iface_toolbar_value *value = NULL;
GList *entry = NULL;
- guint32 num = 0;
+ uint32_t num = 0;
if (s == NULL)
return NULL;
@@ -731,7 +731,7 @@ static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items
control = g_new0(iface_toolbar_control, 1);
control->ctrl_type = INTERFACE_TYPE_UNKNOWN;
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARGNUM));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARGNUM));
if (param_value == NULL) {
extcap_free_toolbar_control(control);
return NULL;
@@ -743,30 +743,30 @@ static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items
}
control->num = (int)num;
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY));
if (param_value == NULL) {
extcap_free_toolbar_control(control);
return NULL;
}
control->display = g_strdup(param_value);
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALIDATION)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALIDATION)))
!= NULL) {
control->validation = g_strdup(param_value);
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_REQUIRED)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_REQUIRED)))
!= NULL) {
control->is_required = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TOOLTIP));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TOOLTIP));
control->tooltip = g_strdup(param_value);
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_PLACEHOLDER));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_PLACEHOLDER));
control->placeholder = g_strdup(param_value);
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TYPE));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_TYPE));
if (param_value == NULL) {
extcap_free_toolbar_control(control);
return NULL;
@@ -789,7 +789,7 @@ static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items
return NULL;
}
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ROLE));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ROLE));
if (param_value != NULL) {
if (g_ascii_strcasecmp(param_value, "control") == 0) {
control->ctrl_role = INTERFACE_ROLE_CONTROL;
@@ -808,7 +808,7 @@ static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items
control->ctrl_role = INTERFACE_ROLE_CONTROL;
}
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT));
if (param_value != NULL) {
if (arg_type != EXTCAP_ARG_UNKNOWN) {
extcap_complex *complex = extcap_parse_complex(arg_type, param_value);
@@ -826,7 +826,7 @@ static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items
}
} else if (sent == EXTCAP_SENTENCE_VALUE) {
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_CONTROL));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_CONTROL));
if (param_value == NULL) {
printf("no control in VALUE sentence\n");
return NULL;
@@ -846,21 +846,21 @@ static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items
value = g_new0(iface_toolbar_value, 1);
value->num = (int)num;
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALUE));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_VALUE));
if (param_value == NULL) {
extcap_free_toolbar_value(value);
return NULL;
}
value->value = g_strdup(param_value);
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY));
if (param_value == NULL) {
extcap_free_toolbar_value(value);
return NULL;
}
value->display = g_strdup(param_value);
- param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT));
+ param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DEFAULT));
if (param_value != NULL) {
value->is_default = matches_regex(EXTCAP_BOOLEAN_REGEX, param_value);
}
@@ -874,7 +874,7 @@ static iface_toolbar_control *extcap_parse_control_sentence(GList *control_items
return control;
}
-GList *extcap_parse_interfaces(gchar *output, GList **control_items) {
+GList *extcap_parse_interfaces(char *output, GList **control_items) {
GList *result = NULL;
GList *tokens = NULL;
@@ -913,7 +913,7 @@ GList *extcap_parse_interfaces(gchar *output, GList **control_items) {
/* Parse a tokenized set of sentences and validate, looking for DLT definitions */
static extcap_dlt *extcap_parse_dlt_sentence(extcap_token_sentence *s) {
- gchar *param_value = NULL;
+ char *param_value = NULL;
extcap_sentence_type sent = EXTCAP_SENTENCE_UNKNOWN;
extcap_dlt *result = NULL;
@@ -933,7 +933,7 @@ static extcap_dlt *extcap_parse_dlt_sentence(extcap_token_sentence *s) {
result->name = NULL;
result->display = NULL;
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARGNUM)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_ARGNUM)))
== NULL) {
printf("No number in DLT sentence\n");
g_free(result);
@@ -945,7 +945,7 @@ static extcap_dlt *extcap_parse_dlt_sentence(extcap_token_sentence *s) {
return NULL;
}
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_NAME)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_NAME)))
== NULL) {
printf("No name in DLT sentence\n");
g_free(result);
@@ -953,7 +953,7 @@ static extcap_dlt *extcap_parse_dlt_sentence(extcap_token_sentence *s) {
}
result->name = g_strdup(param_value);
- if ((param_value = (gchar *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY)))
+ if ((param_value = (char *)g_hash_table_lookup(s->param_list, ENUM_KEY(EXTCAP_PARAM_DISPLAY)))
== NULL) {
printf("No display in DLT sentence\n");
g_free(result->name);
@@ -965,7 +965,7 @@ static extcap_dlt *extcap_parse_dlt_sentence(extcap_token_sentence *s) {
return result;
}
-GList *extcap_parse_dlts(gchar *output) {
+GList *extcap_parse_dlts(char *output) {
GList *walker = NULL;
GList *temp = NULL;
diff --git a/extcap_parser.h b/extcap_parser.h
index 10aecbc9ae..e53aedd1ce 100644
--- a/extcap_parser.h
+++ b/extcap_parser.h
@@ -75,7 +75,7 @@ typedef enum {
EXTCAP_PARAM_ROLE
} extcap_param_type;
-#define ENUM_KEY(s) GUINT_TO_POINTER((guint)s)
+#define ENUM_KEY(s) GUINT_TO_POINTER((unsigned)s)
/* Values for a given sentence; values are all stored as a call
* and a value string, or a valid range, so we only need to store
@@ -83,39 +83,39 @@ typedef enum {
typedef struct _extcap_value {
int arg_num;
- gchar *call;
- gchar *display;
- gboolean enabled;
- gboolean is_default;
- gchar *parent;
+ char *call;
+ char *display;
+ bool enabled;
+ bool is_default;
+ char *parent;
} extcap_value;
/* Complex-ish struct for storing complex values */
typedef struct _extcap_complex {
extcap_arg_type complex_type;
- gchar * _val;
+ char * _val;
} extcap_complex;
/* An argument sentence and accompanying options */
typedef struct _extcap_arg {
int arg_num;
- gchar *call;
- gchar *display;
- gchar *tooltip;
- gchar *placeholder;
+ char *call;
+ char *display;
+ char *tooltip;
+ char *placeholder;
- gchar * fileextension;
- gboolean fileexists;
+ char * fileextension;
+ bool fileexists;
- gboolean is_required;
- gboolean save;
+ bool is_required;
+ bool save;
- gboolean reload;
+ bool reload;
- gchar * regexp;
+ char * regexp;
- gchar * group;
+ char * group;
extcap_arg_type arg_type;
@@ -123,30 +123,30 @@ typedef struct _extcap_arg {
extcap_complex *range_end;
extcap_complex *default_complex;
- gchar ** pref_valptr; /**< A copy of the pointer containing the current preference value. */
- gchar * device_name;
+ char ** pref_valptr; /**< A copy of the pointer containing the current preference value. */
+ char * device_name;
GList * values;
} extcap_arg;
typedef struct _extcap_interface {
- gchar * call;
- gchar * display;
- gchar * version;
- gchar * help;
- gchar * extcap_path;
+ char * call;
+ char * display;
+ char * version;
+ char * help;
+ char * extcap_path;
extcap_sentence_type if_type;
} extcap_interface;
typedef struct _extcap_dlt {
- gint number;
- gchar *name;
- gchar *display;
+ int number;
+ char *name;
+ char *display;
} extcap_dlt;
typedef struct _extcap_token_sentence {
- gchar *sentence;
+ char *sentence;
GHashTable *param_list;
} extcap_token_sentence;
@@ -157,7 +157,7 @@ extern "C" {
/* Parse a string into a complex type */
extcap_complex *extcap_parse_complex(extcap_arg_type complex_type,
- const gchar *data);
+ const char *data);
/* Free a complex */
void extcap_free_complex(extcap_complex *comp);
@@ -169,17 +169,17 @@ void extcap_printf_complex(extcap_complex *comp);
* Return a string representation of a complex type
* Caller is responsible for calling g_free on the returned string
*/
-gchar *extcap_get_complex_as_string(extcap_complex *comp);
+char *extcap_get_complex_as_string(extcap_complex *comp);
-gint extcap_complex_get_int(extcap_complex *comp);
-guint extcap_complex_get_uint(extcap_complex *comp);
-gint64 extcap_complex_get_long(extcap_complex *comp);
-gdouble extcap_complex_get_double(extcap_complex *comp);
-gboolean extcap_complex_get_bool(extcap_complex *comp);
-gchar *extcap_complex_get_string(extcap_complex *comp);
+int extcap_complex_get_int(extcap_complex *comp);
+unsigned extcap_complex_get_uint(extcap_complex *comp);
+int64_t extcap_complex_get_long(extcap_complex *comp);
+double extcap_complex_get_double(extcap_complex *comp);
+bool extcap_complex_get_bool(extcap_complex *comp);
+char *extcap_complex_get_string(extcap_complex *comp);
/* compares the default value of an element with a given parameter */
-gboolean extcap_compare_is_default(extcap_arg *element, extcap_complex *test);
+bool extcap_compare_is_default(extcap_arg *element, extcap_complex *test);
/* Free a single argument */
@@ -195,16 +195,16 @@ void extcap_free_arg_list(GList *a);
/** Parser for extcap data */
/* Parse all sentences for args and values */
-GList * extcap_parse_args(gchar *output);
+GList * extcap_parse_args(char *output);
/* Parse all sentences for values */
-GList * extcap_parse_values(gchar *output);
+GList * extcap_parse_values(char *output);
/* Parse all sentences for interfaces */
-GList * extcap_parse_interfaces(gchar *output, GList **control_items);
+GList * extcap_parse_interfaces(char *output, GList **control_items);
/* Parse all sentences for DLTs */
-GList * extcap_parse_dlts(gchar *output);
+GList * extcap_parse_dlts(char *output);
#ifdef __cplusplus
}
diff --git a/file.c b/file.c
index de73f03083..263d342fc3 100644
--- a/file.c
+++ b/file.c
@@ -164,7 +164,7 @@ typedef struct {
gpointer user_data;
} cf_callback_data_t;
-static GList *cf_callbacks = NULL;
+static GList *cf_callbacks;
static void
cf_callback_invoke(int event, gpointer data)
@@ -264,6 +264,12 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
/* We're about to start reading the file. */
cf->state = FILE_READ_IN_PROGRESS;
+ /* If there was a pending redissection for the old file (there
+ * shouldn't be), clear it. cf_close() should have failed if the
+ * old file's read lock was held, but it doesn't hurt to clear it. */
+ cf->read_lock = FALSE;
+ cf->redissection_queued = RESCAN_NONE;
+
cf->provider.wth = wth;
cf->f_datalen = 0;
@@ -506,6 +512,8 @@ cf_read(capture_file *cf, gboolean reloading)
cf->filename, reloading);
return CF_READ_ERROR;
}
+ /* This is a full dissection, so clear any pending request for one. */
+ cf->redissection_queued = RESCAN_NONE;
cf->read_lock = TRUE;
/* Compile the current display filter.
@@ -1378,7 +1386,7 @@ typedef struct _callback_data_t {
gint64 f_len;
progdlg_t *progbar;
GTimer *prog_timer;
- gboolean stop_flag;
+ bool stop_flag;
} callback_data_t;
@@ -1642,6 +1650,10 @@ cf_redissect_packets(capture_file *cf)
}
if (cf->redissection_queued != RESCAN_NONE) {
/* Redissection is (already) queued, wait for "cf_read" to finish. */
+ /* XXX - what if whatever set and later clears read_lock is *not*
+ * cf_read, e.g. process_specified_records ? We need to handle a
+ * queued redissection there too like we do in cf_read.
+ */
return;
}
@@ -1723,7 +1735,7 @@ rescan_packets(capture_file *cf, const char *action, const char *action_item, gb
gboolean add_to_packet_list = FALSE;
gboolean compiled _U_;
guint32 frames_count;
- gboolean queued_rescan_type = RESCAN_NONE;
+ rescan_type queued_rescan_type = RESCAN_NONE;
if (cf->state == FILE_CLOSED || cf->state == FILE_READ_PENDING) {
return;
@@ -2232,7 +2244,7 @@ typedef enum {
static psp_return_t
process_specified_records(capture_file *cf, packet_range_t *range,
const char *string1, const char *string2, gboolean terminate_is_stop,
- gboolean (*callback)(capture_file *, frame_data *,
+ bool (*callback)(capture_file *, frame_data *,
wtap_rec *, Buffer *, void *),
void *callback_args,
gboolean show_progress_bar)
@@ -2259,6 +2271,14 @@ process_specified_records(capture_file *cf, packet_range_t *range,
/* Progress so far. */
progbar_val = 0.0f;
+ /* XXX - It should be ok to have multiple readers, so long as nothing
+ * frees the epan context, e.g. rescan_packets with redissect true,
+ * or anything that closes the file (including reload and certain forms
+ * of saving.) This is mostly to stop cf_save_records but should probably
+ * be handled by callers in order to allow multiple readers (e.g.,
+ * restarting taps after adding or changing one.) We should probably
+ * make this a real reader-writer lock.
+ */
if (cf->read_lock) {
ws_warning("Failing due to nested process_specified_records(\"%s\") call!", cf->filename);
return PSP_FAILED;
@@ -2363,7 +2383,7 @@ typedef struct {
column_info *cinfo;
} retap_callback_args_t;
-static gboolean
+static bool
retap_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec, Buffer *buf,
void *argsp)
{
@@ -2374,7 +2394,7 @@ retap_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec, Buffer *buf,
fdata, args->cinfo);
epan_dissect_reset(&args->edt);
- return TRUE;
+ return true;
}
cf_read_status_t
@@ -2392,6 +2412,15 @@ cf_retap_packets(capture_file *cf)
return CF_READ_ABORTED;
}
+ /* XXX - If cf->read_lock is true, process_specified_records will fail
+ * due to a nested call. We fail here so that we don't reset the tap
+ * listeners if this tap isn't going to succeed.
+ */
+ if (cf->read_lock) {
+ ws_warning("Failing due to nested process_specified_records(\"%s\") call!", cf->filename);
+ return CF_READ_ERROR;
+ }
+
cf_callback_invoke(cf_cb_file_retap_started, cf);
/* Do we have any tap listeners with filters? */
@@ -2428,6 +2457,7 @@ cf_retap_packets(capture_file *cf)
/* Reset the tap listeners. */
reset_tap_listeners();
+ uint32_t count = cf->count;
epan_dissect_init(&callback_args.edt, cf->epan, create_proto_tree, FALSE);
@@ -2436,6 +2466,34 @@ cf_retap_packets(capture_file *cf)
packet_range_init(&range, cf);
packet_range_process_init(&range);
+ if (cf->state == FILE_READ_IN_PROGRESS) {
+ /* We're not done with the sequential read of the file and might
+ * add more frames while process_specified_records is going. We
+ * don't want to tap new frames twice, so limit the range to the
+ * frames already here.
+ *
+ * cf_read sets read_lock so we don't tap in case of an offline
+ * file, but cf_continue_tail and cf_finish_tail don't, and we
+ * don't want them to, because tapping new packets in a live
+ * capture is a common use case.
+ *
+ * Note that most other users of process_specified_records (saving,
+ * printing) do want to process new packets, unlike taps.
+ */
+ if (count) {
+ char* range_str = g_strdup_printf("-%u", count);
+ packet_range_convert_str(&range, range_str);
+ g_free(range_str);
+ } else {
+ /* range_t treats a missing number as meaning 1, not 0, and
+ * reverses the order if backwards; thus the syntax -0 means
+ * 0-1, so to only take zero packets we do this.
+ */
+ packet_range_convert_str(&range, "0");
+ }
+ range.process = range_process_user_range;
+ }
+
ret = process_specified_records(cf, &range, "Recalculating statistics on",
"all packets", TRUE, retap_packet,
&callback_args, TRUE);
@@ -2479,7 +2537,7 @@ typedef struct {
epan_dissect_t edt;
} print_callback_args_t;
-static gboolean
+static bool
print_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec, Buffer *buf,
void *argsp)
{
@@ -2634,11 +2692,11 @@ print_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec, Buffer *buf,
args->print_formfeed = TRUE;
}
- return TRUE;
+ return true;
fail:
epan_dissect_reset(&args->edt);
- return FALSE;
+ return false;
}
cf_print_status_t
@@ -2828,7 +2886,7 @@ typedef struct {
json_dumper jdumper;
} write_packet_callback_args_t;
-static gboolean
+static bool
write_pdml_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec,
Buffer *buf, void *argsp)
{
@@ -2904,7 +2962,7 @@ cf_write_pdml_packets(capture_file *cf, print_args_t *print_args)
return CF_PRINT_OK;
}
-static gboolean
+static bool
write_psml_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec,
Buffer *buf, void *argsp)
{
@@ -2988,7 +3046,7 @@ cf_write_psml_packets(capture_file *cf, print_args_t *print_args)
return CF_PRINT_OK;
}
-static gboolean
+static bool
write_csv_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec,
Buffer *buf, void *argsp)
{
@@ -3064,7 +3122,7 @@ cf_write_csv_packets(capture_file *cf, print_args_t *print_args)
return CF_PRINT_OK;
}
-static gboolean
+static bool
carrays_write_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec,
Buffer *buf, void *argsp)
{
@@ -3126,7 +3184,7 @@ cf_write_carrays_packets(capture_file *cf, print_args_t *print_args)
return CF_PRINT_OK;
}
-static gboolean
+static bool
write_json_packet(capture_file *cf, frame_data *fdata, wtap_rec *rec,
Buffer *buf, void *argsp)
{
@@ -4849,7 +4907,7 @@ cf_goto_frame(capture_file *cf, guint fnumber, gboolean exact)
gboolean
cf_goto_framenum(capture_file *cf)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
guint32 framenum;
if (cf->finfo_selected) {
@@ -5210,7 +5268,7 @@ typedef struct {
* Returns TRUE if it succeeds, FALSE otherwise; if it fails, it pops
* up a message box for the failure.
*/
-static gboolean
+static bool
save_record(capture_file *cf, frame_data *fdata, wtap_rec *rec,
Buffer *buf, void *argsp)
{
diff --git a/fileset.c b/fileset.c
index 593d7d9f8a..5aa0a48041 100644
--- a/fileset.c
+++ b/fileset.c
@@ -39,7 +39,7 @@ typedef struct _fileset {
*
* XXX This should probably be per-main-window instead of global.
*/
-static fileset set = { NULL, NULL};
+static fileset set;
/*
* Given a stat structure, get the creation time of the file if available,
@@ -75,7 +75,7 @@ fileset_filename_match_pattern(const char *fname, char **prefix, char **suffix,
GError *gerr = NULL;
regex = g_regex_new(pattern,
(GRegexCompileFlags)(G_REGEX_OPTIMIZE | G_REGEX_ANCHORED),
- G_REGEX_MATCH_ANCHORED, NULL);
+ G_REGEX_MATCH_ANCHORED, &gerr);
if (gerr) {
ws_warning("failed to compile regex: %s", gerr->message);
g_error_free(gerr);
@@ -88,7 +88,7 @@ fileset_filename_match_pattern(const char *fname, char **prefix, char **suffix,
GError *gerr = NULL;
regex2 = g_regex_new(pattern2,
(GRegexCompileFlags)(G_REGEX_OPTIMIZE | G_REGEX_ANCHORED),
- G_REGEX_MATCH_ANCHORED, NULL);
+ G_REGEX_MATCH_ANCHORED, &gerr);
if (gerr) {
ws_warning("failed to compile regex: %s", gerr->message);
g_error_free(gerr);
@@ -166,7 +166,7 @@ fileset_filename_match_pattern(const char *fname, char **prefix, char **suffix,
/* test if both files could be in the same file set */
/* (fname2 must already be in correct shape) */
-static gboolean
+static bool
fileset_is_file_in_set(const char *fname1, const char *fname2)
{
char *pfx1;
@@ -175,18 +175,18 @@ fileset_is_file_in_set(const char *fname1, const char *fname2)
char *sfx2;
fileset_match_t match1;
fileset_match_t match2;
- gboolean ret = FALSE;
+ bool ret = false;
match1 = fileset_filename_match_pattern(fname1, &pfx1, &sfx1, NULL);
if (match1 == FILESET_NO_MATCH) {
- return FALSE;
+ return false;
}
match2 = fileset_filename_match_pattern(fname2, &pfx2, &sfx2, NULL);
/* just to be sure ... */
ws_assert(match2 != FILESET_NO_MATCH);
if (match1 == match2 && g_strcmp0(pfx1, pfx2) == 0 && g_strcmp0(sfx1, sfx2) == 0) {
- ret = TRUE;
+ ret = true;
}
g_free(pfx1);
@@ -198,7 +198,7 @@ fileset_is_file_in_set(const char *fname1, const char *fname2)
}
/* GCompareFunc helper for g_list_find_custom() */
-static gint
+static int
fileset_find_by_path(gconstpointer a, gconstpointer b)
{
const fileset_entry *entry;
@@ -244,7 +244,7 @@ fileset_update_file(const char *path)
/* we know this file is part of the set, so add it */
static fileset_entry *
-fileset_add_file(const char *dirname, const char *fname, gboolean current)
+fileset_add_file(const char *dirname, const char *fname, bool current)
{
int fh, result;
ws_statb64 buf;
@@ -284,7 +284,7 @@ fileset_add_file(const char *dirname, const char *fname, gboolean current)
/* compare two list entries by creation date/time (through filename) */
-static gint
+static int
fileset_sort_compare(gconstpointer a, gconstpointer b)
{
const fileset_entry *entry_a = (const fileset_entry *)a;
@@ -318,7 +318,7 @@ fileset_add_dir(const char *fname, void *window)
WS_DIRENT *file; /* current file */
const char *name;
GString *dirname;
- gchar *fname_dup;
+ char *fname_dup;
/* get (convert) directory name, but don't touch the given string */
@@ -345,11 +345,11 @@ fileset_add_dir(const char *fname, void *window)
} /* if */
} else {
/* no, this is a "standalone file", just add this one */
- fileset_add_file(dirname->str, get_basename(fname), TRUE /* current */);
+ fileset_add_file(dirname->str, get_basename(fname), true /* current */);
/* don't add the file to the dialog here, this will be done in fileset_update_dlg() below */
}
- g_string_free(dirname, TRUE /* free_segment */);
+ g_string_free(dirname, true /* free_segment */);
/* sort entries by creation time */
set.entries = g_list_sort(set.entries, fileset_sort_compare);
@@ -431,13 +431,13 @@ fileset_get_previous(void)
/* delete a single entry */
-static void fileset_entry_delete(gpointer data, gpointer user_data _U_)
+static void fileset_entry_delete(void *data, void *user_data _U_)
{
fileset_entry *entry = (fileset_entry *)data;
- g_free( (gpointer) entry->fullname);
+ g_free( (void *) entry->fullname);
entry->fullname = NULL;
- g_free( (gpointer) entry->name);
+ g_free( (void *) entry->name);
entry->name = NULL;
g_free(entry);
}
@@ -455,7 +455,7 @@ void fileset_delete(void)
/* free the rest */
if(set.dirname) {
- g_free( (gpointer) set.dirname);
+ g_free( (void *) set.dirname);
set.dirname = NULL;
}
}
diff --git a/fileset.h b/fileset.h
index 84c075d206..06680bfc99 100644
--- a/fileset.h
+++ b/fileset.h
@@ -12,6 +12,9 @@
#ifndef __FILESET_H__
#define __FILESET_H__
+#include <inttypes.h>
+#include <time.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -21,8 +24,8 @@ typedef struct _fileset_entry {
char *name; /* File name without path (g_strdup'ed) */
time_t ctime; /* create time */
time_t mtime; /* last modified time */
- gint64 size; /* size of file in bytes */
- gboolean current; /* is this the currently loaded file? */
+ int64_t size; /* size of file in bytes */
+ bool current; /* is this the currently loaded file? */
} fileset_entry;
typedef enum {
diff --git a/fix/FIX.xml b/fix/FIX.xml
index 1378cdc019..2216397640 100644
--- a/fix/FIX.xml
+++ b/fix/FIX.xml
@@ -7393,7 +7393,7 @@
<field number='393' name='TotNoRelatedSym' type='INT' />
<field number='394' name='BidType' type='INT'>
<value enum='1' description='NON_DISCLOSED_STYLE' />
- <value enum='2' description='DISCLOSED_SYTLE' />
+ <value enum='2' description='DISCLOSED_STYLE' />
<value enum='3' description='NO_BIDDING_PROCESS' />
</field>
<field number='395' name='NumTickets' type='INT' />
@@ -7574,7 +7574,7 @@
<value enum='12' description='EXECUTING_TRADER' />
<value enum='13' description='ORDER_ORIGINATION_FIRM' />
<value enum='14' description='GIVEUP_CLEARING_FIRM' />
- <value enum='15' description='CORRESPONDANT_CLEARING_FIRM' />
+ <value enum='15' description='CORRESPONDENT_CLEARING_FIRM' />
<value enum='16' description='EXECUTING_SYSTEM' />
<value enum='17' description='CONTRA_FIRM' />
<value enum='18' description='CONTRA_CLEARING_FIRM' />
diff --git a/fix/FIX43.xml b/fix/FIX43.xml
index beb1a53689..d64f8e21d0 100644
--- a/fix/FIX43.xml
+++ b/fix/FIX43.xml
@@ -3578,7 +3578,7 @@
<value enum="12" description="EXECUTING_TRADER" />
<value enum="13" description="ORDER_ORIGINATION_FIRM" />
<value enum="14" description="GIVEUP_CLEARING_FIRM" />
- <value enum="15" description="CORRESPONDANT_CLEARING_FIRM" />
+ <value enum="15" description="CORRESPONDENT_CLEARING_FIRM" />
<value enum="16" description="EXECUTING_SYSTEM" />
<value enum="17" description="CONTRA_FIRM" />
<value enum="18" description="CONTRA_CLEARING_FIRM" />
diff --git a/fix/FIX50.xml b/fix/FIX50.xml
index 3495dc6c92..afbf303637 100644
--- a/fix/FIX50.xml
+++ b/fix/FIX50.xml
@@ -6027,7 +6027,7 @@
<field number='393' name='TotNoRelatedSym' type='INT' />
<field number='394' name='BidType' type='INT'>
<value enum='1' description='NON_DISCLOSED_STYLE' />
- <value enum='2' description='DISCLOSED_SYTLE' />
+ <value enum='2' description='DISCLOSED_STYLE' />
<value enum='3' description='NO_BIDDING_PROCESS' />
</field>
<field number='395' name='NumTickets' type='INT' />
@@ -6208,7 +6208,7 @@
<value enum='12' description='EXECUTING_TRADER' />
<value enum='13' description='ORDER_ORIGINATION_FIRM' />
<value enum='14' description='GIVEUP_CLEARING_FIRM' />
- <value enum='15' description='CORRESPONDANT_CLEARING_FIRM' />
+ <value enum='15' description='CORRESPONDENT_CLEARING_FIRM' />
<value enum='16' description='EXECUTING_SYSTEM' />
<value enum='17' description='CONTRA_FIRM' />
<value enum='18' description='CONTRA_CLEARING_FIRM' />
diff --git a/fix/FIX50SP1.xml b/fix/FIX50SP1.xml
index 64d8f9ac16..adf4507143 100644
--- a/fix/FIX50SP1.xml
+++ b/fix/FIX50SP1.xml
@@ -6844,7 +6844,7 @@
<field number='393' name='TotNoRelatedSym' type='INT' />
<field number='394' name='BidType' type='INT'>
<value enum='1' description='NON_DISCLOSED_STYLE' />
- <value enum='2' description='DISCLOSED_SYTLE' />
+ <value enum='2' description='DISCLOSED_STYLE' />
<value enum='3' description='NO_BIDDING_PROCESS' />
</field>
<field number='395' name='NumTickets' type='INT' />
@@ -7025,7 +7025,7 @@
<value enum='12' description='EXECUTING_TRADER' />
<value enum='13' description='ORDER_ORIGINATION_FIRM' />
<value enum='14' description='GIVEUP_CLEARING_FIRM' />
- <value enum='15' description='CORRESPONDANT_CLEARING_FIRM' />
+ <value enum='15' description='CORRESPONDENT_CLEARING_FIRM' />
<value enum='16' description='EXECUTING_SYSTEM' />
<value enum='17' description='CONTRA_FIRM' />
<value enum='18' description='CONTRA_CLEARING_FIRM' />
diff --git a/fix/FIX50SP2.xml b/fix/FIX50SP2.xml
index fa0f115fb2..cf50a427ab 100644
--- a/fix/FIX50SP2.xml
+++ b/fix/FIX50SP2.xml
@@ -7327,7 +7327,7 @@
<field number='393' name='TotNoRelatedSym' type='INT' />
<field number='394' name='BidType' type='INT'>
<value enum='1' description='NON_DISCLOSED_STYLE' />
- <value enum='2' description='DISCLOSED_SYTLE' />
+ <value enum='2' description='DISCLOSED_STYLE' />
<value enum='3' description='NO_BIDDING_PROCESS' />
</field>
<field number='395' name='NumTickets' type='INT' />
@@ -7508,7 +7508,7 @@
<value enum='12' description='EXECUTING_TRADER' />
<value enum='13' description='ORDER_ORIGINATION_FIRM' />
<value enum='14' description='GIVEUP_CLEARING_FIRM' />
- <value enum='15' description='CORRESPONDANT_CLEARING_FIRM' />
+ <value enum='15' description='CORRESPONDENT_CLEARING_FIRM' />
<value enum='16' description='EXECUTING_SYSTEM' />
<value enum='17' description='CONTRA_FIRM' />
<value enum='18' description='CONTRA_CLEARING_FIRM' />
diff --git a/fix/Values.xsl b/fix/Values.xsl
index 106eb68b37..d95a5f07f1 100644
--- a/fix/Values.xsl
+++ b/fix/Values.xsl
@@ -14,7 +14,6 @@ Syntax: xsltproc Values.xsl FIX44.xml
typedef struct _fix_field {
int tag; /* FIX tag */
- int hf_id;
int type; /* */
const void *table;
} fix_field;
@@ -24,7 +23,7 @@ typedef struct _fix_field {
</xsl:template>
<!--
-translate(@description,$uppercase,$smallcase)
+translate(@description,$uppercase,$smallcase)
-->
<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
@@ -59,7 +58,7 @@ translate(@description,$uppercase,$smallcase)
<xsl:template match="fix/messages">
static const string_string messages_val[] = {<xsl:for-each select="message">
{ "<xsl:value-of select="@msgtype"/>", "<xsl:value-of select="@name"/>" },</xsl:for-each>
- { "", NULL }
+ { 0, NULL }
};
</xsl:template>
diff --git a/fix/hfDecl.xsl b/fix/hfDecl.xsl
index b44d32e85c..ae50d80bcd 100644
--- a/fix/hfDecl.xsl
+++ b/fix/hfDecl.xsl
@@ -6,14 +6,8 @@
<xsl:template match="text()"/>
- <xsl:template match="/">
-static fix_field fix_fields[] = {
-<xsl:apply-templates/>
- };
-</xsl:template>
-
-
<xsl:template match="fields">
+static const fix_field fix_fields[] = {
<xsl:for-each select="field">
<xsl:sort select="@number" data-type="number"/>
<xsl:choose>
@@ -25,10 +19,15 @@ static fix_field fix_fields[] = {
<xsl:otherwise>2</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- { <xsl:value-of select="@number"/>, -1, <xsl:copy-of select="$val_type" />, <xsl:value-of select="@name"/>_val },</xsl:when>
+ { <xsl:value-of select="@number"/>, <xsl:copy-of select="$val_type" />, <xsl:value-of select="@name"/>_val },</xsl:when>
<xsl:otherwise>
- { <xsl:value-of select="@number"/>, -1, 0, NULL }, /* <xsl:value-of select="@name"/> */</xsl:otherwise>
+ { <xsl:value-of select="@number"/>, 0, NULL }, /* <xsl:value-of select="@name"/> */</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
+ };
+
+<xsl:text>static int fix_hf[</xsl:text>
+<xsl:value-of select="count( field )"/>
+<xsl:text>];</xsl:text>
</xsl:template>
</xsl:stylesheet>
diff --git a/fix/hfField.xsl b/fix/hfField.xsl
index 15e1817cca..a1edce22af 100644
--- a/fix/hfField.xsl
+++ b/fix/hfField.xsl
@@ -29,7 +29,7 @@ static hf_register_info hf_FIX[] = {
<xsl:template match="fields">
<xsl:for-each select="field">
<xsl:sort select="@number" data-type="number"/>
- { &amp;fix_fields[<xsl:value-of select="position( ) -1" />].hf_id,
+ { &amp;fix_hf[<xsl:value-of select="position( ) -1" />],
{ "<xsl:value-of select="@name"/> (<xsl:value-of select="@number"/>)", "fix.<xsl:value-of select="@name"/>",
FT_STRING, BASE_NONE, NULL, 0x00,
NULL, HFILL }
diff --git a/frame_tvbuff.c b/frame_tvbuff.c
index 1aec22c22d..dd5fe02671 100644
--- a/frame_tvbuff.c
+++ b/frame_tvbuff.c
@@ -53,7 +53,7 @@ frame_read(struct tvb_frame *frame_tvb, wtap_rec *rec, Buffer *buf)
return ok;
}
-static GPtrArray *buffer_cache = NULL;
+static GPtrArray *buffer_cache;
static void
frame_cache(struct tvb_frame *frame_tvb)
diff --git a/packaging/debian/control b/packaging/debian/control
index 71099c5930..bb04419d4a 100644
--- a/packaging/debian/control
+++ b/packaging/debian/control
@@ -19,7 +19,7 @@ Build-Depends: asciidoctor,
libglib2.0-dev,
libgnutls28-dev,
libkrb5-dev,
- liblua5.3-dev,
+ liblua5.4-dev | liblua5.3-dev,
liblz4-dev,
libmaxminddb-dev,
libminizip-dev,
@@ -54,6 +54,7 @@ Build-Depends: asciidoctor,
qt6-base-dev,
qt6-multimedia-dev,
qt6-tools-dev,
+ quilt,
xsltproc,
libfalcosecurity0-dev <pkg.wireshark.logray>
Build-Conflicts: libsnmp4.2-dev, libsnmp-dev
@@ -95,12 +96,13 @@ Description: network traffic analyzer - graphical interface
packets off the wire. Wireshark can decode too many protocols to list
here.
+# We override the binary version, so use the source version here.
Package: logray
Build-Profiles: <pkg.wireshark.logray>
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
- wireshark-common (= ${binary:Version}),
+ wireshark-common (= ${source:Version}),
libfalcosecurity0t64,
libqt6svg6
# Recommends: libqt6multimedia6
diff --git a/packaging/debian/headers-check.c b/packaging/debian/headers-check.c
index 9ed391a19d..0f12376722 100644
--- a/packaging/debian/headers-check.c
+++ b/packaging/debian/headers-check.c
@@ -13,4 +13,4 @@
#include <epan/stats_tree.h>
#include <epan/packet.h>
#include <epan/prefs.h>
-
+#include <epan/dfilter/dfilter.h>
diff --git a/packaging/debian/libwireshark0.install b/packaging/debian/libwireshark0.install
index ca6d72d836..b31df7d9f2 100644
--- a/packaging/debian/libwireshark0.install
+++ b/packaging/debian/libwireshark0.install
@@ -1,3 +1,3 @@
usr/lib/*/libwireshark.so.*
-usr/lib/*/wireshark/plugins/codecs/*.so.*
-usr/lib/*/wireshark/plugins/epan/*.so.*
+usr/lib/*/wireshark/plugins/*/codecs/*.so
+usr/lib/*/wireshark/plugins/*/epan/*.so
diff --git a/packaging/debian/libwiretap0.install b/packaging/debian/libwiretap0.install
index 7dd37d1e1b..f9d702aa79 100644
--- a/packaging/debian/libwiretap0.install
+++ b/packaging/debian/libwiretap0.install
@@ -1,2 +1,2 @@
usr/lib/*/libwiretap.so.*
-usr/lib/*/wireshark/plugins/wiretap/*.so.*
+usr/lib/*/wireshark/plugins/*/wiretap/*.so
diff --git a/packaging/debian/logray.config b/packaging/debian/logray.config
new file mode 100644
index 0000000000..12dca56d4d
--- /dev/null
+++ b/packaging/debian/logray.config
@@ -0,0 +1,10 @@
+#! /bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_input high logray/install-setuid || true
+db_go
+
+exit 0
diff --git a/packaging/debian/logray.postinst.in b/packaging/debian/logray.postinst.in
new file mode 100644
index 0000000000..98f72ab2cf
--- /dev/null
+++ b/packaging/debian/logray.postinst.in
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+set -e
+
+# In order to capture system calls via falcosecurity-scap-dkms, we
+# currently need read+write access to /dev/scap* and read access to
+# various files under /proc, including /proc/<pid>/*, similar to
+# the requirements described at
+# https://github.com/draios/sysdig/wiki/How%20to%20Install%20Sysdig%20for%20Linux#use-sysdig-as-non-root
+#
+# Provide an option to install falcodump setuid root for now.
+# Hopefully at some point we'll be able to switch to capabilities.
+# https://falco.org/docs/install-operate/running/#least-privileged
+
+# There's no corresponding logray.postrm script because the "scap" group
+# might be shared with falcosecurity-scap-dkms, so we don't want to
+# remove it here.
+# Also, there are arguments against removing groups in general:
+# https://wiki.debian.org/AccountHandlingInMaintainerScripts
+
+. /usr/share/debconf/confmodule
+PROGRAM=$(dpkg-divert --truename /usr/lib/@DEB_HOST_MULTIARCH@/logray/extcap/falcodump)
+GROUP=scap
+
+if ! dpkg-statoverride --list $PROGRAM > /dev/null; then
+ db_get logray/install-setuid
+ if [ -e "$PROGRAM" ]; then
+ if [ "$RET" = "false" ] ; then
+ chown root:root $PROGRAM
+ chmod u=rwx,go=rx $PROGRAM
+ else
+ if ! addgroup --quiet --system $GROUP; then
+ if ! getent group $GROUP > /dev/null; then
+ db_input high logray/addgroup-failed || true
+ db_go
+ exit 1
+ else
+ db_input high logray/group-is-user-group || true
+ db_go
+ fi
+ fi
+ chown root:$GROUP $PROGRAM
+ chmod u=rwxs,g=rx,o=r $PROGRAM
+ fi
+ fi
+else
+ dpkg-statoverride --list $PROGRAM
+fi
+
+#DEBHELPER#
diff --git a/packaging/debian/po/cs.po b/packaging/debian/po/cs.po
index 186c9f8023..8d88e03a98 100644
--- a/packaging/debian/po/cs.po
+++ b/packaging/debian/po/cs.po
@@ -1,22 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Martin Sin <martin.sin@zshk.cz>, 2009
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Czech (http://www.transifex.com/wireshark/wireshark/language/cs/)\n"
+"Language-Team: Czech (http://www.transifex.com/wireshark/wireshark/language/"
+"cs/)\n"
+"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: cs\n"
-"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
+"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#. Type: boolean
#. Description
@@ -29,26 +31,39 @@ msgstr "Mohou obyčejní uživatelé zachytávat pakety?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap můžete nainstalovat tak, že budou moci zachytávat pakety pouze členové skupiny „wireshark“. Tento způsob zachytávání paketů pomocí Wireshark/Tshark se obecně doporučuje. Druhou možností je spuštění programu přímo pod superuživatelem, to ovšem nelze doporučit, protože je pak pod tímto uživatelem spuštěna větší část potencionálně nebezpečného kódu."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap můžete nainstalovat tak, že budou moci zachytávat pakety pouze "
+"členové skupiny „wireshark“. Tento způsob zachytávání paketů pomocí "
+"Wireshark/Tshark se obecně doporučuje. Druhou možností je spuštění programu "
+"přímo pod superuživatelem, to ovšem nelze doporučit, protože je pak pod "
+"tímto uživatelem spuštěna větší část potencionálně nebezpečného kódu."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Pro více informací se prosím podívejte na /usr/share/doc/wireshark-common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Pro více informací se prosím podívejte na /usr/share/doc/wireshark-common/"
+"README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Povolení této možnosti může být bezpečnostním rizikem a tak je ve výchozím nastavení vypnuté. Jste-li na pochybách, doporučuje se nechat volbu vypnutou."
+msgstr ""
+"Povolení této možnosti může být bezpečnostním rizikem a tak je ve výchozím "
+"nastavení vypnuté. Jste-li na pochybách, doporučuje se nechat volbu vypnutou."
#. Type: error
#. Description
@@ -127,8 +142,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -136,3 +151,75 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Mohou obyčejní uživatelé zachytávat pakety?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap můžete nainstalovat tak, že budou moci zachytávat pakety pouze "
+"členové skupiny „wireshark“. Tento způsob zachytávání paketů pomocí "
+"Wireshark/Tshark se obecně doporučuje. Druhou možností je spuštění programu "
+"přímo pod superuživatelem, to ovšem nelze doporučit, protože je pak pod "
+"tímto uživatelem spuštěna větší část potencionálně nebezpečného kódu."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/da.po b/packaging/debian/po/da.po
index f4b981fb42..56ab9ad556 100644
--- a/packaging/debian/po/da.po
+++ b/packaging/debian/po/da.po
@@ -1,21 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Joe Hansen <joedalton2@yahoo.dk>, 2010
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Danish (http://www.transifex.com/wireshark/wireshark/language/da/)\n"
+"Language-Team: Danish (http://www.transifex.com/wireshark/wireshark/language/"
+"da/)\n"
+"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
@@ -29,26 +30,39 @@ msgstr "Skal brugere, der ikke er superbrugere, kunne fange pakker?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap kan installeres på en måde som tillader medlemmer af systemgruppen »wireshark« at fange pakker. Dette anbefales frem for alternativet med at køre Wireshark/Tshark direkte som rod (root), da mindre af koden vil køre med ophøjede privilegier."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap kan installeres på en måde som tillader medlemmer af systemgruppen "
+"»wireshark« at fange pakker. Dette anbefales frem for alternativet med at "
+"køre Wireshark/Tshark direkte som rod (root), da mindre af koden vil køre "
+"med ophøjede privilegier."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "For mere detaljerede information se venligst /usr/share/doc/wireshark-common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"For mere detaljerede information se venligst /usr/share/doc/wireshark-common/"
+"README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Aktivering af denne funktion kan udgøre en sikkerhedsrisiko, så som standard er den deaktiveret. Hvis du er i tvivl, anbefales det at lade den være deaktiveret."
+msgstr ""
+"Aktivering af denne funktion kan udgøre en sikkerhedsrisiko, så som standard "
+"er den deaktiveret. Hvis du er i tvivl, anbefales det at lade den være "
+"deaktiveret."
#. Type: error
#. Description
@@ -127,8 +141,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -136,3 +150,74 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Skal brugere, der ikke er superbrugere, kunne fange pakker?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap kan installeres på en måde som tillader medlemmer af systemgruppen "
+"»wireshark« at fange pakker. Dette anbefales frem for alternativet med at "
+"køre Wireshark/Tshark direkte som rod (root), da mindre af koden vil køre "
+"med ophøjede privilegier."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/de.po b/packaging/debian/po/de.po
index d01d44c24e..e564310cbc 100644
--- a/packaging/debian/po/de.po
+++ b/packaging/debian/po/de.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Dominik Eismann <dominik.eismann@posteo.de>, 2016
# Dominik Eismann <dominik.eismann@posteo.de>, 2016
@@ -13,14 +13,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: uhei\n"
-"Language-Team: German (http://www.transifex.com/wireshark/wireshark/language/de/)\n"
+"Language-Team: German (http://www.transifex.com/wireshark/wireshark/language/"
+"de/)\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
@@ -34,26 +35,39 @@ msgstr "Soll es normalen Benutzern erlaubt sein, Pakete aufzuzeichnen?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap kann so installiert werden, dass es Mitgliedern der Systemgruppe \"wireshark\" erlaubt ist Pakete aufzuzeichnen. Da hier weniger Programmcode mit erhöhten Rechten ausgeführt wird ist diese Option eher zu empfehlen anstatt Wireshark/Tshark direkt als root-Benutzer zu starten."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap kann so installiert werden, dass es Mitgliedern der Systemgruppe "
+"\"wireshark\" erlaubt ist Pakete aufzuzeichnen. Da hier weniger Programmcode "
+"mit erhöhten Rechten ausgeführt wird ist diese Option eher zu empfehlen "
+"anstatt Wireshark/Tshark direkt als root-Benutzer zu starten."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Weitere detaillierte Informationen sind unter /usr/share/doc/wireshark-common/README.Debian zu finden."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Weitere detaillierte Informationen sind unter /usr/share/doc/wireshark-"
+"common/README.Debian zu finden."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Da das Aktivieren dieser Funktion ein Sicherheitsrisiko darstellen kann, ist es standardmäßig deaktiviert. Es wird Empfohlen dies im Zweifelsfall deaktiviert zu lassen."
+msgstr ""
+"Da das Aktivieren dieser Funktion ein Sicherheitsrisiko darstellen kann, ist "
+"es standardmäßig deaktiviert. Es wird Empfohlen dies im Zweifelsfall "
+"deaktiviert zu lassen."
#. Type: error
#. Description
@@ -67,7 +81,10 @@ msgstr "Erstellen der wireshark Systemgruppe fehlgeschlagen"
msgid ""
"The wireshark group does not exist, and creating it failed, so Wireshark "
"cannot be configured to capture traffic as an unprivileged user."
-msgstr "Die wireshark Gruppe existiert nicht und konnte nicht erstellt werden. Wireshark kann daher nicht so konfiguriert werden, dass ein Mitschnitt von Datenverkehr auch einem unpreviligiertem Benutzer möglich ist."
+msgstr ""
+"Die wireshark Gruppe existiert nicht und konnte nicht erstellt werden. "
+"Wireshark kann daher nicht so konfiguriert werden, dass ein Mitschnitt von "
+"Datenverkehr auch einem unpreviligiertem Benutzer möglich ist."
#. Type: error
#. Description
@@ -75,7 +92,9 @@ msgstr "Die wireshark Gruppe existiert nicht und konnte nicht erstellt werden. W
msgid ""
"Please create the wireshark system group and try configuring wireshark-"
"common again."
-msgstr "Bitte erstellen Sie die wireshark Systemgruppe und rekonfigurieren Sie wireshark-common nochmals."
+msgstr ""
+"Bitte erstellen Sie die wireshark Systemgruppe und rekonfigurieren Sie "
+"wireshark-common nochmals."
#. Type: error
#. Description
@@ -89,7 +108,9 @@ msgstr "Die wireshark Gruppe ist eine Systemgruppe"
msgid ""
"The wireshark group exists as a user group, but the preferred configuration "
"is for it to be created as a system group."
-msgstr "Die wireshark Gruppe existiert als eine Benutzergruppe. Die bevorzugte Konfiguration sieht vor, dass die Gruppe als Systemgruppe erstellt wird."
+msgstr ""
+"Die wireshark Gruppe existiert als eine Benutzergruppe. Die bevorzugte "
+"Konfiguration sieht vor, dass die Gruppe als Systemgruppe erstellt wird."
#. Type: error
#. Description
@@ -97,7 +118,9 @@ msgstr "Die wireshark Gruppe existiert als eine Benutzergruppe. Die bevorzugte K
msgid ""
"As a result, purging wireshark-common will not remove the wireshark group, "
"but everything else should work properly."
-msgstr "Als Ergebnis wird ein Löschen von wireshark-common nicht die Gruppe wireshark entfernen. Alles andere sollte normal funktionieren."
+msgstr ""
+"Als Ergebnis wird ein Löschen von wireshark-common nicht die Gruppe "
+"wireshark entfernen. Alles andere sollte normal funktionieren."
#. Type: error
#. Description
@@ -111,7 +134,10 @@ msgstr "Setzen der Einstellungen für dumpcap fehlgeschlagen"
msgid ""
"The attempt to use Linux capabilities to grant packet-capturing privileges "
"to the dumpcap binary failed. Instead, it has had the set-user-id bit set."
-msgstr "Der Versuch die Linux Fähigkeiten zum Berechtigen von Paket-Mitschnitten für dumpcamp zu vergeben ist gescheitert. Es wurde daher das Set-User-ID Bit gesetzt."
+msgstr ""
+"Der Versuch die Linux Fähigkeiten zum Berechtigen von Paket-Mitschnitten für "
+"dumpcamp zu vergeben ist gescheitert. Es wurde daher das Set-User-ID Bit "
+"gesetzt."
#. Type: error
#. Description
@@ -126,18 +152,127 @@ msgid ""
"When the wireshark-common package is configured to allow non-superusers to "
"capture packets the postinst script of wireshark-common creates the "
"wireshark group as a system group."
-msgstr "Wenn das wireshark-common Paket so konfiguriert wird, damit einem Nicht-Superuser das Mitschneiden von Paketen erlaubt ist, dann wird das postinst Skript von wireshark-common die wireshark Gruppe als eine Systemgruppe erstellen."
+msgstr ""
+"Wenn das wireshark-common Paket so konfiguriert wird, damit einem Nicht-"
+"Superuser das Mitschneiden von Paketen erlaubt ist, dann wird das postinst "
+"Skript von wireshark-common die wireshark Gruppe als eine Systemgruppe "
+"erstellen."
#. Type: error
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
-msgstr "Auf diesem System ist die wireshark Gruppe eine Benutzergruppe anstatt einer Systemgruppe. Das Löschen von wireshark-common wird die Gruppe daher nicht entfernen."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
+msgstr ""
+"Auf diesem System ist die wireshark Gruppe eine Benutzergruppe anstatt einer "
+"Systemgruppe. Das Löschen von wireshark-common wird die Gruppe daher nicht "
+"entfernen."
#. Type: error
#. Description
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
-msgstr "Wenn die Gruppe nicht mehr länger benötigt wird entfernen Sie diese bitte manuell."
+msgstr ""
+"Wenn die Gruppe nicht mehr länger benötigt wird entfernen Sie diese bitte "
+"manuell."
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Soll es normalen Benutzern erlaubt sein, Pakete aufzuzeichnen?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap kann so installiert werden, dass es Mitgliedern der Systemgruppe "
+"\"wireshark\" erlaubt ist Pakete aufzuzeichnen. Da hier weniger Programmcode "
+"mit erhöhten Rechten ausgeführt wird ist diese Option eher zu empfehlen "
+"anstatt Wireshark/Tshark direkt als root-Benutzer zu starten."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid "Creating the wireshark system group failed"
+msgid "Creating the \"scap\" system group failed"
+msgstr "Erstellen der wireshark Systemgruppe fehlgeschlagen"
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group does not exist, and creating it failed, so Wireshark "
+#| "cannot be configured to capture traffic as an unprivileged user."
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+"Die wireshark Gruppe existiert nicht und konnte nicht erstellt werden. "
+"Wireshark kann daher nicht so konfiguriert werden, dass ein Mitschnitt von "
+"Datenverkehr auch einem unpreviligiertem Benutzer möglich ist."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "Please create the wireshark system group and try configuring wireshark-"
+#| "common again."
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+"Bitte erstellen Sie die wireshark Systemgruppe und rekonfigurieren Sie "
+"wireshark-common nochmals."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid "The wireshark group is a system group"
+msgid "The \"scap\" group is a system group"
+msgstr "Die wireshark Gruppe ist eine Systemgruppe"
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group exists as a user group, but the preferred "
+#| "configuration is for it to be created as a system group."
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+"Die wireshark Gruppe existiert als eine Benutzergruppe. Die bevorzugte "
+"Konfiguration sieht vor, dass die Gruppe als Systemgruppe erstellt wird."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "As a result, purging wireshark-common will not remove the wireshark "
+#| "group, but everything else should work properly."
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
+"Als Ergebnis wird ein Löschen von wireshark-common nicht die Gruppe "
+"wireshark entfernen. Alles andere sollte normal funktionieren."
diff --git a/packaging/debian/po/es.po b/packaging/debian/po/es.po
index 785bb5a933..25691f70df 100644
--- a/packaging/debian/po/es.po
+++ b/packaging/debian/po/es.po
@@ -1,54 +1,70 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Francisco Javier Cuadrado <fcocuadrado@gmail.com>, 2009-2010
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Spanish (http://www.transifex.com/wireshark/wireshark/language/es/)\n"
+"Language-Team: Spanish (http://www.transifex.com/wireshark/wireshark/"
+"language/es/)\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
#. Description
#: ../templates:2001
msgid "Should non-superusers be able to capture packets?"
-msgstr "¿Los usuarios sin privilegios de administración deberían poder capturar paquetes?"
+msgstr ""
+"¿Los usuarios sin privilegios de administración deberían poder capturar "
+"paquetes?"
#. Type: boolean
#. Description
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap se puede instalar de un modo que permite a los miembros del grupo «wireshark» capturar paquetes. Se recomienda usar esto en lugar de ejecutar Wireshark/Tshark directamente como administrador («root»), porque se ejecutará menos código con privilegios de administración."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap se puede instalar de un modo que permite a los miembros del grupo "
+"«wireshark» capturar paquetes. Se recomienda usar esto en lugar de ejecutar "
+"Wireshark/Tshark directamente como administrador («root»), porque se "
+"ejecutará menos código con privilegios de administración."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Para más información, vea el archivo «/usr/share/doc/wireshark-common/README.Debian»."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Para más información, vea el archivo «/usr/share/doc/wireshark-common/README."
+"Debian»."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Activar esta funcionalidad puede ser un riesgo de seguridad, por lo que de forma predeterminada está desactivada. En caso de duda, se recomienda dejarla desactivada."
+msgstr ""
+"Activar esta funcionalidad puede ser un riesgo de seguridad, por lo que de "
+"forma predeterminada está desactivada. En caso de duda, se recomienda "
+"dejarla desactivada."
#. Type: error
#. Description
@@ -127,8 +143,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -136,3 +152,76 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr ""
+"¿Los usuarios sin privilegios de administración deberían poder capturar "
+"paquetes?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap se puede instalar de un modo que permite a los miembros del grupo "
+"«wireshark» capturar paquetes. Se recomienda usar esto en lugar de ejecutar "
+"Wireshark/Tshark directamente como administrador («root»), porque se "
+"ejecutará menos código con privilegios de administración."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/eu.po b/packaging/debian/po/eu.po
index c18b3a8dc8..3ee42db2ba 100644
--- a/packaging/debian/po/eu.po
+++ b/packaging/debian/po/eu.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>, 2010
# Piarres Beobide <pi@beobide.net>, 2009
@@ -9,14 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Basque (http://www.transifex.com/wireshark/wireshark/language/eu/)\n"
+"Language-Team: Basque (http://www.transifex.com/wireshark/wireshark/language/"
+"eu/)\n"
+"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: eu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
@@ -30,26 +31,39 @@ msgstr "Supererabiltzailea ez direnak paketeak kapturatzeko gai izan daitezke?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Sistemako \"wireshark\" taldeko partaideek paketeak kapturatzea baimentzeko modu batean instala daiteke Dumpcap. Wireshark/Tshark erabiliz paketeak supererabiltzaile gisa kapturatzeko modu hau gomendatuta dago, pribilegio handiekin kode gutxiago exekutatzen da eta."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Sistemako \"wireshark\" taldeko partaideek paketeak kapturatzea baimentzeko "
+"modu batean instala daiteke Dumpcap. Wireshark/Tshark erabiliz paketeak "
+"supererabiltzaile gisa kapturatzeko modu hau gomendatuta dago, pribilegio "
+"handiekin kode gutxiago exekutatzen da eta."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Informazio gehiagorako, irakurri usr/share/doc/wireshark-common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Informazio gehiagorako, irakurri usr/share/doc/wireshark-common/README."
+"Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Eginbide hau gaitzean segurtasuneko arrisku bat sor daiteke, hau dela eta desgaituta dago lehenespenez. Zalantzako kasuan, desgaituta uztea gomendantzen da."
+msgstr ""
+"Eginbide hau gaitzean segurtasuneko arrisku bat sor daiteke, hau dela eta "
+"desgaituta dago lehenespenez. Zalantzako kasuan, desgaituta uztea "
+"gomendantzen da."
#. Type: error
#. Description
@@ -128,8 +142,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -137,3 +151,74 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Supererabiltzailea ez direnak paketeak kapturatzeko gai izan daitezke?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Sistemako \"wireshark\" taldeko partaideek paketeak kapturatzea baimentzeko "
+"modu batean instala daiteke Dumpcap. Wireshark/Tshark erabiliz paketeak "
+"supererabiltzaile gisa kapturatzeko modu hau gomendatuta dago, pribilegio "
+"handiekin kode gutxiago exekutatzen da eta."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/fi.po b/packaging/debian/po/fi.po
index 564315a33c..c00effb576 100644
--- a/packaging/debian/po/fi.po
+++ b/packaging/debian/po/fi.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# edu28b5088de91f4c05 <edu@iki.fi>, 2009
# edu28b5088de91f4c05 <edu@iki.fi>, 2009
@@ -9,14 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Finnish (http://www.transifex.com/wireshark/wireshark/language/fi/)\n"
+"Language-Team: Finnish (http://www.transifex.com/wireshark/wireshark/"
+"language/fi/)\n"
+"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
@@ -30,26 +31,33 @@ msgstr ""
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
msgstr ""
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
msgstr ""
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Tämän ominaisuuden käyttöönotto saattaa olla tietoturvariski ja tästä syystä se on oletuksena poissa käytöstä. Jos olet epävarma, on suositeltavaa jättää se pois käytöstä."
+msgstr ""
+"Tämän ominaisuuden käyttöönotto saattaa olla tietoturvariski ja tästä syystä "
+"se on oletuksena poissa käytöstä. Jos olet epävarma, on suositeltavaa jättää "
+"se pois käytöstä."
#. Type: error
#. Description
@@ -128,8 +136,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -137,3 +145,62 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+msgid "Should non-superusers be able to capture system calls?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/fr.po b/packaging/debian/po/fr.po
index 2b5de996dc..cbaaa69d70 100644
--- a/packaging/debian/po/fr.po
+++ b/packaging/debian/po/fr.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Simon Paillard <spaillard@debian.org>, 2009
# Yann Domingo, 2019
@@ -10,14 +10,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2019-06-30 23:24+0000\n"
"Last-Translator: Yann Domingo\n"
-"Language-Team: French (http://www.transifex.com/wireshark/wireshark/language/fr/)\n"
+"Language-Team: French (http://www.transifex.com/wireshark/wireshark/language/"
+"fr/)\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. Type: boolean
@@ -31,26 +32,40 @@ msgstr "Autoriser les utilisateurs non privilégiés à capturer des paquets ?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap peut être installé afin d'autoriser les membres du groupe « wireshark » à capturer des paquets. Cette méthode de capture est préférable à l'exécution de Wireshark ou Tshark avec les droits du superutilisateur, car elle permet d'exécuter moins de code avec des droits importants."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap peut être installé afin d'autoriser les membres du groupe "
+"« wireshark » à capturer des paquets. Cette méthode de capture est "
+"préférable à l'exécution de Wireshark ou Tshark avec les droits du "
+"superutilisateur, car elle permet d'exécuter moins de code avec des droits "
+"importants."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Pour plus d'information, veuillez consulter /usr/share/doc/wireshark-common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Pour plus d'information, veuillez consulter /usr/share/doc/wireshark-common/"
+"README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Cette fonctionnalité constitue un risque pour la sécurité, c'est pourquoi elle est désactivée par défaut. En cas de doute, il est suggéré de la laisser désactivée."
+msgstr ""
+"Cette fonctionnalité constitue un risque pour la sécurité, c'est pourquoi "
+"elle est désactivée par défaut. En cas de doute, il est suggéré de la "
+"laisser désactivée."
#. Type: error
#. Description
@@ -129,8 +144,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -138,3 +153,75 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Autoriser les utilisateurs non privilégiés à capturer des paquets ?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap peut être installé afin d'autoriser les membres du groupe "
+"« wireshark » à capturer des paquets. Cette méthode de capture est "
+"préférable à l'exécution de Wireshark ou Tshark avec les droits du "
+"superutilisateur, car elle permet d'exécuter moins de code avec des droits "
+"importants."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/hu.po b/packaging/debian/po/hu.po
index e278060a6f..0754cce849 100644
--- a/packaging/debian/po/hu.po
+++ b/packaging/debian/po/hu.po
@@ -1,54 +1,70 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Balint Reczey <balint@balintreczey.hu>, 2011
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Hungarian (http://www.transifex.com/wireshark/wireshark/language/hu/)\n"
+"Language-Team: Hungarian (http://www.transifex.com/wireshark/wireshark/"
+"language/hu/)\n"
+"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
#. Description
#: ../templates:2001
msgid "Should non-superusers be able to capture packets?"
-msgstr "A rendszergazdán kívül más felhasználók is képesek legyenek lehallgatni ahálózati forgalmat?"
+msgstr ""
+"A rendszergazdán kívül más felhasználók is képesek legyenek lehallgatni "
+"ahálózati forgalmat?"
#. Type: boolean
#. Description
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "A dumpcap segédprogramot úgy is be lehet állítani telepítéskor, hogy lehetővétegye a \"wireshark\" rendszer-csoport tagjainak, hogy lehallgassák ahálózati forgalmat. Ez biztonságosabb, mint rendszergazdaként futtatni aWireshark/Tshark programokat, mivel kevesebb kód fut így rendszergazdaijogokkal ellátva."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"A dumpcap segédprogramot úgy is be lehet állítani telepítéskor, hogy "
+"lehetővétegye a \"wireshark\" rendszer-csoport tagjainak, hogy lehallgassák "
+"ahálózati forgalmat. Ez biztonságosabb, mint rendszergazdaként futtatni "
+"aWireshark/Tshark programokat, mivel kevesebb kód fut így "
+"rendszergazdaijogokkal ellátva."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Részletesebb információk a usr/share/doc/wireshark-common/README.Debianfájlban találhatók."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Részletesebb információk a usr/share/doc/wireshark-common/README."
+"Debianfájlban találhatók."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Ennek a beállításnak az engedélyezése biztonsági kockázatot hordoz.Ha bizonytalan vagy, inkább ne engedélyezd."
+msgstr ""
+"Ennek a beállításnak az engedélyezése biztonsági kockázatot hordoz.Ha "
+"bizonytalan vagy, inkább ne engedélyezd."
#. Type: error
#. Description
@@ -127,8 +143,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -136,3 +152,77 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr ""
+"A rendszergazdán kívül más felhasználók is képesek legyenek lehallgatni "
+"ahálózati forgalmat?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"A dumpcap segédprogramot úgy is be lehet állítani telepítéskor, hogy "
+"lehetővétegye a \"wireshark\" rendszer-csoport tagjainak, hogy lehallgassák "
+"ahálózati forgalmat. Ez biztonságosabb, mint rendszergazdaként futtatni "
+"aWireshark/Tshark programokat, mivel kevesebb kód fut így "
+"rendszergazdaijogokkal ellátva."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/id.po b/packaging/debian/po/id.po
index fdfb7b6865..f54809fad4 100644
--- a/packaging/debian/po/id.po
+++ b/packaging/debian/po/id.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Indonesian (http://www.transifex.com/wireshark/wireshark/language/id/)\n"
+"Language-Team: Indonesian (http://www.transifex.com/wireshark/wireshark/"
+"language/id/)\n"
+"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. Type: boolean
@@ -28,26 +29,38 @@ msgstr "Bolehkan pengguna non-superuser untuk menangkap paket?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap dapat dipasang dengan cara memperbolehkan anggota dari grup system \"wireshark\" untuk menangkap paket. Hal ini dianjurkan sebagai alternatif untuk menjalankan Wireshark/Tshark sebagai root, karena sedikit kode yang berjalan dengan hak tertinggi"
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap dapat dipasang dengan cara memperbolehkan anggota dari grup system "
+"\"wireshark\" untuk menangkap paket. Hal ini dianjurkan sebagai alternatif "
+"untuk menjalankan Wireshark/Tshark sebagai root, karena sedikit kode yang "
+"berjalan dengan hak tertinggi"
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Untuk informasi lebih lanjut silakan lihat /usr/share/doc/wireshark-common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Untuk informasi lebih lanjut silakan lihat /usr/share/doc/wireshark-common/"
+"README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Mengaktifkan fitur ini akan menyebabkan resiko keamanan, jadi secara bawaan akan di non-aktifkan. Jika ragu, disarankan untuk dibiarkan dinonaktifkan"
+msgstr ""
+"Mengaktifkan fitur ini akan menyebabkan resiko keamanan, jadi secara bawaan "
+"akan di non-aktifkan. Jika ragu, disarankan untuk dibiarkan dinonaktifkan"
#. Type: error
#. Description
@@ -126,8 +139,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -135,3 +148,74 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Bolehkan pengguna non-superuser untuk menangkap paket?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap dapat dipasang dengan cara memperbolehkan anggota dari grup system "
+"\"wireshark\" untuk menangkap paket. Hal ini dianjurkan sebagai alternatif "
+"untuk menjalankan Wireshark/Tshark sebagai root, karena sedikit kode yang "
+"berjalan dengan hak tertinggi"
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/it.po b/packaging/debian/po/it.po
index 18ebce882a..a1aa6b7eb8 100644
--- a/packaging/debian/po/it.po
+++ b/packaging/debian/po/it.po
@@ -1,21 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Vincenzo Reale <vinx.reale@gmail.com>, 2015,2017
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
-"Language-Team: Italian (http://www.transifex.com/wireshark/wireshark/language/it/)\n"
+"Language-Team: Italian (http://www.transifex.com/wireshark/wireshark/"
+"language/it/)\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
@@ -29,26 +30,39 @@ msgstr "Vuoi consentire la cattura dei pacchetti agli utenti non privilegiati?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap può essere installato in modo da consentire ai membri del gruppo di sistema \"wireshark\" di catturare i pacchetti. Ciò è consigliato all'alternativa di eseguire Wireshark/Tshark come root, poiché una parte minore del codice sarà eseguita con privilegi elevati."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap può essere installato in modo da consentire ai membri del gruppo di "
+"sistema \"wireshark\" di catturare i pacchetti. Ciò è consigliato "
+"all'alternativa di eseguire Wireshark/Tshark come root, poiché una parte "
+"minore del codice sarà eseguita con privilegi elevati."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Per ulteriori informazioni, vedi /usr/share/doc/wireshark-common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Per ulteriori informazioni, vedi /usr/share/doc/wireshark-common/README."
+"Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "L'abilitazione di questa funzionalità potrebbe essere un rischio per la sicurezza, perciò è disabilitata in modo predefinito. Se hai dubbi, ti consigliamo di lasciarla disabilitata."
+msgstr ""
+"L'abilitazione di questa funzionalità potrebbe essere un rischio per la "
+"sicurezza, perciò è disabilitata in modo predefinito. Se hai dubbi, ti "
+"consigliamo di lasciarla disabilitata."
#. Type: error
#. Description
@@ -62,7 +76,10 @@ msgstr "Creazione del gruppo di sistema wireshark non riuscita"
msgid ""
"The wireshark group does not exist, and creating it failed, so Wireshark "
"cannot be configured to capture traffic as an unprivileged user."
-msgstr "Il gruppo wireshark non esiste, e la sua creazione non è riuscita, per cui Wireshark non può essere configurato per catturare il traffico con un utente non privilegiato."
+msgstr ""
+"Il gruppo wireshark non esiste, e la sua creazione non è riuscita, per cui "
+"Wireshark non può essere configurato per catturare il traffico con un utente "
+"non privilegiato."
#. Type: error
#. Description
@@ -70,7 +87,9 @@ msgstr "Il gruppo wireshark non esiste, e la sua creazione non è riuscita, per
msgid ""
"Please create the wireshark system group and try configuring wireshark-"
"common again."
-msgstr "Crea il gruppo di sistema wireshark e prova a configurare nuovamente wireshark-common."
+msgstr ""
+"Crea il gruppo di sistema wireshark e prova a configurare nuovamente "
+"wireshark-common."
#. Type: error
#. Description
@@ -84,7 +103,9 @@ msgstr "Il gruppo wireshark è un gruppo di sistema"
msgid ""
"The wireshark group exists as a user group, but the preferred configuration "
"is for it to be created as a system group."
-msgstr "Il gruppo wireshark esiste come gruppo utente, ma la configurazione preferita consiste nel crearlo come gruppo di sistema."
+msgstr ""
+"Il gruppo wireshark esiste come gruppo utente, ma la configurazione "
+"preferita consiste nel crearlo come gruppo di sistema."
#. Type: error
#. Description
@@ -92,7 +113,9 @@ msgstr "Il gruppo wireshark esiste come gruppo utente, ma la configurazione pref
msgid ""
"As a result, purging wireshark-common will not remove the wireshark group, "
"but everything else should work properly."
-msgstr "Come risultato, la rimozione di wireshark-common non rimuoverà il gruppo wireshark, ma tutto il resto dovrebbe funzionare correttamente."
+msgstr ""
+"Come risultato, la rimozione di wireshark-common non rimuoverà il gruppo "
+"wireshark, ma tutto il resto dovrebbe funzionare correttamente."
#. Type: error
#. Description
@@ -106,7 +129,10 @@ msgstr "Impostazione delle capacità di dumpcap non riuscita"
msgid ""
"The attempt to use Linux capabilities to grant packet-capturing privileges "
"to the dumpcap binary failed. Instead, it has had the set-user-id bit set."
-msgstr "Il tentativo di utilizzare le capacità di Linux per accordare i privilegi di cattura dei pacchetti al binario dumpcap non è riuscito. Invece, è stato impostato il bit set-user-id."
+msgstr ""
+"Il tentativo di utilizzare le capacità di Linux per accordare i privilegi di "
+"cattura dei pacchetti al binario dumpcap non è riuscito. Invece, è stato "
+"impostato il bit set-user-id."
#. Type: error
#. Description
@@ -121,18 +147,124 @@ msgid ""
"When the wireshark-common package is configured to allow non-superusers to "
"capture packets the postinst script of wireshark-common creates the "
"wireshark group as a system group."
-msgstr "Quando il pacchetto wireshark-common è configurato per consentire a utenti non privilegiati di catturare pacchetti, lo script di post-installazione di wireshark-common crea un gruppo wireshark come un gruppo di sistema."
+msgstr ""
+"Quando il pacchetto wireshark-common è configurato per consentire a utenti "
+"non privilegiati di catturare pacchetti, lo script di post-installazione di "
+"wireshark-common crea un gruppo wireshark come un gruppo di sistema."
#. Type: error
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
-msgstr "Tuttavia, su questo sistema il gruppo wireshark è un gruppo utente invece di essere un gruppo di sistema, per cui la rimozione di wireshark-common non lo ha rimosso."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
+msgstr ""
+"Tuttavia, su questo sistema il gruppo wireshark è un gruppo utente invece di "
+"essere un gruppo di sistema, per cui la rimozione di wireshark-common non lo "
+"ha rimosso."
#. Type: error
#. Description
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr "Se il gruppo non è più necessario, rimuovilo manualmente."
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Vuoi consentire la cattura dei pacchetti agli utenti non privilegiati?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap può essere installato in modo da consentire ai membri del gruppo di "
+"sistema \"wireshark\" di catturare i pacchetti. Ciò è consigliato "
+"all'alternativa di eseguire Wireshark/Tshark come root, poiché una parte "
+"minore del codice sarà eseguita con privilegi elevati."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid "Creating the wireshark system group failed"
+msgid "Creating the \"scap\" system group failed"
+msgstr "Creazione del gruppo di sistema wireshark non riuscita"
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group does not exist, and creating it failed, so Wireshark "
+#| "cannot be configured to capture traffic as an unprivileged user."
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+"Il gruppo wireshark non esiste, e la sua creazione non è riuscita, per cui "
+"Wireshark non può essere configurato per catturare il traffico con un utente "
+"non privilegiato."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "Please create the wireshark system group and try configuring wireshark-"
+#| "common again."
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+"Crea il gruppo di sistema wireshark e prova a configurare nuovamente "
+"wireshark-common."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid "The wireshark group is a system group"
+msgid "The \"scap\" group is a system group"
+msgstr "Il gruppo wireshark è un gruppo di sistema"
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group exists as a user group, but the preferred "
+#| "configuration is for it to be created as a system group."
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+"Il gruppo wireshark esiste come gruppo utente, ma la configurazione "
+"preferita consiste nel crearlo come gruppo di sistema."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "As a result, purging wireshark-common will not remove the wireshark "
+#| "group, but everything else should work properly."
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
+"Come risultato, la rimozione di wireshark-common non rimuoverà il gruppo "
+"wireshark, ma tutto il resto dovrebbe funzionare correttamente."
diff --git a/packaging/debian/po/ja.po b/packaging/debian/po/ja.po
index f5e0c898e2..6dd6ce0a7b 100644
--- a/packaging/debian/po/ja.po
+++ b/packaging/debian/po/ja.po
@@ -1,53 +1,68 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 08:02+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Japanese (http://www.transifex.com/wireshark/wireshark/language/ja/)\n"
+"Language-Team: Japanese (http://www.transifex.com/wireshark/wireshark/"
+"language/ja/)\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. Type: boolean
#. Description
#: ../templates:2001
msgid "Should non-superusers be able to capture packets?"
-msgstr "非特権ユーザ (root 以外のユーザ) がパケットをキャプチャできるようにしますか?"
+msgstr ""
+"非特権ユーザ (root 以外のユーザ) がパケットをキャプチャできるようにしますか?"
#. Type: boolean
#. Description
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "「wireshark」システムグループのメンバーがパケットをキャプチャできる設定で dumpcap をインストールすることができます。直接 root ユーザとして動かす別の方法と比較すると、この方が高くなった権限上で動作するコードが少なくなるのでお勧めです。"
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"「wireshark」システムグループのメンバーがパケットをキャプチャできる設定で "
+"dumpcap をインストールすることができます。直接 root ユーザとして動かす別の方"
+"法と比較すると、この方が高くなった権限上で動作するコードが少なくなるのでお勧"
+"めです。"
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "より詳細な情報については /usr/share/doc/wireshark-common/README.Debian を参照してください。"
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"より詳細な情報については /usr/share/doc/wireshark-common/README.Debian を参照"
+"してください。"
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "この機能を有効にするのはセキュリティ上のリスクになる可能性があるので、デフォルトでは無効にされています。分からない場合は無効のままにしておくことをお勧めします。"
+msgstr ""
+"この機能を有効にするのはセキュリティ上のリスクになる可能性があるので、デフォ"
+"ルトでは無効にされています。分からない場合は無効のままにしておくことをお勧め"
+"します。"
#. Type: error
#. Description
@@ -126,8 +141,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -135,3 +150,75 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr ""
+"非特権ユーザ (root 以外のユーザ) がパケットをキャプチャできるようにしますか?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"「wireshark」システムグループのメンバーがパケットをキャプチャできる設定で "
+"dumpcap をインストールすることができます。直接 root ユーザとして動かす別の方"
+"法と比較すると、この方が高くなった権限上で動作するコードが少なくなるのでお勧"
+"めです。"
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/ko.po b/packaging/debian/po/ko.po
index dea00e1e50..05bc4a33b1 100644
--- a/packaging/debian/po/ko.po
+++ b/packaging/debian/po/ko.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# ks k, 2019
# ks k, 2019
@@ -9,14 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2019-11-24 12:41+0000\n"
"Last-Translator: ks k\n"
-"Language-Team: Korean (http://www.transifex.com/wireshark/wireshark/language/ko/)\n"
+"Language-Team: Korean (http://www.transifex.com/wireshark/wireshark/language/"
+"ko/)\n"
+"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. Type: boolean
@@ -30,26 +31,36 @@ msgstr "일반사용자가 패킷을 갈무리 할 수 있도록 하시겠습니
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "root로 직접 Wireshark/Tshark를 실행시키는 것의 대안으로 좀 더 적은 권한으로 패킷 갈무리를 하기위해 \"와이어샤크\" 체제 묶음의 일원인 Dumpcap이 설치될 수 있습니다."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"root로 직접 Wireshark/Tshark를 실행시키는 것의 대안으로 좀 더 적은 권한으로 "
+"패킷 갈무리를 하기위해 \"와이어샤크\" 체제 묶음의 일원인 Dumpcap이 설치될 수 "
+"있습니다."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "세부정보는 /usr/share/doc/wireshark-common/README.Debian 파일을 참조하십시오."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"세부정보는 /usr/share/doc/wireshark-common/README.Debian 파일을 참조하십시오."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "활성화 하는 것은 보안상 위험할 수 있기 때문에 기본적으로 비활성화 되어 있습니다. 비활성화로 두는 것을 추천합니다."
+msgstr ""
+"활성화 하는 것은 보안상 위험할 수 있기 때문에 기본적으로 비활성화 되어 있습니"
+"다. 비활성화로 두는 것을 추천합니다."
#. Type: error
#. Description
@@ -63,7 +74,9 @@ msgstr "와이어샤크 체제 묶음 작성에 실패했습니다"
msgid ""
"The wireshark group does not exist, and creating it failed, so Wireshark "
"cannot be configured to capture traffic as an unprivileged user."
-msgstr "와이어샤크 묶음은 존재하지 않아 만들기에 실패하므로 와이어샤크는 권한이 없는 사용자로 트래픽을 갈무리하도록 구성할 수 없습니다."
+msgstr ""
+"와이어샤크 묶음은 존재하지 않아 만들기에 실패하므로 와이어샤크는 권한이 없는 "
+"사용자로 트래픽을 갈무리하도록 구성할 수 없습니다."
#. Type: error
#. Description
@@ -71,7 +84,8 @@ msgstr "와이어샤크 묶음은 존재하지 않아 만들기에 실패하므
msgid ""
"Please create the wireshark system group and try configuring wireshark-"
"common again."
-msgstr "와이어샤크 체제 묶음을 작성하고 wireshark-common 구성을 다시 시도하십시오."
+msgstr ""
+"와이어샤크 체제 묶음을 작성하고 wireshark-common 구성을 다시 시도하십시오."
#. Type: error
#. Description
@@ -85,7 +99,9 @@ msgstr "와이어샤크 묶음은 체제 묶음입니다"
msgid ""
"The wireshark group exists as a user group, but the preferred configuration "
"is for it to be created as a system group."
-msgstr "와이어샤크 묶음은 사용자 묶음으로 존재하지만 기본 구성은 체제 묶음으로 작성하는 것입니다."
+msgstr ""
+"와이어샤크 묶음은 사용자 묶음으로 존재하지만 기본 구성은 체제 묶음으로 작성하"
+"는 것입니다."
#. Type: error
#. Description
@@ -93,7 +109,9 @@ msgstr "와이어샤크 묶음은 사용자 묶음으로 존재하지만 기본
msgid ""
"As a result, purging wireshark-common will not remove the wireshark group, "
"but everything else should work properly."
-msgstr "결과적으로 wireshark-common을 제거해도 와이어샤크 묶음이 제거되지는 않지만 다른 모든 기능은 제대로 작동해야합니다."
+msgstr ""
+"결과적으로 wireshark-common을 제거해도 와이어샤크 묶음이 제거되지는 않지만 다"
+"른 모든 기능은 제대로 작동해야합니다."
#. Type: error
#. Description
@@ -107,7 +125,9 @@ msgstr "덤프캡에 대한 기능 설정 실패"
msgid ""
"The attempt to use Linux capabilities to grant packet-capturing privileges "
"to the dumpcap binary failed. Instead, it has had the set-user-id bit set."
-msgstr "리눅스 기능을 사용하여 덤프 갈무리 바이너리에 패킷 갈무리 권한을 부여하려는 시도가 실패했습니다. 대신 set-user-id 비트가 설정되었습니다."
+msgstr ""
+"리눅스 기능을 사용하여 덤프 갈무리 바이너리에 패킷 갈무리 권한을 부여하려는 "
+"시도가 실패했습니다. 대신 set-user-id 비트가 설정되었습니다."
#. Type: error
#. Description
@@ -122,18 +142,120 @@ msgid ""
"When the wireshark-common package is configured to allow non-superusers to "
"capture packets the postinst script of wireshark-common creates the "
"wireshark group as a system group."
-msgstr "슈퍼 유저가 아닌 사용자가 패킷을 갈무리 할 수 있도록 wireshark-common 패키지를 구성하면 wireshark-common의 postinst 스크립트가 와이어샤크 묶음을 체제 묶음으로 만듭니다."
+msgstr ""
+"슈퍼 유저가 아닌 사용자가 패킷을 갈무리 할 수 있도록 wireshark-common 패키지"
+"를 구성하면 wireshark-common의 postinst 스크립트가 와이어샤크 묶음을 체제 묶"
+"음으로 만듭니다."
#. Type: error
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
-msgstr "그러나, 이 체제에서 와이어샤크 묶음은 체제 묶음이 아닌 사용자 묶음이므로 wireshark-common을 제거해도 제거되지 않았습니다."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
+msgstr ""
+"그러나, 이 체제에서 와이어샤크 묶음은 체제 묶음이 아닌 사용자 묶음이므로 "
+"wireshark-common을 제거해도 제거되지 않았습니다."
#. Type: error
#. Description
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr "묶음이 더 이상 필요하지 않으면 수동으로 제거하십시오."
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "일반사용자가 패킷을 갈무리 할 수 있도록 하시겠습니까?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"root로 직접 Wireshark/Tshark를 실행시키는 것의 대안으로 좀 더 적은 권한으로 "
+"패킷 갈무리를 하기위해 \"와이어샤크\" 체제 묶음의 일원인 Dumpcap이 설치될 수 "
+"있습니다."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid "Creating the wireshark system group failed"
+msgid "Creating the \"scap\" system group failed"
+msgstr "와이어샤크 체제 묶음 작성에 실패했습니다"
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group does not exist, and creating it failed, so Wireshark "
+#| "cannot be configured to capture traffic as an unprivileged user."
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+"와이어샤크 묶음은 존재하지 않아 만들기에 실패하므로 와이어샤크는 권한이 없는 "
+"사용자로 트래픽을 갈무리하도록 구성할 수 없습니다."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "Please create the wireshark system group and try configuring wireshark-"
+#| "common again."
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+"와이어샤크 체제 묶음을 작성하고 wireshark-common 구성을 다시 시도하십시오."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid "The wireshark group is a system group"
+msgid "The \"scap\" group is a system group"
+msgstr "와이어샤크 묶음은 체제 묶음입니다"
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group exists as a user group, but the preferred "
+#| "configuration is for it to be created as a system group."
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+"와이어샤크 묶음은 사용자 묶음으로 존재하지만 기본 구성은 체제 묶음으로 작성하"
+"는 것입니다."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "As a result, purging wireshark-common will not remove the wireshark "
+#| "group, but everything else should work properly."
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
+"결과적으로 wireshark-common을 제거해도 와이어샤크 묶음이 제거되지는 않지만 다"
+"른 모든 기능은 제대로 작동해야합니다."
diff --git a/packaging/debian/po/nl.po b/packaging/debian/po/nl.po
index 30ccb01611..b752e9c643 100644
--- a/packaging/debian/po/nl.po
+++ b/packaging/debian/po/nl.po
@@ -1,54 +1,69 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Jeroen Schot <schot@a-eskwadraat.nl>, 2011
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Dutch (http://www.transifex.com/wireshark/wireshark/language/nl/)\n"
+"Language-Team: Dutch (http://www.transifex.com/wireshark/wireshark/language/"
+"nl/)\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
#. Description
#: ../templates:2001
msgid "Should non-superusers be able to capture packets?"
-msgstr "Moet het voor niet-beheerders mogelijk zijn om pakketjes te onderscheppen?"
+msgstr ""
+"Moet het voor niet-beheerders mogelijk zijn om pakketjes te onderscheppen?"
#. Type: boolean
#. Description
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap kan zodanig worden geïnstalleerd dat leden van de systeemgroep \"wireshark\" netwerkpakketjes mogen onderscheppen. Dit wordt aanbevolen boven het uitvoeren van Wireshark/Tshark als beheerder, omdat op deze manier minder code met verhoogde privileges wordt uitgevoerd."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap kan zodanig worden geïnstalleerd dat leden van de systeemgroep "
+"\"wireshark\" netwerkpakketjes mogen onderscheppen. Dit wordt aanbevolen "
+"boven het uitvoeren van Wireshark/Tshark als beheerder, omdat op deze "
+"manier minder code met verhoogde privileges wordt uitgevoerd."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Uitgebreide informatie hierover is te vinden in /usr/share/doc/wireshark-"
"common/README.Debian."
-msgstr "Uitgebreide informatie hierover is te vinden in /usr/share/doc/wireshark-common/README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Het activeren van deze functionaliteit is mogelijk een beveiligingsrisico, daarom staat dit niet standaard aan. Bij twijfel wordt u aangeraden om dit niet te activeren."
+msgstr ""
+"Het activeren van deze functionaliteit is mogelijk een beveiligingsrisico, "
+"daarom staat dit niet standaard aan. Bij twijfel wordt u aangeraden om dit "
+"niet te activeren."
#. Type: error
#. Description
@@ -127,8 +142,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -136,3 +151,75 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr ""
+"Moet het voor niet-beheerders mogelijk zijn om pakketjes te onderscheppen?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap kan zodanig worden geïnstalleerd dat leden van de systeemgroep "
+"\"wireshark\" netwerkpakketjes mogen onderscheppen. Dit wordt aanbevolen "
+"boven het uitvoeren van Wireshark/Tshark als beheerder, omdat op deze "
+"manier minder code met verhoogde privileges wordt uitgevoerd."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/pt.po b/packaging/debian/po/pt.po
index 8e4e08c741..290ee8379a 100644
--- a/packaging/debian/po/pt.po
+++ b/packaging/debian/po/pt.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Portuguese (http://www.transifex.com/wireshark/wireshark/language/pt/)\n"
+"Language-Team: Portuguese (http://www.transifex.com/wireshark/wireshark/"
+"language/pt/)\n"
+"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
@@ -28,26 +29,39 @@ msgstr "Devem os utilizadores regulares conseguir capturar pacotes?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "O dumpcap pode ser instalado de maneira que os membros do grupo de sistema \"wireshark\" possam capturar pacotes. Este é o modo recomendado em vez da alternativa de correr o Wireshark/Tshark directamente como root, porque menos código será executado com privilégios elevados."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"O dumpcap pode ser instalado de maneira que os membros do grupo de sistema "
+"\"wireshark\" possam capturar pacotes. Este é o modo recomendado em vez da "
+"alternativa de correr o Wireshark/Tshark directamente como root, porque "
+"menos código será executado com privilégios elevados."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Para informação mais detalhada, leia por favor /usr/share/doc/wireshark-"
"common/README.Debian."
-msgstr "Para informação mais detalhada, leia por favor /usr/share/doc/wireshark-common/README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Activar esta característica pode ser um risco de segurança, por isso vem desactivada por predefinição. Em caso de dúvida, sugere-se deixá-la desactivada."
+msgstr ""
+"Activar esta característica pode ser um risco de segurança, por isso vem "
+"desactivada por predefinição. Em caso de dúvida, sugere-se deixá-la "
+"desactivada."
#. Type: error
#. Description
@@ -126,8 +140,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -135,3 +149,74 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Devem os utilizadores regulares conseguir capturar pacotes?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"O dumpcap pode ser instalado de maneira que os membros do grupo de sistema "
+"\"wireshark\" possam capturar pacotes. Este é o modo recomendado em vez da "
+"alternativa de correr o Wireshark/Tshark directamente como root, porque "
+"menos código será executado com privilégios elevados."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/pt_BR.po b/packaging/debian/po/pt_BR.po
index cd424ffc2e..f48cd75bf0 100644
--- a/packaging/debian/po/pt_BR.po
+++ b/packaging/debian/po/pt_BR.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Adriano Rafael Gomes <adrianorg@gmail.com>, 2010
# Rafael Henrique da Silva Correia <rafaelhenriqu@gmail.com>, 2009
@@ -9,14 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/wireshark/wireshark/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/wireshark/"
+"wireshark/language/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. Type: boolean
@@ -30,26 +31,39 @@ msgstr "Não-superusuários deverão ser capazes de capturar pacotes?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "O dumpcap pode ser instalado em um modo que permite a membros do grupo de sistema \"wireshark\" capturar pacotes. Isto é recomendado em vez da alternativa de executar o Wireshark/Tshark diretamente como root, porque menos código será executado com privilégios elevados."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"O dumpcap pode ser instalado em um modo que permite a membros do grupo de "
+"sistema \"wireshark\" capturar pacotes. Isto é recomendado em vez da "
+"alternativa de executar o Wireshark/Tshark diretamente como root, porque "
+"menos código será executado com privilégios elevados."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Para informações mais detalhadas, por favor veja /usr/share/doc/wireshark-"
"common/README.Debian."
-msgstr "Para informações mais detalhadas, por favor veja /usr/share/doc/wireshark-common/README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Habilitar este recurso pode ser um risco de segurança, portanto ele é desabilitado por padrão. Se estiver em dúvida, é sugerido deixá-lo desabilitado."
+msgstr ""
+"Habilitar este recurso pode ser um risco de segurança, portanto ele é "
+"desabilitado por padrão. Se estiver em dúvida, é sugerido deixá-lo "
+"desabilitado."
#. Type: error
#. Description
@@ -128,8 +142,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -137,3 +151,74 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Não-superusuários deverão ser capazes de capturar pacotes?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"O dumpcap pode ser instalado em um modo que permite a membros do grupo de "
+"sistema \"wireshark\" capturar pacotes. Isto é recomendado em vez da "
+"alternativa de executar o Wireshark/Tshark diretamente como root, porque "
+"menos código será executado com privilégios elevados."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/ru.po b/packaging/debian/po/ru.po
index d37256edb0..da47523df5 100644
--- a/packaging/debian/po/ru.po
+++ b/packaging/debian/po/ru.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Vladlen Shapo <vladlen.shapo@gmail.com>, 2017
# Yuri Kozlov <yuray@komyakino.ru>, 2009-2010
@@ -9,15 +9,18 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-11-23 18:24+0000\n"
"Last-Translator: Vladlen Shapo <vladlen.shapo@gmail.com>\n"
-"Language-Team: Russian (http://www.transifex.com/wireshark/wireshark/language/ru/)\n"
+"Language-Team: Russian (http://www.transifex.com/wireshark/wireshark/"
+"language/ru/)\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ru\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
#. Type: boolean
#. Description
@@ -30,26 +33,38 @@ msgstr "Позволить не суперпользователям захва
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap можно установить таким образом, что члены группы wireshark смогут захватывать пакеты. Это более рекомендуемый способ захвата пакетов с помощью Wireshark/Tshark, чем запуск самого Wireshark/Tshark с правами root, так как это позволяет выполнять почти весь код с меньшими правами."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap можно установить таким образом, что члены группы wireshark смогут "
+"захватывать пакеты. Это более рекомендуемый способ захвата пакетов с помощью "
+"Wireshark/Tshark, чем запуск самого Wireshark/Tshark с правами root, так как "
+"это позволяет выполнять почти весь код с меньшими правами."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Дополнительную информацию можно найти в файле /usr/share/doc/wireshark-"
"common/README.Debian."
-msgstr "Дополнительную информацию можно найти в файле /usr/share/doc/wireshark-common/README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Использование данной возможности влияет на безопасность, поэтому по умолчанию не используется. Если сомневаетесь, то оставьте выключенной."
+msgstr ""
+"Использование данной возможности влияет на безопасность, поэтому по "
+"умолчанию не используется. Если сомневаетесь, то оставьте выключенной."
#. Type: error
#. Description
@@ -63,7 +78,10 @@ msgstr "Создание системной группы wireshark не выпо
msgid ""
"The wireshark group does not exist, and creating it failed, so Wireshark "
"cannot be configured to capture traffic as an unprivileged user."
-msgstr "Группа wireshark не существует, её создание не выполнено, поэтому Wireshark не может быть сконфигурирован для захвата трафика в качестве непривилегированного пользователя."
+msgstr ""
+"Группа wireshark не существует, её создание не выполнено, поэтому Wireshark "
+"не может быть сконфигурирован для захвата трафика в качестве "
+"непривилегированного пользователя."
#. Type: error
#. Description
@@ -71,7 +89,9 @@ msgstr "Группа wireshark не существует, её создание
msgid ""
"Please create the wireshark system group and try configuring wireshark-"
"common again."
-msgstr "Пожалуйста, создайте системную группу wireshark и попробуйте вновь выполнить конфигурирование wireshark-common. "
+msgstr ""
+"Пожалуйста, создайте системную группу wireshark и попробуйте вновь выполнить "
+"конфигурирование wireshark-common. "
#. Type: error
#. Description
@@ -85,7 +105,9 @@ msgstr "Группа wireshark является системной группо
msgid ""
"The wireshark group exists as a user group, but the preferred configuration "
"is for it to be created as a system group."
-msgstr "Группа wireshark существует как пользовательская группа, но предпочтительная конфигурация для неё - быть созданной в качестве системной группы."
+msgstr ""
+"Группа wireshark существует как пользовательская группа, но предпочтительная "
+"конфигурация для неё - быть созданной в качестве системной группы."
#. Type: error
#. Description
@@ -93,7 +115,9 @@ msgstr "Группа wireshark существует как пользовате
msgid ""
"As a result, purging wireshark-common will not remove the wireshark group, "
"but everything else should work properly."
-msgstr "Как результат, очистка wireshark-common не удалит группу wireshark, но всё остальное должно работать правильно."
+msgstr ""
+"Как результат, очистка wireshark-common не удалит группу wireshark, но всё "
+"остальное должно работать правильно."
#. Type: error
#. Description
@@ -107,7 +131,10 @@ msgstr "Установка возможностей для dumpcap законч
msgid ""
"The attempt to use Linux capabilities to grant packet-capturing privileges "
"to the dumpcap binary failed. Instead, it has had the set-user-id bit set."
-msgstr "Попытка использовать возможности Linux для присвоения привилегий для захвата пакетов двоичному dumpcap закончилась ошибкой. Однако был установлен бит идентификации пользователя set-user-id ."
+msgstr ""
+"Попытка использовать возможности Linux для присвоения привилегий для захвата "
+"пакетов двоичному dumpcap закончилась ошибкой. Однако был установлен бит "
+"идентификации пользователя set-user-id ."
#. Type: error
#. Description
@@ -122,18 +149,124 @@ msgid ""
"When the wireshark-common package is configured to allow non-superusers to "
"capture packets the postinst script of wireshark-common creates the "
"wireshark group as a system group."
-msgstr "Когда пакет wireshark-common сконфигурирован так, чтобы позволить не суперпользователям захватывать пакеты, скрипт postinst в wireshark-common создаёт группу wireshark как системную группу."
+msgstr ""
+"Когда пакет wireshark-common сконфигурирован так, чтобы позволить не "
+"суперпользователям захватывать пакеты, скрипт postinst в wireshark-common "
+"создаёт группу wireshark как системную группу."
#. Type: error
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
-msgstr "Однако в этой системе группа wireshark - пользовательская группа, вместо того, чтобы быть системной группой, поэтому очистка wireshark-common не удалит её."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
+msgstr ""
+"Однако в этой системе группа wireshark - пользовательская группа, вместо "
+"того, чтобы быть системной группой, поэтому очистка wireshark-common не "
+"удалит её."
#. Type: error
#. Description
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr "Если группа более не нужна, пожалуйста, удалите её вручную."
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Позволить не суперпользователям захватывать пакеты?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap можно установить таким образом, что члены группы wireshark смогут "
+"захватывать пакеты. Это более рекомендуемый способ захвата пакетов с помощью "
+"Wireshark/Tshark, чем запуск самого Wireshark/Tshark с правами root, так как "
+"это позволяет выполнять почти весь код с меньшими правами."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid "Creating the wireshark system group failed"
+msgid "Creating the \"scap\" system group failed"
+msgstr "Создание системной группы wireshark не выполнено"
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group does not exist, and creating it failed, so Wireshark "
+#| "cannot be configured to capture traffic as an unprivileged user."
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+"Группа wireshark не существует, её создание не выполнено, поэтому Wireshark "
+"не может быть сконфигурирован для захвата трафика в качестве "
+"непривилегированного пользователя."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "Please create the wireshark system group and try configuring wireshark-"
+#| "common again."
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+"Пожалуйста, создайте системную группу wireshark и попробуйте вновь выполнить "
+"конфигурирование wireshark-common. "
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid "The wireshark group is a system group"
+msgid "The \"scap\" group is a system group"
+msgstr "Группа wireshark является системной группой."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group exists as a user group, but the preferred "
+#| "configuration is for it to be created as a system group."
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+"Группа wireshark существует как пользовательская группа, но предпочтительная "
+"конфигурация для неё - быть созданной в качестве системной группы."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "As a result, purging wireshark-common will not remove the wireshark "
+#| "group, but everything else should work properly."
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
+"Как результат, очистка wireshark-common не удалит группу wireshark, но всё "
+"остальное должно работать правильно."
diff --git a/packaging/debian/po/sk.po b/packaging/debian/po/sk.po
index 93f26f0008..a493adcb0f 100644
--- a/packaging/debian/po/sk.po
+++ b/packaging/debian/po/sk.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Automatically generated, 2011
# Slavko <linux@slavino.sk>, 2011
@@ -9,15 +9,17 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Slovak (http://www.transifex.com/wireshark/wireshark/language/sk/)\n"
+"Language-Team: Slovak (http://www.transifex.com/wireshark/wireshark/language/"
+"sk/)\n"
+"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sk\n"
-"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n "
+">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#. Type: boolean
#. Description
@@ -30,26 +32,38 @@ msgstr "Môžu bežní používatelia zachytávať pakety?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap možno nainštalovať spôsobom, ktorý dovolí zachytávať pakety členom systémovej skupiny „wireshark”. Toto je odporúčané oproti alternatívnemu spúšťaniu Wireshark/Tshark priamo s právami root, pretože bude menej kódu bežať s neobmedzenými právami."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap možno nainštalovať spôsobom, ktorý dovolí zachytávať pakety členom "
+"systémovej skupiny „wireshark”. Toto je odporúčané oproti alternatívnemu "
+"spúšťaniu Wireshark/Tshark priamo s právami root, pretože bude menej kódu "
+"bežať s neobmedzenými právami."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Ďalšie, podrobnejšie informácie nájdete v /usr/share/doc/wireshark-common/README.Debian."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Ďalšie, podrobnejšie informácie nájdete v /usr/share/doc/wireshark-common/"
+"README.Debian."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Zapnutie tejto vlastnosti môže byť bezpečnostným rizikom, aj preto je predvolene vypnutá. Ak si nie ste istý, odporúčame ponechať ju vypnutú."
+msgstr ""
+"Zapnutie tejto vlastnosti môže byť bezpečnostným rizikom, aj preto je "
+"predvolene vypnutá. Ak si nie ste istý, odporúčame ponechať ju vypnutú."
#. Type: error
#. Description
@@ -128,8 +142,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -137,3 +151,74 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Môžu bežní používatelia zachytávať pakety?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap možno nainštalovať spôsobom, ktorý dovolí zachytávať pakety členom "
+"systémovej skupiny „wireshark”. Toto je odporúčané oproti alternatívnemu "
+"spúšťaniu Wireshark/Tshark priamo s právami root, pretože bude menej kódu "
+"bežať s neobmedzenými právami."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/sv.po b/packaging/debian/po/sv.po
index 03e521ebca..3f2a54e894 100644
--- a/packaging/debian/po/sv.po
+++ b/packaging/debian/po/sv.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
# Göran Uddeborg <goeran@uddeborg.se>, 2017
# Martin Ågren <martin.agren@gmail.com>, 2009-2010
@@ -9,14 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-11-27 22:17+0000\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
-"Language-Team: Swedish (http://www.transifex.com/wireshark/wireshark/language/sv/)\n"
+"Language-Team: Swedish (http://www.transifex.com/wireshark/wireshark/"
+"language/sv/)\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. Type: boolean
@@ -30,26 +31,38 @@ msgstr "Ska icke-superanvändare kunna fånga paket?"
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap kan installeras på ett sätt som tillåter medlemmar i systemgruppen \"wireshark\" att fånga paket. Detta rekommenderas framför alternativet, att köra Wireshark/Tshark direkt som root, eftersom en mindre del av koden kommer köras med utökade rättigheter."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap kan installeras på ett sätt som tillåter medlemmar i systemgruppen "
+"\"wireshark\" att fånga paket. Detta rekommenderas framför alternativet, att "
+"köra Wireshark/Tshark direkt som root, eftersom en mindre del av koden "
+"kommer köras med utökade rättigheter."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Se /usr/share/doc/wireshark-common/README.Debian för mer detaljerad information."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Se /usr/share/doc/wireshark-common/README.Debian för mer detaljerad "
+"information."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Att aktivera denna funktion kan vara en säkerhetsrisk, så den är avaktiverad som standard. Vid tvivel rekommenderas att den lämnas avaktiverad."
+msgstr ""
+"Att aktivera denna funktion kan vara en säkerhetsrisk, så den är avaktiverad "
+"som standard. Vid tvivel rekommenderas att den lämnas avaktiverad."
#. Type: error
#. Description
@@ -63,7 +76,9 @@ msgstr "Att skapa systemgruppen wireshark misslyckades"
msgid ""
"The wireshark group does not exist, and creating it failed, so Wireshark "
"cannot be configured to capture traffic as an unprivileged user."
-msgstr "Gruppen wireshark finns inte, och att skapa den misslyckades, så Wireshark kan inte konfigureras att fånga trafik som en opriviligierad användare."
+msgstr ""
+"Gruppen wireshark finns inte, och att skapa den misslyckades, så Wireshark "
+"kan inte konfigureras att fånga trafik som en opriviligierad användare."
#. Type: error
#. Description
@@ -71,7 +86,8 @@ msgstr "Gruppen wireshark finns inte, och att skapa den misslyckades, så Wiresh
msgid ""
"Please create the wireshark system group and try configuring wireshark-"
"common again."
-msgstr "Skapa systemgruppen wireshark och försök konfigurera wireshark-common igen."
+msgstr ""
+"Skapa systemgruppen wireshark och försök konfigurera wireshark-common igen."
#. Type: error
#. Description
@@ -85,7 +101,9 @@ msgstr "Gruppen wireshark är en systemgrupp"
msgid ""
"The wireshark group exists as a user group, but the preferred configuration "
"is for it to be created as a system group."
-msgstr "Gruppen wireshark finns som en användargrupp, men den rekommenderade konfigurationen är att den skapas som sen systemgrupp."
+msgstr ""
+"Gruppen wireshark finns som en användargrupp, men den rekommenderade "
+"konfigurationen är att den skapas som sen systemgrupp."
#. Type: error
#. Description
@@ -93,7 +111,9 @@ msgstr "Gruppen wireshark finns som en användargrupp, men den rekommenderade ko
msgid ""
"As a result, purging wireshark-common will not remove the wireshark group, "
"but everything else should work properly."
-msgstr "Som ett resultat kommer rensning av wireshark-common inte ta bort gruppen wireshark, men allt annat skall fungera normalt."
+msgstr ""
+"Som ett resultat kommer rensning av wireshark-common inte ta bort gruppen "
+"wireshark, men allt annat skall fungera normalt."
#. Type: error
#. Description
@@ -107,7 +127,10 @@ msgstr "Att sätta förmågor för dumpcap misslyckades"
msgid ""
"The attempt to use Linux capabilities to grant packet-capturing privileges "
"to the dumpcap binary failed. Instead, it has had the set-user-id bit set."
-msgstr "Försöket att använda Linux förmågor (capabilities) för att ge rättigheter att fånga paket till programmet dumpcap misslyckades. Istället har det fått set-user-id-biten satt."
+msgstr ""
+"Försöket att använda Linux förmågor (capabilities) för att ge rättigheter "
+"att fånga paket till programmet dumpcap misslyckades. Istället har det fått "
+"set-user-id-biten satt."
#. Type: error
#. Description
@@ -122,18 +145,121 @@ msgid ""
"When the wireshark-common package is configured to allow non-superusers to "
"capture packets the postinst script of wireshark-common creates the "
"wireshark group as a system group."
-msgstr "När paketet wireshark-common är konfigurerat för att tillåta andra än superanvändaren att fånga paket skapara postinst-skriptet i wireshark-common gruppen wireshark som en systemgrupp."
+msgstr ""
+"När paketet wireshark-common är konfigurerat för att tillåta andra än "
+"superanvändaren att fånga paket skapara postinst-skriptet i wireshark-common "
+"gruppen wireshark som en systemgrupp."
#. Type: error
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
-msgstr "Dock är gruppen wireshark en användargrupp på detta system istället för en systemgrupp, så att rensa bort wireshark-common tog inte bort den."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
+msgstr ""
+"Dock är gruppen wireshark en användargrupp på detta system istället för en "
+"systemgrupp, så att rensa bort wireshark-common tog inte bort den."
#. Type: error
#. Description
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr "Om gruppen inte behövs längre, ta då bort den manuellt."
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Ska icke-superanvändare kunna fånga paket?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap kan installeras på ett sätt som tillåter medlemmar i systemgruppen "
+"\"wireshark\" att fånga paket. Detta rekommenderas framför alternativet, att "
+"köra Wireshark/Tshark direkt som root, eftersom en mindre del av koden "
+"kommer köras med utökade rättigheter."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid "Creating the wireshark system group failed"
+msgid "Creating the \"scap\" system group failed"
+msgstr "Att skapa systemgruppen wireshark misslyckades"
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group does not exist, and creating it failed, so Wireshark "
+#| "cannot be configured to capture traffic as an unprivileged user."
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+"Gruppen wireshark finns inte, och att skapa den misslyckades, så Wireshark "
+"kan inte konfigureras att fånga trafik som en opriviligierad användare."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+#, fuzzy
+#| msgid ""
+#| "Please create the wireshark system group and try configuring wireshark-"
+#| "common again."
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+"Skapa systemgruppen wireshark och försök konfigurera wireshark-common igen."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid "The wireshark group is a system group"
+msgid "The \"scap\" group is a system group"
+msgstr "Gruppen wireshark är en systemgrupp"
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "The wireshark group exists as a user group, but the preferred "
+#| "configuration is for it to be created as a system group."
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+"Gruppen wireshark finns som en användargrupp, men den rekommenderade "
+"konfigurationen är att den skapas som sen systemgrupp."
+
+#. Type: error
+#. Description
+#: ../templates:9001
+#, fuzzy
+#| msgid ""
+#| "As a result, purging wireshark-common will not remove the wireshark "
+#| "group, but everything else should work properly."
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
+"Som ett resultat kommer rensning av wireshark-common inte ta bort gruppen "
+"wireshark, men allt annat skall fungera normalt."
diff --git a/packaging/debian/po/templates.pot b/packaging/debian/po/templates.pot
index e5fa0f8c5c..eef414a6eb 100644
--- a/packaging/debian/po/templates.pot
+++ b/packaging/debian/po/templates.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -35,7 +35,9 @@ msgstr ""
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"For more detailed information please see /usr/share/doc/wireshark-common/"
"README.Debian."
@@ -43,7 +45,9 @@ msgstr ""
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
@@ -135,3 +139,62 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+msgid "Should non-superusers be able to capture system calls?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/po/vi.po b/packaging/debian/po/vi.po
index a08bbe8991..65829ba05b 100644
--- a/packaging/debian/po/vi.po
+++ b/packaging/debian/po/vi.po
@@ -1,20 +1,21 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the wireshark package.
-#
+#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Wireshark\n"
"Report-Msgid-Bugs-To: wireshark@packages.debian.org\n"
-"POT-Creation-Date: 2017-08-06 18:31-0400\n"
+"POT-Creation-Date: 2024-05-20 18:25+0000\n"
"PO-Revision-Date: 2017-09-22 06:50+0000\n"
"Last-Translator: Gerald Combs <gerald@wireshark.org>\n"
-"Language-Team: Vietnamese (http://www.transifex.com/wireshark/wireshark/language/vi/)\n"
+"Language-Team: Vietnamese (http://www.transifex.com/wireshark/wireshark/"
+"language/vi/)\n"
+"Language: vi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. Type: boolean
@@ -28,26 +29,38 @@ msgstr "Người dùng không phải siêu người dùng nên có quyền bắt
#: ../templates:2001
msgid ""
"Dumpcap can be installed in a way that allows members of the \"wireshark\" "
-"system group to capture packets. This is recommended over the alternative of"
-" running Wireshark/Tshark directly as root, because less of the code will "
-"run with elevated privileges."
-msgstr "Dumpcap có thể được cài đặt bằng một cách cấp cho các thành viên của nhóm « wireshark » có quyền bắt gói tin. Thiết lập này khuyến khích, so với chạy Wireshark/Tshark trực tiếp dưới người chủ, vì ít mã nguồn hơn sẽ chạy với quyền truy cập cao."
+"system group to capture packets. This is recommended over the alternative of "
+"running Wireshark/Tshark directly as root, because less of the code will run "
+"with elevated privileges."
+msgstr ""
+"Dumpcap có thể được cài đặt bằng một cách cấp cho các thành viên của nhóm « "
+"wireshark » có quyền bắt gói tin. Thiết lập này khuyến khích, so với chạy "
+"Wireshark/Tshark trực tiếp dưới người chủ, vì ít mã nguồn hơn sẽ chạy với "
+"quyền truy cập cao."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
-"For more detailed information please see /usr/share/doc/wireshark-"
-"common/README.Debian."
-msgstr "Để tìm chi tiết, xem tài liệu Đọc Đi « /usr/share/doc/wireshark-common/README.Debian »."
+"For more detailed information please see /usr/share/doc/wireshark-common/"
+"README.Debian."
+msgstr ""
+"Để tìm chi tiết, xem tài liệu Đọc Đi « /usr/share/doc/wireshark-common/"
+"README.Debian »."
#. Type: boolean
#. Description
-#: ../templates:2001
+#. Type: boolean
+#. Description
+#: ../templates:2001 ../templates:7001
msgid ""
"Enabling this feature may be a security risk, so it is disabled by default. "
"If in doubt, it is suggested to leave it disabled."
-msgstr "Bật tính năng này có thể rủi ro bảo mật thì nó bị tắt theo mặc định. Chưa chắc nên để lại bị tắt."
+msgstr ""
+"Bật tính năng này có thể rủi ro bảo mật thì nó bị tắt theo mặc định. Chưa "
+"chắc nên để lại bị tắt."
#. Type: error
#. Description
@@ -126,8 +139,8 @@ msgstr ""
#. Description
#: ../templates:6001
msgid ""
-"However, on this system the wireshark group is a user group instead of being"
-" a system group, so purging wireshark-common did not remove it."
+"However, on this system the wireshark group is a user group instead of being "
+"a system group, so purging wireshark-common did not remove it."
msgstr ""
#. Type: error
@@ -135,3 +148,74 @@ msgstr ""
#: ../templates:6001
msgid "If the group is no longer needed, please remove it manually."
msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid "Should non-superusers be able to capture packets?"
+msgid "Should non-superusers be able to capture system calls?"
+msgstr "Người dùng không phải siêu người dùng nên có quyền bắt gói tin không?"
+
+#. Type: boolean
+#. Description
+#: ../templates:7001
+#, fuzzy
+#| msgid ""
+#| "Dumpcap can be installed in a way that allows members of the "
+#| "\"wireshark\" system group to capture packets. This is recommended over "
+#| "the alternative of running Wireshark/Tshark directly as root, because "
+#| "less of the code will run with elevated privileges."
+msgid ""
+"The falcodump external capture utility (extcap) can be installed in a way "
+"that allows members of the \"scap\" system group to capture system calls. "
+"This is recommended over the alternative of running Logray directly as root, "
+"because less of the code will run with elevated privileges."
+msgstr ""
+"Dumpcap có thể được cài đặt bằng một cách cấp cho các thành viên của nhóm « "
+"wireshark » có quyền bắt gói tin. Thiết lập này khuyến khích, so với chạy "
+"Wireshark/Tshark trực tiếp dưới người chủ, vì ít mã nguồn hơn sẽ chạy với "
+"quyền truy cập cao."
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid "Creating the \"scap\" system group failed"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"The \"scap\" group does not exist, and creating it failed, so Logray cannot "
+"be configured to capture system calls as an unprivileged user."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:8001
+msgid ""
+"Please create the \"scap\" system group and try configuring logray again."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid "The \"scap\" group is a system group"
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"The \"scap\" group exists as a user group, but the preferred configuration "
+"is for it to be created as a system group."
+msgstr ""
+
+#. Type: error
+#. Description
+#: ../templates:9001
+msgid ""
+"As a result, purging logray will not remove the \"scap\" group, but "
+"everything else should work properly."
+msgstr ""
diff --git a/packaging/debian/rules b/packaging/debian/rules
index 6e7307c154..f7ad9eb132 100755
--- a/packaging/debian/rules
+++ b/packaging/debian/rules
@@ -14,6 +14,15 @@ endif
include /usr/share/dpkg/pkg-info.mk
+# Fetch our Logray version. This is pretty janky, but will have to do for now.
+PROJECT_MAJOR_VERSION = $(shell grep '^set(PROJECT_MAJOR_VERSION' CMakeLists.txt | sed -e 's/set.* //' -e 's/)//')
+PROJECT_MINOR_VERSION = $(shell grep '^set(PROJECT_MINOR_VERSION' CMakeLists.txt | sed -e 's/set.* //' -e 's/)//')
+PROJECT_PATCH_VERSION = $(shell grep '^set(PROJECT_PATCH_VERSION' CMakeLists.txt | sed -e 's/set.* //' -e 's/)//')
+LOG_PROJECT_MAJOR_VERSION = $(shell grep '^set(LOG_PROJECT_MAJOR_VERSION' CMakeLists.txt | sed -e 's/set.* //' -e 's/)//')
+LOG_PROJECT_MINOR_VERSION = $(shell grep '^set(LOG_PROJECT_MINOR_VERSION' CMakeLists.txt | sed -e 's/set.* //' -e 's/)//')
+LOG_PROJECT_PATCH_VERSION = $(shell grep '^set(LOG_PROJECT_PATCH_VERSION' CMakeLists.txt | sed -e 's/set.* //' -e 's/)//')
+LOGRAY_VERSION = $(shell echo $(DEB_VERSION) | sed -e "s/$(PROJECT_MAJOR_VERSION)\.$(PROJECT_MINOR_VERSION)\.$(PROJECT_PATCH_VERSION)/$(LOG_PROJECT_MAJOR_VERSION)\.$(LOG_PROJECT_MINOR_VERSION)\.$(LOG_PROJECT_PATCH_VERSION)/")
+
# This has to be exported to make some magic below work.
export DH_OPTIONS
@@ -43,6 +52,8 @@ override_dh_auto_configure:
-DENABLE_WERROR=OFF \
-DVCSVERSION_OVERRIDE="Git v$(DEB_VERSION_UPSTREAM) packaged as $(DEB_VERSION)" \
$(CONFIGURE_SWITCHES)
+ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \
+ debian/logray.postinst.in > debian/logray.postinst
override_dh_auto_build:
# Ignore warnings from asn2wrs.py about duplicate field names.
@@ -97,3 +108,7 @@ override_dh_makeshlibs:
echo "$$lib $$major $$package (= $(DEB_VERSION))" > debian/$$package.shlibs; \
done
dh_makeshlibs
+
+override_dh_gencontrol:
+ dh_gencontrol
+ dh_gencontrol -plogray -- -v$(LOGRAY_VERSION)
diff --git a/packaging/debian/templates b/packaging/debian/templates
index dc47130770..52e9f63d9d 100644
--- a/packaging/debian/templates
+++ b/packaging/debian/templates
@@ -59,3 +59,38 @@ _Description: Removal of the wireshark group failed
being a system group, so purging wireshark-common did not remove it.
.
If the group is no longer needed, please remove it manually.
+
+Template: logray/install-setuid
+Type: boolean
+Default: false
+_Description: Should non-superusers be able to capture system calls?
+ The falcodump external capture utility (extcap) can be installed in a
+ way that allows members of the "scap" system group to capture system
+ calls. This is recommended over the alternative of running Logray
+ directly as root, because less of the code will run with elevated
+ privileges.
+ .
+ For more detailed information please see
+ /usr/share/doc/wireshark-common/README.Debian.
+ .
+ Enabling this feature may be a security risk, so it is disabled by
+ default. If in doubt, it is suggested to leave it disabled.
+
+Template: logray/addgroup-failed
+Type: error
+_Description: Creating the "scap" system group failed
+ The "scap" group does not exist, and creating it failed, so
+ Logray cannot be configured to capture system calls as an unprivileged
+ user.
+ .
+ Please create the "scap" system group and try configuring
+ logray again.
+
+Template: logray/group-is-user-group
+Type: error
+_Description: The "scap" group is a system group
+ The "scap" group exists as a user group, but the preferred
+ configuration is for it to be created as a system group.
+ .
+ As a result, purging logray will not remove the "scap"
+ group, but everything else should work properly.
diff --git a/packaging/macosx/osx-app.sh.in b/packaging/macosx/osx-app.sh.in
index 546a5feb74..0bd0b9323a 100755
--- a/packaging/macosx/osx-app.sh.in
+++ b/packaging/macosx/osx-app.sh.in
@@ -145,7 +145,7 @@ app_lower=$(echo "$app_name" | tr '[:upper:]' '[:lower:]')
pkgexec="$bundle/Contents/MacOS"
#pkgres="$bundle/Contents/Resources"
pkglib="$bundle/Contents/Frameworks"
-pkgplugin="$bundle/Contents/PlugIns/$app_lower"
+pkgplugin="$bundle/Contents/PlugIns/$app_lower/@PLUGIN_PATH_ID@"
# Set the 'macosx' directory, usually the current directory.
#resdir=$( pwd )
@@ -162,7 +162,7 @@ done < <( find "$pkgexec" \! -name "$app_name" -type f -perm -0555 -print | sort
plugin_library_list=()
while read -r library ; do
plugin_library_list+=("$library")
-done < <( find "$pkgplugin" -name "*.so.[0-9]*" -type f -perm -0555 -print | sort )
+done < <( find "$pkgplugin" -name "*.so" -type f -perm -0555 -print | sort )
bundle_binary_list=("$pkgexec/$app_name" "${secondary_binary_list[@]}" "${plugin_library_list[@]}")
echo -e "\\nFixing up $bundle..."
@@ -671,7 +671,7 @@ if [ -n "$CODE_SIGN_IDENTITY" ] ; then
codesign_file "$library"
done
- plugin_list=$( find "$bundle/Contents/PlugIns" -type f -name "*.dylib" -o -name "*.so" -o -name "*.so.[0-9]*" )
+ plugin_list=$( find "$bundle/Contents/PlugIns" -type f -name "*.dylib" -o -name "*.so" )
echo "Signing plugins"
for plugin in $plugin_list ; do
codesign_file "$plugin"
diff --git a/packaging/nsis/CMakeLists.txt b/packaging/nsis/CMakeLists.txt
index ff5775e6b3..cdb285f0aa 100644
--- a/packaging/nsis/CMakeLists.txt
+++ b/packaging/nsis/CMakeLists.txt
@@ -153,7 +153,7 @@ if (BUILD_wireshark)
set(_all_manifest_contents "${_all_manifest_contents}File \"\${STAGING_DIR}\\${_dll}\"\n")
endforeach()
set(_all_manifest_contents "${_all_manifest_contents}!endif\n")
- foreach(_dll ${CARES_DLL} ${PCRE2_RELEASE_DLL} ${GCRYPT_DLLS}
+ foreach(_dll ${AMRNB_DLL} ${CARES_DLL} ${PCRE2_RELEASE_DLL} ${GCRYPT_DLLS}
${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LIBSSH_DLLS} ${LUA_DLL}
${LZ4_DLL} ${MINIZIP_DLL} ${NGHTTP2_DLL} ${NGHTTP3_DLL} ${SBC_DLL} ${SMI_DLL}
${SNAPPY_DLL} ${SPANDSP_DLL} ${BCG729_DLL} ${LIBXML2_DLLS} ${WINSPARKLE_DLL}
@@ -202,7 +202,7 @@ if (BUILD_logray)
set(_all_manifest_contents "${_all_manifest_contents}File \"\${STAGING_DIR}\\${_dll}\"\n")
endforeach()
set(_all_manifest_contents "${_all_manifest_contents}!endif\n")
- foreach(_dll ${CARES_DLL} ${PCRE2_RELEASE_DLL} ${GCRYPT_DLLS}
+ foreach(_dll ${AMRNB_DLL} ${CARES_DLL} ${PCRE2_RELEASE_DLL} ${GCRYPT_DLLS}
${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LIBSSH_DLLS} ${LUA_DLL}
${LZ4_DLL} ${MINIZIP_DLL} ${NGHTTP2_DLL} ${NGHTTP3_DLL} ${SBC_DLL} ${SMI_DLL}
${SNAPPY_DLL} ${SPANDSP_DLL} ${BCG729_DLL} ${LIBXML2_DLLS} ${WINSPARKLE_DLL}
diff --git a/packaging/nsis/custom_plugins.txt b/packaging/nsis/custom_plugins.txt
index 6c71b57dc5..12338056e7 100644
--- a/packaging/nsis/custom_plugins.txt
+++ b/packaging/nsis/custom_plugins.txt
@@ -1,3 +1,3 @@
;Add your custom plugins directives here
; Example:
-;File "${STAGING_DIR}\plugins\epan\foo.dll.${ABI_VERSION_EPAN}"
+;File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\foo.dll"
diff --git a/packaging/nsis/logray-config.nsh.in b/packaging/nsis/logray-config.nsh.in
index 0bac1e1c56..93d8a08893 100644
--- a/packaging/nsis/logray-config.nsh.in
+++ b/packaging/nsis/logray-config.nsh.in
@@ -11,9 +11,6 @@
#define EXTRA_INSTALLER_DIR "@EXTRA_INSTALLER_DIR@"
#define VERSION @LOG_PROJECT_VERSION@
#define PRODUCT_VERSION @LOG_PRODUCT_VERSION@
-#define ABI_VERSION_EPAN @PROJECT_ABI_VERSION_EPAN@
-#define ABI_VERSION_WIRETAP @PROJECT_ABI_VERSION_WIRETAP@
-#define ABI_VERSION_CODEC @PROJECT_ABI_VERSION_CODEC@
# Plugins
#define MAJOR_VERSION @PROJECT_MAJOR_VERSION@
#define MINOR_VERSION @PROJECT_MINOR_VERSION@
diff --git a/packaging/nsis/logray.nsi b/packaging/nsis/logray.nsi
index de9de973f5..1df3319ce4 100644
--- a/packaging/nsis/logray.nsi
+++ b/packaging/nsis/logray.nsi
@@ -880,19 +880,19 @@ SectionEnd
Section "-Plugins & Extensions"
;-------------------------------------------
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\falco-bridge.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\falco-bridge.dll"
SetOutPath '$INSTDIR\plugins\falco'
File "${STAGING_DIR}\plugins\falco\cloudtrail.dll"
!include "custom_plugins.txt"
;-------------------------------------------
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\stats_tree.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\stats_tree.dll"
;-------------------------------------------
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\mate.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\mate.dll"
;-------------------------------------------
; This should be a function or macro
@@ -917,11 +917,11 @@ File "${SMI_DIR}\share\yang\*.yang"
!include "custom_mibs.txt"
!endif
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\transum.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\transum.dll"
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\stats_tree.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\stats_tree.dll"
SectionEnd ; "Plugins / Extensions"
diff --git a/packaging/nsis/mingw64-qt-mapping.txt b/packaging/nsis/mingw64-qt-mapping.txt
index 40ca2ef643..71e1288cd2 100644
--- a/packaging/nsis/mingw64-qt-mapping.txt
+++ b/packaging/nsis/mingw64-qt-mapping.txt
@@ -24,7 +24,9 @@
"lib/qt6/plugins/multimedia/windowsmediaplugin.dll" "multimedia/windowsmediaplugin.dll"
"lib/qt6/plugins/networkinformation/qnetworklistmanager.dll" "networkinformation/qnetworklistmanager.dll"
"lib/qt6/plugins/platforms/qwindows.dll" "platforms/qwindows.dll"
+# 6.7 renamed QWindowsVistaStylePlugin to QModernWindowsStylePlugin
"lib/qt6/plugins/styles/qwindowsvistastyle.dll" "styles/qwindowsvistastyle.dll"
+"lib/qt6/plugins/styles/qmodernwindowsstyle.dll" "styles/qmodernwindowsstyle.dll"
"lib/qt6/plugins/tls/qcertonlybackend.dll" "tls/qcertonlybackend.dll"
"lib/qt6/plugins/tls/qopensslbackend.dll" "tls/qopensslbackend.dll"
"lib/qt6/plugins/tls/qschannelbackend.dll" "tls/qschannelbackend.dll"
diff --git a/packaging/nsis/windeployqt-to-nsis.py b/packaging/nsis/windeployqt-to-nsis.py
index cbc3fa814e..2063282aa4 100644
--- a/packaging/nsis/windeployqt-to-nsis.py
+++ b/packaging/nsis/windeployqt-to-nsis.py
@@ -90,6 +90,12 @@ with open(args.outfile, 'w') as f:
path = path.strip('"')
if args.sysroot:
path = os.path.join(args.sysroot, path)
+ if args.mapping and not os.path.isfile(path):
+ # This hack is because Qt 6.7 renamed QWindowsVistaStylePlugin
+ # to QModernWindowsStylePlugin. (This explicit mapping because
+ # windeployqt6 doesn't work well with cross-compiling is
+ # brittle.)
+ continue
file_path = 'File "{}"'.format(path)
print(file_path, file=f)
diff --git a/packaging/nsis/wireshark-config.nsh.in b/packaging/nsis/wireshark-config.nsh.in
index 0e3b0b13ab..10485cca03 100644
--- a/packaging/nsis/wireshark-config.nsh.in
+++ b/packaging/nsis/wireshark-config.nsh.in
@@ -16,10 +16,6 @@
#define MINOR_VERSION @PROJECT_MINOR_VERSION@
#define PRODUCT_VERSION @PRODUCT_VERSION@
-#define ABI_VERSION_EPAN @PROJECT_ABI_VERSION_EPAN@
-#define ABI_VERSION_WIRETAP @PROJECT_ABI_VERSION_WIRETAP@
-#define ABI_VERSION_CODEC @PROJECT_ABI_VERSION_CODEC@
-
#define VCREDIST_DIR "@VCREDIST_DIR@"
#define VCREDIST_EXE "@VCREDIST_EXE@"
diff --git a/packaging/nsis/wireshark.nsi b/packaging/nsis/wireshark.nsi
index 23ddb071ce..d86e0e3efd 100644
--- a/packaging/nsis/wireshark.nsi
+++ b/packaging/nsis/wireshark.nsi
@@ -1040,24 +1040,24 @@ SectionEnd
Section "-Plugins & Extensions"
-SetOutPath '$INSTDIR\plugins\codecs'
-File "${STAGING_DIR}\plugins\codecs\g711.dll.${ABI_VERSION_CODEC}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\g711.dll"
!ifdef SPANDSP_FOUND
-File "${STAGING_DIR}\plugins\codecs\g722.dll.${ABI_VERSION_CODEC}"
-File "${STAGING_DIR}\plugins\codecs\g726.dll.${ABI_VERSION_CODEC}"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\g722.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\g726.dll"
!endif
!ifdef BCG729_FOUND
-File "${STAGING_DIR}\plugins\codecs\g729.dll.${ABI_VERSION_CODEC}"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\g729.dll"
!endif
-File "${STAGING_DIR}\plugins\codecs\l16mono.dll.${ABI_VERSION_CODEC}"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\l16mono.dll"
!ifdef SBC_FOUND
-File "${STAGING_DIR}\plugins\codecs\sbc.dll.${ABI_VERSION_CODEC}"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\sbc.dll"
!endif
!ifdef ILBC_FOUND
-File "${STAGING_DIR}\plugins\codecs\ilbc.dll.${ABI_VERSION_CODEC}"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\ilbc.dll"
!endif
!ifdef OPUS_FOUND
-File "${STAGING_DIR}\plugins\codecs\opus_dec.dll.${ABI_VERSION_CODEC}"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\codecs\opus_dec.dll"
!endif
; This should be a function or macro
@@ -1069,23 +1069,23 @@ File "${STAGING_DIR}\profiles\Classic\colorfilters"
SetOutPath '$INSTDIR\profiles\No Reassembly'
File "${STAGING_DIR}\profiles\No Reassembly\preferences"
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\ethercat.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\gryphon.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\irda.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\opcua.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\profinet.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\unistim.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\wimax.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\wimaxasncp.dll.${ABI_VERSION_EPAN}"
-File "${STAGING_DIR}\plugins\epan\wimaxmacphy.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\ethercat.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\gryphon.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\irda.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\opcua.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\profinet.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\unistim.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\wimax.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\wimaxasncp.dll"
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\wimaxmacphy.dll"
!include "custom_plugins.txt"
-SetOutPath '$INSTDIR\plugins\wiretap'
-File "${STAGING_DIR}\plugins\wiretap\usbdump.dll.${ABI_VERSION_WIRETAP}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\wiretap'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\wiretap\usbdump.dll"
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\mate.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\mate.dll"
!ifdef SMI_DIR
SetOutPath '$INSTDIR\snmp\mibs'
@@ -1098,11 +1098,11 @@ File "${SMI_DIR}\share\yang\*.yang"
!include "custom_mibs.txt"
!endif
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\transum.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\transum.dll"
-SetOutPath '$INSTDIR\plugins\epan'
-File "${STAGING_DIR}\plugins\epan\stats_tree.dll.${ABI_VERSION_EPAN}"
+SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
+File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\stats_tree.dll"
SectionEnd ; "Plugins / Extensions"
diff --git a/packaging/wix/CMakeLists.txt b/packaging/wix/CMakeLists.txt
index 25f5dbc967..34302ac4cd 100644
--- a/packaging/wix/CMakeLists.txt
+++ b/packaging/wix/CMakeLists.txt
@@ -127,7 +127,7 @@ foreach(_dll ${GLIB2_DLLS_RELEASE})
endforeach()
file(APPEND "${_all_manifest_wix}" " <?endif?>\n")
SET(unique_component "")
-set (_dll_list ${CARES_DLL} ${PCRE2_RELEASE_DLL} ${GCRYPT_DLLS}
+set (_dll_list ${AMRNB_DLL} ${CARES_DLL} ${PCRE2_RELEASE_DLL} ${GCRYPT_DLLS}
${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LIBSSH_DLLS} ${LUA_DLL}
${LZ4_DLL} ${MINIZIP_DLL} ${NGHTTP2_DLL} ${NGHTTP3_DLL} ${SBC_DLL} ${SMI_DLL}
${SNAPPY_DLL} ${SPANDSP_DLL} ${BCG729_DLL} ${LIBXML2_DLLS} ${WINSPARKLE_DLL}
@@ -190,9 +190,6 @@ set(WIX_CANDLE_DEFINES
-dWiresharkVersion=${PRODUCT_VERSION}
-dWiresharkMajorVersion=${PROJECT_MAJOR_VERSION}
-dWiresharkMinorVersion=${PROJECT_MINOR_VERSION}
- -dWiresharkAbiVersionEpan=${PROJECT_ABI_VERSION_EPAN}
- -dWiresharkAbiVersionWtap=${PROJECT_ABI_VERSION_WIRETAP}
- -dWiresharkAbiVersionCodec=${PROJECT_ABI_VERSION_CODEC}
-dAssetDir=${CMAKE_SOURCE_DIR}/packaging/wix
-dBuildOutputDir=${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}
-dDiameterDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/diameter
diff --git a/packaging/wix/Plugins.wxi b/packaging/wix/Plugins.wxi
index 594603a777..0b53cf485a 100644
--- a/packaging/wix/Plugins.wxi
+++ b/packaging/wix/Plugins.wxi
@@ -5,31 +5,31 @@
<Fragment>
<DirectoryRef Id="dirPluginsVersionEpan">
<Component Id="cmpEthercat_dll" Guid="*">
- <File Id="filEthercat_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\ethercat.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filEthercat_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\ethercat.dll" />
</Component>
<Component Id="cmpGryphon_dll" Guid="*">
- <File Id="filGryphon_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\gryphon.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filGryphon_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\gryphon.dll" />
</Component>
<Component Id="cmpIrda_dll" Guid="*">
- <File Id="filIrda_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\irda.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filIrda_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\irda.dll" />
</Component>
<Component Id="cmpOpcua_dll" Guid="*">
- <File Id="filOpcua_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\opcua.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filOpcua_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\opcua.dll" />
</Component>
<Component Id="cmpProfinet_dll" Guid="*">
- <File Id="filProfinet_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\profinet.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filProfinet_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\profinet.dll" />
</Component>
<Component Id="cmpUnistim_dll" Guid="*">
- <File Id="filUnistim_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\unistim.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filUnistim_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\unistim.dll" />
</Component>
<Component Id="cmpWimax_dll" Guid="*">
- <File Id="filWimax_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\wimax.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filWimax_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\wimax.dll" />
</Component>
<Component Id="cmpWimaxasmcp_dll" Guid="*">
- <File Id="filWimaxasmcp_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\wimaxasncp.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filWimaxasmcp_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\wimaxasncp.dll" />
</Component>
<Component Id="cmpWimaxmacphy_dll" Guid="*">
- <File Id="filWimaxmacphy_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\wimaxmacphy.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filWimaxmacphy_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\wimaxmacphy.dll" />
</Component>
<!-- Add custom plugin Components here -->
</DirectoryRef>
@@ -53,7 +53,7 @@
<Fragment>
<DirectoryRef Id="dirPluginsVersionEpan">
<Component Id="cmpStatsTree_dll" Guid="*">
- <File Id="filStatsTree_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\stats_tree.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filStatsTree_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\stats_tree.dll" />
</Component>
</DirectoryRef>
</Fragment>
@@ -67,7 +67,7 @@
<Fragment>
<DirectoryRef Id="dirPluginsVersionEpan">
<Component Id="cmpMate_dll" Guid="*">
- <File Id="filMate_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\mate.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filMate_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\mate.dll" />
</Component>
</DirectoryRef>
</Fragment>
@@ -81,7 +81,7 @@
<Fragment>
<DirectoryRef Id="dirPluginsVersionEpan">
<Component Id="cmpTransum_dll" Guid="*">
- <File Id="filTransum_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\epan\transum.dll.$(var.WiresharkAbiVersionEpan)" />
+ <File Id="filTransum_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\epan\transum.dll" />
</Component>
</DirectoryRef>
</Fragment>
@@ -95,7 +95,7 @@
<Fragment>
<DirectoryRef Id="dirPluginsVersionWtap">
<Component Id="cmpUsbdump_dll" Guid="*">
- <File Id="filUsbdump_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\wiretap\usbdump.dll.$(var.WiresharkAbiVersionWtap)" />
+ <File Id="filUsbdump_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\wiretap\usbdump.dll" />
</Component>
</DirectoryRef>
</Fragment>
@@ -109,28 +109,28 @@
<Fragment>
<DirectoryRef Id="dirPluginsVersionCodecs">
<Component Id="cmpG711_dll" Guid="*">
- <File Id="filG711_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\g711.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filG711_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\g711.dll" />
</Component>
<Component Id="cmpG722_dll" Guid="*">
- <File Id="filG722_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\g722.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filG722_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\g722.dll" />
</Component>
<Component Id="cmpG726_dll" Guid="*">
- <File Id="filG726_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\g726.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filG726_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\g726.dll" />
</Component>
<Component Id="cmpG729_dll" Guid="*">
- <File Id="filG729_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\g729.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filG729_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\g729.dll" />
</Component>
<Component Id="cmpL16mono_dll" Guid="*">
- <File Id="filL16mono_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\l16mono.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filL16mono_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\l16mono.dll" />
</Component>
<Component Id="cmpSBC_dll" Guid="*">
- <File Id="filSBC_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\sbc.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filSBC_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\sbc.dll" />
</Component>
<Component Id="cmpILBC_dll" Guid="*">
- <File Id="filILBC_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\ilbc.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filILBC_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\ilbc.dll" />
</Component>
<Component Id="cmpOPUS_dll" Guid="*">
- <File Id="filOPUS_dec_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\codecs\opus_dec.dll.$(var.WiresharkAbiVersionCodec)" />
+ <File Id="filOPUS_dec_dll" KeyPath="yes" Source="$(var.Plugins.Dir)\$(var.WiresharkMajorVersion).$(var.WiresharkMinorVersion)\codecs\opus_dec.dll" />
</Component>
</DirectoryRef>
</Fragment>
diff --git a/plugins/.clang-tidy b/plugins/.clang-tidy
new file mode 100644
index 0000000000..6be356e4de
--- /dev/null
+++ b/plugins/.clang-tidy
@@ -0,0 +1,3 @@
+InheritParentConfig: true
+
+WarningsAsErrors: misc-no-recursion
diff --git a/plugins/codecs/g711/CMakeLists.txt b/plugins/codecs/G711/CMakeLists.txt
index 44e3050069..cc9ff0f191 100644
--- a/plugins/codecs/g711/CMakeLists.txt
+++ b/plugins/codecs/G711/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "A-law G.711"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(g711)
+add_wireshark_plugin_library(g711 codecs)
target_include_directories(g711 PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/g711/G711decode.c b/plugins/codecs/G711/G711decode.c
index e15c407646..e15c407646 100644
--- a/plugins/codecs/g711/G711decode.c
+++ b/plugins/codecs/G711/G711decode.c
diff --git a/plugins/codecs/g722/CMakeLists.txt b/plugins/codecs/G722/CMakeLists.txt
index 72033422d1..37c08cd12e 100644
--- a/plugins/codecs/g722/CMakeLists.txt
+++ b/plugins/codecs/G722/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "G.722"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(g722)
+add_wireshark_plugin_library(g722 codecs)
target_include_directories(g722 PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/g722/G722decode.c b/plugins/codecs/G722/G722decode.c
index 30c461070e..30c461070e 100644
--- a/plugins/codecs/g722/G722decode.c
+++ b/plugins/codecs/G722/G722decode.c
diff --git a/plugins/codecs/g726/CMakeLists.txt b/plugins/codecs/G726/CMakeLists.txt
index 0ad71f3029..239b67f0e5 100644
--- a/plugins/codecs/g726/CMakeLists.txt
+++ b/plugins/codecs/G726/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "G.726"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(g726)
+add_wireshark_plugin_library(g726 codecs)
target_include_directories(g726 PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/g726/G726decode.c b/plugins/codecs/G726/G726decode.c
index 929652511e..929652511e 100644
--- a/plugins/codecs/g726/G726decode.c
+++ b/plugins/codecs/G726/G726decode.c
diff --git a/plugins/codecs/g729/CMakeLists.txt b/plugins/codecs/G729/CMakeLists.txt
index 4f07a6f5ab..6c5330021f 100644
--- a/plugins/codecs/g729/CMakeLists.txt
+++ b/plugins/codecs/G729/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "G.729"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(g729)
+add_wireshark_plugin_library(g729 codecs)
target_include_directories(g729 PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/g729/G729decode.c b/plugins/codecs/G729/G729decode.c
index 7bb564e613..7bb564e613 100644
--- a/plugins/codecs/g729/G729decode.c
+++ b/plugins/codecs/G729/G729decode.c
diff --git a/plugins/codecs/amrnb/CMakeLists.txt b/plugins/codecs/amrnb/CMakeLists.txt
index ccdffe5acc..b49314689e 100644
--- a/plugins/codecs/amrnb/CMakeLists.txt
+++ b/plugins/codecs/amrnb/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "OpenCORE Adaptive Multi Rate (AMR)"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(amrnb)
+add_wireshark_plugin_library(amrnb codecs)
target_include_directories(amrnb PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/ilbc/CMakeLists.txt b/plugins/codecs/iLBC/CMakeLists.txt
index 0b6f41ff31..8929204301 100644
--- a/plugins/codecs/ilbc/CMakeLists.txt
+++ b/plugins/codecs/iLBC/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "Internet Low Bitrate Codec (iLBC)"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(ilbc)
+add_wireshark_plugin_library(ilbc codecs)
target_include_directories(ilbc PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/ilbc/iLBCdecode.c b/plugins/codecs/iLBC/iLBCdecode.c
index d127f1608d..d127f1608d 100644
--- a/plugins/codecs/ilbc/iLBCdecode.c
+++ b/plugins/codecs/iLBC/iLBCdecode.c
diff --git a/plugins/codecs/l16_mono/CMakeLists.txt b/plugins/codecs/l16_mono/CMakeLists.txt
index 686bf9bdf5..f90713b70b 100644
--- a/plugins/codecs/l16_mono/CMakeLists.txt
+++ b/plugins/codecs/l16_mono/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "16-bit audio, mono"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(l16mono)
+add_wireshark_plugin_library(l16mono codecs)
target_include_directories(l16mono PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/opus_dec/CMakeLists.txt b/plugins/codecs/opus_dec/CMakeLists.txt
index 4ec19fc125..dc3bdc2180 100644
--- a/plugins/codecs/opus_dec/CMakeLists.txt
+++ b/plugins/codecs/opus_dec/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "Opus audio"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(opus_dec)
+add_wireshark_plugin_library(opus_dec codecs)
target_include_directories(opus_dec PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/codecs/sbc/CMakeLists.txt b/plugins/codecs/sbc/CMakeLists.txt
index f1ff7ae530..d12de70d59 100644
--- a/plugins/codecs/sbc/CMakeLists.txt
+++ b/plugins/codecs/sbc/CMakeLists.txt
@@ -27,12 +27,12 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-register_codec_files(plugin.c 1
- "Bluetooth SBC"
+register_plugin_files(plugin.c
+ plugin_codec
${CODEC_SRC}
)
-add_wireshark_codec_plugin_library(sbc)
+add_wireshark_plugin_library(sbc codecs)
target_include_directories(sbc PRIVATE ${CMAKE_SOURCE_DIR}/codecs)
diff --git a/plugins/epan/dfilter/ipaddr/CMakeLists.txt b/plugins/epan/dfilter/ipaddr/CMakeLists.txt
index f140b5aefc..967ef95c39 100644
--- a/plugins/epan/dfilter/ipaddr/CMakeLists.txt
+++ b/plugins/epan/dfilter/ipaddr/CMakeLists.txt
@@ -26,7 +26,7 @@ set_source_files_properties(
COMPILE_FLAGS "${WERROR_COMMON_FLAGS}"
)
-add_wireshark_epan_plugin_library(ipaddr)
+add_wireshark_plugin_library(ipaddr epan)
target_link_libraries(ipaddr epan)
diff --git a/plugins/epan/dfilter/ipaddr/ipaddr.c b/plugins/epan/dfilter/ipaddr/ipaddr.c
index 53b7abc54b..f6f7ded5e7 100644
--- a/plugins/epan/dfilter/ipaddr/ipaddr.c
+++ b/plugins/epan/dfilter/ipaddr/ipaddr.c
@@ -19,6 +19,13 @@
#define PLUGIN_VERSION "0.0.0"
#endif
+WS_DLL_PUBLIC_DEF const gchar plugin_version[] = PLUGIN_VERSION;
+WS_DLL_PUBLIC_DEF const int plugin_want_major = WIRESHARK_VERSION_MAJOR;
+WS_DLL_PUBLIC_DEF const int plugin_want_minor = WIRESHARK_VERSION_MINOR;
+
+WS_DLL_PUBLIC void plugin_register(void);
+WS_DLL_PUBLIC uint32_t plugin_describe(void);
+
typedef bool (*ip_is_func_t)(fvalue_t *);
static const struct ws_iana_ip_special_block *
@@ -338,7 +345,7 @@ cleanup(void)
df_func_deregister(&func_ip_is_ula);
}
-static void
+void
plugin_register(void)
{
static dfilter_plugin plug;
@@ -348,13 +355,8 @@ plugin_register(void)
dfilter_plugins_register(&plug);
}
-static struct ws_module module = {
- .flags = WS_PLUGIN_DESC_DFUNCTION,
- .version = PLUGIN_VERSION,
- .spdx_id = WS_PLUGIN_SPDX_GPLv2,
- .home_url = WS_PLUGIN_GITLAB_URL,
- .blurb = "Display filter functions to test IP addresses",
- .register_cb = &plugin_register,
-};
-
-WIRESHARK_PLUGIN_REGISTER_EPAN(&module, 0)
+uint32_t
+plugin_describe(void)
+{
+ return WS_PLUGIN_DESC_DFILTER;
+}
diff --git a/plugins/epan/ethercat/CMakeLists.txt b/plugins/epan/ethercat/CMakeLists.txt
index 3c38643733..afa46e8272 100644
--- a/plugins/epan/ethercat/CMakeLists.txt
+++ b/plugins/epan/ethercat/CMakeLists.txt
@@ -35,11 +35,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "EtherCAT (Ethernet for Control Automation Technology) dissection"
${DISSECTOR_SRC}
)
-add_wireshark_epan_plugin_library(ethercat)
+add_wireshark_plugin_library(ethercat epan)
target_link_libraries(ethercat epan)
diff --git a/plugins/epan/falco_bridge/CMakeLists.txt b/plugins/epan/falco_bridge/CMakeLists.txt
index 2e369e2ee5..2e91bc50a0 100644
--- a/plugins/epan/falco_bridge/CMakeLists.txt
+++ b/plugins/epan/falco_bridge/CMakeLists.txt
@@ -35,11 +35,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "Implements a bridge between Falco plugins and Wireshark"
${DISSECTOR_SRC}
)
-add_logray_epan_plugin_library(falco-bridge)
+add_logray_plugin_library(falco-bridge epan)
# XXX Hacks; need to fix in falcosecurity-libs.
target_compile_definitions(falco-bridge PRIVATE
@@ -49,9 +48,14 @@ target_compile_definitions(falco-bridge PRIVATE
target_include_directories(falco-bridge SYSTEM PRIVATE
${SINSP_INCLUDE_DIRS}
- ${ZLIB_INCLUDE_DIR}
)
+if(WIN32)
+ # libsinsp/dumper.h includes libscap/scap_savefile_api.h, which includes
+ # libscap/scap_zlib.h.
+ target_include_directories(falco-bridge SYSTEM PRIVATE ${ZLIB_INCLUDE_DIR})
+endif()
+
target_link_libraries(falco-bridge
epan
${SINSP_LINK_LIBRARIES}
diff --git a/plugins/epan/falco_bridge/packet-falco-bridge.c b/plugins/epan/falco_bridge/packet-falco-bridge.c
index a970f7f45c..8d3ccccf7a 100644
--- a/plugins/epan/falco_bridge/packet-falco-bridge.c
+++ b/plugins/epan/falco_bridge/packet-falco-bridge.c
@@ -18,8 +18,13 @@
// - Add a configuration preference for individual conversation filters vs ANDing them?
// We would need to add deregister_(|log_)conversation_filter before we implement this.
// - Add syscall IP address conversation support
+// - Add prefs for
+// - set_snaplen
+// - set_dopfailed
+// - set_import_users
#include "config.h"
+#define WS_LOG_DOMAIN "falco-bridge"
#include <stddef.h>
#include <stdint.h>
@@ -32,14 +37,17 @@
#include <wiretap/wtap.h>
+#include <epan/conversation.h>
+#include <epan/conversation_filter.h>
+#include <epan/dfilter/dfilter-translator.h>
+#include <epan/dfilter/sttype-field.h>
+#include <epan/dfilter/sttype-op.h>
#include <epan/exceptions.h>
#include <epan/follow.h>
#include <epan/packet.h>
#include <epan/prefs.h>
#include <epan/proto.h>
#include <epan/proto_data.h>
-#include <epan/conversation.h>
-#include <epan/conversation_filter.h>
#include <epan/stats_tree.h>
#include <epan/stat_tap_ui.h>
#include <epan/tap.h>
@@ -80,7 +88,8 @@ typedef struct bridge_info {
hf_register_info* hf_v6;
int *hf_v6_ids;
int* hf_id_to_addr_id; // Maps an hf offset to an hf_v[46] offset
- uint32_t visible_fields;
+ unsigned visible_fields;
+ unsigned addr_fields;
uint32_t* field_flags;
int* field_ids;
uint32_t num_conversation_filters;
@@ -123,10 +132,10 @@ static int ett_json;
static int container_io_tap;
-static gboolean pref_show_internal = false;
+static bool pref_show_internal;
static dissector_table_t ptype_dissector_table;
-static dissector_handle_t json_handle = NULL;
+static dissector_handle_t json_handle;
static int fd_follow_tap;
@@ -138,14 +147,13 @@ const char* get_str_value(sinsp_field_extract_t *sinsp_fields, uint32_t sf_idx);
/*
* Array of plugin bridges
*/
-bridge_info* bridges = NULL;
-guint nbridges = 0;
-guint n_conv_fields = 0;
+bridge_info* bridges;
+size_t nbridges;
/*
* sinsp extractor span
*/
-sinsp_span_t *sinsp_span = NULL;
+sinsp_span_t *sinsp_span;
/*
* Fields
@@ -195,7 +203,7 @@ is_string_address_field(enum ftenum ftype, const char *abbrev) {
return false;
}
-static gboolean
+static bool
is_filter_valid(packet_info *pinfo, void *cfi_ptr)
{
conv_filter_info *cfi = (conv_filter_info *)cfi_ptr;
@@ -214,7 +222,7 @@ is_filter_valid(packet_info *pinfo, void *cfi_ptr)
}
static gchar*
-build_filter(packet_info *pinfo _U_, void *cfi_ptr)
+build_conversation_filter(packet_info *pinfo _U_, void *cfi_ptr)
{
conv_filter_info *cfi = (conv_filter_info *)cfi_ptr;
@@ -225,6 +233,134 @@ build_filter(packet_info *pinfo _U_, void *cfi_ptr)
return ws_strdup_printf("%s eq %s", cfi->field_info->hfinfo.abbrev, cfi->strbuf->str);
}
+// Falco rule translation
+
+const char *
+stnode_op_to_string(stnode_op_t op) {
+ switch (op) {
+ case STNODE_OP_NOT: return "!";
+ case STNODE_OP_AND: return "&&";
+ case STNODE_OP_OR: return "||";
+ case STNODE_OP_ANY_EQ: return "=";
+ case STNODE_OP_ALL_NE: return "!=";
+ case STNODE_OP_GT: return ">";
+ case STNODE_OP_GE: return ">=";
+ case STNODE_OP_LT: return "<";
+ case STNODE_OP_LE: return "<=";
+ case STNODE_OP_CONTAINS: return "icontains";
+ case STNODE_OP_UNARY_MINUS: return "-";
+ case STNODE_OP_IN:
+ case STNODE_OP_NOT_IN:
+ default:
+ break;
+ }
+ return NULL;
+}
+
+char *hfinfo_to_filtercheck(header_field_info *hfinfo) {
+ if (!hfinfo) {
+ return NULL;
+ }
+
+ const char *filtercheck = NULL;
+ for (size_t br_idx = 0; br_idx < nbridges && !filtercheck; br_idx++) {
+ bridge_info *bridge = &bridges[br_idx];
+ unsigned hf_idx;
+ for (hf_idx = 0; hf_idx < bridge->visible_fields; hf_idx++) {
+ if (hfinfo->id == bridge->hf_ids[hf_idx]) {
+ ptrdiff_t pfx_off = 0;
+ if (g_str_has_prefix(hfinfo->abbrev, FALCO_FIELD_NAME_PREFIX)) {
+ pfx_off = strlen(FALCO_FIELD_NAME_PREFIX);
+ }
+ return g_strdup(hfinfo->abbrev + pfx_off);
+ }
+ }
+ for (hf_idx = 0; hf_idx < bridge->addr_fields; hf_idx++) {
+ if (hfinfo->id == bridge->hf_v4_ids[hf_idx] || hfinfo->id == bridge->hf_v6_ids[hf_idx]) {
+ size_t fc_len = strlen(hfinfo->abbrev) - strlen(".v?");
+ return g_strndup(hfinfo->abbrev, fc_len);
+ }
+ }
+ }
+ return NULL;
+}
+
+// Falco rule syntax is specified at
+// https://github.com/falcosecurity/libs/blob/master/userspace/libsinsp/filter/parser.h
+
+// NOLINTNEXTLINE(misc-no-recursion)
+bool visit_dfilter_node(stnode_t *node, stnode_op_t parent_bool_op, GString *falco_rule)
+{
+ stnode_t *left, *right;
+
+ if (stnode_type_id(node) == STTYPE_TEST) {
+ stnode_op_t op = STNODE_OP_UNINITIALIZED;
+ sttype_oper_get(node, &op, &left, &right);
+
+ const char *op_str = stnode_op_to_string(op);
+ if (!op_str) {
+ return false;
+ }
+
+ if (left && right) {
+ bool add_parens = (op == STNODE_OP_AND || op == STNODE_OP_OR) && op != parent_bool_op && parent_bool_op != STNODE_OP_UNINITIALIZED;
+ if (add_parens) {
+ g_string_append_c(falco_rule, '(');
+ }
+ if (!visit_dfilter_node(left, op, falco_rule)) {
+ return false;
+ }
+ g_string_append_printf(falco_rule, " %s ", op_str);
+ if (!visit_dfilter_node(right, op, falco_rule)) {
+ return false;
+ }
+ if (add_parens) {
+ g_string_append_c(falco_rule, ')');
+ }
+ }
+ else if (left) {
+ op = op == STNODE_OP_NOT ? op : parent_bool_op;
+ if (falco_rule->len > 0) {
+ g_string_append_c(falco_rule, ' ');
+ }
+ g_string_append_printf(falco_rule, "%s ", op_str);
+ if (!visit_dfilter_node(left, op, falco_rule)) {
+ return false;
+ }
+ }
+ else if (right) {
+ ws_assert_not_reached();
+ }
+ }
+ else if (stnode_type_id(node) == STTYPE_SET) {
+ return false;
+ }
+ else if (stnode_type_id(node) == STTYPE_FUNCTION) {
+ return false;
+ }
+ else if (stnode_type_id(node) == STTYPE_FIELD) {
+ header_field_info *hfinfo = sttype_field_hfinfo(node);
+ char *filtercheck = hfinfo_to_filtercheck(hfinfo);
+ if (!filtercheck) {
+ return false;
+ }
+ g_string_append_printf(falco_rule, "%s", filtercheck);
+ g_free(filtercheck);
+ }
+ else if (stnode_type_id(node) == STTYPE_FVALUE) {
+ g_string_append_printf(falco_rule, "%s", stnode_tostr(node, true));
+ }
+ else {
+ g_string_append_printf(falco_rule, "%s", stnode_type_name(node));
+ }
+
+ return true;
+}
+
+bool dfilter_to_falco_rule(stnode_t *root_node, GString *falco_rule) {
+ return visit_dfilter_node(root_node, STNODE_OP_UNINITIALIZED, falco_rule);
+}
+
static void
create_source_hfids(bridge_info* bi)
{
@@ -235,7 +371,7 @@ create_source_hfids(bridge_info* bi)
size_t tot_fields = get_sinsp_source_nfields(bi->ssi);
bi->visible_fields = 0;
- uint32_t addr_fields = 0;
+ bi->addr_fields = 0;
sinsp_field_info_t sfi;
bi->num_conversation_filters = 0;
@@ -249,7 +385,7 @@ create_source_hfids(bridge_info* bi)
continue;
}
if (sfi.is_numeric_address || is_string_address_field(sfi.type, sfi.abbrev)) {
- addr_fields++;
+ bi->addr_fields++;
}
bi->visible_fields++;
@@ -264,12 +400,12 @@ create_source_hfids(bridge_info* bi)
bi->field_ids = (int*)wmem_alloc(wmem_epan_scope(), bi->visible_fields * sizeof(int));
bi->field_flags = (guint32*)wmem_alloc(wmem_epan_scope(), bi->visible_fields * sizeof(guint32));
- if (addr_fields) {
+ if (bi->addr_fields) {
bi->hf_id_to_addr_id = (int *)wmem_alloc(wmem_epan_scope(), bi->visible_fields * sizeof(int));
- bi->hf_v4 = (hf_register_info*)wmem_alloc(wmem_epan_scope(), addr_fields * sizeof(hf_register_info));
- bi->hf_v4_ids = (int*)wmem_alloc0(wmem_epan_scope(), addr_fields * sizeof(int));
- bi->hf_v6 = (hf_register_info*)wmem_alloc(wmem_epan_scope(), addr_fields * sizeof(hf_register_info));
- bi->hf_v6_ids = (int*)wmem_alloc0(wmem_epan_scope(), addr_fields * sizeof(int));
+ bi->hf_v4 = (hf_register_info*)wmem_alloc(wmem_epan_scope(), bi->addr_fields * sizeof(hf_register_info));
+ bi->hf_v4_ids = (int*)wmem_alloc0(wmem_epan_scope(), bi->addr_fields * sizeof(int));
+ bi->hf_v6 = (hf_register_info*)wmem_alloc(wmem_epan_scope(), bi->addr_fields * sizeof(hf_register_info));
+ bi->hf_v6_ids = (int*)wmem_alloc0(wmem_epan_scope(), bi->addr_fields * sizeof(int));
}
if (bi->num_conversation_filters) {
@@ -329,7 +465,7 @@ create_source_hfids(bridge_info* bi)
fdisplay = BASE_OCT;
break;
default:
- THROW_FORMATTED(DissectorError, "error in source %s: format %d for field %s is not supported",
+ THROW_FORMATTED(DissectorError, "error in Falco bridge plugin %s: format %d for field %s is not supported",
get_sinsp_source_name(bi->ssi), sfi.display_format, sfi.abbrev);
}
break;
@@ -340,6 +476,11 @@ create_source_hfids(bridge_info* bi)
sfi.abbrev, sfi.type);
}
+ if(strlen(sfi.display) == 0) {
+ THROW_FORMATTED(DissectorError, "error in Falco bridge plugin %s: field %s is missing display name",
+ get_sinsp_source_name(bi->ssi), sfi.abbrev);
+ }
+
hf_register_info finfo = {
bi->hf_ids + fld_cnt,
{
@@ -359,7 +500,7 @@ create_source_hfids(bridge_info* bi)
const char *source_name = get_sinsp_source_name(bi->ssi);
const char *conv_filter_name = wmem_strdup_printf(wmem_epan_scope(), "%s %s", source_name, bi->hf[fld_cnt].hfinfo.name);
- register_log_conversation_filter(source_name, conv_filter_name, is_filter_valid, build_filter, &bi->conversation_filters[conv_fld_cnt]);
+ register_log_conversation_filter(source_name, conv_filter_name, is_filter_valid, build_conversation_filter, &bi->conversation_filters[conv_fld_cnt]);
if (conv_fld_cnt == 0) {
add_conversation_filter_protocol(source_name);
}
@@ -371,7 +512,7 @@ create_source_hfids(bridge_info* bi)
}
if (sfi.is_numeric_address || is_string_address_field(sfi.type, sfi.abbrev)) {
- ws_assert(addr_fld_cnt < addr_fields);
+ ws_assert(addr_fld_cnt < bi->addr_fields);
bi->hf_id_to_addr_id[fld_cnt] = addr_fld_cnt;
hf_register_info finfo_v4 = {
@@ -506,7 +647,7 @@ extract_syscall_conversation_fields (packet_info *pinfo, falco_conv_filter_field
return true;
}
-static gboolean sysdig_syscall_filter_valid(packet_info *pinfo, void *user_data _U_) {
+static bool sysdig_syscall_filter_valid(packet_info *pinfo, void *user_data _U_) {
if (!proto_is_frame_protocol(pinfo->layers, "sysdig")) {
return false;
}
@@ -519,7 +660,7 @@ static gboolean sysdig_syscall_filter_valid(packet_info *pinfo, void *user_data
return true;
}
-static gboolean sysdig_syscall_container_filter_valid(packet_info *pinfo, void *user_data) {
+static bool sysdig_syscall_container_filter_valid(packet_info *pinfo, void *user_data) {
if (!sysdig_syscall_filter_valid(pinfo, user_data)) {
return false;
}
@@ -532,7 +673,7 @@ static gboolean sysdig_syscall_container_filter_valid(packet_info *pinfo, void *
return cff.container_id != NULL;
}
-static gboolean sysdig_syscall_fd_filter_valid(packet_info *pinfo, void *user_data) {
+static bool sysdig_syscall_fd_filter_valid(packet_info *pinfo, void *user_data) {
if (!sysdig_syscall_filter_valid(pinfo, user_data)) {
return false;
}
@@ -1252,6 +1393,8 @@ proto_register_falcoplugin(void)
WS_DIR *dir;
WS_DIRENT *file;
char *filename;
+ // XXX Falco plugins should probably be installed in a path that reflects
+ // the Falco version or its plugin API version.
char *spdname = g_build_filename(get_plugins_dir(), "falco", NULL);
char *ppdname = g_build_filename(get_plugins_pers_dir(), "falco", NULL);
@@ -1352,5 +1495,7 @@ proto_register_falcoplugin(void)
proto_register_subtree_array(ett, array_length(ett));
proto_register_subtree_array(ett_lin, array_length(ett_lin));
+ register_dfilter_translator("Falco rule", dfilter_to_falco_rule);
+
register_shutdown_routine(on_wireshark_exit);
}
diff --git a/plugins/epan/falco_bridge/sinsp-span.cpp b/plugins/epan/falco_bridge/sinsp-span.cpp
index 98612f8cbf..866c0888b5 100644
--- a/plugins/epan/falco_bridge/sinsp-span.cpp
+++ b/plugins/epan/falco_bridge/sinsp-span.cpp
@@ -11,14 +11,17 @@
*/
#include "config.h"
+#define WS_LOG_DOMAIN "sinsp-span"
#include <stddef.h>
#include <stdint.h>
#include <glib.h>
+#include <epan/dfilter/dfilter-translator.h>
#include <epan/wmem_scopes.h>
+#include <wsutil/array.h>
#include <wsutil/unicode-utils.h>
#ifdef _MSC_VER
@@ -295,7 +298,7 @@ void add_arg_event(uint32_t arg_number,
sinsp_source_info_t *ssi,
sinsp_syscall_category_e args_syscall_category) {
- if (arg_number >= sizeof(args_event_fields) / sizeof(args_event_fields[0])) {
+ if (arg_number >= array_length(args_event_fields)) {
ws_error("falco event has too many arguments (%" PRIu32 ")", arg_number);
}
@@ -350,7 +353,7 @@ void add_lineage_events(uint32_t ancestor_number,
sinsp_source_info_t *ssi,
sinsp_syscall_category_e args_syscall_category) {
- if (ancestor_number >= sizeof(proc_lineage_event_fields) / sizeof(proc_lineage_event_fields[0]) / N_PROC_LINEAGE_ENTRY_FIELDS) {
+ if (ancestor_number >= array_length(proc_lineage_event_fields) / N_PROC_LINEAGE_ENTRY_FIELDS) {
ws_error("falco lineage mismatch (%" PRIu32 ")", ancestor_number);
}
@@ -384,7 +387,7 @@ bool skip_field(const filtercheck_field_info *ffi) {
}
/*
- * We want the flexibility to decide the deiplay order of the fields in the UI, since
+ * We want the flexibility to decide the display order of the fields in the UI, since
* the order in which they are defined in filterchecks.{cpp,h} is not necessarily the one we want.
*/
void reorder_syscall_fields(std::vector<const filter_check_info*>* all_syscall_fields) {
@@ -661,6 +664,19 @@ char* get_evt_arg_name(void* sinp_evt_info, uint32_t arg_num) {
return realinfo->params[arg_num].name;
}
+// Ensure that our caches can index evt_num - 1
+static void ensure_cache_size(sinsp_span_t *sinsp_span, uint64_t evt_num)
+{
+ if (evt_num <= sinsp_span->sfe_ptrs.size()) {
+ // Not necessarily an error, e.g. if we're expanding to handle a frame number at EOF
+ return;
+ }
+ // XXX check for evt_num < 1?
+ sinsp_span->sfe_ptrs.resize(evt_num);
+ sinsp_span->sfe_lengths.resize(evt_num);
+ sinsp_span->sfe_infos.resize(evt_num);
+}
+
void open_sinsp_capture(sinsp_span_t *sinsp_span, const char *filepath)
{
sinsp_span->sfe_slab = NULL;
@@ -688,14 +704,6 @@ static void add_syscall_event_to_cache(sinsp_span_t *sinsp_span, sinsp_source_in
{
uint64_t evt_num = evt->get_num();
- // Fill in any gaps
- if (evt_num > 1 && evt_num - 1 > sinsp_span->sfe_ptrs.size()) {
- ws_debug("Filling syscall gap from %d to %u", (int) sinsp_span->sfe_ptrs.size(), (unsigned) evt_num - 1);
- sinsp_span->sfe_ptrs.resize(evt_num - 1);
- sinsp_span->sfe_lengths.resize(evt_num - 1);
- sinsp_span->sfe_infos.resize(evt_num - 1);
- }
-
// libsinsp requires that events be processed in order so we cache our extracted
// data during the first pass. We don't know how many fields we're going to extract
// during an event, so we preallocate slabs of `sfe_slab_prealloc` entries.
@@ -811,13 +819,11 @@ static void add_syscall_event_to_cache(sinsp_span_t *sinsp_span, sinsp_source_in
}
sinsp_span->sfe_slab_offset += sfe_idx;
- sinsp_span->sfe_ptrs.push_back(sfe_block);
- sinsp_span->sfe_lengths.push_back(sfe_idx);
- sinsp_span->sfe_infos.push_back(evt->get_info());
- if (sinsp_span->sfe_ptrs.size() < evt_num) {
- ws_warning("Unable to fill cache to the proper size (%d vs %u)", (int) sinsp_span->sfe_ptrs.size(), (unsigned) evt_num);
- }
+ ensure_cache_size(sinsp_span, evt_num);
+ sinsp_span->sfe_ptrs[evt_num - 1] = sfe_block;
+ sinsp_span->sfe_lengths[evt_num - 1] = sfe_idx;
+ sinsp_span->sfe_infos[evt_num - 1] = evt->get_info();
return;
}
@@ -876,9 +882,6 @@ bool extract_syscall_source_fields(sinsp_span_t *sinsp_span, sinsp_source_info_t
return false;
}
- // libsinsp event numbers may or may not be contiguous. Make sure our event cache is at
- // least as large as the current frame number. add_syscall_event_to_cache will fill in
- // any gaps with null entries.
while (frame_num > sinsp_span->sfe_ptrs.size()) {
sinsp_evt *evt = NULL;
try {
@@ -887,11 +890,13 @@ bool extract_syscall_source_fields(sinsp_span_t *sinsp_span, sinsp_source_info_t
case SCAP_TIMEOUT:
case SCAP_FILTERED_EVENT:
break;
+ case SCAP_UNEXPECTED_BLOCK:
+ ws_debug("Filling unexpected block gap from %d to %u", (int) sinsp_span->sfe_ptrs.size(), frame_num);
+ ensure_cache_size(sinsp_span, frame_num);
+ break;
case SCAP_EOF:
- ws_debug("Filling syscall EOF gap from %d to %u", (int) sinsp_span->sfe_ptrs.size(), frame_num);
- sinsp_span->sfe_ptrs.resize(frame_num);
- sinsp_span->sfe_lengths.resize(frame_num);
- sinsp_span->sfe_infos.resize(frame_num);
+ ws_debug("Filling syscall EOF gap from %d to %u at %u", (int) sinsp_span->sfe_ptrs.size(), frame_num, (unsigned)sinsp_span->inspector.get_bytes_read());
+ ensure_cache_size(sinsp_span, frame_num);
break;
case SCAP_SUCCESS:
add_syscall_event_to_cache(sinsp_span, ssi, evt);
diff --git a/plugins/epan/gryphon/CMakeLists.txt b/plugins/epan/gryphon/CMakeLists.txt
index 22bb87cf2b..e047c06911 100644
--- a/plugins/epan/gryphon/CMakeLists.txt
+++ b/plugins/epan/gryphon/CMakeLists.txt
@@ -29,11 +29,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "Gryphon automotive network tool protocol"
${DISSECTOR_SRC}
)
-add_wireshark_epan_plugin_library(gryphon)
+add_wireshark_plugin_library(gryphon epan)
target_link_libraries(gryphon epan)
diff --git a/plugins/epan/gryphon/packet-gryphon.c b/plugins/epan/gryphon/packet-gryphon.c
index 2b4d4532b7..40215e0f15 100644
--- a/plugins/epan/gryphon/packet-gryphon.c
+++ b/plugins/epan/gryphon/packet-gryphon.c
@@ -373,7 +373,7 @@ static gint ett_gryphon_blm_mode;
static expert_field ei_gryphon_type;
/* desegmentation of Gryphon */
-static gboolean gryphon_desegment = TRUE;
+static bool gryphon_desegment = true;
/*
* Length of the frame header.
@@ -1118,6 +1118,7 @@ decode_event(tvbuff_t *tvb, int offset, proto_tree *pt)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
decode_misc (tvbuff_t *tvb, int offset, packet_info* pinfo, proto_tree *pt)
{
tvbuff_t *next_tvb;
@@ -2715,6 +2716,7 @@ resp_restore_session(tvbuff_t *tvb, int offset, proto_tree *pt)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
cmd_addresp(tvbuff_t *tvb, int offset, packet_info* pinfo, proto_tree *pt)
{
proto_item *item;
@@ -3700,6 +3702,7 @@ get_conversation_data(packet_info* pinfo)
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
decode_command(tvbuff_t *tvb, packet_info* pinfo, int msglen, int offset, int dst, proto_tree *pt)
{
guint32 cmd;
@@ -3751,6 +3754,7 @@ decode_command(tvbuff_t *tvb, packet_info* pinfo, int msglen, int offset, int ds
ft = proto_tree_add_subtree_format(pt, tvb, offset, msglen, ett_gryphon_command_data, NULL,
"Data: (%d byte%s)", msglen, plurality(msglen, "", "s"));
+ increment_dissection_depth(pinfo);
switch (cmd)
{
case CMD_INIT:
@@ -3958,12 +3962,14 @@ decode_command(tvbuff_t *tvb, packet_info* pinfo, int msglen, int offset, int ds
offset += msglen;
break;
}
+ decrement_dissection_depth(pinfo);
}
return offset;
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tree *pt)
{
int msglen;
@@ -4042,6 +4048,7 @@ decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tr
ft = proto_tree_add_subtree_format(pt, tvb, offset, msglen, ett_gryphon_response_data, NULL,
"Data: (%d byte%s)", msglen, plurality(msglen, "", "s"));
+ increment_dissection_depth(pinfo);
switch (cmd)
{
case CMD_GET_CONFIG:
@@ -4191,6 +4198,7 @@ decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tr
proto_tree_add_item(ft, hf_gryphon_data, tvb, offset, msglen, ENC_NA);
offset += msglen;
}
+ decrement_dissection_depth(pinfo);
}
return offset;
@@ -4202,6 +4210,7 @@ decode_response(tvbuff_t *tvb, packet_info* pinfo, int offset, int src, proto_tr
* So, this function will decode a packet and return the offset.
*/
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_gryphon_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean is_msgresp_add)
{
proto_tree *gryphon_tree;
@@ -4273,6 +4282,7 @@ dissect_gryphon_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gbo
body_tree = proto_tree_add_subtree(gryphon_tree, tvb, offset, msglen, ett_gryphon_body, NULL, "Body");
+ increment_dissection_depth(pinfo);
switch (frmtyp) {
case GY_FT_CMD:
offset = decode_command(tvb, pinfo, msglen, offset, dest, body_tree);
@@ -4299,6 +4309,7 @@ dissect_gryphon_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gbo
proto_tree_add_item(body_tree, hf_gryphon_data, tvb, offset, msglen, ENC_NA);
break;
}
+ decrement_dissection_depth(pinfo);
/*debug*/
/*i = msgend - offset;*/
diff --git a/plugins/epan/irda/CMakeLists.txt b/plugins/epan/irda/CMakeLists.txt
index 47a2c7322e..31bfe89720 100644
--- a/plugins/epan/irda/CMakeLists.txt
+++ b/plugins/epan/irda/CMakeLists.txt
@@ -31,11 +31,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "IrDA dissection"
${DISSECTOR_SRC}
)
-add_wireshark_epan_plugin_library(irda)
+add_wireshark_plugin_library(irda epan)
target_link_libraries(irda epan)
diff --git a/plugins/epan/mate/CMakeLists.txt b/plugins/epan/mate/CMakeLists.txt
index e012f536bc..62b6c09048 100644
--- a/plugins/epan/mate/CMakeLists.txt
+++ b/plugins/epan/mate/CMakeLists.txt
@@ -45,12 +45,11 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "Meta Analysis Tracing Engine (MATE)"
${DISSECTOR_SRC}
${DISSECTOR_SUPPORT_SRC}
)
-add_wireshark_epan_plugin_library(mate)
+add_wireshark_plugin_library(mate epan)
target_link_libraries(mate epan)
diff --git a/plugins/epan/mate/mate_runtime.c b/plugins/epan/mate/mate_runtime.c
index 8cda791a62..8a8c07d1d0 100644
--- a/plugins/epan/mate/mate_runtime.c
+++ b/plugins/epan/mate/mate_runtime.c
@@ -37,7 +37,7 @@ typedef struct _gogkey {
} gogkey;
-static mate_runtime_data* rd = NULL;
+static mate_runtime_data* rd;
static int zero = 5;
@@ -45,7 +45,7 @@ static int* dbg = &zero;
static int* dbg_pdu = &zero;
static int* dbg_gop = &zero;
static int* dbg_gog = &zero;
-static FILE* dbg_facility = NULL;
+static FILE* dbg_facility;
static gboolean destroy_mate_pdus(gpointer k _U_, gpointer v, gpointer p _U_) {
mate_pdu* pdu = (mate_pdu*) v;
@@ -645,6 +645,7 @@ static void analyze_pdu(mate_config* mc, mate_pdu* pdu) {
}
static proto_node *
+// NOLINTNEXTLINE(misc-no-recursion)
proto_tree_find_node_from_finfo(proto_tree *tree, field_info *finfo)
{
proto_node *pnode = tree;
@@ -659,6 +660,7 @@ proto_tree_find_node_from_finfo(proto_tree *tree, field_info *finfo)
while (child != NULL) {
current = child;
child = current->next;
+ // We recurse here, but we're limited by tree depth checks in epan
if ((pnode = proto_tree_find_node_from_finfo((proto_tree *)current, finfo))) {
return pnode;
}
diff --git a/plugins/epan/mate/mate_util.c b/plugins/epan/mate/mate_util.c
index 4fa7e653e4..22f9e68eeb 100644
--- a/plugins/epan/mate/mate_util.c
+++ b/plugins/epan/mate/mate_util.c
@@ -222,24 +222,24 @@ typedef union _any_avp_type {
} any_avp_type;
-static SCS_collection* avp_strings = NULL;
+static SCS_collection* avp_strings;
#ifdef _AVP_DEBUGGING
-static FILE* dbg_fp = NULL;
+static FILE* dbg_fp;
-static int dbg_level = 0;
+static int dbg_level;
static int* dbg = &dbg_level;
-static int dbg_avp_level = 0;
+static int dbg_avp_level;
static int* dbg_avp = &dbg_avp_level;
-static int dbg_avp_op_level = 0;
+static int dbg_avp_op_level;
static int* dbg_avp_op = &dbg_avp_op_level;
-static int dbg_avpl_level = 0;
+static int dbg_avpl_level;
static int* dbg_avpl = &dbg_avpl_level;
-static int dbg_avpl_op_level = 0;
+static int dbg_avpl_op_level;
static int* dbg_avpl_op = &dbg_avpl_op_level;
/**
diff --git a/plugins/epan/mate/packet-mate.c b/plugins/epan/mate/packet-mate.c
index f4621e349d..10f4d6a7d2 100644
--- a/plugins/epan/mate/packet-mate.c
+++ b/plugins/epan/mate/packet-mate.c
@@ -24,7 +24,7 @@
void proto_register_mate(void);
void proto_reg_handoff_mate(void);
-static mate_config* mc = NULL;
+static mate_config* mc;
static int proto_mate;
@@ -37,14 +37,14 @@ static int hf_mate_gop_key;
static expert_field ei_mate_undefined_attribute;
static const gchar* pref_mate_config_filename = "";
-static const gchar* current_mate_config_filename = NULL;
+static const gchar* current_mate_config_filename;
#ifdef _AVP_DEBUGGING
-static int pref_avp_debug_general = 0;
-static int pref_avp_debug_avp = 0;
-static int pref_avp_debug_avp_op = 0;
-static int pref_avp_debug_avpl = 0;
-static int pref_avp_debug_avpl_op = 0;
+static int pref_avp_debug_general;
+static int pref_avp_debug_avp;
+static int pref_avp_debug_avp_op;
+static int pref_avp_debug_avpl;
+static int pref_avp_debug_avpl_op;
#endif
static dissector_handle_t mate_handle;
diff --git a/plugins/epan/opcua/CMakeLists.txt b/plugins/epan/opcua/CMakeLists.txt
index 04c1bbb5a0..7299358f7d 100644
--- a/plugins/epan/opcua/CMakeLists.txt
+++ b/plugins/epan/opcua/CMakeLists.txt
@@ -45,12 +45,11 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "OpcUa (OPC Unified Architecture) dissection"
${DISSECTOR_SRC}
${DISSECTOR_SUPPORT_SRC}
)
-add_wireshark_epan_plugin_library(opcua)
+add_wireshark_plugin_library(opcua epan)
target_link_libraries(opcua epan ${GCRYPT_LIBRARIES})
diff --git a/plugins/epan/opcua/opcua.c b/plugins/epan/opcua/opcua.c
index 10ad0e1b3f..f793f721b4 100644
--- a/plugins/epan/opcua/opcua.c
+++ b/plugins/epan/opcua/opcua.c
@@ -41,8 +41,8 @@ void proto_register_opcua(void);
extern const value_string g_requesttypes[];
extern const int g_NumServices;
-static const gchar *g_opcua_debug_file_name = NULL;
-int g_opcua_default_sig_len = 0;
+static const gchar *g_opcua_debug_file_name;
+int g_opcua_default_sig_len;
/* forward reference */
void proto_reg_handoff_opcua(void);
diff --git a/plugins/epan/opcua/opcua_simpletypes.c b/plugins/epan/opcua/opcua_simpletypes.c
index da98a823f5..b8f4d67b33 100644
--- a/plugins/epan/opcua/opcua_simpletypes.c
+++ b/plugins/epan/opcua/opcua_simpletypes.c
@@ -840,6 +840,7 @@ proto_item* parseDateTime(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U
return item;
}
+// NOLINTNEXTLINE(misc-no-recursion)
void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static int * const diag_mask[] = {&hf_opcua_diag_mask_symbolicflag,
@@ -874,6 +875,7 @@ void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gi
proto_tree_add_bitmask(subtree, tvb, iOffset, hf_opcua_diag_mask, ett_opcua_diagnosticinfo_encodingmask, diag_mask, ENC_LITTLE_ENDIAN);
iOffset++;
+ increment_dissection_depth(pinfo);
if (EncodingMask & DIAGNOSTICINFO_ENCODINGMASK_SYMBOLICID_FLAG)
{
parseInt32(subtree, tvb, pinfo, &iOffset, hf_opcua_diag_symbolicid);
@@ -902,6 +904,7 @@ void parseDiagnosticInfo(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gi
{
parseDiagnosticInfo(subtree, tvb, pinfo, &iOffset, "Inner DiagnosticInfo");
}
+ decrement_dissection_depth(pinfo);
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
@@ -957,6 +960,7 @@ void parseCertificate(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint
*pOffset = iOffset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
static int * const datavalue_mask[] = {&hf_opcua_datavalue_mask_valueflag,
@@ -977,6 +981,7 @@ void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *p
proto_tree_add_bitmask(subtree, tvb, iOffset, hf_opcua_datavalue_mask, ett_opcua_datavalue_encodingmask, datavalue_mask, ENC_LITTLE_ENDIAN);
iOffset++;
+ increment_dissection_depth(pinfo);
if (EncodingMask & DATAVALUE_ENCODINGBYTE_VALUE)
{
parseVariant(subtree, tvb, pinfo, &iOffset, "Value");
@@ -1001,11 +1006,13 @@ void parseDataValue(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *p
{
parseUInt16(subtree, tvb, pinfo, &iOffset, hf_opcua_ServerPicoseconds);
}
+ decrement_dissection_depth(pinfo);
proto_item_set_end(ti, tvb, iOffset);
*pOffset = iOffset;
}
+// NOLINTNEXTLINE(misc-no-recursion)
void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOffset, const char *szFieldName)
{
proto_item *ti;
@@ -1033,6 +1040,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
if (EncodingMask & VARIANT_ARRAYMASK)
{
/* type is encoded in bits 0-5 */
+ increment_dissection_depth(pinfo);
switch(EncodingMask & 0x3f)
{
case OpcUaType_Null: break;
@@ -1062,6 +1070,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "DataValue", "DataValue", parseDataValue, ett_opcua_array_DataValue); break;
case OpcUaType_Variant: parseArrayComplex(subtree, tvb, pinfo, &iOffset, "Variant", "Variant", parseVariant, ett_opcua_array_Variant); break;
}
+ decrement_dissection_depth(pinfo);
if (EncodingMask & VARIANT_ARRAYDIMENSIONS)
{
@@ -1091,6 +1100,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
else
{
/* type is encoded in bits 0-5 */
+ increment_dissection_depth(pinfo);
switch(EncodingMask & 0x3f)
{
case OpcUaType_Null: break;
@@ -1120,6 +1130,7 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, gint *pOf
case OpcUaType_DataValue: parseDataValue(subtree, tvb, pinfo, &iOffset, "Value"); break;
case OpcUaType_Variant: parseVariant(subtree, tvb, pinfo, &iOffset, "Value"); break;
}
+ decrement_dissection_depth(pinfo);
}
proto_item_set_end(ti, tvb, iOffset);
diff --git a/plugins/epan/pluginifdemo/CMakeLists.txt b/plugins/epan/pluginifdemo/CMakeLists.txt
index 3180c9c91a..95c05a032a 100644
--- a/plugins/epan/pluginifdemo/CMakeLists.txt
+++ b/plugins/epan/pluginifdemo/CMakeLists.txt
@@ -53,11 +53,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "Qt demonstration plugin"
${DISSECTOR_SRC}
)
-add_wireshark_epan_plugin_library(pluginifdemo)
+add_wireshark_plugin_library(pluginifdemo epan)
target_link_libraries(pluginifdemo epan Qt${qtver}::Core Qt${qtver}::Widgets Qt${qtver}::PrintSupport)
diff --git a/plugins/epan/profinet/CMakeLists.txt b/plugins/epan/profinet/CMakeLists.txt
index 005d7c3a82..7e6ca56bba 100644
--- a/plugins/epan/profinet/CMakeLists.txt
+++ b/plugins/epan/profinet/CMakeLists.txt
@@ -43,12 +43,11 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "PROFINET dissector"
${DISSECTOR_SRC}
${DISSECTOR_SUPPORT_SRC}
)
-add_wireshark_epan_plugin_library(profinet)
+add_wireshark_plugin_library(profinet epan)
target_link_libraries(profinet epan)
diff --git a/plugins/epan/profinet/packet-dcerpc-pn-io.c b/plugins/epan/profinet/packet-dcerpc-pn-io.c
index 454d73ba7f..f4203a1eeb 100644
--- a/plugins/epan/profinet/packet-dcerpc-pn-io.c
+++ b/plugins/epan/profinet/packet-dcerpc-pn-io.c
@@ -861,6 +861,49 @@ static int hf_pn_io_pe_service_modifier;
static int hf_pn_io_pe_service_status;
static int hf_pn_io_pe_service_structure_id;
static int hf_pn_io_pe_service_errorcode;
+static int hf_pn_io_pe_service_datarequest;
+static int hf_pn_io_pe_service_dataresponse;
+static int hf_pn_io_pe_data_count;
+static int hf_pn_io_pe_pause_time;
+static int hf_pn_io_pe_time_min_pause;
+static int hf_pn_io_pe_time_to_pause;
+static int hf_pn_io_pe_time_min_length_of_stay;
+static int hf_pn_io_pe_time_max_length_of_stay;
+static int hf_pn_io_pe_regular_time_to_operate;
+static int hf_pn_io_pe_current_time_to_operate;
+static int hf_pn_io_pe_current_time_to_destination;
+static int hf_pn_io_pe_mode_power_consumption;
+static int hf_pn_io_pe_energy_to_destination;
+static int hf_pn_io_pe_energy_to_operate;
+static int hf_pn_io_pe_energy_to_pause;
+static int hf_pn_io_pe_version_major;
+static int hf_pn_io_pe_version_minor;
+static int hf_pn_io_pe_entity_class;
+static int hf_pn_io_pe_entity_subclass;
+static int hf_pn_io_pe_entity_dyn_t_and_e;
+static int hf_pn_io_pe_entity_pe_ase;
+static int hf_pn_io_pe_maximum_command_respond_time;
+static int hf_pn_io_pe_mode_id;
+static int hf_pn_io_pe_mode_attributes_value;
+static int hf_pn_io_pe_mode_attributes_value_bit0;
+static int hf_pn_io_pe_mode_attributes_value_otherbits;
+static int hf_pn_io_pe_wol_wake_up_method;
+static int hf_pn_io_pe_wol_wake_up_data_length;
+static int hf_pn_io_pe_mode_id_source;
+static int hf_pn_io_pe_mode_id_destination;
+static int hf_pn_io_pe_measurement;
+static int hf_pn_io_pe_measurement_id;
+static int hf_pn_io_pe_measurement_object_number;
+static int hf_pn_io_pe_measurement_accuracy_domain;
+static int hf_pn_io_pe_measurement_accuracy_class;
+static int hf_pn_io_pe_measurement_range;
+static int hf_pn_io_pe_measurement_structure_length;
+static int hf_pn_io_pe_measurement_structure_id;
+static int hf_pn_io_pe_measurement_status;
+static int hf_pn_io_pe_measurement_value;
+static int hf_pn_io_pe_measurement_value_uint32;
+static int hf_pn_io_pe_measurement_value_float32;
+static int hf_pn_io_pe_measurement_value_float64;
static int hf_pn_io_pe_operational_mode;
static int hf_pn_io_snmp_community_name_length;
@@ -947,6 +990,11 @@ static gint ett_pn_io_mau_type_extension;
static gint ett_pn_io_pe_service_request;
static gint ett_pn_io_pe_service_response;
+static gint ett_pn_io_pe_service_datarequest;
+static gint ett_pn_io_pe_service_dataresponse;
+static gint ett_pn_io_pe_mode_attributes;
+static gint ett_pn_io_pe_measurement_id;
+static gint ett_pn_io_pe_measurement_value;
static gint ett_pn_io_pe_operational_mode;
static gint ett_pn_io_tsn_domain_port_config;
@@ -996,11 +1044,11 @@ static e_guid_t uuid_pn_io_implicitar = { 0x00000000, 0x0000, 0x0000, { 0x00, 0x
static guint16 ver_pn_io_implicitar = 1;
/* PNIO Preference Variables */
-gboolean pnio_ps_selection = TRUE;
+bool pnio_ps_selection = true;
static const char *pnio_ps_networkpath = "";
-wmem_list_t *aruuid_frame_setup_list = NULL;
-static wmem_map_t *pnio_time_aware_frame_map = NULL;
+wmem_list_t *aruuid_frame_setup_list;
+static wmem_map_t *pnio_time_aware_frame_map;
/* Allow heuristic dissection */
@@ -1419,7 +1467,7 @@ static const value_string pn_io_arproperties_combined_object_container_with_lega
{ 0, NULL }
};
-/* bit 29 for advanced statup mode*/
+/* bit 29 for advanced startup mode*/
static const value_string pn_io_arproperties_combined_object_container_with_advanced_startupmode[] = {
{ 0x00000000, "CombinedObjectContainer not used" },
{ 0x00000001, "Usage of CombinedObjectContainer required" },
@@ -2716,6 +2764,33 @@ static const range_string pn_io_mau_type_extension[] = {
{ 0, 0, NULL }
};
+static const value_string pn_io_pe_entity_classes[] = {
+ { 0x01, "PE Standby" },
+ { 0x02, "PE Measurement" },
+ { 0x03, "PE Standby and PE Measurement" },
+ { 0, NULL }
+};
+
+static const value_string pn_io_pe_entity_subclasses[] = {
+ { 0x00, "No subclass" },
+ { 0x01, "PESAP does not support PE_energy_saving_disabled" },
+ { 0x02, "PESAP does support PE_energy_saving_disabled" },
+ { 0, NULL }
+};
+
+static const value_string pn_io_pe_dyn_t_and_e_values[] = {
+ { 0x00, "none" },
+ { 0x01, "static values" },
+ { 0x02, "dynamic values" },
+ { 0, NULL }
+};
+
+static const value_string pn_io_pe_use_pe_ase[] = {
+ { 0x01, "PE Entity uses PE ASE" },
+ { 0x02, "PE Entity does not use PE ASE" },
+ { 0, NULL }
+};
+
static const range_string pn_io_pe_services[] = {
{ 0x00, 0x00, "reserved" },
{ 0x01, 0x01, "Start_Pause" },
@@ -2745,6 +2820,7 @@ static const value_string pn_io_pe_services_modifier[] = {
{ 0x0301, "List_Energy_Saving_Modes" },
{ 0x0302, "Get_Mode" },
{ 0x0400, "PEM_Status" },
+ { 0x0401, "PEM_Status_Ext1" },
{ 0x0500, "PE_Identify" },
{ 0x0600, "Query_Version" },
{ 0x0700, "Query_Attributes" },
@@ -2756,9 +2832,19 @@ static const value_string pn_io_pe_services_modifier[] = {
{ 0x1101, "Reset_Energy_Meter_MeasurementID" },
{ 0x1102, "Reset_Energy_Meter_ObjectNumber" },
{ 0x1103, "Reset_Energy_Meter_MeasurementID_ObjectNumber" },
+ { 0x11FE, "Reset_Energy_Meter" },
{ 0x1200, "Set_Energy_Meter" },
{ 0x2000, "Info_Sleep_Mode_WOL" },
{ 0x2100, "Go_Sleep_Mode_WOL" },
+ { 0x2101, "Go_Sleep_Mode_WOL_with_pause_time" },
+ { 0, NULL }
+};
+
+static const value_string pn_io_pe_services_modifier_with_details[] = {
+ { 0x1100, "Reset_Energy_Meter all, ignore Measurement ID and ignore Object Number" },
+ { 0x1101, "Reset_Energy_Meter all meters with this Measurement ID" },
+ { 0x1102, "Reset_Energy_Meter all meters with this Object Number" },
+ { 0x1103, "Reset_Energy_Meter specific meter with this Measurement ID and this Object Number" },
{ 0, NULL }
};
@@ -2803,6 +2889,25 @@ static const range_string pn_io_pe_operational_mode[] = {
{ 0, 0, NULL }
};
+static const value_string pn_io_pe_mode_attributes_bit0[] = {
+ { 0x00, "only static time and energy values available" },
+ { 0x01, "dynamic time and energy values available" },
+ { 0, NULL }
+};
+
+static const value_string pn_io_pe_wol_wake_up_method[] = {
+ { 0x01, "Wake-up based on magic packet" },
+ { 0x02, "Wake-up based on vendor specific data (PE Version < V1.3)" },
+ { 0, NULL }
+};
+
+static const value_string pn_io_pe_measurement_status[] = {
+ { 0x01, "valid" },
+ { 0x02, "not available" },
+ { 0x03, "temporarily not available" },
+ { 0, NULL }
+};
+
static const value_string pn_io_port_state[] = {
{ 0x0000, "reserved" },
{ 0x0001, "up" },
@@ -3042,7 +3147,7 @@ static const value_string pn_io_f_crc_seed[] = {
{ 0, NULL }
};
-/* F_Block_ID dissection due to ver2.6 specifikation of PI */
+/* F_Block_ID dissection due to ver2.6 specification of PI */
static const value_string pn_io_f_block_id[] = {
{ 0x00, "No F_WD_Time_2, no F_iPar_CRC" },
{ 0x01, "No F_WD_Time_2, F_iPar_CRC" },
@@ -4605,6 +4710,7 @@ dissect_Diagnosis(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AlarmUserStructure(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep,
guint16 *body_length, guint16 u16UserStructureIdentifier)
@@ -4666,6 +4772,7 @@ dissect_AlarmUserStructure(tvbuff_t *tvb, int offset,
/* dissect the alarm notification block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AlarmNotification_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 body_length)
@@ -4681,6 +4788,8 @@ dissect_AlarmNotification_block(tvbuff_t *tvb, int offset,
return offset;
}
+ increment_dissection_depth(pinfo);
+
offset = dissect_Alarm_header(tvb, offset, pinfo, tree, item, drep);
offset = dissect_dcerpc_uint32(tvb, offset, pinfo, tree, drep,
@@ -4705,6 +4814,8 @@ dissect_AlarmNotification_block(tvbuff_t *tvb, int offset,
offset = dissect_AlarmUserStructure(tvb, offset, pinfo, tree, item, drep, &body_length, u16UserStructureIdentifier);
}
+ decrement_dissection_depth(pinfo);
+
return offset;
}
@@ -4874,6 +4985,7 @@ dissect_IandM4_block(tvbuff_t *tvb, int offset,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_IandM5_block(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint8 *drep _U_, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -5385,6 +5497,7 @@ guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
/* dissect the AssetManagementInfo */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AssetManagementInfo(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, guint8 *drep)
{
@@ -5407,6 +5520,7 @@ packet_info *pinfo _U_, proto_tree *tree, guint8 *drep)
/* dissect the AssetManagementData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_AssetManagementData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep,
guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
@@ -5416,7 +5530,9 @@ guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
"Block version %u.%u not implemented yet!", u8BlockVersionHigh, u8BlockVersionLow);
return offset;
}
+ increment_dissection_depth(pinfo);
offset = dissect_AssetManagementInfo(tvb, offset, pinfo, tree, drep);
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -5576,6 +5692,7 @@ dissect_RecordInputDataObjectElement_block(tvbuff_t *tvb, int offset,
/* dissect the RecordOutputDataObjectElement block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_RecordOutputDataObjectElement_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -6142,6 +6259,7 @@ dissect_SubmoduleListBlock(tvbuff_t *tvb, int offset,
/* dissect the PDevData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDevData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -6208,6 +6326,7 @@ dissect_CheckMAUTypeExtension_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortDataAdjust block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortData_Adjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -6248,6 +6367,7 @@ dissect_PDPortData_Adjust_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortDataCheck blocks */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortData_Check_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -6445,6 +6565,7 @@ dissect_PDPortDataReal_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortDataRealExtended blocks */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortDataRealExtended_block(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -6481,6 +6602,7 @@ dissect_PDPortDataRealExtended_block(tvbuff_t *tvb, int offset, packet_info *pin
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceMrpDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -6565,6 +6687,7 @@ dissect_PDInterfaceMrpDataAdjust_block(tvbuff_t *tvb, int offset,
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceMrpDataReal_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -6642,6 +6765,7 @@ dissect_PDInterfaceMrpDataReal_block(tvbuff_t *tvb, int offset,
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceMrpDataCheck_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -7253,6 +7377,7 @@ dissect_CheckPortState_block(tvbuff_t *tvb, int offset,
/* dissect the PDPortFODataReal block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDPortFODataReal_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -7526,6 +7651,7 @@ dissect_AdjustDCPBoundary_block(tvbuff_t *tvb, int offset,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_MrpInstanceDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -7571,6 +7697,7 @@ dissect_MrpInstanceDataAdjust_block(tvbuff_t *tvb, int offset,
}
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_MrpInstanceDataReal_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BodyLength)
{
@@ -7681,6 +7808,7 @@ dissect_PDInterfaceAdjust_block(tvbuff_t *tvb, int offset,
/* TSNNetworkControlDataReal */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNNetworkControlDataReal_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -7793,6 +7921,7 @@ dissect_TSNNetworkControlDataReal_block(tvbuff_t* tvb, int offset,
/* TSNNetworkControlDataAdjust */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNNetworkControlDataAdjust_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -7992,6 +8121,7 @@ dissect_TSNSyncTreeData_block(tvbuff_t* tvb, int offset,
/* TSNDomainPortConfigBlock */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNDomainPortConfig_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -8152,6 +8282,7 @@ dissect_TSNTimeData_block(tvbuff_t* tvb, int offset,
/* TSNUploadNetworkAttributesBlock */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNUploadNetworkAttributes_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -8257,6 +8388,7 @@ dissect_TSNExpectedNeighbor_block(tvbuff_t* tvb, int offset,
/* TSNExpectedNetworkAttributesBlock */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_TSNExpectedNetworkAttributes_block(tvbuff_t* tvb, int offset,
packet_info* pinfo, proto_tree* tree, proto_item* item _U_, guint8* drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -8891,6 +9023,7 @@ dissect_PDSyncData_block(tvbuff_t *tvb, int offset,
/* dissect the PDIRData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDIRData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -9295,6 +9428,7 @@ dissect_PDIRBeginEndData_block(tvbuff_t *tvb, int offset,
/* dissect the DiagnosisData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_DiagnosisData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint8 *drep _U_, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 body_length)
@@ -9343,6 +9477,7 @@ dissect_DiagnosisData_block(tvbuff_t *tvb, int offset,
proto_item_append_text(sub_item, " reserved");
}
offset = offset +2; /* Advance behind ChannelNumber */
+ increment_dissection_depth(pinfo);
/* ChannelProperties */
offset = dissect_ChannelProperties(tvb, offset, pinfo, tree, item, drep);
body_length-=8;
@@ -9367,6 +9502,7 @@ dissect_DiagnosisData_block(tvbuff_t *tvb, int offset,
offset = dissect_AlarmUserStructure(tvb, offset, pinfo, tree, item, drep,
&body_length, u16UserStructureIdentifier);
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -9465,6 +9601,7 @@ dissect_IOCRProperties(tvbuff_t *tvb, int offset,
/* dissect the ARData block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_ARData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint8 *drep _U_, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow, guint16 u16BlockLength)
{
@@ -9505,6 +9642,7 @@ dissect_ARData_block(tvbuff_t *tvb, int offset,
i32EndOffset = offset + u16BlockLength;
offset = dissect_dcerpc_uint16(tvb, offset, pinfo, tree, drep,
hf_pn_io_number_of_ars, &u16NumberOfARs);
+ increment_dissection_depth(pinfo);
/* BlockversionLow: 0 */
if (u8BlockVersionLow == 0) {
while (u16NumberOfARs--) {
@@ -9753,6 +9891,7 @@ dissect_ARData_block(tvbuff_t *tvb, int offset,
proto_item_set_len(ar_item, offset - u32ARDataStart);
}
}
+ decrement_dissection_depth(pinfo);
return offset;
}
@@ -9935,6 +10074,7 @@ dissect_FSParameter_block(tvbuff_t *tvb, int offset,
/* dissect the FSUDataAdjust block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDInterfaceFSUDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -9964,6 +10104,7 @@ dissect_PDInterfaceFSUDataAdjust_block(tvbuff_t *tvb, int offset,
/* dissect the ARFSUDataAdjust block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_ARFSUDataAdjust_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item _U_, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -10000,6 +10141,7 @@ dissect_PE_ServiceRequest_block(tvbuff_t* tvb, int offset,
guint8 modifier;
guint8 structure_id;
guint16 service_modifier;
+ gboolean col_add = FALSE;
if (u8BlockVersionHigh != 1 || u8BlockVersionLow != 0) {
expert_add_info_format(pinfo, item, &ei_pn_io_block_version,
@@ -10019,8 +10161,112 @@ dissect_PE_ServiceRequest_block(tvbuff_t* tvb, int offset,
proto_item_append_text(item, ": %s", val_to_str_const(service_modifier, pn_io_pe_services_modifier, "Unknown"));
if (u16BodyLength > 0) {
- /* todo: dissect Service Request data */
- offset = dissect_pn_user_data(tvb, offset, pinfo, tree, u16BodyLength, "PE RequestData");
+ proto_item *pedata_item;
+ proto_tree *pedata_tree;
+ guint32 u32PauseTime;
+ guint8 u8ModeID;
+ guint8 u8Count;
+ guint16 u16MeasurementID;
+ guint16 u16ObjectNumber;
+ guint32 value32;
+ guint64 value64;
+
+ pedata_item = proto_tree_add_item(tree, hf_pn_io_pe_service_datarequest, tvb, offset, u16BodyLength, ENC_NA);
+ pedata_tree = proto_item_add_subtree(pedata_item, ett_pn_io_pe_service_datarequest);
+
+ switch (service_modifier) {
+ case 0x0100: /* Start_Pause */
+ case 0x0101:
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_pause_time, &u32PauseTime);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceRequest, Ref:0x%02x, Start Pause %u msec",
+ request_ref, u32PauseTime);
+ col_add = TRUE;
+ break;
+ case 0x0302: /* Get_Mode */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id, &u8ModeID);
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceRequest, Ref:0x%02x, Get_Mode:0x%02x",
+ request_ref, u8ModeID);
+ col_add = TRUE;
+ break;
+ case 0x1002: /* Get_Measurement_Values */
+ case 0x1004: /* Get_Measurement_Values_with_Object_Number */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep, hf_pn_io_pe_data_count, &u8Count);
+ /* align padding */
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ while (u8Count--) {
+ if (service_modifier == 0x1004) {
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_measurement_object_number, &u16ObjectNumber);
+ }
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_measurement_id, &u16MeasurementID);
+ }
+ break;
+ case 0x1100: /* Reset_Energy_Meter all */
+ case 0x1101: /* Reset_Energy_Meter all meters with this ID */
+ case 0x1102: /* Reset_Energy_Meter all meters with this Object Number */
+ case 0x1103: /* Reset_Energy_Meter meter with this ID and this Object Number */
+ /* rewrite item text with detailed information */
+ proto_item_set_text(pedata_item, "%s", val_to_str_const(service_modifier, pn_io_pe_services_modifier_with_details, "Unknown"));
+
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, pedata_tree, drep, hf_pn_io_pe_measurement_object_number, &u16ObjectNumber);
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, pedata_tree, drep, hf_pn_io_pe_measurement_id, &u16MeasurementID);
+ break;
+ case 0x1200: /* Set_Meter */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep, hf_pn_io_pe_data_count, &u8Count);
+ /* align padding */
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ while (u8Count--) {
+ proto_item *measurement_item;
+ proto_tree *measurement_tree;
+ int byte_length = 4;
+
+ /* depending on measurement ID we may encounter differing byte lengths for value */
+ u16MeasurementID = tvb_get_guint16(tvb, offset+2, ENC_BIG_ENDIAN);
+ if ((u16MeasurementID >= 210) && (u16MeasurementID <= 219)) {
+ byte_length = 8;
+ }
+
+ measurement_item = proto_tree_add_item(pedata_tree, hf_pn_io_pe_measurement, tvb, offset, 4+byte_length, ENC_NA);
+ measurement_tree = proto_item_add_subtree(measurement_item, ett_pn_io_pe_measurement_id);
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_object_number, &u16ObjectNumber);
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_id, &u16MeasurementID);
+ if (byte_length == 8) {
+ dcerpc_info di; /* fake dcerpc_info struct */
+ dcerpc_call_value dcv; /* fake dcerpc_call_value struct */
+ di.call_data = &dcv;
+ offset = dissect_dcerpc_uint64(tvb, offset, pinfo, measurement_tree, &di, drep,
+ hf_pn_io_pe_measurement_value_float64, &value64);
+ } else if ((u16MeasurementID >= 220) && (u16MeasurementID <= 229)) {
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_value_uint32, &value32);
+ } else {
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_value_float32, &value32);
+ }
+ }
+ break;
+ case 0x2101: /* Go_Sleep_Mode_WOL_with_pause_time */
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_pause_time, &u32PauseTime);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceRequest, Ref:0x%02x, Go_Sleep_Mode_WOL %u msec",
+ request_ref, u32PauseTime);
+ col_add = TRUE;
+ break;
+ default:
+ offset = dissect_pn_user_data(tvb, offset, pinfo, pedata_tree, u16BodyLength, "RequestData");
+ break;
+ }
+ }
+
+ if (!col_add) {
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceRequest, Ref:0x%02x, %s",
+ request_ref, val_to_str_const(service_modifier, pn_io_pe_services_modifier, "Unknown"));
}
return offset;
@@ -10035,6 +10281,8 @@ dissect_PE_ServiceResponse_block(tvbuff_t* tvb, int offset,
guint8 request_ref;
guint8 status;
guint8 structure_id;
+ guint16 service_modifier;
+ gboolean col_add = FALSE;
if (u8BlockVersionHigh != 1 || u8BlockVersionLow != 0) {
expert_add_info_format(pinfo, item, &ei_pn_io_block_version,
@@ -10048,15 +10296,381 @@ dissect_PE_ServiceResponse_block(tvbuff_t* tvb, int offset,
offset = dissect_dcerpc_uint8(tvb, offset, pinfo, tree, drep, hf_pn_io_pe_service_structure_id, &structure_id);
u16BodyLength -= 4;
- proto_item_append_text(item, ": %s", rval_to_str_const(service_response_id, pn_io_pe_services, "Unknown"));
+ /* Init service_modifier even when not used, to avoid gcc may by used initialized error/warning */
+ service_modifier = (service_response_id << 8);
if (structure_id == 0xFF) {
offset = dissect_dcerpc_uint8(tvb, offset, pinfo, tree, drep, hf_pn_io_pe_service_errorcode, &status);
/* align padding */
offset = dissect_pn_padding(tvb, offset, pinfo, tree, 1);
- } else if (u16BodyLength > 0) {
- /* todo: dissect Service Response data */
- offset = dissect_pn_user_data(tvb, offset, pinfo, tree, u16BodyLength, "PE ResponseData");
+
+ proto_item_append_text(item, ": %s", rval_to_str_const(service_response_id, pn_io_pe_services, "Unknown"));
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceResponse, Ref:0x%02x, %s (ERROR)",
+ request_ref, rval_to_str_const(service_response_id, pn_io_pe_services, "Unknown"));
+ col_add = TRUE;
+ } else {
+ /*
+ * In the response we do not have modifier as in the request.
+ * To properly decode the service name we have to use response structure ID based on service ID.
+ * There is no easy 1 to 1 mapping.
+ */
+ if (service_response_id == 0x01) {
+ service_modifier = (service_response_id << 8) | (structure_id-1);
+ } else if (service_response_id == 0x03) {
+ service_modifier = (service_response_id << 8) | (structure_id);
+ } else if (service_response_id == 0x04) {
+ service_modifier = (service_response_id << 8) | (structure_id-1);
+ } else if (service_response_id == 0x10) {
+ if (structure_id == 0x02) {
+ service_modifier = (service_response_id << 8) | 0x01;
+ } else if (structure_id == 0x04) {
+ service_modifier = (service_response_id << 8) | 0x03;
+ } else if (structure_id == 0x01) {
+ service_modifier = (service_response_id << 8) | 0x02;
+ } else if (structure_id == 0x03) {
+ service_modifier = (service_response_id << 8) | 0x04;
+ } else {
+ service_modifier = (service_response_id << 8);
+ }
+ } else if (service_response_id == 0x11) {
+ /* no match to reset_meter_* possible, use generic text */
+ service_modifier = (service_response_id << 8) | 0xFE;
+ } else {
+ service_modifier = (service_response_id << 8);
+ }
+ proto_item_append_text(item, ": %s", val_to_str_const(service_modifier, pn_io_pe_services_modifier, "Unknown"));
+ }
+
+ if ((u16BodyLength > 0) && (structure_id != 0xFF)) {
+ proto_item *pedata_item;
+ proto_tree *pedata_tree;
+ guint8 u8Count;
+ guint8 u8ServiceID;
+ guint8 u8ModeID;
+ guint8 u8ModeSource;
+ guint8 u8ModeDestination;
+ guint8 u8ModeAttributes;
+ guint32 u32CTTD;
+ guint32 u32CTTO;
+ guint32 u32MaxCRT;
+ guint32 u32RTTO;
+ guint32 u32TMinP;
+ guint32 u32TMinLS;
+ guint32 u32TMaxLS;
+ guint32 u32TTP;
+ guint32 u32ModePower;
+ guint32 u32EnergyConsumption;
+ guint8 u8VersionMajor;
+ guint8 u8VersionMinor;
+ guint8 u8EntityClass;
+ guint8 u8EntitySubClass;
+ guint8 u8EntityDynTEValues;
+ guint8 u8EntityPEASE;
+ guint8 u8WOLMethod;
+ guint16 u16WOLDataLength;
+ guint16 u16MeasurementID;
+ guint16 u16ObjectNumber;
+ guint8 u8Accuracy;
+ guint16 u16StructureLength;
+ guint8 u8StructureID;
+ guint8 value8;
+ guint16 value16;
+ guint32 value32;
+ guint64 value64;
+
+ pedata_item = proto_tree_add_item(tree, hf_pn_io_pe_service_dataresponse, tvb, offset, u16BodyLength, ENC_NA);
+ pedata_tree = proto_item_add_subtree(pedata_item, ett_pn_io_pe_service_dataresponse);
+
+ switch (service_response_id) {
+ case 0x01: /* Start_Pause */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id, &u8ModeID);
+ /* align padding */
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ if (structure_id == 0x02) {
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_current_time_to_destination, &u32CTTD);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_regular_time_to_operate, &u32RTTO);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_time_min_length_of_stay, &u32TMinLS);
+ }
+ break;
+ case 0x02: /* End_Pause */
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_current_time_to_operate, &u32CTTO);
+ break;
+ case 0x03: /* Query_Modes */
+ if (structure_id == 0x01) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_data_count, &u8Count);
+ while (u8Count--) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id, &u8ModeID);
+ }
+ } else if (structure_id == 0x02) {
+ proto_item *attributes_item;
+ proto_tree *attributes_tree;
+
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep, hf_pn_io_pe_mode_id, &u8ModeID);
+ attributes_item = proto_tree_add_item(pedata_tree, hf_pn_io_pe_mode_attributes_value, tvb, offset, 1, ENC_NA);
+ attributes_tree = proto_item_add_subtree(attributes_item, ett_pn_io_pe_mode_attributes);
+ /* Attributes.Bit0 */
+ dissect_dcerpc_uint8(tvb, offset, pinfo, attributes_tree, drep,
+ hf_pn_io_pe_mode_attributes_value_bit0, &u8ModeAttributes);
+ /* Attributes.OtherBits */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, attributes_tree, drep,
+ hf_pn_io_pe_mode_attributes_value_otherbits, &u8ModeAttributes);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_time_min_pause, &u32TMinP);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_time_to_pause, &u32TTP);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_regular_time_to_operate, &u32RTTO);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_time_min_length_of_stay, &u32TMinLS);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_time_max_length_of_stay, &u32TMaxLS);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_power_consumption, &u32ModePower);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_energy_to_pause, &u32EnergyConsumption);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_energy_to_operate, &u32EnergyConsumption);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceResponse, Ref:0x%02x, Get_Mode:0x%02x",
+ request_ref, u8ModeID);
+ col_add = TRUE;
+ } else {
+ /* ... */
+ offset = dissect_pn_user_data(tvb, offset, pinfo, pedata_tree, u16BodyLength, "PE ResponseData not decoded [invalid StructID]");
+ }
+ break;
+ case 0x04: /* PEM_Status */
+ if (structure_id == 0x01) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id_source, &u8ModeSource);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id_destination, &u8ModeDestination);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_current_time_to_operate, &u32CTTO);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_current_time_to_destination, &u32CTTD);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_power_consumption, &u32ModePower);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_energy_to_destination, &u32EnergyConsumption);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_energy_to_operate, &u32EnergyConsumption);
+ } else if (structure_id == 0x02) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id_source, &u8ModeSource);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id_destination, &u8ModeDestination);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_regular_time_to_operate, &u32RTTO);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_current_time_to_operate, &u32CTTO);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_current_time_to_destination, &u32CTTD);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_power_consumption, &u32ModePower);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_energy_to_destination, &u32EnergyConsumption);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_energy_to_operate, &u32EnergyConsumption);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceResponse, Ref:0x%02x, PEM_Status_Ext1", request_ref);
+ col_add = TRUE;
+ } else {
+ /* ... */
+ offset = dissect_pn_user_data(tvb, offset, pinfo, pedata_tree, u16BodyLength, "PE ResponseData not decoded [invalid StructID]");
+ }
+ break;
+ case 0x05: /* PE_Identify */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_data_count, &u8Count);
+ while (u8Count--) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_service_request_id, &u8ServiceID);
+ }
+ break;
+ case 0x06: /* Query_Version */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_version_major, &u8VersionMajor);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_version_minor, &u8VersionMinor);
+ proto_item_append_text(item, " V%u.%u", u8VersionMajor, u8VersionMinor);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceResponse, Ref: 0x%02x, PE Version V%u.%u",
+ request_ref, u8VersionMajor, u8VersionMinor);
+ col_add = TRUE;
+ break;
+ case 0x07: /* Query_Attributes */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_version_major, &u8VersionMajor);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_version_minor, &u8VersionMinor);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_entity_class, &u8EntityClass);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_entity_subclass, &u8EntitySubClass);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_entity_dyn_t_and_e, &u8EntityDynTEValues);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_entity_pe_ase, &u8EntityPEASE);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_maximum_command_respond_time, &u32MaxCRT);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceResponse, Ref: 0x%02x, Query_Attributes PE Version V%u.%u Class 0x%02x",
+ request_ref, u8VersionMajor, u8VersionMinor, u8EntityClass);
+ col_add = TRUE;
+ break;
+ case 0x10: /* Query_Measurement */
+ /*
+ * structures:
+ * 0x01: Measurement Values
+ * 0x02: Measurement List
+ * 0x03: Measurement Values with Object Number
+ * 0x04: Measurement List with Object Number
+ */
+ if ((structure_id == 0x02) || (structure_id == 0x04)) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_data_count, &u8Count);
+ /* align padding */
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ while (u8Count--) {
+ proto_item *measurement_item;
+ proto_tree *measurement_tree;
+
+ if (structure_id == 0x04) {
+ measurement_item = proto_tree_add_item(pedata_tree, hf_pn_io_pe_measurement, tvb, offset, 10, ENC_NA);
+ measurement_tree = proto_item_add_subtree(measurement_item, ett_pn_io_pe_measurement_id);
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_object_number, &u16ObjectNumber);
+ } else {
+ measurement_item = proto_tree_add_item(pedata_tree, hf_pn_io_pe_measurement, tvb, offset, 8, ENC_NA);
+ measurement_tree = proto_item_add_subtree(measurement_item, ett_pn_io_pe_measurement_id);
+ }
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_id, &u16MeasurementID);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_accuracy_domain, &u8Accuracy);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_accuracy_class, &u8Accuracy);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_range, &value32);
+ }
+ } else if ((structure_id == 0x01) || (structure_id == 0x03)) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_data_count, &u8Count);
+ /* align padding */
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ while (u8Count--) {
+ proto_item *measurement_item;
+ proto_tree *measurement_tree;
+
+ /* peek for structure length */
+ u16StructureLength = tvb_get_guint16(tvb, offset, ENC_BIG_ENDIAN);
+ measurement_item = proto_tree_add_item(pedata_tree, hf_pn_io_pe_measurement, tvb, offset,
+ u16StructureLength, ENC_NA);
+ measurement_tree = proto_item_add_subtree(measurement_item, ett_pn_io_pe_measurement_id);
+
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_structure_length, &value16);
+ u16StructureLength -= 2;
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_structure_id, &u8StructureID);
+ u16StructureLength -= 1;
+ if (u8StructureID == 2) {
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_status, &value8);
+ u16StructureLength -= 1;
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_object_number, &u16ObjectNumber);
+ u16StructureLength -= 2;
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_id, &u16MeasurementID);
+ u16StructureLength -= 2;
+ } else {
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_id, &u16MeasurementID);
+ u16StructureLength -= 2;
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_status, &value8);
+ u16StructureLength -= 1;
+ }
+
+ if ((u16MeasurementID >= 210) && (u16MeasurementID <= 219)) {
+ dcerpc_info di; /* fake dcerpc_info struct */
+ dcerpc_call_value dcv; /* fake dcerpc_call_value struct */
+ di.call_data = &dcv;
+ offset = dissect_dcerpc_uint64(tvb, offset, pinfo, measurement_tree, &di, drep,
+ hf_pn_io_pe_measurement_value_float64, &value64);
+ u16StructureLength -= 8;
+ } else if ((u16MeasurementID >= 220) && (u16MeasurementID <= 229)) {
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_value_uint32, &value32);
+ u16StructureLength -= 4;
+ } else {
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_value_float32, &value32);
+ u16StructureLength -= 4;
+ }
+
+ if (u16StructureLength > 0) {
+ /* remainder is optional timestamp */
+ offset = dissect_pn_user_data(tvb, offset, pinfo, pedata_tree, u16StructureLength, "Timestamp");
+ }
+ }
+ }
+ break;
+ case 0x12: /* Set_Meter */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_data_count, &u8Count);
+ /* align padding */
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ while (u8Count--) {
+ proto_item *measurement_item;
+ proto_tree *measurement_tree;
+
+ measurement_item = proto_tree_add_item(pedata_tree, hf_pn_io_pe_measurement, tvb, offset, 4, ENC_NA);
+ measurement_tree = proto_item_add_subtree(measurement_item, ett_pn_io_pe_measurement_id);
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_object_number, &u16ObjectNumber);
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, measurement_tree, drep,
+ hf_pn_io_pe_measurement_id, &u16MeasurementID);
+ }
+ break;
+ case 0x20: /* Info_Sleep_Mode_WOL */
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_regular_time_to_operate, &u32RTTO);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_time_min_pause, &u32TMinP);
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_wol_wake_up_method, &u8WOLMethod);
+ offset = dissect_dcerpc_uint16(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_wol_wake_up_data_length, &u16WOLDataLength);
+ offset = dissect_pn_user_data(tvb, offset, pinfo, pedata_tree, u16WOLDataLength, "Wake_Up_Data");
+ break;
+ case 0x21: /* Go_Sleep_Mode_WOL */
+ offset = dissect_dcerpc_uint8(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_mode_id, &u8ModeID);
+ /* align padding */
+ offset = dissect_pn_padding(tvb, offset, pinfo, pedata_tree, 1);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_current_time_to_destination, &u32CTTD);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_regular_time_to_operate, &u32RTTO);
+ offset = dissect_dcerpc_uint32(tvb, offset, pinfo, pedata_tree, drep,
+ hf_pn_io_pe_time_min_length_of_stay, &u32TMinLS);
+ break;
+ default:
+ /* ... */
+ offset = dissect_pn_user_data(tvb, offset, pinfo, pedata_tree, u16BodyLength, "ResponseData");
+ break;
+ }
+ }
+
+ if (!col_add) {
+ col_add_fstr(pinfo->cinfo, COL_INFO, "PROFIenergy ServiceResponse, Ref:0x%02x, %s",
+ request_ref, val_to_str_const(service_modifier, pn_io_pe_services_modifier, "Unknown"));
}
return offset;
@@ -11317,6 +11931,7 @@ dissect_RSInfoBlock_block(tvbuff_t *tvb, int offset,
/* dissect the PDIRSubframeData block 0x022a */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_PDIRSubframeData_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow)
{
@@ -12310,6 +12925,7 @@ dissect_CIMSNMPAdjust_block(tvbuff_t *tvb, int offset,
/* dissect the MultipleBlockHeader block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_MultipleBlockHeader_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16BodyLength)
@@ -12348,6 +12964,7 @@ dissect_MultipleBlockHeader_block(tvbuff_t *tvb, int offset,
/* dissect Combined Object Container Content block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_COContainerContent_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, proto_item *item, guint8 *drep, guint8 u8BlockVersionHigh, guint8 u8BlockVersionLow,
guint16 u16Index, guint32 *u32RecDataLen, pnio_ar_t **ar)
@@ -12596,6 +13213,7 @@ dissect_RS_AckEvent_block(tvbuff_t *tvb, int offset,
/* dissect one PN-IO block (depending on the block type) */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep, guint16 *u16Index, guint32 *u32RecDataLen, pnio_ar_t **ar)
{
@@ -12651,6 +13269,7 @@ dissect_block(tvbuff_t *tvb, int offset,
proto_item_append_text(sub_item, " Block_Length: %d greater than remaining Bytes, trying with Blocklen = remaining (%d)", u16BodyLength, remainingBytes);
u16BodyLength = remainingBytes;
}
+ increment_dissection_depth(pinfo);
switch (u16BlockType) {
case(0x0001):
case(0x0002):
@@ -13092,6 +13711,7 @@ dissect_block(tvbuff_t *tvb, int offset,
default:
dissect_pn_undecoded(tvb, offset, pinfo, sub_tree, u16BodyLength);
}
+ decrement_dissection_depth(pinfo);
offset += u16BodyLength;
proto_item_set_len(sub_item, offset - u32SubStart);
@@ -13102,6 +13722,7 @@ dissect_block(tvbuff_t *tvb, int offset,
/* dissect any PN-IO block */
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_a_block(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -13120,6 +13741,7 @@ dissect_a_block(tvbuff_t *tvb, int offset,
/* dissect any number of PN-IO blocks */
int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_blocks(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -13856,7 +14478,7 @@ dissect_ProfiSafeParameterRequest(tvbuff_t *tvb, int offset,
hf_pn_io_ps_f_par_crc, &par_crc);
- /* Differniate between ipar_crc and no_ipar_crc */
+ /* Differentiate between ipar_crc and no_ipar_crc */
if( (prm_flag2_f_block_id & 0x08) && !(prm_flag2_f_block_id & 0x20) ) { /* include ipar_crc display */
col_append_fstr(pinfo->cinfo, COL_INFO,
", F-Parameter record, prm_flag1:0x%02x, prm_flag2:0x%02x, src:0x%04x,"
@@ -14075,6 +14697,7 @@ dissect_RecordDataWrite(tvbuff_t *tvb, int offset,
#define PN_IO_MAX_RECURSION_DEPTH 100
static int
+// NOLINTNEXTLINE(misc-no-recursion)
dissect_IODWriteReq(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep, pnio_ar_t **ar, guint recursion_count)
{
@@ -14087,6 +14710,8 @@ dissect_IODWriteReq(tvbuff_t *tvb, int offset,
return tvb_captured_length(tvb);
}
+ increment_dissection_depth(pinfo);
+
/* IODWriteHeader */
offset = dissect_block(tvb, offset, pinfo, tree, drep, &u16Index, &u32RecDataLen, ar);
@@ -14116,6 +14741,8 @@ dissect_IODWriteReq(tvbuff_t *tvb, int offset,
}
}
+ decrement_dissection_depth(pinfo);
+
return offset;
}
@@ -14507,7 +15134,7 @@ dissect_PNIO_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
-static gboolean
+static bool
pn_io_ar_conv_valid(packet_info *pinfo, void *user_data _U_)
{
void* profinet_type = p_get_proto_data(pinfo->pool, pinfo, proto_pn_io, 0);
@@ -14590,7 +15217,7 @@ pn_io_ar_conv_data_filter(packet_info *pinfo, void *user_data _U_)
/* the PNIO dcerpc interface table */
-static dcerpc_sub_dissector pn_io_dissectors[] = {
+static const dcerpc_sub_dissector pn_io_dissectors[] = {
{ 0, "Connect", dissect_IPNIO_rqst, dissect_IPNIO_resp },
{ 1, "Release", dissect_IPNIO_rqst, dissect_IPNIO_resp },
{ 2, "Read", dissect_IPNIO_rqst, dissect_IPNIO_Read_resp },
@@ -17802,22 +18429,22 @@ proto_register_pn_io (void)
NULL, HFILL }
},
{ &hf_pn_io_am_location_beginslotnum,
- { "AM_Location.BeginSlotNumber", "pn_io.slot_nr",
+ { "AM_Location.BeginSlotNumber", "pn_io.am_location.beginslotnumber",
FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
{ &hf_pn_io_am_location_beginsubslotnum,
- { "AM_Location.BeginSubSlotNumber", "pn_io.subslot_nr",
+ { "AM_Location.BeginSubSlotNumber", "pn_io.am_location.beginsubslotnumber",
FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
{ &hf_pn_io_am_location_endslotnum,
- { "AM_Location.EndSlotNumber", "pn_io.slot_nr",
+ { "AM_Location.EndSlotNumber", "pn_io.am_location.endslotnumber",
FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
{ &hf_pn_io_am_location_endsubslotnum,
- { "AM_Location.EndSubSlotNumber", "pn_io.subslot_nr",
+ { "AM_Location.EndSubSlotNumber", "pn_io.am_location.endsubslotnumber",
FT_UINT16, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
@@ -17876,6 +18503,221 @@ proto_register_pn_io (void)
FT_UINT8, BASE_HEX | BASE_RANGE_STRING, RVALS(pn_io_pe_service_errorcode), 0x0,
NULL, HFILL }
},
+ { &hf_pn_io_pe_service_datarequest,
+ { "PE DataRequest", "pn_io.profienergy.datarerequest",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_service_dataresponse,
+ { "PE DataResponse", "pn_io.profienergy.dataresponse",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_data_count,
+ { "Count", "pn_io.profienergy.data.count",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_pause_time,
+ { "Pause_time in msec", "pn_io.profienergy.time.pause",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_time_min_pause,
+ { "Time_min_Pause in msec", "pn_io.profienergy.time.min_pause",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_time_to_pause,
+ { "Time_to_Pause in msec", "pn_io.profienergy.time.to_pause",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_time_min_length_of_stay,
+ { "Time_min_length_of_stay in msec", "pn_io.profienergy.time.min_length_of_stay",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_time_max_length_of_stay,
+ { "Time_max_length_of_stay in msec", "pn_io.profienergy.time.max_length_of_stay",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_regular_time_to_operate,
+ { "Regular_time_to_operate in msec", "pn_io.profienergy.time.regular_to_operate",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_current_time_to_operate,
+ { "Current_time_to_operate in msec", "pn_io.profienergy.time.current_to_operate",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_current_time_to_destination,
+ { "Current_time_to_destination in msec", "pn_io.profienergy.time.current_to_destination",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_mode_power_consumption,
+ { "Mode PowerConsumption in kW", "pn_io.profienergy.mode.power_consumption",
+ FT_FLOAT, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_energy_to_destination,
+ { "Energy Consumption_to_destination in kWh", "pn_io.profienergy.energy.to_destination",
+ FT_FLOAT, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_energy_to_operate,
+ { "Energy Consumption_to_operate in kWh", "pn_io.profienergy.energy.to_operate",
+ FT_FLOAT, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_energy_to_pause,
+ { "Energy Consumption_to_pause in kWh", "pn_io.profienergy.energy.to_pause",
+ FT_FLOAT, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_version_major,
+ { "PE VersionMajor", "pn_io.profienergy.version.major",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_version_minor,
+ { "PE VersionMinor", "pn_io.profienergy.version.minor",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_entity_class,
+ { "PE Entity Class", "pn_io.profienergy.entity.class",
+ FT_UINT8, BASE_HEX, VALS(pn_io_pe_entity_classes), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_entity_subclass,
+ { "PE Entity Subclass", "pn_io.profienergy.entity.subclass",
+ FT_UINT8, BASE_HEX, VALS(pn_io_pe_entity_subclasses), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_entity_dyn_t_and_e,
+ { "PE Dyn_T_and_E_values", "pn_io.profienergy.entity.dyn_t_and_e",
+ FT_UINT8, BASE_HEX, VALS(pn_io_pe_dyn_t_and_e_values), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_entity_pe_ase,
+ { "PE ASE", "pn_io.profienergy.entity.use_pease",
+ FT_UINT8, BASE_HEX, VALS(pn_io_pe_use_pe_ase), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_maximum_command_respond_time,
+ { "PE Max_command_respond_time in msec", "pn_io.profienergy.time.max_respond_time",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_mode_id,
+ { "ModeID", "pn_io.profienergy.mode.id",
+ FT_UINT8, BASE_HEX | BASE_RANGE_STRING, RVALS(pn_io_pe_operational_mode), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_mode_attributes_value,
+ { "ModeAttributes", "pn_io.profienergy.mode.attributes",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_mode_attributes_value_bit0,
+ { "ModeAttributes", "pn_io.profienergy.mode.attributes_bit0",
+ FT_UINT8, BASE_HEX, VALS(pn_io_pe_mode_attributes_bit0), 0x1,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_mode_attributes_value_otherbits,
+ { "ModeAttributes", "pn_io.profienergy.mode.attributes_otherbits",
+ FT_UINT8, BASE_HEX, NULL, 0xFE,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_wol_wake_up_method,
+ { "Wake_Up_Method", "pn_io.profienergy.wol.wake_up_method",
+ FT_UINT8, BASE_HEX, VALS(pn_io_pe_wol_wake_up_method), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_wol_wake_up_data_length,
+ { "Wake_Up_Data_Length", "pn_io.profienergy.wol.wake_up_data_length",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_mode_id_source,
+ { "ModeID Source", "pn_io.profienergy.mode.id_source",
+ FT_UINT8, BASE_HEX | BASE_RANGE_STRING, RVALS(pn_io_pe_operational_mode), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_mode_id_destination,
+ { "ModeID Destination", "pn_io.profienergy.mode.id_destination",
+ FT_UINT8, BASE_HEX | BASE_RANGE_STRING, RVALS(pn_io_pe_operational_mode), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement,
+ { "Measurement", "pn_io.profienergy.measurement",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_id,
+ { "ID", "pn_io.profienergy.measurement.id",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_object_number,
+ { "Object_Number", "pn_io.profienergy.measurement.object_number",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_accuracy_domain,
+ { "Accuracy_Domain", "pn_io.profienergy.measurement.accuracy_domain",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_accuracy_class,
+ { "Accuracy_Class", "pn_io.profienergy.measurement.accuracy_class",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_range,
+ { "Range", "pn_io.profienergy.measurement.range",
+ FT_FLOAT, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_structure_length,
+ { "Structure Length", "pn_io.profienergy.measurement.structure_length",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_structure_id,
+ { "Structure ID", "pn_io.profienergy.measurement.structure_id",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_status,
+ { "Status", "pn_io.profienergy.measurement.status",
+ FT_UINT8, BASE_DEC, VALS(pn_io_pe_measurement_status), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_value,
+ { "Measurement Value", "pn_io.profienergy.measurement.value",
+ FT_NONE, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_value_uint32,
+ { "Value", "pn_io.profienergy.measurement.value_uint32",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_value_float32,
+ { "Value", "pn_io.profienergy.measurement.value_float32",
+ FT_FLOAT, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_pn_io_pe_measurement_value_float64,
+ { "Value", "pn_io.profienergy.measurement.value_float64",
+ FT_DOUBLE, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
{ &hf_pn_io_pe_operational_mode,
{ "PE_OperationalMode", "pn_io.pe_operationalmode",
FT_UINT8, BASE_HEX | BASE_RANGE_STRING, RVALS(pn_io_pe_operational_mode), 0x0,
@@ -17979,6 +18821,11 @@ proto_register_pn_io (void)
&ett_pn_io_mau_type_extension,
&ett_pn_io_pe_service_request,
&ett_pn_io_pe_service_response,
+ &ett_pn_io_pe_service_datarequest,
+ &ett_pn_io_pe_service_dataresponse,
+ &ett_pn_io_pe_mode_attributes,
+ &ett_pn_io_pe_measurement_id,
+ &ett_pn_io_pe_measurement_value,
&ett_pn_io_pe_operational_mode,
&ett_pn_io_neighbor,
&ett_pn_io_tsn_domain_vid_config,
@@ -18034,7 +18881,7 @@ proto_register_pn_io (void)
&pnio_ps_selection);
prefs_register_directory_preference(pnio_module, "pnio_ps_networkpath",
"Folder containing GSD files", /* Title */
- "Place GSD files in this folder.", /* Descreption */
+ "Place GSD files in this folder.", /* Description */
&pnio_ps_networkpath); /* Variable in which to save the GSD file folder path */
/* subdissector code */
diff --git a/plugins/epan/profinet/packet-dcom-cba-acco.c b/plugins/epan/profinet/packet-dcom-cba-acco.c
index 3fe5fd5998..fddee433f4 100644
--- a/plugins/epan/profinet/packet-dcom-cba-acco.c
+++ b/plugins/epan/profinet/packet-dcom-cba-acco.c
@@ -148,41 +148,41 @@ static expert_field ei_cba_acco_connect;
static int proto_ICBAAccoMgt;
static gint ett_ICBAAccoMgt;
static e_guid_t uuid_ICBAAccoMgt = { 0xcba00041, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoMgt = 0;
+static guint16 ver_ICBAAccoMgt;
static int proto_ICBAAccoMgt2;
static e_guid_t uuid_ICBAAccoMgt2 = { 0xcba00046, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoMgt2 = 0;
+static guint16 ver_ICBAAccoMgt2;
static int proto_ICBAAccoCallback;
static gint ett_ICBAAccoCallback;
static gint ett_ICBAAccoCallback_Buffer;
static gint ett_ICBAAccoCallback_Item;
static e_guid_t uuid_ICBAAccoCallback = { 0xcba00042, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoCallback = 0;
+static guint16 ver_ICBAAccoCallback;
static int proto_ICBAAccoCallback2;
static e_guid_t uuid_ICBAAccoCallback2 = { 0xcba00047, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoCallback2 = 0;
+static guint16 ver_ICBAAccoCallback2;
static int proto_ICBAAccoServer;
static gint ett_ICBAAccoServer;
static e_guid_t uuid_ICBAAccoServer = { 0xcba00043, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoServer = 0;
+static guint16 ver_ICBAAccoServer;
static int proto_ICBAAccoServer2;
static e_guid_t uuid_ICBAAccoServer2 = { 0xcba00048, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoServer2 = 0;
+static guint16 ver_ICBAAccoServer2;
static int proto_ICBAAccoServerSRT;
static gint ett_ICBAAccoServerSRT;
static e_guid_t uuid_ICBAAccoServerSRT = { 0xcba00045, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoServerSRT = 0;
+static guint16 ver_ICBAAccoServerSRT;
static int proto_ICBAAccoSync;
static gint ett_ICBAAccoSync;
static e_guid_t uuid_ICBAAccoSync = { 0xcba00044, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAAccoSync = 0;
+static guint16 ver_ICBAAccoSync;
@@ -327,7 +327,7 @@ GList *cba_pdevs;
/* as we are a plugin, we cannot get this from libwireshark! */
const true_false_string acco_flags_set_truth = { "Set", "Not set" };
-static gboolean
+static bool
cba_filter_valid(packet_info *pinfo, void *user_data _U_)
{
void* profinet_type = p_get_proto_data(pinfo->pool, pinfo, proto_ICBAAccoMgt, 0);
@@ -4553,7 +4553,7 @@ dissect_ICBAAccoSync_WriteItemsQCD_rqst(tvbuff_t *tvb, int offset,
/* sub dissector table of ICBAAccoMgt / ICBAAccoMgt2 interface */
-static dcerpc_sub_dissector ICBAAccoMgt_dissectors[] = {
+static const dcerpc_sub_dissector ICBAAccoMgt_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -4581,7 +4581,7 @@ static dcerpc_sub_dissector ICBAAccoMgt_dissectors[] = {
/* sub dissector table of ICBAAccoCallback interface */
-static dcerpc_sub_dissector ICBAAccoCallback_dissectors[] = {
+static const dcerpc_sub_dissector ICBAAccoCallback_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -4594,7 +4594,7 @@ static dcerpc_sub_dissector ICBAAccoCallback_dissectors[] = {
/* sub dissector table of ICBAAccoServer interface */
-static dcerpc_sub_dissector ICBAAccoServer_dissectors[] = {
+static const dcerpc_sub_dissector ICBAAccoServer_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -4612,7 +4612,7 @@ static dcerpc_sub_dissector ICBAAccoServer_dissectors[] = {
/* sub dissector table of ICBAAccoServerSRT interface (stage 2 only) */
-static dcerpc_sub_dissector ICBAAccoServerSRT_dissectors[] = {
+static const dcerpc_sub_dissector ICBAAccoServerSRT_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -4628,7 +4628,7 @@ static dcerpc_sub_dissector ICBAAccoServerSRT_dissectors[] = {
/* sub dissector table of ICBAAccoSync interface */
-static dcerpc_sub_dissector ICBAAccoSync_dissectors[] = {
+static const dcerpc_sub_dissector ICBAAccoSync_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
diff --git a/plugins/epan/profinet/packet-dcom-cba.c b/plugins/epan/profinet/packet-dcom-cba.c
index 26f5735b49..71fad4ee11 100644
--- a/plugins/epan/profinet/packet-dcom-cba.c
+++ b/plugins/epan/profinet/packet-dcom-cba.c
@@ -74,87 +74,87 @@ static e_guid_t uuid_coclass_CBAPhysicalDevice = { 0xcba00000, 0x6c97, 0x11d1, {
static int proto_ICBAPhysicalDevice;
static gint ett_ICBAPhysicalDevice;
static e_guid_t uuid_ICBAPhysicalDevice = { 0xcba00001, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAPhysicalDevice = 0;
+static guint16 ver_ICBAPhysicalDevice;
static int proto_ICBAPhysicalDevice2;
static e_guid_t uuid_ICBAPhysicalDevice2 = { 0xcba00006, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAPhysicalDevice2 = 0;
+static guint16 ver_ICBAPhysicalDevice2;
static int proto_ICBABrowse;
static gint ett_ICBABrowse;
static e_guid_t uuid_ICBABrowse = { 0xcba00002, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBABrowse = 0;
+static guint16 ver_ICBABrowse;
static int proto_ICBABrowse2;
static e_guid_t uuid_ICBABrowse2 = { 0xcba00007, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBABrowse2 = 0;
+static guint16 ver_ICBABrowse2;
static int proto_ICBAPhysicalDevicePC;
static gint ett_ICBAPhysicalDevicePC;
static e_guid_t uuid_ICBAPhysicalDevicePC = { 0xcba00003, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAPhysicalDevicePC = 0;
+static guint16 ver_ICBAPhysicalDevicePC;
static int proto_ICBAPhysicalDevicePCEvent;
static gint ett_ICBAPhysicalDevicePCEvent;
static e_guid_t uuid_ICBAPhysicalDevicePCEvent = { 0xcba00004, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAPhysicalDevicePCEvent = 0;
+static guint16 ver_ICBAPhysicalDevicePCEvent;
static int proto_ICBAPersist;
static gint ett_ICBAPersist;
static e_guid_t uuid_ICBAPersist = { 0xcba00005, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAPersist = 0;
+static guint16 ver_ICBAPersist;
static int proto_ICBAPersist2;
static e_guid_t uuid_ICBAPersist2 = { 0xcba00008, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAPersist2 = 0;
+static guint16 ver_ICBAPersist2;
static int proto_ICBALogicalDevice;
static gint ett_ICBALogicalDevice;
static e_guid_t uuid_ICBALogicalDevice = { 0xcba00011, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBALogicalDevice = 0;
+static guint16 ver_ICBALogicalDevice;
static int proto_ICBALogicalDevice2;
static e_guid_t uuid_ICBALogicalDevice2 = { 0xcba00017, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBALogicalDevice2 = 0;
+static guint16 ver_ICBALogicalDevice2;
static int proto_ICBAState;
static gint ett_ICBAState;
static e_guid_t uuid_ICBAState = { 0xcba00012, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAState = 0;
+static guint16 ver_ICBAState;
static int proto_ICBAStateEvent;
static gint ett_ICBAStateEvent;
static e_guid_t uuid_ICBAStateEvent = { 0xcba00013, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAStateEvent = 0;
+static guint16 ver_ICBAStateEvent;
static int proto_ICBATime;
static gint ett_ICBATime;
static e_guid_t uuid_ICBATime = { 0xcba00014, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBATime = 0;
+static guint16 ver_ICBATime;
static int proto_ICBAGroupError;
static gint ett_ICBAGroupError;
static e_guid_t uuid_ICBAGroupError = { 0xcba00015, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAGroupError = 0;
+static guint16 ver_ICBAGroupError;
static int proto_ICBAGroupErrorEvent;
static gint ett_ICBAGroupErrorEvent;
static e_guid_t uuid_ICBAGroupErrorEvent = { 0xcba00016, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBAGroupErrorEvent = 0;
+static guint16 ver_ICBAGroupErrorEvent;
static int proto_ICBARTAuto;
static gint ett_ICBARTAuto;
static e_guid_t uuid_ICBARTAuto = { 0xcba00051, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBARTAuto = 0;
+static guint16 ver_ICBARTAuto;
static int proto_ICBARTAuto2;
static e_guid_t uuid_ICBARTAuto2 = { 0xcba00052, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBARTAuto2 = 0;
+static guint16 ver_ICBARTAuto2;
static int proto_ICBASystemProperties;
static gint ett_ICBASystemProperties;
static e_guid_t uuid_ICBASystemProperties = { 0xcba00062, 0x6c97, 0x11d1, { 0x82, 0x71, 0x00, 0xa0, 0x24, 0x42, 0xdf, 0x7d } };
-static guint16 ver_ICBASystemProperties = 0;
+static guint16 ver_ICBASystemProperties;
static gint ett_PBAddress;
@@ -1117,7 +1117,7 @@ dissect_ICBAGroupError_GroupError_resp(tvbuff_t *tvb, int offset,
/* sub dissector table of ICBAPhysicalDevice / ICBAPhysicalDevice2 interface */
-static dcerpc_sub_dissector ICBAPhysicalDevice_dissectors[] = {
+static const dcerpc_sub_dissector ICBAPhysicalDevice_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1142,7 +1142,7 @@ static dcerpc_sub_dissector ICBAPhysicalDevice_dissectors[] = {
/* sub dissector table of ICBABrowse / ICBABrowse2 interface */
-static dcerpc_sub_dissector ICBABrowse_dissectors[] = {
+static const dcerpc_sub_dissector ICBABrowse_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1162,7 +1162,7 @@ static dcerpc_sub_dissector ICBABrowse_dissectors[] = {
/* sub dissector table of ICBAPersist / ICBAPersist2 interface */
-static dcerpc_sub_dissector ICBAPersist_dissectors[] = {
+static const dcerpc_sub_dissector ICBAPersist_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1181,7 +1181,7 @@ static dcerpc_sub_dissector ICBAPersist_dissectors[] = {
/* sub dissector table of ICBAPhysicalDevicePC interface */
/* (local COM interface, not to be called over network) */
-static dcerpc_sub_dissector ICBAPhysicalDevicePC_dissectors[] = {
+static const dcerpc_sub_dissector ICBAPhysicalDevicePC_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1199,7 +1199,7 @@ static dcerpc_sub_dissector ICBAPhysicalDevicePC_dissectors[] = {
/* sub dissector table of ICBAPhysicalDevicePCEvent interface */
-static dcerpc_sub_dissector ICBAPhysicalDevicePCEvent_dissectors[] = {
+static const dcerpc_sub_dissector ICBAPhysicalDevicePCEvent_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1211,7 +1211,7 @@ static dcerpc_sub_dissector ICBAPhysicalDevicePCEvent_dissectors[] = {
/* sub dissector table of ICBALogicalDevice / ICBALogicalDevice2 interface */
-static dcerpc_sub_dissector ICBALogicalDevice_dissectors[] = {
+static const dcerpc_sub_dissector ICBALogicalDevice_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1238,7 +1238,7 @@ static dcerpc_sub_dissector ICBALogicalDevice_dissectors[] = {
/* sub dissector table of ICBAState interface */
-static dcerpc_sub_dissector ICBAState_dissectors[] = {
+static const dcerpc_sub_dissector ICBAState_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1259,7 +1259,7 @@ static dcerpc_sub_dissector ICBAState_dissectors[] = {
/* sub dissector table of ICBAStateEvent interface */
-static dcerpc_sub_dissector ICBAStateEvent_dissectors[] = {
+static const dcerpc_sub_dissector ICBAStateEvent_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1270,7 +1270,7 @@ static dcerpc_sub_dissector ICBAStateEvent_dissectors[] = {
/* sub dissector table of ICBATime interface */
-static dcerpc_sub_dissector ICBATime_dissectors[] = {
+static const dcerpc_sub_dissector ICBATime_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1287,7 +1287,7 @@ static dcerpc_sub_dissector ICBATime_dissectors[] = {
/* sub dissector table of ICBAGroupError interface */
-static dcerpc_sub_dissector ICBAGroupError_dissectors[] = {
+static const dcerpc_sub_dissector ICBAGroupError_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1305,7 +1305,7 @@ static dcerpc_sub_dissector ICBAGroupError_dissectors[] = {
/* sub dissector table of ICBAGroupErrorEvent interface */
-static dcerpc_sub_dissector ICBAGroupErrorEvent_dissectors[] = {
+static const dcerpc_sub_dissector ICBAGroupErrorEvent_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1316,7 +1316,7 @@ static dcerpc_sub_dissector ICBAGroupErrorEvent_dissectors[] = {
/* sub dissector table of ICBARTAuto interface */
-static dcerpc_sub_dissector ICBARTAuto_dissectors[] = {
+static const dcerpc_sub_dissector ICBARTAuto_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
@@ -1338,7 +1338,7 @@ static dcerpc_sub_dissector ICBARTAuto_dissectors[] = {
/* the interface ICBASystemProperties will NOT be seen on the ethernet */
/* sub dissector table of ICBASystemProperties interface (stage 2 only) */
/* (usually not called over network, no dissecting needed) */
-static dcerpc_sub_dissector ICBASystemProperties_dissectors[] = {
+static const dcerpc_sub_dissector ICBASystemProperties_dissectors[] = {
{ 0, "QueryInterface", NULL, NULL },
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
diff --git a/plugins/epan/profinet/packet-pn-rsi.c b/plugins/epan/profinet/packet-pn-rsi.c
index fe6e71ac4b..1cedd6a92c 100644
--- a/plugins/epan/profinet/packet-pn-rsi.c
+++ b/plugins/epan/profinet/packet-pn-rsi.c
@@ -295,7 +295,7 @@ dissect_pn_rta_remaining_user_data_bytes(tvbuff_t *tvb, int offset, packet_info
proto_item *pn_rsi_tree_item;
proto_item *payload_item = NULL;
proto_item *payload_tree = NULL;
- gboolean update_col_info = TRUE;
+ bool update_col_info = true;
if (pinfo->srcport != 0 && pinfo->destport != 0) {
/* COTP over RFC1006/TCP, try reassembling */
diff --git a/plugins/epan/profinet/packet-pn-rt.c b/plugins/epan/profinet/packet-pn-rt.c
index f7f9387d1b..bffc49b3c7 100644
--- a/plugins/epan/profinet/packet-pn-rt.c
+++ b/plugins/epan/profinet/packet-pn-rt.c
@@ -31,7 +31,7 @@ void proto_reg_handoff_pn_rt(void);
/* Define the pn-rt proto */
static int proto_pn_rt;
-static gboolean pnio_desegment = TRUE;
+static bool pnio_desegment = true;
static dissector_handle_t pn_rt_handle;
@@ -89,7 +89,7 @@ static expert_field ei_pn_rt_sf_crc16;
* the various user definable characteristics of the dissection
*/
/* Place summary in proto tree */
-static gboolean pn_rt_summary_in_tree = TRUE;
+static bool pn_rt_summary_in_tree = true;
/* heuristic to find the right pn-rt payload dissector */
static heur_dissector_list_t heur_subdissector_list;
@@ -302,7 +302,7 @@ IsDFP_Frame(tvbuff_t *tvb, packet_info *pinfo, guint16 u16FrameID)
{
if (u16SFCRC16 != crc)
{
- return(FALSE);
+ return FALSE;
}
}
/* end of first CRC check */
@@ -368,7 +368,7 @@ dissect_CSF_SDU_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
/* possible FrameID ranges for DFP */
if ((u16FrameID < 0x0100) || (u16FrameID > 0x3FFF))
- return (FALSE);
+ return FALSE;
if (IsDFP_Frame(tvb, pinfo, u16FrameID)) {
/* can't check this CRC, as the checked data bytes are not available */
u16SFCRC16 = tvb_get_letohs(tvb, offset);
@@ -451,7 +451,7 @@ dissect_CSF_SDU_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
/* Register PNIO defrag table init routine. */
static reassembly_table pdu_reassembly_table;
-static GHashTable *reassembled_frag_table = NULL;
+static GHashTable *reassembled_frag_table;
static dissector_table_t ethertype_subdissector_table;
@@ -522,7 +522,7 @@ dissect_FRAG_PDU_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
dissect_pn_user_data_bytes(tvb, offset, pinfo, sub_tree, tvb_captured_length_remaining(tvb, offset), FRAG_DATA);
if ((guint)tvb_captured_length_remaining(tvb, offset) < (guint)(u8FragDataLength *8)) {
proto_item_append_text(status_item, ": FragDataLength out of Framerange -> discarding!");
- return (TRUE);
+ return TRUE;
}
/* defragmentation starts here */
if (pnio_desegment)
diff --git a/plugins/epan/profinet/packet-pn.h b/plugins/epan/profinet/packet-pn.h
index 6053fc3780..58e1f59db0 100644
--- a/plugins/epan/profinet/packet-pn.h
+++ b/plugins/epan/profinet/packet-pn.h
@@ -28,7 +28,7 @@ extern int proto_pn_dcp;
extern int proto_pn_io_apdu_status;
extern int proto_pn_io_time_aware_status;
-extern gboolean pnio_ps_selection; /* given by pnio preferences */
+extern bool pnio_ps_selection; /* given by pnio preferences */
/* Structure for general station information */
typedef struct tagStationInfo {
diff --git a/plugins/epan/stats_tree/CMakeLists.txt b/plugins/epan/stats_tree/CMakeLists.txt
index a7a4543c7a..7986d870bb 100644
--- a/plugins/epan/stats_tree/CMakeLists.txt
+++ b/plugins/epan/stats_tree/CMakeLists.txt
@@ -29,11 +29,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin_tap
- "Statistics for ethernet frames"
${TAP_SRC}
)
-add_wireshark_epan_plugin_library(stats_tree)
+add_wireshark_plugin_library(stats_tree epan)
target_link_libraries(stats_tree epan)
diff --git a/plugins/epan/stats_tree/pinfo_stats_tree.c b/plugins/epan/stats_tree/pinfo_stats_tree.c
index 4fc04cc662..a5a147e630 100644
--- a/plugins/epan/stats_tree/pinfo_stats_tree.c
+++ b/plugins/epan/stats_tree/pinfo_stats_tree.c
@@ -40,9 +40,9 @@ static range_t default_range[10] = {
{1, {{2560, 5119}}},
{1, {{5120, 0xFFFFFFFF}}}
};
-static uat_plen_record_t *uat_plen_records = NULL;
-static uat_t *plen_uat = NULL;
-static guint num_plen_uat = 0;
+static uat_plen_record_t *uat_plen_records;
+static uat_t *plen_uat;
+static guint num_plen_uat;
void register_tap_listener_pinfo_stat_tree(void);
diff --git a/plugins/epan/transum/CMakeLists.txt b/plugins/epan/transum/CMakeLists.txt
index 64fd9a74a4..d26d4e464a 100644
--- a/plugins/epan/transum/CMakeLists.txt
+++ b/plugins/epan/transum/CMakeLists.txt
@@ -35,12 +35,11 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "Response time information based on the RTE model"
${DISSECTOR_SRC}
${DISSECTOR_SUPPORT_SRC}
)
-add_wireshark_epan_plugin_library(transum)
+add_wireshark_plugin_library(transum epan)
target_link_libraries(transum epan)
diff --git a/plugins/epan/transum/decoders.c b/plugins/epan/transum/decoders.c
index c430f588ec..af7fb81fe5 100644
--- a/plugins/epan/transum/decoders.c
+++ b/plugins/epan/transum/decoders.c
@@ -186,7 +186,7 @@ int decode_smb(packet_info *pinfo _U_, proto_tree *tree, PKT_INFO* pkt_info, PKT
int decode_gtcp(packet_info *pinfo, proto_tree *tree, PKT_INFO* pkt_info)
{
guint32 field_uint[MAX_RETURNED_ELEMENTS]; /* An extracted field array for unsigned integers */
- gboolean field_bool[MAX_RETURNED_ELEMENTS]; /* An extracted field array for unsigned integers */
+ bool field_bool[MAX_RETURNED_ELEMENTS]; /* An extracted field array for unsigned integers */
size_t field_value_count; /* How many entries are there in the extracted field array */
if (!extract_uint(tree, hf_of_interest[HF_INTEREST_TCP_STREAM].hf, field_uint, &field_value_count)) {
diff --git a/plugins/epan/transum/extractors.c b/plugins/epan/transum/extractors.c
index 80475ae377..6319398097 100644
--- a/plugins/epan/transum/extractors.c
+++ b/plugins/epan/transum/extractors.c
@@ -11,7 +11,7 @@
*/
#include "config.h"
#include <epan/prefs.h>
-#include <epan/packet.h>
+#include <wsutil/array.h>
#include "extractors.h"
/*
@@ -97,7 +97,7 @@ int extract_si64(proto_tree *tree, int field_id, guint64 *result_array, size_t *
return 0;
}
-int extract_bool(proto_tree *tree, int field_id, gboolean *result_array, size_t *element_count)
+int extract_bool(proto_tree *tree, int field_id, bool *result_array, size_t *element_count)
{
GPtrArray *finfo_array;
@@ -120,9 +120,9 @@ int extract_bool(proto_tree *tree, int field_id, gboolean *result_array, size_t
ws_assert(fvalue_type_ftenum(fv) == FT_BOOLEAN);
if (fvalue_get_uinteger64(fv))
- result_array[i] = TRUE;
+ result_array[i] = true;
else
- result_array[i] = FALSE;
+ result_array[i] = false;
}
return 0;
diff --git a/plugins/epan/transum/extractors.h b/plugins/epan/transum/extractors.h
index d56134a6db..891705089f 100644
--- a/plugins/epan/transum/extractors.h
+++ b/plugins/epan/transum/extractors.h
@@ -17,5 +17,5 @@
int extract_uint(proto_tree *tree, int field_id, guint32 *result_array, size_t *element_count);
int extract_ui64(proto_tree *tree, int field_id, guint64 *result_array, size_t *element_count);
int extract_si64(proto_tree *tree, int field_id, guint64 *result_array, size_t *element_count);
-int extract_bool(proto_tree *tree, int field_id, gboolean *result_array, size_t *element_count);
+int extract_bool(proto_tree *tree, int field_id, bool *result_array, size_t *element_count);
int extract_instance_count(proto_tree *tree, int field_id, size_t *element_count);
diff --git a/plugins/epan/transum/packet-transum.c b/plugins/epan/transum/packet-transum.c
index 87903fc58f..cbccc8b84e 100644
--- a/plugins/epan/transum/packet-transum.c
+++ b/plugins/epan/transum/packet-transum.c
@@ -93,7 +93,7 @@ static wmem_map_t *detected_tcp_svc; /* this array is used to track services de
static wmem_map_t *dcerpc_req_pkt_type; /* used to indicate if a DCE-RPC pkt_type is a request */
-static wmem_map_t *dcerpc_streams = NULL; /* used to record TCP stream numbers that are carrying DCE-RPC data */
+static wmem_map_t *dcerpc_streams; /* used to record TCP stream numbers that are carrying DCE-RPC data */
/*
This array contains calls and returns that have no TRUE context_id
@@ -106,7 +106,7 @@ static wmem_map_t *dcerpc_context_zero;
/*
The rrpd_list holds information about all of the APDU Request-Response Pairs seen in the trace.
*/
-static wmem_list_t *rrpd_list = NULL;
+static wmem_list_t *rrpd_list;
/*
output_rrpd is a hash of pointers to RRPDs on the rrpd_list. The index is the frame number. This hash is
@@ -122,7 +122,7 @@ static wmem_map_t *output_rrpd;
TCP Reassembly enabled. Once we receive a header packet for an APDU we migrate the entry from this array to the
main rrpd_list.
*/
-static wmem_list_t *temp_rsp_rrpd_list = NULL; /* Reuse these for speed and efficient memory use - issue a warning if we run out */
+static wmem_list_t *temp_rsp_rrpd_list; /* Reuse these for speed and efficient memory use - issue a warning if we run out */
/* Optimisation data - the following is used for various optimisation measures */
static int highest_tcp_stream_no;
diff --git a/plugins/epan/transum/preferences.h b/plugins/epan/transum/preferences.h
index 96eea06a18..240565e11d 100644
--- a/plugins/epan/transum/preferences.h
+++ b/plugins/epan/transum/preferences.h
@@ -25,17 +25,17 @@
typedef struct _TSUM_PREFERENCES
{
int capture_position;
- gboolean reassembly;
+ bool reassembly;
wmem_map_t *tcp_svc_ports;
wmem_map_t *udp_svc_ports;
- gboolean orphan_ka_discard;
+ bool orphan_ka_discard;
int time_multiplier;
- gboolean rte_on_first_req;
- gboolean rte_on_last_req;
- gboolean rte_on_first_rsp;
- gboolean rte_on_last_rsp;
- gboolean summarisers_enabled;
- gboolean summarise_tds;
- gboolean summarisers_escape_quotes;
- gboolean debug_enabled;
+ bool rte_on_first_req;
+ bool rte_on_last_req;
+ bool rte_on_first_rsp;
+ bool rte_on_last_rsp;
+ bool summarisers_enabled;
+ bool summarise_tds;
+ bool summarisers_escape_quotes;
+ bool debug_enabled;
} TSUM_PREFERENCES;
diff --git a/plugins/epan/unistim/CMakeLists.txt b/plugins/epan/unistim/CMakeLists.txt
index ade7e6d910..b44ca8bcad 100644
--- a/plugins/epan/unistim/CMakeLists.txt
+++ b/plugins/epan/unistim/CMakeLists.txt
@@ -29,11 +29,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "Unified Networks IP Stimulus (UNIStim) dissection"
${DISSECTOR_SRC}
)
-add_wireshark_epan_plugin_library(unistim)
+add_wireshark_plugin_library(unistim epan)
target_link_libraries(unistim epan)
diff --git a/plugins/epan/wimax/CMakeLists.txt b/plugins/epan/wimax/CMakeLists.txt
index 15fee28525..50c3a7a34b 100644
--- a/plugins/epan/wimax/CMakeLists.txt
+++ b/plugins/epan/wimax/CMakeLists.txt
@@ -75,12 +75,11 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "WiMax Protocol dissector"
${DISSECTOR_SRC}
${DISSECTOR_SUPPORT_SRC}
)
-add_wireshark_epan_plugin_library(wimax)
+add_wireshark_plugin_library(wimax epan)
target_link_libraries(wimax epan)
diff --git a/plugins/epan/wimax/mac_hd_generic_decoder.c b/plugins/epan/wimax/mac_hd_generic_decoder.c
index 6bf8bf6fa5..aca0acbf7e 100644
--- a/plugins/epan/wimax/mac_hd_generic_decoder.c
+++ b/plugins/epan/wimax/mac_hd_generic_decoder.c
@@ -47,11 +47,11 @@ extern gint scheduling_service_type; /* declared in packet-wmx.c */
extern address bs_address; /* declared in packet-wmx.c */
extern guint max_logical_bands; /* declared in wimax_compact_dlmap_ie_decoder.c */
-static dissector_handle_t mac_mgmt_msg_decoder_handle = NULL;
-static dissector_handle_t mac_ip_handle = NULL;
+static dissector_handle_t mac_mgmt_msg_decoder_handle;
+static dissector_handle_t mac_ip_handle;
/* global variables */
-gboolean include_cor2_changes = FALSE;
+bool include_cor2_changes;
/* Well-known CIDs */
guint cid_initial_ranging = 0x0000;
@@ -95,9 +95,9 @@ static guint extended_type, arq_fb_payload, seq_number;
static guint cid_adjust[MAX_CID]; /* Must not start with 0 */
static guint cid_vernier[MAX_CID];
-static guint cid_adj_array_size = 0;
-static guint *cid_adj_array = NULL;
-static guint8 *frag_num_array = NULL;
+static guint cid_adj_array_size;
+static guint *cid_adj_array;
+static guint8 *frag_num_array;
static address save_src;
static address save_dst;
diff --git a/plugins/epan/wimax/msg_dcd.c b/plugins/epan/wimax/msg_dcd.c
index 91c62751ae..77a2feb5e8 100644
--- a/plugins/epan/wimax/msg_dcd.c
+++ b/plugins/epan/wimax/msg_dcd.c
@@ -24,9 +24,7 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
-
-/* Delete the following variable as soon as possible */
-extern gboolean include_cor2_changes;
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_dcd(void);
void proto_reg_handoff_mac_mgmt_msg_dcd(void);
diff --git a/plugins/epan/wimax/msg_dlmap.c b/plugins/epan/wimax/msg_dlmap.c
index 420ca1fc24..4b47045943 100644
--- a/plugins/epan/wimax/msg_dlmap.c
+++ b/plugins/epan/wimax/msg_dlmap.c
@@ -22,8 +22,7 @@
#include "crc.h"
#include "wimax_bits.h"
#include "wimax_utils.h"
-
-extern gboolean include_cor2_changes;
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_dlmap(void);
void proto_reg_handoff_mac_mgmt_msg_dlmap(void);
@@ -56,16 +55,16 @@ static dissector_handle_t dlmap_handle;
nib += nibs; \
} while(0)
-gint harq = 0; /* 1 if HARQ enabled (TODO) */
-gint fusc = 0; /* 1 if current zone permutation is FUSC or optional FUSC (TODO) */
-gint tusc = 0; /* 1 if current zone permutation is AMC, TUSC1 or TUSC2 (TODO) */
-gint ir_type = 0; /* reduced AAS map (TODO) */
-gint RCID_Type = 0;
-gint N_layer = 0;
-gint STC_Zone_Dedicated_Pilots = 0;
-gint STC_Zone_Matrix = 0;
-gint INC_CID = 0;
-gint sub_dl_ul_map = 0;
+gint harq; /* 1 if HARQ enabled (TODO) */
+gint fusc; /* 1 if current zone permutation is FUSC or optional FUSC (TODO) */
+gint tusc; /* 1 if current zone permutation is AMC, TUSC1 or TUSC2 (TODO) */
+gint ir_type; /* reduced AAS map (TODO) */
+gint RCID_Type;
+gint N_layer;
+gint STC_Zone_Dedicated_Pilots;
+gint STC_Zone_Matrix;
+gint INC_CID;
+gint sub_dl_ul_map;
static gint proto_mac_mgmt_msg_dlmap_decoder;
diff --git a/plugins/epan/wimax/msg_dreg.c b/plugins/epan/wimax/msg_dreg.c
index 71f9316f1d..922ec0ac95 100644
--- a/plugins/epan/wimax/msg_dreg.c
+++ b/plugins/epan/wimax/msg_dreg.c
@@ -21,8 +21,7 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
-
-extern gboolean include_cor2_changes;
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_dreg_req(void);
void proto_register_mac_mgmt_msg_dreg_cmd(void);
diff --git a/plugins/epan/wimax/msg_pmc.c b/plugins/epan/wimax/msg_pmc.c
index c11c709a07..b65c8bab0c 100644
--- a/plugins/epan/wimax/msg_pmc.c
+++ b/plugins/epan/wimax/msg_pmc.c
@@ -19,8 +19,7 @@
#include <epan/packet.h>
#include "wimax_mac.h"
-
-extern gboolean include_cor2_changes;
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_pmc_req(void);
void proto_register_mac_mgmt_msg_pmc_rsp(void);
diff --git a/plugins/epan/wimax/msg_reg_req.c b/plugins/epan/wimax/msg_reg_req.c
index 3387776498..95cfc83dcd 100644
--- a/plugins/epan/wimax/msg_reg_req.c
+++ b/plugins/epan/wimax/msg_reg_req.c
@@ -22,8 +22,7 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
-
-extern gboolean include_cor2_changes;
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_reg_req(void);
void proto_reg_handoff_mac_mgmt_msg_reg_req(void);
diff --git a/plugins/epan/wimax/msg_reg_rsp.c b/plugins/epan/wimax/msg_reg_rsp.c
index 1f4efd1577..b4b8a38996 100644
--- a/plugins/epan/wimax/msg_reg_rsp.c
+++ b/plugins/epan/wimax/msg_reg_rsp.c
@@ -24,15 +24,14 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_reg_rsp(void);
void proto_reg_handoff_mac_mgmt_msg_reg_rsp(void);
static dissector_handle_t reg_rsp_handle;
-extern gboolean include_cor2_changes;
-
-static dissector_handle_t dsc_rsp_handle = NULL;
+static dissector_handle_t dsc_rsp_handle;
static gint proto_mac_mgmt_msg_reg_rsp_decoder;
static gint ett_mac_mgmt_msg_reg_rsp_decoder;
diff --git a/plugins/epan/wimax/msg_rng_req.c b/plugins/epan/wimax/msg_rng_req.c
index 0d14cd672f..2cfd7650a2 100644
--- a/plugins/epan/wimax/msg_rng_req.c
+++ b/plugins/epan/wimax/msg_rng_req.c
@@ -20,14 +20,13 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_rng_req(void);
void proto_reg_handoff_mac_mgmt_msg_rng_req(void);
static dissector_handle_t rng_req_handle;
-extern gboolean include_cor2_changes;
-
static gint proto_mac_mgmt_msg_rng_req_decoder;
static gint ett_mac_mgmt_msg_rng_req_decoder;
diff --git a/plugins/epan/wimax/msg_rng_rsp.c b/plugins/epan/wimax/msg_rng_rsp.c
index b1d859b62a..b952158f43 100644
--- a/plugins/epan/wimax/msg_rng_rsp.c
+++ b/plugins/epan/wimax/msg_rng_rsp.c
@@ -20,16 +20,14 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_rng_rsp(void);
void proto_reg_handoff_mac_mgmt_msg_rng_rsp(void);
-extern gboolean include_cor2_changes;
-
-
-static dissector_handle_t rng_rsp_handle = NULL;
-static dissector_handle_t sbc_rsp_handle = NULL;
-static dissector_handle_t reg_rsp_handle = NULL;
+static dissector_handle_t rng_rsp_handle;
+static dissector_handle_t sbc_rsp_handle;
+static dissector_handle_t reg_rsp_handle;
static gint proto_mac_mgmt_msg_rng_rsp_decoder;
static gint ett_mac_mgmt_msg_rng_rsp_decoder;
diff --git a/plugins/epan/wimax/msg_sbc.c b/plugins/epan/wimax/msg_sbc.c
index a605756f62..0f20155551 100644
--- a/plugins/epan/wimax/msg_sbc.c
+++ b/plugins/epan/wimax/msg_sbc.c
@@ -24,6 +24,7 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_sbc(void);
@@ -32,10 +33,6 @@ void proto_reg_handoff_mac_mgmt_msg_sbc(void);
static dissector_handle_t sbc_req_handle;
static dissector_handle_t sbc_rsp_handle;
-/* This is a global variable declared in mac_hd_generic_decoder.c, which determines whether
- * or not cor2 changes are included */
-extern gboolean include_cor2_changes;
-
static gint proto_mac_mgmt_msg_sbc_decoder;
static gint ett_mac_mgmt_msg_sbc_decoder;
static gint ett_sbc_req_tlv_subtree;
diff --git a/plugins/epan/wimax/msg_ucd.c b/plugins/epan/wimax/msg_ucd.c
index 5ad333cf77..cd15a52f80 100644
--- a/plugins/epan/wimax/msg_ucd.c
+++ b/plugins/epan/wimax/msg_ucd.c
@@ -24,14 +24,13 @@
#include "wimax_tlv.h"
#include "wimax_mac.h"
#include "wimax_utils.h"
+#include "wimax_prefs.h"
void proto_register_mac_mgmt_msg_ucd(void);
void proto_reg_handoff_mac_mgmt_msg_ucd(void);
static dissector_handle_t ucd_handle;
-extern gboolean include_cor2_changes;
-
guint cqich_id_size; /* Set for CQICH_Alloc_IE */
static gint proto_mac_mgmt_msg_ucd_decoder;
diff --git a/plugins/epan/wimax/msg_ulmap.c b/plugins/epan/wimax/msg_ulmap.c
index cdb0066c50..f12516521a 100644
--- a/plugins/epan/wimax/msg_ulmap.c
+++ b/plugins/epan/wimax/msg_ulmap.c
@@ -21,8 +21,9 @@
#include "wimax_mac.h"
#include "wimax_bits.h"
#include "wimax_utils.h"
-
-extern gboolean include_cor2_changes;
+#if 0
+#include "wimax_prefs.h"
+#endif
static dissector_handle_t ulmap_handle;
diff --git a/plugins/epan/wimax/packet-wmx.c b/plugins/epan/wimax/packet-wmx.c
index b6914b677c..28aa290961 100644
--- a/plugins/epan/wimax/packet-wmx.c
+++ b/plugins/epan/wimax/packet-wmx.c
@@ -23,17 +23,21 @@
#include "wimax-int.h"
#include "wimax_tlv.h"
#include "wimax_utils.h"
+#include "wimax_prefs.h"
void proto_register_wimax(void);
void proto_reg_handoff_wimax(void);
-/* Global variables */
+/*
+ * Global variables
+ *
+ * XXX - are these per-packet state? If so, they should be made so,
+ * rather than being global.
+ */
gint proto_wimax;
-gint8 arq_enabled = 0;
-gint scheduling_service_type = 0;
+gint8 arq_enabled;
+gint scheduling_service_type;
gint mac_sdu_length = 49; /* default SDU size is 49 bytes (11.13.16) */
-extern guint global_cid_max_basic;
-extern gboolean include_cor2_changes;
address bs_address = ADDRESS_INIT_NONE;
diff --git a/plugins/epan/wimax/wimax_compact_dlmap_ie_decoder.c b/plugins/epan/wimax/wimax_compact_dlmap_ie_decoder.c
index 2f4efafa90..22efb1900f 100644
--- a/plugins/epan/wimax/wimax_compact_dlmap_ie_decoder.c
+++ b/plugins/epan/wimax/wimax_compact_dlmap_ie_decoder.c
@@ -32,14 +32,14 @@ extern gint proto_wimax;
#define CID_TYPE_RCID3 3
/* Global Variables */
-guint cid_type = 0;
-guint band_amc_subchannel_type = 0;
+guint cid_type;
+guint band_amc_subchannel_type;
guint max_logical_bands = 12;
-guint num_of_broadcast_symbols = 0;
-guint num_of_dl_band_amc_symbols = 0;
-guint num_of_ul_band_amc_symbols = 0;
+guint num_of_broadcast_symbols;
+guint num_of_dl_band_amc_symbols;
+guint num_of_ul_band_amc_symbols;
/* from switch HARQ mode extension IE */
-guint harq_mode = 0;
+guint harq_mode;
/* forward reference */
static guint wimax_compact_dlmap_format_configuration_ie_decoder(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, guint offset, guint nibble_offset);
diff --git a/plugins/epan/wimax/wimax_pdu_decoder.c b/plugins/epan/wimax/wimax_pdu_decoder.c
index 3b764a69db..a31a65e6eb 100644
--- a/plugins/epan/wimax/wimax_pdu_decoder.c
+++ b/plugins/epan/wimax/wimax_pdu_decoder.c
@@ -25,10 +25,10 @@ extern gint proto_wimax;
void proto_reg_handoff_wimax_pdu(void);
-static dissector_handle_t mac_generic_decoder_handle = NULL;
-static dissector_handle_t mac_header_type1_handle = NULL;
-static dissector_handle_t mac_header_type2_handle = NULL;
-static dissector_handle_t wimax_harq_map_handle = NULL;
+static dissector_handle_t mac_generic_decoder_handle;
+static dissector_handle_t mac_header_type1_handle;
+static dissector_handle_t mac_header_type2_handle;
+static dissector_handle_t wimax_harq_map_handle;
#define WIMAX_PDU_PADDING_MASK 0xFF
#define WIMAX_INVALID_PDU_MASK 0xF0
diff --git a/plugins/epan/wimax/wimax_prefs.h b/plugins/epan/wimax/wimax_prefs.h
new file mode 100644
index 0000000000..44a74d1c28
--- /dev/null
+++ b/plugins/epan/wimax/wimax_prefs.h
@@ -0,0 +1,20 @@
+/* wimax_prefs.h
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1999 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef __WIMAX_PREFS_H__
+#define __WIMAX_PREFS_H__
+
+/*
+ * Preferences used in more than one source file.
+ */
+
+extern bool include_cor2_changes;
+extern guint global_cid_max_basic;
+
+#endif
diff --git a/plugins/epan/wimax/wimax_utils.c b/plugins/epan/wimax/wimax_utils.c
index e59bb2a561..b5e77a7dea 100644
--- a/plugins/epan/wimax/wimax_utils.c
+++ b/plugins/epan/wimax/wimax_utils.c
@@ -23,6 +23,7 @@
#include "wimax-int.h"
#include "wimax_tlv.h"
#include "wimax_mac.h"
+#include "wimax_prefs.h"
#include "wimax_utils.h"
@@ -30,7 +31,6 @@ extern gint proto_mac_mgmt_msg_rng_req_decoder;
extern gint proto_mac_mgmt_msg_reg_req_decoder;
extern gint mac_sdu_length; /* declared in packet-wmx.c */
-extern gboolean include_cor2_changes;
static gint proto_wimax_utility_decoders;
static gint ett_wimax_service_flow_encodings;
@@ -49,7 +49,7 @@ static gint ett_vendor_id_encoding_decoder;
static gint ett_ul_service_flow_decoder;
static gint ett_dl_service_flow_decoder;
-static dissector_handle_t eap_handle = NULL;
+static dissector_handle_t eap_handle;
const unit_name_string wimax_units_byte_bytes = { " byte", " bytes" };
const unit_name_string wimax_units_bit_sec = { "bits/s", NULL };
@@ -68,7 +68,7 @@ const unit_name_string wimax_units_ps = { "PS", NULL };
one has been seen.
*/
static guint scheduling_service_type = -1;
-gint seen_a_service_type = 0;
+gint seen_a_service_type;
/* The following two functions set and access the variables above */
guint get_service_type( void )
@@ -2803,7 +2803,7 @@ void wimax_pkm_tlv_encoded_attributes_decoder(tvbuff_t *tvb, packet_info *pinfo,
/* add subtree */
wimax_cryptographic_suite_list_decoder(tvb_new_subset_length(tvb, offset, tlv_len), pinfo, tlv_tree);
break;
-#if 0 /* rserved by IEE 802.16E */
+#if 0 /* reserved by IEE 802.16E */
case PKM_ATTR_VERSION:
proto_tree_add_item(tree, hf_pkm_msg_version, tvb, offset, tlv_len, ENC_BIG_ENDIAN);
break;
diff --git a/plugins/epan/wimaxasncp/CMakeLists.txt b/plugins/epan/wimaxasncp/CMakeLists.txt
index 9bfe3f5ebf..4775ef9876 100644
--- a/plugins/epan/wimaxasncp/CMakeLists.txt
+++ b/plugins/epan/wimaxasncp/CMakeLists.txt
@@ -33,11 +33,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "WiMAX ASN Control Plane dissection"
${DISSECTOR_SRC}
)
-add_wireshark_epan_plugin_library(wimaxasncp)
+add_wireshark_plugin_library(wimaxasncp epan)
target_link_libraries(wimaxasncp epan)
diff --git a/plugins/epan/wimaxasncp/packet-wimaxasncp.c b/plugins/epan/wimaxasncp/packet-wimaxasncp.c
index ced1ceb520..c9254c4cd4 100644
--- a/plugins/epan/wimaxasncp/packet-wimaxasncp.c
+++ b/plugins/epan/wimaxasncp/packet-wimaxasncp.c
@@ -70,8 +70,8 @@ static int hf_wimaxasncp_tlv_value_bitflags32;
/* static int hf_wimaxasncp_tlv_value_vendor_id; */
/* Preferences */
-static gboolean show_transaction_id_d_bit = FALSE;
-static gboolean debug_enabled = FALSE;
+static bool show_transaction_id_d_bit;
+static bool debug_enabled;
/* Default WiMAX ASN control protocol port */
#define WIMAXASNCP_DEF_UDP_PORT 2231
@@ -116,7 +116,7 @@ typedef struct {
wmem_array_t* ett;
} wimaxasncp_build_dict_t;
-static wimaxasncp_dict_t *wimaxasncp_dict = NULL;
+static wimaxasncp_dict_t *wimaxasncp_dict;
wimaxasncp_build_dict_t wimaxasncp_build_dict;
@@ -1789,6 +1789,7 @@ static void wimaxasncp_dissect_tlv_value(
/* ========================================================================= */
+// NOLINTNEXTLINE(misc-no-recursion)
static guint dissect_wimaxasncp_tlvs(
tvbuff_t *tvb,
packet_info *pinfo,
@@ -1897,8 +1898,9 @@ static guint dissect_wimaxasncp_tlvs(
MIN(length, tvb_captured_length_remaining(tvb, offset)),
length);
- /* N.B. This is a recursive call... */
+ increment_dissection_depth(pinfo);
dissect_wimaxasncp_tlvs(tlv_tvb, pinfo, tlv_tree);
+ decrement_dissection_depth(pinfo);
}
else
{
diff --git a/plugins/epan/wimaxmacphy/CMakeLists.txt b/plugins/epan/wimaxmacphy/CMakeLists.txt
index ef29c28de5..b3e4e3257c 100644
--- a/plugins/epan/wimaxmacphy/CMakeLists.txt
+++ b/plugins/epan/wimaxmacphy/CMakeLists.txt
@@ -29,11 +29,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin
- "WiMAX MAC PHY over Ethernet dissection"
${DISSECTOR_SRC}
)
-add_wireshark_epan_plugin_library(wimaxmacphy)
+add_wireshark_plugin_library(wimaxmacphy epan)
target_link_libraries(wimaxmacphy epan)
diff --git a/plugins/wiretap/usbdump/CMakeLists.txt b/plugins/wiretap/usbdump/CMakeLists.txt
index a6b4a515c2..14fab19de3 100644
--- a/plugins/wiretap/usbdump/CMakeLists.txt
+++ b/plugins/wiretap/usbdump/CMakeLists.txt
@@ -29,11 +29,10 @@ set_source_files_properties(
register_plugin_files(plugin.c
plugin_wtap
- "Add support for reading FreeBSD usbdump(8) files"
${WIRETAP_SRC}
)
-add_wireshark_wiretap_plugin_library(usbdump)
+add_wireshark_plugin_library(usbdump wiretap)
target_include_directories(usbdump PRIVATE ${CMAKE_SOURCE_DIR}/wiretap)
diff --git a/randpkt_core/randpkt_core.c b/randpkt_core/randpkt_core.c
index 377c972f96..ebb875fa4c 100644
--- a/randpkt_core/randpkt_core.c
+++ b/randpkt_core/randpkt_core.c
@@ -17,18 +17,17 @@
#include <time.h>
#include <stdlib.h>
#include <string.h>
+#include <wsutil/array.h>
#include <wsutil/file_util.h>
#include <wsutil/wslog.h>
#include <wiretap/wtap_opttypes.h>
#include "ui/failure_message.h"
-#define array_length(x) (sizeof x / sizeof x[0])
-
#define INVALID_LEN 1
#define WRITE_ERROR 2
-GRand *pkt_rand = NULL;
+GRand *pkt_rand;
/* Types of produceable packets */
enum {
diff --git a/rawshark.c b/rawshark.c
index 4130fe35d5..4eb94e550c 100644
--- a/rawshark.c
+++ b/rawshark.c
@@ -1115,7 +1115,7 @@ static void field_display_to_string(header_field_info *hfi, char* buf, int size)
#define cVALS(x) (const value_string*)(x)
static gboolean print_field_value(field_info *finfo, int cmd_line_index)
{
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
char *fs_buf;
char *fs_ptr = NULL;
static GString *label_s = NULL;
@@ -1271,7 +1271,7 @@ protocolinfo_packet(void *prs, packet_info *pinfo _U_, epan_dissect_t *edt, cons
return TAP_PACKET_DONT_REDRAW;
}
-int g_cmd_line_index = 0;
+int g_cmd_line_index;
/*
* field must be persistent - we don't g_strdup() it below
diff --git a/reordercap.c b/reordercap.c
index 6b7e929445..a8aba0043c 100644
--- a/reordercap.c
+++ b/reordercap.c
@@ -276,9 +276,6 @@ main(int argc, char *argv[])
}
DEBUG_PRINT("file_type_subtype is %d\n", wtap_file_type_subtype(wth));
- wtap_dump_params_init(&params, wth);
-
-
/* Allocate the array of frame pointers. */
frames = g_ptr_array_new();
@@ -314,7 +311,10 @@ main(int argc, char *argv[])
printf("%u frames, %u out of order\n", frames->len, wrong_order_count);
+ wtap_dump_params_init(&params, wth);
+
/* Sort the frames */
+ /* XXX - Does this handle multiple SHBs correctly? */
if (wrong_order_count > 0) {
g_ptr_array_sort(frames, frames_compare);
}
diff --git a/resources/file_dlg_win32.rc b/resources/file_dlg_win32.rc
deleted file mode 100644
index f674aef02c..0000000000
--- a/resources/file_dlg_win32.rc
+++ /dev/null
@@ -1,147 +0,0 @@
-#include <windows.h>
-#include "richedit.h"
-#include "../ui/win32/file_dlg_win32.h"
-
-// We should probably ensure that we're meeting the MS layout guidelines:
-// https://docs.microsoft.com/en-us/windows/win32/uxguide/vis-layout
-// Outer margin: 11px
-
-WIRESHARK_OPENFILENAME_TEMPLATE DIALOGEX 0, 0, 425, 47
-STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
-FONT 8, "MS Shell Dlg"
-{
- // Filter button/entry
- // PUSHBUTTON "Filter:", EWFD_FILTER_BTN, 7, 4, 35, 14
- LTEXT "Read filter:", EWFD_FILTER_LBL, 67, 2, 49, 14
- CONTROL "", EWFD_FILTER_EDIT, RICHEDIT_CLASS, ES_AUTOHSCROLL, 112, 0, 88, 12, WS_EX_CLIENTEDGE
-
- COMBOBOX EWFD_FORMAT_TYPE, 67, 17, 135, 8, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- // CHECKBOX "MAC name resolution", EWFD_MAC_NR_CB, 67, 30, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- // CHECKBOX "Transport name resolution", EWFD_TRANS_NR_CB, 67, 45, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- // CHECKBOX "Network name resolution", EWFD_NET_NR_CB, 67, 60, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
- // CHECKBOX "Use external network name resolver", EWFD_EXTERNAL_NR_CB, 67, 75, 135, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
-
- LTEXT "Format:", EWFD_PT_FORMAT, 224, 2, 60, 8
- LTEXT "-", EWFD_PTX_FORMAT, 275, 2, 150, 8
- LTEXT "Size:", EWFD_PT_SIZE, 224, 17, 60, 8
- LTEXT "-", EWFD_PTX_SIZE, 275, 17, 150, 8
- // LTEXT "Packets:", EWFD_PT_PACKETS, 224, 32, 60, 8
- // LTEXT "-", EWFD_PTX_PACKETS, 275, 32, 150, 8
- LTEXT "Start / elapsed:", EWFD_PT_START_ELAPSED, 224, 32, 60, 8
- LTEXT "-", EWFD_PTX_START_ELAPSED, 275, 32, 150, 8
- // 164/211, 79, 40/150, 8
-
-}
-
-WIRESHARK_SAVEASFILENAME_TEMPLATE DIALOGEX 0, 0, 167, 15
-STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
-FONT 8, "MS Shell Dlg"
-{
- CHECKBOX "Compress with gzip", EWFD_GZIP_CB, 67, 0, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
-}
-
-WIRESHARK_SAVEASSTATSTREENAME_TEMPLATE DIALOGEX 0, 0, 167, 0
-STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
-FONT 8, "MS Shell Dlg"
-{
-}
-
-WIRESHARK_EXPORT_SPECIFIED_PACKETS_FILENAME_TEMPLATE DIALOGEX 0, 0, 453, 124
-STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
-FONT 8, "MS Shell Dlg"
-{
- CHECKBOX "Compress with gzip", EWFD_GZIP_CB, 67, 0, 100, 8, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
-
- GROUPBOX "Packet Range", -1, 67, 15, 270, 102
-
- CONTROL "Captured", EWFD_CAPTURED_BTN, "Button", BS_AUTORADIOBUTTON | WS_GROUP, 232, 26, 45, 10
- CONTROL "Displayed", EWFD_DISPLAYED_BTN, "Button", BS_AUTORADIOBUTTON, 282, 26, 47, 10
-
- CONTROL "All packets", EWFD_ALL_PKTS_BTN, "Button", BS_AUTORADIOBUTTON | WS_GROUP, 73, 38, 51, 10
- CONTROL "Selected packets only", EWFD_SEL_PKT_BTN, "Button", BS_AUTORADIOBUTTON, 73, 50, 80, 10
- CONTROL "Marked packets only", EWFD_MARKED_BTN, "Button", BS_AUTORADIOBUTTON, 73, 62, 78, 10
- CONTROL "First to last marked", EWFD_FIRST_LAST_BTN, "Button", BS_AUTORADIOBUTTON, 73, 74, 75, 10
- CONTROL "Range:", EWFD_RANGE_BTN, "Button", BS_AUTORADIOBUTTON, 73, 86, 35, 10
- CONTROL "", EWFD_RANGE_EDIT, RICHEDIT_CLASS, ES_AUTOHSCROLL, 112, 85, 110, 12, WS_EX_CLIENTEDGE
- CONTROL "Remove Ignored packets", EWFD_REMOVE_IGN_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 73, 98, 100, 10
-
- LTEXT "0", EWFD_ALL_PKTS_CAP, 232, 39, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_SEL_PKT_CAP, 232, 51, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_MARKED_CAP, 232, 63, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_FIRST_LAST_CAP, 232, 75, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_RANGE_CAP, 232, 87, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_IGNORED_CAP, 232, 99, 39, 8, SS_RIGHT
-
- LTEXT "0", EWFD_ALL_PKTS_DISP, 282, 39, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_SEL_PKT_DISP, 282, 51, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_MARKED_DISP, 282, 63, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_FIRST_LAST_DISP, 282, 75, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_RANGE_DISP, 282, 87, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_IGNORED_DISP, 282, 99, 41, 8, SS_RIGHT
-}
-
-WIRESHARK_MERGEFILENAME_TEMPLATE DIALOGEX 0, 0, 450, 80
-STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
-FONT 8, "MS Shell Dlg"
-{
- // Filter button/entry
- // PUSHBUTTON "Filter:", EWFD_FILTER_BTN, 7, 4, 35, 14
- LTEXT "Read filter:", EWFD_FILTER_LBL, 67, 2, 49, 14
- CONTROL "", EWFD_FILTER_EDIT, RICHEDIT_CLASS, ES_AUTOHSCROLL, 112, 0, 88, 12, WS_EX_CLIENTEDGE
-
- CONTROL "Prepend packets to existing file", EWFD_MERGE_PREPEND_BTN, "Button", BS_AUTORADIOBUTTON | WS_GROUP, 67, 30, 120, 8
- CONTROL "Merge packets chronologically", EWFD_MERGE_CHRONO_BTN, "Button", BS_AUTORADIOBUTTON, 67, 45, 120, 8
- CONTROL "Append packets to existing file", EWFD_MERGE_APPEND_BTN, "Button", BS_AUTORADIOBUTTON, 67, 60, 120, 8
-
- LTEXT "Format:", EWFD_PT_FORMAT, 224, 2, 60, 8
- LTEXT "-", EWFD_PTX_FORMAT, 275, 2, 150, 8
- LTEXT "Size:", EWFD_PT_SIZE, 224, 17, 60, 8
- LTEXT "-", EWFD_PTX_SIZE, 275, 17, 150, 8
- // LTEXT "Packets:", EWFD_PT_PACKETS, 224, 32, 60, 8
- // LTEXT "-", EWFD_PTX_PACKETS, 275, 32, 150, 8
- LTEXT "Start / elapsed:", EWFD_PT_START_ELAPSED, 224, 32, 60, 8
- LTEXT "-", EWFD_PTX_START_ELAPSED, 275, 32, 150, 8
- // 164/211, 79, 40/150, 8
-}
-
-WIRESHARK_EXPORTFILENAME_TEMPLATE DIALOGEX 0, 0, 469, 109
-STYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | DS_3DLOOK | DS_CONTROL
-FONT 8, "MS Shell Dlg"
-{
- GROUPBOX "Packet Range", -1, 67, 0, 270, 106
-
- CONTROL "Captured", EWFD_CAPTURED_BTN, "Button", BS_AUTORADIOBUTTON | WS_GROUP, 232, 11, 45, 10
- CONTROL "Displayed", EWFD_DISPLAYED_BTN, "Button", BS_AUTORADIOBUTTON, 282, 11, 47, 10
-
- CONTROL "All packets", EWFD_ALL_PKTS_BTN, "Button", BS_AUTORADIOBUTTON | WS_GROUP, 73, 23, 51, 10
- CONTROL "Selected packet", EWFD_SEL_PKT_BTN, "Button", BS_AUTORADIOBUTTON, 73, 35, 68, 10
- CONTROL "Marked packets", EWFD_MARKED_BTN, "Button", BS_AUTORADIOBUTTON, 73, 47, 67, 10
- CONTROL "First to last marked", EWFD_FIRST_LAST_BTN, "Button", BS_AUTORADIOBUTTON, 73, 59, 75, 10
- CONTROL "Range:", EWFD_RANGE_BTN, "Button", BS_AUTORADIOBUTTON, 73, 71, 35, 10
- CONTROL "", EWFD_RANGE_EDIT, RICHEDIT_CLASS, ES_AUTOHSCROLL, 112, 70, 110, 12, WS_EX_CLIENTEDGE
- CONTROL "Remove Ignored packets", EWFD_REMOVE_IGN_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 73, 83, 100, 10
-
- LTEXT "0", EWFD_ALL_PKTS_CAP, 232, 24, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_SEL_PKT_CAP, 232, 36, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_MARKED_CAP, 232, 48, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_FIRST_LAST_CAP, 232, 60, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_RANGE_CAP, 232, 72, 39, 8, SS_RIGHT
- LTEXT "0", EWFD_IGNORED_CAP, 232, 84, 39, 8, SS_RIGHT
-
- LTEXT "0", EWFD_ALL_PKTS_DISP, 282, 24, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_SEL_PKT_DISP, 282, 36, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_MARKED_DISP, 282, 48, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_FIRST_LAST_DISP, 282, 60, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_RANGE_DISP, 282, 72, 41, 8, SS_RIGHT
- LTEXT "0", EWFD_IGNORED_DISP, 282, 84, 41, 8, SS_RIGHT
-
- GROUPBOX "Packet Format", EWFD_PKT_FORMAT_GB, 344, 0, 134, 106
- CONTROL "Packet summary line", EWFD_PKT_SUMMARY_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 350, 15, 84, 10
- CONTROL "Include column headings", EWFD_COL_HEADINGS_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 362, 27, 94, 10
- CONTROL "Packet details:", EWFD_PKT_DETAIL_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 350, 39, 95, 10
- COMBOBOX EWFD_PKT_DETAIL_COMBO, 362, 51, 74, 45, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "Packet Bytes", EWFD_PKT_BYTES_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 350, 68, 80, 10
- CONTROL "Include secondary data sources", EWFD_DATA_SOURCES_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 362, 80, 112, 10
- CONTROL "Each packet on a new page", EWFD_PKT_NEW_PAGE_CB, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 350, 92, 106, 10
-
-}
diff --git a/resources/freedesktop/org.wireshark.Wireshark.metainfo.xml b/resources/freedesktop/org.wireshark.Wireshark.metainfo.xml
index 9827d0751e..6748684d62 100644
--- a/resources/freedesktop/org.wireshark.Wireshark.metainfo.xml
+++ b/resources/freedesktop/org.wireshark.Wireshark.metainfo.xml
@@ -7,8 +7,9 @@
<component type="desktop">
<id>org.wireshark.Wireshark</id>
+ <launchable type="desktop-id">org.wireshark.Wireshark.desktop</launchable>
<name>Wireshark</name>
- <summary>Wireshark is the world's foremost protocol analyzer</summary>
+ <summary>Network protocol analyzer</summary>
<developer_name>The Wireshark developer community</developer_name>
<content_rating type="oars-1.1"/>
<metadata_license>CC0-1.0</metadata_license>
diff --git a/resources/logray.exe.manifest.in b/resources/logray.exe.manifest.in
index 1fcf798d2c..aa134c3d72 100644
--- a/resources/logray.exe.manifest.in
+++ b/resources/logray.exe.manifest.in
@@ -51,6 +51,7 @@
of PerMonitor. Unfortunately that causes layout issues with Qt
5.6 and 5.9. For now enable PerMonitor DPI awareness by enabling
Qt::AA_EnableHighDpiScaling in ui/qt/main.cpp.
+ Qt 6 is Per-Monitor DPI Aware V2 by default.
-->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
diff --git a/resources/protocols/radius/dictionary.huawei b/resources/protocols/radius/dictionary.huawei
index 48709e423a..d0e4fa0aac 100644
--- a/resources/protocols/radius/dictionary.huawei
+++ b/resources/protocols/radius/dictionary.huawei
@@ -143,16 +143,16 @@ ATTRIBUTE Huawei-Acct-IPv6-Output-Gigawords 149 integer
ATTRIBUTE Huawei-DHCPv6-Option37 150 string
ATTRIBUTE Huawei-DHCPv6-Option38 151 string
ATTRIBUTE Huawei-User-Mac 153 string
-ATTRIBUTE Huawei-DNS-Server-IPv6-address 154 ipv6prefix # manual says ipv6addr with length 18?!
+ATTRIBUTE Huawei-DNS-Server-IPv6-address 154 ipv6prefix
ATTRIBUTE Huawei-DHCPv4-Option121 155 string
ATTRIBUTE Huawei-DHCPv4-Option43 156 string
ATTRIBUTE Huawei-Framed-Pool-Group 157 string
-ATTRIBUTE Huawei-Framed-IPv6-Address 158 ipv6prefix # manual says 18 byte string?
+ATTRIBUTE Huawei-Framed-IPv6-Address 158 ipv6prefix
ATTRIBUTE Huawei-Acct-Update-Address 159 integer
ATTRIBUTE Huawei-NAT-Policy-Name 160 string
-ATTRIBUTE Huawei-NAT-Public-Address 161 string
-ATTRIBUTE Huawei-NAT-Start-Port 162 string
-ATTRIBUTE Huawei-NAT-End-Port 163 string
+ATTRIBUTE Huawei-NAT-Public-Address 161 ipaddr
+ATTRIBUTE Huawei-NAT-Start-Port 162 integer
+ATTRIBUTE Huawei-NAT-End-Port 163 integer
ATTRIBUTE Huawei-NAT-Port-Forwarding 164 string
ATTRIBUTE Huawei-NAT-Port-Range-Update 165 integer
ATTRIBUTE Huawei-DS-Lite-Tunnel-Name 166 string
@@ -175,8 +175,9 @@ VALUE Huawei-Auth-Type Administrative 7
VALUE Huawei-Auth-Type Tunnel 8
VALUE Huawei-Auth-Type MIP 9
VALUE Huawei-Auth-Type None 10
+VALUE Huawei-Auth-Type MAC 11
-ATTRIBUTE Huawei-Acct-Terminate-Subcause 181 string
+ATTRIBUTE Huawei-Acct-Terminate-Subcause 181 integer
ATTRIBUTE Huawei-Down-QOS-Profile-Name 182 string
ATTRIBUTE Huawei-Port-Mirror 183 integer
@@ -187,12 +188,13 @@ VALUE Huawei-Port-Mirror Enable 3
ATTRIBUTE Huawei-Account-Info 184 string
ATTRIBUTE Huawei-Service-Info 185 string
-ATTRIBUTE Huawei-DHCP-Option 187 octets
+ATTRIBUTE Huawei-DHCP-Option 187 string
ATTRIBUTE Huawei-AVpair 188 string
+ATTRIBUTE Huawei-DHCPv6-Option 189 string
ATTRIBUTE Huawei-Delegated-IPv6-Prefix-Pool 191 string
-ATTRIBUTE Huawei-IPv6-Prefix-Lease 192 octets
-ATTRIBUTE Huawei-IPv6-Address-Lease 193 octets
-ATTRIBUTE Huawei-IPv6-Policy-Route 194 ipv6prefix # manual says string?
+ATTRIBUTE Huawei-IPv6-Prefix-Lease 192 string
+ATTRIBUTE Huawei-IPv6-Address-Lease 193 string
+ATTRIBUTE Huawei-IPv6-Policy-Route 194 ipv6prefix
ATTRIBUTE Huawei-MNG-IPv6 196 integer
VALUE Huawei-MNG-IPv6 Unsupported 0
@@ -224,6 +226,8 @@ ATTRIBUTE Huawei-Application-Scene 221 octets
ATTRIBUTE Huawei-MS-Maximum-MAC-Study-Number 222 octets # ether??
ATTRIBUTE Huawei-GGSN-Vendor 232 string
ATTRIBUTE Huawei-GGSN-Version 233 string
+ATTRIBUTE Huawei-USR-GRP-NAME 251 string
+ATTRIBUTE Huawei-USER-SRVC_TYPE 252 string
ATTRIBUTE Huawei-Web-URL 253 string
ATTRIBUTE Huawei-Version 254 string
ATTRIBUTE Huawei-Product-ID 255 string
diff --git a/resources/share/logray/profiles/CloudTrail/preferences b/resources/share/logray/profiles/CloudTrail/preferences
new file mode 100644
index 0000000000..464f042425
--- /dev/null
+++ b/resources/share/logray/profiles/CloudTrail/preferences
@@ -0,0 +1,18 @@
+# Configuration file for Logray
+#
+# Packet list column format
+# Each pair of strings consists of a column title and its format
+gui.column.format:
+ "No.", "%m",
+ "Time", "%t",
+ "Source", "%s",
+ "Destination", "%d",
+ "Length", "%L",
+ "Service", "%Cus:ct.shortsrc:0:R",
+ "Region", "%Cus:ct.region:0:R",
+ "Bucket/Instance", "%Cus:s3.bucket || ec2.name:0:R",
+ "User Name", "%Cus:ct.user:0:R",
+ "Event Name", "%Cus:ct.name:0:R",
+ "User IP", "%Cus:ct.srcip:0:R",
+ "Info", "%i"
+
diff --git a/resources/stock_icons/svg-to-png.sh b/resources/stock_icons/svg-to-png.sh
index 724b08f4e3..c8f6613037 100755
--- a/resources/stock_icons/svg-to-png.sh
+++ b/resources/stock_icons/svg-to-png.sh
@@ -30,7 +30,7 @@ set_source_svgs() {
esac
ONE_X_SVG=${out_icon}.svg
TWO_X_SVG=${out_icon}@2x.svg
- if [ ! -f ${TWO_X_SVG} ] ; then
+ if [ ! -f "${TWO_X_SVG}" ] ; then
TWO_X_SVG=$ONE_X_SVG
fi
}
@@ -111,7 +111,7 @@ for SIZE in 14x14 16x16 24x14 24x24 ; do
set_source_svgs "$ICON"
- if [ ! -f ${ONE_X_SVG} ] ; then
+ if [ ! -f "${ONE_X_SVG}" ] ; then
>&2 echo "Skipping ${ONE_X_SVG}"
continue
fi
@@ -119,14 +119,14 @@ for SIZE in 14x14 16x16 24x14 24x24 ; do
ONE_X_PNG=${ICON}.png
TWO_X_PNG=${ICON}@2x.png
- if [ $ONE_X_SVG -nt "$ONE_X_PNG" ] ; then
+ if [ "$ONE_X_SVG" -nt "$ONE_X_PNG" ] ; then
# shellcheck disable=SC2086
inkscape $COMMON_ARGS $ONE_X_ARGS \
--file="$PWD/$ONE_X_SVG" --export-png="$PWD/$ONE_X_PNG" || exit 1
QRC_FILES="${QRC_FILES} ${SIZE_DIR}/${ONE_X_PNG}"
fi
- if [ $TWO_X_SVG -nt "$TWO_X_PNG" ] ; then
+ if [ "$TWO_X_SVG" -nt "$TWO_X_PNG" ] ; then
# shellcheck disable=SC2086
inkscape $COMMON_ARGS $TWO_X_ARGS \
--file="$PWD/$TWO_X_SVG" --export-png="$PWD/$TWO_X_PNG" || exit 1
diff --git a/resources/wireshark.exe.manifest.in b/resources/wireshark.exe.manifest.in
index 0c49241529..ec4d87ed4a 100644
--- a/resources/wireshark.exe.manifest.in
+++ b/resources/wireshark.exe.manifest.in
@@ -52,6 +52,7 @@
of PerMonitor. Unfortunately that causes layout issues with Qt
5.6 and 5.9. For now enable PerMonitor DPI awareness by enabling
Qt::AA_EnableHighDpiScaling in ui/qt/main.cpp.
+ Qt 6 is is Per-Monitor DPI Aware V2 by default.
-->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
diff --git a/resources/wireshark.pc.in b/resources/wireshark.pc.in
index ccb89c25cf..212d4ec311 100644
--- a/resources/wireshark.pc.in
+++ b/resources/wireshark.pc.in
@@ -3,8 +3,7 @@ exec_prefix=${prefix}
libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
sharedlibdir=${libdir}
-plugindir=${libdir}/wireshark/plugins
-plugin_suffix=@CMAKE_SHARED_MODULE_SUFFIX@.@PROJECT_ABI_VERSION_EPAN@
+plugindir=${libdir}/wireshark/@PLUGIN_VERSION_DIR@
Name: Wireshark
Description: Network Protocol Analyzer (Packet Dissection Library)
diff --git a/ringbuffer.c b/ringbuffer.c
index d1433fde6f..9fbdcdaeb3 100644
--- a/ringbuffer.c
+++ b/ringbuffer.c
@@ -52,6 +52,7 @@
#endif
#include "ringbuffer.h"
+#include <wsutil/array.h>
#include <wsutil/file_util.h>
#ifdef HAVE_ZLIB
@@ -100,7 +101,7 @@ CleanupOldCap(gchar* name)
g_mutex_lock(&rb_data.mutex);
/* Delete pending delete file */
- for (i = 0; i < sizeof(rb_data.oldnames) / sizeof(rb_data.oldnames[0]); i++) {
+ for (i = 0; i < array_length(rb_data.oldnames); i++) {
if (rb_data.oldnames[i] != NULL) {
ws_unlink(rb_data.oldnames[i]);
if (ws_stat64(rb_data.oldnames[i], &statb) != 0) {
@@ -113,7 +114,7 @@ CleanupOldCap(gchar* name)
if (name) {
/* push the current file to pending list if it failed to delete */
if (ws_stat64(name, &statb) == 0) {
- for (i = 0; i < sizeof(rb_data.oldnames) / sizeof(rb_data.oldnames[0]); i++) {
+ for (i = 0; i < array_length(rb_data.oldnames); i++) {
if (rb_data.oldnames[i] == NULL) {
rb_data.oldnames[i] = g_strdup(name);
break;
diff --git a/sharkd.c b/sharkd.c
index 7b78ec9e5d..54f1d61553 100644
--- a/sharkd.c
+++ b/sharkd.c
@@ -54,7 +54,7 @@
#include <epan/uat-int.h>
#include <epan/secrets.h>
-#include <wsutil/codecs_priv.h>
+#include <wsutil/codecs.h>
#include <wsutil/str_util.h>
#include <wsutil/utf8_entities.h>
diff --git a/sharkd_daemon.c b/sharkd_daemon.c
index 346f87b79c..5e339d4d52 100644
--- a/sharkd_daemon.c
+++ b/sharkd_daemon.c
@@ -50,7 +50,7 @@
# define SHARKD_UNIX_SUPPORT
#endif
-static int mode = 0;
+static int mode;
static socket_handle_t _server_fd = INVALID_SOCKET;
static socket_handle_t
diff --git a/sharkd_session.c b/sharkd_session.c
index 3cefc07d27..c902a2ac99 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -84,12 +84,12 @@ struct sharkd_filter_item
guint8 *filtered; /* can be NULL if all frames are matching for given filter. */
};
-static GHashTable *filter_table = NULL;
+static GHashTable *filter_table;
static int mode;
static guint32 rpcid;
-static json_dumper dumper = {0};
+static json_dumper dumper;
static const char *
@@ -365,102 +365,104 @@ json_prep(char* buf, const jsmntok_t* tokens, int count)
struct member_attribute name_array[] = {
// Root members
- {NULL, "jsonrpc", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {NULL, "userid", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {NULL, "id", 1, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_MANDATORY},
- {NULL, "method", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {NULL, "params", 1, JSMN_OBJECT, SHARKD_JSON_OBJECT, SHARKD_OPTIONAL},
+ {NULL, "jsonrpc", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {NULL, "userid", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {NULL, "id", 1, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_MANDATORY},
+ {NULL, "method", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {NULL, "params", 1, JSMN_OBJECT, SHARKD_JSON_OBJECT, SHARKD_OPTIONAL},
// Valid methods
- {"method", "analyse", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "bye", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "check", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "complete", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "download", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "dumpconf", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "follow", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "frame", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "frames", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "info", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "intervals", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "iograph", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "load", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "setcomment", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "setconf", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "status", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"method", "tap", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "analyse", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "bye", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "check", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "complete", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "download", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "dumpconf", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "follow", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "frame", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "frames", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "info", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "intervals", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "iograph", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "load", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "setcomment", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "setconf", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "status", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"method", "tap", 1, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
// Parameters and their method context
- {"check", "field", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"check", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"complete", "field", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"complete", "pref", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"download", "token", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"dumpconf", "pref", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"follow", "follow", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {"follow", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {"frame", "frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_MANDATORY},
- {"frame", "proto", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
- {"frame", "ref_frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
- {"frame", "prev_frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
- {"frame", "columns", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
- {"frame", "color", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
- {"frame", "bytes", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
- {"frame", "hidden", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
- {"frames", "column*", 2, JSMN_UNDEFINED, SHARKD_JSON_ANY, SHARKD_OPTIONAL},
- {"frames", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"frames", "skip", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
- {"frames", "limit", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
- {"frames", "refs", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"intervals", "interval", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
- {"intervals", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "interval", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
- {"iograph", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph0", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {"iograph", "graph1", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph2", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph3", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph4", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph5", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph6", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph7", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph8", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "graph9", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter0", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter1", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter2", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter3", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter4", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter5", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter6", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter7", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter8", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"iograph", "filter9", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"load", "file", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {"setcomment", "frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_MANDATORY},
- {"setcomment", "comment", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"setconf", "name", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {"setconf", "value", 2, JSMN_UNDEFINED, SHARKD_JSON_ANY, SHARKD_MANDATORY},
- {"tap", "tap0", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
- {"tap", "tap1", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap2", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap3", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap4", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap5", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap6", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap7", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap8", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap9", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap10", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap11", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap12", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap13", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap14", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "tap15", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
- {"tap", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"check", "field", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"check", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"complete", "field", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"complete", "pref", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"download", "token", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"dumpconf", "pref", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"follow", "follow", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {"follow", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {"follow", "sub_stream", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
+ {"frame", "frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_MANDATORY},
+ {"frame", "proto", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
+ {"frame", "ref_frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
+ {"frame", "prev_frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
+ {"frame", "columns", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
+ {"frame", "color", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
+ {"frame", "bytes", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
+ {"frame", "hidden", 2, JSMN_PRIMITIVE, SHARKD_JSON_BOOLEAN, SHARKD_OPTIONAL},
+ {"frames", "column*", 2, JSMN_UNDEFINED, SHARKD_JSON_ANY, SHARKD_OPTIONAL},
+ {"frames", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"frames", "skip", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
+ {"frames", "limit", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
+ {"frames", "refs", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"intervals", "interval", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
+ {"intervals", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "interval", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_OPTIONAL},
+ {"iograph", "interval_units", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph0", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {"iograph", "graph1", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph2", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph3", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph4", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph5", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph6", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph7", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph8", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "graph9", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter0", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter1", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter2", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter3", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter4", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter5", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter6", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter7", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter8", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"iograph", "filter9", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"load", "file", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {"setcomment", "frame", 2, JSMN_PRIMITIVE, SHARKD_JSON_UINTEGER, SHARKD_MANDATORY},
+ {"setcomment", "comment", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"setconf", "name", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {"setconf", "value", 2, JSMN_UNDEFINED, SHARKD_JSON_ANY, SHARKD_MANDATORY},
+ {"tap", "tap0", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_MANDATORY},
+ {"tap", "tap1", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap2", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap3", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap4", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap5", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap6", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap7", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap8", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap9", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap10", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap11", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap12", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap13", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap14", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "tap15", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
+ {"tap", "filter", 2, JSMN_STRING, SHARKD_JSON_STRING, SHARKD_OPTIONAL},
// End of the name_array
- {NULL, NULL, 0, JSMN_STRING, SHARKD_ARRAY_END, SHARKD_OPTIONAL},
+ {NULL, NULL, 0, JSMN_STRING, SHARKD_ARRAY_END, SHARKD_OPTIONAL},
};
rpcid = 0;
@@ -631,7 +633,7 @@ json_prep(char* buf, const jsmntok_t* tokens, int count)
{
sharkd_json_error(
rpcid, -32600, NULL,
- "The data type for member %s is not a valid", attr_name
+ "The data type for member %s is not valid", attr_name
);
return FALSE;
}
@@ -1220,11 +1222,16 @@ sharkd_session_process_load(const char *buf, const jsmntok_t *tokens, int count)
* Process status request
*
* Output object with attributes:
- * (m) frames - count of currently loaded frames
- * (m) duration - time difference between time of first frame, and last loaded frame
- * (o) filename - capture filename
- * (o) filesize - capture filesize
- * (o) columns - array of column titles
+ * (m) frames - count of currently loaded frames
+ * (m) duration - time difference between time of first frame, and last loaded frame
+ * (o) filename - capture filename
+ * (o) filesize - capture filesize
+ * (o) columns - array of column titles
+ * (o) column_info - array of column infos, array of object with attributes:
+ * 'title' - column title
+ * 'format' - column format (%x or %Cus:<expr>:<occurrence> if COL_CUSTOM)
+ * 'visible' - true if column is visible
+ * 'resolved' - true if column is resolved
*/
static void
sharkd_session_process_status(void)
@@ -1258,6 +1265,24 @@ sharkd_session_process_status(void)
sharkd_json_value_string(NULL, get_column_title(i));
}
sharkd_json_array_close();
+
+ sharkd_json_array_open("column_info");
+ for (int i = 0; i < cfile.cinfo.num_cols; ++i)
+ {
+ int fmt = get_column_format(i);
+ sharkd_json_object_open(NULL);
+ sharkd_json_value_string("title", get_column_title(i));
+ if (fmt != COL_CUSTOM)
+ {
+ sharkd_json_value_string("format", col_format_to_string(fmt));
+ } else {
+ sharkd_json_value_stringf("format", "%s:%s:%d", col_format_to_string(fmt), get_column_custom_fields(i), get_column_custom_occurrence(i));
+ }
+ sharkd_json_value_anyf("visible", get_column_visible(i) ? "true" : "false");
+ sharkd_json_value_anyf("resolved", get_column_resolved(i) ? "true" : "false");
+ sharkd_json_object_close();
+ }
+ sharkd_json_array_close();
}
sharkd_json_result_epilogue();
@@ -3894,8 +3919,10 @@ sharkd_session_process_tap(char *buf, const jsmntok_t *tokens, int count)
* Process follow request
*
* Input:
- * (m) follow - follow protocol request (e.g. HTTP)
- * (m) filter - filter request (e.g. tcp.stream == 1)
+ * (m) follow - follow protocol request (e.g. HTTP)
+ * (m) filter - filter request (e.g. tcp.stream == 1)
+ * (m) stream - stream index number
+ * (o) sub_stream - follow sub-stream index number (e.g. for HTTP/2 and QUIC streams)
*
* Output object with attributes:
*
@@ -3916,6 +3943,7 @@ sharkd_session_process_follow(char *buf, const jsmntok_t *tokens, int count)
{
const char *tok_follow = json_find_attr(buf, tokens, count, "follow");
const char *tok_filter = json_find_attr(buf, tokens, count, "filter");
+ const char *tok_sub_stream = json_find_attr(buf, tokens, count, "sub_stream");
register_follow_t *follower;
GString *tap_error;
@@ -3934,8 +3962,15 @@ sharkd_session_process_follow(char *buf, const jsmntok_t *tokens, int count)
return;
}
+ guint64 substream_id = SUBSTREAM_UNUSED;
+ if (tok_sub_stream)
+ {
+ ws_strtou64(tok_sub_stream, NULL, &substream_id);
+ }
+
/* follow_reset_stream ? */
follow_info = g_new0(follow_info_t, 1);
+ follow_info->substream_id = substream_id;
/* gui_data, filter_out_filter not set, but not used by dissector */
tap_error = register_tap_listener(get_follow_tap_string(follower), follow_info, tok_filter, 0, NULL, get_follow_tap_handler(follower), NULL, NULL);
@@ -4120,7 +4155,8 @@ static bool
sharkd_follower_visit_layers_cb(const void *key _U_, void *value, void *user_data)
{
register_follow_t *follower = (register_follow_t *) value;
- packet_info *pi = (packet_info *) user_data;
+ epan_dissect_t *edt = (epan_dissect_t *) user_data;
+ packet_info *pi = &edt->pi;
const int proto_id = get_follow_proto_id(follower);
@@ -4132,7 +4168,7 @@ sharkd_follower_visit_layers_cb(const void *key _U_, void *value, void *user_dat
const char *layer_proto = proto_get_protocol_short_name(find_protocol_by_id(proto_id));
char *follow_filter;
- follow_filter = get_follow_conv_func(follower)(NULL, pi, &ignore_stream, &ignore_sub_stream);
+ follow_filter = get_follow_conv_func(follower)(edt, pi, &ignore_stream, &ignore_sub_stream);
json_dumper_begin_array(&dumper);
json_dumper_value_string(&dumper, layer_proto);
@@ -4145,6 +4181,41 @@ sharkd_follower_visit_layers_cb(const void *key _U_, void *value, void *user_dat
return FALSE;
}
+static bool
+sharkd_followers_visit_layers_cb(const void *key _U_, void *value, void *user_data)
+{
+ register_follow_t *follower = (register_follow_t *) value;
+ epan_dissect_t *edt = (epan_dissect_t *) user_data;
+ packet_info *pi = &edt->pi;
+
+ const int proto_id = get_follow_proto_id(follower);
+
+ guint stream;
+ guint sub_stream = (guint) SUBSTREAM_UNUSED;
+
+ if (proto_is_frame_protocol(pi->layers, proto_get_protocol_filter_name(proto_id)))
+ {
+ const char *layer_proto = proto_get_protocol_short_name(find_protocol_by_id(proto_id));
+ char *follow_filter;
+
+ follow_filter = get_follow_conv_func(follower)(edt, pi, (guint *) &stream, (guint *) &sub_stream);
+
+ sharkd_json_object_open(NULL);
+ sharkd_json_value_string("protocol", layer_proto);
+ sharkd_json_value_string("filter", follow_filter);
+ sharkd_json_value_anyf("stream", "%d", stream);
+ if (sub_stream != (guint) SUBSTREAM_UNUSED)
+ {
+ sharkd_json_value_anyf("sub_stream", "%d", sub_stream);
+ }
+ sharkd_json_object_close();
+
+ g_free(follow_filter);
+ }
+
+ return FALSE;
+}
+
struct sharkd_frame_request_data
{
gboolean display_hidden;
@@ -4304,13 +4375,17 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
}
sharkd_json_array_open("fol");
- follow_iterate_followers(sharkd_follower_visit_layers_cb, pi);
+ follow_iterate_followers(sharkd_follower_visit_layers_cb, edt);
+ sharkd_json_array_close();
+
+ sharkd_json_array_open("followers");
+ follow_iterate_followers(sharkd_followers_visit_layers_cb, edt);
sharkd_json_array_close();
sharkd_json_result_epilogue();
}
-#define SHARKD_IOGRAPH_MAX_ITEMS 250000 /* 250k limit of items is taken from wireshark-qt, on x86_64 sizeof(io_graph_item_t) is 152, so single graph can take max 36 MB */
+#define SHARKD_IOGRAPH_MAX_ITEMS 1 << 25 /* 33,554,432 limit of items, same as max_io_items_ in ui/qt/io_graph_dialog.h */
struct sharkd_iograph
{
@@ -4333,10 +4408,12 @@ sharkd_iograph_packet(void *g, packet_info *pinfo, epan_dissect_t *edt, const vo
int idx;
gboolean update_succeeded;
- idx = get_io_graph_index(pinfo, graph->interval);
- if (idx < 0 || idx >= SHARKD_IOGRAPH_MAX_ITEMS)
+ int64_t tmp_idx = get_io_graph_index(pinfo, graph->interval);
+ if (tmp_idx < 0 || tmp_idx >= SHARKD_IOGRAPH_MAX_ITEMS)
return TAP_PACKET_DONT_REDRAW;
+ idx = (int)tmp_idx;
+
if (idx + 1 > graph->num_items)
{
if (idx + 1 > graph->space_items)
@@ -4344,14 +4421,14 @@ sharkd_iograph_packet(void *g, packet_info *pinfo, epan_dissect_t *edt, const vo
int new_size = idx + 1024;
graph->items = (io_graph_item_t *) g_realloc(graph->items, sizeof(io_graph_item_t) * new_size);
- reset_io_graph_items(&graph->items[graph->space_items], new_size - graph->space_items);
+ reset_io_graph_items(&graph->items[graph->space_items], new_size - graph->space_items, graph->hf_index);
graph->space_items = new_size;
}
else if (graph->items == NULL)
{
graph->items = g_new(io_graph_item_t, graph->space_items);
- reset_io_graph_items(graph->items, graph->space_items);
+ reset_io_graph_items(graph->items, graph->space_items, graph->hf_index);
}
graph->num_items = idx + 1;
@@ -4368,7 +4445,8 @@ sharkd_iograph_packet(void *g, packet_info *pinfo, epan_dissect_t *edt, const vo
* Process iograph request
*
* Input:
- * (o) interval - interval time in ms, if not specified: 1000ms
+ * (o) interval - interval time, if not specified: 1000
+ * (o) interval_units - units for interval time, must be 's', 'ms' or 'us', if not specified: ms
* (m) graph0 - First graph request
* (o) graph1...graph9 - Other graph requests
* (o) filter0 - First graph filter
@@ -4386,15 +4464,48 @@ static void
sharkd_session_process_iograph(char *buf, const jsmntok_t *tokens, int count)
{
const char *tok_interval = json_find_attr(buf, tokens, count, "interval");
+ const char *tok_interval_units = json_find_attr(buf, tokens, count, "interval_units");
struct sharkd_iograph graphs[10];
gboolean is_any_ok = FALSE;
int graph_count;
- guint32 interval_ms = 1000; /* default: one per second */
int i;
+ /* default: 1000ms = one per second */
+ guint32 interval = 1000;
+ const char *interval_units = "ms";
+
if (tok_interval)
- ws_strtou32(tok_interval, NULL, &interval_ms);
+ ws_strtou32(tok_interval, NULL, &interval);
+
+ if (tok_interval_units)
+ {
+ if (strcmp(tok_interval_units, "us") != 0 &&
+ strcmp(tok_interval_units, "ms") != 0 &&
+ strcmp(tok_interval_units, "s") != 0)
+ {
+ sharkd_json_error(
+ rpcid, -7003, NULL,
+ "Invalid interval_units parameter: '%s', must be 's', 'ms' or 'us'", tok_interval_units
+ );
+ return;
+ }
+ interval_units = tok_interval_units;
+ }
+
+ guint32 interval_us = 0;
+ if (strcmp(interval_units, "us") == 0)
+ {
+ interval_us = interval;
+ }
+ else if (strcmp(interval_units, "ms") == 0)
+ {
+ interval_us = 1000 * interval;
+ }
+ else if (strcmp(interval_units, "s") == 0)
+ {
+ interval_us = 1000000 * interval;
+ }
for (i = graph_count = 0; i < (int) G_N_ELEMENTS(graphs); i++)
{
@@ -4440,7 +4551,9 @@ sharkd_session_process_iograph(char *buf, const jsmntok_t *tokens, int count)
if (field_name)
field_name = field_name + 1;
- graph->interval = interval_ms;
+ /* io_graph_item now supports microseconds (and this parameter
+ * is expected to be in microseconds.) */
+ graph->interval = interval_us;
graph->hf_index = -1;
graph->error = check_field_unit(field_name, &graph->hf_index, graph->calc_type);
@@ -4686,6 +4799,11 @@ sharkd_session_process_intervals(char *buf, const jsmntok_t *tokens, int count)
* (o) fol - array of follow filters:
* [0] - protocol
* [1] - filter string
+ * (o) followers - array of followers with attributes:
+ * protocol - protocol string
+ * filter - filter string
+ * stream - stream index number
+ * sub_stream - sub-stream index number (optional, e.g. for HTTP/2 and QUIC streams)
* (o) i - if frame is ignored
* (o) m - if frame is marked
* (o) bg - color filter - background color in hex
diff --git a/test/captures/quic-with-secrets.pcapng b/test/captures/quic-with-secrets.pcapng
new file mode 100644
index 0000000000..4968365ab4
--- /dev/null
+++ b/test/captures/quic-with-secrets.pcapng
Binary files differ
diff --git a/test/suite_decryption.py b/test/suite_decryption.py
index e6592389ae..a224e155fb 100644
--- a/test/suite_decryption.py
+++ b/test/suite_decryption.py
@@ -524,13 +524,22 @@ class TestDecryptTLS:
first_response = binascii.hexlify(b'Request for /first, version TLSv1.3, Early data: no\n').decode("ascii")
early_response = binascii.hexlify(b'Request for /early, version TLSv1.3, Early data: yes\n').decode("ascii")
second_response = binascii.hexlify(b'Request for /second, version TLSv1.3, Early data: yes\n').decode("ascii")
+ # assert [
+ # r'5|/first|',
+ # fr'6||{first_response}',
+ # r'8|/early|',
+ # fr'10||{early_response}',
+ # r'12|/second|',
+ # fr'13||{second_response}',
+ # ] == stdout.splitlines()
+
assert [
r'5|/first|',
- fr'6||{first_response}',
+ fr'6|/first|{first_response}',
r'8|/early|',
- fr'10||{early_response}',
+ fr'10|/early|{early_response}',
r'12|/second|',
- fr'13||{second_response}',
+ fr'13|/second|{second_response}',
] == stdout.splitlines()
def test_tls13_rfc8446_noearly(self, cmd_tshark, dirs, features, capture_file, test_env):
@@ -549,12 +558,20 @@ class TestDecryptTLS:
first_response = binascii.hexlify(b'Request for /first, version TLSv1.3, Early data: no\n').decode("ascii")
early_response = binascii.hexlify(b'Request for /early, version TLSv1.3, Early data: yes\n').decode("ascii")
second_response = binascii.hexlify(b'Request for /second, version TLSv1.3, Early data: yes\n').decode("ascii")
+ # assert [
+ # r'5|/first|',
+ # fr'6||{first_response}',
+ # fr'10||{early_response}',
+ # r'12|/second|',
+ # fr'13||{second_response}',
+ # ] == stdout.splitlines()
+
assert [
r'5|/first|',
- fr'6||{first_response}',
+ fr'6|/first|{first_response}',
fr'10||{early_response}',
r'12|/second|',
- fr'13||{second_response}',
+ fr'13|/second|{second_response}',
] == stdout.splitlines()
def test_tls12_dsb(self, cmd_tshark, capture_file, test_env):
diff --git a/test/suite_dfilter/group_columns.py b/test/suite_dfilter/group_columns.py
index 5bbfbc90c9..119a49219d 100644
--- a/test/suite_dfilter/group_columns.py
+++ b/test/suite_dfilter/group_columns.py
@@ -48,7 +48,7 @@ class TestDfilterColumns:
dfilter = '_ws.col.protocol == "HTTP"'
checkDFilterCountReadFilter(dfilter, 1)
- def test_add_column(self, checkDFilterCount):
+ # def test_add_column(self, checkDFilterCount):
# Add column to configuration
- dfilter = '_ws.col.expert == "Chat"'
- checkDFilterCount(dfilter, 1, 'gui.column.format:"Expert","%a"')
+ # dfilter = '_ws.col.expert == "Chat"'
+ # checkDFilterCount(dfilter, 1, 'gui.column.format:"Expert","%a"')
diff --git a/test/suite_dfilter/group_syntax.py b/test/suite_dfilter/group_syntax.py
index 744ab0963c..6eb8564f94 100644
--- a/test/suite_dfilter/group_syntax.py
+++ b/test/suite_dfilter/group_syntax.py
@@ -23,10 +23,11 @@ class TestDfilterSyntax:
dfilter = "9p or http"
checkDFilterCount(dfilter, 1)
- def test_exists_4(self, checkDFilterCount):
+ # The HTTP dissector no longer has a expert Chat
+ # def test_exists_4(self, checkDFilterCount):
# Protocol with dot
- dfilter = "_ws.expert"
- checkDFilterCount(dfilter, 1)
+ # dfilter = "_ws.expert"
+ # checkDFilterCount(dfilter, 1)
def test_exists_5(self, checkDFilterSucceed):
# Protocol field name with leading digit and minus
diff --git a/test/suite_dissection.py b/test/suite_dissection.py
index f6bd4e74e5..35cea626ef 100644
--- a/test/suite_dissection.py
+++ b/test/suite_dissection.py
@@ -197,12 +197,12 @@ class TestDissectGprpc:
'-r', capture_file('grpc_person_search_protobuf_with_image-missing_headers.pcapng.gz'),
'-o', 'uat:protobuf_search_paths: "{}","{}"'.format(well_know_types_dir, 'FALSE'),
'-o', 'uat:protobuf_search_paths: "{}","{}"'.format(user_defined_types_dir, 'TRUE'),
- '-o', 'uat:http2_fake_headers: "{}","{}","{}","{}","{}","{}"'.format(
- '50051','3','IN',':path','/tutorial.PersonSearchService/Search','TRUE'),
- '-o', 'uat:http2_fake_headers: "{}","{}","{}","{}","{}","{}"'.format(
- '50051','0','IN','content-type','application/grpc','TRUE'),
- '-o', 'uat:http2_fake_headers: "{}","{}","{}","{}","{}","{}"'.format(
- '50051','0','OUT','content-type','application/grpc','TRUE'),
+ '-o', 'uat:http2_fake_headers: "{}","{}","{}","{}","{}","{}","{}"'.format(
+ '50051','3','IN',':path','/tutorial.PersonSearchService/Search','FALSE', 'TRUE'),
+ '-o', 'uat:http2_fake_headers: "{}","{}","{}","{}","{}","{}","{}"'.format(
+ '50051','0','IN','content-type','application/grpc','FALSE','TRUE'),
+ '-o', 'uat:http2_fake_headers: "{}","{}","{}","{}","{}","{}","{}"'.format(
+ '50051','0','OUT','content-type','application/grpc','FALSE','TRUE'),
'-d', 'tcp.port==50051,http2',
'-2',
'-Y', 'protobuf.field.value.string == "Jason" || protobuf.field.value.string == "Lily"',
diff --git a/test/suite_sharkd.py b/test/suite_sharkd.py
index db736dcc49..36c9e619fd 100644
--- a/test/suite_sharkd.py
+++ b/test/suite_sharkd.py
@@ -75,7 +75,23 @@ class TestSharkd:
check_sharkd_session((
{"jsonrpc":"2.0", "id":1, "method":"status"},
), (
- {"jsonrpc":"2.0","id":1,"result":{"frames":0,"duration":0.000000000,"columns":["No.","Time","Source","Destination","Protocol","Length","Info"]}},
+ {"jsonrpc":"2.0","id":1,"result":{"frames":0,"duration":0.000000000,"columns":["No.","Time","Source","Destination","Protocol","Length","Info"],
+ "column_info":[{
+ "title":"No.","format": "%m","visible":True, "resolved":True
+ },{
+ "title": "Time", "format": "%t", "visible":True, "resolved":True
+ },{
+ "title": "Source", "format": "%s", "visible":True, "resolved":True
+ },{
+ "title": "Destination", "format": "%d", "visible":True, "resolved":True
+ },{
+ "title": "Protocol", "format": "%p", "visible":True, "resolved":True
+ },{
+ "title": "Length", "format": "%L", "visible":True, "resolved":True
+ },{
+ "title": "Info", "format": "%i", "visible":True, "resolved":True
+ }]
+ }},
))
def test_sharkd_req_status(self, check_sharkd_session, capture_file):
@@ -88,7 +104,23 @@ class TestSharkd:
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
{"jsonrpc":"2.0","id":2,"result":{"frames": 4, "duration": 0.070345000,
"filename": "dhcp.pcap", "filesize": 1400,
- "columns":["No.","Time","Source","Destination","Protocol","Length","Info"]}},
+ "columns":["No.","Time","Source","Destination","Protocol","Length","Info"],
+ "column_info":[{
+ "title":"No.","format": "%m","visible":True, "resolved":True
+ },{
+ "title": "Time", "format": "%t", "visible":True, "resolved":True
+ },{
+ "title": "Source", "format": "%s", "visible":True, "resolved":True
+ },{
+ "title": "Destination", "format": "%d", "visible":True, "resolved":True
+ },{
+ "title": "Protocol", "format": "%p", "visible":True, "resolved":True
+ },{
+ "title": "Length", "format": "%L", "visible":True, "resolved":True
+ },{
+ "title": "Info", "format": "%i", "visible":True, "resolved":True
+ }]
+ }},
))
def test_sharkd_req_analyse(self, check_sharkd_session, capture_file):
@@ -1075,6 +1107,9 @@ class TestSharkd:
{"jsonrpc":"2.0", "id":4, "method":"follow",
"params":{"follow": "HTTP", "filter": "garbage filter"}
},
+ {"jsonrpc":"2.0", "id":5, "method":"follow",
+ "params":{"follow": "HTTP", "filter": "http", "sub_stream": "garbage sub_stream"}
+ },
), (
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
{"jsonrpc":"2.0","id":2,"error":{"code":-32600,"message":"Mandatory parameter follow is missing"}},
@@ -1082,6 +1117,9 @@ class TestSharkd:
{"jsonrpc":"2.0","id":4,
"error":{"code":-12002,"message":"sharkd_session_process_follow() name=HTTP error=Filter \"garbage filter\" is invalid - \"filter\" was unexpected in this context."}
},
+ {"jsonrpc":"2.0","id":5,
+ "error":{"code":-32600,"message":"The data type for member sub_stream is not valid"}
+ },
))
def test_sharkd_req_follow_no_match(self, check_sharkd_session, capture_file):
@@ -1119,6 +1157,28 @@ class TestSharkd:
},
))
+ def test_sharkd_req_follow_http2(self, check_sharkd_session, capture_file):
+ check_sharkd_session((
+ {"jsonrpc":"2.0", "id":1, "method":"load",
+ "params":{"file": capture_file('quic-with-secrets.pcapng')}
+ },
+ {"jsonrpc":"2.0", "id":2, "method":"follow",
+ "params":{"follow": "HTTP2", "filter": "tcp.stream eq 0 and http2.streamid eq 1", "sub_stream": 1}
+ },
+ ), (
+ {"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
+ {"jsonrpc":"2.0","id":2,
+ "result":{
+ "shost": "2606:4700:10::6816:826", "sport": "443", "sbytes": 656,
+ "chost": "2001:db8:1::1", "cport": "57098", "cbytes": 109643,
+ "payloads": [
+ {"n": 12, "d": MatchRegExp(r'^.*VuLVVTLGVuO3E9MC45Cgo.*$')},
+ {"n": 19, "s": 1, "d": MatchRegExp(r'^.*7IG1hPTg2NDAwCgo.*$')},
+ {"n": 44, "s": 1, "d": MatchRegExp(r'^.*Pgo8L2h0bWw.*$')},
+ ]}
+ },
+ ))
+
def test_sharkd_req_iograph_bad(self, check_sharkd_session, capture_file):
check_sharkd_session((
{"jsonrpc":"2.0", "id":1, "method":"load",
@@ -1128,10 +1188,16 @@ class TestSharkd:
{"jsonrpc":"2.0", "id":3, "method":"iograph",
"params":{"graph0": "garbage graph name"}
},
+ {"jsonrpc":"2.0", "id":4, "method":"iograph",
+ "params":{"graph0": "max:udp.length", "filter0": "udp.length", "interval": 0}},
+ {"jsonrpc":"2.0", "id":5, "method":"iograph",
+ "params":{"graph0": "max:udp.length", "filter0": "udp.length", "interval_units": "garbage units"}},
), (
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
{"jsonrpc":"2.0","id":2,"error":{"code":-32600,"message":"Mandatory parameter graph0 is missing"}},
{"jsonrpc":"2.0","id":3,"result":{"iograph": []}},
+ {"jsonrpc":"2.0","id":4,"error":{"code":-32600,"message":"The value for interval must be a positive integer"}},
+ {"jsonrpc":"2.0","id":5,"error":{"code":-7003,"message":"Invalid interval_units parameter: 'garbage units', must be 's', 'ms' or 'us'"}},
))
def test_sharkd_req_iograph_basic(self, check_sharkd_session, capture_file):
@@ -1139,20 +1205,41 @@ class TestSharkd:
{"jsonrpc":"2.0", "id":1, "method":"load",
"params":{"file": capture_file('dhcp.pcap')}
},
- {"jsonrpc":"2.0", "id":1, "method":"iograph",
+ {"jsonrpc":"2.0", "id":2, "method":"iograph",
"params":{"graph0": "max:udp.length", "filter0": "udp.length"}
},
- {"jsonrpc":"2.0", "id":2, "method":"iograph",
+ {"jsonrpc":"2.0", "id":3, "method":"iograph",
"params":{"graph0": "packets", "graph1": "bytes"}
},
- {"jsonrpc":"2.0", "id":3, "method":"iograph",
+ {"jsonrpc":"2.0", "id":4, "method":"iograph",
"params":{"graph0": "packets", "filter0": "garbage filter"}
},
+ {"jsonrpc":"2.0", "id":5, "method":"iograph",
+ "params":{"graph0": "packets", "graph1": "bytes", "interval": 1, "interval_units": "us"}
+ },
+ {"jsonrpc":"2.0", "id":6, "method":"iograph",
+ "params":{"graph0": "packets", "graph1": "bytes", "interval": 1, "interval_units": "ms"}
+ },
+ {"jsonrpc":"2.0", "id":7, "method":"iograph",
+ "params":{"graph0": "packets", "graph1": "bytes", "interval": 1, "interval_units": "s"}
+ },
), (
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
- {"jsonrpc":"2.0","id":1,"result":{"iograph": [{"items": [308.000000]}]}},
- {"jsonrpc":"2.0","id":2,"result":{"iograph": [{"items": [4.000000]}, {"items": [1312.000000]}]}},
- {"jsonrpc":"2.0","id":3,"error":{"code":-6001,"message":"Filter \"garbage filter\" is invalid - \"filter\" was unexpected in this context."}},
+ {"jsonrpc":"2.0","id":2,"result":{"iograph": [{"items": [308.000000]}]}},
+ {"jsonrpc":"2.0","id":3,"result":{"iograph": [{"items": [4.000000]}, {"items": [1312.000000]}]}},
+ {"jsonrpc":"2.0","id":4,"error":{"code":-6001,"message":"Filter \"garbage filter\" is invalid - \"filter\" was unexpected in this context."}},
+ {"jsonrpc":"2.0","id":5,"result":{"iograph": [
+ {"items": [1.0, '127', 1.0, '1118f', 1.0, '112c9', 1.0]},
+ {"items": [314.0, '127', 342.0, '1118f', 314.0, '112c9', 342.0]},
+ ]}},
+ {"jsonrpc":"2.0","id":6,"result":{"iograph": [
+ {"items": [2.0, '46', 2.0]},
+ {"items": [656.0, '46', 656.0]},
+ ]}},
+ {"jsonrpc":"2.0","id":7,"result":{"iograph": [
+ {"items": [4.0]},
+ {"items": [1312.0]},
+ ]}},
))
def test_sharkd_req_intervals_bad(self, check_sharkd_session, capture_file):
@@ -1198,7 +1285,30 @@ class TestSharkd:
},
), (
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
- {"jsonrpc":"2.0","id":2,"result":{"fol": [["UDP", "udp.stream eq 1"]]}},
+ {"jsonrpc":"2.0","id":2,"result":{
+ "fol": [["UDP", "udp.stream eq 1"]],
+ "followers": [{"protocol": "UDP","filter": "udp.stream eq 1","stream": 1}]
+ }},
+ ))
+
+ def test_sharkd_req_frame_http2(self, check_sharkd_session, capture_file):
+ check_sharkd_session((
+ {"jsonrpc":"2.0", "id":1, "method":"load",
+ "params":{"file": capture_file('quic-with-secrets.pcapng')}
+ },
+ {"jsonrpc":"2.0", "id":2, "method":"frame",
+ "params":{"frame": 12}
+ },
+ ), (
+ {"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
+ {"jsonrpc":"2.0","id":2,"result":{
+ "fol": [["HTTP2", "tcp.stream eq 0 and http2.streamid eq 1"],["TCP","tcp.stream eq 0"],["TLS","tcp.stream eq 0"]],
+ "followers": [
+ {"protocol": "HTTP2","filter": "tcp.stream eq 0 and http2.streamid eq 1","stream": 0, "sub_stream": 1},
+ {"protocol": "TCP","filter": "tcp.stream eq 0","stream": 0},
+ {"protocol": "TLS","filter": "tcp.stream eq 0","stream": 0},
+ ]
+ }},
))
def test_sharkd_req_frame_proto(self, check_sharkd_session, capture_file):
@@ -1251,7 +1361,7 @@ class TestSharkd:
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
{"jsonrpc":"2.0","id":2,"error":{"code":-3002,"message":"Frame number is out of range"}},
{"jsonrpc":"2.0","id":3,"result":{"status":"OK"}},
- {"jsonrpc":"2.0","id":4,"result":{"comment":["foo\nbar"],"fol": MatchAny(list)}},
+ {"jsonrpc":"2.0","id":4,"result":{"comment":["foo\nbar"],"fol": MatchAny(list), "followers": MatchAny(list)}},
))
def test_sharkd_req_setconf_bad(self, check_sharkd_session):
diff --git a/text2pcap.c b/text2pcap.c
index b781b1372c..fc92bea9b7 100644
--- a/text2pcap.c
+++ b/text2pcap.c
@@ -102,52 +102,52 @@
/*--- Options --------------------------------------------------------------------*/
/* Be quiet */
-static gboolean quiet = FALSE;
+static gboolean quiet;
/* Dummy Ethernet header */
-static gboolean hdr_ethernet = FALSE;
+static gboolean hdr_ethernet;
#if 0
/* XXX: Maybe add custom Ethernet Address options? */
static guint8 hdr_eth_dest_addr[6] = {0x0a, 0x02, 0x02, 0x02, 0x02, 0x02};
static guint8 hdr_eth_src_addr[6] = {0x0a, 0x02, 0x02, 0x02, 0x02, 0x01};
#endif
-static guint32 hdr_ethernet_proto = 0;
+static guint32 hdr_ethernet_proto;
/* Dummy IP header */
-static gboolean hdr_ip = FALSE;
-static gboolean hdr_ipv6 = FALSE;
-static gboolean have_hdr_ip_proto = FALSE;
-static guint8 hdr_ip_proto = 0;
+static gboolean hdr_ip;
+static gboolean hdr_ipv6;
+static gboolean have_hdr_ip_proto;
+static guint8 hdr_ip_proto;
/* Destination and source addresses for IP header */
-static guint32 hdr_ip_dest_addr = 0;
-static guint32 hdr_ip_src_addr = 0;
+static guint32 hdr_ip_dest_addr;
+static guint32 hdr_ip_src_addr;
static ws_in6_addr hdr_ipv6_dest_addr = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static ws_in6_addr hdr_ipv6_src_addr = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
/* Dummy UDP header */
-static gboolean hdr_udp = FALSE;
-static guint32 hdr_dest_port = 0;
-static guint32 hdr_src_port = 0;
+static gboolean hdr_udp;
+static guint32 hdr_dest_port;
+static guint32 hdr_src_port;
/* Dummy TCP header */
-static gboolean hdr_tcp = FALSE;
+static gboolean hdr_tcp;
/* Dummy SCTP header */
-static gboolean hdr_sctp = FALSE;
-static guint32 hdr_sctp_src = 0;
-static guint32 hdr_sctp_dest = 0;
-static guint32 hdr_sctp_tag = 0;
+static gboolean hdr_sctp;
+static guint32 hdr_sctp_src;
+static guint32 hdr_sctp_dest;
+static guint32 hdr_sctp_tag;
/* Dummy DATA chunk header */
-static gboolean hdr_data_chunk = FALSE;
-static guint32 hdr_data_chunk_tsn = 0;
-static guint16 hdr_data_chunk_sid = 0;
-static guint16 hdr_data_chunk_ssn = 0;
-static guint32 hdr_data_chunk_ppid = 0;
+static gboolean hdr_data_chunk;
+static guint32 hdr_data_chunk_tsn;
+static guint16 hdr_data_chunk_sid;
+static guint16 hdr_data_chunk_ssn;
+static guint32 hdr_data_chunk_ppid;
/* Export PDU */
-static gboolean hdr_export_pdu = FALSE;
+static gboolean hdr_export_pdu;
/*--- Local data -----------------------------------------------------------------*/
@@ -155,11 +155,11 @@ static gboolean hdr_export_pdu = FALSE;
static guint32 max_offset = WTAP_MAX_PACKET_SIZE_STANDARD;
/* Time code of packet, derived from packet_preamble */
-static int ts_fmt_iso = 0;
+static int ts_fmt_iso;
/* Input file */
static char *input_filename;
-static FILE *input_file = NULL;
+static FILE *input_file;
/* Output file */
static char *output_filename;
@@ -222,7 +222,7 @@ print_usage (FILE *output)
" https://www.tcpdump.org/linktypes.html for a list of\n"
" numbers.\n"
" Example: -l 7 for ARCNet packets.\n"
- " -m <max-packet> max packet length in output; default is %d\n"
+ " -m <max-packet> max packet length in output; default is %u\n"
" -N <intf-name> assign name to the interface in the pcapng file.\n"
"\n"
"Prepend dummy header:\n"
diff --git a/tfshark.c b/tfshark.c
index af350cebdd..7311b4391d 100644
--- a/tfshark.c
+++ b/tfshark.c
@@ -82,7 +82,7 @@ static frame_data ref_frame;
static frame_data prev_dis_frame;
static frame_data prev_cap_frame;
-static gboolean prefs_loaded = FALSE;
+static gboolean prefs_loaded;
static gboolean perform_two_pass_analysis;
@@ -103,12 +103,12 @@ static gint print_summary = -1; /* TRUE if we're to print packet summary info
static gboolean print_details; /* TRUE if we're to print packet details information */
static gboolean print_hex; /* TRUE if we're to print hex/ascci information */
static gboolean line_buffered;
-static gboolean really_quiet = FALSE;
+static gboolean really_quiet;
static print_format_e print_format = PR_FMT_TEXT;
static print_stream_t *print_stream;
-static output_fields_t* output_fields = NULL;
+static output_fields_t* output_fields;
/* The line separator used between packets, changeable via the -S option */
static const char *separator = "";
@@ -125,7 +125,7 @@ static gboolean write_finale(void);
static void tfshark_cmdarg_err(const char *msg_format, va_list ap);
static void tfshark_cmdarg_err_cont(const char *msg_format, va_list ap);
-static GHashTable *output_only_tables = NULL;
+static GHashTable *output_only_tables;
#if 0
struct string_elem {
diff --git a/tools/alpine-setup.sh b/tools/alpine-setup.sh
index 7923c3c1cd..5a3fd1f29d 100755
--- a/tools/alpine-setup.sh
+++ b/tools/alpine-setup.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/ash
# Setup development environment on alpine systems
#
# Wireshark - Network traffic analyzer
@@ -50,6 +50,7 @@ then
fi
BASIC_LIST="
+ bash
cmake
ninja
gcc
@@ -60,10 +61,11 @@ BASIC_LIST="
tiff-dev
c-ares-dev
pcre2-dev
- qt5-qtbase-dev
- qt5-qttools-dev
- qt5-qtmultimedia-dev
- qt5-qtsvg-dev
+ qt6-qtbase-dev
+ qt6-qttools-dev
+ qt6-qtmultimedia-dev
+ qt6-qtsvg-dev
+ qt6-qt5compat-dev
speexdsp-dev
python3
"
@@ -74,6 +76,7 @@ ADDITIONAL_LIST="
libssh-dev
spandsp-dev
libcap-dev
+ libcap-setcap
libpcap-dev
libxml2-dev
libmaxminddb-dev
@@ -83,11 +86,12 @@ ADDITIONAL_LIST="
snappy-dev
nghttp2-dev
nghttp3-dev
- lua5.3-dev
+ lua5.4-dev
libnl3-dev
sbc-dev
minizip-dev
brotli-dev
+ opencore-amr-dev
perl
py3-pytest
py3-pytest-xdist
diff --git a/tools/asn2wrs.py b/tools/asn2wrs.py
index a961524bf9..cbc3bc5096 100755
--- a/tools/asn2wrs.py
+++ b/tools/asn2wrs.py
@@ -1561,7 +1561,7 @@ class EthCtx:
if len(cycle_funcs) > 1:
out += f'''\
- // {' → '.join(cycle_funcs)}
+ // {' -> '.join(cycle_funcs)}
actx->pinfo->dissection_depth += {len(cycle_funcs) - 1};
increment_dissection_depth(actx->pinfo);
'''
@@ -1686,10 +1686,10 @@ class EthCtx:
def eth_output_ett (self):
fx = self.output.file_open('ett')
fempty = True
- #fx.write("static gint ett_%s;\n" % (self.eproto))
+ #fx.write("static int ett_%s;\n" % (self.eproto))
for t in self.eth_type_ord:
if self.eth_type[t]['tree']:
- fx.write("static gint %s;\n" % (self.eth_type[t]['tree']))
+ fx.write("static int %s;\n" % (self.eth_type[t]['tree']))
fempty = False
self.output.file_close(fx, discard=fempty)
@@ -3389,12 +3389,12 @@ class Type (Node):
minv += 'U'
elif (str(minv)[0] == "-") and str(minv)[1:].isdigit():
if (int(minv) == -(2**31)):
- minv = "G_MININT32"
+ minv = "INT32_MIN"
elif (int(minv) < -(2**31)):
- minv = "G_GINT64_CONSTANT(%s)" % (str(minv))
+ minv = "INT64_C(%s)" % (str(minv))
if str(maxv).isdigit():
if (int(maxv) >= 2**32):
- maxv = "G_GUINT64_CONSTANT(%s)" % (str(maxv))
+ maxv = "UINT64_C(%s)" % (str(maxv))
else:
maxv += 'U'
if (ext): ext = 'TRUE'
diff --git a/tools/asterix/packet-asterix-template.c b/tools/asterix/packet-asterix-template.c
index 16beb6117e..057c0ba274 100644
--- a/tools/asterix/packet-asterix-template.c
+++ b/tools/asterix/packet-asterix-template.c
@@ -102,22 +102,20 @@ struct FieldPart_s {
const char *format_string; /* format string for showing float values */
};
-DIAG_OFF_PEDANTIC
typedef struct AsterixField_s AsterixField;
struct AsterixField_s {
- uint8_t type; /* type of field */
- unsigned length; /* fixed length */
- unsigned repetition_counter_size; /* size of repetition counter, length of one item is in length */
- unsigned header_length; /* the size is in first header_length bytes of the field */
- int *hf; /* pointer to Wireshark hf_register_info */
- const FieldPart **part; /* Look declaration and description of FieldPart above. */
- const AsterixField *field[]; /* subfields */
+ uint8_t type; /* type of field */
+ unsigned length; /* fixed length */
+ unsigned repetition_counter_size; /* size of repetition counter, length of one item is in length */
+ unsigned header_length; /* the size is in first header_length bytes of the field */
+ int *hf; /* pointer to Wireshark hf_register_info */
+ const FieldPart * const *part; /* Look declaration and description of FieldPart above. */
+ const AsterixField * const field[]; /* subfields */
};
-DIAG_ON_PEDANTIC
static void dissect_asterix_packet (tvbuff_t *, packet_info *pinfo, proto_tree *);
static void dissect_asterix_data_block (tvbuff_t *tvb, packet_info *pinfo, unsigned, proto_tree *, uint8_t, int);
-static int dissect_asterix_fields (tvbuff_t *, packet_info *pinfo, unsigned, proto_tree *, uint8_t, const AsterixField *[]);
+static int dissect_asterix_fields (tvbuff_t *, packet_info *pinfo, unsigned, proto_tree *, uint8_t, const AsterixField * const []);
static void asterix_build_subtree (tvbuff_t *, packet_info *pinfo, unsigned, proto_tree *, const AsterixField *);
static void twos_complement (int64_t *, int);
@@ -125,8 +123,8 @@ static uint8_t asterix_bit (uint8_t, uint8_t);
static unsigned asterix_fspec_len (tvbuff_t *, unsigned);
static uint8_t asterix_field_exists (tvbuff_t *, unsigned, int);
static uint8_t asterix_get_active_uap (tvbuff_t *, unsigned, uint8_t);
-static int asterix_field_length (tvbuff_t *, unsigned, const AsterixField *);
-static int asterix_field_offset (tvbuff_t *, unsigned, const AsterixField *[], int);
+static int asterix_field_length (tvbuff_t *, unsigned, const AsterixField * const);
+static int asterix_field_offset (tvbuff_t *, unsigned, const AsterixField * const [], int);
static int asterix_message_length (tvbuff_t *, unsigned, uint8_t, uint8_t);
static const char AISCode[] = { ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
@@ -149,7 +147,6 @@ static const FieldPart IXXX_6bit_spare = { 6, 1.0, FIELD_PART_UINT, NULL, NULL }
static const FieldPart IXXX_7bit_spare = { 7, 1.0, FIELD_PART_UINT, NULL, NULL };
/* Spare Item */
-DIAG_OFF_PEDANTIC
static const AsterixField IX_SPARE = { FIXED, 0, 0, 0, &hf_spare, NULL, { NULL } };
/* insert1 */
@@ -515,7 +512,7 @@ static void dissect_asterix_data_block (tvbuff_t *tvb, packet_info *pinfo, unsig
// We're transported over UDP and our offset always advances.
// NOLINTNEXTLINE(misc-no-recursion)
-static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned offset, proto_tree *tree, uint8_t category, const AsterixField *current_uap[])
+static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned offset, proto_tree *tree, uint8_t category, const AsterixField * const current_uap [])
{
unsigned i, j, size, start, len, inner_offset, fspec_len;
uint64_t counter;
@@ -538,7 +535,7 @@ static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned o
asterix_field_tree = proto_item_add_subtree (asterix_field_item, ett_asterix_subtree);
fspec_len = asterix_fspec_len (tvb, offset + start);
proto_tree_add_item (asterix_field_tree, hf_asterix_fspec, tvb, offset + start, fspec_len, ENC_NA);
- dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, (const AsterixField **)current_uap[i]->field);
+ dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, current_uap[i]->field);
break;
case REPETITIVE:
asterix_field_item = proto_tree_add_item (tree, *current_uap[i]->hf, tvb, offset + start, len, ENC_NA);
@@ -561,7 +558,7 @@ static int dissect_asterix_fields (tvbuff_t *tvb, packet_info *pinfo, unsigned o
start++;
fspec_len = asterix_fspec_len (tvb, offset + start);
proto_tree_add_item (asterix_field_tree, hf_asterix_fspec, tvb, offset + start, fspec_len, ENC_NA);
- dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, (const AsterixField **)current_uap[i]->field);
+ dissect_asterix_fields (tvb, pinfo, offset + start, asterix_field_tree, category, current_uap[i]->field);
break;*/
default: /* FIXED, FX, FX_1, FX_UAP */
asterix_field_item = proto_tree_add_item (tree, *current_uap[i]->hf, tvb, offset + start, len, ENC_NA);
@@ -685,8 +682,8 @@ static uint8_t asterix_bit (uint8_t b, uint8_t bitNo)
* If the number is positive, all other bits must remain 0. */
static void twos_complement (int64_t *v, int bit_len)
{
- if (*v & (G_GUINT64_CONSTANT(1) << (bit_len - 1))) {
- *v |= (G_GUINT64_CONSTANT(0xffffffffffffffff) << bit_len);
+ if (*v & (UINT64_C(1) << (bit_len - 1))) {
+ *v |= (UINT64_C(0xffffffffffffffff) << bit_len);
}
}
@@ -710,7 +707,7 @@ static uint8_t asterix_field_exists (tvbuff_t *tvb, unsigned offset, int bitInde
// We're transported over UDP and our offset always advances.
// NOLINTNEXTLINE(misc-no-recursion)
-static int asterix_field_length (tvbuff_t *tvb, unsigned offset, const AsterixField *field)
+static int asterix_field_length (tvbuff_t *tvb, unsigned offset, const AsterixField * const field)
{
unsigned size;
uint64_t count;
@@ -752,11 +749,11 @@ static int asterix_field_length (tvbuff_t *tvb, unsigned offset, const AsterixFi
static uint8_t asterix_get_active_uap (tvbuff_t *tvb, unsigned offset, uint8_t category)
{
int i, inner_offset;
- AsterixField **current_uap;
+ AsterixField const * const *current_uap;
if ((category == 1) && (categories[category] != NULL)) { /* if category is supported */
if (categories[category][global_categories_version[category]][1] != NULL) { /* if exists another uap */
- current_uap = (AsterixField **)categories[category][global_categories_version[category]][0];
+ current_uap = categories[category][global_categories_version[category]][0];
if (current_uap != NULL) {
inner_offset = asterix_fspec_len (tvb, offset);
for (i = 0; current_uap[i] != NULL; i++) {
@@ -773,7 +770,7 @@ static uint8_t asterix_get_active_uap (tvbuff_t *tvb, unsigned offset, uint8_t c
return 0;
}
-static int asterix_field_offset (tvbuff_t *tvb, unsigned offset, const AsterixField *current_uap[], int field_index)
+static int asterix_field_offset (tvbuff_t *tvb, unsigned offset, const AsterixField * const current_uap[], int field_index)
{
int i, inner_offset;
inner_offset = 0;
@@ -790,10 +787,10 @@ static int asterix_field_offset (tvbuff_t *tvb, unsigned offset, const AsterixFi
static int asterix_message_length (tvbuff_t *tvb, unsigned offset, uint8_t category, uint8_t active_uap)
{
int i, size;
- AsterixField **current_uap;
+ AsterixField const * const *current_uap;
if (categories[category] != NULL) { /* if category is supported */
- current_uap = (AsterixField **)categories[category][global_categories_version[category]][active_uap];
+ current_uap = categories[category][global_categories_version[category]][active_uap];
if (current_uap != NULL) {
size = asterix_fspec_len (tvb, offset);
for (i = 0; current_uap[i] != NULL; i++) {
diff --git a/tools/asterix/update-specs.py b/tools/asterix/update-specs.py
index 997cdce0d9..c3f44b2d53 100755
--- a/tools/asterix/update-specs.py
+++ b/tools/asterix/update-specs.py
@@ -401,7 +401,7 @@ def part1(ctx, get_ref, catalogue):
handle_item(path, i)
# FieldPart[]
- tell('static const FieldPart *I{}_PARTS[] = {}'.format(ref,'{'))
+ tell('static const FieldPart * const I{}_PARTS[] = {}'.format(ref,'{'))
for i in variation['items']:
tell(' {},'.format(part_of(i)))
tell(' NULL')
@@ -439,7 +439,7 @@ def part1(ctx, get_ref, catalogue):
else:
handle_item(path, i)
- tell('static const FieldPart *I{}_PARTS[] = {}'.format(ref,'{'))
+ tell('static const FieldPart * const I{}_PARTS[] = {}'.format(ref,'{'))
for i in items:
if i is None:
tell(' &IXXX_FX,')
@@ -554,7 +554,6 @@ def part2(ctx, ref, uap):
"""Generate UAPs"""
tell = lambda s: ctx.tell('insert1', s)
- tell('DIAG_OFF_PEDANTIC')
ut = uap['type']
if ut == 'uap':
@@ -565,7 +564,7 @@ def part2(ctx, ref, uap):
raise Exception('unexpected uap type {}'.format(ut))
for var in variations:
- tell('static const AsterixField *I{}_{}[] = {}'.format(ref, var['name'], '{'))
+ tell('static const AsterixField * const I{}_{}[] = {}'.format(ref, var['name'], '{'))
for i in var['items']:
if i is None:
tell(' &IX_SPARE,')
@@ -574,12 +573,11 @@ def part2(ctx, ref, uap):
tell(' NULL')
tell('};')
- tell('static const AsterixField **I{}[] = {}'.format(ref, '{'))
+ tell('static const AsterixField * const * const I{}[] = {}'.format(ref, '{'))
for var in variations:
tell(' I{}_{},'.format(ref, var['name']))
tell(' NULL')
tell('};')
- tell('DIAG_ON_PEDANTIC')
tell('')
def part3(ctx, specs):
@@ -597,9 +595,7 @@ def part3(ctx, specs):
editions = sorted([val['edition'] for val in lst], key = lambda x: (x['major'], x['minor']), reverse=True)
editions_fmt = [fmt_edition(cat, edition) for edition in editions]
editions_str = ', '.join(['I{:03d}'.format(cat)] + editions_fmt)
- tell('DIAG_OFF_PEDANTIC')
- tell('static const AsterixField ***I{:03d}all[] = {} {} {};'.format(cat, '{', editions_str, '}'))
- tell('DIAG_ON_PEDANTIC')
+ tell('static const AsterixField * const * const * const I{:03d}all[] = {} {} {};'.format(cat, '{', editions_str, '}'))
tell('')
tell('static const enum_val_t I{:03d}_versions[] = {}'.format(cat, '{'))
@@ -623,7 +619,7 @@ def part4(ctx, cats):
tell = lambda s: ctx.tell('insert1', s)
tell_pr = lambda s: ctx.tell('insert3', s)
- tell('static const AsterixField ****categories[] = {')
+ tell('static const AsterixField * const * const * const * const categories[] = {')
for i in range(0, 256):
val = 'I{:03d}all'.format(i) if i in cats else 'NULL'
tell(' {}, /* {:03d} */'.format(val, i))
diff --git a/tools/check_spelling.py b/tools/check_spelling.py
index e7805b23b7..0258b007ed 100755
--- a/tools/check_spelling.py
+++ b/tools/check_spelling.py
@@ -57,61 +57,6 @@ spell = SpellChecker()
spell.word_frequency.load_text_file('./tools/wireshark_words.txt')
-class TypoSourceDocumentParser(HTMLParser):
- def __init__(self):
- super().__init__()
- self.capturing = False
- self.content = ''
-
- def handle_starttag(self, tag, attrs):
- if tag == 'pre':
- self.capturing = True
-
- def handle_endtag(self, tag):
- if tag == 'pre':
- self.capturing = False
-
- def handle_data(self, data):
- if self.capturing:
- self.content += data
-
-
-# Fetch some common mispellings from wikipedia so we will definitely flag them.
-print('Fetching Wikipedia\'s list of common misspellings.')
-req_headers = { 'User-Agent': 'Wireshark check-wikipedia-typos' }
-req = urllib.request.Request('https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines', headers=req_headers)
-try:
- response = urllib.request.urlopen(req)
- content = response.read()
- content = content.decode('UTF-8', 'replace')
-
- # Extract the "<pre>...</pre>" part of the document.
- parser = TypoSourceDocumentParser()
- parser.feed(content)
- content = parser.content.strip()
-
- wiki_db = dict(l.lower().split('->', maxsplit=1) for l in content.splitlines())
- del wiki_db['cmo'] # All false positives.
- del wiki_db['ect'] # Too many false positives.
- del wiki_db['thru'] # We'll let that one thru. ;-)
- del wiki_db['sargeant'] # All false positives.
-
- # Remove each word from dict
- removed = 0
- for word in wiki_db:
- try:
- if should_exit:
- exit(1)
- spell.word_frequency.remove_words([word])
- #print('Removed', word)
- removed += 1
- except:
- pass
-
- print('Removed', removed, 'known bad words')
-except:
- print('Failed to fetch and/or parse Wikipedia mispellings!')
-
# Track words that were not found.
missing_words = []
@@ -417,6 +362,9 @@ def isGeneratedFile(filename):
if filename.endswith('pci-ids.c') or filename.endswith('services-data.c') or filename.endswith('manuf-data.c'):
return True
+ if filename.endswith('packet-woww.c'):
+ return True
+
# Open file
f_read = open(os.path.join(filename), 'r', encoding="utf8")
for line_no,line in enumerate(f_read):
@@ -496,7 +444,7 @@ parser.add_argument('--folder', action='append',
parser.add_argument('--glob', action='store', default='',
help='specify glob to test - should give in "quotes"')
parser.add_argument('--no-recurse', action='store_true', default='',
- help='do not recurse inside chosen folder')
+ help='do not recurse inside chosen folder(s)')
parser.add_argument('--commits', action='store',
help='last N commits to check')
parser.add_argument('--open', action='store_true',
@@ -504,9 +452,65 @@ parser.add_argument('--open', action='store_true',
parser.add_argument('--comments', action='store_true',
help='check comments in source files')
-
args = parser.parse_args()
+class TypoSourceDocumentParser(HTMLParser):
+ def __init__(self):
+ super().__init__()
+ self.capturing = False
+ self.content = ''
+
+ def handle_starttag(self, tag, attrs):
+ if tag == 'pre':
+ self.capturing = True
+
+ def handle_endtag(self, tag):
+ if tag == 'pre':
+ self.capturing = False
+
+ def handle_data(self, data):
+ if self.capturing:
+ self.content += data
+
+
+# Fetch some common mispellings from wikipedia so we will definitely flag them.
+print('Fetching Wikipedia\'s list of common misspellings.')
+req_headers = { 'User-Agent': 'Wireshark check-wikipedia-typos' }
+req = urllib.request.Request('https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines', headers=req_headers)
+wiki_db = dict()
+try:
+ response = urllib.request.urlopen(req)
+ content = response.read()
+ content = content.decode('UTF-8', 'replace')
+
+ # Extract the "<pre>...</pre>" part of the document.
+ parser = TypoSourceDocumentParser()
+ parser.feed(content)
+ content = parser.content.strip()
+
+ wiki_db = dict(l.lower().split('->', maxsplit=1) for l in content.splitlines())
+ del wiki_db['cmo'] # All false positives.
+ del wiki_db['ect'] # Too many false positives.
+ del wiki_db['thru'] # We'll let that one thru. ;-)
+ del wiki_db['sargeant'] # All false positives.
+
+ # Remove each word from dict
+ removed = 0
+ for word in wiki_db:
+ try:
+ if should_exit:
+ exit(1)
+ spell.word_frequency.remove_words([word])
+ #print('Removed', word)
+ removed += 1
+ except:
+ pass
+
+ print('Removed', removed, 'known bad words')
+except:
+ print('Failed to fetch and/or parse Wikipedia mispellings!')
+
+
# Get files from wherever command-line args indicate.
files = []
diff --git a/tools/check_typed_item_calls.py b/tools/check_typed_item_calls.py
index 0d42db3772..77fd0c024e 100755
--- a/tools/check_typed_item_calls.py
+++ b/tools/check_typed_item_calls.py
@@ -84,6 +84,9 @@ item_lengths['FT_INT56'] = 7
item_lengths['FT_UINT64'] = 8
item_lengths['FT_INT64'] = 8
item_lengths['FT_ETHER'] = 6
+item_lengths['FT_IPv4'] = 4
+item_lengths['FT_IPv6'] = 16
+
# TODO: other types...
@@ -180,10 +183,12 @@ class APICheck:
if self.fun_name.find('add_bits') == -1 and call.hf_name in items_defined:
if call.length and items_defined[call.hf_name].item_type in item_lengths:
if item_lengths[items_defined[call.hf_name].item_type] < call.length:
- print('Warning:', self.file + ':' + str(call.line_number),
- self.fun_name + ' called for', call.hf_name, ' - ',
- 'item type is', items_defined[call.hf_name].item_type, 'but call has len', call.length)
- warnings_found += 1
+ # Don't warn if adding value - value is unlkely to just be bytes value
+ if self.fun_name.find('_add_uint') == -1:
+ print('Warning:', self.file + ':' + str(call.line_number),
+ self.fun_name + ' called for', call.hf_name, ' - ',
+ 'item type is', items_defined[call.hf_name].item_type, 'but call has len', call.length)
+ warnings_found += 1
# Needs a +ve length
if self.positive_length and call.length != None:
@@ -328,10 +333,13 @@ class ProtoTreeAddItemCheck(APICheck):
if call.hf_name in items_defined:
if call.length and items_defined[call.hf_name].item_type in item_lengths:
if item_lengths[items_defined[call.hf_name].item_type] < call.length:
- print('Warning:', self.file + ':' + str(call.line_number),
- self.fun_name + ' called for', call.hf_name, ' - ',
- 'item type is', items_defined[call.hf_name].item_type, 'but call has len', call.length)
- warnings_found += 1
+ # On balance, it is not worth complaining about these - the value is unlikely to be
+ # just the value found in these bytes..
+ if self.fun_name.find('_add_uint') == -1:
+ print('Warning:', self.file + ':' + str(call.line_number),
+ self.fun_name + ' called for', call.hf_name, ' - ',
+ 'item type is', items_defined[call.hf_name].item_type, 'but call has len', call.length)
+ warnings_found += 1
elif check_missing_items:
if call.hf_name in items_declared and not call.hf_name in items_declared_extern:
#not in common_hf_var_names:
@@ -879,6 +887,7 @@ class Item:
self.hf = hf
self.filter = filter
self.label = label
+ self.blurb = blurb
self.mask = mask
self.strings = strings
self.mask_exact_width = mask_exact_width
@@ -917,6 +926,7 @@ class Item:
if check_label:
self.check_label(label, 'label')
#self.check_label(blurb, 'blurb')
+ self.check_blurb_vs_label()
# Optionally check that mask bits are contiguous
if check_mask:
@@ -987,6 +997,34 @@ class Item:
print('Warning: ' + self.filename, self.hf, 'filter "' + self.filter + '"', label_name, '"' + label + '"', 'ends with an unnecessary colon')
warnings_found += 1
+ def check_blurb_vs_label(self):
+ global warnings_found
+ if self.blurb == "NULL":
+ return
+
+ # Is the label longer than the blurb?
+ # Generated dissectors tend to write the type into the blurb field...
+ #if len(self.label) > len(self.blurb):
+ # print('Warning:', self.filename, self.hf, 'label="' + self.label + '" blurb="' + self.blurb + '"', "- label longer than blurb!!!")
+
+ # Is the blurb just the label in a different order?
+ label_words = self.label.lower().split(' ')
+ label_words.sort()
+ blurb_words = self.blurb.lower().split(' ')
+ blurb_words.sort()
+
+ # Subset - often happens when part specific to that field is dropped
+ if set(label_words) > set(blurb_words):
+ print('Warning:', self.filename, self.hf, 'label="' + self.label + '" blurb="' + self.blurb + '"', "- words in blurb is subset of label!!!")
+ warnings_found += 1
+
+ # Just a re-ordering (but may also contain capitalization changes.)
+ if blurb_words == label_words:
+ print('Warning:', self.filename, self.hf, 'label="' + self.label + '" blurb="' + self.blurb + '"', "- Blurb is just label re-ordered!!!")
+ warnings_found += 1
+
+ # TODO: could have item know protocol name(s) from file this item was found in, and complain if blurb is just prot-name + label ?
+
def set_mask_value(self, macros):
try:
@@ -1721,7 +1759,7 @@ def checkFile(filename, check_mask=False, mask_exact_width=False, check_label=Fa
# Find (and sanity-check) string_strings
string_strings = findStringStrings(filename, macros, do_extra_checks=extra_value_string_checks)
if extra_value_string_checks:
- for name in range_strings:
+ for name in string_strings:
string_strings[name].extraChecks()
diff --git a/tools/convert-glib-types.py b/tools/convert-glib-types.py
index 0afd2a76eb..7879eb2cb5 100755
--- a/tools/convert-glib-types.py
+++ b/tools/convert-glib-types.py
@@ -24,7 +24,9 @@ type_map = {
'guchar': 'unsigned char',
'gint': 'int',
'guint': 'unsigned', # Matches README.developer
- 'glong': 'long',
+ # Our remaining glong instances probably shouldn't be converted, e.g.
+ # sequence_analysis.c:350
+ # 'glong': 'long',
'gulong': 'unsigned long',
'gint8': 'int8_t',
'gint16': 'int16_t',
@@ -45,8 +47,6 @@ type_map = {
}
definition_map = {
- 'TRUE': 'true',
- 'FALSE': 'false',
'G_MAXINT8': 'INT8_MAX',
'G_MAXINT16': 'INT16_MAX',
'G_MAXINT32': 'INT32_MAX',
@@ -66,6 +66,11 @@ definition_map = {
'G_GUINT64_CONSTANT': 'UINT64_C',
}
+tf_definition_map = {
+ 'TRUE': 'true',
+ 'FALSE': 'false',
+}
+
format_spec_map = {
'G_GINT64_FORMAT': 'PRId64',
'G_GUINT64_FORMAT': 'PRIu64',
@@ -82,6 +87,8 @@ def convert_file(file):
lines = re.sub(rf'([^"])\b{glib_type}\b([^"])', rf'\1{c99_type}\2', lines, flags=re.MULTILINE)
for glib_define, c99_define in definition_map.items():
lines = re.sub(rf'\b{glib_define}\b', rf'{c99_define}', lines, flags=re.MULTILINE)
+ for glib_tf_define, c99_define in tf_definition_map.items():
+ lines = re.sub(rf'\b{glib_tf_define}\b([^\'"])', rf'{c99_define}\1', lines, flags=re.MULTILINE)
for glib_fmt_spec, c99_fmt_spec in format_spec_map.items():
lines = re.sub(rf'\b{glib_fmt_spec}\b', rf'{c99_fmt_spec}', lines, flags=re.MULTILINE)
except IsADirectoryError:
diff --git a/tools/convert_expert_add_info_format.pl b/tools/convert_expert_add_info_format.pl
index 162032c7eb..0b0ddd3281 100755
--- a/tools/convert_expert_add_info_format.pl
+++ b/tools/convert_expert_add_info_format.pl
@@ -59,9 +59,10 @@ my %EXPERT_GROUPS = ('PI_CHECKSUM' => "PI_CHECKSUM",
'PI_COMMENTS_GROUP' => "PI_COMMENTS_GROUP",
'PI_DECRYPTION' => "PI_DECRYPTION",
'PI_ASSUMPTION' => "PI_ASSUMPTION",
- 'PI_DEPRECATED' => "PI_DEPRECATED");
- 'PI_RECEIVE' => "PI_RECEIVE");
- 'PI_INTERFACE' => "PI_INTERFACE");
+ 'PI_DEPRECATED' => "PI_DEPRECATED",
+ 'PI_RECEIVE' => "PI_RECEIVE",
+ 'PI_INTERFACE' => "PI_INTERFACE",
+ 'PI_DISSECTOR_BUG' => "PI_DISSECTOR_BUG");
my @expert_list;
my $protabbrev = "";
diff --git a/tools/convert_proto_tree_add_text.pl b/tools/convert_proto_tree_add_text.pl
index 5cba65a476..7e292ef686 100755
--- a/tools/convert_proto_tree_add_text.pl
+++ b/tools/convert_proto_tree_add_text.pl
@@ -97,9 +97,10 @@ my %EXPERT_GROUPS = ('PI_CHECKSUM' => "PI_CHECKSUM",
'PI_COMMENTS_GROUP' => "PI_COMMENTS_GROUP",
'PI_DECRYPTION' => "PI_DECRYPTION",
'PI_ASSUMPTION' => "PI_ASSUMPTION",
- 'PI_DEPRECATED' => "PI_DEPRECATED");
- 'PI_RECEIVE' => "PI_RECEIVE");
- 'PI_INTERFACE' => "PI_INTERFACE");
+ 'PI_DEPRECATED' => "PI_DEPRECATED",
+ 'PI_RECEIVE' => "PI_RECEIVE",
+ 'PI_INTERFACE' => "PI_INTERFACE",
+ 'PI_DISSECTOR_BUG' => "PI_DISSECTOR_BUG");
my @proto_tree_list;
my @expert_list;
diff --git a/tools/debian-setup.sh b/tools/debian-setup.sh
index f2d781133b..8fade5ac40 100755
--- a/tools/debian-setup.sh
+++ b/tools/debian-setup.sh
@@ -96,6 +96,7 @@ then
fi
BASIC_LIST="
+ cmake
flex
g++
gcc
@@ -174,19 +175,25 @@ ADDITIONAL_LIST="
ccache
doxygen
git
+ libbrotli-dev
libcap-dev
+ libgnutls28-dev
libkrb5-dev
- liblua5.3-dev
liblz4-dev
+ libmaxminddb-dev
libminizip-dev
+ libnghttp2-dev
libnl-3-dev
libnl-cli-3-dev
libopencore-amrnb-dev
+ libopus-dev
libparse-yapp-perl
libsbc-dev
+ libssh-gcrypt-dev
libsmi2-dev
libsnappy-dev
libspandsp-dev
+ libsystemd-dev
libxml2-dev
libzstd-dev
ninja-build
@@ -217,75 +224,34 @@ DEBDEPS_LIST="
"
TESTDEPS_LIST="
+ gdb
python3-pytest
python3-pytest-xdist
+ softhsm2
"
# apt-get update must be called before calling add_package
# otherwise available packages appear as unavailable
apt-get update || exit 2
-# cmake3 3.5.1: Ubuntu 14.04
-# cmake >= 3.5: Debian >= jessie-backports, Ubuntu >= 16.04
-add_package BASIC_LIST cmake3 ||
-BASIC_LIST="$BASIC_LIST cmake"
-
-# Debian >= wheezy-backports, Ubuntu >= 16.04
-add_package ADDITIONAL_LIST libnghttp2-dev ||
-echo "libnghttp2-dev is unavailable" >&2
+# Lua 5.4: Debian >= bullseye, Ubuntu >= 22.04 (jammy)
+# Lua 5.3: Debian >= buster, Ubuntu >= 20.04 (focal)
+add_package ADDITIONAL_LIST liblua5.4-dev ||
+ADDITIONAL_LIST="$ADDITIONAL_LIST liblua5.3-dev"
# Debian >= bookworm, Ubuntu >= 22.04
add_package ADDITIONAL_LIST libnghttp3-dev ||
echo "libnghttp3-dev is unavailable" >&2
-# libssh-gcrypt-dev: Debian >= jessie, Ubuntu >= 16.04
-# libssh-dev (>= 0.6): Debian >= jessie, Ubuntu >= 14.04
-add_package ADDITIONAL_LIST libssh-gcrypt-dev ||
-add_package ADDITIONAL_LIST libssh-dev ||
-echo "libssh-gcrypt-dev and libssh-dev are unavailable" >&2
-
-# libgnutls28-dev: Debian >= wheezy-backports, Ubuntu >= 12.04
-add_package ADDITIONAL_LIST libgnutls28-dev ||
-echo "libgnutls28-dev is unavailable" >&2
-
-# Debian >= jessie-backports, Ubuntu >= 16.04
-add_package ADDITIONAL_LIST libmaxminddb-dev ||
-echo "libmaxminddb-dev is unavailable" >&2
-
-# Debian >= stretch-backports, Ubuntu >= 16.04
-add_package ADDITIONAL_LIST libbrotli-dev ||
-echo "libbrotli-dev is unavailable" >&2
-
-# libsystemd-journal-dev: Ubuntu 14.04
-# libsystemd-dev: Ubuntu >= 16.04
-add_package ADDITIONAL_LIST libsystemd-dev ||
-add_package ADDITIONAL_LIST libsystemd-journal-dev ||
-echo "libsystemd-dev is unavailable"
-
# ilbc library from http://www.deb-multimedia.org
add_package ADDITIONAL_LIST libilbc-dev ||
echo "libilbc-dev is unavailable"
-# opus library libopus-dev
-add_package ADDITIONAL_LIST libopus-dev ||
- echo "libopus-dev is unavailable"
-
+# Debian >= bullseye, Ubuntu >= 22.04 (jammy)
# bcg729 library libbcg729-dev
add_package ADDITIONAL_LIST libbcg729-dev ||
echo "libbcg729-dev is unavailable"
-# softhsm2 2.0.0: Ubuntu 16.04
-# softhsm2 2.2.0: Debian >= jessie-backports, Ubuntu 18.04
-# softhsm2 >= 2.4.0: Debian >= buster, Ubuntu >= 18.10
-if ! add_package TESTDEPS_LIST softhsm2 '>= 2.3.0'; then
- if add_package TESTDEPS_LIST softhsm2; then
- # If SoftHSM 2.3.0 is unavailble, install p11tool.
- TESTDEPS_LIST="$TESTDEPS_LIST gnutls-bin"
- else
- echo "softhsm2 is unavailable" >&2
- fi
-fi
-
ACTUAL_LIST=$BASIC_LIST
# Now arrange for optional support libraries
diff --git a/tools/eti2wireshark.py b/tools/eti2wireshark.py
index 98fb291a19..a373d831b2 100755
--- a/tools/eti2wireshark.py
+++ b/tools/eti2wireshark.py
@@ -676,7 +676,7 @@ dissect_{proto}_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
print(f''' int uidx = tid2uidx[templateid - {min_templateid}];
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
''', file=o)
print(f''' int old_fidx = 0;
@@ -689,9 +689,9 @@ dissect_{proto}_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
proto_tree *t = root;
while (top) {{
DISSECTOR_ASSERT_CMPINT(fidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, (sizeof fields / sizeof fields[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)fidx), <, array_length(fields));
DISSECTOR_ASSERT_CMPINT(uidx, >=, 0);
- DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, (sizeof usages / sizeof usages[0]));
+ DISSECTOR_ASSERT_CMPUINT(((size_t)uidx), <, array_length(usages));
switch (fields[fidx].type) {{
case ETI_EOF:
@@ -713,7 +713,7 @@ dissect_{proto}_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
break;
case ETI_VAR_STRUCT:
case ETI_STRUCT:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
repeats = fields[fidx].type == ETI_VAR_STRUCT ? counter[fields[fidx].counter_off] : 1;
if (repeats) {{
--repeats;
@@ -754,14 +754,14 @@ dissect_{proto}_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
++uidx;
break;
case ETI_VAR_STRING:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
proto_tree_add_item(t, hf_{proto}[fields[fidx].field_handle_idx], tvb, off, counter[fields[fidx].counter_off], ENC_ASCII);
off += counter[fields[fidx].counter_off];
++fidx;
++uidx;
break;
case ETI_COUNTER:
- DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, sizeof counter / sizeof counter[0]);
+ DISSECTOR_ASSERT_CMPUINT(fields[fidx].counter_off, <, array_length(counter));
DISSECTOR_ASSERT_CMPUINT(fields[fidx].size, <=, 2);
{{
switch (fields[fidx].size) {{
@@ -1014,7 +1014,7 @@ proto_reg_handoff_{proto}(void)
56500, // Snapshot Boerse Frankfurt SIMU
56501 // Incremental Boerse Frankfurt SIMU
}};
- for (unsigned i = 0; i < sizeof ports / sizeof ports[0]; ++i)
+ for (unsigned i = 0; i < array_length(ports); ++i)
dissector_add_uint("udp.port", ports[i], {proto}_handle);''', file=o)
print('}', file=o)
diff --git a/tools/fuzz-test.sh b/tools/fuzz-test.sh
index 3a03b5c3c0..110a2820f6 100755
--- a/tools/fuzz-test.sh
+++ b/tools/fuzz-test.sh
@@ -304,7 +304,7 @@ while { [ $PASS -lt "$MAX_PASSES" ] || [ "$MAX_PASSES" -lt 1 ]; } && ! $DONE ; d
fi
fi
- if ! $DONE && { [ $RUNNER_RETVAL -ne 0 ] || [ $DISSECTOR_BUG -ne 0 ] || [ $VG_ERR_CNT -ne 0 ]; } ; then
+ if ! $DONE && { [ $RUNNER_RETVAL -ne 0 ] || [ $DISSECTOR_BUG -ne 0 ] || [ "$VG_ERR_CNT" -ne 0 ]; } ; then
# shellcheck disable=SC2086
rm -f $RUNNER_ERR_FILES
ws_exit_error
diff --git a/tools/generate-nl80211-fields.py b/tools/generate-nl80211-fields.py
index d408ee7623..578e7b85bc 100755
--- a/tools/generate-nl80211-fields.py
+++ b/tools/generate-nl80211-fields.py
@@ -169,7 +169,7 @@ def remove_prefix(prefix, text):
return text
def make_hf_defs(name, indent):
- code = 'static gint hf_%s;' % name
+ code = 'static int hf_%s;' % name
return code
def make_hf(name, indent):
@@ -202,7 +202,7 @@ def make_hf(name, indent):
return code
def make_ett_defs(name, indent):
- code = 'static gint ett_%s;' % name
+ code = 'static int ett_%s;' % name
return code
def make_ett(name, indent):
diff --git a/tools/macos-setup-brew.sh b/tools/macos-setup-brew.sh
index 4d0a6d6e25..576ce2c2f4 100755
--- a/tools/macos-setup-brew.sh
+++ b/tools/macos-setup-brew.sh
@@ -23,6 +23,7 @@ function print_usage() {
printf "\\t--install-dmg-deps: install packages required to build the .dmg file\\n"
printf "\\t--install-sparkle-deps: install the Sparkle automatic updater\\n"
printf "\\t--install-all: install everything\\n"
+ printf "\\t--install-logray: install everything to compile Logray and falco bridge\\n"
printf "\\t[other]: other options are passed as-is to apt\\n"
}
@@ -46,6 +47,7 @@ INSTALL_DOC_DEPS=0
INSTALL_DMG_DEPS=0
INSTALL_SPARKLE_DEPS=0
INSTALL_TEST_DEPS=0
+INSTALL_LOGRAY=0
OPTIONS=()
for arg; do
case $arg in
@@ -68,6 +70,9 @@ for arg; do
--install-test-deps)
INSTALL_TEST_DEPS=1
;;
+ --install-logray)
+ INSTALL_LOGRAY=1
+ ;;
--install-all)
INSTALL_OPTIONAL=1
INSTALL_DOC_DEPS=1
@@ -124,6 +129,12 @@ DOC_DEPS_LIST=(
docbook-xsl
)
+LOGRAY_LIST=(
+ jsoncpp
+ onetbb
+ re2
+)
+
ACTUAL_LIST=( "${BUILD_LIST[@]}" "${REQUIRED_LIST[@]}" )
# Now arrange for optional support libraries
@@ -135,6 +146,10 @@ if [ $INSTALL_DOC_DEPS -ne 0 ] ; then
ACTUAL_LIST+=( "${DOC_DEPS_LIST[@]}" )
fi
+if [ $INSTALL_LOGRAY -ne 0 ] ; then
+ ACTUAL_LIST+=( "${LOGRAY_LIST[@]}" )
+fi
+
if (( ${#OPTIONS[@]} != 0 )); then
ACTUAL_LIST+=( "${OPTIONS[@]}" )
fi
@@ -155,6 +170,28 @@ if [ $INSTALL_TEST_DEPS -ne 0 ] ; then
# pip3 install pytest pytest-xdist
fi
+if [ $INSTALL_LOGRAY -ne 0 ] ; then
+ FALCO_LIBS_VERSION=0.14.3
+ if [ "$FALCO_LIBS_VERSION" ] && [ ! -f "falco-libs-$FALCO_LIBS_VERSION-done" ] ; then
+ echo "Downloading, building, and installing libsinsp and libscap:"
+ [ -f "falco-libs-$FALCO_LIBS_VERSION.tar.gz" ] || curl -L -O --remote-header-name "https://github.com/falcosecurity/libs/archive/refs/tags/$FALCO_LIBS_VERSION.tar.gz"
+ mv "libs-$FALCO_LIBS_VERSION.tar.gz" "falco-libs-$FALCO_LIBS_VERSION.tar.gz"
+ tar -xf "falco-libs-$FALCO_LIBS_VERSION.tar.gz"
+ mv "libs-$FALCO_LIBS_VERSION" "falco-libs-$FALCO_LIBS_VERSION"
+ cd "falco-libs-$FALCO_LIBS_VERSION"
+ patch -p1 < "../tools/macos-setup-patches/falco-uthash_h-install.patch"
+ mkdir build_dir
+ cd build_dir
+ cmake -DBUILD_SHARED_LIBS=ON -DMINIMAL_BUILD=ON -DCREATE_TEST_TARGETS=OFF \
+ -DUSE_BUNDLED_DEPS=ON -DUSE_BUNDLED_CARES=OFF -DUSE_BUNDLED_ZLIB=OFF \
+ -DUSE_BUNDLED_JSONCPP=OFF -DUSE_BUNDLED_TBB=OFF -DUSE_BUNDLED_RE2=OFF \
+ ..
+ make
+ sudo make install
+ cd ../..
+ fi
+fi
+
# Uncomment to add PNG compression utilities used by compress-pngs:
# brew install advancecomp optipng oxipng pngcrush
diff --git a/tools/macos-setup-patches/falco-uthash_h-install.patch b/tools/macos-setup-patches/falco-uthash_h-install.patch
new file mode 100644
index 0000000000..de818ffd0a
--- /dev/null
+++ b/tools/macos-setup-patches/falco-uthash_h-install.patch
@@ -0,0 +1,9 @@
+--- falco-libs-0.14.1/cmake/modules/libscap.cmake.orig 2024-03-25 22:46:40
++++ falco-libs-0.14.1/cmake/modules/libscap.cmake 2024-03-25 22:46:10
+@@ -139,5 +139,6 @@
+ FILES_MATCHING PATTERN "*.h")
+ install(FILES ${PROJECT_BINARY_DIR}/libscap/scap_config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${LIBS_PACKAGE_NAME}/userspace/libscap)
+ install(FILES ${PROJECT_BINARY_DIR}/libscap/scap_strl_config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${LIBS_PACKAGE_NAME}/userspace/libscap)
++install(FILES ${PROJECT_BINARY_DIR}/uthash-prefix/src/uthash/src/uthash.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${LIBS_PACKAGE_NAME}/userspace/libscap)
+ install(FILES ${PROJECT_BINARY_DIR}/libscap/libscap.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ endif()
diff --git a/tools/macos-setup.sh b/tools/macos-setup.sh
index 511377c2f6..792a7608b9 100755
--- a/tools/macos-setup.sh
+++ b/tools/macos-setup.sh
@@ -65,12 +65,15 @@ fi
# XXX: tar, since macOS 10.9, can uncompress xz'ed tarballs,
# so perhaps we could get rid of this now?
#
-XZ_VERSION=5.2.5
-
+# DO NOT UPDATE THIS TO A COMPROMISED VERSION; see
+#
+# https://www.openwall.com/lists/oss-security/2024/03/29/4
#
-# Some packages need lzip to unpack their current source.
+# https://access.redhat.com/security/cve/CVE-2024-3094
#
-LZIP_VERSION=1.21
+# https://nvd.nist.gov/vuln/detail/CVE-2024-3094
+#
+XZ_VERSION=5.2.5
#
# CMake is required to do the build - and to build some of the
@@ -83,12 +86,13 @@ CMAKE_VERSION=${CMAKE_VERSION-3.21.4}
# claimed to build faster than make.
# Comment it out if you don't want it.
#
-NINJA_VERSION=${NINJA_VERSION-1.10.2}
+NINJA_VERSION=${NINJA_VERSION-1.12.1}
+NINJA_SHA256=89a287444b5b3e98f88a945afa50ce937b8ffd1dcc59c555ad9b1baf855298c9
#
# The following libraries and tools are required even to build only TShark.
#
-GETTEXT_VERSION=0.21
+GETTEXT_VERSION=0.22.5
GLIB_VERSION=2.76.6
if [ "$GLIB_VERSION" ]; then
GLIB_MAJOR_VERSION="$( expr $GLIB_VERSION : '\([0-9][0-9]*\).*' )"
@@ -138,7 +142,8 @@ fi
# the optional libraries are required by other optional libraries.
#
LIBSMI_VERSION=0.4.8
-GNUTLS_VERSION=3.8.3
+GNUTLS_VERSION=3.8.4
+GNUTLS_SHA256=2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b
if [ "$GNUTLS_VERSION" ]; then
#
# We'll be building GnuTLS, so we may need some additional libraries.
@@ -188,6 +193,8 @@ fi
BCG729_VERSION=1.1.1
# libilbc 3.0.0 & later link with absiel, which is released under Apache 2.0
ILBC_VERSION=2.0.2
+OPENCORE_AMR_VERSION=0.1.6
+OPENCORE_AMR_SHA256=483eb4061088e2b34b358e47540b5d495a96cd468e361050fae615b1809dc4a1
OPUS_VERSION=1.4
# Falco libs (libsinsp and libscap) and their dependencies. Unset for now.
@@ -319,21 +326,6 @@ uninstall_xz() {
fi
}
-install_lzip() {
- if [ "$LZIP_VERSION" -a ! -f lzip-$LZIP_VERSION-done ] ; then
- echo "Downloading, building, and installing lzip:"
- [ -f lzip-$LZIP_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://download.savannah.gnu.org/releases/lzip/lzip-$LZIP_VERSION.tar.gz
- $no_build && echo "Skipping installation" && return
- gzcat lzip-$LZIP_VERSION.tar.gz | tar xf -
- cd lzip-$LZIP_VERSION
- ./configure "${CONFIGURE_OPTS[@]}"
- make "${MAKE_BUILD_OPTS[@]}"
- $DO_MAKE_INSTALL
- cd ..
- touch lzip-$LZIP_VERSION-done
- fi
-}
-
uninstall_lzip() {
if [ -n "$installed_lzip_version" ] ; then
echo "Uninstalling lzip:"
@@ -536,17 +528,18 @@ uninstall_libtool() {
}
install_ninja() {
- if [ "$NINJA_VERSION" -a ! -f ninja-$NINJA_VERSION-done ] ; then
+ if [ "$NINJA_VERSION" ] && [ ! -f "ninja-$NINJA_VERSION-done" ] ; then
echo "Downloading and installing Ninja:"
#
# Download the zipball, unpack it, and move the binary to
# $installation_prefix/bin.
#
- [ -f ninja-mac-v$NINJA_VERSION.zip ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" ninja-mac-v$NINJA_VERSION.zip https://github.com/ninja-build/ninja/releases/download/v$NINJA_VERSION/ninja-mac.zip
+ [ -f "ninja-mac-v$NINJA_VERSION.zip" ] || curl "${CURL_LOCAL_NAME_OPTS[@]}" "ninja-mac-v$NINJA_VERSION.zip" https://github.com/ninja-build/ninja/releases/download/v$NINJA_VERSION/ninja-mac.zip
+ echo "$NINJA_SHA256 ninja-mac-v$NINJA_VERSION.zip" | shasum --algorithm 256 --check
$no_build && echo "Skipping installation" && return
- unzip ninja-mac-v$NINJA_VERSION.zip
+ unzip "ninja-mac-v$NINJA_VERSION.zip"
sudo mv ninja "$installation_prefix/bin"
- touch ninja-$NINJA_VERSION-done
+ touch "ninja-$NINJA_VERSION-done"
fi
}
@@ -554,9 +547,9 @@ uninstall_ninja() {
if [ -n "$installed_ninja_version" ]; then
echo "Uninstalling Ninja:"
$DO_RM "$installation_prefix/bin/ninja"
- rm ninja-$installed_ninja_version-done
- if [ "$#" -eq 1 -a "$1" = "-r" ] ; then
- rm -f ninja-mac-v$installed_ninja_version.zip
+ rm "ninja-$installed_ninja_version-done"
+ if [ "$#" -eq 1 ] && [ "$1" = "-r" ] ; then
+ rm -f "ninja-mac-v$installed_ninja_version.zip"
fi
installed_ninja_version=""
@@ -780,110 +773,8 @@ install_gettext() {
$no_build && echo "Skipping installation" && return
gzcat gettext-$GETTEXT_VERSION.tar.gz | tar xf -
cd gettext-$GETTEXT_VERSION
-
- #
- # This is annoying.
- #
- # GNU gettext's configuration script checks for the presence of an
- # implementation of iconv(). Not only does it check whether iconv()
- # is available, *but* it checks for certain behavior *not* specified
- # by POSIX that the GNU implementation provides, namely that an
- # attempt to convert the UTF-8 for the EURO SYMBOL chaaracter to
- # ISO 8859-1 results in an error.
- #
- # macOS, prior to Sierra, provided the GNU iconv library (as it's
- # a POSIX API).
- #
- # Sierra appears to have picked up an implementation from FreeBSD
- # (that implementation originated with the CITRUS project:
- #
- # http://citrus.bsdclub.org
- #
- # with additional work done to integrate it into NetBSD, and then
- # adopted by FreeBSD with further work done).
- #
- # That implementation does *NOT* return an error in that case; instead,
- # it transliterates the EURO SYMBOL to "EUR".
- #
- # Both behaviors conform to POSIX.
- #
- # This causes GNU gettext's configure script to conclude that it
- # should not say iconv() is available. That, unfortunately, causes
- # the build to fail with a linking error when trying to build
- # libtextstyle (a library for which we have no use, that is offered
- # as a separate library by the GNU project:
- #
- # https://www.gnu.org/software/gettext/libtextstyle/manual/libtextstyle.html
- #
- # and that is presumably bundled in GNU gettext because some gettext
- # tool depends on it). The failure appears to be due to:
- #
- # libtextstyle's exported symbols file is generated from a
- # template and a script that passes through only symbols
- # that appear in a header file that declares the symbol
- # as extern;
- #
- # one such header file declares iconv_ostream_create, but only
- # if HAVE_ICONV is defined.
- #
- # the source file that defines iconv_ostream_create does so
- # only if HAVE_ICONV is defined;
- #
- # the aforementioned script pays *NO ATTENTION* to #ifdefs,
- # so it will include iconv_ostream_create in the list of
- # symbols to export regardless of whether a working iconv()
- # was found;
- #
- # the linker failing because it was told to export a symbol
- # that doesn't exist.
- #
- # This is a collection of multiple messes:
- #
- # 1) not all versions of iconv() defaulting to "return an error
- # if the target character set doesn't have a character that
- # corresponds to the source character" and not offering a way
- # to force that behavior;
- #
- # 2) either some parts of GNU gettext - and libraries bundled
- # with it, for some mysterious reason - depending on the GNU
- # behavior rather than assuming only what POSIX specifies, and
- # the configure script checking for the GNU behavior and not
- # setting HAVE_ICONV if it's not found;
- #
- # 3) the process for building the exported symbols file not
- # removing symbols that won't exist in the build due to
- # a "working" iconv() not being found;
- #
- # 4) the file that would define iconv_ostream_create() not
- # defining as an always-failing stub if HAVE_ICONV isn't
- # defined;
- #
- # 5) macOS's linker failing if a symbol is specified in an
- # exported symbols file but not found, while other linkers
- # just ignore it? (I add this because I'm a bit surprised
- # that this has not been fixed, as I suspect it would fail
- # on FreeBSD and possibly NetBSD as well, as I think their
- # iconv()s also default to transliterating rather than failing
- # if an input character has no corresponding character in
- # the output encoding.)
- #
- # The Homebrew folks are aware of this and have reported it to
- # Apple as a "feedback", for what that's worth:
- #
- # https://github.com/Homebrew/homebrew-core/commit/af3b4da5a096db3d9ee885e99ed29b33dec1f1c4
- #
- # We adopt their fix, which is to run the configure script with
- # "am_cv_func_iconv_works=y" as one of the arguments if it's
- # running on Sonoma; in at least one test, doing so on Ventura
- # caused the build to fail.
- #
- if [[ $DARWIN_MAJOR_VERSION -ge 23 ]]; then
- workaround_arg="am_cv_func_iconv_works=y"
- else
- workaround_arg=
- fi
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=0 $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \
- ./configure "${CONFIGURE_OPTS[@]}" $workaround_arg
+ ./configure "${CONFIGURE_OPTS[@]}"
make "${MAKE_BUILD_OPTS[@]}"
$DO_MAKE_INSTALL
cd ..
@@ -924,7 +815,7 @@ install_pkg_config() {
$no_build && echo "Skipping installation" && return
gzcat pkg-config-$PKG_CONFIG_VERSION.tar.gz | tar xf -
cd pkg-config-$PKG_CONFIG_VERSION
- ./configure "${CONFIGURE_OPTS[@]}" --with-internal-glib
+ CFLAGS="$CFLAGS -Wno-int-conversion" ./configure "${CONFIGURE_OPTS[@]}" --with-internal-glib
make "${MAKE_BUILD_OPTS[@]}"
$DO_MAKE_INSTALL
cd ..
@@ -1464,9 +1355,9 @@ uninstall_libgcrypt() {
install_gmp() {
if [ "$GMP_VERSION" ] && [ ! -f "gmp-$GMP_VERSION-done" ] ; then
echo "Downloading, building, and installing GMP:"
- [ -f "gmp-$GMP_VERSION.tar.lz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://gmplib.org/download/gmp/gmp-$GMP_VERSION.tar.lz
+ [ -f "gmp-$GMP_VERSION.tar.xz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://gmplib.org/download/gmp/gmp-$GMP_VERSION.tar.xz
$no_build && echo "Skipping installation" && return
- lzip -c -d "gmp-$GMP_VERSION.tar.lz" | tar xf -
+ xzcat "gmp-$GMP_VERSION.tar.xz" | tar xf -
cd "gmp-$GMP_VERSION"
#
# Create a fat binary: https://gmplib.org/manual/Notes-for-Package-Builds.html
@@ -1519,7 +1410,7 @@ uninstall_gmp() {
# Get rid of the previously downloaded and unpacked version.
#
rm -rf "gmp-$installed_gmp_version"
- rm -rf "gmp-$installed_gmp_version.tar.lz"
+ rm -rf "gmp-$installed_gmp_version.tar.xz"
fi
installed_gmp_version=""
@@ -1529,7 +1420,7 @@ uninstall_gmp() {
install_libtasn1() {
if [ "$LIBTASN1_VERSION" ] && [ ! -f "libtasn1-$LIBTASN1_VERSION-done" ] ; then
echo "Downloading, building, and installing libtasn1:"
- [ -f "libtasn1-$LIBTASN1_VERSION.tar.gz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://ftpmirror.gnu.org/libtasn1/libtasn1-$LIBTASN1_VERSION.tar.gz"
+ [ -f "libtasn1-$LIBTASN1_VERSION.tar.gz" ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://ftp.gnu.org/gnu/libtasn1/libtasn1-$LIBTASN1_VERSION.tar.gz"
$no_build && echo "Skipping installation" && return
gzcat "libtasn1-$LIBTASN1_VERSION.tar.gz" | tar xf -
cd "libtasn1-$LIBTASN1_VERSION"
@@ -1679,20 +1570,10 @@ install_gnutls() {
fi
echo "Downloading, building, and installing GnuTLS:"
- if [[ $GNUTLS_MAJOR_VERSION -ge 3 ]]
- then
- #
- # Starting with GnuTLS 3.x, the tarballs are compressed with
- # xz rather than bzip2.
- #
- [ -f gnutls-$GNUTLS_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://www.gnupg.org/ftp/gcrypt/gnutls/v$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION/gnutls-$GNUTLS_VERSION.tar.xz"
- $no_build && echo "Skipping installation" && return
- xzcat gnutls-$GNUTLS_VERSION.tar.xz | tar xf -
- else
- [ -f gnutls-$GNUTLS_VERSION.tar.bz2 ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://www.gnupg.org/ftp/gcrypt/gnutls/v$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION/gnutls-$GNUTLS_VERSION.tar.bz2"
- $no_build && echo "Skipping installation" && return
- bzcat gnutls-$GNUTLS_VERSION.tar.bz2 | tar xf -
- fi
+ [ -f gnutls-$GNUTLS_VERSION.tar.xz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" "https://www.gnupg.org/ftp/gcrypt/gnutls/v$GNUTLS_MAJOR_VERSION.$GNUTLS_MINOR_VERSION/gnutls-$GNUTLS_VERSION.tar.xz"
+ echo "$GNUTLS_SHA256 gnutls-$GNUTLS_VERSION.tar.xz" | shasum --algorithm 256 --check
+ $no_build && echo "Skipping installation" && return
+ tar -xf gnutls-$GNUTLS_VERSION.tar.xz
cd gnutls-$GNUTLS_VERSION
CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \
./configure "${CONFIGURE_OPTS[@]}" --with-included-unistring --disable-guile
@@ -2461,6 +2342,44 @@ uninstall_ilbc() {
fi
}
+install_opencore_amr() {
+ if [ "$OPENCORE_AMR_VERSION" ] && [ ! -f opencore-amr-$OPENCORE_AMR_VERSION-done ] ; then
+ echo "Downloading, building, and installing opencore-amr:"
+ [ -f opencore-amr-$OPENCORE_AMR_VERSION.tar.gz ] || curl "${CURL_REMOTE_NAME_OPTS[@]}" https://downloads.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-$OPENCORE_AMR_VERSION.tar.gz
+ echo "$OPENCORE_AMR_SHA256 opencore-amr-$OPENCORE_AMR_VERSION.tar.gz" | shasum --algorithm 256 --check
+ $no_build && echo "Skipping installation" && return
+ tar -xf opencore-amr-$OPENCORE_AMR_VERSION.tar.gz
+ cd opencore-amr-$OPENCORE_AMR_VERSION
+ CFLAGS="$CFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" CXXFLAGS="$CXXFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" LDFLAGS="$LDFLAGS $VERSION_MIN_FLAGS $SDKFLAGS" \
+ ./configure "${CONFIGURE_OPTS[@]}"
+ make "${MAKE_BUILD_OPTS[@]}"
+ $DO_MAKE_INSTALL
+ cd ..
+ touch opencore-amr-$OPENCORE_AMR_VERSION-done
+ fi
+}
+
+uninstall_opencore_amr() {
+ if [ -n "$installed_opencore_amr_version" ] ; then
+ echo "Uninstalling opencore-amr:"
+ cd "opencore-amr-$installed_opencore_amr_version"
+ $DO_MAKE_UNINSTALL
+ make distclean
+ cd ..
+ rm "opencore-amr-$installed_opencore_amr_version-done"
+
+ if [ "$#" -eq 1 ] && [ "$1" = "-r" ] ; then
+ #
+ # Get rid of the previously downloaded and unpacked version.
+ #
+ rm -rf "opencore-amr-$installed_opencore_amr_version"
+ rm -rf "opencore-amr-$installed_opencore_amr_version.tar.gz"
+ fi
+
+ installed_opencore_amr_version=""
+ fi
+}
+
install_opus() {
if [ "$OPUS_VERSION" -a ! -f opus-$OPUS_VERSION-done ] ; then
echo "Downloading, building, and installing opus:"
@@ -2612,6 +2531,7 @@ install_falco_libs() {
tar -xf "falco-libs-$FALCO_LIBS_VERSION.tar.gz"
mv "libs-$FALCO_LIBS_VERSION" "falco-libs-$FALCO_LIBS_VERSION"
cd "falco-libs-$FALCO_LIBS_VERSION"
+ patch -p1 < "${topdir}/tools/macos-setup-patches/falco-uthash_h-install.patch"
mkdir build_dir
cd build_dir
"${DO_CMAKE[@]}" -DBUILD_SHARED_LIBS=ON -DMINIMAL_BUILD=ON -DCREATE_TEST_TARGETS=OFF \
@@ -2620,9 +2540,6 @@ install_falco_libs() {
..
make "${MAKE_BUILD_OPTS[@]}"
$DO_MAKE_INSTALL
- # Falco libs doesn't install uthash.
- curl "${CURL_REMOTE_NAME_OPTS[@]}" https://raw.githubusercontent.com/troydhanson/uthash/v1.9.8/src/uthash.h
- $DO_MV uthash.h "$installation_prefix"/include/falcosecurity/
cd ../..
touch "falco-libs-$FALCO_LIBS_VERSION-done"
fi
@@ -2780,7 +2697,7 @@ install_minizip() {
# support "make install", "make uninstall", or "make distclean",
# and with a Makefile.am file that, if we do an autoreconf,
# gives us a configure script, and a Makefile.in that, if we run
- # the configure script, gives us a Makefile that supports ll of
+ # the configure script, gives us a Makefile that supports all of
# those targets, and that installs a pkg-config .pc file for
# minizip.
#
@@ -2897,6 +2814,17 @@ install_all() {
uninstall_ilbc -r
fi
+ if [ -n "$installed_opencore_amr_version" ] \
+ && [ "$installed_opencore_amr_version" != "$OPENCORE_AMR_VERSION" ] ; then
+ echo "Installed opencore-amr version is $installed_opencore_amr_version"
+ if [ -z "$OPENCORE_AMR_VERSION" ] ; then
+ echo "opencore-amr is not requested"
+ else
+ echo "Requested opencore-amr version is $OPENCORE_AMR_VERSION"
+ fi
+ uninstall_opencore_amr -r
+ fi
+
if [ -n "$installed_opus_version" ] \
&& [ "$installed_opus_version" != "$OPUS_VERSION" ] ; then
echo "Installed opus version is $installed_opus_version"
@@ -3294,14 +3222,8 @@ install_all() {
uninstall_pcre2 -r
fi
- if [ -n "$installed_lzip_version" -a \
- "$installed_lzip_version" != "$LZIP_VERSION" ] ; then
- echo "Installed lzip version is $installed_lzip_version"
- if [ -z "$LZIP_VERSION" ] ; then
- echo "lzip is not requested"
- else
- echo "Requested lzip version is $LZIP_VERSION"
- fi
+ if [ -n "$installed_lzip_version" ] ; then
+ echo "Removing legacy install of lzip"
uninstall_lzip -r
fi
@@ -3399,8 +3321,6 @@ install_all() {
#
install_xz
- install_lzip
-
install_autoconf
install_automake
@@ -3517,6 +3437,8 @@ install_all() {
install_ilbc
+ install_opencore_amr
+
install_opus
install_brotli
@@ -3564,6 +3486,8 @@ uninstall_all() {
uninstall_opus
+ uninstall_opencore_amr
+
uninstall_ilbc
uninstall_bcg729
@@ -3647,6 +3571,7 @@ uninstall_all() {
uninstall_pcre
+ # Legacy, remove
uninstall_lzip
uninstall_xz
@@ -3846,6 +3771,7 @@ then
installed_speexdsp_version=$( ls speexdsp-*-done 2>/dev/null | sed 's/speexdsp-\(.*\)-done/\1/' )
installed_bcg729_version=$( ls bcg729-*-done 2>/dev/null | sed 's/bcg729-\(.*\)-done/\1/' )
installed_ilbc_version=$( ls ilbc-*-done 2>/dev/null | sed 's/ilbc-\(.*\)-done/\1/' )
+ installed_opencore_amr_version=$( ls opencore-amr-*-done 2>/dev/null | sed 's/opencore-amr-\(.*\)-done/\1/' )
installed_opus_version=$( ls opus-*-done 2>/dev/null | sed 's/opus-\(.*\)-done/\1/' )
installed_python3_version=$( ls python3-*-done 2>/dev/null | sed 's/python3-\(.*\)-done/\1/' )
installed_brotli_version=$( ls brotli-*-done 2>/dev/null | sed 's/brotli-\(.*\)-done/\1/' )
diff --git a/tools/make-packet-dcm.py b/tools/make-packet-dcm.py
index 8193965a15..d122dbff9f 100755
--- a/tools/make-packet-dcm.py
+++ b/tools/make-packet-dcm.py
@@ -172,7 +172,7 @@ extern "C" {
""" + "\n".join(f"#define DCM_VR_{vr[0]} {i:2d} /* {vr[1]:25s} */" for i,vr in vrs.items()) + """
/* Following must be in the same order as the definitions above */
-static const gchar* dcm_tag_vr_lookup[] = {
+static const char* dcm_tag_vr_lookup[] = {
" ",
""" + ",\n ".join(",".join(f'"{x[1][0]}"' for x in j[1]) for j in itertools.groupby(vrs.items(), lambda i: (i[0]-1)//8)) + """
};
@@ -192,12 +192,12 @@ static const gchar* dcm_tag_vr_lookup[] = {
*/
typedef struct dcm_tag {
- const guint32 tag;
- const gchar *description;
- const gchar *vr;
- const gchar *vm;
- const gboolean is_retired;
- const gboolean add_to_summary; /* Add to parent's item description */
+ const uint32_t tag;
+ const char *description;
+ const char *vr;
+ const char *vm;
+ const bool is_retired;
+ const bool add_to_summary; /* Add to parent's item description */
} dcm_tag_t;
static dcm_tag_t const dcm_tag_data[] = {
@@ -229,9 +229,9 @@ static dcm_tag_t const dcm_tag_data[] = {
*/
typedef struct dcm_uid {
- const gchar *value;
- const gchar *name;
- const gchar *type;
+ const char *value;
+ const char *name;
+ const char *type;
} dcm_uid_t;
""" + "\n".join(f'#define {uid_define_name(uid)} "{uid[0]}"'
diff --git a/tools/make-pci-ids.py b/tools/make-pci-ids.py
index 554fcb4d63..0aadef148e 100755
--- a/tools/make-pci-ids.py
+++ b/tools/make-pci-ids.py
@@ -37,6 +37,8 @@ CODE_PREFIX = """\
#include <stddef.h>
#include <stdlib.h>
+#include "wsutil/array.h"
+
#include "pci-ids.h"
typedef struct
@@ -73,7 +75,7 @@ const char *pci_id_str(uint16_t vid, uint16_t did, uint16_t svid, uint16_t ssid)
pci_vid_index_t const *index_ptr;
pci_id_t const *ids_ptr;
- index_ptr = bsearch(&vid, pci_vid_index, sizeof pci_vid_index / sizeof pci_vid_index[0], sizeof pci_vid_index[0], vid_search);
+ index_ptr = bsearch(&vid, pci_vid_index, array_length(pci_vid_index), sizeof pci_vid_index[0], vid_search);
if(index_ptr == NULL)
return not_found;
diff --git a/tools/make-plugin-reg.py b/tools/make-plugin-reg.py
index e064c0a15d..cd2de2f21d 100755
--- a/tools/make-plugin-reg.py
+++ b/tools/make-plugin-reg.py
@@ -19,17 +19,9 @@ srcdir = sys.argv[1]
#
registertype = sys.argv[2]
#
-# The third argument is the plugin short description
-#
-plugin_blurb = sys.argv[3]
-#
-# The fourth argument is the plugin minimum api level
-#
-min_api_level = sys.argv[4]
-#
# All subsequent arguments are the files to scan.
#
-files = sys.argv[5:]
+files = sys.argv[3:]
final_filename = "plugin.c"
preamble = """\
@@ -148,11 +140,29 @@ for symbol in regs['codec_register']:
for symbol in regs['register_tap_listener']:
reg_code += "void register_tap_listener_%s(void);\n" % (symbol)
+DESCRIPTION_FLAG = {
+ 'plugin': 'WS_PLUGIN_DESC_DISSECTOR',
+ 'plugin_wtap': 'WS_PLUGIN_DESC_FILE_TYPE',
+ 'plugin_codec': 'WS_PLUGIN_DESC_CODEC',
+ 'plugin_tap': 'WS_PLUGIN_DESC_TAP_LISTENER'
+}
+
reg_code += """
-static void
-plugin_register(void)
+WS_DLL_PUBLIC_DEF const gchar plugin_version[] = PLUGIN_VERSION;
+WS_DLL_PUBLIC_DEF const int plugin_want_major = VERSION_MAJOR;
+WS_DLL_PUBLIC_DEF const int plugin_want_minor = VERSION_MINOR;
+
+WS_DLL_PUBLIC void plugin_register(void);
+WS_DLL_PUBLIC uint32_t plugin_describe(void);
+
+uint32_t plugin_describe(void)
{
-"""
+ return %s;
+}
+
+void plugin_register(void)
+{
+""" % DESCRIPTION_FLAG[registertype]
if registertype == "plugin":
for symbol in regs['proto_reg']:
@@ -181,33 +191,6 @@ if registertype == "plugin_tap":
reg_code += "}\n"
-DESCRIPTION_FLAG = {
- 'plugin': 'WS_PLUGIN_DESC_DISSECTOR',
- 'plugin_wtap': 'WS_PLUGIN_DESC_FILE_TYPE',
- 'plugin_codec': 'WS_PLUGIN_DESC_CODEC',
- 'plugin_tap': 'WS_PLUGIN_DESC_TAP_LISTENER'
-}
-
-PLUGIN_REGISTER = {
- 'plugin': 'WIRESHARK_PLUGIN_REGISTER_EPAN',
- 'plugin_wtap': 'WIRESHARK_PLUGIN_REGISTER_WIRETAP',
- 'plugin_codec': 'WIRESHARK_PLUGIN_REGISTER_CODEC',
- 'plugin_tap': 'WIRESHARK_PLUGIN_REGISTER_EPAN'
-}
-
-reg_code += """
-static struct ws_module module = {
- .flags = %s,
- .version = PLUGIN_VERSION,
- .spdx_id = WS_PLUGIN_SPDX_GPLv2,
- .home_url = WS_PLUGIN_GITLAB_URL,
- .blurb = "%s",
- .register_cb = &plugin_register,
-};
-
-%s(&module, %s)
-""" % (DESCRIPTION_FLAG[registertype], plugin_blurb, PLUGIN_REGISTER[registertype], min_api_level)
-
try:
fh = open(final_filename, 'w')
fh.write(reg_code)
diff --git a/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm b/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm
index ada8dd6695..3e410eccff 100644
--- a/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm
+++ b/tools/pidl/lib/Parse/Pidl/Wireshark/NDR.pm
@@ -1230,7 +1230,7 @@ sub DumpEttDeclaration
my ($ett) = @_;
my $res = "\n/* Ett declarations */\n";
foreach (@$ett) {
- $res .= "static gint $_ = -1;\n";
+ $res .= "static gint $_;\n";
}
return "$res\n";
@@ -1296,7 +1296,7 @@ sub DumpHfDeclaration($)
foreach (sort(keys %{$self->{conformance}->{header_fields}}))
{
- $res .= "static gint $_ = -1;\n";
+ $res .= "static gint $_;\n";
}
return "$res\n";
@@ -1339,7 +1339,7 @@ sub DumpFunctionTable($)
{
my $if = shift;
- my $res = "static dcerpc_sub_dissector $if->{NAME}\_dissectors[] = {\n";
+ my $res = "static const dcerpc_sub_dissector $if->{NAME}\_dissectors[] = {\n";
foreach (@{$if->{FUNCTIONS}}) {
my $fn_name = $_->{NAME};
$fn_name =~ s/^$if->{NAME}_//;
diff --git a/tools/pidl/tests/wireshark-ndr.pl b/tools/pidl/tests/wireshark-ndr.pl
index fd2fa55357..04fa820a9d 100755
--- a/tools/pidl/tests/wireshark-ndr.pl
+++ b/tools/pidl/tests/wireshark-ndr.pl
@@ -241,7 +241,7 @@ static gint hf_bla;
is(DumpFunctionTable({
NAME => "someif",
FUNCTIONS => [ { NAME => "fn1", OPNUM => 3 }, { NAME => "someif_fn2", OPNUM => 2 } ] }),
-'static dcerpc_sub_dissector someif_dissectors[] = {
+'static const dcerpc_sub_dissector someif_dissectors[] = {
{ 3, "fn1",
someif_dissect_fn1_request, someif_dissect_fn1_response},
{ 2, "fn2",
diff --git a/tools/randpkt-test.sh b/tools/randpkt-test.sh
index b47646ddd9..a49e3002e3 100755
--- a/tools/randpkt-test.sh
+++ b/tools/randpkt-test.sh
@@ -162,7 +162,7 @@ while [ $PASS -lt "$MAX_PASSES" ] || [ "$MAX_PASSES" -lt 1 ] ; do
grep -i "dissector bug" "$TMP_DIR/$ERR_FILE" \
> /dev/null 2>&1 && DISSECTOR_BUG=1
- if [ $RETVAL -ne 0 ] || [ $DISSECTOR_BUG -ne 0 ] || [ $VG_ERR_CNT -ne 0 ] ; then
+ if [ "$RETVAL" -ne 0 ] || [ $DISSECTOR_BUG -ne 0 ] || [ "$VG_ERR_CNT" -ne 0 ] ; then
ws_exit_error
fi
echo " OK"
diff --git a/tools/rpm-setup.sh b/tools/rpm-setup.sh
index 65867eaddc..ca710449f2 100755
--- a/tools/rpm-setup.sh
+++ b/tools/rpm-setup.sh
@@ -16,7 +16,7 @@ set -e -u -o pipefail
function print_usage() {
printf "\nUtility to setup a rpm-based system for Wireshark Development.\n"
printf "The basic usage installs the needed software\n\n"
- printf "Usage: $0 [--install-optional] [...other options...]\n"
+ printf "Usage: %s [--install-optional] [...other options...]\n" "$0"
printf "\t--install-optional: install optional software as well\n"
printf "\t--install-rpm-deps: install packages required to build the .rpm file\n"
printf "\\t--install-qt5-deps: force installation of packages required to use Qt5\\n"
@@ -65,7 +65,7 @@ for arg; do
done
# Check if the user is root
-if [ $(id -u) -ne 0 ]
+if [ "$(id -u)" -ne 0 ]
then
echo "You must be root."
exit 1
@@ -119,7 +119,7 @@ for PM in zypper dnf yum ''; do
fi
done
-if [ -z $PM ]
+if [ -z "$PM" ]
then
echo "No package managers found, exiting"
exit 1
@@ -146,6 +146,7 @@ add_package() {
local list="$1" pkgname="$2"
# fail if the package is not known
+ # shellcheck disable=SC2086
$PM $PM_SEARCH "$pkgname" &> /dev/null || return 1
# package is found, append it to list
@@ -154,10 +155,11 @@ add_package() {
# Adds packages $2-$n to list variable $1 if all the packages are found
add_packages() {
- local list="$1" pkgnames="${@:2}"
+ local list="$1" pkgnames="${*:2}"
# fail if any package is not known
for pkgname in $pkgnames; do
+ # shellcheck disable=SC2086
$PM $PM_SEARCH "$pkgname" &> /dev/null || return 1
done
@@ -244,7 +246,7 @@ then
qt6-qtmultimedia-devel
libxkbcommon-devel)
- for pkg in ${QT6_LIST[@]}
+ for pkg in "${QT6_LIST[@]}"
do
add_package BASIC_LIST "$pkg" ||
echo "Qt6 dependency $pkg is unavailable" >&2
@@ -350,6 +352,7 @@ then
ACTUAL_LIST="$ACTUAL_LIST $RPMDEPS_LIST"
fi
+# shellcheck disable=SC2086
$PM $PM_OPT install $ACTUAL_LIST $OPTIONS
if [ $ADDITIONAL -eq 0 ]
diff --git a/tools/win-setup.ps1 b/tools/win-setup.ps1
index 261bdff23b..0b53335f24 100644
--- a/tools/win-setup.ps1
+++ b/tools/win-setup.ps1
@@ -74,8 +74,8 @@ $X64Archives = @{
"AirPcap/AirPcap_Devpack_4_1_0_1622.zip" = "09d637f28a79b1d2ecb09f35436271a90c0f69bd0a1ee82b803abaaf63c18a69";
"bcg729/bcg729-1.0.4-win64ws.zip" = "9a095fda4c39860d96f0c568830faa6651cd17635f68e27aa6de46c689aa0ee2";
"brotli/brotli-1.0.9-1-win64ws.zip" = "3f8d24aec8668201994327ff8d8542fe507d1d468a500a1aec50d0415f695aab";
- "c-ares/c-ares-1.19.1-1-x64-windows-ws.zip" = "cecd95f125a34b6f1d5dfc9586792077cb70820764ffc10d43b0617c1861ae85";
- "gnutls/gnutls-3.8.3-1-x64-mingw-dynamic-ws.zip" = "0d8f99029319e1967fd916586eecfd776a9b564614468b233b6eda8bc23ca20d";
+ "c-ares/c-ares-1.27.0-1-x64-windows-ws.zip" = "c9f1fb4836d55ae3aca0be077d2363678454820f9efad5c09371351a8770b5fc";
+ "gnutls/gnutls-3.8.4-2-x64-mingw-dynamic-ws.zip" = "e875c6c34f633c487ce390e25a4d26a3e27d3dca3f9fdfa1d8fd66026d1e257c";
"krb5/krb5-1.20.1-1-x64-windows-ws.zip" = "a1e5c582afce6e2f72f0f5bd66df2c0f3cc984532a1da5314fc89d7b7f29cdbf";
"libgcrypt/libgcrypt-1.10.2-2-x64-mingw-dynamic-ws.zip" = "477cfce91d791b34df75a5ad83626f1ac2ee147eff7965e52266a4fc3da0f920";
"libilbc/libilbc-2.0.2-4-x64-windows-ws.zip" = "4f35a1ffa03c89bf473f38249282a7867b203988d2b6d3d2f0924764619fd5f5";
@@ -86,8 +86,9 @@ $X64Archives = @{
"lua/lua-5.4.6-unicode-win64-vc14.zip" = "f0c6c7eb28733425b16717beb338d44c041dfbb5c6807e618d96bd754276aaff";
"lz4/lz4-1.9.3-1-win64ws.zip" = "7129515893ffdc439f4ffe9673c4bc43f9042e910bb2607e68dde6b99a1ab058";
"minizip/minizip-1.3-1-x64-windows-ws.zip" = "eb0bb5fffda5328e192d0d7951ff0254e64dcd736d46909fde7db792c1c53bcc";
- "nghttp2/nghttp2-1.57.0-1-x64-windows-ws.zip" = "94afb12d63d0830dc25e5605c30a6a91fe1f7284c1e6ddfff177d961d5b52bbd";
+ "nghttp2/nghttp2-1.61.0-1-x64-windows-ws.zip" = "c9f9976ae890acdee24f4a0a6514b345c4e34121e11f0439ba5d90ba6b122d31";
"nghttp3/nghttp3-1.0.0-1-x64-windows-ws.zip" = "219a0024b79627c00fa1c134085678edbfac72b7b5eaf45db84f36e2553e1638";
+ "opencore-amr/opencore-amr-0.1.6-1-x64-mingw-dynamic-ws.zip" = "013a7b29b62bec123482fed6acd8aed882be3478870c2ec8aec15b7cb81cda02";
"opus/opus-1.3.1-3-win64ws.zip" = "1f7a55a6d2d7215dffa4a43bca8ca05024bd4ba1ac3d0d0c405fd38b09cc2205";
"sbc/sbc-2.0-1-x64-windows-ws.zip" = "d1a58f977dcffa168b11b280bd10228191582d263b7c901e50cde7c1c43d9c04";
"snappy/snappy-1.1.9-1-win64ws.zip" = "fa907724be019bcc55d27ebe88257ba8898b5c38b719099b8164ac78600d81cc";
@@ -98,11 +99,12 @@ $X64Archives = @{
"zstd/zstd-1.5.2-1-win64ws.zip" = "d920afe636951cfcf144824d9c075d1f2c13387f4739152fe185fd9c09fc58f2";
}
+
$Arm64Archives = @{
"bcg729/bcg729-1.1.1-1-win64armws.zip" = "f4d76b9acf0d0e12e87a020e9805d136a0e8775e061eeec23910a10828153625";
"brotli/brotli-1.0.9-1-win64armws.zip" = "5ba1b62ebc514d55c3eae85a00ff107e587b6e7cb1275e2d33fcddcd49f8e2af";
- "c-ares/c-ares-1.19.1-1-arm64-windows-ws.zip" = "ec13f3ca07c1916872d08d3abaec3eaeac266dc2befdbc15d5a1317f2a1dbe3c";
- "gnutls/gnutls-3.8.3-1-arm64-mingw-dynamic-ws.zip" = "b9f0ee9cfe5012241aa5b9832212ea31408edf9bfc968762a2cfb091202fcc4b";
+ "c-ares/c-ares-1.27.0-1-arm64-windows-ws.zip" = "d96bd88aeed45350b2d14f023bd6d9e5dc63aa3bb0b47da85e4e125d6f74bfcf";
+ "gnutls/gnutls-3.8.4-2-arm64-mingw-dynamic-ws.zip" = "17f28b4a47857db86d9c3f9b7ba12528c8e6368524314fb0fe5ea9303f1a58f9";
"krb5/krb5-1.20.1-1-arm64-windows-ws.zip" = "6afe3185ea7621224544683a89d7c724d32bef6f1b552738dbc713ceb2151437";
"libgcrypt/libgcrypt-1.10.2-2-arm64-mingw-dynamic-ws.zip" = "cd42fa2739a204e129d655e1b0dda83ceb27399812b8b2eccddae4a9ecd8d0ce";
"libilbc/libilbc-2.0.2-4-arm64-windows-ws.zip" = "00a506cc1aac8a2e31856e463a555d899b5a6ccf376485a124104858ccf0be6d";
@@ -113,8 +115,9 @@ $Arm64Archives = @{
"lua/lua-5.4.6-unicode-arm64-windows-vc14.zip" = "a28c38acde71de5c495420cd8bf480e2e41f1a14bac81503b700fc64a9679b95";
"lz4/lz4-1.9.4-1-win64armws.zip" = "59a3ed3f9161be7614a89afd2ca21c43f26dd916afd4aa7bfdc4b148fb10d485";
"minizip/minizip-1.3-1-arm64-windows-ws.zip" = "e5b35d064ff10f1ab1ee9193a0965fd1eb3d1e16eab5a905ab3fea9b14fb5afe";
- "nghttp2/nghttp2-1.57.0-1-arm64-windows-ws.zip" = "3f264dc0ccb48850e07ec136dede5b0ad0e39e31ff2d2e6ab215348ce2d9e570";
+ "nghttp2/nghttp2-1.61.0-1-arm64-windows-ws.zip" = "628822778c1ae540943f4b48bcfd22551826318a66b8082eebc4e99943e743b3";
"nghttp3/nghttp3-1.0.0-1-arm64-windows-ws.zip" = "cf53090b514d3193d75b81562235ae1e7a8a9d462e37f515f9a9a29c6b469236";
+ "opencore-amr/opencore-amr-0.1.6-1-arm64-mingw-dynamic-ws.zip" = "581ec9e8ee4dde2236b689eec4d39802e2f998baa8d1604a4e91c1da32556b57";
"opus/opus-1.4-1-win64armws.zip" = "51d10381360d5691b2022dde5b284266d9b0ce9a3c9bd7e86f9a4ff1a4f7d904";
"sbc/sbc-2.0-1-arm64-windows-ws.zip" = "83cfe4a8b6fa5bae253ecacc1c02e6e4c61b4ad9ad0e5e63f0f30422fb6eac96";
"snappy/snappy-1.1.9-1-win64armws.zip" = "f3f6ec841024d18df06934ff70f44068a4e8f1008eca1f363257645647f74d4a";
diff --git a/tools/wireshark_words.txt b/tools/wireshark_words.txt
index a3734a43ec..2c30ca0c44 100644
--- a/tools/wireshark_words.txt
+++ b/tools/wireshark_words.txt
@@ -33,6 +33,8 @@ addba
additionals
additionsr
addon
+addrbook
+addrtype
adjacency
adlink
administrable
@@ -66,9 +68,11 @@ ampdu
amperage
ampere
amperes
+amsdu
anacap
analyzers
analyzes
+andxoffset
annexc
annotation
annotations
@@ -83,13 +87,16 @@ append
apphdr
appid
appkey
+applctrl
applicability
+approx
appset
arbitrated
arcnet
arduino
arfcn
arista
+armscii
aruba
ascii
asciidoc
@@ -155,6 +162,7 @@ beamformer
beamforming
bgpsec
bgpspec
+bharti
bibliographic
bibliography
bidirection
@@ -191,6 +199,7 @@ bthci
btmesh
btsdp
btsnoop
+btxnq
bucuresti
bugzilla
buildbot
@@ -227,6 +236,7 @@ cardbus
carrierfreq
carrierid
casio
+categorization
categorizes
cattp
cblock
@@ -295,6 +305,8 @@ clksrc
cllog
clopts
clsfr
+clusctl
+clusprop
clustermap
cmake
cmdcontrol
@@ -353,15 +365,18 @@ contactless
contextp
contiguity
contiguously
+controlee
convolutional
convs
coord
Coord3D
coords
+coprocessor
copycss
copyfile
corba
corosync
+correlator
corrigendum
couchbase
coverity
@@ -401,8 +416,11 @@ datarate
dataset
datastate
datetime
+datum
+daysofweek
dccreq
dcerpc
+dcname
dct3trace
deact
deactivated
@@ -424,6 +442,7 @@ decapsulation
decca
decentralization
dechunk
+decimals
decnet
decompressed
decompressing
@@ -446,6 +465,7 @@ defragmented
defragmenting
dehumidification
deinterleaved
+deletions
delimit
delimited
delimiters
@@ -505,6 +525,7 @@ dhcpv
diagdata
dialed
dialup
+differentiator
diffie
Digicel
digitizer
@@ -513,8 +534,10 @@ diplexer
directionality
disambiguate
disambiguation
+discontinuities
discriminant
discriminator
+dishnet
dissection
dissector
dissectors
@@ -529,11 +552,13 @@ dlsch
dmepi
dnskey
dnssec
+dnssrv
docomo
docsis
dodag
dot11Qos
dot1q
+dotnet
double
downlink
doxygen
@@ -543,6 +568,7 @@ drbid
drdynvc
droppable
dsmcc
+dstmode
dstport
dtwin
dumpcap
@@ -587,6 +613,7 @@ encodings
encrypt
encrypting
encryptionkey
+encrypts
endace
endian
endianness
@@ -628,6 +655,7 @@ España
esperanto
essar
estonia
+ethcm
etheraddr
ethercat
ethers
@@ -646,6 +674,7 @@ executables
exflags
exocet
expansions
+extapp
extattr
extcap
extensibility
@@ -664,6 +693,7 @@ failover
falco
falcodump
falcosecurity
+fallthru
fastcom
fastip
fastmsg
@@ -675,9 +705,11 @@ fileset
filsfils
firefox
firewall
+fiveco
fixme
flag1
flag2
+flanger
flavored
flexray
flowid
@@ -694,12 +726,14 @@ fortinet
fpiur
fprintf
fraghdr
+fragmenter
framenum
framenumber
frametype
frcrpt
freebsd
frontend
+fruid
fsctl
ftenum
ftype
@@ -722,6 +756,7 @@ gendc
gentoo
geoip
geonw
+geostd
geran
getattr
getentrybyname
@@ -729,8 +764,11 @@ getgroupinfo
getimageinfo
getnext
getopt
+getset
getsetinfo
getter
+getters
+getvfinfo
gidaddr
gigabit
gigamon
@@ -746,8 +784,10 @@ gnodeb
gnutls
goaway
golomb
+goodput
google
gopname
+gostr
gpointer
gprscdr
gprsmeasurementparams3g
@@ -786,6 +826,7 @@ hnbap
homedir
homeplug
hopcount
+hostkey
hostname
howto
hpfeeds
@@ -804,6 +845,7 @@ huffman
hutchison
hysteresis
hytec
+ibsdh
icmpv
icount
idempotent
@@ -820,7 +862,9 @@ ieee80211
iface
ifconfig
ifdef
+ifindex
ifname
+iftype
ikev2
illuminance
imeisv
@@ -870,7 +914,10 @@ instantiate
instantiated
instantiation
instdir
+instrmnt
+instrmt
instrumented
+intcon
intensities
interferer
interleaving
@@ -921,6 +968,8 @@ isobus
isochronous
issuer
italia
+italic
+italics
iterating
iterative
iterator
@@ -940,6 +989,7 @@ kbytes
kchip
keepalive
kerberos
+keybcs
keydes
keygen
keyid
@@ -951,11 +1001,15 @@ keyring
keyset
keytab
knxip
+krb5kdc
+krb5krb
+l1sync
l2cap
l2vpn
l3vpn
laggy
lanalyzer
+lanka
latencies
lbmpdm
lcgid
@@ -963,12 +1017,16 @@ lcids
lcsap
leasequery
legitimisation
+level1login
+libcap
libgcrypt
libiconv
+libndr
libnl
libpcap
libsmi
licmgr
+lidaddr
linearity
linkaddr
linkcss
@@ -979,8 +1037,10 @@ linux
list1
literals
lithionics
+llcgprs
lnpdqp
locamation
+locoinfof
logcat
loghans
loginack
@@ -991,8 +1051,10 @@ logout
logray
lookups
loopback
+loran
lossy
lscap
+ltype
lucent
luminaire
luminance
@@ -1024,11 +1086,13 @@ mbsfn
mbytes
mcaal
mcast
+mcinfo
mcmemberrecord
mcptt
mcsset
measurability
measurements
+measx
mediaone
medion
megabit
@@ -1045,6 +1109,7 @@ metadata
meteorological
metermod
México
+mfgfield
mgmtmsg
microapp
microbit
@@ -1082,11 +1147,13 @@ mozilla
mp4ves
mpeg4
mplstp
+mpquic
mpsse
mptcp
mrcpv
msbuild
mscldap
+msgflag
msgid
msglen
msgreq
@@ -1133,6 +1200,7 @@ mysql
nacks
nagle
namelen
+nameor
namespace
naptr
narrowband
@@ -1171,9 +1239,11 @@ nikon
nitnxlate
nmtcommand
nnsvc
+noalign
noascii
noauth
nodeid
+nodiscriminant
nofcs
nokia
nolintnextline
@@ -1186,6 +1256,7 @@ noncriticalextensions
nopad
noqueue
nordig
+normalised
nortel
notarized
notational
@@ -1207,10 +1278,13 @@ nssvc
nstat
nstime
nstrace
+nt4change
ntlmssp
ntlmv
ntohl
ntohs
+ntstatus
+nttime
ntwkconn
nullptr
nvgre
@@ -1228,6 +1302,7 @@ octetstring
oextcap
ofdma
offloadability
+ofpacpt
ofpat
ofpbac
ofpbfc
@@ -1235,6 +1310,7 @@ ofpbic
ofpbmc
ofpbrc
ofpet
+ofpfmfc
ofpgmfc
ofpmf
ofpmmfc
@@ -1253,6 +1329,7 @@ ontime
opcode
opcodes
opcua
+openfd
opengl
openssh
openssl
@@ -1261,6 +1338,7 @@ openvpn
opflags
oplock
opnum
+optarg
optimisation
optimised
optimizations
@@ -1268,6 +1346,7 @@ optimizer
optiplex
optreq
ordinal
+orpcthat
orthogonal
oscillatory
oscore
@@ -1312,6 +1391,7 @@ pcmax
pcmaxc
pcrepattern
pdcch
+pdelay
pdsch
pdustatus
peeraddr
@@ -1329,6 +1409,7 @@ phasor
phasors
phich
phonebook
+phymod
physcellid
picmg
pinfo
@@ -1364,6 +1445,7 @@ powercontrol
pppdump
pppoe
prach
+pradesh
preambles
preauth
precisions
@@ -1387,6 +1469,7 @@ prioritized
privkey
procid
profidrive
+profienergy
profinet
promisc
promiscsniff
@@ -1409,6 +1492,7 @@ ptvcursor
ptype
pubdir
pubkey
+publickey
pucch
pusch
pwach
@@ -1417,11 +1501,13 @@ pxeclient
pytest
qam16
qam64
+qcustomplot
qmgmt
qnet6
qosinfo
qpack
qsearch
+qtbug
quadlet
quadrature
quadro
@@ -1451,6 +1537,7 @@ randomizer
randpkt
raster
rctxinfo
+rdeth
rdpudp
rdtci
reachability
@@ -1497,6 +1584,7 @@ reconnection
recurse
recurses
recursively
+redefinition
redelivered
redelivery
redir
@@ -1521,6 +1609,7 @@ referrer
regex
regexp
regionid
+reimplement
reimplemented
reinitialization
reinitialize
@@ -1528,6 +1617,7 @@ reinitialized
reinitializing
reinjected
reinjection
+reint
reinvoke
rekey
rekeying
@@ -1576,9 +1666,11 @@ resolver
resolvers
resub
resubmission
+resynchronisation
resynchronization
resynchronize
resynchronized
+retap
retarder
retrans
retranslated
@@ -1599,6 +1691,7 @@ revertive
revocations
rf4ce
rfcomm
+rfinfo
rfmon
rgoose
ripemd
@@ -1612,12 +1705,14 @@ rotterdam
routable
rowfmt
rpcap
+rpcsec
rpmbuild
rsocket
rsrvd
rtitcp
rtpdump
rtpevent
+rtpfb
rtpmidi
rtpmux
rtpstream
@@ -1659,6 +1754,8 @@ sdusize
sectigo
sectorization
sectorized
+secur
+seglen
segmenting
segno
selectivity
@@ -1686,6 +1783,7 @@ sessionid
sessionkey
setattr
setcap
+setkey
setuid
severities
sfiocr
@@ -1701,12 +1799,16 @@ sharkd
shenzhen
shomiti
shortstr
+showtechnic
+shtdn
siapp
sidelink
signaal
signaling
signon
+simplestatusbit
simulcast
+singulation
sistemas
sizeof
skippable
@@ -1714,6 +1816,7 @@ skype
slaac
slimp
slsch
+smime
smpdirected
smpte
smrse
@@ -1722,6 +1825,7 @@ snaplen
snow3g
snprintf
sockaddr
+socketcan
softkey
solera
someip
@@ -1747,8 +1851,10 @@ spline
spnego
spoofing
spooled
+spooler
sqlwarn
srbid
+srcdst
srcip
srcport
srtcp
@@ -1789,6 +1895,7 @@ subdoc
subelem
subelement
subelements
+subelt
subframes
subfunc
subhd
@@ -1824,11 +1931,13 @@ sudan
superseding
superset
suppfeat
+svalidator
svcparam
sverige
svhdx
switchinfo
symantec
+symbl
symlink
synchronizer
synchronizing
@@ -1845,6 +1954,7 @@ sysmac
systemd
tablemod
tabular
+taiwan
tanzania
tclas
tcpdump
@@ -1866,6 +1976,7 @@ Telefónica
Teléfonos
telekom
telematic
+telematics
telenor
teletex
telfonica
@@ -1886,6 +1997,7 @@ timeout
timeslot
timestamp
timestamps
+timetag
timezone
tipcv
tlvlen
@@ -1894,6 +2006,7 @@ tobago
toggled
toggles
toggling
+tokenized
toolbar
toolongfragment
toolset
@@ -1914,6 +2027,7 @@ transiently
transifex
transitioning
transitivity
+transportcc
transum
transversal
traveler
@@ -1924,6 +2038,7 @@ truncatable
truncate
truncates
truncating
+trustdom
tshark
tspec
tstamp
@@ -2031,6 +2146,7 @@ unignore
unimplemented
uninformative
uninhibit
+uninitialised
uninitialized
uninstall
uninstallation
@@ -2076,6 +2192,7 @@ unrecovered
unregister
unregistration
unreportable
+unres
unresolvable
unresponded
unroutable
@@ -2085,6 +2202,7 @@ unsecure
unsegmented
unsequenced
unset
+unshifted
unsilence
unsnoopables
unsorted
@@ -2117,6 +2235,7 @@ usability
usbmon
usbms
usbpcap
+usenet
userauth
userdata
userinfo
@@ -2143,6 +2262,7 @@ vector3d
venusmngr
verbose
verbosity
+verifications
verifier
verizon
version2
@@ -2160,6 +2280,7 @@ virtio
virtualization
virtualized
vlans
+vldbentry
vmware
vnode
vocoder
@@ -2175,6 +2296,7 @@ wbxml
webcam
webkit
websocket
+werror
whoami
wideband
wifidump
@@ -2182,6 +2304,7 @@ wikipedia
wikis
wimax
wimaxasncp
+win2k
winflexbison
winget
winpcap
@@ -2217,6 +2340,7 @@ xetra
xferext
xferflags
xferstatus
+xhtml
xmlns
xsltproc
xtreme
diff --git a/tshark.c b/tshark.c
index 2c77edfee8..049f0b2c4f 100644
--- a/tshark.c
+++ b/tshark.c
@@ -125,7 +125,7 @@
#include "extcap.h"
#ifdef HAVE_PLUGINS
-#include <wsutil/codecs_priv.h>
+#include <wsutil/codecs.h>
#include <wsutil/plugins.h>
#endif
@@ -152,10 +152,10 @@ static frame_data prev_dis_frame;
static frame_data prev_cap_frame;
static gboolean perform_two_pass_analysis;
-static guint32 epan_auto_reset_count = 0;
-static gboolean epan_auto_reset = FALSE;
+static guint32 epan_auto_reset_count;
+static gboolean epan_auto_reset;
-static guint32 selected_frame_number = 0;
+static guint32 selected_frame_number;
/*
* The way the packet decode is to be written.
@@ -178,21 +178,21 @@ static gboolean print_summary; /* TRUE if we're to print packet summary info
static gboolean print_details; /* TRUE if we're to print packet details information */
static gboolean print_hex; /* TRUE if we're to print hex/ascii information */
static gboolean line_buffered;
-static gboolean quiet = FALSE;
-static gboolean really_quiet = FALSE;
+static gboolean quiet;
+static gboolean really_quiet;
static gchar* delimiter_char = " ";
-static gboolean dissect_color = FALSE;
+static gboolean dissect_color;
static guint hexdump_source_option = HEXDUMP_SOURCE_MULTI; /* Default - Enable legacy multi-source mode */
static guint hexdump_ascii_option = HEXDUMP_ASCII_INCLUDE; /* Default - Enable legacy undelimited ASCII dump */
static print_format_e print_format = PR_FMT_TEXT;
-static print_stream_t *print_stream = NULL;
+static print_stream_t *print_stream;
static char *output_file_name;
-static output_fields_t* output_fields = NULL;
+static output_fields_t* output_fields;
-static gboolean no_duplicate_keys = FALSE;
+static gboolean no_duplicate_keys;
static proto_node_children_grouper_func node_children_grouper = proto_node_group_children_by_unique;
static json_dumper jdumper;
@@ -201,9 +201,9 @@ static json_dumper jdumper;
static const char *separator = "";
/* Per-file comments to be added to the output file. */
-static GPtrArray *capture_comments = NULL;
+static GPtrArray *capture_comments;
-static gboolean prefs_loaded = FALSE;
+static gboolean prefs_loaded;
#ifdef HAVE_LIBPCAP
/*
@@ -265,9 +265,9 @@ static gboolean write_finale(void);
static void tshark_cmdarg_err(const char *msg_format, va_list ap);
static void tshark_cmdarg_err_cont(const char *msg_format, va_list ap);
-static GHashTable *output_only_tables = NULL;
+static GHashTable *output_only_tables;
-static gboolean opt_print_timers = FALSE;
+static gboolean opt_print_timers;
struct elapsed_pass_s {
gint64 dissect;
gint64 dfilter_read;
@@ -550,6 +550,7 @@ print_usage(FILE *output)
fprintf(output, " output format of time stamps (def: r: rel. to first)\n");
fprintf(output, " -u s|hms output format of seconds (def: s: seconds)\n");
fprintf(output, " -l flush standard output after each packet\n");
+ fprintf(output, " (implies --update-interval 0)\n");
fprintf(output, " -q be more quiet on stdout (e.g. when using statistics)\n");
fprintf(output, " -Q only log true errors to stderr (quieter than -q)\n");
fprintf(output, " -g enable group read access on the output file(s)\n");
@@ -797,13 +798,13 @@ about_folders(void)
constpath = get_progfile_dir();
printf("%-21s\t%s\n", "Program:", constpath);
- if (plugins_supported()) {
- /* pers plugins */
- printf("%-21s\t%s\n", "Personal Plugins:", get_plugins_pers_dir());
+#ifdef HAVE_PLUGINS
+ /* pers plugins */
+ printf("%-21s\t%s\n", "Personal Plugins:", get_plugins_pers_dir_with_version());
- /* global plugins */
- printf("%-21s\t%s\n", "Global Plugins:", get_plugins_dir());
- }
+ /* global plugins */
+ printf("%-21s\t%s\n", "Global Plugins:", get_plugins_dir_with_version());
+#endif
#ifdef HAVE_LUA
/* pers lua plugins */
@@ -905,7 +906,7 @@ warn_about_capture_filter(const char *rfilter)
#endif
#ifdef HAVE_LIBPCAP
-static GList *cached_if_list = NULL;
+static GList *cached_if_list;
static GList *
capture_opts_get_interface_list(int *err, char **err_str)
@@ -1325,7 +1326,6 @@ main(int argc, char *argv[])
wslua_plugins_dump_all();
#endif
extcap_dump_all();
- epan_plugins_dump_all();
}
else if (strcmp(argv[2], "protocols") == 0) {
epan_load_settings();
@@ -1583,6 +1583,15 @@ main(int argc, char *argv[])
protocol trees - arguably even better, as it may do fewer
writes. */
line_buffered = TRUE;
+#ifdef HAVE_LIBPCAP
+ /* Set the update-interval to 0 so that dumpcap reports packets
+ * as soon as available instead of buffering them.
+ */
+ exit_status = capture_opts_add_opt(&global_capture_opts, opt, ws_optarg);
+ if (exit_status != 0) {
+ goto clean_exit;
+ }
+#endif
break;
case 'L': /* Print list of link-layer types and exit */
#ifdef HAVE_LIBPCAP
@@ -2774,8 +2783,8 @@ clean_exit:
return exit_status;
}
-gboolean loop_running = FALSE;
-guint32 packet_count = 0;
+gboolean loop_running;
+guint32 packet_count;
static epan_t *
tshark_epan_new(capture_file *cf)
@@ -3373,7 +3382,7 @@ process_packet_first_pass(capture_file *cf, epan_dissect_t *edt,
* Set if reading a file was interrupted by a CTRL_ event on Windows or
* a signal on UN*X.
*/
-static gboolean read_interrupted = FALSE;
+static gboolean read_interrupted;
#ifdef _WIN32
static BOOL WINAPI
diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt
index c1f7e56c7c..ac2f35bdaa 100644
--- a/ui/CMakeLists.txt
+++ b/ui/CMakeLists.txt
@@ -78,6 +78,7 @@ target_link_libraries(ui
PRIVATE
wsutil
wiretap
+ ${M_LIBRARIES}
)
target_include_directories(ui
diff --git a/ui/alert_box.c b/ui/alert_box.c
index b96f5a1213..7a13649842 100644
--- a/ui/alert_box.c
+++ b/ui/alert_box.c
@@ -58,9 +58,9 @@ vwarning_alert_box(const char *msg_format, va_list ap)
* typical Wireshark user is, but....
*/
void
-cfile_open_failure_alert_box(const char *filename, int err, gchar *err_info)
+cfile_open_failure_alert_box(const char *filename, int err, char *err_info)
{
- gchar *display_basename;
+ char *display_basename;
if (err < 0) {
/* Wiretap error. */
@@ -157,7 +157,7 @@ cfile_open_failure_alert_box(const char *filename, int err, gchar *err_info)
g_free(display_basename);
} else {
/* OS error. */
- open_failure_alert_box(filename, err, FALSE);
+ open_failure_alert_box(filename, err, false);
}
}
@@ -177,9 +177,9 @@ cfile_open_failure_alert_box(const char *filename, int err, gchar *err_info)
*/
void
cfile_dump_open_failure_alert_box(const char *filename, int err,
- gchar *err_info, int file_type_subtype)
+ char *err_info, int file_type_subtype)
{
- gchar *display_basename;
+ char *display_basename;
if (err < 0) {
/* Wiretap error. */
@@ -249,7 +249,7 @@ cfile_dump_open_failure_alert_box(const char *filename, int err,
g_free(display_basename);
} else {
/* OS error. */
- open_failure_alert_box(filename, err, TRUE);
+ open_failure_alert_box(filename, err, true);
}
}
@@ -260,14 +260,14 @@ cfile_dump_open_failure_alert_box(const char *filename, int err,
* some WTAP_ERR_ values.
*/
void
-cfile_read_failure_alert_box(const char *filename, int err, gchar *err_info)
+cfile_read_failure_alert_box(const char *filename, int err, char *err_info)
{
- gchar *display_name;
+ char *display_name;
if (filename == NULL)
display_name = g_strdup("capture file");
else {
- gchar *display_basename;
+ char *display_basename;
display_basename = g_filename_display_basename(filename);
display_name = ws_strdup_printf("capture file \"%s\"", display_basename);
@@ -349,7 +349,7 @@ cfile_read_failure_alert_box(const char *filename, int err, gchar *err_info)
*/
void
cfile_write_failure_alert_box(const char *in_filename, const char *out_filename,
- int err, gchar *err_info, guint32 framenum,
+ int err, char *err_info, uint32_t framenum,
int file_type_subtype)
{
char *in_file_string;
@@ -491,9 +491,9 @@ cfile_write_failure_alert_box(const char *in_filename, const char *out_filename,
* typical Wireshark user is, but....
*/
void
-cfile_close_failure_alert_box(const char *filename, int err, gchar *err_info)
+cfile_close_failure_alert_box(const char *filename, int err, char *err_info)
{
- gchar *display_basename;
+ char *display_basename;
if (err < 0) {
/* Wiretap error. */
@@ -537,8 +537,8 @@ cfile_close_failure_alert_box(const char *filename, int err, gchar *err_info)
/*
* Alert box for a failed attempt to open or create a file.
- * "err" is assumed to be a UNIX-style errno; "for_writing" is TRUE if
- * the file is being opened for writing and FALSE if it's being opened
+ * "err" is assumed to be a UNIX-style errno; "for_writing" is true if
+ * the file is being opened for writing and false if it's being opened
* for reading.
*
* XXX - add explanatory secondary text for at least some of the errors;
@@ -548,9 +548,9 @@ cfile_close_failure_alert_box(const char *filename, int err, gchar *err_info)
* typical Wireshark user is, but....
*/
void
-open_failure_alert_box(const char *filename, int err, gboolean for_writing)
+open_failure_alert_box(const char *filename, int err, bool for_writing)
{
- gchar *display_basename;
+ char *display_basename;
display_basename = g_filename_display_basename(filename);
simple_message_box(ESD_TYPE_ERROR, NULL, NULL,
@@ -566,7 +566,7 @@ open_failure_alert_box(const char *filename, int err, gboolean for_writing)
void
read_failure_alert_box(const char *filename, int err)
{
- gchar *display_basename;
+ char *display_basename;
display_basename = g_filename_display_basename(filename);
simple_message_box(ESD_TYPE_ERROR, NULL, NULL,
@@ -588,7 +588,7 @@ read_failure_alert_box(const char *filename, int err)
void
write_failure_alert_box(const char *filename, int err)
{
- gchar *display_basename;
+ char *display_basename;
display_basename = g_filename_display_basename(filename);
simple_message_box(ESD_TYPE_ERROR, NULL, NULL,
diff --git a/ui/alert_box.h b/ui/alert_box.h
index c1660ed004..e32b1da7af 100644
--- a/ui/alert_box.h
+++ b/ui/alert_box.h
@@ -35,7 +35,7 @@ extern void vwarning_alert_box(const char *msg_format, va_list ap);
* to be a string giving further information for some WTAP_ERR_ values..
*/
extern void cfile_open_failure_alert_box(const char *filename, int err,
- gchar *err_info);
+ char *err_info);
/*
* Alert box for a failed attempt to open a capture file for writing.
@@ -46,7 +46,7 @@ extern void cfile_open_failure_alert_box(const char *filename, int err,
* and subtype of file being opened.
*/
extern void cfile_dump_open_failure_alert_box(const char *filename, int err,
- gchar *err_info,
+ char *err_info,
int file_type_subtype);
/*
@@ -56,7 +56,7 @@ extern void cfile_dump_open_failure_alert_box(const char *filename, int err,
* some WTAP_ERR_ values.
*/
extern void cfile_read_failure_alert_box(const char *filename, int err,
- gchar *err_info);
+ char *err_info);
/*
* Alert box for a failed attempt to write to a capture file.
@@ -71,8 +71,8 @@ extern void cfile_read_failure_alert_box(const char *filename, int err,
*/
extern void cfile_write_failure_alert_box(const char *in_filename,
const char *out_filename,
- int err, gchar *err_info,
- guint32 framenum,
+ int err, char *err_info,
+ uint32_t framenum,
int file_type_subtype);
/*
@@ -100,16 +100,16 @@ extern void cfile_write_failure_alert_box(const char *in_filename,
* so we have to check for write errors here.
*/
extern void cfile_close_failure_alert_box(const char *filename, int err,
- gchar *err_info);
+ char *err_info);
/*
* Alert box for a failed attempt to open or create a file.
- * "err" is assumed to be a UNIX-style errno; "for_writing" is TRUE if
- * the file is being opened for writing and FALSE if it's being opened
+ * "err" is assumed to be a UNIX-style errno; "for_writing" is true if
+ * the file is being opened for writing and false if it's being opened
* for reading.
*/
extern void open_failure_alert_box(const char *filename, int err,
- gboolean for_writing);
+ bool for_writing);
/*
* Alert box for a failed attempt to read a file.
diff --git a/ui/capture.c b/ui/capture.c
index 52ce18b8a9..d99c60da02 100644
--- a/ui/capture.c
+++ b/ui/capture.c
@@ -62,10 +62,10 @@ struct if_stat_cache_s {
/* this callback mechanism should possibly be replaced by the g_signal_...() stuff (if I only would know how :-) */
typedef struct {
capture_callback_t cb_fct;
- gpointer user_data;
+ void *user_data;
} capture_callback_data_t;
-static GList *capture_callbacks = NULL;
+static GList *capture_callbacks;
static void
capture_callback_invoke(int event, capture_session *cap_session)
@@ -85,7 +85,7 @@ capture_callback_invoke(int event, capture_session *cap_session)
void
-capture_callback_add(capture_callback_t func, gpointer user_data)
+capture_callback_add(capture_callback_t func, void *user_data)
{
capture_callback_data_t *cb;
@@ -97,7 +97,7 @@ capture_callback_add(capture_callback_t func, gpointer user_data)
}
void
-capture_callback_remove(capture_callback_t func, gpointer user_data)
+capture_callback_remove(capture_callback_t func, void *user_data)
{
capture_callback_data_t *cb;
GList *cb_item = capture_callbacks;
@@ -118,9 +118,9 @@ capture_callback_remove(capture_callback_t func, gpointer user_data)
/**
* Start a capture.
*
- * @return TRUE if the capture starts successfully, FALSE otherwise.
+ * @return true if the capture starts successfully, false otherwise.
*/
-gboolean
+bool
capture_start(capture_options *capture_opts, GPtrArray *capture_comments,
capture_session *cap_session, info_data_t* cap_data,
void(*update_cb)(void))
@@ -132,7 +132,7 @@ capture_start(capture_options *capture_opts, GPtrArray *capture_comments,
ws_message("Capture Start ...");
source = get_iface_list_string(capture_opts, IFLIST_SHOW_FILTER);
cf_set_tempfile_source((capture_file *)cap_session->cf, source->str);
- g_string_free(source, TRUE);
+ g_string_free(source, true);
/* try to start the capture child process */
if (!sync_pipe_start(capture_opts, capture_comments, cap_session,
cap_data, update_cb)) {
@@ -144,7 +144,7 @@ capture_start(capture_options *capture_opts, GPtrArray *capture_comments,
ws_message("Capture Start failed.");
cap_session->state = CAPTURE_STOPPED;
- return FALSE;
+ return false;
}
// Do we need data structures for ignoring duplicate frames?
@@ -182,7 +182,7 @@ capture_start(capture_options *capture_opts, GPtrArray *capture_comments,
capture_info_ui_create(&cap_data->ui, cap_session);
}
- return TRUE;
+ return true;
}
@@ -195,7 +195,7 @@ capture_stop(capture_session *cap_session)
if (!extcap_session_stop(cap_session)) {
extcap_request_stop(cap_session);
- cap_session->capture_opts->stop_after_extcaps = TRUE;
+ cap_session->capture_opts->stop_after_extcaps = true;
} else {
/* stop the capture child gracefully */
sync_pipe_stop(cap_session);
@@ -213,9 +213,9 @@ capture_kill_child(capture_session *cap_session)
}
/* We've succeeded in doing a (non real-time) capture; try to read it into a new capture file */
-static gboolean
-capture_input_read_all(capture_session *cap_session, gboolean is_tempfile,
- gboolean drops_known, guint32 drops)
+static bool
+capture_input_read_all(capture_session *cap_session, bool is_tempfile,
+ bool drops_known, uint32_t drops)
{
capture_options *capture_opts = cap_session->capture_opts;
int err;
@@ -223,7 +223,7 @@ capture_input_read_all(capture_session *cap_session, gboolean is_tempfile,
/* Capture succeeded; attempt to open the capture file. */
if (cf_open((capture_file *)cap_session->cf, capture_opts->save_file, WTAP_TYPE_AUTO, is_tempfile, &err) != CF_OK) {
/* We're not doing a capture any more, so we don't have a save file. */
- return FALSE;
+ return false;
}
/* Set the read filter to NULL. */
@@ -249,7 +249,7 @@ capture_input_read_all(capture_session *cap_session, gboolean is_tempfile,
thus not have to set them here - "cf_read()" will get them from
the file and use them. */
if (drops_known) {
- cf_set_drops_known((capture_file *)cap_session->cf, TRUE);
+ cf_set_drops_known((capture_file *)cap_session->cf, true);
/* XXX - on some systems, libpcap doesn't bother filling in
"ps_ifdrop" - it doesn't even set it to zero - so we don't
@@ -263,7 +263,7 @@ capture_input_read_all(capture_session *cap_session, gboolean is_tempfile,
}
/* read in the packet data */
- switch (cf_read((capture_file *)cap_session->cf, /*reloading=*/FALSE)) {
+ switch (cf_read((capture_file *)cap_session->cf, /*reloading=*/false)) {
case CF_READ_OK:
case CF_READ_ERROR:
@@ -276,7 +276,7 @@ capture_input_read_all(capture_session *cap_session, gboolean is_tempfile,
/* User wants to quit program. Exit by leaving the main loop,
so that any quit functions we registered get called. */
exit_application(0);
- return FALSE;
+ return false;
}
/* if we didn't capture even a single packet, close the file again */
@@ -300,11 +300,11 @@ capture_input_read_all(capture_session *cap_session, gboolean is_tempfile,
(cf_is_tempfile((capture_file *)cap_session->cf)) ? "temporary " : "");
cf_close((capture_file *)cap_session->cf);
}
- return TRUE;
+ return true;
}
static const char *
-cf_open_error_message(int err, gchar *err_info)
+cf_open_error_message(int err, char *err_info)
{
const char *errmsg;
static char errmsg_errno[1024 + 1];
@@ -384,19 +384,19 @@ cf_open_error_message(int err, gchar *err_info)
}
}
else
- errmsg = file_open_error_message(err, FALSE);
+ errmsg = file_open_error_message(err, false);
return errmsg;
}
/* capture child tells us we have a new (or the first) capture file */
static bool
-capture_input_new_file(capture_session *cap_session, gchar *new_file)
+capture_input_new_file(capture_session *cap_session, char *new_file)
{
capture_options *capture_opts = cap_session->capture_opts;
- gboolean is_tempfile;
+ bool is_tempfile;
int err;
- gchar *err_info;
- gchar *err_msg;
+ char *err_info;
+ char *err_msg;
if(cap_session->state == CAPTURE_PREPARING) {
ws_message("Capture started");
@@ -412,7 +412,7 @@ capture_input_new_file(capture_session *cap_session, gchar *new_file)
if (((capture_file*)cap_session->cf)->state == FILE_READ_PENDING) {
capture_callback_invoke(capture_cb_capture_fixed_finished, cap_session);
} else if (((capture_file*)cap_session->cf)->state != FILE_CLOSED) {
- cap_session->session_will_restart = TRUE;
+ cap_session->session_will_restart = true;
capture_callback_invoke(capture_cb_capture_update_finished, cap_session);
cf_finish_tail((capture_file *)cap_session->cf,
&cap_session->rec, &cap_session->buf, &err,
@@ -420,12 +420,12 @@ capture_input_new_file(capture_session *cap_session, gchar *new_file)
cf_close((capture_file *)cap_session->cf);
}
g_free(capture_opts->save_file);
- is_tempfile = FALSE;
- cf_set_tempfile((capture_file *)cap_session->cf, FALSE);
+ is_tempfile = false;
+ cf_set_tempfile((capture_file *)cap_session->cf, false);
} else {
/* we didn't have a save_file before; must be a tempfile */
- is_tempfile = TRUE;
- cf_set_tempfile((capture_file *)cap_session->cf, TRUE);
+ is_tempfile = true;
+ cf_set_tempfile((capture_file *)cap_session->cf, true);
}
/* save the new filename */
@@ -442,7 +442,7 @@ capture_input_new_file(capture_session *cap_session, gchar *new_file)
for debugging purposes. */
g_free(capture_opts->save_file);
capture_opts->save_file = NULL;
- return FALSE;
+ return false;
}
} else {
capture_callback_invoke(capture_cb_capture_prepared, cap_session);
@@ -453,13 +453,13 @@ capture_input_new_file(capture_session *cap_session, gchar *new_file)
wtap_close(cap_session->wtap);
}
- cap_session->wtap = wtap_open_offline(new_file, WTAP_TYPE_AUTO, &err, &err_info, FALSE);
+ cap_session->wtap = wtap_open_offline(new_file, WTAP_TYPE_AUTO, &err, &err_info, false);
if (!cap_session->wtap) {
err_msg = ws_strdup_printf(cf_open_error_message(err, err_info),
new_file);
ws_warning("capture_input_new_file: %d (%s)", err, err_msg);
g_free(err_msg);
- return FALSE;
+ return false;
}
}
@@ -470,11 +470,11 @@ capture_input_new_file(capture_session *cap_session, gchar *new_file)
}
cap_session->state = CAPTURE_RUNNING;
- return TRUE;
+ return true;
}
static void
-capture_info_packet(info_data_t* cap_info, gint wtap_linktype, const guchar *pd, guint32 caplen, union wtap_pseudo_header *pseudo_header)
+capture_info_packet(info_data_t* cap_info, int wtap_linktype, const unsigned char *pd, uint32_t caplen, union wtap_pseudo_header *pseudo_header)
{
capture_packet_info_t cpinfo;
@@ -491,8 +491,8 @@ static void
capture_info_new_packets(int to_read, wtap *wth, info_data_t* cap_info)
{
int err;
- gchar *err_info;
- gint64 data_offset;
+ char *err_info;
+ int64_t data_offset;
wtap_rec rec;
Buffer buf;
union wtap_pseudo_header *pseudo_header;
@@ -590,7 +590,7 @@ capture_input_new_packets(capture_session *cap_session, int to_read)
/* Capture child told us how many dropped packets it counted.
*/
static void
-capture_input_drops(capture_session *cap_session, guint32 dropped, const char* interface_name)
+capture_input_drops(capture_session *cap_session, uint32_t dropped, const char* interface_name)
{
if (interface_name != NULL) {
ws_info("%u packet%s dropped from %s", dropped, plurality(dropped, "", "s"), interface_name);
@@ -600,7 +600,7 @@ capture_input_drops(capture_session *cap_session, guint32 dropped, const char* i
ws_assert(cap_session->state == CAPTURE_RUNNING);
- cf_set_drops_known((capture_file *)cap_session->cf, TRUE);
+ cf_set_drops_known((capture_file *)cap_session->cf, true);
cf_set_drops((capture_file *)cap_session->cf, dropped);
}
@@ -615,8 +615,8 @@ static void
capture_input_error(capture_session *cap_session _U_, char *error_msg,
char *secondary_error_msg)
{
- gchar *safe_error_msg;
- gchar *safe_secondary_error_msg;
+ char *safe_error_msg;
+ char *safe_secondary_error_msg;
/* The primary message might be an empty string, e.g. when the error was
* from extcap. (The extcap stderr is gathered when the session closes
@@ -650,14 +650,14 @@ capture_input_error(capture_session *cap_session _U_, char *error_msg,
capture filter when starting/running the capture.
*/
static void
-capture_input_cfilter_error(capture_session *cap_session, guint i,
+capture_input_cfilter_error(capture_session *cap_session, unsigned i,
const char *error_message)
{
capture_options *capture_opts = cap_session->capture_opts;
dfilter_t *rfcode = NULL;
- gchar *safe_cfilter;
- gchar *safe_descr;
- gchar *safe_cfilter_error_msg;
+ char *safe_cfilter;
+ char *safe_descr;
+ char *safe_cfilter_error_msg;
interface_options *interface_opts;
ws_message("Capture filter error message from child: \"%s\"", error_message);
@@ -702,7 +702,7 @@ capture_input_cfilter_error(capture_session *cap_session, guint i,
/* capture child closed its side of the pipe, do the required cleanup */
static void
-capture_input_closed(capture_session *cap_session, gchar *msg)
+capture_input_closed(capture_session *cap_session, char *msg)
{
capture_options *capture_opts = cap_session->capture_opts;
int err;
@@ -738,7 +738,7 @@ capture_input_closed(capture_session *cap_session, gchar *msg)
}
ws_warning("%s", msg);
simple_dialog(dlg_type, ESD_BTN_OK, "%s", gui_msg->str);
- g_string_free(gui_msg, TRUE);
+ g_string_free(gui_msg, true);
g_strfreev(msg_lines);
}
@@ -774,7 +774,7 @@ capture_input_closed(capture_session *cap_session, gchar *msg)
/* Tell the GUI we are not doing a capture any more.
Must be done after the cf_finish_tail(), so file lengths are
correctly displayed */
- cap_session->session_will_restart = FALSE;
+ cap_session->session_will_restart = false;
capture_callback_invoke(capture_cb_capture_update_finished, cap_session);
/* Finish the capture. */
@@ -842,7 +842,7 @@ capture_input_closed(capture_session *cap_session, gchar *msg)
/* does the user wants to restart the current capture? */
if(capture_opts->restart) {
- capture_opts->restart = FALSE;
+ capture_opts->restart = false;
/* If we have a ring buffer, the original save file has been overwritten
with the "ring filename". Restore it before starting again */
@@ -885,10 +885,10 @@ capture_stat_start(capture_options *capture_opts)
{
int stat_fd;
ws_process_id fork_child;
- gchar *msg;
+ char *msg;
if_stat_cache_t *sc = g_new0(if_stat_cache_t, 1);
if_stat_cache_item_t *sc_item;
- guint i;
+ unsigned i;
interface_t *device;
sc->stat_fd = -1;
@@ -939,7 +939,7 @@ capture_interface_stat_start(capture_options *capture_opts _U_, GList **if_list)
{
int stat_fd;
ws_process_id fork_child;
- gchar *msg;
+ char *msg;
if_stat_cache_t *sc = g_new0(if_stat_cache_t, 1);
if_stat_cache_item_t *sc_item;
char *data = NULL;
@@ -1025,8 +1025,8 @@ capture_interface_stat_start(capture_options *capture_opts _U_, GList **if_list)
static void
capture_stat_cache_update(if_stat_cache_t *sc)
{
- gchar stat_line[MAX_STAT_LINE_LEN] = "";
- gchar **stat_parts;
+ char stat_line[MAX_STAT_LINE_LEN] = "";
+ char **stat_parts;
GList *sc_entry;
if_stat_cache_item_t *sc_item;
@@ -1053,14 +1053,14 @@ capture_stat_cache_update(if_stat_cache_t *sc)
}
}
-gboolean
+bool
capture_stats(if_stat_cache_t *sc, char *ifname, struct pcap_stat *ps)
{
GList *sc_entry;
if_stat_cache_item_t *sc_item;
if (!sc || sc->fork_child == WS_INVALID_PID || !ifname || !ps) {
- return FALSE;
+ return false;
}
capture_stat_cache_update(sc);
@@ -1068,10 +1068,10 @@ capture_stats(if_stat_cache_t *sc, char *ifname, struct pcap_stat *ps)
sc_item = (if_stat_cache_item_t *)sc_entry->data;
if (strcmp(sc_item->name, ifname) == 0) {
memcpy(ps, &sc_item->ps, sizeof(struct pcap_stat));
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
void
@@ -1080,7 +1080,7 @@ capture_stat_stop(if_stat_cache_t *sc)
GList *sc_entry;
if_stat_cache_item_t *sc_item;
int ret;
- gchar *msg;
+ char *msg;
if (!sc) {
return;
diff --git a/ui/capture.h b/ui/capture.h
index 8935ccbe0f..dbeefc68ad 100644
--- a/ui/capture.h
+++ b/ui/capture.h
@@ -39,14 +39,14 @@ typedef enum {
capture_cb_capture_failed
} capture_cbs;
-typedef void (*capture_callback_t) (gint event, capture_session *cap_session,
- gpointer user_data);
+typedef void (*capture_callback_t) (int event, capture_session *cap_session,
+ void *user_data);
extern void
-capture_callback_add(capture_callback_t func, gpointer user_data);
+capture_callback_add(capture_callback_t func, void *user_data);
extern void
-capture_callback_remove(capture_callback_t func, gpointer user_data);
+capture_callback_remove(capture_callback_t func, void *user_data);
/**
* Initialize a capture session.
@@ -66,9 +66,9 @@ capture_input_init(capture_session *cap_session, capture_file *cf);
* @param cap_session the handle for the capture session
* @param cap_data a struct with capture info data
* @param update_cb update screen
- * @return TRUE if the capture starts successfully, FALSE otherwise.
+ * @return true if the capture starts successfully, false otherwise.
*/
-extern gboolean
+extern bool
capture_start(capture_options *capture_opts, GPtrArray *capture_comments,
capture_session *cap_session, info_data_t* cap_data,
void(*update_cb)(void));
@@ -104,7 +104,7 @@ extern WS_RETNONNULL if_stat_cache_t * capture_interface_stat_start(capture_opti
* Fetch capture statistics, similar to pcap_stats().
*/
struct pcap_stat; /* Stub in case we don't or haven't yet included pcap.h */
-extern gboolean capture_stats(if_stat_cache_t *sc, char *ifname, struct pcap_stat *ps);
+extern bool capture_stats(if_stat_cache_t *sc, char *ifname, struct pcap_stat *ps);
/**
* Stop gathering capture statistics.
diff --git a/ui/capture_info.h b/ui/capture_info.h
index d94819af60..24e8cdfcdc 100644
--- a/ui/capture_info.h
+++ b/ui/capture_info.h
@@ -30,11 +30,11 @@ extern "C" {
/** Current Capture info. */
typedef struct _capture_info {
/* handle */
- gpointer ui; /**< user interface handle */
+ void * ui; /**< user interface handle */
/* capture info */
packet_counts *counts; /**< protocol specific counters */
- gint new_packets; /**< packets since last update */
+ int new_packets; /**< packets since last update */
} capture_info;
typedef struct _info_data {
diff --git a/ui/capture_ui_utils.c b/ui/capture_ui_utils.c
index 5bbd43e8d1..d530ee1e2d 100644
--- a/ui/capture_ui_utils.c
+++ b/ui/capture_ui_utils.c
@@ -33,10 +33,10 @@
* the property.
*/
static char *
-capture_dev_get_if_property(const gchar *pref, const gchar *if_name)
+capture_dev_get_if_property(const char *pref, const char *if_name)
{
- gchar **if_tokens;
- gchar *property = NULL;
+ char **if_tokens;
+ char *property = NULL;
int i;
if (if_name == NULL || strlen(if_name) < 1) {
@@ -55,7 +55,7 @@ capture_dev_get_if_property(const gchar *pref, const gchar *if_name)
*/
if_tokens = g_strsplit(pref, ",", -1);
for (i = 0; if_tokens[i] != NULL; i++) {
- gchar *opening_parenp, *closing_parenp;
+ char *opening_parenp, *closing_parenp;
/*
* Separate this item into name and property.
@@ -91,11 +91,11 @@ capture_dev_get_if_property(const gchar *pref, const gchar *if_name)
* Find a property that should be an integral value, and return the
* value or, if it's not found or not a valid integral value, -1.
*/
-static gint
-capture_dev_get_if_int_property(const gchar *pref, const gchar *if_name)
+static int
+capture_dev_get_if_int_property(const char *pref, const char *if_name)
{
- gchar *property_string;
- gint property;
+ char *property_string;
+ int property;
property_string = capture_dev_get_if_property(pref, if_name);
if (property_string == NULL) {
@@ -117,7 +117,7 @@ capture_dev_get_if_int_property(const gchar *pref, const gchar *if_name)
* name, if any.
*/
char *
-capture_dev_user_descr_find(const gchar *if_name)
+capture_dev_user_descr_find(const char *if_name)
{
char *descr = capture_dev_get_if_property(prefs.capture_devices_descr, if_name);
if (descr == NULL && g_strcmp0(if_name, "-") == 0) {
@@ -132,35 +132,35 @@ capture_dev_user_descr_find(const gchar *if_name)
return descr;
}
-gint
-capture_dev_user_linktype_find(const gchar *if_name)
+int
+capture_dev_user_linktype_find(const char *if_name)
{
return capture_dev_get_if_int_property(prefs.capture_devices_linktypes, if_name);
}
#ifdef CAN_SET_CAPTURE_BUFFER_SIZE
-gint
-capture_dev_user_buffersize_find(const gchar *if_name)
+int
+capture_dev_user_buffersize_find(const char *if_name)
{
return capture_dev_get_if_int_property(prefs.capture_devices_buffersize, if_name);
}
#endif
-gboolean
-capture_dev_user_snaplen_find(const gchar *if_name, gboolean *hassnap, int *snaplen)
+bool
+capture_dev_user_snaplen_find(const char *if_name, bool *hassnap, int *snaplen)
{
- gboolean found = FALSE;
- gchar **if_tokens;
+ bool found = false;
+ char **if_tokens;
int i;
if (if_name == NULL || strlen(if_name) < 1) {
- return FALSE;
+ return false;
}
if ((prefs.capture_devices_snaplen == NULL) ||
(*prefs.capture_devices_snaplen == '\0')) {
/* There are no snap lengths defined */
- return FALSE;
+ return false;
}
/*
@@ -170,9 +170,9 @@ capture_dev_user_snaplen_find(const gchar *if_name, gboolean *hassnap, int *snap
*/
if_tokens = g_strsplit(prefs.capture_devices_snaplen, ",", -1);
for (i = 0; if_tokens[i] != NULL; i++) {
- gchar *colonp;
- const gchar *next;
- gint value;
+ char *colonp;
+ const char *next;
+ int value;
/*
* This one's a bit ugly.
@@ -197,8 +197,8 @@ capture_dev_user_snaplen_find(const gchar *if_name, gboolean *hassnap, int *snap
/* OK, this matches. */
if (*(colonp + 1) == '0') {
/* {hassnap} is false, so just set the snaplen to WTAP_MAX_PACKET_SIZE_STANDARD. */
- found = TRUE;
- *hassnap = FALSE;
+ found = true;
+ *hassnap = false;
*snaplen = WTAP_MAX_PACKET_SIZE_STANDARD;
} else if (*(colonp + 1) == '1') {
/* {hassnap} is true, so extract {snaplen} */
@@ -211,8 +211,8 @@ capture_dev_user_snaplen_find(const gchar *if_name, gboolean *hassnap, int *snap
/* Syntax error or range error. Give up. */
break;
}
- found = TRUE;
- *hassnap = TRUE;
+ found = true;
+ *hassnap = true;
*snaplen = value;
} else {
/* Bad {hassnap}. Give up. */
@@ -226,22 +226,22 @@ capture_dev_user_snaplen_find(const gchar *if_name, gboolean *hassnap, int *snap
return found;
}
-gboolean
-capture_dev_user_pmode_find(const gchar *if_name, gboolean *pmode)
+bool
+capture_dev_user_pmode_find(const char *if_name, bool *pmode)
{
int value;
value = capture_dev_get_if_int_property(prefs.capture_devices_pmode, if_name);
if (value == -1) {
/* Not found or bad. */
- return FALSE;
+ return false;
}
*pmode = (value != 0);
- return TRUE;
+ return true;
}
-gchar*
-capture_dev_user_cfilter_find(const gchar *if_name)
+char*
+capture_dev_user_cfilter_find(const char *if_name)
{
return capture_dev_get_if_property(prefs.capture_devices_filter, if_name);
}
@@ -314,13 +314,13 @@ get_interface_descriptive_name(const capture_options *capture_opts, const char *
}
GList *
-build_capture_combo_list(GList *if_list, gboolean do_hide)
+build_capture_combo_list(GList *if_list, bool do_hide)
{
GList *combo_list;
GList *if_entry;
if_info_t *if_info;
char *if_string;
- gchar *descr;
+ char *descr;
combo_list = NULL;
if (if_list != NULL) {
@@ -364,7 +364,7 @@ build_capture_combo_list(GList *if_list, gboolean do_hide)
}
static void
-free_if_string(gpointer data, gpointer user_data _U_)
+free_if_string(void *data, void *user_data _U_)
{
g_free(data);
}
@@ -471,7 +471,7 @@ void
set_active_dlt(interface_t *device, int global_default_dlt)
{
GList *list;
- gboolean found_active_dlt;
+ bool found_active_dlt;
link_row *link;
/*
@@ -491,11 +491,11 @@ set_active_dlt(interface_t *device, int global_default_dlt)
* If not, set it to -1, so we'll fall back on the first supported
* link-layer header type.
*/
- found_active_dlt = FALSE;
+ found_active_dlt = false;
for (list = device->links; list != NULL; list = g_list_next(list)) {
link = (link_row *)(list->data);
if (link->dlt != -1 && link->dlt == device->active_dlt) {
- found_active_dlt = TRUE;
+ found_active_dlt = true;
break;
}
}
@@ -515,10 +515,10 @@ set_active_dlt(interface_t *device, int global_default_dlt)
}
GString *
-get_iface_list_string(capture_options *capture_opts, guint32 style)
+get_iface_list_string(capture_options *capture_opts, uint32_t style)
{
GString *iface_list_string = g_string_new("");
- guint i;
+ unsigned i;
/*
* If we have a descriptive name for the interface, show that,
diff --git a/ui/capture_ui_utils.h b/ui/capture_ui_utils.h
index 228a1d98e2..c6f32f12fe 100644
--- a/ui/capture_ui_utils.h
+++ b/ui/capture_ui_utils.h
@@ -31,7 +31,7 @@ extern "C" {
* @return The device description (must be g_free'd later) or NULL
* if not found.
*/
-char *capture_dev_user_descr_find(const gchar *if_name);
+char *capture_dev_user_descr_find(const char *if_name);
/**
* Find user-specified link-layer header type that matches interface
@@ -41,7 +41,7 @@ char *capture_dev_user_descr_find(const gchar *if_name);
*
* @return The link-layer header type (a DLT_) or -1 if not found.
*/
-gint capture_dev_user_linktype_find(const gchar *if_name);
+int capture_dev_user_linktype_find(const char *if_name);
#ifdef CAN_SET_CAPTURE_BUFFER_SIZE
/**
@@ -52,7 +52,7 @@ gint capture_dev_user_linktype_find(const gchar *if_name);
*
* @return The buffer size or -1 if not found.
*/
-gint capture_dev_user_buffersize_find(const gchar *if_name);
+int capture_dev_user_buffersize_find(const char *if_name);
#endif
/**
@@ -60,28 +60,28 @@ gint capture_dev_user_buffersize_find(const gchar *if_name);
* name, if any.
*
* @param if_name The name of the interface.
- * @param hassnap Pointer to a variable to be set to TRUE if the
- * interface should be given a snap length or FALSE if it shouldn't
+ * @param hassnap Pointer to a variable to be set to true if the
+ * interface should be given a snap length or false if it shouldn't
* be given a snap length.
* @param snaplen Pointer to a variable to be set to the snap length
* if the interface should be given a snap length or the maximum
* snap length if it shouldn't be given a snap length.
*
- * @return TRUE if found or FALSE if not found.
+ * @return true if found or false if not found.
*/
-gboolean capture_dev_user_snaplen_find(const gchar *if_name, gboolean *hassnap, int *snaplen);
+bool capture_dev_user_snaplen_find(const char *if_name, bool *hassnap, int *snaplen);
/**
* Find user-specified promiscuous mode that matches interface
* name, if any.
*
* @param if_name The name of the interface.
- * @param pmode Pointer to a variable to be set to TRUE if promiscuous
- * mode should be used and FALSE if it shouldn't be used.
+ * @param pmode Pointer to a variable to be set to true if promiscuous
+ * mode should be used and false if it shouldn't be used.
*
- * @return TRUE if found or FALSE if not found.
+ * @return true if found or false if not found.
*/
-gboolean capture_dev_user_pmode_find(const gchar *if_name, gboolean *pmode);
+bool capture_dev_user_pmode_find(const char *if_name, bool *pmode);
/**
* Find user-specified capture filter that matches interface
@@ -93,7 +93,7 @@ gboolean capture_dev_user_pmode_find(const gchar *if_name, gboolean *pmode);
*
* @return The capture filter (must be g_free'd later) or NULL if not found.
*/
-gchar* capture_dev_user_cfilter_find(const gchar *if_name);
+char* capture_dev_user_cfilter_find(const char *if_name);
/** Return as descriptive a name for an interface as we can get.
* If the user has specified a comment, use that. Otherwise,
@@ -114,7 +114,7 @@ char *get_interface_descriptive_name(const capture_options *capture_opts, const
*
* @return A list of if_info_t structs (use free_capture_combo_list() later).
*/
-GList *build_capture_combo_list(GList *if_list, gboolean do_hide);
+GList *build_capture_combo_list(GList *if_list, bool do_hide);
/** Free the GList from build_capture_combo_list().
*
@@ -156,7 +156,7 @@ extern void set_active_dlt(interface_t *device, int global_default_dlt);
#define IFLIST_QUOTE_IF_DESCRIPTION 0x00000001
#define IFLIST_SHOW_FILTER 0x00000002
-extern GString *get_iface_list_string(capture_options *capture_opts, guint32 style);
+extern GString *get_iface_list_string(capture_options *capture_opts, uint32_t style);
#ifdef __cplusplus
}
diff --git a/ui/cli/simple_dialog.c b/ui/cli/simple_dialog.c
index 5807c8b385..1916a43bef 100644
--- a/ui/cli/simple_dialog.c
+++ b/ui/cli/simple_dialog.c
@@ -21,11 +21,11 @@
#include <ui/simple_dialog.h>
#include "ws_attributes.h"
-gpointer
+void *
simple_dialog(
ESD_TYPE_E type _U_,
- gint btn_mask _U_,
- const gchar * msg_format,
+ int btn_mask _U_,
+ const char * msg_format,
...
)
{
@@ -39,7 +39,7 @@ simple_dialog(
}
void
-simple_message_box(ESD_TYPE_E type _U_, gboolean *notagain _U_,
+simple_message_box(ESD_TYPE_E type _U_, bool *notagain _U_,
const char *secondary_msg, const char *msg_format, ...)
{
va_list ap;
diff --git a/ui/cli/tap-camelsrt.c b/ui/cli/tap-camelsrt.c
index 935731ac34..b76602c7cc 100644
--- a/ui/cli/tap-camelsrt.c
+++ b/ui/cli/tap-camelsrt.c
@@ -37,7 +37,7 @@ void register_tap_listener_camelsrt(void);
/* used to keep track of the statistics for an entire program interface */
struct camelsrt_t {
char *filter;
- guint32 count[NB_CAMELSRT_CATEGORY];
+ uint32_t count[NB_CAMELSRT_CATEGORY];
timestat_t stats[NB_CAMELSRT_CATEGORY];
nstime_t delta_time[NB_CAMELSRT_CATEGORY][NUM_RAS_STATS];
};
@@ -82,14 +82,14 @@ static tap_packet_status camelsrt_packet(void *phs,
static void camelsrt_draw(void *phs)
{
struct camelsrt_t *hs = (struct camelsrt_t *)phs;
- guint j, z;
- guint32 li;
+ unsigned j, z;
+ uint32_t li;
int somme, iteration = 0;
timestat_t *rtd_temp;
double x, delay, delay_max, delay_min, delta;
double criteria[NB_CRITERIA] = { 5.0, 10.0, 75.0, 90.0, 95.0, 99.0, 99.90 };
double delay_criteria[NB_CRITERIA];
- gchar* tmp_str;
+ char* tmp_str;
printf("\n");
printf("Camel Service Response Time (SRT) Statistics:\n");
@@ -225,7 +225,7 @@ static void camelsrt_init(const char *opt_arg, void *userdata _U_)
g_free(p_camelsrt);
cmdarg_err("Couldn't register camel,srt tap: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
@@ -235,8 +235,8 @@ static void camelsrt_init(const char *opt_arg, void *userdata _U_)
* Whereas, with wireshark, it is not possible to have the correct display, if the stats are
* not saved along the analyze
*/
- gtcap_StatSRT = TRUE;
- gcamel_StatSRT = TRUE;
+ gtcap_StatSRT = true;
+ gcamel_StatSRT = true;
}
static stat_tap_ui camelsrt_ui = {
diff --git a/ui/cli/tap-credentials.c b/ui/cli/tap-credentials.c
index 9a54a7eb28..b25c40b77c 100644
--- a/ui/cli/tap-credentials.c
+++ b/ui/cli/tap-credentials.c
@@ -26,7 +26,7 @@
void register_tap_listener_credentials(void);
-wmem_array_t* credentials = NULL;
+wmem_array_t* credentials;
static tap_credential_t* tap_credential_clone(tap_credential_t* auth)
{
@@ -64,7 +64,7 @@ static void credentials_draw(void *p _U_)
printf("===================================================================\n");
printf("%-10s %-16s %-16s %-16s\n", "Packet", "Protocol", "Username", "Info");
printf("------ -------- -------- --------\n");
- for (guint i = 0; i < wmem_array_get_count(credentials); i++) {
+ for (unsigned i = 0; i < wmem_array_get_count(credentials); i++) {
tap_credential_t* auth = (tap_credential_t*)wmem_array_index(credentials, i);
printf("%-10u %-16s %-16s %-16s\n", auth->num, auth->proto, auth->username, auth->info ? auth->info : "");
}
@@ -81,7 +81,7 @@ static void credentials_init(const char *opt_arg _U_, void *userdata _U_)
if (error_string) {
/* error, we failed to attach to the tap. clean up */
cmdarg_err("Couldn't register credentials tap: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
diff --git a/ui/cli/tap-diameter-avp.c b/ui/cli/tap-diameter-avp.c
index eb990fa90f..b3fa18d913 100644
--- a/ui/cli/tap-diameter-avp.c
+++ b/ui/cli/tap-diameter-avp.c
@@ -45,54 +45,54 @@ void register_tap_listener_diameteravp(void);
/* used to keep track of the statistics for an entire program interface */
typedef struct _diameteravp_t {
- guint32 frame;
- guint32 diammsg_toprocess;
- guint32 cmd_code;
- guint32 req_count;
- guint32 ans_count;
- guint32 paired_ans_count;
- gchar *filter;
+ uint32_t frame;
+ uint32_t diammsg_toprocess;
+ uint32_t cmd_code;
+ uint32_t req_count;
+ uint32_t ans_count;
+ uint32_t paired_ans_count;
+ char *filter;
} diameteravp_t;
/* Copied from proto.c */
-static gboolean
-tree_traverse_pre_order(proto_tree *tree, proto_tree_traverse_func func, gpointer data)
+static bool
+tree_traverse_pre_order(proto_tree *tree, proto_tree_traverse_func func, void *data)
{
proto_node *pnode = tree;
proto_node *child;
proto_node *current;
if (func(pnode, data))
- return TRUE;
+ return true;
child = pnode->first_child;
while (child != NULL) {
current = child;
child = current->next;
if (tree_traverse_pre_order((proto_tree *)current, func, data))
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
-static gboolean
-diam_tree_to_csv(proto_node *node, gpointer data)
+static bool
+diam_tree_to_csv(proto_node *node, void * data)
{
char *val_str = NULL;
char *val_tmp = NULL;
ftenum_t ftype;
field_info *fi;
- header_field_info *hfi;
+ const header_field_info *hfi;
if (!node) {
fprintf(stderr, "traverse end: empty node. node='%p' data='%p'\n", (void *)node, (void *)data);
- return FALSE;
+ return false;
}
fi = node->finfo;
hfi = fi ? fi->hfinfo : NULL;
if (!hfi) {
fprintf(stderr, "traverse end: hfi not found. node='%p'\n", (void *)node);
- return FALSE;
+ return false;
}
ftype = fvalue_type_ftenum(fi->value);
if (ftype != FT_NONE && ftype != FT_PROTOCOL) {
@@ -109,7 +109,7 @@ diam_tree_to_csv(proto_node *node, gpointer data)
printf("%s='%s' ", hfi->name, val_str);
g_free(val_str);
}
- return FALSE;
+ return false;
}
static tap_packet_status
@@ -117,19 +117,19 @@ diameteravp_packet(void *pds, packet_info *pinfo, epan_dissect_t *edt _U_, const
{
tap_packet_status ret = TAP_PACKET_DONT_REDRAW;
double resp_time = 0.;
- gboolean is_request = TRUE;
- guint32 cmd_code = 0;
- guint32 req_frame = 0;
- guint32 ans_frame = 0;
- guint32 diam_child_node = 0;
+ bool is_request = true;
+ uint32_t cmd_code = 0;
+ uint32_t req_frame = 0;
+ uint32_t ans_frame = 0;
+ uint32_t diam_child_node = 0;
proto_node *current = NULL;
proto_node *node = NULL;
- header_field_info *hfi = NULL;
+ const header_field_info *hfi = NULL;
field_info *finfo = NULL;
const diameter_req_ans_pair_t *dp = (const diameter_req_ans_pair_t *)pdi;
diameteravp_t *ds = NULL;
- /* Validate paramerers. */
+ /* Validate parameters */
if (!dp || !edt || !edt->tree)
return ret;
@@ -206,10 +206,10 @@ static void
diameteravp_init(const char *opt_arg, void *userdata _U_)
{
diameteravp_t *ds;
- gchar *field = NULL;
- gchar **tokens;
- guint opt_count = 0;
- guint opt_idx = 0;
+ char *field = NULL;
+ char **tokens;
+ unsigned opt_count = 0;
+ unsigned opt_idx = 0;
GString *filter = NULL;
GString *error_string = NULL;
@@ -230,7 +230,7 @@ diameteravp_init(const char *opt_arg, void *userdata _U_)
while (tokens[opt_count])
opt_count++;
if (opt_count > 2) {
- /* if the token is a not-null string and it's not *, the conversion must succeeed */
+ /* if the token is a not-null string and it's not *, the conversion must succeed */
if (strlen(tokens[2]) > 0 && tokens[2][0] != '*') {
if (!ws_strtou32(tokens[2], NULL, &ds->cmd_code)) {
fprintf(stderr, "Invalid integer token: %s\n", tokens[2]);
@@ -254,7 +254,7 @@ diameteravp_init(const char *opt_arg, void *userdata _U_)
g_string_append(filter, field);
}
g_strfreev(tokens);
- ds->filter = g_string_free(filter, FALSE);
+ ds->filter = g_string_free(filter, false);
error_string = register_tap_listener("diameter", ds, ds->filter, 0, NULL, diameteravp_packet, diameteravp_draw, NULL);
if (error_string) {
@@ -263,7 +263,7 @@ diameteravp_init(const char *opt_arg, void *userdata _U_)
cmdarg_err("Couldn't register diam,csv tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-endpoints.c b/ui/cli/tap-endpoints.c
index e97dcf85f2..f32bbaa12e 100644
--- a/ui/cli/tap-endpoints.c
+++ b/ui/cli/tap-endpoints.c
@@ -33,9 +33,9 @@ endpoints_draw(void *arg)
conv_hash_t *hash = (conv_hash_t*)arg;
endpoints_t *iu = (endpoints_t *)hash->user_data;
endpoint_item_t *endpoint;
- guint64 last_frames, max_frames;
- guint i;
- gboolean display_port = (!strncmp(iu->type, "TCP", 3) || !strncmp(iu->type, "UDP", 3) || !strncmp(iu->type, "SCTP", 4)) ? TRUE : FALSE;
+ uint64_t last_frames, max_frames;
+ unsigned i;
+ bool display_port = (!strncmp(iu->type, "TCP", 3) || !strncmp(iu->type, "UDP", 3) || !strncmp(iu->type, "SCTP", 4)) ? true : false;
printf("================================================================================\n");
printf("%s Endpoints\n", iu->type);
@@ -48,7 +48,7 @@ endpoints_draw(void *arg)
do {
last_frames = 0;
for (i=0; (iu->hash.conv_array && i < iu->hash.conv_array->len); i++) {
- guint64 tot_frames;
+ uint64_t tot_frames;
endpoint = &g_array_index(iu->hash.conv_array, endpoint_item_t, i);
tot_frames = endpoint->rx_frames + endpoint->tx_frames;
@@ -59,18 +59,18 @@ endpoints_draw(void *arg)
}
for (i=0; (iu->hash.conv_array && i < iu->hash.conv_array->len); i++) {
- guint64 tot_frames;
- gchar *conversation_str, *port_str;
+ uint64_t tot_frames;
+ char *conversation_str, *port_str;
endpoint = &g_array_index(iu->hash.conv_array, endpoint_item_t, i);
tot_frames = endpoint->rx_frames + endpoint->tx_frames;
if (tot_frames == last_frames) {
/* XXX - TODO: make name resolution configurable (through gbl_resolv_flags?) */
- conversation_str = get_conversation_address(NULL, &endpoint->myaddress, TRUE);
+ conversation_str = get_conversation_address(NULL, &endpoint->myaddress, true);
if (display_port) {
/* XXX - TODO: make port resolution configurable (through gbl_resolv_flags?) */
- port_str = get_endpoint_port(NULL, endpoint, TRUE);
+ port_str = get_endpoint_port(NULL, endpoint, true);
printf("%-20s %5s %6" PRIu64 " %9" PRIu64
" %6" PRIu64 " %9" PRIu64 " %6"
PRIu64 " %9" PRIu64 " \n",
@@ -114,7 +114,7 @@ void init_endpoints(struct register_ct *ct, const char *filter)
g_free(iu);
cmdarg_err("Couldn't register endpoint tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
diff --git a/ui/cli/tap-expert.c b/ui/cli/tap-expert.c
index 3fcf0e7fb0..50a582b8c4 100644
--- a/ui/cli/tap-expert.c
+++ b/ui/cli/tap-expert.c
@@ -39,10 +39,10 @@ static severity_level_t lowest_report_level = comment_level;
typedef struct expert_entry
{
- guint32 group;
+ uint32_t group;
int frequency;
- const gchar *protocol;
- gchar *summary;
+ const char *protocol;
+ char *summary;
} expert_entry;
@@ -57,7 +57,7 @@ typedef struct expert_tapdata_t {
static void
expert_stat_reset(void *tapdata)
{
- gint n;
+ int n;
expert_tapdata_t *etd = (expert_tapdata_t *)tapdata;
/* Free & reallocate chunk of strings */
@@ -80,7 +80,7 @@ expert_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U
severity_level_t severity_level;
expert_entry tmp_entry;
expert_entry *entry;
- guint n;
+ unsigned n;
switch (ei->severity) {
case PI_COMMENT:
@@ -133,12 +133,12 @@ expert_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U
}
/* Output for all of the items of one severity */
-static void draw_items_for_severity(GArray *items, const gchar *label)
+static void draw_items_for_severity(GArray *items, const char *label)
{
- guint n;
+ unsigned n;
expert_entry *ei;
int total = 0;
- gchar *tmp_str;
+ char *tmp_str;
/* Don't print title if no items */
if (items->len == 0) {
@@ -188,7 +188,7 @@ static void
expert_tapdata_free(expert_tapdata_t* hs)
{
for (int n = 0; n < max_level; n++) {
- g_array_free(hs->ei_array[n], TRUE);
+ g_array_free(hs->ei_array[n], true);
}
g_string_chunk_free(hs->text);
g_free(hs);
@@ -249,7 +249,7 @@ static void expert_stat_init(const char *opt_arg, void *userdata _U_)
/* Allocate GArray for each severity level */
for (n=0; n < max_level; n++) {
- hs->ei_array[n] = g_array_sized_new(FALSE, FALSE, sizeof(expert_entry), 1000);
+ hs->ei_array[n] = g_array_sized_new(false, false, sizeof(expert_entry), 1000);
}
/**********************************************/
@@ -264,7 +264,7 @@ static void expert_stat_init(const char *opt_arg, void *userdata _U_)
(tap_finish_cb)expert_tapdata_free);
if (error_string) {
printf("Expert tap error (%s)!\n", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
expert_tapdata_free(hs);
exit(1);
}
diff --git a/ui/cli/tap-exportobject.c b/ui/cli/tap-exportobject.c
index 4a02155c37..2e2f6270bc 100644
--- a/ui/cli/tap-exportobject.c
+++ b/ui/cli/tap-exportobject.c
@@ -31,13 +31,13 @@ typedef struct _export_object_list_gui_t {
register_eo_t* eo;
} export_object_list_gui_t;
-static GHashTable* eo_opts = NULL;
+static GHashTable* eo_opts;
static bool
list_exportobject_protocol(const void *key, void *value _U_, void *userdata _U_)
{
- fprintf(stderr, " %s\n", (const gchar*)key);
- return FALSE;
+ fprintf(stderr, " %s\n", (const char*)key);
+ return false;
}
void eo_list_object_types(void)
@@ -45,9 +45,9 @@ void eo_list_object_types(void)
eo_iterate_tables(list_exportobject_protocol, NULL);
}
-gboolean eo_tap_opt_add(const char *option_string)
+bool eo_tap_opt_add(const char *option_string)
{
- gchar** splitted;
+ char** splitted;
if (!eo_opts)
eo_opts = g_hash_table_new(g_str_hash,g_str_equal);
@@ -62,7 +62,7 @@ gboolean eo_tap_opt_add(const char *option_string)
}
else
{
- gchar* dir = (gchar*)g_hash_table_lookup(eo_opts, splitted[0]);
+ char* dir = (char*)g_hash_table_lookup(eo_opts, splitted[0]);
/* Since we're saving all objects from a protocol,
it can only be listed once */
@@ -70,7 +70,7 @@ gboolean eo_tap_opt_add(const char *option_string)
g_hash_table_insert(eo_opts, splitted[0], splitted[1]);
g_free(splitted);
- return TRUE;
+ return true;
}
else
{
@@ -79,7 +79,7 @@ gboolean eo_tap_opt_add(const char *option_string)
}
g_strfreev(splitted);
- return FALSE;
+ return false;
}
static void
@@ -105,10 +105,10 @@ eo_draw(void *tapdata)
export_object_list_gui_t *object_list = (export_object_list_gui_t*)tap_object->gui_data;
GSList *slist = object_list->entries;
export_object_entry_t *entry;
- gchar* save_in_path = (gchar*)g_hash_table_lookup(eo_opts, proto_get_protocol_filter_name(get_eo_proto_id(object_list->eo)));
+ char* save_in_path = (char*)g_hash_table_lookup(eo_opts, proto_get_protocol_filter_name(get_eo_proto_id(object_list->eo)));
GString *safe_filename = NULL;
- gchar *save_as_fullpath = NULL;
- guint count = 0;
+ char *save_as_fullpath = NULL;
+ unsigned count = 0;
if (!g_file_test(save_in_path, G_FILE_TEST_IS_DIR)) {
/* If the destination directory (or its parents) do not exist, create them. */
@@ -136,7 +136,7 @@ eo_draw(void *tapdata)
EXPORT_OBJECT_MAXFILELEN, count);
}
save_as_fullpath = g_build_filename(save_in_path, safe_filename->str, NULL);
- g_string_free(safe_filename, TRUE);
+ g_string_free(safe_filename, true);
} while (g_file_test(save_as_fullpath, G_FILE_TEST_EXISTS) && ++count < prefs.gui_max_export_objects);
count = 0;
write_file_binary_mode(save_as_fullpath, entry->payload_data, entry->payload_len);
@@ -147,7 +147,7 @@ eo_draw(void *tapdata)
}
static void
-exportobject_handler(gpointer key, gpointer value _U_, gpointer user_data _U_)
+exportobject_handler(void *key, void *value _U_, void *user_data _U_)
{
GString *error_msg;
export_object_list_t *tap_data;
@@ -176,7 +176,7 @@ exportobject_handler(gpointer key, gpointer value _U_, gpointer user_data _U_)
if (error_msg) {
cmdarg_err("Can't register %s tap: %s", (const char*)key, error_msg->str);
- g_string_free(error_msg, TRUE);
+ g_string_free(error_msg, true);
g_free(tap_data);
g_free(object_list);
return;
diff --git a/ui/cli/tap-exportobject.h b/ui/cli/tap-exportobject.h
index 49ebc265ca..9c279d0031 100644
--- a/ui/cli/tap-exportobject.h
+++ b/ui/cli/tap-exportobject.h
@@ -17,7 +17,7 @@ extern "C" {
void eo_list_object_types(void);
/* will be called by main each time a --export-objects option is found */
-gboolean eo_tap_opt_add(const char *ws_optarg);
+bool eo_tap_opt_add(const char *ws_optarg);
void start_exportobjects(void);
diff --git a/ui/cli/tap-flow.c b/ui/cli/tap-flow.c
index 32e0a94f7e..c98dcba1b7 100644
--- a/ui/cli/tap-flow.c
+++ b/ui/cli/tap-flow.c
@@ -46,16 +46,16 @@ flow_draw(void *arg)
sequence_analysis_info_free(flow_info);
}
-static gboolean flow_arg_strncmp(const char **opt_argp, const char *strp)
+static bool flow_arg_strncmp(const char **opt_argp, const char *strp)
{
size_t len = strlen(strp);
if (strncmp(*opt_argp, strp, len) == 0)
{
*opt_argp += len;
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
static void
@@ -100,7 +100,7 @@ flow_init(const char *opt_argp, void *userdata)
{
sequence_analysis_list_free(flow_info);
sequence_analysis_info_free(flow_info);
- g_string_free(errp, TRUE);
+ g_string_free(errp, true);
flow_exit("Error registering tap listener.");
}
}
@@ -111,10 +111,10 @@ flow_register(const void *key _U_, void *value, void *userdata _U_)
register_analysis_t* analysis = (register_analysis_t*)value;
stat_tap_ui flow_ui;
GString *cmd_str = g_string_new(STR_FLOW);
- gchar *cli_string;
+ char *cli_string;
g_string_append(cmd_str, sequence_analysis_get_name(analysis));
- cli_string = g_string_free(cmd_str, FALSE);
+ cli_string = g_string_free(cmd_str, false);
flow_ui.group = REGISTER_STAT_GROUP_GENERIC;
flow_ui.title = NULL; /* construct this from the protocol info? */
@@ -124,7 +124,7 @@ flow_register(const void *key _U_, void *value, void *userdata _U_)
flow_ui.params = NULL;
register_stat_tap_ui(&flow_ui, analysis);
g_free(cli_string);
- return FALSE;
+ return false;
}
void
diff --git a/ui/cli/tap-follow.c b/ui/cli/tap-follow.c
index 51f8f0f72d..8edb385cce 100644
--- a/ui/cli/tap-follow.c
+++ b/ui/cli/tap-follow.c
@@ -45,8 +45,8 @@ typedef struct _cli_follow_info {
register_follow_t* follower;
/* range */
- guint32 chunkMin;
- guint32 chunkMax;
+ uint32_t chunkMin;
+ uint32_t chunkMax;
/* filter */
int stream_index;
@@ -54,7 +54,7 @@ typedef struct _cli_follow_info {
int port[2];
address addr[2];
union {
- guint32 addrBuf_v4;
+ uint32_t addrBuf_v4;
ws_in6_addr addrBuf_v6;
} addrBuf[2];
} cli_follow_info_t;
@@ -117,12 +117,12 @@ follow_free(follow_info_t *follow_info)
static const char bin2hex[] = {'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
-static void follow_print_hex(const char *prefixp, guint32 offset, void *datap, int len)
+static void follow_print_hex(const char *prefixp, uint32_t offset, void *datap, int len)
{
int ii;
int jj;
int kk;
- guint8 val;
+ uint8_t val;
char line[LINE_LEN + 1];
for (ii = 0, jj = 0, kk = 0; ii < len; )
@@ -141,7 +141,7 @@ static void follow_print_hex(const char *prefixp, guint32 offset, void *datap, i
kk = ASCII_START;
}
- val = ((guint8 *)datap)[ii];
+ val = ((uint8_t *)datap)[ii];
line[jj++] = bin2hex[val >> 4];
line[jj++] = bin2hex[val & 0xf];
@@ -177,17 +177,17 @@ static void follow_draw(void *contextp)
follow_info_t *follow_info = (follow_info_t*)contextp;
cli_follow_info_t* cli_follow_info = (cli_follow_info_t*)follow_info->gui_data;
- gchar buf[WS_INET6_ADDRSTRLEN];
- guint32 global_client_pos = 0, global_server_pos = 0;
- guint32 *global_pos;
- guint32 ii, jj;
+ char buf[WS_INET6_ADDRSTRLEN];
+ uint32_t global_client_pos = 0, global_server_pos = 0;
+ uint32_t *global_pos;
+ uint32_t ii, jj;
char *buffer;
wmem_strbuf_t *strbuf;
GList *cur;
follow_record_t *follow_record;
- guint chunk;
- gchar *b64encoded;
- const guint32 base64_raw_len = 57; /* Encodes to 76 bytes, common in RFCs */
+ unsigned chunk;
+ char *b64encoded;
+ const uint32_t base64_raw_len = 57; /* Encodes to 76 bytes, common in RFCs */
/* Print header */
switch (cli_follow_info->show_type)
@@ -342,7 +342,7 @@ static void follow_draw(void *contextp)
printf(" data: !!binary |\n");
ii = 0;
while (ii < follow_record->data->len) {
- guint32 len = ii + base64_raw_len < follow_record->data->len
+ uint32_t len = ii + base64_raw_len < follow_record->data->len
? base64_raw_len
: follow_record->data->len - ii;
b64encoded = g_base64_encode(&follow_record->data->data[ii], len);
@@ -369,16 +369,16 @@ static void follow_draw(void *contextp)
}
}
-static gboolean follow_arg_strncmp(const char **opt_argp, const char *strp)
+static bool follow_arg_strncmp(const char **opt_argp, const char *strp)
{
size_t len = strlen(strp);
if (strncmp(*opt_argp, strp, len) == 0)
{
*opt_argp += len;
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
static void
@@ -431,7 +431,7 @@ follow_arg_filter(const char **opt_argp, follow_info_t *follow_info)
unsigned int ii;
char addr[ADDR_LEN];
cli_follow_info_t* cli_follow_info = (cli_follow_info_t*)follow_info->gui_data;
- gboolean is_ipv6;
+ bool is_ipv6;
if (sscanf(*opt_argp, ",%d%n", &cli_follow_info->stream_index, &len) == 1 &&
((*opt_argp)[len] == 0 || (*opt_argp)[len] == ','))
@@ -452,18 +452,18 @@ follow_arg_filter(const char **opt_argp, follow_info_t *follow_info)
{
if (sscanf(*opt_argp, ADDRv6_FMT, addr, &cli_follow_info->port[ii], &len) == 2)
{
- is_ipv6 = TRUE;
+ is_ipv6 = true;
}
else if (sscanf(*opt_argp, ADDRv4_FMT, addr, &cli_follow_info->port[ii], &len) == 2)
{
- is_ipv6 = FALSE;
+ is_ipv6 = false;
}
else
{
follow_exit("Invalid address.");
}
- if (cli_follow_info->port[ii] <= 0 || cli_follow_info->port[ii] > G_MAXUINT16)
+ if (cli_follow_info->port[ii] <= 0 || cli_follow_info->port[ii] > UINT16_MAX)
{
follow_exit("Invalid port.");
}
@@ -503,7 +503,7 @@ static void follow_arg_range(const char **opt_argp, cli_follow_info_t* cli_follo
if (**opt_argp == 0)
{
cli_follow_info->chunkMin = 1;
- cli_follow_info->chunkMax = G_MAXUINT32;
+ cli_follow_info->chunkMax = UINT32_MAX;
}
else
{
@@ -595,7 +595,7 @@ static void follow_stream(const char *opt_argp, void *userdata)
if (errp != NULL)
{
follow_free(follow_info);
- g_string_free(errp, TRUE);
+ g_string_free(errp, true);
follow_exit("Error registering tap listener.");
}
}
@@ -605,7 +605,7 @@ follow_register(const void *key _U_, void *value, void *userdata _U_)
{
register_follow_t *follower = (register_follow_t*)value;
stat_tap_ui follow_ui;
- gchar *cli_string;
+ char *cli_string;
cli_string = follow_get_stat_tap_string(follower);
follow_ui.group = REGISTER_STAT_GROUP_GENERIC;
@@ -616,7 +616,7 @@ follow_register(const void *key _U_, void *value, void *userdata _U_)
follow_ui.params = NULL;
register_stat_tap_ui(&follow_ui, follower);
g_free(cli_string);
- return FALSE;
+ return false;
}
void
diff --git a/ui/cli/tap-funnel.c b/ui/cli/tap-funnel.c
index 9adfc29619..acfe213840 100644
--- a/ui/cli/tap-funnel.c
+++ b/ui/cli/tap-funnel.c
@@ -25,13 +25,13 @@
void register_tap_listener_funnel(void);
struct _funnel_text_window_t {
- gchar *title;
+ char *title;
GString *text;
};
-static GPtrArray *text_windows = NULL;
+static GPtrArray *text_windows;
-static funnel_text_window_t *new_text_window(funnel_ops_id_t *ops_id _U_, const gchar *title) {
+static funnel_text_window_t *new_text_window(funnel_ops_id_t *ops_id _U_, const char *title) {
funnel_text_window_t *tw = g_new(funnel_text_window_t, 1);
tw->title = g_strdup(title);
tw->text = g_string_new("");
@@ -45,7 +45,7 @@ static funnel_text_window_t *new_text_window(funnel_ops_id_t *ops_id _U_, const
}
static void text_window_clear(funnel_text_window_t *tw) {
- g_string_free(tw->text, TRUE);
+ g_string_free(tw->text, true);
tw->text = g_string_new("");
}
@@ -54,7 +54,7 @@ static void text_window_append(funnel_text_window_t *tw, const char *text ) {
}
static void text_window_set_text(funnel_text_window_t *tw, const char *text) {
- g_string_free(tw->text, TRUE);
+ g_string_free(tw->text, true);
tw->text = g_string_new(text);
}
@@ -62,7 +62,7 @@ static void text_window_prepend(funnel_text_window_t *tw, const char *text) {
g_string_prepend(tw->text, text);
}
-static const gchar *text_window_get_text(funnel_text_window_t *tw) {
+static const char *text_window_get_text(funnel_text_window_t *tw) {
return tw->text->str;
}
@@ -107,7 +107,7 @@ void initialize_funnel_ops(void) {
void funnel_dump_all_text_windows(void) {
- guint i;
+ unsigned i;
if (!text_windows) return;
@@ -118,23 +118,23 @@ void funnel_dump_all_text_windows(void) {
g_ptr_array_remove_index(text_windows, i);
g_free(tw->title);
- g_string_free(tw->text, TRUE);
+ g_string_free(tw->text, true);
g_free(tw);
}
}
#if 0
-GHashTable *menus = NULL;
+GHashTable *menus;
typedef struct _menu_cb_t {
- void (*callback)(gpointer);
+ void (*callback)(void *);
void *callback_data;
} menu_cb_t;
static void init_funnel_cmd(const char *opt_arg, void *data ) {
- gchar **args = g_strsplit(opt_arg, ",", 0);
- gchar **arg;
+ char **args = g_strsplit(opt_arg, ",", 0);
+ char **arg;
menu_cb_t *mcb = data;
for (arg = args; *arg ; arg++) {
@@ -149,9 +149,9 @@ static void init_funnel_cmd(const char *opt_arg, void *data ) {
static void register_menu_cb(const char *name,
register_stat_group_t group _U_,
- void (*callback)(gpointer),
- gpointer callback_data,
- gboolean retap _U_) {
+ void (*callback)(void *),
+ void *callback_data,
+ bool retap _U_) {
menu_cb_t* mcb = g_new(menu_cb_t, 1);
stat_tap_ui ui_info;
diff --git a/ui/cli/tap-gsm_astat.c b/ui/cli/tap-gsm_astat.c
index 1f0a792408..e53f22bf45 100644
--- a/ui/cli/tap-gsm_astat.c
+++ b/ui/cli/tap-gsm_astat.c
@@ -125,7 +125,7 @@ gsm_a_stat_draw(
void *tapdata)
{
gsm_a_stat_t *stat_p = (gsm_a_stat_t *)tapdata;
- guint8 i;
+ uint8_t i;
printf("\n");
@@ -324,7 +324,7 @@ gsm_a_stat_init(const char *opt_arg _U_, void *userdata _U_)
if (err_p != NULL)
{
g_free(stat_p);
- g_string_free(err_p, TRUE);
+ g_string_free(err_p, true);
exit(1);
}
diff --git a/ui/cli/tap-hosts.c b/ui/cli/tap-hosts.c
index c854e9e911..fadc9ff30d 100644
--- a/ui/cli/tap-hosts.c
+++ b/ui/cli/tap-hosts.c
@@ -25,13 +25,13 @@
void register_tap_listener_hosts(void);
-static gboolean dump_v4 = FALSE;
-static gboolean dump_v6 = FALSE;
+static bool dump_v4;
+static bool dump_v6;
#define TAP_NAME "hosts"
static void
-ipv4_hash_table_print_resolved(gpointer key _U_, gpointer value, gpointer user_data _U_)
+ipv4_hash_table_print_resolved(void *key _U_, void *value, void *user_data _U_)
{
hashipv4_t *ipv4_hash_table_entry = (hashipv4_t *)value;
@@ -43,7 +43,7 @@ ipv4_hash_table_print_resolved(gpointer key _U_, gpointer value, gpointer user_d
}
static void
-ipv6_hash_table_print_resolved(gpointer key _U_, gpointer value, gpointer user_data _U_)
+ipv6_hash_table_print_resolved(void *key _U_, void *value, void *user_data _U_)
{
hashipv6_t *ipv6_hash_table_entry = (hashipv6_t *)value;
@@ -88,25 +88,25 @@ static void
hosts_init(const char *opt_arg, void *userdata _U_)
{
GString *error_string;
- gchar **tokens;
- gint opt_count;
+ char **tokens;
+ int opt_count;
- dump_v4 = FALSE;
- dump_v6 = FALSE;
+ dump_v4 = false;
+ dump_v6 = false;
if (strcmp(TAP_NAME, opt_arg) == 0) {
/* No arguments; dump everything */
- dump_v4 = TRUE;
- dump_v6 = TRUE;
+ dump_v4 = true;
+ dump_v6 = true;
} else {
tokens = g_strsplit(opt_arg, ",", 0);
opt_count = 0;
while (tokens[opt_count]) {
if ((strcmp("ipv4", tokens[opt_count]) == 0) ||
(strcmp("ip", tokens[opt_count]) == 0)) {
- dump_v4 = TRUE;
+ dump_v4 = true;
} else if (strcmp("ipv6", tokens[opt_count]) == 0) {
- dump_v6 = TRUE;
+ dump_v6 = true;
} else if (opt_count > 0) {
cmdarg_err("invalid \"-z " TAP_NAME "[,ip|ipv4|ipv6]\" argument");
exit(1);
@@ -122,7 +122,7 @@ hosts_init(const char *opt_arg, void *userdata _U_)
/* error, we failed to attach to the tap. clean up */
cmdarg_err("Couldn't register " TAP_NAME " tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-httpstat.c b/ui/cli/tap-httpstat.c
index 7a5e593e4c..08c6a14839 100644
--- a/ui/cli/tap-httpstat.c
+++ b/ui/cli/tap-httpstat.c
@@ -39,16 +39,16 @@ typedef struct _http_stats_t {
* for example it can be { 3, 404, "Not Found" ,...}
* which means we captured 3 reply http/1.1 404 Not Found */
typedef struct _http_response_code_t {
- guint32 packets; /* 3 */
- guint response_code; /* 404 */
- const gchar *name; /* Not Found */
+ uint32_t packets; /* 3 */
+ unsigned response_code; /* 404 */
+ const char *name; /* Not Found */
httpstat_t *sp;
} http_response_code_t;
/* used to keep track of the stats for a specific request string */
typedef struct _http_request_methode_t {
- gchar *response; /* eg. : GET */
- guint32 packets;
+ char *response; /* eg. : GET */
+ uint32_t packets;
httpstat_t *sp;
} http_request_methode_t;
@@ -74,7 +74,7 @@ http_init_hash(httpstat_t *sp)
}
static void
-http_draw_hash_requests(gchar *key _U_, http_request_methode_t *data, gchar *format)
+http_draw_hash_requests(char *key _U_, http_request_methode_t *data, char *format)
{
if (data->packets == 0)
return;
@@ -82,7 +82,7 @@ http_draw_hash_requests(gchar *key _U_, http_request_methode_t *data, gchar *for
}
static void
-http_draw_hash_responses(gint * key _U_, http_response_code_t *data, char *format)
+http_draw_hash_responses(int * key _U_, http_response_code_t *data, char *format)
{
if (data == NULL) {
ws_warning("No data available, key=%d\n", *key);
@@ -98,19 +98,19 @@ http_draw_hash_responses(gint * key _U_, http_response_code_t *data, char *forma
/* NOT USED at this moment */
/*
static void
-http_free_hash(gpointer key, gpointer value, gpointer user_data _U_)
+http_free_hash(void *key, void *value, void *user_data _U_)
{
g_free(key);
g_free(value);
}
*/
static void
-http_reset_hash_responses(gchar *key _U_, http_response_code_t *data, gpointer ptr _U_)
+http_reset_hash_responses(char *key _U_, http_response_code_t *data, void *ptr _U_)
{
data->packets = 0;
}
static void
-http_reset_hash_requests(gchar *key _U_, http_request_methode_t *data, gpointer ptr _U_)
+http_reset_hash_requests(char *key _U_, http_request_methode_t *data, void *ptr _U_)
{
data->packets = 0;
}
@@ -146,7 +146,7 @@ httpstat_packet(void *psp, packet_info *pinfo _U_, epan_dissect_t *edt _U_, cons
/* Request or reply packets ? */
if (value->response_code != 0) {
http_response_code_t *sc;
- guint key = value->response_code;
+ unsigned key = value->response_code;
sc = (http_response_code_t *)g_hash_table_lookup(
sp->hash_responses,
@@ -217,10 +217,10 @@ httpstat_draw(void *psp)
printf("* HTTP Response Status Codes Packets\n");
g_hash_table_foreach(sp->hash_responses, (GHFunc)http_draw_hash_responses,
- (gpointer)" %3d %-35s %9d\n");
+ (void *)" %3d %-35s %9d\n");
printf("* HTTP Request Methods Packets\n");
g_hash_table_foreach(sp->hash_requests, (GHFunc)http_draw_hash_requests,
- (gpointer)" %-39s %9d \n");
+ (void *)" %-39s %9d \n");
printf("===================================================================\n");
}
@@ -261,7 +261,7 @@ httpstat_init(const char *opt_arg, void *userdata _U_)
g_free(sp);
cmdarg_err("Couldn't register http,stat tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
diff --git a/ui/cli/tap-icmpstat.c b/ui/cli/tap-icmpstat.c
index ac0f642329..820fb1bf36 100644
--- a/ui/cli/tap-icmpstat.c
+++ b/ui/cli/tap-icmpstat.c
@@ -36,10 +36,10 @@ void register_tap_listener_icmpstat(void);
typedef struct _icmpstat_t {
char *filter;
GSList *rt_list;
- guint num_rqsts;
- guint num_resps;
- guint min_frame;
- guint max_frame;
+ unsigned num_rqsts;
+ unsigned num_resps;
+ unsigned min_frame;
+ unsigned max_frame;
double min_msecs;
double max_msecs;
double tot_msecs;
@@ -64,11 +64,11 @@ icmpstat_reset(void *tapdata)
g_slist_free(icmpstat->rt_list);
memset(icmpstat, 0, sizeof(icmpstat_t));
- icmpstat->min_msecs = 1.0 * G_MAXUINT;
+ icmpstat->min_msecs = 1.0 * UINT_MAX;
}
-static gint compare_doubles(gconstpointer a, gconstpointer b)
+static int compare_doubles(gconstpointer a, gconstpointer b)
{
double ad, bd;
@@ -237,7 +237,7 @@ icmpstat_draw(void *tapdata)
100.0 * lost / icmpstat->num_rqsts);
printf("Minimum Maximum Mean Median SDeviation Min Frame Max Frame\n");
printf("%-10.3f%-10.3f%-10.3f%-10.3f%-10.3f %-10u%-10u\n",
- icmpstat->min_msecs >= G_MAXUINT ? 0.0 : icmpstat->min_msecs,
+ icmpstat->min_msecs >= UINT_MAX ? 0.0 : icmpstat->min_msecs,
icmpstat->max_msecs, mean, med, sdev,
icmpstat->min_frame, icmpstat->max_frame);
} else {
@@ -271,7 +271,7 @@ icmpstat_init(const char *opt_arg, void *userdata _U_)
exit(1);
}
memset(icmpstat, 0, sizeof(icmpstat_t));
- icmpstat->min_msecs = 1.0 * G_MAXUINT;
+ icmpstat->min_msecs = 1.0 * UINT_MAX;
icmpstat->filter = g_strdup(filter);
@@ -294,7 +294,7 @@ icmpstat_init(const char *opt_arg, void *userdata _U_)
g_free(icmpstat);
cmdarg_err("Couldn't register icmp,srt tap: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-icmpv6stat.c b/ui/cli/tap-icmpv6stat.c
index 94f8692acb..ca95d22c1f 100644
--- a/ui/cli/tap-icmpv6stat.c
+++ b/ui/cli/tap-icmpv6stat.c
@@ -37,10 +37,10 @@ void register_tap_listener_icmpv6stat(void);
typedef struct _icmpv6stat_t {
char *filter;
GSList *rt_list;
- guint num_rqsts;
- guint num_resps;
- guint min_frame;
- guint max_frame;
+ unsigned num_rqsts;
+ unsigned num_resps;
+ unsigned min_frame;
+ unsigned max_frame;
double min_msecs;
double max_msecs;
double tot_msecs;
@@ -65,11 +65,11 @@ icmpv6stat_reset(void *tapdata)
g_slist_free(icmpv6stat->rt_list);
memset(icmpv6stat, 0, sizeof(icmpv6stat_t));
- icmpv6stat->min_msecs = 1.0 * G_MAXUINT;
+ icmpv6stat->min_msecs = 1.0 * UINT_MAX;
}
-static gint compare_doubles(gconstpointer a, gconstpointer b)
+static int compare_doubles(gconstpointer a, gconstpointer b)
{
double ad, bd;
@@ -238,7 +238,7 @@ icmpv6stat_draw(void *tapdata)
100.0 * lost / icmpv6stat->num_rqsts);
printf("Minimum Maximum Mean Median SDeviation Min Frame Max Frame\n");
printf("%-10.3f%-10.3f%-10.3f%-10.3f%-10.3f %-10u%-10u\n",
- icmpv6stat->min_msecs >= G_MAXUINT ? 0.0 : icmpv6stat->min_msecs,
+ icmpv6stat->min_msecs >= UINT_MAX ? 0.0 : icmpv6stat->min_msecs,
icmpv6stat->max_msecs, mean, med, sdev,
icmpv6stat->min_frame, icmpv6stat->max_frame);
} else {
@@ -272,7 +272,7 @@ icmpv6stat_init(const char *opt_arg, void *userdata _U_)
exit(1);
}
memset(icmpv6stat, 0, sizeof(icmpv6stat_t));
- icmpv6stat->min_msecs = 1.0 * G_MAXUINT;
+ icmpv6stat->min_msecs = 1.0 * UINT_MAX;
icmpv6stat->filter = g_strdup(filter);
@@ -294,7 +294,7 @@ icmpv6stat_init(const char *opt_arg, void *userdata _U_)
g_free(icmpv6stat);
cmdarg_err("Couldn't register icmpv6,srt tap: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-iostat.c b/ui/cli/tap-iostat.c
index 83810b2333..d322261f42 100644
--- a/ui/cli/tap-iostat.c
+++ b/ui/cli/tap-iostat.c
@@ -50,34 +50,34 @@ static calc_type_ent_t calc_type_table[] = {
};
typedef struct _io_stat_t {
- guint64 interval; /* The user-specified time interval (us) */
- guint invl_prec; /* Decimal precision of the time interval (1=10s, 2=100s etc) */
+ uint64_t interval; /* The user-specified time interval (us) */
+ unsigned invl_prec; /* Decimal precision of the time interval (1=10s, 2=100s etc) */
unsigned int num_cols; /* The number of columns of stats in the table */
struct _io_stat_item_t *items; /* Each item is a single cell in the table */
time_t start_time; /* Time of first frame matching the filter */
const char **filters; /* 'io,stat' cmd strings (e.g., "AVG(smb.time)smb.time") */
- guint64 *max_vals; /* The max value sans the decimal or nsecs portion in each stat column */
- guint32 *max_frame; /* The max frame number displayed in each stat column */
+ uint64_t *max_vals; /* The max value sans the decimal or nsecs portion in each stat column */
+ uint32_t *max_frame; /* The max frame number displayed in each stat column */
} io_stat_t;
typedef struct _io_stat_item_t {
io_stat_t *parent;
struct _io_stat_item_t *next;
struct _io_stat_item_t *prev;
- guint64 start_time; /* Time since start of capture (us)*/
+ uint64_t start_time; /* Time since start of capture (us)*/
int calc_type; /* The statistic type */
int colnum; /* Column number of this stat (0 to n) */
int hf_index;
- guint32 frames;
- guint32 num; /* The sample size of a given statistic (only needed for AVG) */
- guint64 counter; /* The accumulated data for the calculation of that statistic */
- gfloat float_counter;
- gdouble double_counter;
+ uint32_t frames;
+ uint32_t num; /* The sample size of a given statistic (only needed for AVG) */
+ uint64_t counter; /* The accumulated data for the calculation of that statistic */
+ float float_counter;
+ double double_counter;
} io_stat_item_t;
-#define NANOSECS_PER_SEC G_GUINT64_CONSTANT(1000000000)
+#define NANOSECS_PER_SEC UINT64_C(1000000000)
-static guint64 last_relative_time;
+static uint64_t last_relative_time;
static tap_packet_status
iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *dummy _U_, tap_flags_t flags _U_)
@@ -85,10 +85,10 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
io_stat_t *parent;
io_stat_item_t *mit;
io_stat_item_t *it;
- guint64 relative_time, rt;
+ uint64_t relative_time, rt;
const nstime_t *new_time;
GPtrArray *gp;
- guint i;
+ unsigned i;
int ftype;
mit = (io_stat_item_t *) arg;
@@ -97,8 +97,8 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
/* If this frame's relative time is negative, set its relative time to last_relative_time
rather than disincluding it from the calculations. */
if ((pinfo->rel_ts.secs >= 0) && (pinfo->rel_ts.nsecs >= 0)) {
- relative_time = ((guint64)pinfo->rel_ts.secs * G_GUINT64_CONSTANT(1000000)) +
- ((guint64)((pinfo->rel_ts.nsecs+500)/1000));
+ relative_time = ((uint64_t)pinfo->rel_ts.secs * UINT64_C(1000000)) +
+ ((uint64_t)((pinfo->rel_ts.nsecs+500)/1000));
last_relative_time = relative_time;
} else {
relative_time = last_relative_time;
@@ -151,7 +151,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case CALC_TYPE_SUM:
gp = proto_get_finfo_ptr_array(edt->tree, it->hf_index);
if (gp) {
- guint64 val;
+ uint64_t val;
for (i=0; i<gp->len; i++) {
switch (proto_registrar_get_ftype(it->hf_index)) {
@@ -177,18 +177,18 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case FT_INT48:
case FT_INT56:
case FT_INT64:
- it->counter += (gint64)fvalue_get_sinteger64(((field_info *)gp->pdata[i])->value);
+ it->counter += (int64_t)fvalue_get_sinteger64(((field_info *)gp->pdata[i])->value);
break;
case FT_FLOAT:
it->float_counter +=
- (gfloat)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
+ (float)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
break;
case FT_DOUBLE:
it->double_counter += fvalue_get_floating(((field_info *)gp->pdata[i])->value);
break;
case FT_RELATIVE_TIME:
new_time = fvalue_get_time(((field_info *)gp->pdata[i])->value);
- val = ((guint64)new_time->secs * NANOSECS_PER_SEC) + (guint64)new_time->nsecs;
+ val = ((uint64_t)new_time->secs * NANOSECS_PER_SEC) + (uint64_t)new_time->nsecs;
it->counter += val;
break;
default:
@@ -205,9 +205,9 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case CALC_TYPE_MIN:
gp = proto_get_finfo_ptr_array(edt->tree, it->hf_index);
if (gp) {
- guint64 val;
- gfloat float_val;
- gdouble double_val;
+ uint64_t val;
+ float float_val;
+ double double_val;
ftype = proto_registrar_get_ftype(it->hf_index);
for (i=0; i<gp->len; i++) {
@@ -235,7 +235,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case FT_INT24:
case FT_INT32:
val = fvalue_get_sinteger(((field_info *)gp->pdata[i])->value);
- if ((it->frames == 1 && i == 0) || ((gint32)val < (gint32)it->counter)) {
+ if ((it->frames == 1 && i == 0) || ((int32_t)val < (int32_t)it->counter)) {
it->counter = val;
}
break;
@@ -244,12 +244,12 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case FT_INT56:
case FT_INT64:
val = fvalue_get_sinteger64(((field_info *)gp->pdata[i])->value);
- if ((it->frames == 1 && i == 0) || ((gint64)val < (gint64)it->counter)) {
+ if ((it->frames == 1 && i == 0) || ((int64_t)val < (int64_t)it->counter)) {
it->counter = val;
}
break;
case FT_FLOAT:
- float_val = (gfloat)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
+ float_val = (float)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
if ((it->frames == 1 && i == 0) || (float_val < it->float_counter)) {
it->float_counter = float_val;
}
@@ -262,7 +262,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
break;
case FT_RELATIVE_TIME:
new_time = fvalue_get_time(((field_info *)gp->pdata[i])->value);
- val = ((guint64)new_time->secs * NANOSECS_PER_SEC) + (guint64)new_time->nsecs;
+ val = ((uint64_t)new_time->secs * NANOSECS_PER_SEC) + (uint64_t)new_time->nsecs;
if ((it->frames == 1 && i == 0) || (val < it->counter)) {
it->counter = val;
}
@@ -281,9 +281,9 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case CALC_TYPE_MAX:
gp = proto_get_finfo_ptr_array(edt->tree, it->hf_index);
if (gp) {
- guint64 val;
- gfloat float_val;
- gdouble double_val;
+ uint64_t val;
+ float float_val;
+ double double_val;
ftype = proto_registrar_get_ftype(it->hf_index);
for (i=0; i<gp->len; i++) {
@@ -309,7 +309,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case FT_INT24:
case FT_INT32:
val = fvalue_get_sinteger(((field_info *)gp->pdata[i])->value);
- if ((gint32)val > (gint32)it->counter)
+ if ((int32_t)val > (int32_t)it->counter)
it->counter = val;
break;
case FT_INT40:
@@ -317,11 +317,11 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case FT_INT56:
case FT_INT64:
val = fvalue_get_sinteger64(((field_info *)gp->pdata[i])->value);
- if ((gint64)val > (gint64)it->counter)
+ if ((int64_t)val > (int64_t)it->counter)
it->counter = val;
break;
case FT_FLOAT:
- float_val = (gfloat)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
+ float_val = (float)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
if (float_val > it->float_counter)
it->float_counter = float_val;
break;
@@ -332,7 +332,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
break;
case FT_RELATIVE_TIME:
new_time = fvalue_get_time(((field_info *)gp->pdata[i])->value);
- val = ((guint64)new_time->secs * NANOSECS_PER_SEC) + (guint64)new_time->nsecs;
+ val = ((uint64_t)new_time->secs * NANOSECS_PER_SEC) + (uint64_t)new_time->nsecs;
if (val > it->counter)
it->counter = val;
break;
@@ -350,7 +350,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
case CALC_TYPE_AVG:
gp = proto_get_finfo_ptr_array(edt->tree, it->hf_index);
if (gp) {
- guint64 val;
+ uint64_t val;
ftype = proto_registrar_get_ftype(it->hf_index);
for (i=0; i<gp->len; i++) {
@@ -385,14 +385,14 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
it->counter += val;
break;
case FT_FLOAT:
- it->float_counter += (gfloat)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
+ it->float_counter += (float)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
break;
case FT_DOUBLE:
it->double_counter += fvalue_get_floating(((field_info *)gp->pdata[i])->value);
break;
case FT_RELATIVE_TIME:
new_time = fvalue_get_time(((field_info *)gp->pdata[i])->value);
- val = ((guint64)new_time->secs * NANOSECS_PER_SEC) + (guint64)new_time->nsecs;
+ val = ((uint64_t)new_time->secs * NANOSECS_PER_SEC) + (uint64_t)new_time->nsecs;
it->counter += val;
break;
default:
@@ -416,18 +416,18 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
exit(10);
}
for (i=0; i<gp->len; i++) {
- guint64 val;
+ uint64_t val;
int tival;
io_stat_item_t *pit;
new_time = fvalue_get_time(((field_info *)gp->pdata[i])->value);
- val = ((guint64)new_time->secs*G_GUINT64_CONSTANT(1000000)) + (guint64)(new_time->nsecs/1000);
+ val = ((uint64_t)new_time->secs*UINT64_C(1000000)) + (uint64_t)(new_time->nsecs/1000);
tival = (int)(val % parent->interval);
it->counter += tival;
val -= tival;
pit = it->prev;
while (val > 0) {
- if (val < (guint64)parent->interval) {
+ if (val < (uint64_t)parent->interval) {
pit->counter += val;
break;
}
@@ -466,11 +466,11 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
switch (ftype) {
case FT_FLOAT:
parent->max_vals[it->colnum] =
- MAX(parent->max_vals[it->colnum], (guint64)(it->float_counter+0.5));
+ MAX(parent->max_vals[it->colnum], (uint64_t)(it->float_counter+0.5));
break;
case FT_DOUBLE:
parent->max_vals[it->colnum] =
- MAX(parent->max_vals[it->colnum], (guint64)(it->double_counter+0.5));
+ MAX(parent->max_vals[it->colnum], (uint64_t)(it->double_counter+0.5));
break;
case FT_RELATIVE_TIME:
parent->max_vals[it->colnum] =
@@ -490,15 +490,15 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
switch (ftype) {
case FT_FLOAT:
parent->max_vals[it->colnum] =
- MAX(parent->max_vals[it->colnum], (guint64)it->float_counter/it->num);
+ MAX(parent->max_vals[it->colnum], (uint64_t)it->float_counter/it->num);
break;
case FT_DOUBLE:
parent->max_vals[it->colnum] =
- MAX(parent->max_vals[it->colnum], (guint64)it->double_counter/it->num);
+ MAX(parent->max_vals[it->colnum], (uint64_t)it->double_counter/it->num);
break;
case FT_RELATIVE_TIME:
parent->max_vals[it->colnum] =
- MAX(parent->max_vals[it->colnum], ((it->counter/(guint64)it->num) + G_GUINT64_CONSTANT(500000000)) / NANOSECS_PER_SEC);
+ MAX(parent->max_vals[it->colnum], ((it->counter/(uint64_t)it->num) + UINT64_C(500000000)) / NANOSECS_PER_SEC);
break;
default:
/* UINT16-64 and INT8-64 */
@@ -511,7 +511,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt, const void *du
}
static unsigned int
-magnitude (guint64 val, unsigned int max_w)
+magnitude (uint64_t val, unsigned int max_w)
{
unsigned int i, mag = 0;
@@ -553,8 +553,8 @@ typedef struct {
static void
iostat_draw(void *arg)
{
- guint32 num;
- guint64 interval, duration, t, invl_end, dv;
+ uint32_t num;
+ uint64_t interval, duration, t, invl_end, dv;
unsigned int i, j, k, num_cols, num_rows, dur_secs_orig, dur_nsecs_orig, dur_secs, dur_nsecs, dur_mag,
invl_mag, invl_prec, tabrow_w, borderlen, invl_col_w, numpad = 1, namelen, len_filt, type,
maxfltr_w, ftype;
@@ -562,9 +562,9 @@ iostat_draw(void *arg)
unsigned int val_mag; /* The magnitude of the max value in this column */
char *spaces, *spaces_s, *filler_s = NULL, **fmts, *fmt = NULL;
const char *filter;
- static gchar dur_mag_s[3], invl_prec_s[3], fr_mag_s[3], val_mag_s[3], *invl_fmt, *full_fmt;
+ static char dur_mag_s[3], invl_prec_s[3], fr_mag_s[3], val_mag_s[3], *invl_fmt, *full_fmt;
io_stat_item_t *mit, **stat_cols, *item, **item_in_column;
- gboolean last_row = FALSE;
+ bool last_row = false;
io_stat_t *iot;
column_width *col_w;
struct tm *tm_time;
@@ -575,8 +575,8 @@ iostat_draw(void *arg)
num_cols = iot->num_cols;
col_w = g_new(column_width, num_cols);
fmts = (char **)g_malloc(sizeof(char *) * num_cols);
- duration = ((guint64)cfile.elapsed_time.secs * G_GUINT64_CONSTANT(1000000)) +
- (guint64)((cfile.elapsed_time.nsecs + 500) / 1000);
+ duration = ((uint64_t)cfile.elapsed_time.secs * UINT64_C(1000000)) +
+ (uint64_t)((cfile.elapsed_time.nsecs + 500) / 1000);
/* Store the pointer to each stat column */
stat_cols = (io_stat_item_t **)g_malloc(sizeof(io_stat_item_t *) * num_cols);
@@ -585,23 +585,23 @@ iostat_draw(void *arg)
/* The following prevents gross inaccuracies when the user specifies an interval that is greater
* than the capture duration. */
- if (iot->interval > duration || iot->interval == G_MAXUINT64) {
+ if (iot->interval > duration || iot->interval == UINT64_MAX) {
interval = duration;
- iot->interval = G_MAXUINT64;
+ iot->interval = UINT64_MAX;
} else {
interval = iot->interval;
}
/* Calc the capture duration's magnitude (dur_mag) */
- dur_secs = (unsigned int)(duration/G_GUINT64_CONSTANT(1000000));
+ dur_secs = (unsigned int)(duration/UINT64_C(1000000));
dur_secs_orig = dur_secs;
- dur_nsecs = (unsigned int)(duration%G_GUINT64_CONSTANT(1000000));
+ dur_nsecs = (unsigned int)(duration%UINT64_C(1000000));
dur_nsecs_orig = dur_nsecs;
- dur_mag = magnitude((guint64)dur_secs, 5);
+ dur_mag = magnitude((uint64_t)dur_secs, 5);
snprintf(dur_mag_s, 3, "%u", dur_mag);
/* Calc the interval's magnitude */
- invl_mag = magnitude(interval/G_GUINT64_CONSTANT(1000000), 5);
+ invl_mag = magnitude(interval/UINT64_C(1000000), 5);
/* Set or get the interval precision */
if (interval == duration) {
@@ -628,13 +628,13 @@ iostat_draw(void *arg)
if ((duration%dv) > 5*(dv/10)) {
duration += 5*(dv/10);
duration = (duration/dv) * dv;
- dur_secs = (unsigned int)(duration/G_GUINT64_CONSTANT(1000000));
- dur_nsecs = (unsigned int)(duration%G_GUINT64_CONSTANT(1000000));
+ dur_secs = (unsigned int)(duration/UINT64_C(1000000));
+ dur_nsecs = (unsigned int)(duration%UINT64_C(1000000));
/*
* Recalc dur_mag in case rounding has increased its magnitude */
- dur_mag = magnitude((guint64)dur_secs, 5);
+ dur_mag = magnitude((uint64_t)dur_secs, 5);
}
- if (iot->interval == G_MAXUINT64)
+ if (iot->interval == UINT64_MAX)
interval = duration;
/* Calc the width of the time interval column (incl borders and padding). */
@@ -723,7 +723,7 @@ iostat_draw(void *arg)
if (type == CALC_TYPE_LOAD) {
iot->max_vals[j] /= interval;
} else if (type != CALC_TYPE_AVG) {
- iot->max_vals[j] = (iot->max_vals[j] + G_GUINT64_CONSTANT(500000000)) / NANOSECS_PER_SEC;
+ iot->max_vals[j] = (iot->max_vals[j] + UINT64_C(500000000)) / NANOSECS_PER_SEC;
}
val_mag = magnitude(iot->max_vals[j], 15);
snprintf(val_mag_s, 3, "%u", val_mag);
@@ -808,7 +808,7 @@ iostat_draw(void *arg)
g_free(full_fmt);
full_fmt = g_strconcat("| Interval: ", invl_fmt, " secs%s|\n", NULL);
spaces_s = &spaces[18 + dur_mag];
- printf(full_fmt, (guint32)(interval/G_GUINT64_CONSTANT(1000000)), spaces_s);
+ printf(full_fmt, (uint32_t)(interval/UINT64_C(1000000)), spaces_s);
} else {
snprintf(invl_prec_s, 3, "%u", invl_prec);
invl_fmt = g_strconcat("%", dur_mag_s, "u.%0", invl_prec_s, "u", NULL);
@@ -819,8 +819,8 @@ iostat_draw(void *arg)
full_fmt = g_strconcat("| Interval: ", invl_fmt, " secs%s|\n", NULL);
spaces_s = &spaces[19 + dur_mag + invl_prec];
- printf(full_fmt, (guint32)(interval/G_GUINT64_CONSTANT(1000000)),
- (guint32)((interval%G_GUINT64_CONSTANT(1000000))/dv), spaces_s);
+ printf(full_fmt, (uint32_t)(interval/UINT64_C(1000000)),
+ (uint32_t)((interval%UINT64_C(1000000))/dv), spaces_s);
}
g_free(full_fmt);
@@ -850,24 +850,24 @@ iostat_draw(void *arg)
}
printf("|\n");
} else {
- gchar *sfilter1, *sfilter2;
- const gchar *pos;
- gsize len;
+ char *sfilter1, *sfilter2;
+ const char *pos;
+ size_t len;
unsigned int next_start, max_w = borderlen-11;
do {
if (len_filt > max_w) {
- sfilter1 = g_strndup(filter, (gsize) max_w);
+ sfilter1 = g_strndup(filter, (size_t) max_w);
/*
* Find the pos of the last space in sfilter1. If a space is found, set
* sfilter2 to the string prior to that space and print it; otherwise, wrap
* the filter at max_w. */
pos = g_strrstr(sfilter1, " ");
if (pos) {
- len = (gsize)(pos-sfilter1);
+ len = (size_t)(pos-sfilter1);
next_start = (unsigned int) len+1;
} else {
- len = (gsize) strlen(sfilter1);
+ len = (size_t) strlen(sfilter1);
next_start = (unsigned int)len;
}
sfilter2 = g_strndup(sfilter1, len);
@@ -985,7 +985,7 @@ iostat_draw(void *arg)
for (i=0; i<num_rows; i++) {
if (i == num_rows-1)
- last_row = TRUE;
+ last_row = true;
/* Compute the interval for this row */
if (!last_row) {
@@ -996,7 +996,7 @@ iostat_draw(void *arg)
/* Patch for Absolute Time */
/* XXX - has a Y2.038K problem with 32-bit time_t */
- the_time = (time_t)(iot->start_time + (t/G_GUINT64_CONSTANT(1000000)));
+ the_time = (time_t)(iot->start_time + (t/UINT64_C(1000000)));
/* Display the interval for this row */
switch (timestamp_get_type()) {
@@ -1087,16 +1087,16 @@ iostat_draw(void *arg)
full_fmt = g_strconcat( dur_mag == 1 ? "| " : "| ",
invl_fmt, " <> ", "%-",
dur_mag_s, "s|", NULL);
- printf(full_fmt, (guint32)(t/G_GUINT64_CONSTANT(1000000)), "Dur");
+ printf(full_fmt, (uint32_t)(t/UINT64_C(1000000)), "Dur");
} else {
- printf(full_fmt, (guint32)(t/G_GUINT64_CONSTANT(1000000)),
- (guint32)(invl_end/G_GUINT64_CONSTANT(1000000)));
+ printf(full_fmt, (uint32_t)(t/UINT64_C(1000000)),
+ (uint32_t)(invl_end/UINT64_C(1000000)));
}
} else {
- printf(full_fmt, (guint32)(t/G_GUINT64_CONSTANT(1000000)),
- (guint32)(t%G_GUINT64_CONSTANT(1000000) / dv),
- (guint32)(invl_end/G_GUINT64_CONSTANT(1000000)),
- (guint32)(invl_end%G_GUINT64_CONSTANT(1000000) / dv));
+ printf(full_fmt, (uint32_t)(t/UINT64_C(1000000)),
+ (uint32_t)(t%UINT64_C(1000000) / dv),
+ (uint32_t)(invl_end/UINT64_C(1000000)),
+ (uint32_t)(invl_end%UINT64_C(1000000) / dv));
}
break;
/* case TS_DELTA:
@@ -1137,10 +1137,10 @@ iostat_draw(void *arg)
printf(fmt, item->double_counter);
break;
case FT_RELATIVE_TIME:
- item->counter = (item->counter + G_GUINT64_CONSTANT(500)) / G_GUINT64_CONSTANT(1000);
+ item->counter = (item->counter + UINT64_C(500)) / UINT64_C(1000);
printf(fmt,
- (int)(item->counter/G_GUINT64_CONSTANT(1000000)),
- (int)(item->counter%G_GUINT64_CONSTANT(1000000)));
+ (int)(item->counter/UINT64_C(1000000)),
+ (int)(item->counter%UINT64_C(1000000)));
break;
default:
printf(fmt, item->counter);
@@ -1161,13 +1161,13 @@ iostat_draw(void *arg)
printf(fmt, item->double_counter/num);
break;
case FT_RELATIVE_TIME:
- item->counter = ((item->counter / (guint64)num) + G_GUINT64_CONSTANT(500)) / G_GUINT64_CONSTANT(1000);
+ item->counter = ((item->counter / (uint64_t)num) + UINT64_C(500)) / UINT64_C(1000);
printf(fmt,
- (int)(item->counter/G_GUINT64_CONSTANT(1000000)),
- (int)(item->counter%G_GUINT64_CONSTANT(1000000)));
+ (int)(item->counter/UINT64_C(1000000)),
+ (int)(item->counter%UINT64_C(1000000)));
break;
default:
- printf(fmt, item->counter / (guint64)num);
+ printf(fmt, item->counter / (uint64_t)num);
break;
}
break;
@@ -1179,11 +1179,11 @@ iostat_draw(void *arg)
if (!last_row) {
printf(fmt,
(int) (item->counter/interval),
- (int)((item->counter%interval)*G_GUINT64_CONSTANT(1000000) / interval));
+ (int)((item->counter%interval)*UINT64_C(1000000) / interval));
} else {
printf(fmt,
(int) (item->counter/(invl_end-t)),
- (int)((item->counter%(invl_end-t))*G_GUINT64_CONSTANT(1000000) / (invl_end-t)));
+ (int)((item->counter%(invl_end-t))*UINT64_C(1000000) / (invl_end-t)));
}
break;
}
@@ -1196,7 +1196,7 @@ iostat_draw(void *arg)
item_in_column[j] = item_in_column[j]->next;
}
} else {
- printf(fmt, (guint64)0, (guint64)0);
+ printf(fmt, (uint64_t)0, (uint64_t)0);
}
}
if (filler_s)
@@ -1379,7 +1379,7 @@ register_io_tap(io_stat_t *io, unsigned int i, const char *filter)
g_free(io);
fprintf(stderr, "\ntshark: Couldn't register io,stat tap: %s\n",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
@@ -1387,11 +1387,11 @@ register_io_tap(io_stat_t *io, unsigned int i, const char *filter)
static void
iostat_init(const char *opt_arg, void *userdata _U_)
{
- gdouble interval_float;
- guint32 idx = 0;
+ double interval_float;
+ uint32_t idx = 0;
unsigned int i;
io_stat_t *io;
- const gchar *filters, *str, *pos;
+ const char *filters, *str, *pos;
if ((*(opt_arg+(strlen(opt_arg)-1)) == ',') ||
(sscanf(opt_arg, "io,stat,%lf%n", &interval_float, (int *)&idx) != 1) ||
@@ -1427,13 +1427,13 @@ iostat_init(const char *opt_arg, void *userdata _U_)
io = g_new(io_stat_t, 1);
/* If interval is 0, calculate statistics over the whole file by setting the interval to
- * G_MAXUINT64 */
+ * UINT64_MAX */
if (interval_float == 0) {
- io->interval = G_MAXUINT64;
+ io->interval = UINT64_MAX;
io->invl_prec = 0;
} else {
/* Set interval to the number of us rounded to the nearest integer */
- io->interval = (guint64)(interval_float * 1000000.0 + 0.5);
+ io->interval = (uint64_t)(interval_float * 1000000.0 + 0.5);
/*
* Determine what interval precision the user has specified */
io->invl_prec = 6;
@@ -1450,8 +1450,8 @@ iostat_init(const char *opt_arg, void *userdata _U_)
interval of 1 and the last interval becomes "9 <> 9". If the interval is instead set to
1.1, the last interval becomes
last interval is rounded up to value that is greater than the duration. */
- const gchar *invl_start = opt_arg+8;
- gchar *intv_end;
+ const char *invl_start = opt_arg+8;
+ char *intv_end;
int invl_len;
intv_end = g_strstr_len(invl_start, -1, ",");
@@ -1487,8 +1487,8 @@ iostat_init(const char *opt_arg, void *userdata _U_)
io->items = g_new(io_stat_item_t, io->num_cols);
io->filters = (const char **)g_malloc(sizeof(char *) * io->num_cols);
- io->max_vals = g_new(guint64, io->num_cols);
- io->max_frame = g_new(guint32, io->num_cols);
+ io->max_vals = g_new(uint64_t, io->num_cols);
+ io->max_frame = g_new(uint32_t, io->num_cols);
for (i=0; i<io->num_cols; i++) {
io->max_vals[i] = 0;
@@ -1499,23 +1499,23 @@ iostat_init(const char *opt_arg, void *userdata _U_)
if ((!filters) || (filters[0] == 0)) {
register_io_tap(io, 0, NULL);
} else {
- gchar *filter;
+ char *filter;
i = 0;
str = filters;
do {
- pos = (gchar*) strchr(str, ',');
+ pos = (char*) strchr(str, ',');
if (pos == str) {
register_io_tap(io, i, NULL);
} else if (pos == NULL) {
- str = (const char*) g_strstrip((gchar*)str);
+ str = (const char*) g_strstrip((char*)str);
filter = g_strdup(str);
if (*filter)
register_io_tap(io, i, filter);
else
register_io_tap(io, i, NULL);
} else {
- filter = (gchar *)g_malloc((pos-str)+1);
- (void) g_strlcpy( filter, str, (gsize) ((pos-str)+1));
+ filter = (char *)g_malloc((pos-str)+1);
+ (void) g_strlcpy( filter, str, (size_t) ((pos-str)+1));
filter = g_strstrip(filter);
register_io_tap(io, i, (char *) filter);
}
diff --git a/ui/cli/tap-iousers.c b/ui/cli/tap-iousers.c
index 742f984c96..fe6b97e8d5 100644
--- a/ui/cli/tap-iousers.c
+++ b/ui/cli/tap-iousers.c
@@ -32,10 +32,10 @@ iousers_draw(void *arg)
conv_hash_t *hash = (conv_hash_t*)arg;
io_users_t *iu = (io_users_t *)hash->user_data;
conv_item_t *iui;
- guint64 last_frames, max_frames;
+ uint64_t last_frames, max_frames;
struct tm * tm_time;
- guint i;
- gboolean display_ports = (!strncmp(iu->type, "TCP", 3) || !strncmp(iu->type, "UDP", 3) || !strncmp(iu->type, "SCTP", 4)) ? TRUE : FALSE;
+ unsigned i;
+ bool display_ports = (!strncmp(iu->type, "TCP", 3) || !strncmp(iu->type, "UDP", 3) || !strncmp(iu->type, "SCTP", 4)) ? true : false;
printf("================================================================================\n");
printf("%s Conversations\n", iu->type);
@@ -78,7 +78,7 @@ iousers_draw(void *arg)
do {
last_frames = 0;
for (i=0; (iu->hash.conv_array && i < iu->hash.conv_array->len); i++) {
- guint64 tot_frames;
+ uint64_t tot_frames;
iui = &g_array_index(iu->hash.conv_array, conv_item_t, i);
tot_frames = iui->rx_frames + iui->tx_frames;
@@ -89,7 +89,7 @@ iousers_draw(void *arg)
}
for (i=0; (iu->hash.conv_array && i < iu->hash.conv_array->len); i++) {
- guint64 tot_frames;
+ uint64_t tot_frames;
char *src_addr, *dst_addr;
iui = &g_array_index(iu->hash.conv_array, conv_item_t, i);
@@ -103,12 +103,12 @@ iousers_draw(void *arg)
total_bytes = format_size(iui->tx_bytes + iui->rx_bytes, FORMAT_SIZE_UNIT_BYTES, 0);
/* XXX - TODO: make name / port resolution configurable (through gbl_resolv_flags?) */
- src_addr = get_conversation_address(NULL, &iui->src_address, TRUE);
- dst_addr = get_conversation_address(NULL, &iui->dst_address, TRUE);
+ src_addr = get_conversation_address(NULL, &iui->src_address, true);
+ dst_addr = get_conversation_address(NULL, &iui->dst_address, true);
if (display_ports) {
char *src, *dst, *src_port, *dst_port;
- src_port = get_conversation_port(NULL, iui->src_port, iui->ctype, TRUE);
- dst_port = get_conversation_port(NULL, iui->dst_port, iui->ctype, TRUE);
+ src_port = get_conversation_port(NULL, iui->src_port, iui->ctype, true);
+ dst_port = get_conversation_port(NULL, iui->dst_port, iui->ctype, true);
src = wmem_strconcat(NULL, src_addr, ":", src_port, NULL);
dst = wmem_strconcat(NULL, dst_addr, ":", dst_port, NULL);
printf("%-26s <-> %-26s %6" PRIu64 " %-9s"
@@ -247,7 +247,7 @@ void init_iousers(struct register_ct *ct, const char *filter)
g_free(iu);
cmdarg_err("Couldn't register conversations tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
diff --git a/ui/cli/tap-macltestat.c b/ui/cli/tap-macltestat.c
index 25dfbe4fbf..8b1b9bd686 100644
--- a/ui/cli/tap-macltestat.c
+++ b/ui/cli/tap-macltestat.c
@@ -45,7 +45,7 @@ enum {
};
-static const gchar *ue_titles[] = { "RAT", " RNTI", " Type", "UEId",
+static const char *ue_titles[] = { "RAT", " RNTI", " Type", "UEId",
"UL Frames", "UL Bytes", "UL Mb/sec", " UL Pad %", "UL ReTX",
"DL Frames", "DL Bytes", "DL Mb/sec", " DL Pad %", "DL CRC Fail", "DL ReTX"};
@@ -54,30 +54,30 @@ static const gchar *ue_titles[] = { "RAT", " RNTI", " Type", "UEId",
typedef struct mac_lte_nr_row_data {
/* Key for matching this row */
uint8_t rat;
- guint16 rnti;
- guint8 rnti_type;
- guint16 ueid;
+ uint16_t rnti;
+ uint8_t rnti_type;
+ uint16_t ueid;
- gboolean is_predefined_data;
+ bool is_predefined_data;
- guint32 UL_frames;
- guint32 UL_raw_bytes; /* all bytes */
- guint32 UL_total_bytes; /* payload */
+ uint32_t UL_frames;
+ uint32_t UL_raw_bytes; /* all bytes */
+ uint32_t UL_total_bytes; /* payload */
nstime_t UL_time_start;
nstime_t UL_time_stop;
- guint32 UL_padding_bytes;
- guint32 UL_CRC_errors;
- guint32 UL_retx_frames;
+ uint32_t UL_padding_bytes;
+ uint32_t UL_CRC_errors;
+ uint32_t UL_retx_frames;
- guint32 DL_frames;
- guint32 DL_raw_bytes; /* all bytes */
- guint32 DL_total_bytes;
+ uint32_t DL_frames;
+ uint32_t DL_raw_bytes; /* all bytes */
+ uint32_t DL_total_bytes;
nstime_t DL_time_start;
nstime_t DL_time_stop;
- guint32 DL_padding_bytes;
+ uint32_t DL_padding_bytes;
- guint32 DL_CRC_failures;
- guint32 DL_retx_frames;
+ uint32_t DL_CRC_failures;
+ uint32_t DL_retx_frames;
} mac_lte_nr_row_data;
@@ -91,18 +91,18 @@ typedef struct mac_lte_ep {
/* Common channel stats (i.e. independent of UEs) */
typedef struct mac_lte_common_stats {
- guint32 all_frames;
- guint32 mib_frames;
- guint32 sib_frames;
- guint32 sib_bytes;
- guint32 pch_frames;
- guint32 pch_bytes;
- guint32 pch_paging_ids;
- guint32 rar_frames;
- guint32 rar_entries;
-
- guint16 max_ul_ues_in_tti;
- guint16 max_dl_ues_in_tti;
+ uint32_t all_frames;
+ uint32_t mib_frames;
+ uint32_t sib_frames;
+ uint32_t sib_bytes;
+ uint32_t pch_frames;
+ uint32_t pch_bytes;
+ uint32_t pch_paging_ids;
+ uint32_t rar_frames;
+ uint32_t rar_entries;
+
+ uint16_t max_ul_ues_in_tti;
+ uint16_t max_dl_ues_in_tti;
} mac_lte_common_stats;
@@ -112,10 +112,10 @@ typedef struct mac_lte_nr_stat_t {
mac_lte_common_stats common_stats;
/* Keep track of unique rntis & ueids. N.B. only used for counting number of UEs - not for lookup */
- guint8 used_ueids[65535];
- guint8 used_rntis[65535];
- guint16 number_of_ueids;
- guint16 number_of_rntis;
+ uint8_t used_ueids[65535];
+ uint8_t used_rntis[65535];
+ uint16_t number_of_ueids;
+ uint16_t number_of_rntis;
/* List of UE entries */
mac_lte_ep_t *ep_list;
@@ -187,7 +187,7 @@ static mac_lte_ep_t *alloc_mac_lte_ep(const struct mac_3gpp_tap_info *si, packet
/* Update counts of unique rntis & ueids */
-static void update_ueid_rnti_counts(guint16 rnti, guint16 ueid, mac_lte_nr_stat_t *hs)
+static void update_ueid_rnti_counts(uint16_t rnti, uint16_t ueid, mac_lte_nr_stat_t *hs)
{
if (hs->number_of_ueids == 65535 || hs->number_of_rntis == 65535) {
/* Arrays are already full! */
@@ -195,11 +195,11 @@ static void update_ueid_rnti_counts(guint16 rnti, guint16 ueid, mac_lte_nr_stat_
}
if (!hs->used_ueids[ueid]) {
- hs->used_ueids[ueid] = TRUE;
+ hs->used_ueids[ueid] = true;
hs->number_of_ueids++;
}
if (!hs->used_rntis[rnti]) {
- hs->used_rntis[rnti] = TRUE;
+ hs->used_rntis[rnti] = true;
hs->number_of_rntis++;
}
}
@@ -385,7 +385,7 @@ mac_lte_stat_packet(void *phs, packet_info *pinfo, epan_dissect_t *edt _U_,
/* Calculate and return a bandwidth figure, in Mbs */
-static float calculate_bw(nstime_t *start_time, nstime_t *stop_time, guint32 bytes)
+static float calculate_bw(nstime_t *start_time, nstime_t *stop_time, uint32_t bytes)
{
/* Can only calculate bandwidth if have time delta */
if (memcmp(start_time, stop_time, sizeof(nstime_t)) != 0) {
@@ -410,8 +410,8 @@ static float calculate_bw(nstime_t *start_time, nstime_t *stop_time, guint32 byt
static void
mac_lte_stat_draw(void *phs)
{
- gint i;
- guint16 number_of_ues = 0;
+ int i;
+ uint16_t number_of_ues = 0;
/* Deref the struct */
mac_lte_nr_stat_t *hs = (mac_lte_nr_stat_t*)phs;
@@ -511,7 +511,7 @@ static void mac_lte_stat_init(const char *opt_arg, void *userdata _U_)
mac_lte_stat_draw,
NULL);
if (error_string) {
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
g_free(hs);
exit(1);
}
diff --git a/ui/cli/tap-protocolinfo.c b/ui/cli/tap-protocolinfo.c
index ea47ae52d2..6c99284022 100644
--- a/ui/cli/tap-protocolinfo.c
+++ b/ui/cli/tap-protocolinfo.c
@@ -36,7 +36,7 @@ protocolinfo_packet(void *prs, packet_info *pinfo, epan_dissect_t *edt, const vo
{
pci_t *rs = (pci_t *)prs;
GPtrArray *gp;
- guint i;
+ unsigned i;
char *str;
/*
@@ -113,7 +113,7 @@ protocolinfo_init(const char *opt_arg, void *userdata _U_)
/* error, we failed to attach to the tap. complain and clean up */
cmdarg_err("Couldn't register proto,colinfo tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
g_free(rs->filter);
g_free(rs);
diff --git a/ui/cli/tap-protohierstat.c b/ui/cli/tap-protohierstat.c
index 2628fdcf3c..fabfd49e3a 100644
--- a/ui/cli/tap-protohierstat.c
+++ b/ui/cli/tap-protohierstat.c
@@ -210,7 +210,7 @@ protohierstat_init(const char *opt_arg, void *userdata _U_)
cmdarg_err("Couldn't register io,phs tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-protohierstat.h b/ui/cli/tap-protohierstat.h
index 3a68ff18c7..da2a9ca33f 100644
--- a/ui/cli/tap-protohierstat.h
+++ b/ui/cli/tap-protohierstat.h
@@ -23,8 +23,8 @@ typedef struct _phs_t {
char *filter;
int protocol;
const char *proto_name;
- guint32 frames;
- guint64 bytes;
+ uint32_t frames;
+ uint64_t bytes;
} phs_t;
extern phs_t * new_phs_t(phs_t *parent, const char *filter);
diff --git a/ui/cli/tap-rlcltestat.c b/ui/cli/tap-rlcltestat.c
index 9eea09f700..02cc98a2c6 100644
--- a/ui/cli/tap-rlcltestat.c
+++ b/ui/cli/tap-rlcltestat.c
@@ -43,7 +43,7 @@ enum {
NUM_UE_COLUMNS
};
-static const gchar *ue_titles[] = { "RAT", " UEId",
+static const char *ue_titles[] = { "RAT", " UEId",
"UL Frames", "UL Bytes", " UL Mbs", "UL ACKs", "UL NACKs", "UL Missed",
"DL Frames", "DL Bytes", " DL Mbs", "DL ACKs", "DL NACKs", "DL Missed"};
@@ -51,35 +51,35 @@ static const gchar *ue_titles[] = { "RAT", " UEId",
typedef struct rlc_lte_row_data {
/* Key for matching this row */
uint8_t rat;
- guint16 ueid;
+ uint16_t ueid;
- gboolean is_predefined_data;
+ bool is_predefined_data;
- guint32 UL_frames;
- guint32 UL_total_bytes;
+ uint32_t UL_frames;
+ uint32_t UL_total_bytes;
nstime_t UL_time_start;
nstime_t UL_time_stop;
- guint32 UL_total_acks;
- guint32 UL_total_nacks;
- guint32 UL_total_missing;
+ uint32_t UL_total_acks;
+ uint32_t UL_total_nacks;
+ uint32_t UL_total_missing;
- guint32 DL_frames;
- guint32 DL_total_bytes;
+ uint32_t DL_frames;
+ uint32_t DL_total_bytes;
nstime_t DL_time_start;
nstime_t DL_time_stop;
- guint32 DL_total_acks;
- guint32 DL_total_nacks;
- guint32 DL_total_missing;
+ uint32_t DL_total_acks;
+ uint32_t DL_total_nacks;
+ uint32_t DL_total_missing;
} rlc_lte_row_data;
/* Common channel stats (i.e. independent of UEs) */
typedef struct rlc_lte_common_stats {
- guint32 bcch_frames;
- guint32 bcch_bytes;
- guint32 pcch_frames;
- guint32 pcch_bytes;
+ uint32_t bcch_frames;
+ uint32_t bcch_bytes;
+ uint32_t pcch_frames;
+ uint32_t pcch_bytes;
} rlc_lte_common_stats;
@@ -93,7 +93,7 @@ typedef struct rlc_lte_ep {
/* Top-level struct for RLC LTE statistics */
typedef struct rlc_lte_stat_t {
rlc_lte_ep_t *ep_list;
- guint32 total_frames;
+ uint32_t total_frames;
/* Common stats */
rlc_lte_common_stats common_stats;
@@ -276,7 +276,7 @@ rlc_lte_stat_packet(void *phs, packet_info *pinfo, epan_dissect_t *edt _U_,
/* Calculate and return a bandwidth figure, in Mbs */
-static float calculate_bw(nstime_t *start_time, nstime_t *stop_time, guint32 bytes)
+static float calculate_bw(nstime_t *start_time, nstime_t *stop_time, uint32_t bytes)
{
/* Can only calculate bandwidth if have time delta */
if (memcmp(start_time, stop_time, sizeof(nstime_t)) != 0) {
@@ -301,8 +301,8 @@ static float calculate_bw(nstime_t *start_time, nstime_t *stop_time, guint32 byt
static void
rlc_lte_stat_draw(void *phs)
{
- guint16 number_of_ues = 0;
- gint i;
+ uint16_t number_of_ues = 0;
+ int i;
/* Look up the statistics struct */
rlc_lte_stat_t *hs = (rlc_lte_stat_t *)phs;
@@ -391,7 +391,7 @@ static void rlc_lte_stat_init(const char *opt_arg, void *userdata _U_)
rlc_lte_stat_draw,
NULL);
if (error_string) {
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
g_free(hs);
exit(1);
}
diff --git a/ui/cli/tap-rpcprogs.c b/ui/cli/tap-rpcprogs.c
index e64c93bc05..6fdd937243 100644
--- a/ui/cli/tap-rpcprogs.c
+++ b/ui/cli/tap-rpcprogs.c
@@ -35,16 +35,16 @@ void register_tap_listener_rpcprogs(void);
/* used to keep track of statistics for a specific program/version */
typedef struct _rpc_program_t {
struct _rpc_program_t *next;
- guint32 program;
- guint32 version;
+ uint32_t program;
+ uint32_t version;
int num;
nstime_t min;
nstime_t max;
nstime_t tot;
} rpc_program_t;
-static rpc_program_t *prog_list = NULL;
-static int already_enabled = 0;
+static rpc_program_t *prog_list;
+static int already_enabled;
static tap_packet_status
rpcprogs_packet(void *dummy1 _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const void *pri, tap_flags_t flags _U_)
@@ -167,7 +167,7 @@ rpcprogs_packet(void *dummy1 _U_, packet_info *pinfo, epan_dissect_t *edt _U_, c
static void
rpcprogs_draw(void *dummy _U_)
{
- guint64 td;
+ uint64_t td;
rpc_program_t *rp;
char str[64];
@@ -181,7 +181,7 @@ rpcprogs_draw(void *dummy _U_)
continue;
}
/* Scale the average SRT in units of 1us and round to the nearest us. */
- td = ((guint64)(rp->tot.secs)) * NANOSECS_PER_SEC + rp->tot.nsecs;
+ td = ((uint64_t)(rp->tot.secs)) * NANOSECS_PER_SEC + rp->tot.nsecs;
td = ((td / rp->num) + 500) / 1000;
snprintf(str, sizeof(str), "%s(%d)", rpc_prog_name(rp->program), rp->program);
@@ -212,7 +212,7 @@ rpcprogs_init(const char *opt_arg _U_, void *userdata _U_)
if (error_string) {
cmdarg_err("Couldn't register rpc,programs tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-rtd.c b/ui/cli/tap-rtd.c
index ad56c4c5f2..38b68029c2 100644
--- a/ui/cli/tap-rtd.c
+++ b/ui/cli/tap-rtd.c
@@ -34,8 +34,8 @@ rtd_draw(void *arg)
{
rtd_data_t* rtd_data = (rtd_data_t*)arg;
rtd_t* rtd = (rtd_t*)rtd_data->user_data;
- gchar* tmp_str;
- guint i, j;
+ char* tmp_str;
+ unsigned i, j;
/* printing results */
printf("\n");
@@ -106,7 +106,7 @@ init_rtd_tables(register_rtd_t* rtd, const char *filter)
if (error_string) {
free_rtd_table(&ui->rtd.stat_table);
cmdarg_err("Couldn't register srt tap: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
@@ -135,7 +135,7 @@ register_rtd_tables(const void *key _U_, void *value, void *userdata _U_)
{
register_rtd_t *rtd = (register_rtd_t*)value;
stat_tap_ui ui_info;
- gchar *cli_string;
+ char *cli_string;
cli_string = rtd_table_get_tap_string(rtd);
ui_info.group = REGISTER_STAT_GROUP_RESPONSE_TIME;
@@ -146,7 +146,7 @@ register_rtd_tables(const void *key _U_, void *value, void *userdata _U_)
ui_info.params = NULL;
register_stat_tap_ui(&ui_info, rtd);
g_free(cli_string);
- return FALSE;
+ return false;
}
/*
diff --git a/ui/cli/tap-rtp.c b/ui/cli/tap-rtp.c
index b7937cd0d1..ab68ed7fc9 100644
--- a/ui/cli/tap-rtp.c
+++ b/ui/cli/tap-rtp.c
@@ -44,7 +44,7 @@ static void rtpstreams_stat_draw_cb(rtpstream_tapinfo_t *tapinfo);
*/
static rtpstream_tapinfo_t the_tapinfo_struct =
{ NULL, rtpstreams_stat_draw_cb, NULL,
- NULL, 0, NULL, NULL, 0, TAP_ANALYSE, NULL, NULL, NULL, FALSE, FALSE
+ NULL, 0, NULL, NULL, 0, TAP_ANALYSE, NULL, NULL, NULL, false, false
};
static void
diff --git a/ui/cli/tap-rtspstat.c b/ui/cli/tap-rtspstat.c
index a42be6067e..b24cd84fab 100644
--- a/ui/cli/tap-rtspstat.c
+++ b/ui/cli/tap-rtspstat.c
@@ -42,16 +42,16 @@ typedef struct _rtsp_stats_t {
* for example it can be { 3, 404, "Not Found" ,...}
* which means we captured 3 reply rtsp/1.1 404 Not Found */
typedef struct _rtsp_response_code_t {
- guint32 packets; /* 3 */
- guint response_code; /* 404 */
- const gchar *name; /* Not Found */
+ uint32_t packets; /* 3 */
+ unsigned response_code; /* 404 */
+ const char *name; /* Not Found */
rtspstat_t *sp;
} rtsp_response_code_t;
/* used to keep track of the stats for a specific request string */
typedef struct _rtsp_request_methode_t {
- gchar *response; /* eg. : SETUP */
- guint32 packets;
+ char *response; /* eg. : SETUP */
+ uint32_t packets;
rtspstat_t *sp;
} rtsp_request_methode_t;
@@ -76,7 +76,7 @@ rtsp_init_hash( rtspstat_t *sp)
sp->hash_requests = g_hash_table_new( g_str_hash, g_str_equal);
}
static void
-rtsp_draw_hash_requests( gchar *key _U_ , rtsp_request_methode_t *data, gchar * format)
+rtsp_draw_hash_requests( char *key _U_ , rtsp_request_methode_t *data, char * format)
{
if (data->packets == 0)
return;
@@ -84,7 +84,7 @@ rtsp_draw_hash_requests( gchar *key _U_ , rtsp_request_methode_t *data, gchar *
}
static void
-rtsp_draw_hash_responses( gpointer* key _U_ , rtsp_response_code_t *data, char * format)
+rtsp_draw_hash_responses( void ** key _U_ , rtsp_response_code_t *data, char * format)
{
if (data == NULL) {
ws_warning("No data available, key=%d\n", GPOINTER_TO_INT(key));
@@ -101,19 +101,19 @@ rtsp_draw_hash_responses( gpointer* key _U_ , rtsp_response_code_t *data, char *
/* NOT USED at this moment */
/*
static void
-rtsp_free_hash( gpointer key, gpointer value, gpointer user_data _U_ )
+rtsp_free_hash( void *key, void *value, void *user_data _U_ )
{
g_free(key);
g_free(value);
}
*/
static void
-rtsp_reset_hash_responses(gchar *key _U_ , rtsp_response_code_t *data, gpointer ptr _U_ )
+rtsp_reset_hash_responses(char *key _U_ , rtsp_response_code_t *data, void *ptr _U_ )
{
data->packets = 0;
}
static void
-rtsp_reset_hash_requests(gchar *key _U_ , rtsp_request_methode_t *data, gpointer ptr _U_ )
+rtsp_reset_hash_requests(char *key _U_ , rtsp_request_methode_t *data, void *ptr _U_ )
{
data->packets = 0;
}
@@ -143,7 +143,7 @@ rtspstat_packet(void *psp , packet_info *pinfo _U_, epan_dissect_t *edt _U_, con
sp->hash_responses,
GINT_TO_POINTER(value->response_code));
if (sc == NULL) {
- gint key;
+ int key;
/* non standard status code ; we classify it as others
* in the relevant category (Informational,Success,Redirection,Client Error,Server Error)
*/
@@ -209,10 +209,10 @@ rtspstat_draw(void *psp )
printf("* RTSP Response Status Codes Packets\n");
g_hash_table_foreach( sp->hash_responses, (GHFunc)rtsp_draw_hash_responses,
- (gpointer)" %3d %-35s %9d\n");
+ (void *)" %3d %-35s %9d\n");
printf("* RTSP Request Methods Packets\n");
g_hash_table_foreach( sp->hash_requests, (GHFunc)rtsp_draw_hash_requests,
- (gpointer)" %-39s %9d\n");
+ (void *)" %-39s %9d\n");
printf("===================================================================\n");
}
@@ -253,7 +253,7 @@ rtspstat_init(const char *opt_arg, void *userdata _U_)
g_free(sp);
cmdarg_err("Couldn't register rtsp,stat tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
diff --git a/ui/cli/tap-sctpchunkstat.c b/ui/cli/tap-sctpchunkstat.c
index 21e081eb65..40abd2205d 100644
--- a/ui/cli/tap-sctpchunkstat.c
+++ b/ui/cli/tap-sctpchunkstat.c
@@ -32,16 +32,16 @@ typedef struct sctp_ep {
struct sctp_ep *next;
address src;
address dst;
- guint16 sport;
- guint16 dport;
- guint32 chunk_count[256];
+ uint16_t sport;
+ uint16_t dport;
+ uint32_t chunk_count[256];
} sctp_ep_t;
/* used to keep track of the statistics for an entire program interface */
typedef struct _sctpstat_t {
char *filter;
- guint32 number_of_packets;
+ uint32_t number_of_packets;
sctp_ep_t *ep_list;
} sctpstat_t;
@@ -54,7 +54,7 @@ sctpstat_reset(void *phs)
sctpstat_t *sctp_stat = (sctpstat_t *)phs;
sctp_ep_t *list = (sctp_ep_t *)sctp_stat->ep_list;
sctp_ep_t *tmp = NULL;
- guint16 chunk_type;
+ uint16_t chunk_type;
if (!list)
return;
@@ -71,7 +71,7 @@ static sctp_ep_t *
alloc_sctp_ep(const struct _sctp_info *si)
{
sctp_ep_t *ep;
- guint16 chunk_type;
+ uint16_t chunk_type;
if (!si)
return NULL;
@@ -99,8 +99,8 @@ sctpstat_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, cons
sctpstat_t *hs = (sctpstat_t *)phs;
sctp_ep_t *tmp = NULL, *te = NULL;
const struct _sctp_info *si = (const struct _sctp_info *)phi;
- guint32 tvb_number;
- guint8 chunk_type;
+ uint32_t tvb_number;
+ uint8_t chunk_type;
if (!hs)
return (TAP_PACKET_DONT_REDRAW);
@@ -209,7 +209,7 @@ sctpstat_init(const char *opt_arg, void *userdata _U_)
cmdarg_err("Couldn't register sctp,stat tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-simple_stattable.c b/ui/cli/tap-simple_stattable.c
index cca343209d..ef8264c2a2 100644
--- a/ui/cli/tap-simple_stattable.c
+++ b/ui/cli/tap-simple_stattable.c
@@ -30,11 +30,11 @@ simple_draw(void *arg)
stat_data_t* stat_data = (stat_data_t*)arg;
table_stat_t* stats = (table_stat_t*)stat_data->user_data;
size_t i;
- guint table_index, element, field_index;
+ unsigned table_index, element, field_index;
stat_tap_table_item* field;
stat_tap_table* table;
stat_tap_table_item_type* field_data;
- gchar fmt_string[250];
+ char fmt_string[250];
/* printing results */
printf("\n");
@@ -115,7 +115,7 @@ init_stat_table(stat_tap_table_ui *stat_tap, const char *filter)
if (error_string) {
/* free_rtd_table(&ui->rtd.stat_table); */
cmdarg_err("Couldn't register tap: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
@@ -152,7 +152,7 @@ register_simple_stat_tables(const void *key, void *value, void *userdata _U_)
ui_info.params = stat_tap->params;
register_stat_tap_ui(&ui_info, stat_tap);
- return FALSE;
+ return false;
}
/*
diff --git a/ui/cli/tap-sipstat.c b/ui/cli/tap-sipstat.c
index 92d1463d2d..d6db04c2e6 100644
--- a/ui/cli/tap-sipstat.c
+++ b/ui/cli/tap-sipstat.c
@@ -33,13 +33,13 @@ void register_tap_listener_sipstat(void);
/* used to keep track of the statictics for an entire program interface */
typedef struct _sip_stats_t {
char *filter;
- guint32 packets; /* number of sip packets, including continuations */
- guint32 resent_packets;
- guint32 average_setup_time;
- guint32 max_setup_time;
- guint32 min_setup_time;
- guint32 no_of_completed_calls;
- guint64 total_setup_time;
+ uint32_t packets; /* number of sip packets, including continuations */
+ uint32_t resent_packets;
+ uint32_t average_setup_time;
+ uint32_t max_setup_time;
+ uint32_t min_setup_time;
+ uint32_t no_of_completed_calls;
+ uint64_t total_setup_time;
GHashTable *hash_responses;
GHashTable *hash_requests;
} sipstat_t;
@@ -48,16 +48,16 @@ typedef struct _sip_stats_t {
* for example it can be { 3, 404, "Not Found" ,...}
* which means we captured 3 reply sip/1.1 404 Not Found */
typedef struct _sip_response_code_t {
- guint32 packets; /* 3 */
- guint response_code; /* 404 */
- const gchar *name; /* Not Found */
+ uint32_t packets; /* 3 */
+ unsigned response_code; /* 404 */
+ const char *name; /* Not Found */
sipstat_t *sp;
} sip_response_code_t;
/* used to keep track of the stats for a specific request string */
typedef struct _sip_request_method_t {
- gchar *response; /* eg. : INVITE */
- guint32 packets;
+ char *response; /* eg. : INVITE */
+ uint32_t packets;
sipstat_t *sp;
} sip_request_method_t;
@@ -74,7 +74,7 @@ sip_init_hash(sipstat_t *sp)
/* Add all response codes */
for (i=0; sip_response_code_vals[i].strptr; i++)
{
- gint *key = g_new (gint, 1);
+ int *key = g_new (int, 1);
sip_response_code_t *sc = g_new (sip_response_code_t, 1);
*key = sip_response_code_vals[i].value;
sc->packets = 0;
@@ -89,7 +89,7 @@ sip_init_hash(sipstat_t *sp)
}
static void
-sip_draw_hash_requests( gchar *key _U_, sip_request_method_t *data, gchar *format)
+sip_draw_hash_requests( char *key _U_, sip_request_method_t *data, char *format)
{
if (data->packets == 0)
return;
@@ -97,7 +97,7 @@ sip_draw_hash_requests( gchar *key _U_, sip_request_method_t *data, gchar *forma
}
static void
-sip_draw_hash_responses( gint *key _U_ , sip_response_code_t *data, char *format)
+sip_draw_hash_responses( int *key _U_ , sip_response_code_t *data, char *format)
{
if (data == NULL) {
ws_warning("C'est quoi ce borderl key=%d\n", *key);
@@ -111,7 +111,7 @@ sip_draw_hash_responses( gint *key _U_ , sip_response_code_t *data, char *format
/* NOT USED at this moment */
/*
static void
-sip_free_hash( gpointer key, gpointer value, gpointer user_data _U_ )
+sip_free_hash( void *key, void *value, void *user_data _U_ )
{
g_free(key);
g_free(value);
@@ -119,12 +119,12 @@ sip_free_hash( gpointer key, gpointer value, gpointer user_data _U_ )
*/
static void
-sip_reset_hash_responses(gchar *key _U_ , sip_response_code_t *data, gpointer ptr _U_ )
+sip_reset_hash_responses(char *key _U_ , sip_response_code_t *data, void *ptr _U_ )
{
data->packets = 0;
}
static void
-sip_reset_hash_requests(gchar *key _U_ , sip_request_method_t *data, gpointer ptr _U_ )
+sip_reset_hash_requests(char *key _U_ , sip_request_method_t *data, void *ptr _U_ )
{
data->packets = 0;
}
@@ -176,7 +176,7 @@ sipstat_packet(void *psp, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const
sp->min_setup_time = value->setup_time;
}
/* Calculate average */
- sp->average_setup_time = (guint32)(sp->total_setup_time / sp->no_of_completed_calls);
+ sp->average_setup_time = (uint32_t)(sp->total_setup_time / sp->no_of_completed_calls);
}
}
@@ -191,7 +191,7 @@ sipstat_packet(void *psp, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const
if (value->response_code != 0)
{
/* Responses */
- guint key;
+ unsigned key;
sip_response_code_t *sc;
/* Look up response code in hash table */
@@ -291,10 +291,10 @@ sipstat_draw(void *psp )
printf("\nNumber of resent SIP messages: %u\n", sp->resent_packets);
printf( "\n* SIP Status Codes in reply packets\n");
g_hash_table_foreach(sp->hash_responses, (GHFunc)sip_draw_hash_responses,
- (gpointer)" SIP %3d %-15s : %5d Packets\n");
+ (void *)" SIP %3d %-15s : %5d Packets\n");
printf("\n* List of SIP Request methods\n");
g_hash_table_foreach(sp->hash_requests, (GHFunc)sip_draw_hash_requests,
- (gpointer)" %-15s : %5d Packets\n");
+ (void *)" %-15s : %5d Packets\n");
printf( "\n* Average setup time %u ms\n Min %u ms\n Max %u ms\n", sp->average_setup_time, sp->min_setup_time, sp->max_setup_time);
printf("===================================================================\n");
}
@@ -332,7 +332,7 @@ sipstat_init(const char *opt_arg, void *userdata _U_)
g_free(sp);
cmdarg_err("Couldn't register sip,stat tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
diff --git a/ui/cli/tap-smbsids.c b/ui/cli/tap-smbsids.c
index f92037c99f..2742561789 100644
--- a/ui/cli/tap-smbsids.c
+++ b/ui/cli/tap-smbsids.c
@@ -34,7 +34,7 @@ smbsids_packet(void *pss _U_, packet_info *pinfo _U_, epan_dissect_t *edt _U_, c
}
static void
-enum_sids(gpointer key, gpointer value, gpointer userdata _U_)
+enum_sids(void *key, void *value, void *userdata _U_)
{
const char *sid = (const char *)key;
const char *name = (const char *)value;
@@ -62,7 +62,7 @@ smbsids_init(const char *opt_arg _U_, void *userdata _U_)
fprintf(stderr, "The -z smb,sids function needs SMB/SID-Snooping to be enabled.\n");
fprintf(stderr, "Either enable Edit/Preferences/Protocols/SMB/Snoop SID name mappings in wireshark\n");
fprintf(stderr, "or override the preference file by specifying\n");
- fprintf(stderr, " -o \"smb.sid_name_snooping=TRUE\"\n");
+ fprintf(stderr, " -o \"smb.sid_name_snooping=true\"\n");
fprintf(stderr, "on the tshark command line.\n");
exit(1);
}
@@ -72,7 +72,7 @@ smbsids_init(const char *opt_arg _U_, void *userdata _U_)
if (error_string) {
cmdarg_err("Couldn't register smb,sids tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-srt.c b/ui/cli/tap-srt.c
index 62cef3af64..09107f1926 100644
--- a/ui/cli/tap-srt.c
+++ b/ui/cli/tap-srt.c
@@ -29,11 +29,11 @@ typedef struct _srt_t {
} srt_t;
static void
-draw_srt_table_data(srt_stat_table *rst, gboolean draw_footer, const char *subfilter)
+draw_srt_table_data(srt_stat_table *rst, bool draw_footer, const char *subfilter)
{
int i;
- guint64 td;
- guint64 sum;
+ uint64_t td;
+ uint64_t sum;
if (rst->num_procs > 0) {
if (rst->filter_string != NULL && subfilter != NULL) {
@@ -56,7 +56,7 @@ draw_srt_table_data(srt_stat_table *rst, gboolean draw_footer, const char *subfi
depending uon the platform. After casting tot.secs to 64 bits, it
would take a capture with a duration of over 136 *years* to
overflow the secs portion of td. */
- td = ((guint64)(rst->procedures[i].stats.tot.secs))*NANOSECS_PER_SEC + rst->procedures[i].stats.tot.nsecs;
+ td = ((uint64_t)(rst->procedures[i].stats.tot.secs))*NANOSECS_PER_SEC + rst->procedures[i].stats.tot.nsecs;
sum = (td + 500) / 1000;
td = ((td / rst->procedures[i].stats.num) + 500) / 1000;
@@ -77,11 +77,11 @@ draw_srt_table_data(srt_stat_table *rst, gboolean draw_footer, const char *subfi
static void
srt_draw(void *arg)
{
- guint i = 0;
+ unsigned i = 0;
srt_data_t* data = (srt_data_t*)arg;
srt_t *ui = (srt_t *)data->user_data;
srt_stat_table *srt_table;
- gboolean need_newline = FALSE;
+ bool need_newline = false;
printf("\n");
printf("===================================================================\n");
@@ -90,7 +90,7 @@ srt_draw(void *arg)
srt_table = g_array_index(data->srt_array, srt_stat_table*, i);
draw_srt_table_data(srt_table, data->srt_array->len == 1, ui->filter);
if (srt_table->num_procs > 0) {
- need_newline = TRUE;
+ need_newline = true;
}
for (i = 1; i < data->srt_array->len; i++)
@@ -98,12 +98,12 @@ srt_draw(void *arg)
if (need_newline)
{
printf("\n");
- need_newline = FALSE;
+ need_newline = false;
}
srt_table = g_array_index(data->srt_array, srt_stat_table*, i);
draw_srt_table_data(srt_table, i == data->srt_array->len-1, ui->filter);
if (srt_table->num_procs > 0) {
- need_newline = TRUE;
+ need_newline = true;
}
}
}
@@ -127,7 +127,7 @@ init_srt_tables(register_srt_t* srt, const char *filter)
free_srt_table(srt, global_srt_array);
g_free(ui);
cmdarg_err("Couldn't register srt tap: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
@@ -142,7 +142,7 @@ dissector_srt_init(const char *opt_arg, void* userdata)
srt_table_get_filter(srt, opt_arg, &filter, &err);
if (err != NULL)
{
- gchar* cmd_str = srt_table_get_tap_string(srt);
+ char* cmd_str = srt_table_get_tap_string(srt);
cmdarg_err("invalid \"-z %s,%s\" argument", cmd_str, err);
g_free(cmd_str);
g_free(err);
@@ -150,7 +150,7 @@ dissector_srt_init(const char *opt_arg, void* userdata)
}
/* Need to create the SRT array now */
- global_srt_array = g_array_new(FALSE, TRUE, sizeof(srt_stat_table*));
+ global_srt_array = g_array_new(false, true, sizeof(srt_stat_table*));
srt_table_dissector_init(srt, global_srt_array);
init_srt_tables(srt, filter);
@@ -163,12 +163,12 @@ register_srt_tables(const void *key _U_, void *value, void *userdata _U_)
register_srt_t *srt = (register_srt_t*)value;
const char* short_name = proto_get_protocol_short_name(find_protocol_by_id(get_srt_proto_id(srt)));
stat_tap_ui ui_info;
- gchar *cli_string;
+ char *cli_string;
/* XXX - CAMEL dissector hasn't been converted over due seemingly different tap packet
handling functions. So let the existing TShark CAMEL tap keep its registration */
if (strcmp(short_name, "CAMEL") == 0)
- return FALSE;
+ return false;
cli_string = srt_table_get_tap_string(srt);
ui_info.group = REGISTER_STAT_GROUP_RESPONSE_TIME;
@@ -179,7 +179,7 @@ register_srt_tables(const void *key _U_, void *value, void *userdata _U_)
ui_info.params = NULL;
register_stat_tap_ui(&ui_info, srt);
g_free(cli_string);
- return FALSE;
+ return false;
}
/*
diff --git a/ui/cli/tap-stats_tree.c b/ui/cli/tap-stats_tree.c
index 71a18bcf0b..0aa5ebacb1 100644
--- a/ui/cli/tap-stats_tree.c
+++ b/ui/cli/tap-stats_tree.c
@@ -32,7 +32,7 @@ struct _tree_pres {
};
struct _tree_cfg_pres {
- gchar *init_string;
+ char *init_string;
};
static void
@@ -45,7 +45,7 @@ draw_stats_tree(void *psp)
stats_tree_is_default_sort_DESC(st));
printf("%s", s->str);
- g_string_free(s, TRUE);
+ g_string_free(s, true);
}
static void
@@ -103,7 +103,7 @@ init_stats_tree(const char *opt_arg, void *userdata _U_)
}
static void
-register_stats_tree_tap (gpointer k _U_, gpointer v, gpointer p _U_)
+register_stats_tree_tap (void *k _U_, void *v, void *p _U_)
{
stats_tree_cfg *cfg = (stats_tree_cfg *)v;
stat_tap_ui ui_info;
diff --git a/ui/cli/tap-sv.c b/ui/cli/tap-sv.c
index d724c0d4eb..b2bbdbf8e8 100644
--- a/ui/cli/tap-sv.c
+++ b/ui/cli/tap-sv.c
@@ -61,7 +61,7 @@ svstat_init(const char *opt_arg _U_, void *userdata _U_)
/* error, we failed to attach to the tap. clean up */
cmdarg_err("Couldn't register sv,stat tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/cli/tap-voip.h b/ui/cli/tap-voip.h
index 45c436f5ba..6d02c2609a 100644
--- a/ui/cli/tap-voip.h
+++ b/ui/cli/tap-voip.h
@@ -18,7 +18,7 @@ extern "C" {
/* store the chosen calls in a bit-array */
#define VOIP_CONV_BITS (sizeof(int) * 8)
-#define VOIP_CONV_NUM ((1<<(sizeof(guint16) * 8))/VOIP_CONV_BITS)
+#define VOIP_CONV_NUM ((1<<(sizeof(uint16_t) * 8))/VOIP_CONV_BITS)
#define VOIP_CONV_MAX (VOIP_CONV_BITS * VOIP_CONV_NUM)
extern voip_calls_tapinfo_t tapinfo_;
diff --git a/ui/cli/tap-wspstat.c b/ui/cli/tap-wspstat.c
index 89daed3171..27a9538b8c 100644
--- a/ui/cli/tap-wspstat.c
+++ b/ui/cli/tap-wspstat.c
@@ -33,35 +33,35 @@ void register_tap_listener_wspstat(void);
/* used to keep track of the stats for a specific PDU type*/
typedef struct _wsp_pdu_t {
- const gchar *type;
- guint32 packets;
+ const char *type;
+ uint32_t packets;
} wsp_pdu_t;
/* used to keep track of SRT statistics */
typedef struct _wsp_status_code_t {
- const gchar *name;
- guint32 packets;
+ const char *name;
+ uint32_t packets;
} wsp_status_code_t;
/* used to keep track of the statictics for an entire program interface */
typedef struct _wsp_stats_t {
char *filter;
wsp_pdu_t *pdu_stats;
- guint32 num_pdus;
+ uint32_t num_pdus;
GHashTable *hash;
} wspstat_t;
static void
-wsp_reset_hash(gchar *key _U_ , wsp_status_code_t *data, gpointer ptr _U_)
+wsp_reset_hash(char *key _U_ , wsp_status_code_t *data, void *ptr _U_)
{
data->packets = 0;
}
static void
-wsp_print_statuscode(gpointer key, wsp_status_code_t *data, char *format)
+wsp_print_statuscode(void *key, wsp_status_code_t *data, char *format)
{
if (data && (data->packets != 0))
printf(format, GPOINTER_TO_INT(key), data->packets , data->name);
}
static void
-wsp_free_hash_table( gpointer key, gpointer value, gpointer user_data _U_ )
+wsp_free_hash_table( void *key, void *value, void *user_data _U_ )
{
g_free(key);
g_free(value);
@@ -70,7 +70,7 @@ static void
wspstat_reset(void *psp)
{
wspstat_t *sp = (wspstat_t *)psp;
- guint32 i;
+ uint32_t i;
for (i=1; i<=sp->num_pdus; i++)
{
@@ -91,8 +91,8 @@ wspstat_reset(void *psp)
* ALL packets and not just the ones we are collecting stats for.
*
*/
-static gint
-pdut2index(gint pdut)
+static int
+pdut2index(int pdut)
{
if (pdut <= 0x09)
return pdut;
@@ -105,8 +105,8 @@ pdut2index(gint pdut)
}
return 0;
}
-static gint
-index2pdut(gint pdut)
+static int
+index2pdut(int pdut)
{
if (pdut <= 0x09)
return pdut;
@@ -121,7 +121,7 @@ wspstat_packet(void *psp, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const
{
wspstat_t *sp = (wspstat_t *)psp;
const wsp_info_value_t *value = (const wsp_info_value_t *)pri;
- gint idx = pdut2index(value->pdut);
+ int idx = pdut2index(value->pdut);
tap_packet_status retour = TAP_PACKET_DONT_REDRAW;
if (value->status_code != 0) {
@@ -168,7 +168,7 @@ static void
wspstat_draw(void *psp)
{
wspstat_t *sp = (wspstat_t *)psp;
- guint32 i;
+ uint32_t i;
printf("\n");
printf("===================================================================\n");
@@ -176,7 +176,7 @@ wspstat_draw(void *psp)
printf("%-23s %9s || %-23s %9s\n", "PDU Type", "Packets", "PDU Type", "Packets");
for (i=1; i <= ((sp->num_pdus+1)/2); i++)
{
- guint32 ii = i+sp->num_pdus/2;
+ uint32_t ii = i+sp->num_pdus/2;
printf("%-23s %9u", sp->pdu_stats[i ].type, sp->pdu_stats[i ].packets);
printf(" || ");
if (ii< (sp->num_pdus) )
@@ -187,7 +187,7 @@ wspstat_draw(void *psp)
printf("\nStatus code in reply packets\n");
printf( "Status Code Packets Description\n");
g_hash_table_foreach( sp->hash, (GHFunc) wsp_print_statuscode,
- (gpointer)" 0x%02X %9d %s\n" ) ;
+ (void *)" 0x%02X %9d %s\n" ) ;
printf("===================================================================\n");
}
@@ -203,7 +203,7 @@ wspstat_init(const char *opt_arg, void *userdata _U_)
{
wspstat_t *sp;
const char *filter = NULL;
- guint32 i;
+ uint32_t i;
GString *error_string;
wsp_status_code_t *sc;
const value_string *wsp_vals_status_p;
@@ -220,9 +220,9 @@ wspstat_init(const char *opt_arg, void *userdata _U_)
wsp_vals_status_p = VALUE_STRING_EXT_VS_P(&wsp_vals_status_ext);
for (i=0; wsp_vals_status_p[i].strptr; i++ )
{
- gint *key;
+ int *key;
sc = g_new(wsp_status_code_t, 1);
- key = g_new(gint, 1);
+ key = g_new(int, 1);
sc->packets = 0;
sc->name = wsp_vals_status_p[i].strptr;
*key = wsp_vals_status_p[i].value;
@@ -259,7 +259,7 @@ wspstat_init(const char *opt_arg, void *userdata _U_)
g_free(sp);
cmdarg_err("Couldn't register wsp,stat tap: %s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
}
diff --git a/ui/commandline.c b/ui/commandline.c
index 6cd5bc1929..e700d23764 100644
--- a/ui/commandline.c
+++ b/ui/commandline.c
@@ -54,7 +54,7 @@ commandline_param_info_t global_commandline_info;
capture_options global_capture_opts;
void
-commandline_print_usage(gboolean for_help_option) {
+commandline_print_usage(bool for_help_option) {
FILE *output;
#ifdef _WIN32
@@ -229,10 +229,10 @@ void commandline_early_options(int argc, char *argv[])
#ifdef HAVE_LIBPCAP
int err;
GList *if_list;
- gchar *err_str;
+ char *err_str;
int exit_status;
#else
- gboolean capture_option_specified;
+ bool capture_option_specified;
#endif
/*
@@ -267,14 +267,14 @@ void commandline_early_options(int argc, char *argv[])
ws_opterr = 0;
#ifndef HAVE_LIBPCAP
- capture_option_specified = FALSE;
+ capture_option_specified = false;
#endif
while ((opt = ws_getopt_long(argc, argv, optstring, long_options, NULL)) != -1) {
switch (opt) {
case 'C': /* Configuration Profile */
- if (profile_exists (ws_optarg, FALSE)) {
+ if (profile_exists (ws_optarg, false)) {
set_profile_name (ws_optarg);
- } else if (profile_exists (ws_optarg, TRUE)) {
+ } else if (profile_exists (ws_optarg, true)) {
char *pf_dir_path, *pf_dir_path2, *pf_filename;
/* Copy from global profile */
if (create_persconffile_profile(ws_optarg, &pf_dir_path) == -1) {
@@ -284,7 +284,7 @@ void commandline_early_options(int argc, char *argv[])
g_free(pf_dir_path);
exit(WS_EXIT_INVALID_FILE);
}
- if (copy_persconffile_profile(ws_optarg, ws_optarg, TRUE, &pf_filename,
+ if (copy_persconffile_profile(ws_optarg, ws_optarg, true, &pf_filename,
&pf_dir_path, &pf_dir_path2) == -1) {
cmdarg_err("Can't copy file \"%s\" in directory\n\"%s\" to\n\"%s\":\n%s.",
pf_filename, pf_dir_path2, pf_dir_path, g_strerror(errno));
@@ -338,17 +338,17 @@ void commandline_early_options(int argc, char *argv[])
#endif /* _WIN32 */
exit(exit_status);
#else /* HAVE_LIBPCAP */
- capture_option_specified = TRUE;
+ capture_option_specified = true;
#endif /* HAVE_LIBPCAP */
break;
case 'h': /* Print help and exit */
- commandline_print_usage(TRUE);
+ commandline_print_usage(true);
exit(EXIT_SUCCESS);
break;
#ifdef _WIN32
case 'i':
if (strcmp(ws_optarg, "-") == 0)
- set_stdin_capture(TRUE);
+ set_stdin_capture(true);
break;
#endif
case 'P': /* Personal file directory path settings - change these before the Preferences and alike are processed */
@@ -390,13 +390,13 @@ void commandline_early_options(int argc, char *argv[])
#ifndef HAVE_LIBPCAP
if (capture_option_specified) {
print_no_capture_support_error();
- commandline_print_usage(FALSE);
+ commandline_print_usage(false);
exit(EXIT_SUCCESS);
}
#endif
}
-void commandline_override_prefs(int argc, char *argv[], gboolean opt_reset)
+void commandline_override_prefs(int argc, char *argv[], bool opt_reset)
{
int opt;
@@ -479,15 +479,15 @@ void commandline_override_prefs(int argc, char *argv[], gboolean opt_reset)
}
-void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
+void commandline_other_options(int argc, char *argv[], bool opt_reset)
{
int opt;
- gboolean arg_error = FALSE;
+ bool arg_error = false;
#ifdef HAVE_LIBPCAP
const char *list_option_supplied = NULL;
int status;
#else
- gboolean capture_option_specified;
+ bool capture_option_specified;
#endif
/*
@@ -522,13 +522,13 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
global_commandline_info.rfilter = NULL;
global_commandline_info.dfilter = NULL;
#ifdef HAVE_LIBPCAP
- global_commandline_info.start_capture = FALSE;
- global_commandline_info.list_link_layer_types = FALSE;
- global_commandline_info.list_timestamp_types = FALSE;
- global_commandline_info.quit_after_cap = getenv("WIRESHARK_QUIT_AFTER_CAPTURE") ? TRUE : FALSE;
+ global_commandline_info.start_capture = false;
+ global_commandline_info.list_link_layer_types = false;
+ global_commandline_info.list_timestamp_types = false;
+ global_commandline_info.quit_after_cap = getenv("WIRESHARK_QUIT_AFTER_CAPTURE") ? true : false;
global_commandline_info.capture_comments = NULL;
#endif
- global_commandline_info.full_screen = FALSE;
+ global_commandline_info.full_screen = false;
while ((opt = ws_getopt_long(argc, argv, optstring, long_options, NULL)) != -1) {
switch (opt) {
@@ -562,8 +562,8 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
exit_application(status);
}
#else
- capture_option_specified = TRUE;
- arg_error = TRUE;
+ capture_option_specified = true;
+ arg_error = true;
#endif
break;
@@ -582,36 +582,36 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
break;
case 'k': /* Start capture immediately */
#ifdef HAVE_LIBPCAP
- global_commandline_info.start_capture = TRUE;
+ global_commandline_info.start_capture = true;
#else
- capture_option_specified = TRUE;
- arg_error = TRUE;
+ capture_option_specified = true;
+ arg_error = true;
#endif
break;
case 'l': /* Automatic scrolling in live capture mode */
#ifdef HAVE_LIBPCAP
- recent.capture_auto_scroll = TRUE;
+ recent.capture_auto_scroll = true;
#else
- capture_option_specified = TRUE;
- arg_error = TRUE;
+ capture_option_specified = true;
+ arg_error = true;
#endif
break;
case 'L': /* Print list of link-layer types and exit */
#ifdef HAVE_LIBPCAP
- global_commandline_info.list_link_layer_types = TRUE;
+ global_commandline_info.list_link_layer_types = true;
list_option_supplied = "-L";
#else
- capture_option_specified = TRUE;
- arg_error = TRUE;
+ capture_option_specified = true;
+ arg_error = true;
#endif
break;
case LONGOPT_LIST_TSTAMP_TYPES:
#ifdef HAVE_LIBPCAP
- global_commandline_info.list_timestamp_types = TRUE;
+ global_commandline_info.list_timestamp_types = true;
list_option_supplied = "--list-time-stamp-types";
#else
- capture_option_specified = TRUE;
- arg_error = TRUE;
+ capture_option_specified = true;
+ arg_error = true;
#endif
break;
case 'o': /* Override preference from command line */
@@ -669,7 +669,7 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
exit_application(1);
break;
case LONGOPT_FULL_SCREEN:
- global_commandline_info.full_screen = TRUE;
+ global_commandline_info.full_screen = true;
break;
#ifdef HAVE_LIBPCAP
case LONGOPT_CAPTURE_COMMENT: /* capture comment */
@@ -678,13 +678,13 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
}
g_ptr_array_add(global_commandline_info.capture_comments, g_strdup(ws_optarg));
#else
- capture_option_specified = TRUE;
- arg_error = TRUE;
+ capture_option_specified = true;
+ arg_error = true;
#endif
break;
default:
case '?': /* Bad flag - print usage message */
- arg_error = TRUE;
+ arg_error = true;
break;
}
}
@@ -699,7 +699,7 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
* command-line argument.
*/
cmdarg_err("File name specified both with -r and regular argument");
- arg_error = TRUE;
+ arg_error = true;
} else {
/*
* Input file name not specified with "-r", and a command-line argument
@@ -722,7 +722,7 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
* Extra command line arguments were specified; complain.
*/
cmdarg_err("Invalid argument: %s", argv[0]);
- arg_error = TRUE;
+ arg_error = true;
}
}
@@ -732,7 +732,7 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
print_no_capture_support_error();
}
#endif
- commandline_print_usage(FALSE);
+ commandline_print_usage(false);
exit_application(1);
}
@@ -776,7 +776,7 @@ void commandline_other_options(int argc, char *argv[], gboolean opt_reset)
file size is set to "infinite". */
if (global_capture_opts.save_file == NULL) {
cmdarg_err("Ring buffer requested, but capture isn't being saved to a permanent file.");
- global_capture_opts.multi_files_on = FALSE;
+ global_capture_opts.multi_files_on = false;
}
if (!global_capture_opts.has_autostop_filesize &&
!global_capture_opts.has_file_duration &&
diff --git a/ui/commandline.h b/ui/commandline.h
index df021a8ce9..0488729fc1 100644
--- a/ui/commandline.h
+++ b/ui/commandline.h
@@ -18,7 +18,7 @@
extern "C" {
#endif /* __cplusplus */
-extern void commandline_print_usage(gboolean for_help_option);
+extern void commandline_print_usage(bool for_help_option);
extern void commandline_early_options(int argc, char *argv[]);
@@ -26,10 +26,10 @@ extern void commandline_early_options(int argc, char *argv[]);
typedef struct commandline_param_info
{
#ifdef HAVE_LIBPCAP
- gboolean list_link_layer_types;
- gboolean list_timestamp_types;
- gboolean start_capture;
- gboolean quit_after_cap;
+ bool list_link_layer_types;
+ bool list_timestamp_types;
+ bool start_capture;
+ bool quit_after_cap;
/*
* We currently don't support this as a way to add file comments
@@ -40,19 +40,19 @@ typedef struct commandline_param_info
#endif
e_prefs *prefs_p;
search_direction jump_backwards;
- guint32 go_to_packet;
- gchar* jfilter;
- gchar* cf_name;
- gchar* rfilter;
- gchar* dfilter;
- gboolean full_screen;
+ uint32_t go_to_packet;
+ char* jfilter;
+ char* cf_name;
+ char* rfilter;
+ char* dfilter;
+ bool full_screen;
GSList *user_opts;
} commandline_param_info_t;
-extern void commandline_override_prefs(int argc, char *argv[], gboolean opt_reset);
+extern void commandline_override_prefs(int argc, char *argv[], bool opt_reset);
-extern void commandline_other_options(int argc, char *argv[], gboolean opt_reset);
+extern void commandline_other_options(int argc, char *argv[], bool opt_reset);
extern void commandline_options_drop(const char *module_name, const char *pref_name);
diff --git a/ui/decode_as_utils.c b/ui/decode_as_utils.c
index 3b9bf56e01..48df0a771c 100644
--- a/ui/decode_as_utils.c
+++ b/ui/decode_as_utils.c
@@ -26,7 +26,7 @@
/* XXX - We might want to switch this to a UAT */
-static const char* prev_display_dissector_name = NULL;
+static const char* prev_display_dissector_name;
/*
* For a dissector table, print on the stream described by output,
@@ -35,7 +35,7 @@ static const char* prev_display_dissector_name = NULL;
*/
static void
display_dissector_table_names(const char *table_name, const char *ui_name,
-gpointer output)
+void *output)
{
if ((prev_display_dissector_name == NULL) ||
(strcmp(prev_display_dissector_name, table_name) != 0)) {
@@ -50,11 +50,11 @@ gpointer output)
* name for the protocol that corresponds to this handle.
*/
static void
-display_dissector_names(const gchar *table _U_, gpointer handle, gpointer output)
+display_dissector_names(const char *table _U_, void *handle, void *output)
{
int proto_id;
- const gchar *proto_filter_name;
- const gchar *proto_ui_name;
+ const char *proto_filter_name;
+ const char *proto_ui_name;
proto_id = dissector_handle_get_protocol_index((dissector_handle_t)handle);
@@ -78,7 +78,7 @@ display_dissector_names(const gchar *table _U_, gpointer handle, gpointer output
* Allow dissector key names to be sorted alphabetically
*/
-static gint
+static int
compare_dissector_key_name(gconstpointer dissector_a, gconstpointer dissector_b)
{
return strcmp((const char*)dissector_a, (const char*)dissector_b);
@@ -93,7 +93,7 @@ fprint_all_layer_types(FILE *output)
{
prev_display_dissector_name = NULL;
- dissector_all_tables_foreach_table(display_dissector_table_names, (gpointer)output, (GCompareFunc)compare_dissector_key_name);
+ dissector_all_tables_foreach_table(display_dissector_table_names, (void *)output, (GCompareFunc)compare_dissector_key_name);
}
/*
@@ -102,13 +102,13 @@ fprint_all_layer_types(FILE *output)
* We send the output to the stream described by the handle output.
*/
static void
-fprint_all_protocols_for_layer_types(FILE *output, gchar *table_name)
+fprint_all_protocols_for_layer_types(FILE *output, char *table_name)
{
prev_display_dissector_name = NULL;
dissector_table_foreach_handle(table_name,
display_dissector_names,
- (gpointer)output);
+ (void *)output);
}
/*
@@ -118,7 +118,7 @@ fprint_all_protocols_for_layer_types(FILE *output, gchar *table_name)
struct protocol_name_search{
const char *searched_name; /* Protocol filter name we are looking for */
dissector_handle_t matched_handle; /* Handle for a dissector whose protocol has the specified filter name */
- guint nb_match; /* How many dissectors matched searched_name */
+ unsigned nb_match; /* How many dissectors matched searched_name */
};
typedef struct protocol_name_search *protocol_name_search_t;
@@ -132,11 +132,11 @@ typedef struct protocol_name_search *protocol_name_search_t;
* whole list of dissectors.
*/
static void
-find_protocol_name_func(const gchar *table _U_, gpointer handle, gpointer user_data)
+find_protocol_name_func(const char *table _U_, void *handle, void *user_data)
{
int proto_id;
- const gchar *protocol_filter_name;
+ const char *protocol_filter_name;
protocol_name_search_t search_info;
ws_assert(handle);
@@ -163,23 +163,23 @@ find_protocol_name_func(const gchar *table _U_, gpointer handle, gpointer user_d
* feature (a string pointer by cl_param).
* It checks the format of the command-line, searches for a matching table
* and dissector. If a table/dissector match is not found, we display a
-* summary of the available tables/dissectors (on stderr) and return FALSE.
+* summary of the available tables/dissectors (on stderr) and return false.
* If everything is fine, we get the "Decode as" preference activated,
-* then we return TRUE.
+* then we return true.
*/
-gboolean decode_as_command_option(const gchar *cl_param)
+bool decode_as_command_option(const char *cl_param)
{
- gchar *table_name;
- guint32 selector = 0, selector2 = 0;
- gchar *decoded_param;
- gchar *remaining_param;
- gchar *selector_str = NULL;
- gchar *dissector_str;
+ char *table_name;
+ uint32_t selector = 0, selector2 = 0;
+ char *decoded_param;
+ char *remaining_param;
+ char *selector_str = NULL;
+ char *dissector_str;
dissector_handle_t dissector_matching;
dissector_table_t table_matching;
ftenum_t dissector_table_selector_type;
struct protocol_name_search user_protocol_name;
- guint64 i;
+ uint64_t i;
char op = '\0';
/* The following code will allocate and copy the command-line options in a string pointed by decoded_param */
@@ -244,7 +244,7 @@ gboolean decode_as_command_option(const gchar *cl_param)
/* Exit if the layer type was not found, or if no '=' separator was found
(see above) */
g_free(decoded_param);
- return FALSE;
+ return false;
}
dissector_table_selector_type = get_dissector_table_selector_type(table_name);
@@ -285,21 +285,21 @@ gboolean decode_as_command_option(const gchar *cl_param)
{
/* The selector for this table is an unsigned number. Parse it as such.
Skip leading spaces for backwards compatibility (previously sscanf was used). */
- gchar *str = selector_str;
- gchar *end;
- guint64 val;
+ char *str = selector_str;
+ char *end;
+ uint64_t val;
while (g_ascii_isspace(*str)) {
str++;
}
val = g_ascii_strtoull(str, &end, 0);
- if (str == end || val > G_MAXUINT32) {
+ if (str == end || val > UINT32_MAX) {
cmdarg_err("Invalid selector number \"%s\"", selector_str);
g_free(decoded_param);
- return FALSE;
+ return false;
}
- selector = (guint32) val;
+ selector = (uint32_t) val;
if (*end == '\0') {
/* not a range, but a single (valid) value */
@@ -311,18 +311,18 @@ gboolean decode_as_command_option(const gchar *cl_param)
str = end + 1;
val = g_ascii_strtoull(str, &end, 0);
- if (str == end || val > G_MAXUINT32 || *end != '\0') {
+ if (str == end || val > UINT32_MAX || *end != '\0') {
cmdarg_err("Invalid selector numeric range \"%s\"", selector_str);
g_free(decoded_param);
- return FALSE;
+ return false;
}
- selector2 = (guint32) val;
+ selector2 = (uint32_t) val;
if (op == ':') {
- if ((selector2 == 0) || ((guint64)selector + selector2 - 1) > G_MAXUINT32) {
+ if ((selector2 == 0) || ((uint64_t)selector + selector2 - 1) > UINT32_MAX) {
cmdarg_err("Invalid selector numeric range \"%s\"", selector_str);
g_free(decoded_param);
- return FALSE;
+ return false;
}
}
else if (selector2 < selector) {
@@ -330,13 +330,13 @@ gboolean decode_as_command_option(const gchar *cl_param)
* this out as an error in case it's not what was intended? */
cmdarg_err("Invalid selector numeric range \"%s\"", selector_str);
g_free(decoded_param);
- return FALSE;
+ return false;
}
} else {
/* neither a valid single value, nor a range. */
cmdarg_err("Invalid selector number \"%s\"", selector_str);
g_free(decoded_param);
- return FALSE;
+ return false;
}
break;
}
@@ -364,7 +364,7 @@ gboolean decode_as_command_option(const gchar *cl_param)
cmdarg_err("Valid protocols for layer type \"%s\" are:", table_name);
fprint_all_protocols_for_layer_types(stderr, table_name);
g_free(decoded_param);
- return FALSE;
+ return false;
}
remaining_param++; /* Position after the selector number string */
@@ -425,7 +425,7 @@ gboolean decode_as_command_option(const gchar *cl_param)
cmdarg_err("Valid protocols for layer type \"%s\" are:", table_name);
fprint_all_protocols_for_layer_types(stderr, table_name);
g_free(decoded_param);
- return FALSE;
+ return false;
}
/* This is the end of the code that parses the command-line options.
@@ -452,13 +452,13 @@ gboolean decode_as_command_option(const gchar *cl_param)
dissector_change_uint(table_name, selector, dissector_matching);
}
else if (op == ':') {
- for (i = selector; i < (guint64)selector + selector2; i++) {
- dissector_change_uint(table_name, (guint32)i, dissector_matching);
+ for (i = selector; i < (uint64_t)selector + selector2; i++) {
+ dissector_change_uint(table_name, (uint32_t)i, dissector_matching);
}
}
else { /* op == '-' */
for (i = selector; i <= selector2; i++) {
- dissector_change_uint(table_name, (guint32)i, dissector_matching);
+ dissector_change_uint(table_name, (uint32_t)i, dissector_matching);
}
}
break;
@@ -483,5 +483,5 @@ gboolean decode_as_command_option(const gchar *cl_param)
ws_assert_not_reached();
}
g_free(decoded_param); /* "Decode As" rule has been successfully added */
- return TRUE;
+ return true;
}
diff --git a/ui/decode_as_utils.h b/ui/decode_as_utils.h
index 1dc30b83f6..5699534d4a 100644
--- a/ui/decode_as_utils.h
+++ b/ui/decode_as_utils.h
@@ -28,7 +28,7 @@ extern "C" {
*/
#define DECODE_AS_ARG_TEMPLATE "<layer_type>==<selector>,<decode_as_protocol>"
-gboolean decode_as_command_option(const gchar *cl_param);
+bool decode_as_command_option(const char *cl_param);
#ifdef __cplusplus
}
diff --git a/ui/dissect_opts.c b/ui/dissect_opts.c
index 4369bd2683..c66d26fd3e 100644
--- a/ui/dissect_opts.c
+++ b/ui/dissect_opts.c
@@ -41,7 +41,7 @@ dissect_options global_dissect_options = {
.time_precision = TS_PREC_NOT_SET
};
-gboolean
+bool
dissect_opts_handle_opt(int opt, char *optarg_str_p)
{
char badopt;
@@ -51,14 +51,14 @@ dissect_opts_handle_opt(int opt, char *optarg_str_p)
switch(opt) {
case 'd': /* Decode as rule */
if (!decode_as_command_option(optarg_str_p))
- return FALSE;
+ return false;
break;
case 'K': /* Kerberos keytab file */
#if defined(HAVE_HEIMDAL_KERBEROS) || defined(HAVE_MIT_KERBEROS)
read_keytab_file(optarg_str_p);
#else
cmdarg_err("-K specified, but Kerberos keytab file support isn't present");
- return FALSE;
+ return false;
#endif
break;
case 'n': /* No name resolution */
@@ -77,7 +77,7 @@ dissect_opts_handle_opt(int opt, char *optarg_str_p)
"\t for network address resolution\n"
"\t't' to enable transport-layer port number resolution\n"
"\t'v' to enable VLAN IDs to names resolution");
- return FALSE;
+ return false;
}
break;
case 't': /* Time stamp type */
@@ -92,12 +92,12 @@ dissect_opts_handle_opt(int opt, char *optarg_str_p)
* Precision must be a number giving the number of
* digits of precision.
*/
- guint32 val;
+ uint32_t val;
if (!ws_strtou32(dotp + 1, NULL, &val) || val > WS_TSPREC_MAX) {
cmdarg_err("Invalid .N time stamp precision \"%s\"; N must be a value between 0 and %u or absent",
dotp + 1, WS_TSPREC_MAX);
- return FALSE;
+ return false;
}
tsp = val;
}
@@ -139,7 +139,7 @@ dissect_opts_handle_opt(int opt, char *optarg_str_p)
"\t\"udoy\" for absolute UTC with YYYY/DOY date");
if (dotp)
*dotp = '.';
- return FALSE;
+ return false;
}
if (dotp) {
*dotp = '.';
@@ -155,7 +155,7 @@ dissect_opts_handle_opt(int opt, char *optarg_str_p)
cmdarg_err("Invalid seconds type \"%s\"; it must be one of:", optarg_str_p);
cmdarg_err_cont("\t\"s\" for seconds\n"
"\t\"hms\" for hours, minutes and seconds");
- return FALSE;
+ return false;
}
break;
case LONGOPT_DISABLE_PROTOCOL: /* disable dissection of protocol */
@@ -183,16 +183,16 @@ dissect_opts_handle_opt(int opt, char *optarg_str_p)
/* the caller is responsible to send us only the right opt's */
ws_assert_not_reached();
}
- return TRUE;
+ return true;
}
-typedef gboolean (proto_set_func)(const char *);
+typedef bool (proto_set_func)(const char *);
-static gboolean
+static bool
process_enable_disable_list(GSList *list, proto_set_func callback)
{
- gboolean success = TRUE;
- gboolean rv;
+ bool success = true;
+ bool rv;
GSList *iter;
char *c;
char *proto_name;
@@ -204,7 +204,7 @@ process_enable_disable_list(GSList *list, proto_set_func callback)
rv = callback(proto_name);
if (!rv) {
cmdarg_err("No such protocol %s", proto_name);
- success = FALSE;
+ success = false;
}
}
else {
@@ -220,7 +220,7 @@ process_enable_disable_list(GSList *list, proto_set_func callback)
rv = callback(start);
if (!rv) {
cmdarg_err("No such protocol %s", start);
- success = FALSE;
+ success = false;
}
if (c != NULL) {
*c = save;
@@ -237,18 +237,18 @@ process_enable_disable_list(GSList *list, proto_set_func callback)
return success;
}
-gboolean
+bool
setup_enabled_and_disabled_protocols(void)
{
- gboolean success = TRUE;
+ bool success = true;
- success &= process_enable_disable_list(global_dissect_options.disable_protocol_slist,
+ success = success && process_enable_disable_list(global_dissect_options.disable_protocol_slist,
proto_disable_proto_by_name);
- success &= process_enable_disable_list(global_dissect_options.enable_protocol_slist,
+ success = success && process_enable_disable_list(global_dissect_options.enable_protocol_slist,
proto_enable_proto_by_name);
- success &= process_enable_disable_list(global_dissect_options.enable_heur_slist,
+ success = success && process_enable_disable_list(global_dissect_options.enable_heur_slist,
proto_enable_heuristic_by_name);
- success &= process_enable_disable_list(global_dissect_options.disable_heur_slist,
+ success = success && process_enable_disable_list(global_dissect_options.disable_heur_slist,
proto_disable_heuristic_by_name);
return success;
}
diff --git a/ui/dissect_opts.h b/ui/dissect_opts.h
index 3b98e1d210..d86aa0d226 100644
--- a/ui/dissect_opts.h
+++ b/ui/dissect_opts.h
@@ -66,20 +66,20 @@ extern dissect_options global_dissect_options;
/*
* Handle a command line option.
- * Returns TRUE if the option is valid, FALSE if not; an error message
+ * Returns true if the option is valid, false if not; an error message
* is reported with cmdarg_err() if it's not valid.
*/
-extern gboolean
+extern bool
dissect_opts_handle_opt(int opt, char *optarg_str_p);
/*
* Set up disabled protocols and enabled/disabled heuristic protocols
* as per specified command-line options.
*
- * Returns TRUE if all specified heuristic protocols exist, FALSE
+ * Returns true if all specified heuristic protocols exist, false
* otherwise.
*/
-extern gboolean
+extern bool
setup_enabled_and_disabled_protocols(void);
#ifdef __cplusplus
diff --git a/ui/export_pdu_ui_utils.c b/ui/export_pdu_ui_utils.c
index 51780dd858..32b91ad8cf 100644
--- a/ui/export_pdu_ui_utils.c
+++ b/ui/export_pdu_ui_utils.c
@@ -30,16 +30,16 @@
#include "export_pdu_ui_utils.h"
void
-do_export_pdu(const char *filter, const gchar *temp_dir, const gchar *tap_name)
+do_export_pdu(const char *filter, const char *temp_dir, const char *tap_name)
{
exp_pdu_t exp_pdu_tap_data;
char *error;
int import_file_fd;
int file_type_subtype;
char *capfile_name = NULL, *comment;
- gboolean status;
+ bool status;
int err;
- gchar *err_info;
+ char *err_info;
error = exp_pdu_pre_open(tap_name, filter, &exp_pdu_tap_data);
if (error) {
@@ -85,13 +85,13 @@ do_export_pdu(const char *filter, const gchar *temp_dir, const gchar *tap_name)
}
/* XXX: should this use the open_routine type in the cfile instead of WTAP_TYPE_AUTO? */
- if (cf_open(&cfile, capfile_name, WTAP_TYPE_AUTO, TRUE /* temporary file */, &err) != CF_OK) {
+ if (cf_open(&cfile, capfile_name, WTAP_TYPE_AUTO, true /* temporary file */, &err) != CF_OK) {
/* cf_open() has put up a dialog box for the error */
g_free(capfile_name);
return;
}
- switch (cf_read(&cfile, /*reloading=*/FALSE)) {
+ switch (cf_read(&cfile, /*reloading=*/false)) {
case CF_READ_OK:
case CF_READ_ERROR:
/* Just because we got an error, that doesn't mean we were unable
diff --git a/ui/export_pdu_ui_utils.h b/ui/export_pdu_ui_utils.h
index 9187527fe5..a13eef8bdb 100644
--- a/ui/export_pdu_ui_utils.h
+++ b/ui/export_pdu_ui_utils.h
@@ -21,7 +21,7 @@ extern "C" {
* Filters the current opened capture file into a temporary file. On success,
* the filtered file is opened into the UI.
*/
-void do_export_pdu(const char *filter, const gchar *temp_dir, const gchar *tap_name);
+void do_export_pdu(const char *filter, const char *temp_dir, const char *tap_name);
#ifdef __cplusplus
diff --git a/ui/failure_message.c b/ui/failure_message.c
index 84a19e1cb5..00dfe791e3 100644
--- a/ui/failure_message.c
+++ b/ui/failure_message.c
@@ -34,11 +34,11 @@ failure_message(const char *msg_format, va_list ap)
* Error message for a failed attempt to open or create a file
* other than a capture file.
* "filename" is the name of the file being opened; "err" is assumed
- * to be a UNIX-style errno; "for_writing" is TRUE if we're opening
- * the file for writing and FALSE if we're opening it for reading.
+ * to be a UNIX-style errno; "for_writing" is true if we're opening
+ * the file for writing and false if we're opening it for reading.
*/
void
-open_failure_message(const char *filename, int err, gboolean for_writing)
+open_failure_message(const char *filename, int err, bool for_writing)
{
cmdarg_err(file_open_error_message(err, for_writing), filename);
}
@@ -106,7 +106,7 @@ output_file_description(const char *fname)
* to be a string giving further information for some WTAP_ERR_ values.
*/
void
-cfile_open_failure_message(const char *filename, int err, gchar *err_info)
+cfile_open_failure_message(const char *filename, int err, char *err_info)
{
if (err < 0) {
/*
@@ -195,7 +195,7 @@ cfile_open_failure_message(const char *filename, int err, gchar *err_info)
}
g_free(file_description);
} else
- cmdarg_err(file_open_error_message(err, FALSE), filename);
+ cmdarg_err(file_open_error_message(err, false), filename);
}
/*
@@ -207,7 +207,7 @@ cfile_open_failure_message(const char *filename, int err, gchar *err_info)
* and subtype of file being opened.
*/
void
-cfile_dump_open_failure_message(const char *filename, int err, gchar *err_info,
+cfile_dump_open_failure_message(const char *filename, int err, char *err_info,
int file_type_subtype)
{
if (err < 0) {
@@ -275,7 +275,7 @@ cfile_dump_open_failure_message(const char *filename, int err, gchar *err_info,
}
g_free(file_description);
} else
- cmdarg_err(file_open_error_message(err, TRUE), filename);
+ cmdarg_err(file_open_error_message(err, true), filename);
}
/*
@@ -285,7 +285,7 @@ cfile_dump_open_failure_message(const char *filename, int err, gchar *err_info,
* to be a string giving further information for some WTAP_ERR_ values.
*/
void
-cfile_read_failure_message(const char *filename, int err, gchar *err_info)
+cfile_read_failure_message(const char *filename, int err, char *err_info)
{
char *file_string;
@@ -359,8 +359,8 @@ cfile_read_failure_message(const char *filename, int err, gchar *err_info)
*/
void
cfile_write_failure_message(const char *in_filename, const char *out_filename,
- int err, gchar *err_info,
- guint32 framenum, int file_type_subtype)
+ int err, char *err_info,
+ uint32_t framenum, int file_type_subtype)
{
char *in_file_string;
char *in_frame_string;
@@ -499,7 +499,7 @@ cfile_write_failure_message(const char *in_filename, const char *out_filename,
* so we have to check for write errors here.
*/
void
-cfile_close_failure_message(const char *filename, int err, gchar *err_info)
+cfile_close_failure_message(const char *filename, int err, char *err_info)
{
char *file_string;
diff --git a/ui/failure_message.h b/ui/failure_message.h
index 4f65f98f57..b9a0e6abf7 100644
--- a/ui/failure_message.h
+++ b/ui/failure_message.h
@@ -26,11 +26,11 @@ extern void failure_message(const char *msg_format, va_list ap);
* Error message for a failed attempt to open or create a file
* other than a capture file.
* "filename" is the name of the file being opened; "err" is assumed
- * to be a UNIX-style errno; "for_writing" is TRUE if we're opening
- * the file for writing and FALSE if we're opening it for reading.
+ * to be a UNIX-style errno; "for_writing" is true if we're opening
+ * the file for writing and false if we're opening it for reading.
*/
extern void open_failure_message(const char *filename, int err,
- gboolean for_writing);
+ bool for_writing);
/*
* Error message for a failed attempt to read from a file other than
@@ -55,7 +55,7 @@ extern void write_failure_message(const char *filename, int err);
* to be a string giving further information for some WTAP_ERR_ values.
*/
extern void cfile_open_failure_message(const char *filename, int err,
- gchar *err_info);
+ char *err_info);
/*
* Error message for a failed attempt to open a capture file for output.
@@ -66,7 +66,7 @@ extern void cfile_open_failure_message(const char *filename, int err,
* and subtype of file being opened.
*/
extern void cfile_dump_open_failure_message(const char *filename, int err,
- gchar *err_info,
+ char *err_info,
int file_type_subtype);
/*
@@ -76,7 +76,7 @@ extern void cfile_dump_open_failure_message(const char *filename, int err,
* to be a string giving further information for some WTAP_ERR_ values.
*/
extern void cfile_read_failure_message(const char *filename, int err,
- gchar *err_info);
+ char *err_info);
/*
* Error message for a failed attempt to write to a capture file.
@@ -91,8 +91,8 @@ extern void cfile_read_failure_message(const char *filename, int err,
*/
extern void cfile_write_failure_message(const char *in_filename,
const char *out_filename,
- int err, gchar *err_info,
- guint32 framenum,
+ int err, char *err_info,
+ uint32_t framenum,
int file_type_subtype);
/*
@@ -120,7 +120,7 @@ extern void cfile_write_failure_message(const char *in_filename,
* so we have to check for write errors here.
*/
extern void cfile_close_failure_message(const char *filename, int err,
- gchar *err_info);
+ char *err_info);
#ifdef __cplusplus
}
diff --git a/ui/file_dialog.c b/ui/file_dialog.c
index 91eea5ad47..7d35f58965 100644
--- a/ui/file_dialog.c
+++ b/ui/file_dialog.c
@@ -24,26 +24,26 @@
ws_file_preview_stats_status
get_stats_for_preview(wtap *wth, ws_file_preview_stats *stats,
- int *err, gchar **err_info)
+ int *err, char **err_info)
{
- gint64 data_offset;
+ int64_t data_offset;
wtap_rec rec;
Buffer buf;
- guint32 records;
- guint32 data_records;
+ uint32_t records;
+ uint32_t data_records;
double start_time;
double stop_time;
- gboolean have_times;
- gboolean timed_out;
+ bool have_times;
+ bool timed_out;
time_t time_preview, time_current;
double cur_time;
- have_times = FALSE;
+ have_times = false;
start_time = 0;
stop_time = 0;
records = 0;
data_records = 0;
- timed_out = FALSE;
+ timed_out = false;
time(&time_preview);
wtap_rec_init(&rec);
ws_buffer_init(&buf, 1514);
@@ -53,7 +53,7 @@ get_stats_for_preview(wtap *wth, ws_file_preview_stats *stats,
if (!have_times) {
start_time = cur_time;
stop_time = cur_time;
- have_times = TRUE;
+ have_times = true;
}
if (cur_time < start_time) {
start_time = cur_time;
@@ -79,7 +79,7 @@ get_stats_for_preview(wtap *wth, ws_file_preview_stats *stats,
/* do we have a timeout? */
time(&time_current);
if (time_current-time_preview >= (time_t) prefs.gui_fileopen_preview) {
- timed_out = TRUE;
+ timed_out = true;
break;
}
}
diff --git a/ui/file_dialog.h b/ui/file_dialog.h
index e850712660..cd85693cc0 100644
--- a/ui/file_dialog.h
+++ b/ui/file_dialog.h
@@ -34,11 +34,11 @@ typedef enum {
} export_type_e;
typedef struct {
- gboolean have_times; /* TRUE if we have start and stop times */
+ bool have_times; /* true if we have start and stop times */
double start_time; /* seconds, with nsec resolution */
double stop_time; /* seconds, with nsec resolution */
- guint32 records; /* total number of records */
- guint32 data_records; /* number of data records */
+ uint32_t records; /* total number of records */
+ uint32_t data_records; /* number of data records */
} ws_file_preview_stats;
typedef enum {
@@ -49,7 +49,7 @@ typedef enum {
extern ws_file_preview_stats_status
get_stats_for_preview(wtap *wth, ws_file_preview_stats *stats,
- int *err, gchar **err_info);
+ int *err, char **err_info);
#ifdef __cplusplus
}
diff --git a/ui/firewall_rules.c b/ui/firewall_rules.c
index 3ddc31b5af..a33b607dc2 100644
--- a/ui/firewall_rules.c
+++ b/ui/firewall_rules.c
@@ -28,32 +28,32 @@
#include "firewall_rules.h"
-static void sf_ipfw_mac(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netfilter_mac(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-
-static void sf_ios_std_ipv4(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_ios_ext_ipv4(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_ipfilter_ipv4(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_ipfw_ipv4(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netfilter_ipv4(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_pf_ipv4(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
+static void sf_ipfw_mac(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netfilter_mac(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+
+static void sf_ios_std_ipv4(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_ios_ext_ipv4(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_ipfilter_ipv4(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_ipfw_ipv4(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netfilter_ipv4(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_pf_ipv4(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
/* XXX - Can you addresses-only filters using WFW/netsh? */
-static void sf_ios_ext_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_ipfilter_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_ipfw_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netfilter_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_pf_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netsh_port_old(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netsh_port_new(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-
-static void sf_ios_ext_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_ipfilter_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_ipfw_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netfilter_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_pf_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netsh_ipv4_port_old(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
-static void sf_netsh_ipv4_port_new(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
+static void sf_ios_ext_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_ipfilter_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_ipfw_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netfilter_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_pf_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netsh_port_old(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netsh_port_new(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+
+static void sf_ios_ext_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_ipfilter_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_ipfw_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netfilter_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_pf_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netsh_ipv4_port_old(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
+static void sf_netsh_ipv4_port_new(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
typedef struct _fw_product_t {
const char *name;
@@ -63,27 +63,27 @@ typedef struct _fw_product_t {
syntax_func ipv4_func;
syntax_func port_func;
syntax_func ipv4_port_func;
- gboolean does_inbound;
+ bool does_inbound;
} fw_product;
static fw_product products[] = {
{ "Cisco IOS (standard)", "Change NUMBER to a valid ACL number.", "!",
- NULL, sf_ios_std_ipv4, NULL, NULL, FALSE },
+ NULL, sf_ios_std_ipv4, NULL, NULL, false },
{ "Cisco IOS (extended)", "Change NUMBER to a valid ACL number.", "!",
- NULL, sf_ios_ext_ipv4, sf_ios_ext_port, sf_ios_ext_ipv4_port, TRUE },
+ NULL, sf_ios_ext_ipv4, sf_ios_ext_port, sf_ios_ext_ipv4_port, true },
{ "IP Filter (ipfilter)", "Change le0 to a valid interface if needed.", "#",
- NULL, sf_ipfilter_ipv4, sf_ipfilter_port, sf_ipfilter_ipv4_port, TRUE },
+ NULL, sf_ipfilter_ipv4, sf_ipfilter_port, sf_ipfilter_ipv4_port, true },
{ "IPFirewall (ipfw)", "", "#",
- sf_ipfw_mac, sf_ipfw_ipv4, sf_ipfw_port, sf_ipfw_ipv4_port, TRUE },
+ sf_ipfw_mac, sf_ipfw_ipv4, sf_ipfw_port, sf_ipfw_ipv4_port, true },
{ "Netfilter (iptables)", "Change eth0 to a valid interface if needed.", "#",
sf_netfilter_mac, sf_netfilter_ipv4, sf_netfilter_port,
- sf_netfilter_ipv4_port, TRUE },
+ sf_netfilter_ipv4_port, true },
{ "Packet Filter (pf)", "$ext_if should be set to a valid interface.", "#",
- NULL, sf_pf_ipv4, sf_pf_port, sf_pf_ipv4_port, TRUE },
+ NULL, sf_pf_ipv4, sf_pf_port, sf_pf_ipv4_port, true },
{ "Windows Firewall (netsh old syntax)", "", "#",
- NULL, NULL, sf_netsh_port_old, sf_netsh_ipv4_port_old, FALSE },
+ NULL, NULL, sf_netsh_port_old, sf_netsh_ipv4_port_old, false },
{ "Windows Firewall (netsh new syntax)", "", "#",
- NULL, NULL, sf_netsh_port_new, sf_netsh_ipv4_port_new, FALSE }
+ NULL, NULL, sf_netsh_port_new, sf_netsh_ipv4_port_new, false }
};
#define NUM_PRODS (sizeof(products) / sizeof(fw_product))
@@ -138,9 +138,9 @@ syntax_func firewall_product_ipv4_port_func(size_t product_idx)
return products[product_idx].ipv4_port_func;
}
-gboolean firewall_product_does_inbound(size_t product_idx)
+bool firewall_product_does_inbound(size_t product_idx)
{
- if (product_idx >= NUM_PRODS) return FALSE;
+ if (product_idx >= NUM_PRODS) return false;
return products[product_idx].does_inbound;
}
@@ -148,25 +148,25 @@ gboolean firewall_product_does_inbound(size_t product_idx)
/* MAC */
#define IPFW_RULE(deny) ((deny) ? "deny" : "allow")
#define IPFW_DIR(inbound) ((inbound) ? "in" : "out")
-static void sf_ipfw_mac(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound, gboolean deny) {
+static void sf_ipfw_mac(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound, bool deny) {
g_string_append_printf(rtxt, "add %s MAC %s any %s",
IPFW_RULE(deny), addr, IPFW_DIR(inbound));
}
#define NF_RULE(deny) ((deny) ? "DROP" : "ACCEPT")
#define NF_DIR(inbound) ((inbound) ? "INPUT" : "OUTPUT")
-static void sf_netfilter_mac(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound, gboolean deny) {
+static void sf_netfilter_mac(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound, bool deny) {
g_string_append_printf(rtxt, "iptables --append %s --in-interface eth0 --mac-source %s --jump %s",
NF_DIR(inbound), addr, NF_RULE(deny));
}
/* IPv4 */
#define IOS_RULE(deny) ((deny) ? "deny" : "permit")
-static void sf_ios_std_ipv4(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound _U_, gboolean deny) {
+static void sf_ios_std_ipv4(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound _U_, bool deny) {
g_string_append_printf(rtxt, "access-list NUMBER %s host %s", IOS_RULE(deny), addr);
}
-static void sf_ios_ext_ipv4(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound, gboolean deny) {
+static void sf_ios_ext_ipv4(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound, bool deny) {
if (inbound)
g_string_append_printf(rtxt, "access-list NUMBER %s ip host %s any", IOS_RULE(deny), addr);
else
@@ -176,78 +176,78 @@ static void sf_ios_ext_ipv4(GString *rtxt, gchar *addr, guint32 port _U_, port_t
#define IPFILTER_RULE(deny) ((deny) ? "block" : "pass")
#define IPFILTER_DIR(inbound) ((inbound) ? "in" : "out")
-static void sf_ipfilter_ipv4(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound, gboolean deny) {
+static void sf_ipfilter_ipv4(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound, bool deny) {
g_string_append_printf(rtxt, "%s %s on le0 from %s to any",
IPFILTER_RULE(deny), IPFILTER_DIR(inbound), addr);
}
-static void sf_ipfw_ipv4(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound, gboolean deny) {
+static void sf_ipfw_ipv4(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound, bool deny) {
g_string_append_printf(rtxt, "add %s ip from %s to any %s",
IPFW_RULE(deny), addr, IPFW_DIR(inbound));
}
#define NF_ADDR_DIR(inbound) ((inbound) ? "--source" : "--destination")
-static void sf_netfilter_ipv4(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound, gboolean deny) {
+static void sf_netfilter_ipv4(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound, bool deny) {
g_string_append_printf(rtxt, "iptables --append %s --in-interface eth0 %s %s/32 --jump %s",
NF_DIR(inbound), NF_ADDR_DIR(inbound), addr, NF_RULE(deny));
}
#define PF_RULE(deny) ((deny) ? "block" : "pass")
#define PF_DIR(inbound) ((inbound) ? "in" : "out")
-static void sf_pf_ipv4(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype _U_, gboolean inbound, gboolean deny) {
+static void sf_pf_ipv4(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype _U_, bool inbound, bool deny) {
g_string_append_printf(rtxt, "%s %s quick on $ext_if from %s to any",
PF_RULE(deny), PF_DIR(inbound), addr);
}
/* Port */
#define RT_TCP_UDP(ptype) ((ptype) == PT_TCP ? "tcp" : "udp")
-static void sf_ios_ext_port(GString *rtxt, gchar *addr _U_, guint32 port, port_type ptype, gboolean inbound _U_, gboolean deny) {
+static void sf_ios_ext_port(GString *rtxt, char *addr _U_, uint32_t port, port_type ptype, bool inbound _U_, bool deny) {
g_string_append_printf(rtxt, "access-list NUMBER %s %s any any eq %u",
IOS_RULE(deny), RT_TCP_UDP(ptype), port);
}
-static void sf_ipfilter_port(GString *rtxt, gchar *addr _U_, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_ipfilter_port(GString *rtxt, char *addr _U_, uint32_t port, port_type ptype, bool inbound, bool deny) {
g_string_append_printf(rtxt, "%s %s on le0 proto %s from any to any port = %u",
IPFILTER_RULE(deny), IPFILTER_DIR(inbound), RT_TCP_UDP(ptype), port);
}
-static void sf_ipfw_port(GString *rtxt, gchar *addr _U_, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_ipfw_port(GString *rtxt, char *addr _U_, uint32_t port, port_type ptype, bool inbound, bool deny) {
g_string_append_printf(rtxt, "add %s %s from any to any %u %s",
IPFW_RULE(deny), RT_TCP_UDP(ptype), port, IPFW_DIR(inbound));
}
#define NF_PORT_DIR(inbound) ((inbound) ? "--source-port" : "--destination-port")
-static void sf_netfilter_port(GString *rtxt, gchar *addr _U_, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_netfilter_port(GString *rtxt, char *addr _U_, uint32_t port, port_type ptype, bool inbound, bool deny) {
g_string_append_printf(rtxt, "iptables --append %s --in-interface eth0 --protocol %s %s %u --jump %s",
NF_DIR(inbound), RT_TCP_UDP(ptype), NF_PORT_DIR(inbound), port, NF_RULE(deny));
}
-static void sf_pf_port(GString *rtxt, gchar *addr _U_, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_pf_port(GString *rtxt, char *addr _U_, uint32_t port, port_type ptype, bool inbound, bool deny) {
g_string_append_printf(rtxt, "%s %s quick on $ext_if proto %s from any to any port %u",
PF_RULE(deny), PF_DIR(inbound), RT_TCP_UDP(ptype), port);
}
#define NETSH_RULE_OLD(deny) ((deny) ? "DISABLE" : "ENABLE")
-static void sf_netsh_port_old(GString *rtxt, gchar *addr _U_, guint32 port, port_type ptype, gboolean inbound _U_, gboolean deny) {
+static void sf_netsh_port_old(GString *rtxt, char *addr _U_, uint32_t port, port_type ptype, bool inbound _U_, bool deny) {
g_string_append_printf(rtxt, "add portopening %s %u Wireshark %s",
RT_TCP_UDP(ptype), port, NETSH_RULE_OLD(deny));
}
#define NETSH_RULE_NEW(deny) ((deny) ? "block" : "allow")
-static void sf_netsh_port_new(GString *rtxt, gchar *addr _U_, guint32 port, port_type ptype, gboolean inbound _U_, gboolean deny) {
+static void sf_netsh_port_new(GString *rtxt, char *addr _U_, uint32_t port, port_type ptype, bool inbound _U_, bool deny) {
g_string_append_printf(rtxt, "add rule name=\"Wireshark\" dir=in action=%s protocol=%s localport=%u",
NETSH_RULE_NEW(deny), RT_TCP_UDP(ptype), port);
}
/* IPv4 + port */
-static void sf_ios_ext_ipv4_port(GString *rtxt, gchar *addr, guint32 port _U_, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_ios_ext_ipv4_port(GString *rtxt, char *addr, uint32_t port _U_, port_type ptype, bool inbound, bool deny) {
if (inbound)
g_string_append_printf(rtxt, "access-list NUMBER %s %s host %s eq %u any", IOS_RULE(deny), RT_TCP_UDP(ptype), addr, port);
else
g_string_append_printf(rtxt, "access-list NUMBER %s %s any host %s eq %u", IOS_RULE(deny), RT_TCP_UDP(ptype), addr, port);
}
-static void sf_ipfilter_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_ipfilter_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny) {
if (inbound)
g_string_append_printf(rtxt, "%s %s on le0 proto %s from %s port = %u to any",
IPFILTER_RULE(deny), IPFILTER_DIR(inbound), RT_TCP_UDP(ptype), addr, port);
@@ -256,27 +256,27 @@ static void sf_ipfilter_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port
IPFILTER_RULE(deny), IPFILTER_DIR(inbound), RT_TCP_UDP(ptype), addr, port);
}
-static void sf_ipfw_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_ipfw_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny) {
g_string_append_printf(rtxt, "add %s %s from %s %u to any %s",
IPFW_RULE(deny), RT_TCP_UDP(ptype), addr, port, IPFW_DIR(inbound));
}
-static void sf_pf_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_pf_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny) {
g_string_append_printf(rtxt, "%s %s quick on $ext_if proto %s from %s to any port %u",
PF_RULE(deny), PF_DIR(inbound), RT_TCP_UDP(ptype), addr, port);
}
-static void sf_netfilter_ipv4_port(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny) {
+static void sf_netfilter_ipv4_port(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny) {
g_string_append_printf(rtxt, "iptables --append %s --in-interface eth0 --protocol %s %s %s/32 %s %u --jump %s",
NF_DIR(inbound), RT_TCP_UDP(ptype), NF_ADDR_DIR(inbound), addr, NF_PORT_DIR(inbound), port, NF_RULE(deny));
}
-static void sf_netsh_ipv4_port_old(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound _U_, gboolean deny) {
+static void sf_netsh_ipv4_port_old(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound _U_, bool deny) {
g_string_append_printf(rtxt, "add portopening %s %u Wireshark %s %s",
RT_TCP_UDP(ptype), port, NETSH_RULE_OLD(deny), addr);
}
-static void sf_netsh_ipv4_port_new(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound _U_, gboolean deny) {
+static void sf_netsh_ipv4_port_new(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound _U_, bool deny) {
g_string_append_printf(rtxt, "add rule name=\"Wireshark\" dir=in action=%s protocol=%s localport=%u remoteip=%s",
NETSH_RULE_NEW(deny), RT_TCP_UDP(ptype), port, addr);
}
diff --git a/ui/firewall_rules.h b/ui/firewall_rules.h
index cfe2e4f254..456cf61f33 100644
--- a/ui/firewall_rules.h
+++ b/ui/firewall_rules.h
@@ -57,7 +57,7 @@ const char *firewall_product_rule_hint(size_t product_idx);
const char *firewall_product_comment_prefix(size_t product_idx);
/* Syntax function prototypes */
-typedef void (*syntax_func)(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
+typedef void (*syntax_func)(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
/** MAC filter function
* @param product_idx Product index.
@@ -86,9 +86,9 @@ syntax_func firewall_product_ipv4_port_func(size_t product_idx);
/** Product inbound support
* Given an index, return the product's ability to support inbound rules.
* @param product_idx Product index.
- * @return TRUE or FALSE.
+ * @return true or false.
*/
-gboolean firewall_product_does_inbound(size_t product_idx);
+bool firewall_product_does_inbound(size_t product_idx);
#ifdef __cplusplus
}
diff --git a/ui/help_url.c b/ui/help_url.c
index f7510c422c..80427e1ba2 100644
--- a/ui/help_url.c
+++ b/ui/help_url.c
@@ -27,8 +27,8 @@
/*
* Open the help dialog and show a specific HTML help page.
*/
-gchar *
-user_guide_url(const gchar *page) {
+char *
+user_guide_url(const char *page) {
GString *url = g_string_new("");
#if defined(_WIN32)
@@ -42,7 +42,7 @@ user_guide_url(const gchar *page) {
if (g_file_test(ug_dir->str, G_FILE_TEST_IS_DIR)) {
g_string_printf(url, "file:///%s/%s", ug_dir->str, page);
}
- g_string_free(ug_dir, TRUE);
+ g_string_free(ug_dir, true);
#else
char *path = g_build_filename(get_doc_dir(), "wsug_html_chunked", page, NULL);
if (g_file_test(path, G_FILE_TEST_IS_REGULAR)) {
@@ -58,13 +58,13 @@ user_guide_url(const gchar *page) {
if (url->len == 0) {
g_string_printf(url, WS_DOCS_URL "wsug_html_chunked/%s", page);
}
- return g_string_free(url, FALSE);
+ return g_string_free(url, false);
}
-gchar *
+char *
topic_action_url(topic_action_e action)
{
- gchar *url;
+ char *url;
switch(action) {
/* pages online at www.wireshark.org */
diff --git a/ui/help_url.h b/ui/help_url.h
index 84331c69c3..d3d5fb5d87 100644
--- a/ui/help_url.h
+++ b/ui/help_url.h
@@ -118,7 +118,7 @@ typedef enum {
* @return A static URL or NULL. A non-NULL return value must be freed
* with g_free().
*/
-gchar *user_guide_url(const gchar *page);
+char *user_guide_url(const char *page);
/** Given a topic action return its URL. If the attempt succeeds NULL
* will be returned.
@@ -127,7 +127,7 @@ gchar *user_guide_url(const gchar *page);
* @return A static URL or NULL. A non-NULL return value must be freed
* with g_free().
*/
-gchar *topic_action_url(topic_action_e action);
+char *topic_action_url(topic_action_e action);
/** Open a specific topic (create a "Help" dialog box or open a webpage).
*
diff --git a/ui/iface_lists.c b/ui/iface_lists.c
index 711c52f921..56c95cea68 100644
--- a/ui/iface_lists.c
+++ b/ui/iface_lists.c
@@ -28,13 +28,13 @@
/*
* Try to populate the given device with options (like capture filter) from
* the capture options that are in use for an existing capture interface.
- * Returns TRUE if the interface is selected for capture and FALSE otherwise.
+ * Returns true if the interface is selected for capture and false otherwise.
*/
-static gboolean
+static bool
fill_from_ifaces (interface_t *device)
{
interface_options *interface_opts;
- guint i;
+ unsigned i;
for (i = 0; i < global_capture_opts.ifaces->len; i++) {
interface_opts = &g_array_index(global_capture_opts.ifaces, interface_options, i);
@@ -55,13 +55,13 @@ fill_from_ifaces (interface_t *device)
if (interface_opts->linktype != -1) {
device->active_dlt = interface_opts->linktype;
}
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
-static gchar *
-get_iface_display_name(const gchar *description, const if_info_t *if_info)
+static char *
+get_iface_display_name(const char *description, const if_info_t *if_info)
{
/* Do we have a user-supplied description? */
if (description && description[0]) {
@@ -75,7 +75,7 @@ get_iface_display_name(const gchar *description, const if_info_t *if_info)
* rather than the name, as the name is a string made out
* of the device GUID, and not at all friendly.
*/
- gchar *if_string = if_info->friendly_name ? if_info->friendly_name : if_info->name;
+ char *if_string = if_info->friendly_name ? if_info->friendly_name : if_info->name;
return ws_strdup_printf("%s: %s", description, if_string);
#else
/*
@@ -137,20 +137,20 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
{
GList *if_entry, *lt_entry, *if_list;
if_info_t *if_info;
- gchar *descr;
+ char *descr;
if_capabilities_t *caps=NULL;
- gboolean monitor_mode;
+ bool monitor_mode;
GSList *curr_addr;
int ips = 0, i;
- guint count = 0, j;
+ unsigned count = 0, j;
if_addr_t *addr;
link_row *link = NULL;
data_link_info_t *data_link_info;
interface_t device;
GString *ip_str = NULL;
interface_options *interface_opts;
- gboolean found = FALSE;
- static gboolean running = FALSE;
+ bool found = false;
+ static bool running = false;
if (running) {
/* scan_local_interfaces internally calls update_cb to process UI events
@@ -160,7 +160,7 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
This return avoids recursive scan_local_interfaces operation. */
return;
}
- running = TRUE;
+ running = true;
/* Retrieve list of interface information (if_info_t) into if_list. */
g_free(global_capture_opts.ifaces_err_info);
@@ -187,7 +187,7 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
/* Filter out all interfaces which are not allowed to be scanned */
if (allowed_types != NULL)
{
- if(g_list_find(allowed_types, GUINT_TO_POINTER((guint) if_info->type)) == NULL) {
+ if(g_list_find(allowed_types, GUINT_TO_POINTER((unsigned) if_info->type)) == NULL) {
continue;
}
}
@@ -217,12 +217,12 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
device = g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (device.local && device.if_info.type != IF_PIPE && device.if_info.type != IF_STDIN) {
- found = FALSE;
+ found = false;
for (if_entry = if_list; if_entry != NULL; if_entry = g_list_next(if_entry)) {
if_info = (if_info_t *)if_entry->data;
if (strcmp(device.name, if_info->name) == 0) {
- found = TRUE;
+ found = true;
break;
}
}
@@ -257,16 +257,16 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
/* Filter out all interfaces which are not allowed to be scanned */
if (allowed_types != NULL)
{
- if(g_list_find(allowed_types, GUINT_TO_POINTER((guint) if_info->type)) == NULL) {
+ if(g_list_find(allowed_types, GUINT_TO_POINTER((unsigned) if_info->type)) == NULL) {
continue;
}
}
- found = FALSE;
+ found = false;
for (i = 0; i < (int)global_capture_opts.all_ifaces->len; i++) {
device = g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (strcmp(device.name, if_info->name) == 0) {
- found = TRUE;
+ found = true;
/* Remove it because we'll reinsert it below (in the proper
* index order, if that matters. Does it?)
*/
@@ -279,11 +279,11 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
/* New device. Create a new one and set all the defaults. */
memset(&device, 0, sizeof(device));
device.name = g_strdup(if_info->name);
- device.hidden = FALSE;
+ device.hidden = false;
if (prefs_is_capture_device_hidden(if_info->name)) {
- device.hidden = TRUE;
+ device.hidden = true;
}
- device.selected = FALSE;
+ device.selected = false;
#ifdef HAVE_PCAP_REMOTE
device.remote_opts.src_type = CAPTURE_IFLOCAL;
@@ -301,7 +301,7 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
device.remote_opts.sampling_param = global_capture_opts.default_options.sampling_param;
#endif
- device.local = TRUE;
+ device.local = true;
device.last_packets = 0;
if (!capture_dev_user_pmode_find(if_info->name, &device.pmode)) {
device.pmode = global_capture_opts.default_options.promisc_mode;
@@ -387,7 +387,7 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
}
}
device.addresses = g_strdup(ip_str->str);
- g_string_free(ip_str, TRUE);
+ g_string_free(ip_str, true);
device.links = NULL;
caps = if_info->caps;
@@ -431,8 +431,8 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
}
} else {
#if defined(HAVE_PCAP_CREATE)
- device.monitor_mode_enabled = FALSE;
- device.monitor_mode_supported = FALSE;
+ device.monitor_mode_enabled = false;
+ device.monitor_mode_supported = false;
#endif
device.active_dlt = -1;
}
@@ -442,10 +442,10 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
/* Copy interface options for active capture devices.
* XXX: Not clear if we still need to do this, since we're not
* destroying the old devices. */
- gboolean selected = fill_from_ifaces(&device);
+ bool selected = fill_from_ifaces(&device);
/* Restore device selection (for next capture). */
if (!device.selected && selected) {
- device.selected = TRUE;
+ device.selected = true;
global_capture_opts.num_selected++;
}
@@ -476,7 +476,7 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
for (j = 0; j < global_capture_opts.ifaces->len; j++) {
interface_opts = &g_array_index(global_capture_opts.ifaces, interface_options, j);
- found = FALSE;
+ found = false;
for (i = 0; i < (int)global_capture_opts.all_ifaces->len; i++) {
device = g_array_index(global_capture_opts.all_ifaces, interface_t, i);
@@ -486,7 +486,7 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
}
if (strcmp(device.name, interface_opts->name) == 0) {
- found = TRUE;
+ found = true;
break;
}
}
@@ -496,14 +496,14 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
device.display_name = interface_opts->descr ?
ws_strdup_printf("%s: %s", device.name, interface_opts->descr) :
g_strdup(device.name);
- device.hidden = FALSE;
- device.selected = TRUE;
+ device.hidden = false;
+ device.selected = true;
#ifdef CAN_SET_CAPTURE_BUFFER_SIZE
device.buffer = interface_opts->buffer_size;
#endif
#if defined(HAVE_PCAP_CREATE)
device.monitor_mode_enabled = interface_opts->monitor_mode;
- device.monitor_mode_supported = FALSE;
+ device.monitor_mode_supported = false;
#endif
device.pmode = interface_opts->promisc_mode;
device.has_snaplen = interface_opts->has_snaplen;
@@ -515,13 +515,13 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
device.no_addresses = 0;
device.last_packets = 0;
device.links = NULL;
- device.local = TRUE;
+ device.local = true;
device.if_info.name = g_strdup(interface_opts->name);
device.if_info.type = interface_opts->if_type;
device.if_info.friendly_name = NULL;
device.if_info.vendor_description = g_strdup(interface_opts->hardware);
device.if_info.addrs = NULL;
- device.if_info.loopback = FALSE;
+ device.if_info.loopback = false;
device.if_info.extcap = g_strdup(interface_opts->extcap);
g_array_append_val(global_capture_opts.all_ifaces, device);
@@ -529,7 +529,7 @@ scan_local_interfaces_filtered(GList * allowed_types, void (*update_cb)(void))
}
}
- running = FALSE;
+ running = false;
}
/*
@@ -551,9 +551,9 @@ fill_in_local_interfaces(void(*update_cb)(void))
void
fill_in_local_interfaces_filtered(GList * filter_list, void(*update_cb)(void))
{
- gint64 start_time;
+ int64_t start_time;
double elapsed;
- static gboolean initialized = FALSE;
+ static bool initialized = false;
/* record the time we started, so we can log total time later */
start_time = g_get_monotonic_time();
@@ -561,7 +561,7 @@ fill_in_local_interfaces_filtered(GList * filter_list, void(*update_cb)(void))
if (!initialized) {
/* do the actual work */
scan_local_interfaces_filtered(filter_list, update_cb);
- initialized = TRUE;
+ initialized = true;
}
/* log how long it took */
elapsed = (g_get_monotonic_time() - start_time) / 1e6;
@@ -570,12 +570,12 @@ fill_in_local_interfaces_filtered(GList * filter_list, void(*update_cb)(void))
}
void
-hide_interface(gchar* new_hide)
+hide_interface(char* new_hide)
{
- gchar *tok;
- guint i;
+ char *tok;
+ unsigned i;
interface_t *device;
- gboolean found = FALSE;
+ bool found = false;
GList *hidden_devices = NULL, *entry;
if (new_hide != NULL) {
for (tok = strtok (new_hide, ","); tok; tok = strtok(NULL, ",")) {
@@ -584,20 +584,20 @@ hide_interface(gchar* new_hide)
}
for (i = 0; i < global_capture_opts.all_ifaces->len; i++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
- found = FALSE;
+ found = false;
for (entry = hidden_devices; entry != NULL; entry = g_list_next(entry)) {
if (strcmp((char *)entry->data, device->name)==0) {
- device->hidden = TRUE;
+ device->hidden = true;
if (device->selected) {
- device->selected = FALSE;
+ device->selected = false;
global_capture_opts.num_selected--;
}
- found = TRUE;
+ found = true;
break;
}
}
if (!found) {
- device->hidden = FALSE;
+ device->hidden = false;
}
}
g_list_free(hidden_devices);
@@ -608,8 +608,8 @@ void
update_local_interfaces(void)
{
interface_t *device;
- gchar *descr;
- guint i;
+ char *descr;
+ unsigned i;
for (i = 0; i < global_capture_opts.all_ifaces->len; i++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
diff --git a/ui/iface_lists.h b/ui/iface_lists.h
index 5bfca2e5b1..b012452115 100644
--- a/ui/iface_lists.h
+++ b/ui/iface_lists.h
@@ -45,7 +45,7 @@ extern void scan_local_interfaces_filtered(GList * allowed_types, void (*update_
/*
* Hide the interfaces
*/
-extern void hide_interface(gchar* new_hide);
+extern void hide_interface(char* new_hide);
/*
* Update the global interface list from preferences.
diff --git a/ui/iface_toolbar.c b/ui/iface_toolbar.c
index 95424da9e4..0e8d0768ac 100644
--- a/ui/iface_toolbar.c
+++ b/ui/iface_toolbar.c
@@ -24,16 +24,16 @@ void iface_toolbar_add(const iface_toolbar *toolbar)
}
}
-void iface_toolbar_remove(const gchar *menu_title)
+void iface_toolbar_remove(const char *menu_title)
{
if (iface_toolbar_remove_cb) {
iface_toolbar_remove_cb(menu_title);
}
}
-gboolean iface_toolbar_use(void)
+bool iface_toolbar_use(void)
{
- return iface_toolbar_add_cb ? TRUE : FALSE;
+ return iface_toolbar_add_cb ? true : false;
}
void iface_toolbar_register_cb(iface_toolbar_add_cb_t add_cb, iface_toolbar_remove_cb_t remove_cb)
diff --git a/ui/iface_toolbar.h b/ui/iface_toolbar.h
index 9a23914c2c..ed3f695a05 100644
--- a/ui/iface_toolbar.h
+++ b/ui/iface_toolbar.h
@@ -10,6 +10,9 @@
#ifndef __IFACE_TOOLBAR_H__
#define __IFACE_TOOLBAR_H__
+#include <stdbool.h>
+
+#include <glib.h>
#ifdef __cplusplus
extern "C" {
@@ -33,42 +36,42 @@ typedef enum {
typedef struct _iface_toolbar_value {
int num;
- gchar *value;
- gchar *display;
- gboolean is_default;
+ char *value;
+ char *display;
+ bool is_default;
} iface_toolbar_value;
typedef struct _iface_toolbar_control {
int num;
iface_toolbar_ctrl_type ctrl_type;
iface_toolbar_ctrl_role ctrl_role;
- gchar *display;
- gchar *validation;
- gboolean is_required;
- gchar *tooltip;
- gchar *placeholder;
+ char *display;
+ char *validation;
+ bool is_required;
+ char *tooltip;
+ char *placeholder;
union {
- gboolean boolean;
- gchar *string;
+ bool boolean;
+ char *string;
} default_value;
GList *values;
} iface_toolbar_control;
typedef struct _iface_toolbar {
- gchar *menu_title;
- gchar *help;
+ char *menu_title;
+ char *help;
GList *ifnames;
GList *controls;
} iface_toolbar;
typedef void (*iface_toolbar_add_cb_t)(const iface_toolbar *);
-typedef void (*iface_toolbar_remove_cb_t)(const gchar *);
+typedef void (*iface_toolbar_remove_cb_t)(const char *);
void iface_toolbar_add(const iface_toolbar *toolbar);
-void iface_toolbar_remove(const gchar *menu_title);
+void iface_toolbar_remove(const char *menu_title);
-gboolean iface_toolbar_use(void);
+bool iface_toolbar_use(void);
void iface_toolbar_register_cb(iface_toolbar_add_cb_t, iface_toolbar_remove_cb_t);
diff --git a/ui/io_graph_item.c b/ui/io_graph_item.c
index eae7eb0408..955d67138d 100644
--- a/ui/io_graph_item.c
+++ b/ui/io_graph_item.c
@@ -17,9 +17,11 @@
#include "ui/io_graph_item.h"
-int get_io_graph_index(packet_info *pinfo, int interval) {
+int64_t get_io_graph_index(packet_info *pinfo, int interval) {
nstime_t time_delta;
+ ws_return_val_if(interval <= 0, -1);
+
/*
* Find in which interval this is supposed to go and store the interval index as idx
*/
@@ -31,16 +33,7 @@ int get_io_graph_index(packet_info *pinfo, int interval) {
if (time_delta.secs<0) {
return -1;
}
- /* XXX - The IOGraph ignores indices over a certain value (or negative),
- * but in a sufficiently large file this can overflow and so, after a
- * large gap of ignored values, values can be added to earlier intervals.
- * That doesn't matter too much for current values but it could matter
- * if we changed this to allow smaller intervals (with an interval of 1 s
- * it takes ~49.71 days to overflow, but 1 μs only takes about 72 minutes.)
- *
- * To be safe we could just make this a 64 bit value.
- */
- return (int) ((time_delta.secs*INT64_C(1000) + time_delta.nsecs/1000000) / interval);
+ return ((time_delta.secs*INT64_C(1000000) + time_delta.nsecs/1000) / interval);
}
GString *check_field_unit(const char *field_name, int *hf_index, io_graph_item_unit_t item_unit)
@@ -141,11 +134,14 @@ double get_io_graph_item(const io_graph_item_t *items_, io_graph_item_unit_t val
double value = 0; /* FIXME: loss of precision, visible on the graph for small values */
int adv_type;
const io_graph_item_t *item;
- guint32 interval;
+ uint32_t interval;
item = &items_[idx];
// Basic units
+ // XXX - Should we divide these counted values by the interval
+ // so that they measure rates (as done with LOAD)? That might be
+ // more meaningful and consistent.
switch (val_units_) {
case IOG_ITEM_UNIT_PACKETS:
return item->frames;
@@ -179,6 +175,28 @@ double get_io_graph_item(const io_graph_item_t *items_, io_graph_item_unit_t val
case FT_INT48:
case FT_INT56:
case FT_INT64:
+ switch (val_units_) {
+ case IOG_ITEM_UNIT_CALC_SUM:
+ value = item->double_tot;
+ break;
+ case IOG_ITEM_UNIT_CALC_MAX:
+ value = item->int_max;
+ break;
+ case IOG_ITEM_UNIT_CALC_MIN:
+ value = item->int_min;
+ break;
+ case IOG_ITEM_UNIT_CALC_AVERAGE:
+ if (item->fields) {
+ value = item->double_tot / item->fields;
+ } else {
+ value = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+
case FT_UINT8:
case FT_UINT16:
case FT_UINT24:
@@ -187,16 +205,15 @@ double get_io_graph_item(const io_graph_item_t *items_, io_graph_item_unit_t val
case FT_UINT48:
case FT_UINT56:
case FT_UINT64:
- case FT_DOUBLE:
switch (val_units_) {
case IOG_ITEM_UNIT_CALC_SUM:
value = item->double_tot;
break;
case IOG_ITEM_UNIT_CALC_MAX:
- value = item->double_max;
+ value = item->uint_max;
break;
case IOG_ITEM_UNIT_CALC_MIN:
- value = item->double_min;
+ value = item->uint_min;
break;
case IOG_ITEM_UNIT_CALC_AVERAGE:
if (item->fields) {
@@ -210,20 +227,21 @@ double get_io_graph_item(const io_graph_item_t *items_, io_graph_item_unit_t val
}
break;
+ case FT_DOUBLE:
case FT_FLOAT:
switch (val_units_) {
case IOG_ITEM_UNIT_CALC_SUM:
- value = item->float_tot;
+ value = item->double_tot;
break;
case IOG_ITEM_UNIT_CALC_MAX:
- value = item->float_max;
+ value = item->double_max;
break;
case IOG_ITEM_UNIT_CALC_MIN:
- value = item->float_min;
+ value = item->double_min;
break;
case IOG_ITEM_UNIT_CALC_AVERAGE:
if (item->fields) {
- value = (double)item->float_tot / item->fields;
+ value = item->double_tot / item->fields;
} else {
value = 0;
}
@@ -254,14 +272,17 @@ double get_io_graph_item(const io_graph_item_t *items_, io_graph_item_unit_t val
case IOG_ITEM_UNIT_CALC_LOAD:
// "LOAD graphs plot the QUEUE-depth of the connection over time"
// (for response time fields such as smb.time, rpc.time, etc.)
- // This interval is expressed in milliseconds.
+ // This interval is expressed in microseconds.
if (idx == cur_idx_ && cap_file) {
- interval = (guint32)(nstime_to_msec(&cap_file->elapsed_time) + 0.5);
- interval -= (interval_ * idx);
+ // If this is the last interval, it may not be full width.
+ uint64_t start_us = (uint64_t)interval_ * idx;
+ nstime_t timediff = NSTIME_INIT_SECS_USECS(start_us / 1000000, start_us % 1000000);
+ nstime_delta(&timediff, &cap_file->elapsed_time, &timediff);
+ interval = (uint32_t)(1000*nstime_to_msec(&timediff) + 0.5);
} else {
interval = interval_;
}
- value = nstime_to_msec(&item->time_tot) / interval;
+ value = (1000 * nstime_to_msec(&item->time_tot)) / interval;
break;
default:
break;
diff --git a/ui/io_graph_item.h b/ui/io_graph_item.h
index d3fd07d193..3333d37a36 100644
--- a/ui/io_graph_item.h
+++ b/ui/io_graph_item.h
@@ -17,6 +17,8 @@
#include "cfile.h"
#include <wsutil/ws_assert.h>
+#include <epan/epan_dissect.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -38,27 +40,35 @@ typedef enum {
} io_graph_item_unit_t;
typedef struct _io_graph_item_t {
- guint32 frames; /* always calculated, will hold number of frames*/
- guint64 bytes; /* always calculated, will hold number of bytes*/
- guint64 fields;
- gint64 int_max;
- gint64 int_min;
- gint64 int_tot;
- /* XXX - Why do we always use 64-bit ints but split floats between
- * gfloat and gdouble?
+ uint32_t frames; /* always calculated, will hold number of frames*/
+ uint64_t bytes; /* always calculated, will hold number of bytes*/
+ uint64_t fields;
+ /* We use a double for totals because of overflow. For min and max,
+ * unsigned 64 bit integers larger than 2^53 cannot all be represented
+ * in a double, and this is useful for determining the frame with the
+ * min or max value, even though for plotting it will be converted to a
+ * double.
*/
- gfloat float_max;
- gfloat float_min;
- gfloat float_tot;
- gdouble double_max;
- gdouble double_min;
- gdouble double_tot;
- nstime_t time_max;
- nstime_t time_min;
- nstime_t time_tot;
- guint32 first_frame_in_invl;
- guint32 extreme_frame_in_invl; /* frame with min/max value */
- guint32 last_frame_in_invl;
+ union {
+ nstime_t time_max;
+ double double_max;
+ int64_t int_max;
+ uint64_t uint_max;
+ };
+ union {
+ nstime_t time_min;
+ double double_min;
+ int64_t int_min;
+ uint64_t uint_min;
+ };
+ union {
+ nstime_t time_tot;
+ double double_tot;
+ };
+ uint32_t first_frame_in_invl;
+ uint32_t min_frame_in_invl;
+ uint32_t max_frame_in_invl;
+ uint32_t last_frame_in_invl;
} io_graph_item_t;
/** Reset (zero) an io_graph_item_t.
@@ -67,9 +77,9 @@ typedef struct _io_graph_item_t {
* @param count [in] The number of items in the array.
*/
static inline void
-reset_io_graph_items(io_graph_item_t *items, gsize count) {
+reset_io_graph_items(io_graph_item_t *items, size_t count, int hf_index _U_) {
io_graph_item_t *item;
- gsize i;
+ size_t i;
for (i = 0; i < count; i++) {
item = &items[i];
@@ -77,21 +87,70 @@ reset_io_graph_items(io_graph_item_t *items, gsize count) {
item->frames = 0;
item->bytes = 0;
item->fields = 0;
- item->int_max = 0;
- item->int_min = 0;
- item->int_tot = 0;
- item->float_max = 0;
- item->float_min = 0;
- item->float_tot = 0;
- item->double_max = 0;
- item->double_min = 0;
- item->double_tot = 0;
+ item->first_frame_in_invl = 0;
+ item->min_frame_in_invl = 0;
+ item->max_frame_in_invl = 0;
+ item->last_frame_in_invl = 0;
+
nstime_set_zero(&item->time_max);
nstime_set_zero(&item->time_min);
nstime_set_zero(&item->time_tot);
- item->first_frame_in_invl = 0;
- item->extreme_frame_in_invl = 0;
- item->last_frame_in_invl = 0;
+
+#if 0
+ /* XXX - On C, type punning is explicitly allowed since C99 so
+ * setting the nstime_t values to 0 is always sufficient.
+ * On C++ that appears technically to be undefined behavior (though
+ * I don't know of any compilers for which it doesn't work and I
+ * can't get UBSAN to complain about it) and this would be safer.
+ */
+ if (hf_index > 0) {
+
+ switch (proto_registrar_get_ftype(hf_index)) {
+
+ case FT_INT8:
+ case FT_INT16:
+ case FT_INT24:
+ case FT_INT32:
+ case FT_INT40:
+ case FT_INT48:
+ case FT_INT56:
+ case FT_INT64:
+ item->int_max = 0;
+ item->int_min = 0;
+ item->double_tot = 0;
+ break;
+
+ case FT_UINT8:
+ case FT_UINT16:
+ case FT_UINT24:
+ case FT_UINT32:
+ case FT_UINT40:
+ case FT_UINT48:
+ case FT_UINT56:
+ case FT_UINT64:
+ item->uint_max = 0;
+ item->uint_min = 0;
+ item->double_tot = 0;
+ break;
+
+ case FT_DOUBLE:
+ case FT_FLOAT:
+ item->double_max = 0;
+ item->double_min = 0;
+ item->double_tot = 0;
+ break;
+
+ case FT_RELATIVE_TIME:
+ nstime_set_zero(&item->time_max);
+ nstime_set_zero(&item->time_min);
+ nstime_set_zero(&item->time_tot);
+ break;
+
+ default:
+ break;
+ }
+ }
+#endif
}
}
@@ -100,14 +159,14 @@ reset_io_graph_items(io_graph_item_t *items, gsize count) {
* It is up to the caller to determine if the return value is valid.
*
* @param [in] pinfo Packet of interest.
- * @param [in] interval Time interval in milliseconds.
+ * @param [in] interval Time interval in microseconds
* @return Array index on success, -1 on failure.
*
* @note pinfo->rel_ts, and hence the index, is not affected by ignoring
* frames, but is affected by time references. (Ignoring frames before
* a time reference can be useful, though.)
*/
-int get_io_graph_index(packet_info *pinfo, int interval);
+int64_t get_io_graph_index(packet_info *pinfo, int interval);
/** Check field and item unit compatibility
*
@@ -143,11 +202,11 @@ double get_io_graph_item(const io_graph_item_t *items, io_graph_item_unit_t val_
* @param edt [in] Dissection information for advanced statistics. May be NULL.
* @param hf_index [in] Header field index for advanced statistics.
* @param item_unit [in] The type of unit to calculate. From IOG_ITEM_UNITS.
- * @param interval [in] Timing interval in ms.
- * @return TRUE if the update was successful, otherwise FALSE.
+ * @param interval [in] Timing interval in μs.
+ * @return true if the update was successful, otherwise false.
*/
-static inline gboolean
-update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_dissect_t *edt, int hf_index, int item_unit, guint32 interval) {
+static inline bool
+update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_dissect_t *edt, int hf_index, int item_unit, uint32_t interval) {
io_graph_item_t *item = &items[idx];
/* Set the first and last frame num in current interval matching the target field+filter */
@@ -158,18 +217,18 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
if (edt && hf_index >= 0) {
GPtrArray *gp;
- guint i;
+ unsigned i;
gp = proto_get_finfo_ptr_array(edt->tree, hf_index);
if (!gp) {
- return FALSE;
+ return false;
}
/* Update the appropriate counters. If fields == 0, this is the first seen
* value so set any min/max values accordingly. */
for (i=0; i < gp->len; i++) {
- gint64 new_int64;
- guint64 new_uint64;
+ int64_t new_int64;
+ uint64_t new_uint64;
float new_float;
double new_double;
const nstime_t *new_time;
@@ -181,22 +240,15 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
case FT_UINT32:
new_uint64 = fvalue_get_uinteger(((field_info *)gp->pdata[i])->value);
- if ((new_uint64 > (guint64)item->int_max) || (item->fields == 0)) {
- item->int_max = new_uint64;
- item->double_max = (gdouble)new_uint64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MAX) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ if ((new_uint64 > item->uint_max) || (item->fields == 0)) {
+ item->uint_max = new_uint64;
+ item->max_frame_in_invl = pinfo->num;
}
- if ((new_uint64 < (guint64)item->int_min) || (item->fields == 0)) {
- item->int_min = new_uint64;
- item->double_min = (gdouble)new_uint64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MIN) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ if ((new_uint64 < item->uint_min) || (item->fields == 0)) {
+ item->uint_min = new_uint64;
+ item->min_frame_in_invl = pinfo->num;
}
- item->int_tot += new_uint64;
- item->double_tot += (gdouble)new_uint64;
+ item->double_tot += (double)new_uint64;
item->fields++;
break;
case FT_INT8:
@@ -206,20 +258,13 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
new_int64 = fvalue_get_sinteger(((field_info *)gp->pdata[i])->value);
if ((new_int64 > item->int_max) || (item->fields == 0)) {
item->int_max = new_int64;
- item->double_max = (gdouble)new_int64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MAX) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->max_frame_in_invl = pinfo->num;
}
if ((new_int64 < item->int_min) || (item->fields == 0)) {
item->int_min = new_int64;
- item->double_min = (gdouble)new_int64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MIN) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->min_frame_in_invl = pinfo->num;
}
- item->int_tot += new_int64;
- item->double_tot += (gdouble)new_int64;
+ item->double_tot += (double)new_int64;
item->fields++;
break;
case FT_UINT40:
@@ -227,22 +272,15 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
case FT_UINT56:
case FT_UINT64:
new_uint64 = fvalue_get_uinteger64(((field_info *)gp->pdata[i])->value);
- if ((new_uint64 > (guint64)item->int_max) || (item->fields == 0)) {
- item->int_max = new_uint64;
- item->double_max = (gdouble)new_uint64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MAX) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ if ((new_uint64 > item->uint_max) || (item->fields == 0)) {
+ item->uint_max = new_uint64;
+ item->max_frame_in_invl = pinfo->num;
}
- if ((new_uint64 < (guint64)item->int_min) || (item->fields == 0)) {
- item->int_min = new_uint64;
- item->double_min = (gdouble)new_uint64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MIN) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ if ((new_uint64 < item->uint_min) || (item->fields == 0)) {
+ item->uint_min = new_uint64;
+ item->min_frame_in_invl = pinfo->num;
}
- item->int_tot += new_uint64;
- item->double_tot += (gdouble)new_uint64;
+ item->double_tot += (double)new_uint64;
item->fields++;
break;
case FT_INT40:
@@ -252,52 +290,37 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
new_int64 = fvalue_get_sinteger64(((field_info *)gp->pdata[i])->value);
if ((new_int64 > item->int_max) || (item->fields == 0)) {
item->int_max = new_int64;
- item->double_max = (gdouble)new_int64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MAX) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->max_frame_in_invl = pinfo->num;
}
if ((new_int64 < item->int_min) || (item->fields == 0)) {
item->int_min = new_int64;
- item->double_min = (gdouble)new_int64;
- if (item_unit == IOG_ITEM_UNIT_CALC_MIN) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->min_frame_in_invl = pinfo->num;
}
- item->int_tot += new_int64;
- item->double_tot += (gdouble)new_int64;
+ item->double_tot += (double)new_int64;
item->fields++;
break;
case FT_FLOAT:
- new_float = (gfloat)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
- if ((new_float > item->float_max) || (item->fields == 0)) {
- item->float_max = new_float;
- if (item_unit == IOG_ITEM_UNIT_CALC_MAX) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ new_float = (float)fvalue_get_floating(((field_info *)gp->pdata[i])->value);
+ if ((new_float > item->double_max) || (item->fields == 0)) {
+ item->double_max = new_float;
+ item->max_frame_in_invl = pinfo->num;
}
- if ((new_float < item->float_min) || (item->fields == 0)) {
- item->float_min = new_float;
- if (item_unit == IOG_ITEM_UNIT_CALC_MIN) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ if ((new_float < item->double_min) || (item->fields == 0)) {
+ item->double_min = new_float;
+ item->min_frame_in_invl = pinfo->num;
}
- item->float_tot += new_float;
+ item->double_tot += new_float;
item->fields++;
break;
case FT_DOUBLE:
new_double = fvalue_get_floating(((field_info *)gp->pdata[i])->value);
if ((new_double > item->double_max) || (item->fields == 0)) {
item->double_max = new_double;
- if (item_unit == IOG_ITEM_UNIT_CALC_MAX) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->max_frame_in_invl = pinfo->num;
}
if ((new_double < item->double_min) || (item->fields == 0)) {
item->double_min = new_double;
- if (item_unit == IOG_ITEM_UNIT_CALC_MIN) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->min_frame_in_invl = pinfo->num;
}
item->double_tot += new_double;
item->fields++;
@@ -308,20 +331,28 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
switch (item_unit) {
case IOG_ITEM_UNIT_CALC_LOAD:
{
- guint64 t, pt; /* time in us */
+ uint64_t t, pt; /* time in us */
int j;
/*
- * Add the time this call spanned each interval according to its contribution
- * to that interval.
+ * Add the time this call spanned each interval according to
+ * its contribution to that interval.
+ * If the call time is negative (unlikely, requires both an
+ * out of order capture file plus retransmission), ignore.
*/
+ const nstime_t time_zero = NSTIME_INIT_ZERO;
+ if (nstime_cmp(new_time, &time_zero) < 0) {
+ break;
+ }
t = new_time->secs;
t = t * 1000000 + new_time->nsecs / 1000;
j = idx;
/*
* Handle current interval
+ * This cannot be negative, because get_io_graph_index
+ * returns an invalid interval if so.
*/
pt = pinfo->rel_ts.secs * 1000000 + pinfo->rel_ts.nsecs / 1000;
- pt = pt % (interval * 1000);
+ pt = pt % interval;
if (pt > t) {
pt = t;
}
@@ -334,14 +365,15 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
load_item->time_tot.secs++;
load_item->time_tot.nsecs -= 1000000000;
}
+ load_item->fields++;
if (j == 0) {
break;
}
j--;
t -= pt;
- if (t > (guint64) interval * 1000) {
- pt = (guint64) interval * 1000;
+ if (t > (uint64_t) interval) {
+ pt = (uint64_t) interval;
} else {
pt = t;
}
@@ -349,23 +381,15 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
break;
}
default:
- if ( (new_time->secs > item->time_max.secs)
- || ( (new_time->secs == item->time_max.secs)
- && (new_time->nsecs > item->time_max.nsecs))
+ if ( (nstime_cmp(new_time, &item->time_max) > 0)
|| (item->fields == 0)) {
item->time_max = *new_time;
- if (item_unit == IOG_ITEM_UNIT_CALC_MAX) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->max_frame_in_invl = pinfo->num;
}
- if ( (new_time->secs<item->time_min.secs)
- || ( (new_time->secs == item->time_min.secs)
- && (new_time->nsecs < item->time_min.nsecs))
+ if ( (nstime_cmp(new_time, &item->time_min) < 0)
|| (item->fields == 0)) {
item->time_min = *new_time;
- if (item_unit == IOG_ITEM_UNIT_CALC_MIN) {
- item->extreme_frame_in_invl = pinfo->num;
- }
+ item->min_frame_in_invl = pinfo->num;
}
nstime_add(&item->time_tot, new_time);
item->fields++;
@@ -397,7 +421,7 @@ update_io_graph_item(io_graph_item_t *items, int idx, packet_info *pinfo, epan_d
item->frames++;
item->bytes += pinfo->fd->pkt_len;
- return TRUE;
+ return true;
}
diff --git a/ui/language.c b/ui/language.c
index a76fcdb714..38e5e1b2b3 100644
--- a/ui/language.c
+++ b/ui/language.c
@@ -26,12 +26,12 @@
#define LANGUAGE_FILE_NAME "language"
#define LANGUAGE_PREF_LANGUAGE "language"
-char *language = NULL;
+char *language;
/* set one user's recent common file key/value pair */
static prefs_set_pref_e
-read_language_pref(gchar *key, const gchar *value,
- void *private_data _U_, gboolean return_range_errors _U_)
+read_language_pref(char *key, const char *value,
+ void *private_data _U_, bool return_range_errors _U_)
{
if (strcmp(key, LANGUAGE_PREF_LANGUAGE) == 0) {
g_free(language);
@@ -61,7 +61,7 @@ read_language_prefs(void)
char *rf_path;
FILE *rf;
- rf_path = get_persconffile_path(LANGUAGE_FILE_NAME, FALSE);
+ rf_path = get_persconffile_path(LANGUAGE_FILE_NAME, false);
if ((rf = ws_fopen(rf_path, "r")) != NULL) {
read_prefs_file(rf_path, rf, read_language_pref, NULL);
@@ -72,7 +72,7 @@ read_language_prefs(void)
g_free(rf_path);
}
-gboolean
+bool
write_language_prefs(void)
{
char *pf_dir_path;
@@ -92,16 +92,16 @@ write_language_prefs(void)
"Can't create directory\n\"%s\"\nfor language file: %s.", pf_dir_path,
g_strerror(errno));
g_free(pf_dir_path);
- return FALSE;
+ return false;
}
- rf_path = get_persconffile_path(LANGUAGE_FILE_NAME, FALSE);
+ rf_path = get_persconffile_path(LANGUAGE_FILE_NAME, false);
if ((rf = ws_fopen(rf_path, "w")) == NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Can't open recent file\n\"%s\": %s.", rf_path,
g_strerror(errno));
g_free(rf_path);
- return FALSE;
+ return false;
}
g_free(rf_path);
@@ -115,5 +115,5 @@ write_language_prefs(void)
fclose(rf);
- return TRUE;
+ return true;
}
diff --git a/ui/language.h b/ui/language.h
index dad48b975d..36ee1b71f1 100644
--- a/ui/language.h
+++ b/ui/language.h
@@ -12,6 +12,8 @@
#ifndef __LANGUAGE_H__
#define __LANGUAGE_H__
+#include <stdbool.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -20,8 +22,8 @@ extern "C" {
extern char *language;
-extern void read_language_prefs(void);
-extern int write_language_prefs(void);
+extern void read_language_prefs(void);
+extern bool write_language_prefs(void);
#ifdef __cplusplus
}
diff --git a/ui/logray/CMakeLists.txt b/ui/logray/CMakeLists.txt
index bee7f89f3e..c01712d87b 100644
--- a/ui/logray/CMakeLists.txt
+++ b/ui/logray/CMakeLists.txt
@@ -44,7 +44,10 @@ set(WIRESHARK_WIDGET_HEADERS
../qt/widgets/path_selection_edit.h
../qt/widgets/pref_module_view.h
../qt/widgets/profile_tree_view.h
+ ../qt/widgets/qcp_axis_ticker_si.h
+ ../qt/widgets/qcp_string_legend_item.h
../qt/widgets/range_syntax_lineedit.h
+ ../qt/widgets/resize_header_view.h
../qt/widgets/resolved_addresses_view.h
../qt/widgets/splash_overlay.h
../qt/widgets/stock_icon_tool_button.h
@@ -78,6 +81,7 @@ set(WIRESHARK_UTILS_HEADERS
../qt/utils/field_information.h
../qt/utils/frame_information.h
../qt/utils/idata_printable.h
+ ../qt/utils/profile_switcher.h
../qt/utils/proto_node.h
../qt/utils/qt_ui_utils.h
../qt/utils/stock_icon.h
@@ -165,7 +169,6 @@ set(WIRESHARK_QT_HEADERS
../qt/file_set_dialog.h
../qt/filter_action.h
../qt/filter_dialog.h
- ../qt/filter_dialog.h
../qt/filter_expression_frame.h
../qt/follow_stream_action.h
../qt/follow_stream_dialog.h
@@ -180,6 +183,7 @@ set(WIRESHARK_QT_HEADERS
../qt/interface_toolbar_reader.h
../qt/interface_toolbar.h
../qt/io_console_dialog.h
+ ../qt/io_graph_action.h
../qt/io_graph_dialog.h
../qt/layout_preferences_frame.h
../qt/main_application.h
@@ -272,7 +276,10 @@ set(WIRESHARK_WIDGET_SRCS
../qt/widgets/path_selection_edit.cpp
../qt/widgets/pref_module_view.cpp
../qt/widgets/profile_tree_view.cpp
+ ../qt/widgets/qcp_axis_ticker_si.cpp
+ ../qt/widgets/qcp_string_legend_item.cpp
../qt/widgets/range_syntax_lineedit.cpp
+ ../qt/widgets/resize_header_view.cpp
../qt/widgets/resolved_addresses_view.cpp
../qt/widgets/splash_overlay.cpp
../qt/widgets/stock_icon_tool_button.cpp
@@ -305,6 +312,7 @@ set(WIRESHARK_UTILS_SRCS
../qt/utils/data_printer.cpp
../qt/utils/field_information.cpp
../qt/utils/frame_information.cpp
+ ../qt/utils/profile_switcher.cpp
../qt/utils/proto_node.cpp
../qt/utils/qt_ui_utils.cpp
../qt/utils/stock_icon.cpp
@@ -400,6 +408,7 @@ set(WIRESHARK_QT_SRC
../qt/interface_toolbar_reader.cpp
../qt/interface_toolbar.cpp
../qt/io_console_dialog.cpp
+ ../qt/io_graph_action.cpp
../qt/layout_preferences_frame.cpp
../qt/main_application.cpp
../qt/main_status_bar.cpp
@@ -724,6 +733,9 @@ if(USE_qt6)
if(Qt6Multimedia_FOUND)
target_link_libraries(ui_logray PUBLIC Qt6::Multimedia)
endif()
+ if(Qt6DBus_FOUND)
+ target_link_libraries(ui_logray PUBLIC Qt6::DBus)
+ endif()
endif()
target_compile_definitions(ui_logray
diff --git a/ui/logray/logray_application.cpp b/ui/logray/logray_application.cpp
index 39d9593c76..ab0bc72257 100644
--- a/ui/logray/logray_application.cpp
+++ b/ui/logray/logray_application.cpp
@@ -13,7 +13,7 @@
#include "ui/iface_lists.h"
#include "ui/ws_ui_util.h"
-LograyApplication *lwApp = NULL;
+LograyApplication *lwApp;
LograyApplication::LograyApplication(int &argc, char **argv) :
MainApplication(argc, argv)
@@ -38,7 +38,7 @@ void LograyApplication::refreshLocalInterfaces()
cached_if_list_ = NULL;
GList * filter_list = NULL;
- filter_list = g_list_append(filter_list, GUINT_TO_POINTER((guint) IF_EXTCAP));
+ filter_list = g_list_append(filter_list, GUINT_TO_POINTER((unsigned) IF_EXTCAP));
// We don't need to (re)start the stats (which calls dumpcap) because
// Logray only uses extcaps now. If that changes, do the below instead.
diff --git a/ui/logray/logray_main.cpp b/ui/logray/logray_main.cpp
index 9c069cc876..ea13a3a98d 100644
--- a/ui/logray/logray_main.cpp
+++ b/ui/logray/logray_main.cpp
@@ -10,8 +10,6 @@
#include <config.h>
#define WS_LOG_DOMAIN LOG_DOMAIN_MAIN
-#include <glib.h>
-
#include <locale.h>
#ifdef _WIN32
@@ -53,7 +51,7 @@
#include <epan/dissectors/packet-kerberos.h>
#endif
-#include <wsutil/codecs_priv.h>
+#include <wsutil/codecs.h>
#include <extcap.h>
@@ -302,7 +300,7 @@ qt_log_message_handler(QtMsgType type, const QMessageLogContext &, const QString
static void
check_and_warn_user_startup()
{
- gchar *cur_user, *cur_group;
+ char *cur_user, *cur_group;
/* Tell the user not to run as root. */
if (running_with_special_privs() && recent.privs_warn_if_elevated) {
@@ -436,15 +434,15 @@ int main(int argc, char *qt_argv[])
char *rf_path;
int rf_open_errno;
#ifdef HAVE_LIBPCAP
- gchar *err_str, *err_str_secondary;
+ char *err_str, *err_str_secondary;
#else
#ifdef _WIN32
#ifdef HAVE_AIRPCAP
- gchar *err_str;
+ char *err_str;
#endif
#endif
#endif
- gchar *err_msg = NULL;
+ char *err_msg = NULL;
df_error_t *df_err = NULL;
QString dfilter, read_filter;
@@ -452,7 +450,7 @@ int main(int argc, char *qt_argv[])
int caps_queries = 0;
#endif
/* Start time in microseconds */
- guint64 start_time = g_get_monotonic_time();
+ uint64_t start_time = g_get_monotonic_time();
static const struct report_message_routines wireshark_report_routines = {
vfailure_alert_box,
vwarning_alert_box,
@@ -503,7 +501,7 @@ int main(int argc, char *qt_argv[])
/* Initialize log handler early so we can have proper logging during startup. */
ws_log_init("logray", vcmdarg_err);
/* For backward compatibility with GLib logging and Wireshark 3.4. */
- ws_log_console_writer_set_use_stdout(TRUE);
+ ws_log_console_writer_set_use_stdout(true);
qInstallMessageHandler(qt_log_message_handler);
@@ -636,7 +634,7 @@ int main(int argc, char *qt_argv[])
g_free (rf_path);
}
- profile_store_persconffiles(TRUE);
+ profile_store_persconffiles(true);
recent_init();
/* Read the profile independent recent file. We have to do this here so we can */
@@ -732,7 +730,7 @@ int main(int argc, char *qt_argv[])
}
#ifdef DEBUG_STARTUP_TIME
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "set_console_log_handler, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "set_console_log_handler, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
#ifdef HAVE_LIBPCAP
@@ -746,17 +744,17 @@ int main(int argc, char *qt_argv[])
* dissection-time handlers for file-type-dependent blocks can
* register using the file type/subtype value for the file type.
*/
- wtap_init(TRUE);
+ wtap_init(true);
splash_update(RA_DISSECTORS, NULL, NULL);
#ifdef DEBUG_STARTUP_TIME
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling epan init, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling epan init, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
/* Register all dissectors; we must do this before checking for the
"-G" flag, as the "-G" flag dumps information registered by the
dissectors, and we must do it before we read the preferences, in
case any dissectors register preferences. */
- if (!epan_init(splash_update, NULL, TRUE)) {
+ if (!epan_init(splash_update, NULL, true)) {
SimpleDialog::displayQueuedMessages(main_w);
ret_val = WS_EXIT_INIT_FAILED;
goto clean_exit;
@@ -764,7 +762,7 @@ int main(int argc, char *qt_argv[])
#ifdef DEBUG_STARTUP_TIME
/* epan_init resets the preferences */
prefs.gui_console_open = console_open_always;
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "epan done, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "epan done, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
/* Register all audio codecs. */
@@ -783,7 +781,7 @@ int main(int argc, char *qt_argv[])
splash_update(RA_LISTENERS, NULL, NULL);
#ifdef DEBUG_STARTUP_TIME
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Register all tap listeners, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Register all tap listeners, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
/* Register all tap listeners; we do this before we parse the arguments,
as the "-z" argument can specify a registered tap. */
@@ -802,7 +800,7 @@ int main(int argc, char *qt_argv[])
splash_update(RA_PREFERENCES, NULL, NULL);
#ifdef DEBUG_STARTUP_TIME
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling module preferences, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling module preferences, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
/* Read the preferences, but don't apply them yet. */
@@ -812,14 +810,14 @@ int main(int argc, char *qt_argv[])
* line, and store them. We have to do this before applying the
* preferences to the capture options.
*/
- commandline_override_prefs(argc, argv, TRUE);
+ commandline_override_prefs(argc, argv, true);
/* Register the extcap preferences. We do this after seeing if the
* capture_no_extcap preference is set in the configuration file
* or command line. This will re-read the extcap specific preferences.
*/
#ifdef DEBUG_STARTUP_TIME
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling extcap_register_preferences, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling extcap_register_preferences, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
splash_update(RA_EXTCAP, NULL, NULL);
extcap_register_preferences();
@@ -833,7 +831,7 @@ int main(int argc, char *qt_argv[])
prefs_to_capture_opts();
/* Now get our remaining args */
- commandline_other_options(argc, argv, TRUE);
+ commandline_other_options(argc, argv, true);
/* Convert some command-line parameters to QStrings */
if (global_commandline_info.cf_name != NULL)
@@ -869,7 +867,7 @@ int main(int argc, char *qt_argv[])
* and exit.
*/
if (caps_queries) {
- guint i;
+ unsigned i;
#ifdef _WIN32
create_console();
@@ -925,14 +923,14 @@ int main(int argc, char *qt_argv[])
}
#ifdef DEBUG_STARTUP_TIME
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling fill_in_local_interfaces, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling fill_in_local_interfaces, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
splash_update(RA_INTERFACES, NULL, NULL);
if (!global_commandline_info.cf_name && !prefs.capture_no_interface_load) {
/* Allow only extcap interfaces to be found */
GList * filter_list = NULL;
- filter_list = g_list_append(filter_list, GUINT_TO_POINTER((guint) IF_EXTCAP));
+ filter_list = g_list_append(filter_list, GUINT_TO_POINTER((unsigned) IF_EXTCAP));
// The below starts the stats; we don't need that since Logyray only
// supports extcaps.
//lwApp->scanLocalInterfaces(filter_list);
@@ -948,7 +946,7 @@ int main(int argc, char *qt_argv[])
changed either from one of the preferences file or from the command
line that their preferences have changed. */
#ifdef DEBUG_STARTUP_TIME
- ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling prefs_apply_all, elapsed time %" G_GUINT64_FORMAT " us \n", g_get_monotonic_time() - start_time);
+ ws_log(LOG_DOMAIN_MAIN, LOG_LEVEL_INFO, "Calling prefs_apply_all, elapsed time %" PRIu64 " us \n", g_get_monotonic_time() - start_time);
#endif
prefs_apply_all();
lwApp->emitAppSignal(LograyApplication::PreferencesChanged);
@@ -956,12 +954,12 @@ int main(int argc, char *qt_argv[])
#ifdef HAVE_LIBPCAP
if ((global_capture_opts.num_selected == 0) &&
(prefs.capture_device != NULL)) {
- guint i;
+ unsigned i;
interface_t *device;
for (i = 0; i < global_capture_opts.all_ifaces->len; i++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (!device->hidden && strcmp(device->display_name, prefs.capture_device) == 0) {
- device->selected = TRUE;
+ device->selected = true;
global_capture_opts.num_selected++;
break;
}
@@ -978,7 +976,7 @@ int main(int argc, char *qt_argv[])
goto clean_exit;
}
- build_column_format_array(&CaptureFile::globalCapFile()->cinfo, global_commandline_info.prefs_p->num_cols, TRUE);
+ build_column_format_array(&CaptureFile::globalCapFile()->cinfo, global_commandline_info.prefs_p->num_cols, true);
lwApp->emitAppSignal(LograyApplication::ColumnsChanged); // We read "recent" widths above.
lwApp->emitAppSignal(LograyApplication::RecentPreferencesRead); // Must be emitted after PreferencesChanged.
@@ -1014,7 +1012,7 @@ int main(int argc, char *qt_argv[])
if (global_commandline_info.go_to_packet != 0) {
/* Jump to the specified frame number, kept for backward
compatibility. */
- cf_goto_frame(CaptureFile::globalCapFile(), global_commandline_info.go_to_packet, FALSE);
+ cf_goto_frame(CaptureFile::globalCapFile(), global_commandline_info.go_to_packet, false);
} else if (global_commandline_info.jfilter != NULL) {
dfilter_t *jump_to_filter = NULL;
/* try to compile given filter */
@@ -1040,7 +1038,7 @@ int main(int argc, char *qt_argv[])
if (global_capture_opts.save_file != NULL) {
/* Save the directory name for future file dialogs. */
/* (get_dirname overwrites filename) */
- gchar *s = g_strdup(global_capture_opts.save_file);
+ char *s = g_strdup(global_capture_opts.save_file);
set_last_open_dir(get_dirname(s));
g_free(s);
}
@@ -1079,7 +1077,7 @@ int main(int argc, char *qt_argv[])
profile_register_persconffile("import_hexdump.json");
profile_register_persconffile("remote_hosts.json");
- profile_store_persconffiles(FALSE);
+ profile_store_persconffiles(false);
// If the lwApp->exec() event loop exits cleanly, we call
// LograyApplication::cleanup().
diff --git a/ui/logray/logray_main_window.cpp b/ui/logray/logray_main_window.cpp
index 09d6da6efa..72046ebc4b 100644
--- a/ui/logray/logray_main_window.cpp
+++ b/ui/logray/logray_main_window.cpp
@@ -70,6 +70,7 @@ DIAG_ON(frame-larger-than=)
#include <ui/qt/widgets/filter_expression_toolbar.h>
#include <ui/qt/utils/color_utils.h>
+#include <ui/qt/utils/profile_switcher.h>
#include <ui/qt/utils/qt_ui_utils.h>
#include <ui/qt/utils/stock_icon.h>
#include <ui/qt/utils/variant_pointer.h>
@@ -91,7 +92,7 @@ DIAG_ON(frame-larger-than=)
//menu_recent_file_write_all
// If we ever add support for multiple windows this will need to be replaced.
-static LograyMainWindow *gbl_cur_main_window_ = NULL;
+static LograyMainWindow *gbl_cur_main_window_;
static void plugin_if_mainwindow_apply_filter(GHashTable * data_set)
{
@@ -114,9 +115,9 @@ static void plugin_if_mainwindow_preference(GHashTable * data_set)
const char * pref_value;
DIAG_OFF_CAST_AWAY_CONST
- if (g_hash_table_lookup_extended(data_set, "pref_module", NULL, (gpointer *)&module_name) &&
- g_hash_table_lookup_extended(data_set, "pref_key", NULL, (gpointer *)&pref_name) &&
- g_hash_table_lookup_extended(data_set, "pref_value", NULL, (gpointer *)&pref_value))
+ if (g_hash_table_lookup_extended(data_set, "pref_module", NULL, (void * *)&module_name) &&
+ g_hash_table_lookup_extended(data_set, "pref_key", NULL, (void * *)&pref_name) &&
+ g_hash_table_lookup_extended(data_set, "pref_value", NULL, (void * *)&pref_value))
{
unsigned int changed_flags = prefs_store_ext(module_name, pref_name, pref_value);
if (changed_flags) {
@@ -132,7 +133,7 @@ static void plugin_if_mainwindow_gotoframe(GHashTable * data_set)
if (!gbl_cur_main_window_ || !data_set)
return;
- gpointer framenr;
+ void *framenr;
if (g_hash_table_lookup_extended(data_set, "frame_nr", NULL, &framenr)) {
if (GPOINTER_TO_UINT(framenr) != 0)
@@ -210,7 +211,7 @@ static void plugin_if_mainwindow_get_ws_info(GHashTable * data_set)
}
else {
ws_info->cf_framenr = 0;
- ws_info->frame_passed_dfilter = FALSE;
+ ws_info->frame_passed_dfilter = false;
}
}
else
@@ -218,7 +219,7 @@ static void plugin_if_mainwindow_get_ws_info(GHashTable * data_set)
/* Initialise the other ws_info structure values */
ws_info->cf_count = 0;
ws_info->cf_framenr = 0;
- ws_info->frame_passed_dfilter = FALSE;
+ ws_info->frame_passed_dfilter = false;
}
}
@@ -288,7 +289,7 @@ static void mainwindow_add_toolbar(const iface_toolbar *toolbar_entry)
}
}
-static void mainwindow_remove_toolbar(const gchar *menu_title)
+static void mainwindow_remove_toolbar(const char *menu_title)
{
if (gbl_cur_main_window_ && menu_title)
{
@@ -368,29 +369,29 @@ LograyMainWindow::LograyMainWindow(QWidget *parent) :
qRegisterMetaType<FilterAction::Action>("FilterAction::Action");
qRegisterMetaType<FilterAction::ActionType>("FilterAction::ActionType");
- connect(this, SIGNAL(filterAction(QString, FilterAction::Action, FilterAction::ActionType)),
- this, SLOT(queuedFilterAction(QString, FilterAction::Action, FilterAction::ActionType)),
- Qt::QueuedConnection);
+ connect(this, &LograyMainWindow::filterAction, this, &LograyMainWindow::queuedFilterAction, Qt::QueuedConnection);
//To prevent users use features before initialization complete
//Otherwise unexpected problems may occur
setFeaturesEnabled(false);
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(setFeaturesEnabled()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(applyGlobalCommandLineOptions()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(zoomText()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(initViewColorizeMenu()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(addStatsPluginsToMenu()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(addDynamicMenus()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(addPluginIFStructures()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(initConversationMenus()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(initFollowStreamMenus()));
-
- connect(mainApp, SIGNAL(profileChanging()), this, SLOT(saveWindowGeometry()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(layoutPanes()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(layoutToolbars()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(updatePreferenceActions()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(zoomText()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(updateTitlebar()));
+ connect(mainApp, &MainApplication::appInitialized, this, [this]() { setFeaturesEnabled(); });
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::applyGlobalCommandLineOptions);
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::zoomText);
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::initViewColorizeMenu);
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::addStatsPluginsToMenu);
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::addDynamicMenus);
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::addPluginIFStructures);
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::initConversationMenus);
+ connect(mainApp, &MainApplication::appInitialized, this, &LograyMainWindow::initFollowStreamMenus);
+ connect(mainApp, &MainApplication::appInitialized, this,
+ [this]() { addDisplayFilterTranslationActions(main_ui_->menuEditCopy); });
+
+ connect(mainApp, &MainApplication::profileChanging, this, &LograyMainWindow::saveWindowGeometry);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &LograyMainWindow::layoutPanes);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &LograyMainWindow::layoutToolbars);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &LograyMainWindow::updatePreferenceActions);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &LograyMainWindow::zoomText);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &LograyMainWindow::updateTitlebar);
connect(mainApp, SIGNAL(updateRecentCaptureStatus(const QString &, qint64, bool)), this, SLOT(updateRecentCaptures()));
connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(updateRecentCaptures()));
@@ -409,6 +410,8 @@ LograyMainWindow::LograyMainWindow(QWidget *parent) :
connect(funnel_statistics_, SIGNAL(openCaptureFile(QString, QString)),
this, SLOT(openCaptureFile(QString, QString)));
+ connect(df_combo_box_, &QComboBox::editTextChanged, this, &LograyMainWindow::updateDisplayFilterTranslationActions);
+
file_set_dialog_ = new FileSetDialog(this);
connect(file_set_dialog_, SIGNAL(fileSetOpenCaptureFile(QString)),
this, SLOT(openCaptureFile(QString)));
@@ -507,6 +510,7 @@ main_ui_->goToLineEdit->setValidator(goToLineQiv);
proto_tree_->installEventFilter(this);
packet_list_->setProtoTree(proto_tree_);
+ packet_list_->setProfileSwitcher(profile_switcher_);
packet_list_->installEventFilter(this);
main_stack_ = main_ui_->mainStack;
@@ -544,40 +548,27 @@ main_ui_->goToLineEdit->setValidator(goToLineQiv);
setTabOrder(df_combo_box_->lineEdit(), packet_list_);
setTabOrder(packet_list_, proto_tree_);
- connect(&capture_file_, SIGNAL(captureEvent(CaptureEvent)),
- this, SLOT(captureEventHandler(CaptureEvent)));
- connect(&capture_file_, SIGNAL(captureEvent(CaptureEvent)),
- mainApp, SLOT(captureEventHandler(CaptureEvent)));
- connect(&capture_file_, SIGNAL(captureEvent(CaptureEvent)),
- main_ui_->statusBar, SLOT(captureEventHandler(CaptureEvent)));
+ connect(&capture_file_, &CaptureFile::captureEvent, this, &LograyMainWindow::captureEventHandler);
+ connect(&capture_file_, &CaptureFile::captureEvent, mainApp, &WiresharkApplication::captureEventHandler);
+ connect(&capture_file_, &CaptureFile::captureEvent, main_ui_->statusBar, &MainStatusBar::captureEventHandler);
+ connect(&capture_file_, &CaptureFile::captureEvent, profile_switcher_, &ProfileSwitcher::captureEventHandler);
- connect(mainApp, SIGNAL(freezePacketList(bool)),
- packet_list_, SLOT(freezePacketList(bool)));
- connect(mainApp, SIGNAL(columnsChanged()),
- packet_list_, SLOT(columnsChanged()));
- connect(mainApp, SIGNAL(preferencesChanged()),
- packet_list_, SLOT(preferencesChanged()));
- connect(mainApp, SIGNAL(recentPreferencesRead()),
- this, SLOT(applyRecentPaneGeometry()));
- connect(mainApp, SIGNAL(recentPreferencesRead()),
- this, SLOT(updateRecentActions()));
- connect(mainApp, SIGNAL(packetDissectionChanged()),
- this, SLOT(redissectPackets()), Qt::QueuedConnection);
-
- connect(mainApp, SIGNAL(checkDisplayFilter()),
- this, SLOT(checkDisplayFilter()));
- connect(mainApp, SIGNAL(fieldsChanged()),
- this, SLOT(fieldsChanged()));
- connect(mainApp, SIGNAL(reloadLuaPlugins()),
- this, SLOT(reloadLuaPlugins()));
-
- connect(main_ui_->mainStack, SIGNAL(currentChanged(int)),
- this, SLOT(mainStackChanged(int)));
-
- connect(welcome_page_, SIGNAL(startCapture(QStringList)),
- this, SLOT(startCapture(QStringList)));
- connect(welcome_page_, SIGNAL(recentFileActivated(QString)),
- this, SLOT(openCaptureFile(QString)));
+ connect(mainApp, &MainApplication::freezePacketList, packet_list_, &PacketList::freezePacketList);
+ connect(mainApp, &MainApplication::columnsChanged, packet_list_, &PacketList::columnsChanged);
+ connect(mainApp, &MainApplication::colorsChanged, packet_list_, &PacketList::colorsChanged);
+ connect(mainApp, &MainApplication::preferencesChanged, packet_list_, &PacketList::preferencesChanged);
+ connect(mainApp, &MainApplication::recentPreferencesRead, this, &LograyMainWindow::applyRecentPaneGeometry);
+ connect(mainApp, &MainApplication::recentPreferencesRead, this, &LograyMainWindow::updateRecentActions);
+ connect(mainApp, &MainApplication::packetDissectionChanged, this, &LograyMainWindow::redissectPackets, Qt::QueuedConnection);
+
+ connect(mainApp, &MainApplication::checkDisplayFilter, this, &LograyMainWindow::checkDisplayFilter);
+ connect(mainApp, &MainApplication::fieldsChanged, this, &LograyMainWindow::fieldsChanged);
+ connect(mainApp, &MainApplication::reloadLuaPlugins, this, &LograyMainWindow::reloadLuaPlugins);
+
+ connect(main_ui_->mainStack, &QStackedWidget::currentChanged, this, &LograyMainWindow::mainStackChanged);
+
+ connect(welcome_page_, &WelcomePage::startCapture, this, [this](QStringList) { startCapture(); });
+ connect(welcome_page_, &WelcomePage::recentFileActivated, this, [this](QString cfile) { openCaptureFile(cfile); });
connect(main_ui_->addressEditorFrame, &AddressEditorFrame::redissectPackets,
this, &LograyMainWindow::redissectPackets);
@@ -600,10 +591,8 @@ main_ui_->goToLineEdit->setValidator(goToLineQiv);
connect(this, &LograyMainWindow::setCaptureFile,
proto_tree_, &ProtoTree::setCaptureFile);
- connect(mainApp, SIGNAL(zoomMonospaceFont(QFont)),
- packet_list_, SLOT(setMonospaceFont(QFont)));
- connect(mainApp, SIGNAL(zoomMonospaceFont(QFont)),
- proto_tree_, SLOT(setMonospaceFont(QFont)));
+ connect(mainApp, &MainApplication::zoomMonospaceFont, packet_list_, &PacketList::setMonospaceFont);
+ connect(mainApp, &MainApplication::zoomMonospaceFont, proto_tree_, &ProtoTree::setMonospaceFont);
connectFileMenuActions();
connectEditMenuActions();
@@ -797,7 +786,7 @@ void LograyMainWindow::addInterfaceToolbar(const iface_toolbar *toolbar_entry)
menu->menuAction()->setVisible(true);
}
-void LograyMainWindow::removeInterfaceToolbar(const gchar *menu_title)
+void LograyMainWindow::removeInterfaceToolbar(const char *menu_title)
{
QMenu *menu = main_ui_->menuInterfaceToolbars;
QAction *action = NULL;
@@ -1005,10 +994,10 @@ void LograyMainWindow::dropEvent(QDropEvent *event)
if (cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, static_cast<int>(local_files.size()),
in_filenames,
wtap_pcapng_file_type_subtype(),
- FALSE) == CF_OK) {
+ false) == CF_OK) {
/* Merge succeeded; close the currently-open file and try
to open the merged capture file. */
- openCaptureFile(tmpname, QString(), WTAP_TYPE_AUTO, TRUE);
+ openCaptureFile(tmpname, QString(), WTAP_TYPE_AUTO, true);
}
g_free(tmpname);
@@ -1159,7 +1148,7 @@ void LograyMainWindow::mergeCaptureFile()
if (prefs.gui_ask_unsaved) {
if (cf_has_unsaved_data(capture_file_.capFile())) {
QMessageBox msg_dialog;
- gchar *display_basename;
+ char *display_basename;
int response;
msg_dialog.setIcon(QMessageBox::Question);
@@ -1229,17 +1218,17 @@ void LograyMainWindow::mergeCaptureFile()
/* chronological order */
in_filenames[0] = g_strdup(capture_file_.capFile()->filename);
in_filenames[1] = qstring_strdup(file_name);
- merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, FALSE);
+ merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, false);
} else if (merge_dlg.mergeType() <= 0) {
/* prepend file */
in_filenames[0] = qstring_strdup(file_name);
in_filenames[1] = g_strdup(capture_file_.capFile()->filename);
- merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, TRUE);
+ merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, true);
} else {
/* append file */
in_filenames[0] = g_strdup(capture_file_.capFile()->filename);
in_filenames[1] = qstring_strdup(file_name);
- merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, TRUE);
+ merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, true);
}
g_free(in_filenames[0]);
@@ -1255,9 +1244,9 @@ void LograyMainWindow::mergeCaptureFile()
/* Try to open the merged capture file. */
// XXX - Just free rfcode and call
- // openCaptureFile(tmpname, read_filter, WTAP_TYPE_AUTO, TRUE);
+ // openCaptureFile(tmpname, read_filter, WTAP_TYPE_AUTO, true);
CaptureFile::globalCapFile()->window = this;
- if (cf_open(CaptureFile::globalCapFile(), tmpname, WTAP_TYPE_AUTO, TRUE /* temporary file */, &err) != CF_OK) {
+ if (cf_open(CaptureFile::globalCapFile(), tmpname, WTAP_TYPE_AUTO, true /* temporary file */, &err) != CF_OK) {
/* We couldn't open it; fail. */
CaptureFile::globalCapFile()->window = NULL;
dfilter_free(rfcode);
@@ -1270,7 +1259,7 @@ void LograyMainWindow::mergeCaptureFile()
previous read filter attached to "cf"). */
cf_set_rfcode(CaptureFile::globalCapFile(), rfcode);
- switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/FALSE)) {
+ switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/false)) {
case CF_READ_OK:
case CF_READ_ERROR:
@@ -1315,7 +1304,7 @@ void LograyMainWindow::importCaptureFile() {
bool LograyMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
QString file_name;
- gboolean discard_comments;
+ bool discard_comments;
if (cf->is_tempfile) {
/* This is a temporary capture file, so saving it means saving
@@ -1325,7 +1314,7 @@ bool LograyMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
probably pcapng, which supports comments and, if it's
not pcapng, let the user decide what they want to do
if they've added comments. */
- return saveAsCaptureFile(cf, FALSE, dont_reopen);
+ return saveAsCaptureFile(cf, false, dont_reopen);
} else {
if (cf->unsaved_changes) {
cf_write_status_t status;
@@ -1344,7 +1333,7 @@ bool LograyMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
case SAVE:
/* The file can be saved in the specified format as is;
just drive on and save in the format they selected. */
- discard_comments = FALSE;
+ discard_comments = false;
break;
case SAVE_WITHOUT_COMMENTS:
@@ -1352,7 +1341,7 @@ bool LograyMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
but it can be saved without the comments, and the user
said "OK, discard the comments", so save it in the
format they specified without the comments. */
- discard_comments = TRUE;
+ discard_comments = true;
break;
case SAVE_IN_ANOTHER_FORMAT:
@@ -1360,7 +1349,7 @@ bool LograyMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
support comments, and the user said not to delete the
comments. Do a "Save As" so the user can select
one of those formats and choose a file name. */
- return saveAsCaptureFile(cf, TRUE, dont_reopen);
+ return saveAsCaptureFile(cf, true, dont_reopen);
case CANCELLED:
/* The user said "forget it". Just return. */
@@ -1428,8 +1417,8 @@ bool LograyMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_com
int file_type;
wtap_compression_type compression_type;
cf_write_status_t status;
- gchar *dirname;
- gboolean discard_comments = FALSE;
+ char *dirname;
+ bool discard_comments = false;
if (!cf) {
return false;
@@ -1446,7 +1435,7 @@ bool LograyMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_com
case SAVE:
/* The file can be saved in the specified format as is;
just drive on and save in the format they selected. */
- discard_comments = FALSE;
+ discard_comments = false;
break;
case SAVE_WITHOUT_COMMENTS:
@@ -1454,7 +1443,7 @@ bool LograyMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_com
but it can be saved without the comments, and the user
said "OK, discard the comments", so save it in the
format they specified without the comments. */
- discard_comments = TRUE;
+ discard_comments = true;
break;
case SAVE_IN_ANOTHER_FORMAT:
@@ -1464,7 +1453,7 @@ bool LograyMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_com
formats that don't support comments trimmed from it,
so run the dialog again, to let the user decide
whether to save in one of those formats or give up. */
- must_support_comments = TRUE;
+ must_support_comments = true;
continue;
case CANCELLED:
@@ -1485,11 +1474,6 @@ bool LograyMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_com
}
compression_type = save_as_dlg.compressionType();
-#ifdef Q_OS_WIN
- // the Windows dialog does not fixup extensions, do it manually here.
- fileAddExtension(file_name, file_type, compression_type);
-#endif // Q_OS_WIN
-
//#ifndef _WIN32
// /* If the file exists and it's user-immutable or not writable,
// ask the user whether they want to override that. */
@@ -1551,7 +1535,7 @@ void LograyMainWindow::exportSelectedPackets() {
wtap_compression_type compression_type;
packet_range_t range;
cf_write_status_t status;
- gchar *dirname;
+ char *dirname;
bool discard_comments = false;
if (!capture_file_.capFile())
@@ -1559,8 +1543,8 @@ void LograyMainWindow::exportSelectedPackets() {
/* Init the packet range */
packet_range_init(&range, capture_file_.capFile());
- range.process_filtered = TRUE;
- range.include_dependents = TRUE;
+ range.process_filtered = true;
+ range.include_dependents = true;
QList<int> rows = packet_list_->selectedRows(true);
@@ -1580,7 +1564,7 @@ void LograyMainWindow::exportSelectedPackets() {
case SAVE:
/* The file can be saved in the specified format as is;
just drive on and save in the format they selected. */
- discard_comments = FALSE;
+ discard_comments = false;
break;
case SAVE_WITHOUT_COMMENTS:
@@ -1588,7 +1572,7 @@ void LograyMainWindow::exportSelectedPackets() {
but it can be saved without the comments, and the user
said "OK, discard the comments", so save it in the
format they specified without the comments. */
- discard_comments = TRUE;
+ discard_comments = true;
break;
case SAVE_IN_ANOTHER_FORMAT:
@@ -1616,7 +1600,7 @@ void LograyMainWindow::exportSelectedPackets() {
*/
if (files_identical(capture_file_.capFile()->filename, qUtf8Printable(file_name))) {
QMessageBox msg_box;
- gchar *display_basename = g_filename_display_basename(qUtf8Printable(file_name));
+ char *display_basename = g_filename_display_basename(qUtf8Printable(file_name));
msg_box.setIcon(QMessageBox::Critical);
msg_box.setText(QString(tr("Unable to export to \"%1\".").arg(display_basename)));
@@ -1640,10 +1624,6 @@ void LograyMainWindow::exportSelectedPackets() {
goto cleanup;
}
compression_type = esp_dlg.compressionType();
-#ifdef Q_OS_WIN
- // the Windows dialog does not fixup extensions, do it manually here.
- fileAddExtension(file_name, file_type, compression_type);
-#endif // Q_OS_WIN
//#ifndef _WIN32
// /* If the file exists and it's user-immutable or not writable,
@@ -1706,110 +1686,6 @@ void LograyMainWindow::exportDissections(export_type_e export_type) {
ed_dlg->show();
}
-#ifdef Q_OS_WIN
-/*
- * Ensure that:
- *
- * If the file is to be compressed:
- *
- * if there is a set of extensions used by the file type to be used,
- * the file name has one of those extensions followed by the extension
- * for the compression type to be used;
- *
- * otherwise, the file name has the extension for the compression type
- * to be used;
- *
- * otherwise:
- *
- * if there is a set of extensions used by the file type to be used,
- * the file name has one of those extensions.
- */
-void LograyMainWindow::fileAddExtension(QString &file_name, int file_type, wtap_compression_type compression_type) {
- QString file_name_lower;
- GSList *extensions_list;
- const char *compressed_file_extension;
- gboolean add_extension_for_file_type;
-
- /* Lower-case the file name, so the extension matching is case-insensitive. */
- file_name_lower = file_name.toLower();
-
- /* Get a list of all extensions used for this file type; don't
- include the ones with compression type extensions, as we
- only want to check for the extension for the compression
- type we'll be using. */
- extensions_list = wtap_get_file_extensions_list(file_type, FALSE);
-
- /* Get the extension for the compression type we'll be using;
- NULL is returned if the type isn't supported or compression
- is not being done. */
- compressed_file_extension = wtap_compression_type_extension(compression_type);
-
- if (extensions_list != NULL) {
- GSList *extension;
-
- /* This file type has one or more extensions.
- Start out assuming we need to add the default one. */
- add_extension_for_file_type = TRUE;
-
- /* OK, see if the file has one of those extensions, followed
- by the appropriate compression type extension if it's to be
- compressed. */
- for (extension = extensions_list; extension != NULL;
- extension = g_slist_next(extension)) {
- QString file_suffix = QString(".") + (char *)extension->data;
- if (compressed_file_extension != NULL)
- file_suffix += QString(".") + compressed_file_extension;
- if (file_name_lower.endsWith(file_suffix)) {
- /*
- * The file name has one of the extensions for this file
- * type, followed by a compression type extension if
- * appropriate, so we don't need to add an extension for
- * the file type or the compression type.
- */
- add_extension_for_file_type = FALSE;
- break;
- }
- }
- } else {
- /* We have no extensions for this file type. Just check
- to see if we need to add an extension for the compressed
- file type.
-
- Start out assuming we do. */
- add_extension_for_file_type = TRUE;
- if (compressed_file_extension != NULL) {
- QString file_suffix = QString(".") + compressed_file_extension;
- if (file_name_lower.endsWith(file_suffix)) {
- /*
- * The file name has the appropriate compressed file extension,
- * so we don't need to add an extension for the compression
- * type.
- */
- add_extension_for_file_type = FALSE;
- }
- }
- }
-
- /*
- * If we need to add an extension for the file type or compressed
- * file type, do so.
- */
- if (add_extension_for_file_type) {
- if (wtap_default_file_extension(file_type) != NULL) {
- /* This file type has a default extension; append it. */
- file_name += QString(".") + wtap_default_file_extension(file_type);
- }
- if (compression_type != WTAP_UNCOMPRESSED) {
- /*
- * The file is to be compressed, so append the extension for
- * its compression type.
- */
- file_name += QString(".") + compressed_file_extension;
- }
- }
-}
-#endif // Q_OS_WIN
-
bool LograyMainWindow::testCaptureFileClose(QString before_what, FileCloseContext context) {
bool capture_in_progress = false;
bool do_close_file = false;
@@ -1882,7 +1758,7 @@ bool LograyMainWindow::testCaptureFileClose(QString before_what, FileCloseContex
}
} else {
// No capture in progress and not a tempfile, so this is not unsaved packets
- gchar *display_basename = g_filename_display_basename(capture_file_.capFile()->filename);
+ char *display_basename = g_filename_display_basename(capture_file_.capFile()->filename);
question = tr("Do you want to save the changes you've made to the capture file \"%1\"%2?").arg(display_basename, before_what);
infotext = tr("Your changes will be lost if you don't save them.");
g_free(display_basename);
@@ -2369,7 +2245,7 @@ bool LograyMainWindow::addFollowStreamMenuItem(const void *key _U_, void *value,
connect(follow_action, &QAction::triggered, window,
[window, follow]() { window->openFollowStreamDialog(get_follow_proto_id(follow)); },
Qt::QueuedConnection);
- return FALSE;
+ return false;
}
void LograyMainWindow::initFollowStreamMenus()
@@ -2802,7 +2678,7 @@ void LograyMainWindow::reloadDynamicMenus()
mainApp->clearRemovedMenuGroupItems();
}
-void LograyMainWindow::externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, gint depth)
+void LograyMainWindow::externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, int depth)
{
QAction * itemAction = Q_NULLPTR;
ext_menubar_t * item = Q_NULLPTR;
diff --git a/ui/logray/logray_main_window.h b/ui/logray/logray_main_window.h
index 21f3909b0f..157d96d2cb 100644
--- a/ui/logray/logray_main_window.h
+++ b/ui/logray/logray_main_window.h
@@ -40,8 +40,6 @@
#include <config.h>
-#include <glib.h>
-
#include "file.h"
#include "ui/ws_ui_util.h"
@@ -116,7 +114,7 @@ public:
void removeAdditionalToolbar(QString toolbarName);
void addInterfaceToolbar(const iface_toolbar *toolbar_entry);
- void removeInterfaceToolbar(const gchar *menu_title);
+ void removeInterfaceToolbar(const char *menu_title);
QString getMwFileName();
void setMwFileName(QString fileName);
@@ -221,7 +219,7 @@ private:
void setWindowIcon(const QIcon &icon);
QString replaceWindowTitleVariables(QString title);
- void externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, gint depth);
+ void externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, int depth);
void setForCaptureInProgress(bool capture_in_progress = false, bool handle_toolbars = false, GArray *ifaces = NULL);
QMenu* findOrAddMenu(QMenu *parent_menu, QString& menu_text);
@@ -255,11 +253,11 @@ public slots:
* @param cf_path Path to the file.
* @param display_filter Display filter to apply. May be empty.
* @param type File type.
- * @param is_tempfile TRUE/FALSE.
+ * @param is_tempfile true/false.
* @return True on success, false on failure.
*/
// XXX We might want to return a cf_read_status_t or a CaptureFile.
- bool openCaptureFile(QString cf_path, QString display_filter, unsigned int type, gboolean is_tempfile = FALSE);
+ bool openCaptureFile(QString cf_path, QString display_filter, unsigned int type, bool is_tempfile = false);
bool openCaptureFile(QString cf_path = QString(), QString display_filter = QString()) { return openCaptureFile(cf_path, display_filter, WTAP_TYPE_AUTO); }
void filterPackets(QString new_filter = QString(), bool force = false);
void updateForUnsavedChanges();
@@ -392,7 +390,7 @@ private slots:
void editConfigurationProfiles();
void editTimeShiftFinished(int);
void addPacketCommentFinished(PacketCommentDialog* pc_dialog, int result);
- void editPacketCommentFinished(PacketCommentDialog* pc_dialog, int result, guint nComment);
+ void editPacketCommentFinished(PacketCommentDialog* pc_dialog, int result, unsigned nComment);
void deleteAllPacketComments();
void deleteAllPacketCommentsFinished(int result);
void showPreferencesDialog(QString module_name);
@@ -429,7 +427,7 @@ private slots:
void applyConversationFilter();
- void openFollowStreamDialog(int proto_id, guint stream_num, guint sub_stream_num, bool use_stream_index = true);
+ void openFollowStreamDialog(int proto_id, unsigned stream_num, unsigned sub_stream_num, bool use_stream_index = true);
void openFollowStreamDialog(int proto_id);
void statCommandExpertInfo(const char *, void *);
@@ -450,8 +448,9 @@ private slots:
void showConversationsDialog();
void showEndpointsDialog();
- void openStatisticsTreeDialog(const gchar *abbr);
+ void openStatisticsTreeDialog(const char *abbr);
void statCommandIOGraph(const char *, void *);
+ void showIOGraphDialog(io_graph_item_unit_t, QString);
void externalMenuItemTriggered();
diff --git a/ui/logray/logray_main_window_slots.cpp b/ui/logray/logray_main_window_slots.cpp
index ad006b57c2..fc4d5393a3 100644
--- a/ui/logray/logray_main_window_slots.cpp
+++ b/ui/logray/logray_main_window_slots.cpp
@@ -154,14 +154,14 @@ DIAG_ON(frame-larger-than=)
// Public slots
//
-bool LograyMainWindow::openCaptureFile(QString cf_path, QString read_filter, unsigned int type, gboolean is_tempfile)
+bool LograyMainWindow::openCaptureFile(QString cf_path, QString read_filter, unsigned int type, bool is_tempfile)
{
QString file_name = "";
dfilter_t *rfcode = NULL;
df_error_t *df_err = NULL;
int err;
- gboolean name_param;
- gboolean ret = true;
+ bool name_param;
+ bool ret = true;
// was a file name given as function parameter?
name_param = !cf_path.isEmpty();
@@ -229,7 +229,7 @@ bool LograyMainWindow::openCaptureFile(QString cf_path, QString read_filter, uns
continue;
}
- switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/FALSE)) {
+ switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/false)) {
case CF_READ_OK:
case CF_READ_ERROR:
/* Just because we got an error, that doesn't mean we were unable
@@ -385,7 +385,7 @@ void LograyMainWindow::updateRecentActions()
main_ui_->actionGoAutoScroll->setChecked(recent.capture_auto_scroll);
}
-// Don't connect to this directly. Connect to or emit fiterAction(...) instead.
+// Don't connect to this directly. Connect to or emit filterAction(...) instead.
void LograyMainWindow::queuedFilterAction(QString action_filter, FilterAction::Action action, FilterAction::ActionType type)
{
QString cur_filter, new_filter;
@@ -476,10 +476,10 @@ void LograyMainWindow::captureCapturePrepared(capture_session *session) {
a capture. */
bool handle_toolbars = (session->session_will_restart ? false : true);
setForCaptureInProgress(true, handle_toolbars, session->capture_opts->ifaces);
-// set_capture_if_dialog_for_capture_in_progress(TRUE);
+// set_capture_if_dialog_for_capture_in_progress(true);
// /* Don't set up main window for a capture file. */
-// main_set_for_capture_file(FALSE);
+// main_set_for_capture_file(false);
showCapture();
}
@@ -631,7 +631,7 @@ void LograyMainWindow::captureEventHandler(CaptureEvent ev)
thaw();
break;
case CaptureEvent::Flushed:
- draw_tap_listeners(FALSE);
+ draw_tap_listeners(false);
break;
default:
break;
@@ -721,7 +721,7 @@ void LograyMainWindow::captureFileReadStarted(const QString &action) {
// tap_param_dlg_update();
/* Set up main window for a capture file. */
-// main_set_for_capture_file(TRUE);
+// main_set_for_capture_file(true);
mainApp->popStatus(WiresharkApplication::FileStatus);
QString msg = QString(tr("%1: %2")).arg(action).arg(capture_file_.fileName());
@@ -797,16 +797,16 @@ void LograyMainWindow::captureFileClosed() {
// ui/gtk/capture_dlg.c:start_capture_confirmed
-void LograyMainWindow::startCapture() {
- startCapture(QStringList());
+void LograyMainWindow::startCapture(QStringList) {
+ startCapture();
}
-void LograyMainWindow::startCapture(QStringList interfaces _U_) {
+void LograyMainWindow::startCapture() {
#ifdef HAVE_LIBPCAP
interface_options *interface_opts;
- guint i;
+ unsigned i;
interface_t *device;
- gboolean can_start_capture = TRUE;
+ bool can_start_capture = true;
/* did the user ever select a capture interface before? */
if (global_capture_opts.num_selected == 0) {
@@ -828,7 +828,7 @@ void LograyMainWindow::startCapture(QStringList interfaces _U_) {
QString device_name(device->name);
emit showExtcapOptions(device_name, false);
/* Cancel start of capture */
- can_start_capture = FALSE;
+ can_start_capture = false;
}
}
}
@@ -887,7 +887,7 @@ void LograyMainWindow::startCapture(QStringList interfaces _U_) {
if (capture_opts->save_file)
msgtip += capture_opts->save_file;
mainApp->pushStatus(WiresharkApplication::FileStatus, msg, msgtip);
- g_string_free(interface_names, TRUE);
+ g_string_free(interface_names, true);
/* The capture succeeded, which means the capture filter syntax is
valid; add this capture filter to the recent capture filter list. */
@@ -1082,10 +1082,10 @@ void LograyMainWindow::setEditCommentsMenu()
const int thisRow = selectedRows().first();
frame_data * current_frame = frameDataForRow(thisRow);
wtap_block_t pkt_block = cf_get_packet_block(capture_file_.capFile(), current_frame);
- guint nComments = wtap_block_count_option(pkt_block, OPT_COMMENT);
+ unsigned nComments = wtap_block_count_option(pkt_block, OPT_COMMENT);
if (nComments > 0) {
main_ui_->menuPacketComment->addSeparator();
- for (guint i = 0; i < nComments; i++) {
+ for (unsigned i = 0; i < nComments; i++) {
QString comment = packet_list_->getPacketComment(i);
comment = this->commentToMenuText(comment);
action = main_ui_->menuPacketComment->addAction(tr("Edit \"%1\"", "edit event comment").arg(comment));
@@ -1094,7 +1094,7 @@ void LograyMainWindow::setEditCommentsMenu()
}
main_ui_->menuPacketComment->addSeparator();
- for (guint i = 0; i < nComments; i++) {
+ for (unsigned i = 0; i < nComments; i++) {
QString comment = packet_list_->getPacketComment(i);
comment = this->commentToMenuText(comment);
action = main_ui_->menuPacketComment->addAction(tr("Delete \"%1\"", "delete event comment").arg(comment));
@@ -1181,7 +1181,7 @@ void LograyMainWindow::setMenusForSelectedPacket()
if (capture_file_.capFile()->edt && ! multi_selection)
{
foreach (FollowStreamAction *follow_action, main_ui_->menuFollow->findChildren<FollowStreamAction *>()) {
- gboolean is_frame = proto_is_frame_protocol(capture_file_.capFile()->edt->pi.layers, follow_action->filterName());
+ bool is_frame = proto_is_frame_protocol(capture_file_.capFile()->edt->pi.layers, follow_action->filterName());
follow_action->setEnabled(is_frame);
}
}
@@ -1281,7 +1281,7 @@ void LograyMainWindow::setMenusForSelectedTreeRow(FieldInformation *finfo) {
}
if (capture_file_.capFile() != NULL && fi != NULL) {
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
int linked_frame = -1;
can_match_selected = proto_can_match_selected(capture_file_.capFile()->finfo_selected, capture_file_.capFile()->edt);
@@ -1438,7 +1438,7 @@ void LograyMainWindow::checkDisplayFilter()
void LograyMainWindow::fieldsChanged()
{
- gchar *err_msg = NULL;
+ char *err_msg = NULL;
if (!color_filters_reload(&err_msg, color_filter_add_cb)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
@@ -1461,7 +1461,7 @@ void LograyMainWindow::reloadLuaPlugins()
if (mainApp->isReloadingLua())
return;
- gboolean uses_lua_filehandler = FALSE;
+ bool uses_lua_filehandler = false;
if (capture_file_.capFile()) {
// Check if the current capture file is opened with a Lua FileHandler
@@ -1548,7 +1548,7 @@ void LograyMainWindow::initViewColorizeMenu()
<< main_ui_->actionViewColorizeConversation7 << main_ui_->actionViewColorizeConversation8
<< main_ui_->actionViewColorizeConversation9 << main_ui_->actionViewColorizeConversation10;
- guint8 color_num = 1;
+ uint8_t color_num = 1;
foreach(QAction *cc_action, cc_actions) {
cc_action->setData(color_num);
@@ -1942,7 +1942,7 @@ void LograyMainWindow::copySelectedItems(LograyMainWindow::CopySelected selectio
break;
case CopySelectedValue:
if (finfo_selected && capture_file_.capFile()->edt != 0) {
- gchar* field_str = get_node_field_value(finfo_selected, capture_file_.capFile()->edt);
+ char* field_str = get_node_field_value(finfo_selected, capture_file_.capFile()->edt);
clip.append(field_str);
g_free(field_str);
}
@@ -2037,7 +2037,7 @@ void LograyMainWindow::editTimeShift()
connect(this, SIGNAL(setCaptureFile(capture_file*)),
ts_dialog, SLOT(setCaptureFile(capture_file*)));
- connect(ts_dialog, SIGNAL(timeShifted()), packet_list_, SLOT(applyTimeShift()));
+ connect(ts_dialog, &TimeShiftDialog::timeShifted, packet_list_, &PacketList::applyTimeShift, Qt::QueuedConnection);
ts_dialog->setWindowModality(Qt::ApplicationModal);
ts_dialog->setAttribute(Qt::WA_DeleteOnClose);
@@ -2084,7 +2084,7 @@ void LograyMainWindow::editPacketComment()
return;
QAction *ra = qobject_cast<QAction*>(sender());
- guint nComment = ra->data().toUInt();
+ unsigned nComment = ra->data().toUInt();
PacketCommentDialog* pc_dialog;
pc_dialog = new PacketCommentDialog(true, this, packet_list_->getPacketComment(nComment));
connect(pc_dialog, &QDialog::finished, std::bind(&LograyMainWindow::editPacketCommentFinished, this, pc_dialog, std::placeholders::_1, nComment));
@@ -2093,7 +2093,7 @@ void LograyMainWindow::editPacketComment()
pc_dialog->show();
}
-void LograyMainWindow::editPacketCommentFinished(PacketCommentDialog* pc_dialog _U_, int result _U_, guint nComment)
+void LograyMainWindow::editPacketCommentFinished(PacketCommentDialog* pc_dialog _U_, int result _U_, unsigned nComment)
{
if (result == QDialog::Accepted) {
packet_list_->setPacketComment(nComment, pc_dialog->text());
@@ -2104,7 +2104,7 @@ void LograyMainWindow::editPacketCommentFinished(PacketCommentDialog* pc_dialog
void LograyMainWindow::deletePacketComment()
{
QAction *ra = qobject_cast<QAction*>(sender());
- guint nComment = ra->data().toUInt();
+ unsigned nComment = ra->data().toUInt();
packet_list_->setPacketComment(nComment, QString(""));
updateForUnsavedChanges();
}
@@ -2230,7 +2230,7 @@ void LograyMainWindow::connectViewMenuActions()
[this]() { showColoringRulesDialog(); });
connect(main_ui_->actionViewColorizeResetColorization, &QAction::triggered, this, [this]() {
- gchar *err_msg = NULL;
+ char *err_msg = NULL;
if (!color_filters_reset_tmp(&err_msg)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
@@ -2423,9 +2423,9 @@ void LograyMainWindow::editResolvedName()
void LograyMainWindow::setNameResolution()
{
- gbl_resolv_flags.mac_name = main_ui_->actionViewNameResolutionPhysical->isChecked() ? TRUE : FALSE;
- gbl_resolv_flags.network_name = main_ui_->actionViewNameResolutionNetwork->isChecked() ? TRUE : FALSE;
- gbl_resolv_flags.transport_name = main_ui_->actionViewNameResolutionTransport->isChecked() ? TRUE : FALSE;
+ gbl_resolv_flags.mac_name = main_ui_->actionViewNameResolutionPhysical->isChecked() ? true : false;
+ gbl_resolv_flags.network_name = main_ui_->actionViewNameResolutionNetwork->isChecked() ? true : false;
+ gbl_resolv_flags.transport_name = main_ui_->actionViewNameResolutionTransport->isChecked() ? true : false;
if (packet_list_) {
packet_list_->resetColumns();
@@ -2459,8 +2459,8 @@ void LograyMainWindow::colorizeConversation(bool create_rule)
if (capture_file_.capFile() && selectedRows().count() > 0) {
packet_info *pi = capture_file_.packetInfo();
- guint8 cc_num = colorize_action->data().toUInt();
- gchar *filter = conversation_filter_from_log(pi);
+ uint8_t cc_num = colorize_action->data().toUInt();
+ char *filter = conversation_filter_from_log(pi);
if (filter == NULL) {
mainApp->pushStatus(WiresharkApplication::TemporaryStatus, tr("Unable to build conversation filter."));
return;
@@ -2474,8 +2474,8 @@ void LograyMainWindow::colorizeConversation(bool create_rule)
this, &LograyMainWindow::filterAction);
coloring_rules_dialog.exec();
} else {
- gchar *err_msg = NULL;
- if (!color_filters_set_tmp(cc_num, filter, FALSE, &err_msg)) {
+ char *err_msg = NULL;
+ if (!color_filters_set_tmp(cc_num, filter, false, &err_msg)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
}
@@ -2511,8 +2511,8 @@ void LograyMainWindow::colorizeWithFilter(QByteArray filter, int color_number)
if (color_number > 0) {
// Assume "Color X"
- gchar *err_msg = NULL;
- if (!color_filters_set_tmp(color_number, filter.constData(), FALSE, &err_msg)) {
+ char *err_msg = NULL;
+ if (!color_filters_set_tmp(color_number, filter.constData(), false, &err_msg)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
}
@@ -2535,7 +2535,7 @@ void LograyMainWindow::openPacketDialog(bool from_reference)
/* Find the frame for which we're popping up a dialog */
if (from_reference) {
- guint32 framenum = fvalue_get_uinteger(capture_file_.capFile()->finfo_selected->value);
+ uint32_t framenum = fvalue_get_uinteger(capture_file_.capFile()->finfo_selected->value);
if (framenum == 0)
return;
@@ -2661,9 +2661,9 @@ void LograyMainWindow::connectGoMenuActions()
}
void LograyMainWindow::goToConversationFrame(bool go_next) {
- gchar *filter = NULL;
+ char *filter = NULL;
dfilter_t *dfcode = NULL;
- gboolean found_packet = FALSE;
+ bool found_packet = false;
packet_info *pi = capture_file_.packetInfo();
if (!pi) {
@@ -2717,7 +2717,7 @@ void LograyMainWindow::connectCaptureMenuActions()
connect(main_ui_->actionCaptureRestart, &QAction::triggered, this, [this]() {
#ifdef HAVE_LIBPCAP
QString before_what(tr(" before restarting the capture"));
- cap_session_.capture_opts->restart = TRUE;
+ cap_session_.capture_opts->restart = true;
if (!testCaptureFileClose(before_what, Restart)) {
return;
}
@@ -2793,13 +2793,13 @@ void LograyMainWindow::startCaptureTriggered()
// /*
// * There's an options dialog; get the values from it and close it.
// */
-// gboolean success;
+// bool success;
// /* Determine if "capture start" while building of the "capture options" window */
// /* is in progress. If so, ignore the "capture start. */
// /* XXX: Would it be better/cleaner for the "capture options" window code to */
// /* disable the capture start button temporarily ? */
-// if (cap_open_complete == FALSE) {
+// if (cap_open_complete == false) {
// return; /* Building options window: ignore "capture start" */
// }
// success = capture_dlg_prep(cap_open_w);
@@ -2924,7 +2924,7 @@ void LograyMainWindow::matchFieldFilter(FilterAction::Action action, FilterActio
void LograyMainWindow::applyFieldAsColumn()
{
if (capture_file_.capFile() != 0 && capture_file_.capFile()->finfo_selected != 0) {
- header_field_info *hfinfo = capture_file_.capFile()->finfo_selected->hfinfo;
+ const header_field_info *hfinfo = capture_file_.capFile()->finfo_selected->hfinfo;
int col = column_prefs_has_custom(hfinfo->abbrev);
if (col == -1) {
insertColumn(hfinfo->name, hfinfo->abbrev);
@@ -2939,7 +2939,7 @@ void LograyMainWindow::applyFieldAsColumn()
if (!get_column_visible(col)) {
packet_list_->setColumnHidden(col, false);
- set_column_visible(col, TRUE);
+ set_column_visible(col, true);
prefs_main_write();
}
}
@@ -2964,7 +2964,7 @@ void LograyMainWindow::applyConversationFilter()
}
}
-void LograyMainWindow::openFollowStreamDialog(int proto_id, guint stream_num, guint sub_stream_num, bool use_stream_index) {
+void LograyMainWindow::openFollowStreamDialog(int proto_id, unsigned stream_num, unsigned sub_stream_num, bool use_stream_index) {
FollowStreamDialog *fsd = new FollowStreamDialog(*this, capture_file_, proto_id);
connect(fsd, SIGNAL(updateFilter(QString, bool)), this, SLOT(filterPackets(QString, bool)));
connect(fsd, SIGNAL(goToPacket(int)), packet_list_, SLOT(goToPacket(int)));
@@ -3034,7 +3034,7 @@ void LograyMainWindow::connectStatisticsMenuActions()
});
}
-void LograyMainWindow::openStatisticsTreeDialog(const gchar *abbr)
+void LograyMainWindow::openStatisticsTreeDialog(const char *abbr)
{
StatsTreeDialog *st_dialog = new StatsTreeDialog(*this, capture_file_, abbr);
// connect(st_dialog, SIGNAL(goToPacket(int)),
@@ -3045,14 +3045,47 @@ void LograyMainWindow::openStatisticsTreeDialog(const gchar *abbr)
// -z io,stat
void LograyMainWindow::statCommandIOGraph(const char *, void *)
{
+ showIOGraphDialog(IOG_ITEM_UNIT_PACKETS, QString());
+}
+
+void LograyMainWindow::showIOGraphDialog(io_graph_item_unit_t value_units, QString yfield)
+{
const DisplayFilterEdit *df_edit = qobject_cast<DisplayFilterEdit *>(df_combo_box_->lineEdit());
+ IOGraphDialog *iog_dialog = nullptr;
QString displayFilter;
if (df_edit)
displayFilter = df_edit->text();
- IOGraphDialog *iog_dialog = new IOGraphDialog(*this, capture_file_, displayFilter);
- connect(iog_dialog, SIGNAL(goToPacket(int)), packet_list_, SLOT(goToPacket(int)));
- connect(this, SIGNAL(reloadFields()), iog_dialog, SLOT(reloadFields()));
+ if (!yfield.isEmpty()) {
+ QList<IOGraphDialog *> iographdialogs = findChildren<IOGraphDialog *>();
+ // GeometryStateDialogs aren't parented on Linux and Windows
+ // (see geometry_state_dialog.h), so we search for an
+ // I/O Dialog in all the top level widgets.
+ if (iographdialogs.isEmpty()) {
+ foreach(QWidget *topLevelWidget, mainApp->topLevelWidgets()) {
+ if (qobject_cast<IOGraphDialog*>(topLevelWidget)) {
+ iographdialogs << qobject_cast<IOGraphDialog*>(topLevelWidget);
+ }
+ }
+ }
+ bool iog_found = false;
+ foreach(iog_dialog, iographdialogs) {
+ if (!iog_dialog->fileClosed()) {
+ iog_found = true;
+ iog_dialog->addGraph(true, displayFilter, value_units, yfield);
+ break;
+ }
+ }
+ if (!iog_found) {
+ iog_dialog = nullptr;
+ }
+ }
+
+ if (iog_dialog == nullptr) {
+ iog_dialog = new IOGraphDialog(*this, capture_file_, displayFilter, value_units, yfield);
+ connect(iog_dialog, SIGNAL(goToPacket(int)), packet_list_, SLOT(goToPacket(int)));
+ connect(this, &LograyMainWindow::reloadFields, iog_dialog, &IOGraphDialog::reloadFields);
+ }
iog_dialog->show();
}
@@ -3157,8 +3190,8 @@ void LograyMainWindow::showConversationsDialog()
ConversationDialog *conv_dialog = new ConversationDialog(*this, capture_file_);
connect(conv_dialog, SIGNAL(filterAction(QString, FilterAction::Action, FilterAction::ActionType)),
this, SIGNAL(filterAction(QString, FilterAction::Action, FilterAction::ActionType)));
- connect(conv_dialog, SIGNAL(openFollowStreamDialog(int, guint, guint)),
- this, SLOT(openFollowStreamDialog(int, guint, guint)));
+ connect(conv_dialog, SIGNAL(openFollowStreamDialog(int, unsigned, unsigned)),
+ this, SLOT(openFollowStreamDialog(int, unsigned, unsigned)));
conv_dialog->show();
}
@@ -3186,9 +3219,9 @@ void LograyMainWindow::externalMenuItemTriggered()
entry = (ext_menubar_t *)v.value<void *>();
if (entry->type == EXT_MENUBAR_ITEM) {
- entry->callback(EXT_MENUBAR_QT_GUI, (gpointer)((void *)main_ui_), entry->user_data);
+ entry->callback(EXT_MENUBAR_QT_GUI, (void *)((void *)main_ui_), entry->user_data);
} else {
- QDesktopServices::openUrl(QUrl(QString((gchar *)entry->user_data)));
+ QDesktopServices::openUrl(QUrl(QString((char *)entry->user_data)));
}
}
}
diff --git a/ui/main_statusbar.h b/ui/main_statusbar.h
index c8dd3c0ef3..32e7ec007d 100644
--- a/ui/main_statusbar.h
+++ b/ui/main_statusbar.h
@@ -28,7 +28,7 @@ void status_capture_comment_update(void);
*
* @param msg_format The format string for the message
*/
-void statusbar_push_field_msg(const gchar *msg_format, ...)
+void statusbar_push_field_msg(const char *msg_format, ...)
G_GNUC_PRINTF(1, 2);
/** Pop a message referring to the currently-selected field off the statusbar.
@@ -40,7 +40,7 @@ void statusbar_pop_field_msg(void);
*
* @param msg_format The format string for the message
*/
-void statusbar_push_filter_msg(const gchar *msg_format, ...)
+void statusbar_push_filter_msg(const char *msg_format, ...)
G_GNUC_PRINTF(1, 2);
/** Pop a message referring to the current filter off the statusbar.
@@ -52,7 +52,7 @@ void statusbar_pop_filter_msg(void);
*
* @param msg_format The format string for the message
*/
-void statusbar_push_temporary_msg(const gchar *msg_format, ...)
+void statusbar_push_temporary_msg(const char *msg_format, ...)
G_GNUC_PRINTF(1, 2);
#ifdef __cplusplus
diff --git a/ui/mcast_stream.c b/ui/mcast_stream.c
index 44f8f22e5a..8d42e5cdb0 100644
--- a/ui/mcast_stream.c
+++ b/ui/mcast_stream.c
@@ -34,21 +34,21 @@
#include "ui/mcast_stream.h"
-gint32 mcast_stream_trigger = 50; /* limit for triggering the burst alarm (in packets per second) */
-gint32 mcast_stream_bufferalarm = 10000; /* limit for triggering the buffer alarm (in bytes) */
-guint16 mcast_stream_burstint = 100; /* burst interval in ms */
-gint32 mcast_stream_emptyspeed = 5000; /* outgoing speed for single stream (kbps)*/
-gint32 mcast_stream_cumulemptyspeed = 100000; /* outgoiong speed for all streams (kbps)*/
+int32_t mcast_stream_trigger = 50; /* limit for triggering the burst alarm (in packets per second) */
+int32_t mcast_stream_bufferalarm = 10000; /* limit for triggering the buffer alarm (in bytes) */
+uint16_t mcast_stream_burstint = 100; /* burst interval in ms */
+int32_t mcast_stream_emptyspeed = 5000; /* outgoing speed for single stream (kbps)*/
+int32_t mcast_stream_cumulemptyspeed = 100000; /* outgoiong speed for all streams (kbps)*/
/* sliding window and buffer usage */
-static gint32 buffsize = (int)((double)MAX_SPEED * 100 / 1000) * 2;
-static guint16 comparetimes(nstime_t *t1, nstime_t *t2, guint16 burstint_lcl);
+static int32_t buffsize = (int)((double)MAX_SPEED * 100 / 1000) * 2;
+static uint16_t comparetimes(nstime_t *t1, nstime_t *t2, uint16_t burstint_lcl);
static void buffusagecalc(mcast_stream_info_t *strinfo, packet_info *pinfo, double emptyspeed_lcl);
static void slidingwindow(mcast_stream_info_t *strinfo, packet_info *pinfo);
/****************************************************************************/
/* GCompareFunc style comparison function for _mcast_stream_info */
-static gint
+static int
mcast_stream_info_cmp(gconstpointer aa, gconstpointer bb)
{
const struct _mcast_stream_info* a = (const struct _mcast_stream_info *)aa;
@@ -147,13 +147,13 @@ mcaststream_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const
switch (pinfo->net_dst.type) {
case AT_IPv4:
/* 224.0.0.0/4 */
- if (pinfo->net_dst.len == 0 || (((const guint8*)pinfo->net_dst.data)[0] & 0xf0) != 0xe0)
+ if (pinfo->net_dst.len == 0 || (((const uint8_t*)pinfo->net_dst.data)[0] & 0xf0) != 0xe0)
return TAP_PACKET_DONT_REDRAW;
break;
case AT_IPv6:
/* ff00::/8 */
/* XXX This includes DHCPv6. */
- if (pinfo->net_dst.len == 0 || ((const guint8*)pinfo->net_dst.data)[0] != 0xff)
+ if (pinfo->net_dst.len == 0 || ((const uint8_t*)pinfo->net_dst.data)[0] != 0xff)
return TAP_PACKET_DONT_REDRAW;
break;
default:
@@ -288,7 +288,7 @@ remove_tap_listener_mcast_stream(mcaststream_tapinfo_t *tapinfo)
{
if (tapinfo && tapinfo->is_registered) {
remove_tap_listener(tapinfo);
- tapinfo->is_registered = FALSE;
+ tapinfo->is_registered = false;
}
}
@@ -311,7 +311,7 @@ register_tap_listener_mcast_stream(mcaststream_tapinfo_t *tapinfo)
mcaststream_draw, NULL);
if (NULL == error_string) {
- tapinfo->is_registered = TRUE;
+ tapinfo->is_registered = true;
}
return error_string;
}
@@ -320,8 +320,8 @@ register_tap_listener_mcast_stream(mcaststream_tapinfo_t *tapinfo)
/* sliding window and buffer calculations */
/* compare two times */
-static guint16
-comparetimes(nstime_t *t1, nstime_t *t2, guint16 burstint_lcl)
+static uint16_t
+comparetimes(nstime_t *t1, nstime_t *t2, uint16_t burstint_lcl)
{
if(((t2->secs - t1->secs)*1000 + (t2->nsecs - t1->nsecs)/1000000) > burstint_lcl){
return 1;
@@ -334,7 +334,7 @@ comparetimes(nstime_t *t1, nstime_t *t2, guint16 burstint_lcl)
static void
buffusagecalc(mcast_stream_info_t *strinfo, packet_info *pinfo, double emptyspeed_lcl)
{
- gint32 cur, prev;
+ int32_t cur, prev;
nstime_t *buffer;
nstime_t delta;
double timeelapsed;
@@ -359,7 +359,7 @@ buffusagecalc(mcast_stream_info_t *strinfo, packet_info *pinfo, double emptyspee
strinfo->element.buffusage+=pinfo->fd->pkt_len;
/* bytes cleared from buffer */
- strinfo->element.buffusage-= (guint32) (timeelapsed * emptyspeed_lcl / 8);
+ strinfo->element.buffusage-= (uint32_t) (timeelapsed * emptyspeed_lcl / 8);
if(strinfo->element.buffusage < 0) strinfo->element.buffusage=0;
if(strinfo->element.buffusage > strinfo->element.topbuffusage)
@@ -380,7 +380,7 @@ static void
slidingwindow(mcast_stream_info_t *strinfo, packet_info *pinfo)
{
nstime_t *buffer;
- gint32 diff;
+ int32_t diff;
buffer = strinfo->element.buff;
diff --git a/ui/mcast_stream.h b/ui/mcast_stream.h
index fc5c598369..09eee0f378 100644
--- a/ui/mcast_stream.h
+++ b/ui/mcast_stream.h
@@ -29,17 +29,17 @@ extern "C" {
/* typedefs for sliding window and buffer size */
typedef struct buffer{
nstime_t *buff; /* packet times */
- gint32 first; /* pointer to the first element */
- gint32 last; /* pointer to the last element */
- gint32 burstsize; /* current burst */
- gint32 topburstsize; /* maximum burst in the refresh interval*/
- gint32 count; /* packet counter */
- gint32 burststatus; /* burst status */
- gint32 numbursts; /* number of bursts */
- gint32 buffusage; /* buffer usage */
- gint32 buffstatus; /* buffer status */
- gint32 numbuffalarms; /* number of alarms triggered by buffer underruns */
- gint32 topbuffusage; /* top buffer usage in refresh interval */
+ int32_t first; /* pointer to the first element */
+ int32_t last; /* pointer to the last element */
+ int32_t burstsize; /* current burst */
+ int32_t topburstsize; /* maximum burst in the refresh interval*/
+ int32_t count; /* packet counter */
+ int32_t burststatus; /* burst status */
+ int32_t numbursts; /* number of bursts */
+ int32_t buffusage; /* buffer usage */
+ int32_t buffstatus; /* buffer status */
+ int32_t numbuffalarms; /* number of alarms triggered by buffer underruns */
+ int32_t topbuffusage; /* top buffer usage in refresh interval */
double maxbw; /* Maximum bandwidth usage. Bits/s */
} t_buffer;
@@ -47,20 +47,20 @@ typedef struct buffer{
/* defines an mcast stream */
typedef struct _mcast_stream_info {
address src_addr;
- guint16 src_port;
+ uint16_t src_port;
address dest_addr;
- guint16 dest_port;
- guint32 npackets;
+ uint16_t dest_port;
+ uint32_t npackets;
double apackets;
- guint32 total_bytes;
+ uint32_t total_bytes;
double average_bw; /* Bits/s */
- guint32 first_frame_num; /* frame number of first frame */
+ uint32_t first_frame_num; /* frame number of first frame */
/* start of recording (GMT) of this stream */
nstime_t start_abs; /* absolute stream start time */
nstime_t start_rel; /* stream start time relative to first packet in capture */
nstime_t stop_rel; /* stream stop time relative to first packet in capture */
- guint16 vlan_id;
+ uint16_t vlan_id;
/*for the sliding window */
t_buffer element;
@@ -75,22 +75,22 @@ typedef void (*mcaststream_tap_draw_cb)(mcaststream_tapinfo_t *tapinfo);
/* structure that holds the information about all detected streams */
/* struct holding all information of the tap */
struct _mcaststream_tapinfo {
- gpointer user_data; /* User data pointer */
+ void *user_data; /* User data pointer */
mcaststream_tap_reset_cb tap_reset; /**< tap reset callback */
mcaststream_tap_draw_cb tap_draw; /**< tap draw callback */
GList* strinfo_list; /* list of mcast_stream_info_t */
- guint32 npackets; /* total number of mcast packets of all streams */
+ uint32_t npackets; /* total number of mcast packets of all streams */
mcast_stream_info_t* allstreams; /* structure holding information common for all streams */
- gboolean is_registered; /* if the tap listener is currently registered or not */
+ bool is_registered; /* if the tap listener is currently registered or not */
};
-extern gint32 mcast_stream_trigger;
-extern gint32 mcast_stream_bufferalarm;
-extern guint16 mcast_stream_burstint;
-extern gint32 mcast_stream_emptyspeed;
-extern gint32 mcast_stream_cumulemptyspeed;
+extern int32_t mcast_stream_trigger;
+extern int32_t mcast_stream_bufferalarm;
+extern uint16_t mcast_stream_burstint;
+extern int32_t mcast_stream_emptyspeed;
+extern int32_t mcast_stream_cumulemptyspeed;
/****************************************************************************/
/* INTERFACE */
diff --git a/ui/packet_list_utils.c b/ui/packet_list_utils.c
index 312d156e12..0a7b742bf4 100644
--- a/ui/packet_list_utils.c
+++ b/ui/packet_list_utils.c
@@ -15,16 +15,16 @@
#include <epan/column.h>
-gboolean
-right_justify_column (gint col, capture_file *cf)
+bool
+right_justify_column (int col, capture_file *cf)
{
header_field_info *hfi;
- gboolean right_justify = FALSE;
- guint num_fields, ii;
+ bool right_justify = false;
+ unsigned num_fields, ii;
col_custom_t *col_custom;
- guint right_justify_count = 0;
+ unsigned right_justify_count = 0;
- if (!cf) return FALSE;
+ if (!cf) return false;
switch (cf->cinfo.columns[col].col_fmt) {
@@ -38,7 +38,7 @@ right_justify_column (gint col, capture_file *cf)
case COL_DEF_SRC_PORT:
case COL_DELTA_TIME:
case COL_DELTA_TIME_DIS:
- right_justify = TRUE;
+ right_justify = true;
break;
case COL_CUSTOM:
@@ -49,7 +49,7 @@ right_justify_column (gint col, capture_file *cf)
/* XXX - If there were some way to check the compiled dfilter's
* expected return type, we could use that.
*/
- return FALSE;
+ return false;
}
hfi = proto_registrar_get_nth(col_custom->field_id);
@@ -69,7 +69,7 @@ right_justify_column (gint col, capture_file *cf)
if ((num_fields > 0) && (right_justify_count == num_fields)) {
/* All custom fields must meet the right-justify criteria */
- right_justify = TRUE;
+ right_justify = true;
}
break;
@@ -80,15 +80,15 @@ right_justify_column (gint col, capture_file *cf)
return right_justify;
}
-gboolean
-resolve_column (gint col, capture_file *cf)
+bool
+resolve_column (int col, capture_file *cf)
{
header_field_info *hfi;
- gboolean resolve = FALSE;
- guint num_fields, ii;
+ bool resolve = false;
+ unsigned num_fields, ii;
col_custom_t *col_custom;
- if (!cf) return FALSE;
+ if (!cf) return false;
switch (cf->cinfo.columns[col].col_fmt) {
@@ -116,7 +116,7 @@ resolve_column (gint col, capture_file *cf)
((hfi->strings != NULL) &&
(FT_IS_INT(hfi->type) || FT_IS_UINT(hfi->type))))
{
- resolve = TRUE;
+ resolve = true;
break;
}
}
diff --git a/ui/packet_list_utils.h b/ui/packet_list_utils.h
index 3a90897c55..2ffc6c817f 100644
--- a/ui/packet_list_utils.h
+++ b/ui/packet_list_utils.h
@@ -22,9 +22,9 @@ extern "C" {
* @param [in] col The column number.
* @param [in] cf The capture file containing the packet data.
*
- * @return TRUE if the column should be right justified, FALSE otherwise.
+ * @return true if the column should be right justified, false otherwise.
*/
-gboolean right_justify_column (gint col, capture_file *cf);
+bool right_justify_column (int col, capture_file *cf);
/**
* Check to see if a column's data should be resolved.
@@ -32,9 +32,9 @@ gboolean right_justify_column (gint col, capture_file *cf);
* @param [in] col The column number.
* @param [in] cf The capture file containing the packet data.
*
- * @return TRUE if resolution is required, FALSE otherwise.
+ * @return true if resolution is required, false otherwise.
*/
-gboolean resolve_column (gint col, capture_file *cf);
+bool resolve_column (int col, capture_file *cf);
/**
* @brief The following methods have to be implemented by any class that
@@ -51,11 +51,11 @@ extern void packet_list_clear(void);
extern void packet_list_freeze(void);
extern void packet_list_recreate_visible_rows(void);
extern void packet_list_thaw(void);
-extern guint packet_list_append(column_info *cinfo, frame_data *fdata);
+extern unsigned packet_list_append(column_info *cinfo, frame_data *fdata);
extern void packet_list_queue_draw(void);
-extern gboolean packet_list_select_row_from_data(frame_data *fdata_needle);
-extern gboolean packet_list_select_finfo(field_info *fi);
-extern gboolean packet_list_multi_select_active(void);
+extern bool packet_list_select_row_from_data(frame_data *fdata_needle);
+extern bool packet_list_select_finfo(field_info *fi);
+extern bool packet_list_multi_select_active(void);
#ifdef __cplusplus
}
diff --git a/ui/packet_range.c b/ui/packet_range.c
index e0ec7db1e8..96e0176196 100644
--- a/ui/packet_range.c
+++ b/ui/packet_range.c
@@ -28,7 +28,7 @@ depended_frames_add(GHashTable* depended_table, frame_data_sequence *frames, fra
{
if (g_hash_table_add(depended_table, GUINT_TO_POINTER(frame->num)) && frame->dependent_frames) {
GHashTableIter iter;
- gpointer key;
+ void *key;
frame_data *depended_fd;
g_hash_table_iter_init(&iter, frame->dependent_frames);
while (g_hash_table_iter_next(&iter, &key, NULL)) {
@@ -40,11 +40,11 @@ depended_frames_add(GHashTable* depended_table, frame_data_sequence *frames, fra
/* (re-)calculate the packet counts (except the user specified range) */
static void packet_range_calc(packet_range_t *range) {
- guint32 framenum;
- guint32 mark_low;
- guint32 mark_high;
- guint32 displayed_mark_low;
- guint32 displayed_mark_high;
+ uint32_t framenum;
+ uint32_t mark_low;
+ uint32_t mark_high;
+ uint32_t displayed_mark_low;
+ uint32_t displayed_mark_high;
frame_data *packet;
@@ -177,7 +177,7 @@ static void packet_range_calc(packet_range_t *range) {
/* (re-)calculate the user specified packet range counts */
static void packet_range_calc_user(packet_range_t *range) {
- guint32 framenum;
+ uint32_t framenum;
frame_data *packet;
range->user_range_cnt = 0;
@@ -232,7 +232,7 @@ static void packet_range_calc_user(packet_range_t *range) {
}
static void packet_range_calc_selection(packet_range_t *range) {
- guint32 framenum;
+ uint32_t framenum;
frame_data *packet;
range->selection_range_cnt = 0;
@@ -320,9 +320,9 @@ convert_ret_t packet_range_check(packet_range_t *range) {
void packet_range_process_init(packet_range_t *range) {
/* Check that, if an explicit range was selected, it's valid. */
/* "enumeration" values */
- range->marked_range_active = FALSE;
+ range->marked_range_active = false;
- if (range->process_filtered == FALSE) {
+ if (range->process_filtered == false) {
range->marked_range_left = range->mark_range_cnt;
} else {
range->marked_range_left = range->displayed_mark_range_cnt;
@@ -333,7 +333,7 @@ void packet_range_process_init(packet_range_t *range) {
}
/* do we have to process all packets? */
-gboolean packet_range_process_all(packet_range_t *range) {
+bool packet_range_process_all(packet_range_t *range) {
return range->process == range_process_all && !range->process_filtered && !range->remove_ignored;
}
@@ -343,7 +343,7 @@ packet_range_process_packet_include_depends(packet_range_t *range, frame_data *f
switch(range->process) {
case(range_process_all):
if (range->process_filtered) {
- if ((fdata->passed_dfilter || fdata->dependent_of_displayed) == FALSE) {
+ if ((fdata->passed_dfilter || fdata->dependent_of_displayed) == false) {
return range_process_next;
}
}
@@ -422,12 +422,12 @@ range_process_e packet_range_process_packet(packet_range_t *range, frame_data *f
case(range_process_all):
break;
case(range_process_selected):
- if (value_is_in_range(range->selection_range, fdata->num) == FALSE) {
+ if (value_is_in_range(range->selection_range, fdata->num) == false) {
return range_process_next;
}
break;
case(range_process_marked):
- if (fdata->marked == FALSE) {
+ if (fdata->marked == false) {
return range_process_next;
}
break;
@@ -435,20 +435,20 @@ range_process_e packet_range_process_packet(packet_range_t *range, frame_data *f
if (range->marked_range_left == 0) {
return range_processing_finished;
}
- if (fdata->marked == TRUE) {
- range->marked_range_active = TRUE;
+ if (fdata->marked == true) {
+ range->marked_range_active = true;
}
- if (range->marked_range_active == FALSE ) {
+ if (range->marked_range_active == false ) {
return range_process_next;
}
if (!range->process_filtered ||
- (range->process_filtered && fdata->passed_dfilter == TRUE))
+ (range->process_filtered && fdata->passed_dfilter == true))
{
range->marked_range_left--;
}
break;
case(range_process_user_range):
- if (value_is_in_range(range->user_range, fdata->num) == FALSE) {
+ if (value_is_in_range(range->user_range, fdata->num) == false) {
return range_process_next;
}
break;
@@ -460,7 +460,7 @@ range_process_e packet_range_process_packet(packet_range_t *range, frame_data *f
* Try next (if we're including dependent packets we called the
* other function above).
*/
- if ((range->process_filtered && fdata->passed_dfilter == FALSE)) {
+ if ((range->process_filtered && fdata->passed_dfilter == false)) {
return range_process_next;
}
@@ -476,7 +476,7 @@ range_process_e packet_range_process_packet(packet_range_t *range, frame_data *f
* the Save/Print-As widget.
*/
-void packet_range_convert_str(packet_range_t *range, const gchar *es)
+void packet_range_convert_str(packet_range_t *range, const char *es)
{
range_t *new_range;
convert_ret_t ret;
diff --git a/ui/packet_range.h b/ui/packet_range.h
index 0328fc8789..e8e34c90eb 100644
--- a/ui/packet_range.h
+++ b/ui/packet_range.h
@@ -26,7 +26,7 @@
extern "C" {
#endif /* __cplusplus */
-extern guint32 curr_selected_frame;
+extern uint32_t curr_selected_frame;
typedef enum {
range_process_all,
@@ -39,9 +39,9 @@ typedef enum {
typedef struct packet_range_tag {
/* values coming from the UI */
packet_range_e process; /* which range to process */
- gboolean process_filtered; /* captured or filtered packets */
- gboolean remove_ignored; /* remove ignored packets */
- gboolean include_dependents; /* True if packets which are dependents of others should be processed */
+ bool process_filtered; /* captured or filtered packets */
+ bool remove_ignored; /* remove ignored packets */
+ bool include_dependents; /* True if packets which are dependents of others should be processed */
/* user specified range(s) and, if null, error status */
range_t *user_range;
@@ -53,35 +53,35 @@ typedef struct packet_range_tag {
/* current packet counts (captured) */
capture_file *cf; /* Associated capture file. */
- guint32 mark_range_cnt; /* packets in marked range */
- guint32 user_range_cnt; /* packets in user specified range */
- guint32 selection_range_cnt; /* packets in the selected range */
- guint32 marked_plus_depends_cnt;
- guint32 mark_range_plus_depends_cnt;
- guint32 user_range_plus_depends_cnt;
- guint32 selected_plus_depends_cnt;
- guint32 ignored_cnt; /* packets ignored */
- guint32 ignored_marked_cnt; /* packets ignored and marked */
- guint32 ignored_mark_range_cnt; /* packets ignored in marked range */
- guint32 ignored_user_range_cnt; /* packets ignored in user specified range */
- guint32 ignored_selection_range_cnt; /* packets ignored in the selected range */
+ uint32_t mark_range_cnt; /* packets in marked range */
+ uint32_t user_range_cnt; /* packets in user specified range */
+ uint32_t selection_range_cnt; /* packets in the selected range */
+ uint32_t marked_plus_depends_cnt;
+ uint32_t mark_range_plus_depends_cnt;
+ uint32_t user_range_plus_depends_cnt;
+ uint32_t selected_plus_depends_cnt;
+ uint32_t ignored_cnt; /* packets ignored */
+ uint32_t ignored_marked_cnt; /* packets ignored and marked */
+ uint32_t ignored_mark_range_cnt; /* packets ignored in marked range */
+ uint32_t ignored_user_range_cnt; /* packets ignored in user specified range */
+ uint32_t ignored_selection_range_cnt; /* packets ignored in the selected range */
/* current packet counts (displayed) */
- guint32 displayed_cnt;
- guint32 displayed_plus_dependents_cnt;
- guint32 displayed_marked_cnt;
- guint32 displayed_mark_range_cnt;
- guint32 displayed_user_range_cnt;
- guint32 displayed_marked_plus_depends_cnt;
- guint32 displayed_mark_range_plus_depends_cnt;
- guint32 displayed_user_range_plus_depends_cnt;
- guint32 displayed_selection_range_cnt;
- guint32 displayed_selected_plus_depends_cnt;
- guint32 displayed_ignored_cnt;
- guint32 displayed_ignored_marked_cnt;
- guint32 displayed_ignored_mark_range_cnt;
- guint32 displayed_ignored_user_range_cnt;
- guint32 displayed_ignored_selection_range_cnt;
+ uint32_t displayed_cnt;
+ uint32_t displayed_plus_dependents_cnt;
+ uint32_t displayed_marked_cnt;
+ uint32_t displayed_mark_range_cnt;
+ uint32_t displayed_user_range_cnt;
+ uint32_t displayed_marked_plus_depends_cnt;
+ uint32_t displayed_mark_range_plus_depends_cnt;
+ uint32_t displayed_user_range_plus_depends_cnt;
+ uint32_t displayed_selection_range_cnt;
+ uint32_t displayed_selected_plus_depends_cnt;
+ uint32_t displayed_ignored_cnt;
+ uint32_t displayed_ignored_marked_cnt;
+ uint32_t displayed_ignored_mark_range_cnt;
+ uint32_t displayed_ignored_user_range_cnt;
+ uint32_t displayed_ignored_selection_range_cnt;
/* Sets of the chosen frames plus any they depend on for each case */
GHashTable *marked_plus_depends;
@@ -94,8 +94,8 @@ typedef struct packet_range_tag {
GHashTable *displayed_selected_plus_depends;
/* "enumeration" values */
- gboolean marked_range_active; /* marked range is currently processed */
- guint32 marked_range_left; /* marked range packets left to do */
+ bool marked_range_active; /* marked range is currently processed */
+ uint32_t marked_range_left; /* marked range packets left to do */
} packet_range_t;
typedef enum {
@@ -117,16 +117,16 @@ extern convert_ret_t packet_range_check(packet_range_t *range);
extern void packet_range_process_init(packet_range_t *range);
/* do we have to process all packets? */
-extern gboolean packet_range_process_all(packet_range_t *range);
+extern bool packet_range_process_all(packet_range_t *range);
/* do we have to process this packet? */
extern range_process_e packet_range_process_packet(packet_range_t *range, frame_data *fdata);
/* convert user given string to the internal user specified range representation */
-extern void packet_range_convert_str(packet_range_t *range, const gchar *es);
+extern void packet_range_convert_str(packet_range_t *range, const char *es);
/* convert user given string to the internal selection specified range representation */
-extern void packet_range_convert_selection_str(packet_range_t *range, const gchar *es);
+extern void packet_range_convert_selection_str(packet_range_t *range, const char *es);
#ifdef __cplusplus
}
diff --git a/ui/persfilepath_opt.c b/ui/persfilepath_opt.c
index feaeb74b58..ee0d420f39 100644
--- a/ui/persfilepath_opt.c
+++ b/ui/persfilepath_opt.c
@@ -24,14 +24,14 @@
* process command line option that affects the paths of the directories
* used for personal files (configuration, saved captures)
*/
-gboolean
+bool
persfilepath_opt(int opt _U_, const char *optstr)
{
- gchar *p, *colonp;
+ char *p, *colonp;
colonp = strchr(optstr, ':');
if (colonp == NULL) {
- return FALSE;
+ return false;
}
p = colonp;
@@ -51,7 +51,7 @@ persfilepath_opt(int opt _U_, const char *optstr)
* looks correct.
*/
*colonp = ':';
- return FALSE;
+ return false;
}
/* directory should be existing */
@@ -63,7 +63,7 @@ persfilepath_opt(int opt _U_, const char *optstr)
* looks correct.
*/
*colonp = ':';
- return FALSE;
+ return false;
}
if (strcmp(optstr,"persconf") == 0) {
@@ -72,8 +72,8 @@ persfilepath_opt(int opt _U_, const char *optstr)
set_persdatafile_dir(p);
} else {
/* XXX - might need to add the temp file path */
- return FALSE;
+ return false;
}
*colonp = ':'; /* put the colon back */
- return TRUE;
+ return true;
}
diff --git a/ui/persfilepath_opt.h b/ui/persfilepath_opt.h
index 8f04cc692a..f408f71d56 100644
--- a/ui/persfilepath_opt.h
+++ b/ui/persfilepath_opt.h
@@ -22,7 +22,7 @@ extern "C" {
* process command line option that affects the paths of the directories
* used for personal files (configuration, saved captures)
*/
-extern gboolean persfilepath_opt(int opt, const char *optstr);
+extern bool persfilepath_opt(int opt, const char *optstr);
#ifdef __cplusplus
}
diff --git a/ui/preference_utils.c b/ui/preference_utils.c
index 749d8d745b..992596a7cc 100644
--- a/ui/preference_utils.c
+++ b/ui/preference_utils.c
@@ -124,10 +124,10 @@ prefs_store_ext(const char * module_name, const char *pref_name, const char *pre
return 0;
}
-gboolean
+bool
prefs_store_ext_multiple(const char * module, GHashTable * pref_values)
{
- gboolean pref_changed = FALSE;
+ bool pref_changed = false;
GList * keys = NULL;
if ( !prefs_is_registered_protocol(module))
@@ -139,13 +139,13 @@ prefs_store_ext_multiple(const char * module, GHashTable * pref_values)
for ( GList * key = keys; key != NULL; key = g_list_next(key) )
{
- gchar * pref_name = (gchar *)key->data;
- gchar * pref_value = (gchar *) g_hash_table_lookup(pref_values, key->data);
+ char * pref_name = (char *)key->data;
+ char * pref_value = (char *) g_hash_table_lookup(pref_values, key->data);
if ( pref_name && pref_value )
{
if ( prefs_store_ext_helper(module, pref_name, pref_value) )
- pref_changed = TRUE;
+ pref_changed = true;
}
}
g_list_free(keys);
@@ -157,15 +157,15 @@ prefs_store_ext_multiple(const char * module, GHashTable * pref_values)
prefs_to_capture_opts();
}
- return TRUE;
+ return true;
}
-gint
-column_prefs_add_custom(gint fmt, const gchar *title, const gchar *custom_fields, gint position)
+int
+column_prefs_add_custom(int fmt, const char *title, const char *custom_fields, int position)
{
GList *clp;
fmt_data *cfmt, *last_cfmt;
- gint colnr;
+ int colnr;
cfmt = g_new(fmt_data, 1);
/*
@@ -177,12 +177,12 @@ column_prefs_add_custom(gint fmt, const gchar *title, const gchar *custom_fields
cfmt->fmt = fmt;
cfmt->custom_fields = g_strdup(custom_fields);
cfmt->custom_occurrence = 0;
- cfmt->resolved = TRUE;
+ cfmt->resolved = true;
colnr = g_list_length(prefs.col_list);
if (custom_fields) {
- cfmt->visible = TRUE;
+ cfmt->visible = true;
clp = g_list_last(prefs.col_list);
last_cfmt = (fmt_data *) clp->data;
if (position > 0 && position <= colnr) {
@@ -197,7 +197,7 @@ column_prefs_add_custom(gint fmt, const gchar *title, const gchar *custom_fields
prefs.col_list = g_list_append(prefs.col_list, cfmt);
}
} else {
- cfmt->visible = FALSE; /* Will be set to TRUE in visible_toggled() when added to list */
+ cfmt->visible = false; /* Will be set to true in visible_toggled() when added to list */
prefs.col_list = g_list_append(prefs.col_list, cfmt);
}
recent_insert_column(colnr);
@@ -205,14 +205,14 @@ column_prefs_add_custom(gint fmt, const gchar *title, const gchar *custom_fields
return colnr;
}
-gint
-column_prefs_has_custom(const gchar *custom_field)
+int
+column_prefs_has_custom(const char *custom_field)
{
GList *clp;
fmt_data *cfmt;
- gint colnr = -1;
+ int colnr = -1;
- for (gint i = 0; i < prefs.num_cols; i++) {
+ for (int i = 0; i < prefs.num_cols; i++) {
clp = g_list_nth(prefs.col_list, i);
if (clp == NULL) /* Sanity check, invalid column requested */
continue;
@@ -227,10 +227,10 @@ column_prefs_has_custom(const gchar *custom_field)
return colnr;
}
-gboolean
-column_prefs_custom_resolve(const gchar* custom_field)
+bool
+column_prefs_custom_resolve(const char* custom_field)
{
- gchar **fields;
+ char **fields;
header_field_info *hfi;
bool resolve = false;
@@ -238,14 +238,14 @@ column_prefs_custom_resolve(const gchar* custom_field)
(GRegexCompileFlags) (G_REGEX_RAW),
0);
- for (guint i = 0; i < g_strv_length(fields); i++) {
+ for (unsigned i = 0; i < g_strv_length(fields); i++) {
if (fields[i] && *fields[i]) {
hfi = proto_registrar_get_byname(fields[i]);
if (hfi && ((hfi->type == FT_OID) || (hfi->type == FT_REL_OID) || (hfi->type == FT_ETHER) || (hfi->type == FT_IPv4) || (hfi->type == FT_IPv6) || (hfi->type == FT_FCWWN) || (hfi->type == FT_BOOLEAN) ||
((hfi->strings != NULL) &&
(FT_IS_INT(hfi->type) || FT_IS_UINT(hfi->type)))))
{
- resolve = TRUE;
+ resolve = true;
break;
}
}
@@ -273,13 +273,13 @@ column_prefs_remove_link(GList *col_link)
}
void
-column_prefs_remove_nth(gint col)
+column_prefs_remove_nth(int col)
{
column_prefs_remove_link(g_list_nth(prefs.col_list, col));
recent_remove_column(col);
}
-void save_migrated_uat(const char *uat_name, gboolean *old_pref)
+void save_migrated_uat(const char *uat_name, bool *old_pref)
{
char *err = NULL;
@@ -291,7 +291,7 @@ void save_migrated_uat(const char *uat_name, gboolean *old_pref)
// Ensure that any old preferences are removed after successful migration.
if (*old_pref) {
- *old_pref = FALSE;
+ *old_pref = false;
prefs_main_write();
}
}
diff --git a/ui/preference_utils.h b/ui/preference_utils.h
index f115f0a458..9f95ebe1f6 100644
--- a/ui/preference_utils.h
+++ b/ui/preference_utils.h
@@ -12,6 +12,8 @@
#ifndef __PREFRENCE_UTILS_H__
#define __PREFRENCE_UTILS_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -23,7 +25,7 @@ extern "C" {
/** If autoscroll in live captures is active or not
*/
-extern gboolean auto_scroll_live;
+extern bool auto_scroll_live;
/** Fill in capture options with values from the preferences
*/
@@ -57,7 +59,7 @@ extern unsigned int prefs_store_ext(const char * module, const char * key, const
*
* @return true if the value has been stored successfully
*/
-extern gboolean prefs_store_ext_multiple(const char * module, GHashTable * pref_values);
+extern bool prefs_store_ext_multiple(const char * module, GHashTable * pref_values);
/** Add a custom column.
*
@@ -68,9 +70,9 @@ extern gboolean prefs_store_ext_multiple(const char * module, GHashTable * pref_
*
* @return The index of the inserted column
*/
-gint column_prefs_add_custom(gint fmt, const gchar *title,
- const gchar *custom_field,
- gint position);
+int column_prefs_add_custom(int fmt, const char *title,
+ const char *custom_field,
+ int position);
/** Check if a custom column exists.
*
@@ -78,7 +80,7 @@ gint column_prefs_add_custom(gint fmt, const gchar *title,
*
* @return The index of the column if existing, -1 if not existing
*/
-gint column_prefs_has_custom(const gchar *custom_field);
+int column_prefs_has_custom(const char *custom_field);
/** Check if a custom column's data can be displayed differently
* resolved or unresolved, e.g. it has a field with a value string.
@@ -89,11 +91,11 @@ gint column_prefs_has_custom(const gchar *custom_field);
*
* @param custom_field column custom field
*
- * @return TRUE if a custom column with the field description
+ * @return true if a custom column with the field description
* would support being displayed differently resolved or unresolved,
- * FALSE otherwise.
+ * false otherwise.
*/
-gboolean column_prefs_custom_resolve(const gchar *custom_field);
+bool column_prefs_custom_resolve(const char *custom_field);
/** Remove a column.
*
@@ -105,12 +107,12 @@ void column_prefs_remove_link(GList* col_link);
*
* @param col Column number
*/
-void column_prefs_remove_nth(gint col);
+void column_prefs_remove_nth(int col);
/** Save the UAT and complete migration of old preferences by writing the main
* preferences file (if necessary).
*/
-void save_migrated_uat(const char *uat_name, gboolean *old_pref);
+void save_migrated_uat(const char *uat_name, bool *old_pref);
#ifdef __cplusplus
}
diff --git a/ui/profile.c b/ui/profile.c
index 59687fac46..04025fda97 100644
--- a/ui/profile.c
+++ b/ui/profile.c
@@ -16,6 +16,9 @@
#include <glib.h>
+#include <epan/prefs.h>
+#include <epan/prefs-int.h>
+
#include <wsutil/filesystem.h>
#include "profile.h"
@@ -26,8 +29,8 @@
#include <wsutil/file_util.h>
#include <wsutil/ws_assert.h>
-static GList *current_profiles = NULL;
-static GList *edited_profiles = NULL;
+static GList *current_profiles;
+static GList *edited_profiles;
#define PROF_OPERATION_NEW 1
#define PROF_OPERATION_EDIT 2
@@ -40,9 +43,12 @@ GList * edited_profile_list(void) {
return g_list_first(edited_profiles);
}
+static void load_profile_settings(profile_def *profile);
+static void save_profile_settings(profile_def *profile);
+
static GList *
add_profile_entry(GList *fl, const char *profilename, const char *reference, int status,
- gboolean is_global, gboolean from_global, gboolean is_import)
+ bool is_global, bool from_global, bool is_import)
{
profile_def *profile;
@@ -65,19 +71,20 @@ remove_profile_entry(GList *fl, GList *fl_entry)
profile = (profile_def *) fl_entry->data;
g_free(profile->name);
g_free(profile->reference);
+ g_free(profile->auto_switch_filter);
g_free(profile);
list = g_list_remove_link(fl, fl_entry);
g_list_free_1(fl_entry);
return list;
}
-const gchar *
-get_profile_parent (const gchar *profilename)
+const char *
+get_profile_parent (const char *profilename)
{
GList *fl_entry = g_list_first(edited_profiles);
- guint no_edited = g_list_length(edited_profiles);
+ unsigned no_edited = g_list_length(edited_profiles);
profile_def *profile;
- guint i;
+ unsigned i;
if (fl_entry) {
/* We have edited profiles, find parent */
@@ -103,13 +110,13 @@ get_profile_parent (const gchar *profilename)
return profilename;
}
-gchar *apply_profile_changes(void)
+char *apply_profile_changes(void)
{
char *pf_dir_path, *pf_dir_path2, *pf_filename;
GList *fl1, *fl2;
profile_def *profile1, *profile2;
- gboolean found;
- gchar *err_msg;
+ bool found;
+ char *err_msg;
/* First validate all profile names */
fl1 = edited_profile_list();
@@ -117,7 +124,7 @@ gchar *apply_profile_changes(void)
profile1 = (profile_def *) fl1->data;
g_strstrip(profile1->name);
if ((err_msg = profile_name_is_valid(profile1->name)) != NULL) {
- gchar *message = ws_strdup_printf("%s\nProfiles unchanged.", err_msg);
+ char *message = ws_strdup_printf("%s\nProfiles unchanged.", err_msg);
g_free(err_msg);
return message;
}
@@ -186,7 +193,7 @@ gchar *apply_profile_changes(void)
profile1->status = PROF_STAT_EXISTS;
g_free (profile1->reference);
profile1->reference = g_strdup(profile1->name);
- profile1->is_import = FALSE;
+ profile1->is_import = false;
}
} else if (profile1->status == PROF_STAT_CHANGED) {
if (strcmp(profile1->reference, profile1->name)!=0) {
@@ -209,7 +216,7 @@ gchar *apply_profile_changes(void)
/* Last remove deleted */
fl1 = current_profile_list();
while (fl1) {
- found = FALSE;
+ found = false;
profile1 = (profile_def *) fl1->data;
fl2 = edited_profile_list();
while (fl2) {
@@ -217,12 +224,12 @@ gchar *apply_profile_changes(void)
if (!profile2->is_global) {
if (strcmp(profile1->name, profile2->name)==0) {
/* Profile exists in both lists */
- found = TRUE;
+ found = true;
} else if (strcmp(profile1->name, profile2->reference)==0) {
/* Profile has been renamed, update reference to the new name */
g_free (profile2->reference);
profile2->reference = g_strdup(profile2->name);
- found = TRUE;
+ found = true;
}
}
fl2 = g_list_next(fl2);
@@ -240,13 +247,24 @@ gchar *apply_profile_changes(void)
fl1 = g_list_next(fl1);
}
+ /* Save our profile settings */
+ for (fl1 = edited_profile_list() ; fl1 ; fl1 = fl1->next) {
+ profile1 = (profile_def *) fl1->data;
+ if (profile1->is_global) {
+ continue;
+ }
+ if (profile1->prefs_changed) {
+ save_profile_settings(profile1);
+ }
+ }
+
copy_profile_list();
return NULL;
}
GList *
add_to_profile_list(const char *name, const char *expression, int status,
- gboolean is_global, gboolean from_global, gboolean is_imported)
+ bool is_global, bool from_global, bool is_imported)
{
edited_profiles = add_profile_entry(edited_profiles, name, expression, status,
is_global, from_global, is_imported);
@@ -261,7 +279,7 @@ remove_from_profile_list(GList *fl_entry)
}
void
-empty_profile_list(gboolean edit_list)
+empty_profile_list(bool edit_list)
{
GList **flpp;
@@ -297,7 +315,7 @@ copy_profile_list(void)
flp_src = edited_profiles;
/* throw away the "old" destination list - a NULL list is ok here */
- empty_profile_list(FALSE);
+ empty_profile_list(false);
/* copy the list entries */
while(flp_src) {
@@ -305,7 +323,12 @@ copy_profile_list(void)
current_profiles = add_profile_entry(current_profiles, profile->name,
profile->reference, profile->status,
- profile->is_global, profile->from_global, FALSE);
+ profile->is_global, profile->from_global, false);
+ if (profile->auto_switch_filter) {
+ profile_def *new_profile = (profile_def *) g_list_last(current_profiles)->data;
+ new_profile->auto_switch_filter = g_strdup(profile->auto_switch_filter);
+ }
+
flp_src = g_list_next(flp_src);
}
}
@@ -315,16 +338,17 @@ init_profile_list(void)
{
WS_DIR *dir; /* scanned directory */
WS_DIRENT *file; /* current file */
- const gchar *name;
+ const char *name;
GList *local_profiles = NULL;
GList *global_profiles = NULL;
- GList *iter;
- gchar *profiles_dir, *filename;
+ GList *iter, *item;
+ char *profiles_dir, *filename;
- empty_profile_list(TRUE);
+ empty_profile_list(true);
/* Default entry */
- add_to_profile_list(DEFAULT_PROFILE, DEFAULT_PROFILE, PROF_STAT_DEFAULT, FALSE, FALSE, FALSE);
+ item = add_to_profile_list(DEFAULT_PROFILE, DEFAULT_PROFILE, PROF_STAT_DEFAULT, false, false, false);
+ load_profile_settings((profile_def *)item->data);
/* Local (user) profiles */
profiles_dir = get_profiles_dir();
@@ -344,8 +368,9 @@ init_profile_list(void)
local_profiles = g_list_sort(local_profiles, (GCompareFunc)g_ascii_strcasecmp);
for (iter = g_list_first(local_profiles); iter; iter = g_list_next(iter)) {
- name = (gchar *)iter->data;
- add_to_profile_list(name, name, PROF_STAT_EXISTS, FALSE, FALSE, FALSE);
+ name = (char *)iter->data;
+ item = add_to_profile_list(name, name, PROF_STAT_EXISTS, false, false, false);
+ load_profile_settings((profile_def *)item->data);
}
g_list_free_full(local_profiles, g_free);
@@ -367,8 +392,8 @@ init_profile_list(void)
global_profiles = g_list_sort(global_profiles, (GCompareFunc)g_ascii_strcasecmp);
for (iter = g_list_first(global_profiles); iter; iter = g_list_next(iter)) {
- name = (gchar *)iter->data;
- add_to_profile_list(name, name, PROF_STAT_EXISTS, TRUE, TRUE, FALSE);
+ name = (char *)iter->data;
+ add_to_profile_list(name, name, PROF_STAT_EXISTS, true, true, false);
}
g_list_free_full(global_profiles, g_free);
@@ -376,26 +401,26 @@ init_profile_list(void)
copy_profile_list ();
}
-gchar *
-profile_name_is_valid(const gchar *name)
+char *
+profile_name_is_valid(const char *name)
{
- gchar *reason = NULL;
- gchar *message;
+ char *reason = NULL;
+ char *message;
#ifdef _WIN32
char *invalid_dir_char = "\\/:*?\"<>|";
- gboolean invalid = FALSE;
+ bool invalid = false;
int i;
for (i = 0; i < 9; i++) {
if (strchr(name, invalid_dir_char[i])) {
/* Invalid character in directory */
- invalid = TRUE;
+ invalid = true;
}
}
if (name[0] == '.' || name[strlen(name)-1] == '.') {
/* Profile name cannot start or end with period */
- invalid = TRUE;
+ invalid = true;
}
if (invalid) {
reason = ws_strdup_printf("start or end with period (.), or contain any of the following characters:\n"
@@ -417,11 +442,11 @@ profile_name_is_valid(const gchar *name)
return NULL;
}
-gboolean delete_current_profile(void) {
- const gchar *name = get_profile_name();
+bool delete_current_profile(void) {
+ const char *name = get_profile_name();
char *pf_dir_path;
- if (profile_exists(name, FALSE) && strcmp (name, DEFAULT_PROFILE) != 0) {
+ if (profile_exists(name, false) && strcmp (name, DEFAULT_PROFILE) != 0) {
if (delete_persconffile_profile(name, &pf_dir_path) == -1) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Can't delete profile directory\n\"%s\":\n%s.",
@@ -429,8 +454,70 @@ gboolean delete_current_profile(void) {
g_free(pf_dir_path);
} else {
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
+}
+
+// Use a settings file in case we ever want to include an author, description,
+// URL, etc.
+#define PROFILE_SETTINGS_FILENAME "profile_settings"
+#define AUTO_SWITCH_FILTER_KEY "auto_switch_filter"
+
+static char *get_profile_settings_path(const char *profile_name) {
+ char *profile_settings_path;
+ char *profile_dir = get_profile_dir(profile_name, false);
+ profile_settings_path = g_build_filename(profile_dir, PROFILE_SETTINGS_FILENAME, NULL);
+ g_free(profile_dir);
+
+ return profile_settings_path;
+}
+
+/* Set */
+static prefs_set_pref_e
+set_profile_setting(char *key, const char *value, void *profile_ptr, bool return_range_errors _U_)
+{
+ profile_def *profile = (profile_def *) profile_ptr;
+ if (strcmp(key, AUTO_SWITCH_FILTER_KEY) == 0) {
+ g_free(profile->auto_switch_filter);
+ profile->auto_switch_filter = g_strdup(value);
+ }
+
+ return PREFS_SET_OK;
+}
+
+static void load_profile_settings(profile_def *profile)
+{
+ char *profile_settings_path = get_profile_settings_path(profile->name);
+ FILE *fp;
+
+ if ((fp = ws_fopen(profile_settings_path, "r")) != NULL) {
+ read_prefs_file(profile_settings_path, fp, set_profile_setting, profile);
+ fclose(fp);
+ }
+ g_free(profile_settings_path);
+}
+
+void save_profile_settings(profile_def *profile)
+{
+ char *profile_settings_path = get_profile_settings_path(profile->name);
+ FILE *fp;
+
+ if ((fp = ws_fopen(profile_settings_path, "w")) == NULL) {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ "Can't open recent file\n\"%s\": %s.", profile_settings_path,
+ g_strerror(errno));
+ g_free(profile_settings_path);
+ return;
+ }
+ g_free(profile_settings_path);
+
+ fprintf(fp, "# \"%s\" profile settings file for %s " VERSION ". Edit with care.\n",
+ profile->name, get_configuration_namespace());
+
+ fprintf(fp, "\n# Automatically switch to this profile if this display filter matches.\n");
+ fprintf(fp, AUTO_SWITCH_FILTER_KEY ": %s\n", profile->auto_switch_filter);
+
+ fclose(fp);
}
diff --git a/ui/profile.h b/ui/profile.h
index ebec39b7a9..9fc89834e0 100644
--- a/ui/profile.h
+++ b/ui/profile.h
@@ -13,6 +13,8 @@
#ifndef __PROFILE_H__
#define __PROFILE_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -33,9 +35,12 @@ typedef struct {
char *name; /* profile name */
char *reference; /* profile reference */
int status;
- gboolean is_global;
- gboolean from_global;
- gboolean is_import;
+ bool is_global;
+ bool from_global;
+ bool is_import;
+ // Settings
+ bool prefs_changed;
+ char *auto_switch_filter;
} profile_def;
/** @file
@@ -59,7 +64,7 @@ void init_profile_list(void);
* @return A pointer to the new profile list
*/
GList *add_to_profile_list(const char *name, const char *parent, int status,
- gboolean is_global, gboolean from_global, gboolean is_import);
+ bool is_global, bool from_global, bool is_import);
/** Refresh the current (non-edited) profile list.
*/
@@ -69,7 +74,7 @@ void copy_profile_list(void);
*
* @param edit_list Remove edited entries
*/
-void empty_profile_list(gboolean edit_list);
+void empty_profile_list(bool edit_list);
/** Remove an entry from the profile list.
*
@@ -93,7 +98,7 @@ GList * edited_profile_list(void);
* @return NULL if the operation was successful or an error message otherwise.
* The error message must be freed by the caller.
*/
-gchar *apply_profile_changes(void);
+char *apply_profile_changes(void);
/** Given a profile name, return the name of its parent profile.
*
@@ -101,21 +106,21 @@ gchar *apply_profile_changes(void);
*
* @return Parent profile name
*/
-const gchar *get_profile_parent (const gchar *profilename);
+const char *get_profile_parent(const char *profilename);
/** Check the validity of a profile name.
*
* @param name Profile name
* @return NULL if the name is valid or an error message otherwise.
*/
-gchar *profile_name_is_valid(const gchar *name);
+char *profile_name_is_valid(const char *name);
/** Remove the current profile.
*
- * @return TRUE if the current profile exists and was successfully deleted
- * or FALSE otherwise.
+ * @return true if the current profile exists and was successfully deleted
+ * or false otherwise.
*/
-gboolean delete_current_profile(void);
+bool delete_current_profile(void);
#ifdef __cplusplus
}
diff --git a/ui/progress_dlg.h b/ui/progress_dlg.h
index bdcb147c03..be788ae50b 100644
--- a/ui/progress_dlg.h
+++ b/ui/progress_dlg.h
@@ -37,15 +37,15 @@ typedef struct progdlg progdlg_t;
* the main window.
* @param task_title The task to do, e.g. "Loading"
* @param item_title The item to do, e.g. "capture.cap"
- * @param terminate_is_stop TRUE if the operation can't be cancelled, just
+ * @param terminate_is_stop true if the operation can't be cancelled, just
* stopped (i.e., it has a "Stop" button and clicking it doesn't undo
- * anything already done), FALSE if it can
+ * anything already done), false if it can
* @param stop_flag A pointer to a Boolean variable that will be
- * set to TRUE if the user hits that button
+ * set to true if the user hits that button
* @return The newly created progress dialog
*/
-progdlg_t *create_progress_dlg(gpointer top_level_window, const gchar *task_title, const gchar *item_title,
- gboolean terminate_is_stop, gboolean *stop_flag);
+progdlg_t *create_progress_dlg(void *top_level_window, const char *task_title, const char *item_title,
+ bool terminate_is_stop, bool *stop_flag);
/**
* Create a progress dialog, but only if it's not likely to disappear
@@ -55,16 +55,16 @@ progdlg_t *create_progress_dlg(gpointer top_level_window, const gchar *task_titl
* May be NULL.
* @param task_title The task to do, e.g. "Loading"
* @param item_title The item to do, e.g. "capture.cap"
- * @param terminate_is_stop TRUE if the operation can't be cancelled, just
+ * @param terminate_is_stop true if the operation can't be cancelled, just
* stopped (i.e., it has a "Stop" button and clicking it doesn't undo
- * anything already done), FALSE if it can
+ * anything already done), false if it can
* @param stop_flag A pointer to a Boolean variable that will be
- * set to TRUE if the user hits that button
+ * set to true if the user hits that button
* @param progress The current progress (0..1)
* @return The newly created progress dialog
*/
-progdlg_t *delayed_create_progress_dlg(gpointer top_level_window, const gchar *task_title, const gchar *item_title,
- gboolean terminate_is_stop, gboolean *stop_flag, gfloat progress);
+progdlg_t *delayed_create_progress_dlg(void *top_level_window, const char *task_title, const char *item_title,
+ bool terminate_is_stop, bool *stop_flag, float progress);
/**
* Update the progress information of the progress dialog box.
@@ -73,7 +73,7 @@ progdlg_t *delayed_create_progress_dlg(gpointer top_level_window, const gchar *t
* @param percentage The current percentage value (0..1)
* @param status the New status string to show, e.g. "3000KB of 6000KB"
*/
-void update_progress_dlg(progdlg_t *dlg, gfloat percentage, const gchar *status);
+void update_progress_dlg(progdlg_t *dlg, float percentage, const char *status);
/**
* Destroy or hide the progress bar.
diff --git a/ui/proto_hier_stats.c b/ui/proto_hier_stats.c
index 6069b008f2..f7aea2bef7 100644
--- a/ui/proto_hier_stats.c
+++ b/ui/proto_hier_stats.c
@@ -29,10 +29,10 @@
static int pc_proto_id = -1;
static GNode*
-find_stat_node(GNode *parent_stat_node, header_field_info *needle_hfinfo)
+find_stat_node(GNode *parent_stat_node, const header_field_info *needle_hfinfo)
{
GNode *needle_stat_node, *up_parent_stat_node;
- header_field_info *hfinfo;
+ const header_field_info *hfinfo;
ph_stats_node_t *stats;
/* Look down the tree */
@@ -157,7 +157,7 @@ process_tree(proto_tree *protocol_tree, ph_stats_t* ps)
process_node(ptree_node, ps->stats_tree, ps);
}
- static gboolean
+ static bool
process_record(capture_file *cf, frame_data *frame, column_info *cinfo,
wtap_rec *rec, Buffer *buf, ph_stats_t* ps)
{
@@ -166,12 +166,12 @@ process_record(capture_file *cf, frame_data *frame, column_info *cinfo,
/* Load the record from the capture file */
if (!cf_read_record(cf, frame, rec, buf))
- return FALSE; /* failure */
+ return false; /* failure */
/* Dissect the record tree not visible */
- epan_dissect_init(&edt, cf->epan, TRUE, FALSE);
+ epan_dissect_init(&edt, cf->epan, true, false);
/* Don't fake protocols. We need them for the protocol hierarchy */
- epan_dissect_fake_protocols(&edt, FALSE);
+ epan_dissect_fake_protocols(&edt, false);
epan_dissect_run(&edt, cf->cd_t, rec,
frame_tvbuff_new_buffer(&cf->provider, frame, buf),
frame, cinfo);
@@ -191,21 +191,21 @@ process_record(capture_file *cf, frame_data *frame, column_info *cinfo,
/* Free our memory. */
epan_dissect_cleanup(&edt);
- return TRUE; /* success */
+ return true; /* success */
}
ph_stats_t*
ph_stats_new(capture_file *cf)
{
ph_stats_t *ps;
- guint32 framenum;
+ uint32_t framenum;
frame_data *frame;
progdlg_t *progbar = NULL;
int count;
wtap_rec rec;
Buffer buf;
float progbar_val;
- gchar status_str[100];
+ char status_str[100];
int progbar_nextstep;
int progbar_quantum;
@@ -215,9 +215,9 @@ ph_stats_new(capture_file *cf)
ws_warning("Failing to compute protocol hierarchy stats on \"%s\" since a read is in progress", cf->filename);
return NULL;
}
- cf->read_lock = TRUE;
+ cf->read_lock = true;
- cf->stop_flag = FALSE;
+ cf->stop_flag = false;
pc_proto_id = proto_registrar_get_id_byname("pkt_comment");
@@ -255,7 +255,7 @@ ph_stats_new(capture_file *cf)
progbar = delayed_create_progress_dlg(
cf->window, "Computing",
"protocol hierarchy statistics",
- TRUE, &cf->stop_flag, progbar_val);
+ true, &cf->stop_flag, progbar_val);
/* Update the progress bar, but do it only N_PROGBAR_UPDATES
times; when we update it, we have to run the GTK+ main
@@ -269,7 +269,7 @@ ph_stats_new(capture_file *cf)
*/
ws_assert(cf->count > 0);
- progbar_val = (gfloat) count / cf->count;
+ progbar_val = (float) count / cf->count;
if (progbar != NULL) {
snprintf(status_str, sizeof(status_str),
@@ -315,7 +315,7 @@ ph_stats_new(capture_file *cf)
* just abort rather than popping up
* the statistics window.
*/
- cf->stop_flag = TRUE;
+ cf->stop_flag = true;
break;
}
@@ -344,17 +344,17 @@ ph_stats_new(capture_file *cf)
}
ws_assert(cf->read_lock);
- cf->read_lock = FALSE;
+ cf->read_lock = false;
return ps;
}
static gboolean
-stat_node_free(GNode *node, gpointer data _U_)
+stat_node_free(GNode *node, void *data _U_)
{
ph_stats_node_t *stats = (ph_stats_node_t *)node->data;
g_free(stats);
- return FALSE;
+ return false;
}
void
diff --git a/ui/proto_hier_stats.h b/ui/proto_hier_stats.h
index 1ba092610a..222d2c2529 100644
--- a/ui/proto_hier_stats.h
+++ b/ui/proto_hier_stats.h
@@ -22,19 +22,19 @@ extern "C" {
*/
typedef struct {
- header_field_info *hfinfo;
- guint num_pkts_total;
- guint num_pdus_total;
- guint num_pkts_last;
- guint num_bytes_total;
- guint num_bytes_last;
- guint last_pkt;
+ const header_field_info *hfinfo;
+ unsigned num_pkts_total;
+ unsigned num_pdus_total;
+ unsigned num_pkts_last;
+ unsigned num_bytes_total;
+ unsigned num_bytes_last;
+ unsigned last_pkt;
} ph_stats_node_t;
typedef struct {
- guint tot_packets;
- guint tot_bytes;
+ unsigned tot_packets;
+ unsigned tot_bytes;
GNode *stats_tree;
double first_time; /* seconds (msec resolution) of first packet */
double last_time; /* seconds (msec resolution) of last packet */
diff --git a/ui/qt/CMakeLists.txt b/ui/qt/CMakeLists.txt
index 8d2f1b67bd..187f609392 100644
--- a/ui/qt/CMakeLists.txt
+++ b/ui/qt/CMakeLists.txt
@@ -45,7 +45,10 @@ set(WIRESHARK_WIDGET_HEADERS
widgets/path_selection_edit.h
widgets/pref_module_view.h
widgets/profile_tree_view.h
+ widgets/qcp_axis_ticker_si.h
+ widgets/qcp_string_legend_item.h
widgets/range_syntax_lineedit.h
+ widgets/resize_header_view.h
widgets/resolved_addresses_view.h
widgets/rtp_audio_graph.h
widgets/splash_overlay.h
@@ -74,6 +77,7 @@ set(WIRESHARK_UTILS_HEADERS
utils/field_information.h
utils/frame_information.h
utils/idata_printable.h
+ utils/profile_switcher.h
utils/proto_node.h
utils/qt_ui_utils.h
utils/rtp_audio_file.h
@@ -173,7 +177,6 @@ set(WIRESHARK_QT_HEADERS
file_set_dialog.h
filter_action.h
filter_dialog.h
- filter_dialog.h
filter_expression_frame.h
firewall_rules_dialog.h
follow_stream_action.h
@@ -191,6 +194,7 @@ set(WIRESHARK_QT_HEADERS
interface_toolbar_reader.h
interface_toolbar.h
io_console_dialog.h
+ io_graph_action.h
io_graph_dialog.h
layout_preferences_frame.h
lbm_lbtrm_transport_dialog.h
@@ -307,7 +311,10 @@ set(WIRESHARK_WIDGET_SRCS
widgets/path_selection_edit.cpp
widgets/pref_module_view.cpp
widgets/profile_tree_view.cpp
+ widgets/qcp_axis_ticker_si.cpp
+ widgets/qcp_string_legend_item.cpp
widgets/range_syntax_lineedit.cpp
+ widgets/resize_header_view.cpp
widgets/resolved_addresses_view.cpp
widgets/rtp_audio_graph.cpp
widgets/splash_overlay.cpp
@@ -335,6 +342,7 @@ set(WIRESHARK_UTILS_SRCS
utils/data_printer.cpp
utils/field_information.cpp
utils/frame_information.cpp
+ utils/profile_switcher.cpp
utils/proto_node.cpp
utils/qt_ui_utils.cpp
utils/rtp_audio_file.cpp
@@ -443,6 +451,7 @@ set(WIRESHARK_QT_SRC
interface_toolbar_reader.cpp
interface_toolbar.cpp
io_console_dialog.cpp
+ io_graph_action.cpp
layout_preferences_frame.cpp
lbm_lbtrm_transport_dialog.cpp
lbm_lbtru_transport_dialog.cpp
@@ -804,6 +813,9 @@ if(USE_qt6)
if(Qt6Multimedia_FOUND)
target_link_libraries(qtui PUBLIC Qt6::Multimedia)
endif()
+ if(Qt6DBus_FOUND)
+ target_link_libraries(qtui PUBLIC Qt6::DBus)
+ endif()
endif()
target_include_directories(qtui
diff --git a/ui/qt/about_dialog.cpp b/ui/qt/about_dialog.cpp
index 2a8192e77a..daeb3acd39 100644
--- a/ui/qt/about_dialog.cpp
+++ b/ui/qt/about_dialog.cpp
@@ -60,8 +60,6 @@
#include <QMessageBox>
#include <QPlainTextEdit>
-#define PLUGIN_PATH_COLUMN 5
-
AuthorListModel::AuthorListModel(QObject * parent) :
AStringListListModel(parent)
{
@@ -98,27 +96,13 @@ QStringList AuthorListModel::headerColumns() const
return QStringList() << tr("Name") << tr("Email");
}
-static const char *
-scope_to_str(plugin_scope_e scope)
-{
- switch (scope) {
- case WS_PLUGIN_SCOPE_NONE : return "";
- case WS_PLUGIN_SCOPE_USER: return "personal";
- case WS_PLUGIN_SCOPE_GLOBAL: return "global";
- case WS_PLUGIN_SCOPE_CLI: return "cli";
- }
- return "";
-}
-
+#ifdef HAVE_PLUGINS
static void plugins_add_description(const char *name, const char *version,
- uint32_t flags, const char *spdx_id _U_,
- const char *blurb, const char *home_url,
- const char *filename, plugin_scope_e scope,
+ uint32_t flags, const char *filename,
void *user_data)
{
QList<QStringList> *plugin_data = (QList<QStringList> *)user_data;
QStringList plugin_types;
-
if (flags & WS_PLUGIN_DESC_DISSECTOR)
plugin_types << "dissector";
if (flags & WS_PLUGIN_DESC_FILE_TYPE)
@@ -129,58 +113,36 @@ static void plugins_add_description(const char *name, const char *version,
plugin_types << "epan";
if (flags & WS_PLUGIN_DESC_TAP_LISTENER)
plugin_types << "tap listener";
- if (flags & WS_PLUGIN_DESC_DFUNCTION)
- plugin_types << "dfunction";
+ if (flags & WS_PLUGIN_DESC_DFILTER)
+ plugin_types << "dfilter";
if (plugin_types.empty())
plugin_types << "unknown";
-
- QStringList plugin_row = QStringList() << name << version << plugin_types.join(", ")
- << scope_to_str(scope) << blurb << filename << home_url;
- *plugin_data << plugin_row;
-}
-
-#ifdef HAVE_LUA
-// This exists only to add "lua script" to the type, otherwise we could use
-// plugins_add_description(). Eventually lua scripts
-// should support plugin functional flags too
-// and the "lua script" type can be dropped, or moved to
-// a new binary/lua/extcap type column (but not really).
-static void wslua_plugins_add_description(const char *name, const char *version,
- uint32_t flags _U_, const char *spdx_id _U_,
- const char *blurb, const char *home_url,
- const char *filename, plugin_scope_e scope,
- void *user_data)
-{
- QList<QStringList> *plugin_data = (QList<QStringList> *)user_data;
- QStringList plugin_row = QStringList() << name << version << "lua script"
- << scope_to_str(scope) << blurb << filename << home_url;
+ QStringList plugin_row = QStringList() << name << version << plugin_types.join(", ") << filename;
*plugin_data << plugin_row;
}
#endif
-static void extcap_plugins_add_description(const char *name, const char *version,
+static void other_plugins_add_description(const char *name, const char *version,
const char *types, const char *filename,
void *user_data)
{
QList<QStringList> *plugin_data = (QList<QStringList> *)user_data;
- QStringList plugin_row = QStringList() << name << version << types
- << "" << "" << filename << "";
+ QStringList plugin_row = QStringList() << name << version << types << filename;
*plugin_data << plugin_row;
}
PluginListModel::PluginListModel(QObject *parent) : AStringListListModel(parent)
{
QList<QStringList> plugin_data;
-
+#ifdef HAVE_PLUGINS
plugins_get_descriptions(plugins_add_description, &plugin_data);
-
- epan_plugins_get_descriptions(plugins_add_description, &plugin_data);
+#endif
#ifdef HAVE_LUA
- wslua_plugins_get_descriptions(wslua_plugins_add_description, &plugin_data);
+ wslua_plugins_get_descriptions(other_plugins_add_description, &plugin_data);
#endif
- extcap_get_descriptions(extcap_plugins_add_description, &plugin_data);
+ extcap_get_descriptions(other_plugins_add_description, &plugin_data);
typeNames_ << QString("");
foreach(QStringList row, plugin_data)
@@ -201,8 +163,7 @@ QStringList PluginListModel::typeNames() const
QStringList PluginListModel::headerColumns() const
{
- return QStringList() << tr("Name") << tr("Version") << tr("Type")
- << tr("Scope") << tr("Description") << tr("Path") << tr("Homepage");
+ return QStringList() << tr("Name") << tr("Version") << tr("Type") << tr("Path");
}
ShortcutListModel::ShortcutListModel(QObject * parent):
@@ -248,7 +209,7 @@ FolderListModel::FolderListModel(QObject * parent):
/* pers conf */
appendRow(QStringList() << tr("Personal configuration")
- << gchar_free_to_qstring(get_persconffile_path("", FALSE))
+ << gchar_free_to_qstring(get_persconffile_path("", false))
<< tr("Preferences, profiles, manuf, …"));
/* global conf */
@@ -264,13 +225,13 @@ FolderListModel::FolderListModel(QObject * parent):
/* program */
appendRow(QStringList() << tr("Program") << get_progfile_dir() << tr("Program files"));
- if (plugins_supported()) {
- /* pers plugins */
- appendRow(QStringList() << tr("Personal Plugins") << get_plugins_pers_dir() << tr("Binary plugins"));
+#ifdef HAVE_PLUGINS
+ /* pers plugins */
+ appendRow(QStringList() << tr("Personal Plugins") << get_plugins_pers_dir_with_version() << tr("Binary plugins"));
- /* global plugins */
- appendRow(QStringList() << tr("Global Plugins") << get_plugins_dir() << tr("Binary plugins"));
- }
+ /* global plugins */
+ appendRow(QStringList() << tr("Global Plugins") << get_plugins_dir_with_version() << tr("Binary plugins"));
+#endif
#ifdef HAVE_LUA
/* pers plugins */
@@ -387,8 +348,8 @@ AboutDialog::AboutDialog(QWidget *parent) :
ui->tblPlugins->setRootIsDecorated(false);
UrlLinkDelegate *plugin_delegate = new UrlLinkDelegate(this);
script_pattern = QString("\\.(lua|py)$");
- plugin_delegate->setColCheck(PLUGIN_PATH_COLUMN, script_pattern);
- ui->tblPlugins->setItemDelegateForColumn(PLUGIN_PATH_COLUMN, plugin_delegate);
+ plugin_delegate->setColCheck(3, script_pattern);
+ ui->tblPlugins->setItemDelegateForColumn(3, plugin_delegate);
ui->cmbType->addItems(pluginModel->typeNames());
ui->tblPlugins->setContextMenuPolicy(Qt::CustomContextMenu);
ui->tblPlugins->setTextElideMode(Qt::ElideMiddle);
@@ -628,7 +589,7 @@ void AboutDialog::showInFolderActionTriggered()
foreach (QModelIndex index, selectedRows)
{
- QString cf_path = tree->model()->index(index.row(), PLUGIN_PATH_COLUMN).data().toString();
+ QString cf_path = tree->model()->index(index.row(), 3).data().toString();
desktop_show_in_folder(cf_path);
}
}
@@ -701,7 +662,7 @@ void AboutDialog::copyActionTriggered(bool copyRow)
void AboutDialog::on_tblPlugins_doubleClicked(const QModelIndex &index)
{
- const int path_col = PLUGIN_PATH_COLUMN;
+ const int path_col = 3;
if (index.column() != path_col) {
return;
}
diff --git a/ui/qt/accordion_frame.cpp b/ui/qt/accordion_frame.cpp
index 8f8cc43022..bc1a77d515 100644
--- a/ui/qt/accordion_frame.cpp
+++ b/ui/qt/accordion_frame.cpp
@@ -8,7 +8,6 @@
*/
#include "config.h"
-#include <glib.h>
#include "accordion_frame.h"
@@ -104,4 +103,4 @@ void AccordionFrame::updateStyleSheet()
#endif
setStyleSheet(style_sheet);
-} \ No newline at end of file
+}
diff --git a/ui/qt/address_editor_frame.cpp b/ui/qt/address_editor_frame.cpp
index 8798266e6e..034ac27b7c 100644
--- a/ui/qt/address_editor_frame.cpp
+++ b/ui/qt/address_editor_frame.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include "file.h"
#include "frame_tvbuff.h"
@@ -127,13 +125,13 @@ void AddressEditorFrame::editAddresses(CaptureFile &cf, int column)
// have one in cap_file_->edt->tree as we have a current frame), but
// this is only a single frame that's previously been dissected so
// the performance hit is slight anyway.
- epan_dissect_init(&edt, cap_file_->epan, TRUE, TRUE);
+ epan_dissect_init(&edt, cap_file_->epan, true, true);
col_custom_prime_edt(&edt, &cap_file_->cinfo);
epan_dissect_run(&edt, cap_file_->cd_t, &cap_file_->rec,
frame_tvbuff_new_buffer(&cap_file_->provider, cap_file_->current_frame, &cap_file_->buf),
cap_file_->current_frame, &cap_file_->cinfo);
- epan_dissect_fill_in_columns(&edt, TRUE, TRUE);
+ epan_dissect_fill_in_columns(&edt, true, true);
addAddresses(ProtoNode(edt.tree), addresses);
diff --git a/ui/qt/bluetooth_att_server_attributes_dialog.cpp b/ui/qt/bluetooth_att_server_attributes_dialog.cpp
index e6c93204b0..fae39f9233 100644
--- a/ui/qt/bluetooth_att_server_attributes_dialog.cpp
+++ b/ui/qt/bluetooth_att_server_attributes_dialog.cpp
@@ -98,9 +98,9 @@ BluetoothAttServerAttributesDialog::~BluetoothAttServerAttributesDialog()
void BluetoothAttServerAttributesDialog::captureFileClosed()
{
- ui->interfaceComboBox->setEnabled(FALSE);
- ui->deviceComboBox->setEnabled(FALSE);
- ui->removeDuplicatesCheckBox->setEnabled(FALSE);
+ ui->interfaceComboBox->setEnabled(false);
+ ui->deviceComboBox->setEnabled(false);
+ ui->removeDuplicatesCheckBox->setEnabled(false);
WiresharkDialog::captureFileClosed();
}
@@ -170,11 +170,11 @@ void BluetoothAttServerAttributesDialog::on_actionMark_Unmark_Row_triggered()
QBrush fg;
QBrush bg;
- bool is_marked = TRUE;
+ bool is_marked = true;
for (int i = 0; i < ui->tableTreeWidget->columnCount(); i += 1) {
if (current_item->background(i) != QBrush(ColorUtils::fromColorT(&prefs.gui_marked_bg)))
- is_marked = FALSE;
+ is_marked = false;
}
if (is_marked) {
@@ -245,7 +245,7 @@ tap_packet_status BluetoothAttServerAttributesDialog::tapPacket(void *tapinfo_pt
QString handle;
QString uuid;
QString uuid_name;
- gchar *addr = NULL;
+ char *addr = NULL;
if (dialog->file_closed_)
return TAP_PACKET_DONT_REDRAW;
@@ -254,7 +254,7 @@ tap_packet_status BluetoothAttServerAttributesDialog::tapPacket(void *tapinfo_pt
return TAP_PACKET_DONT_REDRAW;
if (pinfo->rec->presence_flags & WTAP_HAS_INTERFACE_ID) {
- gchar *interface;
+ char *interface;
const char *interface_name;
unsigned section_number = pinfo->rec->presence_flags & WTAP_HAS_SECTION_NUMBER ? pinfo->rec->section_number : 0;
@@ -337,7 +337,7 @@ void BluetoothAttServerAttributesDialog::on_tableTreeWidget_itemActivated(QTreeW
if (file_closed_)
return;
- guint32 frame_number = item->data(0, Qt::UserRole).value<guint32>();
+ uint32_t frame_number = item->data(0, Qt::UserRole).value<uint32_t>();
emit goToPacket(frame_number);
}
diff --git a/ui/qt/bluetooth_att_server_attributes_dialog.h b/ui/qt/bluetooth_att_server_attributes_dialog.h
index 2d2a4f882a..b377d9ccc8 100644
--- a/ui/qt/bluetooth_att_server_attributes_dialog.h
+++ b/ui/qt/bluetooth_att_server_attributes_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "wireshark_dialog.h"
#include "cfile.h"
diff --git a/ui/qt/bluetooth_device_dialog.cpp b/ui/qt/bluetooth_device_dialog.cpp
index 6e679b8a81..0c5d263484 100644
--- a/ui/qt/bluetooth_device_dialog.cpp
+++ b/ui/qt/bluetooth_device_dialog.cpp
@@ -95,12 +95,12 @@ bluetooth_devices_tap(void *data)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
-BluetoothDeviceDialog::BluetoothDeviceDialog(QWidget &parent, CaptureFile &cf, QString bdAddr, QString name, guint32 interface_id, guint32 adapter_id, gboolean is_local) :
+BluetoothDeviceDialog::BluetoothDeviceDialog(QWidget &parent, CaptureFile &cf, QString bdAddr, QString name, uint32_t interface_id, uint32_t adapter_id, bool is_local) :
WiresharkDialog(parent, cf),
ui(new Ui::BluetoothDeviceDialog)
{
@@ -234,7 +234,7 @@ void BluetoothDeviceDialog::on_actionMark_Unmark_Row_triggered()
{
QBrush fg;
QBrush bg;
- bool is_marked = TRUE;
+ bool is_marked = true;
QTableWidgetItem *current_item = ui->tableWidget->currentItem();
if (!current_item)
@@ -243,7 +243,7 @@ void BluetoothDeviceDialog::on_actionMark_Unmark_Row_triggered()
for (int i = 0; i < ui->tableWidget->columnCount(); i += 1) {
QTableWidgetItem *item = ui->tableWidget->item(current_item->row(), i);
if (item->background() != QBrush(ColorUtils::fromColorT(&prefs.gui_marked_bg)))
- is_marked = FALSE;
+ is_marked = false;
}
if (is_marked) {
@@ -339,7 +339,7 @@ void BluetoothDeviceDialog::tapReset(void *tapinfo_ptr)
*tapinfo->changes = 0;
}
-void BluetoothDeviceDialog::updateChanges(QTableWidget *tableWidget, QString value, const int row, guint *changes, packet_info *pinfo)
+void BluetoothDeviceDialog::updateChanges(QTableWidget *tableWidget, QString value, const int row, unsigned *changes, packet_info *pinfo)
{
QTableWidgetItem *item = tableWidget->item(row, column_number_value);
bluetooth_item_data_t *item_data = VariantPointer<bluetooth_item_data_t>::asPtr(item->data(Qt::UserRole));
@@ -379,7 +379,7 @@ tap_packet_status BluetoothDeviceDialog::tapPacket(void *tapinfo_ptr, packet_inf
bluetooth_device_tap_t *tap_device = static_cast<bluetooth_device_tap_t *>(const_cast<void *>(data));
QString bd_addr;
QString bd_addr_oui;
- const gchar *manuf;
+ const char *manuf;
QTableWidget *tableWidget;
QTableWidgetItem *item;
QString field;
diff --git a/ui/qt/bluetooth_device_dialog.h b/ui/qt/bluetooth_device_dialog.h
index 7ae37bce59..a0b408f08c 100644
--- a/ui/qt/bluetooth_device_dialog.h
+++ b/ui/qt/bluetooth_device_dialog.h
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include "wireshark_dialog.h"
#include "cfile.h"
@@ -32,18 +30,18 @@ typedef struct _bluetooth_device_tapinfo_t {
tap_reset_cb tap_reset;
tap_packet_cb tap_packet;
QString bdAddr;
- guint32 interface_id;
- guint32 adapter_id;
- gboolean is_local;
+ uint32_t interface_id;
+ uint32_t adapter_id;
+ bool is_local;
void *ui;
- guint *changes;
+ unsigned *changes;
} bluetooth_device_tapinfo_t;
typedef struct _bluetooth_item_data_t {
- guint32 interface_id;
- guint32 adapter_id;
- guint32 frame_number;
- gint changes;
+ uint32_t interface_id;
+ uint32_t adapter_id;
+ uint32_t frame_number;
+ int changes;
} bluetooth_item_data_t;
namespace Ui {
@@ -55,7 +53,7 @@ class BluetoothDeviceDialog : public WiresharkDialog
Q_OBJECT
public:
- explicit BluetoothDeviceDialog(QWidget &parent, CaptureFile &cf, QString bdAddr, QString name, guint32 interface_id, guint32 adapter_id, gboolean is_local);
+ explicit BluetoothDeviceDialog(QWidget &parent, CaptureFile &cf, QString bdAddr, QString name, uint32_t interface_id, uint32_t adapter_id, bool is_local);
~BluetoothDeviceDialog();
public slots:
@@ -77,11 +75,11 @@ private:
bluetooth_device_tapinfo_t tapinfo_;
QMenu context_menu_;
- guint changes_;
+ unsigned changes_;
static void tapReset(void *tapinfo_ptr);
static tap_packet_status tapPacket(void *tapinfo_ptr, packet_info *pinfo, epan_dissect_t *, const void *data, tap_flags_t flags);
- static void updateChanges(QTableWidget *tableWidget, QString value, const int row, guint *changes, packet_info *pinfo);
+ static void updateChanges(QTableWidget *tableWidget, QString value, const int row, unsigned *changes, packet_info *pinfo);
static void saveItemData(QTableWidgetItem *item, bluetooth_device_tap_t *tap_device, packet_info *pinfo);
private slots:
diff --git a/ui/qt/bluetooth_devices_dialog.cpp b/ui/qt/bluetooth_devices_dialog.cpp
index 9bd6f624e6..0772b3d722 100644
--- a/ui/qt/bluetooth_devices_dialog.cpp
+++ b/ui/qt/bluetooth_devices_dialog.cpp
@@ -112,8 +112,8 @@ BluetoothDevicesDialog::~BluetoothDevicesDialog()
void BluetoothDevicesDialog::captureFileClosed()
{
- ui->interfaceComboBox->setEnabled(FALSE);
- ui->showInformationStepsCheckBox->setEnabled(FALSE);
+ ui->interfaceComboBox->setEnabled(false);
+ ui->showInformationStepsCheckBox->setEnabled(false);
WiresharkDialog::captureFileClosed();
}
@@ -187,11 +187,11 @@ void BluetoothDevicesDialog::on_actionMark_Unmark_Row_triggered()
{
QBrush fg;
QBrush bg;
- bool is_marked = TRUE;
+ bool is_marked = true;
for (int i = 0; i < ui->tableTreeWidget->columnCount(); i += 1) {
if (ui->tableTreeWidget->currentItem()->background(i) != QBrush(ColorUtils::fromColorT(&prefs.gui_marked_bg)))
- is_marked = FALSE;
+ is_marked = false;
}
if (is_marked) {
@@ -260,7 +260,7 @@ tap_packet_status BluetoothDevicesDialog::tapPacket(void *tapinfo_ptr, packet_in
bluetooth_device_tap_t *tap_device = static_cast<bluetooth_device_tap_t *>(const_cast<void *>(data));
QString bd_addr;
QString bd_addr_oui;
- const gchar *manuf;
+ const char *manuf;
QTreeWidgetItem *item = NULL;
if (dialog->file_closed_)
@@ -270,7 +270,7 @@ tap_packet_status BluetoothDevicesDialog::tapPacket(void *tapinfo_ptr, packet_in
return TAP_PACKET_DONT_REDRAW;
if (pinfo->rec->presence_flags & WTAP_HAS_INTERFACE_ID) {
- gchar *interface;
+ char *interface;
const char *interface_name;
unsigned section_number = pinfo->rec->presence_flags & WTAP_HAS_SECTION_NUMBER ? pinfo->rec->section_number : 0;
diff --git a/ui/qt/bluetooth_devices_dialog.h b/ui/qt/bluetooth_devices_dialog.h
index cf78d9a0a4..d26039d70b 100644
--- a/ui/qt/bluetooth_devices_dialog.h
+++ b/ui/qt/bluetooth_devices_dialog.h
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include "wireshark_dialog.h"
#include "cfile.h"
#include "packet_list.h"
diff --git a/ui/qt/bluetooth_hci_summary_dialog.cpp b/ui/qt/bluetooth_hci_summary_dialog.cpp
index a29206cdd6..c0fec3a806 100644
--- a/ui/qt/bluetooth_hci_summary_dialog.cpp
+++ b/ui/qt/bluetooth_hci_summary_dialog.cpp
@@ -80,7 +80,7 @@ bluetooth_hci_summary_tap_init(void *data)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -157,8 +157,8 @@ void BluetoothHciSummaryDialog::captureFileClosing()
void BluetoothHciSummaryDialog::captureFileClosed()
{
- ui->interfaceComboBox->setEnabled(FALSE);
- ui->adapterComboBox->setEnabled(FALSE);
+ ui->interfaceComboBox->setEnabled(false);
+ ui->adapterComboBox->setEnabled(false);
WiresharkDialog::captureFileClosed();
}
@@ -232,11 +232,11 @@ void BluetoothHciSummaryDialog::on_actionMark_Unmark_Row_triggered()
{
QBrush fg;
QBrush bg;
- bool is_marked = TRUE;
+ bool is_marked = true;
for (int i = 0; i < ui->tableTreeWidget->columnCount(); i += 1) {
if (ui->tableTreeWidget->currentItem()->background(i) != QBrush(ColorUtils::fromColorT(&prefs.gui_marked_bg)))
- is_marked = FALSE;
+ is_marked = false;
}
if (is_marked) {
@@ -360,7 +360,7 @@ tap_packet_status BluetoothHciSummaryDialog::tapPacket(void *tapinfo_ptr, packet
name = tr("Unknown");
if (pinfo->rec->presence_flags & WTAP_HAS_INTERFACE_ID) {
- gchar *interface;
+ char *interface;
const char *interface_name;
unsigned section_number = pinfo->rec->presence_flags & WTAP_HAS_SECTION_NUMBER ? pinfo->rec->section_number : 0;
@@ -916,7 +916,7 @@ void BluetoothHciSummaryDialog::displayFilterLineEditAccepted()
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
cap_file_.retapPackets();
diff --git a/ui/qt/bluetooth_hci_summary_dialog.h b/ui/qt/bluetooth_hci_summary_dialog.h
index 8bba405ed5..617966404e 100644
--- a/ui/qt/bluetooth_hci_summary_dialog.h
+++ b/ui/qt/bluetooth_hci_summary_dialog.h
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include "wireshark_dialog.h"
#include "cfile.h"
#include "packet_list.h"
diff --git a/ui/qt/capture_comment_dialog.cpp b/ui/qt/capture_comment_dialog.cpp
index db45ae511c..8bea4ca445 100644
--- a/ui/qt/capture_comment_dialog.cpp
+++ b/ui/qt/capture_comment_dialog.cpp
@@ -83,7 +83,7 @@ char** CaptureCommentTabWidget::getCommentsText()
for (int index = 0; index < count(); index++) {
te = qobject_cast<QPlainTextEdit*>(widget(index));
if (te != nullptr) {
- gchar *str = qstring_strdup(te->toPlainText());
+ char *str = qstring_strdup(te->toPlainText());
/*
* Make sure this would fit in a pcapng option.
@@ -94,14 +94,14 @@ char** CaptureCommentTabWidget::getCommentsText()
*/
if (strlen(str) > 65535) {
/* It doesn't fit. Give up. */
- g_ptr_array_free(ptr_array, TRUE);
+ g_ptr_array_free(ptr_array, true);
return nullptr;
}
g_ptr_array_add(ptr_array, str);
}
}
g_ptr_array_add(ptr_array, nullptr);
- return (char**)g_ptr_array_free(ptr_array, FALSE);
+ return (char**)g_ptr_array_free(ptr_array, false);
}
void CaptureCommentTabWidget::setTabTitles(int from, int to)
diff --git a/ui/qt/capture_comment_dialog.h b/ui/qt/capture_comment_dialog.h
index 423e763981..5e7cb2b3fd 100644
--- a/ui/qt/capture_comment_dialog.h
+++ b/ui/qt/capture_comment_dialog.h
@@ -10,8 +10,6 @@
#ifndef CAPTURE_COMMENT_DIALOG_H
#define CAPTURE_COMMENT_DIALOG_H
-#include <glib.h>
-
#include "wireshark_dialog.h"
namespace Ui {
diff --git a/ui/qt/capture_event.h b/ui/qt/capture_event.h
index b4db282bf0..3959ed1786 100644
--- a/ui/qt/capture_event.h
+++ b/ui/qt/capture_event.h
@@ -11,6 +11,7 @@
#define CAPTURE_EVENT_H
#include <QEvent>
+#include <QString>
typedef struct _capture_session capture_session;
diff --git a/ui/qt/capture_file.cpp b/ui/qt/capture_file.cpp
index 0fd088b920..5de2c9d4f1 100644
--- a/ui/qt/capture_file.cpp
+++ b/ui/qt/capture_file.cpp
@@ -85,9 +85,9 @@ CaptureFile::CaptureFile(QObject *parent, capture_file *cap_file) :
file_state_(QString())
{
#ifdef HAVE_LIBPCAP
- capture_callback_add(captureCallback, (gpointer) this);
+ capture_callback_add(captureCallback, (void *) this);
#endif
- cf_callback_add(captureFileCallback, (gpointer) this);
+ cf_callback_add(captureFileCallback, (void *) this);
}
CaptureFile::~CaptureFile()
@@ -239,7 +239,7 @@ capture_file *CaptureFile::globalCapFile()
return &cfile;
}
-gpointer CaptureFile::window()
+void *CaptureFile::window()
{
if (cap_file_) return cap_file_->window;
return NULL;
@@ -250,7 +250,7 @@ void CaptureFile::setCaptureStopFlag(bool stop_flag)
if (cap_file_) cap_file_->stop_flag = stop_flag;
}
-void CaptureFile::captureFileCallback(gint event, gpointer data, gpointer user_data)
+void CaptureFile::captureFileCallback(int event, void *data, void *user_data)
{
CaptureFile *capture_file = static_cast<CaptureFile *>(user_data);
if (!capture_file) return;
@@ -259,7 +259,7 @@ void CaptureFile::captureFileCallback(gint event, gpointer data, gpointer user_d
}
#ifdef HAVE_LIBPCAP
-void CaptureFile::captureCallback(gint event, capture_session *cap_session, gpointer user_data)
+void CaptureFile::captureCallback(int event, capture_session *cap_session, void *user_data)
{
CaptureFile *capture_file = static_cast<CaptureFile *>(user_data);
if (!capture_file) return;
@@ -268,7 +268,7 @@ void CaptureFile::captureCallback(gint event, capture_session *cap_session, gpoi
}
#endif
-void CaptureFile::captureFileEvent(int event, gpointer data)
+void CaptureFile::captureFileEvent(int event, void *data)
{
switch(event) {
case(cf_cb_file_opened):
diff --git a/ui/qt/capture_file.h b/ui/qt/capture_file.h
index 2249f8e013..89be807f57 100644
--- a/ui/qt/capture_file.h
+++ b/ui/qt/capture_file.h
@@ -14,8 +14,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include "capture_event.h"
@@ -117,7 +115,7 @@ public:
// XXX This shouldn't be needed.
static capture_file *globalCapFile();
- gpointer window();
+ void *window();
signals:
void captureEvent(CaptureEvent);
@@ -146,12 +144,12 @@ public slots:
void setCaptureStopFlag(bool stop_flag = true);
private:
- static void captureFileCallback(gint event, gpointer data, gpointer user_data);
+ static void captureFileCallback(int event, void *data, void *user_data);
#ifdef HAVE_LIBPCAP
- static void captureCallback(gint event, capture_session *cap_session, gpointer user_data);
+ static void captureCallback(int event, capture_session *cap_session, void *user_data);
#endif
- void captureFileEvent(int event, gpointer data);
+ void captureFileEvent(int event, void *data);
void captureSessionEvent(int event, capture_session *cap_session);
const QString &getFileBasename();
diff --git a/ui/qt/capture_file_dialog.cpp b/ui/qt/capture_file_dialog.cpp
index c9cb653bb6..28091e2a8a 100644
--- a/ui/qt/capture_file_dialog.cpp
+++ b/ui/qt/capture_file_dialog.cpp
@@ -17,12 +17,6 @@
#include "capture_file_dialog.h"
-#ifdef Q_OS_WIN
-#include <windows.h>
-#include "ui/packet_range.h"
-#include "ui/win32/file_dlg_win32.h"
-#else // Q_OS_WIN
-
#include <errno.h>
#include "wsutil/filesystem.h"
#include "wsutil/nstime.h"
@@ -40,7 +34,6 @@
#include <QSortFilterProxyModel>
#include <QSpacerItem>
#include <QVBoxLayout>
-#endif // ! Q_OS_WIN
#include <QPushButton>
#include <QMessageBox>
@@ -54,18 +47,13 @@ static const double HEIGHT_SCALE_FACTOR = 1.4;
CaptureFileDialog::CaptureFileDialog(QWidget *parent, capture_file *cf) :
WiresharkFileDialog(parent),
cap_file_(cf),
-#if !defined(Q_OS_WIN)
display_filter_edit_(NULL),
default_ft_(-1),
save_bt_(NULL),
help_topic_(TOPIC_ACTION_NONE)
-#else
- file_type_(-1)
-#endif
{
setDirectory(mainApp->openDialogInitialDir());
-#if !defined(Q_OS_WIN)
// Add extra widgets
// https://wiki.qt.io/Qt_project_org_faq#How_can_I_add_widgets_to_my_QFileDialog_instance.3F
setOption(QFileDialog::DontUseNativeDialog, true);
@@ -82,14 +70,10 @@ CaptureFileDialog::CaptureFileDialog(QWidget *parent, capture_file *cf) :
// Left and right boxes for controls and preview
h_box->addLayout(&left_v_box_);
h_box->addLayout(&right_v_box_);
-
-#else // Q_OS_WIN
- merge_type_ = 0;
-#endif // Q_OS_WIN
}
check_savability_t CaptureFileDialog::checkSaveAsWithComments(QWidget *parent, capture_file *cf, int file_type) {
- guint32 comment_types;
+ uint32_t comment_types;
bool all_comment_types_supported = true;
/* What types of comments do we have? */
@@ -213,7 +197,6 @@ check_savability_t CaptureFileDialog::checkSaveAsWithComments(QWidget *parent, c
}
-#ifndef Q_OS_WIN
void CaptureFileDialog::accept()
{
//
@@ -234,7 +217,6 @@ void CaptureFileDialog::accept()
}
WiresharkFileDialog::accept();
}
-#endif // ! Q_OS_WIN
// You have to use open, merge, saveAs, or exportPackets. We should
@@ -244,98 +226,6 @@ int CaptureFileDialog::exec() {
}
-
-// Windows
-// We use native file dialogs here, rather than the Qt dialog
-#ifdef Q_OS_WIN
-int CaptureFileDialog::selectedFileType() {
- return file_type_;
-}
-
-wtap_compression_type CaptureFileDialog::compressionType() {
- return compression_type_;
-}
-
-int CaptureFileDialog::open(QString &file_name, unsigned int &type, QString &display_filter) {
- QString title_str = mainApp->windowTitleString(tr("Open Capture File"));
- GString *fname = g_string_new(file_name.toUtf8().constData());
- GString *dfilter = g_string_new(display_filter.toUtf8().constData());
- gboolean wof_status;
-
- // XXX Add a widget->HWND routine to qt_ui_utils and use it instead.
- wof_status = win32_open_file((HWND)parentWidget()->effectiveWinId(), title_str.toStdWString().c_str(), fname, &type, dfilter);
- file_name = fname->str;
- display_filter = dfilter->str;
-
- g_string_free(fname, TRUE);
- g_string_free(dfilter, TRUE);
-
- return (int) wof_status;
-}
-
-check_savability_t CaptureFileDialog::saveAs(QString &file_name, bool must_support_all_comments) {
- QString title_str = mainApp->windowTitleString(tr("Save Capture File As"));
- GString *fname = g_string_new(file_name.toUtf8().constData());
- gboolean wsf_status;
-
- wsf_status = win32_save_as_file((HWND)parentWidget()->effectiveWinId(), title_str.toStdWString().c_str(), cap_file_, fname, &file_type_, &compression_type_, must_support_all_comments);
- file_name = fname->str;
-
- g_string_free(fname, TRUE);
-
- if (wsf_status) {
- return checkSaveAsWithComments(parentWidget(), cap_file_, file_type_);
- }
-
- return CANCELLED;
-}
-
-check_savability_t CaptureFileDialog::exportSelectedPackets(QString &file_name, packet_range_t *range, QString selRange) {
- QString title_str = mainApp->windowTitleString(tr("Export Specified Packets"));
- GString *fname = g_string_new(file_name.toUtf8().constData());
- gboolean wespf_status;
-
- if (selRange.length() > 0)
- {
- packet_range_convert_selection_str(range, selRange.toUtf8().constData());
- }
-
- wespf_status = win32_export_specified_packets_file((HWND)parentWidget()->effectiveWinId(), title_str.toStdWString().c_str(), cap_file_, fname, &file_type_, &compression_type_, range);
- file_name = fname->str;
-
- g_string_free(fname, TRUE);
-
- if (wespf_status) {
- return checkSaveAsWithComments(parentWidget(), cap_file_, file_type_);
- }
-
- return CANCELLED;
-}
-
-int CaptureFileDialog::merge(QString &file_name, QString &display_filter) {
- QString title_str = mainApp->windowTitleString(tr("Merge Capture File"));
- GString *fname = g_string_new(file_name.toUtf8().constData());
- GString *dfilter = g_string_new(display_filter.toUtf8().constData());
- gboolean wmf_status;
-
-
- wmf_status = win32_merge_file((HWND)parentWidget()->effectiveWinId(), title_str.toStdWString().c_str(), fname, dfilter, &merge_type_);
- file_name = fname->str;
- display_filter = dfilter->str;
-
- g_string_free(fname, TRUE);
- g_string_free(dfilter, TRUE);
-
- return (int) wmf_status;
-}
-
-int CaptureFileDialog::mergeType() {
- return merge_type_;
-}
-
-#else // ! Q_OS_WIN
-// Not Windows
-// We use the Qt dialogs here
QString CaptureFileDialog::fileExtensionType(int et, bool extension_globs)
{
QString extension_type_name;
@@ -399,7 +289,7 @@ QString CaptureFileDialog::fileType(int ft, QStringList &suffixes)
filter = " (";
- extensions_list = wtap_get_file_extensions_list(ft, TRUE);
+ extensions_list = wtap_get_file_extensions_list(ft, true);
if (extensions_list == NULL) {
/* This file type doesn't have any particular extension
conventionally used for it, so we'll just use a
@@ -832,9 +722,9 @@ int CaptureFileDialog::merge(QString &file_name, QString &display_filter) {
QStringList CaptureFileDialog::buildFileSaveAsTypeList(bool must_support_all_comments) {
QStringList filters;
- guint32 required_comment_types;
+ uint32_t required_comment_types;
GArray *savable_file_types_subtypes;
- guint i;
+ unsigned i;
type_hash_.clear();
type_suffixes_.clear();
@@ -864,7 +754,7 @@ QStringList CaptureFileDialog::buildFileSaveAsTypeList(bool must_support_all_com
filters << type_name + fileType(ft, type_suffixes_[type_name]);
type_hash_[type_name] = ft;
}
- g_array_free(savable_file_types_subtypes, TRUE);
+ g_array_free(savable_file_types_subtypes, true);
}
return filters;
@@ -888,7 +778,7 @@ void CaptureFileDialog::preview(const QString & path)
{
wtap *wth;
int err;
- gchar *err_info;
+ char *err_info;
ws_file_preview_stats stats;
ws_file_preview_stats_status status;
time_t ti_time;
@@ -912,7 +802,7 @@ void CaptureFileDialog::preview(const QString & path)
return;
}
- wth = wtap_open_offline(path.toUtf8().data(), WTAP_TYPE_AUTO, &err, &err_info, TRUE);
+ wth = wtap_open_offline(path.toUtf8().data(), WTAP_TYPE_AUTO, &err, &err_info, true);
if (wth == NULL) {
if (err == WTAP_ERR_FILE_UNKNOWN_FORMAT) {
preview_format_.setText(tr("unknown file format"));
@@ -931,7 +821,7 @@ void CaptureFileDialog::preview(const QString & path)
preview_format_.setText(QString::fromUtf8(wtap_file_type_subtype_description(wtap_file_type_subtype(wth))));
// Size
- gint64 filesize = wtap_file_size(wth, &err);
+ int64_t filesize = wtap_file_size(wth, &err);
// Finder and Windows Explorer use IEC. What do the various Linux file managers use?
QString size_str(gchar_free_to_qstring(format_size(filesize, FORMAT_SIZE_UNIT_BYTES, FORMAT_SIZE_PREFIX_IEC)));
@@ -1011,5 +901,3 @@ void CaptureFileDialog::on_buttonBox_helpRequested()
{
if (help_topic_ != TOPIC_ACTION_NONE) mainApp->helpTopicAction(help_topic_);
}
-
-#endif // ! Q_OS_WIN
diff --git a/ui/qt/capture_file_dialog.h b/ui/qt/capture_file_dialog.h
index 522cca9e34..ad41efd624 100644
--- a/ui/qt/capture_file_dialog.h
+++ b/ui/qt/capture_file_dialog.h
@@ -12,11 +12,9 @@
#include <ui/qt/widgets/wireshark_file_dialog.h>
-#ifndef Q_OS_WIN
#include <ui/qt/widgets/display_filter_edit.h>
#include "packet_range_group_box.h"
#include "ui/help_url.h"
-#endif // Q_OS_WIN
#include <ui/packet_range.h>
@@ -75,9 +73,6 @@ class CaptureFileDialog : public WiresharkFileDialog
public:
explicit CaptureFileDialog(QWidget *parent = NULL, capture_file *cf = NULL);
static check_savability_t checkSaveAsWithComments(QWidget *
-#if defined(Q_OS_WIN)
- parent
-#endif // Q_OS_WIN
, capture_file *cf, int file_type);
int mergeType();
@@ -87,7 +82,6 @@ public:
private:
capture_file *cap_file_;
-#if !defined(Q_OS_WIN)
void addMergeControls(QVBoxLayout &v_box);
void addFormatTypeSelector(QVBoxLayout &v_box);
void addDisplayFilterEdit(QString &display_filter);
@@ -129,19 +123,11 @@ private:
QPushButton *save_bt_;
topic_action_e help_topic_;
-#else // Q_OS_WIN
- int file_type_;
- int merge_type_;
- wtap_compression_type compression_type_;
-#endif // Q_OS_WIN
-
signals:
public slots:
-#ifndef Q_OS_WIN
void accept() Q_DECL_OVERRIDE;
-#endif
int exec() Q_DECL_OVERRIDE;
int open(QString &file_name, unsigned int &type, QString &display_filter);
check_savability_t saveAs(QString &file_name, bool must_support_comments);
@@ -149,11 +135,9 @@ public slots:
int merge(QString &file_name, QString &display_filter);
private slots:
-#if !defined(Q_OS_WIN)
void fixFilenameExtension();
void preview(const QString & path);
void on_buttonBox_helpRequested();
-#endif // Q_OS_WIN
};
#endif // CAPTURE_FILE_DIALOG_H
diff --git a/ui/qt/capture_file_properties_dialog.cpp b/ui/qt/capture_file_properties_dialog.cpp
index 2ad33fa94e..11fe5fb4fd 100644
--- a/ui/qt/capture_file_properties_dialog.cpp
+++ b/ui/qt/capture_file_properties_dialog.cpp
@@ -172,7 +172,7 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
QString encaps_str;
if (summary.file_encap_type == WTAP_ENCAP_PER_PACKET) {
- for (guint i = 0; i < summary.packet_encap_types->len; i++)
+ for (unsigned i = 0; i < summary.packet_encap_types->len; i++)
{
encaps_str = QString(wtap_encap_description(g_array_index(summary.packet_encap_types, int, i)));
}
@@ -237,7 +237,7 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
}
// Information from file sections.
- for (guint section_number = 0;
+ for (unsigned section_number = 0;
section_number < wtap_file_get_num_shbs(cap_file_.capFile()->provider.wth);
section_number++) {
@@ -308,7 +308,7 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
// XXX: The mapping of interfaces to different SHBs isn't
// handled correctly here or elsewhere
- for (guint i = 0; i < summary.ifaces->len; i++) {
+ for (unsigned i = 0; i < summary.ifaces->len; i++) {
iface_summary_info iface;
iface = g_array_index(summary.ifaces, iface_summary_info, i);
@@ -325,7 +325,7 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
if (iface.drops_known) {
interface_drops = QString("%1 (%2%)").arg(iface.drops).arg(QString::number(
/* MSVC cannot convert from unsigned __int64 to float, so first convert to signed __int64 */
- summary.packet_count ? (100.0 * (gint64)iface.drops)/summary.packet_count : 0, 'f', 1));
+ summary.packet_count ? (100.0 * (int64_t)iface.drops)/summary.packet_count : 0, 'f', 1));
}
/* Capture filter */
@@ -371,7 +371,7 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
}
// Done with the interfaces
- for (guint i = 0; i < summary.ifaces->len; i++) {
+ for (unsigned i = 0; i < summary.ifaces->len; i++) {
iface_summary_info iface;
iface = g_array_index(summary.ifaces, iface_summary_info, i);
@@ -379,7 +379,7 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
g_free(iface.name);
g_free(iface.cfilter);
}
- g_array_free(summary.ifaces, TRUE);
+ g_array_free(summary.ifaces, true);
if (wtap_file_get_num_dsbs(cap_file_.capFile()->provider.wth) > 0) {
out << section_tmpl_.arg(tr("Decryption Secrets"));
@@ -389,7 +389,7 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
<< table_hheader20_tmpl.arg(tr("Size"))
<< table_row_end;
// XXX: A DSB can have (multiple) comments, we could add that too.
- for (guint section_number = 0;
+ for (unsigned section_number = 0;
section_number < wtap_file_get_num_dsbs(cap_file_.capFile()->provider.wth);
section_number++) {
wtap_block_t dsb = wtap_file_get_dsb(cap_file_.capFile()->provider.wth, section_number);
@@ -475,13 +475,13 @@ QString CaptureFilePropertiesDialog::summaryToHtml()
// Average packet size
captured_str = displayed_str = marked_str = n_a;
if (summary.packet_count > 0) {
- captured_str = QString::number((guint64) ((double)summary.bytes/summary.packet_count + 0.5));
+ captured_str = QString::number((uint64_t) ((double)summary.bytes/summary.packet_count + 0.5));
}
if (summary.filtered_count > 0) {
- displayed_str = QString::number((guint64) ((double)summary.filtered_bytes/summary.filtered_count + 0.5));
+ displayed_str = QString::number((uint64_t) ((double)summary.filtered_bytes/summary.filtered_count + 0.5));
}
if (summary.marked_count > 0) {
- marked_str = QString::number((guint64) ((double)summary.marked_bytes/summary.marked_count + 0.5));
+ marked_str = QString::number((uint64_t) ((double)summary.marked_bytes/summary.marked_count + 0.5));
}
out << table_row_begin
<< table_data_tmpl.arg(tr("Average packet size, B"))
@@ -571,13 +571,13 @@ void CaptureFilePropertiesDialog::fillDetails()
cursor.insertBlock();
cursor.insertHtml(section_tmpl_.arg(tr("Packet Comments")));
- for (guint32 framenum = 1; framenum <= cap_file_.capFile()->count ; framenum++) {
+ for (uint32_t framenum = 1; framenum <= cap_file_.capFile()->count ; framenum++) {
frame_data *fdata = frame_data_sequence_find(cap_file_.capFile()->provider.frames, framenum);
wtap_block_t pkt_block = cf_get_packet_block(cap_file_.capFile(), fdata);
if (pkt_block) {
- guint n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
- for (guint i = 0; i < n_comments; i++) {
+ unsigned n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
+ for (unsigned i = 0; i < n_comments; i++) {
char *comment_text;
if (WTAP_OPTTYPE_SUCCESS == wtap_block_get_nth_string_option_value(pkt_block, OPT_COMMENT, i, &comment_text)) {
QString frame_comment_html = tr("<p>Frame %1: ").arg(framenum);
diff --git a/ui/qt/capture_file_properties_dialog.h b/ui/qt/capture_file_properties_dialog.h
index b3d32df099..27b8d86f3c 100644
--- a/ui/qt/capture_file_properties_dialog.h
+++ b/ui/qt/capture_file_properties_dialog.h
@@ -14,8 +14,6 @@
#include <config.h>
-#include <glib.h>
-
#include <string.h>
#include <time.h>
diff --git a/ui/qt/capture_filter_syntax_worker.cpp b/ui/qt/capture_filter_syntax_worker.cpp
index e3810f268c..0fb6b5430a 100644
--- a/ui/qt/capture_filter_syntax_worker.cpp
+++ b/ui/qt/capture_filter_syntax_worker.cpp
@@ -10,7 +10,6 @@
#include "config.h"
#ifdef HAVE_LIBPCAP
-#include <glib.h>
#ifdef __MINGW32__
#include <_bsd_types.h>
@@ -50,8 +49,8 @@ static QMutex pcap_compile_mtx_;
void CaptureFilterSyntaxWorker::checkFilter(const QString filter)
{
#ifdef HAVE_LIBPCAP
- QSet<gint> active_dlts;
- QSet<guint> active_extcap;
+ QSet<int> active_dlts;
+ QSet<unsigned> active_extcap;
struct bpf_program fcode;
pcap_t *pd;
int pc_err;
@@ -66,7 +65,7 @@ void CaptureFilterSyntaxWorker::checkFilter(const QString filter)
return;
}
- for (guint if_idx = 0; if_idx < global_capture_opts.all_ifaces->len; if_idx++) {
+ for (unsigned if_idx = 0; if_idx < global_capture_opts.all_ifaces->len; if_idx++) {
interface_t *device;
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, if_idx);
@@ -85,7 +84,7 @@ void CaptureFilterSyntaxWorker::checkFilter(const QString filter)
}
}
- foreach(gint dlt, active_dlts.values()) {
+ foreach(int dlt, active_dlts.values()) {
pcap_compile_mtx_.lock();
pd = pcap_open_dead(dlt, DUMMY_SNAPLENGTH);
if (pd == NULL)
@@ -119,9 +118,9 @@ void CaptureFilterSyntaxWorker::checkFilter(const QString filter)
}
// If it's already invalid, don't bother to check extcap
if (state != SyntaxLineEdit::Invalid) {
- foreach(guint extcapif, active_extcap.values()) {
+ foreach(unsigned extcapif, active_extcap.values()) {
interface_t *device;
- gchar *error = NULL;
+ char *error = NULL;
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, extcapif);
extcap_filter_status status = extcap_verify_capture_filter(device->name, filter.toUtf8().constData(), &error);
diff --git a/ui/qt/capture_info_dialog.cpp b/ui/qt/capture_info_dialog.cpp
index 5a29652c77..5559cd3973 100644
--- a/ui/qt/capture_info_dialog.cpp
+++ b/ui/qt/capture_info_dialog.cpp
@@ -146,7 +146,7 @@ void CaptureInfoModel::updateInfo()
if (!cap_info_) return;
GHashTableIter iter;
- gpointer key, value;
+ void *key, *value;
samples_++;
other_points_.append(cap_info_->counts->other - last_other_);
diff --git a/ui/qt/capture_options_dialog.cpp b/ui/qt/capture_options_dialog.cpp
index dae7e6375c..6d3a94f0af 100644
--- a/ui/qt/capture_options_dialog.cpp
+++ b/ui/qt/capture_options_dialog.cpp
@@ -94,7 +94,7 @@ enum
static interface_t *find_device_by_if_name(const QString &interface_name)
{
interface_t *device;
- guint i;
+ unsigned i;
for (i = 0; i < global_capture_opts.all_ifaces->len; i++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (!interface_name.compare(device->display_name) && !device->hidden && device->if_info.type != IF_PIPE) {
@@ -268,14 +268,14 @@ void CaptureOptionsDialog::updateGlobalDeviceSelections()
while (*iter) {
QString device_name = (*iter)->data(col_interface_, Qt::UserRole).value<QString>();
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (device_name.compare(QString().fromUtf8(device->name)) == 0) {
if ((*iter)->isSelected()) {
- device->selected = TRUE;
+ device->selected = true;
global_capture_opts.num_selected++;
} else {
- device->selected = FALSE;
+ device->selected = false;
}
break;
}
@@ -296,7 +296,7 @@ void CaptureOptionsDialog::updateFromGlobalDeviceSelections()
while (*iter) {
QString device_name = (*iter)->data(col_interface_, Qt::UserRole).value<QString>();
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (device_name.compare(QString().fromUtf8(device->name)) == 0) {
if ((bool)device->selected != (*iter)->isSelected()) {
@@ -423,15 +423,15 @@ void CaptureOptionsDialog::interfaceItemChanged(QTreeWidgetItem *item, int colum
switch(column) {
case col_pmode_:
- device->pmode = item->checkState(col_pmode_) == Qt::Checked ? TRUE : FALSE;
+ device->pmode = item->checkState(col_pmode_) == Qt::Checked ? true : false;
ti->updateInterfaceColumns(device);
break;
#ifdef SHOW_MONITOR_COLUMN
case col_monitor_:
{
- gboolean monitor_mode = FALSE;
- if (ti->checkState(col_monitor_) == Qt::Checked) monitor_mode = TRUE;
+ bool monitor_mode = false;
+ if (ti->checkState(col_monitor_) == Qt::Checked) monitor_mode = true;
if_capabilities_t *caps;
char *auth_str = NULL;
@@ -451,7 +451,7 @@ void CaptureOptionsDialog::interfaceItemChanged(QTreeWidgetItem *item, int colum
if (caps != Q_NULLPTR) {
for (int i = static_cast<int>(g_list_length(device->links)) - 1; i >= 0; i--) {
- GList* rem = g_list_nth(device->links, static_cast<guint>(i));
+ GList* rem = g_list_nth(device->links, static_cast<unsigned>(i));
device->links = g_list_remove_link(device->links, rem);
g_list_free_1(rem);
}
@@ -478,7 +478,7 @@ void CaptureOptionsDialog::interfaceItemChanged(QTreeWidgetItem *item, int colum
}
linkr->name = g_strdup(data_link_info->description);
} else {
- gchar *str;
+ char *str;
/* XXX - should we just omit them? */
str = ws_strdup_printf("%s (not supported)", data_link_info->name);
linkr->dlt = -1;
@@ -491,8 +491,8 @@ void CaptureOptionsDialog::interfaceItemChanged(QTreeWidgetItem *item, int colum
} else {
/* We don't know whether this supports monitor mode or not;
don't ask for monitor mode. */
- device->monitor_mode_enabled = FALSE;
- device->monitor_mode_supported = FALSE;
+ device->monitor_mode_enabled = false;
+ device->monitor_mode_supported = false;
}
ti->updateInterfaceColumns(device);
@@ -791,10 +791,10 @@ void CaptureOptionsDialog::updateInterfaces()
ui->interfaceTree->clear();
#ifdef SHOW_BUFFER_COLUMN
- gint buffer;
+ int buffer;
#endif
- gint snaplen;
- gboolean hassnap, pmode;
+ int snaplen;
+ bool hassnap, pmode;
QList<QTreeWidgetItem *> selected_interfaces;
disconnect(ui->interfaceTree, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(interfaceItemChanged(QTreeWidgetItem*,int)));
@@ -802,7 +802,7 @@ void CaptureOptionsDialog::updateInterfaces()
if (global_capture_opts.all_ifaces->len > 0) {
interface_t *device;
- for (guint device_idx = 0; device_idx < global_capture_opts.all_ifaces->len; device_idx++) {
+ for (unsigned device_idx = 0; device_idx < global_capture_opts.all_ifaces->len; device_idx++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, device_idx);
/* Continue if capture device is hidden */
@@ -845,11 +845,11 @@ void CaptureOptionsDialog::updateInterfaces()
if (capture_dev_user_snaplen_find(device->name, &hassnap, &snaplen)) {
/* Default snap length set in preferences */
device->snaplen = snaplen;
- device->has_snaplen = snaplen == WTAP_MAX_PACKET_SIZE_STANDARD ? FALSE : hassnap;
+ device->has_snaplen = snaplen == WTAP_MAX_PACKET_SIZE_STANDARD ? false : hassnap;
} else {
/* No preferences set yet, use default values */
device->snaplen = WTAP_MAX_PACKET_SIZE_STANDARD;
- device->has_snaplen = FALSE;
+ device->has_snaplen = false;
}
#ifdef SHOW_BUFFER_COLUMN
@@ -936,7 +936,7 @@ void CaptureOptionsDialog::updateStatistics(void)
disconnect(ui->interfaceTree, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(interfaceItemChanged(QTreeWidgetItem*,int)));
for (int row = 0; row < ui->interfaceTree->topLevelItemCount(); row++) {
- for (guint if_idx = 0; if_idx < global_capture_opts.all_ifaces->len; if_idx++) {
+ for (unsigned if_idx = 0; if_idx < global_capture_opts.all_ifaces->len; if_idx++) {
QTreeWidgetItem *ti = ui->interfaceTree->topLevelItem(row);
if (!ti) {
continue;
@@ -1204,7 +1204,7 @@ bool CaptureOptionsDialog::saveOptionsToPreferences()
QTreeWidgetItem *ti = ui->interfaceTree->topLevelItem(row);
QString device_name = ti->data(col_interface_, Qt::UserRole).toString();
device = getDeviceByName(device_name);
- if (!device || device->pmode == -1) {
+ if (!device || !device->pmode) {
continue;
}
pmode_list << QString("%1(%2)").arg(device->name).arg(device->pmode);
@@ -1320,7 +1320,7 @@ void CaptureOptionsDialog::changeEvent(QEvent* event)
interface_t *CaptureOptionsDialog::getDeviceByName(const QString device_name)
{
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (device_name.compare(QString().fromUtf8(device->name)) == 0) {
return device;
@@ -1393,9 +1393,9 @@ QWidget* InterfaceTreeDelegate::createEditor(QWidget *parent, const QStyleOption
{
QWidget *w = NULL;
#ifdef SHOW_BUFFER_COLUMN
- gint buffer = DEFAULT_CAPTURE_BUFFER_SIZE;
+ int buffer = DEFAULT_CAPTURE_BUFFER_SIZE;
#endif
- guint snap = WTAP_MAX_PACKET_SIZE_STANDARD;
+ unsigned snap = WTAP_MAX_PACKET_SIZE_STANDARD;
GList *links = NULL;
if (idx.column() > 1 && idx.data().toString().compare(UTF8_EM_DASH)) {
diff --git a/ui/qt/capture_preferences_frame.cpp b/ui/qt/capture_preferences_frame.cpp
index 41fedc1739..b20bfbed44 100644
--- a/ui/qt/capture_preferences_frame.cpp
+++ b/ui/qt/capture_preferences_frame.cpp
@@ -72,7 +72,7 @@ void CapturePreferencesFrame::updateWidgets()
}
ui->defaultInterfaceComboBox->clear();
if ((global_capture_opts.all_ifaces->len == 0) &&
- (prefs_get_bool_value(pref_no_interface_load_, pref_stashed) == FALSE)) {
+ (prefs_get_bool_value(pref_no_interface_load_, pref_stashed) == false)) {
/*
* No interfaces - try refreshing the local interfaces, to
* see whether any have showed up (or privileges have changed
@@ -80,7 +80,7 @@ void CapturePreferencesFrame::updateWidgets()
*/
mainApp->refreshLocalInterfaces();
}
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
/* Continue if capture device is hidden */
diff --git a/ui/qt/coloring_rules_dialog.cpp b/ui/qt/coloring_rules_dialog.cpp
index 181105dc85..ee5dcb16ac 100644
--- a/ui/qt/coloring_rules_dialog.cpp
+++ b/ui/qt/coloring_rules_dialog.cpp
@@ -96,7 +96,7 @@ ColoringRulesDialog::ColoringRulesDialog(QWidget *parent, QString add_filter) :
ui->buttonBox->addButton(copy_button, QDialogButtonBox::ActionRole);
connect(copy_button, &CopyFromProfileButton::copyProfile, this, &ColoringRulesDialog::copyFromProfile);
- QString abs_path = gchar_free_to_qstring(get_persconffile_path(COLORFILTERS_FILE_NAME, TRUE));
+ QString abs_path = gchar_free_to_qstring(get_persconffile_path(COLORFILTERS_FILE_NAME, true));
if (file_exists(abs_path.toUtf8().constData())) {
ui->pathLabel->setText(abs_path);
ui->pathLabel->setUrl(QUrl::fromLocalFile(abs_path).toString());
diff --git a/ui/qt/column_editor_frame.cpp b/ui/qt/column_editor_frame.cpp
index cbe658138f..3aa7e3d17b 100644
--- a/ui/qt/column_editor_frame.cpp
+++ b/ui/qt/column_editor_frame.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/column.h>
#include <epan/prefs.h>
#include <ui/recent.h>
diff --git a/ui/qt/column_preferences_frame.cpp b/ui/qt/column_preferences_frame.cpp
index 961e2737a5..3bfd8bdb48 100644
--- a/ui/qt/column_preferences_frame.cpp
+++ b/ui/qt/column_preferences_frame.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/column.h>
#include <epan/prefs.h>
#include <epan/proto.h>
diff --git a/ui/qt/compiled_filter_output.cpp b/ui/qt/compiled_filter_output.cpp
index de0315b7a9..a1d6bd124d 100644
--- a/ui/qt/compiled_filter_output.cpp
+++ b/ui/qt/compiled_filter_output.cpp
@@ -71,7 +71,7 @@ void CompiledFilterOutput::compileFilter()
struct bpf_program fcode;
foreach (InterfaceFilter current, intList_) {
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (current.interface.compare(device->display_name)) {
@@ -95,7 +95,7 @@ void CompiledFilterOutput::compileFilter()
}
g_mutex_unlock(&pcap_compile_mtx_);
compile_results.insert(current.interface, QString(bpf_code_dump->str));
- g_string_free(bpf_code_dump, TRUE);
+ g_string_free(bpf_code_dump, true);
ui->interfaceList->addItem(new QListWidgetItem(current.interface));
pcap_freecode(&fcode);
}
diff --git a/ui/qt/conversation_colorize_action.cpp b/ui/qt/conversation_colorize_action.cpp
index 9518e1ee68..cb35847205 100644
--- a/ui/qt/conversation_colorize_action.cpp
+++ b/ui/qt/conversation_colorize_action.cpp
@@ -11,8 +11,6 @@
#include <config.h>
-#include <glib.h>
-
#include "epan/conversation_filter.h"
#include <QMenu>
diff --git a/ui/qt/conversation_dialog.h b/ui/qt/conversation_dialog.h
index 5ad058ac73..e54b67f4c5 100644
--- a/ui/qt/conversation_dialog.h
+++ b/ui/qt/conversation_dialog.h
@@ -28,7 +28,7 @@ protected:
void captureFileClosing();
signals:
- void openFollowStreamDialog(int proto_id, guint stream_num, guint sub_stream_num);
+ void openFollowStreamDialog(int proto_id, unsigned stream_num, unsigned sub_stream_num);
private:
QPushButton *follow_bt_;
diff --git a/ui/qt/conversation_hash_tables_dialog.cpp b/ui/qt/conversation_hash_tables_dialog.cpp
index 49db4c00bf..f7f4fc74b9 100644
--- a/ui/qt/conversation_hash_tables_dialog.cpp
+++ b/ui/qt/conversation_hash_tables_dialog.cpp
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/conversation.h>
#include <epan/conversation_debug.h>
@@ -21,7 +19,7 @@
#include "main_application.h"
static void
-fill_named_table(gpointer key, gpointer value _U_, gpointer user_data)
+fill_named_table(void *key, void *value _U_, void *user_data)
{
const conversation_element_t *elements = static_cast<const conversation_element_t *>(key);
QString* html_table = static_cast<QString *>(user_data);
@@ -39,6 +37,7 @@ fill_named_table(gpointer key, gpointer value _U_, gpointer user_data)
int uint64_count = 1;
int int_count = 1;
int int64_count = 1;
+ int blob_count = 1;
for (const conversation_element_t *cur_el = elements; ; cur_el++) {
QString title;
switch (cur_el->type) {
@@ -63,6 +62,9 @@ fill_named_table(gpointer key, gpointer value _U_, gpointer user_data)
case CE_INT64:
title = QString("Int64 %1").arg(int64_count++);
break;
+ case CE_BLOB:
+ title = QString("Blob %1").arg(blob_count++);
+ break;
case CE_CONVERSATION_TYPE:
html_table->append(QString("<th>Endpoint</th>"));
goto title_done;
@@ -100,6 +102,9 @@ title_done:
case CE_INT64:
val = QString::number(cur_el->int64_val);
break;
+ case CE_BLOB:
+ val = QString(QByteArray::fromRawData((const char *)cur_el->blob.val, (int)cur_el->blob.len).toHex());
+ break;
case CE_CONVERSATION_TYPE:
html_table->append(QString("<td>%1</td>").arg(QString::number(cur_el->conversation_type_val)));
goto val_done;
diff --git a/ui/qt/decode_as_dialog.cpp b/ui/qt/decode_as_dialog.cpp
index edc6ccc798..c45fae2eae 100644
--- a/ui/qt/decode_as_dialog.cpp
+++ b/ui/qt/decode_as_dialog.cpp
@@ -65,7 +65,7 @@ DecodeAsDialog::DecodeAsDialog(QWidget *parent, capture_file *cf, bool create_ne
setWindowTitle(mainApp->windowTitleString(tr("Decode As…")));
- QString abs_path = gchar_free_to_qstring(get_persconffile_path(DECODE_AS_ENTRIES_FILE_NAME, TRUE));
+ QString abs_path = gchar_free_to_qstring(get_persconffile_path(DECODE_AS_ENTRIES_FILE_NAME, true));
if (file_exists(abs_path.toUtf8().constData())) {
ui->pathLabel->setText(abs_path);
ui->pathLabel->setUrl(QUrl::fromLocalFile(abs_path).toString());
@@ -137,7 +137,7 @@ void DecodeAsDialog::on_decodeAsTreeView_currentItemChanged(const QModelIndex &c
void DecodeAsDialog::copyFromProfile(QString filename)
{
- const gchar *err = NULL;
+ const char *err = NULL;
if (!model_->copyFromProfile(filename, &err)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "Error while loading %s: %s", filename.toUtf8().constData(), err);
@@ -213,7 +213,7 @@ void DecodeAsDialog::on_buttonBox_clicked(QAbstractButton *button)
break;
case QDialogButtonBox::Save:
{
- gchar* err = NULL;
+ char* err = NULL;
applyChanges();
if (save_decode_as_entries(&err) < 0) {
diff --git a/ui/qt/decode_as_dialog.h b/ui/qt/decode_as_dialog.h
index 8765489ac3..73d664d3e3 100644
--- a/ui/qt/decode_as_dialog.h
+++ b/ui/qt/decode_as_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include <ui/qt/models/decode_as_model.h>
#include <ui/qt/models/decode_as_delegate.h>
diff --git a/ui/qt/display_filter_expression_dialog.cpp b/ui/qt/display_filter_expression_dialog.cpp
index e071d0ab8e..d192ec4f53 100644
--- a/ui/qt/display_filter_expression_dialog.cpp
+++ b/ui/qt/display_filter_expression_dialog.cpp
@@ -316,9 +316,9 @@ void DisplayFilterExpressionDialog::updateWidgets()
void DisplayFilterExpressionDialog::fillEnumBooleanValues(const true_false_string *tfs)
{
- QListWidgetItem *eli = new QListWidgetItem(tfs_get_string(TRUE, tfs), ui->enumListWidget);
+ QListWidgetItem *eli = new QListWidgetItem(tfs_get_string(true, tfs), ui->enumListWidget);
eli->setData(Qt::UserRole, QString("1"));
- eli = new QListWidgetItem(tfs_get_string(FALSE, tfs), ui->enumListWidget);
+ eli = new QListWidgetItem(tfs_get_string(false, tfs), ui->enumListWidget);
eli->setData(Qt::UserRole, QString("0"));
}
diff --git a/ui/qt/expert_info_dialog.h b/ui/qt/expert_info_dialog.h
index 1494ffb426..38eb8f0922 100644
--- a/ui/qt/expert_info_dialog.h
+++ b/ui/qt/expert_info_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "filter_action.h"
#include "wireshark_dialog.h"
#include <ui/qt/models/expert_info_model.h>
diff --git a/ui/qt/export_dissection_dialog.cpp b/ui/qt/export_dissection_dialog.cpp
index 71b9907ab7..85fc4bcba3 100644
--- a/ui/qt/export_dissection_dialog.cpp
+++ b/ui/qt/export_dissection_dialog.cpp
@@ -9,12 +9,6 @@
#include "export_dissection_dialog.h"
-#ifdef Q_OS_WIN
-#include <windows.h>
-#include "ui/packet_range.h"
-#include "ui/win32/file_dlg_win32.h"
-#else // Q_OS_WIN
-
#include "ui/alert_box.h"
#include "ui/help_url.h"
#include "ui/util.h"
@@ -28,11 +22,9 @@
#include <QDialogButtonBox>
#include <QGridLayout>
#include <QPushButton>
-#endif // Q_OS_WIN
#include "main_application.h"
-#if !defined(Q_OS_WIN)
static const QStringList export_extensions = QStringList()
<< ""
<< "txt"
@@ -43,25 +35,16 @@ static const QStringList export_extensions = QStringList()
<< "c"
<< "json";
-#endif
-
ExportDissectionDialog::ExportDissectionDialog(QWidget *parent, capture_file *cap_file, export_type_e export_type, QString selRange):
WiresharkFileDialog(parent),
export_type_(export_type),
cap_file_(cap_file)
-#if !defined(Q_OS_WIN)
, save_bt_(NULL)
-#else
- , sel_range_(selRange)
-#endif /* Q_OS_WIN */
{
setWindowTitle(mainApp->windowTitleString(tr("Export Packet Dissections")));
setDirectory(mainApp->openDialogInitialDir());
-#if !defined(Q_OS_WIN)
- // Add extra widgets
- // https://wiki.qt.io/Qt_project_org_faq#How_can_I_add_widgets_to_my_QFileDialog_instance.3F
setOption(QFileDialog::DontUseNativeDialog, true);
QDialogButtonBox *button_box = findChild<QDialogButtonBox *>();
QGridLayout *fd_grid = qobject_cast<QGridLayout*>(layout());
@@ -98,7 +81,7 @@ ExportDissectionDialog::ExportDissectionDialog(QWidget *parent, capture_file *ca
/* Init the export range */
packet_range_init(&print_args_.range, cap_file_);
/* Default to displayed packets */
- print_args_.range.process_filtered = TRUE;
+ print_args_.range.process_filtered = true;
packet_range_group_box_.initRange(&print_args_.range, selRange);
h_box->addWidget(&packet_range_group_box_);
@@ -124,33 +107,30 @@ ExportDissectionDialog::ExportDissectionDialog(QWidget *parent, capture_file *ca
resize(width(), height() + (packet_range_group_box_.height() * 2 / 3));
connect(this, SIGNAL(filesSelected(QStringList)), this, SLOT(dialogAccepted(QStringList)));
-#else // Q_OS_WIN
-#endif // Q_OS_WIN
}
ExportDissectionDialog::~ExportDissectionDialog()
{
-#if !defined(Q_OS_WIN)
g_free(print_args_.file);
packet_range_cleanup(&print_args_.range);
-#endif
}
void ExportDissectionDialog::show()
{
-#if !defined(Q_OS_WIN)
if (cap_file_) {
WiresharkFileDialog::show();
}
-#else // Q_OS_WIN
- win32_export_file((HWND)parentWidget()->effectiveWinId(), windowTitle().toStdWString().c_str(), cap_file_, export_type_, sel_range_.toStdString().c_str());
-#endif // Q_OS_WIN
}
-#ifndef Q_OS_WIN
void ExportDissectionDialog::dialogAccepted(const QStringList &selected)
{
if (selected.length() > 0) {
+ /* writing might take a while, so hide ourselves so the user
+ * can't click on anything here (this dialog will be closed
+ * and deleted once this function is done), but can access
+ * the ProgressDialog in the main window to cancel the export.
+ */
+ hide();
cf_print_status_t status;
QString file_name = selected[0];
@@ -158,13 +138,13 @@ void ExportDissectionDialog::dialogAccepted(const QStringList &selected)
print_args_.file = qstring_strdup(file_name);
print_args_.format = PR_FMT_TEXT;
- print_args_.to_file = TRUE;
+ print_args_.to_file = true;
print_args_.cmd = NULL;
- print_args_.print_summary = TRUE;
- print_args_.print_col_headings = TRUE;
+ print_args_.print_summary = true;
+ print_args_.print_col_headings = true;
print_args_.print_dissections = print_dissections_as_displayed;
- print_args_.print_hex = FALSE;
- print_args_.print_formfeed = FALSE;
+ print_args_.print_hex = false;
+ print_args_.print_formfeed = false;
switch (export_type_) {
case export_type_text: /* Text */
@@ -181,12 +161,12 @@ void ExportDissectionDialog::dialogAccepted(const QStringList &selected)
}
print_args_.print_hex = packet_format_group_box_.bytesEnabled();
print_args_.hexdump_options = packet_format_group_box_.getHexdumpOptions();
- print_args_.stream = print_stream_text_new(TRUE, print_args_.file);
+ print_args_.stream = print_stream_text_new(true, print_args_.file);
if (print_args_.stream == NULL) {
- open_failure_alert_box(print_args_.file, errno, TRUE);
+ open_failure_alert_box(print_args_.file, errno, true);
return;
}
- status = cf_print_packets(cap_file_, &print_args_, TRUE);
+ status = cf_print_packets(cap_file_, &print_args_, true);
break;
case export_type_csv: /* CSV */
status = cf_write_csv_packets(cap_file_, &print_args_);
@@ -211,14 +191,14 @@ void ExportDissectionDialog::dialogAccepted(const QStringList &selected)
case CF_PRINT_OK:
break;
case CF_PRINT_OPEN_ERROR:
- open_failure_alert_box(print_args_.file, errno, TRUE);
+ open_failure_alert_box(print_args_.file, errno, true);
break;
case CF_PRINT_WRITE_ERROR:
write_failure_alert_box(print_args_.file, errno);
break;
}
- gchar *dirname;
+ char *dirname;
/* Save the directory name for future file dialogs. */
dirname = get_dirname(print_args_.file); /* Overwrites file_name data */
set_last_open_dir(dirname);
@@ -263,4 +243,3 @@ void ExportDissectionDialog::on_buttonBox_helpRequested()
{
mainApp->helpTopicAction(HELP_EXPORT_FILE_DIALOG);
}
-#endif // Q_OS_WIN
diff --git a/ui/qt/export_dissection_dialog.h b/ui/qt/export_dissection_dialog.h
index 6d794918cd..bdcf5aa5a9 100644
--- a/ui/qt/export_dissection_dialog.h
+++ b/ui/qt/export_dissection_dialog.h
@@ -12,18 +12,14 @@
#include <config.h>
-#include <glib.h>
-
#include "file.h"
#include "epan/print.h"
#include "ui/file_dialog.h"
#include <ui/qt/widgets/wireshark_file_dialog.h>
-#ifndef Q_OS_WIN
#include "packet_range_group_box.h"
#include "packet_format_group_box.h"
-#endif // Q_OS_WIN
#include <QMap>
@@ -39,17 +35,14 @@ public slots:
void show();
private slots:
-#ifndef Q_OS_WIN
void dialogAccepted(const QStringList &selected);
void exportTypeChanged(QString name_filter);
void checkValidity();
void on_buttonBox_helpRequested();
-#endif // Q_OS_WIN
private:
export_type_e export_type_;
capture_file *cap_file_;
-#ifndef Q_OS_WIN
print_args_t print_args_;
QMap<QString, export_type_e> export_type_map_;
@@ -58,9 +51,6 @@ private:
PacketFormatGroupBox packet_format_group_box_;
QPushButton *save_bt_;
-#else
- QString sel_range_;
-#endif // Q_OS_WIN
};
#endif // EXPORT_DISSECTION_DIALOG_H
diff --git a/ui/qt/export_object_action.cpp b/ui/qt/export_object_action.cpp
index bccf84ffd7..84626647ee 100644
--- a/ui/qt/export_object_action.cpp
+++ b/ui/qt/export_object_action.cpp
@@ -9,7 +9,6 @@
#include <config.h>
-#include <glib.h>
#include <epan/packet_info.h>
#include <epan/proto_data.h>
#include <epan/packet.h>
diff --git a/ui/qt/export_object_action.h b/ui/qt/export_object_action.h
index e4cc4cc54a..7e6f0656fd 100644
--- a/ui/qt/export_object_action.h
+++ b/ui/qt/export_object_action.h
@@ -12,7 +12,6 @@
#include "config.h"
-#include <glib.h>
#include <epan/packet_info.h>
#include <epan/export_object.h>
diff --git a/ui/qt/export_object_dialog.cpp b/ui/qt/export_object_dialog.cpp
index 79ad427efd..8510b9cec7 100644
--- a/ui/qt/export_object_dialog.cpp
+++ b/ui/qt/export_object_dialog.cpp
@@ -264,7 +264,7 @@ void ExportObjectDialog::saveCurrentEntry(QString *tempFile)
GString *safe_filename = eo_massage_str(entry_filename.toUtf8().constData(), EXPORT_OBJECT_MAXFILELEN, 0);
file_name = WiresharkFileDialog::getSaveFileName(this, mainApp->windowTitleString(tr("Save Object As…")),
safe_filename->str);
- g_string_free(safe_filename, TRUE);
+ g_string_free(safe_filename, true);
} else {
QString path = QDir::tempPath().append("/").append(entry_filename);
/* This means, the system must remove the file! */
diff --git a/ui/qt/extcap_argument.cpp b/ui/qt/extcap_argument.cpp
index 2a5873818c..84cbf90672 100644
--- a/ui/qt/extcap_argument.cpp
+++ b/ui/qt/extcap_argument.cpp
@@ -106,7 +106,7 @@ QString ExtArgTimestamp::prefValue()
bool ExtArgTimestamp::isSetDefaultValueSupported()
{
- return TRUE;
+ return true;
}
void ExtArgTimestamp::setDefaultValue()
@@ -231,7 +231,7 @@ QString ExtArgSelector::value()
bool ExtArgSelector::isSetDefaultValueSupported()
{
- return TRUE;
+ return true;
}
void ExtArgSelector::setDefaultValue()
@@ -400,7 +400,7 @@ bool ExtArgRadio::isValid()
bool ExtArgRadio::isSetDefaultValueSupported()
{
- return TRUE;
+ return true;
}
void ExtArgRadio::setDefaultValue()
@@ -503,7 +503,7 @@ bool ExtArgBool::defaultBool()
if (_argument)
{
- if (extcap_complex_get_bool(_argument->default_complex) == (gboolean)TRUE)
+ if (extcap_complex_get_bool(_argument->default_complex) == true)
result = true;
}
@@ -517,7 +517,7 @@ QString ExtArgBool::defaultValue()
bool ExtArgBool::isSetDefaultValueSupported()
{
- return TRUE;
+ return true;
}
void ExtArgBool::setDefaultValue()
@@ -624,7 +624,7 @@ bool ExtArgText::isValid()
bool ExtArgText::isSetDefaultValueSupported()
{
- return TRUE;
+ return true;
}
void ExtArgText::setDefaultValue()
@@ -660,14 +660,14 @@ QWidget * ExtArgNumber::createEditor(QWidget * parent)
val = extcap_complex_get_int(_argument->range_start);
else if (_argument->arg_type == EXTCAP_ARG_UNSIGNED)
{
- guint tmp = extcap_complex_get_uint(_argument->range_start);
- if (tmp > G_MAXINT)
+ unsigned tmp = extcap_complex_get_uint(_argument->range_start);
+ if (tmp > INT_MAX)
{
ws_log(LOG_DOMAIN_CAPTURE, LOG_LEVEL_DEBUG, "Defined value for range_start of %s exceeds valid integer range", _argument->call);
- val = G_MAXINT;
+ val = INT_MAX;
}
else
- val = (gint)tmp;
+ val = (int)tmp;
}
textValidator->setBottom(val);
@@ -685,14 +685,14 @@ QWidget * ExtArgNumber::createEditor(QWidget * parent)
val = extcap_complex_get_int(_argument->range_end);
else if (_argument->arg_type == EXTCAP_ARG_UNSIGNED)
{
- guint tmp = extcap_complex_get_uint(_argument->range_end);
- if (tmp > G_MAXINT)
+ unsigned tmp = extcap_complex_get_uint(_argument->range_end);
+ if (tmp > INT_MAX)
{
ws_log(LOG_DOMAIN_CAPTURE, LOG_LEVEL_DEBUG, "Defined value for range_end of %s exceeds valid integer range", _argument->call);
- val = G_MAXINT;
+ val = INT_MAX;
}
else
- val = (gint)tmp;
+ val = (int)tmp;
}
textValidator->setTop(val);
@@ -813,7 +813,7 @@ ExtcapValueList ExtcapArgument::loadValues(QString parent)
QString call = QString().fromUtf8(v->call);
ExtcapValue element = ExtcapValue(display, call,
- v->enabled == (gboolean)TRUE, v->is_default == (gboolean)TRUE);
+ v->enabled == true, v->is_default == true);
if (!call.isEmpty())
element.setChildren(this->loadValues(call));
@@ -914,7 +914,7 @@ QString ExtcapArgument::defaultValue()
{
if (_argument != 0 && _argument->default_complex != 0)
{
- gchar * str = extcap_get_complex_as_string(_argument->default_complex);
+ char * str = extcap_get_complex_as_string(_argument->default_complex);
if (str != nullptr)
return gchar_free_to_qstring(str);
}
@@ -953,7 +953,7 @@ bool ExtcapArgument::isRequired()
if (_argument != NULL)
return _argument->is_required;
- return FALSE;
+ return false;
}
bool ExtcapArgument::reload()
@@ -969,7 +969,7 @@ bool ExtcapArgument::fileExists()
if (_argument != NULL)
return _argument->fileexists;
- return FALSE;
+ return false;
}
bool ExtcapArgument::isDefault()
@@ -1034,7 +1034,7 @@ void ExtcapArgument::onBoolChanged(bool)
bool ExtcapArgument::isSetDefaultValueSupported()
{
- return FALSE;
+ return false;
}
void ExtcapArgument::setDefaultValue()
diff --git a/ui/qt/extcap_argument_multiselect.cpp b/ui/qt/extcap_argument_multiselect.cpp
index 6f816b98dd..4eb2e4d5a8 100644
--- a/ui/qt/extcap_argument_multiselect.cpp
+++ b/ui/qt/extcap_argument_multiselect.cpp
@@ -212,7 +212,7 @@ QString ExtArgMultiSelect::defaultValue()
bool ExtArgMultiSelect::isSetDefaultValueSupported()
{
- return TRUE;
+ return true;
}
void ExtArgMultiSelect::setDefaultValue()
diff --git a/ui/qt/extcap_options_dialog.cpp b/ui/qt/extcap_options_dialog.cpp
index daecbc99e0..014a949aef 100644
--- a/ui/qt/extcap_options_dialog.cpp
+++ b/ui/qt/extcap_options_dialog.cpp
@@ -9,8 +9,6 @@
#include <config.h>
-#include <glib.h>
-
#include <extcap_options_dialog.h>
#include <ui_extcap_options_dialog.h>
@@ -80,7 +78,7 @@ ExtcapOptionsDialog * ExtcapOptionsDialog::createForDevice(QString &dev_name, bo
interface_t *device;
ExtcapOptionsDialog * resultDialog = NULL;
bool dev_found = false;
- guint if_idx;
+ unsigned if_idx;
if (dev_name.length() == 0)
return NULL;
@@ -221,7 +219,7 @@ void ExtcapOptionsDialog::loadArguments()
extcapArguments << optional;
/* argument items are now owned by ExtcapArgument. Only free the lists */
- extcap_free_if_configuration(arguments, FALSE);
+ extcap_free_if_configuration(arguments, false);
}
void ExtcapOptionsDialog::updateWidgets()
@@ -448,8 +446,8 @@ bool ExtcapOptionsDialog::saveOptionToCaptureInfo()
continue;
}
- gchar * call_string = qstring_strdup(call);
- gchar * value_string = NULL;
+ char * call_string = qstring_strdup(call);
+ char * value_string = NULL;
if (value.length() > 0)
value_string = qstring_strdup(value);
@@ -622,7 +620,7 @@ GHashTable *ExtcapOptionsDialog::getArgumentSettings(bool useCallsAsKey, bool in
if ((key.length() > 0) && (includeEmptyValues || isBoolflag || value.length() > 0) )
{
- gchar * val = qstring_strdup(value);
+ char * val = qstring_strdup(value);
g_hash_table_insert(entries, qstring_strdup(key), val);
}
@@ -682,7 +680,7 @@ ExtcapValueList ExtcapOptionsDialog::loadValuesFor(int argNum, QString argumentN
QString call = QString().fromUtf8(v->call);
ExtcapValue element = ExtcapValue(display, call,
- v->enabled == (gboolean)TRUE, v->is_default == (gboolean)TRUE);
+ v->enabled == true, v->is_default == true);
#if 0
/* TODO: Disabled due to wrong parent handling. It leads to an infinite loop for now. To implement this properly, other things
diff --git a/ui/qt/extcap_options_dialog.h b/ui/qt/extcap_options_dialog.h
index a38808e84a..ddf82165fd 100644
--- a/ui/qt/extcap_options_dialog.h
+++ b/ui/qt/extcap_options_dialog.h
@@ -50,7 +50,7 @@ private:
Ui::ExtcapOptionsDialog *ui;
QString device_name;
- guint device_idx;
+ unsigned device_idx;
QIcon defaultValueIcon_;
ExtcapArgumentList extcapArguments;
diff --git a/ui/qt/file_set_dialog.cpp b/ui/qt/file_set_dialog.cpp
index 70f3891418..0cb2d23261 100644
--- a/ui/qt/file_set_dialog.cpp
+++ b/ui/qt/file_set_dialog.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include "file.h"
#include "fileset.h"
diff --git a/ui/qt/file_set_dialog.h b/ui/qt/file_set_dialog.h
index d4158898d2..defdeda629 100644
--- a/ui/qt/file_set_dialog.h
+++ b/ui/qt/file_set_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "file.h"
#include "fileset.h"
diff --git a/ui/qt/filter_dialog.cpp b/ui/qt/filter_dialog.cpp
index f96043055d..e161761185 100644
--- a/ui/qt/filter_dialog.cpp
+++ b/ui/qt/filter_dialog.cpp
@@ -9,8 +9,6 @@
#include <config.h>
-#include <glib.h>
-
#include <wsutil/filter_files.h>
#include <wsutil/filesystem.h>
@@ -59,7 +57,7 @@ FilterDialog::FilterDialog(QWidget *parent, FilterType filter_type, QString new_
ui->filterTreeView->setAcceptDrops(true);
ui->filterTreeView->setDropIndicatorShown(true);
- const gchar * filename = NULL;
+ const char * filename = NULL;
QString newFilterText;
switch (filter_type) {
case CaptureFilter:
@@ -95,7 +93,7 @@ FilterDialog::FilterDialog(QWidget *parent, FilterType filter_type, QString new_
connect(ui->filterTreeView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &FilterDialog::selectionChanged);
- QString abs_path = gchar_free_to_qstring(get_persconffile_path(filename, TRUE));
+ QString abs_path = gchar_free_to_qstring(get_persconffile_path(filename, true));
if (file_exists(abs_path.toUtf8().constData())) {
ui->pathLabel->setText(abs_path);
ui->pathLabel->setUrl(QUrl::fromLocalFile(abs_path).toString());
diff --git a/ui/qt/filter_expression_frame.cpp b/ui/qt/filter_expression_frame.cpp
index 38975977fb..dd40b3faaf 100644
--- a/ui/qt/filter_expression_frame.cpp
+++ b/ui/qt/filter_expression_frame.cpp
@@ -144,7 +144,7 @@ void FilterExpressionFrame::on_buttonBox_accepted()
}
else
{
- filter_expression_new(label_ba.constData(), expr_ba.constData(), comment_ba.constData(), TRUE);
+ filter_expression_new(label_ba.constData(), expr_ba.constData(), comment_ba.constData(), true);
}
save_migrated_uat("Display expressions", &prefs.filter_expressions_old);
diff --git a/ui/qt/firewall_rules_dialog.cpp b/ui/qt/firewall_rules_dialog.cpp
index a74355e1c0..b2bc5e7d5f 100644
--- a/ui/qt/firewall_rules_dialog.cpp
+++ b/ui/qt/firewall_rules_dialog.cpp
@@ -127,15 +127,15 @@ void FirewallRulesDialog::updateWidgets()
}
#define ADDR_BUF_LEN 200
-void FirewallRulesDialog::addRule(QString description, syntax_func rule_func, address *addr, guint32 port)
+void FirewallRulesDialog::addRule(QString description, syntax_func rule_func, address *addr, uint32_t port)
{
if (!rule_func) return;
char addr_buf[ADDR_BUF_LEN];
QString comment_pfx = firewall_product_comment_prefix(prod_);
GString *rule_str = g_string_new("");
- gboolean inbound = ui->inboundCheckBox->isChecked();
- gboolean deny = ui->denyCheckBox->isChecked();
+ bool inbound = ui->inboundCheckBox->isChecked();
+ bool deny = ui->denyCheckBox->isChecked();
address_to_str_buf(addr, addr_buf, ADDR_BUF_LEN);
rule_func(rule_str, addr_buf, port, ptype_, inbound, deny);
@@ -145,7 +145,7 @@ void FirewallRulesDialog::addRule(QString description, syntax_func rule_func, ad
ui->textBrowser->append(comment_line);
ui->textBrowser->append(rule_str->str);
- g_string_free(rule_str, TRUE);
+ g_string_free(rule_str, true);
}
diff --git a/ui/qt/firewall_rules_dialog.h b/ui/qt/firewall_rules_dialog.h
index e14456f459..9d29804811 100644
--- a/ui/qt/firewall_rules_dialog.h
+++ b/ui/qt/firewall_rules_dialog.h
@@ -20,7 +20,7 @@ class FirewallRulesDialog;
class QAbstractButton;
-typedef void (*syntax_func)(GString *rtxt, gchar *addr, guint32 port, port_type ptype, gboolean inbound, gboolean deny);
+typedef void (*syntax_func)(GString *rtxt, char *addr, uint32_t port, port_type ptype, bool inbound, bool deny);
class FirewallRulesDialog : public WiresharkDialog
{
@@ -50,11 +50,11 @@ private:
address net_src_;
address net_dst_;
port_type ptype_;
- guint32 src_port_;
- guint32 dst_port_;
+ uint32_t src_port_;
+ uint32_t dst_port_;
void updateWidgets();
- void addRule(QString description, syntax_func rule_func, address *addr, guint32 port);
+ void addRule(QString description, syntax_func rule_func, address *addr, uint32_t port);
};
#endif // FIREWALL_RULES_DIALOG_H
diff --git a/ui/qt/follow_stream_action.cpp b/ui/qt/follow_stream_action.cpp
index c9a946a1d6..0be2d56175 100644
--- a/ui/qt/follow_stream_action.cpp
+++ b/ui/qt/follow_stream_action.cpp
@@ -9,7 +9,6 @@
#include <config.h>
-#include <glib.h>
#include <epan/packet_info.h>
#include <epan/proto_data.h>
#include <epan/packet.h>
diff --git a/ui/qt/follow_stream_action.h b/ui/qt/follow_stream_action.h
index 8c7c58e314..5357bae49c 100644
--- a/ui/qt/follow_stream_action.h
+++ b/ui/qt/follow_stream_action.h
@@ -12,7 +12,6 @@
#include "config.h"
-#include <glib.h>
#include <epan/packet_info.h>
#include <epan/follow.h>
diff --git a/ui/qt/follow_stream_dialog.cpp b/ui/qt/follow_stream_dialog.cpp
index fd29875408..532d37f515 100644
--- a/ui/qt/follow_stream_dialog.cpp
+++ b/ui/qt/follow_stream_dialog.cpp
@@ -62,7 +62,7 @@ static int info_update_freq_ = 100;
static QMutex loop_break_mutex;
// Indicates that a Follow Stream is currently running
-static gboolean isReadRunning;
+static bool isReadRunning;
Q_DECLARE_METATYPE(bytes_show_type)
@@ -327,7 +327,7 @@ void FollowStreamDialog::saveAs()
QFile file(file_name);
if (!file.open(QIODevice::WriteOnly)) {
- open_failure_alert_box(file_name.toUtf8().constData(), errno, TRUE);
+ open_failure_alert_box(file_name.toUtf8().constData(), errno, true);
return;
}
@@ -378,7 +378,7 @@ void FollowStreamDialog::close()
// previous_filter if 'Close' (passed in follow() method)
// filter_out_filter_ if 'Filter Out This Stream' (built by appending !current_stream to previous_filter)
// leave filter alone if window closed. (current stream)
- emit updateFilter(output_filter_, TRUE);
+ emit updateFilter(output_filter_, true);
WiresharkDialog::close();
}
@@ -448,7 +448,7 @@ void FollowStreamDialog::streamNumberSpinBoxValueChanged(int stream_num)
sub_stream_num = ui->subStreamNumberSpinBox->value();
ui->subStreamNumberSpinBox->blockSignals(false);
- gboolean ok;
+ bool ok;
if (ui->subStreamNumberSpinBox->isVisible()) {
/* We need to find a suitable sub stream for the new stream */
follow_sub_stream_id_func sub_stream_func;
@@ -459,7 +459,7 @@ void FollowStreamDialog::streamNumberSpinBoxValueChanged(int stream_num)
return;
}
- guint sub_stream_num_new = static_cast<guint>(sub_stream_num);
+ unsigned sub_stream_num_new = static_cast<unsigned>(sub_stream_num);
if (sub_stream_num < 0) {
// Stream ID 0 should always exist as it is used for control messages.
// XXX: That is only guaranteed for HTTP2. For example, in QUIC,
@@ -471,14 +471,14 @@ void FollowStreamDialog::streamNumberSpinBoxValueChanged(int stream_num)
// follow? Right now the substream spinbox is left active and
// the user can change the value to no effect.
sub_stream_num_new = 0;
- ok = TRUE;
+ ok = true;
} else {
- ok = sub_stream_func(static_cast<guint>(stream_num), sub_stream_num_new, FALSE, &sub_stream_num_new);
+ ok = sub_stream_func(static_cast<unsigned>(stream_num), sub_stream_num_new, false, &sub_stream_num_new);
if (!ok) {
- ok = sub_stream_func(static_cast<guint>(stream_num), sub_stream_num_new, TRUE, &sub_stream_num_new);
+ ok = sub_stream_func(static_cast<unsigned>(stream_num), sub_stream_num_new, true, &sub_stream_num_new);
}
}
- sub_stream_num = static_cast<gint>(sub_stream_num_new);
+ sub_stream_num = static_cast<int>(sub_stream_num_new);
} else {
/* XXX: For HTTP and TLS, we use the TCP stream index, and really should
* return false if the TCP stream doesn't have HTTP or TLS. (Or we could
@@ -511,20 +511,20 @@ void FollowStreamDialog::subStreamNumberSpinBoxValueChanged(int sub_stream_num)
return;
}
- guint sub_stream_num_new = static_cast<guint>(sub_stream_num);
- gboolean ok;
+ unsigned sub_stream_num_new = static_cast<unsigned>(sub_stream_num);
+ bool ok;
/* previous_sub_stream_num_ is a hack to track which buttons was pressed without event handling */
if (sub_stream_num < 0) {
// Stream ID 0 should always exist as it is used for control messages.
// XXX: That is only guaranteed for HTTP2, see above.
sub_stream_num_new = 0;
- ok = TRUE;
+ ok = true;
} else if (previous_sub_stream_num_ < sub_stream_num) {
- ok = sub_stream_func(static_cast<guint>(stream_num), sub_stream_num_new, FALSE, &sub_stream_num_new);
+ ok = sub_stream_func(static_cast<unsigned>(stream_num), sub_stream_num_new, false, &sub_stream_num_new);
} else {
- ok = sub_stream_func(static_cast<guint>(stream_num), sub_stream_num_new, TRUE, &sub_stream_num_new);
+ ok = sub_stream_func(static_cast<unsigned>(stream_num), sub_stream_num_new, true, &sub_stream_num_new);
}
- sub_stream_num = static_cast<gint>(sub_stream_num_new);
+ sub_stream_num = static_cast<int>(sub_stream_num_new);
if (ok) {
follow(previous_filter_, true, stream_num, sub_stream_num);
@@ -563,13 +563,12 @@ void FollowStreamDialog::resetStream()
FollowStreamDialog::resetStream(&follow_info_);
}
-frs_return_t
-FollowStreamDialog::readStream()
+void FollowStreamDialog::readStream()
{
// interrupt any reading already running
loop_break_mutex.lock();
- isReadRunning = FALSE;
+ isReadRunning = false;
loop_break_mutex.unlock();
double scroll_ratio = 0.0;
@@ -596,8 +595,6 @@ FollowStreamDialog::readStream()
ui->teStreamContent->setWordWrapMode(QTextOption::WrapAnywhere);
}
- frs_return_t ret;
-
client_buffer_count_ = 0;
server_buffer_count_ = 0;
client_packet_count_ = 0;
@@ -605,19 +602,16 @@ FollowStreamDialog::readStream()
last_packet_ = 0;
turns_ = 0;
- if (follower_) {
- ret = readFollowStream();
- } else {
- ret = (frs_return_t)0;
+ if (!follower_) {
ws_assert_not_reached();
}
+ readFollowStream();
+
ui->teStreamContent->moveCursor(QTextCursor::Start);
doc_length = ui->teStreamContent->verticalScrollBar()->maximum() + ui->teStreamContent->verticalScrollBar()->pageStep();
ui->teStreamContent->verticalScrollBar()->setValue(doc_length * scroll_ratio);
-
- return ret;
}
void
@@ -626,7 +620,7 @@ FollowStreamDialog::followStream()
readStream();
}
-void FollowStreamDialog::addText(QString text, gboolean is_from_server, guint32 packet_num, gboolean colorize)
+void FollowStreamDialog::addText(QString text, bool is_from_server, uint32_t packet_num, bool colorize)
{
ui->teStreamContent->addText(std::move(text), is_from_server, packet_num, colorize);
}
@@ -690,19 +684,18 @@ static inline void sanitize_buffer(QByteArray &buffer, size_t nchars) {
#endif
if (buffer.at(i) == '\n' || buffer.at(i) == '\r' || buffer.at(i) == '\t')
continue;
- if (! g_ascii_isprint((guchar)buffer.at(i))) {
+ if (! g_ascii_isprint((unsigned char)buffer.at(i))) {
buffer[i] = '.';
}
}
}
-frs_return_t
-FollowStreamDialog::showBuffer(QByteArray &buffer, size_t nchars, gboolean is_from_server, guint32 packet_num,
- nstime_t abs_ts, guint32 *global_pos)
+void FollowStreamDialog::showBuffer(QByteArray &buffer, size_t nchars, bool is_from_server, uint32_t packet_num,
+ nstime_t abs_ts, uint32_t *global_pos)
{
- gchar initbuf[256];
- guint32 current_pos;
- static const gchar hexchars[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
+ char initbuf[256];
+ uint32_t current_pos;
+ static const char hexchars[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
bool show_delta = false;
if (last_packet_ == 0) {
@@ -729,7 +722,7 @@ FollowStreamDialog::showBuffer(QByteArray &buffer, size_t nchars, gboolean is_fr
case SHOW_EBCDIC:
{
/* If our native arch is ASCII, call: */
- EBCDIC_to_ASCII((uint8_t*)buffer.data(), (guint) nchars);
+ EBCDIC_to_ASCII((uint8_t*)buffer.data(), (unsigned) nchars);
if (show_delta) {
ui->teStreamContent->addDeltaTime(delta);
}
@@ -778,9 +771,9 @@ FollowStreamDialog::showBuffer(QByteArray &buffer, size_t nchars, gboolean is_fr
case SHOW_HEXDUMP:
current_pos = 0;
while (current_pos < nchars) {
- gchar hexbuf[256];
+ char hexbuf[256];
int i;
- gchar *cur = hexbuf, *ascii_start;
+ char *cur = hexbuf, *ascii_start;
/* is_from_server indentation : put 4 spaces at the
* beginning of the string */
@@ -808,7 +801,7 @@ FollowStreamDialog::showBuffer(QByteArray &buffer, size_t nchars, gboolean is_fr
/* Now dump bytes as text */
for (i = 0; i < 16 && current_pos + i < nchars; i++) {
*cur++ =
- (g_ascii_isprint((guchar)buffer.at(current_pos + i)) ?
+ (g_ascii_isprint((unsigned char)buffer.at(current_pos + i)) ?
buffer.at(current_pos + i) : '.');
if (i == 7) {
*cur++ = ' ';
@@ -832,7 +825,7 @@ FollowStreamDialog::showBuffer(QByteArray &buffer, size_t nchars, gboolean is_fr
addText(initbuf, is_from_server, packet_num);
while (current_pos < nchars) {
- gchar hexbuf[256];
+ char hexbuf[256];
int i, cur;
cur = 0;
@@ -961,11 +954,9 @@ DIAG_ON(stringop-overread)
turns_++;
}
}
-
- return FRS_OK;
}
-bool FollowStreamDialog::follow(QString previous_filter, bool use_stream_index, guint stream_num, guint sub_stream_num)
+bool FollowStreamDialog::follow(QString previous_filter, bool use_stream_index, unsigned stream_num, unsigned sub_stream_num)
{
QString follow_filter;
const char *hostname0 = NULL, *hostname1 = NULL;
@@ -973,7 +964,7 @@ bool FollowStreamDialog::follow(QString previous_filter, bool use_stream_index,
QString server_to_client_string;
QString client_to_server_string;
QString both_directions_string;
- gboolean is_follower = FALSE;
+ bool is_follower = false;
int stream_count;
follow_stream_count_func stream_count_func = NULL;
@@ -1053,9 +1044,9 @@ bool FollowStreamDialog::follow(QString previous_filter, bool use_stream_index,
follow_sub_stream_id_func sub_stream_func;
sub_stream_func = get_follow_sub_stream_id_func(follower_);
if (sub_stream_func != NULL) {
- guint substream_max_id = 0;
- sub_stream_func(static_cast<guint>(stream_num), G_MAXINT32, TRUE, &substream_max_id);
- stream_count = static_cast<gint>(substream_max_id);
+ unsigned substream_max_id = 0;
+ sub_stream_func(static_cast<unsigned>(stream_num), INT32_MAX, true, &substream_max_id);
+ stream_count = static_cast<int>(substream_max_id);
ui->subStreamNumberSpinBox->blockSignals(true);
ui->subStreamNumberSpinBox->setEnabled(true);
ui->subStreamNumberSpinBox->setMaximum(stream_count);
@@ -1099,7 +1090,7 @@ bool FollowStreamDialog::follow(QString previous_filter, bool use_stream_index,
* periodically in a callback, provided that can be done without causing
* issues with changing the Decode As type.)
*/
- emit updateFilter(follow_filter, TRUE);
+ emit updateFilter(follow_filter, true);
removeTapListeners();
@@ -1173,7 +1164,7 @@ bool FollowStreamDialog::follow(QString previous_filter, bool use_stream_index,
endRetapPackets();
if (prefs.restore_filter_after_following_stream) {
- emit updateFilter(previous_filter_, TRUE);
+ emit updateFilter(previous_filter_, true);
}
return true;
@@ -1187,14 +1178,12 @@ void FollowStreamDialog::captureFileClosed()
WiresharkDialog::captureFileClosed();
}
-frs_return_t
-FollowStreamDialog::readFollowStream()
+void FollowStreamDialog::readFollowStream()
{
- guint32 global_client_pos = 0, global_server_pos = 0;
- guint32 *global_pos;
- gboolean skip;
+ uint32_t global_client_pos = 0, global_server_pos = 0;
+ uint32_t *global_pos;
+ bool skip;
GList* cur;
- frs_return_t frs_return;
follow_record_t *follow_record;
QElapsedTimer elapsed_timer;
QByteArray buffer;
@@ -1202,23 +1191,23 @@ FollowStreamDialog::readFollowStream()
elapsed_timer.start();
loop_break_mutex.lock();
- isReadRunning = TRUE;
+ isReadRunning = true;
loop_break_mutex.unlock();
for (cur = g_list_last(follow_info_.payload); cur; cur = g_list_previous(cur)) {
if (dialogClosed() || !isReadRunning) break;
follow_record = (follow_record_t *)cur->data;
- skip = FALSE;
+ skip = false;
if (!follow_record->is_server) {
global_pos = &global_client_pos;
if (follow_info_.show_stream == FROM_SERVER) {
- skip = TRUE;
+ skip = true;
}
} else {
global_pos = &global_server_pos;
if (follow_info_.show_stream == FROM_CLIENT) {
- skip = TRUE;
+ skip = true;
}
}
@@ -1227,15 +1216,13 @@ FollowStreamDialog::readFollowStream()
// modified. Try to avoid doing that as much as possible
// (and avoid new memory allocations that have to be freed).
buffer.setRawData((char*)follow_record->data->data, follow_record->data->len);
- frs_return = showBuffer(
- buffer,
- follow_record->data->len,
- follow_record->is_server,
- follow_record->packet_num,
- follow_record->abs_ts,
- global_pos);
- if (frs_return == FRS_PRINT_ERROR)
- return frs_return;
+ showBuffer(
+ buffer,
+ follow_record->data->len,
+ follow_record->is_server,
+ follow_record->packet_num,
+ follow_record->abs_ts,
+ global_pos);
if (elapsed_timer.elapsed() > info_update_freq_) {
fillHintLabel(ui->teStreamContent->currentPacket());
mainApp->processEvents();
@@ -1245,9 +1232,7 @@ FollowStreamDialog::readFollowStream()
}
loop_break_mutex.lock();
- isReadRunning = FALSE;
+ isReadRunning = false;
loop_break_mutex.unlock();
-
- return FRS_OK;
}
diff --git a/ui/qt/follow_stream_dialog.h b/ui/qt/follow_stream_dialog.h
index 40a0ec95ce..859c05346f 100644
--- a/ui/qt/follow_stream_dialog.h
+++ b/ui/qt/follow_stream_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <stdio.h>
#ifdef HAVE_UNISTD_H
@@ -44,7 +42,7 @@ public:
~FollowStreamDialog();
void addCodecs(const QMap<QString, QTextCodec *> &codecMap);
- bool follow(QString previous_filter = QString(), bool use_stream_index = false, guint stream_num = 0, guint sub_stream_num = 0);
+ bool follow(QString previous_filter = QString(), bool use_stream_index = false, unsigned stream_num = 0, unsigned sub_stream_num = 0);
protected:
bool eventFilter(QObject *obj, QEvent *event);
@@ -86,16 +84,13 @@ private:
void resetStream(void);
void updateWidgets(bool follow_in_progress);
void updateWidgets() { updateWidgets(false); } // Needed for WiresharkDialog?
- frs_return_t
- showBuffer(QByteArray &buffer, size_t nchars, gboolean is_from_server,
- guint32 packet_num, nstime_t abs_ts, guint32 *global_pos);
-
- frs_return_t readStream();
- frs_return_t readFollowStream();
- frs_return_t readSslStream();
+ void showBuffer(QByteArray &buffer, size_t nchars, bool is_from_server,
+ uint32_t packet_num, nstime_t abs_ts, uint32_t *global_pos);
+ void readStream();
+ void readFollowStream();
void followStream();
- void addText(QString text, gboolean is_from_server, guint32 packet_num, gboolean colorize = true);
+ void addText(QString text, bool is_from_server, uint32_t packet_num, bool colorize = true);
Ui::FollowStreamDialog *ui;
@@ -114,8 +109,8 @@ private:
int server_buffer_count_;
int client_packet_count_;
int server_packet_count_;
- guint32 last_packet_;
- gboolean last_from_server_;
+ uint32_t last_packet_;
+ bool last_from_server_;
nstime_t last_ts_;
int turns_;
diff --git a/ui/qt/font_color_preferences_frame.cpp b/ui/qt/font_color_preferences_frame.cpp
index 0a09e0f437..ceb94c31b7 100644
--- a/ui/qt/font_color_preferences_frame.cpp
+++ b/ui/qt/font_color_preferences_frame.cpp
@@ -15,6 +15,7 @@
#include <ui_font_color_preferences_frame.h>
#include <ui/qt/utils/color_utils.h>
#include "main_application.h"
+#include "wsutil/array.h"
#include <functional>
#include <QFontDialog>
@@ -28,7 +29,7 @@ static const char *font_pangrams_[] = {
QT_TRANSLATE_NOOP("FontColorPreferencesFrame", "Example GIF query packets have jumbo window sizes"),
QT_TRANSLATE_NOOP("FontColorPreferencesFrame", "Lazy badgers move unique waxy jellyfish packets")
};
-const int num_font_pangrams_ = (sizeof font_pangrams_ / sizeof font_pangrams_[0]);
+const int num_font_pangrams_ = array_length(font_pangrams_);
FontColorPreferencesFrame::FontColorPreferencesFrame(QWidget *parent) :
QFrame(parent),
@@ -78,7 +79,7 @@ void FontColorPreferencesFrame::showEvent(QShowEvent *)
void FontColorPreferencesFrame::updateWidgets()
{
- gint colorstyle;
+ int colorstyle;
QColor foreground;
QColor background1;
QColor background2;
diff --git a/ui/qt/funnel_statistics.cpp b/ui/qt/funnel_statistics.cpp
index f5ed674563..943c354bb3 100644
--- a/ui/qt/funnel_statistics.cpp
+++ b/ui/qt/funnel_statistics.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include "epan/color_filters.h"
#include "file.h"
@@ -43,23 +41,23 @@
extern "C" {
static struct _funnel_text_window_t* text_window_new(funnel_ops_id_t *ops_id, const char* title);
-static void string_dialog_new(funnel_ops_id_t *ops_id, const gchar* title, const gchar** field_names, const gchar** field_values, funnel_dlg_cb_t dialog_cb, void* dialog_cb_data, funnel_dlg_cb_data_free_t dialog_cb_data_free);
+static void string_dialog_new(funnel_ops_id_t *ops_id, const char* title, const char** field_names, const char** field_values, funnel_dlg_cb_t dialog_cb, void* dialog_cb_data, funnel_dlg_cb_data_free_t dialog_cb_data_free);
static void funnel_statistics_retap_packets(funnel_ops_id_t *ops_id);
static void funnel_statistics_copy_to_clipboard(GString *text);
-static const gchar *funnel_statistics_get_filter(funnel_ops_id_t *ops_id);
+static const char *funnel_statistics_get_filter(funnel_ops_id_t *ops_id);
static void funnel_statistics_set_filter(funnel_ops_id_t *ops_id, const char* filter_string);
-static gchar* funnel_statistics_get_color_filter_slot(guint8 filter_num);
-static void funnel_statistics_set_color_filter_slot(guint8 filter_num, const gchar* filter_string);
-static gboolean funnel_statistics_open_file(funnel_ops_id_t *ops_id, const char* fname, const char* filter, char**);
+static char* funnel_statistics_get_color_filter_slot(uint8_t filter_num);
+static void funnel_statistics_set_color_filter_slot(uint8_t filter_num, const char* filter_string);
+static bool funnel_statistics_open_file(funnel_ops_id_t *ops_id, const char* fname, const char* filter, char**);
static void funnel_statistics_reload_packets(funnel_ops_id_t *ops_id);
static void funnel_statistics_redissect_packets(funnel_ops_id_t *ops_id);
static void funnel_statistics_reload_lua_plugins(funnel_ops_id_t *ops_id);
static void funnel_statistics_apply_filter(funnel_ops_id_t *ops_id);
-static gboolean browser_open_url(const gchar *url);
-static void browser_open_data_file(const gchar *filename);
-static struct progdlg *progress_window_new(funnel_ops_id_t *ops_id, const gchar* title, const gchar* task, gboolean terminate_is_stop, gboolean *stop_flag);
-static void progress_window_update(struct progdlg *progress_dialog, float percentage, const gchar* status);
+static bool browser_open_url(const char *url);
+static void browser_open_data_file(const char *filename);
+static struct progdlg *progress_window_new(funnel_ops_id_t *ops_id, const char* title, const char* task, bool terminate_is_stop, bool *stop_flag);
+static void progress_window_update(struct progdlg *progress_dialog, float percentage, const char* status);
static void progress_window_destroy(struct progdlg *progress_dialog);
}
@@ -67,14 +65,14 @@ FunnelAction::FunnelAction(QObject *parent) :
QAction(parent),
callback_(nullptr),
callback_data_(NULL),
- retap_(FALSE),
+ retap_(false),
packetCallback_(nullptr),
packetData_(NULL)
{
}
-FunnelAction::FunnelAction(QString title, funnel_menu_callback callback, gpointer callback_data, gboolean retap, QObject *parent = nullptr) :
+FunnelAction::FunnelAction(QString title, funnel_menu_callback callback, void *callback_data, bool retap, QObject *parent = nullptr) :
QAction(parent),
title_(title),
callback_(callback),
@@ -89,7 +87,7 @@ FunnelAction::FunnelAction(QString title, funnel_menu_callback callback, gpointe
packetRequiredFields_ = QSet<QString>();
}
-FunnelAction::FunnelAction(QString title, funnel_packet_menu_callback callback, gpointer callback_data, gboolean retap, const char *packet_required_fields, QObject *parent = nullptr) :
+FunnelAction::FunnelAction(QString title, funnel_packet_menu_callback callback, void *callback_data, bool retap, const char *packet_required_fields, QObject *parent = nullptr) :
QAction(parent),
title_(title),
callback_data_(callback_data),
@@ -248,7 +246,7 @@ void FunnelConsoleAction::triggerCallback() {
static QHash<int, QList<FunnelAction *> > funnel_actions_;
const QString FunnelStatistics::action_name_ = "FunnelStatisticsAction";
-static gboolean menus_registered = FALSE;
+static bool menus_registered;
struct _funnel_ops_id_t {
FunnelStatistics *funnel_statistics;
@@ -313,7 +311,7 @@ void FunnelStatistics::retapPackets()
capture_file_.retapPackets();
}
-struct progdlg *FunnelStatistics::progressDialogNew(const gchar *task_title, const gchar *item_title, gboolean terminate_is_stop, gboolean *stop_flag)
+struct progdlg *FunnelStatistics::progressDialogNew(const char *task_title, const char *item_title, bool terminate_is_stop, bool *stop_flag)
{
return create_progress_dlg(parent(), task_title, item_title, terminate_is_stop, stop_flag);
}
@@ -373,7 +371,7 @@ struct _funnel_text_window_t* text_window_new(funnel_ops_id_t *ops_id, const cha
return FunnelTextDialog::textWindowNew(qobject_cast<QWidget *>(ops_id->funnel_statistics->parent()), title);
}
-void string_dialog_new(funnel_ops_id_t *ops_id, const gchar* title, const gchar** field_names, const gchar** field_values, funnel_dlg_cb_t dialog_cb, void* dialog_cb_data, funnel_dlg_cb_data_free_t dialog_cb_data_free)
+void string_dialog_new(funnel_ops_id_t *ops_id, const char* title, const char** field_names, const char** field_values, funnel_dlg_cb_t dialog_cb, void* dialog_cb_data, funnel_dlg_cb_data_free_t dialog_cb_data_free)
{
QList<QPair<QString, QString>> field_list;
for (int i = 0; field_names[i]; i++) {
@@ -398,7 +396,7 @@ void funnel_statistics_copy_to_clipboard(GString *text) {
mainApp->clipboard()->setText(text->str);
}
-const gchar *funnel_statistics_get_filter(funnel_ops_id_t *ops_id) {
+const char *funnel_statistics_get_filter(funnel_ops_id_t *ops_id) {
if (!ops_id || !ops_id->funnel_statistics) return nullptr;
return ops_id->funnel_statistics->displayFilter();
@@ -410,28 +408,28 @@ void funnel_statistics_set_filter(funnel_ops_id_t *ops_id, const char* filter_st
ops_id->funnel_statistics->emitSetDisplayFilter(filter_string);
}
-gchar* funnel_statistics_get_color_filter_slot(guint8 filter_num) {
+char* funnel_statistics_get_color_filter_slot(uint8_t filter_num) {
return color_filters_get_tmp(filter_num);
}
-void funnel_statistics_set_color_filter_slot(guint8 filter_num, const gchar* filter_string) {
- gchar *err_msg = nullptr;
- if (!color_filters_set_tmp(filter_num, filter_string, FALSE, &err_msg)) {
+void funnel_statistics_set_color_filter_slot(uint8_t filter_num, const char* filter_string) {
+ char *err_msg = nullptr;
+ if (!color_filters_set_tmp(filter_num, filter_string, false, &err_msg)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
}
}
-gboolean funnel_statistics_open_file(funnel_ops_id_t *ops_id, const char* fname, const char* filter, char**) {
+bool funnel_statistics_open_file(funnel_ops_id_t *ops_id, const char* fname, const char* filter, char**) {
// XXX We need to return a proper error value. We should probably move
// MainWindow::openCaptureFile to CaptureFile and add error handling
// there.
- if (!ops_id || !ops_id->funnel_statistics) return FALSE;
+ if (!ops_id || !ops_id->funnel_statistics) return false;
QString cf_name(fname);
QString cf_filter(filter);
ops_id->funnel_statistics->emitOpenCaptureFile(cf_name, cf_filter);
- return TRUE;
+ return true;
}
void funnel_statistics_reload_packets(funnel_ops_id_t *ops_id) {
@@ -458,21 +456,21 @@ void funnel_statistics_apply_filter(funnel_ops_id_t *ops_id) {
ops_id->funnel_statistics->emitApplyDisplayFilter();
}
-gboolean browser_open_url(const gchar *url) {
- return QDesktopServices::openUrl(QUrl(url)) ? TRUE : FALSE;
+bool browser_open_url(const char *url) {
+ return QDesktopServices::openUrl(QUrl(url)) ? true : false;
}
-void browser_open_data_file(const gchar *filename) {
+void browser_open_data_file(const char *filename) {
QDesktopServices::openUrl(QUrl::fromLocalFile(filename));
}
-struct progdlg *progress_window_new(funnel_ops_id_t *ops_id, const gchar* task_title, const gchar* item_title, gboolean terminate_is_stop, gboolean *stop_flag) {
+struct progdlg *progress_window_new(funnel_ops_id_t *ops_id, const char* task_title, const char* item_title, bool terminate_is_stop, bool *stop_flag) {
if (!ops_id || !ops_id->funnel_statistics) return nullptr;
return ops_id->funnel_statistics->progressDialogNew(task_title, item_title, terminate_is_stop, stop_flag);
}
-void progress_window_update(struct progdlg *progress_dialog, float percentage, const gchar* status) {
+void progress_window_update(struct progdlg *progress_dialog, float percentage, const char* status) {
update_progress_dlg(progress_dialog, percentage, status);
}
@@ -487,8 +485,8 @@ void register_tap_listener_qt_funnel(void);
static void register_menu_cb(const char *name,
register_stat_group_t group,
funnel_menu_callback callback,
- gpointer callback_data,
- gboolean retap)
+ void *callback_data,
+ bool retap)
{
FunnelAction *funnel_action = new FunnelAction(name, callback, callback_data, retap, mainApp);
if (menus_registered) {
@@ -519,8 +517,8 @@ static void register_menu_cb(const char *name,
static void register_packet_menu_cb(const char *name,
const char *required_fields,
funnel_packet_menu_callback callback,
- gpointer callback_data,
- gboolean retap)
+ void *callback_data,
+ bool retap)
{
FunnelAction *funnel_action = new FunnelAction(name, callback, callback_data, retap, required_fields, mainApp);
MainWindow * mainwindow = qobject_cast<MainWindow *>(mainApp->mainWindow());
@@ -552,7 +550,7 @@ register_tap_listener_qt_funnel(void)
{
funnel_register_all_menus(register_menu_cb);
funnel_statistics_load_console_menus();
- menus_registered = TRUE;
+ menus_registered = true;
}
void
@@ -566,9 +564,9 @@ funnel_statistics_reload_menus(void)
/**
* Returns whether the packet menus have been modified since they were last registered
*
- * @return TRUE if the packet menus were modified since the last registration
+ * @return true if the packet menus were modified since the last registration
*/
-gboolean
+bool
funnel_statistics_packet_menus_modified(void)
{
return funnel_packet_menus_modified();
diff --git a/ui/qt/funnel_statistics.h b/ui/qt/funnel_statistics.h
index 65b36ab891..b6ed12f7f7 100644
--- a/ui/qt/funnel_statistics.h
+++ b/ui/qt/funnel_statistics.h
@@ -26,7 +26,7 @@ struct progdlg;
/**
* Signature of function that can be called from a custom packet menu entry
*/
-typedef void (* funnel_packet_menu_callback)(gpointer, GPtrArray*);
+typedef void (* funnel_packet_menu_callback)(void *, GPtrArray*);
class FunnelStatistics : public QObject
{
@@ -35,7 +35,7 @@ public:
explicit FunnelStatistics(QObject *parent, CaptureFile &cf);
~FunnelStatistics();
void retapPackets();
- struct progdlg *progressDialogNew(const gchar *task_title, const gchar *item_title, gboolean terminate_is_stop, gboolean *stop_flag);
+ struct progdlg *progressDialogNew(const char *task_title, const char *item_title, bool terminate_is_stop, bool *stop_flag);
const char *displayFilter();
void emitSetDisplayFilter(const QString filter);
void reloadPackets();
@@ -68,8 +68,8 @@ class FunnelAction : public QAction
Q_OBJECT
public:
FunnelAction(QObject *parent = nullptr);
- FunnelAction(QString title, funnel_menu_callback callback, gpointer callback_data, gboolean retap, QObject *parent);
- FunnelAction(QString title, funnel_packet_menu_callback callback, gpointer callback_data, gboolean retap, const char *packet_required_fields, QObject *parent);
+ FunnelAction(QString title, funnel_menu_callback callback, void *callback_data, bool retap, QObject *parent);
+ FunnelAction(QString title, funnel_packet_menu_callback callback, void *callback_data, bool retap, const char *packet_required_fields, QObject *parent);
~FunnelAction();
funnel_menu_callback callback() const;
QString title() const;
@@ -89,8 +89,8 @@ private:
QString title_;
QString packetSubmenu_;
funnel_menu_callback callback_;
- gpointer callback_data_;
- gboolean retap_;
+ void *callback_data_;
+ bool retap_;
funnel_packet_menu_callback packetCallback_;
GPtrArray* packetData_;
QSet<QString> packetRequiredFields_;
@@ -120,7 +120,7 @@ extern "C" {
void funnel_statistics_reload_menus(void);
void funnel_statistics_load_packet_menus(void);
void funnel_statistics_load_console_menus(void);
- gboolean funnel_statistics_packet_menus_modified(void);
+ bool funnel_statistics_packet_menus_modified(void);
} // extern "C"
#endif // FUNNELSTATISTICS_H
diff --git a/ui/qt/funnel_string_dialog.cpp b/ui/qt/funnel_string_dialog.cpp
index de52e73fab..c8cffe09f5 100644
--- a/ui/qt/funnel_string_dialog.cpp
+++ b/ui/qt/funnel_string_dialog.cpp
@@ -81,7 +81,7 @@ void FunnelStringDialog::on_buttonBox_accepted()
}
g_ptr_array_add(returns, NULL);
- gchar **user_input = (gchar **)g_ptr_array_free(returns, FALSE);
+ char **user_input = (char **)g_ptr_array_free(returns, false);
dialog_cb_(user_input, dialog_cb_data_);
}
diff --git a/ui/qt/funnel_string_dialog.h b/ui/qt/funnel_string_dialog.h
index bd4f3d352d..2ac277aa8a 100644
--- a/ui/qt/funnel_string_dialog.h
+++ b/ui/qt/funnel_string_dialog.h
@@ -10,8 +10,6 @@
#ifndef FUNNEL_STRING_DIALOG_H
#define FUNNEL_STRING_DIALOG_H
-#include <glib.h>
-
#include "epan/funnel.h"
#include <QDialog>
diff --git a/ui/qt/funnel_text_dialog.cpp b/ui/qt/funnel_text_dialog.cpp
index 84bbb941b4..74c34acbe1 100644
--- a/ui/qt/funnel_text_dialog.cpp
+++ b/ui/qt/funnel_text_dialog.cpp
@@ -113,7 +113,7 @@ void FunnelTextDialog::setCloseCallback(text_win_close_cb_t close_cb, void *clos
close_cb_data_ = close_cb_data;
}
-void FunnelTextDialog::setTextEditable(gboolean editable)
+void FunnelTextDialog::setTextEditable(bool editable)
{
ui->textEdit->setReadOnly(!editable);
}
@@ -214,7 +214,7 @@ void text_window_set_close_cb(funnel_text_window_t *ftw, text_win_close_cb_t clo
}
}
-void text_window_set_editable(funnel_text_window_t *ftw, gboolean editable)
+void text_window_set_editable(funnel_text_window_t *ftw, bool editable)
{
if (ftw) {
ftw->funnel_text_dialog->setTextEditable(editable);
diff --git a/ui/qt/funnel_text_dialog.h b/ui/qt/funnel_text_dialog.h
index 84a313c941..19476dd36b 100644
--- a/ui/qt/funnel_text_dialog.h
+++ b/ui/qt/funnel_text_dialog.h
@@ -10,8 +10,6 @@
#ifndef FUNNEL_TEXT_DIALOG_H
#define FUNNEL_TEXT_DIALOG_H
-#include <glib.h>
-
#include "epan/funnel.h"
#include "geometry_state_dialog.h"
@@ -44,7 +42,7 @@ public:
void clearText();
const char *getText();
void setCloseCallback(text_win_close_cb_t close_cb, void* close_cb_data);
- void setTextEditable(gboolean editable);
+ void setTextEditable(bool editable);
void addButton(funnel_bt_t *button_cb, QString label);
private slots:
@@ -66,7 +64,7 @@ void text_window_prepend(funnel_text_window_t* ftw, const char* text);
void text_window_clear(funnel_text_window_t *ftw);
const char *text_window_get_text(funnel_text_window_t* ftw);
void text_window_set_close_cb(funnel_text_window_t *ftw, text_win_close_cb_t close_cb, void* close_cb_data);
-void text_window_set_editable(funnel_text_window_t* ftw, gboolean editable);
+void text_window_set_editable(funnel_text_window_t* ftw, bool editable);
void text_window_destroy(funnel_text_window_t* ftw);
void text_window_add_button(funnel_text_window_t* ftw, funnel_bt_t* funnel_button, const char* label);
}
diff --git a/ui/qt/geometry_state_dialog.cpp b/ui/qt/geometry_state_dialog.cpp
index eef1b9b3c7..649c6a4472 100644
--- a/ui/qt/geometry_state_dialog.cpp
+++ b/ui/qt/geometry_state_dialog.cpp
@@ -76,13 +76,13 @@ void GeometryStateDialog::saveWindowGeometry()
window_geometry_t geom;
geom.key = NULL;
- geom.set_pos = TRUE;
+ geom.set_pos = true;
geom.x = pos().x();
geom.y = pos().y();
- geom.set_size = TRUE;
+ geom.set_size = true;
geom.width = size().width();
geom.height = size().height();
- geom.set_maximized = TRUE;
+ geom.set_maximized = true;
// XXX: maximized and fullScreen are different window states; we've been
// using the maximized key for fullScreen ever since this was added.
geom.maximized = isFullScreen();
diff --git a/ui/qt/geometry_state_dialog.h b/ui/qt/geometry_state_dialog.h
index b5baf3220c..d49e7e810c 100644
--- a/ui/qt/geometry_state_dialog.h
+++ b/ui/qt/geometry_state_dialog.h
@@ -45,14 +45,23 @@ public:
//
// Additionally, maximized, parent-less dialogs can close to a black screen
// on macOS: https://gitlab.com/wireshark/wireshark/-/issues/12544
+// (aka https://bugreports.qt.io/browse/QTBUG-46701 ), which claims to
+// be fixed in Qt 6.2.0
//
// Pass in the parent on macOS and NULL elsewhere so that we have an
// independent window that un-maximizes correctly.
+//
+// Pass Qt::Window as the flags that we have minimize and maximize buttons, as
+// this class is for dialogs where we want to remember user-set geometry.
+// (We're still at the mercy of the platform and Qt, e.g. recent GNOME defaults
+// to not having min or max buttons, instead requiring right-clicking on the
+// menu title bar to perform the minimize or maximize actions. We can't do
+// anything about that, though users can.)
#ifdef Q_OS_MAC
- explicit GeometryStateDialog(QWidget *parent, Qt::WindowFlags f = Qt::WindowFlags()) : QDialog(parent, f) {}
+ explicit GeometryStateDialog(QWidget *parent, Qt::WindowFlags f = Qt::Window) : QDialog(parent, f) {}
#else
- explicit GeometryStateDialog(QWidget *, Qt::WindowFlags f = Qt::WindowFlags()) : QDialog(NULL, f) {}
+ explicit GeometryStateDialog(QWidget *, Qt::WindowFlags f = Qt::Window) : QDialog(NULL, f) {}
#endif
~GeometryStateDialog();
diff --git a/ui/qt/glib_mainloop_on_qeventloop.cpp b/ui/qt/glib_mainloop_on_qeventloop.cpp
index f715bbc728..c92901b544 100644
--- a/ui/qt/glib_mainloop_on_qeventloop.cpp
+++ b/ui/qt/glib_mainloop_on_qeventloop.cpp
@@ -5,6 +5,8 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
+#include <glib.h>
+
#include <QTimer>
#include "glib_mainloop_on_qeventloop.h"
@@ -24,7 +26,7 @@ GLibPoller::~GLibPoller()
void GLibPoller::run()
{
- gint timeout;
+ int timeout;
mutex_.lock();
while (!isInterruptionRequested())
diff --git a/ui/qt/glib_mainloop_on_qeventloop.h b/ui/qt/glib_mainloop_on_qeventloop.h
index 9f66c68164..9a641e047f 100644
--- a/ui/qt/glib_mainloop_on_qeventloop.h
+++ b/ui/qt/glib_mainloop_on_qeventloop.h
@@ -11,7 +11,6 @@
#include <QThread>
#include <QMutex>
#include <QWaitCondition>
-#include <glib.h>
class GLibPoller : public QThread
{
@@ -26,9 +25,9 @@ protected:
QMutex mutex_;
QWaitCondition dispatched_;
GMainContext *ctx_;
- gint priority_;
+ int priority_;
GPollFD *fds_;
- gint allocated_fds_, nfds_;
+ int allocated_fds_, nfds_;
signals:
void polled(void);
diff --git a/ui/qt/gsm_map_summary_dialog.cpp b/ui/qt/gsm_map_summary_dialog.cpp
index 3652c7c704..ac43aa5fdc 100644
--- a/ui/qt/gsm_map_summary_dialog.cpp
+++ b/ui/qt/gsm_map_summary_dialog.cpp
@@ -16,8 +16,6 @@
#include "config.h"
-#include <glib.h>
-
#include "ui/summary.h"
#include <epan/packet.h>
@@ -376,7 +374,7 @@ register_tap_listener_qt_gsm_map_summary(void)
if (err_p != NULL)
{
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_p->str);
- g_string_free(err_p, TRUE);
+ g_string_free(err_p, true);
exit(1);
}
diff --git a/ui/qt/iax2_analysis_dialog.cpp b/ui/qt/iax2_analysis_dialog.cpp
index 7e3fb82e82..29a8825f9f 100644
--- a/ui/qt/iax2_analysis_dialog.cpp
+++ b/ui/qt/iax2_analysis_dialog.cpp
@@ -134,7 +134,7 @@ public:
}
}
- guint32 frameNum() { return frame_num_; }
+ uint32_t frameNum() { return frame_num_; }
bool frameStatus() { return ok_; }
QList<QVariant> rowData() {
@@ -174,9 +174,9 @@ public:
return QTreeWidgetItem::operator <(other);
}
private:
- guint32 frame_num_;
- guint32 pkt_len_;
- guint32 flags_;
+ uint32_t frame_num_;
+ uint32_t pkt_len_;
+ uint32_t flags_;
double delta_;
double jitter_;
double bandwidth_;
@@ -228,6 +228,9 @@ Iax2AnalysisDialog::Iax2AnalysisDialog(QWidget &parent, CaptureFile &cf) :
this, SLOT(graphClicked(QMouseEvent*)));
graph_ctx_menu_.addAction(ui->actionSaveGraph);
+ ui->streamGraph->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(ui->streamGraph, &QCustomPlot::customContextMenuRequested, this,
+ &Iax2AnalysisDialog::showGraphMenu);
QStringList header_labels;
for (int i = 0; i < ui->forwardTreeWidget->columnCount(); i++) {
@@ -289,9 +292,9 @@ Iax2AnalysisDialog::Iax2AnalysisDialog(QWidget &parent, CaptureFile &cf) :
#if 0
/* Only accept Voice or MiniPacket packets */
- const gchar filter_text[] = "iax2.call && (ip || ipv6)";
+ const char filter_text[] = "iax2.call && (ip || ipv6)";
#else
- const gchar filter_text[] = "iax2 && (ip || ipv6)";
+ const char filter_text[] = "iax2 && (ip || ipv6)";
#endif
dfilter_t *sfcode;
df_error_t *df_err;
@@ -318,7 +321,7 @@ Iax2AnalysisDialog::Iax2AnalysisDialog(QWidget &parent, CaptureFile &cf) :
epan_dissect_t edt;
- epan_dissect_init(&edt, cap_file_.capFile()->epan, TRUE, FALSE);
+ epan_dissect_init(&edt, cap_file_.capFile()->epan, true, false);
epan_dissect_prime_with_dfilter(&edt, sfcode);
epan_dissect_run(&edt, cap_file_.capFile()->cd_t, &cap_file_.capFile()->rec,
frame_tvbuff_new_buffer(&cap_file_.capFile()->provider, fdata, &cap_file_.capFile()->buf),
@@ -337,10 +340,10 @@ Iax2AnalysisDialog::Iax2AnalysisDialog(QWidget &parent, CaptureFile &cf) :
dfilter_free(sfcode);
/* ok, it is a IAX2 frame, so let's get the ip and port values */
- rtpstream_id_copy_pinfo(&(edt.pi),&(fwd_id_),FALSE);
+ rtpstream_id_copy_pinfo(&(edt.pi),&(fwd_id_),false);
/* assume the inverse ip/port combination for the reverse direction */
- rtpstream_id_copy_pinfo(&(edt.pi),&(rev_id_),TRUE);
+ rtpstream_id_copy_pinfo(&(edt.pi),&(rev_id_),true);
epan_dissect_cleanup(&edt);
@@ -652,8 +655,8 @@ void Iax2AnalysisDialog::resetStatistics()
memset(&fwd_statinfo_, 0, sizeof(fwd_statinfo_));
memset(&rev_statinfo_, 0, sizeof(rev_statinfo_));
- fwd_statinfo_.first_packet = TRUE;
- rev_statinfo_.first_packet = TRUE;
+ fwd_statinfo_.first_packet = true;
+ rev_statinfo_.first_packet = true;
fwd_statinfo_.reg_pt = PT_UNDEFINED;
rev_statinfo_.reg_pt = PT_UNDEFINED;
@@ -703,17 +706,17 @@ void Iax2AnalysisDialog::addPacket(bool forward, packet_info *pinfo, const struc
}
// iax2_analysis.c:rtp_packet_save_payload
-const guint8 silence_pcmu_ = 0xff;
-const guint8 silence_pcma_ = 0x55;
+const uint8_t silence_pcmu_ = 0xff;
+const uint8_t silence_pcma_ = 0x55;
void Iax2AnalysisDialog::savePayload(QTemporaryFile *tmpfile, packet_info *pinfo, const struct _iax2_info_t *iax2info)
{
/* Is this the first packet we got in this direction? */
// if (statinfo->flags & STAT_FLAG_FIRST) {
// if (saveinfo->fp == NULL) {
-// saveinfo->saved = FALSE;
+// saveinfo->saved = false;
// saveinfo->error_type = TAP_RTP_FILE_OPEN_ERROR;
// } else {
-// saveinfo->saved = TRUE;
+// saveinfo->saved = true;
// }
// }
@@ -896,9 +899,9 @@ void Iax2AnalysisDialog::saveAudio(Iax2AnalysisDialog::StreamDirection direction
}
QFile save_file(file_path);
- gint16 sample;
- guint8 pd[4];
- gboolean stop_flag = FALSE;
+ int16_t sample;
+ uint8_t pd[4];
+ bool stop_flag = false;
qint64 nchars;
save_file.open(QIODevice::WriteOnly);
@@ -1009,16 +1012,16 @@ void Iax2AnalysisDialog::saveAudio(Iax2AnalysisDialog::StreamDirection direction
case dir_both_:
{
char f_rawvalue, r_rawvalue;
- guint32 f_write_silence = 0;
- guint32 r_write_silence = 0;
+ uint32_t f_write_silence = 0;
+ uint32_t r_write_silence = 0;
/* since conversation in one way can start later than in the other one,
* we have to write some silence information for one channel */
if (fwd_statinfo_.start_time > rev_statinfo_.start_time) {
- f_write_silence = (guint32)
+ f_write_silence = (uint32_t)
((fwd_statinfo_.start_time - rev_statinfo_.start_time)
* (8000/1000));
} else if (fwd_statinfo_.start_time < rev_statinfo_.start_time) {
- r_write_silence = (guint32)
+ r_write_silence = (uint32_t)
((rev_statinfo_.start_time - fwd_statinfo_.start_time)
* (8000/1000));
}
@@ -1222,16 +1225,14 @@ bool Iax2AnalysisDialog::eventFilter(QObject *, QEvent *event)
return false;
}
-void Iax2AnalysisDialog::graphClicked(QMouseEvent *event)
+void Iax2AnalysisDialog::showGraphMenu(const QPoint &pos)
+{
+ graph_ctx_menu_.popup(ui->streamGraph->mapToGlobal(pos));
+}
+
+void Iax2AnalysisDialog::graphClicked(QMouseEvent *)
{
updateWidgets();
- if (event->button() == Qt::RightButton) {
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0 ,0)
- graph_ctx_menu_.popup(event->globalPosition().toPoint());
-#else
- graph_ctx_menu_.popup(event->globalPos());
-#endif
- }
}
void Iax2AnalysisDialog::showStreamMenu(QPoint pos)
diff --git a/ui/qt/iax2_analysis_dialog.h b/ui/qt/iax2_analysis_dialog.h
index c6daedd028..b1d403317e 100644
--- a/ui/qt/iax2_analysis_dialog.h
+++ b/ui/qt/iax2_analysis_dialog.h
@@ -17,8 +17,6 @@
#include <config.h>
-#include <glib.h>
-
#include <epan/address.h>
#include "ui/tap-iax2-analysis.h"
@@ -74,6 +72,7 @@ private slots:
void on_actionSaveGraph_triggered();
void on_buttonBox_helpRequested();
void showStreamMenu(QPoint pos);
+ void showGraphMenu(const QPoint &pos);
void graphClicked(QMouseEvent *event);
private:
@@ -120,8 +119,8 @@ private:
void saveCsv(StreamDirection direction);
#if 0
- guint32 processNode(proto_node *ptree_node, header_field_info *hfinformation, const gchar* proto_field, bool *ok);
- guint32 getIntFromProtoTree(proto_tree *protocol_tree, const gchar *proto_name, const gchar *proto_field, bool *ok);
+ uint32_t processNode(proto_node *ptree_node, header_field_info *hfinformation, const char* proto_field, bool *ok);
+ uint32_t getIntFromProtoTree(proto_tree *protocol_tree, const char *proto_name, const char *proto_field, bool *ok);
#endif
bool eventFilter(QObject*, QEvent* event);
diff --git a/ui/qt/import_text_dialog.cpp b/ui/qt/import_text_dialog.cpp
index 11364aebb8..52360c97cb 100644
--- a/ui/qt/import_text_dialog.cpp
+++ b/ui/qt/import_text_dialog.cpp
@@ -125,7 +125,7 @@ ImportTextDialog::ImportTextDialog(QWidget *parent) :
{"Plain bin", ENCODING_PLAIN_BIN},
{"Base 64", ENCODING_BASE64}
};
- for (i = 0; i < (int) (sizeof(encodings) / sizeof(encodings[0])); ++i) {
+ for (i = 0; i < (int)array_length(encodings); ++i) {
ti_ui_->dataEncodingComboBox->addItem(encodings[i].name, QVariant(encodings[i].id));
}
@@ -183,7 +183,7 @@ ImportTextDialog::~ImportTextDialog()
void ImportTextDialog::loadSettingsFile()
{
- QFileInfo fileInfo(gchar_free_to_qstring(get_profile_dir(get_profile_name(), FALSE)), QString(SETTINGS_FILE));
+ QFileInfo fileInfo(gchar_free_to_qstring(get_profile_dir(get_profile_name(), false)), QString(SETTINGS_FILE));
QFile loadFile(fileInfo.filePath());
if (!fileInfo.exists() || !fileInfo.isFile()) {
@@ -200,7 +200,7 @@ void ImportTextDialog::loadSettingsFile()
void ImportTextDialog::saveSettingsFile()
{
- QFileInfo fileInfo(gchar_free_to_qstring(get_profile_dir(get_profile_name(), FALSE)), QString(SETTINGS_FILE));
+ QFileInfo fileInfo(gchar_free_to_qstring(get_profile_dir(get_profile_name(), false)), QString(SETTINGS_FILE));
QFile saveFile(fileInfo.filePath());
if (fileInfo.exists() && !fileInfo.isFile()) {
@@ -405,7 +405,7 @@ int ImportTextDialog::exec() {
char* tmp;
GError* gerror = NULL;
int err;
- gchar *err_info;
+ char *err_info;
wtap_dump_params params;
int file_type_subtype;
QString interface_name;
@@ -425,7 +425,7 @@ int ImportTextDialog::exec() {
import_info_.import_text_filename = qstring_strdup(ti_ui_->textFileLineEdit->text());
import_info_.timestamp_format = qstring_strdup(ti_ui_->timestampFormatLineEdit->text());
if (strlen(import_info_.timestamp_format) == 0) {
- g_free((gpointer) import_info_.timestamp_format);
+ g_free((void *) import_info_.timestamp_format);
import_info_.timestamp_format = NULL;
}
@@ -438,7 +438,7 @@ int ImportTextDialog::exec() {
case TEXT_IMPORT_HEXDUMP:
import_info_.hexdump.import_text_FILE = ws_fopen(import_info_.import_text_filename, "rb");
if (!import_info_.hexdump.import_text_FILE) {
- open_failure_alert_box(import_info_.import_text_filename, errno, FALSE);
+ open_failure_alert_box(import_info_.import_text_filename, errno, false);
setResult(QDialog::Rejected);
goto cleanup_mode;
}
@@ -452,7 +452,7 @@ int ImportTextDialog::exec() {
case TEXT_IMPORT_REGEX:
import_info_.regex.import_text_GMappedFile = g_mapped_file_new(import_info_.import_text_filename, true, &gerror);
if (gerror) {
- open_failure_alert_box(import_info_.import_text_filename, gerror->code, FALSE);
+ open_failure_alert_box(import_info_.import_text_filename, gerror->code, false);
g_error_free(gerror);
setResult(QDialog::Rejected);
goto cleanup_mode;
@@ -539,7 +539,7 @@ int ImportTextDialog::exec() {
wtap_free_idb_info(params.idb_inf);
wtap_dump_params_cleanup(&params);
g_free(tmp);
- g_free((gpointer) import_info_.payload);
+ g_free((void *) import_info_.payload);
switch (import_info_.mode) {
case TEXT_IMPORT_HEXDUMP:
fclose(import_info_.hexdump.import_text_FILE);
@@ -547,13 +547,13 @@ int ImportTextDialog::exec() {
case TEXT_IMPORT_REGEX:
g_mapped_file_unref(import_info_.regex.import_text_GMappedFile);
g_regex_unref((GRegex*) import_info_.regex.format);
- g_free((gpointer) import_info_.regex.in_indication);
- g_free((gpointer) import_info_.regex.out_indication);
+ g_free((void *) import_info_.regex.in_indication);
+ g_free((void *) import_info_.regex.out_indication);
break;
}
cleanup_mode:
- g_free((gpointer) import_info_.import_text_filename);
- g_free((gpointer) import_info_.timestamp_format);
+ g_free((void *) import_info_.import_text_filename);
+ g_free((void *) import_info_.timestamp_format);
return result();
}
@@ -723,7 +723,7 @@ void ImportTextDialog::on_asciiIdentificationCheckBox_toggled(bool checked)
void ImportTextDialog::on_regexTextEdit_textChanged()
{
- gchar* regex_gchar_p = qstring_strdup(ti_ui_->regexTextEdit->toPlainText());
+ char* regex_gchar_p = qstring_strdup(ti_ui_->regexTextEdit->toPlainText());
GError* gerror = NULL;
/* TODO: Use GLib's c++ interface or enable C++ int to enum casting
* because the flags are declared as enum, so we can't pass 0 like
@@ -934,7 +934,7 @@ void ImportTextDialog::on_ipVersionComboBox_currentIndexChanged(int index)
on_destinationAddressLineEdit_textChanged(ti_ui_->destinationAddressLineEdit->text());
}
-void ImportTextDialog::check_line_edit(SyntaxLineEdit *le, bool &ok_enabled, const QString &num_str, int base, guint max_val, bool is_short, guint *val_ptr) {
+void ImportTextDialog::check_line_edit(SyntaxLineEdit *le, bool &ok_enabled, const QString &num_str, int base, unsigned max_val, bool is_short, unsigned *val_ptr) {
bool conv_ok;
SyntaxLineEdit::SyntaxState syntax_state = SyntaxLineEdit::Empty;
@@ -948,7 +948,7 @@ void ImportTextDialog::check_line_edit(SyntaxLineEdit *le, bool &ok_enabled, con
if (is_short) {
*val_ptr = num_str.toUShort(&conv_ok, base);
} else {
- *val_ptr = (guint)num_str.toULong(&conv_ok, base);
+ *val_ptr = (unsigned)num_str.toULong(&conv_ok, base);
}
if (conv_ok && *val_ptr <= max_val) {
syntax_state = SyntaxLineEdit::Valid;
diff --git a/ui/qt/import_text_dialog.h b/ui/qt/import_text_dialog.h
index ac9537d93d..d2fe13cb0a 100644
--- a/ui/qt/import_text_dialog.h
+++ b/ui/qt/import_text_dialog.h
@@ -14,8 +14,6 @@
#include <stdio.h>
-#include <glib.h>
-
#include "ui/text_import.h"
#include <ui/qt/widgets/syntax_line_edit.h>
@@ -44,7 +42,7 @@ private:
/* regex fields */
void enableFieldWidgets(bool enable_direction_input = true, bool enable_time_input = true);
- void check_line_edit(SyntaxLineEdit *le, bool &ok_enable, const QString &num_str, int base, guint max_val, bool is_short, guint *val_ptr);
+ void check_line_edit(SyntaxLineEdit *le, bool &ok_enable, const QString &num_str, int base, unsigned max_val, bool is_short, unsigned *val_ptr);
void checkAddress(SyntaxLineEdit *le, bool &ok_enable, const QString &addr_str, ws_in4_addr *val_ptr);
void checkIPv6Address(SyntaxLineEdit *le, bool &ok_enable, const QString &addr_str, ws_in6_addr *val_ptr);
bool checkDateTimeFormat(const QString &time_format);
diff --git a/ui/qt/interface_frame.cpp b/ui/qt/interface_frame.cpp
index d8d0601361..e38582f0bd 100644
--- a/ui/qt/interface_frame.cpp
+++ b/ui/qt/interface_frame.cpp
@@ -551,7 +551,7 @@ void InterfaceFrame::showContextMenu(QPoint pos)
void InterfaceFrame::on_warningLabel_linkActivated(const QString &link)
{
if (link.compare(no_capture_link) == 0) {
- recent.sys_warn_if_no_capture = FALSE;
+ recent.sys_warn_if_no_capture = false;
resetInterfaceTreeDisplay();
} else {
QDesktopServices::openUrl(QUrl(link));
diff --git a/ui/qt/interface_frame.h b/ui/qt/interface_frame.h
index 1204bd45aa..211350e744 100644
--- a/ui/qt/interface_frame.h
+++ b/ui/qt/interface_frame.h
@@ -15,8 +15,6 @@
#include <config.h>
-#include <glib.h>
-
#include <ui/qt/models/info_proxy_model.h>
#include <ui/qt/models/interface_tree_model.h>
#include <ui/qt/models/interface_sort_filter_model.h>
diff --git a/ui/qt/interface_toolbar.cpp b/ui/qt/interface_toolbar.cpp
index be2cde66d1..e4472d8c7e 100644
--- a/ui/qt/interface_toolbar.cpp
+++ b/ui/qt/interface_toolbar.cpp
@@ -79,7 +79,7 @@ InterfaceToolbar::InterfaceToolbar(QWidget *parent, const iface_toolbar *toolbar
// Fill inn interfaces list and initialize default interface values
for (GList *walker = toolbar->ifnames; walker; walker = walker->next)
{
- QString ifname((gchar *)walker->data);
+ QString ifname((char *)walker->data);
interface_[ifname].reader_thread = NULL;
interface_[ifname].out_fd = -1;
}
@@ -193,14 +193,14 @@ QWidget *InterfaceToolbar::createCheckbox(iface_toolbar_control *control)
QWidget *InterfaceToolbar::createButton(iface_toolbar_control *control)
{
- QPushButton *button = new QPushButton(QString().fromUtf8((gchar *)control->display));
+ QPushButton *button = new QPushButton(QString().fromUtf8((char *)control->display));
button->setMaximumHeight(27);
button->setToolTip(QString().fromUtf8(control->tooltip));
switch (control->ctrl_role)
{
case INTERFACE_ROLE_CONTROL:
- setDefaultValue(control->num, (gchar *)control->display);
+ setDefaultValue(control->num, (char *)control->display);
connect(button, SIGNAL(clicked()), this, SLOT(onControlButtonClicked()));
break;
@@ -242,13 +242,13 @@ QWidget *InterfaceToolbar::createSelector(iface_toolbar_control *control)
for (GList *walker = control->values; walker; walker = walker->next)
{
iface_toolbar_value *val = (iface_toolbar_value *)walker->data;
- QString value = QString().fromUtf8((gchar *)val->value);
+ QString value = QString().fromUtf8((char *)val->value);
if (value.isEmpty())
{
// Invalid value
continue;
}
- QString display = QString().fromUtf8((gchar *)val->display);
+ QString display = QString().fromUtf8((char *)val->display);
QByteArray interface_value;
interface_value.append(value.toUtf8());
@@ -746,7 +746,7 @@ void InterfaceToolbar::startCapture(GArray *ifaces)
QString first_capturing_ifname;
bool selected_found = false;
- for (guint i = 0; i < ifaces->len; i++)
+ for (unsigned i = 0; i < ifaces->len; i++)
{
interface_options *interface_opts = &g_array_index(ifaces, interface_options, i);
QString ifname(interface_opts->name);
@@ -774,7 +774,7 @@ void InterfaceToolbar::startCapture(GArray *ifaces)
// The control out pipe will close when both out_fd and extcap_control_out_h are closed.
HANDLE duplicate_out_handle = INVALID_HANDLE_VALUE;
if (!DuplicateHandle(GetCurrentProcess(), interface_opts->extcap_control_out_h,
- GetCurrentProcess(), &duplicate_out_handle, 0, TRUE, DUPLICATE_SAME_ACCESS))
+ GetCurrentProcess(), &duplicate_out_handle, 0, true, DUPLICATE_SAME_ACCESS))
{
simple_dialog_async(ESD_TYPE_ERROR, ESD_BTN_OK,
"Failed to duplicate extcap control out handle: %s\n.",
@@ -962,7 +962,7 @@ void InterfaceToolbar::interfaceListChanged()
ui->interfacesComboBox->blockSignals(true);
ui->interfacesComboBox->clear();
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++)
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++)
{
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (device->hidden)
diff --git a/ui/qt/interface_toolbar.h b/ui/qt/interface_toolbar.h
index f9879fa2b9..fc20c197b6 100644
--- a/ui/qt/interface_toolbar.h
+++ b/ui/qt/interface_toolbar.h
@@ -10,8 +10,6 @@
#ifndef INTERFACE_TOOLBAR_H
#define INTERFACE_TOOLBAR_H
-#include <glib.h>
-
#include "ui/iface_toolbar.h"
#include "funnel_text_dialog.h"
#include "interface_toolbar_reader.h"
diff --git a/ui/qt/interface_toolbar_reader.cpp b/ui/qt/interface_toolbar_reader.cpp
index d12f747222..6b5c1f1a2e 100644
--- a/ui/qt/interface_toolbar_reader.cpp
+++ b/ui/qt/interface_toolbar_reader.cpp
@@ -34,7 +34,7 @@ int InterfaceToolbarReader::async_pipe_read(void *data, int nbyte)
int bytes_read = -1;
overlap.Pointer = 0;
- overlap.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ overlap.hEvent = CreateEvent(NULL, true, false, NULL);
if (overlap.hEvent == NULL)
{
// CreateEvent failed with error code GetLastError()
@@ -54,7 +54,7 @@ int InterfaceToolbarReader::async_pipe_read(void *data, int nbyte)
if (WaitForSingleObject(overlap.hEvent, INFINITE) == WAIT_OBJECT_0)
{
// The wait operation has completed.
- success = GetOverlappedResult(control_in_, &overlap, &nof_bytes_read, FALSE);
+ success = GetOverlappedResult(control_in_, &overlap, &nof_bytes_read, false);
if (success && nof_bytes_read != 0)
{
diff --git a/ui/qt/io_graph_action.cpp b/ui/qt/io_graph_action.cpp
new file mode 100644
index 0000000000..b8b5141f15
--- /dev/null
+++ b/ui/qt/io_graph_action.cpp
@@ -0,0 +1,126 @@
+/* @file
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "io_graph_action.h"
+
+#include <ui/qt/main_application.h>
+#include <ui/qt/main_window.h>
+#include <ui/qt/io_graph_dialog.h>
+#include <ui/qt/utils/field_information.h>
+
+#include <ui/io_graph_item.h>
+
+#include <QMenu>
+
+IOGraphAction::IOGraphAction(QObject *parent, io_graph_item_unit_t unit, QString field) :
+ QAction(parent),
+ unit_(unit),
+ field_(field)
+{
+ setText(unitName(unit));
+ connect(this, &QAction::triggered, [&](){ emit openIOGraphDialog(unit_, field_); });
+}
+
+const QString IOGraphAction::unitName(io_graph_item_unit_t unit) {
+ switch (unit) {
+ case IOG_ITEM_UNIT_PACKETS:
+ return QObject::tr("PACKETS");
+ case IOG_ITEM_UNIT_BYTES:
+ return QObject::tr("BYTES");
+ case IOG_ITEM_UNIT_BITS:
+ return QObject::tr("BITS");
+ case IOG_ITEM_UNIT_CALC_FRAMES:
+ return QObject::tr("COUNT FRAMES");
+ case IOG_ITEM_UNIT_CALC_FIELDS:
+ return QObject::tr("COUNT FIELDS");
+ case IOG_ITEM_UNIT_CALC_SUM:
+ return QObject::tr("SUM");
+ case IOG_ITEM_UNIT_CALC_MAX:
+ return QObject::tr("MAX");
+ case IOG_ITEM_UNIT_CALC_MIN:
+ return QObject::tr("MIN");
+ case IOG_ITEM_UNIT_CALC_AVERAGE:
+ return QObject::tr("AVERAGE");
+ case IOG_ITEM_UNIT_CALC_LOAD:
+ return QObject::tr("LOAD");
+ default:
+ return QObject::tr("UNKNOWN");
+ }
+}
+
+QList<io_graph_item_unit_t> IOGraphAction::unitTypes(const FieldInformation::HeaderInfo& headerinfo)
+{
+ static const QList<io_graph_item_unit_t> simple_types_ = QList<io_graph_item_unit_t>()
+ << IOG_ITEM_UNIT_CALC_FRAMES
+ << IOG_ITEM_UNIT_CALC_FIELDS;
+
+ static const QList<io_graph_item_unit_t> number_types_ = QList<io_graph_item_unit_t>()
+ << IOG_ITEM_UNIT_CALC_SUM
+ << IOG_ITEM_UNIT_CALC_FRAMES
+ << IOG_ITEM_UNIT_CALC_FIELDS
+ << IOG_ITEM_UNIT_CALC_MAX
+ << IOG_ITEM_UNIT_CALC_MIN
+ << IOG_ITEM_UNIT_CALC_AVERAGE;
+
+ static const QList<io_graph_item_unit_t> time_types_ = QList<io_graph_item_unit_t>(number_types_)
+ << IOG_ITEM_UNIT_CALC_LOAD;
+
+ switch (headerinfo.type) {
+ case FT_UINT8:
+ case FT_UINT16:
+ case FT_UINT24:
+ case FT_UINT32:
+ case FT_UINT64:
+ case FT_INT8:
+ case FT_INT16:
+ case FT_INT24:
+ case FT_INT32:
+ case FT_INT64:
+ case FT_FLOAT:
+ case FT_DOUBLE:
+ return number_types_;
+ case FT_RELATIVE_TIME:
+ return time_types_;
+ default:
+ return simple_types_;
+ }
+}
+
+QMenu * IOGraphAction::createMenu(const FieldInformation::HeaderInfo& headerinfo, QWidget * parent)
+{
+ MainWindow *mw(nullptr);
+ if (mainApp)
+ {
+ QWidget * mainWin = mainApp->mainWindow();
+ if (qobject_cast<MainWindow *>(mainWin)) {
+ mw = qobject_cast<MainWindow *>(mainWin);
+ }
+ }
+
+ QString title("I/O Graph");
+ QMenu * submenu = new QMenu(title, parent);
+
+ int one_em = submenu->fontMetrics().height();
+ QString prep_text = QString("%1: %2").arg(title).arg(headerinfo.abbreviation);
+ prep_text = submenu->fontMetrics().elidedText(prep_text, Qt::ElideRight, one_em * 40);
+ QAction * comment = submenu->addAction(prep_text);
+ comment->setEnabled(false);
+ submenu->addSeparator();
+
+ IOGraphAction *graphAction;
+ for (const auto &unit : IOGraphAction::unitTypes(headerinfo)) {
+ graphAction = new IOGraphAction(submenu, unit, headerinfo.abbreviation);
+ if (mw) {
+ connect(graphAction, &IOGraphAction::openIOGraphDialog, mw, &MainWindow::showIOGraphDialog);
+ }
+ submenu->addAction(graphAction);
+ }
+
+ return submenu;
+}
diff --git a/ui/qt/io_graph_action.h b/ui/qt/io_graph_action.h
new file mode 100644
index 0000000000..290f188047
--- /dev/null
+++ b/ui/qt/io_graph_action.h
@@ -0,0 +1,47 @@
+/** @file
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef IO_GRAPH_ACTION_H
+#define IO_GRAPH_ACTION_H
+
+#include <ui/qt/utils/field_information.h>
+#include <ui/io_graph_item.h>
+
+#include <QAction>
+
+class IOGraphAction : public QAction
+{
+ Q_OBJECT
+public:
+ explicit IOGraphAction(QObject *parent, io_graph_item_unit_t unit = IOG_ITEM_UNIT_PACKETS, QString field = QString());
+ explicit IOGraphAction(QObject *parent);
+
+ io_graph_item_unit_t unit() const { return unit_; }
+
+ QString valueField() const { return field_; }
+
+ static const QString unitName(io_graph_item_unit_t unit);
+
+ static QList<io_graph_item_unit_t> unitTypes(const FieldInformation::HeaderInfo& headerinfo);
+ static QMenu * createMenu(const FieldInformation::HeaderInfo& headerinfo, QWidget * parent);
+
+signals:
+ void openIOGraphDialog(io_graph_item_unit_t, QString);
+
+public slots:
+
+private:
+ io_graph_item_unit_t unit_;
+ QString field_;
+
+private slots:
+
+};
+
+#endif // IO_GRAPH_ACTION_H
diff --git a/ui/qt/io_graph_dialog.cpp b/ui/qt/io_graph_dialog.cpp
index a9603e5f20..a44ac3736b 100644
--- a/ui/qt/io_graph_dialog.cpp
+++ b/ui/qt/io_graph_dialog.cpp
@@ -12,9 +12,9 @@
#include <ui_io_graph_dialog.h>
#include "file.h"
+#include "locale.h"
#include <epan/stat_tap_ui.h>
-#include "epan/stats_tree_priv.h"
#include "epan/uat-int.h"
#include <wsutil/utf8_entities.h>
@@ -26,11 +26,16 @@
#include <ui/qt/utils/color_utils.h>
#include <ui/qt/widgets/qcustomplot.h>
+#include <ui/qt/widgets/qcp_string_legend_item.h>
+#include <ui/qt/widgets/qcp_axis_ticker_si.h>
#include "progress_frame.h"
#include "main_application.h"
+#include <ui/qt/main_window.h>
#include <wsutil/filesystem.h>
#include <wsutil/report_message.h>
+#include <wsutil/nstime.h>
+#include <wsutil/to_str.h>
#include <ui/qt/utils/tango_colors.h> //provides some default colors
#include <ui/qt/widgets/copy_from_profile_button.h>
@@ -57,20 +62,29 @@
// - We retap and redraw more than we should.
// - Smoothing doesn't seem to match GTK+
// - Closing the color picker on macOS sends the dialog to the background.
+// - X-axis time buckets are based on the file relative time, even in
+// Time of Day / absolute time mode. (See io_graph_item.c/get_io_graph_index)
+// Changing this would mean retapping when switching to ToD mode, though.
// To do:
// - Use scroll bars?
-// - Scroll during live captures
+// https://www.qcustomplot.com/index.php/tutorials/specialcases/scrollbar
+// - Scroll during live captures (currently the graph auto rescales instead)
// - Set ticks per pixel (e.g. pressing "2" sets 2 tpp).
// - Explicitly handle missing values, e.g. via NAN.
// - Add a "show missing" or "show zero" option to the UAT?
// It would add yet another graph configuration column.
// - Increase max number of items (or make configurable)
+// - Dark Mode support, e.g.
+// https://www.qcustomplot.com/index.php/demos/barchartdemo
+// - Multiple y-axes?
+// https://www.qcustomplot.com/index.php/demos/multiaxisdemo
+// https://www.qcustomplot.com/index.php/tutorials/specialcases/axistags
// Scale factor to convert the units the interval is stored in to seconds.
// Must match what get_io_graph_index() in io_graph_item expects.
// Increase this in order to make smaller intervals possible.
-const int SCALE = 1000;
+const int SCALE = 1000000;
const double SCALE_F = (double)SCALE;
const qreal graph_line_width_ = 1.0;
@@ -86,15 +100,15 @@ const int stat_update_interval_ = 200; // ms
// Saved graph settings
typedef struct _io_graph_settings_t {
- gboolean enabled;
+ bool enabled;
char* name;
char* dfilter;
- guint color;
- guint32 style;
- guint32 yaxis;
+ unsigned color;
+ uint32_t style;
+ uint32_t yaxis;
char* yfield;
- guint32 sma_period;
- guint32 y_axis_factor;
+ uint32_t sma_period;
+ uint32_t y_axis_factor;
} io_graph_settings_t;
static const value_string graph_style_vs[] = {
@@ -140,24 +154,31 @@ static const value_string moving_avg_vs[] = {
{ 0, NULL }
};
-static io_graph_settings_t *iog_settings_ = NULL;
-static guint num_io_graphs_ = 0;
-static uat_t *iog_uat_ = NULL;
+static io_graph_settings_t *iog_settings_;
+static unsigned num_io_graphs_;
+static uat_t *iog_uat_;
+// XXX - Multiple UatModels with the same uat can crash if one is
+// edited, because the underlying uat_t* data changes but the
+// record_errors and dirty_records lists do not.
+static QPointer<UatModel> static_uat_model_;
// y_axis_factor was added in 3.6. Provide backward compatibility.
static const char *iog_uat_defaults_[] = {
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "1"
};
+static char *decimal_point;
+
extern "C" {
-//Allow the enable/disable field to be a checkbox, but for backwards compatibility,
-//the strings have to be "Enabled"/"Disabled", not "TRUE"/"FALSE"
+//Allow the enable/disable field to be a checkbox, but for backwards
+//compatibility with pre-2.6 versions, the strings are "Enabled"/"Disabled",
+//not "true"/"false". (Pre-4.4 versions require "true" to be all-caps.)
#define UAT_BOOL_ENABLE_CB_DEF(basename,field_name,rec_t) \
-static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, guint len, const void* UNUSED_PARAMETER(u1), const void* UNUSED_PARAMETER(u2)) {\
+static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, unsigned len, const void* UNUSED_PARAMETER(u1), const void* UNUSED_PARAMETER(u2)) {\
char* tmp_str = g_strndup(buf,len); \
- if ((g_strcmp0(tmp_str, "Enabled") == 0) || \
- (g_strcmp0(tmp_str, "TRUE") == 0)) \
+ if (tmp_str && ((g_strcmp0(tmp_str, "Enabled") == 0) || \
+ (g_ascii_strcasecmp(tmp_str, "true") == 0))) \
((rec_t*)rec)->field_name = 1; \
else \
((rec_t*)rec)->field_name = 0; \
@@ -166,32 +187,33 @@ static void basename ## _ ## field_name ## _tostr_cb(void* rec, char** out_ptr,
*out_ptr = ws_strdup_printf("%s",((rec_t*)rec)->field_name ? "Enabled" : "Disabled"); \
*out_len = (unsigned)strlen(*out_ptr); }
-static bool uat_fld_chk_enable(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err)
+static bool uat_fld_chk_enable(void* u1 _U_, const char* strptr, unsigned len, const void* u2 _U_, const void* u3 _U_, char** err)
{
char* str = g_strndup(strptr,len);
- if ((g_strcmp0(str, "Enabled") == 0) ||
+ if (str &&
+ ((g_strcmp0(str, "Enabled") == 0) ||
(g_strcmp0(str, "Disabled") == 0) ||
- (g_strcmp0(str, "TRUE") == 0) || //just for UAT functionality
- (g_strcmp0(str, "FALSE") == 0)) {
+ (g_ascii_strcasecmp(str, "true") == 0) || //just for UAT functionality
+ (g_ascii_strcasecmp(str, "false") == 0))) {
*err = NULL;
g_free(str);
- return TRUE;
+ return true;
}
//User should never see this unless they are manually modifying UAT
*err = ws_strdup_printf("invalid value: %s (must be Enabled or Disabled)", str);
g_free(str);
- return FALSE;
+ return false;
}
#define UAT_FLD_BOOL_ENABLE(basename,field_name,title,desc) \
{#field_name, title, PT_TXTMOD_BOOL,{uat_fld_chk_enable,basename ## _ ## field_name ## _set_cb,basename ## _ ## field_name ## _tostr_cb},{0,0,0},0,desc,FLDFILL}
//"Custom" handler for sma_period enumeration for backwards compatibility
-static void io_graph_sma_period_set_cb(void* rec, const char* buf, guint len, const void* vs, const void* u2 _U_)
+static void io_graph_sma_period_set_cb(void* rec, const char* buf, unsigned len, const void* vs, const void* u2 _U_)
{
- guint i;
+ unsigned i;
char* str = g_strndup(buf,len);
const char* cstr;
((io_graph_settings_t*)rec)->sma_period = 0;
@@ -211,7 +233,7 @@ static void io_graph_sma_period_set_cb(void* rec, const char* buf, guint len, co
for (i=0; (cstr = ((const value_string*)vs)[i].strptr) ;i++) {
if (g_str_equal(cstr,str)) {
- ((io_graph_settings_t*)rec)->sma_period = (guint32)((const value_string*)vs)[i].value;
+ ((io_graph_settings_t*)rec)->sma_period = (uint32_t)((const value_string*)vs)[i].value;
g_free(str);
return;
}
@@ -221,7 +243,7 @@ static void io_graph_sma_period_set_cb(void* rec, const char* buf, guint len, co
//Duplicated because macro covers both functions
static void io_graph_sma_period_tostr_cb(void* rec, char** out_ptr, unsigned* out_len, const void* vs, const void* u2 _U_)
{
- guint i;
+ unsigned i;
for (i=0;((const value_string*)vs)[i].strptr;i++) {
if (((const value_string*)vs)[i].value == ((io_graph_settings_t*)rec)->sma_period) {
*out_ptr = g_strdup(((const value_string*)vs)[i].strptr);
@@ -233,9 +255,9 @@ static void io_graph_sma_period_tostr_cb(void* rec, char** out_ptr, unsigned* ou
*out_len = (unsigned)strlen("None");
}
-static bool sma_period_chk_enum(void* u1 _U_, const char* strptr, guint len, const void* v, const void* u3 _U_, char** err) {
+static bool sma_period_chk_enum(void* u1 _U_, const char* strptr, unsigned len, const void* v, const void* u3 _U_, char** err) {
char *str = g_strndup(strptr,len);
- guint i;
+ unsigned i;
const value_string* vs = (const value_string *)v;
//Original UAT had just raw numbers and not enumerated values with "interval SMA"
@@ -255,13 +277,13 @@ static bool sma_period_chk_enum(void* u1 _U_, const char* strptr, guint len, con
if (g_strcmp0(vs[i].strptr,str) == 0) {
*err = NULL;
g_free(str);
- return TRUE;
+ return true;
}
}
*err = ws_strdup_printf("invalid value: %s",str);
g_free(str);
- return FALSE;
+ return false;
}
#define UAT_FLD_SMA_PERIOD(basename,field_name,title,enum,desc) \
@@ -272,8 +294,8 @@ UAT_BOOL_ENABLE_CB_DEF(io_graph, enabled, io_graph_settings_t)
UAT_CSTRING_CB_DEF(io_graph, name, io_graph_settings_t)
UAT_DISPLAY_FILTER_CB_DEF(io_graph, dfilter, io_graph_settings_t)
UAT_COLOR_CB_DEF(io_graph, color, io_graph_settings_t)
-UAT_VS_DEF(io_graph, style, io_graph_settings_t, guint32, 0, "Line")
-UAT_VS_DEF(io_graph, yaxis, io_graph_settings_t, guint32, 0, "Packets")
+UAT_VS_DEF(io_graph, style, io_graph_settings_t, uint32_t, 0, "Line")
+UAT_VS_DEF(io_graph, yaxis, io_graph_settings_t, uint32_t, 0, "Packets")
UAT_PROTO_FIELD_CB_DEF(io_graph, yfield, io_graph_settings_t)
UAT_DEC_CB_DEF(io_graph, y_axis_factor, io_graph_settings_t)
@@ -315,16 +337,25 @@ static void io_graph_free_cb(void* p) {
g_free(iogs->yfield);
}
+// If the uat changes outside the model, e.g. when changing profiles,
+// we need to tell the UatModel.
+static void io_graph_post_update_cb() {
+ if (static_uat_model_) {
+ static_uat_model_->reloadUat();
+ }
+}
+
} // extern "C"
-IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFilter) :
+IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFilter,
+ io_graph_item_unit_t value_units, QString yfield) :
WiresharkDialog(parent, cf),
ui(new Ui::IOGraphDialog),
uat_model_(nullptr),
uat_delegate_(nullptr),
base_graph_(nullptr),
tracer_(nullptr),
- start_time_(0.0),
+ start_time_(NSTIME_INIT_ZERO),
mouse_drags_(true),
rubber_band_(nullptr),
stat_timer_(nullptr),
@@ -364,15 +395,17 @@ IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFi
QPushButton *copy_bt = ui->buttonBox->addButton(tr("Copy"), QDialogButtonBox::ActionRole);
connect (copy_bt, SIGNAL(clicked()), this, SLOT(copyAsCsvClicked()));
- CopyFromProfileButton * copy_button = new CopyFromProfileButton(this, "io_graphs", tr("Copy graphs from another profile."));
- ui->buttonBox->addButton(copy_button, QDialogButtonBox::ActionRole);
- connect(copy_button, &CopyFromProfileButton::copyProfile, this, &IOGraphDialog::copyFromProfile);
+ copy_profile_bt_ = new CopyFromProfileButton(this, "io_graphs", tr("Copy graphs from another profile."));
+ ui->buttonBox->addButton(copy_profile_bt_, QDialogButtonBox::ActionRole);
+ connect(copy_profile_bt_, &CopyFromProfileButton::copyProfile, this, &IOGraphDialog::copyFromProfile);
QPushButton *close_bt = ui->buttonBox->button(QDialogButtonBox::Close);
if (close_bt) {
close_bt->setDefault(true);
}
+ connect(ui->buttonBox, &QDialogButtonBox::clicked, this, &IOGraphDialog::buttonBoxClicked);
+
ui->automaticUpdateCheckBox->setChecked(prefs.gui_io_graph_automatic_update ? true : false);
ui->enableLegendCheckBox->setChecked(prefs.gui_io_graph_enable_legend ? true : false);
@@ -382,6 +415,20 @@ IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFi
stat_timer_->start(stat_update_interval_);
// Intervals (ms)
+ // #6441 asks for arbitrary values. We could probably do that with
+ // a QSpinBox, e.g. using QAbstractSpinBox::AdaptiveDecimalStepType
+ // or similar (it only exists starting in Qt 5.12) and suffix(),
+ // or something fancier with valueFromText() and textFromValue() to
+ // convert to and from SI prefixes.
+ ui->intervalComboBox->addItem(tr("1 μs"), SCALE / 1000000);
+ ui->intervalComboBox->addItem(tr("2 μs"), SCALE / 500000);
+ ui->intervalComboBox->addItem(tr("5 μs"), SCALE / 200000);
+ ui->intervalComboBox->addItem(tr("10 μs"), SCALE / 100000);
+ ui->intervalComboBox->addItem(tr("20 μs"), SCALE / 50000);
+ ui->intervalComboBox->addItem(tr("50 μs"), SCALE / 20000);
+ ui->intervalComboBox->addItem(tr("100 μs"), SCALE / 10000);
+ ui->intervalComboBox->addItem(tr("200 μs"), SCALE / 5000);
+ ui->intervalComboBox->addItem(tr("500 μs"), SCALE / 2000);
ui->intervalComboBox->addItem(tr("1 ms"), SCALE / 1000);
ui->intervalComboBox->addItem(tr("2 ms"), SCALE / 500);
ui->intervalComboBox->addItem(tr("5 ms"), SCALE / 200);
@@ -396,8 +443,10 @@ IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFi
ui->intervalComboBox->addItem(tr("5 sec"), SCALE * 5);
ui->intervalComboBox->addItem(tr("10 sec"), SCALE * 10);
ui->intervalComboBox->addItem(tr("1 min"), SCALE * 60);
+ ui->intervalComboBox->addItem(tr("2 min"), SCALE * 120);
+ ui->intervalComboBox->addItem(tr("5 min"), SCALE * 300);
ui->intervalComboBox->addItem(tr("10 min"), SCALE * 600);
- ui->intervalComboBox->setCurrentIndex(9);
+ ui->intervalComboBox->setCurrentIndex(18);
ui->todCheckBox->setChecked(false);
iop->xAxis->setTicker(number_ticker_);
@@ -428,6 +477,9 @@ IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFi
ctx_menu_.addAction(ui->actionCrosshairs);
set_action_shortcuts_visible_in_context_menu(ctx_menu_.actions());
+ iop->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(iop, &QCustomPlot::customContextMenuRequested, this, &IOGraphDialog::showContextMenu);
+
iop->xAxis->setLabel(tr("Time (s)"));
iop->setMouseTracking(true);
@@ -442,22 +494,23 @@ IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFi
loadProfileGraphs();
bool filterExists = false;
- QString graph_name = is_packet_configuration_namespace() ? tr("Filtered packets") : tr("Filtered events");
if (uat_model_->rowCount() > 0) {
for (int i = 0; i < uat_model_->rowCount(); i++) {
createIOGraph(i);
- if (ioGraphs_.at(i)->filter().compare(displayFilter) == 0)
+ IOGraph *iog = ioGraphs_.at(i);
+ if (iog->filter().compare(displayFilter) == 0 &&
+ iog->valueUnitField().compare(yfield) == 0 &&
+ iog->valueUnits() == value_units) {
filterExists = true;
+ }
}
- if (! filterExists && displayFilter.length() > 0)
- addGraph(true, graph_name, displayFilter, ColorUtils::graphColor(uat_model_->rowCount()),
- IOGraph::psLine, IOG_ITEM_UNIT_PACKETS, QString(), DEFAULT_MOVING_AVERAGE, DEFAULT_Y_AXIS_FACTOR);
} else {
addDefaultGraph(true, 0);
addDefaultGraph(true, 1);
- if (displayFilter.length() > 0)
- addGraph(true, graph_name, displayFilter, ColorUtils::graphColor(uat_model_->rowCount()),
- IOGraph::psLine, IOG_ITEM_UNIT_PACKETS, QString(), DEFAULT_MOVING_AVERAGE, DEFAULT_Y_AXIS_FACTOR);
+ }
+
+ if (! filterExists && (!displayFilter.isEmpty() || !yfield.isEmpty())) {
+ addGraph(true, displayFilter, value_units, yfield);
}
toggleTracerStyle(true);
@@ -472,12 +525,20 @@ IOGraphDialog::IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFi
loadSplitterState(ui->splitter);
//XXX - resize columns?
+ //ui->graphUat->header()->resizeSections(QHeaderView::ResizeToContents);
ProgressFrame::addToButtonBox(ui->buttonBox, &parent);
connect(iop, SIGNAL(mousePress(QMouseEvent*)), this, SLOT(graphClicked(QMouseEvent*)));
connect(iop, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(mouseMoved(QMouseEvent*)));
connect(iop, SIGNAL(mouseRelease(QMouseEvent*)), this, SLOT(mouseReleased(QMouseEvent*)));
+
+ connect(iop, &QCustomPlot::beforeReplot, this, &IOGraphDialog::updateLegend);
+
+ MainWindow *main_window = qobject_cast<MainWindow *>(mainApp->mainWindow());
+ if (main_window != nullptr) {
+ connect(main_window, &MainWindow::framesSelected, this, &IOGraphDialog::selectedFrameChanged);
+ }
}
IOGraphDialog::~IOGraphDialog()
@@ -492,15 +553,18 @@ IOGraphDialog::~IOGraphDialog()
void IOGraphDialog::copyFromProfile(QString filename)
{
- guint orig_data_len = iog_uat_->raw_data->len;
+ if (uat_model_ == nullptr)
+ return;
- gchar *err = NULL;
+ char *err = NULL;
+ // uat_load appends rows to the current UAT, using filename.
+ // We should let the UatModel handle it, and have the UatModel
+ // call beginInsertRows() and endInsertRows(), so that we can
+ // just add the new rows instead of resetting the information.
if (uat_load(iog_uat_, filename.toUtf8().constData(), &err)) {
- iog_uat_->changed = TRUE;
- uat_model_->reloadUat();
- for (guint i = orig_data_len; i < iog_uat_->raw_data->len; i++) {
- createIOGraph(i);
- }
+ iog_uat_->changed = true;
+ // uat_load calls the post update cb, which reloads the Uat.
+ //uat_model_->reloadUat();
} else {
report_failure("Error while loading %s: %s", iog_uat_->name, err);
g_free(err);
@@ -509,6 +573,8 @@ void IOGraphDialog::copyFromProfile(QString filename)
void IOGraphDialog::addGraph(bool checked, QString name, QString dfilter, QRgb color_idx, IOGraph::PlotStyles style, io_graph_item_unit_t value_units, QString yfield, int moving_average, int y_axis_factor)
{
+ if (uat_model_ == nullptr)
+ return;
QVariantList newRowData;
newRowData.append(checked ? Qt::Checked : Qt::Unchecked);
@@ -522,7 +588,7 @@ void IOGraphDialog::addGraph(bool checked, QString name, QString dfilter, QRgb c
newRowData.append(val_to_str_const(value_units, y_axis_vs, "Events"));
}
newRowData.append(yfield);
- newRowData.append(val_to_str_const((guint32) moving_average, moving_avg_vs, "None"));
+ newRowData.append(val_to_str_const((uint32_t) moving_average, moving_avg_vs, "None"));
newRowData.append(y_axis_factor);
QModelIndex newIndex = uat_model_->appendEntry(newRowData);
@@ -532,11 +598,32 @@ void IOGraphDialog::addGraph(bool checked, QString name, QString dfilter, QRgb c
return;
}
ui->graphUat->setCurrentIndex(newIndex);
- createIOGraph(newIndex.row());
+}
+
+void IOGraphDialog::addGraph(bool checked, QString dfilter, io_graph_item_unit_t value_units, QString yfield)
+{
+ if (uat_model_ == nullptr)
+ return;
+
+ QString graph_name;
+ if (yfield.isEmpty()) {
+ if (!dfilter.isEmpty()) {
+ graph_name = is_packet_configuration_namespace() ? tr("Filtered packets") : tr("Filtered events");
+ } else {
+ graph_name = is_packet_configuration_namespace() ? tr("All packets") : tr("All events");
+ }
+ } else {
+ graph_name = QString(val_to_str_const(value_units, y_axis_vs, "Unknown")).replace("Y Field", yfield);
+ }
+ addGraph(checked, std::move(graph_name), dfilter, ColorUtils::graphColor(uat_model_->rowCount()),
+ IOGraph::psLine, value_units, yfield, DEFAULT_MOVING_AVERAGE, DEFAULT_Y_AXIS_FACTOR);
}
void IOGraphDialog::addGraph(bool copy_from_current)
{
+ if (uat_model_ == nullptr)
+ return;
+
const QModelIndex &current = ui->graphUat->currentIndex();
if (copy_from_current && !current.isValid())
return;
@@ -550,8 +637,6 @@ void IOGraphDialog::addGraph(bool copy_from_current)
qDebug() << "Failed to add a new record";
return;
}
- createIOGraph(copyIdx.row());
-
ui->graphUat->setCurrentIndex(copyIdx);
} else {
addDefaultGraph(false);
@@ -563,11 +648,11 @@ void IOGraphDialog::addGraph(bool copy_from_current)
void IOGraphDialog::createIOGraph(int currentRow)
{
- // XXX - Should IOGraph have it's own list that has to sync with UAT?
- ioGraphs_.append(new IOGraph(ui->ioPlot));
+ // XXX - Should IOGraph have its own list that has to sync with UAT?
+ ioGraphs_.insert(currentRow, new IOGraph(ui->ioPlot));
IOGraph* iog = ioGraphs_[currentRow];
- connect(this, SIGNAL(recalcGraphData(capture_file *, bool)), iog, SLOT(recalcGraphData(capture_file *, bool)));
+ connect(this, SIGNAL(recalcGraphData(capture_file *)), iog, SLOT(recalcGraphData(capture_file *)));
connect(this, SIGNAL(reloadValueUnitFields()), iog, SLOT(reloadValueUnitField()));
connect(&cap_file_, SIGNAL(captureEvent(CaptureEvent)),
iog, SLOT(captureEvent(CaptureEvent)));
@@ -576,9 +661,7 @@ void IOGraphDialog::createIOGraph(int currentRow)
connect(iog, SIGNAL(requestReplot()), this, SLOT(scheduleReplot()));
syncGraphSettings(currentRow);
- if (iog->visible()) {
- scheduleRetap();
- }
+ iog->setNeedRetap(true);
}
void IOGraphDialog::addDefaultGraph(bool enabled, int idx)
@@ -623,11 +706,10 @@ void IOGraphDialog::syncGraphSettings(int row)
{
IOGraph *iog = ioGraphs_.value(row, Q_NULLPTR);
- if (!uat_model_->index(row, colEnabled).isValid() || !iog)
+ if (!uat_model_ || !uat_model_->index(row, colEnabled).isValid() || !iog)
return;
bool visible = graphIsEnabled(row);
- bool retap = !iog->visible() && visible;
QString data_str;
iog->setName(uat_model_->data(uat_model_->index(row, colName)).toString());
@@ -652,7 +734,6 @@ void IOGraphDialog::syncGraphSettings(int row)
if (!iog->configError().isEmpty()) {
hint_err_ = iog->configError();
visible = false;
- retap = false;
} else {
hint_err_.clear();
}
@@ -660,18 +741,18 @@ void IOGraphDialog::syncGraphSettings(int row)
iog->setVisible(visible);
getGraphInfo();
- mouseMoved(NULL); // Update hint
- updateLegend();
+ updateHint();
if (visible) {
- if (retap) {
- scheduleRetap();
- } else {
- scheduleReplot();
- }
+ scheduleReplot();
}
}
+qsizetype IOGraphDialog::graphCount() const
+{
+ return uat_model_ ? uat_model_->rowCount() : ioGraphs_.size();
+}
+
void IOGraphDialog::updateWidgets()
{
WiresharkDialog::updateWidgets();
@@ -681,9 +762,6 @@ void IOGraphDialog::scheduleReplot(bool now)
{
need_replot_ = true;
if (now) updateStatistics();
- // A plot finished, force an update of the legend now in case a time unit
- // was involved (which might append "(ms)" to the label).
- updateLegend();
}
void IOGraphDialog::scheduleRecalc(bool now)
@@ -703,6 +781,27 @@ void IOGraphDialog::reloadFields()
emit reloadValueUnitFields();
}
+void IOGraphDialog::captureFileClosing()
+{
+ // The other buttons will be disabled when the model is set to null.
+ ui->newToolButton->setEnabled(false);
+ ui->intervalComboBox->setEnabled(false);
+ copy_profile_bt_->setEnabled(false);
+ if (uat_model_) {
+ applyChanges();
+ disconnect(uat_model_, nullptr, this, nullptr);
+ }
+ // It would be nice to keep the information in the UAT about the graphs
+ // visible in a read-only state after closing, but if the view is just
+ // disabled, updating the model from elsewhere (e.g., other dialogs)
+ // will still change it, so we'd need to copy the information into
+ // a new model.
+ uat_model_ = nullptr;
+ ui->graphUat->setModel(nullptr);
+ ui->graphUat->setVisible(false);
+ WiresharkDialog::captureFileClosing();
+}
+
void IOGraphDialog::keyPressEvent(QKeyEvent *event)
{
int pan_pixels = event->modifiers() & Qt::ShiftModifier ? 1 : 10;
@@ -774,19 +873,25 @@ void IOGraphDialog::keyPressEvent(QKeyEvent *event)
QDialog::keyPressEvent(event);
}
-void IOGraphDialog::reject()
+void IOGraphDialog::applyChanges()
{
- if (!uat_model_)
+ if (!static_uat_model_)
return;
// Changes to the I/O Graphs settings are always saved,
// there is no possibility for "rejection".
QString error;
- if (uat_model_->applyChanges(error)) {
+ if (static_uat_model_->applyChanges(error)) {
if (!error.isEmpty()) {
report_failure("%s", qPrintable(error));
}
}
+}
+
+void IOGraphDialog::reject()
+{
+ if (uat_model_)
+ applyChanges();
QDialog::reject();
}
@@ -891,12 +996,12 @@ void IOGraphDialog::toggleTracerStyle(bool force_default)
IOGraph *IOGraphDialog::currentActiveGraph() const
{
QModelIndex index = ui->graphUat->currentIndex();
- if (index.isValid()) {
+ if (index.isValid() && graphIsEnabled(index.row())) {
return ioGraphs_.value(index.row(), NULL);
}
//if no currently selected item, go with first item enabled
- for (int row = 0; row < uat_model_->rowCount(); row++)
+ for (int row = 0; row < graphCount(); row++)
{
if (graphIsEnabled(row)) {
return ioGraphs_.value(row, NULL);
@@ -908,8 +1013,13 @@ IOGraph *IOGraphDialog::currentActiveGraph() const
bool IOGraphDialog::graphIsEnabled(int row) const
{
- Qt::CheckState state = static_cast<Qt::CheckState>(uat_model_->data(uat_model_->index(row, colEnabled), Qt::CheckStateRole).toInt());
- return state == Qt::Checked;
+ if (uat_model_) {
+ Qt::CheckState state = static_cast<Qt::CheckState>(uat_model_->data(uat_model_->index(row, colEnabled), Qt::CheckStateRole).toInt());
+ return state == Qt::Checked;
+ } else {
+ IOGraph* iog = ioGraphs_.value(row, nullptr);
+ return (iog && iog->visible());
+ }
}
// Scan through our graphs and gather information.
@@ -919,7 +1029,7 @@ void IOGraphDialog::getGraphInfo()
{
base_graph_ = NULL;
QCPBars *prev_bars = NULL;
- start_time_ = 0.0;
+ nstime_set_zero(&start_time_);
tracer_->setGraph(NULL);
IOGraph *selectedGraph = currentActiveGraph();
@@ -941,9 +1051,9 @@ void IOGraphDialog::getGraphInfo()
prev_bars = bars;
}
if (iog->visible() && iog->maxInterval() >= 0) {
- double iog_start = iog->startOffset();
- if (start_time_ == 0.0 || iog_start < start_time_) {
- start_time_ = iog_start;
+ nstime_t iog_start = iog->startTime();
+ if (nstime_is_zero(&start_time_) || nstime_cmp(&iog_start, &start_time_) < 0) {
+ nstime_copy(&start_time_, &iog_start);
}
}
@@ -956,9 +1066,78 @@ void IOGraphDialog::getGraphInfo()
}
}
+void IOGraphDialog::updateHint()
+{
+ QCustomPlot *iop = ui->ioPlot;
+ QString hint;
+
+ // XXX: ElidedLabel doesn't support rich text / HTML, we
+ // used to bold this error
+ if (!hint_err_.isEmpty()) {
+ hint += QString("%1 ").arg(hint_err_);
+ }
+ if (mouse_drags_) {
+ double ts = 0;
+ packet_num_ = 0;
+ int interval_packet = -1;
+
+ if (tracer_->graph()) {
+ ts = tracer_->position->key();
+ if (IOGraph *iog = currentActiveGraph()) {
+ interval_packet = iog->packetFromTime(ts - nstime_to_sec(&start_time_));
+ }
+ }
+
+ if (interval_packet < 0) {
+ hint += tr("Hover over the graph for details.");
+ } else {
+ QString msg = is_packet_configuration_namespace() ? tr("No packets in interval") : tr("No events in interval");
+ QString val;
+ if (interval_packet > 0) {
+ packet_num_ = (uint32_t) interval_packet;
+ if (is_packet_configuration_namespace()) {
+ msg = QString("%1 %2")
+ .arg(!file_closed_ ? tr("Click to select packet") : tr("Packet"))
+ .arg(packet_num_);
+ } else {
+ msg = QString("%1 %2")
+ .arg(!file_closed_ ? tr("Click to select event") : tr("Event"))
+ .arg(packet_num_);
+ }
+ val = " = " + QString::number(tracer_->position->value(), 'g', 4);
+ }
+ // XXX - If Time of Day is selected, should we use ISO 8601
+ // timestamps or something similar here instead of epoch time?
+ hint += tr("%1 (%2s%3).")
+ .arg(msg)
+ .arg(QString::number(ts, 'f', precision_))
+ .arg(val);
+ }
+ iop->replot(QCustomPlot::rpQueuedReplot);
+ } else {
+ if (rubber_band_ && rubber_band_->isVisible()) {
+ QRectF zoom_ranges = getZoomRanges(rubber_band_->geometry());
+ if (zoom_ranges.width() > 0.0 && zoom_ranges.height() > 0.0) {
+ hint += tr("Release to zoom, x = %1 to %2, y = %3 to %4")
+ .arg(zoom_ranges.x())
+ .arg(zoom_ranges.x() + zoom_ranges.width())
+ .arg(zoom_ranges.y())
+ .arg(zoom_ranges.y() + zoom_ranges.height());
+ } else {
+ hint += tr("Unable to select range.");
+ }
+ } else {
+ hint += tr("Click to select a portion of the graph.");
+ }
+ }
+
+ ui->hintLabel->setText(hint);
+}
+
void IOGraphDialog::updateLegend()
{
QCustomPlot *iop = ui->ioPlot;
+ QSet<format_size_units_e> format_units_set;
QSet<QString> vu_label_set;
QString intervalText = ui->intervalComboBox->itemText(ui->intervalComboBox->currentIndex());
@@ -966,49 +1145,60 @@ void IOGraphDialog::updateLegend()
iop->yAxis->setLabel(QString());
// Find unique labels
- if (uat_model_ != NULL) {
- for (int row = 0; row < uat_model_->rowCount(); row++) {
- IOGraph *iog = ioGraphs_.value(row, Q_NULLPTR);
- if (graphIsEnabled(row) && iog) {
- QString label(iog->valueUnitLabel());
- if (!iog->scaledValueUnit().isEmpty()) {
- label += " (" + iog->scaledValueUnit() + ")";
- }
- vu_label_set.insert(label);
- }
+ for (int row = 0; row < graphCount(); row++) {
+ IOGraph *iog = ioGraphs_.value(row, Q_NULLPTR);
+ if (graphIsEnabled(row) && iog) {
+ QString label(iog->valueUnitLabel());
+ vu_label_set.insert(label);
+ format_units_set.insert(iog->formatUnits());
}
}
// Nothing.
if (vu_label_set.size() < 1) {
+ iop->legend->layer()->replot();
return;
}
+ format_size_units_e format_units = FORMAT_SIZE_UNIT_NONE;
+ if (format_units_set.size() == 1) {
+ format_units = format_units_set.values()[0];
+ }
+
+ QSharedPointer<QCPAxisTickerSi> si_ticker = qSharedPointerDynamicCast<QCPAxisTickerSi>(iop->yAxis->ticker());
+ if (format_units != FORMAT_SIZE_UNIT_NONE) {
+ if (si_ticker) {
+ si_ticker->setUnit(format_units);
+ } else {
+ iop->yAxis->setTicker(QSharedPointer<QCPAxisTickerSi>(new QCPAxisTickerSi(format_units, QString(), ui->logCheckBox->isChecked())));
+ }
+ } else {
+ if (si_ticker) {
+ if (ui->logCheckBox->isChecked()) {
+ iop->yAxis->setTicker(QSharedPointer<QCPAxisTickerLog>(new QCPAxisTickerLog));
+ } else {
+ iop->yAxis->setTicker(QSharedPointer<QCPAxisTicker>(new QCPAxisTicker));
+ }
+ }
+ }
+
// All the same. Use the Y Axis label.
if (vu_label_set.size() == 1) {
iop->yAxis->setLabel(vu_label_set.values()[0] + "/" + intervalText);
- return;
}
- // Differing labels. Create a legend with a Title label at top.
+ // Create a legend with a Title label at top.
// Legend Title thanks to: https://www.qcustomplot.com/index.php/support/forum/443
- QCPTextElement* legendTitle = qobject_cast<QCPTextElement*>(iop->legend->elementAt(0));
- if (legendTitle == NULL) {
- legendTitle = new QCPTextElement(iop, QString(""));
- iop->legend->insertRow(0);
- iop->legend->addElement(0, 0, legendTitle);
- }
- legendTitle->setText(QString(intervalText + " Intervals "));
-
- if (uat_model_ != NULL) {
- for (int row = 0; row < uat_model_->rowCount(); row++) {
- IOGraph *iog = ioGraphs_.value(row, Q_NULLPTR);
- if (iog) {
- if (graphIsEnabled(row)) {
- iog->addToLegend();
- } else {
- iog->removeFromLegend();
- }
+ iop->legend->clearItems();
+ QCPStringLegendItem *legendTitle = new QCPStringLegendItem(iop->legend, QString(tr("%1 Intervals ").arg(intervalText)));
+ iop->legend->insertRow(0);
+ iop->legend->addElement(0, 0, legendTitle);
+
+ for (int row = 0; row < graphCount(); row++) {
+ IOGraph *iog = ioGraphs_.value(row, Q_NULLPTR);
+ if (iog) {
+ if (graphIsEnabled(row)) {
+ iog->addToLegend();
}
}
}
@@ -1047,19 +1237,16 @@ QRectF IOGraphDialog::getZoomRanges(QRect zoom_rect)
return zoom_ranges;
}
+void IOGraphDialog::showContextMenu(const QPoint &pos)
+{
+ ctx_menu_.popup(ui->ioPlot->mapToGlobal(pos));
+}
+
void IOGraphDialog::graphClicked(QMouseEvent *event)
{
QCustomPlot *iop = ui->ioPlot;
- if (event->button() == Qt::RightButton) {
- // XXX We should find some way to get ioPlot to handle a
- // contextMenuEvent instead.
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0 ,0)
- ctx_menu_.popup(event->globalPosition().toPoint());
-#else
- ctx_menu_.popup(event->globalPos());
-#endif
- } else if (mouse_drags_) {
+ if (mouse_drags_) {
if (iop->axisRect()->rect().contains(event->pos())) {
iop->setCursor(QCursor(Qt::ClosedHandCursor));
}
@@ -1078,87 +1265,35 @@ void IOGraphDialog::graphClicked(QMouseEvent *event)
void IOGraphDialog::mouseMoved(QMouseEvent *event)
{
QCustomPlot *iop = ui->ioPlot;
- QString hint;
Qt::CursorShape shape = Qt::ArrowCursor;
- // XXX: ElidedLabel doesn't support rich text / HTML, we
- // used to bold this error
- if (!hint_err_.isEmpty()) {
- hint += QString("%1 ").arg(hint_err_);
- }
- if (event) {
- if (event->buttons().testFlag(Qt::LeftButton)) {
- if (mouse_drags_) {
- shape = Qt::ClosedHandCursor;
- } else {
- shape = Qt::CrossCursor;
- }
- } else if (iop->axisRect()->rect().contains(event->pos())) {
- if (mouse_drags_) {
- shape = Qt::OpenHandCursor;
- } else {
- shape = Qt::CrossCursor;
- }
+ if (event->buttons().testFlag(Qt::LeftButton)) {
+ if (mouse_drags_) {
+ shape = Qt::ClosedHandCursor;
+ } else {
+ shape = Qt::CrossCursor;
+ }
+ } else if (iop->axisRect()->rect().contains(event->pos())) {
+ if (mouse_drags_) {
+ shape = Qt::OpenHandCursor;
+ } else {
+ shape = Qt::CrossCursor;
}
- iop->setCursor(QCursor(shape));
}
+ iop->setCursor(QCursor(shape));
if (mouse_drags_) {
- double ts = 0;
- packet_num_ = 0;
- int interval_packet = -1;
-
- if (event && tracer_->graph()) {
+ if (tracer_->graph()) {
tracer_->setGraphKey(iop->xAxis->pixelToCoord(event->pos().x()));
- ts = tracer_->position->key();
- if (IOGraph *iog = currentActiveGraph()) {
- interval_packet = iog->packetFromTime(ts - start_time_);
- }
}
- if (interval_packet < 0) {
- hint += tr("Hover over the graph for details.");
- } else {
- QString msg = is_packet_configuration_namespace() ? tr("No packets in interval") : tr("No events in interval");
- QString val;
- if (interval_packet > 0) {
- packet_num_ = (guint32) interval_packet;
- if (is_packet_configuration_namespace()) {
- msg = QString("%1 %2")
- .arg(!file_closed_ ? tr("Click to select packet") : tr("Packet"))
- .arg(packet_num_);
- } else {
- msg = QString("%1 %2")
- .arg(!file_closed_ ? tr("Click to select event") : tr("Event"))
- .arg(packet_num_);
- }
- val = " = " + QString::number(tracer_->position->value(), 'g', 4);
- }
- hint += tr("%1 (%2s%3).")
- .arg(msg)
- .arg(QString::number(ts, 'f', precision_))
- .arg(val);
- }
- iop->replot(QCustomPlot::rpQueuedReplot);
} else {
- if (event && rubber_band_ && rubber_band_->isVisible()) {
+ if (rubber_band_ && rubber_band_->isVisible()) {
rubber_band_->setGeometry(QRect(rb_origin_, event->pos()).normalized());
- QRectF zoom_ranges = getZoomRanges(QRect(rb_origin_, event->pos()));
- if (zoom_ranges.width() > 0.0 && zoom_ranges.height() > 0.0) {
- hint += tr("Release to zoom, x = %1 to %2, y = %3 to %4")
- .arg(zoom_ranges.x())
- .arg(zoom_ranges.x() + zoom_ranges.width())
- .arg(zoom_ranges.y())
- .arg(zoom_ranges.y() + zoom_ranges.height());
- } else {
- hint += tr("Unable to select range.");
- }
- } else {
- hint += tr("Click to select a portion of the graph.");
}
}
- ui->hintLabel->setText(hint);
+ updateHint();
}
void IOGraphDialog::mouseReleased(QMouseEvent *event)
@@ -1185,48 +1320,82 @@ void IOGraphDialog::mouseReleased(QMouseEvent *event)
void IOGraphDialog::resetAxes()
{
QCustomPlot *iop = ui->ioPlot;
- QCPRange x_range = iop->xAxis->scaleType() == QCPAxis::stLogarithmic ?
- iop->xAxis->range().sanitizedForLogScale() : iop->xAxis->range();
-
double pixel_pad = 10.0; // per side
iop->rescaleAxes(true);
+ QCPRange x_range = iop->xAxis->scaleType() == QCPAxis::stLogarithmic ?
+ iop->xAxis->range().sanitizedForLogScale() : iop->xAxis->range();
double axis_pixels = iop->xAxis->axisRect()->width();
iop->xAxis->scaleRange((axis_pixels + (pixel_pad * 2)) / axis_pixels, x_range.center());
+ QCPRange y_range = iop->yAxis->scaleType() == QCPAxis::stLogarithmic ?
+ iop->yAxis->range().sanitizedForLogScale() : iop->yAxis->range();
axis_pixels = iop->yAxis->axisRect()->height();
- iop->yAxis->scaleRange((axis_pixels + (pixel_pad * 2)) / axis_pixels, iop->yAxis->range().center());
+ iop->yAxis->scaleRange((axis_pixels + (pixel_pad * 2)) / axis_pixels, y_range.center());
auto_axes_ = true;
iop->replot();
}
+void IOGraphDialog::selectedFrameChanged(QList<int> frames)
+{
+ if (frames.count() == 1 && cap_file_.isValid() && !file_closed_ && tracer_->graph() && cap_file_.packetInfo() != nullptr) {
+ packet_info *pinfo = cap_file_.packetInfo();
+ if (pinfo->num != packet_num_) {
+ // This prevents being triggered by the IOG's own GoToPacketAction,
+ // although that is mostly harmless.
+ int interval = ui->intervalComboBox->itemData(ui->intervalComboBox->currentIndex()).toInt();
+
+ /*
+ * setGraphKey (with Interpolation false, as it is by default)
+ * finds the nearest point to the key. Our buckets are derived
+ * from rounding down (XXX - which is appropriate for relative
+ * time but less so when absolute time of day is selected.)
+ * We could call get_io_graph_index() and then multiply to get
+ * the exact ts for the bucket, but it's fewer math operations
+ * operations simply to subtract half the interval.
+ * XXX - Getting the exact value would be superior if we wished
+ * to avoid doing anything in the case that the tracer is
+ * already pointing at the correct bucket. (Is the hint always
+ * correct in that case?)
+ */
+#if 0
+ int64_t idx = get_io_graph_index(pinfo, interval);
+ double ts = (double)idx * interval / SCALE_F + nstime_to_sec(&start_time);
+#endif
+ double key = nstime_to_sec(&pinfo->rel_ts) - (interval / (2 * SCALE_F)) + nstime_to_sec(&start_time_);
+ tracer_->setGraphKey(key);
+ ui->ioPlot->replot();
+ updateHint();
+ }
+ }
+}
+
void IOGraphDialog::updateStatistics()
{
if (!isVisible()) return;
- if (need_retap_ && !file_closed_ && prefs.gui_io_graph_automatic_update) {
+ /* XXX - If we're currently retapping, what we really want to do is
+ * abort the current tap and start over. process_specified_records()
+ * in file.c doesn't let us do that, because it doesn't know whether
+ * it's holding cf->read_lock for something that could be restarted
+ * (like tapping or dissection) or something that needs to run to
+ * completion (saving, printing.)
+ *
+ * So we wait and see if we're no longer tapping the next check.
+ */
+ if (need_retap_ && !file_closed_ && !retapDepth() && prefs.gui_io_graph_automatic_update) {
need_retap_ = false;
- cap_file_.retapPackets();
+ QTimer::singleShot(0, &cap_file_, &CaptureFile::retapPackets);
// The user might have closed the window while tapping, which means
// we might no longer exist.
} else {
if (need_recalc_ && !file_closed_ && prefs.gui_io_graph_automatic_update) {
need_recalc_ = false;
need_replot_ = true;
- int enabled_graphs = 0;
- if (uat_model_ != NULL) {
- for (int row = 0; row < uat_model_->rowCount(); row++) {
- if (graphIsEnabled(row)) {
- ++enabled_graphs;
- }
- }
- }
- // With multiple visible graphs, disable Y scaling to avoid
- // multiple, distinct units.
- emit recalcGraphData(cap_file_.capFile(), enabled_graphs == 1);
+ emit recalcGraphData(cap_file_.capFile());
if (!tracer_->graph()) {
if (base_graph_ && base_graph_->data()->size() > 0) {
tracer_->setGraph(base_graph_);
@@ -1253,7 +1422,7 @@ void IOGraphDialog::loadProfileGraphs()
iog_uat_ = uat_new("I/O Graphs",
sizeof(io_graph_settings_t),
"io_graphs",
- TRUE,
+ true,
&iog_settings_,
&num_io_graphs_,
0, /* doesn't affect anything that requires a GUI update */
@@ -1261,7 +1430,7 @@ void IOGraphDialog::loadProfileGraphs()
io_graph_copy_cb,
NULL,
io_graph_free_cb,
- NULL,
+ io_graph_post_update_cb,
NULL,
io_graph_fields);
@@ -1273,16 +1442,23 @@ void IOGraphDialog::loadProfileGraphs()
g_free(err);
uat_clear(iog_uat_);
}
+
+ static_uat_model_ = new UatModel(mainApp, iog_uat_);
+ connect(mainApp, &MainApplication::profileChanging, IOGraphDialog::applyChanges);
}
- uat_model_ = new UatModel(ui->graphUat, iog_uat_);
+ uat_model_ = static_uat_model_;
uat_delegate_ = new UatDelegate(ui->graphUat);
ui->graphUat->setModel(uat_model_);
ui->graphUat->setItemDelegate(uat_delegate_);
- connect(uat_model_, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
- this, SLOT(modelDataChanged(QModelIndex)));
- connect(uat_model_, SIGNAL(modelReset()), this, SLOT(modelRowsReset()));
+ ui->graphUat->setHeader(new ResizeHeaderView(Qt::Horizontal, ui->graphUat));
+
+ connect(uat_model_, &UatModel::dataChanged, this, &IOGraphDialog::modelDataChanged);
+ connect(uat_model_, &UatModel::modelReset, this, &IOGraphDialog::modelRowsReset);
+ connect(uat_model_, &UatModel::rowsInserted, this, &IOGraphDialog::modelRowsInserted);
+ connect(uat_model_, &UatModel::rowsRemoved, this, &IOGraphDialog::modelRowsRemoved);
+ connect(uat_model_, &UatModel::rowsMoved, this, &IOGraphDialog::modelRowsMoved);
}
// Slots
@@ -1297,6 +1473,17 @@ void IOGraphDialog::on_intervalComboBox_currentIndexChanged(int)
precision_ = 0;
}
+ // XXX - This is the default QCP date time format, but adding fractional
+ // seconds when our interval is small. Should we make it something else,
+ // like ISO 8601 (but still with a line break between time and date)?
+ // Note this is local time, with no time zone offset displayed. Should
+ // it be in UTC? (call setDateTimeSpec())
+ if (precision_) {
+ datetime_ticker_->setDateTimeFormat("hh:mm:ss.z\ndd.MM.yy");
+ } else {
+ datetime_ticker_->setDateTimeFormat("hh:mm:ss\ndd.MM.yy");
+ }
+
if (uat_model_ != NULL) {
for (int row = 0; row < uat_model_->rowCount(); row++) {
IOGraph *iog = ioGraphs_.value(row, NULL);
@@ -1304,6 +1491,8 @@ void IOGraphDialog::on_intervalComboBox_currentIndexChanged(int)
iog->setInterval(interval);
if (iog->visible()) {
need_retap = true;
+ } else {
+ iog->setNeedRetap(true);
}
}
}
@@ -1312,13 +1501,12 @@ void IOGraphDialog::on_intervalComboBox_currentIndexChanged(int)
if (need_retap) {
scheduleRetap(true);
}
-
- updateLegend();
}
void IOGraphDialog::on_todCheckBox_toggled(bool checked)
{
- double orig_start = start_time_;
+ nstime_t orig_start;
+ nstime_copy(&orig_start, &start_time_);
bool orig_auto = auto_axes_;
if (checked) {
@@ -1330,17 +1518,85 @@ void IOGraphDialog::on_todCheckBox_toggled(bool checked)
scheduleRecalc(true);
auto_axes_ = orig_auto;
getGraphInfo();
- ui->ioPlot->xAxis->moveRange(start_time_ - orig_start);
- mouseMoved(NULL); // Update hint
+ nstime_delta(&orig_start, &start_time_, &orig_start);
+ ui->ioPlot->xAxis->moveRange(nstime_to_sec(&orig_start));
+ updateHint();
}
void IOGraphDialog::modelRowsReset()
{
+ foreach(IOGraph* iog, ioGraphs_) {
+ delete iog;
+ }
+ ioGraphs_.clear();
+
+ for (int i = 0; i < uat_model_->rowCount(); i++) {
+ createIOGraph(i);
+ }
ui->deleteToolButton->setEnabled(false);
ui->copyToolButton->setEnabled(false);
ui->clearToolButton->setEnabled(uat_model_->rowCount() != 0);
}
+void IOGraphDialog::modelRowsInserted(const QModelIndex &, int first, int last)
+{
+ // first to last is inclusive
+ for (int i = first; i <= last; i++) {
+ createIOGraph(i);
+ }
+}
+
+void IOGraphDialog::modelRowsRemoved(const QModelIndex &, int first, int last)
+{
+ // first to last is inclusive
+ for (int i = first; i <= last; i++) {
+ IOGraph *iog = ioGraphs_.takeAt(i);
+ delete iog;
+ }
+}
+
+void IOGraphDialog::modelRowsMoved(const QModelIndex &source, int sourceStart, int sourceEnd, const QModelIndex &dest, int destinationRow)
+{
+ // The source and destination parent are always the same for UatModel.
+ ws_assert(source == dest);
+ // Either destinationRow < sourceStart, or destinationRow > sourceEnd.
+ // When moving rows down the same parent, the rows are placed _before_
+ // destinationRow, otherwise it's the row to which items are moved.
+ if (destinationRow < sourceStart) {
+ for (int i = 0; i <= sourceEnd - sourceStart; i++) {
+ // When moving up the same parent, moving an earlier
+ // item doesn't change the row.
+ ioGraphs_.move(sourceStart + i, destinationRow + i);
+ }
+ } else {
+ for (int i = 0; i <= sourceEnd - sourceStart; i++) {
+ // When moving down the same parent, moving an earlier
+ // item means the next items move up (so all the moved
+ // rows are always at sourceStart.)
+ ioGraphs_.move(sourceStart, destinationRow + i - 1);
+ }
+ }
+
+ // setting a QCPLayerable to its current layer moves it to the end
+ // as though it were the last added. Do that for all the plottables
+ // starting with the first one that changed, so that the graphs appear
+ // as though they were added in the current order.
+ // (moveToLayer() is the same thing but with a parameter to prepend
+ // instead, which would be faster if we're in the top half of the
+ // list, except that's a protected function. There's no function
+ // to swap layerables in a layer.)
+ IOGraph *iog;
+ for (int row = qMin(sourceStart, destinationRow); row < uat_model_->rowCount(); row++) {
+ iog = ioGraphs_.at(row);
+ if (iog->graph()) {
+ iog->graph()->setLayer(iog->graph()->layer());
+ } else if (iog->bars()) {
+ iog->bars()->setLayer(iog->bars()->layer());
+ }
+ }
+ ui->ioPlot->replot();
+}
+
void IOGraphDialog::on_graphUat_currentItemChanged(const QModelIndex &current, const QModelIndex&)
{
if (current.isValid()) {
@@ -1349,6 +1605,12 @@ void IOGraphDialog::on_graphUat_currentItemChanged(const QModelIndex &current, c
ui->clearToolButton->setEnabled(true);
ui->moveUpwardsToolButton->setEnabled(true);
ui->moveDownwardsToolButton->setEnabled(true);
+ if (graphIsEnabled(current.row())) {
+ // Try to set the tracer to the new current graph.
+ // If it's not enabled, don't try to switch from the
+ // old graph to the one in the first row.
+ getGraphInfo();
+ }
} else {
ui->deleteToolButton->setEnabled(false);
ui->copyToolButton->setEnabled(false);
@@ -1358,18 +1620,23 @@ void IOGraphDialog::on_graphUat_currentItemChanged(const QModelIndex &current, c
}
}
-void IOGraphDialog::modelDataChanged(const QModelIndex &index)
+void IOGraphDialog::modelDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &)
{
bool recalc = false;
- switch (index.column())
- {
- case colYAxis:
- case colSMAPeriod:
- recalc = true;
+ for (int col = topLeft.column(); col <= bottomRight.column(); col++) {
+ switch (col)
+ {
+ case colYAxis:
+ case colSMAPeriod:
+ case colYAxisFactor:
+ recalc = true;
+ }
}
- syncGraphSettings(index.row());
+ for (int row = topLeft.row(); row <= bottomRight.row(); row++) {
+ syncGraphSettings(row);
+ }
if (recalc) {
scheduleRecalc(true);
@@ -1378,11 +1645,6 @@ void IOGraphDialog::modelDataChanged(const QModelIndex &index)
}
}
-void IOGraphDialog::on_resetButton_clicked()
-{
- resetAxes();
-}
-
void IOGraphDialog::on_newToolButton_clicked()
{
addGraph();
@@ -1392,9 +1654,6 @@ void IOGraphDialog::on_deleteToolButton_clicked()
{
const QModelIndex &current = ui->graphUat->currentIndex();
if (uat_model_ && current.isValid()) {
- delete ioGraphs_[current.row()];
- ioGraphs_.remove(current.row());
-
if (!uat_model_->removeRows(current.row(), 1)) {
qDebug() << "Failed to remove row";
}
@@ -1402,7 +1661,7 @@ void IOGraphDialog::on_deleteToolButton_clicked()
// We should probably be smarter about this.
hint_err_.clear();
- mouseMoved(NULL);
+ updateHint();
}
void IOGraphDialog::on_copyToolButton_clicked()
@@ -1413,15 +1672,11 @@ void IOGraphDialog::on_copyToolButton_clicked()
void IOGraphDialog::on_clearToolButton_clicked()
{
if (uat_model_) {
- foreach(IOGraph* iog, ioGraphs_) {
- delete iog;
- }
- ioGraphs_.clear();
uat_model_->clearAll();
}
hint_err_.clear();
- mouseMoved(NULL);
+ updateHint();
}
void IOGraphDialog::on_moveUpwardsToolButton_clicked()
@@ -1432,10 +1687,6 @@ void IOGraphDialog::on_moveUpwardsToolButton_clicked()
int current_row = current.row();
if (current_row > 0){
// Swap current row with the one above
- IOGraph* temp = ioGraphs_[current_row - 1];
- ioGraphs_[current_row - 1] = ioGraphs_[current_row];
- ioGraphs_[current_row] = temp;
-
uat_model_->moveRow(current_row, current_row - 1);
}
}
@@ -1449,10 +1700,6 @@ void IOGraphDialog::on_moveDownwardsToolButton_clicked()
int current_row = current.row();
if (current_row < uat_model_->rowCount() - 1) {
// Swap current row with the one below
- IOGraph* temp = ioGraphs_[current_row + 1];
- ioGraphs_[current_row + 1] = ioGraphs_[current_row];
- ioGraphs_[current_row] = temp;
-
uat_model_->moveRow(current_row, current_row + 1);
}
}
@@ -1476,14 +1723,28 @@ void IOGraphDialog::on_zoomRadioButton_toggled(bool checked)
void IOGraphDialog::on_logCheckBox_toggled(bool checked)
{
QCustomPlot *iop = ui->ioPlot;
+ QSharedPointer<QCPAxisTickerSi> si_ticker = qSharedPointerDynamicCast<QCPAxisTickerSi>(iop->yAxis->ticker());
+ if (si_ticker != nullptr) {
+ si_ticker->setLog(checked);
+ }
- iop->yAxis->setScaleType(checked ? QCPAxis::stLogarithmic : QCPAxis::stLinear);
+ if (checked) {
+ iop->yAxis->setScaleType(QCPAxis::stLogarithmic);
+ if (si_ticker == nullptr) {
+ iop->yAxis->setTicker(QSharedPointer<QCPAxisTickerLog>(new QCPAxisTickerLog));
+ }
+ } else {
+ iop->yAxis->setScaleType(QCPAxis::stLinear);
+ if (si_ticker == nullptr) {
+ iop->yAxis->setTicker(QSharedPointer<QCPAxisTicker>(new QCPAxisTicker));
+ }
+ }
iop->replot();
}
void IOGraphDialog::on_automaticUpdateCheckBox_toggled(bool checked)
{
- prefs.gui_io_graph_automatic_update = checked ? TRUE : FALSE;
+ prefs.gui_io_graph_automatic_update = checked ? true : false;
prefs_main_write();
@@ -1495,16 +1756,16 @@ void IOGraphDialog::on_automaticUpdateCheckBox_toggled(bool checked)
void IOGraphDialog::on_enableLegendCheckBox_toggled(bool checked)
{
- prefs.gui_io_graph_enable_legend = checked ? TRUE : FALSE;
+ prefs.gui_io_graph_enable_legend = checked ? true : false;
prefs_main_write();
- updateLegend();
+ ui->ioPlot->legend->layer()->replot();
}
void IOGraphDialog::on_actionReset_triggered()
{
- on_resetButton_clicked();
+ resetAxes();
}
void IOGraphDialog::on_actionZoomIn_triggered()
@@ -1600,7 +1861,7 @@ void IOGraphDialog::on_actionToggleTimeOrigin_triggered()
void IOGraphDialog::on_actionCrosshairs_triggered()
{
-
+ toggleTracerStyle();
}
void IOGraphDialog::on_buttonBox_helpRequested()
@@ -1653,6 +1914,17 @@ void IOGraphDialog::on_buttonBox_accepted()
}
}
+void IOGraphDialog::buttonBoxClicked(QAbstractButton *button)
+{
+ switch (ui->buttonBox->buttonRole(button)) {
+ case QDialogButtonBox::ResetRole:
+ resetAxes();
+ break;
+ default:
+ break;
+ }
+}
+
void IOGraphDialog::makeCsv(QTextStream &stream) const
{
QList<IOGraph *> activeGraphs;
@@ -1661,25 +1933,47 @@ void IOGraphDialog::makeCsv(QTextStream &stream) const
int max_interval = 0;
stream << "\"Interval start\"";
- if (uat_model_ != NULL) {
- for (int row = 0; row < uat_model_->rowCount(); row++) {
- if (graphIsEnabled(row) && ioGraphs_[row] != NULL) {
- activeGraphs.append(ioGraphs_[row]);
- if (max_interval < ioGraphs_[row]->maxInterval()) {
- max_interval = ioGraphs_[row]->maxInterval();
- }
- QString name = ioGraphs_[row]->name().toUtf8();
- name = QString("\"%1\"").arg(name.replace("\"", "\"\"")); // RFC 4180
- stream << "," << name;
+ for (int row = 0; row < graphCount(); row++) {
+ if (graphIsEnabled(row) && ioGraphs_[row] != NULL) {
+ activeGraphs.append(ioGraphs_[row]);
+ if (max_interval < ioGraphs_[row]->maxInterval()) {
+ max_interval = ioGraphs_[row]->maxInterval();
}
+ QString name = ioGraphs_[row]->name().toUtf8();
+ name = QString("\"%1\"").arg(name.replace("\"", "\"\"")); // RFC 4180
+ stream << "," << name;
}
}
stream << '\n';
for (int interval = 0; interval <= max_interval; interval++) {
- double interval_start = (double)interval * ((double)ui_interval / SCALE_F);
- stream << interval_start;
+ int64_t interval_start = (int64_t)interval * ui_interval;
+ if (qSharedPointerDynamicCast<QCPAxisTickerDateTime>(ui->ioPlot->xAxis->ticker()) != nullptr) {
+ nstime_t interval_time = NSTIME_INIT_SECS_USECS((time_t)(interval_start / SCALE), (int)(interval_start % SCALE));
+
+ nstime_add(&interval_time, &start_time_);
+
+ static char time_string_buf[39];
+
+ if (decimal_point == nullptr) {
+ decimal_point = g_strdup(localeconv()->decimal_point);
+ }
+ // Should we convert to UTC for output, even if the graph axis has
+ // local time?
+ // The question of what precision to use is somewhat tricky.
+ // The buckets are aligned to the relative time start, not to
+ // absolute time, so the timestamp precision should be used instead
+ // of the bucket precision. We can save the precision of the
+ // start time timestamp for each graph, but we don't necessarily
+ // have a guarantee that all timestamps in the file have the same
+ // precision. Possibly nstime_t should store precision, cf. #15579
+ format_nstime_as_iso8601(time_string_buf, sizeof time_string_buf, &interval_time, decimal_point, true, 9); // precision_);
+
+ stream << time_string_buf;
+ } else {
+ stream << (double)interval_start / SCALE_F;
+ }
foreach (IOGraph *iog, activeGraphs) {
double value = 0.0;
if (interval <= iog->maxInterval()) {
@@ -1713,12 +2007,14 @@ bool IOGraphDialog::saveCsv(const QString &file_name) const
IOGraph::IOGraph(QCustomPlot *parent) :
parent_(parent),
+ tap_registered_(true),
visible_(false),
graph_(NULL),
bars_(NULL),
val_units_(IOG_ITEM_UNIT_FIRST),
hf_index_(-1),
interval_(0),
+ start_time_(NSTIME_INIT_ZERO),
cur_idx_(-1)
{
Q_ASSERT(parent_ != NULL);
@@ -1738,12 +2034,13 @@ IOGraph::IOGraph(QCustomPlot *parent) :
// QMessageBox::critical(this, tr("%1 failed to register tap listener").arg(name_),
// error_string->str);
// config_err_ = error_string->str;
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
+ tap_registered_ = false;
}
}
IOGraph::~IOGraph() {
- remove_tap_listener(this);
+ removeTapListener();
if (graph_) {
parent_->removeGraph(graph_);
}
@@ -1752,9 +2049,17 @@ IOGraph::~IOGraph() {
}
}
+void IOGraph::removeTapListener()
+{
+ if (tap_registered_) {
+ remove_tap_listener(this);
+ tap_registered_ = false;
+ }
+}
+
// Construct a full filter string from the display filter and value unit / Y axis.
-// Check for errors and sets config_err_ if any are found.
-void IOGraph::setFilter(const QString &filter)
+// Check for errors and sets config_err_ and returns false if any are found.
+bool IOGraph::setFilter(const QString &filter)
{
GString *error_string;
QString full_filter(filter.trimmed());
@@ -1772,7 +2077,7 @@ void IOGraph::setFilter(const QString &filter)
config_err_ = QString::fromUtf8(df_err->msg);
df_error_free(&df_err);
filter_ = full_filter;
- return;
+ return false;
}
}
@@ -1780,8 +2085,8 @@ void IOGraph::setFilter(const QString &filter)
error_string = check_field_unit(vu_field_.toUtf8().constData(), NULL, val_units_);
if (error_string) {
config_err_ = error_string->str;
- g_string_free(error_string, TRUE);
- return;
+ g_string_free(error_string, true);
+ return false;
}
// Make sure vu_field_ survives edt tree pruning by adding it to our filter
@@ -1794,17 +2099,36 @@ void IOGraph::setFilter(const QString &filter)
}
}
- error_string = set_tap_dfilter(this, full_filter.toUtf8().constData());
- if (error_string) {
- config_err_ = error_string->str;
- g_string_free(error_string, TRUE);
- return;
- } else {
- if (filter_.compare(filter) && visible_) {
- emit requestRetap();
+ if (full_filter_.compare(full_filter)) {
+ error_string = set_tap_dfilter(this, full_filter.toUtf8().constData());
+ if (error_string) {
+ config_err_ = error_string->str;
+ g_string_free(error_string, true);
+ return false;
}
+
filter_ = filter;
+ full_filter_ = full_filter;
+ /* If we changed the tap filter the graph is visible, we need to
+ * retap.
+ * Note that setting the tap dfilter will mark the tap as needing a
+ * redraw, which will cause a recalculation (via tapDraw) via the
+ * (fairly long) main application timer.
+ */
+ /* XXX - When changing from an advanced graph to one that doesn't
+ * use the field, we don't actually need to retap if filter and
+ * full_filter produce the same results. (We do have to retap
+ * regardless if changing _to_ an advanced graph, because the
+ * extra fields in the io_graph_item_t aren't filled in from the
+ * edt for the basic graph.)
+ * Checking that in full generality would require more optimization
+ * in the dfilter engine plus functions to compare filters, but
+ * we could test the simple case where filter and vu_field are
+ * the same string.
+ */
+ setNeedRetap(true);
}
+ return true;
}
void IOGraph::applyCurrentColor()
@@ -1812,7 +2136,15 @@ void IOGraph::applyCurrentColor()
if (graph_) {
graph_->setPen(QPen(color_, graph_line_width_));
} else if (bars_) {
- bars_->setPen(QPen(QBrush(ColorUtils::graphColor(0)), graph_line_width_)); // ...or omit it altogether?
+ bars_->setPen(QPen(color_.color().darker(110), graph_line_width_));
+ // ...or omit it altogether?
+ // bars_->setPen(QPen(color_);
+ // XXX - We should do something like
+ // bars_->setPen(QPen(ColorUtils::alphaBlend(color_, palette().windowText(), 0.65));
+ // to get a darker outline in light mode and a lighter outline in dark
+ // mode, but we don't yet respect dark mode in IOGraph (or anything
+ // that uses QCustomPlot) - see link below for how to set QCP colors:
+ // https://www.qcustomplot.com/index.php/demos/barchartdemo
bars_->setBrush(color_);
}
}
@@ -1828,7 +2160,28 @@ void IOGraph::setVisible(bool visible)
bars_->setVisible(visible_);
}
if (old_visibility != visible_) {
- emit requestReplot();
+ if (visible_ && need_retap_) {
+ need_retap_ = false;
+ emit requestRetap();
+ } else {
+ // XXX - If the number of enabled graphs changed to or from 1, we
+ // need to recalculate to possibly change the rescaling. (This is
+ // why QCP recommends doing scaling in the axis ticker instead.)
+ // If we can't determine the number of enabled graphs here, always
+ // request a recalculation instead of a replot. (At least until we
+ // change the scaling to be done in the ticker.)
+ //emit requestReplot();
+ emit requestRecalc();
+ }
+ }
+}
+
+void IOGraph::setNeedRetap(bool retap)
+{
+ if (visible_ && retap) {
+ emit requestRetap();
+ } else {
+ need_retap_ = retap;
}
}
@@ -1843,7 +2196,7 @@ void IOGraph::setName(const QString &name)
}
}
-QRgb IOGraph::color()
+QRgb IOGraph::color() const
{
return color_.color().rgb();
}
@@ -1856,6 +2209,9 @@ void IOGraph::setColor(const QRgb color)
void IOGraph::setPlotStyle(int style)
{
+ bool recalc = false;
+ bool shows_zero = showsZero();
+
// Switch plottable if needed
switch (style) {
case psBar:
@@ -1870,6 +2226,7 @@ void IOGraph::setPlotStyle(int style)
}
parent_->removeGraph(graph_);
graph_ = NULL;
+ recalc = true;
}
break;
default:
@@ -1877,6 +2234,7 @@ void IOGraph::setPlotStyle(int style)
graph_ = parent_->addGraph(parent_->xAxis, parent_->yAxis);
parent_->removePlottable(bars_);
bars_ = NULL;
+ recalc = true;
}
break;
}
@@ -1952,11 +2310,21 @@ void IOGraph::setPlotStyle(int style)
break;
}
+ if (shows_zero != showsZero()) {
+ // recalculate if whether zero is added changed
+ recalc = true;
+ }
+
setName(name_);
applyCurrentColor();
+
+ if (recalc) {
+ // switching the plottable requires recalculation to add the data
+ emit requestRecalc();
+ }
}
-const QString IOGraph::valueUnitLabel()
+QString IOGraph::valueUnitLabel() const
{
return val_to_str_const(val_units_, y_axis_vs, "Unknown");
}
@@ -1968,9 +2336,21 @@ void IOGraph::setValueUnits(int val_units)
val_units_ = (io_graph_item_unit_t)val_units;
if (old_val_units != val_units) {
- setFilter(filter_); // Check config & prime vu field
- if (val_units < IOG_ITEM_UNIT_CALC_SUM) {
- emit requestRecalc();
+ // If val_units changed, switching between a type that doesn't
+ // use the vu_field/hfi/edt to one of the advanced graphs that
+ // does requires a retap. setFilter will handle that, because
+ // the full filter strings will be different.
+ if (setFilter(filter_)) { // Check config & prime vu field
+ if (val_units == IOG_ITEM_UNIT_CALC_LOAD ||
+ old_val_units == IOG_ITEM_UNIT_CALC_LOAD) {
+ // LOAD graphs fill in the io_graph_item_t differently
+ // than other advanced graphs, so we have to retap even
+ // if the filter is the same. (update_io_graph_item could
+ // instead calculate and store LOAD information for any
+ // advanced graph type, but the tradeoff might not be
+ // worth it.)
+ setNeedRetap(true);
+ }
}
}
}
@@ -1989,6 +2369,8 @@ void IOGraph::setValueUnitField(const QString &vu_field)
}
if (old_hf_index != hf_index_) {
+ // If the field changed, and val_units is a type that uses it,
+ // we need to retap. setFilter will handle that.
setFilter(filter_); // Check config & prime vu field
}
}
@@ -2015,25 +2397,44 @@ bool IOGraph::removeFromLegend()
return false;
}
-double IOGraph::startOffset()
+// This returns what graph key offset corresponds with relative time 0.0,
+// i.e. when absolute times are used the difference between abs_ts and
+// rel_ts of the first tapped packet. Generally the same for all graphs
+// that are displayed and have some data, unless they're on the opposite
+// sides of time references.
+// XXX - If the graph spans a time reference, it's not clear how we want
+// to switch from relative to absolute times.
+double IOGraph::startOffset() const
{
- if (graph_ && qSharedPointerDynamicCast<QCPAxisTickerDateTime>(graph_->keyAxis()->ticker()) && graph_->data()->size() > 0) {
- return graph_->data()->at(0)->key;
+ if (graph_ && qSharedPointerDynamicCast<QCPAxisTickerDateTime>(graph_->keyAxis()->ticker())) {
+ return nstime_to_sec(&start_time_);
}
- if (bars_ && qSharedPointerDynamicCast<QCPAxisTickerDateTime>(bars_->keyAxis()->ticker()) && bars_->data()->size() > 0) {
- return bars_->data()->at(0)->key;
+ if (bars_ && qSharedPointerDynamicCast<QCPAxisTickerDateTime>(bars_->keyAxis()->ticker())) {
+ return nstime_to_sec(&start_time_);
}
return 0.0;
}
-int IOGraph::packetFromTime(double ts)
+nstime_t IOGraph::startTime() const
+{
+ if (graph_ && qSharedPointerDynamicCast<QCPAxisTickerDateTime>(graph_->keyAxis()->ticker())) {
+ return start_time_;
+ }
+ if (bars_ && qSharedPointerDynamicCast<QCPAxisTickerDateTime>(bars_->keyAxis()->ticker())) {
+ return start_time_;
+ }
+ return nstime_t(NSTIME_INIT_ZERO);
+}
+
+int IOGraph::packetFromTime(double ts) const
{
int idx = ts * SCALE_F / interval_;
- if (idx >= 0 && idx < (int) cur_idx_) {
+ if (idx >= 0 && idx <= cur_idx_) {
switch (val_units_) {
case IOG_ITEM_UNIT_CALC_MAX:
+ return items_[idx].max_frame_in_invl;
case IOG_ITEM_UNIT_CALC_MIN:
- return items_[idx].extreme_frame_in_invl;
+ return items_[idx].min_frame_in_invl;
default:
return items_[idx].last_frame_in_invl;
}
@@ -2044,31 +2445,30 @@ int IOGraph::packetFromTime(double ts)
void IOGraph::clearAllData()
{
cur_idx_ = -1;
- reset_io_graph_items(&items_[0], items_.size());
+ if (items_.size()) {
+ reset_io_graph_items(&items_[0], items_.size(), hf_index_);
+ }
if (graph_) {
graph_->data()->clear();
}
if (bars_) {
bars_->data()->clear();
}
- start_time_ = 0.0;
+ nstime_set_zero(&start_time_);
}
-void IOGraph::recalcGraphData(capture_file *cap_file, bool enable_scaling)
+void IOGraph::recalcGraphData(capture_file *cap_file)
{
/* Moving average variables */
unsigned int mavg_in_average_count = 0, mavg_left = 0;
unsigned int mavg_to_remove = 0, mavg_to_add = 0;
double mavg_cumulated = 0;
- QCPAxis *x_axis = nullptr;
if (graph_) {
graph_->data()->clear();
- x_axis = graph_->keyAxis();
}
if (bars_) {
bars_->data()->clear();
- x_axis = bars_->keyAxis();
}
if (moving_avg_period_ > 0 && cur_idx_ >= 0) {
@@ -2076,7 +2476,7 @@ void IOGraph::recalcGraphData(capture_file *cap_file, bool enable_scaling)
* just to make sure average on leftmost and rightmost displayed
* values is as reliable as possible
*/
- guint64 warmup_interval = 0;
+ uint64_t warmup_interval = 0;
// for (; warmup_interval < first_interval; warmup_interval += interval_) {
// mavg_cumulated += get_it_value(io, i, (int)warmup_interval/interval_);
@@ -2086,8 +2486,8 @@ void IOGraph::recalcGraphData(capture_file *cap_file, bool enable_scaling)
mavg_cumulated += getItemValue((int)warmup_interval/interval_, cap_file);
mavg_in_average_count++;
for (warmup_interval = interval_;
- ((warmup_interval < (0 + (moving_avg_period_ / 2) * (guint64)interval_)) &&
- (warmup_interval <= (cur_idx_ * (guint64)interval_)));
+ ((warmup_interval < (0 + (moving_avg_period_ / 2) * (uint64_t)interval_)) &&
+ (warmup_interval <= (cur_idx_ * (uint64_t)interval_)));
warmup_interval += interval_) {
mavg_cumulated += getItemValue((int)warmup_interval / interval_, cap_file);
@@ -2096,11 +2496,9 @@ void IOGraph::recalcGraphData(capture_file *cap_file, bool enable_scaling)
mavg_to_add = (unsigned int)warmup_interval;
}
+ double ts_offset = startOffset();
for (int i = 0; i <= cur_idx_; i++) {
- double ts = (double) i * interval_ / SCALE_F;
- if (x_axis && qSharedPointerDynamicCast<QCPAxisTickerDateTime>(x_axis->ticker())) {
- ts += start_time_;
- }
+ double ts = (double) i * interval_ / SCALE_F + ts_offset;
double val = getItemValue(i, cap_file);
if (moving_avg_period_ > 0) {
@@ -2137,70 +2535,41 @@ void IOGraph::recalcGraphData(capture_file *cap_file, bool enable_scaling)
// qDebug() << "=rgd i" << i << ts << val;
}
- // attempt to rescale time values to specific units
- if (enable_scaling) {
- calculateScaledValueUnit();
- } else {
- scaled_value_unit_.clear();
- }
-
emit requestReplot();
}
-void IOGraph::calculateScaledValueUnit()
+format_size_units_e IOGraph::formatUnits() const
{
- // Reset unit and recalculate if needed.
- scaled_value_unit_.clear();
-
- // If there is no field, scaling is not possible.
- if (hf_index_ < 0) {
- return;
- }
-
switch (val_units_) {
+ case IOG_ITEM_UNIT_PACKETS:
+ case IOG_ITEM_UNIT_CALC_FRAMES:
+ return FORMAT_SIZE_UNIT_PACKETS;
+ case IOG_ITEM_UNIT_BYTES:
+ return FORMAT_SIZE_UNIT_BYTES;
+ case IOG_ITEM_UNIT_BITS:
+ return FORMAT_SIZE_UNIT_BITS;
+ case IOG_ITEM_UNIT_CALC_LOAD:
+ return FORMAT_SIZE_UNIT_ERLANGS;
+ break;
+ case IOG_ITEM_UNIT_CALC_FIELDS:
+ return FORMAT_SIZE_UNIT_FIELDS;
+ break;
case IOG_ITEM_UNIT_CALC_SUM:
case IOG_ITEM_UNIT_CALC_MAX:
case IOG_ITEM_UNIT_CALC_MIN:
case IOG_ITEM_UNIT_CALC_AVERAGE:
// Unit is not yet known, continue detecting it.
- break;
- default:
- // Unit is Packets, Bytes, Bits, etc.
- return;
- }
-
- if (proto_registrar_get_ftype(hf_index_) == FT_RELATIVE_TIME) {
- // find maximum absolute value and scale accordingly
- double maxValue = 0;
- if (graph_) {
- maxValue = maxValueFromGraphData(*graph_->data());
- } else if (bars_) {
- maxValue = maxValueFromGraphData(*bars_->data());
- }
- // If the maximum value is zero, then either we have no data or
- // everything is zero, do not scale the unit in this case.
- if (maxValue == 0) {
- return;
- }
-
- // XXX GTK+ always uses "ms" for log scale, should we do that too?
- int value_multiplier;
- if (maxValue >= 1.0) {
- scaled_value_unit_ = "s";
- value_multiplier = 1;
- } else if (maxValue >= 0.001) {
- scaled_value_unit_ = "ms";
- value_multiplier = 1000;
- } else {
- scaled_value_unit_ = "us";
- value_multiplier = 1000000;
- }
-
- if (graph_) {
- scaleGraphData(*graph_->data(), value_multiplier);
- } else if (bars_) {
- scaleGraphData(*bars_->data(), value_multiplier);
+ if (hf_index_ > 0) {
+ if (proto_registrar_get_ftype(hf_index_) == FT_RELATIVE_TIME) {
+ return FORMAT_SIZE_UNIT_SECONDS;
+ }
+ // Could we look if it's BASE_UNIT_STRING and use that?
+ // One complication is that prefixes shouldn't be combined,
+ // and some unit strings are already prefixed units.
}
+ return FORMAT_SIZE_UNIT_NONE;
+ default:
+ return FORMAT_SIZE_UNIT_NONE;
}
}
@@ -2233,7 +2602,7 @@ void IOGraph::captureEvent(CaptureEvent e)
if ((e.captureContext() == CaptureEvent::File) &&
(e.eventType() == CaptureEvent::Closing))
{
- remove_tap_listener(this);
+ removeTapListener();
}
}
@@ -2244,6 +2613,37 @@ void IOGraph::reloadValueUnitField()
}
}
+// returns true if the current plot style shows zero values,
+// false if null values are omitted.
+bool IOGraph::showsZero() const
+{
+ switch (val_units_) {
+ case IOG_ITEM_UNIT_PACKETS:
+ case IOG_ITEM_UNIT_BYTES:
+ case IOG_ITEM_UNIT_BITS:
+ case IOG_ITEM_UNIT_CALC_FRAMES:
+ case IOG_ITEM_UNIT_CALC_FIELDS:
+ if (graph_ && graph_->lineStyle() == QCPGraph::lsNone) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ case IOG_ITEM_UNIT_CALC_SUM:
+ case IOG_ITEM_UNIT_CALC_MAX:
+ case IOG_ITEM_UNIT_CALC_MIN:
+ case IOG_ITEM_UNIT_CALC_AVERAGE:
+ case IOG_ITEM_UNIT_CALC_LOAD:
+ // These are not the same sort of "omitted zeros" as above,
+ // but changing val_units_ always results in a recalculation
+ // so it doesn't matter (see modelDataChanged)
+ return false;
+
+ default:
+ return true;
+ }
+}
+
// Check if a packet is available at the given interval (idx).
bool IOGraph::hasItemToShow(int idx, double value) const
{
@@ -2259,7 +2659,7 @@ bool IOGraph::hasItemToShow(int idx, double value) const
case IOG_ITEM_UNIT_BITS:
case IOG_ITEM_UNIT_CALC_FRAMES:
case IOG_ITEM_UNIT_CALC_FIELDS:
- if(value == 0.0 && (graph_ && graph_->scatterStyle().shape() != QCPScatterStyle::ssNone)) {
+ if (value == 0.0 && (graph_ && graph_->lineStyle() == QCPGraph::lsNone)) {
result = false;
}
else {
@@ -2319,22 +2719,38 @@ tap_packet_status IOGraph::tapPacket(void *iog_ptr, packet_info *pinfo, epan_dis
return TAP_PACKET_DONT_REDRAW;
}
- int idx = get_io_graph_index(pinfo, iog->interval_);
+ int64_t tmp_idx = get_io_graph_index(pinfo, iog->interval_);
bool recalc = false;
/* some sanity checks */
- if ((idx < 0) || (idx >= max_io_items_)) {
+ if ((tmp_idx < 0) || (tmp_idx >= max_io_items_)) {
iog->cur_idx_ = (int)iog->items_.size() - 1;
return TAP_PACKET_DONT_REDRAW;
}
+ int idx = (int)tmp_idx;
+ /* If the graph isn't visible, don't do the work or redraw, but mark
+ * the graph in need of a retap if it is ever enabled. The alternative
+ * is to do the work, but clear pending retaps when the taps are reset
+ * (which indicates something else triggered a retap.) The tradeoff would
+ * be more calculation and memory usage when a graph is disabled in
+ * exchange for fewer scenarios that involve retaps when toggling the
+ * enabled/disabled taps.
+ */
+ if (!iog->visible()) {
+ if (idx > iog->cur_idx_) {
+ iog->need_retap_ = true;
+ }
+ return TAP_PACKET_DONT_REDRAW;
+ }
+
if ((size_t)idx >= iog->items_.size()) {
const size_t old_size = iog->items_.size();
size_t new_size;
if (old_size == 0) {
new_size = 1024;
} else {
- new_size = MIN(old_size << 1, old_size + 262144);
+ new_size = MIN((old_size * 3) / 2, max_io_items_);
}
new_size = MAX(new_size, (size_t)idx + 1);
try {
@@ -2355,11 +2771,8 @@ tap_packet_status IOGraph::tapPacket(void *iog_ptr, packet_info *pinfo, epan_dis
}
/* set start time */
- if (iog->start_time_ == 0.0) {
- nstime_t start_nstime;
- nstime_set_zero(&start_nstime);
- nstime_delta(&start_nstime, &pinfo->abs_ts, &pinfo->rel_ts);
- iog->start_time_ = nstime_to_sec(&start_nstime);
+ if (nstime_is_zero(&iog->start_time_)) {
+ nstime_delta(&iog->start_time_, &pinfo->abs_ts, &pinfo->rel_ts);
}
epan_dissect_t *adv_edt = NULL;
diff --git a/ui/qt/io_graph_dialog.h b/ui/qt/io_graph_dialog.h
index f864c461a9..5377b39610 100644
--- a/ui/qt/io_graph_dialog.h
+++ b/ui/qt/io_graph_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "epan/epan_dissect.h"
#include "epan/prefs.h"
#include "ui/preference_utils.h"
@@ -25,6 +23,9 @@
#include <ui/qt/models/uat_model.h>
#include <ui/qt/models/uat_delegate.h>
+#include <wsutil/str_util.h>
+
+#include <QPointer>
#include <QIcon>
#include <QMenu>
#include <QTextStream>
@@ -33,6 +34,8 @@
class QRubberBand;
class QTimer;
+class QAbstractButton;
+class CopyFromProfileButton;
class QCPBars;
class QCPGraph;
@@ -44,15 +47,13 @@ class QCPAxisTickerDateTime;
// GTK+ set this to 100000 (NUM_IO_ITEMS) before raising it to unlimited
// in commit 524583298beb671f43e972476693866754d38a38.
// This is the maximum index returned from get_io_graph_index that will
-// be added to the graph. Thus, for a minimum interval size of 1 ms we
-// can span no more than 4.66 days, and if we decrease the minimum interval
-// size without increasing this it would decrease proportionately (e.g.
-// for 1 μs no more than 16.8 s.)
-// Each io_graph_item_t is 152 bytes on a LP64 system, so the max size
-// we'll attempt to allocate for the array of items is 2.375 GiB
+// be added to the graph. Thus, for a minimum interval size of 1 μs no
+// more than 33.55 s.
+// Each io_graph_item_t is 88 bytes on a system with 64 bit time_t, so
+// the max size we'll attempt to allocate for the array of items is 2.75 GiB
// (plus a tiny amount extra for the std::vector bookkeeping.)
-// 2^24 = 16777216
-const int max_io_items_ = 1 << 24;
+// 2^25 = 16777216
+const int max_io_items_ = 1 << 25;
// XXX - Move to its own file?
class IOGraph : public QObject {
@@ -63,33 +64,37 @@ public:
explicit IOGraph(QCustomPlot *parent);
~IOGraph();
- const QString configError() { return config_err_; }
- const QString name() { return name_; }
+ QString configError() const { return config_err_; }
+ QString name() const { return name_; }
void setName(const QString &name);
- const QString filter() { return filter_; }
- void setFilter(const QString &filter);
+ QString filter() const { return filter_; }
+ bool setFilter(const QString &filter);
void applyCurrentColor();
- bool visible() { return visible_; }
+ bool visible() const { return visible_; }
void setVisible(bool visible);
- QRgb color();
+ bool needRetap() const { return need_retap_; }
+ void setNeedRetap(bool retap);
+ QRgb color() const;
void setColor(const QRgb color);
void setPlotStyle(int style);
- const QString valueUnitLabel();
+ QString valueUnitLabel() const;
+ format_size_units_e formatUnits() const;
+ io_graph_item_unit_t valueUnits() const { return val_units_; }
void setValueUnits(int val_units);
- const QString valueUnitField() { return vu_field_; }
+ QString valueUnitField() const { return vu_field_; }
void setValueUnitField(const QString &vu_field);
- unsigned int movingAveragePeriod() { return moving_avg_period_; }
+ unsigned int movingAveragePeriod() const { return moving_avg_period_; }
void setInterval(int interval);
bool addToLegend();
bool removeFromLegend();
- QCPGraph *graph() { return graph_; }
- QCPBars *bars() { return bars_; }
- double startOffset();
- int packetFromTime(double ts);
+ QCPGraph *graph() const { return graph_; }
+ QCPBars *bars() const { return bars_; }
+ double startOffset() const;
+ nstime_t startTime() const;
+ int packetFromTime(double ts) const;
bool hasItemToShow(int idx, double value) const;
double getItemValue(int idx, const capture_file *cap_file) const;
int maxInterval () const { return cur_idx_; }
- QString scaledValueUnit() const { return scaled_value_unit_; }
void clearAllData();
@@ -97,7 +102,7 @@ public:
unsigned int y_axis_factor_;
public slots:
- void recalcGraphData(capture_file *cap_file, bool enable_scaling);
+ void recalcGraphData(capture_file *cap_file);
void captureEvent(CaptureEvent e);
void reloadValueUnitField();
@@ -112,24 +117,29 @@ private:
static tap_packet_status tapPacket(void *iog_ptr, packet_info *pinfo, epan_dissect_t *edt, const void *data, tap_flags_t flags);
static void tapDraw(void *iog_ptr);
- void calculateScaledValueUnit();
+ void removeTapListener();
+
+ bool showsZero() const;
+
template<class DataMap> double maxValueFromGraphData(const DataMap &map);
template<class DataMap> void scaleGraphData(DataMap &map, int scalar);
QCustomPlot *parent_;
QString config_err_;
QString name_;
+ bool tap_registered_;
bool visible_;
+ bool need_retap_;
QCPGraph *graph_;
QCPBars *bars_;
QString filter_;
+ QString full_filter_; // Includes vu_field_ if used
QBrush color_;
io_graph_item_unit_t val_units_;
QString vu_field_;
int hf_index_;
int interval_;
- double start_time_;
- QString scaled_value_unit_;
+ nstime_t start_time_;
// Cached data. We should be able to change the Y axis without retapping as
// much as is feasible.
@@ -146,40 +156,50 @@ class IOGraphDialog : public WiresharkDialog
Q_OBJECT
public:
- explicit IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFilter = QString());
+ explicit IOGraphDialog(QWidget &parent, CaptureFile &cf, QString displayFilter = QString(), io_graph_item_unit_t value_units = IOG_ITEM_UNIT_PACKETS, QString yfield = QString());
~IOGraphDialog();
enum UatColumns { colEnabled = 0, colName, colDFilter, colColor, colStyle, colYAxis, colYField, colSMAPeriod, colYAxisFactor, colMaxNum};
void addGraph(bool checked, QString name, QString dfilter, QRgb color_idx, IOGraph::PlotStyles style,
io_graph_item_unit_t value_units, QString yfield, int moving_average, int yaxisfactor);
+ void addGraph(bool checked, QString dfilter, io_graph_item_unit_t value_units, QString yfield);
void addGraph(bool copy_from_current = false);
void addDefaultGraph(bool enabled, int idx = 0);
void syncGraphSettings(int row);
+ qsizetype graphCount() const;
public slots:
void scheduleReplot(bool now = false);
void scheduleRecalc(bool now = false);
void scheduleRetap(bool now = false);
- void modelRowsReset();
void reloadFields();
protected:
+ void captureFileClosing();
void keyPressEvent(QKeyEvent *event);
void reject();
+protected slots:
+ void modelDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
+ void modelRowsReset();
+ void modelRowsInserted(const QModelIndex &parent, int first, int last);
+ void modelRowsRemoved(const QModelIndex &parent, int first, int last);
+ void modelRowsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow);
+
signals:
void goToPacket(int packet_num);
- void recalcGraphData(capture_file *cap_file, bool enable_scaling);
+ void recalcGraphData(capture_file *cap_file);
void intervalChanged(int interval);
void reloadValueUnitFields();
private:
Ui::IOGraphDialog *ui;
+ CopyFromProfileButton *copy_profile_bt_;
//Model and delegate were chosen over UatFrame because add/remove/copy
//buttons would need realignment (UatFrame has its own)
- UatModel *uat_model_;
+ QPointer<UatModel> uat_model_;
UatDelegate *uat_delegate_;
// XXX - This needs to stay synced with UAT index
@@ -188,8 +208,8 @@ private:
QString hint_err_;
QCPGraph *base_graph_;
QCPItemTracer *tracer_;
- guint32 packet_num_;
- double start_time_;
+ uint32_t packet_num_;
+ nstime_t start_time_;
bool mouse_drags_;
QRubberBand *rubber_band_;
QPoint rb_origin_;
@@ -212,6 +232,7 @@ private:
void panAxes(int x_pixels, int y_pixels);
void toggleTracerStyle(bool force_default = false);
void getGraphInfo();
+ void updateHint();
void updateLegend();
QRectF getZoomRanges(QRect zoom_rect);
void createIOGraph(int currentRow);
@@ -222,11 +243,15 @@ private:
bool graphIsEnabled(int row) const;
private slots:
+ static void applyChanges();
+
void copyFromProfile(QString filename);
void updateWidgets();
+ void showContextMenu(const QPoint &pos);
void graphClicked(QMouseEvent *event);
void mouseMoved(QMouseEvent *event);
void mouseReleased(QMouseEvent *event);
+ void selectedFrameChanged(QList<int> frames);
void resetAxes();
void updateStatistics(void);
@@ -234,10 +259,8 @@ private slots:
void on_intervalComboBox_currentIndexChanged(int index);
void on_todCheckBox_toggled(bool checked);
- void modelDataChanged(const QModelIndex &index);
void on_graphUat_currentItemChanged(const QModelIndex &current, const QModelIndex &previous);
- void on_resetButton_clicked();
void on_logCheckBox_toggled(bool checked);
void on_automaticUpdateCheckBox_toggled(bool checked);
void on_enableLegendCheckBox_toggled(bool checked);
@@ -270,6 +293,7 @@ private slots:
void on_actionCrosshairs_triggered();
void on_buttonBox_helpRequested();
void on_buttonBox_accepted();
+ void buttonBoxClicked(QAbstractButton *button);
};
#endif // IO_GRAPH_DIALOG_H
diff --git a/ui/qt/io_graph_dialog.ui b/ui/qt/io_graph_dialog.ui
index 91f071ee09..5f41fc057a 100644
--- a/ui/qt/io_graph_dialog.ui
+++ b/ui/qt/io_graph_dialog.ui
@@ -290,26 +290,6 @@
</property>
</widget>
</item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="resetButton">
- <property name="text">
- <string>Reset</string>
- </property>
- </widget>
- </item>
</layout>
</item>
<item>
@@ -318,7 +298,7 @@
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
- <set>QDialogButtonBox::Close|QDialogButtonBox::Help|QDialogButtonBox::Save</set>
+ <set>QDialogButtonBox::Close|QDialogButtonBox::Help|QDialogButtonBox::Save|QDialogButtonBox::Reset</set>
</property>
</widget>
</item>
@@ -545,6 +525,11 @@
<header>widgets/tabnav_tree_view.h</header>
</customwidget>
<customwidget>
+ <class>ResizeHeaderView</class>
+ <extends>QHeaderView</extends>
+ <header>widgets/resize_header_view.h</header>
+ </customwidget>
+ <customwidget>
<class>StockIconToolButton</class>
<extends>QToolButton</extends>
<header>widgets/stock_icon_tool_button.h</header>
@@ -555,6 +540,11 @@
<header>widgets/qcustomplot.h</header>
<container>1</container>
</customwidget>
+ <customwidget>
+ <class>QCPStringLegendItem</class>
+ <extends>QCPAbstractLegendItem</extends>
+ <header>widgets/qcp_string_legend_item.h</header>
+ </customwidget>
</customwidgets>
<resources/>
<connections>
diff --git a/ui/qt/layout_preferences_frame.cpp b/ui/qt/layout_preferences_frame.cpp
index 07b97c57c0..693ef22889 100644
--- a/ui/qt/layout_preferences_frame.cpp
+++ b/ui/qt/layout_preferences_frame.cpp
@@ -358,22 +358,22 @@ void LayoutPreferencesFrame::on_restoreButtonBox_clicked(QAbstractButton *)
void LayoutPreferencesFrame::on_packetListSeparatorCheckBox_toggled(bool checked)
{
- prefs_set_bool_value(pref_packet_list_separator_, (gboolean) checked, pref_stashed);
+ prefs_set_bool_value(pref_packet_list_separator_, (bool) checked, pref_stashed);
}
void LayoutPreferencesFrame::on_packetListHeaderShowColumnDefinition_toggled(bool checked)
{
- prefs_set_bool_value(pref_packet_header_column_definition_, (gboolean) checked, pref_stashed);
+ prefs_set_bool_value(pref_packet_header_column_definition_, (bool) checked, pref_stashed);
}
void LayoutPreferencesFrame::on_packetListHoverStyleCheckbox_toggled(bool checked)
{
- prefs_set_bool_value(pref_packet_list_hover_style_, (gboolean) checked, pref_stashed);
+ prefs_set_bool_value(pref_packet_list_hover_style_, (bool) checked, pref_stashed);
}
void LayoutPreferencesFrame::on_packetListAllowSorting_toggled(bool checked)
{
- prefs_set_bool_value(pref_packet_list_sorting_, (gboolean) checked, pref_stashed);
+ prefs_set_bool_value(pref_packet_list_sorting_, (bool) checked, pref_stashed);
}
void LayoutPreferencesFrame::on_packetListCachedRowsLineEdit_textEdited(const QString &new_str)
@@ -387,10 +387,10 @@ void LayoutPreferencesFrame::on_packetListCachedRowsLineEdit_textEdited(const QS
void LayoutPreferencesFrame::on_statusBarShowSelectedPacketCheckBox_toggled(bool checked)
{
- prefs_set_bool_value(pref_show_selected_packet_, (gboolean) checked, pref_stashed);
+ prefs_set_bool_value(pref_show_selected_packet_, (bool) checked, pref_stashed);
}
void LayoutPreferencesFrame::on_statusBarShowFileLoadTimeCheckBox_toggled(bool checked)
{
- prefs_set_bool_value(pref_show_file_load_time_, (gboolean) checked, pref_stashed);
+ prefs_set_bool_value(pref_show_file_load_time_, (bool) checked, pref_stashed);
}
diff --git a/ui/qt/lbm_lbtrm_transport_dialog.cpp b/ui/qt/lbm_lbtrm_transport_dialog.cpp
index 9391183ed2..f0b9ee82e3 100644
--- a/ui/qt/lbm_lbtrm_transport_dialog.cpp
+++ b/ui/qt/lbm_lbtrm_transport_dialog.cpp
@@ -69,7 +69,7 @@ namespace
static const double OneGigabit = OneMegabit * OneKilobit;
}
-static QString format_rate(const nstime_t & elapsed, guint64 bytes)
+static QString format_rate(const nstime_t & elapsed, uint64_t bytes)
{
QString result;
double elapsed_sec;
@@ -143,15 +143,15 @@ static QString format_rate(const nstime_t & elapsed, guint64 bytes)
class LBMLBTRMFrameEntry : public QTreeWidgetItem
{
public:
- LBMLBTRMFrameEntry(guint32 frame);
+ LBMLBTRMFrameEntry(uint32_t frame);
virtual ~LBMLBTRMFrameEntry(void) { }
- guint32 getFrame(void) { return (m_frame); }
+ uint32_t getFrame(void) { return (m_frame); }
private:
- guint32 m_frame;
+ uint32_t m_frame;
};
-LBMLBTRMFrameEntry::LBMLBTRMFrameEntry(guint32 frame) :
+LBMLBTRMFrameEntry::LBMLBTRMFrameEntry(uint32_t frame) :
QTreeWidgetItem(),
m_frame(frame)
{
@@ -160,25 +160,25 @@ LBMLBTRMFrameEntry::LBMLBTRMFrameEntry(guint32 frame) :
setText(Detail_Frame_Column, QString("%1").arg(m_frame));
}
-typedef QMap<guint32, LBMLBTRMFrameEntry *> LBMLBTRMFrameMap;
-typedef QMap<guint32, LBMLBTRMFrameEntry *>::iterator LBMLBTRMFrameMapIterator;
+typedef QMap<uint32_t, LBMLBTRMFrameEntry *> LBMLBTRMFrameMap;
+typedef QMap<uint32_t, LBMLBTRMFrameEntry *>::iterator LBMLBTRMFrameMapIterator;
// A SQN (SeQuence Number) entry
class LBMLBTRMSQNEntry : public QTreeWidgetItem
{
public:
- LBMLBTRMSQNEntry(guint32 sqn);
+ LBMLBTRMSQNEntry(uint32_t sqn);
virtual ~LBMLBTRMSQNEntry(void);
- void processFrame(guint32 frame);
+ void processFrame(uint32_t frame);
private:
LBMLBTRMSQNEntry(void);
- guint32 m_sqn;
- guint32 m_count;
+ uint32_t m_sqn;
+ uint32_t m_count;
LBMLBTRMFrameMap m_frames;
};
-LBMLBTRMSQNEntry::LBMLBTRMSQNEntry(guint32 sqn) :
+LBMLBTRMSQNEntry::LBMLBTRMSQNEntry(uint32_t sqn) :
QTreeWidgetItem(),
m_sqn(sqn),
m_count(0),
@@ -200,7 +200,7 @@ LBMLBTRMSQNEntry::~LBMLBTRMSQNEntry(void)
m_frames.clear();
}
-void LBMLBTRMSQNEntry::processFrame(guint32 frame)
+void LBMLBTRMSQNEntry::processFrame(uint32_t frame)
{
LBMLBTRMFrameMapIterator it;
@@ -221,19 +221,19 @@ void LBMLBTRMSQNEntry::processFrame(guint32 frame)
class LBMLBTRMNCFReasonEntry : public QTreeWidgetItem
{
public:
- LBMLBTRMNCFReasonEntry(guint8 reason);
+ LBMLBTRMNCFReasonEntry(uint8_t reason);
virtual ~LBMLBTRMNCFReasonEntry(void);
- void processFrame(guint32 frame);
+ void processFrame(uint32_t frame);
private:
LBMLBTRMNCFReasonEntry(void);
- guint8 m_reason;
+ uint8_t m_reason;
QString m_reason_string;
- guint32 m_count;
+ uint32_t m_count;
LBMLBTRMFrameMap m_frames;
};
-LBMLBTRMNCFReasonEntry::LBMLBTRMNCFReasonEntry(guint8 reason) :
+LBMLBTRMNCFReasonEntry::LBMLBTRMNCFReasonEntry(uint8_t reason) :
QTreeWidgetItem(),
m_reason(reason),
m_reason_string(),
@@ -273,7 +273,7 @@ LBMLBTRMNCFReasonEntry::~LBMLBTRMNCFReasonEntry(void)
m_frames.clear();
}
-void LBMLBTRMNCFReasonEntry::processFrame(guint32 frame)
+void LBMLBTRMNCFReasonEntry::processFrame(uint32_t frame)
{
LBMLBTRMFrameMapIterator it;
@@ -290,25 +290,25 @@ void LBMLBTRMNCFReasonEntry::processFrame(guint32 frame)
setTextAlignment(Detail_Count_Column, Qt::AlignRight);
}
-typedef QMap<guint32, LBMLBTRMNCFReasonEntry *> LBMLBTRMNCFReasonMap;
-typedef QMap<guint32, LBMLBTRMNCFReasonEntry *>::iterator LBMLBTRMNCFReasonMapIterator;
+typedef QMap<uint32_t, LBMLBTRMNCFReasonEntry *> LBMLBTRMNCFReasonMap;
+typedef QMap<uint32_t, LBMLBTRMNCFReasonEntry *>::iterator LBMLBTRMNCFReasonMapIterator;
// An NCF SQN entry
class LBMLBTRMNCFSQNEntry : public QTreeWidgetItem
{
public:
- LBMLBTRMNCFSQNEntry(guint32 sqn);
+ LBMLBTRMNCFSQNEntry(uint32_t sqn);
virtual ~LBMLBTRMNCFSQNEntry(void);
- void processFrame(guint8 reason, guint32 frame);
+ void processFrame(uint8_t reason, uint32_t frame);
private:
LBMLBTRMNCFSQNEntry(void);
- guint32 m_sqn;
- guint32 m_count;
+ uint32_t m_sqn;
+ uint32_t m_count;
LBMLBTRMNCFReasonMap m_reasons;
};
-LBMLBTRMNCFSQNEntry::LBMLBTRMNCFSQNEntry(guint32 sqn) :
+LBMLBTRMNCFSQNEntry::LBMLBTRMNCFSQNEntry(uint32_t sqn) :
QTreeWidgetItem(),
m_sqn(sqn),
m_count(0),
@@ -330,7 +330,7 @@ LBMLBTRMNCFSQNEntry::~LBMLBTRMNCFSQNEntry(void)
m_reasons.clear();
}
-void LBMLBTRMNCFSQNEntry::processFrame(guint8 reason, guint32 frame)
+void LBMLBTRMNCFSQNEntry::processFrame(uint8_t reason, uint32_t frame)
{
LBMLBTRMNCFReasonMapIterator it;
LBMLBTRMNCFReasonEntry * entry = NULL;
@@ -353,10 +353,10 @@ void LBMLBTRMNCFSQNEntry::processFrame(guint8 reason, guint32 frame)
entry->processFrame(frame);
}
-typedef QMap<guint32, LBMLBTRMSQNEntry *> LBMLBTRMSQNMap;
-typedef QMap<guint32, LBMLBTRMSQNEntry *>::iterator LBMLBTRMSQNMapIterator;
-typedef QMap<guint32, LBMLBTRMNCFSQNEntry *> LBMLBTRMNCFSQNMap;
-typedef QMap<guint32, LBMLBTRMNCFSQNEntry *>::iterator LBMLBTRMNCFSQNMapIterator;
+typedef QMap<uint32_t, LBMLBTRMSQNEntry *> LBMLBTRMSQNMap;
+typedef QMap<uint32_t, LBMLBTRMSQNEntry *>::iterator LBMLBTRMSQNMapIterator;
+typedef QMap<uint32_t, LBMLBTRMNCFSQNEntry *> LBMLBTRMNCFSQNMap;
+typedef QMap<uint32_t, LBMLBTRMNCFSQNEntry *>::iterator LBMLBTRMNCFSQNMapIterator;
// A source transport entry
class LBMLBTRMSourceTransportEntry : public QTreeWidgetItem
@@ -373,15 +373,15 @@ class LBMLBTRMSourceTransportEntry : public QTreeWidgetItem
private:
void fillItem(void);
- guint64 m_data_frames;
- guint64 m_data_bytes;
- guint64 m_rx_data_frames;
- guint64 m_rx_data_bytes;
- guint64 m_ncf_frames;
- guint64 m_ncf_count;
- guint64 m_ncf_bytes;
- guint64 m_sm_frames;
- guint64 m_sm_bytes;
+ uint64_t m_data_frames;
+ uint64_t m_data_bytes;
+ uint64_t m_rx_data_frames;
+ uint64_t m_rx_data_bytes;
+ uint64_t m_ncf_frames;
+ uint64_t m_ncf_count;
+ uint64_t m_ncf_bytes;
+ uint64_t m_sm_frames;
+ uint64_t m_sm_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -502,13 +502,13 @@ void LBMLBTRMSourceTransportEntry::processPacket(const packet_info * pinfo, cons
}
else if (tap_info->type == LBTRM_PACKET_TYPE_NCF)
{
- guint16 idx;
+ uint16_t idx;
LBMLBTRMNCFSQNMapIterator it;
LBMLBTRMNCFSQNEntry * sqn = NULL;
m_ncf_frames++;
m_ncf_bytes += pinfo->fd->pkt_len;
- m_ncf_count += (guint64)tap_info->num_sqns;
+ m_ncf_count += (uint64_t)tap_info->num_sqns;
for (idx = 0; idx < tap_info->num_sqns; idx++)
{
it = m_ncf_sqns.find(tap_info->sqns[idx]);
@@ -612,15 +612,15 @@ class LBMLBTRMSourceEntry : public QTreeWidgetItem
void fillItem(void);
QString m_address;
QString m_transport;
- guint64 m_data_frames;
- guint64 m_data_bytes;
- guint64 m_rx_data_frames;
- guint64 m_rx_data_bytes;
- guint64 m_ncf_frames;
- guint64 m_ncf_count;
- guint64 m_ncf_bytes;
- guint64 m_sm_frames;
- guint64 m_sm_bytes;
+ uint64_t m_data_frames;
+ uint64_t m_data_bytes;
+ uint64_t m_rx_data_frames;
+ uint64_t m_rx_data_bytes;
+ uint64_t m_ncf_frames;
+ uint64_t m_ncf_count;
+ uint64_t m_ncf_bytes;
+ uint64_t m_sm_frames;
+ uint64_t m_sm_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -783,9 +783,9 @@ class LBMLBTRMReceiverTransportEntry : public QTreeWidgetItem
private:
void fillItem(void);
QString m_transport;
- guint64 m_nak_frames;
- guint64 m_nak_count;
- guint64 m_nak_bytes;
+ uint64_t m_nak_frames;
+ uint64_t m_nak_count;
+ uint64_t m_nak_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -839,7 +839,7 @@ void LBMLBTRMReceiverTransportEntry::processPacket(const packet_info * pinfo, co
}
if (tap_info->type == LBTRM_PACKET_TYPE_NAK)
{
- guint16 idx;
+ uint16_t idx;
LBMLBTRMSQNEntry * sqn = NULL;
LBMLBTRMSQNMapIterator it;
@@ -899,9 +899,9 @@ class LBMLBTRMReceiverEntry : public QTreeWidgetItem
void fillItem(void);
QString m_address;
QString m_transport;
- guint64 m_nak_frames;
- guint64 m_nak_count;
- guint64 m_nak_bytes;
+ uint64_t m_nak_frames;
+ uint64_t m_nak_count;
+ uint64_t m_nak_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -1298,7 +1298,7 @@ void LBMLBTRMTransportDialog::fillTree(void)
{
QMessageBox::critical(this, tr("LBT-RM Statistics failed to attach to tap"),
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
reject();
}
diff --git a/ui/qt/lbm_lbtrm_transport_dialog.h b/ui/qt/lbm_lbtrm_transport_dialog.h
index 2e31dc50dd..5e6b66bee2 100644
--- a/ui/qt/lbm_lbtrm_transport_dialog.h
+++ b/ui/qt/lbm_lbtrm_transport_dialog.h
@@ -14,8 +14,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include <epan/packet_info.h>
#include <epan/tap.h>
diff --git a/ui/qt/lbm_lbtru_transport_dialog.cpp b/ui/qt/lbm_lbtru_transport_dialog.cpp
index 529d7776bd..a819bdf25e 100644
--- a/ui/qt/lbm_lbtru_transport_dialog.cpp
+++ b/ui/qt/lbm_lbtru_transport_dialog.cpp
@@ -87,7 +87,7 @@ namespace
static const double OneGigabit = OneMegabit * OneKilobit;
}
-static QString format_rate(const nstime_t & elapsed, guint64 bytes)
+static QString format_rate(const nstime_t & elapsed, uint64_t bytes)
{
QString result;
double elapsed_sec;
@@ -161,15 +161,15 @@ static QString format_rate(const nstime_t & elapsed, guint64 bytes)
class LBMLBTRUFrameEntry : public QTreeWidgetItem
{
public:
- LBMLBTRUFrameEntry(guint32 frame);
+ LBMLBTRUFrameEntry(uint32_t frame);
virtual ~LBMLBTRUFrameEntry(void) { }
- guint32 getFrame(void) { return (m_frame); }
+ uint32_t getFrame(void) { return (m_frame); }
private:
- guint32 m_frame;
+ uint32_t m_frame;
};
-LBMLBTRUFrameEntry::LBMLBTRUFrameEntry(guint32 frame) :
+LBMLBTRUFrameEntry::LBMLBTRUFrameEntry(uint32_t frame) :
QTreeWidgetItem(),
m_frame(frame)
{
@@ -178,25 +178,25 @@ LBMLBTRUFrameEntry::LBMLBTRUFrameEntry(guint32 frame) :
setText(Detail_Frame_Column, QString("%1").arg(m_frame));
}
-typedef QMap<guint32, LBMLBTRUFrameEntry *> LBMLBTRUFrameMap;
-typedef QMap<guint32, LBMLBTRUFrameEntry *>::iterator LBMLBTRUFrameMapIterator;
+typedef QMap<uint32_t, LBMLBTRUFrameEntry *> LBMLBTRUFrameMap;
+typedef QMap<uint32_t, LBMLBTRUFrameEntry *>::iterator LBMLBTRUFrameMapIterator;
// An SQN (SeQuence Number) entry
class LBMLBTRUSQNEntry : public QTreeWidgetItem
{
public:
- LBMLBTRUSQNEntry(guint32 sqn);
+ LBMLBTRUSQNEntry(uint32_t sqn);
virtual ~LBMLBTRUSQNEntry(void);
- void processFrame(guint32 frame);
+ void processFrame(uint32_t frame);
private:
LBMLBTRUSQNEntry(void);
- guint32 m_sqn;
- guint32 m_count;
+ uint32_t m_sqn;
+ uint32_t m_count;
LBMLBTRUFrameMap m_frames;
};
-LBMLBTRUSQNEntry::LBMLBTRUSQNEntry(guint32 sqn) :
+LBMLBTRUSQNEntry::LBMLBTRUSQNEntry(uint32_t sqn) :
QTreeWidgetItem(),
m_sqn(sqn),
m_count(0),
@@ -218,7 +218,7 @@ LBMLBTRUSQNEntry::~LBMLBTRUSQNEntry(void)
m_frames.clear();
}
-void LBMLBTRUSQNEntry::processFrame(guint32 frame)
+void LBMLBTRUSQNEntry::processFrame(uint32_t frame)
{
LBMLBTRUFrameMapIterator it;
@@ -239,18 +239,18 @@ void LBMLBTRUSQNEntry::processFrame(guint32 frame)
class LBMLBTRUNCFReasonEntry : public QTreeWidgetItem
{
public:
- LBMLBTRUNCFReasonEntry(guint8 reason);
+ LBMLBTRUNCFReasonEntry(uint8_t reason);
virtual ~LBMLBTRUNCFReasonEntry(void);
- void processFrame(guint32 frame);
+ void processFrame(uint32_t frame);
private:
LBMLBTRUNCFReasonEntry(void);
- guint8 m_reason;
- guint32 m_count;
+ uint8_t m_reason;
+ uint32_t m_count;
LBMLBTRUFrameMap m_frames;
};
-LBMLBTRUNCFReasonEntry::LBMLBTRUNCFReasonEntry(guint8 reason) :
+LBMLBTRUNCFReasonEntry::LBMLBTRUNCFReasonEntry(uint8_t reason) :
QTreeWidgetItem(),
m_reason(reason),
m_count(0),
@@ -288,7 +288,7 @@ LBMLBTRUNCFReasonEntry::~LBMLBTRUNCFReasonEntry(void)
m_frames.clear();
}
-void LBMLBTRUNCFReasonEntry::processFrame(guint32 frame)
+void LBMLBTRUNCFReasonEntry::processFrame(uint32_t frame)
{
LBMLBTRUFrameMapIterator it;
@@ -305,25 +305,25 @@ void LBMLBTRUNCFReasonEntry::processFrame(guint32 frame)
setTextAlignment(Detail_Count_Column, Qt::AlignRight);
}
-typedef QMap<guint8, LBMLBTRUNCFReasonEntry *> LBMLBTRUNCFReasonMap;
-typedef QMap<guint8, LBMLBTRUNCFReasonEntry *>::iterator LBMLBTRUNCFReasonMapIterator;
+typedef QMap<uint8_t, LBMLBTRUNCFReasonEntry *> LBMLBTRUNCFReasonMap;
+typedef QMap<uint8_t, LBMLBTRUNCFReasonEntry *>::iterator LBMLBTRUNCFReasonMapIterator;
// An NCF SQN entry
class LBMLBTRUNCFSQNEntry : public QTreeWidgetItem
{
public:
- LBMLBTRUNCFSQNEntry(guint32 sqn);
+ LBMLBTRUNCFSQNEntry(uint32_t sqn);
virtual ~LBMLBTRUNCFSQNEntry(void);
- void processFrame(guint8 reason, guint32 frame);
+ void processFrame(uint8_t reason, uint32_t frame);
private:
LBMLBTRUNCFSQNEntry(void);
- guint32 m_sqn;
- guint32 m_count;
+ uint32_t m_sqn;
+ uint32_t m_count;
LBMLBTRUNCFReasonMap m_reasons;
};
-LBMLBTRUNCFSQNEntry::LBMLBTRUNCFSQNEntry(guint32 sqn) :
+LBMLBTRUNCFSQNEntry::LBMLBTRUNCFSQNEntry(uint32_t sqn) :
QTreeWidgetItem(),
m_sqn(sqn),
m_count(0),
@@ -345,7 +345,7 @@ LBMLBTRUNCFSQNEntry::~LBMLBTRUNCFSQNEntry(void)
m_reasons.clear();
}
-void LBMLBTRUNCFSQNEntry::processFrame(guint8 reason, guint32 frame)
+void LBMLBTRUNCFSQNEntry::processFrame(uint8_t reason, uint32_t frame)
{
LBMLBTRUNCFReasonMapIterator it;
LBMLBTRUNCFReasonEntry * entry = NULL;
@@ -372,19 +372,19 @@ void LBMLBTRUNCFSQNEntry::processFrame(guint8 reason, guint32 frame)
class LBMLBTRURSTReasonEntry : public QTreeWidgetItem
{
public:
- LBMLBTRURSTReasonEntry(guint32 reason);
+ LBMLBTRURSTReasonEntry(uint32_t reason);
virtual ~LBMLBTRURSTReasonEntry(void);
- void processFrame(guint32 frame);
+ void processFrame(uint32_t frame);
private:
LBMLBTRURSTReasonEntry(void);
- guint32 m_reason;
+ uint32_t m_reason;
QString m_reason_string;
- guint32 m_count;
+ uint32_t m_count;
LBMLBTRUFrameMap m_frames;
};
-LBMLBTRURSTReasonEntry::LBMLBTRURSTReasonEntry(guint32 reason) :
+LBMLBTRURSTReasonEntry::LBMLBTRURSTReasonEntry(uint32_t reason) :
QTreeWidgetItem(),
m_reason(reason),
m_reason_string(),
@@ -416,7 +416,7 @@ LBMLBTRURSTReasonEntry::~LBMLBTRURSTReasonEntry(void)
m_frames.clear();
}
-void LBMLBTRURSTReasonEntry::processFrame(guint32 frame)
+void LBMLBTRURSTReasonEntry::processFrame(uint32_t frame)
{
LBMLBTRUFrameMapIterator it;
@@ -437,19 +437,19 @@ void LBMLBTRURSTReasonEntry::processFrame(guint32 frame)
class LBMLBTRUCREQRequestEntry : public QTreeWidgetItem
{
public:
- LBMLBTRUCREQRequestEntry(guint32 request);
+ LBMLBTRUCREQRequestEntry(uint32_t request);
virtual ~LBMLBTRUCREQRequestEntry(void);
- void processFrame(guint32 frame);
+ void processFrame(uint32_t frame);
private:
LBMLBTRUCREQRequestEntry(void);
- guint32 m_request;
+ uint32_t m_request;
QString m_request_string;
- guint32 m_count;
+ uint32_t m_count;
LBMLBTRUFrameMap m_frames;
};
-LBMLBTRUCREQRequestEntry::LBMLBTRUCREQRequestEntry(guint32 request) :
+LBMLBTRUCREQRequestEntry::LBMLBTRUCREQRequestEntry(uint32_t request) :
QTreeWidgetItem(),
m_request(request),
m_request_string(),
@@ -481,7 +481,7 @@ LBMLBTRUCREQRequestEntry::~LBMLBTRUCREQRequestEntry(void)
m_frames.clear();
}
-void LBMLBTRUCREQRequestEntry::processFrame(guint32 frame)
+void LBMLBTRUCREQRequestEntry::processFrame(uint32_t frame)
{
LBMLBTRUFrameMapIterator it;
@@ -498,14 +498,14 @@ void LBMLBTRUCREQRequestEntry::processFrame(guint32 frame)
setTextAlignment(Detail_Count_Column, Qt::AlignRight);
}
-typedef QMap<guint32, LBMLBTRUSQNEntry *> LBMLBTRUSQNMap;
-typedef QMap<guint32, LBMLBTRUSQNEntry *>::iterator LBMLBTRUSQNMapIterator;
-typedef QMap<guint32, LBMLBTRUNCFSQNEntry *> LBMLBTRUNCFSQNMap;
-typedef QMap<guint32, LBMLBTRUNCFSQNEntry *>::iterator LBMLBTRUNCFSQNMapIterator;
-typedef QMap<guint32, LBMLBTRURSTReasonEntry *> LBMLBTRURSTReasonMap;
-typedef QMap<guint32, LBMLBTRURSTReasonEntry *>::iterator LBMLBTRURSTReasonMapIterator;
-typedef QMap<guint32, LBMLBTRUCREQRequestEntry *> LBMLBTRUCREQRequestMap;
-typedef QMap<guint32, LBMLBTRUCREQRequestEntry *>::iterator LBMLBTRUCREQRequestMapIterator;
+typedef QMap<uint32_t, LBMLBTRUSQNEntry *> LBMLBTRUSQNMap;
+typedef QMap<uint32_t, LBMLBTRUSQNEntry *>::iterator LBMLBTRUSQNMapIterator;
+typedef QMap<uint32_t, LBMLBTRUNCFSQNEntry *> LBMLBTRUNCFSQNMap;
+typedef QMap<uint32_t, LBMLBTRUNCFSQNEntry *>::iterator LBMLBTRUNCFSQNMapIterator;
+typedef QMap<uint32_t, LBMLBTRURSTReasonEntry *> LBMLBTRURSTReasonMap;
+typedef QMap<uint32_t, LBMLBTRURSTReasonEntry *>::iterator LBMLBTRURSTReasonMapIterator;
+typedef QMap<uint32_t, LBMLBTRUCREQRequestEntry *> LBMLBTRUCREQRequestMap;
+typedef QMap<uint32_t, LBMLBTRUCREQRequestEntry *>::iterator LBMLBTRUCREQRequestMapIterator;
// A source transport entry
class LBMLBTRUSourceTransportEntry : public QTreeWidgetItem
@@ -522,17 +522,17 @@ class LBMLBTRUSourceTransportEntry : public QTreeWidgetItem
private:
void fillItem(void);
- guint64 m_data_frames;
- guint64 m_data_bytes;
- guint64 m_rx_data_frames;
- guint64 m_rx_data_bytes;
- guint64 m_ncf_frames;
- guint64 m_ncf_count;
- guint64 m_ncf_bytes;
- guint64 m_sm_frames;
- guint64 m_sm_bytes;
- guint64 m_rst_frames;
- guint64 m_rst_bytes;
+ uint64_t m_data_frames;
+ uint64_t m_data_bytes;
+ uint64_t m_rx_data_frames;
+ uint64_t m_rx_data_bytes;
+ uint64_t m_ncf_frames;
+ uint64_t m_ncf_count;
+ uint64_t m_ncf_bytes;
+ uint64_t m_sm_frames;
+ uint64_t m_sm_bytes;
+ uint64_t m_rst_frames;
+ uint64_t m_rst_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -664,13 +664,13 @@ void LBMLBTRUSourceTransportEntry::processPacket(const packet_info * pinfo, cons
}
else if (tap_info->type == LBTRU_PACKET_TYPE_NCF)
{
- guint16 idx;
+ uint16_t idx;
LBMLBTRUNCFSQNMapIterator it;
LBMLBTRUNCFSQNEntry * sqn = NULL;
m_ncf_frames++;
m_ncf_bytes += pinfo->fd->pkt_len;
- m_ncf_count += (guint64)tap_info->num_sqns;
+ m_ncf_count += (uint64_t)tap_info->num_sqns;
for (idx = 0; idx < tap_info->num_sqns; idx++)
{
it = m_ncf_sqns.find(tap_info->sqns[idx]);
@@ -801,17 +801,17 @@ class LBMLBTRUSourceEntry : public QTreeWidgetItem
void fillItem(void);
QString m_address;
QString m_transport;
- guint64 m_data_frames;
- guint64 m_data_bytes;
- guint64 m_rx_data_frames;
- guint64 m_rx_data_bytes;
- guint64 m_ncf_frames;
- guint64 m_ncf_count;
- guint64 m_ncf_bytes;
- guint64 m_sm_frames;
- guint64 m_sm_bytes;
- guint64 m_rst_frames;
- guint64 m_rst_bytes;
+ uint64_t m_data_frames;
+ uint64_t m_data_bytes;
+ uint64_t m_rx_data_frames;
+ uint64_t m_rx_data_bytes;
+ uint64_t m_ncf_frames;
+ uint64_t m_ncf_count;
+ uint64_t m_ncf_bytes;
+ uint64_t m_sm_frames;
+ uint64_t m_sm_bytes;
+ uint64_t m_rst_frames;
+ uint64_t m_rst_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -988,13 +988,13 @@ class LBMLBTRUReceiverTransportEntry : public QTreeWidgetItem
private:
void fillItem(void);
QString m_transport;
- guint64 m_nak_frames;
- guint64 m_nak_count;
- guint64 m_nak_bytes;
- guint64 m_ack_frames;
- guint64 m_ack_bytes;
- guint64 m_creq_frames;
- guint64 m_creq_bytes;
+ uint64_t m_nak_frames;
+ uint64_t m_nak_count;
+ uint64_t m_nak_bytes;
+ uint64_t m_ack_frames;
+ uint64_t m_ack_bytes;
+ uint64_t m_creq_frames;
+ uint64_t m_creq_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -1070,7 +1070,7 @@ void LBMLBTRUReceiverTransportEntry::processPacket(const packet_info * pinfo, co
{
case LBTRU_PACKET_TYPE_NAK:
{
- guint16 idx;
+ uint16_t idx;
LBMLBTRUSQNEntry * sqn = NULL;
LBMLBTRUSQNMapIterator it;
@@ -1194,13 +1194,13 @@ class LBMLBTRUReceiverEntry : public QTreeWidgetItem
void fillItem(void);
QString m_address;
QString m_transport;
- guint64 m_nak_frames;
- guint64 m_nak_count;
- guint64 m_nak_bytes;
- guint64 m_ack_frames;
- guint64 m_ack_bytes;
- guint64 m_creq_frames;
- guint64 m_creq_bytes;
+ uint64_t m_nak_frames;
+ uint64_t m_nak_count;
+ uint64_t m_nak_bytes;
+ uint64_t m_ack_frames;
+ uint64_t m_ack_bytes;
+ uint64_t m_creq_frames;
+ uint64_t m_creq_bytes;
nstime_t m_first_frame_timestamp;
bool m_first_frame_timestamp_valid;
nstime_t m_last_frame_timestamp;
@@ -1717,7 +1717,7 @@ void LBMLBTRUTransportDialog::fillTree(void)
{
QMessageBox::critical(this, tr("LBT-RU Statistics failed to attach to tap"),
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
reject();
}
diff --git a/ui/qt/lbm_lbtru_transport_dialog.h b/ui/qt/lbm_lbtru_transport_dialog.h
index 5659010274..b606fe84e2 100644
--- a/ui/qt/lbm_lbtru_transport_dialog.h
+++ b/ui/qt/lbm_lbtru_transport_dialog.h
@@ -14,8 +14,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include <epan/packet_info.h>
#include <epan/tap.h>
diff --git a/ui/qt/lbm_stream_dialog.cpp b/ui/qt/lbm_stream_dialog.cpp
index 65ddcc47dc..91d1826d58 100644
--- a/ui/qt/lbm_stream_dialog.cpp
+++ b/ui/qt/lbm_stream_dialog.cpp
@@ -44,9 +44,9 @@ namespace
class LBMSubstreamEntry
{
public:
- LBMSubstreamEntry(guint64 channel, guint32 substream_id, const address * source_address, guint16 source_port, const address * destination_address, guint16 destination_port);
+ LBMSubstreamEntry(uint64_t channel, uint32_t substream_id, const address * source_address, uint16_t source_port, const address * destination_address, uint16_t destination_port);
~LBMSubstreamEntry(void);
- void processPacket(guint32 frame, guint32 bytes);
+ void processPacket(uint32_t frame, uint32_t bytes);
void setItem(QTreeWidgetItem * item);
QTreeWidgetItem * getItem(void)
{
@@ -54,22 +54,22 @@ class LBMSubstreamEntry
}
private:
- void fillItem(gboolean update_only = TRUE);
- guint64 m_channel;
- guint32 m_substream_id;
+ void fillItem(bool update_only = true);
+ uint64_t m_channel;
+ uint32_t m_substream_id;
QString m_endpoint_a;
QString m_endpoint_b;
- guint32 m_first_frame;
- guint32 m_flast_frame;
- guint32 m_messages;
- guint32 m_bytes;
+ uint32_t m_first_frame;
+ uint32_t m_flast_frame;
+ uint32_t m_messages;
+ uint32_t m_bytes;
QTreeWidgetItem * m_item;
};
-LBMSubstreamEntry::LBMSubstreamEntry(guint64 channel, guint32 substream_id, const address * source_address, guint16 source_port, const address * destination_address, guint16 destination_port) :
+LBMSubstreamEntry::LBMSubstreamEntry(uint64_t channel, uint32_t substream_id, const address * source_address, uint16_t source_port, const address * destination_address, uint16_t destination_port) :
m_channel(channel),
m_substream_id(substream_id),
- m_first_frame((guint32)(~0)),
+ m_first_frame((uint32_t)(~0)),
m_flast_frame(0),
m_messages(0),
m_bytes(0),
@@ -87,7 +87,7 @@ LBMSubstreamEntry::~LBMSubstreamEntry(void)
{
}
-void LBMSubstreamEntry::processPacket(guint32 frame, guint32 bytes)
+void LBMSubstreamEntry::processPacket(uint32_t frame, uint32_t bytes)
{
if (m_first_frame > frame)
{
@@ -105,12 +105,12 @@ void LBMSubstreamEntry::processPacket(guint32 frame, guint32 bytes)
void LBMSubstreamEntry::setItem(QTreeWidgetItem * item)
{
m_item = item;
- fillItem(FALSE);
+ fillItem(false);
}
-void LBMSubstreamEntry::fillItem(gboolean update_only)
+void LBMSubstreamEntry::fillItem(bool update_only)
{
- if (update_only == FALSE)
+ if (update_only == false)
{
m_item->setText(Stream_Column, QString("%1.%2").arg(m_channel).arg(m_substream_id));
m_item->setText(EndpointA_Column, m_endpoint_a);
@@ -122,13 +122,13 @@ void LBMSubstreamEntry::fillItem(gboolean update_only)
m_item->setText(LastFrame_Column, QString("%1").arg(m_flast_frame));
}
-typedef QMap<guint32, LBMSubstreamEntry *> LBMSubstreamMap;
-typedef QMap<guint32, LBMSubstreamEntry *>::iterator LBMSubstreamMapIterator;
+typedef QMap<uint32_t, LBMSubstreamEntry *> LBMSubstreamMap;
+typedef QMap<uint32_t, LBMSubstreamEntry *>::iterator LBMSubstreamMapIterator;
class LBMStreamEntry
{
public:
- LBMStreamEntry(const packet_info * pinfo, guint64 channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b);
+ LBMStreamEntry(const packet_info * pinfo, uint64_t channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b);
~LBMStreamEntry(void);
void processPacket(const packet_info * pinfo, const lbm_uim_stream_tap_info_t * stream_info);
void setItem(QTreeWidgetItem * item);
@@ -138,22 +138,22 @@ class LBMStreamEntry
}
private:
- void fillItem(gboolean update_only = TRUE);
+ void fillItem(bool update_only = true);
QString formatEndpoint(const packet_info * pinfo, const lbm_uim_stream_endpoint_t * endpoint);
- guint64 m_channel;
+ uint64_t m_channel;
QString m_endpoint_a;
QString m_endpoint_b;
- guint32 m_first_frame;
- guint32 m_flast_frame;
- guint32 m_messages;
- guint32 m_bytes;
+ uint32_t m_first_frame;
+ uint32_t m_flast_frame;
+ uint32_t m_messages;
+ uint32_t m_bytes;
QTreeWidgetItem * m_item;
LBMSubstreamMap m_substreams;
};
-LBMStreamEntry::LBMStreamEntry(const packet_info * pinfo, guint64 channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b) :
+LBMStreamEntry::LBMStreamEntry(const packet_info * pinfo, uint64_t channel, const lbm_uim_stream_endpoint_t * endpoint_a, const lbm_uim_stream_endpoint_t * endpoint_b) :
m_channel(channel),
- m_first_frame((guint32)(~0)),
+ m_first_frame((uint32_t)(~0)),
m_flast_frame(0),
m_messages(0),
m_bytes(0),
@@ -228,12 +228,12 @@ void LBMStreamEntry::processPacket(const packet_info * pinfo, const lbm_uim_stre
void LBMStreamEntry::setItem(QTreeWidgetItem * item)
{
m_item = item;
- fillItem(FALSE);
+ fillItem(false);
}
-void LBMStreamEntry::fillItem(gboolean update_only)
+void LBMStreamEntry::fillItem(bool update_only)
{
- if (update_only == FALSE)
+ if (update_only == false)
{
m_item->setData(Stream_Column, Qt::DisplayRole, QVariant((qulonglong)m_channel));
m_item->setText(EndpointA_Column, m_endpoint_a);
@@ -245,8 +245,8 @@ void LBMStreamEntry::fillItem(gboolean update_only)
m_item->setText(LastFrame_Column, QString("%1").arg(m_flast_frame));
}
-typedef QMap<guint64, LBMStreamEntry *> LBMStreamMap;
-typedef QMap<guint64, LBMStreamEntry *>::iterator LBMStreamMapIterator;
+typedef QMap<uint64_t, LBMStreamEntry *> LBMStreamMap;
+typedef QMap<uint64_t, LBMStreamEntry *>::iterator LBMStreamMapIterator;
class LBMStreamDialogInfo
{
@@ -377,7 +377,7 @@ void LBMStreamDialog::fillTree(void)
{
QMessageBox::critical(this, tr("LBM Stream failed to attach to tap"),
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
reject();
}
diff --git a/ui/qt/lbm_stream_dialog.h b/ui/qt/lbm_stream_dialog.h
index 0bc75d297d..0efc141dac 100644
--- a/ui/qt/lbm_stream_dialog.h
+++ b/ui/qt/lbm_stream_dialog.h
@@ -14,8 +14,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include <epan/packet_info.h>
#include <epan/tap.h>
diff --git a/ui/qt/lte_mac_statistics_dialog.cpp b/ui/qt/lte_mac_statistics_dialog.cpp
index b7e5e81d9d..60c660cda0 100644
--- a/ui/qt/lte_mac_statistics_dialog.cpp
+++ b/ui/qt/lte_mac_statistics_dialog.cpp
@@ -57,7 +57,7 @@ enum {
// Calculate and return a bandwidth figure, in Mbs
static double calculate_bw(const nstime_t *start_time, const nstime_t *stop_time,
- guint32 bytes)
+ uint32_t bytes)
{
// Can only calculate bandwidth if have time delta
if (memcmp(start_time, stop_time, sizeof(nstime_t)) != 0) {
@@ -132,7 +132,7 @@ public:
}
// Increase value held for lcid by given value.
- void updateLCID(guint8 lcid, guint value)
+ void updateLCID(uint8_t lcid, unsigned value)
{
lcids[lcid] += value;
}
diff --git a/ui/qt/lte_mac_statistics_dialog.h b/ui/qt/lte_mac_statistics_dialog.h
index b43abd39c1..c3ea692dc4 100644
--- a/ui/qt/lte_mac_statistics_dialog.h
+++ b/ui/qt/lte_mac_statistics_dialog.h
@@ -19,18 +19,18 @@
// Common channel stats
typedef struct mac_3gpp_common_stats {
- guint32 all_frames;
- guint32 mib_frames;
- guint32 sib_frames;
- guint32 sib_bytes;
- guint32 pch_frames;
- guint32 pch_bytes;
- guint32 pch_paging_ids;
- guint32 rar_frames;
- guint32 rar_entries;
-
- guint16 max_ul_ues_in_tti;
- guint16 max_dl_ues_in_tti;
+ uint32_t all_frames;
+ uint32_t mib_frames;
+ uint32_t sib_frames;
+ uint32_t sib_bytes;
+ uint32_t pch_frames;
+ uint32_t pch_bytes;
+ uint32_t pch_paging_ids;
+ uint32_t rar_frames;
+ uint32_t rar_entries;
+
+ uint16_t max_ul_ues_in_tti;
+ uint16_t max_dl_ues_in_tti;
} mac_3gpp_common_stats;
diff --git a/ui/qt/lte_rlc_graph_dialog.cpp b/ui/qt/lte_rlc_graph_dialog.cpp
index 4e72a50746..6158c21bf7 100644
--- a/ui/qt/lte_rlc_graph_dialog.cpp
+++ b/ui/qt/lte_rlc_graph_dialog.cpp
@@ -97,6 +97,9 @@ LteRlcGraphDialog::LteRlcGraphDialog(QWidget &parent, CaptureFile &cf, bool chan
ctx_menu_->addAction(ui->actionSwitchDirection);
set_action_shortcuts_visible_in_context_menu(ctx_menu_->actions());
+ rp->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(rp, &QCustomPlot::customContextMenuRequested, this, &LteRlcGraphDialog::showContextMenu);
+
// Zero out this struct.
memset(&graph_, 0, sizeof(graph_));
@@ -113,8 +116,8 @@ LteRlcGraphDialog::~LteRlcGraphDialog()
}
// Set the channel information that this graph should show.
-void LteRlcGraphDialog::setChannelInfo(uint8_t rat, guint16 ueid, guint8 rlcMode,
- guint16 channelType, guint16 channelId, guint8 direction,
+void LteRlcGraphDialog::setChannelInfo(uint8_t rat, uint16_t ueid, uint8_t rlcMode,
+ uint16_t channelType, uint16_t channelId, uint8_t direction,
bool maybe_empty)
{
graph_.rat = rat;
@@ -122,7 +125,7 @@ void LteRlcGraphDialog::setChannelInfo(uint8_t rat, guint16 ueid, guint8 rlcMode
graph_.rlcMode = rlcMode;
graph_.channelType = channelType;
graph_.channelId = channelId;
- graph_.channelSet = TRUE;
+ graph_.channelSet = true;
graph_.direction = direction;
completeGraph(maybe_empty);
@@ -273,8 +276,8 @@ void LteRlcGraphDialog::fillGraph()
acks_time, acks,
nacks_time, nacks;
- guint32 last_ackSN = guint32(-1); // start with invalid value
- guint32 maxSN = 0;
+ uint32_t last_ackSN = uint32_t(-1); // start with invalid value
+ uint32_t maxSN = 0;
// Note the max possible SN
if (graph_.segments) {
@@ -557,19 +560,16 @@ QRectF LteRlcGraphDialog::getZoomRanges(QRect zoom_rect)
return zoom_ranges;
}
+void LteRlcGraphDialog::showContextMenu(const QPoint &pos)
+{
+ ctx_menu_->popup(ui->rlcPlot->mapToGlobal(pos));
+}
+
void LteRlcGraphDialog::graphClicked(QMouseEvent *event)
{
QCustomPlot *rp = ui->rlcPlot;
- if (event->button() == Qt::RightButton) {
- // XXX We should find some way to get rlcPlot to handle a
- // contextMenuEvent instead.
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0 ,0)
- ctx_menu_->popup(event->globalPosition().toPoint());
-#else
- ctx_menu_->popup(event->globalPos());
-#endif
- } else if (mouse_drags_) {
+ if (mouse_drags_) {
if (rp->axisRect()->rect().contains(event->pos())) {
rp->setCursor(QCursor(Qt::ClosedHandCursor));
}
diff --git a/ui/qt/lte_rlc_graph_dialog.h b/ui/qt/lte_rlc_graph_dialog.h
index 89e15b8fbb..2b83f0ff25 100644
--- a/ui/qt/lte_rlc_graph_dialog.h
+++ b/ui/qt/lte_rlc_graph_dialog.h
@@ -33,8 +33,8 @@ public:
explicit LteRlcGraphDialog(QWidget &parent, CaptureFile &cf, bool channelKnown);
~LteRlcGraphDialog();
- void setChannelInfo(uint8_t rat, guint16 ueid, guint8 rlcMode,
- guint16 channelType, guint16 channelId, guint8 direction,
+ void setChannelInfo(uint8_t rat, uint16_t ueid, uint8_t rlcMode,
+ uint16_t channelType, uint16_t channelId, uint8_t direction,
bool maybe_empty=false);
signals:
@@ -63,7 +63,7 @@ private:
QCPGraph *acks_graph_;
QCPGraph *nacks_graph_;
QCPItemTracer *tracer_;
- guint32 packet_num_;
+ uint32_t packet_num_;
void completeGraph(bool may_be_empty=false);
@@ -82,6 +82,7 @@ private:
void toggleTracerStyle(bool force_default);
private slots:
+ void showContextMenu(const QPoint &pos);
void graphClicked(QMouseEvent *event);
void mouseMoved(QMouseEvent *event);
void mouseReleased(QMouseEvent *event);
diff --git a/ui/qt/lte_rlc_statistics_dialog.cpp b/ui/qt/lte_rlc_statistics_dialog.cpp
index ee12b4432e..82ea089947 100644
--- a/ui/qt/lte_rlc_statistics_dialog.cpp
+++ b/ui/qt/lte_rlc_statistics_dialog.cpp
@@ -48,7 +48,7 @@ enum {
};
/* Calculate and return a bandwidth figure, in Mbs */
-static double calculate_bw(const nstime_t *start_time, const nstime_t *stop_time, guint32 bytes)
+static double calculate_bw(const nstime_t *start_time, const nstime_t *stop_time, uint32_t bytes)
{
/* Can only calculate bandwidth if have time delta */
if (memcmp(start_time, stop_time, sizeof(nstime_t)) != 0) {
@@ -73,31 +73,31 @@ static double calculate_bw(const nstime_t *start_time, const nstime_t *stop_time
// Stats kept for one channel.
typedef struct rlc_channel_stats {
- guint8 rlcMode;
- guint8 priority;
- guint16 channelType;
- guint16 channelId;
+ uint8_t rlcMode;
+ uint8_t priority;
+ uint16_t channelType;
+ uint16_t channelId;
- guint32 UL_frames;
- guint32 UL_bytes;
+ uint32_t UL_frames;
+ uint32_t UL_bytes;
nstime_t UL_time_start;
nstime_t UL_time_stop;
- gboolean UL_has_data; // i.e. not just ACKs for DL.
+ bool UL_has_data; // i.e. not just ACKs for DL.
- guint32 DL_frames;
- guint32 DL_bytes;
+ uint32_t DL_frames;
+ uint32_t DL_bytes;
nstime_t DL_time_start;
nstime_t DL_time_stop;
- gboolean DL_has_data; // i.e. not just ACKs for UL.
+ bool DL_has_data; // i.e. not just ACKs for UL.
- guint32 UL_acks;
- guint32 UL_nacks;
+ uint32_t UL_acks;
+ uint32_t UL_nacks;
- guint32 DL_acks;
- guint32 DL_nacks;
+ uint32_t DL_acks;
+ uint32_t DL_nacks;
- guint32 UL_missing;
- guint32 DL_missing;
+ uint32_t UL_missing;
+ uint32_t DL_missing;
} rlc_channel_stats;
//-------------------------------------------------------------------
@@ -196,7 +196,7 @@ public:
stats_.UL_acks++;
}
else {
- stats_.UL_has_data = TRUE;
+ stats_.UL_has_data = true;
}
}
else {
@@ -214,7 +214,7 @@ public:
stats_.DL_acks++;
}
else {
- stats_.DL_has_data = TRUE;
+ stats_.DL_has_data = true;
}
}
}
@@ -389,21 +389,21 @@ private:
// Stats for one UE. TODO: private to class?
typedef struct rlc_ue_stats {
- guint32 UL_frames;
- guint32 UL_total_bytes;
+ uint32_t UL_frames;
+ uint32_t UL_total_bytes;
nstime_t UL_time_start;
nstime_t UL_time_stop;
- guint32 UL_total_acks;
- guint32 UL_total_nacks;
- guint32 UL_total_missing;
+ uint32_t UL_total_acks;
+ uint32_t UL_total_nacks;
+ uint32_t UL_total_missing;
- guint32 DL_frames;
- guint32 DL_total_bytes;
+ uint32_t DL_frames;
+ uint32_t DL_total_bytes;
nstime_t DL_time_start;
nstime_t DL_time_stop;
- guint32 DL_total_acks;
- guint32 DL_total_nacks;
- guint32 DL_total_missing;
+ uint32_t DL_total_acks;
+ uint32_t DL_total_nacks;
+ uint32_t DL_total_missing;
} rlc_ue_stats;
diff --git a/ui/qt/lte_rlc_statistics_dialog.h b/ui/qt/lte_rlc_statistics_dialog.h
index e71793c83a..fc97996ece 100644
--- a/ui/qt/lte_rlc_statistics_dialog.h
+++ b/ui/qt/lte_rlc_statistics_dialog.h
@@ -35,10 +35,10 @@ protected:
signals:
void launchRLCGraph(bool channelKnown,
uint8_t version,
- guint16 ueid,
- guint8 rlcMode,
- guint16 channelType, guint16 channelId,
- guint8 direction);
+ uint16_t ueid,
+ uint8_t rlcMode,
+ uint16_t channelType, uint16_t channelId,
+ uint8_t direction);
private:
// Extra controls needed for this dialog.
diff --git a/ui/qt/main.cpp b/ui/qt/main.cpp
index 1a6b9aa38b..fc266204d2 100644
--- a/ui/qt/main.cpp
+++ b/ui/qt/main.cpp
@@ -10,8 +10,6 @@
#include <config.h>
#define WS_LOG_DOMAIN LOG_DOMAIN_MAIN
-#include <glib.h>
-
#include <locale.h>
#ifdef _WIN32
@@ -31,7 +29,9 @@
#include <wsutil/privileges.h>
#include <wsutil/socket.h>
#include <wsutil/wslog.h>
+#ifdef HAVE_PLUGINS
#include <wsutil/plugins.h>
+#endif
#include <wsutil/report_message.h>
#include <wsutil/please_report_bug.h>
#include <wsutil/unicode-utils.h>
@@ -51,7 +51,7 @@
#include <epan/dissectors/packet-kerberos.h>
#endif
-#include <wsutil/codecs_priv.h>
+#include <wsutil/codecs.h>
#include <extcap.h>
@@ -344,7 +344,7 @@ qt_log_message_handler(QtMsgType type, const QMessageLogContext &context, const
static void
check_and_warn_user_startup()
{
- gchar *cur_user, *cur_group;
+ char *cur_user, *cur_group;
/* Tell the user not to run as root. */
if (running_with_special_privs() && recent.privs_warn_if_elevated) {
@@ -479,15 +479,15 @@ int main(int argc, char *qt_argv[])
char *rf_path;
int rf_open_errno;
#ifdef HAVE_LIBPCAP
- gchar *err_str, *err_str_secondary;;
+ char *err_str, *err_str_secondary;;
#else
#ifdef _WIN32
#ifdef HAVE_AIRPCAP
- gchar *err_str;
+ char *err_str;
#endif
#endif
#endif
- gchar *err_msg = NULL;
+ char *err_msg = NULL;
df_error_t *df_err = NULL;
QString dfilter, read_filter;
@@ -495,7 +495,7 @@ int main(int argc, char *qt_argv[])
int caps_queries = 0;
#endif
/* Start time in microseconds */
- guint64 start_time = g_get_monotonic_time();
+ uint64_t start_time = g_get_monotonic_time();
static const struct report_message_routines wireshark_report_routines = {
vfailure_alert_box,
vwarning_alert_box,
@@ -546,7 +546,7 @@ int main(int argc, char *qt_argv[])
/* Initialize log handler early so we can have proper logging during startup. */
ws_log_init("wireshark", vcmdarg_err);
/* For backward compatibility with GLib logging and Wireshark 3.4. */
- ws_log_console_writer_set_use_stdout(TRUE);
+ ws_log_console_writer_set_use_stdout(true);
qInstallMessageHandler(qt_log_message_handler);
@@ -679,7 +679,7 @@ int main(int argc, char *qt_argv[])
g_free (rf_path);
}
- profile_store_persconffiles(TRUE);
+ profile_store_persconffiles(true);
recent_init();
/* Read the profile independent recent file. We have to do this here so we can */
@@ -708,7 +708,7 @@ int main(int argc, char *qt_argv[])
// https://bugreports.qt.io/browse/QTBUG-53022 - The device pixel ratio is pretty much bogus on Windows.
// https://bugreports.qt.io/browse/QTBUG-55510 - Windows have wrong size
//
- // Deprecated in Qt6.
+ // Deprecated in Qt6, which is Per-Monitor DPI Aware V2 by default.
// warning: 'Qt::AA_EnableHighDpiScaling' is deprecated: High-DPI scaling is always enabled.
// This attribute no longer has any effect.
#if defined(Q_OS_WIN) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
@@ -797,7 +797,7 @@ int main(int argc, char *qt_argv[])
* dissection-time handlers for file-type-dependent blocks can
* register using the file type/subtype value for the file type.
*/
- wtap_init(TRUE);
+ wtap_init(true);
splash_update(RA_DISSECTORS, NULL, NULL);
#ifdef DEBUG_STARTUP_TIME
@@ -807,7 +807,7 @@ int main(int argc, char *qt_argv[])
"-G" flag, as the "-G" flag dumps information registered by the
dissectors, and we must do it before we read the preferences, in
case any dissectors register preferences. */
- if (!epan_init(splash_update, NULL, TRUE)) {
+ if (!epan_init(splash_update, NULL, true)) {
SimpleDialog::displayQueuedMessages(main_w);
ret_val = WS_EXIT_INIT_FAILED;
goto clean_exit;
@@ -863,7 +863,7 @@ int main(int argc, char *qt_argv[])
* line, and store them. We have to do this before applying the
* preferences to the capture options.
*/
- commandline_override_prefs(argc, argv, TRUE);
+ commandline_override_prefs(argc, argv, true);
/* Register the extcap preferences. We do this after seeing if the
* capture_no_extcap preference is set in the configuration file
@@ -898,7 +898,7 @@ int main(int argc, char *qt_argv[])
* to do it if we don't need to.
*/
- commandline_other_options(argc, argv, TRUE);
+ commandline_other_options(argc, argv, true);
/* Convert some command-line parameters to QStrings */
if (global_commandline_info.cf_name != NULL)
@@ -934,7 +934,7 @@ int main(int argc, char *qt_argv[])
* and exit.
*/
if (caps_queries) {
- guint i;
+ unsigned i;
#ifdef _WIN32
create_console();
@@ -1016,12 +1016,12 @@ int main(int argc, char *qt_argv[])
#ifdef HAVE_LIBPCAP
if ((global_capture_opts.num_selected == 0) &&
(prefs.capture_device != NULL)) {
- guint i;
+ unsigned i;
interface_t *device;
for (i = 0; i < global_capture_opts.all_ifaces->len; i++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (!device->hidden && strcmp(device->display_name, prefs.capture_device) == 0) {
- device->selected = TRUE;
+ device->selected = true;
global_capture_opts.num_selected++;
break;
}
@@ -1038,7 +1038,7 @@ int main(int argc, char *qt_argv[])
goto clean_exit;
}
- build_column_format_array(&CaptureFile::globalCapFile()->cinfo, global_commandline_info.prefs_p->num_cols, TRUE);
+ build_column_format_array(&CaptureFile::globalCapFile()->cinfo, global_commandline_info.prefs_p->num_cols, true);
wsApp->emitAppSignal(WiresharkApplication::ColumnsChanged); // We read "recent" widths above.
wsApp->emitAppSignal(WiresharkApplication::RecentPreferencesRead); // Must be emitted after PreferencesChanged.
@@ -1082,7 +1082,7 @@ int main(int argc, char *qt_argv[])
if (global_commandline_info.go_to_packet != 0) {
/* Jump to the specified frame number, kept for backward
compatibility. */
- cf_goto_frame(CaptureFile::globalCapFile(), global_commandline_info.go_to_packet, FALSE);
+ cf_goto_frame(CaptureFile::globalCapFile(), global_commandline_info.go_to_packet, false);
} else if (global_commandline_info.jfilter != NULL) {
dfilter_t *jump_to_filter = NULL;
/* try to compile given filter */
@@ -1108,7 +1108,7 @@ int main(int argc, char *qt_argv[])
if (global_capture_opts.save_file != NULL) {
/* Save the directory name for future file dialogs. */
/* (get_dirname overwrites filename) */
- gchar *s = g_strdup(global_capture_opts.save_file);
+ char *s = g_strdup(global_capture_opts.save_file);
set_last_open_dir(get_dirname(s));
g_free(s);
}
@@ -1150,7 +1150,7 @@ int main(int argc, char *qt_argv[])
profile_register_persconffile("import_hexdump.json");
profile_register_persconffile("remote_hosts.json");
- profile_store_persconffiles(FALSE);
+ profile_store_persconffiles(false);
// If the wsApp->exec() event loop exits cleanly, we call
// WiresharkApplication::cleanup().
diff --git a/ui/qt/main_application.cpp b/ui/qt/main_application.cpp
index 0318cbcf48..7675e5616a 100644
--- a/ui/qt/main_application.cpp
+++ b/ui/qt/main_application.cpp
@@ -112,7 +112,7 @@
#pragma warning(pop)
#endif
-MainApplication *mainApp = NULL;
+MainApplication *mainApp;
// XXX - Copied from ui/gtk/file_dlg.c
@@ -163,7 +163,7 @@ topic_action(topic_action_e action)
* https://stackoverflow.com/questions/437212/how-do-you-register-a-most-recently-used-list-with-windows-in-preparation-for-win
*/
extern "C" void
-add_menu_recent_capture_file(const gchar *cf_name, bool force) {
+add_menu_recent_capture_file(const char *cf_name, bool force) {
QString normalized_cf_name = QString::fromUtf8(cf_name);
QDir cf_path;
@@ -284,7 +284,7 @@ void MainApplication::colorSchemeChanged() {
void MainApplication::updateTaps()
{
- draw_tap_listeners(FALSE);
+ draw_tap_listeners(false);
}
QDir MainApplication::openDialogInitialDir() {
@@ -404,18 +404,18 @@ int MainApplication::monospaceTextSize(const char *str)
return QFontMetrics(mono_font_).horizontalAdvance(str);
}
-void MainApplication::setConfigurationProfile(const gchar *profile_name, bool write_recent_file)
+void MainApplication::setConfigurationProfile(const char *profile_name, bool write_recent_file)
{
char *rf_path;
int rf_open_errno;
- gchar *err_msg = NULL;
+ char *err_msg = NULL;
- gboolean prev_capture_no_interface_load;
- gboolean prev_capture_no_extcap;
+ bool prev_capture_no_interface_load;
+ bool prev_capture_no_extcap;
/* First check if profile exists */
- if (!profile_exists(profile_name, FALSE)) {
- if (profile_exists(profile_name, TRUE)) {
+ if (!profile_exists(profile_name, false)) {
+ if (profile_exists(profile_name, true)) {
char *pf_dir_path, *pf_dir_path2, *pf_filename;
/* Copy from global profile */
if (create_persconffile_profile(profile_name, &pf_dir_path) == -1) {
@@ -426,7 +426,7 @@ void MainApplication::setConfigurationProfile(const gchar *profile_name, bool wr
g_free(pf_dir_path);
}
- if (copy_persconffile_profile(profile_name, profile_name, TRUE, &pf_filename,
+ if (copy_persconffile_profile(profile_name, profile_name, true, &pf_filename,
&pf_dir_path, &pf_dir_path2) == -1) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Can't copy file \"%s\" in directory\n\"%s\" to\n\"%s\":\n%s.",
@@ -453,7 +453,7 @@ void MainApplication::setConfigurationProfile(const gchar *profile_name, bool wr
/* Get the current geometry, before writing it to disk */
emit profileChanging();
- if (write_recent_file && profile_exists(get_profile_name(), FALSE))
+ if (write_recent_file && profile_exists(get_profile_name(), false))
{
/* Write recent file for profile we are leaving, if it still exists */
write_profile_recent();
@@ -708,7 +708,7 @@ MainApplication::MainApplication(int &argc, char **argv) :
// QFileSystemWatcher should allow us to watch for files being
// removed or renamed. It uses kqueues and EVFILT_VNODE on FreeBSD,
// NetBSD, FSEvents on macOS, inotify on Linux if available, and
- // FindFirstChagneNotification() on Windows. On all other platforms,
+ // FindFirstChangeNotification() on Windows. On all other platforms,
// it just periodically polls, as we're doing now.
//
// For unmounts:
@@ -1002,7 +1002,7 @@ static void
iface_mon_event_cb(const char *iface, int added, int up)
{
int present = 0;
- guint ifs, j;
+ unsigned ifs, j;
interface_t *device;
interface_options *interface_opts;
@@ -1215,9 +1215,9 @@ void MainApplication::loadLanguage(const QString newLanguage)
switchTranslator(mainApp->translator,
QString("wireshark_%1.qm").arg(localeLanguage), QString(get_datafile_dir()) + QString("/languages"));
if (QFile::exists(QString("%1/wireshark_%3.qm")
- .arg(gchar_free_to_qstring(get_persconffile_path("languages", FALSE))).arg(localeLanguage)))
+ .arg(gchar_free_to_qstring(get_persconffile_path("languages", false))).arg(localeLanguage)))
switchTranslator(mainApp->translator,
- QString("wireshark_%1.qm").arg(localeLanguage), gchar_free_to_qstring(get_persconffile_path("languages", FALSE)));
+ QString("wireshark_%1.qm").arg(localeLanguage), gchar_free_to_qstring(get_persconffile_path("languages", false)));
if (QFile::exists(QString("%1/qt_%2.qm")
.arg(get_datafile_dir()).arg(localeLanguage))) {
switchTranslator(mainApp->translatorQt,
diff --git a/ui/qt/main_application.h b/ui/qt/main_application.h
index 75d6e5655d..de7aad0acf 100644
--- a/ui/qt/main_application.h
+++ b/ui/qt/main_application.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "wsutil/feature_list.h"
#include "epan/register.h"
@@ -90,6 +88,16 @@ public:
// Emitting app signals (PacketDissectionChanged in particular) from
// dialogs on macOS can be problematic. Dialogs should call queueAppSignal
// instead.
+ // On macOS, nested event loops (e.g., calling a dialog with exec())
+ // that call processEvents (e.g., from PacketDissectionChanged, or
+ // anything with a ProgressFrame) caused issues off and on from 5.3.0
+ // until 5.7.1/5.8.0. It appears to be solved after some false starts:
+ // https://bugreports.qt.io/browse/QTBUG-53947
+ // https://bugreports.qt.io/browse/QTBUG-56746
+ // We also try to avoid exec / additional event loops as much as possible:
+ // e.g., commit f67eccedd9836e6ced1f57ae9889f57a5400a3d7
+ // (note it can show up in unexpected places, e.g. static functions like
+ // WiresharkFileDialog::getOpenFileName())
void queueAppSignal(AppSignal signal) { app_signals_ << signal; }
void emitStatCommandSignal(const QString &menu_path, const char *arg, void *userdata);
void emitTapParameterSignal(const QString cfg_abbr, const QString arg, void *userdata);
@@ -124,7 +132,7 @@ public:
const QFont monospaceFont(bool zoomed = false) const;
void setMonospaceFont(const char *font_string);
int monospaceTextSize(const char *str);
- void setConfigurationProfile(const gchar *profile_name, bool write_recent_file = true);
+ void setConfigurationProfile(const char *profile_name, bool write_recent_file = true);
void reloadLuaPluginsDelayed();
bool isInitialized() { return initialized_; }
void setReloadingLua(bool is_reloading) { is_reloading_lua_ = is_reloading; }
@@ -197,7 +205,7 @@ signals:
void updateRecentCaptureStatus(const QString &filename, qint64 size, bool accessible);
void splashUpdate(register_action_e action, const char *message);
void profileChanging();
- void profileNameChanged(const gchar *profile_name);
+ void profileNameChanged(const char *profile_name);
void freezePacketList(bool changing_profile);
void columnsChanged(); // XXX This recreates the packet list. We might want to rename it accordingly.
diff --git a/ui/qt/main_status_bar.cpp b/ui/qt/main_status_bar.cpp
index fac80d50a3..fcdc189326 100644
--- a/ui/qt/main_status_bar.cpp
+++ b/ui/qt/main_status_bar.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include "file.h"
#include <epan/expert.h>
@@ -47,13 +45,13 @@ Q_DECLARE_METATYPE(ProfileDialog::ProfileAction)
// If we ever add support for multiple windows this will need to be replaced.
// See also: main_window.cpp
-static MainStatusBar *cur_main_status_bar_ = NULL;
+static MainStatusBar *cur_main_status_bar_;
/*
* Push a formatted temporary message onto the statusbar.
*/
void
-statusbar_push_temporary_msg(const gchar *msg_format, ...)
+statusbar_push_temporary_msg(const char *msg_format, ...)
{
va_list ap;
QString push_msg;
@@ -436,7 +434,7 @@ void MainStatusBar::showCaptureStatistics()
}
if (prefs.gui_show_file_load_time && !cap_file_->is_tempfile) {
/* Loading an existing file */
- gulong computed_elapsed = cf_get_computed_elapsed(cap_file_);
+ unsigned long computed_elapsed = cf_get_computed_elapsed(cap_file_);
packets_str.append(tr(" %1 Load time: %2:%3.%4")
.arg(UTF8_MIDDLE_DOT)
.arg(computed_elapsed/60000, 2, 10, QLatin1Char('0'))
diff --git a/ui/qt/main_status_bar.h b/ui/qt/main_status_bar.h
index 611bc01764..c53bc54a52 100644
--- a/ui/qt/main_status_bar.h
+++ b/ui/qt/main_status_bar.h
@@ -65,7 +65,7 @@ private:
// Capture statistics
bool cs_fixed_;
- guint32 cs_count_;
+ uint32_t cs_count_;
void showCaptureStatistics();
void setStatusbarForCaptureFile();
diff --git a/ui/qt/main_window.cpp b/ui/qt/main_window.cpp
index 0f54995fa5..e51ddb9377 100644
--- a/ui/qt/main_window.cpp
+++ b/ui/qt/main_window.cpp
@@ -9,14 +9,19 @@
#include "config.h"
-#include <glib.h>
-
#include "ui/preference_utils.h"
#include "main_window.h"
+#include "epan/dfilter/dfilter-translator.h"
+
+#include <QClipboard>
+
#include "funnel_statistics.h"
+#include "main_application.h"
#include "packet_list.h"
+#include "utils/profile_switcher.h"
+#include "utils/qt_ui_utils.h"
#include "widgets/display_filter_combo.h"
// Packet Menu actions
@@ -32,7 +37,8 @@ MainWindow::MainWindow(QWidget *parent) :
byte_view_tab_(nullptr),
packet_diagram_(nullptr),
df_combo_box_(nullptr),
- main_status_bar_(nullptr)
+ main_status_bar_(nullptr),
+ profile_switcher_(new ProfileSwitcher())
{
}
@@ -51,7 +57,7 @@ bool MainWindow::hasSelection()
/*
* As hasSelection() is not looking for one single packet
- * selection, but at least 2, this method returns TRUE in
+ * selection, but at least 2, this method returns true in
* this specific case.
*/
bool MainWindow::hasUniqueSelection()
@@ -76,9 +82,9 @@ frame_data* MainWindow::frameDataForRow(int row) const
return Q_NULLPTR;
}
-void MainWindow::insertColumn(QString name, QString abbrev, gint pos)
+void MainWindow::insertColumn(QString name, QString abbrev, int pos)
{
- gint colnr = 0;
+ int colnr = 0;
if (name.length() > 0 && abbrev.length() > 0)
{
colnr = column_prefs_add_custom(COL_CUSTOM, name.toStdString().c_str(), abbrev.toStdString().c_str(), pos);
@@ -177,7 +183,7 @@ bool MainWindow::addPacketMenus(QMenu * ctx_menu, GPtrArray *finfo_array)
// Build a set of fields present for efficient lookups
QSet<QString> fieldsPresent = QSet<QString>();
- for (guint fieldInfoIndex = 0; fieldInfoIndex < finfo_array->len; fieldInfoIndex++) {
+ for (unsigned fieldInfoIndex = 0; fieldInfoIndex < finfo_array->len; fieldInfoIndex++) {
field_info *fi = (field_info *)g_ptr_array_index (finfo_array, fieldInfoIndex);
fieldsPresent.insert(QString(fi->hfinfo->abbrev));
}
@@ -203,3 +209,67 @@ bool MainWindow::addPacketMenus(QMenu * ctx_menu, GPtrArray *finfo_array)
}
return insertedPacketMenu;
}
+
+const char *MainWindow::translator_ = "translator";
+const char *MainWindow::translated_filter_ = "translated filter";
+
+void MainWindow::addDisplayFilterTranslationActions(QMenu *copy_menu) {
+ if (!copy_menu) {
+ return;
+ }
+
+ char **df_translators = get_dfilter_translator_list();
+
+ if (df_translators == NULL || df_translators[0] == NULL) {
+ return;
+ }
+
+ copy_menu->addSeparator();
+
+ for (size_t idx = 0; df_translators[idx]; idx++) {
+ QString translator = df_translators[idx];
+ QString action_text;
+ if (idx == 0) {
+ action_text = tr("Display filter as %1").arg(translator);
+ } else {
+ action_text = tr(UTF8_HORIZONTAL_ELLIPSIS "as %1").arg(translator);
+ }
+ QAction *xlate_action = copy_menu->addAction(action_text);
+ xlate_action->setProperty(translator_, QVariant::fromValue(translator));
+ xlate_action->setEnabled(false);
+ connect(xlate_action, &QAction::triggered, this, &MainWindow::copyDisplayFilterTranslation);
+ df_translate_actions_ += xlate_action;
+ }
+
+ g_free(df_translators);
+}
+
+void MainWindow::updateDisplayFilterTranslationActions(const QString &df_text)
+{
+ for (QAction *xlate_action : df_translate_actions_) {
+ bool enable = false;
+ QString translated_filter;
+ if (!df_text.isEmpty()) {
+ QString translator = xlate_action->property(translator_).toString();
+ translated_filter = gchar_free_to_qstring((char *)translate_dfilter(qUtf8Printable(translator),
+ qUtf8Printable(df_text)));
+ if (!translated_filter.isEmpty()) {
+ enable = true;
+ }
+ }
+ xlate_action->setEnabled(enable);
+ xlate_action->setProperty(translated_filter_, QVariant::fromValue(translated_filter));
+ }
+}
+
+void MainWindow::copyDisplayFilterTranslation()
+{
+ QAction *xlate_action = qobject_cast<QAction *>(sender());
+ if (!xlate_action) {
+ return;
+ }
+
+ QString translated_filter = xlate_action->property(translated_filter_).toString();
+ mainApp->clipboard()->setText(translated_filter);
+}
+
diff --git a/ui/qt/main_window.h b/ui/qt/main_window.h
index ac5ddcf4d4..c838d61af2 100644
--- a/ui/qt/main_window.h
+++ b/ui/qt/main_window.h
@@ -19,18 +19,22 @@
#include "filter_action.h"
+#include "io_graph_action.h"
#include <QMainWindow>
#include <QSplitter>
+class QMenu;
class QSplitter;
class QStackedWidget;
+
class ByteViewTab;
class DisplayFilterCombo;
class FieldInformation;
class MainStatusBar;
class PacketDiagram;
class PacketList;
+class ProfileSwitcher;
class ProtoTree;
class WelcomePage;
@@ -45,7 +49,7 @@ public:
bool hasSelection();
bool hasUniqueSelection();
QList<int> selectedRows(bool useFrameNum = false);
- void insertColumn(QString name, QString abbrev, gint pos = -1);
+ void insertColumn(QString name, QString abbrev, int pos = -1);
void gotoFrame(int packet_num);
frame_data* frameDataForRow(int) const;
@@ -62,6 +66,7 @@ public slots:
void setDisplayFilter(QString filter, FilterAction::Action action, FilterAction::ActionType filterType);
virtual void filterPackets(QString, bool) = 0;
virtual void showPreferencesDialog(QString module_name) = 0;
+ virtual void showIOGraphDialog(io_graph_item_unit_t, QString) = 0;
void layoutPanes();
void applyRecentPaneGeometry();
@@ -96,6 +101,20 @@ protected:
PacketDiagram *packet_diagram_;
DisplayFilterCombo *df_combo_box_;
MainStatusBar *main_status_bar_;
+ ProfileSwitcher *profile_switcher_;
+
+protected slots:
+ void addDisplayFilterTranslationActions(QMenu *copy_menu);
+ void updateDisplayFilterTranslationActions(const QString &df_text);
+
+private:
+ QVector<QAction *> df_translate_actions_;
+
+ static const char *translator_;
+ static const char *translated_filter_;
+
+private slots:
+ void copyDisplayFilterTranslation(void);
signals:
void setCaptureFile(capture_file *cf);
diff --git a/ui/qt/main_window_preferences_frame.cpp b/ui/qt/main_window_preferences_frame.cpp
index 9659c928db..8586b204f9 100644
--- a/ui/qt/main_window_preferences_frame.cpp
+++ b/ui/qt/main_window_preferences_frame.cpp
@@ -66,7 +66,7 @@ MainWindowPreferencesFrame::MainWindowPreferencesFrame(QWidget *parent) :
ui->languageComboBox->setItemIcon(0, language_icon);
QString globalLanguagesPath(QString(get_datafile_dir()) + "/languages/");
- QString userLanguagesPath(gchar_free_to_qstring(get_persconffile_path("languages/", FALSE)));
+ QString userLanguagesPath(gchar_free_to_qstring(get_persconffile_path("languages/", false)));
QStringList filenames = QDir(":/i18n/").entryList(QStringList("wireshark_*.qm"));
filenames += QDir(globalLanguagesPath).entryList(QStringList("wireshark_*.qm"));
diff --git a/ui/qt/manage_interfaces_dialog.cpp b/ui/qt/manage_interfaces_dialog.cpp
index ea6c19e5ef..a9c8d81968 100644
--- a/ui/qt/manage_interfaces_dialog.cpp
+++ b/ui/qt/manage_interfaces_dialog.cpp
@@ -82,7 +82,7 @@ void ManageInterfacesDialog::addRemote(const QVariantMap&& remoteHostMap)
{
remote_options global_remote_opts;
int err;
- gchar* err_str;
+ char* err_str;
global_remote_opts.src_type = CAPTURE_IFREMOTE;
global_remote_opts.remote_host_opts.remote_host = qstring_strdup(remoteHostMap["host"].toString());
@@ -90,9 +90,9 @@ void ManageInterfacesDialog::addRemote(const QVariantMap&& remoteHostMap)
global_remote_opts.remote_host_opts.auth_type = static_cast<capture_auth>(remoteHostMap["auth"].toInt());
global_remote_opts.remote_host_opts.auth_username = qstring_strdup(remoteHostMap["username"].toString());
global_remote_opts.remote_host_opts.auth_password = qstring_strdup(remoteHostMap["password"].toString());
- global_remote_opts.remote_host_opts.datatx_udp = FALSE;
- global_remote_opts.remote_host_opts.nocap_rpcap = TRUE;
- global_remote_opts.remote_host_opts.nocap_local = FALSE;
+ global_remote_opts.remote_host_opts.datatx_udp = false;
+ global_remote_opts.remote_host_opts.nocap_rpcap = true;
+ global_remote_opts.remote_host_opts.nocap_local = false;
#ifdef HAVE_PCAP_SETSAMPLING
global_remote_opts.sampling_method = CAPTURE_SAMP_NONE;
global_remote_opts.sampling_param = 0;
@@ -139,7 +139,7 @@ void ManageInterfacesDialog::populateExistingRemotes()
const char* cfile = REMOTE_HOSTS_FILE;
/* Try personal config file first */
- QString fileName = gchar_free_to_qstring(get_persconffile_path(cfile, TRUE));
+ QString fileName = gchar_free_to_qstring(get_persconffile_path(cfile, true));
if (fileName.isEmpty() || !QFileInfo::exists(fileName)) {
return;
@@ -315,8 +315,8 @@ void ManageInterfacesDialog::on_addPipe_clicked()
memset(&device, 0, sizeof(device));
device.name = qstring_strdup(tr("New Pipe"));
device.display_name = g_strdup(device.name);
- device.hidden = FALSE;
- device.selected = TRUE;
+ device.hidden = false;
+ device.selected = true;
device.pmode = global_capture_opts.default_options.promisc_mode;
device.has_snaplen = global_capture_opts.default_options.has_snaplen;
device.snaplen = global_capture_opts.default_options.snaplen;
@@ -362,19 +362,19 @@ void ManageInterfacesDialog::updateRemoteInterfaceList(GList* rlist, remote_opti
GList *if_entry, *lt_entry;
if_info_t *if_info;
char *if_string = NULL;
- gchar *descr, *auth_str;
+ char *descr, *auth_str;
if_capabilities_t *caps;
- gint linktype_count;
+ int linktype_count;
bool monitor_mode, found = false;
GSList *curr_addr;
int ips = 0;
- guint i;
+ unsigned i;
if_addr_t *addr;
data_link_info_t *data_link_info;
GString *ip_str;
link_row *linkr = NULL;
interface_t device;
- guint num_interfaces;
+ unsigned num_interfaces;
// Add any (remote) interface in rlist to the global list of all
// interfaces.
@@ -393,12 +393,12 @@ void ManageInterfacesDialog::updateRemoteInterfaceList(GList* rlist, remote_opti
if (device.hidden)
continue;
if (strcmp(device.name, if_info->name) == 0) {
- found = TRUE;
+ found = true;
break;
}
}
if (found) {
- found = FALSE;
+ found = false;
continue;
}
ip_str = g_string_new("");
@@ -511,8 +511,8 @@ void ManageInterfacesDialog::updateRemoteInterfaceList(GList* rlist, remote_opti
} /* for link_types */
} else {
#if defined(HAVE_PCAP_CREATE)
- device.monitor_mode_enabled = FALSE;
- device.monitor_mode_supported = FALSE;
+ device.monitor_mode_enabled = false;
+ device.monitor_mode_supported = false;
#endif
device.active_dlt = -1;
}
@@ -520,7 +520,7 @@ void ManageInterfacesDialog::updateRemoteInterfaceList(GList* rlist, remote_opti
device.no_addresses = ips;
device.remote_opts.src_type= roptions->src_type;
if (device.remote_opts.src_type == CAPTURE_IFREMOTE) {
- device.local = FALSE;
+ device.local = false;
}
device.remote_opts.remote_host_opts.remote_host = g_strdup(roptions->remote_host_opts.remote_host);
device.remote_opts.remote_host_opts.remote_port = g_strdup(roptions->remote_host_opts.remote_port);
@@ -534,10 +534,10 @@ void ManageInterfacesDialog::updateRemoteInterfaceList(GList* rlist, remote_opti
device.remote_opts.sampling_method = roptions->sampling_method;
device.remote_opts.sampling_param = roptions->sampling_param;
#endif
- device.selected = TRUE;
+ device.selected = true;
global_capture_opts.num_selected++;
g_array_append_val(global_capture_opts.all_ifaces, device);
- g_string_free(ip_str, TRUE);
+ g_string_free(ip_str, true);
} /*for*/
}
@@ -562,7 +562,7 @@ void ManageInterfacesDialog::remoteAccepted()
}
}
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if ((*it)->text(col_r_host_dev_).compare(device->name))
continue;
@@ -573,7 +573,7 @@ void ManageInterfacesDialog::remoteAccepted()
const char* cfile = REMOTE_HOSTS_FILE;
/* Try personal config file first */
- QString fileName = gchar_free_to_qstring(get_persconffile_path(cfile, TRUE));
+ QString fileName = gchar_free_to_qstring(get_persconffile_path(cfile, true));
if (fileName.isEmpty()) {
return;
@@ -598,7 +598,7 @@ void ManageInterfacesDialog::on_remoteList_itemClicked(QTreeWidgetItem *item, in
return;
}
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (!device->local) {
if (item->text(col_r_host_dev_).compare(device->name))
@@ -615,7 +615,7 @@ void ManageInterfacesDialog::on_delRemote_clicked()
return;
}
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (item->text(col_r_host_dev_).compare(device->remote_opts.remote_host_opts.remote_host))
continue;
@@ -634,7 +634,7 @@ void ManageInterfacesDialog::on_addRemote_clicked()
void ManageInterfacesDialog::showRemoteInterfaces()
{
- guint i;
+ unsigned i;
interface_t *device;
QTreeWidgetItem * item = nullptr;
@@ -685,7 +685,7 @@ void ManageInterfacesDialog::showRemoteInterfaces()
void ManageInterfacesDialog::on_remoteSettings_clicked()
{
- guint i = 0;
+ unsigned i = 0;
interface_t *device;
QTreeWidgetItem* item = ui->remoteList->currentItem();
if (!item) {
@@ -708,7 +708,7 @@ void ManageInterfacesDialog::on_remoteSettings_clicked()
void ManageInterfacesDialog::setRemoteSettings(interface_t *iface)
{
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (!device->local) {
if (strcmp(iface->name, device->name)) {
diff --git a/ui/qt/manage_interfaces_dialog.h b/ui/qt/manage_interfaces_dialog.h
index 31005b7966..de8db2d4ff 100644
--- a/ui/qt/manage_interfaces_dialog.h
+++ b/ui/qt/manage_interfaces_dialog.h
@@ -12,7 +12,6 @@
#include <config.h>
-#include <glib.h>
#include "capture_opts.h"
#include <ui/qt/models/interface_tree_cache_model.h>
diff --git a/ui/qt/manuf_dialog.cpp b/ui/qt/manuf_dialog.cpp
index 0c383af36e..d7ed919284 100644
--- a/ui/qt/manuf_dialog.cpp
+++ b/ui/qt/manuf_dialog.cpp
@@ -102,9 +102,9 @@ static QByteArray convertMacAddressToByteArray(const QString &bytesString)
{
GByteArray *bytes = g_byte_array_new();
- if (!hex_str_to_bytes(qUtf8Printable(bytesString), bytes, FALSE)
+ if (!hex_str_to_bytes(qUtf8Printable(bytesString), bytes, false)
|| bytes->len == 0 || bytes->len > 6) {
- g_byte_array_free(bytes, TRUE);
+ g_byte_array_free(bytes, true);
return QByteArray();
}
diff --git a/ui/qt/models/atap_data_model.cpp b/ui/qt/models/atap_data_model.cpp
index 9e8b281750..eed16cf5ba 100644
--- a/ui/qt/models/atap_data_model.cpp
+++ b/ui/qt/models/atap_data_model.cpp
@@ -7,8 +7,6 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
-#include <glib.h>
-
#include <epan/tap.h>
#include <epan/conversation.h>
#include <epan/conversation_table.h>
@@ -116,14 +114,14 @@ bool ATapDataModel::enableTap()
GString * errorString = register_tap_listener(tap().toUtf8().constData(), hash(), _filter.toUtf8().constData(),
TL_IGNORE_DISPLAY_FILTER, &ATapDataModel::tapReset, conversationPacketHandler(), &ATapDataModel::tapDraw, nullptr);
if (errorString && errorString->len > 0) {
- g_string_free(errorString, TRUE);
+ g_string_free(errorString, true);
_disableTap = true;
emit tapListenerChanged(false);
return false;
}
if (errorString)
- g_string_free(errorString, TRUE);
+ g_string_free(errorString, true);
emit tapListenerChanged(true);
@@ -297,7 +295,7 @@ void ATapDataModel::setFilter(QString filter)
}
if (errorString)
- g_string_free(errorString, TRUE);
+ g_string_free(errorString, true);
}
QString ATapDataModel::filter() const
@@ -587,6 +585,9 @@ void ConversationDataModel::doDataUpdate()
int ConversationDataModel::columnCount(const QModelIndex &) const
{
+ if(tap()=="tcp")
+ return CONV_TCP_EXT_NUM_COLUMNS;
+
return CONV_NUM_COLUMNS;
}
@@ -632,6 +633,15 @@ QVariant ConversationDataModel::headerData(int section, Qt::Orientation orientat
case CONV_COLUMN_BPS_BA:
return tr("Bits/s B " UTF8_RIGHTWARDS_ARROW " A"); break;
}
+ /* Extended conversations columns, e.g. TCP */
+ if(tap()=="tcp") {
+ switch (section) {
+ case CONV_TCP_EXT_COLUMN_A:
+ return tr("Flows"); break;
+ default :
+ ws_assert_not_reached(); break;
+ }
+ }
} else if (role == Qt::TextAlignmentRole) {
if (section == CONV_COLUMN_SRC_ADDR || section == CONV_COLUMN_DST_ADDR)
return Qt::AlignLeft;
@@ -780,6 +790,18 @@ QVariant ConversationDataModel::data(const QModelIndex &idx, int role) const
case CONV_COLUMN_BPS_BA:
return bpsCalculated ? (role == Qt::DisplayRole ? gchar_free_to_qstring(format_size((int64_t)bps_ba, FORMAT_SIZE_UNIT_BITS_S, FORMAT_SIZE_PREFIX_SI)) : QVariant((qlonglong)bps_ba)): QVariant();
}
+ /* Extended conversations columns, e.g. TCP */
+ if(tap()=="tcp") {
+ switch(idx.column()) {
+ case CONV_TCP_EXT_COLUMN_A:
+ {
+ qlonglong flows = (qlonglong)conv_item->ext_tcp.flows;
+ return role == Qt::DisplayRole ? QString("%L1").arg(flows) : (QVariant)flows; break;
+ }
+ default :
+ ws_assert_not_reached(); break;
+ }
+ }
} else if (role == Qt::ToolTipRole) {
if (idx.column() == CONV_COLUMN_START || idx.column() == CONV_COLUMN_DURATION)
return QObject::tr("Bars show the relative timeline for each conversation.");
diff --git a/ui/qt/models/atap_data_model.h b/ui/qt/models/atap_data_model.h
index 38bdbd2fa7..6ba0b325c6 100644
--- a/ui/qt/models/atap_data_model.h
+++ b/ui/qt/models/atap_data_model.h
@@ -12,8 +12,6 @@
#include "config.h"
-#include "glib.h"
-
#include <epan/tap.h>
#include <epan/conversation.h>
#include <epan/conversation_table.h>
@@ -306,6 +304,12 @@ public:
CONV_INDEX_COLUMN = CONV_NUM_COLUMNS
} conversation_column_type_e;
+ typedef enum {
+ CONV_TCP_EXT_COLUMN_A = CONV_INDEX_COLUMN,
+ CONV_TCP_EXT_NUM_COLUMNS,
+ CONV_TCP_EXT_INDEX_COLUMN = CONV_TCP_EXT_NUM_COLUMNS
+ } conversation_tcp_ext_column_type_e;
+
explicit ConversationDataModel(int protoId, QString filter, QObject *parent = nullptr);
int columnCount(const QModelIndex &parent = QModelIndex()) const;
diff --git a/ui/qt/models/coloring_rules_delegate.cpp b/ui/qt/models/coloring_rules_delegate.cpp
index b86ffa97ff..58524be154 100644
--- a/ui/qt/models/coloring_rules_delegate.cpp
+++ b/ui/qt/models/coloring_rules_delegate.cpp
@@ -32,7 +32,7 @@ QWidget* ColoringRulesDelegate::createEditor(QWidget *parent, const QStyleOption
return new DisplayFilterEdit(parent);
default:
- Q_ASSERT(FALSE);
+ Q_ASSERT(false);
return 0;
}
diff --git a/ui/qt/models/coloring_rules_model.cpp b/ui/qt/models/coloring_rules_model.cpp
index dced9c3774..29bb7dcf7f 100644
--- a/ui/qt/models/coloring_rules_model.cpp
+++ b/ui/qt/models/coloring_rules_model.cpp
@@ -72,7 +72,7 @@ ColoringRuleItem& ColoringRuleItem::operator=(ColoringRuleItem& rhs)
// Callback for color_filters_clone.
void
-color_filter_add_cb(color_filter_t *colorf, gpointer user_data)
+color_filter_add_cb(color_filter_t *colorf, void *user_data)
{
ColoringRulesModel *model = (ColoringRulesModel*)user_data;
@@ -149,7 +149,7 @@ void ColoringRulesModel::addColor(bool disabled, QString filter, QColor foregrou
bool ColoringRulesModel::importColors(QString filename, QString& err)
{
bool success = true;
- gchar* err_msg = NULL;
+ char* err_msg = NULL;
if (!color_filters_import(filename.toUtf8().constData(), this, &err_msg, color_filter_add_cb)) {
err = gchar_free_to_qstring(err_msg);
success = false;
@@ -162,8 +162,8 @@ bool ColoringRulesModel::exportColors(QString filename, QString& err)
{
GSList *cfl = createColorFilterList();
bool success = true;
- gchar* err_msg = NULL;
- if (!color_filters_export(filename.toUtf8().constData(), cfl, FALSE, &err_msg)) {
+ char* err_msg = NULL;
+ if (!color_filters_export(filename.toUtf8().constData(), cfl, false, &err_msg)) {
err = gchar_free_to_qstring(err_msg);
success = false;
}
@@ -176,7 +176,7 @@ bool ColoringRulesModel::writeColors(QString& err)
{
GSList *cfl = createColorFilterList();
bool success = true;
- gchar* err_msg = NULL;
+ char* err_msg = NULL;
if (!color_filters_apply(conversation_colors_, cfl, &err_msg)) {
err = gchar_free_to_qstring(err_msg);
success = false;
diff --git a/ui/qt/models/coloring_rules_model.h b/ui/qt/models/coloring_rules_model.h
index f51a1a3083..0df532ef64 100644
--- a/ui/qt/models/coloring_rules_model.h
+++ b/ui/qt/models/coloring_rules_model.h
@@ -14,7 +14,6 @@
#include <config.h>
-#include <glib.h>
#include <epan/color_filters.h>
#include <ui/qt/models/tree_model_helpers.h>
diff --git a/ui/qt/models/column_list_model.cpp b/ui/qt/models/column_list_model.cpp
index 681a60c0e7..7603cf3627 100644
--- a/ui/qt/models/column_list_model.cpp
+++ b/ui/qt/models/column_list_model.cpp
@@ -13,7 +13,6 @@
#include <ui/qt/widgets/syntax_line_edit.h>
#include <ui/qt/utils/wireshark_mime_data.h>
-#include <glib.h>
#include <epan/column.h>
#include <epan/prefs.h>
#include <epan/proto.h>
@@ -336,7 +335,7 @@ void ColumnListModel::populate()
QVariant ColumnListModel::data(const QModelIndex &index, int role) const
{
- if (! index.isValid() || index.column() >= store_.count())
+ if (! index.isValid() || index.row() >= store_.count())
return QVariant();
ListElement ne = store_.at(index.row());
@@ -547,7 +546,7 @@ void ColumnListModel::saveColumns()
cfmt->title = qstring_strdup(elem.title);
cfmt->visible = elem.displayed;
cfmt->fmt = elem.type;
- cfmt->resolved = TRUE;
+ cfmt->resolved = true;
if (cfmt->fmt == COL_CUSTOM)
{
cfmt->custom_fields = qstring_strdup(elem.customFields);
diff --git a/ui/qt/models/decode_as_delegate.cpp b/ui/qt/models/decode_as_delegate.cpp
index 3c300a79fc..c3917928bb 100644
--- a/ui/qt/models/decode_as_delegate.cpp
+++ b/ui/qt/models/decode_as_delegate.cpp
@@ -46,11 +46,11 @@ void DecodeAsDelegate::cachePacketProtocols()
if (cap_file_ && cap_file_->edt) {
wmem_list_frame_t * protos = wmem_list_head(cap_file_->edt->pi.layers);
- guint8 curr_layer_num = 1;
+ uint8_t curr_layer_num = 1;
while (protos != NULL) {
int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(protos));
- const gchar * proto_name = proto_get_protocol_filter_name(proto_id);
+ const char * proto_name = proto_get_protocol_filter_name(proto_id);
for (GList *cur = decode_as_list; cur; cur = cur->next) {
decode_as_t *entry = (decode_as_t *) cur->data;
if (g_strcmp0(proto_name, entry->name) == 0) {
@@ -95,7 +95,7 @@ void DecodeAsDelegate::collectDAProtocols(QSet<QString>& all_protocols, QList<QS
//correspond to using a combo box
bool DecodeAsDelegate::isSelectorCombo(DecodeAsItem* item) const
{
- const gchar *proto_name = NULL;
+ const char *proto_name = NULL;
foreach(packet_proto_data_t proto, packet_proto_list_)
{
@@ -117,7 +117,7 @@ bool DecodeAsDelegate::isSelectorCombo(DecodeAsItem* item) const
return false;
}
-void DecodeAsDelegate::decodeAddProtocol(const gchar *, const gchar *proto_name, gpointer value, gpointer user_data)
+void DecodeAsDelegate::decodeAddProtocol(const char *, const char *proto_name, void *value, void *user_data)
{
QList<dissector_info_t*>* proto_list = (QList<dissector_info_t*>*)user_data;
@@ -178,10 +178,10 @@ QWidget* DecodeAsDelegate::createEditor(QWidget *parentWidget, const QStyleOptio
case DecodeAsModel::colSelector:
{
QComboBox *cb_editor = NULL;
- const gchar *proto_name = NULL;
+ const char *proto_name = NULL;
bool edt_present = cap_file_ && cap_file_->edt;
- gint8 curr_layer_num_saved = edt_present ? cap_file_->edt->pi.curr_layer_num : 0;
- QList<guint8> proto_layers;
+ int8_t curr_layer_num_saved = edt_present ? cap_file_->edt->pi.curr_layer_num : 0;
+ QList<uint8_t> proto_layers;
foreach(packet_proto_data_t proto, packet_proto_list_)
{
@@ -212,7 +212,7 @@ QWidget* DecodeAsDelegate::createEditor(QWidget *parentWidget, const QStyleOptio
cb_editor->addItem(current_value);
//get the value(s) from the packet
- foreach(guint8 current_layer, proto_layers) {
+ foreach(uint8_t current_layer, proto_layers) {
cap_file_->edt->pi.curr_layer_num = current_layer;
for (uint ni = 0; ni < entry->num_items; ni++) {
if (entry->values[ni].num_values == 1) { // Skip over multi-value ("both") entries
diff --git a/ui/qt/models/decode_as_delegate.h b/ui/qt/models/decode_as_delegate.h
index d045776462..d793a85ae0 100644
--- a/ui/qt/models/decode_as_delegate.h
+++ b/ui/qt/models/decode_as_delegate.h
@@ -13,7 +13,6 @@
#define DECODE_AS_DELEGATE_H
#include <config.h>
-#include <glib.h>
#include "cfile.h"
@@ -23,9 +22,9 @@
#include <ui/qt/models/decode_as_model.h>
typedef struct _packet_proto_data_t {
- const gchar* proto_name;
- const gchar* table_ui_name;
- guint8 curr_layer_num;
+ const char* proto_name;
+ const char* table_ui_name;
+ uint8_t curr_layer_num;
} packet_proto_data_t;
class DecodeAsDelegate : public QStyledItemDelegate
@@ -51,7 +50,7 @@ private:
void cachePacketProtocols();
bool isSelectorCombo(DecodeAsItem* item) const;
- static void decodeAddProtocol(const gchar *table_name, const gchar *proto_name, gpointer value, gpointer user_data);
+ static void decodeAddProtocol(const char *table_name, const char *proto_name, void *value, void *user_data);
capture_file *cap_file_;
QList<packet_proto_data_t> packet_proto_list_;
diff --git a/ui/qt/models/decode_as_model.cpp b/ui/qt/models/decode_as_model.cpp
index 67e98b7548..c6a071f170 100644
--- a/ui/qt/models/decode_as_model.cpp
+++ b/ui/qt/models/decode_as_model.cpp
@@ -74,7 +74,7 @@ void DecodeAsItem::init(const char* table_name, gconstpointer selector)
ftenum_t selector_type = get_dissector_table_selector_type(tableName_);
if (FT_IS_STRING(selector_type)) {
if (selector != NULL) {
- default_handle = dissector_get_default_string_handle(tableName_, (const gchar*)selector);
+ default_handle = dissector_get_default_string_handle(tableName_, (const char*)selector);
selectorString_ = QString((const char*)selector);
}
} else if (FT_IS_UINT(selector_type)) {
@@ -410,12 +410,12 @@ bool DecodeAsModel::insertRows(int row, int count, const QModelIndex &/*parent*/
// the fields for the tables not being present at all.
wmem_list_frame_t * protos = wmem_list_tail(cap_file_->edt->pi.layers);
- gint8 curr_layer_num_saved = cap_file_->edt->pi.curr_layer_num;
- guint8 curr_layer_num = wmem_list_count(cap_file_->edt->pi.layers);
+ int8_t curr_layer_num_saved = cap_file_->edt->pi.curr_layer_num;
+ uint8_t curr_layer_num = wmem_list_count(cap_file_->edt->pi.layers);
while (protos != NULL && item == nullptr) {
int proto_id = GPOINTER_TO_INT(wmem_list_frame_data(protos));
- const gchar * proto_name = proto_get_protocol_filter_name(proto_id);
+ const char * proto_name = proto_get_protocol_filter_name(proto_id);
for (GList *cur = decode_as_list; cur; cur = cur->next) {
decode_as_t *entry = (decode_as_t *) cur->data;
if (g_strcmp0(proto_name, entry->name) == 0) {
@@ -428,7 +428,7 @@ bool DecodeAsModel::insertRows(int row, int count, const QModelIndex &/*parent*/
// XXX: What if the Decode As table supports multiple
// values, but the first possible one is 0/NULL?
cap_file_->edt->pi.curr_layer_num = curr_layer_num;
- gpointer selector = entry->values[0].build_values[0](&cap_file_->edt->pi);
+ void *selector = entry->values[0].build_values[0](&cap_file_->edt->pi);
// FT_NONE tables don't need a value
if (selector != NULL || selector_type == FT_NONE) {
item = new DecodeAsItem(entry, selector);
@@ -499,7 +499,7 @@ bool DecodeAsModel::copyRow(int dst_row, int src_row)
return true;
}
-prefs_set_pref_e DecodeAsModel::readDecodeAsEntry(gchar *key, const gchar *value, void *private_data, gboolean)
+prefs_set_pref_e DecodeAsModel::readDecodeAsEntry(char *key, const char *value, void *private_data, bool)
{
DecodeAsModel *model = (DecodeAsModel*)private_data;
if (model == NULL)
@@ -510,7 +510,7 @@ prefs_set_pref_e DecodeAsModel::readDecodeAsEntry(gchar *key, const gchar *value
}
/* Parse into table, selector, initial, current */
- gchar **values = g_strsplit_set(value, ",", 4);
+ char **values = g_strsplit_set(value, ",", 4);
DecodeAsItem *item = nullptr;
dissector_table_t dissector_table = find_dissector_table(values[0]);
@@ -546,7 +546,7 @@ prefs_set_pref_e DecodeAsModel::readDecodeAsEntry(gchar *key, const gchar *value
return PREFS_SET_OK;
}
-bool DecodeAsModel::copyFromProfile(QString filename, const gchar **err)
+bool DecodeAsModel::copyFromProfile(QString filename, const char **err)
{
FILE *fp = ws_fopen(filename.toUtf8().constData(), "r");
@@ -564,7 +564,7 @@ bool DecodeAsModel::copyFromProfile(QString filename, const gchar **err)
return true;
}
-QString DecodeAsModel::entryString(const gchar *table_name, gconstpointer value)
+QString DecodeAsModel::entryString(const char *table_name, gconstpointer value)
{
QString entry_str;
ftenum_t selector_type = get_dissector_table_selector_type(table_name);
@@ -654,7 +654,7 @@ void DecodeAsModel::setDissectorHandle(const QModelIndex &index, dissector_handl
item->setDissectorHandle(dissector_handle);
}
-void DecodeAsModel::buildChangedList(const gchar *table_name, ftenum_t, gpointer key, gpointer value, gpointer user_data)
+void DecodeAsModel::buildChangedList(const char *table_name, ftenum_t, void *key, void *value, void *user_data)
{
DecodeAsModel *model = (DecodeAsModel*)user_data;
if (model == NULL)
@@ -669,7 +669,7 @@ void DecodeAsModel::buildChangedList(const gchar *table_name, ftenum_t, gpointer
model->decode_as_items_ << item;
}
-void DecodeAsModel::buildDceRpcChangedList(gpointer data, gpointer user_data)
+void DecodeAsModel::buildDceRpcChangedList(void *data, void *user_data)
{
dissector_table_t sub_dissectors;
guid_key guid_val;
@@ -690,11 +690,11 @@ void DecodeAsModel::buildDceRpcChangedList(gpointer data, gpointer user_data)
model->decode_as_items_ << item;
}
-typedef QPair<const char *, guint32> UintPair;
+typedef QPair<const char *, uint32_t> UintPair;
typedef QPair<const char *, const char *> CharPtrPair;
-void DecodeAsModel::gatherChangedEntries(const gchar *table_name,
- ftenum_t selector_type, gpointer key, gpointer, gpointer user_data)
+void DecodeAsModel::gatherChangedEntries(const char *table_name,
+ ftenum_t selector_type, void *key, void *, void *user_data)
{
DecodeAsModel *model = qobject_cast<DecodeAsModel*>((DecodeAsModel*)user_data);
if (model == NULL)
@@ -820,7 +820,7 @@ void DecodeAsModel::applyChanges()
pref_value = prefs_find_preference(module, decode_as_entry->table_name);
if (pref_value != NULL) {
module->prefs_changed_flags |= prefs_get_effect_flags(pref_value);
- prefs_remove_decode_as_value(pref_value, item->selectorUint(), TRUE);
+ prefs_remove_decode_as_value(pref_value, item->selectorUint(), true);
}
}
}
@@ -836,7 +836,7 @@ void DecodeAsModel::applyChanges()
pref_value = prefs_find_preference(module, decode_as_entry->table_name);
if (pref_value != NULL) {
module->prefs_changed_flags |= prefs_get_effect_flags(pref_value);
- prefs_add_decode_as_value(pref_value, item->selectorUint(), FALSE);
+ prefs_add_decode_as_value(pref_value, item->selectorUint(), false);
}
}
}
diff --git a/ui/qt/models/decode_as_model.h b/ui/qt/models/decode_as_model.h
index cf280965d5..767284148f 100644
--- a/ui/qt/models/decode_as_model.h
+++ b/ui/qt/models/decode_as_model.h
@@ -13,7 +13,6 @@
#define DECODE_AS_MODEL_H
#include <config.h>
-#include <glib.h>
#include <QAbstractItemModel>
#include <QList>
@@ -31,8 +30,8 @@ public:
DecodeAsItem(const decode_as_t *entry, gconstpointer selector = NULL);
virtual ~DecodeAsItem();
- const gchar* tableName() const { return tableName_; }
- const gchar* tableUIName() const { return tableUIName_; }
+ const char* tableName() const { return tableName_; }
+ const char* tableUIName() const { return tableUIName_; }
uint selectorUint() const { return selectorUint_; }
QString selectorString() const { return selectorString_; }
decode_dcerpc_bind_values_t* selectorDCERPC() const { return selectorDCERPC_; }
@@ -48,8 +47,8 @@ public:
private:
void init(const char *table_name, gconstpointer selector = NULL);
- const gchar* tableName_;
- const gchar* tableUIName_;
+ const char* tableName_;
+ const char* tableUIName_;
//save our sanity and not have to worry about memory management
//between (lack of) persistent data in GUI and underlying data
@@ -95,25 +94,25 @@ public:
bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
void clearAll();
bool copyRow(int dst_row, int src_row);
- bool copyFromProfile(QString filename, const gchar **err);
+ bool copyFromProfile(QString filename, const char **err);
- static QString entryString(const gchar *table_name, gconstpointer value);
+ static QString entryString(const char *table_name, gconstpointer value);
void applyChanges();
protected:
- static void buildChangedList(const gchar *table_name, ftenum_t selector_type,
- gpointer key, gpointer value, gpointer user_data);
- static void buildDceRpcChangedList(gpointer data, gpointer user_data);
- static void gatherChangedEntries(const gchar *table_name, ftenum_t selector_type,
- gpointer key, gpointer value, gpointer user_data);
- static prefs_set_pref_e readDecodeAsEntry(gchar *key, const gchar *value,
- void *user_data, gboolean return_range_errors);
+ static void buildChangedList(const char *table_name, ftenum_t selector_type,
+ void *key, void *value, void *user_data);
+ static void buildDceRpcChangedList(void *data, void *user_data);
+ static void gatherChangedEntries(const char *table_name, ftenum_t selector_type,
+ void *key, void *value, void *user_data);
+ static prefs_set_pref_e readDecodeAsEntry(char *key, const char *value,
+ void *user_data, bool);
private:
capture_file *cap_file_;
QList<DecodeAsItem *> decode_as_items_;
- QList<QPair<const char *, guint32> > changed_uint_entries_;
+ QList<QPair<const char *, uint32_t> > changed_uint_entries_;
QList<QPair<const char *, const char *> > changed_string_entries_;
};
diff --git a/ui/qt/models/dissector_tables_model.cpp b/ui/qt/models/dissector_tables_model.cpp
index e50dcbeb14..dcf3dc7259 100644
--- a/ui/qt/models/dissector_tables_model.cpp
+++ b/ui/qt/models/dissector_tables_model.cpp
@@ -179,7 +179,7 @@ QVariant DissectorTablesModel::data(const QModelIndex &index, int role) const
return QVariant();
}
-static void gatherProtocolDecodes(const char *, ftenum_t selector_type, gpointer key, gpointer value, gpointer item_ptr)
+static void gatherProtocolDecodes(const char *, ftenum_t selector_type, void *key, void *value, void *item_ptr)
{
DissectorTablesItem* pdl_ptr = (DissectorTablesItem*)item_ptr;
if (pdl_ptr == NULL)
@@ -225,7 +225,7 @@ struct tables_root
DissectorTablesItem* string_table;
};
-static void gatherTableNames(const char *short_name, const char *table_name, gpointer model_ptr)
+static void gatherTableNames(const char *short_name, const char *table_name, void *model_ptr)
{
struct tables_root* tables = (struct tables_root*)model_ptr;
if (model_ptr == NULL)
@@ -262,7 +262,7 @@ static void gatherTableNames(const char *short_name, const char *table_name, gpo
dissector_table_foreach(short_name, gatherProtocolDecodes, dt_ti);
}
-static void gatherHeurProtocolDecodes(const char *, struct heur_dtbl_entry *dtbl_entry, gpointer list_ptr)
+static void gatherHeurProtocolDecodes(const char *, struct heur_dtbl_entry *dtbl_entry, void *list_ptr)
{
DissectorTablesItem* hdl_ptr = (DissectorTablesItem*)list_ptr;
if (hdl_ptr == NULL)
@@ -279,7 +279,7 @@ static void gatherHeurProtocolDecodes(const char *, struct heur_dtbl_entry *dtbl
}
}
-static void gatherHeurTableNames(const char *table_name, heur_dissector_list *list, gpointer heur_tables)
+static void gatherHeurTableNames(const char *table_name, heur_dissector_list *list, void *heur_tables)
{
DissectorTablesItem* table = (DissectorTablesItem*)heur_tables;
if (table == NULL)
diff --git a/ui/qt/models/enabled_protocols_model.cpp b/ui/qt/models/enabled_protocols_model.cpp
index ecbc47a9ed..b040587b1b 100644
--- a/ui/qt/models/enabled_protocols_model.cpp
+++ b/ui/qt/models/enabled_protocols_model.cpp
@@ -31,7 +31,7 @@ public:
virtual ~ProtocolTreeItem() {}
protected:
- virtual void applyValuePrivate(gboolean value)
+ virtual void applyValuePrivate(bool value)
{
if (! proto_can_toggle_protocol(proto_get_id(proto_))) {
return;
@@ -56,7 +56,7 @@ public:
virtual ~HeuristicTreeItem() {}
protected:
- virtual void applyValuePrivate(gboolean value)
+ virtual void applyValuePrivate(bool value)
{
heuristic_table_->enabled = value;
}
@@ -270,7 +270,7 @@ bool EnabledProtocolsModel::setData(const QModelIndex &index, const QVariant &va
return true;
}
-static void addHeuristicItem(gpointer data, gpointer user_data)
+static void addHeuristicItem(void *data, void *user_data)
{
heur_dtbl_entry_t* heur = (heur_dtbl_entry_t*)data;
ProtocolTreeItem* protocol_item = (ProtocolTreeItem*)user_data;
diff --git a/ui/qt/models/enabled_protocols_model.h b/ui/qt/models/enabled_protocols_model.h
index 23b2c1bb2d..fe6caeabdb 100644
--- a/ui/qt/models/enabled_protocols_model.h
+++ b/ui/qt/models/enabled_protocols_model.h
@@ -43,7 +43,7 @@ public:
bool applyValue();
protected:
- virtual void applyValuePrivate(gboolean value) = 0;
+ virtual void applyValuePrivate(bool value) = 0;
QString name_;
QString description_;
diff --git a/ui/qt/models/expert_info_model.cpp b/ui/qt/models/expert_info_model.cpp
index 017dba3de5..2420461200 100644
--- a/ui/qt/models/expert_info_model.cpp
+++ b/ui/qt/models/expert_info_model.cpp
@@ -118,7 +118,7 @@ ExpertPacketItem* ExpertInfoModel::createRootItem()
{
static const char* rootName = "ROOT";
DIAG_OFF_CAST_AWAY_CONST
- static expert_info_t root_expert = { 0, -1, -1, -1, rootName, (gchar*)rootName, NULL };
+ static expert_info_t root_expert = { 0, -1, -1, -1, rootName, (char*)rootName, NULL };
DIAG_ON_CAST_AWAY_CONST
return new ExpertPacketItem(root_expert, NULL, NULL);
@@ -355,8 +355,8 @@ int ExpertInfoModel::columnCount(const QModelIndex&) const
void ExpertInfoModel::addExpertInfo(const struct expert_info_s& expert_info)
{
- QString groupKey = ExpertPacketItem::groupKey(FALSE, expert_info.severity, expert_info.group, QString(expert_info.protocol), expert_info.hf_index);
- QString summaryKey = ExpertPacketItem::groupKey(TRUE, expert_info.severity, expert_info.group, QString(expert_info.protocol), expert_info.hf_index);
+ QString groupKey = ExpertPacketItem::groupKey(false, expert_info.severity, expert_info.group, QString(expert_info.protocol), expert_info.hf_index);
+ QString summaryKey = ExpertPacketItem::groupKey(true, expert_info.severity, expert_info.group, QString(expert_info.protocol), expert_info.hf_index);
ExpertPacketItem* expert_root = root_->child(groupKey);
if (expert_root == NULL) {
diff --git a/ui/qt/models/export_objects_model.cpp b/ui/qt/models/export_objects_model.cpp
index 3cf9ec63a9..f79edd398a 100644
--- a/ui/qt/models/export_objects_model.cpp
+++ b/ui/qt/models/export_objects_model.cpp
@@ -176,7 +176,7 @@ void ExportObjectModel::saveAllEntries(QString path)
if (entry == NULL)
continue;
- guint count = 0;
+ unsigned count = 0;
QString filename;
do {
@@ -196,7 +196,7 @@ void ExportObjectModel::saveAllEntries(QString path)
EXPORT_OBJECT_MAXFILELEN, count);
}
filename = QString::fromUtf8(safe_filename->str);
- g_string_free(safe_filename, TRUE);
+ g_string_free(safe_filename, true);
} while (save_dir.exists(filename) && ++count < prefs.gui_max_export_objects);
write_file_binary_mode(qUtf8Printable(save_dir.filePath(filename)),
entry->payload_data, entry->payload_len);
diff --git a/ui/qt/models/fileset_entry_model.h b/ui/qt/models/fileset_entry_model.h
index aa812b0cf7..40e6796f4e 100644
--- a/ui/qt/models/fileset_entry_model.h
+++ b/ui/qt/models/fileset_entry_model.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <fileset.h>
#include <QAbstractItemModel>
diff --git a/ui/qt/models/filter_list_model.cpp b/ui/qt/models/filter_list_model.cpp
index 4116246d56..c257d6af32 100644
--- a/ui/qt/models/filter_list_model.cpp
+++ b/ui/qt/models/filter_list_model.cpp
@@ -8,8 +8,6 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
-#include <glib.h>
-
#include <wsutil/filesystem.h>
#include <ui/qt/utils/qt_ui_utils.h>
@@ -66,7 +64,7 @@ void FilterListModel::reload()
}
/* Try personal config file first */
- QString fileName = gchar_free_to_qstring(get_persconffile_path(cfile, TRUE));
+ QString fileName = gchar_free_to_qstring(get_persconffile_path(cfile, true));
if (fileName.length() <= 0 || ! QFileInfo::exists(fileName))
fileName = gchar_free_to_qstring(get_datafile_path(cfile));
if (fileName.length() <= 0 || ! QFileInfo::exists(fileName))
diff --git a/ui/qt/models/interface_sort_filter_model.cpp b/ui/qt/models/interface_sort_filter_model.cpp
index 6e511151ad..f5d62074b2 100644
--- a/ui/qt/models/interface_sort_filter_model.cpp
+++ b/ui/qt/models/interface_sort_filter_model.cpp
@@ -12,8 +12,6 @@
#include <ui/qt/models/interface_tree_cache_model.h>
#include <ui/qt/models/interface_sort_filter_model.h>
-#include <glib.h>
-
#include <epan/prefs.h>
#include <ui/preference_utils.h>
#include <ui/qt/utils/qt_ui_utils.h>
diff --git a/ui/qt/models/interface_sort_filter_model.h b/ui/qt/models/interface_sort_filter_model.h
index 5bf69d9d52..e3609a81e0 100644
--- a/ui/qt/models/interface_sort_filter_model.h
+++ b/ui/qt/models/interface_sort_filter_model.h
@@ -16,8 +16,6 @@
#include <ui/qt/models/interface_tree_model.h>
-#include <glib.h>
-
#include <QSortFilterProxyModel>
class InterfaceSortFilterModel : public QSortFilterProxyModel
diff --git a/ui/qt/models/interface_tree_model.cpp b/ui/qt/models/interface_tree_model.cpp
index f3c8f98be5..696937a204 100644
--- a/ui/qt/models/interface_tree_model.cpp
+++ b/ui/qt/models/interface_tree_model.cpp
@@ -370,7 +370,7 @@ void InterfaceTreeModel::interfaceListChanged()
QVariant InterfaceTreeModel::toolTipForInterface(int idx) const
{
#ifdef HAVE_LIBPCAP
- if (! global_capture_opts.all_ifaces || global_capture_opts.all_ifaces->len <= (guint) idx)
+ if (! global_capture_opts.all_ifaces || global_capture_opts.all_ifaces->len <= (unsigned) idx)
return QVariant();
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx);
@@ -434,7 +434,7 @@ void InterfaceTreeModel::stopStatistic()
void InterfaceTreeModel::updateStatistic(unsigned int idx)
{
#ifdef HAVE_LIBPCAP
- if (! global_capture_opts.all_ifaces || global_capture_opts.all_ifaces->len <= (guint) idx)
+ if (! global_capture_opts.all_ifaces || global_capture_opts.all_ifaces->len <= (unsigned) idx)
return;
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, idx);
@@ -540,12 +540,12 @@ bool InterfaceTreeModel::updateSelectedDevices(QItemSelection sourceSelection)
{
if (! device->selected)
selectionHasChanged = true;
- device->selected = TRUE;
+ device->selected = true;
global_capture_opts.num_selected++;
} else {
if (device->selected)
selectionHasChanged = true;
- device->selected = FALSE;
+ device->selected = false;
}
}
#else
diff --git a/ui/qt/models/packet_list_model.cpp b/ui/qt/models/packet_list_model.cpp
index a6eba80d4a..9949cde144 100644
--- a/ui/qt/models/packet_list_model.cpp
+++ b/ui/qt/models/packet_list_model.cpp
@@ -8,7 +8,6 @@
*/
#include <algorithm>
-#include <glib.h>
#include <cmath>
#include <stdexcept>
@@ -55,7 +54,7 @@ class SortAbort : public std::runtime_error
static PacketListModel * glbl_plist_model = Q_NULLPTR;
static const int reserved_packets_ = 100000;
-guint
+unsigned
packet_list_append(column_info *, frame_data *fdata)
{
if (!glbl_plist_model)
@@ -143,7 +142,7 @@ int PacketListModel::packetNumberToRow(int packet_num) const
return number_to_row_.value(packet_num) - 1;
}
-guint PacketListModel::recreateVisibleRows()
+unsigned PacketListModel::recreateVisibleRows()
{
beginResetModel();
visible_rows_.resize(0);
@@ -155,7 +154,7 @@ guint PacketListModel::recreateVisibleRows()
if (fdata->passed_dfilter || fdata->ref_time) {
visible_rows_ << record;
- if (static_cast<guint32>(number_to_row_.size()) <= fdata->num) {
+ if (static_cast<uint32_t>(number_to_row_.size()) <= fdata->num) {
number_to_row_.resize(fdata->num + 10000);
}
number_to_row_[fdata->num] = static_cast<int>(visible_rows_.count());
@@ -166,7 +165,7 @@ guint PacketListModel::recreateVisibleRows()
endInsertRows();
}
idle_dissection_row_ = 0;
- return static_cast<guint>(visible_rows_.count());
+ return static_cast<unsigned>(visible_rows_.count());
}
void PacketListModel::clear() {
@@ -186,26 +185,74 @@ void PacketListModel::clear() {
void PacketListModel::invalidateAllColumnStrings()
{
+ // https://bugreports.qt.io/browse/QTBUG-58580
+ // https://bugreports.qt.io/browse/QTBUG-124173
+ // https://codereview.qt-project.org/c/qt/qtbase/+/285280
+ //
+ // In Qt 6, QAbstractItemView::dataChanged determines how much of the
+ // viewport rectangle is covered by the changed indices and only updates
+ // that much. Unfortunately, if the number of indices is very large,
+ // computing the union of the intersecting rectangle takes much longer
+ // than unconditionally updating the entire viewport. It increases linearly
+ // with the total number of packets in the list, unlike updating the
+ // viewport, which scales with the size of the viewport but is unaffected
+ // by undisplayed packets.
+ //
+ // In particular, if the data for all of the model is invalidated, we
+ // know we want to update the entire viewport and very much do not
+ // want to waste time calculating the affected area. (This can take
+ // 1 s with 1.4 M packets, 9 s with 12 M packets.)
+ //
+ // Issuing layoutAboutToBeChanged() and layoutChanged() causes the
+ // QTreeView to clear all the information for each of the view items,
+ // but without clearing the current and selected items (unlike
+ // [begin|end]ResetModel.)
+ //
+ // Theoretically this is less efficient because dataChanged() has a list
+ // of what roles changed and the other signals do not; in practice,
+ // neither QTreeView::dataChanged nor QAbstractItemView::dataChanged
+ // actually use the roles parameter, and just reset everything.
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
PacketListRecord::invalidateAllRecords();
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::DisplayRole);
+#endif
}
void PacketListModel::resetColumns()
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
if (cap_file_) {
PacketListRecord::resetColumns(&cap_file_->cinfo);
}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
+#endif
emit headerDataChanged(Qt::Horizontal, 0, columnCount() - 1);
}
void PacketListModel::resetColorized()
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
PacketListRecord::resetColorization();
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::BackgroundRole << Qt::ForegroundRole);
+#endif
}
void PacketListModel::toggleFrameMark(const QModelIndexList &indeces)
@@ -237,8 +284,11 @@ void PacketListModel::toggleFrameMark(const QModelIndexList &indeces)
}
}
-void PacketListModel::setDisplayedFrameMark(gboolean set)
+void PacketListModel::setDisplayedFrameMark(bool set)
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
foreach (PacketListRecord *record, visible_rows_) {
if (set) {
cf_mark_frame(cap_file_, record->frameData());
@@ -246,8 +296,12 @@ void PacketListModel::setDisplayedFrameMark(gboolean set)
cf_unmark_frame(cap_file_, record->frameData());
}
}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::BackgroundRole << Qt::ForegroundRole);
+#endif
}
void PacketListModel::toggleFrameIgnore(const QModelIndexList &indeces)
@@ -279,8 +333,11 @@ void PacketListModel::toggleFrameIgnore(const QModelIndexList &indeces)
}
}
-void PacketListModel::setDisplayedFrameIgnore(gboolean set)
+void PacketListModel::setDisplayedFrameIgnore(bool set)
{
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
foreach (PacketListRecord *record, visible_rows_) {
if (set) {
cf_ignore_frame(cap_file_, record->frameData());
@@ -288,8 +345,12 @@ void PacketListModel::setDisplayedFrameIgnore(gboolean set)
cf_unignore_frame(cap_file_, record->frameData());
}
}
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1),
QVector<int>() << Qt::BackgroundRole << Qt::ForegroundRole << Qt::DisplayRole);
+#endif
}
void PacketListModel::toggleFrameRefTime(const QModelIndex &rt_index)
@@ -302,6 +363,9 @@ void PacketListModel::toggleFrameRefTime(const QModelIndex &rt_index)
frame_data *fdata = record->frameData();
if (!fdata) return;
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutAboutToBeChanged();
+#endif
if (fdata->ref_time) {
fdata->ref_time=0;
cap_file_->ref_time_count--;
@@ -332,7 +396,11 @@ void PacketListModel::unsetAllFrameRefTime()
cap_file_->ref_time_count = 0;
cf_reftime_packets(cap_file_);
PacketListRecord::resetColumns(&cap_file_->cinfo);
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ emit layoutChanged();
+#else
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
+#endif
}
void PacketListModel::addFrameComment(const QModelIndexList &indices, const QByteArray &comment)
@@ -378,7 +446,7 @@ void PacketListModel::addFrameComment(const QModelIndexList &indices, const QByt
}
}
-void PacketListModel::setFrameComment(const QModelIndex &index, const QByteArray &comment, guint c_number)
+void PacketListModel::setFrameComment(const QModelIndex &index, const QByteArray &comment, unsigned c_number)
{
int sectionMax = columnCount() - 1;
frame_data *fdata;
@@ -423,10 +491,10 @@ void PacketListModel::deleteFrameComments(const QModelIndexList &indices)
fdata = record->frameData();
wtap_block_t pkt_block = cf_get_packet_block(cap_file_, fdata);
- guint n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
+ unsigned n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
if (n_comments) {
- for (guint i = 0; i < n_comments; i++) {
+ for (unsigned i = 0; i < n_comments; i++) {
wtap_block_remove_nth_option_instance(pkt_block, OPT_COMMENT, 0);
}
if (!cf_set_modified_block(cap_file_, fdata, pkt_block)) {
@@ -453,10 +521,10 @@ void PacketListModel::deleteAllFrameComments()
foreach (PacketListRecord *record, physical_rows_) {
frame_data *fdata = record->frameData();
wtap_block_t pkt_block = cf_get_packet_block(cap_file_, fdata);
- guint n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
+ unsigned n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
if (n_comments) {
- for (guint i = 0; i < n_comments; i++) {
+ for (unsigned i = 0; i < n_comments; i++) {
wtap_block_remove_nth_option_instance(pkt_block, OPT_COMMENT, 0);
}
cf_set_modified_block(cap_file_, fdata, pkt_block);
@@ -488,7 +556,7 @@ int PacketListModel::sort_column_is_numeric_;
int PacketListModel::text_sort_column_;
Qt::SortOrder PacketListModel::sort_order_;
capture_file *PacketListModel::sort_cap_file_;
-gboolean PacketListModel::stop_flag_;
+bool PacketListModel::stop_flag_;
ProgressFrame *PacketListModel::progress_frame_;
double PacketListModel::comps_;
double PacketListModel::exp_comps_;
@@ -510,7 +578,7 @@ void PacketListModel::sort(int column, Qt::SortOrder order)
QString col_title = get_column_title(column);
- if (text_sort_column_ >= 0 && (guint)visible_rows_.count() > prefs.gui_packet_list_cached_rows_max) {
+ if (text_sort_column_ >= 0 && (unsigned)visible_rows_.count() > prefs.gui_packet_list_cached_rows_max) {
/* Column not based on frame data but by column text that requires
* dissection, so to sort in a reasonable amount of time the column
* text needs to be cached.
@@ -545,7 +613,7 @@ void PacketListModel::sort(int column, Qt::SortOrder order)
*/
return;
}
- sort_cap_file_->read_lock = TRUE;
+ sort_cap_file_->read_lock = true;
QString busy_msg;
if (!col_title.isEmpty()) {
@@ -553,7 +621,7 @@ void PacketListModel::sort(int column, Qt::SortOrder order)
} else {
busy_msg = tr("Sorting …");
}
- stop_flag_ = FALSE;
+ stop_flag_ = false;
comps_ = 0;
/* XXX: The expected number of comparisons is O(N log N), but this could
* be a pretty significant overestimate of the amount of time it takes,
@@ -603,7 +671,7 @@ void PacketListModel::sort(int column, Qt::SortOrder order)
disconnect(progress_frame_, &ProgressFrame::stopLoading,
this, &PacketListModel::stopSorting);
}
- sort_cap_file_->read_lock = FALSE;
+ sort_cap_file_->read_lock = false;
if (cap_file_->current_frame) {
emit goToPacket(cap_file_->current_frame->num);
@@ -612,7 +680,7 @@ void PacketListModel::sort(int column, Qt::SortOrder order)
void PacketListModel::stopSorting()
{
- stop_flag_ = TRUE;
+ stop_flag_ = true;
}
bool PacketListModel::isNumericColumn(int column)
@@ -654,9 +722,9 @@ bool PacketListModel::isNumericColumn(int column)
return false;
}
- guint num_fields = g_slist_length(sort_cap_file_->cinfo.columns[column].col_custom_fields_ids);
+ unsigned num_fields = g_slist_length(sort_cap_file_->cinfo.columns[column].col_custom_fields_ids);
col_custom_t *col_custom;
- for (guint i = 0; i < num_fields; i++) {
+ for (unsigned i = 0; i < num_fields; i++) {
col_custom = (col_custom_t *) g_slist_nth_data(sort_cap_file_->cinfo.columns[column].col_custom_fields_ids, i);
if (col_custom->field_id == 0) {
/* XXX - We need some way to check the compiled dfilter's expected
@@ -767,7 +835,7 @@ double PacketListModel::parseNumericColumn(const QString &val, bool *ok)
{
QByteArray ba = val.toUtf8();
const char *strval = ba.constData();
- gchar *end = NULL;
+ char *end = NULL;
double num = g_ascii_strtod(strval, &end);
*ok = strval != end;
return num;
@@ -958,7 +1026,7 @@ void PacketListModel::dissectIdle(bool reset)
// XXX Pass in cinfo from packet_list_append so that we can fill in
// line counts?
-gint PacketListModel::appendPacket(frame_data *fdata)
+int PacketListModel::appendPacket(frame_data *fdata)
{
PacketListRecord *record = new PacketListRecord(fdata);
qsizetype pos = -1;
@@ -981,17 +1049,19 @@ gint PacketListModel::appendPacket(frame_data *fdata)
pos = static_cast<int>( visible_rows_.count() + new_visible_rows_.count() ) - 1;
}
- return static_cast<gint>(pos);
+ emit packetAppended(cap_file_, fdata, physical_rows_.size() - 1);
+
+ return static_cast<int>(pos);
}
-frame_data *PacketListModel::getRowFdata(QModelIndex idx)
+frame_data *PacketListModel::getRowFdata(QModelIndex idx) const
{
if (!idx.isValid())
return Q_NULLPTR;
return getRowFdata(idx.row());
}
-frame_data *PacketListModel::getRowFdata(int row) {
+frame_data *PacketListModel::getRowFdata(int row) const {
if (row < 0 || row >= visible_rows_.count())
return NULL;
PacketListRecord *record = visible_rows_[row];
diff --git a/ui/qt/models/packet_list_model.h b/ui/qt/models/packet_list_model.h
index 807d884743..c4a4acf490 100644
--- a/ui/qt/models/packet_list_model.h
+++ b/ui/qt/models/packet_list_model.h
@@ -14,8 +14,6 @@
#include <stdio.h>
-#include <glib.h>
-
#include <epan/packet.h>
#include <QAbstractItemModel>
@@ -46,7 +44,7 @@ public:
const QModelIndex & = QModelIndex()) const;
QModelIndex parent(const QModelIndex &) const;
int packetNumberToRow(int packet_num) const;
- guint recreateVisibleRows();
+ unsigned recreateVisibleRows();
void clear();
int rowCount(const QModelIndex &parent = QModelIndex()) const;
@@ -54,9 +52,9 @@ public:
QVariant data(const QModelIndex &d_index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
- gint appendPacket(frame_data *fdata);
- frame_data *getRowFdata(QModelIndex idx);
- frame_data *getRowFdata(int row);
+ int appendPacket(frame_data *fdata);
+ frame_data *getRowFdata(QModelIndex idx) const;
+ frame_data *getRowFdata(int row) const;
void ensureRowColorized(int row);
int visibleIndexOf(frame_data *fdata) const;
/**
@@ -69,19 +67,20 @@ public:
void resetColumns();
void resetColorized();
void toggleFrameMark(const QModelIndexList &indeces);
- void setDisplayedFrameMark(gboolean set);
+ void setDisplayedFrameMark(bool set);
void toggleFrameIgnore(const QModelIndexList &indeces);
- void setDisplayedFrameIgnore(gboolean set);
+ void setDisplayedFrameIgnore(bool set);
void toggleFrameRefTime(const QModelIndex &rt_index);
void unsetAllFrameRefTime();
void addFrameComment(const QModelIndexList &indices, const QByteArray &comment);
- void setFrameComment(const QModelIndex &index, const QByteArray &comment, guint c_number);
+ void setFrameComment(const QModelIndex &index, const QByteArray &comment, unsigned c_number);
void deleteFrameComments(const QModelIndexList &indices);
void deleteAllFrameComments();
void setMaximumRowHeight(int height);
signals:
+ void packetAppended(capture_file *cap_file, frame_data *fdata, qsizetype row);
void goToPacket(int);
void maxLineCountChanged(const QModelIndex &ih_index) const;
void itemHeightChanged(const QModelIndex &ih_index);
@@ -113,7 +112,7 @@ private:
static bool recordLessThan(PacketListRecord *r1, PacketListRecord *r2);
static double parseNumericColumn(const QString &val, bool *ok);
- static gboolean stop_flag_;
+ static bool stop_flag_;
static ProgressFrame *progress_frame_;
static double exp_comps_;
static double comps_;
diff --git a/ui/qt/models/packet_list_record.cpp b/ui/qt/models/packet_list_record.cpp
index 9c2c66d134..3cba64d5c7 100644
--- a/ui/qt/models/packet_list_record.cpp
+++ b/ui/qt/models/packet_list_record.cpp
@@ -24,7 +24,7 @@
#include <QStringList>
-QCache<guint32, QStringList> PacketListRecord::col_text_cache_(500);
+QCache<uint32_t, QStringList> PacketListRecord::col_text_cache_(500);
QMap<int, int> PacketListRecord::cinfo_column_;
unsigned PacketListRecord::rows_color_ver_ = 1;
@@ -112,7 +112,7 @@ void PacketListRecord::dissect(capture_file *cap_file, bool dissect_columns, boo
// packet_list_store.c:packet_list_dissect_and_cache_record
epan_dissect_t edt;
column_info *cinfo = NULL;
- gboolean create_proto_tree;
+ bool create_proto_tree;
wtap_rec rec; /* Record metadata */
Buffer buf; /* Record data */
@@ -144,7 +144,7 @@ void PacketListRecord::dissect(capture_file *cap_file, bool dissect_columns, boo
* error message.
*/
if (dissect_columns) {
- col_fill_in_error(cinfo, fdata_, FALSE, FALSE /* fill_fd_columns */);
+ col_fill_in_error(cinfo, fdata_, false, false /* fill_fd_columns */);
cacheColumnStrings(cinfo);
}
@@ -175,7 +175,7 @@ void PacketListRecord::dissect(capture_file *cap_file, bool dissect_columns, boo
epan_dissect_init(&edt, cap_file->epan,
create_proto_tree,
- FALSE /* proto_tree_visible */);
+ false /* proto_tree_visible */);
/* Re-color when the coloring rules are changed via the UI. */
if (dissect_color) {
@@ -195,7 +195,7 @@ void PacketListRecord::dissect(capture_file *cap_file, bool dissect_columns, boo
if (dissect_columns) {
/* "Stringify" non frame_data vals */
- epan_dissect_fill_in_columns(&edt, FALSE, FALSE /* fill_fd_columns */);
+ epan_dissect_fill_in_columns(&edt, false, false /* fill_fd_columns */);
cacheColumnStrings(cinfo);
}
@@ -204,7 +204,8 @@ void PacketListRecord::dissect(capture_file *cap_file, bool dissect_columns, boo
color_ver_ = rows_color_ver_;
}
- struct conversation * conv = find_conversation_pinfo(&edt.pi, 0);
+ struct conversation * conv = find_conversation_pinfo_ro(&edt.pi, 0);
+
conv_index_ = ! conv ? 0 : conv->conv_index;
epan_dissect_cleanup(&edt);
@@ -214,7 +215,7 @@ void PacketListRecord::dissect(capture_file *cap_file, bool dissect_columns, boo
void PacketListRecord::cacheColumnStrings(column_info *cinfo)
{
- // packet_list_store.c:packet_list_change_record(PacketList *packet_list, PacketListRecord *record, gint col, column_info *cinfo)
+ // packet_list_store.c:packet_list_change_record(PacketList *packet_list, PacketListRecord *record, int col, column_info *cinfo)
if (!cinfo) {
return;
}
@@ -230,7 +231,7 @@ void PacketListRecord::cacheColumnStrings(column_info *cinfo)
QString col_str;
int text_col = cinfo_column_.value(column, -1);
if (text_col < 0) {
- col_fill_in_frame_data(fdata_, cinfo, column, FALSE);
+ col_fill_in_frame_data(fdata_, cinfo, column, false);
}
col_str = QString(get_column_text(cinfo, column));
diff --git a/ui/qt/models/packet_list_record.h b/ui/qt/models/packet_list_record.h
index 47aa5621d1..7bb582fa9b 100644
--- a/ui/qt/models/packet_list_record.h
+++ b/ui/qt/models/packet_list_record.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include <epan/column.h>
@@ -60,7 +58,7 @@ public:
private:
/** The column text for some columns */
- static QCache<guint32, QStringList> col_text_cache_;
+ static QCache<uint32_t, QStringList> col_text_cache_;
frame_data *fdata_;
int lines_;
diff --git a/ui/qt/models/pref_delegate.cpp b/ui/qt/models/pref_delegate.cpp
index e33bb13f23..313c17dc3a 100644
--- a/ui/qt/models/pref_delegate.cpp
+++ b/ui/qt/models/pref_delegate.cpp
@@ -66,7 +66,7 @@ void AdvancedPrefDelegate::setEditorData(QWidget *editor, const QModelIndex &ind
return;
}
- Q_ASSERT(FALSE);
+ Q_ASSERT(false);
}
void AdvancedPrefDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
@@ -81,5 +81,5 @@ void AdvancedPrefDelegate::setModelData(QWidget *editor, QAbstractItemModel *mod
return;
}
- Q_ASSERT(FALSE);
+ Q_ASSERT(false);
}
diff --git a/ui/qt/models/pref_models.cpp b/ui/qt/models/pref_models.cpp
index 883114be78..3f6081a1e0 100644
--- a/ui/qt/models/pref_models.cpp
+++ b/ui/qt/models/pref_models.cpp
@@ -23,10 +23,10 @@
#include <QApplication>
// XXX Should we move this to ui/preference_utils?
-static GHashTable * pref_ptr_to_pref_ = NULL;
+static GHashTable * pref_ptr_to_pref_;
pref_t *prefFromPrefPtr(void *pref_ptr)
{
- return (pref_t *)g_hash_table_lookup(pref_ptr_to_pref_, (gpointer) pref_ptr);
+ return (pref_t *)g_hash_table_lookup(pref_ptr_to_pref_, (void *) pref_ptr);
}
static void prefInsertPrefPtr(void * pref_ptr, pref_t * pref)
@@ -34,8 +34,8 @@ static void prefInsertPrefPtr(void * pref_ptr, pref_t * pref)
if (! pref_ptr_to_pref_)
pref_ptr_to_pref_ = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, NULL);
- gpointer key = (gpointer) pref_ptr;
- gpointer val = (gpointer) pref;
+ void *key = (void *) pref_ptr;
+ void *val = (void *) pref;
/* Already existing entries will be ignored */
if ((void *)g_hash_table_lookup(pref_ptr_to_pref_, key) == NULL)
@@ -232,8 +232,8 @@ QVariant PrefsModel::data(const QModelIndex &index, int role) const
return QVariant();
}
-static guint
-fill_prefs(module_t *module, gpointer root_ptr)
+static unsigned
+fill_prefs(module_t *module, void *root_ptr)
{
PrefsItem* root_item = static_cast<PrefsItem*>(root_ptr);
@@ -275,7 +275,7 @@ fill_prefs(module_t *module, gpointer root_ptr)
void PrefsModel::populate()
{
- prefs_modules_foreach_submodules(NULL, fill_prefs, (gpointer)root_);
+ prefs_modules_foreach_submodules(NULL, fill_prefs, (void *)root_);
//Add the "specially handled" preferences
PrefsItem *appearance_item, *appearance_subitem, *special_item;
@@ -473,7 +473,7 @@ bool AdvancedPrefsModel::setData(const QModelIndex &dataindex, const QVariant &v
case PREF_UINT:
{
bool ok;
- guint new_val = value.toString().toUInt(&ok, prefs_get_uint_base(item->getPref()));
+ unsigned new_val = value.toString().toUInt(&ok, prefs_get_uint_base(item->getPref()));
if (ok)
prefs_set_uint_value(item->getPref(), new_val, pref_stashed);
diff --git a/ui/qt/models/profile_model.cpp b/ui/qt/models/profile_model.cpp
index 206ef38930..e1a130b068 100644
--- a/ui/qt/models/profile_model.cpp
+++ b/ui/qt/models/profile_model.cpp
@@ -11,12 +11,13 @@
#include <errno.h>
-#include "glib.h"
#include "ui/profile.h"
#include "ui/recent.h"
-#include "wsutil/filesystem.h"
#include "epan/prefs.h"
+#include "wsutil/filesystem.h"
+#include "wsutil/utf8_entities.h"
+
#include <ui/qt/models/profile_model.h>
#include <ui/qt/utils/color_utils.h>
@@ -276,6 +277,14 @@ QVariant ProfileModel::dataDisplay(const QModelIndex &index) const
return tr("Global");
else
return tr("Personal");
+ case COL_AUTO_SWITCH_FILTER:
+ {
+ if (prof->is_global) {
+ return QString(UTF8_EM_DASH);
+ }
+ return (QString(prof->auto_switch_filter));
+ }
+
default:
break;
}
@@ -438,6 +447,23 @@ QVariant ProfileModel::dataBackgroundRole(const QModelIndex &index) const
return QVariant();
}
+QVariant ProfileModel::dataForegroundRole(const QModelIndex &index) const
+{
+ if (! index.isValid() || profiles_.count() <= index.row())
+ return QVariant();
+
+ profile_def * prof = guard(index.row());
+ if (! prof) {
+ return QVariant();
+ }
+
+ if (prof->is_global && index.column() == COL_AUTO_SWITCH_FILTER) {
+ return ColorUtils::disabledForeground();
+ }
+
+ return QVariant();
+}
+
QVariant ProfileModel::dataToolTipRole(const QModelIndex &idx) const
{
if (! idx.isValid() || profiles_.count() <= idx.row())
@@ -492,7 +518,7 @@ QVariant ProfileModel::dataPath(const QModelIndex &index) const
{
case PROF_STAT_DEFAULT:
if (!reset_default_)
- return gchar_free_to_qstring(get_persconffile_path("", FALSE));
+ return gchar_free_to_qstring(get_persconffile_path("", false));
else
return tr("Resetting to default");
case PROF_STAT_EXISTS:
@@ -537,7 +563,7 @@ QVariant ProfileModel::dataPath(const QModelIndex &index) const
QString appendix;
/* A global profile is neither deleted or removed, only system provided is allowed as appendix */
- if (profile_exists(prof->reference, TRUE) && prof->from_global)
+ if (profile_exists(prof->reference, true) && prof->from_global)
appendix = tr("system provided");
/* A default model as reference can neither be deleted or renamed, so skip if the reference was one */
else if (! index.data(ProfileModel::DATA_IS_DEFAULT).toBool())
@@ -588,6 +614,8 @@ QVariant ProfileModel::data(const QModelIndex &index, int role) const
return dataFontRole(index);
case Qt::BackgroundRole:
return dataBackgroundRole(index);
+ case Qt::ForegroundRole:
+ return dataForegroundRole(index);
case Qt::ToolTipRole:
return dataToolTipRole(index);
case ProfileModel::DATA_STATUS:
@@ -612,10 +640,6 @@ QVariant ProfileModel::data(const QModelIndex &index, int role) const
}
case ProfileModel::DATA_PATH:
return dataPath(index);
- case ProfileModel::DATA_INDEX_VALUE_IS_URL:
- if (index.column() <= ProfileModel::COL_TYPE)
- return QVariant::fromValue(false);
- return QVariant::fromValue(true);
case ProfileModel::DATA_PATH_IS_NOT_DESCRIPTION:
if (prof->status == PROF_STAT_NEW || prof->status == PROF_STAT_COPY
|| (prof->status == PROF_STAT_DEFAULT && reset_default_)
@@ -641,6 +665,8 @@ QVariant ProfileModel::headerData(int section, Qt::Orientation orientation, int
return tr("Profile");
case COL_TYPE:
return tr("Type");
+ case COL_AUTO_SWITCH_FILTER:
+ return tr("Auto Switch Filter");
default:
break;
}
@@ -654,11 +680,18 @@ Qt::ItemFlags ProfileModel::flags(const QModelIndex &index) const
Qt::ItemFlags fl = QAbstractTableModel::flags(index);
profile_def * prof = guard(index);
- if (! prof)
+ if (! prof) {
return fl;
+ }
- if (index.column() == ProfileModel::COL_NAME && prof->status != PROF_STAT_DEFAULT && ! prof->is_global)
+ if (prof->is_global) {
+ return fl;
+ }
+
+ if ((index.column() == ProfileModel::COL_NAME && prof->status != PROF_STAT_DEFAULT)
+ || (index.column() == ProfileModel::COL_AUTO_SWITCH_FILTER)) {
fl |= Qt::ItemIsEditable;
+ }
return fl;
}
@@ -722,7 +755,7 @@ QModelIndex ProfileModel::addNewProfile(QString name)
cnt++;
}
- add_to_profile_list(newName.toUtf8().constData(), newName.toUtf8().constData(), PROF_STAT_NEW, FALSE, FALSE, FALSE);
+ add_to_profile_list(newName.toUtf8().constData(), newName.toUtf8().constData(), PROF_STAT_NEW, false, false, false);
loadProfiles();
return index(findByName(newName), COL_NAME);
@@ -794,7 +827,7 @@ QModelIndex ProfileModel::duplicateEntry(QModelIndex idx, int new_status)
new_status = PROF_STAT_NEW;
/* add element */
- add_to_profile_list(new_name.toUtf8().constData(), parent.toUtf8().constData(), new_status, FALSE, prof->from_global ? prof->from_global : prof->is_global, FALSE);
+ add_to_profile_list(new_name.toUtf8().constData(), parent.toUtf8().constData(), new_status, false, prof->from_global ? prof->from_global : prof->is_global, false);
/* reload profile list in model */
loadProfiles();
@@ -901,27 +934,41 @@ bool ProfileModel::setData(const QModelIndex &idx, const QVariant &value, int ro
{
last_set_row_ = -1;
- if (role != Qt::EditRole || ! value.isValid() || value.toString().isEmpty())
+ if (role != Qt::EditRole || !value.isValid()) {
return false;
+ }
+
+ if (idx.column() == COL_NAME && value.toString().isEmpty()) {
+ return false;
+ }
QString newValue = value.toString();
profile_def * prof = guard(idx);
- if (! prof || prof->status == PROF_STAT_DEFAULT)
+
+ if (!prof) {
return false;
+ }
last_set_row_ = idx.row();
- QString current(prof->name);
- if (current.compare(newValue) != 0)
- {
- g_free(prof->name);
- prof->name = qstring_strdup(newValue);
+ if (idx.column() == COL_NAME && prof->status != PROF_STAT_DEFAULT) {
+ QString current(prof->name);
+ if (current.compare(newValue) != 0)
+ {
+ g_free(prof->name);
+ prof->name = qstring_strdup(newValue);
- if (prof->reference && g_strcmp0(prof->name, prof->reference) == 0 && ! (prof->status == PROF_STAT_NEW || prof->status == PROF_STAT_COPY)) {
- prof->status = PROF_STAT_EXISTS;
- } else if (prof->status == PROF_STAT_EXISTS) {
- prof->status = PROF_STAT_CHANGED;
+ if (prof->reference && g_strcmp0(prof->name, prof->reference) == 0 && ! (prof->status == PROF_STAT_NEW || prof->status == PROF_STAT_COPY)) {
+ prof->status = PROF_STAT_EXISTS;
+ } else if (prof->status == PROF_STAT_EXISTS) {
+ prof->status = PROF_STAT_CHANGED;
+ }
+ emit itemChanged(idx);
}
+ } else if (idx.column() == COL_AUTO_SWITCH_FILTER) {
+ g_free(prof->auto_switch_filter);
+ prof->auto_switch_filter = qstring_strdup(newValue);
+ prof->prefs_changed = true;
emit itemChanged(idx);
}
@@ -1163,7 +1210,7 @@ int ProfileModel::importProfilesFromDir(QString dirname, int * skippedCnt, bool
if (success)
{
count++;
- add_to_profile_list(fentry.fileName().toUtf8().constData(), fentry.fileName().toUtf8().constData(), PROF_STAT_NEW, FALSE, FALSE, TRUE);
+ add_to_profile_list(fentry.fileName().toUtf8().constData(), fentry.fileName().toUtf8().constData(), PROF_STAT_NEW, false, false, true);
}
else if (! wasEmpty && QFile::exists(profilePath))
{
diff --git a/ui/qt/models/profile_model.h b/ui/qt/models/profile_model.h
index 16febd70cf..8b9aeb9cbd 100644
--- a/ui/qt/models/profile_model.h
+++ b/ui/qt/models/profile_model.h
@@ -11,7 +11,6 @@
#define PROFILE_MODEL_H
#include "config.h"
-#include "glib.h"
#include <ui/profile.h>
@@ -59,6 +58,7 @@ public:
enum {
COL_NAME,
COL_TYPE,
+ COL_AUTO_SWITCH_FILTER,
_LAST_ENTRY
} columns_;
@@ -69,7 +69,6 @@ public:
DATA_IS_SELECTED,
DATA_PATH,
DATA_PATH_IS_NOT_DESCRIPTION,
- DATA_INDEX_VALUE_IS_URL
} data_values_;
// QAbstractItemModel interface
@@ -150,6 +149,7 @@ private:
QVariant dataDisplay(const QModelIndex & idx) const;
QVariant dataFontRole(const QModelIndex & idx) const;
QVariant dataBackgroundRole(const QModelIndex & idx) const;
+ QVariant dataForegroundRole(const QModelIndex & idx) const;
QVariant dataToolTipRole(const QModelIndex & idx) const;
QVariant dataPath(const QModelIndex & idx) const;
diff --git a/ui/qt/models/proto_tree_model.cpp b/ui/qt/models/proto_tree_model.cpp
index 66d8489cbf..fe6f7f957e 100644
--- a/ui/qt/models/proto_tree_model.cpp
+++ b/ui/qt/models/proto_tree_model.cpp
@@ -189,7 +189,7 @@ struct find_hfid_ {
};
// NOLINTNEXTLINE(misc-no-recursion)
-bool ProtoTreeModel::foreachFindHfid(ProtoNode *node, gpointer find_hfid_ptr)
+bool ProtoTreeModel::foreachFindHfid(ProtoNode *node, void *find_hfid_ptr)
{
struct find_hfid_ *find_hfid = (struct find_hfid_ *) find_hfid_ptr;
if (PNODE_FINFO(node->protoNode()) && PNODE_FINFO(node->protoNode())->hfinfo->id == find_hfid->hfid) {
@@ -224,7 +224,7 @@ struct find_field_info_ {
};
// NOLINTNEXTLINE(misc-no-recursion)
-bool ProtoTreeModel::foreachFindField(ProtoNode *node, gpointer find_finfo_ptr)
+bool ProtoTreeModel::foreachFindField(ProtoNode *node, void *find_finfo_ptr)
{
struct find_field_info_ *find_finfo = (struct find_field_info_ *) find_finfo_ptr;
if (PNODE_FINFO(node->protoNode()) == find_finfo->fi) {
diff --git a/ui/qt/models/proto_tree_model.h b/ui/qt/models/proto_tree_model.h
index df7cbba872..12d08fc0cc 100644
--- a/ui/qt/models/proto_tree_model.h
+++ b/ui/qt/models/proto_tree_model.h
@@ -41,8 +41,8 @@ public:
private:
ProtoNode *root_node_;
- static bool foreachFindHfid(ProtoNode *node, gpointer find_hfid_ptr);
- static bool foreachFindField(ProtoNode *node, gpointer find_finfo_ptr);
+ static bool foreachFindHfid(ProtoNode *node, void *find_hfid_ptr);
+ static bool foreachFindField(ProtoNode *node, void *find_finfo_ptr);
};
#endif // PROTO_TREE_MODEL_H
diff --git a/ui/qt/models/related_packet_delegate.cpp b/ui/qt/models/related_packet_delegate.cpp
index 885160f4e4..bb001adce4 100644
--- a/ui/qt/models/related_packet_delegate.cpp
+++ b/ui/qt/models/related_packet_delegate.cpp
@@ -73,7 +73,7 @@ void RelatedPacketDelegate::paint(QPainter *painter, const QStyleOptionViewItem
option_vi.decorationSize.setWidth(em_w);
QStyledItemDelegate::paint(painter, option_vi, index);
- guint32 setup_frame = 0, last_frame = 0;
+ uint32_t setup_frame = 0, last_frame = 0;
if (conv_) {
setup_frame = (int) conv_->setup_frame;
last_frame = (int) conv_->last_frame;
@@ -339,7 +339,7 @@ void RelatedPacketDelegate::clear()
conv_ = NULL;
}
-void RelatedPacketDelegate::setCurrentFrame(guint32 current_frame)
+void RelatedPacketDelegate::setCurrentFrame(uint32_t current_frame)
{
current_frame_ = current_frame;
foreach (ft_framenum_type_t framenum_type, related_frames_) {
diff --git a/ui/qt/models/related_packet_delegate.h b/ui/qt/models/related_packet_delegate.h
index 927129a045..6825011910 100644
--- a/ui/qt/models/related_packet_delegate.h
+++ b/ui/qt/models/related_packet_delegate.h
@@ -26,7 +26,7 @@ class RelatedPacketDelegate : public QStyledItemDelegate
public:
RelatedPacketDelegate(QWidget *parent = 0);
void clear();
- void setCurrentFrame(guint32 current_frame);
+ void setCurrentFrame(uint32_t current_frame);
void setConversation(struct conversation *conv);
public slots:
@@ -41,7 +41,7 @@ protected:
private:
QHash<int, ft_framenum_type_t> related_frames_;
struct conversation *conv_;
- guint32 current_frame_;
+ uint32_t current_frame_;
void drawArrow(QPainter *painter, const QPoint tail, const QPoint head, int head_size) const;
void drawChevrons(QPainter *painter, const QPoint tail, const QPoint head, int head_size) const;
diff --git a/ui/qt/models/resolved_addresses_models.cpp b/ui/qt/models/resolved_addresses_models.cpp
index 4f4245b44f..d35d87b290 100644
--- a/ui/qt/models/resolved_addresses_models.cpp
+++ b/ui/qt/models/resolved_addresses_models.cpp
@@ -9,8 +9,6 @@
#include <ui/qt/models/resolved_addresses_models.h>
-#include <glib.h>
-
#include "file.h"
#include "epan/addr_resolv.h"
@@ -20,11 +18,11 @@ extern "C"
{
static void
-serv_port_hash_to_qstringlist(gpointer key, gpointer value, gpointer member_ptr)
+serv_port_hash_to_qstringlist(void *key, void *value, void *member_ptr)
{
PortsModel *model = static_cast<PortsModel *>(member_ptr);
serv_port_t *serv_port = (serv_port_t *)value;
- guint port = GPOINTER_TO_UINT(key);
+ unsigned port = GPOINTER_TO_UINT(key);
if (serv_port->tcp_name) {
QStringList entries;
@@ -61,7 +59,7 @@ serv_port_hash_to_qstringlist(gpointer key, gpointer value, gpointer member_ptr)
}
static void
-ipv4_hash_table_resolved_to_list(gpointer, gpointer value, gpointer sl_ptr)
+ipv4_hash_table_resolved_to_list(void *, void *value, void *sl_ptr)
{
QList<QStringList> *hosts = (QList<QStringList> *) sl_ptr;
hashipv4_t *ipv4_hash_table_entry = (hashipv4_t *) value;
@@ -72,7 +70,7 @@ ipv4_hash_table_resolved_to_list(gpointer, gpointer value, gpointer sl_ptr)
}
static void
-ipv6_hash_table_resolved_to_list(gpointer, gpointer value, gpointer sl_ptr)
+ipv6_hash_table_resolved_to_list(void *, void *value, void *sl_ptr)
{
QList<QStringList> *hosts = (QList<QStringList> *) sl_ptr;
hashipv6_t *ipv6_hash_table_entry = (hashipv6_t *) value;
@@ -83,7 +81,7 @@ ipv6_hash_table_resolved_to_list(gpointer, gpointer value, gpointer sl_ptr)
}
static void
-eth_hash_to_qstringlist(gpointer, gpointer value, gpointer sl_ptr)
+eth_hash_to_qstringlist(void *, void *value, void *sl_ptr)
{
QList<QStringList> *values = (QList<QStringList> *) sl_ptr;
hashether_t* tp = (hashether_t*)value;
@@ -94,11 +92,11 @@ eth_hash_to_qstringlist(gpointer, gpointer value, gpointer sl_ptr)
}
static void
-manuf_hash_to_qstringlist(gpointer key, gpointer value, gpointer sl_ptr)
+manuf_hash_to_qstringlist(void *key, void *value, void *sl_ptr)
{
QList<QStringList> *values = (QList<QStringList> *) sl_ptr;
hashmanuf_t *manuf = (hashmanuf_t*)value;
- guint eth_as_guint = GPOINTER_TO_UINT(key);
+ unsigned eth_as_guint = GPOINTER_TO_UINT(key);
if (get_hash_manuf_used(manuf)) {
QString entry = QString("%1:%2:%3")
@@ -111,11 +109,11 @@ manuf_hash_to_qstringlist(gpointer key, gpointer value, gpointer sl_ptr)
}
static void
-wka_hash_to_qstringlist(gpointer key, gpointer value, gpointer sl_ptr)
+wka_hash_to_qstringlist(void *key, void *value, void *sl_ptr)
{
QList<QStringList> *values = (QList<QStringList> *) sl_ptr;
hashwka_t *wkahash = (hashwka_t *)value;
- guint8 *eth_addr = (guint8*)key;
+ uint8_t *eth_addr = (uint8_t*)key;
if (get_hash_wka_used(wkahash)) {
QString entry = QString("%1:%2:%3:%4:%5:%6")
diff --git a/ui/qt/models/uat_delegate.h b/ui/qt/models/uat_delegate.h
index e57e533da9..f9cfa92d38 100644
--- a/ui/qt/models/uat_delegate.h
+++ b/ui/qt/models/uat_delegate.h
@@ -15,7 +15,6 @@
#define UAT_DELEGATE_H
#include <config.h>
-#include <glib.h>
#include <epan/uat-int.h>
#include <QStyledItemDelegate>
diff --git a/ui/qt/models/uat_model.cpp b/ui/qt/models/uat_model.cpp
index 0f2a1cca53..5c38f02be7 100644
--- a/ui/qt/models/uat_model.cpp
+++ b/ui/qt/models/uat_model.cpp
@@ -13,12 +13,22 @@
#include "uat_model.h"
#include <epan/to_str.h>
#include <ui/qt/utils/qt_ui_utils.h>
+#include <QFont>
#include <QBrush>
#include <QDebug>
+// XXX - The model accesses the uat_t raw data, but if the raw data
+// is changed outside the model, e.g. by another model on the same UAT
+// or by changing configuration profiles, record_errors and dirty_records
+// don't have the proper length, which leads to accessing an illegal list
+// index. The preference dialog and configuration profile dialogs are modal,
+// which reduces the chance of this, but the I/O Graphs using a UAT invites
+// issues.
+
UatModel::UatModel(QObject *parent, epan_uat *uat) :
QAbstractTableModel(parent),
- uat_(0)
+ uat_(0),
+ applying_(false)
{
loadUat(uat);
}
@@ -47,7 +57,14 @@ void UatModel::loadUat(epan_uat * uat)
void UatModel::reloadUat()
{
+ // Avoid unnecessarily resetting the model if we're just making
+ // what's on disk match what we have.
+ if (applying_)
+ return;
+
beginResetModel();
+ record_errors.clear();
+ dirty_records.clear();
loadUat(uat_);
endResetModel();
}
@@ -55,16 +72,22 @@ void UatModel::reloadUat()
bool UatModel::applyChanges(QString &error)
{
if (uat_->changed) {
- gchar *err = NULL;
+ char *err = NULL;
if (!uat_save(uat_, &err)) {
error = QString("Error while saving %1: %2").arg(uat_->name).arg(err);
g_free(err);
}
+ applying_ = true;
+ // XXX - Why does this need to call post_update_cb? post_update_cb
+ // is for when the uat_t is updated, e.g. after loading a file.
+ // Saving makes the information on disk match the table records in
+ // memory, but it shouldn't change the uat_t.
if (uat_->post_update_cb) {
uat_->post_update_cb();
}
+ applying_ = false;
return true;
}
@@ -77,7 +100,7 @@ bool UatModel::revertChanges(QString &error)
// to avoid calling post_update_cb. Calling uat_clear + uat_load is a lazy
// option and might fail (e.g. when the UAT file is removed).
if (uat_->changed) {
- gchar *err = NULL;
+ char *err = NULL;
uat_clear(uat_);
if (!uat_load(uat_, NULL, &err)) {
error = QString("Error while loading %1: %2").arg(uat_->name).arg(err);
@@ -115,13 +138,13 @@ QVariant UatModel::data(const QModelIndex &index, int role) const
uat_field_t *field = &uat_->fields[index.column()];
if (role == Qt::DisplayRole || role == Qt::EditRole) {
char *str = NULL;
- guint length = 0;
+ unsigned length = 0;
field->cb.tostr(rec, &str, &length, field->cbdata.tostr, field->fld_data);
switch (field->mode) {
case PT_TXTMOD_HEXBYTES:
{
- char* temp_str = bytes_to_str(NULL, (const guint8 *) str, length);
+ char* temp_str = bytes_to_str(NULL, (const uint8_t *) str, length);
g_free(str);
QString qstr(temp_str);
wmem_free(NULL, temp_str);
@@ -139,11 +162,14 @@ QVariant UatModel::data(const QModelIndex &index, int role) const
if ((role == Qt::CheckStateRole) && (field->mode == PT_TXTMOD_BOOL))
{
char *str = NULL;
- guint length = 0;
+ unsigned length = 0;
enum Qt::CheckState state = Qt::Unchecked;
field->cb.tostr(rec, &str, &length, field->cbdata.tostr, field->fld_data);
- if ((g_strcmp0(str, "TRUE") == 0) ||
- (g_strcmp0(str, "Enabled") == 0))
+ // "Enabled" is for backwards compatibility with pre-UAT IO Graphs:
+ // (Commit 5b3e3ee58748ac1fd9201d2d3facbed1b9b1e800)
+ if (str &&
+ ((g_ascii_strcasecmp(str, "true") == 0) ||
+ (g_strcmp0(str, "Enabled") == 0)))
state = Qt::Checked;
g_free(str);
@@ -164,9 +190,18 @@ QVariant UatModel::data(const QModelIndex &index, int role) const
return QVariant();
}
+ if (role == Qt::FontRole) {
+ if (!g_array_index(uat_->valid_data, bool, index.row())) {
+ QFont font;
+ font.setItalic(!font.italic());
+ return font;
+ }
+ return QVariant();
+ }
+
if ((role == Qt::DecorationRole) && (field->mode == PT_TXTMOD_COLOR)) {
char *str = NULL;
- guint length = 0;
+ unsigned length = 0;
field->cb.tostr(rec, &str, &length, field->cbdata.tostr, field->fld_data);
return QColor(gchar_free_to_qstring(str));
@@ -257,9 +292,9 @@ QModelIndex UatModel::appendEntry(QVariantList rowData)
data = rowData[col].toString();
} else {
if (rowData[col].toInt() == Qt::Checked) {
- data = QString("TRUE");
+ data = QString("true");
} else {
- data = QString("FALSE");
+ data = QString("false");
}
}
}
@@ -279,7 +314,7 @@ QModelIndex UatModel::appendEntry(QVariantList rowData)
// postponed until the row (in the view) is not selected anymore
checkRow(row);
dirty_records.insert(row, true);
- uat_->changed = TRUE;
+ uat_->changed = true;
emit endInsertRows();
@@ -314,9 +349,9 @@ bool UatModel::setData(const QModelIndex &index, const QVariant &value, int role
field->cb.set(rec, bytes.constData(), (unsigned) bytes.size(), field->cbdata.set, field->fld_data);
} else {
if (value.toInt() == Qt::Checked) {
- field->cb.set(rec, "TRUE", 4, field->cbdata.set, field->fld_data);
+ field->cb.set(rec, "true", 4, field->cbdata.set, field->fld_data);
} else {
- field->cb.set(rec, "FALSE", 5, field->cbdata.set, field->fld_data);
+ field->cb.set(rec, "false", 5, field->cbdata.set, field->fld_data);
}
}
@@ -346,7 +381,7 @@ bool UatModel::setData(const QModelIndex &index, const QVariant &value, int role
}
uat_update_record(uat_, rec, record_errors[row].isEmpty());
dirty_records[row] = true;
- uat_->changed = TRUE;
+ uat_->changed = true;
if (updated_cols.size() > updated_cols.count(index.column())) {
// The validation status for other columns were also affected by
@@ -386,7 +421,7 @@ bool UatModel::insertRows(int row, int count, const QModelIndex &/*parent*/)
// postponed until the row (in the view) is not selected anymore
checkRow(row);
dirty_records.insert(row, true);
- uat_->changed = TRUE;
+ uat_->changed = true;
endInsertRows();
return true;
}
@@ -400,7 +435,7 @@ bool UatModel::removeRows(int row, int count, const QModelIndex &/*parent*/)
uat_remove_record_idx(uat_, row);
record_errors.removeAt(row);
dirty_records.removeAt(row);
- uat_->changed = TRUE;
+ uat_->changed = true;
endRemoveRows();
return true;
}
@@ -414,7 +449,7 @@ void UatModel::clearAll()
uat_clear(uat_);
record_errors.clear();
dirty_records.clear();
- uat_->changed = TRUE;
+ uat_->changed = true;
endResetModel();
}
@@ -446,7 +481,7 @@ QModelIndex UatModel::copyRow(QModelIndex original)
checkRow(newRow);
dirty_records.insert(newRow, true);
- // the UAT record has been created, now it is filled with the infromation
+ // the UAT record has been created, now it is filled with the information
const void *src_record = UAT_INDEX_PTR(uat_, original.row());
void *dst_record = UAT_INDEX_PTR(uat_, newRow);
// insertRows always initializes the record with empty value. Before copying
@@ -460,12 +495,12 @@ QModelIndex UatModel::copyRow(QModelIndex original)
/* According to documentation of uat_copy_cb_t memcpy should be used if uat_->copy_cb is NULL */
memcpy(dst_record, src_record, uat_->record_size);
}
- gboolean src_valid = g_array_index(uat_->valid_data, gboolean, original.row());
+ bool src_valid = g_array_index(uat_->valid_data, bool, original.row());
uat_update_record(uat_, dst_record, src_valid);
record_errors[newRow] = record_errors[original.row()];
dirty_records[newRow] = true;
- uat_->changed = TRUE;
+ uat_->changed = true;
endInsertRows();
@@ -483,7 +518,7 @@ bool UatModel::moveRow(int src_row, int dst_row)
uat_move_index(uat_, src_row, dst_row);
record_errors.move(src_row, dst_row);
dirty_records.move(src_row, dst_row);
- uat_->changed = TRUE;
+ uat_->changed = true;
endMoveRows();
return true;
@@ -511,7 +546,7 @@ bool UatModel::checkField(int row, int col, char **error) const
}
char *str = NULL;
- guint length;
+ unsigned length;
field->cb.tostr(rec, &str, &length, field->cbdata.tostr, field->fld_data);
bool ok = field->cb.chk(rec, str, length, field->cbdata.chk, field->fld_data, error);
diff --git a/ui/qt/models/uat_model.h b/ui/qt/models/uat_model.h
index 5da647a519..3d97a9d08d 100644
--- a/ui/qt/models/uat_model.h
+++ b/ui/qt/models/uat_model.h
@@ -15,7 +15,6 @@
#define UAT_MODEL_H
#include <config.h>
-#include <glib.h>
#include <QAbstractItemModel>
#include <QList>
@@ -76,6 +75,7 @@ private:
void loadUat(uat_t * uat = 0);
epan_uat *uat_;
+ bool applying_;
QList<bool> dirty_records;
QList<QMap<int, QString> > record_errors;
};
diff --git a/ui/qt/models/voip_calls_info_model.cpp b/ui/qt/models/voip_calls_info_model.cpp
index 23ba46f1bf..2f6d4f181b 100644
--- a/ui/qt/models/voip_calls_info_model.cpp
+++ b/ui/qt/models/voip_calls_info_model.cpp
@@ -58,7 +58,7 @@ QVariant VoipCallsInfoModel::data(const QModelIndex &index, int role) const
call_info->protocol_name : voip_protocol_name[call_info->protocol];
case Duration:
{
- guint callDuration = nstime_to_sec(&(call_info->stop_fd->abs_ts)) - nstime_to_sec(&(call_info->start_fd->abs_ts));
+ unsigned callDuration = nstime_to_sec(&(call_info->stop_fd->abs_ts)) - nstime_to_sec(&(call_info->start_fd->abs_ts));
return QString("%1:%2:%3").arg(callDuration / 3600, 2, 10, QChar('0')).arg((callDuration % 3600) / 60, 2, 10, QChar('0')).arg(callDuration % 60, 2, 10, QChar('0'));
}
case Packets:
@@ -82,14 +82,14 @@ QVariant VoipCallsInfoModel::data(const QModelIndex &index, int role) const
case VOIP_H323:
{
h323_calls_info_t *h323_info = (h323_calls_info_t *)call_info->prot_info;
- gboolean flag = FALSE;
+ bool flag = false;
static const QString on_str = tr("On");
static const QString off_str = tr("Off");
if (call_info->call_state == VOIP_CALL_SETUP) {
flag = h323_info->is_faststart_Setup;
} else {
if ((h323_info->is_faststart_Setup) && (h323_info->is_faststart_Proc)) {
- flag = TRUE;
+ flag = true;
}
}
return tr("Tunneling: %1 Fast Start: %2")
@@ -202,7 +202,7 @@ void VoipCallsInfoModel::updateCalls(GQueue *callsinfos)
// Add new rows
cur_call = g_queue_peek_nth_link(callsinfos, rowCount());
- guint extra = g_list_length(cur_call);
+ unsigned extra = g_list_length(cur_call);
if (extra > 0) {
beginInsertRows(QModelIndex(), rowCount(), rowCount() + extra - 1);
while (cur_call && cur_call->data) {
diff --git a/ui/qt/models/voip_calls_info_model.h b/ui/qt/models/voip_calls_info_model.h
index 2f8d400788..afb7ebe310 100644
--- a/ui/qt/models/voip_calls_info_model.h
+++ b/ui/qt/models/voip_calls_info_model.h
@@ -11,7 +11,6 @@
#define VOIP_CALLS_INFO_MODEL_H
#include <config.h>
-#include <glib.h>
#include "ui/voip_calls.h"
#include <ui/qt/utils/variant_pointer.h>
diff --git a/ui/qt/module_preferences_scroll_area.cpp b/ui/qt/module_preferences_scroll_area.cpp
index 486411a019..d6f4718d81 100644
--- a/ui/qt/module_preferences_scroll_area.cpp
+++ b/ui/qt/module_preferences_scroll_area.cpp
@@ -57,8 +57,8 @@ extern "C" {
// Callbacks prefs routines
/* Add a single preference to the QVBoxLayout of a preference page */
-static guint
-pref_show(pref_t *pref, gpointer user_data)
+static unsigned
+pref_show(pref_t *pref, void *user_data)
{
prefSearchData * data = static_cast<prefSearchData *>(user_data);
@@ -320,7 +320,7 @@ ModulePreferencesScrollArea::ModulePreferencesScrollArea(module_t *module, QWidg
/* Show the preference's description at the top of the page */
QFont font;
- font.setBold(TRUE);
+ font.setBold(true);
QLabel *label = new QLabel(module->description);
label->setFont(font);
ui->verticalLayout->addWidget(label);
diff --git a/ui/qt/module_preferences_scroll_area.h b/ui/qt/module_preferences_scroll_area.h
index f3da516b64..8123564d44 100644
--- a/ui/qt/module_preferences_scroll_area.h
+++ b/ui/qt/module_preferences_scroll_area.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <epan/prefs.h>
#include <epan/prefs-int.h>
diff --git a/ui/qt/mtp3_summary_dialog.cpp b/ui/qt/mtp3_summary_dialog.cpp
index e5460fd9b1..ffbac57725 100644
--- a/ui/qt/mtp3_summary_dialog.cpp
+++ b/ui/qt/mtp3_summary_dialog.cpp
@@ -16,8 +16,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/tap.h>
#include <epan/dissectors/packet-mtp3.h>
@@ -378,7 +376,7 @@ register_tap_listener_qt_mtp3_summary(void)
if (err_p != NULL)
{
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_p->str);
- g_string_free(err_p, TRUE);
+ g_string_free(err_p, true);
exit(1);
}
diff --git a/ui/qt/multicast_statistics_dialog.cpp b/ui/qt/multicast_statistics_dialog.cpp
index cca747836e..e1fe925514 100644
--- a/ui/qt/multicast_statistics_dialog.cpp
+++ b/ui/qt/multicast_statistics_dialog.cpp
@@ -153,9 +153,9 @@ public:
private:
address src_addr_;
- guint16 src_port_;
+ uint16_t src_port_;
address dst_addr_;
- guint16 dst_port_;
+ uint16_t dst_port_;
unsigned num_packets_;
double avg_pps_;
double avg_bw_;
@@ -252,7 +252,7 @@ MulticastStatisticsDialog::MulticastStatisticsDialog(QWidget &parent, CaptureFil
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
@@ -414,7 +414,7 @@ void MulticastStatisticsDialog::updateMulticastParameters()
param = burst_measurement_interval_le_->text().toUInt(&ok);
if (ok && param > 0 && param <= 1000) {
- mcast_stream_burstint = (guint16) param;
+ mcast_stream_burstint = (uint16_t) param;
}
param = burst_alarm_threshold_le_->text().toInt(&ok);
@@ -456,7 +456,7 @@ void MulticastStatisticsDialog::fillTree()
void MulticastStatisticsDialog::rescan()
{
- gboolean was_registered = tapinfo_->is_registered;
+ bool was_registered = tapinfo_->is_registered;
if (!tapinfo_->is_registered)
register_tap_listener_mcast_stream(tapinfo_);
diff --git a/ui/qt/packet_comment_dialog.h b/ui/qt/packet_comment_dialog.h
index 114e834559..e380953d76 100644
--- a/ui/qt/packet_comment_dialog.h
+++ b/ui/qt/packet_comment_dialog.h
@@ -10,8 +10,6 @@
#ifndef PACKET_COMMENT_DIALOG_H
#define PACKET_COMMENT_DIALOG_H
-#include <glib.h>
-
#include "geometry_state_dialog.h"
namespace Ui {
diff --git a/ui/qt/packet_dialog.cpp b/ui/qt/packet_dialog.cpp
index 64abf538c5..6ad88380a3 100644
--- a/ui/qt/packet_dialog.cpp
+++ b/ui/qt/packet_dialog.cpp
@@ -64,13 +64,13 @@ PacketDialog::PacketDialog(QWidget &parent, CaptureFile &cf, frame_data *fdata)
}
/* proto tree, visible. We need a proto tree if there are custom columns */
- epan_dissect_init(&edt_, cap_file_.capFile()->epan, TRUE, TRUE);
+ epan_dissect_init(&edt_, cap_file_.capFile()->epan, true, true);
col_custom_prime_edt(&edt_, &(cap_file_.capFile()->cinfo));
epan_dissect_run(&edt_, cap_file_.capFile()->cd_t, &rec_,
frame_tvbuff_new_buffer(&cap_file_.capFile()->provider, fdata, &buf_),
fdata, &(cap_file_.capFile()->cinfo));
- epan_dissect_fill_in_columns(&edt_, TRUE, TRUE);
+ epan_dissect_fill_in_columns(&edt_, true, true);
proto_tree_ = new ProtoTree(ui->packetSplitter, &edt_);
// Do not call proto_tree_->setCaptureFile, ProtoTree only needs the
@@ -251,7 +251,7 @@ void PacketDialog::viewVisibilityStateChanged(int state)
byte_view_tab_->setVisible(state == Qt::Checked);
ui->layoutComboBox->setEnabled(state == Qt::Checked);
- prefs.gui_packet_details_show_byteview = (state == Qt::Checked ? TRUE : FALSE);
+ prefs.gui_packet_details_show_byteview = (state == Qt::Checked ? true : false);
prefs_main_write();
}
diff --git a/ui/qt/packet_list.cpp b/ui/qt/packet_list.cpp
index 7c68de3dc4..5918af3474 100644
--- a/ui/qt/packet_list.cpp
+++ b/ui/qt/packet_list.cpp
@@ -11,8 +11,6 @@
#include "config.h"
-#include <glib.h>
-
#include "file.h"
#include <epan/epan.h>
@@ -50,6 +48,7 @@
#include "main_application.h"
#include <ui/qt/utils/data_printer.h>
#include <ui/qt/utils/frame_information.h>
+#include <ui/qt/utils/profile_switcher.h>
#include <ui/qt/utils/variant_pointer.h>
#include <ui/qt/models/pref_models.h>
#include <ui/qt/widgets/packet_list_header.h>
@@ -94,7 +93,7 @@
// If we ever add the ability to open multiple capture files we might be
// able to use something like QMap<capture_file *, PacketList *> to match
// capture files against packet lists and models.
-static PacketList *gbl_cur_packet_list = NULL;
+static PacketList *gbl_cur_packet_list;
const int max_comments_to_fetch_ = 20000000; // Arbitrary
const int overlay_update_interval_ = 100; // 250; // Milliseconds.
@@ -103,18 +102,18 @@ const int overlay_update_interval_ = 100; // 250; // Milliseconds.
/*
* Given a frame_data structure, scroll to and select the row in the
* packet list corresponding to that frame. If there is no such
- * row, return FALSE, otherwise return TRUE.
+ * row, return false, otherwise return true.
*/
-gboolean
+bool
packet_list_select_row_from_data(frame_data *fdata_needle)
{
if (! gbl_cur_packet_list || ! gbl_cur_packet_list->model())
- return FALSE;
+ return false;
PacketListModel * model = qobject_cast<PacketListModel *>(gbl_cur_packet_list->model());
if (! model)
- return FALSE;
+ return false;
model->flushVisibleRows();
int row = -1;
@@ -133,10 +132,10 @@ packet_list_select_row_from_data(frame_data *fdata_needle)
gbl_cur_packet_list->selectionModel()->clearSelection();
gbl_cur_packet_list->selectionModel()->setCurrentIndex(model->index(row, 0), QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
gbl_cur_packet_list->scrollTo(gbl_cur_packet_list->currentIndex(), PacketList::PositionAtCenter);
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
/*
@@ -146,11 +145,11 @@ packet_list_select_row_from_data(frame_data *fdata_needle)
* selected frame (the function above), because we found a match in the
* same frame as the currently selected one.
*/
-gboolean
+bool
packet_list_select_finfo(field_info *fi)
{
if (! gbl_cur_packet_list || ! gbl_cur_packet_list->model())
- return FALSE;
+ return false;
if (fi) {
FieldInformation finfo(fi, gbl_cur_packet_list);
@@ -158,7 +157,7 @@ packet_list_select_finfo(field_info *fi)
} else {
emit gbl_cur_packet_list->fieldSelected(0);
}
- return TRUE;
+ return true;
}
void
@@ -203,21 +202,21 @@ packet_list_recent_write_all(FILE *rf) {
gbl_cur_packet_list->writeRecent(rf);
}
-gboolean
+bool
packet_list_multi_select_active(void)
{
if (gbl_cur_packet_list) {
return gbl_cur_packet_list->multiSelectActive();
}
- return FALSE;
+ return false;
}
#define MIN_COL_WIDTH_STR "MMMMMM"
PacketList::PacketList(QWidget *parent) :
QTreeView(parent),
- proto_tree_(NULL),
- cap_file_(NULL),
+ proto_tree_(nullptr),
+ cap_file_(nullptr),
ctx_column_(-1),
overlay_timer_id_(0),
create_near_overlay_(true),
@@ -232,7 +231,8 @@ PacketList::PacketList(QWidget *parent) :
frozen_selected_rows_(QModelIndexList()),
cur_history_(-1),
in_history_(false),
- finfo_array(NULL)
+ finfo_array(nullptr),
+ profile_switcher_(nullptr)
{
setItemsExpandable(false);
setRootIsDecorated(false);
@@ -297,7 +297,7 @@ PacketList::~PacketList()
{
if (finfo_array)
{
- g_ptr_array_free(finfo_array, TRUE);
+ g_ptr_array_free(finfo_array, true);
}
}
@@ -601,7 +601,7 @@ void PacketList::selectionChanged (const QItemSelection & selected, const QItemS
if (cap_file_->edt->tree) {
packet_info *pi = &cap_file_->edt->pi;
related_packet_delegate_.setCurrentFrame(pi->num);
- conversation_t *conv = find_conversation_pinfo(pi, 0);
+ conversation_t *conv = find_conversation_pinfo_ro(pi, 0);
if (conv) {
related_packet_delegate_.setConversation(conv);
}
@@ -648,16 +648,16 @@ void PacketList::contextMenuEvent(QContextMenuEvent *event)
if (finfo_array)
{
- g_ptr_array_free(finfo_array, TRUE);
+ g_ptr_array_free(finfo_array, true);
finfo_array = NULL;
}
if (cap_file_ && cap_file_->edt && cap_file_->edt->tree) {
finfo_array = proto_all_finfos(cap_file_->edt->tree);
QList<QString> added_proto_prefs;
- for (guint i = 0; i < finfo_array->len; i++) {
+ for (unsigned i = 0; i < finfo_array->len; i++) {
field_info *fi = (field_info *)g_ptr_array_index (finfo_array, i);
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
if (prefs_is_registered_protocol(hfinfo->abbrev)) {
if (hfinfo->parent == -1) {
@@ -770,6 +770,7 @@ void PacketList::contextMenuEvent(QContextMenuEvent *event)
main_menu_item = window()->findChild<QMenu *>("menuEditCopy");
submenu = new QMenu(main_menu_item->title(), ctx_menu);
+ submenu->setToolTipsVisible(true);
ctx_menu->addMenu(submenu);
QAction * action = submenu->addAction(tr("Summary as Text"));
@@ -1055,6 +1056,8 @@ void PacketList::setRecentColumnWidth(int col)
void PacketList::drawCurrentPacket()
{
+ // XXX - Update for multi-select? If more than one packet is Selected,
+ // this changes it so that only the Current packet is Selected.
QModelIndex current_index = currentIndex();
if (selectionModel() && current_index.isValid()) {
selectionModel()->clearSelection();
@@ -1117,6 +1120,14 @@ bool PacketList::havePreviousHistory(bool update_cur)
return false;
}
+void PacketList::setProfileSwitcher(ProfileSwitcher *profile_switcher)
+{
+ profile_switcher_ = profile_switcher;
+ if (profile_switcher) {
+ connect(packet_list_model_, &PacketListModel::packetAppended, profile_switcher_, &ProfileSwitcher::checkPacket);
+ }
+}
+
frame_data *PacketList::getFDataForRow(int row) const
{
return packet_list_model_->getRowFdata(row);
@@ -1135,7 +1146,7 @@ void PacketList::columnsChanged()
prefs.num_cols = g_list_length(prefs.col_list);
col_cleanup(&cap_file_->cinfo);
- build_column_format_array(&cap_file_->cinfo, prefs.num_cols, FALSE);
+ build_column_format_array(&cap_file_->cinfo, prefs.num_cols, false);
create_far_overlay_ = true;
resetColumns();
applyRecentColumnWidths();
@@ -1148,7 +1159,7 @@ void PacketList::fieldsChanged(capture_file *cf)
{
prefs.num_cols = g_list_length(prefs.col_list);
col_cleanup(&cf->cinfo);
- build_column_format_array(&cf->cinfo, prefs.num_cols, FALSE);
+ build_column_format_array(&cf->cinfo, prefs.num_cols, false);
resetColumns();
}
@@ -1341,8 +1352,8 @@ void PacketList::clear() {
}
void PacketList::writeRecent(FILE *rf) {
- gint col, width, col_fmt;
- gchar xalign;
+ int col, width, col_fmt;
+ char xalign;
fprintf (rf, "%s:\n", RECENT_KEY_COL_WIDTH);
for (col = 0; col < prefs.num_cols; col++) {
@@ -1399,7 +1410,7 @@ QString PacketList::getFilterFromRowAndColumn(QModelIndex idx)
return filter; /* error reading the record */
}
/* proto tree, visible. We need a proto tree if there's custom columns */
- epan_dissect_init(&edt, cap_file_->epan, have_custom_cols(&cap_file_->cinfo), FALSE);
+ epan_dissect_init(&edt, cap_file_->epan, have_custom_cols(&cap_file_->cinfo), false);
col_custom_prime_edt(&edt, &cap_file_->cinfo);
epan_dissect_run(&edt, cap_file_->cd_t, &rec,
@@ -1412,14 +1423,14 @@ QString PacketList::getFilterFromRowAndColumn(QModelIndex idx)
/* We don't need to fill in the custom columns, as we get their
* filters above.
*/
- col_fill_in(&edt.pi, TRUE, TRUE);
+ col_fill_in(&edt.pi, true, true);
if (strlen(cap_file_->cinfo.col_expr.col_expr[column]) != 0 &&
strlen(cap_file_->cinfo.col_expr.col_expr_val[column]) != 0) {
- gboolean is_string_value = FALSE;
+ bool is_string_value = false;
header_field_info *hfi = proto_registrar_get_byname(cap_file_->cinfo.col_expr.col_expr[column]);
if (hfi && hfi->type == FT_STRING) {
/* Could be an address type such as usb.src which must be quoted. */
- is_string_value = TRUE;
+ is_string_value = true;
}
if (filter.isEmpty()) {
@@ -1450,7 +1461,7 @@ void PacketList::resetColorized()
update();
}
-QString PacketList::getPacketComment(guint c_number)
+QString PacketList::getPacketComment(unsigned c_number)
{
int row = currentIndex().row();
const frame_data *fdata;
@@ -1499,7 +1510,7 @@ void PacketList::addPacketComment(QString new_comment)
}
}
-void PacketList::setPacketComment(guint c_number, QString new_comment)
+void PacketList::setPacketComment(unsigned c_number, QString new_comment)
{
QModelIndex curIndex = currentIndex();
@@ -1525,7 +1536,7 @@ void PacketList::setPacketComment(guint c_number, QString new_comment)
QString PacketList::allPacketComments()
{
- guint32 framenum;
+ uint32_t framenum;
frame_data *fdata;
QString buf_str;
@@ -1537,8 +1548,8 @@ QString PacketList::allPacketComments()
wtap_block_t pkt_block = cf_get_packet_block(cap_file_, fdata);
if (pkt_block) {
- guint n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
- for (guint i = 0; i < n_comments; i++) {
+ unsigned n_comments = wtap_block_count_option(pkt_block, OPT_COMMENT);
+ for (unsigned i = 0; i < n_comments; i++) {
char *comment_text;
if (WTAP_OPTTYPE_SUCCESS == wtap_block_get_nth_string_option_value(pkt_block, OPT_COMMENT, i, &comment_text)) {
buf_str.append(QString(tr("Frame %1: %2\n\n")).arg(framenum).arg(comment_text));
@@ -1658,7 +1669,7 @@ void PacketList::goLastPacket(void) {
void PacketList::goToPacket(int packet, int hf_id)
{
- if (!cf_goto_frame(cap_file_, packet, FALSE))
+ if (!cf_goto_frame(cap_file_, packet, false))
return;
// cf_goto_frame only returns true if packet_list_select_row_from_data
@@ -1820,7 +1831,7 @@ void PacketList::sectionResized(int col, int, int new_width)
// visible.
//
// Don't set column width when columns changed or setting column
- // visibility because we may get a sectionReized() from QTreeView
+ // visibility because we may get a sectionResized() from QTreeView
// with values from a old columns layout.
//
// Don't set column width when hiding a column.
diff --git a/ui/qt/packet_list.h b/ui/qt/packet_list.h
index cdcab7bd02..7a39054640 100644
--- a/ui/qt/packet_list.h
+++ b/ui/qt/packet_list.h
@@ -24,6 +24,7 @@
class PacketListHeader;
class OverlayScrollBar;
+class ProfileSwitcher;
class QAction;
class QTimerEvent;
@@ -74,9 +75,9 @@ public:
bool contextMenuActive();
QString getFilterFromRowAndColumn(QModelIndex idx);
void resetColorized();
- QString getPacketComment(guint c_number);
+ QString getPacketComment(unsigned c_number);
void addPacketComment(QString new_comment);
- void setPacketComment(guint c_number, QString new_comment);
+ void setPacketComment(unsigned c_number, QString new_comment);
QString allPacketComments();
void deleteCommentsFromPackets();
void deleteAllPacketComments();
@@ -86,6 +87,7 @@ public:
void resetColumns();
bool haveNextHistory(bool update_cur = false);
bool havePreviousHistory(bool update_cur = false);
+ void setProfileSwitcher(ProfileSwitcher *profile_switcher);
frame_data * getFDataForRow(int row) const;
@@ -148,8 +150,9 @@ private:
int cur_history_;
bool in_history_;
GPtrArray *finfo_array; // Packet data from the last selected packet entry
+ ProfileSwitcher *profile_switcher_;
- void setFrameReftime(gboolean set, frame_data *fdata);
+ void setFrameReftime(bool set, frame_data *fdata);
void setColumnVisibility();
int sizeHintForColumn(int column) const override;
void setRecentColumnWidth(int column);
diff --git a/ui/qt/packet_range_group_box.cpp b/ui/qt/packet_range_group_box.cpp
index 143da613eb..068f36a711 100644
--- a/ui/qt/packet_range_group_box.cpp
+++ b/ui/qt/packet_range_group_box.cpp
@@ -113,12 +113,23 @@ void PacketRangeGroupBox::updateCounts() {
pr_ui_->selectedDisplayedLabel->setEnabled(displayed_checked);
if (range_->include_dependents) {
- pr_ui_->selectedCapturedLabel->setText(QString::number(range_->selected_plus_depends_cnt));
- pr_ui_->selectedDisplayedLabel->setText(QString::number(range_->displayed_selected_plus_depends_cnt));
+ label_count = range_->selected_plus_depends_cnt;
} else {
- pr_ui_->selectedCapturedLabel->setText(QString::number(range_->selection_range_cnt));
- pr_ui_->selectedDisplayedLabel->setText(QString::number(range_->displayed_selection_range_cnt));
+ label_count = range_->selection_range_cnt;
}
+ if (range_->remove_ignored) {
+ label_count -= range_->ignored_selection_range_cnt;
+ }
+ pr_ui_->selectedCapturedLabel->setText(QString::number(label_count));
+ if (range_->include_dependents) {
+ label_count = range_->displayed_selected_plus_depends_cnt;
+ } else {
+ label_count = range_->displayed_selection_range_cnt;
+ }
+ if (range_->remove_ignored) {
+ label_count -= range_->displayed_ignored_selection_range_cnt;
+ }
+ pr_ui_->selectedDisplayedLabel->setText(QString::number(label_count));
} else {
if (range_->process == range_process_selected) {
pr_ui_->allButton->setChecked(true);
@@ -396,7 +407,7 @@ void PacketRangeGroupBox::on_rangeButton_toggled(bool checked)
void PacketRangeGroupBox::on_capturedButton_toggled(bool checked)
{
if (checked) {
- if (range_) range_->process_filtered = FALSE;
+ if (range_) range_->process_filtered = false;
updateCounts();
}
}
@@ -404,21 +415,21 @@ void PacketRangeGroupBox::on_capturedButton_toggled(bool checked)
void PacketRangeGroupBox::on_displayedButton_toggled(bool checked)
{
if (checked) {
- if (range_) range_->process_filtered = TRUE;
+ if (range_) range_->process_filtered = true;
updateCounts();
}
}
void PacketRangeGroupBox::on_ignoredCheckBox_toggled(bool checked)
{
- if (range_) range_->remove_ignored = checked ? TRUE : FALSE;
+ if (range_) range_->remove_ignored = checked ? true : false;
updateCounts();
}
void PacketRangeGroupBox::on_dependedCheckBox_toggled(bool checked)
{
if (range_) {
- range_->include_dependents = checked ? TRUE : FALSE;
+ range_->include_dependents = checked ? true : false;
updateCounts();
}
}
diff --git a/ui/qt/packet_range_group_box.h b/ui/qt/packet_range_group_box.h
index 1912d71d5f..44fb179068 100644
--- a/ui/qt/packet_range_group_box.h
+++ b/ui/qt/packet_range_group_box.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <ui/packet_range.h>
#include <ui/qt/widgets/syntax_line_edit.h>
diff --git a/ui/qt/preference_editor_frame.cpp b/ui/qt/preference_editor_frame.cpp
index 9596d5b8ab..eec2571ac1 100644
--- a/ui/qt/preference_editor_frame.cpp
+++ b/ui/qt/preference_editor_frame.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/prefs.h>
#include <epan/prefs-int.h>
#include <epan/decode_as.h>
@@ -267,13 +265,13 @@ void PreferenceEditorFrame::on_buttonBox_accepted()
pref_unstash_data_t unstashed_data;
unstashed_data.module = module_;
- unstashed_data.handle_decode_as = TRUE;
+ unstashed_data.handle_decode_as = true;
pref_unstash(pref_, &unstashed_data);
prefs_apply(module_);
prefs_main_write();
- gchar* err = NULL;
+ char* err = NULL;
if (save_decode_as_entries(&err) < 0)
{
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err);
diff --git a/ui/qt/preferences_dialog.cpp b/ui/qt/preferences_dialog.cpp
index 2901f22948..ce184be528 100644
--- a/ui/qt/preferences_dialog.cpp
+++ b/ui/qt/preferences_dialog.cpp
@@ -31,13 +31,13 @@
extern "C" {
// Callbacks prefs routines
-static guint
-module_prefs_unstash(module_t *module, gpointer data)
+static unsigned
+module_prefs_unstash(module_t *module, void *data)
{
- gboolean *must_redissect_p = static_cast<gboolean *>(data);
+ unsigned int *must_redissect_p = static_cast<unsigned int *>(data);
pref_unstash_data_t unstashed_data;
- unstashed_data.handle_decode_as = TRUE;
+ unstashed_data.handle_decode_as = true;
module->prefs_changed_flags = 0; /* assume none of them changed */
for (GList *pref_l = module->prefs; pref_l && pref_l->data; pref_l = gxx_list_next(pref_l)) {
@@ -61,8 +61,8 @@ module_prefs_unstash(module_t *module, gpointer data)
return 0; /* Keep unstashing. */
}
-static guint
-module_prefs_clean_stash(module_t *module, gpointer)
+static unsigned
+module_prefs_clean_stash(module_t *module, void *)
{
for (GList *pref_l = module->prefs; pref_l && pref_l->data; pref_l = gxx_list_next(pref_l)) {
pref_t *pref = gxx_list_data(pref_t *, pref_l);
@@ -233,7 +233,7 @@ void PreferencesDialog::on_advancedSearchLineEdit_textEdited(const QString &text
* the countdown.
*/
searchLineEditText = text;
- guint gui_debounce_timer = prefs_get_uint_value("gui", "debounce.timer");
+ unsigned gui_debounce_timer = prefs_get_uint_value("gui", "debounce.timer");
searchLineEditTimer->start(gui_debounce_timer);
}
@@ -245,14 +245,14 @@ void PreferencesDialog::on_showChangedValuesCheckBox_toggled(bool checked)
pd_ui_->advancedView->expandAll();
}
-void PreferencesDialog::on_buttonBox_accepted()
+void PreferencesDialog::apply()
{
- gchar* err = NULL;
+ char* err = NULL;
unsigned int redissect_flags = 0;
// XXX - We should validate preferences as the user changes them, not here.
// XXX - We're also too enthusiastic about setting must_redissect.
- prefs_modules_foreach_submodules(NULL, module_prefs_unstash, (gpointer)&redissect_flags);
+ prefs_modules_foreach_submodules(NULL, module_prefs_unstash, (void *)&redissect_flags);
extcap_register_preferences();
@@ -314,34 +314,40 @@ void PreferencesDialog::on_buttonBox_accepted()
mainApp->setMonospaceFont(prefs.gui_font_name);
if (redissect_flags & (PREF_EFFECT_GUI_COLOR)) {
- mainApp->queueAppSignal(MainApplication::ColorsChanged);
+ mainApp->emitAppSignal(MainApplication::ColorsChanged);
}
if (redissect_flags & PREF_EFFECT_FIELDS) {
- mainApp->queueAppSignal(MainApplication::FieldsChanged);
+ mainApp->emitAppSignal(MainApplication::FieldsChanged);
}
if (redissect_flags & PREF_EFFECT_DISSECTION) {
// Freeze the packet list early to avoid updating column data before doing a
// full redissection. The packet list will be thawed when redissection is done.
- mainApp->queueAppSignal(MainApplication::FreezePacketList);
+ mainApp->emitAppSignal(MainApplication::FreezePacketList);
/* Redissect all the packets, and re-evaluate the display filter. */
- mainApp->queueAppSignal(MainApplication::PacketDissectionChanged);
+ mainApp->emitAppSignal(MainApplication::PacketDissectionChanged);
}
if (redissect_flags) {
- mainApp->queueAppSignal(MainApplication::PreferencesChanged);
+ mainApp->emitAppSignal(MainApplication::PreferencesChanged);
}
if (redissect_flags & PREF_EFFECT_GUI_LAYOUT) {
- mainApp->queueAppSignal(MainApplication::RecentPreferencesRead);
+ mainApp->emitAppSignal(MainApplication::RecentPreferencesRead);
}
if (prefs.capture_no_extcap != saved_capture_no_extcap_)
mainApp->refreshLocalInterfaces();
}
+void PreferencesDialog::on_buttonBox_accepted()
+{
+ apply();
+ accept();
+}
+
void PreferencesDialog::on_buttonBox_rejected()
{
//handle frames that don't have their own OK/Cancel "buttons"
@@ -350,6 +356,14 @@ void PreferencesDialog::on_buttonBox_rejected()
#ifdef HAVE_LIBGNUTLS
pd_ui_->rsaKeysFrame->rejectChanges();
#endif
+ reject();
+}
+
+void PreferencesDialog::on_buttonBox_clicked(QAbstractButton *button)
+{
+ if (pd_ui_->buttonBox->buttonRole(button) == QDialogButtonBox::ApplyRole) {
+ apply();
+ }
}
void PreferencesDialog::on_buttonBox_helpRequested()
diff --git a/ui/qt/preferences_dialog.h b/ui/qt/preferences_dialog.h
index 517606990a..b295aeaa41 100644
--- a/ui/qt/preferences_dialog.h
+++ b/ui/qt/preferences_dialog.h
@@ -20,6 +20,7 @@
#include "geometry_state_dialog.h"
class QComboBox;
+class QAbstractButton;
namespace Ui {
class PreferencesDialog;
@@ -44,6 +45,8 @@ protected:
void showEvent(QShowEvent *evt);
private:
+ void apply();
+
Ui::PreferencesDialog *pd_ui_;
QHash<QString, QWidget*> prefs_pane_to_item_;
@@ -52,7 +55,7 @@ private:
AdvancedPrefsModel advancedPrefsModel_;
AdvancedPrefDelegate advancedPrefsDelegate_;
ModulePrefsModel modulePrefsModel_;
- gboolean saved_capture_no_extcap_;
+ bool saved_capture_no_extcap_;
QTimer *searchLineEditTimer;
QString searchLineEditText;
@@ -65,6 +68,7 @@ private slots:
void on_buttonBox_accepted();
void on_buttonBox_rejected();
void on_buttonBox_helpRequested();
+ void on_buttonBox_clicked(QAbstractButton *button);
/**
* Update search results from the advancedSearchLineEdit field
diff --git a/ui/qt/preferences_dialog.ui b/ui/qt/preferences_dialog.ui
index e6c625bb49..dc016ae03c 100644
--- a/ui/qt/preferences_dialog.ui
+++ b/ui/qt/preferences_dialog.ui
@@ -111,7 +111,7 @@
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok|QDialogButtonBox::Apply</set>
</property>
</widget>
</item>
@@ -168,38 +168,4 @@
</customwidget>
</customwidgets>
<resources/>
- <connections>
- <connection>
- <sender>buttonBox</sender>
- <signal>accepted()</signal>
- <receiver>PreferencesDialog</receiver>
- <slot>accept()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>248</x>
- <y>254</y>
- </hint>
- <hint type="destinationlabel">
- <x>157</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>buttonBox</sender>
- <signal>rejected()</signal>
- <receiver>PreferencesDialog</receiver>
- <slot>reject()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>316</x>
- <y>260</y>
- </hint>
- <hint type="destinationlabel">
- <x>286</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- </connections>
</ui>
diff --git a/ui/qt/print_dialog.cpp b/ui/qt/print_dialog.cpp
index 84c2d90656..f14e09d7d0 100644
--- a/ui/qt/print_dialog.cpp
+++ b/ui/qt/print_dialog.cpp
@@ -32,32 +32,32 @@ extern "C" {
// Page element callbacks
-static gboolean
-print_preamble_pd(print_stream_t *self, gchar *, const char *)
+static bool
+print_preamble_pd(print_stream_t *self, char *, const char *)
{
- if (!self) return FALSE;
+ if (!self) return false;
PrintDialog *print_dlg = static_cast<PrintDialog *>(self->data);
- if (!print_dlg) return FALSE;
+ if (!print_dlg) return false;
return print_dlg->printHeader();
}
-static gboolean
+static bool
print_line_pd(print_stream_t *self, int indent, const char *line)
{
- if (!self) return FALSE;
+ if (!self) return false;
PrintDialog *print_dlg = static_cast<PrintDialog *>(self->data);
- if (!print_dlg) return FALSE;
+ if (!print_dlg) return false;
return print_dlg->printLine(indent, line);
}
-static gboolean
+static bool
new_page_pd(print_stream_t *self)
{
- if (!self) return FALSE;
+ if (!self) return false;
PrintDialog *print_dlg = static_cast<PrintDialog *>(self->data);
- if (!print_dlg) return FALSE;
+ if (!print_dlg) return false;
return print_dlg->printHeader();
}
@@ -73,7 +73,7 @@ PrintDialog::PrintDialog(QWidget *parent, capture_file *cf, QString selRange) :
print_bt_(new QPushButton(tr("&Print…"))),
cap_file_(cf),
page_pos_(0),
- in_preview_(FALSE)
+ in_preview_(false)
{
Q_ASSERT(cf);
@@ -97,7 +97,7 @@ PrintDialog::PrintDialog(QWidget *parent, capture_file *cf, QString selRange) :
/* Init the export range */
packet_range_init(&print_args_.range, cap_file_);
/* Default to displayed packets */
- print_args_.range.process_filtered = TRUE;
+ print_args_.range.process_filtered = true;
stream_ops_.print_preamble = print_preamble_pd;
stream_ops_.print_line = print_line_pd;
@@ -107,7 +107,7 @@ PrintDialog::PrintDialog(QWidget *parent, capture_file *cf, QString selRange) :
stream_.ops = &stream_ops_;
print_args_.stream = &stream_;
- gchar *display_basename = g_filename_display_basename(cap_file_->filename);
+ char *display_basename = g_filename_display_basename(cap_file_->filename);
printer_.setDocName(display_basename);
g_free(display_basename);
@@ -136,9 +136,9 @@ PrintDialog::~PrintDialog()
delete pd_ui_;
}
-gboolean PrintDialog::printHeader()
+bool PrintDialog::printHeader()
{
- if (!cap_file_ || !cap_file_->filename || !cur_printer_ || !cur_painter_) return FALSE;
+ if (!cap_file_ || !cap_file_->filename || !cur_printer_ || !cur_painter_) return false;
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
int page_top = cur_printer_->pageLayout().paintRectPixels(cur_printer_->resolution()).top();
#else
@@ -149,7 +149,7 @@ gboolean PrintDialog::printHeader()
if (in_preview_) {
// When generating a preview, only generate the first page;
// if we're past the first page, stop the printing process.
- return FALSE;
+ return false;
}
// Second and subsequent pages only
cur_printer_->newPage();
@@ -166,15 +166,15 @@ gboolean PrintDialog::printHeader()
}
page_pos_ += cur_painter_->fontMetrics().height();
cur_painter_->setFont(packet_font_);
- return TRUE;
+ return true;
}
-gboolean PrintDialog::printLine(int indent, const char *line)
+bool PrintDialog::printLine(int indent, const char *line)
{
QRect out_rect, page_rect;
QString out_line;
- if (!line || !cur_printer_ || !cur_painter_) return FALSE;
+ if (!line || !cur_printer_ || !cur_painter_) return false;
/* Prepare the tabs for printing, depending on tree level */
out_line.fill(' ', indent * 4);
@@ -196,13 +196,13 @@ gboolean PrintDialog::printLine(int indent, const char *line)
if (in_preview_) {
// When generating a preview, only generate the first page;
// if we're past the first page, stop the printing process.
- return FALSE;
+ return false;
}
if (*line == '\0') {
// This is an empty line, so it's a separator; no need to
// waste space printing it at the top of a page, as the
// page break suffices as a separator.
- return TRUE;
+ return true;
}
printHeader();
}
@@ -210,7 +210,7 @@ gboolean PrintDialog::printLine(int indent, const char *line)
out_rect.translate(0, page_pos_);
cur_painter_->drawText(out_rect, Qt::TextWordWrap, out_line);
page_pos_ += out_rect.height();
- return TRUE;
+ return true;
}
// Protected
@@ -287,7 +287,7 @@ void PrintDialog::printPackets(QPrinter *printer, bool in_preview)
// Don't show a progress bar if we're previewing; if it takes a
// significant amount of time to generate a preview of the first
// page, We Have A Real Problem
- cf_print_packets(cap_file_, &print_args_, in_preview ? FALSE : TRUE);
+ cf_print_packets(cap_file_, &print_args_, in_preview ? false : true);
cur_printer_ = NULL;
cur_painter_ = NULL;
painter.end();
diff --git a/ui/qt/print_dialog.h b/ui/qt/print_dialog.h
index 88bda81e5c..eabb0b0807 100644
--- a/ui/qt/print_dialog.h
+++ b/ui/qt/print_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "file.h"
#include <QDialog>
@@ -33,8 +31,8 @@ public:
explicit PrintDialog(QWidget *parent = 0, capture_file *cf = NULL, QString selRange = QString());
~PrintDialog();
- gboolean printHeader();
- gboolean printLine(int indent, const char *line);
+ bool printHeader();
+ bool printLine(int indent, const char *line);
protected:
virtual void keyPressEvent(QKeyEvent *event) override;
diff --git a/ui/qt/profile_dialog.cpp b/ui/qt/profile_dialog.cpp
index 5b53a2cff8..ea11bd51b2 100644
--- a/ui/qt/profile_dialog.cpp
+++ b/ui/qt/profile_dialog.cpp
@@ -8,11 +8,8 @@
*/
#include "config.h"
-#include <glib.h>
#include "wsutil/filesystem.h"
-#include "wsutil/utf8_entities.h"
-#include "epan/prefs.h"
#include <ui/qt/utils/qt_ui_utils.h>
@@ -74,6 +71,13 @@ ProfileDialog::ProfileDialog(QWidget *parent) :
pd_ui_->hintLabel->setAttribute(Qt::WA_MacSmallSize, true);
#endif
+ QString as_tooltip = pd_ui_->autoSwitchLimitLabel->toolTip();
+ pd_ui_->autoSwitchSpinBox->setToolTip(as_tooltip);
+ if (!is_packet_configuration_namespace()) {
+ pd_ui_->autoSwitchLimitLabel->setText(tr("Auto switch event limit"));
+ }
+ pd_ui_->autoSwitchSpinBox->setValue(recent.gui_profile_switch_check_count);
+
import_button_ = pd_ui_->buttonBox->addButton(tr("Import", "noun"), QDialogButtonBox::ActionRole);
#ifdef HAVE_MINIZIP
@@ -112,13 +116,23 @@ ProfileDialog::ProfileDialog(QWidget *parent) :
currentItemChanged();
+ connect(pd_ui_->newToolButton, &StockIconToolButton::clicked, this, &ProfileDialog::newToolButtonClicked);
+ connect(pd_ui_->deleteToolButton, &StockIconToolButton::clicked, this, &ProfileDialog::deleteToolButtonClicked);
+ connect(pd_ui_->copyToolButton, &StockIconToolButton::clicked, this, &ProfileDialog::copyToolButtonClicked);
+ connect(pd_ui_->buttonBox, &QDialogButtonBox::accepted, this, &ProfileDialog::buttonBoxAccepted);
+ connect(pd_ui_->buttonBox, &QDialogButtonBox::rejected, this, &ProfileDialog::buttonBoxRejected);
+ connect(pd_ui_->buttonBox, &QDialogButtonBox::helpRequested, this, &ProfileDialog::buttonBoxHelpRequested);
+
+ pd_ui_->profileTreeView->resizeColumnToContents(ProfileModel::COL_NAME);
+ pd_ui_->profileTreeView->resizeColumnToContents(ProfileModel::COL_TYPE);
+
pd_ui_->profileTreeView->setFocus();
}
ProfileDialog::~ProfileDialog()
{
delete pd_ui_;
- empty_profile_list (TRUE);
+ empty_profile_list (true);
}
void ProfileDialog::keyPressEvent(QKeyEvent *evt)
@@ -149,7 +163,7 @@ int ProfileDialog::execAction(ProfileDialog::ProfileAction profile_action)
ret = exec();
break;
case NewProfile:
- on_newToolButton_clicked();
+ newToolButtonClicked();
ret = exec();
break;
case ImportZipProfile:
@@ -365,9 +379,6 @@ void ProfileDialog::updateWidgets()
pd_ui_->hintLabel->setUrl(hintUrl);
- /* ensure the name column is resized to it's content */
- pd_ui_->profileTreeView->resizeColumnToContents(ProfileModel::COL_NAME);
-
pd_ui_->deleteToolButton->setEnabled(enable_del);
ok_button_->setEnabled(enable_ok);
}
@@ -377,7 +388,7 @@ void ProfileDialog::currentItemChanged(const QModelIndex &, const QModelIndex &)
updateWidgets();
}
-void ProfileDialog::on_newToolButton_clicked()
+void ProfileDialog::newToolButtonClicked()
{
pd_ui_->lineProfileFilter->setText("");
pd_ui_->cmbProfileTypes->setCurrentIndex(ProfileSortModel::AllProfiles);
@@ -395,7 +406,7 @@ void ProfileDialog::on_newToolButton_clicked()
updateWidgets();
}
-void ProfileDialog::on_deleteToolButton_clicked()
+void ProfileDialog::deleteToolButtonClicked()
{
QModelIndexList profiles = selectedProfiles();
if (profiles.count() <= 0)
@@ -417,7 +428,7 @@ void ProfileDialog::on_deleteToolButton_clicked()
updateWidgets();
}
-void ProfileDialog::on_copyToolButton_clicked()
+void ProfileDialog::copyToolButtonClicked()
{
QModelIndexList profiles = selectedProfiles();
if (profiles.count() > 1)
@@ -444,11 +455,13 @@ void ProfileDialog::on_copyToolButton_clicked()
updateWidgets();
}
-void ProfileDialog::on_buttonBox_accepted()
+void ProfileDialog::buttonBoxAccepted()
{
bool write_recent = true;
bool item_data_removed = false;
+ recent.gui_profile_switch_check_count = pd_ui_->autoSwitchSpinBox->value();
+
QModelIndex index = sort_model_->mapToSource(pd_ui_->profileTreeView->currentIndex());
pd_ui_->buttonBox->setFocus();
@@ -483,7 +496,7 @@ void ProfileDialog::on_buttonBox_accepted()
write_profile_recent();
}
- gchar * err_msg = Q_NULLPTR;
+ char * err_msg = Q_NULLPTR;
if ((err_msg = apply_profile_changes()) != Q_NULLPTR) {
QMessageBox::critical(this, tr("Profile Error"),
err_msg,
@@ -512,22 +525,22 @@ void ProfileDialog::on_buttonBox_accepted()
if (profileName.length() > 0 && model_->findByName(profileName) >= 0) {
// The new profile exists, change.
- mainApp->setConfigurationProfile (profileName.toUtf8().constData(), FALSE);
+ mainApp->setConfigurationProfile (profileName.toUtf8().constData(), false);
} else if (!model_->activeProfile().isValid()) {
// The new profile does not exist, and the previous profile has
// been deleted. Change to the default profile.
- mainApp->setConfigurationProfile (Q_NULLPTR, FALSE);
+ mainApp->setConfigurationProfile (Q_NULLPTR, false);
}
}
-void ProfileDialog::on_buttonBox_rejected()
+void ProfileDialog::buttonBoxRejected()
{
QString msg;
if (! model_->clearImported(&msg))
QMessageBox::critical(this, tr("Error"), msg);
}
-void ProfileDialog::on_buttonBox_helpRequested()
+void ProfileDialog::buttonBoxHelpRequested()
{
mainApp->helpTopicAction(HELP_CONFIG_PROFILES_DIALOG);
}
@@ -558,8 +571,6 @@ void ProfileDialog::filterChanged(const QString &text)
else if (qobject_cast<QLineEdit *>(sender()))
sort_model_->setFilterString(text);
- pd_ui_->profileTreeView->resizeColumnToContents(ProfileModel::COL_NAME);
-
QModelIndex active = sort_model_->mapFromSource(model_->activeProfile());
if (active.isValid())
pd_ui_->profileTreeView->setCurrentIndex(active);
@@ -627,7 +638,7 @@ void ProfileDialog::exportProfiles(bool exportAllPersonalProfiles)
{
QString msg = tr("An error has occurred while exporting profiles");
if (err.length() > 0)
- msg.append(QString("\n\n%1: %3").arg(tr("Error")).arg(err));
+ msg.append(QString("\n\n%1: %2").arg(tr("Error"), err));
QMessageBox::critical(this, tr("Exporting profiles"), msg);
}
}
@@ -726,11 +737,8 @@ void ProfileDialog::resetTreeView()
selectionChanged();
- if (sort_model_->columnCount() <= 1)
+ if (sort_model_->columnCount() <= 1) {
pd_ui_->profileTreeView->header()->hide();
- else
- {
- pd_ui_->profileTreeView->header()->setStretchLastSection(false);
- pd_ui_->profileTreeView->header()->setSectionResizeMode(ProfileModel::COL_NAME, QHeaderView::Stretch);
}
}
+
diff --git a/ui/qt/profile_dialog.h b/ui/qt/profile_dialog.h
index 96d1f7fa9b..64a1f1dfa7 100644
--- a/ui/qt/profile_dialog.h
+++ b/ui/qt/profile_dialog.h
@@ -74,12 +74,12 @@ private slots:
#endif
void importFromDirectory();
- void on_newToolButton_clicked();
- void on_deleteToolButton_clicked();
- void on_copyToolButton_clicked();
- void on_buttonBox_accepted();
- void on_buttonBox_rejected();
- void on_buttonBox_helpRequested();
+ void newToolButtonClicked();
+ void deleteToolButtonClicked();
+ void copyToolButtonClicked();
+ void buttonBoxAccepted();
+ void buttonBoxRejected();
+ void buttonBoxHelpRequested();
void dataChanged(const QModelIndex &);
void filterChanged(const QString &);
diff --git a/ui/qt/profile_dialog.ui b/ui/qt/profile_dialog.ui
index fcc7591f7d..5f5bdf38b8 100644
--- a/ui/qt/profile_dialog.ui
+++ b/ui/qt/profile_dialog.ui
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>570</width>
+ <width>600</width>
<height>400</height>
</rect>
</property>
@@ -54,7 +54,7 @@
</widget>
</item>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,0,0,0">
+ <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,0,0,0,0,0,0">
<item>
<widget class="StockIconToolButton" name="newToolButton">
<property name="toolTip">
@@ -95,6 +95,42 @@
</widget>
</item>
<item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>5</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="autoSwitchLimitLabel">
+ <property name="toolTip">
+ <string>The number of packets or events to check for automatic profile switching.</string>
+ </property>
+ <property name="text">
+ <string>Auto switch packet limit</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="autoSwitchSpinBox">
+ <property name="buttonSymbols">
+ <enum>QAbstractSpinBox::NoButtons</enum>
+ </property>
+ <property name="maximum">
+ <number>10000000</number>
+ </property>
+ <property name="singleStep">
+ <number>1000</number>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
diff --git a/ui/qt/progress_frame.cpp b/ui/qt/progress_frame.cpp
index 853118c5a8..33306ebce2 100644
--- a/ui/qt/progress_frame.cpp
+++ b/ui/qt/progress_frame.cpp
@@ -28,8 +28,8 @@
// - Don't complain so loudly when the user stops a capture.
progdlg_t *
-create_progress_dlg(gpointer top_level_window, const gchar *task_title, const gchar *item_title,
- gboolean terminate_is_stop, gboolean *stop_flag) {
+create_progress_dlg(void *top_level_window, const char *task_title, const char *item_title,
+ bool terminate_is_stop, bool *stop_flag) {
ProgressFrame *pf;
QWidget *main_window;
@@ -57,9 +57,9 @@ create_progress_dlg(gpointer top_level_window, const gchar *task_title, const gc
}
progdlg_t *
-delayed_create_progress_dlg(gpointer top_level_window, const gchar *task_title, const gchar *item_title,
- gboolean terminate_is_stop, gboolean *stop_flag,
- gfloat progress)
+delayed_create_progress_dlg(void *top_level_window, const char *task_title, const char *item_title,
+ bool terminate_is_stop, bool *stop_flag,
+ float progress)
{
progdlg_t *progress_dialog = create_progress_dlg(top_level_window, task_title, item_title, terminate_is_stop, stop_flag);
update_progress_dlg(progress_dialog, progress, item_title);
@@ -70,7 +70,7 @@ delayed_create_progress_dlg(gpointer top_level_window, const gchar *task_title,
* Update the progress information of the progress bar box.
*/
void
-update_progress_dlg(progdlg_t *dlg, gfloat percentage, const gchar *)
+update_progress_dlg(progdlg_t *dlg, float percentage, const char *)
{
if (!dlg) return;
@@ -145,8 +145,8 @@ ProgressFrame::ProgressFrame(QWidget *parent) :
effect_ = new QGraphicsOpacityEffect(this);
animation_ = new QPropertyAnimation(effect_, "opacity", this);
- connect(this, SIGNAL(showRequested(bool,bool,gboolean*)),
- this, SLOT(show(bool,bool,gboolean*)));
+ connect(this, SIGNAL(showRequested(bool,bool,bool*)),
+ this, SLOT(show(bool,bool,bool*)));
hide();
}
@@ -155,7 +155,7 @@ ProgressFrame::~ProgressFrame()
delete ui;
}
-struct progdlg *ProgressFrame::showProgress(const QString &title, bool animate, bool terminate_is_stop, gboolean *stop_flag, int value)
+struct progdlg *ProgressFrame::showProgress(const QString &title, bool animate, bool terminate_is_stop, bool *stop_flag, int value)
{
setMaximumValue(100);
ui->progressBar->setValue(value);
@@ -171,7 +171,7 @@ struct progdlg *ProgressFrame::showProgress(const QString &title, bool animate,
return &progress_dialog_;
}
-progdlg *ProgressFrame::showBusy(bool animate, bool terminate_is_stop, gboolean *stop_flag)
+progdlg *ProgressFrame::showBusy(bool animate, bool terminate_is_stop, bool *stop_flag)
{
setMaximumValue(0);
emit showRequested(animate, terminate_is_stop, stop_flag);
@@ -205,8 +205,8 @@ void ProgressFrame::addToButtonBox(QDialogButtonBox *button_box, QObject *main_w
int one_em = progress_frame->fontMetrics().height();
progress_frame->setMaximumWidth(one_em * 8);
- connect(main_progress_frame, SIGNAL(showRequested(bool,bool,gboolean*)),
- progress_frame, SLOT(show(bool,bool,gboolean*)));
+ connect(main_progress_frame, SIGNAL(showRequested(bool,bool,bool*)),
+ progress_frame, SLOT(show(bool,bool,bool*)));
connect(main_progress_frame, SIGNAL(maximumValueChanged(int)),
progress_frame, SLOT(setMaximumValue(int)));
connect(main_progress_frame, SIGNAL(valueChanged(int)),
@@ -222,12 +222,12 @@ void ProgressFrame::captureFileClosing()
{
// Hide any paired ProgressFrames and disconnect from them.
emit setHidden();
- disconnect(SIGNAL(showRequested(bool,bool,gboolean*)));
+ disconnect(SIGNAL(showRequested(bool,bool,bool*)));
disconnect(SIGNAL(maximumValueChanged(int)));
disconnect(SIGNAL(valueChanged(int)));
- connect(this, SIGNAL(showRequested(bool,bool,gboolean*)),
- this, SLOT(show(bool,bool,gboolean*)));
+ connect(this, SIGNAL(showRequested(bool,bool,bool*)),
+ this, SLOT(show(bool,bool,bool*)));
}
void ProgressFrame::setValue(int value)
@@ -277,7 +277,7 @@ void ProgressFrame::on_stopButton_clicked()
const int show_delay_ = 150; // ms
-void ProgressFrame::show(bool animate, bool terminate_is_stop, gboolean *stop_flag)
+void ProgressFrame::show(bool animate, bool terminate_is_stop, bool *stop_flag)
{
terminate_is_stop_ = terminate_is_stop;
stop_flag_ = stop_flag;
diff --git a/ui/qt/progress_frame.h b/ui/qt/progress_frame.h
index 241afab89f..368e519a38 100644
--- a/ui/qt/progress_frame.h
+++ b/ui/qt/progress_frame.h
@@ -10,8 +10,6 @@
#ifndef PROGRESS_FRAME_H
#define PROGRESS_FRAME_H
-#include <glib.h>
-
#include <QFrame>
namespace Ui {
@@ -50,13 +48,13 @@ public:
void captureFileClosing();
public slots:
- struct progdlg *showProgress(const QString &title, bool animate, bool terminate_is_stop, gboolean *stop_flag, int value = 0);
- struct progdlg *showBusy(bool animate, bool terminate_is_stop, gboolean *stop_flag);
+ struct progdlg *showProgress(const QString &title, bool animate, bool terminate_is_stop, bool *stop_flag, int value = 0);
+ struct progdlg *showBusy(bool animate, bool terminate_is_stop, bool *stop_flag);
void setValue(int value);
void hide();
signals:
- void showRequested(bool animate, bool terminate_is_stop, gboolean *stop_flag);
+ void showRequested(bool animate, bool terminate_is_stop, bool *stop_flag);
void valueChanged(int value);
void maximumValueChanged(int value);
void setHidden();
@@ -72,7 +70,7 @@ private:
QString message_;
QString status_;
bool terminate_is_stop_;
- gboolean *stop_flag_;
+ bool *stop_flag_;
int show_timer_;
QGraphicsOpacityEffect *effect_;
QPropertyAnimation *animation_;
@@ -84,7 +82,7 @@ private:
private slots:
void on_stopButton_clicked();
- void show(bool animate, bool terminate_is_stop, gboolean *stop_flag);
+ void show(bool animate, bool terminate_is_stop, bool *stop_flag);
void setMaximumValue(int value);
};
diff --git a/ui/qt/proto_tree.cpp b/ui/qt/proto_tree.cpp
index 0b8abfd9d7..173548ab20 100644
--- a/ui/qt/proto_tree.cpp
+++ b/ui/qt/proto_tree.cpp
@@ -26,6 +26,7 @@
#include <ui/qt/show_packet_bytes_dialog.h>
#include <ui/qt/filter_action.h>
#include <ui/qt/follow_stream_action.h>
+#include <ui/qt/io_graph_action.h>
#include <ui/all_files_wildcard.h>
#include <ui/alert_box.h>
#include <ui/urls.h>
@@ -174,7 +175,7 @@ void ProtoTree::ctxCopySelectedInfo()
case ProtoTree::Value:
{
epan_dissect_t *edt = cap_file_ ? cap_file_->edt : edt_;
- gchar* field_str = get_node_field_value(finfo.fieldInfo(), edt);
+ char* field_str = get_node_field_value(finfo.fieldInfo(), edt);
clip.append(field_str);
g_free(field_str);
}
@@ -334,7 +335,10 @@ void ProtoTree::contextMenuEvent(QContextMenuEvent *event)
ctx_menu->addSeparator();
}
+ ctx_menu->addMenu(IOGraphAction::createMenu(finfo->headerInfo(), ctx_menu));
+
submenu = ctx_menu->addMenu(tr("Copy"));
+ submenu->setToolTipsVisible(true);
submenu->addAction(tr("All Visible Items"), this, SLOT(ctxCopyVisibleItems()));
action = submenu->addAction(tr("All Visible Selected Tree Items"), this, SLOT(ctxCopyVisibleItems()));
action->setProperty("selected_tree", QVariant::fromValue(true));
@@ -464,7 +468,7 @@ void ProtoTree::setMonospaceFont(const QFont &mono_font)
update();
}
-void ProtoTree::foreachTreeNode(proto_node *node, gpointer proto_tree_ptr)
+void ProtoTree::foreachTreeNode(proto_node *node, void *proto_tree_ptr)
{
ProtoTree *tree_view = static_cast<ProtoTree *>(proto_tree_ptr);
ProtoTreeModel *model = qobject_cast<ProtoTreeModel *>(tree_view->model());
@@ -577,7 +581,7 @@ void ProtoTree::syncExpanded(const QModelIndex &index) {
* are thus presumably leaf nodes and cannot be expanded.
*/
if (finfo.treeType() != -1) {
- tree_expanded_set(finfo.treeType(), TRUE);
+ tree_expanded_set(finfo.treeType(), true);
}
}
@@ -590,7 +594,7 @@ void ProtoTree::syncCollapsed(const QModelIndex &index) {
* are thus presumably leaf nodes and cannot be collapsed.
*/
if (finfo.treeType() != -1) {
- tree_expanded_set(finfo.treeType(), FALSE);
+ tree_expanded_set(finfo.treeType(), false);
}
}
@@ -641,7 +645,7 @@ void ProtoTree::collapseSubtrees()
void ProtoTree::expandAll()
{
for (int i = 0; i < num_tree_types; i++) {
- tree_expanded_set(i, TRUE);
+ tree_expanded_set(i, true);
}
QTreeView::expandAll();
updateContentWidth();
@@ -650,7 +654,7 @@ void ProtoTree::expandAll()
void ProtoTree::collapseAll()
{
for (int i = 0; i < num_tree_types; i++) {
- tree_expanded_set(i, FALSE);
+ tree_expanded_set(i, false);
}
QTreeView::collapseAll();
updateContentWidth();
diff --git a/ui/qt/proto_tree.h b/ui/qt/proto_tree.h
index 511063e998..ca08668bf4 100644
--- a/ui/qt/proto_tree.h
+++ b/ui/qt/proto_tree.h
@@ -70,7 +70,7 @@ private:
epan_dissect_t *edt_;
void saveSelectedField(QModelIndex &index);
- static void foreachTreeNode(proto_node *node, gpointer proto_tree_ptr);
+ static void foreachTreeNode(proto_node *node, void *proto_tree_ptr);
void foreachExpand(const QModelIndex &index);
signals:
diff --git a/ui/qt/protocol_hierarchy_dialog.cpp b/ui/qt/protocol_hierarchy_dialog.cpp
index a97f37b7ac..fefb0b5ce9 100644
--- a/ui/qt/protocol_hierarchy_dialog.cpp
+++ b/ui/qt/protocol_hierarchy_dialog.cpp
@@ -305,7 +305,7 @@ void ProtocolHierarchyDialog::filterActionTriggered()
emit filterAction(filter_name, fa->action(), fa->actionType());
}
-void ProtocolHierarchyDialog::addTreeNode(GNode *node, gpointer data)
+void ProtocolHierarchyDialog::addTreeNode(GNode *node, void *data)
{
ph_stats_node_t *stats = (ph_stats_node_t *)node->data;
if (!stats) return;
diff --git a/ui/qt/protocol_hierarchy_dialog.h b/ui/qt/protocol_hierarchy_dialog.h
index 08f3dfd2a8..33191d1e3e 100644
--- a/ui/qt/protocol_hierarchy_dialog.h
+++ b/ui/qt/protocol_hierarchy_dialog.h
@@ -55,7 +55,7 @@ private:
QSet<QString> used_protos_;
// Callback for g_node_children_foreach
- static void addTreeNode(GNode *node, gpointer data);
+ static void addTreeNode(GNode *node, void *data);
void updateWidgets();
QList<QVariant> protoHierRowData(QTreeWidgetItem *item) const;
};
diff --git a/ui/qt/protocol_preferences_menu.cpp b/ui/qt/protocol_preferences_menu.cpp
index 3f9feb8b47..74ca6414a5 100644
--- a/ui/qt/protocol_preferences_menu.cpp
+++ b/ui/qt/protocol_preferences_menu.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/prefs.h>
#include <epan/prefs-int.h>
#include <epan/proto.h>
@@ -154,8 +152,8 @@ private:
extern "C" {
// Preference callback
-static guint
-add_prefs_menu_item(pref_t *pref, gpointer menu_ptr)
+static unsigned
+add_prefs_menu_item(pref_t *pref, void *menu_ptr)
{
ProtocolPreferencesMenu *pp_menu = static_cast<ProtocolPreferencesMenu *>(menu_ptr);
if (!pp_menu) return 1;
diff --git a/ui/qt/remote_capture_dialog.cpp b/ui/qt/remote_capture_dialog.cpp
index c7f777808e..f9a183b2f4 100644
--- a/ui/qt/remote_capture_dialog.cpp
+++ b/ui/qt/remote_capture_dialog.cpp
@@ -11,7 +11,6 @@
#include "config.h"
#ifdef HAVE_PCAP_REMOTE
-#include <glib.h>
#include <ui/qt/utils/qt_ui_utils.h>
#include <ui/qt/utils/variant_pointer.h>
#include "ui/capture_globals.h"
@@ -67,11 +66,11 @@ void RemoteCaptureDialog::hostChanged(const QString host)
}
-static void fillBox(gpointer value, gpointer user_data)
+static void fillBox(void *value, void *user_data)
{
QComboBox *cb = (QComboBox *)user_data;
struct remote_host* rh = (struct remote_host*)value;
- cb->addItem(QString((gchar*)rh->r_host), VariantPointer<const struct remote_host>::asQVariant(rh));
+ cb->addItem(QString((char*)rh->r_host), VariantPointer<const struct remote_host>::asQVariant(rh));
}
void RemoteCaptureDialog::fillComboBox()
@@ -90,7 +89,7 @@ void RemoteCaptureDialog::fillComboBox()
void RemoteCaptureDialog::apply_remote()
{
int err;
- gchar *err_str;
+ char *err_str;
remote_options global_remote_opts;
QString host = ui->hostCombo->currentText();
@@ -110,9 +109,9 @@ void RemoteCaptureDialog::apply_remote()
global_remote_opts.remote_host_opts.auth_username = qstring_strdup(user);
QString pw = ui->pwText->text();
global_remote_opts.remote_host_opts.auth_password = qstring_strdup(pw);
- global_remote_opts.remote_host_opts.datatx_udp = FALSE;
- global_remote_opts.remote_host_opts.nocap_rpcap = TRUE;
- global_remote_opts.remote_host_opts.nocap_local = FALSE;
+ global_remote_opts.remote_host_opts.datatx_udp = false;
+ global_remote_opts.remote_host_opts.nocap_rpcap = true;
+ global_remote_opts.remote_host_opts.nocap_local = false;
#ifdef HAVE_PCAP_SETSAMPLING
global_remote_opts.sampling_method = CAPTURE_SAMP_NONE;
global_remote_opts.sampling_param = 0;
diff --git a/ui/qt/remote_capture_dialog.h b/ui/qt/remote_capture_dialog.h
index 86ef074024..fee75d897f 100644
--- a/ui/qt/remote_capture_dialog.h
+++ b/ui/qt/remote_capture_dialog.h
@@ -14,10 +14,8 @@
#ifdef HAVE_PCAP_REMOTE
#include <QDialog>
-#include <glib.h>
#include "capture_opts.h"
-
namespace Ui {
class RemoteCaptureDialog;
}
diff --git a/ui/qt/resolved_addresses_dialog.cpp b/ui/qt/resolved_addresses_dialog.cpp
index 5aa4de168d..e450729481 100644
--- a/ui/qt/resolved_addresses_dialog.cpp
+++ b/ui/qt/resolved_addresses_dialog.cpp
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include "file.h"
#include "epan/addr_resolv.h"
diff --git a/ui/qt/response_time_delay_dialog.cpp b/ui/qt/response_time_delay_dialog.cpp
index f656525eeb..8943d57916 100644
--- a/ui/qt/response_time_delay_dialog.cpp
+++ b/ui/qt/response_time_delay_dialog.cpp
@@ -50,7 +50,7 @@ bool register_response_time_delay_tables(const void *, void *value, void*)
rtd_init,
ResponseTimeDelayDialog::createRtdDialog);
g_free(cfg_abbr);
- return FALSE;
+ return false;
}
enum {
diff --git a/ui/qt/rpc_service_response_time_dialog.cpp b/ui/qt/rpc_service_response_time_dialog.cpp
index 7c7f70b377..fa5caf30fd 100644
--- a/ui/qt/rpc_service_response_time_dialog.cpp
+++ b/ui/qt/rpc_service_response_time_dialog.cpp
@@ -44,7 +44,7 @@
extern "C" {
static void
-dce_rpc_add_program(gpointer key_ptr, gpointer value_ptr, gpointer rsrtd_ptr)
+dce_rpc_add_program(void *key_ptr, void *value_ptr, void *rsrtd_ptr)
{
RpcServiceResponseTimeDialog *rsrt_dlg = dynamic_cast<RpcServiceResponseTimeDialog *>((RpcServiceResponseTimeDialog *)rsrtd_ptr);
if (!rsrt_dlg) return;
@@ -56,7 +56,7 @@ dce_rpc_add_program(gpointer key_ptr, gpointer value_ptr, gpointer rsrtd_ptr)
}
static void
-dce_rpc_find_versions(gpointer key_ptr, gpointer, gpointer rsrtd_ptr)
+dce_rpc_find_versions(void *key_ptr, void *, void *rsrtd_ptr)
{
RpcServiceResponseTimeDialog *rsrt_dlg = dynamic_cast<RpcServiceResponseTimeDialog *>((RpcServiceResponseTimeDialog *)rsrtd_ptr);
if (!rsrt_dlg) return;
@@ -66,19 +66,19 @@ dce_rpc_find_versions(gpointer key_ptr, gpointer, gpointer rsrtd_ptr)
}
static void
-onc_rpc_add_program(gpointer prog_ptr, gpointer value_ptr, gpointer rsrtd_ptr)
+onc_rpc_add_program(void *prog_ptr, void *value_ptr, void *rsrtd_ptr)
{
RpcServiceResponseTimeDialog *rsrt_dlg = dynamic_cast<RpcServiceResponseTimeDialog *>((RpcServiceResponseTimeDialog *)rsrtd_ptr);
if (!rsrt_dlg) return;
- guint32 program = GPOINTER_TO_UINT(prog_ptr);
+ uint32_t program = GPOINTER_TO_UINT(prog_ptr);
rpc_prog_info_value *value = (rpc_prog_info_value *) value_ptr;
rsrt_dlg->addOncRpcProgram(program, value);
}
static void
-onc_rpc_find_versions(const gchar *, ftenum_t , gpointer rpik_ptr, gpointer, gpointer rsrtd_ptr)
+onc_rpc_find_versions(const char *, ftenum_t , void *rpik_ptr, void *, void *rsrtd_ptr)
{
RpcServiceResponseTimeDialog *rsrt_dlg = dynamic_cast<RpcServiceResponseTimeDialog *>((RpcServiceResponseTimeDialog *)rsrtd_ptr);
if (!rsrt_dlg) return;
@@ -89,7 +89,7 @@ onc_rpc_find_versions(const gchar *, ftenum_t , gpointer rpik_ptr, gpointer, gpo
}
static void
-onc_rpc_count_procedures(const gchar *, ftenum_t , gpointer rpik_ptr, gpointer, gpointer rsrtd_ptr)
+onc_rpc_count_procedures(const char *, ftenum_t , void *rpik_ptr, void *, void *rsrtd_ptr)
{
RpcServiceResponseTimeDialog *rsrt_dlg = dynamic_cast<RpcServiceResponseTimeDialog *>((RpcServiceResponseTimeDialog *)rsrtd_ptr);
if (!rsrt_dlg) return;
@@ -241,12 +241,12 @@ void RpcServiceResponseTimeDialog::addDceRpcProgramVersion(_guid_key *key)
std::sort(versions_.begin(), versions_.end());
}
-void RpcServiceResponseTimeDialog::addOncRpcProgram(guint32 program, _rpc_prog_info_value *value)
+void RpcServiceResponseTimeDialog::addOncRpcProgram(uint32_t program, _rpc_prog_info_value *value)
{
onc_name_to_program_.insert(value->progname, program);
}
-void RpcServiceResponseTimeDialog::addOncRpcProgramVersion(guint32 program, guint32 version)
+void RpcServiceResponseTimeDialog::addOncRpcProgramVersion(uint32_t program, uint32_t version)
{
if (onc_name_to_program_[program_combo_->currentText()] != program) return;
@@ -262,7 +262,7 @@ void RpcServiceResponseTimeDialog::addOncRpcProgramVersion(guint32 program, guin
}
}
-void RpcServiceResponseTimeDialog::updateOncRpcProcedureCount(guint32 program, guint32 version, int procedure)
+void RpcServiceResponseTimeDialog::updateOncRpcProcedureCount(uint32_t program, uint32_t version, int procedure)
{
if (onc_name_to_program_[program_combo_->currentText()] != program) return;
if (version_combo_->itemData(version_combo_->currentIndex()).toUInt() != version) return;
@@ -374,7 +374,7 @@ void RpcServiceResponseTimeDialog::provideParameterData()
{
void *tap_data = NULL;
const QString program_name = program_combo_->currentText();
- guint32 max_procs = 0;
+ uint32_t max_procs = 0;
switch (dlg_type_) {
case DceRpc:
@@ -382,8 +382,8 @@ void RpcServiceResponseTimeDialog::provideParameterData()
if (!dce_name_to_uuid_key_.contains(program_name)) return;
guid_key *dkey = dce_name_to_uuid_key_[program_name];
- guint16 version = (guint16) version_combo_->itemData(version_combo_->currentIndex()).toUInt();
- dcerpc_sub_dissector *procs = dcerpc_get_proto_sub_dissector(&(dkey->guid), version);
+ uint16_t version = (uint16_t) version_combo_->itemData(version_combo_->currentIndex()).toUInt();
+ const dcerpc_sub_dissector *procs = dcerpc_get_proto_sub_dissector(&(dkey->guid), version);
if (!procs) return;
dcerpcstat_tap_data_t *dtap_data = g_new0(dcerpcstat_tap_data_t, 1);
@@ -406,7 +406,7 @@ void RpcServiceResponseTimeDialog::provideParameterData()
rpcstat_tap_data_t *otap_data = g_new0(rpcstat_tap_data_t, 1);
otap_data->program = onc_name_to_program_[program_name];
otap_data->prog = rpc_prog_name(otap_data->program);
- otap_data->version = (guint32) version_combo_->itemData(version_combo_->currentIndex()).toUInt();
+ otap_data->version = (uint32_t) version_combo_->itemData(version_combo_->currentIndex()).toUInt();
onc_rpc_num_procedures_ = -1;
dissector_table_foreach ("rpc.call", onc_rpc_count_procedures, this);
diff --git a/ui/qt/rpc_service_response_time_dialog.h b/ui/qt/rpc_service_response_time_dialog.h
index d8f2ca5320..4fa7306a1d 100644
--- a/ui/qt/rpc_service_response_time_dialog.h
+++ b/ui/qt/rpc_service_response_time_dialog.h
@@ -35,9 +35,9 @@ public:
void addDceRpcProgram(_guid_key *key, struct _dcerpc_uuid_value *value);
void addDceRpcProgramVersion(_guid_key *key);
- void addOncRpcProgram(guint32 program, struct _rpc_prog_info_value *value);
- void addOncRpcProgramVersion(guint32 program, guint32 version);
- void updateOncRpcProcedureCount(guint32 program, guint32 version, int procedure);
+ void addOncRpcProgram(uint32_t program, struct _rpc_prog_info_value *value);
+ void addOncRpcProgramVersion(uint32_t program, uint32_t version);
+ void updateOncRpcProcedureCount(uint32_t program, uint32_t version, int procedure);
void setDceRpcUuidAndVersion(struct _e_guid_t *uuid, int version);
void setOncRpcProgramAndVersion(int program, int version);
@@ -60,7 +60,7 @@ private:
QMap<QString, struct _guid_key *> dce_name_to_uuid_key_;
// ONC-RPC
- QMap<QString, guint32> onc_name_to_program_;
+ QMap<QString, uint32_t> onc_name_to_program_;
int onc_rpc_num_procedures_;
void clearVersionCombo();
diff --git a/ui/qt/rsa_keys_frame.cpp b/ui/qt/rsa_keys_frame.cpp
index c784ab9c26..429b3aaaf6 100644
--- a/ui/qt/rsa_keys_frame.cpp
+++ b/ui/qt/rsa_keys_frame.cpp
@@ -63,10 +63,10 @@ RsaKeysFrame::~RsaKeysFrame()
delete ui;
}
-gboolean RsaKeysFrame::verifyKey(const char *uri, const char *password, gboolean *need_password, QString &error)
+bool RsaKeysFrame::verifyKey(const char *uri, const char *password, bool *need_password, QString &error)
{
char *error_c = NULL;
- gboolean key_ok = secrets_verify_key(qPrintable(uri), qPrintable(password), need_password, &error_c);
+ bool key_ok = secrets_verify_key(qPrintable(uri), qPrintable(password), need_password, &error_c);
error = error_c ? error_c : "";
g_free(error_c);
return key_ok;
@@ -120,7 +120,7 @@ void RsaKeysFrame::on_addItemButton_clicked()
}
// Validate the token, is a PIN needed?
- gboolean key_ok = false, needs_pin = true;
+ bool key_ok = false, needs_pin = true;
QString error;
if (!item.startsWith("pkcs11:")) {
// For keys other than pkcs11, try to verify the key without password.
@@ -168,7 +168,7 @@ void RsaKeysFrame::on_addFileButton_clicked()
// Try to load the key as unencrypted key file. If any errors occur, assume
// an encrypted key file and prompt for a password.
QString password, error;
- gboolean key_ok = secrets_verify_key(qPrintable(file), NULL, NULL, NULL);
+ bool key_ok = secrets_verify_key(qPrintable(file), NULL, NULL, NULL);
while (!key_ok) {
QString msg;
if (!error.isEmpty()) {
diff --git a/ui/qt/rsa_keys_frame.h b/ui/qt/rsa_keys_frame.h
index fae40e2f38..c2dbccd2bf 100644
--- a/ui/qt/rsa_keys_frame.h
+++ b/ui/qt/rsa_keys_frame.h
@@ -40,7 +40,7 @@ private:
UatModel *rsa_keys_model_;
UatModel *pkcs11_libs_model_;
- gboolean verifyKey(const char *uri, const char *password, gboolean *need_password, QString &error);
+ bool verifyKey(const char *uri, const char *password, bool *need_password, QString &error);
void addKey(const QString &uri, const QString &password);
private slots:
diff --git a/ui/qt/rtp_analysis_dialog.cpp b/ui/qt/rtp_analysis_dialog.cpp
index d4eafd6caa..35be1beeaa 100644
--- a/ui/qt/rtp_analysis_dialog.cpp
+++ b/ui/qt/rtp_analysis_dialog.cpp
@@ -278,6 +278,10 @@ RtpAnalysisDialog::RtpAnalysisDialog(QWidget &parent, CaptureFile &cf) :
graph_ctx_menu_.addAction(ui->actionSaveGraph);
+ ui->streamGraph->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(ui->streamGraph, &QCustomPlot::customContextMenuRequested, this,
+ &RtpAnalysisDialog::showGraphMenu);
+
ui->streamGraph->xAxis->setLabel("Arrival Time");
ui->streamGraph->yAxis->setLabel("Value (ms)");
@@ -967,16 +971,14 @@ bool RtpAnalysisDialog::eventFilter(QObject *, QEvent *event)
return false;
}
-void RtpAnalysisDialog::graphClicked(QMouseEvent *event)
+void RtpAnalysisDialog::showGraphMenu(const QPoint &pos)
+{
+ graph_ctx_menu_.popup(ui->streamGraph->mapToGlobal(pos));
+}
+
+void RtpAnalysisDialog::graphClicked(QMouseEvent*)
{
updateWidgets();
- if (event->button() == Qt::RightButton) {
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0 ,0)
- graph_ctx_menu_.popup(event->globalPosition().toPoint());
-#else
- graph_ctx_menu_.popup(event->globalPos());
-#endif
- }
}
void RtpAnalysisDialog::clearLayout(QLayout *layout)
diff --git a/ui/qt/rtp_analysis_dialog.h b/ui/qt/rtp_analysis_dialog.h
index a7fcfced9d..b16eccd31b 100644
--- a/ui/qt/rtp_analysis_dialog.h
+++ b/ui/qt/rtp_analysis_dialog.h
@@ -12,7 +12,6 @@
#include <config.h>
-#include <glib.h>
#include <mutex>
#include "epan/address.h"
@@ -118,6 +117,7 @@ private slots:
void on_actionSaveGraph_triggered();
void on_buttonBox_helpRequested();
void showStreamMenu(QPoint pos);
+ void showGraphMenu(const QPoint &pos);
void graphClicked(QMouseEvent *event);
void closeTab(int index);
void rowCheckboxChanged(int checked);
@@ -135,7 +135,7 @@ private:
int tab_seq;
QVector<tab_info_t *> tabs_;
- QMultiHash<guint, tab_info_t *> tab_hash_;
+ QMultiHash<unsigned, tab_info_t *> tab_hash_;
QToolButton *player_button_;
diff --git a/ui/qt/rtp_audio_stream.cpp b/ui/qt/rtp_audio_stream.cpp
index 150c455be8..8950c8dfeb 100644
--- a/ui/qt/rtp_audio_stream.cpp
+++ b/ui/qt/rtp_audio_stream.cpp
@@ -128,7 +128,7 @@ void RtpAudioStream::addRtpPacket(const struct _packet_info *pinfo, const struct
rtp_packet_t *rtp_packet = g_new0(rtp_packet_t, 1);
rtp_packet->info = (struct _rtp_info *) g_memdup2(rtp_info, sizeof(struct _rtp_info));
if (rtp_info->info_all_data_present && (rtp_info->info_payload_len != 0)) {
- rtp_packet->payload_data = (guint8 *) g_memdup2(&(rtp_info->info_data[rtp_info->info_payload_offset]),
+ rtp_packet->payload_data = (uint8_t *) g_memdup2(&(rtp_info->info_data[rtp_info->info_payload_offset]),
rtp_info->info_payload_len);
}
@@ -258,21 +258,21 @@ void RtpAudioStream::decodeAudio(QAudioDeviceInfo out_device)
{
// XXX This is more messy than it should be.
- gint32 resample_buff_bytes = 0x1000;
+ int32_t resample_buff_bytes = 0x1000;
SAMPLE *resample_buff = (SAMPLE *) g_malloc(resample_buff_bytes);
char *write_buff = NULL;
qint64 write_bytes = 0;
unsigned int channels = 0;
unsigned int sample_rate = 0;
- guint32 last_sequence = 0;
- guint32 last_sequence_w = 0; // Last sequence number we wrote data
+ uint32_t last_sequence = 0;
+ uint32_t last_sequence_w = 0; // Last sequence number we wrote data
double rtp_time_prev = 0.0;
double arrive_time_prev = 0.0;
double pack_period = 0.0;
double start_time = 0.0;
double start_rtp_time = 0.0;
- guint64 start_timestamp = 0;
+ uint64_t start_timestamp = 0;
size_t decoded_bytes_prev = 0;
unsigned int audio_resampler_input_rate = 0;
@@ -430,7 +430,7 @@ void RtpAudioStream::decodeAudio(QAudioDeviceInfo out_device)
// Buffer is in SAMPLEs
spx_uint32_t in_len = (spx_uint32_t) (write_bytes / SAMPLE_BYTES);
// Output is audio_out_rate_/sample_rate bigger than input
- spx_uint32_t out_len = (spx_uint32_t) ((guint64)in_len * audio_out_rate_ / sample_rate);
+ spx_uint32_t out_len = (spx_uint32_t) ((uint64_t)in_len * audio_out_rate_ / sample_rate);
resample_buff = resizeBufferIfNeeded(resample_buff, &resample_buff_bytes, out_len * SAMPLE_BYTES);
if (audio_resampler &&
@@ -472,13 +472,13 @@ void RtpAudioStream::decodeAudio(QAudioDeviceInfo out_device)
void RtpAudioStream::decodeVisual()
{
spx_uint32_t read_len = 0;
- gint32 read_buff_bytes = VISUAL_BUFF_BYTES;
+ int32_t read_buff_bytes = VISUAL_BUFF_BYTES;
SAMPLE *read_buff = (SAMPLE *) g_malloc(read_buff_bytes);
- gint32 resample_buff_bytes = VISUAL_BUFF_BYTES;
+ int32_t resample_buff_bytes = VISUAL_BUFF_BYTES;
SAMPLE *resample_buff = (SAMPLE *) g_malloc(resample_buff_bytes);
unsigned int sample_no = 0;
spx_uint32_t out_len;
- guint32 frame_num;
+ uint32_t frame_num;
rtp_frame_type type;
speex_resampler_set_rate(visual_resampler_, audio_out_rate_, visual_sample_rate_);
@@ -486,7 +486,7 @@ void RtpAudioStream::decodeVisual()
// Loop over every frame record
// readFrameSamples() maintains size of buffer for us
while (audio_file_->readFrameSamples(&read_buff_bytes, &read_buff, &read_len, &frame_num, &type)) {
- out_len = (spx_uint32_t)(((guint64)read_len * visual_sample_rate_ ) / audio_out_rate_);
+ out_len = (spx_uint32_t)(((uint64_t)read_len * visual_sample_rate_ ) / audio_out_rate_);
if (type == RTP_FRAME_AUDIO) {
// We resample only audio samples
@@ -538,14 +538,14 @@ const QVector<double> RtpAudioStream::visualTimestamps(bool relative)
// Scale the height of the waveform to global scale (max_sample_val_used_)
// and adjust its Y offset so that they overlap slightly (stack_offset_).
-static const double stack_offset_ = G_MAXINT16 / 3;
+static const double stack_offset_ = INT16_MAX / 3;
const QVector<double> RtpAudioStream::visualSamples(int y_offset)
{
QVector<double> adj_samples;
double scaled_offset = y_offset * stack_offset_;
for (int i = 0; i < visual_samples_.size(); i++) {
if (SAMPLE_NaN != visual_samples_[i]) {
- adj_samples.append(((double)visual_samples_[i] * G_MAXINT16 / max_sample_val_used_) + scaled_offset);
+ adj_samples.append(((double)visual_samples_[i] * INT16_MAX / max_sample_val_used_) + scaled_offset);
} else {
// Convert to break in graph line
adj_samples.append(qQNaN());
@@ -701,8 +701,8 @@ const QString RtpAudioStream::formatDescription(const QAudioFormat &format)
QString RtpAudioStream::getIDAsQString()
{
- gchar *src_addr_str = address_to_display(NULL, &id_.src_addr);
- gchar *dst_addr_str = address_to_display(NULL, &id_.dst_addr);
+ char *src_addr_str = address_to_display(NULL, &id_.src_addr);
+ char *dst_addr_str = address_to_display(NULL, &id_.dst_addr);
QString str = QString("%1:%2 - %3:%4 %5")
.arg(src_addr_str)
.arg(id_.src_port)
@@ -905,7 +905,7 @@ void RtpAudioStream::delayedStopStream()
audio_output_->stop();
}
-SAMPLE *RtpAudioStream::resizeBufferIfNeeded(SAMPLE *buff, gint32 *buff_bytes, qint64 requested_size)
+SAMPLE *RtpAudioStream::resizeBufferIfNeeded(SAMPLE *buff, int32_t *buff_bytes, qint64 requested_size)
{
if (requested_size > *buff_bytes) {
while ((requested_size > *buff_bytes))
diff --git a/ui/qt/rtp_audio_stream.h b/ui/qt/rtp_audio_stream.h
index 1ddeaacd02..e7fd78d5d4 100644
--- a/ui/qt/rtp_audio_stream.h
+++ b/ui/qt/rtp_audio_stream.h
@@ -14,8 +14,6 @@
#ifdef QT_MULTIMEDIA_LIB
-#include <glib.h>
-
#include <epan/address.h>
#include <ui/rtp_stream.h>
#include <ui/qt/utils/rtp_audio_routing.h>
@@ -154,7 +152,7 @@ public:
void seekPlaying(qint64 samples);
void setStereoRequired(bool stereo_required) { stereo_required_ = stereo_required; }
qint16 getMaxSampleValue() { return max_sample_val_; }
- void setMaxSampleValue(gint16 max_sample_val) { max_sample_val_used_ = max_sample_val; }
+ void setMaxSampleValue(int16_t max_sample_val) { max_sample_val_used_ = max_sample_val; }
void seekSample(qint64 samples);
qint64 readSample(SAMPLE *sample);
qint64 getLeadSilenceSamples() { return prepend_samples_; }
@@ -163,7 +161,7 @@ public:
double getEndOfSilenceTime() { return (double)getEndOfSilenceSample() / (double)playRate(); }
qint64 convertTimeToSamples(double time) { return (qint64)(time * playRate()); }
bool savePayload(QIODevice *file);
- guint getHash() { return rtpstream_id_to_hash(&(id_)); }
+ unsigned getHash() { return rtpstream_id_to_hash(&(id_)); }
rtpstream_id_t *getID() { return &(id_); }
QString getIDAsQString();
rtpstream_info_t *getStreamInfo() { return &rtpstream_; }
@@ -223,7 +221,7 @@ private:
quint32 calculateAudioOutRate(QAudioDeviceInfo out_device, unsigned int sample_rate, unsigned int requested_out_rate);
#endif
void decodeVisual();
- SAMPLE *resizeBufferIfNeeded(SAMPLE *buff, gint32 *buff_bytes, qint64 requested_size);
+ SAMPLE *resizeBufferIfNeeded(SAMPLE *buff, int32_t *buff_bytes, qint64 requested_size);
private slots:
void outputStateChanged(QAudio::State new_state);
diff --git a/ui/qt/rtp_player_dialog.cpp b/ui/qt/rtp_player_dialog.cpp
index 7f1fb43184..3b3c37bcde 100644
--- a/ui/qt/rtp_player_dialog.cpp
+++ b/ui/qt/rtp_player_dialog.cpp
@@ -206,6 +206,9 @@ RtpPlayerDialog::RtpPlayerDialog(QWidget &parent, CaptureFile &cf, bool capture_
graph_ctx_menu_->addAction(ui->actionGoToSetupPacketPlot);
set_action_shortcuts_visible_in_context_menu(graph_ctx_menu_->actions());
+ ui->audioPlot->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(ui->audioPlot, &QCustomPlot::customContextMenuRequested, this, &RtpPlayerDialog::showGraphContextMenu);
+
ui->streamTreeWidget->setMouseTracking(true);
mouse_update_timer_ = new QTimer(this);
mouse_update_timer_->setSingleShot(true);
@@ -398,13 +401,13 @@ RtpPlayerDialog::~RtpPlayerDialog()
{
std::lock_guard<std::mutex> lock(init_mutex_);
if (pinstance_ != nullptr) {
- cleanupMarkerStream();
for (int row = 0; row < ui->streamTreeWidget->topLevelItemCount(); row++) {
QTreeWidgetItem *ti = ui->streamTreeWidget->topLevelItem(row);
RtpAudioStream *audio_stream = ti->data(stream_data_col_, Qt::UserRole).value<RtpAudioStream*>();
if (audio_stream)
delete audio_stream;
}
+ cleanupMarkerStream();
delete ui;
pinstance_ = nullptr;
}
@@ -460,7 +463,7 @@ void RtpPlayerDialog::retapPackets()
error_string = register_tap_listener("rtp", this, NULL, 0, NULL, tapPacket, NULL, NULL);
if (error_string) {
report_failure("RTP Player - tap registration failed: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
unlockUI();
return;
}
@@ -538,7 +541,7 @@ void RtpPlayerDialog::createPlot(bool rescale_axes)
bool legend_inserted_silences = false;
bool relative_timestamps = !ui->todCheckBox->isChecked();
int row_count = ui->streamTreeWidget->topLevelItemCount();
- gint16 total_max_sample_value = 1;
+ int16_t total_max_sample_value = 1;
ui->audioPlot->clearGraphs();
@@ -552,7 +555,7 @@ void RtpPlayerDialog::createPlot(bool rescale_axes)
for (int row = 0; row < row_count; row++) {
QTreeWidgetItem *ti = ui->streamTreeWidget->topLevelItem(row);
RtpAudioStream *audio_stream = ti->data(stream_data_col_, Qt::UserRole).value<RtpAudioStream*>();
- gint16 max_sample_value = audio_stream->getMaxSampleValue();
+ int16_t max_sample_value = audio_stream->getMaxSampleValue();
if (max_sample_value > total_max_sample_value) {
total_max_sample_value = max_sample_value;
@@ -678,7 +681,7 @@ void RtpPlayerDialog::fillTappedColumns()
// true just for first stream
bool is_first = true;
- // Get all rows, immutable list. Later changes in rows migth reorder them
+ // Get all rows, immutable list. Later changes in rows might reorder them
QList<QTreeWidgetItem *> items = ui->streamTreeWidget->findItems(
QString("*"), Qt::MatchWrap | Qt::MatchWildcard | Qt::MatchRecursive);
@@ -1157,16 +1160,14 @@ void RtpPlayerDialog::mouseMoveUpdate()
handleItemHighlight(ti, true);
}
-void RtpPlayerDialog::graphClicked(QMouseEvent *event)
+void RtpPlayerDialog::showGraphContextMenu(const QPoint &pos)
+{
+ graph_ctx_menu_->popup(ui->audioPlot->mapToGlobal(pos));
+}
+
+void RtpPlayerDialog::graphClicked(QMouseEvent*)
{
updateWidgets();
- if (event->button() == Qt::RightButton) {
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0 ,0)
- graph_ctx_menu_->popup(event->globalPosition().toPoint());
-#else
- graph_ctx_menu_->popup(event->globalPos());
-#endif
- }
}
void RtpPlayerDialog::graphDoubleClicked(QMouseEvent *event)
@@ -1309,7 +1310,9 @@ void RtpPlayerDialog::playFinished(RtpAudioStream *stream, QAudio::Error error)
}
playing_streams_.removeOne(stream);
if (playing_streams_.isEmpty()) {
- marker_stream_->stop();
+ if (marker_stream_) {
+ marker_stream_->stop();
+ }
updateWidgets();
}
}
@@ -1448,7 +1451,7 @@ void RtpPlayerDialog::on_playButton_clicked()
#endif
marker_stream_->start(new AudioSilenceGenerator(marker_stream_));
// It may happen that stream play is finished before all others are started
- // therefore we do not use playing_streams_ there, but separate temporarly
+ // therefore we do not use playing_streams_ there, but separate temporarily
// list. It avoids access element/remove element race condition.
streams_to_start = playing_streams_;
for( int i = 0; i<streams_to_start.count(); ++i ) {
@@ -2301,11 +2304,11 @@ qint64 RtpPlayerDialog::saveAudioHeaderWAV(QFile *save_file, quint32 channels, u
{
uint8_t pd[4];
int64_t nchars;
- gint32 subchunk2Size;
- gint32 data32;
- gint16 data16;
+ int32_t subchunk2Size;
+ int32_t data32;
+ int16_t data16;
- subchunk2Size = sizeof(SAMPLE) * channels * (gint32)samples;
+ subchunk2Size = sizeof(SAMPLE) * channels * (int32_t)samples;
/* http://soundfile.sapp.org/doc/WaveFormat/ */
@@ -2373,14 +2376,14 @@ qint64 RtpPlayerDialog::saveAudioHeaderWAV(QFile *save_file, quint32 channels, u
}
/* WAVE fmt header, BlockAlign */
- data16 = channels * (gint16)sizeof(SAMPLE);
+ data16 = channels * (int16_t)sizeof(SAMPLE);
nchars = save_file->write((const char *)&data16, 2);
if (nchars != 2) {
return -1;
}
/* WAVE fmt header, BitsPerSample */
- data16 = (gint16)sizeof(SAMPLE) * 8;
+ data16 = (int16_t)sizeof(SAMPLE) * 8;
nchars = save_file->write((const char *)&data16, 2);
if (nchars != 2) {
return -1;
@@ -2437,12 +2440,12 @@ bool RtpPlayerDialog::writeAudioStreamsSamples(QFile *out_file, QVector<RtpAudio
if (swap_bytes) {
// same as phton16(), but more clear in compare
// to else branch
- pd[0] = (guint8)(sample >> 8);
- pd[1] = (guint8)(sample >> 0);
+ pd[0] = (uint8_t)(sample >> 8);
+ pd[1] = (uint8_t)(sample >> 0);
} else {
// just copy
- pd[1] = (guint8)(sample >> 8);
- pd[0] = (guint8)(sample >> 0);
+ pd[1] = (uint8_t)(sample >> 8);
+ pd[0] = (uint8_t)(sample >> 0);
}
read = true;
} else {
diff --git a/ui/qt/rtp_player_dialog.h b/ui/qt/rtp_player_dialog.h
index b129bf96bd..0180e78f6d 100644
--- a/ui/qt/rtp_player_dialog.h
+++ b/ui/qt/rtp_player_dialog.h
@@ -12,7 +12,6 @@
#include "config.h"
-#include <glib.h>
#include <mutex>
#include "ui/rtp_stream.h"
@@ -147,6 +146,7 @@ private slots:
void itemEntered(QTreeWidgetItem *item, int column);
void mouseMovePlot(QMouseEvent *event);
void mouseMoveUpdate();
+ void showGraphContextMenu(const QPoint &pos);
void graphClicked(QMouseEvent *event);
void graphDoubleClicked(QMouseEvent *event);
void plotClicked(QCPAbstractPlottable *plottable, int dataIndex, QMouseEvent *event);
@@ -246,7 +246,7 @@ private:
QToolButton *analyze_btn_;
QPushButton *prepare_btn_;
QPushButton *export_btn_;
- QMultiHash<guint, RtpAudioStream *> stream_hash_;
+ QMultiHash<unsigned, RtpAudioStream *> stream_hash_;
bool block_redraw_;
int lock_ui_;
bool read_capture_enabled_;
diff --git a/ui/qt/rtp_stream_dialog.cpp b/ui/qt/rtp_stream_dialog.cpp
index 6b28a837a9..5508bde6f5 100644
--- a/ui/qt/rtp_stream_dialog.cpp
+++ b/ui/qt/rtp_stream_dialog.cpp
@@ -290,14 +290,14 @@ public:
return QTreeWidgetItem::operator <(other);
}
- void setTOD(gboolean tod)
+ void setTOD(bool tod)
{
tod_ = tod;
}
private:
rtpstream_info_t *stream_info_;
- gboolean tod_;
+ bool tod_;
};
@@ -586,9 +586,9 @@ void RtpStreamDialog::updateStreams()
// string_list is reverse ordered, so we must add
// just first "to_insert_count" of streams
GList *cur_stream = g_list_first(tapinfo_.strinfo_list);
- guint tap_len = g_list_length(tapinfo_.strinfo_list);
- guint tree_len = static_cast<guint>(ui->streamTreeWidget->topLevelItemCount());
- guint to_insert_count = tap_len - tree_len;
+ unsigned tap_len = g_list_length(tapinfo_.strinfo_list);
+ unsigned tree_len = static_cast<unsigned>(ui->streamTreeWidget->topLevelItemCount());
+ unsigned to_insert_count = tap_len - tree_len;
// Add any missing items
while (cur_stream && cur_stream->data && to_insert_count) {
@@ -797,8 +797,8 @@ void RtpStreamDialog::on_actionExportAsRtpDump_triggered()
save_file, "RTPDump Format (*.rtp)", &extension);
if (file_name.length() > 0) {
- gchar *dest_file = qstring_strdup(file_name);
- gboolean save_ok = rtpstream_save(&tapinfo_, cap_file_.capFile(), stream_info, dest_file);
+ char *dest_file = qstring_strdup(file_name);
+ bool save_ok = rtpstream_save(&tapinfo_, cap_file_.capFile(), stream_info, dest_file);
g_free(dest_file);
// else error dialog?
if (save_ok) {
diff --git a/ui/qt/sctp_all_assocs_dialog.cpp b/ui/qt/sctp_all_assocs_dialog.cpp
index 228a8baa22..2d04e69fd9 100644
--- a/ui/qt/sctp_all_assocs_dialog.cpp
+++ b/ui/qt/sctp_all_assocs_dialog.cpp
@@ -51,7 +51,7 @@ void SCTPAllAssocsDialog::fillTable()
ui->assocList->setColumnHidden(0, true);
sctp_assocs = sctp_stat_get_info();
- if (sctp_assocs->is_registered == FALSE) {
+ if (sctp_assocs->is_registered == false) {
register_tap_listener_sctp_stat();
/* (redissect all packets) */
cf_retap_packets(cap_file_);
diff --git a/ui/qt/sctp_all_assocs_dialog.h b/ui/qt/sctp_all_assocs_dialog.h
index c29c8e9b78..93ebf3f917 100644
--- a/ui/qt/sctp_all_assocs_dialog.h
+++ b/ui/qt/sctp_all_assocs_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <file.h>
#include <epan/dissectors/packet-sctp.h>
@@ -48,7 +46,7 @@ private slots:
private:
Ui::SCTPAllAssocsDialog *ui;
capture_file *cap_file_;
- guint16 selected_assoc_id;
+ uint16_t selected_assoc_id;
signals:
diff --git a/ui/qt/sctp_assoc_analyse_dialog.cpp b/ui/qt/sctp_assoc_analyse_dialog.cpp
index c6b4b11a10..89a3d60321 100644
--- a/ui/qt/sctp_assoc_analyse_dialog.cpp
+++ b/ui/qt/sctp_assoc_analyse_dialog.cpp
@@ -54,7 +54,7 @@ const sctp_assoc_info_t* SCTPAssocAnalyseDialog::findAssocForPacket(capture_file
bool frame_found = false;
fdata = cf->current_frame;
- if (sctp_stat_get_info()->is_registered == FALSE) {
+ if (sctp_stat_get_info()->is_registered == false) {
register_tap_listener_sctp_stat();
/* (redissect all packets) */
cf_retap_packets(cf);
@@ -65,11 +65,11 @@ const sctp_assoc_info_t* SCTPAssocAnalyseDialog::findAssocForPacket(capture_file
assoc = gxx_list_data(const sctp_assoc_info_t*, list);
framelist = g_list_first(assoc->frame_numbers);
- guint32 fn;
+ uint32_t fn;
while (framelist) {
fn = GPOINTER_TO_UINT(framelist->data);
if (fn == fdata->num) {
- frame_found = TRUE;
+ frame_found = true;
break;
}
framelist = gxx_list_next(framelist);
@@ -89,7 +89,7 @@ const sctp_assoc_info_t* SCTPAssocAnalyseDialog::findAssocForPacket(capture_file
return Q_NULLPTR;
}
-const _sctp_assoc_info* SCTPAssocAnalyseDialog::findAssoc(QWidget *parent, guint16 assoc_id)
+const _sctp_assoc_info* SCTPAssocAnalyseDialog::findAssoc(QWidget *parent, uint16_t assoc_id)
{
const sctp_assoc_info_t* result = get_sctp_assoc_info(assoc_id);
if (result) return result;
diff --git a/ui/qt/sctp_assoc_analyse_dialog.h b/ui/qt/sctp_assoc_analyse_dialog.h
index ec361f4c77..335abfbf91 100644
--- a/ui/qt/sctp_assoc_analyse_dialog.h
+++ b/ui/qt/sctp_assoc_analyse_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <file.h>
#include <epan/dissectors/packet-sctp.h>
@@ -44,7 +42,7 @@ public:
void fillTabs(const _sctp_assoc_info* selected_assoc);
static const _sctp_assoc_info* findAssocForPacket(capture_file* cf);
- static const _sctp_assoc_info* findAssoc(QWidget *parent, guint16 assoc_id);
+ static const _sctp_assoc_info* findAssoc(QWidget *parent, uint16_t assoc_id);
public slots:
void setCaptureFile(capture_file *cf) { cap_file_ = cf; }
@@ -63,7 +61,7 @@ private slots:
private:
Ui::SCTPAssocAnalyseDialog *ui;
- guint16 selected_assoc_id;
+ uint16_t selected_assoc_id;
capture_file *cap_file_;
void openGraphDialog(int direction);
void openGraphByteDialog(int direction);
diff --git a/ui/qt/sctp_chunk_statistics_dialog.cpp b/ui/qt/sctp_chunk_statistics_dialog.cpp
index f77c2edd56..20098a7b6d 100644
--- a/ui/qt/sctp_chunk_statistics_dialog.cpp
+++ b/ui/qt/sctp_chunk_statistics_dialog.cpp
@@ -62,7 +62,7 @@ SCTPChunkStatisticsDialog::~SCTPChunkStatisticsDialog()
void SCTPChunkStatisticsDialog::initializeChunkMap()
{
struct chunkTypes temp;
- gchar buf[16];
+ char buf[16];
for (int i = 0; i < 256; i++) {
temp.id = i;
@@ -94,7 +94,7 @@ void SCTPChunkStatisticsDialog::fillTable(bool all, const sctp_assoc_info_t *sel
return;
}
uat_t *uat = prefs_get_uat_value(pref);
- gchar* fname = uat_get_actual_filename(uat,TRUE);
+ char* fname = uat_get_actual_filename(uat,true);
bool init = false;
if (!fname) {
@@ -220,7 +220,7 @@ void SCTPChunkStatisticsDialog::on_pushButton_clicked()
uat_t *uat = prefs_get_uat_value(pref);
- gchar* fname = uat_get_actual_filename(uat,TRUE);
+ char* fname = uat_get_actual_filename(uat,true);
if (!fname) {
return;
@@ -228,7 +228,7 @@ void SCTPChunkStatisticsDialog::on_pushButton_clicked()
fp = ws_fopen(fname,"w");
if (!fp && errno == ENOENT) {
- gchar *pf_dir_path = NULL;
+ char *pf_dir_path = NULL;
if (create_persconffile_dir(&pf_dir_path) != 0) {
g_free (pf_dir_path);
return;
@@ -251,7 +251,7 @@ void SCTPChunkStatisticsDialog::on_pushButton_clicked()
snprintf(str, sizeof str, "\"%d\",\"%s\",\"%s\"\n", tempChunk.id, tempChunk.name, tempChunk.hide==0?"Show":"Hide");
fputs(str, fp);
void *rec = g_malloc0(uat->record_size);
- uat_add_record(uat, rec, TRUE);
+ uat_add_record(uat, rec, true);
if (uat->free_cb) {
uat->free_cb(rec);
}
@@ -287,7 +287,7 @@ void SCTPChunkStatisticsDialog::on_actionHideChunkType_triggered()
void SCTPChunkStatisticsDialog::on_actionChunkTypePreferences_triggered()
{
- gchar* err = NULL;
+ char* err = NULL;
pref_t *pref = prefs_find_preference(prefs_find_module("sctp"),"statistics_chunk_types");
if (!pref) {
diff --git a/ui/qt/sctp_chunk_statistics_dialog.h b/ui/qt/sctp_chunk_statistics_dialog.h
index aa45f7527f..1c18dad919 100644
--- a/ui/qt/sctp_chunk_statistics_dialog.h
+++ b/ui/qt/sctp_chunk_statistics_dialog.h
@@ -11,7 +11,6 @@
#define SCTP_CHUNK_STATISTICS_DIALOG_H
#include <config.h>
-#include <glib.h>
#include <file.h>
#include <wsutil/file_util.h>
@@ -62,7 +61,7 @@ signals:
private:
Ui::SCTPChunkStatisticsDialog *ui;
- guint16 selected_assoc_id;
+ uint16_t selected_assoc_id;
capture_file *cap_file_;
QMenu ctx_menu_;
QPoint selected_point;
diff --git a/ui/qt/sctp_graph_arwnd_dialog.cpp b/ui/qt/sctp_graph_arwnd_dialog.cpp
index e642731e23..92c254fe24 100644
--- a/ui/qt/sctp_graph_arwnd_dialog.cpp
+++ b/ui/qt/sctp_graph_arwnd_dialog.cpp
@@ -63,8 +63,8 @@ void SCTPGraphArwndDialog::drawArwndGraph(const sctp_assoc_info_t *selected_asso
struct sack_chunk_header *sack_header;
struct nr_sack_chunk_header *nr_sack_header;
tsn_t *tsn;
- guint8 type;
- guint32 arwnd=0;
+ uint8_t type;
+ uint32_t arwnd=0;
if (direction == 1) {
listSACK = g_list_last(selected_assoc->sack1);
@@ -161,7 +161,7 @@ void SCTPGraphArwndDialog::graphClicked(QCPAbstractPlottable* plottable, int, QM
}
}
if (cap_file_ && frame_num > 0) {
- cf_goto_frame(cap_file_, frame_num, FALSE);
+ cf_goto_frame(cap_file_, frame_num, false);
}
ui->hintLabel->setText(QString(tr("<small><i>Graph %1: a_rwnd=%2 Time=%3 secs </i></small>"))
diff --git a/ui/qt/sctp_graph_arwnd_dialog.h b/ui/qt/sctp_graph_arwnd_dialog.h
index c74d43d33f..7c30b84d51 100644
--- a/ui/qt/sctp_graph_arwnd_dialog.h
+++ b/ui/qt/sctp_graph_arwnd_dialog.h
@@ -11,7 +11,6 @@
#define SCTP_GRAPH_ARWND_DIALOG_H
#include <config.h>
-#include <glib.h>
#include "cfile.h"
@@ -46,13 +45,13 @@ private slots:
private:
Ui::SCTPGraphArwndDialog *ui;
- guint16 selected_assoc_id;
+ uint16_t selected_assoc_id;
capture_file *cap_file_;
int frame_num;
int direction;
- guint32 startArwnd;
+ uint32_t startArwnd;
QVector<double> xa, ya;
- QVector<guint32> fa;
+ QVector<uint32_t> fa;
// QVector<QString> typeStrings;
void drawGraph(const _sctp_assoc_info *selected_assoc);
diff --git a/ui/qt/sctp_graph_byte_dialog.cpp b/ui/qt/sctp_graph_byte_dialog.cpp
index 03845afff4..660a70d101 100644
--- a/ui/qt/sctp_graph_byte_dialog.cpp
+++ b/ui/qt/sctp_graph_byte_dialog.cpp
@@ -61,9 +61,9 @@ void SCTPGraphByteDialog::drawBytesGraph(const sctp_assoc_info_t *selected_assoc
{
GList *listTSN = Q_NULLPTR, *tlist = Q_NULLPTR;
tsn_t *tsn = Q_NULLPTR;
- guint8 type;
- guint32 maxBytes;
- guint64 sumBytes = 0;
+ uint8_t type;
+ uint32_t maxBytes;
+ uint64_t sumBytes = 0;
if (direction == 1) {
maxBytes = selected_assoc->n_data_bytes_ep1;
@@ -77,7 +77,7 @@ void SCTPGraphByteDialog::drawBytesGraph(const sctp_assoc_info_t *selected_assoc
while (listTSN) {
tsn = gxx_list_data(tsn_t*, listTSN);
tlist = g_list_first(tsn->tsns);
- guint16 length;
+ uint16_t length;
while (tlist)
{
type = gxx_list_data(struct chunk_header *, tlist)->type;
@@ -164,7 +164,7 @@ void SCTPGraphByteDialog::graphClicked(QCPAbstractPlottable* plottable, int, QMo
}
}
if (cap_file_ && frame_num > 0) {
- cf_goto_frame(cap_file_, frame_num, FALSE);
+ cf_goto_frame(cap_file_, frame_num, false);
}
ui->hintLabel->setText(QString(tr("<small><i>Graph %1: Received bytes=%2 Time=%3 secs </i></small>"))
diff --git a/ui/qt/sctp_graph_byte_dialog.h b/ui/qt/sctp_graph_byte_dialog.h
index e6785da98d..b331ad9ff7 100644
--- a/ui/qt/sctp_graph_byte_dialog.h
+++ b/ui/qt/sctp_graph_byte_dialog.h
@@ -11,7 +11,6 @@
#define SCTP_GRAPH_BYTE_DIALOG_H
#include <config.h>
-#include <glib.h>
#include "cfile.h"
@@ -46,12 +45,12 @@ private slots:
private:
Ui::SCTPGraphByteDialog *ui;
- guint16 selected_assoc_id;
+ uint16_t selected_assoc_id;
capture_file *cap_file_;
int frame_num;
int direction;
QVector<double> xb, yb;
- QVector<guint32> fb;
+ QVector<uint32_t> fb;
void drawGraph();
void drawBytesGraph(const _sctp_assoc_info *selected_assoc);
diff --git a/ui/qt/sctp_graph_dialog.cpp b/ui/qt/sctp_graph_dialog.cpp
index 82bc8f861f..e0e69fafe1 100644
--- a/ui/qt/sctp_graph_dialog.cpp
+++ b/ui/qt/sctp_graph_dialog.cpp
@@ -67,13 +67,13 @@ void SCTPGraphDialog::drawNRSACKGraph(const sctp_assoc_info_t* selected_assoc)
{
tsn_t *sack = Q_NULLPTR;
GList *list = Q_NULLPTR, *tlist = Q_NULLPTR;
- guint16 gap_start=0, gap_end=0, i, numberOf_gaps, numberOf_nr_gaps;
- guint8 type;
- guint32 tsnumber, j = 0, min_tsn, rel = 0;
+ uint16_t gap_start=0, gap_end=0, i, numberOf_gaps, numberOf_nr_gaps;
+ uint8_t type;
+ uint32_t tsnumber, j = 0, min_tsn, rel = 0;
struct nr_sack_chunk_header *nr_sack_header = Q_NULLPTR;
struct gaps *nr_gap = Q_NULLPTR;
/* This holds the sum of gap acks and nr gap acks */
- guint16 total_gaps = 0;
+ uint16_t total_gaps = 0;
if (direction == 1) {
list = g_list_last(selected_assoc->sack1);
@@ -133,14 +133,14 @@ void SCTPGraphDialog::drawNRSACKGraph(const sctp_assoc_info_t* selected_assoc)
void SCTPGraphDialog::drawSACKGraph(const sctp_assoc_info_t* selected_assoc)
{
GList *listSACK = Q_NULLPTR, *tlist = Q_NULLPTR;
- guint16 gap_start=0, gap_end=0, nr, dup_nr;
+ uint16_t gap_start=0, gap_end=0, nr, dup_nr;
struct sack_chunk_header *sack_header = Q_NULLPTR;
struct gaps *gap = Q_NULLPTR;
tsn_t *tsn = Q_NULLPTR;
- guint8 type;
- guint32 tsnumber=0, rel = 0;
- guint32 minTSN;
- guint32 *dup_list = Q_NULLPTR;
+ uint8_t type;
+ uint32_t tsnumber=0, rel = 0;
+ uint32_t minTSN;
+ uint32_t *dup_list = Q_NULLPTR;
int i, j;
if (direction == 1) {
@@ -262,8 +262,8 @@ void SCTPGraphDialog::drawTSNGraph(const sctp_assoc_info_t* selected_assoc)
{
GList *listTSN = Q_NULLPTR,*tlist = Q_NULLPTR;
tsn_t *tsn = Q_NULLPTR;
- guint8 type;
- guint32 tsnumber=0, rel = 0, minTSN;
+ uint8_t type;
+ uint32_t tsnumber=0, rel = 0, minTSN;
if (direction == 1) {
listTSN = g_list_last(selected_assoc->tsn1);
@@ -321,7 +321,7 @@ void SCTPGraphDialog::drawGraph(const sctp_assoc_info_t* selected_assoc)
if (!selected_assoc) return;
}
- guint32 maxTSN, minTSN;
+ uint32_t maxTSN, minTSN;
if (direction == 1) {
maxTSN = selected_assoc->max_tsn1;
@@ -467,7 +467,7 @@ void SCTPGraphDialog::graphClicked(QCPAbstractPlottable* plottable, int, QMouseE
}
}
if (cap_file_ && frame_num > 0) {
- cf_goto_frame(cap_file_, frame_num, FALSE);
+ cf_goto_frame(cap_file_, frame_num, false);
}
ui->hintLabel->setText(QString(tr("<small><i>%1: %2 Time: %3 secs </i></small>"))
.arg(plottable->name())
diff --git a/ui/qt/sctp_graph_dialog.h b/ui/qt/sctp_graph_dialog.h
index 28aeccb036..06cfdd94ce 100644
--- a/ui/qt/sctp_graph_dialog.h
+++ b/ui/qt/sctp_graph_dialog.h
@@ -11,7 +11,6 @@
#define SCTP_GRAPH_DIALOG_H
#include <config.h>
-#include <glib.h>
#include "cfile.h"
@@ -27,47 +26,47 @@ class QCustomPlot;
struct _sctp_assoc_info;
struct chunk_header {
- guint8 type;
- guint8 flags;
- guint16 length;
+ uint8_t type;
+ uint8_t flags;
+ uint16_t length;
};
struct data_chunk_header {
- guint8 type;
- guint8 flags;
- guint16 length;
- guint32 tsn;
- guint16 sid;
- guint16 ssn;
- guint32 ppi;
+ uint8_t type;
+ uint8_t flags;
+ uint16_t length;
+ uint32_t tsn;
+ uint16_t sid;
+ uint16_t ssn;
+ uint32_t ppi;
};
struct gaps {
- guint16 start;
- guint16 end;
+ uint16_t start;
+ uint16_t end;
};
struct sack_chunk_header {
- guint8 type;
- guint8 flags;
- guint16 length;
- guint32 cum_tsn_ack;
- guint32 a_rwnd;
- guint16 nr_of_gaps;
- guint16 nr_of_dups;
+ uint8_t type;
+ uint8_t flags;
+ uint16_t length;
+ uint32_t cum_tsn_ack;
+ uint32_t a_rwnd;
+ uint16_t nr_of_gaps;
+ uint16_t nr_of_dups;
struct gaps gaps[1];
};
struct nr_sack_chunk_header {
- guint8 type;
- guint8 flags;
- guint16 length;
- guint32 cum_tsn_ack;
- guint32 a_rwnd;
- guint16 nr_of_gaps;
- guint16 nr_of_nr_gaps;
- guint16 nr_of_dups;
- guint16 reserved;
+ uint8_t type;
+ uint8_t flags;
+ uint16_t length;
+ uint32_t cum_tsn_ack;
+ uint32_t a_rwnd;
+ uint16_t nr_of_gaps;
+ uint16_t nr_of_nr_gaps;
+ uint16_t nr_of_dups;
+ uint16_t reserved;
struct gaps gaps[1];
};
@@ -102,12 +101,12 @@ private slots:
private:
Ui::SCTPGraphDialog *ui;
- guint16 selected_assoc_id;
+ uint16_t selected_assoc_id;
capture_file *cap_file_;
int frame_num;
int direction;
QVector<double> xt, yt, xs, ys, xg, yg, xd, yd, xn, yn;
- QVector<guint32> ft, fs, fg, fd, fn;
+ QVector<uint32_t> ft, fs, fg, fd, fn;
QVector<QString> typeStrings;
bool relative;
int type;
diff --git a/ui/qt/search_frame.cpp b/ui/qt/search_frame.cpp
index e5d80a7397..7aa1dd1652 100644
--- a/ui/qt/search_frame.cpp
+++ b/ui/qt/search_frame.cpp
@@ -259,7 +259,7 @@ void SearchFrame::updateWidgets()
if (sf_ui_->searchLineEdit->text().isEmpty()) {
sf_ui_->searchLineEdit->setSyntaxState(SyntaxLineEdit::Invalid);
} else {
- guint8 *bytes;
+ uint8_t *bytes;
size_t nbytes;
bytes = convert_string_to_hex(sf_ui_->searchLineEdit->text().toUtf8().constData(), &nbytes);
if (bytes == nullptr)
@@ -388,24 +388,24 @@ void SearchFrame::on_multipleCheckBox_toggled(bool checked)
void SearchFrame::on_findButton_clicked()
{
- guint8 *bytes = nullptr;
+ uint8_t *bytes = nullptr;
size_t nbytes = 0;
char *string = nullptr;
dfilter_t *dfp = nullptr;
- gboolean found_packet = FALSE;
+ bool found_packet = false;
QString err_string;
if (!cap_file_) {
return;
}
- cap_file_->hex = FALSE;
- cap_file_->string = FALSE;
- cap_file_->case_type = FALSE;
+ cap_file_->hex = false;
+ cap_file_->string = false;
+ cap_file_->case_type = false;
cap_file_->regex = nullptr;
- cap_file_->packet_data = FALSE;
- cap_file_->decode_data = FALSE;
- cap_file_->summary_data = FALSE;
+ cap_file_->packet_data = false;
+ cap_file_->decode_data = false;
+ cap_file_->summary_data = false;
cap_file_->scs_type = SCS_NARROW_AND_WIDE;
cap_file_->dir = sf_ui_->dirCheckBox->isChecked() ? SD_BACKWARD : SD_FORWARD;
bool multiple_occurrences = sf_ui_->multipleCheckBox->isChecked();
@@ -429,7 +429,7 @@ void SearchFrame::on_findButton_clicked()
err_string = tr("That's not a valid hex string.");
goto search_done;
}
- cap_file_->hex = TRUE;
+ cap_file_->hex = true;
break;
case string_search_:
case regex_search_:
@@ -437,8 +437,8 @@ void SearchFrame::on_findButton_clicked()
err_string = tr("You didn't specify any text for which to search.");
goto search_done;
}
- cap_file_->string = TRUE;
- cap_file_->case_type = sf_ui_->caseCheckBox->isChecked() ? FALSE : TRUE;
+ cap_file_->string = true;
+ cap_file_->case_type = sf_ui_->caseCheckBox->isChecked() ? false : true;
cap_file_->regex = (search_type == regex_search_ ? regex_ : nullptr);
switch (sf_ui_->charEncodingComboBox->currentIndex()) {
case narrow_and_wide_chars_:
@@ -463,13 +463,13 @@ void SearchFrame::on_findButton_clicked()
switch (sf_ui_->searchInComboBox->currentIndex()) {
case in_packet_list_:
- cap_file_->summary_data = TRUE;
+ cap_file_->summary_data = true;
break;
case in_proto_tree_:
- cap_file_->decode_data = TRUE;
+ cap_file_->decode_data = true;
break;
case in_bytes_:
- cap_file_->packet_data = TRUE;
+ cap_file_->packet_data = true;
break;
default:
err_string = tr("No valid search area selected. Please report this to the development team.");
@@ -513,7 +513,7 @@ void SearchFrame::on_findButton_clicked()
}
} else if (cap_file_->packet_data && string) {
/* String in the ASCII-converted packet data */
- found_packet = cf_find_packet_data(cap_file_, (guint8 *) string, strlen(string), cap_file_->dir, multiple_occurrences);
+ found_packet = cf_find_packet_data(cap_file_, (uint8_t *) string, strlen(string), cap_file_->dir, multiple_occurrences);
g_free(string);
if (!found_packet) {
err_string = tr("No packet contained that string in its converted data.");
diff --git a/ui/qt/sequence_diagram.cpp b/ui/qt/sequence_diagram.cpp
index 2d33a606eb..3d0d1d77f7 100644
--- a/ui/qt/sequence_diagram.cpp
+++ b/ui/qt/sequence_diagram.cpp
@@ -11,6 +11,7 @@
#include "epan/addr_resolv.h"
#include "epan/sequence_analysis.h"
+#include "epan/column.h"
#include <ui/qt/utils/color_utils.h>
#include <ui/qt/utils/qt_ui_utils.h>
@@ -82,6 +83,14 @@ SequenceDiagram::SequenceDiagram(QCPAxis *keyAxis, QCPAxis *valueAxis, QCPAxis *
smooth_font_size(comment_font);
comment_axis_->setTickLabelFont(comment_font);
comment_axis_->setSelectedTickLabelFont(QFont(comment_font.family(), comment_font.pointSizeF(), QFont::Bold));
+
+ // By default QCPAxisRect auto resizes, which creates some slight but
+ // noticeable horizontal movement when scrolling vertically. Prevent that.
+ key_axis_->axisRect()->setAutoMargins(QCP::msTop | QCP::msBottom);
+ int time_margin = QFontMetrics(key_axis_->tickLabelFont()).horizontalAdvance(get_column_longest_string(COL_CLS_TIME));
+ int comment_margin = QFontMetrics(comment_font).height() * (max_comment_em_width_ + 1); // Add 1 as using the exact elided width is slightly too narrow
+ key_axis_->axisRect()->setMargins(QMargins(time_margin, 0, comment_margin, 0));
+
// frame_label
// port_src -----------------> port_dst
@@ -127,7 +136,7 @@ int SequenceDiagram::adjacentPacket(bool next)
it = data_->constEnd();
--it;
while (it != data_->constBegin()) {
- guint32 prev_frame = it.value().value->frame_number;
+ uint32_t prev_frame = it.value().value->frame_number;
--it;
if (prev_frame == selected_packet_) {
adjacent_packet = it.value().value->frame_number;
diff --git a/ui/qt/sequence_diagram.h b/ui/qt/sequence_diagram.h
index 2bab3a08f3..a3c1327dcb 100644
--- a/ui/qt/sequence_diagram.h
+++ b/ui/qt/sequence_diagram.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <epan/address.h>
#include <QObject>
@@ -75,7 +73,7 @@ private:
QCPAxis *comment_axis_;
WSCPSeqDataMap *data_;
struct _seq_analysis_info *sainfo_;
- guint32 selected_packet_;
+ uint32_t selected_packet_;
double selected_key_;
};
diff --git a/ui/qt/sequence_dialog.cpp b/ui/qt/sequence_dialog.cpp
index af38249e62..23cf0f1c77 100644
--- a/ui/qt/sequence_dialog.cpp
+++ b/ui/qt/sequence_dialog.cpp
@@ -35,8 +35,8 @@
#include <QPoint>
// To do:
-// - Resize or show + hide the Time and Comment axes, possibly via one of
-// the following:
+// - Resize or show + hide the Time and Comment axes (#4972), possibly via
+// one of the following:
// - Split the time, diagram, and comment sections into three separate
// widgets inside a QSplitter. This would resemble the GTK+ UI, but we'd
// have to coordinate between the three and we'd lose time and comment
@@ -47,15 +47,18 @@
// Drawing a QCPItemLine or QCPItemPixmap over each Y axis might make
// this easier.
// - For general flows, let the user show columns other than COL_INFO.
+// (#12549)
// - Add UTF8 to text dump
// - Save to XMI? https://www.spinellis.gr/umlgraph/
-// - Time: abs vs delta
+// - Save to SVG? https://www.qcustomplot.com/index.php/support/forum/1677
+// - Time: abs vs delta (XXX - This is currently achieved by changing
+// View->Time Display Format before opening the dialog.)
// - Hide nodes
-// - Clickable time + comments?
+// - Clickable time + comments? (XXX - Clicking on them selects the item for
+// the row, is there anything else?)
// - Incorporate packet comments?
// - Change line_style to seq_type (i.e. draw ACKs dashed)
// - Create WSGraph subclasses with common behavior.
-// - Help button and text
static const double min_top_ = -1.0;
static const double min_left_ = -0.5;
@@ -66,14 +69,15 @@ typedef struct {
SequenceInfo *info;
} sequence_items_t;
-SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info) :
+SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info, bool voipFeatures) :
WiresharkDialog(parent, cf),
ui(new Ui::SequenceDialog),
info_(info),
num_items_(0),
packet_num_(0),
sequence_w_(1),
- voipFeaturesEnabled(false)
+ current_rtp_sai_hovered_(nullptr),
+ voipFeaturesEnabled(voipFeatures)
{
QAction *action;
@@ -86,6 +90,7 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i
if (!info_) {
info_ = new SequenceInfo(sequence_analysis_info_new());
info_->sainfo()->name = "any";
+ info_->sainfo()->any_addr = true;
} else {
info_->ref();
sequence_analysis_free_nodes(info_->sainfo());
@@ -162,7 +167,18 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i
action->setEnabled(false);
set_action_shortcuts_visible_in_context_menu(ctx_menu_.actions());
- ui->addressComboBox->setCurrentIndex(0);
+ sp->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(sp, &QCustomPlot::customContextMenuRequested, this, &SequenceDialog::showContextMenu);
+
+ ui->addressComboBox->addItem(tr("Any"), QVariant(true));
+ ui->addressComboBox->addItem(tr("Network"), QVariant(false));
+ ui->addressComboBox->setCurrentIndex(ui->addressComboBox->findData(QVariant(true)));
+
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+ connect(ui->addressComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &SequenceDialog::addressChanged);
+#else
+ connect(ui->addressComboBox, &QComboBox::currentIndexChanged, this, &SequenceDialog::addressChanged);
+#endif
sequence_items_t item_data;
@@ -189,10 +205,20 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i
close_bt->setDefault(true);
}
+ enableVoIPFeatures();
+
+ // Enable or disable VoIP features before adding the ProgressFrame,
+ // because the layout position depends on whether player_button_ is
+ // visible.
ProgressFrame::addToButtonBox(ui->buttonBox, &parent);
loadGeometry(parent.width(), parent.height() * 4 / 5);
+ if (cf.isValid() && cf.displayFilter().length() > 0) {
+ ui->displayFilterCheckBox->setChecked(true);
+ }
+
+ connect(ui->displayFilterCheckBox, &QCheckBox::toggled, this, &SequenceDialog::displayFilterCheckBoxToggled);
connect(ui->horizontalScrollBar, SIGNAL(valueChanged(int)), this, SLOT(hScrollBarChanged(int)));
connect(ui->verticalScrollBar, SIGNAL(valueChanged(int)), this, SLOT(vScrollBarChanged(int)));
connect(sp->xAxis2, SIGNAL(rangeChanged(QCPRange)), this, SLOT(xAxisChanged(QCPRange)));
@@ -200,10 +226,7 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i
connect(sp, SIGNAL(mousePress(QMouseEvent*)), this, SLOT(diagramClicked(QMouseEvent*)));
connect(sp, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(mouseMoved(QMouseEvent*)));
connect(sp, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(mouseWheeled(QWheelEvent*)));
-
- // Button must be enabled by VoIP dialogs
- player_button_->setVisible(false);
- player_button_->setEnabled(false);
+ connect(sp, &QCustomPlot::afterLayout, this, &SequenceDialog::layoutAxisLabels);
}
SequenceDialog::~SequenceDialog()
@@ -214,10 +237,10 @@ SequenceDialog::~SequenceDialog()
void SequenceDialog::enableVoIPFeatures()
{
- voipFeaturesEnabled = true;
- player_button_->setVisible(true);
- ui->actionSelectRtpStreams->setVisible(true);
- ui->actionDeselectRtpStreams->setVisible(true);
+ player_button_->setVisible(voipFeaturesEnabled);
+ ui->actionSelectRtpStreams->setVisible(voipFeaturesEnabled);
+ ui->actionDeselectRtpStreams->setVisible(voipFeaturesEnabled);
+ // Buttons and actions are enabled when valid call selected
}
void SequenceDialog::updateWidgets()
@@ -329,7 +352,7 @@ void SequenceDialog::hScrollBarChanged(int value)
{
if (qAbs(ui->sequencePlot->xAxis2->range().center()-value/100.0) > 0.01) {
ui->sequencePlot->xAxis2->setRange(value/100.0, ui->sequencePlot->xAxis2->range().size(), Qt::AlignCenter);
- ui->sequencePlot->replot();
+ ui->sequencePlot->replot(QCustomPlot::rpQueuedReplot);
}
}
@@ -337,7 +360,7 @@ void SequenceDialog::vScrollBarChanged(int value)
{
if (qAbs(ui->sequencePlot->yAxis->range().center()-value/100.0) > 0.01) {
ui->sequencePlot->yAxis->setRange(value/100.0, ui->sequencePlot->yAxis->range().size(), Qt::AlignCenter);
- ui->sequencePlot->replot();
+ ui->sequencePlot->replot(QCustomPlot::rpQueuedReplot);
}
}
@@ -353,6 +376,11 @@ void SequenceDialog::yAxisChanged(QCPRange range)
ui->verticalScrollBar->setPageStep(qRound(qreal(range.size()*100.0)));
}
+void SequenceDialog::showContextMenu(const QPoint &pos)
+{
+ ctx_menu_.popup(ui->sequencePlot->mapToGlobal(pos));
+}
+
void SequenceDialog::diagramClicked(QMouseEvent *event)
{
current_rtp_sai_selected_ = NULL;
@@ -376,13 +404,6 @@ void SequenceDialog::diagramClicked(QMouseEvent *event)
case Qt::LeftButton:
on_actionGoToPacket_triggered();
break;
- case Qt::RightButton:
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0 ,0)
- ctx_menu_.popup(event->globalPosition().toPoint());
-#else
- ctx_menu_.popup(event->globalPos());
-#endif
- break;
default:
break;
}
@@ -471,14 +492,55 @@ void SequenceDialog::exportDiagram()
if (file_name.length() > 0) {
bool save_ok = false;
+ // The QCustomPlot save functions take a width and a height, measured
+ // in pixels (for the entire viewport).
+ // In order to display the whole graph, we have to change the axes
+ // and scale up the width and height appropriately so that the text
+ // has the proper spacing. (Using the scale factor in some of the
+ // image writing functions makes the text illegible.)
+ // If we set the axes back to their old value without replotting,
+ // there's no visual effects from doing this.
+ QCustomPlot *sp = ui->sequencePlot;
+ QCPRange old_yrange = sp->yAxis->range();
+ QCPRange old_xrange = sp->xAxis2->range();
+ // For the horizontal aspect, we'll display all the nodes.
+ // Nodes can excluded by filtering (hiding nodes is in the todo list.)
+ // Use the current width of a node as determined by the user zooming
+ // with Key_Plus and Key_Minus, multiply that by the number of nodes,
+ // and add in the margin from the Time and Comment columns.
+ // MAX_NUM_NODES is 40, which results in a manageable 8802 pixel width
+ // at the default zoom level on my Linux box.
+ // (If the user has zoomed in unreasonably, that's on the user.)
+ int hmargin = sp->axisRect()->outerRect().width() - sp->axisRect()->width();
+ double nodeSize = (sp->axisRect()->width()) / old_xrange.size();
+ // For the vertical aspect, we need to put a bound on the number of
+ // pixels or items we'll put in an image, as it can get far too large.
+ // (JPEG only supports 16 bit aspect sizes, PNG supports 31 bit but
+ // many viewers don't.)
+ int vmargin = sp->axisRect()->outerRect().height() - sp->axisRect()->height();
+ // 1000 items is a little over 27000 pixels in height on my machine.
+ // XXX - Should this pref be pixels instead of items?
+ //int max_pixel = 24576;
+ //double range_span = ((max_pixel - vmargin) / (one_em_ * 1.5));
+ double range_span = prefs.flow_graph_max_export_items;
+ // Start at the current top item, and QCPRange::bounded does what
+ // we want, with margins of 1.0 on top and bottom.
+ QCPRange new_yrange(old_yrange.lower, old_yrange.lower + range_span);
+ new_yrange = new_yrange.bounded(min_top_, num_items_);
+ sp->yAxis->setRange(new_yrange);
+ // margins of 0.5 on left and right for port number, etc.
+ sp->xAxis2->setRange(min_left_, info_->sainfo()->num_nodes - 0.5);
+ // As seen in resetAxes(), we have an item take ~ 1.5*one_em_ pixels.
+ int ySize = new_yrange.size() * (one_em_ * 1.5) + vmargin;
+ int xSize = (nodeSize * info_->sainfo()->num_nodes) + hmargin;
if (extension.compare(pdf_filter) == 0) {
- save_ok = ui->sequencePlot->savePdf(file_name);
+ save_ok = ui->sequencePlot->savePdf(file_name, xSize, ySize);
} else if (extension.compare(png_filter) == 0) {
- save_ok = ui->sequencePlot->savePng(file_name);
+ save_ok = ui->sequencePlot->savePng(file_name, xSize, ySize);
} else if (extension.compare(bmp_filter) == 0) {
- save_ok = ui->sequencePlot->saveBmp(file_name);
+ save_ok = ui->sequencePlot->saveBmp(file_name, xSize, ySize);
} else if (extension.compare(jpeg_filter) == 0) {
- save_ok = ui->sequencePlot->saveJpg(file_name);
+ save_ok = ui->sequencePlot->saveJpg(file_name, xSize, ySize);
} else if (extension.compare(ascii_filter) == 0 && !file_closed_ && info_->sainfo()) {
FILE *outfile = ws_fopen(file_name.toUtf8().constData(), "w");
if (outfile != NULL) {
@@ -489,11 +551,13 @@ void SequenceDialog::exportDiagram()
save_ok = false;
}
}
+ sp->yAxis->setRange(old_yrange);
+ sp->xAxis2->setRange(old_xrange);
// else error dialog?
if (save_ok) {
mainApp->setLastOpenDirFromFilename(file_name);
} else {
- open_failure_alert_box(file_name.toUtf8().constData(), errno, TRUE);
+ open_failure_alert_box(file_name.toUtf8().constData(), errno, true);
}
}
}
@@ -522,7 +586,7 @@ void SequenceDialog::fillDiagram()
NULL, sequence_analysis_get_packet_func(analysis), NULL, NULL);
if (error_string) {
report_failure("Sequence dialog - tap registration failed: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
cf_retap_packets(cap_file_.capFile());
@@ -552,12 +616,20 @@ void SequenceDialog::panAxes(int x_pixels, int y_pixels)
double v_pan = 0.0;
h_pan = sp->xAxis2->range().size() * x_pixels / sp->xAxis2->axisRect()->width();
+ // The nodes are placed on integer x values from 0 to num_nodes - 1.
+ // We allow 0.5 of margin around a node (also reflected in the
+ // horizontalScrollBar range.)
if (h_pan < 0) {
h_pan = qMax(h_pan, min_left_ - sp->xAxis2->range().lower);
} else {
- h_pan = qMin(h_pan, info_->sainfo()->num_nodes - sp->xAxis2->range().upper);
+ h_pan = qMin(h_pan, info_->sainfo()->num_nodes - 0.5 - sp->xAxis2->range().upper);
}
+ if (sp->yAxis->rangeReversed()) {
+ // For reversed axes, lower still references the mathematically
+ // smaller number than upper, so reverse the direction.
+ y_pixels = -y_pixels;
+ }
v_pan = sp->yAxis->range().size() * y_pixels / sp->yAxis->axisRect()->height();
if (v_pan < 0) {
v_pan = qMax(v_pan, min_top_ - sp->yAxis->range().lower);
@@ -565,13 +637,13 @@ void SequenceDialog::panAxes(int x_pixels, int y_pixels)
v_pan = qMin(v_pan, num_items_ - sp->yAxis->range().upper);
}
- if (h_pan && !(sp->xAxis2->range().contains(min_left_) && sp->xAxis2->range().contains(info_->sainfo()->num_nodes))) {
+ if (h_pan && !(sp->xAxis2->range().contains(min_left_) && sp->xAxis2->range().contains(info_->sainfo()->num_nodes - 0.5))) {
sp->xAxis2->moveRange(h_pan);
- sp->replot();
+ sp->replot(QCustomPlot::rpQueuedReplot);
}
if (v_pan && !(sp->yAxis->range().contains(min_top_) && sp->yAxis->range().contains(num_items_))) {
sp->yAxis->moveRange(v_pan);
- sp->replot();
+ sp->replot(QCustomPlot::rpQueuedReplot);
}
}
@@ -595,21 +667,29 @@ void SequenceDialog::resetAxes(bool keep_lower)
sp->yAxis->setRange(top_pos, range_span + top_pos);
double rmin = sp->xAxis2->range().size() / 2;
- ui->horizontalScrollBar->setRange((rmin - 0.5) * 100, (info_->sainfo()->num_nodes - 0.5 - rmin) * 100);
+ ui->horizontalScrollBar->setRange((rmin + min_left_) * 100, (info_->sainfo()->num_nodes - 0.5 - rmin) * 100);
xAxisChanged(sp->xAxis2->range());
ui->horizontalScrollBar->setValue(ui->horizontalScrollBar->minimum()); // Shouldn't be needed.
rmin = (sp->yAxis->range().size() / 2);
- ui->verticalScrollBar->setRange((rmin - 1.0) * 100, (num_items_ - 0.5 - rmin) * 100);
+ ui->verticalScrollBar->setRange((rmin + min_top_) * 100, (num_items_ - 0.5 - rmin) * 100);
yAxisChanged(sp->yAxis->range());
+ sp->replot(QCustomPlot::rpQueuedReplot);
+}
+
+void SequenceDialog::layoutAxisLabels()
+{
// It would be exceedingly handy if we could do one or both of the
// following:
// - Position an axis label above its axis inline with the tick labels.
// - Anchor a QCPItemText to one of the corners of a QCPAxis.
- // Neither of those appear to be possible, so we first call replot in
- // order to lay out our X axes, place our labels, the call replot again.
- sp->replot(QCustomPlot::rpQueuedReplot);
+ // Neither of those appear to be possible, so we place our labels using
+ // absolute positioning immediately after the layout size and positions
+ // are set, and right before the replot (or print) draw step occurs,
+ // using the new QCustomPlot 2.1.0 QCustomPlot::afterLayout signal.
+
+ QCustomPlot *sp = ui->sequencePlot;
QRect axis_rect = sp->axisRect()->rect();
@@ -623,8 +703,6 @@ void SequenceDialog::resetAxes(bool keep_lower)
+ sp->yAxis2->tickLabelPadding()
+ sp->yAxis2->offset(),
axis_rect.top() / 2);
-
- sp->replot(QCustomPlot::rpRefreshHint);
}
void SequenceDialog::resetView()
@@ -635,7 +713,7 @@ void SequenceDialog::resetView()
void SequenceDialog::on_actionGoToPacket_triggered()
{
if (!file_closed_ && packet_num_ > 0) {
- cf_goto_frame(cap_file_.capFile(), packet_num_, FALSE);
+ cf_goto_frame(cap_file_.capFile(), packet_num_, false);
seq_diagram_->setSelectedPacket(packet_num_);
}
}
@@ -686,12 +764,12 @@ void SequenceDialog::goToAdjacentPacket(bool next)
}
sp->yAxis->moveRange(range_offset);
}
- cf_goto_frame(cap_file_.capFile(), adjacent_packet, FALSE);
+ cf_goto_frame(cap_file_.capFile(), adjacent_packet, false);
seq_diagram_->setSelectedPacket(adjacent_packet);
}
}
-void SequenceDialog::on_displayFilterCheckBox_toggled(bool)
+void SequenceDialog::displayFilterCheckBoxToggled(bool)
{
fillDiagram();
}
@@ -707,16 +785,15 @@ void SequenceDialog::on_flowComboBox_activated(int index)
fillDiagram();
}
-void SequenceDialog::on_addressComboBox_activated(int index)
+void SequenceDialog::addressChanged(int)
{
if (!info_->sainfo()) return;
- if (index == 0) {
- info_->sainfo()->any_addr = TRUE;
- } else {
- info_->sainfo()->any_addr = FALSE;
+ QVariant data = ui->addressComboBox->currentData();
+ if (data.isValid()) {
+ info_->sainfo()->any_addr = data.toBool();
+ fillDiagram();
}
- fillDiagram();
}
void SequenceDialog::on_actionMoveRight10_triggered()
@@ -826,7 +903,7 @@ bool SequenceDialog::addFlowSequenceItem(const void* key, void *value, void *use
/* XXX - Although "voip" isn't a registered name yet, it appears to have special
handling that will be done outside of registered data */
if (strcmp(name, "voip") == 0)
- return FALSE;
+ return false;
item_data->flow->addItem(sequence_analysis_get_ui_name(analysis), VariantPointer<register_analysis_t>::asQVariant(analysis));
@@ -835,7 +912,7 @@ bool SequenceDialog::addFlowSequenceItem(const void* key, void *value, void *use
item_data->curr_index++;
- return FALSE;
+ return false;
}
QVector<rtpstream_id_t *>SequenceDialog::getSelectedRtpIds()
diff --git a/ui/qt/sequence_dialog.h b/ui/qt/sequence_dialog.h
index 725f5bcd11..b2e5cae8e6 100644
--- a/ui/qt/sequence_dialog.h
+++ b/ui/qt/sequence_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include "epan/packet.h"
@@ -49,9 +47,8 @@ class SequenceDialog : public WiresharkDialog
Q_OBJECT
public:
- explicit SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info = NULL);
+ explicit SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info = NULL, bool voipFeatures = false);
~SequenceDialog();
- void enableVoIPFeatures();
protected:
bool event(QEvent *event);
@@ -72,6 +69,7 @@ private slots:
void vScrollBarChanged(int value);
void xAxisChanged(QCPRange range);
void yAxisChanged(QCPRange range);
+ void showContextMenu(const QPoint &pos);
void diagramClicked(QMouseEvent *event);
void mouseMoved(QMouseEvent *event);
void mouseWheeled(QWheelEvent *event);
@@ -79,14 +77,16 @@ private slots:
void fillDiagram();
void resetView();
void exportDiagram();
+ void layoutAxisLabels();
+
+ void addressChanged(int index);
+ void displayFilterCheckBoxToggled(bool checked);
void on_buttonBox_clicked(QAbstractButton *button);
void on_actionGoToPacket_triggered();
void on_actionGoToNextPacket_triggered() { goToAdjacentPacket(true); }
void on_actionGoToPreviousPacket_triggered() { goToAdjacentPacket(false); }
- void on_displayFilterCheckBox_toggled(bool checked);
void on_flowComboBox_activated(int index);
- void on_addressComboBox_activated(int index);
void on_actionMoveRight10_triggered();
void on_actionMoveLeft10_triggered();
void on_actionMoveUp10_triggered();
@@ -110,7 +110,7 @@ private:
SequenceDiagram *seq_diagram_;
SequenceInfo *info_;
int num_items_;
- guint32 packet_num_;
+ uint32_t packet_num_;
double one_em_;
int sequence_w_;
QPushButton *reset_button_;
@@ -124,6 +124,7 @@ private:
QPointer<RtpStreamDialog> rtp_stream_dialog_; // Singleton pattern used
bool voipFeaturesEnabled;
+ void enableVoIPFeatures();
void zoomXAxis(bool in);
void panAxes(int x_pixels, int y_pixels);
void resetAxes(bool keep_lower = false);
diff --git a/ui/qt/sequence_dialog.ui b/ui/qt/sequence_dialog.ui
index a62e76e043..d116952e93 100644
--- a/ui/qt/sequence_dialog.ui
+++ b/ui/qt/sequence_dialog.ui
@@ -156,16 +156,6 @@
</item>
<item>
<widget class="QComboBox" name="addressComboBox">
- <item>
- <property name="text">
- <string>Any</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Network</string>
- </property>
- </item>
</widget>
</item>
</layout>
diff --git a/ui/qt/service_response_time_dialog.cpp b/ui/qt/service_response_time_dialog.cpp
index 95bd4801a7..31c86d5801 100644
--- a/ui/qt/service_response_time_dialog.cpp
+++ b/ui/qt/service_response_time_dialog.cpp
@@ -66,7 +66,7 @@ bool register_service_response_tables(const void *, void *value, void*)
srt_init,
tpd_creator);
g_free(cfg_abbr);
- return FALSE;
+ return false;
}
enum {
@@ -205,7 +205,7 @@ ServiceResponseTimeDialog::~ServiceResponseTimeDialog()
{
if (srt_data_.srt_array) {
free_srt_table(srt_, srt_data_.srt_array);
- g_array_free(srt_data_.srt_array, TRUE);
+ g_array_free(srt_data_.srt_array, true);
}
}
@@ -259,7 +259,7 @@ void ServiceResponseTimeDialog::tapDraw(void *srtd_ptr)
void ServiceResponseTimeDialog::endRetapPackets()
{
- for (guint i = 0; i < srt_data_.srt_array->len; i++) {
+ for (unsigned i = 0; i < srt_data_.srt_array->len; i++) {
srt_stat_table *srt_table = g_array_index(srt_data_.srt_array, srt_stat_table*, i);
addSrtTable(srt_table);
}
@@ -270,9 +270,9 @@ void ServiceResponseTimeDialog::fillTree()
{
if (srt_data_.srt_array) {
free_srt_table(srt_, srt_data_.srt_array);
- g_array_free(srt_data_.srt_array, TRUE);
+ g_array_free(srt_data_.srt_array, true);
}
- srt_data_.srt_array = g_array_new(FALSE, TRUE, sizeof(srt_stat_table*));
+ srt_data_.srt_array = g_array_new(false, true, sizeof(srt_stat_table*));
srt_data_.user_data = this;
provideParameterData();
diff --git a/ui/qt/show_packet_bytes_dialog.cpp b/ui/qt/show_packet_bytes_dialog.cpp
index 612ac969e5..2151145f9f 100644
--- a/ui/qt/show_packet_bytes_dialog.cpp
+++ b/ui/qt/show_packet_bytes_dialog.cpp
@@ -534,7 +534,7 @@ void ShowPacketBytesDialog::symbolizeBuffer(QByteArray &ba)
ba.replace((char)0x7f, symbol); // DEL
}
-QByteArray ShowPacketBytesDialog::decodeQuotedPrintable(const guint8 *bytes, int length)
+QByteArray ShowPacketBytesDialog::decodeQuotedPrintable(const uint8_t *bytes, int length)
{
QByteArray ba;
@@ -562,7 +562,7 @@ QByteArray ShowPacketBytesDialog::decodeQuotedPrintable(const guint8 *bytes, int
void ShowPacketBytesDialog::rot13(QByteArray &ba)
{
for (int i = 0; i < ba.length(); i++) {
- gchar upper = g_ascii_toupper(ba[i]);
+ char upper = g_ascii_toupper(ba[i]);
if (upper >= 'A' && upper <= 'M') ba[i] = ba[i] + 13;
else if (upper >= 'N' && upper <= 'Z') ba[i] = ba[i] - 13;
}
@@ -572,8 +572,8 @@ void ShowPacketBytesDialog::updateFieldBytes(bool initialization)
{
int start = finfo_->start + start_;
int length = end_ - start_ + 1;
- const guint8 *bytes;
- gsize new_length = 0;
+ const uint8_t *bytes;
+ size_t new_length = 0;
if (!finfo_->ds_tvb)
return;
@@ -620,7 +620,7 @@ void ShowPacketBytesDialog::updateFieldBytes(bool initialization)
#if GLIB_CHECK_VERSION(2, 66, 0)
GBytes *ba = g_uri_unescape_bytes((const char*)bytes, length, NULL, NULL);
if (ba != NULL) {
- gsize size;
+ size_t size;
const char* data = (const char *)g_bytes_unref_to_data(ba, &size);
field_bytes_ = QByteArray(data, (int)size);
}
@@ -629,7 +629,7 @@ void ShowPacketBytesDialog::updateFieldBytes(bool initialization)
if (uri_to_bytes((const char*)bytes, ba, length)) {
field_bytes_ = QByteArray((const char *)ba->data, ba->len);
}
- g_byte_array_free(ba, TRUE);
+ g_byte_array_free(ba, true);
#endif
break;
}
@@ -659,7 +659,7 @@ void ShowPacketBytesDialog::updateFieldBytes(bool initialization)
void ShowPacketBytesDialog::updatePacketBytes(void)
{
- static const gchar hexchars[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
+ static const char hexchars[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
ui->tePacketBytes->clear();
ui->tePacketBytes->setCurrentFont(mainApp->monospaceFont());
@@ -690,7 +690,7 @@ void ShowPacketBytesDialog::updatePacketBytes(void)
QString text("char packet_bytes[] = {\n");
while (pos < len) {
- gchar hexbuf[256];
+ char hexbuf[256];
char *cur = hexbuf;
int i;
@@ -727,7 +727,7 @@ void ShowPacketBytesDialog::updatePacketBytes(void)
QString text("let packet_bytes: [u8; _] = [\n");
while (pos < len) {
- gchar hexbuf[256];
+ char hexbuf[256];
char *cur = hexbuf;
int i;
@@ -775,7 +775,7 @@ void ShowPacketBytesDialog::updatePacketBytes(void)
case SHOW_EBCDIC:
{
QByteArray ba(field_bytes_);
- EBCDIC_to_ASCII((guint8*)ba.data(), static_cast<int>(ba.length()));
+ EBCDIC_to_ASCII((uint8_t*)ba.data(), static_cast<int>(ba.length()));
sanitizeBuffer(ba, false);
ui->tePacketBytes->setLineWrapMode(QTextEdit::WidgetWidth);
ui->tePacketBytes->setPlainText(ba);
diff --git a/ui/qt/show_packet_bytes_dialog.h b/ui/qt/show_packet_bytes_dialog.h
index 80201c81ff..85cdafca7e 100644
--- a/ui/qt/show_packet_bytes_dialog.h
+++ b/ui/qt/show_packet_bytes_dialog.h
@@ -11,7 +11,6 @@
#define SHOW_PACKET_BYTES_DIALOG_H
#include <config.h>
-#include <glib.h>
#include <stdio.h>
#ifdef HAVE_UNISTD_H
@@ -71,7 +70,7 @@ private:
void updateHintLabel();
void sanitizeBuffer(QByteArray &ba, bool handle_CR);
void symbolizeBuffer(QByteArray &ba);
- QByteArray decodeQuotedPrintable(const guint8 *bytes, int length);
+ QByteArray decodeQuotedPrintable(const uint8_t *bytes, int length);
void rot13(QByteArray &ba);
void updateFieldBytes(bool initialization = false);
void updatePacketBytes();
diff --git a/ui/qt/simple_dialog.cpp b/ui/qt/simple_dialog.cpp
index b45c7a195e..c5a57d4db1 100644
--- a/ui/qt/simple_dialog.cpp
+++ b/ui/qt/simple_dialog.cpp
@@ -90,8 +90,8 @@ simple_dialog_format_message(const char *msg)
return g_strdup(msg);
}
-gpointer
-simple_dialog(ESD_TYPE_E type, gint btn_mask, const gchar *msg_format, ...)
+void *
+simple_dialog(ESD_TYPE_E type, int btn_mask, const char *msg_format, ...)
{
va_list ap;
@@ -103,8 +103,8 @@ simple_dialog(ESD_TYPE_E type, gint btn_mask, const gchar *msg_format, ...)
return NULL;
}
-gpointer
-simple_dialog_async(ESD_TYPE_E type, gint btn_mask, const gchar *msg_format, ...)
+void *
+simple_dialog_async(ESD_TYPE_E type, int btn_mask, const char *msg_format, ...)
{
va_list ap;
@@ -121,7 +121,7 @@ simple_dialog_async(ESD_TYPE_E type, gint btn_mask, const gchar *msg_format, ...
* and checkbox, and optional secondary text.
*/
void
-simple_message_box(ESD_TYPE_E type, gboolean *notagain,
+simple_message_box(ESD_TYPE_E type, bool *notagain,
const char *secondary_msg, const char *msg_format, ...)
{
if (notagain && *notagain) {
@@ -202,7 +202,7 @@ SimpleDialog::SimpleDialog(QWidget *parent, ESD_TYPE_E type, int btn_mask, const
check_box_(0),
message_box_(0)
{
- gchar *vmessage;
+ char *vmessage;
QString message;
vmessage = ws_strdup_vprintf(msg_format, ap);
diff --git a/ui/qt/simple_dialog.h b/ui/qt/simple_dialog.h
index 2afda98d0e..32163e0959 100644
--- a/ui/qt/simple_dialog.h
+++ b/ui/qt/simple_dialog.h
@@ -14,8 +14,6 @@
#include <stdio.h>
-#include <glib.h>
-
#include "ui/simple_dialog.h"
#include <QPair>
diff --git a/ui/qt/simple_statistics_dialog.cpp b/ui/qt/simple_statistics_dialog.cpp
index ae7156030c..c03d6befd6 100644
--- a/ui/qt/simple_statistics_dialog.cpp
+++ b/ui/qt/simple_statistics_dialog.cpp
@@ -47,7 +47,7 @@ bool register_simple_stat_tables(const void *key, void *value, void*) {
stu->group,
simple_stat_init,
SimpleStatisticsDialog::createSimpleStatisticsDialog);
- return FALSE;
+ return false;
}
enum {
@@ -188,7 +188,7 @@ void SimpleStatisticsDialog::addMissingRows(struct _stat_data_t *stat_data)
// the top-level tree item text set to the column labels for that table.
// Add any missing tables and rows.
- for (guint table_idx = 0; table_idx < stat_data->stat_tap_data->tables->len; table_idx++) {
+ for (unsigned table_idx = 0; table_idx < stat_data->stat_tap_data->tables->len; table_idx++) {
stat_tap_table* st_table = g_array_index(stat_data->stat_tap_data->tables, stat_tap_table*, table_idx);
QTreeWidgetItem *ti = NULL;
@@ -200,7 +200,7 @@ void SimpleStatisticsDialog::addMissingRows(struct _stat_data_t *stat_data)
} else {
ti = statsTreeWidget()->topLevelItem(table_idx);
}
- for (guint element = ti->childCount(); element < st_table->num_elements; element++) {
+ for (unsigned element = ti->childCount(); element < st_table->num_elements; element++) {
stat_tap_table_item_type* fields = stat_tap_get_field_data(st_table, element, 0);
if (stu_->nfields > 0) {
SimpleStatisticsTreeWidgetItem *ss_ti = new SimpleStatisticsTreeWidgetItem(ti, st_table->num_fields, fields);
diff --git a/ui/qt/stats_tree_dialog.cpp b/ui/qt/stats_tree_dialog.cpp
index d9b411bde3..f51e252a6f 100644
--- a/ui/qt/stats_tree_dialog.cpp
+++ b/ui/qt/stats_tree_dialog.cpp
@@ -165,7 +165,7 @@ void StatsTreeDialog::drawTreeItems(void *st_ptr)
while (*iter) {
stat_node *node = VariantPointer<stat_node>::asPtr((*iter)->data(item_col_, Qt::UserRole));
if (node) {
- gchar **valstrs = stats_tree_get_values_from_node(node);
+ char **valstrs = stats_tree_get_values_from_node(node);
for (int count = 0; count<st->num_columns; count++) {
(*iter)->setText(count,valstrs[count]);
g_free(valstrs[count]);
diff --git a/ui/qt/stats_tree_dialog.h b/ui/qt/stats_tree_dialog.h
index de040811d4..a5f0a2362f 100644
--- a/ui/qt/stats_tree_dialog.h
+++ b/ui/qt/stats_tree_dialog.h
@@ -14,8 +14,6 @@
#include <config.h>
-#include <glib.h>
-
#include "epan/stats_tree_priv.h"
struct _tree_cfg_pres {
diff --git a/ui/qt/supported_protocols_dialog.cpp b/ui/qt/supported_protocols_dialog.cpp
index eea2d738d6..10457f233e 100644
--- a/ui/qt/supported_protocols_dialog.cpp
+++ b/ui/qt/supported_protocols_dialog.cpp
@@ -93,6 +93,6 @@ void SupportedProtocolsDialog::on_searchLineEdit_textChanged(const QString &sear
* the countdown.
*/
searchLineEditText = search_re;
- guint gui_debounce_timer = prefs_get_uint_value("gui", "debounce.timer");
+ unsigned gui_debounce_timer = prefs_get_uint_value("gui", "debounce.timer");
searchLineEditTimer->start(gui_debounce_timer);
}
diff --git a/ui/qt/tap_parameter_dialog.h b/ui/qt/tap_parameter_dialog.h
index 1ed9db7879..84a6f69e24 100644
--- a/ui/qt/tap_parameter_dialog.h
+++ b/ui/qt/tap_parameter_dialog.h
@@ -18,8 +18,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/stat_groups.h>
#include <epan/stat_tap_ui.h>
diff --git a/ui/qt/tcp_stream_dialog.cpp b/ui/qt/tcp_stream_dialog.cpp
index 88f0063da0..a8e4079f49 100644
--- a/ui/qt/tcp_stream_dialog.cpp
+++ b/ui/qt/tcp_stream_dialog.cpp
@@ -45,6 +45,8 @@
// - ACK & RWIN segment ticks in tcptrace graph
// - Add missing elements (retrans, URG, SACK, etc) to tcptrace. It probably makes
// sense to subclass QCPGraph for this.
+// - Allow switching the tracer between graphs when there are two / selecting
+// the other graph, at the very least if base_graph_ is disabled.
// The GTK+ version computes a 20 (or 21!) segment moving average. Comment
// out the line below to use that. By default we use a 1 second MA.
@@ -73,6 +75,7 @@ const QString segment_length_label_ = QObject::tr("Segment Length (B)");
const QString sequence_number_label_ = QObject::tr("Sequence Number (B)");
const QString time_s_label_ = QObject::tr("Time (s)");
const QString window_size_label_ = QObject::tr("Window Size (B)");
+const QString cwnd_label_ = QObject::tr("Unacked (Outstanding) Bytes (B)");
QCPErrorBarsNotSelectable::QCPErrorBarsNotSelectable(QCPAxis *keyAxis, QCPAxis *valueAxis) :
QCPErrorBars(keyAxis, valueAxis)
@@ -133,8 +136,8 @@ TCPStreamDialog::TCPStreamDialog(QWidget *parent, capture_file *cf, tcp_graph_ty
ui->streamNumberSpinBox->setStyleSheet("QSpinBox { min-width: 2em; }");
- guint32 th_stream = select_tcpip_session(cap_file_);
- if (th_stream == G_MAXUINT32) {
+ uint32_t th_stream = select_tcpip_session(cap_file_);
+ if (th_stream == UINT32_MAX) {
done(QDialog::Rejected);
return;
}
@@ -181,6 +184,7 @@ TCPStreamDialog::TCPStreamDialog(QWidget *parent, capture_file *cf, tcp_graph_ty
ctx_menu_.addAction(ui->actionToggleSequenceNumbers);
ctx_menu_.addAction(ui->actionToggleTimeOrigin);
ctx_menu_.addAction(ui->actionCrosshairs);
+ connect(ui->actionCrosshairs, &QAction::triggered, this, &TCPStreamDialog::toggleTracerStyle);
ctx_menu_.addSeparator();
ctx_menu_.addAction(ui->actionRoundTripTime);
ctx_menu_.addAction(ui->actionThroughput);
@@ -189,6 +193,11 @@ TCPStreamDialog::TCPStreamDialog(QWidget *parent, capture_file *cf, tcp_graph_ty
ctx_menu_.addAction(ui->actionWindowScaling);
set_action_shortcuts_visible_in_context_menu(ctx_menu_.actions());
+ QCustomPlot *sp = ui->streamPlot;
+
+ sp->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(sp, &QCustomPlot::customContextMenuRequested, this, &TCPStreamDialog::showContextMenu);
+
graph_.type = graph_type;
graph_.stream = th_stream;
findStream();
@@ -226,7 +235,6 @@ TCPStreamDialog::TCPStreamDialog(QWidget *parent, capture_file *cf, tcp_graph_ty
ui->showBytesOutCheckBox->setChecked(true);
ui->showBytesOutCheckBox->blockSignals(false);
- QCustomPlot *sp = ui->streamPlot;
QCPTextElement *file_title = new QCPTextElement(sp, gchar_free_to_qstring(cf_get_display_name(cap_file_)));
file_title->setFont(sp->xAxis->labelFont());
title_ = new QCPTextElement(sp);
@@ -563,9 +571,13 @@ void TCPStreamDialog::fillGraph(bool reset_axes, bool set_focus)
ts_offset_ = 0;
seq_offset_ = 0;
- bool first = true;
- guint64 bytes_fwd = 0;
- guint64 bytes_rev = 0;
+ bool ts_unset = ts_origin_conn_;
+ // seq_origin_zero_ defaults to true. It really means something like
+ // "use relative or absolute depending on the TCP dissector preferences".
+ // If it's false, then calculate the offset to convert to the other.
+ bool seq_unset = !seq_origin_zero_;
+ uint64_t bytes_fwd = 0;
+ uint64_t bytes_rev = 0;
int pkts_fwd = 0;
int pkts_rev = 0;
@@ -585,15 +597,37 @@ void TCPStreamDialog::fillGraph(bool reset_axes, bool set_focus)
pkts_fwd++;
}
double ts = seg->rel_secs + seg->rel_usecs / 1000000.0;
- if (first) {
- if (ts_origin_conn_) ts_offset_ = ts;
- if (seq_origin_zero_) {
- if (compareHeaders(seg))
- seq_offset_ = seg->th_seq;
- else
- seq_offset_ = seg->th_ack;
+ if (ts_unset) {
+ ts_offset_ = ts;
+ ts_unset = false;
+ }
+ if (seq_unset) {
+ if (compareHeaders(seg)) {
+ if (seg->th_seq != seg->th_rawseq) {
+ seq_offset_ = seg->th_seq - seg->th_rawseq;
+ } else {
+ // As with the TCP dissector, if this isn't the SYN or SYN-ACK,
+ // start the relative sequence numbers at 1.
+ if (seg->th_flags & TH_SYN) {
+ seq_offset_ = seg->th_seq;
+ } else {
+ seq_offset_ = seg->th_seq - 1;
+ }
+ }
+ seq_unset = false;
+ } else {
+ // A SYN in the reverse direction does not tell us the base
+ // sequence number, but for other segments (including SYN-ACK)
+ // start the offset at 1, like the TCP dissector.
+ if ((seg->th_flags & TH_SYN) != TH_SYN) {
+ if (seg->th_seq != seg->th_rawseq) {
+ seq_offset_ = seg->th_seq - seg->th_rawseq;
+ } else {
+ seq_offset_ -= seg->th_ack - 1;
+ }
+ seq_unset = false;
+ }
}
- first = false;
}
if (insert) {
time_stamp_map_.insert(ts - ts_offset_, seg);
@@ -904,6 +938,7 @@ void TCPStreamDialog::fillTcptrace()
sack_eb_->setData(sack_span);
sack2_graph_->setData(sack2_time, sack2_center, true);
sack2_eb_->setData(sack2_span);
+ rwin_graph_->setValueAxis(sp->yAxis);
rwin_graph_->setData(ackrwin_time, rwin, true);
dup_ack_graph_->setData(dup_ack_time, dup_ack, true);
zero_win_graph_->setData(zero_win_time, zero_win, true);
@@ -920,7 +955,7 @@ void TCPStreamDialog::fillTcptrace()
// I expect this to be _relatively_ small, so using vector to store
// them. If this performs badly, it can be refactored with std::list
// or std::map.
-typedef std::pair<guint32, guint32> sack_t;
+typedef std::pair<uint32_t, uint32_t> sack_t;
typedef std::vector<sack_t> sack_list_t;
static inline bool compare_sack(const sack_t& s1, const sack_t& s2) {
return tcp_seq_before(s1.first, s2.first);
@@ -930,8 +965,8 @@ static inline bool compare_sack(const sack_t& s1, const sack_t& s2) {
// - removes previously sacked ranges from seglen (and from old_sacks),
// - adds newly sacked ranges to seglen (and to old_sacks)
static void
-goodput_adjust_for_sacks(guint32 *seglen, guint32 last_ack,
- sack_list_t& new_sacks, guint8 num_sack_ranges,
+goodput_adjust_for_sacks(uint32_t *seglen, uint32_t last_ack,
+ sack_list_t& new_sacks, uint8_t num_sack_ranges,
sack_list_t& old_sacks) {
// Step 1 - For any old_sacks acked by last_ack,
@@ -1200,8 +1235,8 @@ void TCPStreamDialog::fillThroughput()
QVector<double> tput_times, gput_times;
QVector<double> tputs, gputs;
int oldest_seg = 0, oldest_ack = 0;
- guint64 seg_sum = 0, ack_sum = 0;
- guint32 seglen = 0;
+ uint64_t seg_sum = 0, ack_sum = 0;
+ uint32_t seglen = 0;
#ifdef USE_SACKS_IN_GOODPUT_CALC
// to incorporate SACKED segments into goodput calculation,
@@ -1219,7 +1254,7 @@ void TCPStreamDialog::fillThroughput()
// need first acked sequence number to jump-start
// computation of acked bytes per packet
- guint32 last_ack = 0;
+ uint32_t last_ack = 0;
for (struct segment *seg = graph_.segments; seg != NULL; seg = seg->next) {
// first reverse packet with ACK flag tells us first acked sequence #
if (!compareHeaders(seg) && (seg->th_flags & TH_ACK)) {
@@ -1248,7 +1283,7 @@ void TCPStreamDialog::fillThroughput()
QVector<double>& r_Xput_times = is_forward_seg ? tput_times : gput_times;
QVector<double>& r_Xputs = is_forward_seg ? tputs : gputs;
int& r_oldest = is_forward_seg ? oldest_seg : oldest_ack;
- guint64& r_sum = is_forward_seg ? seg_sum : ack_sum;
+ uint64_t& r_sum = is_forward_seg ? seg_sum : ack_sum;
double ts = (seg->rel_secs + seg->rel_usecs / 1000000.0) - ts_offset_;
@@ -1458,9 +1493,15 @@ void TCPStreamDialog::fillRoundTripTime()
base_graph_->setLineStyle(QCPGraph::lsLine);
QVector<double> x_vals, rtt;
- guint32 seq_base = 0;
+ uint32_t seq_base = 0;
struct rtt_unack *unack_list = NULL, *u = NULL;
for (struct segment *seg = graph_.segments; seg != NULL; seg = seg->next) {
+ // XXX - Should this just use seq_offset_? Our comparisons are
+ // wraparound now and should be fine without computing a base
+ // (we're not doing anything to extend sequence numbers to handle
+ // connections longer than 4 GiB), and that would let the user swap.
+ // (We should make clicking the X axis swap seq_origin_zero_ if
+ // bySeqNumber is checked.)
if (compareHeaders(seg)) {
seq_base = seg->th_seq;
break;
@@ -1468,7 +1509,7 @@ void TCPStreamDialog::fillRoundTripTime()
}
for (struct segment *seg = graph_.segments; seg != NULL; seg = seg->next) {
if (compareHeaders(seg)) {
- guint32 seqno = seg->th_seq - seq_base;
+ uint32_t seqno = seg->th_seq - seq_base;
if (seg->th_seglen && !rtt_is_retrans(unack_list, seqno)) {
double rt_val = seg->rel_secs + seg->rel_usecs / 1000000.0;
rt_val -= ts_offset_;
@@ -1481,7 +1522,7 @@ void TCPStreamDialog::fillRoundTripTime()
rtt_put_unack_on_list(&unack_list, u);
}
} else {
- guint32 ack_no = seg->th_ack - seq_base;
+ uint32_t ack_no = seg->th_ack - seq_base;
double rt_val = seg->rel_secs + seg->rel_usecs / 1000000.0;
rt_val -= ts_offset_;
struct rtt_unack *v;
@@ -1514,8 +1555,8 @@ void TCPStreamDialog::fillRoundTripTime()
// If we link those back into the list between u and v,
// then each subsequent SACK selectively ACKs that range.
for (int i = 0; i < seg->num_sack_ranges; ++i) {
- guint32 left = seg->sack_left_edge[i] - seq_base;
- guint32 right = seg->sack_right_edge[i] - seq_base;
+ uint32_t left = seg->sack_left_edge[i] - seq_base;
+ uint32_t right = seg->sack_right_edge[i] - seq_base;
u = rtt_selectively_ack_range(x_vals, bySeqNumber, rtt,
&unack_list, u, v,
left, right, rt_val);
@@ -1548,7 +1589,7 @@ void TCPStreamDialog::fillWindowScale()
QVector<double> rel_time, win_size;
QVector<double> cwnd_time, cwnd_size;
- guint32 last_ack = 0;
+ uint32_t last_ack = 0;
bool found_first_ack = false;
for (struct segment *seg = graph_.segments; seg != NULL; seg = seg->next) {
double ts = seg->rel_secs + seg->rel_usecs / 1000000.0;
@@ -1557,7 +1598,7 @@ void TCPStreamDialog::fillWindowScale()
// from packets in the opposite direction
if (compareHeaders(seg)) {
// compute bytes_in_flight for cwnd graph
- guint32 end_seq = seg->th_seq + seg->th_seglen;
+ uint32_t end_seq = seg->th_seq + seg->th_seglen;
if (found_first_ack &&
tcp_seq_eq_or_after(end_seq, last_ack)) {
cwnd_time.append(ts - ts_offset_);
@@ -1565,7 +1606,7 @@ void TCPStreamDialog::fillWindowScale()
}
} else {
// packet in opposite direction - has advertised rwin
- guint16 flags = seg->th_flags;
+ uint16_t flags = seg->th_flags;
if ((flags & (TH_SYN|TH_RST)) == 0) {
rel_time.append(ts - ts_offset_);
@@ -1581,9 +1622,19 @@ void TCPStreamDialog::fillWindowScale()
}
}
}
+ /* base_graph_ is the one that the tracer is on and allows selecting
+ * segments. XXX - Is the congestion window more interesting to see
+ * the exact value and select?
+ */
base_graph_->setData(cwnd_time, cwnd_size);
+ rwin_graph_->setValueAxis(sp->yAxis2);
rwin_graph_->setData(rel_time, win_size);
- sp->yAxis->setLabel(window_size_label_);
+ sp->yAxis->setLabel(cwnd_label_);
+
+ sp->yAxis2->setLabel(window_size_label_);
+ sp->yAxis2->setLabelColor(QColor(graph_color_3));
+ sp->yAxis2->setTickLabelColor(QColor(graph_color_3));
+ sp->yAxis2->setVisible(true);
}
QString TCPStreamDialog::streamDescription()
@@ -1656,6 +1707,11 @@ QRectF TCPStreamDialog::getZoomRanges(QRect zoom_rect)
return zoom_ranges;
}
+void TCPStreamDialog::showContextMenu(const QPoint& pos)
+{
+ ctx_menu_.popup(ui->streamPlot->mapToGlobal(pos));
+}
+
void TCPStreamDialog::graphClicked(QMouseEvent *event)
{
QCustomPlot *sp = ui->streamPlot;
@@ -1663,15 +1719,7 @@ void TCPStreamDialog::graphClicked(QMouseEvent *event)
// mouse press on graph should reset focus to graph
sp->setFocus();
- if (event->button() == Qt::RightButton) {
- // XXX We should find some way to get streamPlot to handle a
- // contextMenuEvent instead.
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0 ,0)
- ctx_menu_.popup(event->globalPosition().toPoint());
-#else
- ctx_menu_.popup(event->globalPos());
-#endif
- } else if (mouse_drags_) {
+ if (mouse_drags_) {
if (sp->axisRect()->rect().contains(event->pos())) {
sp->setCursor(QCursor(Qt::ClosedHandCursor));
}
@@ -1779,12 +1827,16 @@ void TCPStreamDialog::mouseMoved(QMouseEvent *event)
tracer_->setVisible(true);
packet_num_ = packet_seg->num;
+ // XXX - We should probably change the sequence number displayed by
+ // seq_offset_ but in that case we should also store a base sequence
+ // number for the other direction so the th_ack can also be adjusted
+ // to a relative sequence number.
hint += tr("%1 %2 (%3s len %4 seq %5 ack %6 win %7)")
.arg(cap_file_ ? tr("Click to select packet") : tr("Packet"))
.arg(packet_num_)
.arg(QString::number(packet_seg->rel_secs + packet_seg->rel_usecs / 1000000.0, 'g', 4))
.arg(packet_seg->th_seglen)
- .arg(packet_seg->th_seq)
+ .arg(packet_seg->th_seq) // - seq_offset_)
.arg(packet_seg->th_ack)
.arg(packet_seg->th_win);
tracer_->setGraphKey(ui->streamPlot->xAxis->pixelToCoord(event->pos().x()));
@@ -2107,7 +2159,7 @@ void TCPStreamDialog::on_actionPreviousStream_triggered()
void TCPStreamDialog::on_actionSwitchDirection_triggered()
{
address tmp_addr;
- guint16 tmp_port;
+ uint16_t tmp_port;
copy_address(&tmp_addr, &graph_.src_address);
tmp_port = graph_.src_port;
diff --git a/ui/qt/tcp_stream_dialog.h b/ui/qt/tcp_stream_dialog.h
index c5b97de0cd..4281538b6b 100644
--- a/ui/qt/tcp_stream_dialog.h
+++ b/ui/qt/tcp_stream_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <file.h>
#include <epan/dissectors/packet-tcp.h>
@@ -71,7 +69,7 @@ private:
double ts_offset_;
bool ts_origin_conn_;
QMap<double, struct segment *> sequence_num_map_;
- double seq_offset_;
+ uint32_t seq_offset_;
bool seq_origin_zero_;
struct tcp_graph graph_;
QCPTextElement *title_;
@@ -91,7 +89,7 @@ private:
QCPGraph *zero_win_graph_;
QCPItemTracer *tracer_;
QRectF axis_bounds_;
- guint32 packet_num_;
+ uint32_t packet_num_;
QTransform y_axis_xfrm_;
bool mouse_drags_;
QRubberBand *rubber_band_;
@@ -141,6 +139,7 @@ private:
QRectF getZoomRanges(QRect zoom_rect);
private slots:
+ void showContextMenu(const QPoint &pos);
void graphClicked(QMouseEvent *event);
void axisClicked(QCPAxis *axis, QCPAxis::SelectablePart part, QMouseEvent *event);
void mouseMoved(QMouseEvent *event);
diff --git a/ui/qt/time_shift_dialog.cpp b/ui/qt/time_shift_dialog.cpp
index f1b325f09b..5dab76182a 100644
--- a/ui/qt/time_shift_dialog.cpp
+++ b/ui/qt/time_shift_dialog.cpp
@@ -116,7 +116,7 @@ void TimeShiftDialog::enableWidgets()
void TimeShiftDialog::checkFrameNumber(SyntaxLineEdit &frame_le)
{
bool frame_valid;
- guint frame_num = frame_le.text().toUInt(&frame_valid);
+ unsigned frame_num = frame_le.text().toUInt(&frame_valid);
syntax_err_.clear();
if (frame_le.text().isEmpty()) {
@@ -137,7 +137,7 @@ void TimeShiftDialog::checkDateTime(SyntaxLineEdit &time_le)
{
int Y, M, D, h, m;
long double s;
- const gchar *err_str;
+ const char *err_str;
syntax_err_.clear();
if (time_le.text().isEmpty()) {
@@ -175,8 +175,8 @@ void TimeShiftDialog::on_shiftAllTimeLineEdit_textChanged(const QString &sa_text
{
int h, m;
long double s;
- gboolean neg;
- const gchar *err_str;
+ bool neg;
+ const char *err_str;
syntax_err_.clear();
if (sa_text.isEmpty()) {
@@ -223,7 +223,7 @@ void TimeShiftDialog::on_setTwoTimeLineEdit_textChanged(const QString &)
void TimeShiftDialog::applyTimeShift()
{
- const gchar *err_str = NULL;
+ const char *err_str = NULL;
if (!cap_file_ || cap_file_->state == FILE_CLOSED || cap_file_->state == FILE_READ_PENDING) return;
diff --git a/ui/qt/time_shift_dialog.h b/ui/qt/time_shift_dialog.h
index 651649461f..4e218ba4db 100644
--- a/ui/qt/time_shift_dialog.h
+++ b/ui/qt/time_shift_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "cfile.h"
#include <ui/qt/widgets/syntax_line_edit.h>
diff --git a/ui/qt/uat_dialog.cpp b/ui/qt/uat_dialog.cpp
index 6f9d2a7c00..cb59d905b1 100644
--- a/ui/qt/uat_dialog.cpp
+++ b/ui/qt/uat_dialog.cpp
@@ -106,7 +106,7 @@ void UatDialog::setUat(epan_uat *uat)
connect(copy_button, &CopyFromProfileButton::copyProfile, this, &UatDialog::copyFromProfile);
}
- QString abs_path = gchar_free_to_qstring(uat_get_actual_filename(uat_, FALSE));
+ QString abs_path = gchar_free_to_qstring(uat_get_actual_filename(uat_, false));
if (abs_path.length() > 0) {
ui->pathLabel->setText(abs_path);
ui->pathLabel->setUrl(QUrl::fromLocalFile(abs_path).toString());
@@ -144,9 +144,9 @@ void UatDialog::setUat(epan_uat *uat)
void UatDialog::copyFromProfile(QString filename)
{
- gchar *err = NULL;
+ char *err = NULL;
if (uat_load(uat_, filename.toUtf8().constData(), &err)) {
- uat_->changed = TRUE;
+ uat_->changed = true;
uat_model_->reloadUat();
} else {
report_failure("Error while loading %s: %s", uat_->name, err);
diff --git a/ui/qt/uat_dialog.h b/ui/qt/uat_dialog.h
index 92d7d21b87..5240159bf3 100644
--- a/ui/qt/uat_dialog.h
+++ b/ui/qt/uat_dialog.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "geometry_state_dialog.h"
#include <ui/qt/models/uat_model.h>
#include <ui/qt/models/uat_delegate.h>
diff --git a/ui/qt/uat_frame.cpp b/ui/qt/uat_frame.cpp
index c48cf4c200..bfaaf74cb8 100644
--- a/ui/qt/uat_frame.cpp
+++ b/ui/qt/uat_frame.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/filter_expressions.h>
#include "uat_frame.h"
@@ -95,7 +93,7 @@ void UatFrame::setUat(epan_uat *uat)
connect(ui->copyFromProfileButton, &CopyFromProfileButton::copyProfile, this, &UatFrame::copyFromProfile);
}
- QString abs_path = gchar_free_to_qstring(uat_get_actual_filename(uat_, FALSE));
+ QString abs_path = gchar_free_to_qstring(uat_get_actual_filename(uat_, false));
if (abs_path.length() > 0) {
ui->pathLabel->setText(abs_path);
ui->pathLabel->setUrl(QUrl::fromLocalFile(abs_path).toString());
@@ -124,9 +122,9 @@ void UatFrame::setUat(epan_uat *uat)
void UatFrame::copyFromProfile(QString filename)
{
- gchar *err = NULL;
+ char *err = NULL;
if (uat_load(uat_, filename.toUtf8().constData(), &err)) {
- uat_->changed = TRUE;
+ uat_->changed = true;
uat_model_->reloadUat();
} else {
report_failure("Error while loading %s: %s", uat_->name, err);
diff --git a/ui/qt/utils/color_utils.cpp b/ui/qt/utils/color_utils.cpp
index e7d7c6c5f8..d11104927f 100644
--- a/ui/qt/utils/color_utils.cpp
+++ b/ui/qt/utils/color_utils.cpp
@@ -214,3 +214,8 @@ const QColor ColorUtils::warningBackground()
}
return QColor(tango_butter_2);
}
+
+const QColor ColorUtils::disabledForeground()
+{
+ return alphaBlend(QApplication::palette().windowText(), QApplication::palette().window(), 0.65);
+}
diff --git a/ui/qt/utils/color_utils.h b/ui/qt/utils/color_utils.h
index a205cccc79..ac5ed02eb8 100644
--- a/ui/qt/utils/color_utils.h
+++ b/ui/qt/utils/color_utils.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include <epan/color_filters.h>
#include <QBrush>
@@ -82,11 +80,17 @@ public:
*/
static const QColor warningBackground();
+ /**
+ * Returns an appropriate foreground color for disabled text.
+ * @return The foreground color.
+ */
+ static const QColor disabledForeground();
+
private:
static QList<QRgb> graph_colors_;
static QList<QRgb> sequence_colors_;
};
-void color_filter_qt_add_cb(color_filter_t *colorf, gpointer user_data);
+void color_filter_qt_add_cb(color_filter_t *colorf, void *user_data);
#endif // COLOR_UTILS_H
diff --git a/ui/qt/utils/data_printer.cpp b/ui/qt/utils/data_printer.cpp
index 7cc150740b..f3635ee4b4 100644
--- a/ui/qt/utils/data_printer.cpp
+++ b/ui/qt/utils/data_printer.cpp
@@ -54,13 +54,45 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
// Beginning quote
clipboard_text += QString("\"");
for (int i = 0; i < printData.length(); i++) {
- /* ASCII printable */
- int ch = printData[i];
- if (ch >= 32 && ch <= 126) {
- clipboard_text += QChar(ch);
- }
- else {
- clipboard_text += QString("\\x%1").arg((uint8_t) printData[i], 2, 16, QChar('0'));
+ // backslash and double quote are printable but
+ // must be escaped in a C string.
+ char ch = printData[i];
+ switch (ch) {
+ case '\"':
+ clipboard_text += QString("\\\"");
+ break;
+ case '\\':
+ clipboard_text += QString("\\\\");
+ break;
+ case '\a':
+ clipboard_text += QString("\\a");
+ break;
+ case '\b':
+ clipboard_text += QString("\\b");
+ break;
+ case '\f':
+ clipboard_text += QString("\\f");
+ break;
+ case '\n':
+ clipboard_text += QString("\\n");
+ break;
+ case '\r':
+ clipboard_text += QString("\\r");
+ break;
+ case '\t':
+ clipboard_text += QString("\\t");
+ break;
+ case '\v':
+ clipboard_text += QString("\\v");
+ break;
+ default:
+ // ASCII printable
+ if (ch >= 32 && ch <= 126) {
+ clipboard_text += QChar(ch);
+ }
+ else {
+ clipboard_text += QString("\\%1").arg((uint8_t) printData[i], 3, 8, QChar('0'));
+ }
}
}
// End quote
@@ -70,10 +102,21 @@ void DataPrinter::toClipboard(DataPrinter::DumpType type, IDataPrintable * print
for (int i = 0; i < printData.length(); i++)
clipboard_text += QString("%1").arg((uint8_t) printData[i], 2, 16, QChar('0'));
break;
- case DP_PrintableText:
+ case DP_UTF8Text:
+ // This automatically compensates for invalid UTF-8 in the input
+#if WS_IS_AT_LEAST_GNUC_VERSION(12,1)
+DIAG_OFF(stringop-overread)
+#endif
+ clipboard_text += QString::fromUtf8(printData);
+#if WS_IS_AT_LEAST_GNUC_VERSION(12,1)
+DIAG_ON(stringop-overread)
+#endif
+ break;
+ case DP_ASCIIText:
+ // Copy valid 7-bit printable ASCII bytes, skip the rest
for (int i = 0; i < printData.length(); i++) {
QChar ch(printData[i]);
- if (ch.isSpace() || ch.isPrint()) {
+ if (ch.isSpace() || (ch > (char)0x20 && ch < (char)0x7F)) {
clipboard_text += ch;
}
}
@@ -243,9 +286,14 @@ QActionGroup * DataPrinter::copyActions(QObject * copyClass, QObject * data)
action->setProperty("printertype", DataPrinter::DP_HexOnly);
connect(action, &QAction::triggered, dpi, &DataPrinter::copyIDataBytes);
- action = new QAction(tr("…as Printable Text"), actions);
- action->setToolTip(tr("Copy only the printable text in the packet."));
- action->setProperty("printertype", DataPrinter::DP_PrintableText);
+ action = new QAction(tr("…as UTF-8 Text"), actions);
+ action->setToolTip(tr("Copy packet bytes as text, treating as UTF-8."));
+ action->setProperty("printertype", DataPrinter::DP_UTF8Text);
+ connect(action, &QAction::triggered, dpi, &DataPrinter::copyIDataBytes);
+
+ action = new QAction(tr("…as ASCII Text"), actions);
+ action->setToolTip(tr("Copy packet bytes as text, treating as ASCII."));
+ action->setProperty("printertype", DataPrinter::DP_ASCIIText);
connect(action, &QAction::triggered, dpi, &DataPrinter::copyIDataBytes);
action = new QAction(tr("…as a Hex Stream"), actions);
diff --git a/ui/qt/utils/data_printer.h b/ui/qt/utils/data_printer.h
index faf696a00a..52c259f899 100644
--- a/ui/qt/utils/data_printer.h
+++ b/ui/qt/utils/data_printer.h
@@ -30,7 +30,8 @@ public:
DP_HexDump,
DP_HexOnly,
DP_HexStream,
- DP_PrintableText,
+ DP_UTF8Text,
+ DP_ASCIIText,
DP_CString,
DP_GoLiteral,
DP_CArray,
diff --git a/ui/qt/utils/frame_information.cpp b/ui/qt/utils/frame_information.cpp
index d344bc0403..facd368d5a 100644
--- a/ui/qt/utils/frame_information.cpp
+++ b/ui/qt/utils/frame_information.cpp
@@ -48,13 +48,13 @@ void FrameInformation::loadFrameTree()
edt_ = g_new0(epan_dissect_t, 1);
/* proto tree, visible. We need a proto tree if there's custom columns */
- epan_dissect_init(edt_, cap_file_->capFile()->epan, TRUE, TRUE);
+ epan_dissect_init(edt_, cap_file_->capFile()->epan, true, true);
col_custom_prime_edt(edt_, &(cap_file_->capFile()->cinfo));
epan_dissect_run(edt_, cap_file_->capFile()->cd_t, &rec_,
frame_tvbuff_new_buffer(&cap_file_->capFile()->provider, fi_, &buf_),
fi_, &(cap_file_->capFile()->cinfo));
- epan_dissect_fill_in_columns(edt_, TRUE, TRUE);
+ epan_dissect_fill_in_columns(edt_, true, true);
}
FrameInformation::~FrameInformation()
diff --git a/ui/qt/utils/profile_switcher.cpp b/ui/qt/utils/profile_switcher.cpp
new file mode 100644
index 0000000000..6f15a00602
--- /dev/null
+++ b/ui/qt/utils/profile_switcher.cpp
@@ -0,0 +1,138 @@
+/* profile_switcher.cpp
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+// #include <capture_file.h>
+#include <main_application.h>
+
+#include <ui/profile.h>
+#include <ui/recent.h>
+
+#include <ui/qt/capture_file.h>
+#include <ui/qt/models/packet_list_model.h>
+
+#include "profile_switcher.h"
+
+#include "file.h"
+
+#include <epan/epan.h>
+#include <epan/epan_dissect.h>
+#include <epan/prefs.h>
+#include "frame_tvbuff.h"
+
+// Enable switching iff:
+// - We're opening a new capture file via the UI.
+// - We haven't changed our profile, either manually or automatically.
+
+ProfileSwitcher::ProfileSwitcher(QObject *parent) :
+ QObject(parent),
+ capture_file_changed_(true),
+ profile_changed_(false)
+{
+ connect(mainApp, &MainApplication::profileChanging, this, &ProfileSwitcher::disableSwitching);
+}
+
+void ProfileSwitcher::captureEventHandler(CaptureEvent ev)
+{
+ if (ev.captureContext() != CaptureEvent::File) {
+ return;
+ }
+
+ CaptureFile *capture_file = qobject_cast<CaptureFile *>(sender());
+ if (!capture_file) {
+ return;
+ }
+
+ // CaptureEvent doesn't have a "this is the same file" flag, so
+ // track that via the filename.
+ switch (ev.eventType()) {
+ case CaptureEvent::Opened:
+ if (previous_cap_file_ != capture_file->filePath()) {
+ capture_file_changed_ = true;
+ profile_changed_ = false;
+ }
+ break;
+ case CaptureEvent::Closing:
+ previous_cap_file_ = capture_file->filePath();
+ break;
+ default:
+ break;
+ }
+}
+
+void ProfileSwitcher::checkPacket(capture_file *cap_file, frame_data *fdata, qsizetype row)
+{
+ if (profile_changed_ || !capture_file_changed_ || row >= recent.gui_profile_switch_check_count) {
+ return;
+ }
+
+ if (row == 0) {
+ init_profile_list();
+ clearProfileFilters();
+ for (GList *cur = current_profile_list() ; cur; cur = cur->next) {
+ profile_def *profile = static_cast<profile_def *>(cur->data);
+ if (!profile->auto_switch_filter) {
+ continue;
+ }
+ dfilter_t *dfcode;
+ if (dfilter_compile(profile->auto_switch_filter, &dfcode, NULL) && dfcode) {
+ profile_filters_.append({profile->name, dfcode});
+ }
+ }
+ }
+
+ if (profile_filters_.empty()) {
+ return;
+ }
+
+ QString new_profile;
+ wtap_rec rec;
+ Buffer buf;
+ wtap_rec_init(&rec);
+ ws_buffer_init(&buf, 1514);
+ epan_dissect_t edt;
+
+ for (auto &cur_filter : profile_filters_) {
+ if (!cf_read_record(cap_file, fdata, &rec, &buf)) {
+ continue;
+ }
+ epan_dissect_init(&edt, cap_file->epan, TRUE, FALSE);
+ epan_dissect_prime_with_dfilter(&edt, cur_filter.dfcode);
+ epan_dissect_run(&edt, cap_file->cd_t, &rec,
+ frame_tvbuff_new_buffer(&cap_file->provider, fdata, &buf),
+ fdata, NULL);
+ bool matched = dfilter_apply_edt(cur_filter.dfcode, &edt);
+ epan_dissect_cleanup(&edt);
+ if (matched) {
+ new_profile = cur_filter.name;
+ break;
+ }
+ }
+
+ wtap_rec_cleanup(&rec);
+ ws_buffer_free(&buf);
+
+ if (!new_profile.isEmpty()) {
+ clearProfileFilters();
+ previous_cap_file_ = cap_file->filename;
+ mainApp->setConfigurationProfile(qUtf8Printable(new_profile), false);
+ }
+}
+
+void ProfileSwitcher::clearProfileFilters()
+{
+ for (auto &cur_filter : profile_filters_) {
+ dfilter_free(cur_filter.dfcode);
+ }
+ profile_filters_.clear();
+}
+
+void ProfileSwitcher::disableSwitching()
+{
+ profile_changed_ = true;
+}
diff --git a/ui/qt/utils/profile_switcher.h b/ui/qt/utils/profile_switcher.h
new file mode 100644
index 0000000000..57dfd25591
--- /dev/null
+++ b/ui/qt/utils/profile_switcher.h
@@ -0,0 +1,48 @@
+/** @file
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#pragma once
+
+#include <config.h>
+
+#include "capture_event.h"
+#include "cfile.h"
+
+#include <QObject>
+#include <QVector>
+
+struct profile_switch_filter {
+ QString name;
+ dfilter_t *dfcode;
+};
+
+class PacketListModel;
+
+class ProfileSwitcher : public QObject
+{
+ Q_OBJECT
+public:
+ explicit ProfileSwitcher(QObject *parent = nullptr);
+
+public slots:
+ void captureEventHandler(CaptureEvent ev);
+ void checkPacket(capture_file *cap_file, frame_data *fdata, qsizetype row);
+
+private:
+ PacketListModel *packet_list_model_;
+ QVector<struct profile_switch_filter> profile_filters_;
+ bool capture_file_changed_;
+ bool profile_changed_;
+ QString previous_cap_file_;
+
+ void clearProfileFilters();
+
+private slots:
+ void disableSwitching();
+};
diff --git a/ui/qt/utils/proto_node.cpp b/ui/qt/utils/proto_node.cpp
index 131ba65cbe..222b2d5edd 100644
--- a/ui/qt/utils/proto_node.cpp
+++ b/ui/qt/utils/proto_node.cpp
@@ -72,7 +72,7 @@ QString ProtoNode::labelText() const
label = fi->rep->representation;
}
else { /* no, make a generic label */
- gchar label_str[ITEM_LABEL_LENGTH];
+ char label_str[ITEM_LABEL_LENGTH];
proto_item_fill_label(fi, label_str);
label = label_str;
}
diff --git a/ui/qt/utils/qt_ui_utils.cpp b/ui/qt/utils/qt_ui_utils.cpp
index 7513e72a22..5c2a522f00 100644
--- a/ui/qt/utils/qt_ui_utils.cpp
+++ b/ui/qt/utils/qt_ui_utils.cpp
@@ -50,15 +50,15 @@
* to .toUtf8().constData().
*/
-gchar *qstring_strdup(QString q_string) {
+char *qstring_strdup(QString q_string) {
return g_strdup(qUtf8Printable(q_string));
}
-QString gchar_free_to_qstring(gchar *glib_string) {
+QString gchar_free_to_qstring(char *glib_string) {
return QString(gchar_free_to_qbytearray(glib_string));
}
-QByteArray gchar_free_to_qbytearray(gchar *glib_string)
+QByteArray gchar_free_to_qbytearray(char *glib_string)
{
QByteArray qt_bytearray(glib_string);
g_free(glib_string);
@@ -68,14 +68,14 @@ QByteArray gchar_free_to_qbytearray(gchar *glib_string)
QByteArray gstring_free_to_qbytearray(GString *glib_gstring)
{
QByteArray qt_ba(glib_gstring->str);
- g_string_free(glib_gstring, TRUE);
+ g_string_free(glib_gstring, true);
return qt_ba;
}
QByteArray gbytearray_free_to_qbytearray(GByteArray *glib_array)
{
QByteArray qt_ba(reinterpret_cast<char *>(glib_array->data), glib_array->len);
- g_byte_array_free(glib_array, TRUE);
+ g_byte_array_free(glib_array, true);
return qt_ba;
}
@@ -106,7 +106,7 @@ const QString address_to_qstring(const _address *address, bool enclose)
QString address_qstr = QString();
if (address) {
if (enclose && address->type == AT_IPv6) address_qstr += "[";
- gchar *address_gchar_p = address_to_str(NULL, address);
+ char *address_gchar_p = address_to_str(NULL, address);
address_qstr += address_gchar_p;
wmem_free(NULL, address_gchar_p);
if (enclose && address->type == AT_IPv6) address_qstr += "]";
@@ -118,27 +118,27 @@ const QString address_to_display_qstring(const _address *address)
{
QString address_qstr = QString();
if (address) {
- gchar *address_gchar_p = address_to_display(NULL, address);
+ char *address_gchar_p = address_to_display(NULL, address);
address_qstr = address_gchar_p;
wmem_free(NULL, address_gchar_p);
}
return address_qstr;
}
-const QString val_to_qstring(const guint32 val, const value_string *vs, const char *fmt)
+const QString val_to_qstring(const uint32_t val, const value_string *vs, const char *fmt)
{
QString val_qstr;
- gchar* gchar_p = val_to_str_wmem(NULL, val, vs, fmt);
+ char* gchar_p = val_to_str_wmem(NULL, val, vs, fmt);
val_qstr = gchar_p;
wmem_free(NULL, gchar_p);
return val_qstr;
}
-const QString val_ext_to_qstring(const guint32 val, value_string_ext *vse, const char *fmt)
+const QString val_ext_to_qstring(const uint32_t val, value_string_ext *vse, const char *fmt)
{
QString val_qstr;
- gchar* gchar_p = val_to_str_ext_wmem(NULL, val, vse, fmt);
+ char* gchar_p = val_to_str_ext_wmem(NULL, val, vse, fmt);
val_qstr = gchar_p;
wmem_free(NULL, gchar_p);
@@ -160,7 +160,7 @@ const QString bits_s_to_qstring(const double bits_s)
format_size(bits_s, FORMAT_SIZE_UNIT_NONE, FORMAT_SIZE_PREFIX_SI));
}
-const QString file_size_to_qstring(const gint64 size)
+const QString file_size_to_qstring(const int64_t size)
{
return gchar_free_to_qstring(
format_size(size, FORMAT_SIZE_UNIT_BYTES, FORMAT_SIZE_PREFIX_SI));
diff --git a/ui/qt/utils/qt_ui_utils.h b/ui/qt/utils/qt_ui_utils.h
index 60ccf31ded..24888b0399 100644
--- a/ui/qt/utils/qt_ui_utils.h
+++ b/ui/qt/utils/qt_ui_utils.h
@@ -61,7 +61,7 @@ struct epan_range;
*
* @return A copy of the QString. UTF-8 allocated with g_malloc().
*/
-gchar *qstring_strdup(QString q_string);
+char *qstring_strdup(QString q_string);
/** Transfer ownership of a GLib character string to a newly constructed QString
*
@@ -70,7 +70,7 @@ gchar *qstring_strdup(QString q_string);
*
* @return A QString instance created from the input string.
*/
-QString gchar_free_to_qstring(gchar *glib_string);
+QString gchar_free_to_qstring(char *glib_string);
/** Transfer ownership of a GLib character string to a newly constructed QString
*
@@ -79,7 +79,7 @@ QString gchar_free_to_qstring(gchar *glib_string);
*
* @return A QByteArray instance created from the input string.
*/
-QByteArray gchar_free_to_qbytearray(gchar *glib_string);
+QByteArray gchar_free_to_qbytearray(char *glib_string);
/** Transfer ownership of a GLib character string to a newly constructed QByteArray
*
@@ -133,7 +133,7 @@ const QString address_to_display_qstring(const struct _address *address);
*
* @return A QString representation of the value_string.
*/
-const QString val_to_qstring(const guint32 val, const struct _value_string *vs, const char *fmt)
+const QString val_to_qstring(const uint32_t val, const struct _value_string *vs, const char *fmt)
G_GNUC_PRINTF(3, 0);
/** Convert a value_string_ext to a QString using val_to_str_ext_wmem().
@@ -144,7 +144,7 @@ G_GNUC_PRINTF(3, 0);
*
* @return A QString representation of the value_string_ext.
*/
-const QString val_ext_to_qstring(const guint32 val, struct _value_string_ext *vse, const char *fmt)
+const QString val_ext_to_qstring(const uint32_t val, struct _value_string_ext *vse, const char *fmt)
G_GNUC_PRINTF(3, 0);
/** Convert a range to a QString using range_convert_range().
@@ -169,7 +169,7 @@ const QString bits_s_to_qstring(const double bits_s);
*
* @return A QString representation of the file size in SI units.
*/
-const QString file_size_to_qstring(const gint64 size);
+const QString file_size_to_qstring(const int64_t size);
/** Convert a time_t value to a human-readable QString using QDateTime.
*
diff --git a/ui/qt/utils/rtp_audio_file.cpp b/ui/qt/utils/rtp_audio_file.cpp
index 46e7a3659e..5212b3a536 100644
--- a/ui/qt/utils/rtp_audio_file.cpp
+++ b/ui/qt/utils/rtp_audio_file.cpp
@@ -124,7 +124,7 @@ void RtpAudioFile::frameUpdateSampleCounters(qint64 written_bytes)
sample_pos_ += written_bytes;
}
-qint64 RtpAudioFile::frameWriteFrame(guint32 frame_num, qint64 real_pos, qint64 sample_pos, qint64 len, rtp_frame_type type)
+qint64 RtpAudioFile::frameWriteFrame(uint32_t frame_num, qint64 real_pos, qint64 sample_pos, qint64 len, rtp_frame_type type)
{
rtp_frame_info frame_info;
@@ -137,7 +137,7 @@ qint64 RtpAudioFile::frameWriteFrame(guint32 frame_num, qint64 real_pos, qint64
return sample_file_frame_->write((char *)&frame_info, sizeof(frame_info));
}
-void RtpAudioFile::frameWriteSilence(guint32 frame_num, qint64 samples)
+void RtpAudioFile::frameWriteSilence(uint32_t frame_num, qint64 samples)
{
if (samples < 1) return;
@@ -147,9 +147,9 @@ void RtpAudioFile::frameWriteSilence(guint32 frame_num, qint64 samples)
frameUpdateRealCounters(silence_bytes);
}
-qint64 RtpAudioFile::frameWriteSamples(guint32 frame_num, const char *data, qint64 max_size)
+qint64 RtpAudioFile::frameWriteSamples(uint32_t frame_num, const char *data, qint64 max_size)
{
- gint64 written;
+ int64_t written;
written = sample_file_->write(data, max_size);
@@ -175,10 +175,10 @@ void RtpAudioFile::setFrameReadStage(qint64 prepend_samples)
}
}
-bool RtpAudioFile::readFrameSamples(gint32 *read_buff_bytes, SAMPLE **read_buff, spx_uint32_t *read_len, guint32 *frame_num, rtp_frame_type *type)
+bool RtpAudioFile::readFrameSamples(int32_t *read_buff_bytes, SAMPLE **read_buff, spx_uint32_t *read_len, uint32_t *frame_num, rtp_frame_type *type)
{
rtp_frame_info frame_info;
- guint64 read_bytes = 0;
+ uint64_t read_bytes = 0;
if (!sample_file_frame_->read((char *)&frame_info, sizeof(frame_info))) {
// Can't read frame, some error occurred
diff --git a/ui/qt/utils/rtp_audio_file.h b/ui/qt/utils/rtp_audio_file.h
index addc3015d5..b8c53b302d 100644
--- a/ui/qt/utils/rtp_audio_file.h
+++ b/ui/qt/utils/rtp_audio_file.h
@@ -33,7 +33,7 @@ typedef struct {
qint64 real_pos;
qint64 sample_pos;
qint64 len;
- guint32 frame_num;
+ uint32_t frame_num;
rtp_frame_type type;
} rtp_frame_info;
@@ -46,12 +46,12 @@ public:
// Functions for writing Frames
void setFrameWriteStage();
- void frameWriteSilence(guint32 frame_num, qint64 samples);
- qint64 frameWriteSamples(guint32 frame_num, const char *data, qint64 max_size);
+ void frameWriteSilence(uint32_t frame_num, qint64 samples);
+ qint64 frameWriteSamples(uint32_t frame_num, const char *data, qint64 max_size);
// Functions for reading Frames
void setFrameReadStage(qint64 prepend_samples);
- bool readFrameSamples(gint32 *read_buff_bytes, SAMPLE **read_buff, spx_uint32_t *read_len, guint32 *frame_num, rtp_frame_type *type);
+ bool readFrameSamples(int32_t *read_buff_bytes, SAMPLE **read_buff, spx_uint32_t *read_len, uint32_t *frame_num, rtp_frame_type *type);
// Functions for reading data during play
void setDataReadStage();
@@ -80,7 +80,7 @@ private:
rtp_frame_info cur_frame_;
// Functions for writing Frames
- qint64 frameWriteFrame(guint32 frame_num, qint64 real_pos, qint64 sample_pos, qint64 len, rtp_frame_type type);
+ qint64 frameWriteFrame(uint32_t frame_num, qint64 real_pos, qint64 sample_pos, qint64 len, rtp_frame_type type);
void frameUpdateRealCounters(qint64 written_bytes);
void frameUpdateSampleCounters(qint64 written_bytes);
diff --git a/ui/qt/utils/rtp_audio_routing_filter.cpp b/ui/qt/utils/rtp_audio_routing_filter.cpp
index 8362d3f942..fd2b48d7ff 100644
--- a/ui/qt/utils/rtp_audio_routing_filter.cpp
+++ b/ui/qt/utils/rtp_audio_routing_filter.cpp
@@ -64,7 +64,7 @@ qint64 AudioRoutingFilter::readData(char *data, qint64 maxSize)
return input_->read(data, maxSize);
} else {
// For stereo
- gint64 silence = 0;
+ int64_t silence = 0;
// Read half of data
qint64 readBytes = input_->read(data, maxSize/SAMPLE_BYTES);
diff --git a/ui/qt/utils/wireshark_zip_helper.cpp b/ui/qt/utils/wireshark_zip_helper.cpp
index 7bfa010135..2cc1367ce8 100644
--- a/ui/qt/utils/wireshark_zip_helper.cpp
+++ b/ui/qt/utils/wireshark_zip_helper.cpp
@@ -14,8 +14,6 @@
#ifdef HAVE_MINIZIP
#include "config.h"
-#include "glib.h"
-
#include <iosfwd>
#include <iostream>
#include <zlib.h> // For Z_DEFLATED, etc.
diff --git a/ui/qt/voip_calls_dialog.cpp b/ui/qt/voip_calls_dialog.cpp
index b8a54bd757..6b372f05c6 100644
--- a/ui/qt/voip_calls_dialog.cpp
+++ b/ui/qt/voip_calls_dialog.cpp
@@ -378,7 +378,7 @@ void VoipCallsDialog::tapDraw(void *tapinfo_ptr)
}
}
-gint VoipCallsDialog::compareCallNums(gconstpointer a, gconstpointer b)
+int VoipCallsDialog::compareCallNums(gconstpointer a, gconstpointer b)
{
const voip_calls_info_t *call_a = (const voip_calls_info_t *)a;
const voip_calls_info_t *call_b = (const voip_calls_info_t *)b;
@@ -459,7 +459,7 @@ void VoipCallsDialog::prepareFilter()
}
QString filter_str;
- QSet<guint16> selected_calls;
+ QSet<uint16_t> selected_calls;
QString frame_numbers;
QList<int> rows;
@@ -505,11 +505,11 @@ void VoipCallsDialog::prepareFilter()
if (filter_length < max_filter_length) {
gtk_editable_insert_text(GTK_EDITABLE(main_display_filter_widget), filter_string_fwd->str, -1, &pos);
} else {
- g_string_free(filter_string_fwd, TRUE);
+ g_string_free(filter_string_fwd, true);
filter_string_fwd = g_string_new(filter_prepend);
g_string_append_printf(filter_string_fwd, "(");
- is_first = TRUE;
+ is_first = true;
/* Build a new filter based on protocol fields */
lista = g_queue_peek_nth_link(voip_calls_get_info()->callsinfos, 0);
while (lista) {
@@ -542,10 +542,10 @@ void VoipCallsDialog::prepareFilter()
g_string_append_printf(filter_string_fwd,
"((h225.guid == %s || q931.call_ref == %x:%x || q931.call_ref == %x:%x)",
guid_str,
- (guint8) (h323info->q931_crv & 0x00ff),
- (guint8)((h323info->q931_crv & 0xff00)>>8),
- (guint8) (h323info->q931_crv2 & 0x00ff),
- (guint8)((h323info->q931_crv2 & 0xff00)>>8));
+ (uint8_t) (h323info->q931_crv & 0x00ff),
+ (uint8_t)((h323info->q931_crv & 0xff00)>>8),
+ (uint8_t) (h323info->q931_crv2 & 0x00ff),
+ (uint8_t)((h323info->q931_crv2 & 0xff00)>>8));
listb = g_list_first(h323info->h245_list);
wmem_free(NULL, guid_str);
while (listb) {
@@ -569,7 +569,7 @@ void VoipCallsDialog::prepareFilter()
"(frame)");
break;
}
- is_first = FALSE;
+ is_first = false;
}
lista = gxx_list_next(lista);
}
@@ -586,7 +586,7 @@ void VoipCallsDialog::showSequence()
{
if (file_closed_) return;
- QSet<guint16> selected_calls;
+ QSet<uint16_t> selected_calls;
foreach (QModelIndex index, ui->callTreeView->selectionModel()->selectedIndexes()) {
voip_calls_info_t *call_info = VoipCallsInfoModel::indexToCallInfo(index);
if (!call_info) {
@@ -603,7 +603,7 @@ void VoipCallsDialog::showSequence()
cur_ga_item = gxx_list_next(cur_ga_item);
}
- SequenceDialog *sequence_dialog = new SequenceDialog(parent_, cap_file_, sequence_info_);
+ SequenceDialog *sequence_dialog = new SequenceDialog(parent_, cap_file_, sequence_info_, true);
// Bypass this dialog and forward signals to parent
connect(sequence_dialog, SIGNAL(rtpStreamsDialogSelectRtpStreams(QVector<rtpstream_id_t *>)), &parent_, SLOT(rtpStreamsDialogSelectRtpStreams(QVector<rtpstream_id_t *>)));
connect(sequence_dialog, SIGNAL(rtpStreamsDialogDeselectRtpStreams(QVector<rtpstream_id_t *>)), &parent_, SLOT(rtpStreamsDialogDeselectRtpStreams(QVector<rtpstream_id_t *>)));
@@ -612,7 +612,6 @@ void VoipCallsDialog::showSequence()
connect(sequence_dialog, SIGNAL(rtpPlayerDialogRemoveRtpStreams(QVector<rtpstream_id_t *>)), &parent_, SLOT(rtpPlayerDialogRemoveRtpStreams(QVector<rtpstream_id_t *>)));
sequence_dialog->setAttribute(Qt::WA_DeleteOnClose);
- sequence_dialog->enableVoIPFeatures();
sequence_dialog->show();
}
@@ -630,7 +629,7 @@ QVector<rtpstream_id_t *>VoipCallsDialog::getSelectedRtpIds()
//VOIP_CALLS_DEBUG("checking call %u, start frame %u == stream call %u, start frame %u, setup frame %u",
// vci->call_num, vci->start_fd->num,
// rsi->call_num, rsi->start_fd->num, rsi->setup_frame_number);
- if (vci->call_num == static_cast<guint>(rsi->call_num)) {
+ if (vci->call_num == static_cast<unsigned>(rsi->call_num)) {
//VOIP_CALLS_DEBUG("adding call number %u", vci->call_num);
if (-1 == stream_ids.indexOf(&(rsi->id))) {
// Add only new stream
diff --git a/ui/qt/voip_calls_dialog.h b/ui/qt/voip_calls_dialog.h
index 0386dfa70f..b4bb6daf59 100644
--- a/ui/qt/voip_calls_dialog.h
+++ b/ui/qt/voip_calls_dialog.h
@@ -12,7 +12,6 @@
#include <config.h>
-#include <glib.h>
#include <mutex>
#include "cfile.h"
@@ -110,7 +109,7 @@ private:
static void tapReset(void *tapinfo_ptr);
static tap_packet_status tapPacket(void *tapinfo_ptr, packet_info *pinfo, epan_dissect_t *, const void *data, tap_flags_t flags);
static void tapDraw(void *tapinfo_ptr);
- static gint compareCallNums(gconstpointer a, gconstpointer b);
+ static int compareCallNums(gconstpointer a, gconstpointer b);
void updateCalls();
void prepareFilter();
diff --git a/ui/qt/welcome_page.cpp b/ui/qt/welcome_page.cpp
index 6858aceb27..51aa136a9d 100644
--- a/ui/qt/welcome_page.cpp
+++ b/ui/qt/welcome_page.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/prefs.h>
#include "ui/capture_globals.h"
@@ -198,7 +196,7 @@ void WelcomePage::captureFilterTextEdited(const QString capture_filter)
if (global_capture_opts.num_selected > 0) {
interface_t *device;
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (!device->selected) {
continue;
diff --git a/ui/qt/welcome_page.h b/ui/qt/welcome_page.h
index d6243d1abe..382d4aa42f 100644
--- a/ui/qt/welcome_page.h
+++ b/ui/qt/welcome_page.h
@@ -58,7 +58,7 @@ private:
QListWidget *recent_files_;
signals:
- void startCapture(QStringList);
+ void startCapture(QStringList ifaces);
void recentFileActivated(QString cfile);
void captureFilterSyntaxChanged(bool valid);
void showExtcapOptions(QString &device_name, bool startCaptureOnClose);
diff --git a/ui/qt/widgets/additional_toolbar.cpp b/ui/qt/widgets/additional_toolbar.cpp
index c023d149fe..bd5051f7ea 100644
--- a/ui/qt/widgets/additional_toolbar.cpp
+++ b/ui/qt/widgets/additional_toolbar.cpp
@@ -9,8 +9,6 @@
#include <config.h>
-#include <glib.h>
-
#include <ui/qt/widgets/additional_toolbar.h>
#include <ui/qt/widgets/apply_line_edit.h>
#include <ui/qt/utils/qt_ui_utils.h>
@@ -159,7 +157,7 @@ QWidget * AdditionalToolbarWidgetAction::createWidget(QWidget * parent)
}
static void
-toolbar_button_cb(gpointer item, gpointer item_data, gpointer user_data)
+toolbar_button_cb(void *item, void *item_data, void *user_data)
{
if (! item || ! item_data || ! user_data)
return;
@@ -170,7 +168,7 @@ toolbar_button_cb(gpointer item, gpointer item_data, gpointer user_data)
if (widget)
{
if (update_entry->type == EXT_TOOLBAR_UPDATE_VALUE)
- widget->setText((gchar *)update_entry->user_data);
+ widget->setText((char *)update_entry->user_data);
else if (update_entry->type == EXT_TOOLBAR_SET_ACTIVE)
{
bool enableState = GPOINTER_TO_INT(update_entry->user_data) == 1;
@@ -195,7 +193,7 @@ QWidget * AdditionalToolbarWidgetAction::createButton(ext_toolbar_t * item, QWid
}
static void
-toolbar_boolean_cb(gpointer item, gpointer item_data, gpointer user_data)
+toolbar_boolean_cb(void *item, void *item_data, void *user_data)
{
if (! item || ! item_data || ! user_data)
return;
@@ -267,7 +265,7 @@ QWidget * AdditionalToolbarWidgetAction::createLabelFrame(ext_toolbar_t * item,
}
static void
-toolbar_string_cb(gpointer item, gpointer item_data, gpointer user_data)
+toolbar_string_cb(void *item, void *item_data, void *user_data)
{
if (! item || ! item_data || ! user_data)
return;
@@ -282,7 +280,7 @@ toolbar_string_cb(gpointer item, gpointer item_data, gpointer user_data)
if (update_entry->silent)
oldState = edit->blockSignals(true);
- edit->setText((gchar *)update_entry->user_data);
+ edit->setText((char *)update_entry->user_data);
if (update_entry->silent)
edit->blockSignals(oldState);
@@ -321,7 +319,7 @@ QWidget * AdditionalToolbarWidgetAction::createTextEditor(ext_toolbar_t * item,
}
static void
-toolbar_selector_cb(gpointer item, gpointer item_data, gpointer user_data)
+toolbar_selector_cb(void *item, void *item_data, void *user_data)
{
if (! item || ! item_data || ! user_data)
return;
@@ -346,7 +344,7 @@ toolbar_selector_cb(gpointer item, gpointer item_data, gpointer user_data)
if (update_entry->type == EXT_TOOLBAR_UPDATE_VALUE)
{
- QString data = QString((gchar *)update_entry->user_data);
+ QString data = QString((char *)update_entry->user_data);
for (int i = 0; i < sourceModel->rowCount(); i++)
{
@@ -385,8 +383,8 @@ toolbar_selector_cb(gpointer item, gpointer item_data, gpointer user_data)
if (! update_entry->data_index)
return;
- gchar * idx = (gchar *)update_entry->data_index;
- gchar * display = (gchar *)update_entry->user_data;
+ char * idx = (char *)update_entry->data_index;
+ char * display = (char *)update_entry->user_data;
if (update_entry->type == EXT_TOOLBAR_UPDATE_DATABYINDEX)
{
@@ -522,7 +520,7 @@ void AdditionalToolbarWidgetAction::onCheckBoxChecked(int checkState)
if (! item)
return;
- gboolean value = checkState == Qt::Checked ? true : false;
+ bool value = checkState == Qt::Checked ? true : false;
item->callback(item, &value, item->user_data);
}
diff --git a/ui/qt/widgets/byte_view_text.cpp b/ui/qt/widgets/byte_view_text.cpp
index ba9f2de0c3..ee1e0195ae 100644
--- a/ui/qt/widgets/byte_view_text.cpp
+++ b/ui/qt/widgets/byte_view_text.cpp
@@ -70,6 +70,7 @@ ByteViewText::ByteViewText(const QByteArray &data, packet_char_enc encoding, QWi
offset_normal_fg_ = ColorUtils::alphaBlend(palette().windowText(), palette().window(), 0.35);
offset_field_fg_ = ColorUtils::alphaBlend(palette().windowText(), palette().window(), 0.65);
+ ctx_menu_.setToolTipsVisible(true);
window()->winId(); // Required for screenChanged? https://phabricator.kde.org/D20171
connect(window()->windowHandle(), &QWindow::screenChanged, viewport(), [=](const QScreen *) { viewport()->update(); });
diff --git a/ui/qt/widgets/capture_filter_combo.cpp b/ui/qt/widgets/capture_filter_combo.cpp
index 70635cef08..957663105b 100644
--- a/ui/qt/widgets/capture_filter_combo.cpp
+++ b/ui/qt/widgets/capture_filter_combo.cpp
@@ -126,7 +126,7 @@ void CaptureFilterCombo::rebuildFilterList()
QString cur_filter = currentText();
clear();
for (GList *li = g_list_first(cfilter_list); li != NULL; li = gxx_list_next(li)) {
- addItem(gxx_list_data(const gchar *, li));
+ addItem(gxx_list_data(const char *, li));
}
lineEdit()->setText(cur_filter);
lineEdit()->blockSignals(false);
diff --git a/ui/qt/widgets/capture_filter_edit.cpp b/ui/qt/widgets/capture_filter_edit.cpp
index 3c72fe4114..50793143a2 100644
--- a/ui/qt/widgets/capture_filter_edit.cpp
+++ b/ui/qt/widgets/capture_filter_edit.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/proto.h>
#include "capture_opts.h"
@@ -308,7 +306,7 @@ QPair<const QString, bool> CaptureFilterEdit::getSelectedFilter()
#ifdef HAVE_LIBPCAP
int selected_devices = 0;
- for (guint i = 0; i < global_capture_opts.all_ifaces->len; i++) {
+ for (unsigned i = 0; i < global_capture_opts.all_ifaces->len; i++) {
interface_t *device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (device->selected) {
selected_devices++;
diff --git a/ui/qt/widgets/copy_from_profile_button.h b/ui/qt/widgets/copy_from_profile_button.h
index f074bdb861..ea6df8167b 100644
--- a/ui/qt/widgets/copy_from_profile_button.h
+++ b/ui/qt/widgets/copy_from_profile_button.h
@@ -11,7 +11,6 @@
#define COPY_FROM_PROFILE_BUTTON_H
#include <config.h>
-#include <glib.h>
#include <QMenu>
#include <QPushButton>
diff --git a/ui/qt/widgets/display_filter_combo.cpp b/ui/qt/widgets/display_filter_combo.cpp
index c28afb9146..c3acb9ec46 100644
--- a/ui/qt/widgets/display_filter_combo.cpp
+++ b/ui/qt/widgets/display_filter_combo.cpp
@@ -26,7 +26,7 @@
#include "main_application.h"
// If we ever add support for multiple windows this will need to be replaced.
-static DisplayFilterCombo *cur_display_filter_combo = NULL;
+static DisplayFilterCombo *cur_display_filter_combo;
DisplayFilterCombo::DisplayFilterCombo(QWidget *parent) :
QComboBox(parent)
@@ -173,9 +173,9 @@ void DisplayFilterCombo::updateMaxCount()
setMaxCount(prefs.gui_recent_df_entries_max);
}
-extern "C" gboolean dfilter_combo_add_recent(const gchar *filter) {
+extern "C" bool dfilter_combo_add_recent(const char *filter) {
if (!cur_display_filter_combo)
- return FALSE;
+ return false;
// Adding an item to a QComboBox also sets its lineEdit. In our case
// that means we might trigger a temporary status message so we block
@@ -185,5 +185,5 @@ extern "C" gboolean dfilter_combo_add_recent(const gchar *filter) {
cur_display_filter_combo->addItem(filter, QVariant(QDateTime::currentMSecsSinceEpoch()));
cur_display_filter_combo->clearEditText();
cur_display_filter_combo->lineEdit()->blockSignals(block_state);
- return TRUE;
+ return true;
}
diff --git a/ui/qt/widgets/display_filter_edit.cpp b/ui/qt/widgets/display_filter_edit.cpp
index af6937c22f..a7cfbcfe11 100644
--- a/ui/qt/widgets/display_filter_edit.cpp
+++ b/ui/qt/widgets/display_filter_edit.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/dfilter/dfilter.h>
#include <epan/dfilter/dfunctions.h>
@@ -587,12 +585,12 @@ void DisplayFilterEdit::buildCompletionList(const QString &field_word, const QSt
void *field_cookie;
const QByteArray fw_ba = field_word.toUtf8(); // or toLatin1 or toStdString?
const char *fw_utf8 = fw_ba.constData();
- gsize fw_len = (gsize) strlen(fw_utf8);
+ size_t fw_len = (size_t) strlen(fw_utf8);
for (header_field_info *hfinfo = proto_get_first_protocol_field(proto_id, &field_cookie); hfinfo; hfinfo = proto_get_next_protocol_field(proto_id, &field_cookie)) {
if (hfinfo->same_name_prev_id != -1) continue; // Ignore duplicate names.
if (!g_ascii_strncasecmp(fw_utf8, hfinfo->abbrev, fw_len)) {
- if ((gsize) strlen(hfinfo->abbrev) != fw_len) field_list << hfinfo->abbrev;
+ if ((size_t) strlen(hfinfo->abbrev) != fw_len) field_list << hfinfo->abbrev;
}
}
}
@@ -600,7 +598,7 @@ void DisplayFilterEdit::buildCompletionList(const QString &field_word, const QSt
// Add display filter functions to the completion list
GPtrArray *func_list = df_func_name_list();
- for (guint i = 0; i < func_list->len; i++) {
+ for (unsigned i = 0; i < func_list->len; i++) {
field_list << QString::fromUtf8(static_cast<const char *>(func_list->pdata[i])).append("(");
}
g_ptr_array_unref(func_list);
diff --git a/ui/qt/widgets/dissector_syntax_line_edit.cpp b/ui/qt/widgets/dissector_syntax_line_edit.cpp
index 147ca2ea5c..4f228ce4f2 100644
--- a/ui/qt/widgets/dissector_syntax_line_edit.cpp
+++ b/ui/qt/widgets/dissector_syntax_line_edit.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/packet.h>
#include <wsutil/utf8_entities.h>
diff --git a/ui/qt/widgets/field_filter_edit.cpp b/ui/qt/widgets/field_filter_edit.cpp
index 7aebf051ea..b2452c30f8 100644
--- a/ui/qt/widgets/field_filter_edit.cpp
+++ b/ui/qt/widgets/field_filter_edit.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/dfilter/dfilter.h>
#include <wsutil/filter_files.h>
@@ -160,12 +158,12 @@ void FieldFilterEdit::buildCompletionList(const QString &field_word, const QStri
void *field_cookie;
const QByteArray fw_ba = field_word.toUtf8(); // or toLatin1 or toStdString?
const char *fw_utf8 = fw_ba.constData();
- gsize fw_len = (gsize) strlen(fw_utf8);
+ size_t fw_len = (size_t) strlen(fw_utf8);
for (header_field_info *hfinfo = proto_get_first_protocol_field(proto_id, &field_cookie); hfinfo; hfinfo = proto_get_next_protocol_field(proto_id, &field_cookie)) {
if (hfinfo->same_name_prev_id != -1) continue; // Ignore duplicate names.
if (!g_ascii_strncasecmp(fw_utf8, hfinfo->abbrev, fw_len)) {
- if ((gsize) strlen(hfinfo->abbrev) != fw_len) field_list << hfinfo->abbrev;
+ if ((size_t) strlen(hfinfo->abbrev) != fw_len) field_list << hfinfo->abbrev;
}
}
}
diff --git a/ui/qt/widgets/filter_expression_toolbar.cpp b/ui/qt/widgets/filter_expression_toolbar.cpp
index 84dabc47ad..af53172fed 100644
--- a/ui/qt/widgets/filter_expression_toolbar.cpp
+++ b/ui/qt/widgets/filter_expression_toolbar.cpp
@@ -181,7 +181,7 @@ WiresharkMimeData * FilterExpressionToolBar::createMimeData(QString name, int po
void FilterExpressionToolBar::onActionMoved(QAction* action, int oldPos, int newPos)
{
- gchar* err = NULL;
+ char* err = NULL;
if (oldPos == newPos)
return;
@@ -237,7 +237,7 @@ void FilterExpressionToolBar::onFilterDropped(QString description, QString filte
return;
filter_expression_new(qUtf8Printable(description),
- qUtf8Printable(filter), qUtf8Printable(description), TRUE);
+ qUtf8Printable(filter), qUtf8Printable(description), true);
save_migrated_uat("Display expressions", &prefs.filter_expressions_old);
filterExpressionsChanged();
@@ -407,7 +407,7 @@ bool FilterExpressionToolBar::filter_expression_add_action(const void *key _U_,
struct filter_expression_data* data = (filter_expression_data*)user_data;
if (!fe->enabled)
- return FALSE;
+ return false;
QString label = QString(fe->label);
@@ -449,7 +449,7 @@ bool FilterExpressionToolBar::filter_expression_add_action(const void *key _U_,
connect(dfb_action, &QAction::triggered, data->toolbar, &FilterExpressionToolBar::filterClicked);
data->actions_added = true;
- return FALSE;
+ return false;
}
void FilterExpressionToolBar::filterClicked()
diff --git a/ui/qt/widgets/filter_expression_toolbar.h b/ui/qt/widgets/filter_expression_toolbar.h
index 80724a27f1..174d927baf 100644
--- a/ui/qt/widgets/filter_expression_toolbar.h
+++ b/ui/qt/widgets/filter_expression_toolbar.h
@@ -9,8 +9,6 @@
#include <ui/qt/widgets/drag_drop_toolbar.h>
-#include <glib.h>
-
#include <QMenu>
#ifndef FILTER_EXPRESSION_TOOLBAR_H
diff --git a/ui/qt/widgets/follow_stream_text.cpp b/ui/qt/widgets/follow_stream_text.cpp
index 83524d7e18..b2492c0b5c 100644
--- a/ui/qt/widgets/follow_stream_text.cpp
+++ b/ui/qt/widgets/follow_stream_text.cpp
@@ -152,7 +152,7 @@ int FollowStreamText::textPosToPacket(int text_pos) const
{
int pkt = 0;
if (text_pos >= 0) {
- QMap<int, guint32>::const_iterator it = text_pos_to_packet_.upperBound(text_pos);
+ QMap<int, uint32_t>::const_iterator it = text_pos_to_packet_.upperBound(text_pos);
if (it != text_pos_to_packet_.end()) {
pkt = it.value();
}
diff --git a/ui/qt/widgets/profile_tree_view.cpp b/ui/qt/widgets/profile_tree_view.cpp
index afa86d7143..ebac67c79b 100644
--- a/ui/qt/widgets/profile_tree_view.cpp
+++ b/ui/qt/widgets/profile_tree_view.cpp
@@ -7,31 +7,28 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
-#include <ui/qt/models/url_link_delegate.h>
#include <ui/qt/models/profile_model.h>
#include <ui/qt/utils/qt_ui_utils.h>
+#include <ui/qt/widgets/display_filter_edit.h>
#include <ui/qt/widgets/profile_tree_view.h>
#include <QDesktopServices>
#include <QDir>
+#include <QHeaderView>
#include <QItemDelegate>
#include <QLineEdit>
-#include <QUrl>
-ProfileUrlLinkDelegate::ProfileUrlLinkDelegate(QObject *parent) : UrlLinkDelegate (parent) {}
+ProfileTreeEditDelegate::ProfileTreeEditDelegate(QWidget *parent) : QItemDelegate(parent), editor_(Q_NULLPTR) {}
-void ProfileUrlLinkDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+QWidget *ProfileTreeEditDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option,
+ const QModelIndex &index) const
{
- /* Only paint links for valid paths */
- if (index.data(ProfileModel::DATA_PATH_IS_NOT_DESCRIPTION).toBool())
- UrlLinkDelegate::paint(painter, option, index);
- else
- QStyledItemDelegate::paint(painter, option, index);
-
+ if (index.column() == ProfileModel::COL_AUTO_SWITCH_FILTER) {
+ return new DisplayFilterEdit(parent);
+ }
+ return QItemDelegate::createEditor(parent, option, index);
}
-ProfileTreeEditDelegate::ProfileTreeEditDelegate(QWidget *parent) : QItemDelegate(parent), editor_(Q_NULLPTR) {}
-
void ProfileTreeEditDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
if (qobject_cast<QLineEdit *>(editor))
@@ -46,8 +43,8 @@ ProfileTreeView::ProfileTreeView(QWidget *parent) :
{
delegate_ = new ProfileTreeEditDelegate();
setItemDelegateForColumn(ProfileModel::COL_NAME, delegate_);
+ setItemDelegateForColumn(ProfileModel::COL_AUTO_SWITCH_FILTER, delegate_);
- connect(this, &QAbstractItemView::clicked, this, &ProfileTreeView::clicked);
connect(delegate_, &ProfileTreeEditDelegate::commitData, this, &ProfileTreeView::itemUpdated);
}
@@ -80,19 +77,6 @@ void ProfileTreeView::selectionChanged(const QItemSelection &selected, const QIt
}
}
-void ProfileTreeView::clicked(const QModelIndex &index)
-{
- if (!index.isValid())
- return;
-
- /* Only paint links for valid paths */
- if (index.data(ProfileModel::DATA_INDEX_VALUE_IS_URL).toBool())
- {
- QString path = QDir::toNativeSeparators(index.data().toString());
- QDesktopServices::openUrl(QUrl::fromLocalFile(path));
- }
-}
-
void ProfileTreeView::selectRow(int row)
{
if (row < 0)
@@ -117,3 +101,30 @@ bool ProfileTreeView::activeEdit()
{
return (state() == QAbstractItemView::EditingState);
}
+
+// If our auto switch filters are shorter than the filter column title,
+// stretch the name column.
+void ProfileTreeView::showEvent(QShowEvent *)
+{
+ bool have_wide_filter = false;
+ int auto_switch_title_width = fontMetrics().horizontalAdvance(model()->headerData(ProfileModel::COL_AUTO_SWITCH_FILTER, Qt::Horizontal).toString());
+ for (int row = 0; row < model()->rowCount(); row++) {
+ QString filter = model()->data(model()->index(row, ProfileModel::COL_AUTO_SWITCH_FILTER)).toString();
+ if (fontMetrics().horizontalAdvance(filter) > auto_switch_title_width) {
+ have_wide_filter = true;
+ break;
+ }
+ }
+
+ if (have_wide_filter) {
+ return;
+ }
+
+ int col_name_size_hint = sizeHintForColumn(ProfileModel::COL_NAME);
+ int col_asf_size_hint = qMax(header()->sectionSizeHint(ProfileModel::COL_AUTO_SWITCH_FILTER), sizeHintForColumn(ProfileModel::COL_AUTO_SWITCH_FILTER));
+ int extra = columnWidth(ProfileModel::COL_AUTO_SWITCH_FILTER) - col_asf_size_hint;
+ if (extra > 0) {
+ setColumnWidth(ProfileModel::COL_NAME, col_name_size_hint + extra);
+ }
+
+}
diff --git a/ui/qt/widgets/profile_tree_view.h b/ui/qt/widgets/profile_tree_view.h
index 9684811e1a..02492e4b28 100644
--- a/ui/qt/widgets/profile_tree_view.h
+++ b/ui/qt/widgets/profile_tree_view.h
@@ -15,16 +15,6 @@
#include <QTreeView>
#include <QItemDelegate>
-class ProfileUrlLinkDelegate : public UrlLinkDelegate
-{
- Q_OBJECT
-
-public:
- explicit ProfileUrlLinkDelegate(QObject *parent = Q_NULLPTR);
-
- virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
-};
-
class ProfileTreeEditDelegate : public QItemDelegate
{
Q_OBJECT
@@ -32,6 +22,7 @@ public:
ProfileTreeEditDelegate(QWidget *parent = Q_NULLPTR);
// QAbstractItemDelegate interface
+ QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const;
virtual void setEditorData(QWidget *editor, const QModelIndex &index) const;
private:
@@ -54,12 +45,12 @@ signals:
// QWidget interface
protected:
+ virtual void showEvent(QShowEvent *);
virtual void mouseDoubleClickEvent(QMouseEvent *event);
// QAbstractItemView interface
protected slots:
virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
- virtual void clicked(const QModelIndex &index);
private:
ProfileTreeEditDelegate *delegate_;
diff --git a/ui/qt/widgets/qcp_axis_ticker_si.cpp b/ui/qt/widgets/qcp_axis_ticker_si.cpp
new file mode 100644
index 0000000000..be6d35a614
--- /dev/null
+++ b/ui/qt/widgets/qcp_axis_ticker_si.cpp
@@ -0,0 +1,74 @@
+/** @file
+ *
+ * QCustomPlot QCPAxisTicker subclass that creates human-readable
+ * SI unit labels, optionally supporting log scale.
+ *
+ * Copyright 2024 John Thacker <johnthacker@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include <cmath>
+
+#include <ui/qt/widgets/qcp_axis_ticker_si.h>
+#include <ui/qt/utils/qt_ui_utils.h>
+
+#include <wsutil/str_util.h>
+
+QCPAxisTickerSi::QCPAxisTickerSi(format_size_units_e unit, QString customUnit, bool log) :
+ mUnit(unit), mCustomUnit(customUnit), mLog(log)
+{
+}
+
+QString QCPAxisTickerSi::getTickLabel(double tick, const QLocale& , QChar , int precision)
+{
+ QString label = gchar_free_to_qstring(format_units(nullptr, tick, mUnit, FORMAT_SIZE_PREFIX_SI, precision));
+
+ // XXX - format_units isn't consistent about whether we need to
+ // add a space or not
+ if (mUnit == FORMAT_SIZE_UNIT_NONE && !mCustomUnit.isEmpty()) {
+ label += mCustomUnit;
+ }
+ // XXX - "Beautiful typeset powers" for exponentials is handled by QCPAxis,
+ // not QCPAxisTicker and its subclasses, and its detection of exponentials
+ // doesn't handle having a unit or other suffix, so that won't work.
+ // In practical use we'll be within our prefix range, though.
+ return label;
+}
+
+int QCPAxisTickerSi::getSubTickCount(double tickStep)
+{
+ if (mLog) {
+ return QCPAxisTickerLog::getSubTickCount(tickStep);
+ } else {
+ return QCPAxisTicker::getSubTickCount(tickStep);
+ }
+}
+
+QVector<double> QCPAxisTickerSi::createTickVector(double tickStep, const QCPRange &range)
+{
+ if (mLog) {
+ return QCPAxisTickerLog::createTickVector(tickStep, range);
+ } else {
+ return QCPAxisTicker::createTickVector(tickStep, range);
+ }
+}
+
+void QCPAxisTickerSi::setUnit(format_size_units_e unit)
+{
+ mUnit = unit;
+}
+
+void QCPAxisTickerSi::setCustomUnit(QString unit)
+{
+ mCustomUnit = unit;
+}
+
+void QCPAxisTickerSi::setLog(bool log)
+{
+ mLog = log;
+}
diff --git a/ui/qt/widgets/qcp_axis_ticker_si.h b/ui/qt/widgets/qcp_axis_ticker_si.h
new file mode 100644
index 0000000000..a9fa51cc37
--- /dev/null
+++ b/ui/qt/widgets/qcp_axis_ticker_si.h
@@ -0,0 +1,42 @@
+/** @file
+ *
+ * QCustomPlot QCPAxisTicker subclass that creates human-readable
+ * SI unit labels, optionally supporting log scale.
+ *
+ * Copyright 2024 John Thacker <johnthacker@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef QCP_AXIS_TICKER_SI_H
+#define QCP_AXIS_TICKER_SI_H
+
+#include <ui/qt/widgets/qcustomplot.h>
+
+#include <wsutil/str_util.h>
+
+class QCPAxisTickerSi : public QCPAxisTickerLog
+{
+public:
+ explicit QCPAxisTickerSi(format_size_units_e unit = FORMAT_SIZE_UNIT_PACKETS, QString customUnit = QString(), bool log = false);
+
+ format_size_units_e getUnit() const { return mUnit; }
+ void setUnit(format_size_units_e unit);
+ void setCustomUnit(QString unit);
+ void setLog(bool log);
+
+protected:
+ virtual QString getTickLabel(double tick, const QLocale &locale, QChar formatChar, int precision) override;
+ virtual int getSubTickCount(double tickStep) override;
+ virtual QVector<double> createTickVector(double tickStep, const QCPRange &range) override;
+
+ format_size_units_e mUnit;
+ QString mCustomUnit;
+ bool mLog;
+};
+
+#endif
diff --git a/ui/qt/widgets/qcp_string_legend_item.cpp b/ui/qt/widgets/qcp_string_legend_item.cpp
new file mode 100644
index 0000000000..6259689561
--- /dev/null
+++ b/ui/qt/widgets/qcp_string_legend_item.cpp
@@ -0,0 +1,46 @@
+/** @file
+ *
+ * QCustomPlot QCPAbstractLegendItem subclass containing a string.
+ * This is used to add a title to a QCPLegend.
+ *
+ * This file is from https://www.qcustomplot.com/index.php/support/forum/443
+ * where the author David said "I thought I would share in case any one else
+ * is needing the same functionality." Accordingly, this file is in the
+ * public domain.
+ */
+
+#include <ui/qt/widgets/qcp_string_legend_item.h>
+
+QCPStringLegendItem::QCPStringLegendItem(QCPLegend *pParent, const QString& strText)
+ : QCPAbstractLegendItem(pParent)
+ , m_strText(strText)
+{
+}
+
+QString QCPStringLegendItem::text() const
+{
+ return m_strText;
+}
+
+void QCPStringLegendItem::setText(const QString& strText)
+{
+ m_strText = strText;
+}
+
+void QCPStringLegendItem::draw(QCPPainter *pPainter)
+{
+ pPainter->setFont(mFont);
+ pPainter->setPen(QPen(mTextColor));
+ QRectF textRect = pPainter->fontMetrics().boundingRect(0, 0, 0, 0, Qt::TextDontClip, m_strText);
+ pPainter->drawText(mRect.x() + mMargins.left(), mRect.y(), textRect.width(), textRect.height(), Qt::TextDontClip | Qt::AlignHCenter, m_strText);
+}
+
+QSize QCPStringLegendItem::minimumOuterSizeHint() const
+{
+ QSize cSize(0, 0);
+ QFontMetrics fontMetrics(mFont);
+ QRect textRect = fontMetrics.boundingRect(0, 0, 0, 0, Qt::TextDontClip, m_strText);
+ cSize.setWidth(textRect.width() + mMargins.left() + mMargins.right());
+ cSize.setHeight(textRect.height() + mMargins.top() + mMargins.bottom());
+ return cSize;
+}
diff --git a/ui/qt/widgets/qcp_string_legend_item.h b/ui/qt/widgets/qcp_string_legend_item.h
new file mode 100644
index 0000000000..d32631ad53
--- /dev/null
+++ b/ui/qt/widgets/qcp_string_legend_item.h
@@ -0,0 +1,35 @@
+/** @file
+ *
+ * QCustomPlot QCPAbstractLegendItem subclass containing a string.
+ * This is used to add a title to a QCPLegend.
+ *
+ * This file is from https://www.qcustomplot.com/index.php/support/forum/443
+ * where the author David said "I thought I would share in case any one else
+ * is needing the same functionality." Accordingly, this file is in the
+ * public domain.
+ */
+
+#ifndef QCP_STRING_LEGEND_ITEM_H
+#define QCP_STRING_LEGEND_ITEM_H
+
+#include <ui/qt/widgets/qcustomplot.h>
+
+class QCPStringLegendItem : public QCPAbstractLegendItem
+{
+ Q_OBJECT
+
+public:
+ explicit QCPStringLegendItem(QCPLegend *pParent, const QString& strText);
+
+ QString text() const;
+ void setText(const QString& strText);
+
+protected:
+ virtual void draw(QCPPainter *painter) override;
+ virtual QSize minimumOuterSizeHint() const override;
+
+private:
+ QString m_strText;
+};
+
+#endif
diff --git a/ui/qt/widgets/resize_header_view.cpp b/ui/qt/widgets/resize_header_view.cpp
new file mode 100644
index 0000000000..7335265fe5
--- /dev/null
+++ b/ui/qt/widgets/resize_header_view.cpp
@@ -0,0 +1,45 @@
+/** @file
+ *
+ * Header view with a context menu to resize all sections to contents
+ *
+ * Copyright 2024 John Thacker <johnthacker@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "resize_header_view.h"
+
+#include <QMenu>
+#include <QContextMenuEvent>
+
+ResizeHeaderView::ResizeHeaderView(Qt::Orientation orientation, QWidget *parent) : QHeaderView(orientation, parent)
+{
+ setStretchLastSection(true);
+ setSectionsMovable(true);
+ // setFirstSectionMovable(true) ?
+}
+
+/*!
+ \fn void ResizeHeaderView::contextMenuEvent(QContextMenuEvent *e)
+
+ Shows a context menu which resizes all sections to their contents.
+ */
+
+void ResizeHeaderView::contextMenuEvent(QContextMenuEvent *e)
+{
+ if (e == nullptr)
+ return;
+
+ QMenu *ctxMenu = new QMenu(this);
+ ctxMenu->setAttribute(Qt::WA_DeleteOnClose);
+
+ QString text = tr("Resize all %1 to contents").arg((orientation() == Qt::Horizontal) ? "columns" : "rows");
+ QAction *act = ctxMenu->addAction(std::move(text));
+ connect(act, &QAction::triggered, this, [&]() { resizeSections(QHeaderView::ResizeToContents); });
+
+ ctxMenu->popup(e->globalPos());
+}
diff --git a/ui/qt/widgets/resize_header_view.h b/ui/qt/widgets/resize_header_view.h
new file mode 100644
index 0000000000..a8aa57f3f7
--- /dev/null
+++ b/ui/qt/widgets/resize_header_view.h
@@ -0,0 +1,31 @@
+/** @file
+ *
+ * Header view with a context menu to resize all sections to contents
+ *
+ * Copyright 2024 John Thacker <johnthacker@gmail.com>
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef RESIZE_HEADER_VIEW_H
+#define RESIZE_HEADER_VIEW_H
+
+#include <config.h>
+#include <QHeaderView>
+
+class ResizeHeaderView : public QHeaderView
+{
+ Q_OBJECT
+
+public:
+ ResizeHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr);
+
+protected:
+ void contextMenuEvent(QContextMenuEvent *e) override;
+
+};
+#endif // RESIZE_HEADER_VIEW_H
diff --git a/ui/qt/widgets/rtp_audio_graph.cpp b/ui/qt/widgets/rtp_audio_graph.cpp
index 1340658b38..58ff2f1f9a 100644
--- a/ui/qt/widgets/rtp_audio_graph.cpp
+++ b/ui/qt/widgets/rtp_audio_graph.cpp
@@ -9,8 +9,6 @@
#include "rtp_audio_graph.h"
-#include <glib.h>
-
#include <epan/prefs.h>
#include <ui/qt/utils/color_utils.h>
diff --git a/ui/qt/widgets/splash_overlay.h b/ui/qt/widgets/splash_overlay.h
index b15d98c4bb..3f5625fcc0 100644
--- a/ui/qt/widgets/splash_overlay.h
+++ b/ui/qt/widgets/splash_overlay.h
@@ -12,8 +12,6 @@
#include <config.h>
-#include <glib.h>
-
#include "epan/register.h"
#include <QWidget>
diff --git a/ui/qt/widgets/syntax_line_edit.cpp b/ui/qt/widgets/syntax_line_edit.cpp
index 185bf585c9..2e32f91e4b 100644
--- a/ui/qt/widgets/syntax_line_edit.cpp
+++ b/ui/qt/widgets/syntax_line_edit.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/prefs.h>
#include <epan/proto.h>
#include <epan/dfilter/dfilter.h>
@@ -212,7 +210,7 @@ bool SyntaxLineEdit::checkDisplayFilter(QString filter)
* We're being lazy and only printing the first warning.
* Would it be better to print all of them?
*/
- syntax_error_message_ = QString(static_cast<gchar *>(warn->data));
+ syntax_error_message_ = QString(static_cast<char *>(warn->data));
} else if (dfp != NULL && (depr = dfilter_deprecated_tokens(dfp)) != NULL) {
// You keep using that word. I do not think it means what you think it means.
// Possible alternatives: ::Troubled, or ::Problematic maybe?
@@ -222,7 +220,7 @@ bool SyntaxLineEdit::checkDisplayFilter(QString filter)
* Would it be better to print all of them?
*/
QString token((const char *)g_ptr_array_index(depr, 0));
- gchar *token_str = qstring_strdup(token.section('.', 0, 0));
+ char *token_str = qstring_strdup(token.section('.', 0, 0));
header_field_info *hfi = proto_registrar_get_byalias(token_str);
if (hfi)
syntax_error_message_ = tr("\"%1\" is deprecated in favour of \"%2\". "
@@ -279,11 +277,11 @@ void SyntaxLineEdit::checkCustomColumn(QString fields)
// without all of its integration into the main app, but not every user
// of FieldFilterEdit wants that, so perhaps we eventually should have
// another class.
- gchar **splitted_fields = g_regex_split_simple(COL_CUSTOM_PRIME_REGEX,
+ char **splitted_fields = g_regex_split_simple(COL_CUSTOM_PRIME_REGEX,
fields.toUtf8().constData(), (GRegexCompileFlags) G_REGEX_RAW,
(GRegexMatchFlags) 0);
- for (guint i = 0; i < g_strv_length(splitted_fields); i++) {
+ for (unsigned i = 0; i < g_strv_length(splitted_fields); i++) {
if (splitted_fields[i] && *splitted_fields[i]) {
if (proto_check_field_name(splitted_fields[i]) != 0) {
setSyntaxState(SyntaxLineEdit::Invalid);
@@ -439,17 +437,23 @@ void SyntaxLineEdit::paintEvent(QPaintEvent *event)
QRect cr = style()->subElementRect(QStyle::SE_LineEditContents, &opt, this);
QPainter painter(this);
- // In my (gcc) testing here, if I add "background: yellow;" to the DisplayFilterCombo
- // stylesheet, when building with Qt 5.15.2 the combobox background is yellow and the
- // text entry area (between the bookmark and apply button) is drawn in the correct
- // base color (white for light mode and black for dark mode), and the correct syntax
- // color otherwise. When building with Qt 6.2.4 and 6.3.1, the combobox background is
- // yellow and the text entry area is always yellow, i.e. QLineEdit isn't painting its
- // background for some reason.
+ // In the attempt to fix https://bugreports.qt.io/browse/QTBUG-81533
+ // the following commit was added to Qt 6.0.0 and later 5.15.3:
+ // https://code.qt.io/cgit/qt/qtbase.git/commit/src/widgets/widgets/qcombobox.cpp?h=5.15&id=6e470764a98434a120eba4fcc6035137cf9c92cf
+ //
+ // It causes a similar problem to the one it was trying to fix, viz. if I
+ // add "background: yellow;" to the DisplayFilterCombo stylesheet, when
+ // building with Qt 5.15.2 the combobox background is yellow and the text
+ // entry area (between the bookmark and apply button) is drawn in the correct
+ // base color (white for light mode and black for dark mode), and the correct
+ // syntax color otherwise. When building with Qt 5.15.3 and 6.2.4 and 6.3.1,
+ // the combobox background is yellow and the text entry area is always yellow,
+ // i.e. QLineEdit isn't painting its background because the palette from
+ // the combobox is used instead.
//
- // It's not clear if this is a bug or just how things work under Qt6. Either way, it's
- // easy to work around.
-#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ // It's not clear if this is a bug or just how things work under Qt6.
+ // Either way, it's easy to work around.
+#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 3)
// Must match CaptureFilterEdit and DisplayFilterEdit stylesheets.
int pad = style()->pixelMetric(QStyle::PM_DefaultFrameWidth) + 1;
QRect full_cr = cr.adjusted(-pad, 0, -1, 0);
diff --git a/ui/qt/widgets/traffic_tab.cpp b/ui/qt/widgets/traffic_tab.cpp
index 9ea485755c..d30794e0e1 100644
--- a/ui/qt/widgets/traffic_tab.cpp
+++ b/ui/qt/widgets/traffic_tab.cpp
@@ -530,7 +530,7 @@ TrafficTab::writeGeoIPMapFile(QFile * fp, bool json_only, TrafficDataFilterProxy
if (!maxmind_db_has_coords(result)) {
// result could be NULL if the caller did not trigger a lookup
- // before. result->found could be FALSE if no MMDB entry exists.
+ // before. result->found could be false if no MMDB entry exists.
continue;
}
diff --git a/ui/qt/widgets/traffic_tab.h b/ui/qt/widgets/traffic_tab.h
index 7c5ca9dc2c..efaa2b65a3 100644
--- a/ui/qt/widgets/traffic_tab.h
+++ b/ui/qt/widgets/traffic_tab.h
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include <ui/qt/models/atap_data_model.h>
#include <ui/qt/filter_action.h>
#include <ui/qt/widgets/traffic_tree.h>
diff --git a/ui/qt/widgets/traffic_tree.cpp b/ui/qt/widgets/traffic_tree.cpp
index d97032b6e0..db3425a9a5 100644
--- a/ui/qt/widgets/traffic_tree.cpp
+++ b/ui/qt/widgets/traffic_tree.cpp
@@ -204,7 +204,7 @@ void TrafficTreeHeaderView::columnTriggered(bool checked)
for (int col = 0; col < tree->dataModel()->columnCount(); col++) {
if (proxy->columnVisible(col)) {
visible << col;
- gchar *nr = qstring_strdup(QString::number(col));
+ char *nr = qstring_strdup(QString::number(col));
*_recentColumnList = g_list_append(*_recentColumnList, nr);
}
}
diff --git a/ui/qt/widgets/traffic_tree.h b/ui/qt/widgets/traffic_tree.h
index 5bc87e91b0..00d9178397 100644
--- a/ui/qt/widgets/traffic_tree.h
+++ b/ui/qt/widgets/traffic_tree.h
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include <ui/recent.h>
#include <ui/qt/models/atap_data_model.h>
diff --git a/ui/qt/widgets/traffic_types_list.cpp b/ui/qt/widgets/traffic_types_list.cpp
index 30126ef947..b43a5f368b 100644
--- a/ui/qt/widgets/traffic_types_list.cpp
+++ b/ui/qt/widgets/traffic_types_list.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include <epan/conversation_table.h>
#include <ui/qt/widgets/traffic_types_list.h>
@@ -48,12 +46,12 @@ static bool iterateProtocols(const void *key, void *value, void *userdata)
QList<TrafficTypesRowData> * protocols = (QList<TrafficTypesRowData> *)userdata;
register_ct_t* ct = (register_ct_t*)value;
- const QString title = (const gchar*)key;
+ const QString title = (const char*)key;
int proto_id = get_conversation_proto_id(ct);
TrafficTypesRowData entry(proto_id, title);
protocols->append(entry);
- return FALSE;
+ return false;
}
TrafficTypesModel::TrafficTypesModel(GList ** recentList, QObject *parent) :
diff --git a/ui/qt/widgets/traffic_types_list.h b/ui/qt/widgets/traffic_types_list.h
index 00798c5090..2666eb7886 100644
--- a/ui/qt/widgets/traffic_types_list.h
+++ b/ui/qt/widgets/traffic_types_list.h
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include <QTreeView>
#include <QAbstractListModel>
#include <QMap>
@@ -122,4 +120,4 @@ private:
TrafficListSortModel * _sortModel;
};
-#endif // TRAFFIC_TYPES_LIST_H \ No newline at end of file
+#endif // TRAFFIC_TYPES_LIST_H
diff --git a/ui/qt/widgets/wireless_timeline.cpp b/ui/qt/widgets/wireless_timeline.cpp
index 25ee730bf6..e904cf49cf 100644
--- a/ui/qt/widgets/wireless_timeline.cpp
+++ b/ui/qt/widgets/wireless_timeline.cpp
@@ -75,7 +75,7 @@ static void reset_rgb(float rgb[TIMELINE_HEIGHT][3])
rgb[i][0] = rgb[i][1] = rgb[i][2] = 1.0;
}
-static void render_pixels(QPainter &p, gint x, gint width, float rgb[TIMELINE_HEIGHT][3], float ratio)
+static void render_pixels(QPainter &p, int x, int width, float rgb[TIMELINE_HEIGHT][3], float ratio)
{
int previous = 0, i;
for (i = 1; i <= TIMELINE_HEIGHT; i++) {
@@ -92,7 +92,7 @@ static void render_pixels(QPainter &p, gint x, gint width, float rgb[TIMELINE_HE
reset_rgb(rgb);
}
-static void render_rectangle(QPainter &p, gint x, gint width, guint height, int dfilter, float r, float g, float b, float ratio)
+static void render_rectangle(QPainter &p, int x, int width, unsigned height, int dfilter, float r, float g, float b, float ratio)
{
p.fillRect(QRectF(x/ratio, TIMELINE_HEIGHT/2-height, width/ratio, dfilter ? height * 2 : height), pcolor(r,g,b));
}
@@ -157,25 +157,25 @@ void WirelessTimeline::mouseReleaseEvent(QMouseEvent *event)
return;
/* this was a click */
- guint num = find_packet(localPos.x());
+ unsigned num = find_packet(localPos.x());
if (num == 0)
return;
- cf_goto_frame(&cfile, num, FALSE);
+ cf_goto_frame(&cfile, num, false);
}
void WirelessTimeline::clip_tsf()
{
// did we go past the start of the file?
- if (((gint64) start_tsf) < ((gint64) first->start_tsf)) {
+ if (((int64_t) start_tsf) < ((int64_t) first->start_tsf)) {
// align the start of the file at the left edge
- guint64 shift = first->start_tsf - start_tsf;
+ uint64_t shift = first->start_tsf - start_tsf;
start_tsf += shift;
end_tsf += shift;
}
if (end_tsf > last->end_tsf) {
- guint64 shift = end_tsf - last->end_tsf;
+ uint64_t shift = end_tsf - last->end_tsf;
start_tsf -= shift;
end_tsf -= shift;
}
@@ -190,32 +190,32 @@ void WirelessTimeline::selectedFrameChanged(QList<int>)
if (cfile.current_frame) {
struct wlan_radio *wr = get_wlan_radio(cfile.current_frame->num);
- guint left_margin = 0.9 * start_tsf + 0.1 * end_tsf;
- guint right_margin = 0.1 * start_tsf + 0.9 * end_tsf;
- guint64 half_window = (end_tsf - start_tsf)/2;
+ unsigned left_margin = 0.9 * start_tsf + 0.1 * end_tsf;
+ unsigned right_margin = 0.1 * start_tsf + 0.9 * end_tsf;
+ uint64_t half_window = (end_tsf - start_tsf)/2;
if (wr) {
// are we to the left of the left margin?
if (wr->start_tsf < left_margin) {
// scroll the left edge back to the left margin
- guint64 offset = left_margin - wr->start_tsf;
+ uint64_t offset = left_margin - wr->start_tsf;
if (offset < half_window) {
// small movement; keep packet to margin
start_tsf -= offset;
end_tsf -= offset;
} else {
// large movement; move packet to center of window
- guint64 center = (wr->start_tsf + wr->end_tsf)/2;
+ uint64_t center = (wr->start_tsf + wr->end_tsf)/2;
start_tsf = center - half_window;
end_tsf = center + half_window;
}
} else if (wr->end_tsf > right_margin) {
- guint64 offset = wr->end_tsf - right_margin;
+ uint64_t offset = wr->end_tsf - right_margin;
if (offset < half_window) {
start_tsf += offset;
end_tsf += offset;
} else {
- guint64 center = (wr->start_tsf + wr->end_tsf)/2;
+ uint64_t center = (wr->start_tsf + wr->end_tsf)/2;
start_tsf = center - half_window;
end_tsf = center + half_window;
}
@@ -230,10 +230,10 @@ void WirelessTimeline::selectedFrameChanged(QList<int>)
/* given an x position find which packet that corresponds to.
* if it's inter frame space the subsequent packet is returned */
-guint
+unsigned
WirelessTimeline::find_packet(qreal x_position)
{
- guint64 x_time = start_tsf + (x_position/width() * (end_tsf - start_tsf));
+ uint64_t x_time = start_tsf + (x_position/width() * (end_tsf - start_tsf));
return find_packet_tsf(x_time);
}
@@ -263,7 +263,7 @@ void WirelessTimeline::captureFileReadFinished()
*/
/* TODO: update GUI to handle captures with occasional frames missing TSF data */
/* TODO: indicate error message to the user */
- for (guint32 n = 1; n < cfile.count; n++) {
+ for (uint32_t n = 1; n < cfile.count; n++) {
struct wlan_radio *w = get_wlan_radio(n);
if (w->start_tsf == 0 || w->end_tsf == 0) {
QString err = tr("Packet number %1 does not include TSF timestamp, not showing timeline.").arg(n);
@@ -300,7 +300,7 @@ void WirelessTimeline::appInitialized()
error_string = register_tap_listener("wlan_radio_timeline", this, NULL, TL_REQUIRES_NOTHING, tap_timeline_reset, tap_timeline_packet, NULL/*tap_draw_cb tap_draw*/, NULL);
if (error_string) {
report_failure("Wireless Timeline - tap registration failed: %s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -311,11 +311,11 @@ void WirelessTimeline::resizeEvent(QResizeEvent*)
// Calculate the x position on the GUI from the timestamp
-int WirelessTimeline::position(guint64 tsf, float ratio)
+int WirelessTimeline::position(uint64_t tsf, float ratio)
{
int position = -100;
- if (tsf != G_MAXUINT64) {
+ if (tsf != UINT64_MAX) {
position = ((double) tsf - start_tsf)*width()*ratio/(end_tsf-start_tsf);
}
return position;
@@ -374,11 +374,11 @@ tap_packet_status WirelessTimeline::tap_timeline_packet(void *tapdata, packet_in
const struct wlan_radio *wlan_radio_info = (const struct wlan_radio *)data;
/* Save the radio information in our own (GUI) hashtable */
- g_hash_table_insert(timeline->radio_packet_list, GUINT_TO_POINTER(pinfo->num), (gpointer)wlan_radio_info);
+ g_hash_table_insert(timeline->radio_packet_list, GUINT_TO_POINTER(pinfo->num), (void *)wlan_radio_info);
return TAP_PACKET_DONT_REDRAW;
}
-struct wlan_radio* WirelessTimeline::get_wlan_radio(guint32 packet_num)
+struct wlan_radio* WirelessTimeline::get_wlan_radio(uint32_t packet_num)
{
return (struct wlan_radio*)g_hash_table_lookup(radio_packet_list, GUINT_TO_POINTER(packet_num));
}
@@ -398,7 +398,7 @@ bool WirelessTimeline::event(QEvent *event)
{
if (event->type() == QEvent::ToolTip) {
QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
- guint packet = find_packet(helpEvent->pos().x());
+ unsigned packet = find_packet(helpEvent->pos().x());
if (packet) {
doToolTip(get_wlan_radio(packet), helpEvent->globalPos(), helpEvent->x());
} else {
@@ -448,16 +448,16 @@ void WirelessTimeline::bgColorizationProgress(int first, int last)
void WirelessTimeline::zoom(double x_fraction)
{
/* adjust the zoom around the selected packet */
- guint64 file_range = last->end_tsf - first->start_tsf;
- guint64 center = start_tsf + x_fraction * (end_tsf - start_tsf);
- guint64 span = pow(file_range, 1.0 - zoom_level / TIMELINE_MAX_ZOOM);
+ uint64_t file_range = last->end_tsf - first->start_tsf;
+ uint64_t center = start_tsf + x_fraction * (end_tsf - start_tsf);
+ uint64_t span = pow(file_range, 1.0 - zoom_level / TIMELINE_MAX_ZOOM);
start_tsf = center - span * x_fraction;
end_tsf = center + span * (1.0 - x_fraction);
clip_tsf();
update();
}
-int WirelessTimeline::find_packet_tsf(guint64 tsf)
+int WirelessTimeline::find_packet_tsf(uint64_t tsf)
{
if (cfile.count < 1)
return 0;
@@ -465,11 +465,11 @@ int WirelessTimeline::find_packet_tsf(guint64 tsf)
if (cfile.count < 2)
return 1;
- guint32 min_count = 1;
- guint32 max_count = cfile.count-1;
+ uint32_t min_count = 1;
+ uint32_t max_count = cfile.count-1;
- guint64 min_tsf = get_wlan_radio(min_count)->end_tsf;
- guint64 max_tsf = get_wlan_radio(max_count)->end_tsf;
+ uint64_t min_tsf = get_wlan_radio(min_count)->end_tsf;
+ uint64_t max_tsf = get_wlan_radio(max_count)->end_tsf;
for (;;) {
if (tsf >= max_tsf)
@@ -478,11 +478,11 @@ int WirelessTimeline::find_packet_tsf(guint64 tsf)
if (tsf < min_tsf)
return min_count;
- guint32 middle = (min_count + max_count)/2;
+ uint32_t middle = (min_count + max_count)/2;
if (middle == min_count)
return middle+1;
- guint64 middle_tsf = get_wlan_radio(middle)->end_tsf;
+ uint64_t middle_tsf = get_wlan_radio(middle)->end_tsf;
if (tsf >= middle_tsf) {
min_count = middle;
@@ -546,9 +546,9 @@ WirelessTimeline::paintEvent(QPaintEvent *qpe)
if (ri == NULL) continue;
- gint8 rssi = ri->aggregate ? ri->aggregate->rssi : ri->rssi;
- guint height = (rssi+100)/2;
- gint end_nav;
+ int8_t rssi = ri->aggregate ? ri->aggregate->rssi : ri->rssi;
+ unsigned height = (rssi+100)/2;
+ int end_nav;
/* leave a margin above the packets so the selected packet can be seen */
if (height > TIMELINE_HEIGHT/2-6)
@@ -563,7 +563,7 @@ WirelessTimeline::paintEvent(QPaintEvent *qpe)
if (ri->start_tsf == 0 || ri->end_tsf == 0)
continue;
- x = ((gint64) (ri->start_tsf - start_tsf))*zoom;
+ x = ((int64_t) (ri->start_tsf - start_tsf))*zoom;
/* is there a previous anti-aliased pixel to output */
if (last_x >= 0 && ((int) x) != last_x) {
/* write it out now */
@@ -602,7 +602,7 @@ WirelessTimeline::paintEvent(QPaintEvent *qpe)
/* record NAV field at higher magnifications */
end_nav = x + width + ri->nav*zoom;
if (zoom >= 0.01 && ri->nav && end_nav > 0) {
- gint y = 2*(packet % (TIMELINE_HEIGHT/2));
+ int y = 2*(packet % (TIMELINE_HEIGHT/2));
qs.addLine(QLineF((x+width)/ratio, y, end_nav/ratio, y), QPen(pcolor(red,green,blue)));
}
diff --git a/ui/qt/widgets/wireless_timeline.h b/ui/qt/widgets/wireless_timeline.h
index de43d12335..cf67ff4ec3 100644
--- a/ui/qt/widgets/wireless_timeline.h
+++ b/ui/qt/widgets/wireless_timeline.h
@@ -21,8 +21,6 @@
#include <config.h>
-#include <glib.h>
-
#include "file.h"
#include "ui/ws_ui_util.h"
@@ -75,21 +73,21 @@ protected:
static void tap_timeline_reset(void* tapdata);
static tap_packet_status tap_timeline_packet(void *tapdata, packet_info* pinfo, epan_dissect_t* edt, const void *data, tap_flags_t flags);
- struct wlan_radio* get_wlan_radio(guint32 packet_num);
+ struct wlan_radio* get_wlan_radio(uint32_t packet_num);
void clip_tsf();
- int position(guint64 tsf, float ratio);
- int find_packet_tsf(guint64 tsf);
+ int position(uint64_t tsf, float ratio);
+ int find_packet_tsf(uint64_t tsf);
void doToolTip(struct wlan_radio *wr, QPoint pos, int x);
void zoom(double x_fraction);
double zoom_level;
qreal start_x, last_x;
PacketList *packet_list;
- guint find_packet(qreal x);
+ unsigned find_packet(qreal x);
float rgb[TIMELINE_HEIGHT][3];
- guint64 start_tsf;
- guint64 end_tsf;
+ uint64_t start_tsf;
+ uint64_t end_tsf;
int first_packet; /* first packet displayed */
struct wlan_radio *first, *last;
capture_file *capfile;
diff --git a/ui/qt/wireless_frame.cpp b/ui/qt/wireless_frame.cpp
index 26fa75dda7..4b5e14c2b1 100644
--- a/ui/qt/wireless_frame.cpp
+++ b/ui/qt/wireless_frame.cpp
@@ -12,8 +12,6 @@
#include "config.h"
-#include <glib.h>
-
#include <capture/capture_session.h>
#include <capture/capture_sync.h>
@@ -130,7 +128,7 @@ void WirelessFrame::updateInterfaceList()
ws80211_free_interfaces(interfaces_);
interfaces_ = ws80211_find_interfaces();
const QString old_iface = ui->interfaceComboBox->currentText();
- guint iface_count = 0;
+ unsigned iface_count = 0;
bool list_changed = false;
// Don't interfere with user activity.
@@ -149,7 +147,7 @@ void WirelessFrame::updateInterfaceList()
if ((int) iface_count != ui->interfaceComboBox->count()) {
list_changed = true;
} else {
- for (guint i = 0; i < iface_count; i++) {
+ for (unsigned i = 0; i < iface_count; i++) {
struct ws80211_interface *iface = g_array_index(interfaces_, struct ws80211_interface *, i);
if (ui->interfaceComboBox->itemText(i).compare(iface->ifname) != 0) {
list_changed = true;
@@ -160,7 +158,7 @@ void WirelessFrame::updateInterfaceList()
if (list_changed) {
ui->interfaceComboBox->clear();
- for (guint i = 0; i < iface_count; i++) {
+ for (unsigned i = 0; i < iface_count; i++) {
struct ws80211_interface *iface = g_array_index(interfaces_, struct ws80211_interface *, i);
ui->interfaceComboBox->addItem(iface->ifname);
if (old_iface.compare(iface->ifname) == 0) {
@@ -227,7 +225,7 @@ void WirelessFrame::getInterfaceInfo()
return;
}
- for (guint i = 0; i < interfaces_->len; i++) {
+ for (unsigned i = 0; i < interfaces_->len; i++) {
struct ws80211_interface *iface = g_array_index(interfaces_, struct ws80211_interface *, i);
if (cur_iface.compare(iface->ifname) == 0) {
struct ws80211_iface_info iface_info;
@@ -235,8 +233,8 @@ void WirelessFrame::getInterfaceInfo()
ws80211_get_iface_info(iface->ifname, &iface_info);
- for (guint j = 0; j < iface->frequencies->len; j++) {
- guint32 frequency = g_array_index(iface->frequencies, guint32, j);
+ for (unsigned j = 0; j < iface->frequencies->len; j++) {
+ uint32_t frequency = g_array_index(iface->frequencies, uint32_t, j);
double ghz = frequency / 1000.0;
QString chan_str = QString("%1 " UTF8_MIDDLE_DOT " %2%3")
.arg(ieee80211_mhz_to_chan(frequency))
@@ -305,9 +303,9 @@ void WirelessFrame::setInterfaceInfo()
int chan_type = ui->channelTypeComboBox->itemData(cur_type_idx).toInt();
int bandwidth = getBandwidthFromChanType(chan_type);
int center_freq = getCenterFrequency(frequency, bandwidth);
- const gchar *chan_type_s = ws80211_chan_type_to_str(chan_type);
- gchar *center_freq_s = NULL;
- gchar *data, *primary_msg, *secondary_msg;
+ const char *chan_type_s = ws80211_chan_type_to_str(chan_type);
+ char *center_freq_s = NULL;
+ char *data, *primary_msg, *secondary_msg;
int ret;
if (frequency < 0 || chan_type < 0) return;
diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp
index 7b37dabcff..40f9443c57 100644
--- a/ui/qt/wireshark_application.cpp
+++ b/ui/qt/wireshark_application.cpp
@@ -9,7 +9,7 @@
#include "wireshark_application.h"
-WiresharkApplication *wsApp = NULL;
+WiresharkApplication *wsApp;
WiresharkApplication::WiresharkApplication(int &argc, char **argv) :
MainApplication(argc, argv)
diff --git a/ui/qt/wireshark_de.ts b/ui/qt/wireshark_de.ts
index 80d6a494a6..6afc1d7f95 100644
--- a/ui/qt/wireshark_de.ts
+++ b/ui/qt/wireshark_de.ts
@@ -2018,6 +2018,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Bits/s B </translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Pakete gesamt</translation>
</message>
@@ -2132,14 +2136,6 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Paketbytes als Hex Dump kopieren</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation>…als druckbarer Text</translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation>Nur den druckbaren Text im Paket kopieren.</translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation>...als MIME Daten</translation>
</message>
@@ -2172,6 +2168,22 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>...als Hex Stream</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>Paketbytes als Hexstream kopieren.</translation>
</message>
@@ -3335,23 +3347,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">&quot;Datei&quot; Dialoge</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">Mitschnittdateien</translation>
- </message>
- <message>
<source>Temp</source>
<translation>Temp</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">Unbenannte Mitschnittdateien</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>Benutzerspezifische Konfiguration</translation>
</message>
@@ -3360,14 +3359,6 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Globale Konfiguration</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">dfilters, preferences, ethers, …</translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">dfilters, preferences, manuf, …</translation>
- </message>
- <message>
<source>System</source>
<translation>System</translation>
</message>
@@ -3380,18 +3371,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Programm</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">program files</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>Benutzerspezifische Plugins</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">binary plugins</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>Globale Plugins</translation>
</message>
@@ -3408,6 +3391,14 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Lua Skripte</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3428,6 +3419,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Benutzerspezifischer Extcap Pfad</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>Globaler Extcap Pfad</translation>
</message>
@@ -3467,14 +3462,6 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<source>Typical Files</source>
<translation>Typische Dateien</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4118,10 +4105,6 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Legende einschalten</translation>
</message>
<message>
- <source>Reset</source>
- <translation>Zurücksetzen</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Graph zurücksetzen</translation>
</message>
@@ -4335,6 +4318,42 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Graph von einem anderen Profil kopieren.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4379,6 +4398,14 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>5 Sek.</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 Min. {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 Min. {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Wireshark I/O Graphen: %1</translation>
</message>
@@ -4451,6 +4478,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Klicken um einen Teil des Graphen auszuwählen.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Portable Document Format (*.pdf)</translation>
</message>
@@ -7579,18 +7610,6 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<source>Path</source>
<translation>Pfad</translation>
</message>
- <message>
- <source>Scope</source>
- <translation>Anwendungsbereich</translation>
- </message>
- <message>
- <source>Description</source>
- <translation>Beschreibung</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation>Webseite</translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7786,10 +7805,22 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Dieses Profil kopieren.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Profile konfigurieren</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>Importieren</translation>
@@ -7972,6 +8003,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>gelöscht</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>Kopie</translation>
@@ -8331,6 +8366,10 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
<translation>Window Größe (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[keine Mitschnittdatei]</translation>
</message>
@@ -8849,6 +8888,13 @@ Um zum Beispiel eine neue Datei zu jeder vollen Stunde zu haben, 1 Stunde angebe
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14945,42 +14991,6 @@ a:hover {
<translation>SSRC Wert nicht gefunden</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation>Plugin installieren</translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation>Binary Plugin (*%1 *%1.[0-9]*)</translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation>Fehler beim Entfernen des alten Plugins vom persönlichen Plugin-Ordner. Eventuell müssen Sie Wireshark erst schließen und die Datei danach manuell entfernen: &quot;%1&quot;.</translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation>Plugins können jeglichen Code unter dem aktuellen Benutzer ausführen. Stellen Sie vor dem Installieren die Vertrauenswürdigkeit sicher.
-
-Mit der Installation von &quot;%1&quot; in den persönlichen Plugin-Ordner fortfahren?</translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation>Erstellen des Ordners fehlgeschlagen: %1</translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation>Die Datei existiert bereits. Soll sie überschrieben werden?</translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation>Fehler beim Kopieren der Datei nach: %1</translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation>Plugin &quot;%1&quot; erfolgreich installieren. Um es nutzen zu können bitte Programm neu starten.</translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>Werkzeugleise anzeigen oder verstecken</translation>
</message>
@@ -15188,10 +15198,6 @@ Mit der Installation von &quot;%1&quot; in den persönlichen Plugin-Ordner fortf
<translation> vor dem Neustart der Aufzeichnung</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation>Plugin installieren</translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>Wikiseite für &amp;1</translation>
</message>
diff --git a/ui/qt/wireshark_dialog.cpp b/ui/qt/wireshark_dialog.cpp
index 4045868f83..f3f5c70c37 100644
--- a/ui/qt/wireshark_dialog.cpp
+++ b/ui/qt/wireshark_dialog.cpp
@@ -9,8 +9,6 @@
#include "config.h"
-#include <glib.h>
-
#include "cfile.h"
#include <epan/packet.h>
@@ -95,14 +93,14 @@ void WiresharkDialog::updateWidgets()
setWindowSubtitle(subtitle_);
}
-bool WiresharkDialog::registerTapListener(const char *tap_name, void *tap_data, const char *filter, guint flags, tap_reset_cb tap_reset, tap_packet_cb tap_packet, tap_draw_cb tap_draw)
+bool WiresharkDialog::registerTapListener(const char *tap_name, void *tap_data, const char *filter, unsigned flags, tap_reset_cb tap_reset, tap_packet_cb tap_packet, tap_draw_cb tap_draw)
{
GString *error_string = register_tap_listener(tap_name, tap_data, filter, flags,
tap_reset, tap_packet, tap_draw, NULL);
if (error_string) {
QMessageBox::warning(this, tr("Failed to attach to tap \"%1\"").arg(tap_name),
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
return false;
}
diff --git a/ui/qt/wireshark_dialog.h b/ui/qt/wireshark_dialog.h
index ad557ebcf3..20fd71131c 100644
--- a/ui/qt/wireshark_dialog.h
+++ b/ui/qt/wireshark_dialog.h
@@ -39,6 +39,11 @@ public:
// XXX Unlike the entire QWidget API, parent is mandatory here.
explicit WiresharkDialog(QWidget &parent, CaptureFile &capture_file);
+ /**
+ * @brief true if the file has been closed, false otherwise.
+ */
+ bool fileClosed() const { return file_closed_; }
+
protected:
virtual void keyPressEvent(QKeyEvent *event) { QDialog::keyPressEvent(event); }
virtual void accept();
@@ -93,7 +98,7 @@ protected:
* @param tap_draw Draw callback.
*/
bool registerTapListener(const char *tap_name, void *tap_data,
- const char *filter, guint flags,
+ const char *filter, unsigned flags,
tap_reset_cb tap_reset,
tap_packet_cb tap_packet,
tap_draw_cb tap_draw);
@@ -103,17 +108,21 @@ protected:
*/
virtual void removeTapListeners();
- /**
- * @brief true if the file has been closed, false otherwise.
- */
- // XXX Needs a getter?
+ // XXX - Move this to private, have subclasses use the getter?
bool file_closed_;
/**
* @brief Check to see if the user has closed (and not minimized) the dialog.
* @return true if the dialog has been closed, false otherwise.
*/
- bool dialogClosed() { return dialog_closed_; }
+ bool dialogClosed() const { return dialog_closed_; }
+
+ /**
+ * @brief Check to see if we're currently retapping. If this is positive,
+ * tapping will fail in process_specified_records.
+ * @return The current retap depth. (In current implementation, 0 or 1.)
+ */
+ int retapDepth() const { return retap_depth_; }
/**
* @brief Called when the capture file is about to close. This can be
diff --git a/ui/qt/wireshark_en.ts b/ui/qt/wireshark_en.ts
index 88005f2609..4d1c9a083a 100644
--- a/ui/qt/wireshark_en.ts
+++ b/ui/qt/wireshark_en.ts
@@ -2013,6 +2013,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation type="unfinished"></translation>
</message>
@@ -2127,14 +2131,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -2167,6 +2163,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation type="unfinished"></translation>
</message>
@@ -4057,10 +4069,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation type="unfinished"></translation>
</message>
@@ -4274,6 +4282,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation type="unfinished"></translation>
</message>
@@ -4318,6 +4362,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -4390,6 +4442,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation type="unfinished"></translation>
</message>
@@ -7491,18 +7547,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7698,10 +7742,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation type="unfinished"></translation>
@@ -7884,6 +7940,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation type="unfinished"></translation>
@@ -8243,6 +8303,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation type="unfinished"></translation>
</message>
@@ -8761,6 +8825,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14757,40 +14828,6 @@ a:hover {
<translation type="unfinished"></translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation type="unfinished"></translation>
</message>
@@ -14998,10 +15035,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation type="unfinished"></translation>
</message>
diff --git a/ui/qt/wireshark_es.ts b/ui/qt/wireshark_es.ts
index 12812c6c8c..079ea703ab 100644
--- a/ui/qt/wireshark_es.ts
+++ b/ui/qt/wireshark_es.ts
@@ -1991,6 +1991,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation>Bits/s B </translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Paquetes totales</translation>
</message>
@@ -2105,14 +2109,6 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -2145,6 +2141,22 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation type="unfinished"></translation>
</message>
@@ -3308,23 +3320,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">Diálogos de &quot;Archivo&quot;</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">archivos de captura</translation>
- </message>
- <message>
<source>Temp</source>
<translation>Temporal</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">archivos de captura sin título</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>Configuración personal</translation>
</message>
@@ -3345,18 +3344,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation>Programa</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">archivos de programa</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>Complementos personales</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">complementos binarios</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>Complementos globales</translation>
</message>
@@ -3373,6 +3364,14 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3393,6 +3392,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation>Ruta personal de Extcap</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>Ruta global de Extcap</translation>
</message>
@@ -3432,14 +3435,6 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<source>Typical Files</source>
<translation>Archivos típicos</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4069,10 +4064,6 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation>Restablecer</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Restablecer gráfica</translation>
</message>
@@ -4286,6 +4277,42 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation>Copia gráficas desde otro perfil.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4330,6 +4357,14 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation>5 sec</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 min {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 min {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Gráficas E/S de Wireshark: %1</translation>
</message>
@@ -4402,6 +4437,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation>Clic para seleccionar una parte de la gráfica.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Formato de documento portable (*.pdf)</translation>
</message>
@@ -7503,18 +7542,6 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<source>Path</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished">Descripción</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7710,10 +7737,22 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation>Copia este perfil.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Configuración de perfiles</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>Importar</translation>
@@ -7889,6 +7928,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation type="unfinished"></translation>
@@ -8248,6 +8291,10 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[no hay archivo de captura]</translation>
</message>
@@ -8766,6 +8813,13 @@ Por ejemplo, use 1 hora para tener creado un nuevo archivo cada hora en punto.</
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14796,40 +14850,6 @@ a:hover {
<translation type="unfinished"></translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation type="unfinished"></translation>
</message>
@@ -15029,10 +15049,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation>antes de reiniciar la captura</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation type="unfinished"></translation>
</message>
diff --git a/ui/qt/wireshark_fr.ts b/ui/qt/wireshark_fr.ts
index 160efb7439..0d505a2fe5 100644
--- a/ui/qt/wireshark_fr.ts
+++ b/ui/qt/wireshark_fr.ts
@@ -2016,6 +2016,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Bits/s B</translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Paquets totaux</translation>
</message>
@@ -2130,14 +2134,6 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Copier les octets du paquet sous forme de vidage Hex.</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -2170,6 +2166,22 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>…sous forme de flux Hex</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>Copier les octets du paquet sous forme de flux Hex.</translation>
</message>
@@ -3331,23 +3343,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">&quot;Fichier&quot; dialogues</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">capturer des fichiers</translation>
- </message>
- <message>
<source>Temp</source>
<translation>Temp</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">fichiers de capture sans titre</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>Paramétrage personnel</translation>
</message>
@@ -3356,14 +3355,6 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Configuration globale</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">dfiltres, préférences, éthers, …</translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">filtres, préférences, fabrication, …</translation>
- </message>
- <message>
<source>System</source>
<translation>Système</translation>
</message>
@@ -3376,18 +3367,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Programme</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">fichiers de programme</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>Plugins personnels</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">plugins binaires</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>Plugins globaux</translation>
</message>
@@ -3404,6 +3387,14 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation type="unfinished"></translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3424,6 +3415,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Chemin d&apos;accès Extcap personnel</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>Chemin d&apos;accès global à l&apos;extcap</translation>
</message>
@@ -3463,14 +3458,6 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<source>Typical Files</source>
<translation>Fichiers typiques</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4116,10 +4103,6 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation>Réinitialiser</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Réinitialiser le Graphique</translation>
</message>
@@ -4333,6 +4316,42 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Copier les graphiques d&apos;un autre profil.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4377,6 +4396,14 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>5 s</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 min {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 min {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Graphiques E/S Wireshark : %1</translation>
</message>
@@ -4449,6 +4476,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Cliquez pour sélectionner une partie du graphique.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Portable Document Format (*.pdf)</translation>
</message>
@@ -7576,18 +7607,6 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<source>Path</source>
<translation>Chemin</translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished">Description</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7783,10 +7802,22 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Copier ce profil.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Profils de configuration</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>Importer</translation>
@@ -7969,6 +8000,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>supprimé</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>copier</translation>
@@ -8328,6 +8363,10 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
<translation>Taille de fenetres (b)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[pas de fichier de capture]</translation>
</message>
@@ -8846,6 +8885,13 @@ Pas exemple, inquiquez 1 heure pour avoir un nouveau fichier créé toutes les h
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14899,40 +14945,6 @@ a:hover {
<translation>Valeur SSRC introuvable.</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>Afficher ou masquer la barre d&apos;outils</translation>
</message>
@@ -15140,10 +15152,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation>avant de relancer la capture</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>Page Wiki pour %1</translation>
</message>
diff --git a/ui/qt/wireshark_it.ts b/ui/qt/wireshark_it.ts
index 10d495cfb5..8f106b2e0a 100644
--- a/ui/qt/wireshark_it.ts
+++ b/ui/qt/wireshark_it.ts
@@ -2018,6 +2018,10 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Bit/s B</translation>
</message>
<message>
+ <source>Flows</source>
+ <translation>Flussi</translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Pacchetti totali</translation>
</message>
@@ -2132,14 +2136,6 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Copia i byte del pacchetto come un dump esadecimale.</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation>...come testo stampabile</translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation>Copia solo il testo stampabile nel pacchetto.</translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation>…come dati MIME</translation>
</message>
@@ -2172,6 +2168,22 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>...come un flusso esadecimale</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation>…come testo UTF-8</translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation>Copia i byte del pacchetto come testo, trattandolo come UTF-8.</translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation>…come testo ASCII</translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation>Copia i byte del pacchetto come testo, trattandolo come ASCII.</translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>Copia i byte del pacchetto come un flusso esadecimale.</translation>
</message>
@@ -3335,23 +3347,10 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">Finestre &quot;File&quot;</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">file di cattura</translation>
- </message>
- <message>
<source>Temp</source>
<translation>Temporanei</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">file di cattura senza titolo</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>Configurazione personale</translation>
</message>
@@ -3360,14 +3359,6 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Configurazione globale</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">dfilters, preferences, ethers, </translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">dfilters, preferences, manuf, </translation>
- </message>
- <message>
<source>System</source>
<translation>Sistema</translation>
</message>
@@ -3380,18 +3371,10 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Programma</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">file di programma</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>Plugin personali</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">plugin binari</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>Plugin globali</translation>
</message>
@@ -3408,26 +3391,38 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Script Lua</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation>Posizione finestra &quot;File&quot;</translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation>File di cattura</translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
- <translation type="unfinished"></translation>
+ <translation>File di cattura senza titolo</translation>
</message>
<message>
<source>Preferences, profiles, manuf, …</source>
- <translation type="unfinished"></translation>
+ <translation>Preferenze, profili, prod, …</translation>
</message>
<message>
<source>Program files</source>
- <translation type="unfinished"></translation>
+ <translation>File di programma</translation>
</message>
<message>
<source>Binary plugins</source>
- <translation type="unfinished"></translation>
+ <translation>Plugin binari</translation>
</message>
<message>
<source>Personal Extcap path</source>
<translation>Percorso Extcap personale</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation>Plugin di cattura esterna (extcap)</translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>Percorso Extcap globale</translation>
</message>
@@ -3467,14 +3462,6 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<source>Typical Files</source>
<translation>File tipici</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4118,10 +4105,6 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Abilita la legenda</translation>
</message>
<message>
- <source>Reset</source>
- <translation>Ripristina</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Ripristina il grafico</translation>
</message>
@@ -4335,6 +4318,42 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Copia grafici da un altro profilo.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation>1 μs</translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation>2 μs</translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation>5 μs</translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation>10 μs</translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation>20 μs</translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation>50 μs</translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation>100 μs</translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation>200 μs</translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation>500 μs</translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4379,6 +4398,14 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>5 sec</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation>2 min</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation>5 min</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Grafici di I/O di Wireshark: %1</translation>
</message>
@@ -4451,6 +4478,10 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Fai clic per selezionare una porzione del grafico.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation>%1 intervalli</translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Portable Document Format (*.pdf)</translation>
</message>
@@ -7579,18 +7610,6 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<source>Path</source>
<translation>Percorso</translation>
</message>
- <message>
- <source>Scope</source>
- <translation>Ambito</translation>
- </message>
- <message>
- <source>Description</source>
- <translation>Descrizione</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation>Pagina principale</translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7786,10 +7805,22 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Copia questo profilo.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation>Il numero di pacchetti o eventi da verificare per la commutazione automatica del profilo.</translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation>Limite pacchetti per commutazione automatica</translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Profili di configurazione</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation>Limite eventi per commutazione automatica</translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>Importa</translation>
@@ -7972,6 +8003,10 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>eliminato</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation>Cambio automatico del filtro</translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>copia</translation>
@@ -8331,6 +8366,10 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
<translation>Dimensione della finestra (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation>Byte senza ack (eccezionali) (B)</translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[nessun file di cattura]</translation>
</message>
@@ -8849,6 +8888,13 @@ Ad esempio, usa 1 ora per fare in modo che un nuovo file sia creato ogni ora.</t
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14940,42 +14986,6 @@ a:hover {
<translation>Valore SSRC non trovato.</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation>Installa plugin</translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation>Plugin binario (*%1 *%1.[0-9]*)</translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation>Errore durante la rimozione del vecchio plugin dalla cartella dei plugin personali. Potresti dover chiudere Wireshark prima e quindi rimuovere manualmente il file &quot;%1&quot;.</translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation>I plugin possono eseguire codice arbitrario come l&apos;utente corrente. Assicurati che sia affidabile prima di installarlo.
-
-Vuoi continuare l&apos;installazione del file &quot;%1&quot; nella cartella dei plugin personali?</translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation>Impossibile creare la cartella: %1</translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation>Il file esiste già. Vuoi sovrascriverò?</translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation>Copia del file non riuscita nella destinazione: %1</translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation>Plugin &apos;%1&apos; installato correttamente. È necessario riavviare il programma per poterlo utilizzare.</translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>Mostra o nascondi la barra degli strumenti</translation>
</message>
@@ -15183,10 +15193,6 @@ Vuoi continuare l&apos;installazione del file &quot;%1&quot; nella cartella dei
<translation> prima di riavviare la cattura</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation>Installa plugin</translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>Pagina wiki per %1</translation>
</message>
diff --git a/ui/qt/wireshark_ja_JP.ts b/ui/qt/wireshark_ja_JP.ts
index 867df610c9..cca6a21df3 100644
--- a/ui/qt/wireshark_ja_JP.ts
+++ b/ui/qt/wireshark_ja_JP.ts
@@ -2010,6 +2010,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>ビット毎秒 B</translation>
</message>
<message>
+ <source>Flows</source>
+ <translation>フロー</translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>全パケット</translation>
</message>
@@ -2124,14 +2128,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>16進数ダンプとしてパケットバイト列をコピー</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation>印刷可能なテキストとして…</translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation>パケット内の印刷可能なテキストだけをコピー</translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation>MIMEデータとして...</translation>
</message>
@@ -2153,17 +2149,33 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>…as C Array</source>
- <translation type="unfinished"></translation>
+ <translation>…C言語配列として</translation>
</message>
<message>
<source>Copy packet bytes as C Array.</source>
- <translation type="unfinished"></translation>
+ <translation>C言語配列としてパケットバイト列をコピーします。</translation>
</message>
<message>
<source>…as a Hex Stream</source>
<translation>16進数ストリームとして…</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation>…UTF-8テキストとして</translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation>UTF-8として扱ってパケットバイト列をテキストとしてコピーします</translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation>ASCII形式テキストとして…</translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation>ASCII形式として扱ってパケットバイト列をテキストとしてコピーします</translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>16進数ストリームとしてパケットバイト列をコピー</translation>
</message>
@@ -3326,23 +3338,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">&quot;ファイル&quot; ダイアログ</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">キャプチャファイル</translation>
- </message>
- <message>
<source>Temp</source>
<translation>一時的</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">名称未設定キャプチャファイル</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>個人設定</translation>
</message>
@@ -3351,14 +3350,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>グローバル設定</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">dfilters, preferences, ethers, …</translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">dfilters, preferences, manuf, …</translation>
- </message>
- <message>
<source>System</source>
<translation>システム</translation>
</message>
@@ -3371,18 +3362,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>プログラム</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">プログラムファイル</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>個人プラグイン</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">バイナリプラグイン</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>グローバルプラグイン</translation>
</message>
@@ -3399,26 +3382,38 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Luaスクリプト</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation>&quot;ファイル&quot; ダイアログの場所</translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation>キャプチャファイル</translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
- <translation type="unfinished"></translation>
+ <translation>名称未設定キャプチャファイル</translation>
</message>
<message>
<source>Preferences, profiles, manuf, …</source>
- <translation type="unfinished"></translation>
+ <translation>設定, プロファイル, manuf, …</translation>
</message>
<message>
<source>Program files</source>
- <translation type="unfinished"></translation>
+ <translation>プログラムファイル</translation>
</message>
<message>
<source>Binary plugins</source>
- <translation type="unfinished"></translation>
+ <translation>バイナリプラグイン</translation>
</message>
<message>
<source>Personal Extcap path</source>
<translation>個人Extcapパス</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation>外部キャプチャ(extcap)プラグイン</translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>グローバルExtcapパス</translation>
</message>
@@ -3458,14 +3453,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Typical Files</source>
<translation>典型的なファイル</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -3685,7 +3672,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Case sensitive</source>
- <translation type="unfinished">大文字小文字を区別</translation>
+ <translation>大文字小文字を区別</translation>
</message>
<message>
<source>Find &amp;Next</source>
@@ -4100,10 +4087,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>凡例を有効化</translation>
</message>
<message>
- <source>Reset</source>
- <translation>リセット</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>グラフをリセット</translation>
</message>
@@ -4317,6 +4300,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>別のプロファイルからグラフをコピーします</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation>1マイクロ秒</translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation>2マイクロ秒</translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation>5マイクロ秒</translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation>10マイクロ秒</translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation>20マイクロ秒</translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation>50マイクロ秒</translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation>100マイクロ秒</translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation>200マイクロ秒</translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation>500マイクロ秒</translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1ミリ秒</translation>
</message>
@@ -4361,6 +4380,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>5 秒</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation>2分</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation>5分</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Wireshark入出力グラフ: %1</translation>
</message>
@@ -4433,6 +4460,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>クリックしてグラフの割合を選びます</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation>%1 インターバル</translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>PDF形式 (*.pdf)</translation>
</message>
@@ -7560,18 +7591,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation>パス</translation>
</message>
- <message>
- <source>Scope</source>
- <translation>スコープ</translation>
- </message>
- <message>
- <source>Description</source>
- <translation>記述</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation>ホームページ</translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7767,10 +7786,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>このプロファイルをコピーします</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation>自動プロファイルスイッチのためのパケットやイベントの数</translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation>自動スイッチパケット限度</translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>設定プロファイル</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation>自動スイッチイベント限度</translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>インポート</translation>
@@ -7946,6 +7977,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>削除済</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation>自動スイッチフィルタ</translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>コピー</translation>
@@ -8305,6 +8340,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>ウインドウサイズ(バイト)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation>ACKされていない(未処理の)バイト(B)</translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[キャプチャファイルなし]</translation>
</message>
@@ -8823,6 +8862,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -11203,7 +11249,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Case sensitive</source>
- <translation type="unfinished">大文字小文字を区別</translation>
+ <translation>大文字小文字を区別</translation>
</message>
<message>
<source>Find &amp;Next</source>
@@ -14229,15 +14275,15 @@ a:hover {
</message>
<message>
<source>General</source>
- <translation type="unfinished"></translation>
+ <translation>一般</translation>
</message>
<message>
<source>Query-Response</source>
- <translation type="unfinished"></translation>
+ <translation>クエリ-応答</translation>
</message>
<message>
<source>DNS Query-Response Statistics</source>
- <translation type="unfinished"></translation>
+ <translation>DNSクエリ-応答統計</translation>
</message>
<message>
<source>Request Sequences</source>
@@ -14914,42 +14960,6 @@ a:hover {
<translation>SSRC値が見つかりませんでした</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation>プラグインのインストール</translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation>バイナリープラグイン (*%1 *%1.[0-9]*)</translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation>個人プラグインフォルダーから古いプラグインを削除する際のエラー。 最初にWiresharkを閉じて手動で &quot;%1&quot; ファイルを削除する必要があるかもしれません。</translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation>プラグインは現在のユーザとして任意のコードを実行できます。インストール前に信頼できるか確認ください。
-
-引き続き、個人プラグインフォルダにファイル&quot;%1&quot; をインストールしますか?</translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation>ディレクトリを作成できませんでした: %1</translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation>ファイルがすでに存在します。上書きしますか?</translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation>ファイルを宛先へコピーできませんでした: %1</translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation>プラグイン&apos;%1&apos; のインストールは成功しました。 プログラムを再起動して利用できるようにする必要があります。</translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>ツールバーを表示/非表示</translation>
</message>
@@ -15154,10 +15164,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation>キャプチャを再スタートする前に</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation>プラグインのインストール</translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>%1 の Wikiページ</translation>
</message>
diff --git a/ui/qt/wireshark_ko.ts b/ui/qt/wireshark_ko.ts
index f4f4ca66fa..843bb475fc 100644
--- a/ui/qt/wireshark_ko.ts
+++ b/ui/qt/wireshark_ko.ts
@@ -2011,6 +2011,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>비트/초 B</translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>전체 패킷</translation>
</message>
@@ -2125,14 +2129,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>16진수 덤프 형식으로 패킷 바이트를 복사합니다.</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation>출력 가능한 문자열로 복사</translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation>패킷 내의 출력 가능한 문자열만 복사합니다.</translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation>MIME 데이터로 복사</translation>
</message>
@@ -2165,6 +2161,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>16진수 스트림으로 복사</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>16진수 스트림으로 패킷 바이트를 복사합니다.</translation>
</message>
@@ -3327,23 +3339,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">&quot;파일&quot; 대화 상자</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">캡처 파일</translation>
- </message>
- <message>
<source>Temp</source>
<translation>임시</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">이름 없는 캡처 파일</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>개인 환경 설정</translation>
</message>
@@ -3352,14 +3351,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>전역 설정</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">dfilters, 설정, ethers, …</translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">dfilters, 설정, manuf, …</translation>
- </message>
- <message>
<source>System</source>
<translation>시스템</translation>
</message>
@@ -3372,18 +3363,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>프로그램</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">프로그램 파일</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>사용자 플러그인</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">바이너리 플러그인</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>전역 플러그인</translation>
</message>
@@ -3400,6 +3383,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Lua 스크립트</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3420,6 +3411,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>사용자 Extcap 경로</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>전역 Extcap 경로</translation>
</message>
@@ -3459,14 +3454,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Typical Files</source>
<translation>일반적인 파일</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4101,10 +4088,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>범례 활성화</translation>
</message>
<message>
- <source>Reset</source>
- <translation>초기화</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>그래프 초기화</translation>
</message>
@@ -4318,6 +4301,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>다른 프로필에서 그래프를 복사합니다.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4362,6 +4381,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>5초</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10분 {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10분 {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Wireshark I/O 그래프: %1</translation>
</message>
@@ -4434,6 +4461,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>클릭하여 그래프의 부분을 선택하십시오.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>PDF 형식 (*.pdf)</translation>
</message>
@@ -7557,18 +7588,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation>경로</translation>
</message>
- <message>
- <source>Scope</source>
- <translation>범위</translation>
- </message>
- <message>
- <source>Description</source>
- <translation>설명</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation>홈페이지</translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7764,10 +7783,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>이 프로필을 복사합니다.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>설정 프로필</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>가져오기</translation>
@@ -7943,6 +7974,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>삭제됨</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>복사</translation>
@@ -8302,6 +8337,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>윈도 크기(바이트)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[캡처 파일 없음]</translation>
</message>
@@ -8820,6 +8859,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14911,42 +14957,6 @@ a:hover {
<translation>SSRC 값을 찾을 수 없습니다.</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation>플러그인 설치</translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation>바이너리 플러그인 (*%1 *%1.[0-9]*)</translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation>개인 플러그인 폴더에서 오래된 플러그인을 삭제할 수 없습니다. Wireshark를 먼저 끝낸 다음 &quot;%1&quot; 파일을 수동으로 삭제하십시오.</translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation>플러그인은 현재 사용자 권한으로 임의의 코드를 실행할 수 있습니다. 설치하기 전에 신뢰할 수 있는지 여부를 확인하십시오.
-
-개인 플러그인 폴더에 &quot;%1&quot; 파일 설치를 계속 진행하시겠습니까?</translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation>디렉터리를 생성할 수 없음: %1</translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation>파일이 이미 존재합니다. 덮어쓰시겠습니까?</translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation>파일을 대상으로 복사할 수 없음: %1</translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation>&apos;%1&apos; 플러그인이 설치되었습니다. 사용하려면 프로그램을 다시 시작하십시오.</translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>도구 모음 표시 또는 숨기기</translation>
</message>
@@ -15151,10 +15161,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation> 캡처를 다시 시작하기 전</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation>플러그인 설치</translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>%1에 대한 위키 페이지</translation>
</message>
diff --git a/ui/qt/wireshark_main_window.cpp b/ui/qt/wireshark_main_window.cpp
index 832ae50b09..bcc72075c4 100644
--- a/ui/qt/wireshark_main_window.cpp
+++ b/ui/qt/wireshark_main_window.cpp
@@ -25,7 +25,6 @@ DIAG_ON(frame-larger-than=)
#include <wsutil/wslog.h>
#include <wsutil/ws_assert.h>
#include <wsutil/version_info.h>
-#include <wsutil/plugins.h>
#include <epan/prefs.h>
#include <epan/stats_tree_priv.h>
#include <epan/plugin_if.h>
@@ -77,6 +76,7 @@ DIAG_ON(frame-larger-than=)
#include <ui/qt/widgets/filter_expression_toolbar.h>
#include <ui/qt/utils/color_utils.h>
+#include <ui/qt/utils/profile_switcher.h>
#include <ui/qt/utils/qt_ui_utils.h>
#include <ui/qt/utils/stock_icon.h>
#include <ui/qt/utils/variant_pointer.h>
@@ -98,7 +98,7 @@ DIAG_ON(frame-larger-than=)
//menu_recent_file_write_all
// If we ever add support for multiple windows this will need to be replaced.
-static WiresharkMainWindow *gbl_cur_main_window_ = NULL;
+static WiresharkMainWindow *gbl_cur_main_window_;
static void plugin_if_mainwindow_apply_filter(GHashTable * data_set)
{
@@ -121,9 +121,9 @@ static void plugin_if_mainwindow_preference(GHashTable * data_set)
const char * pref_value;
DIAG_OFF_CAST_AWAY_CONST
- if (g_hash_table_lookup_extended(data_set, "pref_module", NULL, (gpointer *)&module_name) &&
- g_hash_table_lookup_extended(data_set, "pref_key", NULL, (gpointer *)&pref_name) &&
- g_hash_table_lookup_extended(data_set, "pref_value", NULL, (gpointer *)&pref_value))
+ if (g_hash_table_lookup_extended(data_set, "pref_module", NULL, (void * *)&module_name) &&
+ g_hash_table_lookup_extended(data_set, "pref_key", NULL, (void * *)&pref_name) &&
+ g_hash_table_lookup_extended(data_set, "pref_value", NULL, (void * *)&pref_value))
{
unsigned int changed_flags = prefs_store_ext(module_name, pref_name, pref_value);
if (changed_flags) {
@@ -139,7 +139,7 @@ static void plugin_if_mainwindow_gotoframe(GHashTable * data_set)
if (!gbl_cur_main_window_ || !data_set)
return;
- gpointer framenr;
+ void *framenr;
if (g_hash_table_lookup_extended(data_set, "frame_nr", NULL, &framenr)) {
if (GPOINTER_TO_UINT(framenr) != 0)
@@ -217,7 +217,7 @@ static void plugin_if_mainwindow_get_ws_info(GHashTable * data_set)
}
else {
ws_info->cf_framenr = 0;
- ws_info->frame_passed_dfilter = FALSE;
+ ws_info->frame_passed_dfilter = false;
}
}
else
@@ -225,7 +225,7 @@ static void plugin_if_mainwindow_get_ws_info(GHashTable * data_set)
/* Initialise the other ws_info structure values */
ws_info->cf_count = 0;
ws_info->cf_framenr = 0;
- ws_info->frame_passed_dfilter = FALSE;
+ ws_info->frame_passed_dfilter = false;
}
}
@@ -295,7 +295,7 @@ static void mainwindow_add_toolbar(const iface_toolbar *toolbar_entry)
}
}
-static void mainwindow_remove_toolbar(const gchar *menu_title)
+static void mainwindow_remove_toolbar(const char *menu_title)
{
if (gbl_cur_main_window_ && menu_title)
{
@@ -402,23 +402,25 @@ WiresharkMainWindow::WiresharkMainWindow(QWidget *parent) :
//To prevent users use features before initialization complete
//Otherwise unexpected problems may occur
setFeaturesEnabled(false);
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(setFeaturesEnabled()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(applyGlobalCommandLineOptions()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(zoomText()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(initViewColorizeMenu()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(addStatsPluginsToMenu()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(addDynamicMenus()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(addPluginIFStructures()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(initConversationMenus()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(initExportObjectsMenus()));
- connect(mainApp, SIGNAL(appInitialized()), this, SLOT(initFollowStreamMenus()));
-
- connect(mainApp, SIGNAL(profileChanging()), this, SLOT(saveWindowGeometry()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(layoutPanes()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(layoutToolbars()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(updatePreferenceActions()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(zoomText()));
- connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(updateTitlebar()));
+ connect(mainApp, &MainApplication::appInitialized, this, [this]() { setFeaturesEnabled(); });
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::applyGlobalCommandLineOptions);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::zoomText);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::initViewColorizeMenu);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::addStatsPluginsToMenu);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::addDynamicMenus);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::addPluginIFStructures);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::initConversationMenus);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::initExportObjectsMenus);
+ connect(mainApp, &MainApplication::appInitialized, this, &WiresharkMainWindow::initFollowStreamMenus);
+ connect(mainApp, &MainApplication::appInitialized, this,
+ [this]() { addDisplayFilterTranslationActions(main_ui_->menuEditCopy); });
+
+ connect(mainApp, &MainApplication::profileChanging, this, &WiresharkMainWindow::saveWindowGeometry);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &WiresharkMainWindow::layoutPanes);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &WiresharkMainWindow::layoutToolbars);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &WiresharkMainWindow::updatePreferenceActions);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &WiresharkMainWindow::zoomText);
+ connect(mainApp, &MainApplication::preferencesChanged, this, &WiresharkMainWindow::updateTitlebar);
connect(mainApp, SIGNAL(updateRecentCaptureStatus(const QString &, qint64, bool)), this, SLOT(updateRecentCaptures()));
connect(mainApp, SIGNAL(preferencesChanged()), this, SLOT(updateRecentCaptures()));
@@ -437,6 +439,8 @@ WiresharkMainWindow::WiresharkMainWindow(QWidget *parent) :
connect(funnel_statistics_, SIGNAL(openCaptureFile(QString, QString)),
this, SLOT(openCaptureFile(QString, QString)));
+ connect(df_combo_box_, &QComboBox::editTextChanged, this, &WiresharkMainWindow::updateDisplayFilterTranslationActions);
+
file_set_dialog_ = new FileSetDialog(this);
connect(file_set_dialog_, SIGNAL(fileSetOpenCaptureFile(QString)),
this, SLOT(openCaptureFile(QString)));
@@ -541,6 +545,7 @@ main_ui_->goToLineEdit->setValidator(goToLineQiv);
proto_tree_->installEventFilter(this);
packet_list_->setProtoTree(proto_tree_);
+ packet_list_->setProfileSwitcher(profile_switcher_);
packet_list_->installEventFilter(this);
packet_diagram_ = new PacketDiagram(&master_split_);
@@ -580,42 +585,27 @@ main_ui_->goToLineEdit->setValidator(goToLineQiv);
setTabOrder(df_combo_box_->lineEdit(), packet_list_);
setTabOrder(packet_list_, proto_tree_);
- connect(&capture_file_, SIGNAL(captureEvent(CaptureEvent)),
- this, SLOT(captureEventHandler(CaptureEvent)));
- connect(&capture_file_, SIGNAL(captureEvent(CaptureEvent)),
- mainApp, SLOT(captureEventHandler(CaptureEvent)));
- connect(&capture_file_, SIGNAL(captureEvent(CaptureEvent)),
- main_ui_->statusBar, SLOT(captureEventHandler(CaptureEvent)));
+ connect(&capture_file_, &CaptureFile::captureEvent, this, &WiresharkMainWindow::captureEventHandler);
+ connect(&capture_file_, &CaptureFile::captureEvent, mainApp, &WiresharkApplication::captureEventHandler);
+ connect(&capture_file_, &CaptureFile::captureEvent, main_ui_->statusBar, &MainStatusBar::captureEventHandler);
+ connect(&capture_file_, &CaptureFile::captureEvent, profile_switcher_, &ProfileSwitcher::captureEventHandler);
- connect(mainApp, SIGNAL(freezePacketList(bool)),
- packet_list_, SLOT(freezePacketList(bool)));
- connect(mainApp, SIGNAL(columnsChanged()),
- packet_list_, SLOT(columnsChanged()));
- connect(mainApp, SIGNAL(colorsChanged()),
- packet_list_, SLOT(colorsChanged()));
- connect(mainApp, SIGNAL(preferencesChanged()),
- packet_list_, SLOT(preferencesChanged()));
- connect(mainApp, SIGNAL(recentPreferencesRead()),
- this, SLOT(applyRecentPaneGeometry()));
- connect(mainApp, SIGNAL(recentPreferencesRead()),
- this, SLOT(updateRecentActions()));
- connect(mainApp, SIGNAL(packetDissectionChanged()),
- this, SLOT(redissectPackets()), Qt::QueuedConnection);
-
- connect(mainApp, SIGNAL(checkDisplayFilter()),
- this, SLOT(checkDisplayFilter()));
- connect(mainApp, SIGNAL(fieldsChanged()),
- this, SLOT(fieldsChanged()));
- connect(mainApp, SIGNAL(reloadLuaPlugins()),
- this, SLOT(reloadLuaPlugins()));
-
- connect(main_ui_->mainStack, SIGNAL(currentChanged(int)),
- this, SLOT(mainStackChanged(int)));
-
- connect(welcome_page_, SIGNAL(startCapture(QStringList)),
- this, SLOT(startCapture(QStringList)));
- connect(welcome_page_, SIGNAL(recentFileActivated(QString)),
- this, SLOT(openCaptureFile(QString)));
+ connect(mainApp, &MainApplication::freezePacketList, packet_list_, &PacketList::freezePacketList);
+ connect(mainApp, &MainApplication::columnsChanged, packet_list_, &PacketList::columnsChanged);
+ connect(mainApp, &MainApplication::colorsChanged, packet_list_, &PacketList::colorsChanged);
+ connect(mainApp, &MainApplication::preferencesChanged, packet_list_, &PacketList::preferencesChanged);
+ connect(mainApp, &MainApplication::recentPreferencesRead, this, &WiresharkMainWindow::applyRecentPaneGeometry);
+ connect(mainApp, &MainApplication::recentPreferencesRead, this, &WiresharkMainWindow::updateRecentActions);
+ connect(mainApp, &MainApplication::packetDissectionChanged, this, &WiresharkMainWindow::redissectPackets, Qt::QueuedConnection);
+
+ connect(mainApp, &MainApplication::checkDisplayFilter, this, &WiresharkMainWindow::checkDisplayFilter);
+ connect(mainApp, &MainApplication::fieldsChanged, this, &WiresharkMainWindow::fieldsChanged);
+ connect(mainApp, &MainApplication::reloadLuaPlugins, this, &WiresharkMainWindow::reloadLuaPlugins);
+
+ connect(main_ui_->mainStack, &QStackedWidget::currentChanged, this, &WiresharkMainWindow::mainStackChanged);
+
+ connect(welcome_page_, &WelcomePage::startCapture, this, [this](QStringList interfaces) { startCapture(interfaces); });
+ connect(welcome_page_, &WelcomePage::recentFileActivated, this, [this](QString cfile) { openCaptureFile(cfile); });
connect(main_ui_->addressEditorFrame, &AddressEditorFrame::redissectPackets,
this, &WiresharkMainWindow::redissectPackets);
@@ -638,10 +628,8 @@ main_ui_->goToLineEdit->setValidator(goToLineQiv);
connect(this, &WiresharkMainWindow::setCaptureFile,
proto_tree_, &ProtoTree::setCaptureFile);
- connect(mainApp, SIGNAL(zoomMonospaceFont(QFont)),
- packet_list_, SLOT(setMonospaceFont(QFont)));
- connect(mainApp, SIGNAL(zoomMonospaceFont(QFont)),
- proto_tree_, SLOT(setMonospaceFont(QFont)));
+ connect(mainApp, &MainApplication::zoomMonospaceFont, packet_list_, &PacketList::setMonospaceFont);
+ connect(mainApp, &MainApplication::zoomMonospaceFont, proto_tree_, &ProtoTree::setMonospaceFont);
connectFileMenuActions();
connectEditMenuActions();
@@ -842,7 +830,7 @@ void WiresharkMainWindow::addInterfaceToolbar(const iface_toolbar *toolbar_entry
menu->menuAction()->setVisible(true);
}
-void WiresharkMainWindow::removeInterfaceToolbar(const gchar *menu_title)
+void WiresharkMainWindow::removeInterfaceToolbar(const char *menu_title)
{
QMenu *menu = main_ui_->menuInterfaceToolbars;
QAction *action = NULL;
@@ -1068,10 +1056,10 @@ void WiresharkMainWindow::dropEvent(QDropEvent *event)
if (cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, static_cast<int>(local_files.size()),
in_filenames,
wtap_pcapng_file_type_subtype(),
- FALSE) == CF_OK) {
+ false) == CF_OK) {
/* Merge succeeded; close the currently-open file and try
to open the merged capture file. */
- openCaptureFile(tmpname, QString(), WTAP_TYPE_AUTO, TRUE);
+ openCaptureFile(tmpname, QString(), WTAP_TYPE_AUTO, true);
}
g_free(tmpname);
@@ -1226,7 +1214,7 @@ void WiresharkMainWindow::mergeCaptureFile()
if (prefs.gui_ask_unsaved) {
if (cf_has_unsaved_data(capture_file_.capFile())) {
QMessageBox msg_dialog;
- gchar *display_basename;
+ char *display_basename;
int response;
msg_dialog.setIcon(QMessageBox::Question);
@@ -1296,17 +1284,17 @@ void WiresharkMainWindow::mergeCaptureFile()
/* chronological order */
in_filenames[0] = g_strdup(capture_file_.capFile()->filename);
in_filenames[1] = qstring_strdup(file_name);
- merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, FALSE);
+ merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, false);
} else if (merge_dlg.mergeType() <= 0) {
/* prepend file */
in_filenames[0] = qstring_strdup(file_name);
in_filenames[1] = g_strdup(capture_file_.capFile()->filename);
- merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, TRUE);
+ merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, true);
} else {
/* append file */
in_filenames[0] = g_strdup(capture_file_.capFile()->filename);
in_filenames[1] = qstring_strdup(file_name);
- merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, TRUE);
+ merge_status = cf_merge_files_to_tempfile(this, global_capture_opts.temp_dir, &tmpname, 2, in_filenames, file_type, true);
}
g_free(in_filenames[0]);
@@ -1322,9 +1310,9 @@ void WiresharkMainWindow::mergeCaptureFile()
/* Try to open the merged capture file. */
// XXX - Just free rfcode and call
- // openCaptureFile(tmpname, read_filter, WTAP_TYPE_AUTO, TRUE);
+ // openCaptureFile(tmpname, read_filter, WTAP_TYPE_AUTO, true);
CaptureFile::globalCapFile()->window = this;
- if (cf_open(CaptureFile::globalCapFile(), tmpname, WTAP_TYPE_AUTO, TRUE /* temporary file */, &err) != CF_OK) {
+ if (cf_open(CaptureFile::globalCapFile(), tmpname, WTAP_TYPE_AUTO, true /* temporary file */, &err) != CF_OK) {
/* We couldn't open it; fail. */
CaptureFile::globalCapFile()->window = NULL;
dfilter_free(rfcode);
@@ -1337,7 +1325,7 @@ void WiresharkMainWindow::mergeCaptureFile()
previous read filter attached to "cf"). */
cf_set_rfcode(CaptureFile::globalCapFile(), rfcode);
- switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/FALSE)) {
+ switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/false)) {
case CF_READ_OK:
case CF_READ_ERROR:
@@ -1382,7 +1370,7 @@ void WiresharkMainWindow::importCaptureFile() {
bool WiresharkMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
QString file_name;
- gboolean discard_comments;
+ bool discard_comments;
if (cf->is_tempfile) {
/* This is a temporary capture file, so saving it means saving
@@ -1392,7 +1380,7 @@ bool WiresharkMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
probably pcapng, which supports comments and, if it's
not pcapng, let the user decide what they want to do
if they've added comments. */
- return saveAsCaptureFile(cf, FALSE, dont_reopen);
+ return saveAsCaptureFile(cf, false, dont_reopen);
} else {
if (cf->unsaved_changes) {
cf_write_status_t status;
@@ -1411,7 +1399,7 @@ bool WiresharkMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
case SAVE:
/* The file can be saved in the specified format as is;
just drive on and save in the format they selected. */
- discard_comments = FALSE;
+ discard_comments = false;
break;
case SAVE_WITHOUT_COMMENTS:
@@ -1419,7 +1407,7 @@ bool WiresharkMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
but it can be saved without the comments, and the user
said "OK, discard the comments", so save it in the
format they specified without the comments. */
- discard_comments = TRUE;
+ discard_comments = true;
break;
case SAVE_IN_ANOTHER_FORMAT:
@@ -1427,7 +1415,7 @@ bool WiresharkMainWindow::saveCaptureFile(capture_file *cf, bool dont_reopen) {
support comments, and the user said not to delete the
comments. Do a "Save As" so the user can select
one of those formats and choose a file name. */
- return saveAsCaptureFile(cf, TRUE, dont_reopen);
+ return saveAsCaptureFile(cf, true, dont_reopen);
case CANCELLED:
/* The user said "forget it". Just return. */
@@ -1495,8 +1483,8 @@ bool WiresharkMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_
int file_type;
wtap_compression_type compression_type;
cf_write_status_t status;
- gchar *dirname;
- gboolean discard_comments = FALSE;
+ char *dirname;
+ bool discard_comments = false;
if (!cf) {
return false;
@@ -1513,7 +1501,7 @@ bool WiresharkMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_
case SAVE:
/* The file can be saved in the specified format as is;
just drive on and save in the format they selected. */
- discard_comments = FALSE;
+ discard_comments = false;
break;
case SAVE_WITHOUT_COMMENTS:
@@ -1521,7 +1509,7 @@ bool WiresharkMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_
but it can be saved without the comments, and the user
said "OK, discard the comments", so save it in the
format they specified without the comments. */
- discard_comments = TRUE;
+ discard_comments = true;
break;
case SAVE_IN_ANOTHER_FORMAT:
@@ -1531,7 +1519,7 @@ bool WiresharkMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_
formats that don't support comments trimmed from it,
so run the dialog again, to let the user decide
whether to save in one of those formats or give up. */
- must_support_comments = TRUE;
+ must_support_comments = true;
continue;
case CANCELLED:
@@ -1552,11 +1540,6 @@ bool WiresharkMainWindow::saveAsCaptureFile(capture_file *cf, bool must_support_
}
compression_type = save_as_dlg.compressionType();
-#ifdef Q_OS_WIN
- // the Windows dialog does not fixup extensions, do it manually here.
- fileAddExtension(file_name, file_type, compression_type);
-#endif // Q_OS_WIN
-
//#ifndef _WIN32
// /* If the file exists and it's user-immutable or not writable,
// ask the user whether they want to override that. */
@@ -1619,7 +1602,7 @@ void WiresharkMainWindow::exportSelectedPackets() {
wtap_compression_type compression_type;
packet_range_t range;
cf_write_status_t status;
- gchar *dirname;
+ char *dirname;
bool discard_comments = false;
if (!capture_file_.capFile())
@@ -1627,8 +1610,8 @@ void WiresharkMainWindow::exportSelectedPackets() {
/* Init the packet range */
packet_range_init(&range, capture_file_.capFile());
- range.process_filtered = TRUE;
- range.include_dependents = TRUE;
+ range.process_filtered = true;
+ range.include_dependents = true;
QList<int> rows = packet_list_->selectedRows(true);
@@ -1648,7 +1631,7 @@ void WiresharkMainWindow::exportSelectedPackets() {
case SAVE:
/* The file can be saved in the specified format as is;
just drive on and save in the format they selected. */
- discard_comments = FALSE;
+ discard_comments = false;
break;
case SAVE_WITHOUT_COMMENTS:
@@ -1656,7 +1639,7 @@ void WiresharkMainWindow::exportSelectedPackets() {
but it can be saved without the comments, and the user
said "OK, discard the comments", so save it in the
format they specified without the comments. */
- discard_comments = TRUE;
+ discard_comments = true;
break;
case SAVE_IN_ANOTHER_FORMAT:
@@ -1684,7 +1667,7 @@ void WiresharkMainWindow::exportSelectedPackets() {
*/
if (files_identical(capture_file_.capFile()->filename, qUtf8Printable(file_name))) {
QMessageBox msg_box;
- gchar *display_basename = g_filename_display_basename(qUtf8Printable(file_name));
+ char *display_basename = g_filename_display_basename(qUtf8Printable(file_name));
msg_box.setIcon(QMessageBox::Critical);
msg_box.setText(QString(tr("Unable to export to \"%1\".").arg(display_basename)));
@@ -1708,10 +1691,6 @@ void WiresharkMainWindow::exportSelectedPackets() {
goto cleanup;
}
compression_type = esp_dlg.compressionType();
-#ifdef Q_OS_WIN
- // the Windows dialog does not fixup extensions, do it manually here.
- fileAddExtension(file_name, file_type, compression_type);
-#endif // Q_OS_WIN
//#ifndef _WIN32
// /* If the file exists and it's user-immutable or not writable,
@@ -1774,110 +1753,6 @@ void WiresharkMainWindow::exportDissections(export_type_e export_type) {
ed_dlg->show();
}
-#ifdef Q_OS_WIN
-/*
- * Ensure that:
- *
- * If the file is to be compressed:
- *
- * if there is a set of extensions used by the file type to be used,
- * the file name has one of those extensions followed by the extension
- * for the compression type to be used;
- *
- * otherwise, the file name has the extension for the compression type
- * to be used;
- *
- * otherwise:
- *
- * if there is a set of extensions used by the file type to be used,
- * the file name has one of those extensions.
- */
-void WiresharkMainWindow::fileAddExtension(QString &file_name, int file_type, wtap_compression_type compression_type) {
- QString file_name_lower;
- GSList *extensions_list;
- const char *compressed_file_extension;
- gboolean add_extension_for_file_type;
-
- /* Lower-case the file name, so the extension matching is case-insensitive. */
- file_name_lower = file_name.toLower();
-
- /* Get a list of all extensions used for this file type; don't
- include the ones with compression type extensions, as we
- only want to check for the extension for the compression
- type we'll be using. */
- extensions_list = wtap_get_file_extensions_list(file_type, FALSE);
-
- /* Get the extension for the compression type we'll be using;
- NULL is returned if the type isn't supported or compression
- is not being done. */
- compressed_file_extension = wtap_compression_type_extension(compression_type);
-
- if (extensions_list != NULL) {
- GSList *extension;
-
- /* This file type has one or more extensions.
- Start out assuming we need to add the default one. */
- add_extension_for_file_type = TRUE;
-
- /* OK, see if the file has one of those extensions, followed
- by the appropriate compression type extension if it's to be
- compressed. */
- for (extension = extensions_list; extension != NULL;
- extension = g_slist_next(extension)) {
- QString file_suffix = QString(".") + (char *)extension->data;
- if (compressed_file_extension != NULL)
- file_suffix += QString(".") + compressed_file_extension;
- if (file_name_lower.endsWith(file_suffix)) {
- /*
- * The file name has one of the extensions for this file
- * type, followed by a compression type extension if
- * appropriate, so we don't need to add an extension for
- * the file type or the compression type.
- */
- add_extension_for_file_type = FALSE;
- break;
- }
- }
- } else {
- /* We have no extensions for this file type. Just check
- to see if we need to add an extension for the compressed
- file type.
-
- Start out assuming we do. */
- add_extension_for_file_type = TRUE;
- if (compressed_file_extension != NULL) {
- QString file_suffix = QString(".") + compressed_file_extension;
- if (file_name_lower.endsWith(file_suffix)) {
- /*
- * The file name has the appropriate compressed file extension,
- * so we don't need to add an extension for the compression
- * type.
- */
- add_extension_for_file_type = FALSE;
- }
- }
- }
-
- /*
- * If we need to add an extension for the file type or compressed
- * file type, do so.
- */
- if (add_extension_for_file_type) {
- if (wtap_default_file_extension(file_type) != NULL) {
- /* This file type has a default extension; append it. */
- file_name += QString(".") + wtap_default_file_extension(file_type);
- }
- if (compression_type != WTAP_UNCOMPRESSED) {
- /*
- * The file is to be compressed, so append the extension for
- * its compression type.
- */
- file_name += QString(".") + compressed_file_extension;
- }
- }
-}
-#endif // Q_OS_WIN
-
bool WiresharkMainWindow::testCaptureFileClose(QString before_what, FileCloseContext context) {
bool capture_in_progress = false;
bool do_close_file = false;
@@ -1950,7 +1825,7 @@ bool WiresharkMainWindow::testCaptureFileClose(QString before_what, FileCloseCon
}
} else {
// No capture in progress and not a tempfile, so this is not unsaved packets
- gchar *display_basename = g_filename_display_basename(capture_file_.capFile()->filename);
+ char *display_basename = g_filename_display_basename(capture_file_.capFile()->filename);
question = tr("Do you want to save the changes you've made to the capture file \"%1\"%2?").arg(display_basename, before_what);
infotext = tr("Your changes will be lost if you don't save them.");
g_free(display_basename);
@@ -2411,7 +2286,7 @@ bool WiresharkMainWindow::addExportObjectsMenuItem(const void *, void *value, vo
connect(&window->capture_file_, SIGNAL(captureEvent(CaptureEvent)), export_action, SLOT(captureFileEvent(CaptureEvent)));
connect(export_action, SIGNAL(triggered()), window, SLOT(applyExportObject()));
- return FALSE;
+ return false;
}
void WiresharkMainWindow::initExportObjectsMenus()
@@ -2458,7 +2333,7 @@ bool WiresharkMainWindow::addFollowStreamMenuItem(const void *key, void *value,
connect(follow_action, &QAction::triggered, window,
[window, follow]() { window->openFollowStreamDialog(get_follow_proto_id(follow)); },
Qt::QueuedConnection);
- return FALSE;
+ return false;
}
void WiresharkMainWindow::initFollowStreamMenus()
@@ -2852,7 +2727,7 @@ void WiresharkMainWindow::addMenuActions(QList<QAction *> &actions, int menu_gro
break;
case REGISTER_TOOLS_GROUP_UNSORTED:
{
- // Allow the creation of submenus. Mimics the behavor of
+ // Allow the creation of submenus. Mimics the behavior of
// ui/gtk/main_menubar.c:add_menu_item_to_main_menubar
// and GtkUIManager.
//
@@ -2990,7 +2865,7 @@ void WiresharkMainWindow::reloadDynamicMenus()
mainApp->clearRemovedMenuGroupItems();
}
-void WiresharkMainWindow::externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, gint depth)
+void WiresharkMainWindow::externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, int depth)
{
QAction * itemAction = Q_NULLPTR;
ext_menubar_t * item = Q_NULLPTR;
@@ -3179,7 +3054,7 @@ QString WiresharkMainWindow::findRtpStreams(QVector<rtpstream_id_t *> *stream_id
{
rtpstream_tapinfo_t tapinfo;
rtpstream_id_t *new_id;
- const gchar filter_text[] = "rtp && rtp.version == 2 && rtp.ssrc && (ip || ipv6)";
+ const char filter_text[] = "rtp && rtp.version == 2 && rtp.ssrc && (ip || ipv6)";
dfilter_t *sfcode;
df_error_t *df_err = NULL;
@@ -3300,86 +3175,3 @@ void WiresharkMainWindow::openTLSKeylogDialog()
tlskeylog_dialog_->raise();
tlskeylog_dialog_->activateWindow();
}
-
-void WiresharkMainWindow::installPersonalBinaryPlugin()
-{
- QMessageBox::StandardButton reply;
-
- QString caption = mainApp->windowTitleString(tr("Install plugin"));
-
- // Get the plugin file path to install
- QString plugin_filter = tr("Binary plugin (*%1 *%1.[0-9]*)").arg(WS_PLUGIN_MODULE_SUFFIX);
- QString src_path = WiresharkFileDialog::getOpenFileName(this, caption, "", plugin_filter);
- if (src_path.isEmpty()) {
- return;
- }
-
- // Plugins from untrusted sources can be dangerous.
- // Inform the user and ask for confirmation.
- // We need to do this before checking the plugin compatibility.
- reply = QMessageBox::question(this, caption,
- tr("Plugins can execute arbitrary code as the current user. "
- "Make sure you trust it before installing.\n\n"
- "Continue installing the file \"%1\" to the personal plugin folder?")
- .arg(src_path));
- if (reply != QMessageBox::Yes) {
- return;
- }
-
- // Check if this is a valid plugin file and get the plugin binary type.
- // The function will report any errors.
- plugin_type_e have_type = plugins_check_file(qUtf8Printable(src_path));
- if (have_type == WS_PLUGIN_NONE)
- return;
-
- // Create the destination folder if necessary
- QString type_path = gchar_free_to_qstring(plugins_pers_type_folder(have_type));
- QDir type_dir(type_path);
- if (!type_dir.exists(type_path)) {
- if (!type_dir.mkpath(type_path)) {
- QMessageBox::warning(this, caption,
- tr("Failed to create the directory: %1").arg(type_path));
- return;
- }
- }
-
- // Check if the file exists in the destination folder, in case we need to overwrite it
- // XXX Overwriting will probably fail on Windows because the plugin is loaded. We need
- // a way to load and unload plugins without having to restart the program.
- QFileInfo file_info(src_path);
- QString file_name = file_info.fileName();
- if (file_name.endsWith(WS_PLUGIN_MODULE_SUFFIX)) {
- // Append the version to our destination name
- file_name = QString("%1.%2").arg(file_name).arg(plugins_abi_version(have_type));
- }
- if (type_dir.exists(file_name)) {
- reply = QMessageBox::question(this, caption,
- tr("The file already exists. Do you want to overwrite it?"));
- if (reply == QMessageBox::Yes) {
- if (!type_dir.remove(file_name)) {
- QMessageBox::warning(this, caption,
- tr("Error removing the old plugin from the personal plugin folder. "
- "You may need to close Wireshark first and then manually remove the file \"%1\".").arg(type_dir.filePath(file_name)));
- return;
- }
- }
- else {
- // Overwrite refused, we are done
- return;
- }
- }
-
- // File does not exist in the destination or the user chose to overwrite it
- // Do the copy to install it.
- QString dst_path = type_dir.filePath(file_name);
- if (!QFile::copy(src_path, dst_path)) {
- QMessageBox::warning(this, caption,
- tr("Failed to copy the file to the destination: %1").arg(dst_path));
- return;
- }
-
- // Success
- QMessageBox::information(this, caption,
- tr("Plugin '%1' installed successfully. "
- "You must restart the program to be able to use it.").arg(file_name));
-}
diff --git a/ui/qt/wireshark_main_window.h b/ui/qt/wireshark_main_window.h
index bb906c244d..84bdb82df3 100644
--- a/ui/qt/wireshark_main_window.h
+++ b/ui/qt/wireshark_main_window.h
@@ -40,8 +40,6 @@
#include <config.h>
-#include <glib.h>
-
#include "file.h"
#include "ui/ws_ui_util.h"
@@ -123,7 +121,7 @@ public:
void removeAdditionalToolbar(QString toolbarName);
void addInterfaceToolbar(const iface_toolbar *toolbar_entry);
- void removeInterfaceToolbar(const gchar *menu_title);
+ void removeInterfaceToolbar(const char *menu_title);
QString getMwFileName();
void setMwFileName(QString fileName);
@@ -234,7 +232,7 @@ private:
QString replaceWindowTitleVariables(QString title);
void updateStyleSheet();
- void externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, gint depth);
+ void externalMenuHelper(ext_menu_t * menu, QMenu * subMenu, int depth);
void setForCaptureInProgress(bool capture_in_progress = false, bool handle_toolbars = false, GArray *ifaces = NULL);
QMenu* findOrAddMenu(QMenu *parent_menu, QString& menu_text);
@@ -270,11 +268,11 @@ public slots:
* @param cf_path Path to the file.
* @param display_filter Display filter to apply. May be empty.
* @param type File type.
- * @param is_tempfile TRUE/FALSE.
+ * @param is_tempfile true/false.
* @return True on success, false on failure.
*/
// XXX We might want to return a cf_read_status_t or a CaptureFile.
- bool openCaptureFile(QString cf_path, QString display_filter, unsigned int type, gboolean is_tempfile = FALSE);
+ bool openCaptureFile(QString cf_path, QString display_filter, unsigned int type, bool is_tempfile = false);
bool openCaptureFile(QString cf_path = QString(), QString display_filter = QString()) { return openCaptureFile(cf_path, display_filter, WTAP_TYPE_AUTO); }
void filterPackets(QString new_filter = QString(), bool force = false);
void updateForUnsavedChanges();
@@ -300,8 +298,8 @@ public slots:
void captureFileClosing();
void captureFileClosed();
- void launchRLCGraph(bool channelKnown, uint8_t RAT, guint16 ueid, guint8 rlcMode,
- guint16 channelType, guint16 channelId, guint8 direction);
+ void launchRLCGraph(bool channelKnown, uint8_t RAT, uint16_t ueid, uint8_t rlcMode,
+ uint16_t channelType, uint16_t channelId, uint8_t direction);
void rtpPlayerDialogReplaceRtpStreams(QVector<rtpstream_id_t *> stream_ids);
void rtpPlayerDialogAddRtpStreams(QVector<rtpstream_id_t *> stream_ids);
@@ -425,7 +423,7 @@ private slots:
void editConfigurationProfiles();
void editTimeShiftFinished(int);
void addPacketCommentFinished(PacketCommentDialog* pc_dialog, int result);
- void editPacketCommentFinished(PacketCommentDialog* pc_dialog, int result, guint nComment);
+ void editPacketCommentFinished(PacketCommentDialog* pc_dialog, int result, unsigned nComment);
void deleteAllPacketComments();
void deleteAllPacketCommentsFinished(int result);
void injectSecrets();
@@ -466,7 +464,7 @@ private slots:
void applyConversationFilter();
void applyExportObject();
- void openFollowStreamDialog(int proto_id, guint stream_num, guint sub_stream_num, bool use_stream_index = true);
+ void openFollowStreamDialog(int proto_id, unsigned stream_num, unsigned sub_stream_num, bool use_stream_index = true);
void openFollowStreamDialog(int proto_id);
void statCommandExpertInfo(const char *, void *);
@@ -496,8 +494,9 @@ private slots:
void statCommandWlanStatistics(const char *arg, void *);
- void openStatisticsTreeDialog(const gchar *abbr);
+ void openStatisticsTreeDialog(const char *abbr);
void statCommandIOGraph(const char *, void *);
+ void showIOGraphDialog(io_graph_item_unit_t value_units, QString);
void connectTelephonyMenuActions();
@@ -524,7 +523,6 @@ private slots:
QString findRtpStreams(QVector<rtpstream_id_t *> *stream_ids, bool reverse);
void openTLSKeylogDialog();
- void installPersonalBinaryPlugin();
friend class MainApplication;
};
diff --git a/ui/qt/wireshark_main_window_slots.cpp b/ui/qt/wireshark_main_window_slots.cpp
index 637d7a1404..f603ae13c9 100644
--- a/ui/qt/wireshark_main_window_slots.cpp
+++ b/ui/qt/wireshark_main_window_slots.cpp
@@ -188,14 +188,14 @@ DIAG_ON(frame-larger-than=)
// Public slots
//
-bool WiresharkMainWindow::openCaptureFile(QString cf_path, QString read_filter, unsigned int type, gboolean is_tempfile)
+bool WiresharkMainWindow::openCaptureFile(QString cf_path, QString read_filter, unsigned int type, bool is_tempfile)
{
QString file_name = "";
dfilter_t *rfcode = NULL;
df_error_t *df_err = NULL;
int err;
- gboolean name_param;
- gboolean ret = true;
+ bool name_param;
+ bool ret = true;
// was a file name given as function parameter?
name_param = !cf_path.isEmpty();
@@ -262,7 +262,7 @@ bool WiresharkMainWindow::openCaptureFile(QString cf_path, QString read_filter,
continue;
}
- switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/FALSE)) {
+ switch (cf_read(CaptureFile::globalCapFile(), /*reloading=*/false)) {
case CF_READ_OK:
case CF_READ_ERROR:
/* Just because we got an error, that doesn't mean we were unable
@@ -515,10 +515,10 @@ void WiresharkMainWindow::captureCapturePrepared(capture_session *session) {
a capture. */
bool handle_toolbars = (session->session_will_restart ? false : true);
setForCaptureInProgress(true, handle_toolbars, session->capture_opts->ifaces);
-// set_capture_if_dialog_for_capture_in_progress(TRUE);
+// set_capture_if_dialog_for_capture_in_progress(true);
// /* Don't set up main window for a capture file. */
-// main_set_for_capture_file(FALSE);
+// main_set_for_capture_file(false);
showCapture();
}
@@ -670,7 +670,7 @@ void WiresharkMainWindow::captureEventHandler(CaptureEvent ev)
thaw();
break;
case CaptureEvent::Flushed:
- draw_tap_listeners(FALSE);
+ draw_tap_listeners(false);
break;
default:
break;
@@ -760,7 +760,7 @@ void WiresharkMainWindow::captureFileReadStarted(const QString &action) {
// tap_param_dlg_update();
/* Set up main window for a capture file. */
-// main_set_for_capture_file(TRUE);
+// main_set_for_capture_file(true);
mainApp->popStatus(WiresharkApplication::FileStatus);
QString msg = QString(tr("%1: %2")).arg(action).arg(capture_file_.fileName());
@@ -844,12 +844,12 @@ void WiresharkMainWindow::startCapture() {
startCapture(QStringList());
}
-void WiresharkMainWindow::startCapture(QStringList interfaces _U_) {
+void WiresharkMainWindow::startCapture(QStringList interfaces) {
#ifdef HAVE_LIBPCAP
interface_options *interface_opts;
- guint i;
+ unsigned i;
interface_t *device;
- gboolean can_start_capture = TRUE;
+ bool can_start_capture = true;
if (interfaces.count() > 0) {
global_capture_opts.num_selected = 0;
@@ -857,11 +857,11 @@ void WiresharkMainWindow::startCapture(QStringList interfaces _U_) {
device = &g_array_index(global_capture_opts.all_ifaces, interface_t, i);
if (interfaces.contains(device->name)) {
- device->selected = TRUE;
+ device->selected = true;
global_capture_opts.num_selected++;
}
else {
- device->selected = FALSE;
+ device->selected = false;
}
}
}
@@ -886,7 +886,7 @@ void WiresharkMainWindow::startCapture(QStringList interfaces _U_) {
QString device_name(device->name);
emit showExtcapOptions(device_name, false);
/* Cancel start of capture */
- can_start_capture = FALSE;
+ can_start_capture = false;
}
}
}
@@ -945,7 +945,7 @@ void WiresharkMainWindow::startCapture(QStringList interfaces _U_) {
if (capture_opts->save_file)
msgtip += capture_opts->save_file;
mainApp->pushStatus(WiresharkApplication::FileStatus, msg, msgtip);
- g_string_free(interface_names, TRUE);
+ g_string_free(interface_names, true);
/* The capture succeeded, which means the capture filter syntax is
valid; add this capture filter to the recent capture filter list. */
@@ -984,6 +984,8 @@ DIAG_ON(stringop-overread)
} else {
CaptureFile::globalCapFile()->window = NULL;
}
+#else // HAVE_LIBPCAP
+ Q_UNUSED(interfaces)
#endif // HAVE_LIBPCAP
}
@@ -1150,10 +1152,10 @@ void WiresharkMainWindow::setEditCommentsMenu()
const int thisRow = selectedRows().first();
frame_data * current_frame = frameDataForRow(thisRow);
wtap_block_t pkt_block = cf_get_packet_block(capture_file_.capFile(), current_frame);
- guint nComments = wtap_block_count_option(pkt_block, OPT_COMMENT);
+ unsigned nComments = wtap_block_count_option(pkt_block, OPT_COMMENT);
if (nComments > 0) {
main_ui_->menuPacketComment->addSeparator();
- for (guint i = 0; i < nComments; i++) {
+ for (unsigned i = 0; i < nComments; i++) {
QString comment = packet_list_->getPacketComment(i);
comment = this->commentToMenuText(comment);
action = main_ui_->menuPacketComment->addAction(tr("Edit \"%1\"", "edit packet comment").arg(comment));
@@ -1162,7 +1164,7 @@ void WiresharkMainWindow::setEditCommentsMenu()
}
main_ui_->menuPacketComment->addSeparator();
- for (guint i = 0; i < nComments; i++) {
+ for (unsigned i = 0; i < nComments; i++) {
QString comment = packet_list_->getPacketComment(i);
comment = this->commentToMenuText(comment);
action = main_ui_->menuPacketComment->addAction(tr("Delete \"%1\"", "delete packet comment").arg(comment));
@@ -1184,8 +1186,8 @@ void WiresharkMainWindow::setEditCommentsMenu()
void WiresharkMainWindow::setMenusForSelectedPacket()
{
- gboolean is_ip = FALSE, is_tcp = FALSE, is_udp = FALSE, is_sctp = FALSE, is_tls = FALSE, is_rtp = FALSE, is_lte_rlc = FALSE,
- is_quic = FALSE, is_exported_pdu = FALSE;
+ bool is_ip = false, is_tcp = false, is_udp = false, is_sctp = false, is_tls = false, is_rtp = false, is_lte_rlc = false,
+ is_quic = false, is_exported_pdu = false;
/* Making the menu context-sensitive allows for easier selection of the
desired item and has the added benefit, with large captures, of
@@ -1261,13 +1263,13 @@ void WiresharkMainWindow::setMenusForSelectedPacket()
if (is_exported_pdu &&
(capture_file_.capFile()->edt->pi.net_src.type == AT_IPv4 || capture_file_.capFile()->edt->pi.net_src.type == AT_IPv6) &&
(capture_file_.capFile()->edt->pi.net_dst.type == AT_IPv4 || capture_file_.capFile()->edt->pi.net_dst.type == AT_IPv6)) {
- is_ip = TRUE;
+ is_ip = true;
}
foreach (FollowStreamAction *follow_action, main_ui_->menuFollow->findChildren<FollowStreamAction *>()) {
/* QUIC has TLS handshakes; don't enabled Follow TLS Stream if
* there's QUIC.
*/
- gboolean is_frame = proto_is_frame_protocol(capture_file_.capFile()->edt->pi.layers, follow_action->filterName());
+ bool is_frame = proto_is_frame_protocol(capture_file_.capFile()->edt->pi.layers, follow_action->filterName());
if (g_strcmp0(follow_action->filterName(), "tls") == 0) {
follow_action->setEnabled(is_frame && !is_quic);
} else {
@@ -1389,7 +1391,7 @@ void WiresharkMainWindow::setMenusForSelectedTreeRow(FieldInformation *finfo) {
}
if (capture_file_.capFile() != NULL && fi != NULL) {
- header_field_info *hfinfo = fi->hfinfo;
+ const header_field_info *hfinfo = fi->hfinfo;
int linked_frame = -1;
can_match_selected = proto_can_match_selected(capture_file_.capFile()->finfo_selected, capture_file_.capFile()->edt);
@@ -1547,7 +1549,7 @@ void WiresharkMainWindow::checkDisplayFilter()
void WiresharkMainWindow::fieldsChanged()
{
- gchar *err_msg = NULL;
+ char *err_msg = NULL;
if (!color_filters_reload(&err_msg, color_filter_add_cb)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
@@ -1570,7 +1572,7 @@ void WiresharkMainWindow::reloadLuaPlugins()
if (mainApp->isReloadingLua())
return;
- gboolean uses_lua_filehandler = FALSE;
+ bool uses_lua_filehandler = false;
if (capture_file_.capFile()) {
// Check if the current capture file is opened with a Lua FileHandler
@@ -1658,7 +1660,7 @@ void WiresharkMainWindow::initViewColorizeMenu()
<< main_ui_->actionViewColorizeConversation7 << main_ui_->actionViewColorizeConversation8
<< main_ui_->actionViewColorizeConversation9 << main_ui_->actionViewColorizeConversation10;
- guint8 color_num = 1;
+ uint8_t color_num = 1;
foreach(QAction *cc_action, cc_actions) {
cc_action->setData(color_num);
@@ -1906,7 +1908,7 @@ void WiresharkMainWindow::exportPacketBytes()
);
if (file_name.length() > 0) {
- const guint8 *data_p;
+ const uint8_t *data_p;
data_p = tvb_get_ptr(capture_file_.capFile()->finfo_selected->ds_tvb, 0, -1) +
capture_file_.capFile()->finfo_selected->start;
@@ -1978,8 +1980,8 @@ void WiresharkMainWindow::exportTLSSessionKeys()
tr("TLS Session Keys (*.keys *.txt);;All Files (" ALL_FILES_WILDCARD ")")
);
if (file_name.length() > 0) {
- gsize keylist_length;
- gchar *keylist = ssl_export_sessions(&keylist_length);
+ size_t keylist_length;
+ char *keylist = ssl_export_sessions(&keylist_length);
write_file_binary_mode(qUtf8Printable(file_name), keylist, keylist_length);
/* Save the directory name for future file dialogs. */
@@ -2165,7 +2167,7 @@ void WiresharkMainWindow::copySelectedItems(WiresharkMainWindow::CopySelected se
break;
case CopySelectedValue:
if (finfo_selected && capture_file_.capFile()->edt != 0) {
- gchar* field_str = get_node_field_value(finfo_selected, capture_file_.capFile()->edt);
+ char* field_str = get_node_field_value(finfo_selected, capture_file_.capFile()->edt);
clip.append(field_str);
g_free(field_str);
}
@@ -2260,7 +2262,7 @@ void WiresharkMainWindow::editTimeShift()
connect(this, SIGNAL(setCaptureFile(capture_file*)),
ts_dialog, SLOT(setCaptureFile(capture_file*)));
- connect(ts_dialog, SIGNAL(timeShifted()), packet_list_, SLOT(applyTimeShift()));
+ connect(ts_dialog, &TimeShiftDialog::timeShifted, packet_list_, &PacketList::applyTimeShift, Qt::QueuedConnection);
ts_dialog->setWindowModality(Qt::ApplicationModal);
ts_dialog->setAttribute(Qt::WA_DeleteOnClose);
@@ -2307,7 +2309,7 @@ void WiresharkMainWindow::editPacketComment()
return;
QAction *ra = qobject_cast<QAction*>(sender());
- guint nComment = ra->data().toUInt();
+ unsigned nComment = ra->data().toUInt();
PacketCommentDialog* pc_dialog;
pc_dialog = new PacketCommentDialog(true, this, packet_list_->getPacketComment(nComment));
connect(pc_dialog, &QDialog::finished, std::bind(&WiresharkMainWindow::editPacketCommentFinished, this, pc_dialog, std::placeholders::_1, nComment));
@@ -2316,7 +2318,7 @@ void WiresharkMainWindow::editPacketComment()
pc_dialog->show();
}
-void WiresharkMainWindow::editPacketCommentFinished(PacketCommentDialog* pc_dialog _U_, int result _U_, guint nComment)
+void WiresharkMainWindow::editPacketCommentFinished(PacketCommentDialog* pc_dialog _U_, int result _U_, unsigned nComment)
{
if (result == QDialog::Accepted) {
packet_list_->setPacketComment(nComment, pc_dialog->text());
@@ -2327,7 +2329,7 @@ void WiresharkMainWindow::editPacketCommentFinished(PacketCommentDialog* pc_dial
void WiresharkMainWindow::deletePacketComment()
{
QAction *ra = qobject_cast<QAction*>(sender());
- guint nComment = ra->data().toUInt();
+ unsigned nComment = ra->data().toUInt();
packet_list_->setPacketComment(nComment, QString(""));
updateForUnsavedChanges();
}
@@ -2423,7 +2425,7 @@ void WiresharkMainWindow::discardAllSecretsFinished(int result)
*/
capture_file* cf = capture_file_.capFile();
if (wtap_file_discard_decryption_secrets(cf->provider.wth)) {
- cf->unsaved_changes = TRUE;
+ cf->unsaved_changes = true;
updateForUnsavedChanges();
}
}
@@ -2519,7 +2521,7 @@ void WiresharkMainWindow::connectViewMenuActions()
[this]() { showColoringRulesDialog(); });
connect(main_ui_->actionViewColorizeResetColorization, &QAction::triggered, this, [this]() {
- gchar *err_msg = NULL;
+ char *err_msg = NULL;
if (!color_filters_reset_tmp(&err_msg)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
@@ -2720,9 +2722,9 @@ void WiresharkMainWindow::editResolvedName()
void WiresharkMainWindow::setNameResolution()
{
- gbl_resolv_flags.mac_name = main_ui_->actionViewNameResolutionPhysical->isChecked() ? TRUE : FALSE;
- gbl_resolv_flags.network_name = main_ui_->actionViewNameResolutionNetwork->isChecked() ? TRUE : FALSE;
- gbl_resolv_flags.transport_name = main_ui_->actionViewNameResolutionTransport->isChecked() ? TRUE : FALSE;
+ gbl_resolv_flags.mac_name = main_ui_->actionViewNameResolutionPhysical->isChecked() ? true : false;
+ gbl_resolv_flags.network_name = main_ui_->actionViewNameResolutionNetwork->isChecked() ? true : false;
+ gbl_resolv_flags.transport_name = main_ui_->actionViewNameResolutionTransport->isChecked() ? true : false;
if (packet_list_) {
packet_list_->resetColumns();
@@ -2756,8 +2758,8 @@ void WiresharkMainWindow::colorizeConversation(bool create_rule)
if (capture_file_.capFile() && selectedRows().count() > 0) {
packet_info *pi = capture_file_.packetInfo();
- guint8 cc_num = colorize_action->data().toUInt();
- gchar *filter = conversation_filter_from_packet(pi);
+ uint8_t cc_num = colorize_action->data().toUInt();
+ char *filter = conversation_filter_from_packet(pi);
if (filter == NULL) {
mainApp->pushStatus(WiresharkApplication::TemporaryStatus, tr("Unable to build conversation filter."));
return;
@@ -2771,8 +2773,8 @@ void WiresharkMainWindow::colorizeConversation(bool create_rule)
this, &WiresharkMainWindow::filterAction);
coloring_rules_dialog.exec();
} else {
- gchar *err_msg = NULL;
- if (!color_filters_set_tmp(cc_num, filter, FALSE, &err_msg)) {
+ char *err_msg = NULL;
+ if (!color_filters_set_tmp(cc_num, filter, false, &err_msg)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
}
@@ -2808,8 +2810,8 @@ void WiresharkMainWindow::colorizeWithFilter(QByteArray filter, int color_number
if (color_number > 0) {
// Assume "Color X"
- gchar *err_msg = NULL;
- if (!color_filters_set_tmp(color_number, filter.constData(), FALSE, &err_msg)) {
+ char *err_msg = NULL;
+ if (!color_filters_set_tmp(color_number, filter.constData(), false, &err_msg)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", err_msg);
g_free(err_msg);
}
@@ -2832,7 +2834,7 @@ void WiresharkMainWindow::openPacketDialog(bool from_reference)
/* Find the frame for which we're popping up a dialog */
if (from_reference) {
- guint32 framenum = fvalue_get_uinteger(capture_file_.capFile()->finfo_selected->value);
+ uint32_t framenum = fvalue_get_uinteger(capture_file_.capFile()->finfo_selected->value);
if (framenum == 0)
return;
@@ -2958,9 +2960,9 @@ void WiresharkMainWindow::connectGoMenuActions()
}
void WiresharkMainWindow::goToConversationFrame(bool go_next) {
- gchar *filter = NULL;
+ char *filter = NULL;
dfilter_t *dfcode = NULL;
- gboolean found_packet = FALSE;
+ bool found_packet = false;
packet_info *pi = capture_file_.packetInfo();
if (!pi) {
@@ -3014,7 +3016,7 @@ void WiresharkMainWindow::connectCaptureMenuActions()
#ifdef HAVE_LIBPCAP
connect(main_ui_->actionCaptureRestart, &QAction::triggered, this, [this]() {
QString before_what(tr(" before restarting the capture"));
- cap_session_.capture_opts->restart = TRUE;
+ cap_session_.capture_opts->restart = true;
if (!testCaptureFileClose(before_what, Restart)) {
return;
}
@@ -3090,13 +3092,13 @@ void WiresharkMainWindow::startCaptureTriggered()
// /*
// * There's an options dialog; get the values from it and close it.
// */
-// gboolean success;
+// bool success;
// /* Determine if "capture start" while building of the "capture options" window */
// /* is in progress. If so, ignore the "capture start. */
// /* XXX: Would it be better/cleaner for the "capture options" window code to */
// /* disable the capture start button temporarily ? */
-// if (cap_open_complete == FALSE) {
+// if (cap_open_complete == false) {
// return; /* Building options window: ignore "capture start" */
// }
// success = capture_dlg_prep(cap_open_w);
@@ -3234,7 +3236,7 @@ void WiresharkMainWindow::matchFieldFilter(FilterAction::Action action, FilterAc
void WiresharkMainWindow::applyFieldAsColumn()
{
if (capture_file_.capFile() != 0 && capture_file_.capFile()->finfo_selected != 0) {
- header_field_info *hfinfo = capture_file_.capFile()->finfo_selected->hfinfo;
+ const header_field_info *hfinfo = capture_file_.capFile()->finfo_selected->hfinfo;
int col = column_prefs_has_custom(hfinfo->abbrev);
if (col == -1) {
insertColumn(hfinfo->name, hfinfo->abbrev);
@@ -3249,7 +3251,7 @@ void WiresharkMainWindow::applyFieldAsColumn()
if (!get_column_visible(col)) {
packet_list_->setColumnHidden(col, false);
- set_column_visible(col, TRUE);
+ set_column_visible(col, true);
prefs_main_write();
}
}
@@ -3286,7 +3288,7 @@ void WiresharkMainWindow::applyExportObject()
export_dialog->show();
}
-void WiresharkMainWindow::openFollowStreamDialog(int proto_id, guint stream_num, guint sub_stream_num, bool use_stream_index) {
+void WiresharkMainWindow::openFollowStreamDialog(int proto_id, unsigned stream_num, unsigned sub_stream_num, bool use_stream_index) {
FollowStreamDialog *fsd = new FollowStreamDialog(*this, capture_file_, proto_id);
connect(fsd, SIGNAL(updateFilter(QString, bool)), this, SLOT(filterPackets(QString, bool)));
connect(fsd, SIGNAL(goToPacket(int)), packet_list_, SLOT(goToPacket(int)));
@@ -3549,7 +3551,7 @@ void WiresharkMainWindow::statCommandMulticastStatistics(const char *arg, void *
mcast_stats_dlg->show();
}
-void WiresharkMainWindow::openStatisticsTreeDialog(const gchar *abbr)
+void WiresharkMainWindow::openStatisticsTreeDialog(const char *abbr)
{
StatsTreeDialog *st_dialog = new StatsTreeDialog(*this, capture_file_, abbr);
// connect(st_dialog, SIGNAL(goToPacket(int)),
@@ -3560,15 +3562,54 @@ void WiresharkMainWindow::openStatisticsTreeDialog(const gchar *abbr)
// -z io,stat
void WiresharkMainWindow::statCommandIOGraph(const char *, void *)
{
+ showIOGraphDialog(IOG_ITEM_UNIT_PACKETS, QString());
+}
+
+void WiresharkMainWindow::showIOGraphDialog(io_graph_item_unit_t value_units, QString yfield)
+{
const DisplayFilterEdit *df_edit = qobject_cast<DisplayFilterEdit *>(df_combo_box_->lineEdit());
+ IOGraphDialog *iog_dialog = nullptr;
QString displayFilter;
if (df_edit)
displayFilter = df_edit->text();
- IOGraphDialog *iog_dialog = new IOGraphDialog(*this, capture_file_, displayFilter);
- connect(iog_dialog, SIGNAL(goToPacket(int)), packet_list_, SLOT(goToPacket(int)));
- connect(this, SIGNAL(reloadFields()), iog_dialog, SLOT(reloadFields()));
- iog_dialog->show();
+ if (!yfield.isEmpty()) {
+ QList<IOGraphDialog *> iographdialogs = findChildren<IOGraphDialog *>();
+ // GeometryStateDialogs aren't parented on Linux and Windows
+ // (see geometry_state_dialog.h), so we search for an
+ // I/O Dialog in all the top level widgets.
+ if (iographdialogs.isEmpty()) {
+ foreach(QWidget *topLevelWidget, mainApp->topLevelWidgets()) {
+ if (qobject_cast<IOGraphDialog*>(topLevelWidget)) {
+ iographdialogs << qobject_cast<IOGraphDialog*>(topLevelWidget);
+ }
+ }
+ }
+ bool iog_found = false;
+ foreach(iog_dialog, iographdialogs) {
+ if (!iog_dialog->fileClosed()) {
+ iog_found = true;
+ iog_dialog->addGraph(true, displayFilter, value_units, yfield);
+ break;
+ }
+ }
+ if (!iog_found) {
+ iog_dialog = nullptr;
+ }
+ }
+
+ if (iog_dialog == nullptr) {
+ iog_dialog = new IOGraphDialog(*this, capture_file_, displayFilter, value_units, yfield);
+ connect(iog_dialog, SIGNAL(goToPacket(int)), packet_list_, SLOT(goToPacket(int)));
+ connect(this, &WiresharkMainWindow::reloadFields, iog_dialog, &IOGraphDialog::reloadFields);
+ }
+ if (iog_dialog->isMinimized()) {
+ iog_dialog->showNormal();
+ } else {
+ iog_dialog->show();
+ }
+ iog_dialog->raise();
+ iog_dialog->activateWindow();
}
// Telephony Menu
@@ -3670,15 +3711,15 @@ void WiresharkMainWindow::statCommandLteRlcStatistics(const char *arg, void *)
this, SIGNAL(filterAction(QString, FilterAction::Action, FilterAction::ActionType)));
// N.B. It is necessary for the RLC Statistics window to launch the RLC graph in this way, to ensure
// that the goToPacket() signal/slot connection gets set up...
- connect(lte_rlc_stats_dlg, SIGNAL(launchRLCGraph(bool, uint8_t, guint16, guint8, guint16, guint16, guint8)),
- this, SLOT(launchRLCGraph(bool, uint8_t, guint16, guint8, guint16, guint16, guint8)));
+ connect(lte_rlc_stats_dlg, SIGNAL(launchRLCGraph(bool, uint8_t, uint16_t, uint8_t, uint16_t, uint16_t, uint8_t)),
+ this, SLOT(launchRLCGraph(bool, uint8_t, uint16_t, uint8_t, uint16_t, uint16_t, uint8_t)));
lte_rlc_stats_dlg->show();
}
void WiresharkMainWindow::launchRLCGraph(bool channelKnown,
- uint8_t RAT, guint16 ueid, guint8 rlcMode,
- guint16 channelType, guint16 channelId, guint8 direction)
+ uint8_t RAT, uint16_t ueid, uint8_t rlcMode,
+ uint16_t channelType, uint16_t channelId, uint8_t direction)
{
LteRlcGraphDialog *lrg_dialog = new LteRlcGraphDialog(*this, capture_file_, channelKnown);
connect(lrg_dialog, SIGNAL(goToPacket(int)), packet_list_, SLOT(goToPacket(int)));
@@ -3800,12 +3841,6 @@ void WiresharkMainWindow::connectToolsMenuActions()
});
connect(main_ui_->actionToolsTLSKeylog, &QAction::triggered, this, &WiresharkMainWindow::openTLSKeylogDialog);
-
- if (plugins_supported()) {
- QAction *actionToolsInstallPlugin = new QAction(tr("Install Plugin"), this);
- connect(actionToolsInstallPlugin, &QAction::triggered, this, &WiresharkMainWindow::installPersonalBinaryPlugin);
- main_ui_->menuTools->addAction(actionToolsInstallPlugin);
- }
}
// Help Menu
@@ -3907,8 +3942,8 @@ void WiresharkMainWindow::showConversationsDialog()
ConversationDialog *conv_dialog = new ConversationDialog(*this, capture_file_);
connect(conv_dialog, SIGNAL(filterAction(QString, FilterAction::Action, FilterAction::ActionType)),
this, SIGNAL(filterAction(QString, FilterAction::Action, FilterAction::ActionType)));
- connect(conv_dialog, SIGNAL(openFollowStreamDialog(int, guint, guint)),
- this, SLOT(openFollowStreamDialog(int, guint, guint)));
+ connect(conv_dialog, SIGNAL(openFollowStreamDialog(int, unsigned, unsigned)),
+ this, SLOT(openFollowStreamDialog(int, unsigned, unsigned)));
connect(conv_dialog, SIGNAL(openTcpStreamGraph(int)),
this, SLOT(openTcpStreamDialog(int)));
conv_dialog->show();
@@ -3940,9 +3975,9 @@ void WiresharkMainWindow::externalMenuItemTriggered()
entry = (ext_menubar_t *)v.value<void *>();
if (entry->type == EXT_MENUBAR_ITEM) {
- entry->callback(EXT_MENUBAR_QT_GUI, (gpointer)((void *)main_ui_), entry->user_data);
+ entry->callback(EXT_MENUBAR_QT_GUI, (void *)((void *)main_ui_), entry->user_data);
} else {
- QDesktopServices::openUrl(QUrl(QString((gchar *)entry->user_data)));
+ QDesktopServices::openUrl(QUrl(QString((char *)entry->user_data)));
}
}
}
diff --git a/ui/qt/wireshark_pl.ts b/ui/qt/wireshark_pl.ts
index 1397d02c62..8679e08b7b 100644
--- a/ui/qt/wireshark_pl.ts
+++ b/ui/qt/wireshark_pl.ts
@@ -1312,7 +1312,7 @@
</message>
<message>
<source>Show and hide interfaces, add comments, and manage pipes and remote interfaces.</source>
- <translation>Pokaż lub ukryj interfejsy, dodaj komentarze i zarządzaj rurami oraz zdalnymi interfejsami.</translation>
+ <translation>Pokaż lub ukryj interfejsy, dodaj komentarze i zarządzaj potokami oraz zdalnymi interfejsami.</translation>
</message>
<message>
<source>Manage Interfaces…</source>
@@ -2022,6 +2022,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Bitów/sek. B</translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Całkowita liczba pakietów</translation>
</message>
@@ -2136,14 +2140,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Kopiuj bajty pakietu jako Hex.</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation>…drukowalny tekst</translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation>Kopiuj tylko drukowalny tekst z pakietu.</translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation>…jako dane MIME</translation>
</message>
@@ -2176,6 +2172,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>Kopiuj bajty pakietu jako strumień Hex.</translation>
</message>
@@ -3340,19 +3352,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Temp</source>
<translation>Temp</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">pliki przechwytywania bez tytułu</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation type="unfinished"></translation>
</message>
@@ -3393,6 +3396,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Skrypty Lua</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3413,6 +3424,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation type="unfinished"></translation>
</message>
@@ -3452,14 +3467,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Typical Files</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4105,10 +4112,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Włącz legendę</translation>
</message>
<message>
- <source>Reset</source>
- <translation>Reset</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Resetuj wykres</translation>
</message>
@@ -4322,6 +4325,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Skopiuj wykresy z innego profilu.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4366,6 +4405,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>5 sek.</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 min {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 min {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -4438,6 +4485,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Kliknij by wybrać obszar wykresu.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Dokument PDF (*.pdf)</translation>
</message>
@@ -5085,7 +5136,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Pipe</source>
- <translation type="unfinished"></translation>
+ <translation>Potok</translation>
</message>
<message>
<source>STDIN</source>
@@ -5213,7 +5264,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Local Pipe Path</source>
- <translation type="unfinished"></translation>
+ <translation>Ścieżka lokalnego potoku</translation>
</message>
<message>
<source>Comment</source>
@@ -6888,19 +6939,19 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add a pipe to capture from or remove an existing pipe from the list.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj lub usuń rurę z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj lub usuń potok z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Pipes</source>
- <translation>Rury</translation>
+ <translation>Potoki</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add a new pipe using default settings.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj nową rurę używając domyślnych ustawień.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dodaj nowy potok używając domyślnych ustawień.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Remove the selected pipe from the list.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Usuń wybraną rurę z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Usuń wybrany potok z listy.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Remote Interfaces</source>
@@ -6928,7 +6979,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>This version of Wireshark does not save pipe settings.</source>
- <translation>Ta wersja Wiresharka nie obsługuje ustawień rur.</translation>
+ <translation>Ta wersja programu Wireshark nie obsługuje ustawień potoków.</translation>
</message>
<message>
<source>This version of Wireshark does not save remote settings.</source>
@@ -6940,7 +6991,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>New Pipe</source>
- <translation>Nowa rura</translation>
+ <translation>Nowy potok</translation>
</message>
</context>
<context>
@@ -7539,7 +7590,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>PathSelectionDelegate</name>
<message>
<source>Open a pipe</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz potok</translation>
</message>
</context>
<context>
@@ -7571,18 +7622,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation>Ścieżka</translation>
</message>
- <message>
- <source>Scope</source>
- <translation>Zakres</translation>
- </message>
- <message>
- <source>Description</source>
- <translation>Opis</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation>Strona główna</translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7778,10 +7817,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Kopiuj ten profil.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Konfiguracja profili</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>Importuj</translation>
@@ -7971,6 +8022,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>usunięte</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>kopiuj</translation>
@@ -8330,6 +8385,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Rozmiar okna (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[nie załadowano pliku przechytywania]</translation>
</message>
@@ -8848,6 +8907,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14944,40 +15010,6 @@ a:hover {
<translation type="unfinished"></translation>
</message>
<message>
- <source>Install plugin</source>
- <translation>Zainstaluj wtyczkę</translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation>Błąd podczas usuwania starej wtyczki z osobistego folderu wtyczek. Może być konieczne zamknięcie programu Wireshark, a następnie ręczne usunięcie pliku &quot;%1&quot;.</translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation>Nie udało się utworzyć katalogu: %1</translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation>Plik już istnieje. Czy chcesz go nadpisać?</translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation>Nie udało się skopiować pliku do miejsca docelowego: %1</translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation>Wtyczka &apos;%1&apos; została pomyślnie zainstalowana. Aby móc z niego korzystać, należy ponownie uruchomić program.</translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>Pokaż lub ukryj pasek narzędziowy</translation>
</message>
@@ -15188,10 +15220,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation>przed restartem przechwytywania</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation>Zainstaluj wtyczkę</translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>Strona Wiki dla %1</translation>
</message>
diff --git a/ui/qt/wireshark_ru.ts b/ui/qt/wireshark_ru.ts
index d338b4b54f..d9893e1728 100644
--- a/ui/qt/wireshark_ru.ts
+++ b/ui/qt/wireshark_ru.ts
@@ -2023,6 +2023,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Бит/с B </translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Всего пакетов</translation>
</message>
@@ -2137,14 +2141,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Копировать байты пакета в виде шестнадцатеричного дампа.</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -2177,6 +2173,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>…в виде шестнадцатеричного потока</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>Копировать байты пакета в виде шестнадцатеричного потока.</translation>
</message>
@@ -3341,23 +3353,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">Диалоговые окна открытия файлов</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">Файлы захвата</translation>
- </message>
- <message>
<source>Temp</source>
<translation>Временные файлы</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">Безымянные файлы захвата</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>Персональная конфигурация</translation>
</message>
@@ -3366,14 +3365,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Глобальная конфигурация</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">dfilters, preferences, ethers, …</translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">dfilters, preferences, manuf, …</translation>
- </message>
- <message>
<source>System</source>
<translation>Конфигурация системы</translation>
</message>
@@ -3386,18 +3377,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Программы</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">Файлы программ</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>Пользовательские подключаемые модули</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">Исполняемые файлы подключаемых модулей</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>Глобальные подключаемые модули</translation>
</message>
@@ -3414,6 +3397,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Сценарии Lua</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3434,6 +3425,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Пользовательский путь Extcap</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>Глобальный путь к Extcap</translation>
</message>
@@ -3473,14 +3468,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Typical Files</source>
<translation>Размещаемые файлы</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4133,10 +4120,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation>Сброс</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Сбросить график</translation>
</message>
@@ -4350,6 +4333,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Копировать графики из другого профиля.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 мс</translation>
</message>
@@ -4394,6 +4413,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>5 сек</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 мин {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 мин {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Графики ввода/вывода Wireshark: %1</translation>
</message>
@@ -4466,6 +4493,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Щёлкните для выбора участка графика.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Portable Document Format (*.pdf)</translation>
</message>
@@ -7599,18 +7630,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation>Путь</translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished">Описание</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7806,10 +7825,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Копировать данный профиль.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Профили конфигурации</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>Импорт</translation>
@@ -7999,6 +8030,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>удалённый</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>копия</translation>
@@ -8358,6 +8393,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Размер окна (Б)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[нет файла захвата]</translation>
</message>
@@ -8876,6 +8915,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14977,40 +15023,6 @@ a:hover {
<translation>Идентификатор SSRC не найден.</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>Показать или скрыть панель инструментов</translation>
</message>
@@ -15221,10 +15233,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation> перед перезапуском захвата</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>Вики-страница для %1</translation>
</message>
diff --git a/ui/qt/wireshark_sv.ts b/ui/qt/wireshark_sv.ts
index 941413c5d1..977ecd396b 100644
--- a/ui/qt/wireshark_sv.ts
+++ b/ui/qt/wireshark_sv.ts
@@ -2016,6 +2016,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Bitar/s B</translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Totalt antal paket</translation>
</message>
@@ -2130,14 +2134,6 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Kopiera paketbyte som en hex-dump.</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -2170,6 +2166,22 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>… som en hex-ström</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>Kopiera paketbyte som en ström av hex.</translation>
</message>
@@ -3333,23 +3345,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">”Arkiv”-dialoger</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">fångstfiler</translation>
- </message>
- <message>
<source>Temp</source>
<translation>Temp</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">namnlösa fångstfiler</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>Personlig konfiguration</translation>
</message>
@@ -3358,14 +3357,6 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Global konfiguration</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">dfilter, inställningar, ether:ar, …</translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">dfilter, inställningar, manuf, …</translation>
- </message>
- <message>
<source>System</source>
<translation>System</translation>
</message>
@@ -3378,18 +3369,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Program</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">programfiler</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>Personliga insticksmoduler</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">binära insticksmoduler</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>Globala insticksmoduler</translation>
</message>
@@ -3406,6 +3389,14 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Lua-skript</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3426,6 +3417,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Personlig extcap-sökväg</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>Global extcap-sökväg</translation>
</message>
@@ -3465,14 +3460,6 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<source>Typical Files</source>
<translation>Typiska filer</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4116,10 +4103,6 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation>Återställ</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Återställ grafen</translation>
</message>
@@ -4333,6 +4316,42 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Kopiera grafer från en annan profil.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4377,6 +4396,14 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>5 s</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 min {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 min {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Wireshark I/O-grafer: %1</translation>
</message>
@@ -4449,6 +4476,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Klicka för att välja en del av grafen.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Portable Document Format (*.pdf)</translation>
</message>
@@ -7577,18 +7608,6 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<source>Path</source>
<translation>Sökväg</translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished">Beskrivning</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7784,10 +7803,22 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Kopiera denna profil.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Konfigurationsprofiler</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>Import</translation>
@@ -7970,6 +8001,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>borttagen</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>kopia</translation>
@@ -8329,6 +8364,10 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
<translation>Fönsterstorlek (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[ingen fångstfil]</translation>
</message>
@@ -8847,6 +8886,13 @@ Till exempel, använd 1 timma för att en ny fil skall skapas varje timma vid he
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14943,40 +14989,6 @@ a:hover {
<translation>SSRC-värdet finns inte.</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>Visa eller dölj verktygsraden</translation>
</message>
@@ -15184,10 +15196,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation> före omstart av fångsten</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>Wiki-sida för %1</translation>
</message>
diff --git a/ui/qt/wireshark_tr_TR.ts b/ui/qt/wireshark_tr_TR.ts
index 3913d6b236..c7e706e531 100644
--- a/ui/qt/wireshark_tr_TR.ts
+++ b/ui/qt/wireshark_tr_TR.ts
@@ -2011,6 +2011,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Bit/s B </translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation>Toplam Paket</translation>
</message>
@@ -2125,14 +2129,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Paket baytlarını hex dökümü olarak kopyalayın.</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation>…Yazdırılabilir Metin Olarak</translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation>Yalnızca paketteki yazdırılabilir metni kopyalayın.</translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation>…MIME Verisi</translation>
</message>
@@ -2165,6 +2161,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>…Hex Akışı olarak</translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>Paket baytlarını bir hex akışı olarak kopyalayın.</translation>
</message>
@@ -3327,23 +3339,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">&quot;Dosya&quot; diyalogları</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">yakalama dosyaları</translation>
- </message>
- <message>
<source>Temp</source>
<translation>Geçici</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">başlıksız yakalama dosyaları</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>Kişisel yapılandırma</translation>
</message>
@@ -3352,14 +3351,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Genel yapılandırma</translation>
</message>
<message>
- <source>dfilters, preferences, ethers, …</source>
- <translation type="vanished">filtreler, tercihler, eterler, …</translation>
- </message>
- <message>
- <source>dfilters, preferences, manuf, …</source>
- <translation type="vanished">filtreler, tercihler, üretici, …</translation>
- </message>
- <message>
<source>System</source>
<translation>Sistem</translation>
</message>
@@ -3372,18 +3363,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Uygulama</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">program dosyaları</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>Kişisel Eklentiler</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">ikili eklentiler</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>Genel Eklentiler</translation>
</message>
@@ -3400,6 +3383,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Lua betikleri</translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3420,6 +3411,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Kişisel Excap yolu</translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation>Genel Extcap yolu</translation>
</message>
@@ -3459,14 +3454,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Typical Files</source>
<translation>Tipik Dosyalar</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4101,10 +4088,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation>Sıfırla</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Grafiği Sıfırla</translation>
</message>
@@ -4318,6 +4301,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Grafikleri başka bir profilden kopyalayın.</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1 ms</translation>
</message>
@@ -4362,6 +4381,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>5 san</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 dakika {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 dakika {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation>Wireshark G/Ç Grafikleri: %1</translation>
</message>
@@ -4434,6 +4461,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Grafiğin bir bölümünü seçmek için tıklayın.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Taşınabilir Belge Formatı (*.pdf)</translation>
</message>
@@ -7557,18 +7588,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation>Dizin</translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7764,10 +7783,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Bu profili kopyalayın.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Yapılandırma Profilleri</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation>İçe Aktar</translation>
@@ -7943,6 +7974,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>silindi</translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation>kopyala</translation>
@@ -8302,6 +8337,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Pencere Boyutu (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[yakalama dosyası yok]</translation>
</message>
@@ -8820,6 +8859,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14911,40 +14957,6 @@ a:üzerine gelin{
<translation>SSRC değeri bulunamadı.</translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>Araç çubuğunu göster ya da gizle</translation>
</message>
@@ -15149,10 +15161,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation> yakalamayı yeniden başlatmadan önce</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>%1 için Wiki Sayfası</translation>
</message>
diff --git a/ui/qt/wireshark_uk.ts b/ui/qt/wireshark_uk.ts
index 937e601ff1..8e97fff396 100644
--- a/ui/qt/wireshark_uk.ts
+++ b/ui/qt/wireshark_uk.ts
@@ -1996,6 +1996,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation type="unfinished"></translation>
</message>
@@ -2110,14 +2114,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -2150,6 +2146,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation type="unfinished"></translation>
</message>
@@ -3312,11 +3324,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Temp</source>
<translation type="unfinished"></translation>
</message>
@@ -3361,6 +3368,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3381,6 +3396,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation type="unfinished"></translation>
</message>
@@ -3420,14 +3439,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Typical Files</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4051,10 +4062,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation>Скинути</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>Скинути Зміни До Діаграми</translation>
</message>
@@ -4268,6 +4275,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation type="unfinished"></translation>
</message>
@@ -4312,6 +4355,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished">10 сек {5 ?}</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10 хв {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10 хв {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -4384,6 +4435,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Клікніть, щоб виділити частину графіку.</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>Формат Переносних Документів (*.pdf)</translation>
</message>
@@ -7490,18 +7545,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished">Опис</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7697,10 +7740,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Скопіювати цей профіль.</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>Профілі Конфігурації</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation type="unfinished"></translation>
@@ -7874,6 +7929,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation type="unfinished"></translation>
@@ -8233,6 +8292,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>Розмір Вікна (Б)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation type="unfinished"></translation>
</message>
@@ -8751,6 +8814,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -14742,40 +14812,6 @@ a:hover {
<translation type="unfinished"></translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation type="unfinished"></translation>
</message>
@@ -14977,10 +15013,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation type="unfinished"></translation>
</message>
diff --git a/ui/qt/wireshark_zh_CN.ts b/ui/qt/wireshark_zh_CN.ts
index 6a02fd8acc..c02398228a 100644
--- a/ui/qt/wireshark_zh_CN.ts
+++ b/ui/qt/wireshark_zh_CN.ts
@@ -29,7 +29,7 @@
</message>
<message>
<source>Copy to Clipboard</source>
- <translation type="unfinished"></translation>
+ <translation>复制到剪贴板</translation>
</message>
<message>
<source>Authors</source>
@@ -278,7 +278,7 @@
</message>
<message>
<source>LMP Subversion</source>
- <translation type="unfinished">LMP 子版本</translation>
+ <translation>LMP 子版本</translation>
</message>
<message>
<source>Manufacturer</source>
@@ -386,7 +386,7 @@
</message>
<message>
<source>Ctrl+M</source>
- <translation type="unfinished">Ctrl+M</translation>
+ <translation>Ctrl+M</translation>
</message>
<message>
<source>Mark/Unmark Cell</source>
@@ -1906,7 +1906,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<name>ColumnTypeDelegate</name>
<message>
<source>Default</source>
- <translation type="unfinished">默认</translation>
+ <translation>默认</translation>
</message>
<message>
<source>Left</source>
@@ -2007,6 +2007,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Flows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Total Packets</source>
<translation type="unfinished"></translation>
</message>
@@ -2121,14 +2125,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>将分组字节复制为十六进制转储。</translation>
</message>
<message>
- <source>…as Printable Text</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy only the printable text in the packet.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>…as MIME Data</source>
<translation type="unfinished"></translation>
</message>
@@ -2161,6 +2157,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>…as UTF-8 Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as UTF-8.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>…as ASCII Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy packet bytes as text, treating as ASCII.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Copy packet bytes as a stream of hex.</source>
<translation>将分组字节复制为十六进制流。</translation>
</message>
@@ -3321,23 +3333,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<context>
<name>FolderListModel</name>
<message>
- <source>&quot;File&quot; dialog location</source>
- <oldsource>&quot;File&quot; dialogs</oldsource>
- <translation type="unfinished">“文件”对话框</translation>
- </message>
- <message>
- <source>capture files</source>
- <translation type="vanished">捕获文件</translation>
- </message>
- <message>
<source>Temp</source>
<translation>临时</translation>
</message>
<message>
- <source>untitled capture files</source>
- <translation type="vanished">无标题捕获文件</translation>
- </message>
- <message>
<source>Personal configuration</source>
<translation>个人配置</translation>
</message>
@@ -3358,18 +3357,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>程序</translation>
</message>
<message>
- <source>program files</source>
- <translation type="vanished">程序文件</translation>
- </message>
- <message>
<source>Personal Plugins</source>
<translation>个人插件</translation>
</message>
<message>
- <source>binary plugins</source>
- <translation type="vanished">二进制插件</translation>
- </message>
- <message>
<source>Global Plugins</source>
<translation>全局插件</translation>
</message>
@@ -3386,6 +3377,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>&quot;File&quot; dialog location</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Capture files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Untitled capture files</source>
<translation type="unfinished"></translation>
</message>
@@ -3406,6 +3405,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>External capture (extcap) plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Global Extcap path</source>
<translation type="unfinished"></translation>
</message>
@@ -3445,14 +3448,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Typical Files</source>
<translation>典型文件</translation>
</message>
- <message>
- <source>Capture files</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>External capture (extcap) plugins</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>FollowStreamAction</name>
@@ -4087,10 +4082,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Reset</source>
- <translation>复位</translation>
- </message>
- <message>
<source>Reset Graph</source>
<translation>复位图形</translation>
</message>
@@ -4304,6 +4295,42 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>从另一个配置文件复制图形。</translation>
</message>
<message>
+ <source>1 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>20 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>500 μs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>1 ms</source>
<translation>1毫秒</translation>
</message>
@@ -4348,6 +4375,14 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished">10秒 {5 ?}</translation>
</message>
<message>
+ <source>2 min</source>
+ <translation type="unfinished">10分钟 {2 ?}</translation>
+ </message>
+ <message>
+ <source>5 min</source>
+ <translation type="unfinished">10分钟 {5 ?}</translation>
+ </message>
+ <message>
<source>Wireshark I/O Graphs: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -4420,6 +4455,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>点击选择图形的一部分。</translation>
</message>
<message>
+ <source>%1 Intervals </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Portable Document Format (*.pdf)</source>
<translation>便携式文档格式 (*.pdf)</translation>
</message>
@@ -7542,18 +7581,6 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<source>Path</source>
<translation>路径</translation>
</message>
- <message>
- <source>Scope</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Description</source>
- <translation type="unfinished">描述</translation>
- </message>
- <message>
- <source>Homepage</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>PortsModel</name>
@@ -7749,10 +7776,22 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>复制该配置文件。</translation>
</message>
<message>
+ <source>The number of packets or events to check for automatic profile switching.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Auto switch packet limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Configuration Profiles</source>
<translation>配置文件</translation>
</message>
<message>
+ <source>Auto switch event limit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Import</source>
<comment>noun</comment>
<translation type="unfinished">导入</translation>
@@ -7916,6 +7955,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Auto Switch Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>copy</source>
<comment>noun</comment>
<translation type="unfinished"></translation>
@@ -8275,6 +8318,10 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
<translation>窗口大小 (B)</translation>
</message>
<message>
+ <source>Unacked (Outstanding) Bytes (B)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>[no capture file]</source>
<translation>[无捕获文件]</translation>
</message>
@@ -8793,6 +8840,13 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
</context>
<context>
+ <name>ResizeHeaderView</name>
+ <message>
+ <source>Resize all %1 to contents</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>ResolvedAddressesDialog</name>
<message>
<source>Dialog</source>
@@ -9752,7 +9806,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Left + Right</source>
- <translation type="unfinished"></translation>
+ <translation>左 + 右</translation>
</message>
<message>
<source>To Right</source>
@@ -10063,7 +10117,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Shift+R</source>
- <translation type="unfinished"></translation>
+ <translation>Shift+R</translation>
</message>
<message>
<source>Find Only &amp;Singles</source>
@@ -10075,7 +10129,7 @@ For example, use 1 hour to have a new file created every hour on the hour.</sour
</message>
<message>
<source>Ctrl+R</source>
- <translation type="unfinished"></translation>
+ <translation>Ctrl+R</translation>
</message>
<message>
<source>Mark Packets</source>
@@ -14838,40 +14892,6 @@ a:hover {
<translation type="unfinished"></translation>
</message>
<message>
- <source>Install plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Binary plugin (*%1 *%1.[0-9]*)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error removing the old plugin from the personal plugin folder. You may need to close Wireshark first and then manually remove the file &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugins can execute arbitrary code as the current user. Make sure you trust it before installing.
-
-Continue installing the file &quot;%1&quot; to the personal plugin folder?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create the directory: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The file already exists. Do you want to overwrite it?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to copy the file to the destination: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Plugin &apos;%1&apos; installed successfully. You must restart the program to be able to use it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Show or hide the toolbar</source>
<translation>显示或隐藏该工具栏</translation>
</message>
@@ -15069,10 +15089,6 @@ Continue installing the file &quot;%1&quot; to the personal plugin folder?</sour
<translation>重新开始捕获前</translation>
</message>
<message>
- <source>Install Plugin</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Wiki Page for %1</source>
<translation>%1 的 Wiki 页面</translation>
</message>
diff --git a/ui/qt/wlan_statistics_dialog.cpp b/ui/qt/wlan_statistics_dialog.cpp
index 0fc529ea67..7166cbabd1 100644
--- a/ui/qt/wlan_statistics_dialog.cpp
+++ b/ui/qt/wlan_statistics_dialog.cpp
@@ -222,7 +222,7 @@ public:
} else if (wlan_hdr->stats.ssid_len == 1 && wlan_hdr->stats.ssid[0] == 0) {
ssid_text = QObject::tr("<Hidden>");
} else {
- gchar *str = format_text(NULL, (const char *)wlan_hdr->stats.ssid, wlan_hdr->stats.ssid_len);
+ char *str = format_text(NULL, (const char *)wlan_hdr->stats.ssid, wlan_hdr->stats.ssid_len);
ssid_text = str;
wmem_free(NULL, str);
}
@@ -293,7 +293,7 @@ public:
}
if (update_ssid) {
- gchar* str;
+ char* str;
ssid_ = QByteArray::fromRawData((const char *)wlan_hdr->stats.ssid, wlan_hdr->stats.ssid_len);
str = format_text(NULL, (const char *)wlan_hdr->stats.ssid, wlan_hdr->stats.ssid_len);
setText(col_ssid_, str);
@@ -571,7 +571,7 @@ tap_packet_status WlanStatisticsDialog::tapPacket(void *ws_dlg_ptr, _packet_info
const wlan_hdr_t *wlan_hdr = (const wlan_hdr_t *)wlan_hdr_ptr;
if (!ws_dlg || !wlan_hdr) return TAP_PACKET_DONT_REDRAW;
- guint16 frame_type = wlan_hdr->type & 0xff0;
+ uint16_t frame_type = wlan_hdr->type & 0xff0;
if (!((frame_type == 0x0) || (frame_type == 0x20) || (frame_type == 0x30))
|| ((frame_type == 0x20) && DATA_FRAME_IS_NULL(wlan_hdr->type))) {
/* Not a management or non null data or extension frame; let's skip it */
diff --git a/ui/recent.c b/ui/recent.c
index 8523fee8f5..c4c209e9a5 100644
--- a/ui/recent.c
+++ b/ui/recent.c
@@ -64,6 +64,7 @@
#define RECENT_GUI_GEOMETRY_MAIN_MASTER_SPLIT "gui.geometry_main_master_split"
#define RECENT_GUI_GEOMETRY_MAIN_EXTRA_SPLIT "gui.geometry_main_extra_split"
#define RECENT_LAST_USED_PROFILE "gui.last_used_profile"
+#define RECENT_PROFILE_SWITCH_CHECK_COUNT "gui.profile_switch_check_count"
#define RECENT_GUI_FILEOPEN_REMEMBERED_DIR "gui.fileopen_remembered_dir"
#define RECENT_GUI_CONVERSATION_TABS "gui.conversation_tabs"
#define RECENT_GUI_CONVERSATION_TABS_COLUMNS "gui.conversation_tabs_columns"
@@ -208,7 +209,7 @@ static const value_string show_bytes_decode_values[] = {
};
static void
-free_col_width_data(gpointer data)
+free_col_width_data(void *data)
{
col_width_data *cfmt = (col_width_data *)data;
g_free(cfmt);
@@ -228,7 +229,7 @@ recent_free_column_width_info(recent_settings_t *rs)
* @param rfh recent file handle (FILE)
*/
static void
-write_recent_geom(gpointer key _U_, gpointer value, gpointer rfh)
+write_recent_geom(void *key _U_, void *value, void *rfh)
{
window_geometry_t *geom = (window_geometry_t *)value;
FILE *rf = (FILE *)rfh;
@@ -242,9 +243,9 @@ write_recent_geom(gpointer key _U_, gpointer value, gpointer rfh)
fprintf(rf, RECENT_GUI_GEOMETRY "%s.height: %d\n", geom->key,
geom->height);
- fprintf(rf, "# TRUE or FALSE (case-insensitive).\n");
+ fprintf(rf, "# true or false (case-insensitive).\n");
fprintf(rf, RECENT_GUI_GEOMETRY "%s.maximized: %s\n", geom->key,
- geom->maximized == TRUE ? "TRUE" : "FALSE");
+ geom->maximized == true ? "true" : "false");
fprintf(rf, "# Qt Geometry State (hex byte string).\n");
fprintf(rf, RECENT_GUI_GEOMETRY "%s.qt_geometry: %s\n", geom->key,
@@ -253,9 +254,9 @@ write_recent_geom(gpointer key _U_, gpointer value, gpointer rfh)
/* the geometry hashtable for all known window classes,
* the window name is the key, and the geometry struct is the value */
-static GHashTable *window_geom_hash = NULL;
+static GHashTable *window_geom_hash;
-static GHashTable *window_splitter_hash = NULL;
+static GHashTable *window_splitter_hash;
void
window_geom_free(void *data)
@@ -268,9 +269,9 @@ window_geom_free(void *data)
/* save the window and its current geometry into the geometry hashtable */
void
-window_geom_save(const gchar *name, window_geometry_t *geom)
+window_geom_save(const char *name, window_geometry_t *geom)
{
- gchar *key;
+ char *key;
window_geometry_t *work;
/* init hashtable, if not already done */
@@ -287,8 +288,8 @@ window_geom_save(const gchar *name, window_geometry_t *geom)
}
/* load the desired geometry for this window from the geometry hashtable */
-gboolean
-window_geom_load(const gchar *name,
+bool
+window_geom_load(const char *name,
window_geometry_t *geom)
{
window_geometry_t *p;
@@ -301,9 +302,9 @@ window_geom_load(const gchar *name,
p = (window_geometry_t *)g_hash_table_lookup(window_geom_hash, name);
if (p) {
*geom = *p;
- return TRUE;
+ return true;
} else {
- return FALSE;
+ return false;
}
}
@@ -321,7 +322,7 @@ window_splitter_save(const char *name, const char *splitter_state)
/* save the window and its splitter state into the geometry hashtable */
const char*
-window_splitter_load(const gchar *name)
+window_splitter_load(const char *name)
{
/* init hashtable, if not already done */
if (!window_splitter_hash) {
@@ -334,13 +335,13 @@ window_splitter_load(const gchar *name)
/* parse values of particular types */
static void
-parse_recent_boolean(const gchar *val_str, gboolean *valuep)
+parse_recent_boolean(const char *val_str, bool *valuep)
{
if (g_ascii_strcasecmp(val_str, "true") == 0) {
- *valuep = TRUE;
+ *valuep = true;
}
else {
- *valuep = FALSE;
+ *valuep = false;
}
}
@@ -366,30 +367,30 @@ window_geom_recent_read_pair(const char *name,
if (!window_geom_load(name, &geom)) {
/* not in table, init geom with "basic" values */
geom.key = NULL; /* Will be set in window_geom_save() */
- geom.set_pos = FALSE;
+ geom.set_pos = false;
geom.x = -1;
geom.y = -1;
- geom.set_size = FALSE;
+ geom.set_size = false;
geom.width = -1;
geom.height = -1;
geom.qt_geom = NULL;
}
if (strcmp(key, "x") == 0) {
- geom.x = (gint)strtol(value, NULL, 10);
- geom.set_pos = TRUE;
+ geom.x = (int)strtol(value, NULL, 10);
+ geom.set_pos = true;
} else if (strcmp(key, "y") == 0) {
- geom.y = (gint)strtol(value, NULL, 10);
- geom.set_pos = TRUE;
+ geom.y = (int)strtol(value, NULL, 10);
+ geom.set_pos = true;
} else if (strcmp(key, "width") == 0) {
- geom.width = (gint)strtol(value, NULL, 10);
- geom.set_size = TRUE;
+ geom.width = (int)strtol(value, NULL, 10);
+ geom.set_size = true;
} else if (strcmp(key, "height") == 0) {
- geom.height = (gint)strtol(value, NULL, 10);
- geom.set_size = TRUE;
+ geom.height = (int)strtol(value, NULL, 10);
+ geom.set_size = true;
} else if (strcmp(key, "maximized") == 0) {
parse_recent_boolean(value, &geom.maximized);
- geom.set_maximized = TRUE;
+ geom.set_maximized = true;
} else if (strcmp(key, "qt_geometry") == 0) {
geom.qt_geom = g_strdup(value);
} else {
@@ -435,7 +436,7 @@ window_splitter_recent_write_all(FILE *rf)
}
GHashTableIter iter;
- gpointer key, value;
+ void *key, *value;
g_hash_table_iter_init(&iter, window_splitter_hash);
while (g_hash_table_iter_next(&iter, &key, &value)) {
fprintf(rf, "\n# Splitter state of %s window.\n", (char*)key);
@@ -459,7 +460,7 @@ static GHashTable *per_interface_cfilter_lists_hash;
* before the pref, so don't truncate the list when reading
* (see the similar #16782 for the recent files.)
*/
-static guint cfilter_combo_max_recent = 20;
+static unsigned cfilter_combo_max_recent = 20;
/**
* Returns a list of recent capture filters.
@@ -467,7 +468,7 @@ static guint cfilter_combo_max_recent = 20;
* @param ifname interface name; NULL refers to the global list.
*/
GList *
-recent_get_cfilter_list(const gchar *ifname)
+recent_get_cfilter_list(const char *ifname)
{
if (ifname == NULL)
return recent_cfilter_list;
@@ -486,11 +487,11 @@ recent_get_cfilter_list(const gchar *ifname)
* @param s text of capture filter
*/
void
-recent_add_cfilter(const gchar *ifname, const gchar *s)
+recent_add_cfilter(const char *ifname, const char *s)
{
GList *cfilter_list;
GList *li;
- gchar *li_filter, *newfilter = NULL;
+ char *li_filter, *newfilter = NULL;
/* Don't add empty filters to the list. */
if (s[0] == '\0')
@@ -538,8 +539,8 @@ recent_add_cfilter(const gchar *ifname, const gchar *s)
* before the pref, so don't truncate the list when reading
* (see the similar #16782 for the recent files.)
*/
-static guint remote_host_max_recent = 20;
-static GList *remote_host_list = NULL;
+static unsigned remote_host_max_recent = 20;
+static GList *remote_host_list;
int recent_get_remote_host_list_size(void)
{
@@ -551,7 +552,7 @@ int recent_get_remote_host_list_size(void)
}
static void
-free_remote_host(gpointer value)
+free_remote_host(void *value)
{
struct remote_host* rh = (struct remote_host*)value;
@@ -580,7 +581,7 @@ remote_host_reverse(void)
}
}
-void recent_add_remote_host(gchar *host _U_, struct remote_host *rh)
+void recent_add_remote_host(char *host _U_, struct remote_host *rh)
{
GList* li = NULL;
if (remote_host_list) {
@@ -594,7 +595,7 @@ void recent_add_remote_host(gchar *host _U_, struct remote_host *rh)
}
void
-recent_remote_host_list_foreach(GFunc func, gpointer user_data)
+recent_remote_host_list_foreach(GFunc func, void *user_data)
{
if (remote_host_list != NULL) {
g_list_foreach(remote_host_list, func, user_data);
@@ -602,7 +603,7 @@ recent_remote_host_list_foreach(GFunc func, gpointer user_data)
}
static void
-recent_print_remote_host(gpointer value, gpointer user)
+recent_print_remote_host(void *value, void *user)
{
FILE *rf = (FILE *)user;
struct remote_host_info *ri = (struct remote_host_info *)value;
@@ -636,7 +637,7 @@ void recent_free_remote_host_list(void)
}
struct remote_host *
-recent_get_remote_host(const gchar *host)
+recent_get_remote_host(const char *host)
{
if (host == NULL)
return NULL;
@@ -655,8 +656,8 @@ recent_get_remote_host(const gchar *host)
* @param s String to be filled from the 'recent' file.
* @return True, if the list was written successfully, False otherwise.
*/
-static gboolean
-capture_remote_combo_add_recent(const gchar *s)
+static bool
+capture_remote_combo_add_recent(const char *s)
{
GList *vals = prefs_get_string_list (s);
GList *valp = vals;
@@ -665,22 +666,22 @@ capture_remote_combo_add_recent(const gchar *s)
struct remote_host *rh;
if (valp == NULL)
- return FALSE;
+ return false;
/* First value is the host */
if (recent_get_remote_host(valp->data)) {
/* Don't add it, it's already in the list (shouldn't happen). */
- return FALSE; // Should this be TRUE or FALSE?
+ return false; // Should this be true or false?
}
rh = (struct remote_host *) g_malloc (sizeof (*rh));
/* First value is the host */
- rh->r_host = (gchar *)g_strdup ((const gchar *)valp->data);
+ rh->r_host = (char *)g_strdup ((const char *)valp->data);
if (strlen(rh->r_host) == 0) {
/* Empty remote host */
g_free(rh->r_host);
g_free(rh);
- return FALSE;
+ return false;
}
rh->auth_type = CAPTURE_AUTH_NULL;
valp = valp->next;
@@ -689,9 +690,9 @@ capture_remote_combo_add_recent(const gchar *s)
/* Found value 2, this is the port number */
if (!strcmp((const char*)valp->data, "0")) {
/* Port 0 isn't valid, so leave port blank */
- rh->remote_port = (gchar *)g_strdup ("");
+ rh->remote_port = (char *)g_strdup ("");
} else {
- rh->remote_port = (gchar *)g_strdup ((const gchar *)valp->data);
+ rh->remote_port = (char *)g_strdup ((const char *)valp->data);
}
valp = valp->next;
} else {
@@ -701,7 +702,7 @@ capture_remote_combo_add_recent(const gchar *s)
if (valp) {
/* Found value 3, this is the authentication type */
- auth_type = (capture_auth)strtol((const gchar *)valp->data, &p, 0);
+ auth_type = (capture_auth)strtol((const char *)valp->data, &p, 0);
if (p != valp->data && *p == '\0') {
rh->auth_type = auth_type;
}
@@ -714,14 +715,14 @@ capture_remote_combo_add_recent(const gchar *s)
prefs_clear_string_list(vals);
remote_host_list = g_list_prepend(remote_host_list, rh);
- return TRUE;
+ return true;
}
#endif
static void
-cfilter_recent_write_all_list(FILE *rf, const gchar *ifname, GList *cfilter_list)
+cfilter_recent_write_all_list(FILE *rf, const char *ifname, GList *cfilter_list)
{
- guint max_count = 0;
+ unsigned max_count = 0;
GList *li;
/* write all non empty capture filter strings to the recent file (until max count) */
@@ -738,9 +739,9 @@ cfilter_recent_write_all_list(FILE *rf, const gchar *ifname, GList *cfilter_list
}
static void
-cfilter_recent_write_all_hash_callback(gpointer key, gpointer value, gpointer user_data)
+cfilter_recent_write_all_hash_callback(void *key, void *value, void *user_data)
{
- cfilter_recent_write_all_list((FILE *)user_data, (const gchar *)key, (GList *)value);
+ cfilter_recent_write_all_list((FILE *)user_data, (const char *)key, (GList *)value);
}
/** Write all capture filter values to the recent file.
@@ -755,7 +756,7 @@ cfilter_recent_write_all(FILE *rf)
/* Write out all the per-interface lists. */
if (per_interface_cfilter_lists_hash != NULL) {
- g_hash_table_foreach(per_interface_cfilter_lists_hash, cfilter_recent_write_all_hash_callback, (gpointer)rf);
+ g_hash_table_foreach(per_interface_cfilter_lists_hash, cfilter_recent_write_all_hash_callback, (void *)rf);
}
}
@@ -772,7 +773,7 @@ cfilter_recent_reverse_all(void)
/* Reverse all the per-interface lists. */
if (per_interface_cfilter_lists_hash != NULL) {
GHashTableIter iter;
- gpointer key, value;
+ void *key, *value;
g_hash_table_iter_init(&iter, per_interface_cfilter_lists_hash);
GList *li;
while (g_hash_table_iter_next(&iter, &key, &value)) {
@@ -789,20 +790,20 @@ cfilter_recent_reverse_all(void)
/* Write out recent settings of particular types. */
static void
write_recent_boolean(FILE *rf, const char *description, const char *name,
- gboolean value)
+ bool value)
{
fprintf(rf, "\n# %s.\n", description);
- fprintf(rf, "# TRUE or FALSE (case-insensitive).\n");
- fprintf(rf, "%s: %s\n", name, value == TRUE ? "TRUE" : "FALSE");
+ fprintf(rf, "# true or false (case-insensitive).\n");
+ fprintf(rf, "%s: %s\n", name, value == true ? "true" : "false");
}
static void
write_recent_enum(FILE *rf, const char *description, const char *name,
- const value_string *values, guint value)
+ const value_string *values, unsigned value)
{
const char *if_invalid = NULL;
const value_string *valp;
- const gchar *str_value;
+ const char *str_value;
fprintf(rf, "\n# %s.\n", description);
fprintf(rf, "# One of: ");
@@ -824,9 +825,9 @@ write_recent_enum(FILE *rf, const char *description, const char *name,
}
/* Attempt to write out "recent common" to the user's recent_common file.
- If we got an error report it with a dialog box and return FALSE,
- otherwise return TRUE. */
-gboolean
+ If we got an error report it with a dialog box and return false,
+ otherwise return true. */
+bool
write_recent(void)
{
char *pf_dir_path;
@@ -847,16 +848,16 @@ write_recent(void)
"Can't create directory\n\"%s\"\nfor recent file: %s.", pf_dir_path,
g_strerror(errno));
g_free(pf_dir_path);
- return FALSE;
+ return false;
}
- rf_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, FALSE);
+ rf_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, false);
if ((rf = ws_fopen(rf_path, "w")) == NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Can't open recent file\n\"%s\": %s.", rf_path,
g_strerror(errno));
g_free(rf_path);
- return FALSE;
+ return false;
}
g_free(rf_path);
@@ -920,6 +921,12 @@ write_recent(void)
fprintf(rf, "\n# Last used Configuration Profile.\n");
fprintf(rf, RECENT_LAST_USED_PROFILE ": %s\n", get_profile_name());
+ fprintf(rf, "\n# Number of packets or events to check for automatic profile switching.\n");
+ fprintf(rf, "# Decimal number. Zero disables switching.\n");
+ const char * def_prefix = recent.gui_profile_switch_check_count == 1000 ? "#" : "";
+ fprintf(rf, "%s" RECENT_PROFILE_SWITCH_CHECK_COUNT ": %d\n", def_prefix,
+ recent.gui_profile_switch_check_count);
+
write_recent_boolean(rf, "Warn if running with elevated permissions (e.g. as root)",
RECENT_KEY_PRIVS_WARN_IF_ELEVATED,
recent.privs_warn_if_elevated);
@@ -958,14 +965,14 @@ write_recent(void)
an error indication, or maybe write to a new recent file and
rename that file on top of the old one only if there are not I/O
errors. */
- return TRUE;
+ return true;
}
/* Attempt to Write out profile "recent" to the user's profile recent file.
- If we got an error report it with a dialog box and return FALSE,
- otherwise return TRUE. */
-gboolean
+ If we got an error report it with a dialog box and return false,
+ otherwise return true. */
+bool
write_profile_recent(void)
{
char *pf_dir_path;
@@ -986,16 +993,16 @@ write_profile_recent(void)
"Can't create directory\n\"%s\"\nfor recent file: %s.", pf_dir_path,
g_strerror(errno));
g_free(pf_dir_path);
- return FALSE;
+ return false;
}
- rf_path = get_persconffile_path(RECENT_FILE_NAME, TRUE);
+ rf_path = get_persconffile_path(RECENT_FILE_NAME, true);
if ((rf = ws_fopen(rf_path, "w")) == NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Can't open recent file\n\"%s\": %s.", rf_path,
g_strerror(errno));
g_free(rf_path);
- return FALSE;
+ return false;
}
g_free(rf_path);
@@ -1069,7 +1076,7 @@ write_profile_recent(void)
{
const char *if_invalid = NULL;
const value_string *valp;
- const gchar *str_value;
+ const char *str_value;
fprintf(rf, "\n# %s.\n", "Timestamp display precision");
fprintf(rf, "# One of: ");
@@ -1220,14 +1227,14 @@ write_profile_recent(void)
an error indication, or maybe write to a new recent file and
rename that file on top of the old one only if there are not I/O
errors. */
- return TRUE;
+ return true;
}
/* set one user's recent common file key/value pair */
static prefs_set_pref_e
-read_set_recent_common_pair_static(gchar *key, const gchar *value,
+read_set_recent_common_pair_static(char *key, const char *value,
void *private_data _U_,
- gboolean return_range_errors _U_)
+ bool return_range_errors _U_)
{
long num;
char *p;
@@ -1240,33 +1247,40 @@ read_set_recent_common_pair_static(gchar *key, const gchar *value,
num = strtol(value, &p, 0);
if (p == value || *p != '\0')
return PREFS_SET_SYNTAX_ERR; /* number was bad */
- recent.gui_geometry_main_x = (gint)num;
+ recent.gui_geometry_main_x = (int)num;
} else if (strcmp(key, RECENT_GUI_GEOMETRY_MAIN_Y) == 0) {
num = strtol(value, &p, 0);
if (p == value || *p != '\0')
return PREFS_SET_SYNTAX_ERR; /* number was bad */
- recent.gui_geometry_main_y = (gint)num;
+ recent.gui_geometry_main_y = (int)num;
} else if (strcmp(key, RECENT_GUI_GEOMETRY_MAIN_WIDTH) == 0) {
num = strtol(value, &p, 0);
if (p == value || *p != '\0')
return PREFS_SET_SYNTAX_ERR; /* number was bad */
if (num <= 0)
return PREFS_SET_SYNTAX_ERR; /* number must be positive */
- recent.gui_geometry_main_width = (gint)num;
+ recent.gui_geometry_main_width = (int)num;
} else if (strcmp(key, RECENT_GUI_GEOMETRY_MAIN_HEIGHT) == 0) {
num = strtol(value, &p, 0);
if (p == value || *p != '\0')
return PREFS_SET_SYNTAX_ERR; /* number was bad */
if (num <= 0)
return PREFS_SET_SYNTAX_ERR; /* number must be positive */
- recent.gui_geometry_main_height = (gint)num;
+ recent.gui_geometry_main_height = (int)num;
} else if (strcmp(key, RECENT_GUI_GEOMETRY_MAIN) == 0) {
g_free(recent.gui_geometry_main);
recent.gui_geometry_main = g_strdup(value);
} else if (strcmp(key, RECENT_LAST_USED_PROFILE) == 0) {
- if ((strcmp(value, DEFAULT_PROFILE) != 0) && profile_exists (value, FALSE)) {
+ if ((strcmp(value, DEFAULT_PROFILE) != 0) && profile_exists (value, false)) {
set_profile_name (value);
}
+ } else if (strcmp(key, RECENT_PROFILE_SWITCH_CHECK_COUNT) == 0) {
+ num = strtol(value, &p, 0);
+ if (p == value || *p != '\0')
+ return PREFS_SET_SYNTAX_ERR; /* number was bad */
+ if (num <= 0)
+ return PREFS_SET_SYNTAX_ERR; /* number must be positive */
+ recent.gui_profile_switch_check_count = (int)num;
} else if (strncmp(key, RECENT_GUI_GEOMETRY, sizeof(RECENT_GUI_GEOMETRY)-1) == 0) {
/* now have something like "gui.geom.main.x", split it into win and sub_key */
char *win = &key[sizeof(RECENT_GUI_GEOMETRY)-1];
@@ -1301,12 +1315,12 @@ read_set_recent_common_pair_static(gchar *key, const gchar *value,
/* set one user's recent file key/value pair */
static prefs_set_pref_e
-read_set_recent_pair_static(gchar *key, const gchar *value,
+read_set_recent_pair_static(char *key, const char *value,
void *private_data _U_,
- gboolean return_range_errors _U_)
+ bool return_range_errors _U_)
{
long num;
- gint32 num_int32;
+ int32_t num_int32;
char *p;
GList *col_l, *col_l_elt;
col_width_data *cfmt;
@@ -1365,7 +1379,7 @@ read_set_recent_pair_static(gchar *key, const gchar *value,
num = strtol(value, &p, 0);
if (p == value || *p != '\0')
return PREFS_SET_SYNTAX_ERR; /* number was bad */
- recent.gui_zoom_level = (gint)num;
+ recent.gui_zoom_level = (int)num;
} else if (strcmp(key, RECENT_GUI_BYTES_VIEW) == 0) {
recent.gui_bytes_view =
(bytes_view_type)str_to_val(value, bytes_view_type_values, BYTES_HEX);
@@ -1390,14 +1404,14 @@ read_set_recent_pair_static(gchar *key, const gchar *value,
return PREFS_SET_SYNTAX_ERR; /* number was bad */
if (num <= 0)
return PREFS_SET_SYNTAX_ERR; /* number must be positive */
- recent.gui_geometry_main_upper_pane = (gint)num;
+ recent.gui_geometry_main_upper_pane = (int)num;
} else if (strcmp(key, RECENT_GUI_GEOMETRY_MAIN_LOWER_PANE) == 0) {
num = strtol(value, &p, 0);
if (p == value || *p != '\0')
return PREFS_SET_SYNTAX_ERR; /* number was bad */
if (num <= 0)
return PREFS_SET_SYNTAX_ERR; /* number must be positive */
- recent.gui_geometry_main_lower_pane = (gint)num;
+ recent.gui_geometry_main_lower_pane = (int)num;
} else if (strcmp(key, RECENT_GUI_GEOMETRY_MAIN_MASTER_SPLIT) == 0) {
g_free(recent.gui_geometry_main_master_split);
recent.gui_geometry_main_master_split = g_strdup(value);
@@ -1446,7 +1460,7 @@ read_set_recent_pair_static(gchar *key, const gchar *value,
* still written for backwards compatibility.
*/
col_l_elt = col_l_elt->next;
- cfmt->width = (gint)strtol((const char *)col_l_elt->data, &p, 0);
+ cfmt->width = (int)strtol((const char *)col_l_elt->data, &p, 0);
if (p == col_l_elt->data || (*p != '\0' && *p != ':')) {
g_free(cfmt);
return PREFS_SET_SYNTAX_ERR; /* number was bad */
@@ -1479,9 +1493,9 @@ read_set_recent_pair_static(gchar *key, const gchar *value,
/* set one user's recent file key/value pair */
static prefs_set_pref_e
-read_set_recent_pair_dynamic(gchar *key, const gchar *value,
+read_set_recent_pair_dynamic(char *key, const char *value,
void *private_data _U_,
- gboolean return_range_errors _U_)
+ bool return_range_errors _U_)
{
if (!g_utf8_validate(value, -1, NULL)) {
return PREFS_SET_SYNTAX_ERR;
@@ -1514,7 +1528,7 @@ read_set_recent_pair_dynamic(gchar *key, const gchar *value,
int
recent_set_arg(char *prefarg)
{
- gchar *p, *colonp;
+ char *p, *colonp;
int ret;
colonp = strchr(prefarg, ':');
@@ -1541,14 +1555,14 @@ recent_set_arg(char *prefarg)
return PREFS_SET_SYNTAX_ERR;
}
- ret = read_set_recent_pair_static(prefarg, p, NULL, TRUE);
+ ret = read_set_recent_pair_static(prefarg, p, NULL, true);
*colonp = ':'; /* put the colon back */
return ret;
}
/* opens the user's recent common file and read the first part */
-gboolean
+bool
recent_read_static(char **rf_path_return, int *rf_errno_return)
{
char *rf_path;
@@ -1559,21 +1573,22 @@ recent_read_static(char **rf_path_return, int *rf_errno_return)
recent.gui_geometry_main_y = 20;
recent.gui_geometry_main_width = DEF_WIDTH;
recent.gui_geometry_main_height = DEF_HEIGHT;
- recent.gui_geometry_main_maximized= FALSE;
+ recent.gui_geometry_main_maximized= false;
- recent.gui_geometry_leftalign_actions = FALSE;
+ recent.gui_geometry_leftalign_actions = false;
- recent.privs_warn_if_elevated = TRUE;
- recent.sys_warn_if_no_capture = TRUE;
+ recent.privs_warn_if_elevated = true;
+ recent.sys_warn_if_no_capture = true;
recent.col_width_list = NULL;
recent.gui_geometry_main = NULL;
recent.gui_geometry_main_master_split = NULL;
recent.gui_geometry_main_extra_split = NULL;
+ recent.gui_profile_switch_check_count = 1000;
recent.gui_fileopen_remembered_dir = NULL;
/* Construct the pathname of the user's recent common file. */
- rf_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, FALSE);
+ rf_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, false);
/* Read the user's recent common file, if it exists. */
*rf_path_return = NULL;
@@ -1589,40 +1604,40 @@ recent_read_static(char **rf_path_return, int *rf_errno_return)
if (errno != ENOENT) {
*rf_errno_return = errno;
*rf_path_return = rf_path;
- return FALSE;
+ return false;
}
}
g_free(rf_path);
- return TRUE;
+ return true;
}
/* opens the user's recent file and read the first part */
-gboolean
+bool
recent_read_profile_static(char **rf_path_return, int *rf_errno_return)
{
char *rf_path, *rf_common_path;
FILE *rf;
/* set defaults */
- recent.main_toolbar_show = TRUE;
- recent.filter_toolbar_show = TRUE;
- recent.wireless_toolbar_show = FALSE;
- recent.packet_list_show = TRUE;
- recent.tree_view_show = TRUE;
- recent.byte_view_show = TRUE;
- recent.packet_diagram_show = TRUE;
- recent.statusbar_show = TRUE;
- recent.packet_list_colorize = TRUE;
- recent.capture_auto_scroll = TRUE;
+ recent.main_toolbar_show = true;
+ recent.filter_toolbar_show = true;
+ recent.wireless_toolbar_show = false;
+ recent.packet_list_show = true;
+ recent.tree_view_show = true;
+ recent.byte_view_show = true;
+ recent.packet_diagram_show = true;
+ recent.statusbar_show = true;
+ recent.packet_list_colorize = true;
+ recent.capture_auto_scroll = true;
recent.gui_time_format = TS_RELATIVE;
recent.gui_time_precision = TS_PREC_AUTO;
recent.gui_seconds_format = TS_SECONDS_DEFAULT;
recent.gui_zoom_level = 0;
recent.gui_bytes_view = BYTES_HEX;
recent.gui_bytes_encoding = BYTES_ENC_FROM_PACKET;
- recent.gui_allow_hover_selection = TRUE;
+ recent.gui_allow_hover_selection = true;
recent.gui_follow_show = SHOW_ASCII;
recent.gui_follow_delta = FOLLOW_DELTA_NONE;
recent.gui_show_bytes_decode = DecodeAsNone;
@@ -1666,7 +1681,7 @@ recent_read_profile_static(char **rf_path_return, int *rf_errno_return)
}
/* Construct the pathname of the user's profile recent file. */
- rf_path = get_persconffile_path(RECENT_FILE_NAME, TRUE);
+ rf_path = get_persconffile_path(RECENT_FILE_NAME, true);
/* Read the user's recent file, if it exists. */
*rf_path_return = NULL;
@@ -1683,7 +1698,7 @@ recent_read_profile_static(char **rf_path_return, int *rf_errno_return)
* know what's supposed to happen at this point.
* ToDo: Determine if the "recent common file" should be read at this point
*/
- rf_common_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, FALSE);
+ rf_common_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, false);
if (!file_exists(rf_common_path)) {
/* Read older common settings from recent file */
rf = ws_fopen(rf_path, "r");
@@ -1698,15 +1713,15 @@ recent_read_profile_static(char **rf_path_return, int *rf_errno_return)
if (errno != ENOENT) {
*rf_errno_return = errno;
*rf_path_return = rf_path;
- return FALSE;
+ return false;
}
}
g_free(rf_path);
- return TRUE;
+ return true;
}
/* opens the user's recent file and read it out */
-gboolean
+bool
recent_read_dynamic(char **rf_path_return, int *rf_errno_return)
{
char *rf_path;
@@ -1714,11 +1729,11 @@ recent_read_dynamic(char **rf_path_return, int *rf_errno_return)
/* Construct the pathname of the user's recent common file. */
- rf_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, FALSE);
+ rf_path = get_persconffile_path(RECENT_COMMON_FILE_NAME, false);
if (!file_exists (rf_path)) {
/* Recent common file does not exist, read from default recent */
g_free (rf_path);
- rf_path = get_persconffile_path(RECENT_FILE_NAME, FALSE);
+ rf_path = get_persconffile_path(RECENT_FILE_NAME, false);
}
/* Read the user's recent file, if it exists. */
@@ -1745,11 +1760,11 @@ recent_read_dynamic(char **rf_path_return, int *rf_errno_return)
if (errno != ENOENT) {
*rf_errno_return = errno;
*rf_path_return = rf_path;
- return FALSE;
+ return false;
}
}
g_free(rf_path);
- return TRUE;
+ return true;
}
void
@@ -1780,51 +1795,87 @@ recent_remove_column(int col)
recent.col_width_list = g_list_delete_link(recent.col_width_list, col_l);
}
-gint
-recent_get_column_width(gint col)
+int
+recent_get_column_width(int col)
{
col_width_data *col_w;
col_w = g_list_nth_data(recent.col_width_list, col);
if (col_w) {
return col_w->width;
+ } else {
+ /* Make sure the recent column list isn't out of sync with the
+ * number of columns (e.g., for a brand new profile.)
+ */
+ for (unsigned colnr = g_list_length(recent.col_width_list); colnr < g_list_length(prefs.col_list); colnr++) {
+ recent_insert_column(colnr);
+ }
}
return -1;
}
void
-recent_set_column_width(gint col, gint width)
+recent_set_column_width(int col, int width)
{
col_width_data *col_w;
col_w = g_list_nth_data(recent.col_width_list, col);
if (col_w) {
col_w->width = width;
+ } else {
+ /* Make sure the recent column list isn't out of sync with the
+ * number of columns (e.g., for a brand new profile.)
+ */
+ for (unsigned colnr = g_list_length(recent.col_width_list); colnr < g_list_length(prefs.col_list); colnr++) {
+ recent_insert_column(colnr);
+ }
+ col_w = g_list_nth_data(recent.col_width_list, col);
+ if (col_w) {
+ col_w->width = width;
+ }
}
}
-gchar
-recent_get_column_xalign(gint col)
+char
+recent_get_column_xalign(int col)
{
col_width_data *col_w;
col_w = g_list_nth_data(recent.col_width_list, col);
if (col_w) {
return col_w->xalign;
+ } else {
+ /* Make sure the recent column list isn't out of sync with the
+ * number of columns (e.g., for a brand new profile.)
+ */
+ for (unsigned colnr = g_list_length(recent.col_width_list); colnr < g_list_length(prefs.col_list); colnr++) {
+ recent_insert_column(colnr);
+ }
}
return COLUMN_XALIGN_DEFAULT;
}
void
-recent_set_column_xalign(gint col, gchar xalign)
+recent_set_column_xalign(int col, char xalign)
{
col_width_data *col_w;
col_w = g_list_nth_data(recent.col_width_list, col);
if (col_w) {
col_w->xalign = xalign;
+ } else {
+ /* Make sure the recent column list isn't out of sync with the
+ * number of columns (e.g., for a brand new profile.)
+ */
+ for (unsigned colnr = g_list_length(recent.col_width_list); colnr < g_list_length(prefs.col_list); colnr++) {
+ recent_insert_column(colnr);
+ }
+ col_w = g_list_nth_data(recent.col_width_list, col);
+ if (col_w) {
+ col_w->xalign = xalign;
+ }
}
}
diff --git a/ui/recent.h b/ui/recent.h
index 09139d1cc4..07163dbda2 100644
--- a/ui/recent.h
+++ b/ui/recent.h
@@ -41,8 +41,8 @@ extern "C" {
#define RECENT_KEY_REMOTE_HOST "recent.remote_host"
typedef struct _col_width_data {
- gint width;
- gchar xalign;
+ int width;
+ char xalign;
} col_width_data;
/** Defines used in col_width_data.xalign */
@@ -117,58 +117,59 @@ typedef enum {
/** Recent settings. */
typedef struct recent_settings_tag {
- gboolean main_toolbar_show;
- gboolean filter_toolbar_show;
- gboolean wireless_toolbar_show;
- gboolean packet_list_show;
- gboolean tree_view_show;
- gboolean byte_view_show;
- gboolean packet_diagram_show;
- gboolean statusbar_show;
- gboolean packet_list_colorize;
- gboolean capture_auto_scroll;
+ bool main_toolbar_show;
+ bool filter_toolbar_show;
+ bool wireless_toolbar_show;
+ bool packet_list_show;
+ bool tree_view_show;
+ bool byte_view_show;
+ bool packet_diagram_show;
+ bool statusbar_show;
+ bool packet_list_colorize;
+ bool capture_auto_scroll;
ts_type gui_time_format;
- gint gui_time_precision;
+ int gui_time_precision;
ts_seconds_type gui_seconds_format;
- gint gui_zoom_level;
+ int gui_zoom_level;
bytes_view_type gui_bytes_view;
bytes_encoding_type gui_bytes_encoding;
- gboolean gui_packet_diagram_field_values;
- gboolean gui_allow_hover_selection;
+ bool gui_packet_diagram_field_values;
+ bool gui_allow_hover_selection;
search_in_type gui_search_in;
search_char_set_type gui_search_char_set;
- gboolean gui_search_case_sensitive;
- gboolean gui_search_reverse_dir;
- gboolean gui_search_multiple_occurs;
+ bool gui_search_case_sensitive;
+ bool gui_search_reverse_dir;
+ bool gui_search_multiple_occurs;
search_type_type gui_search_type;
bytes_show_type gui_follow_show;
follow_delta_type gui_follow_delta;
bytes_decode_type gui_show_bytes_decode;
bytes_show_type gui_show_bytes_show;
- gint gui_geometry_main_x;
- gint gui_geometry_main_y;
- gint gui_geometry_main_width;
- gint gui_geometry_main_height;
-
- gboolean gui_geometry_main_maximized;
- gboolean gui_geometry_leftalign_actions;
-
- gint gui_geometry_main_upper_pane;
- gint gui_geometry_main_lower_pane;
- gchar *gui_geometry_main;
- gchar *gui_geometry_main_master_split;
- gchar *gui_geometry_main_extra_split;
- gboolean privs_warn_if_elevated;
- gboolean sys_warn_if_no_capture;
+ int gui_geometry_main_x;
+ int gui_geometry_main_y;
+ int gui_geometry_main_width;
+ int gui_geometry_main_height;
+
+ bool gui_geometry_main_maximized;
+ bool gui_geometry_leftalign_actions;
+
+ int gui_geometry_main_upper_pane;
+ int gui_geometry_main_lower_pane;
+ char *gui_geometry_main;
+ char *gui_geometry_main_master_split;
+ char *gui_geometry_main_extra_split;
+ bool privs_warn_if_elevated;
+ bool sys_warn_if_no_capture;
GList *col_width_list; /* column widths */
GList *conversation_tabs; /* enabled conversation dialog tabs */
GList *conversation_tabs_columns; /* save the columns for conversation dialogs */
GList *endpoint_tabs; /* enabled endpoint dialog tabs */
GList *endpoint_tabs_columns; /* save the columns for endpoint dialogs */
- gchar *gui_fileopen_remembered_dir; /* folder of last capture loaded in File Open dialog */
- gboolean gui_rlc_use_pdus_from_mac;
+ int gui_profile_switch_check_count; /* number of packets / events to check for automatic profile switching */
+ char *gui_fileopen_remembered_dir; /* folder of last capture loaded in File Open dialog */
+ bool gui_rlc_use_pdus_from_mac;
GList *custom_colors;
GList *gui_additional_toolbars;
GList *interface_toolbars;
@@ -185,39 +186,39 @@ extern void recent_cleanup(void);
/** Write recent_common settings file.
*
- * @return TRUE if succeeded, FALSE if failed
+ * @return true if succeeded, false if failed
*/
-extern gboolean write_recent(void);
+extern bool write_recent(void);
/** Write profile recent settings file.
*
- * @return TRUE if succeeded, FALSE if failed
+ * @return true if succeeded, false if failed
*/
-extern gboolean write_profile_recent(void);
+extern bool write_profile_recent(void);
/** Read recent settings file (static part).
*
* @param rf_path_return path to recent file if function failed
* @param rf_errno_return if failed
- * @return TRUE if succeeded, FALSE if failed (check parameters for reason).
+ * @return true if succeeded, false if failed (check parameters for reason).
*/
-extern gboolean recent_read_static(char **rf_path_return, int *rf_errno_return);
+extern bool recent_read_static(char **rf_path_return, int *rf_errno_return);
/** Read profile recent settings file (static part).
*
* @param rf_path_return path to recent file if function failed
* @param rf_errno_return if failed
- * @return TRUE if succeeded, FALSE if failed (check parameters for reason).
+ * @return true if succeeded, false if failed (check parameters for reason).
*/
-extern gboolean recent_read_profile_static(char **rf_path_return, int *rf_errno_return);
+extern bool recent_read_profile_static(char **rf_path_return, int *rf_errno_return);
/** Read recent settings file (dynamic part).
*
* @param rf_path_return path to recent file if function failed
* @param rf_errno_return if failed
- * @return TRUE if succeeded, FALSE if failed (check parameters for reason).
+ * @return true if succeeded, false if failed (check parameters for reason).
*/
-extern gboolean recent_read_dynamic(char **rf_path_return, int *rf_errno_return);
+extern bool recent_read_dynamic(char **rf_path_return, int *rf_errno_return);
/**
* Given a -o command line string, parse it and set the recent value in
@@ -256,33 +257,33 @@ extern void recent_remove_column(int col);
*
* @param col column number
*/
-extern gint recent_get_column_width(gint col);
+extern int recent_get_column_width(int col);
/** Set the column width for the given column
*
* @param col column number
* @param width column width
*/
-extern void recent_set_column_width(gint col, gint width);
+extern void recent_set_column_width(int col, int width);
/** Get the column xalign for the given column
*
* @param col column number
*/
-extern gchar recent_get_column_xalign(gint col);
+extern char recent_get_column_xalign(int col);
/** Set the column xalign for the given column
*
* @param col column number
* @param xalign column alignment
*/
-extern void recent_set_column_xalign(gint col, gchar xalign);
+extern void recent_set_column_xalign(int col, char xalign);
/* save the window and its current geometry into the geometry hashtable */
-extern void window_geom_save(const gchar *name, window_geometry_t *geom);
+extern void window_geom_save(const char *name, window_geometry_t *geom);
/* load the desired geometry for this window from the geometry hashtable */
-extern gboolean window_geom_load(const gchar *name, window_geometry_t *geom);
+extern bool window_geom_load(const char *name, window_geometry_t *geom);
extern void window_splitter_save(const char *name, const char *splitter_state);
@@ -293,7 +294,7 @@ extern const char * window_splitter_load(const char *name);
*
* @param ifname interface name; NULL refers to the global list.
*/
-extern GList *recent_get_cfilter_list(const gchar *ifname);
+extern GList *recent_get_cfilter_list(const char *ifname);
/**
* Add a capture filter to the global recent capture filter list or
@@ -302,7 +303,7 @@ extern GList *recent_get_cfilter_list(const gchar *ifname);
* @param ifname interface name; NULL refers to the global list.
* @param s text of capture filter
*/
-extern void recent_add_cfilter(const gchar *ifname, const gchar *s);
+extern void recent_add_cfilter(const char *ifname, const char *s);
/**
* Get the value of an entry for a remote host from the remote host list.
@@ -311,7 +312,7 @@ extern void recent_add_cfilter(const gchar *ifname, const gchar *s);
*
* @return pointer to the entry for the remote host.
*/
-extern struct remote_host *recent_get_remote_host(const gchar *host);
+extern struct remote_host *recent_get_remote_host(const char *host);
/**
* Get the number of entries of the remote host list.
@@ -327,7 +328,7 @@ extern int recent_get_remote_host_list_size(void);
* @param func function to be called
* @param user_data argument to pass as user data to the function
*/
-extern void recent_remote_host_list_foreach(GFunc func, gpointer user_data);
+extern void recent_remote_host_list_foreach(GFunc func, void *user_data);
/**
* Free all entries of the remote host list.
@@ -340,7 +341,7 @@ extern void recent_free_remote_host_list(void);
* @param host Key of the entry
* @param rh Value of the entry
*/
-extern void recent_add_remote_host(gchar *host, struct remote_host *rh);
+extern void recent_add_remote_host(char *host, struct remote_host *rh);
#ifdef __cplusplus
}
diff --git a/ui/recent_utils.h b/ui/recent_utils.h
index 466555e073..2d3fc7b136 100644
--- a/ui/recent_utils.h
+++ b/ui/recent_utils.h
@@ -26,7 +26,7 @@ extern "C" {
* file is read before the prefs file. (It will be corrected later when
* prefs are read.)
*/
-extern void add_menu_recent_capture_file(const gchar *cf_name, bool force);
+extern void add_menu_recent_capture_file(const char *cf_name, bool force);
/** Write all recent capture filenames to the user's recent file.
* @param rf recent file
@@ -44,7 +44,7 @@ extern void cfilter_combo_recent_write_all(FILE *rf);
*
* @param dftext the filter string
*/
-extern gboolean dfilter_combo_add_recent(const gchar *dftext);
+extern bool dfilter_combo_add_recent(const char *dftext);
/** Write all non-empty display filters (until maximum count)
* of the combo box GList to the user's recent file.
diff --git a/ui/rtp_media.c b/ui/rtp_media.c
index 1a52dc0e49..e79f3a7fdb 100644
--- a/ui/rtp_media.c
+++ b/ui/rtp_media.c
@@ -14,7 +14,7 @@
#include "config.h"
-#include <wsutil/codecs_priv.h>
+#include <wsutil/codecs.h>
#include <epan/rtp_pt.h>
#include <epan/dissectors/packet-rtp.h>
@@ -36,9 +36,9 @@ typedef struct _rtp_decoder_t {
*/
size_t
-decode_rtp_packet_payload(guint8 payload_type, const gchar *payload_type_str, int payload_rate, int payload_channels, wmem_map_t *payload_fmtp_map, guint8 *payload_data, size_t payload_len, SAMPLE **out_buff, GHashTable *decoders_hash, guint *channels_ptr, guint *sample_rate_ptr)
+decode_rtp_packet_payload(uint8_t payload_type, const char *payload_type_str, int payload_rate, int payload_channels, wmem_map_t *payload_fmtp_map, uint8_t *payload_data, size_t payload_len, SAMPLE **out_buff, GHashTable *decoders_hash, unsigned *channels_ptr, unsigned *sample_rate_ptr)
{
- const gchar *p;
+ const char *p;
rtp_decoder_t *decoder;
SAMPLE *tmp_buff = NULL;
size_t tmp_buff_len;
@@ -96,9 +96,9 @@ decode_rtp_packet_payload(guint8 payload_type, const gchar *payload_type_str, in
*/
size_t
-decode_rtp_packet(rtp_packet_t *rp, SAMPLE **out_buff, GHashTable *decoders_hash, guint *channels_ptr, guint *sample_rate_ptr)
+decode_rtp_packet(rtp_packet_t *rp, SAMPLE **out_buff, GHashTable *decoders_hash, unsigned *channels_ptr, unsigned *sample_rate_ptr)
{
- guint8 payload_type;
+ uint8_t payload_type;
if ((rp->payload_data == NULL) || (rp->info->info_payload_len == 0) ) {
return 0;
@@ -111,7 +111,7 @@ decode_rtp_packet(rtp_packet_t *rp, SAMPLE **out_buff, GHashTable *decoders_hash
/****************************************************************************/
static void
-rtp_decoder_value_destroy(gpointer dec_arg)
+rtp_decoder_value_destroy(void *dec_arg)
{
rtp_decoder_t *dec = (rtp_decoder_t *)dec_arg;
diff --git a/ui/rtp_media.h b/ui/rtp_media.h
index 2de2a853c6..6a6b144211 100644
--- a/ui/rtp_media.h
+++ b/ui/rtp_media.h
@@ -31,18 +31,18 @@ extern "C" {
/* INTERFACE */
/****************************************************************************/
-typedef gint16 SAMPLE;
-#define SAMPLE_MAX G_MAXINT16
-#define SAMPLE_MIN G_MININT16
+typedef int16_t SAMPLE;
+#define SAMPLE_MAX INT16_MAX
+#define SAMPLE_MIN INT16_MIN
#define SAMPLE_NaN SAMPLE_MIN
#define SAMPLE_BYTES (sizeof(SAMPLE) / sizeof(char))
/* Defines an RTP packet */
typedef struct _rtp_packet {
- guint32 frame_num; /* Qt only */
+ uint32_t frame_num; /* Qt only */
struct _rtp_info *info; /* the RTP dissected info */
double arrive_offset; /* arrive offset time since the beginning of the stream as ms in GTK UI and s in Qt UI */
- guint8* payload_data;
+ uint8_t* payload_data;
} rtp_packet_t;
/** Create a new hash table.
@@ -70,7 +70,7 @@ GHashTable *rtp_decoder_hash_table_new(void);
* @param sample_rate_ptr If non-NULL, receives the sample rate.
* @return The number of decoded bytes on success, 0 on failure.
*/
-size_t decode_rtp_packet_payload(guint8 payload_type, const gchar *payload_type_str, int payload_rate, int payload_channels, wmem_map_t *payload_fmtp_map, guint8 *payload_data, size_t payload_len, SAMPLE **out_buff, GHashTable *decoders_hash, guint *channels_ptr, guint *sample_rate_ptr);
+size_t decode_rtp_packet_payload(uint8_t payload_type, const char *payload_type_str, int payload_rate, int payload_channels, wmem_map_t *payload_fmtp_map, uint8_t *payload_data, size_t payload_len, SAMPLE **out_buff, GHashTable *decoders_hash, unsigned *channels_ptr, unsigned *sample_rate_ptr);
/** Decode an RTP packet
*
@@ -81,7 +81,7 @@ size_t decode_rtp_packet_payload(guint8 payload_type, const gchar *payload_type_
* @param sample_rate_ptr If non-NULL, receives the sample rate.
* @return The number of decoded bytes on success, 0 on failure.
*/
-size_t decode_rtp_packet(rtp_packet_t *rp, SAMPLE **out_buff, GHashTable *decoders_hash, guint *channels_ptr, guint *sample_rate_ptr);
+size_t decode_rtp_packet(rtp_packet_t *rp, SAMPLE **out_buff, GHashTable *decoders_hash, unsigned *channels_ptr, unsigned *sample_rate_ptr);
#ifdef __cplusplus
}
diff --git a/ui/rtp_stream.c b/ui/rtp_stream.c
index 2dc2393cf5..949195cb79 100644
--- a/ui/rtp_stream.c
+++ b/ui/rtp_stream.c
@@ -45,7 +45,7 @@ show_tap_registration_error(GString *error_string)
/* scan for RTP streams */
void rtpstream_scan(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, const char *fstring)
{
- gboolean was_registered;
+ bool was_registered;
if (!tapinfo || !cap_file) {
return;
@@ -66,12 +66,12 @@ void rtpstream_scan(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, const
/****************************************************************************/
/* save rtp dump of stream_fwd */
-gboolean rtpstream_save(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, rtpstream_info_t* stream, const gchar *filename)
+bool rtpstream_save(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, rtpstream_info_t* stream, const char *filename)
{
- gboolean was_registered;
+ bool was_registered;
if (!tapinfo) {
- return FALSE;
+ return false;
}
was_registered = tapinfo->is_registered;
@@ -79,15 +79,15 @@ gboolean rtpstream_save(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, rt
/* open file for saving */
tapinfo->save_file = ws_fopen(filename, "wb");
if (tapinfo->save_file==NULL) {
- open_failure_alert_box(filename, errno, TRUE);
- return FALSE;
+ open_failure_alert_box(filename, errno, true);
+ return false;
}
rtp_write_header(stream, tapinfo->save_file);
if (ferror(tapinfo->save_file)) {
write_failure_alert_box(filename, errno);
fclose(tapinfo->save_file);
- return FALSE;
+ return false;
}
if (!tapinfo->is_registered)
@@ -104,21 +104,21 @@ gboolean rtpstream_save(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, rt
if (ferror(tapinfo->save_file)) {
write_failure_alert_box(filename, errno);
fclose(tapinfo->save_file);
- return FALSE;
+ return false;
}
if (fclose(tapinfo->save_file) == EOF) {
write_failure_alert_box(filename, errno);
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
/****************************************************************************/
/* mark packets in stream_fwd or stream_rev */
void rtpstream_mark(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, rtpstream_info_t* stream_fwd, rtpstream_info_t* stream_rev)
{
- gboolean was_registered;
+ bool was_registered;
if (!tapinfo) {
return;
diff --git a/ui/rtp_stream.h b/ui/rtp_stream.h
index 5d7ab01d4e..43e9ef28f7 100644
--- a/ui/rtp_stream.h
+++ b/ui/rtp_stream.h
@@ -40,31 +40,31 @@ extern "C" {
typedef struct _rtpstream_info {
rtpstream_id_t id;
- guint8 first_payload_type; /**< Numeric payload type */
- const gchar *first_payload_type_name; /**< Payload type name */
- const gchar *payload_type_names[256]; /**< Seen payload type names. Array index is payload type (byte), filled only during TAP_ANALYSE */
- gchar *all_payload_type_names; /**< All seen payload names for a stream in one string */
-
- gboolean is_srtp;
- guint32 packet_count;
- gboolean end_stream; /**< Used to track streams across payload types */
+ uint8_t first_payload_type; /**< Numeric payload type */
+ const char *first_payload_type_name; /**< Payload type name */
+ const char *payload_type_names[256]; /**< Seen payload type names. Array index is payload type (byte), filled only during TAP_ANALYSE */
+ char *all_payload_type_names; /**< All seen payload names for a stream in one string */
+
+ bool is_srtp;
+ uint32_t packet_count;
+ bool end_stream; /**< Used to track streams across payload types */
int rtp_event;
int call_num; /**< Used to match call_num in voip_calls_info_t */
- guint32 setup_frame_number; /**< frame number of setup message */
+ uint32_t setup_frame_number; /**< frame number of setup message */
/* Start and stop packets needed for .num and .abs_ts */
frame_data *start_fd;
frame_data *stop_fd;
nstime_t start_rel_time; /**< relative start time from pinfo */
nstime_t stop_rel_time; /**< relative stop time from pinfo */
nstime_t start_abs_time; /**< abs start time from pinfo */
- guint16 vlan_id;
- gboolean tag_vlan_error;
- gboolean tag_diffserv_error;
+ uint16_t vlan_id;
+ bool tag_vlan_error;
+ bool tag_diffserv_error;
tap_rtp_stat_t rtp_stats; /**< here goes the RTP statistics info */
- gboolean problem; /**< if the streams had wrong sequence numbers or wrong timestamps */
- const gchar *ed137_info; /** pointer to static text, no freeing is required */
+ bool problem; /**< if the streams had wrong sequence numbers or wrong timestamps */
+ const char *ed137_info; /** pointer to static text, no freeing is required */
} rtpstream_info_t;
/** tapping modes */
@@ -100,8 +100,8 @@ struct _rtpstream_tapinfo {
rtpstream_info_t *filter_stream_fwd; /**< used as filter in some tap modes */
rtpstream_info_t *filter_stream_rev; /**< used as filter in some tap modes */
FILE *save_file;
- gboolean is_registered; /**< if the tap listener is currently registered or not */
- gboolean apply_display_filter; /**< if apply display filter during analyse */
+ bool is_registered; /**< if the tap listener is currently registered or not */
+ bool apply_display_filter; /**< if apply display filter during analyse */
};
#if 0
@@ -129,7 +129,7 @@ void rtpstream_scan(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, const
* Saves an RTP stream as raw data stream with timestamp information for later RTP playback.
* (redissects all packets)
*/
-gboolean rtpstream_save(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, rtpstream_info_t* stream, const gchar *filename);
+bool rtpstream_save(rtpstream_tapinfo_t *tapinfo, capture_file *cap_file, rtpstream_info_t* stream, const char *filename);
/**
* Marks all packets belonging to either of stream_fwd or stream_rev.
diff --git a/ui/rtp_stream_id.c b/ui/rtp_stream_id.c
index 2c00a5e43f..3c7c33ad11 100644
--- a/ui/rtp_stream_id.c
+++ b/ui/rtp_stream_id.c
@@ -38,7 +38,7 @@ void rtpstream_id_copy(const rtpstream_id_t *src, rtpstream_id_t *dest)
/****************************************************************************/
/* deep copy of id from packet_info */
-void rtpstream_id_copy_pinfo(const packet_info *pinfo, rtpstream_id_t *dest, gboolean swap_src_dst)
+void rtpstream_id_copy_pinfo(const packet_info *pinfo, rtpstream_id_t *dest, bool swap_src_dst)
{
if (!swap_src_dst)
{
@@ -58,7 +58,7 @@ void rtpstream_id_copy_pinfo(const packet_info *pinfo, rtpstream_id_t *dest, gbo
/****************************************************************************/
/* shallow copy from packet_info to id */
-void rtpstream_id_copy_pinfo_shallow(const packet_info *pinfo, rtpstream_id_t *dest, gboolean swap_src_dst)
+void rtpstream_id_copy_pinfo_shallow(const packet_info *pinfo, rtpstream_id_t *dest, bool swap_src_dst)
{
if (!swap_src_dst)
{
@@ -86,9 +86,9 @@ void rtpstream_id_free(rtpstream_id_t *id)
/****************************************************************************/
/* convert rtpstream_id_t to hash */
-guint rtpstream_id_to_hash(const rtpstream_id_t *id)
+unsigned rtpstream_id_to_hash(const rtpstream_id_t *id)
{
- guint hash = 0;
+ unsigned hash = 0;
if (!id) { return 0; }
/* XOR of: */
@@ -106,30 +106,30 @@ guint rtpstream_id_to_hash(const rtpstream_id_t *id)
/****************************************************************************/
/* compare two ids by flags */
-gboolean rtpstream_id_equal(const rtpstream_id_t *id1, const rtpstream_id_t *id2, guint flags)
+bool rtpstream_id_equal(const rtpstream_id_t *id1, const rtpstream_id_t *id2, unsigned flags)
{
if (addresses_equal(&(id1->src_addr), &(id2->src_addr))
&& id1->src_port == id2->src_port
&& addresses_equal(&(id1->dst_addr), &(id2->dst_addr))
&& id1->dst_port == id2->dst_port)
{
- gboolean equal = TRUE;
+ bool equal = true;
if ((flags & RTPSTREAM_ID_EQUAL_SSRC)
&& id1->ssrc != id2->ssrc)
{
- equal = FALSE;
+ equal = false;
}
return equal;
}
- return FALSE;
+ return false;
}
/****************************************************************************/
/* compare an rtpstream id address and ports with pinfo */
-gboolean rtpstream_id_equal_pinfo(const rtpstream_id_t *id, const packet_info *pinfo, bool swap_src_dst)
+bool rtpstream_id_equal_pinfo(const rtpstream_id_t *id, const packet_info *pinfo, bool swap_src_dst)
{
if (!swap_src_dst) {
if (addresses_equal(&(id->src_addr), &(pinfo->src))
@@ -137,7 +137,7 @@ gboolean rtpstream_id_equal_pinfo(const rtpstream_id_t *id, const packet_info *p
&& addresses_equal(&(id->dst_addr), &(pinfo->dst))
&& id->dst_port == pinfo->destport)
{
- return TRUE;
+ return true;
}
} else {
if (addresses_equal(&(id->src_addr), &(pinfo->dst))
@@ -145,15 +145,15 @@ gboolean rtpstream_id_equal_pinfo(const rtpstream_id_t *id, const packet_info *p
&& addresses_equal(&(id->dst_addr), &(pinfo->src))
&& id->dst_port == pinfo->srcport)
{
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
/****************************************************************************/
/* compare two ids, one in pinfo */
-gboolean rtpstream_id_equal_pinfo_rtp_info(const rtpstream_id_t *id, const packet_info *pinfo, const struct _rtp_info *rtp_info)
+bool rtpstream_id_equal_pinfo_rtp_info(const rtpstream_id_t *id, const packet_info *pinfo, const struct _rtp_info *rtp_info)
{
if (addresses_equal(&(id->src_addr), &(pinfo->src))
&& id->src_port == pinfo->srcport
@@ -161,17 +161,17 @@ gboolean rtpstream_id_equal_pinfo_rtp_info(const rtpstream_id_t *id, const packe
&& id->dst_port == pinfo->destport
&& id->ssrc == rtp_info->info_sync_src)
{
- return TRUE;
+ return true;
}
- return FALSE;
+ return false;
}
/****************************************************************************/
/* convert packet_info and _rtp_info to hash */
-guint pinfo_rtp_info_to_hash(const packet_info *pinfo, const struct _rtp_info *rtp_info)
+unsigned pinfo_rtp_info_to_hash(const packet_info *pinfo, const struct _rtp_info *rtp_info)
{
- guint hash = 0;
+ unsigned hash = 0;
if (!pinfo || !rtp_info) { return 0; }
/* XOR of: */
diff --git a/ui/rtp_stream_id.h b/ui/rtp_stream_id.h
index 46b92b68d8..09adb10dc6 100644
--- a/ui/rtp_stream_id.h
+++ b/ui/rtp_stream_id.h
@@ -32,16 +32,16 @@ struct _rtp_info;
/** Defines an rtp stream identification */
typedef struct _rtpstream_id {
address src_addr;
- guint16 src_port;
+ uint16_t src_port;
address dst_addr;
- guint16 dst_port;
- guint32 ssrc;
+ uint16_t dst_port;
+ uint32_t ssrc;
} rtpstream_id_t;
/**
* Get hash of rtpstream_id
*/
-guint rtpstream_id_to_hash(const rtpstream_id_t *id);
+unsigned rtpstream_id_to_hash(const rtpstream_id_t *id);
/**
* Copy rtpstream_id_t structure
@@ -51,13 +51,13 @@ void rtpstream_id_copy(const rtpstream_id_t *src, rtpstream_id_t *dest);
/**
* Deep copy addresses and ports from pinfo
*/
-void rtpstream_id_copy_pinfo(const packet_info *pinfo, rtpstream_id_t *dest, gboolean swap_src_dst);
+void rtpstream_id_copy_pinfo(const packet_info *pinfo, rtpstream_id_t *dest, bool swap_src_dst);
/**
* Shallow copy addresses and ports from pinfo
* Do not call rtpstream_id_free if you use this function.
*/
-void rtpstream_id_copy_pinfo_shallow(const packet_info *pinfo, rtpstream_id_t *dest, gboolean swap_src_dst);
+void rtpstream_id_copy_pinfo_shallow(const packet_info *pinfo, rtpstream_id_t *dest, bool swap_src_dst);
/**
* Free memory allocated for id
@@ -73,26 +73,26 @@ void rtpstream_id_free(rtpstream_id_t *id);
*/
#define RTPSTREAM_ID_EQUAL_NONE 0x0000
#define RTPSTREAM_ID_EQUAL_SSRC 0x0001
-gboolean rtpstream_id_equal(const rtpstream_id_t *id1, const rtpstream_id_t *id2, guint flags);
+bool rtpstream_id_equal(const rtpstream_id_t *id1, const rtpstream_id_t *id2, unsigned flags);
/**
* Check if rtpstream_id_t is equal to pinfo
* - compare src_addr, dest_addr, src_port, dest_port with pinfo
* - if swap_src_dst is true, compare src to dst and vice versa
*/
-gboolean rtpstream_id_equal_pinfo(const rtpstream_id_t *id, const packet_info *pinfo, bool swap_src_dst);
+bool rtpstream_id_equal_pinfo(const rtpstream_id_t *id, const packet_info *pinfo, bool swap_src_dst);
/**
* Check if rtpstream_id_t is equal to pinfo and rtp_info
* - compare src_addr, dest_addr, src_port, dest_port with pinfo
* - compare ssrc with rtp_info
*/
-gboolean rtpstream_id_equal_pinfo_rtp_info(const rtpstream_id_t *id, const packet_info *pinfo, const struct _rtp_info *rtp_info);
+bool rtpstream_id_equal_pinfo_rtp_info(const rtpstream_id_t *id, const packet_info *pinfo, const struct _rtp_info *rtp_info);
/**
* Get hash of rtpstream_id extracted from packet_info and _rtp_info
*/
-guint pinfo_rtp_info_to_hash(const packet_info *pinfo, const struct _rtp_info *rtp_info);
+unsigned pinfo_rtp_info_to_hash(const packet_info *pinfo, const struct _rtp_info *rtp_info);
#ifdef __cplusplus
}
diff --git a/ui/simple_dialog.h b/ui/simple_dialog.h
index d99b0ee3e6..d8e01000e9 100644
--- a/ui/simple_dialog.h
+++ b/ui/simple_dialog.h
@@ -13,6 +13,10 @@
#ifndef __SIMPLE_DIALOG_UI_H__
#define __SIMPLE_DIALOG_UI_H__
+#include <glib.h>
+
+#include <stdbool.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -93,12 +97,12 @@ typedef enum {
* get rid of primary_start and primary_end and reduce the amount of
* gymnastics we have to do in the Qt UI.
*/
-extern gpointer simple_dialog(ESD_TYPE_E type, gint btn_mask,
- const gchar *msg_format, ...)
+extern void *simple_dialog(ESD_TYPE_E type, int btn_mask,
+ const char *msg_format, ...)
G_GNUC_PRINTF(3, 4);
-extern gpointer simple_dialog_async(ESD_TYPE_E type, gint btn_mask,
- const gchar *msg_format, ...)
+extern void *simple_dialog_async(ESD_TYPE_E type, int btn_mask,
+ const char *msg_format, ...)
G_GNUC_PRINTF(3, 4);
/** Surround the primary dialog message text by
@@ -122,7 +126,7 @@ extern char *simple_dialog_format_message(const char *msg);
* Alert box, with optional "don't show this message again" variable
* and checkbox, and optional secondary text.
*/
-extern void simple_message_box(ESD_TYPE_E type, gboolean *notagain,
+extern void simple_message_box(ESD_TYPE_E type, bool *notagain,
const char *secondary_msg,
const char *msg_format, ...) G_GNUC_PRINTF(4, 5);
diff --git a/ui/software_update.c b/ui/software_update.c
index 0375391285..1ead26c8fb 100644
--- a/ui/software_update.c
+++ b/ui/software_update.c
@@ -89,7 +89,7 @@ static char *get_appcast_update_url(software_update_channel_e chan) {
SU_OSNAME,
SU_ARCH,
chan_name);
- return g_string_free(update_url_str, FALSE);
+ return g_string_free(update_url_str, false);
}
#ifdef _WIN32
diff --git a/ui/ssl_key_export.c b/ui/ssl_key_export.c
index f077ef06da..af71253598 100644
--- a/ui/ssl_key_export.c
+++ b/ui/ssl_key_export.c
@@ -25,12 +25,12 @@ int
ssl_session_key_count(void)
{
int count = 0;
- ssl_master_key_map_t *mk_map = tls_get_master_key_map(FALSE);
+ ssl_master_key_map_t *mk_map = tls_get_master_key_map(false);
if (!mk_map || !mk_map->used_crandom)
return count;
GHashTableIter iter;
- gpointer key;
+ void *key;
g_hash_table_iter_init(&iter, mk_map->used_crandom);
while (g_hash_table_iter_next(&iter, &key, NULL)) {
@@ -57,9 +57,9 @@ ssl_session_key_count(void)
}
static void
-tls_export_client_randoms_func(gpointer key, gpointer value, gpointer user_data, const char* label)
+tls_export_client_randoms_func(void *key, void *value, void *user_data, const char* label)
{
- guint i;
+ unsigned i;
StringInfo *client_random = (StringInfo *)key;
StringInfo *master_secret = (StringInfo *)value;
GString *keylist = (GString *)user_data;
@@ -79,8 +79,8 @@ tls_export_client_randoms_func(gpointer key, gpointer value, gpointer user_data,
g_string_append_c(keylist, '\n');
}
-gchar*
-ssl_export_sessions(gsize *length)
+char*
+ssl_export_sessions(size_t *length)
{
/* Output format is:
* "CLIENT_RANDOM zzzz yyyy\n"
@@ -100,53 +100,53 @@ ssl_export_sessions(gsize *length)
* The TLS 1.3 values are obtained from an existing key log, but exporting
* them is useful in order to filter actually used secrets or add a DSB.
*/
- ssl_master_key_map_t *mk_map = tls_get_master_key_map(FALSE);
+ ssl_master_key_map_t *mk_map = tls_get_master_key_map(false);
if (!mk_map) {
*length = 0;
return g_strdup("");
}
- gsize len = 177 * (gsize)ssl_session_key_count();
+ size_t len = 177 * (size_t)ssl_session_key_count();
GString *keylist = g_string_sized_new(len);
GHashTableIter iter;
- gpointer key, value;
+ void *key, *value;
g_hash_table_iter_init(&iter, mk_map->used_crandom);
while (g_hash_table_iter_next(&iter, &key, NULL)) {
if ((value = g_hash_table_lookup(mk_map->crandom, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "CLIENT_RANDOM ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "CLIENT_RANDOM ");
}
if ((value = g_hash_table_lookup(mk_map->tls13_client_early, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "CLIENT_EARLY_TRAFFIC_SECRET ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "CLIENT_EARLY_TRAFFIC_SECRET ");
}
if ((value = g_hash_table_lookup(mk_map->tls13_client_handshake, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "CLIENT_HANDSHAKE_TRAFFIC_SECRET ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "CLIENT_HANDSHAKE_TRAFFIC_SECRET ");
}
if ((value = g_hash_table_lookup(mk_map->tls13_server_handshake, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "SERVER_HANDSHAKE_TRAFFIC_SECRET ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "SERVER_HANDSHAKE_TRAFFIC_SECRET ");
}
if ((value = g_hash_table_lookup(mk_map->tls13_server_appdata, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "SERVER_TRAFFIC_SECRET_0 ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "SERVER_TRAFFIC_SECRET_0 ");
}
if ((value = g_hash_table_lookup(mk_map->tls13_client_appdata, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "CLIENT_TRAFFIC_SECRET_0 ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "CLIENT_TRAFFIC_SECRET_0 ");
}
#if 0
/* We don't use the EARLY_EXPORT_SECRET or EXPORTER_SECRET now so don't
export, but we may in the future. */
if ((value = g_hash_table_lookup(mk_map->tls13_early_exporter, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "EARLY_EXPORTER_SECRET ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "EARLY_EXPORTER_SECRET ");
}
if ((value = g_hash_table_lookup(mk_map->tls13_exporter, key))) {
- tls_export_client_randoms_func(key, value, (gpointer)keylist, "EXPORTER_SECRET ");
+ tls_export_client_randoms_func(key, value, (void *)keylist, "EXPORTER_SECRET ");
}
#endif
}
*length = keylist->len;
- return g_string_free(keylist, FALSE);
+ return g_string_free(keylist, false);
}
void
@@ -162,12 +162,12 @@ tls_export_dsb(capture_file *cf)
dsb->secrets_type = SECRETS_TYPE_TLS;
dsb->secrets_data = g_memdup2(secrets, secrets_len);
- dsb->secrets_len = (guint)secrets_len;
+ dsb->secrets_len = (unsigned)secrets_len;
/* XXX - support replacing the DSB of the same type instead of adding? */
wtap_file_add_decryption_secrets(cf->provider.wth, block);
/* Mark the file as having unsaved changes */
- cf->unsaved_changes = TRUE;
+ cf->unsaved_changes = true;
return;
}
diff --git a/ui/ssl_key_export.h b/ui/ssl_key_export.h
index edf42d4368..945e4c5aef 100644
--- a/ui/ssl_key_export.h
+++ b/ui/ssl_key_export.h
@@ -32,7 +32,7 @@ extern int ssl_session_key_count(void);
* @return A string containing all the SSL Session Keys. Must be freed with
* g_free().
*/
-extern gchar* ssl_export_sessions(gsize *length);
+extern char* ssl_export_sessions(size_t *length);
/** Add a DSB with the used TLS secrets to a capture file.
*
diff --git a/ui/summary.c b/ui/summary.c
index 58c7cd68a4..f271027a8b 100644
--- a/ui/summary.c
+++ b/ui/summary.c
@@ -106,14 +106,14 @@ void
summary_fill_in(capture_file *cf, summary_tally *st)
{
frame_data *first_frame, *cur_frame;
- guint32 framenum;
+ uint32_t framenum;
iface_summary_info iface;
- guint i;
+ unsigned i;
wtapng_iface_descriptions_t* idb_info;
wtap_block_t wtapng_if_descr;
wtapng_if_descr_mandatory_t *wtapng_if_descr_mand;
wtap_block_t if_stats;
- guint64 isb_ifdrop;
+ uint64_t isb_ifdrop;
char* if_string;
if_filter_opt_t if_filter;
@@ -164,7 +164,7 @@ summary_fill_in(capture_file *cf, summary_tally *st)
st->drops = cf->drops;
st->dfilter = cf->dfilter;
- st->ifaces = g_array_new(FALSE, FALSE, sizeof(iface_summary_info));
+ st->ifaces = g_array_new(false, false, sizeof(iface_summary_info));
idb_info = wtap_file_get_idb_info(cf->provider.wth);
for (i = 0; i < idb_info->interface_data->len; i++) {
wtapng_if_descr = g_array_index(idb_info->interface_data, wtap_block_t, i);
@@ -189,7 +189,7 @@ summary_fill_in(capture_file *cf, summary_tally *st)
} else {
iface.descr = NULL;
}
- iface.drops_known = FALSE;
+ iface.drops_known = false;
iface.drops = 0;
iface.snap = wtapng_if_descr_mand->snap_len;
iface.encap_type = wtapng_if_descr_mand->wtap_encap;
@@ -198,7 +198,7 @@ summary_fill_in(capture_file *cf, summary_tally *st)
/* dumpcap only writes one ISB, only handle that for now */
if_stats = g_array_index(wtapng_if_descr_mand->interface_statistics, wtap_block_t, 0);
if (wtap_block_get_uint64_option_value(if_stats, OPT_ISB_IFDROP, &isb_ifdrop) == WTAP_OPTTYPE_SUCCESS) {
- iface.drops_known = TRUE;
+ iface.drops_known = true;
iface.drops = isb_ifdrop;
}
/* XXX: this doesn't get used, and might need to be g_strdup'ed when it does */
@@ -240,7 +240,7 @@ summary_fill_in_capture(capture_file *cf,capture_options *capture_opts, summary_
{
iface_summary_info iface;
interface_t *device;
- guint i;
+ unsigned i;
if (st->ifaces->len == 0) {
/*
diff --git a/ui/summary.h b/ui/summary.h
index 95a51a38c0..f47cbaf037 100644
--- a/ui/summary.h
+++ b/ui/summary.h
@@ -25,8 +25,8 @@ typedef struct iface_summary_info_tag {
char *descr;
char *cfilter;
char *isb_comment;
- guint64 drops; /**< number of packet drops */
- gboolean drops_known; /**< TRUE if number of packet drops is known */
+ uint64_t drops; /**< number of packet drops */
+ bool drops_known; /**< true if number of packet drops is known */
int snap; /**< Maximum captured packet length; 0 if not known */
int encap_type; /**< wiretap encapsulation type */
} iface_summary_info;
@@ -34,41 +34,41 @@ typedef struct iface_summary_info_tag {
#define HASH_STR_SIZE (65) /* Max hash size * 2 + '\0' */
typedef struct _summary_tally {
- guint64 bytes; /**< total bytes */
+ uint64_t bytes; /**< total bytes */
double start_time; /**< seconds, with msec resolution */
double stop_time; /**< seconds, with msec resolution */
double elapsed_time; /**< seconds, with msec resolution,
includes time before first packet
and after last packet */
- guint32 marked_count; /**< number of marked packets */
- guint32 marked_count_ts; /**< number of time-stamped marked packets */
- guint64 marked_bytes; /**< total bytes in the marked packets */
+ uint32_t marked_count; /**< number of marked packets */
+ uint32_t marked_count_ts; /**< number of time-stamped marked packets */
+ uint64_t marked_bytes; /**< total bytes in the marked packets */
double marked_start; /**< time in seconds, with msec resolution */
double marked_stop; /**< time in seconds, with msec resolution */
- guint32 ignored_count; /**< number of ignored packets */
- guint32 packet_count; /**< total number of packets in trace */
- guint32 packet_count_ts; /**< total number of time-stamped packets in trace */
- guint32 filtered_count; /**< number of filtered packets */
- guint32 filtered_count_ts; /**< number of time-stamped filtered packets */
- guint64 filtered_bytes; /**< total bytes in the filtered packets */
+ uint32_t ignored_count; /**< number of ignored packets */
+ uint32_t packet_count; /**< total number of packets in trace */
+ uint32_t packet_count_ts; /**< total number of time-stamped packets in trace */
+ uint32_t filtered_count; /**< number of filtered packets */
+ uint32_t filtered_count_ts; /**< number of time-stamped filtered packets */
+ uint64_t filtered_bytes; /**< total bytes in the filtered packets */
double filtered_start; /**< time in seconds, with msec resolution */
double filtered_stop; /**< time in seconds, with msec resolution */
const char *filename; /**< path of capture file */
- gint64 file_length; /**< file length in bytes */
- gchar file_sha256[HASH_STR_SIZE]; /**< SHA256 hash of capture file */
- gchar file_sha1[HASH_STR_SIZE]; /**< SHA1 hash of capture file */
+ int64_t file_length; /**< file length in bytes */
+ char file_sha256[HASH_STR_SIZE]; /**< SHA256 hash of capture file */
+ char file_sha1[HASH_STR_SIZE]; /**< SHA1 hash of capture file */
int file_type; /**< wiretap file type */
wtap_compression_type compression_type; /**< compression type of file, or uncompressed */
int file_encap_type; /**< wiretap encapsulation type for file */
GArray *packet_encap_types; /**< wiretap encapsulation types for packets */
int snap; /**< Maximum captured packet length; 0 if not known */
- gboolean drops_known; /**< TRUE if number of packet drops is known */
- guint64 drops; /**< number of packet drops */
+ bool drops_known; /**< true if number of packet drops is known */
+ uint64_t drops; /**< number of packet drops */
const char *dfilter; /**< display filter */
- gboolean is_tempfile;
+ bool is_tempfile;
/* capture related, use summary_fill_in_capture() to get values */
GArray *ifaces;
- gboolean legacy;
+ bool legacy;
} summary_tally;
extern void
diff --git a/ui/tap-credentials.h b/ui/tap-credentials.h
index ef6de9ffa2..ac532b05a4 100644
--- a/ui/tap-credentials.h
+++ b/ui/tap-credentials.h
@@ -16,12 +16,12 @@
#define TAP_CREDENTIALS_PLACEHOLDER "n.a."
typedef struct tap_credential {
- guint num;
- guint username_num;
- guint password_hf_id;
- gchar* username;
- const gchar* proto;
- gchar* info;
+ unsigned num;
+ unsigned username_num;
+ unsigned password_hf_id;
+ char* username;
+ const char* proto;
+ char* info;
} tap_credential_t;
#endif
diff --git a/ui/tap-iax2-analysis.c b/ui/tap-iax2-analysis.c
index dbdbeb3751..f540565a18 100644
--- a/ui/tap-iax2-analysis.c
+++ b/ui/tap-iax2-analysis.c
@@ -82,7 +82,7 @@ iax2_packet_analyse(tap_iax2_stat_t *statinfo,
statinfo->jitter = 0;
statinfo->diff = 0;
statinfo->flags |= STAT_FLAG_FIRST;
- statinfo->first_packet = FALSE;
+ statinfo->first_packet = false;
}
/* is it a regular packet? */
if (!(statinfo->flags & STAT_FLAG_FIRST)
diff --git a/ui/tap-iax2-analysis.h b/ui/tap-iax2-analysis.h
index c3a1167a2e..834a84ec9f 100644
--- a/ui/tap-iax2-analysis.h
+++ b/ui/tap-iax2-analysis.h
@@ -36,25 +36,25 @@ extern "C" {
/* structure that holds the information about the forward and reversed direction */
typedef struct _iax2_bw_history_item {
double time;
- guint32 bytes;
+ uint32_t bytes;
} iax2_bw_history_item;
#define BUFF_BW 300
typedef struct _tap_iax2_stat_t {
- gboolean first_packet; /* do not use in code that is called after iax2_packet_analyse */
+ bool first_packet; /* do not use in code that is called after iax2_packet_analyse */
/* use (flags & STAT_FLAG_FIRST) instead */
/* all of the following fields will be initialized after
iax2_packet_analyse has been called */
- guint32 flags; /* see STAT_FLAG-defines below */
- guint16 seq_num;
- guint32 timestamp;
- guint32 delta_timestamp;
+ uint32_t flags; /* see STAT_FLAG-defines below */
+ uint16_t seq_num;
+ uint32_t timestamp;
+ uint32_t delta_timestamp;
double bandwidth;
iax2_bw_history_item bw_history[BUFF_BW];
- guint16 bw_start_index;
- guint16 bw_index;
- guint32 total_bytes;
+ uint16_t bw_start_index;
+ uint16_t bw_index;
+ uint32_t total_bytes;
double delta;
double jitter;
double diff;
@@ -63,14 +63,14 @@ typedef struct _tap_iax2_stat_t {
double max_delta;
double max_jitter;
double mean_jitter;
- guint32 max_nr;
- guint16 start_seq_nr;
- guint16 stop_seq_nr;
- guint32 total_nr;
- guint32 sequence;
- gboolean under; /* Unused? */
- gint cycles; /* Unused? */
- guint16 pt;
+ uint32_t max_nr;
+ uint16_t start_seq_nr;
+ uint16_t stop_seq_nr;
+ uint32_t total_nr;
+ uint32_t sequence;
+ bool under; /* Unused? */
+ int cycles; /* Unused? */
+ uint16_t pt;
int reg_pt;
} tap_iax2_stat_t;
diff --git a/ui/tap-rlc-graph.c b/ui/tap-rlc-graph.c
index 9fefdae788..80bcc4c540 100644
--- a/ui/tap-rlc-graph.c
+++ b/ui/tap-rlc-graph.c
@@ -22,14 +22,14 @@
#include <epan/epan_dissect.h>
#include <epan/tap.h>
-/* Return TRUE if the 2 sets of parameters refer to the same channel. */
-gboolean compare_rlc_headers(guint8 rat1, guint8 rat2,
- guint16 ueid1, guint16 channelType1, guint16 channelId1, guint8 rlcMode1, guint8 direction1,
- guint16 ueid2, guint16 channelType2, guint16 channelId2, guint8 rlcMode2, guint8 direction2,
- gboolean frameIsControl)
+/* Return true if the 2 sets of parameters refer to the same channel. */
+bool compare_rlc_headers(uint8_t rat1, uint8_t rat2,
+ uint16_t ueid1, uint16_t channelType1, uint16_t channelId1, uint8_t rlcMode1, uint8_t direction1,
+ uint16_t ueid2, uint16_t channelType2, uint16_t channelId2, uint8_t rlcMode2, uint8_t direction2,
+ bool frameIsControl)
{
if (rat1 != rat2) {
- return FALSE;
+ return false;
}
/* Same direction, data - OK. */
@@ -49,7 +49,7 @@ gboolean compare_rlc_headers(guint8 rat1, guint8 rat2,
(channelId1 == channelId2));
}
else {
- return FALSE;
+ return false;
}
}
}
@@ -60,7 +60,7 @@ static tap_packet_status
tap_lte_rlc_packet(void *pct, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags _U_)
{
int n;
- gboolean is_unique = TRUE;
+ bool is_unique = true;
th_t *th = (th_t *)pct;
const rlc_3gpp_tap_info *header = (const rlc_3gpp_tap_info*)vip;
@@ -72,7 +72,7 @@ tap_lte_rlc_packet(void *pct, packet_info *pinfo _U_, epan_dissect_t *edt _U_, c
stored->ueid, stored->channelType, stored->channelId, stored->rlcMode, stored->direction,
header->ueid, header->channelType, header->channelId, header->rlcMode, header->direction,
header->isControlPDU)) {
- is_unique = FALSE;
+ is_unique = false;
break;
}
}
@@ -100,7 +100,7 @@ tap_lte_rlc_packet(void *pct, packet_info *pinfo _U_, epan_dissect_t *edt _U_, c
* depending upon which GUI toolkit is being used. */
rlc_3gpp_tap_info* select_rlc_lte_session(capture_file *cf,
struct rlc_segment *hdrs,
- gchar **err_msg)
+ char **err_msg)
{
frame_data *fdata;
epan_dissect_t edt;
@@ -133,12 +133,12 @@ rlc_3gpp_tap_info* select_rlc_lte_session(capture_file *cf,
if (error_string){
fprintf(stderr, "wireshark: Couldn't register rlc_lte_graph tap: %s\n",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
dfilter_free(sfcode);
exit(1); /* XXX: fix this */
}
- epan_dissect_init(&edt, cf->epan, TRUE, FALSE);
+ epan_dissect_init(&edt, cf->epan, true, false);
epan_dissect_prime_with_dfilter(&edt, sfcode);
epan_dissect_run_with_taps(&edt, cf->cd_t, &cf->rec,
frame_tvbuff_new_buffer(&cf->provider, fdata, &cf->buf),
@@ -195,7 +195,7 @@ static tap_packet_status rlc_lte_tap_for_graph_data(void *pct, packet_info *pinf
struct rlc_segment *segment = g_new(struct rlc_segment, 1);
segment->next = NULL;
segment->num = pinfo->num;
- segment->rel_secs = (guint32) pinfo->rel_ts.secs;
+ segment->rel_secs = (uint32_t) pinfo->rel_ts.secs;
segment->rel_usecs = pinfo->rel_ts.nsecs/1000;
segment->rat = rlchdr->rat;
@@ -223,7 +223,7 @@ static tap_packet_status rlc_lte_tap_for_graph_data(void *pct, packet_info *pinf
}
else {
/* Status PDU */
- gint n;
+ int n;
segment->ACKNo = rlchdr->ACKNo;
segment->noOfNACKs = rlchdr->noOfNACKs;
for (n=0; (n < rlchdr->noOfNACKs) && (n < MAX_NACKs); n++) {
@@ -249,7 +249,7 @@ static tap_packet_status rlc_lte_tap_for_graph_data(void *pct, packet_info *pinf
/* If don't have a channel, try to get one from current frame, then read all frames looking for data
* for that channel. */
-gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *g, gboolean stream_known,
+bool rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *g, bool stream_known,
char **err_string)
{
struct rlc_segment current;
@@ -257,16 +257,16 @@ gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *g, gbool
if (!cf || !g) {
/* Really shouldn't happen */
- return FALSE;
+ return false;
}
if (!stream_known) {
struct rlc_3gpp_tap_info *header = select_rlc_lte_session(cf, &current, err_string);
if (!header) {
/* Didn't have a channel, and current frame didn't provide one */
- return FALSE;
+ return false;
}
- g->channelSet = TRUE;
+ g->channelSet = true;
g->rat = header->rat;
g->ueid = header->ueid;
@@ -290,7 +290,7 @@ gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *g, gbool
if (error_string) {
fprintf(stderr, "wireshark: Couldn't register rlc_graph tap: %s\n",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1); /* XXX: fix this */
}
cf_retap_packets(cf);
@@ -298,10 +298,10 @@ gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *g, gbool
if (g->last_segment == NULL) {
*err_string = g_strdup("No packets found");
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
/* Free and zero the segments list of an rlc_graph struct */
diff --git a/ui/tap-rlc-graph.h b/ui/tap-rlc-graph.h
index 4b99ec205e..45a77eb466 100644
--- a/ui/tap-rlc-graph.h
+++ b/ui/tap-rlc-graph.h
@@ -24,25 +24,25 @@ extern "C" {
struct rlc_segment {
struct rlc_segment *next;
- guint32 num; /* framenum */
+ uint32_t num; /* framenum */
time_t rel_secs;
- guint32 rel_usecs;
-
- gboolean isControlPDU;
- guint32 SN;
- guint16 isResegmented;
- guint32 ACKNo;
- guint16 noOfNACKs;
- guint32 NACKs[MAX_NACKs];
- guint16 pduLength;
-
- guint8 rat;
- guint16 ueid;
- guint16 channelType;
- guint16 channelId;
- guint8 rlcMode;
- guint8 direction;
- guint16 sequenceNumberLength;
+ uint32_t rel_usecs;
+
+ bool isControlPDU;
+ uint32_t SN;
+ uint16_t isResegmented;
+ uint32_t ACKNo;
+ uint16_t noOfNACKs;
+ uint32_t NACKs[MAX_NACKs];
+ uint16_t pduLength;
+
+ uint8_t rat;
+ uint16_t ueid;
+ uint16_t channelType;
+ uint16_t channelId;
+ uint8_t rlcMode;
+ uint8_t direction;
+ uint16_t sequenceNumberLength;
};
/* A collection of channels that may be found in one frame. Used when working out
@@ -59,28 +59,28 @@ struct rlc_graph {
struct rlc_segment *last_segment;
/* These are filled in with the channel/direction this graph is showing */
- gboolean channelSet;
+ bool channelSet;
uint8_t rat;
- guint16 ueid;
- guint16 channelType;
- guint16 channelId;
- guint8 rlcMode;
- guint8 direction;
+ uint16_t ueid;
+ uint16_t channelType;
+ uint16_t channelId;
+ uint8_t rlcMode;
+ uint8_t direction;
};
-gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *tg, gboolean stream_known,
+bool rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *tg, bool stream_known,
char **err_string);
void rlc_graph_segment_list_free(struct rlc_graph * );
-gboolean compare_rlc_headers(guint8 rat1, guint8 rat2,
- guint16 ueid1, guint16 channelType1, guint16 channelId1, guint8 rlcMode1, guint8 direction1,
- guint16 ueid2, guint16 channelType2, guint16 channelId2, guint8 rlcMode2, guint8 direction2,
- gboolean isControlFrame);
+bool compare_rlc_headers(uint8_t rat1, uint8_t rat2,
+ uint16_t ueid1, uint16_t channelType1, uint16_t channelId1, uint8_t rlcMode1, uint8_t direction1,
+ uint16_t ueid2, uint16_t channelType2, uint16_t channelId2, uint8_t rlcMode2, uint8_t direction2,
+ bool isControlFrame);
rlc_3gpp_tap_info *select_rlc_lte_session(capture_file *cf, struct rlc_segment *hdrs,
- gchar **err_msg);
+ char **err_msg);
#ifdef __cplusplus
diff --git a/ui/tap-rtp-analysis.c b/ui/tap-rtp-analysis.c
index 4f3575ad72..9148c1ca95 100644
--- a/ui/tap-rtp-analysis.c
+++ b/ui/tap-rtp-analysis.c
@@ -32,8 +32,8 @@
#include "tap-rtp-analysis.h"
typedef struct _key_value {
- guint32 key;
- guint32 value;
+ uint32_t key;
+ uint32_t value;
} key_value;
@@ -70,10 +70,10 @@ static const key_value clock_map[] = {
{PT_H263, 90000},
};
-#define NUM_CLOCK_VALUES (sizeof clock_map / sizeof clock_map[0])
+#define NUM_CLOCK_VALUES array_length(clock_map)
-static guint32
-get_clock_rate(guint32 key)
+static uint32_t
+get_clock_rate(uint32_t key)
{
size_t i;
@@ -85,8 +85,8 @@ get_clock_rate(guint32 key)
}
typedef struct _mimetype_and_clock {
- const gchar *pt_mime_name_str;
- guint32 value;
+ const char *pt_mime_name_str;
+ uint32_t value;
} mimetype_and_clock;
/* RTP sampling clock rates for
"In addition to the RTP payload formats (encodings) listed in the RTP
@@ -139,10 +139,10 @@ static const mimetype_and_clock mimetype_and_clock_map[] = {
{"telephone-event", 8000}, /* [RFC4733] */
};
-#define NUM_DYN_CLOCK_VALUES (sizeof mimetype_and_clock_map / sizeof mimetype_and_clock_map[0])
+#define NUM_DYN_CLOCK_VALUES array_length(mimetype_and_clock_map)
-static guint32
-get_dyn_pt_clock_rate(const gchar *payload_type_str)
+static uint32_t
+get_dyn_pt_clock_rate(const char *payload_type_str)
{
int i;
@@ -156,7 +156,7 @@ get_dyn_pt_clock_rate(const gchar *payload_type_str)
return 0;
}
-#define TIMESTAMP_DIFFERENCE(v1,v2) ((gint64)v2-(gint64)v1)
+#define TIMESTAMP_DIFFERENCE(v1,v2) ((int64_t)v2-(int64_t)v1)
/****************************************************************************/
void
@@ -172,8 +172,8 @@ rtppacket_analyse(tap_rtp_stat_t *statinfo,
double arrivaltime;
double expected_time;
double absskew;
- guint32 clock_rate;
- gboolean in_time_sequence;
+ uint32_t clock_rate;
+ bool in_time_sequence;
/* Store the current time */
current_time = nstime_to_msec(&pinfo->rel_ts);
@@ -220,7 +220,7 @@ rtppacket_analyse(tap_rtp_stat_t *statinfo,
statinfo->flags |= STAT_FLAG_MARKER;
}
statinfo->first_packet_num = pinfo->num;
- statinfo->first_packet = FALSE;
+ statinfo->first_packet = false;
return;
}
@@ -248,10 +248,10 @@ rtppacket_analyse(tap_rtp_stat_t *statinfo,
*/
if (statinfo->seq_timestamp <= rtpinfo->info_extended_timestamp) {
// Normal timestamp sequence
- in_time_sequence = TRUE;
+ in_time_sequence = true;
} else {
// New packet is not in sequence (is in past)
- in_time_sequence = FALSE;
+ in_time_sequence = false;
statinfo->flags |= STAT_FLAG_WRONG_TIMESTAMP;
}
@@ -260,9 +260,9 @@ rtppacket_analyse(tap_rtp_stat_t *statinfo,
*/
if ((rtpinfo->info_seq_num < statinfo->start_seq_nr) &&
in_time_sequence &&
- (statinfo->under == FALSE)) {
+ (statinfo->under == false)) {
statinfo->seq_cycles++;
- statinfo->under = TRUE;
+ statinfo->under = true;
}
/* what if the start seq nr was 0? Then the above condition will never
* be true, so we add another condition. XXX The problem would arise
@@ -270,15 +270,15 @@ rtppacket_analyse(tap_rtp_stat_t *statinfo,
*/
else if ((rtpinfo->info_seq_num == 0) && (statinfo->stop_seq_nr == 65535) &&
in_time_sequence &&
- (statinfo->under == FALSE)) {
+ (statinfo->under == false)) {
statinfo->seq_cycles++;
- statinfo->under = TRUE;
+ statinfo->under = true;
}
/* the whole round is over, so reset the flag */
else if ((rtpinfo->info_seq_num > statinfo->start_seq_nr) &&
in_time_sequence &&
- (statinfo->under != FALSE)) {
- statinfo->under = FALSE;
+ (statinfo->under != false)) {
+ statinfo->under = false;
}
/* Since it is difficult to count lost, duplicate or late packets separately,
@@ -363,7 +363,7 @@ rtppacket_analyse(tap_rtp_stat_t *statinfo,
* XXX: Do we really need to exclude those? The underlying problem in
* #16330 was not allowing the time difference to be negative.
*/
- if ( in_time_sequence || TRUE ) {
+ if ( in_time_sequence || true ) {
/* XXX: We try to handle clock rate changes, but if the clock rate
* changed during a dropped packet (or if we go backwards because
* a packet is reordered), it won't be quite right.
diff --git a/ui/tap-rtp-analysis.h b/ui/tap-rtp-analysis.h
index dc3edbdb32..2610033c38 100644
--- a/ui/tap-rtp-analysis.h
+++ b/ui/tap-rtp-analysis.h
@@ -35,27 +35,27 @@ extern "C" {
/* structure that holds the information about the forward and reversed direction */
typedef struct _bw_history_item {
double time;
- guint32 bytes;
+ uint32_t bytes;
} bw_history_item;
#define BUFF_BW 300
typedef struct _tap_rtp_stat_t {
- gboolean first_packet; /**< do not use in code that is called after rtppacket_analyse */
+ bool first_packet; /**< do not use in code that is called after rtppacket_analyse */
/* use (flags & STAT_FLAG_FIRST) instead */
/* all of the following fields will be initialized after
* rtppacket_analyse has been called
*/
- guint32 flags; /* see STAT_FLAG-defines below */
- guint16 seq_num;
+ uint32_t flags; /* see STAT_FLAG-defines below */
+ uint16_t seq_num;
uint64_t timestamp; /* The generated "extended" timestamp */
uint64_t seq_timestamp; /* The last in-sequence extended timestamp */
double bandwidth;
bw_history_item bw_history[BUFF_BW];
- guint16 bw_start_index;
- guint16 bw_index;
- guint32 total_bytes;
- guint32 clock_rate;
+ uint16_t bw_start_index;
+ uint16_t bw_index;
+ uint32_t total_bytes;
+ uint32_t clock_rate;
double delta;
double jitter;
double diff;
@@ -75,21 +75,21 @@ typedef struct _tap_rtp_stat_t {
double max_jitter;
double max_skew;
double mean_jitter;
- guint32 max_nr;
- guint16 start_seq_nr;
- guint16 stop_seq_nr;
- guint32 total_nr;
- guint32 sequence;
- gboolean under;
- gint seq_cycles;
- guint16 pt;
+ uint32_t max_nr;
+ uint16_t start_seq_nr;
+ uint16_t stop_seq_nr;
+ uint32_t total_nr;
+ uint32_t sequence;
+ bool under;
+ int seq_cycles;
+ uint16_t pt;
int reg_pt;
- guint32 first_packet_num;
- guint last_payload_len;
+ uint32_t first_packet_num;
+ unsigned last_payload_len;
} tap_rtp_stat_t;
typedef struct _tap_rtp_save_data_t {
- guint32 timestamp;
+ uint32_t timestamp;
unsigned int payload_type;
size_t payload_len;
} tap_rtp_save_data_t;
diff --git a/ui/tap-rtp-common.c b/ui/tap-rtp-common.c
index b2c39290ab..1f9fbd3a54 100644
--- a/ui/tap-rtp-common.c
+++ b/ui/tap-rtp-common.c
@@ -32,7 +32,7 @@
#include "tap-rtp-common.h"
/* XXX: are changes needed to properly handle situations where
- info_all_data_present == FALSE ?
+ info_all_data_present == false ?
E.G., when captured frames are truncated.
*/
@@ -40,8 +40,8 @@
/* Type for storing and writing rtpdump information */
typedef struct st_rtpdump_info {
double rec_time; /**< milliseconds since start of recording */
- guint16 num_samples; /**< number of bytes in *frame */
- const guint8 *samples; /**< data bytes */
+ uint16_t num_samples; /**< number of bytes in *frame */
+ const uint8_t *samples; /**< data bytes */
} rtpdump_info_t;
/****************************************************************************/
@@ -107,7 +107,7 @@ void rtpstream_info_free_all(rtpstream_info_t *info)
/****************************************************************************/
/* GCompareFunc style comparison function for rtpstream_info_t */
-gint rtpstream_info_cmp(gconstpointer aa, gconstpointer bb)
+int rtpstream_info_cmp(gconstpointer aa, gconstpointer bb)
{
const rtpstream_info_t *a = (const rtpstream_info_t *)aa;
const rtpstream_info_t *b = (const rtpstream_info_t *)bb;
@@ -124,18 +124,18 @@ gint rtpstream_info_cmp(gconstpointer aa, gconstpointer bb)
/****************************************************************************/
/* compare the endpoints of two RTP streams */
-gboolean rtpstream_info_is_reverse(const rtpstream_info_t *stream_a, rtpstream_info_t *stream_b)
+bool rtpstream_info_is_reverse(const rtpstream_info_t *stream_a, rtpstream_info_t *stream_b)
{
if (stream_a == NULL || stream_b == NULL)
- return FALSE;
+ return false;
if ((addresses_equal(&(stream_a->id.src_addr), &(stream_b->id.dst_addr)))
&& (stream_a->id.src_port == stream_b->id.dst_port)
&& (addresses_equal(&(stream_a->id.dst_addr), &(stream_b->id.src_addr)))
&& (stream_a->id.dst_port == stream_b->id.src_port))
- return TRUE;
+ return true;
else
- return FALSE;
+ return false;
}
/****************************************************************************/
@@ -206,7 +206,7 @@ remove_tap_listener_rtpstream(rtpstream_tapinfo_t *tapinfo)
{
if (tapinfo && tapinfo->is_registered) {
remove_tap_listener(tapinfo);
- tapinfo->is_registered = FALSE;
+ tapinfo->is_registered = false;
}
}
@@ -229,11 +229,11 @@ register_tap_listener_rtpstream(rtpstream_tapinfo_t *tapinfo, const char *fstrin
if (tap_error) {
tap_error(error_string);
}
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
- tapinfo->is_registered = TRUE;
+ tapinfo->is_registered = true;
}
}
@@ -253,12 +253,12 @@ register_tap_listener_rtpstream(rtpstream_tapinfo_t *tapinfo, const char *fstrin
* the RTP/RTCP header and (optionally) the actual payload.
*/
-static const gchar *PAYLOAD_UNKNOWN_STR = "Unknown";
+static const char *PAYLOAD_UNKNOWN_STR = "Unknown";
static void update_payload_names(rtpstream_info_t *stream_info, const struct _rtp_info *rtpinfo)
{
GString *payload_type_names;
- const gchar *new_payload_type_str;
+ const char *new_payload_type_str;
/* Ensure that we have non empty payload_type_str */
if (rtpinfo->info_payload_type_str != NULL) {
@@ -287,10 +287,10 @@ static void update_payload_names(rtpstream_info_t *stream_info, const struct _rt
g_free(stream_info->all_payload_type_names);
}
stream_info->all_payload_type_names = payload_type_names->str;
- g_string_free(payload_type_names, FALSE);
+ g_string_free(payload_type_names, false);
}
-gboolean rtpstream_is_payload_used(const rtpstream_info_t *stream_info, const guint8 payload_type)
+bool rtpstream_is_payload_used(const rtpstream_info_t *stream_info, const uint8_t payload_type)
{
return stream_info->payload_type_names[payload_type] != NULL;
}
@@ -304,12 +304,12 @@ gboolean rtpstream_is_payload_used(const rtpstream_info_t *stream_info, const gu
*/
void rtp_write_header(rtpstream_info_t *strinfo, FILE *file)
{
- guint32 start_sec; /* start of recording (GMT) (seconds) */
- guint32 start_usec; /* start of recording (GMT) (microseconds)*/
- guint32 source; /* network source (multicast address) */
+ uint32_t start_sec; /* start of recording (GMT) (seconds) */
+ uint32_t start_usec; /* start of recording (GMT) (microseconds)*/
+ uint32_t source; /* network source (multicast address) */
size_t sourcelen;
- guint16 port; /* UDP port */
- guint16 padding; /* 2 padding bytes */
+ uint16_t port; /* UDP port */
+ uint16_t padding; /* 2 padding bytes */
char* addr_str = address_to_display(NULL, &(strinfo->id.dst_addr));
fprintf(file, "#!rtpplay%s %s/%u\n", RTPFILE_VERSION,
@@ -319,7 +319,7 @@ void rtp_write_header(rtpstream_info_t *strinfo, FILE *file)
start_sec = g_htonl(strinfo->start_fd->abs_ts.secs);
start_usec = g_htonl(strinfo->start_fd->abs_ts.nsecs / 1000);
- /* rtpdump only accepts guint32 as source, will be fake for IPv6 */
+ /* rtpdump only accepts uint32_t as source, will be fake for IPv6 */
memset(&source, 0, sizeof source);
sourcelen = strinfo->id.src_addr.len;
if (sourcelen > sizeof source)
@@ -343,10 +343,10 @@ void rtp_write_header(rtpstream_info_t *strinfo, FILE *file)
/* utility function for writing a sample to file in rtpdump -F dump format (.rtp)*/
static void rtp_write_sample(rtpdump_info_t* rtpdump_info, FILE* file)
{
- guint16 length; /* length of packet, including this header (may
+ uint16_t length; /* length of packet, including this header (may
be smaller than plen if not whole packet recorded) */
- guint16 plen; /* actual header+payload length for RTP, 0 for RTCP */
- guint32 offset; /* milliseconds since the start of recording */
+ uint16_t plen; /* actual header+payload length for RTP, 0 for RTCP */
+ uint32_t offset; /* milliseconds since the start of recording */
length = g_htons(rtpdump_info->num_samples + 8);
plen = g_htons(rtpdump_info->num_samples);
@@ -375,7 +375,7 @@ tap_packet_status rtpstream_packet_cb(void *arg, packet_info *pinfo, epan_dissec
/* gather infos on the stream this packet is part of.
* Shallow copy addresses as this is just for examination. */
- rtpstream_id_copy_pinfo_shallow(pinfo,&new_stream_id,FALSE);
+ rtpstream_id_copy_pinfo_shallow(pinfo,&new_stream_id,false);
new_stream_id.ssrc = rtpinfo->info_sync_src;
if (tapinfo->mode == TAP_ANALYSE) {
@@ -394,7 +394,7 @@ tap_packet_status rtpstream_packet_cb(void *arg, packet_info *pinfo, epan_dissec
/* init info and collect id */
stream_info = rtpstream_info_malloc_and_init();
/* Deep copy addresses for the new entry. */
- rtpstream_id_copy_pinfo(pinfo,&(stream_info->id),FALSE);
+ rtpstream_id_copy_pinfo(pinfo,&(stream_info->id),false);
stream_info->id.ssrc = rtpinfo->info_sync_src;
/* init counters for first packet */
@@ -419,7 +419,7 @@ tap_packet_status rtpstream_packet_cb(void *arg, packet_info *pinfo, epan_dissec
else if (tapinfo->mode == TAP_SAVE) {
if (rtpstream_id_equal(&new_stream_id, &(tapinfo->filter_stream_fwd->id), RTPSTREAM_ID_EQUAL_SSRC)) {
/* XXX - what if rtpinfo->info_all_data_present is
- FALSE, so that we don't *have* all the data? */
+ false, so that we don't *have* all the data? */
rtpdump_info.rec_time = nstime_to_msec(&pinfo->abs_ts) -
nstime_to_msec(&tapinfo->filter_stream_fwd->start_fd->abs_ts);
rtpdump_info.num_samples = rtpinfo->info_data_len;
@@ -449,7 +449,7 @@ void rtpstream_info_calculate(const rtpstream_info_t *strinfo, rtpstream_info_ca
double sumt2;
double sumtTS;
double clock_drift_x;
- guint32 clock_rate_x;
+ uint32_t clock_rate_x;
double duration_x;
calc->src_addr_str = address_to_display(NULL, &(strinfo->id.src_addr));
@@ -489,7 +489,7 @@ void rtpstream_info_calculate(const rtpstream_info_t *strinfo, rtpstream_info_ca
if ((calc->packet_count >0) && (sumt2 > 0)) {
clock_drift_x = (calc->packet_count * sumtTS - sumt * sumTS) / (calc->packet_count * sumt2 - sumt * sumt);
calc->clock_drift_ms = duration_x * (clock_drift_x - 1.0);
- clock_rate_x = (guint32)(strinfo->rtp_stats.clock_rate * clock_drift_x);
+ clock_rate_x = (uint32_t)(strinfo->rtp_stats.clock_rate * clock_drift_x);
calc->freq_drift_hz = clock_drift_x * clock_rate_x;
calc->freq_drift_perc = 100.0 * (clock_drift_x - 1.0);
} else {
@@ -527,7 +527,7 @@ void rtpstream_info_analyse_init(rtpstream_info_t *stream_info, const packet_inf
stream_info->start_abs_time = pinfo->abs_ts;
/* reset RTP stats */
- stream_info->rtp_stats.first_packet = TRUE;
+ stream_info->rtp_stats.first_packet = true;
stream_info->rtp_stats.reg_pt = PT_UNDEFINED;
/* Get the Setup frame number who set this RTP stream */
@@ -550,7 +550,7 @@ void rtpstream_info_analyse_process(rtpstream_info_t *stream_info, const packet_
if (stream_info->rtp_stats.flags & STAT_FLAG_WRONG_TIMESTAMP
|| stream_info->rtp_stats.flags & STAT_FLAG_WRONG_SEQ)
- stream_info->problem = TRUE;
+ stream_info->problem = true;
/* increment the packets counter for this stream */
++(stream_info->packet_count);
@@ -559,7 +559,7 @@ void rtpstream_info_analyse_process(rtpstream_info_t *stream_info, const packet_
/****************************************************************************/
/* Get hash for rtpstream_info_t */
-guint rtpstream_to_hash(gconstpointer key)
+unsigned rtpstream_to_hash(gconstpointer key)
{
if (key) {
return rtpstream_id_to_hash(&((rtpstream_info_t *)key)->id);
@@ -574,14 +574,14 @@ guint rtpstream_to_hash(gconstpointer key)
void rtpstream_info_multihash_insert(GHashTable *multihash, rtpstream_info_t *new_stream_info)
{
GList *hlist = (GList *)g_hash_table_lookup(multihash, GINT_TO_POINTER(rtpstream_to_hash(new_stream_info)));
- gboolean found = FALSE;
+ bool found = false;
if (hlist) {
// Key exists in hash
GList *list = g_list_first(hlist);
while (list)
{
if (rtpstream_id_equal(&(new_stream_info->id), &((rtpstream_info_t *)(list->data))->id, RTPSTREAM_ID_EQUAL_SSRC)) {
- found = TRUE;
+ found = true;
break;
}
list = g_list_next(list);
@@ -622,7 +622,7 @@ rtpstream_info_t *rtpstream_info_multihash_lookup(GHashTable *multihash, rtpstre
/****************************************************************************/
/* Destroys GList used in multihash */
-void rtpstream_info_multihash_destroy_value(gpointer key _U_, gpointer value, gpointer user_data _U_)
+void rtpstream_info_multihash_destroy_value(void *key _U_, void *value, void *user_data _U_)
{
g_list_free((GList *)value);
}
diff --git a/ui/tap-rtp-common.h b/ui/tap-rtp-common.h
index 65c9d38e70..e22e1347f0 100644
--- a/ui/tap-rtp-common.h
+++ b/ui/tap-rtp-common.h
@@ -39,22 +39,22 @@ typedef enum {
typedef struct _tap_rtp_save_info_t {
FILE *fp;
- guint32 count;
+ uint32_t count;
tap_rtp_error_type_t error_type;
- gboolean saved;
+ bool saved;
} tap_rtp_save_info_t;
typedef struct _rtpstream_info_calc {
- gchar *src_addr_str;
- guint16 src_port;
- gchar *dst_addr_str;
- guint16 dst_port;
- guint32 ssrc;
- gchar *all_payload_type_names; /* Name of codec derived from fixed or dynamic codec names */
- guint32 packet_count;
- guint32 total_nr;
- guint32 packet_expected; /* Count of expected packets, derived from length of RTP stream */
- gint32 lost_num;
+ char *src_addr_str;
+ uint16_t src_port;
+ char *dst_addr_str;
+ uint16_t dst_port;
+ uint32_t ssrc;
+ char *all_payload_type_names; /* Name of codec derived from fixed or dynamic codec names */
+ uint32_t packet_count;
+ uint32_t total_nr;
+ uint32_t packet_expected; /* Count of expected packets, derived from length of RTP stream */
+ int32_t lost_num;
double lost_perc;
double max_delta;
double min_delta;
@@ -63,15 +63,15 @@ typedef struct _rtpstream_info_calc {
double max_jitter;
double max_skew;
double mean_jitter;
- gboolean problem; /* Indication that RTP stream contains something unusual -GUI should indicate it somehow */
+ bool problem; /* Indication that RTP stream contains something unusual -GUI should indicate it somehow */
double clock_drift_ms;
double freq_drift_hz;
double freq_drift_perc;
double duration_ms;
- guint32 sequence_err;
+ uint32_t sequence_err;
double start_time_ms; /**< Unit is ms */
- guint32 first_packet_num;
- guint32 last_packet_num;
+ uint32_t first_packet_num;
+ uint32_t last_packet_num;
} rtpstream_info_calc_t;
/**
@@ -89,21 +89,21 @@ void rtpstream_info_free_all(rtpstream_info_t* info);
*
* @return -1,0,1
*/
-gint rtpstream_info_cmp(gconstpointer aa, gconstpointer bb);
+int rtpstream_info_cmp(gconstpointer aa, gconstpointer bb);
/**
* Compares the endpoints of two RTP streams.
*
-* @return TRUE if the
+* @return true if the
*/
-gboolean rtpstream_info_is_reverse(const rtpstream_info_t *stream_a, rtpstream_info_t *stream_b);
+bool rtpstream_info_is_reverse(const rtpstream_info_t *stream_a, rtpstream_info_t *stream_b);
/**
* Checks if payload_type is used in rtpstream.
*
- * @returns TRUE if is used
+ * @returns true if is used
*/
-gboolean rtpstream_is_payload_used(const rtpstream_info_t *stream_info, const guint8 payload_type);
+bool rtpstream_is_payload_used(const rtpstream_info_t *stream_info, const uint8_t payload_type);
/****************************************************************************/
/* INTERFACE */
@@ -155,7 +155,7 @@ void rtpstream_info_analyse_process(rtpstream_info_t *stream_info, const packet_
/**
* Get hash key for rtpstream_info_t
*/
-guint rtpstream_to_hash(gconstpointer key);
+unsigned rtpstream_to_hash(gconstpointer key);
/**
* Insert new_stream_info into multihash
@@ -170,7 +170,7 @@ rtpstream_info_t *rtpstream_info_multihash_lookup(GHashTable *multihash, rtpstre
/**
* GHFunc () for destroying GList in multihash
*/
-void rtpstream_info_multihash_destroy_value(gpointer key, gpointer value, gpointer user_data);
+void rtpstream_info_multihash_destroy_value(void *key, void *value, void *user_data);
#ifdef __cplusplus
}
diff --git a/ui/tap-sctp-analysis.c b/ui/tap-sctp-analysis.c
index 9a4427a4cd..150074fca5 100644
--- a/ui/tap-sctp-analysis.c
+++ b/ui/tap-sctp-analysis.c
@@ -35,16 +35,16 @@
#define ADDRESS_BACKWARD_ADD_BACKWARD_VTAG 9
#define ASSOC_NOT_FOUND 10
-static sctp_allassocs_info_t sctp_tapinfo_struct = {0, NULL, FALSE, NULL};
+static sctp_allassocs_info_t sctp_tapinfo_struct;
static void
-free_first(gpointer data, gpointer user_data _U_)
+free_first(void *data, void *user_data _U_)
{
g_free(data);
}
static void
-tsn_free(gpointer data)
+tsn_free(void *data)
{
tsn_t *tsn;
@@ -59,7 +59,7 @@ tsn_free(gpointer data)
}
static void
-chunk_free(gpointer data)
+chunk_free(void *data)
{
sctp_addr_chunk *chunk = (sctp_addr_chunk *) data;
@@ -68,7 +68,7 @@ chunk_free(gpointer data)
}
static void
-store_free(gpointer data)
+store_free(void *data)
{
address *addr = (address *) data;
@@ -137,16 +137,16 @@ reset(void *arg)
}
if (info->sort_tsn1 != NULL)
- g_ptr_array_free(info->sort_tsn1, TRUE);
+ g_ptr_array_free(info->sort_tsn1, true);
if (info->sort_tsn2 != NULL)
- g_ptr_array_free(info->sort_tsn2, TRUE);
+ g_ptr_array_free(info->sort_tsn2, true);
if (info->sort_sack1 != NULL)
- g_ptr_array_free(info->sort_sack1, TRUE);
+ g_ptr_array_free(info->sort_sack1, true);
if (info->sort_sack2 != NULL)
- g_ptr_array_free(info->sort_sack2, TRUE);
+ g_ptr_array_free(info->sort_sack2, true);
if (info->min_max != NULL)
{
@@ -175,7 +175,7 @@ reset(void *arg)
static sctp_assoc_info_t *
calc_checksum(const struct _sctp_info *check_data, sctp_assoc_info_t *data)
{
- gboolean ok = FALSE;
+ bool ok = false;
if (check_data->adler32_calculated)
{
@@ -196,7 +196,7 @@ calc_checksum(const struct _sctp_info *check_data, sctp_assoc_info_t *data)
char str[] = "ADLER32";
(void) g_strlcpy(data->checksum_type, str, 8);
data->n_checksum_errors=(data->n_adler32_calculated-data->n_adler32_correct);
- ok = TRUE;
+ ok = true;
}
}
@@ -207,7 +207,7 @@ calc_checksum(const struct _sctp_info *check_data, sctp_assoc_info_t *data)
char str[] = "CRC32C";
(void) g_strlcpy(data->checksum_type, str, 8);
data->n_checksum_errors=data->n_crc32c_calculated-data->n_crc32c_correct;
- ok = TRUE;
+ ok = true;
}
}
@@ -246,7 +246,7 @@ find_assoc(sctp_tmp_info_t *needle)
}
static sctp_assoc_info_t *
-add_chunk_count(address *vadd, sctp_assoc_info_t *info, guint32 direction, guint32 type)
+add_chunk_count(address *vadd, sctp_assoc_info_t *info, uint32_t direction, uint32_t type)
{
GList *list;
sctp_addr_chunk *ch=NULL;
@@ -291,7 +291,7 @@ add_chunk_count(address *vadd, sctp_assoc_info_t *info, guint32 direction, guint
}
static sctp_assoc_info_t *
-add_address(address *vadd, sctp_assoc_info_t *info, guint16 direction)
+add_address(address *vadd, sctp_assoc_info_t *info, uint16_t direction)
{
GList *list;
address *v=NULL;
@@ -324,23 +324,23 @@ static tap_packet_status
packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const void *data, tap_flags_t flags _U_)
{
const struct _sctp_info *sctp_info = (const struct _sctp_info *)data;
- guint32 chunk_number = 0, tsnumber, framenumber;
+ uint32_t chunk_number = 0, tsnumber, framenumber;
sctp_tmp_info_t tmp_info;
sctp_assoc_info_t *info = NULL;
sctp_error_info_t *error = NULL;
- guint16 type, length = 0;
+ uint16_t type, length = 0;
address *store = NULL;
tsn_t *tsn = NULL;
tsn_t *sack = NULL;
- guint8 *t_s_n = NULL;
- gboolean sackchunk = FALSE;
- gboolean datachunk = FALSE;
- gboolean forwardchunk = FALSE;
+ uint8_t *t_s_n = NULL;
+ bool sackchunk = false;
+ bool datachunk = false;
+ bool forwardchunk = false;
struct tsn_sort *tsn_s;
int i;
- guint8 idx = 0;
- gboolean tsn_used = FALSE;
- gboolean sack_used = FALSE;
+ uint8_t idx = 0;
+ bool tsn_used = false;
+ bool sack_used = false;
framenumber = pinfo->num;
@@ -401,10 +401,10 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
info->verification_tag2 = tmp_info.verification_tag2;
info->initiate_tag = tmp_info.initiate_tag;
info->n_tvbs = tmp_info.n_tvbs;
- info->init = FALSE;
- info->initack = FALSE;
- info->check_address = FALSE;
- info->firstdata = TRUE;
+ info->init = false;
+ info->initack = false;
+ info->check_address = false;
+ info->firstdata = true;
info->direction = sctp_info->direction;
info->instream1 = 0;
info->outstream1 = 0;
@@ -471,8 +471,8 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
sack = g_new0(tsn_t, 1);
copy_address(&sack->src, &tmp_info.src);
copy_address(&sack->dst, &tmp_info.dst);
- sack->secs=tsn->secs = (guint32)pinfo->rel_ts.secs;
- sack->usecs=tsn->usecs = (guint32)pinfo->rel_ts.nsecs/1000;
+ sack->secs=tsn->secs = (uint32_t)pinfo->rel_ts.secs;
+ sack->usecs=tsn->usecs = (uint32_t)pinfo->rel_ts.nsecs/1000;
if (((tvb_get_guint8(sctp_info->tvb[0],0)) == SCTP_DATA_CHUNK_ID) ||
((tvb_get_guint8(sctp_info->tvb[0],0)) == SCTP_I_DATA_CHUNK_ID) ||
@@ -525,12 +525,12 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_CHUNK_ID)
{
- info->init = TRUE;
+ info->init = true;
}
else
{
info->initack_dir = 1;
- info->initack = TRUE;
+ info->initack = true;
}
idx = tvb_get_guint8(sctp_info->tvb[0],0);
@@ -542,21 +542,21 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
info = add_chunk_count(&tmp_info.src, info, 1, idx);
if (info->direction == 1) {
if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_CHUNK_ID) {
- info->dir1->init = TRUE;
+ info->dir1->init = true;
info->dir1->init_min_tsn = info->min_tsn1;
info->dir1->init_vtag = info->verification_tag2;
} else if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_ACK_CHUNK_ID) {
- info->dir1->initack = TRUE;
+ info->dir1->initack = true;
info->dir1->initack_min_tsn = info->min_tsn1;
info->dir1->initack_vtag = info->verification_tag2;
}
} else {
if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_CHUNK_ID) {
- info->dir2->init = TRUE;
+ info->dir2->init = true;
info->dir2->init_min_tsn = info->min_tsn1;
info->dir2->init_vtag = info->verification_tag2;
} else if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_ACK_CHUNK_ID) {
- info->dir2->initack = TRUE;
+ info->dir2->initack = true;
info->dir2->initack_min_tsn = info->min_tsn1;
info->dir2->initack_vtag = info->verification_tag2;
}
@@ -588,7 +588,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
if ((tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_DATA_CHUNK_ID) ||
(tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_I_DATA_CHUNK_ID))
{
- datachunk = TRUE;
+ datachunk = true;
if (tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_DATA_CHUNK_ID) {
length = tvb_get_ntohs(sctp_info->tvb[chunk_number], CHUNK_LENGTH_OFFSET) - DATA_CHUNK_HEADER_LENGTH;
} else {
@@ -600,14 +600,14 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
}
if ((tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_FORWARD_TSN_CHUNK_ID))
{
- forwardchunk = TRUE;
+ forwardchunk = true;
length = tvb_get_ntohs(sctp_info->tvb[chunk_number], CHUNK_LENGTH_OFFSET);
info->n_forward_chunks++;
}
if (datachunk || forwardchunk)
{
tsnumber = tvb_get_ntohl((sctp_info->tvb)[chunk_number], DATA_CHUNK_TSN_OFFSET);
- info->firstdata = FALSE;
+ info->firstdata = false;
if (tsnumber < info->min_tsn1)
info->min_tsn1 = tsnumber;
if (tsnumber > info->max_tsn1)
@@ -625,19 +625,19 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
tsn->first_tsn = tsnumber;
if (datachunk)
{
- t_s_n = (guint8 *)g_malloc(16);
- tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(t_s_n),0, 16);
+ t_s_n = (uint8_t *)g_malloc(16);
+ tvb_memcpy(sctp_info->tvb[chunk_number], (uint8_t *)(t_s_n),0, 16);
}
else
{
- t_s_n = (guint8 *)g_malloc(length);
- tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(t_s_n),0, length);
+ t_s_n = (uint8_t *)g_malloc(length);
+ tvb_memcpy(sctp_info->tvb[chunk_number], (uint8_t *)(t_s_n),0, length);
}
tsn->tsns = g_list_append(tsn->tsns, t_s_n);
tsn_s = g_new(struct tsn_sort, 1);
tsn_s->tsnumber = tsnumber;
- tsn_s->secs = tsn->secs = (guint32)pinfo->rel_ts.secs;
- tsn_s->usecs = tsn->usecs = (guint32)pinfo->rel_ts.nsecs/1000;
+ tsn_s->secs = tsn->secs = (uint32_t)pinfo->rel_ts.secs;
+ tsn_s->usecs = tsn->usecs = (uint32_t)pinfo->rel_ts.nsecs/1000;
tsn_s->offset = 0;
tsn_s->framenumber = framenumber;
if (datachunk)
@@ -677,14 +677,14 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
length = tvb_get_ntohs(sctp_info->tvb[chunk_number], CHUNK_LENGTH_OFFSET);
if (sack->first_tsn == 0)
sack->first_tsn = tsnumber;
- t_s_n = (guint8 *)g_malloc(length);
- tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(t_s_n),0, length);
+ t_s_n = (uint8_t *)g_malloc(length);
+ tvb_memcpy(sctp_info->tvb[chunk_number], (uint8_t *)(t_s_n),0, length);
sack->tsns = g_list_append(sack->tsns, t_s_n);
- sackchunk = TRUE;
+ sackchunk = true;
tsn_s = g_new(struct tsn_sort, 1);
tsn_s->tsnumber = tsnumber;
- tsn_s->secs = tsn->secs = (guint32)pinfo->rel_ts.secs;
- tsn_s->usecs = tsn->usecs = (guint32)pinfo->rel_ts.nsecs/1000;
+ tsn_s->secs = tsn->secs = (uint32_t)pinfo->rel_ts.secs;
+ tsn_s->usecs = tsn->usecs = (uint32_t)pinfo->rel_ts.nsecs/1000;
tsn_s->offset = 0;
tsn_s->framenumber = framenumber;
tsn_s->length = tvb_get_ntohl(sctp_info->tvb[chunk_number], SACK_CHUNK_ADV_REC_WINDOW_CREDIT_OFFSET);
@@ -712,7 +712,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
}
if (info->verification_tag1 != 0 || info->verification_tag2 != 0)
{
- guint32 number;
+ uint32_t number;
store = g_new(address, 1);
copy_address(store, &tmp_info.src);
info = add_address(store, info, info->direction);
@@ -726,17 +726,17 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
info->frame_numbers=g_list_prepend(info->frame_numbers, GUINT_TO_POINTER(number));
if (datachunk || forwardchunk) {
info->tsn1 = g_list_prepend(info->tsn1, tsn);
- tsn_used = TRUE;
+ tsn_used = true;
}
- if (sackchunk == TRUE) {
+ if (sackchunk == true) {
info->sack2 = g_list_prepend(info->sack2, sack);
- sack_used = TRUE;
+ sack_used = true;
}
sctp_tapinfo_struct.assoc_info_list = g_list_append(sctp_tapinfo_struct.assoc_info_list, info);
}
else
{
- gchar* tmp_str;
+ char* tmp_str;
error = g_new(sctp_error_info_t, 1);
error->frame_number = pinfo->num;
error->chunk_info[0] = '\0';
@@ -762,7 +762,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
} /* endif (!info) */
else
{
- guint32 number;
+ uint32_t number;
info->direction = sctp_info->direction;
if (info->verification_tag1 == 0 && info->verification_tag2 != sctp_info->verification_tag) {
@@ -786,8 +786,8 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
sack = g_new0(tsn_t, 1);
copy_address(&sack->src, &tmp_info.src);
copy_address(&sack->dst, &tmp_info.dst);
- sack->secs=tsn->secs = (guint32)pinfo->rel_ts.secs;
- sack->usecs=tsn->usecs = (guint32)pinfo->rel_ts.nsecs/1000;
+ sack->secs=tsn->secs = (uint32_t)pinfo->rel_ts.secs;
+ sack->usecs=tsn->usecs = (uint32_t)pinfo->rel_ts.nsecs/1000;
if (((tvb_get_guint8(sctp_info->tvb[0],0)) == SCTP_DATA_CHUNK_ID) ||
((tvb_get_guint8(sctp_info->tvb[0],0)) == SCTP_I_DATA_CHUNK_ID) ||
@@ -860,7 +860,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
info->outstream2 = tvb_get_ntohs(sctp_info->tvb[0],INIT_CHUNK_NUMBER_OF_OUTBOUND_STREAMS_OFFSET);
info->arwnd2 = tvb_get_ntohl(sctp_info->tvb[0],INIT_CHUNK_ADV_REC_WINDOW_CREDIT_OFFSET);
info->tsn2 = g_list_prepend(info->tsn2, tsn);
- tsn_used = TRUE;
+ tsn_used = true;
}
else if (info->direction == 1)
{
@@ -872,7 +872,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
info->outstream1 = tvb_get_ntohs(sctp_info->tvb[0],INIT_CHUNK_NUMBER_OF_OUTBOUND_STREAMS_OFFSET);
info->arwnd1 = tvb_get_ntohl(sctp_info->tvb[0],INIT_CHUNK_ADV_REC_WINDOW_CREDIT_OFFSET);
info->tsn1 = g_list_prepend(info->tsn1, tsn);
- tsn_used = TRUE;
+ tsn_used = true;
}
idx = tvb_get_guint8(sctp_info->tvb[0],0);
@@ -902,30 +902,30 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
}
if (info->direction == 1) {
if (info->dir1->init || info->dir1->initack) {
- info->init_collision = TRUE;
+ info->init_collision = true;
}
if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_CHUNK_ID) {
- info->dir1->init = TRUE;
+ info->dir1->init = true;
info->dir1->init_min_tsn = tvb_get_ntohl((sctp_info->tvb)[0], INIT_CHUNK_INITIAL_TSN_OFFSET);
info->min_tsn1 = info->dir1->init_min_tsn;
info->dir1->init_vtag = tvb_get_ntohl(sctp_info->tvb[0], INIT_CHUNK_INITIATE_TAG_OFFSET);
} else if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_ACK_CHUNK_ID) {
- info->dir1->initack = TRUE;
+ info->dir1->initack = true;
info->dir1->initack_min_tsn = tvb_get_ntohl((sctp_info->tvb)[0], INIT_CHUNK_INITIAL_TSN_OFFSET);
info->min_tsn1 = info->dir1->initack_min_tsn;
info->dir1->initack_vtag = tvb_get_ntohl(sctp_info->tvb[0], INIT_CHUNK_INITIATE_TAG_OFFSET);
}
} else {
if (info->dir2->init || info->dir2->initack) {
- info->init_collision = TRUE;
+ info->init_collision = true;
}
if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_CHUNK_ID) {
- info->dir2->init = TRUE;
+ info->dir2->init = true;
info->dir2->init_min_tsn = tvb_get_ntohl((sctp_info->tvb)[0], INIT_CHUNK_INITIAL_TSN_OFFSET);
info->min_tsn2 = info->dir2->init_min_tsn;
info->dir2->init_vtag = tvb_get_ntohl(sctp_info->tvb[0], INIT_CHUNK_INITIATE_TAG_OFFSET);
} else if (tvb_get_guint8(sctp_info->tvb[0],0) == SCTP_INIT_ACK_CHUNK_ID) {
- info->dir2->initack = TRUE;
+ info->dir2->initack = true;
info->dir2->initack_min_tsn = tvb_get_ntohl((sctp_info->tvb)[0], INIT_CHUNK_INITIAL_TSN_OFFSET);
info->min_tsn2 = info->dir2->initack_min_tsn;
info->dir2->initack_vtag = tvb_get_ntohl(sctp_info->tvb[0], INIT_CHUNK_INITIATE_TAG_OFFSET);
@@ -933,12 +933,12 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
}
if ((tvb_get_guint8(sctp_info->tvb[0],0)) == SCTP_INIT_ACK_CHUNK_ID)
{
- info->initack = TRUE;
+ info->initack = true;
info->initack_dir = info->direction;
}
else if ((tvb_get_guint8(sctp_info->tvb[0],0)) == SCTP_INIT_CHUNK_ID)
{
- info->init = TRUE;
+ info->init = true;
}
}
else
@@ -974,9 +974,9 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
if ((tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_DATA_CHUNK_ID) ||
(tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_I_DATA_CHUNK_ID))
- datachunk = TRUE;
+ datachunk = true;
if (tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_FORWARD_TSN_CHUNK_ID)
- forwardchunk = TRUE;
+ forwardchunk = true;
if ((datachunk || forwardchunk) && tsn != NULL)
{
tsnumber = tvb_get_ntohl((sctp_info->tvb)[chunk_number], DATA_CHUNK_TSN_OFFSET);
@@ -984,8 +984,8 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
tsn->first_tsn = tsnumber;
if (datachunk)
{
- t_s_n = (guint8 *)g_malloc(16);
- tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(t_s_n),0, 16);
+ t_s_n = (uint8_t *)g_malloc(16);
+ tvb_memcpy(sctp_info->tvb[chunk_number], (uint8_t *)(t_s_n),0, 16);
if (tvb_get_guint8(sctp_info->tvb[chunk_number],0) == SCTP_DATA_CHUNK_ID) {
length=tvb_get_ntohs(sctp_info->tvb[chunk_number], CHUNK_LENGTH_OFFSET)-DATA_CHUNK_HEADER_LENGTH;
} else {
@@ -997,16 +997,16 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
else
{
length=tvb_get_ntohs(sctp_info->tvb[chunk_number], CHUNK_LENGTH_OFFSET);
- t_s_n = (guint8 *)g_malloc(length);
- tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(t_s_n),0, length);
+ t_s_n = (uint8_t *)g_malloc(length);
+ tvb_memcpy(sctp_info->tvb[chunk_number], (uint8_t *)(t_s_n),0, length);
info->n_forward_chunks++;
}
tsn->tsns = g_list_append(tsn->tsns, t_s_n);
tsn_s = g_new0(struct tsn_sort, 1);
tsn_s->tsnumber = tsnumber;
- tsn_s->secs = tsn->secs = (guint32)pinfo->rel_ts.secs;
- tsn_s->usecs = tsn->usecs = (guint32)pinfo->rel_ts.nsecs/1000;
+ tsn_s->secs = tsn->secs = (uint32_t)pinfo->rel_ts.secs;
+ tsn_s->usecs = tsn->usecs = (uint32_t)pinfo->rel_ts.nsecs/1000;
tsn_s->offset = 0;
tsn_s->framenumber = framenumber;
tsn_s->length = length;
@@ -1030,7 +1030,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
if (info->direction == 1)
{
if (info->firstdata) {
- info->firstdata = FALSE;
+ info->firstdata = false;
if (info->init_collision) {
if (tsnumber != info->min_tsn1) {
info->min_tsn1 = info->dir1->init_min_tsn;
@@ -1069,12 +1069,12 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
}
if (datachunk)
{
- if (info->init == FALSE) {
- guint16 tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
+ if (info->init == false) {
+ uint16_t tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
if (info->outstream1 < tmp) info->outstream1 = tmp;
}
- if (info->initack == FALSE) {
- guint16 tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
+ if (info->initack == false) {
+ uint16_t tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
if (info->instream2 < tmp) info->instream2 = tmp;
}
}
@@ -1085,7 +1085,7 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
else if (info->direction == 2)
{
if (info->firstdata) {
- info->firstdata = FALSE;
+ info->firstdata = false;
if (info->init_collision) {
if (tsnumber != info->min_tsn2) {
info->min_tsn2 = info->dir2->init_min_tsn;
@@ -1135,12 +1135,12 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
}
if (datachunk)
{
- if (info->init == FALSE) {
- guint16 tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
+ if (info->init == false) {
+ uint16_t tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
if (info->instream1 < tmp) info->instream1 = tmp;
}
- if (info->initack == FALSE) {
- guint16 tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
+ if (info->initack == false) {
+ uint16_t tmp = tvb_get_ntohs((sctp_info->tvb)[chunk_number], DATA_CHUNK_STREAM_ID_OFFSET)+1;
if (info->outstream2 < tmp) info->outstream2 = tmp;
}
}
@@ -1159,14 +1159,14 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
if (sack->first_tsn == 0)
sack->first_tsn = tsnumber;
- t_s_n = (guint8 *)g_malloc(length);
- tvb_memcpy(sctp_info->tvb[chunk_number], (guint8 *)(t_s_n),0, length);
+ t_s_n = (uint8_t *)g_malloc(length);
+ tvb_memcpy(sctp_info->tvb[chunk_number], (uint8_t *)(t_s_n),0, length);
sack->tsns = g_list_append(sack->tsns, t_s_n);
- sackchunk = TRUE;
+ sackchunk = true;
tsn_s = g_new0(struct tsn_sort, 1);
tsn_s->tsnumber = tsnumber;
- tsn_s->secs = tsn->secs = (guint32)pinfo->rel_ts.secs;
- tsn_s->usecs = tsn->usecs = (guint32)pinfo->rel_ts.nsecs/1000;
+ tsn_s->secs = tsn->secs = (uint32_t)pinfo->rel_ts.secs;
+ tsn_s->usecs = tsn->usecs = (uint32_t)pinfo->rel_ts.nsecs/1000;
tsn_s->offset = 0;
tsn_s->framenumber = framenumber;
tsn_s->length = tvb_get_ntohl(sctp_info->tvb[chunk_number], SACK_CHUNK_ADV_REC_WINDOW_CREDIT_OFFSET);
@@ -1220,15 +1220,15 @@ packet(void *tapdata _U_, packet_info *pinfo, epan_dissect_t *edt _U_, const voi
info->tsn1 = g_list_prepend(info->tsn1, tsn);
else if (info->direction == 2)
info->tsn2 = g_list_prepend(info->tsn2, tsn);
- tsn_used = TRUE;
+ tsn_used = true;
}
- if (sackchunk == TRUE)
+ if (sackchunk == true)
{
if (info->direction == 1)
info->sack2 = g_list_prepend(info->sack2, sack);
else if(info->direction == 2)
info->sack1 = g_list_prepend(info->sack1, sack);
- sack_used = TRUE;
+ sack_used = true;
}
info->n_tvbs += sctp_info->number_of_tvbs;
sctp_tapinfo_struct.sum_tvbs += sctp_info->number_of_tvbs;
@@ -1251,7 +1251,7 @@ remove_tap_listener_sctp_stat(void)
{
if (sctp_tapinfo_struct.is_registered) {
remove_tap_listener(&sctp_tapinfo_struct);
- sctp_tapinfo_struct.is_registered = FALSE;
+ sctp_tapinfo_struct.is_registered = false;
}
}
@@ -1271,7 +1271,7 @@ sctp_stat_get_info(void)
}
const sctp_assoc_info_t *
-get_sctp_assoc_info(guint16 assoc_id)
+get_sctp_assoc_info(uint16_t assoc_id)
{
sctp_tmp_info_t needle = { .assoc_id = assoc_id };
return find_assoc(&needle);
@@ -1286,9 +1286,9 @@ register_tap_listener_sctp_stat(void)
{
if ((error_string = register_tap_listener("sctp", &sctp_tapinfo_struct, NULL, 0, reset, packet, NULL, NULL))) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
return;
}
- sctp_tapinfo_struct.is_registered=TRUE;
+ sctp_tapinfo_struct.is_registered=true;
}
}
diff --git a/ui/tap-sctp-analysis.h b/ui/tap-sctp-analysis.h
index 0f7f1ebc4e..054d91b1aa 100644
--- a/ui/tap-sctp-analysis.h
+++ b/ui/tap-sctp-analysis.h
@@ -139,116 +139,116 @@ extern "C" {
#define MAX_SCTP_CHUNK_TYPE 256
typedef struct _tsn {
- guint32 frame_number;
- guint32 secs; /* Absolute seconds */
- guint32 usecs;
+ uint32_t frame_number;
+ uint32_t secs; /* Absolute seconds */
+ uint32_t usecs;
address src;
address dst;
- guint32 first_tsn;
+ uint32_t first_tsn;
GList *tsns;
} tsn_t;
typedef struct _sctp_tmp_info {
- guint16 assoc_id;
- guint16 direction;
+ uint16_t assoc_id;
+ uint16_t direction;
address src;
address dst;
- guint16 port1;
- guint16 port2;
- guint32 verification_tag1;
- guint32 verification_tag2;
- guint32 initiate_tag;
- guint32 n_tvbs;
+ uint16_t port1;
+ uint16_t port2;
+ uint32_t verification_tag1;
+ uint32_t verification_tag2;
+ uint32_t initiate_tag;
+ uint32_t n_tvbs;
} sctp_tmp_info_t;
typedef struct _sctp_init_collision {
- guint32 init_vtag; /* initiate tag of the INIT chunk */
- guint32 initack_vtag; /* initiate tag of the INIT-ACK chunk */
- guint32 init_min_tsn; /* initial tsn of the INIT chunk */
- guint32 initack_min_tsn; /* initial tsn of the INIT-ACK chunk */
+ uint32_t init_vtag; /* initiate tag of the INIT chunk */
+ uint32_t initack_vtag; /* initiate tag of the INIT-ACK chunk */
+ uint32_t init_min_tsn; /* initial tsn of the INIT chunk */
+ uint32_t initack_min_tsn; /* initial tsn of the INIT-ACK chunk */
bool init:1;
bool initack:1;
} sctp_init_collision_t;
struct tsn_sort{
- guint32 tsnumber;
- guint32 secs;
- guint32 usecs;
- guint32 offset;
- guint32 length;
- guint32 framenumber;
+ uint32_t tsnumber;
+ uint32_t secs;
+ uint32_t usecs;
+ uint32_t offset;
+ uint32_t length;
+ uint32_t framenumber;
};
typedef struct _sctp_addr_chunk {
- guint32 direction;
+ uint32_t direction;
address addr;
/* The array is initialized to MAX_SCTP_CHUNK_TYPE
* so that there is no memory overwrite
* when accessed using sctp chunk type as index.
*/
- guint32 addr_count[MAX_SCTP_CHUNK_TYPE];
+ uint32_t addr_count[MAX_SCTP_CHUNK_TYPE];
} sctp_addr_chunk;
typedef struct _sctp_assoc_info {
- guint16 assoc_id;
+ uint16_t assoc_id;
address src;
address dst;
- guint16 port1;
- guint16 port2;
- guint32 verification_tag1;
- guint32 verification_tag2;
- guint32 initiate_tag;
- guint32 n_tvbs;
+ uint16_t port1;
+ uint16_t port2;
+ uint32_t verification_tag1;
+ uint32_t verification_tag2;
+ uint32_t initiate_tag;
+ uint32_t n_tvbs;
GList *addr1;
GList *addr2;
- guint16 instream1;
- guint16 outstream1;
- guint16 instream2;
- guint16 outstream2;
- guint32 n_adler32_calculated;
- guint32 n_adler32_correct;
- guint32 n_crc32c_calculated;
- guint32 n_crc32c_correct;
- gchar checksum_type[8];
- guint32 n_checksum_errors;
- guint32 n_bundling_errors;
- guint32 n_padding_errors;
- guint32 n_length_errors;
- guint32 n_value_errors;
- guint32 n_data_chunks;
- guint32 n_forward_chunks;
- guint32 n_forward_chunks_ep1;
- guint32 n_forward_chunks_ep2;
- guint32 n_data_bytes;
- guint32 n_packets;
- guint32 n_data_chunks_ep1;
- guint32 n_data_bytes_ep1;
- guint32 n_data_chunks_ep2;
- guint32 n_data_bytes_ep2;
- guint32 n_sack_chunks_ep1;
- guint32 n_sack_chunks_ep2;
- guint32 n_array_tsn1;
- guint32 n_array_tsn2;
- guint32 max_window1;
- guint32 max_window2;
- guint32 arwnd1;
- guint32 arwnd2;
+ uint16_t instream1;
+ uint16_t outstream1;
+ uint16_t instream2;
+ uint16_t outstream2;
+ uint32_t n_adler32_calculated;
+ uint32_t n_adler32_correct;
+ uint32_t n_crc32c_calculated;
+ uint32_t n_crc32c_correct;
+ char checksum_type[8];
+ uint32_t n_checksum_errors;
+ uint32_t n_bundling_errors;
+ uint32_t n_padding_errors;
+ uint32_t n_length_errors;
+ uint32_t n_value_errors;
+ uint32_t n_data_chunks;
+ uint32_t n_forward_chunks;
+ uint32_t n_forward_chunks_ep1;
+ uint32_t n_forward_chunks_ep2;
+ uint32_t n_data_bytes;
+ uint32_t n_packets;
+ uint32_t n_data_chunks_ep1;
+ uint32_t n_data_bytes_ep1;
+ uint32_t n_data_chunks_ep2;
+ uint32_t n_data_bytes_ep2;
+ uint32_t n_sack_chunks_ep1;
+ uint32_t n_sack_chunks_ep2;
+ uint32_t n_array_tsn1;
+ uint32_t n_array_tsn2;
+ uint32_t max_window1;
+ uint32_t max_window2;
+ uint32_t arwnd1;
+ uint32_t arwnd2;
bool init:1;
bool initack:1;
bool firstdata:1;
bool init_collision:1;
- guint16 initack_dir;
- guint16 direction;
- guint32 min_secs;
- guint32 min_usecs;
- guint32 max_secs;
- guint32 max_usecs;
- guint32 min_tsn1;
- guint32 min_tsn2;
- guint32 max_tsn1;
- guint32 max_tsn2;
- guint32 max_bytes1;
- guint32 max_bytes2;
+ uint16_t initack_dir;
+ uint16_t direction;
+ uint32_t min_secs;
+ uint32_t min_usecs;
+ uint32_t max_secs;
+ uint32_t max_usecs;
+ uint32_t min_tsn1;
+ uint32_t min_tsn2;
+ uint32_t max_tsn1;
+ uint32_t max_tsn2;
+ uint32_t max_bytes1;
+ uint32_t max_bytes2;
sctp_init_collision_t *dir1;
sctp_init_collision_t *dir2;
GSList *min_max;
@@ -261,29 +261,29 @@ typedef struct _sctp_assoc_info {
GPtrArray *sort_tsn2;
GPtrArray *sort_sack2;
GList *sack2;
- gboolean check_address;
+ bool check_address;
GList* error_info_list;
/* The array is initialized to MAX_SCTP_CHUNK_TYPE
* so that there is no memory overwrite
* when accessed using sctp chunk type as index.
*/
- guint32 chunk_count[MAX_SCTP_CHUNK_TYPE];
- guint32 ep1_chunk_count[MAX_SCTP_CHUNK_TYPE];
- guint32 ep2_chunk_count[MAX_SCTP_CHUNK_TYPE];
- GList *addr_chunk_count;
+ uint32_t chunk_count[MAX_SCTP_CHUNK_TYPE];
+ uint32_t ep1_chunk_count[MAX_SCTP_CHUNK_TYPE];
+ uint32_t ep2_chunk_count[MAX_SCTP_CHUNK_TYPE];
+ GList *addr_chunk_count;
} sctp_assoc_info_t;
typedef struct _sctp_error_info {
- guint32 frame_number;
- gchar chunk_info[200];
- const gchar *info_text;
+ uint32_t frame_number;
+ char chunk_info[200];
+ const char *info_text;
} sctp_error_info_t;
typedef struct _sctp_allassocs_info {
- guint32 sum_tvbs;
+ uint32_t sum_tvbs;
GList *assoc_info_list;
- gboolean is_registered;
+ bool is_registered;
GList *children;
} sctp_allassocs_info_t;
@@ -297,7 +297,7 @@ void sctp_stat_scan(void);
void remove_tap_listener_sctp_stat(void);
-const sctp_assoc_info_t* get_sctp_assoc_info(guint16 assoc_id);
+const sctp_assoc_info_t* get_sctp_assoc_info(uint16_t assoc_id);
const sctp_assoc_info_t* get_selected_assoc(void);
#ifdef __cplusplus
diff --git a/ui/tap-tcp-stream.c b/ui/tap-tcp-stream.c
index 2f96441a83..211fa17285 100644
--- a/ui/tap-tcp-stream.c
+++ b/ui/tap-tcp-stream.c
@@ -48,10 +48,30 @@ tapall_tcpip_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_, cons
* We only know the stream number. Fill in our connection data.
* We assume that the server response is more interesting.
*/
- copy_address(&tg->src_address, &tcphdr->ip_dst);
- tg->src_port = tcphdr->th_dport;
- copy_address(&tg->dst_address, &tcphdr->ip_src);
- tg->dst_port = tcphdr->th_sport;
+ bool server_is_src;
+ if (tcphdr->th_flags & TH_SYN) {
+ if (tcphdr->th_flags & TH_ACK) {
+ /* SYN-ACK packet, so the server is the source. */
+ server_is_src = true;
+ } else {
+ /* SYN packet, so the server is the destination. */
+ server_is_src = false;
+ }
+ } else {
+ /* Fallback to assuming the lower numbered port is the server. */
+ server_is_src = tcphdr->th_sport < tcphdr->th_dport;
+ }
+ if (server_is_src) {
+ copy_address(&tg->src_address, &tcphdr->ip_src);
+ tg->src_port = tcphdr->th_sport;
+ copy_address(&tg->dst_address, &tcphdr->ip_dst);
+ tg->dst_port = tcphdr->th_dport;
+ } else {
+ copy_address(&tg->src_address, &tcphdr->ip_dst);
+ tg->src_port = tcphdr->th_dport;
+ copy_address(&tg->dst_address, &tcphdr->ip_src);
+ tg->dst_port = tcphdr->th_sport;
+ }
}
if (compare_headers(&tg->src_address, &tg->dst_address,
@@ -64,14 +84,29 @@ tapall_tcpip_packet(void *pct, packet_info *pinfo, epan_dissect_t *edt _U_, cons
struct segment *segment = g_new(struct segment, 1);
segment->next = NULL;
segment->num = pinfo->num;
- segment->rel_secs = (guint32)pinfo->rel_ts.secs;
+ segment->rel_secs = (uint32_t)pinfo->rel_ts.secs;
segment->rel_usecs = pinfo->rel_ts.nsecs/1000;
/* Currently unused
segment->abs_secs = pinfo->abs_ts.secs;
segment->abs_usecs = pinfo->abs_ts.nsecs/1000;
*/
+ /* tcphdr->th_rawseq is always the absolute sequence number.
+ * tcphdr->th_seq is either the relative or absolute sequence number
+ * depending on the TCP dissector preferences.
+ * The sack entries are also either the relative or absolute sequence
+ * number depending on the TCP dissector preferences.
+ * The TCP stream graphs have their own action / button press to
+ * switch between relative and absolute sequence numbers on the fly;
+ * if the TCP dissector hasn't calculated the relative sequence numbers,
+ * the tap will do so. (XXX - The calculation is cheap enough that we
+ * could do it here and store the offsets at the graph level to save
+ * memory. The TCP dissector could include its calculated base seq in
+ * the tap information to ensure consistency.)
+ */
segment->th_seq = tcphdr->th_seq;
segment->th_ack = tcphdr->th_ack;
+ segment->th_rawseq = tcphdr->th_rawseq;
+ segment->th_rawack = tcphdr->th_rawack;
segment->th_win = tcphdr->th_win;
segment->th_flags = tcphdr->th_flags;
segment->th_sport = tcphdr->th_sport;
@@ -120,7 +155,7 @@ graph_segment_list_get(capture_file *cf, struct tcp_graph *tg)
if (error_string) {
fprintf(stderr, "wireshark: Couldn't register tcp_graph tap: %s\n",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1); /* XXX: fix this */
}
cf_retap_packets(cf);
@@ -145,7 +180,7 @@ graph_segment_list_free(struct tcp_graph *tg)
}
int
-compare_headers(address *saddr1, address *daddr1, guint16 sport1, guint16 dport1, const address *saddr2, const address *daddr2, guint16 sport2, guint16 dport2, int dir)
+compare_headers(address *saddr1, address *daddr1, uint16_t sport1, uint16_t dport1, const address *saddr2, const address *daddr2, uint16_t sport2, uint16_t dport2, int dir)
{
int dir1, dir2;
@@ -212,7 +247,7 @@ static tap_packet_status
tap_tcpip_packet(void *pct, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *vip, tap_flags_t flags _U_)
{
int n;
- gboolean is_unique = TRUE;
+ bool is_unique = true;
th_t *th = (th_t *)pct;
const struct tcpheader *header = (const struct tcpheader *)vip;
@@ -225,7 +260,7 @@ tap_tcpip_packet(void *pct, packet_info *pinfo _U_, epan_dissect_t *edt _U_, con
&header->ip_src, &header->ip_dst,
header->th_sport, stored->th_dport,
COMPARE_CURR_DIR)) {
- is_unique = FALSE;
+ is_unique = false;
break;
}
}
@@ -249,31 +284,31 @@ tap_tcpip_packet(void *pct, packet_info *pinfo _U_, epan_dissect_t *edt _U_, con
* then present the user with a dialog where the user can select WHICH tcp
* session to graph.
*/
-guint32
+uint32_t
select_tcpip_session(capture_file *cf)
{
frame_data *fdata;
epan_dissect_t edt;
dfilter_t *sfcode;
- guint32 th_stream;
+ uint32_t th_stream;
df_error_t *df_err;
GString *error_string;
th_t th = {0, {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}};
if (!cf) {
- return G_MAXUINT32;
+ return UINT32_MAX;
}
/* no real filter yet */
if (!dfilter_compile("tcp", &sfcode, &df_err)) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", df_err->msg);
df_error_free(&df_err);
- return G_MAXUINT32;
+ return UINT32_MAX;
}
/* dissect the current record */
if (!cf_read_current_record(cf)) {
- return G_MAXUINT32; /* error reading the record */
+ return UINT32_MAX; /* error reading the record */
}
fdata = cf->current_frame;
@@ -282,11 +317,11 @@ select_tcpip_session(capture_file *cf)
if (error_string) {
fprintf(stderr, "wireshark: Couldn't register tcp_graph tap: %s\n",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
exit(1);
}
- epan_dissect_init(&edt, cf->epan, TRUE, FALSE);
+ epan_dissect_init(&edt, cf->epan, true, false);
epan_dissect_prime_with_dfilter(&edt, sfcode);
epan_dissect_run_with_taps(&edt, cf->cd_t, &cf->rec,
frame_tvbuff_new_buffer(&cf->provider, fdata, &cf->buf),
@@ -302,7 +337,7 @@ select_tcpip_session(capture_file *cf)
* to determine whether to enable any of our menu items. */
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Selected packet isn't a TCP segment or is truncated");
- return G_MAXUINT32;
+ return UINT32_MAX;
}
/* XXX fix this later, we should show a dialog allowing the user
to select which session he wants here
@@ -312,7 +347,7 @@ select_tcpip_session(capture_file *cf)
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"The selected packet has more than one TCP unique conversation "
"in it.");
- return G_MAXUINT32;
+ return UINT32_MAX;
}
/* For now, still always choose the first/only one */
@@ -334,10 +369,10 @@ int rtt_is_retrans(struct rtt_unack *list, unsigned int seqno)
for (u=list; u; u=u->next) {
if (tcp_seq_eq_or_after(seqno, u->seqno) &&
tcp_seq_before(seqno, u->end_seqno)) {
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
struct rtt_unack *
diff --git a/ui/tap-tcp-stream.h b/ui/tap-tcp-stream.h
index 3bc4688707..122b104b4a 100644
--- a/ui/tap-tcp-stream.h
+++ b/ui/tap-tcp-stream.h
@@ -29,27 +29,29 @@ typedef enum tcp_graph_type_ {
struct segment {
struct segment *next;
- guint32 num;
- guint32 rel_secs;
- guint32 rel_usecs;
+ uint32_t num;
+ uint32_t rel_secs;
+ uint32_t rel_usecs;
/* Currently unused.
time_t abs_secs;
- guint32 abs_usecs;
+ uint32_t abs_usecs;
*/
- guint32 th_seq;
- guint32 th_ack;
- guint16 th_flags;
- guint32 th_win; /* make it 32 bits so we can handle some scaling */
- guint32 th_seglen;
- guint16 th_sport;
- guint16 th_dport;
+ uint32_t th_seq;
+ uint32_t th_ack;
+ uint32_t th_rawseq;
+ uint32_t th_rawack;
+ uint16_t th_flags;
+ uint32_t th_win; /* make it 32 bits so we can handle some scaling */
+ uint32_t th_seglen;
+ uint16_t th_sport;
+ uint16_t th_dport;
address ip_src;
address ip_dst;
- guint8 num_sack_ranges;
- guint32 sack_left_edge[MAX_TCP_SACK_RANGES];
- guint32 sack_right_edge[MAX_TCP_SACK_RANGES];
+ uint8_t num_sack_ranges;
+ uint32_t sack_left_edge[MAX_TCP_SACK_RANGES];
+ uint32_t sack_right_edge[MAX_TCP_SACK_RANGES];
};
struct tcp_graph {
@@ -57,10 +59,10 @@ struct tcp_graph {
/* The stream this graph will show */
address src_address;
- guint16 src_port;
+ uint16_t src_port;
address dst_address;
- guint16 dst_port;
- guint32 stream;
+ uint16_t dst_port;
+ uint32_t stream;
/* Should this be a map or tree instead? */
struct segment *segments;
};
@@ -81,12 +83,12 @@ void graph_segment_list_free(struct tcp_graph * );
#define COMPARE_CURR_DIR 0
#define COMPARE_ANY_DIR 1
-int compare_headers(address *saddr1, address *daddr1, guint16 sport1, guint16 dport1, const address *saddr2, const address *daddr2, guint16 sport2, guint16 dport2, int dir);
+int compare_headers(address *saddr1, address *daddr1, uint16_t sport1, uint16_t dport1, const address *saddr2, const address *daddr2, uint16_t sport2, uint16_t dport2, int dir);
int get_num_dsegs(struct tcp_graph * );
int get_num_acks(struct tcp_graph *, int * );
-guint32 select_tcpip_session(capture_file *);
+uint32_t select_tcpip_session(capture_file *);
/* This is used by rtt module only */
struct rtt_unack {
@@ -103,21 +105,21 @@ void rtt_delete_unack_from_list(struct rtt_unack ** , struct rtt_unack * );
void rtt_destroy_unack_list(struct rtt_unack ** );
static inline int
-tcp_seq_before(guint32 s1, guint32 s2) {
- return (gint32)(s1 - s2) < 0;
+tcp_seq_before(uint32_t s1, uint32_t s2) {
+ return (int32_t)(s1 - s2) < 0;
}
static inline int
-tcp_seq_eq_or_after(guint32 s1, guint32 s2) {
+tcp_seq_eq_or_after(uint32_t s1, uint32_t s2) {
return !tcp_seq_before(s1, s2);
}
static inline int
-tcp_seq_after(guint32 s1, guint32 s2) {
- return (gint32)(s1 - s2) > 0;
+tcp_seq_after(uint32_t s1, uint32_t s2) {
+ return (int32_t)(s1 - s2) > 0;
}
-static inline int tcp_seq_before_or_eq(guint32 s1, guint32 s2) {
+static inline int tcp_seq_before_or_eq(uint32_t s1, uint32_t s2) {
return !tcp_seq_after(s1, s2);
}
diff --git a/ui/tap_export_pdu.c b/ui/tap_export_pdu.c
index 912884d0a5..498c48f3b2 100644
--- a/ui/tap_export_pdu.c
+++ b/ui/tap_export_pdu.c
@@ -29,9 +29,9 @@ export_pdu_packet(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const
exp_pdu_t *exp_pdu_tap_data = (exp_pdu_t *)tapdata;
wtap_rec rec;
int err;
- gchar *err_info;
+ char *err_info;
int buffer_len;
- guint8 *packet_buf;
+ uint8_t *packet_buf;
tap_packet_status status = TAP_PACKET_DONT_REDRAW; /* no GUI, nothing to redraw */
/*
@@ -41,7 +41,7 @@ export_pdu_packet(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const
memset(&rec, 0, sizeof rec);
buffer_len = exp_pdu_data->tvb_captured_length + exp_pdu_data->tlv_buffer_len;
- packet_buf = (guint8 *)g_malloc(buffer_len);
+ packet_buf = (uint8_t *)g_malloc(buffer_len);
if(exp_pdu_data->tlv_buffer_len > 0){
memcpy(packet_buf, exp_pdu_data->tlv_buffer, exp_pdu_data->tlv_buffer_len);
@@ -63,7 +63,7 @@ export_pdu_packet(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const
* copying it here does not hurt. (Can invalidation really happen?) */
if (pinfo->fd->has_modified_block) {
rec.block = epan_get_modified_block(edt->session, pinfo->fd);
- rec.block_was_modified = TRUE;
+ rec.block_was_modified = true;
} else {
rec.block = pinfo->rec->block;
}
@@ -81,18 +81,18 @@ export_pdu_packet(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const
return status;
}
-gboolean
+bool
exp_pdu_open(exp_pdu_t *exp_pdu_tap_data, char *pathname,
int file_type_subtype, int fd, const char *comment,
- int *err, gchar **err_info)
+ int *err, char **err_info)
{
/* pcapng defs */
wtap_block_t shb_hdr;
wtap_block_t int_data;
wtapng_if_descr_mandatory_t *int_data_mand;
GString *os_info_str;
- gsize opt_len;
- gchar *opt_str;
+ size_t opt_len;
+ char *opt_str;
/*
* If the file format supports a section block, and the section
@@ -116,7 +116,7 @@ exp_pdu_open(exp_pdu_t *exp_pdu_tap_data, char *pathname,
* create this section.
*/
opt_len = os_info_str->len;
- opt_str = g_string_free(os_info_str, FALSE);
+ opt_str = g_string_free(os_info_str, false);
if (opt_str) {
wtap_block_add_string_option(shb_hdr, OPT_SHB_OS, opt_str, opt_len);
g_free(opt_str);
@@ -128,7 +128,7 @@ exp_pdu_open(exp_pdu_t *exp_pdu_tap_data, char *pathname,
wtap_block_add_string_option_format(shb_hdr, OPT_SHB_USERAPPL, "%s",
get_appname_and_version());
- exp_pdu_tap_data->shb_hdrs = g_array_new(FALSE, FALSE, sizeof(wtap_block_t));
+ exp_pdu_tap_data->shb_hdrs = g_array_new(false, false, sizeof(wtap_block_t));
g_array_append_val(exp_pdu_tap_data->shb_hdrs, shb_hdr);
} else {
exp_pdu_tap_data->shb_hdrs = NULL;
@@ -141,7 +141,7 @@ exp_pdu_open(exp_pdu_t *exp_pdu_tap_data, char *pathname,
if (wtap_file_type_subtype_supports_block(file_type_subtype,
WTAP_BLOCK_IF_ID_AND_INFO) != BLOCK_NOT_SUPPORTED) {
exp_pdu_tap_data->idb_inf = g_new(wtapng_iface_descriptions_t,1);
- exp_pdu_tap_data->idb_inf->interface_data = g_array_new(FALSE, FALSE, sizeof(wtap_block_t));
+ exp_pdu_tap_data->idb_inf->interface_data = g_array_new(false, false, sizeof(wtap_block_t));
/* create the fake interface data */
int_data = wtap_block_create(WTAP_BLOCK_IF_ID_AND_INFO);
@@ -172,17 +172,17 @@ exp_pdu_open(exp_pdu_t *exp_pdu_tap_data, char *pathname,
WTAP_UNCOMPRESSED, &params, err, err_info);
}
if (exp_pdu_tap_data->wdh == NULL)
- return FALSE;
+ return false;
exp_pdu_tap_data->pathname = pathname;
exp_pdu_tap_data->framenum = 0; /* No frames written yet */
- return TRUE;
+ return true;
}
-gboolean
-exp_pdu_close(exp_pdu_t *exp_pdu_tap_data, int *err, gchar **err_info)
+bool
+exp_pdu_close(exp_pdu_t *exp_pdu_tap_data, int *err, char **err_info)
{
- gboolean status;
+ bool status;
status = wtap_dump_close(exp_pdu_tap_data->wdh, NULL, err, err_info);
@@ -200,12 +200,12 @@ exp_pdu_pre_open(const char *tap_name, const char *filter, exp_pdu_t *exp_pdu_ta
GString *error_string;
/* Make sure tap is suitable for exported PDUs */
- gboolean found = FALSE;
+ bool found = false;
for (GSList *export_pdu_tap_name_list = get_export_pdu_tap_list();
export_pdu_tap_name_list != NULL;
export_pdu_tap_name_list = g_slist_next(export_pdu_tap_name_list)) {
if (strcmp((const char*)(export_pdu_tap_name_list->data), tap_name) == 0) {
- found = TRUE;
+ found = true;
break;
}
}
@@ -224,7 +224,7 @@ exp_pdu_pre_open(const char *tap_name, const char *filter, exp_pdu_t *exp_pdu_ta
NULL,
NULL);
if (error_string != NULL)
- return g_string_free(error_string, FALSE);
+ return g_string_free(error_string, false);
exp_pdu_tap_data->pkt_encap = export_pdu_tap_get_encap(tap_name);
diff --git a/ui/tap_export_pdu.h b/ui/tap_export_pdu.h
index fa25edb395..19f31e0da6 100644
--- a/ui/tap_export_pdu.h
+++ b/ui/tap_export_pdu.h
@@ -22,7 +22,7 @@ typedef struct _exp_pdu_t {
wtap_dumper* wdh;
GArray* shb_hdrs;
wtapng_iface_descriptions_t* idb_inf;
- guint32 framenum;
+ uint32_t framenum;
} exp_pdu_t;
/**
@@ -45,13 +45,13 @@ char *exp_pdu_pre_open(const char *tap_name, const char *filter,
* @param[out] err Will be set to an error code on failure.
* @param[out] err_info for some errors, a string giving more details of
* the error
-* @return TRUE on success or FALSE on failure.
+* @return true on success or false on failure.
*/
-gboolean exp_pdu_open(exp_pdu_t *data, char *pathname, int file_type_subtype,
- int fd, const char *comment, int *err, gchar **err_info);
+bool exp_pdu_open(exp_pdu_t *data, char *pathname, int file_type_subtype,
+ int fd, const char *comment, int *err, char **err_info);
/* Stops the PDUs export. */
-gboolean exp_pdu_close(exp_pdu_t *exp_pdu_tap_data, int *err, gchar **err_info);
+bool exp_pdu_close(exp_pdu_t *exp_pdu_tap_data, int *err, char **err_info);
#ifdef __cplusplus
}
diff --git a/ui/taps.h b/ui/taps.h
index 9e5c5535e9..933e505e54 100644
--- a/ui/taps.h
+++ b/ui/taps.h
@@ -22,7 +22,7 @@ extern "C" {
extern tap_reg_t const tap_reg_listener[];
-extern const gulong tap_reg_listener_count;
+extern const unsigned long tap_reg_listener_count;
#ifdef __cplusplus
}
diff --git a/ui/text_import.c b/ui/text_import.c
index ffde4ac668..3938da74a0 100644
--- a/ui/text_import.c
+++ b/ui/text_import.c
@@ -116,15 +116,15 @@
static text_import_info_t *info_p;
/* Dummy Ethernet header */
-static gboolean hdr_ethernet = FALSE;
-static guint8 hdr_eth_dest_addr[6] = {0x20, 0x52, 0x45, 0x43, 0x56, 0x00};
-static guint8 hdr_eth_src_addr[6] = {0x20, 0x53, 0x45, 0x4E, 0x44, 0x00};
-static guint32 hdr_ethernet_proto = 0;
+static bool hdr_ethernet;
+static uint8_t hdr_eth_dest_addr[6] = {0x20, 0x52, 0x45, 0x43, 0x56, 0x00};
+static uint8_t hdr_eth_src_addr[6] = {0x20, 0x53, 0x45, 0x4E, 0x44, 0x00};
+static uint32_t hdr_ethernet_proto;
/* Dummy IP header */
-static gboolean hdr_ip = FALSE;
-static gboolean hdr_ipv6 = FALSE;
-static guint hdr_ip_proto = 0;
+static bool hdr_ip;
+static bool hdr_ipv6;
+static unsigned hdr_ip_proto;
/* Destination and source addresses for IP header */
static ws_in6_addr NO_IPv6_ADDRESS = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
@@ -135,67 +135,67 @@ static ws_in6_addr IPv6_SRC = {{0xfd, 0xce, 0xd8, 0x62, 0x14, 0x1b, 0x00, 0x01,
static ws_in6_addr IPv6_DST = {{0xfd, 0xce, 0xd8, 0x62, 0x14, 0x1b, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}};
/* Dummy UDP header */
-static gboolean hdr_udp = FALSE;
+static bool hdr_udp;
/* Dummy TCP header */
-static gboolean hdr_tcp = FALSE;
+static bool hdr_tcp;
/* TCP sequence numbers when has_direction is true */
-static guint32 tcp_in_seq_num = 0;
-static guint32 tcp_out_seq_num = 0;
+static uint32_t tcp_in_seq_num;
+static uint32_t tcp_out_seq_num;
/* Dummy SCTP header */
-static gboolean hdr_sctp = FALSE;
+static bool hdr_sctp;
/* Dummy DATA chunk header */
-static gboolean hdr_data_chunk = FALSE;
-static guint8 hdr_data_chunk_type = 0;
-static guint8 hdr_data_chunk_bits = 0;
-static guint32 hdr_data_chunk_tsn = 0;
-static guint16 hdr_data_chunk_sid = 0;
-static guint16 hdr_data_chunk_ssn = 0;
+static bool hdr_data_chunk;
+static uint8_t hdr_data_chunk_type;
+static uint8_t hdr_data_chunk_bits;
+static uint32_t hdr_data_chunk_tsn;
+static uint16_t hdr_data_chunk_sid;
+static uint16_t hdr_data_chunk_ssn;
/* Dummy ExportPdu header */
-static gboolean hdr_export_pdu = FALSE;
+static bool hdr_export_pdu;
/* Hex+ASCII text dump identification, to handle an edge case where
* the ASCII representation contains patterns that look like bytes. */
-static guint8* pkt_lnstart;
+static uint8_t* pkt_lnstart;
-static gboolean has_direction = FALSE;
-static guint32 direction = PACK_FLAGS_RECEPTION_TYPE_UNSPECIFIED;
-static gboolean has_seqno = FALSE;
-static guint64 seqno = 0;
+static bool has_direction;
+static uint32_t direction = PACK_FLAGS_RECEPTION_TYPE_UNSPECIFIED;
+static bool has_seqno;
+static uint64_t seqno;
/*--- Local data -----------------------------------------------------------------*/
/* This is where we store the packet currently being built */
-static guint8 *packet_buf;
-static guint32 curr_offset = 0;
-static guint32 packet_start = 0;
-static gboolean offset_warned = FALSE;
-static import_status_t start_new_packet(gboolean);
+static uint8_t *packet_buf;
+static uint32_t curr_offset;
+static uint32_t packet_start;
+static bool offset_warned;
+static import_status_t start_new_packet(bool);
/* This buffer contains strings present before the packet offset 0 */
#define PACKET_PREAMBLE_MAX_LEN 2048
-static guint8 packet_preamble[PACKET_PREAMBLE_MAX_LEN+1];
-static int packet_preamble_len = 0;
+static uint8_t packet_preamble[PACKET_PREAMBLE_MAX_LEN+1];
+static int packet_preamble_len;
/* Time code of packet, derived from packet_preamble */
-static time_t ts_sec = 0;
-static guint32 ts_nsec = 0;
-static gboolean ts_fmt_iso = FALSE;
+static time_t ts_sec;
+static uint32_t ts_nsec;
+static bool ts_fmt_iso;
static struct tm timecode_default;
-static gboolean timecode_warned = FALSE;
+static bool timecode_warned;
/* The time delta to add to packets without a valid time code.
* This can be no smaller than the time resolution of the dump
* file, so the default is 1000 nanoseconds, or 1 microsecond.
* XXX: We should at least get this from the resolution of the file we're
* writing to, and possibly allow the user to set a different value.
*/
-static guint32 ts_tick = 1000;
+static uint32_t ts_tick = 1000;
/* HDR_ETH Offset base to parse */
-static guint32 offset_base = 16;
+static uint32_t offset_base = 16;
/* ----- State machine -----------------------------------------------------------*/
@@ -228,25 +228,25 @@ static const char *token_str[] = {"",
/* ----- Skeleton Packet Headers --------------------------------------------------*/
typedef struct {
- guint8 dest_addr[6];
- guint8 src_addr[6];
- guint16 l3pid;
+ uint8_t dest_addr[6];
+ uint8_t src_addr[6];
+ uint16_t l3pid;
} hdr_ethernet_t;
static hdr_ethernet_t HDR_ETHERNET;
typedef struct {
- guint8 ver_hdrlen;
- guint8 dscp;
- guint16 packet_length;
- guint16 identification;
- guint8 flags;
- guint8 fragment;
- guint8 ttl;
- guint8 protocol;
- guint16 hdr_checksum;
- guint32 src_addr;
- guint32 dest_addr;
+ uint8_t ver_hdrlen;
+ uint8_t dscp;
+ uint16_t packet_length;
+ uint16_t identification;
+ uint8_t flags;
+ uint8_t fragment;
+ uint8_t ttl;
+ uint8_t protocol;
+ uint16_t hdr_checksum;
+ uint32_t src_addr;
+ uint32_t dest_addr;
} hdr_ip_t;
/* Default IPv4 addresses if none supplied */
@@ -264,11 +264,11 @@ static hdr_ip_t HDR_IP =
{0x45, 0, 0, IP_ID, 0, 0, 0xff, 0, 0, IP_SRC, IP_DST};
static struct { /* pseudo header for checksum calculation */
- guint32 src_addr;
- guint32 dest_addr;
- guint8 zero;
- guint8 protocol;
- guint16 length;
+ uint32_t src_addr;
+ uint32_t dest_addr;
+ uint8_t zero;
+ uint8_t protocol;
+ uint16_t length;
} pseudoh;
@@ -277,12 +277,12 @@ static struct { /* pseudo header for checksum calculation */
typedef struct {
union {
struct ip6_hdrctl {
- guint32 ip6_un1_flow; /* 24 bits of flow-ID */
- guint16 ip6_un1_plen; /* payload length */
- guint8 ip6_un1_nxt; /* next header */
- guint8 ip6_un1_hlim; /* hop limit */
+ uint32_t ip6_un1_flow; /* 24 bits of flow-ID */
+ uint16_t ip6_un1_plen; /* payload length */
+ uint8_t ip6_un1_nxt; /* next header */
+ uint8_t ip6_un1_hlim; /* hop limit */
} ip6_un1;
- guint8 ip6_un2_vfc; /* 4 bits version, 4 bits priority */
+ uint8_t ip6_un2_vfc; /* 4 bits version, 4 bits priority */
} ip6_ctlun;
ws_in6_addr ip6_src; /* source address */
ws_in6_addr ip6_dst; /* destination address */
@@ -294,59 +294,59 @@ static hdr_ipv6_t HDR_IPv6;
static struct { /* pseudo header ipv6 for checksum calculation */
struct e_in6_addr src_addr6;
struct e_in6_addr dst_addr6;
- guint32 length;
- guint8 zero[3];
- guint8 next_header;
+ uint32_t length;
+ uint8_t zero[3];
+ uint8_t next_header;
} pseudoh6;
typedef struct {
- guint16 source_port;
- guint16 dest_port;
- guint16 length;
- guint16 checksum;
+ uint16_t source_port;
+ uint16_t dest_port;
+ uint16_t length;
+ uint16_t checksum;
} hdr_udp_t;
static hdr_udp_t HDR_UDP = {0, 0, 0, 0};
typedef struct {
- guint16 source_port;
- guint16 dest_port;
- guint32 seq_num;
- guint32 ack_num;
- guint8 hdr_length;
- guint8 flags;
- guint16 window;
- guint16 checksum;
- guint16 urg;
+ uint16_t source_port;
+ uint16_t dest_port;
+ uint32_t seq_num;
+ uint32_t ack_num;
+ uint8_t hdr_length;
+ uint8_t flags;
+ uint16_t window;
+ uint16_t checksum;
+ uint16_t urg;
} hdr_tcp_t;
static hdr_tcp_t HDR_TCP = {0, 0, 0, 0, 0x50, 0, 0, 0, 0};
typedef struct {
- guint16 src_port;
- guint16 dest_port;
- guint32 tag;
- guint32 checksum;
+ uint16_t src_port;
+ uint16_t dest_port;
+ uint32_t tag;
+ uint32_t checksum;
} hdr_sctp_t;
static hdr_sctp_t HDR_SCTP = {0, 0, 0, 0};
typedef struct {
- guint8 type;
- guint8 bits;
- guint16 length;
- guint32 tsn;
- guint16 sid;
- guint16 ssn;
- guint32 ppid;
+ uint8_t type;
+ uint8_t bits;
+ uint16_t length;
+ uint32_t tsn;
+ uint16_t sid;
+ uint16_t ssn;
+ uint32_t ppid;
} hdr_data_chunk_t;
static hdr_data_chunk_t HDR_DATA_CHUNK = {0, 0, 0, 0, 0, 0, 0};
typedef struct {
- guint16 tag_type;
- guint16 payload_len;
+ uint16_t tag_type;
+ uint16_t payload_len;
} hdr_export_pdu_t;
static hdr_export_pdu_t HDR_EXPORT_PDU = {0, 0};
@@ -356,10 +356,10 @@ static hdr_export_pdu_t HDR_EXPORT_PDU = {0, 0};
/*----------------------------------------------------------------------
* Parse a single hex number
* Will abort the program if it can't parse the number
- * Pass in TRUE if this is an offset, FALSE if not
+ * Pass in true if this is an offset, false if not
*/
static import_status_t
-parse_num(const char *str, int offset, guint32* num)
+parse_num(const char *str, int offset, uint32_t* num)
{
char *c;
@@ -380,11 +380,11 @@ parse_num(const char *str, int offset, guint32* num)
offset ? offset_base : 16);
return IMPORT_FAILURE;
}
- if (ulnum > G_MAXUINT32) {
+ if (ulnum > UINT32_MAX) {
report_failure("%s too large", str);
return IMPORT_FAILURE;
}
- *num = (guint32) ulnum;
+ *num = (uint32_t) ulnum;
return IMPORT_SUCCESS;
}
@@ -394,15 +394,15 @@ parse_num(const char *str, int offset, guint32* num)
static import_status_t
write_byte(const char *str)
{
- guint32 num;
+ uint32_t num;
- if (parse_num(str, FALSE, &num) != IMPORT_SUCCESS)
+ if (parse_num(str, false, &num) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
- packet_buf[curr_offset] = (guint8) num;
+ packet_buf[curr_offset] = (uint8_t) num;
curr_offset++;
if (curr_offset >= info_p->max_frame_length) /* packet full */
- if (start_new_packet(TRUE) != IMPORT_SUCCESS)
+ if (start_new_packet(true) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
return IMPORT_SUCCESS;
@@ -412,7 +412,7 @@ write_byte(const char *str)
* Remove bytes from the current packet
*/
static void
-unwrite_bytes (guint32 nbytes)
+unwrite_bytes (uint32_t nbytes)
{
curr_offset -= nbytes;
}
@@ -420,10 +420,10 @@ unwrite_bytes (guint32 nbytes)
/*----------------------------------------------------------------------
* Determine SCTP chunk padding length
*/
-static guint32
-number_of_padding_bytes (guint32 length)
+static uint32_t
+number_of_padding_bytes (uint32_t length)
{
- guint32 remainder;
+ uint32_t remainder;
remainder = length % 4;
@@ -436,13 +436,13 @@ number_of_padding_bytes (guint32 length)
/*----------------------------------------------------------------------
* Write current packet out
*
- * @param cont [IN] TRUE if a packet is being written because the max frame
+ * @param cont [IN] true if a packet is being written because the max frame
* length was reached, and the original packet from the input file is
* continued in a later frame. Used to set fragmentation fields in dummy
* headers (currently only implemented for SCTP; IPv4 could be added later.)
*/
static import_status_t
-write_current_packet(gboolean cont)
+write_current_packet(bool cont)
{
int prefix_length = 0;
int proto_length = 0;
@@ -455,7 +455,7 @@ write_current_packet(gboolean cont)
/* Write the packet */
/* Is direction indication on with an inbound packet? */
- gboolean isOutbound = has_direction && (direction == PACK_FLAGS_DIRECTION_OUTBOUND);
+ bool isOutbound = has_direction && (direction == PACK_FLAGS_DIRECTION_OUTBOUND);
/* Compute packet length */
prefix_length = 0;
@@ -518,9 +518,9 @@ write_current_packet(gboolean cont)
HDR_IP.dest_addr = info_p->ip_dest_addr.ipv4 ? info_p->ip_dest_addr.ipv4 : IP_DST;
}
HDR_IP.packet_length = g_htons(ip_length);
- HDR_IP.protocol = (guint8) hdr_ip_proto;
+ HDR_IP.protocol = (uint8_t) hdr_ip_proto;
HDR_IP.hdr_checksum = 0;
- cksum_vector[0].ptr = (guint8 *)&HDR_IP; cksum_vector[0].len = sizeof(HDR_IP);
+ cksum_vector[0].ptr = (uint8_t *)&HDR_IP; cksum_vector[0].len = sizeof(HDR_IP);
HDR_IP.hdr_checksum = in_cksum(cksum_vector, 1);
memcpy(&packet_buf[prefix_index], &HDR_IP, sizeof(HDR_IP));
@@ -530,7 +530,7 @@ write_current_packet(gboolean cont)
pseudoh.src_addr = HDR_IP.src_addr;
pseudoh.dest_addr = HDR_IP.dest_addr;
pseudoh.zero = 0;
- pseudoh.protocol = (guint8) hdr_ip_proto;
+ pseudoh.protocol = (uint8_t) hdr_ip_proto;
pseudoh.length = g_htons(proto_length);
} else if (hdr_ipv6) {
if (memcmp(&info_p->ip_dest_addr.ipv6, &NO_IPv6_ADDRESS, sizeof(ws_in6_addr))) {
@@ -547,7 +547,7 @@ write_current_packet(gboolean cont)
HDR_IPv6.ip6_ctlun.ip6_un2_vfc &= 0x0F;
HDR_IPv6.ip6_ctlun.ip6_un2_vfc |= (6<< 4);
HDR_IPv6.ip6_ctlun.ip6_un1.ip6_un1_plen = g_htons(ip_length);
- HDR_IPv6.ip6_ctlun.ip6_un1.ip6_un1_nxt = (guint8) hdr_ip_proto;
+ HDR_IPv6.ip6_ctlun.ip6_un1.ip6_un1_nxt = (uint8_t) hdr_ip_proto;
HDR_IPv6.ip6_ctlun.ip6_un1.ip6_un1_hlim = 32;
memcpy(&packet_buf[prefix_index], &HDR_IPv6, sizeof(HDR_IPv6));
@@ -557,7 +557,7 @@ write_current_packet(gboolean cont)
pseudoh6.src_addr6 = HDR_IPv6.ip6_src;
pseudoh6.dst_addr6 = HDR_IPv6.ip6_dst;
memset(pseudoh6.zero, 0, sizeof(pseudoh6.zero));
- pseudoh6.next_header = (guint8) hdr_ip_proto;
+ pseudoh6.next_header = (uint8_t) hdr_ip_proto;
pseudoh6.length = g_htons(proto_length);
}
@@ -571,11 +571,11 @@ write_current_packet(gboolean cont)
HDR_UDP.checksum = 0;
if (hdr_ipv6) {
- cksum_vector[0].ptr = (guint8 *)&pseudoh6; cksum_vector[0].len = sizeof(pseudoh6);
+ cksum_vector[0].ptr = (uint8_t *)&pseudoh6; cksum_vector[0].len = sizeof(pseudoh6);
} else {
- cksum_vector[0].ptr = (guint8 *)&pseudoh; cksum_vector[0].len = sizeof(pseudoh);
+ cksum_vector[0].ptr = (uint8_t *)&pseudoh; cksum_vector[0].len = sizeof(pseudoh);
}
- cksum_vector[1].ptr = (guint8 *)&HDR_UDP; cksum_vector[1].len = sizeof(HDR_UDP);
+ cksum_vector[1].ptr = (uint8_t *)&HDR_UDP; cksum_vector[1].len = sizeof(HDR_UDP);
cksum_vector[2].ptr = &packet_buf[prefix_length]; cksum_vector[2].len = curr_offset;
HDR_UDP.checksum = in_cksum(cksum_vector, 3);
@@ -604,11 +604,11 @@ write_current_packet(gboolean cont)
HDR_TCP.checksum = 0;
if (hdr_ipv6) {
- cksum_vector[0].ptr = (guint8 *)&pseudoh6; cksum_vector[0].len = sizeof(pseudoh6);
+ cksum_vector[0].ptr = (uint8_t *)&pseudoh6; cksum_vector[0].len = sizeof(pseudoh6);
} else {
- cksum_vector[0].ptr = (guint8 *)&pseudoh; cksum_vector[0].len = sizeof(pseudoh);
+ cksum_vector[0].ptr = (uint8_t *)&pseudoh; cksum_vector[0].len = sizeof(pseudoh);
}
- cksum_vector[1].ptr = (guint8 *)&HDR_TCP; cksum_vector[1].len = sizeof(HDR_TCP);
+ cksum_vector[1].ptr = (uint8_t *)&HDR_TCP; cksum_vector[1].len = sizeof(HDR_TCP);
cksum_vector[2].ptr = &packet_buf[prefix_length]; cksum_vector[2].len = curr_offset;
HDR_TCP.checksum = in_cksum(cksum_vector, 3);
@@ -674,7 +674,7 @@ write_current_packet(gboolean cont)
/* Write ExportPDU header */
if (hdr_export_pdu) {
- guint payload_len = (guint)strlen(info_p->payload);
+ unsigned payload_len = (unsigned)strlen(info_p->payload);
HDR_EXPORT_PDU.tag_type = g_htons(EXP_PDU_TAG_DISSECTOR_NAME);
HDR_EXPORT_PDU.payload_len = g_htons(payload_len);
memcpy(&packet_buf[prefix_index], &HDR_EXPORT_PDU, sizeof(HDR_EXPORT_PDU));
@@ -696,7 +696,7 @@ write_current_packet(gboolean cont)
/* Write the packet */
wtap_rec rec;
int err;
- gchar *err_info;
+ char *err_info;
memset(&rec, 0, sizeof rec);
@@ -795,11 +795,11 @@ append_to_preamble(char *str)
* one Unit is least_common_mmultiple(bits_per_char, 8) bits.
*/
struct plain_decoding_data {
- const gchar* name;
- guint chars_per_unit;
- guint bytes_per_unit : 3; /* Internally a guint64 is used to hold units */
- guint bits_per_char : 6;
- gint8 table[256];
+ const char* name;
+ unsigned chars_per_unit;
+ unsigned bytes_per_unit : 3; /* Internally a uint64_t is used to hold units */
+ unsigned bits_per_char : 6;
+ int8_t table[256];
};
#define _INVALID_INIT2 INVALID_VALUE, INVALID_VALUE
@@ -911,20 +911,20 @@ DIAG_ON_INIT_TWICE
* fragmentation and not actually due to EOT) you have to resume the parser at
* *src_last_unit and dest - result % bytes_per_unit
*/
-static int parse_plain_data(guchar** src, const guchar* src_end,
- guint8** dest, const guint8* dest_end, const struct plain_decoding_data* encoding,
- guchar** src_last_unit) {
+static int parse_plain_data(unsigned char** src, const unsigned char* src_end,
+ uint8_t** dest, const uint8_t* dest_end, const struct plain_decoding_data* encoding,
+ unsigned char** src_last_unit) {
int status = 1;
int units = 0;
/* unit buffer */
- guint64 c_val = 0;
- guint c_chars = 0;
+ uint64_t c_val = 0;
+ unsigned c_chars = 0;
/**
* Src data |- - -|- - -|- - -|- - -|- - -|- - -|- - -|- - -|
* Bytes |- - - - - - - -|- - - - - - - -|- - - - - - - -|
* Units |- - - - - - - - - - - - - - - - - - - - - - - -|
*/
- guint64 val;
+ uint64_t val;
int j;
if (ws_log_get_level() >= LOG_LEVEL_NOISY) {
char* debug_str = wmem_strndup(NULL, *src, (src_end-*src));
@@ -950,7 +950,7 @@ static int parse_plain_data(guchar** src, const guchar* src_end,
*src_last_unit = *src;
c_chars = 0;
for (j = encoding->bytes_per_unit; j > 0; --j) {
- **dest = (gchar) (c_val >> (j * 8 - 8));
+ **dest = (char) (c_val >> (j * 8 - 8));
*dest += 1;
}
}
@@ -959,15 +959,15 @@ static int parse_plain_data(guchar** src, const guchar* src_end,
}
remainder:
for (j = c_chars * encoding->bits_per_char; j >= 8; j -= 8) {
- **dest = (gchar) (c_val >> (j - 8));
+ **dest = (char) (c_val >> (j - 8));
*dest += 1;
}
return status * units;
}
-void parse_data(guchar* start_field, guchar* end_field, enum data_encoding encoding) {
- guint8* dest = &packet_buf[curr_offset];
- guint8* dest_end = &packet_buf[info_p->max_frame_length];
+void parse_data(unsigned char* start_field, unsigned char* end_field, enum data_encoding encoding) {
+ uint8_t* dest = &packet_buf[curr_offset];
+ uint8_t* dest_end = &packet_buf[info_p->max_frame_length];
const struct plain_decoding_data* table; /* should be further down */
switch (encoding) {
@@ -997,7 +997,7 @@ void parse_data(guchar* start_field, guchar* end_field, enum data_encoding encod
parse_plain_data(&start_field, end_field, &dest, dest_end, table, NULL);
curr_offset = (int) (dest - packet_buf);
if (curr_offset == info_p->max_frame_length) {
- write_current_packet(TRUE);
+ write_current_packet(true);
dest = &packet_buf[curr_offset];
} else
break;
@@ -1012,7 +1012,7 @@ void parse_data(guchar* start_field, guchar* end_field, enum data_encoding encod
#define setFlags(VAL, MASK, FLAGS) \
((VAL) & ~(MASK)) | ((FLAGS) & (MASK))
-static void _parse_dir(const guchar* start_field, const guchar* end_field _U_, const gchar* in_indicator, const gchar* out_indicator, guint32* dir) {
+static void _parse_dir(const unsigned char* start_field, const unsigned char* end_field _U_, const char* in_indicator, const char* out_indicator, uint32_t* dir) {
for (; *in_indicator && *start_field != *in_indicator; ++in_indicator);
if (*in_indicator) {
@@ -1027,21 +1027,21 @@ static void _parse_dir(const guchar* start_field, const guchar* end_field _U_, c
*dir = setFlags(*dir, PACK_FLAGS_DIRECTION_MASK << PACK_FLAGS_DIRECTION_SHIFT, PACK_FLAGS_DIRECTION_UNKNOWN);
}
-void parse_dir(const guchar* start_field, const guchar* end_field, const gchar* in_indicator, const gchar* out_indicator) {
+void parse_dir(const unsigned char* start_field, const unsigned char* end_field, const char* in_indicator, const char* out_indicator) {
_parse_dir(start_field, end_field, in_indicator, out_indicator, &direction);
}
#define PARSE_BUF 64
/* Attempt to parse a time according to the given format. If the conversion
- * succeeds, set sec and nsec appropriately and return TRUE. If it fails,
- * leave sec and nsec unchanged and return FALSE.
+ * succeeds, set sec and nsec appropriately and return true. If it fails,
+ * leave sec and nsec unchanged and return false.
*/
-static gboolean
-_parse_time(const guchar* start_field, const guchar* end_field, const gchar* _format, time_t* sec, gint* nsec) {
+static bool
+_parse_time(const unsigned char* start_field, const unsigned char* end_field, const char* _format, time_t* sec, int* nsec) {
struct tm timecode;
time_t sec_buf;
- gint nsec_buf = 0;
+ int nsec_buf = 0;
char field[PARSE_BUF];
char format[PARSE_BUF];
@@ -1057,7 +1057,7 @@ _parse_time(const guchar* start_field, const guchar* end_field, const gchar* _fo
if (ts_fmt_iso) {
nstime_t ts_iso;
if (!iso8601_to_nstime(&ts_iso, field, ISO8601_DATETIME_AUTO)) {
- return FALSE;
+ return false;
}
*sec = ts_iso.secs;
*nsec = ts_iso.nsecs;
@@ -1083,23 +1083,23 @@ _parse_time(const guchar* start_field, const guchar* end_field, const gchar* _fo
cursor = ws_strptime_p(cursor, format, &timecode);
if (cursor == NULL) {
- return FALSE;
+ return false;
}
if (subsecs_fmt != NULL) {
/*
* Parse subsecs and any following format
*/
- nsec_buf = (guint) strtol(cursor, &p, 10);
+ nsec_buf = (unsigned) strtol(cursor, &p, 10);
if (p == cursor) {
- return FALSE;
+ return false;
}
subseclen = (int) (p - cursor);
cursor = p;
cursor = ws_strptime_p(cursor, subsecs_fmt + 2, &timecode);
if (cursor == NULL) {
- return FALSE;
+ return false;
}
}
@@ -1127,32 +1127,32 @@ _parse_time(const guchar* start_field, const guchar* end_field, const gchar* _fo
}
if ( -1 == (sec_buf = mktime(&timecode)) ) {
- return FALSE;
+ return false;
}
*sec = sec_buf;
*nsec = nsec_buf;
}
- ws_noisy("parsed time %s Format(%s), time(%u), subsecs(%u)\n", field, _format, (guint32)*sec, (guint32)*nsec);
+ ws_noisy("parsed time %s Format(%s), time(%u), subsecs(%u)\n", field, _format, (uint32_t)*sec, (uint32_t)*nsec);
- return TRUE;
+ return true;
}
-void parse_time(const guchar* start_field, const guchar* end_field, const gchar* format) {
+void parse_time(const unsigned char* start_field, const unsigned char* end_field, const char* format) {
if (format == NULL || !_parse_time(start_field, end_field, format, &ts_sec, &ts_nsec)) {
ts_nsec += ts_tick;
}
}
-void parse_seqno(const guchar* start_field, const guchar* end_field) {
+void parse_seqno(const unsigned char* start_field, const unsigned char* end_field) {
char* buf = (char*) g_alloca(end_field - start_field + 1);
(void) g_strlcpy(buf, start_field, end_field - start_field + 1);
seqno = g_ascii_strtoull(buf, NULL, 10);
}
void flush_packet(void) {
- write_current_packet(FALSE);
+ write_current_packet(false);
}
/*----------------------------------------------------------------------
@@ -1163,7 +1163,7 @@ static void
parse_preamble (void)
{
int i;
- gboolean got_time = FALSE;
+ bool got_time = false;
/*
* Null-terminate the preamble.
@@ -1198,7 +1198,7 @@ parse_preamble (void)
*/
if (!timecode_warned) {
report_warning("Time conversions (%s) failed, advancing time by %d ns from previous packet on failure. First failure was for %s on input packet %d.", info_p->timestamp_format, ts_tick, packet_preamble, info_p->num_packets_read);
- timecode_warned = TRUE;
+ timecode_warned = true;
}
ws_warning("Time conversion (%s) failed for %s on input packet %d.", info_p->timestamp_format, packet_preamble, info_p->num_packets_read);
}
@@ -1207,7 +1207,7 @@ parse_preamble (void)
char *c;
while ((c = strchr(packet_preamble, '\r')) != NULL) *c=' ';
ws_noisy("[[parse_preamble: \"%s\"]]", packet_preamble);
- ws_noisy("Format(%s), time(%u), subsecs(%u)", info_p->timestamp_format, (guint32)ts_sec, ts_nsec);
+ ws_noisy("Format(%s), time(%u), subsecs(%u)", info_p->timestamp_format, (uint32_t)ts_sec, ts_nsec);
}
if (!got_time) {
@@ -1221,16 +1221,16 @@ parse_preamble (void)
/*----------------------------------------------------------------------
* Start a new packet
*
- * @param cont [IN] TRUE if a new packet is starting because the max frame
+ * @param cont [IN] true if a new packet is starting because the max frame
* length was reached on the current packet, and the original packet from the
* input file is continued in a later frame. Passed to write_current_packet,
* where it is used to set fragmentation fields in dummy headers (currently
* only implemented for SCTP; IPv4 could be added later.)
*/
static import_status_t
-start_new_packet(gboolean cont)
+start_new_packet(bool cont)
{
- ws_debug("Start new packet (cont = %s).", cont ? "TRUE" : "FALSE");
+ ws_debug("Start new packet (cont = %s).", cont ? "true" : "false");
/* Write out the current packet, if required */
if (write_current_packet(cont) != IMPORT_SUCCESS)
@@ -1262,7 +1262,7 @@ process_directive (char *str _U_)
import_status_t
parse_token(token_t token, char *str)
{
- guint32 num;
+ uint32_t num;
/* Variables for the hex+ASCII identification / lookback */
int by_eol;
int rollback = 0;
@@ -1308,17 +1308,17 @@ parse_token(token_t token, char *str)
tokens = g_strsplit_set(str, ": \t\r\n", 2);
if (!offset_warned) {
report_warning("Running in no offset mode but read offset (%s) at start of file, treating as preamble", tokens[0]);
- offset_warned = TRUE;
+ offset_warned = true;
}
ws_warning("Running in no offset mode but read offset (%s) at start of file, treating as preamble", tokens[0]);
g_strfreev(tokens);
break;
}
- if (parse_num(str, TRUE, &num) != IMPORT_SUCCESS)
+ if (parse_num(str, true, &num) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
if (num == 0) {
/* New packet starts here */
- if (start_new_packet(FALSE) != IMPORT_SUCCESS)
+ if (start_new_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
state = READ_OFFSET;
pkt_lnstart = packet_buf + num;
@@ -1326,7 +1326,7 @@ parse_token(token_t token, char *str)
break;
case T_BYTE:
if (offset_base == 0) {
- if (start_new_packet(FALSE) != IMPORT_SUCCESS)
+ if (start_new_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
if (write_byte(str) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
@@ -1335,7 +1335,7 @@ parse_token(token_t token, char *str)
}
break;
case T_EOF:
- if (write_current_packet(FALSE) != IMPORT_SUCCESS)
+ if (write_current_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
break;
default:
@@ -1361,17 +1361,17 @@ parse_token(token_t token, char *str)
tokens = g_strsplit_set(str, ": \t\r\n", 2);
if (!offset_warned) {
report_warning("Running in no offset mode but read offset (%s) at start of line, ignoring", tokens[0]);
- offset_warned = TRUE;
+ offset_warned = true;
}
ws_warning("Running in no offset mode but read offset (%s) at start of line, ignoring.", tokens[0]);
g_strfreev(tokens);
break;
}
- if (parse_num(str, TRUE, &num) != IMPORT_SUCCESS)
+ if (parse_num(str, true, &num) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
if (num == 0) {
/* New packet starts here */
- if (start_new_packet(FALSE) != IMPORT_SUCCESS)
+ if (start_new_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
packet_start = 0;
state = READ_OFFSET;
@@ -1392,7 +1392,7 @@ parse_token(token_t token, char *str)
/* Bad offset; switch to INIT state */
ws_message("Inconsistent offset. Expecting %0X, got %0X. Ignoring rest of packet",
curr_offset, num);
- if (write_current_packet(FALSE) != IMPORT_SUCCESS)
+ if (write_current_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
state = INIT;
}
@@ -1410,7 +1410,7 @@ parse_token(token_t token, char *str)
}
break;
case T_EOF:
- if (write_current_packet(FALSE) != IMPORT_SUCCESS)
+ if (write_current_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
break;
default:
@@ -1436,7 +1436,7 @@ parse_token(token_t token, char *str)
state = START_OF_LINE;
break;
case T_EOF:
- if (write_current_packet(FALSE) != IMPORT_SUCCESS)
+ if (write_current_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
break;
default:
@@ -1511,7 +1511,7 @@ parse_token(token_t token, char *str)
}
break;
case T_EOF:
- if (write_current_packet(FALSE) != IMPORT_SUCCESS)
+ if (write_current_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
break;
default:
@@ -1526,7 +1526,7 @@ parse_token(token_t token, char *str)
state = START_OF_LINE;
break;
case T_EOF:
- if (write_current_packet(FALSE) != IMPORT_SUCCESS)
+ if (write_current_packet(false) != IMPORT_SUCCESS)
return IMPORT_FAILURE;
break;
default:
@@ -1580,13 +1580,13 @@ text_import(text_import_info_t * const info)
info_p = info;
/* Dummy headers */
- hdr_ethernet = FALSE;
- hdr_ip = FALSE;
- hdr_udp = FALSE;
- hdr_tcp = FALSE;
- hdr_sctp = FALSE;
- hdr_data_chunk = FALSE;
- hdr_export_pdu = FALSE;
+ hdr_ethernet = false;
+ hdr_ip = false;
+ hdr_udp = false;
+ hdr_tcp = false;
+ hdr_sctp = false;
+ hdr_data_chunk = false;
+ hdr_export_pdu = false;
if (info->mode == TEXT_IMPORT_HEXDUMP) {
switch (info->hexdump.offset_type)
@@ -1612,12 +1612,12 @@ text_import(text_import_info_t * const info)
}
if (info->timestamp_format == NULL || g_ascii_strcasecmp(info->timestamp_format, "ISO")) {
- ts_fmt_iso = FALSE;
+ ts_fmt_iso = false;
} else {
- ts_fmt_iso = TRUE;
+ ts_fmt_iso = true;
}
- offset_warned = FALSE;
- timecode_warned = FALSE;
+ offset_warned = false;
+ timecode_warned = false;
/* XXX: It would be good to know the time precision of the file,
* to use for the time delta for packets without timestamps. (ts_tick)
@@ -1628,44 +1628,44 @@ text_import(text_import_info_t * const info)
switch (info->dummy_header_type)
{
case HEADER_ETH:
- hdr_ethernet = TRUE;
+ hdr_ethernet = true;
hdr_ethernet_proto = info->pid;
break;
case HEADER_IPV4:
- hdr_ip = TRUE;
+ hdr_ip = true;
hdr_ip_proto = info->protocol;
break;
case HEADER_UDP:
- hdr_udp = TRUE;
- hdr_tcp = FALSE;
- hdr_ip = TRUE;
+ hdr_udp = true;
+ hdr_tcp = false;
+ hdr_ip = true;
hdr_ip_proto = 17;
break;
case HEADER_TCP:
- hdr_tcp = TRUE;
- hdr_udp = FALSE;
- hdr_ip = TRUE;
+ hdr_tcp = true;
+ hdr_udp = false;
+ hdr_ip = true;
hdr_ip_proto = 6;
break;
case HEADER_SCTP:
- hdr_sctp = TRUE;
- hdr_ip = TRUE;
+ hdr_sctp = true;
+ hdr_ip = true;
hdr_ip_proto = 132;
break;
case HEADER_SCTP_DATA:
- hdr_sctp = TRUE;
- hdr_data_chunk = TRUE;
- hdr_ip = TRUE;
+ hdr_sctp = true;
+ hdr_data_chunk = true;
+ hdr_ip = true;
hdr_ip_proto = 132;
break;
case HEADER_EXPORT_PDU:
- hdr_export_pdu = TRUE;
+ hdr_export_pdu = true;
break;
default:
@@ -1674,8 +1674,8 @@ text_import(text_import_info_t * const info)
if (hdr_ip) {
if (info->ipv6) {
- hdr_ipv6 = TRUE;
- hdr_ip = FALSE;
+ hdr_ipv6 = true;
+ hdr_ip = false;
hdr_ethernet_proto = 0x86DD;
} else {
hdr_ethernet_proto = 0x0800;
@@ -1684,7 +1684,7 @@ text_import(text_import_info_t * const info)
switch (info->encapsulation) {
case (WTAP_ENCAP_ETHERNET):
- hdr_ethernet = TRUE;
+ hdr_ethernet = true;
break;
case (WTAP_ENCAP_RAW_IP):
@@ -1713,7 +1713,7 @@ text_import(text_import_info_t * const info)
info->num_packets_read = 0;
info->num_packets_written = 0;
- packet_buf = (guint8 *)g_malloc(sizeof(HDR_ETHERNET) + sizeof(HDR_IP) +
+ packet_buf = (uint8_t *)g_malloc(sizeof(HDR_ETHERNET) + sizeof(HDR_IP) +
sizeof(HDR_SCTP) + sizeof(HDR_DATA_CHUNK) +
sizeof(HDR_EXPORT_PDU) + WTAP_MAX_PACKET_SIZE_STANDARD);
@@ -1784,18 +1784,18 @@ text_import_pre_open(wtap_dump_params * const params, int file_type_subtype, con
if (info_str->str) {
wtap_block_add_string_option(shb_hdr, OPT_SHB_HARDWARE, info_str->str, info_str->len);
}
- g_string_free(info_str, TRUE);
+ g_string_free(info_str, true);
info_str = g_string_new("");
get_os_version_info(info_str);
if (info_str->str) {
wtap_block_add_string_option(shb_hdr, OPT_SHB_OS, info_str->str, info_str->len);
}
- g_string_free(info_str, TRUE);
+ g_string_free(info_str, true);
wtap_block_add_string_option_format(shb_hdr, OPT_SHB_USERAPPL, "%s", get_appname_and_version());
- params->shb_hdrs = g_array_new(FALSE, FALSE, sizeof(wtap_block_t));
+ params->shb_hdrs = g_array_new(false, false, sizeof(wtap_block_t));
g_array_append_val(params->shb_hdrs, shb_hdr);
}
@@ -1851,7 +1851,7 @@ text_import_pre_open(wtap_dump_params * const params, int file_type_subtype, con
}
params->idb_inf = g_new(wtapng_iface_descriptions_t,1);
- params->idb_inf->interface_data = g_array_new(FALSE, FALSE, sizeof(wtap_block_t));
+ params->idb_inf->interface_data = g_array_new(false, false, sizeof(wtap_block_t));
g_array_append_val(params->idb_inf->interface_data, int_data);
}
diff --git a/ui/text_import.h b/ui/text_import.h
index dae7db987e..87120d57e6 100644
--- a/ui/text_import.h
+++ b/ui/text_import.h
@@ -73,27 +73,27 @@ typedef struct
struct {
FILE *import_text_FILE;
enum offset_type offset_type;
- gboolean has_direction;
- gboolean identify_ascii;
+ bool has_direction;
+ bool identify_ascii;
} hexdump;
struct {
GMappedFile* import_text_GMappedFile;
/* const */ GRegex* format;
enum data_encoding encoding;
- /* const */ gchar* in_indication;
- /* const */ gchar* out_indication;
+ /* const */ char* in_indication;
+ /* const */ char* out_indication;
} regex;
const char* timestamp_format;
/* Import info */
/* Wiretap encapsulation type; see wiretap/wtap.h for details */
- guint encapsulation;
+ unsigned encapsulation;
wtap_dumper* wdh;
/* Dummy header info (if encapsulation == 1) */
enum dummy_header_type dummy_header_type;
- guint pid;
- gboolean ipv6;
+ unsigned pid;
+ bool ipv6;
union {
ws_in4_addr ipv4;
ws_in6_addr ipv6;
@@ -102,18 +102,18 @@ typedef struct
ws_in4_addr ipv4;
ws_in6_addr ipv6;
} ip_dest_addr;
- guint protocol;
- guint src_port;
- guint dst_port;
- guint tag;
- guint ppi;
- /* const */ gchar* payload;
+ unsigned protocol;
+ unsigned src_port;
+ unsigned dst_port;
+ unsigned tag;
+ unsigned ppi;
+ /* const */ char* payload;
- guint max_frame_length;
+ unsigned max_frame_length;
/* Output info */
- guint num_packets_read;
- guint num_packets_written;
+ unsigned num_packets_read;
+ unsigned num_packets_written;
} text_import_info_t;
int text_import(text_import_info_t * const info);
diff --git a/ui/text_import_regex.c b/ui/text_import_regex.c
index 928957a702..e587cdb736 100644
--- a/ui/text_import_regex.c
+++ b/ui/text_import_regex.c
@@ -33,8 +33,8 @@ int text_import_regex(const text_import_info_t* info) {
// IO
GMappedFile* file = g_mapped_file_ref(info->regex.import_text_GMappedFile);
GError* gerror = NULL;
- gsize f_size = g_mapped_file_get_length(file);
- guchar* f_content = g_mapped_file_get_contents(file);
+ size_t f_size = g_mapped_file_get_length(file);
+ unsigned char* f_content = g_mapped_file_get_contents(file);
{ /* zero terminate the file */
if (f_content[f_size - 1] != '\n') {
fprintf(stderr, "Error: file did not end on \\n\n");
@@ -45,10 +45,10 @@ int text_import_regex(const text_import_info_t* info) {
}
// Regex result dissecting
- gboolean re_time, re_dir, re_seqno;
+ bool re_time, re_dir, re_seqno;
GMatchInfo* match;
- gint field_start;
- gint field_end;
+ int field_start;
+ int field_end;
{ /* analyze regex */
re_time = g_regex_get_string_number(info->regex.format, "time") >= 0;
re_dir = g_regex_get_string_number(info->regex.format, "dir") >= 0;
diff --git a/ui/text_import_regex.h b/ui/text_import_regex.h
index 93307c187a..e54309fb65 100644
--- a/ui/text_import_regex.h
+++ b/ui/text_import_regex.h
@@ -25,13 +25,13 @@
extern "C" {
#endif /* __cplusplus */
-void parse_data(guchar* start_field, guchar* end_field, enum data_encoding encoding);
+void parse_data(unsigned char* start_field, unsigned char* end_field, enum data_encoding encoding);
-void parse_dir(const guchar* start_field, const guchar* end_field, const gchar* in_indicator, const gchar* out_indicator);
+void parse_dir(const unsigned char* start_field, const unsigned char* end_field, const char* in_indicator, const char* out_indicator);
-void parse_time(const guchar* start_field, const guchar* end_field, const gchar* _format);
+void parse_time(const unsigned char* start_field, const unsigned char* end_field, const char* _format);
-void parse_seqno(const guchar* start_field, const guchar* end_field);
+void parse_seqno(const unsigned char* start_field, const unsigned char* end_field);
void flush_packet(void);
diff --git a/ui/time_shift.c b/ui/time_shift.c
index e54aa21db6..095e3690bc 100644
--- a/ui/time_shift.c
+++ b/ui/time_shift.c
@@ -115,9 +115,9 @@ calcNT3(nstime_t *OT1, nstime_t *OT3, nstime_t *NT1, nstime_t *NT3,
nstime_add(NT3, NT1);
}
-const gchar *
-time_string_parse(const gchar *time_text, int *year, int *month, int *day, gboolean *negative, int *hour, int *minute, long double *second) {
- const gchar *pts = time_text;
+const char *
+time_string_parse(const char *time_text, int *year, int *month, int *day, bool *negative, int *hour, int *minute, long double *second) {
+ const char *pts = time_text;
if (!time_text || !hour || !minute || !second)
return "Unable to convert time.";
@@ -181,9 +181,9 @@ time_string_parse(const gchar *time_text, int *year, int *month, int *day, gbool
*/
/* check for minus sign */
- *negative = FALSE;
+ *negative = false;
if (pts[0] == '-') {
- *negative = TRUE;
+ *negative = true;
pts++;
}
@@ -213,14 +213,14 @@ time_string_parse(const gchar *time_text, int *year, int *month, int *day, gbool
return NULL;
}
-static const gchar *
-time_string_to_nstime(const gchar *time_text, nstime_t *packettime, nstime_t *nstime)
+static const char *
+time_string_to_nstime(const char *time_text, nstime_t *packettime, nstime_t *nstime)
{
int h, m, Y, M, D;
long double f;
struct tm tm, *tmptm;
time_t tt;
- const gchar *err_str;
+ const char *err_str;
if ((err_str = time_string_parse(time_text, &Y, &M, &D, NULL, &h, &m, &f)) != NULL)
return err_str;
@@ -253,17 +253,17 @@ time_string_to_nstime(const gchar *time_text, nstime_t *packettime, nstime_t *ns
return NULL;
}
-const gchar *
-time_shift_all(capture_file *cf, const gchar *offset_text)
+const char *
+time_shift_all(capture_file *cf, const char *offset_text)
{
nstime_t offset;
long double offset_float = 0;
- guint32 i;
+ uint32_t i;
frame_data *fd;
- gboolean neg;
+ bool neg;
int h, m;
long double f;
- const gchar *err_str;
+ const char *err_str;
if (!cf || !offset_text)
return "Nothing to work with.";
@@ -289,19 +289,19 @@ time_shift_all(capture_file *cf, const gchar *offset_text)
continue; /* Shouldn't happen */
modify_time_perform(fd, neg ? SHIFT_NEG : SHIFT_POS, &offset, SHIFT_KEEPOFFSET);
}
- cf->unsaved_changes = TRUE;
+ cf->unsaved_changes = true;
packet_list_queue_draw();
return NULL;
}
-const gchar *
-time_shift_settime(capture_file *cf, guint packet_num, const gchar *time_text)
+const char *
+time_shift_settime(capture_file *cf, unsigned packet_num, const char *time_text)
{
nstime_t set_time, diff_time, packet_time;
frame_data *fd, *packetfd;
- guint32 i;
- const gchar *err_str;
+ uint32_t i;
+ const char *err_str;
if (!cf || !time_text)
return "Nothing to work with.";
@@ -335,19 +335,19 @@ time_shift_settime(capture_file *cf, guint packet_num, const gchar *time_text)
modify_time_perform(fd, SHIFT_POS, &diff_time, SHIFT_SETTOZERO);
}
- cf->unsaved_changes = TRUE;
+ cf->unsaved_changes = true;
packet_list_queue_draw();
return NULL;
}
-const gchar *
-time_shift_adjtime(capture_file *cf, guint packet1_num, const gchar *time1_text, guint packet2_num, const gchar *time2_text)
+const char *
+time_shift_adjtime(capture_file *cf, unsigned packet1_num, const char *time1_text, unsigned packet2_num, const char *time2_text)
{
nstime_t nt1, nt2, ot1, ot2, nt3;
nstime_t dnt, dot, d3t;
frame_data *fd, *packet1fd, *packet2fd;
- guint32 i;
- const gchar *err_str;
+ uint32_t i;
+ const char *err_str;
if (!cf || !time1_text || !time2_text)
return "Nothing to work with.";
@@ -419,15 +419,15 @@ time_shift_adjtime(capture_file *cf, guint packet1_num, const gchar *time1_text,
modify_time_perform(fd, SHIFT_POS, &d3t, SHIFT_SETTOZERO);
}
- cf->unsaved_changes = TRUE;
+ cf->unsaved_changes = true;
packet_list_queue_draw();
return NULL;
}
-const gchar *
+const char *
time_shift_undo(capture_file *cf)
{
- guint32 i;
+ uint32_t i;
frame_data *fd;
nstime_t nulltime;
diff --git a/ui/time_shift.h b/ui/time_shift.h
index 89dd66199b..e2dfb84ad1 100644
--- a/ui/time_shift.h
+++ b/ui/time_shift.h
@@ -42,7 +42,7 @@ extern "C" {
* @return NULL on success or an error description on failure.
*/
-const gchar * time_string_parse(const gchar *time_text, int *year, int *month, int *day, gboolean *negative, int *hour, int *minute, long double *second);
+const char * time_string_parse(const char *time_text, int *year, int *month, int *day, bool *negative, int *hour, int *minute, long double *second);
/** Shift all packets by an offset
*
@@ -51,7 +51,7 @@ const gchar * time_string_parse(const gchar *time_text, int *year, int *month, i
*
* @return NULL on success or an error description on failure.
*/
-const gchar * time_shift_all(capture_file *cf, const gchar *offset_text);
+const char * time_shift_all(capture_file *cf, const char *offset_text);
/* Set the time for a single packet
*
@@ -61,7 +61,7 @@ const gchar * time_shift_all(capture_file *cf, const gchar *offset_text);
*
* @return NULL on success or an error description on failure.
*/
-const gchar * time_shift_settime(capture_file *cf, guint packet_num, const gchar *time_text);
+const char * time_shift_settime(capture_file *cf, unsigned packet_num, const char *time_text);
/* Set the time for two packets and extrapolate the rest
*
@@ -73,7 +73,7 @@ const gchar * time_shift_settime(capture_file *cf, guint packet_num, const gchar
*
* @return NULL on success or an error description on failure.
*/
-const gchar * time_shift_adjtime(capture_file *cf, guint packet1_num, const gchar *time1_text, guint packet2_num, const gchar *time2_text);
+const char * time_shift_adjtime(capture_file *cf, unsigned packet1_num, const char *time1_text, unsigned packet2_num, const char *time2_text);
/* Reset the times for all packets
*
@@ -81,7 +81,7 @@ const gchar * time_shift_adjtime(capture_file *cf, guint packet1_num, const gcha
*
* @return NULL on success or an error description on failure.
*/
-const gchar * time_shift_undo(capture_file *cf);
+const char * time_shift_undo(capture_file *cf);
#ifdef __cplusplus
}
diff --git a/ui/util.c b/ui/util.c
index f7ac432074..79de78f323 100644
--- a/ui/util.c
+++ b/ui/util.c
@@ -80,8 +80,8 @@ get_args_as_string(int argc, char **argv, int optindex)
/* Compute the difference between two seconds/microseconds time stamps. */
void
-compute_timestamp_diff(gint *diffsec, gint *diffusec,
- guint32 sec1, guint32 usec1, guint32 sec2, guint32 usec2)
+compute_timestamp_diff(int *diffsec, int *diffusec,
+ uint32_t sec1, uint32_t usec1, uint32_t sec2, uint32_t usec2)
{
if (sec1 == sec2) {
/* The seconds part of the first time is the same as the seconds
@@ -124,8 +124,8 @@ compute_timestamp_diff(gint *diffsec, gint *diffusec,
/* Remove any %<interface_name> from an IP address. */
static char *sanitize_filter_ip(char *hostname) {
- gchar *end;
- gchar *ret;
+ char *end;
+ char *ret;
ret = g_strdup(hostname);
if (!ret)
@@ -148,9 +148,9 @@ static char *sanitize_filter_ip(char *hostname) {
SESSIONNAME (terminal server): <remote name>
*/
-const gchar *get_conn_cfilter(void) {
+const char *get_conn_cfilter(void) {
static GString *filter_str = NULL;
- gchar *env, **tokens;
+ char *env, **tokens;
char *lastp, *lastc, *p;
char *pprotocol = NULL;
char *phostname = NULL;
@@ -331,10 +331,10 @@ const gchar *get_conn_cfilter(void) {
return filter_str->str;
}
-gboolean display_is_remote(void)
+bool display_is_remote(void)
{
- static gboolean remote_display_checked;
- static gboolean is_remote;
+ static bool remote_display_checked;
+ static bool is_remote;
if (!remote_display_checked) {
is_remote = (strlen(get_conn_cfilter()) > 0);
@@ -343,7 +343,7 @@ gboolean display_is_remote(void)
}
// MUST be UTF-8
-static char *last_open_dir = NULL;
+static char *last_open_dir;
const char *
get_last_open_dir(void)
@@ -355,7 +355,7 @@ void
set_last_open_dir(const char *dirname)
{
size_t len;
- gchar *new_last_open_dir;
+ char *new_last_open_dir;
if (dirname && dirname[0]) {
len = strlen(dirname);
diff --git a/ui/util.h b/ui/util.h
index 36f29f2d75..865909bfba 100644
--- a/ui/util.h
+++ b/ui/util.h
@@ -24,8 +24,8 @@ char *get_args_as_string(int argc, char **argv, int optindex);
/* Compute the difference between two seconds/microseconds time stamps.
* Beware: we're using nanosecond resolution now and function is currently unused
*/
-void compute_timestamp_diff(gint *diffsec, gint *diffusec,
- guint32 sec1, guint32 usec1, guint32 sec2, guint32 usec2);
+void compute_timestamp_diff(int *diffsec, int *diffusec,
+ uint32_t sec1, uint32_t usec1, uint32_t sec2, uint32_t usec2);
/* Try to figure out if we're remotely connected, e.g. via ssh or
Terminal Server, and create a capture filter that matches aspects of the
@@ -40,9 +40,9 @@ void compute_timestamp_diff(gint *diffsec, gint *diffusec,
const char *get_conn_cfilter(void);
/** Check if we're running on a remote connection.
- * @return TRUE if we're running remotely, FALSE if local.
+ * @return true if we're running remotely, false if local.
*/
-gboolean display_is_remote(void);
+bool display_is_remote(void);
/** Get the latest directory in which a file has been opened.
*
diff --git a/ui/voip_calls.c b/ui/voip_calls.c
index e6175e048a..ea30b437f6 100644
--- a/ui/voip_calls.c
+++ b/ui/voip_calls.c
@@ -152,15 +152,15 @@ tap_id_to_base(void* tap_id, int offset) {
}
typedef struct {
- gchar *frame_label;
- gchar *comment;
+ char *frame_label;
+ char *comment;
} graph_str;
#define H245_MAX 6
typedef struct _h245_labels {
- guint32 frame_num;
- gint8 labels_count;
+ uint32_t frame_num;
+ int8_t labels_count;
graph_str labels[H245_MAX];
} h245_labels_t;
@@ -331,10 +331,10 @@ voip_calls_free_callsinfo(voip_calls_info_t *callsinfo)
/****************************************************************************/
/* Add a new item into the graph */
static void
-add_to_graph(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const gchar *frame_label, const gchar *comment, guint16 call_num, address *src_addr, address *dst_addr, guint16 line_style)
+add_to_graph(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const char *frame_label, const char *comment, uint16_t call_num, address *src_addr, address *dst_addr, uint16_t line_style)
{
seq_analysis_item_t *gai;
- gchar time_str[COL_MAX_LEN];
+ char time_str[COL_MAX_LEN];
if (!tapinfo->graph_analysis) {
return;
@@ -362,7 +362,7 @@ add_to_graph(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *
gai->line_style=line_style;
set_fd_time(edt->session, pinfo->fd, time_str);
gai->time_str = g_strdup(time_str);
- gai->display=FALSE;
+ gai->display=false;
g_queue_push_tail(tapinfo->graph_analysis->items, gai);
g_hash_table_insert(tapinfo->graph_analysis->ht, GUINT_TO_POINTER(gai->frame_number), gai);
@@ -371,11 +371,11 @@ add_to_graph(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *
/****************************************************************************/
/* Append str to frame_label and comment in a graph item */
/* return 0 if the frame_num is not in the graph list */
-static int append_to_frame_graph(voip_calls_tapinfo_t *tapinfo, guint32 frame_num, const gchar *new_frame_label, const gchar *new_comment)
+static int append_to_frame_graph(voip_calls_tapinfo_t *tapinfo, uint32_t frame_num, const char *new_frame_label, const char *new_comment)
{
seq_analysis_item_t *gai=NULL;
- gchar *frame_label = NULL;
- gchar *comment = NULL;
+ char *frame_label = NULL;
+ char *comment = NULL;
if(tapinfo->graph_analysis && NULL!=tapinfo->graph_analysis->ht)
gai=(seq_analysis_item_t *)g_hash_table_lookup(tapinfo->graph_analysis->ht, GUINT_TO_POINTER(frame_num));
@@ -400,11 +400,11 @@ static int append_to_frame_graph(voip_calls_tapinfo_t *tapinfo, guint32 frame_nu
/****************************************************************************/
/* Change the frame_label and comment in a graph item if not NULL*/
/* return 0 if the frame_num is not in the graph list */
-static int change_frame_graph(voip_calls_tapinfo_t *tapinfo, guint32 frame_num, const gchar *new_frame_label, const gchar *new_comment)
+static int change_frame_graph(voip_calls_tapinfo_t *tapinfo, uint32_t frame_num, const char *new_frame_label, const char *new_comment)
{
seq_analysis_item_t *gai=NULL;
- gchar *frame_label = NULL;
- gchar *comment = NULL;
+ char *frame_label = NULL;
+ char *comment = NULL;
if(tapinfo->graph_analysis && NULL!=tapinfo->graph_analysis->ht)
gai=(seq_analysis_item_t *)g_hash_table_lookup(tapinfo->graph_analysis->ht, GUINT_TO_POINTER(frame_num));
@@ -428,11 +428,11 @@ static int change_frame_graph(voip_calls_tapinfo_t *tapinfo, guint32 frame_num,
/****************************************************************************/
/* Change all the graph items with call_num to new_call_num */
-static guint change_call_num_graph(voip_calls_tapinfo_t *tapinfo, guint16 call_num, guint16 new_call_num)
+static unsigned change_call_num_graph(voip_calls_tapinfo_t *tapinfo, uint16_t call_num, uint16_t new_call_num)
{
seq_analysis_item_t *gai;
GList *list;
- guint items_changed;
+ unsigned items_changed;
items_changed = 0;
if(tapinfo->graph_analysis){
@@ -452,12 +452,12 @@ static guint change_call_num_graph(voip_calls_tapinfo_t *tapinfo, guint16 call_n
/****************************************************************************/
/* Insert the item in the graph list */
-static void insert_to_graph_t38(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const gchar *frame_label, const gchar *comment, guint16 call_num, address *src_addr, address *dst_addr, guint16 line_style, guint32 frame_num)
+static void insert_to_graph_t38(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const char *frame_label, const char *comment, uint16_t call_num, address *src_addr, address *dst_addr, uint16_t line_style, uint32_t frame_num)
{
seq_analysis_item_t *gai, *new_gai;
GList *list;
- gboolean inserted;
- gchar time_str[COL_MAX_LEN];
+ bool inserted;
+ char time_str[COL_MAX_LEN];
if (!tapinfo->graph_analysis){
/* Nothing to do */
@@ -484,9 +484,9 @@ static void insert_to_graph_t38(voip_calls_tapinfo_t *tapinfo, packet_info *pinf
new_gai->line_style=line_style;
set_fd_time(edt->session, pinfo->fd, time_str);
new_gai->time_str = g_strdup(time_str);
- new_gai->display=FALSE;
+ new_gai->display=false;
- inserted = FALSE;
+ inserted = false;
list = g_queue_peek_nth_link(tapinfo->graph_analysis->items, 0);
while (list)
@@ -495,7 +495,7 @@ static void insert_to_graph_t38(voip_calls_tapinfo_t *tapinfo, packet_info *pinf
if (gai->frame_number > frame_num) {
g_queue_insert_before(tapinfo->graph_analysis->items, list, new_gai);
g_hash_table_insert(tapinfo->graph_analysis->ht, GUINT_TO_POINTER(new_gai->frame_number), new_gai);
- inserted = TRUE;
+ inserted = true;
break;
}
list = g_list_next(list);
@@ -512,7 +512,7 @@ static void insert_to_graph_t38(voip_calls_tapinfo_t *tapinfo, packet_info *pinf
/* ***************************TAP for RTP Events*****************************/
/****************************************************************************/
-/*static guint32 rtp_evt_setup_frame_num = 0;*/
+/*static uint32_t rtp_evt_setup_frame_num = 0;*/
/****************************************************************************/
/* whenever a rtp event packet is seen by the tap listener */
@@ -556,7 +556,7 @@ rtp_event_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -636,11 +636,11 @@ rtp_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, void c
{
tmp_listinfo=(rtpstream_info_t *)list->data;
if ( (tmp_listinfo->setup_frame_number == rtp_info->info_setup_frame_num)
- && (tmp_listinfo->id.ssrc == rtp_info->info_sync_src) && (tmp_listinfo->end_stream == FALSE)) {
+ && (tmp_listinfo->id.ssrc == rtp_info->info_sync_src) && (tmp_listinfo->end_stream == false)) {
/* if the payload type has changed, we mark the stream as finished to create a new one
this is to show multiple payload changes in the Graph for example for DTMF RFC2833 */
if ( tmp_listinfo->first_payload_type != rtp_info->info_payload_type ) {
- tmp_listinfo->end_stream = TRUE;
+ tmp_listinfo->end_stream = true;
} else if ( ( ( tmp_listinfo->ed137_info == NULL ) && (rtp_info->info_ed137_info != NULL) ) ||
( ( tmp_listinfo->ed137_info != NULL ) && (rtp_info->info_ed137_info == NULL) ) ||
( ( tmp_listinfo->ed137_info != NULL ) && (rtp_info->info_ed137_info != NULL) &&
@@ -648,7 +648,7 @@ rtp_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, void c
)
) {
/* if ed137_info has changed, create new stream */
- tmp_listinfo->end_stream = TRUE;
+ tmp_listinfo->end_stream = true;
} else {
strinfo = (rtpstream_info_t*)(list->data);
break;
@@ -658,14 +658,14 @@ rtp_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, void c
}
/* if this is a duplicated RTP Event End, just return */
- if ((tapinfo->rtp_evt_frame_num == pinfo->num) && !strinfo && (tapinfo->rtp_evt_end == TRUE)) {
+ if ((tapinfo->rtp_evt_frame_num == pinfo->num) && !strinfo && (tapinfo->rtp_evt_end == true)) {
return TAP_PACKET_DONT_REDRAW;
}
/* not in the list? then create a new entry */
if (strinfo==NULL) {
strinfo = rtpstream_info_malloc_and_init();
- rtpstream_id_copy_pinfo(pinfo,&(strinfo->id),FALSE);
+ rtpstream_id_copy_pinfo(pinfo,&(strinfo->id),false);
strinfo->id.ssrc = rtp_info->info_sync_src;
strinfo->first_payload_type = rtp_info->info_payload_type;
strinfo->is_srtp = rtp_info->info_is_srtp;
@@ -674,7 +674,7 @@ rtp_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, void c
/* Use existing packet info if available */
p_packet_data = (struct _rtp_packet_info *)p_get_proto_data(wmem_file_scope(), pinfo, proto_get_id_by_filter_name("rtp"), RTP_CONVERSATION_PROTO_DATA);
if (p_packet_data && p_packet_data->rtp_dyn_payload) {
- const gchar *encoding_name = rtp_dyn_payload_get_name(p_packet_data->rtp_dyn_payload, strinfo->first_payload_type);
+ const char *encoding_name = rtp_dyn_payload_get_name(p_packet_data->rtp_dyn_payload, strinfo->first_payload_type);
if (encoding_name) {
strinfo->first_payload_type_name = encoding_name;
}
@@ -705,8 +705,8 @@ rtp_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, void c
/* process RTP Event */
if (tapinfo->rtp_evt_frame_num == pinfo->num) {
strinfo->rtp_event = tapinfo->rtp_evt;
- if (tapinfo->rtp_evt_end == TRUE) {
- strinfo->end_stream = TRUE;
+ if (tapinfo->rtp_evt_end == true) {
+ strinfo->end_stream = true;
}
}
@@ -726,9 +726,9 @@ rtp_draw(void *tap_offset_ptr)
/* GList *voip_calls_graph_list; */
seq_analysis_item_t *gai = NULL;
seq_analysis_item_t *new_gai;
- guint16 conv_num;
- gdouble duration;
- gchar time_str[COL_MAX_LEN];
+ uint16_t conv_num;
+ double duration;
+ char time_str[COL_MAX_LEN];
/* add each rtp stream to the graph */
rtpstreams_list = g_list_first(tapinfo->rtpstream_list);
@@ -749,7 +749,7 @@ rtp_draw(void *tap_offset_ptr)
/* if RTP was already in the Graph, just update the comment information */
gai = (seq_analysis_item_t *)g_hash_table_lookup(tapinfo->graph_analysis->ht, GUINT_TO_POINTER(rtp_listinfo->start_fd->num));
if (gai != NULL) {
- duration = (gdouble)(nstime_to_msec(&rtp_listinfo->stop_rel_time) - nstime_to_msec(&rtp_listinfo->start_rel_time));
+ duration = (double)(nstime_to_msec(&rtp_listinfo->stop_rel_time) - nstime_to_msec(&rtp_listinfo->start_rel_time));
g_free(gai->comment);
gai->comment = ws_strdup_printf(comment_fmt,
(rtp_listinfo->is_srtp)?"SRTP":"RTP", rtp_listinfo->packet_count,
@@ -761,7 +761,7 @@ rtp_draw(void *tap_offset_ptr)
copy_address(&(new_gai->dst_addr),&(rtp_listinfo->id.dst_addr));
new_gai->port_src = rtp_listinfo->id.src_port;
new_gai->port_dst = rtp_listinfo->id.dst_port;
- duration = (gdouble)(nstime_to_msec(&rtp_listinfo->stop_rel_time) - nstime_to_msec(&rtp_listinfo->start_rel_time));
+ duration = (double)(nstime_to_msec(&rtp_listinfo->stop_rel_time) - nstime_to_msec(&rtp_listinfo->start_rel_time));
new_gai->frame_label = ws_strdup_printf("%s (%s) %s%s%s",
(rtp_listinfo->is_srtp)?"SRTP":"RTP",
rtp_listinfo->first_payload_type_name,
@@ -787,7 +787,7 @@ rtp_draw(void *tap_offset_ptr)
new_gai->conv_num = conv_num;
set_fd_time(tapinfo->session, rtp_listinfo->start_fd, time_str);
new_gai->time_str = g_strdup(time_str);
- new_gai->display=FALSE;
+ new_gai->display=false;
new_gai->line_style = 2; /* the arrow line will be 2 pixels width */
g_queue_push_tail(tapinfo->graph_analysis->items, new_gai);
g_hash_table_insert(tapinfo->graph_analysis->ht, GUINT_TO_POINTER(rtp_listinfo->start_fd->num), new_gai);
@@ -810,12 +810,12 @@ rtp_packet_draw(void *tap_offset_ptr)
GList *rtpstreams_list;
rtpstream_info_t *rtp_listinfo;
GList *voip_calls_graph_list;
- guint item;
+ unsigned item;
seq_analysis_item_t *gai;
seq_analysis_item_t *new_gai;
- guint16 conv_num;
- guint32 duration;
- gchar time_str[COL_MAX_LEN];
+ uint16_t conv_num;
+ uint32_t duration;
+ char time_str[COL_MAX_LEN];
/* add each rtp stream to the graph */
rtpstreams_list = g_list_first(tapinfo->stream_list);
@@ -838,7 +838,7 @@ rtp_packet_draw(void *tap_offset_ptr)
gai = voip_calls_graph_list->data;
/* if RTP was already in the Graph, just update the comment information */
if (rtp_listinfo->start_fd->num == gai->frame_number) {
- duration = (guint32)(nstime_to_msec(&rtp_listinfo->stop_fd->rel_ts) - nstime_to_msec(&rtp_listinfo->start_fd->rel_ts));
+ duration = (uint32_t)(nstime_to_msec(&rtp_listinfo->stop_fd->rel_ts) - nstime_to_msec(&rtp_listinfo->start_fd->rel_ts));
g_free(gai->comment);
gai->comment = ws_strdup_printf("%s Num packets:%u Duration:%u.%03us SSRC:0x%X",
(rtp_listinfo->is_srtp)?"SRTP":"RTP", rtp_listinfo->npackets,
@@ -859,7 +859,7 @@ rtp_packet_draw(void *tap_offset_ptr)
new_gai->port_src = rtp_listinfo->id.src_port;
new_gai->port_dst = rtp_listinfo->id.dst_port;
new_gai->protocol = g_strdup(port_type_to_str(pinfo->ptype));
- duration = (guint32)(nstime_to_msec(&rtp_listinfo->stop_fd->rel_ts) - nstime_to_msec(&rtp_listinfo->start_fd->rel_ts));
+ duration = (uint32_t)(nstime_to_msec(&rtp_listinfo->stop_fd->rel_ts) - nstime_to_msec(&rtp_listinfo->start_fd->rel_ts));
new_gai->frame_label = ws_strdup_printf("%s (%s) %s",
(rtp_listinfo->is_srtp)?"SRTP":"RTP",
rtp_listinfo->first_payload_type_str,
@@ -871,7 +871,7 @@ rtp_packet_draw(void *tap_offset_ptr)
new_gai->conv_num = conv_num;
set_fd_time(cfile.epan, rtp_listinfo->start_fd, time_str);
new_gai->time_str = g_strdup(time_str);
- new_gai->display=FALSE;
+ new_gai->display=false;
new_gai->line_style = 2; /* the arrow line will be 2 pixels width */
tapinfo->graph_analysis->list = g_list_insert(tapinfo->graph_analysis->list, new_gai, item);
break;
@@ -903,7 +903,7 @@ rtp_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -929,12 +929,12 @@ t38_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, const
voip_calls_info_t *tmp_listinfo;
GList *voip_calls_graph_list = NULL;
GList *list;
- gchar *frame_label = NULL;
- gchar *comment = NULL;
+ char *frame_label = NULL;
+ char *comment = NULL;
seq_analysis_item_t *tmp_gai, *gai = NULL;
- gchar *tmp_str1, *tmp_str2;
- guint16 line_style = 2;
- gdouble duration;
+ char *tmp_str1, *tmp_str2;
+ uint16_t line_style = 2;
+ double duration;
int conv_num = -1;
const t38_packet_info *t38_info = (const t38_packet_info *)t38_info_ptr;
@@ -1059,7 +1059,7 @@ t38_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, const
comment = ws_strdup_printf(comment_fmt,
tmp_str1, duration, t38_info->desc_comment );
insert_to_graph_t38(tapinfo, pinfo, edt, frame_label, comment,
- (guint16)conv_num, &(pinfo->src), &(pinfo->dst),
+ (uint16_t)conv_num, &(pinfo->src), &(pinfo->dst),
line_style, t38_info->frame_num_first_t4_data);
g_free(comment_fmt);
wmem_free(NULL, tmp_str1);
@@ -1068,7 +1068,7 @@ t38_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, const
}
if (frame_label && !(t38_info->Data_Field_field_type_value == 7 && t38_info->type_msg == 1)) {
- add_to_graph(tapinfo, pinfo, edt, frame_label, comment, (guint16)conv_num, &(pinfo->src), &(pinfo->dst), line_style);
+ add_to_graph(tapinfo, pinfo, edt, frame_label, comment, (uint16_t)conv_num, &(pinfo->src), &(pinfo->dst), line_style);
}
g_free(comment);
@@ -1107,7 +1107,7 @@ t38_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -1124,7 +1124,7 @@ remove_tap_listener_t38(voip_calls_tapinfo_t *tap_id_base)
/****************************************************************************/
static void
-free_sip_info(gpointer p) {
+free_sip_info(void *p) {
sip_calls_info_t *si = (sip_calls_info_t *)p;
g_free(si->call_identifier);
@@ -1143,10 +1143,10 @@ sip_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt ,
voip_calls_info_t *callsinfo = NULL;
sip_calls_info_t *tmp_sipinfo = NULL;
address tmp_src, tmp_dst;
- gchar *frame_label = NULL;
- gchar *comment = NULL;
- gchar *old_comment = NULL;
- gchar *key = NULL;
+ char *frame_label = NULL;
+ char *comment = NULL;
+ char *old_comment = NULL;
+ char *key = NULL;
const sip_info_value_t *pi = (const sip_info_value_t *)SIPinfo;
@@ -1343,7 +1343,7 @@ sip_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -1367,12 +1367,12 @@ isup_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
voip_calls_info_t *tmp_listinfo;
voip_calls_info_t *callsinfo = NULL;
isup_calls_info_t *tmp_isupinfo;
- gboolean found = FALSE;
- gboolean forward = FALSE;
- gboolean right_pair;
+ bool found = false;
+ bool forward = false;
+ bool right_pair;
GList *list;
- gchar *frame_label = NULL;
- gchar *comment = NULL;
+ char *frame_label = NULL;
+ char *comment = NULL;
const isup_tap_rec_t *pi = (const isup_tap_rec_t *)isup_info;
@@ -1389,26 +1389,26 @@ isup_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
list = g_queue_peek_nth_link(tapinfo->callsinfos, 0);
while (list)
{
- right_pair = TRUE;
+ right_pair = true;
tmp_listinfo=(voip_calls_info_t *)list->data;
if ((tmp_listinfo->protocol == VOIP_ISUP)&&(tmp_listinfo->call_active_state==VOIP_ACTIVE)) {
tmp_isupinfo = (isup_calls_info_t *)tmp_listinfo->prot_info;
if ((tmp_isupinfo->cic == pi->circuit_id)&&(tmp_isupinfo->ni == tapinfo->mtp3_ni)) {
if ((tmp_isupinfo->opc == tapinfo->mtp3_opc)&&(tmp_isupinfo->dpc == tapinfo->mtp3_dpc)) {
- forward = TRUE;
+ forward = true;
} else if ((tmp_isupinfo->dpc == tapinfo->mtp3_opc)&&(tmp_isupinfo->opc == tapinfo->mtp3_dpc)) {
- forward = FALSE;
+ forward = false;
} else {
- right_pair = FALSE;
+ right_pair = false;
}
if (right_pair) {
/* if there is an IAM for a call that is not in setup state, that means the previous call in the same
cic is no longer active */
if (tmp_listinfo->call_state == VOIP_CALL_SETUP) {
- found = TRUE;
+ found = true;
} else if (pi->message_type != 1) {
- found = TRUE;
+ found = true;
} else {
tmp_listinfo->call_active_state=VOIP_INACTIVE;
}
@@ -1551,7 +1551,7 @@ isup_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -1631,7 +1631,7 @@ mtp3_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
error_string = register_tap_listener("m3ua", tap_base_to_id(tap_id_base, tap_id_offset_m3ua_),
@@ -1646,7 +1646,7 @@ mtp3_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -1663,7 +1663,7 @@ remove_tap_listener_mtp3_calls(voip_calls_tapinfo_t *tap_id_base)
/****************************************************************************/
/* ***************************TAP for Q931 **********************************/
/****************************************************************************/
-static void h245_add_to_graph(voip_calls_tapinfo_t *tapinfo, guint32 new_frame_num);
+static void h245_add_to_graph(voip_calls_tapinfo_t *tapinfo, uint32_t new_frame_num);
static const e_guid_t guid_allzero = {0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } };
/* defines specific H323 data */
@@ -1679,7 +1679,7 @@ q931_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
voip_calls_info_t *tmp_listinfo;
voip_calls_info_t *callsinfo = NULL;
h245_address_t *h245_add = NULL;
- gchar *comment, *tmp_str;
+ char *comment, *tmp_str;
const q931_packet_info *pi = (const q931_packet_info *)q931_info;
@@ -1782,8 +1782,8 @@ q931_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
list = g_list_next (list);
}
- comment = ws_strdup_printf("H225 From: %s To:%s TunnH245:%s FS:%s", callsinfo->from_identity, callsinfo->to_identity, (tmp_h323info->is_h245Tunneling==TRUE?"on":"off"),
- (tapinfo->h225_is_faststart==TRUE?"on":"off"));
+ comment = ws_strdup_printf("H225 From: %s To:%s TunnH245:%s FS:%s", callsinfo->from_identity, callsinfo->to_identity, (tmp_h323info->is_h245Tunneling==true?"on":"off"),
+ (tapinfo->h225_is_faststart==true?"on":"off"));
} else if (tapinfo->h225_cstype == H225_RELEASE_COMPLET) {
/* get the Q931 Release cause code */
if (tapinfo->q931_cause_value != 0xFF) {
@@ -1965,7 +1965,7 @@ q931_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -1989,7 +1989,7 @@ add_h245_Address(h323_calls_info_t *h323info, h245_address_t *h245_address)
static void
-free_h225_info(gpointer p) {
+free_h225_info(void *p) {
h323_calls_info_t *tmp_h323info = (h323_calls_info_t *)p;
/* DUMP_PTR2(tmp_h323info->guid); */
@@ -2020,8 +2020,8 @@ h225_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
voip_calls_info_t *tmp_listinfo;
voip_calls_info_t *callsinfo = NULL;
h323_calls_info_t *tmp_h323info = NULL;
- gchar *frame_label;
- gchar *comment;
+ char *frame_label;
+ char *comment;
GList *list;
h245_address_t *h245_add = NULL;
@@ -2100,10 +2100,10 @@ h225_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
clear_address(&tmp_h323info->h225SetupAddr);
tmp_h323info->h245_list = NULL;
- tmp_h323info->is_faststart_Setup = FALSE;
- tmp_h323info->is_faststart_Proc = FALSE;
- tmp_h323info->is_h245Tunneling = FALSE;
- tmp_h323info->is_h245 = FALSE;
+ tmp_h323info->is_faststart_Setup = false;
+ tmp_h323info->is_faststart_Proc = false;
+ tmp_h323info->is_h245Tunneling = false;
+ tmp_h323info->is_h245 = false;
tmp_h323info->q931_crv = -1;
tmp_h323info->q931_crv2 = -1;
tmp_h323info->requestSeqNum = 0;
@@ -2132,7 +2132,7 @@ h225_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
if (pi->msg_type == H225_CS) {
/* this is still IPv4 only, because the dissector is */
- if (pi->is_h245 == TRUE) {
+ if (pi->is_h245 == true) {
h245_add = g_new(h245_address_t, 1);
alloc_address_wmem(NULL, &h245_add->h245_address, AT_IPv4, 4, &pi->h245_address);
h245_add->h245_port = pi->h245_port;
@@ -2151,14 +2151,14 @@ h225_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
if (tmp_h323info->h225SetupAddr.type == AT_NONE)
copy_address(&(tmp_h323info->h225SetupAddr), &(pinfo->src));
callsinfo->call_state=VOIP_CALL_SETUP;
- comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==TRUE?"on":"off"),
- (pi->is_faststart==TRUE?"on":"off"));
+ comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==true?"on":"off"),
+ (pi->is_faststart==true?"on":"off"));
break;
case H225_CONNECT:
callsinfo->call_state=VOIP_IN_CALL;
- if (pi->is_faststart == TRUE) tmp_h323info->is_faststart_Proc = TRUE;
- comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==TRUE?"on":"off"),
- (pi->is_faststart==TRUE?"on":"off"));
+ if (pi->is_faststart == true) tmp_h323info->is_faststart_Proc = true;
+ comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==true?"on":"off"),
+ (pi->is_faststart==true?"on":"off"));
break;
case H225_RELEASE_COMPLET:
if (callsinfo->call_state==VOIP_CALL_SETUP) {
@@ -2178,13 +2178,13 @@ h225_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
case H225_PROGRESS:
case H225_ALERTING:
case H225_CALL_PROCEDING:
- if (pi->is_faststart == TRUE) tmp_h323info->is_faststart_Proc = TRUE;
- comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==TRUE?"on":"off"),
- (pi->is_faststart==TRUE?"on":"off"));
+ if (pi->is_faststart == true) tmp_h323info->is_faststart_Proc = true;
+ comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==true?"on":"off"),
+ (pi->is_faststart==true?"on":"off"));
break;
default:
- comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==TRUE?"on":"off"),
- (pi->is_faststart==TRUE?"on":"off"));
+ comment = ws_strdup_printf("H225 TunnH245:%s FS:%s", (tmp_h323info->is_h245Tunneling==true?"on":"off"),
+ (pi->is_faststart==true?"on":"off"));
}
}
@@ -2262,7 +2262,7 @@ h225_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -2275,9 +2275,9 @@ remove_tap_listener_h225_calls(voip_calls_tapinfo_t *tap_id_base)
/* Add the h245 label info to the graph */
void
-h245_add_to_graph(voip_calls_tapinfo_t *tapinfo, guint32 new_frame_num)
+h245_add_to_graph(voip_calls_tapinfo_t *tapinfo, uint32_t new_frame_num)
{
- gint8 n;
+ int8_t n;
if (new_frame_num != tapinfo->h245_labels->frame_num) return;
@@ -2294,9 +2294,9 @@ h245_add_to_graph(voip_calls_tapinfo_t *tapinfo, guint32 new_frame_num)
/* free the h245_labels if the frame number is different */
static void
-h245_free_labels(voip_calls_tapinfo_t *tapinfo, guint32 new_frame_num)
+h245_free_labels(voip_calls_tapinfo_t *tapinfo, uint32_t new_frame_num)
{
- gint8 n;
+ int8_t n;
if (new_frame_num == tapinfo->h245_labels->frame_num) return;
@@ -2312,7 +2312,7 @@ h245_free_labels(voip_calls_tapinfo_t *tapinfo, guint32 new_frame_num)
/* add the frame_label and comment to h245_labels and free the actual one if it is different frame num */
static void
-h245_add_label(voip_calls_tapinfo_t *tapinfo, guint32 new_frame_num, const gchar *frame_label, const gchar *comment)
+h245_add_label(voip_calls_tapinfo_t *tapinfo, uint32_t new_frame_num, const char *frame_label, const char *comment)
{
h245_free_labels(tapinfo, new_frame_num);
@@ -2432,7 +2432,7 @@ h245dg_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -2508,7 +2508,7 @@ sdp_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -2527,18 +2527,18 @@ remove_tap_listener_sdp_calls(voip_calls_tapinfo_t *tap_id_base)
This function will look for a signal/event in the SignalReq/ObsEvent string
and return true if it is found
*/
-static gboolean
-is_mgcp_signal(const gchar *signal_str_p, const gchar *signalStr)
+static bool
+is_mgcp_signal(const char *signal_str_p, const char *signalStr)
{
- gint i;
- gchar **resultArray;
- gboolean found = FALSE;
+ int i;
+ char **resultArray;
+ bool found = false;
/* if there is no signalStr, just return false */
- if (signalStr == NULL) return FALSE;
+ if (signalStr == NULL) return false;
/* if are both "blank" return true */
- if ( (*signal_str_p == '\0') && (*signalStr == '\0') ) return TRUE;
+ if ( (*signal_str_p == '\0') && (*signalStr == '\0') ) return true;
/* look for signal in signalStr */
resultArray = g_strsplit(signalStr, ",", 10);
@@ -2546,7 +2546,7 @@ is_mgcp_signal(const gchar *signal_str_p, const gchar *signalStr)
for (i = 0; resultArray[i]; i++) {
g_strstrip(resultArray[i]);
if (strcmp(resultArray[i], signal_str_p) == 0) {
- found = TRUE;
+ found = true;
break;
}
}
@@ -2561,9 +2561,9 @@ is_mgcp_signal(const gchar *signal_str_p, const gchar *signalStr)
This is how it looks the caller Id: rg, ci(02/16/08/29, "3035550002","Ale Sipura 2")
*/
static void
-mgcp_caller_id(gchar *signalStr, gchar **callerId)
+mgcp_caller_id(char *signalStr, char **callerId)
{
- gchar **arrayStr;
+ char **arrayStr;
/* if there is no signalStr, just return false */
if (signalStr == NULL) return;
@@ -2584,14 +2584,14 @@ mgcp_caller_id(gchar *signalStr, gchar **callerId)
This is how it looks the dialed digits 5,5,5,0,0,0,2,#,*
*/
static void
-mgcp_dialed_digits(gchar *signalStr, gchar **dialedDigits)
+mgcp_dialed_digits(char *signalStr, char **dialedDigits)
{
- gchar *tmpStr;
- gchar *resultStr;
- gint i,j;
+ char *tmpStr;
+ char *resultStr;
+ int i,j;
/* start with 1 for the null-terminator */
- guint resultStrLen = 1;
+ unsigned resultStrLen = 1;
/* if there is no signalStr, just return false */
if (signalStr == NULL) return;
@@ -2616,7 +2616,7 @@ mgcp_dialed_digits(gchar *signalStr, gchar **dialedDigits)
return;
}
- resultStr = (gchar *)g_malloc(resultStrLen);
+ resultStr = (char *)g_malloc(resultStrLen);
for (i = 0, j = 0; tmpStr[i]; i++) {
if (tmpStr[i] != '?')
@@ -2645,12 +2645,12 @@ mgcp_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
mgcp_calls_info_t *tmp_mgcpinfo = NULL;
GList *list;
GList *listGraph = NULL;
- gchar *frame_label = NULL;
- gchar *comment = NULL;
+ char *frame_label = NULL;
+ char *comment = NULL;
seq_analysis_item_t *gai = NULL;
- gboolean newcall = FALSE;
- gboolean fromEndpoint = FALSE; /* true for calls originated in Endpoints, false for calls from MGC */
- gdouble diff_time;
+ bool newcall = false;
+ bool fromEndpoint = false; /* true for calls originated in Endpoints, false for calls from MGC */
+ double diff_time;
const mgcp_info_t *pi = (const mgcp_info_t *)MGCPinfo;
@@ -2694,12 +2694,12 @@ mgcp_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
if (callsinfo == NULL) {
if ( (strcmp(pi->code, "NTFY") == 0) && is_mgcp_signal("hd", pi->observedEvents) ) { /* off hook transition */
/* this is a new call from the Endpoint */
- fromEndpoint = TRUE;
- newcall = TRUE;
+ fromEndpoint = true;
+ newcall = true;
} else if (strcmp(pi->code, "CRCX") == 0) {
/* this is a new call from the MGC */
- fromEndpoint = FALSE;
- newcall = TRUE;
+ fromEndpoint = false;
+ newcall = true;
}
if (!newcall) return TAP_PACKET_DONT_REDRAW;
}
@@ -2805,9 +2805,9 @@ mgcp_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
}
if (pi->signalReq != NULL)
- frame_label = ws_strdup_printf("%s%sSigReq:%s",pi->code, (pi->hasDigitMap == TRUE)?" DigitMap ":"", pi->signalReq);
+ frame_label = ws_strdup_printf("%s%sSigReq:%s",pi->code, (pi->hasDigitMap == true)?" DigitMap ":"", pi->signalReq);
else
- frame_label = ws_strdup_printf("%s%s",pi->code, (pi->hasDigitMap == TRUE)?" DigitMap ":"");
+ frame_label = ws_strdup_printf("%s%s",pi->code, (pi->hasDigitMap == true)?" DigitMap ":"");
/* use the CallerID info to fill the "From" for the call */
if (!tmp_mgcpinfo->fromEndpoint) mgcp_caller_id(pi->signalReq, &(callsinfo->from_identity));
@@ -2897,7 +2897,7 @@ mgcp_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -2934,7 +2934,7 @@ actrace_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *e
if (pi->type == 1) { /* is CAS protocol */
address pstn_add;
- gchar *comment = NULL;
+ char *comment = NULL;
callsinfo = NULL;
list = g_queue_peek_nth_link(tapinfo->callsinfos, 0);
@@ -3028,7 +3028,7 @@ actrace_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -3051,13 +3051,13 @@ remove_tap_listener_actrace_calls(voip_calls_tapinfo_t *tap_id_base)
static tap_packet_status
-h248_calls_packet_common(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info, guint32 redraw_bit) {
+h248_calls_packet_common(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info, uint32_t redraw_bit) {
const gcp_cmd_t *cmd = (const gcp_cmd_t *)prot_info;
GList *list;
voip_calls_info_t *callsinfo = NULL;
address *mgw;
address *mgc;
- gchar mgw_addr[128];
+ char mgw_addr[128];
if (cmd->ctx->id == NULL_CONTEXT || cmd->ctx->id == ALL_CONTEXTS ) {
return TAP_PACKET_DONT_REDRAW;
@@ -3128,7 +3128,7 @@ h248_calls_packet_common(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan
}
}
- callsinfo->to_identity = g_string_free(s,FALSE);
+ callsinfo->to_identity = g_string_free(s,false);
callsinfo->stop_fd = pinfo->fd;
callsinfo->stop_rel_ts = pinfo->rel_ts;
@@ -3206,7 +3206,7 @@ h248_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
error_string = register_tap_listener("h248", tap_base_to_id(tap_id_base, tap_id_offset_h248_),
@@ -3220,7 +3220,7 @@ h248_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -3245,13 +3245,13 @@ static const voip_protocol sccp_proto_map[] = {
const value_string* sccp_payload_values;
static tap_packet_status
-sccp_calls(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info, guint32 redraw_bit) {
+sccp_calls(voip_calls_tapinfo_t *tapinfo, packet_info *pinfo, epan_dissect_t *edt, const void *prot_info, uint32_t redraw_bit) {
const sccp_msg_info_t* msg = (const sccp_msg_info_t *)prot_info;
sccp_assoc_info_t* assoc = msg->data.co.assoc;
GList *list;
voip_calls_info_t *callsinfo = NULL;
- gchar *label = NULL;
- const gchar *comment = NULL;
+ char *label = NULL;
+ const char *comment = NULL;
/* check whether we already have this assoc in the list */
for(list = g_queue_peek_nth_link(tapinfo->callsinfos, 0) ; list ; list = g_list_next (list) ) {
@@ -3408,7 +3408,7 @@ void sccp_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
error_string = register_tap_listener("sua", tap_base_to_id(tap_id_base, tap_id_offset_sua_),
@@ -3422,7 +3422,7 @@ void sccp_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -3447,8 +3447,8 @@ unistim_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *e
unistim_info_t *tmp_unistim_info = NULL;
GList *list = NULL;
GString *g_tmp = NULL;
- const gchar *frame_label = NULL;
- gchar *comment = NULL;
+ const char *frame_label = NULL;
+ char *comment = NULL;
/* Fetch specific packet infos */
const unistim_info_t *pi = (const unistim_info_t *)unistim_info;
@@ -3899,7 +3899,7 @@ unistim_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *e
/* free data */
g_free(comment);
- g_string_free(g_tmp, TRUE);
+ g_string_free(g_tmp, true);
tapinfo->redraw |= REDRAW_UNISTIM;
@@ -3938,7 +3938,7 @@ unistim_calls_init_tap(voip_calls_tapinfo_t *tap_id_base) {
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -3981,7 +3981,7 @@ skinny_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *ed
address* phone;
const skinny_info_t *si = (const skinny_info_t *)skinny_info;
skinny_calls_info_t *tmp_skinnyinfo;
- gchar *comment;
+ char *comment;
/* if display filtering activated and packet do not match, ignore it */
if (tapinfo->apply_display_filter && (pinfo->fd->passed_dfilter == 0)) {
@@ -4043,7 +4043,7 @@ skinny_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *ed
g_free(callsinfo->to_identity);
callsinfo->to_identity = g_strdup(si->calledParty);
}
- if ((si->callState > 0) && (si->callState < (sizeof(skinny_tap_voip_state)/sizeof(skinny_tap_voip_state[0]))))
+ if ((si->callState > 0) && (si->callState < array_length(skinny_tap_voip_state)))
callsinfo->call_state = skinny_tap_voip_state[si->callState];
callsinfo->stop_fd = pinfo->fd;
@@ -4111,7 +4111,7 @@ skinny_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -4126,7 +4126,7 @@ remove_tap_listener_skinny_calls(voip_calls_tapinfo_t *tap_id_base)
/* ***************************TAP for IAX2 **********************************/
/****************************************************************************/
-static void free_iax2_info(gpointer p) {
+static void free_iax2_info(void *p) {
iax2_info_t *ii = (iax2_info_t *)p;
g_free(ii);
@@ -4258,7 +4258,7 @@ iax2_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s",
error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -4377,7 +4377,7 @@ voip_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
@@ -4448,7 +4448,7 @@ prot_calls_init_tap(voip_calls_tapinfo_t *tap_id_base)
if (error_string != NULL) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"%s", error_string->str);
- g_string_free(error_string, TRUE);
+ g_string_free(error_string, true);
}
}
diff --git a/ui/voip_calls.h b/ui/voip_calls.h
index d2878b7c48..c1fa3248ca 100644
--- a/ui/voip_calls.h
+++ b/ui/voip_calls.h
@@ -85,22 +85,22 @@ typedef enum _sip_call_state {
} sip_call_state;
typedef struct _sip_calls_info {
- gchar *call_identifier;
- guint32 invite_cseq;
+ char *call_identifier;
+ uint32_t invite_cseq;
sip_call_state sip_state;
} sip_calls_info_t;
/** defines specific ISUP data */
typedef struct _isup_calls_info {
- guint16 cic;
- guint32 opc, dpc;
- guint8 ni;
+ uint16_t cic;
+ uint32_t opc, dpc;
+ uint8_t ni;
} isup_calls_info_t;
/* defines specific H245 data */
typedef struct _h245_address {
address h245_address;
- guint16 h245_port;
+ uint16_t h245_port;
} h245_address_t;
/** defines specific H323 data */
@@ -108,53 +108,53 @@ typedef struct _h323_calls_info {
e_guid_t *guid; /* Call ID to identify a H225 */
GList* h245_list; /**< list of H245 Address and ports for tunneling off calls*/
address h225SetupAddr; /**< we use the SETUP H225 IP to determine if packets are forward or reverse */
- gboolean is_h245;
- gboolean is_faststart_Setup; /**< if faststart field is included in Setup*/
- gboolean is_faststart_Proc; /**< if faststart field is included in Proce, Alerting, Progress or Connect*/
- gboolean is_h245Tunneling;
- gint32 q931_crv;
- gint32 q931_crv2;
- guint requestSeqNum;
+ bool is_h245;
+ bool is_faststart_Setup; /**< if faststart field is included in Setup*/
+ bool is_faststart_Proc; /**< if faststart field is included in Proce, Alerting, Progress or Connect*/
+ bool is_h245Tunneling;
+ int32_t q931_crv;
+ int32_t q931_crv2;
+ unsigned requestSeqNum;
} h323_calls_info_t;
/**< defines specific MGCP data */
typedef struct _mgcp_calls_info {
- gchar *endpointId;
- gboolean fromEndpoint; /**< true if the call was originated from the Endpoint, false for calls from MGC */
+ char *endpointId;
+ bool fromEndpoint; /**< true if the call was originated from the Endpoint, false for calls from MGC */
} mgcp_calls_info_t;
/** defines specific ACTRACE ISDN data */
typedef struct _actrace_isdn_calls_info {
- gint32 crv;
+ int32_t crv;
int trunk;
} actrace_isdn_calls_info_t;
/** defines specific ACTRACE CAS data */
typedef struct _actrace_cas_calls_info {
- gint32 bchannel;
+ int32_t bchannel;
int trunk;
} actrace_cas_calls_info_t;
/** defines specific SKINNY data */
typedef struct _skinny_calls_info {
- guint32 callId;
+ uint32_t callId;
} skinny_calls_info_t;
/** defines a voip call */
typedef struct _voip_calls_info {
voip_call_state call_state;
voip_call_active_state call_active_state;
- gchar *call_id;
- gchar *from_identity;
- gchar *to_identity;
- gpointer prot_info;
- void (*free_prot_info)(gpointer);
+ char *call_id;
+ char *from_identity;
+ char *to_identity;
+ void * prot_info;
+ void (*free_prot_info)(void *);
address initial_speaker;
- guint32 npackets;
+ uint32_t npackets;
voip_protocol protocol;
- gchar *protocol_name;
- gchar *call_comment;
- guint16 call_num;
+ char *protocol_name;
+ char *call_comment;
+ uint16_t call_num;
/**> The frame_data struct holds the frame number and timing information needed. */
frame_data *start_fd;
nstime_t start_rel_ts;
@@ -187,32 +187,32 @@ typedef struct _voip_calls_tapinfo {
epan_t *session; /**< epan session */
int nrtpstreams; /**< number of rtp streams */
GList* rtpstream_list; /**< list of rtpstream_info_t */
- guint32 rtp_evt_frame_num;
- guint8 rtp_evt;
- gboolean rtp_evt_end;
- gchar *sdp_summary;
- guint32 sdp_frame_num;
- guint32 mtp3_opc;
- guint32 mtp3_dpc;
- guint8 mtp3_ni;
- guint32 mtp3_frame_num;
+ uint32_t rtp_evt_frame_num;
+ uint8_t rtp_evt;
+ bool rtp_evt_end;
+ char *sdp_summary;
+ uint32_t sdp_frame_num;
+ uint32_t mtp3_opc;
+ uint32_t mtp3_dpc;
+ uint8_t mtp3_ni;
+ uint32_t mtp3_frame_num;
struct _h245_labels *h245_labels; /**< H.245 labels */
- gchar *q931_calling_number;
- gchar *q931_called_number;
- guint8 q931_cause_value;
- gint32 q931_crv;
- guint32 q931_frame_num;
- guint32 h225_frame_num;
- guint16 h225_call_num;
+ char *q931_calling_number;
+ char *q931_called_number;
+ uint8_t q931_cause_value;
+ int32_t q931_crv;
+ uint32_t q931_frame_num;
+ uint32_t h225_frame_num;
+ uint16_t h225_call_num;
int h225_cstype; /* XXX actually an enum */
- gboolean h225_is_faststart;
- guint32 sip_frame_num;
- guint32 actrace_frame_num;
- gint32 actrace_trunk;
- gint32 actrace_direction;
+ bool h225_is_faststart;
+ uint32_t sip_frame_num;
+ uint32_t actrace_frame_num;
+ int32_t actrace_trunk;
+ int32_t actrace_direction;
flow_show_options fs_option;
- guint32 redraw;
- gboolean apply_display_filter;
+ uint32_t redraw;
+ bool apply_display_filter;
} voip_calls_tapinfo_t;
#if 0
diff --git a/ui/win32/file_dlg_win32.cpp b/ui/win32/file_dlg_win32.cpp
index a301912e77..1f613bf6d8 100644
--- a/ui/win32/file_dlg_win32.cpp
+++ b/ui/win32/file_dlg_win32.cpp
@@ -13,86 +13,25 @@
#include "config.h"
#include <tchar.h>
-#include <stdlib.h>
-#include <fcntl.h>
-
-#include <string>
#include <windows.h>
-#include <commdlg.h>
-#include <richedit.h>
-#include <strsafe.h>
-
-#include "file.h"
-
-#include "wsutil/file_util.h"
-#include "wsutil/str_util.h"
-#include "wsutil/unicode-utils.h"
-#include <wsutil/ws_assert.h>
-#include "wsutil/filesystem.h"
-#include "epan/prefs.h"
-
-#include "ui/alert_box.h"
-#include "ui/help_url.h"
-#include "ui/file_dialog.h"
-#include "ui/simple_dialog.h"
-#include "ui/util.h"
-#include "ui/ws_ui_util.h"
-#include "ui/all_files_wildcard.h"
+#include <ws_attributes.h>
+#include <ws_diag_control.h>
#include "file_dlg_win32.h"
-typedef enum {
- merge_append,
- merge_chrono,
- merge_prepend
-} merge_action_e;
-
-#define FILE_OPEN_DEFAULT 2 /* All Capture Files */
-
-#define FILE_MERGE_DEFAULT FILE_OPEN_DEFAULT
-
-#define FILE_TYPES_EXPORT \
- _T("Plain text (*.txt)\0") _T("*.txt\0") \
- _T("PostScript (*.ps)\0") _T("*.ps\0") \
- _T("CSV (Comma Separated Values summary) (*.csv)\0") _T("*.csv\0") \
- _T("PSML (XML packet summary) (*.psml)\0") _T("*.psml\0") \
- _T("PDML (XML packet detail) (*.pdml)\0") _T("*.pdml\0") \
- _T("C Arrays (packet bytes) (*.c)\0") _T("*.c\0") \
- _T("JSON (*.json)\0") _T("*.json\0")
-
-static const TCHAR *FILE_EXT_EXPORT[] =
-{
- _T(""), /* export type starts at 1 */
- _T("txt"),
- _T("ps"),
- _T("csv"),
- _T("psml"),
- _T("pdml"),
- _T("c"),
- _T("json")
-};
-
-static UINT_PTR CALLBACK open_file_hook_proc(HWND of_hwnd, UINT ui_msg, WPARAM w_param, LPARAM l_param);
-static UINT_PTR CALLBACK save_as_file_hook_proc(HWND of_hwnd, UINT ui_msg, WPARAM w_param, LPARAM l_param);
-static UINT_PTR CALLBACK export_specified_packets_file_hook_proc(HWND of_hwnd, UINT ui_msg, WPARAM w_param, LPARAM l_param);
-static UINT_PTR CALLBACK merge_file_hook_proc(HWND mf_hwnd, UINT ui_msg, WPARAM w_param, LPARAM l_param);
-static UINT_PTR CALLBACK export_file_hook_proc(HWND of_hwnd, UINT ui_msg, WPARAM w_param, LPARAM l_param);
-static void range_update_dynamics(HWND sf_hwnd, packet_range_t *range);
-static void range_handle_wm_initdialog(HWND dlg_hwnd, packet_range_t *range);
-static void range_handle_wm_command(HWND dlg_hwnd, HWND ctrl, WPARAM w_param, packet_range_t *range);
-
-static TCHAR *build_file_open_type_list(void);
-static TCHAR *build_file_save_type_list(GArray *savable_file_types);
-
+/* As of Wireshark 4.2, we only support Windows 10 and later, so this
+ * should always be defined. OTOH, Qt >= 6.0 uses DPI Awareness
+ * Context Per Monitor Aware v2 by default, so maybe we should make
+ * it a no-op there. */
#ifdef DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2
typedef DPI_AWARENESS_CONTEXT (WINAPI *GetThreadDpiAwarenessContextProc)(void);
typedef DPI_AWARENESS_CONTEXT (WINAPI *SetThreadDpiAwarenessContextProc)(DPI_AWARENESS_CONTEXT);
static GetThreadDpiAwarenessContextProc GetThreadDpiAwarenessContextP;
static SetThreadDpiAwarenessContextProc SetThreadDpiAwarenessContextP;
-static bool got_proc_addresses = false;
+static bool got_proc_addresses;
DIAG_OFF(cast-function-type)
static bool get_proc_addresses(void) {
@@ -139,1676 +78,4 @@ HANDLE set_thread_per_monitor_v2_awareness(void) { return 0; }
void revert_thread_per_monitor_v2_awareness(HANDLE context _U_) { }
#endif // DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2
-static int g_filetype;
-static bool g_compressed;
-static packet_range_t *g_range;
-static capture_file *g_cf;
-static merge_action_e g_merge_action;
-static print_args_t print_args;
-/* XXX - The reason g_sf_hwnd exists is so that we can call
- * range_update_dynamics() from anywhere; it's currently
- * static, but if we move to using the native Windows
- * print dialog and put range widgets in it as well,
- * it might be moved to a separate file.
- *
- * However, the save file dialog hogs the foreground, so
- * this may not be necessary (and, in fact, the file dialogs
- * should arguably be modal to the window for the file
- * being opened/saved/etc.).
- */
-static HWND g_sf_hwnd = NULL;
-static char *g_dfilter_str = NULL;
-static unsigned int g_format_type = WTAP_TYPE_AUTO;
-
-/*
- * According to https://docs.microsoft.com/en-us/windows/win32/shell/common-file-dialog
- * we should use IFileOpenDialog and IFileSaveDialog on Windows Vista
- * and later.
- */
-
-bool
-win32_open_file (HWND h_wnd, const wchar_t *title, GString *file_name, unsigned int *type, GString *display_filter) {
- OPENFILENAME *ofn;
- TCHAR file_name16[MAX_PATH] = _T("");
- int ofnsize = sizeof(OPENFILENAME);
- BOOL gofn_ok;
-
- if (!file_name || !display_filter)
- return false;
-
- if (file_name->len > 0) {
- StringCchCopy(file_name16, MAX_PATH, utf_8to16(file_name->str));
- }
-
- if (display_filter->len > 0) {
- g_dfilter_str = g_strdup(display_filter->str);
- } else if (g_dfilter_str) {
- g_free(g_dfilter_str);
- g_dfilter_str = NULL;
- }
-
- ofn = new OPENFILENAME();
-
- ofn->lStructSize = ofnsize;
- ofn->hwndOwner = h_wnd;
- ofn->hInstance = (HINSTANCE) GetWindowLongPtr(h_wnd, GWLP_HINSTANCE);
- ofn->lpstrFilter = build_file_open_type_list();
- ofn->lpstrCustomFilter = NULL;
- ofn->nMaxCustFilter = 0;
- ofn->nFilterIndex = FILE_OPEN_DEFAULT;
- ofn->lpstrFile = file_name16;
- ofn->nMaxFile = MAX_PATH;
- ofn->lpstrFileTitle = NULL;
- ofn->nMaxFileTitle = 0;
- if (prefs.gui_fileopen_style == FO_STYLE_SPECIFIED && prefs.gui_fileopen_dir[0] != '\0') {
- ofn->lpstrInitialDir = utf_8to16(prefs.gui_fileopen_dir);
- } else {
- ofn->lpstrInitialDir = utf_8to16(get_open_dialog_initial_dir());
- }
- ofn->lpstrTitle = title;
- ofn->Flags = OFN_ENABLESIZING | OFN_ENABLETEMPLATE | OFN_EXPLORER |
- OFN_NOCHANGEDIR | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
- OFN_ENABLEHOOK | OFN_SHOWHELP;
- ofn->lpstrDefExt = NULL;
- ofn->lpfnHook = open_file_hook_proc;
- ofn->lpTemplateName = _T("WIRESHARK_OPENFILENAME_TEMPLATE");
-
- HANDLE save_da_ctx = set_thread_per_monitor_v2_awareness();
- gofn_ok = GetOpenFileName(ofn);
- revert_thread_per_monitor_v2_awareness(save_da_ctx);
-
- if (gofn_ok) {
- g_string_printf(file_name, "%s", utf_16to8(file_name16));
- g_string_printf(display_filter, "%s", g_dfilter_str ? g_dfilter_str : "");
- *type = g_format_type;
- }
-
- g_free( (void *) ofn->lpstrFilter);
- delete ofn;
- g_free(g_dfilter_str);
- g_dfilter_str = NULL;
- return gofn_ok;
-}
-
-bool
-win32_save_as_file(HWND h_wnd, const wchar_t *title, capture_file *cf, GString *file_name, int *file_type,
- wtap_compression_type *compression_type,
- bool must_support_all_comments)
-{
- uint32_t required_comment_types;
- GArray *savable_file_types;
- OPENFILENAME *ofn;
- TCHAR file_name16[MAX_PATH] = _T("");
- int ofnsize = sizeof(OPENFILENAME);
- BOOL gsfn_ok;
-
- if (!file_name || !file_type || !compression_type)
- return false;
-
- if (file_name->len > 0) {
- StringCchCopy(file_name16, MAX_PATH, utf_8to16(file_name->str));
- }
-
- /* What types of comments do we have to support? */
- if (must_support_all_comments)
- required_comment_types = cf_comment_types(cf); /* all the ones the file has */
- else
- required_comment_types = 0; /* none of them */
-
- savable_file_types = wtap_get_savable_file_types_subtypes_for_file(cf->cd_t,
- cf->linktypes,
- required_comment_types,
- FT_SORT_BY_DESCRIPTION);
- if (savable_file_types == NULL)
- return false; /* shouldn't happen - the "Save As..." item should be disabled if we can't save the file */
- g_compressed = false;
-
- ofn = new OPENFILENAME();
-
- ofn->lStructSize = ofnsize;
- ofn->hwndOwner = h_wnd;
- ofn->hInstance = (HINSTANCE) GetWindowLongPtr(h_wnd, GWLP_HINSTANCE);
- ofn->lpstrFilter = build_file_save_type_list(savable_file_types);
- ofn->lpstrCustomFilter = NULL;
- ofn->nMaxCustFilter = 0;
- ofn->nFilterIndex = 1; /* the first entry is the best match; 1-origin indexing */
- ofn->lpstrFile = file_name16;
- ofn->nMaxFile = MAX_PATH;
- ofn->lpstrFileTitle = NULL;
- ofn->nMaxFileTitle = 0;
- ofn->lpstrInitialDir = utf_8to16(get_open_dialog_initial_dir());
- ofn->lpstrTitle = title;
- ofn->Flags = OFN_ENABLESIZING | OFN_ENABLETEMPLATE | OFN_EXPLORER |
- OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY |
- OFN_PATHMUSTEXIST | OFN_ENABLEHOOK | OFN_SHOWHELP;
- ofn->lpstrDefExt = NULL;
- ofn->lCustData = (LPARAM) cf;
- ofn->lpfnHook = save_as_file_hook_proc;
- ofn->lpTemplateName = _T("WIRESHARK_SAVEASFILENAME_TEMPLATE");
-
- HANDLE save_da_ctx = set_thread_per_monitor_v2_awareness();
- gsfn_ok = GetSaveFileName(ofn);
- revert_thread_per_monitor_v2_awareness(save_da_ctx);
-
- if (gsfn_ok) {
- g_string_printf(file_name, "%s", utf_16to8(file_name16));
- /* What file format was specified? */
- *file_type = g_array_index(savable_file_types, int, ofn->nFilterIndex - 1);
- *compression_type = g_compressed ? WTAP_GZIP_COMPRESSED : WTAP_UNCOMPRESSED;
- } else {
- /* User cancelled or closed the dialog, or an error occurred. */
- if (CommDlgExtendedError() != 0) {
- /* XXX - pop up some error here. FNERR_INVALIDFILENAME
- * might be a user error; if so, they should know about
- * it. For now we force a do-over.
- */
- g_string_truncate(file_name, 0);
- gsfn_ok = true;
- }
- }
-
- g_sf_hwnd = NULL;
- g_array_free(savable_file_types, true);
- g_free( (void *) ofn->lpstrFilter);
- delete ofn;
- return gsfn_ok;
-}
-
-bool
-win32_export_specified_packets_file(HWND h_wnd, const wchar_t *title,
- capture_file *cf,
- GString *file_name,
- int *file_type,
- wtap_compression_type *compression_type,
- packet_range_t *range) {
- GArray *savable_file_types;
- OPENFILENAME *ofn;
- TCHAR file_name16[MAX_PATH] = _T("");
- int ofnsize = sizeof(OPENFILENAME);
- BOOL gsfn_ok;
-
- if (!file_name || !file_type || !compression_type || !range)
- return false;
-
- if (file_name->len > 0) {
- StringCchCopy(file_name16, MAX_PATH, utf_8to16(file_name->str));
- }
-
- savable_file_types = wtap_get_savable_file_types_subtypes_for_file(cf->cd_t,
- cf->linktypes, 0,
- FT_SORT_BY_DESCRIPTION);
- if (savable_file_types == NULL)
- return false; /* shouldn't happen - the "Save As..." item should be disabled if we can't save the file */
-
- g_range = range;
- g_cf = cf;
- g_compressed = false;
-
- ofn = new OPENFILENAME();
-
- ofn->lStructSize = ofnsize;
- ofn->hwndOwner = h_wnd;
- ofn->hInstance = (HINSTANCE) GetWindowLongPtr(h_wnd, GWLP_HINSTANCE);
- ofn->lpstrFilter = build_file_save_type_list(savable_file_types);
- ofn->lpstrCustomFilter = NULL;
- ofn->nMaxCustFilter = 0;
- ofn->nFilterIndex = 1; /* the first entry is the best match; 1-origin indexing */
- ofn->lpstrFile = file_name16;
- ofn->nMaxFile = MAX_PATH;
- ofn->lpstrFileTitle = NULL;
- ofn->nMaxFileTitle = 0;
- ofn->lpstrInitialDir = utf_8to16(get_open_dialog_initial_dir());
- ofn->lpstrTitle = title;
- ofn->Flags = OFN_ENABLESIZING | OFN_ENABLETEMPLATE | OFN_EXPLORER |
- OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY |
- OFN_PATHMUSTEXIST | OFN_ENABLEHOOK | OFN_SHOWHELP;
- ofn->lpstrDefExt = NULL;
- ofn->lCustData = (LPARAM) cf;
- ofn->lpfnHook = export_specified_packets_file_hook_proc;
- ofn->lpTemplateName = _T("WIRESHARK_EXPORT_SPECIFIED_PACKETS_FILENAME_TEMPLATE");
-
- HANDLE save_da_ctx = set_thread_per_monitor_v2_awareness();
- gsfn_ok = GetSaveFileName(ofn);
- revert_thread_per_monitor_v2_awareness(save_da_ctx);
-
- if (gsfn_ok) {
- g_string_printf(file_name, "%s", utf_16to8(file_name16));
- /* What file format was specified? */
- *file_type = g_array_index(savable_file_types, int, ofn->nFilterIndex - 1);
- *compression_type = g_compressed ? WTAP_GZIP_COMPRESSED : WTAP_UNCOMPRESSED;
- } else {
- /* User cancelled or closed the dialog, or an error occurred. */
- if (CommDlgExtendedError() != 0) {
- /* XXX - pop up some error here. FNERR_INVALIDFILENAME
- * might be a user error; if so, they should know about
- * it. For now we force a do-over.
- */
- g_string_truncate(file_name, 0);
- gsfn_ok = true;
- }
- }
-
- g_sf_hwnd = NULL;
- g_range = NULL;
- g_cf = NULL;
- g_array_free(savable_file_types, true);
- g_free( (void *) ofn->lpstrFilter);
- delete ofn;
- return gsfn_ok;
-}
-
-
-bool
-win32_merge_file (HWND h_wnd, const wchar_t *title, GString *file_name, GString *display_filter, int *merge_type) {
- OPENFILENAME *ofn;
- TCHAR file_name16[MAX_PATH] = _T("");
- int ofnsize = sizeof(OPENFILENAME);
- BOOL gofn_ok;
-
- if (!file_name || !display_filter || !merge_type)
- return false;
-
- if (file_name->len > 0) {
- StringCchCopy(file_name16, MAX_PATH, utf_8to16(file_name->str));
- }
-
- if (display_filter->len > 0) {
- g_dfilter_str = g_strdup(display_filter->str);
- } else if (g_dfilter_str) {
- g_free(g_dfilter_str);
- g_dfilter_str = NULL;
- }
-
- ofn = new OPENFILENAME();
-
- ofn->lStructSize = ofnsize;
- ofn->hwndOwner = h_wnd;
- ofn->hInstance = (HINSTANCE) GetWindowLongPtr(h_wnd, GWLP_HINSTANCE);
- ofn->lpstrFilter = build_file_open_type_list();
- ofn->lpstrCustomFilter = NULL;
- ofn->nMaxCustFilter = 0;
- ofn->nFilterIndex = FILE_MERGE_DEFAULT;
- ofn->lpstrFile = file_name16;
- ofn->nMaxFile = MAX_PATH;
- ofn->lpstrFileTitle = NULL;
- ofn->nMaxFileTitle = 0;
- if (prefs.gui_fileopen_style == FO_STYLE_SPECIFIED && prefs.gui_fileopen_dir[0] != '\0') {
- ofn->lpstrInitialDir = utf_8to16(prefs.gui_fileopen_dir);
- } else {
- ofn->lpstrInitialDir = utf_8to16(get_open_dialog_initial_dir());
- }
- ofn->lpstrTitle = title;
- ofn->Flags = OFN_ENABLESIZING | OFN_ENABLETEMPLATE | OFN_EXPLORER |
- OFN_NOCHANGEDIR | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
- OFN_ENABLEHOOK | OFN_SHOWHELP;
- ofn->lpstrDefExt = NULL;
- ofn->lpfnHook = merge_file_hook_proc;
- ofn->lpTemplateName = _T("WIRESHARK_MERGEFILENAME_TEMPLATE");
-
- HANDLE save_da_ctx = set_thread_per_monitor_v2_awareness();
- gofn_ok = GetOpenFileName(ofn);
- revert_thread_per_monitor_v2_awareness(save_da_ctx);
-
- if (gofn_ok) {
- g_string_printf(file_name, "%s", utf_16to8(file_name16));
- g_string_printf(display_filter, "%s", g_dfilter_str ? g_dfilter_str : "");
-
- switch (g_merge_action) {
- case merge_append:
- *merge_type = 1;
- break;
- case merge_chrono:
- *merge_type = 0;
- break;
- case merge_prepend:
- *merge_type = -1;
- break;
- default:
- ws_assert_not_reached();
- }
- }
-
- g_free( (void *) ofn->lpstrFilter);
- delete ofn;
- g_free(g_dfilter_str);
- g_dfilter_str = NULL;
- return gofn_ok;
-}
-
-void
-win32_export_file(HWND h_wnd, const wchar_t *title, capture_file *cf, export_type_e export_type, const char *range_) {
- OPENFILENAME *ofn;
- TCHAR file_name[MAX_PATH] = _T("");
- char *dirname;
- cf_print_status_t status;
- int ofnsize = sizeof(OPENFILENAME);
-
- g_cf = cf;
-
- ofn = new OPENFILENAME();
-
- ofn->lStructSize = ofnsize;
- ofn->hwndOwner = h_wnd;
- ofn->hInstance = (HINSTANCE) GetWindowLongPtr(h_wnd, GWLP_HINSTANCE);
- ofn->lpstrFilter = FILE_TYPES_EXPORT;
- ofn->lpstrCustomFilter = NULL;
- ofn->nMaxCustFilter = 0;
- ofn->nFilterIndex = export_type;
- ofn->lpstrFile = file_name;
- ofn->nMaxFile = MAX_PATH;
- ofn->lpstrFileTitle = NULL;
- ofn->nMaxFileTitle = 0;
- ofn->lpstrInitialDir = utf_8to16(get_open_dialog_initial_dir());
- ofn->lpstrTitle = title;
- ofn->Flags = OFN_ENABLESIZING | OFN_ENABLETEMPLATE | OFN_EXPLORER |
- OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY |
- OFN_PATHMUSTEXIST | OFN_ENABLEHOOK | OFN_SHOWHELP;
- ofn->lpstrDefExt = FILE_EXT_EXPORT[export_type];
- ofn->lCustData = (LPARAM) cf;
- ofn->lpfnHook = export_file_hook_proc;
- ofn->lpTemplateName = _T("WIRESHARK_EXPORTFILENAME_TEMPLATE");
-
- /* Fill in our print (and export) args */
-
- /* init the printing range */
- packet_range_init(&print_args.range, cf);
-
- if (strlen(range_) > 0)
- packet_range_convert_selection_str(&print_args.range, range_);
-
- print_args.format = PR_FMT_TEXT;
- print_args.to_file = true;
- print_args.cmd = NULL;
- print_args.print_summary = true;
- print_args.print_col_headings = true;
- print_args.print_dissections = print_dissections_as_displayed;
- print_args.print_hex = false;
- print_args.hexdump_options = HEXDUMP_SOURCE_MULTI;
- print_args.print_formfeed = false;
- print_args.stream = NULL;
-
- HANDLE save_da_ctx = set_thread_per_monitor_v2_awareness();
- BOOL gsfn_ok = GetSaveFileName(ofn);
- revert_thread_per_monitor_v2_awareness(save_da_ctx);
-
- if (gsfn_ok) {
- print_args.file = utf_16to8(file_name);
- switch (ofn->nFilterIndex) {
- case export_type_text: /* Text */
- print_args.stream = print_stream_text_new(true, print_args.file);
- if (print_args.stream == NULL) {
- open_failure_alert_box(print_args.file, errno, true);
- delete ofn;
- return;
- }
- status = cf_print_packets(cf, &print_args, true);
- break;
- case export_type_ps: /* PostScript (r) */
- print_args.stream = print_stream_ps_new(true, print_args.file);
- if (print_args.stream == NULL) {
- open_failure_alert_box(print_args.file, errno, true);
- delete ofn;
- return;
- }
- status = cf_print_packets(cf, &print_args, true);
- break;
- case export_type_csv: /* CSV */
- status = cf_write_csv_packets(cf, &print_args);
- break;
- case export_type_carrays: /* C Arrays */
- status = cf_write_carrays_packets(cf, &print_args);
- break;
- case export_type_psml: /* PSML */
- status = cf_write_psml_packets(cf, &print_args);
- break;
- case export_type_pdml: /* PDML */
- status = cf_write_pdml_packets(cf, &print_args);
- break;
- case export_type_json: /* JSON */
- status = cf_write_json_packets(cf, &print_args);
- break;
- default:
- delete ofn;
- return;
- }
-
- switch (status) {
- case CF_PRINT_OK:
- break;
- case CF_PRINT_OPEN_ERROR:
- open_failure_alert_box(print_args.file, errno, true);
- break;
- case CF_PRINT_WRITE_ERROR:
- write_failure_alert_box(print_args.file, errno);
- break;
- }
- /* Save the directory name for future file dialogs. */
- dirname = get_dirname(utf_16to8(file_name)); /* Overwrites cf_name */
- set_last_open_dir(dirname);
- }
-
- g_cf = NULL;
- delete ofn;
-}
-
-
-/*
- * Private routines
- */
-
-/** Given a print_args_t struct, update a set of print/export format controls
- * accordingly.
- *
- * @param dlg_hwnd HWND of the dialog in question.
- * @param args Pointer to a print args struct.
- */
-static void
-print_update_dynamic(HWND dlg_hwnd, print_args_t *args) {
- HWND cur_ctrl;
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_SUMMARY_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- args->print_summary = true;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_COL_HEADINGS_CB);
- EnableWindow(cur_ctrl, true);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- args->print_col_headings = true;
- else
- args->print_col_headings = false;
- } else {
- args->print_summary = false;
- args->print_col_headings = false;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_COL_HEADINGS_CB);
- EnableWindow(cur_ctrl, false);
- }
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_DETAIL_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_DETAIL_COMBO);
- switch (SendMessage(cur_ctrl, CB_GETCURSEL, 0, 0)) {
- case 0:
- args->print_dissections = print_dissections_collapsed;
- break;
- case 1:
- args->print_dissections = print_dissections_as_displayed;
- break;
- case 2:
- args->print_dissections = print_dissections_expanded;
- break;
- default:
- ws_assert_not_reached();
- }
- EnableWindow(cur_ctrl, true);
- } else {
- args->print_dissections = print_dissections_none;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_DETAIL_COMBO);
- EnableWindow(cur_ctrl, false);
- }
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_BYTES_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- args->print_hex = true;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DATA_SOURCES_CB);
- EnableWindow(cur_ctrl, true);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- args->hexdump_options = HEXDUMP_SOURCE_MULTI;
- else
- args->hexdump_options = HEXDUMP_SOURCE_PRIMARY;
- } else {
- args->print_hex = false;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DATA_SOURCES_CB);
- EnableWindow(cur_ctrl, false);
- }
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_NEW_PAGE_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- args->print_formfeed = true;
- else
- args->print_formfeed = false;
-}
-
-static void
-format_handle_wm_initdialog(HWND dlg_hwnd, print_args_t *args) {
- HWND cur_ctrl;
-
- /* Set the "Packet summary" and "Include column headings" boxes */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_SUMMARY_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, args->print_summary, 0);
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_COL_HEADINGS_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, args->print_col_headings, 0);
-
- /* Set the "Packet details" box */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_DETAIL_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, args->print_dissections != print_dissections_none, 0);
-
- /* Set the "Packet details" combo */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_DETAIL_COMBO);
- SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) _T("All collapsed"));
- SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) _T("As displayed"));
- SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) _T("All expanded"));
-
- switch (args->print_dissections) {
- case print_dissections_none:
- case print_dissections_collapsed:
- SendMessage(cur_ctrl, CB_SETCURSEL, 0, 0);
- break;
- case print_dissections_as_displayed:
- SendMessage(cur_ctrl, CB_SETCURSEL, 1, 0);
- break;
- case print_dissections_expanded:
- SendMessage(cur_ctrl, CB_SETCURSEL, 2, 0);
- break;
- default:
- ws_assert_not_reached();
- }
-
- /* Set the "Packet bytes" box */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_BYTES_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, args->print_hex, 0);
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DATA_SOURCES_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, !(args->hexdump_options & HEXDUMP_SOURCE_PRIMARY), 0);
-
- /* Set the "Each packet on a new page" box */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_PKT_NEW_PAGE_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, args->print_formfeed, 0);
-
- print_update_dynamic(dlg_hwnd, args);
-}
-
-
-#define PREVIEW_STR_MAX 200
-
-/* If preview_file is NULL, disable the elements. If not, enable and
- * show the preview info. */
-static bool
-preview_set_file_info(HWND of_hwnd, char *preview_file) {
- HWND cur_ctrl;
- int i;
- wtap *wth;
- int err;
- char *err_info;
- ws_file_preview_stats stats;
- ws_file_preview_stats_status status;
- TCHAR string_buff[PREVIEW_STR_MAX];
- TCHAR first_buff[PREVIEW_STR_MAX];
- int64_t filesize;
- char *size_str;
- time_t ti_time;
- struct tm *ti_tm;
- unsigned elapsed_time;
-
- for (i = EWFD_PTX_FORMAT; i <= EWFD_PTX_START_ELAPSED; i++) {
- cur_ctrl = GetDlgItem(of_hwnd, i);
- if (cur_ctrl) {
- EnableWindow(cur_ctrl, false);
- }
- }
-
- for (i = EWFD_PTX_FORMAT; i <= EWFD_PTX_START_ELAPSED; i++) {
- cur_ctrl = GetDlgItem(of_hwnd, i);
- if (cur_ctrl) {
- SetWindowText(cur_ctrl, _T("-"));
- }
- }
-
- if (preview_file == NULL || strlen(preview_file) < 1) {
- return false;
- }
-
- /* Format: directory */
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_FORMAT);
- if (test_for_directory(preview_file) == EISDIR) {
- SetWindowText(cur_ctrl, _T("directory"));
- return false;
- }
-
- wth = wtap_open_offline(preview_file, WTAP_TYPE_AUTO, &err, &err_info, true);
- if (cur_ctrl && wth == NULL) {
- if(err == WTAP_ERR_FILE_UNKNOWN_FORMAT) {
- SetWindowText(cur_ctrl, _T("unknown file format"));
- } else {
- SetWindowText(cur_ctrl, _T("error opening file"));
- }
- return false;
- }
-
- /* Success! */
- for (i = EWFD_PT_FORMAT; i <= EWFD_PTX_START_ELAPSED; i++) {
- cur_ctrl = GetDlgItem(of_hwnd, i);
- if (cur_ctrl) {
- EnableWindow(cur_ctrl, true);
- }
- }
-
- /* Format */
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_FORMAT);
- SetWindowText(cur_ctrl, utf_8to16(wtap_file_type_subtype_description(wtap_file_type_subtype(wth))));
-
- /* Size */
- filesize = wtap_file_size(wth, &err);
- // Windows Explorer uses IEC.
- size_str = format_size(filesize, FORMAT_SIZE_UNIT_BYTES, FORMAT_SIZE_PREFIX_IEC);
-
- status = get_stats_for_preview(wth, &stats, &err, &err_info);
-
- if(status == PREVIEW_READ_ERROR) {
- /* XXX - give error details? */
- g_free(err_info);
- utf_8to16_snprintf(string_buff, PREVIEW_STR_MAX, "%s, error after %u records",
- size_str, stats.records);
- g_free(size_str);
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_SIZE);
- SetWindowText(cur_ctrl, string_buff);
- wtap_close(wth);
- return true;
- }
-
- /* Packet count */
- if(status == PREVIEW_TIMED_OUT) {
- utf_8to16_snprintf(string_buff, PREVIEW_STR_MAX, "%s, timed out at %u data records",
- size_str, stats.data_records);
- } else {
- utf_8to16_snprintf(string_buff, PREVIEW_STR_MAX, "%s, %u data records",
- size_str, stats.data_records);
- }
- g_free(size_str);
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_SIZE);
- SetWindowText(cur_ctrl, string_buff);
-
- /* First packet / elapsed time */
- if(stats.have_times) {
- /*
- * We saw at least one record with a time stamp, so we can give
- * a start time (if we have a mix of records with and without
- * time stamps, and there were records without time stamps
- * before the one with a time stamp, this may be inaccurate).
- */
- ti_time = (long)stats.start_time;
- ti_tm = localtime( &ti_time );
- if(ti_tm) {
- StringCchPrintf(first_buff, PREVIEW_STR_MAX,
- _T("%04d-%02d-%02d %02d:%02d:%02d"),
- ti_tm->tm_year + 1900,
- ti_tm->tm_mon + 1,
- ti_tm->tm_mday,
- ti_tm->tm_hour,
- ti_tm->tm_min,
- ti_tm->tm_sec);
- } else {
- StringCchPrintf(first_buff, PREVIEW_STR_MAX, _T("?"));
- }
- } else {
- StringCchPrintf(first_buff, PREVIEW_STR_MAX, _T("unknown"));
- }
-
- /* Elapsed time */
- if(status == PREVIEW_SUCCEEDED && stats.have_times) {
- /*
- * We didn't time out, so we looked at all packets, and we got
- * at least one packet with a time stamp, so we can calculate
- * an elapsed time from the time stamp of the last packet with
- * with a time stamp (if we have a mix of records with and without
- * time stamps, and there were records without time stamps after
- * the last one with a time stamp, this may be inaccurate).
- */
- elapsed_time = (unsigned int)(stats.stop_time-stats.start_time);
- if (elapsed_time/86400) {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%s / %02u days %02u:%02u:%02u"),
- first_buff, elapsed_time/86400, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
- } else {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%s / %02u:%02u:%02u"),
- first_buff, elapsed_time%86400/3600, elapsed_time%3600/60, elapsed_time%60);
- }
- } else {
- StringCchPrintf(string_buff, PREVIEW_STR_MAX, _T("%s / unknown"),
- first_buff);
- }
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_PTX_START_ELAPSED);
- SetWindowText(cur_ctrl, string_buff);
-
- wtap_close(wth);
-
- return true;
-
-}
-
-static char *
-filter_tb_get(HWND hwnd) {
- TCHAR *strval = NULL;
- int len;
- char *ret;
-
- /* If filter_text is non-NULL, use it. Otherwise, grab the text from
- * the window */
- len = GetWindowTextLength(hwnd);
- if (len > 0) {
- len++;
- strval = g_new(TCHAR, len);
- len = GetWindowText(hwnd, strval, len);
- ret = g_utf16_to_utf8((gunichar2 *) strval, -1, NULL, NULL, NULL);
- g_free(strval);
- return ret;
- } else {
- return NULL;
- }
-}
-
-
-/* XXX - Copied from "filter-util.c" in the wireshark-win32 branch */
-/* XXX - The only reason for the "filter_text" parameter is to be able to feed
- * in the "real" filter string in the case of a CBN_SELCHANGE notification message.
- */
-static void
-filter_tb_syntax_check(HWND hwnd, const TCHAR *filter_text) {
- std::wstring strval;
- dfilter_t *dfp;
-
- /* If filter_text is non-NULL, use it. Otherwise, grab the text from
- * the window */
- if (filter_text) {
- strval = filter_text;
- } else {
- int len = GetWindowTextLength(hwnd);
- if (len > 0) {
- len++;
- strval.resize(len);
- len = GetWindowText(hwnd, &strval[0], len);
- strval.resize(len);
- }
- }
-
- if (strval.empty()) {
- /* Default window background */
- SendMessage(hwnd, EM_SETBKGNDCOLOR, (WPARAM) 1, COLOR_WINDOW);
- return;
- } else if (dfilter_compile(utf_16to8(strval.c_str()), &dfp, NULL)) { /* colorize filter string entry */
- dfilter_free(dfp);
- /* Valid (light green) */
- SendMessage(hwnd, EM_SETBKGNDCOLOR, 0, RGB(0xe4, 0xff, 0xc7)); /* tango_chameleon_1 */
- } else {
- /* Invalid (light red) */
- SendMessage(hwnd, EM_SETBKGNDCOLOR, 0, RGB(0xff, 0xcc, 0xcc)); /* tango_scarlet_red_1 */
- }
-}
-
-static int alpha_sort(gconstpointer a, gconstpointer b)
-{
- return g_ascii_strcasecmp(*(const char **)a, *(const char **)b);
-}
-
-static UINT_PTR CALLBACK
-open_file_hook_proc(HWND of_hwnd, UINT msg, WPARAM w_param, LPARAM l_param) {
- HWND cur_ctrl, parent;
- OFNOTIFY *notify = (OFNOTIFY *) l_param;
- TCHAR sel_name[MAX_PATH];
- int i;
-
- switch(msg) {
- case WM_INITDIALOG:
- {
- /* Retain the filter text, and fill it in. */
- if(g_dfilter_str != NULL) {
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_FILTER_EDIT);
- SetWindowText(cur_ctrl, utf_8to16(g_dfilter_str));
- }
-
- /* Put Auto, as well as pcap and pcapng (which are the first two entries in
- open_routines), at the top of the file type list. */
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_FORMAT_TYPE);
- SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) _T("Automatically detect file type"));
- for (i = 0; i < 2; i += 1) {
- SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) utf_8to16(open_routines[i].name));
- }
- /* Generate a sorted list of the remaining file types.
- The magic number 60 is a rough starting point for how big the
- GPtrArray should start. It'll automatically grow if needed, so
- the exact number isn't critical. (This is good, because we don't have
- an easy way to get the exact number.) */
- GPtrArray *routine_names = g_ptr_array_sized_new(60);
- for ( /* keep using i */ ; open_routines[i].name != NULL; i += 1) {
- g_ptr_array_add(routine_names, (void *)open_routines[i].name);
- }
- g_ptr_array_sort(routine_names, alpha_sort);
- for (unsigned i = 0; i < routine_names->len; i += 1) {
- SendMessage(cur_ctrl, CB_ADDSTRING, 0, (WPARAM) utf_8to16((const char *)g_ptr_array_index(routine_names, i)));
- }
- g_ptr_array_free(routine_names, true);
- SendMessage(cur_ctrl, CB_SETCURSEL, 0, 0);
-
- preview_set_file_info(of_hwnd, NULL);
- }
- break;
- case WM_NOTIFY:
- switch (notify->hdr.code) {
- case CDN_FILEOK:
- /* Fetch the read filter */
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_FILTER_EDIT);
- g_free(g_dfilter_str);
- g_dfilter_str = filter_tb_get(cur_ctrl);
-
- cur_ctrl = GetDlgItem(of_hwnd, EWFD_FORMAT_TYPE);
- g_format_type = (unsigned int) SendMessage(cur_ctrl, CB_GETCURSEL, 0, 0);
-
- /* The list of file formats is sorted. Get the format by name. */
- LRESULT label_len;
- label_len = SendMessage(cur_ctrl, CB_GETLBTEXTLEN, (WPARAM) g_format_type, 0);
- if (label_len != CB_ERR) {
- TCHAR *label = g_new(TCHAR, label_len+1);
- SendMessage(cur_ctrl, CB_GETLBTEXT, (WPARAM) g_format_type, (LPARAM) label);
- g_format_type = open_info_name_to_type(utf_16to8(label));
- g_free(label);
- }
- else {
- /* Problem, fall back on automatic */
- g_format_type = WTAP_TYPE_AUTO;
- }
-
- break;
- case CDN_SELCHANGE:
- /* This _almost_ works correctly. We need to handle directory
- selections, etc. */
- parent = GetParent(of_hwnd);
- CommDlg_OpenSave_GetFilePath(parent, sel_name, MAX_PATH);
- preview_set_file_info(of_hwnd, utf_16to8(sel_name));
- break;
- case CDN_HELP:
- topic_action(HELP_OPEN_WIN32_DIALOG);
- break;
- default:
- break;
- }
- break;
- case WM_COMMAND:
- cur_ctrl = (HWND) l_param;
- switch(w_param) {
- case (EN_UPDATE << 16) | EWFD_FILTER_EDIT:
- filter_tb_syntax_check(cur_ctrl, NULL);
- break;
- /*
- * If we ever figure out a way to integrate the Windows
- * and GTK+ event loops (or make a native filter dialog),
- * we can re-enable the "Filter" button.
- */
- /*
- case EWFD_FILTER_BTN:
- break;
- */
- default:
- break;
- }
- break;
- default:
- break;
- }
- return 0;
-}
-
-/* Generate a list of the file types we can filter for in the open dialog. */
-static void
-append_file_extension_type(GArray *sa, int et)
-{
- GString* pattern_str = g_string_new("");
- GString* description_str = g_string_new("");
- char sep;
- GSList *extensions_list, *extension;
- const TCHAR *str16;
- uint16_t zero = 0;
-
- /* Construct the list of patterns. */
- extensions_list = wtap_get_file_extension_type_extensions(et);
- sep = '\0';
- for (extension = extensions_list; extension != NULL;
- extension = g_slist_next(extension)) {
- if (sep != '\0')
- g_string_append_c(pattern_str, sep);
- g_string_append_printf(pattern_str, "*.%s", (char *)extension->data);
- sep = ';';
- }
- wtap_free_extensions_list(extensions_list);
-
- /* Construct the description. */
- g_string_printf(description_str, "%s (%s)",
- wtap_get_file_extension_type_name(et),
- pattern_str->str);
- str16 = utf_8to16(description_str->str);
- sa = g_array_append_vals(sa, str16, (unsigned) strlen(description_str->str));
- sa = g_array_append_val(sa, zero);
- g_string_free(description_str, true);
-
- str16 = utf_8to16(pattern_str->str);
- sa = g_array_append_vals(sa, str16, (unsigned) strlen(pattern_str->str));
- sa = g_array_append_val(sa, zero);
- g_string_free(pattern_str, true);
-}
-
-static TCHAR *
-build_file_open_type_list(void) {
- const TCHAR *str16;
- int et;
- GArray* sa;
- static const uint16_t zero = 0;
- GString* pattern_str;
- char sep;
- GSList *extensions_list, *extension;
-
- /*
- * Microsoft's UI guidelines say, of the file filters in open and
- * save dialogs:
- *
- * For meta-filters, remove the file extension list to eliminate
- * clutter. Examples: "All files," "All pictures," "All music,"
- * and "All videos."
- *
- * so we omit them (for "All Capture Files", the filter would be
- * *really* long). On both Windows XP and Windows 7, Wordpad doesn't
- * do that, but Paint does.
- */
-
- /*
- * Array of hexadectets used as a sequence of null-terminated
- * UTF-16 strings.
- */
- sa = g_array_new(false /*zero_terminated*/, false /*clear_*/,2 /*element_size*/);
-
- /* Add the "All Files" entry. */
- str16 = utf_8to16("All Files");
- sa = g_array_append_vals(sa, str16, (unsigned) strlen("All Files"));
- sa = g_array_append_val(sa, zero);
- str16 = utf_8to16(ALL_FILES_WILDCARD);
- sa = g_array_append_vals(sa, str16, (unsigned) strlen(ALL_FILES_WILDCARD));
- sa = g_array_append_val(sa, zero);
-
- /*
- * Add an "All Capture Files" entry, with all the capture file
- * extensions we know about.
- */
- str16 = utf_8to16("All Capture Files");
- sa = g_array_append_vals(sa, str16, (unsigned) strlen("All Capture Files"));
- sa = g_array_append_val(sa, zero);
-
- /*
- * Construct its list of patterns.
- */
- pattern_str = g_string_new("");
- extensions_list = wtap_get_all_capture_file_extensions_list();
- sep = '\0';
- for (extension = extensions_list; extension != NULL;
- extension = g_slist_next(extension)) {
- if (sep != '\0')
- g_string_append_c(pattern_str, sep);
- g_string_append_printf(pattern_str, "*.%s", (char *)extension->data);
- sep = ';';
- }
- wtap_free_extensions_list(extensions_list);
- str16 = utf_8to16(pattern_str->str);
- sa = g_array_append_vals(sa, str16, (unsigned) strlen(pattern_str->str));
- sa = g_array_append_val(sa, zero);
-
- /* Include all the file type extensions Wireshark supports. */
- for (et = 0; et < wtap_get_num_file_type_extensions(); et++) {
- append_file_extension_type(sa, et);
- }
-
- /* terminate the array */
- sa = g_array_append_val(sa, zero);
-
- return (TCHAR *) g_array_free(sa, false /*free_segment*/);
-}
-
-/* Generate a list of the file types we can save this file as.
-
- "g_filetype" is the type it has now.
-
- "encap" is the encapsulation for its packets (which could be
- "unknown" or "per-packet").
-
- "filtered" is true if we're to save only the packets that passed
- the display filter (in which case we have to save it using Wiretap)
- and false if we're to save the entire file (in which case, if we're
- saving it in the type it has already, we can just copy it).
-
- The same applies for sel_curr, sel_all, sel_m_only, sel_m_range and sel_man_range
-*/
-static void
-append_file_type(GArray *sa, int ft)
-{
- GString* pattern_str = g_string_new("");
- GString* description_str = g_string_new("");
- char sep;
- GSList *extensions_list, *extension;
- const TCHAR *str16;
- uint16_t zero = 0;
-
- extensions_list = wtap_get_file_extensions_list(ft, true);
- if (extensions_list == NULL) {
- /* This file type doesn't have any particular extension
- conventionally used for it, so we'll just use a
- wildcard that matches all file names - even those with
- no extension, so we don't need to worry about compressed
- file extensions. */
- g_string_printf(pattern_str, ALL_FILES_WILDCARD);
- } else {
- /* Construct the list of patterns. */
- sep = '\0';
- for (extension = extensions_list; extension != NULL;
- extension = g_slist_next(extension)) {
- if (sep != '\0')
- g_string_append_c(pattern_str, sep);
- g_string_append_printf(pattern_str, "*.%s", (char *)extension->data);
- sep = ';';
- }
- wtap_free_extensions_list(extensions_list);
- }
-
- /* Construct the description. */
- g_string_printf(description_str, "%s (%s)", wtap_file_type_subtype_description(ft),
- pattern_str->str);
- str16 = utf_8to16(description_str->str);
- sa = g_array_append_vals(sa, str16, (unsigned) strlen(description_str->str));
- sa = g_array_append_val(sa, zero);
- g_string_free(description_str, true);
-
- str16 = utf_8to16(pattern_str->str);
- sa = g_array_append_vals(sa, str16, (unsigned) strlen(pattern_str->str));
- sa = g_array_append_val(sa, zero);
- g_string_free(pattern_str, true);
-}
-
-static TCHAR *
-build_file_save_type_list(GArray *savable_file_types) {
- unsigned i;
- int ft;
- GArray* sa = g_array_new(false /*zero_terminated*/, false /*clear_*/,2 /*element_size*/);
- uint16_t zero = 0;
-
- /* Get only the file types as which we can save this file. */
- for (i = 0; i < savable_file_types->len; i++) {
- ft = g_array_index(savable_file_types, int, i);
- append_file_type(sa, ft);
- }
-
- /* terminate the array */
- sa = g_array_append_val(sa, zero);
-
- return (TCHAR *) g_array_free(sa, false /*free_segment*/);
-}
-
-static UINT_PTR CALLBACK
-save_as_file_hook_proc(HWND sf_hwnd, UINT msg, WPARAM w_param _U_, LPARAM l_param) {
- HWND cur_ctrl;
- OFNOTIFY *notify = (OFNOTIFY *) l_param;
- /*int new_filetype, file_index;*/
-
- switch(msg) {
- case WM_INITDIALOG: {
- OPENFILENAME *ofnp = (OPENFILENAME *) l_param;
- capture_file *cf = (capture_file *) ofnp->lCustData;
- g_sf_hwnd = sf_hwnd;
-
- /* Default to saving in the file's current format. */
- g_filetype = cf->cd_t;
-
- /* Fill in the file format list */
- /*build_file_format_list(sf_hwnd);*/
- /* Fill in the compression checkbox */
- cur_ctrl = GetDlgItem(sf_hwnd, EWFD_GZIP_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, g_compressed, 0);
-
- break;
- }
- case WM_COMMAND:
- break;
- case WM_NOTIFY:
- switch (notify->hdr.code) {
- case CDN_HELP:
- topic_action(HELP_SAVE_WIN32_DIALOG);
- break;
- case CDN_FILEOK: {
- HWND parent;
- char *file_name8;
- OPENFILENAME *ofnp = (OPENFILENAME *) notify->lpOFN;
- capture_file *cf = (capture_file *) ofnp->lCustData;
-
- /* Fetch our compression value */
- cur_ctrl = GetDlgItem(sf_hwnd, EWFD_GZIP_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- g_compressed = true;
- else
- g_compressed = false;
-
- /* Check if we're trying to overwrite the currently open file */
- parent = GetParent(sf_hwnd);
- file_name8 = utf_16to8(notify->lpOFN->lpstrFile);
- if (files_identical(cf->filename, file_name8)) {
- /* XXX: Is MessageBox the best way to pop up an error ? How to make text bold ? */
- char *str = ws_strdup_printf(
- "Capture File \"%s\" identical to loaded file.\n\n"
- "Please choose a different filename.",
- file_name8);
- MessageBox( parent, utf_8to16(str), _T("Error"), MB_ICONERROR | MB_APPLMODAL | MB_OK);
- g_free(str);
- SetWindowLongPtr(sf_hwnd, DWLP_MSGRESULT, 1L); /* Don't allow ! */
- return 1;
- }
- }
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- return 0;
-}
-
-#define RANGE_TEXT_MAX 128
-static UINT_PTR CALLBACK
-export_specified_packets_file_hook_proc(HWND sf_hwnd, UINT msg, WPARAM w_param, LPARAM l_param) {
- HWND cur_ctrl;
- OFNOTIFY *notify = (OFNOTIFY *) l_param;
- /*int new_filetype, file_index;*/
-
- switch(msg) {
- case WM_INITDIALOG: {
- g_sf_hwnd = sf_hwnd;
-
- /* Default to saving all packets, in the file's current format. */
- g_filetype = g_cf->cd_t;
-
- /* Fill in the file format list */
- /*build_file_format_list(sf_hwnd);*/
-
- range_handle_wm_initdialog(sf_hwnd, g_range);
-
- /* Fill in the compression checkbox */
- cur_ctrl = GetDlgItem(sf_hwnd, EWFD_GZIP_CB);
- SendMessage(cur_ctrl, BM_SETCHECK, g_compressed, 0);
-
- break;
- }
- case WM_COMMAND:
- cur_ctrl = (HWND) l_param;
- range_handle_wm_command(sf_hwnd, cur_ctrl, w_param, g_range);
- break;
- case WM_NOTIFY:
- switch (notify->hdr.code) {
- case CDN_HELP:
- topic_action(HELP_SAVE_WIN32_DIALOG);
- break;
- case CDN_FILEOK: {
- HWND parent;
- char *file_name8;
- OPENFILENAME *ofnp = (OPENFILENAME *) notify->lpOFN;
- capture_file *cf = (capture_file *) ofnp->lCustData;
-
- /* Fetch our compression value */
- cur_ctrl = GetDlgItem(sf_hwnd, EWFD_GZIP_CB);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- g_compressed = true;
- else
- g_compressed = false;
-
- /* Check if we're trying to overwrite the currently open file */
- parent = GetParent(sf_hwnd);
- file_name8 = utf_16to8(notify->lpOFN->lpstrFile);
- if (files_identical(cf->filename, file_name8)) {
- /* XXX: Is MessageBox the best way to pop up an error ? How to make text bold ? */
- char *str = ws_strdup_printf(
- "Capture File \"%s\" identical to loaded file.\n\n"
- "Please choose a different filename.",
- file_name8);
- MessageBox( parent, utf_8to16(str), _T("Error"), MB_ICONERROR | MB_APPLMODAL | MB_OK);
- g_free(str);
- SetWindowLongPtr(sf_hwnd, DWLP_MSGRESULT, 1L); /* Don't allow ! */
- return 1;
- }
- }
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- return 0;
-}
-
-#define STATIC_LABEL_CHARS 100
-/* For each range static control, fill in its value and enable/disable it. */
-static void
-range_update_dynamics(HWND dlg_hwnd, packet_range_t *range) {
- HWND cur_ctrl;
- bool filtered_active = false;
- TCHAR static_val[STATIC_LABEL_CHARS];
- uint32_t ignored_cnt = 0, displayed_ignored_cnt = 0;
- uint32_t displayed_cnt;
- bool range_valid = true;
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DISPLAYED_BTN);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- filtered_active = true;
-
- /* RANGE_SELECT_ALL */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_ALL_PKTS_CAP);
- EnableWindow(cur_ctrl, !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->count - range->ignored_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->count);
- }
- SetWindowText(cur_ctrl, static_val);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_ALL_PKTS_DISP);
- EnableWindow(cur_ctrl, filtered_active);
- if (range->include_dependents)
- displayed_cnt = range->displayed_plus_dependents_cnt;
- else
- displayed_cnt = range->displayed_cnt;
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), displayed_cnt - range->displayed_ignored_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), displayed_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
-
- /* RANGE_SELECT_CURR */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_SEL_PKT_CAP);
- EnableWindow(cur_ctrl, range->selection_range_cnt > 0 && !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->selection_range_cnt - range->ignored_selection_range_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->selection_range_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_SEL_PKT_DISP);
- EnableWindow(cur_ctrl, range->displayed_selection_range_cnt > 0 && filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->displayed_selection_range_cnt - range->displayed_ignored_selection_range_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%d"), range->displayed_selection_range_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
-
- /* RANGE_SELECT_MARKED */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_MARKED_BTN);
- EnableWindow(cur_ctrl, g_cf->marked_count);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_MARKED_CAP);
- EnableWindow(cur_ctrl, g_cf->marked_count && !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->marked_count - range->ignored_marked_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), g_cf->marked_count);
- }
- SetWindowText(cur_ctrl, static_val);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_MARKED_DISP);
- EnableWindow(cur_ctrl, g_cf->marked_count && filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_marked_cnt - range->displayed_ignored_marked_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_marked_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
-
- /* RANGE_SELECT_MARKED_RANGE */
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_FIRST_LAST_BTN);
- EnableWindow(cur_ctrl, range->mark_range_cnt);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_FIRST_LAST_CAP);
- EnableWindow(cur_ctrl, range->mark_range_cnt && !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->mark_range_cnt - range->ignored_mark_range_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->mark_range_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_FIRST_LAST_DISP);
- EnableWindow(cur_ctrl, range->displayed_mark_range_cnt && filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_mark_range_cnt - range->displayed_ignored_mark_range_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_mark_range_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
-
- /* RANGE_SELECT_USER */
- switch (packet_range_check(range)) {
- case CVT_NO_ERROR:
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_EDIT);
- SendMessage(cur_ctrl, EM_SETBKGNDCOLOR, (WPARAM) 1, COLOR_WINDOW);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_CAP);
- EnableWindow(cur_ctrl, !filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->user_range_cnt - range->ignored_user_range_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->user_range_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_DISP);
- EnableWindow(cur_ctrl, filtered_active);
- if (range->remove_ignored) {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_user_range_cnt - range->displayed_ignored_user_range_cnt);
- } else {
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), range->displayed_user_range_cnt);
- }
- SetWindowText(cur_ctrl, static_val);
- break;
- case CVT_SYNTAX_ERROR:
- if (range->process == range_process_user_range) range_valid = false;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_EDIT);
- SendMessage(cur_ctrl, EM_SETBKGNDCOLOR, 0, RGB(0xff, 0xcc, 0xcc));
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_CAP);
- SetWindowText(cur_ctrl, _T("Bad range"));
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_DISP);
- SetWindowText(cur_ctrl, _T("-"));
- break;
- case CVT_NUMBER_TOO_BIG:
- if (range->process == range_process_user_range) range_valid = false;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_EDIT);
- SendMessage(cur_ctrl, EM_SETBKGNDCOLOR, 0, RGB(0xff, 0xcc, 0xcc));
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_CAP);
- SetWindowText(cur_ctrl, _T("Too large"));
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_DISP);
- SetWindowText(cur_ctrl, _T("-"));
- break;
-
- default:
- ws_assert_not_reached();
- }
-
- /* RANGE_REMOVE_IGNORED_PACKETS */
- switch(range->process) {
- case(range_process_all):
- ignored_cnt = range->ignored_cnt;
- displayed_ignored_cnt = range->displayed_ignored_cnt;
- break;
- case(range_process_selected):
- ignored_cnt = range->ignored_selection_range_cnt;
- displayed_ignored_cnt = range->displayed_ignored_selection_range_cnt;
- break;
- case(range_process_marked):
- ignored_cnt = range->ignored_marked_cnt;
- displayed_ignored_cnt = range->displayed_ignored_marked_cnt;
- break;
- case(range_process_marked_range):
- ignored_cnt = range->ignored_mark_range_cnt;
- displayed_ignored_cnt = range->displayed_ignored_mark_range_cnt;
- break;
- case(range_process_user_range):
- ignored_cnt = range->ignored_user_range_cnt;
- displayed_ignored_cnt = range->displayed_ignored_user_range_cnt;
- break;
- default:
- ws_assert_not_reached();
- }
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_REMOVE_IGN_CB);
- EnableWindow(cur_ctrl, ignored_cnt);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_IGNORED_CAP);
- EnableWindow(cur_ctrl, ignored_cnt && !filtered_active);
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), ignored_cnt);
- SetWindowText(cur_ctrl, static_val);
-
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_IGNORED_DISP);
- EnableWindow(cur_ctrl, displayed_ignored_cnt && filtered_active);
- StringCchPrintf(static_val, STATIC_LABEL_CHARS, _T("%u"), displayed_ignored_cnt);
- SetWindowText(cur_ctrl, static_val);
-
- cur_ctrl = GetDlgItem(GetParent(dlg_hwnd), IDOK);
- EnableWindow(cur_ctrl, range_valid);
-}
-
-static void
-range_handle_wm_initdialog(HWND dlg_hwnd, packet_range_t *range) {
- HWND cur_ctrl;
-
- /* Set the appropriate captured/displayed radio */
- if (range->process_filtered)
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_DISPLAYED_BTN);
- else
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_CAPTURED_BTN);
- SendMessage(cur_ctrl, BM_SETCHECK, true, 0);
-
- /* Retain the filter text, and fill it in. */
- if(range->user_range != NULL) {
- char* tmp_str;
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_EDIT);
- tmp_str = range_convert_range(NULL, range->user_range);
- SetWindowText(cur_ctrl, utf_8to16(tmp_str));
- wmem_free(NULL, tmp_str);
- }
-
- /* dynamic values in the range frame */
- range_update_dynamics(dlg_hwnd, range);
-
- /* Set the appropriate range radio */
- switch(range->process) {
- case(range_process_all):
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_ALL_PKTS_BTN);
- break;
- case(range_process_selected):
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_SEL_PKT_BTN);
- break;
- case(range_process_marked):
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_MARKED_BTN);
- break;
- case(range_process_marked_range):
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_FIRST_LAST_BTN);
- break;
- case(range_process_user_range):
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_BTN);
- break;
- default:
- ws_assert_not_reached();
- }
- SendMessage(cur_ctrl, BM_SETCHECK, true, 0);
-}
-
-static void
-range_handle_wm_command(HWND dlg_hwnd, HWND ctrl, WPARAM w_param, packet_range_t *range) {
- HWND cur_ctrl;
- TCHAR range_text[RANGE_TEXT_MAX];
-
- if (!range) return;
-
- switch(w_param) {
- case (BN_CLICKED << 16) | EWFD_CAPTURED_BTN:
- case (BN_CLICKED << 16) | EWFD_DISPLAYED_BTN:
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_CAPTURED_BTN);
- if (SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED)
- range->process_filtered = false;
- else
- range->process_filtered = true;
- range_update_dynamics(dlg_hwnd, range);
- break;
- case (BN_CLICKED << 16) | EWFD_ALL_PKTS_BTN:
- if (SendMessage(ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- range->process = range_process_all;
- range_update_dynamics(dlg_hwnd, range);
- }
- break;
- case (BN_CLICKED << 16) | EWFD_SEL_PKT_BTN:
- if (SendMessage(ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- range->process = range_process_selected;
- range_update_dynamics(dlg_hwnd, range);
- }
- break;
- case (BN_CLICKED << 16) | EWFD_MARKED_BTN:
- if (SendMessage(ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- range->process = range_process_marked;
- range_update_dynamics(dlg_hwnd, range);
- }
- break;
- case (BN_CLICKED << 16) | EWFD_FIRST_LAST_BTN:
- if (SendMessage(ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- range->process = range_process_marked_range;
- range_update_dynamics(dlg_hwnd, range);
- }
- break;
- case (BN_CLICKED << 16) | EWFD_RANGE_BTN:
- if (SendMessage(ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- range->process = range_process_user_range;
- range_update_dynamics(dlg_hwnd, range);
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_EDIT);
- SetFocus(cur_ctrl);
- }
- break;
- case (EN_SETFOCUS << 16) | EWFD_RANGE_EDIT:
- cur_ctrl = GetDlgItem(dlg_hwnd, EWFD_RANGE_BTN);
- SendMessage(cur_ctrl, BM_CLICK, 0, 0);
- break;
- case (EN_UPDATE << 16) | EWFD_RANGE_EDIT:
- SendMessage(ctrl, WM_GETTEXT, (WPARAM) RANGE_TEXT_MAX, (LPARAM) range_text);
- packet_range_convert_str(range, utf_16to8(range_text));
- range_update_dynamics(dlg_hwnd, range);
- break;
- case (BN_CLICKED << 16) | EWFD_REMOVE_IGN_CB:
- if (SendMessage(ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- range->remove_ignored = true;
- } else {
- range->remove_ignored = false;
- }
- range_update_dynamics(dlg_hwnd, range);
- break;
- }
-}
-
-static UINT_PTR CALLBACK
-merge_file_hook_proc(HWND mf_hwnd, UINT msg, WPARAM w_param, LPARAM l_param) {
- HWND cur_ctrl, parent;
- OFNOTIFY *notify = (OFNOTIFY *) l_param;
- TCHAR sel_name[MAX_PATH];
-
- switch(msg) {
- case WM_INITDIALOG:
- /* Retain the filter text, and fill it in. */
- if(g_dfilter_str != NULL) {
- cur_ctrl = GetDlgItem(mf_hwnd, EWFD_FILTER_EDIT);
- SetWindowText(cur_ctrl, utf_8to16(g_dfilter_str));
- }
-
- /* Chrono by default */
- cur_ctrl = GetDlgItem(mf_hwnd, EWFD_MERGE_CHRONO_BTN);
- SendMessage(cur_ctrl, BM_SETCHECK, true, 0);
- g_merge_action = merge_append;
-
- preview_set_file_info(mf_hwnd, NULL);
- break;
- case WM_NOTIFY:
- switch (notify->hdr.code) {
- case CDN_FILEOK:
- /* Fetch the read filter */
- cur_ctrl = GetDlgItem(mf_hwnd, EWFD_FILTER_EDIT);
- g_free(g_dfilter_str);
- g_dfilter_str = filter_tb_get(cur_ctrl);
-
- cur_ctrl = GetDlgItem(mf_hwnd, EWFD_MERGE_CHRONO_BTN);
- if(SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- g_merge_action = merge_chrono;
- } else {
- cur_ctrl = GetDlgItem(mf_hwnd, EWFD_MERGE_PREPEND_BTN);
- if(SendMessage(cur_ctrl, BM_GETCHECK, 0, 0) == BST_CHECKED) {
- g_merge_action = merge_prepend;
- }
- }
-
- break;
- case CDN_SELCHANGE:
- /* This _almost_ works correctly. We need to handle directory
- selections, etc. */
- parent = GetParent(mf_hwnd);
- CommDlg_OpenSave_GetFilePath(parent, sel_name, MAX_PATH);
- preview_set_file_info(mf_hwnd, utf_16to8(sel_name));
- break;
- case CDN_HELP:
- topic_action(HELP_MERGE_WIN32_DIALOG);
- break;
- default:
- break;
- }
- break;
- case WM_COMMAND:
- cur_ctrl = (HWND) l_param;
- switch(w_param) {
- case (EN_UPDATE << 16) | EWFD_FILTER_EDIT:
- filter_tb_syntax_check(cur_ctrl, NULL);
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- return 0;
-}
-
-
-static UINT_PTR CALLBACK
-export_file_hook_proc(HWND ef_hwnd, UINT msg, WPARAM w_param, LPARAM l_param) {
- HWND cur_ctrl;
- OFNOTIFY *notify = (OFNOTIFY *) l_param;
- bool pkt_fmt_enable;
- int i, filter_index;
-
- switch(msg) {
- case WM_INITDIALOG: {
- /* default to displayed packets */
- print_args.range.process_filtered = true;
- range_handle_wm_initdialog(ef_hwnd, &print_args.range);
- format_handle_wm_initdialog(ef_hwnd, &print_args);
-
- break;
- }
- case WM_COMMAND:
- cur_ctrl = (HWND) l_param;
- switch (w_param) {
- case (CBN_SELCHANGE << 16) | EWFD_PKT_DETAIL_COMBO:
- default:
- range_handle_wm_command(ef_hwnd, cur_ctrl, w_param, &print_args.range);
- print_update_dynamic(ef_hwnd, &print_args);
- break;
- }
- break;
- case WM_NOTIFY:
- switch (notify->hdr.code) {
- case CDN_FILEOK:
- break;
- case CDN_TYPECHANGE:
- filter_index = notify->lpOFN->nFilterIndex;
-
- if (filter_index == 2) /* PostScript */
- print_args.format = PR_FMT_TEXT;
- else
- print_args.format = PR_FMT_PS;
- if (filter_index == 3 || filter_index == 4 || filter_index == 5 || filter_index == 6)
- pkt_fmt_enable = false;
- else
- pkt_fmt_enable = true;
- for (i = EWFD_PKT_FORMAT_GB; i <= EWFD_PKT_NEW_PAGE_CB; i++) {
- cur_ctrl = GetDlgItem(ef_hwnd, i);
- EnableWindow(cur_ctrl, pkt_fmt_enable);
- }
- break;
- case CDN_HELP:
- topic_action(HELP_EXPORT_FILE_WIN32_DIALOG);
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- return 0;
-}
-
#endif // _WIN32
diff --git a/ui/win32/file_dlg_win32.h b/ui/win32/file_dlg_win32.h
index 0edee0bbd5..eef7fe389e 100644
--- a/ui/win32/file_dlg_win32.h
+++ b/ui/win32/file_dlg_win32.h
@@ -12,11 +12,6 @@
#ifndef __FILE_DLG_WIN32_H__
#define __FILE_DLG_WIN32_H__
-#ifndef RC_INVOKED // RC warns about gatomic's long identifiers.
-#include "ui/file_dialog.h"
-#include "ui/packet_range.h"
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -28,8 +23,10 @@ extern "C" {
* via Qt:AA_EnableHighDpiScaling. We do this in main.cpp. In order for
* native dialogs to be rendered correctly we need to set per-monitor
* *v2* awareness prior to creating the dialog, which we can do here.
- * Qt doesn't render correctly when per-monitor v2 awareness is enabled, so
- * we need to revert our thread context when we're done.
+ * Qt < 5.14(?) or so doesn't render correctly when per-monitor v2 awareness
+ * is enabled, so we need to revert our thread context when we're done.
+ * Qt >= 6.0 is per-monitor DPI awareness v2 by default, so this doesn't
+ * have any effect.
*
* @return The current thread DPI awareness context, which should
* be passed to revert_thread_per_monitor_v2_awareness.
@@ -42,137 +39,6 @@ HANDLE set_thread_per_monitor_v2_awareness(void);
*/
void revert_thread_per_monitor_v2_awareness(HANDLE context);
-/** Open the "Open" dialog box.
- *
- * @param h_wnd HWND of the parent window.
- * @param file_name File name
- * @param type File type
- * @param display_filter a display filter
- */
-bool win32_open_file (HWND h_wnd, const wchar_t *title, GString *file_name, unsigned int *type, GString *display_filter);
-
-/** Open the "Save As" dialog box.
- *
- * @param h_wnd HWND of the parent window.
- * @param cf capture_file Structure for the capture to be saved
- * @param file_name File name. May be empty.
- * @param file_type Wiretap file type.
- * @param compression_type Compression type to use, or uncompressed.
- * @param must_support_comments true if the file format list should
- * include only file formats that support comments
- *
- * @return true if packets were discarded when saving, false otherwise
- */
-bool win32_save_as_file(HWND h_wnd, const wchar_t *title, capture_file *cf,
- GString *file_name, int *file_type,
- wtap_compression_type *compression_type,
- bool must_support_comments);
-
-/** Open the "Export Specified Packets" dialog box.
- *
- * @param h_wnd HWND of the parent window.
- * @param cf capture_file Structure for the capture to be saved
- * @param file_name File name. May be empty.
- * @param file_type Wiretap file type.
- * @param compression_type Compression type to use, or uncompressed.
- * @param range Range of packets to export.
- *
- * @return true if packets were discarded when saving, false otherwise
- */
-bool win32_export_specified_packets_file(HWND h_wnd,
- const wchar_t *title,
- capture_file *cf,
- GString *file_name,
- int *file_type,
- wtap_compression_type *compression_type,
- packet_range_t *range);
-
-
-/** Open the "Merge" dialog box.
- *
- * @param h_wnd HWND of the parent window.
- * @param file_name File name
- * @param display_filter a display filter
- * @param merge_type type of merge
- */
-bool win32_merge_file (HWND h_wnd, const wchar_t *title, GString *file_name, GString *display_filter, int *merge_type);
-
-/** Open the "Export" dialog box.
- *
- * @param h_wnd HWND of the parent window.
- * @param cf capture_file Structure for the capture to be saved
- * @param export_type The export type.
- * @param range a possible range
- */
-void win32_export_file (HWND h_wnd, const wchar_t *title, capture_file *cf, export_type_e export_type, const char *range);
-
-/* Open dialog defines */
-/* #define EWFD_FILTER_BTN 1000 */
-#define EWFD_FILTER_LBL 1000
-#define EWFD_FILTER_EDIT 1001
-
-#define EWFD_MAC_NR_CB 1002
-#define EWFD_NET_NR_CB 1003
-#define EWFD_TRANS_NR_CB 1004
-#define EWFD_EXTERNAL_NR_CB 1005
-
-/* Note: The preview title (PT) and text (PTX) MUST have sequential IDs;
- they're used in a for loop. EWFD_PT_FILENAME MUST be first, and
- EWFD_PTX_ELAPSED MUST be last. (so why don't we just use an enum? */
-#define EWFD_PT_FORMAT 1006
-#define EWFD_PT_SIZE 1007
-#define EWFD_PT_START_ELAPSED 1008
-
-#define EWFD_PTX_FORMAT 1009
-#define EWFD_PTX_SIZE 1010
-#define EWFD_PTX_START_ELAPSED 1011
-
-#define EWFD_FORMAT_TYPE 1020
-
-/* Save as and export dialog defines */
-#define EWFD_GZIP_CB 1040
-
-/* Export dialog defines */
-#define EWFD_CAPTURED_BTN 1000
-#define EWFD_DISPLAYED_BTN 1001
-#define EWFD_ALL_PKTS_BTN 1002
-#define EWFD_SEL_PKT_BTN 1003
-#define EWFD_MARKED_BTN 1004
-#define EWFD_FIRST_LAST_BTN 1005
-#define EWFD_RANGE_BTN 1006
-#define EWFD_RANGE_EDIT 1007
-#define EWFD_REMOVE_IGN_CB 1008
-
-#define EWFD_ALL_PKTS_CAP 1009
-#define EWFD_SEL_PKT_CAP 1010
-#define EWFD_MARKED_CAP 1011
-#define EWFD_FIRST_LAST_CAP 1012
-#define EWFD_RANGE_CAP 1013
-#define EWFD_IGNORED_CAP 1014
-
-#define EWFD_ALL_PKTS_DISP 1015
-#define EWFD_SEL_PKT_DISP 1016
-#define EWFD_MARKED_DISP 1017
-#define EWFD_FIRST_LAST_DISP 1018
-#define EWFD_RANGE_DISP 1019
-#define EWFD_IGNORED_DISP 1020
-
-/* Merge dialog defines. Overlays Open dialog defines above. */
-#define EWFD_MERGE_PREPEND_BTN 1050
-#define EWFD_MERGE_CHRONO_BTN 1051
-#define EWFD_MERGE_APPEND_BTN 1052
-
-/* Export dialog defines. Overlays Save dialog defines above. */
-/* These MUST be contiguous */
-#define EWFD_PKT_FORMAT_GB 1050
-#define EWFD_PKT_SUMMARY_CB 1051
-#define EWFD_COL_HEADINGS_CB 1052
-#define EWFD_PKT_DETAIL_CB 1053
-#define EWFD_PKT_DETAIL_COMBO 1054
-#define EWFD_PKT_BYTES_CB 1055
-#define EWFD_DATA_SOURCES_CB 1056
-#define EWFD_PKT_NEW_PAGE_CB 1057
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ui/ws_ui_util.h b/ui/ws_ui_util.h
index d1fa8e0904..f16ecdb3bd 100644
--- a/ui/ws_ui_util.h
+++ b/ui/ws_ui_util.h
@@ -28,15 +28,15 @@ extern "C" {
/** geometry values for use in window_get_geometry() and window_set_geometry() */
typedef struct window_geometry_s {
- gchar *key; /**< current key in hashtable (internally used only) */
- gboolean set_pos; /**< set the x and y position values */
- gint x; /**< the windows x position */
- gint y; /**< the windows y position */
- gboolean set_size; /**< set the width and height values */
- gint width; /**< the windows width */
- gint height; /**< the windows height */
- gboolean set_maximized; /**< set the maximized state */
- gboolean maximized; /**< the windows maximized state */
+ char *key; /**< current key in hashtable (internally used only) */
+ bool set_pos; /**< set the x and y position values */
+ int x; /**< the windows x position */
+ int y; /**< the windows y position */
+ bool set_size; /**< set the width and height values */
+ int width; /**< the windows width */
+ int height; /**< the windows height */
+ bool set_maximized; /**< set the maximized state */
+ bool maximized; /**< the windows maximized state */
char* qt_geom; /**< hex bytestring from Qt's saveGeometry() */
} window_geometry_t;
@@ -52,7 +52,7 @@ WS_NORETURN extern void exit_application(int status);
files
Function names make it clear where they are coming from
*/
-void color_filter_add_cb(color_filter_t *colorf, gpointer user_data);
+void color_filter_add_cb(color_filter_t *colorf, void *user_data);
#ifdef __cplusplus
}
diff --git a/wiretap/.clang-tidy b/wiretap/.clang-tidy
new file mode 100644
index 0000000000..6be356e4de
--- /dev/null
+++ b/wiretap/.clang-tidy
@@ -0,0 +1,3 @@
+InheritParentConfig: true
+
+WarningsAsErrors: misc-no-recursion
diff --git a/wiretap/5views.c b/wiretap/5views.c
index 862a738cfa..43849c5789 100644
--- a/wiretap/5views.c
+++ b/wiretap/5views.c
@@ -306,7 +306,7 @@ static const int wtap_encap[] = {
-1, /* WTAP_ENCAP_UNKNOWN -> unsupported */
CST_5VW_CAPTURE_ETH_FILEID, /* WTAP_ENCAP_ETHERNET -> Ethernet */
};
-#define NUM_WTAP_ENCAPS (sizeof wtap_encap / sizeof wtap_encap[0])
+#define NUM_WTAP_ENCAPS array_length(wtap_encap)
/* Returns 0 if we could write the specified encapsulation type,
an error indication otherwise. */
diff --git a/wiretap/aethra.c b/wiretap/aethra.c
index b4281000df..d55a3d3efc 100644
--- a/wiretap/aethra.c
+++ b/wiretap/aethra.c
@@ -171,7 +171,7 @@ wtap_open_return_val aethra_open(wtap *wth, int *err, char **err_info)
}
#if 0
-static unsigned packet = 0;
+static unsigned packet;
#endif
/* Read the next packet */
diff --git a/wiretap/blf.c b/wiretap/blf.c
index 91553dc22c..4d1b8d5534 100644
--- a/wiretap/blf.c
+++ b/wiretap/blf.c
@@ -5,7 +5,7 @@
*
* File format support for the Binary Log File (BLF) file format from
* Vector Informatik decoder
- * Copyright (c) 2021-2022 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
+ * Copyright (c) 2021-2024 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
@@ -377,6 +377,17 @@ fix_endianness_blf_ethernetframeheader_ex(blf_ethernetframeheader_ex_t *header)
}
static void
+fix_endianness_blf_ethernet_rxerror(blf_ethernet_rxerror_t* header) {
+ header->struct_length = GUINT16_FROM_LE(header->struct_length);
+ header->channel = GUINT16_FROM_LE(header->channel);
+ header->direction = GUINT16_FROM_LE(header->direction);
+ header->hw_channel = GUINT16_FROM_LE(header->hw_channel);
+ header->frame_checksum = GUINT32_FROM_LE(header->frame_checksum);
+ header->frame_length = GUINT16_FROM_LE(header->frame_length);
+ header->error = GUINT32_FROM_LE(header->error);
+}
+
+static void
fix_endianness_blf_wlanframeheader(blf_wlanframeheader_t* header) {
header->channel = GUINT16_FROM_LE(header->channel);
header->flags = GUINT16_FROM_LE(header->flags);
@@ -661,11 +672,6 @@ blf_pull_logcontainer_into_memory(blf_params_t *params, blf_log_container_t *con
return true;
}
- if (container->real_length == 0) {
- ws_info("blf_pull_logcontainer_into_memory: found container with 0 length");
- return true;
- }
-
/* pull compressed data into buffer */
if (container->infile_start_pos < 0) {
/*
@@ -711,6 +717,26 @@ blf_pull_logcontainer_into_memory(blf_params_t *params, blf_log_container_t *con
return false;
}
+ if (container->real_length == 0) {
+ ws_info("blf_pull_logcontainer_into_memory: found container with 0 length");
+ /* Skip empty container */
+ if (!wtap_read_bytes_or_eof(params->fh, NULL, (unsigned int)data_length, err, err_info)) {
+ if (*err == WTAP_ERR_SHORT_READ) {
+ /*
+ * XXX - our caller will turn this into an EOF.
+ * How *should* it be treated?
+ * For now, we turn it into Yet Another Internal Error,
+ * pending having better documentation of the file
+ * format.
+ */
+ *err = WTAP_ERR_INTERNAL;
+ *err_info = ws_strdup("blf_pull_logcontainer_into_memory: short read on 0-length container");
+ }
+ return false;
+ }
+ return true;
+ }
+
if (container->compression_method == BLF_COMPRESSION_NONE) {
unsigned char* buf = g_try_malloc0((size_t)container->real_length);
if (buf == NULL) {
@@ -935,7 +961,7 @@ blf_find_next_logcontainer(blf_params_t* params, int* err, char** err_info) {
ws_debug("container object magic is not LOBJ");
}
else {
- ws_debug("container object magic is not LOBJ (pos: 0x%" PRIx64 ")", file_tell(params->fh));
+ ws_debug("container object magic is not LOBJ (pos: 0x%" PRIx64 ")", file_tell(params->fh) - 1);
}
if (i > 0) {
int j = i;
@@ -1364,12 +1390,13 @@ blf_read_ethernetframe(blf_params_t *params, int *err, char **err_info, int64_t
}
static bool
-blf_read_ethernetframe_ext(blf_params_t *params, int *err, char **err_info, int64_t block_start, int64_t data_start, int64_t object_length, uint32_t flags, uint64_t object_timestamp) {
+blf_read_ethernetframe_ext(blf_params_t *params, int *err, char **err_info, int64_t block_start,int64_t data_start,
+ int64_t object_length, uint32_t flags, uint64_t object_timestamp, gboolean error) {
blf_ethernetframeheader_ex_t ethheader;
if (object_length < (data_start - block_start) + (int) sizeof(blf_ethernetframeheader_ex_t)) {
*err = WTAP_ERR_BAD_FILE;
- *err_info = ws_strdup_printf("blf: ETHERNET_FRAME_EX: not enough bytes for ethernet frame header in object");
+ *err_info = ws_strdup_printf("blf: %s: not enough bytes for ethernet frame header in object", error ? "ETHERNET_ERROR_EX" : "ETHERNET_FRAME_EX");
ws_debug("not enough bytes for ethernet frame header in object");
return false;
}
@@ -1384,7 +1411,7 @@ blf_read_ethernetframe_ext(blf_params_t *params, int *err, char **err_info, int6
if (object_length - (data_start - block_start) - sizeof(blf_ethernetframeheader_ex_t) < ethheader.frame_length) {
*err = WTAP_ERR_BAD_FILE;
- *err_info = ws_strdup_printf("blf: ETHERNET_FRAME_EX: frame too short");
+ *err_info = ws_strdup_printf("blf: %s: frame too short", error ? "ETHERNET_ERROR_EX" : "ETHERNET_FRAME_EX");
ws_debug("frame too short");
return false;
}
@@ -1394,8 +1421,57 @@ blf_read_ethernetframe_ext(blf_params_t *params, int *err, char **err_info, int6
return false;
}
- blf_init_rec(params, flags, object_timestamp, WTAP_ENCAP_ETHERNET, ethheader.channel, ethheader.hw_channel, ethheader.frame_length, ethheader.frame_length);
- wtap_block_add_uint32_option(params->rec->block, OPT_PKT_QUEUE, ethheader.hw_channel);
+ if (ethheader.flags & BLF_ETHERNET_EX_HARDWARECHANNEL) {
+ blf_init_rec(params, flags, object_timestamp, WTAP_ENCAP_ETHERNET, ethheader.channel, ethheader.hw_channel, ethheader.frame_length, ethheader.frame_length);
+ wtap_block_add_uint32_option(params->rec->block, OPT_PKT_QUEUE, ethheader.hw_channel);
+ }
+ else {
+ blf_init_rec(params, flags, object_timestamp, WTAP_ENCAP_ETHERNET, ethheader.channel, UINT16_MAX, ethheader.frame_length, ethheader.frame_length);
+ }
+
+ blf_add_direction_option(params, ethheader.direction);
+
+ return true;
+}
+
+static bool
+blf_read_ethernet_rxerror(blf_params_t* params, int* err, char** err_info, int64_t block_start, int64_t data_start, int64_t object_length, uint32_t flags, uint64_t object_timestamp) {
+ blf_ethernet_rxerror_t ethheader;
+
+ if (object_length < (data_start - block_start) + (int)sizeof(blf_ethernet_rxerror_t)) {
+ *err = WTAP_ERR_BAD_FILE;
+ *err_info = ws_strdup_printf("blf: ETHERNET_RXERROR: not enough bytes for ethernet frame header in object");
+ ws_debug("not enough bytes for ethernet rx error header in object");
+ return false;
+ }
+
+ if (!blf_read_bytes(params, data_start, &ethheader, sizeof(blf_ethernet_rxerror_t), err, err_info)) {
+ ws_debug("not enough bytes for ethernet rx error header in file");
+ return false;
+ }
+ fix_endianness_blf_ethernet_rxerror(&ethheader);
+
+ ws_buffer_assure_space(params->buf, ethheader.frame_length);
+
+ if (object_length - (data_start - block_start) < ethheader.frame_length) {
+ *err = WTAP_ERR_BAD_FILE;
+ *err_info = ws_strdup_printf("blf: ETHERNET_RXERROR: frame too short");
+ ws_debug("frame too short");
+ return false;
+ }
+
+ if (!blf_read_bytes(params, data_start + sizeof(blf_ethernet_rxerror_t), ws_buffer_start_ptr(params->buf), ethheader.frame_length, err, err_info)) {
+ ws_debug("copying ethernet rx error failed");
+ return false;
+ }
+
+ if (ethheader.hw_channel != 0) { /* In this object type, a value of 0 is considered invalid. */
+ blf_init_rec(params, flags, object_timestamp, WTAP_ENCAP_ETHERNET, ethheader.channel, ethheader.hw_channel, ethheader.frame_length, ethheader.frame_length);
+ wtap_block_add_uint32_option(params->rec->block, OPT_PKT_QUEUE, ethheader.hw_channel);
+ }
+ else {
+ blf_init_rec(params, flags, object_timestamp, WTAP_ENCAP_ETHERNET, ethheader.channel, UINT16_MAX, ethheader.frame_length, ethheader.frame_length);
+ }
blf_add_direction_option(params, ethheader.direction);
return true;
@@ -2108,20 +2184,20 @@ blf_read_flexrayrcvmessageex(blf_params_t *params, int *err, char **err_info, in
/* Frame Header */
tmpbuf[2] = ((0x0700 & frheader.frameId) >> 8);
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_PAYLOAD_PREAM) == BLF_FLEXRAYRCVMSG_DATA_FLAG_PAYLOAD_PREAM) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_PAYLOAD_PREAM) == BLF_FLEXRAYRCVMSG_FRAME_FLAG_PAYLOAD_PREAM) {
tmpbuf[2] |= BLF_DLT_FLEXRAY_PPI;
}
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_SYNC) == BLF_FLEXRAYRCVMSG_DATA_FLAG_SYNC) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_SYNC) == BLF_FLEXRAYRCVMSG_FRAME_FLAG_SYNC) {
tmpbuf[2] |= BLF_DLT_FLEXRAY_SFI;
}
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_NULL_FRAME) != BLF_FLEXRAYRCVMSG_DATA_FLAG_NULL_FRAME) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_NULL_FRAME) != BLF_FLEXRAYRCVMSG_FRAME_FLAG_NULL_FRAME) {
/* NFI needs to be inversed !? */
tmpbuf[2] |= BLF_DLT_FLEXRAY_NFI;
}
- if ((frheader.data & BLF_FLEXRAYRCVMSG_DATA_FLAG_STARTUP) == BLF_FLEXRAYRCVMSG_DATA_FLAG_STARTUP) {
+ if ((frheader.frameFlags & BLF_FLEXRAYRCVMSG_FRAME_FLAG_STARTUP) == BLF_FLEXRAYRCVMSG_FRAME_FLAG_STARTUP) {
tmpbuf[2] |= BLF_DLT_FLEXRAY_STFI;
}
@@ -3130,6 +3206,15 @@ blf_read_block(blf_params_t *params, int64_t start_pos, int *err, char **err_inf
}
params->blf_data->start_of_last_obj = start_pos;
+ if (!params->random) {
+ /* Make sure that we start after this object next time,
+ * but only if it's a linear read. We can have random reads
+ * during the linear read, so we have to make sure we don't
+ * lose track of our position.
+ */
+ params->blf_data->current_real_seek_pos = start_pos + MAX(MAX(16, header.object_length), header.header_length);
+ }
+
switch (header.header_type) {
case BLF_HEADER_TYPE_DEFAULT:
if (!blf_read_log_object_header(params, err, err_info, start_pos + sizeof(blf_blockheader_t), start_pos + header.header_length, &logheader)) {
@@ -3165,9 +3250,6 @@ blf_read_block(blf_params_t *params, int64_t start_pos, int *err, char **err_inf
return false;
}
- /* already making sure that we start after this object next time. */
- params->blf_data->current_real_seek_pos = start_pos + MAX(MAX(16, header.object_length), header.header_length);
-
if (metadata_cont && header.object_type != BLF_OBJTYPE_APP_TEXT) {
/* If we're in the middle of a sequence of AppText metadata objects,
* but we get an AppText object from another source,
@@ -3190,7 +3272,15 @@ blf_read_block(blf_params_t *params, int64_t start_pos, int *err, char **err_inf
break;
case BLF_OBJTYPE_ETHERNET_FRAME_EX:
- return blf_read_ethernetframe_ext(params, err, err_info, start_pos, start_pos + header.header_length, header.object_length, flags, object_timestamp);
+ return blf_read_ethernetframe_ext(params, err, err_info, start_pos, start_pos + header.header_length, header.object_length, flags, object_timestamp, false);
+ break;
+
+ case BLF_OBJTYPE_ETHERNET_RX_ERROR:
+ return blf_read_ethernet_rxerror(params, err, err_info, start_pos, start_pos + header.header_length, header.object_length, flags, object_timestamp);
+ break;
+
+ case BLF_OBJTYPE_ETHERNET_ERROR_EX:
+ return blf_read_ethernetframe_ext(params, err, err_info, start_pos, start_pos + header.header_length, header.object_length, flags, object_timestamp, true);
break;
case BLF_OBJTYPE_WLAN_FRAME:
diff --git a/wiretap/blf.h b/wiretap/blf.h
index be9c2327d6..a75f2911cb 100644
--- a/wiretap/blf.h
+++ b/wiretap/blf.h
@@ -3,7 +3,7 @@
* Binary Log File (BLF) file format from Vector Informatik decoder
* for the Wiretap library.
*
- * Copyright (c) 2021-2022 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
+ * Copyright (c) 2021-2024 by Dr. Lars Voelker <lars.voelker@technica-engineering.de>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
@@ -161,6 +161,21 @@ typedef struct blf_ethernetframeheader_ex {
uint32_t error;
} blf_ethernetframeheader_ex_t;
+#define BLF_ETHERNET_EX_RES 0x0001
+#define BLF_ETHERNET_EX_HARDWARECHANNEL 0x0002
+#define BLF_ETHERNET_EX_FRAMEDURATION 0x0004
+#define BLF_ETHERNET_EX_FRAMEHANDLE 0x0008
+
+typedef struct blf_ethernet_rxerror {
+ uint16_t struct_length;
+ uint16_t channel;
+ uint16_t direction;
+ uint16_t hw_channel;
+ uint32_t frame_checksum;
+ uint16_t frame_length; /* Number of valid raw Ethernet data bytes */
+ uint32_t error;
+} blf_ethernet_rxerror_t;
+
typedef struct blf_wlanframeheader {
uint16_t channel;
uint16_t flags;
@@ -394,14 +409,14 @@ typedef struct blf_flexraymessage {
#define BLF_FLEXRAYRCVMSG_CHANNELMASK_B 0x02
#define BLF_FLEXRAYRCVMSG_CHANNELMASK_AB 0x03
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_NULL_FRAME 0x00000001
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_VALID_DATA 0x00000002
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_SYNC 0x00000004
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_STARTUP 0x00000008
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_PAYLOAD_PREAM 0x00000010
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_RES_20 0x00000020
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_ERROR 0x00000040
-#define BLF_FLEXRAYRCVMSG_DATA_FLAG_RES_80 0x00000080
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_NULL_FRAME 0x00000001
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_VALID_DATA 0x00000002
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_SYNC 0x00000004
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_STARTUP 0x00000008
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_PAYLOAD_PREAM 0x00000010
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_RES_20 0x00000020
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_ERROR 0x00000040
+#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_RES_80 0x00000080
typedef struct blf_flexrayrcvmessage {
uint16_t channel;
@@ -622,6 +637,17 @@ typedef struct blf_ethernet_status {
*/
} blf_ethernet_status_t;
+#define BLF_ETH_STATUS_LINKSTATUS 0x0001
+#define BLF_ETH_STATUS_BITRATE 0x0002
+#define BLF_ETH_STATUS_ETHERNETPHY 0x0004
+#define BLF_ETH_STATUS_DUPLEX 0x0008
+#define BLF_ETH_STATUS_MDITYPE 0x0010
+#define BLF_ETH_STATUS_CONNECTOR 0x0020
+#define BLF_ETH_STATUS_CLOCKMODE 0x0040
+#define BLF_ETH_STATUS_BRPAIR 0x0080
+#define BLF_ETH_STATUS_HARDWARECHANNEL 0x0100
+#define BLF_ETH_STATUS_LINKUPDURATION 0x0200
+
typedef struct blf_ethernet_phystate {
uint16_t channel;
uint16_t flags;
@@ -631,6 +657,10 @@ typedef struct blf_ethernet_phystate {
uint8_t res1;
} blf_ethernet_phystate_t;
+#define BLF_PHY_STATE_PHYSTATE 0x0001
+#define BLF_PHY_STATE_PHYEVENT 0x0002
+#define BLF_PHY_STATE_HARDWARECHANNEL 0x0004
+
/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/ObjectHeaderBase.h */
@@ -762,21 +792,6 @@ typedef struct blf_ethernet_phystate {
#define BLF_OBJTYPE_DISTRIBUTED_OBJECT_CHANGE 132
#define BLF_OBJTYPE_ETHERNET_PHY_STATE 133
-#define BLF_ETH_STATUS_LINKSTATUS 0x0001
-#define BLF_ETH_STATUS_BITRATE 0x0002
-#define BLF_ETH_STATUS_ETHERNETPHY 0x0004
-#define BLF_ETH_STATUS_DUPLEX 0x0008
-#define BLF_ETH_STATUS_MDITYPE 0x0010
-#define BLF_ETH_STATUS_CONNECTOR 0x0020
-#define BLF_ETH_STATUS_CLOCKMODE 0x0040
-#define BLF_ETH_STATUS_BRPAIR 0x0080
-#define BLF_ETH_STATUS_HARDWARECHANNEL 0x0100
-#define BLF_ETH_STATUS_LINKUPDURATION 0x0200
-
-#define BLF_PHY_STATE_PHYSTATE 0x0001
-#define BLF_PHY_STATE_PHYEVENT 0x0002
-#define BLF_PHY_STATE_HARDWARECHANNEL 0x0004
-
#endif
/*
diff --git a/wiretap/busmaster.c b/wiretap/busmaster.c
index 1c2241a469..94d4ed563e 100644
--- a/wiretap/busmaster.c
+++ b/wiretap/busmaster.c
@@ -40,7 +40,7 @@ void register_busmaster(void);
/*
* See
*
- * http://rbei-etas.github.io/busmaster/
+ * https://rbei-etas.github.io/busmaster/
*
* for the BUSMASTER software.
*/
diff --git a/wiretap/busmaster_parser.lemon b/wiretap/busmaster_parser.lemon
index 8470441e40..8c3e4c2cee 100644
--- a/wiretap/busmaster_parser.lemon
+++ b/wiretap/busmaster_parser.lemon
@@ -16,6 +16,7 @@
#include <string.h>
#include <wireshark.h>
#include <wiretap/file_wrappers.h>
+#include <wsutil/array.h>
#include "busmaster_priv.h"
extern void *BusmasterParserAlloc(void *(*mallocProc)(size_t));
@@ -62,7 +63,7 @@ DIAG_ON_LEMON()
(void)yyminor;
#ifdef BUSMASTER_DEBUG
- const int n = sizeof(yyTokenName) / sizeof(yyTokenName[0]);
+ const int n = array_length(yyTokenName);
busmaster_debug_printf("%s: got token: %s\n", G_STRFUNC, yyTokenName[yymajor]);
for (int i = 0; i < n; ++i) {
int a = yy_find_shift_action((YYCODETYPE)i, yypParser->yytos->stateno);
diff --git a/wiretap/candump_parser.lemon b/wiretap/candump_parser.lemon
index d963373ea3..039da94e81 100644
--- a/wiretap/candump_parser.lemon
+++ b/wiretap/candump_parser.lemon
@@ -17,6 +17,7 @@
#include <assert.h>
#include <string.h>
#include <wiretap/file_wrappers.h>
+#include <wsutil/array.h>
#include "candump_priv.h"
extern void *CandumpParserAlloc(void *(*mallocProc)(size_t));
@@ -62,7 +63,7 @@ DIAG_ON_LEMON()
(void)yyminor;
#ifdef CANDUMP_DEBUG
- const int n = sizeof(yyTokenName) / sizeof(yyTokenName[0]);
+ const int n = array_length(yyTokenName);
candump_debug_printf("%s: got token: %s\n", G_STRFUNC, yyTokenName[yymajor]);
for (int i = 0; i < n; ++i) {
int a = yy_find_shift_action((YYCODETYPE)i, yypParser->yytos->stateno);
diff --git a/wiretap/cllog.c b/wiretap/cllog.c
index 42f46c1a1d..3281bf6429 100644
--- a/wiretap/cllog.c
+++ b/wiretap/cllog.c
@@ -118,7 +118,7 @@ struct cLLog_private
/***********************************************************************************************************************
* Private definitions
**********************************************************************************************************************/
-#define HEADER_LINE_PARSE_MAPPING_LENGTH ( sizeof( headerLineParseMapping ) / sizeof( headerLineParseMapping[ 0 ] ) )
+#define HEADER_LINE_PARSE_MAPPING_LENGTH array_length(headerLineParseMapping)
#define MAX_LOG_LINE_LENGTH 200
#define TIME_STAMP_STRING_MAX_LENGTH ( sizeof( "YYYY/MM/DDThh:mm:ss.kkk" ) )
#define TIME_STAMP_STRING_STRIPPED_MAX_LENGTH ( sizeof( "YYYYMMDDhhmmsskkk" ) )
diff --git a/wiretap/dbs-etherwatch.c b/wiretap/dbs-etherwatch.c
index ab17114c61..d0f366797f 100644
--- a/wiretap/dbs-etherwatch.c
+++ b/wiretap/dbs-etherwatch.c
@@ -56,13 +56,13 @@ Protocol 08-00 00 00-00-00-00-00, 50 byte buffer at 10-OCT-2001 10:20:45.17
static const char dbs_etherwatch_hdr_magic[] =
{ 'E', 'T', 'H', 'E', 'R', 'W', 'A', 'T', 'C', 'H', ' '};
#define DBS_ETHERWATCH_HDR_MAGIC_SIZE \
- (sizeof dbs_etherwatch_hdr_magic / sizeof dbs_etherwatch_hdr_magic[0])
+ array_length(dbs_etherwatch_hdr_magic)
/* Magic text for start of packet */
static const char dbs_etherwatch_rec_magic[] =
{'F', 'r', 'o', 'm', ' '};
#define DBS_ETHERWATCH_REC_MAGIC_SIZE \
- (sizeof dbs_etherwatch_rec_magic / sizeof dbs_etherwatch_rec_magic[0])
+ array_length(dbs_etherwatch_rec_magic)
/*
* Default packet size - maximum normal Ethernet packet size, without an
diff --git a/wiretap/ems.c b/wiretap/ems.c
index 3aac7fa625..cf3380b31c 100644
--- a/wiretap/ems.c
+++ b/wiretap/ems.c
@@ -116,7 +116,7 @@ static bool parse_ems_line(FILE_T fh, ems_msg_t* ems_msg) {
char line[MAX_EMS_LINE_LEN];
int i;
- if (!file_gets(line, sizeof(line) / sizeof(line[0]), fh)) {
+ if (!file_gets(line, array_length(line), fh)) {
return false;
}
diff --git a/wiretap/erf.c b/wiretap/erf.c
index 5d610a083c..2e91927b57 100644
--- a/wiretap/erf.c
+++ b/wiretap/erf.c
@@ -116,7 +116,7 @@ static const struct {
{ 99, WTAP_ENCAP_ERF }, /*this type added so WTAP_ENCAP_ERF will work and then be treated at ERF->ERF*/
};
-#define NUM_ERF_ENCAPS (sizeof erf_to_wtap_map / sizeof erf_to_wtap_map[0])
+#define NUM_ERF_ENCAPS array_length(erf_to_wtap_map)
#define ERF_META_TAG_HEADERLEN 4
#define ERF_META_TAG_TOTAL_ALIGNED_LENGTH(taglength) ((((uint32_t)taglength + 0x3U) & ~0x3U) + ERF_META_TAG_HEADERLEN)
diff --git a/wiretap/file_access.c b/wiretap/file_access.c
index 690bb629af..ad4a05f8a6 100644
--- a/wiretap/file_access.c
+++ b/wiretap/file_access.c
@@ -179,11 +179,11 @@ static const struct file_extension_info file_type_extensions_base[] = {
{ "EMS file", false, "ems" },
};
-#define N_FILE_TYPE_EXTENSIONS (sizeof file_type_extensions_base / sizeof file_type_extensions_base[0])
+#define N_FILE_TYPE_EXTENSIONS array_length(file_type_extensions_base)
-static const struct file_extension_info* file_type_extensions = NULL;
+static const struct file_extension_info* file_type_extensions;
-static GArray* file_type_extensions_arr = NULL;
+static GArray* file_type_extensions_arr;
/* initialize the extensions array if it has not been initialized yet */
static void
@@ -432,15 +432,15 @@ static const struct open_info open_info_base[] = {
* for anything else, because the size of the actual array will change if
* Lua scripts register a new file reader.
*/
-#define N_OPEN_INFO_ROUTINES ((sizeof open_info_base / sizeof open_info_base[0]))
+#define N_OPEN_INFO_ROUTINES array_length(open_info_base)
-static GArray *open_info_arr = NULL;
+static GArray *open_info_arr;
/* this always points to the top of the created array */
-struct open_info *open_routines = NULL;
+struct open_info *open_routines;
/* this points to the first OPEN_INFO_HEURISTIC type in the array */
-static unsigned heuristic_open_routine_idx = 0;
+static unsigned heuristic_open_routine_idx;
static void
set_heuristic_routine(void)
@@ -2690,7 +2690,7 @@ wtap_dump_close(wtap_dumper *wdh, bool *needs_reload,
*needs_reload = wdh->needs_reload;
g_free(wdh->priv);
wtap_block_array_free(wdh->interface_data);
- wtap_block_array_free(wdh->dsbs_initial);
+ wtap_block_array_unref(wdh->dsbs_initial);
g_free(wdh);
return ret;
}
@@ -2939,6 +2939,7 @@ cleanup_open_routines(void)
static GArray *backwards_compatibility_lua_names;
void
+// NOLINTNEXTLINE(misc-no-recursion)
wtap_register_backwards_compatibility_lua_name(const char *name, int ft)
{
struct backwards_compatibiliity_lua_name entry;
diff --git a/wiretap/iptrace.c b/wiretap/iptrace.c
index 80d5a40c2d..9efc1633f4 100644
--- a/wiretap/iptrace.c
+++ b/wiretap/iptrace.c
@@ -800,7 +800,7 @@ wtap_encap_ift(unsigned int ift)
/* 0x24 */ WTAP_ENCAP_UNKNOWN, /* IFT_ARCNETPLUS */
/* 0x25 */ WTAP_ENCAP_ATM_PDUS, /* IFT_ATM */
};
- #define NUM_IFT_ENCAPS (sizeof ift_encap / sizeof ift_encap[0])
+ #define NUM_IFT_ENCAPS array_length(ift_encap)
if (ift < NUM_IFT_ENCAPS) {
return ift_encap[ift];
diff --git a/wiretap/k12.c b/wiretap/k12.c
index 128ef3c250..ba5567840f 100644
--- a/wiretap/k12.c
+++ b/wiretap/k12.c
@@ -46,10 +46,10 @@ void register_k12(void);
#include <stdarg.h>
#include <wsutil/file_util.h>
-FILE* dbg_out = NULL;
-char* env_file = NULL;
+FILE* dbg_out;
+char* env_file;
-static unsigned int debug_level = 0;
+static unsigned int debug_level;
void k12_fprintf(const char* fmt, ...) {
va_list ap;
diff --git a/wiretap/log3gpp.c b/wiretap/log3gpp.c
index af906a9b13..3fad6390ba 100644
--- a/wiretap/log3gpp.c
+++ b/wiretap/log3gpp.c
@@ -47,7 +47,7 @@ typedef struct {
int first_packet_offset;
char firstline[MAX_FIRST_LINE_LENGTH];
char secondline[MAX_TIMESTAMP_LINE_LENGTH];
-int secondline_length = 0;
+int secondline_length;
/***********************************************************/
/* Transient data used for parsing */
diff --git a/wiretap/merge.c b/wiretap/merge.c
index 6bd33aa901..802d422d61 100644
--- a/wiretap/merge.c
+++ b/wiretap/merge.c
@@ -1216,7 +1216,9 @@ tempfile_free(void *data) {
g_free(filename);
}
+#define MAX_MERGE_FILES 10000 // Arbitrary
static merge_result
+// NOLINTNEXTLINE(misc-no-recursion)
merge_files_common(const char* out_filename, /* filename in normal output mode,
optional tempdir in tempfile mode (NULL for OS default) */
char **out_filenamep, const char *pfx, /* tempfile mode */
@@ -1240,6 +1242,7 @@ merge_files_common(const char* out_filename, /* filename in normal output mode,
int dup_fd;
ws_assert(in_file_count > 0);
+ ws_assert(in_file_count < MAX_MERGE_FILES);
ws_assert(in_filenames != NULL);
ws_assert(err != NULL);
ws_assert(err_info != NULL);
@@ -1399,6 +1402,7 @@ merge_files_common(const char* out_filename, /* filename in normal output mode,
if (temp_files != NULL) {
if (status == MERGE_OK) {
+ // We recurse here, but we're limited by MAX_MERGE_FILES
status = merge_files_common(out_filename, out_filenamep, pfx,
file_type, (const char**)temp_files->pdata,
temp_files->len, do_append, mode, snaplen, app_name,
diff --git a/wiretap/mime_file.c b/wiretap/mime_file.c
index 746e609983..51c447cc4b 100644
--- a/wiretap/mime_file.c
+++ b/wiretap/mime_file.c
@@ -97,7 +97,7 @@ static const mime_files_t magic_files[] = {
{ rtpdump_magic, sizeof(rtpdump_magic) },
};
-#define N_MAGIC_TYPES (sizeof(magic_files) / sizeof(magic_files[0]))
+#define N_MAGIC_TYPES array_length(magic_files)
static int mime_file_type_subtype = -1;
diff --git a/wiretap/netmon.c b/wiretap/netmon.c
index 8c6494aa26..4498c74574 100644
--- a/wiretap/netmon.c
+++ b/wiretap/netmon.c
@@ -202,7 +202,7 @@ static const int netmon_encap[] = {
WTAP_ENCAP_UNKNOWN, /* NDIS Wireless WAN */
WTAP_ENCAP_UNKNOWN /* NDIS IrDA */
};
-#define NUM_NETMON_ENCAPS (sizeof netmon_encap / sizeof netmon_encap[0])
+#define NUM_NETMON_ENCAPS array_length(netmon_encap)
/*
* Special link-layer types.
@@ -1580,7 +1580,7 @@ static const int wtap_encap[] = {
-1, /* WTAP_ENCAP_LAPB -> unsupported*/
4, /* WTAP_ENCAP_ATM_PDUS -> NDIS WAN (*NOT* ATM!) */
};
-#define NUM_WTAP_ENCAPS (sizeof wtap_encap / sizeof wtap_encap[0])
+#define NUM_WTAP_ENCAPS array_length(wtap_encap)
/* Returns 0 if we could write the specified encapsulation type,
an error indication otherwise. */
diff --git a/wiretap/nettrace_3gpp_32_423.c b/wiretap/nettrace_3gpp_32_423.c
index d70716a7db..9d2d92db2f 100644
--- a/wiretap/nettrace_3gpp_32_423.c
+++ b/wiretap/nettrace_3gpp_32_423.c
@@ -73,7 +73,7 @@ static const unsigned char c_nas_5gs[] = "nas-5gs";
#define RINGBUFFER_CHUNK_SIZE 1024
#define MAX_FUNCTION_LEN 64
-#define MAX_NAME_LEN 64
+#define MAX_NAME_LEN 128
#define MAX_PROTO_LEN 16
#define MAX_DTBL_LEN 32
diff --git a/wiretap/netxray.c b/wiretap/netxray.c
index 4cda51c6e0..936c2de0e8 100644
--- a/wiretap/netxray.c
+++ b/wiretap/netxray.c
@@ -179,7 +179,7 @@ struct netxray_hdr {
* that captype be?
*/
static const double TpS[] = { 1e6, 1193000.0, 1193182.0 };
-#define NUM_NETXRAY_TIMEUNITS (sizeof TpS / sizeof TpS[0])
+#define NUM_NETXRAY_TIMEUNITS array_length(TpS)
/*
* Table of time units for Ethernet captures with captype ETH_CAPTYPE_GIGPOD.
@@ -204,7 +204,7 @@ static const double TpS[] = { 1e6, 1193000.0, 1193182.0 };
* correct TpS values for the 'gigpod' captype).
*/
static const double TpS_gigpod[] = { 1e9, 0.0, 31250000.0 };
-#define NUM_NETXRAY_TIMEUNITS_GIGPOD (sizeof TpS_gigpod / sizeof TpS_gigpod[0])
+#define NUM_NETXRAY_TIMEUNITS_GIGPOD array_length(TpS_gigpod)
/*
* Table of time units for Ethernet captures with captype ETH_CAPTYPE_OTHERPOD.
@@ -212,7 +212,7 @@ static const double TpS_gigpod[] = { 1e9, 0.0, 31250000.0 };
* correct TpS values for the 'otherpod' captype).
*/
static const double TpS_otherpod[] = { 1e6, 0.0, 1250000.0 };
-#define NUM_NETXRAY_TIMEUNITS_OTHERPOD (sizeof TpS_otherpod / sizeof TpS_otherpod[0])
+#define NUM_NETXRAY_TIMEUNITS_OTHERPOD array_length(TpS_otherpod)
/*
* Table of time units for Ethernet captures with captype ETH_CAPTYPE_OTHERPOD2.
@@ -220,7 +220,7 @@ static const double TpS_otherpod[] = { 1e6, 0.0, 1250000.0 };
* correct TpS values for the 'otherpod2' captype).
*/
static const double TpS_otherpod2[] = { 1e6, 0.0, 0.0 };
-#define NUM_NETXRAY_TIMEUNITS_OTHERPOD2 (sizeof TpS_otherpod2 / sizeof TpS_otherpod2[0])
+#define NUM_NETXRAY_TIMEUNITS_OTHERPOD2 array_length(TpS_otherpod2)
/*
* Table of time units for Ethernet captures with captype ETH_CAPTYPE_GIGPOD2.
@@ -228,7 +228,7 @@ static const double TpS_otherpod2[] = { 1e6, 0.0, 0.0 };
* correct TpS values for the 'gigpod2' captype).
*/
static const double TpS_gigpod2[] = { 1e9, 0.0, 20000000.0 };
-#define NUM_NETXRAY_TIMEUNITS_GIGPOD2 (sizeof TpS_gigpod2 / sizeof TpS_gigpod2[0])
+#define NUM_NETXRAY_TIMEUNITS_GIGPOD2 array_length(TpS_gigpod2)
/* Version number strings. */
static const char vers_1_0[] = {
@@ -466,7 +466,7 @@ netxray_open(wtap *wth, int *err, char **err_info)
/* Wireless WAN with radio information */
WTAP_ENCAP_UNKNOWN /* IrDA */
};
- #define NUM_NETXRAY_ENCAPS (sizeof netxray_encap / sizeof netxray_encap[0])
+ #define NUM_NETXRAY_ENCAPS array_length(netxray_encap)
int file_encap;
unsigned isdn_type = 0;
netxray_t *netxray;
@@ -1699,7 +1699,7 @@ static const struct {
{ WTAP_ENCAP_FDDI, 2 }, /* -> NDIS FDDI */
{ WTAP_ENCAP_FDDI_BITSWAPPED, 2 }, /* -> NDIS FDDI */
};
-#define NUM_WTAP_ENCAPS_1_1 (sizeof wtap_encap_1_1 / sizeof wtap_encap_1_1[0])
+#define NUM_WTAP_ENCAPS_1_1 array_length(wtap_encap_1_1)
static int
wtap_encap_to_netxray_1_1_encap(int encap)
@@ -1897,7 +1897,7 @@ static const struct {
{ WTAP_ENCAP_LAPB, 3 }, /* -> NDIS WAN */
{ WTAP_ENCAP_SDLC, 3 }, /* -> NDIS WAN */
};
-#define NUM_WTAP_ENCAPS_2_0 (sizeof wtap_encap_2_0 / sizeof wtap_encap_2_0[0])
+#define NUM_WTAP_ENCAPS_2_0 array_length(wtap_encap_2_0)
static int
wtap_encap_to_netxray_2_0_encap(int encap)
diff --git a/wiretap/ngsniffer.c b/wiretap/ngsniffer.c
index 896dd99635..041227a743 100644
--- a/wiretap/ngsniffer.c
+++ b/wiretap/ngsniffer.c
@@ -457,7 +457,7 @@ static const uint32_t Psec[] = {
/* XXX - Sniffer doc says 0.08 usecs = 80000 psecs */
100000 /* 0.1 usecs = 100000 psecs */
};
-#define NUM_NGSNIFF_TIMEUNITS (sizeof Psec / sizeof Psec[0])
+#define NUM_NGSNIFF_TIMEUNITS array_length(Psec)
/* Information for a compressed Sniffer data stream. */
typedef struct {
@@ -572,7 +572,7 @@ ngsniffer_open(wtap *wth, int *err, char **err_info)
WTAP_ENCAP_FDDI_BITSWAPPED,
WTAP_ENCAP_ATM_PDUS
};
- #define NUM_NGSNIFF_ENCAPS (sizeof sniffer_encap / sizeof sniffer_encap[0])
+ #define NUM_NGSNIFF_ENCAPS array_length(sniffer_encap)
struct tm tm;
int64_t current_offset;
ngsniffer_t *ngsniffer;
@@ -2048,7 +2048,7 @@ static const int wtap_encap[] = {
-1, /* WTAP_ENCAP_IP_OVER_FC -> unsupported */
7, /* WTAP_ENCAP_PPP_WITH_PHDR -> Internetwork analyzer (synchronous) FIXME ! */
};
-#define NUM_WTAP_ENCAPS (sizeof wtap_encap / sizeof wtap_encap[0])
+#define NUM_WTAP_ENCAPS array_length(wtap_encap)
/* Returns 0 if we could write the specified encapsulation type,
an error indication otherwise. */
diff --git a/wiretap/pcap-common.c b/wiretap/pcap-common.c
index 607393d4ed..d2102e085c 100644
--- a/wiretap/pcap-common.c
+++ b/wiretap/pcap-common.c
@@ -358,7 +358,7 @@ static const struct {
{ 203, WTAP_ENCAP_LAPD },
/* PPP with pseudoheader */
{ 204, WTAP_ENCAP_PPP_WITH_PHDR },
- /* IPMB/I2C with a Linux-specific header (defined by Pigeon Point Systems) */
+ /* I2C with a Linux-specific header (defined by Pigeon Point Systems) */
{ 209, WTAP_ENCAP_I2C_LINUX },
/* FlexRay frame */
{ 210, WTAP_ENCAP_FLEXRAY },
@@ -697,7 +697,7 @@ static const struct {
* the "linktype_value" field of "pcap_to_wtap_map[]".
*/
};
-#define NUM_PCAP_ENCAPS (sizeof pcap_to_wtap_map / sizeof pcap_to_wtap_map[0])
+#define NUM_PCAP_ENCAPS array_length(pcap_to_wtap_map)
int
wtap_pcap_encap_to_wtap_encap(int encap)
diff --git a/wiretap/pcapng.c b/wiretap/pcapng.c
index 1a3c5f0bb1..fbf1ddc91f 100644
--- a/wiretap/pcapng.c
+++ b/wiretap/pcapng.c
@@ -16,10 +16,10 @@
*/
#include "config.h"
-#include "wtap_opttypes.h"
-
#define WS_LOG_DOMAIN LOG_DOMAIN_WIRETAP
+#include "wtap_opttypes.h"
+
#include <stdlib.h>
#include <string.h>
#include <errno.h>
@@ -4283,18 +4283,20 @@ typedef struct compute_options_size_t
compute_option_size_func compute_option_size;
} compute_options_size_t;
+/*
+ * As it says at the top of the file, an option sizer "calculates how many
+ * bytes the option's data requires, not including any padding bytes."
+ * Callers are responsible for rounding up to multiples of 4 bytes.
+ * compute_block_options_size() does that for each option in the block;
+ * option writers that call an option sizer (which helps ensure that the
+ * sizes are internally consistent) should do the same.
+ */
+
static uint32_t pcapng_compute_string_option_size(wtap_optval_t *optval)
{
- uint32_t size = 0, pad;
+ uint32_t size = 0;
size = (uint32_t)strlen(optval->stringval) & 0xffff;
- if ((size % 4)) {
- pad = 4 - (size % 4);
- } else {
- pad = 0;
- }
-
- size += pad;
return size;
}
@@ -4302,16 +4304,9 @@ static uint32_t pcapng_compute_string_option_size(wtap_optval_t *optval)
#if 0
static uint32_t pcapng_compute_bytes_option_size(wtap_optval_t *optval)
{
- uint32_t size = 0, pad;
+ uint32_t size = 0;
size = (uint32_t)g_bytes_get_size(optval->byteval) & 0xffff;
- if ((size % 4)) {
- pad = 4 - (size % 4);
- } else {
- pad = 0;
- }
-
- size += pad;
return size;
}
@@ -4321,7 +4316,6 @@ static uint32_t pcapng_compute_if_filter_option_size(wtap_optval_t *optval)
{
if_filter_opt_t* filter = &optval->if_filterval;
uint32_t size;
- uint32_t pad;
if (filter->type == if_filter_pcap) {
size = (uint32_t)(strlen(filter->data.filter_str) + 1) & 0xffff;
@@ -4331,18 +4325,12 @@ static uint32_t pcapng_compute_if_filter_option_size(wtap_optval_t *optval)
/* Unknown type; don't write it */
size = 0;
}
- if ((size % 4)) {
- pad = 4 - (size % 4);
- } else {
- pad = 0;
- }
- size += pad;
return size;
}
static uint32_t pcapng_compute_custom_option_size(wtap_optval_t *optval)
{
- size_t size, pad;
+ size_t size;
/* PEN */
size = sizeof(uint32_t);
@@ -4359,13 +4347,6 @@ static uint32_t pcapng_compute_custom_option_size(wtap_optval_t *optval)
if (size > 65535) {
size = 65535;
}
- if ((size % 4)) {
- pad = 4 - (size % 4);
- } else {
- pad = 0;
- }
-
- size += pad;
return (uint32_t)size;
}
@@ -4374,7 +4355,6 @@ static uint32_t pcapng_compute_packet_hash_option_size(wtap_optval_t *optval)
{
packet_hash_opt_t* hash = &optval->packet_hash;
uint32_t size;
- uint32_t pad;
switch (hash->type) {
case OPT_HASH_CRC32:
@@ -4394,12 +4374,16 @@ static uint32_t pcapng_compute_packet_hash_option_size(wtap_optval_t *optval)
size = hash->hash_bytes->len;
break;
}
- if ((size % 4)) {
- pad = 4 - (size % 4);
- } else {
- pad = 0;
- }
- size += pad;
+ /* XXX - What if the size of the hash bytes doesn't match the
+ * expected size? We can:
+ * 1) Return 0, and omit it when writing
+ * 2) Return hash_bytes->len, and write it out exactly as we have it
+ * 3) Return the correct size here, and when writing err or possibly
+ * truncate.
+ */
+ /* Account for the size of the algorithm type field. */
+ size += 1;
+
return size;
}
@@ -4407,7 +4391,6 @@ static uint32_t pcapng_compute_packet_verdict_option_size(wtap_optval_t *optval)
{
packet_verdict_opt_t* verdict = &optval->packet_verdictval;
uint32_t size;
- uint32_t pad;
switch (verdict->type) {
@@ -4416,23 +4399,22 @@ static uint32_t pcapng_compute_packet_verdict_option_size(wtap_optval_t *optval)
break;
case packet_verdict_linux_ebpf_tc:
- size = 9;
+ size = 8;
break;
case packet_verdict_linux_ebpf_xdp:
- size = 9;
+ size = 8;
break;
default:
size = 0;
break;
}
- if ((size % 4)) {
- pad = 4 - (size % 4);
- } else {
- pad = 0;
+ /* Account for the type octet */
+ if (size) {
+ size += 1;
}
- size += pad;
+
return size;
}
@@ -4474,6 +4456,15 @@ compute_block_option_size(wtap_block_t block _U_, unsigned option_id, wtap_optty
/*
* Are we writing this option?
*/
+ /*
+ * XXX: The option length field is 16 bits. If size > 65535 (how?
+ * was the block was obtained from some format other than pcapng?),
+ * are we going to silently omit the option (in which case we shouldn't
+ * add the size here), or err out when writing it (in which case
+ * it's probably fine to add the size or not?) Adding it here and
+ * then omitting it when writing, as some of the routines do, means
+ * creating a corrupt file.
+ */
if (size != 0) {
/*
* Yes. Add the size of the option header to the size of the
@@ -4925,10 +4916,11 @@ static bool pcapng_write_packet_verdict_option(wtap_dumper *wdh, unsigned option
const uint32_t zero_pad = 0;
uint32_t pad;
+ size = pcapng_compute_packet_verdict_option_size(optval);
+
switch (verdict->type) {
case packet_verdict_hardware:
- size = verdict->data.verdict_bytes->len;
if (size > 65535) {
/*
* Too big to fit in the option.
@@ -4947,13 +4939,12 @@ static bool pcapng_write_packet_verdict_option(wtap_dumper *wdh, unsigned option
if (!wtap_dump_file_write(wdh, &type, sizeof(uint8_t), err))
return false;
- if (!wtap_dump_file_write(wdh, verdict->data.verdict_bytes->data, size,
- err))
+ if (!wtap_dump_file_write(wdh, verdict->data.verdict_bytes->data,
+ verdict->data.verdict_bytes->len, err))
return false;
break;
case packet_verdict_linux_ebpf_tc:
- size = 9;
option_hdr.type = option_id;
option_hdr.value_length = (uint16_t)size;
if (!wtap_dump_file_write(wdh, &option_hdr, 4, err))
@@ -4969,7 +4960,6 @@ static bool pcapng_write_packet_verdict_option(wtap_dumper *wdh, unsigned option
break;
case packet_verdict_linux_ebpf_xdp:
- size = 9;
option_hdr.type = option_id;
option_hdr.value_length = (uint16_t)size;
if (!wtap_dump_file_write(wdh, &option_hdr, 4, err))
@@ -4998,6 +4988,63 @@ static bool pcapng_write_packet_verdict_option(wtap_dumper *wdh, unsigned option
return true;
}
+static bool pcapng_write_packet_hash_option(wtap_dumper *wdh, unsigned option_id, wtap_optval_t *optval, int *err)
+{
+ packet_hash_opt_t* hash = &optval->packet_hash;
+ struct pcapng_option_header option_hdr;
+ uint8_t type;
+ size_t size;
+ const uint32_t zero_pad = 0;
+ uint32_t pad;
+
+ size = pcapng_compute_packet_hash_option_size(optval);
+
+ if (size > 65535) {
+ /*
+ * Too big to fit in the option.
+ * Don't write anything.
+ *
+ * XXX - truncate it? Report an error?
+ */
+ return true;
+ }
+
+ if (size > hash->hash_bytes->len + 1) {
+ /*
+ * We don't have enough bytes to write.
+ * pcapng_compute_packet_hash_option_size() should return 0 if
+ * we want to silently omit the option instead, or should return
+ * the length if we want to blindly copy it.
+ * XXX - Is this the best error type?
+ */
+ *err = WTAP_ERR_UNWRITABLE_REC_DATA;
+ return false;
+ }
+
+ type = hash->type;
+
+ option_hdr.type = option_id;
+ /* Include type byte */
+ option_hdr.value_length = (uint16_t)size;
+ if (!wtap_dump_file_write(wdh, &option_hdr, 4, err))
+ return false;
+
+ if (!wtap_dump_file_write(wdh, &type, sizeof(uint8_t), err))
+ return false;
+
+ if (!wtap_dump_file_write(wdh, hash->hash_bytes->data, size - 1,
+ err))
+ return false;
+
+ /* write padding (if any) */
+ if ((size % 4)) {
+ pad = 4 - (size % 4);
+ if (!wtap_dump_file_write(wdh, &zero_pad, pad, err))
+ return false;
+ }
+ return true;
+}
+
static bool write_block_option(wtap_block_t block, unsigned option_id, wtap_opttype_e option_type _U_, wtap_optval_t *optval, void* user_data)
{
write_options_t* options = (write_options_t*)user_data;
@@ -5237,8 +5284,14 @@ static bool write_wtap_epb_option(wtap_dumper *wdh, wtap_block_t block _U_, unsi
return false;
break;
case OPT_PKT_VERDICT:
- if (!pcapng_write_packet_verdict_option(wdh, OPT_EPB_QUEUE, optval,
+ if (!pcapng_write_packet_verdict_option(wdh, OPT_EPB_VERDICT, optval,
err))
+ return false;
+ break;
+ case OPT_PKT_HASH:
+ if (!pcapng_write_packet_hash_option(wdh, OPT_EPB_HASH, optval,
+ err))
+ return false;
break;
default:
/* Unknown options - write by datatype? */
diff --git a/wiretap/peektagged.c b/wiretap/peektagged.c
index fab0155ee5..561cf056f8 100644
--- a/wiretap/peektagged.c
+++ b/wiretap/peektagged.c
@@ -259,7 +259,7 @@ wtap_open_return_val peektagged_open(wtap *wth, int *err, char **err_info)
WTAP_ENCAP_IEEE_802_11_WITH_RADIO,
WTAP_ENCAP_IEEE_802_11_WITH_RADIO
};
- #define NUM_PEEKTAGGED_ENCAPS (sizeof peektagged_encap / sizeof peektagged_encap[0])
+ #define NUM_PEEKTAGGED_ENCAPS array_length(peektagged_encap)
peektagged_t *peektagged;
if (!wtap_read_bytes(wth->fh, &ap_hdr, (int)sizeof(ap_hdr), err, err_info)) {
diff --git a/wiretap/pppdump.c b/wiretap/pppdump.c
index 7da5795197..b68bcc8393 100644
--- a/wiretap/pppdump.c
+++ b/wiretap/pppdump.c
@@ -14,6 +14,7 @@
#include <errno.h>
#include <string.h>
+#include <wsutil/array.h>
#include <wsutil/ws_assert.h>
/*
diff --git a/wiretap/snoop.c b/wiretap/snoop.c
index 583726a330..ce64fd0729 100644
--- a/wiretap/snoop.c
+++ b/wiretap/snoop.c
@@ -211,7 +211,7 @@ wtap_open_return_val snoop_open(wtap *wth, int *err, char **err_info)
WTAP_ENCAP_UNKNOWN, /* 100BaseT (but that's just Ethernet) */
WTAP_ENCAP_IP_OVER_IB_SNOOP, /* Infiniband */
};
- #define NUM_SNOOP_ENCAPS (sizeof snoop_encap / sizeof snoop_encap[0])
+ #define NUM_SNOOP_ENCAPS array_length(snoop_encap)
#define SNOOP_PRIVATE_BIT 0x80000000
static const int snoop_private_encap[] = {
WTAP_ENCAP_UNKNOWN, /* Not Used */
@@ -223,7 +223,7 @@ wtap_open_return_val snoop_open(wtap *wth, int *err, char **err_info)
WTAP_ENCAP_UNKNOWN, /* IPMP stub interface */
WTAP_ENCAP_UNKNOWN, /* 6to4 Tunnel Link */
};
- #define NUM_SNOOP_PRIVATE_ENCAPS (sizeof snoop_private_encap / sizeof snoop_private_encap[0])
+ #define NUM_SNOOP_PRIVATE_ENCAPS array_length(snoop_private_encap)
static const int shomiti_encap[] = {
WTAP_ENCAP_ETHERNET, /* IEEE 802.3 */
WTAP_ENCAP_UNKNOWN, /* IEEE 802.4 Token Bus */
@@ -246,7 +246,7 @@ wtap_open_return_val snoop_open(wtap *wth, int *err, char **err_info)
WTAP_ENCAP_IEEE_802_11_WITH_RADIO, /* IEEE 802.11 with Radio Header */
WTAP_ENCAP_ETHERNET, /* 10 Gigabit Ethernet */
};
- #define NUM_SHOMITI_ENCAPS (sizeof shomiti_encap / sizeof shomiti_encap[0])
+ #define NUM_SHOMITI_ENCAPS array_length(shomiti_encap)
int file_encap;
int64_t saved_offset;
snoop_t *snoop;
@@ -815,7 +815,7 @@ static const int wtap_encap[] = {
-1, /* WTAP_ENCAP_LAPB -> unsupported*/
0x12, /* WTAP_ENCAP_ATM_PDUS -> DL_IPATM */
};
-#define NUM_WTAP_ENCAPS (sizeof wtap_encap / sizeof wtap_encap[0])
+#define NUM_WTAP_ENCAPS array_length(wtap_encap)
/* Returns 0 if we could write the specified encapsulation type,
an error indication otherwise. */
diff --git a/wiretap/toshiba.c b/wiretap/toshiba.c
index 0f22dd3f60..85a4faadf5 100644
--- a/wiretap/toshiba.c
+++ b/wiretap/toshiba.c
@@ -80,11 +80,11 @@ OFFSET 0001-0203-0405-0607-0809-0A0B-0C0D-0E0F 0123456789ABCDEF LEN=222
/* Magic text to check for toshiba-ness of file */
static const char toshiba_hdr_magic[] =
{ 'T', ' ', 'O', ' ', 'S', ' ', 'H', ' ', 'I', ' ', 'B', ' ', 'A' };
-#define TOSHIBA_HDR_MAGIC_SIZE (sizeof toshiba_hdr_magic / sizeof toshiba_hdr_magic[0])
+#define TOSHIBA_HDR_MAGIC_SIZE array_length(toshiba_hdr_magic)
/* Magic text for start of packet */
static const char toshiba_rec_magic[] = { '[', 'N', 'o', '.' };
-#define TOSHIBA_REC_MAGIC_SIZE (sizeof toshiba_rec_magic / sizeof toshiba_rec_magic[0])
+#define TOSHIBA_REC_MAGIC_SIZE array_length(toshiba_rec_magic)
static bool toshiba_read(wtap *wth, wtap_rec *rec, Buffer *buf,
int *err, char **err_info, int64_t *data_offset);
diff --git a/wiretap/wtap-int.h b/wiretap/wtap-int.h
index 9c650601b3..aed2adc03e 100644
--- a/wiretap/wtap-int.h
+++ b/wiretap/wtap-int.h
@@ -16,6 +16,7 @@
#include <winsock2.h>
#endif
+#include <wsutil/array.h>
#include <wsutil/file_util.h>
#include "wtap_opttypes.h"
@@ -272,11 +273,6 @@ extern int wtap_num_file_types;
}
#endif
-/* glib doesn't have g_ptr_array_len of all things!*/
-#ifndef g_ptr_array_len
-#define g_ptr_array_len(a) ((a)->len)
-#endif
-
/*
* Read a given number of bytes from a file into a buffer or, if
* buf is NULL, just discard them.
diff --git a/wiretap/wtap.c b/wiretap/wtap.c
index 216355d374..3647cd3b6d 100644
--- a/wiretap/wtap.c
+++ b/wiretap/wtap.c
@@ -27,12 +27,12 @@
#endif
#ifdef HAVE_PLUGINS
-static plugins_t *libwiretap_plugins = NULL;
+static plugins_t *libwiretap_plugins;
#endif
#define PADDING4(x) ((((x + 3) >> 2) << 2) - x)
-static GSList *wtap_plugins = NULL;
+static GSList *wtap_plugins;
#ifdef HAVE_PLUGINS
void
@@ -1306,7 +1306,7 @@ static struct encap_type_info encap_table_base[] = {
WS_DLL_LOCAL
int wtap_num_encap_types = sizeof(encap_table_base) / sizeof(struct encap_type_info);
-static GArray* encap_table_arr = NULL;
+static GArray* encap_table_arr;
#define encap_table_entry(encap) \
g_array_index(encap_table_arr, struct encap_type_info, encap)
@@ -1500,7 +1500,7 @@ static const char *wtap_errlist[] = {
/* WTAP_ERR_TIME_STAMP_NOT_SUPPORTED */
"We don't support writing that record's time stamp to that file type",
};
-#define WTAP_ERRLIST_SIZE (sizeof wtap_errlist / sizeof wtap_errlist[0])
+#define WTAP_ERRLIST_SIZE array_length(wtap_errlist)
const char *
wtap_strerror(int err)
diff --git a/wiretap/wtap.h b/wiretap/wtap.h
index ba3bf9351f..9b0c30920f 100644
--- a/wiretap/wtap.h
+++ b/wiretap/wtap.h
@@ -1480,7 +1480,8 @@ typedef struct addrinfo_lists {
* @note The shb_hdr and idb_inf arguments will be used until
* wtap_dump_close() is called, but will not be free'd by the dumper. If
* you created them, you must free them yourself after wtap_dump_close().
- * dsbs_initial will be freed by wtap_dump_close(),
+ * dsbs_initial will be unreferenced by wtap_dump_close(), so to reuse
+ * them for another dump file, call wtap_block_array_ref() before closing.
* dsbs_growing typically refers to another wth->dsbs.
* nrbs_growing typically refers to another wth->nrbs.
*
@@ -1708,7 +1709,7 @@ struct supported_option_type {
};
#define OPTION_TYPES_SUPPORTED(option_type_array) \
- sizeof option_type_array / sizeof option_type_array[0], option_type_array
+ array_length(option_type_array), option_type_array
#define NO_OPTIONS_SUPPORTED \
0, NULL
@@ -1734,7 +1735,7 @@ struct supported_block_type {
};
#define BLOCKS_SUPPORTED(block_type_array) \
- sizeof block_type_array / sizeof block_type_array[0], block_type_array
+ array_length(block_type_array), block_type_array
struct file_type_subtype_info {
/**
diff --git a/wiretap/wtap_opttypes.c b/wiretap/wtap_opttypes.c
index f330789be3..47e30c1d74 100644
--- a/wiretap/wtap_opttypes.c
+++ b/wiretap/wtap_opttypes.c
@@ -62,7 +62,7 @@ typedef struct {
/* Debugging reference counting */
#ifdef DEBUG_COUNT_REFS
-static unsigned block_count = 0;
+static unsigned block_count;
static uint8_t blocks_active[sizeof(unsigned)/8];
static void rc_set(unsigned refnum)
@@ -465,6 +465,32 @@ void wtap_block_array_free(GArray* block_array)
g_array_free(block_array, true);
}
+void wtap_block_array_ref(GArray* block_array)
+{
+ unsigned block;
+
+ if (block_array == NULL)
+ return;
+
+ for (block = 0; block < block_array->len; block++) {
+ wtap_block_ref(g_array_index(block_array, wtap_block_t, block));
+ }
+ g_array_ref(block_array);
+}
+
+void wtap_block_array_unref(GArray* block_array)
+{
+ unsigned block;
+
+ if (block_array == NULL)
+ return;
+
+ for (block = 0; block < block_array->len; block++) {
+ wtap_block_unref(g_array_index(block_array, wtap_block_t, block));
+ }
+ g_array_unref(block_array);
+}
+
/*
* Make a copy of a block.
*/
diff --git a/wiretap/wtap_opttypes.h b/wiretap/wtap_opttypes.h
index e3d78fe730..665f18a099 100644
--- a/wiretap/wtap_opttypes.h
+++ b/wiretap/wtap_opttypes.h
@@ -614,6 +614,29 @@ wtap_block_unref(wtap_block_t block);
WS_DLL_PUBLIC void
wtap_block_array_free(GArray* block_array);
+/** Decrement the reference count of an array of blocks
+ *
+ * Decrement the reference count of each block in the array
+ * and the GArray itself. Any element whose reference count
+ * drops to 0 will be freed. If the GArray and every block
+ * has a reference count of 1, this is the same as
+ * wtap_block_array_free().
+ *
+ * @param[in] block_array Array of blocks to be dereferenced
+ */
+WS_DLL_PUBLIC void
+wtap_block_array_unref(GArray* block_array);
+
+/** Increment the reference count of an array of blocks
+ *
+ * Increment the reference count of each block in the array
+ * and the GArray itself.
+ *
+ * @param[in] block_array Array of blocks to be referenced
+ */
+WS_DLL_PUBLIC void
+wtap_block_array_ref(GArray* block_array);
+
/** Provide type of a block
*
* @param[in] block Block from which to retrieve mandatory data
diff --git a/writecap/pcapio.c b/writecap/pcapio.c
index e5a8c9de1e..58c49179dd 100644
--- a/writecap/pcapio.c
+++ b/writecap/pcapio.c
@@ -425,7 +425,7 @@ pcapng_write_interface_description_block(FILE* pfile,
}
/* 11 - IDB_FILTER */
- if ((filter != NULL) && (strlen(filter) > 0) && (strlen(filter) < UINT16_MAX)) {
+ if ((filter != NULL) && (strlen(filter) > 0) && (strlen(filter) < UINT16_MAX - 1)) {
/* No, this isn't a string, it has an extra type byte */
options_length += (uint32_t)(sizeof(struct ws_option) +
(uint16_t)(ADD_PADDING(strlen(filter)+ 1)));
@@ -496,7 +496,8 @@ pcapng_write_interface_description_block(FILE* pfile,
}
/* 11 - IDB_FILTER - write filter string if applicable
- * We only write version 1 of the filter, pcapng string
+ * We write out the libpcap filter expression, not the
+ * generated BPF code.
*/
if ((filter != NULL) && (strlen(filter) > 0) && (strlen(filter) < UINT16_MAX - 1)) {
option.type = IDB_FILTER;
diff --git a/ws_version.h.in b/ws_version.h.in
index 1105d57a18..f89bfb80e2 100644
--- a/ws_version.h.in
+++ b/ws_version.h.in
@@ -7,18 +7,4 @@
#define WIRESHARK_VERSION_MINOR @PROJECT_MINOR_VERSION@
#define WIRESHARK_VERSION_MICRO @PROJECT_PATCH_VERSION@
-/* ABI version for plugin compatibility. */
-#define WIRESHARK_ABI_VERSION_EPAN @PROJECT_ABI_VERSION_EPAN@
-#define WIRESHARK_ABI_VERSION_WIRETAP @PROJECT_ABI_VERSION_WIRETAP@
-#define WIRESHARK_ABI_VERSION_CODEC @PROJECT_ABI_VERSION_CODEC@
-
-/*
- * API level for codec plugins
- */
-/* The minimum level is the minimum API requirement for a codec
- * to be used with this version of Wireshark (possibly with reduced functionality). */
-#define WIRESHARK_API_MIN_LEVEL_CODEC 1
-/* The maximum level supported for this version of Wireshark. */
-#define WIRESHARK_API_MAX_LEVEL_CODEC 1
-
#endif /* __WS_VERSION_H__ */
diff --git a/wsutil/802_11-utils.c b/wsutil/802_11-utils.c
index 2069f9896c..a4bfce9379 100644
--- a/wsutil/802_11-utils.c
+++ b/wsutil/802_11-utils.c
@@ -84,6 +84,26 @@ ieee80211_chan_to_mhz(int chan, bool is_bg) {
}
/*
+ * Get Frequency given a Channel number and band.
+ */
+unsigned
+ieee80211_chan_band_to_mhz(int chan, bool is_bg, bool is_6ghz) {
+ unsigned i;
+
+ int start_idx = 0;
+ if (is_6ghz) {
+ start_idx = 3;
+ }
+ for (i = start_idx; i < NUM_FREQ_CVT; i++) {
+ if (is_bg == freq_cvt[i].is_bg &&
+ chan >= freq_cvt[i].cmin && chan <= MAX_CHANNEL(freq_cvt[i])) {
+ return ((chan - freq_cvt[i].cmin) * FREQ_STEP) + freq_cvt[i].fmin;
+ }
+ }
+ return 0;
+}
+
+/*
* Get channel representation string given a Frequency
*/
char*
diff --git a/wsutil/802_11-utils.h b/wsutil/802_11-utils.h
index 9942eb9b4f..5c496da208 100644
--- a/wsutil/802_11-utils.h
+++ b/wsutil/802_11-utils.h
@@ -51,6 +51,13 @@ WS_DLL_PUBLIC
char*
ieee80211_mhz_to_str(unsigned freq);
+/*
+ * Get Frequency given a Channel number and band.
+ */
+WS_DLL_PUBLIC
+unsigned
+ieee80211_chan_band_to_mhz(int chan, bool is_bg, bool is_6ghz);
+
/* Should this be "(freq < 4920)", or something else? */
#define FREQ_IS_BG(freq) ((freq) <= 2484)
#define CHAN_IS_BG(chan) ((chan) <= 14)
diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt
index e10e7f76da..2294a4c8b3 100644
--- a/wsutil/CMakeLists.txt
+++ b/wsutil/CMakeLists.txt
@@ -76,6 +76,7 @@ set(WMEM_FILES
set(WSUTIL_PUBLIC_HEADERS
802_11-utils.h
adler32.h
+ array.h
base32.h
bits_count_ones.h
bits_ctz.h
@@ -185,7 +186,6 @@ set(WSUTIL_COMMON_FILES
cpu_info.c
os_version_info.c
please_report_bug.c
- plugins.c
privileges.c
regex.c
rsa.c
@@ -217,6 +217,12 @@ if(WIN32)
)
endif()
+if(ENABLE_PLUGINS)
+ list(APPEND WSUTIL_COMMON_FILES
+ plugins.c
+ )
+endif()
+
set(WSUTIL_FILES
${WMEM_FILES}
${WSUTIL_COMMON_FILES}
@@ -369,6 +375,7 @@ target_link_libraries(wsutil
${CMAKE_DL_LIBS}
${GCRYPT_LIBRARIES}
${GNUTLS_LIBRARIES}
+ ${M_LIBRARIES}
${ZLIB_LIBRARIES}
$<IF:$<CONFIG:Debug>,${PCRE2_DEBUG_LIBRARIES},${PCRE2_LIBRARIES}>
${WIN_IPHLPAPI_LIBRARY}
diff --git a/wsutil/array.h b/wsutil/array.h
new file mode 100644
index 0000000000..0e6e8a55a2
--- /dev/null
+++ b/wsutil/array.h
@@ -0,0 +1,22 @@
+/** @file
+ * Utility functions/macros for handling arrays, C and/or glib.
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef __WSUTIL_ARRAY_H__
+#define __WSUTIL_ARRAY_H__
+
+/** Useful when you have an array whose size is known at compile-time. */
+#define array_length(x) (sizeof (x) / sizeof (x)[0])
+
+/** glib doesn't have g_ptr_array_len, of all things! */
+#ifndef g_ptr_array_len
+#define g_ptr_array_len(a) ((a) ? (a)->len : 0)
+#endif
+
+#endif /* __WSUTIL_ARRAY_H__ */
diff --git a/wsutil/buffer.c b/wsutil/buffer.c
index 9533008647..cdb16a83d9 100644
--- a/wsutil/buffer.c
+++ b/wsutil/buffer.c
@@ -16,7 +16,7 @@
#include <wsutil/wslog.h>
#define SMALL_BUFFER_SIZE (2 * 1024) /* Everyone still uses 1500 byte frames, right? */
-static GPtrArray *small_buffers = NULL; /* Guaranteed to be at least SMALL_BUFFER_SIZE */
+static GPtrArray *small_buffers; /* Guaranteed to be at least SMALL_BUFFER_SIZE */
/* XXX - Add medium and large buffers? */
/* Initializes a buffer with a certain amount of allocated space */
diff --git a/wsutil/codecs.c b/wsutil/codecs.c
index e02a4dd56b..dfd5c0e016 100644
--- a/wsutil/codecs.c
+++ b/wsutil/codecs.c
@@ -10,17 +10,18 @@
#include "config.h"
-#include "codecs_priv.h"
+#include "codecs.h"
+#include <wsutil/wslog.h>
#ifdef HAVE_PLUGINS
#include <wsutil/plugins.h>
#endif
#ifdef HAVE_PLUGINS
-static plugins_t *libwscodecs_plugins = NULL;
+static plugins_t *libwscodecs_plugins;
#endif
-static GSList *codecs_plugins = NULL;
+static GSList *codecs_plugins;
#ifdef HAVE_PLUGINS
void
@@ -83,7 +84,7 @@ struct codec_handle {
/*
* List of registered codecs.
*/
-static GHashTable *registered_codecs = NULL;
+static GHashTable *registered_codecs;
/* Find a registered codec by name. */
diff --git a/wsutil/codecs.h b/wsutil/codecs.h
index aef3b183cc..be340bc722 100644
--- a/wsutil/codecs.h
+++ b/wsutil/codecs.h
@@ -11,31 +11,38 @@
#ifndef _CODECS_H_
#define _CODECS_H_
-#include <wireshark.h>
+#include "ws_symbol_export.h"
+#include "ws_attributes.h"
+
+#include <stdbool.h>
+
+#include "wsutil/wmem/wmem_map.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-/*
- * IMPORTANT: This header is the public plugin API for codecs.
- *
- * When this API changes the API level must be bumped in ws_version.h.in.
- * If the change is backward-compatible only the maximum (codec) API level is increased by one.
- * If the change is backward-incompatible, meaning a plugin that does not use
- * new functionaly may not compile anymore, both the maximum (codec) API level is increased by one
- * and the minimum (codec) API level is bumped to the new maximum (codec) API level.
- *
- * API functionality above level one should be annotated with a comment indicating
- * the API level required (when it was first introduced).
- */
-
typedef struct {
void (*register_codec_module)(void); /* routine to call to register a codec */
} codecs_plugin;
WS_DLL_PUBLIC void codecs_register_plugin(const codecs_plugin *plug);
+/**
+ * For all built-in codecs and codec plugins, call their register routines.
+ */
+WS_DLL_PUBLIC void codecs_init(void);
+
+WS_DLL_PUBLIC void codecs_cleanup(void);
+
+/**
+ * Get compile-time information for libraries used by libwscodecs.
+ */
+WS_DLL_PUBLIC void codec_get_compiled_version_info(GString *str);
+
+struct codec_handle;
+typedef struct codec_handle *codec_handle_t;
+
typedef struct _codec_context_t {
unsigned sample_rate;
unsigned channels;
@@ -112,6 +119,15 @@ typedef size_t (*codec_decode_fn)(codec_context_t *context,
WS_DLL_PUBLIC bool register_codec(const char *name, codec_init_fn init_fn,
codec_release_fn release_fn, codec_get_channels_fn channels_fn,
codec_get_frequency_fn frequency_fn, codec_decode_fn decode_fn);
+WS_DLL_PUBLIC bool deregister_codec(const char *name);
+WS_DLL_PUBLIC codec_handle_t find_codec(const char *name);
+WS_DLL_PUBLIC void *codec_init(codec_handle_t codec, codec_context_t *context);
+WS_DLL_PUBLIC void codec_release(codec_handle_t codec, codec_context_t *context);
+WS_DLL_PUBLIC unsigned codec_get_channels(codec_handle_t codec, codec_context_t *context);
+WS_DLL_PUBLIC unsigned codec_get_frequency(codec_handle_t codec, codec_context_t *context);
+WS_DLL_PUBLIC size_t codec_decode(codec_handle_t codec, codec_context_t *context,
+ const void *inputBytes, size_t inputBytesSize,
+ void *outputSamples, size_t *outputSamplesSize);
#ifdef __cplusplus
}
diff --git a/wsutil/codecs_priv.h b/wsutil/codecs_priv.h
deleted file mode 100644
index 75934d9590..0000000000
--- a/wsutil/codecs_priv.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/** @file
- * codecs interface 2007 Tomas Kukosa
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
-
-#ifndef _CODECS_INT_H_
-#define _CODECS_INT_H_
-
-#include "codecs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-struct codec_handle;
-typedef struct codec_handle *codec_handle_t;
-
-WS_DLL_PUBLIC bool deregister_codec(const char *name);
-
-WS_DLL_PUBLIC codec_handle_t find_codec(const char *name);
-
-WS_DLL_PUBLIC void *codec_init(codec_handle_t codec, codec_context_t *context);
-
-WS_DLL_PUBLIC void codec_release(codec_handle_t codec, codec_context_t *context);
-
-WS_DLL_PUBLIC unsigned codec_get_channels(codec_handle_t codec, codec_context_t *context);
-
-WS_DLL_PUBLIC unsigned codec_get_frequency(codec_handle_t codec, codec_context_t *context);
-
-WS_DLL_PUBLIC size_t codec_decode(codec_handle_t codec, codec_context_t *context,
- const void *inputBytes, size_t inputBytesSize,
- void *outputSamples, size_t *outputSamplesSize);
-
-/**
- * For all built-in codecs and codec plugins, call their register routines.
- */
-WS_DLL_PUBLIC void codecs_init(void);
-
-WS_DLL_PUBLIC void codecs_cleanup(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _CODECS_INT_H_ */
-
-/*
- * Editor modelines - https://www.wireshark.org/tools/modelines.html
- *
- * Local variables:
- * c-basic-offset: 4
- * tab-width: 8
- * indent-tabs-mode: nil
- * End:
- *
- * vi: set shiftwidth=4 tabstop=8 expandtab:
- * :indentSize=4:tabSize=8:noTabs=true:
- */
diff --git a/wsutil/console_win32.c b/wsutil/console_win32.c
index eed18c8887..a1b2701ac7 100644
--- a/wsutil/console_win32.c
+++ b/wsutil/console_win32.c
@@ -26,7 +26,7 @@
static bool has_console; /* true if app has console */
static bool console_wait; /* "Press any key..." */
-static bool stdin_capture = false; /* Don't grab stdin & stdout if true */
+static bool stdin_capture; /* Don't grab stdin & stdout if true */
/*
* Check whether a given standard handle needs to be redirected.
diff --git a/wsutil/cpu_info.c b/wsutil/cpu_info.c
index f9e6aa2521..8b06b07054 100644
--- a/wsutil/cpu_info.c
+++ b/wsutil/cpu_info.c
@@ -201,7 +201,7 @@ get_cpu_info(GString *str)
/*
* Allocate a buffer for the subkey.
*/
- subkey_buf = (wchar_t *)g_malloc(max_subkey_len * sizeof (wchar_t));
+ subkey_buf = g_new(wchar_t, max_subkey_len);
if (subkey_buf == NULL) {
/* Just give up. */
g_tree_destroy(model_names);
@@ -383,6 +383,7 @@ get_cpu_info(GString *str)
*/
uint32_t CPUInfo[4];
char CPUBrandString[0x40];
+ char *model_name;
unsigned nExIds;
/*
diff --git a/wsutil/epochs.h b/wsutil/epochs.h
index c69a3987eb..27a884737e 100644
--- a/wsutil/epochs.h
+++ b/wsutil/epochs.h
@@ -64,4 +64,10 @@
*/
#define EPOCH_DELTA_1601_01_01_00_00_00_UTC UINT64_C(11644473600)
+/*
+ * 2000-01-01 00:00:00 UTC.
+ * Used by the Zigbee Zigbee Cluster Library protocol.
+ */
+#define EPOCH_DELTA_2000_01_01_00_00_00_UTC ((unsigned)(((3*365 + 366)*7 + 2*365)*24*3600))
+
#endif /* __EPOCHS_H__ */
diff --git a/wsutil/file_util.c b/wsutil/file_util.c
index 4fd55180ea..d36ae75fd9 100644
--- a/wsutil/file_util.c
+++ b/wsutil/file_util.c
@@ -60,9 +60,9 @@
#include "file_util.h"
#include "ws_attributes.h"
-static char *program_path = NULL;
-static char *system_path = NULL;
-static char *npcap_path = NULL;
+static char *program_path;
+static char *system_path;
+static char *npcap_path;
/**
* g_open:
@@ -630,8 +630,8 @@ load_wpcap_module(void)
*/
#define WIRESHARK_IS_RUNNING_UUID "9CA78EEA-EA4D-4490-9240-FC01FCEF464B"
-static HANDLE local_running_mutex = NULL;
-static HANDLE global_running_mutex = NULL;
+static HANDLE local_running_mutex;
+static HANDLE global_running_mutex;
void create_app_running_mutex(void) {
SECURITY_DESCRIPTOR sec_descriptor;
diff --git a/wsutil/filesystem.c b/wsutil/filesystem.c
index e8366a6ac8..099239ba1b 100644
--- a/wsutil/filesystem.c
+++ b/wsutil/filesystem.c
@@ -9,10 +9,10 @@
*/
#include "config.h"
-#include "filesystem.h"
-
#define WS_LOG_DOMAIN LOG_DOMAIN_WSUTIL
+#include "filesystem.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -73,18 +73,18 @@ enum configuration_namespace_e configuration_namespace = CONFIGURATION_NAMESPACE
#define CONFIGURATION_NAMESPACE_LOWER (configuration_namespace == CONFIGURATION_NAMESPACE_WIRESHARK ? "wireshark" : "logray")
#define CONFIGURATION_ENVIRONMENT_VARIABLE(suffix) (configuration_namespace == CONFIGURATION_NAMESPACE_WIRESHARK ? "WIRESHARK_" suffix : "LOGRAY_" suffix)
-char *persconffile_dir = NULL;
-char *datafile_dir = NULL;
-char *persdatafile_dir = NULL;
-char *persconfprofile = NULL;
-char *doc_dir = NULL;
+char *persconffile_dir;
+char *datafile_dir;
+char *persdatafile_dir;
+char *persconfprofile;
+char *doc_dir;
/* Directory from which the executable came. */
-static char *progfile_dir = NULL;
-static char *install_prefix = NULL;
+static char *progfile_dir;
+static char *install_prefix;
-static bool do_store_persconffiles = false;
-static GHashTable *profile_files = NULL;
+static bool do_store_persconffiles;
+static GHashTable *profile_files;
/*
* Given a pathname, return a pointer to the last pathname separator
@@ -293,7 +293,7 @@ static char *appbundle_dir;
* true if we're running from the build directory and we aren't running
* with special privileges.
*/
-static bool running_in_build_directory_flag = false;
+static bool running_in_build_directory_flag;
/*
* Set our configuration namespace. This will be used for top-level
@@ -1153,9 +1153,11 @@ get_doc_dir(void)
* otherwise, we use the PLUGIN_DIR value supplied by the
* configure script.
*/
-static char *plugin_dir = NULL;
-static char *plugin_pers_dir = NULL;
-static char *extcap_pers_dir = NULL;
+static char *plugin_dir;
+static char *plugin_dir_with_version;
+static char *plugin_pers_dir;
+static char *plugin_pers_dir_with_version;
+static char *extcap_pers_dir;
static void
init_plugin_dir(void)
@@ -1240,6 +1242,16 @@ get_plugins_dir(void)
return plugin_dir;
}
+const char *
+get_plugins_dir_with_version(void)
+{
+ if (!plugin_dir)
+ init_plugin_dir();
+ if (plugin_dir && !plugin_dir_with_version)
+ plugin_dir_with_version = g_build_filename(plugin_dir, PLUGIN_PATH_ID, (char *)NULL);
+ return plugin_dir_with_version;
+}
+
/* Get the personal plugin dir */
const char *
get_plugins_pers_dir(void)
@@ -1249,6 +1261,16 @@ get_plugins_pers_dir(void)
return plugin_pers_dir;
}
+const char *
+get_plugins_pers_dir_with_version(void)
+{
+ if (!plugin_pers_dir)
+ init_plugin_pers_dir();
+ if (plugin_pers_dir && !plugin_pers_dir_with_version)
+ plugin_pers_dir_with_version = g_build_filename(plugin_pers_dir, PLUGIN_PATH_ID, (char *)NULL);
+ return plugin_pers_dir_with_version;
+}
+
/*
* Find the directory where the extcap hooks are stored.
*
@@ -1267,7 +1289,7 @@ get_plugins_pers_dir(void)
*
* otherwise, we use the EXTCAP_DIR value supplied by CMake.
*/
-static char *extcap_dir = NULL;
+static char *extcap_dir;
static void
init_extcap_dir(void)
@@ -2674,8 +2696,12 @@ free_progdirs(void)
#if defined(HAVE_PLUGINS) || defined(HAVE_LUA)
g_free(plugin_dir);
plugin_dir = NULL;
+ g_free(plugin_dir_with_version);
+ plugin_dir_with_version = NULL;
g_free(plugin_pers_dir);
plugin_pers_dir = NULL;
+ g_free(plugin_pers_dir_with_version);
+ plugin_pers_dir_with_version = NULL;
#endif
g_free(extcap_dir);
extcap_dir = NULL;
diff --git a/wsutil/filesystem.h b/wsutil/filesystem.h
index 9cd0d1c0d3..c3e139d1ff 100644
--- a/wsutil/filesystem.h
+++ b/wsutil/filesystem.h
@@ -81,11 +81,21 @@ WS_DLL_PUBLIC char *get_executable_path(const char *filename);
WS_DLL_PUBLIC const char *get_plugins_dir(void);
/*
+ * Append VERSION_MAJOR.VERSION_MINOR to the plugin dir.
+ */
+WS_DLL_PUBLIC const char *get_plugins_dir_with_version(void);
+
+/*
* Get the personal plugin dir.
*/
WS_DLL_PUBLIC const char *get_plugins_pers_dir(void);
/*
+ * Append VERSION_MAJOR.VERSION_MINOR to the plugin personal dir.
+ */
+WS_DLL_PUBLIC const char *get_plugins_pers_dir_with_version(void);
+
+/*
* Get the directory in which extcap hooks are stored; this must not be called
* before configuration_init() is called, as they might be stored in a
* subdirectory of the program file directory.
diff --git a/wsutil/g711.c b/wsutil/g711.c
index e6c3dcaeb9..7e2345c1a9 100644
--- a/wsutil/g711.c
+++ b/wsutil/g711.c
@@ -37,11 +37,11 @@
#define SEG_SHIFT (4) /* Left shift for segment number. */
#define SEG_MASK (0x70) /* Segment field mask. */
-static short seg_end[8] = {0xFF, 0x1FF, 0x3FF, 0x7FF,
- 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF};
+static const short seg_end[8] = {0xFF, 0x1FF, 0x3FF, 0x7FF,
+ 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF};
/* copy from CCITT G.711 specifications */
-unsigned char _u2a[128] = { /* u- to A-law conversions */
+const unsigned char _u2a[128] = { /* u- to A-law conversions */
1, 1, 2, 2, 3, 3, 4, 4,
5, 5, 6, 6, 7, 7, 8, 8,
9, 10, 11, 12, 13, 14, 15, 16,
@@ -59,7 +59,7 @@ unsigned char _u2a[128] = { /* u- to A-law conversions */
113, 114, 115, 116, 117, 118, 119, 120,
121, 122, 123, 124, 125, 126, 127, 128};
-unsigned char _a2u[128] = { /* A- to u-law conversions */
+const unsigned char _a2u[128] = { /* A- to u-law conversions */
1, 3, 5, 7, 9, 11, 13, 15,
16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31,
@@ -80,7 +80,7 @@ unsigned char _a2u[128] = { /* A- to u-law conversions */
static int
search(
int val,
- short *table,
+ const short *table,
int size)
{
int i;
diff --git a/wsutil/json_dumper.c b/wsutil/json_dumper.c
index 5cbc9494da..cea102ce36 100644
--- a/wsutil/json_dumper.c
+++ b/wsutil/json_dumper.c
@@ -11,13 +11,15 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
+#include "config.h"
+#define WS_LOG_DOMAIN LOG_DOMAIN_WSUTIL
+
#include <glib.h>
#include "json_dumper.h"
-#define WS_LOG_DOMAIN LOG_DOMAIN_WSUTIL
-
#include <math.h>
+#include <wsutil/array.h>
#include <wsutil/wslog.h>
/*
@@ -49,7 +51,7 @@ static const char *json_dumper_element_type_names[] = {
[JSON_DUMPER_TYPE_ARRAY] = "array",
[JSON_DUMPER_TYPE_BASE64] = "base64"
};
-#define NUM_JSON_DUMPER_ELEMENT_TYPE_NAMES (sizeof json_dumper_element_type_names / sizeof json_dumper_element_type_names[0])
+#define NUM_JSON_DUMPER_ELEMENT_TYPE_NAMES array_length(json_dumper_element_type_names)
#define JSON_DUMPER_FLAGS_ERROR (1 << 16) /* Output flag: an error occurred. */
diff --git a/wsutil/plugins.c b/wsutil/plugins.c
index 5bbd6d1058..69a4710a08 100644
--- a/wsutil/plugins.c
+++ b/wsutil/plugins.c
@@ -29,15 +29,15 @@
typedef struct _plugin {
GModule *handle; /* handle returned by g_module_open */
char *name; /* plugin name */
- struct ws_module *module;
- plugin_scope_e scope;
+ const char *version; /* plugin version */
+ uint32_t flags; /* plugin flags */
} plugin;
#define TYPE_DIR_EPAN "epan"
#define TYPE_DIR_WIRETAP "wiretap"
#define TYPE_DIR_CODECS "codecs"
-static GSList *plugins_module_list = NULL;
+static GSList *plugins_module_list;
static inline const char *
@@ -58,22 +58,6 @@ type_to_dir(plugin_type_e type)
}
static inline const char *
-type_to_name(plugin_type_e type)
-{
- switch (type) {
- case WS_PLUGIN_EPAN:
- return "epan";
- case WS_PLUGIN_WIRETAP:
- return "wiretap";
- case WS_PLUGIN_CODEC:
- return "codec";
- default:
- return "unknown";
- }
- ws_assert_not_reached();
-}
-
-static inline const char *
flags_to_str(uint32_t flags)
{
/* XXX: Allow joining multiple types? Our plugins only implement a
@@ -88,8 +72,8 @@ flags_to_str(uint32_t flags)
return "epan";
else if (flags & WS_PLUGIN_DESC_TAP_LISTENER)
return "tap listener";
- else if (flags & WS_PLUGIN_DESC_DFUNCTION)
- return "dfunction";
+ else if (flags & WS_PLUGIN_DESC_DFILTER)
+ return "dfilter";
else
return "unknown";
}
@@ -110,45 +94,56 @@ compare_plugins(gconstpointer a, gconstpointer b)
}
static bool
-pass_plugin_compatibility(const char *name, plugin_type_e type,
- int abi_version, int min_api_level)
+pass_plugin_version_compatibility(GModule *handle, const char *name)
{
- if (abi_version != plugins_abi_version(type)) {
- report_failure("The plugin '%s' has incompatible ABI, have version %d, expected %d",
- name, abi_version, plugins_abi_version(type));
+ void * symb;
+ int major, minor;
+
+ if(!g_module_symbol(handle, "plugin_want_major", &symb)) {
+ report_failure("The plugin '%s' has no \"plugin_want_major\" symbol", name);
return false;
}
+ major = *(int *)symb;
- /* Check if the minimum requested API level is supported by this version
- * of Wireshark (only used with codec plugins). */
- if (min_api_level > 0 && min_api_level > plugins_api_max_level(type)) {
- report_failure("The plugin '%s' requires API level %d, have %d",
- name, min_api_level, plugins_api_max_level(type));
+ if(!g_module_symbol(handle, "plugin_want_minor", &symb)) {
+ report_failure("The plugin '%s' has no \"plugin_want_minor\" symbol", name);
+ return false;
+ }
+ minor = *(int *)symb;
+
+ if (major != VERSION_MAJOR || minor != VERSION_MINOR) {
+ report_failure("The plugin '%s' was compiled for Wireshark version %d.%d",
+ name, major, minor);
return false;
}
return true;
}
+// GLib and Qt allow ".dylib" and ".so" on macOS. Should we do the same?
+#ifdef _WIN32
+#define MODULE_SUFFIX ".dll"
+#else
+#define MODULE_SUFFIX ".so"
+#endif
+
static void
-scan_plugins_dir(GHashTable *plugins_module, const char *dirpath,
- plugin_type_e type, plugin_scope_e scope)
+scan_plugins_dir(GHashTable *plugins_module, const char *dirpath, plugin_type_e type, bool append_type)
{
GDir *dir;
const char *name; /* current file name */
char *plugin_folder;
char *plugin_file; /* current file full path */
- char *plugin_ext; /* plugin file extension */
GModule *handle; /* handle returned by g_module_open */
- void *symbol;
+ void * symbol;
+ const char *plug_version;
+ uint32_t flags;
plugin *new_plug;
- plugin_type_e have_type;
- int abi_version;
- int min_api_level;
- struct ws_module *module;
- char *s;
- plugin_folder = g_build_filename(dirpath, type_to_dir(type), (char *)NULL);
+ if (append_type)
+ plugin_folder = g_build_filename(dirpath, type_to_dir(type), (char *)NULL);
+ else
+ plugin_folder = g_strdup(dirpath);
dir = g_dir_open(plugin_folder, 0, NULL);
if (dir == NULL) {
@@ -156,36 +151,24 @@ scan_plugins_dir(GHashTable *plugins_module, const char *dirpath,
return;
}
- plugin_ext = plugins_file_suffix(type);
-
- ws_debug("Scanning plugins folder \"%s\" for *%s", plugin_folder, plugin_ext);
+ ws_debug("Scanning plugins folder \"%s\"", plugin_folder);
while ((name = g_dir_read_name(dir)) != NULL) {
/* Skip anything but files with .dll or .so. */
- if (!g_str_has_suffix(name, plugin_ext))
+ if (!g_str_has_suffix(name, MODULE_SUFFIX))
continue;
- plugin_file = g_build_filename(plugin_folder, name, (char *)NULL);
-
/*
* Check if the same name is already registered.
*/
if (g_hash_table_lookup(plugins_module, name)) {
- /* Yes, it is. In that case ignore it without
- * requiring user intervention. There are situations
- * where this is a legitimate case, like the user overwriting
- * the system plugin with their own updated version. They may not have
- * permissions to replace the system plugin. We still log a
- * message to the console in case this catches someone by surprise,
- * and while it is not ideal to have duplicate plugins (at a minimum
- * it is inneficient), it doesn't raise to the level of warning,
- * i.e something that requires corrective action. */
- ws_message("The plugin name '%s' is already registered, ignoring the "
- "file \"%s\"", name, plugin_file);
- g_free(plugin_file);
+ /* Yes, it is. */
+ report_warning("The plugin '%s' was found "
+ "in multiple directories", name);
continue;
}
+ plugin_file = g_build_filename(plugin_folder, name, (char *)NULL);
handle = g_module_open(plugin_file, G_MODULE_BIND_LOCAL);
if (handle == NULL) {
/* g_module_error() provides file path. */
@@ -195,57 +178,52 @@ scan_plugins_dir(GHashTable *plugins_module, const char *dirpath,
continue;
}
- /* Search for the entry point for the plugin registration function */
- if (!g_module_symbol(handle, "wireshark_load_module", &symbol)) {
- report_failure("The plugin '%s' has no \"wireshark_load_module\" symbol", name);
+ if (!g_module_symbol(handle, "plugin_version", &symbol))
+ {
+ report_failure("The plugin '%s' has no \"plugin_version\" symbol", name);
g_module_close(handle);
g_free(plugin_file);
continue;
}
+ plug_version = (const char *)symbol;
-DIAG_OFF_PEDANTIC
- /* Found it, load module. */
- have_type = ((ws_load_module_func)symbol)(&abi_version, &min_api_level, &module);
-DIAG_ON_PEDANTIC
-
- if (have_type != type) {
- // Should not happen. Our filesystem hierarchy uses plugin type.
- report_failure("The plugin '%s' has invalid type, expected %s, have %s",
- name, type_to_name(type), type_to_name(have_type));
+ if (!pass_plugin_version_compatibility(handle, name)) {
g_module_close(handle);
g_free(plugin_file);
continue;
}
- if (!pass_plugin_compatibility(name, type, abi_version, min_api_level)) {
+ /* Search for the entry point for the plugin registration function */
+ if (!g_module_symbol(handle, "plugin_register", &symbol)) {
+ report_failure("The plugin '%s' has no \"plugin_register\" symbol", name);
g_module_close(handle);
g_free(plugin_file);
continue;
}
- /* Call the plugin registration function. */
- module->register_cb();
+DIAG_OFF_PEDANTIC
+ /* Found it, call the plugin registration function. */
+ ((plugin_register_func)symbol)();
+DIAG_ON_PEDANTIC
+
+ /* Search for the (optional) description flag registration function */
+ if (g_module_symbol(handle, "plugin_describe", &symbol))
+ flags = ((plugin_describe_func)symbol)();
+ else
+ flags = 0;
new_plug = g_new(plugin, 1);
new_plug->handle = handle;
new_plug->name = g_strdup(name);
- new_plug->module = module;
- new_plug->scope = scope;
-
- // Strip version from plugin display name
- s = strrchr(new_plug->name, '.');
- if (s != NULL && g_ascii_isdigit(*(s+1)))
- *s = '\0';
+ new_plug->version = plug_version;
+ new_plug->flags = flags;
/* Add it to the list of plugins. */
- g_hash_table_replace(plugins_module, g_strdup(name), new_plug);
+ g_hash_table_replace(plugins_module, new_plug->name, new_plug);
ws_info("Registered plugin: %s (%s)", new_plug->name, plugin_file);
- ws_debug("plugin '%s' meta data: version = %s, flags = 0x%"PRIu32", spdx = %s, blurb = %s",
- name, module->version, module->flags, module->spdx_id, module->blurb);
g_free(plugin_file);
}
ws_dir_close(dir);
- wmem_free(NULL, plugin_ext);
g_free(plugin_folder);
}
@@ -255,38 +233,26 @@ DIAG_ON_PEDANTIC
plugins_t *
plugins_init(plugin_type_e type)
{
- if (!plugins_supported())
+ if (!g_module_supported())
return NULL; /* nothing to do */
- GHashTable *plugins_module = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, free_plugin);
+ GHashTable *plugins_module = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, free_plugin);
+
+ /*
+ * Scan the global plugin directory.
+ */
+ scan_plugins_dir(plugins_module, get_plugins_dir_with_version(), type, true);
- /* Scan the users plugins directory first, giving it priority over the
- * global plugins folder. Only scan it if we weren't started with special
- * privileges. (Even if we relinquish
+ /*
+ * If the program wasn't started with special privileges,
+ * scan the users plugin directory. (Even if we relinquish
* them, plugins aren't safe unless we've *permanently*
* relinquished them, and we can't do that in Wireshark as,
* if we need privileges to start capturing, we'd need to
* reclaim them before each time we start capturing.)
*/
- const char *user_dir = get_plugins_pers_dir();
if (!started_with_special_privs()) {
- scan_plugins_dir(plugins_module, user_dir, type, WS_PLUGIN_SCOPE_USER);
- }
- else {
- ws_info("Skipping the personal plugin folder because we were "
- "started with special privileges");
- }
-
- /*
- * Scan the global plugin directory. Make sure we don't scan the same directory
- * twice (under some unusual install configurations).
- */
- const char *global_dir = get_plugins_dir();
- if (strcmp(global_dir, user_dir) != 0) {
- scan_plugins_dir(plugins_module, global_dir, type, WS_PLUGIN_SCOPE_GLOBAL);
- }
- else {
- ws_warning("Skipping the global plugin folder because it is the same path as the personal folder");
+ scan_plugins_dir(plugins_module, get_plugins_pers_dir_with_version(), type, true);
}
plugins_module_list = g_slist_prepend(plugins_module_list, plugins_module);
@@ -312,20 +278,15 @@ plugins_get_descriptions(plugin_description_callback callback, void *callback_da
for (unsigned i = 0; i < plugins_array->len; i++) {
plugin *plug = (plugin *)plugins_array->pdata[i];
- callback(plug->name, plug->module->version, plug->module->flags, plug->module->spdx_id,
- plug->module->blurb, plug->module->home_url,
- g_module_name(plug->handle), plug->scope,
- callback_data);
+ callback(plug->name, plug->version, plug->flags, g_module_name(plug->handle), callback_data);
}
g_ptr_array_free(plugins_array, true);
}
-void
-plugins_print_description(const char *name, const char *version,
- uint32_t flags, const char *spdx_id _U_,
- const char *blurb _U_, const char *home_url _U_,
- const char *filename, plugin_scope_e scope _U_,
+static void
+print_plugin_description(const char *name, const char *version,
+ uint32_t flags, const char *filename,
void *user_data _U_)
{
printf("%-16s\t%s\t%s\t%s\n", name, version, flags_to_str(flags), filename);
@@ -334,7 +295,7 @@ plugins_print_description(const char *name, const char *version,
void
plugins_dump_all(void)
{
- plugins_get_descriptions(plugins_print_description, NULL);
+ plugins_get_descriptions(print_plugin_description, NULL);
}
int
@@ -361,94 +322,7 @@ plugins_cleanup(plugins_t *plugins)
bool
plugins_supported(void)
{
-#ifndef HAVE_PLUGINS
- return false;
-#else
return g_module_supported();
-#endif
-}
-
-plugin_type_e
-plugins_check_file(const char *from_filename)
-{
- char *name;
- GModule *handle;
- void *symbol;
- plugin_type_e have_type;
- int abi_version;
- int min_api_level;
-
- handle = g_module_open(from_filename, G_MODULE_BIND_LAZY);
- if (handle == NULL) {
- /* g_module_error() provides file path. */
- report_failure("Couldn't load file: %s", g_module_error());
- return WS_PLUGIN_NONE;
- }
-
- /* Search for the entry point for the plugin registration function */
- if (!g_module_symbol(handle, "wireshark_load_module", &symbol)) {
- report_failure("The file '%s' has no \"wireshark_load_module\" symbol", from_filename);
- return WS_PLUGIN_NONE;
- }
-
-DIAG_OFF_PEDANTIC
- /* Load module. */
- have_type = ((ws_load_module_func)symbol)(&abi_version, &min_api_level, NULL);
-DIAG_ON_PEDANTIC
-
- name = g_path_get_basename(from_filename);
-
- if (!pass_plugin_compatibility(name, have_type, abi_version, min_api_level)) {
- g_module_close(handle);
- g_free(name);
- return WS_PLUGIN_NONE;
- }
-
- g_module_close(handle);
- g_free(name);
- return have_type;
-}
-
-char *
-plugins_pers_type_folder(plugin_type_e type)
-{
- return g_build_filename(get_plugins_pers_dir(),
- type_to_dir(type), (const char *)NULL);
-}
-
-char *
-plugins_file_suffix(plugin_type_e type)
-{
- return ws_strdup_printf("%s.%d", WS_PLUGIN_MODULE_SUFFIX, plugins_abi_version(type));
-}
-
-int
-plugins_api_max_level(plugin_type_e type)
-{
- /*
- * The API level is only defined for codecs because it is a small
- * and easy to define API.
- * Maybe we could do the same for wiretap (file type) plugins?
- * For the various epan plugin types it seems pointless and futile.
- */
- switch (type) {
- case WS_PLUGIN_CODEC: return WIRESHARK_API_MAX_LEVEL_CODEC;
- default: return 0;
- }
- ws_assert_not_reached();
-
-}
-
-int
-plugins_abi_version(plugin_type_e type)
-{
- switch (type) {
- case WS_PLUGIN_EPAN: return WIRESHARK_ABI_VERSION_EPAN;
- case WS_PLUGIN_WIRETAP: return WIRESHARK_ABI_VERSION_WIRETAP;
- case WS_PLUGIN_CODEC: return WIRESHARK_ABI_VERSION_CODEC;
- default: return -1;
- }
- ws_assert_not_reached();
}
/*
diff --git a/wsutil/plugins.h b/wsutil/plugins.h
index be199ebf9a..113f1f687d 100644
--- a/wsutil/plugins.h
+++ b/wsutil/plugins.h
@@ -17,69 +17,32 @@
extern "C" {
#endif /* __cplusplus */
+typedef void (*plugin_register_func)(void);
+typedef uint32_t (*plugin_describe_func)(void);
+
+typedef void plugins_t;
+
typedef enum {
- WS_PLUGIN_NONE,
WS_PLUGIN_EPAN,
WS_PLUGIN_WIRETAP,
WS_PLUGIN_CODEC
} plugin_type_e;
-typedef enum {
- WS_PLUGIN_SCOPE_NONE,
- WS_PLUGIN_SCOPE_USER,
- WS_PLUGIN_SCOPE_GLOBAL,
- WS_PLUGIN_SCOPE_CLI,
-} plugin_scope_e;
-
-#define WS_PLUGIN_SPDX_GPLv2 "GPL-2.0-or-later"
-#define WS_PLUGIN_GITLAB_URL "https://gitlab.com/wireshark/wireshark"
-
#define WS_PLUGIN_DESC_DISSECTOR (1UL << 0)
#define WS_PLUGIN_DESC_FILE_TYPE (1UL << 1)
#define WS_PLUGIN_DESC_CODEC (1UL << 2)
#define WS_PLUGIN_DESC_EPAN (1UL << 3)
#define WS_PLUGIN_DESC_TAP_LISTENER (1UL << 4)
-#define WS_PLUGIN_DESC_DFUNCTION (1UL << 5)
-
-#if defined(SHARED_MODULE_SUFFIX)
-#define WS_PLUGIN_MODULE_SUFFIX SHARED_MODULE_SUFFIX
-#elif defined(_WIN32)
-#define WS_PLUGIN_MODULE_SUFFIX ".dll"
-#else
-#define WS_PLUGIN_MODULE_SUFFIX ".so"
-#endif
-
-typedef void plugins_t;
-
-typedef void (*module_register_func)(void);
-
-struct ws_module {
- uint32_t flags;
- const char *version;
- const char *spdx_id;
- const char *home_url;
- const char *blurb;
- module_register_func register_cb;
-};
-
-typedef plugin_type_e (*ws_load_module_func)(int *, int *, struct ws_module **);
+#define WS_PLUGIN_DESC_DFILTER (1UL << 5)
WS_DLL_PUBLIC plugins_t *plugins_init(plugin_type_e type);
typedef void (*plugin_description_callback)(const char *name, const char *version,
- uint32_t flags, const char *spdx_id,
- const char *blurb, const char *home_url,
- const char *filename, plugin_scope_e scope,
+ uint32_t flags, const char *filename,
void *user_data);
WS_DLL_PUBLIC void plugins_get_descriptions(plugin_description_callback callback, void *user_data);
-WS_DLL_PUBLIC void plugins_print_description(const char *name, const char *version,
- uint32_t flags, const char *spdx_id,
- const char *blurb, const char *home_url,
- const char *filename, plugin_scope_e scope,
- void *user_data _U_);
-
WS_DLL_PUBLIC void plugins_dump_all(void);
WS_DLL_PUBLIC int plugins_get_count(void);
@@ -88,41 +51,6 @@ WS_DLL_PUBLIC void plugins_cleanup(plugins_t *plugins);
WS_DLL_PUBLIC bool plugins_supported(void);
-WS_DLL_PUBLIC plugin_type_e plugins_check_file(const char *path);
-
-WS_DLL_PUBLIC char *plugins_pers_type_folder(plugin_type_e type);
-
-WS_DLL_PUBLIC char *plugins_file_suffix(plugin_type_e type);
-
-WS_DLL_PUBLIC
-int plugins_api_max_level(plugin_type_e type);
-
-WS_DLL_PUBLIC
-int plugins_abi_version(plugin_type_e type);
-
-#define WIRESHARK_PLUGIN_REGISTER(type, ptr_, api_level_) \
- WS_DLL_PUBLIC plugin_type_e \
- wireshark_load_module(int *abi_version_ptr, int *min_api_level_ptr, \
- struct ws_module **module_ptr) \
- { \
- if (abi_version_ptr) \
- *abi_version_ptr = WIRESHARK_ABI_VERSION_ ## type; \
- if (min_api_level_ptr) \
- *min_api_level_ptr = api_level_; \
- if (module_ptr) \
- *module_ptr = ptr_; \
- return WS_PLUGIN_ ## type; \
- }
-
-#define WIRESHARK_PLUGIN_REGISTER_EPAN(ptr, level) \
- WIRESHARK_PLUGIN_REGISTER(EPAN, ptr, level)
-
-#define WIRESHARK_PLUGIN_REGISTER_WIRETAP(ptr, level) \
- WIRESHARK_PLUGIN_REGISTER(WIRETAP, ptr, level)
-
-#define WIRESHARK_PLUGIN_REGISTER_CODEC(ptr, level) \
- WIRESHARK_PLUGIN_REGISTER(CODEC, ptr, level)
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/wsutil/privileges.c b/wsutil/privileges.c
index 2ca302030a..6ee0dfd563 100644
--- a/wsutil/privileges.c
+++ b/wsutil/privileges.c
@@ -118,7 +118,7 @@ get_cur_groupname(void) {
static uid_t ruid, euid;
static gid_t rgid, egid;
-static bool init_process_policies_called = false;
+static bool init_process_policies_called;
/*
* Called when the program starts, to save whatever credential information
diff --git a/wsutil/report_message.h b/wsutil/report_message.h
index 7be1808b70..1b64042034 100644
--- a/wsutil/report_message.h
+++ b/wsutil/report_message.h
@@ -32,7 +32,7 @@ extern "C" {
struct report_message_routines {
void (*vreport_failure)(const char *, va_list);
void (*vreport_warning)(const char *, va_list);
- void (*report_open_failure)(const char *, int, gboolean);
+ void (*report_open_failure)(const char *, int, bool);
void (*report_read_failure)(const char *, int);
void (*report_write_failure)(const char *, int);
void (*report_cfile_open_failure)(const char *, int, char *);
diff --git a/wsutil/str_util.c b/wsutil/str_util.c
index 660c6619fe..f6eaa07bdb 100644
--- a/wsutil/str_util.c
+++ b/wsutil/str_util.c
@@ -13,6 +13,8 @@
#include "str_util.h"
#include <string.h>
+#include <locale.h>
+#include <math.h>
#include <ws_codepoints.h>
@@ -372,7 +374,8 @@ ws_memrchr(const void *_haystack, int ch, size_t n)
#define FORMAT_SIZE_UNIT_MASK 0x00ff
#define FORMAT_SIZE_PFX_MASK 0xff00
-static const char *thousands_grouping_fmt = NULL;
+static const char *thousands_grouping_fmt;
+static const char *thousands_grouping_fmt_flt;
DIAG_OFF(format)
static void test_printf_thousands_grouping(void) {
@@ -381,16 +384,207 @@ static void test_printf_thousands_grouping(void) {
wmem_strbuf_append_printf(buf, "%'d", 22);
if (g_strcmp0(wmem_strbuf_get_str(buf), "22") == 0) {
thousands_grouping_fmt = "%'"PRId64;
+ thousands_grouping_fmt_flt = "%'.*f";
} else {
/* Don't use */
thousands_grouping_fmt = "%"PRId64;
+ thousands_grouping_fmt_flt = "%.*f";
}
wmem_strbuf_destroy(buf);
}
DIAG_ON(format)
+static const char* decimal_point = NULL;
+
+static void truncate_numeric_strbuf(wmem_strbuf_t *strbuf, int n) {
+
+ const char *s = wmem_strbuf_get_str(strbuf);
+ char *p;
+ int count;
+
+ if (decimal_point == NULL) {
+ decimal_point = localeconv()->decimal_point;
+ }
+
+ p = strchr(s, decimal_point[0]);
+ if (p != NULL) {
+ count = n;
+ while (count >= 0) {
+ count--;
+ if (*p == '\0')
+ break;
+ p++;
+ }
+
+ p--;
+ while (*p == '0') {
+ p--;
+ }
+
+ if (*p != decimal_point[0]) {
+ p++;
+ }
+ wmem_strbuf_truncate(strbuf, p - s);
+ }
+}
+
+/* Given a floating point value, return it in a human-readable format,
+ * using units with metric prefixes (falling back to scientific notation
+ * with the base units if outside the range.)
+ */
+char *
+format_units(wmem_allocator_t *allocator, double size,
+ format_size_units_e unit, uint16_t flags,
+ int precision)
+{
+ wmem_strbuf_t *human_str = wmem_strbuf_new(allocator, NULL);
+ double power = 1000.0;
+ int pfx_off = 6;
+ bool is_small = false;
+ /* is_small is when to use the longer, spelled out unit.
+ * We use it for inf, NaN, 0, and unprefixed small values,
+ * but not for unprefixed values using scientific notation
+ * the value is outside the supported prefix range.
+ */
+ bool scientific = false;
+ double abs_size = fabs(size);
+ int exponent = 0;
+ static const char * const si_prefix[] = {" a", " f", " p", " n", " μ", " m", " ", " k", " M", " G", " T", " P", " E"};
+ static const char * const iec_prefix[] = {" ", " Ki", " Mi", " Gi", " Ti", " Pi", " Ei"};
+ const char * const *prefix = si_prefix;
+ int max_exp = (int)G_N_ELEMENTS(si_prefix) - 1;
+
+ char *ret_val;
+
+ if (thousands_grouping_fmt == NULL)
+ test_printf_thousands_grouping();
+
+ if (flags & FORMAT_SIZE_PREFIX_IEC) {
+ prefix = iec_prefix;
+ max_exp = (int)G_N_ELEMENTS(iec_prefix) - 1;
+ power = 1024.0;
+ }
+
+ if (isfinite(size) && size != 0.0) {
+
+ double comp = precision == 0 ? 10.0 : 1.0;
+
+ /* For precision 0, use the range [10, 10*power) because only
+ * one significant digit is not as useful. This is what format_size
+ * does for integers. ("ls -h" uses one digit after the decimal
+ * point only for the [1, 10) range, g_format_size() always displays
+ * tenths.) Prefer non-prefixed units for the range [1,10), though.
+ *
+ * We have a limited number of units to check, so this (which
+ * can be unrolled) is presumably faster than log + floor + pow/exp
+ */
+ if (abs_size < 1.0) {
+ while (abs_size < comp) {
+ abs_size *= power;
+ exponent--;
+ if ((exponent + pfx_off) < 0) {
+ scientific = true;
+ break;
+ }
+ }
+ } else {
+ while (abs_size >= comp*power) {
+ abs_size *= 1/power;
+ exponent++;
+ if ((exponent + pfx_off) > max_exp) {
+ scientific = true;
+ break;
+ }
+ }
+ }
+ }
+
+ if (scientific) {
+ wmem_strbuf_append_printf(human_str, "%.*g", precision + 1, size);
+ exponent = 0;
+ } else {
+ if (exponent == 0) {
+ is_small = true;
+ }
+ size = copysign(abs_size, size);
+ // Truncate trailing zeros, but do it this way because we know
+ // we don't want scientific notation, and we don't want %g to
+ // switch to that if precision is small. (We could always use
+ // %g when precision is large.)
+ wmem_strbuf_append_printf(human_str, thousands_grouping_fmt_flt, precision, size);
+ truncate_numeric_strbuf(human_str, precision);
+ // XXX - when rounding to a certain precision, printf might
+ // round up to "power" from something like 999.99999995, which
+ // looks a little odd on a graph when transitioning from 1,000 bytes
+ // (for values just under 1 kB) to 1 kB (for values 1 kB and larger.)
+ // Due to edge cases in binary fp representation and how printf might
+ // round things, the right way to handle it is taking the printf output
+ // and comparing it to "1000" and "1024" and adjusting the exponent
+ // if so - though we need to compare to the version with the thousands
+ // separator if we have that (which makes it harder to use strnatcmp
+ // as is.)
+ }
+
+ if ((size_t)(pfx_off + exponent) < G_N_ELEMENTS(si_prefix)) {
+ wmem_strbuf_append(human_str, prefix[pfx_off+exponent]);
+ }
+
+ switch (unit) {
+ case FORMAT_SIZE_UNIT_NONE:
+ break;
+ case FORMAT_SIZE_UNIT_BYTES:
+ wmem_strbuf_append(human_str, is_small ? "bytes" : "B");
+ break;
+ case FORMAT_SIZE_UNIT_BITS:
+ wmem_strbuf_append(human_str, is_small ? "bits" : "b");
+ break;
+ case FORMAT_SIZE_UNIT_BITS_S:
+ wmem_strbuf_append(human_str, is_small ? "bits/s" : "bps");
+ break;
+ case FORMAT_SIZE_UNIT_BYTES_S:
+ wmem_strbuf_append(human_str, is_small ? "bytes/s" : "Bps");
+ break;
+ case FORMAT_SIZE_UNIT_PACKETS:
+ wmem_strbuf_append(human_str, is_small ? "packets" : "packets");
+ break;
+ case FORMAT_SIZE_UNIT_PACKETS_S:
+ wmem_strbuf_append(human_str, is_small ? "packets/s" : "packets/s");
+ break;
+ case FORMAT_SIZE_UNIT_FIELDS:
+ wmem_strbuf_append(human_str, is_small ? "fields" : "fields");
+ break;
+ case FORMAT_SIZE_UNIT_SECONDS:
+ wmem_strbuf_append(human_str, is_small ? "seconds" : "s");
+ break;
+ case FORMAT_SIZE_UNIT_ERLANGS:
+ wmem_strbuf_append(human_str, is_small ? "erlangs" : "E");
+ break;
+ default:
+ ws_assert_not_reached();
+ }
+
+ ret_val = wmem_strbuf_finalize(human_str);
+ /* Convention is a space between the value and the units. If we have
+ * a prefix, the space is before the prefix. There are two possible
+ * uses of FORMAT_SIZE_UNIT_NONE:
+ * 1. Add a unit immediately after the string returned. In this case,
+ * we would want the string to end with a space if there's no prefix.
+ * 2. The unit appears somewhere else, e.g. in a legend, header, or
+ * different column. In this case, we don't want the string to end
+ * with a space if there's no prefix.
+ * chomping the string here, as we've traditionally done, optimizes for
+ * the latter case but makes the former case harder.
+ * Perhaps the right approach is to distinguish the cases with a new
+ * enum value.
+ */
+ return g_strchomp(ret_val);
+}
+
/* Given a size, return its value in a human-readable format */
-/* This doesn't handle fractional values. We might want to make size a double. */
+/* This doesn't handle fractional values. We might want to just
+ * call the version with the double and precision 0 (possibly
+ * slower due to the use of floating point math, but do we care?)
+ */
char *
format_size_wmem(wmem_allocator_t *allocator, int64_t size,
format_size_units_e unit, uint16_t flags)
@@ -448,6 +642,18 @@ format_size_wmem(wmem_allocator_t *allocator, int64_t size,
case FORMAT_SIZE_UNIT_PACKETS_S:
wmem_strbuf_append(human_str, is_small ? " packets/s" : "packets/s");
break;
+ case FORMAT_SIZE_UNIT_FIELDS:
+ wmem_strbuf_append(human_str, is_small ? " fields" : "fields");
+ break;
+ /* These aren't that practical to use with integers, but
+ * perhaps better than asserting.
+ */
+ case FORMAT_SIZE_UNIT_SECONDS:
+ wmem_strbuf_append(human_str, is_small ? " seconds" : "s");
+ break;
+ case FORMAT_SIZE_UNIT_ERLANGS:
+ wmem_strbuf_append(human_str, is_small ? " erlangs" : "E");
+ break;
default:
ws_assert_not_reached();
}
diff --git a/wsutil/str_util.h b/wsutil/str_util.h
index 037ef4570e..859276710d 100644
--- a/wsutil/str_util.h
+++ b/wsutil/str_util.h
@@ -230,17 +230,46 @@ int ws_xton(char ch);
typedef enum {
FORMAT_SIZE_UNIT_NONE, /**< No unit will be appended. You must supply your own. */
+ /* XXX - This does not append a trailing space if there is no prefix.
+ * That's good if you intend to list the unit somewhere else, e.g. in a
+ * legend, header, or other column, but doesn't work well if intending
+ * to append your own unit. You can test whether there's a prefix or
+ * not with g_ascii_isdigit() (plus special handling for inf and NaN).
+ */
FORMAT_SIZE_UNIT_BYTES, /**< "bytes" for un-prefixed sizes, "B" otherwise. */
FORMAT_SIZE_UNIT_BITS, /**< "bits" for un-prefixed sizes, "b" otherwise. */
FORMAT_SIZE_UNIT_BITS_S, /**< "bits/s" for un-prefixed sizes, "bps" otherwise. */
FORMAT_SIZE_UNIT_BYTES_S, /**< "bytes/s" for un-prefixed sizes, "Bps" otherwise. */
FORMAT_SIZE_UNIT_PACKETS, /**< "packets" */
FORMAT_SIZE_UNIT_PACKETS_S, /**< "packets/s" */
+ FORMAT_SIZE_UNIT_FIELDS, /**< "fields" */
+ /* These next two aren't really for format_size (which takes an int) */
+ FORMAT_SIZE_UNIT_SECONDS, /**< "seconds" for un-prefixed sizes, "s" otherwise. */
+ FORMAT_SIZE_UNIT_ERLANGS, /**< "erlangs" for un-prefixed sizes, "E" otherwise. */
} format_size_units_e;
#define FORMAT_SIZE_PREFIX_SI (1 << 0) /**< SI (power of 1000) prefixes will be used. */
#define FORMAT_SIZE_PREFIX_IEC (1 << 1) /**< IEC (power of 1024) prefixes will be used. */
+/** Given a floating point value, return it in a human-readable format
+ *
+ * Prefixes up to "E/Ei" (exa, exbi) and down to "a" (atto; negative
+ * prefixes are SI-only) are currently supported. Values outside that
+ * range will use scientific notation.
+ *
+ * @param size The size value
+ * @param flags Flags to control the output (unit of measurement,
+ * SI vs IEC, etc). Unit and prefix flags may be ORed together.
+ * @param precision Maximum number of digits to appear after the
+ * decimal point. Trailing zeros are removed, as is the decimal
+ * point if not digits follow it.
+ * @return A newly-allocated string representing the value.
+ */
+WS_DLL_PUBLIC
+char *format_units(wmem_allocator_t *allocator, double size,
+ format_size_units_e unit, uint16_t flags,
+ int precision);
+
/** Given a size, return its value in a human-readable format
*
* Prefixes up to "T/Ti" (tera, tebi) are currently supported.
diff --git a/wsutil/test_wsutil.c b/wsutil/test_wsutil.c
index ab88788848..ea6ed54d8e 100644
--- a/wsutil/test_wsutil.c
+++ b/wsutil/test_wsutil.c
@@ -47,7 +47,7 @@ struct in6_test {
ws_in6_addr addr;
};
-static struct in6_test in6_test1 = {
+static const struct in6_test in6_test1 = {
.str = "2001:db8:ffaa:ddbb:1199:2288:3377:1",
.addr = { { 0x20, 0x01, 0x0d, 0xb8, 0xff, 0xaa, 0xdd, 0xbb,
0x11, 0x99, 0x22, 0x88, 0x33, 0x77, 0x00, 0x01 } }
diff --git a/wsutil/unicode-utils.c b/wsutil/unicode-utils.c
index 4ed4b32639..2e50393aaa 100644
--- a/wsutil/unicode-utils.c
+++ b/wsutil/unicode-utils.c
@@ -12,7 +12,7 @@
#include "unicode-utils.h"
-int ws_utf8_seqlen[256] = {
+const int ws_utf8_seqlen[256] = {
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0x00...0x0f */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0x10...0x1f */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0x20...0x2f */
diff --git a/wsutil/unicode-utils.h b/wsutil/unicode-utils.h
index 21c50ec0db..d8a9a9bfcd 100644
--- a/wsutil/unicode-utils.h
+++ b/wsutil/unicode-utils.h
@@ -50,7 +50,7 @@ extern "C" {
_CHECK_UTF_8(LOG_LEVEL_ECHO, str, len)
WSUTIL_EXPORT
-int ws_utf8_seqlen[256];
+const int ws_utf8_seqlen[256];
/** Given the first byte in an UTF-8 encoded code point,
* return the length of the multibyte sequence, or *ZERO*
diff --git a/wsutil/win32-utils.c b/wsutil/win32-utils.c
index 4eef8d3c26..49425ac277 100644
--- a/wsutil/win32-utils.c
+++ b/wsutil/win32-utils.c
@@ -9,6 +9,7 @@
*/
#include <config.h>
+#include <wsutil/array.h>
#include "win32-utils.h"
@@ -198,7 +199,7 @@ win32strexception(DWORD exception)
{ EXCEPTION_STACK_OVERFLOW, "Stack overflow" },
{ 0, NULL }
};
-#define N_EXCEPTIONS (sizeof exceptions / sizeof exceptions[0])
+#define N_EXCEPTIONS array_length(exceptions)
for (size_t i = 0; i < N_EXCEPTIONS; i++) {
if (exceptions[i].code == exception)
diff --git a/wsutil/wmem/wmem_core.c b/wsutil/wmem/wmem_core.c
index a166bf8400..6a589db1d3 100644
--- a/wsutil/wmem/wmem_core.c
+++ b/wsutil/wmem/wmem_core.c
@@ -25,7 +25,7 @@
/* Set according to the WIRESHARK_DEBUG_WMEM_OVERRIDE environment variable in
* wmem_init. Should not be set again. */
-static bool do_override = false;
+static bool do_override;
static wmem_allocator_type_t override_type;
void *
diff --git a/wsutil/ws_pipe.c b/wsutil/ws_pipe.c
index 08500d0944..4101316942 100644
--- a/wsutil/ws_pipe.c
+++ b/wsutil/ws_pipe.c
@@ -155,7 +155,7 @@ ws_pipe_create_overlapped_read(HANDLE *read_pipe_handle, HANDLE *write_pipe_hand
*read_pipe_handle = read_pipe;
*write_pipe_handle = write_pipe;
g_free(wname);
- return(true);
+ return true;
}
#endif
diff --git a/wsutil/ws_strptime.c b/wsutil/ws_strptime.c
index 3c55d93e34..7a8a37f583 100644
--- a/wsutil/ws_strptime.c
+++ b/wsutil/ws_strptime.c
@@ -118,7 +118,7 @@ static const unsigned char *find_string(const unsigned char *, int *, const char
#define HAVE_YEAR(s) (s & S_YEAR)
#define HAVE_HOUR(s) (s & S_HOUR)
-static char utc[] = { "UTC" };
+static const char utc[] = { "UTC" };
/* RFC-822/RFC-2822 */
static const char * const nast[5] = {
"EST", "CST", "MST", "PST", "\0\0\0"
diff --git a/wsutil/wslog.c b/wsutil/wslog.c
index 2312566e66..4b35c29496 100644
--- a/wsutil/wslog.c
+++ b/wsutil/wslog.c
@@ -87,40 +87,40 @@ typedef struct {
* will be printed regardless of log level. This is a feature, not a bug. */
static enum ws_log_level current_log_level = LOG_LEVEL_NONE;
-static bool stdout_color_enabled = false;
+static bool stdout_color_enabled;
-static bool stderr_color_enabled = false;
+static bool stderr_color_enabled;
/* Use stdout for levels "info" and below, for backward compatibility
* with GLib. */
-static bool stdout_logging_enabled = false;
+static bool stdout_logging_enabled;
static const char *registered_progname = DEFAULT_PROGNAME;
/* List of domains to filter. */
-static log_filter_t *domain_filter = NULL;
+static log_filter_t *domain_filter;
/* List of domains to output debug level unconditionally. */
-static log_filter_t *debug_filter = NULL;
+static log_filter_t *debug_filter;
/* List of domains to output noisy level unconditionally. */
-static log_filter_t *noisy_filter = NULL;
+static log_filter_t *noisy_filter;
/* List of domains that are fatal. */
-static log_filter_t *fatal_filter = NULL;
+static log_filter_t *fatal_filter;
-static ws_log_writer_cb *registered_log_writer = NULL;
+static ws_log_writer_cb *registered_log_writer;
-static void *registered_log_writer_data = NULL;
+static void *registered_log_writer_data;
-static ws_log_writer_free_data_cb *registered_log_writer_data_free = NULL;
+static ws_log_writer_free_data_cb *registered_log_writer_data_free;
-static FILE *custom_log = NULL;
+static FILE *custom_log;
static enum ws_log_level fatal_log_level = LOG_LEVEL_ERROR;
#ifdef WS_DEBUG
-static bool init_complete = false;
+static bool init_complete;
#endif
ws_log_console_open_pref ws_log_console_open = LOG_CONSOLE_OPEN_NEVER;